Manuel PHP

par:
Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Hannes Magnusson
Georg Richter
Damien Seguy
Jakub Vrana
Et bien d'autres
2016-12-08
Édité par: Peter Cowburn
par:
Frédéric Blanc Traducteur
Vincent Blanchon Traducteur
Pierrick Charron Traducteur
Julien Pauli Traducteur
Mickaël Perraud Relecteur
Guillaume Plessis Traducteur
Yannick Torrès Traducteur
par:
Mehdi Achour
Vincent Briet
Jean-Sébastien Goupil
David Manusset
Damien Seguy
© 1997-2016 PHP Documentation Group
  • Copyright
  • Manuel PHP
    • Préface
  • Au moment de commencer
    • Introduction
    • Une introduction à PHP
  • Installation et configuration
    • Considérations générales sur l'installation
    • Installation sur les systèmes UNIX
    • Installation sur un système Mac OS X
    • Installation sur les système Windows
    • Installation sur des plateformes de Cloud Computing
    • FastCGI Process Manager (FPM)
    • Installation d'extensions PECL
    • Des problèmes ?
    • Configuration à l'exécution
  • Référence du langage
    • La syntaxe de base
    • Les types
    • Les variables
    • Les constantes
    • Les expressions
    • Les opérateurs
    • Les structures de contrôle
    • Les fonctions
    • Les classes et les objets
    • Les espaces de noms
    • Errors
    • Les exceptions
    • Generators
    • Les références
    • Variables prédéfinies
    • Exceptions prédéfinies
    • Interfaces et Classes prédéfinies
    • Options et paramètres de contexte
    • Liste des protocoles et des gestionnaires supportés
  • Sécurité
    • Introduction
    • Considérations générales
    • Binaires CGI
    • Installé en tant que module Apache
    • Session Security
    • Sécurité des fichiers
    • Sécurité des bases de données
    • Rapport d'erreurs
    • Utilisation des variables super-globales
    • Données transmises par les internautes
    • Guillemets magiques
    • Masquer PHP
    • Être à jour
  • Caractéristiques
    • Identification HTTP avec PHP
    • Cookies
    • Sessions
    • Utiliser les XForms
    • Gestion des chargements de fichiers
    • Utilisation des fichiers à distance
    • Gestion des connexions
    • Connexions persistantes aux bases de données
    • Safe mode
    • Utilisation des lignes de commande — Utiliser PHP en ligne de commande
    • Ramasse-miettes (Garbage Collection)
    • DTrace Dynamic Tracing
  • Référence des fonctions
    • Affecte le comportement de PHP
    • Manipulation audio
    • Services d'identification
    • Extensions spécifiques à la ligne de commande
    • Extensions sur l'archivage et la compression
    • Traitement des cartes de crédit
    • Extensions sur la cryptographie
    • Extensions sur les bases de données
    • Extensions relatives aux dates et aux heures
    • Extensions relatives aux systèmes de fichiers
    • Support du langage humain et de l'encodage de caractères
    • Génération et traitement des images
    • Extensions relatives aux emails
    • Extensions sur les mathématiques
    • Affichage des données non-textuelles
    • Extensions sur le contrôle des processus
    • Autres extensions basiques
    • Autres services
    • Extensions spécifiques aux moteurs de recherche
    • Extensions spécifiques aux serveurs
    • Extensions sur les Sessions
    • Traitement du texte
    • Extensions relatives aux variables et aux types
    • Services Web
    • Extensions pour Windows uniquement
    • Manipulation XML
    • Extensions GUI
  • Dans le coeur de PHP : Guide du Hacker
    • Preface
    • Memory management
    • Working with Variables
    • Writing Functions
    • Writing Classes
    • Working with Resources
    • Working with INI settings
    • Working with streams
    • The "counter" Extension - A Continuing Example
    • The PHP 5 build system
    • Extension structure
    • PDO Driver How-To
    • Extension FAQs
    • Zend Engine 2 API reference
    • Zend Engine 2 Opcodes
    • Zend Engine 1
  • FAQ — FAQ : foire Aux Questions
    • Informations générales
    • Listes de diffusion — Listes de diffusions
    • Obtenir PHP
    • Considérations sur les bases de données
    • Installation
    • Problèmes de compilation
    • Utiliser PHP
    • Hashage de mots de passe — Hashage de mots de passe sûr
    • PHP et HTML
    • PHP et COM
    • Questions diverses
  • Annexes
    • Histoire de PHP
    • Migrating from PHP 7.0.x to PHP 7.1.x
    • Migration de PHP 5.6.x vers PHP 7.0.x
    • Migration de PHP 5.5.x à PHP 5.6.x
    • Migration de PHP 5.4.x à PHP 5.5.x
    • Migration de PHP 5.3.x à PHP 5.4.x
    • Migration de PHP 5.2.x vers PHP 5.3.x
    • Migration de PHP 5.1.x à PHP 5.2.x
    • Migration de PHP 5.0.x à PHP 5.1.x
    • Migration de PHP 4 à PHP 5.0.x
    • Débogueur PHP
    • Options de configuration
    • Directives du php.ini
    • Catégorie/Liste des extensions
    • Liste des alias
    • Mots réservés en PHP
    • Types des ressources PHP
    • Liste des filtres standards
    • Liste des modes de transport de sockets disponibles
    • Comparaison de types en PHP
    • Liste des tokens de l'analyseur
    • Guide de nommage de l'espace utilisateur
    • À propos du manuel
    • Creative Commons Attribution 3.0
    • Liste de l'index
    • Historique des modifications
  • Version d'aide HTML
    • About This Edition
    • Using PHP Manual CHM Edition
    • The Full Text Search
    • Integrating the PHP Manual


Copyright

Copyright @ 1997 - 2016 par le PHP Documentation Group. Ce document ne peut être redistribué qu'aux termes et aux conditions mentionnés dans la licence Open Publication License, version 1.0 ou plus récente. Une copie de la licence Creative Commons Attribution 3.0 est distribuée avec ce manuel ; la dernière version est disponible à » http://creativecommons.org/licenses/by/3.0/.

Dans le cas où vous seriez intéressés par la distribution partielle ou totale de ce document (modifié ou non) ou auriez des questions, merci de contacter les propriétaires du Copyright à » doc-license@lists.php.net. Notez que cette adresse courriel est directement redirigée vers une liste de diffusion publique et archivée.


  • « Copyright
  • Préface »
  • PHP Manual
  • Manuel PHP

Manuel PHP

  • Préface


Préface

PHP est un acronyme récursif, qui signifie "PHP: Hypertext Preprocessor" : c'est un langage de script HTML, exécuté côté serveur. Sa syntaxe est empruntée aux langages C, Java et Perl, et est facile à apprendre. Le but de ce langage est de permettre aux développeurs web d'écrire des pages dynamiques rapidement, mais vous pouvez faire beaucoup plus avec PHP.

Ce manuel est essentiellement une référence des fonctions, mais il contient aussi des informations de référence sur le langage, des explications sur les fonctionnalités principales de PHP et diverses informations supplémentaires.

Vous pouvez télécharger ce manuel sous divers formats, sur » http://www.php.net/download-docs.php. Plus d'informations sur ce manuel sont disponibles dans l'appendice À propos du manuel. Si vous voulez découvrir l'histoire de PHP.

Auteurs et Contributeurs

Nous mettons en avant les personnes les plus actives dans la préface du manuel mais il y a bien plus de contributeurs qui nous aident actuellement dans notre travail ou qui ont fournis une aide précieuse au projet dans le passé. Il y a beaucoup d'inconnus qui nous ont aidés à travers leurs notes concernant les pages du manuel qui sont continuellement incluses dans le manuel, travail dont nous sommes très reconnaissants. La liste fournie ci-dessous est classée par ordre alphabétique.

Auteurs et Éditeurs

Les contributeurs suivants ont eu un impact énorme en ajoutant du contenu dans le manuel : Bill Abt, Jouni Ahto, Alexander Aulbach, Christoph Michael Becker, Daniel Beckham, Stig Bakken, Nilgün Belma Bugüner, Jesus M. Castagnetto, Ron Chmara, Sean Coates, John Coggeshall, Simone Cortesi, Peter Cowburn, Daniel Egeberg, Markus Fischer, Wez Furlong, Sara Golemon, Rui Hirokawa, Brad House, Pierre-Alain Joye, Etienne Kneuss, Moriyoshi Koizumi, Rasmus Lerdorf, Andrew Lindeman, Stanislav Malyshev, Justin Martin, Rafael Martinez, Rick McGuire, Moacir de Oliveira Miranda Júnior, Kalle Sommer Nielsen, Yasuo Ohgaki, Philip Olson, Richard Quadling, Derick Rethans, Rob Richards, Sander Roobol, Egon Schmid, Thomas Schoefbeck, Sascha Schumann, Dan Scott, Masahiro Takagi, Yannick Torres, Michael Wallner, Lars Torben Wilson, Jim Winstead, Jeroen van Wolffelaar et Andrei Zmievski.

Les contributeurs suivants ont énormément aidé dans l'édition du manuel : Stig Bakken, Gabor Hojtsy, Hartmut Holzgraefe, Philip Olson et Egon Schmid.

Mainteneurs des notes utilisateurs

Les mainteneurs actuellement les plus actifs sont : Daniel Brown, Nuno Lopes, Felipe Pena, Thiago Pojda et Maciek Sokolewicz.

Ces personnes ont également déployé énormément d'efforts dans le maintien des notes utilisateurs : Mehdi Achour, Daniel Beckham, Friedhelm Betz, Victor Boivie, Jesus M. Castagnetto, Nicolas Chaillan, Ron Chmara, Sean Coates, James Cox, Vincent Gevers, Sara Golemon, Zak Greant, Szabolcs Heilig, Oliver Hinckel, Hartmut Holzgraefe, Etienne Kneuss, Rasmus Lerdorf, Matthew Li, Andrew Lindeman, Aidan Lister, Hannes Magnusson, Maxim Maletsky, Bobby Matthis, James Moore, Philip Olson, Sebastian Picklum, Derick Rethans, Sander Roobol, Damien Seguy, Jason Sheets, Tom Sommer, Jani Taskinen, Yasuo Ohgaki, Jakub Vrana, Lars Torben Wilson, Jim Winstead, Jared Wyles et Jeroen van Wolffelaar.


Au moment de commencer

  • Introduction
    • Qu'est ce que PHP?
    • Que peut faire PHP ?
  • Une introduction à PHP
    • Le nécessaire
    • Votre première page PHP
    • Trucs pratiques
    • Utiliser un formulaire
    • Utiliser des codes anciens avec les nouvelles versions de PHP
    • Et après ?


  • « Au moment de commencer
  • Qu'est ce que PHP? »
  • PHP Manual
  • Au moment de commencer
  • Introduction

Introduction

Sommaire

  • Qu'est ce que PHP?
  • Que peut faire PHP ?


Qu'est ce que PHP?

PHP (officiellement, ce sigle est un acronyme récursif pour PHP Hypertext Preprocessor) est un langage de scripts généraliste et Open Source, spécialement conçu pour le développement d'applications web. Il peut être intégré facilement au HTML.

Bien... mais qu'est ce que cela veut dire ? Un exemple :

Exemple #1 Exemple d'introduction

<!DOCTYPE HTML>
<html>
<head>
<title>Exemple</title>
</head>
<body>

<?php
echo "Bonjour, je suis un script PHP !";
?>

</body>
</html>

Au lieu d'utiliser des tonnes de commandes afin d'afficher du HTML (comme en C ou en Perl), les pages PHP contiennent des fragments HTML dont du code qui fait "quelque chose" (dans ce cas, il va afficher "Bonjour, je suis un script PHP !"). Le code PHP est inclus entre une balise de début <?php et une balise de fin ?> qui permettent au serveur web de passer en mode PHP.

Ce qui distingue PHP des langages de script comme le Javascript, est que le code est exécuté sur le serveur, générant ainsi le HTML, qui sera ensuite envoyé au client. Le client ne reçoit que le résultat du script, sans aucun moyen d'avoir accès au code qui a produit ce résultat. Vous pouvez configurer votre serveur web afin qu'il analyse tous vos fichiers HTML comme des fichiers PHP. Ainsi, il n'y a aucun moyen de distinguer les pages qui sont produites dynamiquement des pages statiques.

Le grand avantage de PHP est qu'il est extrêmement simple pour les néophytes, mais offre des fonctionnalités avancées pour les experts. Ne craignez pas de lire la longue liste de fonctionnalités PHP. Vous pouvez vous plonger dans le code, et en quelques instants, écrire des scripts simples.

Bien que le développement de PHP soit orienté vers la programmation pour les sites web, vous pouvez en faire bien d'autres usages. Lisez donc la section Que peut faire PHP ? ou bien le tutoriel d'introduction si vous êtes uniquement intéressé dans la programmation web.


Que peut faire PHP ?

Tout. PHP est principalement conçu pour servir de langage de script coté serveur, ce qui fait qu'il est capable de réaliser tout ce qu'un script CGI quelconque peut faire, comme collecter des données de formulaire, générer du contenu dynamique, ou gérer des cookies. Mais PHP peut en faire bien plus.

Il y a trois domaines différents où PHP peut s'illustrer.

  • Langage de script coté serveur. C'est l'utilisation la plus traditionnelle, et aussi le principal objet de PHP. Vous aurez besoin de trois composants pour l'exploiter : un analyseur PHP (CGI ou module serveur), un serveur web et un navigateur web. Vous devez exécuter le serveur web en corrélation avec PHP. Vous pouvez accéder au programme PHP avec l'aide du navigateur web. Tout ceci peut fonctionner sur votre propre machine si vous êtes juste expérimenté dans la programmation en PHP. Voyez la section d'installation pour plus d'informations.
  • Langage de programmation en ligne de commande. Vous pouvez écrire des scripts PHP et l'exécuter en ligne de commande, sans l'aide du serveur web et d'un navigateur. Il vous suffit de disposer de l'exécutable PHP. Cette utilisation est idéale pour les scripts qui sont exécutés régulièrement (avec un cron sous Unix ou Linux), ou un gestionnaire de tâches (sous Windows). Ces scripts peuvent aussi être utilisés pour réaliser des opérations sur des fichiers texte. Voyez la section sur l'utilisation de PHP en ligne de commande pour plus d'informations.
  • Ecrire des applications clientes graphiques. PHP n'est probablement pas le meilleur langage pour écrire des applications clientes graphiques, mais si vous connaissez bien PHP et que vous souhaitez exploiter des fonctionnalités avancées dans vos applications clientes, vous pouvez utiliser PHP-GTK pour écrire de tels programmes. Vous avez aussi la possibilité d'écrire des applications très portables avec ce langage. PHP-GTK est une extension de PHP, qui n'est pas fournie dans la distribution de base. Si vous êtes intéressé par PHP-GTK, visitez » son site web.

PHP est utilisable sur la majorité des systèmes d'exploitation, comme Linux, de nombreuses variantes Unix (incluant HP-UX, Solaris et OpenBSD), Microsoft Windows, Mac OS X, RISC OS et d'autres encore. PHP supporte aussi la plupart des serveurs web actuels dont Apache, IIS et bien d'autres. Et ceci inclut tous les serveurs web qui peuvent utiliser le binaire PHP FastCGI, comme lighttpd et nginx. PHP fonctionne sous forme de module, ou comme processeur CGI.

Avec PHP vous avez le choix de votre système d'exploitation et de votre serveur web. De plus, vous avez aussi le choix d'utiliser la programmation procédurale ou objet (OOP), ou encore un mélange des deux.

Avec PHP, vous n'êtes pas limité à la production de code HTML. Les capacités de PHP lui permettent de générer aussi bien des images, des fichiers PDF, des animations Flash (avec l'aide des bibliothèques libswf et Ming) à la volée. Vous pouvez aussi générer facilement du texte, du code XML ou XHTML. PHP génère tous ces fichiers et les sauve dans le système de fichiers, ou bien les envoie directement au navigateur web.

Une des forces les plus significatives de PHP est qu'il supporte énormément de bases de données. Écrire une page web faisant appel à une base de données devient terriblement simple, en utilisant une des extensions spécifiques aux bases de données (i.e., pour mysql), ou utilisant une classe d'abstraction comme PDO, ou une connexion à n'importe quelle base de données supportant la connexion standard ouvert via l'extension ODBC. Les autres bases de données peuvent utiliser l'extension cURL ou sockets comme CouchDB.

PHP supporte de nombreux protocoles comme LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (sous Windows) et encore d'autres. Vous pouvez ouvrir des sockets réseau, et interagir avec n'importe quel autre protocole. PHP supporte le format complexe WDDX, qui permet de communiquer entre tous les langages web. En terme d'interconnexion, PHP supporte aussi les objets Java, et les utilise de manière transparente comme objets intégrés.

PHP possède des fonctionnalités utiles dans le traitement de texte, incluant les expressions rationnelles compatibles Perl (PCRE), ainsi que bon nombre d'extensions et d'utilitaires pour analyser et accéder aux documents XML. PHP standardise toutes les extensions XML sur la solide base de libxml2, et étend le jeu de fonctionnalités en ajoutant le support de SimpleXML, XMLReader et XMLWriter.

Beaucoup d'autres extensions existent, catégorisées alphabétiquement et par catégorie. Et enfin, il existe des extensions PECL qui peuvent (ou pas) être documentées dans le manuel PHP, comme » XDebug.

Comme vous le voyez, cette page n'est pas assez grande pour lister toutes les puissantes fonctionnalités de PHP. Lisez la section sur l'installation de PHP et étudiez la liste de fonctions pour avoir plus de détails sur toutes ces technologies.


Une introduction à PHP

Sommaire

  • Le nécessaire
  • Votre première page PHP
  • Trucs pratiques
  • Utiliser un formulaire
  • Utiliser des codes anciens avec les nouvelles versions de PHP
  • Et après ?

Dans cette section, nous voulons illustrer les principes de base de PHP dans une courte introduction. Ce chapitre traite uniquement de création de pages web dynamiques avec PHP, laissant de coté temporairement les autres possibilités de PHP. Voyez la section Ce que peut faire PHP pour plus d'informations.

Les pages web qui exploitent PHP sont traitées comme des pages HTML standards, et vous pouvez les créer, éditer et effacer tout comme vous le faites normalement avec des pages HTML classiques.


Le nécessaire

Dans ce tutoriel, nous présumons que vous avez un serveur web avec le support PHP activé, et que les fichiers terminés par l'extension .php sont traités par PHP. Sur la plupart des serveurs, c'est la configuration par défaut, mais n'hésitez pas à interroger votre administrateur système en cas de doute. Si votre serveur web supporte PHP, vous n'avez rien à faire. Simplement, créez un dossier, puis créez un fichier texte, avec l'extension .php : le serveur va automatiquement l'exécuter avec PHP. Il n'y a pas de compilation, ou d'installation compliquée. Gardez en tête que les fichiers sont comparables à des fichiers HTML, dans lesquels vous allez utiliser des balises magiques, qui feront beaucoup de choses pour vous.

Supposons que vous souhaitiez économiser du temps en ligne et travailler localement. Dans ce cas, vous devez installer un serveur web comme » Apache, et bien sur » PHP. Vous souhaiterez aussi installer une base de données comme » MySQL.

Vous pouvez soit installer ces logiciels individuellement ou bien d'une manière simplifiée. Notre manuel contient les instructions d'installation de PHP (en supposant que vous avez déjà un serveur web d'installé). Si vous rencontrez des problèmes dans l'installation de PHP, nous vous suggérons de poser vos questions sur notre » liste de diffusions réservée à cet usage. Si vous choisissez une version simplifiée, vous pouvez utiliser des » des installeurs qui prennent en charge l'ensemble de l'installation en quelques clics. Il est facile de configurer un serveur web avec le support de PHP sur n'importe quel système d'exploitation, y compris Mac OS, Linux et Windows. Sous Linux, vous pouvez aussi trouver des commandes comme » rpmfind et » PBone très pratiques pour rechercher les paquets pré-compilés. Vous pouvez aussi visiter » apt-get, pour des paquets Debian.


Votre première page PHP

Créez un fichier appelé bonjour.php dans votre dossier web racine (DOCUMENT_ROOT) avec le contenu suivant :

Exemple #1 Notre premier script PHP : bonjour.php

<html>
 <head>
  <title>Test PHP</title>
 </head>
 <body>
 <?php echo '<p>Bonjour le monde</p>'; ?>
 </body>
</html>

Utilisez votre navigateur pour accéder au fichier via votre serveur web, en ajoutant le nom de fichier /bonjour.php. Si vous développez localement, votre URL ressemblera à http://localhost/bonjour.php ou encore http://127.0.0.1/bonjour.php mais cela dépend de la configuration de votre serveur web. Si celui-ci est configuré correctement, le fichier sera analysé par PHP et le résultat suivant affiché :

<html>
 <head>
  <title>Test PHP</title>
 </head>
 <body>
 <p>Bonjour le monde</p>
 </body>
</html>

Ce programme est extrêmement simple et vous n'avez pas besoin de PHP pour créer une page web comme ceci. Elle ne fait qu'afficher Bonjour le monde, grâce à la fonction echo de PHP. Notez que ce fichier n'a pas besoin d'être exécutable ou autre, dans aucun cas. Le serveur sait que ce fichier a besoin d'être interprété par PHP car vous utilisez l'extension ".php", et le serveur est configuré pour les passer à PHP. Voyez cela comme une page HTML normale qui contient une série de balises spéciales qui vont vous permettre de réaliser beaucoup de choses intéressantes.

Si vous avez essayé cet exemple et qu'il n'a rien affiché de spécial, ou même qu'une boîte de dialogue a surgi pour vous proposer de le télécharger, ou encore vous avez vu le code tel que nous l'avons écrit dans le fichier, alors votre serveur web ne supporte probablement pas PHP ou est mal configuré. Demandez à votre administrateur de l'activer pour vous, en utilisant le chapitre Installation. Si vous développez localement, lisez également le chapitre d'installation afin de vous assurer que tout est configuré correctement. Assurez-vous que vous tentez d'accéder au fichier via http et que le serveur web vous fournit la sortie. Si vous appelez votre fichier depuis votre gestionnaire de fichiers, il ne sera pas analysé par PHP. Si le problème persiste malgré cela, n'hésitez pas à utiliser une » des options de support de PHP.

Le point important de cet exemple était de montrer le format des balises spéciales PHP. Nous avons utilisé ici <?php pour indiquer le début de la balise PHP. Puis, nous avons introduit les commandes PHP et refermé les balises PHP avec ?>. Vous pouvez passer du mode PHP au mode HTML et vice-versa, de cette manière, et à votre guise. Pour plus d'informations, lisez la section du manuel sur la syntaxe basique de PHP.

Note: Une note sur les retours à la ligne

Les retours à la ligne ont une signification minime en HTML, cependant, c'est toujours une bonne idée de rendre votre HTML aussi joli et proche que possible en y ajoutant des retours à la ligne. Un retour à la ligne suivant immédiatement une balise de fermeture PHP (?>) sera supprimé par PHP. Ceci peut être vraiment très utile lorsque vous insérez plusieurs blocs PHP ou fichiers inclus contenant du PHP qui n'est pas supposé afficher quoi que ce soit. En même temps, ce peut être confus. Vous pouvez ajouter un espace après la balise fermante PHP (?>) pour forcer l'espace et un retour à la ligne à afficher, ou vous pouvez ajouter explicitement un retour à la ligne dans le dernier echo/print de votre bloc PHP.

Note: Une note sur les éditeurs de texte

Il existe de nombreux éditeurs de texte et environnements de développement (IDE) que vous pouvez utiliser pour créer, éditer et gérer vos applications PHP. Une liste partielle de ces outils est entretenue à l'adresse » PHP Editor's List. Si vous voulez recommander un éditeur particulier, rendez donc une visite à cette page, et demandez au webmestre d'ajouter votre éditeur. Avoir au minimum un éditeur de texte avec la coloration syntaxique est vivement recommandé.

Note: Une note sur les traitements de texte

Les traitements de texte tels que StarOffice Writer, Microsoft Word et Abiword sont de très mauvais choix pour éditer des scripts PHP. Si vous voulez utiliser l'un d'entre eux, malgré tout, pour tester vos scripts, vous devez vous assurer que vous sauvez les fichiers au format texte seul (plain text) : sinon, PHP ne sera pas capable de lire et d'exécuter ces scripts.

Note: Une note sur le Notepad de Windows

Si vous écrivez vos scripts PHP avec Windows Notepad, vous devez vous assurer que vos fichiers sont sauvés avec l'extension .php (Notepad ajoute automatiquement une extension .txt à vos fichiers, à moins que vous ne preniez l'une des mesures suivantes). Lorsque vous sauvez un fichier, et que vous êtes invité à lui donner un nom, placez le nom du fichier entre doubles guillemets (i.e. "hello.php"). Vous pouvez également cliquer dans le menu 'Documents texte' du dialogue de sauvegarde, et choisir l'option 'Tous les fichiers'. Vous pourrez alors saisir le nom de votre fichier sans les doubles guillemets.

Maintenant vous avez créé un script PHP qui fonctionne, c'est le moment de créer le meilleur script PHP ! Faites un appel à la fonction phpinfo() et vous verrez beaucoup d'informations intéressantes sur votre système et sa configuration comme les variables pré-définies disponibles, les modules PHP chargés ainsi que la configuration. Prenez du temps pour revoir ces informations importantes.

Exemple #2 Récupération des informations du système depuis PHP

<?php phpinfo(); ?>


Trucs pratiques

Réalisons maintenant quelque chose de plus puissant. Nous allons vérifier le type de navigateur que le visiteur de notre site utilise. Pour cela, nous allons accéder aux informations que le navigateur du visiteur nous envoie, lors de sa requête HTTP. Cette information est stockée dans une variable. Les variables sont faciles à repérer, car elles commencent toutes par un signe dollar. La variable qui nous intéresse ici est $_SERVER['HTTP_USER_AGENT'].

Note:

$_SERVER est une variable spéciale de PHP, qui contient toutes les informations relatives au serveur web. C'est une variable réservée de PHP, et une superglobale. Reportez-vous aux pages du manuel traitant des Auto-globales (aussi connues sous le nom de super-globales). Ces variables spéciales ont été introduites en » PHP 4.1.0. Auparavant, il fallait utiliser les variables $HTTP_*_VARS, comme $HTTP_SERVER_VARS. Depuis PHP 5.4.0, ces anciennes variables ont été retirées. (Voir aussi la note sur l'ancien code.)

Pour afficher cette variable, nous pouvons simplement faire :

Exemple #1 Afficher le contenu d'une variable (élément de tableau)

<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>

Un résultat possible du script pourra alors être :

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Il y a de nombreux types de variables disponibles en PHP. Dans l'exemple ci-dessus, nous avons affiché un élément de Tableau (Array). Les tableaux peuvent être très utiles.

$_SERVER est juste une variable qui est automatiquement disponible dans votre script. Une liste de toutes les variables qui sont rendues disponibles est fournie dans la section Variables réservées ou vous pouvez aussi en obtenir une liste complète en lisant l'affichage de la fonction phpinfo() utilisée dans l'exemple de la section précédente.

Vous pouvez ajouter plusieurs commandes PHP dans une balise PHP, et créer de petits blocs de code qui réalisent des opérations plus complexes qu'un simple affichage. Par exemple, si nous voulons vérifier que le navigateur est bien de la famille des Internet Explorer, nous pouvons faire cela :

Exemple #2 Exemple utilisant les structures de contrôle et les fonctions

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
    echo 'Vous utilisez Internet Explorer<br />';
}
?>

Le résultat de ce script, si vous utilisez Internet Explorer, sera :

Vous utilisez Internet Explorer<br />

Ici, nous introduisons plusieurs nouveaux concepts. Nous avons une structure if. Si vous êtes familier avec les syntaxes de base du langage C, cela ne vous surprendra pas. Si vous ne connaissez pas assez le langage C ou un autre langage dont la syntaxe est similaire à celle ci-dessus, il vaudrait mieux que vous lisiez une introduction à PHP, et assimiliez les premiers chapitres, ou bien lisez le chapitre consacré à la référence du langage.

Le second concept que nous avons introduit est la fonction strpos(). strpos() est une fonction intégrée à PHP, qui recherche la présence d'une chaîne dans une autre. Dans notre cas, nous avons recherché la chaîne "MSIE" dans la chaîne $_SERVER['HTTP_USER_AGENT']. Si cette chaîne est trouvée, la fonction retourne sa position dans la chaîne et, sinon, FALSE. Si elle ne retourne pas FALSE, la structure if reçoit TRUE et le code entre accolades {} est exécuté. Sinon, le code n'est pas exécuté. N'hésitez pas à expérimenter d'autres exemples, à l'aide de if, else, et d'autres fonctions comme strtoupper() et strlen(). Chaque page de la documentation contient aussi des exemples. Si vous n'êtes pas sûr de l'utilisation de ces fonctions, vous devez lire la page du manuel "comment lire une définition de fonction" ainsi que la section sur les fonctions PHP.

Nous pouvons maintenant progresser et vous montrer comment utiliser le mode PHP, au milieu du code HTML :

Exemple #3 Passer du mode PHP au mode HTML et vice-versa

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() n'a pas retourné FALSE</h3>
<p>Vous utilisez Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() a retourné FALSE</h3>
<p>Vous n'utilisez pas Internet Explorer</p>
<?php
}
?>

Un exemple de résultat obtenu dans ce script est :

<h3>strpos() n'a pas retourné FALSE</h3>
<p>Vous utilisez Internet Explorer</p>

Au lieu d'utiliser une commande echo, pour afficher du texte, vous pouvez utiliser du code HTML pur. Le point important à noter ici et que la logique de programmation est conservée. Seul un des deux blocs HTML sera affiché, suivant le résultat de la fonction strpos(). En d'autres termes, cela dépend si la chaîne MSIE a été trouvée ou non.


Utiliser un formulaire

L'un des points forts de PHP est sa capacité à gérer les formulaires. Le concept de base qui est important à comprendre est que tous les champs d'un formulaire seront automatiquement disponibles dans le script PHP d'action. Lisez le chapitre du manuel concernant les variables depuis des sources externes à PHP pour plus d'informations et d'exemples sur la façon d'utiliser les formulaires. Voici un exemple de formulaire HTML :

Exemple #1 Un simple formulaire HTML

<form action="action.php" method="post">
 <p>Votre nom : <input type="text" name="nom" /></p>
 <p>Votre âge : <input type="text" name="age" /></p>
 <p><input type="submit" value="OK"></p>
</form>

Il n'y rien de particulier dans ce formulaire. Il est en HTML pur, sans aucune configuration particulière. Lorsque le visiteur remplit le formulaire, et clique sur le bouton OK, le fichier action.php est appelé. Dans ce fichier, vous pouvez écrire le script suivant :

Exemple #2 Afficher des données issues d'un formulaire

Bonjour, <?php echo htmlspecialchars($_POST['nom']); ?>.
Tu as <?php echo (int)$_POST['age']; ?> ans.

Voici le résultat que vous pourriez obtenir, selon les valeurs que vous avez saisies :

Bonjour Jean.
Tu as 29 ans.

Mise à part les parties htmlspecialchars() et (int), ce script ne fait que des choses évidentes. htmlspecialchars() s'assure que tous les caractères spéciaux HTML sont proprement encodés afin d'éviter des injections de balises HTML et de Javascript dans vos pages. Pour l'âge, vu que nous savons que c'est un entier, vous pouvez le convertir en un entier. Vous pouvez également demander à PHP de le faire automatiquement à votre place en utilisant l'extension filter. Les variables $_POST['nom'] et $_POST['age'] sont automatiquement créées par PHP. Un peu plus tôt dans ce tutoriel, nous avons utilisé la variable $_SERVER, une superglobale. Maintenant, nous avons introduit une autre superglobale $_POST qui contient toutes les données envoyées par la méthode POST. Notez que dans notre formulaire, nous avons choisi la méthode POST. Si vous avions utilisé la méthode GET alors notre formulaire aurait placé ces informations dans la variable $_GET, une autre superglobale. Vous pouvez aussi utiliser la variable $_REQUEST, si vous ne souhaitez pas vous embarrasser de la méthode utilisée. Elle contient un mélange des données de GET, POST, COOKIE et FILE.

Vous pouvez également utiliser des champs XForms dans PHP, même si vous vous sentez bien avec l'utilisation des formulaires HTML. Bien que le travail avec XForms ne soit pas fait pour les débutants, vous pourriez être intéressé par cette technologie. Nous avons également une courte introduction sur le traitement des données reçues par XForms dans notre section sur les fonctionnalités.


Utiliser des codes anciens avec les nouvelles versions de PHP

Maintenant que PHP est devenu un langage de script populaire, il existe de nombreuses ressources qui vous proposent des portions de code que vous pouvez réutiliser dans vos codes. Pour la plupart, les développeurs de PHP ont tâché d'assurer la compatibilité ascendante, ce qui fait que de nombreux scripts écrits pour les anciennes versions sont aussi valables pour les nouvelles versions de PHP, idéalement sans modification. En pratique, certaines modifications doivent être apportées.

Les deux modifications récentes les plus importantes qui affectent les anciens codes sont :

  • Les anciennes variables $HTTP_*_VARS ne sont plus disponible depuis PHP 5.4.0. Les nouveaux tableaux superglobaux ont été introduits en » PHP 4.1.0. Ce sont les variables suivantes : $_GET, $_POST, $_FILES, $_COOKIE, $_SERVER, $_ENV, $_REQUEST et $_SESSION.
  • Les variables externes ne sont plus enregistrées dans l'environnement par défaut. En d'autres termes, depuis PHP » 4.2.0, la directive PHP register_globals vaut off par défaut dans le php.ini. La méthode recommandée pour accéder à ces valeurs est via les tableaux superglobaux mentionnés ci-dessus. Les anciens scripts, livres et tutoriels continuent de considérer que cette directive devrait être à on. Lorsque cette directive est à on, vous pouvez utiliser la variable $id, si l'URL http://www.example.com/foo.php?id=42 a été appelée. Quelle que soit la valeur de la directive, $_GET['id'] est toujours disponible.
Pour plus de détails sur ces modifications, reportez-vous à la section sur les variables pré-définies.


Et après ?

Avec ce que vous savez, vous êtes maintenant capable de comprendre l'essentiel de la documentation PHP, et les différents scripts d'exemples disponibles dans les archives.

Différentes présentations des capacités de PHP sont disponibles sur le site des conférences PHP : » http://talks.php.net/.


Installation et configuration

  • Considérations générales sur l'installation
  • Installation sur les systèmes UNIX
    • Apache 1.3.x sur les systèmes Unix
    • Apache 2.x sur les systèmes Unix
    • Nginx 1.4.x sur les systèmes Unix
    • Lighttpd 1.4 sur les systèmes Unix
    • Installation sous Netscape et iPlanet Enterprise Serveur sur un système Sun Solaris
    • CGI et configuration en ligne de commande
    • Installation sous HP-UX
    • Installation sur les systèmes OpenBSD
    • Installation sous Solaris
    • Notes d'installation sous Debian GNU/Linux
  • Installation sur un système Mac OS X
    • Utilisation des paquets
    • Utilisation de PHP embarqué
    • Compiler PHP sur Mac OS X
  • Installation sur les système Windows
    • Requis pour l'installation
    • PECL
    • PHP Installer Tools on Windows
    • Recommended Configuration on Windows systems
    • Installation manuelle de PHP sous Windows
    • Troubleshooting PHP on Windows
    • Installation sur les anciens systèmes Windows
  • Installation sur des plateformes de Cloud Computing
    • Microsoft Azure
    • Amazon EC2
  • FastCGI Process Manager (FPM)
    • Installation
    • Configuration
  • Installation d'extensions PECL
    • Introduction aux installations PECL
    • Télécharger des extensions PECL
    • Installer une extension PHP sous Windows
    • Compilation d'extensions PECL partagées avec la commande pecl
    • Compilation des extensions partagées avec phpize
    • php-config
    • Compilation des extensions PECL statiquement dans PHP
  • Des problèmes ?
    • Lisez la FAQ
    • Autres problèmes
    • Rapports de Bogue
  • Configuration à l'exécution
    • Le fichier de configuration
    • Fichiers .user.ini
    • Où une directive de configuration peut être modifiée
    • Comment modifier la configuration


Considérations générales sur l'installation

Avant d'installer PHP, vous devez savoir ce que vous voulez faire avec PHP. Il y a trois cas d'utilisation que vous a décrit la section Que peut faire PHP ? :

  • Sites Web et applications Web (script côté serveur)
  • Scripts en ligne de commande
  • Applications à interface graphique (GUI)

Pour la première tâche, qui est de loin la plus répandue, vous avez besoin de trois choses : PHP lui-même, un serveur Web et un navigateur. Vous avez probablement un navigateur, et en fonction de votre système d'exploitation, vous pouvez aussi disposer d'un serveur Web (i.e. Apache sous Linux ou IIS sous Windows). Vous pouvez aussi louer un espace à une société. De cette façon, vous n'aurez pas à mettre en place PHP, mais uniquement à écrire vos scripts, les charger sur le serveur et voir le résultat sur votre navigateur.

Si vous installez PHP et le serveur par vous-même, vous avez deux choix. Soit sous la forme d'un module du serveur Web (via une interface directe appelée SAPI). Les serveurs qui supportent cette solution comptent notamment Apache, Microsoft Internet Information Server, Netscape et iPlanet. D'autres serveurs ont aussi le support ISAPI, l'interface de module Microsoft (OmniHTTPd par exemple). Si PHP ne supporte pas l'interface de module de votre serveur Web, vous pouvez toujours l'utiliser comme processeur CGI ou FastCGI. Cela signifie que vous devez configurer votre serveur pour qu'il utilise l'exécutable CGI de PHP, pour qu'il traite les fichiers PHP sur le serveur.

Si vous souhaitez aussi utiliser PHP en ligne de commande (écrire des scripts de génération d'image hors ligne, par exemple, ou bien traiter des textes en fonctions d'informations que vous leur fourniriez), vous aurez besoin d'un exécutable PHP. Pour plus de détails, lisez la section écrire des applications PHP en ligne de commande. Dans ce cas, vous n'aurez pas besoin de serveur Web, ni de navigateur.

Avec PHP, vous pouvez aussi écrire des interfaces graphiques clientes, en utilisant l'extension PHP-GTK. C'est une approche complètement différente de l'écriture des pages web, car vous ne générerez pas de fichiers HTML, mais vous aurez à gérer des fenêtres et des objets. Pour plus de détails sur PHP-GTK, voyez le » site officiel. PHP-GTK n'est pas inclus dans la distribution officielle de PHP.

À partir de maintenant, cette section décrit l'installation de PHP avec un serveur Web sous Unix et Windows, sous forme de module ou d'exécutables CGI.

Les codes source et les exécutables compilés pour certains OS (y compris Windows), sont disponibles à » http://www.php.net/downloads.php. Nous recommandons l'utilisation du » miroir le plus proche pour télécharger les distributions.


Installation sur les systèmes UNIX

Sommaire

  • Apache 1.3.x sur les systèmes Unix
  • Apache 2.x sur les systèmes Unix
  • Nginx 1.4.x sur les systèmes Unix
  • Lighttpd 1.4 sur les systèmes Unix
  • Installation sous Netscape et iPlanet Enterprise Serveur sur un système Sun Solaris
  • CGI et configuration en ligne de commande
  • Installation sous HP-UX
  • Installation sur les systèmes OpenBSD
  • Installation sous Solaris
  • Notes d'installation sous Debian GNU/Linux

Cette section va vous guider lors du processus d'installation et de configuration de PHP sous Unix. Commencez par étudier les sections spécifiques à votre plate-forme ou à votre serveur Web avant de passer à l'installation.

Comme ce que nous avons écrit dans le manuel dans la section Considérations générales sur l'installation, nous traiterons de l'installation de PHP sur des serveurs Web dans cette section, bien que nous couvrirons également la configuration de PHP pour l'utilisation en ligne de commande.

Il y a plusieurs manières d'installer PHP sur des plates-formes Unix : soit avec un processus de compilation/configuration, soit avec des paquets précompilés. Cette documentation est particulièrement focalisée sur le processus de compilation/configuration. Beaucoup de systèmes basés sur Unix ont plusieurs sortes de paquets d'installation pour leur système. Ils permettent de vous assister dans une configuration standard, mais si vous avez besoin d'avoir des fonctionnalités différentes (comme un serveur sécurisé ou un driver différent de bases de données), vous aurez besoin de construire PHP et/ou votre serveur Web. Si vous n'êtes pas familiarisé avec la construction et la compilation de vos propres logiciels, il sera plus simple de vérifier si quelque part, personne n'a déjà construit une version de paquet de PHP avec les fonctionnalités dont vous avez besoin.

Pré-requis :

  • Connaissance de base d'UNIX (savoir faire un "make" et compiler en C, si besoin).
  • Un compilateur ANSI C (pour les codes sources)
  • Un serveur web
  • Toute bibliothèque nécessaire pour une extension spécifique (comme GD, PDF, etc.)

Lors de la compilation depuis Git directement, ou après une modification des sources personnalisée, vous pourriez avoir aussi besoin de :

  • autoconf: 2.13+ (pour PHP < 5.4.0), 2.59+ (pour PHP >= 5.4.0)
  • automake: 1.4+
  • libtool: 1.4.x+ (sauf 1.4.2)
  • re2c: Version 0.13.4 ou plus récent
  • flex: Version 2.5.4 (pour PHP <= 5.2)
  • bison :
    • PHP 5.4 : 1.28, 1.35, 1.75, 1.875, 2.0, 2.1, 2.2, 2.3, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.5, 2.5.1, 2.6, 2.6.1, 2.6.2, 2.6.4
    • PHP 5.5 : 2.4, 2.4.1, 2.4.2, 2.4.3, 2.5, 2.5.1, 2.6, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.7
    • PHP 5.6 : 2.4 ou suivant, en excluant seulement la version 3.0 (3.0.1 et suivants sont OK)
    • PHP 7.0: 2.4 ou suivants

La configuration initiale de PHP et le processus de configuration sont contrôlés par l'utilisation du fichier configure et de ces options en lignes de commande. Vous pouvez récupérer une liste de toutes les options disponibles accompagnées d'une courte description en exécutant la commande ./configure --help. Notre manuel documente les différentes options séparément. Vous pouvez trouver les options internes en annexe, bien que les différentes options spécifiques à chaque extension sont décrites sur les pages de référence.

Lorsque PHP est configuré, vous êtes prêt à construire le module et/ou l'exécutable. La commande make devrait s'occuper de cela. Si elle échoue et que vous ne savez pas pourquoi, lisez la section Problèmes.


Apache 1.3.x sur les systèmes Unix

Cette section contient des notes spécifiques pour l'installation de PHP avec Apache sur les systèmes Unix. Des notes spécifiques pour Apache 2 sont aussi disponibles sur une page séparée.

Vous pouvez sélectionner des options à ajouter au fichier configure à la ligne 10 depuis la liste complète des options de configuration. Les numéros de versions ont été omis ici afin de s'assurer que les instructions ne soient pas incorrectes. Vous devrez donc remplacer les 'xxx' par les versions correctes de vos fichiers.

Exemple #1 Instructions d'installation de PHP (en module Apache)

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx

10. Maintenant, configurez votre PHP. C'est le moment où vous configurez PHP
    avec diverses options, comme les extensions qui seront activées. Lancez
    ./configure --help pour une liste des options disponibles. Dans notre exemple,
    nous ferons un ./configure assez simple avec uniquement le support Apache et MySQL.
    Votre chemin vers apxs peut être différent de notre exemple.

      ./configure --with-mysql --with-apxs=/www/bin/apxs

11. make
12. make install

    Si vous décidez de changer vos options de configuration après l'installation,
    vous aurez juste besoin de répéter les trois dernières étapes. Vous aurez aussi besoin
    de redémarrer apache pour que le nouveau module soit chargé. Une recompilation de
    Apache n'est pas nécessaire.

    Notez que, à moins de l'avoir explicitement désactivé, 'make install' installera aussi PEAR,
    et des outils PHP tels que phpize, installera le CLI PHP, etc.

13. Configurez votre fichier php.ini :

      cp php.ini-development /usr/local/lib/php.ini

    Vous pouvez éditer votre fichier .ini pour régler certaines options PHP. Si vous souhaitez
    votre php.ini à un autre endroit, utilisez --with-config-file-path=/votre/chemin lors de
    l'étape 10.

    Si vous utilisez plutôt php.ini-production, assurez-vous de lire l'ensemble des changements
    qui y sont contenus, car ils modifient le fonctionnement de PHP.

14. Éditez votre httpd.conf afin de charger le module PHP. Le chemin dans la partie droite de la
    directive LoadModule doit pointer vers l'endroit où se trouve le module PHP sur votre système.
    Le make install lancé plus haut l'y aura certainement déjà déposé pour vous,
    mais assurez vous en.

      LoadModule php5_module libexec/libphp5.so

15. Et dans la section AddModule de httpd.conf, quelque part en dessous de
    ClearModuleList, ajoutez ceci :

      AddModule mod_php5.c

16. Dites à Apache de faire analyser certaines extensions par PHP. Par exemple,
    faites analyser l'extension .php par PHP. Vous pouvez ajouter n'importe quelle(s)
    extension(s) à analyser juste en l'(les)ajoutant à la suite, séparée(s) par un espace.
    Nous ajouterons .phtml dans notre exemple.

      AddType application/x-httpd-php .php .phtml

    Il est assez fréquent de configurer l'extension .phps comme code source PHP colorisé,
    ce qui peut être fait ainsi :

      AddType application/x-httpd-php-source .phps

17. Utilisez votre méthode habituelle pour démarrer le serveur Apache.
    (vous devez l'éteindre et le redémarrer, pas seulement lui envoyer
    un signal HUP ou USR1.)

Alternativement, pour installer PHP en tant qu'objet statique :

Exemple #2 Instructions d'installation (installation en tant que module statique d'Apache) de PHP

1.  gunzip -c apache_1.3.x.tar.gz | tar xf -
2.  cd apache_1.3.x
3.  ./configure
4.  cd ..

5.  gunzip -c php-5.x.y.tar.gz | tar xf -
6.  cd php-5.x.y
7.  ./configure --with-mysql --with-apache=../apache_1.3.x
8.  make
9.  make install

10. cd ../apache_1.3.x

11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a
    (La ligne ci-dessus est correcte ! Oui, nous savons que libphp5.a n'existe pas à
    ce moment. On ne le suppose pas non plus. Il sera créé.)

12. make
    (vous devriez avoir maintenant un binaire httpd que vous pouvez copier dans votre
    dossier de binaire Apache ; si c'est votre première installation, vous devez exécuter la
    commande "make install")

13. cd ../php-5.x.y
14. cp php.ini-development /usr/local/lib/php.ini

15. Vous pouvez éditer le fichier /usr/local/lib/php.ini pour définir les options de PHP.
    Éditez votre fichier httpd.conf ou srm.conf et ajoutez :
    AddType application/x-httpd-php .php

Suivant votre installation d'Apache et votre variante d'Unix, il existe de nombreuses façons d'arrêter et redémarrer Apache. Voici une liste des commandes typiques, pour différentes installations. Remplacez /path/to/ par le chemin d'accès à vos applications sur votre système.

Exemple #3 Exemples de commandes pour le redémarrage d'apache

1. Nombreuses variantes Linux SysV :
/etc/rc.d/init.d/httpd restart

2. Avec les scripts apachectl :
/path/to/apachectl stop
/path/to/apachectl start

3. httpdctl et httpsdctl (utilisant OpenSSL), similaires à apachectl :
/path/to/httpsdctl stop
/path/to/httpsdctl start

4. En utilisant mod_ssl, ou un autre serveur SSL, vous pouvez vouloir l'arrêter
et le démarrer manuellement :
/path/to/apachectl stop
/path/to/apachectl startssl

L'emplacement des exécutables apachectl et http(s)dctl peut varier. Si votre système est pourvu des commandes locate, whereis ou which, elles peuvent vous aider à retrouver vos programmes.

Différents exemples de compilation PHP pour Apache suivent :

./configure --with-apxs --with-pgsql

Cette commande va créer une bibliothèque partagée libphp5.so qui sera chargée par Apache avec une ligne LoadModule dans le fichier httpd.conf. Le support PostgreSQL est aussi inclus dans cette bibliothèque.

./configure --with-apxs --with-pgsql=shared

Cette commande va créer une bibliothèque partagée libphp5.so pour Apache, mais va aussi créer la bibliothèque partagée pgsql.so qui sera chargée dans PHP avec une directive du fichier php.ini ou en la chargeant explicitement dans le script avec la fonction dl().

./configure --with-apache=/path/to/apache_source --with-pgsql

Cette commande va créer une autre bibliothèque partagée libmodphp5.a, un fichier mod_php5.c et quelques fichiers associés dans le dossier src/modules/php4 du dossier source Apache. Puis, vous devez compiler Apache avec --activate-module=src/modules/php5/libphp5.a et le système de compilation d'Apache va créer un fichier libphp5.a et le lier statiquement avec httpd. Le support PostgreSQL est alors inclus directement dans l'exécutable httpd, ce qui fait que le résultat final est un fichier unique httpd, qui inclut Apache et PHP.

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

Comme précédemment, mais au lieu d'inclure le support PostgreSQL directement dans l'exécutable httpd final, vous allez obtenir une bibliothèque partagée pgsql.so que vous pouvez charger dans PHP soit grâce au fichier de configuration php.ini ou dynamiquement avec dl().

Lorsque vous faites votre choix entre les différents modes de compilation de PHP, vous devez prendre en compte leurs avantages et inconvénients respectifs. Les objets partagés permettent de compiler PHP et Apache de manière séparée, et vous n'aurez pas à compiler l'ensemble pour faire évoluer PHP. La compilation statique permet de charger et d'exécuter plus rapidement PHP. Pour plus d'informations, voyez la page web sur le » support des DSO.

Note:

Le httpd.conf par défaut d'Apache est fourni avec une section qui ressemble à ceci :

User nobody
Group "#-1"
À moins que vous ne changiez cette valeur par "Group nogroup" ou quelque chose comme ça ("Group daemon" est aussi classique), PHP ne sera pas capable d'ouvrir des fichiers.

Note:

Assurez-vous que vous spécifiez la version installée de apxs avec l'option --with-apxs=/path/to/apxs . Vous NE devez PAS utiliser la version d'apxs qui est dans les sources d'Apache, mais celle qui est réellement installée sur votre système.


Apache 2.x sur les systèmes Unix

Cette section contient les notes et conseils d'installation de PHP avec le serveur Apache 2.x sur les systèmes Unix.

Avertissement

Nous ne recommandons pas l'utilisation de PHP dans un environnement threadé MPM, avec Apache 2. Utilisez le mode prefork MPM, qui est le MPM par défaut pour Apache 2.0 et 2.2. Pour savoir pourquoi, lisez l'entrée de la FAQ correspondante à l'utilisation d'Apache 2 dans un environnement threadé MPM.

La » Documentation Apache est la meilleure source d'informations sur le serveur Apache 2.x. La plupart des informations sur les options d'installation d'Apache peut y être trouvée.

La version la plus récente du serveur HTTP Apache peut être obtenue depuis la » page de téléchargement d'Apache, et une version adaptée de PHP depuis les liens ci-dessus. Ce guide couvre uniquement les bases de fonctionnement d'Apache 2.x avec PHP. Pour plus d'informations, lisez la » documentation Apache. Les numéros de version sont omis ici, pour s'assurer que les instructions ne soient pas incorrectes. Dans les exemples ci-dessous, 'NN' devra être remplacé par la version spécifique d'Apache à utiliser.

Il y a actuellement 2 versions d'Apache 2.x - 2.0 et 2.2. Il y a plusieurs raisons de choisir l'une plutôt que l'autre ; néanmoins, la version 2.2 est actuellement la dernière versions disponible et c'est aussi celle que nous vous recommandons. Cependant, les instructions contenues dans ce guide devraient fonctionner pour la version 2.2 comme pour la version 2.0.

  1. Téléchargez le serveur HTTP Apache depuis le site ci-dessus et décompressez-le :

    gzip -d httpd-2_x_NN.tar.gz
tar -xf httpd-2_x_NN.tar

  2. De la même façon, téléchargez et décompressez les sources de PHP :

    gunzip php-NN.tar.gz
tar -xf php-NN.tar

  3. Compilez et installez Apache. Consultez la documentation sur l'installation d'Apache pour plus de détails quant à la compilation de ce logiciel.

    cd httpd-2_x_NN
./configure --enable-so
make
make install

  4. Maintenant que vous avez Apache 2.x.NN de disponible sous /usr/local/apache2, configurez-le avec le support pour le chargement de modules, ainsi que le MPM prefork standard. Pour tester votre installation, utilisez la procédure normale pour démarrer le serveur Apache, i.e. :

    /usr/local/apache2/bin/apachectl start
    et arrêtez-le pour continuer dans la configuration de PHP :
    /usr/local/apache2/bin/apachectl stop

  5. Maintenant, configurez et compilez PHP. Ce sera à ce moment là où vous pourrez personnaliser PHP avec les diverses options disponibles, comme la liste des extensions à activer. Dans notre exemple, nous effectuerons une configuration simple, avec Apache 2 et le support MySQL.

    Si vous avez construis Apache depuis les sources, tel que décrit ci-dessus, l'exemple suivant devrait être correct concernant les chemins vers les apxs, mais si vous avez installez Apache d'une autre façon, vous devrez prendre en compte vos spécificités et ajustez les chemins apxs en conséquent. Notez que suivants les distributions, vous pourriez être amené à renommer apxs en apxs2.

    cd ../php-NN
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
make
make install

    Si vous décidez de modifier les options de configuration après l'installation, vous devrez exécuter de nouveau les étapes "configure", "make" et "make install". Vous n'aurez alors qu'à redémarrer Apache pour que le nouveau module prenne effet. Une re-compilation d'Apache n'est pas nécessaire.

    Notez que, sauf indications contraires, l'étape "make install" installera également PEAR, mais aussi divers outils PHP comme phpsize, PHP CLI et bien plus encore.

  6. Setup your php.ini

    cp php.ini-development /usr/local/lib/php.ini

    Vous devez éditer le fichier .ini pour définir les options PHP. Si vous préférez placer ce fichier dans un autre répertoire, utilisez l'option --with-config-file-path=/some/path à l'étape 5.

    Si vous choisissez le fichier php.ini-production, assurez-vous de lire la liste des modifications correspondante car il peut affecter considérablement la façon dont PHP fonctionnera.

  7. Éditez le fichier httpd.conf pour charger le module PHP. Le chemin spécifié à droite de la chaîne LoadModule, doit correspondre au chemin système du module PHP. L'étape "make install" ci-dessus devrait avoir réalisé cette opération à votre place, mais une simple vérification permettra de s'en assurer.

    LoadModule php5_module modules/libphp5.so

  8. Dites à Apache d'analyser certaines extensions comme étant des scripts PHP. Par exemple, laissez Apache passer à PHP les fichiers dont l'extension est .php. Au lieu d'utiliser seulement la directive AddType d'Apache, nous souhaitons éviter tout risque potentiellement dangereux, lors d'un téléchargement de de la création de fichier comme exploit.php.jpg, d'exécution PHP. En utilisant cette exemple, vous pouvez avoir n'importe quelle extension d'analyser par PHP. Nous avons ajouté .php pour l'exemple.

    <FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

    Ou, si vous voulez autoriser les fichiers .php, .php2, .php3, .php4, .php5, .php6, et .phtml à être analysés par PHP, mais rien d'autre, nous utiliserons ceci :

    <FilesMatch "\.ph(p[2-6]?|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

    Et pour autoriser les fichiers .phps à être gérés par le filtre du code source de PHP, et ainsi, être affichés comme code source avec la coloration syntaxique, utilisez ceci :

    <FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

    mod_rewrite peut être utilisé pour permettre à n'importe quel fichier .php d'être affiché comme code source avec coloration syntaxique, sans pour autant avoir besoin de le renommer ou de le copier avec une extension .phps. :

    RewriteEngine On
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]

    Le filtre de code source PHP ne devrait pas être actif sur des systèmes de production, car il peut exposer du code confidentiel ou des informations sensibles contenues dans le code source.

  9. Utilisez la procédure normale pour démarrer le serveur Apache, i.e. :

    /usr/local/apache2/bin/apachectl start

    Ou

    service httpd restart

Si vous avez suivi les étapes précédentes, vous avez maintenant un serveur web Apache2 fonctionnel avec le support PHP comme module SAPI. Bien sûr, il y a une multitude d'autres options de configuration de disponibles avec Apache et PHP. Pour plus d'informations, entrez la commande ./configure --help dans l'arbre source correspondant.

Apache peut être compilé en mode multi-threadé, en sélectionnant le MPM worker, plutôt que le standard MPM prefork. Ceci est fait en ajoutant l'option suivante à l'argument de la commande "./configure", à l'étape 3 ci-dessus :

--with-mpm=worker

Cela ne devrait pas être entrepris sans être conscients des conséquences, et ayant au moins une juste compréhension de ce que cela implique. La documentation Apache concernant » MPM-Modules vous apportera d'importantes informations qui vous permettra de prendre votre décision.

Note:

La FAQ Apache MultiViews traite de l'utilisation MultiViews avec PHP.

Note:

Pour compilez une version multi-threadée d'Apache, le système cible doit supporter les threads. Dans ce cas, PHP doit également être construit avec l'expérimental Zend Thread Safety (ZTS). Sous cette configuration, toutes les extensions ne seront pas disponibles. Nous vous recommandons de compiler Apache avec le prefork MPM-Module.


Nginx 1.4.x sur les systèmes Unix

Cette documentation couvre l'installation et la configuration de PHP avec PHP-FPM pour le serveur HTTP Nginx 1.4.x.

Ce guide suppose que vous avez compilé Nginx à partir des sources et donc tous les binaires et fichiers de configuration se trouvent dans /usr/local/nginx. Si ce n'est pas le cas et que vous avez obtenu Nginx par d'autres moyens, veuillez vous référer au » Wiki d'Nginx pour adapter ce manuel pour votre configuration.

Ce guide couvre les bases de la configuration du serveur Nginx afin de parvenir à servir une application PHP sur le port 80. Il est recommandé d'étudier les documentations d'Nginx et de PHP-FPM afin d'optimiser votre installation.

Veuillez noter que tout au long de cette documentation, les numéros de version ont été remplacé par un "x" pour assurer que cette dernière reste correcte dans l'avenir. Pensez à les remplacer par votre numéro de version.

  1. Il est recommandé de consulter la » documentation de Nginx afin de l'installer sur votre système.

  2. Récupérer et décompresser les sources de PHP :

    tar zxf php-x.x.x

  3. Configurer et compiler PHP. Ce sera le moment où vous pourrez personaliser PHP avec diverses options, comme les extensions à activer. Exécuter ./configure --help pour obtenir une liste des options disponibles. Dans notre exemple, vous effectuerons une configuration simple avec le support PHP-FPM et MySQL.

    cd ../php-x.x.x
./configure --enable-fpm --with-mysql
make
sudo make install

  4. Récupérer et déplacer les fichiers de configuration dans les bons dossiers

    cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin

  5. Il est important que vous empéchiez Nginx de passer les requêtes au backend PHP-FPM si le fichier n'existe pas, évitant ainsi les failles par injections arbitraires de scripts.

    Nous pouvons réaliser cela en définissant la directive de configuration cgi.fix_pathinfo à la valeur 0 dans votre php.ini.

    Editer php.ini :

    vim /usr/local/php/php.ini

    Trouver la directive cgi.fix_pathinfo= et modifier là comme ceci :

    cgi.fix_pathinfo=0

  6. Le fichier php-fpm.conf doit être modifié pour spécifier que php-fpm doit être exécuté avec l'utilisateur www-data et le groupe www-data avant de démarrer le service :

    vim /usr/local/etc/php-fpm.conf

    Trouver et modifier ce qui suit :

    ; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = www-data
group = www-data

    Le service php-fpm peut maintenant être démarré :

    /usr/local/bin/php-fpm

    Ce guide ne va pas configurer php-fpm plus que cela ; si vous êtes intéressé dans la configuration avancée de php-fpm, veuillez consulter la documentation.

  7. Nginx doit maintenant être configuré pour supporter l'analyse des applications PHP :

    vim /usr/local/nginx/conf/nginx.conf

    Modifier le bloc par défaut afin qu'il puisse servir des fichiers .php :

    location / {
    root   html;
    index  index.php index.html index.htm;
}

    La prochaine étape permet d'assurer que les fichiers .php soient passés au backend PHP-FPM ; Sous le bloc commenté par défaut et entrez :

    location ~* \.php$ {
    fastcgi_index   index.php;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}

    Redémarrer Nginx.

    sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx

  8. Créez un fichier de test

    rm /usr/local/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php

    Maintenant, naviguez vers http://localhost. Le phpinfo() devrait maintenant être affiché.

En suivant ces différentes étapes, vous devriez exécuter un serveur web Nginx avec le support de PHP comme module SAPI. Bien entendu, il y a beaucoup plus d'options de configuration de disponible pour Nginx et PHP. Pour plus d'informations, tapez ./configure --help dans la source correspondante.


Lighttpd 1.4 sur les systèmes Unix

Cette section contient des informations spécifiques sur l'installation de PHP avec Lighttpd 1.4 sur les systèmes Unix.

Reportez-vous à » Lighttpd pour une installation correcte de Lighttpd avant de continuer.

Fastcgi est le SAPI préféré pour connecter PHP et Lighttpd. Fastcgi active automatiquement php-cgi depuis PHP 5.3.0, mais pour les versions antérieures, vous devez configurer PHP avec l'option de compilation --enable-fastcgi. Pour vous assurez de l'activation de fastcgi, le résultat de la commande php -v doit contenir PHP 5.2.5 (cgi-fcgi). Avant PHP 5.2.3, fastcgi était activé dans le binaire PHP (php-cgi n'existait pas).

Appel de PHP par Lighttpd

Pour configurer Lighttpd afin qu'il se connecte à PHP et appelle le processus fastcgi, vous devez éditez le fichier lighttpd.conf. Une connexion par sockets est la solution préférée pour les systèmes locaux.

Exemple #1 Portion du fichier lighttpd.conf

server.modules += ( "mod_fastcgi" )

fastcgi.server = ( ".php" =>
  ((
    "socket" => "/tmp/php.socket",
    "bin-path" => "/usr/local/bin/php-cgi",
    "bin-environment" => (
      "PHP_FCGI_CHILDREN" => "16",
      "PHP_FCGI_MAX_REQUESTS" => "10000"
    ),
    "min-procs" => 1,
    "max-procs" => 1,
    "idle-timeout" => 20
  ))
)

La directive bin-path permet à lighttpd d'appeler le processus fastcgi dynamiquement. PHP appellera les fils suivant la variable d'environnement PHP_FCGI_CHILDREN. La directive "bin-environment" définit l'environnement pour les processus appelés. PHP terminera un processus fils lorsque le nombre de requêtes spécifié par PHP_FCGI_MAX_REQUESTS a été atteint. Les directives "min-procs" et "max-procs" peuvent généralement être ignorées avec PHP. PHP gère ces propres fils et caches opcode comme APC qui partage uniquement les fils gérés par PHP. Si "min-procs" est défini à quelque chose de supérieur à 1, le nombre total de réponses PHP sera multiplié par PHP_FCGI_CHILDREN (2 min-procs * 16 fils, donne 32 réponses).

Appel avec spawn-fcgi

Lighttpd fournit un programme appelé spawn-fcgi afin de rendre plus facile les appels des processus fastcgi.

Appel de php-cgi

Il est possible d'appeler des processus sans spawn-fcgi, avec un minimum de configuration. La variable d'environnement PHP_FCGI_CHILDREN contrôle le nombre de fils que PHP appelle pour gérer les demandes. La variable d'environnement PHP_FCGI_MAX_REQUESTS détermine la durée de vie, en nombre de requêtes, de chaque fils. Voici un script bash simple qui permet d'aider les appels aux répondeurs PHP.

Exemple #2 Appel des répondeurs FastCGI

#!/bin/sh

# Localisation du binaire php-cgi
PHP=/usr/local/bin/php-cgi

# Localisation  du fichier PID
PHP_PID=/tmp/php.pid

# Liaison à une adresse
#FCGI_BIND_ADDRESS=10.0.1.1:10000
# Liaison à un socket du domaine
FCGI_BIND_ADDRESS=/tmp/php.sock

PHP_FCGI_CHILDREN=16
PHP_FCGI_MAX_REQUESTS=10000

env -i PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN \
       PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS \
       $PHP -b $FCGI_BIND_ADDRESS &

echo $! > "$PHP_PID"

Connexion à des instances FCGI distantes

Les instances Fastcgi peuvent être appelées sur plusieurs machines distantes afin de répartir les applications.

Exemple #3 Connexion à des instances distantes de php-fastcgi

fastcgi.server = ( ".php" =>
   (( "host" => "10.0.0.2", "port" => 1030 ),
    ( "host" => "10.0.0.3", "port" => 1030 ))
)


Installation sous Netscape et iPlanet Enterprise Serveur sur un système Sun Solaris

Cette section contient les notes et détails spécifiques à l'installation de PHP sur les serveurs Web Sun Java System Web Server, Sun ONE Web Server, iPlanet et Netscape server sur les systèmes Sun Solaris.

Depuis PHP 4.3.3, vous pouvez utiliser les scripts PHP avec le module NSAPI pour gérer des listes de dossiers et des pages d'erreurs personnalisées. Des fonctions supplémentaires sont disponibles pour assurer la compatibilité avec Apache. Pour du support sur les serverus courants, voyez la note sur les sous-requêtes.

Vous pouvez trouver plus d'informations sur la configuration de PHP avec Netscape Enterprise Server : » http://benoit.noss.free.fr/php/install-php4.html

Pour construire PHP avec les serveurs Web Sun JSWS/Sun ONE WS/iPlanet/Netscape, entrez le répertoire valide d'installation pour l'option --with-nsapi=[DIR]. Le répertoire par défaut est habituellement /opt/netscape/suitespot/. Lisez également le fichier /php-xxx-version/sapi/nsapi/nsapi-readme.txt.

  1. Installez les packages suivants depuis le serveur » http://www.sunfreeware.com/ ou un miroir ad hoc :

    • autoconf-2.13
    • automake-1.4
    • bison-1_25-sol26-sparc-local
    • flex-2_5_4a-sol26-sparc-local
    • gcc-2_95_2-sol26-sparc-local
    • gzip-1.2.4-sol26-sparc-local
    • m4-1_4-sol26-sparc-local
    • make-3_76_1-sol26-sparc-local
    • mysql-3.23.24-beta (si vous voulez le support MySQL)
    • perl-5_005_03-sol26-sparc-local
    • tar-1.13 (GNU tar)

  2. Assurez-vous que le path inclut bien les dossiers nécessaires : PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin et rendez-le accessible à votre système avec export PATH.
  3. gunzip php-x.x.x.tar.gz (si vous avez une distribution .gz, ou bien allez en 4).
  4. tar xvf php-x.x.x.tar
  5. Passez dans votre dossier d'extraction PHP : cd ../php-x.x.x

  6. Pour les étapes suivantes, assurez-vous que /opt/netscape/suitespot/ correspond bien à votre installation du serveur netscape. Sinon, indiquez le chemin correct :

    ./configure --with-mysql=/usr/local/mysql \
--with-nsapi=/opt/netscape/suitespot/ \
--enable-libgcc

  7. Faites un make puis un make install.

Après avoir fait l'installation de base et lu les fichiers readme.txt, vous pouvez avoir besoin de faire des configurations supplémentaires.

Instructions de configuration pour Sun/iPlanet/Netscape

Tout d'abord, vous aurez besoin d'ajouter des chemins dans la variable LD_LIBRARY_PATH pour que Netscape trouve son bonheur. Il est préférable de le faire dans le script de démarrage du serveur Netscape. Les utilisateurs Windows peuvent ignorer cette étape. Le script de démarrage est souvent situé dans : /path/to/server/https-servername/start. Vous aurez peut être à éditer le fichier de configuration situé dans /path/to/server/https-servername/config/.

  1. Ajoutez les lignes suivantes dans mime.types en tant qu'administrateur :

    type=magnus-internal/x-httpd-php exts=php

  2. Éditez le fichier magnus.conf (pour les serveurs >= 6) ou le fichier obj.conf (pour les serveurs < 6) et ajoutez-y les lignes suivantes. shlib peut varier en fonction de votre OS. Pour Unix, c'est quelque chose comme /opt/netscape/suitespot/bin/libphp4.so. Il est conseillé de placer les lignes suivantes après les lignes de mime types init.

    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/opt/netscape/suitespot/bin/libphp4.so"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]
    (PHP >= 4.3.3) Le paramètre php_ini est optionnel mais, avec lui, vous pouvez placer votre php.ini dans le dossier de configuration de votre serveur web.

  3. Configurez l'objet par défaut dans le fichier obj.conf (pour les classes de serveur virtuel [version 6.0+] dans leur fichier vserver.obj.conf) :

    <Object name="default">
.
.
.
.#NOTE this next line should happen after all 'ObjectType' and before all 'AddLog' lines
Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
.
.
</Object>
    (PHP >= 4.3.3) Comme paramètres additionnels, vous pouvez ajouter quelques valeurs spéciales dans le php.ini. Par exemple, vous pouvez définir un spécifique docroot="/path/to/docroot" où le contexte php4_execute est appelé. Pour les init-keys booléens, utilisez les valeurs 0/1, et non pas "On","Off",... (cela ne fonctionnera pas correctement), e.g. zlib.output_compression=1 au lieu de zlib.output_compression="On"

  4. Cela est nécessaire uniquement si vous voulez configurer un répertoire pour accueillir des scripts PHP tout comme un répertoire cgi-bin :

    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
    Après cela, vous pouvez configurer un répertoire dans le serveur d'administration et y assigner le style x-httpd-php. Tous les fichiers dans ce répertoire seront exécutés comme étant du PHP. C'est pratique pour cacher l'usage de PHP en renommant les fichiers en .html.

  5. Configuration de l'identification : les identifications PHP ne peuvent être utilisées avec aucune autre identification. TOUTES LES IDENTIFICATIONS SONT PASSEES À VOS SCRIPTS PHP. Pour configurer l'identification PHP pour tout le serveur web, ajoutez la ligne suivante à votre objet par défaut :

    <Object name="default">
AuthTrans fn=php4_auth_trans
.
.
.
</Object>

  6. Pour utiliser l'identification PHP dans un seul répertoire, ajoutez ce qui suit :

    <Object ppath="d:\path\to\authenticated\dir\*">
AuthTrans fn=php4_auth_trans
</Object>

Note:

La taille de la pile que PHP utilise dépend de la configuration du serveur Web. Si vous rencontrez des crashs avec les grands scripts PHP, il est recommandé d'augmenter la taille de la pile avec la console d'administration : dans la section "MAGNUS EDITOR".

Environnement CGI et modifications recommandées du php.ini

Il est important de garder en tête que iPlanet/SunONE/Netscape est un serveur Web multi-threadé. Comme toutes les requêtes se situent dans le même contexte (c'est le contexte sur serveur Web), et que ce contexte est unique, si vous voulez accéder à des variables comme PATH_INFO, HTTP_HOST etc., il n'est pas recommandé d'y accéder à l'ancienne manière de PHP, avec la fonction getenv() ou une autre méthode (register globals, $_ENV). De cette manière, vous n'aurez que des valeurs d'environnement du serveur, et non pas des valeurs correctes pour le CGI.

Note:

Pourquoi est-ce que les variables CGI sont invalides ?

C'est lié au fait que le processus du serveur Web est lancé par l'administrateur du serveur, qui utilise le script de lancement au démarrage. En fait, il aurait fallu que vous lanciez vous-même le processus. C'est pour cela que l'environnement du serveur Web contient des variables d'environnement CGI. Vous pouvez vérifier cela en lançant le serveur Web depuis un autre endroit que l'administrateur du serveur : utilisez la ligne de commande Unix en tant que root : vous verrez alors qu'il n'y a pas de variables d'environnement.

Changez simplement vos scripts pour lire les variables CGI, en utilisant le tableau superglobal $_SERVER. Si vous avez d'autres scripts qui utilisent encore $HTTP_HOST et compagnie, il est recommandé d'activer l'option register_globals dans le php.ini et de changer l'ordre des variables. IMPORTANT : supprimez le "E" dans cette option, car vous n'en avez pas besoin pour cet environnement.

variables_order = "GPCS"
register_globals = On

Utilisation particulière pour les pages d'erreurs ou les listages spécifiques de dossier (PHP >= 4.3.3)

Vous pouvez utiliser PHP pour générer des pages d'erreurs de type "404 Not Found" ou apparentée. Ajoutez la ligne suivante dans le fichier obj.conf pour chaque page d'erreur que vous souhaitez remplacer :

Error fn="php4_execute" code=XXX script="/chemin/vers/script.php" [inikey=value inikey=value...]
où XXX est le code d'erreur HTTP. Effacez toute autre directive Error qui pourrait interférer avec la vôtre. Si vous voulez utiliser une page pour toutes les erreurs qui existent, laissez le paramètre code vide. Votre script peut obtenir le code de statut HTTP dans la variable $_SERVER['ERROR_TYPE'].

Une autre possibilité est de générer une liste de dossiers personnalisée. Créez simplement un script PHP qui affiche le contenu du dossier, et remplacez la ligne Service par défaut par type="magnus-internal/directory" dans obj.conf avec ceci :

Service fn="php4_execute" type="magnus-internal/directory" script="/chemin/vers/script.php" [inikey=value inikey=value...]
Pour ces deux points, l'URI originale et l'URI traduite sont dans les variables $_SERVER['PATH_INFO'] et $_SERVER['PATH_TRANSLATED'].

Note au sujet de nsapi_virtual() et des requêtes (PHP >= 4.3.3)

Le module NSAPI supporte désormais la fonction nsapi_virtual() (alias : virtual()), pour réaliser des sous requêtes au serveur Web, et inclure le résultat dans une page. Le problème est que cette fonction utilise une fonctionnalité non documentée de la bibliothèque NSAPI. Sous Unix, ce n'est pas un problème, car le module va automatiquement rechercher les fonctions nécessaires, et les utiliser si elles sont disponibles. Sinon, nsapi_virtual() sera désactivée.

Note:

Soyez prévenu : le support de nsapi_virtual() est EXPERIMENTAL !


CGI et configuration en ligne de commande

Par default, PHP est construit comme programmes à la fois CLI et CGI, pouvant être utilisé comme processeur CGI. Si vous utilisez un serveur qui supporte le module PHP, vous devriez en général utiliser cette solution pour des raisons de performances. Cependant, la version CGI permet aux utilisateurs de lancer des pages PHP sous différent id utilisateurs (Unix).

Avertissement

En utilisant le mode CGI, votre serveur est ouvert à de possibles attaques sérieuses. Lisez attentivement notre section sur la sécurité en mode CGI pour apprendre comment vous défendre contre ces attaques.

Tests

Si vous avez compilé PHP comme programme CGI, vous pouvez tester votre produit en tapant : make test. C'est toujours une bonne chose de tester le résultat d'une compilation. Cela vous permet de repérer des problèmes entre PHP et votre plate-forme, plutôt que d'attendre qu'ils surviennent.

Utiliser les variables prédéfinies

Certaines variables d'environnement fournies par les serveurs Web ne sont pas disponibles dans les » spécifications CGI/1.1 actuelles. Seules les variables suivantes sont définies, et les autres doivent être considérées comme spécifiques aux serveurs Web : AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD, SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL et SERVER_SOFTWARE.


Installation sous HP-UX

Cette section contient les notes et conseils d'installation de PHP sur les distributions HP-UX.

Il y a deux façons d'installer PHP sur les systèmes HP-UX. Soit en le compilant, soit en installant des binaires précompilés.

Les paquets pré-compilés officiels sont disponibles ici : » http://software.hp.com/

En attendant que cette section du manuel soit réécrite, la documentation concernant la compilation de PHP (ainsi que les extensions associées) sur les systèmes HP-UX a été effacée. Pour le moment, veuillez-vous référer à cette ressource externe : » Mise en place d'Apache et de PHP sous HP-UX 11.11


Installation sur les systèmes OpenBSD

Cette section contient les notes spécifiques à l'installation de PHP sous » OpenBSD 3.6.

Utilisation des paquets binaires

Cette méthode est la méthode recommandée pour installer PHP sur OpenBSD. C'est aussi la méthode la plus simple. Le paquet core a été séparé des modules et chacun d'entre eux peut être installé et supprimé indépendamment des autres. Les fichiers dont vous avez besoin sont sur le CD OpenBSD ou sur le site FTP.

Le paquet principal que vous devez installer est php4-core-4.3.8.tgz, qui contient le moteur de base, plus gettext et iconv). Puis, jetez un oeil aux paquets de module, comme php4-mysql-4.3.8.tgz ou php4-imap-4.3.8.tgz. Vous devez utiliser la commande phpxs pour activer et désactiver ces modules dans votre php.ini.

Exemple #1 Exemple d'installation de PHP sous OpenBSD avec Ports

# pkg_add php4-core-4.3.8.tgz
# /usr/local/sbin/phpxs -s
# cp /usr/local/share/doc/php4/php.ini-recommended /var/www/conf/php.ini
  (add in mysql)
# pkg_add php4-mysql-4.3.8.tgz
# /usr/local/sbin/phpxs -a mysql
  (add in imap)
# pkg_add php4-imap-4.3.8.tgz
# /usr/local/sbin/phpxs -a imap
  (remove mysql as a test)
# pkg_delete php4-mysql-4.3.8
# /usr/local/sbin/phpxs -r mysql
  (install the PEAR libraries)
# pkg_add php4-pear-4.3.8.tgz

Lisez la page de manuel Unix » packages(7) pour plus de détails sur les packages binaires d'OpenBSD.

Utilisation des ports

Vous pouvez aussi compiler PHP en utilisant » l'arbre des ports. Cette méthode est recommandée aux utilisateurs expérimentés de OpenBSD. Le port PHP4 est scindé en deux sous-dossiers : core et extensions. Le dossier extensions génère les sous paquets de tous les modules PHP. Si vous souhaitez ne pas créer ces modules, vous pouvez utiliser la commande en ligne no_* FLAVOR. Par exemple, pour ne pas compiler le module imap, utilisez FLAVOR avec la valeur no_imap.

Problèmes courants

  • L'installation par défaut d'Apache fonctionne dans un » contexte chroot(2), qui va limiter l'accès des scripts PHP au dossier /var/www. Vous devez donc créer un dossier /var/www/tmp pour que les sessions PHP soient stockées, ou bien utiliser une autre solution de sauvegarde. De plus, les sockets de bases de données doivent être placés dans ce dossier, ou bien utiliser l'interface localhost. Si vous utilisez des fonctions de réseau avec des fichiers comme /etc, par exemple /etc/resolv.conf, et /etc/services, vous devrez les rendre accessibles aussi dans /var/www/etc. Le paquet OpenBSD PEAR installe automatiquement les bons dossiers, ce qui fait que rien n'est nécessaire. Plus d'informations sur OpenBSD Apache sont disponibles sur OpenBSD FAQ.
  • Le paquet OpenBSD 3.6 pour l'extension » gd requiert XFree86. Si vous n'avez pas besoin des fonctionnalités de polices qui demandent X11, installez le paquet php4-gd-4.3.8-no_x11.tgz.

Versions plus anciennes

Les anciennes versions de OpenBSD utilisaient le système des FLAVORS pour compiler statiquement PHP. Comme il est trop difficile de générer des packages binaires avec cette méthode, elle est considérée comme obsolète. Vous pouvez toujours utiliser les anciennes versions stables, mais sachez qu'elles ne sont plus supportées par l'équipe d'OpenBSD. Si vous avez des commentaires sur le sujet, le responsable actuel est Anil Madhavapeddy (avsm_arobase_openbsd_point_org).


Installation sous Solaris

Cette section contient les notes et conseils d'installation de PHP sur les distributions Solaris.

Logiciels nécessaires

L'installation Solaris oublie généralement les compilateurs C, et leurs utilitaires. Lisez cette FAQ pour savoir pourquoi est-ce que les versions GNU de certains de ces outils sont nécessaires.

Pour décompresser la distribution PHP, vous avez besoin de

  • tar
  • gzip ou
  • bzip2

Pour compiler PHP, vous avez besoin de

  • gcc (recommandé, les autres compilateurs C peuvent aussi fonctionner)
  • make
  • GNU sed

Pour construire les extensions additionnelles ou modifier le code de PHP, vous pouvez également avoir besoin de

  • flex (à partir de PHP 5.2)
  • re2c
  • bison
  • m4
  • autoconf
  • automake
De plus, vous devrez aussi installer (et peut être aussi compiler) toutes les bibliothèques nécessaires aux extensions comme MySQL, Oracle, etc.

Utilisation des paquets

Vous pouvez simplifier l'installation Solaris en utilisant pkgadd pour installer la plupart des composants. Le système de paquets des images (IPS) pour Solaris 11 Express contient également les composants nécessaires pour l'installation utilisant la commande pkg.


Notes d'installation sous Debian GNU/Linux

Cette section contient des notes et des astuces spécifiques à l'installation de PHP sous » Debian GNU/Linux.

Avertissement

Les compilations non officielles de sources tierces ne sont pas supportées ici. Tout bogue devrait être reporté à l'équipe Debian sauf s'il peut être reproduit en utilisant les dernières compilations de notre » section téléchargements .

Bien que les instructions pour compiler PHP sous Unix s'appliquent aussi à Debian, cette page de manuel contient des informations spécifiques pour les autres manières d'installer PHP, telles que l'utilisation de apt-get ou aptitude. Cette page de manuel utilise indifféremment l'une ou l'autre.

Utilisation de APT

Tout d'abord, veuillez noter que d'autres paquets peuvent être souhaitables, comme libapache2-mod-php5 pour l'intégration avec Apache 2, et php-pear pour PEAR.

Ensuite, avant d'installer un paquet, il est sage de s'assurer que la liste des paquets est à jour. D'habitude, on le fait en utilisant la commande apt-get update.

Exemple #1 Exemple d'installation sous Debian avec Apache 2

# apt-get install php5-common libapache2-mod-php5 php5-cli

APT installera et activera automatiquement le module PHP 5 pour Apache 2, ainsi que toutes ses dépendances. Apache devra être relancé pour que les changements soient effectifs. Par exemple :

Exemple #2 Stopper et démarrer Apache une fois PHP installé

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start

Un meilleur contrôle de la configuration

Dans l'exemple précédent, PHP a été installé avec juste les composants principaux. Il y a fort à parier que des modules supplémentaires soient nécessaires, tels que MySQL, cURL, GD, etc. Ils peuvent aussi être installés via la commande apt-get.

Exemple #3 Méthodes pour lister les paquets PHP 5 supplémentaires

# apt-cache search php5
# aptitude search php5
# aptitude search php5 |grep -i mysql

Ces exemples montreront de nombreux paquets, donc beaucoup spécifiques à PHP, comme php5-cgi, php5-cli et php5-dev. Déterminez ceux qui sont nécessaires et installez les comme n'importe quel autre en utilisant apt-get ou aptitude. Et vu que Debian effectue une vérification des dépendances, on vous avertira de ces dernières, comme pour installer MySQL et cURL :

Exemple #4 Installer PHP avec MySQL et cURL

# apt-get install php5-mysql php5-curl

APT ajoutera automatiquement les bonnes lignes aux fichiers connexes à php.ini, comme /etc/php5/apache2/php.ini, /etc/php5/conf.d/pdo.ini, etc. et selon l'extension, il ajoutera des entrées semblables à extension=foo.so. De plus, redémarrer le serveur web (Apache, par exemple) est nécessaire pour que ces changements soient effectifs.

Problèmes courants

  • Si les scripts PHP ne sont pas interprétés par le serveur web, il est probable que PHP n'ait pas été ajouté aux fichier de configuration du serveur web, c'est-à-dire, sous Debian, /etc/apache2/apache2.conf ou équivalent. Consultez le manuel Debian pour davantage de détails.
  • Si une extension a apparemment été installée mais que ses fonctions ne sont pas définies, assurez vous que les lignes adéquates ont été insérées dans les fichiers .ini et/ou que le serveur web a été redémarré après l'installation.
  • Il y a deux commandes de base pour installer des paquets sous Debian (et d'autres variantes de Linux) : apt-get et aptitude. Expliquer les différences subtiles entre les deux sort du cadre de ce manuel.


Installation sur un système Mac OS X

Sommaire

  • Utilisation des paquets
  • Utilisation de PHP embarqué
  • Compiler PHP sur Mac OS X

Cette section contient les notes et conseils pour installer PHP sur un système Mac OS X. PHP est inclus avec les Macs, et pour compiler, la procédure est identique à l'installation sous Unix.


Utilisation des paquets

Il existe quelques versions pré-packagées et pré-compilées de PHP pour Mac OS X. Cela peut être utile pour mettre en place une configuration standard, mais si vous avez besoin d'accéder à des fonctionnalités spécifiques (comme un serveur sécurisé, ou un pilote de bases de données exotiques), vous aurez à compiler PHP et/ou votre serveur Web vous-même. Si vous n'êtes pas familier avec la compilation et la mise en place d'applications, il est bon de vérifier si personne d'autre n'a pas déjà réalisé un paquet contenant les fonctionnalités que vous désirez.

Les ressources suivantes offrent la possibilité d'installer des paquets et des binaires précompilés pour PHP sous Mac OS :

  • MacPorts : » http://www.macports.org/
  • Liip : » http://php-osx.liip.ch/
  • Fink : » http://www.finkproject.org/
  • Homebrew : » https://github.com/Homebrew/homebrew-php


Utilisation de PHP embarqué

PHP est fourni en standard avec Macs depuis OS X version 10.0.0. Activer PHP avec le serveur Web par défaut nécessite de décommenter quelques lignes dans le fichier de configuration d'Apache httpd.conf tandis que le mode CGI et/ou CLI sont activés par défaut (accès simple via le terminal).

L'activation de PHP en suivant ces instructions permet de configurer rapidement un environnement local de développement. Il est vivement recommandé de toujours mettre à jour PHP à sa version la plus récente. Comme la plupart des programmes, les nouvelles versions sont créées pour corriger les bogues et ajouter des fonctionnalités et c'est le cas de PHP. Reportez-vous à la documentation de l'installation de MAC OS X pour plus de détails. Les instructions suivantes sont destinées au débutant, en fournissant juste assez de détails pour mettre en place une configuration par défaut pour travailler. Tous les utilisateurs sont vivement encouragés à compiler et installer une version récente du paquet.

Le type d'installation standard utilise mod_php, et active le mod_php embarqué sur Mac OS X pour le serveur Web Apache (le serveur Web par défaut qui est accessible via les préférences systèmes), en quelques étapes :

  1. Trouvez et ouvrez le fichier de configuration d'Apache. Par défaut, ce sera : /private/etc/apache2/httpd.conf Utiliser le programme Finder ou Spotlight pour trouver ce fichier peut s'avérer difficile, sachant que, par défaut, il appartient à l'utilisateur root.

    Note: Une façon de l'ouvrir est d'utiliser un éditeur de texte Unix dans un terminal, par exemple, nano, et sachant que le fichier est la propriété de l'utilisateur root, vous devrez utiliser la commande sudo pour l'ouvrir (en tant que root) ; aussi, vous devrez entrer la commande suivante dans votre Terminal (votre mot de passe vous sera demandé) : sudo nano /private/etc/apache2/httpd.conf Quelques commandes nano : ^w (recherche), ^o (sauvegarde), et ^x (sortie) où ^ représente la touche Ctrl.

    Note: Les versions de Mac OS X antérieures à 10.5 fournissent d'anciennes versions de PHP et d'Apache. Aussi, le fichier de configuration d'Apache sur les machines originales peut être /etc/httpd/httpd.conf.

  2. Avec un éditeur de texte, décommentez les lignes (en effaçant le caractère #) qui ressemblent aux lignes suivantes (ces 2 lignes ne se trouvent pas au même endroit) :

    # LoadModule php5_module libexec/httpd/libphp5.so

# AddModule mod_php5.c
    Notez le chemin. Dans le futur, lorsque vous compilerez PHP, les fichiers ci-dessus doivent être remplacés ou commentés.

  3. Assurez-vous que les extensions désirées soient analysées par PHP (exemples : .php .html et .inc)

    Sachant que ce comportement a déjà été activé dans votre fichier httpd.conf (depuis Mac Panther), une fois PHP activé, les fichiers .php seront automatiquement analysés par PHP.

    <IfModule mod_php5.c>
    # If php is turned on, we respect .php and .phps files.
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    # Since most users will want index.php to work we
    # also automatically enable index.php
    <IfModule mod_dir.c>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

    Note:

    Avant OS X 10.5 (Leopard), PHP 4 était livré par défaut plutôt que PHP 5. Ainsi, les instructions ci-dessus diffèreront juste en changeant 5 en 4. 5's to 4's.

  4. Assurez-vous que DirectoryIndex charge le fichier index par défaut. Ceci est également définit dans le fichier httpd.conf. Normalement, les fichiers index.php et index.html sont utilisés. Par défaut, index.php est activé car il est également dans la vérification de PHP ci-dessus. Ajustez-le suivant votre besoin.
  5. Définissez le chemin vers le fichier php.ini ou utilisez le chemin par défaut. Le chemin par défaut sur Mac OS X is /usr/local/php/php.ini et un appel à la fonction phpinfo() révèlera cette information. Si aucun fichier php.ini n'est utilisé, PHP utilisera toutes les valeurs par défaut. Reportez-vous à la FAQ sur "trouver le fichier php.ini".
  6. Trouvez et définissez le DocumentRoot C'est le dossier principal pour tous les fichiers Web. Les fichiers dans ce dossier seront servis par le serveur Web, et donc, les fichiers PHP seront analysés par PHP avant de les envoyer au navigateur. Le chemin par défaut est /Library/WebServer/Documents mais peut être défini à n'importe quelle valeur dans le fichier httpd.conf. De plus, le dossier DocumentRoot pour les différentes utilisateurs est /Users/yourusername/Sites
  7. Créez un fichier phpinfo().

    La fonction phpinfo() affiche les informations sur PHP. Créez un fichier dans le DocumentRoot avec le code PHP suivant :

    <?php phpinfo(); ?>

  8. Redémarrez Apache et chargez le fichier PHP que nous venons de créer.

    Pour redémarrez, exécutez la commande sudo apachectl graceful dans un terminal ou arrêter/démarrer l'option "Personal Web Server" dans les préférences systèmes OS X. Par défaut, le chargement de fichiers locaux dans le navigateur s'effectue via des URL comme ceci : http://localhost/info.php ou, si vous utilisez le DocumentRoot d'un dossier utilisateur, l'URL ressemblera à : http://localhost/~yourusername/info.php

CLI (ou CGI dans les anciennes versions) est nommé php et réside normalement dans /usr/bin/php. Ouvrez un terminal, lisez la section sur la ligne de commande du manuel PHP, et exécutez la commande php -v pour vérifier la version PHP de ce binaire. Un appel à la fonction phpinfo() pourra également vous révéler cette information.


  • « Utilisation de PHP embarqué
  • Installation sur les système Windows »
  • PHP Manual
  • Installation sur un système Mac OS X
  • Compiler PHP sur Mac OS X

Compiler PHP sur Mac OS X

Référez-vous au guide d'installation sous Unix pour compiler PHP sur OS X.


Installation sur les système Windows

Sommaire

  • Requis pour l'installation
  • PECL
  • PHP Installer Tools on Windows
  • Recommended Configuration on Windows systems
  • Installation manuelle de PHP sous Windows
  • Troubleshooting PHP on Windows
  • Installation sur les anciens systèmes Windows

Installation de PHP sur les systèmes Microsoft Windows moderne et configuration recommandée avec les serveurs web commun.

Note:

Si vous cherchez des informations sur les vieux systèmes, comme Windows XP, 2003, 98 ou Apache 1.x, reportez-vous à la section sur ancienne information.

La version officielle de PHP sous Windows est recommandé pour l'usage en production. Cependant, vous pouvez compiler PHP depuis le code source. Vous aurez besoin pour celà d'un environnement Visual Studio. Voir » les instructions de compilation étape par étape.

  • Utilisation de PHP en ligne de commande Windows

  • Installation de PHP sur les services Azure App (aka Microsoft Azure, Windows Azure, ou (Windows) Azure Web Apps).


Requis pour l'installation

PHP 5.5+ requière au moins Windows 2008/Vista, ou 2008r2, 2012, 2012r2, 2016 or 7, 8, 8.1, 10. Soit 32-Bit, soit 64-bit (aka X86 ou X64. PHP ne fonctionne pas sous Windows RT/WOA/ARM).

PHP requière Visual C runtime(CRT). Plusieurs applications le requière, aussi, il doit déjà être installé.

PHP 5.5 et 5.6 requièrent VC CRT 11 (Visual Studio 2012). Voir : » https://www.microsoft.com/en-us/download/details.aspx?id=30679

PHP 7.0+ requière VC CRT 14 (Visual Studio 2015). Voir : » https://www.microsoft.com/en-us/download/details.aspx?id=48145

Vous DEVEZ télécharger x86 CRT pour la compilation PHP x86 et x64 CRT pour la compilation PHP x64.

Si CRT est déjà installé, l'installeur vous le demandera, vous n'avez rien à changer.

L'installeur CRT supporte les options de ligne de commande /quiet et /norestart, aussi, vous pouvez les utiliser dans vos scripts.

VC11 CRT DLLs peuvent être copiés depuis votre machine locale vers une machine distante (une installation `Copy Deployment`) au lieu d'exécuter l'installeur sur la machine distante (comme un serveur web où vous auriez un accès restreint). Voir : http://www.sitepoint.com/install-php53-windows/

VC14 CRT ne supporte pas une installation `Copy Deployment`. VC14 CRT a beaucoup plus de DLLs (la plupart avec des noms commençant par api-*). Si vous arrivez à tous les trouver, et tous les copier, ca devrait aussi fonctionner (essayer un outil comme Resource Hacker pour récupérer une liste de tous les DLLs à copier).


PECL

Les extensions PECL sont pré-compilées, et disponibles depuis : » http://windows.php.net/downloads/pecl/releases/

Quelques extensions utilisent des fonctionnalités spécifiques aux systèmes Unix et donc, ne sont pas utilisable sous Windows. Sinon, toutes les extensions sont disponible sous Windows.


PHP Installer Tools on Windows

PHP Install Tools

If you want to setup PHP, some common PHP applications and are using IIS, the easiest way is to use Microsoft's Web Platform Installer (WebPI).

XAMPP, WampServer and BitNami will setup PHP applications for use with Apache on Windows.


Recommended Configuration on Windows systems

OpCache

Highly Recommended that you enable OpCache. This extension is included with PHP for Windows. It compiles and optimizes PHP scripts and caches them in memory so that they aren't compiled every time the page is loaded.

In your php.ini, set

Exemple #1 Recommended WinCache configuration

zend_extension=php_opcache.dll
opcache.enable=On
opcache.cli_enable=On
And restart your web server. For more info, see: OpCache Configuration

WinCache

Recommended that you use WinCache if using IIS, especially if in a shared web hosting environment or using networked file storage (NAS). All PHP Applications automatically benefit from WinCache's file cache feature. File system operations are cached in memory. WinCache also can cache user objects in memory and share them between php.exe or php-cgi.exe processes (share objects between requests). Many major web applications have a plugin or extension or configuration option to make use of the WinCache user object cache. If you need high performance, you should use the object cache in your applications. See: » http://pecl.php.net/package/WinCache to download a WinCache DLL (or tgz) to your PHP extensions directory (extensions_dir in your php.ini). In your php.ini, set

Exemple #2 Recommended WinCache configuration

extension=php_wincache.dll
wincache.fcenabled=1
wincache.ocenabled=1
For more info, see: » http://php.net/manual/en/wincache.configuration.php

IIS Configuration

In IIS Manager, Install FastCGI module and add a handler mapping for `.php` to the path to PHP-CGI.exe (not PHP.exe)

You may use the APPCMD command line tool to script IIS configuration.

Database

You'll probably need a Database Server. Popular databases provide PHP extensions to use them. If your web site doesn't get a lot of traffic, you can run your database server on the same server as your web server. Many popular database servers run on Windows.

PHP includes mysqli and pdo_mysql extensions. PHP 5.5 and 5.6 include mysql extension (deprecated in 7.0).

See » https://dev.mysql.com/downloads/windows/


Installation manuelle de PHP sous Windows

Choix du serveur Web

  • IIS est fourni avec Windows. Sur un serveur Windows, utilisez Server Manager pour ajouter le rôle IIS. Assurez-vous d'inclure la fonctionnalité CGI Role. Sur les bureaux Windows, utilisez le centre de contrôle d'ajout/suppression de programmes pour ajouter IIS. Voir : » https://msdn.microsoft.com/en-us/library/ms181052%28v=vs.80%29.aspx?f=255&MSPPError=-2147217396 Pour les applications web bureau et web développement, vous pouvez aussi utiliser IIS/Express ou PHP Bureau

    Exemple #1 Ligne de commande pour configurer IIS et PHP

    @echo off

    REM télécharger le fichier .ZIP de PHP depuis http://windows.php.net/downloads/
    REM
    REM chemin vers le dossier dans lequel on va décompresser le fichier.ZIP de PHP
set phpdir=c:\php
set phppath=php-5.6.19-nts-Win32-VC11-x86

REM Nettoyage des gestionnaires PHP courant
%windir%\system32\inetsrv\appcmd clear config /section:system.webServer/fastCGI
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /-[name='PHP_via_FastCGI']

REM Mise en place du gestionnaire PHP
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI /+[fullPath='%phpdir%\%phppath%\php-cgi.exe']
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='%phpdir%\%phppath%\php-cgi.exe',resourceType='Unspecified']
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /accessPolicy:Read,Script

REM Configuration des variables FastCGI
%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /[fullPath='%phpdir%\%phppath%\php-cgi.exe'].instanceMaxRequests:10000
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phpdir%\%phppath%\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']"
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phpdir%\%phppath%\php-cgi.exe'].environmentVariables.[name='PHPRC',value='%phpdir%\%phppath%\php.ini']"
    Comment configurer manuellement IIS

  • Il y a plusieurs versions d'Apache2 pour Windows. Nous supportons ApacheLounge, mais les autres options incluent XAMPP, WampServer et BitNami, qui fournissent des outils d'installation automatique. Vous devriez utiliser mod_php ou mod_fastcgi pour charger PHP dans Apache. Si vous utilisez mod_php, vous DEVEZ utiliser une version TS de Apache, compilé avec la même version de Visual C et le même CPU (x86 ou x64). Comment configurer manuellement Apache2

Choix de la version

Téléchargez la version de production de PHP depuis » http://windows.php.net/download/. Beaucoup de test et d'optimisation ont déjà été faits sur la version instantannée et les versions QA, mais vous êtes les bienvenus pour nous aider à faire encore plus. Il y a 4 types de versions de PHP :

  • Thread-Safe(TS) - utilisé pour des serveurs web n'ayant qu'un seul processus, comme Apache avec mod_php

  • Non-Thread-Safe(NTS) - utilisé pour IIS et les autres serveurs web FastCGI (Apache avec mod_fastcgi) et c'est la version recommandée pour les scripts en ligne de commande

  • x86 - version de production de PHP 5.5 ou 5.6 ou 7.0.

  • x64 - version de production pour PHP 7.0+ tant que le système Windows n'est pas 32-bit seulement. PHP 5.5 et 5.6 x64 y sont expérimentaux.


Troubleshooting PHP on Windows

Check Temp Directory Permissions

  1. Right-click temp directory in File Explorer to get the permissions.

  2. For IIS, check that user IIS_User has MODIFY permission. You can get the temporary directory from the configuration or php info.


Installation sur les anciens systèmes Windows

Cette section s'applique à Windows 98/Me et Windows NT/2000/XP/2003. PHP ne fonctionnera pas sur les plateformes 16 bits comme Windows 3.1 et parfois, nous nous référons aux plateformes Windows supportées comme Win32.

Note:

Windows XP/2003 ne sont plus supportés depuis PHP 5.5.0.

Note:

Windows 98/Me/NT4/2000 ne sont plus supportés depuis PHP 5.3.0.

Note:

Windows 95 n'est plus supporté depuis PHP 4.3.0.

Si vous avez un environnement de développement comme Microsoft Visual Studio, vous pouvez aussi PHP depuis le code source original.

Une fois que vous avez PHP d'installer sur votre système Windows, vous pouvez aussi vouloir charger diverses extensions pour ajouter des fonctionnalités.

Étapes pour une installation manuelle

Cette section contient les instructions pour installer manuellement et configurer PHP sous Microsoft Windows.

Sélection et téléchargement de PHP

Téléchargez l'archive PHP depuis » PHP pour Windows: Binaires et sources. Il y a plusieurs versions de l'archive zip - pour choisir la bonne version pour vous, suivez le guide détaillé sur la » page des téléchargements.

La structure et le contenu du paquet PHP

Décompressez le contenu de l'archive zip dans le dossier de votre choix, par exemple C:\PHP\. La structure des dossiers et des fichiers extraits depuis l'archive zip ressemble à ceci :

Exemple #1 Structure d'un paquet PHP 5

c:\php
   |
   +--dev
   |  |
   |  |-php5ts.lib                 -- php5.lib en version non thread safe
   |
   +--ext                          -- bibliothèques DLLs pour PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-...
   |
   +--extras                       -- vide
   |
   +--pear                         -- copie initiale de PEAR
   |
   |
   |-go-pear.bat                   -- script d'installation de PEAR
   |
   |-...
   |
   |-php-cgi.exe                   -- exécutable CGI
   |
   |-php-win.exe                   -- exécution de scripts sans avoir un prompt de commande ouvert
   |
   |-php.exe                       -- exécutable de ligne de commande (CLI)
   |
   |-...
   |
   |-php.ini-development           -- configuration par défaut du php.ini
   |
   |-php.ini-production            -- configuration recommandée du php.ini
   |
   |-php5apache2_2.dll             -- n'existe pas dans la version non thread safe
   |
   |-php5apache2_2_filter.dll      -- n'existe pas dans la version non thread safe
   |
   |-...
   |
   |-php5ts.dll                    -- bibliothèque DLL coeur de PHP ( php5.dll en version non thread safe)
   |
   |-...

Voici la liste des modules et des exécutables inclus dans l'archive zip de PHP :

  • go-pear.bat - le script de configuration de PEAR. Référez-vous à l'» installation de PEAR pour plus de détails.

  • php-cgi.exe - exécutable CGI qui peut être utilisé lors de l'exécution de PHP sous IIS via CGI ou FastCGI.

  • php-win.exe - l'exécutable PHP pour l'exécution de scripts PHP sans fenêtre de ligne de commande (par exemple, des applications PHP qui utilisent un GUI Windows).

  • php.exe - l'exécutable PHP pour l'exécution de scripts PHP dans une interface de ligne de commande (CLI).

  • php5apache2_2.dll - module Apache 2.2.X.

  • php5apache2_2_filter.dll - filtre Apache 2.2.X.

Modification du fichier php.ini

Après l'extraction du contenu du paquet PHP, copiez le fichier php.ini-production dans le fichier php.ini du même dossier. Si nécessaire, il est également possible de placer le fichier php.ini dans le dossier de votre choix mais cela nécessite d'autres étapes de configuration décrites dans la configuration de PHP.

Le fichier php.ini indique à PHP la façon doit il doit se configurer, mais aussi la façon dont il doit travailler avec l'environnement sur lequel il s'exécute. Voici quelques concfigurations du fichier php.ini qui aide PHP à fonctionner d'une meilleure façon sous Windows. Quelques-unes sont optionnelles. Il y a bien d'autres directives utiles pour votre environnement - référez-vous à la liste des directives du php.ini pour plus d'informations.

Directives nécessaires :

  • extension_dir = <chemin vers le dossier des extensions> - extension_dir doit pointer vers le dossier contenant les fichiers des extensions PHP. Le chemin peut être absolu (e.g. "C:\PHP\ext") ou relatif (e.g. ".\ext"). Les extensions listées ci-dessous dans le fichier php.ini doivent se trouver dans le dossier extension_dir.

  • extension = xxxxx.dll - Pour chaque extension que vous voulez activer, vous avez besoin d'une directive "extension=" qui indique à PHP quelles extensions du dossier extension_dir doivent être chargées au démarrage.

  • log_errors = On - PHP a une fonctionnalité permettant d'historiser les erreurs, pouvant être utilisée pour envoyer les erreurs dans un fichier, ou vers un service (i.e. syslog) et fonctionne en conjonction de la directive error_log ci-dessous. Lors de l'exécution sous IIS, log_errors devrait être activée, avec une valeur valide de error_log.

  • error_log = <chemin vers le fichier d'historisation des erreurs> - error_log doit spécifier le chemin absolu ou relatif vers un fichier où les erreurs PHP doivent être écrites. Le fichier doit être accessible en écriture par le serveur web. L'endroit commun de ce fichier est le dossier TEMP, par exemple, "C:\inetpub\temp\php-errors.log".

  • cgi.force_redirect = 0 - Cette directive est nécessaire pour le fonctionnement sous IIS. Elle est relative à la sécurité et est nécessaire par bons nombres de serveurs web. Cependant, son activation sous IIS fera échouer le moteur PHP sous Windows.

  • cgi.fix_pathinfo = 1 - Cette directive permet à PHP d'accéder aux informations concernant le chemin réel suivi par la spécification CGI. Cette directive est nécessaire lors de l'implémentation de FastCGI sous IIS.

  • fastcgi.impersonate = 1 - FastCGI sous IIS supporte la possibilité de rendre impersonnels les éléments relatifs à la sécurité lors d'un appel client. Ceci permet à IIS de définir le contexte de sécurité sur lequel la demande est effectuée.

  • fastcgi.logging = 0 - L'historisation FastCGI doit être désactivé sous IIS. S'il est activé, alors tous les messages de toutes les classes seront traités par FastCGI comme des conditions d'erreur, ce qui fera qu'IIS générera des exceptions HTTP 500.

Directives optionnelles

  • max_execution_time = ## - Cette directive demande à PHP un maximum de temps afin d'exécuter un script donné. Par défaut, c'est 30 secondes. Augmentez la valeur de cette direction si l'application PHP prend plus de temps à s'exécuter.

  • memory_limit = ###M - La mémoire maximale disponible pour le processus PHP, en méga-octets. Par défaut, c'est 128, ce qui est parfait pour la plupart des applications PHP. Pour des applications plus complexes, il peut être nécessaire d'augmenter cette valeur.

  • display_errors = Off - Cette directive indique à PHP si les messages d'erreur doivent être inclus dans le flux retourné au serveur web. Si défini à "On", alors PHP les enverra, suivants les classes d'erreur que vous avez définies avec la directive error_reporting, au serveur web comme partie du flux d'erreur. Pour des raisons de sécurité, il est recommandé de définir à "Off" cette directive sur les serveurs de production afin de ne pas révéler les informations concernant la sécurité, qui sont inclues dans les messages d'erreur.

  • open_basedir = <chemins vers les dossiers, séparés par un point virgule>, e.g. openbasedir="C:\inetpub\wwwroot;C:\inetpub\temp". Cette directive spécifie le chemin vers le dossier où PHP est autorisé à effectuer des opérations sur le système de fichiers. Toute opération en dehors de ces chemins retournera une erreur. Cette directive est spécialement utile pour cantonner l'installation de PHP dans des environnements partagés afin d'éviter que les scripts PHP accèdent à tout fichier se trouvant en dehors du dossier racine du site web.

  • upload_max_filesize = ###M et post_max_size = ###M - La taille maximale autorisée, respectivement, d'un fichier téléchargé et des données de type POST. Les valeurs de ces directives devraient être augmentées si les applications PHP doivent effectuer de gros téléchargements, comme des images ou des fichiers vidéos.

PHP est maintenant configuré pour votre système. La prochaine étape est de choisir un serveur web et de la configurer pour y faire fonctionner PHP. Choisissez un serveur web depuis la table de contenus.

En plus de faire fonctionner PHP via un serveur web, PHP peut être exécuté depuis la ligne de commande, à la façon des scripts .BAT. Reportez-vous au chapitre sur la

Microsoft IIS

Cette section contient les instructions spécifiques d'installation de PHP sous Microsoft Internet Information Services (IIS).

  • Installation manuelle de PHP sous Microsoft IIS 5.1 et IIS 6.0
  • Installation manuelle de PHP sous Microsoft IIS 7.0 et suivant

Microsoft IIS 5.1 et IIS 6.0

Cette section contient les instructions pour une installation manuelle sous IIS (Internet Information Services) 5.1 et IIS 6.0 de PHP sous Microsoft Windows XP et Windows Server 2003. Pour des instructions sur la configuration sous IIS 7.0 et supérieur sous Windows Vista, Windows Server 2008, Windows 7 et Windows Server 2008 R2, reportez-vous à la section Microsoft IIS 7.0 et suivant.

Configuration sous IIS pour traiter les requêtes PHP

Téléchargez et installez PHP suivant les instructions décrites dans les étapes d'installation manuelle.

Note:

La version PHP non thread-safe est recommandé lors de l'utilisation d'IIS. Ces versions sont disponibles sur la page » PHP pour Windows : Binaires et sources.

Configurez les options CGI- et FastCGI du fichier php.ini comme ceci :

Exemple #2 Options de configuration de CGI et FastCGI du fichier php.ini

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0

Téléchargez et installez l'extension » Microsoft FastCGI pour IIS 5.1 et 6.0. L'extension est disponible pour les plate-formes 32-bit et 64-bit - sélectionnez le bon paquet pour votre plate-forme..

Configurez l'extension FastCGI pour gérer les requêtes spécifiques PHP en exécutant la commande ci-dessous. Remplacez la valeur du paramètre "-path" avec le chemin absolu vers le fichier php-cgi.exe.

Exemple #3 Configuration de l'extension FastCGI pour gérer les requêtes PHP

cscript %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" ^
-extension:php -path:"C:\PHP\php-cgi.exe"

Cette commande va créer un mapping des scripts IIS pour les extensions de fichiers *.php, ce qui aura pour effet la gestion de toutes les URLs se terminant par .php par l'extension FastCGI. De plus, la commande configurera l'extension FastCGI lui demandant d'utiliser l'exécutable php-cgi.exe pour traiter les requêtes PHP.

Note:

A ce point, les étapes d'installation et de configuration nécessaires sont terminées. Les instructions qui suivent dans cette section sont optionnelles mais vivement recommandées afin d'atteindre des fonctionnalités et des performances optimales de PHP sous IIS.

Usurpation d'identité et accès au système de fichiers

Il est recommandé d'activer l'usurpation d'identité pour FastCGI en PHP lors de l'utilisation avec IIS. Ce mode est contrôlé par la directive fastcgi.impersonate du fichier php.ini. Lorsque ce mode est activé, PHP effectuera toutes les opérations du système de fichiers avec le compte utilisateur qui a été choisi pour l'authentification IIS. Ceci assure que, même si le même processus PHP est partagé avec différents sites web IIS, les scripts PHP de ces sites web ne pourront pas accéder aux autres fichiers tant que différents comptes utilisateurs sont utilisées pour l'authentification IIS de chaque site web.

Par exemple, IIS 5.1 et IIS 6.0, dans leurs configurations par défaut, ont d'activé l'authentification anonyme avec le compte interne IUSR_<MACHINE_NAME> utilisé comme identité par défaut. Ceci signifie que, afin de permettre à IIS d'exécuter des scripts PHP, il est nécessaire de donner les droits de lecture au compte IUSR_<MACHINE_NAME> pour ces scripts. Si les applications PHP doivent effectuer des opérations en écriture sur certains fichiers ou écrire des fichiers dans des dossiers, le compte IUSR_<MACHINE_NAME> doit avoir les permissions en écriture sur ces différents éléments.

Pour déterminer quel est le compte utilisateur utilisé par l'authentification anonyme IIS, suivez ces étapes :

  1. Dans le menu de démarrage de Windows, choisissez : "Run:", tapez "inetmgr" et cliquez sur "Ok";

  2. Dépliez la liste des sites Web sous le nœud "Web Sites" de l'arbre, faîtes un clic droit sur un site web utilisé et sélectionnez "Properties";

  3. Cliquez sur l'onglet "Directory Security";

  4. Prenez note du champ "User name:" dans le dialogue "Authentication Methods"

Authentification anonyme pour 5.1 et IIS 6.0

Pour modifier la configuration des permissions sur des fichiers ou des dossiers, utilisez l'explorateur Windows ou la commande icacls.

Exemple #4 Configuration des permissions d'accès

icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)

Définition du fichier index.php comme document par défaut sous IIS

Les documents par défaut IIS sont utilisés pour les requêtes HTTP qui ne spécifie pas de nom de document. Avec les applications PHP, index.php agit généralement comme document par défaut. Pour ajouter index.php à la liste des documents par défaut IIS, suivez ces étapes :

  1. Dans le menu de démarrage Windows, choisissez "Run:", tapez "inetmgr" et cliquez sur "Ok";

  2. faîtes un clic droit sur le nœud "Web Sites" de l'arbre et sélectionnez "Properties";

  3. Cliquez sur l'onglet "Documents";

  4. Cliquez sur le bouton "Add..." et entrez "index.php" comme "Default content page:".

Configuration de la page index.php comme document par défaut sous IIS

Configuration du recyclage FastCGI et PHP

Configurez l'extension IIS FastCGI pour le recyclage des processus PHP en utilisant la commande ci-dessous. La directive instanceMaxRequests de FastCGI contrôle le nombre de requêtes a traité par un seul processus php-cgi.exe avant l'extinction de l'extension FastCGI. La variable d'environnement PHP PHP_FCGI_MAX_REQUESTS contrôle le nombre de requêtes qu'un seul processus php-cgi.exe peut gérer avant de ce recycler lui-même. Assurez-vous que la valeur spécifiée pour la directive InstanceMaxRequests FastCGI est inférieure ou égale à la valeur spécifiée pour la directive PHP_FCGI_MAX_REQUESTS.

Exemple #5 Configuration du recyclage FastCGI et PHP

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-InstanceMaxRequests:10000

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000

Configuration du délai d'expiration FastCGI

Augmentez le délai d'expiration pour l'extension FastCGI s'il y a des applications dont les scripts PHP mettent beaucoup de temps à s'exécuter. Les 2 configurations qui contrôlent les délais d'expiration sont ActivityTimeout et RequestTimeout. Referez-vous à la » configuration de l'extension FastCGI pour IIS 6.0 pour plus d'informations sur ces configurations.

Exemple #6 Configuration du délai d'expiration FastCGI

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-ActivityTimeout:90

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-RequestTimeout:90

Modification du dossier contenant le fichier php.ini

PHP recherche le fichier php.ini dans différents endroits et il est possible de modifier ces endroits de recherche du fichier php.ini en utilisant la variable d'environnement PHPRC. Pour demander à PHP de charger le fichier de configuration depuis un dossier personnalisé, exécutez la commande ci-dessous. Le chemin absolu du dossier contenant le fichier php.ini doit être spécifié sous la variable d'environnement PHPRC.

Exemple #7 Modification du dossier contenant le fichier php.ini

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHPRC:"C:\Some\Directory\"

Microsoft IIS 7.0 et suivants

Cette section contient les instructions pour une configuration manuelle d'IIS (Internet Information Services) 7.0 et suivants pour fonctionner avec PHP sous Microsoft Windows Vista SP1, Windows 7, Windows Server 2008 et Windows Server 2008 R2. Pour des instructions de configuration d'IIS 5.1 et IIS 6.0 sous Windows XP et Windows Server 2003, reportez-vous à la documentation sur Microsoft IIS 5.1 et IIS 6.0.

Activation du support FastCGI sous IIS

Le module FastCGI est désactivé par défaut sous IIS. Les étapes pour l'activer diffèrent suivant la version de Windows utilisée.

Pour activer le support FastCGI sous Windows Vista SP1 et Windows 7 :

  1. Dans le menu de démarrage Windows, choisissez "Run:", tapez "optionalfeatures.exe" et cliquez sur "Ok";

  2. Dans la fenêtre "Windows Features", dépliez l'arbre "Internet Information Services", "World Wide Web Services", "Application Development Features", puis, activez la boite à cocher "CGI";

  3. Cliquez sur OK et attendez que l'installation se termine.

Activation du support FastCGI pour IIS7 sous Windows Vista SP1 et Windows 7

Pour activer le support FastCGI sous Windows Server 2008 et Windows Server 2008 R2 :

  1. Dans le menu de démarrage Windows, choisissez "Run:", tapez "CompMgmtLauncher" et cliquez sur "Ok";

  2. Si le rôle "Web Server (IIS)" n'est pas présent dans le nœud "Roles" , ajoutez-le en cliquant sur "Add Roles";

  3. Si le rôle "Web Server (IIS)" est présent, cliquez sur "Add Role Services", puis, activez la boite à cocher "CGI" sous le groupe "Application Development";

  4. Cliquez sur "Next", puis "Install", et attendez la fin de l'installation.

Activation du support FastCGI sous Windows Server 2008 et Windows Server 2008 R2

Configuration d'IIS pour traiter les requêtes PHP

Téléchargez et installez PHP suivant les instructions décrites dans les étapes d'installation manuelle.

Note:

La version PHP non thread-safe est recommandée lors de l'utilisation d'IIS. Les versions non thread-safe sont disponibles sur la page » PHP pour Windows : Binaires et sources.

Configurez les options CGI et FastCGI dans le fichier php.ini comme ceci :

Exemple #8 Options CGI et FastCGI dans le fichier php.ini

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0

Configurez le gestionnaire de mapping IIS pour PHP en utilisant soit l'interface de gestion utilisateurs IIS ou l'outil en ligne de commande.

Utilisation de l'interface de gestion utilisateurs IIS pour créer un gestionnaire de mapping pour PHP

Suivez ces étapes pour créer un gestionnaire de mapping IIS pour PHP dans l'interface de gestion utilisateurs IIS :

  1. Dans le menu démarrer de Windows, choisissez "Run:", tapez "inetmgr" et cliquez sur "Ok";

  2. Dans l'interface de gestion utilisateurs IIS, sélectionnez le nœud correspondant au serveur dans l'arbre "Connections";

  3. Dans la page "Features View", ouvrez la fonctionnalité "Handler Mappings";

    Création d'un gestionnaire de mapping IIS pour PHP : Localisation du gestionnaire de mappings

  4. Dans le panneau "Actions", cliquez sur "Add Module Mapping...";

  5. Dans la fenêtre "Add Module Mapping", entrez ceci :

    • Request path: *.php
    • Module: FastCgiModule
    • Executable: C:\[Path to PHP installation]\php-cgi.exe
    • Name: PHP_via_FastCGI

  6. Cliquez sur le bouton "Request Restrictions", puis, configurez le mappin pour appeler le gestionnaire uniquement si la requête est mappée à un fichier ou un dossier;

  7. Cliquez sur OK sur tous les dialogues pour sauvegarder la configuration.

Création d'un gestionnaire de mapping pour PHP : Ajout d'un gestionnaire de mapping

Utilisation de l'outil en ligne de commande pour créer un gestionnaire de mapping pour PHP

Utilisez la commande suivante pour créer une file de processus IIS FastCGI qui utilisera l'exécutable php-cgi.exe pour traiter les requêtes PHP. Remplacez la valeur du paramètre fullPath avec le chemin absolu vers le fichier php-cgi.exe.

Exemple #9 Création d'une file de processus IIS FastCGI

%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI ^
/+[fullPath='c:\PHP\php-cgi.exe']

Configurez IIS pour gérer les requêtes PHP spécifiques en exécutant la commande suivante. Remplacez la valeur du paramètre scriptProcessor avec le chemin absolu vers le fichier php-cgi.exe.

Exemple #10 Création d'un gestionnaire de mapping pour les requêtes PHP

%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers ^
/+[name='PHP_via_FastCGI', path='*.php',verb='*',modules='FastCgiModule',^
scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either']

Cette commande crée un gestionnaire de mapping IIS pour les fichiers dont l'extension est *.php, ce qui fera que toutes les URLs qui se terminent par .php seront gérées par le module FastCGI.

Note:

À ce moment, les étapes d'installation et de configuration nécessaires sont terminées. Les instructions qui suivent sont optionnelles mais vivement recommandées afin d'avoir un maximum de fonctionnalités mais aussi de bonnes performances pour PHP sous IIS.

Usurpation d'identité et l'accès au système de fichiers

Il est recommandé d'activer l'usurpation d'identité FastCGI en PHP lors de l'utilisation avec IIS. Ce mode est contrôlé par la directive fastcgi.impersonate du fichier php.ini. Lorsque l'usurpation d'identité est active, PHP effectuera toutes les opérations sur le systèmes de fichiers en se faisant passer pour le compte utilisateur qui a été déterminé par l'authentification IIS. Ceci assure que même si le même processus PHP est partagé sur plusieurs sites Web IIS, les scripts PHP de ces sites Web ne pourront pas accéder aux autres fichiers sachant qu'un compte utilisateur différent est utilisé pour l'authentification IIS de chacun de ces sites.

Par exemple, IIS 7, dans sa configuration par défaut, a d'activer l'authentification anonyme avec le compte utilisateur interne IUSR, utilisé comme identité par défaut. Ceci signifie que, pour qu'IIS puisse exécuter des scripts PHP, il est nécessaire d'avoir une permission en lecture pour le compte utilisateur IUSR sur ces scripts. Si les applications PHP doivent effectuer des opérations en écriture sur certains fichiers ou écrire des fichiers dans des dossiers, alors le compte IUSR doit avoir les bonnes permissions en écriture.

Pour déterminer le compte utilisateur utilisé comme identité anonyme sous IIS 7, utilisez la commande suivante. Remplacez "Default Web Site" avec le nom du site web IIS que vous utilisez. Dans l'élément de configuration XML, regardez l'attribut userName.

Exemple #11 Déterminer le compte utilisé comme identité anonyme sous IIS

%windir%\system32\inetsrv\appcmd.exe list config "Default Web Site" ^
/section:anonymousAuthentication

<system.webServer>
  <security>
    <authentication>
      <anonymousAuthentication enabled="true" userName="IUSR" />
    </authentication>
   </security>
</system.webServer>

Note:

Si l'attribut userName n'est pas présent dans l'élément anonymousAuthentication, ou s'il est vide, alors cela signifie que l'identité de l'application est bien l'identité anonyme pour ce site web.

Pour modifier la configuration sur les permissions de ces fichiers ou ces dossiers, utilisez l'interface de l'explorateur Windows ou la ligne commande icacls.

Exemple #12 Configuration des permissions d'accès aux fichiers

icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)

Définir index.php comme document par défaut sous IIS

Les documents par défaut IIS sont utilisés pour les requêtes HTTP qui ne spécifient pas un nom de document. Avec les applications PHP, index.php agit généralement comme document par défaut. Pour ajouter index.php à la liste des documents par défaut d'IIS, utilisez la commande suivante :

Exemple #13 Définir index.php comme document par défaut sous IIS

%windir%\system32\inetsrv\appcmd.exe set config ^
-section:system.webServer/defaultDocument /+"files.[value='index.php']" ^
/commit:apphost

Configuration du recyclage FastCGI et PHP

Configurez l'extension IIS FastCGI pour le recyclage des processus PHP en utilisant la commande ci-dessous. La directive instanceMaxRequests de FastCGI contrôle le nombre de requêtes a traité par un seul processus php-cgi.exe avant l'extinction d'IIS. La variable d'environnement PHP PHP_FCGI_MAX_REQUESTS contrôle le nombre de requêtes qu'un seul processus php-cgi.exe peut gérer avant de ce recycler lui-même. Assurez-vous que la valeur spécifiée pour la directive InstanceMaxRequests FastCGI est inférieure ou égale à la valeur spécifiée pour la directive PHP_FCGI_MAX_REQUESTS.

Exemple #14 Configuration du recyclage FastCGI et PHP

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/[fullPath='c:\php\php-cgi.exe'].instanceMaxRequests:10000

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/+"[fullPath='C:\{php_folder}\php-cgi.exe'].environmentVariables.^
[name='PHP_FCGI_MAX_REQUESTS',value='10000']"

Configuration du délai d'expiration FastCGI

Augmentez le délai d'expiration pour l'extension FastCGI s'il y a des applications dont les scripts PHP mettent beaucoup de temps à s'exécuter. Les 2 configurations qui contrôlent les délais d'expiration sont activityTimeout et requestTimeout. Utilisez les commandes ci-dessous pour modifier la configuration du délai d'expiration. Assurez-vous de remplacer la valeur du paramètre fullPath par le chemin absolu vers le fichier php-cgi.exe.

Exemple #15 Configuration du délai d'expiration FastCGI

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/[fullPath='C:\php\php-cgi.exe',arguments=''].activityTimeout:"90"  /commit:apphost

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/[fullPath='C:\php\php-cgi.exe',arguments=''].requestTimeout:"90"  /commit:apphost

Modification du dossier contenant le fichier php.ini

PHP recherche le fichier php.ini dans différents endroits et il est possible de modifier ces endroits de recherche du fichier php.ini par défaut en utilisant la variable d'environnement PHPRC. Pour demander à PHP de charger le fichier de configuration depuis un dossier personnalisé, exécutez la commande ci-dessous. Le chemin absolu du dossier contenant le fichier php.ini doit être spécifié sous la variable d'environnement PHPRC.

Exemple #16 Modification du dossier contenant le fichier php.ini

appcmd.exe set config  -section:system.webServer/fastCgi ^
/+"[fullPath='C:\php\php.exe',arguments=''].environmentVariables.^
[name='PHPRC',value='C:\Some\Directory\']" /commit:apphost

Installer PHP sous Microsoft Windows avec Apache 1.3.x

Cette section contient des notes et conseils spécifiques pour l'installation de PHP avec Apache 1.3.x sur les systèmes Microsoft Windows. Il y a aussi des

Note:

Lisez les étapes d'installation du manuel d'abord !

Il y a deux méthodes pour faire fonctionner PHP avec Apache 1.3.x sous Windows. La première est d'utiliser l'exécutable CGI (php.exe pour PHP 4 et php-cgi.exe pour PHP 5), l'autre est d'utiliser les modules Apache DLL. Dans les deux cas, vous devez arrêter le serveur Apache, éditer votre fichier httpd.conf pour dire à Apache de prendre PHP en compte et redémarrer Apache.

Maintenant que le module SAPI a été rendu plus stable sous Windows, nous recommandons son usage plutôt que celui de l'exécutable CGI, car il est plus transparent et sécurisé.

Bien qu'il puisse y avoir quelques différences de configuration de PHP sous Apache, le processus reste simple et à la portée du néophyte. Reportez-vous aux documentations Apache pour plus de détails sur ces directives.

Après avoir modifié le fichier de configuration, pensez à redémarrer le serveur web, par exemple avec NET STOP APACHE suivi de NET START APACHE, si vous utilisez Apache comme service Windows, ou bien utilisez vos alias classiques.

Note: Souvenez-vous que lorsque vous ajoutez des valeurs représentants un chemin dans la configuration d'Apache sous Windows, tous les antislash, comme c:\repertoire\fichier.ext, devraient être convertis en slashes, comme c:/repertoire/fichier.ext. Un slash final peut également être nécessaire pour les dossiers.

Installation de PHP en tant que module Apache

Vous devez ajouter les lignes suivantes à votre fichier de configuration Apache httpd.conf :

Exemple #17 PHP comme module Apache 1.3.x

Cet exemple suppose que PHP est installé dans le dossier c:\php. Ajustez le chemin si ce n'est pas le cas.

Pour PHP 4 :

# À ajouter à la fin de la section LoadModule
# N'oubliez pas de copier ce fichier depuis le dossier sapi !
LoadModule php4_module "C:/php/php4apache.dll"

# À ajouter à la fin de la section AddModule
AddModule mod_php4.c

Pour PHP 5 :

# À ajouter à la fin de la section LoadModule
LoadModule php5_module "C:/php/php5apache.dll"

# À ajouter à la fin de la section AddModule
AddModule mod_php5.c

Pour les deux :

# Ajoutez cette ligne dans les parenthèses conditionnelles <IfModule mod_mime.c>
AddType application/x-httpd-php .php

# Pour les fichiers de syntaxe colorisée .phps, ajoutez également
AddType application/x-httpd-php-source .phps

Installation comme binaire CGI

Si vous avez dézippé le paquet PHP dans le répertoire c:\php\ comme décrit dans la section sur les étapes d'installation du manuel, vous devez insérer ces lignes à votre fichier de configuration Apache pour activer le binaire CGI :

Exemple #18 PHP et Apache 1.3.x en tant que CGI

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php

# Pour PHP 4
Action application/x-httpd-php "/php/php.exe"

# Pour PHP 5
Action application/x-httpd-php "/php/php-cgi.exe"

# spécifez le répertoire où se trouve php.ini
SetEnv PHPRC C:/php
Notez que la seconde ligne dans l'exemple ci-dessus peut être touvée dans l'actuelle version de votre httpd.conf, mais elle est commentée. Souvenez-vous également de faire correspondre le chemin c:/php/ à votre chemin actuel vers PHP.

Avertissement

En utilisant le mode CGI, votre serveur est ouvert à de possibles attaques sérieuses. Lisez attentivement notre section sur la sécurité en mode CGI pour apprendre comment vous défendre contre ces attaques.

Si vous voulez présenter la source de vos fichiers PHP avec la coloration syntaxique, il n'existe pas d'option équivalente de celle de la version module de PHP. Si vous choisissez de configurer Apache pour utiliser PHP en mode CGI, vous aurez besoin d'utiliser la fonction highlight_file(). Pour réaliser cela simplement, créez un script PHP dans un fichier et ajoutez ce code : <?php highlight_file('original_php_script.php'); ?>.

Installation des serveurs Apache 2.x sur les systèmes Microsoft Windows

Cette section contient les notes et conseils d'installation de PHP avec le serveur Apache 2.x sur les systèmes Microsoft Windows. Nous avons également des notes et des instructions pour Apache 1.3.x

Note:

Vous devriez lire les étapes d'installation du manuel d'abord !

Note: Support Apache 2.2

Les utilisateurs d'Apache 2.2 doivent conserver à l'esprit que la bibliothèque DLL d'Apache 2.2 est nommée php5apache2_2.dll plutôt que php5apache2.dll et n'est disponible que pour PHP 5.2.0 et suivants.

Il est vivement recommandé de consulter la » documentation Apache pour avoir une meilleure connaissance du serveur web Apache 2.x. Lisez également les » notes spécifiques à Windows pour Apache 2.x avant de lire cette documentation.

Apache 2.x est prévu pour fonctionner sur les versions de Windows désignées comme serveurs, comme Windows NT 4.0, Windows 2000, Windows XP, ou Windows 7. Bien qu'Apache 2.x fonctionne parfaitement bien sous Windows 9x, le support de ces plateformes est incomplet et quelques fonctionnalités peuvent ne pas fonctionner correctement ; et il n'est pas prévu d'améliorer cela.

Téléchargez la version la plus récente de » Apache 2.x et une version de PHP. Suivez les instructions d'installation manuelle puis revenez ici pour réaliser l'intégration de PHP et Apache.

Il y a trois méthodes pour que PHP fonctionne avec Apache 2.x sous Windows. Vous pouvez exécuter PHP comme gestionnaire, comme CGI ou comme FastCGI.

Note: Souvenez-vous que lorsque vous ajoutez des valeurs représentants un chemin dans la configuration d'Apache sous Windows, tous les antislash, comme c:\repertoire\fichier.ext, devraient être convertis en slashes, comme c:/repertoire/fichier.ext. Un slash final peut également être nécessaire pour les dossiers.

Installation d'Apache comme gestionnaire

Vous devez insérer les lignes suivantes dans le fichier de configuration httpd.conf d'Apache pour charger le module PHP pour Apache 2.x :

Exemple #19 PHP et Apache 2.x comme gestionnaire

#
LoadModule php5_module "c:/php/php5apache2.dll"
AddHandler application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "C:/php"

Note: Rappelez-vous de placer votre chemin actuel de PHP dans le chemin C:/php/ des exemples ci-dessous. Assurez-vous d'utiliser soit php5apache2.dll, soit php5apache2_2.dll dans la directive LoadModule et de vérifiez que le fichier correspondant est en réalité situé dans le chemin utilisé dans cette directive.

La configuration suivante activera le gestionnaire PHP pour tous les fichiers qui ont l'extension .php, même si d'autres extensions sont utilisées pour ces fichiers. Par exemple, un fichier nommé example.php.txt sera exécuté par le gestionnaire PHP. Pour vous assurez que seuls les fichiers se terminant par .php sont exécutés, utilisez plutôt la configuration suivante :

<FilesMatch \.php$>
      SetHandler application/x-httpd-php
 </FilesMatch>

Exécution de PHP en tant que CGI

Vous devriez consulter la » documentation Apache CGI où vous trouverez toutes les informations nécessaires à l'exécution d'Apache CGI.

Pour exécuter PHP en tant que CGI, vous devez placer tous vos fichiers php-cgi dans un dossier désigné comme dossier CGI en utilisant la directive ScriptAlias.

Vous devez ensuite insérer une ligne #! dans vos fichiers PHP, pointant vers le binaire PHP :

Exemple #20 PHP et Apache 2.x en tant que CGI

#!C:/php/php.exe
<?php
  phpinfo();
?>

Avertissement

En utilisant le mode CGI, votre serveur est ouvert à de possibles attaques sérieuses. Lisez attentivement notre section sur la sécurité en mode CGI pour apprendre comment vous défendre contre ces attaques.

Exécuter PHP en tant que FastCGI

L'exécution de PHP en tant que FastCGI a un beaucoup d'avantages contrairement à son exécution en tant que CGI. Sa mise en place de cette manière est assez simple :

Récupérez mod_fcgid depuis » http://httpd.apache.org/mod_fcgid/. Les bibliothèques Win32 sont disponibles au téléchargement depuis ce site. Installez le module suivant les instructions fournies.

Configurez votre serveur web comme ci-dessous, en vous assurant d'ajuster tous les chemins pour refléter votre configuration système particulière :

Exemple #21 Configuration d'Apache pour exécuter PHP en tant que FastCGI

LoadModule fcgid_module modules/mod_fcgid.so

# Où se trouve le fichier php.ini ?
FcgidInitialEnv PHPRC        "c:/php"

AddHandler fcgid-script .php
FcgidWrapper "c:/php/php-cgi.exe" .php
Les fichiers avec l'extension .php seront maintenant exécutés par le gestionnaire PHP FastCGI.

Serveurs Sun, iPlanet et Netscape servers sur Microsoft Windows

Cette section contient les notes et détails spécifiques à l'installation de PHP sur des serveurs Sun Java System Web Server, Sun ONE web Server, Netscape et iPlanet, sous Windows.

Depuis PHP 4.3.3, vous pouvez utiliser les scripts PHP avec le module NSAPI pour sont disponibles pour assurer la compatibilité avec Apache. Pour du support sur les serveurs courants, voyez la

Configuration en CGI sur les serveurs Sun, iPlanet et Netscape

Pour installer PHP en CGI, suivez ce qui suit :

  • Copiez le fichier php4ts.dll dans votre dossier principal (le dossier où vous avez installé Windows)

  • Faites un fichier d'association depuis la ligne de commande. Tapez les lignes suivantes :

    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • Dans le serveur Netscape Enterprise Administration Server, créez un dossier shellcgi et supprimez-le aussitôt (cette opération crée 5 lignes importantes dans le fichier obj.conf et permet au serveur de gérer les scripts CGI).
  • Dans le serveur Netscape Enterprise Administration Server, créez un nouveau type MIME : Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php.
  • Recommencez pour chaque instance de serveur web qui devra exécuter PHP.

Plus de détails sur la configuration de PHP comme CGI sont disponibles à » http://benoit.noss.free.fr/php/install-php.html

Configuration NSAPI sur les serveurs Sun, iPlanet et Netscape

Pour installer PHP avec l'interface NSAPI, faites ceci :

  • Copiez le fichier php4ts.dll dans votre dossier systemroot (le dossier où vous avez installé windows)

  • Faites un fichier d'association depuis la ligne de commande. Tapez les lignes suivantes :

    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • Dans le serveur Netscape Enterprise Administration Server, créez un nouveau type MIME : Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php.

  • Éditez le fichier magnus.conf (pour les serveurs >= 6) ou obj.conf (pour les serveurs < 6) et ajoutez ce qui suit : Vous devez placer ces lignes après mime types init.

    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialise PHP!" [php_ini="c:/path/to/php.ini"]
    (PHP >= 4.3.3) Le paramètre php_ini est optionnel, mais si vous le définissez, vous pourrez placer votre fichier php.ini dans le dossier de configuration de votre serveur web.

  • Configurez l'objet par défaut dans le fichier obj.conf (pour les classes de serveur virtuel [Sun Web Server 6.0+], dans le fichier vserver.obj.conf) : dans la section <Object name="default">, placez cette ligne nécessairement avant toutes les lignes 'ObjectType' et après toutes les lignes 'ObjectType' :

    Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
    (PHP >= 4.3.3) Comme paramètres supplémentaires, vous pouvez ajouter quelques valeurs spéciales du php.ini, par exemple, vous pouvez définir un docroot="/path/to/docroot" spécifique au contexte où php4_execute est appelé, non pas "On","Off",... (cela ne fonctionnerait pas correctement), e.g. zlib.output_compression=1 à la place de zlib.output_compression="On"

  • Cela n'est nécessaire que si vous voulez configurer un dossier qui ne contiendra que vos scripts PHP (tout comme un dossier cgi-bin) :

    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
    Après cela, vous pouvez configurer un dossier dans l'administration du serveur et lui assigner le style x-httpd-php. Tous les fichiers s'y trouvant seront exécutés comme étant des scripts PHP. Cela peut être pratique pour cacher l'usage de PHP en renommant les fichiers en .html.

  • Redémarrez votre serveur web pour que les modifications prennent effet.
  • Faites cela pour chaque instance du serveur web où vous voulez exécuter PHP.

Note:

Plus de détails sur la configuration de PHP comme filtre NSAPI peuvent être trouvés ici : » http://benoit.noss.free.fr/php/install-php4.html

Note:

La taille de la pile que PHP utilise dépend de la configuration du serveur web. Si vous rencontrez des crashs avec les grands scripts PHP, il est recommandé d'augmenter la taille de la pile avec la console d'administration : dans la section "MAGNUS EDITOR".

Environnement CGI et modifications recommandées du php.ini

Il est important de garder en tête que iPlanet/SunONE/Netscape est un serveur web multi-threadé. Comme toutes les requêtes se situent dans le même contexte (c'est le contexte sur serveur web), et que ce contexte est unique. SI vous voulez accéder a des variables comme PATH_INFO, HTTP_HOST etc. il n'est pas recommandé d'y accéder à l'ancienne manière de PHP, avec la fonction getenv() ou une autre méthode (register globals, $_ENV). De cette manière, vous n'aurez que des valeurs d'environnement du serveur, et non pas des valeurs correctes pour le CGI.

Note:

Pourquoi est-ce que les variables CGI sont invalides ?

C'est lié au fait que le processus du serveur web est lancé par l'administrateur du serveur, qui utilise le script de lancement au démarrage. En fait, il aurait fallu que vous lanciez vous-même le processus. C'est pour cela que l'environnement du serveur web contient des variables d'environnement CGI. Vous pouvez vérifier cela en lançant le serveur web depuis un autre endroit que l'administrateur du serveur : utilisez la ligne de commande Unix en tant que root : vous verrez alors qu'il n'y a pas de variables d'environnement.

Changez simplement vos scripts pour lire les variables CGI, en utilisant le tableau superglobal $_SERVER. Si vous avez d'autres scripts qui utilisent encore $HTTP_HOST et compagnie, il est recommandé d'activer l'option register_globals dans le php.ini et de changer l'ordre des variables. IMPORTANT : supprimez le "E" dans cette option, car vous n'en avez pas besoin pour cet environnement.

variables_order = "GPCS"
register_globals = On

Utilisation particulière pour les pages d'erreurs ou les listages spécifiques de dossiers (PHP >= 4.3.3)

Vous pouvez utiliser PHP pour générer des pages d'erreurs de type "404 Not Found" ou apparentée. Ajoutez la ligne suivante dans le fichier obj.conf pour chaque page d'erreur que vous souhaitez remplacer :

Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
où XXX est le code d'erreur HTTP. Effacez toute autre directive Error qui pourrait interférer avec la vôtre. Si vous voulez utiliser une page pour toutes les erreurs qui existent, laissez le paramètre code vide. Votre script peut obtenir le code de statut HTTP dans la variable $_SERVER['ERROR_TYPE'].

Une autre possibilité est de générer une liste de dossiers personnalisée. Créez simplement un script PHP qui affiche le contenu du dossier, et remplacez la ligne Service par défaut par type="magnus-internal/directory" dans obj.conf avec ceci :

Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
Pour ces deux points, l'URI originale et l'URI traduite sont dans les variables $_SERVER['PATH_INFO'] et $_SERVER['PATH_TRANSLATED'].

Note au sujet de nsapi_virtual() et des requêtes (PHP >= 4.3.3)

Le module NSAPI supporte désormais la fonction nsapi_virtual() (alias : virtual()), pour réaliser des sous requêtes au serveur web, et inclure le résultat dans une page. Le problème est que cette fonction utilise une fonctionnalité non documentée de la bibliothèque NSAPI.

Sous Unix, ce n'est pas un problème, car le module va automatiquement rechercher les fonctions nécessaires, et les utiliser si elles sont disponibles. Sinon, nsapi_virtual() sera désactivée.

Sous Windows, des limitations dans la gestion des DLL impose l'utilisation de la plus récente bibliothèque ns-httpdXX.dll. Cela a été testé pour les serveurs jusqu'à la version 6.0. Si une nouvelle version de SunONE server est utilisée, la détection échoue, et nsapi_virtual() est désactivée.

Dans ce cas, essayez ceci : ajoutez le paramètre suivant à php4_init dans magnus.conf/obj.conf :

Init fn=php4_init ... server_lib="ns-httpdXX.dll"
où XX est le numéro correct de la version de la DLL. Pour la connaître, regardez dans le server-root pour connaître le nom correct de la DLL. La DLL la plus grande en taille est la bonne.

Vous pouvez vérifier le statut en utilisant la fonction phpinfo().

Note:

Soyez prévenu : le support de nsapi_virtual() est expérimental.

Sambar Server on Microsoft Windows

Cette section contient les notes et conseils d'installation de PHP sur les serveurs » Sambar, sur Windows.

Note:

Vous devriez lire les étapes d'installation du manuel d'abord !

Cette liste décrit comment configurer le module ISAPI avec le serveur Sambar sous Windows.

  • Trouvez le fichier appelé mappings.ini (dans le dossier de configuration), dans le dossier d'installation de Sambar.

  • Ouvrez mappings.ini et ajoutez la ligne suivante, sous la section [ISAPI] :

    Exemple #22 Configuration ISAPI de Sambar

    #pour PHP 4
*.php = c:\php\php4isapi.dll

#pour PHP 5
*.php = c:\php\php5isapi.dll
    (Cette ligne suppose que PHP a été installé dans le dossier c:\php).

  • Maintenant, redémarrez le serveur Sambar pour que les modifications prennent effet.

Note:

Si vous voulez utiliser PHP pour communiquer avec les ressources se trouvant sur un autre ordinateur de votre réseau, vous devez modifier le compte utilisé par le service Sambar Server. Le compte par défaut utilisé par le service Sambar Server est LocalSystem, qui n'a pas accès aux ressources distantes. Le compte peut être modifié en utilisant les options des services, se trouvant dans le centre de contrôle de Windows.

Installation Xitami sur Microsoft Windows

Cette section contient les conseils d'installation spécifiques à » Xitami sur Microsoft Windows.

Note:

Vous devriez lire les étapes d'installation du manuel d'abord !

Cette liste décrit comment installer PHP comme CGI exécutable avec Xitami sous Windows.

Note: Important pour les utilisateurs de CGI

Lisez la FAQ sur cgi.force_redirect pour d'importants détails. Cette directive doit être configurée à 0. Si vous voulez utiliser $_SERVER['PHP_SELF'], vous devez activer la directive cgi.fix_pathinfo.

Avertissement

En utilisant le mode CGI, votre serveur est ouvert à de possibles attaques sérieuses. Lisez attentivement notre section sur la sécurité en mode CGI pour apprendre comment vous défendre contre ces attaques.

  • Assurez-vous que le serveur web fonctionne, et allez dans la console d'administration du serveur (généralement http://127.0.0.1/admin), puis cliquez sur "Configuration".

  • Naviguez dans les Filters, et ajoutez l'extension que vous souhaitez (souvent .php) dans le champ File extensions.

  • Dans la commande Filter, ajoutez le nom et le chemin de votre exécutable PHP i.e C:\php\php.exe pour PHP 4 ou C:\php\php-cgi.exe pour PHP 5.

  • Cliquez sur le bouton Save.

  • Redémarrez le serveur pour prendre en compte les modifications.

Compilation des sources

Ce chapitre va vous apprendre à compiler PHP depuis les sources sous Windows, en utilisant les utilitaires Microsoft. Pour compiler PHP avec Cygwin, référez-vous à Installation sur les systèmes UNIX.

Reportez-vous à la documentation fournie par le wiki : » http://wiki.php.net/internals/windows/stepbystepbuild.

Installation des extensions sous Windows

Après avoir installé PHP et un serveur web sous Windows, vous devriez probablement vouloir installer quelques extensions pour avoir des fonctionnalités supplémentaires. Vous pouvez choisir quelles extensions seront chargées lors du démarrage de PHP en modifiant votre php.ini. Vous pouvez également en charger dynamiquement dans vos scripts à l'aide de la fonction dl().

Les bibliothèques DLLs pour les extensions PHP sont préfixées par php_.

Beaucoup d'extensions sont incluses dans la version pour Windows de PHP. Cela signifie que les bibliothèques DLL additionnelles et la directive extension ne sont pas utilisées pour charger ces extensions. La table des extensions PHP pour Windows liste les extensions qui requièrent des bibliothèques DLL additionnelles PHP. Voici une liste d'extensions internes (mise à jour : PHP 5.0.4) : BCMath, Caledar, COM, Ctype, DOM, FTP, LibXML, Iconv, ODBC, PCRE, Session, SimpleXML, SPL, SQLite, WDDX, XML et Zlib.

Le dossier par défaut dans lequel PHP cherche des extensions est c:\php5. Pour changer ce comportement pour refléter votre installation de PHP, éditez votre fichier php.ini :

  • Vous devriez pouvoir changer le paramètre extension_dir pour pointer vers le dossier contenant vos extensions ou l'endroit où vous avez placé vos fichiers php_*.dll. Par exemple :

    extension_dir = c:\php\extensions

  • Pour activer ces extensions dans votre php.ini, vous devez décommenter les lignes extension=php_*.dll dans votre php.ini. Cela se fait en effaçant le point virgule (";") du début de la ligne que vous voulez activer.

    Exemple #23 Activer l'extension Bzip2 pour PHP-Windows

    // changez la ligne suivante :
;extension=php_bz2.dll

// En :
extension=php_bz2.dll

  • Quelques extensions ont besoin de bibliothèques DLLs supplémentaires pour fonctionner. La plupart d'entre elles peuvent être trouvées dans le paquet de votre distribution de PHP dans le dossier principal mais quelques autres, comme Oracle (php_oci8.dll), requierent des DLLs qui ne sont pas fournies avec votre distribution de PHP. N'oubliez pas d'inclure le dossier C:\php dans la variable d'environnement PATH (ce processus est expliqué dans une entrée de la FAQ).

  • Quelques-unes de ces bibliothèques ne sont pas incluses dans la distribution de PHP. Lisez la documentation de chaque extension pour plus de détails. Lisez également la section du manuel nommée Installation d'extensions PECL pour plus de détails sur PECL. Un nombre toujours plus important d'extensions PHP se trouve dans PECL, et ces extensions nécessitent un téléchargement séparé.

Note: Si vous utilisez PHP en tant que module d'un serveur web, pensez à redémarrer votre serveur web pour charger les modifications apportées au fichier php.ini.

La table suivante décrit quelques extensions disponibles requérant des bibliothèques DLLs supplémentaires.

Extensions PHP
Extension | Description | Notes
php_bz2.dll | bzip2 : fonctions de compression | Non
php_calendar.dll | Calendar : fonctions de conversion | Non
php_crack.dll | Fonctions Crack | None
php_ctype.dll | Famille de fonctions ctype | Non
php_curl.dll | Fonctions de bibliothèque client CURL | Requiert : libeay32.dll, ssleay32.dll (intégré)
php_dba.dll | DBA: DataBase (dbm-style) Fonctions d'abstraction | Non
php_dbase.dll | Fonctions dBase | Non
php_dbx.dll | Fonctions dbx |
php_exif.dll | Fonctions EXIF | php_mbstring.dll. Attention, php_exif.dll doit être chargé après php_mbstring.dll dans le php.ini.
php_fbsql.dll | Fonctions FrontBase | Non
php_fdf.dll | FDF : fonctions Forms Data Format. | Requiert : fdftk.dll (intégré)
php_filepro.dll | Fonctions filePro | Accès en lecture seule
php_ftp.dll | Fonctions FTP | Non
php_gd2.dll | GD : Bibliothèque de fonctions image | GD2
php_gettext.dll | Fonctions Gettext | PHP <= 4.2.0 requiert gnu_gettext.dll (intégré), PHP >= 4.2.3 requiert libintl-1.dll, iconv.dll (intégré).
php_hyperwave.dll | Fonctions HyperWave | Non
php_iconv.dll | ICONV : conversion de jeux de caractères | Requiert : iconv-1.3.dll (intégré), iconv.dll
php_ifx.dll | Fonctions Informix | Requiert : bibliothèque Informix
php_iisfunc.dll | Fonctions d'administration IIS | Non
php_imap.dll | IMAP : fonctions POP3 et NNTP | Non
php_ingres.dll | Fonctions Ingres | Requiert : bibliothèque Ingres
php_interbase.dll | Fonctions InterBase | Requiert : gds32.dll (intégré)
php_ldap.dll | Fonctions LDAP | Requiert libeay32.dll, ssleay32.dll (intégré)
php_mbstring.dll | Fonctions Chaînes multioctets | Non
php_mcrypt.dll | Fonctions Mcrypt Encryption | Requiert : libmcrypt.dll
php_mhash.dll | Fonctions Mhash | Requiert : libmhash.dll (intégré)
php_mime_magic.dll | Fonctions Mimetype | Requiert : magic.mime (intégré)
php_ming.dll | Fonctions Ming pour Flash | Non
php_msql.dll | Fonctions mSQL | Requiert : msql.dll (intégré)
php_mssql.dll | Fonctions MSSQL | Requiert : ntwdblib.dll (intégré)
php_mysql.dll | Fonctions MySQL | Requiert : libmysql.dll (intégré)
php_mysqli.dll | Fonctions MySQLi | Requiert : libmysql.dll (libmysqli.dll en PHP <=5.0.2) (intégré)
php_oci8.dll | Fonctions Oracle 8 | Requiert : bibliothèque cliente Oracle 8.1+
php_openssl.dll | Fonctions OpenSSL | Requiert : libeay32.dll (intégré)
php_pdf.dll | Fonctions PDF | Non
php_pgsql.dll | Fonctions PostgreSQL | Non
php_shmop.dll | Fonctions de partage de mémoire | Non
php_snmp.dll | Fonctions SNMP | NT seulement !
php_soap.dll | Fonctions SOAP | Non
php_sockets.dll | Fonctions Socket | Non
php_sybase_ct.dll | Fonctions Sybase | Requiert : bibliothèque cliente Sybase
php_tidy.dll | Fonctions Tidy | Non
php_tokenizer.dll | Fonctions Tokenizer | Non
php_w32api.dll | Fonctions W32api | Non
php_xmlrpc.dll | Fonctions XML-RPC | Requiert : iconv.dll (intégré)
php_xslt.dll | Fonctions XSLT | Requiert : sablot.dll, expat.dll, iconv.dll (intégré).
php_yaz.dll | Fonctions YAZ | Requiert : yaz.dll (intégré)
php_zip.dll | Fonctions Zip File | Accès en lecture seule
php_zlib.dll | Fonctions de compression ZLib | Non

Ligne de commande PHP sous Microsoft Windows

Cette section contient les notes et les astuces spécifiques à l'installation de PHP depuis la ligne de commande sous Windows.

Note:

Vous devriez lire les étapes du manuel d'installation d'abord !

Faire fonctionner PHP depuis la ligne de commande peut être effectué sans aucune modification de Windows.

C:\PHP5\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3

Mais il existe quelques étapes à suivre pour rendre ceci plus simple. La plupart de ces étapes ont déjà dû être faite, mais elles sont répétées ici pour fournir une séquence étape par étape complète.

    Note:

    Les variables PATH et PATHEXT sont des variables systèmes pré-existantes importantes sous Windows, et il est important de ne faire qu'ajouter des éléments, sans les écraser totalement.

  • Ajouter la localisation de l'exécutable PHP (php.exe, php-win.exe ou php-cli.exe suivant la version de PHP ainsi que les préférences d'affichage) à la variable d'environnement PATH. Vous trouverez plus d'informations concernant l'ajout du dossier PHP à la variable PATH dans l'entrée correspondante de la FAQ.

  • Ajouter l'extension .PHP à la variable d'environnement PATHEXT. Ceci peut être fait lors de la modification de la variable d'environnement PATH. Suivez les mêmes étapes que celles décrites dans la FAQ mais utilisez la variable PATHEXT au lieu de la variable d'environnement PATH.

    Note:

    La position à laquelle vous placez le .PHP déterminera le script ou le programme à exécuter lorsqu'un nom de fichier de cette forme sera trouvé. Par exemple, le fait de placer .PHP avant .BAT fera que votre script sera exécuté à la place du fichier batch, s'il y a un fichier batch avec le même nom.

  • Associer l'extension .PHP avec un type de fichier. Ceci peut être fait en exécutant la commande suivante :

    assoc .php=phpfile

  • Associer le type de fichier phpfile avec l'exécutable PHP approprié. Ceci peut être fait en exécutant la commande suivante :

    ftype phpfile="C:\PHP5\php.exe" -f "%1" -- %~2

Ces étapes permettent aux scripts PHP d'être exécutés depuis n'importe quel répertoire, sans pour autant spécifier l'exécutable PHP ou l'extension .PHP, et tous les paramètres seront passés au script pour traitement.

L'exemple ci-dessous montre les modifications pouvant être faites manuellement au registre Windows.

Exemple #24 Modification du registre

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php]
@="phpfile"
"Content Type"="application/php"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile]
@="PHP Script"
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008
"AlwaysShowExt"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon]
@="C:\\PHP5\\php-win.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell]
@="Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open]
@="&Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command]
@="\"C:\\PHP5\\php.exe\" -f \"%1\" -- %~2"

Avec ces modifications, la même commande peut maintenant être écrite comme ceci :

"C:\PHP Scripts\script" -arg1 -arg2 -arg3
ou, si le chemin "C:\PHP Scripts" est présent dans la variable d'environnement PATH :
script -arg1 -arg2 -arg3

Note:

Il y a un petit problème si vous tentez d'utiliser cette technique et qu'en même temps, vous utilisez votre script PHP comme filtre d'une commande, comme ceci :

dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3
ou
dir | script -arg1 -arg2 -arg3
Vous pourriez trouver que le script s'interrompt et que rien ne s'affiche. Afin de rendre ceci opérationnel, vous devez effectuer une nouvelle modification au registre Windows.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001
Plus d'informations concernant ce problème peuvent être trouvées dans » l'article de la base de connaissance Microsoft : 321788. Depuis Windows 10, cette configuration semble avoir été inversé ; l'installation par défaut de Windows 10 supporte les gestionnaires de console hérités automatiquement. Ce » post du forum Microsoft fournit l'explication.


  • « Installation sur les anciens systèmes Windows
  • Microsoft Azure »
  • PHP Manual
  • Installation et configuration
  • Installation sur des plateformes de Cloud Computing

Installation sur des plateformes de Cloud Computing

Sommaire

  • Microsoft Azure
  • Amazon EC2

PHP s'installe sur le cloud. Vers le cloud PHP !


  • « Installation sur des plateformes de Cloud Computing
  • Amazon EC2 »
  • PHP Manual
  • Installation sur des plateformes de Cloud Computing
  • Microsoft Azure

Microsoft Azure

PHP s'installe sur la plateforme Azure cloud.

Pour en savoir plus, voyez le SDK Azure pour PHP.


  • « Microsoft Azure
  • FastCGI Process Manager (FPM) »
  • PHP Manual
  • Installation sur des plateformes de Cloud Computing
  • Amazon EC2

Amazon EC2

Installation de PHP sur » la plateforme cloud EC2.

Voir aussi l'» AWS SDK pour PHP.


FastCGI Process Manager (FPM)

Sommaire

  • Installation
  • Configuration

FPM (FastCGI Process Manager) est une implémentation alternative à PHP FastCGI avec quelques fonctionnalités additionnelles particulièrement utiles pour les environnements à haute charge.

Ces fonctionnalités incluent :

  • Gestion avancée des processus avec stop/start doux (graceful) ;

  • Possibilité de démarrer des processus avec différents uid/gid/chroot/environment, écoutant sur différents ports et utilisant différents php.ini (remplace le safe_mode) ;

  • Journalisation stdout et stderr ;

  • Redémarrage d'urgence en cas de destruction accidentelle du cache opcode ;

  • Support de l'upload acccéléré ;

  • "slowlog" - journalisation des scripts (pas juste leurs noms, mais leur backtrace PHP également, utilisant ptrace ou équivalent pour lire le processus distant) qui s'éxecutent de manière anormalement lente ;

  • fastcgi_finish_request() - fonction spéciale pour terminer la requête et vider toutes les données tout en continuant d'exécuter une tâche consommatrice (conversion vidéo par exemple) ;

  • Naissance de processus fils dynamic/static ;

  • Informations sur la SAPI (similaire à mod_status d'Apache) ;

  • Fichier de configuration basé sur php.ini


Installation

Compiler depuis les sources

Pour activer FPM dans votre construction de PHP vous devez ajouter la ligne --enable-fpm à votre ligne de configuration.

Il existe de multiples options de configuration pour FPM (toutes optionnelles):

  • --with-fpm-user - l'utilisateur FPM (defaut - nobody).

  • --with-fpm-group - le groupe FPM (defaut - nobody).

  • --with-fpm-systemd - Active l'intégration de systemd (par défaut - no).

  • --with-fpm-acl - Utiliser POSIX Access Control Lists (par défaut - ni). Depuis PHP 5.6.5


Configuration

FPM utilise la syntaxe php.ini pour son fichier de configuration - php-fpm.conf ainsi que les fichiers de configuration de la file d'attente.

Liste des directives globales de php-fpm.conf

pid string

Chemin vers le fichier PID. Par défaut: none.

error_log string

Chemin vers le fichier de journal. Par défaut: #INSTALL_PREFIX#/log/php-fpm.log. Si défini à "syslog", le journal est envoyé vers syslogd au lieu d'être écrit dans un fichier local.

log_level string

Niveau de journalisation d'erreur. Valeurs possibles: alert, error, warning, notice, debug. Par défaut: notice.

syslog.facility string

Utilisé pour spécifier quel type de programme écrit le message. Valeur par défaut : daemon.

syslog.ident string

Ajoute au début de chaque message. Si vous avez de multiples instances FPM s'exécutant sur le même serveur, vous pouvez changer la valeur par défaut afin qu'elle convient à vos besoins. Valeur par défaut: php-fpm.

emergency_restart_threshold int

Si ce nombre de processus fils terminent avec un SIGSEGV ou SIGBUS dans l'intervalle de temps précisé dans emergency_restart_interval, alors FPM redémarrera. Une valeur de 0 signifie 'Off'. Valeur par défaut: 0 (Off).

emergency_restart_interval mixed

Intervalle de temps utilisé par emergency_restart_interval pour determiner lorsqu'un redémarrage doux doit être lancé. Ceci peut être utile pour contourner des corruptions accidentelles dans la mémoire partagée d'un accelérateur. Unités disponibles: s(econdes), m(inutes), h(eures), ou d(ays). Unité par défaut: secondes. Valeur par défaut: 0 (Off).

process_control_timeout mixed

Temps limite qu'attendront les processus fils pour réagir aux signaux du père. Unités disponibles: s(econdes), m(inutes), h(eures), ou d(ays) Unité par défaut: secondes. Valeur par défaut: 0.

process.max int

Le nombre maximum de processus que FPM va forker. Ceci a été conçu pour contrôler le nombre global de processus lors de l'utilisation d'un gestionnaire de processus dynamique avec beaucoup de pools. A utiliser avec attention. Valeur par défaut : 0.

process.priority int

Défini la priorité nice(2) à appliquer au processus principal (uniquement si défini) La valeur peut varier de -19 (priorité haute) à 20 (priorité basse). Valeur par défaut : non défini.

daemonize boolean

Envoie FPM en arrière plan. Mettez 'no' pour garder FPM au premier plan lors du débogage. Valeur par défaut: yes.

rlimit_files int

Défini la rlimit pour les descripteurs de fichiers ouverts pour le processus principal. Valeur par défaut: valeur du système.

rlimit_core int

Défini la taille maximale de rlimit pour le processus principal. Valeur par défaut : 0.

events.mechanism string

Spécifie le gestionnaire d’événement que FPM va utiliser. Sont disponible : select, pool, epoll, kqueue (*BSD), port (Solaris). Valeur par défaut : non défini (détection automatique).

systemd_interval int

Quand FPM est construit avec le support de systemd, spécifie l'intervalle en seconde, entre les notification de rapport de santé envoyé à systemd. Définir à 0 pour désactiver. Valeur par défaut : 10.

Liste des directives de pool

Avec FPM vous pouvez executer plusieurs pools de processus avec des paramètres différents. Voici les paramètres qui peuvent être ajustés par pool.

listen string

L'adresse pour accepter des requêtes FastCGI. Syntaxes valides: 'ip.add.re.ss:port', 'port', '/path/to/unix/socket'. Cette option est obligatoire pour chaque pool.

listen.backlog int

Affecte listen(2) backlog. Une valeur de '-1' signifie illimité. Valeur par défaut: -1.

listen.allowed_clients string

Liste d'adresses IPv4 des clients FastCGI autorisés à se connecter. C'est équivalent à la variable d'environnement FCGI_WEB_SERVER_ADDRS dans le système FastCGI original de PHP (5.2.2+). N'a de sens qu'avec un socket tcp en écoute. Chaque adresse doit être séparée par une virgule. Si cette valeur n'est pas précisée, les connexions seront accceptées depuis toute adresse ip. Valeur par défaut: any. Les adresses IPv6 sont autorisées depuis PHP 5.5.20 et 5.6.4.

listen.owner string

Affecte les permissions pour le socket Unix si utilisé. Sous Linux, les permissions read/write doivent être affectées pour autoriser des connexions depuis un serveur web. Beaucoup de systèmes dérivés BSD autorisent les connexions quelles que soient les permissions. Valeurs par défaut: user et group sont ceux de l'utilisateur courant, le mode est 0660.

listen.group string

Voyez listen.owner.

listen.mode string

Voyez listen.owner.

listen.acl_users string

Quand les listes de contrôle d'accès POSIX sont supportées, vous pouvez les définir en utilisant cette option. Quand défini, listen.owner et listen.group sont ignorés. La valeur est une liste de noms d'utilisateurs séparés par des virgules. Disponible depuis PHP 5.6.5.

listen.acl_groups string

Voir listen.acl_users. La valeur est une liste de noms de groupes séparés par des virgules. Disponible depuis PHP 5.6.5.

user string

Utilisateur Unix des processus FPM. Cette option est obligatoire.

group string

Groupe Unix des processus FPM. Si non précisé, le groupe de l'utilisateur est utilisé.

pm string

Choisi comment le gestionnaire de processus va contrôler le nombre de processus fils. Valeurs possibles : static, ondemand, dynamic. Option obligatoire.

static - nombre de processus fils fixés (pm.max_children).

ondemand - le processus se réactive à la demande (lorsque demandé, c'est l'opposé de dynamique où pm.start_servers sont démarrés lorsque le service démarre).

dynamic - nombre de processus fils dynamiques basé sur le directives suivantes: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.

pm.max_children int

Nombre de processus fils à créer lorsque pm est réglé sur static. Nombre maximum de processus fils à créer lorsque pm est réglé sur dynamic. Options obligatoire.

Cette option affecte la limite du nombre de requêtes simultanées qui seront servies. Equivalent à ApacheMaxClients avec mpm_prefork et à PHP_FCGI_CHILDREN dans l'implémentation originale de FastCGI de PHP.

pm.start_servers int

Nombre de processus fils à créer au démarrage. Utilisé seulement si pm est réglé sur dynamic. Valeur par défaut: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.

pm.min_spare_servers int

Nombre minimum de processus au repos (idle) voulus. Utilisé seulement si pm est réglé sur dynamic. Obligatoire dans ce cas.

pm.max_spare_servers int

Nombre maximum de processus au repos (idle) voulus. Utilisé seulement si pm est réglé sur dynamic. Obligatoire dans ce cas.

pm.max_requests int

Nombre de requête que chaque processus fils devrait exécuter avant de renaitre. Ceci peut être utile pour contourner des fuites mémoires dans des librairies tierces. Pour un traitement sans fin des requêtes, précisez '0'. Equivalent à PHP_FCGI_MAX_REQUESTS. Par défaut: 0.

pm.status_path string

L'URI vers la page de statut de FPM. Si cette valeur n'est pas précisée, aucune page de statut ne sera utilisée, ce qui est le cas par défaut.

ping.path string

L'URI de ping pour appeler la page de monitoring de FPM. Si aucune valeur n'est précisée, aucune page de ping ne sera disponible. Ceci pourrait être utilisé pour tester depuis l'extérieur si FPM est toujours disponible et prêt à répondre. Notez que la valeur doit commencer par un slash (/).

ping.response string

Cette directive est utile pour personnaliser la réponse à une requête de ping. La réponse est formatée comme text/plain avec un code de réponse de 200. Valeur par défaut: pong.

request_terminate_timeout mixed

Le timeout pour servir une requête après lequel le processus concerné sera tué. Cette option devrait être utilisée lorsque l'option 'max_execution_time' ne stoppe pas l'exécution du script pour une raison quelconque. Une valeur de '0' signifie 'Off'. Unités disponibles: s(econdes)(défaut), m(inutes), h(eures), ou d(ays). Par défaut: 0.

request_slowlog_timeout mixed

Le timeout pour servir une requête dans laquelle la backtrace PHP sera vidée dans le fichier 'slowlog'. Une valeur de '0' signifie 'Off'. Unités disponibles: s(econdes)(défaut), m(inutes), h(eures), ou d(ays). Par défaut: 0.

slowlog string

Le journal pour les requêtes lentes, par défaut: #INSTALL_PREFIX#/log/php-fpm.log.slow.

rlimit_files int

Affecte la rlimit pour les descripteurs de fichiers ouverts des processus enfants de ce pool. Valeur par défaut: valeur du système.

rlimit_core int

Affecte la taille maximale de rlimit des processus enfants de ce pool. Valeurs possibles: 'unlimited' ou un entier plus grand ou égal à 0. Valeur par défaut: valeur définie par le système.

chroot string

Chroot vers ce dossier au démarrage. Cette valeur doit être un chemin absolu. Si cette valeur n'est pas définie, chroot n'est pas utilisé.

chdir string

Chdir vers ce dossier au démarrage. Cette valeur doit être un chemin absolu. Valeur par défaut: dossier courant ou / si chroot.

catch_workers_output boolean

Redirige stdout et stderr vers le journal d'erreur principal. Si non précisé, stdout et stderr seront redirigés vers /dev/null selon les specifications FastCGI. Valeur par défaut: no.

clear_env boolean

Nettoie l’environnent des agents FPM. Prévient que des variables d’environnement arbitraire puissent atteindre les processus FPM par le nettoyage de l'environnement de ces agents avant que les variables d’environnement spécifiée dans la configuration du pool ne soient ajoutées. Disponible depuis PHP 5.4.27, 5.5.11, et 5.6.0.

security.limit_extensions string

Limite les extensions que le script principal FPM va être autorisé à analyser. Ceci peut prévenir les erreurs de configuration coté serveur. Vous pouvez limiter FPM à exécuter seulement les extensions .php pour prévenir que des utilisateurs malicieux utilisent d'autres extensions pour exécuter du code. Valeur par défaut : .php.

Il est possible de passer des variables d'environnement additionnelles et mettre à jour les paramètres de PHP d'un pool. Pour ce faire, vous devez ajouter les options suivantes au fichier de configuration de la file d'attente.

Exemple #1 Passer des variables d'environnement et des paramètres PHP à un pool

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 32M
Les paramètres PHP passés avec php_value ou php_flag écraseront leur valeur précédente. Notez que définir disable_functions ou disable_classes n'écrasera pas les valeurs concernées précédemment définies dans php.ini, mais rajouteront les valeurs à la suite des anciennes.

Les paramètres définis avec php_admin_value et php_admin_flag ne peuvent être surchargés via ini_set().

Depuis 5.3.3, les paramètres de PHP peuvent être définis dans le serveur web.

Exemple #2 Définit les paramètres PHP dans le fichier nginx.conf

set $php_value "pcre.backtrack_limit=424242";
set $php_value "$php_value \n pcre.recursion_limit=99999";
fastcgi_param  PHP_VALUE $php_value;

fastcgi_param  PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs";
Attention

En raison du fait que ces configurations sont passées à php-fpm comme en-têtes fastcgi, php-fpm ne doit pas être relié directement au web et ainsi y être directement accessible. Sinon, tout le monde pourra altérer les options de configuration de PHP. Voir aussi l'option listen.allowed_clients.


Installation d'extensions PECL

Sommaire

  • Introduction aux installations PECL
  • Télécharger des extensions PECL
  • Installer une extension PHP sous Windows
  • Compilation d'extensions PECL partagées avec la commande pecl
  • Compilation des extensions partagées avec phpize
  • php-config
  • Compilation des extensions PECL statiquement dans PHP


Introduction aux installations PECL

» PECL est un dépôt d'extensions PHP qui sont disponibles via le système de paquet » PEAR. Cette section du manuel vous guide dans l'obtention et l'installation d'extensions PECL.

Ces instructions supposent que /your/phpsrcdir/ est le chemin jusqu'aux sources de la distribution PHP, et extname est le nom de votre extension PECL : adaptez les commandes qui suivent à votre situation. Ces instructions supposent aussi que vous êtes familier avec l'utilisation des » commandes pear. Les informations dans le manuel PEAR pour la commande pear sont également applicables à la commande pecl.

Pour être utilisée, une extension partagée doit être compilée, installée et chargée. Les méthodes décrites ci-dessous vous fournissent diverses instructions sur la façon de compiler et d'installer des extensions mais ne les chargent pas automatiquement. Les extensions peuvent être chargées en ajoutant une directive d'extension au fichier php.ini ou à l'aide de la fonction dl().

Lorsque vous compilez des modules PHP, il est important d'avoir les outils dans leurs versions appropriées, tels que autoconf, automake, libtool, etc. Voyez les » Instructions pour le Git anonyme, afin de connaître les utilitaires nécessaires, et leurs versions.


Télécharger des extensions PECL

Il existe plusieurs méthodes pour télécharger des extensions PECL :

    La commande pecl install extname télécharge le code des extensions automatiquement, ce qui évite de réaliser un téléchargement particulier.

  • » http://pecl.php.net/ Le site Web de PECL contient diverses informations sur les différentes extensions offertes par l'équipe de développement de PHP. Vous pourrez consulter les modifications entre les versions, les notes de versions, ce qui est requis pour faire fonctionner l'extension ainsi que d'autres détails similaires.
  • pecl download extname Les extensions PECL listées sur le site web de PECL sont disponibles et peuvent être téléchargées et installées en utilisant la » commande pecl. La version spécifique de l'extension peut également être spécifiée.
  • SVN La plupart des fichiers PECL sont conservés dans le serveur SVN. Une interface Web est disponible à » http://svn.php.net/viewvc/pecl/. Pour télécharger directement depuis SVN, suivez la séquence d'instructions ci-dessous :

    $ svn checkout http://svn.php.net/repository/pecl/extname/trunk extname

  • Téléchargements pour Windows : pour le moment, le projet PHP ne compile pas les binaires Windows pour les extensions PECL. Cepdendant, pour compiler PHP sous Windows, reportez-vous au chapitre intitulé Compiler PHP sous Windows.


Installer une extension PHP sous Windows

Sur Windows, vous avez deux moyens de charger une extension PHP : soit vous la compilez dans PHP, soit vous chargez une DLL. Charger une extension précompilée est la méthode la plus pratique et la plus recommandée.

Pour charger une extension, vous devez disposer de son fichier ".dll" sur votre système. Toutes les extensions sont automatiquement et périodiquement compilées par le groupe PHP (voyez la section de téléchargements).

Pour compiler une extension dans PHP, reportez-vous à la documentation sur la compilation des sources.

Pour compiler une extension autonome, (c'est-à-dire un fichier DLL), reportez-vous documentation sur la compilation des sources. Si le fichier DLL est absent de votre distribution PHP et de PECL, il vous faudra la compiler avant de pouvoir l'utiliser.

Où trouver une extension ?

Les extensions PHP sont généralement appelées "php_*.dll" (où les astérisques représentent le nom de l'extension) et elles sont rangées dans le dossier "PHP\ext".

PHP est livré avec les extensions qui sont les plus utiles à la majorité des utilisateurs. Elles sont appelées des extensions coeur, ou "core".

Cependant, si vous avez besoin de fonctionnalités qui ne sont pas fournies par une extension coeur, vous pourriez quand même les trouver dans PECL. Le PHP Extension Community Library (PECL, aussi dit Bibliothèque d'Extensions Communautaires de PHP) est un dépôt de code pour les extensions PHP, qui fournit un annuaire de toutes les extensions connues, et un service d'hébergement pour télécharger et développer ces extensions.

Si vous avez développé une extension pour votre propre usage, vous pourriez avoir envie de l'héberger sur PECL, pour que tous ceux qui ont eu le même problème que vous, puissent avoir accès à la même solution. Cela vous donne de bonnes chances d'avoir des retours de la communauté, et, peut-être, des remerciements, des rapports de bugs, et même des correctifs. Avant que vous n'envoyiez votre extension sur les serveurs PECL, il est recommandé de lire » PECL submit.

Quelles extensions télécharger ?

Souvent, vous trouverez plusieurs versions de chaque DLL :

  • Différents numéros de versions (au moins, les deux premiers chiffres doivent être les mêmes)
  • Différentes configurations de sécurité de threads
  • Différentes architectures de processeurs (x86, x64...)
  • Différentes configurations de débogage
  • etc.

Il est recommandé de choisir les extensions pour qu'elles soient adaptées à la machine serveur sur laquelle vous utilisez PHP. Le script suivant va vous afficher toutes vos configurations PHP :

Exemple #1 Appel de la fonction phpinfo()

<?php
phpinfo();
?>

Ou bien, en ligne de commande :

drive:\\path\to\php\executable\php.exe -i

Charger une extension

Le moyen le plus courant pour charger une extension PHP est de l'inclure dans votre fichier de configuration php.ini. Notez que de nombreuses extensions sont déjà présentes dans le fichier php.ini et que vous avez simplement à supprimer le point-virgule pour les activer.

;extension=php_extname.dll

extension=php_extname.dll

Cependant, certains serveurs Web sont déroutants, car ils n'utilisent pas le fichier php.ini rangé avec votre exécutable PHP. Pour en savoir plus sur votre véritable php.ini, recherchez son dossier dans le fichier phpinfo():

Configuration File (php.ini) Path   C:\WINDOWS

Loaded Configuration File   C:\Program Files\PHP\5.2\php.ini

Après activation d'une extension, sauvegardez le fichier php.ini, et relancez le serveur Web, puis vérifiez à nouveau le fichier phpinfo(). La nouvelle extension devrait y avoir sa section.

Résolution de problèmes

Si l'extension n'apparaît pas dans le fichier phpinfo(), vous devriez jeter un oeil dans les logs pour savoir d'où vient le problème.

Si vous utilisez PHP en ligne de commande (CLI), l'erreur de chargement de l'extension devrait être lisible directement sur l'écran.

Si vous utilisez PHP sur un serveur Web, la position et le format des logs varient grandement d'un serveur à l'autre. Lisez la documentation de votre serveur Web pour savoir où ils sont : PHP ne peut pas vous aider pour cela.

Les problèmes les plus courants sont la localisation du fichier DLL, la valeur de la directive "extension_dir" dans le php.ini et les incohérences de compilations.

Si le problème est une incohérence de compilation, vous avez probablement téléchargé une mauvaise DLL. Essayez d'en charger une nouvelle, avec les bonnes configurations pour votre serveur. phpinfo() vous sera alors très utile.


Compilation d'extensions PECL partagées avec la commande pecl

PECL facilite la création d'extension PHP partagées. En utilisant la » commande pecl, faites ceci :

$ pecl install extname

Ceci va télécharger le fichier source de l'extension extname, le compiler et installer le fichier extname.so dans votre dossier extension_dir. extname.so doit ensuite être chargé via php.ini.

Par défaut, la commande pecl n'installera pas les paquets marqués comme étant alpha ou beta. Si aucun paquet stable est disponible, vous devrez installer un paquet beta en utilisant la commande suivante :

$ pecl install extname-beta

Vous pouvez également installer une version spécifique en utilisant la commande :

$ pecl install extname-0.1

Note:

Après avoir activée cette extension dans le php.ini, relancez le serveur Web afin de la prendre en compte.


Compilation des extensions partagées avec phpize

Parfois, l'utilisation de l'installeur pecl n'est pas une bonne option. Ceci parce que vous être derrière un pare-feu ou parce que l'extension que vous voulez installer n'est pas disponible en tant que paquet PECL comme une extension uniquement disponible via SVN. Si vous devez compiler une telle extension, vous pouvez utiliser l'utilitaire de compilation afin d'exécuter la compilation manuellement.

La commande phpize est utilisée pour préparer l'environnement de compilation pour une extension PHP. Dans l'exemple suivant, les sources de l'extension sont dans un dossier appelé extname :

$ cd extname
$ phpize
$ ./configure
$ make
# make install

Une installation réussie aura créé un fichier extname.so et l'aura placé dans le dossier des extensions de PHP. Vous devez ajouter la ligne extension=extname.so dans votre php.ini avant de pouvoir utiliser l'extension.

Si le système ne possède pas la commande phpize et que vous utilisez des paquets précompilés (comme des RPM), assurez-vous d'installer également la version de développement appropriée des paquets PHP car elle inclut également la commande phpize ainsi que les en-têtes appropriés pour construire PHP et ses extensions.

Exécutez la commande phpize --help pour afficher des informations d'utilisation supplémentaires.


php-config

php-config est un petit script shell pour obtenir des informations sur la configuration installée de PHP.

Lors de la compilation des extensions, si vous avez plusieurs versions PHP d'installées, vous devez spécifier l'installation pour laquelle vous souhaitez les compiler en utilisant l'option --with-php-config lors de la configuration, spécifiant ainsi le chemin vers le script php-config.

La liste des options de ligne de commande fournies par le script php-config peut être obtenue en exécutant le script php-config avec l'option -h :

Usage: /usr/local/bin/php-config [OPTION]
Options:
  --prefix            [...]
  --includes          [...]
  --ldflags           [...]
  --libs              [...]
  --extension-dir     [...]
  --include-dir       [...]
  --php-binary        [...]
  --php-sapis         [...]
  --configure-options [...]
  --version           [...]
  --vernum            [...]

Options de ligne de commande
Option | Description
--prefix | Préfixe du dossier où PHP est installé, i.e. /usr/local
--includes | Liste des options -I avec tous les fichiers inclus
--ldflags | Drapeaux LD qui ont été compilés avec PHP
--libs | Bibliothèques additionnelles qui ont été compilées avec PHP
--extension-dir | Dossiers où les extensions sont recherchées par défaut
--include-dir | Préfixe du dossier où les en-têtes de fichiers sont installés par défaut
--php-binary | Chemin complet vers le CLI PHP ou le binaire CGI
--php-sapis | Affiche tous les modules SAPI disponibles
--configure-options | Options de configuration pour recréer la configuration de l'installation courante de PHP
--version | Version de PHP
--vernum | Version de PHP sous la forme d'un entier


Compilation des extensions PECL statiquement dans PHP

Il peut arriver que vous ayez à compiler votre extension PECL statiquement dans votre binaire PHP. Pour ce faire, vous devez placer les sources de l'extension dans le dossier /votre/dossierphpsrc/ext/ et exécuter à nouveau le script de configuration de PHP.

$ cd /your/phpsrcdir/ext
$ pecl download extname
$ gzip -d < extname.tgz | tar -xvf -
$ mv extname-x.x.x extname
$ rm package.xml

Cela générera le dossier suivant :

/your/phpsrcdir/ext/extname

À partir de la, forcez PHP à reconstruire le script de configuration, puis, suivez le processus classique de compilation de PHP :

$ cd /your/phpsrcdir
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install

Note: Pour exécuter le script 'buildconf', vous devez posséder autoconf 2.13 et automake 1.4+ (les versions plus récentes de autoconf peuvent fonctionner, mais ne sont pas supportées).

L'utilisation de --enable-extname ou --with-extname dépend de l'extension. Généralement, une extension qui ne dépend pas d'une bibliothèque externe utilise --enable. Pour être certain, utilisez la commande suivante après avoir utilisé buildconf :

$ ./configure --help | grep extname


  • « Compilation des extensions PECL statiquement dans PHP
  • Lisez la FAQ »
  • PHP Manual
  • Installation et configuration
  • Des problèmes ?

Des problèmes ?

Sommaire

  • Lisez la FAQ
  • Autres problèmes
  • Rapports de Bogue


Lisez la FAQ

Certains problèmes sont récurrents : les plus communs sont listés dans la FAQ PHP, disponible dans ce manuel.


Autres problèmes

Si vous êtes complètement bloqué, quelqu'un sur la liste de diffusion PHP pourra probablement vous aider. Essayez de consulter les archives, au cas où quelqu'un aurait déjà rencontré votre problème. Les archives sont toujours accessibles à : » http://www.php.net/support.php. Pour souscrire à la liste de diffusion, envoyez un mail vide à » php-install-subscribe@lists.php.net. L'adresse de la liste de diffusion est » php-install@lists.php.net.

Si vous voulez obtenir de l'aide sur la liste de diffusion PHP, essayez d'être concis et clair, et pensez à donner tous les détails sur votre environnement (OS, version de PHP, serveur Web, CGI ou module, safe mode, etc.), et n'hésitez pas à envoyer suffisamment de code pour que nous puissions reproduire et tester l'erreur.


Rapports de Bogue

Si vous pensez avoir trouvé un bogue dans PHP, n'oubliez pas de le signaler. L'équipe de développement PHP ne le connaît peut être pas et, si vous ne le signalez pas, vos chances de voir le bogue corrigé sont nulles. Vous pouvez rapporter des bogues grâce au système de suivi, accessible à » http://bugs.php.net/. S'il vous plait, n'envoyez pas de rapports de bogue sur les listes de diffusion ou par courier personnel. Le système de suivi est de plus prévu pour permettre la proposition de nouvelles fonctionnalités.

Lisez le guide » Comment rapporter un bogue (Les bogues : ce qu'il faut faire, et ce qu'il ne faut pas faire) avant d'envoyer n'importe quel rapport !


Configuration à l'exécution

Sommaire

  • Le fichier de configuration
  • Fichiers .user.ini
  • Où une directive de configuration peut être modifiée
  • Comment modifier la configuration


Le fichier de configuration

Le fichier de configuration (php.ini) est lu par PHP au démarrage. Si vous avez compilé PHP en module, le fichier n'est lu qu'une seule fois, au lancement du serveur web. Pour les versions CGI et CLI le fichier est lu à chaque invocation.

Le php.ini est cherché dans ces endroits (et dans cet ordre) :

  • L'endroit spécifique du module SAPI (la directive PHPIniDir d'Apache 2, l'option de la ligne de commande -cen CGI et en CLI, le paramètre php_ini en NSAPI, la variable d'environnement PHP_INI_PATH en THTTPD)
  • La variable d'environnement PHPRC. Avant PHP 5.2.0, cette variable était récupérée après la clé de registre mentionnée ci-dessous.
  • Depuis PHP 5.2.0, l'endroit où se trouve le fichier php.ini peut être définis pour différentes versions de PHP. Les clés de registre suivantes sont cherchées dans cet ordre : [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] and [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], où x, y et z signifie les versions majeures, mineures et normales. S'il y a une valeur pour IniFilePath dans ces clés, la première trouvée sera utilisée comme endroit où se trouve le fichier php.ini (uniquement sous Windows).
  • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP], valeur de IniFilePath (uniquement sous Windows).
  • Le dossier courant de travail (sauf pour CLI)
  • Le dossier du serveur web (pour les modules SAPI), ou le dossier contenant PHP (autrement sous Windows)
  • Le dossier Windows (C:\windows ou C:\winnt) (pour Windows), ou l'option de compilation --with-config-file-path lors de la compilation

Si le fichier php-SAPI.ini existe (où SAPI utilise SAPI, donc le nom du fichier est e.g. php-cli.ini ou php-apache.ini), il sera utilisé à la place du php.ini. Le nom SAPI peut être déterminé en utilisant la fonction php_sapi_name().

Note:

Le serveur web Apache change ce dossier en dossier root au démarrage, ce qui fait que PHP essaye de lire php.ini depuis le système de fichiers racine s'il existe.

Les variables d'environnements peuvent être utilisées dans le fichier php.ini comme ci-dessous.

Exemple #1 Les variables d'environnement dans un fichier php.ini

; PHP_MEMORY_LIMIT est repris depuis l'environnement
memory_limit = ${PHP_MEMORY_LIMIT}

Les directives php.ini sont directement documentées, par extensions, sur les pages respectives du manuel de ces extensions. La liste des directives internes est disponible en annexe. Il est probable que toutes les directives PHP ne sont pas documentées dans le manuel. Pour une liste complète des directives disponibles dans votre version de PHP, merci de lire les commentaires de votre propre fichier php.ini. Vous pouvez également trouver la » dernière version du php.ini sur Git.

Exemple #2 Extrait du php.ini

; tout texte sur une ligne, situé après un point-virgule ";" est ignoré
[php] ; les marqueurs de section (texte entre crochets) sont aussi ignorés
; Les valeurs booléennes peuvent être spécifiées comme ceci :
;    true, on, yes
; ou false, off, no, none
register_globals = off
track_errors = yes

; vous pouvez placer les chaînes de caractères entre guillemets
include_path = ".:/usr/local/lib/php"

; Les antislash sont traités comme n'importe quel caractère
include_path = ".;c:\php\lib"

Depuis PHP 5.1.0, il est possible de se référer à des variables .ini depuis des fichiers .ini. Par exemple : open_basedir = ${open_basedir} ":/new/dir".

Historique

Version | Description
7.0.0 | Les marqueurs croisillons (#) ne sont plus reconnus comme des commentaires.
5.3.0 | Les marqueurs croisillons (#) ne doivent plus être utilisés comme commentaires et vont lever un avertissement pour dépréciation si utilisé.
5.1.0 | Il est possible de faire référence à des variables existantes de .ini à l'intérieur de fichier .ini.


Fichiers .user.ini

Depuis PHP 5.3.0, PHP inclut le support des fichiers INI au style configuration sur une base par dossier. Ces fichiers sont analysés uniquement par le SAPI CGI/FastCGI. Cette fonctionnalité rend obsolète l'extension PECL htscanner. Si vous utilisez Apache, l'utilisation des fichiers .htaccess produit le même effet.

En plus du fichier php.ini principal, PHP analyse les fichiers INI contenus dans chaque dossier, en commençant par le dossier depuis lequel le fichier PHP courant est appelé, et parcourt les dossiers jusqu'au dossier racine courant (tel que défini par la variable $_SERVER['DOCUMENT_ROOT']). Dans le cas où le fichier PHP est hors de la racine web, seul son dossier est scanné.

Seules les configurations INI avec les modes PHP_INI_PERDIR et PHP_INI_USER seront reconnues dans les fichiers INI .user.ini-style.

Deux nouvelles directives INI, user_ini.filename et user_ini.cache_ttl contrôlent l'utilisation des fichiers INI définis par l'utilisateur.

user_ini.filename définit le nom du fichier cherché par PHP dans chaque dossier ; si cette directive est définie à une chaîne vide, PHP n'analysera rien du tout. Par défaut, vaut .user.ini.

user_ini.cache_ttl contrôle la durée entre 2 re-lectures des fichiers INI définis par l'utilisateur. Par défaut, vaut 300 secondes (5 minutes).


Où une directive de configuration peut être modifiée

Ces modes déterminent quand et où une directive PHP peut ou ne peut pas être modifiée, et chaque directive du manuel est dirigée par un de ces modes. Par exemple, certaines directives peuvent être modifiées dans un script PHP avec la fonction ini_set(), alors que d'autres ont besoin d'être modifiées dans les fichiers php.ini ou httpd.conf.

Par exemple, la directive output_buffering a le mode PHP_INI_PERDIR alors elle ne peut pas être modifiée avec la fonction ini_set(). D'un autre coté, la directive display_errors a le mode PHP_INI_ALL, et peut être modifiée n'importe où, y compris avec la fonction ini_set().

Définition des modes PHP_INI_*
Mode | Signification
PHP_INI_USER | La directive peut être modifiée dans un script utilisateur, avec la fonction ini_set(), ou via la base de registre Windows. Depuis PHP 5.3, l'entrée peut être définie dans .user.ini.
PHP_INI_PERDIR | La directive peut être modifiée dans les fichiers php.ini, .htaccess httpd.conf ou .user.ini (depuis PHP 5.3).
PHP_INI_SYSTEM | La directive peut être modifiée dans les fichiers php.ini ou httpd.conf
PHP_INI_ALL | La directive peut être modifiée n'importe où


Comment modifier la configuration

Exécuter PHP comme module Apache

Lorsque vous utilisez le module Apache, vous pouvez aussi changer les paramètres de configuration en utilisant les directives dans les fichiers de configuration d'Apache (httpd.conf) et dans les fichiers .htaccess. Vous aurez besoin des privilèges "AllowOverride Options" ou "AllowOverride All".

Il y a de nombreuses directives Apache qui vous permettent de modifier la configuration de PHP à partir des fichiers de configuration Apache. Pour une liste des directives qui sont PHP_INI_ALL, PHP_INI_PERDIR ou PHP_INI_SYSTEM reportez-vous à l'annexe Liste des directives du php.ini.

php_value nom valeur

Modifie la valeur de la directive spécifiée. Cette instruction n'est utilisable qu'avec les directives PHP de type PHP_INI_ALL et PHP_INI_PERDIR. Pour annuler une valeur qui aurait été modifiée au préalable, utilisez la valeur none.

Note: N'utilisez pas php_value pour configurer des valeurs booléennes. php_flag (voir plus bas) doit être utilisée.

php_flag nom on|off

Cette instruction est utilisée pour activer ou désactiver une option. Cette instruction n'est utilisable qu'avec les directives PHP de type PHP_INI_ALL et PHP_INI_PERDIR.

php_admin_value nom valeur

Cette instruction affecte une valeur à la variable spécifiée. Cette instruction NE peut PAS être utilisée dans un fichier .htaccess. Toute directive de PHP configurée avec le type php_admin_value ne peut pas être modifiée en utilisant le fichier .htaccess ou la fonction ini_set(). Pour annuler une valeur qui aurait été modifiée au préalable, utilisez la valeur none.

php_admin_flag name on|off

Cette directive est utilisée pour activer ou désactiver une option. Cette instruction NE peut PAS être utilisée dans un fichier .htaccess. Toute directive de PHP configurée avec le type php_admin_flag ne peut pas être modifiée en utilisant le fichier .htaccess ou par la fonction ini_set().

Exemple #1 Exemple de configuration Apache

<IfModule mod_php5.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>
<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>

Attention

Les constantes PHP n'existent pas en dehors de PHP. Par exemple, dans le fichier httpd.conf, vous ne pouvez pas utiliser des constantes PHP telles que E_ALL ou E_NOTICE pour spécifier le niveau de rapport d'erreur, car ces constantes n'ont pas de signification pour Apache, et seront remplacées par 0. Utilisez les valeurs numériques à la place. Les constantes peuvent être utilisées dans le php.ini

Modifier la configuration de PHP via la base de registre Windows

Lorsque vous utilisez PHP sur Windows, la configuration peut être modifiée dossier par dossier en utilisant la base de registres de Windows. Les valeurs de configuration sont stockées avec la clé de registre HKLM\SOFTWARE\PHP\Per Directory Values, dans les sous-clés correspondantes aux noms de dossier. Par exemple, la valeur d'une option dans le dossier c:\inetpub\wwwroot sera stockée dans la clé HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. La valeur de cette option sera utilisée pour tous les scripts qui fonctionnent dans ce dossier ou ses sous-dossiers. Les valeurs sous la clé doivent avoir le nom d'une direction de configuration PHP, et la valeur correspondante. Les constantes PHP ne sont pas utilisables : il faut mettre la valeur entière. Cependant, seules les valeurs des configurations dans PHP_INI_USER peuvent être fixées de cette manière, celles dans PHP_INI_PERDIR ne peuvent l'être.

Autres interfaces de configuration de PHP

Suivant la façon dont vous exécutez PHP, vous pouvez changer certaines valeurs durant l'exécution de vos scripts en utilisant ini_set(). Voir la documentation de la fonction ini_set() pour plus d'informations.

Si vous êtes intéressé par une liste complète des options configurées sur votre système avec leurs valeurs courantes, vous pouvez exécuter la fonction phpinfo() et consulter la page résultante. Vous pouvez aussi accéder individuellement aux directives de configuration pendant l'exécution de vos scripts en utilisant soit la fonction ini_get(), soit la fonction get_cfg_var().


Référence du langage

  • La syntaxe de base
    • Balises PHP
    • Échappement depuis du HTML
    • Séparation des instructions
    • Commentaires
  • Les types
    • Introduction
    • Booléen
    • Les entiers
    • Nombres décimaux
    • Les chaînes de caractères
    • Les tableaux
    • Les objets
    • Les ressources
    • NULL
    • Fonctions de rappel / Types Callable
    • Variables et pseudo-types utilisés dans cette documentation
    • Manipulation de types
  • Les variables
    • Essentiel
    • Variables pré-définies
    • Portée des variables
    • Les variables dynamiques
    • Variables externes à PHP
  • Les constantes
    • Syntaxe
    • Constantes magiques
  • Les expressions
  • Les opérateurs
    • La précédence des opérateurs
    • Les opérateurs arithmétiques
    • Les opérateurs d'affectation
    • Opérateurs sur les bits
    • Opérateurs de comparaison
    • Opérateur de contrôle d'erreur
    • Opérateur d'exécution
    • Opérateurs d'incrémentation et décrémentation
    • Les opérateurs logiques
    • Opérateurs de chaînes
    • Opérateurs de tableaux
    • Opérateurs de types
  • Les structures de contrôle
    • Introduction
    • if
    • else
    • elseif/else if
    • Syntaxe alternative
    • while
    • do-while
    • for
    • foreach
    • break
    • continue
    • switch
    • declare
    • return
    • require
    • include
    • require_once
    • include_once
    • goto
  • Les fonctions
    • Les fonctions définies par l'utilisateur
    • Les arguments de fonction
    • Les valeurs de retour
    • Fonctions variables
    • Fonctions internes
    • Fonctions anonymes
  • Les classes et les objets
    • Introduction
    • Syntaxe de base
    • Propriétés
    • Constantes de classe
    • Auto-chargement de classes
    • Constructeurs et destructeurs
    • Visibilité
    • Héritage
    • L'opérateur de résolution de portée (::)
    • Statique
    • Abstraction de classes
    • Interfaces
    • Traits
    • Classes anonymes
    • Surcharge magique
    • Parcours d'objets
    • Méthodes magiques
    • Mot-clé "final"
    • Clônage d'objets
    • Comparaison d'objets
    • Typage objet
    • Late Static Bindings (Résolution statique à la volée)
    • Objets et références
    • Sérialisation d'objets
    • Modifications en POO (Programmation orientée objet)
  • Les espaces de noms
    • Introduction aux espaces de noms
    • Définition des espaces de noms
    • Déclaration d'un sous espace de noms
    • Définition de plusieurs espaces de noms dans le même fichier
    • Utilisation des espaces de noms : introduction
    • Espaces de noms et langage dynamique
    • La commande namespace et la constante __NAMESPACE__
    • Utilisation des espaces de noms : importation et alias
    • Espace de noms global
    • Utilisation des espaces de noms : retour à l'espace global
    • Règles de résolutions de noms
    • Foire aux questions : ce que vous devez savoir des espaces de noms
  • Errors
    • Basics
    • Errors in PHP 7
  • Les exceptions
    • Exceptions étendues
  • Generators
    • Résumé sur les générateurs
    • Syntaxe d'un Générateur
    • Comparaison des générateurs avec les objets Iterator
  • Les références
    • Qu'est ce qu'une référence ?
    • Que font les références ?
    • Ce que les références ne sont pas
    • Passage par référence
    • Retourner des références
    • Détruire une référence
    • Repérer une référence
  • Variables prédéfinies
    • Les Superglobales — Les Superglobales sont des variables internes qui sont toujours disponibles, quel que soit le contexte
    • $GLOBALS — Référence toutes les variables disponibles dans un contexte global
    • $_SERVER — Variables de serveur et d'exécution
    • $_GET — Variables HTTP GET
    • $_POST — Variables HTTP POST
    • $_FILES — Variable de téléchargement de fichier via HTTP
    • $_REQUEST — Variables de requête HTTP
    • $_SESSION — Variables de session
    • $_ENV — Variables d'environnement
    • $_COOKIE — Cookies HTTP
    • $php_errormsg — Le dernier message d'erreur
    • $HTTP_RAW_POST_DATA — Données POST brutes
    • $http_response_header — En-têtes de réponse HTTP
    • $argc — Le nombre d'arguments passés au script
    • $argv — Tableau d'arguments passés au script
  • Exceptions prédéfinies
    • Exception
    • ErrorException
  • Interfaces et Classes prédéfinies
    • Traversable — L'interface Traversable
    • Iterator — L'interface Iterator
    • IteratorAggregate — L'interface IteratorAggregate
    • Throwable
    • ArrayAccess — L'interface ArrayAccess
    • Serializable — L'interface Serializable
    • Closure — La classe Closure
    • Generator — La classe Generator
  • Options et paramètres de contexte
    • Options de contexte des sockets — Liste des options de contexte des sockets
    • Options de contexte HTTP — Liste des options de contexte HTTP
    • Options de contexte FTP — Liste des options de contexte FTP
    • Options de contexte SSL — Liste des options de contexte SSL
    • Options de contexte CURL — Liste des options de contexte CURL
    • Les options du contexte Phar — Liste des options du contexte Phar
    • Options de contexte MongoDB — Liste des options de contexte MongoDB
    • Paramètres de contexte — Liste des paramètres de contexte
  • Liste des protocoles et des gestionnaires supportés
    • file:// — Accès au système de fichiers local
    • http:// — Accès aux URLs HTTP(s)
    • ftp:// — Accès aux URLs FTP(s)
    • php:// — Accès aux divers flux I/O
    • zlib:// — Flux de compression
    • data:// — Données (RFC 2397)
    • glob:// — Trouve des noms de fichiers correspondant à un masque donné
    • phar:// — Archive PHP
    • ssh2:// — Shell sécurisé 2
    • rar:// — RAR
    • ogg:// — Flux Audio
    • expect:// — Flux d'interactions de processus


La syntaxe de base

Sommaire

  • Balises PHP
  • Échappement depuis du HTML
  • Séparation des instructions
  • Commentaires


Balises PHP

Lorsque PHP traite un fichier, il cherche les balises d'ouverture et de fermeture (<?php et ?>) qui délimitent le code qu'il doit interpréter. De cette manière, cela permet à PHP d'être intégré dans toutes sortes de documents, car tout ce qui se trouve en dehors des balises ouvrantes / fermantes de PHP est ignoré.

PHP autorise aussi la balise ouvrante dite "courte" <? (que nous vous conseillons vivement de ne pas utiliser car elle n'est disponible que lors de l'activation de la directive de configuration short_open_tag du php.ini, ou si PHP a été configuré avec l'option --enable-short-tags ).

Historiques
Version | Description
7.0.0 | Les balises ASP <% , %> , <%= , et les balises script <script language=php> ont été supprimées de PHP.
5.4.0 | La balise <?= est toujours disponible indépendamment de la configuration de l'option INI short_open_tag.

Si un fichier est purement du code PHP, il est préférable de ne pas placer la balise de fermeture à la fin du fichier. Ceci permet d'éviter d'oublier un espace ou une nouvelle ligne après la balise de fermeture de PHP, ce qui causerait des effets non voulus car PHP commencera à afficher la sortie, ce qui n'est souvent pas ce qui est désiré.

<?php
echo "Bonjour le monde !";

// ... encore du code

echo "Dernière instruction";

// le script se termine ici, sans la balise de fermeture PHP


Échappement depuis du HTML

Tout ce qui se trouve en dehors d'une paire de balises ouvrantes/fermantes est ignoré par l'analyseur PHP, ce qui permet d'avoir des fichiers PHP mixant les contenus. Ceci permet à PHP d'être contenu dans des documents HTML, pour créer par exemple des templates.

<p>Ceci sera ignoré par PHP et affiché au navigateur.</p>
<?php echo 'Alors que ceci sera analysé par PHP.'; ?>
<p>Ceci sera aussi ignoré par PHP et affiché au navigateur.</p>
Ceci fonctionne comme prévu parce que lorsque l'interpréteur PHP rencontre la balise fermante ?>, il commence simplement à afficher ce qu'il rencontre (mise à part s'il est immédiatement suivi d'une nouvelle ligne : voir l'instruction de séparation) jusqu'à ce qu'il rencontre une autre balise ouvrante même si PHP se trouve au milieu d'une instruction conditionnelle, au quel cas, l'interpréteur va déterminer la condition à prendre en compte avant de prendre une décision sur ce qui doit être afficher. Voir le prochain exemple.

Utilisation de structures avec des conditions

Exemple #1 Echappement avancé en utilisant des conditions

<?php if ($expression == true): ?>
  Ceci sera affiché si l'expression est vrai.
<?php else: ?>
  Sinon, ceci sera affiché.
<?php endif; ?>
Dans cet exemple, PHP va ignorer les blocs où la condition n'est pas remplie, même si ils sont en dehors des balises ouvrantes/fermantes de PHP. PHP va les ignorer suivant la condition vu que l'interpréteur PHP va passer les blocs contenant ce qui n'est pas remplie par la condition.

Pour afficher de gros blocs de texte, il est plus efficace de sortir du mode d'analyse de PHP plutôt que d'envoyer le texte via la fonction echo ou print.

Il y a quatre paires différentes de balises ouvrantes / fermantes qui peuvent être utilisées dans PHP. Deux de ces balises, <?php ?> et <script language="php"> </script>, sont toujours disponibles. Les deux autres sont les balises courtes et les balises du style ASP, et peuvent être activées ou désactivées depuis le fichier de configuration php.ini. Cependant, malgré le fait que des personnes trouvent les balises courtes et les balises du style ASP pratiques, elles sont moins portables et donc, généralement, non recommandées.

Note:

Notez également que si vous intégrez PHP dans des documents XML ou XHTML, vous devez utiliser les balises <?php ?> pour rester conforme aux standards.

Exemple #2 Balises d'ouvertures et de fermetures PHP

1.  <?php echo 'Si vous voulez intégrez du code PHP dans des documents XHTML ou XML, utilisez ces balises'; ?>

2.  <script language="php">
        echo 'quelques éditeurs (comme FrontPage)
                 n\'aiment pas traiter des  d\'instructions à l\'intérieur de ces balises';
    </script>

3.  <? echo 'ce code est entre des balises courtes'; ?>
    Le code suivant <?= 'du texte' ?> est un raccourci pour <? echo 'du texte' ?>

4.  <% echo 'Vous pouvez optionnellement utiliser les balises ASP-style'; %>
    Le code suivant <%= $variable; %> est un raccourci pour <% echo $variable; %>

Bien que les balises vues dans les exemples un et deux sont toutes les deux disponibles, l'exemple un est le plus communément utilisé et le plus recommandé des deux.

Les balises courtes (troisième exemple) ne sont disponibles que si elles ont été activées via la directive short_open_tag du fichier de configuration php.ini, ou si PHP a été configuré avec l'option --enable-short-tags .

Les balises du style ASP (quatrième exemple) sont uniquement disponibles lorsqu'elles sont activées via la directive asp_tags du fichier de configuration php.ini.

Note:

L'utilisation des balises courtes doit être bannie lors de développements d'applications ou de bibliothèques qui sont destinées à être redistribuées, ou déployées sur des serveurs qui ne sont pas sous votre contrôle, car les balises courtes peuvent ne pas être supportées sur le serveur cible. Pour réaliser du code portable, qui peut être redistribué, n'utilisez jamais les balises courtes.

Note:

En PHP 5.2 et antérieures, l'analyseur n'autorisait pas un tag ouvrant <?php comme seul élément d'une page. Ceci est permis à compter de la version 5.3 de PHP lorsqu'il y a un ou plusieurs espaces après la balise ouvrante.

Note:

Depuis PHP 5.4, le tag echo court <?= est toujours reconnu et valide, suivant la configuration de l'option short_open_tag.


Séparation des instructions

Comme en C ou en Perl, PHP requiert que les instructions soient terminées par un point-virgule à la fin de chaque instruction. La balise fermante d'un bloc de code PHP implique automatiquement un point-virgule ; vous n'avez donc pas besoin d'utiliser un point-virgule pour terminer la dernière ligne d'un bloc PHP. La balise fermante d'un bloc inclura immédiatement un caractère de nouvelle ligne si un est présent.

Exemple #1 Séparation des instructions

<?php
    echo 'Ceci est un test';
?>

<?php echo 'Ceci est un test' ?>

<?php echo 'Oubli de la balise fermante';

Note:

La balise fermante d'un bloc PHP à la fin d'un fichier est optionnelle, et parfois, il est utile de l'omettre lors de l'utilisation de la fonction include ou de la fonction require, car les espaces non désirés n'apparaîtront pas à la fin des fichiers, et ainsi, vous pourrez toujours ajouter des en-têtes à la réponse plus tard. C'est utile également si vous voulez utiliser l'affichage du buffer et que vous ne voulez pas voir d'espaces blancs ajoutés à la fin des parties générées par les fichiers inclus.


Commentaires

PHP supporte les commentaires de type C, C++ et Shell Unix (aussi appelé style Perl). Par exemple :

Exemple #1 Exemple de commentaire

<?php
    echo 'Ceci est un test'; // Ceci est un commentaire sur une seule ligne, style c++
    /* Ceci est un commentaire sur
       plusieurs lignes */
    echo 'Ceci est un autre test';
    echo 'Et un test final'; # Ceci est un commentaire style shell sur une seule ligne
?>

Les commentaires sur une seule ligne ne commentent que jusqu'à la fin de la ligne du bloc PHP courant. Ceci signifie que le code HTML après // ... ?> ou après # ... ?> SERA affiché : ?> terminera le mode PHP et retournera en mode HTML, et // ou # n'influencera pas cela. Si la directive de configuration asp_tags est activée, ce comportement sera identique avec // %> et # %>. Cependant, la balise </script> ne terminera pas le mode PHP dans un commentaire d'une seule ligne.

Exemple #2 Les commentaires vont jusqu'à la fin de la ligne

<h1>Ceci est un exemple <?php # echo 'simple';?></h1>
<p>La ligne ci-dessus affichera 'Ceci est un exemple'.</p>

Les commentaires style 'C' commentent jusqu'à ce que le premier */ soit rencontré. Vous devriez faire attention aux commentaires style 'C' nichés dans de gros blocs lorsque vous les commentez.

Exemple #3 Les commentaires de type C

<?php
 /*
    echo 'Ceci est un test'; /* Ce commentaire posera un problème */
 */
?>


Les types

Sommaire

  • Introduction
  • Booléen
  • Les entiers
  • Nombres décimaux
  • Les chaînes de caractères
  • Les tableaux
  • Les objets
  • Les ressources
  • NULL
  • Fonctions de rappel / Types Callable
  • Variables et pseudo-types utilisés dans cette documentation
  • Manipulation de types


Introduction

PHP supporte 8 types basiques.

4 types scalaires :

  • boolean
  • integer
  • float (nombre à virgule flottante, i.e. double)
  • string

2 types composés :

  • array
  • object

Et finalement, 2 types spéciaux :

  • resource
  • NULL

Ce manuel introduit également quelques pseudo-types pour des raisons de lisibilité :

  • mixed
  • number
  • callback (appelé aussi callable)
  • array|object
  • void

Et la pseudo-variable $....

Ce manuel peut toutefois contenir des références au type "double". Considérez ce type comme étant un type "float". Les deux noms n'existent que pour des raisons historiques.

Le type d'une variable n'est pas toujours défini par le programmeur ; il peut être défini par PHP au moment de l'exécution, suivant le contexte dans lequel la variable est utilisée.

Note: Pour vérifier le type et la valeur d'une expression, utilisez la fonction var_dump().

Pour afficher une représentation humainement lisible d'un type aux fins de déboguage, utilisez la fonction gettype(). Pour vérifier un certain type, n'utilisez pas la fonction gettype(), mais plutôt les fonctions is_type. Voici quelques exemples :

<?php
$a_bool = TRUE;   // un booléen
$a_str  = "foo";  // une chaîne de caractères
$a_str2 = 'foo';  // une chaîne de caractères
$an_int = 12;     // un entier

echo gettype($a_bool); // affiche :  boolean
echo gettype($a_str);  // affiche :  string

// Si c'est un entier, incrément de 4
if (is_int($an_int)) {
    $an_int += 4;
}

// Si $a_bool est une chaîne de caractères, on l'affiche
if (is_string($a_bool)) {
    echo "String: $a_bool";
}
?>

Pour forcer la conversion d'une variable en un certain type, vous pouvez transtyper (cast) la variable ou utiliser la fonction settype().

Notez qu'une variable peut être évaluée avec différentes valeurs dans certaines situations, suivant son type à un moment donné. Pour plus d'informations, lisez la section sur le transtypage. La table de comparaison des types peut également être très utile, montrant différents exemples.


Booléen

C'est le type le plus simple. Un booléen représente une valeur de vérité. Il peut valoir TRUE ou FALSE.

Syntaxe

Pour spécifier un booléen littéral, utilisez la constante TRUE ou FALSE. Les deux sont insensibles à la casse.

<?php
$foo = True; // assigne la valeur TRUE à $foo
?>

Typiquement, le résultat d'un opérateur qui retourne un booléen, passé ensuite à une structure de contrôle.

<?php
// == est un opérateur qui teste
// l'égalité et retourne un booléen
if ($action == "show_version") {
    echo "La version est 1.23";
}

// ceci n'est pas nécessaire...
if ($show_separators == TRUE) {
    echo "<hr>\n";
}

// ...à la place, vous pouvez utiliser, avec la même signification :
if ($show_separators) {
    echo "<hr>\n";
}
?>

Conversion en booléen

Pour convertir explicitement une valeur en booléen, utilisez (bool) ou (boolean). Cependant, dans la plupart des cas, le transtypage n'est pas nécessaire, sachant qu'une valeur sera automatiquement convertie si un opérateur, une fonction ou une structure de contrôle demandent un argument de type booléen.

Voir aussi le transtypage.

Lors d'une conversion en booléen, les valeurs suivantes sont considérées comme FALSE :

  • le booléen FALSE, lui-même
  • l'entier 0 (zéro)
  • le nombre à virgule flottante 0.0 (zéro)
  • la chaîne vide, et la chaîne "0"
  • un tableau avec aucun élément
  • un objet avec aucun membre, ni variable (uniquement en PHP 4)
  • le type spécial NULL (incluant les variables non définies)
  • les objets SimpleXML créés depuis des balises vides

Toutes les autres valeurs sont considérées comme TRUE (y compris toutes les ressources).

Avertissement

-1 est considéré comme TRUE, comme tous les nombres différents de zéro (négatifs ou positifs) !

<?php
var_dump((bool) "");        // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)
?>


Les entiers

Un entier est un nombre appartenant à la classe Z = {..., -2, -1, 0, 1, 2, ...}.

Voir aussi :

  • Les entiers de longueur arbitraire / GMP
  • Les nombres à virgule flottante
  • Les précisions arbitraires / BCMath

Syntaxe

Les entiers peuvent être spécifiés en notation décimale (base 10), hexadécimale (base 16), octale (base 8), ou binaire (base 2) optionnellement précédée d'un signe (- ou +).

Les entiers littéraux binaires sont disponibles depuis PHP 5.4.0.

Pour utiliser la notation octale, précédez le nombre d'un 0 (zéro). Pour utiliser la notation hexadécimale, précédez le nombre d'un 0x. Pour utiliser la notation binaire, précédez le nombre d'un 0b.

Exemple #1 Les entiers littéraux

<?php
$a = 1234; // un nombre décimal
$a = -123; // un nombre négatif
$a = 0123; // un nombre octal (équivalent à 83 en décimal)
$a = 0x1A; // un nombre héxadecimal (équivalent à 26 en décimal)
$a = 0b11111111; // un nombre binaire (équivalent à 255 en decimal)
?>

Formellement, la structure d'un entier littéral est :

decimal     : [1-9][0-9]*
            | 0

hexadecimal : 0[xX][0-9a-fA-F]+

octal       : 0[0-7]+

integer     : [+-]?decimal
            | [+-]?hexadecimal
            | [+-]?octal
            | [+-]?binary

La taille d'un entier est dépendant de la plate-forme, cependant, une valeur maximale d'environ 2 milliards est habituelle (cela correspond à 32 bits signés). Les plateformes 64-bit ont habituellement une valeur maximale d'environ 9E18, sauf pour Windows, qui est toujours en 32 bit. PHP ne supporte pas les entiers non-signés. La taille d'un entier peut être déterminée en utilisant la constante PHP_INT_SIZE, et la valeur maximale, en utilisant la constante PHP_INT_MAX depuis PHP 4.4.0 et PHP 5.0.5.

Avertissement

Avant PHP 7, si un nombre invalide était fourni dans un entier octal (i.e. 8 ou 9), le reste du nombre était ignoré. Depuis PHP 7, une erreur d'analyse est émise.

Débordement d'entier

Si PHP rencontre un nombre supérieur au maximal d'un entier, il sera interprété comme un nombre décimal. De la même façon, une opération qui résulte en un nombre supérieur au nombre maximal d'un entier, retournera un nombre décimal.

Exemple #2 Dépassement d'entier sur un système 32-bit

<?php
$large_number = 2147483647;
var_dump($large_number);                     // int(2147483647)

$large_number = 2147483648;
var_dump($large_number);                     // float(2147483648)

$million = 1000000;
$large_number =  50000 * $million;
var_dump($large_number);                     // float(50000000000)
?>

Exemple #3 Dépassement d'entier sur un système 64-bit

<?php
$large_number = 9223372036854775807;
var_dump($large_number);                     // int(9223372036854775807)

$large_number = 9223372036854775808;
var_dump($large_number);                     // float(9.2233720368548E+18)

$million = 1000000;
$large_number =  50000000000000 * $million;
var_dump($large_number);                     // float(5.0E+19)
?>

Il n'y a pas d'opérateur de division entière en PHP. 1/2 contient en fait, float(0.5). La valeur peut être convertie en un entier en l'arrondissant, en utilisant la fonction round().

<?php
var_dump(25/7);         // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7));  // float(4)
?>

Conversion en entier

Pour convertir explicitement une valeur en un entier, utilisez soit le mot-clé (int), soit (integer). Cependant, dans la plupart des cas, ce mot-clé n'est pas nécessaire vu qu'une valeur sera automatiquement convertie si un opérateur, une fonction ou une structure de contrôle demande un entier en guise d'argument. Une valeur peut également être convertie en un entier en utilisant la fonction intval().

Si une resource est convertie vers un integer, alors le résultat sera l'identifiant unique de la resource assigné par PHP à l'exécution.

Voir aussi le transtypage.

Depuis un booléen

FALSE correspond à 0 (zéro), et TRUE correspond à 1 (un).

Depuis un nombre à virgule flottante

Lorsque l'on convertit un nombre décimal en un entier, le nombre sera arrondi vers zéro.

Si le nombre à virgule flottante est au delà des limites des entiers (habituellement, +/- 2.15e+9 = 2^31 sur les plate-formes 32-bit et +/- 9.22e+18 = 2^63 sur les plate-formes 64-bit autre que Windows), le résultat sera indéfini, sachant que le nombre à virgule flottante n'a pas une précision suffisante pour donner un résultat entier exact. Aucune alerte n'est émise lorsque ce comportement survient !

Avertissement

Ne convertissez jamais une fraction inconnue en un entier, ceci peut engendrer un résultat inattendu.

<?php
echo (int) ( (0.1+0.7) * 10 ); // Affiche 7 !
?>

Voir aussi la section sur les alertes concernant la précision des nombres à virgule flottante.

Depuis des chaînes de caractères

Voir la section sur la conversion des chaînes en nombres

Depuis d'autres types

Attention

Le comportement de la conversion en un entier est indéfini depuis les autres types. Ne rapporter aucun comportement observé, sachant qu'ils peuvent changer sans avertissement.


Nombres décimaux

Les nombres décimaux, (aussi connus comme nombres à virgule flottante, "floats", "doubles", ou "real numbers") peuvent être spécifiés en utilisant les syntaxes suivantes :

<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>

Formellement :

LNUM          [0-9]+
DNUM          ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM})

La taille d'un nombre décimal est dépendant de la plate-forme, cependant, un nombre maximal de ~1.8e308 avec une précision sur 14 chiffres est une valeur commune (format 64 bits IEEE).

Avertissement

Précision des nombres décimaux

Les nombres décimaux ont une précision limitée. Même s'ils dépendent du système, PHP utilise le format de précision des décimaux IEEE 754, qui donnera une erreur maximale relative de l'ordre de 1.11e-16 (dûe aux arrondis). Les opérations arithmétiques non-élémentaires peuvent donner des erreurs plus importantes et bien sûr les erreurs doivent être prises en compte lorsque plusieurs opérations sont liées.

Aussi, les nombres rationnels exactement représentables sous forme de nombre à virgule flottante en base 10, comme 0.1 ou 0.7, n'ont pas de représentation exacte comme nombres à virgule flottante en base 2, utilisée en interne, et ce quelle que soit la taille de la mantisse. De ce fait, ils ne peuvent être convertis sans une petite perte de précision. Ceci peut mener à des résultats confus: par exemple, floor((0.1+0.7)*10) retournera normalement 7 au lieu de 8 attendu, car la représentation interne sera quelque chose comme 7.9999999999999991118....

Ainsi, ne faites jamais confiance aux derniers chiffres d'un nombre décimal, mais aussi, ne comparez pas l'égalité de 2 nombres décimaux directement. Si vous avez besoin d'une haute précision, les fonctions mathématiques de précision et les fonctions gmp sont disponibles.

Pour une explication "simple", reportez-vous au » guide relatif aux nombres à virgule flottante.

Conversion en un nombre décimal

Pour plus d'informations sur la conversion de chaînes en nombres décimaux, voir la section sur la conversion de chaînes en nombres décimaux. Pour les valeurs d'autres types, la conversion est effectuée en convertissant tout d'abord la valeur en un entier, puis, en nombre décimal. Voir la section sur la conversion en entier pour plus d'informations. Une notice est émise si un objet est converti en nombre décimal.

Comparaison de nombre décimaux

Comme dit dans la note ci-dessus, le test d'égalité des valeurs de nombres décimaux est problématique, en raison de la façon dont ils sont représentés en interne. Cependant, il existe des façons de réaliser cette comparaison.

Pour tester l'égalité de valeurs de nombres décimaux, une borne supérieure de l'erreur relative à l'arrondi est utilisée. Cette valeur est connue comme étant l'epsilon de la machine, ou le unit roundoff, et est la différence la plus petite acceptable dans les calculs.

$a et $b sont égaux sur 5 nombres après la virgule.

<?php
$a = 1.23456789;
$b = 1.23456780;
$epsilon = 0.00001;

if(abs($a-$b) < $epsilon) {
    echo "true";
}
?>

NaN

Quelques opérations numériques peuvent donner comme résultat une valeur représentée par la constante NAN. Ce résultat représente une valeur indéfinie ou non représentable lors de calculs avec des nombres à virgule flottante. Toute comparaison, même stricte de cette valeur avec une autre valeur, y compris cette constante elle-même, donnera une valeur de FALSE.

En raison du fait que NAN représente tout nombre de valeur différente, NAN ne doit pas être comparé à d'autres valeurs, y compris cette constante elle-même, et à la place, elle doit être vérifiée en utilisant la fonction is_nan().


Les chaînes de caractères

Une chaîne de caractères est une série de caractères, où un caractère est la même chose qu'un octet. De ce fait, PHP ne supporte que les jeux de caractères comportant 256 caractères différents, et, donc, n'a pas de support natif pour l'Unicode. Reportez-vous aux détails sur le type chaîne de caractères pour plus d'informations.

Note: Une chaîne de caractères peut être d'une taille allant jusqu'à plus de 2Go (2147483647 octets maximum).

Syntaxe

Une chaîne de caractères littérale peut être spécifiée de 4 façons différentes :

  • Entourée de guillemets simples
  • Entourée de guillemets doubles
  • Syntaxe Heredoc
  • Syntaxe Nowdoc (depuis PHP 5.3.0)

Entourée de guillemets simples

La façon la plus simple de spécifier une chaîne de caractères est de l'entourer de guillemets simples (le caractère ').

Pour spécifier un guillemet simple littéral, vous devrez l'échapper à l'aide d'un antislash (\). Pour spécifier un antislash littéral, doublez-le (\\). Notez que si vous tentez d'échapper n'importe quel autre caractère, l'antislash s'affichera, ce qui signifie que les autres séquences auquelles vous êtes éventuellement habitués (comme \r ou \n) s'afficheront telles quelles, sans avoir une quelconque signification particulière.

Note: Contrairement aux syntaxes avec double guillemets et heredoc, les variables et les séquences d'échappement pour les caractères spéciaux ne seront pas interprétées lorsqu'elles figurent dans une chaîne de caractères entourée de guillemets simples.

<?php
echo 'ceci est une chaîne simple';

echo 'Vous pouvez également ajouter des nouvelles lignes
dans vos chaînes
de cette façon';

// Affiche : Arnold a dit : "I'll be back"
echo 'Arnold a dit : "I\'ll be back"';

// Affiche : Voulez-vous supprimer C:\*.*?
echo 'Voulez-vous supprimer C:\\*.*?';

// Affiche : Voulez-vous supprimer C:\*.*?
echo 'Voulez-vous supprimer C:\*.*?';

// Affiche : Ceci n'affichera pas \n de nouvelle ligne
echo 'Ceci n\'affichera pas \n de nouvelle ligne';

// Affiche : Les variables ne seront pas $traitees $ici
echo 'Les variables ne seront pas $traitees $ici';
?>

Entourée de guillemets doubles

Si la chaîne de caractères est entourée de guillemets doubles ("), PHP interprétera plus de séquences d'échappement comme des caractères spéciaux :

Caractères échappés
Séquence | Signification
\n | Fin de ligne (LF ou 0x0A (10) en ASCII)
\r | Retour à la ligne (CR ou 0x0D (13) en ASCII)
\t | Tabulation horizontale (HT or 0x09 (9) en ASCII)
\v | Tabulation verticale (VT ou 0x0B (11) en ASCII) (depuis PHP 5.2.5)
\e | échappement (ESC or 0x1B (27) en ASCII) (depuis PHP 5.4.4)
\f | Saut de page (FF ou 0x0C (12) en ASCII) (depuis PHP 5.2.5)
\\ | Antislash
\$ | Signe dollar
\" | Guillemet double
\[0-7]{1,3} | La séquence de caractères correspondant à cette expression rationnelle est un caractère, en notation octale
\x[0-9A-Fa-f]{1,2} | La séquence de caractères correspondant à cette expression rationnelle est un caractère, en notation hexadécimale

De la même façon que pour les chaînes entourées de guillemets simples, l'échappement de tout autre caractère affichera l'antislash. Avant PHP 5.1.1, l'antislash de \{$var} n'était pas affiché.

La fonctionnalité la plus intéressante des chaînes entourées de guillemets doubles est que les noms de variables seront interprétés. Voir la documentation sur l'analyse des chaînes de caractères pour plus de détails.

Syntaxe Heredoc

Une 3ème façon de délimiter une chaîne de caractères est la syntaxe Heredoc : <<<. Après cet opérateur, un identifiant est fourni, suivi d'une nouvelle ligne. La chaîne en elle-même vient ensuite, suivie du même identifiant pour fermer la notation.

L'identifiant de fin doit commencer à la première colonne de la ligne. De plus, l'identifiant doit suivre les mêmes règles que n'importe quel autre libellé PHP : il ne doit contenir que des caractères alphanumériques et des soulignés, et doit commencer par un caractère non numérique ou un souligné ("underscore").

Avertissement

Il est très important de noter que la ligne contenant l'identifiant de fin ne doit contenir aucun autre caractère, mis à part un point-virgule (;). Cela signifie en particulier que l'identifiant ne doit pas être indenté, et qu'il ne doit y avoir aucun espace ou tabulation avant ou après le point-virgule. Il est également important de garder à l'esprit que le premier caractère avant l'identifiant de fermeture doit être une nouvelle ligne telle que définie par le système d'exploitation ; sur les systèmes Unix, incluant Mac OS X, il s'agit du caractère \n. Le délimiteur de fermeture doit aussi être suivi d'une nouvelle ligne.

Si cette règle n'est pas respectée et que l'identifiant de fermeture n'est pas "propre", il ne sera pas considéré comme identifiant de fermeture, et PHP continuera à en chercher un. Si un identifiant de fermeture "propre" n'est pas trouvé avant la fin du fichier courant, une erreur d'analyse sera émise à la dernière ligne.

Heredoc ne peut être utilisé pour initialiser les proriétés d'une classe. Depuis PHP 5.3, cette limitation ne s'applique qu'aux Heredoc qui contiennent des variables.

Exemple #1 Exemple invalide

<?php
class foo {
    public $bar = <<<EOT
bar
    EOT;
}
?>

Heredoc se comporte exactement comme une chaîne entourée de guillemets doubles, sans les guillemets doubles. Cela signifie que les guillemets dans une syntaxe Heredoc n'ont pas besoin d'être échappés, mais que les codes d'échappement listés plus haut peuvent toujours être utilisés. Les variables seront interprétées, mais les mêmes attentions doivent être prises lorsque vous utilisez des variables complexes dans une syntaxe Heredoc qu'avec les autres types de chaînes.

Exemple #2 Exemple de chaînes Heredoc

<?php
$str = <<<EOD
Exemple de chaîne
sur plusieurs lignes
en utilisant la syntaxe Heredoc.
EOD;

/* Exemple plus complexe, avec des variables. */
class foo
{
    var $foo;
    var $bar;

    function foo()
    {
        $this->foo = 'Foo';
        $this->bar = array('Bar1', 'Bar2', 'Bar3');
    }
}

$foo = new foo();
$name = 'MyName';

echo <<<EOT
Mon nom est "$name". J'affiche quelques $foo->foo.
Maintenant, j'affiche quelques {$foo->bar[1]}.
Et ceci devrait afficher un 'A' majuscule : \x41
EOT;
?>

L'exemple ci-dessus va afficher :

Mon nom est "MyName". J'affiche quelques Foo.
Maintenant, j'affiche quelques Bar2.
Et ceci devrait afficher un 'A' majuscule : A

Il est aussi possible d'utiliser la syntaxe Heredoc pour passer des données en paramètre à une fonction :

Exemple #3 Exemple d'utilisation de Heredoc pour passer des arguments

<?php
var_dump(array(<<<EOD
foobar!
EOD
));

Depuis PHP 5.3.0, il est possible d'initialiser les variables statiques et les propriétés ou constantes de classes avec la syntaxe Heredoc :

Exemple #4 Utilisation de Heredoc pour initialiser des valeurs statiques

<?php
// Variables statiques
function foo()
{
    static $bar = <<<LABEL
Nothing in here...
LABEL;
}

// Constantes et propriétés de classe
class foo
{
    const BAR = <<<FOOBAR
Constant example
FOOBAR;

    public $baz = <<<FOOBAR
Property example
FOOBAR;
}
?>

Depuis PHP 5.3.0, l'identifiant de début de syntaxe Heredoc peut éventuellement être écrit entre guillemets doubles :

Exemple #5 Utilisation des guillemets doubles avec Heredoc

<?php
echo <<<"FOOBAR"
Hello World!
FOOBAR;
?>

Nowdoc

Nowdoc est aux chaînes entourées de guillemets simples ce qu'Heredoc est aux chaînes entourées de guillemets doubles. Un Nowdoc est spécifié de manière similaire à un Heredoc, mais aucune analyse n'est effectuée dans une construction Nowdoc. Cette syntaxe est idéale pour embarquer du code PHP ou d'autres larges blocs de texte, sans avoir besoin d'échapper quoi que ce soit. Elle partage quelques fonctionnalités avec la syntaxe SGML <![CDATA[ ]]>, en ce qu'elle déclare un bloc de texte qui ne doit pas être analysé.

Nowdoc est identifié avec la même séquence <<< utilisée par Heredoc, mais l'identifiant qui suit est entouré de guillemets simples, comme <<<'EOT'. Toutes les règles concernant les identifiants Heredoc s'appliquent également aux identifiants Nowdoc, et, tout particulièrement, celles concernant la forme de l'identifiant de fin.

Exemple #6 Exemples de chaînes Nowdoc

<?php
$str = <<<'EOD'
Exemple de chaîne
sur plusieurs lignes
en utilisant la syntaxe Nowdoc.
EOD;

/* Exemple complexe, avec des variables. */
class foo
{
    public $foo;
    public $bar;

    function foo()
    {
        $this->foo = 'Foo';
        $this->bar = array('Bar1', 'Bar2', 'Bar3');
    }
}

$foo = new foo();
$name = 'MyName';

echo <<<'EOT'
Mom nom est "$name". J'affiche quelques $foo->foo.
Maintenant, j'affiche quelques {$foo->bar[1]}.
Ceci ne devrait pas afficher un 'A' : \x41
EOT;
?>

L'exemple ci-dessus va afficher :

Mom nom est "$name". J'affiche quelques $foo->foo.
Maintenant, j'affiche quelques {$foo->bar[1]}.
Ceci ne devrait pas afficher un 'A' : \x41

Note:

Contrairement à Heredoc, Nowdoc peut être utilisé dans n'importe quel contexte de données statiques. L'exemple typique est l'initialisation de proriétés ou de constantes de classe :

Exemple #7 Exemple avec des données statiques

<?php
class foo {
    public $bar = <<<'EOT'
bar
EOT;
}
?>

Note:

Le support de la syntaxe Nowdoc a été ajouté en PHP 5.3.0.

Analyse des variables

Lorsqu'une chaîne de caractères est spécifiée entre guillemets doubles ou en Heredoc, les variables qu'elle contient sont interprétées.

Il existe 2 types de syntaxes : une simple et une complexe. La syntaxe simple est la plus commune et la plus pratique. Elle fournit une façon d'embarquer une variable, une valeur de tableau, ou une propriété d'objet dans une chaîne avec un minimum d'effort.

La syntaxe complexe se reconnaît à l'utilisation d'accolades autour de l'expression.

Syntaxe simple

Si un signe dollar ($) est rencontré, l'analyseur prendra autant de caractères que possible pour former un nom de variable valide. Vous pouvez entourer le nom de la variable avec des accolades, pour spécifier explicitement la fin de celui-ci.

<?php
$juice = "pomme";

echo "Il a bu du jus de $juice.".PHP_EOL;

// Invalide. "s" est un caractère valide dans un nom de variable, mais la variable est $juice.
echo "Il a bu du jus constitué de $juices.";
?>

L'exemple ci-dessus va afficher :

Il a bu du jus de pomme.
Il a bu du jus constitué de .

De la même façon, un index d'un tableau ou une propriété d'un objet peut être analysé. Avec les indices de tableaux, le crochet fermant (]) marque la fin de l'index. Les mêmes règles sont appliquées aux propriétés d'objets que pour les simples variables.

Exemple #8 Exemple de la syntaxe simple

<?php
$juices = array("pomme", "poire", "koolaid1" => "raisin");

echo "Il a bu du jus de $juices[0].".PHP_EOL;
echo "Il a bu du jus de $juices[1].".PHP_EOL;
echo "Il a bu du jus de $juices[koolaid1].".PHP_EOL;

class people {
    public $john = "John Smith";
    public $jane = "Jane Smith";
    public $robert = "Robert Paulsen";

    public $smith = "Smith";
}

$people = new people();

echo "$people->john a bu du jus de $juices[0].".PHP_EOL;
echo "$people->john a dit bonjour à $people->jane.".PHP_EOL;
echo "$people->john's wife greeted $people->robert.".PHP_EOL;
echo "$people->robert a dit bonjour aux $people->smiths."; // Ne fonctionne pas
?>

L'exemple ci-dessus va afficher :

Il a bu du jus de pomme.
Il a bu du jus de poire.
Il a bu du jus de raisin.
John Smith a bu du jus de pomme.
John Smith a dit bonjour à Jane Smith.
John Smith's wife greeted Robert Paulsen.
Robert Paulsen a dit bonjour aux .

Pour tout ce qui est plus complexe, vous devriez utiliser la syntaxe complexe.

Syntaxe complexe

Cette syntaxe est appelée complexe, non pas parce qu'elle est complexe, mais parce qu'elle permet l'utilisation d'expressions complexes.

Toute variable scalaire, tableau, ou attribut d'objet représentable en tant que chaîne de caractères peut être utilisé avec cette syntaxe. Écrivez simplement l'expression de la même façon qu'elle apparaitrait à l'extérieur de la chaîne et, ensuite, entourez-là des caractères { et }. Sachant que le caractère { ne peut pas être échappé, cette syntaxe ne sera reconnue que lorsque le caractère $ suit immédiatement le caractère {. Utilisez {\$ pour afficher littéralement {$. Voici quelques exemples pour éclaircir ceci :

<?php
// Montre toutes les erreurs
error_reporting(E_ALL);

$great = 'fantastic';

// Ne fonctionne pas, affiche : This is { fantastic}
echo "This is { $great}";

// Fonctionne, affiche : This is fantastic
echo "This is {$great}";
echo "This is ${great}";

// Fonctionne
echo "This square is {$square->width}00 centimeters broad.";

// Fonctionne, les clés entourées de guillemets simples ne fonctionnent qu'avec la syntaxe à accolades
echo "This works: {$arr['key']}";

// Fonctionne
echo "This works: {$arr[4][3]}";

// Ceci est faux pour la même raison pour laquelle $foo[bar] est faux à l'extérieur d'une chaîne.
// En d'autres termes, ceci fonctionnera, mais uniquement parce que PHP cherchera d'abord
// une constante nommée foo ; une erreur de niveau E_NOTICE (constante indéfinie) sera émise.
echo "This is wrong: {$arr[foo][3]}";

// Fonctionne. Lors de l'utilisation de tableaux multidimensionnels, utilisez toujours
// les accolades autour du tableau lorsqu'il se trouve dans la chaîne
echo "This works: {$arr['foo'][3]}";

// Fonctionne.
echo "This works: " . $arr['foo'][3];

echo "This works too: {$obj->values[3]->name}";

echo "This is the value of the var named $name: {${$name}}";

echo "This is the value of the var named by the return value of getName(): {${getName()}}";

echo "This is the value of the var named by the return value of \$object->getName(): {${$object->getName()}}";

// Ne fonctionne pas, affiche : This is the return value of getName(): {getName()}
echo "This is the return value of getName(): {getName()}";
?>

Il est également possible d'accéder aux propriétés de classes en utilisant des variables contenues dans des chaînes, en utilisant cette syntaxe.

<?php
class foo {
    var $bar = 'I am bar.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo "{$foo->$bar}\n";
echo "{$foo->$baz[1]}\n";
?>

L'exemple ci-dessus va afficher :

I am bar.
I am bar.

Note:

Les appels aux fonctions, méthodes, variables statiques de classes, ainsi qu'aux constantes de classes à l'intérieur de {$} fonctionnent depuis PHP 5. Cependant, la valeur accédée sera interprétée comme le nom d'une variable dans le contexte où la chaîne est définie. L'utilisation de simples accolades ({}) ne fonctionnera pas pour accéder à la valeur retournée par des fonctions, méthodes, ou les valeurs de constantes et de variables statiques de classes.

<?php
// Affichage de toutes les erreurs.
error_reporting(E_ALL);

class beers {
    const softdrink = 'rootbeer';
    public static $ale = 'ipa';
}

$rootbeer = 'A & W';
$ipa = 'Alexander Keith\'s';

// Ceci fonctionne ; Affiche : I'd like an A & W
echo "I'd like an {${beers::softdrink}}\n";

// Ceci fonctionne également ; Affiche : I'd like an Alexander Keith's
echo "I'd like an {${beers::$ale}}\n";
?>

Accès et modification d'une chaîne, par caractère

On peut accéder à, et modifier un, caractère d'une chaîne de caractères en spécifiant sa position (à partir de 0) en utilisant la même syntaxe que pour les tableaux, comme pour la variable $str[42]. Il convient dans ce cas de voir une chaîne de caractères comme un tableau. Les fonctions substr() et substr_replace() peuvent être utilisées lorsque vous voulez extraire ou remplacer plus d'un caractère.

Note: On peut également accéder à une chaîne en utilisant des accolades, comme ceci : $str{42}.

Avertissement

Écrire à une position hors de l'intervalle existant fait que la chaîne est complétée par des espaces jusqu'à cette position. Les positions sont toujours converties en valeur entière. Les types de positions invalides produisent une alerte E_NOTICE. Les positions négatives produisent une alerte E_NOTICE en écriture, mais retournent une chaîne vide en lecture. Seul le premier caractère d'une chaîne assignée est utilisé. Assigner une chaîne vide assigne le caractère NULL.

Avertissement

En interne, les chaînes PHP sont des tableaux d'octets. Aussi, l'accès ou la modification d'une chaîne en utilisant les crochets d'un tableau n'est pas multi-octets, et ne doit être utilisé qu'avec les chaînes dont l'encodage est sur un seul octet, comme ISO-8859-1.

Exemple #9 Quelques exemples de chaînes

<?php
// Récupération du premier caractère d'une chaîne
$str = 'This is a test.';
$first = $str[0];

// Récupération du troisième caractère d'une chaîne
$third = $str[2];

// Récupération du dernier caractère d'une chaîne
$str = 'This is still a test.';
$last = $str[strlen($str)-1];

// Modification du dernier caractère d'une chaîne
$str = 'Look at the sea';
$str[strlen($str)-1] = 'e';

?>

Depuis PHP 5.4, la position dans une chaîne doit être un entier, ou des chaînes pouvant être converties en entier, sinon, une alerte sera émise. Auparavant, une position comme "foo" était transformée silencieusement en 0.

Exemple #10 Différences entre PHP 5.3 et PHP 5.4

<?php
$str = 'abc';

var_dump($str['1']);
var_dump(isset($str['1']));

var_dump($str['1.0']);
var_dump(isset($str['1.0']));

var_dump($str['x']);
var_dump(isset($str['x']));

var_dump($str['1x']);
var_dump(isset($str['1x']));
?>

Résultat de l'exemple ci-dessus en PHP 5.3 :

string(1) "b"
bool(true)
string(1) "b"
bool(true)
string(1) "a"
bool(true)
string(1) "b"
bool(true)

Résultat de l'exemple ci-dessus en PHP 5.4 :

string(1) "b"
bool(true)

Warning: Illegal string offset '1.0' in /tmp/t.php on line 7
string(1) "b"
bool(false)

Warning: Illegal string offset 'x' in /tmp/t.php on line 9
string(1) "a"
bool(false)
string(1) "b"
bool(false)

Note:

Accèder à des variables d'autres types (pas des tableaux ni des objets implémentant les interfaces appropriées) en utilisant [] ou {} retournera silencieusement NULL.

Note:

PHP 5.5 ajoute le support pour l'accès aux caractères dans une chaîne de caractères littérales en utilisant la syntaxe [] ou {}.

Fonctions et opérateurs utiles

Les chaîne de caractères peuvent être concaténées en utilisant l'opérateur '.' (point). Notez que l'opérateur '+' (addition) ne fonctionnera pas. Reportez-vous aux opérateurs de chaînes pour plus d'informations.

Il existe de nombreuses fonctions utiles pour la manipulation de chaîne de caractères.

Reportez-vous à la section sur les fonctions de chaînes de caractères pour plus de précisions, et à la section sur les expressions rationnelles ou sur les expressions rationnelles compatibles Perl pour des fonctionnalités de recherches et remplacements avancés.

Il existe également des fonctions pour les URL, et des fonctions pour chiffrer/déchiffrer des chaînes de caractères (mcrypt et mhash).

Et pour finir, vous pouvez également consulter fonctions "type de caractères".

Conversion en chaîne de caractères

Une valeur peut être convertie en une chaîne de caractères en utilisant le mot-clé (string) ou la fonction strval(). La conversion en chaîne de caractères est automatiquement effectuée dans le contexte d'une expression où une chaîne de caractères est nécessaire. Ceci survient notamment lors de l'utilisation des fonctions echo ou print, ou lorsqu'une variable est comparée à une chaîne. Les sections sur les types et sur le transtypage expliquent ce qui suit de manière plus détaillée. Reportez-vous également à la fonction settype().

Une valeur booléenne TRUE est convertie en la chaîne "1". Une valeur booléenne FALSE est convertie en "" (une chaîne vide). Ceci permet les conversions vers et depuis une chaîne et un booléen.

Un entier ou un nombre décimal est converti en une chaîne de caractères représentant le nombre de façon textuelle (y compris l'exposant pour les nombres à virgule flottante). Les nombres à virgule flottante peuvent être convertis en utilisant la notation exponentielle (4.1E+6).

Note:

Le point décimal est défini dans la locale du script (catégorie LC_NUMERIC). Reportez-vous à la fonction setlocale().

Les tableaux sont toujours convertis en la chaîne "Array" ; à cause de cela, echo et print ne peuvent pas afficher par eux-même le contenu d'un tableau. Pour afficher un seul élément, utilisez une syntaxe comme echo $arr['foo']. Voir ci-dessous pour des astuces permettant d'afficher le contenu complet.

Les objets en PHP <5.2 sont convertis en la chaîne "Object id#1", où 1 est un chiffre pouvant varier. Pour afficher les valeurs des propriétés de l'objet (à des fins de déboguage, par exemple), lisez le paragraphe ci-dessous. Pour récupérer le nom de la classe de l'objet, utilisez la fonction get_class(). Notez qu'à partir de PHP 5, la méthode __toString est utilisée lorsqu'elle peut s'appliquer.

Les ressources sont toujours converties en chaînes de la forme "Resource id #1", où 1 est l'identifiant assigné à la ressource par PHP lors de l'exécution. Alors qu'il ne faut pas se fier à cette structure, car susceptible d'évoluer, elle sera néanmoins unique pour une ressource donnée durant toute la durée d'exécution du script courant (ie une requête web ou un processus CLI). Pour récupérer le type d'une ressource, utilisez la fonction get_resource_type().

NULL est toujours converti en une chaîne vide.

Au vu de tout cela, la conversion d'un tableau, d'un objet, ou d'une ressource, en une chaîne de caractères ne fournit aucune information utile sur une valeur, mis à part son type. Reportez-vous aux fonctions print_r() et var_dump() pour inspecter plus efficacement les contenus de ces types.

La plupart des valeurs en PHP peuvent également être converties en chaîne de caractères afin de les stocker. Cette méthode est appelée "linéarisation", et est effectuée par la fonction serialize(). Si le moteur PHP a été compilé avec le support WDDX, les valeurs PHP peuvent également être linéarisées en XML.

Conversion de chaînes en nombres

Lorsqu'une chaîne de caractères est évaluée dans un contexte numérique, la valeur et le type résultants sont déterminés comme suit.

Si la chaîne de caractères ne contient aucun '.', 'e', ou 'E', et que la valeur numérique est dans l'intervalle de représentation des entiers (notamment, qu'elle est plus petite que PHP_INT_MAX), alors la chaîne de caractères sera transformée en entier. Dans les autres cas, elle sera interprétée comme un nombre décimal.

La valeur est fournie par la portion initiale de la chaîne de caractères. Si la chaîne de caractères commence par une donnée numérique valide, ce sera la valeur utilisée. Sinon, la valeur sera de 0 (zéro). Une donnée numérique valide est un signe optionnel, suivi par un ou plusieurs chiffres (contenant, optionnellement, un point décimal), suivi par, éventuellement, un exposant. L'exposant est un 'e' ou 'E' suivi par un ou plusieurs chiffres.

<?php
$foo = 1 + "10.5";                // $foo est un nombre à virgule flottante (11.5)
$foo = 1 + "-1.3e3";              // $foo est un nombre à virgule flottante (-1299)
$foo = 1 + "bob-1.3e3";           // $foo est un entier (1)
$foo = 1 + "bob3";                // $foo est un entier (1)
$foo = 1 + "10 Small Pigs";       // $foo est un entier (11)
$foo = 4 + "10.2 Little Piggies"; // $foo est un nombre à virgule flottante (14.2)
$foo = "10.0 pigs " + 1;          // $foo est un nombre à virgule flottante (11)
$foo = "10.0 pigs " + 1.0;        // $foo est un nombre à virgule flottante (11)
?>

Pour plus d'informations à propos de cette conversion, reportez-vous au manuel Unix de la fonction strtod(3).

Pour tester un des exemples de cette section, copiez/collez l'exemple et insérez la ligne suivante pour voir ce qu'il se passe :

<?php
echo "Le type de \$foo==$foo; est " . gettype ($foo) . "<br />\n";
?>

Ne vous attendez pas à récupérer le code d'un caractère en le convertissant en entier, comme cela est fait en C. Utilisez les fonctions ord() et chr() pour convertir entre caractères et codes ASCII.

Détails sur le type "chaîne de caractères"

Le type string en PHP est implémenté sous la forme d'un tableau d'octets accompagné d'un entier indiquant la longueur du buffer. Il n'a aucune information sur la traduction octet/caractère, laissant cette tâche au programmeur. Il n'y a aucune limitation sur les valeurs pouvant être présentes dans une chaîne ; en particulier, les octets dont la valeur est 0 (“NUL bytes”) sont autorisés à n'importe quel endroit de la chaîne (cependant, quelques fonctions, indiquées dans ce manuel comme n'étant pas “sécurisées au niveau binaire”, peuvent ignorer tous les octets après un octet nul.)

La nature même du type "chaîne de caractères" explique qu'il n'existe pas de type “byte” en PHP - les chaînes de caractères jouent ce rôle. Les fonctions qui ne retournent pas de données textuelles - par exemple, des données arbitraires lues depuis un socket réseau - continueront de retourner des chaînes de caractères.

PHP ne dictant aucun encodage spécifique pour les chaînes de caractères, on pourrait se demander comment les chaînes littérales sont codés. Par exemple, est-ce que la chaîne "á" équivaut à la chaîne "\xE1" (ISO-8859-1), "\xC3\xA1" (UTF-8, C form), "\x61\xCC\x81" (UTF-8, D form) ou à une autre des représentations possibles ? La réponse est que la chaîne sera encodée suivant l'encodage courant du script. Aussi, si le script est écrit en ISO-8859-1, alors, la chaîne sera encodée en ISO-8859-1 ; et ainsi de suite. Toutefois, ceci n'est pas vrai si Zend Multibyte est activé ; dans ce cas, le script peut être écrit dans n'importe quel encodage (qui sera explicitement déclaré, ou bien détecté), puis sera converti en un encodage interne, qui sera utilisé pour les chaînes littérales. Notez qu'il existe des contraintes sur l'encodage du script (ou sur l'encodage interne, si Zend Multibyte est activé) - cela signifie quasiment toujours que l'encodage utilisé doit être un sur-ensemble compatible d'ASCII, comme UTF-8 ou ISO-8859-1. Notez cependant que les encodages dépendant de l'état, où les mêmes valeurs de l'octet peuvent être utilisées dans des états de décalage initial et non-initial, peuvent être problématiques.

Bien évidemment, pour être utiles, les fonctions qui opèrent sur du texte peuvent devoir faire des hypothèses sur la façon dont est encodé la chaîne de caractères. Malheureusement, ces hypothèses ne sont pas les mêmes suivant les fonctions de PHP :

  • Certaines fonctions supposent que la chaîne est encodée en utilisant un (quelconque) encodage à un seul octet, mais n'ont pas besoin d'interpréter ces octets sous la forme de caractères. C'est actuellement le cas, par exemple, pour les fonctions substr(), strpos(), strlen() et strcmp(). Une autre façon de voir ces fonctions est qu'elles opèrent sur les buffers mémoires ; autrement dit, qu'elles fonctionnent avec les octets et leurs positions.
  • D'autres fonctions reçoivent l'encodage de la chaîne en paramètre, éventuellement en assumant un encodage par défaut si ce n'est pas le cas. C'est le cas de la fonction htmlentities() ainsi que de la majorité des fonctions de l'extension mbstring.
  • D'autres utilisent la locale courante (voir la fonction setlocale()), mais opèrent octets par octets. C'est le cas des fonctions strcasecmp(), strtoupper(), ou ucfirst(). Cela signifie qu'elles ne peuvent être utilisées qu'avec les encodages sur un seul octet, et si l'encodage correspond à la locale. Par exemple, strtoupper("á") peut retourner "Á" si la locale est correctement positionnée et si á est encodé sur un seul octet. Si la chaîne est encodée en UTF-8, le résultat correct ne sera pas retourné, et la chaîne résultante pourra être (ou non) corrompue, suivant la locale courante.
  • Enfin, elles peuvent juste supposer que la chaîne utilise un encodage spécifique, comme UTF-8. C'est le cas de la plupart des fonctions de l'extension intl ainsi que de celles de l'extension PCRE (dans ce dernier cas, uniquement lorsque le modificateur u est utilisé). Bien que ce soit en raison de leur buts spécifiques, la fonction utf8_decode() assume un encodage UTF-8 et la fonction utf8_encode() pré-suppose un encodage ISO-8859-1.

Pour conclure, le fait d'écrire un programme correct en utilisant Unicode dépend de l'utilisation ou non de fonctions qui ne fonctionnent pas en Unicode, et qui corrompront très certainement les données ; il conviendra donc d'utiliser des fonctions qui fonctionnent correctement, générallement depuis les extensions intl et mbstring. Cependant, l'utilisation de fonctions qui peuvent gérer des encodages Unicode n'est que le commencement. Quelques soient les fonctions fournies par le langage, il est essentiel de connaître les spécifications de l'Unicode. Par exemple, un programme qui assume qu'il n'y a que des caractères en majuscule et en minuscule fait une mauvaise hypothèse.


Les tableaux

Un tableau en PHP est en fait une carte ordonnée. Une carte est un type qui associe des valeurs à des clés. Ce type est optimisé pour différentes utilisations ; il peut être considéré comme un tableau, une liste, une table de hashage, un dictionnaire, une collection, une pile, une file d'attente et probablement plus. On peut avoir, comme valeur d'un tableau, d'autres tableaux, multidimensionnels ou non.

La structure de ces données dépasse l'objet de ce manuel, mais vous trouverez au moins un exemple pour chacun des cas évoqués. Pour plus d'informations, reportez-vous aux différentes explications sur le sujet que l'on trouve sur le web.

Syntaxe

Syntaxe d'un tableau

Un tableau peut être créé en utilisant la structure de langage array(). Il prend un nombre illimité de paramètres, chacun séparé par une virgule, sous la forme d'une paire key => value.

array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)

La virgule après le dernier élément d'un tableau est optionnelle et peut ne pas être ajoutée. C'est généralement ce qui est fait pour les tableaux sur une seule ligne, i.e. array(1, 2) est préféré à array(1, 2, ). Pour les tableaux sur plusieurs lignes, la virgule finale est généralement utilisée, car elle permet d'ajouter plus facilement de nouveaux éléments à la fin.

Depuis PHP 5.4, vous pouvez également utiliser la syntaxe courte, qui remplace array() par [].

Exemple #1 Un tableau simple

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// depuis PHP 5.4
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

La clé key peut être soit un integer, soit une chaîne de caractères. La valeur value peut être de n'importe quel type.

De plus, les modifications de type suivantes surviendront pour la clé key :

  • Les chaînes de caractères contenant un entier valide seront modifiées en un type entier. I.e. la clé "8" sera actuellement stockée comme l'entier 8. D'un autre côté, "08" ne sera pas modifié, sachant que ce n'est pas un entier décimal valide.
  • Les nombres à virgule flottante seront aussi modifiés en entier, ce qui signifie que la partie après la virgule sera tronquée. I.e. la clé 8.7 sera stockée sous l'entier 8.
  • Les booléens seront modifiés en entier également, i.e. la clé true sera stockée sous l'entier 1 et la clé false sous l'entier 0.
  • La valeur Null sera modifiée en une chaîne vide, i.e. la clé null sera stockée sous la chaîne de caractère "".
  • Les tableaux et les objets ne peuvent pas être utilisés comme clé. Si vous le tentez, l'alerte suivante sera émise : Illegal offset type.

Si plusieurs éléments dans la déclaration d'un tableau utilisent la même clé, seule la dernière sera utilisée, écrasant ainsi toutes les précédentes.

Exemple #2 Exemple sur la modification de type et l'écrasement

<?php
$array = array(
    1    => "a",
    "1"  => "b",
    1.5  => "c",
    true => "d",
);
var_dump($array);
?>

L'exemple ci-dessus va afficher :

array(1) {
  [1]=>
  string(1) "d"
}

Vu que toutes les clés de l'exemple ci-dessus sont modifiées en l'entier 1, la valeur sera écrasée sur chaque nouvel élément, et seul le dernier dont la valeur assignée est "d" sera conservé.

Les tableaux PHP peuvent contenir des clés de type integer et string en même temps, vu que PHP ne distingue pas les tableaux indexés et les tableaux associatifs.

Exemple #3 Exemple avec des clés de type integer et string

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
    100   => -100,
    -100  => 100,
);
var_dump($array);
?>

L'exemple ci-dessus va afficher :

array(4) {
  ["foo"]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "foo"
  [100]=>
  int(-100)
  [-100]=>
  int(100)
}

La clé key est optionnelle. Si elle n'est pas spécifiée, PHP utilisera un incrément de la dernière clé entière utilisée.

Exemple #4 Tableaux indexés sans clé

<?php
$array = array("foo", "bar", "hello", "world");
var_dump($array);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(5) "hello"
  [3]=>
  string(5) "world"
}

Il est possible de spécifier la clé seulement pour quelques éléments et ne pas la fournir pour d'autres :

Exemple #5 Exemple avec des clés seulement pour quelques éléments

<?php
$array = array(
         "a",
         "b",
    6 => "c",
         "d",
);
var_dump($array);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [6]=>
  string(1) "c"
  [7]=>
  string(1) "d"
}

Comme vous pouvez le voir, la dernière valeur "d" a été assignée à la clé 7. Ceci est du au fait que le dernier entier le plus grand utilisé auparavant était 6.

Accès aux éléments d'un tableau en utilisant la syntaxe à base de crochets

Les éléments d'un tableau peuvent être accédés en utilisant la syntaxe array[key].

Exemple #6 Accès aux éléments d'un tableau

<?php
$array = array(
    "foo" => "bar",
    42    => 24,
    "multi" => array(
         "dimensional" => array(
             "array" => "foo"
         )
    )
);

var_dump($array["foo"]);
var_dump($array[42]);
var_dump($array["multi"]["dimensional"]["array"]);
?>

L'exemple ci-dessus va afficher :

string(3) "bar"
int(24)
string(3) "foo"

Note:

Les accolades et les crochets peuvent être utilisés pour accéder aux éléments d'un tableau (i.e. $array[42] et $array{42} feront exactement la même chose dans l'exemple ci-dessus).

Depuis PHP 5.4, il est possible de faire référence à un tableau résultant d'une fonction ou d'une méthode directement. Avant, cela n'était possible qu'en utilisant une variable temporaire.

Depuis PHP 5.5, il est possible de déréférencer un tableau littéral.

Exemple #7 Faire référence à un tableau à la sortie d'une fonction ou d'une méthode

<?php
function getArray() {
    return array(1, 2, 3);
}

// Depuis PHP 5.4
$secondElement = getArray()[1];

// Avant PHP 5.4
$tmp = getArray();
$secondElement = $tmp[1];

// ou
list(, $secondElement) = getArray();
?>

Note:

Une tentative d'accès à une clé d'un tableau qui n'a pas été définie revient à tenter d'accès à une variable non définie : une alerte de niveau E_NOTICE sera émise, et le résultat vaudra NULL.

Création/modification avec des crochets

Un tableau existant peut être modifié en y assignant explicitement des valeurs.

L'assignation d'une valeur dans un tableau est effectué en spécifiant la clé, entre crochets. La clé peut également ne pas être renseignée, sous la forme : [].

$arr[clé] = valeur;
$arr[] = valeur;
// clé peut être un entier ou une chaîne de caractères
// valeur peut être n'importe quel type

Si $arr n'existe pas lors de l'assignation, il sera créé ; c'est ainsi une façon détournée de créer un tableau. Cette pratique est cependant découragée car si $arr contient déjà quelques valeurs (i.e. string depuis la variable demandée) alors cette valeur restera en place et [] peut attendre un opérateur d'accès sur une chaîne. C'est toujours un meilleur choix que d'initialiser une variable par assignement direct.

Pour modifier une valeur en particulier, il convient d'assigner une valeur en spécifiant sa clé. Pour effacer une paire clé/valeur, il convient d'appeler la fonction unset() sur la clé désirée.

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56;    // Identique à $arr[13] = 56;
                // à cet endroit du script

$arr["x"] = 42; // Ceci ajoute un nouvel élément au
                // tableau avec la clé "x"

unset($arr[5]); // Ceci efface l'élément du tableau

unset($arr);    // Ceci efface complètement le tableau
?>

Note:

Comme dit plus haut, si aucune clé n'est spécifiée, l'indice maximal existant est repris, et la nouvelle clé sera ce nombre, plus 1 (mais au moins 0). Si aucun indice entier n'existe, la clé sera 0 (zéro).

Notez que la clé entière maximale pour cette opération n'a pas besoin d'exister dans le tableau au moment de la manipulation. Elle doit seulement avoir existé dans le tableau à un moment ou un autre depuis la dernière fois où le tableau a été ré-indexé. Voici un exemple qui illustre ce principe :

<?php
// Création d'un tableau simple.
$array = array(1, 2, 3, 4, 5);
print_r($array);

// Maintennant, on efface tous les éléments, mais on conserve le tableau :
foreach ($array as $i => $value) {
    unset($array[$i]);
}
print_r($array);

// Ajout d'un élément (notez que la nouvelle clé est 5, et non 0).
$array[] = 6;
print_r($array);

// Ré-indexation :
$array = array_values($array);
$array[] = 7;
print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
)
Array
(
    [5] => 6
)
Array
(
    [0] => 6
    [1] => 7
)

Fonctions utiles

Il y a beaucoup de fonctions utiles pour travailler avec les tableaux. Nous vous invitons à lire la section de ce manuel sur les fonctions en rapport avec les tableaux.

Note:

La fonction unset() permet d'effacer les clés d'un tableau. Soyez attentif sur le fait que le tableau ne sera pas ré-indexé. Si vous voulez réaliser un effacement complet et une ré-indexation de votre tableau, vous devez utiliser la fonction array_values().

<?php
$a = array(1 => 'one', 2 => 'two', 3 => 'three');
unset($a[2]);
/* produira un tableau comme ceci
   $a = array(1 => 'one', 3 => 'three');
   et NON un tableau comme ceci
   $a = array(1 => 'one', 2 =>'three');
*/

$b = array_values($a);
// Maintenant, $b vaut array(0 => 'one', 1 =>'three')
?>

La structure de contrôle foreach existe tout spécialement pour les tableaux. Elle fournit une manière pratique de parcourir un tableau.

Ce qu'il est possible de faire ou non avec un tableau

Pourquoi $foo[bar] est incorrect ?

Utiliser toujours des guillemets autour d'un index littéral. Par exemple, $foo['bar'] est correct, alors que $foo[bar] ne l'est pas. Mais pourquoi ? il est courant de rencontrer ce genre de syntaxe dans d'anciens scripts :

<?php
$foo[bar] = 'enemy';
echo $foo[bar];
// etc
?>

C'est incorrect, mais ça fonctionne. La raison est que ce code a une constante indéfinie (bar) plutôt qu'une chaîne ('bar' - noter les guillemets). PHP peut définir plus loin une constante portant le même nom. Cela fonctionne car PHP convertit automatiquement une chaîne nue (une chaîne sans guillemets qui ne correspond à aucun symbole connu) en une chaîne qui la contient. Actuellement, s'il n'y a aucune constante nommée bar, alors PHP substituera 'bar' dans la chaîne et l'utilisera.

Note: Ceci ne signifie pas qu'il faut toujours mettre la clé entre guillemets. N'utilisez pas de guillemets avec les clés qui sont des constantes ou des variables, car cela empêcherait PHP de les interpréter.

<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
// Tableau simple :
$array = array(1, 2);
$count = count($array);
for ($i = 0; $i < $count; $i++) {
    echo "\nVérification de $i : \n";
    echo "Mauvais : " . $array['$i'] . "\n";
    echo "Bon : " . $array[$i] . "\n";
    echo "Mauvais : {$array['$i']}\n";
    echo "Bon : {$array[$i]}\n";
}
?>

L'exemple ci-dessus va afficher :

Vérification de 0 :
Notice: Undefined index:  $i in /path/to/script.html on line 9
Mauvais :
Bon : 1
Notice: Undefined index:  $i in /path/to/script.html on line 11
Mauvais :
Bon : 1

Vérification de 1 :
Notice: Undefined index:  $i in /path/to/script.html on line 9
Mauvais :
Bon : 2
Notice: Undefined index:  $i in /path/to/script.html on line 11
Mauvais :
Bon : 2

Plus d'exemples pour expliquer ce comportement :

<?php
// Affichons toutes les erreurs
error_reporting(E_ALL);

$arr = array('fruit' => 'apple', 'veggie' => 'carrot');

// Correct
print $arr['fruit'];  // apple
print $arr['veggie']; // carrot

// Incorrect.  Ceci fonctionne mais PHP émettera une erreur de type E_NOTICE car
// on utilise la constante nommée fruit qui est indéfinie
//
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr[fruit];    // apple

// Ceci définit une constante pour expliquer ce qu'il ne va pas. La valeur 'veggie'
// est assignée à la constante nommée fruit.
define('fruit', 'veggie');

// Noter la différence maintenant
print $arr['fruit'];  // apple
print $arr[fruit];    // carrot

// Ce qui suit est correct, car c'est dans une chaîne. Les constantes ne sont pas recherchées
// dans les chaînes, et donc, aucune alerte E_NOTICE ne sera émise
print "Hello $arr[fruit]";      // Hello apple

// Avec une exception : les parenthèses autour d'un tableau dans une chaîne permettent
// aux constantes d'être interprétées
print "Hello {$arr[fruit]}";    // Hello carrot
print "Hello {$arr['fruit']}";  // Hello apple

// Ceci ne fonctionnera pas, et en résultera une erreur d'analyse, comme ceci :
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// Ceci arrive lors de l'utilisation d'une supergloables dans les chaînes
print "Hello $arr['fruit']";
print "Hello $_GET['foo']";

// La concaténation est une autre solution
print "Hello " . $arr['fruit']; // Hello apple
?>

Lorsque error_reporting est défini afin de montrer les erreurs de type E_NOTICE (en le définissant à E_ALL, par exemple), une telle pratique devient immédiatement visible. Par défaut, error_reporting n'est pas défini pour afficher toutes les alertes.

Comme vu dans la section "syntaxe", ce qui se trouve entre crochets ('[' et ']') doit être une expression. Ceci signifie que le code ci-dessous fonctionne :

<?php
echo $arr[somefunc($bar)];
?>

C'est un exemple d'utilisation d'une fonction retournant une valeur qui sera la clé du tableau. PHP comprend également les constantes :

<?php
$error_descriptions[E_ERROR]   = "A fatal error has occured";
$error_descriptions[E_WARNING] = "PHP issued a warning";
$error_descriptions[E_NOTICE]  = "This is just an informal notice";
?>

Noter que E_ERROR est également un identifiant valide, tout comme bar dans le premier exemple. Mais le dernier exemple est finalement le même que celui-ci :

<?php
$error_descriptions[1] = "A fatal error has occured";
$error_descriptions[2] = "PHP issued a warning";
$error_descriptions[8] = "This is just an informal notice";
?>

car E_ERROR vaut 1, etc.

Alors, pourquoi est-ce une mauvaise pratique ?

Dans le futur, les développeurs PHP peuvent vouloir ajouter une autre constante ou un autre mot clé, ou bien une constante dans une autre partie du code qui peut interférer. Par exemple, il est toujours incorrect d'utiliser le mot empty et default, sachant que ce sont des mots réservés.

Note: Pour être plus clair, dans une chaîne entourée de guillemets doubles, il est valide de ne pas entourer les indexes d'un tableau avec des guillemets, et donc, "$foo[bar]" est valide. Voir les exemples ci-dessous pour plus détails mais aussi la section sur l'analyse des variables dans les chaînes.

Conversion en un tableau

Pour tous les types : entier, nombre décimal, chaîne de caractères, booléen et ressource, le fait de convertir une valeur en un tableau résulte en un tableau contenant un seul élément dont l'indexe vaut zéro et la valeur, une valeur scalaire convertie. En d'autres termes, (array)$scalarValue est exactement la même chose que array($scalarValue).

Si un objet est converti en un tableau, le résultat sera un tableau dont les éléments sont les propriétés de l'objet. Les clés sont les noms des membres, avec une légère exception : les variables ayant un nom sous forme d'entier sont inaccessible; les variables privées auront le nom de la classe ajouté au nom de la variable ; les variables protégées auront un '*' ajouté au nom de la variable. Ce comportement peut amener à des résultats inattendus :

<?php

class A {
    private $A; // Ceci devient '\0A\0A'
}

class B extends A {
    private $A; // Ceci devient '\0B\0A'
    public $AA; // Ceci devient 'AA'
}

var_dump((array) new B());
?>

Ici, on pourrait penser qu'il y a 2 clés nommées 'AA', alors qu'une est actuellement nommée '\0A\0A'.

La conversion de NULL en un tableau résultat en un tableau vide.

Comparaison

Il est possible de comparer plusieurs tableaux avec la fonction array_diff() ainsi qu'avec les opérateurs de tableaux.

Exemples

Le type tableau en PHP est vraiment versatile. Voici quelques exemples :

<?php
// This
$a = array( 'color' => 'red',
            'taste' => 'sweet',
            'shape' => 'round',
            'name'  => 'apple',
             4        // la clé sera 0
          );

// est strictement équivalent à
$a = array();
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name']  = 'apple';
$a[]        = 4;        // la clé sera 0

$b[] = 'a';
$b[] = 'b';
$b[] = 'c';

// Après exécution du code ci-dessus, $a sera le tableau
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round',
// 'name' => 'apple', 0 => 4), et $b sera le tableau
// array(0 => 'a', 1 => 'b', 2 => 'c'), ou simplement array('a', 'b', 'c').
?>

Exemple #8 Utilisation de array()

<?php
// Tableau comme carte de propriétés
$map = array( 'version'    => 4,
              'OS'         => 'Linux',
              'lang'       => 'english',
              'short_tags' => true
            );

// clés numériques strictes
$array = array( 7,
                8,
                0,
                156,
                -10
              );
// est identique à array(0 => 7, 1 => 8, ...)

$switching = array(         10, // clé = 0
                    5    =>  6,
                    3    =>  7,
                    'a'  =>  4,
                            11, // clé = 6 (l'indice entier maximal est 5)
                    '8'  =>  2, // clé = 8 (intier !)
                    '02' => 77, // clé = '02'
                    0    => 12  // la valeur 10 sera écrasée par la valeur 12
                  );

// empty array
$empty = array();
?>

Exemple #9 Collection

<?php
$colors = array('rouge', 'bleu', 'verte', 'jaune');

foreach ($colors as $color) {
    echo "Aimez-vous la couleur $color ?\n";
}

?>

L'exemple ci-dessus va afficher :

Aimez-vous la couleur rouge ?
Aimez-vous la couleur bleu ?
Aimez-vous la couleur verte ?
Aimez-vous la couleur jaune ?

La modification directe de valeurs d'un tableau est possible depuis PHP 5 en le passant par référence. Avant cette version, nous devions utiliser l'astuce suivante :

Exemple #10 Modification d'un élément dans la boucle

<?php
// PHP 5
foreach ($colors as &$color) {
    $color = strtoupper($color);
}
unset($color); /* On s'assure que les écritures suivantes
sur $color ne modifie pas le dernier élément du tableau */

// Astuce pour les anciennes versions
foreach ($colors as $key => $color) {
    $colors[$key] = strtoupper($color);
}

print_r($colors);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => ROUGE
    [1] => BLEU
    [2] => VERTE
    [3] => JAUNE
)

Cet exemple crée un tableau, dont l'indexation commence à 1.

Exemple #11 Indexation commençant à 1

<?php
$firstquarter  = array(1 => 'Janvier', 'Février', 'Mars');
print_r($firstquarter);
?>

L'exemple ci-dessus va afficher :

Array
(
    [1] => 'Janvier'
    [2] => 'Février'
    [3] => 'Mars'
)

Exemple #12 Remplissage d'un tableau

<?php
// Remplit un tableau avec tous les éléments d'un dossier
$handle = opendir('.');
while (false !== ($file = readdir($handle))) {
    $files[] = $file;
}
closedir($handle);
?>

Les tableaux sont ordonnés. L'ordre peut être modifié en utilisant plusieurs fonctions. Voir la section sur les fonctions sur les tableaux pour plus d'informations. La fonction count() peut être utilisée pour compter le nombre d'éléments d'un tableau.

Exemple #13 Tri d'un tableau

<?php
sort($files);
print_r($files);
?>

Sachant que la valeur d'un tableau peut être n'importe quoi, elle peut aussi être un autre tableau. Ceci permet la création de tableaux récursifs et de tableaux multidimensionnels.

Exemple #14 Tableaux récursifs et multidimensionnels

<?php
$fruits = array ( "fruits"  => array ( "a" => "orange",
                                       "b" => "banana",
                                       "c" => "apple"
                                     ),
                  "numbers" => array ( 1,
                                       2,
                                       3,
                                       4,
                                       5,
                                       6
                                     ),
                  "holes"   => array (      "first",
                                       5 => "second",
                                            "third"
                                     )
                );

// Quelques exemples pour retrouver les valeurs dans le tableau ci-dessus
echo $fruits["holes"][5];    // affiche "second"
echo $fruits["fruits"]["a"]; // affiche "orange"
unset($fruits["holes"][0]);  // efface "first"

// Création d'un tableau multidimensionnel
$juices["apple"]["green"] = "good";
?>

L'assignation d'un tableau induit toujours la copie des valeurs. Utilisez l'opérateur de référence pour copier un tableau par référence.

<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 est modifié,
             // $arr1 vaut toujours array(2, 3)

$arr3 = &$arr1;
$arr3[] = 4; // maintenant, $arr1 et $arr3 sont identiques
?>


Les objets

Initialisation des objets

Pour créer un nouvel objet, utilisez le mot clé new afin d'instancier une classe :

<?php
class foo
{
    function do_foo()
    {
        echo "Doing foo.";
    }
}

$bar = new foo;
$bar->do_foo();
?>

Pour une discussion complète, voir le chapitre sur les classes et les objets.

Conversion en un objet

Si un objet est converti en un objet, il ne sera pas modifié. Si une valeur de n'importe quel type est convertie en un objet, une nouvelle instance de la classe interne stdClass sera créée. Si la valeur est NULL, la nouvelle instance sera vide. Un array se converti en object avec les propriétés nommées au regard des clés avec leurs valeurs correspondantes, à l'exception des clés numériques qui seront innacessibles à moins d'être itérées.

<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // affiche 'bool(false)'
var_dump(key($obj)); // affiche 'int(1)'
?>

Pour n'importe quel autre type, un membre appelé scalar contiendra la valeur.

<?php
$obj = (object) 'ciao';
echo $obj->scalar;  // Affiche : 'ciao'
?>


Les ressources

Une ressource est une variable spéciale, contenant une référence vers une ressource externe. Les ressources sont créées et utilisées par des fonctions spéciales. Voir l'appendice pour une liste de toutes ces fonctions ainsi que les types de ressource correspondants.

Voir aussi la fonction get_resource_type().

Conversion en ressource

Sachant qu'une ressource représente un fichier ouvert, une connexion à une base de données, une image, etc..., la conversion en une ressource n'a pas de sens.

Libération des ressources

Sachant qu'une ressource qui n'a plus aucune référence est détectée automatiquement et est libérée par le collecteur, il est rarement nécessaire de libérer la mémoire manuellement.

Note: Les connexions persistantes aux bases de données sont des exceptions à cette règle. Elles ne sont pas détruites par le collecteur. Voir la section sur les connexions persistantes pour plus d'informations.


NULL

La valeur spéciale NULL représente une variable sans valeur. NULL est la seule valeur possible du type NULL.

Une variable est considérée comme null si :

  • elle s'est vue assigner la constante NULL.

  • elle n'a pas encore reçu de valeur.

  • elle a été effacée avec la fonction unset().

Syntaxe

Il y a une seule valeur de type null, et c'est la constante insensible à la casse NULL.

<?php
$var = NULL;
?>

Voir aussi les fonctions is_null() et unset().

Transtyper vers NULL

Transtyper une variable vers null en utilisant la syntaxe (unset) $var n'effacera pas la variable, ni écrasera sa valeur. Ca ne fera que retourner la valeur NULL.


Fonctions de rappel / Types Callable

Les fonctions de rappel peuvent être identifiées via le type callable depuis PHP 5.4. Cette documentation utilise le type callback qui revient exactement au même.

Certaines fonctions, comme call_user_func() ou usort(), acceptent comme paramètre des fonctions de rappel définies par l'utilisateur. Les fonctions de rappel peuvent être de simples fonctions, mais aussi des méthodes d'objets, y compris des méthodes statiques de classe.

Passage d'une fonction de rappel

Une fonction PHP est passée par son nom, sous la forme d'une chaîne de caractères. Toute fonction interne ou définie par l'utilisateur peut être utilisée, sauf les constructions de langage comme : array(), echo, empty(), eval(), exit(), isset(), list(), print, ou unset().

Une méthode d'un objet instancié est passée comme un tableau contenant un objet à l'index 0, et le nom de la méthode à l'index 1.

Les méthodes statiques de classe peuvent aussi être passées sans instancier d'objet de cette classe, en passant le nom de la classe au lieu d'un objet à l'index 0. Depuis PHP 5.2.3, il est également possible de passer 'NomDeLaClasse::NomDeLaMethode'.

En dehors des fonctions définies normalement par l'utilisateur, une closure peut aussi être utilisée comme paramètre de type callback.

Exemple #1 Exemples de fonctions de rappel

<?php

// Un exemple de fonction de rappel
function my_callback_function() {
    echo 'hello world!';
}

// Un exemple de méthode de rappel
class MyClass {
    static function myCallbackMethod() {
        echo 'Hello World!';
    }
}

// Type 1 : Fonction de rappel simple
call_user_func('my_callback_function');

// Type 2 : Appel d'une méthode statique de classe
call_user_func(array('MyClass', 'myCallbackMethod'));

// Type 3 : Appel d'une méthode objet
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));

// Type 4 : Appel d'une méthode statique de classe (depuis PHP 5.2.3)
call_user_func('MyClass::myCallbackMethod');

// Type 5 : Appel à une méthode statique de classe relative (depuis PHP 5.3.0)
class A {
    public static function who() {
        echo "A\n";
    }
}

class B extends A {
    public static function who() {
        echo "B\n";
    }
}

call_user_func(array('B', 'parent::who')); // A
// Type 6 : Les objets implémentants __invoke peuvent être utilisés comme callables (depuis PHP 5.3)
class C {
    public function __invoke($name) {
        echo 'Hello ', $name, "\n";
    }
}

$c = new C();
call_user_func($c, 'PHP!');
?>

Exemple #2 Exemple d'une fonction de rappel utilisant une closure

<?php
// Notre closure
$double = function($a) {
    return $a * 2;
};

// Ceci est notre intervalle de nombres
$numbers = range(1, 5);

// Utilisation de la closure comme fonction de rappel.
// Ici, pour doubler la taille de chaque élément de notre intervalle
$new_numbers = array_map($double, $numbers);

print implode(' ', $new_numbers);
?>

L'exemple ci-dessus va afficher :

2 4 6 8 10

Note: En PHP 4, il était nécessaire d'utiliser une référence pour créer une fonction de rappel qui pointe vers un objet, et non une copie de celui-ci. Pour plus de détails, reportez-vous à l'explication sur les références.

Note:

Notez que les fonctions de rappel enregistrées avec des fonctions comme call_user_func() et call_user_func_array() ne seront pas appelées si une exception n'est pas interceptée alors qu'elle a été lancée dans une précédente fonction de rappel.


Variables et pseudo-types utilisés dans cette documentation

mixed

mixed indique qu'un paramètre peut accepter plusieurs (mais pas nécessairement tous) types.

gettype() par exemple, accepte tous les types PHP, alors que str_replace() accepte les chaînes et les tableaux.

number

number indique qu'un paramètre peut être soit un nombre entier, soit un nombre décimal (nombre décimal).

callback

Les pseudo-types callback étaient utilisés dans cette documentation avant que le type callable ne soit introduit en PHP 5.4. Leur signification est exactement la même.

array|object

array|object indique qu'un paramètre peut être un array ou un object.

void

void comme type retourné signifie que la valeur retournée est inutile. void dans une liste de paramètre signifie que la fonction n'accepte aucun paramètre.

...

$... dans le prototype d'une fonction signifie "et bien plus...". Ce nom de variable est utilisé lorsqu'une fonction peut prendre un nombre indéfini d'arguments.


Manipulation de types

PHP n'impose pas (et ne permet pas) de définir explicitement le type d'une variable lors de sa déclaration ; le type d'une variable est déterminé par son contexte d'utilisation. Par exemple, si une valeur de type string est assignée à la variable $var, alors $var devient de type string. Si une valeur de type integer est ensuite assignée à cette variable $var, alors son type devient integer.

Un exemple de conversion de type automatique avec PHP est l'opérateur d'addition '+'. Si une des opérandes est de type float, alors les deux opérandes seront évaluées comme de type float, et le résultat sera de type float. Sinon, les opérandes seront interprétées comme des integers, et le résultat sera également de type integer. Notez que cela ne modifie pas le type des opérandes en elle-mêmes ; la seule modification est la façon dont les opérandes sont évaluées, et le type de l'expression elle-même.

<?php
$foo = "0";                     // $foo est une chaîne de caractères (ASCII 48)
$foo += 2;                      // $foo est maintenant un entier (2)
$foo = $foo + 1.3;              // $foo est maintenant un nombre à virgule flottante (3.3)
$foo = 5 + "10 Little Piggies"; // $foo est un entier (15)
$foo = 5 + "10 Small Pigs";     // $foo est un entier (15)
?>

Si les 2 derniers exemples vous semblent bizarres, reportez-vous à la section sur les conversions de chaînes en nombres.

Pour forcer une variable à être évaluée en un certain type, reportez-vous à la section sur le transtypage. Pour changer le type d'une variable, reportez-vous à la fonction settype().

Pour tester les exemples de cette section, utilisez la fonction var_dump().

Note:

Le comportement d'une conversion automatique en tableau est actuellement non-défini.

De plus, puisque PHP supporte l'indexation des chaînes de caractères via des positions en utilisant la même syntaxe que pour les tableaux, l'exemple suivant est vrai pour toutes les versions de PHP :

<?php
$a    = 'car'; // $a est une chaîne de caractères
$a[0] = 'b';   // $a est toujours une chaîne de caractères
echo $a;       // bar
?>

Reportez-vous à la section sur l'accès aux chaînes par caractères pour plus d'informations.

Modification de types

La modification de types en PHP fonctionne globalement de la même façon qu'en C : le nom du type désiré est écrit entre parenthèses avant la variable à traiter.

<?php
$foo = 10;               // $foo est un entier
$bar = (boolean) $foo;   // $bar est un booléen
?>

Les préfixes autorisés sont :

  • (int), (integer) : modification en integer
  • (bool), (boolean) : modification en boolean
  • (float), (double), (real) : modification en float
  • (string) : modification en string
  • (array) : modification en array
  • (object) : modification en object
  • (unset) : modification en NULL (PHP 5)

La modification en binaire avec (binary) et le préfixe b ont été ajoutés en PHP 5.2.1

Notez que les tabulations et les espaces sont autorisés dans les parenthèses. Les exemples suivants sont donc fonctionnellement équivalents :

<?php
$foo = (int) $bar;
$foo = ( int ) $bar;
?>

Modification d'une chaîne littérale et d'une variable en chaînes binaires :

<?php
$binary = (binary) $string;
$binary = b"binary string";
?>

Note:

Au lieu de modifier une variable en chaîne, il est également possible d'entourer la variable de guillemets doubles.

<?php
$foo = 10;            // $foo est un entier
$str = "$foo";        // $str est une chaîne
$fst = (string) $foo; // $fst est également une chaîne

// Ceci affichera "ils sont identiques"
if ($fst === $str) {
    echo "ils sont identiques";
}
?>

Le comportement d'une modification de type n'est pas toujours évident suivant les types. Pour plus d'informations, reportez-vous à ces sections :

  • Conversion en booléen
  • Conversion en entier
  • Conversion en nombre à virgule flottante
  • Conversion en chaîne de caractères
  • Conversion en tableau
  • Conversion en objet
  • Conversion en ressource
  • Conversion en valeur NULL
  • Les tables de comparaison de type


Les variables

Sommaire

  • Essentiel
  • Variables pré-définies
  • Portée des variables
  • Les variables dynamiques
  • Variables externes à PHP


Essentiel

En PHP, les variables sont représentées par un signe dollar "$" suivi du nom de la variable. Le nom est sensible à la casse.

Les noms de variables suivent les mêmes règles de nommage que les autres entités PHP. Un nom de variable valide doit commencer par une lettre ou un souligné (_), suivi de lettres, chiffres ou soulignés. Exprimé sous la forme d'une expression régulière, cela donne : '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

Note: Dans nos propos, une lettre peut être a-z, A-Z, et les octets de 127 à 255 (0x7f-0xff).

Note: $this est une variable spéciale, qui ne peut pas être assignée.

Astuce

Vous pourriez également avoir besoin de jeter un oeil sur Guide de nommage de l'espace utilisateur.

Pour obtenir des informations sur une variable, voyez les fonctions dédiées aux variables.

Exemple #1 Validité des noms de variables

<?php
$var = 'Jean';
$Var = 'Paul';
echo "$var, $Var";         // affiche "Jean, Paul"

$4site = 'pas encore';     // invalide : commence par un nombre
$_4site = 'pas encore';    // valide : commence par un souligné
$täyte = 'mansikka';    // valide : 'ä' est ASCII (étendu) 228.
?>

Les variables sont toujours assignées par valeur. C'est-à-dire, lorsque vous assignez une expression à une variable, la valeur de l'expression est recopiée dans la variable. Cela signifie, par exemple, qu'après avoir assigné la valeur d'une variable à une autre, modifier l'une des variables n'aura pas d'effet sur l'autre. Pour plus de détails sur ce genre d'assignation, reportez-vous aux expressions.

PHP permet aussi d'assigner les valeurs aux variables par référence. Cela signifie que la nouvelle variable ne fait que référencer (en d'autres termes, "devient un alias de", ou encore "pointe sur") la variable originale. Les modifications de la nouvelle variable affecteront l'ancienne et vice versa.

Pour assigner par référence, ajoutez simplement un & (ET commercial) au début de la variable qui est assignée (la variable source). Dans l'exemple suivant, Mon nom est Pierre s'affichera deux fois :

Exemple #2 Assignation de référence

<?php
$foo = 'Pierre';              // Assigne la valeur 'Pierre' à $foo
$bar = &$foo;                 // Référence $foo avec $bar.
$bar = "Mon nom est $bar";  // Modifie $bar...
echo $foo;                    // $foo est aussi modifiée
echo $bar;
?>

Une chose importante à noter est que seules les variables nommées peuvent être assignées par référence.

Exemple #3 Assignation de référence et variables anonymes

<?php
$foo = 25;
$bar = &$foo;      // assignation valide
$bar = &(24 * 7);  // assignation invalide : référence une expression sans nom
function test() {
   return 25;
}
$bar = &test();    // assignation invalide.
?>

Il n'est pas nécessaire d'initialiser les variables en PHP, cependant, cela reste une excellente pratique. Les variables non initialisées ont une valeur par défaut selon leur type - FALSE pour les booléens, zéro pour les entiers et les réels, chaîne vide pour les chaînes de caractères (comme utilisée avec echo) ou un tableau vide pour les tableaux.

Exemple #4 Valeurs par défaut des variables non initialisées

<?php
// Une variable non initialisée et non référencée (pas de contexte d'utilisation); retourne NULL
var_dump($unset_var);

// L'utilisation d'un booléen; retourne 'false' (Voir l'opérateur ternaire pour comprendre cette syntaxe)
echo($unset_bool ? "true\n" : "false\n");

// Utilisation d'une chaîne de caractères; retourne 'string(3) "abc"'
$unset_str .= 'abc';
var_dump($unset_str);

// Utilisation d'un entier; retourne 'int(25)'
$unset_int += 25; // 0 + 25 => 25
var_dump($unset_int);

// Utilisation d'un entier/double; retourne 'float(1.25)'
$unset_float += 1.25;
var_dump($unset_float);

// Utilisation d'un tableau : retourne array(1) {  [3]=>  string(3) "def" }
$unset_arr[3] = "def"; // array() + array(3 => "def") => array(3 => "def")
var_dump($unset_arr);

// Utilisation d'un objet; crée un nouvel objet stdClass (voir http://www.php.net/manual/fr/reserved.classes.php)
// Retourne : object(stdClass)#1 (1) {  ["foo"]=>  string(3) "bar" }
$unset_obj->foo = 'bar';
var_dump($unset_obj);
?>

Utiliser la valeur par défaut d'une variable non initialisée est problématique lorsque vous incluez un fichier dans un autre qui utilise le même nom de variable. C'est également un risque niveau sécurité lorsque register_globals est activé. Une erreur de niveau E_NOTICE sera émise lorsque vous travaillerez avec des variables non initialisées, cependant, aucune erreur ne sera lancée lorsque vous tenterez d'insérer un élément dans un tableau non initialisé. La structure de langage isset() peut être utilisée pour détecter si une variable a déjà été initialisée.


Variables pré-définies

PHP fournit un grand nombre de variables pré-définies. Cependant, beaucoup de ces variables ne peuvent pas être présentées ici, car elles dépendent du serveur sur lequel elles tournent, de la version et de la configuration du serveur ou encore d'autres facteurs. Certaines de ces variables ne seront pas accessibles lorsque PHP fonctionne en ligne de commande. Pour une liste de ces variables, lisez la section sur les variables réservées prédéfinies.

Avertissement

Depuis la version PHP 4.2.0, la valeur par défaut de la directive PHP register_globals est off. Ceci est une évolution majeure de PHP. Avoir la directive register_globals à off affecte les variables pré-définies du contexte global. Par exemple, pour lire DOCUMENT_ROOT vous devez utiliser $_SERVER['DOCUMENT_ROOT'] au lieu de $DOCUMENT_ROOT ou bien, il faut lire $_GET['id'] dans l'URL http://www.example.com/test.php?id=3 au lieu de $id ou encore $_ENV['HOME'] au lieu de $HOME.

Pour des informations liées à cette évolution, lisez la documentation de la directive register_globals , le chapitre sur la sécurité, à propos de l'utilisation des variables superglobales, ainsi que les annonces de PHP » 4.1.0 et » 4.2.0.

L'utilisation des variables pré-définies de PHP, comme les tableaux superglobaux, est recommandée.

Depuis la version 4.1.0, PHP fournit un jeu de tableaux pré-définis, contenant les variables du serveur (si possible), les variables d'environnement et celles d'entrées. Ces nouveaux tableaux sont un peu particuliers, car ils sont automatiquement globaux : ils sont automatiquement disponibles dans tous les environnements d'exécution. Pour cette raison, ils sont dits 'superglobaux' (il n'y a pas de mécanisme PHP pour créer de telles variables. Les superglobales sont listées ci-dessous. Cependant, pour connaître le détail de leur contenu et une présentation approfondie sur les variables pré-définies PHP et leur nature, reportez-vous à la section variables pré-définies. De plus, vous noterez que les anciennes variables pré-définies ($HTTP_*_VARS) existent toujours. Depuis PHP 5.0.0, les tableaux prédéfinis PHP peuvent être désactivés avec l'option de configuration register_long_arrays.

Note: Variables variables

Les superglobales ne peuvent pas être utilisées comme variables dynamiques dans les fonctions ou les méthodes des classes.

Note:

Même si les superglobales et HTTP_*_VARS peuvent exister en même temps, elles ne sont pas identiques, donc, le changement d'une ne changera pas l'autre.

Si certaines variables de variables_order ne sont pas définies, leur tableau pré-défini PHP correspondant est laissé vide.


Portée des variables

La portée d'une variable dépend du contexte dans lequel la variable est définie. Pour la majorité des variables, la portée concerne la totalité d'un script PHP. Mais, lorsque vous définissez une fonction, la portée d'une variable définie dans cette fonction est locale à la fonction. Par exemple :

Exemple #1 Les variables sont locales à la fonction

<?php
$a = 1;
include 'b.inc';
?>

Ici, la variable $a sera accessible dans le script inclus b.inc. Cependant, dans les fonctions définies par l'utilisateur, une nouvelle définition de cette variable sera donnée, limitée à la fonction. Toute variable utilisée dans une fonction est, par définition, locale. Par exemple :

<?php
$a = 1; /* portée globale */

function test()
{
    echo $a; /* portée locale */
}

test();
?>

Le script n'affichera rien à l'écran car l'instruction echo utilise la variable locale $a, et celle-ci n'a pas été assignée préalablement dans la fonction. Vous pouvez noter que ce concept diffère un petit peu du langage C dans lequel une variable globale est automatiquement accessible dans les fonctions, à moins d'être redéfinie localement dans la fonction. Cela peut poser des problèmes si vous redéfinissez des variables globales localement. En PHP, une variable globale doit être déclarée à l'intérieur de chaque fonction afin de pouvoir être utilisée dans cette fonction.

Le mot clé global

Commençons par un exemple avec global :

Exemple #2 Exemple avec global

<?php
$a = 1;
$b = 2;
function somme() {
    global $a, $b;
    $b = $a + $b;
}
somme();
echo $b;

Le script ci-dessus va afficher la valeur 3. En déclarant globales les variables $a et $b locales de la fonction somme(), toutes les références à ces variables concerneront les variables globales. Il n'y a aucune limite au nombre de variables globales qui peuvent être manipulées par une fonction.

Une deuxième méthode pour accéder aux variables globales est d'utiliser le tableau associatif pré-défini $GLOBALS. Le précédent exemple peut être réécrit de la manière suivante :

Exemple #3 Les variables globales et $GLOBALS

<?php
$a = 1;
$b = 2;
function somme() {
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}
somme();
echo $b;
?>

Le tableau $GLOBALS est un tableau associatif avec le nom des variables globales comme clé et les valeurs des éléments du tableau comme valeur des variables. Notez que $GLOBALS existe dans tous les contextes, car $GLOBALS est un superglobal. Voici un exemple des super globaux :

Exemple #4 Les variables super globales

<?php
function test_global() {

    // La plupart des variables pré-définies ne sont pas des "superglobales" et
    // requièrent le mot-clé 'global' pour être disponibles dans une fonction.
    global $HTTP_POST_VARS;

    echo $HTTP_POST_VARS['name'];

    // Les superglobales sont accessibles dans tous les contextes
    // et ne requièrent pas 'global'.  Les superglobales sont disponibles
    // depuis PHP 4.1.0 et HTTP_POST_VARS est de plus en plus
    // obsolète.
    echo $_POST['name'];
}
?>

Note:

L'utilisation du mot clé global à l'extérieur d'une fonction n'est pas une erreur. Il peut être utilisé si le fichier est inclus depuis l'intérieur d'une fonction.

Utilisation des variables static

Une autre caractéristique importante de la portée des variables est la notion de variable static. Une variable statique a une portée locale uniquement, mais elle ne perd pas sa valeur lorsque le script appelle la fonction. Prenons l'exemple suivant :

Exemple #5 Les variables statiques

<?php
function test()
{
    $a = 0;
    echo $a;
    $a++;
}
?>

Cette fonction est un peu inutile car à chaque fois qu'elle est appelée, elle initialise $a à 0 et affiche "0". L'incrémentation de la variable ($a++) ne sert pas à grand chose, car dès que la fonction est terminée, la variable $a disparaît. Pour faire une fonction de comptage utile, c'est-à-dire qui ne perdra pas la trace du compteur, la variable $a est déclarée comme une variable statique :

Exemple #6 Les variables statiques (2)

<?php
function test()
{
    static $a = 0;
    echo $a;
    $a++;
}
?>

Maintenant, la variable $a est initialisée uniquement lors du première appel à la fonction et, à chaque fois que la fonction test() est appelée, elle affichera une valeur de $a incrémentée de 1.

Les variables statiques sont essentielles lorsque vous faites des appels récursifs à une fonction. Une fonction récursive est une fonction qui s'appelle elle-même. Il faut faire attention lorsque vous écrivez une fonction récursive car il est facile de faire une boucle infinie. Vous devez vérifier que vous avez bien une condition qui permet de terminer votre récursivité. La fonction suivante compte récursivement jusqu'à 10, en utilisant la variable $count pour savoir quand il faut s'arrêter :

Exemple #7 Les variables statiques et la récursivité

<?php
function test()
{
    static $count = 0;

    $count++;
    echo $count;
    if ($count < 10) {
        test();
    }
    $count--;
}
?>

Note:

Les variables statiques doivent être déclarées comme dans l'exemple ci-dessus. Tenter d'assigner des valeurs à ces variables qui sont le résultat d'expressions causera une erreur d'analyse.

Exemple #8 Déclaration de variables statiques

<?php
function foo(){
    static $int = 0;          // correct
    static $int = 1+2;        // faux  (car c'est une expression)
    static $int = sqrt(121);  // faux  (car c'est aussi une expression)

    $int++;
    echo $int;
}
?>

Note:

Les déclarations statiques sont résolues au moment de la compilation.

Les références avec les variables global et static

Le Zend Engine 1, sur qui repose PHP 4, implémente les options static et global pour les variables, en terme de référence. Par exemple, une vraie variable globale est importée dans un contexte de fonction avec global. Cette commande crée en fait une référence sur la variable globale. Cela peut vous mener à des comportements inattendus, par exemple :

<?php
function test_global_ref() {
    global $obj;
    $obj = &new stdclass;
}

function test_global_noref() {
    global $obj;
    $obj = new stdclass;
}

test_global_ref();
var_dump($obj);
test_global_noref();
var_dump($obj);
?>

L'exemple ci-dessus va afficher :

NULL
object(stdClass)(0) {
}

Un comportement similaire s'applique à la commande static. Les références ne sont pas stockées dynamiquement :

<?php
function &get_instance_ref() {
    static $obj;

    echo 'Objet statique : ';
    var_dump($obj);
    if (!isset($obj)) {
        // Assigne une référence à une variable statique
        $obj = &new stdclass;
    }
    $obj->property++;
    return $obj;
}

function &get_instance_noref() {
    static $obj;

    echo 'Objet statique : ';
    var_dump($obj);
    if (!isset($obj)) {
        // Assigne une objet à une variable statique
        $obj = new stdclass;
    }
    $obj->property++;
    return $obj;
}

$obj1 = get_instance_ref();
$still_obj1 = get_instance_ref();
echo "\n";
$obj2 = get_instance_noref();
$still_obj2 = get_instance_noref();
?>

L'exemple ci-dessus va afficher :

Objet statique : NULL
Objet statique : NULL

Objet statique : NULL
Objet statique : object(stdClass)(1) {
["property"]=>
int(1)
}

Ces exemples illustrent les problèmes rencontrés lors de l'assignation de référence à des variables statiques, qui sont oubliées lorsque vous appelez &get_instance_ref() une seconde fois.


Les variables dynamiques

Il est pratique d'avoir parfois des noms de variables qui sont variables. C'est-à-dire un nom de variable qui est affecté et utilisé dynamiquement. Une variable classique est affectée avec l'instruction suivante :

<?php
$a = 'bonjour';
?>

Une variable dynamique prend la valeur d'une variable et l'utilise comme nom d'une autre variable. Dans l'exemple ci-dessous, bonjour peut être utilisé comme le nom d'une variable en utilisant le "$$" précédent la variable. C'est-à-dire :

<?php
$$a = 'monde';
?>

À ce niveau, deux variables ont été définies et stockées dans l'arbre des symboles PHP : $a avec comme valeur "bonjour" et $bonjour avec comme valeur "monde". Alors, l'instruction :

<?php
echo "$a ${$a}";
?>

produira le même affichage que :

<?php
echo "$a $bonjour";
?>

c'est-à-dire : bonjour monde.

Afin de pouvoir utiliser les variables dynamiques avec les tableaux, vous avez à résoudre un problème ambigu. Si vous écrivez $$a[1], l'analyseur a besoin de savoir si vous parler de la variable qui a pour nom $a[1] ou bien si vous voulez l'index [1] de la variable $$a. La syntaxe pour résoudre cette ambiguïté est la suivante : ${$a[1]} pour le premier cas et ${$a}[1] pour le deuxième.

On peut également accéder aux propriétés d'une classe en utilisant les noms des variables. Le nom de la variable sera résolu en utilisant le scope depuis lequel l'appel s'effectue. Par exemple, si vous avez une expression de la forme $foo->$bar, alors le scope local sera examiné pour $bar et sa valeur sera utilisée comme nom pour la propriété de $foo. Ce comportement reste valide si $bar est un tableau.

Les accolades peuvent aussi être utilisées, pour clairement délimiter le nom de la propriété. Ceci est utile lors de l'accès à des valeurs d'une propriété qui contient un tableau, lorsque le nom de la propriété est composé de plusieurs parties, ou lorsque le nom de la propriété contient des caractères non valides (i.e. depuis la fonction json_decode() ou SimpleXML).

Exemple #1 Exemple de propriété variable

<?php
class foo {
    var $bar = 'I am bar.';
    var $arr = array('I am A.', 'I am B.', 'I am C.');
    var $r   = 'I am r.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo $foo->$bar . "\n";
echo $foo->$baz[1] . "\n";

$start = 'b';
$end   = 'ar';
echo $foo->{$start . $end} . "\n";

$arr = 'arr';
echo $foo->$arr[1] . "\n";
echo $foo->{$arr}[1] . "\n";
?>

L'exemple ci-dessus va afficher :

I am bar.
I am bar.
I am bar.
I am r.
I am B.

Avertissement

Notez que les variables dynamiques ne peuvent pas être utilisées avec les tableaux Superglobaux dans une fonction ou une classe. La variable $this est aussi une variable spéciale qui ne peut être référencée dynamiquement.


Variables externes à PHP

Formulaires HTML (GET et POST)

Lorsqu'un formulaire est envoyé à un script PHP, toutes les variables du formulaire seront automatiquement disponibles dans le script. Il y a peu de façon pour récupérer ces informations, par exemple :

Exemple #1 Exemple avec un formulaire simple

<form action="foo.php" method="post">
    Nom  :  <input type="text" name="username" /><br />
    Email: <input type="text" name="email" /><br />
    <input type="submit" name="submit" value="Envoie!" />
</form>

Depuis PHP 5.4.0, il n'y a plus que deux façons d'accéder aux données provenant d'un formulaire HTML. Les voici :

Exemple #2 Accéder simplement à des variables de formulaires POST

<?php
echo $_POST['username'];
echo $_REQUEST['username'];
?>

Il existait d'autres façons d'accéder à ces données dans les anciennes versions de PHP. Les voici : (reportez-vous à l'historique en fin de page pour plus de détais)

Exemple #3 Anciennes méthodes pour accéder aux entrées utilisateur

<?php
// Attention : ces méthodes NE SONT PLUS SUPPORTEES.
// Les méthodes valides sont décrites ci-dessus.

// Utilisation de import_request_variables() - cette fonction a été supprimée en PHP 5.4.0
   import_request_variables('p', 'p_');
   echo $p_username;

// Ces variables pré-définies ont été supprimées en PHP 5.4.0
   echo $HTTP_POST_VARS['username'];

// L'utilisation de register_globals. Cette fonctionalité a été supprimée en PHP 5.4.0.
   echo $username;
?>

Utiliser un formulaire de type GET est similaire, hormis le fait que vous deviez utiliser les variables pré-définies de GET à la place. GET s'applique aussi à la QUERY_STRING (les informations disponibles après le '?' dans une URL). De ce fait, par exemple, http://www.example.com/test.php?id=3 contient les données de GET, qui sont accessibles via $_GET['id']. Voyez aussi $_REQUEST.

Note:

Les points et les espaces dans les noms de variables sont convertis en underscores. Par exemple, <input name="a.b" /> deviendra $_REQUEST["a_b"].

PHP comprend aussi les tableaux dans le contexte des formulaires. (voir aussi la FAQ). Vous pouvez, par exemple, grouper des variables ensemble ou bien utiliser cette fonctionnalité pour lire des valeurs multiples d'un menu déroulant. Par exemple, voici un formulaire qui se poste lui-même des données, et les affiche :

Exemple #4 Variables de formulaires complexes

<?php
if ($_POST) {
    echo '<pre>';
    echo htmlspecialchars(print_r($_POST, true));
    echo '</pre>';
}
?>
<form action="" method="post">
    Name:  <input type="text" name="personal[name]" /><br />
    Email: <input type="text" name="personal[email]" /><br />
    Beer: <br />
    <select multiple name="beer[]">
        <option value="warthog">Warthog</option>
        <option value="guinness">Guinness</option>
        <option value="stuttgarter">Stuttgarter Schwabenbräu</option>
    </select><br />
    <input type="submit" value="Validez moi !" />
</form>

Nom de variables IMAGE de type SUBMIT

Lors de la soumission d'un formulaire, il est possible d'utiliser une image au lieu d'un bouton standard, comme ceci :

<input type="image" src="image.gif" name="sub" />

Lorsque l'utilisateur clique sur cette image, le formulaire associé est envoyé au serveur, avec deux données supplémentaires, sub_x et sub_y. Elles contiennent les coordonnées du clic de l'utilisateur dans l'image. Vous noterez que ces variables sont envoyées par le navigateur avec un point dans leur nom, mais PHP convertit ces points en soulignés.

Cookies HTTP

PHP supporte les cookies HTTP de manière totalement transparente, comme défini dans la » RFC 6265. Les cookies sont un mécanisme permettant de stocker des données sur la machine cliente à des fins d'identification de l'utilisateur. Vous pouvez établir un cookie grâce à la fonction setcookie(). Les cookies font partie intégrante des en-têtes HTTP et donc la fonction setcookie() doit être appelée avant que le moindre affichage ne soit envoyé au navigateur. C'est la même restriction que pour la fonction header(). Les données contenus dans les cookies sont alors disponibles dans les tableaux de cookies appropriés, comme $_COOKIE mais aussi $_REQUEST. Lisez la page de la documentation sur la fonction setcookie() pour plus de détails ainsi que des exemples.

Si vous souhaitez assigner plusieurs valeurs à un seul cookie, vous devez l'assigner sous forme de tableau. Par exemple :

<?php
setcookie("MyCookie[foo]", 'Test 1', time()+3600);
setcookie("MyCookie[bar]", 'Test 2', time()+3600);
?>

Cela va créer deux cookies distincts bien que MyCookie est maintenant un simple tableau dans votre script. Si vous voulez définir seulement un cookie avec plusieurs valeurs, utilisez la fonction serialize() ou explode() sur la première valeur.

Il est à noter qu'un cookie remplace le cookie précédent par un cookie de même nom tant que le chemin ou le domaine sont identiques. Donc, pour une application de panier, vous devez implémenter un compteur et l'incrémenter au fur et à mesure. C'est-à-dire :

Exemple #5 Exemple avec setcookie()

<?php
if (isset($_COOKIE['compte'])) {
    $compte = $_COOKIE['compte'] + 1;
} else {
    $compte = 1;
}
setcookie('Panier', $compte, time()+3600);
setcookie("Panier[$compte]", $item, time()+3600);
?>

Cas des points dans les noms de variables

Typiquement, PHP ne modifie pas les noms des variables lorsqu'elles sont passées à un script. Cependant, il faut noter que les points (.) ne sont pas autorisés dans les noms de variables PHP. Pour cette raison, jetez un oeil sur :

<?php
  $varname.ext;  /* nom de variable invalide */
?>
Dans ce cas, l'analyseur croit voir la variable nommée $varname, suivie par l'opérateur de concaténation, et suivie encore par la chaîne sans guillemets (une chaîne sans guillemets et qui n'a pas de signification particulière). Visiblement, ce n'est pas ce qu'on attendait...

Pour cette raison, il est important de noter que PHP remplacera automatiquement les points des noms de variables entrantes par des soulignés.

Détermination du type des variables

Parce que PHP détermine le type des variables et les convertit (généralement) comme il faut, ce n'est pas toujours le type de variable que vous souhaitez. PHP inclut des fonctions permettant de déterminer le type d'une variable : gettype(), is_array(), is_float(), is_int(), is_object() et is_string(). Lisez également le chapitre sur les types.

Historique

Version | Description
5.4.0 | Register Globals, Magic Quotes et register_long_arrays ont été supprimés.
5.3.0 | Register Globals, Magic Quotes et register_long_arrays sont devenus obsolètes.
4.2.0 | La directive register_globals vaut par défaut off.
4.1.0 | Les tableaux super-globaux, comme $_POST et $_GET deviennent disponibles.


Les constantes

Sommaire

  • Syntaxe
  • Constantes magiques

Une constante est un identifiant (un nom) qui représente une valeur simple. Comme son nom le suggère, cette valeur ne peut jamais être modifiée durant l'exécution du script (sauf les constantes magiques). Par défaut, le nom d'une constante est sensible à la casse. Par convention, les constantes sont toujours en majuscules.

Les noms de constantes suivent les mêmes règles que n'importe quel nom en PHP. Un nom de constante valide commence par une lettre ou un souligné, suivi d'un nombre quelconque de lettres, chiffres ou soulignés. Sous forme d'expression régulière, cela peut s'exprimer comme ceci : [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Astuce

Vous pourriez également avoir besoin de jeter un oeil sur Guide de nommage de l'espace utilisateur.

Exemple #1 Noms valides et invalides pour les constantes

<?php
// Noms valides
define("FOO",     "something");
define("FOO2",    "something else");
define("FOO_BAR", "something more");

// Noms invalides
define("2FOO",    "something");

// Ce nom est valide, mais évitez-le:
// PHP peut un jour fournir une constante magique nommée
// ainsi, ce qui va corrompre vos scripts.
define("__FOO__", "something");

?>

Note: Dans cette documentation, une lettre peut être un des caractères suivants : de a à z, de A à Z et tous les caractères ASCII de 127 à 255 (0x7f-0xff).

Tout comme les superglobals, les constantes sont accessibles de manière globale. Vous pouvez les définir n'importe où, et y accéder depuis n'importe quelle fonction. Pour plus d'informations sur le contexte, lisez la section du manuel sur la portée des variables.


Syntaxe

Vous pouvez définir une constante en utilisant la fonction define() ou en utilisant le mot-clé const en dehors d'une définition de classe à partir de PHP 5.3.0. Une fois qu'une constante est définie, elle ne peut jamais être modifiée, ou détruite.

En PHP 5.5 et antérieurs, seuls les types de données scalaires peuvent être placés dans une constante : c'est à dire les types booléen, entier, double et chaîne de caractères (soit bool, entier, double et string). Avec PHP 5.6 et suivants, il est possible de définir une constante comme une expression scalaire, il est également possible de définir une constante de type tableau. Il est possible de définir des constantes en tant que resource, mais cet usage est déconseillé, car il peut mener à des résultats inattendus.

Vous pouvez accéder à la valeur d'une constante en spécifiant simplement son nom. Contrairement aux variables, vous ne devez PAS préfixer le nom de la constante avec $. Vous pouvez aussi utiliser la fonction constant(), pour lire dynamiquement la valeur d'une constante, dont vous obtenez le nom dynamiquement (retour de fonction, par exemple). Utilisez la fonction get_defined_constants() pour connaître la liste de toutes les constantes définies.

Note: Les constantes et les variables globales utilisent deux espaces de noms différents. Ce qui implique que TRUE et $TRUE sont généralement différents (en tous cas, ils peuvent avoir des valeurs différentes).

Si vous utilisez une constante non définie, PHP considère que vous souhaitez uniquement le nom de la constante elle-même, comme si vous l'appeliez comme étant une chaîne de caractères (CONSTANT vs "CONSTANT"). Une alerte de type E_NOTICE sera émise lorsque ce cas se produit. Lisez également l'entrée du manuel qui explique pourquoi $foo[bar] est faux (tant que vous ne définissez pas bar comme étant une constante). Si vous voulez simplement vérifier qu'une constante est définie, utilisez la fonction defined().

Il y a des différences entre les constantes et les variables :

  • Les constantes ne commencent pas par le signe ($).
  • Avant PHP 5.3, les constantes ne pouvaient être définies qu'en utilisant la fonction define(), pas par simple assignement.
  • Les constantes sont définies et accessibles à tout endroit du code, globalement.
  • Les constantes ne peuvent pas être redéfinies ou indéfinies une fois qu'elles ont été définies.
  • Les constantes ne peuvent contenir que des scalaires. Depuis PHP 5.6, il est possible de définir des constantes de tableaux en utilisant le mot clé const et, depuis PHP 7, les constantes de tableaux peuvent aussi être définies en utilisant define(). Vous pouvez utiliser des tableaux dans les expressions scalaires des constantes (par exemple, const FOO = array(1,2,3)[0];), mais le résultat final doit être une valeur scalaire de type autorisé.

Exemple #1 Définir une constante

<?php
  define("CONSTANTE", "Bonjour le monde.");
  echo CONSTANTE; // affiche "Bonjour le monde."
  echo Constante; // affiche "Constante" et une notice.
?>

Exemple #2 Définir des constantes en utilisant le mot-clé const

<?php
// Fonctionne depuis PHP 5.3.0
const CONSTANT = 'Bonjour le monde !';

echo CONSTANT;

// Fonctionne depuis PHP 5.6.0
const ANOTHER_CONST = CONSTANT.'; Aurevoir le monde !';
echo ANOTHER_CONST;

const ANIMALS = array('chien', 'chat', 'oiseaux');
echo ANIMALS[1]; // affiche "chat"

// Fonctione depuis PHP 7
define('ANIMALS', array(
    'chien',
    'chat',
    'oiseaux'
));
echo ANIMALS[1]; // affiche "chat"
?>

Note:

Contrairement aux constantes définies en utilisant l'instruction define(), les constantes définies en utilisant le mot-clé const doivent être déclarées au plus haut niveau du contexte, car elles seront définies au moment de la compilation. Cela signifie qu'elles ne peuvent être déclarées à l'intérieur de fonctions, boucles, instructions if ou blocs try/catch.

Voir aussi les constantes de classe.


Constantes magiques

PHP fournit un grand nombre de constantes magiques. Certaines constantes sont définies par différentes extensions, et ne seront présentes que si ces extensions sont compilées avec PHP, ou bien si l'extension a été chargée dynamiquement.

Il y a huit constantes magiques qui changent suivant l'emplacement où elles sont utilisées. Par exemple, la valeur de __LINE__ dépend de la ligne où vous l'utilisez dans votre script. Ces constantes spéciales sont insensibles à la casse.

Quelques constantes PHP magiques
Nom | Description
__LINE__ | La ligne courante dans le fichier.
__FILE__ | Le chemin complet et le nom du fichier courant avec les liens symboliques résolus. Si utilisé pour une inclusion, le nom du fichier inclus est retourné.
__DIR__ | Le dossier du fichier. Si utilisé dans une inclusion, le dossier du fichier inclus sera retourné. C'est l'équivalent de dirname(__FILE__). Ce nom de dossier ne contiendra pas de slash final, sauf si c'est le dossier racine.
__FUNCTION__ | Le nom de la fonction.
__CLASS__ | Le nom de la classe courante. Le nom de la classe contient l'espace de nom dans lequel cette classe a été déclarée (i.e. Foo\Bar). Notez que depuis PHP 5.4, __CLASS__ fonctionne aussi dans les traits. Lorsqu'elle est utilisée dans une méthode de trait, __CLASS__ est le nom de la classe dans laquelle le trait est utilisé.
__TRAIT__ | Le nom du trait. Le nom du trait inclut l'espace de nom dans lequel il a été déclaré (e.g. Foo\Bar).
__METHOD__ | Le nom de la méthode courante.
__NAMESPACE__ | Le nom de l'espace de noms courant.

Voir aussi
get_class(),
get_object_vars(),
file_exists() et
function_exists().

Historique

Version | Description
5.4.0 | Ajout de la constante __TRAIT__
5.3.0 | Ajout des constantes __DIR__ et __NAMESPACE__
5.0.0 | Ajout de la constante __METHOD__
5.0.0 | Avant cette version, les valeurs de quelques constantes magiques étaient toujours en minuscule. Toutes sont désormais insensibles à la casse (contiennent les noms tels qu'ils ont été déclarés).
4.3.0 | Ajout des constantes __FUNCTION__ et __CLASS__
4.0.2 | La constante __FILE__ contient toujours un chemin absolu avec les liens sympboliques résolus, alors que dans les anciennes versions et dans quelques circonstances, elle pouvait contenir un chemin relatif


Les expressions

Les expressions sont la partie la plus importante de PHP. En PHP, presque tout ce que vous écrivez est une expression. La manière la plus simple de définir une expression est : "tout ce qui a une valeur".

Les formes les plus simples d'expressions sont les constantes et les variables. Lorsque vous écrivez "$a = 5", vous assignez la valeur '5' à la variable $a. Bien évidemment, '5' vaut 5 ou, en d'autres termes, '5' est une expression avec pour valeur 5 (dans ce cas, '5' est un entier constant).

Après cette assignation, vous pouvez considérer que $a a pour valeur 5 et donc, écrire $b = $a, revient à écrire $b = 5. En d'autres termes, $a est une expression avec une valeur de 5. Si tout fonctionne correctement, c'est exactement ce qui arrive.

Un exemple plus complexe concerne les fonctions. Par exemple, considérons la fonction suivante :

<?php
function foo ()
{
    return 5;
}
?>

En supposant que vous êtes familiers avec le concept de fonction, (si ce n'est pas le cas, jetez un oeil au chapitre concernant les fonctions), vous serez d'accord que $c = foo() est équivalent à $c = 5, et vous aurez tout à fait raison. Les fonctions sont des expressions qui ont la valeur de leur "valeur de retour". Si foo() renvoie 5, la valeur de l'expression 'foo()' est 5. Habituellement, les fonctions ne font pas que renvoyer une valeur constante mais réalisent des traitements.

Bien sûr, les valeurs en PHP n'ont pas à être des valeurs numériques, comme c'est souvent le cas. PHP supporte quatre types de variables scalaires : les valeurs entières (entier), les nombres à virgule flottante (float), les chaînes de caractères (chaîne de caractères) et les booléens (boolean). (une variable scalaire est une variable que vous ne pouvez pas scinder en morceaux, au contraire des tableaux par exemple). PHP supporte aussi deux types composés : les tableaux et les objets. Chacun de ces types de variables peut être affecté ou renvoyé par une fonction.

PHP va plus loin dans la gestion des expressions, comme le font d'autres langages. PHP est un langage orienté expression, dans le sens où presque tout est une expression. Considérons l'exemple dont nous avons déjà parlé, '$a = 5'. Il est facile de voir qu'il y a deux valeurs qui entrent en jeu ici, la valeur numérique constante '5' et la valeur de la variable $a qui est mise à jour à la valeur 5. Mais, la vérité est qu'il y a une autre valeur qui entre en jeu ici et c'est la valeur de l'assignation elle-même. L'assignation elle-même est assignée à une valeur, dans ce cas-là 5. En pratique, cela signifie que '$a = 5' est une expression qui a pour valeur 5. Donc, écrire '$b = ($a = 5)' revient à écrire '$a = 5; $b = 5;' (un point virgule marque la fin d'une instruction). Comme les assignations sont analysées de droite à gauche, vous pouvez aussi bien écrire '$b = $a = 5'.

Un autre bon exemple du langage orienté expression est la pre-incrémentation et la post-incrémentation, (ainsi que la décrémentation). Les utilisateurs de PHP et ceux de nombreux autres langages sont habitués à la notation "variable++" et "variable--". Ce sont les opérateurs d'incrémentation et de décrémentation. PHP ajoute les possibilités d'incrémentation et de décrémentation comme c'est le cas dans le langage C. En PHP, comme en C, il y a deux types d'opérateurs d'incrémentation (pre-incrémentation et post-incrémentation). Les deux types d'opérateur d'incrémentation jouent le même rôle (c'est-à-dire qu'ils incrémentent la variable). La différence vient de la valeur de l'opérateur d'incrémentation. L'opérateur de pre-incrémentation, qui s'écrit '++$variable', évalue la valeur incrémentée (PHP incrémente la variable avant de lire la valeur de cette variable, d'où le nom de pre-incrémentation). L'opérateur de post-incrémentation, qui s'écrit '$variable++', évalue la valeur de la variable avant de l'incrémenter (PHP incrémente la variable après avoir lu sa valeur, d'où le nom de post-incrémentation).

Un type d'expression très commun est l'expression de comparaison. Ces expressions sont évaluées à 0 ou 1, autrement dit FALSE ou TRUE, respectivement. PHP supporte les opérateurs de comparaison > (plus grand que), => (plus grand ou égal), == (égal à), < (plus petit que), <= (plus petit ou égal). Ces expressions sont utilisées de manière courante dans les instructions conditionnelles, comme l'instruction if.

Pour le dernier exemple d'expression, nous allons parler des combinaisons d'opérateurs/assignation. Vous savez que si vous voulez incrémenter la variable $a d'une unité, vous devez simplement écrire '$a++' ou '++$a'. Mais si vous voulez ajouter la valeur '3' à votre variable ? Vous pouvez écrire plusieurs fois '$a++', mais ce n'est pas la meilleure des méthodes. Un pratique plus courante est d'écrire '$a = $a + 3'. L'expression '$a + 3' correspond à la valeur $a plus 3, et est de nouveau assignée à la variable $a. Donc, le résultat est l'incrémentation de 3 unités de la variable $a. En PHP, comme dans de nombreux autres langages comme le C, vous pouvez écrire cela de manière plus concise, manière qui avec le temps se révélera plus claire et plus rapide à comprendre. Ajouter 3 à la valeur de la variable $a peut s'écrire '$a += 3'. Cela signifie précisément : "on prend la valeur de la variable $a, on ajoute la valeur 3 et on assigne cette valeur à la variable $a". Et pour être plus concis et plus clair, cette expression est plus rapide. La valeur de l'expression '$a += 3', comme l'assignation d'une valeur quelconque, est la valeur assignée. Il est à noter que ce n'est pas 3 mais la combinaison de la valeur de la variable $a plus la valeur 3. (c'est la valeur qui est assignée à la variable $a). N'importe quel opérateur binaire peut utiliser ce type d'assignation, par exemple '$a -= 5' (soustraction de 5 de la valeur de la variable $a), '$b *= 7' (multiplication de la valeur de la variable $b par 7).

Il y a une autre expression qui peut paraître complexe si vous ne l'avez pas vue dans d'autres langages, l'opérateur conditionnel ternaire :

<?php
$first ? $second : $third
?>

Si la valeur de la première sous-expression est vraie (TRUE) (différente de 0), alors la deuxième sous-expression est évaluée et constitue le résultat de l'expression conditionnelle. Sinon, c'est la troisième sous-expression qui est évaluée et qui constitue le résultat de l'expression.

Les exemples suivants devraient vous permettre de mieux comprendre la pre-incrémentation, la post-incrémentation et le concept des expressions en général :

<?php
function double($i)
{
    return $i*2;
}

$b = $a = 5;        /* Assigne la valeur 5 aux variables $a et $b  */
$c = $a++;          /* Post-incrémentation de la variable $a et assignation de
                       la valeur à la variable $c */
$e = $d = ++$b;     /* Pre-incrémentation, et assignation de la valeur aux
                       variables $d et $e  */
/* à ce niveau, les variables $d et $e sont égales à 6 */
$f = double($d++);  /* assignation du double de la valeur de $d à la variable $f ($f vaut 12),
                       puis incrémentation de la valeur de $d  */
$g = double(++$e);  /* assigne deux fois la valeur de $e après
                       incrémentation, 2*7 = 14 to $g */
$h = $g += 10;      /* Tout d'abord, $g est incrémentée de 10, et donc $g vaut 24.
                       Ensuite, la valeur de $g, (24) est assignée à la variable $h,
                       qui vaut donc elle aussi 24. */
?>

Au début de ce chapitre, nous avons dit que nous allions décrire les différents types d'instructions, et donc, comme promis, nous allons voir que les expressions peuvent être des instructions. Mais attention, toutes les expressions ne sont pas des instructions. Dans ce cas-là, une instruction est de la forme 'expr ;', c'est-à-dire, une expression suivie par un point-virgule. Dans '$b = $a = 5;', '$a = 5' est une expression valide, mais ce n'est pas une instruction en elle-même. '$b = $a = 5;' est une instruction valide.

La dernière chose qui mérite d'être mentionnée est la véritable valeur des expressions. Lorsque vous faites des tests sur une variable, dans une boucle conditionnelle par exemple, cela ne vous intéresse pas de savoir quelle est la valeur exacte de l'expression. Mais vous voulez seulement savoir si le résultat signifie TRUE ou FALSE Les constantes TRUE et FALSE (insensible à la casse) sont les deux valeurs possibles pour un booléen. Lorsque nécessaire, une expression est automatiquement convertie en booléen. Lisez la section sur le transtypage pour plus de détails.

PHP propose une implémentation complète et détaillée des expressions. PHP documente toutes ses expressions dans le manuel que vous êtes en train de lire. Les exemples qui vont suivre devraient vous donner une bonne idée de ce qu'est une expression et comment construire vos propres expressions. Dans tout ce qui va suivre, nous écrirons expr pour indiquer toute expression PHP valide.


Les opérateurs

Sommaire

  • La précédence des opérateurs
  • Les opérateurs arithmétiques
  • Les opérateurs d'affectation
  • Opérateurs sur les bits
  • Opérateurs de comparaison
  • Opérateur de contrôle d'erreur
  • Opérateur d'exécution
  • Opérateurs d'incrémentation et décrémentation
  • Les opérateurs logiques
  • Opérateurs de chaînes
  • Opérateurs de tableaux
  • Opérateurs de types

Un opérateur est quelque chose qui prend une ou plusieurs valeurs (ou expressions, dans le jargon de la programmation) et qui retourne une autre valeur (donc la construction elle-même devient une expression).

Les opérateurs peuvent être regroupés en fonction du nombre de valeurs qu'ils acceptent. L'opérateur unaire n'opère que sur une seule valeur, par exemple ! (l'opérateur de négation) ou ++ (l'opérateur d'incrémentation). Le second type, les opérateurs binaires (comme le très célèbre opérateur mathématique + ou -) contient la plupart des opérateurs supportés par PHP. Enfin, l'opérateur ternaire, ? :, qui accepte trois valeurs (on peut aussi l'appeler l'opérateur conditionnel).

Une liste complète des opérateurs se trouve dans la section précédence des opérateurs. Cette section explique aussi la précédence des opérateurs et l'associativité, c'est à dire les priorités d'exécution des opérateurs.


La précédence des opérateurs

La priorité des opérateurs spécifie l'ordre dans lequel les valeurs doivent être analysées. Par exemple, dans l'expression 1 + 5 * 3, le résultat est 16 et non 18, car la multiplication ("*") a une priorité supérieure par rapport à l'addition ("+"). Des parenthèses peuvent être utilisées pour forcer la priorité, si nécessaire. Par exemple : (1 + 5) * 3 donnera 18.

Lorsque les opérateurs ont une précédence égale, leur association décide la façon dont les opérateurs sont groupés. Par exemple, "-" est une association par la gauche, ainsi 1 - 2 - 3 est groupé comme ceci (1 - 2) - 3 et sera évalué à -4. D'un autre côté, "=" est une association par la droite, ainsi, $a = $b = $c est groupé comme ceci $a = ($b = $c).

Les opérateurs de précédence égale qui ne sont pas associatifs, ne peuvent pas être utilisés entre eux, par exemple, 1 < 2 > 1 est interdit en PHP. L'expression 1 <= 1 == 1 par contre, est autorisée, car l'opérateur == a une précédence inférieure que l'opérateur <=.

L'utilisation des parenthèses, y compris lorsqu'elles ne sont pas nécessaires, permet de mieux lire le code en effectuant des groupements explicites plutôt qu'imaginer la précédence des opérateurs et leurs associations.

Le tableau qui suit liste les opérateurs par ordre de précédence, avec la précédence la plus élevée en haut. Les opérateurs sur la même ligne ont une précédence équivalente (donc l'associativité décide du groupement).

Précédence des opérateurs
Associativité | Opérateurs | Information additionnelle
non-associative | clone new | clone et new
gauche | [ | array()
droite | ** | arithmétique
droite | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | types et incrément/décrément
non-associatif | instanceof | types
droite | ! | logique
gauche | * / % | arithmétique
gauche | + - . | arithmétique et chaîne de caractères
gauche | << >> | bitwise
non-associatif | < <= > >= | comparaison
non-associatif | == != === !== <> | comparaison
gauche | & | bitwise et références
gauche | ^ | bitwise
gauche | | | bitwise
gauche | && | logique
gauche | || | logique
gauche | ? : | ternaire
droite | = += -= *= **= /= .= %= &= |= ^= <<= >>= => | affectation
gauche | and | logique
gauche | xor | logique
gauche | or | logique
gauche | , | plusieurs utilisations

Exemple #1 Associativité

<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
// L'association des opérateurs ternaires diffère de C/C++
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2

$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
?>

La précédence et l'association de l'opérateur ne détermine que la façon dont les expressions sont groupées ; ils ne spécifient pas l'ordre de l'évaluation. PHP ne spécifie pas (de manière générale) l'ordre dans lequel une expression est évaluée et le code qui suppose un ordre spécifique d'évaluation ne devrait pas exister, car le comportement peut changer entre les différentes versions de PHP ou suivant le code environnant.

Exemple #2 Ordre d'évaluation indéfini

<?php
$a = 1;
echo $a + $a++; // peut afficher 2 ou 3

$i = 1;
$array[$i] = $i++; // peut définir l'index 1 ou 2
?>

Note:

Bien que = soit prioritaire sur la plupart des opérateurs, PHP va tout de même exécuter des expressions comme : if (!$a = foo()). Dans cette situation, le résultat de foo() sera placé dans la variable $a.


Les opérateurs arithmétiques

Vous rappelez-vous des opérations élémentaires apprises à l'école ? Les opérateurs arithmétiques fonctionnent comme elles.

Opérations élémentaires
Exemple | Nom | Résultat
-$a | Négation | Opposé de $a.
$a + $b | Addition | Somme de $a et $b.
$a - $b | Soustraction | Différence de $a et $b.
$a * $b | Multiplication | Produit de $a et $b.
$a / $b | Division | Quotient de $a et $b.
$a % $b | Modulo | Reste de $a divisé par $b.
$a ** $b | Exponentielle | Résultat de l'élévation de $a à la puissance $b. Introduit en PHP 5.6.

L'opérateur de division ("/") retourne une valeur à virgule flottante sauf si les 2 opérandes sont des entiers (ou une chaîne de caractères qui a été convertie en entiers) et que leur division est exacte (i.e. a pour reste 0), auquel cas une valeur entière sera retournée.

Les opérandes du modulo sont converties en entiers (en supprimant la partie décimale) avant exécution.

Le résultat de l'opération modulo % a le même signe que le premier opérande, ansi le résultat de $a % $b aura le signe de $a. Par exemple:

<?php

echo (5 % 3)."\n";           // affiche 2
echo (5 % -3)."\n";          // affiche 2
echo (-5 % 3)."\n";          // affiche -2
echo (-5 % -3)."\n";         // affiche -2

?>

Voir aussi le manuel sur les fonctions mathématiques.


Les opérateurs d'affectation

L'opérateur d'affectation le plus simple est le signe "=". Le premier réflexe est de penser que ce signe veut dire "égal à". Ce n'est pas le cas. Il signifie que l'opérande de gauche se voit affecter la valeur de l'expression qui est à droite du signe égal.

La valeur d'une expression d'affectation est la valeur affectée. Par exemple, la valeur de l'expression '$a = 3' est la valeur 3. Cela permet d'utiliser des astuces telles que :

<?php
$a = ($b = 4) + 5;
// $a est maintenant égal à 9, et $b vaut 4.
?>

Pour les arrays, affecter une valeur à une clé donnée est effectué au moyen de l'opérateur "=>". La précédence de cet opérateur est la même que celle des opérateurs d'affectation.

En plus du simple opérateur d'affectation, il existe des "opérateurs combinés" pour tous les opérateurs arithmétiques, l'union de tableaux et pour les opérateurs sur les chaînes de caractères. Cela permet d'utiliser la valeur d'une variable dans une expression et d'affecter le résultat de cette expression à cette variable. Par exemple :

<?php
$a = 3;
$a += 5; // affecte la valeur 8 à la variable $a correspond à l'instruction '$a = $a + 5';
$b = "Bonjour ";
$b .= " tout le monde!";  // affecte la valeur "Bonjour tout le monde!" à
                                    //  la variable $b
                                    //  identique à $b = $b." tout le monde!";

?>

On peut noter que l'affectation copie le contenu de la variable originale dans la nouvelle variable (affectation par valeur), ce qui fait que les changements de valeur d'une variable ne modifieront pas la valeur de l'autre. Cela peut se révéler important lors de la copie d'un grand tableau durant une boucle.

Une exception au comportement d'affectation par valeur en PHP est le type object, ceux-ci sont affectés par référence dans PHP 5. La copie d'objet doit être explicitement demandée grâce au mot-clé clone.

Affectation par référence

L'affectation par référence est aussi supportée, au moyen de la syntaxe "$var = &$othervar;". L'affectation par référence signifie que les deux variables pointent vers le même conteneur de donnée, rien n'est copié nulle part.

Exemple #1 Affectation par référence

<?php
$a = 3;
$b = &$a; // $b est une référence à $a

print "$a\n"; // affiche 3
print "$b\n"; // affiche 3

$a = 4; // change $a

print "$a\n"; // affiche 4
print "$b\n"; // affiche 4 aussi, car $b est une référence à $a, qui a été
              // changée
?>

Depuis PHP 5, l'opérateur new retourne une référence automatiquement, donc affecter le résultat de new par référence retournera une erreur E_DEPRECATED depuis PHP 5.3, et une erreur de niveau E_STRICT avant PHP 5.3.

Par exemple, ce code génère un message d'erreur:

<?php
class C {}

/* La ligne suivante génère une erreur dont le message est:
 * Deprecated: Assigning the return value of new by reference is deprecated in...
 */
$o = &new C;
?>

Plus d'informations sur les références et leurs utilisations possibles peuvent être trouvées dans la section du manuel Les références expliquées.


Opérateurs sur les bits

Les opérateurs sur les bits vous permettent de manipuler les bits dans un entier.

Les opérateurs sur les bits
Exemple | Nom | Résultat
$a & $b | And (Et) | Les bits positionnés à 1 dans $a ET dans $b sont positionnés à 1.
$a | $b | Or (Ou) | Les bits positionnés à 1 dans $a OU $b sont positionnés à 1.
$a ^ $b | Xor (ou exclusif) | Les bits positionnés à 1 dans $a OU dans $b mais pas dans les deux sont positionnés à 1.
~ $a | Not (Non) | Les bits qui sont positionnés à 1 dans $a sont positionnés à 0, et vice-versa.
$a << $b | Décalage à gauche | Décale les bits de $a, $b fois sur la gauche (chaque décalage équivaut à une multiplication par 2).
$a >> $b | Décalage à droite | Décalage les bits de $a, $b fois par la droite (chaque décalage équivaut à une division par 2).

Le décalage de bits en PHP est arithmétique. Les bits qui sont décalés hors de l'entier sont perdus. Les décalages à gauche font apparaître des zéros à droite, tandis que le bit de signe est décalé à gauche, ce qui signifie que le signe de l'entier n'est pas préservé. Les décalages à droite décalent aussi le bit de signe sur la droite, ce qui signifie que le signe est préservé.

Utilisez des parenthèses pour vous assurer que la précédence voulue est bien appliquée. Par exemple, $a & $b == true applique d'abord l'égalité, et ensuite le ET logique, alors que ($a & $b) == true applique d'abord le ET logique, puis l'égalité.

Si les deux opérandes pour les opérateurs &, | et ^ sont des chaines de caractères, alors l'opération sera réalisée sur les valeurs ASCII des caractères et le résultat sera une chaine de caractères. Dans tous les autres cas, les deux opérandes seront converties en entier et le résultat sera un entier.

Si l'opérande pour l'opérateur ~ operator est une chaine de caractères, l'opération sera effectuée sur les caractères ASCII composant la chaine et le résultat sera une chaine de caractères. Sinon l'opérande et le résultat seront traités comme des entiers.

Les opérandes et le résultat des opérateurs << et >> sont traités comme des entiers.

      Le rapport d'erreur de PHP utilise des champs de bits,
      qui sont une illustration de l'extinction des bits.
      Pour afficher les erreurs, sauf les notices, les
      instructions du php.ini sont :
      E_ALL & ~E_NOTICE

      Cela se comprend en comparant avec E_ALL :
      00000000000000000111011111111111
      Puis en éteignant la valeur de E_NOTICE...
      00000000000000000000000000001000
      ... et en l'inversant via ~:
      11111111111111111111111111110111
      Finalement, on utilise le ET logique (&) pour lire les bits activés
      dans les deux valeurs :
      00000000000000000111011111110111

      Un autre moyen d'arriver à ce résultat est d'utiliser
      le OU exclusif (^), qui cherche
      les bits qui ne sont activés que dans l'une ou l'autre des
      valeurs, exclusivement :
      E_ALL ^ E_NOTICE

      error_reporting peut aussi être utilisé pour
      illustrer l'activation de bits. Pour afficher
      uniquement les erreurs et les erreurs recouvrables,
      on utilise :
      E_ERROR | E_RECOVERABLE_ERROR

      Cette approche combine E_ERROR
      00000000000000000000000000000001
      et E_RECOVERABLE_ERROR
      00000000000000000001000000000000
      Avec l'opérateur OR (|) pour s'assurer que
      les bits sont activés dans l'une ou l'autre valeur :
      00000000000000000001000000000001

Exemple #1 Opérations sur les bits et les entiers

<?php
/*
 * Ignorez cette partie,
 * c'est juste du formatage pour clarifier les résultats
 */

$format = '(%1$2d = %1$04b) = (%2$2d = %2$04b)'
        . ' %3$s (%4$2d = %4$04b)' . "\n";

echo <<<EOH
 ---------     ---------  -- ---------
 resultat       valeur        test
 ---------     ---------  -- ---------
EOH;

/*
 * Voici les exemples
 */

$values = array(0, 1, 2, 4, 8);
$test = 1 + 4;

echo "\n Bitwise AND \n";
foreach ($values as $value) {
    $result = $value & $test;
    printf($format, $result, $value, '&', $test);
}

echo "\n Bitwise Inclusive OR \n";
foreach ($values as $value) {
    $result = $value | $test;
    printf($format, $result, $value, '|', $test);
}

echo "\n Bitwise Exclusive OR (XOR) \n";
foreach ($values as $value) {
    $result = $value ^ $test;
    printf($format, $result, $value, '^', $test);
}
?>

L'exemple ci-dessus va afficher :

---------     ---------  -- ---------
 resultat       valeur        test
 ---------     ---------  -- ---------
 Bitwise AND
( 0 = 0000) = ( 0 = 0000) & ( 5 = 0101)
( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101)
( 0 = 0000) = ( 2 = 0010) & ( 5 = 0101)
( 4 = 0100) = ( 4 = 0100) & ( 5 = 0101)
( 0 = 0000) = ( 8 = 1000) & ( 5 = 0101)

 Bitwise Inclusive OR
( 5 = 0101) = ( 0 = 0000) | ( 5 = 0101)
( 5 = 0101) = ( 1 = 0001) | ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) | ( 5 = 0101)
( 5 = 0101) = ( 4 = 0100) | ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) | ( 5 = 0101)

 Bitwise Exclusive OR (XOR)
( 5 = 0101) = ( 0 = 0000) ^ ( 5 = 0101)
( 4 = 0100) = ( 1 = 0001) ^ ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) ^ ( 5 = 0101)
( 1 = 0001) = ( 4 = 0100) ^ ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) ^ ( 5 = 0101)

Exemple #2 Opération sur les bits et les chaînes

<?php
echo 12 ^ 9; // Affiche '5'

echo "12" ^ "9"; // Affiche le caractère d'effacement (ascii 8)
                 // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" ^ "hello"; // Affiche les valeurs ASCII #0 #4 #0 #0 #0
                        // 'a' ^ 'e' = #4

echo 2 ^ "3"; // Affiche 1
              // 2 ^ ((int)"3") == 1

echo "2" ^ 3; // Affiche 1
              // ((int)"2") ^ 3 == 1
?>

Exemple #3 Décalage de bits sur les entiers

<?php
/*
 * Voici quelques exemples
 */

echo "\n--- Décalages à droite sur des entiers positifs ---\n";

$val = 4;
$places = 1;
$res = $val >> $places;
p($res, $val, '>>', $places, 'copie du bit de signe maintenant à gauche');

$val = 4;
$places = 2;
$res = $val >> $places;
p($res, $val, '>>', $places);

$val = 4;
$places = 3;
$res = $val >> $places;
p($res, $val, '>>', $places, 'des bits sont sortis par la droite');

$val = 4;
$places = 4;
$res = $val >> $places;
p($res, $val, '>>', $places, 'même résultat que ci-dessus : pas de décalage au dela de 0');

echo "\n--- Décalages à droite sur des entiers négatifs ---\n";

$val = -4;
$places = 1;
$res = $val >> $places;
p($res, $val, '>>', $places, 'copie du bit de signe maintenant à gauche');

$val = -4;
$places = 2;
$res = $val >> $places;
p($res, $val, '>>', $places, 'des bits sont sortis par la droite');

$val = -4;
$places = 3;
$res = $val >> $places;
p($res, $val, '>>', $places, 'même résultat que ci-dessus : pas de décalage au dela de -1');

echo "\n--- Décalages à gauche sur des entiers positifs ---\n";

$val = 4;
$places = 1;
$res = $val << $places;
p($res, $val, '<<', $places, 'complément de zéros à droite');

$val = 4;
$places = (PHP_INT_SIZE * 8) - 4;
$res = $val << $places;
p($res, $val, '<<', $places);

$val = 4;
$places = (PHP_INT_SIZE * 8) - 3;
$res = $val << $places;
p($res, $val, '<<', $places, 'le bit de signe est sorti');

$val = 4;
$places = (PHP_INT_SIZE * 8) - 2;
$res = $val << $places;
p($res, $val, '<<', $places, 'des bits sont sortis à gauche');

echo "\n--- Décalages à gauche sur des entiers négatifs ---\n";

$val = -4;
$places = 1;
$res = $val << $places;
p($res, $val, '<<', $places, 'complément de zéros à droite');

$val = -4;
$places = (PHP_INT_SIZE * 8) - 3;
$res = $val << $places;
p($res, $val, '<<', $places);

$val = -4;
$places = (PHP_INT_SIZE * 8) - 2;
$res = $val << $places;
p($res, $val, '<<', $places, 'des bits sont sortis à gauche, y compris le bit de signe');

/*
 * Ignorez cette section
 * Elle contient du code pour le formatage de cet exemple
 */

function p($res, $val, $op, $places, $note = '') {
    $format = '%0' . (PHP_INT_SIZE * 8) . "b\n";

    printf("Expression : %d = %d %s %d\n", $res, $val, $op, $places);

    echo " Décimal :\n";
    printf("  val=%d\n", $val);
    printf("  res=%d\n", $res);

    echo " Binaire :\n";
    printf('  val=' . $format, $val);
    printf('  res=' . $format, $res);

    if ($note) {
        echo " Note : $note\n";
    }

    echo "\n";
}
?>

Résultat de l'exemple ci-dessus sur une machine 32 bits :

--- Décalages à droite sur des entiers positifs ---
Expression : 2 = 4 >> 1
 Décimal :
  val=4
  res=2
 Binaire :
  val=00000000000000000000000000000100
  res=00000000000000000000000000000010
 Note : copie du bit de signe maintenant à gauche

Expression : 1 = 4 >> 2
 Décimal :
  val=4
  res=1
 Binaire :
  val=00000000000000000000000000000100
  res=00000000000000000000000000000001

Expression : 0 = 4 >> 3
 Décimal :
  val=4
  res=0
 Binaire :
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 Note : des bits sont sortis par la droite

Expression : 0 = 4 >> 4
 Décimal :
  val=4
  res=0
 Binaire :
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 Note : même résultat que ci-dessus : pas de décalage au dela de 0

--- Décalages à droite sur des entiers négatifs ---
Expression : -2 = -4 >> 1
 Décimal :
  val=-4
  res=-2
 Binaire :
  val=11111111111111111111111111111100
  res=11111111111111111111111111111110
 Note : copie du bit de signe à gauche

Expression : -1 = -4 >> 2
 Décimal :
  val=-4
  res=-1
 Binaire :
  val=11111111111111111111111111111100
  res=11111111111111111111111111111111
 Note : des bits sont sortis par la droite

Expression : -1 = -4 >> 3
 Décimal :
  val=-4
  res=-1
 Binaire :
  val=11111111111111111111111111111100
  res=11111111111111111111111111111111
 Note : même résultat que ci-dessus : pas de décalage au dela de -1

--- Décalages à gauche sur des entiers positifs ---
Expression : 8 = 4 << 1
 Décimal :
  val=4
  res=8
 Binaire :
  val=00000000000000000000000000000100
  res=00000000000000000000000000001000
 Note : complément de zéros à droite

Expression : 1073741824 = 4 << 28
 Décimal :
  val=4
  res=1073741824
 Binaire :
  val=00000000000000000000000000000100
  res=01000000000000000000000000000000

Expression : -2147483648 = 4 << 29
 Décimal :
  val=4
  res=-2147483648
 Binaire :
  val=00000000000000000000000000000100
  res=10000000000000000000000000000000
 Note : le bit de signe est sorti

Expression : 0 = 4 << 30
 Décimal :
  val=4
  res=0
 Binaire :
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 Note : des bits sont sortis à gauche

--- Décalages à gauche sur des entiers négatifs ---
Expression : -8 = -4 << 1
 Décimal :
  val=-4
  res=-8
 Binaire :
  val=11111111111111111111111111111100
  res=11111111111111111111111111111000
 Note : complément de zéros à droite

Expression : -2147483648 = -4 << 29
 Décimal :
  val=-4
  res=-2147483648
 Binaire :
  val=11111111111111111111111111111100
  res=10000000000000000000000000000000

Expression : 0 = -4 << 30
 Décimal :
  val=-4
  res=0
 Binaire :
  val=11111111111111111111111111111100
  res=00000000000000000000000000000000
 Note : des bits sont sortis à gauche, y compris le bit de signe

Résultat de l'exemple ci-dessus sur une machine 64 bits :

--- Décalages à droite sur des entiers positifs ---
Expression : 2 = 4 >> 1
 Décimal :
  val=4
  res=2
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000010
 Note : copie du bit de signe maintenant à gauche

Expression : 1 = 4 >> 2
 Décimal :
  val=4
  res=1
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000001

Expression : 0 = 4 >> 3
 Décimal :
  val=4
  res=0
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 Note : des bits sont sortis par la droite

Expression : 0 = 4 >> 4
 Décimal :
  val=4
  res=0
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 Note : même résultat que ci-dessus : pas de décalage au dela de 0

--- Décalages à droite sur des entiers négatifs ---
Expression : -2 = -4 >> 1
 Décimal :
  val=-4
  res=-2
 Binaire :
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111110
 Note : copie du bit de signe maintenant à gauche

Expression : -1 = -4 >> 2
 Décimal :
  val=-4
  res=-1
 Binaire :
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111111
 Note : des bits sont sortis par la droite

Expression : -1 = -4 >> 3
 Décimal :
  val=-4
  res=-1
 Binaire :
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111111
 Note : même résultat que ci-dessus : pas de décalage au dela de -1

--- Décalage à gauche sur les entiers négatifs ---
Expression : 8 = 4 << 1
 Décimal :
  val=4
  res=8
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000001000
 Note : complément de zéros à droite

Expression : 4611686018427387904 = 4 << 60
 Décimal :
  val=4
  res=4611686018427387904
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0100000000000000000000000000000000000000000000000000000000000000

Expression : -9223372036854775808 = 4 << 61
 Décimal :
  val=4
  res=-9223372036854775808
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=1000000000000000000000000000000000000000000000000000000000000000
 Note : le bit de signe est sorti

Expression : 0 = 4 << 62
 Décimal :
  val=4
  res=0
 Binaire :
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 Note : des bits sont sortis à gauche

--- Décalage à gauche sur les entiers négatifs ---
Expression : -8 = -4 << 1
 Décimal :
  val=-4
  res=-8
 Binaire :
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111000
 Note : complément de zéros à droite

Expression : -9223372036854775808 = -4 << 61
 Décimal :
  val=-4
  res=-9223372036854775808
 Binaire :
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1000000000000000000000000000000000000000000000000000000000000000

Expression : 0 = -4 << 62
 Décimal :
  val=-4
  res=0
 Binaire :
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=0000000000000000000000000000000000000000000000000000000000000000
 Note : des bits sont sortis à gauche, y compris le bit de signe

Avertissement

Décaler des entiers par des valeurs supérieures ou égales à la taille maximum des entiers supportés par le système peut induire un comportement non prévu. En d'autres mots, ne décallez pas plus de 31 bits sur un système 32 bits, ou plus de 63 bits sur un système 64 bits.

Utilisez les fonctions de l'extension gmp pour les manipulations sur les bits, lorsque les entiers dépassent PHP_INT_MAX.

Voyez aussi
pack(),
unpack(),
gmp_and(),
gmp_or(),
gmp_xor(),
gmp_testbit(),
gmp_clrbit()


Opérateurs de comparaison

Les opérateurs de comparaison, comme leur nom l'indique, vous permettent de comparer deux valeurs. Vous devriez également être intéressés par les tables de comparaisons de types, car ils montrent des exemples de beaucoup de types de comparaisons.

Opérateurs de comparaison
Exemple | Nom | Résultat
$a == $b | Egal | TRUE si $a est égal à $b après le transtypage.
$a === $b | Identique | TRUE si $a est égal à $b et qu'ils sont de même type.
$a != $b | Différent | TRUE si $a est différent de $b après le transtypage.
$a <> $b | Différent | TRUE si $a est différent de $b après le transtypage.
$a !== $b | Différent | TRUE si $a est différent de $b ou bien s'ils ne sont pas du même type.
$a < $b | Plus petit que | TRUE si $a est strictement plus petit que $b.
$a > $b | Plus grand | TRUE si $a est strictement plus grand que $b.
$a <= $b | Inférieur ou égal | TRUE si $a est plus petit ou égal à $b.
$a >= $b | Supérieur ou égal | TRUE si $a est plus grand ou égal à $b.
$a <=> $b | Opérateur combiné | Un entier inférieur, égal ou supérieur à zéro lorsque $a est respectivement inférieur, égal, ou supérieur à $b. Disponible depuis PHP 7.
$a ?? $b ?? $c | Opérateur d'union nul | Retourne la première opérande depuis la gauche vers la droite qui existe, et différent de NULL. Si rien n'existe, NULL sera retourné. Disponible depuis PHP 7.

Si vous comparez un nombre avec une chaîne ou bien que la comparaison implique des chaînes numériques, alors chaque chaîne sera convertie en un nombre et la comparaison sera effectuée numériquement. Ces règles s'appliquent également à l'instruction switch. La conversion de type n'intervient pas lorsque la comparaison est === ou !== vu que ceci engendre aussi bien une comparaison de type que de valeur.

<?php
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("10" == "1e1"); // 10 == 10 -> true
var_dump(100 == "1e2"); // 100 == 100 -> true

switch ("a") {
case 0:
    echo "0";
    break;
case "a": // jamais évalué parce que "a" est déjà trouvé avec 0
    echo "a";
    break;
}
?>
<?php
// Entiers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Nombre flottants
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Chaines de caractères
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1

// Tableaux
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1

// Objets
$a = (object) ["a" => "b"];
$b = (object) ["a" => "b"];
echo $a <=> $b; // 0

$a = (object) ["a" => "b"];
$b = (object) ["a" => "c"];
echo $a <=> $b; // -1

$a = (object) ["a" => "c"];
$b = (object) ["a" => "b"];
echo $a <=> $b; // 1

// seulement les valeurs sont comparées
$a = (object) ["a" => "b"];
$b = (object) ["b" => "b"];
echo $a <=> $b; // 1

?>

Pour les différents types, la comparaison est faite en suivant la table suivante (dans l'ordre).

Comparaison avec plusieurs types
Type de l'opérande 1 | Type de l'opérande 2 | Résultat
null ou chaîne de caractères | string | Convertit NULL en "", comparaison numérique ou lexicale
booléen ou null | N'importe quoi | Convertit en booléen, FALSE < TRUE
objet | objet | Les classes internes peuvent définir leur propre méthode de comparaison; différentes classes ne sont pas comparables; entre objets de même classe, PHP a son propre comportement
chaîne de caractères, ressource ou nombre | chaîne de caractères, ressource ou nombre | Transforme les chaînes de caractères et les ressources en nombres
tableaux | tableaux | Le tableau avec le moins de membres est plus petit, si la clé de l'opérande 1 n'est pas trouvée dans l'opérande 2, alors les tableaux ne sont pas comparables, sinon la comparaison se fait valeur par valeur (voir l'exemple suivant)
object | N'importe quoi | L'objet est toujours plus grand
array | N'importe quoi | Le tableau est toujours plus grand

Exemple #1 Comparaison Booléen/null

<?php
// Boolén et null sont toujours comparés comme des booléens
var_dump(1 == TRUE);  // TRUE - identique à (bool)1 == TRUE
var_dump(0 == FALSE); // TRUE - identique à (bool)0 == FALSE
var_dump(100 < TRUE); // FALSE - identique à (bool)100 < TRUE
var_dump(-10 < FALSE);// FALSE - identique à (bool)-10 < FALSE
var_dump(min(-100, -10, NULL, 10, 100)); // NULL - (bool)NULL < (bool)-100 est identique à FALSE < TRUE
?>

Exemple #2 Transcription des comparaisons standards des tableaux

<?php
// Les tableaux sont comparés comme ceci avec les opérateurs standards de comparaison
function standard_array_compare($op1, $op2)
{
   if (count($op1) < count($op2)) {
      return -1; // $op1 < $op2
   } elseif (count($op1) > count($op2)) {
      return 1; // $op1 > $op2
   }
   foreach ($op1 as $key => $val) {
      if (!array_key_exists($key, $op2)) {
         return null; // incomparable
      } elseif ($val < $op2[$key]) {
         return -1;
      } elseif ($val > $op2[$key]) {
         return 1;
      }
   }
   return 0; // $op1 == $op2
}
?>

Voir aussi strcasecmp(), strcmp() les opérateurs de tableaux, et le chapitre sur les types.

Avertissement

Comparaison de nombre à virgule flottante

A cause de la façon dont les nombres à virgule flottante sont représentés en interne, vous ne devriez pas tester l'égalité entre deux nombres de type float.

Voyez la documentation de float pour plus d'informations.

L'opérateur ternaire

Un autre opérateur conditionnel est l'opérateur ternaire ("?:").

Exemple #3 Affectation d'une valeur par défaut

<?php
// Exemple d'utilisation pour l'opérateur ternaire
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// La ligne ci-dessus est identique à la condition suivante :
if (empty($_POST['action'])) {
   $action = 'default';
} else {
   $action = $_POST['action'];
}

?>
L'expression (expr1) ? (expr2) : (expr3) est évaluée à expr2 si expr1 est évaluée à TRUE, et expr3 si expr1 est évaluée à FALSE.

Depuis PHP 5.3, il est possible d'omettre la partie centrale de l'opérateur ternaire. L'expression expr1 ?: expr3 retourne expr1 si expr1 vaut TRUE, et expr3 sinon.

Note: Notez que l'opérateur ternaire est une expression, et il n'est pas évalué en tant que variable, mais en tant que résultat de l'expression. Il est important de le savoir si vous voulez retourner une variable par référence. L'instruction return $var == 42 ? $a : $b; dans une fonction retournée par référence ne fonctionnera donc pas et une alerte est émise.

Note:

Il est recommandé de ne pas "empiler" les expressions ternaires. Le comportement de PHP lors de l'utilisation de plus d'un opérateur ternaire dans une seule instruction n'est pas évident :

Exemple #4 Comportement de PHP

<?php
// A première vue, ce qui suit devrait retourner 'true'
echo (true?'true':false?'t':'f');

// cependant, l'expression ci-dessus retournera 't'
// car l'expression ternaire est évaluée de gauche à droite

// l'expression suivante est une version plus évidente du même code
echo ((true ? 'true' : false) ? 't' : 'f');

// ici, vous pouvez voir que la première expression est évaluée à 'true',
// ce qui fait qu'elle est évaluée à (bool)true, ce qui retourne la branche
// 'vraie' de la seconde expression ternaire.
?>


Opérateur de contrôle d'erreur

PHP supporte un opérateur de contrôle d'erreur : c'est @. Lorsque cet opérateur est ajouté en préfixe d'une expression PHP, les messages d'erreur qui peuvent être générés par cette expression seront ignorés.

Si vous avez défini un gestionnaire d'erreurs personnalisé avec la fonction set_error_handler(), alors il sera toujours appelé, mais ce gestionnaire d'erreurs peut (et doit) appeler la fonction error_reporting() qui devra retourner 0 lorsque l'appel qui a émis l'erreur était précédé d'un @.

Si l'option track_errors est activée, les messages d'erreurs générés par une expression seront sauvés dans la variable globale $php_errormsg. Cette variable sera écrasée à chaque erreur. Il faut alors la surveiller souvent pour pouvoir l'utiliser.

<?php
/* Erreur intentionnelle (le fichier n'existe pas): */
$mon_fichier = @file ('non_persistent_file') or
    die ("Impossible d'ouvrir le fichier : L'erreur est : '$php_errormsg'");

// Cela fonctionne avec n'importe quelle expression, pas seulement les fonctions
  $value = @$cache[$key];
// la ligne ci-dessus n'affichera pas d'alerte si la clé $key du tableau n'existe pas

?>

Note: L'opérateur @ ne fonctionne qu'avec les expressions. La règle générale de fonctionnement est la suivante : si vous pouvez prendre la valeur de quelque chose, vous pouvez le préfixer avec @. Par exemple, vous pouvez ajouter @ aux variables, fonctions, à include, aux constantes, etc. Vous ne pourrez pas le faire avec des éléments de langage tels que les classes, if et foreach, etc.

Voir aussi error_reporting() et la section sur la gestion d'erreurs.

Avertissement

En fait, l'opérateur "@" va aussi désactiver les rapports d'erreurs critiques, qui stoppent l'exécution du script. Entre autres, si vous utilisez "@" pour supprimer les erreurs de certaines fonctions, et que cette fonction n'existe pas, ou qu'elle a été mal orthographiée, vous n'aurez aucune indication.


Opérateur d'exécution

PHP supporte un opérateur d'exécution : guillemets obliques ("``"). Notez bien qu'il ne s'agit pas de guillemets simples. PHP essaie d'exécuter le contenu de ces guillemets obliques comme une commande shell. Le résultat sera retourné (i.e. : il ne sera pas simplement envoyé à la sortie standard, il peut être affecté à une variable). Utiliser les guillemets obliques revient à utiliser la fonction shell_exec().

Exemple #1 Opérateur d'exécution

<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>

Note:

Cet opérateur est désactivé lorsque le safe mode est activé ou bien que la fonction shell_exec() est désactivée.

Note:

Contrairement à d'autres langages, les guillemets obliques n'ont pas de signification spéciale dans une chaînes entourée de double guillemets.

Voir aussi le manuel à la section sur les fonctions d'exécution système, popen(), proc_open() et l'utilisation de PHP en ligne de commande.


Opérateurs d'incrémentation et décrémentation

PHP supporte les opérateurs de pre- et post-incrémentation et décrémentation, comme en langage C.

Note: Les opérateurs d'incrémentation/décrémentation n'affectent que les nombres et les chaînes de caractères. Les tableaux, objets et ressources ne sont pas affectés. La décrémentation des valeurs NULL n'a également aucun effet, mais leur incrémentation donnera comme résultat 1.

Opérateurs d'incrémentation et décrémentation
Exemple | Nom | Résultat
++$a | Pre-incrémente | Incrémente $a de 1, puis retourne $a.
$a++ | Post-incrémente | Retourne $a, puis incrémente $a de 1.
--$a | Pré-décrémente | Décrémente $a de 1, puis retourne $a.
$a-- | Post-décrémente | Retourne $a, puis décrémente $a de 1.

Voici un exemple simple :

<?php
echo '<h3>Post-incrémentation</h3>';
$a = 5;
echo "Devrait valoir  5: " . $a++ . "<br />\n";
echo "Devrait valoir  6: " . $a . "<br />\n";
echo '<h3>Pre-incrémentation</h3>';
$a = 5;
echo "Devrait valoir  6: " . ++$a . "<br />\n";
echo "Devrait valoir  6: " . $a . "<br />\n";
echo '<h3>Post-décrémentation</h3>';
$a = 5;
echo "Devrait valoir  5: " . $a-- . "<br />\n";
echo "Devrait valoir  4: " . $a . "<br />\n";
echo '<h3>Pre-décrémentation</h3>';
$a = 5;
echo "Devrait valoir  4: " . --$a . "<br />\n";
echo "Devrait valoir  4: " . $a . "<br />\n";
?>

PHP suit les conventions de Perl pour la gestion des opérateurs arithmétiques sur les variables de caractères et non pas celle du C. Par exemple, en PHP et en Perl, $a = 'Z'; $a++; transforme $a en 'AA', alors qu'en C, a = 'Z'; a++; transforme a en '[' (la valeur ASCII de 'Z' est 90, la valeur ASCII de '[' est 91). Notez que les variables de caractères peuvent être incrémentées mais pas décrémentées, mais aussi que seuls les caractères ASCII pleins et les chiffres (a-z, A-Z et 0-9) sont supportés. L'incrémentation/décrémentation d'autres variables de caractères n'a aucun effet, la chaîne originale n'est pas modifiée.

Exemple #1 Opérations arithmétiques sur un caractère

<?php
echo '== Alphabets ==' . PHP_EOL;
$s = 'W';
for ($n=0; $n<6; $n++) {
    echo ++$s . PHP_EOL;
}
// Les caractères digitaux réagissent différemment
echo '== Caractères digitaux ==' . PHP_EOL;
$d = 'A8';
for ($n=0; $n<6; $n++) {
    echo ++$d . PHP_EOL;
}
$d = 'A08';
for ($n=0; $n<6; $n++) {
    echo ++$d . PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

== Alphabets ==
X
Y
Z
AA
AB
AC
== Caractères digitaux ==
A9
B0
B1
B2
B3
B4
A09
A10
A11
A12
A13
A14

L'incrémentation ou la décrémentation d'un booléen n'a aucun effet.


Les opérateurs logiques

Les opérateurs logiques
Exemple | Nom | Résultat
$a and $b | And (Et) | TRUE si $a ET $b valent TRUE.
$a or $b | Or (Ou) | TRUE si $a OU $b valent TRUE.
$a xor $b | XOR | TRUE si $a OU $b est TRUE, mais pas les deux en même temps.
! $a | Not (Non) | TRUE si $a n'est pas TRUE.
$a && $b | And (Et) | TRUE si $a ET $b sont TRUE.
$a || $b | Or (Ou) | TRUE si $a OU $b est TRUE.

La raison pour laquelle il existe deux types de "ET" et de "OU" est qu'ils ont des priorités différentes. Voir le paragraphe précédence d'opérateurs.

Exemple #1 Illustration des opérateurs logiques

<?php

// --------------------
// foo() ne sera jamais appelée car ces opérateurs s'annulent

$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());

// --------------------
// "||" a un précédence supérieure à "or"

// Le résultat de l'expression (false || true) est affecté à $e
// Agit comme : ($e = (false || true))
$e = false || true;

// La constante false est affectée à $f, puis, true est ignoré
// Agit comme : (($f = false) or true)
$f = false or true;

var_dump($e, $f);

// --------------------
// "&&" a un précédence supérieure à "and"

// Le résultat de l'expression (true && false) est affecté à $g
// Agit comme : ($g = (true && false))
$g = true && false;

// La constante true est affectée à $h, puis, false est ignoré
// Agit comme : (($h = true) and false)
$h = true and false;

var_dump($g, $h);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)
bool(false)
bool(true)


Opérateurs de chaînes

Il y a deux opérateurs de chaînes de caractères string. Le premier est l'opérateur de concaténation ('.'), qui retourne la concaténation de ses deux arguments. Le second est l'opérateur d'affectation concaténant (.=). Reportez-vous à opérateurs d'affectation pour plus de détails.

Exemple #1 Opérateur de concaténation

<?php
$a = "Bonjour ";
$b = $a . "Monde !"; // $b contient "Bonjour Monde !"

$a = "Bonjour ";
$a .= "Monde !"; // $a contient "Bonjour Monde !"
?>

Voir aussi les sections du manuel sur les types de chaînes de caractères et les chaînes de caractères.


Opérateurs de tableaux

Opérateurs de tableaux
Exemple | Nom | Résultat
$a + $b | Union | Union de $a et $b.
$a == $b | Egalité | TRUE si $a et $b contiennent les mêmes paires clés/valeurs.
$a === $b | Identique | TRUE si $a et $b contiennent les mêmes paires clés/valeurs dans le même ordre et du même type.
$a != $b | Inégalité | TRUE si $a n'est pas égal à $b.
$a <> $b | Inégalité | TRUE si $a n'est pas égal à $b.
$a !== $b | Non-identique | TRUE si $a n'est pas identique à $b.

L'opérateur + retourne le tableau de gauche auquel sont ajoutés les éléments du tableau de droite. Pour les clés présentes dans les 2 tableaux, les éléments du tableau de gauche seront utilisés alors que les éléments correspondants dans le tableau de droite seront ignorés.

<?php
$a = array("a" => "pomme", "b" => "banane");
$b = array("a" =>"poire", "b" => "fraise", "c" => "cerise");

$c = $a + $b; // Union de $a et $b
echo "Union de \$a et \$b : \n";
var_dump($c);

$c = $b + $a; // Union de $b et $a
echo "Union de \$b et \$a : \n";
var_dump($c);
?>
À l'exécution, le script affichera :
Union de $a et $b :
array(3) {
  ["a"]=>
  string(5) "pomme"
  ["b"]=>
  string(6) "banane"
  ["c"]=>
  string(6) "cerise"
}
Union de $b et $a :
array(3) {
  ["a"]=>
  string(5) "poire"
  ["b"]=>
  string(6) "fraise"
  ["c"]=>
  string(6) "cerise"
}

Les éléments d'un tableau sont égaux en terme de comparaison s'ils ont la même clé et la même valeur.

Exemple #1 Comparer des tableaux

<?php
$a = array("pomme", "banane");
$b = array(1 => "banane", "0" => "pomme");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

Voyez aussi le manuel aux sections Tableaux et fonctions de tableaux.


Opérateurs de types

instanceof est utilisé pour déterminer si une variable PHP est un objet instancié d'une certaine classe :

Exemple #1 Utilisation de instanceof avec des classes

<?php
class MaClasse
{
}
class PasMaClasse
{
}
$a = new MaClasse;

var_dump($a instanceof MaClasse);
var_dump($a instanceof PasMaClasse);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

instanceof peut également être utilisé pour déterminer si une variable est un objet instancié d'une classe qui hérite d'une classe parente :

Exemple #2 Utilisation de instanceof avec des classes héritées

<?php
class ParentClass
{
}
class MyClass extends ParentClass
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)

Pour vérifier si un objet n'est pas une instance d'une classe, l'opérateur logique not peut être utilisé.

Exemple #3 Utilisation de instanceof pour vérifier que l'objet n'est pas une instance de la classe

<?php
class MyClass
{
}
$a = new MyClass;
var_dump(!($a instanceof stdClass));
?>

L'exemple ci-dessus va afficher :

bool(true)

Et finalement, instanceof peut être utilisé pour déterminer si une variable est un objet instancié d'une classe qui implémente une interface :

Exemple #4 Utilisation de instanceof pour une interface

<?php
interface MyInterface
{
}
class MyClass implements MyInterface
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)

Bien que instanceof soit habituellement utilisé avec un nom de classe littéral, il peut également être utilisé avec un autre objet ou une chaîne représentant une variable :

Exemple #5 Utilisation de instanceof avec d'autres variables

<?php
interface MyInterface
{
}
class MyClass implements MyInterface
{
}
$a = new MyClass;
$b = new MyClass;
$c = 'MyClass';
$d = 'NotMyClass';
var_dump($a instanceof $b); // $b est un objet de la classe MyClass
var_dump($a instanceof $c); // $c est une chaîne 'MyClass'
var_dump($a instanceof $d); // $d est une chaîne 'NotMyClass'
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)

instanceof ne lance aucune erreur si la variable testée n'est pas un objet, il retournera simplement FALSE. Cependant, les constantes ne sont pas autorisées.

Exemple #6 Utilisation de instanceof pour tester d'autres variables

<?php
$a = 1;
$b = NULL;
$c = imagecreate(5, 5);
var_dump($a instanceof stdClass); // $a est un entier
var_dump($b instanceof stdClass); // $b vaut NULL
var_dump($c instanceof stdClass); // $c est une ressource
var_dump(FALSE instanceof stdClass);
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(false)
bool(false)
PHP Fatal error:  instanceof expects an object instance, constant given

Il y a quelques pièges à éviter. Avant PHP version 5.1.0, instanceof appellera __autoload() si le nom de la classe n'existe pas. De plus, si la classe n'a pas été chargée, une erreur fatale sera émise. Ceci peut fonctionner en utilisant une référence de classe dynamique, ou une chaîne représentant une variable contenant le nom de la classe :

Exemple #7 Pas de recherche sur le nom de la classe et une erreur fatale avec instanceof en PHP 5.0

<?php
$d = 'NotMyClass';
var_dump($a instanceof $d); // no fatal error here
?>

L'exemple ci-dessus va afficher :

bool(false)

L'opérateur instanceof a été introduit en PHP 5. Avant cette version, is_a() était utilisée mais is_a() est depuis devenue obsolète, en faveur de instanceof. Notez que depuis PHP 5.3.0, is_a() n'est de nouveau plus obsolète.

Voir aussi get_class() et is_a().


Les structures de contrôle

Sommaire

  • Introduction
  • if
  • else
  • elseif/else if
  • Syntaxe alternative
  • while
  • do-while
  • for
  • foreach
  • break
  • continue
  • switch
  • declare
  • return
  • require
  • include
  • require_once
  • include_once
  • goto


Introduction

Tous les scripts PHP sont une suite d'instructions. Une instruction peut être une assignation, un appel de fonction, une instruction conditionnelle ou bien une instruction qui ne fait rien (une instruction vide). Une instruction se termine habituellement par un point virgule (";"). De plus, plusieurs instructions peuvent être regroupées en bloc, délimité par des accolades ("{}"). Un bloc est considéré comme une instruction. Les différents types d'instructions sont décrits dans ce chapitre.


if

(PHP 4, PHP 5, PHP 7)

L'instruction if est une des plus importantes instructions de tous les langages, PHP inclus. Elle permet l'exécution conditionnelle d'une partie de code. Les fonctionnalités de l'instruction if sont les mêmes en PHP qu'en C :

if (expression)
  commandes

Comme nous l'avons vu dans le paragraphe consacré aux expressions, expression est convertie en sa valeur booléenne. Si l'expression vaut TRUE, PHP exécutera l'instruction et si elle vaut FALSE, l'instruction sera ignorée. Plus de détails sur les valeurs qui valent FALSE sont disponibles dans la section Conversion en booléen.

L'exemple suivant affiche la phrase a est plus grand que b si $a est plus grand que $b :

<?php
if ($a > $b)
  echo "a est plus grand que b";
?>

Souvent, vous voulez que plusieurs instructions soient exécutées après un branchement conditionnel. Bien évidemment, il n'est pas obligatoire de répéter l'instruction conditionnelle if autant de fois que vous avez d'instructions à exécuter. À la place, vous pouvez rassembler toutes les instructions dans un bloc. L'exemple suivant affiche a est plus grand que b, si $a est plus grand que $b, puis assigne la valeur de $a à la variable $b :

<?php
if ($a > $b) {
  echo "a est plus grand que b";
  $b = $a;
}
?>

Vous pouvez imbriquer indéfiniment des instructions if dans d'autres instructions if, ce qui permet une grande flexibilité dans l'exécution d'une partie de code suivant un grand nombre de conditions.


else

(PHP 4, PHP 5, PHP 7)

Souvent, vous voulez exécuter une instruction si une condition est remplie, et une autre instruction si cette condition n'est pas remplie. C'est à cela que sert else. else fonctionne après un if et exécute les instructions correspondantes au cas où l'expression du if est FALSE. Dans l'exemple suivant, ce bout de code affiche a est plus grand que b si la variable $a est plus grande que la variable $b, et a est plus petit que b sinon :

<?php
if ($a > $b) {
  echo "a est plus grand que b";
} else {
  echo "a est plus petit que b";
}
?>
Les instructions après le else ne sont exécutées que si l'expression du if est FALSE, et s'il existe des expressions elseif - uniquement si elles sont également évaluées à FALSE (voir elseif).


elseif/else if

(PHP 4, PHP 5, PHP 7)

elseif, comme son nom l'indique, est une combinaison de if et de else. Comme l'expression else, il permet d'exécuter une instruction après un if dans le cas où le "premier" if est évalué comme FALSE. Mais, à la différence de l'expression else, il n'exécutera l'instruction que si l'expression conditionnelle elseif est évaluée comme TRUE. L'exemple suivant affichera a est plus grand que b, a est égal à b ou a est plus petit que b :

<?php
if ($a > $b) {
    echo "a est plus grand que b";
} elseif ($a == $b) {
    echo "a est égal à b";
} else {
    echo "a est plus petit que b";
}
?>

Vous pouvez avoir plusieurs elseif qui se suivent les uns après les autres, après un if initial. Le premier elseif qui sera évalué à TRUE sera exécuté. En PHP, vous pouvez aussi écrire "else if" en deux mots et son comportement sera identique à la version en un seul mot. La sémantique des deux expressions est légèrement différente, mais au bout du compte, le résultat sera exactement le même.

L'expression elseif est exécutée seulement si le if précédent et tout autre elseif précédent sont évalués comme FALSE, et que votre elseif est évalué à TRUE.

Note: A noter que elseif et else if sont traités de la même façon seulement quand des accolades sont utilisées, comme dans l'exemple ci-dessus. Quand vous utilisez ":" pour définir votre condition if/elseif, vous ne devez pas séparer else if en deux mots, sans quoi PHP soulèvera une erreur d'interprétation.

<?php

/* Mauvaise méthode : */
if($a > $b):
    echo $a." est plus grand que ".$b;
else if($a == $b): // ne compilera pas
    echo "La ligne ci-dessus provoque une erreur d'interprétation";
endif;

/* Bonne méthode : */
if($a > $b):
    echo $a." est plus grand que ".$b;
elseif($a == $b): // Les deux mots sont collés
    echo $a." égal ".$b;
else:
    echo $a." est plus grand ou égal à ".$b;
endif;

?>


Syntaxe alternative

(PHP 4, PHP 5, PHP 7)

PHP propose une autre manière de rassembler des instructions à l'intérieur d'un bloc, pour les fonctions de contrôle if, while, for, foreach et switch. Dans chaque cas, le principe est de remplacer l'accolade d'ouverture par deux points (:) et l'accolade de fermeture par, respectivement, endif;, endwhile;, endfor;, endforeach;, ou endswitch;.

<?php if ($a == 5): ?>
A égal 5
<?php endif; ?>

Dans l'exemple ci-dessus, le bloc HTML "A égal 5" est inclus à l'intérieur d'un if en utilisant cette nouvelle syntaxe. Ce code HTML ne sera affiché que si la variable $a est égale à 5.

Cette autre syntaxe fonctionne aussi avec le else et elseif. L'exemple suivant montre une structure avec un if, un elseif et un else utilisant cette autre syntaxe :

<?php
if ($a == 5):
    echo "a égale 5";
    echo "...";
elseif ($a == 6):
    echo "a égale 6";
    echo "!!!";
else:
    echo "a ne vaut ni 5 ni 6";
endif;
?>

Note:

Vous ne pouvez pas utiliser différentes syntaxes dans le même bloc de contrôle.

Avertissement

Tout affichage (y compris d'espaces) entre une structure switch et le premier case va produire une erreur de syntaxe. Par exemple, ceci n'est pas valide :

<?php switch ($foo): ?>
    <?php case 1: ?>
    ...
<?php endswitch ?>

Alors que ceci est valide, vu que la dernière nouvelle ligne après la structure switch est considérée comme faisant partie de la balise de fin ?> et donc, rien n'est affiché entre switch et case :

<?php switch ($foo): ?>
<?php case 1: ?>
    ...
<?php endswitch ?>

Voir aussi while, for, et if pour d'autres exemples.


while

(PHP 4, PHP 5, PHP 7)

La boucle while est le moyen le plus simple d'implémenter une boucle en PHP. Cette boucle se comporte de la même manière qu'en C. L'exemple le plus simple d'une boucle while est le suivant :

while (expression)
    commandes

La signification d'une boucle while est très simple. PHP exécute l'instruction tant que l'expression de la boucle while est évaluée comme TRUE. La valeur de l'expression est vérifiée à chaque début de boucle, et, si la valeur change durant l'exécution de l'instruction, l'exécution ne s'arrêtera qu'à la fin de l'itération (chaque fois que PHP exécute l'instruction, on appelle cela une itération). De temps en temps, si l'expression du while est FALSE avant la première itération, l'instruction ne sera jamais exécutée.

Comme avec le if, vous pouvez regrouper plusieurs instructions dans la même boucle while en les regroupant à l'intérieur d'accolades ou en utilisant la syntaxe suivante :

while (expression):
    commandes
    ...
endwhile;

Les exemples suivants sont identiques et affichent tous les nombres de 1 jusqu'à 10 :

<?php
/* exemple 1 */

$i = 1;
while ($i <= 10) {
    echo $i++;  /* La valeur affichée est $i avant l'incrémentation
                   (post-incrémentation)  */
}

/* exemple 2 */

$i = 1;
while ($i <= 10):
    echo $i;
    $i++;
endwhile;
?>


do-while

(PHP 4, PHP 5, PHP 7)

Les boucles do-while ressemblent beaucoup aux boucles while, mais l'expression est testée à la fin de chaque itération plutôt qu'au début. La principale différence par rapport à la boucle while est que la première itération de la boucle do-while est toujours exécutée (l'expression n'est testée qu'à la fin de l'itération), ce qui n'est pas le cas lorsque vous utilisez une boucle while (la condition est vérifiée dès le début de chaque itération, et si elle s'avère FALSE dès le début, la boucle sera immédiatement arrêtée).

Il n'y a qu'une syntaxe possible pour les boucles do-while :

<?php
$i = 0;
do {
    echo $i;
} while ($i > 0);
?>

La boucle ci-dessus ne va être exécutée qu'une seule fois, car lorsque l'expression est évaluée, elle vaut FALSE (car la variable $i n'est pas plus grande que 0) et l'exécution de la boucle s'arrête.

Les utilisateurs familiers du C sont habitués à une utilisation différente des boucles do-while , qui permet de stopper l'exécution de la boucle au milieu des instructions, en encapsulant dans un do-while(0) la fonction break. Le code suivant montre une utilisation possible :

<?php
do {
    if ($i < 5) {
        echo "i n'est pas suffisamment grand";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
   echo "i est bon";

    /* ...traitement de i... */

} while (0);
?>

Ne vous inquiétez pas si vous ne comprenez pas tout correctement. Vous pouvez écrire des scripts très très puissants sans utiliser cette fonctionnalité. Depuis PHP 5.3.0, il est possible d'utiliser l'opérateur goto à l'intérieur de cette fonctionnalité.


for

(PHP 4, PHP 5, PHP 7)

Les boucles for sont les boucles les plus complexes en PHP. Elles fonctionnent comme les boucles for du langage C(C++). La syntaxe des boucles for est la suivante :

for (expr1; expr2; expr3)
    commandes

La première expression (expr1) est évaluée (exécutée), quoi qu'il arrive au début de la boucle.

Au début de chaque itération, l'expression expr2 est évaluée. Si l'évaluation vaut TRUE, la boucle continue et les commandes sont exécutées. Si l'évaluation vaut FALSE, l'exécution de la boucle s'arrête.

À la fin de chaque itération, l'expression expr3 est évaluée (exécutée).

Les expressions peuvent éventuellement être laissées vides ou peuvent contenir plusieurs expressions séparées par des virgules. Dans expr2, toutes les expressions séparées par une virgule sont évaluées mais le résultat est obtenu depuis la dernière partie. Si l'expression expr2 est laissée vide, cela signifie que c'est une boucle infinie (PHP considère implicitement qu'elle vaut TRUE, comme en C). Cela n'est pas vraiment très utile, à moins que vous souhaitiez terminer votre boucle par l'instruction conditionnelle break.

Considérons les exemples suivants. Tous affichent les chiffres de 1 jusqu'à 10 :

<?php
/* exemple 1 */

for ($i = 1; $i <= 10; $i++) {
    echo $i;
}

/* exemple 2 */

for ($i = 1; ; $i++) {
    if ($i > 10) {
        break;
    }
    echo $i;
}

/* exemple 3 */

$i = 1;
for (; ; ) {
    if ($i > 10) {
        break;
    }
    echo $i;
    $i++;
}

/* exemple 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>

Bien évidemment, le premier exemple est le plus simple de tous (ou peut être le quatrième), mais vous pouvez aussi penser qu'utiliser une expression vide dans une boucle for peut être utile parfois.

PHP supporte aussi la syntaxe alternative suivante pour les boucles for :

for (expr1; expr2; expr3):
    commandes
    ...
endfor;

Beaucoup de personnes ont l'habitude d'itérer grâce à des tableaux, comme dans l'exemple ci dessous.

<?php
/*
 * Ceci est un tableau avec des données que nous voulons modifier
 * au long de la boucle
 */
$people = array(
    array('name' => 'Kalle', 'salt' => 856412),
    array('name' => 'Pierre', 'salt' => 215863)
);

for($i = 0; $i < count($people); ++$i) {
    $people[$i]['salt'] = mt_rand(000000, 999999);
}
?>

Ce code peut être lent parce qu'il doit calculer la taille du tableau à chaque itération. Etant donné que la taille ne change jamais, il peut facilement être optimisé en utilisant une variable intermédiaire pour stocker la taille au lieu d'appeler de façon répétitive la fonction count() :

<?php
$people = array(
    array('name' => 'Kalle', 'salt' => 856412),
    array('name' => 'Pierre', 'salt' => 215863)
);

for($i = 0, $size = count($people); $i < $size; ++$i) {
    $people[$i]['salt'] = mt_rand(000000, 999999);
}
?>


foreach

(PHP 4, PHP 5, PHP 7)

La structure de langage foreach fournit une façon simple de parcourir des tableaux. foreach ne fonctionne que pour les tableaux et les objets, et émettra une erreur si vous tentez de l'utiliser sur une variable de type différent ou une variable non initialisée. Il existe deux syntaxes :

foreach (array_expression as $value){
    //commandes
}
foreach (array_expression as $key => $value){
    //commandes
}

La première forme passe en revue le tableau array_expression. À chaque itération, la valeur de l'élément courant est assignée à $value et le pointeur interne de tableau est avancé d'un élément (ce qui fait qu'à la prochaine itération, on accédera à l'élément suivant).

La seconde forme assignera en plus la clé de l'élément courant à la variable $key à chaque itération.

Il est possible de personnaliser l'itération sur des objets.

Note:

Lorsque foreach démarre, le pointeur interne du tableau est automatiquement ramené au premier élément du tableau. Cela signifie que vous n'aurez pas à faire appel à reset() avant foreach.

Vu que foreach utilise le pointeur interne du tableau à chaque itération, il conviendra d'en tenir compte lors d'une utilisation future du tableau dans votre code.

Vous pouvez modifier facilement les éléments d'un tableau en précédent $value d'un &. Ceci assignera une référence au lieu de copier la valeur.

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr vaut maintenant array(2, 4, 6, 8)
unset($value); // Détruit la référence sur le dernier élément
?>

Le référencement de $value est seulement possible si le tableau parcouru peut être référencé (i.e. si c'est une variable). Le code suivant ne fonctionnera pas :

<?php
foreach (array(1, 2, 3, 4) as &$value) {
    $value = $value * 2;
}
?>

Avertissement

La référence de $value et le dernier élément du tableau sont conservés après l'exécution de la boucle foreach. Il est recommandé de les détruire en utilisant la fonction unset().

Note:

foreach n'accepte pas l'opérateur de suppression des erreurs @.

Vous pouvez remarquer que les exemples suivants fonctionnent de manière identique :

<?php
$arr = array("un", "deux", "trois");
reset($arr);
while (list(, $value) = each($arr)) {
    echo "Valeur : $value<br />\n";
}

foreach ($arr as $value) {
    echo "Valeur : $value<br />\n";
}
?>

Les exemples suivants sont aussi fonctionnellement identiques :

<?php
$arr = array("un", "deux", "trois");
reset($arr);
while (list($key, $value) = each($arr)) {
    echo "Clé : $key; Valeur : $value<br />\n";
}

foreach ($arr as $key => $value) {
    echo "Clé : $key; Valeur : $value<br />\n";
}
?>

Voici quelques exemples de plus :

<?php
/* exemple foreach 1 : la valeur seulement */

$a = array(1, 2, 3, 17);

foreach ($a as $v) {
    echo "Valeur courante de \$a: $v.\n";
}

/* exemple foreach 2 : la valeur et sa clé d'index */

$a = array(1, 2, 3, 17);

$i = 0; /* uniquement pour l'illustration */

foreach ($a as $v) {
    echo "\$a[$i] => $v.\n";
    $i++;
}

/* exemple foreach 3 : la clé et la valeur */

$a = array(
    "un" => 1,
    "deux" => 2,
    "trois" => 3,
    "dix-sept" => 17
);

foreach ($a as $k => $v) {
    echo "\$a[$k] => $v.\n";
}

/* exemple foreach 4 : tableaux multidimensionnels */
$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach ($a as $v1) {
    foreach ($v1 as $v2) {
        echo "$v2\n";
    }
}

/* exemple foreach 5 : tableaux dynamiques */

foreach (array(1, 2, 3, 4, 5) as $v) {
    echo "$v\n";
}
?>

Extraction des tableaux internes avec list()

(PHP 5 >= 5.5.0, PHP 7)

PHP 5.5 ajout la possibilité d'itérer dans un tableau de tableaux, et d'en extraire les tableaux internes dans des variables, en fournissant une liste list() comme valeur.

Par exemple :

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b)) {
    // $a contient le premier élément du tableau interne,
    // et $b contient le second élément.
    echo "A: $a; B: $b\n";
}
?>

L'exemple ci-dessus va afficher :

A: 1; B: 2
A: 3; B: 4

Vous pouvez fournir moins d'éléments dans la fonction list() qu'il n'y en a dans le tableau interne, auquel cas, les valeurs du tableau les plus à droite seront ignorées :

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a)) {
    // Notez qu'il n'y a pas de $b ici.
    echo "$a\n";
}
?>

L'exemple ci-dessus va afficher :

1
3

Une notification sera générée s'il n'y a pas assez d'éléments dans le tableau pour remplir la fonction list() :

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b, $c)) {
    echo "A: $a; B: $b; C: $c\n";
}
?>

L'exemple ci-dessus va afficher :

Notice: Undefined offset: 2 in example.php on line 7
A: 1; B: 2; C:

Notice: Undefined offset: 2 in example.php on line 7
A: 3; B: 4; C:


break

(PHP 4, PHP 5, PHP 7)

L'instruction break permet de sortir d'une structure for, foreach, while, do-while ou switch.

break accepte un argument numérique optionnel qui vous indiquera combien de structures emboîtées doivent être interrompues. La valeur par défaut est 1, seulement la structure emboitée immédiate est interrompue.

<?php
$arr = array('un', 'deux', 'trois', 'quatre', 'stop', 'cinq');
while (list(, $val) = each($arr)) {
    if ($val == 'stop') {
        break;    /* Vous pourriez aussi utiliser 'break 1;' ici. */
    }
    echo "$val<br />\n";
}

/* Utilisation de l'argument optionnel. */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br />\n";
        break 1;  /* Termine uniquement le switch. */
    case 10:
        echo "At 10; quitting<br />\n";
        break 2;  /* Termine le switch et la boucle while. */
    default:
        break;
    }
}
?>

Historique pour break
Version | Description
5.4.0 | break 0; n'est plus valide. Dans les précédentes versions, il était interprété de la même façon que break 1;.
5.4.0 | Supprime la possibilité de passer des variables (i.e., $num = 2; break $num;) comme argument numérique.


continue

(PHP 4, PHP 5, PHP 7)

L'instruction continue est utilisée dans une boucle afin d'éluder les instructions de l'itération courante et de continuer l'exécution à la condition de l'évaluation et donc, de commencer la prochaine itération.

Note: En PHP, la structure switch est considérée comme une boucle par continue. continue se comporte comme break (lorsqu'aucun argument n'est passé). Si un switch se trouve à l'intérieur d'une boucle, continue 2 va continuer sur la prochaine itération de la boucle externe.

continue accepte un argument numérique optionnel qui vous indiquera combien de structures emboîtées doivent être éludées. La valeur par défaut est 1, ce qui revient à aller directement à la fin de la boucle courante.

<?php
while (list($key, $value) = each($arr)) {
    if (!($key % 2)) { // évite les membres impairs
        continue;
    }
    do_something_odd($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Dehors<br />\n";
    while (1) {
        echo "Milieu<br />\n";
        while (1) {
            echo "Intérieur<br />\n";
            continue 3;
        }
        echo "Ceci n'est jamais atteint.<br />\n";
    }
    echo "Ceci non plus.<br />\n";
}
?>

Oublier le point virgule après continue peut porter à confusion. Voici un exemple de ce que vous ne devez pas faire :

<?php
for ($i = 0; $i < 5; ++$i) {
    if ($i == 2)
        continue
    print "$i\n";
}
?>

On peut s'attendre à ce que le résultat soit :

0
1
3
4

mais, dans les versions antérieur à PHP 5.4.0, ce script affichera :

2

car le commande complète continue print "$i\n"; est évaluée comme une seule expression, et ainsi, la fonction print est appelée uniquement lorsque $i == 2 est vrai. (La valeur retournée de print est passée à continue comme argument numérique.)

Note:

Depuis PHP 5.4.0, l'exemple précédent lèvera une erreur E_COMPILE_ERROR.

Historique pour continue
Version | Description
5.4.0 | continue 0; n'est plus valide. Dans les précédentes versions, il était interprété de la même façon que continue 1;.
5.4.0 | Supprime la possibilité de passer des variables (i.e., $num = 2; continue $num;) comme argument numérique.


switch

(PHP 4, PHP 5, PHP 7)

L'instruction switch équivaut à une série d'instructions if. En de nombreuses occasions, vous aurez besoin de comparer la même variable (ou expression) avec un grand nombre de valeurs différentes, et d'exécuter différentes parties de code suivant la valeur à laquelle elle est égale. C'est exactement à cela que sert l'instruction switch.

Note: Notez que contrairement à d'autres langages, la structure continue s'applique aux structures switch et se comporte de la même manière que break. Si vous avez un switch dans une boucle, et que vous souhaitez continuer jusqu'à la prochaine itération de la boucle extérieure, vous devez utiliser continue 2.

Note:

Notez que switch/case provoque une comparaison large.

Historique
Version | Description
7.0.0 | Plusieurs options par défaut pour l'instruction case va émettre une erreur de niveau E_COMPILE_ERROR.

Les deux exemples suivants sont deux manières différentes d'écrire la même chose, l'une en utilisant une séries de if, et l'autre en utilisant l'instruction switch :

Exemple #1 Instruction switch

<?php
if ($i == 0) {
    echo "i égal 0";
} elseif ($i == 1) {
    echo "i égal 1";
} elseif ($i == 2) {
    echo "i égal 2";
}

switch ($i) {
    case 0:
        echo "i égal 0";
        break;
    case 1:
        echo "i égal 1";
        break;
    case 2:
        echo "i égal 2";
        break;
}
?>

Exemple #2 Instruction switch utilisant une chaîne de caractères

<?php
switch ($i) {
    case "apple":
        echo "i est une pomme";
        break;
    case "bar":
        echo "i est une barre";
        break;
    case "cake":
        echo "i est un gateau";
        break;
}
?>

Il est important de comprendre que l'instruction switch exécute chacune des clauses dans l'ordre. L'instruction switch est exécutée ligne par ligne. Au début, aucun code n'est exécuté. Seulement lorsqu'un case est vérifié, PHP exécute alors les instructions correspondantes. PHP continue d'exécuter les instructions jusqu'à la fin du bloc d'instructions du switch, ou bien dès qu'il trouve l'instruction break. Si vous ne pouvez pas utiliser l'instruction break à la fin de l'instruction case, PHP continuera à exécuter toutes les instructions qui suivent. Par exemple :

<?php
switch ($i) {
    case 0:
        echo "i égal 0";
    case 1:
        echo "i égal 1";
    case 2:
        echo "i égal 2";
}
?>

Dans cet exemple, si $i est égal à 0, PHP va exécuter quand même toutes les instructions qui suivent! Si $i est égal à 1, PHP exécutera les deux dernières instructions. Et seulement si $i est égal à 2, vous obtiendrez le résultat escompté, c'est-à-dire, l'affichage de "i égal 2". Donc, l'important est de ne pas oublier l'instruction break (même s'il est possible que vous l'omettiez dans certaines circonstances).

Dans une commande switch, une condition n'est évaluée qu'une fois, et le résultat est comparé à chaque case. Dans une structure elseif, les conditions sont évaluées à chaque comparaison. Si votre condition est plus compliquée qu'une simple comparaison, ou bien fait partie d'une boucle, switch sera plus rapide.

La liste de commandes d'un case peut être vide, auquel cas PHP utilisera la liste de commandes du cas suivant.

<?php
switch ($i) {
case 0:
case 1:
case 2:
    echo "i est plus petit que 3 mais n'est pas négatif";
    break;
case 3:
    echo "i égal 3";
}
?>

Un cas spécial est default. Ce cas est utilisé lorsque tous les autres cas ont échoué. Par exemple :

<?php
switch ($i) {
    case 0:
        echo "i égal 0";
        break;
    case 1:
        echo "i égal 1";
        break;
    case 2:
        echo "i égal 2";
        break;
    default:
       echo "i n'est ni égal à 2, ni à 1, ni à 0.";
}
?>

Une autre chose à mentionner est que la valeur du case peut être toute expression de type scalaire, c'est-à-dire nombre entier, nombre à virgule flottante et chaîne de caractères. Les tableaux sont sans intérêt dans ce contexte-là.

La syntaxe alternative pour cette structure de contrôle est la suivante : (pour plus d'informations, voir syntaxes alternatives).

<?php
switch ($i):
    case 0:
        echo "i égal 0";
        break;
    case 1:
        echo "i égal 1";
        break;
    case 2:
        echo "i égal 2";
        break;
    default:
        echo "i n'est ni égal à 2, ni à 1, ni à 0";
endswitch;
?>

Il est possible d'utiliser un point-virgule plutôt que deux points après un case, comme ceci :

<?php
switch($beer)
{
    case 'leffe';
    case 'grimbergen';
    case 'guinness';
        echo 'Bon choix';
    break;
    default;
        echo 'Merci de faire un choix...';
    break;
}
?>


declare

(PHP 4, PHP 5, PHP 7)

L'élément de langage declare sert à ajouter des directives d'exécutions dans un bloc de code. La syntaxe de declare est similaire à la syntaxe des autres fonctions de contrôle :

declare (directive)
    commandes

L'expression directive permet de contrôler l'intervention du bloc declare. Actuellement, seulement deux directives sont reconnues : la directive ticks (voir plus bas pour plus de détails sur les ticks) et la directive d'encodage encoding (Voir plus bas pour plus de détails sur la directive encoding).

Version | Description
5.3.0 | Ajout de la directive encoding
7.0.0 | Ajout de la directive strict_types

Comme les directives sont gérées lors de la compilation du fichier, seulement les litéraux peuvent être utilisés comme valeur de ces directives. Les variables et constantes ne peuvent pas être utilisées. Pour illustrer :

<?php
// Ceci est correct:
declare(ticks=1);

// Ceci est incorrect:
const TICK_VALUE = 1;
declare(ticks=TICK_VALUE);
?>

L'expression commandes du bloc de declare sera exécutée. Comment elle sera exécutée, et quels effets cela aura, dépend de la directive utilisée dans le bloc directive.

La structure declare peut aussi être utilisée dans le contexte global. Elle affecte alors tout le code qui la suit (même si le fichier avec declare a été inclus après, ça n'affecte pas le fichier parent).

<?php
// Ces déclarations sont identiques.

// Vous pouvez utiliser ceci
declare(ticks=1) {
    // script entier ici
}

// ou ceci
declare(ticks=1);
// script entier ici
?>

Ticks

Un tick est un événement qui intervient toutes les N commandes bas niveau tickables, exécutées par l'analyseur dans le bloc de declare. La valeur de N est spécifiée par la syntaxe ticks=N dans le bloc de directive declare.

Toutes les commandes ne sont pas tickables. Typiquement, les expressions de condition et les expressions d'arguments ne sont pas tickables.

Un événement qui intervient à chaque tick est spécifié avec la fonction register_tick_function(). Reportez-vous à l'exemple ci-dessous pour plus de détails. Notez que plus d'un événement peut intervenir par tick.

Exemple #1 Exemple d'utilisation des ticks

<?php

declare(ticks=1);

// A function called on each tick event
function tick_handler()
{
    echo "tick_handler() called\n";
}

register_tick_function('tick_handler');

$a = 1;

if ($a > 0) {
    $a += 2;
    print($a);
}

?>

Exemple #2 Exemple d'utilisation des ticks

<?php

function tick_handler()
{
  echo "tick_handler() called\n";
}

$a = 1;
tick_handler();

if ($a > 0) {
    $a += 2;
    tick_handler();
    print($a);
    tick_handler();
}
tick_handler();

?>

Voir aussi register_tick_function() et unregister_tick_function().

L'encodage

L'encodage d'un script peut être spécifié par script en utilisant la directive encoding.

Exemple #3 Déclaration d'un encodage pour un script

<?php
declare(encoding='ISO-8859-1');
// le code
?>

Attention

Combinée avec les espaces de nommage, la seule syntaxe valable pour declare est declare(encoding='...'); où ... est la valeur de l'encodage. declare(encoding='...') {} soulèvera une erreur d'interprétation dans le cas des espaces de nommage.

La valeur d'encodage est ignorée en PHP 5.3 à moins que PHP soit compilé avec --enable-zend-multibyte.

Notez que PHP ne vous renseignera sur l'activation ou non de --enable-zend-multibyte qu'au moyen de phpinfo().

Voir aussi zend.script_encoding.


return

(PHP 4, PHP 5, PHP 7)

return retourne le contrôle du programme au module appelant. L'exécution reprend alors à l'endroit de l'invocation du module.

Si appelée depuis une fonction, la commande return termine immédiatement la fonction, et retourne l'argument qui lui est passé. return interrompt aussi l'exécution de commande eval() ou de scripts.

Si appelée depuis l'environnement global, l'exécution du script est interrompue. Si le script courant était inclus avec la structure include ou require, alors le contrôle est rendu au script appelant. De plus, si le fichier du script courant a été inclus via l'instruction include, alors la valeur retournée sera utilisée comme résultat de l'instruction include. Si return est appelée depuis le script principal, alors l'exécution du script s'arrête. Si le script courant est auto_prepend_file ou auto_append_file dans le fichier php.ini, alors l'exécution du script s'arrête.

Pour plus d'informations, voyez retourner des valeurs.

Note: Notez que puisque return est une structure de langage, et non une fonction, les parenthèses entourant les arguments ne sont pas nécessaires. Il est classique de les oublier et vous devriez le faire car PHP travaillera moins dans ce cas.

Note: Si aucun paramètre n'est fourni, alors les parenthèses peuvent être omises et NULL sera retourné. L'appel à la fonction return avec des parenthèses mais sans argument résultera en une alerte d'analyse.

Note: Vous ne devriez jamais utiliser les parenthèses autour de la variable retournée lorsque vous la retournez par référence, car cela ne fonctionnera pas. Vous ne pouvez retourner que les variables par référence, et non le résultat du traitement. Si vous utilisez return ($a);, alors vous ne retournez pas une variable mais le résultat de l'expression ($a) (qui est, bien sûr, la valeur de $a).


require

(PHP 4, PHP 5, PHP 7)

require est identique à include mise à part le fait que lorsqu'une erreur survient, il produit également une erreur fatale de niveau E_COMPILE_ERROR. En d'autres termes, il stoppera le script alors que include n'émettra qu'une alerte de niveau E_WARNING, ce qui permet au script de continuer.

Voir la documentation de l'instruction include pour en connaître le fonctionnement.


include

(PHP 4, PHP 5, PHP 7)

L'instruction de langage include inclut et exécute le fichier spécifié en argument.

Cette documentation s'applique aussi à l'instruction de langage require.

Les fichiers sont inclus suivant le chemin du fichier fourni ; si aucun n'est fourni, l'include_path sera vérifié. Si le fichier n'est pas trouvé dans l' include_path, include vérifiera dans le dossier du script appelant et dans le dossier de travail courant avant d'échouer. L'instruction include enverra une erreur de type warning si elle ne peut trouver le fichier; ce comportement est différent de require, qui enverra une erreur de niveau fatal.

Si un chemin est défini, absolu (commençant par une lettre de lecteur suivie de \ pour Windows, ou / pour Unix/Linux) ou relatif (commençant par . ou ..), l'include_path sera ignoré. Par exemple, si un nom de fichier commence par ../, PHP cherchera dans le dossier parent pour y trouver le fichier spécifié.

Pour plus d'informations sur la façon dont PHP gère les fichiers inclus ainsi que le chemin d'inclusion, reportez-vous à la documentation relative à l'include_path.

Lorsqu'un fichier est inclus, le code le composant hérite de la portée des variables de la ligne où l'inclusion apparaît. Toutes les variables disponibles à cette ligne dans le fichier appelant seront disponibles dans le fichier appelé, à partir de ce point. Cependant, toutes les fonctions et classes définies dans le fichier inclus ont une portée globale.

Exemple #1 Exemple avec include

vars.php
<?php

$couleur = 'verte';
$fruit = 'pomme';

?>

test.php
<?php

echo "Une $fruit $couleur"; // Une

include 'vars.php';

echo "Une $fruit $couleur"; // Une pomme verte

?>

Si l'inclusion intervient à l'intérieur d'une fonction, le code inclus sera alors considéré comme faisant partie de la fonction. Cela modifie donc le contexte de variables accessibles. Une exception à cette règle : les constantes magiques sont analysées par l'analyseur avant que l'inclusion n'intervienne.

Exemple #2 Inclusion de fichiers dans une fonction

<?php

function foo()
{
    global $couleur;

    include 'vars.php';

    echo "Une $fruit $couleur";
}

/* vars.php est dans le contexte de foo()     *
 * donc $fruit n'est pas disponible hors de   *
 * cette fonction. $couleur l'est, car c'est  *
 * une variable globale                       */

foo();                      // Une pomme verte
echo "Une $fruit $couleur"; // Une  verte

?>

Il est important de noter que lorsqu'un fichier est include ou require, les erreurs d'analyse apparaîtront en HTML tout au début du fichier, et l'analyse du fichier parent ne sera pas interrompue. Pour cette raison, le code qui est dans le fichier doit être placé entre les balises habituelles de PHP.

Si les gestionnaires d'inclusion d'URL sont activés dans PHP, vous pouvez localiser le fichier avec une URL (via HTTP ou bien avec un gestionnaire adapté : voir Liste des protocoles et des gestionnaires supportés pour une liste des protocoles), au lieu d'un simple chemin local. Si le serveur distant interprète le fichier comme du code PHP, des variables peuvent être transmises au serveur distant via l'URL et la méthode GET. Ce n'est pas, à strictement parler, la même chose que d'hériter du contexte de variable. Le fichier inclus est en fait un script exécuté à distance, et son résultat est inclus dans le code courant.

Exemple #3 Utiliser l'instruction include via HTTP

<?php

/* Cet exemple suppose que www.example.com est configuré pour traiter
 * les fichiers .php et non pas les fichiers .txt. De plus,
 * 'Work' signifie ici que les variables
 * $foo et $bar sont disponibles dans le fichier inclus
 */

// Ne fonctionne pas : file.txt n'a pas été traité par www.example.com comme du PHP
include 'http://www.example.com/file.txt?foo=1&bar=2';

// Ne fonctionne pas : le script cherche un fichier nommé
// 'file.php?foo=1&bar=2' sur le système local
include 'file.php?foo=1&bar=2';

// Réussi
include 'http://www.example.com/file.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'file.txt';  // Ok.
include 'file.php';  // Ok.

?>

Avertissement

Alerte de sécurité

Un fichier distant peut être traité sur le serveur distant (dépendamment de l'extension du fichier et si le serveur distant exécute PHP ou non) mais il doit toujours produire un script PHP valide parce qu'il sera traité sur le serveur local. Si le fichier du serveur distant doit être traité sur place et affiché seulement, readfile() est une fonction beaucoup plus appropriée. Autrement, vous devriez bien faire attention à sécuriser le script distant afin qu'il produise un code valide et désiré.

Voir aussi travailler avec les fichiers distants, fopen() et file() pour des informations relatives.

Gestion du retour : include retourne FALSE et émet une alerte. Les inclusions avec succès, y compris si elles sont écrasées par le fichier inclus, retourne 1. Il est possible d'exécuter la structure de langage return à l'intérieur d'un fichier inclus afin de déterminer le processus dans ce fichier, et retourner au script qui l'a appelé. De plus, il est possible de retourner des valeurs depuis des fichiers inclus. Vous pouvez prendre la valeur depuis l'appel au fichier inclus comme vous le souhaitez depuis une fonction normale. Ce n'est cependant pas possible lors de l'inclusion de fichiers distants, et ce, tant que la sortie du fichier distant n'a pas de balises PHP de début et de fin valides (tout comme pour les fichiers locaux). Vous pouvez déclarer les variables nécessaires à l'intérieur de ces balises et elles seront introduites à l'endroit où le fichier a été inclus.

Comme include est une structure de langage particulière, les parenthèses ne sont pas nécessaires autour de l'argument. Faites attention lorsque vous comparez la valeur retournée.

Exemple #4 Comparaison de la valeur de retour d'une inclusion

<?php
// Ne fonctionne pas, évalué comme include(('vars.php') == 'OK'), i.e. include('')
if (include('vars.php') == 'OK') {
    echo 'OK';
}

// Fonctionne
if ((include 'vars.php') == 'OK') {
    echo 'OK';
}
?>

Exemple #5 include et return

return.php
<?php

$var = 'PHP';

return $var;

?>

noreturn.php
<?php

$var = 'PHP';

?>

testreturns.php
<?php

$foo = include 'return.php';

echo $foo; // affiche 'PHP'

$bar = include 'noreturn.php';

echo $bar; // affiche 1

?>

$bar a la valeur de 1 car l'inclusion était réussie. Notez la différence entre les deux exemples ci-dessus. Le premier utilise la commande return dans le fichier inclus, alors que le second ne le fait pas. Si le fichier ne peut être inclus, FALSE est retourné et une erreur de niveau E_WARNING est envoyée.

S'il y a des fonctions définies dans le fichier inclus, elles peuvent être utilisées dans le fichier principal si elles sont avant le return ou après. Si le fichier est inclus deux fois, PHP 5 enverra une erreur fatale car les fonctions seront déjà déclarées, alors que PHP 4 ne dira rien sur les fonctions définies après return. Il est recommandé d'utiliser include_once au lieu de vérifier si le fichier a déjà été inclus et donc de retourner conditionnellement l'inclusion du fichier.

Une autre façon d'inclure un fichier PHP dans une variable est de capturer la sortie en utilisant les fonctions de contrôle de sortie avec include. Par exemple :

Exemple #6 Utilisation de la sortie du buffer pour inclure un fichier PHP dans une chaîne

<?php
$string = get_include_contents('somefile.php');

function get_include_contents($filename) {
    if (is_file($filename)) {
        ob_start();
        include $filename;
        return ob_get_clean();
    }
    return false;
}

?>

Pour automatiquement inclure des fichiers dans vos scripts, voyez également les options de configuration auto_prepend_file et auto_append_file du php.ini.

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Voir aussi require, require_once, include_once, get_included_files(), readfile(), virtual(), et include_path.


require_once

(PHP 4, PHP 5, PHP 7)

L'instruction require_once est identique à require mis à part que PHP vérifie si le fichier a déjà été inclus, et si c'est le cas, ne l'inclut pas une deuxième fois.

Voir la documention de include_once pour plus d'informations concernant le comportement de _once, et ce qui le différencie des instructions sans _once.


include_once

(PHP 4, PHP 5, PHP 7)

La structure include_once inclut et évalue le fichier spécifié durant l'exécution du script. Le comportement est similaire à include, mais la différence est que si le code a déjà été inclus, il ne le sera pas une seconde fois, et include_once retourne TRUE. Comme son nom l'indique, le fichier sera inclut une seule fois.

La structure include_once est utilisée de préférence lorsque le fichier va être inclus ou évalué plusieurs fois dans un script, ou bien lorsque vous voulez être sûr qu'il ne sera inclus qu'une seule fois, pour éviter des redéfinitions de fonctions ou de classes.

Voyez la structure include pour plus de détails sur son fonctionnement.

Note:

En PHP 4, la fonctionnalité _once diffère avec les systèmes insensibles à la casse (comme Windows).

Exemple #1 include_once avec un OS insensible à la casse en PHP 4

<?php
include_once "a.php"; // ceci inclut le fichier a.php
include_once "A.php"; // ceci inclut encore le fichier a.php! (uniquement en PHP 4)
?>

Ce comportement a changé en PHP 5 : le chemin est normalisé d'abord, donc, le fichier C:\PROGRA~1\A.php est reconnu comme étant identique au fichier C:\Program Files\a.php et le fichier ne sera inclus qu'une seule fois.


goto

(PHP 5 >= 5.3.0, PHP 7)

Quelle est la chose la plus bizarre lors de l'utilisation de goto ?
Image fournie par » xkcd

L'opérateur goto peut être utilisé pour continuer l'exécution du script à un autre point du programme. La cible est spécifiée par un label, suivi de deux-point, et l'instruction goto est ensuite suivie de ce label. goto n'est pas totalement sans limitations. L'étiquette cible doit être dans le même contexte et fichier, ce qui signifie qu'il n'est pas possible de changer de méthode ou de fonction, ni de se rendre dans une autre fonction. Vous pouvez sortir d'une fonction, et l'utilisation courante est alors de se servir de goto comme un break.

Exemple #1 Exemple avec goto

<?php
goto a;
echo 'Foo';

a:
echo 'Bar';
?>

L'exemple ci-dessus va afficher :

Bar

Exemple #2 Exemple de boucle avec goto

<?php
for($i=0,$j=50; $i<100; $i++) {
  while($j--) {
    if($j==17) goto end;
  }
}
echo "i = $i";
end:
echo 'j hit 17';
?>

L'exemple ci-dessus va afficher :

j hit 17

Exemple #3 Ce goto ne fonctionne pas

<?php
goto loop;
for($i=0,$j=50; $i<100; $i++) {
  while($j--) {
    loop:
  }
}
echo "$i = $i";
?>

L'exemple ci-dessus va afficher :

Fatal error: 'goto' into loop or switch statement is disallowed in
script on line 2

Note:

L'opérateur goto est disponible depuis PHP 5.3.


Les fonctions

Sommaire

  • Les fonctions définies par l'utilisateur
  • Les arguments de fonction
  • Les valeurs de retour
  • Fonctions variables
  • Fonctions internes
  • Fonctions anonymes


Les fonctions définies par l'utilisateur

Une fonction peut être définie en utilisant la syntaxe suivante :

Exemple #1 Pseudo code pour illustrer l'usage d'une fonction

<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo "Exemple de fonction.\n";
    return $retval;
}
?>

Tout code PHP, correct syntaxiquement, peut apparaître dans une fonction et dans des définitions de classe.

Les noms de fonctions suivent les mêmes règles que les autres labels en PHP. Un nom de fonction valide commence par une lettre ou un souligné, suivi par un nombre quelconque de lettres, de nombres ou de soulignés. Ces règles peuvent être représentées par l'expression rationnelle suivante : [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.

Astuce

Vous pourriez également avoir besoin de jeter un oeil sur Guide de nommage de l'espace utilisateur.

Les fonctions n'ont pas besoin d'être définies avant d'être utilisées, SAUF lorsqu'une fonction est définie conditionnellement, comme montré dans les deux exemples suivants.

Lorsqu'une fonction est définie de manière conditionnelle, comme dans les exemples ci-dessous, leur définition doit précéder leur utilisation.

Exemple #2 Fonctions conditionnelles

<?php

$makefoo = true;

/* Impossible d'appeler foo() ici,
   car cette fonction n'existe pas.
   Mais nous pouvons utiliser bar() */

bar();

if ($makefoo) {
  function foo()
  {
    echo "Je n'existe pas tant que le programme n'est pas passé ici.\n";
  }
}

/* Maitenant, nous pouvons appeler foo()
   car $makefoo est évalué à vrai */

if ($makefoo) foo();

function bar()
{
  echo "J'existe dès le début du programme.\n";
}

?>

Exemple #3 Fonctions dans une autre fonction

<?php
function foo()
{
  function bar()
  {
    echo "Je n'existe pas tant que foo() n'est pas appelé.\n";
  }
}

/* Impossible d'appeler bar() ici
   car il n'existe pas. */

foo();

/* Maintenant, nous pouvons appeler bar(),
   car l'utilisation de foo() l'a rendue
   accessible. */

bar();

?>

Toutes les fonctions et classes en PHP ont une portée globale - elles peuvent être appelées à l'extérieur d'une fonction si elles ont été définies à l'intérieur et vice-versa.

PHP ne supporte pas la surchage, la destruction et la redéfinition de fonctions déjà déclarées.

Note: Les noms de fonctions sont insensibles à la casse, et il est généralement admis que les fonctions doivent être appelées avec le nom utilisé dans leur déclaration, y compris la casse.

Les listes variables d'arguments de fonction et les valeurs par défaut d'arguments sont supportés : voir les fonctions de références que sont func_num_args(), func_get_arg(), et func_get_args() pour plus d'informations.

Il est possible d'appeler des fonctions récursives en PHP.

Exemple #4 Fonctions récursives

<?php
function recursion($a)
{
    if ($a < 20) {
        echo "$a\n";
        recursion($a + 1);
    }
}
?>

Note: Les appels de méthodes/fonctions récursives avec 100-200 degrés de récursivité peuvent remplir la pile et ainsi, terminer le script courant. A noter qu'une récursion infinie est considérée comme une erreur de programmation.


Les arguments de fonction

Des informations peuvent être passées à une fonction en utilisant une liste d'arguments, dont chaque expression est séparée par une virgule. Les arguments seront évalués depuis la gauche vers la droite.

PHP supporte le passage d'arguments par valeur (comportement par défaut), le passage par référence, et des valeurs d'arguments par défaut. Une liste variable d'arguments est également supportée.

Exemple #1 Nombre variable d'arguments sous forme de tableau

<?php
function takes_array($input)
{
    echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>

Passage d'arguments par référence

Par défaut, les arguments sont passés à la fonction par valeur (aussi, changer la valeur d'un argument dans la fonction ne change pas sa valeur à l'extérieur de la fonction). Si vous voulez que vos fonctions puissent changer la valeur des arguments, vous devez passer ces arguments par référence.

Si vous voulez qu'un argument soit toujours passé par référence, vous pouvez ajouter un '&' devant l'argument dans la déclaration de la fonction :

Exemple #2 Passage d'arguments par référence

<?php
function add_some_extra(&$string)
{
    $string .= ', et un peu plus.';
}
$str = 'Ceci est une chaîne';
add_some_extra($str);
echo $str; // Affiche : 'Ceci est une chaîne, et un peu plus.'
?>

Valeur par défaut des arguments

Vous pouvez définir comme en C++ des valeurs par défaut pour les arguments de type scalaire :

Exemple #3 Valeur par défaut des arguments de fonctions

<?php
function servir_cafe ($type = "cappuccino")
{
    return "Servir un $type.\n";
}
echo servir_cafe();
echo servir_cafe(null);
echo servir_cafe("espresso");
?>

L'exemple ci-dessus va afficher :

Servir un cappuccino.
Servir un .
Servir un espresso.

PHP vous autorise à utiliser des tableau ainsi que le type spécial NULL comme valeur par défaut, par exemple :

Exemple #4 Utilisation de type non scalaire comme valeur par défaut

<?php
function servir_cafe($types = array("cappuccino"), $coffeeMaker = NULL)
{
    $device = is_null($coffeeMaker) ? "les mains" : $coffeeMaker;
    return "Préparation d'une tasse de ".join(", ", $types)." avec $device.\n";
}
echo servir_cafe();
echo servir_cafe(array("cappuccino", "lavazza"), "une cafetière");
?>

La valeur par défaut d'un argument doit obligatoirement être une constante, et ne peut être ni une variable, ni un membre de classe, ni un appel de fonction.

Il est à noter que si vous utilisez des arguments avec valeur par défaut avec d'autres sans valeur par défaut, les premiers doivent être placés à la suite de tous les paramètres sans valeur par défaut. Sinon, cela ne fonctionnera pas. Considérons le code suivant :

Exemple #5 Les arguments sans valeur par défaut doivent être en premiers : erreur

<?php
function faireunyaourt ($type = "acidophilus", $flavour)
{
    return "Préparer un bol de $type $flavour.\n";
}

echo faireunyaourt("framboise");   // ne fonctionne pas comme voulu
?>

L'exemple ci-dessus va afficher :

Warning: Missing argument 2 in call to faireunyaourt() in
/usr/local/etc/httpd/htdocs/phptest/functest.html on line 41
Préparer un bol de framboise .

Maintenant comparons l'exemple précédent avec l'exemple suivant :

Exemple #6 Les arguments sans valeur par défaut doivent être en premiers : valide

<?php
function faireunyaourt ($flavour, $type = "acidophilus")
{
    return "Préparer un bol de $type $flavour.\n";
}

echo faireunyaourt ("framboise");   // fonctionne comme voulu
?>

L'exemple ci-dessus va afficher :

Préparer un bol de acidophilus framboise.

Note: Depuis PHP 5, les arguments passés par référence peuvent avoir une valeur par défaut.

Déclarations de type

Note:

Les déclarations de type sont aussi connues sous le nom de "type hints" en PHP 5.

Les déclarations de type permettent aux fonctions de requérir que ertains paramètre soit d'un certain type lors de l'appel de celles ci. Si la valeur donnée est d'un type incorrect alors une erreur est générée : en PHP 5, cela sera une erreur fatale récupérable tandis que PHP 7 lévera une exception TypeError.

Pour spécifier une déclaration de type, le type doit être ajouté avant le nom du paramètre. La déclaration peut accepter les valeurs NULL si la valeur par défaut du paramètre est définie à NULL.

Types valides

Type | Description | Version PHP minimum
Nom de la Classe/interface | Le paramètre doit être une instanceof du la classe ou interface donnée. | PHP 5.0.0
self | Le paramètre doit être une instanceof de la même classe qui a définie la méthode. Ceci ne peut être utilisé que sur les méthodes des classes et des instances. | PHP 5.0.0
array | Le paramètre doit être un array. | PHP 5.1.0
callable | Le paramètre doit être un callable valide. | PHP 5.4.0
bool | Le paramètre doit être un boolean. | PHP 7.0.0
float | Le paramètre doit être un nombre flottant (float). | PHP 7.0.0
int | Le paramètre doit être un integer. | PHP 7.0.0
string | Le paramètre doit être une string. | PHP 7.0.0
Avertissement

Utiliser des alias pour les types scalaires ci-dessus n'est pas supporté. A la place, ils sont traités comme noms de classe ou d'interface. Par exemple, utiliser boolean comme paramètre ou type retourné nécessite un argument ou une valeur retournée qui est une instanceof la classe ou l'interface boolean, plutôt que de type bool :

<?php
 function test(boolean $param) {}
 test(true);
 ?>

L'exemple ci-dessus va afficher :

 Fatal error: Uncaught TypeError: Argument 1 passed to test() must be an instance of boolean, boolean given, called in - on line 1 and defined in -:1

Exemples

Exemple #7 Déclaration basique de type de classe

<?php
class C {}
class D extends C {}

// Ceci n'étend pas C
class E {}

function f(C $c) {
    echo get_class($c)."\n";
}

f(new C);
f(new D);
f(new E);
?>

L'exemple ci-dessus va afficher :

C
D

Fatal error: Uncaught TypeError: Argument 1 passed to f() must be an instance of C, instance of E given, called in - on line 14 and defined in -:8
Stack trace:
#0 -(14): f(Object(E))
#1 {main}
  thrown in - on line 8

Exemple #8 Déclaration basique de type interface

<?php
interface I { public function f(); }
class C implements I { public function f() {} }

// Ceci n'implémente pas I.
class E {}

function f(I $i) {
    echo get_class($i)."\n";
}

f(new C);
f(new E);
?>

L'exemple ci-dessus va afficher :

C

Fatal error: Uncaught TypeError: Argument 1 passed to f() must implement interface I, instance of E given, called in - on line 13 and defined in -:8
Stack trace:
#0 -(13): f(Object(E))
#1 {main}
  thrown in - on line 8

Exemple #9 Déclaration de type avec valeur de type NULL

<?php
class C {}

function f(C $c = null) {
    var_dump($c);
}

f(new C);
f(null);
?>

L'exemple ci-dessus va afficher :

object(C)#1 (0) {
}
NULL

Typage strict

Par défaut, PHP va convertir les mauvais types vers le type scalaire attendu tant que possible. Par exemple, une fonction, qui attend comme paramètre un integer (entier), a laquelle est passée une string (chaine de caractères) recevra une variable de type string.

Il est possible d'activer un typage strict fichier par fichier. Dans ce mode, seule une variable du type exact au type attendu dans la déclaration sera acceptée sinon une exception du type TypeError sera levée. La seule exception à cette règle est qu'un entier (integer) peut être passé à une fonction attendant un nombre flottant (float). Les appels aux fonctions depuis des fonctions internes ne seront pas affectés par la déclaration strict_types.

Pour activer le typage strict, l'expression declare est utilisée avec la déclaration strict_types :

Attention

L'activation du mode strict affecte également les déclarations de type retourné.

Note:

Le typage strict s'applique aux appels de fonction effectués depuis l'intérieur d'un fichier dont le typage strict est actif, et non aux fonctions déclarées dans ce fichier. Si un fichier dont le typage strict n'est pas activé effectue un appel à une fonction qui a été définie dans un fichier dont le type strict est actif, la préférence de l'appelant sera respecté, et la valeur sera forcée.

Note:

Le typage strict n'est défini que pour les déclarations de type scalaire ; aussi, il nécessite PHP 7.0.0 ou supérieur, sachant que les déclarations de type scalaire ont été ajoutés dans cette version.

Exemple #10 Typage strict

<?php
declare(strict_types=1);

function sum(int $a, int $b) {
    return $a + $b;
}

var_dump(sum(1, 2));
var_dump(sum(1.5, 2.5));
?>

L'exemple ci-dessus va afficher :

int(3)

Fatal error: Uncaught TypeError: Argument 1 passed to sum() must be of the type integer, float given, called in - on line 9 and defined in -:4
Stack trace:
#0 -(9): sum(1.5, 2.5)
#1 {main}
  thrown in - on line 4

Exemple #11 Typage faible

<?php
function sum(int $a, int $b) {
    return $a + $b;
}

var_dump(sum(1, 2));

// Ceux-ci vont être forcés en entier: notez l'affichage ci-dessous !
var_dump(sum(1.5, 2.5));
?>

L'exemple ci-dessus va afficher :

int(3)
int(3)

Exemple #12 Capturer l'exception de type TypeError

<?php
declare(strict_types=1);

function sum(int $a, int $b) {
    return $a + $b;
}

try {
    var_dump(sum(1, 2));
    var_dump(sum(1.5, 2.5));
} catch (TypeError $e) {
    echo 'Erreur : '.$e->getMessage();
}
?>

L'exemple ci-dessus va afficher :

int(3)
Erreur : Argument 1 passed to sum() must be of the type integer, float given, called in - on line 10

Nombre d'arguments variable

PHP supporte les fonctions à nombre d'arguments variable. Ceci est implémenté en utilisant le mot clé ... en PHP 5.6 et suivants, et en utilisant les fonctions func_num_args(), func_get_arg() et func_get_args() en PHP 5.5 et antérieurs.

... en PHP 5.6+

En PHP 5.6 et suivants, la liste des arguments peut inclure le mot clé ... pour indiquer que cette fonction accepte un nombre variable d'arguments. Les arguments seront passés dans la variable fournie sous forme d'un tableau ; par exemple :

Exemple #13 Utilisation de ... pour accéder aux arguments variables

<?php
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);
?>

L'exemple ci-dessus va afficher :

10

Vous pouvez aussi utiliser le mot clé ... lors de l'appel aux fonctions pour extraire le tableau, la variable Traversable ou le litéral dans la liste d'arguments :

Exemple #14 Utilisation de ... pour fournir des arguments

<?php
function add($a, $b) {
    return $a + $b;
}

echo add(...[1, 2])."\n";

$a = [1, 2];
echo add(...$a);
?>

L'exemple ci-dessus va afficher :

3
3

Vous pouvez spécifier des arguments classiques avant le mot clé .... Dans ce cas, seuls les arguments finaux qui ne correspondent pas à un argument classique seront ajoutés au tableau généré par ....

Il est également possible d'ajouter un transtypage avant le mot clé .... Si ce transtypage est présent, alors tous les arguments capturés par ... seront des objets de la classe visée.

Exemple #15 Transtypage d'arguments variables

<?php
function total_intervals($unit, DateInterval ...$intervals) {
    $time = 0;
    foreach ($intervals as $interval) {
        $time += $interval->$unit;
    }
    return $time;
}

$a = new DateInterval('P1D');
$b = new DateInterval('P2D');
echo total_intervals('d', $a, $b).' jours';

// Ceci échouera, car null n'est pas un objet DateInterval.
echo total_intervals('d', null);
?>

L'exemple ci-dessus va afficher :

3 jours
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2

Pour finir, vous pouvez passer des arguments variables par référence en préfixant le mot clé ... d'un ET commercial (&).

Les anciennes versions de PHP

Aucune syntaxe spéciale n'est nécessaire pour spécifier qu'une fonction est variable ; cependant, l'accès aux arguments de la fonction nécessite l'utilisation des fonctions func_num_args(), func_get_arg() et func_get_args().

Le premier exemple ci-dessus doit être implémenté comme ceci en PHP 5.5 et antérieurs :

Exemple #16 Accès aux arguments variables en PHP 5.5 et antérieurs

<?php
function sum() {
    $acc = 0;
    foreach (func_get_args() as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);
?>

L'exemple ci-dessus va afficher :

10


Les valeurs de retour

Les valeurs sont renvoyées en utilisant une instruction de retour optionnelle. Tous les types de variables peuvent être renvoyés, tableaux et objets compris. Cela fait que la fonction finit son exécution immédiatement et passe le contrôle à la ligne appelante. Voir return pour plus d'informations.

Note:

Si return est omis, la valeur NULL sera retournée.

Utilisation de return

Exemple #1 Utilisation de return

<?php
function carre($num)
{
    return $num * $num;
}
echo carre(4); // Affiche '16'
?>

Une fonction ne peut pas renvoyer plusieurs valeurs en même temps, mais vous pouvez obtenir le même résultat en renvoyant un tableau.

Exemple #2 Retourner un tableau d'une fonction

<?php
function petit_nombre()
{
    return array (0, 1, 2);
}
list ($zero, $un, $deux) = petit_nombre();
?>

Pour retourner une référence d'une fonction, utilisez l'opérateur & aussi bien dans la déclaration de la fonction que dans l'assignation de la valeur de retour.

Exemple #3 Retourner une référence d'une fonction

<?php
function &retourne_reference()
{
    return $uneref;
}

$newref =& retourne_reference();
?>

Pour plus d'informations sur les références, référez-vous à l'explication sur les références.

Déclaration des types de retour

PHP 7 ajoute le support des déclarations du type de retours. De façon similaire aux déclarations du type des arguments, les déclarations du type de retour spécifie le type de la valeur qui sera retournée par une fonction. Les mêmes types sont disponibles pour le typage du retour que pour le typage des arguments.

Le typage strict affecte aussi les déclarations du type de retour. Dans le mode faible par défaut, les valeurs retournées seront trans-typés vers le type demandé si elles ne sont pas déjà de celui ci. Dans le mode strict, la valeur retournée doit être du bon type sinon une exception TypeError sera levée.

Note:

Lors de la surcharge d'une méthode parente, la méthode fille doit retourner une valeur cohérente avec le type de valeur retournée par la méthode parente. Si le parent ne défini par de type de retour, il doit en être de même pour la fille.

Exemples

Exemple #4 Déclaration basique de type de retour

<?php
function sum($a, $b): float {
    return $a + $b;
}

// Note qu'une valeur flottante sera retournée.
var_dump(sum(1, 2));
?>

L'exemple ci-dessus va afficher :

float(3)

Exemple #5 Le mode strict en action

<?php
declare(strict_types=1);

function sum($a, $b): int {
    return $a + $b;
}

var_dump(sum(1, 2));
var_dump(sum(1, 2.5));
?>

L'exemple ci-dessus va afficher :

int(3)

Fatal error: Uncaught TypeError: Return value of sum() must be of the type integer, float returned in - on line 5 in -:5
Stack trace:
#0 -(9): sum(1, 2.5)
#1 {main}
  thrown in - on line 5

Exemple #6 Retourner un objet

<?php
class C {}

function getC(): C {
    return new C;
}

var_dump(getC());
?>

L'exemple ci-dessus va afficher :

object(C)#1 (0) {
}


Fonctions variables

PHP supporte le concept de fonctions variables. Cela signifie que si le nom d'une variable est suivi de parenthèses, PHP recherchera une fonction de même nom, et essaiera de l'exécuter. Cela peut servir, entre autres, pour faire des fonctions de rappel, des tables de fonctions...

Les fonctions variables ne peuvent pas fonctionner avec les éléments de langage comme les echo, print, unset(), isset(), empty(), include, require etc. Vous devez utiliser votre propre gestion de fonctions pour utiliser un de ces éléments de langages comme fonctions variables.

Exemple #1 Exemple de fonction variable

<?php
function foo() {
    echo "dans foo()<br />\n";
}

function bar($arg = '')
{
    echo "Dans bar(); l'argument était '$arg'.<br />\n";
}

// Ceci est une fonction détournée de echo
function echoit($string)
{
    echo $string;
}

$func = 'foo';
$func();        // Appel foo()

$func = 'bar';
$func('test');  // Appel bar()

$func = 'echoit';
$func('test');  // Appel echoit()
?>

Vous pouvez aussi appeler les méthodes d'un objet en utilisant le système des fonctions variables.

Exemple #2 Exemple de méthode variable

<?php
class Foo
{
    function Variable()
    {
        $name = 'Bar';
        $this->$name(); // Appelle la méthode Bar()
    }

    function Bar()
    {
        echo "C'est Bar";
    }
}

$foo = new Foo();
$funcname = "Variable";
$foo->$funcname();  // Appelle $foo->Variable()

?>

Lors de l'appel à des méthodes statiques, l'appel fonction est meilleur que l'opérateur de propriété statique :

Exemple #3 Exemple de méthode variable avec des propriétés statiques

<?php
class Foo
{
    static $variable = 'static property';
    static function Variable()
    {
        echo 'Method Variable called';
    }
}

echo Foo::$variable; // Ceci affiche 'static property'. Il est nécessaire d'avoir une $variable dans le contexte.
$variable = "Variable";
Foo::$variable();  // Ceci appelle $foo->Variable(), lisant ainsi la $variable depuis le contexte.

?>

Depuis PHP 5.4.0, vous pouvez appeler n'importe quel callable stocké dans une variable.

Exemple #4 callables complexe

<?php
class Foo
{
    static function bar()
    {
        echo "bar\n";
    }
    function baz()
    {
        echo "baz\n";
    }
}

$func = array("Foo", "bar");
$func(); // Affiche "bar"
$func = array(new Foo, "baz");
$func(); // Affiche "baz"
$func = "Foo::bar";
$func(); // Affiche "bar" depuis PHP 7.0.0; avant, émettait une fatal error

Voir aussi is_callable(), call_user_func(), les variables variables et function_exists().

Historique

Version | Description
7.0.0 | 'ClassName::methodName' est autorisée comme fonction variable.
5.4.0 | Les tableaux, qui sont des callables valides, sont autorisés comme fonctions variables .


Fonctions internes

PHP dispose de nombreuses fonctions et structures standards. Il y a aussi des fonctions qui requièrent des extensions spécifiques de PHP, sans lesquelles vous obtiendrez l'erreur fatale undefined function. Par exemple, pour utiliser les fonctions d'images, telles que imagecreatetruecolor(), vous aurez besoin du support de GD dans PHP. Ou bien, pour utiliser mysql_connect(), vous aurez besoin de l'extension MySQL. Il y a des fonctions de base qui sont incluses dans toutes les versions de PHP, telles que les fonctions de chaînes de caractères et les fonctions de variables. Utilisez phpinfo() ou get_loaded_extensions() pour savoir quelles sont les extensions qui sont compilées avec votre PHP. Notez aussi que de nombreuses extensions sont activées par défaut, et que le manuel PHP est compartimenté par extension. Voyez les chapitres de configuration, installation ainsi que les détails particuliers à chaque extension, pour savoir comment les mettre en place.

Lire et comprendre le prototype d'une fonction est décrit dans l'annexe Comment lire la définition d'une fonction (prototype). Il est important de comprendre ce qu'une fonction retourne, ou si une fonction travaille directement sur la valeur des paramètres fournis. Par exemple, str_replace() va retourner une chaîne modifiée, tandis que usort() travaille directement sur la variable passée en paramètre. Chaque page du manuel a des informations spécifiques sur chaque fonction, comme le nombre de paramètres, les évolutions de spécifications, les valeurs retournées en cas de succès ou d'échec, et la disponibilité en fonction des versions. Bien connaître ces différences, parfois subtiles, est crucial pour bien programmer en PHP.

Note: Si les paramètres donnés à une fonction ne sont pas corrects, comme le fait de passer un tableau alors qu'une chaîne de caractères est attendue, la valeur retournée de la fonction est indéfinie. Dans ce cas, la fonction retournera la plupart du temps une valeur NULL mais ce n'est juste qu'une convention et ne peut être considéré comme une certitude.

Voir aussi function_exists(), l'index des fonctions, get_extension_funcs() et dl().


Fonctions anonymes

Les fonctions anonymes, aussi appelées fermetures ou closures permettent la création de fonctions sans préciser leur nom. Elles sont particulièrement utiles comme fonctions de rappel, mais leur utilisation n'est pas limitée à ce seul usage.

Les fonctions anonymes sont implémentées en utilisant la classe Closure.

Exemple #1 Exemples avec des fonctions anonymes

<?php
echo preg_replace_callback('~-([a-z])~', function ($match) {
    return strtoupper($match[1]);
}, 'bonjour-le-monde');
?>

Les fonctions anonymes peuvent aussi être utilisées comme valeurs de variables. PHP va automatiquement convertir ces expressions en objets Closure. Assigner une fermeture à une variable est la même chose qu'un assignement classique, y compris pour le point-virgule final.

Exemple #2 Assignation de fonction anonyme à une variable

<?php
$greet = function($name)
{
    printf("Bonjour %s\r\n", $name);
};

$greet('World');
$greet('PHP');
?>

Les fonctions anonymes peuvent hériter des variables du contexte de leur parent. Ces variables doivent alors être passées dans la construction de langage use.

Exemple #3 Héritage de variable depuis le contexte parent

<?php
$message = 'hello';

// Pas de "use"
$example = function () {
    var_dump($message);
};
$example();

// Hérite $message
$example = function () use ($message) {
    var_dump($message);
};
$example();

// La valeur de la variable héritée est définie lors que la fonction est
// définie non quand elle est appelée
$message = 'world';
$example();

// Réinitialisation de la variable message
$message = 'hello';

// Héritage par référence
$example = function () use (&$message) {
    var_dump($message);
};
$example();

// Le changement de valeur dans le contexte parent est reflété lors de
// l'appel de la fonction.
$message = 'world';
$example();

// Les fonctions anonymes peuvent accépté des arguments classiques
$example = function ($arg) use ($message) {
    var_dump($arg . ' ' . $message);
};
$example("hello");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Notice: Undefined variable: message in /example.php on line 6
NULL
string(5) "hello"
string(5) "hello"
string(5) "hello"
string(5) "world"
string(11) "hello world"

L'héritage du contexte parent n'est pas la même chose que les variables de l'environnement global. Les variables globales existent dans le contexte global, qui est le même, quelle que que soit la fonction qui s'exécute. Le contexte parent d'une fonction anonyme est la fonction dans laquelle la fonction a été déclarée (pas nécessairement celle qui appelle). Voyez l'exemple ci-dessous :

Exemple #4 Fonctions anonymes et contexte

<?php
// Un panier d'achat simple, qui contient une liste de produits
// choisis et la quantité désirée de chaque produit. Il inclut
// une méthode qui calcule le prix total des éléments dans le panier
// en utilisant une fonction de rappel anonyme.
class Panier
{
    const PRICE_BEURRE  = 1.00;
    const PRICE_LAIT    = 3.00;
    const PRICE_OEUF    = 6.95;

    protected $products = array();

    public function add($product, $quantity)
    {
        $this->products[$product] = $quantity;
    }

    public function getQuantity($product)
    {
        return isset($this->products[$product]) ? $this->products[$product] :
               FALSE;
    }

    public function getTotal($tax)
    {
        $total = 0.00;

        $callback =
            function ($quantity, $product) use ($tax, &$total)
            {
                $pricePerItem = constant(__CLASS__ . "::PRICE_" .
                    strtoupper($product));
                $total += ($pricePerItem * $quantity) * ($tax + 1.0);
            };

        array_walk($this->products, $callback);
        return round($total, 2);
    }
}

$mon_panier = new Panier;

// Ajout d'élément au panier
$mon_panier->add('beurre', 1);
$mon_panier->add('lait', 3);
$mon_panier->add('oeuf', 6);

// Affichage du prix avec 5.5% de TVA
print $mon_panier->getTotal(0.055) . "\n";
// Le résultat sera 54.29
?>

Exemple #5 Liage automatique de $this

<?php

class Test
{
    public function testing()
    {
        return function() {
            var_dump($this);
        };
    }
}

$object = new Test;
$function = $object->testing();
$function();

?>

L'exemple ci-dessus va afficher :

object(Test)#1 (0) {
}

Résultat de l'exemple ci-dessus en PHP 5.3 :

Notice: Undefined variable: this in script.php on line 8
NULL

Depuis PHP 5.4.0, lorsque déclaré dans le contexte d'une classe, la classe courante est automatiquement liée, rendant $this disponible dans le contexte de la fonction. Si ce liage automatique de la classe courante n'est pas souhaitée, alors les fonctions anonymes statiques peuvent être utilisées à la place.

Les fonctions anonymes statiques

Depuis PHP 5.4.0, les fonctions anonymes peuvent être déclarées statiquement. Ceci permet de ne pas lier automatiquement la classe courante à la fonction. Les objets peuvent aussi ne pas être liés lors de l'exécution.

Exemple #6 Tentative d'utiliser $this dans une fonction anonyme statique

<?php

new class {
    function __construct()
    {
        (static function() {
            var_dump($this);
        })();
    }
};
?>

L'exemple ci-dessus va afficher :

Notice: Undefined variable: this in %s on line %d
NULL

Exemple #7 Tentative de liage d'un objet à une fonction anonyme statique

<?php

(static function() {
    // corps de la fonction
})->call(new StdClass);
?>

L'exemple ci-dessus va afficher :

Warning: Cannot bind an instance to a static closure in /in/sLLS9 on line 5

Historique

Version | Description
5.4.0 | Les fonctions anonymes peuvent utiliser $this, comme si déclarés statiquement.
5.3.0 | Les fonctions anonymes deviennent disponibles.

Notes

Note: Il est possible d'utiliser les fonctions func_num_args(), func_get_arg() et func_get_args() dans une fonction anonyme.


Les classes et les objets

Sommaire

  • Introduction
  • Syntaxe de base
  • Propriétés
  • Constantes de classe
  • Auto-chargement de classes
  • Constructeurs et destructeurs
  • Visibilité
  • Héritage
  • L'opérateur de résolution de portée (::)
  • Statique
  • Abstraction de classes
  • Interfaces
  • Traits
  • Classes anonymes
  • Surcharge magique
  • Parcours d'objets
  • Méthodes magiques
  • Mot-clé "final"
  • Clônage d'objets
  • Comparaison d'objets
  • Typage objet
  • Late Static Bindings (Résolution statique à la volée)
  • Objets et références
  • Sérialisation d'objets
  • Modifications en POO (Programmation orientée objet)


Introduction

Depuis PHP 5, le modèle objet a été réécrit pour permettre de meilleures performances et offrir plus de fonctionnalités. Cette réécriture a été une des modifications majeures par rapport à PHP 4. PHP 5 a donc un modèle objet complet.

Parmi les fonctionnalités offertes par PHP 5, on peut citer la visibilité dans les classes, les classes abstract et les classes final mais aussi les méthodes magiques, les interfaces, le clônage et le typage (typehinting).

PHP gère les objets de la même façon, qu'ils soient des références ou des gestionnaires, ce qui signifie que chaque variable contient une référence vers l'objet plutôt qu'une copie de l'objet complet. Reportez-vous à la documentation Objets et Références pour plus de détails.

Astuce

Vous pourriez également avoir besoin de jeter un oeil sur Guide de nommage de l'espace utilisateur.


Syntaxe de base

class

Une définition de classe basique commence par le mot-clé class, suivi du nom de la classe. Suit une paire d'accolades contenant la définition des propriétés et des méthodes appartenant à la classe.

Le nom de la classe peut être quelconque à condition que ce ne soit pas un mot réservé en PHP. Un nom de classe valide commence par une lettre ou un underscore, suivi de n'importe quel nombre de chiffres, ou de lettres, ou d'underscores. Si on devait l'exprimer sous forme d'une expression rationnelle, il s'agirait de ^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$.

Une classe peut contenir ses propres constantes, variables (appelées "propriétés" ou "attributs"), et fonctions (appelées "méthodes").

Exemple #1 Définition typique d'une classe

<?php
class SimpleClass
{
    // déclaration d'une propriété
    public $var = 'une valeur par défaut';

    // déclaration des méthodes
    public function displayVar() {
        echo $this->var;
    }
}
?>

La pseudo-variable $this est disponible lorsqu'une méthode est appelée depuis un contexte objet. $this est une référence à l'objet appelant (habituellement, l'objet auquel la méthode appartient, mais ce peut être un autre objet si la méthode est appelée de manière statique depuis le contexte d'un autre objet).

Exemple #2 Quelques exemples de la pseudo-variable $this

<?php
class A
{
  function toto()
  {
    if (isset($this)) {
      echo '$this est définie (';
      echo get_class($this);
      echo ")\n";
    } else {
      echo "\$this n'est pas définie.\n";
    }
  }
}

class B
{
  function titi()
  {
    // Note: la ligne suivante émet une erreur si E_STRICT est activé.
    A::toto();
  }
}

$a = new A();
$a->toto();

// Note: la ligne suivante émet une erreur si E_STRICT est activé.
A::toto();
$b = new B();
$b->titi();

// Note: la ligne suivante émet une erreur si E_STRICT est activé.
B::titi();
?>

L'exemple ci-dessus va afficher :

$this est définie (A)
$this n'est pas définie.
$this est définie (B)
$this n'est pas définie.

Le mot-clé new

Pour créer une instance d'une classe, le mot-clé new doit être utilisé. Un objet sera alors systématiquement créé, à moins qu'il ait un constructeur défini qui lance une exception en cas d'erreur. Les classes devraient être définies avant l'instanciation (dans certains cas, c'est impératif).

Si une chaîne de caractères contenant un nom de classe est utilisée avec new, une nouvelle instance de cette classe sera créée. Si la classe est dans un espace de noms, son nom pleinement qualifié doit être utilisé.

Exemple #3 Création d'une instance

<?php
$instance = new SimpleClass();

// Ceci peut également être réalisé avec une variable :
$className = 'SimpleClass';
$instance = new $className(); // new SimpleClass()
?>

Dans le contexte de la classe, il est possible de créer un nouvel objet avec new self et new parent.

Lors de l'assignation d'une instance déjà créée d'une classe à une variable, la nouvelle variable accédera à la même instance que l'objet qui a été assigné. Ce comportement est le même lors du passage d'une instance à une fonction. Une copie d'un objet déjà créé peut être effectuée par clonage.

Exemple #4 Assignation d'un objet

<?php

$instance = new SimpleClass();

$assigned   =  $instance;
$reference  =& $instance;

$instance->var = '$assigned aura cette valeur';

$instance = null; // $instance et $reference deviennent null

var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>

L'exemple ci-dessus va afficher :

NULL
NULL
object(SimpleClass)#1 (1) {
   ["var"]=>
     string(30) "$assigned aura cette valeur"
}

PHP 5.3.0 a introduit de nouvelles manières de créer des objets :

Exemple #5 Créer de nouveaux objets

<?php
class Test
{
    static public function getNew()
    {
        return new static;
    }
}

class Child extends Test
{}

$obj1 = new Test();
$obj2 = new $obj1;
var_dump($obj1 !== $obj2);

$obj3 = Test::getNew();
var_dump($obj3 instanceof Test);

$obj4 = Child::getNew();
var_dump($obj4 instanceof Child);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(true)

Le mot-clé extends

Une classe peut hériter des méthodes et des membres d'une autre classe en utilisant le mot-clé extends dans la déclaration. Il n'est pas possible d'étendre plusieurs classes : une classe peut uniquement hériter d'une seule classe de base.

Les méthodes et membres hérités peuvent être surchargés en les redéclarant avec le même nom que dans la classe parente. Cependant, si la classe parente a défini une méthode comme final, alors celle-ci ne sera pas surchargeable. Il est possible d'accéder aux méthodes ou une propriétés statiques surchargées en y faisant référence avec l'opérateur parent::.

Lors de la surcharge de méthodes, la signature devrait rester la même ; sinon, PHP génèrera une erreur de niveau E_STRICT. Ceci ne s'applique pas au constructeur, qui accepte la surcharge avec des paramètres différents.

Exemple #6 Héritage simple d'une classe

<?php
class ExtendClass extends SimpleClass
{
  // Redéfinition de la méthode parente
  function displayVar()
  {
    echo "Classe étendue\n";
    parent::displayVar();
  }
}

$extended = new ExtendClass();
$extended->displayVar();
?>

L'exemple ci-dessus va afficher :

Classe étendue
une valeur par défaut

::class

Depuis PHP 5.5, le mot clé class est également utilisé pour la résolution des noms de classes. Vous pouvez récupérer une chaîne contenant le nom qualifié complet de la classe ClassName en utilisant ClassName::class. C'est particulièrement pratique avec les classes utilisant des espaces de noms.

Exemple #7 Résolution de nom de classe

<?php
namespace NS {
    class ClassName {
    }

    echo ClassName::class;
}
?>

L'exemple ci-dessus va afficher :

NS\ClassName


Propriétés

Les variables au sein d'une classe sont appelées "propriétés". On peut également les retrouver sous les dénominations "attributs", "membres" ou "champs", mais nous conservervons l'appellation "propriété" pour cette documentation. Elles sont définies en utilisant un des mots-clés public, protected, ou private, suivi d'une déclaration classique de variable. Cette déclaration peut comprendre une initialisation, mais celle-ci doit être une valeur constante, c'est à dire qu'elle doit pouvoir être évaluée pendant la compilation du code, et qu'elle ne peut pas dépendre d'informations déterminées lors de l'exécution de celui-ci pour pouvoir être évaluée.

Référez-vous à Visibilité pour plus d'informations sur la signification de public, protected, et private.

Note:

Afin de maintenir la rétrocompatibilité avec PHP 4, PHP 5 continue d'accepter l'usage du mot-clé var pour la déclaration de propriétés en remplacement de (ou en plus de) public, protected, et private. Cependant, var n'est plus requis par le modèle objet de PHP 5. Pour les versions allant de PHP 5.0 à 5.1.3, l'usage de var était considéré comme obsolète et déclenchait un avertissement de niveau E_STRICT, mais depuis PHP 5.1.3, l'usage n'est plus obsolète et ne déclenche plus d'avertissement.

Si vous déclarez une propriété en utilisant var au lieu de public, protected, ou private, alors PHP 5 traitera la propriété comme si elle avait été déclarée comme public.

Au sein des méthodes de classes, les propriétés non statiques peuvent être appelées en utilisant la syntaxe -> (opérateur de l'objet) : $this->property (où property est le nom de la propriété). Les propriétés statiques peuvent être appelées en utilisant la syntaxe :: (deux doubles points) : self::$property. Reportez-vous à la documentation sur le mot clé statique pour plus d'informations sur la différence entre les propriétés statiques et non statiques.

La pseudo-variable $this est disponible au sein de n'importe quelle méthode, lorsque cette méthode est appelée depuis un objet. $this est une référence à l'objet appelant (en général l'objet auquel la méthode appartient, mais il peut s'agir d'un autre objet si la méthode est appelée de façon statique depuis le contexte d'un second objet).

Exemple #1 Déclarations de propriétés

<?php
class SimpleClass
{
   // Déclarations invalides de propriétés :
   public $var1 = 'hello ' . 'world';
   public $var2 = <<<EOD
hello world
EOD;
   public $var3 = 1+2;
   public $var4 = self::myStaticMethod();
   public $var5 = $myVar;

   // Déclarations valides de propriétés :
   public $var6 = myConstant;
   public $var7 = array(true, false);

   // Ceci est autorisé uniquement depuis PHP 5.3.0 :
   public $var8 = <<<'EOD'
hello world
EOD;
}
?>

Note:

Il existe des fonctions qui permettent de gérer des classes et des objets. Vous voudrez peut-être jeter un coup d'oeil à Fonctions Classes/Objets.

Contrairement à la syntaxe heredoc, la syntaxe nowdoc peut être utilisée dans n'importe quel contexte de données statiques, y compris la déclaration de propriétés.

Exemple #2 Exemple d'utilisation de la syntaxe nowdoc pour initialiser une propriété

<?php
class foo {
   // Depuis PHP 5.3.0
   public $bar = <<<'EOT'
bar
EOT;
}
?>

Note:

Le support de la syntaxe nowdoc à été ajouté en PHP 5.3.0.


Constantes de classe

Il est possible de définir des valeurs constantes à l'intérieur d'une classe, qui ne seront pas modifiables. Les constantes diffèrent des variables normales du fait que l'on n'utilise pas le symbole $ pour les déclarer ou les utiliser.

La valeur doit être une expression constante, pas (par exemple) une variable, une propriété, le résultat d'une opération mathématique, ou un appel de fonction.

Il est aussi possible pour les interfaces d'avoir des constantes. Regardez la documentation des interfaces pour quelques exemples.

Depuis PHP 5.3.0, il est possible de référencer la classe en utilisant une variable. La valeur de la variable ne peut pas être un mot-clé (e.g. self, parent et static).

Exemple #1 Définition et utilisation d'une constante de classe

<?php
class MyClass
{
  const CONSTANT = 'valeur constante';

  function showConstant() {
    echo  self::CONSTANT . "\n";
  }
}

echo MyClass::CONSTANT . "\n";

$classname = "MyClass";
echo $classname::CONSTANT . "\n"; // Depuis PHP 5.3.0

$class = new MyClass();
$class->showConstant();

echo $class::CONSTANT."\n"; // Depuis PHP 5.3.0
?>

Exemple #2 Exemple de données statiques

<?php
class foo {
    // Depuis PHP 5.3.0
    const BAR = <<<'EOT'
bar
EOT;
}
?>

Contrairement à heredocs, nowdocs peut être utilisée dans n'importe quel contexte de données statiques.

Note:

Le support de Nowdoc a été ajouté en PHP 5.3.0.

Exemple #3 Exemple des expressions de constante

<?php
const ONE = 1;

class foo {
    // Depuis PHP 5.6.0
    const TWO = ONE * 2;
    const THREE = ONE + self::TWO;
    const SENTENCE = 'The value of THREE is '.self::THREE;
}
?>

Il est possible de fournir une expression scalaire impliquant des nombres et des chaînes de caractères, et/ou des constantes dans un contexte d'une classe.

Note:

Le support des expressions de constante a été ajouté en PHP 5.6.0.


Auto-chargement de classes

De nombreux développeurs qui écrivent des applications orientées objet créent un fichier source par définition de classe. Un des plus gros inconvénients de cette méthode est d'avoir à écrire une longue liste d'inclusions de fichier de classes au début de chaque script : une inclusion par classe.

En PHP 5, ce n'est plus nécessaire. Vous pouvez définir une fonction __autoload() qui sera automatiquement appelée si vous essayez d'utiliser une classe ou interface qui n'est pas encore définie. Grâce à elle, vous avez une dernière chance pour inclure une définition de classe, avant que PHP n'échoue avec une erreur.

Astuce

La fonction spl_autoload_register() fournit une alternative plus flexible pour le chargement automatique de classes. Pour cette raison, l'utilisation de la fonction __autoload() n'est plus encouragée et pourrait devenir obsolète, voire être supprimée dans le futur.

Note:

Avant PHP 5.3.0, les exceptions lancées depuis la fonction __autoload ne pouvaient pas être interceptées par un bloc catch et provoquaient une erreur fatale. Depuis PHP 5.3.0+, elles peuvent être interceptées dans le bloc catch, à une précision près : si vous lancez une exception personnalisée, alors la classe de cette exception doit être disponible. La fonction __autoload peut être utilisée récursivement pour charger automatiquement la classe de l'exception personnalisée.

Note:

L'auto-chargement n'est pas disponible si vous utilisez PHP en mode interactif CLI.

Note:

Si le nom de la classe est utilisé par exemple dans la fonction call_user_func(), alors il peut contenir des caractères dangereux comme ../. Il est recommandé de ne pas utiliser d'entrées utilisateur dans de telles fonctions, ou, au moins, de vérifier l'entrée dans la fonction __autoload().

Exemple #1 Exemple avec __autoload()

Cet exemple tente de charger les classes MaClasse1 et MaClasse2, respectivement depuis les fichiers MaClasse1.php et MaClasse2.php.

<?php
function __autoload($class_name) {
    include $class_name . '.php';
}

$obj  = new MaClasse1();
$obj2 = new MaClasse2();
?>

Exemple #2 Autre exemple d'auto-chargement

Cet exemple tente de charger l'interface ITest.

<?php

function __autoload($name) {
    var_dump($name);
}

class Foo implements ITest {
}

/*
string(5) "ITest"

Fatal error: Interface 'ITest' not found in ...
*/
?>

Exemple #3 Auto-chargement avec gestion des exceptions en PHP 5.3.0+

Cet exemple lance une exception et montre comment la traiter avec un bloc try/catch.

<?php
function __autoload($name) {
    echo "Tentative de chargement de $name.\n";
    throw new Exception("Impossible de charger $name.");
}

try {
    $obj = new NonLoadableClass();
} catch (Exception $e) {
    echo $e->getMessage(), "\n";
}
?>

L'exemple ci-dessus va afficher :

Tentative de chargement de NonLoadableClass.
Impossible de charger NonLoadableClass.

Exemple #4 Auto-chargement avec gestion des exceptions en PHP 5.3.0+. Exception personnalisée manquante

Cet exemple lance une exception personnalisée non-chargeable.

<?php
function __autoload($name) {
    echo "Tentative de chargement de $name.\n";
    throw new MissingException("Impossible de charger $name.");
}

try {
    $obj = new NonLoadableClass();
} catch (Exception $e) {
    echo $e->getMessage(), "\n";
}
?>

L'exemple ci-dessus va afficher :

Tentative de chargement de NonLoadableClass.
Tentative de chargement de MissingException.

Fatal error: Class 'MissingException' not found in testMissingException.php on line 4

Voir aussi

  • unserialize()
  • unserialize_callback_func
  • spl_autoload()
  • spl_autoload_register()


Constructeurs et destructeurs

Constructeur

void __construct ([ mixed $args = "" [, $... ]] )

PHP permet aux développeurs de déclarer des constructeurs pour les classes. Les classes qui possèdent une méthode constructeur appellent cette méthode à chaque création d'une nouvelle instance de l'objet, ce qui est intéressant pour toutes les initialisations dont l'objet a besoin avant d'être utilisé.

Note: Les constructeurs parents ne sont pas appelés implicitement si la classe enfant définit un constructeur. Si vous voulez utiliser un constructeur parent, il sera nécessaire de faire appel à parent::__construct() depuis le constructeur enfant. Si l'enfant ne définit pas un constructeur alors il peut être hérité de la classe parent, exactement de la même façon qu'une méthode le serait (si elle n'a pas été déclarée comme privée).

Exemple #1 Exemple d'utilisation des nouveaux constructeurs unifiés

<?php
class BaseClass {
    function __construct() {
        print "In BaseClass constructor\n";
    }
}

class SubClass extends BaseClass {
    function __construct() {
        parent::__construct();
        print "In SubClass constructor\n";
    }
}

class OtherSubClass extends BaseClass {
    // Constructeur hérité de la classe BaseClass
}

// Dans le constructeur de la classe BaseClass
$obj = new BaseClass();

// Dans le constructeur de la classe BaseClass
// In SubClass constructor
$obj = new SubClass();

// Dans le constructeur de la classe BaseClass
$obj = new OtherSubClass();
?>

Pour des raisons de compatibilité ascendante, si PHP ne peut pas trouver une fonction __construct() pour une classe donnée, et que la classe n'en hérite pas de la classe parent, il cherchera une fonction constructeur représentée, comme dans l'ancien style (PHP < 5), par le nom de la classe. Dans les faits, cela signifie que le seul cas où il pourrait y avoir un problème de compatibilité est celui où votre classe contiendrait une méthode nommée __construct() et que vous en ayez un autre usage.

A la différence des autres méthodes, PHP ne génèrera pas d'erreur de niveau E_STRICT lorsque __construct() est surchargé avec des paramètres différents du __construct() parent.

Depuis PHP 5.3.3, les méthodes ayant le même nom que la classe dans laquelle elle se trouve ne sont plus traitées comme des constructeurs, si la classe considérée se situe dans un espace de noms. Ceci n'affecte pas les classes sans espace de noms.

Exemple #2 Constructeurs dans des classes dans des espaces de noms

<?php
namespace Foo;
class Bar {
    public function Bar() {
        // Traitée comme un constructeur dans PHP 5.3.0-5.3.2
        // Traitée comme une méthode normale depuis PHP 5.3.3
    }
}
?>

Destructeur

void __destruct ( void )

PHP 5 introduit un concept de destructeur similaire à celui d'autres langages orientés objet, comme le C++. La méthode destructeur est appelée dès qu'il n'y a plus de référence sur un objet donné, ou dans n'importe quel ordre pendant la séquence d'arrêt.

Exemple #3 Exemple avec un Destructeur

<?php
class MyDestructableClass {
    function __construct() {
        print "In constructor\n";
        $this->name = "MyDestructableClass";
    }

    function __destruct() {
        print "Destruction de " . $this->name . "\n";
    }
}

$obj = new MyDestructableClass();
?>

Tout comme le constructeur, le destructeur parent ne sera pas appelé implicitement par le moteur. Pour exécuter le destructeur parent, vous devez appeler explicitement la fonction parent::__destruct dans le corps du destructeur. Tout comme les constructeurs, une classe enfant peut hériter du destructeur du parent s'il n'en implémente pas un lui même.

Le destructeur sera appelé même si l'exécution du script est stoppée en utilisant la fonction exit(). Appeler la fonction exit() dans un destructeur empêchera l'exécution des routines d'arrêt restantes.

Note:

Les destructeurs appelés durant l'arrêt du script sont dans une situation où les en-têtes HTTP ont déjà été envoyés. Le dossier de travail dans la phase d'arrêt du script peut être différent avec certaines APIs (e.g. Apache).

Note:

Tenter de lancer une exception depuis un destructeur (appelé à la fin du script) entraine une erreur fatale.


Visibilité

La visibilité d'une propriété ou d'une méthode peut être définie en préfixant sa déclaration avec un mot-clé : public, protected, ou private. Les éléments déclarés comme publics peuvent être utilisés par n'importe quelle partie du programme. L'accès aux éléments protégés est limité à la classe elle-même, ainsi qu'aux classes qui en héritent, et à ses classes parentes. L'accès aux éléments privés est uniquement réservé à la classe qui les a défini.

Visibilité des propriétés

Les propriétés des classes doivent être définies comme publiques, protégées, ou privées. Si une propriété est déclarée en utilisant var, elle sera alors définie comme publique.

Exemple #1 Déclaration de propriétés

<?php
/**
 * Définition de MyClass
 */
class MyClass
{
    public $public = 'Public';
    protected $protected = 'Protected';
    private $private = 'Private';

    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}

$obj = new MyClass();
echo $obj->public; // Fonctionne
echo $obj->protected; // Erreur fatale
echo $obj->private; // Erreur fatale
$obj->printHello(); // Affiche Public, Protected et Private

/**
 * Définition de MyClass2
 */
class MyClass2 extends MyClass
{
    // On peut redéclarer les éléments publics ou protégés, mais pas ceux privés
    protected $protected = 'Protected2';

    function printHello()
    {
      echo $this->public;
      echo $this->protected;
      echo $this->private;
   }
}

$obj2 = new MyClass2();
echo $obj2->public; // Fonctionne
echo $obj2->protected; // Erreur fatale
echo $obj2->private; // Indéfini
$obj2->printHello(); // Affiche Public, Protected2 et Indéfini

?>

Note: La manière de déclarer une variable comme en PHP 4, avec le mot-clé var, est toujours supportée pour des raisons de compatibilité (en tant que synonyme du mot-clé public). En PHP 5 avant PHP 5.1.3, son utilisation génèrait une erreur de niveau E_STRICT.

Visibilité des méthodes

Les méthodes des classes peuvent être définies comme publiques, privées, ou protégées. Les méthodes déclarées sans explicitement utiliser un mot-clef de visibilité seront automatiquement définies comme publiques.

Exemple #2 Déclaration de méthodes

<?php
/**
 * Définition de MyClass
 */
class MyClass
{
    // Déclare un constructeur public
    public function __construct() { }

    // Déclare une méthode publique
    public function MyPublic() { }

    // Déclare une méthode protégée
    protected function MyProtected() { }

    // Déclare une méthode privée
    private function MyPrivate() { }

    // Celle-ci sera publique
    function Foo()
    {
        $this->MyPublic();
        $this->MyProtected();
        $this->MyPrivate();
    }
}

$myclass = new MyClass;
$myclass->MyPublic(); // Fonctionne
$myclass->MyProtected(); // Erreur fatale
$myclass->MyPrivate(); // Erreur fatale
$myclass->Foo(); // Public, Protected et Private fonctionnent

/**
 * Définition de MyClass2
 */
class MyClass2 extends MyClass
{
    // Celle-ci sera publique
    function Foo2()
    {
        $this->MyPublic();
        $this->MyProtected();
        $this->MyPrivate(); // Erreur fatale
    }
}

$myclass2 = new MyClass2;
$myclass2->MyPublic(); // Fonctionne
$myclass2->Foo2(); // Public et Protected fonctionnent, non Private

class Bar
{
    public function test() {
        $this->testPrivate();
        $this->testPublic();
    }

    public function testPublic() {
        echo "Bar::testPublic\n";
    }

    private function testPrivate() {
        echo "Bar::testPrivate\n";
    }
}

class Foo extends Bar
{
    public function testPublic() {
        echo "Foo::testPublic\n";
    }

    private function testPrivate() {
        echo "Foo::testPrivate\n";
    }
}

$myFoo = new foo();
$myFoo->test(); // Bar::testPrivate
                // Foo::testPublic
?>

Visibilité depuis d'autres objets

Les objets de mêmes types ont accès aux membres privés et protégés les uns des autres, même s'ils ne sont pas la même instance. Ceci est dû au fait que les détails spécifiques de l'implémentation sont déjà connus en interne par ces objets.

Exemple #3 Accès aux membres privés d'un objet du même type

<?php
class Test
{
    private $foo;

    public function __construct($foo)
    {
        $this->foo = $foo;
    }

    private function bar()
    {
        echo 'Accès à la méthode privée.';
    }

    public function baz(Test $other)
    {
        // Nous pouvons modifier la propriété privée :
        $other->foo = 'Bonjour';
        var_dump($other->foo);

        // Nous pouvons également appeler la méthode privée :
        $other->bar();
    }
}

$test = new Test('test');

$test->baz(new Test('other'));
?>

L'exemple ci-dessus va afficher :

string(7) "Bonjour"
Accès à la méthode privée.


Héritage

L'héritage est un des grands principes de la programmation orientée objet (POO), et PHP l'implémente dans son modèle objet. Ce principe va affecter la manière dont de nombreuses classes sont en relation les unes avec les autres.

Par exemple, lorsque vous étendez une classe, la classe fille hérite de toutes les méthodes publiques et protégées de la classe parente. Tant qu'une classe n'écrase pas ces méthodes, elles conservent leur fonctionnalité d'origine.

L'héritage est très utile pour définir et abstraire certaines fonctionnalités communes à plusieurs classes, tout en permettant la mise en place de fonctionnalités supplémentaires dans les classes enfants, sans avoir à réimplémenter en leur sein toutes les fonctionnalités communes.

Note:

A moins que l'autoload ne soit utilisé, les classes doivent être connues avant d'être utilisées. Les classes mères doivent être définies avant l'écriture d'un héritage. Cette règle générale s'applique aussi dans le cas d'héritage ou d'implémentation d'interfaces.

Exemple #1 Exemple d'héritage

<?php

class Foo
{
    public function printItem($string)
    {
        echo 'Foo: ' . $string . PHP_EOL;
    }

    public function printPHP()
    {
        echo 'PHP est super' . PHP_EOL;
    }
}

class Bar extends Foo
{
    public function printItem($string)
    {
        echo 'Bar: ' . $string . PHP_EOL;
    }
}

$foo = new Foo();
$bar = new Bar();
$foo->printItem('baz'); // Affiche : 'Foo: baz'
$foo->printPHP();       // Affiche : 'PHP est super'
$bar->printItem('baz'); // Affiche : 'Bar: baz'
$bar->printPHP();       // Affiche : 'PHP est super'

?>


L'opérateur de résolution de portée (::)

L'opérateur de résolution de portée (aussi appelé Paamayim Nekudotayim) ou, en termes plus simples, le symbole "double deux-points" (::), fournit un moyen d'accéder aux membres static ou constant, ainsi qu'aux propriétés ou méthodes surchargées d'une classe.

Lorsque vous référencez ces éléments en dehors de la définition de la classe, utilisez le nom de la classe.

Depuis PHP 5.3.0, il est possible de référencer une classe en utilisant une variable. La valeur de la variable ne peut être un mot-clé (e.g. self, parent et static).

Paamayim Nekudotayim pourrait au premier abord sembler être un choix étrange pour nommer un double deux-points. Cependant, au moment de l'écriture du Zend Engine 0.5 (qui faisait fonctionner PHP 3), c'est le nom qui a été choisi par l'équipe Zend. En fait, cela signifie un double deux-points... en hébreu !

Exemple #1 :: en dehors de la définition de la classe

<?php
class MyClass {
    const CONST_VALUE = 'Une valeur constante';
}

$classname = 'MyClass';
echo $classname::CONST_VALUE; // Depuis PHP 5.3.0

echo MyClass::CONST_VALUE;
?>

Trois mots-clé spéciaux, self, parent, et static sont utilisés pour accéder aux propriétés ou aux méthodes depuis la définition de la classe.

Exemple #2 :: depuis la définition de la classe

<?php
class OtherClass extends MyClass
{
    public static $my_static = 'variable statique';

    public static function doubleColon() {
        echo parent::CONST_VALUE . "\n";
        echo self::$my_static . "\n";
    }
}

$classname = 'OtherClass';
echo $classname::doubleColon(); // Depuis PHP 5.3.0

OtherClass::doubleColon();
?>

Lorsqu'une classe héritant d'une autre redéfinit une méthode de sa classe parente, PHP n'appellera pas la méthode de la classe parente. Il appartient à la méthode dérivée d'appeler la méthode d'origine en cas de besoin. Cela est également valable pour les définitions des constructeurs et destructeurs, la surcharge, et les définitions de méthodes magiques.

Exemple #3 Appel d'une méthode parente

<?php
class MyClass
{
    protected function myFunc() {
        echo "MyClass::myFunc()\n";
  }
}

class OtherClass extends MyClass
{
    // Surcharge de la définition parente
    public function myFunc() {

      // Mais appel de la méthode parente
      parent::myFunc();
      echo "OtherClass::myFunc()\n";
  }
}

$class = new OtherClass();
$class->myFunc();
?>

Voir aussi quelques exemples d'appels statiques.


Statique

Astuce

Cette page décrit l'utilisation du mot clé static qui permet de définir des méthodes et des propriétés statiques. static peut aussi être utilisé pour définir des variables statiques et pour finir des liaisons statiques. Reportez-vous à ces pages pour plus d'informations sur la signification de static.

Le fait de déclarer des propriétés ou des méthodes comme statiques vous permet d'y accéder sans avoir besoin d'instancier la classe. On ne peut accéder à une propriété déclarée comme statique avec l'objet instancié d'une classe (bien que ce soit possible pour une méthode statique).

Pour des raisons de compatibilité avec PHP 4, si aucune déclaration de visibilité n'est spécifiée, alors la propriété ou la méthode sera automatiquement considérée comme public.

Comme les méthodes statiques peuvent être appelées sans qu'une instance d'objet n'ai été créée, la pseudo-variable $this n'est pas disponible dans les méthodes déclarées comme statiques.

On ne peut pas accéder à des propriétés statiques à travers l'objet en utilisant l'opérateur ->.

L'appel statique de méthodes non-statiques génère une erreur de niveau E_STRICT.

Comme n'importe quelle autre variable PHP statique, les propriétés statiques ne peuvent être initialisées qu'en utilisant un littéral ou une constante ; les expressions ne sont pas permises. Ainsi, vous pouvez initialiser une propriété statique avec un entier ou un tableau, mais pas avec une autre variable, ni avec la valeur de retour d'une fonction, ni avec un objet.

Depuis PHP 5.3.0, il est possible de référencer la classe en utilisant une variable. La valeur de la variable ne peut être un mot-clé (e.g. self, parent et static).

Exemple #1 Exemple avec une propriété statique

<?php
class Foo
{
    public static $my_static = 'foo';

    public function staticValue() {
        return self::$my_static;
    }
}

class Bar extends Foo
{
    public function fooStatic() {
        return parent::$my_static;
    }
}

print Foo::$my_static . "\n";

$foo = new Foo();
print $foo->staticValue() . "\n";
print $foo->my_static . "\n";      // "Propriété" my_static non définie

print $foo::$my_static . "\n";
$classname = 'Foo';
print $classname::$my_static . "\n"; // Depuis PHP 5.3.0

print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>

Exemple #2 Exemple avec une méthode statique

<?php
class Foo
{
    public static function aStaticMethod() {
        // ...
    }
}

Foo::aStaticMethod();
$classname = 'Foo';
$classname::aStaticMethod(); // Depuis PHP 5.3.0
?>


Abstraction de classes

PHP 5 introduit les concepts de classes et de méthodes abstraites. Les classes définies comme abstraites ne peuvent pas être instanciées, et toute classe contenant au moins une méthode abstraite doit elle-aussi être abstraite. Les méthodes définies comme abstraites déclarent simplement la signature de la méthode - elles ne peuvent définir son implémentation.

Lors de l'héritage d'une classe abstraite, toutes les méthodes marquées comme abstraites dans la déclaration de la classe parente doivent être définies par l'enfant ; de plus, ces méthodes doivent être définies avec la même visibilité, ou une visibilité moins restreinte. Par exemple, si la méthode abstraite est définie comme protégée, l'implémentation de la fonction doit être définie comme protégée ou publique, mais pas privée. De plus, les signatures de ces méthodes doivent correspondre, ce qui signifie que les types des paramètres et le nombre d'arguments requis doivent être les mêmes. Par exemple, si la classe enfant définit un argument optionnel, alors que la signature de la méthode abstraite ne le définit pas, il n'y aura aucun conflit dans la signature. Ceci s'applique aussi aux constructeurs depuis PHP 5.4. Avant la version 5.4, les signatures des constructeurs pouvaient être différentes.

Exemple #1 Exemple de classe abstraite

<?php
abstract class AbstractClass
{
    // Force les classes filles à définir cette méthode
    abstract protected function getValue();
    abstract protected function prefixValue($prefix);

    // méthode commune
    public function printOut() {
        print $this->getValue() . "\n";
   }
}

class ConcreteClass1 extends AbstractClass
{
     protected function getValue() {
       return "ConcreteClass1";
     }

     public function prefixValue($prefix) {
       return "{$prefix}ConcreteClass1";
    }
}

class ConcreteClass2 extends AbstractClass
{
     public function getValue() {
       return "ConcreteClass2";
     }

     public function prefixValue($prefix) {
       return "{$prefix}ConcreteClass2";
    }
}

$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue('FOO_') ."\n";

$class2 = new ConcreteClass2;
$class2->printOut();
echo $class2->prefixValue('FOO_') ."\n";
?>

L'exemple ci-dessus va afficher :

ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

Exemple #2 Exemple avec une classe abstraite

<?php
abstract class AbstractClass
{
    // Notre méthode abstraite ne doit que définir les arguments requis
    abstract protected function prefixName($name);

}

class ConcreteClass extends AbstractClass
{

    // Notre classe enfant peut définir des arguments optionnels non présents dans la signature du parent
    public function prefixName($name, $separator = ".") {
        if ($name == "Pacman") {
            $prefix = "Mr";
        } elseif ($name == "Pacwoman") {
            $prefix = "Mrs";
        } else {
            $prefix = "";
        }
        return "{$prefix}{$separator} {$name}";
    }
}

$class = new ConcreteClass;
echo $class->prefixName("Pacman"), "\n";
echo $class->prefixName("Pacwoman"), "\n";
?>

L'exemple ci-dessus va afficher :

Mr. Pacman
Mrs. Pacwoman

L'ancien code qui n'a pas de classe définie par l'utilisateur ou de fonction nommée 'abstract' devrait continuer à fonctionner sans modification.


Interfaces

Les interfaces objet vous permettent de créer du code qui spécifie quelles méthodes une classe doit implémenter, sans avoir à définir comment ces méthodes fonctionneront.

Les interfaces sont définies en utilisant le mot-clé interface, de la même façon que pour une classe standard, mais sans qu'aucune des méthodes n'ait son contenu de spécifié.

De par la nature même d'une interface, toutes les méthodes déclarées dans une interface doivent être publiques.

implements

Pour implémenter une interface, l'opérateur implements est utilisé. Toutes les méthodes de l'interface doivent être implémentées dans une classe ; si ce n'est pas le cas, une erreur fatale sera émise. Les classes peuvent implémenter plus d'une interface, en séparant chaque interface par une virgule.

Note:

Avant PHP 5.3.9, une classe ne pouvait pas implémenter deux interfaces qui spécifiaient une méthode avec le même nom, sachant que cela introduisait une ambiguïté. Les versions plus récentes de PHP l'autorisent, à partir du moment où les méthodes dupliquées ont la même signature.

Note:

Les interfaces peuvent être étendues comme des classes, en utilisant l'opérateur extends.

Note:

La classe implémentant l'interface doit utiliser exactement les mêmes signatures de méthodes que celles définies dans l'interface. Dans le cas contraire, une erreur fatale sera émise.

Les constantes

Les interfaces peuvent contenir des constantes. Les constantes d'interfaces fonctionnent exactement comme les constantes de classe, mis à part le fait qu'elles ne peuvent pas être écrasées par une classe ou une interface qui en hérite.

Exemples

Exemple #1 Exemple d'interface

<?php

// Declaration de l'interface 'iTemplate'
interface iTemplate
{
    public function setVariable($name, $var);
    public function getHtml($template);
}

// Implémentation de l'interface
// Ceci va fonctionner
class Template implements iTemplate
{
    private $vars = array();

    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }

    public function getHtml($template)
    {
        foreach($this->vars as $name => $value) {
            $template = str_replace('{' . $name . '}', $value, $template);
        }

        return $template;
    }
}

// Ceci ne fonctionnera pas
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
    private $vars = array();

    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
}
?>

Exemple #2 Les interfaces extensibles

<?php
interface a
{
    public function foo();
}

interface b extends a
{
    public function baz(Baz $baz);
}

// Ceci fonctionnera
class c implements b
{
    public function foo()
    {
    }

    public function baz(Baz $baz)
    {
    }
}

// Ceci ne fonctionnera pas et entrainera une erreur fatale
class d implements b
{
    public function foo()
    {
    }

    public function baz(Foo $foo)
    {
    }
}
?>

Exemple #3 Héritage de plusieurs interfaces

<?php
interface a
{
    public function foo();
}

interface b
{
    public function bar();
}

interface c extends a, b
{
    public function baz();
}

class d implements c
{
    public function foo()
    {
    }

    public function bar()
    {
    }

    public function baz()
    {
    }
}
?>

Exemple #4 Interfaces avec des constantes

<?php
interface a
{
    const b = 'Constante de l\'interface';
}

// Affiche : Constante de l'interface
echo a::b;

// Par contre, ceci ne fonctionnera pas, puisqu'il n'est pas permis
// d'écraser des constantes.
class b implements a
{
    const b = 'Constante de classe';
}
?>

Une interface, avec le typage, fournit une bonne façon de vous assurer qu'un objet particulier contient des méthodes particulières. Reportez-vous à l'opérateur instanceof et au typage.


Traits

Depuis PHP 5.4.0, PHP supporte une manière de réutiliser le code appelée Traits.

Les traits sont un mécanisme de réutilisation de code dans un langage à héritage simple tel que PHP. Un trait tente de réduire certaines limites de l'héritage simple, en autorisant le développeur à réutiliser un certain nombre de méthodes dans des classes indépendantes. La sémantique entre les classes et les traits réduit la complexité et évite les problèmes typiques de l'héritage multiple et des Mixins.

Un trait est semblable à une classe, mais il ne sert qu'à grouper des fonctionnalités d'une manière intéressante. Il n'est pas possible d'instancier un Trait en lui-même. C'est un ajout à l'héritage traditionnel, qui autorise la composition horizontale de comportements, c'est à dire l'utilisation de méthodes de classe sans besoin d'héritage.

Exemple #1 Exemple d'utilisation de Trait

<?php
trait ezcReflectionReturnInfo {
    function getReturnType() { /*1*/ }
    function getReturnDescription() { /*2*/ }
}

class ezcReflectionMethod extends ReflectionMethod {
    use ezcReflectionReturnInfo;
    /* ... */
}

class ezcReflectionFunction extends ReflectionFunction {
    use ezcReflectionReturnInfo;
    /* ... */
}
?>

Précédence

Une méthode héritée depuis une classe mère est écrasée par une méthode issue d'un Trait. L'ordre de précédence fait en sorte que les méthodes de la classe courante écrasent les méthodes issues d'un Trait, elles-mêmes surchargeant les méthodes héritées.

Exemple #2 Exemple avec l'ordre de précédence

Une méthode héritée depuis la classe de base est écrasée par celle provenant du Trait. Ce n'est pas le cas des méthodes réelles, écrites dans la classe de base.

<?php
class Base {
    public function sayHello() {
        echo 'Hello ';
    }
}

trait SayWorld {
    public function sayHello() {
        parent::sayHello();
        echo 'World!';
    }
}

class MyHelloWorld extends Base {
    use SayWorld;
}

$o = new MyHelloWorld();
$o->sayHello();
?>

L'exemple ci-dessus va afficher :

Hello World!

Exemple #3 Autre exemple d'ordre de précédence

<?php
trait HelloWorld {
    public function sayHello() {
        echo 'Hello World!';
    }
}

class TheWorldIsNotEnough {
    use HelloWorld;
    public function sayHello() {
        echo 'Hello Universe!';
    }
}

$o = new TheWorldIsNotEnough();
$o->sayHello();
?>

L'exemple ci-dessus va afficher :

Hello Universe!

Multiples Traits

Une classe peut utiliser de multiples Traits en les déclarant avec le mot-clé use, séparés par des virgules.

Exemple #4 Utilisation de plusieurs Traits

<?php
trait Hello {
    public function sayHello() {
        echo 'Hello ';
    }
}

trait World {
    public function sayWorld() {
        echo 'World';
    }
}

class MyHelloWorld {
    use Hello, World;
    public function sayExclamationMark() {
        echo '!';
    }
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
$o->sayExclamationMark();
?>

L'exemple ci-dessus va afficher :

Hello World!

Résolution des conflits

Si deux Traits insèrent une méthode avec le même nom, une erreur fatale est levée si le conflit n'est pas explicitement résolu.

Pour résoudre un conflit de nommage entre des Traits utilisés dans la même classe, il faut utiliser l'opérateur insteadof pour choisir une des méthodes en conflit.

Puisque ce principe ne permet que d'exclure des méthodes, l'opérateur as peut être utilisé pour permettre l'inclusion d'une des méthodes conflictuelles sous un autre nom.

Exemple #5 Résolution des conflits

Dans cet exemple, la classe Talker utilise les traits A et B. Comme A et B ont des méthodes conflictuelles, on indique que l'on souhaite utiliser la variante de smallTalk depuis le trait B, et la variante de bigTalk depuis le trait A.

La classe Aliased_Talker utilise l'opérateur as pour être capable d'utiliser l'implementation bigTalk de B sous un alias supplémentaire talk.

<?php
trait A {
    public function smallTalk() {
        echo 'a';
    }
    public function bigTalk() {
        echo 'A';
    }
}

trait B {
    public function smallTalk() {
        echo 'b';
    }
    public function bigTalk() {
        echo 'B';
    }
}

class Talker {
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
    }
}

class Aliased_Talker {
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
        B::bigTalk as talk;
    }
}
?>

Changer la visibilité des méthodes

En utilisant la syntaxe as, vous pouvez aussi ajuster la visibilité de la méthode dans la classe qui l'utilise.

Exemple #6 Changer la visibilité des méthodes

<?php
trait HelloWorld {
    public function sayHello() {
        echo 'Hello World!';
    }
}

// Modification de la visibilité de la méthode sayHello
class MyClass1 {
    use HelloWorld { sayHello as protected; }
}

// Utilisation d'un alias lors de la modification de la visibilité
// La visibilité de la méthode sayHello n'est pas modifiée
class MyClass2 {
    use HelloWorld { sayHello as private myPrivateHello; }
}
?>

Traits Composés depuis d'autres Traits

Tout comme les classes peuvent utiliser des traits, d'autres traits le peuvent aussi. Un trait peut donc utiliser d'autres traits et hériter de tout ou d'une partie de ceux-ci.

Exemple #7 Traits Composés depuis d'autres Traits

<?php
trait Hello {
    public function sayHello() {
        echo 'Hello ';
    }
}

trait World {
    public function sayWorld() {
        echo 'World!';
    }
}

trait HelloWorld {
    use Hello, World;
}

class MyHelloWorld {
    use HelloWorld;
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
?>

L'exemple ci-dessus va afficher :

Hello World!

Méthodes abstraites dans les Traits

Les traits supportent l'utilisation de méthodes abstraites afin d'imposer des contraintes aux classes sous-jacentes.

Exemple #8 Obligations requises par les méthodes abstraites

<?php
trait Hello {
    public function sayHelloWorld() {
        echo 'Hello'.$this->getWorld();
    }
    abstract public function getWorld();
}

class MyHelloWorld {
    private $world;
    use Hello;
    public function getWorld() {
        return $this->world;
    }
    public function setWorld($val) {
        $this->world = $val;
    }
}
?>

Attributs statiques dans les Traits

Traits peut définir à la fois des membres statiques, et des méthodes statiques.

Exemple #9 Variables statiques

<?php
trait Counter {
    public function inc() {
        static $c = 0;
        $c = $c + 1;
        echo "$c\n";
    }
}

class C1 {
    use Counter;
}

class C2 {
    use Counter;
}

$o = new C1(); $o->inc(); // echo 1
$p = new C2(); $p->inc(); // echo 1
?>

Exemple #10 Méthodes statiques

<?php
trait StaticExample {
    public static function doSomething() {
        return 'Doing something';
    }
}

class Example {
    use StaticExample;
}

Example::doSomething();
?>

Propriétés

Les traits peuvent aussi définir des propriétés.

Exemple #11 Définir des propriétes

<?php
trait PropertiesTrait {
    public $x = 1;
}

class PropertiesExample {
    use PropertiesTrait;
}

$example = new PropertiesExample;
$example->x;
?>

Si un trait définit une propriété, alors la classe ne peut pas définir une propriété de même nom ; sinon, une erreur sera levée. Il s'agira d'une erreur de type E_STRICT si la définition dans la classe est compatible (même visibilité et valeur initiale), et d'une erreur fatale dans les autres cas.

Exemple #12 Résolution des conflits

<?php
trait PropertiesTrait {
    public $same = true;
    public $different = false;
}

class PropertiesExample {
    use PropertiesTrait;
    public $same = true; // Strict Standards
    public $different = true; // Fatal error
}
?>


Classes anonymes

Le support pour les classes anonymes a été rajouté en PHP 7. Les classes anonymes sont utiles lorsque de simples objets uniques ont besoin d'être créés.

<?php

// Avant PHP 7
class Logger
{
    public function log($msg)
    {
        echo $msg;
    }
}

$util->setLogger(new Logger());

// PHP 7+ code
$util->setLogger(new class {
    public function log($msg)
    {
        echo $msg;
    }
});

On peut leur passer des arguments via le constructeur, elles peuvent étendre d'autres classes, implémenter des interfaces ou utiliser des traits comme avec avec une classe normale.

<?php

class SomeClass {}
interface SomeInterface {}
trait SomeTrait {}

var_dump(new class(10) extends SomeClass implements SomeInterface {
    private $num;

    public function __construct($num)
    {
        $this->num = $num;
    }

    use SomeTrait;
});

L'exemple ci-dessus va afficher :

object(class@anonymous)#1 (1) {
  ["Command line code0x104c5b612":"class@anonymous":private]=>
  int(10)
}

Imbriquer une classe anonyme à l'intérieur d'une autre classe ne donne pas accès aux méthodes ou propriétés privées ou protégées de la classe contenante. Afin d'utiliser des méthodes ou propriétés protégées de la classe contenante, la classe anonyme doit étendre celle ci. Pour utiliser les propriétés privées ou protégées de la classe contenant dans la classe anonyme, celles ci doivent être passées via le constructeur.

<?php

class Outer
{
    private $prop = 1;
    protected $prop2 = 2;

    protected function func1()
    {
        return 3;
    }

    public function func2()
    {
        return new class($this->prop) extends Outer {
            private $prop3;

            public function __construct($prop)
            {
                $this->prop3 = $prop;
            }

            public function func3()
            {
                return $this->prop2 + $this->prop3 + $this->func1();
            }
        };
    }
}

echo (new Outer)->func2()->func3();

L'exemple ci-dessus va afficher :

6


Surcharge magique

La surcharge magique en PHP permet de "créer" dynamiquement des propriétés et des méthodes. Ces entités dynamiques sont traitées via des méthodes magiques établies que l'on peut positionner dans une classe pour divers types d'actions.

Les méthodes magiques de surcharge sont appelées lors de l'interaction avec des propriétés ou des méthodes qui n'ont pas été déclarées ou ne sont pas visibles dans le contexte courant. Le reste de cette section utilise les termes de "propriétés inaccessibles" et de "méthodes inaccessibles" pour se référer à cette combinaison de déclaration et de visibilité.

Toutes les méthodes magiques de surcharge doivent être définies comme public.

Note:

Aucun des arguments de ces méthodes magiques ne peut être passé par référence.

Note:

L'interprétation PHP de la "surcharge" est différente de celle de la plupart des langages orientés objet. La surcharge, habituellement, fournit la possibilité d'avoir plusieurs méthodes portant le même nom mais avec une quantité et des types différents d'arguments.

Historique

Version | Description
5.3.0 | Ajout de __callStatic(). Ajout d'un avertissement pour forcer la visibilité public et la déclaration non static.
5.1.0 | Ajout de __isset() et de __unset(). Ajout du support de la surcharge des propriétés privées pour __get().
5.0.0 | Ajout de __get().

Surcharge de propriétés

public void __set ( string $name , mixed $value )
public mixed __get ( string $name )
public bool __isset ( string $name )
public void __unset ( string $name )

__set() est sollicitée lors de l'écriture de données vers des propriétés inaccessibles.

__get() est appelée pour lire des données depuis des propriétés inaccessibles.

__isset() est sollicitée lorsque isset() ou la fonction empty() sont appelées sur des propriétés inaccessibles.

__unset() est invoquée lorsque unset() est appelée sur des propriétés inaccessibles.

L'argument $name est le nom de la propriété avec laquelle on interagit. L'argument $value de la méthode __set() spécifie la valeur à laquelle la propriété $name devrait être définie.

La surcharge de propriétés ne fonctionne que dans les contextes objets. Ces méthodes magiques ne seront pas lancées en contexte statique. Par conséquent, ces méthodes ne devraient pas être déclarées comme statiques. Depuis PHP 5.3.0, un avertissement est levée si une des méthodes magiques est déclarée comme statique.

Note:

La valeur retournée par __set() est ignorée en raison de la façon dont PHP traite l'opérateur d'affectation. De la même façon, __get() n'est jamais appelée lors d'un enchaînement d'assignements, comme ceci :

 $a = $obj->b = 8;

Exemple #1 Exemple de surcharge de propriétés avec les méthodes
     __get(),
     __set(),
     __isset() et
     __unset()

<?php
class PropertyTest
{
    /**  Variable pour les données surchargées.  */
    private $data = array();

    /**  La surcharge n'est pas utilisée sur les propriétés déclarées.  */
    public $declared = 1;

    /**  La surcharge n'est lancée que lorsque l'on accède à cette propriété depuis l'extérieur de la classe.  */
    private $hidden = 2;

    public function __set($name, $value)
    {
        echo "Définition de '$name' à la valeur '$value'\n";
        $this->data[$name] = $value;
    }

    public function __get($name)
    {
        echo "Récupération de '$name'\n";
        if (array_key_exists($name, $this->data)) {
            return $this->data[$name];
        }

        $trace = debug_backtrace();
        trigger_error(
            'Propriété non-définie via __get() : ' . $name .
            ' dans ' . $trace[0]['file'] .
            ' à la ligne ' . $trace[0]['line'],
            E_USER_NOTICE);
        return null;
    }

    /**  Depuis PHP 5.1.0  */
    public function __isset($name)
    {
        echo "Est-ce que '$name' est défini ?\n";
        return isset($this->data[$name]);
    }

    /**  Depuis PHP 5.1.0  */
    public function __unset($name)
    {
        echo "Effacement de '$name'\n";
        unset($this->data[$name]);
    }

    /**  Ce n'est pas une méthode magique, nécessaire ici que pour l'exemple.  */
    public function getHidden()
    {
        return $this->hidden;
    }
}

echo "<pre>\n";

$obj = new PropertyTest;

$obj->a = 1;
echo $obj->a . "\n\n";

var_dump(isset($obj->a));
unset($obj->a);
var_dump(isset($obj->a));
echo "\n";

echo $obj->declared . "\n\n";

echo "Manipulons maintenant la propriété privée nommée 'hidden' :\n";
echo "'hidden' est visible depuis la classe, donc __get() n'est pas utilisée...\n";
echo $obj->getHidden() . "\n";
echo "'hidden' n'est pas visible en dehors de la classe, donc __get() est utilisée...\n";
echo $obj->hidden . "\n";
?>

L'exemple ci-dessus va afficher :

Définition de 'a' à '1'
Récupération de 'a'
1

Est-ce que 'a' est défini ?
bool(true)
Effacement de 'a'
Est-ce que 'a' est défini ?
bool(false)

1

Manipulons maintenant la propriété privée nommée 'hidden' :
'hidden' est visible depuis la classe, donc __get() n'est pas utilisée...
2
'hidden' n'est pas visible en dehors de la classe, donc __get() est utilisée...
Récupération de 'hidden'

Notice: Propriété non-définie via __get() : hidden dans <file> à la ligne 64 dans <file> à la ligne 28

Surcharge de méthodes

public mixed __call ( string $name , array $arguments )
public static mixed __callStatic ( string $name , array $arguments )

__call() est appelée lorsque l'on invoque des méthodes inaccessibles dans un contexte objet.

__callStatic() est lancée lorsque l'on invoque des méthodes inaccessibles dans un contexte statique.

L'argument $name est le nom de la méthode appelée. L'argument $arguments est un tableau contenant les paramètres passés à la méthode $name.

Exemple #2 Surcharge de méthodes avec __call() et __callStatic()

<?php
class MethodTest
{
    public function __call($name, $arguments)
    {
        // Note : la valeur de $name est sensible à la casse.
        echo "Appel de la méthode '$name' "
             . implode(', ', $arguments). "\n";
    }

    /**  Depuis PHP 5.3.0  */
    public static function __callStatic($name, $arguments)
    {
        // Note : la valeur de $name est sensible à la casse.
        echo "Appel de la méthode statique '$name' "
             . implode(', ', $arguments). "\n";
    }
}

$obj = new MethodTest;
$obj->runTest('dans un contexte objet');

MethodTest::runTest('dans un contexte static');  // Depuis PHP 5.3.0
?>

L'exemple ci-dessus va afficher :

Appel de la méthode 'runTest' dans un contexte objet
Appel de la méthode statique 'runTest' dans un contexte static


Parcours d'objets

PHP fournit une façon de définir les objets de manière à ce qu'on puisse parcourir une liste de membres, par exemple avec une structure foreach. Par défaut, toutes les propriétés visibles seront utilisées pour le parcours.

Exemple #1 Parcours d'objet simple

<?php
class MyClass
{
  public $var1 = 'valeur 1';
  public $var2 = 'valeur 2';
  public $var3 = 'valeur 3';

  protected $protected = 'variable protégée';
  private   $private   = 'variable privée';

  function iterateVisible() {
     echo "MyClass::iterateVisible:\n";
     foreach($this as $key => $value) {
         print "$key => $value\n";
     }
  }
}

$class = new MyClass();

foreach($class as $key => $value) {
    print "$key => $value\n";
}
echo "\n";

$class->iterateVisible();

L'exemple ci-dessus va afficher :

var1 => valeur 1
var2 => valeur 2
var3 => valeur 3

MyClass::iterateVisible:
var1 => valeur 1
var2 => valeur 2
var3 => valeur 3
protected => variable protégée
private => variable privée

Comme le montre la sortie, l'itération foreach a traversé toutes les propriétés visibles qui ont pu être accédées.

Pour aller plus loin, l'interface Iterator peut être implémentée. Elle permet à l'objet d'indiquer la façon dont il doit être traversé, et quelles valeurs seront disponibles à chaque itération

Exemple #2 Itération d'un objet implémentant un itérateur

<?php
class MyIterator implements Iterator
{
    private $var = array();

    public function __construct($array)
    {
        if (is_array($array)) {
            $this->var = $array;
        }
    }

    public function rewind()
    {
        echo "rembobinage\n";
        reset($this->var);
    }

    public function current()
    {
        $var = current($this->var);
        echo "actuel : $var\n";
        return $var;
    }

    public function key()
    {
        $var = key($this->var);
        echo "clé : $var\n";
        return $var;
    }

    public function next()
    {
        $var = next($this->var);
        echo "suivant : $var\n";
        return $var;
    }

    public function valid()
    {
        $key = key($this->var);
        $var = ($key !== NULL && $key !== FALSE);
        echo "valide : $var\n";
        return $var;
    }

}

$values = array(1,2,3);
$it = new MyIterator($values);

foreach ($it as $a => $b) {
    print "$a : $b\n";
}
?>

L'exemple ci-dessus va afficher :

rembobinage
valide : 1
actuel : 1
clé : 0
0 : 1
suivant : 2
valide : 1
actuel : 2
clé : 1
1 : 2
suivant : 3
valide : 1
actuel : 3
clé : 2
2 : 3
suivant :
valide :

L'interface IteratorAggregate peut être utilisé comme une alternative à l'implémentation de toutes les méthodes de Iterator. IteratorAggregate ne nécessite l'implémentation que d'une méthode, IteratorAggregate::getIterator(), qui doit retourner une instance d'une classe implémentant Iterator.

Exemple #3 Itération d'un objet implémentant IteratorAggregate

<?php
class MyCollection implements IteratorAggregate
{
  private $items = array();
  private $count = 0;

  // Définition requise de l'interface IteratorAggregate
  public function getIterator() {
    return new MyIterator($this->items);
  }

  public function add($value) {
    $this->items[$this->count++] = $value;
  }
}

$coll = new MyCollection();
$coll->add('valeur 1');
$coll->add('valeur 2');
$coll->add('valeur 3');

foreach ($coll as $key => $val) {
    echo "clé/valeur : [$key -> $val]\n\n";
}
?>

L'exemple ci-dessus va afficher :

rembobinage
actuel : valeur 1
valide : 1
actuel : valeur 1
clé : 0
clé/valeur : [0 -> valeur 1]

suivant : valeur 2
actuel : valeur 2
valide : 1
actuel : valeur 2
clé : 1
clé/valeur : [1 -> valeur 2]

suivant : valeur 3
actuel : valeur 3
valide : 1
actuel : valeur 3
clé : 2
clé/valeur : [2 -> valeur 3]

suivant :
actuel :
valide :

Note:

Pour plus d'exemples sur le parcours d'objets, lisez la section sur l'extension SPL.

Note:

Les utilisateurs de PHP 5.5 et supérieur peuvent également vouloir utiliser les générateurs, qui fournissent une alternative aux itérateurs.


Méthodes magiques

Les noms de méthodes
__construct(),
__destruct(),
__call(),
__callStatic(),
__get(),
__set(),
__isset(),
__unset(),
__sleep(),
__wakeup(),
__toString(),
__invoke(),
__set_state()
__clone() et
__debugInfo()
sont magiques dans les classes PHP. Vous ne pouvez pas utiliser ces noms de méthodes
dans vos classes, sauf si vous voulez implémenter
le comportement associé à ces méthodes magiques.

Attention

PHP réserve tous les noms de fonctions commençant par un double souligné __ pour les méthodes magiques. Il est recommandé de ne pas utiliser de noms de fonctions commençant par __ sauf si vous voulez des fonctionnalités magiques documentées.

__sleep() et __wakeup()

public array __sleep ( void )
void __wakeup ( void )

La fonction serialize() vérifie si votre classe a une méthode avec le nom magique __sleep(). Si c'est le cas, cette méthode sera exécutée avant toute linéarisation. Elle peut nettoyer l'objet, et elle est supposée retourner un tableau avec les noms de toutes les variables de l'objet qui doivent être linéarisées. Si la méthode ne retourne rien, alors NULL sera linéarisé, et une alerte de type E_NOTICE sera émise.

Note:

Il n'est pas possible pour __sleep() de retourner des noms de propriétés privées des classes parentes. Le faire résultera en une erreur de niveau E_NOTICE. À la place, vous devriez utiliser l'interface Serializable.

Le but avoué de __sleep() est de valider des données en attente ou d'effectuer des opérations de nettoyage. De plus, cette fonction est utile si vous avez de très gros objets qui n'ont pas besoin d'être sauvegardés en totalité.

Réciproquement, la fonction unserialize() vérifie la présence d'une méthode dont le nom est le nom magique __wakeup(). Si elle est présente, cette fonction peut reconstruire toute ressource que l'objet pourrait possèder.

Le but avoué de __wakeup() est de rétablir toute connexion de base de données qui aurait été perdue durant la linéarisation et d'effectuer des tâches de réinitialisation.

Exemple #1 Utilisation de sleep() et wakeup()

<?php
class Connection
{
    protected $link;
    private $dsn, $username, $password;

    public function __construct($dsn, $username, $password)
    {
        $this->dsn = $dsn;
        $this->username = $username;
        $this->password = $password;
        $this->connect();
    }

    private function connect()
    {
        $this->link = new PDO($this->dsn, $this->username, $this->password);
    }

    public function __sleep()
    {
        return array('dsn', 'username', 'password');
    }

    public function __wakeup()
    {
        $this->connect();
    }
}
?>

__toString()

public string __toString ( void )

La méthode __toString() détermine comment l'objet doit réagir lorsqu'il est traité comme une chaîne de caractères. Par exemple, ce que echo $obj; affichera. Cette méthode doit retourner une chaîne, sinon une erreur E_RECOVERABLE_ERROR sera levée.

Avertissement

Vous ne pouvez pas lancer d'exception depuis la méthode __toString(). Si vous le tentez, une erreur fatale en résultera.

Exemple #2 Exemple simple

<?php
// Déclaration d'une classe simple
class ClasseTest
{
    public $foo;

    public function __construct($foo)
    {
        $this->foo = $foo;
    }

    public function __toString()
    {
        return $this->foo;
    }
}

$class = new ClasseTest('Bonjour');
echo $class;
?>

L'exemple ci-dessus va afficher :

Bonjour

Il est important de noter qu'avant PHP 5.2.0, la méthode __toString() n'était appelée que si elle était directement combinée avec echo ou print. Depuis PHP 5.2.0, elle est appelée dans tous les contextes de chaîne de caractères (par exemple, dans printf() avec le modificateur %s), mais pas dans les contextes d'autres types (par exemple, avec le modificateur %d). Depuis PHP 5.2.0, convertir un objet sans la méthode __toString() en chaîne de caractères émettra une E_RECOVERABLE_ERROR.

__invoke()

mixed __invoke ([ $... ] )

La méthode __invoke() est appelée lorsqu'un script tente d'appeler un objet comme une fonction.

Note:

Cette fonctionnalité est disponible depuis PHP 5.3.0.

Exemple #3 Exemple avec __invoke()

<?php
class CallableClass
{
    public function __invoke($x)
    {
        var_dump($x);
    }
}
$obj = new CallableClass;
$obj(5);
var_dump(is_callable($obj));
?>

L'exemple ci-dessus va afficher :

int(5)
bool(true)

__set_state()

static object __set_state ( array $properties )

Cette méthode statique est appelée pour les classes exportées par la fonction var_export() depuis PHP 5.1.0.

Le seul paramètre de cette méthode est un tableau contenant les propriétés exportées sous la forme array('propriété' => valeur, ...).

Exemple #4 Utilisation de __set_state() (depuis PHP 5.1.0)

<?php

class A
{
    public $var1;
    public $var2;

    public static function __set_state($an_array) // Depuis PHP 5.1.0
    {
        $obj = new A;
        $obj->var1 = $an_array['var1'];
        $obj->var2 = $an_array['var2'];
        return $obj;
    }
}

$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';

eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
                                            //    'var1' => 5,
                                            //    'var2' => 'foo',
                                            // ));
var_dump($b);

?>

L'exemple ci-dessus va afficher :

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

__debugInfo()

array __debugInfo ( void )

Cette méthode est appelée par var_dump() lors du traitement d'un objet pour récupérer les propriétés qui doivent être affichées. Si la méthode n'est pas définie dans un objet, alors toutes les propriétés publiques, protégées et privées seront affichées.

Cette fonctionalité a été ajoutée en PHP 5.6.0.

Exemple #5 Utilisation de __debugInfo()

<?php
class C {
    private $prop;

    public function __construct($val) {
        $this->prop = $val;
    }

    public function __debugInfo() {
        return [
            'propSquared' => $this->prop ** 2,
        ];
    }
}

var_dump(new C(42));
?>

L'exemple ci-dessus va afficher :

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}


Mot-clé "final"

PHP 5 dispose du mot-clé "final", qui empêche les classes filles de surcharger une méthode, lorsque la définition de cette dernière est préfixée par le mot-clé "final". Si la classe elle-même est définie comme finale, elle ne pourra pas être étendue.

Exemple #1 Exemple de méthode finale

<?php
class BaseClass {
   public function test() {
       echo "BaseClass::test() appelée\n";
   }

   final public function moreTesting() {
       echo "BaseClass::moreTesting() appelée\n";
   }
}

class ChildClass extends BaseClass {
   public function moreTesting() {
       echo "ChildClass::moreTesting() appelée\n";
   }
}
// Résultat : Fatal error: Cannot override final method BaseClass::moreTesting()
?>

Exemple #2 Exemple de classe finale

<?php
final class BaseClass {
   public function test() {
       echo "BaseClass::test() appelée\n";
   }

   // Ici, peu importe si vous spécifiez la fonction en finale ou pas
   final public function moreTesting() {
       echo "BaseClass::moreTesting() appelée\n";
   }
}

class ChildClass extends BaseClass {
}
// Résultat : Fatal error: Class ChildClass may not inherit from final class (BaseClass)
?>

Note: Les propriétés ne peuvent être déclarées comme finales : seules les méthodes ou les classes peuvent l'être.


Clônage d'objets

Le fait de créer une copie d'un objet possédant exactement les mêmes propriétés n'est pas toujours le comportement que l'on souhaite. Un bon exemple pour illustrer le besoin d'un constructeur de copie : si vous avez un objet qui représente une fenêtre GTK et que l'objet contient la ressource représentant cette fenêtre GTK, lorsque vous créez une copie vous pouvez vouloir créer une nouvelle fenêtre avec les mêmes propriétés, mais que le nouvel objet contienne une ressource représentant la nouvelle fenêtre.

Une copie d'objet est créée en utilisant le mot-clé clone (qui fait appel à la méthode __clone() de l'objet, si elle a été définie). La méthode __clone() d'un objet ne peut être appelée directement.

<?php

$copie_d_objet = clone $objet;

?>

Lorsqu'un objet est cloné, PHP effectue une copie superficielle de toutes les propriétés de l'objet. Toutes les propriétés qui sont des références à d'autres variables demeureront des références.

void __clone ( void )

Une fois le clonage effectué, si une méthode __clone() est définie, la méthode __clone() du nouvel objet sera appelée, pour permettre à chaque propriété qui doit l'être d'être modifiée.

Exemple #1 Exemple de duplication d'objets

<?php
class SubObject
{
  static $instances = 0;
  public $instance;

  public function __construct() {
    $this->instance = ++self::$instances;
  }

  public function __clone() {
    $this->instance = ++self::$instances;
  }
}

class MyCloneable
{
  public $objet1;
  public $objet2;

  function __clone()
  {
    // Force la copie de this->object, sinon
    // il pointera vers le même objet.
    $this->object1 = clone $this->object1;
  }
}

$obj = new MyCloneable();

$obj->object1 = new SubObject();
$obj->object2 = new SubObject();

$obj2 = clone $obj;

print("Objet original :\n");
print_r($obj);

print("Objet cloné :\n");
print_r($obj2);

?>

L'exemple ci-dessus va afficher :

Object original :
MyCloneable Object
(
    [object1] => SubObject Object
        (
            [instance] => 1
        )

    [object2] => SubObject Object
        (
            [instance] => 2
        )

)
Object cloné :
MyCloneable Object
(
    [object1] => SubObject Object
        (
            [instance] => 3
        )

    [object2] => SubObject Object
        (
            [instance] => 2
        )

)


Comparaison d'objets

Lors de l'utilisation de l'opérateur de comparaison (==), les objets sont comparés de manière simple, à savoir : deux objets sont égaux s'ils ont les mêmes attributs et valeurs (les valeurs sont comparées avec l'opérateur ==), et qu'ils sont des instances de la même classe.

Lors de l'utilisation de l'opérateur d'identité (===), les objets sont identiques uniquement s'ils font référence à la même instance de la même classe.

Un exemple va illustrer ces règles.

Exemple #1 Exemple de comparaison d'objets en PHP

<?php
function bool2str($bool)
{
    if ($bool === false) {
            return 'FALSE';
    } else {
            return 'TRUE';
    }
}

function compareObjects(&$o1, &$o2)
{
    echo 'o1 == o2 : '.bool2str($o1 == $o2)."\n";
    echo 'o1 != o2 : '.bool2str($o1 != $o2)."\n";
    echo 'o1 === o2 : '.bool2str($o1 === $o2)."\n";
    echo 'o1 !== o2 : '.bool2str($o1 !== $o2)."\n";
}

class Flag
{
    public $flag;

    function Flag($flag = true) {
        $this->flag = $flag;
    }
}

class OtherFlag
{
    public $flag;

    function OtherFlag($flag = true) {
        $this->flag = $flag;
    }
}

$o = new Flag();
$p = new Flag();
$q = $o;
$r = new OtherFlag();

echo "Deux instances de la même classe\n";
compareObjects($o, $p);

echo "\nDeux références sur le même objet\n";
compareObjects($o, $q);

echo "\nInstances de classes différentes\n";
compareObjects($o, $r);
?>

L'exemple ci-dessus va afficher :

Deux instances de la même classe
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Deux références sur le même objet
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Instances de classes différentes
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Note:

Les extensions peuvent définir leurs propres règles pour leurs comparaisons d'objets (==).


Typage objet

PHP 5 introduit le typage explicite (littéralement, Type Hinting, allusion à un type). Les fonctions peuvent maintenant imposer aux paramètres un typage (en spécifiant le nom de la classe dans le prototype de la fonction), et ainsi d'être des Objets, des interfaces, des tableaux (depuis PHP 5.1), ou de type callable (depuis PHP 5.4). Cependant, si NULL est utilisé en tant que valeur par défaut du paramètre, il sera autorisé comme argument pour tous les futurs appels.

Si une classe ou une interface est spécifiée comme type, alors toutes les classes en héritant ou ses implémentations seront aussi autorisées.

La spécification d'un type ne peut être utilisée avec les types scalaires comme int ou string. Les ressources et les Traits ne sont pas non plus autorisés.

Exemple #1 Exemples de typage d'objets

<?php
// Un exemple de classe
class MaClasse
{
    /**
     * Fonction de test
     *
     * Le premier paramètre doit être un objet de type AutreClasse
     */
    public function test(AutreClasse $autreclasse) {
        echo $autreclasse->var;
    }

    /**
    * Une autre fonction de test
    *
    * Le premier paramètre doit être un tableau
    */
    public function test_array(array $input_array) {
        print_r($input_array);
    }

    /**
     * Le premier paramètre doit être un itérateur
     */
    public function test_interface(Traversable $iterator) {
        echo get_class($iterator);
    }

    /**
     * Le premier paramètre doit être une fonction de rappel (callable)
     */
    public function test_callable(callable $callback, $data) {
        call_user_func($callback, $data);
    }
}

// Un autre exemple de classe
class AutreClasse {
    public $var = 'Bonjour le monde!';
}
?>

Si un paramètre ne satisfait pas les conditions imposées, une erreur fatale (qui peut être attrapée) est émise.

<?php
// Une instance de chaque classe
$maclasse = new MaClasse;
$autreclasse = new AutreClasse;

// Erreur fatale : Argument 1 doit être un objet de la classe AutreClasse
$maclasse->test('salut');

// Erreur fatale : Argument 1 doit être une instance de AutreClasse
$foo = new stdClass;
$maclasse->test($foo);

// Erreur fatale : Argument 1 ne doit pas être null
$maclasse->test(null);

// Fonctionne : Affiche 'Bonjour le monde!'
$maclasse->test($autreclasse);

// Erreur fatale : Argument 1 doit être un tableau
$maclasse->test_array('a string');

// Fonctionne : Affiche le tableau
$maclasse->test_array(array('a', 'b', 'c'));

// Fonctionne : Affiche ArrayObject
$maclasse->test_interface(new ArrayObject(array()));

// Fonctionne : Affiche int(1)
$maclasse->test_callable('var_dump', 1);
?>

Le typage fonctionne aussi avec les fonctions :

<?php
// Un exemple de classe
class MaClasse {
    public $var = 'Bonjour le monde!';
}

/**
 * Fonction de test
 *
 * Le premier paramètre doit être un objet de type MaClasse
 */
function maFonction(MaClasse $foo) {
    echo $foo->var;
}

// Fonctionne
$maclasse = new MaClasse;
maFonction($maclasse);
?>

Le typage objet autorise la valeur NULL :

<?php

/* On accepte la valeur NULL */
function test(stdClass $obj = NULL) {

}

test(NULL);
test(new stdClass);

?>


Late Static Bindings (Résolution statique à la volée)

Depuis PHP 5.3.0, PHP implémente une fonctionnalité appelée late static binding, en français la résolution statique à la volée, qui peut être utilisée pour référencer la classe appelée dans un contexte d'héritage statique.

Plus précisément, les résolutions statiques à la volée fonctionnent en enregistrant le nom de la classe dans le dernier "appel non transmis". Dans le cas des appels de méthodes statiques, il s'agit de la classe explicitement nommée (généralement, celle à gauche de l'opérateur ::) ; dans le cas de méthodes non statiques, il s'agit de la classe de l'objet. Un "appel transmis" est un appel statique déclenché par self::, parent::, static::, ou, tout en haut de la hierarchie des classes, forward_static_call(). La fonction get_called_class() peut être utilisée pour récupérer une chaine contenant le nom de la classe appelée, et static:: introduit son espace.

Cette fonctionnalité a été baptisée "late static bindings", avec un point de vue interne. "Late binding", littéralement résolution tardive, vient du fait que les éléments static:: ne seront pas résolus en utilisant la classe où la méthode a été définie, mais celle qui est active durant l'exécution. L'adjectif statique a été ajouté car ce problème s'applique (sans y être limité) aux méthodes statiques.

Limitations de self::

Les références statiques à la classe courante, avec self:: ou __CLASS__, sont résolues en utilisant la classe à laquelle appartiennent les fonctions, celle où elles ont été définies :

Exemple #1 Utilisation de self::

<?php
class A {
    public static function qui() {
        echo __CLASS__;
    }
    public static function test() {
        self::qui();
    }
}

class B extends A {
    public static function qui() {
         echo __CLASS__;
    }
}

B::test();
?>

L'exemple ci-dessus va afficher :

A

Utilisation de la résolution statique à la volée

La résolution statique à la volée essaie de dépasser cette limitation en introduisant un mot clé qui fait référence à la classe qui a été appelée durant l'exécution. Pour faire simple, ce mot-clé vous permet de faire référence à B depuis test(), dans l'exemple précédent. Il a été décidé de ne pas introduire de nouveau mot clé, mais plutôt d'utiliser le mot static qui était déjà réservé.

Exemple #2 Utilisation simple de static::

<?php
class A {
    public static function qui() {
        echo __CLASS__;
    }
    public static function test() {
        static::qui(); // Ici, résolution à la volée
    }
}

class B extends A {
    public static function qui() {
         echo __CLASS__;
    }
}

B::test();
?>

L'exemple ci-dessus va afficher :

B

Note:

Dans les contextes non statiques, la classe appelée sera celle de l'objet. Comme $this-> essayera d'appeler des méthodes privées depuis le même contexte, utiliser static:: pourrait donner des résultats différents. Notez aussi que static:: ne peut faire référence qu'à des attributs/méthodes statiques.

Exemple #3 Utilisation de static:: dans un contexte non statique

<?php
class A {
    private function foo() {
        echo "success!\n";
    }
    public function test() {
        $this->foo();
        static::foo();
    }
}

class B extends A {
   /* foo() sera copiée dans B, par conséquent son contexte sera toujours A
    * et l'appel se fera sans problème */
}

class C extends A {
    private function foo() {
        /* La méthode originale est remplacée; le contexte est celui de C */
    }
}

$b = new B();
$b->test();
$c = new C();
$c->test();   //échoue
?>

L'exemple ci-dessus va afficher :

success!
success!
success!

Fatal error:  Call to private method C::foo() from context 'A' in /tmp/test.php on line 9

Note:

La résolution des statiques à la volée va s'arrêter à un appel statique complètement résolu. D'un autre coté, les appels statiques en utilisant un mot-clé comme parent:: ou self:: vont transmettre l'information appelante.

Exemple #4 Appel avec ou sans transmission

<?php
class A {
    public static function foo() {
        static::qui();
    }

    public static function qui() {
        echo __CLASS__."\n";
    }
}

class B extends A {
    public static function test() {
        A::foo();
        parent::foo();
        self::foo();
    }

    public static function qui() {
        echo __CLASS__."\n";
    }
}
class C extends B {
    public static function qui() {
        echo __CLASS__."\n";
    }
}

C::test();
?>

L'exemple ci-dessus va afficher :

A
C
C


Objets et références

Un des piliers de la POO de PHP 5 est le fait que les "objets sont passés par référence par défaut". Ce n'est pas complètement vrai. Cette section rectifie cette généralisation avec quelques exemples.

Une référence PHP est un alias, qui permet à deux variables différentes de représenter la même valeur. Depuis PHP 5, une variable objet ne contient plus l'objet en lui-même. Elle contient seulement un identifiant d'objet, qui permet aux accesseurs d'objets de trouver cet objet. Lorsque l'objet est utilisé comme argument, retourné par une fonction, ou assigné à une autre variable, les différentes variables ne sont pas des alias : elles contiennent des copies de l'identifiant, qui pointent sur le même objet.

Exemple #1 Références et Objets

<?php
class A {
    public $foo = 1;
}

$a = new A;
$b = $a;     // $a et $b sont des copies du même identifiant
             // ($a) = ($b) = <id>
$b->foo = 2;
echo $a->foo."\n";

$c = new A;
$d = &$c;    // $c et $d sont des références
             // ($c,$d) = <id>

$d->foo = 2;
echo $c->foo."\n";

$e = new A;

function foo($obj) {
    // ($obj) = ($e) = <id>
    $obj->foo = 2;
}

foo($e);
echo $e->foo."\n";

?>

L'exemple ci-dessus va afficher :

2
2
2


Sérialisation d'objets

Sérialiser des objets - des objets en session

serialize() retourne une chaîne de caractères contenant une représentation linéaire de n'importe quelle valeur qui peut être stockée en PHP. unserialize() peut utiliser cette chaîne de caractères pour recréer la valeur originale de la variable à partir de sa représentation linéaire. Utiliser serialize() pour sauvegarder un objet conservera toutes ses variables. Ses méthodes ne seront pas conservées, seul le nom de la classe le sera.

Afin de pouvoir désérialiser (unserialize()) un objet, la classe de l'objet doit être définie, pour permettre sa reconstruction. En d'autres termes, si vous avez un objet de la classe A et le sérialisez, la représentation linéaire obtenue fera référence à la classe A et contiendra toutes ses variables. Si vous voulez pouvoir désérialiser cette représentation linéaire dans un endroit où la classe A n'est pas définie (dans un autre fichier par exemple), alors vous devrez redéclarer la classe A avant de procéder à la désérialisation de sa représentation linéaire. Cela peut-être fait, par exemple, en incluant le fichier de définition de la classe, ou en utilisant la fonction spl_autoload_register().

<?php
// class_a.inc.php :

  class A {
      public $one = 1;

      public function show_one() {
          echo $this->one;
      }
  }

// page1.php :

  include("class_a.inc.php");

  $a = new A;
  $s = serialize($a);
  // enregistre $s quelque part où page2.php peut le retrouver
  file_put_contents('store', $s);

// page2.php :

  // nous avons besoin de la définition de la classe
  // pour qu'unserialize() fonctionne
  include("class_a.inc.php");

  $s = file_get_contents('store');
  $a = unserialize($s);

  // appel de show_one() sur l'objet $a, affiche 1
  $a->show_one();
?>

Si une application utilise le système de sessions et enregistre des objets à l'aide de session_register(), ces objets sont sérialisés automatiquement à la fin de chaque page PHP, et sont désérialisés automatiquement à chaque page suivante. Cela signifie qu'une fois mis en session, ces objets peuvent apparaître dans n'importe quelle page de l'application où la session est démarrée. Notez cependant que la fonction session_register() est supprimée depuis PHP 5.4.0

Si une application sérialise des objets, il est fortement recommandé, pour son usage futur, que l'application inclut les définitions des classes des objets sérialisés à chaque page. Ne pas faire ainsi pourrait aboutir à un objet désérialisé sans sa définition de classe. PHP donnerait alors à cet objet une classe de type __PHP_Incomplete_Class_Name, qui n'a pas de méthode, et produirait un objet inutile.

Ainsi, dans l'exemple ci-dessus, si $a était enregistré dans la session en exécutant session_register("a"), vous devriez inclure le fichier class_a.inc.php dans toutes vos pages, et pas seulement dans page1.php et page2.php

Notez que vous pouvez également utiliser les événements de linéarisation et de dé-linéarisation sur un objet en utilisant les méthodes __sleep() et __wakeup(). L'utilisation de __sleep() vous permet également de seulement linéariser une partie des propriétés de l'objet.


Modifications en POO (Programmation orientée objet)

Les changements du modèle objet de PHP 5 sont recensés ici. Plus d'informations et quelques notes peuvent être trouvées dans la documentation sur la POO en PHP5.

Version | Description
5.5.0 | Ajout : finally pour gérer les exceptions.
5.4.0 | Ajout : traits.
5.4.0 | Changement : Si une classe abstraite définit une signature pour le constructeur, celle-ci sera désormais appliquée.
5.3.3 | Changement : Les méthodes ayant le même nom que la classe dans un espace de noms ne sont plus considérées comme constructeur. Ce changement n'affecte pas les classes sans espace de nom.
5.3.0 | Changement : les classes qui implémentent une interface avec des méthodes ayant des valeurs par défaut définies dans leurs prototypes ne sont plus obligées de respecter les valeurs par défaut définies dans l'interface.
5.3.0 | Changement : Il est maintenant possible de référencer une classe en utilisant une variable (ex: echo $classname::constant;). La valeur de la variable ne peut être un mot-clé (ex: self, parent ou static).
5.3.0 | Changement : Une erreur de niveau E_WARNING est levée si les méthodes magiques de surcharge sont déclarées comme statiques. La visibilité publique est aussi requise.
5.3.0 | Changement : Avant 5.3.0, les exceptions lancées dans la fonction __autoload() ne pouvaient être traitées dans un bloc catch et résultaient en une erreur fatale. A présent, les exceptions levées dans la fonction __autoload peuvent être attrapées dans un bloc catch et traitées. Si une exception personnalisée est lancée, alors sa classe doit être disponible. La fonction __autoload peut par contre être utilisée recursivement pour autocharger la classe d'exception personnalisée.
5.3.0 | Ajout de la méthode magique __callStatic.
5.3.0 | Ajout : heredoc et nowdoc sont supportées pour définir les constantes de classes et les propriétés. Note: Les valeurs heredoc ne doivent pas contenir de variables.
5.3.0 | Ajout du Late Static Bindings (résolution statique tardive).
5.3.0 | Ajout de la méthode magique __invoke().
5.2.0 | Changement : La méthode magique __toString() n'était appelée que lors des appels à echo ou print. Maintenant, elle l'est dans n'importe quel contexte de chaîne (ex: dans printf() avec %s) mais pas dans les autres contextes (ex: avec le modificateur %d). Depuis PHP 5.2.0, convertir un objet sans méthode__toString en chaîne émet une erreur E_RECOVERABLE_ERROR.
5.1.3 | Changement : Dans les versions antérieures de PHP 5, l'utilisation de var était considérée comme obsolète et envoyait une erreur E_STRICT. Ce n'est plus le cas.
5.1.0 | Changement : La méthode magique statique __set_state() est maintenant appelée pour les classes exportées via var_export().
5.1.0 | Ajout des méthodes magiques __isset() et __unset().


Les espaces de noms

Sommaire

  • Introduction aux espaces de noms
  • Définition des espaces de noms
  • Déclaration d'un sous espace de noms
  • Définition de plusieurs espaces de noms dans le même fichier
  • Utilisation des espaces de noms : introduction
  • Espaces de noms et langage dynamique
  • La commande namespace et la constante __NAMESPACE__
  • Utilisation des espaces de noms : importation et alias
  • Espace de noms global
  • Utilisation des espaces de noms : retour à l'espace global
  • Règles de résolutions de noms
  • Foire aux questions : ce que vous devez savoir des espaces de noms


Introduction aux espaces de noms

(PHP 5 >= 5.3.0, PHP 7)

Que sont les espaces de noms ? Dans leur définition la plus large, ils représentent un moyen d'encapsuler des éléments. Cela peut être conçu comme un concept abstrait, à différents endroits. Par exemple, dans un système de fichiers, les dossiers représentent un groupe de fichiers associés et servent d'espace de noms pour les fichiers qu'ils contiennent. Un exemple concret est que le fichier foo.txt peut exister dans les deux dossiers /home/greg et /home/other, mais que les deux copies de foo.txt ne peuvent pas co-exister dans le même dossier. De plus, pour accéder au fichier foo.txt depuis l'extérieur du dossier /home/greg, il faut préciser le nom du dossier en utilisant un séparateur de dossier, tel que /home/greg/foo.txt. Le même principe s'applique aux espaces de noms dans le monde de la programmation.

Dans le monde PHP, les espaces de noms sont conçus pour résoudre deux problèmes que rencontrent les auteurs de bibliothèques et d'applications lors de la réutilisation d'éléments tels que des classes ou des bibliothèques de fonctions :

  1. Collisions de noms entre le code que vous créez, les classes, fonctions ou constantes internes de PHP, ou celle de bibliothèques tierces.
  2. La capacité de faire des alias ou de raccourcir des Noms_Extremement_Long pour aider à la résolution du premier problème, et améliorer la lisibilité du code.

Les espaces de noms PHP fournissent un moyen pour regrouper des classes, interfaces, fonctions ou constantes. Voici un exemple de syntaxe des espaces de noms PHP :

Exemple #1 Exemple de syntaxe des espaces de noms

<?php
namespace mon\nom; // Voyez la section "Définition des espaces de noms"

class MaClasse {}
function mafonction() {}
const MACONSTANTE = 1;

$a = new MaClasse;
$c = new \mon\nom\MaClasse; // Voyez la section "Espace global"

$a = strlen('bonjour'); // Voyez "Utilisation des espaces de noms : retour
       // à l'espace global

$d = namespace\MACONSTANTE; // Voyez "L'opérateur namespace et la constante __NAMESPACE__

$d = __NAMESPACE__ . '\MACONSTANTE';
echo constant($d); // Voyez "Espaces de noms et fonctionnalités dynamiques"
?>

Note:

Les espaces de noms PHP et php, mais aussi les noms composés commençant par ces noms (comme PHP\Classes) sont réservés pour l'utilisation interne du langage, et ne doivent pas être utilisés dans le code de l'espace utilisateur.


Définition des espaces de noms

(PHP 5 >= 5.3.0, PHP 7)

Bien que du code PHP valide puisse être contenu dans un espace de noms, seuls les types de code suivants peuvent être affectés par les espaces de noms : les classes (incluants les abstraites et les traits), les interfaces, les fonctions et les constantes.

Les espaces de noms sont déclarés avec le mot-clé namespace. Un fichier contenant un espace de noms doit déclarer l'espace au début du fichier, avant tout autre code, avec une seule exception : le mot clé declare.

Exemple #1 Déclaration d'un espace de noms

<?php
namespace MonProjet;

const CONNEXION_OK = 1;
class Connexion { /* ... */ }
function connecte() { /* ... */  }

?>
Le seul élément autorisé avant la déclaration d'espace de noms est la commande declare, pour définir l'encodage du fichier source. De plus, aucun code non-PHP ne peut précéder la déclaration d'espace de noms, y compris des espaces :

Exemple #2 Erreur de déclaration d'un espace de noms

<html>
<?php
namespace MonProjet; // erreur fatale : l'espace de noms doit être le premier élément du script
?>

De plus, contrairement à d'autres structures PHP, le même espace de noms peut être défini dans plusieurs fichiers, ce qui permet de scinder le contenu d'un espace de noms sur plusieurs fichiers.


Déclaration d'un sous espace de noms

(PHP 5 >= 5.3.0, PHP 7)

Comme pour les fichiers et les dossiers, les espaces de noms sont aussi capables de spécifier une hiérarchie d'espaces de noms. Ainsi, un nom d'espace de noms peut être défini avec ses sous-niveaux :

Exemple #1 Déclaration d'un espace de noms avec hiérarchie

<?php
namespace MonProjet\Sous\Niveau;

const CONNEXION_OK = 1;
class Connexion { /* ... */ }
function connecte() { /* ... */  }

?>
Dans l'exemple ci-dessus, la constante MonProjet\Sous\Niveau\CONNEXION_OK, la classe MonProjet\Sous\Niveau\Connexion et la fonction MonProjet\Sous\Niveau\connecte sont créées.


Définition de plusieurs espaces de noms dans le même fichier

(PHP 5 >= 5.3.0, PHP 7)

Plusieurs espaces de noms peuvent aussi être déclarés dans le même fichier. Il y a deux syntaxes autorisées.

Exemple #1 Déclaration de plusieurs espaces de noms, syntaxe à combinaison simple

<?php
namespace MonProjet;

const CONNEXION_OK = 1;
class Connexion { /* ... */ }
function connecte() { /* ... */  }

namespace AutreProjet;

const CONNEXION_OK = 1;
class Connexion { /* ... */ }
function connecte() { /* ... */  }
?>

Cette syntaxe n'est pas recommandée pour combiner des espaces de noms dans un seul fichier. Au lieu de cela, il est recommandé d'utiliser la syntaxe à accolades.

Exemple #2 Déclaration de plusieurs espaces de noms, syntaxe à accolades

<?php
namespace MonProjet {

const CONNEXION_OK = 1;
class Connexion { /* ... */ }
function connecte() { /* ... */  }
}

namespace AutreProjet {

const CONNEXION_OK = 1;
class Connexion { /* ... */ }
function connecte() { /* ... */  }
}
?>

Il est fortement recommandé, en tant que pratique de codage, de ne pas mélanger plusieurs espaces de noms dans le même fichier. L'utilisation recommandée est de combiner plusieurs scripts PHP dans le même fichier.

Pour combiner plusieurs codes sans espaces de noms dans du code avec espace de noms, seule la syntaxe à accolades est supportée. Le code global doit être encadré par un espace de noms sans nom, tel que celui-ci :

Exemple #3 Déclaration de plusieurs espaces de noms avec un espace sans nom

<?php
namespace MonProjet {

const CONNEXION_OK = 1;
class Connexion { /* ... */ }
function connecte() { /* ... */  }
}

namespace { // code global
session_start();
$a = MonProjet\connecte();
echo MonProjet\Connexion::start();
}
?>

Aucun code PHP ne peut exister hors des accolades de l'espace de noms, sauf pour ouvrir une nouvelle instruction declare.

Exemple #4 Déclaration de plusieurs espaces de noms avec un espace sans nom (2)

<?php
declare(encoding='UTF-8');
namespace MonProjet {

const CONNEXION_OK = 1;
class Connexion { /* ... */ }
function connecte() { /* ... */  }
}

namespace { // code global
session_start();
$a = MonProjet\connecte();
echo MonProjet\Connexion::start();
}
?>


Utilisation des espaces de noms : introduction

(PHP 5 >= 5.3.0, PHP 7)

Avant de discuter de l'utilisation des espaces de noms, il est important de comprendre comment PHP devine quel espace de noms votre code utilise. Une analogie simple peut être faite entre les espaces de noms de PHP et un système de fichiers. Il y a trois moyens d'accéder à un fichier dans un système de fichiers :

  1. Un nom relatif de fichier, tel que foo.txt. Cela est résolu en dossiercourant/foo.txt où dossiercourant est le dossier de travail. Si le dossier courant est /home/foo, ce nom se résout en /home/foo/foo.txt.
  2. Un chemin relatif, tel que sous-dossier/foo.txt. Cela se résout en dossiercourant/sous-dossier/foo.txt.
  3. Un chemin absolu, tel que /main/foo.txt. Cela se résout en /main/foo.txt.
Le même principe peut être appliqué aux espaces de noms de PHP. Par exemple, on peut faire référence à une classe de trois manières :
  1. Un nom sans qualificatif, ou une classe sans préfixe, telle que $a = new foo(); ou foo::methodestatique();. Si l'espace de noms courant est espacedenomscourant, ceci se résout en espacedenomscourant\foo. Si l'espace de noms est global, soit encore l'espace de noms sans nom, cela devient foo. Une mise en garde : les noms sans qualificatif pour les fonctions et les constantes vont être pris dans l'espace de noms global, si la fonction n'est pas définie dans l'espace de noms courant. Voyez Utilisation des espaces de noms : retour à l'espace de noms global pour les fonctions et les constantes pour plus de détails.
  2. Un nom qualifié, ou une classe préfixée telle que $a = new sousespacedenoms\foo(); ou sousespacedenoms\foo::methodestatique();. Si l'espace de noms courant est espacedenomscourant, cela devient espacedenomscourant\sousespacedenoms\foo. Si le code est global, c'est à dire l'espace de noms sans nom, cela devient sousespacedenoms\foo.
  3. Un nom absolu, ou un nom préfixé avec un opérateur global tel que $a = new \espacedenomscourant\foo(); ou \espacedenomscourant\foo::methodestatique();. Cela fait toujours référence au nom littéral spécifié dans le code : espacedenomscourant\foo.

Voici un exemple des trois syntaxes, dans du code réel :

file1.php

<?php
namespace Foo\Bar\sousespacedenoms;

const FOO = 1;
function foo() {}
class foo
{
    static function methodestatique() {}
}
?>

file2.php

<?php
namespace Foo\Bar;
include 'file1.php';

const FOO = 2;
function foo() {}
class foo
{
    static function methodestatique() {}
}

/* nom non qualifié */
foo(); // Devient Foo\Bar\foo
foo::methodestatique(); // Devient Foo\Bar\foo, méthode methodestatique
echo FOO; // Devient la constante Foo\Bar\FOO

/* nom qualifié */
sousespacedenoms\foo(); // Devient la fonction Foo\Bar\sousespacedenoms\foo
sousespacedenoms\foo::methodestatique(); // devient la classe Foo\Bar\sousespacedenoms\foo,
                                  // méthode methodestatique
echo sousespacedenoms\FOO; // Devient la constante Foo\Bar\sousespacedenoms\FOO

/* nom absolu */
\Foo\Bar\foo(); // Devient la fonction Foo\Bar\foo
\Foo\Bar\foo::methodestatique(); // Devient la classe Foo\Bar\foo, méthode methodestatique
echo \Foo\Bar\FOO; // Devient la constante Foo\Bar\FOO
?>

Notez que pour accéder à n'importe quelle classe, fonction ou constante globale, un nom absolu peut être utilisé, tel que \strlen() ou \Exception ou \INI_ALL.

Exemple #1 Accès aux classes, fonctions et constantes globales depuis un espace de noms

<?php
namespace Foo;

function strlen() {}
const INI_ALL = 3;
class Exception {}

$a = \strlen('hi'); // appel la fonction globale strlen
$b = \INI_ALL; // accès à une constante INI_ALL
$c = new \Exception('error'); // instantie la classe globale Exception
?>


Espaces de noms et langage dynamique

(PHP 5 >= 5.3.0, PHP 7)

L'implémentation des espaces de noms de PHP est influencée par sa nature dynamique de langage de programmation. Par conséquent, pour convertir du code tel que le code de l'exemple suivant, en un espace de noms :

Exemple #1 Accès dynamique aux éléments

example1.php:

<?php
class classname
{
    function __construct()
    {
        echo __METHOD__,"\n";
    }
}
function funcname()
{
    echo __FUNCTION__,"\n";
}
const constname = "global";

$a = 'classname';
$obj = new $a; // affiche classname::__construct
$b = 'funcname';
$b(); // affiche funcname
echo constant('constname'), "\n"; // affiche global
?>
Il faut utiliser un nom absolu (le nom de la classe, avec son préfixe d'espace de noms). Notez qu'il n'y a pas de différence entre un nom absolu et un nom qualifié dans un nom de classe, de fonction ou de constante dynamique, ce qui fait que l'anti-slash initial n'est pas nécessaire.

Exemple #2 Accès dynamique à des espaces de noms

<?php
namespace nomdelespacedenoms;
class classname
{
    function __construct()
    {
        echo __METHOD__,"\n";
    }
}
function funcname()
{
    echo __FUNCTION__,"\n";
}
const constname = "namespaced";

include 'example1.php';

$a = 'classname';
$obj = new $a; // affiche classname::__construct
$b = 'funcname';
$b(); // affiche funcname
echo constant('constname'), "\n"; // affiche global

/* Note que si vous utilisez des guillemets doubles, "\\nomdelespacedenoms\\classname" doit être utilisé */
$a = '\nomdelespacedenoms\classname';
$obj = new $a; // affiche nomdelespacedenoms\classname::__construct
$a = 'nomdelespacedenoms\classname';
$obj = new $a; // affiche aussi nomdelespacedenoms\classname::__construct
$b = 'nomdelespacedenoms\funcname';
$b(); // affiche nomdelespacedenoms\funcname
$b = '\nomdelespacedenoms\funcname';
$b(); // affiche aussi nomdelespacedenoms\funcname
echo constant('\nomdelespacedenoms\constname'), "\n"; // affiche namespaced
echo constant('nomdelespacedenoms\constname'), "\n"; // affiche aussi namespaced
?>

Il est recommandé de lire la note au sujet de la protection des espaces de noms dans les chaînes.


La commande namespace et la constante __NAMESPACE__

(PHP 5 >= 5.3.0, PHP 7)

PHP supporte deux moyens pour accéder de manière abstraite aux éléments dans l'espace de nom courant, à savoir la constante magique __NAMESPACE__ et la commande namespace.

La valeur de __NAMESPACE__ est une chaîne qui contient le nom de l'espace de noms courant. Dans l'espace global, sans nom, elle contient une chaîne vide.

Exemple #1 Exemple avec __NAMESPACE__, dans un code avec espace de noms

<?php
namespace MonProjet;

echo '"', __NAMESPACE__, '"'; // affiche "MonProjet"
?>

Exemple #2 Exemple avec __NAMESPACE__, dans un code avec espace de noms global

<?php

echo '"', __NAMESPACE__, '"'; // affiche ""
?>
La constante __NAMESPACE__ est utile pour construire dynamiquement des noms, tels que :

Exemple #3 Utilisation de __NAMESPACE__ pour une construction dynamique de noms

<?php
namespace MonProjet;

function get($classname)
{
    $a = __NAMESPACE__ . '\\' . $classname;
    return new $a;
}
?>

La commande namespace peut aussi être utilisée pour demander explicitement un élément de l'espace de noms courant, ou d'un sous-espace. C'est l'équivalent pour les espaces de noms de l'opérateur self des classes.

Exemple #4 l'opérateur namespace, dans un espace de noms

<?php
namespace MonProjet;

use blah\blah as mine; // Voyez "Utilisation des espaces de noms : alias et importation"

blah\mine(); // appelle la fonction MonProjet\blah\mine()
namespace\blah\mine(); // appelle la fonction MonProjet\blah\mine()

namespace\func(); // appelle la fonction MonProjet\func()
namespace\sub\func(); // appelle la fonction MonProjet\sub\func()
namespace\cname::method(); // appelle la méthode statique "method" de la classe MonProjet\cname
$a = new namespace\sub\cname(); // instantie un objet de la classe MonProjet\sub\cname
$b = namespace\CONSTANT; // assigne la valeur de la constante MonProjet\CONSTANT à $b
?>

Exemple #5 l'opérateur namespace, dans l'espace de noms global

<?php

namespace\func(); // appelle la fonction func()
namespace\sub\func(); // appelle la fonction sub\func()
namespace\cname::method(); // appelle la méthode statique "method" de la classe cname
$a = new namespace\sub\cname(); // instantie un objet de la classe sub\cname
$b = namespace\CONSTANT; // assigne la valeur de la constante CONSTANT à $b
?>


Utilisation des espaces de noms : importation et alias

La capacité de faire référence à un nom absolu avec un alias ou en important un espace de noms est stratégique. C'est un avantage similaire aux liens symboliques dans un système de fichiers.

Toutes les versions de PHP qui supportent les espaces de noms supportent trois types d'alias ou d'importation : l'alias de nom de classe, l'alias de nom d'interface, et l'alias d'espace de noms. PHP 5.6+ autorise également les alias de fonctions ou l'importation de fonctions et des noms de constantes.

En PHP, l'alias est créé avec l'opérateur use. Voici un exemple qui présente les cinq types d'importation :

Exemple #1 importation et alias avec l'opérateur use

<?php
namespace foo;
use My\Full\Classname as Another;

// Ceci est la même chose que use My\Full\NSname as NSname
use My\Full\NSname;

// importation d'une classe globale
use ArrayObject;

// importation d'une function (PHP 5.6+)
use function My\Full\functionName;

// alias d'une fonction (PHP 5.6+)
use function My\Full\functionName as func;

// importation d'une constante (PHP 5.6+)
use const My\Full\CONSTANT;

$obj = new namespace\Another; // instantie un objet de la classe foo\Another
$obj = new Another; // instantie un objet de la classe My\Full\Classname
NSname\subns\func(); // appelle la fonction My\Full\NSname\subns\func
$a = new ArrayObject(array(1)); // instantie un objet de la classe ArrayObject
// Sans l'instruction "use ArrayObject" nous aurions instantié un objet de la classe foo\ArrayObject
func(); // Appel la fonction My\Full\functionName
echo CONSTANT; // affiche la valeur de My\Full\CONSTANT
?>
Notez que pour les noms avec chemin (les noms absolus contenant des séparateurs d'espaces, tels que Foo\Bar, par comparaison avec les noms globaux, tels que FooBar, qui n'en contiennent pas), l'anti-slash initial n'est pas nécessaire et n'est pas recommandé, car les noms importés doivent être absolus et ne sont pas résolus relativement à l'espace de noms courant.

De plus, PHP supporte des raccourcis pratiques, tels que les commandes use multiples.

Exemple #2 importation et alias multiples avec l'opérateur use

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // instantie un objet de la classe My\Full\Classname
NSname\subns\func(); // appelle la fonction My\Full\NSname\subns\func
?>

L'importation est réalisée à la compilation, ce qui fait que cela n'affecte pas les classes, fonctions et constantes dynamiques.

Exemple #3 Importation et noms d'espaces dynamiques

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // instantie un objet de la classe My\Full\Classname
$a = 'Another';
$obj = new $a;      // instantie un objet de la classe Another
?>

De plus, l'importation n'affecte que les noms sans qualification. Les noms absolus restent absolus, et inchangés par un import.

Exemple #4 Importation et noms d'espaces absolus

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // instantie un objet de la classe My\Full\Classname
$obj = new \Another; // instantie un objet de la classe Another
$obj = new Another\untruc; // instantie un objet de la classe My\Full\Classname\untruc
$obj = new \Another\untruc; // instantie un objet de la classe Another\untruc
?>

Règles de contextes pour l'importation

Le mot-clé use doit être déclaré dans le contexte le plus externe d'un fichier (le contexte global) ou alors dans les déclarations d'espace de noms. Ceci car l'importation est effectuée à la compilation et non durant l'éxecution, donc on ne peut empiler les contextes. L'exemple qui suit montre des utilisation incorrectes du mot-clé use:

Exemple #5 Règles d'importation incorrectes

<?php
namespace Languages;

class Greenlandic
{
    use Languages\Danish;
    ...
}
?>

Note:

Les règles d'importation sont basées sur les fichiers, ce qui signifie que les fichiers inclus n'hériteront PAS des règles d'importation du fichier parent.


Espace de noms global

(PHP 5 >= 5.3.0, PHP 7)

Sans aucune définition d'espace de noms, toutes les classes et les fonctions sont placées dans l'espace de noms global : comme en PHP avant que les espaces de noms aient été introduits. En préfixant un nom avec un anti-slash \, on peut demander l'utilisation de l'espace de noms global, même dans un contexte d'espace de noms spécifique.

Exemple #1 Spécification d'espace de noms global

<?php
namespace A\B\C;

/* Cette fonction est A\B\C\fopen */
function fopen() {
     /* ... */
     $f = \fopen(...); // appel à fopen global
     return $f;
}
?>


Utilisation des espaces de noms : retour à l'espace global

(PHP 5 >= 5.3.0, PHP 7)

Dans un espace de noms, lorsque PHP rencontre un nom sans qualification, que ce soit une classe, une fonction ou une constante, il le résout avec différentes priorités. Les noms de classes sont toujours résolus avec l'espace de noms courant. Pour accéder à des classes internes ou à des classes qui ne sont pas dans un espace de noms, il faut les représenter avec leur nom absolu, tel que :

Exemple #1 Accès aux classes globales depuis un espace de noms

<?php
namespace A\B\C;
class Exception extends \Exception {}

$a = new Exception('hi'); // $a est un objet de la classe A\B\C\Exception
$b = new \Exception('hi'); // $b est un objet de la classe Exception

$c = new ArrayObject; // erreur fatale, classe A\B\C\ArrayObject non trouvée
?>

Pour les fonctions et constantes, PHP va aller les chercher dans l'espace global s'il ne peut les trouver dans l'espace de noms courant.

Exemple #2 Accès aux fonctions et constantes globales dans un espace de noms

<?php
namespace A\B\C;

const E_ERROR = 45;
function strlen($str)
{
    return \strlen($str) - 1;
}

echo E_ERROR, "\n"; // affiche "45"
echo INI_ALL, "\n"; // affiche "7" : accès dans l'espace de noms global INI_ALL

echo strlen('hi'), "\n"; // affiche "1"
if (is_array('hi')) { // affiche "n'est pas un tableau"
    echo "est un tableau\n";
} else {
    echo "n'est pas un tableau\n";
}
?>


Règles de résolutions de noms

(PHP 5 >= 5.3.0, PHP 7)

Dans le cadre des règles de résolution, il y a plusieurs définitions importantes :

Définitions pour les espaces de noms
nom non qualifié

Ceci est un identifiant ne contenant pas un séparateur d'espace de noms. Par exemple : Foo

nom qualifié

Ceci est un identifiant contenant un séparateur d'espace de noms. Par exemple : Foo\Bar

Nom absolu

Ceci est un identifiant qui commence par un séparateur d'espace de noms. Par exemple : \Foo\Bar. L'espace de noms Foo est aussi un nom absolu.

Les noms sont résolus en suivant les règles suivantes :

  1. Les appels à des espaces de noms absolus pour des fonctions, classes ou constantes sont résolus à la compilation. Par exemple, new \A\B utilise la classe A\B.
  2. Tous les noms qui ne sont pas absolus sont traduits durant la compilation à l'aide des règles d'importation. Par exemple, si le nom A\B\C est importé sous l'alias C, un appel à C\D\e() est traduit en un appel à A\B\C\D\e().
  3. Dans un nom de domaine, tous les noms qualifiés qui ne sont pas traduits à l'aide des règles d'importation sont préfixés avec l'espace de noms courant. Par exemple, si un appel à C\D\e() est effectué dans l'espace de noms A\B, il est traduit en A\B\C\D\e().
  4. Les classes non qualifiées sont traduites durant la compilation en fonction des règles d'importations (le nom complet remplace les noms courts). Par exemple, si l'espace de noms A\B\C est importé sous le nom C, new C() est remplacé par new A\B\C().
  5. Dans un espace de noms, tel que A\B, les appels à des fonctions sans qualification sont résolus à la compilation. Voici comment un appel à foo() est résolu :
    1. Il recherche une fonction dans l'espace de noms courant : A\B\foo().
    2. Il essaie de trouver et appeler la fonction globale foo().
  6. Dans un espace de noms, e.g. A\B, un appel à une classe qualifiée ou non qualifiée (pas absolue) est résolu à l'exécution. Voici comment un appel à new C() ou à new D\E() est résolu. Pour new C() :
    1. Il recherche une classe dans l'espace de noms courant : A\B\C.
    2. Il appelle l'autoload pour A\B\C.
    Pour new D\E():
    1. Il recherche une classe dans l'espace de noms courant : A\B\D\E.
    2. Il appelle l'autoload pour A\B\D\E.
    Pour référencer une classe globale dans l'espace de noms global, son nom absolu new \C() doit être utilisé.

Exemple #1 Exemples de résolutions d'espaces de noms

<?php
namespace A;
use B\D, C\E as F;

// appels de fonctions

foo();      // tente d'appeler la fonction "foo" dans l'espace de noms "A"
            // puis appelle la fonction globale "foo"

\foo();     // appelle la fonction "foo" définie dans l'espace de noms global

my\foo();   // appelle la fonction "foo" définie dans l'espace de noms "A\my"

F();        // tente d'appeler la fonction "F" définie dans l'espace "A"
            // puis tente d'appeler la fonction globale "F"

// référence de classes references

new B();    // crée un objet de la classe "B" définie dans l'espace de noms  "A"
            // si non trouvé, il essaie l'autoload sur la classe "A\B"

new D();    // crée un objet de la classe "D" définie dans l'espace de noms  "B"
            // si non trouvé, il essaie l'autoload sur la classe "B\D"

new F();    // crée un objet de la classe "E" définie dans l'espace de noms  "C"
            // si non trouvé, il essaie l'autoload sur la classe "C\E"

new \B();   // crée un objet de la classe "B" définie dans l'espace de noms global
            // si non trouvé, il essaie l'autoload sur la classe "B"

new \D();   // crée un objet de la classe "D" définie dans l'espace de noms global
            // si non trouvé, il essaie l'autoload sur la classe "D"

new \F();   // crée un objet de la classe "F" définie dans l'espace de noms global
            // si non trouvé, il essaie l'autoload sur la classe "F"

// méthodes statiques et fonctions d'espace de noms d'un autre espace

B\foo();    // appelle la fonction "foo" de l'espace de noms "A\B"

B::foo();   // appelle la méthode "foo" de la classe "B" définie dans l'espace de noms  "A"
            // si la classe "A\B" n'est pas trouvée, il essaie l'autoload sur la classe "A\B"

D::foo();   // appelle la méthode "foo" de la classe "D" définie dans l'espace de noms  "B"
            // si la classe "B\D" n'est pas trouvée, il essaie l'autoload sur la classe "B\D"

\B\foo();   // appelle la fonction "foo" de l'espace de noms "B"

\B::foo();  // appelle la méthode "foo" de la classe "B" située dans l'espace de noms global
            // si la classe "B" n'est pas trouvée, il essaie l'autoload sur la classe "B"

// méthodes statiques et fonctions d'espace de noms de l'espace courant

A\B::foo();   // appelle la méthode "foo" de la classe "B" de l'espace de noms "A\A"
              // si la classe "A\A\B" n'est pas trouvée, il essaie l'autoload sur la classe "A\A\B"

\A\B::foo();  // appelle la méthode "foo" de la classe "B" de l'espace de noms "A"
              // si la classe "A\B" n'est pas trouvée, il essaie l'autoload sur la classe "A\B"
?>


Foire aux questions : ce que vous devez savoir des espaces de noms

(PHP 5 >= 5.3.0, PHP 7)

Cette FAQ est décomposée en deux sections : les questions courantes, et les points particuliers de l'implémentation, qui peuvent être utiles à la compréhension globale.

D'abord, les questions courantes.

  1. Si je n'utilise pas d'espaces de noms, est-ce que je dois m'en soucier ?
  2. Comment utiliser une classe globale ou interne depuis un espace de noms ?
  3. Comment utiliser les classes d'espaces de noms, les fonctions ou les constantes dans leur propre espace ?
  4. Comment est-ce qu'un nom comme \mon\nom ou \nom est résolu ?
  5. Comment est-ce qu'un nom tel que mon\nom est résolu ?
  6. Comment un nom de classe sans qualification, tel que nom, est résolu ?
  7. Comment une fonction sans qualification ou une constante de nom nom est résolue ?

Voici les points particuliers de l'implémentation, qui peuvent être utiles à la compréhension globale.

  1. Les noms importés ne doivent pas entrer en conflit avec les classes définies dans le même fichier
  2. Les espaces de noms imbriqués sont interdits
  3. Ni les fonctions, ni les constantes ne peuvent être importées avec la commande use
  4. Les noms d'espaces de noms dynamiques doivent protéger l'anti-slash
  5. Des constantes indéfinies référencées avec un anti-slash produisent une erreur fatale
  6. Impossible de remplacer des constantes spéciales comme NULL, TRUE, FALSE, ZEND_THREAD_SAFE ou ZEND_DEBUG_BUILD

Si je n'utilise pas d'espaces de noms, est-ce que je dois m'en soucier ?

Non, les espaces de noms n'affectent pas le code existant, d'une manière ou d'une autre, ni le code qui sera produit et qui n'utilise pas les espaces de noms. Vous pouvez écrire ceci si vous voulez :

Exemple #1 Accès à une classe globale de l'extérieur d'un espace de noms

<?php
$a = new \stdClass;
?>

C'est une fonctionnalité équivalente à :

Exemple #2 Accéder à des classes globales hors d'un espace de noms

<?php
$a = new stdClass;
?>

Comment utiliser une classe globale ou interne depuis un espace de noms ?

Exemple #3 Accès aux classes internes depuis un espace de noms

<?php
namespace foo;
$a = new \stdClass;

function test(\ArrayObject $typehintexample = null) {}

$a = \DirectoryIterator::CURRENT_AS_FILEINFO;

// extension d'une classe interne ou globale
class MyException extends \Exception {}
?>

Comment utiliser les classes d'espaces de noms, les fonctions ou les constantes dans leur propre espace ?

Exemple #4 Accès aux classes, fonctions et constantes internes dans un espace de noms

<?php
namespace foo;

class MaClasse {}

// utilisation d'une classe dans l'espace de noms courant, sous forme de type d'argument
function test(MaClasse $typehintexample = null) {}

// une autre manière d'utiliser une classe dans l'espace de noms courant
function test(\foo\MaClasse $typehintexample = null) {}

// extension d'une classe dans l'espace de noms courant
class Extended extends MaClasse {}

// accès à une fonction globale
$a = \globalfunc();

// accès à une constante globale
$b = \INI_ALL;
?>

Comment est-ce qu'un nom comme \mon\nom ou \nom est résolu ?

Les noms qui commencent par \ sont toujours résolus en ce à quoi ils ressemblent, ce qui fait que \mon\nom est en fait mon\nom, et \Exception est Exception.

Exemple #5 Noms d'espaces absolus

<?php
namespace foo;
$a = new \mon\nom(); // instantie la classe "mon\nom"
echo \strlen('hi'); // appelle la fonction "strlen"
$a = \INI_ALL; // $a reçoit la valeur de la constante "INI_ALL"
?>

Comment est-ce qu'un nom tel que mon\nom est résolu ?

Les noms qui contiennent un anti-slash mais ne commencent par par un anti-slash, comme mon\nom peuvent être résolus de deux manières différentes.

S'il y a eu une commande d'importation qui fait un alias de mon, alors l'alias importé est appliqué à la place de mon, et l'espace de noms devient mon\nom.

Sinon, l'espace de noms courant est ajouté avant le chemin de la classe mon\nom.

Exemple #6 Noms qualifiés

<?php
namespace foo;
use blah\blah as foo;

$a = new mon\nom(); // instantie la classe "foo\mon\nom"
foo\bar::name(); // appelle la méthode statique "name" dans la classe "blah\blah\bar"
mon\bar(); // appelle la fonction "foo\mon\bar"
$a = mon\BAR; // affecte à $a la valeur de la constante "foo\mon\BAR"
?>

Comment un nom de classe sans qualification, tel que nom, est résolu ?

Les noms de classes qui ne contiennent pas d'anti-slash comme nom peuvent être résolus de deux manières différentes.

S'il y a une instruction d'importation qui définit un alias pour nom, alors l'alias est appliqué.

Sinon, l'espace de noms courant est utilisé et préfixé à nom.

Exemple #7 Classes sans qualification

<?php
namespace foo;
use blah\blah as foo;

$a = new nom(); // instantie la classe "foo\nom"
foo::nom(); // appelle la méthode statique "nom" dans la classe "blah\blah"
?>

Comment une fonction sans qualification ou une constante de nom nom est résolue ?

Les fonctions et constantes qui n'ont pas d'anti-slash dans leur nom comme nom sont résolues de deux manières différentes :

D'abord, l'espace de noms courant est préfixé à nom.

Ensuite, si la constante ou la fonction nom n'existe pas dans l'espace de nom courant, la version globale de la constante ou la fonction nom est utilisée.

Exemple #8 Fonctions et constantes sans espace de noms

<?php
namespace foo;
use blah\blah as foo;

const FOO = 1;

function mon() {}
function foo() {}
function sort(&$a)
{
    \sort($a); // Appel de la fonction globale "sort"
    $a = array_flip($a);
    return $a;
}

mon(); // appelle "foo\mon"
$a = strlen('hi'); // appelle la fonction globale "strlen" car "foo\strlen" n'existe pas
$arr = array(1,3,2);
$b = sort($arr); // appelle la fonction "foo\sort"
$c = foo(); // appelle la fonction "foo\foo" : l'importation n'est pas appliquée

$a = FOO; // assigne à $a la valeur de la constante "foo\FOO" : l'importation n'est pas appliquée
$b = INI_ALL; // assigne à $b la valeur de la constante "INI_ALL"
?>

Les noms importés ne doivent pas entrer en conflit avec les classes définies dans le même fichier

La combinaison de scripts suivante est valide :

file1.php

<?php
namespace mes\trucs;
class MaClasse {}
?>

another.php

<?php
namespace another;
class untruc {}
?>

file2.php

<?php
namespace mes\trucs;
include 'file1.php';
include 'another.php';

use another\untruc as MaClasse;
$a = new MaClasse; // instantie la classe "untruc" de l'espace de noms another
?>

Il n'y a pas de conflit de noms, même si la classe MaClasse existe dans l'espace de noms mes\trucs, car la définition de MaClasse est dans un fichier séparé. Cependant, l'exemple suivant produit une erreur fatale à cause d'un conflit de noms, car MaClasse est définie dans le même fichier que l'instruction use.

<?php
namespace mes\trucs;
use another\untruc as MaClasse;
class MaClasse {} // erreur fatale: MaClasse est en conflit avec la commande d'importation
$a = new MaClasse;
?>

Les espaces de noms imbriqués sont interdits

PHP ne permet pas d'imbriquer des espaces de noms.

<?php
namespace mes\trucs {
    namespace nested {
        class foo {}
    }
}
?>
Cependant, il est facile de simuler des espaces de noms imbriqués, comme ceci :
<?php
namespace mes\trucs\nested {
    class foo {}
}
?>

Ni les fonctions, ni les constantes ne peuvent être importées avec la commande use

Les seuls éléments qui sont affectés par la commande use sont les espaces de noms et les classes. Afin de réduire le nom d'une constante ou d'une fonction, il faut l'importer dans un espace de noms.

<?php
namespace mine;
use ultra\long\ns\nom;

$a = nom\CONSTANT;
nom\func();
?>

Les noms d'espaces de noms dynamiques doivent protéger l'anti-slash

Il est très important de réaliser que, comme les anti-slash sont utilisés comme caractères de protection dans les chaînes, il faut toujours les doubler pour pouvoir les utiliser dans une chaîne. Sinon, il y a un risque d'utilisation inattendue :

Exemple #9 Dangers de l'utilisation des espaces de noms dans une chaîne

<?php
$a = "dangereux\nom"; // \n est une nouvelle ligne dans une chaîne!
$obj = new $a;

$a = 'pas\vraiment\dangereux'; // aucun problème ici
$obj = new $a;
?>
Dans une chaîne à double guillemets, la séquence de protection est beaucoup plus sécuritaire à utiliser, mais il est quand même recommandé de toujours protéger les anti-slashs dans une chaîne qui contient un espace de noms.

Des constantes indéfinies référencées avec un anti-slash produisent une erreur fatale

Toute constante indéfinie qui est sans qualificatif telle que FOO va produite une alerte : PHP supposait que FOO était la valeur de la constante. Toute constante, qualifiée partiellement ou totalement, qui contient un anti-slash, produite une erreur fatale si indéfinie.

Exemple #10 Constantes indéfinies

<?php
namespace bar;
$a = FOO; // produit une alerte : constante indéfinie "FOO", qui prend la valeur de "FOO";
$a = \FOO; // erreur fatale, constante d'espace de noms indéfinie FOO
$a = Bar\FOO; // erreur fatale, constante d'espace de noms indéfinie bar\Bar\FOO
$a = \Bar\FOO; // erreur fatale, constante d'espace de noms indéfinie Bar\FOO
?>

Impossible de remplacer des constantes spéciales comme NULL, TRUE, FALSE, ZEND_THREAD_SAFE ou ZEND_DEBUG_BUILD

Toute tentative dans un espace de noms de remplacer les constantes natives ou spéciales, engendre une erreur fatale.

Exemple #11 Constantes qui ne peuvent être redéfinies

<?php
namespace bar;
const NULL = 0; // erreur fatale;
const true = 'stupid'; // encore une erreur fatale;
// etc.
?>


Errors

Sommaire

  • Basics
  • Errors in PHP 7

Introduction

Sadly, no matter how careful we are when writing our code, errors are a fact of life. PHP will report errors, warnings and notices for many common coding and runtime problems, and knowing how to detect and handle these errors will make debugging much easier.


Basics

PHP reports errors in response to a number of internal error conditions. These may be used to signal a number of different conditions, and can be displayed and/or logged as required.

Every error that PHP generates includes a type. A list of these types is available, along with a short description of their behaviour and how they can be caused.

Handling errors with PHP

If no error handler is set, then PHP will handle any errors that occur according to its configuration. Which errors are reported and which are ignored is controlled by the error_reporting php.ini directive, or at runtime by calling error_reporting(). It is strongly recommended that the configuration directive be set, however, as some errors can occur before execution of your script begins.

In a development environment, you should always set error_reporting to E_ALL, as you need to be aware of and fix the issues raised by PHP. In production, you may wish to set this to a less verbose level such as E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED, but in many cases E_ALL is also appropriate, as it may provide early warning of potential issues.

What PHP does with these errors depends on two further php.ini directives. display_errors controls whether the error is shown as part of the script's output. This should always be disabled in a production environment, as it can include confidential information such as database passwords, but is often useful to enable in development, as it ensures immediate reporting of issues.

In addition to displaying errors, PHP can log errors when the log_errors directive is enabled. This will log any errors to the file or syslog defined by error_log. This can be extremely useful in a production environment, as you can log errors that occur and then generate reports based on those errors.

User error handlers

If PHP's default error handling is inadequate, you can also handle many types of error with your own custom error handler by installing it with set_error_handler(). While some error types cannot be handled this way, those that can be handled can then be handled in the way that your script sees fit: for example, this can be used to show a custom error page to the user and then report more directly than via a log, such as by sending an e-mail.


Errors in PHP 7

PHP 7 changes how most errors are reported by PHP. Instead of reporting errors through the traditional error reporting mechanism used by PHP 5, most errors are now reported by throwing Error exceptions.

As with normal exceptions, these Error exceptions will bubble up until they reach the first matching catch block. If there are no matching blocks, then any default exception handler installed with set_exception_handler() will be called, and if there is no default exception handler, then the exception will be converted to a fatal error and will be handled like a traditional error.

As the Error hierarchy does not inherit from Exception, code that uses catch (Exception $e) { ... } blocks to handle uncaught exceptions in PHP 5 will find that these Errors are not caught by these blocks. Either a catch (Error $e) { ... } block or a set_exception_handler() handler is required.

Error hierarchy

  • Throwable
    • Error
      • ArithmeticError
        • DivisionByZeroError
      • AssertionError
      • ParseError
      • TypeError
    • Exception
      • ...


Les exceptions

Sommaire

  • Exceptions étendues

PHP a une gestion des exceptions similaire à ce qu'offrent les autres langages de programmation. Une exception peut être lancée ("throw") et attrapée ("catch") dans PHP. Le code devra être entouré d'un bloc try pour faciliter la saisie d'une exception potentielle. Chaque try doit avoir au moins un bloc catch ou finally correspondant.

L'objet lancé doit être une instance de la classe Exception ou une sous-classe de la classe Exception. Tenter de lancer un objet qui ne correspond pas à cela résultera en une erreur fatale émise par PHP.

catch

Plusieurs blocs catch peuvent être utilisés pour attraper différentes classes d'exceptions. L'exécution normale (lorsqu'aucune exception n'est lancée dans le bloc try) continue après le dernier bloc catch défini dans la séquence. Les exceptions peuvent être lancées (ou relancées) dans un bloc catch.

Lorsqu'une exception est lancée, le code suivant le traitement ne sera pas exécuté et PHP tentera de trouver le premier bloc catch correspondant. Si une exception n'est pas attrapée, une erreur fatale issue de PHP sera envoyée avec un message "Uncaught Exception ..." indiquant que l'exception n'a pu être attrapée à moins qu'un gestionnaire d'exceptions ne soit défini avec la fonction set_exception_handler().

finally

En PHP 5.5 et suivant, un bloc finally peut aussi être spécifié après des blocs catch. Le code à l'intérieur du bloc finally sera toujours exécuté après les blocs try et catch, indépendament du fait qu'une exception ai été lancée, avant de continuer l'exécution normale.

Notes

Note:

Les fonctions internes de PHP utilisent principalement l' Error reporting, seules les extensions orientées objet utilisent les exceptions. Quoiqu'il en soit, des erreurs peuvent facilement être traduites en exceptions avec ErrorException.

Astuce

La bibliothèque standard PHP (SPL) fournit un bon nombre d'exceptions additionnelles.

Exemples

Exemple #3 Lancer une exception

<?php
function inverse($x) {
    if (!$x) {
        throw new Exception('Division par zéro.');
    }
    return 1/$x;
}

try {
    echo inverse(5) . "\n";
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Exception reçue : ',  $e->getMessage(), "\n";
}

// Continue execution
echo "Bonjour le monde !\n";
?>

L'exemple ci-dessus va afficher :

0.2
Exception reçue : Division par zéro.
Bonjour le monde !

Exemple #4 Gestion de l'exception avec un bloc finally

<?php
function inverse($x) {
    if (!$x) {
        throw new Exception('Division par zéro.');
    }
    return 1/$x;
}

try {
    echo inverse(5) . "\n";
} catch (Exception $e) {
    echo 'Exception reçue : ',  $e->getMessage(), "\n";
} finally {
    echo "Première fin.\n";
}

try {
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Exception reçue : ',  $e->getMessage(), "\n";
} finally {
    echo "Seconde fin.\n";
}

// On continue l'exécution
echo "Bonjour le monde !\n";
?>

L'exemple ci-dessus va afficher :

0.2
Première fin.
Exception reçue : Division par zéro.
Seconde fin.
Bonjour le monde !

Exemple #5 Héritage d'une exception

<?php

class MyException extends Exception { }

class Test {
    public function testing() {
        try {
            try {
                throw new MyException('foo!');
            } catch (MyException $e) {
                // on la relance
                throw $e;
            }
        } catch (Exception $e) {
            var_dump($e->getMessage());
        }
    }
}

$foo = new Test;
$foo->testing();

?>

L'exemple ci-dessus va afficher :

string(4) "foo!"


Exceptions étendues

Une classe d'exception écrite par l'utilisateur peut être définie en étendant la classe Exception interne. Les membres et les propriétés suivants montrent ce qui est accessible dans la classe enfant qui est dérivée de la classe Exception interne.

Exemple #1 La classe Exception interne

<?php
class Exception
{
  protected $message = 'Exception inconnue'; // message de l'exception
  private   $string;                        // __toString cache
  protected $code = 0;                      // code de l'exception défini par l'utilisateur
  protected $file;                          // nom du fichier source de l'exception
  protected $line;                          // ligne de la source de l'exception
  private   $trace;                         // backtrace
  private   $previous;                      // exception précédente (depuis PHP 5.3)

  public function __construct($message = null, $code = 0, Exception $previous = null);

  final private function __clone();         // Inhibe le clonage des exceptions.

  final public function getMessage();              // message de l'exception
  final public function getCode();                 // code de l'exception
  final public function getFile();                 // nom du fichier source
  final public function getLine();                 // ligne du fichier source
  final public function getTrace();                // un tableau de backtrace()
  final public function getPrevious();             // exception précédente (depuis PHP 5.3)
  final public function getTraceAsString();        // chaîne formatée de trace

  // Remplacable
  public function __toString();                    // chaîne formatée pour l'affichage
}
?>

Si une classe étend la classe Exception interne et redéfinit le constructeur, il est vivement recommandé qu'elle appelle aussi parent::__construct() pour s'assurer que toutes les données disponibles ont été proprement assignées. La méthode __toString() peut être réécrite pour fournir un affichage personnalisé lorsque l'objet est présenté comme une chaîne.

Note:

Les exceptions ne peuvent pas être clônées. Si vous tentez de clôner une exception, une erreur fatale (E_ERROR) sera émise.

Exemple #2 Étendre la classe Exception (PHP 5.3.0+)

<?php
/**
* Définition d'une classe d'exception personnalisée
*/
class MyException extends Exception
{
  // Redéfinissez l'exception ainsi le message n'est pas facultatif
  public function __construct($message, $code = 0, Exception $previous = null) {

    // traitement personnalisé que vous voulez réaliser ...

    // assurez-vous que tout a été assigné proprement
    parent::__construct($message, $code, $previous);
  }

  // chaîne personnalisée représentant l'objet
  public function __toString() {
    return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
  }

  public function customFunction() {
    echo "Une fonction personnalisée pour ce type d'exception\n";
  }
}

/**
* Création d'une classe pour tester l'exception
*/
class TestException
{
  public $var;

  const THROW_NONE    = 0;
  const THROW_CUSTOM  = 1;
  const THROW_DEFAULT = 2;

  function __construct($avalue = self::THROW_NONE) {

    switch ($avalue) {
      case self::THROW_CUSTOM:
        // lance une exception personnalisée
        throw new MyException('1 est un paramètre invalide', 5);
        break;

      case self::THROW_DEFAULT:
        // lance l'exception par défaut.
        throw new Exception('2 n\'est pas autorisé en tant que paramètre', 6);

        break;

      default:
        // Aucune exception, l'objet sera créé.
        $this->var = $avalue;
        break;
    }
  }
}

// Exemple 1
try {
  $o = new TestException(TestException::THROW_CUSTOM);
} catch (MyException $e) {            // Devrait être attrapée
  echo "Capture mon exception\n", $e;
  $e->customFunction();
} catch (Exception $e) {              // Sauté
  echo "Capture l'exception par défaut\n", $e;
}

// Continue l'exécution
var_dump($o); // Null
echo "\n\n";

//Exemple 2
try {
  $o = new TestException(TestException::THROW_DEFAULT);
} catch (MyException $e) {            // Ne correspond pas à ce type
  echo "Capture mon exception\n", $e;
  $e->customFunction();
} catch (Exception $e) {              // Devrait être attrapée
  echo "Capture l'exception par défaut\n", $e;
}

// Continue l'exécution
var_dump($o); // Null
echo "\n\n";

// Exemple 3
try {
  $o = new TestException(TestException::THROW_CUSTOM);
} catch (Exception $e) {              // Devrait être attrapée
  echo "Capture l'exception par défaut\n", $e;
}

// Continue l'exécution
var_dump($o); // Null
echo "\n\n";

// Exemple 4
try {
  $o = new TestException();
} catch (Exception $e) {              // sauté, aucune exception
  echo "Capture l'exception par défaut\n", $e;
}

// Continue l'exécution
var_dump($o); // TestException
echo "\n\n";
?>

Note:

Dans PHP, avant PHP 5.3.0 les exceptions ne pouvaient être nichées. Le code suivant montre un exemple d'extension de la classe d'Exception avant PHP 5.3.0.

<?php
/**
 * Définition d'une classe d'exception personnalisée
 */
class MyException extends Exception
{
    // Redéfinition du constructeur pour rendre le message obligatoire
    public function __construct($message, $code = 0) {
        // du code ici

        // Appel du parent
        parent::__construct($message, $code);
    }

    // Représentation de l'objet sous forme de chaine personnalisée
    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }

    public function customFunction() {
        echo "Une méthode personnalisée pour cette exception\n";
    }
}
?>


Generators

Sommaire

  • Résumé sur les générateurs
  • Syntaxe d'un Générateur
  • Comparaison des générateurs avec les objets Iterator


Résumé sur les générateurs

(PHP 5 >= 5.5.0, PHP 7)

Les générateurs fournissent une façon simple de mettre en place des itérateurs sans le coût ni la complexité du développement d'une classe qui implémente l'interface Iterator.

Un générateur vous permet d'écrire du code qui utilise foreach pour parcourir un jeu de données, sans avoir à construire un tableau en mémoire pouvant conduire à dépasser la limite de la mémoire ou nécessiter un temps important pour sa génération. Au lieu de cela, vous pouvez écrire une fonction générateur, qui est identique à une fonction normale, mis à part le fait qu'au lieu de retourner une seule fois, un générateur peut utiliser yield autant de fois que nécessaire, afin de fournir les valeurs à parcourir.

Un exemple simple de ce mécanisme est la ré-implémentation de la fonction range() sous la forme d'un générateur. La fonction standard range() doit générer un tableau contenant chaque valeur, et le retourner, ce qui peut conduire à des tableaux de taille importante : par exemple, l'appel du code range(0, 1000000) peut consommer nettement plus de 100 Mo de mémoire.

Comme alternative, nous pouvons implémenter un générateur xrange(), qui n'aura en besoin mémoire que la seule création d'un objet Iterator, et devra garder trace en interne du statut courant du générateur, ce qui revient à une consommation mémoire inférieure à 1 Ko.

Exemple #1 Implémentation de la fonction range() sous la forme d'un générateur

<?php
function xrange($start, $limit, $step = 1) {
    if ($start < $limit) {
        if ($step <= 0) {
            throw new LogicException('Step must be +ve');
        }

        for ($i = $start; $i <= $limit; $i += $step) {
            yield $i;
        }
    } else {
        if ($step >= 0) {
            throw new LogicException('Step must be -ve');
        }

        for ($i = $start; $i >= $limit; $i += $step) {
            yield $i;
        }
    }
}

/*
 * Notez que les fonctions range() et xrange() produisent le
 * même affichage, ci-dessous.
 */

echo 'Nombres impairs à un seul chiffre depuis range() :  ';
foreach (range(1, 9, 2) as $number) {
    echo "$number ";
}
echo "\n";

echo 'Nombres impairs à un seul chiffre depuis xrange() : ';
foreach (xrange(1, 9, 2) as $number) {
    echo "$number ";
}
?>

L'exemple ci-dessus va afficher :

Nombres impairs à un seul chiffre depuis range() :  1 3 5 7 9
Nombres impairs à un seul chiffre depuis xrange() : 1 3 5 7 9

Les objets Generator

Lorsqu'une fonction générateur est appelée pour la première fois, un objet de la classe interne Generator est retournée. Cette objet implémente l'interface Iterator de la même façon qu'un objet itérateur, qui avance uniquement, le ferait, et fournit les méthodes qui peuvent être appelées pour manipuler le statut du générateur, y compris l'envoi des valeurs et leurs retours.


Syntaxe d'un Générateur

Une fonction générateur ressemble à une fonction normale, sauf qu'au lieu de retourner une valeur, un générateur yield retourne autant de valeurs que nécessaire.

Lorsqu'une fonction générateur est appelée, elle retourne un objet que l'on peut parcourir. Lorsque vous parcourez cet objet (par exemple, via une boucle foreach), PHP appelle la fonction générateur à chaque fois qu'il a besoin d'une valeur, puis sauvegarde le statut du générateur lorsqu'il génère une valeur, pour qu'il puisse être repris lorsque la prochaine valeur sera requise.

Lorsqu'il n'y a plus de valeur à fournir, la fonction générateur peut simplement sortir, et le code appelant continuera comme si un tableau n'avait plus de valeur.

Note:

Un générateur ne peut pas retourner de valeur : si vous tentez de retourner une valeur depuis un générateur, une erreur de compilation sera émise. Une structure return vide est une syntaxe valide dans un générateur et fera terminer le générateur.

Le mot-clé yield

Le mot clé yield est le cœur d'une fonction générateur. Dans sa forme la plus simple, une instruction yield ressemble à une instruction return, excepté qu'au lieu de stopper l'exécution de la fonction et de retourner, yield fournit une valeur au code parcourant le générateur, et met en pause l'exécution de la fonction générateur.

Exemple #1 Un exemple simple de production de valeurs

<?php
function gen_one_to_three() {
    for ($i = 1; $i <= 3; $i++) {
        // Notez que $i est préservé entre chaque production de valeur.
        yield $i;
    }
}

$generator = gen_one_to_three();
foreach ($generator as $value) {
    echo "$value\n";
}
?>

L'exemple ci-dessus va afficher :

1
2
3

Note:

En interne, des clés séquentielles entières seront associées avec les valeurs produites, de la même manière que pour un tableau non-associatif.

Attention

Si vous utilisez yield dans un contexte d'expression (par exemple, à droite d'un assignement), vous devez entourer l'instruction yield avec des parenthèses en PHP 5. Par exemple, ceci est valide :

$data = (yield $value);

Mais ceci ne l'est pas, et entrainera une erreur d'analyse en PHP 5 :

$data = yield $value;

Les restrictions sur les parenthèses ne sont pas appliquées en PHP 7.

Cette syntaxe peut être utilisée en conjonction de la méthode Generator::send() sur les objets Générateur.

Fourniture de valeurs avec des clés

PHP supporte également les tableaux associatifs, et les générateurs ne sont pas différents. En plus de fournir des valeurs simples, comme nous l'avons vu plus haut, vous pouvez aussi, en même temps, fournir une clé.

La syntaxe permettant de produire une paire clé/valeur est similaire à celle utilisée pour définir un tableau associatif ; comme ceci :

Exemple #2 Production d'une paire clé/valeur

<?php
/*
 * L'entrée est constituée de champs séparés par un point-virgule,
 * et le premier champ est un ID à utiliser comme clé.
 */

$input = <<<'EOF'
1;PHP;Likes dollar signs
2;Python;Likes whitespace
3;Ruby;Likes blocks
EOF;

function input_parser($input) {
    foreach (explode("\n", $input) as $line) {
        $fields = explode(';', $line);
        $id = array_shift($fields);

        yield $id => $fields;
    }
}

foreach (input_parser($input) as $id => $fields) {
    echo "$id:\n";
    echo "    $fields[0]\n";
    echo "    $fields[1]\n";
}
?>

L'exemple ci-dessus va afficher :

1:
    PHP
    Likes dollar signs
2:
    Python
    Likes whitespace
3:
    Ruby
    Likes blocks
Attention

Comme dans le cas de production de valeurs simples, la fourniture d'une paire clé/valeur dans un contexte d'expression requiert que la structure yield soit entre parenthèses :

$data = (yield $key => $value);

Production de valeurs nulles

Yield peut être appelé sans argument pour fournir une valeur nulle avec une clé automatique.

Exemple #3 Production de valeurs nulles

<?php
function gen_three_nulls() {
    foreach (range(1, 3) as $i) {
        yield;
    }
}

var_dump(iterator_to_array(gen_three_nulls()));
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  NULL
  [1]=>
  NULL
  [2]=>
  NULL
}

Production de valeurs par référence

Les fonctions générateur peuvent produire des valeurs par référence. Ceci se fait de la même façon que le retour par référence depuis des fonctions : en ajoutant un ET commercial (&) au nom de la fonction.

Exemple #4 Production de valeurs par référence

<?php
function &gen_reference() {
    $value = 3;

    while ($value > 0) {
        yield $value;
    }
}

/*
 * Notez qu'il est possible de changer $number dans la boucle,
 * et, du fait que le générateur fournit des références, $value
 * dans gen_reference() change aussi.
 */
foreach (gen_reference() as &$number) {
    echo (--$number).'... ';
}
?>

L'exemple ci-dessus va afficher :

2... 1... 0...

Délégation du générateur via yield from

En PHP 7, la délégation du générateur vous permet d'obtenir les valeurs d'un autre générateur, d'un objet Traversable, ou d'un array en utilisant le mot clé yield from. Le générateur externe va ainsi obtenir toutes les valeurs du générateur interne, de l'objet, ou du tableau tant qu'il n'est pas invalide, après quoi, l'exécution va continuer dans le générateur externe.

Si un générateur est utilisé avec l'expression yield from, l'expression yield from va aussi retourner toute valeur retournée par le générateur interne.

Exemple #5 Utilisation basique de yield from

<?php
function count_to_ten() {
    yield 1;
    yield 2;
    yield from [3, 4];
    yield from new ArrayIterator([5, 6]);
    yield from seven_eight();
    yield 9;
    yield 10;
}

function seven_eight() {
    yield 7;
    yield from eight();
}

function eight() {
    yield 8;
}

foreach (count_to_ten() as $num) {
    echo "$num ";
}
?>

L'exemple ci-dessus va afficher :

1 2 3 4 5 6 7 8 9 10

Exemple #6 yield from et les valeurs retournées

<?php
function count_to_ten() {
    yield 1;
    yield 2;
    yield from [3, 4];
    yield from new ArrayIterator([5, 6]);
    yield from seven_eight();
    return yield from nine_ten();
}

function seven_eight() {
    yield 7;
    yield from eight();
}

function eight() {
    yield 8;
}

function nine_ten() {
    yield 9;
    return 10;
}

$gen = count_to_ten();
foreach ($gen as $num) {
    echo "$num ";
}
echo $gen->getReturn();
?>

L'exemple ci-dessus va afficher :

1 2 3 4 5 6 7 8 9 10


Comparaison des générateurs avec les objets Iterator

Le principal avantage des générateurs est leur simplicité. Moins de code doit être écrit que lorsqu'il s'agit d'implémenter une classe Iterator, et il est généralement plus lisible. Par exemple, la fonction et la classe suivante sont équivalentes :

<?php
function getLinesFromFile($fileName) {
    if (!$fileHandle = fopen($fileName, 'r')) {
        return;
    }

    while (false !== $line = fgets($fileHandle)) {
        yield $line;
    }

    fclose($fileHandle);
}

// versus...

class LineIterator implements Iterator {
    protected $fileHandle;

    protected $line;
    protected $i;

    public function __construct($fileName) {
        if (!$this->fileHandle = fopen($fileName, 'r')) {
            throw new RuntimeException('Impossible d\'ouvrir le fichier : "' . $fileName . '"');
        }
    }

    public function rewind() {
        fseek($this->fileHandle, 0);
        $this->line = fgets($this->fileHandle);
        $this->i = 0;
    }

    public function valid() {
        return false !== $this->line;
    }

    public function current() {
        return $this->line;
    }

    public function key() {
        return $this->i;
    }

    public function next() {
        if (false !== $this->line) {
            $this->line = fgets($this->fileHandle);
            $this->i++;
        }
    }

    public function __destruct() {
        fclose($this->fileHandle);
    }
}
?>

Cependant, cette flexibilité a un coût : les générateurs sont des itérateurs n'allant que vers l'avant, et ils ne peuvent pas être ré-initialisés une fois leur parcours commencé. Cela signifie également que le même générateur ne peut pas être utilisé à plusieurs reprises : le générateur devra être soit reconstruit en appelant une nouvelle fois la fonction générateur, soit clôné via le mot clé clone.


Les références

Sommaire

  • Qu'est ce qu'une référence ?
  • Que font les références ?
  • Ce que les références ne sont pas
  • Passage par référence
  • Retourner des références
  • Détruire une référence
  • Repérer une référence


Qu'est ce qu'une référence ?

En PHP, les références sont un moyen d'accéder au contenu d'une même variable en utilisant plusieurs noms. Les références ne sont pas comme des pointeurs en C : vous ne pouvez pas effectuer d'opération arithmétique de pointeurs sur celles-ci, ce ne sont pas des adresses mémoires, etc. Vous pouvez consulter Ce que les références ne sont pas pour plus d'informations. En fait, les références sont des alias dans la table des symboles. Notez qu'en PHP, le nom d'une variable et son contenu sont deux notions distinctes, ce qui fait que l'on peut donner plusieurs noms au même contenu. On peut faire l'analogie avec les fichiers sous Unix, et leur noms : les noms des variables sont les entrées dans un répertoire, tandis que le contenu de la variable est le fichier en lui-même. Les références en PHP peuvent alors être considérées comme semblables aux liens sous Unix.


Que font les références ?

Il existe trois principales utilisations des références : l'assignation par référence, le passage par référence, et le retour par référence. Cette section va introduire ces opérations, avec des liens vers plus de précisions.

Assignation par référence

Dans ce premier cas, les références PHP permettent de faire en sorte que deux variables référencent le même contenu. Par exemple :

<?php
$a =& $b;
?>
Cette écriture indique que $a et $b pointent sur le même contenu.

Note:

$a et $b sont complètement égales ici : ce n'est pas $a qui pointe sur $b, ou vice-versa. Ce sont bien $a et $b qui pointent sur le même contenu.

Note:

Si vous assignez, passez, ou retournez, une variable indéfinie par référence, elle sera créée automatiquement.

Exemple #1 Utilisation des références avec des variables indéfinies

<?php
function foo(&$var) { }

foo($a); // $a est "créée" et assignée à NULL

$b = array();
foo($b['b']);
var_dump(array_key_exists('b', $b)); // bool(true)

$c = new StdClass;
foo($c->d);
var_dump(property_exists($c, 'd')); // bool(true)
?>

La même syntaxe peut être utilisée avec les fonctions qui retournent des références, et avec l'opérateur new (depuis PHP 4.0.4 et avant PHP 5.0.0) :

<?php
$foo =& find_var($bar);
?>
Depuis PHP 5, new retourne automatiquement une référence, donc l'utilisation de =& dans ce contexte est obsolète, et produit un message de niveau E_DEPRECATED à partir de PHP 5.3, et un message E_STRICT avec les versions antérieures. (Techniquement, la difference est qu'en PHP 5, les objets, comme les ressources en fait, sont des pointeurs vers la donnée réelle. La notion de "référence" ici est donc un peu différente de celle utilisée précédemment (alias). Pour plus d'informations, voyez Les objects et les références.)

Avertissement

Si vous assignez une référence à une variable déclarée comme global dans une fonction, la référence ne sera visible qu'au sein de la fonction. Vous pouvez éviter cela en utilisant le tableau $GLOBALS.

Exemple #2 Référencer des variables globales depuis des fonctions

<?php
$var1 = "Variable Exemple";
$var2 = "";

function global_references($use_globals)
{
    global $var1, $var2;
    if (!$use_globals) {
        $var2 =& $var1; // visible uniquement dans la fonction
    } else {
        $GLOBALS["var2"] =& $var1; // visible également dans le contexte global
    }
}

global_references(false);
echo "var2 est défini à '$var2'\n"; // var2 est défini à ''
global_references(true);
echo "var2 est défini à '$var2'\n"; // var2 est défini à 'Variable Exemple'
?>
Voyez global $var; comme un raccourci pour $var =& $GLOBALS['var'];. De ce fait, assigner une autre référence à $var modifie uniquement la référence locale de la variable.

Note:

Si vous assignez une valeur à une variable qui a des références dans une structure foreach, les références seront également modifiées.

Exemple #3 Références et structure foreach

<?php
$ref = 0;
$row =& $ref;
foreach (array(1, 2, 3) as $row) {
    // faites quelque chose
}
echo $ref; // 3 - le dernier élément du tableau itéré
?>

Même si ce n'est pas strictement une assignation par référence, les expressions créees avec la structure de langage array() peuvent aussi se comporter comme telles, en préfixant par & l'élément du tableau. Voici un exemple :

<?php
$a = 1;
$b = array(2, 3);
$arr = array(&$a, &$b[0], &$b[1]);
$arr[0]++; $arr[1]++; $arr[2]++;
/* $a == 2, $b == array(3, 4); */
?>

Notez par contre que les références à l'intérieur des tableaux peuvent s'avérer dangereuses. Utiliser une assignation normale (pas par référence) avec une référence à droite de l'opérateur ne transforme pas la partie gauche de l'assignation en référence, mais les références à l'intérieur des tableaux sont préservées. Ceci s'applique également aux appels de fonctions avec un tableau passé par valeur. Exemple :

<?php
/* Assignation de variables scalaires */
$a = 1;
$b =& $a;
$c = $b;
$c = 7; // $c n'est pas une référence ; pas de changement à $a ou $b

/* Assignation de variables de type tableau */
$arr = array(1);
$a =& $arr[0]; // $a et $arr[0] sont des références vers la même valeur
$arr2 = $arr; // PAS une assignation par référence!
$arr2[0]++;
/* $a == 2, $arr == array(2) */
/* Les contenus de $arr sont changés même si ce n'était pas une référence ! */
?>
Autrement dit, d'un point de vue des références, le comportement des tableaux est défini élément par élément ; le comportement de chaque élément est indépendant du statut de référence du tableau qui les contient.

Passage par référence

Le deuxième intérêt des références est de permettre de passer des variables par référence. On réalise ceci en faisant référencer le même contenu par une variable locale à un fonction et par une variable du contexte appelant. Par exemple :

<?php
function foo(&$var) {
  $var++;
}
$a=5;
foo($a);
?>
Après l'exécution de cette portion de code, $a vaut 6. Cela provient du fait que, dans la fonction foo, la variable $var pointe sur le même contenu que $a. Pour plus d'informations à ce sujet, vous pouvez consulter la section passage par référence.

Retour par référence

Le troisième intérêt des références est de permettre le retour de valeurs par référence.


Ce que les références ne sont pas

Comme nous l'avons vu précédemment, les références ne sont pas des pointeurs. Cela signifie que le script suivant ne fera pas ce à quoi on peut s'attendre :

<?php
function foo(&$var) {
  $var =& $GLOBALS["baz"];
}
foo($bar);
?>

Ici, la variable $var dans la fonction foo sera liée à $bar dans l'appelant, mais elle sera ensuite reliée à $GLOBALS["baz"]. Il n'est pas possible de lier $bar à quelque chose d'autre en utilisant le mécanisme de références, car $bar n'est pas accessible dans la fonction foo (certes, elle est représentée par $var, mais $var ne fait référence qu'à la valeur, et n'a pas de liaison dans la table de symboles de l'appelant). Vous pouvez utiliser le retour par référence pour référencer des variables sélectionnées par la fonction.


Passage par référence

Vous pouvez passer une variable par référence à une fonction, de manière à ce que celle-ci puisse la modifier. La syntaxe est la suivante :

<?php
function foo(&$var) {
  $var++;
}
$a=5;
foo ($a);
// $a vaut 6 maintenant
?>

Note: Il n'y a pas de signe de référence dans l'appel de la fonction, uniquement sur sa définition. La définition de la fonction en elle-même est suffisante pour passer correctement des arguments par référence. A partir de PHP 5.3.0, vous devriez recevoir une alerte disant que "Call-time pass-by-reference" est obsolète, lorsque vous utilisez un & dans foo(&$a);. Et à partir de PHP 5.4.0, call-time pass-by-reference a été supprimé, l'utiliser lèvera une erreur fatale.

Les données suivantes peuvent être passées par référence :

  • Une variable, comme dans foo($a)
  • Un nouvel objet ; par exemple foo(new foobar())

  • Une référence retournée par une fonction :

    <?php
    function foo(&$var)
    {
            $var++;
    }
    function &    bar()
    {
         $a = 5;
     return     $a;
    }
    foo(bar());
    ?>
    Pour plus d'informations, voir les détails dans retour par référence.

Toutes les autres expressions ne doivent pas être passées par référence, car le résultat sera indéfini. Par exemple, les passages par référence suivants sont invalides :

<?php
function foo(&$var)
{
    $var++;
}
function bar() // Notez l'absence de &
{
   $a = 5;
   return $a;
}
foo(bar());    // Produit une erreur fatale depuis PHP 5.0.5, une remarque
               //  strict standard depuis PHP 5.11 et juste une remarque depuis
               // PHP 7.0.0

foo($a = 5);    // Expression, pas une variable
foo(5);         // Produit une erreur fatale
?>
Ceci s'applique à partir de PHP 4.0.4.


Retourner des références

Retourner des références est utile lorsque vous voulez utiliser une fonction pour déterminer à quelle variable une référence devrait être liée. N'utilisez pas le retour par référence pour améliorer les performances, le moteur est suffisamment robuste pour optimiser cela en interne. Retournez des références uniquement lorsque vous avez de bonnes raisons techniques de le faire ! Pour retourner des références, utilisez cette syntaxe :

<?php
class foo {
    public $value = 42;

    public function &getValue() {
        return $this->value;
    }
}

$obj = new foo;
$myValue = &$obj->getValue(); // $myValue est une référence de $obj->value, qui vaut 42.
$obj->value = 2;
echo $myValue;                // affiche la nouvelle valeur de $obj->value, i.e. 2.
?>
Dans cet exemple, on affecte une valeur à la propriété de l'objet retourné par la fonction getValue, et non à sa copie, comme ce serait le cas si nous n'avions pas utilisé la syntaxe de référence.

Note: Contrairement au passage de paramètre, ici, vous devez utiliser & aux deux endroits, à la fois pour indiquer que vous retournez par référence (pas par copie), et pour indiquer que vous assignez aussi par référence (pas par copie non plus) pour la variable $myValue.

Note: Si vous tentez de retourner une référence depuis une fonction avec la syntaxe : return ($this->value);, cela ne fonctionnera pas comme vous l'attendez, et retournera le résultat de l'expression, et pas de la variable, par référence. Vous ne pouvez retourner que des variables par référence depuis une fonction - et rien d'autre. Depuis PHP 4.4.0 dans la branche PHP 4, et PHP 5.1.0 dans la branche PHP 5, une alerte E_NOTICE est envoyée si le code tente de retourner une expression dynamique ou un résultat de l'opérateur new.

Pour utiliser la référence retournée, vous devez utiliser l'assignement par référence :

<?php
function &collector() {
  static $collection = array();
  return $collection;
}
$collection = &collector();
$collection[] = 'foo';
?>
Pour passer la référence retournée à une autre fonction attendant une référence, vous pouvez utiliser la syntaxe suivante :
<?php
function &collector() {
  static $collection = array();
  return $collection;
}
array_push(collector(), 'foo');
?>

Note: Notez que array_push(&collector(), 'foo'); ne fonctionnera pas, et résultera en une erreur fatale.


Détruire une référence

Lorsque vous détruisez une référence, vous ne faites que casser le lien entre le nom de la variable et son contenu. Cela ne signifie pas que le contenu de la variable est détruit. Par exemple :

<?php
$a = 1;
$b =& $a;
unset($a);
?>
Cet exemple ne détruira pas $b, mais juste $a.

Encore une fois, on peut comparer cette action avec l'appel unlink d'Unix.


Repérer une référence

De nombreuses syntaxes de PHP sont implémentées via le mécanisme de référence, et tout ce qui a été vu concernant les liaisons entre variables s'applique à ces syntaxes. Certaines constructions, comme le passage d'arguments et le retour par référence, ont été mentionnées plus haut. D'autres constructions qui utilisent les références sont les suivantes :

Références globales

Lorsque vous déclarez une variable en tant que global $var, vous créez en fait une référence sur une variable globale. Autrement dit, cela revient au même que :

<?php
$var =& $GLOBALS["var"];
?>

Cela signifie aussi que détruire la variable $var n'entrainera pas la destruction de la variable globale.

$this

Dans une méthode d'objet, $this est toujours une référence sur l'objet courant.


Variables prédéfinies

PHP fournit un très grand nombre de variables prédéfinies accessibles à tous vos scripts. Ces variables représentent à peu près tout, allant des variables externes aux variables d'environnement intégrées à PHP, en passant par les derniers messages d'erreur ou les en-têtes récupérés.

Voir la FAQ intitulée "Comment la directive register_globals affecte-t-elle mes scripts ?"

Sommaire

  • Les Superglobales — Les Superglobales sont des variables internes qui sont toujours disponibles, quel que soit le contexte
  • $GLOBALS — Référence toutes les variables disponibles dans un contexte global
  • $_SERVER — Variables de serveur et d'exécution
  • $_GET — Variables HTTP GET
  • $_POST — Variables HTTP POST
  • $_FILES — Variable de téléchargement de fichier via HTTP
  • $_REQUEST — Variables de requête HTTP
  • $_SESSION — Variables de session
  • $_ENV — Variables d'environnement
  • $_COOKIE — Cookies HTTP
  • $php_errormsg — Le dernier message d'erreur
  • $HTTP_RAW_POST_DATA — Données POST brutes
  • $http_response_header — En-têtes de réponse HTTP
  • $argc — Le nombre d'arguments passés au script
  • $argv — Tableau d'arguments passés au script


Les Superglobales sont des variables internes qui sont toujours disponibles, quel que soit le contexte

  • « Variables prédéfinies
  • $GLOBALS »
  • PHP Manual
  • Variables prédéfinies
  • Les Superglobales sont des variables internes qui sont toujours disponibles, quel que soit le contexte

Les Superglobales

Les Superglobales — Les Superglobales sont des variables internes qui sont toujours disponibles, quel que soit le contexte

Description

Plusieurs variables prédéfinies en PHP sont "superglobales", ce qui signifie qu'elles sont disponibles quel que soit le contexte du script. Il est inutile de faire global $variable; avant d'y accéder dans les fonctions ou les méthodes.

Les variables superglobales sont :

  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV

Historique

Version | Description
4.1.0 | Les superglobales sont introduites en PHP.

Notes

Note: Disponibilité des variables

Par défaut, toutes les superglobales sont disponibles, et seules les directives de configuration peuvent les rendre indisponibles. Pour plus d'informations, reportez-vous à la documentation sur l'ordre des variables.

Note: Gérer la directive register_globals

Si la directive obsolète register_globals est définie à on, alors les variables simples seront également disponibles dans le contexte global du script. Par exemple, $_POST['foo'] existera également sous la forme $foo.

Pour plus d'informations, voir la FAQ intitulée "Comment la directive register_globals affecte-t-elle mes scripts ?"

Note: Variable variables

Les superglobales ne peuvent pas être utilisées comme variables variables dans une fonction ou une méthode d'une classe.

Voir aussi

  • La portée des variables
  • La directive variables_order
  • L'extension sur les filtres


Référence toutes les variables disponibles dans un contexte global

  • « Les Superglobales
  • $_SERVER »
  • PHP Manual
  • Variables prédéfinies
  • Référence toutes les variables disponibles dans un contexte global

$GLOBALS

(PHP 4, PHP 5, PHP 7)

$GLOBALS — Référence toutes les variables disponibles dans un contexte global

Description

Un tableau associatif contenant les références sur toutes les variables globales actuellement définies dans le contexte d'exécution global du script. Les noms des variables sont les index du tableau.

Exemples

Exemple #1 Exemple avec $GLOBALS

<?php
function test() {
    $foo = "variable locale";

    echo '$foo dans le contexte global : ' . $GLOBALS["foo"] . "\n";
    echo '$foo dans le contexte courant : ' . $foo . "\n";
}

$foo = "Exemple de contenu";
test();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

$foo dans le contexte global : Exemple de contenu
$foo dans le contexte courant : variable locale

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Note: Disponibilité des variables

Contrairement à toutes les autres superglobales, $GLOBALS a toujours été disponible en PHP.


Variables de serveur et d'exécution

  • « $GLOBALS
  • $_GET »
  • PHP Manual
  • Variables prédéfinies
  • Variables de serveur et d'exécution

$_SERVER

$HTTP_SERVER_VARS [Supprimé]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_SERVER -- $HTTP_SERVER_VARS [Supprimé] — Variables de serveur et d'exécution

Description

$_SERVER est un tableau contenant des informations comme les en-têtes, dossiers et chemins du script. Les entrées de ce tableau sont créées par le serveur web. Il n'y a aucune garantie que tous les serveurs les rempliront tous ; certains en oublieront quelques-unes et en rajouteront de nouvelles non mentionnées ici. Cependant, un grand nombre de ces variables fait partie des » spécifications CGI/1.1, et vous pouvez donc vous attendre à les retrouver.

Note: Antérieurement à PHP 5.4.0, $HTTP_SERVER_VARS contenait la même information initiale, mais n'était pas une variable superglobale. (Notez que $HTTP_SERVER_VARS et $_SERVER étaient des variables différentes et que PHP les traitaient en tant que telles.)

Indices

Vous pouvez éventuellement trouver les éléments suivants dans la variable $_SERVER. Notez que certains, n'auront pas de sens si vous utilisez PHP en ligne de commande.

'PHP_SELF'
Le nom du fichier du script en cours d'exécution, par rapport à la racine web. Par exemple, $_SERVER['PHP_SELF'] dans le script situé à l'adresse http://example.com/foo/bar.php sera /foo/bar.php. La constante __FILE__ contient le chemin complet ainsi que le nom du fichier (i.e. inclus) courant. Si PHP fonctionne en ligne de commande, cette variable contient le nom du script depuis PHP 4.3.0. Dans les versions antérieures, cette variable n'était pas disponible.
'argv'
Tableau des arguments passés au script. Lorsque le script est appelé en ligne de commande, cela donne accès aux arguments, comme en langage C. Lorsque le script est appelé avec la méthode GET, ce tableau contiendra la chaîne de requête.
'argc'
Contient le nombre de paramètres de la ligne de commande passés au script (si le script fonctionne en ligne de commande).
'GATEWAY_INTERFACE'
Numéro de révision de l'interface CGI du serveur : i.e. 'CGI/1.1'.
'SERVER_ADDR'
L'adresse IP du serveur sous lequel le script courant est en train d'être exécuté.
'SERVER_NAME'
Le nom du serveur hôte qui exécute le script suivant. Si le script est exécuté sur un hôte virtuel, ce sera la valeur définie pour cet hôte virtuel.
'SERVER_SOFTWARE'
Chaîne d'identification du serveur, qui est donnée dans les en-têtes lors de la réponse aux requêtes.
'SERVER_PROTOCOL'
Nom et révision du protocole de communication : i.e. 'HTTP/1.0';
'REQUEST_METHOD'
Méthode de requête utilisée pour accéder à la page; i.e. 'GET', 'HEAD', 'POST', 'PUT'.

Note:

Le script PHP se termine après avoir envoyé les en-têtes (c'est à dire après avoir produit n'importe quelle sortie sans bufferisation de sortie) si la méthode de la requête était HEAD.

'REQUEST_TIME'
Le temps Unix du début de la requête. Disponible depuis PHP 5.1.0.
'REQUEST_TIME_FLOAT'
Le timestamp du début de la requête, avec une précision à la microseconde. Disponible depuis PHP 5.4.0.
'QUERY_STRING'
La chaîne de requête, si elle existe, qui est utilisée pour accéder à la page.
'DOCUMENT_ROOT'
La racine sous laquelle le script courant est exécuté, comme défini dans la configuration du serveur.
'HTTP_ACCEPT'
Contenu de l'en-tête Accept: de la requête courante, s'il y en a une.
'HTTP_ACCEPT_CHARSET'
Contenu de l'en-tête Accept-Charset: de la requête courante, si elle existe. Par exemple : 'iso-8859-1,*,utf-8'.
'HTTP_ACCEPT_ENCODING'
Contenu de l'en-tête Accept-Encoding: de la requête courante, si elle existe. Par exemple : 'gzip'.
'HTTP_ACCEPT_LANGUAGE'
Contenu de l'en-tête Accept-Language: de la requête courante, si elle existe. Par exemple : 'fr'.
'HTTP_CONNECTION'
Contenu de l'en-tête Connection: de la requête courante, si elle existe. Par exemple : 'Keep-Alive'.
'HTTP_HOST'
Contenu de l'en-tête Host: de la requête courante, si elle existe.
'HTTP_REFERER'
L'adresse de la page (si elle existe) qui a conduit le client à la page courante. Cette valeur est affectée par le client, et tous les clients ne le font pas. Certains navigateurs permettent même de modifier la valeur de HTTP_REFERER, sous forme de fonctionnalité. En bref, ce n'est pas une valeur de confiance.
'HTTP_USER_AGENT'
Contenu de l'en-tête User_Agent: de la requête courante, si elle existe. C'est une chaîne qui décrit le client HTML utilisé pour voir la page courante. Par exemple : Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Entre autres choses, vous pouvez utiliser cette valeur avec get_browser() pour optimiser votre page en fonction des capacités du client.
'HTTPS'
Défini à une valeur non-vide si le script a été appelé via le protocole HTTPS.

Note: Noter que lors de l'utilisation de ISAPI avec IIS, la valeur sera off si la demande n'a pas été faite via le protocole HTTPS.

'REMOTE_ADDR'
L'adresse IP du client qui demande la page courante.
'REMOTE_HOST'
Le nom de l'hôte qui lit le script courant. La résolution DNS inverse est basée sur la valeur de REMOTE_ADDR.

Note: Votre serveur web doit être configuré pour créer cette variable. Par exemple, pour Apache, vous devez ajouter la directive HostnameLookups On dans le fichier httpd.conf, pour que cette variable existe. Voyez aussi gethostbyaddr().

'REMOTE_PORT'
Le port utilisé par la machine cliente pour communiquer avec le serveur web.
'REMOTE_USER'
L'utilisateur authentifié.
'REDIRECT_REMOTE_USER'
L'utilisateur authentifié si la requête a été redirigée en interne.
'SCRIPT_FILENAME'

Le chemin absolu vers le fichier contenant le script en cours d'exécution.

Note:

Si un script est exécuté avec le CLI, avec un chemin relatif, comme file.php ou ../file.php, $_SERVER['SCRIPT_FILENAME'] contiendra le chemin relatif spécifié par l'utilisateur.

'SERVER_ADMIN'
La valeur donnée à la directive SERVER_ADMIN (pour Apache), dans le fichier de configuration. Si le script est exécuté par un hôte virtuel, ce sera la valeur définie par l'hôte virtuel.
'SERVER_PORT'
Le port de la machine serveur utilisé pour les communications. Par défaut, c'est "80". En utilisant SSL, par exemple, il sera remplacé par le numéro de port HTTP sécurisé.

Note: Avec Apache 2, vous devez définir UseCanonicalName = On, mais aussi UseCanonicalPhysicalPort = On afin de récupérer le port physique (réel), sinon, cette valeur pourrait être erronée et pourrait retourner ou non la valeur correcte. Dans tous les cas, il n'est pas sécurisé que de faire confiance en cette valeur suivant le contexte.

'SERVER_SIGNATURE'
Chaîne contenant le numéro de version du serveur et le nom d'hôte virtuel, qui sont ajoutés aux pages générées par le serveur, si cette option est activée.
'PATH_TRANSLATED'
Chemin dans le système de fichiers (pas le document-root) jusqu'au script courant, une fois que le serveur a fait une traduction chemin virtuel -> réel.

Note: Depuis PHP 4.3.2, la variable PATH_TRANSLATED n'est plus seulement définie implicitement sous Apache 2 SAPI contrairement à la situation sous Apache 1 où elle est définie avec la même valeur que la variable serveur SCRIPT_FILENAME lorsqu'elle n'est pas fournie par Apache. Ce changement a été effectué pour être conforme aux spécifications CGI qui fait que la variable PATH_TRANSLATED doit exister seulement si la variable PATH_INFO est définie. Les utilisateurs d'Apache 2 devraient utiliser AcceptPathInfo = On dans leur httpd.conf pour définir PATH_INFO.

'SCRIPT_NAME'
Contient le nom du script courant. Cela sert lorsque les pages doivent s'appeler elles-mêmes. La constante __FILE__ contient le chemin complet ainsi que le nom du fichier (i.e. inclut) courant.
'REQUEST_URI'
L'URI qui a été fourni pour accéder à cette page. Par exemple : '/index.html'.
'PHP_AUTH_DIGEST'
Lorsque vous utilisez l'authentification HTTP Digest, cette variable est définie dans l'en-tête "Authorization" envoyé par le client (que vous devez donc utiliser pour réaliser la validation appropriée).
'PHP_AUTH_USER'
Lorsque vous utilisez l'authentification HTTP, cette variable est définie à l'utilisateur fourni par l'utilisateur.
'PHP_AUTH_PW'
Lorsque vous utilisez l'authentification HTTP, cette variable est définie au mot de passe fourni par l'utilisateur.
'AUTH_TYPE'
Lorsque vous utilisez l'authentification HTTP, cette variable est définie au type d'identification.
'PATH_INFO'
Contient les informations sur le nom du chemin fourni par le client concernant le nom du fichier exécutant le script courant, sans la chaîne relative à la requête si elle existe. Actuellement, si le script courant est exécuté via l'URL http://www.example.com/php/path_info.php/some/stuff?foo=bar, alors la variable $_SERVER['PATH_INFO'] contiendra /some/stuff.
'ORIG_PATH_INFO'
Version orignale de 'PATH_INFO' avant d'être analysée par PHP.

Historique

Version | Description
5.4.0 | $HTTP_SERVER_VARS n'est plus disponible en raison de l'arrêt de l'enregistrement des tableaux longs.
5.3.0 | La directive register_long_arrays permettant de rendre disponible la variable $HTTP_SERVER_VARS est devenue obsolète.
4.1.0 | Introduction de $_SERVER, rendant obsolète $HTTP_SERVER_VARS.

Exemples

Exemple #1 Exemple avec $_SERVER

<?php
echo $_SERVER['SERVER_NAME'];
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

www.example.com

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Voir aussi

  • L'extension sur les filtres


Variables HTTP GET

  • « $_SERVER
  • $_POST »
  • PHP Manual
  • Variables prédéfinies
  • Variables HTTP GET

$_GET

$HTTP_GET_VARS [Obsolète]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_GET -- $HTTP_GET_VARS [Obsolète] — Variables HTTP GET

Description

Un tableau associatif des valeurs passées au script courant via les paramètres d'URL.

$HTTP_GET_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_GET_VARS et $_GET sont des variables différentes et que PHP les traite comme telles.)

Historique

Version | Description
4.1.0 | Introduction de $_GET, rendant obsolète $HTTP_GET_VARS.

Exemples

Exemple #1 Exemple avec $_GET

<?php
echo 'Bonjour ' . htmlspecialchars($_GET["name"]) . '!';
?>

En assumant que l'utilisateur a entré http://example.com/?name=Yannick

L'exemple ci-dessus va afficher quelque chose de similaire à :

Bonjour Yannick !

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Note:

Les variables GET sont passées via urldecode().

Voir aussi

  • Gestion des variables externes
  • L'extension sur les filtres


Variables HTTP POST

  • « $_GET
  • $_FILES »
  • PHP Manual
  • Variables prédéfinies
  • Variables HTTP POST

$_POST

$HTTP_POST_VARS [Obsolète]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_POST -- $HTTP_POST_VARS [Obsolète] — Variables HTTP POST

Description

Un tableau associatif des valeurs passées au script courant via le protocole HTTP et la méthode POST lors de l'utilisation de la chaîne application/x-www-form-urlencoded ou multipart/form-data comme en-tête HTTP Content-Type dans la requête.

$HTTP_POST_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_POST_VARS et $_POST sont des variables différentes et que PHP les traite comme telles.)

Historique

Version | Description
4.1.0 | Introduction de $_POST, rendant obsolète $HTTP_POST_VARS.

Exemples

Exemple #1 Exemple avec $_POST

<?php
echo 'Bonjour ' . htmlspecialchars($_POST["name"]) . '!';
?>

En supposant que l'utilisateur a POSTé name=Yannick

L'exemple ci-dessus va afficher quelque chose de similaire à :

Bonjour Yannick !

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Voir aussi

  • Gestion des variables externes
  • L'extension sur les filtres


Variable de téléchargement de fichier via HTTP

  • « $_POST
  • $_REQUEST »
  • PHP Manual
  • Variables prédéfinies
  • Variable de téléchargement de fichier via HTTP

$_FILES

$HTTP_POST_FILES [Obsolète]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_FILES -- $HTTP_POST_FILES [Obsolète] — Variable de téléchargement de fichier via HTTP

Description

Un tableau associatif des valeurs téléchargées au script courant via le protocole HTTP et la méthode POST.

$HTTP_POST_FILES contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_POST_FILES et $_FILES sont des variables différentes et que PHP les traite comme telles)

Historique

Version | Description
4.1.0 | Introduction de $_FILES, rendant obsolète $HTTP_POST_FILES.

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Voir aussi

  • move_uploaded_file() - Déplace un fichier téléchargé
  • Gestion des téléchargement de fichiers


Variables de requête HTTP

  • « $_FILES
  • $_SESSION »
  • PHP Manual
  • Variables prédéfinies
  • Variables de requête HTTP

$_REQUEST

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_REQUEST — Variables de requête HTTP

Description

Un tableau associatif qui contient par défaut le contenu des variables $_GET, $_POST et $_COOKIE.

Historique

Version | Description
5.3.0 | Introduction de request_order. Cette directive affecte le contenu de la variable $_REQUEST.
4.3.0 | Les informations de $_FILES ont été supprimées de la variable $_REQUEST.
4.1.0 | Introduction de $_REQUEST.

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Note:

En ligne de commande, cette variable n'inclut pas les variables argv et argc : elles sont stockées dans le tableau $_SERVER.

Note:

Les variables contenues dans $_REQUEST sont fournies au script via les mécanismes d'entrée GET, POST, et COOKIE et donc, peuvent être modifiées par l'utilisateur final ; aussi, vous ne pouvez faire confiance à leur contenu. La présence ainsi que l'ordre de ces variables dans ce tableau sont définis suivant la directive de configuration variables_order.

Voir aussi

  • import_request_variables() - Importe les variables de GET/POST/Cookie dans l'environnement global
  • Gestion des variables externes
  • L'extension sur les filtres


Variables de session

  • « $_REQUEST
  • $_ENV »
  • PHP Manual
  • Variables prédéfinies
  • Variables de session

$_SESSION

$HTTP_SESSION_VARS [obsolète]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_SESSION -- $HTTP_SESSION_VARS [obsolète] — Variables de session

Description

Un tableau associatif des valeurs stockées dans les sessions, et accessible au script courant. Voyez l'extension Sessions pour plus de détails sur comment est utilisée cette variable.

$HTTP_SESSION_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_SESSION_VARS et $_SESSION sont des variables différentes et que PHP les traite comme telles)

Historique

Version | Description
4.1.0 | Introduction de $_SESSION, rendant obsolète $HTTP_SESSION_VARS.

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Voir aussi

  • session_start() - Démarre une nouvelle session ou reprend une session existante


Variables d'environnement

  • « $_SESSION
  • $_COOKIE »
  • PHP Manual
  • Variables prédéfinies
  • Variables d'environnement

$_ENV

$HTTP_ENV_VARS [Obsolète]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_ENV -- $HTTP_ENV_VARS [Obsolète] — Variables d'environnement

Description

Un tableau associatif de variable passé au script courant, via la méthode d'environnement.

Cette variable est importée dans l'espace de nom global de PHP, depuis l'environnement dans lequel l'exécutable PHP fonctionne. De nombreuses valeurs sont fournies par le shell qui exécute PHP, et différents systèmes pouvant disposer de différents shell, même un début de liste serait ici impossible. Reportez-vous à la documentation de votre shell pour connaître une liste de variables pré-définies.

Les autres variables d'environnement incluent les variables CGI, placées ici, indépendamment du fait que PHP fonctionne en tant que CGI ou bien que module du serveur.

$HTTP_ENV_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_ENV_VARS et $_ENV sont des variables différentes et que PHP les traite comme tel.)

Historique

Version | Description
4.1.0 | Introduction de $_ENV, rendant obsolète $HTTP_ENV_VARS.

Exemples

Exemple #1 Exemple avec $_ENV

<?php
echo 'Mon nom d\'utilisateur est ' .$_ENV["USER"] . '!';
?>

En assumant que "yannick" exécute ce script

L'exemple ci-dessus va afficher quelque chose de similaire à :

Mon nom d'utilisateur est yannick !

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Voir aussi

  • getenv() - Retourne la valeur d'une variable d'environnement
  • L'extension sur les filtres


Cookies HTTP

  • « $_ENV
  • $php_errormsg »
  • PHP Manual
  • Variables prédéfinies
  • Cookies HTTP

$_COOKIE

$HTTP_COOKIE_VARS [Obsolète]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_COOKIE -- $HTTP_COOKIE_VARS [Obsolète] — Cookies HTTP

Description

Un tableau associatif de variables, passé au script courant, via des cookies HTTP.

$HTTP_COOKIE_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_COOKIE_VARS et $_COOKIE sont des variables différentes et que PHP les traite comme telles.)

Historique

Version | Description
4.1.0 | Introduction de $_COOKIE, rendant obsolète $HTTP_COOKIE_VARS.

Exemples

Exemple #1 Exemple avec $_COOKIE

<?php
echo 'Bonjour ' . htmlspecialchars($_COOKIE["name"]) . '!';
?>

En supposant que le cookie "name" a été définit précédemment

L'exemple ci-dessus va afficher quelque chose de similaire à :

Bonjour Yannick !

Notes

Note:

Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.

Voir aussi

  • setcookie() - Envoie un cookie
  • Gestion des variables externes
  • L'extension sur les filtres


Le dernier message d'erreur

  • « $_COOKIE
  • $HTTP_RAW_POST_DATA »
  • PHP Manual
  • Variables prédéfinies
  • Le dernier message d'erreur

$php_errormsg

(PHP 4, PHP 5, PHP 7)

$php_errormsg — Le dernier message d'erreur

Description

$php_errormsg est une variable qui contient le texte de la dernière erreur générée par PHP. Cette variable sera uniquement accessible dans le même contexte d'exécution que celui de la ligne qui a généré l'erreur, et uniquement si la directive de configuration track_errors est activée (elle est désactivée par défaut).

Avertissement

Si un gestionnaire d'erreurs définit par l'utilisateur est actif (set_error_handler()), $php_errormsg ne sera définit que si le gestionnaire d'erreur retourne FALSE.

Exemples

Exemple #1 Exemple avec $php_errormsg

<?php
@strpos();
echo $php_errormsg;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Wrong parameter count for strpos()


Données POST brutes

  • « $php_errormsg
  • $http_response_header »
  • PHP Manual
  • Variables prédéfinies
  • Données POST brutes

$HTTP_RAW_POST_DATA

(PHP 4, PHP 5)

$HTTP_RAW_POST_DATA — Données POST brutes

Description

Avertissement

Cette fonctionnalité était obsolète depuis PHP 5.6.0 et a été supprimée depuis PHP 7.0.0.

$HTTP_RAW_POST_DATA contient les données POST brutes. Voir always_populate_raw_post_data.

En général, php://input doit être utilisé au lieu de $HTTP_RAW_POST_DATA.


En-têtes de réponse HTTP

  • « $HTTP_RAW_POST_DATA
  • $argc »
  • PHP Manual
  • Variables prédéfinies
  • En-têtes de réponse HTTP

$http_response_header

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

$http_response_header — En-têtes de réponse HTTP

Description

Le tableau $http_response_header est similaire à la fonction get_headers(). Lors de l'utilisation du gestionnaire HTTP, $http_response_header sera rempli avec les en-têtes de réponses HTTP. $http_response_header sera crée avec une portée locale.

Exemples

Exemple #1 Exemple avec $http_response_header

<?php
function get_contents() {
  file_get_contents("http://example.com");
  var_dump($http_response_header);
}
get_contents();
var_dump($http_response_header);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(9) {
  [0]=>
  string(15) "HTTP/1.1 200 OK"
  [1]=>
  string(35) "Date: Sat, 12 Apr 2008 17:30:38 GMT"
  [2]=>
  string(29) "Server: Apache/2.2.3 (CentOS)"
  [3]=>
  string(44) "Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT"
  [4]=>
  string(27) "ETag: "280100-1b6-80bfd280""
  [5]=>
  string(20) "Accept-Ranges: bytes"
  [6]=>
  string(19) "Content-Length: 438"
  [7]=>
  string(17) "Connection: close"
  [8]=>
  string(38) "Content-Type: text/html; CHARSET=Windows-1252"
}
NULL


Le nombre d'arguments passés au script

  • « $http_response_header
  • $argv »
  • PHP Manual
  • Variables prédéfinies
  • Le nombre d'arguments passés au script

$argc

(PHP 4, PHP 5, PHP 7)

$argc — Le nombre d'arguments passés au script

Description

Contient le nombre d'arguments passés au script courant lorsqu'il est exécuté depuis la ligne de commande.

Note: Le nom du fichier contenant le script est toujours passé en tant qu'argument au script, ainsi la valeur minimale de $argc est 1.

Note: Cette variable n'est pas disponible lorsque register_argc_argv est désactivé.

Exemples

Exemple #1 Exemple avec $argc

<?php
var_dump($argc);
?>

Lorsque l'on exécute l'exemple avec la commande : php script.php arg1 arg2 arg3

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(4)


Tableau d'arguments passés au script

  • « $argc
  • Exceptions prédéfinies »
  • PHP Manual
  • Variables prédéfinies
  • Tableau d'arguments passés au script

$argv

(PHP 4, PHP 5, PHP 7)

$argv — Tableau d'arguments passés au script

Description

Contient un tableau de tous les arguments passés au script lorsqu'il est appelé depuis la ligne de commande.

Note: Le premier argument $argv[0] est toujours le nom qui a été utilisé pour exécuter le script.

Note: Cette variable n'est pas disponible lorsque register_argc_argv est désactivé.

Exemples

Exemple #1 Exemple avec $argv

<?php
var_dump($argv);
?>

Lorsque l'on exécute l'exemple avec la commande : php script.php arg1 arg2 arg3

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  [0]=>
  string(10) "script.php"
  [1]=>
  string(4) "arg1"
  [2]=>
  string(4) "arg2"
  [3]=>
  string(4) "arg3"
}

Voir aussi

  • getopt() - Lit des options passées dans la ligne de commande


Exceptions prédéfinies

Sommaire

  • Exception
  • ErrorException

Voir aussi les exceptions SPL.


Exception

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception est la classe de base pour toutes les exceptions.

Synopsis de la classe

Exception {
/* Propriétés */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes */
public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )
final public string getMessage ( void )
final public Exception getPrevious ( void )
final public mixed getCode ( void )
final public string getFile ( void )
final public int getLine ( void )
final public array getTrace ( void )
final public string getTraceAsString ( void )
public string __toString ( void )
final private void __clone ( void )
}

Propriétés

message

Le message de l'exception

code

Le code de l'exception

file

Le nom du fichier dans lequel l'exception a été créée

line

La ligne où l'exception a été créée

Sommaire

  • Exception::__construct — Construit l'exception
  • Exception::getMessage — Récupère le message de l'exception
  • Exception::getPrevious — Retourne l'exception précédente
  • Exception::getCode — Récupère le code de l'exception
  • Exception::getFile — Récupère le fichier dans lequel l'exception est survenue
  • Exception::getLine — Récupère la ligne dans laquelle l'exception est survenue
  • Exception::getTrace — Récupère la trace de la pile
  • Exception::getTraceAsString — Récupère la trace de la pile en tant que chaîne
  • Exception::__toString — Représente l'exception sous la forme d'une chaîne
  • Exception::__clone — Clone l'exception


Construit l'exception

  • « Exception
  • Exception::getMessage »
  • PHP Manual
  • Exception
  • Construit l'exception

Exception::__construct

(PHP 5 >= 5.1.0, PHP 7)

Exception::__construct — Construit l'exception

Description

public Exception::__construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )

Construit l'exception.

Liste de paramètres

message

Le message de l'exception à lancer.

code

Le code de l'exception.

previous

L'exception précédente, utilisée pour le chaînage d'exception.

Historique

Version | Description
7.0.0 | Le paramètre previous est maintenant de type Throwable.
5.3.0 | Le paramètre previous a été ajouté.

Notes

Note:

Le message n'est PAS binary safe.


Récupère le message de l'exception

  • « Exception::__construct
  • Exception::getPrevious »
  • PHP Manual
  • Exception
  • Récupère le message de l'exception

Exception::getMessage

(PHP 5 >= 5.1.0, PHP 7)

Exception::getMessage — Récupère le message de l'exception

Description

final public string Exception::getMessage ( void )

Retourne le message de l'exception.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le message de l'exception, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec Exception::getMessage()

<?php
try {
    throw new Exception("Un message d'erreur");
} catch(Exception $e) {
    echo $e->getMessage();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Un message d'erreur

Voir aussi

  • Throwable::getMessage() - Gets the message


Retourne l'exception précédente

  • « Exception::getMessage
  • Exception::getCode »
  • PHP Manual
  • Exception
  • Retourne l'exception précédente

Exception::getPrevious

(PHP 5 >= 5.3.0, PHP 7)

Exception::getPrevious — Retourne l'exception précédente

Description

final public Exception Exception::getPrevious ( void )

Retourne l'exception précédente (le troisième paramètre de la méthode Exception::__construct()).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la précédente Exception si disponible, NULL sinon.

Exemples

Exemple #1 Exemple avec Exception::getPrevious()

Une boucle, on affiche et on capture les exceptions.

<?php
class MyCustomException extends Exception {}

function doStuff() {
    try {
        throw new InvalidArgumentException("Vous avez fais une erreur !", 112);
    } catch(Exception $e) {
        throw new MyCustomException("Un problème est survenu", 911, $e);
    }
}

try {
    doStuff();
} catch(Exception $e) {
    do {
        printf("%s:%d %s (%d) [%s]\n", $e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), get_class($e));
    } while($e = $e->getPrevious());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/home/bjori/ex.php:8 Un problème est survenu (911) [MyCustomException]
/home/bjori/ex.php:6 Vous avez fais une erreur ! (112) [InvalidArgumentException]

Voir aussi

  • Throwable::getPrevious() - Returns the previous Throwable


Récupère le code de l'exception

  • « Exception::getPrevious
  • Exception::getFile »
  • PHP Manual
  • Exception
  • Récupère le code de l'exception

Exception::getCode

(PHP 5 >= 5.1.0, PHP 7)

Exception::getCode — Récupère le code de l'exception

Description

final public mixed Exception::getCode ( void )

Retourne le code de l'exception.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le code de l'exception, sous la forme d'un entier dans la classe Exception mais aussi sous la forme d'un autre type de données dans les classes héritant de Exception (par exemple, sous la forme d'une chaîne de caractères dans la classe PDOException).

Exemples

Exemple #1 Exemple avec Exception::getCode()

<?php
try {
    throw new Exception("Un message d'erreur", 30);
} catch(Exception $e) {
    echo "Le code de l'exception est : " . $e->getCode();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le code de l'exception est : 30

Voir aussi

  • Throwable::getCode() - Gets the exception code


Récupère le fichier dans lequel l'exception est survenue

  • « Exception::getCode
  • Exception::getLine »
  • PHP Manual
  • Exception
  • Récupère le fichier dans lequel l'exception est survenue

Exception::getFile

(PHP 5 >= 5.1.0, PHP 7)

Exception::getFile — Récupère le fichier dans lequel l'exception est survenue

Description

final public string Exception::getFile ( void )

Récupère le nom du fichier dans lequel l'exception a été créée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du fichier dans lequel l'exception a été créée.

Exemples

Exemple #1 Exemple avec Exception::getFile()

<?php
try {
    throw new Exception;
} catch(Exception $e) {
    echo $e->getFile();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/home/bjori/tmp/ex.php

Voir aussi

  • Throwable::getFile() - Gets the file in which the exception occurred


Récupère la ligne dans laquelle l'exception est survenue

  • « Exception::getFile
  • Exception::getTrace »
  • PHP Manual
  • Exception
  • Récupère la ligne dans laquelle l'exception est survenue

Exception::getLine

(PHP 5 >= 5.1.0, PHP 7)

Exception::getLine — Récupère la ligne dans laquelle l'exception est survenue

Description

final public int Exception::getLine ( void )

Récupère le numéro de la ligne où l'exception a été créée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de la ligne où l'exception a été créée.

Exemples

Exemple #1 Exemple avec Exception::getLine()

<?php
try {
    throw new Exception("Un message d'erreur");
} catch(Exception $e) {
    echo "L'exception a été créée depuis la ligne : " . $e->getLine();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

L'exception a été créée depuis la ligne : 3

Voir aussi

  • Throwable::getLine() - Gets the line on which the object was instantiated


Récupère la trace de la pile

  • « Exception::getLine
  • Exception::getTraceAsString »
  • PHP Manual
  • Exception
  • Récupère la trace de la pile

Exception::getTrace

(PHP 5 >= 5.1.0, PHP 7)

Exception::getTrace — Récupère la trace de la pile

Description

final public array Exception::getTrace ( void )

Retourne la trace de la pile de l'exception.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la trace de la pile de l'exception sous la forme d'un tableau.

Exemples

Exemple #1 Exemple avec Exception::getTrace()

<?php
function test() {
 throw new Exception;
}

try {
 test();
} catch(Exception $e) {
 var_dump($e->getTrace());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  array(4) {
    ["file"]=>
    string(22) "/home/bjori/tmp/ex.php"
    ["line"]=>
    int(7)
    ["function"]=>
    string(4) "test"
    ["args"]=>
    array(0) {
    }
  }
}

Voir aussi

  • Throwable::getTrace() - Gets the stack trace


Récupère la trace de la pile en tant que chaîne

  • « Exception::getTrace
  • Exception::__toString »
  • PHP Manual
  • Exception
  • Récupère la trace de la pile en tant que chaîne

Exception::getTraceAsString

(PHP 5 >= 5.1.0, PHP 7)

Exception::getTraceAsString — Récupère la trace de la pile en tant que chaîne

Description

final public string Exception::getTraceAsString ( void )

Retourne la trace de la pile de l'exception, sous la forme d'une chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la trace de la pile de l'exception, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec Exception::getTraceAsString()

<?php
function test() {
    throw new Exception;
}

try {
    test();
} catch(Exception $e) {
    echo $e->getTraceAsString();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

#0 /home/bjori/tmp/ex.php(7): test()
#1 {main}

Voir aussi

  • Throwable::getTraceAsString() - Gets the stack trace as a string


Représente l'exception sous la forme d'une chaîne

  • « Exception::getTraceAsString
  • Exception::__clone »
  • PHP Manual
  • Exception
  • Représente l'exception sous la forme d'une chaîne

Exception::__toString

(PHP 5 >= 5.1.0, PHP 7)

Exception::__toString — Représente l'exception sous la forme d'une chaîne

Description

public string Exception::__toString ( void )

Retourne une représentation de l'exception sous forme d'une chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation de l'exception, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec Exception::__toString()

<?php
try {
    throw new Exception("Message d'erreur");
} catch(Exception $e) {
    echo $e;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

exception 'Exception' with message 'Message d'erreur' in /home/bjori/tmp/ex.php:3
Stack trace:
#0 {main}

Voir aussi

  • Throwable::__toString() - Gets a string representation of the thrown object


Clone l'exception

  • « Exception::__toString
  • ErrorException »
  • PHP Manual
  • Exception
  • Clone l'exception

Exception::__clone

(PHP 5 >= 5.1.0, PHP 7)

Exception::__clone — Clone l'exception

Description

final private void Exception::__clone ( void )

Tenter de cloner l'exception, qui résulte en une erreur fatale.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Les exceptions ne sont pas clonables.


ErrorException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Une exception pour les erreurs.

Synopsis de la classe

ErrorException extends Exception {
/* Propriétés */
protected int $severity ;
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes */
public __construct ([ string $message = "" [, int $code = 0 [, int $severity = 1 [, string $filename = __FILE__ [, int $lineno = __LINE__ [, Exception $previous = NULL ]]]]]] )
final public int getSeverity ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

severity

La sévérité de l'exception

Exemples

Exemple #1 Utilisation de set_error_handler() pour changer tous les messages d'erreurs en ErrorException

<?php
function exception_error_handler($severity, $message, $file, $line) {
    if (!(error_reporting() & $severity)) {
        // Ce code d'erreur n'est pas inclu dans error_reporting
        return;
    }
    throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler("exception_error_handler");

/* Lance l'exception */
strpos();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fatal error: Uncaught exception 'ErrorException' with message 'strpos() expects at least 2 parameters, 0 given' in /home/bjori/tmp/ex.php:12
Stack trace:
#0 [internal function]: exception_error_handler(2, 'strpos() expect...', '/home/bjori/php...', 12, Array)
#1 /home/bjori/php/cleandocs/test.php(12): strpos()
#2 {main}
  thrown in /home/bjori/tmp/ex.php on line 12

Sommaire

  • ErrorException::__construct — Construit l'exception
  • ErrorException::getSeverity — Récupère la sévérité de l'exception


Construit l'exception

  • « ErrorException
  • ErrorException::getSeverity »
  • PHP Manual
  • ErrorException
  • Construit l'exception

ErrorException::__construct

(PHP 5 >= 5.1.0, PHP 7)

ErrorException::__construct — Construit l'exception

Description

public ErrorException::__construct ([ string $message = "" [, int $code = 0 [, int $severity = 1 [, string $filename = __FILE__ [, int $lineno = __LINE__ [, Exception $previous = NULL ]]]]]] )

Construit l'exception.

Liste de paramètres

message

Le message de l'exception à lancer.

code

Le code de l'exception.

severity

Le degré de sévérité de l'exception.

filename

Le fichier depuis lequel l'exception est lancée.

lineno

Le numéro de ligne depuis laquelle l'exception est lancée.

previous

La précédente exception utilisée pour le chaînage des exceptions.

Historique

Version | Description
5.3.0 | Le paramètre previous a été ajouté.


Récupère la sévérité de l'exception

  • « ErrorException::__construct
  • Interfaces et Classes prédéfinies »
  • PHP Manual
  • ErrorException
  • Récupère la sévérité de l'exception

ErrorException::getSeverity

(PHP 5 >= 5.1.0, PHP 7)

ErrorException::getSeverity — Récupère la sévérité de l'exception

Description

final public int ErrorException::getSeverity ( void )

Retourne la sévérité de l'exception.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le degré de sévérité de l'exception.

Exemples

Exemple #1 Exemple avec ErrorException::ErrorException()

<?php
try {
    throw new ErrorException("Exception message", 0, E_USER_ERROR);
} catch(ErrorException $e) {
    echo "La sévérité de l'exception est : " . $e->getSeverity();
    var_dump($e->getSeverity() === E_USER_ERROR);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

La sévérité de l'exception est : 256
bool(true)


Interfaces et Classes prédéfinies

Sommaire

  • Traversable
  • Iterator
  • IteratorAggregate
  • Throwable
  • ArrayAccess
  • Serializable
  • Closure
  • Generator

Voir aussi les interfaces SPL ainsi que les classes réservées.


L'interface Traversable

(PHP 5 >= 5.0.0, PHP 7)

Introduction

Interface permettant de détecter si une classe peut être parcourue en utilisant foreach.

L'interface de base est abstraite et ne peut être implémentée seule. Elle doit être implémentée par soit IteratorAggregate, soit Iterator.

Note:

Les classes internes qui implémentent cette interface peuvent être utilisées dans un constructeur foreach et n'ont pas besoin d'implémenter IteratorAggregate ou Iterator.

Note:

Ceci est une interface du moteur interne qui ne peut être implémentée dans des scripts PHP. Vous devez utiliser à la place IteratorAggregate ou Iterator. Lors de l'implémentation d'une interface qui étend Traversable, assurez-vous de lister IteratorAggregate ou Iterator avant son nom dans la clause d'implémentation.

Sommaire de l'Interface

Traversable {
}

Cette interface n'a pas de méthode ; son seul but est d'être l'interface de base pour toutes les classes permettant de parcourir des objets.


L'interface Iterator

(PHP 5 >= 5.0.0, PHP 7)

Introduction

Interface pour les itérateurs ou les objets externes qui peuvent être itérés eux-mêmes en interne.

Sommaire de l'Interface

Iterator extends Traversable {
/* Méthodes */
abstract public mixed current ( void )
abstract public scalar key ( void )
abstract public void next ( void )
abstract public void rewind ( void )
abstract public boolean valid ( void )
}

Itérateurs prédéfinis

PHP fournit quelques itérateurs pour certaines tâches. Voir les itérateurs SPL pour une liste complète.

Exemples

Exemple #1 Exemple simple

Cet exemple montre l'ordre d'appel des méthodes lors d'un appel à l'instruction foreach sur un itérateur.

<?php
class myIterator implements Iterator {
    private $position = 0;
    private $array = array(
        "premierelement",
        "secondelement",
        "dernierelement",
    );

    public function __construct() {
        $this->position = 0;
    }

    function rewind() {
        var_dump(__METHOD__);
        $this->position = 0;
    }

    function current() {
        var_dump(__METHOD__);
        return $this->array[$this->position];
    }

    function key() {
        var_dump(__METHOD__);
        return $this->position;
    }

    function next() {
        var_dump(__METHOD__);
        ++$this->position;
    }

    function valid() {
        var_dump(__METHOD__);
        return isset($this->array[$this->position]);
    }
}

$it = new myIterator;

foreach($it as $key => $value) {
    var_dump($key, $value);
    echo "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(18) "myIterator::rewind"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(0)
string(12) "premierelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(1)
string(13) "secondelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(2)
string(11) "dernierelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"

Sommaire

  • Iterator::current — Retourne l'élément courant
  • Iterator::key — Retourne la clé de l'élément courant
  • Iterator::next — Se déplace sur l'élément suivant
  • Iterator::rewind — Replace l'itérateur sur le premier élément
  • Iterator::valid — Vérifie si la position courante est valide


Retourne l'élément courant

  • « Iterator
  • Iterator::key »
  • PHP Manual
  • Iterator
  • Retourne l'élément courant

Iterator::current

(PHP 5 >= 5.0.0, PHP 7)

Iterator::current — Retourne l'élément courant

Description

abstract public mixed Iterator::current ( void )

Retourne l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Peut retourner tout type.


Retourne la clé de l'élément courant

  • « Iterator::current
  • Iterator::next »
  • PHP Manual
  • Iterator
  • Retourne la clé de l'élément courant

Iterator::key

(PHP 5 >= 5.0.0, PHP 7)

Iterator::key — Retourne la clé de l'élément courant

Description

abstract public scalar Iterator::key ( void )

Retourne la clé de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un scalaire en cas de succès, ou NULL si une erreur survient.

Erreurs / Exceptions

Émet une alerte de type E_NOTICE si une erreur survient.


Se déplace sur l'élément suivant

  • « Iterator::key
  • Iterator::rewind »
  • PHP Manual
  • Iterator
  • Se déplace sur l'élément suivant

Iterator::next

(PHP 5 >= 5.0.0, PHP 7)

Iterator::next — Se déplace sur l'élément suivant

Description

abstract public void Iterator::next ( void )

Se déplace de la position courant à l'élément suivant.

Note:

Cette méthode est appelée après chaque boucle foreach.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les valeurs retournées seront ignorées.


Replace l'itérateur sur le premier élément

  • « Iterator::next
  • Iterator::valid »
  • PHP Manual
  • Iterator
  • Replace l'itérateur sur le premier élément

Iterator::rewind

(PHP 5 >= 5.0.0, PHP 7)

Iterator::rewind — Replace l'itérateur sur le premier élément

Description

abstract public void Iterator::rewind ( void )

Replace l'itérateur sur le premier élément.

Note:

C'est la première méthode appelée lors du départ d'une boucle foreach. Elle ne sera pas exécutée après la boucle foreach.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Toutes les valeurs retournées sont ignorées.


Vérifie si la position courante est valide

  • « Iterator::rewind
  • IteratorAggregate »
  • PHP Manual
  • Iterator
  • Vérifie si la position courante est valide

Iterator::valid

(PHP 5 >= 5.0.0, PHP 7)

Iterator::valid — Vérifie si la position courante est valide

Description

abstract public boolean Iterator::valid ( void )

Cette méthode est appelée après Iterator::rewind() et Iterator::next() pour vérifier si la position courante est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur retournée sera transtypée en booléen, puis, évaluée. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


L'interface IteratorAggregate

(PHP 5 >= 5.0.0, PHP 7)

Introduction

Interface pour créer un itérateur externe.

Sommaire de l'Interface

IteratorAggregate extends Traversable {
/* Méthodes */
abstract public Traversable getIterator ( void )
}

Exemple #1 Exemple simple

<?php
class myData implements IteratorAggregate {
    public $property1 = "Propriété publique numéro un";
    public $property2 = "Propriété publique numéro deux";
    public $property3 = "Propriété publique numéro trois";

    public function __construct() {
        $this->property4 = "dernière propriété";
    }

    public function getIterator() {
        return new ArrayIterator($this);
    }
}

$obj = new myData;

foreach($obj as $key => $value) {
    var_dump($key, $value);
    echo "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(9) "property1"
string(19) "Propriété publique numéro un"

string(9) "property2"
string(19) "Propriété publique numéro deux"

string(9) "property3"
string(21) "Propriété publique numéro trois"

string(9) "property4"
string(13) "dernière propriété"

Sommaire

  • IteratorAggregate::getIterator — Retourne un itérateur externe


Retourne un itérateur externe

  • « IteratorAggregate
  • Throwable »
  • PHP Manual
  • IteratorAggregate
  • Retourne un itérateur externe

IteratorAggregate::getIterator

(PHP 5 >= 5.0.0, PHP 7)

IteratorAggregate::getIterator — Retourne un itérateur externe

Description

abstract public Traversable IteratorAggregate::getIterator ( void )

Retourne un itérateur externe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une instance d'un objet qui implémente un Iterator ou l'interface Traversable.

Erreurs / Exceptions

Émet une Exception en cas d'échec.


Throwable

(PHP 7)

Introduction

Throwable is the base interface for any object that can be thrown via a throw statement in PHP 7, including Error and Exception.

Note:

PHP classes cannot implement the Throwable interface directly, and must instead extend Exception.

Sommaire de l'Interface

Throwable {
/* Méthodes */
abstract public string getMessage ( void )
abstract public int getCode ( void )
abstract public string getFile ( void )
abstract public int getLine ( void )
abstract public array getTrace ( void )
abstract public string getTraceAsString ( void )
abstract public Throwable getPrevious ( void )
abstract public string __toString ( void )
}

Sommaire

  • Throwable::getMessage — Gets the message
  • Throwable::getCode — Gets the exception code
  • Throwable::getFile — Gets the file in which the exception occurred
  • Throwable::getLine — Gets the line on which the object was instantiated
  • Throwable::getTrace — Gets the stack trace
  • Throwable::getTraceAsString — Gets the stack trace as a string
  • Throwable::getPrevious — Returns the previous Throwable
  • Throwable::__toString — Gets a string representation of the thrown object


Gets the message

  • « Throwable
  • Throwable::getCode »
  • PHP Manual
  • Throwable
  • Gets the message

Throwable::getMessage

(PHP 7)

Throwable::getMessage — Gets the message

Description

abstract public string Throwable::getMessage ( void )

Returns the message associated with the thrown object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the message associated with the thrown object.

Voir aussi

  • Exception::getMessage() - Récupère le message de l'exception


Gets the exception code

  • « Throwable::getMessage
  • Throwable::getFile »
  • PHP Manual
  • Throwable
  • Gets the exception code

Throwable::getCode

(PHP 7)

Throwable::getCode — Gets the exception code

Description

abstract public int Throwable::getCode ( void )

Returns the error code associated with the thrown object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the exception code as integer in Exception but possibly as other type in Exception descendants (for example as string in PDOException).

Voir aussi

  • Exception::getCode() - Récupère le code de l'exception


Gets the file in which the exception occurred

  • « Throwable::getCode
  • Throwable::getLine »
  • PHP Manual
  • Throwable
  • Gets the file in which the exception occurred

Throwable::getFile

(PHP 7)

Throwable::getFile — Gets the file in which the exception occurred

Description

abstract public string Throwable::getFile ( void )

Returns the name of the file from which the object was thrown.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the name of the file from which the object was thrown.

Voir aussi

  • Exception::getFile() - Récupère le fichier dans lequel l'exception est survenue


Gets the line on which the object was instantiated

  • « Throwable::getFile
  • Throwable::getTrace »
  • PHP Manual
  • Throwable
  • Gets the line on which the object was instantiated

Throwable::getLine

(PHP 7)

Throwable::getLine — Gets the line on which the object was instantiated

Description

abstract public int Throwable::getLine ( void )

Returns the line number where the thrown object was instantiated.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the line number where the thrown object was instantiated.

Voir aussi

  • Exception::getLine() - Récupère la ligne dans laquelle l'exception est survenue


Gets the stack trace

  • « Throwable::getLine
  • Throwable::getTraceAsString »
  • PHP Manual
  • Throwable
  • Gets the stack trace

Throwable::getTrace

(PHP 7)

Throwable::getTrace — Gets the stack trace

Description

abstract public array Throwable::getTrace ( void )

Returns the stack trace as an array.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the stack trace as an array in the same format as debug_backtrace().

Voir aussi

  • Exception::getTrace() - Récupère la trace de la pile


Gets the stack trace as a string

  • « Throwable::getTrace
  • Throwable::getPrevious »
  • PHP Manual
  • Throwable
  • Gets the stack trace as a string

Throwable::getTraceAsString

(PHP 7)

Throwable::getTraceAsString — Gets the stack trace as a string

Description

abstract public string Throwable::getTraceAsString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the stack trace as a string.

Voir aussi

  • Exception::getTraceAsString() - Récupère la trace de la pile en tant que chaîne


Returns the previous Throwable

  • « Throwable::getTraceAsString
  • Throwable::__toString »
  • PHP Manual
  • Throwable
  • Returns the previous Throwable

Throwable::getPrevious

(PHP 7)

Throwable::getPrevious — Returns the previous Throwable

Description

abstract public Throwable Throwable::getPrevious ( void )

Returns any previous Throwable (for example, one provided as the third parameter to Exception::__construct()).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the previous Throwable if available, or NULL otherwise.

Voir aussi

  • Exception::getPrevious() - Retourne l'exception précédente


Gets a string representation of the thrown object

  • « Throwable::getPrevious
  • ArrayAccess »
  • PHP Manual
  • Throwable
  • Gets a string representation of the thrown object

Throwable::__toString

(PHP 7)

Throwable::__toString — Gets a string representation of the thrown object

Description

abstract public string Throwable::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the string representation of the thrown object.

Voir aussi

  • Exception::__toString() - Représente l'exception sous la forme d'une chaîne


L'interface ArrayAccess

(PHP 5 >= 5.0.0, PHP 7)

Introduction

Interface permettant d'accéder aux objets de la même façon que pour les tableaux.

Sommaire de l'Interface

ArrayAccess {
/* Méthodes */
abstract public boolean offsetExists ( mixed $offset )
abstract public mixed offsetGet ( mixed $offset )
abstract public void offsetSet ( mixed $offset , mixed $value )
abstract public void offsetUnset ( mixed $offset )
}

Exemple #1 Exemple simple

<?php
class obj implements ArrayAccess {
    private $container = array();
    public function __construct() {
        $this->container = array(
            "un"    => 1,
            "deux"  => 2,
            "trois" => 3,
        );
    }

    public function offsetSet($offset, $value) {
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }

    public function offsetExists($offset) {
        return isset($this->container[$offset]);
    }

    public function offsetUnset($offset) {
        unset($this->container[$offset]);
    }

    public function offsetGet($offset) {
        return isset($this->container[$offset]) ? $this->container[$offset] : null;
    }
}

$obj = new obj;

var_dump(isset($obj["deux"]));
var_dump($obj["deux"]);
unset($obj["deux"]);
var_dump(isset($obj["deux"]));
$obj["deux"] = "Une valeur";
var_dump($obj["deux"]);
$obj[] = 'Ajout 1';
$obj[] = 'Ajout 2';
$obj[] = 'Ajout 3';
print_r($obj);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
int(2)
bool(false)
string(10) "Une valeur"
obj Object
(
    [container:obj:private] => Array
        (
            [un] => 1
            [trois] => 3
            [deux] => Une valeur
            [0] => Ajout 1
            [1] => Ajout 2
            [2] => Ajout 3
        )

)

Sommaire

  • ArrayAccess::offsetExists — Indique si une position existe dans un tableau
  • ArrayAccess::offsetGet — Position à lire
  • ArrayAccess::offsetSet — Assigne une valeur à une position donnée
  • ArrayAccess::offsetUnset — Supprime un élément à une position donnée


Indique si une position existe dans un tableau

  • « ArrayAccess
  • ArrayAccess::offsetGet »
  • PHP Manual
  • ArrayAccess
  • Indique si une position existe dans un tableau

ArrayAccess::offsetExists

(PHP 5 >= 5.0.0, PHP 7)

ArrayAccess::offsetExists — Indique si une position existe dans un tableau

Description

abstract public boolean ArrayAccess::offsetExists ( mixed $offset )

Indique si une position existe.

Cette méthode est exécutée lorsque la fonction isset() ou empty() est appliquée à un objet qui implémente l'interface ArrayAccess.

Note:

Lors de l'utilisation de empty(), ArrayAccess::offsetGet() est appelé et vérifie si la valeur est vide, uniquement si ArrayAccess::offsetExists() retourne TRUE.

Liste de paramètres

offset

Une position à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Note:

La valeur retournée sera transtypée en booléen si une valeur non booléenne est retournée.

Exemples

Exemple #1 Exemple avec ArrayAccess::offsetExists()

<?php
class obj implements arrayaccess {
    public function offsetSet($offset, $value) {
        var_dump(__METHOD__);
    }
    public function offsetExists($var) {
        var_dump(__METHOD__);
        if ($var == "foobar") {
            return true;
        }
        return false;
    }
    public function offsetUnset($var) {
        var_dump(__METHOD__);
    }
    public function offsetGet($var) {
        var_dump(__METHOD__);
        return "value";
    }
}

$obj = new obj;

echo "Exécute obj::offsetExists()\n";
var_dump(isset($obj["foobar"]));

echo "\nExécute obj::offsetExists() et obj::offsetGet()\n";
var_dump(empty($obj["foobar"]));

echo "\nExécute obj::offsetExists(), *et non pas* obj:offsetGet() car il n'y a rien à lire\n";
var_dump(empty($obj["foobaz"]));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Exécute obj::offsetExists()
string(17) "obj::offsetExists"
bool(true)

Exécute obj::offsetExists() et obj::offsetGet()
string(17) "obj::offsetExists"
string(14) "obj::offsetGet"
bool(false)

Exécute obj::offsetExists(), *et non pas* obj:offsetGet() car il n'y a rien à lire
string(17) "obj::offsetExists"
bool(true)


Position à lire

  • « ArrayAccess::offsetExists
  • ArrayAccess::offsetSet »
  • PHP Manual
  • ArrayAccess
  • Position à lire

ArrayAccess::offsetGet

(PHP 5 >= 5.0.0, PHP 7)

ArrayAccess::offsetGet — Position à lire

Description

abstract public mixed ArrayAccess::offsetGet ( mixed $offset )

Retourne la valeur à la position donnée.

Cette méthode est exécutée lorsque l'on vérifie si une position est empty().

Liste de paramètres

offset

La position à lire.

Notes

Note:

Depuis PHP 5.3.4, la vérification du prototype a été supprimée et il devient possible de retourner par référence. Ceci permet les modifications indirectes des dimensions de l'objet ArrayAccess.

Une modification directe remplace complètement la valeur dans la dimension du tableau comme dans $obj[6] = 7. Une modification indirecte, par contre, ne change qu'une partie de la dimension ou intervient lors de l'assignation par référence vers une autres variable, comme dans $obj[6][7] = 7 ou encore $var =& $obj[6] suivi de l'incrémentation avec ++ et la décrémentation avec --.

Les modifications directes appellent ArrayAccess::offsetSet() alors que les modifications indirectes appellent ArrayAccess::offsetGet(). Dans ce cas, l'implémentation de ArrayAccess::offsetGet() doit retourner une référence sinon un message E_NOTICE sera levé.

Valeurs de retour

Peut retourner n'importe quel type de valeur.

Voir aussi

  • ArrayAccess::offsetExists() - Indique si une position existe dans un tableau


Assigne une valeur à une position donnée

  • « ArrayAccess::offsetGet
  • ArrayAccess::offsetUnset »
  • PHP Manual
  • ArrayAccess
  • Assigne une valeur à une position donnée

ArrayAccess::offsetSet

(PHP 5 >= 5.0.0, PHP 7)

ArrayAccess::offsetSet — Assigne une valeur à une position donnée

Description

abstract public void ArrayAccess::offsetSet ( mixed $offset , mixed $value )

Assigne une valeur à une position donnée.

Liste de paramètres

offset

La position à laquelle assigner une valeur.

value

La valeur à assigner.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

Le paramètre offset sera définit à NULL si une autre valeur n'est pas disponible, comme dans l'exemple suivant :

<?php
$arrayaccess[] = "première valeur";
$arrayaccess[] = "seconde valeur";
print_r($arrayaccess);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => première valeur
    [1] => seconde valeur
)

Note:

Cette fonction n'est pas appelée dans les assignations par référence et lors de changements de dimensions indirects (indirects dans le sens d'un changement d'une sous-dimension ou lors de l'assignation par référence à une autre variable). A la place, ArrayAccess::offsetGet() est appelée. Cette opération ne fonctionnera que si cette méthode retourne une référence, ceci n'étant possible que depuis PHP 5.3.4.


Supprime un élément à une position donnée

  • « ArrayAccess::offsetSet
  • Serializable »
  • PHP Manual
  • ArrayAccess
  • Supprime un élément à une position donnée

ArrayAccess::offsetUnset

(PHP 5 >= 5.0.0, PHP 7)

ArrayAccess::offsetUnset — Supprime un élément à une position donnée

Description

abstract public void ArrayAccess::offsetUnset ( mixed $offset )

Supprime un élément à une position donnée.

Note:

Cette méthode ne sera pas appelée lors du transtypage en (unset).

Liste de paramètres

offset

La position à supprimer.

Valeurs de retour

Aucune valeur n'est retournée.


L'interface Serializable

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Interface permettant de personnaliser la linéarisation.

Les classes implémentant cette interface ne supportent plus __sleep() et __wakeup(). La méthode de linéarisation est appelée chaque fois qu'une instance doit être linéarisée. Elle n'appelle pas la méthode __destruct() et n'a aucun effet sur le contenu de cette méthode. Lorsque les données sont linéarisées, la classe est connue et la méthode unserialize() appropriée est appelée comme constructeur au lieu d'appeler __construct(). Si vous devez appeler le constructeur standard, vous pouvez le faire dans la méthode.

Sommaire de l'Interface

Serializable {
/* Méthodes */
abstract public string serialize ( void )
abstract public void unserialize ( string $serialized )
}

Exemple #1 Exemple simple

<?php
class obj implements Serializable {
    private $data;
    public function __construct() {
        $this->data = "Mes données privées";
    }
    public function serialize() {
        return serialize($this->data);
    }
    public function unserialize($data) {
        $this->data = unserialize($data);
    }
    public function getData() {
        return $this->data;
    }
}

$obj = new obj;
$ser = serialize($obj);

var_dump($ser);

$newobj = unserialize($ser);

var_dump($newobj->getData());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(38) "C:3:"obj":23:{s:19:"Mes données privées";}"
string(19) "Mes données privées"

Sommaire

  • Serializable::serialize — Représentation linéaire de l'objet
  • Serializable::unserialize — Construit un objet


Représentation linéaire de l'objet

  • « Serializable
  • Serializable::unserialize »
  • PHP Manual
  • Serializable
  • Représentation linéaire de l'objet

Serializable::serialize

(PHP 5 >= 5.1.0, PHP 7)

Serializable::serialize — Représentation linéaire de l'objet

Description

abstract public string Serializable::serialize ( void )

Retourne la représentation en chaîne de caractères de l'objet.

Note:

Cette méthode se comporte comme un destructeur de l'objet. La méthode __destruct() ne sera pas appelée après cette méthode.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation de l'objet en chaîne de caractères, ou bien NULL.

Erreurs / Exceptions

Émet une Exception si un autre type que chaîne de caractères ou NULL est retourné.

Voir aussi

  • __sleep()


Construit un objet

  • « Serializable::serialize
  • Closure »
  • PHP Manual
  • Serializable
  • Construit un objet

Serializable::unserialize

(PHP 5 >= 5.1.0, PHP 7)

Serializable::unserialize — Construit un objet

Description

abstract public void Serializable::unserialize ( string $serialized )

Appelé lors de la délinéarisation de l'objet.

Note:

Cette méthode se comporte comme un constructeur d'objet. La méthode __construct() ne sera pas appelée après cette méthode.

Liste de paramètres

serialized

La représentation en chaîne de l'objet.

Valeurs de retour

La valeur de retour est ignorée.

Voir aussi

  • __wakeup()


La classe Closure

(PHP 5 >= 5.3.0, PHP 7)

Introduction

Classe utilisée pour représenter les fonctions anonymes.

Les fonctions anonymes, implémentées depuis PHP 5.3, sont portées par des objets de ce type. Au départ il s'agissait d'un détail d'implémentation, mais maintenant cette classe prend du sens. Depuis PHP 5.4, cette classe possède des méthodes qui permettent de prendre le contrôle sur la fonction après sa création.

En plus des méthodes précisées ici, cette classe possède aussi une méthode __invoke. Ceci pour des raisons de logique avec l'implémentation de la méthode magique d'appel.

Synopsis de la classe

Closure {
/* Méthodes */
__construct ( void )
public static Closure bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] )
public Closure bindTo ( object $newthis [, mixed $newscope = "static" ] )
public mixed call ( object $newthis [, mixed $... ] )
}

Sommaire

  • Closure::__construct — Constructeur empêchant l'instanciation
  • Closure::bind — Duplique une fermeture avec un nouvel objet lié et un nouveau contexte de classe.
  • Closure::bindTo — Duplique la fermeture avec un nouvel objet lié et un nouveau contexte de classe.
  • Closure::call — Binds and calls the closure


Constructeur empêchant l'instanciation

  • « Closure
  • Closure::bind »
  • PHP Manual
  • Closure
  • Constructeur empêchant l'instanciation

Closure::__construct

(PHP 5 >= 5.3.0, PHP 7)

Closure::__construct — Constructeur empêchant l'instanciation

Description

Closure::__construct ( void )

Cette méthode n'existe que pour interdire l'instanciation directe de la classe Closure. Des objets d'une telle classe sont crées au moyen des fonctions anonymes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Pas de retour. Elle emet par contre une erreur de type E_RECOVERABLE_ERROR.

Voir aussi

  • Fonctions anonymes


Duplique une fermeture avec un nouvel objet lié et un nouveau contexte de classe.

  • « Closure::__construct
  • Closure::bindTo »
  • PHP Manual
  • Closure
  • Duplique une fermeture avec un nouvel objet lié et un nouveau contexte de classe.

Closure::bind

(PHP 5 >= 5.4.0, PHP 7)

Closure::bind — Duplique une fermeture avec un nouvel objet lié et un nouveau contexte de classe.

Description

public static Closure Closure::bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] )

Cette méthode est une version statique de Closure::bindTo(). Voyez sa documentation pour plus d'informations.

Liste de paramètres

closure

La fonction anonyme à lier.

newthis

L'objet auquel lier la fonction anonyme ou NULL pour délier

newscope

Le contexte de classe à associer à la fermeture, ou 'static' pour conserver le contexte actuel. Si un objet est utilisé, son type sera utilisé. Ceci détermine les accès protégés et privés de l'objet lié.

Valeurs de retour

Retourne un nouvel objet Closure ou FALSE si une erreur survient

Exemples

Exemple #1 Exemple Closure::bind()

<?php
class A {
    private static $sfoo = 1;
    private $ifoo = 2;
}
$cl1 = static function() {
    return A::$sfoo;
};
$cl2 = function() {
    return $this->ifoo;
};

$bcl1 = Closure::bind($cl1, null, 'A');
$bcl2 = Closure::bind($cl2, new A(), 'A');
echo $bcl1(), "\n";
echo $bcl2(), "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1
2

Voir aussi

  • fonctions anonymes
  • Closure::bindTo() - Duplique la fermeture avec un nouvel objet lié et un nouveau contexte de classe.


Duplique la fermeture avec un nouvel objet lié et un nouveau contexte de classe.

  • « Closure::bind
  • Closure::call »
  • PHP Manual
  • Closure
  • Duplique la fermeture avec un nouvel objet lié et un nouveau contexte de classe.

Closure::bindTo

(PHP 5 >= 5.4.0, PHP 7)

Closure::bindTo — Duplique la fermeture avec un nouvel objet lié et un nouveau contexte de classe.

Description

public Closure Closure::bindTo ( object $newthis [, mixed $newscope = "static" ] )

Crée et retourne une nouvelle fonction anonyme avec le même corps et les même variables liées que l'originale, mais avec un objet lié qui peut être différent, et un nouveau contexte de classe.

L'objet lié détermine la valeur que $this aura dans le corps de la fonction, et le contexte de classe représente une classe qui détermine à quels membres privés et protégés la fonction anonyme aura accès. Autrement dit, les propriétés qui seront visibles seront les mêmes que si la fonction anonyme était une méthode de la classe passée via le paramètre newscope.

Les fermetures statiques ne peuvent pas avoir d'objet lié (la valeur du paramètre newthis devrait être NULL), mais le contexte de classe peut, lui, être changé.

Cette fonction va vérifier qu'une fermeture non-statique à laquelle on passe un contexte d'objet deviendra liée à cet objet (et ne sera donc plus non-statique), et vice-versa. Dans ce but, les fermetures non-statiques auxquelles on passe un contexte de classe mais NULL comme contexte objet seront rendues statiques, et inversement.

Note:

Si vous voulez seulement dupliquer la fonction anonyme, vous pouvez utiliser le clonage à la place.

Liste de paramètres

newthis

L'objet auquel lier la fonction anonyme, ou NULL pour une fermeture statique.

newscope

Le contexte de classe à associer à la fermeture, ou 'static' pour conserver le contexte actuel. Si un objet est passé, son type sera utilisé. Ceci determine la visibilité des méthodes protégées et privées de l'objet lié.

Valeurs de retour

Retourne la nouvelle fermeture sous la forme d'un objet Closure, ou FALSE si une erreur survient

Exemples

Exemple #1 Exemple Closure::bindTo()

<?php

class A {
    function __construct($val) {
        $this->val = $val;
    }
    function getClosure() {
        //retourne une fermeture liée à cet objet et ce contexte
        return function() { return $this->val; };
    }
}

$ob1 = new A(1);
$ob2 = new A(2);

$cl = $ob1->getClosure();
echo $cl(), "\n";
$cl = $cl->bindTo($ob2);
echo $cl(), "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1
2

Voir aussi

  • Fonctions anonymes
  • Closure::bind() - Duplique une fermeture avec un nouvel objet lié et un nouveau contexte de classe.


Binds and calls the closure

  • « Closure::bindTo
  • Generator »
  • PHP Manual
  • Closure
  • Binds and calls the closure

Closure::call

(PHP 7)

Closure::call — Binds and calls the closure

Description

public mixed Closure::call ( object $newthis [, mixed $... ] )

Temporarily binds the closure to newthis, and calls it with any given parameters.

Liste de paramètres

newthis

The object to bind the closure to for the duration of the call.

...

Zero or more parameters, which will be given as parameters to the closure.

Valeurs de retour

Returns the return value of the closure.

Exemples

Exemple #1 Closure::call() example

<?php
class Value {
    protected $value;

    public function __construct($value) {
        $this->value = $value;
    }

    public function getValue() {
        return $this->value;
    }
}

$three = new Value(3);
$four = new Value(4);

$closure = function ($delta) { var_dump($this->getValue() + $delta); };
$closure->call($three, 4);
$closure->call($four, 4);
?>

L'exemple ci-dessus va afficher :

int(7)
int(8)


La classe Generator

(PHP 5 >= 5.5.0, PHP 7)

Introduction

Les objets Generator sont retournés depuis des générateurs.

Attention

Les objets Generator ne peuvent pas être instanciés via le mot clé new.

Synopsis de la classe

Generator implements Iterator {
/* Méthodes */
public mixed current ( void )
public mixed key ( void )
public void next ( void )
public void rewind ( void )
public mixed send ( mixed $value )
public mixed throw ( Exception $exception )
public bool valid ( void )
public void __wakeup ( void )
}

Sommaire

  • Generator::current — Récupère la valeur cédée
  • Generator::key — Récupère la clé cédée
  • Generator::next — Reprend l'exécution du générateur
  • Generator::rewind — Ré-initialise l'itérateur
  • Generator::send — Envoi une valeur au générateur
  • Generator::throw — Lance une exception dans le générateur
  • Generator::valid — Vérifie si l'itérateur a été fermé
  • Generator::__wakeup — Fonction de rappel de linéarisation


Récupère la valeur cédée

  • « Generator
  • Generator::key »
  • PHP Manual
  • Generator
  • Récupère la valeur cédée

Generator::current

(PHP 5 >= 5.5.0, PHP 7)

Generator::current — Récupère la valeur cédée

Description

public mixed Generator::current ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur cédée.


Récupère la clé cédée

  • « Generator::current
  • Generator::next »
  • PHP Manual
  • Generator
  • Récupère la clé cédée

Generator::key

(PHP 5 >= 5.5.0, PHP 7)

Generator::key — Récupère la clé cédée

Description

public mixed Generator::key ( void )

Récupère la clé de la valeur yielded.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la clé cédée.

Exemples

Exemple #1 Exemple avec Generator::key()

<?php

function Gen()
{
    yield 'key' => 'value';
}

$gen = Gen();

echo "{$gen->key()} => {$gen->current()}";

L'exemple ci-dessus va afficher :

key => value


Reprend l'exécution du générateur

  • « Generator::key
  • Generator::rewind »
  • PHP Manual
  • Generator
  • Reprend l'exécution du générateur

Generator::next

(PHP 5 >= 5.5.0, PHP 7)

Generator::next — Reprend l'exécution du générateur

Description

public void Generator::next ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Ré-initialise l'itérateur

  • « Generator::next
  • Generator::send »
  • PHP Manual
  • Generator
  • Ré-initialise l'itérateur

Generator::rewind

(PHP 5 >= 5.5.0, PHP 7)

Generator::rewind — Ré-initialise l'itérateur

Description

public void Generator::rewind ( void )

Si l'itération a déjà commencée, cette méthode lancera une exception.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Envoi une valeur au générateur

  • « Generator::rewind
  • Generator::throw »
  • PHP Manual
  • Generator
  • Envoi une valeur au générateur

Generator::send

(PHP 5 >= 5.5.0, PHP 7)

Generator::send — Envoi une valeur au générateur

Description

public mixed Generator::send ( mixed $value )

Envoi la valeur fournie au générateur comme résultat de l'expression courante yield, et reprend l'exécution du générateur.

Si le générateur n'est pas une expression yield lorsque cette méthode est appelée, il va d'abord avancer à la première expression yield avant d'envoyer la valeur. Ainsi, il n'est pas nécessaire de démarrer un générateur PHP avec un appel à la méthode Generator::next() (comme c'est le cas en Python).

Liste de paramètres

value

Valeur à envoyer au générateur. Cette valeur sera la valeur retournée de l'expression yield de la position courante du générateur.

Valeurs de retour

Retourne la valeur cédée.

Exemples

Exemple #1 Exemple d'utilisation Generator::send() pour injecter des données

<?php
function printer() {
    while (true) {
        $string = yield;
        echo $string;
    }
}

$printer = printer();
$printer->send('Hello world!');
$printer->send('Bye world!');
?>

L'exemple ci-dessus va afficher :

Hello world!
Bye world!


Lance une exception dans le générateur

  • « Generator::send
  • Generator::valid »
  • PHP Manual
  • Generator
  • Lance une exception dans le générateur

Generator::throw

(PHP 5 >= 5.5.0, PHP 7)

Generator::throw — Lance une exception dans le générateur

Description

public mixed Generator::throw ( Exception $exception )

Lance une exception dans le générateur et reprend son exécution. Le comportement sera le même que si l'expression yield courante ait été remplacée avec une expression throw $exception.

If the generator is already closed when this method is invoked, the exception will be thrown in the caller's context instead.

Liste de paramètres

exception

Exception à lancer dans le générateur.

Valeurs de retour

Retourne la valeur cédée.

Exemples

Exemple #1 >Lance une exception dans un générateur

<?php
function gen() {
    echo "Foo\n";
    try {
        yield;
    } catch (Exception $e) {
        echo "Exception : {$e->getMessage()}\n";
    }
    echo "Bar\n";
}

$gen = gen();
$gen->rewind();
$gen->throw(new Exception('Test'));
?>

L'exemple ci-dessus va afficher :

Foo
Exception : Test
Bar


Vérifie si l'itérateur a été fermé

  • « Generator::throw
  • Generator::__wakeup »
  • PHP Manual
  • Generator
  • Vérifie si l'itérateur a été fermé

Generator::valid

(PHP 5 >= 5.5.0, PHP 7)

Generator::valid — Vérifie si l'itérateur a été fermé

Description

public bool Generator::valid ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne FALSE si l'itérateur a été fermé. Sinon, retourne TRUE.


Fonction de rappel de linéarisation

  • « Generator::valid
  • Options et paramètres de contexte »
  • PHP Manual
  • Generator
  • Fonction de rappel de linéarisation

Generator::__wakeup

(PHP 5 >= 5.5.0, PHP 7)

Generator::__wakeup — Fonction de rappel de linéarisation

Description

public void Generator::__wakeup ( void )

Lance une exception sachant que les générateur ne peuvent être linéarisés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Options et paramètres de contexte

PHP offre divers options et paramètres de contexte, qui peuvent être utilisés avec tous les systèmes de fichiers et gestionnaires de flux. Le contexte est créé avec la fonction stream_context_create(). Les options sont définies avec la fonction stream_context_set_option() et les paramètres, avec la fonction stream_context_set_params().

Sommaire

  • Options de contexte des sockets — Liste des options de contexte des sockets
  • Options de contexte HTTP — Liste des options de contexte HTTP
  • Options de contexte FTP — Liste des options de contexte FTP
  • Options de contexte SSL — Liste des options de contexte SSL
  • Options de contexte CURL — Liste des options de contexte CURL
  • Les options du contexte Phar — Liste des options du contexte Phar
  • Options de contexte MongoDB — Liste des options de contexte MongoDB
  • Paramètres de contexte — Liste des paramètres de contexte


Liste des options de contexte des sockets

  • « Options et paramètres de contexte
  • Options de contexte HTTP »
  • PHP Manual
  • Options et paramètres de contexte
  • Liste des options de contexte des sockets

Options de contexte des sockets

Options de contexte des sockets — Liste des options de contexte des sockets

Description

Les options de contexte des sockets sont disponibles pour tous les gestionnaires fonctionnant via les sockets, comme tcp, http et ftp.

Options

bindto

Utilisé pour spécifier l'adresse IP (soit IPv4 ou IPv6), et/ou le numéro du port que PHP utilisera pour accéder au réseau. La syntaxe est ip:port pour les adresses IPv4, et [ip]:port pour les adresses IPv6. Le fait de définir l'IP ou le port à 0 permettra au système de choisir lui-même le port et/ou l'IP.

Note:

Vu que FTP crée 2 sockets de connexion lors d'une opération normale, le numéro du port ne peut être spécifié en utilisant cette option.

backlog

Utilisé pour limiter le nombre de connexions actives dans la liste d'attente du socket.

Note:

Ceci n'est applicable qu'à la fonction stream_socket_server().

Historique

Version | Description
5.3.3 | Ajout du paramètre backlog.
5.1.0 | Ajout du paramètre bindto.

Exemples

Exemple #1 Exemple d'utilisation du paramètre bindto

<?php
// Connexion à Internet en utilisant l'IP '192.168.0.100'
$opts = array(
    'socket' => array(
        'bindto' => '192.168.0.100:0',
    ),
);

// Connexion à Internet en utilisant l'IP '192.168.0.100' et le port '7000'
$opts = array(
    'socket' => array(
        'bindto' => '192.168.0.100:7000',
    ),
);

// Connexion à Internet en utilisant l'adresse IPv6 '2001:db8::1'
// et le port '7000'
$opts = array(
    'socket' => array(
        'bindto' => '[2001:db8::1]:7000',
    ),
);

// Connexion à Internet en utilisant le port '7000'
$opts = array(
    'socket' => array(
        'bindto' => '0:7000',
    ),
);

// Création du contexte...
$context = stream_context_create($opts);

// ...et l'utilise pour récupérer les données
echo file_get_contents('http://www.example.com', false, $context);

?>


Liste des options de contexte HTTP

  • « Options de contexte des sockets
  • Options de contexte FTP »
  • PHP Manual
  • Options et paramètres de contexte
  • Liste des options de contexte HTTP

Options de contexte HTTP

Options de contexte HTTP — Liste des options de contexte HTTP

Description

Options de contexte pour les protocoles http:// et https://.

Options

method chaîne de caractères

GET, POST, ou n'importe quelle autre méthode HTTP supportée par le serveur distant.

Par défaut, vaut GET.

header chaîne de caractères

En-têtes supplémentaires à envoyer lors de la requête. Les valeurs de cette option écraseront les autres valeurs (comme User-agent:, Host:, et Authentication:).

user_agent chaîne de caractères

Valeur à envoyer avec l'en-tête User-Agent:. Cette valeur ne doit être utilisée que si l'agent utilisateur n'est pas spécifié dans l'option de contexte header ci-dessus.

Par défaut, la valeur de l'option de configuration user_agent du fichier php.ini sera utilisée.

content chaîne de caractères

Les données supplémentaires à envoyer après les en-têtes. Typiquement utilisées lors des requêtes POST ou PUT.

proxy chaîne de caractères

URI de l'adresse du proxy. (e.g. tcp://proxy.example.com:5100).

request_fulluri booléen

Lorsque défini à TRUE, l'URI entière sera utilisée lors de la construction de la requête. (i.e. GET http://www.example.com/path/to/file.html HTTP/1.0). Bien que ce format de demande ne soit pas standard, certains serveurs de proxy le demandent.

Par défaut, vaut FALSE.

follow_location integer

Suit les redirections Location. À définir à 0 pour désactiver.

Par défaut, vaut 1.

max_redirects integer

Le nombre maximal de redirections à suivre. La valeur 1 ou inférieure signifie qu'aucune redirection ne sera suivie.

Par défaut, vaut 20.

protocol_version nombre décimal

Version du protocole HTTP.

Par défaut, vaut 1.0.

Note:

Dans les versions antérieures à 5.3.0, PHP n'implémente pas le décodage du transfert. Aussi, si la valeur est définie à 1.1, il est de votre responsabilité d'être conforme à 1.1.

timeout nombre décimal

Délai maximal d'attente pour la lecture, sous la forme d'un nombre décimal (e.g. 10.5).

Par défaut, la valeur de l'option de configuration default_socket_timeout du fichier php.ini sera utilisée.

ignore_errors booléen

Récupère le contenu même lors de la réception d'un code d'échec.

Par défaut, vaut FALSE.

Historique

Version | Description
5.3.4 | Ajout du paramètre follow_location.
5.3.0 | Le paramètre protocol_version supporte les transferts chunked lorsqu'on lui assigne la valeur 1.1.
5.2.10 | Ajout du paramètre ignore_errors.
5.2.10 | Le paramètre header peut désormais être un tableau indexé numériquement.
5.2.1 | Ajout du paramètre timeout.
5.1.0 | Ajout de la possibilité d'utiliser des proxy HTTPS.
5.1.0 | Ajout du paramètre max_redirects.
5.1.0 | Ajout du paramètre protocol_version.

Exemples

Exemple #1 Récupération d'une page et envoi de données POST

<?php

$postdata = http_build_query(
    array(
        'var1' => 'du contenu',
        'var2' => 'doh'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

?>

Exemple #2 Ignore les redirections mais récupère les en-têtes et le contenu

<?php

$url = "http://www.example.org/header.php";

$opts = array('http' =>
    array(
        'method' => 'GET',
        'max_redirects' => '0',
        'ignore_errors' => '1'
    )
);

$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);

// informations sur les en-têtes et métadonnées du flux
var_dump(stream_get_meta_data($stream));

// données actuelles de $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>

Notes

Note: Options de contexte du flux sous-jacent
Des options de contexte supplémentaires peuvent être supportées par le transport sous-jacent. Pour les flux http://, référez-vous aux options de contexte du transport tcp://. Pour les flux https://, référez-vous aux options de contexte du transport ssl://.

Note: Ligne de statut HTTP
Lorsque ce gestionnaire de flux suit une redirection, wrapper_data, retourné par la fonction stream_get_meta_data() ne doit pas contenir obligatoirement la ligne de statut HTTP qui s'applique à des données de contenu à l'index 0.

array (
  'wrapper_data' =>
  array (
    0 => 'HTTP/1.0 301 Moved Permantenly',
    1 => 'Cache-Control: no-cache',
    2 => 'Connection: close',
    3 => 'Location: http://example.com/foo.jpg',
    4 => 'HTTP/1.1 200 OK',
    ...
La première requête retourne une 301 (redirection permanente), ainsi, le gestionnaire de flux suit automatiquement la redirection pour récupérer une réponse 200 (index = 4).

Voir aussi

  • http://
  • Options de contexte des sockets
  • Options de contexte SSL


Liste des options de contexte FTP

  • « Options de contexte HTTP
  • Options de contexte SSL »
  • PHP Manual
  • Options et paramètres de contexte
  • Liste des options de contexte FTP

Options de contexte FTP

Options de contexte FTP — Liste des options de contexte FTP

Description

Options de contexte pour les protocoles ftp:// et ftps://.

Options

overwrite booléen

Permet l'écrasement des fichiers existants sur le serveur distant. Ne s'applique qu'en mode écriture.

Par défaut, FALSE.

resume_pos entier

Position dans le fichier à partir de laquelle on commence le transfert. Ne s'applique qu'en mode écriture.

Par défaut, vaut 0 (Début du fichier).

proxy chaîne de caractères

URI de l'adresse du proxy FTP. Ne s'applique qu'aux opérations de lecture de fichiers. Par exemple : tcp://squid.example.com:8000.

Historique

Version | Description
5.1.0 | Ajout du paramètre proxy.
5.0.0 | Ajout des paramètres overwrite et resume_pos.

Notes

Note: Options de contexte du flux sous-jacent
Des options de contexte supplémentaires peuvent être supportées par le transport sous-jacent. Pour les flux ftp://, référez-vous aux options de contexte du transport tcp://. Pour les flux ftps://, référez-vous aux options de contexte du transport ssl://.

Voir aussi

  • ftp://
  • Options de contexte des sockets
  • Options de contexte SSL


Liste des options de contexte SSL

  • « Options de contexte FTP
  • Options de contexte CURL »
  • PHP Manual
  • Options et paramètres de contexte
  • Liste des options de contexte SSL

Options de contexte SSL

Options de contexte SSL — Liste des options de contexte SSL

Description

Options de contexte pour les protocoles ssl:// et tls://.

Options

peer_name string

Nom de paires à utiliser. Si cette valeur n'est pas définie, alors le nom sera deviné en se basant sur le nom d'hôte utilisé lors de l'ouverture du flux.

verify_peer booléen

Nécessite une vérification du certificat SSL utilisé.

Par défaut, vaut TRUE.

verify_peer_name boolean

Nécessite la vérification du nom de paires.

Par défaut, vaut TRUE.

allow_self_signed booléen

Permet les certificats autosignés. Requière le paramètre verify_peer.

Par défaut, vaut FALSE

cafile string

Endroit où se trouve le fichier de l'autorité du certificat sur le système de fichiers local et qui devra être utilisé avec l'option de contexte verify_peer pour identifier le pair distant.

capath string

Si cafile n'est pas spécifié ou si le certificat n'a pas été trouvé, une recherche dans le dossier pointé par capath sera effectuée afin d'y trouver un certificat valide. capath doit être un dossier de certificat valide.

local_cert string

Chemin vers le certificat local, sur le système de fichiers. Ce doit être un fichier encodé PEM qui contient votre certificat et votre clé privée. Il peut, optionnellement, contenir la chaîne de certification de l'émetteur.

passphrase string

La phrase passe avec laquelle votre fichier local_cert a été encodé.

CN_match string

Nom commun attendu. PHP effectuera un nombre limité de recherches sur les jokers. Si le nom commun ne correspond pas à celui-là, la connexion échouera.

Note: Cette option est obsolète en faveur de peer_name, depuis PHP 5.6.0.

verify_depth integer

Échoue si la chaîne de certification est trop profonde.

Par défaut, aucune vérification.

ciphers string

Définit la liste des chiffrements. Le format de la chaîne est décrite sur la page » ciphers(1).

Par défaut, vaut DEFAULT.

capture_peer_cert boolean

Si définit à TRUE, un option de contexte peer_certificate sera créée, contenant le certificat de l'émetteur.

capture_peer_cert_chain boolean

Si définit à TRUE, une option de contexte peer_certificate_chain sera créée, contenant la chaîne de certification.

SNI_enabled boolean

Si vaut TRUE, l'indication sur le nom du serveur sera activée. Le fait d'activer SNI permet d'utiliser plusieurs certificats sur la même adresse IP.

SNI_server_name string

Si définie, alors cette valeur sera utilisée comme nom dans l'indication sur le nom du serveur. Si cette valeur n'est pas définie, alors le nom du serveur sera déduit par rapport au nom de l'hôte utilisé lors de l'ouverture du flux.

Note: Cette option est obsolète en faveur de peer_name, depuis PHP 5.6.0.

disable_compression boolean

Si défini, la compression TLS sera désactivée. Cela peut aider à mitiger le vecteur d'attaque CRIME.

peer_fingerprint string | array

Stop lorsque le certificat digest distant ne correspond pas au hash spécifié.

Lorsqu'une chaîne de caractères est utilisée, la longueur va déterminer l'algorithme de hashage utilisé, soit "md5" (32), soit "sha1" (40).

Lorsqu'un tableau est utilisé, la clé indique le nom de l'algorithme de hashage, et chaque valeur correspondante représente le digest attendu.

Historique

Version | Description
5.6.0 | Ajout des paramètres peer_fingerprint et verify_peer_name. La valeur par défaut de verify_peer change en TRUE.
5.4.13 | Ajout du paramètre disable_compression. Requiert OpenSSL >= 1.0.0.
5.3.2 | Ajout de SNI_enabled et de SNI_server_name.
5.0.0 | Ajout des paramètres capture_peer_cert, capture_peer_chain et ciphers.

Notes

Note: Vu que ssl:// est un protocole sous-jacent pour les gestionnaires https:// et ftps://, toutes les options de contexte appliquées à ssl:// seront également appliquées à https:// et ftps://.

Note: Afin que SNI (Server Name Indication) soit disponible, PHP doit être compilé avec OpenSSL 0.9.8j ou supérieur. Utilisez la constante OPENSSL_TLSEXT_SERVER_NAME pour déterminer si SNI est supporté ou non.

Voir aussi

  • Options de contexte des sockets


Liste des options de contexte CURL

  • « Options de contexte SSL
  • Les options du contexte Phar »
  • PHP Manual
  • Options et paramètres de contexte
  • Liste des options de contexte CURL

Options de contexte CURL

Options de contexte CURL — Liste des options de contexte CURL

Description

Les options de contexte CURL sont disponibles lorsque l'extension CURL a été compilée en utilisant l'option de configuration --with-curlwrappers .

Options

method chaîne de caractères

GET, POST, ou n'importe quelle méthode HTTP supportée par le serveur distant.

Par défaut, vaut GET.

header chaîne de caractères

En-têtes additionnels à envoyer lors de la requête. Les valeurs de cette option écraseront les autres valeurs (comme User-agent:, Host:, et Authentication:).

user_agent chaîne de caractères

Valeur à envoyer avec l'en-tête User-Agent:.

Par défaut, la valeur de la directive user_agent du fichier php.ini sera utilisée.

content chaîne de caractères

Les données additionnelles à envoyer après les en-têtes. Cette option n'est pas utilisée pour les requêtes GET ou HEAD.

proxy chaîne de caractères

URI spécifiant l'adresse du proxy. (e.g. tcp://proxy.exemple.com:5100).

max_redirects integer

Le nombre maximal de redirections à suivre. La valeur 1 ou inférieure signifie qu'il ne faut suivre aucune redirection.

Par défaut, vaut 20.

curl_verify_ssl_host booléen

Vérifie l'hôte.

Par défaut, vaut FALSE

Note:

Cette option est disponible pour les protocoles http et ftp.

curl_verify_ssl_peer booléen

Demande une vérification du certificat SSL utilisé.

Par défaut, vaut FALSE

Note:

Cette option est disponible pour les protocoles http et ftp.

Exemples

Exemple #1 Récupère une page et envoie des données avec la méthode POST

<?php

$postdata = http_build_query(
    array(
        'var1' => 'du contenu',
        'var2' => 'doh'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

?>

Voir aussi

  • Options de contexte des sockets


Liste des options du contexte Phar

  • « Options de contexte CURL
  • Options de contexte MongoDB »
  • PHP Manual
  • Options et paramètres de contexte
  • Liste des options du contexte Phar

Les options du contexte Phar

Les options du contexte Phar — Liste des options du contexte Phar

Description

Les options de contexte pour le gestionnaire phar://.

Options

compress int

Une des constantes de compression Phar.

metadata mixed

Les méta-données Phar. Voir Phar::setMetadata().

Voir aussi

  • phar://
  • Le flux Phar


Liste des options de contexte MongoDB

  • « Les options du contexte Phar
  • Paramètres de contexte »
  • PHP Manual
  • Options et paramètres de contexte
  • Liste des options de contexte MongoDB

Options de contexte MongoDB

Options de contexte MongoDB — Liste des options de contexte MongoDB

Description

Options de contexte pour les transports mongodb://.

Options

log_cmd_insert callable

Une fonction de rappel appelée lors de l'insertion d'un document ; voir log_cmd_insert().

log_cmd_delete callable

Une fonction de rappel appelée lors de la suppression d'un document ; voir log_cmd_delete().

log_cmd_update callable

Une fonction de rappel appelée lors de la mise à jour d'un document ; voir log_cmd_update().

log_write_batch callable

Une fonction de rappel appelée lors de l'exécution d'un lot d'écriture ; voir log_write_batch().

log_reply callable

Une fonction de rappel appelée lors de la lecture d'une réponse de MongoDB ; voir log_reply().

log_getmore callable

Une fonction de rappel appelée lors de la récupération de plus de résultats depuis un curseur MongoDB ; voir log_getmore().

log_killcursor callable

Une fonction de rappel appelée de l'exécution d'un opcode killcursor ; voir log_killcursor().

Historique

Version | Description
pecl/mongo 1.5.0 | Ajout des options de contexte de l'API d'écriture

Voir aussi

  • Options de contexte des sockets
  • Options de contexte SSL


Liste des paramètres de contexte

  • « Options de contexte MongoDB
  • Liste des protocoles et des gestionnaires supportés »
  • PHP Manual
  • Options et paramètres de contexte
  • Liste des paramètres de contexte

Paramètres de contexte

Paramètres de contexte — Liste des paramètres de contexte

Description

Ces paramètres peuvent être définis sur un contexte, en utilisant la fonction stream_context_set_params().

Liste de paramètres

notification callable

Une fonction de rappel (callable), à appeler lorsqu'un événement survient sur le flux.

Voir la fonction stream_notification_callback pour plus de détails.


Liste des protocoles et des gestionnaires supportés

PHP dispose de nombreux gestionnaires pour différents types de protocoles de style URL, à utiliser avec les fonctions de manipulation de fichiers telles que fopen(), copy(), file_exists() et filesize(). En plus de ces gestionnaires, vous pouvez écrire vos gestionnaires personnalisés et les enregistrer avec la fonction stream_wrapper_register().

Note: La syntaxe d'URL utilisée pour décrire un gestionnaire est exclusivement de la forme scheme://.... Les syntaxes de la forme scheme:/ et scheme: ne sont pas supportées.

Sommaire

  • file:// — Accès au système de fichiers local
  • http:// — Accès aux URLs HTTP(s)
  • ftp:// — Accès aux URLs FTP(s)
  • php:// — Accès aux divers flux I/O
  • zlib:// — Flux de compression
  • data:// — Données (RFC 2397)
  • glob:// — Trouve des noms de fichiers correspondant à un masque donné
  • phar:// — Archive PHP
  • ssh2:// — Shell sécurisé 2
  • rar:// — RAR
  • ogg:// — Flux Audio
  • expect:// — Flux d'interactions de processus


Accès au système de fichiers local

  • « Liste des protocoles et des gestionnaires supportés
  • http:// »
  • PHP Manual
  • Liste des protocoles et des gestionnaires supportés
  • Accès au système de fichiers local

file://

file:// — Accès au système de fichiers local

Description

Filesystem est le gestionnaire par défaut de PHP, et il représente le système de fichiers local. Lorsqu'un chemin relatif est spécifié (un chemin qui ne commence pas par /, \, \\, ou une lettre de lecteur Windows), le chemin sera calculé relativement au répertoire de travail courant. Dans de nombreux cas, c'est le dossier où est enregistré le script, à moins qu'il n'ait été modifié. En utilisant la version CLI, le chemin sera calculé par défaut par rapport au dossier d'appel du script.

Avec certaines fonctions comme fopen() et file_get_contents(), include_path peut éventuellement être analysé pour y trouver les fichiers, si un chemin relatif est fourni.

Utilisation

  • /chemin/vers/fichier.ext
  • chemin/relatif/vers/fichier.ext
  • fichierDansCwd.ext
  • C:/chemin/vers/fichierWindows.ext
  • C:\chemin\vers\fichierWindows.ext
  • \\smbserver\partage\chemin\vers\fichierWindows.ext
  • file:///chemin/vers/fichier.ext

Options

Résumé du gestionnaire
Attribut | Supporté
Restreint par allow_url_fopen | Non
Autorise la lecture | Oui
Autorise l'écriture | Oui
Autorise l'ajout | Oui
Autorise simultanément la lecture et l'écriture | Oui
Support de la fonction stat() | Oui
Support de la fonction unlink() | Oui
Support de la fonction rename() | Oui
Support de la fonction mkdir() | Oui
Support de la fonction rmdir() | Oui

Historique

Version | Description
5.0.0 | Ajout de file://.


Accès aux URLs HTTP(s)

  • « file://
  • ftp:// »
  • PHP Manual
  • Liste des protocoles et des gestionnaires supportés
  • Accès aux URLs HTTP(s)

http://

https://

http:// -- https:// — Accès aux URLs HTTP(s)

Description

Permet des accès, en lecture uniquement, à des fichiers accessibles sur le réseau avec la méthode GET de HTTP 1.0. Un en-tête Host: est envoyé avec la requête, pour gérer les hôtes virtuels basés sur des noms. Si vous avez configuré une version de navigateur avec l'option user_agent dans votre fichier php.ini ou via le contexte de flux, elle sera aussi inclue dans votre requête.

Le flux permet d'accéder au corps (body) de la ressource. Les en-têtes sont stockés dans la variable $http_response_header.

Si vous avez besoin de connaitre l'URL de la ressource depuis laquelle votre document provient (après l'exécution de toutes les redirections), vous devrez analyser la série d'en-têtes retournés par le flux.

La directive from sera utilisée pour l'en-tête From: si elle a été définie, et non écrasée par les Options et paramètres de contexte.

Utilisation

  • http://example.com
  • http://example.com/fichier.php?var1=val1&var2=val2
  • http://user:password@example.com
  • https://example.com
  • https://example.com/fichier.php?var1=val1&var2=val2
  • https://user:password@example.com

Options

Résumé du gestionnaire
Attribut | Supporté
Restreint par allow_url_fopen | Oui
Autorise la lecture | Oui
Autorise l'écriture | Non
Autorise l'ajout | Non
Autorise la lecture et l'écriture simultanément | N/A
Support de la fonction stat() | Non
Support de la fonction unlink() | Non
Support de la fonction rename() | Non
Support de la fonction mkdir() | Non
Support de la fonction rmdir() | Non

Historique

Version | Description
4.3.7 | Détecte les serveurs IIS bogués pour éviter les erreurs "SSL: Fatal Protocol Error".
4.3.0 | Ajout de https://.
4.0.5 | Ajout du support des redirections.

Exemples

Exemple #1 Détecte la dernière URL après des redirections

<?php
$url = 'http://www.example.com/redirecting_page.php';

$fp = fopen($url, 'r');

$meta_data = stream_get_meta_data($fp);
foreach ($meta_data['wrapper_data'] as $response) {

    /* Avons-nous été redirigés ? */
    if (strtolower(substr($response, 0, 10)) == 'location: ') {

        /* mise à jour de $url avec le chemin après redirection */
        $url = substr($response, 10);
    }

}

?>

Notes

Note: HTTPS n'est supporté que si l'extension openssl est active.

Les connexions HTTP sont en lecture seule ; l'écriture de données ou la copie de fichier vers une ressource HTTP ne sont pas supportés.

L'envoi de requêtes POST et PUT, par exemple, peut être effectué à l'aide des contextes HTTP.

Voir aussi

  • Options de contexte HTTP
  • $http_response_header
  • stream_get_meta_data() - Lit les en-têtes et données méta des flux


Accès aux URLs FTP(s)

  • « http://
  • php:// »
  • PHP Manual
  • Liste des protocoles et des gestionnaires supportés
  • Accès aux URLs FTP(s)

ftp://

ftps://

ftp:// -- ftps:// — Accès aux URLs FTP(s)

Description

Permet l'accès en lecture aux fichiers existants, et la création de fichiers, via FTP. Si le serveur ne supporte pas FTP en mode passif, la connexion échouera.

Vous pouvez ouvrir des fichiers en lecture ou en écriture, mais pas les deux en même temps. Si le fichier distant existe déjà sur le serveur ftp et que vous tentez de l'ouvrir en écriture alors que vous n'avez pas spécifié l'option overwrite dans le contexte, la connexion échouera. Si vous devez réécrire des fichiers existants en utilisant ftp, spécifiez l'option overwrite dans le contexte et ouvrez le fichier en écriture. Alternativement, vous pouvez utiliser l'extension FTP.

Si vous avez défini la directive from dans le fichier php.ini, alors cette valeur sera envoyée en tant que mot de passe pour les accès FTP anonymes.

Utilisation

  • ftp://example.com/pub/fichier.txt
  • ftp://user:password@example.com/pub/fichier.txt
  • ftps://example.com/pub/fichier.txt
  • ftps://user:password@example.com/pub/fichier.txt

Options

Résumé du gestionnaire
Attribut | PHP 4 | PHP 5
Restreint par allow_url_fopen | Oui | Oui
Autorise la lecture | Oui | Oui
Autorise l'écriture | Oui (nouveaux fichiers uniquement) | Oui (nouveaux fichiers/fichiers existants avec le paramètre overwrite)
Autorise l'ajout | Non | Oui
Autorise la lecture et l'écriture simultanément | Non | Non
Support de la fonction stat() | Non | Depuis PHP 5.0.0 : filesize(), filetype(), file_exists(), is_file(), et is_dir() uniquement. Depuis PHP 5.1.0 : filemtime().
Support de la fonction unlink() | Non | Oui
Support de la fonction rename() | Non | Oui
Support de la fonction mkdir() | Non | Oui
Support de la fonction rmdir() | Non | Oui

Historique

Version | Description
4.3.0 | Ajout de ftps://.

Notes

Note:

FTPS n'est supporté que lorsque l'extension openssl est active.

Si le serveur ne supporte pas SSL, alors la connexion passera automatiquement en connexion ftp non chiffrée.

Note: L'ajout
Depuis PHP 5.0.0, l'ajout d'informations à un fichiers est possible avec le gestionnaire d'URL ftp://. Avec les versions précédentes, tenter d'ajouter des données à un fichier via ftp:// entrainait un échec.

Voir aussi

  • Options de contexte FTP


Accès aux divers flux I/O

  • « ftp://
  • zlib:// »
  • PHP Manual
  • Liste des protocoles et des gestionnaires supportés
  • Accès aux divers flux I/O

php://

php:// — Accès aux divers flux I/O

Description

PHP fournit un nombre important de flux I/O qui permettent d'accéder aux flux d'entrée et de sortie de PHP lui-même, aux descripteurs de fichiers de l'entrée standard et des sorties standard et d'erreurs, à des flux représentant des fichiers temporaires en mémoire vive ou sur le disque, ainsi qu'à des filtres qui peuvent manipuler d'autres ressources de fichiers pendant la lecture ou l'écriture.

php://stdin, php://stdout et php://stderr

php://stdin, php://stdout et php://stderr permettent des accès directs aux flux d'entrée ou de sortie correspondant du processus PHP. Le flux fait référence à une copie du descripteur de fichier, ce qui signifie que si vous ouvrez php://stdin et le fermez plus tard, vous ne fermez que votre copie du descripteur ; le flux réellement référencé par STDIN n'est pas affecté. Notez que PHP avait un comportement relativement bogué à ce sujet jusqu'à la version PHP 5.2.1. Il est recommandé d'utiliser uniquement les constantes STDIN, STDOUT et STDERR au lieu d'ouvrir manuellement les flux en utilisant ces gestionnaires.

php://stdin est en lecture seule, alors que php://stdout et php://stderr sont en écriture seule.

php://input

php://input est un flux en lecture seule qui permet de lire des données brutes depuis le corps de la requête. Dans le cas de requêtes POST, il est préférable d'utiliser le flux php://input au lieu de la variable $HTTP_RAW_POST_DATA, puisque ce premier ne dépend d'aucune directive de configuration du php.ini. De plus, dans les cas où $HTTP_RAW_POST_DATA n'est pas peuplé par défaut, ce sera une alternative potentiellement plus intéressante en termes de mémoire que d'activer la directive always_populate_raw_post_data. php://input n'est pas disponible avec enctype="multipart/form-data".

Note: Avant PHP 5.6, un flux ouvert avec php://input ne pouvait être lu qu'une seule fois ; le flux ne supportait pas les opérations de rembobinage. Cependant, suivant l'implémentation du SAPI, il pouvait être possible d'ouvrir un autre flux php://input et de recommencer à lire. Ceci n'était possible que si les données du corps de la requête avaient été sauvegardées. Typiquement, c'était le cas pour les requêtes POST, mais pas pour les autres méthodes comme PUT ou PROPFIND.

php://output

php://output est un flux en écriture seule, qui permet d'écrire dans le mécanisme de buffer de sortie de la même façon que les fonctions print et echo.

php://fd

php://fd permet un accès direct au descripteur de fichier spécifié. Par exemple, php://fd/3 correspond au descripteur de fichier numéro 3.

php://memory et php://temp

php://memory et php://temp sont des flux en lecture/écriture qui permettent de stocker des données temporaires dans un gestionnaire de fichiers. La seule différence entre ces deux flux est que php://memory stockera toujours ses données en mémoire, alors que php://temp utilisera un fichier temporaire une fois que la quantité de données enregistrées aura dépassé une limite prédéfinie (par défaut, 2 Mo). L'emplacement de ce fichier temporaire est déterminé de la même manière que pour la fonction sys_get_temp_dir().

La limite mémoire de php://temp peut être contrôlée en ajoutant /maxmemory:NN, où NN est la quantité maximale de données à conserver en mémoire avant d'utiliser un fichier temporaire, en octets.

php://filter

php://filter est une sorte de gestionnaire prévu pour permettre l'application de filtres sur un flux au moment de son ouverture. Ceci est très pratique avec des fonctions sur des fichiers toutes-en-un comme les fonctions readfile(), file() et file_get_contents(), où il n'existe pas d'autre mécanisme permettant d'appliquer un filtre au flux avant que le contenu ne soit lu.

La cible de php://filter prend les paramètres suivants sous la forme de composantes de son chemin. Plusieurs filtres chaînés peuvent être spécifiés en un seul chemin. Reportez-vous aux exemples pour une utilisation correcte de ces paramètres.

Paramètres de php://filter
Nom | Description
resource=<flux à filtrer> | Ce paramètre est requis. Il spécifie le flux que vous souhaitez filtrer.
read=<liste des filtres à appliquer à la lecture> | Ce paramètre est optionnel. Un ou plusieurs noms de filtres peuvent être fournis ici, séparés par un caractère pipe (|).
write=<liste des filtres à appliquer à l'écriture> | Ce paramètre est optionnel. Un ou plusieurs noms de filtres peuvent être fournis ici, séparés par un caractère pipe (|).
<liste de filtre à appliquer à la fois lors de la lecture et de l'écriture> | Tous les filtres fournis sans être préfixés par read= ou write= seront appliqués à la fois lors de la lecture et lors de l'écriture.

Options

Résumé du gestionnaire (pour php://filter, reportez-vous au résumé du gestionnaire à filtrer)
Attribut | Supporté
Restreint par allow_url_fopen | Non
Restreint par allow_url_include | php://input, php://stdin, php://memory et php://temp uniquement.
Autorise la lecture | php://stdin, php://input, php://fd, php://memory et php://temp uniquement.
Autorise l'écriture | php://stdout, php://stderr, php://output, php://fd, php://memory et php://temp uniquement.
Autorise l'ajout | php://stdout, php://stderr, php://output, php://fd, php://memory et php://temp uniquement. (Équivalent à de l'écriture)
Autorise à la fois la lecture et l'écriture | php://fd, php://memory et php://temp uniquement.
Support de la fonction stat() | php://memory et php://temp uniquement.
Support de la fonction unlink() | Non
Support de la fonction rename() | Non
Support de la fonction mkdir() | Non
Support de la fonction rmdir() | Non
Support de la fonction stream_select() | php://stdin, php://stdout, php://stderr, php://fd et php://temp uniquement.

Historique

Version | Description
5.6.0 | php://input est maintenant réutilisable.
5.3.6 | php://fd a été ajouté.
5.1.0 | php://memory et php://temp ont été ajoutés.
5.0.0 | php://filter a été ajouté.

Exemples

Exemple #1 php://temp/maxmemory

Ce paramètre optionnel permet de configurer la limite mémoire avant que php://temp ne commence à utiliser un fichier temporaire.

<?php
// Définit la limite à 5 Mo.
$fiveMBs = 5 * 1024 * 1024;
$fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+');

fputs($fp, "hello\n");

// Lit ce que nous venons d'écrire.
rewind($fp);
echo stream_get_contents($fp);
?>

Exemple #2 php://filter/resource=<flux à filtrer>

Ce paramètre doit être placé à la fin de votre spécification de php://filter et doit pointer sur le flux que vous souhaitez filtrer.

<?php
/* Ceci est équivalent à
  readfile("http://www.example.com");
  vu qu'aucun filtre n'est spécifié */

readfile("php://filter/resource=http://www.example.com");
?>

Exemple #3 php://filter/read=<liste de filtres à appliquer lors de la lecture>

Ce paramètre prend un ou plusieurs noms de filtres séparés par un caractère pipe |.

<?php
/* Ceci affichera le contenu de
  www.example.com entièrement en majuscules */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");

/* Ceci fera la même chose que le précédent,
  mais encodera en plus le résultat en ROT13 */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
?>

Exemple #4 php://filter/write=<liste des filtres à appliquer lors de l'écriture>

Ce paramètre prend un ou plusieurs noms de filtres séparés par un caractère pipe |.

<?php
/* Ceci va filtrer la chaîne "Hello World"
  via le filtre rot13, puis écrire le résultat
  dans le fichier example.txt du dossier courant */
file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
?>


Flux de compression

  • « php://
  • data:// »
  • PHP Manual
  • Liste des protocoles et des gestionnaires supportés
  • Flux de compression

zlib://

bzip2://

zip://

zlib:// -- bzip2:// -- zip:// — Flux de compression

Description

zlib: PHP 4.0.4 - PHP 4.2.3 (systèmes avec fopencookie uniquement)

compress.zlib:// et compress.bzip2:// PHP 4.3.0 et suivant

zlib: fonctionne comme gzopen(), hormis le fait que le flux peut être utilisé directement avec fread() et les autres fonctions de système de fichiers. Cette notation est obsolète depuis PHP 4.3.0 à cause d'ambiguïtés dues aux noms de fichiers contenant des deux points ':'. Utilisez plutôt compress.zlib://.

compress.zlib:// et compress.bzip2:// sont respectivement équivalents à gzopen() et bzopen(), et ils fonctionnent même sur les systèmes qui ne supportent pas fopencookie.

L'extension ZIP fournit le gestionnaire zip:.

Utilisation

  • compress.zlib://file.gz
  • compress.bzip2://file.bz2
  • zip://archive.zip#dir/file.txt

Options

Résumé des gestionnaires
Attribut | Supporté
Limité par allow_url_fopen | Non
Autorise la lecture | Oui
Autorise l'écriture | Oui (sauf zip://)
Autorise l'ajout | Oui (sauf zip://)
Autorise la lecture et l'écriture simultanément | Non
Support de la fonction stat() | Non, utilisez le gestionnaire file:// pour obtenir des informations sur les fichiers compressés.
Support de la fonction unlink() | Non, utilisez le gestionnaire file:// pour obtenir des informations sur les fichiers compressés.
Support de la fonction rename() | Non
Support de la fonction mkdir() | Non
Support de la fonction rmdir() | Non


Données (RFC 2397)

  • « zlib://
  • glob:// »
  • PHP Manual
  • Liste des protocoles et des gestionnaires supportés
  • Données (RFC 2397)

data://

data:// — Données (RFC 2397)

Description

Le gestionnaire de flux data: (» RFC 2397) est disponible depuis PHP 5.2.0.

Utilisation

  • data://text/plain;base64,

Options

Résumé du gestionnaire
Attribut | Supporté
Restreint par allow_url_fopen | Non
Restreint par allow_url_include | Oui
Autorise la lecture | Oui
Autorise l'écriture | Non
Autorise l'ajout | Non
Autorise la lecture et l'écriture simultanément | Non
Support de la fonction stat() | Non
Support de la fonction unlink() | Non
Support de la fonction rename() | Non
Support de la fonction mkdir() | Non
Support de la fonction rmdir() | Non

Exemples

Exemple #1 Affichage d'un contenu data://

<?php
// Affiche "I love PHP"
echo file_get_contents('data://text/plain;base64,SSBsb3ZlIFBIUAo=');
?>

Exemple #2 Récupération du type de média

<?php
$fp   = fopen('data://text/plain;base64,', 'r');
$meta = stream_get_meta_data($fp);

// Affiche "text/plain"
echo $meta['mediatype'];
?>


Trouve des noms de fichiers correspondant à un masque donné

  • « data://
  • phar:// »
  • PHP Manual
  • Liste des protocoles et des gestionnaires supportés
  • Trouve des noms de fichiers correspondant à un masque donné

glob://

glob:// — Trouve des noms de fichiers correspondant à un masque donné

Description

Le gestionnaire de flux glob: est disponible depuis PHP 5.3.0.

Utilisation

  • glob://

Options

Résumé du gestionnaire
Attribut | Supporté
Restreint par allow_url_fopen | Non
Restreint par allow_url_include | Non
Autorise la lecture | Non
Autorise l'écriture | Non
Autorise l'ajout | Non
Autorise la lecture et l'écriture simultanément | Non
Support de la fonction stat() | Non
Support de la fonction unlink() | Non
Support de la fonction rename() | Non
Support de la fonction mkdir() | Non
Support de la fonction rmdir() | Non

Exemples

Exemple #1 Utilisation simple

<?php
// Boucle sur tous les fichiers *.php du dossier ext/spl/examples/ et
// affiche le nom du fichier ainsi que sa taille
$it = new DirectoryIterator("glob://ext/spl/examples/*.php");
foreach($it as $f) {
    printf("%s: %.1FK\n", $f->getFilename(), $f->getSize()/1024);
}
?>
tree.php: 1.0K
findregex.php: 0.6K
findfile.php: 0.7K
dba_dump.php: 0.9K
nocvsdir.php: 1.1K
phar_from_dir.php: 1.0K
ini_groups.php: 0.9K
directorytree.php: 0.9K
dba_array.php: 1.1K
class_tree.php: 1.8K


Archive PHP

  • « glob://
  • ssh2:// »
  • PHP Manual
  • Liste des protocoles et des gestionnaires supportés
  • Archive PHP

phar://

phar:// — Archive PHP

Description

Le gestionnaire de flux phar:// est disponible depuis PHP 5.3.0. Voyez gestionnaire de flux Phar pour une description détaillée.

Utilisation

  • phar://

Options

Résumé du gestionnaire
Attribut | Supporté
Restreint par allow_url_fopen | Non
Restreint par allow_url_include | Non
Autorise la lecture | Oui
Autorise l'écriture | Oui
Autorise l'ajout | Non
Autorise la lecture et l'écriture simultanément | Oui
Support de la fonction stat() | Oui
Support de la fonction unlink() | Oui
Support de la fonction rename() | Oui
Support de la fonction mkdir() | Oui
Support de la fonction rmdir() | Oui

Voir aussi

  • Les options du contexte Phar


Shell sécurisé 2

  • « phar://
  • rar:// »
  • PHP Manual
  • Liste des protocoles et des gestionnaires supportés
  • Shell sécurisé 2

ssh2://

ssh2:// — Shell sécurisé 2

Description

ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// PHP 4.3.0 et suivants (PECL)

Note: Ce gestionnaire n'est pas activé par défaut
Pour utiliser les gestionnaires ssh2.*://, vous devez installer l'extension » SSH2 disponible via » PECL.

En plus d'accepter les identifications traditionnelles via l'URI, le gestionnaire ssh2 réutilisera les connexions ouvertes en passant la ressource de connexion dans la partie hôte de l'URL.

Utilisation

  • ssh2.shell://user:pass@example.com:22/xterm
  • ssh2.exec://user:pass@example.com:22/usr/local/bin/somecmd
  • ssh2.tunnel://user:pass@example.com:22/192.168.0.1:14
  • ssh2.sftp://user:pass@example.com:22/path/to/filename

Options

Résumé du gestionnaire
Attribut | ssh2.shell | ssh2.exec | ssh2.tunnel | ssh2.sftp | ssh2.scp
Restreint par allow_url_fopen | Oui | Oui | Oui | Oui | Oui
Autorise la lecture | Oui | Oui | Oui | Oui | Oui
Autorise l'écriture | Oui | Oui | Oui | Oui | Non
Autorise l'ajout | Non | Non | Non | Oui (lorsque supporté par le serveur) | Non
Autorise la lecture et l'écriture simultanément | Oui | Oui | Oui | Oui | Non
Support de la fonction stat() | Non | Non | Non | Oui | Non
Support de la fonction unlink() | Non | Non | Non | Oui | Non
Support de la fonction rename() | Non | Non | Non | Oui | Non
Support de la fonction mkdir() | Non | Non | Non | Oui | Non
Support de la fonction rmdir() | Non | Non | Non | Oui | Non

Options de contexte
Nom | Utilisation | Défaut
session | ressource ssh2 pré-connectée à réutiliser |
sftp | ressource sftp pré-allouée à réutiliser |
methods | méthodes d'échange de clés, hostkey, cipher, compression, et MAC, à utiliser |
callbacks |  |
username | Nom de l'utilisateur pour la connexion |
password | Mot de passe à utiliser lors d'une identification par mot de passe |
pubkey_file | Nom du fichier contenant la clé publique à utiliser lors de l'identification |
privkey_file | Nom du fichier contenant la clé privée à utiliser lors de l'identification |
env | Tableau associatif de variables d'environnement à définir |
term | Type d'émulation de terminal à demander lors de l'allocation d'un pty |
term_width | Largeur du terminal à demander lors de l'allocation d'un pty |
term_height | Hauteur du terminal à demander lors de l'allocation d'un pty |
term_units | Unités à utiliser avec term_width et term_height | SSH2_TERM_UNIT_CHARS

Exemples

Exemple #1 Ouverture d'un flux depuis une connexion active

<?php
$session = ssh2_connect('example.com', 22);
ssh2_auth_pubkey_file($session, 'username', '/home/username/.ssh/id_rsa.pub',
                                            '/home/username/.ssh/id_rsa', 'secret');
$stream = fopen("ssh2.tunnel://$session/remote.example.com:1234", 'r');
?>

Exemple #2 La variable $session doit rester disponible !

Afin d'utiliser le gestionnaire ssh2.*://$session, vous devez conserver la variable de ressource $session disponible. Le code ci-dessous n'aura pas l'effet escompté :

<?php
$session = ssh2_connect('example.com', 22);
ssh2_auth_pubkey_file($session, 'username', '/home/username/.ssh/id_rsa.pub',
                                            '/home/username/.ssh/id_rsa', 'secret');
$connection_string = "ssh2.sftp://$session/";
unset($session);
$stream = fopen($connection_string . "path/to/file", 'r');
?>

La fonction unset() clôt la session, car la variable $connection_string ne contient pas de référence à la variable $session, mais uniquement une chaîne dérivée. Ceci survient également lorsque la fonction unset() est implicite, lors d'une sortie du scope (comme dans une fonction).


RAR

  • « ssh2://
  • ogg:// »
  • PHP Manual
  • Liste des protocoles et des gestionnaires supportés
  • RAR

rar://

rar:// — RAR

Description

Ce gestionnaire prend le chemin encodé URL vers l'archive RAR (relatif ou absolu), puis, optionnellement, un astérisque (*), optionnellement suivi d'un signe dièse (#), et, toujours optionnellement, un nom d'entrée encodé URL, tel que stocké dans l'archive. Le fait de spécifier un nom d'entrée nécessite la présence du signe dièse ; la présence d'un slash au début du nom de l'entrée est optionnelle.

Ce gestionnaire peut ouvrir à la fois des fichiers et des dossiers. Lors de l'ouverture de dossiers, l'astérisque force les noms des dossiers à être retournés non encodés. S'il n'est pas spécifié, ils seront retournés sous la forme encodée URL - ceci permet au gestionnaire d'être utilisé correctement avec les fonctionnalités internes comme RecursiveDirectoryIterator en présence de noms de fichiers qui semblent être encodés URL.

Si le signe dièse et le nom de l'entrée ne sont pas inclus, la racine de l'archive sera affichée. Cet affichage est différent des dossiers réguliers dans le sens où le flux résultant ne contiendra pas d'information comme la date et heure de modification, puisque la racine du dossier n'est pas stockée comme une entrée individuelle dans l'archive. L'utilisation de ce gestionnaire avec RecursiveDirectoryIterator nécessite la présence du signe dièse dans l'URL lors de l'accès à la racine, afin de construire correctement les URLs des fils.

Note: Ce gestionnaire n'est pas activé par défaut
Afin d'utiliser le gestionnaire rar://, vous devez installer l'extension » rar disponible depuis » PECL.

rar:// est disponible depuis PECL rar 3.0.0

Utilisation

  • rar://<url encoded archive name>[*][#[<url encoded entry name>]]

Options

Résumé du gestionnaire
Attribut | Supporté
Restreint par allow_url_fopen | Non
Restreint par allow_url_include | Non
Autorise la lecture | Oui
Autorise l'écriture | Non
Autorise l'ajout | Non
Autorise la lecture et l'écriture silmutanément | Non
Support de la fonction stat() | Oui
Support de la fonction unlink() | Non
Support de la fonction rename() | Non
Support de la fonction mkdir() | Non
Support de la fonction rmdir() | Non

Options de contexte
Nom | Utilisation | Défaut
open_password | Le mot de passe utilisé pour crypter les en-têtes de l'archive, s'il y en a. WinRAR cryptera tous les fichiers avec le même mot de passe que les en-têtes lorsque celui-ci est présent, donc, pour les archives avec des en-têtes encryptés, file_password sera ignoré. |
file_password | Le mot de passe utilisé pour crypter un fichier, s'il y en a. Si les en-têtes sont aussi cryptés, cette option sera ignorée et le mot de passe de l'option open_password sera privilégié. La raison pour laquelle il y a 2 options est le souhait de pouvoir couvrir la possibilité de supporter les archives avec différents mots de passe pour les en-têtes et les fichiers. Notez que si l'en-tête de l'archive n'est pas crypté, l'option open_password sera ignorée et cette option doit être utilisée à la place. |
volume_callback | Une fonction de rappel pour déterminer le chemin des volumes manquants. Reportez-vous à la méthode RarArchive::open() pour plus d'informations. |

Exemples

Exemple #1 Parcours d'une archive RAR

<?php

class MyRecDirIt extends RecursiveDirectoryIterator {
    function current() {
        return rawurldecode($this->getSubPathName()) .
            (is_dir(parent::current())?" [DIR]":"");
    }
}

$f = "rar://" . rawurlencode(dirname(__FILE__)) .
    DIRECTORY_SEPARATOR . 'dirs_and_extra_headers.rar#';

$it = new RecursiveTreeIterator(new MyRecDirIt($f));

foreach ($it as $s) {
    echo $s, "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

|-allow_everyone_ni [DIR]
|-file1.txt
|-file2_?.txt
|-with_streams.txt
\-? [DIR]
  |-?\%2Fempty%2E [DIR]
  | \-?\%2Fempty%2E\file7.txt
  |-?\empty [DIR]
  |-?\file3.txt
  |-?\file4_?.txt
  \-?\?_2 [DIR]
    |-?\?_2\file5.txt
    \-?\?_2\file6_?.txt

Exemple #2 Ouverture d'un fichier crypté (en-tête crypté)

<?php
$stream = fopen("rar://" .
    rawurlencode(dirname(__FILE__)) . DIRECTORY_SEPARATOR .
    'encrypted_headers.rar' . '#encfile1.txt', "r", false,
    stream_context_create(
        array(
            'rar' =>
                array(
                    'open_password' => 'samplepassword'
                )
            )
        )
    );
var_dump(stream_get_contents($stream));
/* Les dates de création et de dernier accès sont optionnelles avec WinRAR,
 * ce qui explique que la plupart des fichiers ne les aient pas */
var_dump(fstat($stream));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(26) "Encrypted file 1 contents."
Array
(
    [0] => 0
    [1] => 0
    [2] => 33206
    [3] => 1
    [4] => 0
    [5] => 0
    [6] => 0
    [7] => 26
    [8] => 0
    [9] => 1259550052
    [10] => 0
    [11] => -1
    [12] => -1
    [dev] => 0
    [ino] => 0
    [mode] => 33206
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 26
    [atime] => 0
    [mtime] => 1259550052
    [ctime] => 0
    [blksize] => -1
    [blocks] => -1
)


Flux Audio

  • « rar://
  • expect:// »
  • PHP Manual
  • Liste des protocoles et des gestionnaires supportés
  • Flux Audio

ogg://

ogg:// — Flux Audio

Description

Les fichiers ouverts en lecture avec le gestionnaire ogg:// sont traités comme de l'audio compressé en utilisant le codec OGG/Vorbis. De la même façon, les fichiers ouverts en écriture ou en ajout avec le gestionnaire ogg:// sont écrits comme étant des données audio compressées. La fonction stream_get_meta_data(), lorsqu'elle est utilisée sur un fichier OGG/Vorbis ouvert en lecture, retournera de nombreux détails concernant ce flux, incluant l'en-tête vendor, tous les commentaires comments, le nombre de canaux channels, le taux d'échantillonnage rate ainsi que le taux d'encodage décrit par : bitrate_lower, bitrate_upper, bitrate_nominal et bitrate_window.

ogg:// PHP 4.3.0 et suivant (PECL)

Note: Ce gestionnaire n'est pas activé par défaut
Pour utiliser le gestionnaire ogg://, vous devez installer l'extension » OGG/Vorbis disponible sur » PECL.

Utilisation

  • ogg://soundfile.ogg
  • ogg:///path/to/soundfile.ogg
  • ogg://http://www.example.com/path/to/soundstream.ogg

Options

Résumé du gestionnaire
Attribut | Supporté
Restreint par allow_url_fopen | Non
Permet la lecture | Oui
Permet l'écriture | Oui
Permet l'ajout | Oui
Permet la lecture et l'écriture simultanément | Non
Supporte la fonction stat() | Non
Supporte la fonction unlink() | Non
Supporte la fonction rename() | Non
Supporte la fonction mkdir() | Non
Supporte la fonction rmdir() | Non

Options de contexte
Nom | Utilisation | Défaut | Mode
pcm_mode | L'encodage PCM à appliquer pendant la lecture, parmi un de ceux-ci : OGGVORBIS_PCM_U8, OGGVORBIS_PCM_S8, OGGVORBIS_PCM_U16_BE, OGGVORBIS_PCM_S16_BE, OGGVORBIS_PCM_U16_LE et OGGVORBIS_PCM_S16_LE. (8 vs 16 bit, signé ou non, gros ou petit endian) | OGGVORBIS_PCM_S16_LE | Lecture
rate | Taux d'échantillonnage des données entrantes, exprimé en Hz | 44100 | Écriture/Ajout
bitrate | Lorsque donné sous la forme d'un entier, la vitesse du débit pour encoder (de 16000 à 131072). Lorsque donné sous la forme d'un nombre décimal, la variation de la qualité du débit à utiliser (de -1.0 à 1.0). | 128000 | Écriture/Ajout
channels | Le nombre de canaux audio à encoder, typiquement 1 (Mono) ou 2 (Stéréo). Intervalle pouvant aller jusqu'à 16. | 2 | Écriture/Ajout
comments | Un tableau de valeurs sous forme de chaînes de caractères à encoder dans la piste d'en-tête. |  | Écriture/Ajout

Exemples


Flux d'interactions de processus

  • « ogg://
  • Sécurité »
  • PHP Manual
  • Liste des protocoles et des gestionnaires supportés
  • Flux d'interactions de processus

expect://

expect:// — Flux d'interactions de processus

Description

Les flux ouverts avec le gestionnaire expect:// permettent d'accéder à stdio, stdout, et stderr de processus, via PTY.

Note: Ce gestionnaire n'est pas activé par défaut
Pour pouvoir utiliser le gestionnaire expect://, vous devez installer l'extension » Expect disponible depuis » PECL.

expect:// PHP 4.3.0 et supérieur (PECL)

Utilisation

  • expect://command

Options

Résumé du gestionnaire
Attribut | Supporté
Restreint par la fonction allow_url_fopen | Non
Autorise la lecture | Oui
Autorise l'écriture | Oui
Autorise l'ajout | Oui
Autorise la lecture et l'écriture simultanément | Non
Support de la fonction stat() | Non
Support de la fonction unlink() | Non
Support de la fonction rename() | Non
Support de la fonction mkdir() | Non
Support de la fonction rmdir() | Non

Exemples


Sécurité

  • Introduction
  • Considérations générales
  • Binaires CGI
    • Faiblesses connues
    • Cas 1 : Seuls les fichiers publics sont servis
    • Cas 2 : Utilisation de la directive de compilation cgi.force_redirect
    • Cas 3 : Utilisation du "doc_root" ou du "user_dir"
    • Cas 4 : Exécutable PHP à l'extérieur de l'arborescence du serveur
  • Installé en tant que module Apache
  • Session Security
  • Sécurité des fichiers
    • Issue lors de l'utilisation des octets nuls
  • Sécurité des bases de données
    • Schéma de base de données
    • Connexions au serveur de base de données
    • Modèle de stockage avec chiffrement
    • Injection SQL
  • Rapport d'erreurs
  • Utilisation des variables super-globales
  • Données transmises par les internautes
  • Guillemets magiques
    • Qu'est-ce que les guillemets magiques?
    • Pourquoi utiliser les guillemets magiques?
    • Pourquoi ne pas utiliser les guillemets magiques?
    • Désactiver les guillemets magiques
  • Masquer PHP
  • Être à jour


Introduction

PHP est un langage puissant et l'interpréteur, qu'il soit inclus dans le serveur web en tant que module ou bien compilé en version CGI, est capable d'accéder aux fichiers, d'exécuter des commandes, et d'ouvrir des connexions réseaux. Toutes ces propriétés rendent fragile la sécurité d'un serveur web. PHP a été conçu comme un langage beaucoup plus sécurisé pour écrire des programmes CGI que le Perl ou le langage C, et, avec une sélection rigoureuse des options de compilation et d'exécution et de bonnes habitudes de programmation, il vous permettra d'obtenir un équilibre parfait entre liberté et sécurité.

Étant donné qu'il existe de nombreux moyens d'utiliser le langage PHP, vous trouverez de nombreuses directives de configuration permettant d'en contrôler le comportement. Un grand nombre d'options permet d'utiliser PHP dans de nombreuses situations, mais signifie aussi que certaines combinaisons d'options de compilation et d'exécution peuvent fragiliser la sécurité du serveur. Ce chapitre explique comment les différentes options de configuration peuvent être combinées, tout en conservant une sécurité maximum.

La flexibilité de configuration de PHP est épaulée par la flexibilité du code. PHP peut être utilisé pour construire des applications serveur complètes, avec tous les pouvoirs d'un utilisateur shell, ou il peut être utilisé pour de simples SSI (server side include) avec peu de risque dans un environnement à sécurité renforcée. La création de cet environnement et sa sécurisation sont largement à la charge du développeur PHP.

Ce chapitre commence par quelques conseils généraux de sécurité, explique les différentes options de configuration et les situations dans lesquelles elles peuvent être utilisées en toute sécurité, puis décrit quelques points à considérer lorsque l'on programme pour différents niveaux de sécurité.


Considérations générales

Un système complètement sûr est virtuellement impossible, donc, une approche souvent utilisée par les professionnels de la sécurité est d'équilibrer les risques et l'utilisabilité. Si chaque variable fournie par l'utilisateur demandait deux formes de validation biométrique (comme un scan de la rétine et une empreinte digitale), on obtiendrait un système avec un niveau de sécurité d'un bon niveau. Il faudrait aussi une bonne heure pour remplir un formulaire un peu compliqué, ce qui aurait tendance à encourager les utilisateurs à trouver un moyen de contourner cette sécurité.

La meilleure sécurité est suffisamment discrète pour répondre aux besoins sans ajouter de contraintes insurmontables pour l'utilisateur ni de systèmes trop complexes de programmation. En fait, certaines attaques sur des scripts sont justement des exploitations de systèmes de sécurité trop complexes, qui s'érodent au cours du temps.

Un principe qu'il est bon de retenir : un système est aussi sûr que son maillon le plus faible. Si toutes les transactions sont bien notées, avec l'heure à laquelle elles ont été exécutées, depuis quel emplacement géographique, leur type, etc. mais que l'utilisateur est identifié uniquement par un cookie, la robustesse du lien entre l'utilisateur et les logs de transactions est sévèrement réduite.

Lorsque vous testez votre site, gardez à l'esprit que vous ne pourrez jamais tester toutes les situations, même pour les pages les plus simples. Les valeurs auxquelles vous pouvez vous attendre seront toujours complètement différentes des valeurs entrées par un employé mécontent, un hacker qui a des mois devant lui, ou encore le chat de la maison qui marche sur le clavier. C'est pourquoi il est préférable de regarder le code d'un point de vue logique, pour repérer les points où des données inattendues peuvent être injectées, puis de voir comment elles pourront être modifiées, amplifiées ou réduites.

L'Internet est rempli d'individus qui tentent de se faire une renommée en piratant vos programmes, en bloquant votre site, en envoyant des contenus inappropriés, ou en rendant vos journées "spéciales" d'une manière ou d'une autre. Peu importe que vous ayez un grand portail ou un petit site web, vous pouvez être la cible de tout quidam avec une connexion. En fait, vous êtes une cible potentielle dès que vous êtes connecté vous-même. Certains programmes de piratage ne font pas dans la demi-mesure, et testent systématiquement des millions d'IP, à la recherche de victimes ; essayez de ne pas en devenir une.


Binaires CGI

Sommaire

  • Faiblesses connues
  • Cas 1 : Seuls les fichiers publics sont servis
  • Cas 2 : Utilisation de la directive de compilation cgi.force_redirect
  • Cas 3 : Utilisation du "doc_root" ou du "user_dir"
  • Cas 4 : Exécutable PHP à l'extérieur de l'arborescence du serveur


Faiblesses connues

Utiliser PHP comme un exécutable CGI est une possibilité pour les cas où l'on ne veut pas l'utiliser comme un module du serveur web (comme Apache), ou bien lorsque l'on souhaite l'utiliser en combinaison avec un gestionnaire CGI complémentaire, afin de créer un environnement de script sécurisé (en utilisant des techniques de chroot ou setuid). Une telle décision signifie habituellement que vous installerez votre exécutable dans le répertoire cgi-bin de votre serveur web. » CERT CA-96.11 recommande de ne placer aucun interpréteur à l'intérieur du répertoire cgi-bin. Même si le programme PHP peut être utilisé comme interpréteur indépendant, PHP a été pensé afin de rendre impossible les attaques que ce type d'installation rend habituellement possible :

  • Accès au système de fichiers : http://ma.machine/cgi-bin/php?/etc/passwd Lorsque la requête est passée dans une url, après le point d'interrogation (?), elle est envoyée à l'interpréteur comme une ligne de commande par l'interface CGI. Habituellement, l'interpréteur ouvre le fichier spécifié et l'exécute. Lorsqu'il est invoqué comme exécutable CGI, PHP refuse d'interpréter les arguments de la ligne de commande.
  • Accès à n'importe quel document web sur le serveur : http://my.host/cgi-bin/php/secret/doc.html Le "path information" dans l'url, situé juste après le nom de l'exécutable PHP, /secret/doc.html est utilisé par convention pour spécifier le nom du fichier qui doit être ouvert et interprété par le programe CGI. Habituellement, des directives de configuration du serveur web (pour le serveur Apache : Action) sont utilisées pour rediriger des requêtes vers des documents comme http://my.host/secret/script.php vers l'interpréteur PHP. Dans une telle configuration, le serveur web vérifie d'abord s'il a accès au répertoire /secret, et redirige ensuite la requête vers http://my.host/cgi-bin/php/secret/script.php. Malheureusement, si la requête est faite directement sous cette forme, aucune vérification d'accès n'est faite par le serveur web pour le fichier /secret/script.php, mais uniquement pour le fichier /cgi-bin/php. De cette manière, n'importe quel utilisateur qui peut accéder au fichier /cgi-bin/php peut aussi accéder à n'importe quel document protégé sur le serveur web. Avec PHP, les options d'exécution cgi.force_redirect, doc_root et user_dir peuvent être utilisées pour prévenir ce genre d'attaque, si des restrictions d'accès sont appliquées sur les documents du serveur. Voir ci-dessous pour des explications plus complètes sur les différentes combinaisons.


Cas 1 : Seuls les fichiers publics sont servis

Si votre serveur n'a aucun document dont l'accès n'est pas restreint par un mot de passe ou un système de vérification de l'adresse IP, vous n'avez aucun besoin de ce type de configuration. Si votre serveur web ne permet pas les redirections, ou si votre serveur web n'a aucun besoin de communiquer avec le binaire PHP de manière sécurisée, vous pouvez spécifier l'option de compilation --disable-force-cgi-redirect au script configure. Vous devez tout de même vous assurer que vos scripts PHP ne dépendent pas d'un appel de manière directe comme http://my.host/cgi-bin/php/dir/script.php, ou de manière indirecte, par redirection, http://my.host/dir/script.php.

Avec Apache, les redirections peuvent être configurées en utilisant les directives "AddHandler" et "Action" (voir ci-dessous).


Cas 2 : Utilisation de la directive de compilation cgi.force_redirect

La directive de configuration cgi.force_redirect évite qu'un appel direct à un script PHP avec une URL comme http://my.host/cgi-bin/php/secretdir/script.php ne soit possible. A la place, PHP analysera le fichier uniquement s'il y a eu redirection. Avec PHP antérieur à la version 4.2.0, vous deviez utiliser l'option de compilation --enable-force-cgi-redirect pour faire la même chose.

Habituellement, la redirection est effectuée grâce aux directives suivantes dans la configuration du serveur Apache :

Action php-script /cgi-bin/php
AddHandler php-script .php

Cette option a uniquement été testée avec Apache, et compte sur Apache pour affecter la variable d'environnement non-standard REDIRECT_STATUS pour les requêtes redirigées. Dans le cas où votre serveur web ne supporte aucune manière d'indiquer si la requête a été redirigée ou non, vous ne pourrez pas utiliser cette option de compilation. Vous devrez alors utiliser une des autres méthodes d'exploitation de la version binaire CGI de PHP, comme exposé ci-dessous.


Cas 3 : Utilisation du "doc_root" ou du "user_dir"

Ajouter un contenu interactif, comme des scripts ou des exécutables, dans les répertoires de documents votre serveur web, est parfois considéré comme une pratique non-sécurisée. Si, à cause d'une erreur de configuration, le script n'est pas exécuté mais affiché comme une page HTML classique, il peut en résulter une fuite de propriété intellectuelle ou d'informations liées à la sécurité, comme, typiquement, des mots de passe. En conséquence, un bon nombre d'administrateurs préfèrent mettre en place un répertoire spécial pour les scripts, qui soit uniquement accessible par le biais du binaire CGI de PHP, ce qui signifie que tous les fichiers de ce répertoire seront interprétés et jamais affichés tels quels.

De plus, si vous ne pouvez pas utiliser la méthode qui permet de s'assurer que les requêtes ne sont pas redirigées, comme présentée ci-dessus, il est nécessaire de mettre en place un répertoire de scripts "doc_root" différent du répertoire "document root" de votre serveur web.

Pour indiquer la racine des scripts PHP, vous pouvez utiliser la directive doc_root dans le fichier de configuration, ou vous pouvez affecter la variable d'environnement PHP_DOCUMENT_ROOT. Si cette information est renseignée, le binaire CGI de PHP construira toujours le nom de fichier à ouvrir avec doc_root et le "path information" de la requête, et vous serez donc sûr qu'aucun script ne sera exécuté en dehors du répertoire prédéfini (à l'exception du répertoire désigné par la directive user_dir - voir ci-dessous).

Une autre option possible ici est la directive user_dir. Lorsque cette directive n'est pas spécifiée, seuls les fichiers contenus dans le répertoire doc_root peuvent être ouverts. Ouvrir un fichier possédant l'url http://my.host/~user/doc.php ne correspondra pas à l'ouverture d'un fichier sous le répertoire racine de l'utilisateur, mais à l'ouverture du fichier ~user/doc.php sous le répertoire "doc_root" (oui, un nom de répertoire commençant par un tilde [~]).

Si la directive "user_dir" est activée, par exemple à la valeur public_php, une requête du type http://my.host/~user/doc.php ouvrira un fichier appelé doc.php dans le répertoire appelé public_php sous le répertoire racine de l'utilisateur. Si le répertoire racine de l'utilisateur est /home/user, le fichier exécuté sera /home/user/public_php/doc.php.

user_dir et doc_root sont deux directives totalement indépendantes, et vous pouvez donc contrôler l'accès au répertoire "document root" séparément des répertoires "user directory".


Cas 4 : Exécutable PHP à l'extérieur de l'arborescence du serveur

Une solution extrêmement sécurisée est de mettre l'exécutable PHP à l'extérieur de l'arborescence du serveur web. Dans le répertoire /usr/local/bin, par exemple. Le seul véritable inconvénient de cette méthode est que vous aurez à rajouter une ligne comme celle-ci :

Exemple #1 Ligne d'invocation de PHP

#!/usr/local/bin/php
au début de chaque fichier contenant des balises PHP. Vous devrez aussi rendre les scripts PHP exécutable. En somme, traitez le fichier exactement comme si vous aviez un autre script écrit en Perl ou en sh ou en un autre langage de script qui utilise #! comme mécanisme pour lancer l'interpréteur lui-même.

Pour que l'exécutable PHP prenne en compte les variables d'environnement PATH_INFO et PATH_TRANSLATED correctement avec cette configuration, vous devez utiliser l'option de compilation --enable-discard-path.


Installé en tant que module Apache

Lorsque PHP est utilisé en tant que module Apache, celui-ci hérite des permissions accordées à l'utilisateur faisant tourner Apache (par défaut, l'utilisateur "nobody"). Ceci a plusieurs impacts sur la sécurité et les autorisations. Par exemple, si vous utilisez PHP pour accéder à une base de données, à moins que la base n'ait un système de droits d'accès interne, vous devrez la rendre accessible à l'utilisateur "nobody". Cela signifie qu'un script mal intentionné peut accéder à la base et la modifier, sans identification. Il est même possible qu'un robot accède une page d'administration, et détruise toutes les bases de données. Vous pouvez vous protéger contre cela avec les autorisations Apache, ou définir votre propre modèle d'accès en utilisant LDAP, des fichiers .htaccess, etc. et inclure ce code dans vos scripts PHP.

Souvent, lorsqu'on a établi les droits de l'utilisateur PHP (ici, l'utilisateur Apache) pour minimiser les risques, on s'aperçoit que PHP ne peut plus écrire de fichiers dans les répertoires des utilisateurs. Ou encore, qu'il ne peut plus accéder à, ou modifier, une base de données privée. En somme, les sécurités mises en place empêchent à la fois l'écriture de bons et de mauvais fichiers, en même temps que les bonnes et mauvaises opérations en bases de données.

Arrivé là, une erreur de sécurité fréquente est de donner à l'utilisateur Apache les droits de superadministrateur ("root"), ou d'accroitre les possibilités d'Apache d'une quelconque autre façon.

Donner de telles permissions à l'utilisateur Apache est extrêmement dangereux, et pourrait compromettre tout le système ; en conséquence, l'utilisation de sudo, de chroot, ou de toute autre solution permettant de fonctionner en tant que superadministrateur ("root"), ne devrait pas être envisagée par toute personne qui ne soit pas experte en sécurité.

Il existe des solutions plus simples. En utilisant open_basedir, vous pouvez contrôler et restreindre les dossiers qui seront accessibles par PHP. Vous pouvez aussi créer des aires de restrictions Apache, pour limiter les activités en provenance du web à des fichiers qui ne soient en rapport ni avec des utilisateurs, ni avec le système.


Session Security

It is important keeping HTTP session mangement secure. Session releated security is described in Session Security section of Session module reference.


Sécurité des fichiers

Sommaire

  • Issue lors de l'utilisation des octets nuls

PHP est soumis aux règles de sécurité intrinsèques de la plupart des systèmes serveurs : il respecte notamment les droits des fichiers et des dossiers. Une attention particulière doit être portée aux fichiers ou dossiers qui sont accessibles à tout le monde, afin de s'assurer qu'ils ne divulguent pas d'informations critiques.

Puisque PHP a été fait pour permettre aux utilisateurs d'accéder aux fichiers, il est possible de créer un script PHP qui vous permet de lire des fichiers tels que /etc/password, de modifier les connexions ethernet, lancer des impressions de documents, etc. Cela implique notamment que vous devez vous assurer que les fichiers manipulés par les scripts sont bien ceux qu'il faut.

Considérez le script suivant, où l'utilisateur indique qu'il souhaite effacer un fichier dans son dossier racine. Nous supposons que PHP est utilisé comme interface web pour gérer les fichiers, et que l'utilisateur Apache est autorisé à effacer les fichiers dans le dossier racine des utilisateurs.

Exemple #1 Une erreur de vérification de variable conduit à un gros problème

<?php
// Efface un fichier dans un dossier racine
$username = $_POST['user_submitted_name'];
$userfile = $_POST['user_submitted_filename'];
$homedir  = "/home/$username";

unlink("$homedir/$userfile");

echo "Ce fichier a été effacé !";
?>
Étant donné que le nom de l'utilisateur et le nom du fichier sont fournis, des intrus peuvent envoyer un nom d'utilisateur et un nom de fichier autres que les leurs, et effacer des documents dans les comptes des autres utilisateurs. Dans ce cas, vous souhaiterez utiliser une autre forme d'identification. Considérez ce qui pourrait se passer si les utilisateurs passent ../etc/ et passwd comme arguments! Le code serait exécuté tel que :

Exemple #2 Une attaque du système de fichiers!

<?php
// efface un fichier n'importe où sur le disque dur,
// où l'utilisateur PHP a accès. Si PHP a un accès root :
$username = $_POST['user_submitted_name']; // "../etc"
$userfile = $_POST['user_submitted_filename']; // "passwd"
$homedir  = "/home/$username"; // "/home/../etc"

unlink("$homedir/$userfile"); // "/home/../etc/passwd"

echo "Ce fichier a été effacé !";
?>
Il y a deux mesures primordiales à prendre pour éviter ces manoeuvres :
  • Limiter les permissions de l'utilisateur web PHP.
  • Vérifier toutes les variables liées aux chemins et aux fichiers qui sont fournis.
Voici un script renforcé :

Exemple #3 Une vérification renforcée

<?php
// Efface un fichier sur le disque où l'utilisateur a le droit d'aller
$username = $_SERVER['REMOTE_USER']; // utilisation d'un mécanisme d'identification
$userfile = basename($_POST['user_submitted_filename']);
$homedir  = "/home/$username";

$filepath = "$homedir/$userfile";

if (file_exists($filepath) && unlink($filepath)) {
   $logstring = "$filepath effacé\n";
} else {
   $logstring = "Échec lors de l'effacement de $filepath\n";
}
$fp = fopen("/home/logging/filedelete.log", "a");
fwrite($fp, $logstring);
fclose($fp);

echo htmlentities($logstring, ENT_QUOTES);
?>
Cependant, même cette technique n'est pas sans faille. Si votre système d'identification permet aux utilisateurs de créer leur propre login, et qu'un utilisateur choisi le login ../etc/, le système est de nouveau exposé. Pour cette raison, vous pouvez essayez d'écrire un script renforcé :

Exemple #4 Vérification renforcée de noms de fichiers

<?php
$username     = $_SERVER['REMOTE_USER']; // utilisation d'un mécanisme d'identification
$userfile     = $_POST['user_submitted_filename'];
$homedir      = "/home/$username";

$filepath     = "$homedir/$userfile";

if (!ctype_alnum($username) || !preg_match('/^(?:[a-z0-9_-]|\.(?!\.))+$/iD', $userfile)) {
   die("Mauvais utilisateur/nom de fichier");
}

//etc...
?>

Suivant votre système d'exploitation, vous devrez protéger un grand nombre de fichiers, notamment les entrées de périphériques, (/dev/ ou COM1), les fichiers de configuration (fichiers /etc/ et .ini), les lieux de stockage d'informations (/home/, My Documents), etc. Pour cette raison, il est généralement plus sûr d'établir une politique qui interdit TOUT sauf ce que vous autorisez.


Issue lors de l'utilisation des octets nuls

Comme PHP utilise des fonctions C pour les opérations sous-jacentes, notamment au niveau du système de fichiers, il peut gérer les octets nuls d'une façon inattendue. Sachant que les octets nuls dénotent la fin d'une chaîne de caractères en C, certaines fonctions vont donc considérer ces chaînes jusqu'à la première occurrence d'un octet nul. L'exemple suivant présente un code vulnérable qui montre ce problème :

Exemple #1 Script vulnérable aux octets nuls

<?php
$file = $_GET['file']; // "../../etc/passwd\0"
if (file_exists('/home/wwwrun/'.$file.'.php')) {
   // file_exists retournera true sachant que le fichier /home/wwwrun/../../etc/passwd existe
   include '/home/wwwrun/'.$file.'.php';
   // le fichier /etc/passwd sera inclu
}
?>

Ainsi, toute chaîne utilisée dans des opérations sur le système de fichiers doit toujours être validée proprement. Voici une meilleure solution de l'exemple précédent :

Exemple #2 Validation correcte de l'entrée

<?php
$file = $_GET['file'];

// Whitelisting possible values
switch ($file) {
   case 'main':
   case 'foo':
   case 'bar':
   include '/home/wwwrun/include/'.$file.'.php';
   break;
   default:
   include '/home/wwwrun/include/main.php';
}
?>


Sécurité des bases de données

Sommaire

  • Schéma de base de données
  • Connexions au serveur de base de données
  • Modèle de stockage avec chiffrement
  • Injection SQL

De nos jours, les bases de données sont des composants incontournables des serveurs web et des applications en ligne, qui fournissent du contenu dynamique. Des données secrètes ou critiques peuvent être stockées dans les bases de données : il est donc important de les protéger efficacement.

Pour lire ou stocker des informations, vous devez vous connecter au serveur de bases de données, envoyer une requête valide, lire le résultat et refermer la connexion. De nos jours, le langage le plus courant pour ce type de communication est le langage SQL (Structured Query Language). Voyez comment un pirate peut s'introduire dans une requête SQL.

Comme vous pouvez le réaliser, PHP ne peut pas protéger vos bases de données pour vous. La section suivante vous introduira aux notions de base pour protéger vos bases de données, lors de la programmation de vos scripts PHP.

Gardez bien cette règle simple en tête : la défense se fait par couches. Plus vous ajouterez de tests pour protéger votre base, plus faible sera la probabilité de réussite d'un pirate. Ajoutez à cela un bon schéma de base de données, et vous aurez une application réussie.


Schéma de base de données

La première étape est de créer une base de données, à moins que vous ne souhaitiez utiliser une base de données déjà créée. Lorsque la base de données est créée, un utilisateur propriétaire en est responsable. Généralement, seul le propriétaire et le super utilisateur peuvent intervenir avec les tables de cette base, et il faut que ce dernier donne des droits à tous les intervenants qui auront à travailler sur cette base.

Les applications ne doivent jamais se connecter au serveur de bases de données sous le nom du propriétaire ou de l'administrateur, car ces utilisateurs ont des droits très importants, et pourront exécuter n'importe quelle requête, comme la modification de tables, l'effacement de lignes ou même encore, la destruction de la base.

Vous pouvez créer différents utilisateurs de bases de données pour chaque aspect de votre application, avec des droits limités aux seules actions planifiées. Il faut alors éviter que le même utilisateur dispose des droits de plusieurs cas d'utilisation. Cela permet que si des intrus obtiennent l'accès à la base avec l'un de ces jeux de droits, ils ne puissent pas affecter toute l'application.

Il est recommandé de ne pas implémenter toute la logique fonctionnelle dans l'application web (c'est-à-dire dans vos scripts), mais d'en reporter une partie dans la base en utilisant les déclencheurs, vues et règles. Si le système évolue, les nouvelles versions vous feront réécrire toute la logique et donc tous vos scripts. De plus, l'utilisation de déclencheurs permet de gérer de manière transparente des données, et fournit des indications pour déboguer votre application.


Connexions au serveur de base de données

Il est recommandé d'établir des connexions au serveur avec le protocole SSL, pour chiffrer les échanges clients/serveur, afin d'améliorer la sécurité. Vous pouvez aussi utiliser un client SSH pour chiffrer la connexion entre les clients et le serveur de bases de données. Si l'une de ces deux protections est mise en place, il sera difficile de surveiller votre trafic et de comprendre les informations échangées.


Modèle de stockage avec chiffrement

Les protocoles SSL/SSH protègent les données qui circulent entre le serveur et le client : SSL/SSH ne protège pas les données une fois dans la base. SSL est un protocole en ligne.

Une fois que le pirate a obtenu l'accès direct à votre base de données (en contournant le serveur web), les données sensibles, stockées dans votre base sont accessibles directement, à moins que les données de la base ne soient protégées par la base. Chiffrer les données est une bonne solution pour réduire cette menace, mais très peu de bases de données offrent ce type de chiffrement.

Le moyen le plus simple pour contourner ce problème est de créer votre propre logiciel de chiffrement, et de l'utiliser dans vos scripts PHP. PHP peut vous aider dans cette tâche grâce aux nombreuses extensions dont il dispose, comme Mcrypt et Mhash, qui connaissent un large éventail de méthodes de chiffrement. Le script PHP va chiffrer les données qui seront stockées, et les déchiffrer lorsqu'elles seront relues. Voyez la suite pour des exemples d'utilisation de ce chiffrement.

Hashage

Dans le cas de données vraiment sensibles, si la représentation originale n'est pas nécessaire (pour affichage, ou comparaison), utiliser un hash est une bonne solution. L'exemple classique est le stockage de mots de passe dans les bases de données, après les avoir passés au en hashage de cryptage.

En PHP 5.5 ou supérieur, les fonctions password fournissent une bonne façon de hasher les données sensibles et fonctionnent avec ces hashs. En PHP 5.3.7+, la bibliothèque » password_compat peut également être utilsée.

La fonction password_hash() est utilisée pour hasher une chaîne donnée en utilisant l'algorithme le plus fort actuellement disponible et la fonction password_verify() vérifie si le mot de passe fourni correspond au hash stocké en base de données.

Exemple #1 Hasher un champ mot de passe

<?php

// stockage du hash du mot de passe
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            pg_escape_string($username),
            password_hash($password, PASSWORD_DEFAULT));
$result = pg_query($connection, $query);

// on vérifie si l'utilisateur a soumis le bon mot de passe
$query = sprintf("SELECT pwd FROM users WHERE name='%s';",
            pg_escape_string($username));
$row = pg_fetch_assoc(pg_query($connection, $query));

if ($row && password_verify($password, $row['pwd'])) {
    echo 'Bonjour, ' . htmlspecialchars($username) . '!';
} else {
    echo 'L\'authentification a échoué pour ' . htmlspecialchars($username) . '.';
}

?>

Dans les anciennes versions de PHP, ceci pouvait être réalisé en utilisant la fonction crypt().

Exemple #2 Hasher un mot de passe en utilisant la fonction crypt()s

<?php

// stockage du hash du mot de passe
// $random_chars récupéré en utilisant, i.e. /dev/random
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            pg_escape_string($username),
            pg_escape_string(crypt($password, '$2a$07$' . $random_chars . '$')));
$result = pg_query($connection, $query);

// On vérifie si l'utilisateur a soumis le bon mot de passe
$query = sprintf("SELECT pwd FROM users WHERE name='%s';",
            pg_escape_string($username));
$row = pg_fetch_assoc(pg_query($connection, $query));

if ($row && crypt($password, $row['pwd']) == $row['pwd']) {
    echo 'Bonjour, ' . htmlspecialchars($username) . '!';
} else {
    echo 'L\'authentification a échoué pour ' . htmlspecialchars($username) . '.';
}

?>


Injection SQL

De nombreux développeurs web ne sont pas conscients des possibilités de manipulation des requêtes SQL, et supposent que les requêtes SQL sont des commandes sûres. Cela signifie qu'une requête SQL est capable de contourner les contrôles et vérifications, comme les identifications, et parfois, les requêtes SQL ont accès aux commandes d'administration.

L'injection SQL directe est une technique où un pirate modifie une requête SQL existante pour afficher des données cachées, ou pour écraser des valeurs importantes, ou encore exécuter des commandes dangereuses pour la base. Cela se fait lorsque l'application prend les données envoyées par l'internaute, et l'utilise directement pour construire une requête SQL. Les exemples ci-dessous sont basés sur une histoire vraie, malheureusement.

Avec le manque de vérification des données de l'internaute et la connexion au serveur avec des droits de super utilisateur, le pirate peut créer des utilisateurs, et créer un autre super utilisateur.

Exemple #1 Séparation des résultats en pages, et créer des administrateurs (PostgreSQL et MySQL)

<?php
$offset = $argv[0]; // Attention, aucune validation!
$query  = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
$result = pg_query($conn, $query);
?>
Un utilisateur normal clique sur les boutons 'suivant' et 'précédent', qui sont alors placés dans la variable $offset, encodée dans l'URL. Le script s'attend à ce que la variable $offset soit alors un nombre décimal. Cependant, il est possible de modifier l'URL en ajoutant une nouvelle valeur, au format URL, comme ceci :

Exemple #2 Exemple d'injection SQL

0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--
Si cela arrive, le script va créer un nouveau super utilisateur. Notez que la valeur 0; sert à terminer la requête originale et la terminer correctement.

Note:

C'est une technique répandue que de forcer l'analyseur SQL à ignorer le reste de la requête, en utilisant les symboles -- pour mettre en commentaires.

Un moyen disponible pour accéder aux mots de passe est de contourner la recherche de page. Ce que le pirate doit faire, c'est simplement voir si une variable du formulaire est utilisée dans la requête, et si elle est mal gérée. Ces variables peuvent avoir été configurées dans une page précédente pour être utilisées dans les clauses WHERE, ORDER BY, LIMIT et OFFSET des requêtes SELECT. Si votre base de données supporte les commandes UNION, le pirate peut essayer d'ajouter une requête entière pour lister les mots de passe dans n'importe quelle table. Utiliser la technique des mots de passe chiffrés est fortement recommandé.

Exemple #3 Liste d'articles ... et ajout de mot de passe

<?php
$query  = "SELECT id, name, inserted, size FROM products
           WHERE size = '$size'";
$result = odbc_exec($conn, $query);
?>
La partie statique de la requête, combinée avec une autre requête SELECT, va révéler les mots de passe :

Exemple #4 Révélation des mots de passe

<?php
'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--
?>
Si cette requête, exploitant les ' et -- est affectée à une variable utilisée dans $query, une injection SQL va se produire.

Les commandes UPDATE sont aussi sujettes à des attaques de votre base de données. Ces requêtes peuvent aussi introduire toute une nouvelle requête dans votre commande initiale. Mais en plus, le pirate peut jouer sur la commande SET. Dans ce cas, il doit connaître un peu votre base de données. Cela peut se deviner en examinant les noms de variables dans les formulaires, ou simplement, en testant les cas les plus classiques. Il n'y a pas beaucoup de conventions de noms pour stocker des noms d'utilisateurs et des mots de passe.

Exemple #5 Modifier un mot de passe ... et gain de droits!

<?php
$query= "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
?>
Mais un internaute fourbe peut envoyer une valeur telle que ' or uid like'%admin% dans $uid pour modifier le mot de passe utilisateur, ou simplement, utiliser la variable $pwd avec la valeur hehehe', trusted=100, admin='yes pour obtenir des droits supplémentaires. La requête devient alors :

Exemple #6 Une requête et son injection

<?php
// $uid == ' or uid like '%admin%
$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%';";

// $pwd: hehehe', trusted=100, admin='yes
$query = "UPDATE usertable SET pwd='hehehe', trusted=100, admin='yes' WHERE
...;";

?>

C'est un exemple terrible d'acquisition de droits d'administrateur sur un serveur de base de données.

Exemple #7 Attaque d'un serveur de bases de données (MSSQL Server)

<?php
$query  = "SELECT * FROM products WHERE id LIKE '%$prod%'";
$result = mssql_query($query);
?>
Si le pirate injecte la valeur a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- dans la variable $prod, alors la requête $query devient :

Exemple #8 Attaque d'un serveur de base de données (MSSQL Server) - 2

<?php
$query  = "SELECT * FROM products
           WHERE id LIKE '%a%'
           exec master..xp_cmdshell 'net user test testpass /ADD' --%'";
$result = mssql_query($query);
?>
MSSQL Server exécute les requêtes SQL en lot, y compris la commande d'ajout d'un nouvel utilisateur à la base de données locale. Si cette application fonctionnait en tant que sa et que le service MSSQLSERVER disposait de niveau de droits suffisant, le pirate dispose désormais d'un compte avec accès au serveur.

Note:

Certains des exemples ci-dessus sont spécifiques à certains serveurs de bases de données. Cela n'empêche pas des attaques similaires d'être possibles sur d'autres produits. Votre base de données sera alors vulnérable d'une autre manière.

Un exemple concernant l'injection SQL
Image de » xkcd

Techniques de contournement

Bien qu'il semble évident qu'un pirate doit posséder quelques connaissances de l'architecture de la base de données afin de conduire avec succès une attaque, il est souvent très simple de les obtenir. Par exemple, si la base de données fait partie d'un paquet open source ou disponible publiquement, ces informations sont complètement ouvertes et disponibles. Ces informations peuvent aussi être divulgués pour des codes sources fermés - y compris si ce code est encodé, occulté, ou compilé - aux travers des messages d'erreurs. D'autres méthodes consistent à deviner l'utilisateur de table commune ainsi que des noms des colonnes. Par exemple, un formulaire d'identification qui utilise la table 'users' avec les colonnes de noms 'id', 'username', et 'password'.

Ces attaques sont généralement basées sur l'exploitation de code qui n'est pas écrit de manière sécuritaire. N'ayez aucune confiance dans les données qui proviennent de l'utilisateur, même si cela provient d'un menu déroulant, d'un champ caché ou d'un cookie. Le premier exemple montre comment une requête peut causer un désastre.

  • Ne nous connectez jamais sur une base de données en tant que super utilisateur ou propriétaire de la base. Utilisez toujours un utilisateur adapté, avec des droits très limités.
  • Utilisez des requêtes préparées avec des variables liées. Elles sont disponibles avec PDO, MySQLi ainsi que d'autres bibliotèques.
  • Vérifiez que les données ont bien le type attendu. PHP dispose d'un éventail de fonction de validation large, depuis les plus simples, de la section Variables et la section Caractères (e.g. is_numeric(), ctype_digit() respectivement) aux fonctions avancées de Expression rationnelle Perl.

  • Si l'application attend une entrée numérique, vérifiez vos données avec la fonction ctype_digit(), ou bien modifiez automatiquement le type avec la fonction settype(), ou encore avec sprintf().

    Exemple #9 Une navigation de fiches plus sécuritaire

    <?php
    settype    ($offset, 'integer');
    $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";

    // notez que %d dans la chaîne de format : %s serait inutile
    $query = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;",
                         $offset);
    ?>

  • Si la couche de base de données ne suppose pas les variables liées, alors, mettez entre guillemets toutes les valeurs non numériques qui sont passées à la base de données avec la fonction spécifique à la base de données d'échappement de caractères (e.g. mysql_real_escape_string(), sqlite_escape_string(), etc.). Les fonctions génériques comme addslashes() sont utiles uniquement dans un environnement très spécifique (i.e. MySQL avec un jeu de caractères sur un seul octet avec NO_BACKSLASH_ESCAPES désactivé), aussi, il est préférable de ne pas les utiliser.
  • N'affichez jamais d'informations spécifiques à la base, et notamment des informations concernant le schéma. Voyez aussi la section Rapport d'erreur et le chapitre Gestion des erreurs.
  • Vous pouvez avoir des procédures stockées et des curseurs prédéfinis qui font que les utilisateurs n'ont pas un accès direct aux tables ou vues, mais cette solution a d'autres impacts.

À côté de ces conseils, il est recommandé d'enregistrer vos requêtes, soit dans vos scripts, soit dans la base elle-même, si elle le supporte. Évidemment, cet enregistrement ne sera pas capable d'empêcher une attaque, mais vous permettra de retrouver la requête qui a fauté. L'historique n'est pas très utile par lui-même, mais au niveau des informations qu'il contient. Plus vous avez de détails, mieux c'est.


Rapport d'erreurs

En termes de sécurité, il y a deux conséquences au rapport d'erreur. D'un coté, cela améliore la sécurité, mais d'un autre, cela la réduit aussi.

Une tactique d'attaque standard consiste à faire faire des erreurs au système, et à analyser les types des erreurs qui sont retournées, ainsi que leur contexte. Cela permet à l'attaquant d'obtenir des informations à propos du serveur, en vue de détecter de possibles faiblesses. Par exemple, si un intrus a glané des informations sur une page dépendant de la soumission préalable d'un formulaire, il peut essayer d'écraser les variables par ses propres valeurs :

Exemple #1 Attaque de variables avec une page HTML personnalisée

<form method="post" action="http://www.site.cible.com/?username=badfoo&password=badfoo">
 <input type="hidden" name="username" value="badfoo">
 <input type="hidden" name="password" value="badfoo">
</form>

Les erreurs PHP qui sont normalement retournées peuvent être très pratiques pour un développeur qui essaie de déboguer un script, car elles donnent de précieux renseignements tels que la fonction qui a échouée, depuis quel fichier PHP, et même le numéro de la ligne à laquelle l'erreur s'est produite. Toutes ces informations sont exploitables. Il n'est pas rare que les développeurs PHP utilisent les fonctions show_source(), highlight_string(), ou highlight_file() comme outils de déboguage, mais sur un site en production, cela peut exposer des variables cachées, des syntaxes non vérifiées, ou d'autres informations critiques. Il est particulièrement dangereux d'exécuter du code de sources connues avec des gestionnaires de débogage inclus, ou de travailler avec des techniques de débogage répandues. Si l'attaquant peut déterminer quelle technique générale vous utilisez, il peut tenter une attaque frontale sur une page, en envoyant des chaînes de débogage connues :

Exemple #2 Exploiter des variables classiques de débogage

<form method="post" action="http://www.site.cible.com/?errors=Y&showerrors=1"&debug=1">
 <input type="hidden" name="errors" value="Y">
 <input type="hidden" name="showerrors" value="1">
 <input type="hidden" name="debug" value="1">
</form>

Indépendamment de la méthode de gestion des erreurs, la possibilité de tester un système pour identifier des erreurs revient à fournir à un attaquant plus d'informations sur votre système.

Par exemple, le style même d'une erreur PHP standard indique d'un système fait tourner PHP. Si un attaquant affiche une page .html, et essaye de la tester (pour rechercher des faiblesses connues du système), en lui envoyant des données invalides, il peut déterminer qu'elle a été construite via un script PHP.

Une erreur de fonction peut indiquer si un système supporte une base de données spécifique, ou bien donner des indices quant à la façon dont une page a été conçue ou développée. Cela peut orienter l'intrus vers les ports de cette base de données ou bien vers une attaque liée à cette application. En envoyant des données erronées, par exemple, un pirate peut déterminer l'ordre d'identification dans un script (à partir des numéros de lignes d'erreurs), ou sonder à la recherche de failles qui pourraient être exploitées à différents endroits du script.

Une erreur de fichier, ou une erreur générale de PHP, peut indiquer quelles sont les permissions du serveur web, ainsi que la structure et l'organisation des fichiers. Les gestionnaires d'erreurs utilisateurs peuvent aussi aggraver ce problème, en permettant l'exploitation facile d'informations préalablement "cachées".

Il y a trois solutions majeures à ces problèmes : la première est de scruter toutes les fonctions, et d'essayer de traiter toutes les erreurs. La seconde est de totalement désactiver le rapport d'erreur, dès que le script est en production. La troisième est d'utiliser les fonctions de gestion des erreurs de PHP pour créer vos propres gestionnaires d'erreurs. En fonction de votre politique de sécurité, il se peut que vous arriviez à la conclusion que ces solutions sont toutes les trois applicables à votre situation.

Une méthode pour gagner du temps est d'utiliser la fonction error_reporting(), pour vous aider à sécuriser votre code, et détecter certaines utilisations dangereuses de variables. En testant votre code, avant le déploiement, avec E_ALL, vous pouvez rapidement repérer les variables qui ne sont pas protégées. Une fois que le code est prêt à être déployé, vous devriez soit désactiver complètement le rapport d'erreur en passant 0 à la fonction error_reporting(), soit en désactivant l'affichage des erreurs en utilisant l'option de configuration display_errors de php.ini. Si vous choisissez la seconde solution, vous devriez également définir le chemin vers votre fichier de log en utilisant la directive de configuration error_log, et en activant la directive log_errors.

Exemple #3 Détecter des variables non protégées avec E_ALL

<?php
if ($username) {
  // Non initialisée ou vérifée avant utilisation
  $good_login = 1;
}
if ($good_login == 1) {
  // Si le test ci-dessus échoue, les valeurs n'ont pas été testées
  fpassthru ("/données/très/très/sensibles/index.html");
}
?>


Utilisation des variables super-globales

Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

L'une des évolutions les plus controversées de PHP a été le changement de valeur par défaut de la directive PHP register_globals, qui est passée de On à Off en PHP » 4.2.0. Beaucoup d'applications dépendaient de cette directive, et de nombreux programmeurs ne savaient même pas qu'elle existait, et supposaient que c'était le fonctionnement normal de PHP. Cette page explique comment on peut écrire du code peu sécuritaire en utilisant cette directive. Gardez bien en tête que cette directive, par elle-même, n'est pas un trou de sécurité, mais qu'elle facilite leur création.

Lorsqu'elle est activée, register_globals va injecter vos scripts avec toutes sortes de variables, comme les variables issues des formulaires HTML. Ceci, couplé au fait que PHP ne requiert pas d'initialisation de variable signifie que la programmation de script peu sûr est possible. Ce fut une décision difficile de la communauté PHP, mais finalement, il a été décidé de désactiver par défaut cette variable. Lorsqu'elle est active, le programmeur ne sait pas exactement d'où provient le contenu de la variable, et ne peut que faire des suppositions. Les variables internes définies dans le script sont mélangées avec les données envoyées par les utilisateurs, et en désactivant register_globals, on empêche cela. Voyons avec un exemple le fonctionnement de register_globals :

Exemple #1 Exemple de mauvaise utilisation de register_globals

<?php
// $authorized = true uniquement si l'utilisateur est identifié
if (authenticated_user()) {
    $authorized = true;
}

// Comme nous n'avons pas initialisé $authorized avec false, cette dernière
// peut être définie via register_globals, comme avec l'URL GET auth.php?authorized=1
// Tout le monde peut facilement être reconnu comme identifié!
if ($authorized) {
    include "/donnees/critiques/data.php";
}
?>

Lorsque register_globals est activé, la logique ci-dessus peut être prise en défaut. Lorsque register_globals est désactivée $authorized ne peut plus être assignée via la requête, et le script est maintenant sûr, même s'il reste recommandé de toujours initialiser ses variables. Par exemple, dans notre programme ci-dessus, nous pourrions ajouter $authorized = false. En faisant cela, le script peut fonctionner avec register_globals on ou off, car les utilisateurs seront par défaut non-identifiés.

Un autre exemple implique les sessions. Lorsque register_globals est activé, on peut aussi utiliser $username dans notre exemple, mais, encore une fois, vous devez garder en tête que $username peut aussi provenir d'autres biais, tels que GET (via l'URL).

Exemple #2 Exemple d'abus de sessions avec register_globals on ou off

<?php
// Nous ne savons pas d'où provient $username mais nous savons que
// $_SESSION contient les données de session
if (isset($_SESSION['username'])) {

    echo "Bonjour <strong>{$_SESSION['username']}</strong>";

} else {

    echo "Bonjour <strong>visiteur</strong><br />";
    echo "Voulez-vous vous identifier?";

}
?>

Il est même possible de prendre des mesures préventives, pour être alerté lorsqu'une tentative d'usurpation est faite. Si vous savez à l'avance de quelle variable le nom d'utilisateur doit provenir, vous pouvez vérifier si les données que vous manipulez sont d'une origine contrôlée. Même si cela ne garantit pas que les données ne puissent être falsifiées, cela complique la tache du faussaire. Si vous ne vous préoccupez pas de l'origine des données, vous pouvez utiliser la variable $_REQUEST qui contient un mélange de données GET, POST et COOKIE. Voyez aussi la section du manuel concernant les variables de sources externes à PHP.

Exemple #3 Détection simple de fausses variables

<?php
if (isset($_COOKIE['MAGIC_COOKIE'])) {

    // MAGIC_COOKIE provient d'un cookie.
    // Assurez-vous de valider les données du cookie!

} elseif (isset($_GET['MAGIC_COOKIE']) || isset($_POST['MAGIC_COOKIE'])) {

   mail("admin@example.com", "Tentative possible d'attaque", $_SERVER['REMOTE_ADDR']);
   echo "Alerte sécurité, l'admin a été prévenu.";
   exit;

} else {

   // MAGIC_COOKIE ne provient pas de REQUEST

}
?>

Bien sur, désactiver l'option register_globals ne signifie pas que votre code est sécuritaire. Pour chaque donnée reçu, vous devez appliquer un maximum de validations. Vérifiez toujours les données de votre visiteur, et initialisez vos variables! Pour vérifier les variables non-initialisées, voyez la fonction error_reporting(), qui peut afficher les erreurs de niveau E_NOTICE.

Pour des informations sur l'émulation de register_globals On ou Off, voyez la FAQ.


Données transmises par les internautes

La plus grande faiblesse de nombreux programmes PHP ne vient pas du langage en lui-même, mais de son utilisation en omettant les caractéristiques de sécurité. Pour cette raison, vous devriez toujours prendre le temps de réfléchir aux implications d'une portion de code donnée, pour mesurer les éventuels dommages qui pourraient être causés si une variable inattendue lui était passée.

Exemple #1 Utilisation dangereuse de variables

<?php
// efface un fichier à la racine d'un utilisateur... ou peut être
// de quelqu'un d'autre?
unlink($evil_var);
// Note l'accès de ce fichier ... ou pas?
fputs($fp, $evil_var);
// Exécute une commande triviale... ou ajoute une entrée dans /etc/password ?
system($evil_var);
exec($evil_var);
?>

Il est vivement recommandé d'examiner minutieusement votre code pour vous assurer qu'il n'y a pas de variable envoyée par le client web qui ne soit pas suffisamment vérifiée avant utilisation, en vous posant les questions suivantes :

  • Est-ce que ce script n'affectera que les fichiers prévus ?
  • Est-il possible que des valeurs incohérentes ou inattendues soient exploitées ici ?
  • Est-ce que ce script peut être utilisé dans un but différent de celui attendu ?
  • Est-ce que ce script peut être utilisé malicieusement, en conjonction avec d'autres ?
  • Est-ce que toutes les actions seront correctement historisées ?

En répondant de manière adéquate à ces questions lors de l'écriture de vos scripts (plutôt qu'après), vous éviterez une réécriture inopportune lorsque vous aurez besoin d'améliorer leur sécurité. En commençant vos projets avec ces recommandations en tête, vous ne garantirez pas la sécurité de votre système, mais vous contribuerez à l'améliorer.

Vous pouvez aussi envisager de supprimer l'acquisition automatique des variables (register_globals), les guillemets magiques (magic_quotes), ou encore toute option qui pourrait conduire à vous tromper sur la validité, la source, ou la valeur d'une variable. Travailler avec PHP en mode error_reporting(E_ALL), peut aussi vous aider à détecter que certaines variables sont utilisées avant d'être exploitées ou initialisées (pour que vous puissiez empêcher l'utilisation de données inattendues).


Guillemets magiques

Sommaire

  • Qu'est-ce que les guillemets magiques?
  • Pourquoi utiliser les guillemets magiques?
  • Pourquoi ne pas utiliser les guillemets magiques?
  • Désactiver les guillemets magiques
Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Les guillemets magiques (littéralement, les Magic Quotes) est un processus qui protège automagiquement les données introduites dans un script PHP. Il est recommandé de développer les applications sans l'aide des guillemets magiques, et de protéger manuellement les données.


Qu'est-ce que les guillemets magiques?

Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Lorsque cette directive est active, les guillemets simples ', les guillemets doubles ", les antislashs \ et les caractères nul NULL sont protégés automatiquement avec un antislash. C'est le même résultat que celui de la fonction addslashes().

Il y a trois directives de guillemets magiques différentes :

  • magic_quotes_gpc Affecte les données issues des requêtes HTTP (GET, POST, et COOKIE). Ne peut pas être configurée durant l'exécution, et vaut par défaut on en PHP. Voir aussi get_magic_quotes_gpc().
  • magic_quotes_runtime Si activée, la plupart des fonctions qui retournent des données externes, y compris issues d'une base de données ou d'un fichier texte, verront les données protégées par des antislashs. Cette directive peut être modifiée durant l'exécution, et vaut par défaut off en PHP. Voir aussi set_magic_quotes_runtime() et get_magic_quotes_runtime().
  • magic_quotes_sybase Si cette configuration est active, les guillemets simples sont protégés avec un autre guillemets simples, et non pas un antislash. Lorsqu'elle est active, cette directive remplace entièrement magic_quotes_gpc. Si vous activez ces deux directives, alors seuls les guillemets simples seront protégés, avec ''. Les guillemets doubles, les antislashs et les caractères nul seront laissés intacts. Voir aussi ini_get() pour lire la valeur de la directive.


Pourquoi utiliser les guillemets magiques?

Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

  • Il n'y a aucune raison d'utiliser les guillemets magiques, car ils ne sont plus supportés en PHP. Cependant, ils ont existé, et ont aidé quelques débutants, en le permettant de produire, sans le savoir et involontairement, du code plus sécuritaire. Lorsque vous tombez sur des scripts qui s'appuient sur ce type de comportements, il est recommandé de modifier ce code et de désactiver les guillemets magiques. Pour quelles raisons cette fonctionnalité est apparue? Simplement pour se protéger des injections SQL. Aujourd'hui, les développeurs sont plus conscients des problèmes de sécurité, et adoptent les mécanismes de protections de leur base de données, ou les commandes préparées, au lieu de passer par les guillemets magiques.


Pourquoi ne pas utiliser les guillemets magiques?

Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

  • Portabilité Cette directive peut être activée ou désactivée suivant les serveurs et cela affecte grandement la portabilité. Utilisez get_magic_quotes_gpc() pour vérifier s'ils sont actifs ou pas, et adaptez votre application.
  • Performances Comme ce n'est pas toutes les données qui sont finalement placées dans une base, il y a un coût en vitesse pour protéger toutes ces données. Le simple appel des fonctions de protections en fonction des besoins est plus efficace (addslashes()). Même si php.ini-development active ces options par défaut, php.ini-recommended les désactive. Cette recommandation est surtout faite pour des raisons de vitesse.
  • Peu pratique Comme toutes les données n'ont pas forcément besoin de protection, il est souvent désagréable de voir des données protégées là où ça ne sert à rien. Par exemple, lorsque vous envoyez par mail un formulaire, et que vous voyez des antislashs parsemer le message. Pour corriger cela, il faut faire un usage fréquent de stripslashes().


Désactiver les guillemets magiques

La directive magic_quotes_gpc ne peut être désactivée qu'au niveau du système, et non pas à l'exécution. En d'autres termes, utiliser ini_set() n'est pas possible.

Exemple #1 Désactiver les guillemets magiques du coté du serveur

Voici un exemple qui donne la valeur de Off à ces directives dans le fichier php.ini. Pour plus de détails, voyez la section Comment changer la configuration.

; Magic quotes
;

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off

Si vous n'avez pas accès au serveur, utilisez le fichier .htaccess. Par exemple :

php_flag magic_quotes_gpc Off

Afin d'écrire du code portable sur tous les environnements, et où vous ne pourrez pas forcément modifier la configuration du serveur, voici un exemple de désactivation de magic_quotes_gpc à l'exécution. Cette méthode est inefficace, et il est recommandé d'utiliser les autres solutions si possible.

Exemple #2 Désactivation des guillemets magiques à l'exécution

<?php
if (get_magic_quotes_gpc()) {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list($key, $val) = each($process)) {
        foreach ($val as $k => $v) {
            unset($process[$key][$k]);
            if (is_array($v)) {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            } else {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}
?>


Masquer PHP

En général, la sécurité par l'obscurité est une des formes de sécurité les plus faibles. Mais dans certains cas, chaque action, aussi faible soit elle, concernant la sécurité, est souhaitable.

Quelques astuces permettent de masquer PHP, ce qui peut ralentir un attaquant qui recherche des faiblesses dans votre système. En règlant l'option expose_php à off dans votre fichier php.ini, vous pouvez réduire la quantité d'informations disponible.

Une autre astuce est de configurer le serveur web, comme Apache, pour qu'il utilise plusieurs types de fichiers différents avec PHP, soit localement avec un fichier .htaccess, soit dans le fichier de configuration du serveur lui-même. Vous pouvez ainsi utiliser des extensions de fichiers déroutantes comme ceci :

Exemple #1 Masquer PHP avec un autre langage

# Faire que le code PHP ressemble à un autre langage
AddType application/x-httpd-php .asp .py .pl
Ou masquez le complètement :

Exemple #2 Masquer PHP avec des types inconnus

# Faire que le code PHP ressemble à un autre langage qui n'existe pas
AddType application/x-httpd-php .bop .foo .133t
Ou encore, cachez-le sous forme de HTML. Cela a un léger impact négatif sur les performances générales, car tous les fichiers HTML seront aussi analysés et traités par le moteur PHP :

Exemple #3 Utiliser le type HTML pour les extensions PHP

# Faire que le code PHP ressemble à du html
AddType application/x-httpd-php .htm .html
Pour que cela fonctionne efficacement, pensez à renommer tous vos fichiers PHP avec les extensions ci-dessus. Même si c'est une forme de sécurité du non-dit, c'est une mesure de prévention mineure, avec peu d'inconvénients.


Être à jour

PHP, comme n'importe quel système de grande taille, est constamment testé et amélioré. Chaque nouvelle version rassemble des modifications majeures et mineures, aussi bien pour renforcer la sécurité, que pour réparer des problèmes de conception et de configuration, ainsi que d'autres points qui peuvent affecter la sécurité et la stabilité globale de votre système.

Comme pour les autres programmes et langages de scripts systèmes, la meilleure approche est de mettre à jour souvent, et de rester à l'écoute des dernières versions et des modifications qu'elles apportent.


Caractéristiques

  • Identification HTTP avec PHP
  • Cookies
  • Sessions
  • Utiliser les XForms
  • Gestion des chargements de fichiers
    • Chargements de fichiers par méthode POST
    • Explication sur les messages d'erreurs de chargement de fichiers
    • Erreurs classiques
    • Télécharger plusieurs fichiers simultanément
    • Chargement par méthode PUT
  • Utilisation des fichiers à distance
  • Gestion des connexions
  • Connexions persistantes aux bases de données
  • Safe mode
    • Sécurité et "Safe Mode"
    • Fonctions désactivées par le Safe Mode
  • Utilisation des lignes de commande — Utiliser PHP en ligne de commande
    • Introduction
    • Différence avec les autres SAPIs
    • Options — Options de ligne de commande
    • Utilisation — Exécution de fichiers PHP
    • Flux I/O — Flux d'entrée/sortie
    • Shell Interactif
    • Serveur web interne
    • Configurations INI
  • Ramasse-miettes (Garbage Collection)
    • Bases sur le comptage des références
    • Nettoyage de Cycles
    • Considerations sur les performances
  • DTrace Dynamic Tracing
    • Introduction to PHP and DTrace
    • Using PHP and DTrace
    • Using SystemTap with PHP DTrace Static Probes


Identification HTTP avec PHP

Il est possible d'utiliser la fonction header() pour demander une identification ("Authentication Required") au client, générant ainsi l'apparition d'une fenêtre de demande d'utilisateur et de mot de passe. Une fois que les champs ont été remplis, l'URL sera de nouveau appelée, avec les variables prédéfinies PHP_AUTH_USER, PHP_AUTH_PW et AUTH_TYPE contenant respectivement le nom d'utilisateur, le mot de passe et le type d'identification. Ces variables prédéfinies sont trouvées dans les tableaux $_SERVER. Les méthodes d'identification simple ("Basic") et de type "Digest" (depuis PHP 5.1.0) sont supportées. Reportez-vous à la fonction header() pour plus d'informations.

Voici un exemple de script qui force l'identification du client pour accéder à une page :

Exemple #1 Exemple d'identification HTTP simple

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Texte utilisé si le visiteur utilise le bouton d\'annulation';
    exit;
} else {
    echo "<p>Bonjour, {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>Votre mot de passe est {$_SERVER['PHP_AUTH_PW']}.</p>";
}
?>

Exemple #2 Exemple d'identification HTTP Digest

Cet exemple montre comment appliquer l'utilisation d'un script d'identification HTTP de type "Digest". Pour plus d'informations, lisez la documentation » RFC 2617.

<?php
$realm = 'Restricted area';

//utilisateur => mot de passe
$users = array('admin' => 'mypass', 'guest' => 'guest');

if (empty($_SERVER['PHP_AUTH_DIGEST'])) {
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: Digest realm="'.$realm.
           '",qop="auth",nonce="'.uniqid().'",opaque="'.md5($realm).'"');

    die('Texte utilisé si le visiteur utilise le bouton d\'annulation');
}

// analyse la variable PHP_AUTH_DIGEST
if (!($data = http_digest_parse($_SERVER['PHP_AUTH_DIGEST'])) ||
    !isset($users[$data['username']]))
    die('Mauvaise Pièce d\'identité!');

// Génération de réponse valide
$A1 = md5($data['username'] . ':' . $realm . ':' . $users[$data['username']]);
$A2 = md5($_SERVER['REQUEST_METHOD'].':'.$data['uri']);
$valid_response = md5($A1.':'.$data['nonce'].':'.$data['nc'].':'.$data['cnonce'].':'.$data['qop'].':'.$A2);

if ($data['response'] != $valid_response)
    die('Mauvaise Pièce d\'identitée!');

// ok, utilisateur & mot de passe valide
echo 'Vous êtes identifié en tant que : ' . $data['username'];

// fonction pour analyser l'en-tête http auth
function http_digest_parse($txt)
{
    // protection contre les données manquantes
    $needed_parts = array('nonce'=>1, 'nc'=>1, 'cnonce'=>1, 'qop'=>1, 'username'=>1, 'uri'=>1, 'response'=>1);
    $data = array();
    $keys = implode('|', array_keys($needed_parts));

    preg_match_all('@(' . $keys . ')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@', $txt, $matches, PREG_SET_ORDER);

    foreach ($matches as $m) {
        $data[$m[1]] = $m[3] ? $m[3] : $m[4];
        unset($needed_parts[$m[1]]);
    }

    return $needed_parts ? false : $data;
}
?>

Note: Note de compatibilité

Soyez bien prudent lorsque vous utilisez des en-têtes HTTP avec PHP. Afin de garantir un maximum de compatibilité entre les navigateurs, le mot clé "Basic" doit être écrit avec un B majuscule, et le texte de présentation doit être placé entre guillemets simples, et exactement un espace doit précéder le code 401 dans l'en-tête HTTP/1.0 401. Les paramètres d'authentification doivent être séparés par des virgules comme montré dans l'exemple ci-dessus.

Au lieu d'afficher simplement les variables globales PHP_AUTH_USER et PHP_AUTH_PW, vous préférerez sûrement vérifier la validité du nom d'utilisateur et du mot de passe. Par exemple, en envoyant ces informations à une base de données, ou en recherchant dans un fichier dbm.

Méfiez-vous des navigateurs bogués, tels qu'Internet Explorer. Ils semblent très susceptibles en ce qui concerne l'ordre des en-têtes. Envoyer l'en-tête d'identification (WWW-Authenticate) avant le code de HTTP/1.0 401 semble lui convenir jusqu'à présent.

Pour éviter que quelqu'un écrive un script qui révèle les mots de passe d'une page, à laquelle on a accédé par une identification traditionnelle, les variables globales PHP_AUTH ne seront pas assignées si l'identification externe a été activée pour cette page et que le safe mode est activé. Dans ce cas, la variable REMOTE_USER peut être utilisée pour identifier l'utilisateur à l'extérieur. De même que $_SERVER['REMOTE_USER'].

Note: Note de configuration

PHP utilise la présence de la directive AuthType pour déterminer si une identification externe est activée. Évitez donc cette directive de contexte si vous voulez utiliser l'identification de PHP (sinon, les deux identifications se contrediront, et échoueront).

Notez cependant que les manipulations ci-dessus n'empêchent pas quiconque possède une page non identifiée de voler les mots de passe des pages protégées, sur le même serveur.

Netscape et Internet Explorer effaceront le cache d'identification client s'ils reçoivent une réponse 401. Cela permet de déconnecter un utilisateur, pour le forcer à saisir à nouveau son nom de compte et son mot de passe. Certains programmeurs l'utilisent pour donner un délai d'expiration ou, alors, fournissent un bouton de déconnexion.

Exemple #3 Identification HTTP avec nom d'utilisateur/mot de passe forcé

<?php
function authenticate() {
    header('WWW-Authenticate: Basic realm="Test Authentication System"');
    header('HTTP/1.0 401 Unauthorized');
    echo "Vous devez entrer un identifiant et un mot de passe valides pour accéder
    à cette ressource.\n";
    exit;
}

if ( !isset($_SERVER['PHP_AUTH_USER']) ||
     ($_POST['SeenBefore'] == 1 && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER'])) {
    authenticate();
} else {
    echo "<p>Bienvenue : " . htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "<br />";
    echo "Ancien : " . htmlspecialchars($_REQUEST['OldAuth']);
    echo "<form action='' method='post'>\n";
    echo "<input type='hidden' name='SeenBefore' value='1' />\n";
    echo "<input type='hidden' name='OldAuth' value=\"" . htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "\" />\n";
    echo "<input type='submit' value='Re Authenticate' />\n";
    echo "</form></p>\n";
}
?>

Ce comportement n'est pas nécessaire par le standard d'identification HTTP Basic. Les tests avec Lynx ont montré qu'il n'affectait pas les informations de session lors de la réception d'un message de type 401. Ce qui fait que presser la touche "retour" à un client Lynx précédemment identifié donnera l'accès direct à la ressource. Cependant, l'utilisateur peut utiliser la touche '_' pour détruire les anciennes identifications.

Afin de rendre fonctionnel l'authentification HTTP avec un serveur IIS avec la version CGI de PHP, vous devez éditer votre configuration "Directory Security". Cliquez sur "Edit" et activez uniquement "Anonymous Access", tous les autres champs doivent être laissés non actifs.

Note: Note pour les utilisateurs de IIS :
Pour que l'identification HTTP fonctionne avec IIS, la directive PHP cgi.rfc2616_headers doit être définie à 0 (la valeur par défaut).

Note:

Si le safe mode est activé, le uid de ce script est ajouté à la partie realm des en-têtes WWW-Authenticate.


Cookies

PHP supporte les cookies HTTP de manière transparente. Les cookies sont un mécanisme d'enregistrement d'informations sur le client, et de lecture de ces informations. Ce système permet d'identifier et de suivre les visiteurs. Vous pouvez envoyer un cookie avec la fonction setcookie() ou setrawcookie(). Les cookies font partie des en-têtes HTTP, ce qui impose que setcookie() soit appelée avant tout affichage de texte. Ce sont les mêmes limitations que pour header(). Vous pouvez utiliser les fonctions de bufferisation de sortie pour retarder l'affichage de votre script tant que vous n'avez pas décidé d'envoyer un cookie ou des en-têtes.

Tous les cookies qui sont envoyés au client seront automatiquement inclus dans un tableau auto-global $_COOKIE si variables_order contient "C". Si vous souhaitez affecter plusieurs valeurs à un seul cookie, ajoutez [] au nom du cookie.

Selon la configuration de register_globals, des variables PHP peuvent être créées à partir des cookies. Cependant, il n'est pas recommandé de se fier à elles, puisque cette fonctionnalité est souvent désactivée pour des raisons de sécurité.

Pour plus de détails, y compris des notes sur les bogues des navigateurs, voir les fonctions setcookie() et setrawcookie().


Sessions

Le support des sessions de PHP est un mécanisme pour conserver des données entre différents accès. Cela vous permet de personnaliser les applications, et d'augmenter l'attrait de votre site. Toutes les informations sur les sessions sont disponibles dans la section sessions.


Utiliser les XForms

» XForms est une variation des formulaires web traditionnels, qui permet leur utilisation sur diverses plates-formes et navigateurs, et même sur des médias moins traditionnels comme les documents PDF.

La première différence des XForms est leur présentation au client. » XForms for HTML Authors contient une description détaillée de la création des XForms, complémentaire de notre tutoriel : nous allons nous consacrer à un exemple simple.

Exemple #1 Un simple formulaire XForms de recherche

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Search</h:title>
 <model>
  <submission action="http://example.com/search"
              method="post" id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

Le formulaire ci-dessus affiche une boîte de texte (appelée q), et un bouton de soumission. Lorsque ce bouton est utilisé, le formulaire est envoyé à la page d'action.

C'est là que la différence se fait sentir, du point de vue de l'application web. Dans un formulaire HTML, les données sont envoyées au format application/x-www-form-urlencoded. Pour un XForm, c'est en fait un format XML qui est utilisé.

Si vous avez décidé d'utiliser des XForms, vous attendez peut être des données au format XML, et dans ce cas, regardez dans la variable $HTTP_RAW_POST_DATA, où vous trouverez le document XML généré par le navigateur, que vous pourrez passer à votre moteur XSLT favori.

Si vous n'êtes pas intéressé par ce format, et que vous voulez simplement exploiter vos données avec la variable $_POST, vous pouvez demander au navigateur de les envoyer au format application/x-www-form-urlencoded, en modifiant l'attribut de méthode method et en lui donnant la valeur de urlencoded-post.

Exemple #2 Utiliser des XForms pour remplir $_POST

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Search</h:title>
 <model>
  <submission action="http://example.com/search"
              method="urlencoded-post" id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

Note: Au moment de la rédaction de cet article, de nombreux navigateurs ne supportent pas les XForms. Vérifiez la version de votre navigateur si les exemples de ce tutoriel ne fonctionnent pas.


Gestion des chargements de fichiers

Sommaire

  • Chargements de fichiers par méthode POST
  • Explication sur les messages d'erreurs de chargement de fichiers
  • Erreurs classiques
  • Télécharger plusieurs fichiers simultanément
  • Chargement par méthode PUT


Chargements de fichiers par méthode POST

Cette fonctionnalité permet aux personnes de télécharger à la fois du texte et des fichiers binaires. Avec les fonctions d'identification et de manipulation de fichiers de PHP, vous avez le contrôle total pour définir qui a le droit de télécharger mais aussi ce qui sera fait du fichier une fois qu'il sera téléchargé.

PHP est capable de recevoir des fichiers émis par un navigateur conforme à la norme RFC-1867.

Note: Notes de configuration

Voir aussi les directives file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size et max_input_time dans php.ini

PHP supporte aussi le chargement par la méthode PUT comme dans le navigateur Netscape Composer et Amaya du W3C. Reportez-vous au chapitre sur le support de la méthode PUT.

Exemple #1 Formulaire de chargement de fichier

Un formulaire de téléchargement de fichiers peut être construit en créant un formulaire spécifique comme ceci :

<!-- Le type d'encodage des données, enctype, DOIT être spécifié comme ce qui suit -->
<form enctype="multipart/form-data" action="_URL_" method="post">
  <!-- MAX_FILE_SIZE doit précéder le champ input de type file -->
  <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  <!-- Le nom de l'élément input détermine le nom dans le tableau $_FILES -->
  Envoyez ce fichier : <input name="userfile" type="file" />
  <input type="submit" value="Envoyer le fichier" />
</form>

_URL_ dans l'exemple précédent doit être remplacé et pointé vers un fichier PHP.

Le champ caché MAX_FILE_SIZE (mesuré en octets) doit précéder le champ input de type file et sa valeur représente la taille maximale acceptée du fichier par PHP. Cet élément de formulaire doit toujours être utilisé car il permet d'informer l'utilisateur que le transfert désiré est trop lourd avant d'atteindre la fin du téléchargement. Gardez à l'esprit que ce paramètre peut être "trompé" du côté du navigateur facilement, aussi ne faîtes pas confiance à ce dernier, ne s'agissant finalement que d'une fonctionnalité de convenance côté client. Le paramètre PHP (côté serveur) à propos de la taille maximale d'un fichier téléchargé, ne peut, lui, être trompé.

Note:

Assurez-vous que votre formulaire de téléchargement de fichier contienne enctype="multipart/form-data", sinon, le fichier se sera pas téléchargé.

La variable globale $_FILES va contenir toutes les informations sur le fichier téléchargé. Son contenu est détaillé dans notre exemple ci-dessous. Notez que l'on suppose que le nom de la variable du fichier téléchargé est userfile, tel que défini dans le formulaire ci-dessus, mais peut être n'importe quel nom.

$_FILES['userfile']['name']

Le nom original du fichier, tel que sur la machine du client web.

$_FILES['userfile']['type']

Le type MIME du fichier, si le navigateur a fourni cette information. Par exemple, cela pourra être "image/gif". Ce type mime n'est cependant pas vérifié du côté de PHP et, donc, ne prend pas sa valeur pour se synchroniser.

$_FILES['userfile']['size']

La taille, en octets, du fichier téléchargé.

$_FILES['userfile']['tmp_name']

Le nom temporaire du fichier qui sera chargé sur la machine serveur.

$_FILES['userfile']['error']

Le code d'erreur associé au téléchargement de fichier.

Le fichier téléchargé sera stocké temporairement dans le dossier temporaire du système, à moins qu'un autre dossier soit fourni avec la directive upload_tmp_dir du php.ini. Le dossier par défaut du serveur peut être changé dans l'environnement via la variable TMPDIR. Modifier la valeur de cette variable avec la fonction putenv() dans un script PHP sera sans effet. Cette variable d'environnement peut aussi être utilisée pour s'assurer que d'autres opérations fonctionnent aussi sur les fichiers téléchargés.

Exemple #2 Validation de téléchargement de fichiers

Voyez aussi les fonctions is_uploaded_file() et move_uploaded_file() pour plus d'informations. L'exemple suivant va télécharger un fichier venant d'un formulaire.

<?php
// Dans les versions de PHP antiéreures à 4.1.0, la variable $HTTP_POST_FILES
// doit être utilisée à la place de la variable $_FILES.

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "Le fichier est valide, et a été téléchargé
           avec succès. Voici plus d'informations :\n";
} else {
    echo "Attaque potentielle par téléchargement de fichiers.
          Voici plus d'informations :\n";
}

echo 'Voici quelques informations de débogage :';
print_r($_FILES);

echo '</pre>';

?>

Le script PHP qui reçoit le fichier chargé doit pouvoir gérer le fichier de manière appropriée. Vous pouvez utiliser la variable $_FILES['userfile']['size'] pour recaler tous les fichiers qui sont trop gros ou trop petits. Vous pouvez utiliser la variable $_FILES['userfile']['type'] pour écarter les fichiers qui n'ont pas le bon type, mais l'utiliser uniquement pour une série de vérifications, car cette valeur est complètement sous le contrôle du client et n'est pas vérifiée du côté de PHP. Vous pouvez utiliser l'information dans $_FILES['userfile']['error'] et adapter votre politique en fonction des codes d'erreur. Quelle que soit votre politique, vous devriez soit effacer le fichier du dossier temporaire, soit le déplacer.

Si aucun fichier n'est sélectionné dans le formulaire, PHP retournera 0 dans $_FILES['userfile']['size'] et rien du tout dans $_FILES['userfile']['tmp_name'].

Le fichier sera automatiquement effacé du dossier temporaire à la fin du script, s'il n'a pas été déplacé ou renommé.

Exemple #3 Envoi d'un tableau de fichiers

PHP supporte les tableaux en HTML ainsi qu'avec les fichiers.

<form action="" method="post" enctype="multipart/form-data">
<p>Images:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Send" />
</p>
</form>
<?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        $name = $_FILES["pictures"]["name"][$key];
        move_uploaded_file($tmp_name, "data/$name");
    }
}
?>

La barre de progression de téléchargement peut être implémentée en utilisant la progression du chargement via les sessions.


Explication sur les messages d'erreurs de chargement de fichiers

PHP retourne un code d'erreur approprié dans le tableau de fichiers. Ce code d'erreur est accessible à l'index ['error'] du tableau, qui est créé durant le téléchargement par PHP. En d'autres termes, le message d'erreur est accessible dans la variable $_FILES['userfile']['error'].

UPLOAD_ERR_OK

Valeur : 0. Aucune erreur, le téléchargement est correct.

UPLOAD_ERR_INI_SIZE

Valeur : 1. La taille du fichier téléchargé excède la valeur de upload_max_filesize, configurée dans le php.ini.

UPLOAD_ERR_FORM_SIZE

Valeur : 2. La taille du fichier téléchargé excède la valeur de MAX_FILE_SIZE, qui a été spécifiée dans le formulaire HTML.

UPLOAD_ERR_PARTIAL

Valeur : 3. Le fichier n'a été que partiellement téléchargé.

UPLOAD_ERR_NO_FILE

Valeur : 4. Aucun fichier n'a été téléchargé.

UPLOAD_ERR_NO_TMP_DIR

Valeur : 6. Un dossier temporaire est manquant. Introduit en PHP 5.0.3.

UPLOAD_ERR_CANT_WRITE

Valeur : 7. Échec de l'écriture du fichier sur le disque. Introduit en PHP 5.1.0.

UPLOAD_ERR_EXTENSION

Valeur : 8. Une extension PHP a arrêté l'envoi de fichier. PHP ne propose aucun moyen de déterminer quelle extension est en cause. L'examen du phpinfo() peut aider. Introduit en PHP 5.2.0.


Erreurs classiques

La variable MAX_FILE_SIZE ne peut pas spécifier une taille de fichier plus grande que la taille qui a été fixée par upload_max_filesize, dans le php.ini. La valeur par défaut est 2 megaoctets.

Si une limite de mémoire est activée, une plus grande valeur de memory_limit peut être nécessaire. Assurez-vous d'avoir défini une valeur pour memory_limit assez grande.

Si la valeur de max_execution_time est trop petite, le temps d'exécution du script peut excéder cette valeur. Assurez-vous d'avoir défini une valeur pour max_execution_time assez grande.

Note: max_execution_time affecte uniquement le temps d'exécution du script. Le temps passé sur l'activité qui apparaît en dehors de l'exécution du script comme les appels systèmes avec la fonction system(), la fonction sleep(), les requêtes sur les bases de données, le temps mis pour effectuer le téléchargement du fichier, etc. n'est pas inclus lors du calcul du temps maximal de l'exécution du script.

Avertissement

max_input_time définit le temps maximal, en secondes, au script pour recevoir les données ; cela inclut le téléchargement du fichier. Pour les fichiers multiples, ou les gros fichiers, ou encore pour les utilisateurs sur des connexions lentes, la valeur par défaut de 60 secondes peut être dépassée.

Si post_max_size est défini de façon trop faible, les gros fichiers ne pourront pas être téléchargés. Assurez-vous de définir post_max_size avec une taille suffisante.

Depuis PHP 5.2.12, la configuration de max_file_uploads contrôle le nombre maximum de fichiers qui peuvent être envoyés en une requête. Si le nombre de fichiers envoyés dépasse cette limite, alors $_FILES arrêtera la réception. Par exemple, si max_file_uploads vaut 10, alors $_FILES ne contiendra jamais plus de 10 entités.

Ne pas valider les fichiers que vous manipulez peut donner l'accès aux utilisateurs à des fichiers sensibles dans d'autres dossiers !

Attention : il semble que CERN httpd supprime tout ce qui est après le premier caractère dans l'entête MIME. Tant que c'est le cas, CERN httpd ne pourra pas effectuer de chargements de fichiers.

Du fait de la grande diversité des systèmes, nous ne pouvons garantir que les fichiers avec des noms exotiques (par exemple, ceux contenant des espaces) seront traités correctement.

Le développeur ne doit pas mixer les champs input normaux et les champs de téléchargement dans une même variable (en utilisant un nom d'input comme foo[]).


Télécharger plusieurs fichiers simultanément

Le téléchargement de plusieurs fichiers est possible en utilisant des noms différents dans l'attribut name de la balise input.

Il est aussi possible de télécharger plusieurs fichiers simultanément et d'obtenir les informations sous forme de tableau. Pour cela, vous devez utiliser la syntaxe de tableau dans les noms de balises HTML, comme vous l'avez fait avec les sélections multiples et les boîtes à cocher.

Exemple #1 Télécharger plusieurs fichiers simultanément

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Envoyez plusieurs fichiers : <br />
  <input name="userfile[]" type="file" /><br />
  <input name="userfile[]" type="file" /><br />
  <input type="submit" value="Envoyer les fichiers" />
</form>

Lorsque le formulaire ci-dessus a été envoyé, les tableaux $_FILES['userfile'], $_FILES['userfile']['name'], et $_FILES['userfile']['size'] seront initialisés (tout comme $HTTP_POST_FILES pour les versions PHP antérieures à 4.1.0). Lorsque register_globals est activé, les variables globales concernant les fichiers téléchargés sont aussi initialisées. Chacune d'entre elles contiendra un tableau numériquement indexé, avec les valeurs décrivant les fichiers téléchargés.

Par exemple, supposons que les fichiers /home/test/review.html et /home/test/xwp.out ont été téléchargés. Dans ce cas, $_FILES['userfile']['name'][0] contient review.html et $_FILES['userfile']['name'][1] contient xwp.out. Similairement, $_FILES['userfile']['size'][0] va contenir la taille du fichier review.html, etc.

$_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0] et $_FILES['userfile']['type'][0] sont aussi créées.

Avertissement

Depuis PHP 5.2.12, le paramètre max_file_uploads limite le nombre de fichiers qui peuvent être envoyés en une requête. Vous devrez vérifier que votre formulaire ne tente pas d'envoyer plus de fichiers dans la requête que ne le tolère cette limite.


Chargement par méthode PUT

PHP supporte la méthode HTTP PUT utilisée par les navigateurs pour y stocker des fichiers sur un serveur. Les requêtes de type PUT sont beaucoup plus simples que les chargements de fichiers en utilisant le type POST, et elles ressemblent à :

Exemple #1 Méthode PUT pour les chargements de fichiers

PUT /path/filename.html HTTP/1.1

Normalement, cela signifie que le serveur distant va sauver les données qui suivent dans le fichier : /path/filename.html de son disque. Ce n'est évidemment pas très sécurisé de laisser Apache ou PHP écraser n'importe quel fichier de l'arborescence. Pour éviter ceci, il faut d'abord dire au serveur que vous voulez qu'un script PHP donné gère la requête. Avec Apache, il y a une directive pour cela : Script. Elle peut être placée n'importe où dans le fichier de configuration d'Apache. En général, les webmestres la placent dans le bloc <Directory>, ou peut-être dans le bloc <VirtualHost>. La ligne suivante fera très bien l'affaire :

Exemple #2 Directive Apache pour le chargement par méthode PUT

Script PUT /put.php

Elle indique à Apache qu'il doit envoyer les requêtes de chargement par méthode PUT au script put.php. Bien entendu, cela présuppose que vous avez activé PHP pour qu'il prenne en charge les fichiers de type .php, et que PHP est actif. La ressource de destination pour toutes les requêtes PUT de ce script doit être le script lui-même, et non le nom du fichier que le fichier téléchargé doit avoir.

Avec PHP, vous voudriez faire quelque chose comme ce qui suit dans votre put.php. Ceci va copier le contenu du fichier téléchargé dans le fichier myputfile.ext sur le serveur. Vous devez probablement vouloir effectuer quelques vérifications et/ou identifier l'utilisateur avant d'effectuer cette copie de fichier.

Exemple #3 Sauvegarde de fichiers HTTP PUT

<?php
/* Les données PUT arrivent du flux */
$putdata = fopen("php://input", "r");

/* Ouvre un fichier pour écriture */
$fp = fopen("myputfile.ext", "w");

/* Lecture des données, 1 Ko à la fois et écriture dans le fichier */
while ($data = fread($putdata, 1024))
fwrite($fp, $data);

/* Fermeture du flux */
fclose($fp);
fclose($putdata);
?>


Utilisation des fichiers à distance

Aussi longtemps que le support des gestionnaires d'URL ("URL fopen wrapper") est activé dans le php.ini, avec l'option allow_url_fopen , vous pouvez utiliser des URL (HTTP et FTP) avec la majorité des fonctions qui utilisent un nom de fichier comme paramètre. Cela inclut notamment include, include_once, require et require_once (depuis PHP 5.2.0, allow_url_include doit être actif pour les utiliser). Reportez-vous à Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les protocoles supportés par PHP.

Par exemple, vous pouvez suivre l'exemple suivant pour ouvrir un fichier sur un serveur web distant, analyser les résultats pour extraire les informations dont vous avez besoin, et ensuite l'utiliser dans une requête de base de données, ou simplement éditer les informations dans le style de votre site.

Exemple #1 Connaître le titre d'une page distante

<?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
  echo "<p>Impossible de lire la page.\n";
  exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* Cela ne fonctionne que si les balises Title sont correctement utilisées */
    if (preg_match ("@\<title\>(.*)\</title\>@i", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>

Vous pouvez aussi écrire des fichiers sur un serveur FTP aussi longtemps que vous êtes connecté avec un utilisateur ayant les bons droits d'accès, alors que le fichier n'existait pas encore.

Pour vous connecter avec un utilisateur autre qu'anonyme, vous devez spécifier un nom d'utilisateur (et certainement le mot de passe) dans l'URL, comme ftp://user:password@ftp.example.com/path/to/file. (Vous pouvez utiliser le même type de syntaxe pour accéder aux fichiers via HTTP lorsqu'ils nécessitent une identification simple).

Exemple #2 Stocker des données sur un serveur distant

<?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
  echo "<p>Impossible d'ouvrir le fichier distant pour écriture.\n";
  exit;
}
/* Ecriture des données. */
fputs ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>

Note:

Remarque : vous pouvez avoir l'idée, à partir de l'exemple ci-dessus, d'utiliser la même technique pour écrire sur un log distant, mais comme mentionné ci-dessus vous ne pouvez qu'écrire sur un nouveau fichier en utilisant les fonctions fopen() avec une URL. Pour faire des log distribués, nous vous conseillons de regarder la partie syslog().


Gestion des connexions

Le statut des connexions est conservé en interne par PHP. Il y a quatre états possibles :

  • 0 - NORMAL (normal)
  • 1 - ABORTED (annulé)
  • 2 - TIMEOUT (périmé)
  • 3 - ABORTED and TIMEOUT (annulé et périmé)

Lorsqu'un script PHP est en cours d'exécution, son état est NORMAL. Si le client distant se déconnecte, le statut devient ABORTED. En général, une telle déconnexion provient d'un arrêt temporaire. Si la durée maximale d'exécution de PHP est dépassée, (voir set_time_limit()), le script prend le statut TIMEOUT.

Vous pouvez en outre décider si vous voulez que la déconnexion d'un client provoque l'arrêt de votre script. Il est parfois pratique que vos scripts continuent à s'exécuter jusqu'à la fin, même si le client n'est plus là pour recevoir les informations. Cependant, par défaut, le script s'arrêtera dès que le client se déconnecte. Ce comportement peut être modifié avec la directive ignore_user_abort dans le fichier php.ini ou bien avec la directive Apache php_value ignore_user_abort du fichier Apache httpd.conf ou avec la fonction ignore_user_abort(). Si vous ne demandez pas à PHP d'ignorer la déconnexion, et que l'utilisateur se déconnecte, le script sera terminé. La seule exception est si vous avez enregistré une fonction de fermeture, avec register_shutdown_function(). Avec une telle fonction, lorsque l'utilisateur interrompt sa requête, à la prochaine exécution du script, PHP va s'apercevoir que le dernier script n'a pas été terminé, et il va déclencher la fonction de fermeture. Cette fonction sera aussi appelée à la fin du script, si celui-ci se termine normalement. Pour pouvoir avoir un comportement différent suivant l'état du script lors de sa finalisation, vous pouvez exécutez des commandes spécifiques à la déconnexion grâce à la commande connection_aborted(). Cette fonction retournera TRUE si la connexion a été annulée.

Votre script peut aussi être automatiquement interrompu après une certaine durée. Par défaut, le délai est de 30 secondes. Cette valeur peut être changée en utilisant la directive PHP max_execution_time dans le fichier php.ini ou avec la directive php_value max_execution_time, dans le fichier Apache httpd.conf ou encore avec la fonction set_time_limit(). Lorsque le délai expire, le script est terminé, et comme pour la déconnexion du client, une fonction de terminaison sera appelée. Dans cette fonction, vous pouvez savoir si c'est le délai d'expiration qui a causé la fin du script, en appelant la fonction connection_status(). Cette fonction retournera 2 si le délai d'expiration a été dépassé.

Une chose à noter est que les deux cas ABORTED et TIMEOUT peuvent être appelés en même temps. Ceci est possible si vous demandez à PHP d'ignorer les déconnexions des utilisateurs. PHP va quand même noter le fait que l'utilisateur s'est déconnecté, mais le script va continuer. Puis, lorsqu'il atteint la limite de temps, le script va expirer. À ce moment-là, la fonction connection_status() retournera 3.


Connexions persistantes aux bases de données

Les connexions persistantes aux bases de données SQL sont des connexions qui ne se referment pas à la fin du script. Lorsqu'une connexion persistante est demandée, PHP s'assure qu'il n'y a pas une autre connexion identique (qui serait ouverte précédemment, avec le même nom d'hôte, d'utilisateur et le même mot de passe), et si une telle connexion existe, elle est utilisée ; sinon, elle est créée. Une connexion identique est une connexion qui a ouvert le même hôte, avec le même nom et le même mot de passe (s'ils sont nécessaires).

Ceux qui ne sont pas rompus aux techniques des serveurs web et leur distribution de la charge de travail se font parfois une fausse idée de ces connexions persistantes. En particulier, les connexions persistantes ne permettent pas l'ouverture de plusieurs sessions avec le même lien ; elles ne permettent pas la réalisation de transactions efficaces et ne font pas le café. En fait, pour être extrêmement clair sur le sujet, les connexions persistantes ne vous donnent aucune fonctionnalité de plus que les connexions non persistantes.

Alors pourquoi les connexions persistantes ?

Cela s'explique par la manière avec laquelle les serveurs web fonctionnent. Il y a trois manières d'utiliser PHP pour générer des pages.

La première est d'utiliser PHP comme un CGI (Common Interface Gateway). Lorsque PHP fonctionne de cette manière, une instance de l'interpréteur PHP est créée puis détruite pour chaque page demandée. Étant donné que cet interpréteur est détruit après chaque requête, toutes les ressources acquises (comme une connexion à une base SQL), sont purement et simplement détruites.

La deuxième méthode, de loin la plus prisée, est d'exécuter PHP sous la forme d'un module sur un serveur multi-processus, ce qui revient à dire : Apache. Un tel serveur a typiquement un processus parent qui coordonne un ensemble de processus fils, qui servent les fichiers. Lorsque les requêtes parviennent depuis un client, elles sont transmises à un fils disponible. Cela signifie que si un client fait une deuxième requête, il peut être servi par un processus client différent du premier. Les connexions persistantes vous permettent alors de ne vous connecter à une base SQL que la première fois. Lors des connexions ultérieures, les processus fils pourront réutiliser la connexion ouverte précédemment.

La dernière méthode est d'utiliser PHP sous la forme d'un module de serveur multithread. Actuellement, PHP supporte ISAPI, WSAPI, et NSAPI (sous Windows), qui permettent tous d'utiliser PHP comme un module sur un serveur multithread tel que Netscape FastTrack (iPlanet), Microsoft Internet Information Server (IIS), et O'Reilly's WebSite Pro. Le comportement est essentiellement le même que pour les serveurs multi-processus décrits précédemment.

Si les connexions persistantes n'ont aucune fonctionnalité de plus, à quoi servent-elles ?

La réponse est extrêmement simple : efficacité. Les connexions persistantes sont un bon moyen d'accélérer les accès à une base SQL si le traitement de connexion à la base est long. Ce temps dépend de nombreux facteurs : le type de base de données, cette base est-elle sur le même serveur ou pas, quelle est la charge du serveur de base de données, etc. Si le temps de connexion est long, les connexions persistantes seront bien utiles, car une fois ouverte par un processus fils, la connexion est réutilisable sans avoir à se reconnecter. Si vous avez 20 processus fils, il suffit d'avoir 20 connexions persistantes ouvertes, une par fils.

Notez que les connexions persistantes ont quelques inconvénients si vous hébergez une base de données dont le nombre maximal de connexion risque d'être atteint par les connexions persistantes. Si votre base de données accepte jusqu'à 16 connexions simultanées et que 17 processus essaient de se connecter, le dernier restera sur la touche. S'il y a des erreurs dans les scripts qui ne permettent pas de fermer la connexion (par exemple, une boucle infinie), votre serveur sera rapidement engorgé. Vérifiez la documentation de votre base de données pour savoir comment elle traite les connexions inactives ou abandonnées.

Avertissement

Il y a quelques autres limitations à bien garder en tête lorsque vous utilisez les connexions persistantes. L'une est que lorsque vous posez un verrou avec une connexion persistante, si le script ne peut libérer le verrou pour une raison quelconque, alors les autres scripts qui réutiliseront la connexion seront bloqués indéfiniment, et vous imposeront le redémarrage du serveur ou de la base de données. Une autre limitation est, lors de l'utilisation des transactions, un bloc de transaction non fermé sera prolongé au script suivant, s'il n'est pas fermé par le script initiateur. Dans les deux cas, vous pouvez utiliser la fonction register_shutdown_function() pour enregistrer une fonction simple de nettoyage, pour déverrouiller les tables, et annuler les transactions en cours. Mieux encore, évitez le problème entièrement en n'utilisant pas les connexions persistantes dans les scripts qui ont besoin de verrous ou de transactions. Vous pourrez toujours les utiliser ailleurs.

Résumons-nous : les connexions persistantes ont été définies pour avoir les mêmes fonctionnalités que les connexions non persistantes. Les deux types de connexions sont parfaitement interchangeables, et n'affecteront pas le comportement de votre script : uniquement son efficacité.

Voir aussi
fbsql_pconnect(),
ibase_pconnect(),
ifx_pconnect(),
ingres_pconnect(),
msql_pconnect(),
mssql_pconnect(),
mysql_pconnect(),
ociplogon(),
odbc_pconnect(),
oci_pconnect(),
pfsockopen(),
pg_pconnect() et
sybase_pconnect().


Safe mode

Sommaire

  • Sécurité et "Safe Mode"
  • Fonctions désactivées par le Safe Mode

Le "Safe Mode" est le mode de sécurité de PHP : une solution au problème de partage de PHP sur un serveur. Ce système pêche au niveau de l'architecture car il n'est pas correct de tenter de résoudre ce problème au niveau de PHP, mais les solutions alternatives basées sur le serveur web et l'OS ne sont pas réalistes. De nombreux intervenants, notamment les fournisseurs d'hébergement, utilisent le "Safe Mode".

Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Changelog for safe mode
Version | Description
5.4.0 | Supprimé de PHP, et génère une erreur fatale de niveau E_CORE_ERROR lorsqu'activé.
5.3.0 | Obsolète, et une erreur de niveau E_DEPRECATED a été ajoutée.


Sécurité et "Safe Mode"

Options de configuration
Nom | Défaut | Modifiable | Historique
safe_mode | "0" | PHP_INI_SYSTEM | Supprimé en PHP 5.4.0.
safe_mode_gid | "0" | PHP_INI_SYSTEM | Supprimé en PHP 5.4.0.
safe_mode_include_dir | NULL | PHP_INI_SYSTEM | Supprimé en PHP 5.4.0.
safe_mode_exec_dir | "" | PHP_INI_SYSTEM | Supprimé en PHP 5.4.0.
safe_mode_allowed_env_vars | "PHP_" | PHP_INI_SYSTEM | Supprimé en PHP 5.4.0.
safe_mode_protected_env_vars | "LD_LIBRARY_PATH" | PHP_INI_SYSTEM | Supprimé en PHP 5.4.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

safe_mode booléen

Active ou non le mode de sécurité de PHP. Si PHP est compilé avec --enable-safe-mode, la valeur par défaut sera On, sinon Off.

Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

safe_mode_gid booléen

Par défaut, le safe mode fait une comparaison des propriétaires, avant d'ouvrir un fichier. Si vous voulez alléger un peu ce niveau de sécurité, vous pouvez réaliser une comparaison de groupe, et activer cette directive. Si cette directive vaut FALSE (sa valeur par défaut), c'est une comparaison sur les UID, et, si elle vaut TRUE c'est une comparaison sur les GID.

safe_mode_include_dir chaîne de caractères

Les vérifications basées sur le UID ou GID sont ignorées lorsque les fichiers inclus sont placés dans le dossier indiqué par cette directive, ainsi que ses sous-dossiers. Les dossiers peuvent être aussi dans l'include_path ou bien il faut inclure le chemin complet.

Cette directive utilise le point virgule de la même façon que le fait include_path, pour permettre de configurer plusieurs dossiers. La restriction spécifiée est en fait un préfixe, plus qu'un nom de dossier. Cela signifie que "safe_mode_include_dir = /dir/incl" autorise aussi bien "/dir/include" que "/dir/incls", s'ils existent. Lorsque vous souhaitez restreindre l'accès à un dossier spécifique, il faut terminer cette directive avec un slash. Par exemple "safe_mode_include_dir = /dir/incl/". Si la valeur de cette directive est vide, aucun fichier avec le UID/GID différent ne peut être inclus.
safe_mode_exec_dir chaîne de caractères

Si PHP est utilisé en safe mode, les fonctions comme system() et toutes celles qui permettent l'exécution en ligne de commande refuseront d'exécuter des programmes qui ne sont pas dans ce dossier. Vous devez utiliser / en tant que séparateur de dossier sous tous les environnements, y compris Windows.

safe_mode_allowed_env_vars chaîne de caractères

Modifier certaines variables d'environnement est un trou de sécurité potentiel. Cette directive contient une liste de noms de variables d'environnement séparées par des virgules, ou de préfixes. En Safe mode, l'utilisateur ne pourra modifier que les variables d'environnement dont le nom commence par l'un des préfixes fourni ici. Par défaut, les utilisateurs ne peuvent modifier que les variables d'environnement qui commencent par PHP_ (e.g. PHP_FOO=BAR).

Note:

Si cette directive est vide, PHP autorisera la modification de TOUTES les variables d'environnement.

safe_mode_protected_env_vars chaîne de caractères

Cette directive contient une liste de variables d'environnement que le programmeur ne pourra pas modifier en utilisant la fonction putenv(). Ces variables seront protégées, même si la directive safe_mode_allowed_env_vars autorise leur modification.

Voir aussi open_basedir, disable_functions, disable_classes, register_globals, display_errors, et log_errors.

Lorsque Safe Mode est actif, PHP vérifie que le propriétaire du script courant est le même que le propriétaire des fichiers ou dossiers qui seront manipulés par ce script. Par exemple, dans la situation suivante :

-rw-rw-r--    1 rasmus   rasmus       33 Jul  1 19:20 script.php
-rw-r--r--    1 root     root       1116 May 26 18:01 /etc/passwd
exécuter le script script.php :
<?php
 readfile('/etc/passwd');
?>
générera cette erreur, si le Safe Mode est activé :
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2

Cependant, il arrive que la vérification faite avec le nom du propriétaire (UID) du fichier soit trop restrictive, et qu'une vérification sur le nom du groupe (GID) soit suffisante. C'est une autre fonctionnalité supportée par la directive safe_mode_gid. En lui donnant la valeur de On, les vérifications seront faites sur le GID, alors qu'en lui laissant sa valeur par défaut de Off, les vérifications seront faites sur le UID.

Si au lieu d'utiliser le Safe Mode, vous utilisez la directive open_basedir, alors les manipulations seront limitées aux fichiers situés dans les dossiers spécifiés. Par exemple (Apache httpd.conf) :

<Directory /docroot>
  php_admin_value open_basedir /docroot
</Directory>
Si vous exécutez le script script.php ci-dessus avec la configuration d'open_basedir, le résultat sera l'affichage suivant :
Warning: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2

Vous pouvez également désactiver les fonctions particulières. Notez que la directive disable_functions ne peut être utilisée en dehors du fichier php.ini, ce qui signifie que vous ne pouvez pas désactiver des fonctions par virtualhost ou par dossiers, dans votre fichier httpd.conf. Si nous ajoutons ceci à notre fichier php.ini :

disable_functions = readfile,system
toute utilisation des fonctions readfile() et system() générera l'affichage suivant :
Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2

Avertissement

Ces restrictions de PHP sont bien sûr invalides en exécution binaire.


Fonctions désactivées par le Safe Mode

Voici une liste non-exhaustive des fonctions désactivées par le Safe Mode.

Fonctions désactivées par le Safe Mode
Fonction | Limitations
dbmopen() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
dbase_open() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
filepro() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
filepro_rowcount() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
filepro_retrieve() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
Fonctions ifx_* | restrictions sql_safe_mode, (!= Safe Mode)
Fonctions ingres_* | restrictions sql_safe_mode, (!= Safe Mode)
Fonctions mysql_* | restrictions sql_safe_mode, (!= Safe Mode)
pg_lo_import() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
posix_mkfifo() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
putenv() | Obéit aux directives safe_mode_protected_env_vars et safe_mode_allowed_env_vars. Voir aussi la documentation de putenv()
move_uploaded_file() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
chdir() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
dl() | Cette fonction est désactivée par le safe-mode
opérateur guillemets obliques | Cette fonction est désactivée par le safe-mode
shell_exec() (équivalent fonctionnel des guillemets obliques) | Cette fonction est désactivée par le safe-mode
exec() | Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
system() | Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
passthru() | Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
popen() | Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
fopen() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
mkdir() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
rmdir() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
rename() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
unlink() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
copy() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. (sur source et target)
chgrp() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
chown() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
chmod() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. De plus, vous ne pouvez pas modifier les SUID, SGID et le bit sticky
touch() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
symlink() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. (note : seule l'hôte cible est vérifié)
link() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. (note : seul le fichier de destination est vérifié.)
apache_request_headers() | En Safe Mode, les en-têtes commençant par authorization (insensible à la casse) ne seront pas retournés.
header() | Avec le safe mode, le uid du script est ajouté à la partie realm de l'en-tête WWW-Authenticate si vous utilisez cet en-tête pour l'identification.
variables PHP_AUTH | Avec le safe mode, les variables PHP_AUTH_USER, PHP_AUTH_PW et PHP_AUTH_TYPE ne sont pas disponibles dans la variable $_SERVER. Indépendamment, vous pouvez utiliser la variable REMOTE_USER pour connaître l'utilisateur. (note : affectée uniquement depuis PHP 4.3.0)
highlight_file(), show_source() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
parse_ini_file() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
set_time_limit() | N'a aucun effet lorsque PHP fonctionne avec le safe mode.
max_execution_time | N'a aucun effet lorsque PHP fonctionne avec le safe mode.
mail() | Si le Safe Mode est actif, le 5ème paramètre est désactivé.
session_start() | Le propriétaire d'un script doit être le même que celui que celui du répertoire session.save_path si le répertoire par défaut session.save_handler est utilisé.
Toutes les fonctions sur les flux et sur le système de fichiers. | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. (Voir l'option safe_mode_include_dir du php.ini.


Utiliser PHP en ligne de commande

Sommaire

  • Introduction
  • Différence avec les autres SAPIs
  • Options
  • Utilisation
  • Flux I/O
  • Shell Interactif
  • Serveur web interne
  • Configurations INI


Introduction

Le but premier de CLI SAPI est le développement d'applications shell avec PHP. Les différences entre le CLI SAPI et les autres SAPI sont expliqués dans ce chapitre. Il est important de mentionner que CLI et CGI sont des SAPI différents malgré le fait qu'ils puissent partager la majeure partie de leurs comportements.

Le CLI SAPI est activé par défaut en utilisant l'option --enable-cli , mais vous pouvez le désactiver en utilisant l'option --disable-cli lors de l'exécution de la commande ./configure.

Le nom, l'emplacement et l'existence des binaires CLI/CGI vont dépendre de la façon dont PHP est installé sur votre système. Par défaut, en exécutant make, les deux binaires CGI et CLI sont compilés et nommés respectivement sapi/cgi/php et sapi/cli/php dans votre répertoire source PHP. Vous remarquerez que les deux se nomment php. Ce qui se passe ensuite pendant le make install dépend de votre ligne de configuration. Si un module SAPI, apxs par exemple, a été choisi pendant la configuration, ou que l'option --disable-cgi a été activée, le CLI est copié dans {PREFIX}/bin/php pendant le make install sinon, le CGI sera placé ici. Si, par exemple, --with-apxs figure dans votre ligne de configuration, le CLI est copié dans {PREFIX}/bin/php pendant le make install. Si vous voulez forcer l'installation du binaire CGI, lancez make install-cli après le make install. Sinon, vous pouvez aussi spécifier --disable-cgi dans votre ligne de configuration.

Note:

Du fait que les deux options --enable-cli et --enable-cgi sont activées par défaut, avoir simplement --enable-cli dans votre ligne de configuration n'implique pas nécessairement que le CLI soit renommé en {PREFIX}/bin/php pendant le make install.

Depuis PHP 5, le binaire CLI est distribué dans le dossier principal sous le nom de php.exe sous Windows. La version CGI est distribuée sous le nom de php-cgi.exe. De plus, un fichier php-win.exe est distribué si PHP est configuré en utilisant l'option de configuration --enable-cli-win32 . Ce fichier fait la même chose que la version CLI, sauf qu'il n'affiche rien et qu'il ne fournit pas de console.

Note: Quel SAPI est installé ?

À partir d'un terminal, lancer php -v vous dira si php est en version CGI ou CLI. Vous pouvez aussi consulter la fonction php_sapi_name() et la constante PHP_SAPI.

Note:

Une page man de manuel Unix est disponible en tapant man php dans l'interpréteur de commande.


Différence avec les autres SAPIs

Les différences les plus notables entre le CLI SAPI et les SAPI sont :

  • Contrairement au CGI SAPI, aucun en-tête HTTP n'est écrit dans le résultat.

    Bien que le CGI SAPI fournisse un moyen de supprimer les en-têtes HTTP, il n'y a pas moyen d'activer les en-têtes HTTP dans le CLI SAPI.

    CLI est lancé en mode silencieux par défaut, bien que les options -q et --no-header soient gardées pour rester compatible avec les anciennes versions CGI.

    Il ne change pas le répertoire courant en celui du script. (les options -C et --no-chdir sont gardées par souci de compatibilité)

    Messages d'erreurs en texte brut (pas de formatage HTML).

  • Il y a plusieurs directives du php.ini qui sont ignorées par le CLI SAPI, car elles n'ont pas de sens en environnement shell :

    Directives php.ini ignorées
    Directive | Valeur par défaut pour CLI SAPI | Commentaire
    html_errors | FALSE | Par défaut à FALSE, vu qu'il peut être bien difficile de lire des messages d'erreur sur un terminal lorsqu'ils sont noyés dans des balises HTML non-interprétées.
    implicit_flush | TRUE | Dans un terminal, il est généralement souhaitable que tout affichage en provenance de print, echo et autres, soit immédiatement affiché, et non pas placé dans un buffer quelconque. Néanmoins, il est toujours possible d'utiliser la bufferisation de sortie si vous voulez retarder un affichage, ou bien en manipuler le contenu une dernière fois.
    max_execution_time | 0 (sans limite) | PHP dans un terminal est susceptible d'être utilisé pour des tâches bien plus diverses que dans des scripts web, et vu que cela prend généralement beaucoup de temps, ce paramètre sera défini par défaut à 0 permettant ainsi d'être illimité.
    register_argc_argv TRUE

    La définition à TRUE de cette directive signifie que les scripts exécutés via le SAPI CLI auront toujours accès à argc (représentant le nombre d'arguments passés à l'application) et argv (le tableau contenant les arguments passés).

    Les variables PHP $argc et $argv sont automatiquement définies et remplies avec les valeurs appropriées, lors de l'utilisation du SAPI CLI. Ces valeurs peuvent également être trouvées dans la variable $_SERVER, par exemple : $_SERVER['argv'].

    output_buffering FALSE

    Même si cette configuration INI est codée en dur à FALSE, les fonctions relatives à l'affichage du buffer sont disponibles.

    max_input_time FALSE

    Le PHP CLI ne supporte pas GET, POST et le téléchargement de fichiers.

    Note:

    Ces directives ne peuvent pas être initialisées avec d'autres valeurs dans le fichier php.ini ou par une autre méthode. C'est une limitation, car ces valeurs par défaut s'appliquent une fois que tous les autres fichiers de configuration ont été analysés. Cependant, ces valeurs peuvent être modifiées durant l'exécution (ce qui n'est pas logique pour certaines directives, comme register_argc_argv).

    Note:

    Il est recommandé de définir ignore_user_abort pour les scripts en ligne de commande. Voir la fonction ignore_user_abort() pour plus d'informations.

  • Pour faciliter le travail en environnement shell, plusieurs constantes sont définies pour les flux I/O.

  • Le CLI SAPI ne transforme pas le dossier courant en dossier d'exécution du script.

    Exemple #1 Exemple montrant la différence avec le SAPI CGI :

    <?php
    // Un test simple : affiche le dossier d'exécution */
    echo getcwd(), "\n";
    ?>

    Lorsque vous utilisez la version CGI, l'affichage sera :

    $ pwd
/tmp

$ php -q autre_dossier/test.php
/tmp/autre_dossier

    Cela montre clairement que PHP modifie le dossier courant, et utilise le dossier du script exécuté.

    En utilisant le CLI SAPI, on obtient :

    $ pwd
/tmp

$ php -f autre_dossier/test.php
/tmp

    Cela donne beaucoup plus de souplesse lorsque vous rédigez des scripts shell avec PHP.

    Note:

    Le CGI SAPI se comporte de la même façon que le CLI SAPI, en lui passant l'option -C , lorsque vous l'invoquez en ligne de commande.


Options de ligne de commande

La liste des options de ligne de commande fournies par PHP est disponible à n'importe quel moment en exécutant PHP avec l'option -h :

Usage: php [options] [-f] <file> [--] [args...]
   php [options] -r <code> [--] [args...]
   php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
   php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
   php [options] -- [args...]
   php [options] -a

  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse and execute <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -S <addr>:<port> Run with built-in web server.
  -t <docroot>     Specify document root <docroot> for built-in web server.
  -s               Output HTML syntax highlighted source.
  -v               Version number
  -w               Output source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

  --ini            Show configuration file names

  --rf <name>      Show information about function <name>.
  --rc <name>      Show information about class <name>.
  --re <name>      Show information about extension <name>.
  --rz <name>      Show information about Zend extension <name>.
  --ri <name>      Show configuration for extension <name>.

Options de ligne de commande
Option | Option longue | Description
-a --interactive

Lance PHP de façon interactive. Pour plus d'informations, reportez-vous à la documentation concernant le shell intéractif.

-b --bindpath

Lie le chemin pour les externes, en mode serveur FASTCGI (CGI uniquement).

-C --no-chdir

Ne pas aller dans le dossier du script (CGI uniquement).

-q --no-header

Mode silencieux. Supprime la sortie des en-têtes HTTP (CGI uniquement).

-T --timing

Mesure le temps d'exécution du script, répété count fois (CGI uniquement).

-c --php-ini

Spécifie le nom du dossier dans lequel se trouve le fichier php.ini, ou encore spécifie un fichier de configuration (INI) directement (qui ne s'appelle pas obligatoirement php.ini) :

$ php -c /custom/directory/ mon_script.php

$ php -c /custom/directory/custom-file.ini mon_script.php

Si cette option n'est pas spécifiée, php.ini est recherché dans les endroits par défaut.

-n --no-php-ini

Ignore totalement php.ini.

-d --define

Définit une valeur personnalisée pour n'importe quelle directive de configuration du fichier php.ini. La syntaxe est :

 -d configuration_directive[=value]

# L'omission de la valeur conduit à donner la valeur de "1"
$ php -d max_execution_time
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(1) "1"

# Passer une valeur vide conduit à donner la valeur de ""
php -d max_execution_time=
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(0) ""

# La directive de configuration sera n'importe quelle valeur passée après le caractère '='
$  php -d max_execution_time=20
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(2) "20"
$  php
        -d max_execution_time=doesntmakesense
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(15) "doesntmakesense"

-e --profile-info

Génère des informations étendues pour le profilage et le débogage.

-f --file

Analyse et exécute le fichier spécifié. L'option -f est facultative, et peut être omise. Le seul nom du fichier est suffisant.

Note:

Pour passer des arguments à un script, le premier argument doit être --, sinon, PHP les interprètera comme des options PHP.

-h et -? | --help et --usage | Affiche des informations sur la liste courante des options de la ligne de commande, ainsi que leur description.
-i | --info | Appelle la fonction phpinfo(), et affiche le résultat. Si PHP ne fonctionne pas correctement, il est recommandé d'utiliser la commande php -i et de voir s'il n'y a pas d'erreurs affichées avant ou après la table d'information. N'oubliez pas que le résultat de cette option, si vous utilisez le mode CGI, est au format HTML, et donc de taille conséquente.
-l --syntax-check

Vérifie syntaxiquement le code PHP fourni. En cas de réussite, le message No syntax errors detected in <filename> (Littéralement, aucune erreur de syntaxe n'a été détectée dans le fichier) est affiché sur la sortie standard, et le script shell retourne 0. En cas d'erreur, le message Errors parsing <filename> (Littéralement, erreur d'analyse dans le fichier filename) est affiché, en plus des messages d'erreurs détectés par l'analyseur lui-même. Le script Shell retourne le code -1.

Cette option ne détecte pas les erreurs fatales (par exemple les fonctions non définies). Utilisez l'option -f pour tester aussi les erreurs fatales.

Note:

Cette option ne fonctionne pas avec l'option -r .

-m --modules

Exemple #1 Affichage des modules internes (et chargés) de PHP et Zend

$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-r --run

Permet l'exécution de PHP directement dans la ligne de commande. Les balises de PHP (<?php et ?>) ne sont pas nécessaires, et causeront une erreur d'analyse si elles sont présentes.

Note:

Une attention toute particulière doit être portée lors de l'utilisation de cette option de PHP, pour qu'il n'y ait pas de collision avec les substitutions de variables en ligne de commande, réalisées par le shell.

Exemple #2 Erreur de syntaxe lors de l'utilisation de doubles guillemets

$ php -r "$foo = get_defined_constants();"
PHP Parse error:  syntax error, unexpected '=' in Command line code on line 1

Parse error: syntax error, unexpected '=' in Command line code on line 1

Le problème ici est que le shell (sh/bash) effectue une substitution de variables, même avec les guillemets doubles ". puisque la variable $foo n'est probablement pas définie dans le shell, elle est remplacée par rien, ce qui fait que le code passé à PHP pour l'exécution est :

$ php -r " = get_defined_constants();"

La solution de ce problème est d'utiliser les guillemets simples '. Les variables de ces chaînes ne seront pas substituées par leurs valeurs par le shell.

Exemple #3 Utilisation de guillemets simples pour éviter une substitution par le shell

$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]

Si un shell différent de sh/bash est utilisé, d'autres problèmes pourront être rencontrés - si approprié, un rapport de bogues pourra être ouvert via à » http://bugs.php.net/. Il est toujours très facile d'avoir des problèmes lorsque vous essayez d'inclure des variables shell dans le code, ou d'utiliser les antislash pour la protection. Vous aurez été prévenu !

Note:

-r est disponible avec le CLI SAPI mais pas avec le SAPI CGI.

Note:

Cette option est seulement utilisée pour des choses simples. Ainsi, quelques directives de configuration (par exemple auto_prepend_file et auto_append_file) sont ignorées dans ce mode.

-B --process-begin

Code PHP à exécuter avant le traitement de stdin.

-R --process-code

Code PHP à exécuter pour chaque ligne en entrée.

Il y a deux variables spéciales de disponibles dans ce mode : $argn et $argi. $argn doit contenir la ligne PHP traitée à ce moment donné, tandis que $argi doit contenir le numéro de la ligne.

-F --process-file

Fichier PHP à exécuter pour chaque ligne en entrée.

-E --process-end

Code PHP à exécuter après avoir effectué l'entrée.

Exemple #4 Exemple d'utilisation des options -B , -R et -E pour compter le nombre de lignes d'un projet.

$ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Total Lines: $l\n";'
Total Lines: 37328

-S --server

Démarre le serveur web interne. Disponible depuis 5.4.0.

-t | --docroot | Spécifie la racine des documents pour le serveur web interne. Disponible depuis PHP 5.4.0.
-s --syntax-highlight et --syntax-highlighting

Affiche le code avec la colorisation syntaxique.

Cette option utilise le mécanisme interne pour analyser le fichier, et écrire au format HTML une version colorisée du code source. Notez que cette option ne fait que générer un bloc HTML, avec les balises HTML <code> [...] </code>, sans en-têtes HTML.

Note:

Cette option ne fonctionne pas avec l'option -r .

-v --version

Exemple #5 Utilisation de l'option -v pour récupérer le nom du SAPI ainsi que la version de PHP et de Zend

$ php -v
PHP 5.3.1 (cli) (built: Dec 11 2009 19:55:07)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

-w --strip

Affiche la source sans les commentaires ni les espaces.

Note:

Cette option ne fonctionne pas avec l'option -r .

-z --zend-extension

Charge une extension Zend. Si et seulement si un fichier est fourni, PHP essaie de charger cette extension dans le dossier courant par défaut des bibliothèque sur votre système (généralement spécifié avec /etc/ld.so.conf sous Linux par exemple). Passer un nom de fichier avec le chemin complet fera que PHP utilisera ce fichier, sans recherche dans les dossiers classiques. Un chemin de dossier relatif, incluant les informations sur le dossier, indiquera à PHP qu'il doit chercher les extensions uniquement dans ce dossier.

--ini

Affiche les noms des fichiers de configuration et des dossiers analysés. Disponible depuis PHP 5.2.3.

Exemple #6 Exemple avec --ini

$ php --ini
Configuration File (php.ini) Path: /usr/dev/php/5.2/lib
Loaded Configuration File:         /usr/dev/php/5.2/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
--rf --rfunction

Affiche des informations sur la fonction donnée ou la méthode d'une classe (i.e. nombre et nom des paramètres). Disponible depuis PHP 5.1.2.

Cette option n'est disponible que si PHP a été compilé avec le support Reflection.

Exemple #7 Exemple avec --rf

$ php --rf var_dump
Function [ <internal> public function var_dump ] {

  - Parameters [2] {
    Parameter #0 [ <required> $var ]
    Parameter #1 [ <optional> $... ]
  }
}
--rc --rclass

Affiche des informations sur la classe donnée (liste des constantes, propriétés et méthodes). Disponible depuis PHP 5.1.2.

Cette option n'est disponible que si PHP a été compilé avec le support Reflection.

Exemple #8 Exemple avec --rc

$ php --rc Directory
Class [ <internal:standard> class Directory ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [3] {
    Method [ <internal> public method close ] {
    }

    Method [ <internal> public method rewind ] {
    }

    Method [ <internal> public method read ] {
    }
  }
}
--re --rextension

Affiche les informations sur l'extension donnée (liste les options du php.ini, les fonctions définies, les constantes et les classes). Disponible depuis PHP 5.1.2.

Cette option n'est disponible que si PHP a été compilé avec le support Reflection.

Exemple #9 Exemple avec --re

$ php --re json
Extension [ <persistent> extension #19 json version 1.2.1 ] {

  - Functions {
    Function [ <internal> function json_encode ] {
    }
    Function [ <internal> function json_decode ] {
    }
  }
}
--rz --rzendextension

Affiche les informations de configuration pour l'extension Zend fourni (les mêmes informations que celles retournées par la fonction phpinfo()). Disponible depuis PHP 5.4.0.

--ri --rextinfo

Affiche les informations de configuration pour l'extension donnée (les mêmes informations retournées par la fonction phpinfo()). Disponible depuis PHP 5.2.2. Les informations de configurations internes sont disponibles en utilisant le nom d'extension "main" ou "core".

Exemple #10 Exemple avec --ri

$ php --ri date

date

date/time support => enabled
"Olson" Timezone Database Version => 2009.20
Timezone Database => internal
Default timezone => Europe/Oslo

Directive => Local Value => Master Value
date.timezone => Europe/Oslo => Europe/Oslo
date.default_latitude => 59.930972 => 59.930972
date.default_longitude => 10.776699 => 10.776699
date.sunset_zenith => 90.583333 => 90.583333
date.sunrise_zenith => 90.583333 => 90.583333

Note:

Les options -rBRFEH, --ini et --r[fcezi] ne sont disponibles qu'en mode CLI.


Exécution de fichiers PHP

Il y a 3 façons différentes d'appeler le CLI SAPI avec du code PHP à exécuter :

  1. Indiquer à PHP d'exécuter un fichier donné :

    php mon_script.php

php -f mon_script.php

    Les deux méthodes (en utilisant -f ou pas) exécutent le script contenu dans le fichier mon_script.php. Notez qu'il n'existe pas de restriction sur les fichiers pouvant être exécutés ; en particulier, il n'est pas nécessaire que l'extension du fichier soit .php.

    Note:

    Si les arguments doivent être passés au script lors de l'utilisation de l'option -f , le premier argument doit être --.

  2. Donner du code PHP à exécuter directement en ligne de commande.

    php -r 'print_r(get_defined_constants());'

    Une attention particulière doit alors être apportée aux variables d'environnement, qui seront remplacées, et aux guillemets, qui ont des significations spéciales en ligne de commande.

    Note:

    Lisez l'exemple attentivement, il n'y a ni balise d'ouverture, ni balise de fermeture ! L'option -r rend caduque l'utilisation de celles-ci, et les ajouter conduirait alors à une erreur d'analyse syntaxique.

  3. Alimenter l'entrée standard en code PHP (stdin).

    Cela donne la possibilité de créer dynamiquement du code PHP, puis de le fournir à PHP, et enfin, de le traiter à nouveau en shell. Voici un exemple fictif :

    $ some_application | some_filter | php | sort -u > final_output.txt
Il n'est pas possible de combiner ces trois modes d'exécution.

Comme toute application shell, l'exécutable PHP accepte des arguments ; cependant, le script PHP peut aussi en recevoir. Le nombre d'arguments pouvant être passés à votre script n'est pas limité par PHP (le shell a une limite en terme de nombre de caractères qui peuvent être passés. Généralement, vous n'atteindrez pas cette limite). Les arguments passés au script seront transmis via la variable tableau $argv. Le premier index (zéro) contient toujours le nom du script appelé depuis la ligne de commande. Notez que, si le code est exécuté en ligne en utilisant l'option de ligne commande -r , la valeur de $argv[0] sera simplement un tiret (-). Cela est aussi vrai si le code est exécuté via un pipe depuis STDIN.

Une seconde variable globale, $argc, contient le nombre d'éléments du tableau $argv (et non pas le nombre d'arguments passés à votre script).

Tant que les arguments passés au script ne commencent pas par le caractère -, il n'y a rien de spécial à surveiller. Le fait de passer des arguments au script qui commencent par - pose des problèmes car PHP va penser qu'il doit les interpréter. Pour éviter cela, utilisez le séparateur --. Après cet argument, tous les arguments suivants seront passés au script sans être modifiés ou analysés par PHP.

# Cela ne va pas exécuter le code, mais afficher l'aide de PHP
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]

# Cela va passer l'argument '-h' au script, et éviter que PHP ne le traite
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

Cependant, il y a une autre méthode pour utiliser PHP en script shell ; la première ligne du script devra être #!/usr/bin/php (à remplacer par le chemin vers le binaire PHP CLI sur le système sous-jacent). Le reste du fichier doit contenir le code PHP normal, compris entre les balises ouvrantes/fermantes. Après avoir mis les droits d'exécution sur le script (chmod +x test), il peut être exécuté comme un script shell ou perl habituel :

Exemple #1 Exécute un script PHP en tant que script shell

#!/usr/bin/php
<?php
var_dump($argv);
?>

En supposant que ce fichier s'appelle test, dans le dossier courant, il est alors possible de faire ceci :

$ chmod +x test
$ ./test -h -- foo
array(4) {
   [0]=>
   string(6) "./test"
   [1]=>
   string(2) "-h"
   [2]=>
   string(2) "--"
   [3]=>
   string(3) "foo"
}

Comme vous pouvez le voir, dans ce cas, vous n'avez pas besoin de faire attention lors du passage de paramètres qui commencent par - à votre script.

L'exécutable PHP peut être utilisé pour exécuter des scripts indépendants du serveur web. Si vous êtes sur un système Unix, il est recommandé d'ajouter la ligne spéciale en début de script, de le rendre exécutable de manière à ce que le système sache quel programme doit exécuter le script. Sous Windows, vous pouvez associer l'exécutable php.exe avec le double-clic sur les fichiers d'extension .php, ou bien vous pouvez faire un fichier batch pour exécuter le script grâce à PHP. La première ligne utilisée dans le monde Unix ne perturbera pas l'exécution sous Windows, ce qui rend les scripts facilement portables. Un exemple complet est disponible ci-dessous :

Exemple #2 Script prévu pour être exécuté en ligne de commande (script.php)

#!/usr/bin/php
<?php

if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>

C'est une ligne de commande à une option.

  Utilisation :
  <?php echo $argv[0]; ?> <option>

  <option> peut être un mot que vous souhaitez afficher.
  Avec les options --help, -help, -h,
  et -?, vous obtiendrez cette aide.

<?php
} else {
    echo $argv[1];
}
?>

Le script ci-dessus inclut la première ligne spéciale indiquant que ce fichier doit être exécuté par PHP. Nous travaillons ici avec la version CLI, aussi, aucun en-tête HTTP ne sera affiché.

Le programme commence par vérifier que l'argument requis est spécifié (en plus du nom du script, qui est aussi compté). S'il n'est pas présent, ou si l'argument est --help , -help , -h ou -? , un message d'aide sera affiché, en utilisant $argv[0] pour afficher dynamiquement le nom du script tel qu'entré dans la ligne de commande. Sinon, l'argument est affiché tel qu'il a été entré dans le terminal.

Pour exécuter le script ci-dessus sous Unix, vous devez le rendre exécutable, puis l'appeler avec une commande comme : script.php echothis ou script.php -h. Sous Windows, vous pouvez faire un fichier batch pour cela :

Exemple #3 Fichier batch pour exécuter un script PHP en ligne de commande (script.bat)

@echo OFF
"C:\php\php.exe" script.php %*

En supposant que le programme ci-dessus est nommé script.php, et que l'exécutable CLI php.exe se trouve dans C:\php\php.exe, ce fichier batch l'exécutera avec les options que vous lui passez : script.bat echothis ou script.bat -h.

Voir aussi l'extension Readline, qui dispose de nombreuses fonctions pour améliorer la convivialité de des applications PHP en ligne de commande.

Sous Windows, PHP peut être configuré pour fonctionner sans avoir besoin de fournir les extensions C:\php\php.exe ou .php, tel que décrit dans la ligne de commande PHP sous Microsoft Windows.


Flux d'entrée/sortie

Le CLI SAPI définit quelques constantes pour les flux I/O pour rendre la programmation en ligne de commande plus facile.

Constantes spécifiques CLI
Constante Description
STDIN

Un flux déjà ouvert vers stdin. Ceci évite de l'ouvrir explicitement avec

<?php
$stdin = fopen('php://stdin', 'r');
?>
Si vous voulez lire une seule ligne depuis stdin, vous pouvez utiliser
<?php
$line = trim(fgets(STDIN)); // lit une ligne depuis STDIN
fscanf(STDIN, "%d\n", $number); // lit des nombres depuis STDIN
?>

STDOUT

Un flux déjà ouvert vers stdout. Ceci évite de l'ouvrir explicitement avec

<?php
$stdout = fopen('php://stdout', 'w');
?>

STDERR

Un flux déjà ouvert vers stderr. Ceci évite de l'ouvrir explicitement avec

<?php
$stderr = fopen('php://stderr', 'w');
?>

Ainsi, vous n'avez pas besoin d'ouvrir un flux spécifique pour, par exemple, stderr mais vous pouvez simplement utiliser la constante correspondante à ce flux :

php -r 'fwrite(STDERR, "stderr\n");'
Vous n'avez pas à clore explicitement ces flux, sachant qu'ils le seront automatiquement par PHP à la fin de votre script.

Note:

Ces constantes ne sont pas disponibles lors d'une lecture d'un script PHP depuis stdin.


Shell Interactif

Depuis PHP 5.1.0, le CLI SAPI fournit un shell intéractif lors de l'utilisation de l'option -a si PHP a été compilé avec l'option --with-readline .

En utilisant le shell interactif, vous avez la possibilité de taper du code PHP et qu'il soit exécuté directement.

Exemple #1 Exécution de code en utilisant le shell interactif

$ php -a
Interactive shell

php > echo 5+8;
13
php > function addTwo($n)
php > {
php { return $n + 2;
php { }
php > var_dump(addtwo(2));
int(4)
php >

Le shell interactif fournit également une auto-complétion des fonctions, des constantes, des noms de classes, des variables, des appels aux méthodes statiques, et des constantes de classes en utilisant la touche de tabulation.

Exemple #2 Auto-complétion en utilisant la touche de tabulation

Le fait de presser deux fois la touche de tabulation lorsqu'il y a plusieurs complétions possibles affichera une liste de ces complétions :

php > strp[TAB][TAB]
strpbrk   strpos    strptime
php > strp

Lorsqu'il n'y a qu'une seul complétion possible, presser la touche de tabulation une seule fois complétera le reste sur la même ligne :

php > strpt[TAB]ime(

La complétion fonctionnera aussi pour les noms qui ont été définis lors de la session courante du shell interactif :

php > $fooThisIsAReallyLongVariableName = 42;
php > $foo[TAB]ThisIsAReallyLongVariableName

Le shell interactif stocke votre historique et peut y accéder en utilisant les touches haut et bas. L'historique est sauvegardé dans le fichier ~/.php_history.

Depuis PHP 5.4.0, le CLI SAPI fournit 2 nouvelles directives du php.ini : cli.pager et cli.prompt. La directive cli.pager permet la définition d'un programme externe (comme less) à utiliser comme pager pour la sortie au lieu d'afficher directement sur l'écran. La directive cli.prompt autorise la modification du prompte php >.

En PHP 5.4.0, il est également possible de définir des directives du php.ini dans un shell interactif en utilisant des notations raccourcies.

Exemple #3 Définition de directives du php.ini dans un shell interactif

La définition de la directive cli.prompt :

php > #cli.prompt=hello world :>
hello world :>

En utilisant des backticks, il est possible d'exécuter du code PHP dans le prompte :

php > #cli.prompt=`echo date('H:i:s');` php >
15:49:35 php > echo 'hi';
hi
15:49:43 php > sleep(2);
15:49:45 php >

Définition du pager à less :

php > #cli.pager=less
php > phpinfo();
(sortie affichée avec less)
php >

La directive cli.prompt supporte quelques séquences d'échappements :

Séquences d'échappements de cli.prompt
Séquence : | Description :
\e | utilisé pour ajouter des couleurs au prompte. Exemple : \e[032m\v \e[031m\b \e[34m\> \e[0m
\v | La version de PHP.
\b | Indique dans quel bloc de PHP nous nous trouvons. Par exemple, /* permet d'indiquer que nous sommes dans un commentaire multi-lignes. Le scope externe est représenté par php.
\> | Indique le caractère utilisé pour le prompte. Par défaut, ce sera >, mais peut être modifié lorsque le shell se trouve dans un bloc indéterminé ou dans une chaîne de caractères. Les caractères possibles sont : ' " { ( >

Note:

Les fichiers inclus via auto_prepend_file et auto_append_file sont analysés dans ce mode, mais avec quelques restrictions - i.e. les fonctions doivent avoir été définies avant l'appel.

Note:

L'autoloading n'est pas disponible si vous utilisez PHP en mode CLI interactif.


Serveur web interne

Avertissement

Ce serveur web a été prévu pour aider dans le développement des applications. Il peut également être utile pour les tests, et pour les démonstrations d'applications qui sont exécutées dans des environnements contrôlés. Mais par contre, il n'a pas été conçu pour être un serveur web complet. Aussi, il ne devrait pas être utilisé dans un réseau public.

Depuis PHP 5.4.0, le CLI SAPI fournit un serveur web interne.

Le serveur web s'exécute sur un seul processus single-thraded, aussi, les applications PHP seront suspendues si une application est bloquée.

Les requêtes URI sont servies depuis le dossier de travail courant où PHP a été démarré, à moins que l'option -t ne soit utilisée pour spécifier explicitement un document racine. Si une requête URI ne spécifie pas un fichier, alors le fichier index.php ou le fichier index.html du dossier courant sera retourné. Si aucun de ces fichiers n'existe, la recherche d'un fichier index.php et index.html se poursuivra dans le dossier parent et ainsi de suite jusqu'à ce qu'un de ces fichier ne soit trouvé ou que le dossier racine ne soit atteint. Si un fichier index.php ou index.html est trouvé, il sera retourné et $_SERVER['PATH_INFO'] sera défini comme la dernière partie de l'URI. Sinon, un code réponse 404 sera retourné.

Si un fichier PHP est fourni dans la ligne de commande lorsque le serveur web est démarré, il sera traité comme un script "routeur". Le script sera exécuté au début de chaque requête HTTP. Si ce script retourne FALSE, alors la ressource demandée est retournée telle quelle. Sinon, la sortie du script est retournée au navigateur.

Les types MIME standards sont retournés pour les fichiers avec les extensions : .3gp, .apk, .avi, .bmp, .css, .csv, .doc, .docx, .flac, .gif, .gz, .gzip, .htm, .html, .ics, .jpe, .jpeg, .jpg, .js, .kml, .kmz, .m4a, .mov, .mp3, .mp4, .mpeg, .mpg, .odp, .ods, .odt, .oga, .ogg, .ogv, .pdf, .pdf, .png, .pps, .pptx, .qt, .svg, .swf, .tar, .text, .tif, .txt, .wav, .webm, .wmv, .xls, .xlsx, .xml, .xsl, .xsd, and .zip.

Historique des modifications : Les types MIME standards (extensions de fichiers)
Version | Description
5.5.12 | .xml, .xsl, and .xsd
5.5.7 | .3gp, .apk, .avi, .bmp, .csv, .doc, .docx, .flac, .gz, .gzip, .ics, .kml, .kmz, .m4a, .mp3, .mp4, .mpg, .mpeg, .mov, .odp, .ods, .odt, .oga, .pdf, .pptx, .pps, .qt, .swf, .tar, .text, .tif, .wav, .wmv, .xls, .xlsx, and .zip
5.5.5 | .pdf
5.4.11 | .ogg, .ogv, and .webm
5.4.4 | .htm and .svg

Exemple #1 Démarrage du serveur web

$ cd ~/public_html
$ php -S localhost:8000

Le terminal affichera :

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit

Après des requêtes URI sur http://localhost:8000/ et http://localhost:8000/myscript.html, le terminal affichera quelques choses comme :

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit.
[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read
[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read
[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read
[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read
[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read

Exemple #2 Démarrage avec un dossier racine spécifique

$ cd ~/public_html
$ php -S localhost:8000 -t foo/

Le terminal affichera :

PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011
Listening on localhost:8000
Document root is /home/me/public_html/foo
Press Ctrl-C to quit

Exemple #3 Utilisation d'un script routeur

Dans cet exemple, le fait de demander des images les affichera, mais les requêtes pour les fichiers HTML afficheront "Bienvenue chez PHP !".

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
    return false;    // retourne la requête telle quelle.
} else {
    echo "<p>Bienvenue chez PHP !</p>";
}
?>
$ php -S localhost:8000 router.php

Exemple #4 Vérification de l'utilisation CLI du serveur Web

Pour ré-utiliser un script router du framework lors du développement avec le CLI du serveur web et ensuite, continuez de l'utiliser avec un serveur web de production :

<?php
// router.php
if (php_sapi_name() == 'cli-server') {
    /* Activation de la route statique et retourne FALSE */
}
/* on continue avec les opérations d'un index.php normal */
?>
$ php -S localhost:8000 router.php

Exemple #5 Gestion des types de fichiers non supportés

Si vous devez servir une ressource statique pour laquelle le type MIME n'est pas géré par le CLI du serveur web, utilisez ceci :

<?php
// router.php
$path = pathinfo($_SERVER["SCRIPT_FILENAME"]);
if ($path["extension"] == "el") {
    header("Content-Type: text/x-script.elisp");
    readfile($_SERVER["SCRIPT_FILENAME"]);
}
else {
    return FALSE;
}
?>
$ php -S localhost:8000 router.php

Exemple #6 Accès au CLI du serveur web depuis une machine distante

Vous pouvez rendre le serveur web accessible sur le port 8000 pour toutes les interfaces avec :

$ php -S 0.0.0.0:8000


Configurations INI

Options de configuration CLI SAPI
Nom | Défaut | Modifiable | Historique
cli_server.color | "0" | PHP_INI_ALL | Disponible depuis PHP 5.4.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

cli_server.color boolean

Active le serveur web de développement interne à utiliser la coloration ANSI du code dans la sortie du terminal.


Ramasse-miettes (Garbage Collection)

Sommaire

  • Bases sur le comptage des références
  • Nettoyage de Cycles
  • Considerations sur les performances

Cette section explique les mérites du nouveau mécanisme ramasse-miettes (aussi appelé GC, du terme anglais Garbage Collection) fourni à partir de PHP 5.3.


Bases sur le comptage des références

Une variable PHP est stockée en interne dans un conteneur appelé "zval". Un conteneur zval contient, outre le type de la variable et sa valeur, deux informations supplémentaires. La première se nomme "is_ref" et est une valeur booléenne qui indique si une variable fait partie d'une référence ou non. Grâce à cette information, le moteur de PHP sait différencier les variables normales des références. Comme PHP autorise le programmeur à utiliser des références, au moyen de l'opérateur &, un conteneur zval possède aussi un mécanisme de comptage des références afin d'optimiser l'utilisation de la mémoire. Cette seconde information, appelée "refcount", contient le nombre de variables (aussi appelées symboles) qui pointent vers ce conteneur zval. Tous les symboles sont stockés dans une table de symboles, et il y a une table par espace de visibilité (scope). Il y a un espace global pour le script principal (celui appelé par exemple via le navigateur) et un espace par fonction ou méthode.

Un conteneur zval est créé lorsqu'une nouvelle variable est créée avec une valeur constante, comme par exemple :

Exemple #1 Création d'un nouveau conteneur zval

<?php
$a = "new string";
?>

Dans ce cas, le nouveau symbole a est créé dans le scope global, et un nouveau conteneur est créé avec comme type string et comme valeur new string. Le bit "is_ref" est mis par défaut à FALSE car aucune référence n'a été créée par le programmeur. Le compteur de références "refcount" est mis à 1 car il n'y a qu'un seul symbole qui utilise ce conteneur. Notez que si "refcount" vaut 1, "is_ref" vaut toujours FALSE. Si vous avez installé » Xdebug, vous pouvez afficher cette information en appelant xdebug_debug_zval().

Exemple #2 Affichage des informations zval

<?php
xdebug_debug_zval('a');
?>

L'exemple ci-dessus va afficher :

a: (refcount=1, is_ref=0)='new string'

Assigner cette variable à un autre symbole va incrémenter le refcount.

Exemple #3 Incrémentation du refcount d'une zval

<?php
$a = "new string";
$b = $a;
xdebug_debug_zval( 'a' );
?>

L'exemple ci-dessus va afficher :

a: (refcount=2, is_ref=0)='new string'

Le refcount vaut 2 ici, car le même conteneur est lié à la fois à a et à b. PHP est suffisamment intelligent pour ne pas dupliquer le conteneur lorsque ce n'est pas nécessaire. Les conteneurs sont détruits lorsque leur "refcount" atteint zéro. Le "refcount" est décrémenté de un lorsque n'importe quel symbole lié à un conteneur sort du scope (e.g. lorsque la fonction se termine) ou lorsque unset() est appelée sur un symbole. L'exemple qui suit le démontre :

Exemple #4 Décrémentation du refcount d'une zval

<?php
$a = "new string";
$c = $b = $a;
xdebug_debug_zval( 'a' );
unset( $b, $c );
xdebug_debug_zval( 'a' );
?>

L'exemple ci-dessus va afficher :

a: (refcount=3, is_ref=0)='new string'
a: (refcount=1, is_ref=0)='new string'

Si, maintenant, nous appelons unset($a);, le conteneur zval, incluant le type et la valeur, va être supprimé de la mémoire.

Types composés

Les choses se compliquent dans le cas de types composés comme array et object. A la différence des valeurs scalaires, les array et object stockent leurs propriétés dans une table de symboles qui leur est propre. Ceci signifie que l'exemple qui suit crée trois conteneurs zval :

Exemple #5 Création d'une zval array

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
xdebug_debug_zval( 'a' );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a: (refcount=1, is_ref=0)=array (
   'meaning' => (refcount=1, is_ref=0)='life',
   'number' => (refcount=1, is_ref=0)=42
)

Ou graphiquement

Zvals d'un tableau simple

Les trois conteneurs zval sont : a, meaning, et number. Les mêmes règles s'appliquent pour l'incrémentation et la décrémentation des "refcounts". Ci-après, nous ajoutons un autre élément au tableau, et nous renseignons sa valeur avec le contenu d'un élément déjà existant du tableau :

Exemple #6 Ajout d'un élément déja existant au tableau

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
$a['life'] = $a['meaning'];
xdebug_debug_zval( 'a' );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a: (refcount=1, is_ref=0)=array (
   'meaning' => (refcount=2, is_ref=0)='life',
   'number' => (refcount=1, is_ref=0)=42,
   'life' => (refcount=2, is_ref=0)='life'
)

Ou graphiquement

Zvals pour un tableau simple avec une référence

La sortie Xdebug que nous voyons indique que l'ancien et le nouvel élément du tableau pointent maintenant tous deux vers un conteneur zval dont le "refcount" vaut 2. Même si la sortie XDebug montre deux conteneurs zval avec comme valeur 'life', ils sont les mêmes. La fonction xdebug_debug_zval() ne montre pas cela, mais vous pourriez le voir en affichant aussi le pointeur de mémoire.

Supprimer un élément du tableau est assimilable à la suppression d'un symbole depuis un espace. Ce faisant, le "refcount" du conteneur vers lequel l'élément du tableau pointe est décrémenté. Une fois encore, s'il atteint zéro, le conteneur zval est supprimé de la mémoire. Voici un exemple qui le démontre :

Exemple #7 Suppression d'un élément de tableau

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
$a['life'] = $a['meaning'];
unset( $a['meaning'], $a['number'] );
xdebug_debug_zval( 'a' );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a: (refcount=1, is_ref=0)=array (
   'life' => (refcount=1, is_ref=0)='life'
)

Maintenant, les choses deviennent intéressantes si nous ajoutons le tableau comme élément de lui-même. Nous faisons cela dans l'exemple qui suit, en utilisant un opérateur de référence pour éviter que PHP ne crée une copie :

Exemple #8 Ajout du tableau comme référence à lui-même en tant qu'élement

<?php
$a = array( 'one' );
$a[] =& $a;
xdebug_debug_zval( 'a' );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a: (refcount=2, is_ref=1)=array (
   0 => (refcount=1, is_ref=0)='one',
   1 => (refcount=2, is_ref=1)=...
)

Ou graphiquement

Zvals dans un tableau avec référence circulaire

Vous pouvez voir que la variable tableau (a) tout comme le second élément (1) pointent désormais vers un conteneur dont le "refcount" vaut 2. Les "..." sur l'affichage indiquent une récursion, qui, dans ce cas, signifie que le "..." pointe sur le tableau lui-même.

Comme précédemment, supprimer une variable supprime son symbole, et le refcount du conteneur sur lequel il pointaint est décrémenté. Donc, si nous supprimons la variable $a après avoir exécuté le code ci-dessus, le compteur de références du conteneur sur lequel pointent $a et l'élément "1" sera décrémenté de un, passant de "2" à "1". Ceci peut être représenté par :

Exemple #9 Suppression de $a

(refcount=1, is_ref=1)=array (
   0 => (refcount=1, is_ref=0)='one',
   1 => (refcount=1, is_ref=1)=...
)

Ou graphiquement

Zvals après suppression du tableau contenant une référence circulaire, fuite mémoire

Problèmes de nettoyage

Bien qu'il n'y ait plus aucun symbole dans l'espace de variables courant qui pointe vers cette structure, elle ne peut être nettoyée, car l'élément "1" du tableau pointe toujours vers ce même tableau. Comme il n'y a plus aucun symbole externe pointant vers cette structure, l'utilisateur ne peut pas la nettoyer manuellement ; il y a donc une fuite de mémoire. Heureusement, PHP va détruire cette structure à la fin de la requête, mais avant cette étape, la mémoire n'est pas libérée. Cette situation se produit souvent si vous implémentez un algorithme d'analyse ou d'autres idées où vous avez un enfant qui pointe vers son parent. La même chose peut bien entendu se produire avec les objets, et c'est même plus probable, puisqu'ils sont toujours implicitement utilisés par référence.

Ceci peut ne pas être gênant si cela n'arrive qu'une ou deux fois, mais s'il y a des des milliers, ou même des millions, de ces fuites mémoires, alors cela risque évidemment de devenir un problème important. C'est particulièrement problématique pour les scripts qui durent longtemps, comme les démons pour lesquels la requête ne termine pour ainsi dire jamais, ou encore dans de grosses suites de tests unitaires. Ce dernier cas a été rencontré en lançant les tests unitaires du composant Template de la bibliothèque eZ Components. Dans certains cas, la suite de tests nécessitait plus de 2Go de mémoire, que le serveur le test n'avait pas vraiment à disposition.


Nettoyage de Cycles

Traditionnellement, les mécanismes de comptage de références, comme utilisés auparavant dans PHP, ne savent pas gérer les fuites mémoires dûes à des références circulaires. Depuis PHP 5.3.0, un algorithme synchrone issu de l'analyse » Concurrent Cycle Collection in Reference Counted Systems est utilisé pour répondre à ce problème particulier.

Une explication complète du fonctionnement de l'algorithme irait un peu au-delà du cadre de cette section, mais nous allons ici présenter les principes de base. Avant tout, nous allons établir quelques règles de base. Si un refcount est incrémenté, le conteneur est toujours utilisé, donc pas nettoyé. Si le refcount est décrémenté et atteint zéro, le conteneur zval peut être supprimé et la mémoire libérée. Premièrement, ceci signifie que les cycles perturbateur ne peuvent être créés que lorsque le refcount est décrémenté vers une valeur différente de zéro. Ensuite, dans un cycle problématique, il est possible de détecter les déchets en vérifiant s'il est possible ou non de décrémenter leur refcount de un, en vérifiant ensuite quelles zvals ont un refcount à zéro.

Algorithme de collecte des déchets

Pour éviter d'avoir à appeler la routine de nettoyage à chaque décrémentation de refcount possible, l'algorithme place toutes les zval racines dans un "tampon de racines" (en les marquant en "violet"). Il s'assure aussi que chaque racine n'apparaisse qu'une seule fois dans le tampon. Le mécanisme de nettoyage n'intervient alors que lorsque le tampon est plein. Voyez l'étape A sur la figure ci-dessus.

A l'étape B, l'algorithme lance une recherche sur toutes les racines possibles, afin de décrémenter de une unité les refcounts de toutes les zvals qu'il trouve, en faisant bien attention de ne pas décrémenter deux fois le refcount de la même zval (en les marquant comme "grises"). A l'étape C, l'algorithme relance une recherche sur toutes les racines possibles et scrute la valeur de refcount de chaque zval. S'il trouve un refcount à zéro, la zval est marquée comme "blanche" (bleu sur la figure). S'il trouve une valeur supérieure à zéro, il annule la décrémentation du refcount en refaisant une recherche à partir de ce noeud, et les marque comme "noires" à nouveau. Dans la dernière étape, D, l'algorithme parcourt tout le tampon des racines et les supprime, tout en scrutant chaque zval ; toute zval marquée comme "blanche" à l'étape précédente sera alors supprimée de la mémoire.

Maintenant que vous savez globalement comment l'algorithme fonctionne, nous allons voir comment il a été intégré dans PHP. Par défaut, le ramasse-miettes de PHP est activé. Il existe cependant une options de php.ini pour changer cela : zend.enable_gc.

Lorsque le ramasse-miettes est activé, l'algorithme de recherche des cycles décrit ci-dessus est exécuté à chaque fois que le tampon est plein. Le tampon de racines a une taille fixée à 10.000 racines (ce paramètre est changeable grâce à GC_ROOT_BUFFER_MAX_ENTRIES dans Zend/zend_gc.c dans le code source de PHP, une recompilation est donc nécessaire). Si le ramasse- miettes est désactivé, la recherche des cycles l'est aussi. Cependant, les racines possibles seront toujours enregistrées dans le tampon, ceci ne dépend pas de l'activation du ramasse-miettes.

Si le tampon est plein alors que le mécanisme de nettoyage est désactivé, les racines ne seront plus enregistrées. Ces racines ne seront donc jamais analysées par l'algorithme, et si elles faisaient partie de références circulaires, elles ne seront jamais nettoyées, et elles causeront des fuites de mémoire.

La raison pour laquelle les racines possibles sont enregistrées dans le tampon même si le mécanisme est désactivé est qu'il aurait été trop coûteux de vérifier l'activation éventuelle du mécanisme à chaque tentative d'ajout d'une racine dans le tampon. Le mécanisme de ramasse-miettes et d'analyse peut, lui, être très coûteux en temps.

En plus de pouvoir changer la valeur du paramètre de configuration zend.enable_gc, vous pouvez aussi activer ou désactiver le mécanisme de ramasse-miettes en appelant les fonctions gc_enable() ou gc_disable() respectivement. Utiliser ces fonctions aura le même effet que de modifier le paramètre de configuration. Vous avez aussi la possibilité de forcer l'exécution du ramasse-miettes à un moment donné dans votre script, même si le tampon n'est pas encore complètement plein. Utilisez pour cela la fonction gc_collect_cycles(), qui retournera le nombre de cycles alors collectés.

Vous pouvez prendre le contrôle en désactivant le ramasse-miettes ou en le forçant à passer à un moment donné car certaines parties de votre application pourraient être fortement dépendantes du temps de traitement, auquel cas vous pourriez souhaiter que le ramasse-miettes ne se lance pas. Bien entendu, en désactivant le ramasse-miettes pour certaines parties de votre application, vous prenez le risque de créer des fuites de mémoire, puisque certaines racines probables pourraient de pas être enregistrées dans le tampon mémoire de taille limitée. En conséquence, il est généralement recommandé de déclencher manuellement le processus grâce à gc_collect_cycles() juste avant l'appel à gc_disable(), pour libérer de la mémoire. Ceci laissera un tampon vidé, et il y aura plus d'espace pour des racines probables lorsque le mécanisme sera désactivé.


Considerations sur les performances

Nous avons déja vu dans les sections précédentes que la collecte des racines probables avait un impact très léger sur les performances, mais c'est lorsque l'on compare PHP 5.2 à PHP 5.3. Même si l'enregistrement des racines probables est plus lent que de ne pas les enregistrer du tout, comme dans PHP 5.2, d'autres améliorations apportées par PHP 5.3 font que cette opération ne se ressent pas au niveau des performances.

Il y a principalement deux niveaux pour lesquels les performances sont affectées. Le premier est l'empreinte mémoire réduite, et le second est le délai à l'exécution, lorsque le mécanisme de nettoyage effectue son opération de libération de mémoire. Nous allons étudier ces deux axes.

Empreinte mémoire réduite

Avant tout, la raison principale de l'implémentation du mécanisme de collecte des déchets est la réduction de la mémoire consommée, en nettoyant les références circulaires lorsque les conditions requises sont remplies. Avec PHP, ceci arrive dès que le tampon de racines est plein, ou lorsque la fonction gc_collect_cycles() est appelée. Sur le graphe ci-après, nous affichons l'utilisation mémoire du script suivant, avec PHP 5.2 et avec PHP 5.3, en excluant la mémoire obligatoire que PHP consomme pour lui-même au démarrage.

Exemple #1 Exemple d'utilisation mémoire

<?php
class Foo
{
    public $var = '3.14159265359';
}

$baseMemory = memory_get_usage();

for ( $i = 0; $i <= 100000; $i++ )
{
    $a = new Foo;
    $a->self = $a;
    if ( $i % 500 === 0 )
    {
        echo sprintf( '%8d: ', $i ), memory_get_usage() - $baseMemory, "\n";
    }
}
?>
Comparaison de la consommation mémoire entre PHP 5.2 et PHP 5.3

Dans cet exemple quelque peu académique, nous créons un objet possédant un attribut le référençant lui-même. Lorsque la variable $a dans le script est réassignée à l'itération suivante, une fuite mémoire apparaitra. Dans ce cas, les deux conteneurs zval fuient (la zval de l'objet et celle de l'attribut), mais une seule racine possible est trouvée : la variable qui a été supprimée. Lorsque le tampon de racines est plein après 10.000 itérations (avec un total de 10.000 racines possibles), le mécanisme de collecte des déchets entre en jeu et libère la mémoire associée à ces racines probables. Cela se voit très clairement sur les graphes d'utilisation mémoire de PHP 5.3. Après chaque 10.000 itérations, le mécanisme se déclenche et libère la mémoire associée aux variables circulairement référencées. Le mécanisme en question n'a pas énormément de travail dans cet exemple, parce que la structure qui a fuit est extrêmement simple. Le diagramme montre que l'utilisation maximale de mémoire de PHP 5.3 est d'environ 9Mo, là où elle n'arrête pas d'augmenter avec PHP 5.2.

Ralentissements durant l'exécution

Le second point où le mécanisme de collecte des déchets (GC) affecte les performances est lorsqu'il est exécuté pour libérer la mémoire "gaspillée". Pour quantifier cet impact, nous modifions légérement le script précédent afin d'avoir un nombre d'itérations plus élevé et de supprimer la collecte de l'usage mémoire intermédiaire. Le second script est reproduit ci-dessous :

Exemple #2 Impact de GC sur les performances

<?php
class Foo
{
    public $var = '3.14159265359';
}

for ( $i = 0; $i <= 1000000; $i++ )
{
    $a = new Foo;
    $a->self = $a;
}

echo memory_get_peak_usage(), "\n";
?>

Nous allons lancer ce script 2 fois, une fois avec zend.enable_gc à on, et une fois à off:

Exemple #3 Lancement du script ci-dessus

time php -dzend.enable_gc=0 -dmemory_limit=-1 -n example2.php
# and
time php -dzend.enable_gc=1 -dmemory_limit=-1 -n example2.php

Sur ma machine, la première commande semble durer tout le temps 10,7 secondes, alors que la seconde commande prend environ 11,4 secondes. Cela correspond à un ralentissement de 7% environ. Cependant, la quantité totale de mémoire utilisée par le script est réduite de 98%, passant de 931Mo à 10Mo. Ce benchmark n'est pas très scientifique ou même représentatif d'applications réelles, mais il démontre concrètement en quoi le mécanisme de collecte des déchets peut être utile au niveau de la consommation mémoire. Le bon point est que le ralentissement est toujours de 7%, dans le cas particulier de ce script, alors que la mémoire préservée sera de plus en plus importante au fur et à mesure que des références circulaires apparaitront durant l'éxécution.

Statistiques internes du GC de PHP

Il est possible d'obtenir quelques informations supplémentaires concernant le mécanisme de collecte des déchets interne à PHP. Mais pour cela, il vous faut recompiler PHP avec le support du benchmarking et de la collecte de données. Vous devrez renseigner la variable d'environnement CFLAGS avec -DGC_BENCH=1 avant de lancer ./configure avec les options qui vous intéressent. L'exemple suivant démontre cela :

Exemple #4 Recompiler PHP pour activer le support du benchmark du GC

export CFLAGS=-DGC_BENCH=1
./config.nice
make clean
make

Lorsque vous ré-éxécutez le code du script ci-dessus avec le binaire PHP fraichement reconstruit, vous devriez voir le résultat suivant après l'exécution :

Exemple #5 Statistiques GC

GC Statistics
-------------
Runs:               110
Collected:          2072204
Root buffer length: 0
Root buffer peak:   10000

      Possible            Remove from  Marked
        Root    Buffered     buffer     grey
      --------  --------  -----------  ------
ZVAL   7175487   1491291    1241690   3611871
ZOBJ  28506264   1527980     677581   1025731

Les statistiques les plus intéressantes sont affichées dans le premier bloc. Vous voyez ici que le mécanisme de collecte des déchets a été déclenché 110 fois, et qu'au total ce sont plus de 2 millions d'allocations mémoire qui ont été libérées durant ces 110 passages. Dès lors que le mécanisme est intervenu au moins une fois, le pic du buffer racine est toujours de 10000.

Conclusion

De manière générale, la collecte des déchets de PHP ne causera un ralentissement que lorsque l'algorithme de collecte de cycles tournera, ce qui signifie que dans les scripts normaux (plus courts), il ne devrait pas du tout y avoir d'impact sur les performances.

Cependant, lorsque le mécanisme de collecte de cycles sera déclenché dans des scripts normaux, la réduction de l'empreinte mémoire permettra l'exécution parallèle d'un nombre plus important de ces scripts, puisque moins de mémoire sera utilisée au total.

Les avantages se sentent plus nettement dans le cas de scripts démons ou devant tourner longtemps. Ainsi, pour les applications » PHP-GTK qui tournent souvent plus longtemps que des scripts pour le Web, le nouveau mécanisme devrait réduire significativement les fuites mémoire sur le long terme.


  • « Considerations sur les performances
  • Introduction to PHP and DTrace »
  • PHP Manual
  • Caractéristiques
  • DTrace Dynamic Tracing

DTrace Dynamic Tracing

Sommaire

  • Introduction to PHP and DTrace
  • Using PHP and DTrace
  • Using SystemTap with PHP DTrace Static Probes


Introduction to PHP and DTrace

DTrace is an always-available, low overhead, tracing framework available on a number of platforms including Solaris, Mac OS X, Oracle Linux and BSD. DTrace can trace operating system behavior and user program execution. It can display argument values and be used to infer performance statistics. Probes are monitored by user created scripts written in the DTrace D scripting language. This allows efficient analysis of data points.

PHP probes that are not being actively monitored by a user's DTrace D script do not contain instrumented code so there is no performance degradation during normal application execution. Probes that are being monitored incur an overhead low enough to generally allow DTrace monitoring on live production systems.

PHP incorporates "User-level Statically Defined Tracing" (USDT) probes that are triggered at runtime. For example, when a D script is monitoring PHP's function-entry probe, then, every time a PHP script function is called, this probe is fired and the associated D script action code is executed. This action code could, for example, print probe arguments such as the source file location of the PHP function. Or the action could aggregate data such as the number of times each function is called.

Only the PHP USDT probes are described here. Refer to external general and operating system-specific DTrace literature to see how DTrace can be used to trace arbitrary functions, and how it can be used to trace operating system behavior. Note not all DTrace features are available in all DTrace implementations.

DTrace static probes are included in PHP 5.4. Prior to this they were available via a » PECL extension, which is now obsolete.

The static DTrace probes in PHP can alternatively be used with the SystemTap facility on some Linux distributions.


Using PHP and DTrace

PHP can be configured with DTrace static probes on platforms that support DTrace Dynamic Tracing.

Configuring PHP for DTrace Static Probes

Refer to external platform specific documentation for enabling operating system DTrace support. For example, on Oracle Linux boot a UEK3 kernel and do:

# modprobe fasttrap
# chmod 666 /dev/dtrace/helper

Instead of using chmod, you could instead use an ACL package rule to limit device access to a specific user.

Build PHP with the --enable-dtrace configuration parameter:

# ./configure --enable-dtrace ...
# make
# make install

This enables the static probes in core PHP. Any PHP extensions that provide their own probes should be built separately as shared extensions.

DTrace Static Probes in Core PHP

The following static probes are available in PHP
Probe Name | Probe Description | Probe Arguments
request-startup | Fires when a request starts. | char *file, char *request_uri, char *request_method
request-shutdown | Fires when a request shutdown. | char *file, char *request_uri, char *request_method
compile-file-entry | Fires when the compilation of a script starts. | char *compile_file, char *compile_file_translated
compile-file-return | Fires when the compilation of a script finishes. | char *compile_file, char *compile_file_translated
execute-entry | Fires when an opcode array is to be executed. For example, it fires on function calls, includes, and generator resumes. | char *request_file, int lineno
execute-return | Fires after execution of an opcode array. | char *request_file, int lineno
function-entry | Fires when the PHP engine enters a PHP function or method call. | char *function_name, char *request_file, int lineno, char *classname, char *scope
function-return | Fires when the PHP engine returns from a PHP function or method call. | char *function_name, char *request_file, int lineno, char *classname, char *scope
exception-thrown | Fires when an exception is thrown. | char *classname
exception-caught | Fires when an exception is caught. | char *classname
error | Fires when an error occurs, regardless of the error_reporting level. | char *errormsg, char *request_file, int lineno

PHP extensions may also have additional static probes.

Listing DTrace Static Probes in PHP

To list available probes, start a PHP process and then run:

# dtrace -l

The output will be similar to:

   ID   PROVIDER            MODULE                          FUNCTION NAME
   [ . . . ]
    4   php15271               php               dtrace_compile_file compile-file-entry
    5   php15271               php               dtrace_compile_file compile-file-return
    6   php15271               php                        zend_error error
    7   php15271               php  ZEND_CATCH_SPEC_CONST_CV_HANDLER exception-caught
    8   php15271               php     zend_throw_exception_internal exception-thrown
    9   php15271               php                 dtrace_execute_ex execute-entry
   10   php15271               php           dtrace_execute_internal execute-entry
   11   php15271               php                 dtrace_execute_ex execute-return
   12   php15271               php           dtrace_execute_internal execute-return
   13   php15271               php                 dtrace_execute_ex function-entry
   14   php15271               php                 dtrace_execute_ex function-return
   15   php15271               php              php_request_shutdown request-shutdown
   16   php15271               php               php_request_startup request-startup

The Provider column values consist of php and the process id of the currently running PHP process.

If the Apache web server is running, the module name might be, for example, libphp5.so, and there would be multiple blocks of listings, one per running Apache process.

The Function column refers to PHP's internal C implementation function names where each provider is located.

If a PHP process is not running, then no PHP probes will be shown.

DTrace with PHP Example

This example shows the basics of the DTrace D scripting language.

Exemple #1 all_probes.d for tracing all PHP Static Probes with DTrace

#!/usr/sbin/dtrace -Zs

#pragma D option quiet

php*:::compile-file-entry
{
    printf("PHP compile-file-entry\n");
    printf("  compile_file              %s\n", copyinstr(arg0));
    printf("  compile_file_translated   %s\n", copyinstr(arg1));
}

php*:::compile-file-return
{
    printf("PHP compile-file-return\n");
    printf("  compile_file              %s\n", copyinstr(arg0));
    printf("  compile_file_translated   %s\n", copyinstr(arg1));
}

php*:::error
{
    printf("PHP error\n");
    printf("  errormsg                  %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
}

php*:::exception-caught
{
    printf("PHP exception-caught\n");
    printf("  classname                 %s\n", copyinstr(arg0));
}

php*:::exception-thrown
{
    printf("PHP exception-thrown\n");
    printf("  classname                 %s\n", copyinstr(arg0));
}

php*:::execute-entry
{
    printf("PHP execute-entry\n");
    printf("  request_file              %s\n", copyinstr(arg0));
    printf("  lineno                    %d\n", (int)arg1);
}

php*:::execute-return
{
    printf("PHP execute-return\n");
    printf("  request_file              %s\n", copyinstr(arg0));
    printf("  lineno                    %d\n", (int)arg1);
}

php*:::function-entry
{
    printf("PHP function-entry\n");
    printf("  function_name             %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
    printf("  classname                 %s\n", copyinstr(arg3));
    printf("  scope                     %s\n", copyinstr(arg4));
}

php*:::function-return
{
    printf("PHP function-return\n");
    printf("  function_name             %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
    printf("  classname                 %s\n", copyinstr(arg3));
    printf("  scope                     %s\n", copyinstr(arg4));
}

php*:::request-shutdown
{
    printf("PHP request-shutdown\n");
    printf("  file                      %s\n", copyinstr(arg0));
    printf("  request_uri               %s\n", copyinstr(arg1));
    printf("  request_method            %s\n", copyinstr(arg2));
}

php*:::request-startup
{
    printf("PHP request-startup\n");
    printf("  file                      %s\n", copyinstr(arg0));
    printf("  request_uri               %s\n", copyinstr(arg1));
    printf("  request_method            %s\n", copyinstr(arg2));
}

This script uses the -Z option to dtrace, allowing it to be run when there is no PHP process executing. If this option were omitted the script would immediately terminate because it knows none of the probes to be monitored are in existence.

The script traces all core PHP static probe points throughout the duration of a running PHP script. Run the D script:

# ./all_probes.d

Run a PHP script or application. The monitoring D script will output each probe's arguments as it fires.

When monitoring is complete, the D script can be terminated with a ^C.

On multi-CPU machines the probe ordering might not appear to be sequential. This depends on which CPU was processing the probes, and how threads migrate across CPUs. Displaying probe time stamps will help reduce confusion, for example:

php*:::function-entry
{
      printf("%lld: PHP function-entry ", walltimestamp);
      [ . . .]
}

See Also

  • OCI8 and DTrace Dynamic Tracing


Using SystemTap with PHP DTrace Static Probes

On some Linux distributions, the SystemTap tracing utility can be used to trace PHP's static DTrace probes. This is available with PHP 5.4.20 and PHP 5.5.

Installing PHP with SystemTap

Install the SystemTap SDT development package:

# yum install systemtap-sdt-devel

Install PHP with the DTrace probes enabled:

# ./configure --enable-dtrace ...
# make

Listing Static Probes with SystemTap

The static probes in PHP can be listed using stap:

# stap -l 'process.provider("php").mark("*")' -c 'sapi/cli/php -i'

This outputs:

process("sapi/cli/php").provider("php").mark("compile__file__entry")
process("sapi/cli/php").provider("php").mark("compile__file__return")
process("sapi/cli/php").provider("php").mark("error")
process("sapi/cli/php").provider("php").mark("exception__caught")
process("sapi/cli/php").provider("php").mark("exception__thrown")
process("sapi/cli/php").provider("php").mark("execute__entry")
process("sapi/cli/php").provider("php").mark("execute__return")
process("sapi/cli/php").provider("php").mark("function__entry")
process("sapi/cli/php").provider("php").mark("function__return")
process("sapi/cli/php").provider("php").mark("request__shutdown")
process("sapi/cli/php").provider("php").mark("request__startup")

SystemTap with PHP Example

Exemple #1 all_probes.stp for tracing all PHP Static Probes with SystemTap

probe process("sapi/cli/php").provider("php").mark("compile__file__entry") {
    printf("Probe compile__file__entry\n");
    printf("  compile_file %s\n", user_string($arg1));
    printf("  compile_file_translated %s\n", user_string($arg2));
}
probe process("sapi/cli/php").provider("php").mark("compile__file__return") {
    printf("Probe compile__file__return\n");
    printf("  compile_file %s\n", user_string($arg1));
    printf("  compile_file_translated %s\n", user_string($arg2));
}
probe process("sapi/cli/php").provider("php").mark("error") {
    printf("Probe error\n");
    printf("  errormsg %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
}
probe process("sapi/cli/php").provider("php").mark("exception__caught") {
    printf("Probe exception__caught\n");
    printf("  classname %s\n", user_string($arg1));
}
probe process("sapi/cli/php").provider("php").mark("exception__thrown") {
    printf("Probe exception__thrown\n");
    printf("  classname %s\n", user_string($arg1));
}
probe process("sapi/cli/php").provider("php").mark("execute__entry") {
    printf("Probe execute__entry\n");
    printf("  request_file %s\n", user_string($arg1));
    printf("  lineno %d\n", $arg2);
}
probe process("sapi/cli/php").provider("php").mark("execute__return") {
    printf("Probe execute__return\n");
    printf("  request_file %s\n", user_string($arg1));
    printf("  lineno %d\n", $arg2);
}
probe process("sapi/cli/php").provider("php").mark("function__entry") {
    printf("Probe function__entry\n");
    printf("  function_name %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
    printf("  classname %s\n", user_string($arg4));
    printf("  scope %s\n", user_string($arg5));
}
probe process("sapi/cli/php").provider("php").mark("function__return") {
    printf("Probe function__return: %s\n", user_string($arg1));
    printf(" function_name %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
    printf("  classname %s\n", user_string($arg4));
    printf("  scope %s\n", user_string($arg5));
}
probe process("sapi/cli/php").provider("php").mark("request__shutdown") {
    printf("Probe request__shutdown\n");
    printf("  file %s\n", user_string($arg1));
    printf("  request_uri %s\n", user_string($arg2));
    printf("  request_method %s\n", user_string($arg3));
}
probe process("sapi/cli/php").provider("php").mark("request__startup") {
    printf("Probe request__startup\n");
    printf("  file %s\n", user_string($arg1));
    printf("  request_uri %s\n", user_string($arg2));
    printf("  request_method %s\n", user_string($arg3));
}

The above script will trace all core PHP static probe points throughout the duration of a running PHP script:

# stap -c 'sapi/cli/php test.php' all_probes.stp


Référence des fonctions

Astuce

Voir aussi Catégorie/Liste des extensions.

  • Affecte le comportement de PHP
    • APC — Cache PHP alternatif
    • APCu — APC User Cache
    • APD — Débogueur PHP avancé
    • bcompiler — Compilateur bytecode PHP
    • BLENC — Blenc - Encodeur BLowfish pour les sources des scripts PHP
    • Gestion des erreurs — Gestion des erreurs et des journaux
    • htscanner — Support du format .htaccess pour toutes les SAPI
    • inclued — Arbre d'inclusions
    • Memtrack
    • OPcache
    • Contrôle de l'affichage — Bufferisation de sortie
    • Options PHP et informations PHP
    • runkit
    • scream — Casse l'opérateur de silence
    • uopz
    • Weakref — Références faibles
    • WinCache — Windows Cache pour PHP
    • Xhprof — Profilage hiérarchique
  • Manipulation audio
    • ID3 — Balises ID3
    • KTaglib
    • oggvorbis — OGG/Vorbis
    • OpenAL — Gestion Audio OpenAL
  • Services d'identification
    • KADM5 — Kerberos V
    • Radius
  • Extensions spécifiques à la ligne de commande
    • Ncurses — Fonctions de contrôle d'écran de terminal
    • Newt
    • Readline — GNU Readline
  • Extensions sur l'archivage et la compression
    • Bzip2
    • LZF
    • Phar
    • Rar — Archives RAR
    • Zip
    • Zlib — Compression Zlib
  • Traitement des cartes de crédit
    • MCVE — Paiement MCVE (Monetra)
  • Extensions sur la cryptographie
    • Crack — Cracklib
    • CSPRNG
    • Hash — HASH
    • Mcrypt
    • Mhash
    • OpenSSL
    • Table de hachage de mot de passe
  • Extensions sur les bases de données
    • Interface d'abstraction
    • Extensions spécifiques des fabricants de bases de données
  • Extensions relatives aux dates et aux heures
    • Calendar
    • Date/Heure — Date et Heure
    • HRTime — Gestion du temps à haute résolution
  • Extensions relatives aux systèmes de fichiers
    • Direct IO
    • Les dossiers
    • Fileinfo — Informations sur les fichiers
    • Système de fichiers
    • Inotify
    • Mimetype
    • Proctitle
    • xattr
    • xdiff
  • Support du langage humain et de l'encodage de caractères
    • Enchant — Bibliothèque d'orthographe Enchant
    • FriBiDi
    • Gender — Détermine le sexe d'un prénom
    • Gettext
    • iconv
    • intl — Fonctions d'internationalisation
    • Chaînes de caractères multi-octets
    • Pspell
    • Recode — GNU Recode
  • Génération et traitement des images
    • Cairo
    • Exif — Informations Exif
    • GD — Traitement des images et GD
    • Gmagick
    • ImageMagick — Traitement des images (ImageMagick)
  • Extensions relatives aux emails
    • Cyrus — Administration Cyrus IMAP
    • IMAP — IMAP, POP3 et NNTP
    • Mail
    • Mailparse
    • vpopmail
  • Extensions sur les mathématiques
    • BC Math — Fonctions BCMath
    • GMP — GNU Multiple Precision
    • Lapack
    • Math — Fonctions mathématiques
    • Fonctions statistiques
    • Trader — Analyse technique pour les marchands
  • Affichage des données non-textuelles
    • FDF — Format de formulaire
    • GnuPG — GNU PG
    • haru — Haru PDF
    • Ming — Ming (flash)
    • PDF
    • PS — Création de document PostScript
    • RPM Reader — Lecture d'en-tête RPM
  • Extensions sur le contrôle des processus
    • Eio
    • Ev
    • Expect
    • Libevent
    • PCNTL — Contrôle du processus
    • POSIX
    • Exécution de programme — Système d'exécution de programme
    • pthreads
    • Semaphore — Sémaphore
    • Mémoire partagée
    • Sync
  • Autres extensions basiques
    • GeoIP — Localisation géographique des IPs
    • FANN — FANN (Fast Artificial Neural Network)
    • JSON — Notation Objet JavaScript
    • Judy — Les tableaux Judy
    • Lua
    • Misc. — Fonctions diverses
    • Parsekit
    • SPL — Bibliothèque standard PHP (SPL)
    • Types SPL — Gestion des types SPL
    • Flux
    • Tidy
    • Tokenizer
    • URLs
    • V8js — Intégration du moteur Javascript V8
    • Yaml — Linéarisation de données YAML
    • Yaf — Yaf (i.e. Yet Another Framework)
    • Taint
  • Autres services
    • chdb — Base de données de hachage constante
    • cURL — Bibliothèque d'URL client
    • Event
    • FAM — Moniteur d'altération de fichiers
    • FTP
    • Gearman
    • Gopher — Net Gopher
    • Gupnp
    • Hyperwave API
    • LDAP — Lightweight Directory Access Protocol
    • Memcache
    • Memcached
    • mqseries
    • Réseau
    • RRD — RRDtool
    • SAM — SAM - Messagerie asynchrone
    • SNMP
    • Sockets
    • SSH2 — Fonctions Shell2 sécurisé
    • Stomp — Client Stomp
    • SVM — Support Vector Machine
    • SVN — Subversion
    • TCP — TCP Wrappers
    • Varnish
    • YAZ
    • YP/NIS
    • 0MQ messaging — ZMQ
    • ZooKeeper
  • Extensions spécifiques aux moteurs de recherche
    • mnoGoSearch
    • Solr — Apache Solr
    • Sphinx — Client Sphinx
    • Swish — Indexation Swish
  • Extensions spécifiques aux serveurs
    • Apache
    • Gestionnaire de processus FastCGI
    • IIS — Administration d'IIS
    • NSAPI
  • Extensions sur les Sessions
    • Msession — Fonctions sur le gestionnaire de session Mohawk
    • Sessions — Gestion des sessions
    • Session PgSQL — Sauvegarde d'Identifiant de session dans PostgreSQL
  • Traitement du texte
    • BBCode
    • PCRE — Expressions rationnelles (compatible Perl)
    • Regex POSIX — Expressions rationnelles
    • ssdeep — Hachages flous ssdeep
    • Chaîne de caractères
  • Extensions relatives aux variables et aux types
    • Les tableaux
    • Classes/Objets — Les Classes/Objets
    • Classkit
    • ctype — Vérification des types de caractères
    • Data Structures
    • Filter — Filtrage des données
    • Gestion des fonctions
    • Quickhash
    • Reflection
    • Gestion des variables
  • Services Web
    • OAuth
    • SCA
    • SOAP
    • Yar — Yet Another RPC Framework
    • XML-RPC
  • Extensions pour Windows uniquement
    • COM — COM et .Net (Windows)
    • win32ps
    • win32service
  • Manipulation XML
    • DOM — Model Objet d'un document
    • libxml
    • SDO
    • SDO-DAS-Relational — SDO Relationnel Service d'Accès de Données
    • SDO DAS XML — Fonctions de Service d'Accès de Données SDO XML
    • SimpleXML
    • WDDX
    • XMLDiff — XML : Différence et fusion
    • Analyseur syntaxique XML
    • XMLReader
    • XMLWriter
    • XSL
  • Extensions GUI
    • UI


Affecte le comportement de PHP

  • APC — Cache PHP alternatif
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions APC
    • APCIterator — La classe APCIterator
  • APCu — APC User Cache
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • APCu Fonctions
    • APCUIterator — The APCUIterator class
  • APD — Débogueur PHP avancé
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions APD
  • bcompiler — Compilateur bytecode PHP
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions bcompiler
  • BLENC — Blenc - Encodeur BLowfish pour les sources des scripts PHP
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Blenc
  • Gestion des erreurs — Gestion des erreurs et des journaux
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions sur la gestion des erreurs
  • htscanner — Support du format .htaccess pour toutes les SAPI
    • Introduction
    • Installation/Configuration
  • inclued — Arbre d'inclusions
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions inclued
  • Memtrack
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
  • OPcache
    • Introduction
    • Installation/Configuration
    • Fonctions OPcache
  • Contrôle de l'affichage — Bufferisation de sortie
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions de bufferisation de sortie
  • Options PHP et informations PHP
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions sur les options et les informations de PHP
  • runkit
    • Introduction
    • Constantes pré-définies
    • Installation/Configuration
    • Fonctions runkit
  • scream — Casse l'opérateur de silence
    • Introduction
    • Installation/Configuration
    • Exemples
  • uopz
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Uopz
  • Weakref — Références faibles
    • Introduction
    • Installation/Configuration
    • WeakRef — La classe WeakRef
    • WeakMap — La classe WeakMap
  • WinCache — Windows Cache pour PHP
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions WinCache
    • Compilation sous Windows
  • Xhprof — Profilage hiérarchique
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Xhprof


Cache PHP alternatif

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions APC
    • apc_add — Met en cache une nouvelle variable dans le magasin de données
    • apc_bin_dump — Récupère une sortie binaire des fichiers et variables utilisateur spécifiés
    • apc_bin_dumpfile — Envoi une sortie binaire des fichiers et variables utilisateur spécifiés vers un fichier
    • apc_bin_load — Charge une sortie binaire vers le cache fichiers ou utilisateur d'APC
    • apc_bin_loadfile — Charge une sortie binaire depuis un fichier dans le cache fichiers ou utilisateur d'APC
    • apc_cache_info — Récupère les informations du cache dans l'entrepôt APC
    • apc_cas — Met à jour une ancienne valeur par une nouvelle
    • apc_clear_cache — Efface le cache APC
    • apc_compile_file — Stocke un fichier dans le cache, en évitant tous les filtres
    • apc_dec — Décrémente un nombre stocké
    • apc_define_constants — Définit un jeu de constantes pour la récupération et la définition en masse
    • apc_delete_file — Efface des fichiers du cache opcode
    • apc_delete — Efface une variable stockée dans le cache
    • apc_exists — Vérifie si une clé APC existe
    • apc_fetch — Récupère une variable stockée dans le cache
    • apc_inc — Incrémente un nombre stocké
    • apc_load_constants — Charge un jeu de constantes depuis le cache
    • apc_sma_info — Récupère les informations d'allocation mémoire partagée d'APC
    • apc_store — Met en cache une variable dans le magasin
  • APCIterator — La classe APCIterator
    • APCIterator::__construct — Construit un objet d'itération APCIterator
    • APCIterator::current — Récupère l'élément en cours
    • APCIterator::getTotalCount — Récupère le nombre total d'éléments
    • APCIterator::getTotalHits — Récupère le nombre total de cache hits
    • APCIterator::getTotalSize — Récupère la taille totale du cache
    • APCIterator::key — Récupère la clé de l'itérateur
    • APCIterator::next — Déplace le pointeur vers l'élément suivant
    • APCIterator::rewind — Rembobine l'itérateur
    • APCIterator::valid — Vérifie si la position courante de l'itérateur est valide


Introduction

Le cache PHP alternatif (Alternative PHP Cache - APC) est un cache d'opcode libre et ouvert pour PHP. Son objectif est de fournir un framework libre, ouvert, et robuste, pour la mise en cache et l'optimisation de code intermédiaire PHP.


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Configuration à l'exécution
  • Types de ressources


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/apc.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Note: Sous Windows, APC a besoin qu'un chemin temporaire existe et soit accessible en écriture par le serveur Web. APC vérifie la valeur des variables d'environnement TMP, TEMP et USERPROFILE dans cet ordre, et tente finalement le dossier WINDOWS si aucune de ces variables n'est définie.

Note: Pour des détails techniques sur l'implémentation de ce framework, lisez le » fichier TECHNOTES fourni par les développeurs .


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Bien que la configuration par défaut d'APC soit suffisante pour la plupart des installations, les utilisateurs avancés devraient affiner certains paramètres.

Il y a deux décisions importantes que vous devez prendre lorsque vous configurez APC. Tout d'abord, quelle quantité de mémoire partagée va être allouée à APC, et ensuite, si vous voulez qu'APC vérifie à chaque requête si un fichier a été modifié. Les deux directives de configuration correspondantes sont apc.shm_size et apc.stat. Lisez avec attention la section suivante sur ces deux directives de configuration.

Une fois que vous avez un serveur qui fonctionne, vous devriez copier le script apc.php fourni avec l'extension vers un endroit accessible par le serveur web, puis l'appeler depuis votre navigateur. Il vous fournira de nombreux détails sur votre cache. Si GD est actif sur votre configuration PHP, il y aura aussi des graphiques intéressants. La première chose à vérifier, bien évidemment, est que APC stocke effectivement des fichiers en cache. Si cela fonctionne, le nombre Cache full count sur la gauche indiquera le nombre de fois où le cache a atteint sa capacité maximale, et où APC a dû effacer de force des entrées qui n'avaient pas été accédées dans les dernières apc.ttl secondes. Dans le cas d'un cache bien configuré, ce nombre est minimisé. Si le cache est constamment rempli, et donc vidé de force, les opérations résultantes auront un impact dévastateur sur les performances. La manière la plus simple de minimiser ce nombre est d'allouer plus de mémoire pour APC. Ceci dit, la directive apc.filters peut être utilisée pour mettre en cache moins de scripts.

Lorsque APC est compilé avec le support mmap (Memory Mapping), il n'utilisera qu'un seul segment mémoire, alors que APC compilé avec le support SHM (SysV Shared Memory) utilisera plusieurs segments mémoires. MMAP n'a pas de limite maximale comme SHM dans /proc/sys/kernel/shmmax. En général MMAP est recommandé car il accèdera à la mémoire de manière plus rapide lorsque le serveur web est redémarré et il réduit aussi les impacts des allocations mémoire au démarrage.

Options de configuration APC
Nom | Défaut | Modifiable | Historique
apc.enabled | "1" | PHP_INI_SYSTEM | PHP_INI_SYSTEM avec APC 2. PHP_INI_ALL avec APC <= 3.0.12
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "32M" | PHP_INI_SYSTEM |
apc.shm_strings_buffer | "4M" | PHP_INI_SYSTEM | Disponible depuis APC 3.1.4.
apc.optimization | "0" | PHP_INI_ALL | PHP_INI_SYSTEM avec APC 2. Supprimé depuis APC 3.0.13.
apc.num_files_hint | "1000" | PHP_INI_SYSTEM |
apc.user_entries_hint | "4096" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.0.
apc.ttl | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.0.
apc.user_ttl | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.0.
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.cache_by_default | "1" | PHP_INI_ALL | PHP_INI_SYSTEM avec APC <= 3.0.12. Disponible depuis APC 3.0.0.
apc.filters | NULL | PHP_INI_SYSTEM |
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.slam_defense | "1" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.0. Avant la version 3.1.4 d'APC, la valeur par défaut était "0" (désactivé).
apc.file_update_protection | "2" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.6.
apc.enable_cli | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.7.
apc.max_file_size | "1M" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.7.
apc.use_request_time | "1" | PHP_INI_ALL | Disponible depuis APC 3.1.3.
apc.stat | "1" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.10.
apc.write_lock | "1" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.11.
apc.report_autofilter | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.11.
apc.serializer | "default" | PHP_INI_SYSTEM | Disponible depuis APC 3.1.0.
apc.include_once_override | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.12.
apc.rfc1867 | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.13.
apc.rfc1867_prefix | "upload_" | PHP_INI_SYSTEM |
apc.rfc1867_name | "APC_UPLOAD_PROGRESS" | PHP_INI_SYSTEM |
apc.rfc1867_freq | "0" | PHP_INI_SYSTEM |
apc.rfc1867_ttl | "3600" | PHP_INI_SYSTEM | Disponible depuis APC 3.1.1.
apc.localcache | "0" | PHP_INI_SYSTEM | Disponible en APC 3.0.14 - 3.1.11.
apc.localcache.size | "512" | PHP_INI_SYSTEM | Disponible en APC 3.0.14 - 3.1.11.
apc.coredump_unmap | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.16.
apc.stat_ctime | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.13.
apc.preload_path | NULL | PHP_INI_SYSTEM | Disponible depuis APC 3.1.1.
apc.file_md5 | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.1.1.
apc.canonicalize | "1" | PHP_INI_SYSTEM | Disponible depuis APC 3.1.1.
apc.lazy_functions | 0 | PHP_INI_SYSTEM | Disponible depuis APC 3.1.3.
apc.lazy_classes | 0 | PHP_INI_SYSTEM | Disponible depuis APC 3.1.3.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

apc.enabled booléen

apc.enabled peut être défini à 0 pour désactiver APC. Ceci est principalement utile lorsque APC est compilé statiquement dans PHP, et qu'il n'y a donc aucun autre moyen de le désactiver (lorsque compilé en tant que DSO, la ligne extension dans le php.ini peut juste être commentée).

apc.shm_segments entier

Le nombre de segments mémoire à allouer pour le cache compilé. Si APC arrive à court de mémoire partagée, mais que vous avez déjà défini apc.shm_size à une valeur aussi élevée que votre système le permet, vous pouvez tenter de relever cette valeur.

apc.shm_size entier

La taille de chaque segment de mémoire partagée en MB. Par défaut, quelques systèmes (incluant la plupart des BSD) ont une limite de taille d'un segment mémoire partagé très basse.

apc.shm_strings_buffer string

La taille de la mémoire à utiliser comme tampon partagé pour les chaînes utilisées en interne par APC. La taille devra être suffixé par un M pour Méga-octets, un G pour Giga-octets. L'activation de cette option va réduire la quantité de mémoire utilisée par le worker PHP-FPM, sachant que les chaînes seront stockées qu'une seule fois plutôt que pour chaque worker.

apc.optimization entier

Le degré d'optimisation. Zéro désactive l'optimiseur, et de hautes valeurs utilisent des optimisations agressives. Attendez-vous à des améliorations très modestes de vitesse. Ceci est expérimental.

apc.num_files_hint entier

Un "conseil" au sujet du nombre de fichiers sources distincts qui seront inclus ou demandés sur votre serveur web. Définissez le à zéro ou omettez-le si vous n'êtes pas sûr ; ce paramètre est principalement utile pour les sites qui ont des milliers de fichiers sources.

apc.user_entries_hint entier

Tout comme apc.num_files_hint, un "conseil" à propos du nombre de variables de cache utilisateur distinctes à stocker. Définissez le à 0 ou ne le définissez pas si vous n'êtes pas sûr.

apc.ttl entier

Le nombre de secondes pendant lesquelles une entrée de cache est autorisée à stagner dans un slot dans le cas où ce slot d'entrée de cache est nécessaire pour une autre entrée. Laisser ce paramètre à zéro signifie que le cache d'APC pourrait potentiellement se remplir de vieilles entrées alors que de nouvelles entrées ne seraient pas mises en cache. Dans le cas d'un cache arrivant totalement à court de mémoire disponible, celui-ci sera totalement vidé si ttl est égal à 0. Dans le cas contraire, si le ttl est supérieur à 0, APC essayera de supprimer des entrées ayant expirées.

apc.user_ttl entier

Le nombre de secondes pendant lesquelles une entrée du cache utilisateur est autorisée à résider dans un slot dans le cas où ce slot d'entrée de cache est demandé par une autre entrée. Laisser cette option à zéro signifie que votre cache peut potentiellement se remplir d'entrées obsolètes alors que de nouvelles entrées ne seront pas mises en cache. Dans le cas où le cache est totalement à court d'espace, il sera totalement vidé si ttl vaut 0. Sinon, si le ttl est supérieur à 0, APC tentera de supprimer les entrées qui ont dépassées leur date d'expiration.

apc.gc_ttl entier

Le nombre de secondes pendant lesquelles une entrée de cache peut rester dans la liste de ramasse-miettes. Cette directive fournit une sécurité dans le cas où un processus serveur meurt pendant qu'il exécute un fichier source mis en cache ; si ce fichier source est modifié, la mémoire allouée pour l'ancienne version ne sera pas récupérée tant que la durée spécifiée par ce TTL ne sera pas écoulée. Positionnez cette directive à zéro pour désactiver cette fonctionnalité.

apc.cache_by_default booléen

Actif par défaut, mais peut être désactivé et utilisé en conjonction avec un apc.filters positif pour que les fichiers soient mis en cache uniquement s'ils correspondent à un filtre positif.

apc.filters chaîne de caractères

Une liste d'expressions rationnelles POSIX étendues séparées par des virgules. Si un masque correspond à un nom de fichier source, alors celui-ci ne sera pas mis en cache. Notez que le nom du fichier utilisé pour la comparaison est celui passé aux instructions include ou require, et non un chemin absolu. Si le premier caractère de l'expression est un +, alors l'expression sera additive dans le sens que chaque fichier correspondant à l'expression sera mis en cache, et si le premier caractère est un - alors tout ce qui correspond ne sera pas mis en cache. Le cas du - est celui par défaut, il peut donc être omis.

apc.mmap_file_mask chaîne de caractères

Si compilé avec le support MMAP en utilisant --enable-mmap, ce sera le masque de fichier de style mktemp à passer au module MMAP pour déterminer si votre région de mémoire MMAP va être mise dans un fichier ou en mémoire partagée. Pour de la mise en cache vers un fichier MMAP, définissez ce paramètre comme /tmp/apc.XXXXXX (exactement 6 X). Pour utiliser shm_open/mmap de style POSIX, placez un .shm quelque part dans votre masque, comme /apc.shm.XXXXXX. Vous pouvez également définir ce paramètre à /dev/zero pour utiliser l'interface/dev/zero de votre kernel vers de la mémoire anonyme MMAP. Le laisser indéfini forcera un MMAP anonyme.

apc.slam_defense entier

Sur les serveurs très surchargés, lorsque vous démarrez le serveur ou modifiez des fichiers, vous pouvez créer une course d'un grand nombre de processus essayant tous de mettre en cache le même fichier au même moment. Cette option définit le pourcentage de processus qui éviteront de tenter de mettre en cache un fichier non mis en cache. Ou pensez à elle comme à la probabilité qu'a un processus d'éviter la mise en cache. Par exemple, définir apc.slam_defense à 75 signifie qu'il y aura 75 % de chances qu'un processus donné ne mette pas en cache un fichier qui ne s'y trouvera pas déjà. Positionnez cette directive à 0 pour désactiver cette fonctionnalité.

Cette directive a été rendue obsolète par apc.write_lock.

apc.file_update_protection entier

Lorsque qu'un fichier est modifié sur un serveur web, il faudrait vraiment que ce soit fait d'une façon atomique. Typiquement, cela peut se faire en écrivant vers un fichier temporaire, et en renommant (mv) celui-ci vers son emplacement permanent lorsqu'il est prêt. La plupart des éditeurs de texte, cp, tar et d'autres programmes de ce genre ne font pas cela. Cela signifie qu'il y a une chance pour qu'un fichier soit accédé (et donc, mis en cache) alors qu'il est encore en cours d'écriture. Le paramètre apc.file_update_protection fait intervenir un délai avant la mise en cache des nouveaux fichiers. Par défaut, il vaut 2 secondes, ce qui signifie que si le timestamp de modification (mtime) d'un fichier montre qu'il est agé de moins de 2 secondes au moment où il est accédé, ce fichier ne sera pas mis en cache. La malheureuse personne qui a accédé à ce fichier à moitié écrit verra toujours quelque chose d'étrange, mais au moins, ceci ne persistera pas en cache. Si tous les fichiers du serveurs sont modifiés de manière atomique, à l'aide d'une méthode comme rsync qui fait cela correctement, cette protection peut être désactivée en définissant cette directive à 0. Si le système est noyé sous les entrées/sorties et que des procédures de mise à jour durent plus de 2 secondes, cette valeur devrait être augmentée, pour activer la protection sur ces opérations d'écritures plus lentes.

apc.enable_cli entier

Principalement pour tester et déboguer. Définir ceci active APC pour la version CLI de PHP. Dans des circonstances normales, il n'est pas idéal de créer, peupler, et détruire le cache APC à chaque requête CLI, mais pour divers scénarios de test, il est utile de pouvoir activer facilement APC pour la version CLI de PHP.

apc.max_file_size entier

Permet d'éviter la mise en cache de fichiers dont la taille est supérieure à cette valeur. Par défaut, 1Mo.

apc.stat entier

Faites très attention si vous modifiez cette valeur. Elle vaut par défaut on, ce qui force APC à vérifier (stat) le script à chaque requête pour déterminer s'il a été modifié ou non. S'il a été modifié, il sera compilé à nouveau et la nouvelle version sera mise en cache. En désactivant cette option, aucune vérification n'aura lieu. Cela signifie généralement que si vous voulez forcer APC à détecter des modifications, vous devrez redémarrer le serveur web, ou vider manuellement le cache. Notez que les configurations FastCGI de serveurs peuvent ne pas vider le cache au redémarrage. Sur un serveur de production où vous modifiez rarement le code, le fait de désactiver cette option permet de réaliser un gain de performances significatif.

Cette option est également prise en compte pour les fichiers inclus/requis, mais notez que si vous utilisez des chemins relatifs (n'importe quel chemin qui ne commence pas par un / sous Unix), APC doit vérifier de manière à identifier le fichier de manière unique. Si vous utilisez des chemins absolus pour vos inclusions, APC peut éviter ces vérifications et utiliser ce chemin absolu en tant qu'identifiant unique du fichier.

apc.write_lock booléen

Sur les serveurs très chargés, lorsque vous démarrez le serveur ou lorsque beaucoup de fichiers ont été modifiés au même moment, APC peut essayer de compiler et de mettre en cache le même fichier plusieurs fois. Write_lock garantit qu'un seul processus tentera la compilation et la mise en cache d'un script non caché. Les autres processus essayant d'utiliser le script fonctionneront sans utiliser le cache d'opcode, au lieu d'être bloqués dans l'attente de l'initialisation de celui-ci.

apc.report_autofilter booléen

Loggue tous les scripts qui ont été automatiquement exclus de la mise en cache à cause de problèmes de liaison.

apc.serializer string

Utilisé pour configurer APC pour utiliser un linéariseur tierce.

apc.include_once_override booléen

Optimise les appels aux fonctions include_once et require_once et évite les appels système coûteux qui auraient autrement été effectués.

Avertissement

Cette fonctionnalité est EXPERIMENTALE. Son comportement, son nom, ainsi que sa documentation peuvent être modifiés sans avertissement dans une version future d'APC. Cette fonctionnalité doit être utilisée à votre propre risque.

apc.rfc1867 booléen

Le gestionnaire de progression de téléchargement de fichier RFC1867 n'est disponible que si vous avez compilé APC avec PHP 5.2.0 ou supérieur. Lorsque le support est actif, les fichiers téléchargés qui incluent un champ appelé APC_UPLOAD_PROGRESS avant le champ "file" d'un formulaire de téléchargement feront qu'APC créera automatiquement une entrée de cache utilisateur nommée upload_key où key est la valeur de l'entrée de formulaire APC_UPLOAD_PROGRESS.

Notez que le champ caché spécifié par APC_UPLOAD_PROGRESS doit être placé avant le champ de type file, sinon le suivi de l'upload ne fonctionnera pas correctement.

Notez que la surveillance du téléchargement de fichier n'est pas compatible avec les threads pour le moment. Ainsi, les nouveaux téléchargements survenant tandis qu'un précédent est toujours en cours désactiveront la surveillance précédente.

Notez que rate n'est disponible que lorsque tous les transferts sont terminés.

Exemple #1 Exemple avec apc.rfc1867

<?php
print_r(apc_fetch("upload_$_POST[APC_UPLOAD_PROGRESS]"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [total] => 1142543
    [current] => 1142543
    [rate] => 1828068.8
    [filename] => test
    [name] => file
    [temp_filename] => /tmp/php8F
    [cancel_upload] => 0
    [done] => 1
)

apc.rfc1867_prefix chaîne de caractères

Préfixe de la clé à utiliser pour l'entrée de cache utilisateur générée par la fonctionnalité de progression de téléchargement RFC1867.

apc.rfc1867_name chaîne de caractères

Spécifie le nom du champ masqué du formulaire qui active le suivi de la progression du téléchargement et spécifie le suffixe de la clé du cache utilisateur.

apc.rfc1867_freq chaîne de caractères

La fréquence à laquelle des mises à jour doivent être effectuées pour l'entrée du cache utilisateur pour la progression du téléchargement. Ceci peut prendre la forme d'un pourcentage de la taille totale du fichier ou une taille en octets, optionnellement suffixée par "k", "m", ou "g" pour kilo-octets, méga-octets ou giga-octets (insensible à la casse). Si vous définissez cette option à 0, la mise à jour interviendra aussi souvent que possible, ce qui peut rendre le téléchargement plus lent.

apc.rfc1867_ttl integer

TTL pour les entrées rfc1867.

apc.localcache booléen

Ceci active un cache sans verrou, propre au processus courant, qui réduit les blocages de verrous lorsque le cache est en cours d'écriture.

apc.localcache.size entier

La taille du cache propre au processus, qui devrait être définie à une valeur suffisamment élevée, soit approximativement la moitié de la valeur de apc.num_files_hint.

apc.coredump_unmap booléen

Active la gestion APC des signaux, comme SIGSEGV, qui écrit les fichiers internes lorsqu'il est émis. Lorsque ces signaux sont reçus, APC tentera de détacher les segments de la mémoire partagée afin de les exclure du fichier interne. Cette configuration devrait rendre plus stable le système lorsque des signaux fatals sont reçus et qu'un gros segment APC de mémoire partagée est configuré.

Avertissement

Cette fonctionnalité est potentiellement dangereuse. Le détachement d'un segment de mémoire partagée dans un gestionnaire de signaux fatals peut produire à un comportement indéterminé si une erreur fatale survient.

Note:

Bien que certains noyaux puissent fournir une fonctionnalité permettant d'ignorer divers types de mémoire partagée lors de la génération du fichier interne, ces implémentations peuvent également ignorer d'importants segments de mémoire partagée tel que le scoreboard d'Apache.

apc.stat_ctime entier

Une vérification avec ctime permet d'éviter les problèmes causés par des programmes comme svn ou rsync en s'assurant que les inodes n'ont pas été modifiés depuis le dernier appel à stat. APC, normalement, n'utilise que mtime pour cela.

apc.canonicalize bool

Si activé, les chemins relatifs sont canonisés en mode no-stat. Si défini, alors les fichiers inclus via les gestionnaires de flux ne pourront pas être mis en cache, puisque que la fonction realpath() ne supporte pas les gestionnaires de flux.

apc.preload_path string

Optionnellement, définit un chemin vers le dossier depuis lequel APC va charger les données de cache au démarrage.

apc.use_request_time bool

Utilise le temps de début de requête SAPI pour le TTL.

apc.file_md5 bool

Enregistre un hashage md5 pour les fichiers.

apc.lazy_functions integer

Active le chargement à la demande pour les fonctions.

apc.lazy_classes integer

Active le chargement à la demande pour les classes.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

APC_BIN_VERIFY_CRC32 (entier)
APC_BIN_VERIFY_MD5 (entier)
APC_ITER_ALL (entier)
APC_ITER_ATIME (entier)
APC_ITER_CTIME (entier)
APC_ITER_DEVICE (entier)
APC_ITER_DTIME (entier)
APC_ITER_FILENAME (entier)
APC_ITER_INODE (entier)
APC_ITER_KEY (entier)
APC_ITER_MD5 (entier)
APC_ITER_MEM_SIZE (entier)
APC_ITER_MTIME (entier)
APC_ITER_NONE (entier)
APC_ITER_NUM_HITS (entier)
APC_ITER_REFCOUNT (entier)
APC_ITER_TTL (entier)
APC_ITER_TYPE (entier)
APC_ITER_VALUE (entier)
APC_LIST_ACTIVE (entier)
APC_LIST_DELETED (entier)


Fonctions APC

Sommaire

  • apc_add — Met en cache une nouvelle variable dans le magasin de données
  • apc_bin_dump — Récupère une sortie binaire des fichiers et variables utilisateur spécifiés
  • apc_bin_dumpfile — Envoi une sortie binaire des fichiers et variables utilisateur spécifiés vers un fichier
  • apc_bin_load — Charge une sortie binaire vers le cache fichiers ou utilisateur d'APC
  • apc_bin_loadfile — Charge une sortie binaire depuis un fichier dans le cache fichiers ou utilisateur d'APC
  • apc_cache_info — Récupère les informations du cache dans l'entrepôt APC
  • apc_cas — Met à jour une ancienne valeur par une nouvelle
  • apc_clear_cache — Efface le cache APC
  • apc_compile_file — Stocke un fichier dans le cache, en évitant tous les filtres
  • apc_dec — Décrémente un nombre stocké
  • apc_define_constants — Définit un jeu de constantes pour la récupération et la définition en masse
  • apc_delete_file — Efface des fichiers du cache opcode
  • apc_delete — Efface une variable stockée dans le cache
  • apc_exists — Vérifie si une clé APC existe
  • apc_fetch — Récupère une variable stockée dans le cache
  • apc_inc — Incrémente un nombre stocké
  • apc_load_constants — Charge un jeu de constantes depuis le cache
  • apc_sma_info — Récupère les informations d'allocation mémoire partagée d'APC
  • apc_store — Met en cache une variable dans le magasin


Met en cache une nouvelle variable dans le magasin de données

  • « Fonctions APC
  • apc_bin_dump »
  • PHP Manual
  • Fonctions APC
  • Met en cache une nouvelle variable dans le magasin de données

apc_add

(PECL apc >= 3.0.13)

apc_add — Met en cache une nouvelle variable dans le magasin de données

Description

bool apc_add ( string $key , mixed $var [, int $ttl = 0 ] )
array apc_add ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] )

Met en cache une variable dans le magasin de données, uniquement si elle ne s'y trouve pas déjà.

Note: Contrairement aux autres mécanismes en PHP, les variables stockées en utilisant la fonction apc_add() seront persistantes entre les requêtes (jusqu'à ce que la valeur soit effacée du cache).

Liste de paramètres

key

Stocke la variable en utilisant son nom. La clé key est unique dans le cache, donc utilisez la fonction apc_add() pour stocker une donnée avec une clé qui existe déjà n'efface pas la donnée existante, mais retournera FALSE. (C'est la seule différence entre la fonction apc_add() et la fonction apc_store().)

var

La variable à stocker

ttl

Durée de vie ; stocke la variable var dans le cache pendant ttl secondes. Après ce délai, la variable stockée sera effacée du cache (à la requête suivante). Si le paramètre ttl n'est pas fourni (ou s'il vaut 0), la valeur persistera tant qu'elle ne sera pas effacée manuellement du cache, ou si elle n'existe plus dans le cache (effacement, redémarrage, etc.).

values

Les noms comme clés, les variables comme valeurs.

Valeurs de retour

Retourne TRUE si quelque chose a bien été aujouté au cache, FALSE sinon. La seconde syntaxe retourne un tableau avec les clés en erreur.

Exemples

Exemple #1 Exemple avec apc_add()

<?php
$bar = 'BAR';
apc_add('foo', $bar);
var_dump(apc_fetch('foo'));
echo "\n";
$bar = 'NEVER GETS SET';
apc_add('foo', $bar);
var_dump(apc_fetch('foo'));
echo "\n";
?>

L'exemple ci-dessus va afficher :

string(3) "BAR"
string(3) "BAR"

Voir aussi

  • apc_store() - Met en cache une variable dans le magasin
  • apc_fetch() - Récupère une variable stockée dans le cache
  • apc_delete() - Efface une variable stockée dans le cache


Récupère une sortie binaire des fichiers et variables utilisateur spécifiés

  • « apc_add
  • apc_bin_dumpfile »
  • PHP Manual
  • Fonctions APC
  • Récupère une sortie binaire des fichiers et variables utilisateur spécifiés

apc_bin_dump

(PECL apc >= 3.1.4)

apc_bin_dump — Récupère une sortie binaire des fichiers et variables utilisateur spécifiés

Description

string apc_bin_dump ([ array $files = NULL [, array $user_vars = NULL ]] )

Retourne une sortie binaire des fichiers et des variables utilisateur spécifiés depuis le cache APC. Passer NULL pour les fichiers ou les variables utilisateur signifie qu'une sortie sera retournée pour chaque entrée existante, alors que array() permettra de n'avoir aucune sortie.

Liste de paramètres

files

Les fichiers. Passer NULL entrainera un retour pour chaque entrée existante, alors que passer array() ne génèrera aucune sortie.

user_vars

Les variables utilisateur. Passer NULL entrainera un retour pour chaque entrée existante, alors que passer array() ne génèrera aucune sortie.

Valeurs de retour

Retourne une sortie binaire de chaque fichier et chaque variable utilisateur depuis le cache APC. FALSE est retourné si APC n'est pas activé et NULL si une erreur est survenue.

Voir aussi

  • apc_bin_dumpfile() - Envoi une sortie binaire des fichiers et variables utilisateur spécifiés vers un fichier
  • apc_bin_load() - Charge une sortie binaire vers le cache fichiers ou utilisateur d'APC


Envoi une sortie binaire des fichiers et variables utilisateur spécifiés vers un fichier

  • « apc_bin_dump
  • apc_bin_load »
  • PHP Manual
  • Fonctions APC
  • Envoi une sortie binaire des fichiers et variables utilisateur spécifiés vers un fichier

apc_bin_dumpfile

(PECL apc >= 3.1.4)

apc_bin_dumpfile — Envoi une sortie binaire des fichiers et variables utilisateur spécifiés vers un fichier

Description

int apc_bin_dumpfile ( array $files , array $user_vars , string $filename [, int $flags = 0 [, resource $context = NULL ]] )

Envoi une sortie binaire des fichiers et des variables utilisateur spécifiés depuis le cache APC vers un fichier donné.

Liste de paramètres

files

Les noms des fichiers à sortir.

user_vars

Les variables utilisateur à sortir.

filename

Le fichier vers lequel envoyer les sorties.

flags

Drapeaux passés au flux filename. Voyez la documentation de file_put_contents() pour plus de détails.

context

Le contexte de flux à passer pour filename. Voyez la documentation de file_put_contents() pour plus de détails.

Valeurs de retour

Le nombre d'octets écrits dans le fichier, sinon FALSE si APC n'est pas activé, si filename est invalide ou ne peut être ouvert, si la sortie générée est incomplète (ex: le disque est plein) ou enfin si une erreur quelconque est survenue.

Voir aussi

  • apc_bin_dump() - Récupère une sortie binaire des fichiers et variables utilisateur spécifiés
  • apc_bin_load() - Charge une sortie binaire vers le cache fichiers ou utilisateur d'APC


Charge une sortie binaire vers le cache fichiers ou utilisateur d'APC

  • « apc_bin_dumpfile
  • apc_bin_loadfile »
  • PHP Manual
  • Fonctions APC
  • Charge une sortie binaire vers le cache fichiers ou utilisateur d'APC

apc_bin_load

(PECL apc >= 3.1.4)

apc_bin_load — Charge une sortie binaire vers le cache fichiers ou utilisateur d'APC

Description

bool apc_bin_load ( string $data [, int $flags = 0 ] )

Charge la sortie binaire spécifiée vers le cache fichiers ou utilisateur d'APC

Liste de paramètres

data

La sortie binaire à charger, obtenue probablement depuis apc_bin_dump().

flags

Soit APC_BIN_VERIFY_CRC32, soit APC_BIN_VERIFY_MD5, soit les deux combinés.

Valeurs de retour

Retourne TRUE si la sortie binaire data a été chargée avec succès, sinon FALSE est retourné. FALSE est retourné si APC n'est pas activé ou si data n'est pas une sortie binaire APC valide (ex: taille incorrecte).

Exemples

Exemple #1 Exemple apc_bin_load()

<?php
$data = apc_bin_dump(NULL, NULL);
apc_bin_load($data, APC_BIN_VERIFY_MD5 | APC_BIN_VERIFY_CRC32);
?>

Voir aussi

  • apc_bin_dump() - Récupère une sortie binaire des fichiers et variables utilisateur spécifiés
  • apc_bin_loadfile() - Charge une sortie binaire depuis un fichier dans le cache fichiers ou utilisateur d'APC


Charge une sortie binaire depuis un fichier dans le cache fichiers ou utilisateur d'APC

  • « apc_bin_load
  • apc_cache_info »
  • PHP Manual
  • Fonctions APC
  • Charge une sortie binaire depuis un fichier dans le cache fichiers ou utilisateur d'APC

apc_bin_loadfile

(PECL apc >= 3.1.4)

apc_bin_loadfile — Charge une sortie binaire depuis un fichier dans le cache fichiers ou utilisateur d'APC

Description

bool apc_bin_loadfile ( string $filename [, resource $context = NULL [, int $flags = 0 ]] )

Charge une sortie binaire depuis un fichier vers le cache fichiers ou utilisateur d'APC

Liste de paramètres

filename

Le nom du fichier contenant la sortie binaire, typiquement obtenu depuis apc_bin_dumpfile().

context

Le contexte du fichier.

flags

Soit APC_BIN_VERIFY_CRC32, soit APC_BIN_VERIFY_MD5, soit les deux combinés.

Valeurs de retour

Retourne TRUE en cas de succès, ou alors FALSE. Les raisons d'un retour FALSE incluent la non activation de APC, filename invalide ou non ouvrable, le fichier de sortie est incomplet ou encore si data n'est pas une sortie APC valide (ex: taille incorrecte).

Voir aussi

  • apc_bin_dumpfile() - Envoi une sortie binaire des fichiers et variables utilisateur spécifiés vers un fichier
  • apc_bin_load() - Charge une sortie binaire vers le cache fichiers ou utilisateur d'APC


Récupère les informations du cache dans l'entrepôt APC

  • « apc_bin_loadfile
  • apc_cas »
  • PHP Manual
  • Fonctions APC
  • Récupère les informations du cache dans l'entrepôt APC

apc_cache_info

(PECL apc >= 2.0.0)

apc_cache_info — Récupère les informations du cache dans l'entrepôt APC

Description

array apc_cache_info ([ string $cache_type = "" [, bool $limited = false ]] )

Récupère les informations du cache et les métadonnées depuis le magasin APC.

Liste de paramètres

cache_type

Si cache_type vaut "user", les informations sur le cache utilisateur seront retournées.

Si cache_type vaut "filehits", les informations sur les fichiers ayant été servis depuis le cache pour la requête courante seront retournées. Cette fonctionnalité doit être activé lors de la compilation, en utilisant l'option --enable-filehits .

Si cache_type est non spécifié ou invalide, l'information à propos du cache système (fichiers mis en cache) est retournée.

limited

Si limited vaut TRUE, la valeur retournée exclue les entrées de la liste individuelle du cache. Ceci est utile lorsque l'on tente d'optimiser les appels pour la collecte de statistiques.

Valeurs de retour

Un tableau de données mis en cache (et les métadonnées) ou FALSE si une erreur survient.

Note: apc_cache_info() émet une alerte s'il n'est pas capable de récupérer les données APC mises en cache. Ceci arrive typiquement lorsque APC n'est pas activé.

Historique

Version | Description
3.0.11 | Le paramètre limited a été introduit.
3.0.16 | L'option "filehits" du paramètre cache_type a été introduite.

Exemples

Exemple #1 Exemple avec apc_cache_info()

<?php
print_r(apc_cache_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [num_slots] => 2000
    [ttl] => 0
    [num_hits] => 9
    [num_misses] => 3
    [start_time] => 1123958803
    [cache_list] => Array
        (
            [0] => Array
                (
                    [filename] => /chemin/vers/apc_test.php
                    [device] => 29954
                    [inode] => 1130511
                    [type] => file
                    [num_hits] => 1
                    [mtime] => 1123960686
                    [creation_time] => 1123960696
                    [deletion_time] => 0
                    [access_time] => 1123962864
                    [ref_count] => 1
                    [mem_size] => 677
                )
            [1] => Array (...itération pour chaque fichier mis en cache)
)

Voir aussi

  • Directives de configuration APC
  • APCIterator::getTotalSize() - Récupère la taille totale du cache
  • APCIterator::getTotalHits() - Récupère le nombre total de cache hits
  • APCIterator::getTotalCount() - Récupère le nombre total d'éléments


Met à jour une ancienne valeur par une nouvelle

  • « apc_cache_info
  • apc_clear_cache »
  • PHP Manual
  • Fonctions APC
  • Met à jour une ancienne valeur par une nouvelle

apc_cas

(PECL apc >= 3.1.1)

apc_cas — Met à jour une ancienne valeur par une nouvelle

Description

bool apc_cas ( string $key , int $old , int $new )

apc_cas() met à jour une valeur entière existante, si le paramètre old correspond à la valeur actuellement stockée, avec la valeur du paramètre new.

Liste de paramètres

key

La clé de la valeur à mettre à jour.

old

L'ancienne valeur (la valeur actuellement stockée).

new

La nouvelle valeur à utiliser.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple apc_cas()

<?php
apc_store('foobar', 2);
echo '$foobar = 2', PHP_EOL;
echo '$foobar == 1 ? 2 : 1 = ', (apc_cas('foobar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;
echo '$foobar == 2 ? 1 : 2 = ', (apc_cas('foobar', 2, 1) ? 'ok' : 'fail'), PHP_EOL;

echo '$foobar = ', apc_fetch('foobar'), PHP_EOL;

echo '$f__bar == 1 ? 2 : 1 = ', (apc_cas('f__bar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;

apc_store('perfection', 'xyz');
echo '$perfection == 2 ? 1 : 2 = ', (apc_cas('perfection', 2, 1) ? 'ok' : 'epic fail'), PHP_EOL;

echo '$foobar = ', apc_fetch('foobar'), PHP_EOL;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

$foobar = 2
$foobar == 1 ? 2 : 1 = fail
$foobar == 2 ? 1 : 2 = ok
$foobar = 1
$f__bar == 1 ? 2 : 1 = fail
$perfection == 2 ? 1 : 2 = epic fail
$foobar = 1

Voir aussi

  • apc_dec() - Décrémente un nombre stocké
  • apc_store() - Met en cache une variable dans le magasin


Efface le cache APC

  • « apc_cas
  • apc_compile_file »
  • PHP Manual
  • Fonctions APC
  • Efface le cache APC

apc_clear_cache

(PECL apc >= 2.0.0)

apc_clear_cache — Efface le cache APC

Description

bool apc_clear_cache ([ string $cache_type = "" ] )

Efface le cache utilisateur/système.

Liste de paramètres

cache_type

Si cache_type vaut "user", le cache utilisateur sera nettoyé ; sinon, le cache système (les fichiers mis en cache) sera nettoyé.

Valeurs de retour

Retourne toujours TRUE.

Voir aussi

  • apc_cache_info() - Récupère les informations du cache dans l'entrepôt APC


Stocke un fichier dans le cache, en évitant tous les filtres

  • « apc_clear_cache
  • apc_dec »
  • PHP Manual
  • Fonctions APC
  • Stocke un fichier dans le cache, en évitant tous les filtres

apc_compile_file

(PECL apc >= 3.0.13)

apc_compile_file — Stocke un fichier dans le cache, en évitant tous les filtres

Description

mixed apc_compile_file ( string $filename [, bool $atomic = true ] )

Stocke un fichier dans le cache, en évitant tous les filtres.

Liste de paramètres

filename

Chemin complet ou relatif vers un fichier PHP qui sera compilé et stocké dans le cache.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • apc_bin_dumpfile() - Envoi une sortie binaire des fichiers et variables utilisateur spécifiés vers un fichier
  • apc_bin_loadfile() - Charge une sortie binaire depuis un fichier dans le cache fichiers ou utilisateur d'APC


Décrémente un nombre stocké

  • « apc_compile_file
  • apc_define_constants »
  • PHP Manual
  • Fonctions APC
  • Décrémente un nombre stocké

apc_dec

(PECL apc >= 3.1.1)

apc_dec — Décrémente un nombre stocké

Description

int apc_dec ( string $key [, int $step = 1 [, bool &$success ]] )

Décrémente un nombre stocké

Liste de paramètres

key

La clé de la valeur à décrémenter.

step

Le pas, ou la valeur à décrémenter.

success

Optionnellement, passe une valeur booléenne indiquant succès ou échec à la variable référencée par ce paramètre.

Valeurs de retour

Retourne la valeur courante de l'entrée correspondant à key en cas de succès, ou FALSE si une erreur survient

Exemples

Exemple #1 Exemple apc_dec()

<?php
echo "Faisons quelques choses qui réussissent", PHP_EOL;

apc_store('anumber', 42);

echo apc_fetch('anumber'), PHP_EOL;

echo apc_dec('anumber'), PHP_EOL;
echo apc_dec('anumber', 10), PHP_EOL;
echo apc_dec('anumber', 10, $success), PHP_EOL;

var_dump($success);

echo "Maintenant, un échec", PHP_EOL, PHP_EOL;

apc_store('astring', 'foo');

$ret = apc_dec('astring', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Faisons quelques choses qui réussissent
42
41
31
21
bool(true)

Maintenant, un échec
bool(false)
bool(false)

Voir aussi

  • apc_inc() - Incrémente un nombre stocké


Définit un jeu de constantes pour la récupération et la définition en masse

  • « apc_dec
  • apc_delete_file »
  • PHP Manual
  • Fonctions APC
  • Définit un jeu de constantes pour la récupération et la définition en masse

apc_define_constants

(PECL apc >= 3.0.0)

apc_define_constants — Définit un jeu de constantes pour la récupération et la définition en masse

Description

bool apc_define_constants ( string $key , array $constants [, bool $case_sensitive = true ] )

define() est notoirement lent. Vu que le principal bénéfice d'APC est d'augmenter les performances des applications/scripts, ce mécanisme est fourni pour améliorer le processus de la définition de constantes en masse. Cependant, cette fonction n'effectue aucune opération anticipée.

Pour une solution plus performante, essayez l'extension PECL » hidef.

Note: Pour effacer plusieurs constantes stockées (sans effacer tout le cache), un tableau vide peut être passé en tant que paramètre constants, ce qui effacera les valeurs stockées.

Liste de paramètres

key

La clé key correspondant au nom du jeu de constantes stockées. Ce paramètre key est utilisé pour récupérer les constantes stockées avec la fonction apc_load_constants().

constants

Un tableau associatif de paires constant_name => value. Le constant_name doit suivre les règles de nommage normales des constantes. value doit être évaluée comme une valeur scalaire.

case_sensitive

Le comportement par défaut pour les constantes est d'être déclarées en tenant compte de la casse ; i.e. CONSTANT et Constant représentent des valeurs différentes. Si ce paramètre est évalué à FALSE, les constantes seront déclarées en tant que symboles insensibles à la casse.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apc_define_constants()

<?php
$constants = array(
    'UN'   => 1,
    'DEUX'   => 2,
    'TROIS' => 3,
);
apc_define_constants('numbers', $constants);
echo UN, DEUX, TROIS;
?>

L'exemple ci-dessus va afficher :

123

Voir aussi

  • apc_load_constants() - Charge un jeu de constantes depuis le cache
  • define() - Définit une constante
  • constant() - Retourne la valeur d'une constante
  • Ou la référence sur les constantes PHP


Efface des fichiers du cache opcode

  • « apc_define_constants
  • apc_delete »
  • PHP Manual
  • Fonctions APC
  • Efface des fichiers du cache opcode

apc_delete_file

(PECL apc >= 3.1.1)

apc_delete_file — Efface des fichiers du cache opcode

Description

mixed apc_delete_file ( mixed $keys )

Efface les fichiers spécifiés du cache opcode

Liste de paramètres

keys

Les fichiers à effacer. Accepte une string, array de strings, ou un objet APCIterator.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Ou si keys est un array, alors un tableau vide est retourné en cas de succès, ou un tableau contenant les fichiers en échec sinon.

Exemples

Exemple #1 Exemple apc_delete_file()

<?php
$filename = 'file.php';

if (apc_compile_file($filename)) {

    if (apc_delete_file($filename)) {
        echo "Fichier $filename supprimé avec succès du cache APC.", PHP_EOL;
    }
}

if (apc_compile_file($filename)) {

    if ($good = apc_delete_file(array($filename, 'donotexist.php'))) {
        var_dump($good);
    }
}

$bad = apc_delete_file('donotexist.php');
var_dump($bad);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fichier $filename supprimé avec succès du cache APC
[Mon May 24 09:30:33 2010] [apc-warning] Could not stat file donotexist.php, unable to delete from cache. in /tmp/test.php on line 13.
array(1) {
  [0]=>
  string(14) "donotexist.php"
}
[Mon May 24 09:30:33 2010] [apc-warning] Could not stat file donotexist.php, unable to delete from cache. in /tmp/test.php on line 18.
bool(false)

Voir aussi

  • apc_clear_cache() - Efface le cache APC
  • apc_delete() - Efface une variable stockée dans le cache
  • apc_exists() - Vérifie si une clé APC existe


Efface une variable stockée dans le cache

  • « apc_delete_file
  • apc_exists »
  • PHP Manual
  • Fonctions APC
  • Efface une variable stockée dans le cache

apc_delete

(PECL apc >= 3.0.0)

apc_delete — Efface une variable stockée dans le cache

Description

mixed apc_delete ( string $key )

Efface une variable stockée dans le cache.

Liste de paramètres

key

La clé key utilisée pour stocker la valeur (avec apc_store()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apc_delete()

<?php
$bar = 'BAR';
apc_store('foo', $bar);
apc_delete('foo');
// c'est évidemment inutile sous cette forme
?>

Voir aussi

  • apc_store() - Met en cache une variable dans le magasin
  • apc_fetch() - Récupère une variable stockée dans le cache


Vérifie si une clé APC existe

  • « apc_delete
  • apc_fetch »
  • PHP Manual
  • Fonctions APC
  • Vérifie si une clé APC existe

apc_exists

(PECL apc >= 3.1.4)

apc_exists — Vérifie si une clé APC existe

Description

mixed apc_exists ( mixed $keys )

Vérifie si une ou plusieurs clés APC existent.

Liste de paramètres

keys

Une string, ou un array de chaines qui contient les clés.

Valeurs de retour

Retourne TRUE si la clé existe, sinon FALSE ; ou, si un array était passé à keys, alors un tableau est retourné, auquel cas il contiendra toutes les clés existantes, ou un tableau vide si aucune clé n'existait.

Exemples

Exemple #1 Exemple apc_exists()

<?php
$fruit  = 'apple';
$veggie = 'carrot';

apc_store('foo', $fruit);
apc_store('bar', $veggie);

if (apc_exists('foo')) {
    echo "Foo existe : ";
    echo apc_fetch('foo');
} else {
    echo "Foo n'existe pas";
}

echo PHP_EOL;
if (apc_exists('baz')) {
    echo "Baz existe.";
} else {
    echo "Baz n'existe pas";
}

echo PHP_EOL;

$ret = apc_exists(array('foo', 'donotexist', 'bar'));
var_dump($ret);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Foo existe : apple
Baz n'existe pas
array(2) {
  ["foo"]=>
  bool(true)
  ["bar"]=>
  bool(true)
}

Voir aussi

  • apc_cache_info() - Récupère les informations du cache dans l'entrepôt APC
  • apc_fetch() - Récupère une variable stockée dans le cache


Récupère une variable stockée dans le cache

  • « apc_exists
  • apc_inc »
  • PHP Manual
  • Fonctions APC
  • Récupère une variable stockée dans le cache

apc_fetch

(PECL apc >= 3.0.0)

apc_fetch — Récupère une variable stockée dans le cache

Description

mixed apc_fetch ( mixed $key [, bool &$success ] )

Récupère une variable stockée dans le cache.

Liste de paramètres

key

La clé key utilisée pour stocker la valeur (avec apc_store()). Si un tableau est passé, chaque élément sera récupéré et retourné.

success

Vaut TRUE en cas de succès, et FALSE si une erreur survient.

Valeurs de retour

La variable stockée ou les variables du tableau en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apc_fetch()

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>

L'exemple ci-dessus va afficher :

string(3) "BAR"

Historique

Version | Description
3.0.17 | Le paramètre success est ajouté.

Voir aussi

  • apc_store() - Met en cache une variable dans le magasin
  • apc_delete() - Efface une variable stockée dans le cache
  • APCIterator


Incrémente un nombre stocké

  • « apc_fetch
  • apc_load_constants »
  • PHP Manual
  • Fonctions APC
  • Incrémente un nombre stocké

apc_inc

(PECL apc >= 3.1.1)

apc_inc — Incrémente un nombre stocké

Description

int apc_inc ( string $key [, int $step = 1 [, bool &$success ]] )

Incrémente un nombre stocké.

Liste de paramètres

key

La clé de la valeur à incrémenter.

step

Le pas, ou la valeur à incrémenter.

success

Optionnellement, passe une valeur booléenne indiquant succès ou échec à la variable référencée par ce paramètre.

Valeurs de retour

Retourne la valeur courante de l'entrée correspondant à key en cas de succès, ou FALSE si une erreur survient

Exemples

Exemple #1 Exemple apc_inc()

<?php
echo "Faisons quelques choses qui réussissent", PHP_EOL;

apc_store('anumber', 42);

echo apc_fetch('anumber'), PHP_EOL;

echo apc_inc('anumber'), PHP_EOL;
echo apc_inc('anumber', 10), PHP_EOL;
echo apc_inc('anumber', 10, $success), PHP_EOL;

var_dump($success);

echo "Maintenant, un échec", PHP_EOL, PHP_EOL;

apc_store('astring', 'foo');

$ret = apc_inc('astring', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Faisons quelques choses qui réussissent
42
43
53
63
bool(true)
Maintenant, un échec

bool(false)
bool(false)

Voir aussi

  • apc_dec() - Décrémente un nombre stocké


Charge un jeu de constantes depuis le cache

  • « apc_inc
  • apc_sma_info »
  • PHP Manual
  • Fonctions APC
  • Charge un jeu de constantes depuis le cache

apc_load_constants

(PECL apc >= 3.0.0)

apc_load_constants — Charge un jeu de constantes depuis le cache

Description

bool apc_load_constants ( string $key [, bool $case_sensitive = true ] )

Charge un jeu de constantes depuis le cache.

Liste de paramètres

key

Le nom du jeu de constantes (qui a été stocké avec la fonction apc_define_constants()) à récupérer.

case_sensitive

Le comportement par défaut pour les constantes est d'être déclarées en tenant compte de la casse ; i.e. CONSTANT et Constant représentent des valeurs différentes. Si ce paramètre est évalué à FALSE, les constantes seront déclarées en tant que symboles insensibles à la casse.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apc_load_constants()

<?php
$constants = array(
    'UN'   => 1,
    'DEUX'   => 2,
    'TROIS' => 3,
);
apc_define_constants('numbers', $constants);
apc_load_constants('numbers');
echo UN, DEUX, TROIS;
?>

L'exemple ci-dessus va afficher :

123

Voir aussi

  • apc_define_constants() - Définit un jeu de constantes pour la récupération et la définition en masse
  • define() - Définit une constante
  • constant() - Retourne la valeur d'une constante
  • Ou la référence sur les constantes PHP


Récupère les informations d'allocation mémoire partagée d'APC

  • « apc_load_constants
  • apc_store »
  • PHP Manual
  • Fonctions APC
  • Récupère les informations d'allocation mémoire partagée d'APC

apc_sma_info

(PECL apc >= 2.0.0)

apc_sma_info — Récupère les informations d'allocation mémoire partagée d'APC

Description

array apc_sma_info ([ bool $limited = false ] )

Récupère les informations d'allocation mémoire partagée d'APC.

Liste de paramètres

limited

Lorsque défini à FALSE (défaut) apc_sma_info() retournera une information détaillée de chaque segment.

Valeurs de retour

Tableau de données d'allocation mémoire partagée ; FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apc_sma_info()

<?php
print_r(apc_sma_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [num_seg] => 1
    [seg_size] => 31457280
    [avail_mem] => 31448408
    [block_lists] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [size] => 31448408
                            [offset] => 8864
                        )

                )

        )

)

Voir aussi

  • les directives de configuration APC


Met en cache une variable dans le magasin

  • « apc_sma_info
  • APCIterator »
  • PHP Manual
  • Fonctions APC
  • Met en cache une variable dans le magasin

apc_store

(PECL apc >= 3.0.0)

apc_store — Met en cache une variable dans le magasin

Description

bool apc_store ( string $key , mixed $var [, int $ttl = 0 ] )
array apc_store ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] )

Met en cache une variable en magasin.

Note: Contrairement à tous les autres mécanismes de PHP, les variables stockées en utilisant la fonction apc_store() persistent entre les requêtes (tant que la valeur n'est pas effacée du cache).

Liste de paramètres

key

Stocke la variable en utilisant ce nom. Les clés key sont uniques, donc, stocker une seconde valeur avec la même clé effacera la valeur originale.

var

La variable à stocker.

ttl

Temps de vie : stocke la variable var dans le cache pour ttl secondes. Après que ttl soit passé, la variable stockée sera supprimée du cache (à la requête suivante). Si aucun ttl n'est fourni (ou si le ttl vaut 0), la valeur persistera tant qu'elle ne sera pas effacée manuellement du cache, ou si elle n'existe plus dans le cache (effacement, redémarrage, etc.).

values

Les noms comme clés, les variables comme valeurs.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La seconde syntaxe retourne un tableau avec les clés en erreur.

Exemples

Exemple #1 Exemple avec apc_store()

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>

L'exemple ci-dessus va afficher :

string(3) "BAR"

Voir aussi

  • apc_add() - Met en cache une nouvelle variable dans le magasin de données
  • apc_fetch() - Récupère une variable stockée dans le cache
  • apc_delete() - Efface une variable stockée dans le cache


La classe APCIterator

(PECL apc >= 3.1.1)

Introduction

La classe APCIterator simplifie l'itération sur des caches APC volumineux. C'est utile car cela permet d'itérer sur des gros caches par lots, en récupérant un nombre défini d'entrées par instance de verrou, permettant ainsi de libérer les verrous pour d'autres activités, plutôt que de bloquer tout le cache pour récupérer (par défaut) 100 entrées. Aussi, l'utilisation d'expressions rationelles est plus efficace, car l'implémentation a été faite au niveau C.

Synopsis de la classe

APCIterator implements Iterator {
/* Méthodes */
public __construct ( string $cache [, mixed $search = null [, int $format = APC_ITER_ALL [, int $chunk_size = 100 [, int $list = APC_LIST_ACTIVE ]]]] )
public mixed current ( void )
public int getTotalCount ( void )
public int getTotalHits ( void )
public int getTotalSize ( void )
public string key ( void )
public void next ( void )
public void rewind ( void )
public void valid ( void )
}

Sommaire

  • APCIterator::__construct — Construit un objet d'itération APCIterator
  • APCIterator::current — Récupère l'élément en cours
  • APCIterator::getTotalCount — Récupère le nombre total d'éléments
  • APCIterator::getTotalHits — Récupère le nombre total de cache hits
  • APCIterator::getTotalSize — Récupère la taille totale du cache
  • APCIterator::key — Récupère la clé de l'itérateur
  • APCIterator::next — Déplace le pointeur vers l'élément suivant
  • APCIterator::rewind — Rembobine l'itérateur
  • APCIterator::valid — Vérifie si la position courante de l'itérateur est valide


Construit un objet d'itération APCIterator

  • « APCIterator
  • APCIterator::current »
  • PHP Manual
  • APCIterator
  • Construit un objet d'itération APCIterator

APCIterator::__construct

(PECL apc >= 3.1.1)

APCIterator::__construct — Construit un objet d'itération APCIterator

Description

public APCIterator::__construct ( string $cache [, mixed $search = null [, int $format = APC_ITER_ALL [, int $chunk_size = 100 [, int $list = APC_LIST_ACTIVE ]]]] )

Construit un objet APCIterator.

Liste de paramètres

cache

Le type de cache, user ou file.

search

Une expression rationnelle PCRE pour établir la correspondance avec les clés APC. Peut être une string pour une expression rationnelle simple, ou un array d'expressions rationnelles. Optionnellement, vous pouvez passer NULL pour sauter la recherche.

format

Le format désiré, configuré à partir d'une ou plusieurs constantes APC_ITER_*.

chunk_size

La taille du segment. Doit être une valeur supérieure à 0. La valeur par défaut est 100.

list

Le type de liste. Passez APC_LIST_ACTIVE ou APC_LIST_DELETED.

Valeurs de retour

Un objet APCIterator en cas de succès, ou NULL si échec.

Exemples

Exemple #1 Exemple avec APCIterator::__construct()

<?php
foreach (new APCIterator('user', '/^counter\./') as $counter) {
    echo "$counter[key]: $counter[value]\n";
    apc_dec($counter['key'], $counter['value']);
}
?>

Voir aussi

  • apc_exists() - Vérifie si une clé APC existe
  • apc_cache_info() - Récupère les informations du cache dans l'entrepôt APC


Récupère l'élément en cours

  • « APCIterator::__construct
  • APCIterator::getTotalCount »
  • PHP Manual
  • APCIterator
  • Récupère l'élément en cours

APCIterator::current

(PECL apc >= 3.1.1)

APCIterator::current — Récupère l'élément en cours

Description

public mixed APCIterator::current ( void )

Récupère l'élément courant depuis la pile APCIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'élément courant en cas de succès, ou FALSE si aucun élément supplémentaire n'existe ou en cas d'échec.

Voir aussi

  • APCIterator::next() - Déplace le pointeur vers l'élément suivant
  • Iterator::current() - Retourne l'élément courant


Récupère le nombre total d'éléments

  • « APCIterator::current
  • APCIterator::getTotalHits »
  • PHP Manual
  • APCIterator
  • Récupère le nombre total d'éléments

APCIterator::getTotalCount

(PECL apc >= 3.1.1)

APCIterator::getTotalCount — Récupère le nombre total d'éléments

Description

public int APCIterator::getTotalCount ( void )

Récupère le nombre total d'éléments.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre total d'éléments.

Voir aussi

  • APCIterator::getTotalHits() - Récupère le nombre total de cache hits
  • APCIterator::getTotalSize() - Récupère la taille totale du cache
  • apc_cache_info() - Récupère les informations du cache dans l'entrepôt APC


Récupère le nombre total de cache hits

  • « APCIterator::getTotalCount
  • APCIterator::getTotalSize »
  • PHP Manual
  • APCIterator
  • Récupère le nombre total de cache hits

APCIterator::getTotalHits

(PECL apc >= 3.1.1)

APCIterator::getTotalHits — Récupère le nombre total de cache hits

Description

public int APCIterator::getTotalHits ( void )

Récupère le nombre total de cache hits.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre de hits en cas de succès, ou FALSE si échec.

Voir aussi

  • APCIterator::getTotalCount() - Récupère le nombre total d'éléments
  • APCIterator::getTotalSize() - Récupère la taille totale du cache
  • apc_cache_info() - Récupère les informations du cache dans l'entrepôt APC


Récupère la taille totale du cache

  • « APCIterator::getTotalHits
  • APCIterator::key »
  • PHP Manual
  • APCIterator
  • Récupère la taille totale du cache

APCIterator::getTotalSize

(PECL apc >= 3.1.1)

APCIterator::getTotalSize — Récupère la taille totale du cache

Description

public int APCIterator::getTotalSize ( void )

Récupère la taille totale du cache.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La taille totale du cache.

Voir aussi

  • APCIterator::getTotalCount() - Récupère le nombre total d'éléments
  • APCIterator::getTotalHits() - Récupère le nombre total de cache hits
  • apc_cache_info() - Récupère les informations du cache dans l'entrepôt APC


Récupère la clé de l'itérateur

  • « APCIterator::getTotalSize
  • APCIterator::next »
  • PHP Manual
  • APCIterator
  • Récupère la clé de l'itérateur

APCIterator::key

(PECL apc >= 3.1.1)

APCIterator::key — Récupère la clé de l'itérateur

Description

public string APCIterator::key ( void )

Récupère la clé courante de l'itérateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la clé en cas de succès, ou FALSE si échec.

Voir aussi

  • APCIterator::current() - Récupère l'élément en cours
  • Iterator::key() - Retourne la clé de l'élément courant


Déplace le pointeur vers l'élément suivant

  • « APCIterator::key
  • APCIterator::rewind »
  • PHP Manual
  • APCIterator
  • Déplace le pointeur vers l'élément suivant

APCIterator::next

(PECL apc >= 3.1.1)

APCIterator::next — Déplace le pointeur vers l'élément suivant

Description

public void APCIterator::next ( void )

Déplace le pointeur de l'itérateur vers l'élément suivant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • APCIterator::current() - Récupère l'élément en cours
  • APCIterator::rewind() - Rembobine l'itérateur
  • Iterator::next() - Se déplace sur l'élément suivant


Rembobine l'itérateur

  • « APCIterator::next
  • APCIterator::valid »
  • PHP Manual
  • APCIterator
  • Rembobine l'itérateur

APCIterator::rewind

(PECL apc >= 3.1.1)

APCIterator::rewind — Rembobine l'itérateur

Description

public void APCIterator::rewind ( void )

Rembobine l'itérateur sur le premier élément.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • APCIterator::next() - Déplace le pointeur vers l'élément suivant
  • Iterator::next() - Se déplace sur l'élément suivant


Vérifie si la position courante de l'itérateur est valide

  • « APCIterator::rewind
  • APCu »
  • PHP Manual
  • APCIterator
  • Vérifie si la position courante de l'itérateur est valide

APCIterator::valid

(PECL apc >= 3.1.1)

APCIterator::valid — Vérifie si la position courante de l'itérateur est valide

Description

public void APCIterator::valid ( void )

Vérifie si la position courante de l'itérateur est valide

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la position courante de l'itérateur est valide, sinon FALSE.

Voir aussi

  • APCIterator::current() - Récupère l'élément en cours
  • Iterator::valid() - Vérifie si la position courante est valide


APC User Cache

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • APCu Fonctions
    • apcu_add — Cache a new variable in the data store
    • apcu_cache_info — Retrieves cached information from APCu's data store
    • apcu_cas — Updates an old value with a new value
    • apcu_clear_cache — Clears the APCu cache
    • apcu_dec — Decrease a stored number
    • apcu_delete — Removes a stored variable from the cache
    • apcu_entry — Atomically fetch or generate a cache entry
    • apcu_exists — Checks if entry exists
    • apcu_fetch — Fetch a stored variable from the cache
    • apcu_inc — Increase a stored number
    • apcu_sma_info — Retrieves APCu Shared Memory Allocation information
    • apcu_store — Cache a variable in the data store
  • APCUIterator — The APCUIterator class
    • APCUIterator::__construct — Constructs an APCUIterator iterator object
    • APCUIterator::current — Get current item
    • APCUIterator::getTotalCount — Get total count
    • APCUIterator::getTotalHits — Get total cache hits
    • APCUIterator::getTotalSize — Get total cache size
    • APCUIterator::key — Get iterator key
    • APCUIterator::next — Move pointer to next item
    • APCUIterator::rewind — Rewinds iterator
    • APCUIterator::valid — Checks if current position is valid


Introduction

APCu is APC stripped of opcode caching.

The first APCu codebase was versioned 4.0.0, it was forked from the head of the APC master branch at the time.

PHP 7 support is available as of APCu 5.0.0.

APCu can provide a compatibility mode, such that it can provide a drop in replacement for the applicable parts of APC.


Installation

If backward compatibility with the applicable parts of APC is required, APCu must be configured with the option --enable-apcu-bc.

Avertissement

PHP 7 has a separate module (» apc.so) for backwards compatibility with APC.

In backward compatibility mode, APCu registers the applicable APC functions with backward compatible prototypes.

Where an APC function accepted cache_type, it is simply ignored by the backward compatible version, and omitted from the prototype for the APCu version.

Note: On Windows, APCu needs a temp path to exist, and be writable by the web server. It checks the TMP, TEMP and USERPROFILE environment variables in that order and finally tries the WINDOWS directory if none of those are set.

Note: For more in-depth, highly technical implementation details, see the » developer-supplied TECHNOTES file .

APCu sources can be found » here.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Although the default APCu settings are fine for many installations, serious users should consider tuning the following parameters.

There is one decision to be made configuring APCu. How much memory is going to be allocated to APCu. The ini directive that controls this is apc.shm_size Read the sections on this carefully below.

Once the server is running, the apc.php script that is bundled with the extension should be copied somewhere into the docroot and viewed with a browser as it provides a detailed analysis of the internal workings of APCu. If GD is enabled in PHP, it will even display some interesting graphs. If APCu is working, the Cache full count number (on the left) will display the number of times the cache has reached maximum capacity and has had to forcefully clean any entries that haven't been accessed in the last apc.ttl seconds. This number is minimized in a well-configured cache. If the cache is constantly being filled, and thusly forcefully freed, the resulting churning will have disparaging effects on script performance. The easiest way to minimize this number is to allocate more memory for APCu.

When APCu is compiled with mmap support (Memory Mapping), it will use only one memory segment, unlike when APCu is built with SHM (SysV Shared Memory) support that uses multiple memory segments. MMAP does not have a maximum limit like SHM does in /proc/sys/kernel/shmmax. In general MMAP support is recommeded because it will reclaim the memory faster when the webserver is restarted and all in all reduces memory allocation impact at startup.

APCu configuration options
Nom | Défaut | Modifiable | Historique
apc.enabled | "1" | PHP_INI_SYSTEM |
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "32M" | PHP_INI_SYSTEM |
apc.entries_hint | "4096" | PHP_INI_SYSTEM |
apc.ttl | "0" | PHP_INI_SYSTEM |
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.slam_defense | "1" | PHP_INI_SYSTEM |
apc.enable_cli | "0" | PHP_INI_SYSTEM |
apc.use_request_time | "1" | PHP_INI_ALL |
apc.serializer | "default" | PHP_INI_SYSTEM |
apc.rfc1867 | "0" | PHP_INI_SYSTEM |
apc.rfc1867_prefix | "upload_" | PHP_INI_SYSTEM |
apc.rfc1867_name | "APC_UPLOAD_PROGRESS" | PHP_INI_SYSTEM |
apc.rfc1867_freq | "0" | PHP_INI_SYSTEM |
apc.rfc1867_ttl | "3600" | PHP_INI_SYSTEM |
apc.coredump_unmap | "0" | PHP_INI_SYSTEM |
apc.preload_path | NULL | PHP_INI_SYSTEM |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

apc.enabled boolean

apc.enabled can be set to 0 to disable APC. This is primarily useful when APC is statically compiled into PHP, since there is no other way to disable it (when compiled as a DSO, the extension line in php.ini can just be commented-out).

apc.shm_segments integer

The number of shared memory segments to allocate for the compiler cache. If APC is running out of shared memory but apc.shm_size is set as high as the system allows, raising this value might prevent APC from exhausting its memory.

apc.shm_size string

The size of each shared memory segment given by a shorthand notation as described in this FAQ. By default, some systems (including most BSD variants) have very low limits on the size of a shared memory segment.

apc.entries_hint integer

A "hint" about the number of distinct variables that might be stored. Set to zero or omit if not sure.

apc.ttl integer

The number of seconds a cache entry is allowed to idle in a slot in case this cache entry slot is needed by another entry. Leaving this at zero means that APC's cache could potentially fill up with stale entries while newer entries won't be cached. In the event of a cache running out of available memory, the cache will be completely expunged if ttl is equal to 0. Otherwise, if the ttl is greater than 0, APC will attempt to remove expired entries.

apc.gc_ttl integer

The number of seconds that a cache entry may remain on the garbage-collection list. This value provides a fail-safe in the event that a server process dies while executing a cached source file; if that source file is modified, the memory allocated for the old version will not be reclaimed until this TTL reached. Set to zero to disable this feature.

apc.mmap_file_mask string

If compiled with MMAP support by using --enable-mmap this is the mktemp-style file_mask to pass to the mmap module for determining whether your mmap'ed memory region is going to be file-backed or shared memory backed. For straight file-backed mmap, set it to something like /tmp/apc.XXXXXX (exactly 6 Xs). To use POSIX-style shm_open/mmap put a .shm somewhere in your mask. e.g. /apc.shm.XXXXXX You can also set it to /dev/zero to use your kernel's /dev/zero interface to anonymous mmap'ed memory. Leaving it undefined will force an anonymous mmap.

apc.slam_defense integer

On very busy servers whenever you start the server or modify files you can create a race of many processes all trying to cache the same file at the same time. This option sets the percentage of processes that will skip trying to cache an uncached file. Or think of it as the probability of a single process to skip caching. For example, setting apc.slam_defense to 75 would mean that there is a 75% chance that the process will not cache an uncached file. So, the higher the setting the greater the defense against cache slams. Setting this to 0 disables this feature.

apc.enable_cli integer

Mostly for testing and debugging. Setting this enables APC for the CLI version of PHP. Under normal circumstances, it is not ideal to create, populate and destroy the APC cache on every CLI request, but for various test scenarios it is useful to be able to enable APC for the CLI version of PHP easily.

apc.serializer string

Used to configure APC to use a third party serializer.

apc.rfc1867 boolean

RFC1867 File Upload Progress hook handler is only available if APC was compiled against PHP 5.2.0 or later. When enabled, any file uploads which includes a field called APC_UPLOAD_PROGRESS before the file field in an upload form will cause APC to automatically create an upload_key user cache entry where key is the value of the APC_UPLOAD_PROGRESS form entry.

Note that the hidden field specified by APC_UPLOAD_PROGRESS must come before the file field, otherwise the upload progress will not work correctly.

Note that the file upload tracking is not threadsafe at this point, so new uploads that happen while a previous one is still going will disable the tracking for the previous.

Note that the rate is only available once all file transfers are completed.

Exemple #1 An apc.rfc1867 example

<?php
print_r(apcu_fetch("upload_$_POST[APC_UPLOAD_PROGRESS]"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [total] => 1142543
    [current] => 1142543
    [rate] => 1828068.8
    [filename] => test
    [name] => file
    [temp_filename] => /tmp/php8F
    [cancel_upload] => 0
    [done] => 1
)

apc.rfc1867_prefix string

Key prefix to use for the user cache entry generated by rfc1867 upload progress functionality.

apc.rfc1867_name string

Specify the hidden form entry name that activates APC upload progress and specifies the user cache key suffix.

apc.rfc1867_freq string

The frequency that updates should be made to the user cache entry for upload progress. This can take the form of a percentage of the total file size or a size in bytes optionally suffixed with "k", "m", or "g" for kilobytes, megabytes, or gigabytes respectively (case insensitive). A setting of 0 updates as often as possible, which may cause slower uploads.

apc.rfc1867_ttl integer

TTL for rfc1867 entries.

apc.coredump_unmap boolean

Enables APC handling of signals, such as SIGSEGV, that write core files when signaled. When these signals are received, APC will attempt to unmap the shared memory segment in order to exclude it from the core file. This setting may improve system stability when fatal signals are received and a large APC shared memory segment is configured.

Avertissement

This feature is potentially dangerous. Unmapping the shared memory segment in a fatal signal handler may cause undefined behaviour if a fatal error occurs.

Note:

Although some kernels may provide a facility to ignore various types of shared memory when generating a core dump file, these implementations may also ignore important shared memory segments such as the Apache scoreboard.

apc.preload_path string

Optionally, set a path to the directory that APC will load cache data at startup.

apc.use_request_time bool

Use the SAPI request start time for TTL.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

APC_ITER_ALL (integer)
APC_ITER_ATIME (integer)
APC_ITER_CTIME (integer)
APC_ITER_DEVICE (integer)
APC_ITER_DTIME (integer)
APC_ITER_FILENAME (integer)
APC_ITER_INODE (integer)
APC_ITER_KEY (integer)
APC_ITER_MD5 (integer)
APC_ITER_MEM_SIZE (integer)
APC_ITER_MTIME (integer)
APC_ITER_NONE (integer)
APC_ITER_NUM_HITS (integer)
APC_ITER_REFCOUNT (integer)
APC_ITER_TTL (integer)
APC_ITER_TYPE (integer)
APC_ITER_VALUE (integer)
APC_LIST_ACTIVE (integer)
APC_LIST_DELETED (integer)


APCu Fonctions

Sommaire

  • apcu_add — Cache a new variable in the data store
  • apcu_cache_info — Retrieves cached information from APCu's data store
  • apcu_cas — Updates an old value with a new value
  • apcu_clear_cache — Clears the APCu cache
  • apcu_dec — Decrease a stored number
  • apcu_delete — Removes a stored variable from the cache
  • apcu_entry — Atomically fetch or generate a cache entry
  • apcu_exists — Checks if entry exists
  • apcu_fetch — Fetch a stored variable from the cache
  • apcu_inc — Increase a stored number
  • apcu_sma_info — Retrieves APCu Shared Memory Allocation information
  • apcu_store — Cache a variable in the data store


Cache a new variable in the data store

  • « APCu Fonctions
  • apcu_cache_info »
  • PHP Manual
  • APCu Fonctions
  • Cache a new variable in the data store

apcu_add

(PECL apcu >= 4.0.0)

apcu_add — Cache a new variable in the data store

Description

bool apcu_add ( string $key , mixed $var [, int $ttl = 0 ] )
array apcu_add ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] )

Caches a variable in the data store, only if it's not already stored.

Note: Unlike many other mechanisms in PHP, variables stored using apcu_add() will persist between requests (until the value is removed from the cache).

Liste de paramètres

key

Store the variable using this name. keys are cache-unique, so attempting to use apcu_add() to store data with a key that already exists will not overwrite the existing data, and will instead return FALSE. (This is the only difference between apcu_add() and apcu_store().)

var

The variable to store

ttl

Time To Live; store var in the cache for ttl seconds. After the ttl has passed, the stored variable will be expunged from the cache (on the next request). If no ttl is supplied (or if the ttl is 0), the value will persist until it is removed from the cache manually, or otherwise fails to exist in the cache (clear, restart, etc.).

values

Names in key, variables in value.

Valeurs de retour

Returns TRUE if something has effectively been added into the cache, FALSE otherwise. Second syntax returns array with error keys.

Exemples

Exemple #1 A apcu_add() example

<?php
$bar = 'BAR';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
$bar = 'NEVER GETS SET';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
?>

L'exemple ci-dessus va afficher :

string(3) "BAR"
string(3) "BAR"

Voir aussi

  • apcu_store() - Cache a variable in the data store
  • apcu_fetch() - Fetch a stored variable from the cache
  • apcu_delete() - Removes a stored variable from the cache


Retrieves cached information from APCu's data store

  • « apcu_add
  • apcu_cas »
  • PHP Manual
  • APCu Fonctions
  • Retrieves cached information from APCu's data store

apcu_cache_info

(PECL apcu >= 4.0.0)

apcu_cache_info — Retrieves cached information from APCu's data store

Description

array apcu_cache_info ([ bool $limited = false ] )

Retrieves cached information and meta-data from APC's data store.

Liste de paramètres

limited

If limited is TRUE, the return value will exclude the individual list of cache entries. This is useful when trying to optimize calls for statistics gathering.

Valeurs de retour

Array of cached data (and meta-data) ou FALSE si une erreur survient

Note: apcu_cache_info() will raise a warning if it is unable to retrieve APC cache data. This typically occurs when APC is not enabled.

Historique

Version | Description
3.0.11 | The limited parameter was introduced.
3.0.16 | The "filehits" option for the cache_type parameter was introduced.

Exemples

Exemple #1 A apcu_cache_info() example

<?php
print_r(apcu_cache_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [num_slots] => 2000
    [ttl] => 0
    [num_hits] => 9
    [num_misses] => 3
    [start_time] => 1123958803
    [cache_list] => Array
        (
            [0] => Array
                (
                    [filename] => /path/to/apcu_test.php
                    [device] => 29954
                    [inode] => 1130511
                    [type] => file
                    [num_hits] => 1
                    [mtime] => 1123960686
                    [creation_time] => 1123960696
                    [deletion_time] => 0
                    [access_time] => 1123962864
                    [ref_count] => 1
                    [mem_size] => 677
                )
            [1] => Array (...iterates for each cached file)
)

Voir aussi

  • APCu configuration directives
  • APCUIterator::getTotalSize() - Get total cache size
  • APCUIterator::getTotalHits() - Get total cache hits
  • APCUIterator::getTotalCount() - Get total count


Updates an old value with a new value

  • « apcu_cache_info
  • apcu_clear_cache »
  • PHP Manual
  • APCu Fonctions
  • Updates an old value with a new value

apcu_cas

(PECL apcu >= 4.0.0)

apcu_cas — Updates an old value with a new value

Description

bool apcu_cas ( string $key , int $old , int $new )

apcu_cas() updates an already existing integer value if the old parameter matches the currently stored value with the value of the new parameter.

Liste de paramètres

key

The key of the value being updated.

old

The old value (the value currently stored).

new

The new value to update to.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 apcu_cas() example

<?php
apcu_store('foobar', 2);
echo '$foobar = 2', PHP_EOL;
echo '$foobar == 1 ? 2 : 1 = ', (apcu_cas('foobar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;
echo '$foobar == 2 ? 1 : 2 = ', (apcu_cas('foobar', 2, 1) ? 'ok' : 'fail'), PHP_EOL;

echo '$foobar = ', apcu_fetch('foobar'), PHP_EOL;

echo '$f__bar == 1 ? 2 : 1 = ', (apcu_cas('f__bar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;

apcu_store('perfection', 'xyz');
echo '$perfection == 2 ? 1 : 2 = ', (apcu_cas('perfection', 2, 1) ? 'ok' : 'epic fail'), PHP_EOL;

echo '$foobar = ', apcu_fetch('foobar'), PHP_EOL;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

$foobar = 2
$foobar == 1 ? 2 : 1 = fail
$foobar == 2 ? 1 : 2 = ok
$foobar = 1
$f__bar == 1 ? 2 : 1 = fail
$perfection == 2 ? 1 : 2 = epic fail
$foobar = 1

Voir aussi

  • apcu_dec() - Decrease a stored number
  • apcu_store() - Cache a variable in the data store


Clears the APCu cache

  • « apcu_cas
  • apcu_dec »
  • PHP Manual
  • APCu Fonctions
  • Clears the APCu cache

apcu_clear_cache

(PECL apcu >= 4.0.0)

apcu_clear_cache — Clears the APCu cache

Description

bool apcu_clear_cache ( void )

Clears the cache.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE always

Voir aussi

  • apcu_cache_info() - Retrieves cached information from APCu's data store


Decrease a stored number

  • « apcu_clear_cache
  • apcu_delete »
  • PHP Manual
  • APCu Fonctions
  • Decrease a stored number

apcu_dec

(PECL apcu >= 4.0.0)

apcu_dec — Decrease a stored number

Description

int apcu_dec ( string $key [, int $step = 1 [, bool &$success ]] )

Decreases a stored integer value.

Liste de paramètres

key

The key of the value being decreased.

step

The step, or value to decrease.

success

Optionally pass the success or fail boolean value to this referenced variable.

Valeurs de retour

Returns the current value of key's value on success, ou FALSE si une erreur survient

Exemples

Exemple #1 apcu_dec() example

<?php
echo "Let's do something with success", PHP_EOL;

apcu_store('anumber', 42);

echo apcu_fetch('anumber'), PHP_EOL;

echo apcu_dec('anumber'), PHP_EOL;
echo apcu_dec('anumber', 10), PHP_EOL;
echo apcu_dec('anumber', 10, $success), PHP_EOL;

var_dump($success);

echo "Now, let's fail", PHP_EOL, PHP_EOL;

apcu_store('astring', 'foo');

$ret = apcu_dec('astring', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Let's do something with success
42
41
31
21
bool(true)

Now, let's fail
bool(false)
bool(false)

Voir aussi

  • apcu_inc() - Increase a stored number


Removes a stored variable from the cache

  • « apcu_dec
  • apcu_entry »
  • PHP Manual
  • APCu Fonctions
  • Removes a stored variable from the cache

apcu_delete

(PECL apcu >= 4.0.0)

apcu_delete — Removes a stored variable from the cache

Description

bool apcu_delete ( mixed $key )

Removes a stored variable from the cache.

Liste de paramètres

key

A key used to store the value as a string for a single key, or as an array of strings for several keys, or as an APCUIterator object.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 A apcu_delete() example

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
apcu_delete('foo');
// this is obviously useless in this form

// Alternatively delete multiple keys.
apcu_delete(['foo', 'bar', 'baz']);

// Or use an Iterator with a regular expression.
apcu_delete(new APCUIterator('#^myprefix_#'));
?>

Voir aussi

  • apcu_store() - Cache a variable in the data store
  • apcu_fetch() - Fetch a stored variable from the cache
  • apcu_clear_cache() - Clears the APCu cache
  • APCUIterator


Atomically fetch or generate a cache entry

  • « apcu_delete
  • apcu_exists »
  • PHP Manual
  • APCu Fonctions
  • Atomically fetch or generate a cache entry

apcu_entry

(PECL apcu >= 5.1.0)

apcu_entry — Atomically fetch or generate a cache entry

Description

mixed apcu_entry ( string $key , callable $generator [, int $ttl = 0 ] )

Atomically attempts to find key in the cache, if it cannot be found generator is called, passing key as the only argument. The return value of the call is then cached with the optionally specified ttl, and returned.

Note: When control enters apcu_entry() the lock for the cache is acquired exclusively, it is released when control leaves apcu_entry(): In effect, this turns the body of generator into a critical section, disallowing two processes from executing the same code paths concurrently. In addition, it prohibits the concurrent execution of any other APCu functions, since they will acquire the same lock.

Avertissement

The only APCu function that can be called safely by generator is apcu_entry().

Liste de paramètres

key

Identity of cache entry

generator

A callable that accepts key as the only argument and returns the value to cache.

ttl

Time To Live; store var in the cache for ttl seconds. After the ttl has passed, the stored variable will be expunged from the cache (on the next request). If no ttl is supplied (or if the ttl is 0), the value will persist until it is removed from the cache manually, or otherwise fails to exist in the cache (clear, restart, etc.).

Valeurs de retour

Returns the cached value

Exemples

Exemple #1 An apcu_entry() example

<?php
$config = apcu_entry("config", function($key) {
 return [
   "fruit" => apcu_entry("config.fruit", function($key){
     return [
       "apples",
       "pears"
     ];
   }),
   "people" => apcu_entry("config.people", function($key){
     return [
      "bob",
      "joe",
      "niki"
     ];
   })
 ];
});

var_dump($config);
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["fruit"]=>
  array(2) {
    [0]=>
    string(6) "apples"
    [1]=>
    string(5) "pears"
  }
  ["people"]=>
  array(3) {
    [0]=>
    string(3) "bob"
    [1]=>
    string(3) "joe"
    [2]=>
    string(4) "niki"
  }
}

Voir aussi

  • apcu_store() - Cache a variable in the data store
  • apcu_fetch() - Fetch a stored variable from the cache
  • apcu_delete() - Removes a stored variable from the cache


Checks if entry exists

  • « apcu_entry
  • apcu_fetch »
  • PHP Manual
  • APCu Fonctions
  • Checks if entry exists

apcu_exists

(PECL apcu >= 4.0.0)

apcu_exists — Checks if entry exists

Description

mixed apcu_exists ( mixed $keys )

Checks if one or more APCu entries exist.

Liste de paramètres

keys

A string, or an array of strings, that contain keys.

Valeurs de retour

Returns TRUE if the key exists, otherwise FALSE Or if an array was passed to keys, then an array is returned that contains all existing keys, or an empty array if none exist.

Exemples

Exemple #1 apcu_exists() example

<?php
$fruit  = 'apple';
$veggie = 'carrot';

apcu_store('foo', $fruit);
apcu_store('bar', $veggie);

if (apcu_exists('foo')) {
    echo "Foo exists: ";
    echo apcu_fetch('foo');
} else {
    echo "Foo does not exist";
}

echo PHP_EOL;
if (apcu_exists('baz')) {
    echo "Baz exists.";
} else {
    echo "Baz does not exist";
}

echo PHP_EOL;

$ret = apcu_exists(array('foo', 'donotexist', 'bar'));
var_dump($ret);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Foo exists: apple
Baz does not exist
array(2) {
  ["foo"]=>
  bool(true)
  ["bar"]=>
  bool(true)
}

Voir aussi

  • apcu_cache_info() - Retrieves cached information from APCu's data store
  • apcu_fetch() - Fetch a stored variable from the cache


Fetch a stored variable from the cache

  • « apcu_exists
  • apcu_inc »
  • PHP Manual
  • APCu Fonctions
  • Fetch a stored variable from the cache

apcu_fetch

(PECL apcu >= 4.0.0)

apcu_fetch — Fetch a stored variable from the cache

Description

mixed apcu_fetch ( mixed $key [, bool &$success ] )

Fetchs an entry from the cache.

Liste de paramètres

key

The key used to store the value (with apcu_store()). If an array is passed then each element is fetched and returned.

success

Set to TRUE in success and FALSE in failure.

Valeurs de retour

The stored variable or array of variables on success; FALSE on failure

Exemples

Exemple #1 A apcu_fetch() example

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
var_dump(apcu_fetch('foo'));
?>

L'exemple ci-dessus va afficher :

string(3) "BAR"

Historique

Version | Description
3.0.17 | The success parameter was added.

Voir aussi

  • apcu_store() - Cache a variable in the data store
  • apcu_delete() - Removes a stored variable from the cache
  • APCUIterator


Increase a stored number

  • « apcu_fetch
  • apcu_sma_info »
  • PHP Manual
  • APCu Fonctions
  • Increase a stored number

apcu_inc

(PECL apcu >= 4.0.0)

apcu_inc — Increase a stored number

Description

int apcu_inc ( string $key [, int $step = 1 [, bool &$success ]] )

Increases a stored number.

Liste de paramètres

key

The key of the value being increased.

step

The step, or value to increase.

success

Optionally pass the success or fail boolean value to this referenced variable.

Valeurs de retour

Returns the current value of key's value on success, ou FALSE si une erreur survient

Exemples

Exemple #1 apcu_inc() example

<?php
echo "Let's do something with success", PHP_EOL;

apcu_store('anumber', 42);

echo apcu_fetch('anumber'), PHP_EOL;

echo apcu_inc('anumber'), PHP_EOL;
echo apcu_inc('anumber', 10), PHP_EOL;
echo apcu_inc('anumber', 10, $success), PHP_EOL;

var_dump($success);

echo "Now, let's fail", PHP_EOL, PHP_EOL;

apcu_store('astring', 'foo');

$ret = apcu_inc('astring', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

42
43
53
63
bool(true)
Now, let's fail

bool(false)
bool(false)

Voir aussi

  • apcu_dec() - Decrease a stored number


Retrieves APCu Shared Memory Allocation information

  • « apcu_inc
  • apcu_store »
  • PHP Manual
  • APCu Fonctions
  • Retrieves APCu Shared Memory Allocation information

apcu_sma_info

(PECL apcu >= 4.0.0)

apcu_sma_info — Retrieves APCu Shared Memory Allocation information

Description

array apcu_sma_info ([ bool $limited = false ] )

Retrieves APCu Shared Memory Allocation information.

Liste de paramètres

limited

When set to FALSE (default) apcu_sma_info() will return a detailed information about each segment.

Valeurs de retour

Array of Shared Memory Allocation data; FALSE on failure.

Exemples

Exemple #1 A apcu_sma_info() example

<?php
print_r(apcu_sma_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [num_seg] => 1
    [seg_size] => 31457280
    [avail_mem] => 31448408
    [block_lists] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [size] => 31448408
                            [offset] => 8864
                        )

                )

        )

)

Voir aussi

  • APCu configuration directives


Cache a variable in the data store

  • « apcu_sma_info
  • APCUIterator »
  • PHP Manual
  • APCu Fonctions
  • Cache a variable in the data store

apcu_store

(PECL apcu >= 4.0.0)

apcu_store — Cache a variable in the data store

Description

bool apcu_store ( string $key , mixed $var [, int $ttl = 0 ] )
array apcu_store ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] )

Cache a variable in the data store.

Note: Unlike many other mechanisms in PHP, variables stored using apcu_store() will persist between requests (until the value is removed from the cache).

Liste de paramètres

key

Store the variable using this name. keys are cache-unique, so storing a second value with the same key will overwrite the original value.

var

The variable to store

ttl

Time To Live; store var in the cache for ttl seconds. After the ttl has passed, the stored variable will be expunged from the cache (on the next request). If no ttl is supplied (or if the ttl is 0), the value will persist until it is removed from the cache manually, or otherwise fails to exist in the cache (clear, restart, etc.).

values

Names in key, variables in value.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Second syntax returns array with error keys.

Exemples

Exemple #1 A apcu_store() example

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
var_dump(apcu_fetch('foo'));
?>

L'exemple ci-dessus va afficher :

string(3) "BAR"

Voir aussi

  • apcu_add() - Cache a new variable in the data store
  • apcu_fetch() - Fetch a stored variable from the cache
  • apcu_delete() - Removes a stored variable from the cache


The APCUIterator class

(PECL apcu >= 5.0.0)

Introduction

The APCUIterator class makes it easier to iterate over large APCu caches. This is helpful as it allows iterating over large caches in steps, while grabbing a defined number of entries per lock instance, so it frees the cache locks for other activities rather than hold up the entire cache to grab 100 (the default) entries. Also, using regular expression matching is more efficient as it's been moved to the C level.

Synopsis de la classe

APCUIterator implements Iterator {
/* Methods */
public __construct ([ mixed $search = null [, int $format = APCU_ITER_ALL [, int $chunk_size = 100 [, int $list = APCU_LIST_ACTIVE ]]]] )
public mixed current ( void )
public int getTotalCount ( void )
public int getTotalHits ( void )
public int getTotalSize ( void )
public string key ( void )
public void next ( void )
public void rewind ( void )
public void valid ( void )
}

Sommaire

  • APCUIterator::__construct — Constructs an APCUIterator iterator object
  • APCUIterator::current — Get current item
  • APCUIterator::getTotalCount — Get total count
  • APCUIterator::getTotalHits — Get total cache hits
  • APCUIterator::getTotalSize — Get total cache size
  • APCUIterator::key — Get iterator key
  • APCUIterator::next — Move pointer to next item
  • APCUIterator::rewind — Rewinds iterator
  • APCUIterator::valid — Checks if current position is valid


Constructs an APCUIterator iterator object

  • « APCUIterator
  • APCUIterator::current »
  • PHP Manual
  • APCUIterator
  • Constructs an APCUIterator iterator object

APCUIterator::__construct

(PECL apcu >= 5.0.0)

APCUIterator::__construct — Constructs an APCUIterator iterator object

Description

public APCUIterator::__construct ([ mixed $search = null [, int $format = APCU_ITER_ALL [, int $chunk_size = 100 [, int $list = APCU_LIST_ACTIVE ]]]] )

Constructs an APCUIterator object.

Liste de paramètres

search

A PCRE regular expression that matches against APCu key names, either as a string for a single regular expression, or as an array of regular expressions. Or, optionally pass in NULL to skip the search.

format

The desired format, as configured with one or more of the APCU_ITER_* constants.

chunk_size

The chunk size. Must be a value greater than 0. The default value is 100.

list

The type to list. Either pass in APCU_LIST_ACTIVE or APCU_LIST_DELETED.

Valeurs de retour

An APCUIterator object on success, or NULL on failure.

Exemples

Exemple #1 A APCUIterator::__construct() example

<?php
foreach (new APCUIterator('/^counter\./') as $counter) {
    echo "$counter[key]: $counter[value]\n";
    apc_dec($counter['key'], $counter['value']);
}
?>

Voir aussi

  • apcu_exists() - Checks if entry exists
  • apcu_cache_info() - Retrieves cached information from APCu's data store


Get current item

  • « APCUIterator::__construct
  • APCUIterator::getTotalCount »
  • PHP Manual
  • APCUIterator
  • Get current item

APCUIterator::current

(PECL apcu >= 5.0.0)

APCUIterator::current — Get current item

Description

public mixed APCUIterator::current ( void )

Gets the current item from the APCUIterator stack.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the current item on success, or FALSE if no more items or exist, or on failure.

Voir aussi

  • APCUIterator::next() - Move pointer to next item
  • Iterator::current() - Retourne l'élément courant


Get total count

  • « APCUIterator::current
  • APCUIterator::getTotalHits »
  • PHP Manual
  • APCUIterator
  • Get total count

APCUIterator::getTotalCount

(PECL apcu >= 5.0.0)

APCUIterator::getTotalCount — Get total count

Description

public int APCUIterator::getTotalCount ( void )

Get the total count.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The total count.

Voir aussi

  • APCUIterator::getTotalHits() - Get total cache hits
  • APCUIterator::getTotalSize() - Get total cache size
  • apc_cache_info() - Récupère les informations du cache dans l'entrepôt APC


Get total cache hits

  • « APCUIterator::getTotalCount
  • APCUIterator::getTotalSize »
  • PHP Manual
  • APCUIterator
  • Get total cache hits

APCUIterator::getTotalHits

(PECL apcu >= 5.0.0)

APCUIterator::getTotalHits — Get total cache hits

Description

public int APCUIterator::getTotalHits ( void )

Gets the total number of cache hits.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of hits on success, or FALSE on failure.

Voir aussi

  • APCUIterator::getTotalCount() - Get total count
  • APCUIterator::getTotalSize() - Get total cache size
  • apc_cache_info() - Récupère les informations du cache dans l'entrepôt APC


Get total cache size

  • « APCUIterator::getTotalHits
  • APCUIterator::key »
  • PHP Manual
  • APCUIterator
  • Get total cache size

APCUIterator::getTotalSize

(PECL apcu >= 5.0.0)

APCUIterator::getTotalSize — Get total cache size

Description

public int APCUIterator::getTotalSize ( void )

Gets the total cache size.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The total cache size.

Voir aussi

  • APCUIterator::getTotalCount() - Get total count
  • APCUIterator::getTotalHits() - Get total cache hits
  • apc_cache_info() - Récupère les informations du cache dans l'entrepôt APC


Get iterator key

  • « APCUIterator::getTotalSize
  • APCUIterator::next »
  • PHP Manual
  • APCUIterator
  • Get iterator key

APCUIterator::key

(PECL apcu >= 5.0.0)

APCUIterator::key — Get iterator key

Description

public string APCUIterator::key ( void )

Gets the current iterator key.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the key on success, or FALSE upon failure.

Voir aussi

  • APCUIterator::current() - Get current item
  • Iterator::key() - Retourne la clé de l'élément courant


Move pointer to next item

  • « APCUIterator::key
  • APCUIterator::rewind »
  • PHP Manual
  • APCUIterator
  • Move pointer to next item

APCUIterator::next

(PECL apcu >= 5.0.0)

APCUIterator::next — Move pointer to next item

Description

public void APCUIterator::next ( void )

Moves the iterator pointer to the next element.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • APCUIterator::current() - Get current item
  • APCUIterator::rewind() - Rewinds iterator
  • Iterator::next() - Se déplace sur l'élément suivant


Rewinds iterator

  • « APCUIterator::next
  • APCUIterator::valid »
  • PHP Manual
  • APCUIterator
  • Rewinds iterator

APCUIterator::rewind

(PECL apcu >= 5.0.0)

APCUIterator::rewind — Rewinds iterator

Description

public void APCUIterator::rewind ( void )

Rewinds back the iterator to the first element.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • APCUIterator::next() - Move pointer to next item
  • Iterator::next() - Se déplace sur l'élément suivant


Checks if current position is valid

  • « APCUIterator::rewind
  • APD »
  • PHP Manual
  • APCUIterator
  • Checks if current position is valid

APCUIterator::valid

(PECL apcu >= 5.0.0)

APCUIterator::valid — Checks if current position is valid

Description

public void APCUIterator::valid ( void )

Checks if the current iterator position is valid.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if the current iterator position is valid, otherwise FALSE.

Voir aussi

  • APCUIterator::current() - Get current item
  • Iterator::valid() - Vérifie si la position courante est valide


Débogueur PHP avancé

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Building on Win32
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Comment utiliser PHP-APD dans vos scripts
  • Fonctions APD
    • apd_breakpoint — Stoppe l'interpréteur et attend un CR depuis le socket
    • apd_callstack — Retourne la pile d'appel courante dans un tableau
    • apd_clunk — Lance une alerte et un callstack
    • apd_continue — Redémarre l'interpréteur
    • apd_croak — Lance une erreur, un callstack et sort
    • apd_dump_function_table — Affiche la table courante de fonction
    • apd_dump_persistent_resources — Retourne toutes les ressources persistantes dans un tableau
    • apd_dump_regular_resources — Retourne toutes les ressources régulières courantes dans un tableau
    • apd_echo — Écrit dans le socket de déboguage
    • apd_get_active_symbols — Récupère un tableau contenant les noms des variables courantes de portée locale
    • apd_set_pprof_trace — Démarre la session de déboguage APD
    • apd_set_session_trace_socket — Démarre la session de déboguage à distance
    • apd_set_session_trace — Démarre la session de déboguage APD
    • apd_set_session — Modifie ou définit le degré de déboguage courant
    • override_function — Surcharge les fonctions intégrées
    • rename_function — Renomme une fonction intégrée dans la table des fonctions globales


Introduction

APD est un débogueur PHP avancé. Il a été écrit afin de fournir des possibilités de profilage et de déboguage pour le code PHP, mais aussi la possibilité d'afficher une trace complète. APD supporte le déboguage interactif, mais, par défaut, il écrit les données dans des fichiers de traces. Il fournit également des événements lors de la journalisation à différents niveaux (incluant les appels aux fonctions, les arguments passés, le temps passé, etc...) pouvant être activés ou non pour des scripts particuliers.

Attention

APD est une extension Zend, modifiant la façon dont les appels aux fonctions, en interne, s'effectue, et donc, peut ne pas être compatible avec les autres extensions Zend (par exemple, Zend Optimizer).


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Building on Win32
  • Configuration à l'exécution
  • Types de ressources


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/apd.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Dans votre fichier INI, ajoutez les lignes suivantes:

zend_extension = /absolute/path/to/apd.so
apd.dumpdir = /absolute/path/to/trace/directory
apd.statement_tracing = 0

En fonction de votre compilation de PHP, la directive zend_extension peut prendre l'une des formes suivantes :

zend_extension              (non ZTS, non debug build)
zend_extension_ts           (    ZTS, non debug build)
zend_extension_debug        (non ZTS,     debug build)
zend_extension_debug_ts     (    ZTS,     debug build)


Building on Win32

Pour compiler APD sous Windows, vous devez installer un environnement de compilation PHP, tel que décrit sur http://php.net/ : en fait, vous avez besoin de Microsoft Visual C++, win32build.zip, bison/flex, et d'un peu de savoir-faire pour le faire fonctionner. De plus, assurez-vous que adp.dsp utilise les nouvelles lignes de format DOS; si c'est le format Unix, Microsoft Visual C++ va s'en plaindre.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration APD
Nom | Défaut | Modifiable | Historique
apd.dumpdir | NULL | PHP_INI_ALL |
apd.statement_tracing | "0" | PHP_INI_ALL | Disponible depuis apd 0.9.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

apd.dumpdir chaîne de caractères

Spécifie le dossier dans lequel APD écrit les fichiers de profilage. Vous pouvez spécifier un chemin absolu ou relatif.

Vous pouvez spécifier un dossier différent comme argument de apd_set_pprof_trace().

apd.statement_tracing booléen

Active ou désactive les traces à la ligne. En activant cette option (valeur de 1), l'application sera considérablement ralentie.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes APD
Constante | Valeur | Description
FUNCTION_TRACE (entier) | 1 |
ARGS_TRACE (entier) | 2 |
ASSIGNMENT_TRACE (entier) | 4 |
STATEMENT_TRACE (entier) | 8 |
MEMORY_TRACE (entier) | 16 |
TIMING_TRACE (entier) | 32 |
SUMMARY_TRACE (entier) | 64 |
ERROR_TRACE (entier) | 128 |
PROF_TRACE (entier) | 256 |
APD_VERSION (chaîne de caractères) | exemple : 1.0.2-dev |


  • « Constantes pré-définies
  • Comment utiliser PHP-APD dans vos scripts »
  • PHP Manual
  • APD
  • Exemples

Exemples

Sommaire

  • Comment utiliser PHP-APD dans vos scripts


Comment utiliser PHP-APD dans vos scripts

  1. À la première ligne de votre script PHP, appelez la fonction apd_set_pprof_trace() afin de commencer à enregistrer la trace :

    <?php
    apd_set_pprof_trace    ();
    ?>

    Vous pouvez insérer la ligne n'importe où dans votre script, mais si vous ne commencez pas à enregistrer la trace au début de votre script, vous désactiverez les données du profile qui pourraient vous mener à trouver un goulot d'étranglement.

  2. Maintenant, exécutez votre script. L'affichage sera écrit dans le fichier apd.dumpdir/pprof_pid.ext.

    Astuce

    Si vous utilisez la version CGI de PHP, vous devrez utiliser l'option "-e" afin d'activer les informations étendues d'APD. Par exemple : php -e -f script.php

  3. Pour afficher les données formatées du profil, exécutez la commande pprofp avec les options de tri et d'affichage de votre choix. Le formatage de la sortie ressemblera à :

    bash-2.05b$ pprofp -R /tmp/pprof.22141.0

Trace for /home/dan/testapd.php
Total Elapsed Time = 0.00
Total System Time  = 0.00
Total User Time    = 0.00

Real         User        System             secs/    cumm
%Time (excl/cumm)  (excl/cumm)  (excl/cumm) Calls    call    s/call  Memory Usage Name
--------------------------------------------------------------------------------------
100.0 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0000   0.0009            0 main
56.9 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0005   0.0005            0 apd_set_pprof_trace
28.0 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 preg_replace
14.3 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 str_replace

    L'option -R utilisé dans cet exemple trie la table de profil par la colonne "Real Time", représentant le temps mis par le script pour exécuter une fonction donnée. La colonne "cumm call" montre le nombre de fois que la fonction a été appelée et la colonne "s/call", le nombre de secondes chaque appel à la fonction nécessite, en moyenne.

  4. Pour générer un fichier "calltree" que vous pourrez importer dans l'application d'analyse de profil KCacheGrind, exécutez la commande pprof2calltree.


Fonctions APD

Informations de contact

Si vous avez des commentaires, des corrections de bogues ou si vous voulez développer des améliorations pour cette extension, vous pouvez envoyer un message à » apd@mail.communityconnect.com. Toute aide est vraiment la bienvenue.

Sommaire

  • apd_breakpoint — Stoppe l'interpréteur et attend un CR depuis le socket
  • apd_callstack — Retourne la pile d'appel courante dans un tableau
  • apd_clunk — Lance une alerte et un callstack
  • apd_continue — Redémarre l'interpréteur
  • apd_croak — Lance une erreur, un callstack et sort
  • apd_dump_function_table — Affiche la table courante de fonction
  • apd_dump_persistent_resources — Retourne toutes les ressources persistantes dans un tableau
  • apd_dump_regular_resources — Retourne toutes les ressources régulières courantes dans un tableau
  • apd_echo — Écrit dans le socket de déboguage
  • apd_get_active_symbols — Récupère un tableau contenant les noms des variables courantes de portée locale
  • apd_set_pprof_trace — Démarre la session de déboguage APD
  • apd_set_session_trace_socket — Démarre la session de déboguage à distance
  • apd_set_session_trace — Démarre la session de déboguage APD
  • apd_set_session — Modifie ou définit le degré de déboguage courant
  • override_function — Surcharge les fonctions intégrées
  • rename_function — Renomme une fonction intégrée dans la table des fonctions globales


Stoppe l'interpréteur et attend un CR depuis le socket

  • « Fonctions APD
  • apd_callstack »
  • PHP Manual
  • Fonctions APD
  • Stoppe l'interpréteur et attend un CR depuis le socket

apd_breakpoint

(PECL apd >= 0.2)

apd_breakpoint — Stoppe l'interpréteur et attend un CR depuis le socket

Description

bool apd_breakpoint ( int $debug_level )

apd_breakpoint() peut être utilisé pour stopper l'exécution de votre script PHP et attend les réponses depuis le socket connecté. Pour reprendre l'exécution du programme, appuyez juste sur la touche ENTRER (une ligne vide) ou entrez une commande PHP à exécuter.

Liste de paramètres

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Session typique utilisant tcplisten

bash#tcplisten localhost 7777

APD - Advanced PHP Debugger Trace File
---------------------------------------------------------------------------
Process Pid (6118)
Trace Begun at Sun Mar 10 23:13:12 2002
---------------------------------------------------------------------------
(  0.000000): apd_set_session_trace called at /home/alan/Projects/project2/test.
php:5
(  0.074824): apd_set_session_trace_socket() at /home/alan/Projects/project2/tes
t.php:5 returned.  Elapsed (0.074824)
(  0.074918): apd_breakpoint() /home/alan/Projects/project2/test.php:7
              ++ argv[0] $(??) = 9
apd_breakpoint() at /home/alan/Projects/project2/test.php:7 returned.  Elapsed (
-2089521468.1073275368)
>\n
statement: /home/alan/Projects/project2/test.php:8
>\n
statement: /home/alan/Projects/project2/test.php:8
>\n
statement: /home/alan/Projects/project2/test.php:10
>apd_echo($i);
EXEC: apd_echo($i);
0
>apd_echo(serialize(apd_get_active_symbols()));
EXEC:  apd_echo(serialize(apd_get_active_symbols()));
a:47:{i:0;s:4:"PWD";i:1;s:10:"COLORFGBG";i:2;s:11:"XAUTHORITY";i:3;s:14:"
COLORTERM_BCE";i:4;s:9:"WINDOWID";i:5;s:14:"ETERM_VERSION";i:6;s:16:"SE
SSION_MANAGER";i:7;s:4:"PS1";i:8;s:11:"GDMSESSION";i:9;s:5:"USER";i:10;s:5:"
MAIL";i:11;s:7:"OLDPWD";i:12;s:5:"LANG";i:13;s:10:"COLORTERM";i:14;s:8:"DISP
LAY";i:15;s:8:"LOGNAME";i:16;s:6:"
>apd_echo(system('ls /home/mydir'));

>apd_continue(0);


Retourne la pile d'appel courante dans un tableau

  • « apd_breakpoint
  • apd_clunk »
  • PHP Manual
  • Fonctions APD
  • Retourne la pile d'appel courante dans un tableau

apd_callstack

(PECL apd 0.2-0.4)

apd_callstack — Retourne la pile d'appel courante dans un tableau

Description

array apd_callstack ( void )

apd_callstack() retourne la pile d'appel courante dans un tableau d'éléments.

Valeurs de retour

Un tableau contenant la pile d'appel courante.

Exemples

Exemple #1 Exemple avec apd_callstack()

<?php
print_r(apd_callstack());
?>


Lance une alerte et un callstack

  • « apd_callstack
  • apd_continue »
  • PHP Manual
  • Fonctions APD
  • Lance une alerte et un callstack

apd_clunk

(PECL apd 0.2-0.4)

apd_clunk — Lance une alerte et un callstack

Description

void apd_clunk ( string $warning [, string $delimiter = "<BR />" ] )

Cette fonction fonctionne de la même façon que son homologue Perl Carp::cluck. apd_clunk() lance une alerte et un callstack en utilisant le paramètre delimiter comme délimiteur.

Liste de paramètres

warning

L'alerte à lancer.

delimiter

Le délimiteur. Par défaut, <BR />.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec apd_clunk()

<?php
apd_clunk("Quelques alertes", "<br/>");
?>

Voir aussi

  • apd_croak() - Lance une erreur, un callstack et sort


Redémarre l'interpréteur

  • « apd_clunk
  • apd_croak »
  • PHP Manual
  • Fonctions APD
  • Redémarre l'interpréteur

apd_continue

(PECL apd >= 0.2)

apd_continue — Redémarre l'interpréteur

Description

bool apd_continue ( int $debug_level )

apd_continue() envoie une instruction via le socket pour redémarrer l'interpréteur.

Liste de paramètres

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apd_continue()

<?php
apd_continue(0);
?>


Lance une erreur, un callstack et sort

  • « apd_continue
  • apd_dump_function_table »
  • PHP Manual
  • Fonctions APD
  • Lance une erreur, un callstack et sort

apd_croak

(PECL apd 0.2-0.4)

apd_croak — Lance une erreur, un callstack et sort

Description

void apd_croak ( string $warning [, string $delimiter = "<BR />" ] )

Cette fonction fonctionne comme son homologue Perl Carp::croak. apd_croak() lance une erreur, un callstack et sort.

Liste de paramètres

warning

L'alerte à lancer.

delimiter

Le délimiteur. Par défaut, <BR />.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec apd_croak()

<?php
apd_croak("Quelques alertes","<P>");
?>

Voir aussi

  • apd_clunk() - Lance une alerte et un callstack


Affiche la table courante de fonction

  • « apd_croak
  • apd_dump_persistent_resources »
  • PHP Manual
  • Fonctions APD
  • Affiche la table courante de fonction

apd_dump_function_table

(Unknown)

apd_dump_function_table — Affiche la table courante de fonction

Description

void apd_dump_function_table ( void )

apd_dump_function_table() affiche la table courante de fonction.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec apd_dump_function_table()

<?php
apd_dump_function_table();
?>


Retourne toutes les ressources persistantes dans un tableau

  • « apd_dump_function_table
  • apd_dump_regular_resources »
  • PHP Manual
  • Fonctions APD
  • Retourne toutes les ressources persistantes dans un tableau

apd_dump_persistent_resources

(PECL apd 0.2-0.4)

apd_dump_persistent_resources — Retourne toutes les ressources persistantes dans un tableau

Description

array apd_dump_persistent_resources ( void )

apd_dump_persistent_resources() retourne toutes les ressources persistantes dans un tableau.

Valeurs de retour

Un tableau contenant toutes les ressources persistantes.

Exemples

Exemple #1 Exemple avec apd_dump_persistent_resources()

<?php
print_r(apd_dump_persistent_resources());
?>

Voir aussi

  • apd_dump_regular_resources() - Retourne toutes les ressources régulières courantes dans un tableau


Retourne toutes les ressources régulières courantes dans un tableau

  • « apd_dump_persistent_resources
  • apd_echo »
  • PHP Manual
  • Fonctions APD
  • Retourne toutes les ressources régulières courantes dans un tableau

apd_dump_regular_resources

(PECL apd 0.2-0.4)

apd_dump_regular_resources — Retourne toutes les ressources régulières courantes dans un tableau

Description

array apd_dump_regular_resources ( void )

Retourne toutes les ressources régulières courantes dans un tableau.

Valeurs de retour

Un tableau contenant les ressources régulières courantes.

Exemples

Exemple #1 Exemple avec apd_dump_regular_resources()

<?php
print_r(apd_dump_regular_resources());
?>

Voir aussi

  • apd_dump_persistent_resources() - Retourne toutes les ressources persistantes dans un tableau


Écrit dans le socket de déboguage

  • « apd_dump_regular_resources
  • apd_get_active_symbols »
  • PHP Manual
  • Fonctions APD
  • Écrit dans le socket de déboguage

apd_echo

(PECL apd >= 0.2)

apd_echo — Écrit dans le socket de déboguage

Description

bool apd_echo ( string $output )

apd_echo() envoie via le socket une demande d'information concernant le script exécuté.

Liste de paramètres

output

La variable de déboguage.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apd_echo()

<?php
apd_echo($i);
?>


Récupère un tableau contenant les noms des variables courantes de portée locale

  • « apd_echo
  • apd_set_pprof_trace »
  • PHP Manual
  • Fonctions APD
  • Récupère un tableau contenant les noms des variables courantes de portée locale

apd_get_active_symbols

(PECL apd 0.2)

apd_get_active_symbols — Récupère un tableau contenant les noms des variables courantes de portée locale

Description

array apd_get_active_symbols ( void )

apd_get_active_symbols() récupère les noms de toutes les variables définies dans le contexte actif (et non leurs valeurs).

Valeurs de retour

Un tableau multidimensionnel contenant toutes les variables.

Exemples

Exemple #1 Exemple avec apd_get_active_symbols()

<?php
apd_echo(apd_get_active_symbols());
?>


Démarre la session de déboguage APD

  • « apd_get_active_symbols
  • apd_set_session_trace_socket »
  • PHP Manual
  • Fonctions APD
  • Démarre la session de déboguage APD

apd_set_pprof_trace

(PECL apd >= 0.2)

apd_set_pprof_trace — Démarre la session de déboguage APD

Description

string apd_set_pprof_trace ([ string $dump_directory = ini_get("apd.dumpdir") [, string $fragment = "pprof" ]] )

Démarre la session de déboguage dans le dossier dump_directory/pprof_{process_id}.

Liste de paramètres

dump_directory

Le dossier dans lequel le fichier sera écrit. S'il n'est pas fourni, la directive apd.dumpdir du php.ini sera utilisée.

fragment

Valeurs de retour

Retourne le chemin du fichier de destination.

Exemples

Exemple #1 Exemple avec apd_set_pprof_trace()

<?php
apd_set_pprof_trace();
?>

Voir aussi

  • apd_set_session_trace() - Démarre la session de déboguage APD


Démarre la session de déboguage à distance

  • « apd_set_pprof_trace
  • apd_set_session_trace »
  • PHP Manual
  • Fonctions APD
  • Démarre la session de déboguage à distance

apd_set_session_trace_socket

(PECL apd >= 0.2)

apd_set_session_trace_socket — Démarre la session de déboguage à distance

Description

bool apd_set_session_trace_socket ( string $tcp_server , int $socket_type , int $port , int $debug_level )

Cette fonction se connecte au serveur TCP (e.g. tcplisten) spécifié par l'IP ou le socket Unix (comme un fichier) et envoie des données de déboguage au socket.

Liste de paramètres

tcp_server

IP ou socket Unix (comme un fichier) du serveur TCP.

socket_type

Peut prendre les valeurs des constantes AF_UNIX, pour un socket à base de fichiers, ou APD_AF_INET, pour des sockets TCP/IP standard.

port

Vous pouvez utiliser n'importe quel port, mais les numéros de port les plus élevés sont plus recommandés que les moins élevés, qui risquent d'être utilisés par d'autres services du système.

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apd_set_socket_session_trace()

<?php
  apd_set_socket_session_trace("127.0.0.1",APD_AF_INET,7112,0);
?>


Démarre la session de déboguage APD

  • « apd_set_session_trace_socket
  • apd_set_session »
  • PHP Manual
  • Fonctions APD
  • Démarre la session de déboguage APD

apd_set_session_trace

(PECL apd 0.2-0.4)

apd_set_session_trace — Démarre la session de déboguage APD

Description

void apd_set_session_trace ( int $debug_level [, string $dump_directory = ini_get("apd.dumpdir") ] )

Démarre le déboguage de apd_dump_{process_id} dans le dossier dump_directory.

Liste de paramètres

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

dump_directory

Le dossier dans lequel le fichier sera écrit. S'il n'est pas défini, la valeur du paramètre de configuration apd.dumpdir du php.ini sera utilisée.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec apd_set_session_trace()

<?php
apd_set_session_trace(99);
?>


Modifie ou définit le degré de déboguage courant

  • « apd_set_session_trace
  • override_function »
  • PHP Manual
  • Fonctions APD
  • Modifie ou définit le degré de déboguage courant

apd_set_session

(PECL apd 0.2-0.4)

apd_set_session — Modifie ou définit le degré de déboguage courant

Description

void apd_set_session ( int $debug_level )

apd_set_session() peut être utilisé pour augmenter ou diminuer le degré de déboguage dans un endroit particulier de votre application.

Liste de paramètres

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec apd_set_session()

<?php
apd_set_session(9);
?>


Surcharge les fonctions intégrées

  • « apd_set_session
  • rename_function »
  • PHP Manual
  • Fonctions APD
  • Surcharge les fonctions intégrées

override_function

(PECL apd >= 0.2)

override_function — Surcharge les fonctions intégrées

Description

bool override_function ( string $function_name , string $function_args , string $function_code )

override_function() surcharge les fonctions intégrées (les remplace dans la table des symboles).

Liste de paramètres

function_name

La fonction à surcharger.

function_args

Les arguments de la fonction, séparés par une virgule.

Habituellement, vous voudriez passer ce paramètre, tout comme le paramètre function_code, délimité par un guillemet simple. La raison pour laquelle on utilise un guillemet simple est pour protéger le nom de la variable lors de l'analyse, sinon, si vous utilisez des guillemets doubles, il devient nécessaire d'échapper le nom de la variable, e.g. \$votre_variable.

function_code

Le nouveau code pour la fonction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec override_function()

<?php
override_function('test', '$a,$b', 'echo "DOING TEST"; return $a * $b;');
?>


Renomme une fonction intégrée dans la table des fonctions globales

  • « override_function
  • bcompiler »
  • PHP Manual
  • Fonctions APD
  • Renomme une fonction intégrée dans la table des fonctions globales

rename_function

(PECL apd >= 0.2)

rename_function — Renomme une fonction intégrée dans la table des fonctions globales

Description

bool rename_function ( string $original_name , string $new_name )

rename_function() renomme une fonction intégrée dans la table des fonctions globales. Utile pour surcharger temporairement une fonction intégrée.

Liste de paramètres

original_name

Le nom original de la fonction.

new_name

Le nouveau nom pour la fonction original_name.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec rename_function()

<?php
rename_function('mysql_connect', 'debug_mysql_connect' );
?>


Compilateur bytecode PHP

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions bcompiler
    • bcompiler_load_exe — Lit et crée des classes depuis un fichier exe bcompiler
    • bcompiler_load — Lit et crée les classes depuis un fichier compressé en bzip2
    • bcompiler_parse_class — Lit le bytecode d'une classe et revient à une fonction utilisateur
    • bcompiler_read — Lit et crée les classes depuis un pointeur de fichier
    • bcompiler_write_class — Écrit une classe définie en bytecode
    • bcompiler_write_constant — Écrit une constante définie comme bytecode
    • bcompiler_write_exe_footer — Écrit à la position start et jusqu'à la fin du fichier de type exe
    • bcompiler_write_file — Écrit un code source PHP sous forme de bytecode
    • bcompiler_write_footer — Écrit le caractère \x00 pour indiquer la fin des données compilées
    • bcompiler_write_function — Écrit une fonction définie sous forme de bytecode
    • bcompiler_write_functions_from_file — Écrit toutes les fonctions définies dans un fichier sous forme de bytecode
    • bcompiler_write_header — Écrit l'en-tête bcompiler
    • bcompiler_write_included_filename — Écrit un fichier inclus en tant que bytecode


Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Bcompiler a été écrit pour diverses raisons :

  • Pour encoder un script entier dans une application PHP propriétaire
  • Pour encoder quelques fonctions / classes dans une application PHP propriétaire
  • Pour activer la production d'applications php-gtk qui peuvent être utilisées dans des applications bureautiques, sans avoir besoin d'un php.exe.
  • Pour faire la transition facilement du PHP au C
La première des raisons est possible en utilisant les fonctions bcompiler_write_header(), bcompiler_write_file() et bcompiler_write_footer(). Les fichiers bytecode peuvent être écrits compressés ou non. Pour utiliser le bytecode généré, vous pouvez simplement l'inclure grâce aux instructions include ou require.

La deuxième raison est possible en utilisant les fonctions bcompiler_write_header(), bcompiler_write_class(), bcompiler_write_footer(), bcompiler_read(), et bcompiler_load(). Les fichiers bytecode peuvent être écrits compressés ou non. La fonction bcompiler_load() lit le fichier bytecode compressé, qui représente un tiers de la taille du fichier original.

Pour créer les fichiers de type EXE, bcompiler doit être utilisé avec un fichier sapi modifié ou une version de PHP qui a été compilé en tant que bibliothèque partagé. Dans ce cas, bcompiler lit le bytecode compressé depuis la fin du fichier EXE.

Bcompiler peut améliorer les performances d'environ 30% lors de l'utilisation de bytecode non compressé uniquement. Mais garder à l'esprit que le bytecode non compressé peut représenter une taille 5 fois plus large que le code source original. L'utilisation de bytecode compressé prendra moins de place, mais la décompression nécessite plus de temps que d'analyser le code source. De plus, Bcompiler n'effectue aucune optimisation du bytecode. Cette fonctionnalité devrait être ajoutée dans les futures versions...

D'un point de vue de la protection du code, l'on peut dire qu'il est absolument impossible de recréer le code source exact, tel qu'à l'origine, et sans les commentaires originaux. Cependant, il est possible de récupérer les données depuis un fichier bytecode Bcompiler - de ce fait, n'y incluez pas vos mots de passes personnels.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/bcompiler.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


  • « Installation
  • Types de ressources »
  • PHP Manual
  • Installation/Configuration
  • Configuration à l'exécution

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.


  • « Types de ressources
  • Fonctions bcompiler »
  • PHP Manual
  • bcompiler
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions bcompiler

Contact

Si vous avez des commentaires, des corrections de bogues, des améliorations ou que vous voulez aider à rendre cette extension meilleure, vous pouvez envoyer un message à » alan_k@php.net. Toute aide est vraiment la bienvenue.

Sommaire

  • bcompiler_load_exe — Lit et crée des classes depuis un fichier exe bcompiler
  • bcompiler_load — Lit et crée les classes depuis un fichier compressé en bzip2
  • bcompiler_parse_class — Lit le bytecode d'une classe et revient à une fonction utilisateur
  • bcompiler_read — Lit et crée les classes depuis un pointeur de fichier
  • bcompiler_write_class — Écrit une classe définie en bytecode
  • bcompiler_write_constant — Écrit une constante définie comme bytecode
  • bcompiler_write_exe_footer — Écrit à la position start et jusqu'à la fin du fichier de type exe
  • bcompiler_write_file — Écrit un code source PHP sous forme de bytecode
  • bcompiler_write_footer — Écrit le caractère \x00 pour indiquer la fin des données compilées
  • bcompiler_write_function — Écrit une fonction définie sous forme de bytecode
  • bcompiler_write_functions_from_file — Écrit toutes les fonctions définies dans un fichier sous forme de bytecode
  • bcompiler_write_header — Écrit l'en-tête bcompiler
  • bcompiler_write_included_filename — Écrit un fichier inclus en tant que bytecode


Lit et crée des classes depuis un fichier exe bcompiler

  • « Fonctions bcompiler
  • bcompiler_load »
  • PHP Manual
  • Fonctions bcompiler
  • Lit et crée des classes depuis un fichier exe bcompiler

bcompiler_load_exe

(PECL bcompiler >= 0.4)

bcompiler_load_exe — Lit et crée des classes depuis un fichier exe bcompiler

Description

bool bcompiler_load_exe ( string $filename )

Lit les données depuis le fichier exe bcompiler appelé filename et crée les classes à partir du bytecode.

Liste de paramètres

filename

Le chemin vers le fichier exe, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_load_exe()

<?php

bcompiler_load_exe("/tmp/example.exe");
print_r(get_defined_classes());

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • bcompiler_load() - Lit et crée les classes depuis un fichier compressé en bzip2


Lit et crée les classes depuis un fichier compressé en bzip2

  • « bcompiler_load_exe
  • bcompiler_parse_class »
  • PHP Manual
  • Fonctions bcompiler
  • Lit et crée les classes depuis un fichier compressé en bzip2

bcompiler_load

(PECL bcompiler >= 0.4)

bcompiler_load — Lit et crée les classes depuis un fichier compressé en bzip2

Description

bool bcompiler_load ( string $filename )

Lit les données depuis le fichier compressé en bzip2 filename et crée les classes depuis le bytecode.

Liste de paramètres

filename

Le chemin vers le fichier compressé avec bzip2, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_load()

<?php

bcompiler_load("/tmp/example");

print_r(get_defined_classes());

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note:

Utiliser les instructions include ou require pour analyser les bytecodes : c'est plus portable et plus commode que d'utiliser cette fonction.

Notez que cette fonction n'exécute pas le corps du script contenu dans le fichier bytecode.

Voir aussi

  • bcompiler_load_exe() - Lit et crée des classes depuis un fichier exe bcompiler


Lit le bytecode d'une classe et revient à une fonction utilisateur

  • « bcompiler_load
  • bcompiler_read »
  • PHP Manual
  • Fonctions bcompiler
  • Lit le bytecode d'une classe et revient à une fonction utilisateur

bcompiler_parse_class

(PECL bcompiler >= 0.4)

bcompiler_parse_class — Lit le bytecode d'une classe et revient à une fonction utilisateur

Description

bool bcompiler_parse_class ( string $class , string $callback )

Lit le bytecode d'une classe et revient à une fonction utilisateur.

Liste de paramètres

class

Le nom de la classe, sous la forme d'une chaîne de caractères.

callback

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_parse_class()

<?php

function readByteCodes($data) {
    print_r($data);
}

bcompiler_parse_class("DB","readByteCodes");

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note:

Cette fonction a été supprimée de bcompiler et n'est plus disponible depuis bcompiler 0.5.


Lit et crée les classes depuis un pointeur de fichier

  • « bcompiler_parse_class
  • bcompiler_write_class »
  • PHP Manual
  • Fonctions bcompiler
  • Lit et crée les classes depuis un pointeur de fichier

bcompiler_read

(PECL bcompiler >= 0.4)

bcompiler_read — Lit et crée les classes depuis un pointeur de fichier

Description

bool bcompiler_read ( resource $filehandle )

Lit les données depuis un fichier ouvert représenté par la ressource filehandle et crée les classes depuis le bytecode.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_read()

<?php
$fh = fopen("/tmp/example","r");
bcompiler_read($fh);
fclose($fh);
print_r(get_defined_classes());

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note:

Utiliser les instructions include ou require pour analyser les bytecodes : c'est plus portable et plus commode que d'utiliser cette fonction.

Notez que cette fonction n'exécute pas le corps du script contenu dans le fichier bytecode.


Écrit une classe définie en bytecode

  • « bcompiler_read
  • bcompiler_write_constant »
  • PHP Manual
  • Fonctions bcompiler
  • Écrit une classe définie en bytecode

bcompiler_write_class

(PECL bcompiler >= 0.4)

bcompiler_write_class — Écrit une classe définie en bytecode

Description

bool bcompiler_write_class ( resource $filehandle , string $className [, string $extends ] )

Lit le bytecode d'une classe existante nommée className depuis PHP et l'écrit dans le fichier ouvert désigné par la ressource filehandle.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

className

Le nom de la classe, sous la forme d'une chaîne de caractères.

extends

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_class()

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
// vous devez écrire DB_common avant DB_mysql, car DB_mysql étend DB_common.
bcompiler_write_class($fh,"DB_common");
bcompiler_write_class($fh,"DB_mysql");
bcompiler_write_footer($fh);
fclose($fh);

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note:

Cette fonction n'effectue pas de vérification sur les dépendances, assurez-vous donc d'écrire les classes dans l'ordre pour éviter d'avoir une alerte du genre 'undefined class' lorsque vous les chargerez.

Voir aussi

  • bcompiler_write_header() - Écrit l'en-tête bcompiler
  • bcompiler_write_footer() - Écrit le caractère \x00 pour indiquer la fin des données compilées


Écrit une constante définie comme bytecode

  • « bcompiler_write_class
  • bcompiler_write_exe_footer »
  • PHP Manual
  • Fonctions bcompiler
  • Écrit une constante définie comme bytecode

bcompiler_write_constant

(PECL bcompiler >= 0.5)

bcompiler_write_constant — Écrit une constante définie comme bytecode

Description

bool bcompiler_write_constant ( resource $filehandle , string $constantName )

Lit le bytecode depuis PHP pour une constante existante constantName et écrit le bytecode dans le fichier ouvert désigné par filehandle.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

constantName

Le nom de la constante définie, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_constant()

<?php
define("MODULE_MAX", 30);

$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_constant($fh,"MODULE_MAX");
bcompiler_write_footer($fh);
fclose($fh);

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • bcompiler_write_header() - Écrit l'en-tête bcompiler
  • bcompiler_write_footer() - Écrit le caractère \x00 pour indiquer la fin des données compilées


Écrit à la position start et jusqu'à la fin du fichier de type exe

  • « bcompiler_write_constant
  • bcompiler_write_file »
  • PHP Manual
  • Fonctions bcompiler
  • Écrit à la position start et jusqu'à la fin du fichier de type exe

bcompiler_write_exe_footer

(PECL bcompiler >= 0.4)

bcompiler_write_exe_footer — Écrit à la position start et jusqu'à la fin du fichier de type exe

Description

bool bcompiler_write_exe_footer ( resource $filehandle , int $startpos )

Un fichier exe (ou auto-exécutable) est composé de trois parties :

  • Le stub (le programme compilé) qui charge PHP et l'extension bcompiler, stocke le bytecode et initialise un appel à la fonction spécifique (e.g. main) ou une méthode d'une classe (i.e. main::main)
  • Le bytecode (uniquement décompressé pour le moment)
  • Le footer EXE bcompiler

Pour obtenir un stub approprié, vous pouvez compiler le stub php_embed-based phpe.c qui se trouve dans le dossier examples/embed sur le CVS de bcompiler.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

startpos

La position dans le fichier à partir duquel commence le bytecode, et pouvant être obtenu en utilisant la fonction ftell().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_exe_footer()

<?php

/* Création du fichier de sortie (example.exe) */
$fh = fopen("example.exe", "w");

/* 1) Écriture d'un stub (phpe.exe) */
$size = filesize("phpe.exe");
$fr = fopen("phpe.exe", "r");
fwrite($fh, fread($fr, $size), $size);
$startpos = ftell($fh);

/* 2) Écriture du bytecode */
bcompiler_write_header($fh);
bcompiler_write_class($fh, "myclass");
bcompiler_write_function($fh, "main");
bcompiler_write_footer($fh);

/* 3) Écriture du footer EXE */
bcompiler_write_exe_footer($fh, $startpos);

/* Fermeture du fichier de sortie */
fclose($fh);
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • bcompiler_write_header() - Écrit l'en-tête bcompiler
  • bcompiler_write_class() - Écrit une classe définie en bytecode
  • bcompiler_write_footer() - Écrit le caractère \x00 pour indiquer la fin des données compilées


Écrit un code source PHP sous forme de bytecode

  • « bcompiler_write_exe_footer
  • bcompiler_write_footer »
  • PHP Manual
  • Fonctions bcompiler
  • Écrit un code source PHP sous forme de bytecode

bcompiler_write_file

(PECL bcompiler >= 0.6)

bcompiler_write_file — Écrit un code source PHP sous forme de bytecode

Description

bool bcompiler_write_file ( resource $filehandle , string $filename )

Cette fonction compile le fichier filename en bytecodes, et écrit le résultat dans le fichier filename.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

filename

Le chemin vers le fichier source, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_file()

<?php
$fh = fopen("example.phb", "w");
bcompiler_write_header($fh);
bcompiler_write_file($fh, "example.php");
bcompiler_write_footer($fh);
fclose($fh);
/* Ce qui suit doit être équivalent :
include "example.php";
   et
include "example.phb";
*/
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • bcompiler_write_header() - Écrit l'en-tête bcompiler
  • bcompiler_write_footer() - Écrit le caractère \x00 pour indiquer la fin des données compilées


Écrit le caractère \x00 pour indiquer la fin des données compilées

  • « bcompiler_write_file
  • bcompiler_write_function »
  • PHP Manual
  • Fonctions bcompiler
  • Écrit le caractère \x00 pour indiquer la fin des données compilées

bcompiler_write_footer

(PECL bcompiler >= 0.4)

bcompiler_write_footer — Écrit le caractère \x00 pour indiquer la fin des données compilées

Description

bool bcompiler_write_footer ( resource $filehandle )

Écrit le caractère \x00 pour indiquer la fin des données compilées.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_footer()

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_class($fh,"DB_common");
bcompiler_write_footer($fh);
fclose($fh);

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • bcompiler_write_header() - Écrit l'en-tête bcompiler


Écrit une fonction définie sous forme de bytecode

  • « bcompiler_write_footer
  • bcompiler_write_functions_from_file »
  • PHP Manual
  • Fonctions bcompiler
  • Écrit une fonction définie sous forme de bytecode

bcompiler_write_function

(PECL bcompiler >= 0.5)

bcompiler_write_function — Écrit une fonction définie sous forme de bytecode

Description

bool bcompiler_write_function ( resource $filehandle , string $functionName )

Lit le bytecode d'une fonction existante depuis PHP et l'écrit dans le fichier désigné par la ressource de fichier filehandle. L'ordre n'est pas important (e.g. si la fonction b utilise la fonction a et que vous compilez l'exemple ci-dessous, cela fonctionnera très bien).

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

functionName

Le nom de la fonction, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_function()

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_function($fh,"my_function_a");
bcompiler_write_function($fh,"my_function_b");
bcompiler_write_footer($fh);
fclose($fh);
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • bcompiler_write_header() - Écrit l'en-tête bcompiler
  • bcompiler_write_footer() - Écrit le caractère \x00 pour indiquer la fin des données compilées


Écrit toutes les fonctions définies dans un fichier sous forme de bytecode

  • « bcompiler_write_function
  • bcompiler_write_header »
  • PHP Manual
  • Fonctions bcompiler
  • Écrit toutes les fonctions définies dans un fichier sous forme de bytecode

bcompiler_write_functions_from_file

(PECL bcompiler >= 0.5)

bcompiler_write_functions_from_file — Écrit toutes les fonctions définies dans un fichier sous forme de bytecode

Description

bool bcompiler_write_functions_from_file ( resource $filehandle , string $fileName )

Recherche toutes les fonctions déclarées dans le fichier nommé fileName et écrit leurs bytecodes correspondants dans le fichier désigné par la ressource filehandle.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

fileName

Le fichier à compiler. Souvenez-vous de toujours inclure ou requérir les fichiers que vous tentez de compiler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_functions_from_file()

<?php
require('module.php');

$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_functions_from_file($fh,'module.php');
bcompiler_write_footer($fh);
fclose($fh);

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • bcompiler_write_header() - Écrit l'en-tête bcompiler
  • bcompiler_write_footer() - Écrit le caractère \x00 pour indiquer la fin des données compilées


Écrit l'en-tête bcompiler

  • « bcompiler_write_functions_from_file
  • bcompiler_write_included_filename »
  • PHP Manual
  • Fonctions bcompiler
  • Écrit l'en-tête bcompiler

bcompiler_write_header

(PECL bcompiler >= 0.3)

bcompiler_write_header — Écrit l'en-tête bcompiler

Description

bool bcompiler_write_header ( resource $filehandle [, string $write_ver ] )

Écrit l'en-tête bcompiler.

Liste de paramètres

filehandle

Une ressource de fichier retournée par la fonction fopen().

write_ver

Peut être utilisé pour écrire le bytecode dans un format utilisé précédemment, vous pouvez donc l'utiliser avec les anciennes versions de bcompiler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcompiler_write_header()

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_footer($fh);
fclose($fh);
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • bcompiler_write_footer() - Écrit le caractère \x00 pour indiquer la fin des données compilées


Écrit un fichier inclus en tant que bytecode

  • « bcompiler_write_header
  • BLENC »
  • PHP Manual
  • Fonctions bcompiler
  • Écrit un fichier inclus en tant que bytecode

bcompiler_write_included_filename

(PECL bcompiler >= 0.5)

bcompiler_write_included_filename — Écrit un fichier inclus en tant que bytecode

Description

bool bcompiler_write_included_filename ( resource $filehandle , string $filename )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Blenc - Encodeur BLowfish pour les sources des scripts PHP

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Blenc
    • blenc_encrypt — Crypte un script PHP avec BLENC


Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

BLENC est un protecteur de source des scripts PHP qui :

  • Encode votre code source avec l'algorithme blowfish.
  • Permet un cryptage transparent et une exécution de vos scripts PHP précédemment encodés avec BLENC.

BLENC est une extension qui réside dans le moteur Zend, permettant un cryptage transparent et une exécution des scripts PHP en utilisant l'algorithme blowfish. Il n'est pas prévu pour être totalement sécurisé (il est toujours possible de dé-assembler le script dans l'opcode en utilisant un paquet comme XDebug), cependant, il garde loin les personnes de votre code, et rend le reverse ingineering difficile.

Afin de protéger votre script PHP, vous devez crypter chaque script avec la fonction blenc_encrypt(). Après, vous pouvez inclure le script crypté comme ceci :

<?php

/* Script PHP encodé avec BLENC */
$my_source_encoded = 'my_source_encoded.phpe';

include($my_source_encoded);
?>

BLENC supporte également une durée d'expiration pour le module. Aussi, si vous voulez déployer votre code source avec une durée d'expiration, vous devez compiler l'extension en modifiant l'en-tête du fichier relatif au cryptage et à la durée d'expiration. Veuillez vous raporter à la section sur la configuration pour plus d'informations.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/blenc

Il est vivement recommandé d'installer BLENC depuis les sources, sans la commande PECL. Pour cela, vous pouvez :

  • Spécifier votre clé personnel de cryptage, utilisée pour crée des clés redistribuales. Votre code source sera plus difficile à décrypter pour les utilisateurs qui peuvent lire le fichier key_file sur le serveur web.
  • Spécifier une date d'expiration pour le module BLENC. Avec une date d'expiration, vous pouvez décider que le module BLENC, sur le système cible, fonctionnera jusqu'à une date donnée. Après cette date, BLENC arrêtera de décrypter les fichiers.
Toutes ces options de configuration sont stockées dans l'en-tête du fichier blenc_protect.h

Veuillez lire le contenu de blenc_protect.h dans les sources de BLECN pour savoir comment définir ces options.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Blenc Options de configuration
Nom | Défaut | Modifiable | Historique
blenc.key_file | /usr/local/etc/blenckeys | PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

blenc.key_file string

L'endroit où BLENC peut trouver le fichier contenant une liste des clés de décryptage disponibles. Ce fichier doit être accessible en lecture par le serveur Web.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

BLENC_EXT_VERSION (string)


  • « Constantes pré-définies
  • blenc_encrypt »
  • PHP Manual
  • BLENC
  • Fonctions Blenc

Fonctions Blenc

Sommaire

  • blenc_encrypt — Crypte un script PHP avec BLENC


Crypte un script PHP avec BLENC

  • « Fonctions Blenc
  • Gestion des erreurs »
  • PHP Manual
  • Fonctions Blenc
  • Crypte un script PHP avec BLENC

blenc_encrypt

(PECL blenc >= 5)

blenc_encrypt — Crypte un script PHP avec BLENC

Description

string blenc_encrypt ( string $plaintext , string $encodedfile [, string $encryption_key ] )

Crypte le contenu et l'écrit dans un fichier.

Liste de paramètres

plaintext

Le code source à crypter. Inutile d'avoir les balises ouvrantes/fermantes PHP.

encodedfile

Le nom du fichier où BLENC va sauvegarder le code source crypté.

encryption_key

La clé que BLENC va utiliser pour crypter le contenu. Si non fourni, BLENC va créer une clé valide.

Valeurs de retour

BLENC va retourner la clé redistribuable qui doit être sauvegardée dans key_file : le chemin de key_file est spécifié au moment de l'exécution avec l'option blenc.key_file

Exemples

Exemple #1 Exemple avec blenc_encrypt()

<?php

/* lit le code source PHP */
$source_code = file_get_contents("my_source_to_protect.php");

/* crée la version cryptée */
$redistributable_key = blenc_encrypt($source_code, "my_source_encoded.php");

/* lit le contenu de l'option key_file */
$key_file = ini_get('blenc.key_file');

/* enregistre la clé redistribuable */
file_put_contents($key_file, $redistributable_key, FILE_APPEND);
?>


Gestion des erreurs et des journaux

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions sur la gestion des erreurs
    • debug_backtrace — Génère le contexte de déboguage
    • debug_print_backtrace — Affiche la pile d'exécution PHP
    • error_clear_last — Clear the most recent error
    • error_get_last — Récupère la dernière erreur survenue
    • error_log — Envoi un message d'erreur vers le gestionnaire d'erreurs défini
    • error_reporting — Fixe le niveau de rapport d'erreurs PHP
    • restore_error_handler — Réactive l'ancienne fonction de gestion des erreurs
    • restore_exception_handler — Réactive l'ancienne fonction de gestion d'exceptions
    • set_error_handler — Spécifie une fonction utilisateur comme gestionnaire d'erreurs
    • set_exception_handler — Définit une fonction utilisateur de gestion d'exceptions
    • trigger_error — Déclenche une erreur utilisateur
    • user_error — Alias de trigger_error


Introduction

Voici des fonctions gérant les erreurs et les journaux. Elles vous permettent de définir vos propres règles de gestion des erreurs, mais aussi la façon dont les erreurs sont enregistrées ; ceci afin de répondre à vos besoins particuliers.

Avec les fonctions de journal, vous pouvez envoyer des messages directement à d'autres machines (ou des emails avec une passerelles), vers les logs du système, etc..., ainsi, vous pouvez sélectionner les messages et surveiller les parties les plus importantes de vos applications et de vos sites web.

Les fonctions sur le rapport d'erreurs vous permettent de personnaliser le degré et les erreurs désirées, en les catégorisant comme simple avertissement jusqu'à l'exécution de fonctions personnalisées lorsque des erreurs surviennent.


Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour la gestion d'erreurs
Nom | Défaut | Modifiable | Historique
error_reporting | NULL | PHP_INI_ALL |
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL |
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
ignore_repeated_errors | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
ignore_repeated_source | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
report_memleaks | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
track_errors | "0" | PHP_INI_ALL |
html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM in PHP <= 4.2.3.
xmlrpc_errors | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.1.0.
xmlrpc_error_number | "0" | PHP_INI_ALL | Disponible depuis PHP 4.1.0.
docref_root | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
docref_ext | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.2.
error_prepend_string | NULL | PHP_INI_ALL |
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

error_reporting integer

Fixe le niveau d'erreur. Ce paramètre est un entier, représentant un champ de bits. Ajoutez les valeurs suivantes pour choisir le niveau que vous désirez, telles que décrites dans la section Constantes pré-définies, et dans le fichier php.ini. Pour modifier cette configuration durant l'exécution du script, utilisez la fonction error_reporting(). Voyez aussi la directive display_errors.

En PHP 5.3 et suivants, la valeur par défaut est is E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED. Cette configuration n'affiche pas les alertes de niveau E_NOTICE, E_STRICT et E_DEPRECATED. Vous devriez vouloir les afficher pendant vos développements. Avant PHP 5.3.0, la valeur par défaut était E_ALL & ~E_NOTICE & ~E_STRICT. En PHP 4, la valeur par défaut est E_ALL & ~E_NOTICE.

Note:

Activer le rapport d'erreur de niveau E_NOTICE durant le développement a des avantages. En terme de déboguage, les message d'alertes vous signalent des bogues potentiels dans votre code. Par exemple, l'utilisation de valeurs non initialisées est signalée. Il est aussi plus pratique pour trouver des coquilles, et, ainsi, gagner du temps. Les messages NOTICE vous signaleront aussi les mauvaises pratiques de codage. Par exemple $arr[item] doit toujours être écrit $arr['item'] car PHP va considérer "item" comme une constante, au premier abord. Si cette constante n'est pas définie, alors il va l'utiliser comme une chaîne.

Note:

En PHP 5, un nouveau niveau d'erreur nommé E_STRICT est disponible. Avant la version 5.4.0 de PHP, E_STRICT n'était pas inclus dans E_ALL, aussi, vous deviez explicitement activer ce niveau d'erreur pour les versions < 5.4.0 de PHP. Activer E_STRICT pendant le développement peut être bénéfique. Les messages STRICT fournissent des suggestions qui peuvent vous aider pour trouver la meilleure façon d'adapter votre code afin d'obtenir une meilleure compatibilité ascendante, ainsi qu'une meilleure interopérabilité. Ces messages peuvent inclure des informations comme l'appel à des méthodes non-statiques de façon statique, la définition de propriétés dans une définition de classe compatible au lieu de les définir dans un trait utilisé, et avant PHP 5.3, quelques fonctionalités obsolètes peuvent émettre des erreurs E_STRICT comme l'assignement d'objets par référence lors de l'instanciation.

Note: Les constantes PHP en dehors de PHP

L'utilisation des constantes PHP en dehors de PHP, comme dans le fichier httpd.conf, n'a pas de signification utile mise à part dans les cas où des valeurs entières sont nécessaires. Et depuis que les niveaux d'erreurs ont été ajoutés, la valeur maximale (pour E_ALL) devrait changer. Donc, à la place de E_ALL, utilisez plutôt une valeur plus grande pour couvrir tous les octets, une valeur numérique comme 2147483647 (incluant toutes les erreurs, et non juste les erreurs de type E_ALL).

display_errors string

Cette directive détermine si les erreurs doivent être affichées à l'écran ou non.

La valeur "stderr" envoie les erreurs vers stderr plutôt que vers stdout. La valeur est disponible depuis PHP 5.2.4. Dans les anciennes versions, cette directive était du type boolean.

Note:

C'est une directive nécessaire en développement mais qui ne doit jamais être utilisée sur un système en production. (e.g. systèmes connectés à Internet).

Note:

Bien que display_errors peut être défini en cours d'exécution (avec la fonction ini_set()), il n'aura aucun effet si le script a des erreurs fatales, car l'action désirée au moment de l'exécution ne sera pas exécutée.

display_startup_errors boolean

Même si display_errors est activé, des erreurs peuvent survenir lors de la séquence de démarrage de PHP, et ces erreurs sont cachées. Avec cette option, vous pouvez les afficher, ce qui est recommandé pour le déboguage. En dehors de ce cas, il est fortement recommandé de laisser display_startup_errors à off.

log_errors boolean

Indique si les messages d'erreur générés par les scripts devraient être journalisés dans le journal d'erreurs du serveur ou dans error_log. Cette fonction est spécifique aux serveurs.

Note:

Il est recommandé d'utiliser l'historique d'erreur, plutôt que d'afficher les erreurs sur les sites de production.

log_errors_max_len integer

Configure la taille maximale des erreurs qui seront enregistrées dans l'historique, en kilo octets. Dans les informations de error_log, l'origine est ajoutée. La valeur par défaut est de 1024. 0 signifie qu'il n'y a pas de limite de taille. Cette longueur est appliquée pour enregistrer dans l'historique les erreurs, afficher les erreurs et également à $php_errormsg mais pas pour les appels explicites aux fonctions comme error_log()().

Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..
ignore_repeated_errors boolean

Ne pas enregistrer des messages répétitifs. Les erreurs répétées doivent survenir au même moment, à la même ligne et depuis le même fichier de script, à moins que ignore_repeated_source soit défini à TRUE.

ignore_repeated_source boolean

Ignore la source du message lors des messages répétés. Lorsque vous avez configuré cette option à On, vous n'enregistrerez pas les erreurs répétées provenant de fichiers et lignes de code différents.

report_memleaks boolean

Si ce paramètre est défini à On (par défaut), il affichera un rapport de fuite mémoire détectée par le gestionnaire de mémoire Zend. Ce rapport sera envoyé à stderr sur les plate-formes Posix. Sous Windows, il sera envoyé au débogueur en utilisant OutputDebugString(), et pourra être lu avec des outils comme » DbgView. Ce paramètre n'a d'effet que lors d'une compilation de débogage, et si error_reporting inclut E_WARNING dans sa liste autorisée.

track_errors boolean

Si cette option est activée, le dernier message d'erreur sera placé dans la variable $php_errormsg.

html_errors boolean

Si activé, les messages d'erreur incluront les balises HTML. Le format des erreurs HTML produira des messages clickables qui redirigeront l'utilisateur vers une page décrivant l'erreur ou la fonction qui a causé l'erreur. Ces références sont affectées par docref_root et docref_ext.

Si désactivé, le message d'erreur sera rendu en texte plein.

xmlrpc_errors boolean

Si activé, désactive le rapport normal d'erreur et formate les erreurs comme des messages d'erreur XML-RPC.

xmlrpc_error_number integer

Utilisé comme valeur de l'élément XML-RPC faultcode.

docref_root string

Le nouveau format d'erreur contient une référence à une page décrivant l'erreur, ou la fonction ayant causé l'erreur. Pour le manuel, vous pouvez télécharger ce dernier dans votre langue, et configurer cette option pour qu'elle pointe sur lui. Si votre copie du manuel est accessible à "/manual/", vous pouvez simplement utiliser docref_root=/manual/. De plus, vous devez configurer docref_ext pour qu'elle corresponde aux extensions de votre manuel. docref_ext=.html. Il est possible d'utiliser des références externes. Par exemple, vous pouvez utiliser docref_root=http://manual/en/ ou docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon&url=http%3A%2F%2Fwww.php.net%2F"

La plupart du temps, vous utilisez l'option docref_root avec un slash a la fin ("/"). Mais ce n'est pas obligatoire, comme le montre le second exemple ci-dessus.

Note:

Cette directive est destiné à vous aider dans votre développement en rendant facile la consultation de la description d'une fonction. Ne jamais l'utiliser sur un système de production (e.g. système connecté à Internet).

docref_ext string

Voir aussi docref_root.

Note:

La valeur de docref_ext doit commencer par un point ".".

error_prepend_string string

La chaîne à placer avant les messages d'erreur.

error_append_string string

La chaîne à placer après les messages d'erreur.

error_log string

Nom du fichier où seront enregistrées les erreurs. Le fichier doit être accessible en écriture par l'utilisateur exécutant le serveur web. Si la valeur spéciale syslog est utilisée, les erreurs seront envoyées au système d'historique du serveur. Sous Unix, cela correspond à syslog(3) et sous Windows NT, à l'historique d'événement. L'historique n'est pas supporté sous Windows 95. Voir aussi : syslog(). Si cette directive n'est pas fixée, les erreurs sont envoyées au journal d'erreurs SAPI. Par exemple, s'il s'agit d'une erreur de journal dans Apache ou stderr dans CLI. Voir aussi la fonction error_log().


Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

Note: Vous pouvez utiliser ces constantes dans le fichier php.ini mais pas hors de PHP, comme dans le fichier httpd.conf, où vous devez utiliser les valeurs des champs de bits.

Erreurs et historique
Valeur | Constante | Description | Note
1 | E_ERROR (entier) | Les erreurs sont aussi affichées par défaut, et l'exécution du script est interrompue. Elles indiquent des erreurs qui ne peuvent pas être ignorées, comme des problèmes d'allocation de mémoire, par exemple. |
2 | E_WARNING (entier) | Les alertes sont affichées par défaut, mais n'interrompent pas l'exécution du script. Elles indiquent un problème qui doit être intercepté par le script durant l'exécution du script. Par exemple, appeler ereg() avec une expression rationnelle invalide. |
4 | E_PARSE (entier) | Les erreurs d'analyse ne doivent être générées que par l'analyseur. Elles ne sont citées ici que dans le but d'être exhaustif. |
8 | E_NOTICE (entier) | Les remarques ne sont pas affichées par défaut, et indiquent que le script a rencontré quelque chose qui peut être une erreur, mais peut aussi être un événement normal dans la vie du script. Par exemple, essayer d'accéder à une valeur qui n'a pas été déclarée, ou appeler stat() sur un fichier qui n'existe pas. |
16 | E_CORE_ERROR (entier) | Elles sont similaires aux erreurs E_ERROR, mais elles sont générées par le code source de PHP. Les fonctions ne doivent pas générer ce genre d'erreur. |
32 | E_CORE_WARNING (entier) | Elles sont similaires à E_WARNING, mais elles sont générées par le code source de PHP. Les fonctions ne doivent pas générer ce genre d'erreur. |
64 | E_COMPILE_ERROR (entier) | Elles sont similaires à E_ERROR, mais elles sont générées par le moteur Zend. Les fonctions ne doivent pas générer ce genre d'erreur. |
128 | E_COMPILE_WARNING (entier) | Elles sont similaires à E_WARNING, mais elles sont générées par le moteur Zend. Les fonctions ne doivent pas générer ce genre d'erreur. |
256 | E_USER_ERROR (entier) | Message d'erreur généré par l'utilisateur. Comparable à E_ERROR. Elle est générée par le programmeur en PHP par l'utilisation de la fonction trigger_error(). Les fonctions de PHP ne doivent pas générer ce genre d'erreur. |
512 | E_USER_WARNING (entier) | Message d'erreur généré par l'utilisateur. Comparable à E_WARNING. Elle est générée par le programmeur en PHP par l'utilisation de la fonction trigger_error(). Les fonctions de PHP ne doivent pas générer ce genre d'erreur. |
1024 | E_USER_NOTICE (entier) | Message d'erreur généré par l'utilisateur. Comparable à E_NOTICE. Elle est générée par le programmeur en PHP par l'utilisation de la fonction trigger_error(). Les fonctions de PHP ne doivent pas générer ce genre d'erreur. |
2048 | E_STRICT (entier) | Permet d'obtenir des suggestions de PHP pour modifier votre code, assurant ainsi une meilleure interopérabilité et compatibilité de celui-ci. | Depuis PHP 5 mais ne fais pas parti de E_ALL jusqu'à PHP 5.4.0
4096 | E_RECOVERABLE_ERROR (entier) | Erreur fatale qui peut être captée. Ceci indique qu'une erreur probablement dangereuse s'est produite, mais n'a pas laissé le moteur Zend dans un état instable. Si l'erreur n'est pas attrapée par un gestionnaire d'erreur défini par l'utilisateur (voyez aussi set_error_handler(), l'application arrête prématurément comme si cela était une E_ERROR. | Depuis PHP 5.2.0
8192 | E_DEPRECATED (entier) | Alertes d'exécution. Activer cette option pour recevoir des alertes sur les portions de votre code qui pourraient ne pas fonctionner avec les futures versions. | Depuis PHP 5.3.0
16384 | E_USER_DEPRECATED (entier) | Message d'alerte généré par l'utilisateur. Fonctionne de la même façon que E_DEPRECATED, mise à part que le message est généré par votre code PHP en utilisant la fonction trigger_error(). | Depuis PHP 5.3.0
32767 | E_ALL (entier) | Toutes les erreurs et alertes supportées sauf le niveau E_STRICT avant la version 5.4.0 de PHP. | 32767 en PHP 5.4.x, 30719 en PHP 5.3.x, 6143 en PHP 5.2.x, et 2047 auparavant

Les valeurs ci-dessus (numérique ou symbolique) sont utilisées pour constituer des champs de bits, qui spécifient le niveau de rapport d'erreur. Vous pouvez utiliser les opérateurs de bits pour combiner ces valeurs pour en faire des masques qui filtrent certaines erreurs. Notez bien que seuls '|', '~', '!', '^' et '&' seront compris dans le fichier php.ini.


Exemples

Ci-dessous, vous trouverez un exemple de gestion des erreurs par PHP. Il y est défini un gestionnaire d'erreur, qui enregistre les informations dans un fichier (au format XML), et envoie un courriel au développeur si l'erreur est critique.

Exemple #1 Gestion d'erreurs avancées en PHP

<?php
// Nous allons faire notre propre gestion
error_reporting(0);

// Fonction spéciale de gestion des erreurs
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
    // Date et heure de l'erreur
    $dt = date("Y-m-d H:i:s (T)");

    // Définit un tableau associatif avec les chaînes d'erreur
    // En fait, les seuls niveaux qui nous interessent
    // sont E_WARNING, E_NOTICE, E_USER_ERROR,
    // E_USER_WARNING et E_USER_NOTICE
    $errortype = array (
                E_ERROR              => 'Erreur',
                E_WARNING            => 'Alerte',
                E_PARSE              => 'Erreur d\'analyse',
                E_NOTICE             => 'Note',
                E_CORE_ERROR         => 'Core Error',
                E_CORE_WARNING       => 'Core Warning',
                E_COMPILE_ERROR      => 'Compile Error',
                E_COMPILE_WARNING    => 'Compile Warning',
                E_USER_ERROR         => 'Erreur spécifique',
                E_USER_WARNING       => 'Alerte spécifique',
                E_USER_NOTICE        => 'Note spécifique',
                E_STRICT             => 'Runtime Notice',
                E_RECOVERABLE_ERROR => 'Catchable Fatal Error'
                );
    // Les niveaux qui seront enregistrés
    $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);

    $err = "<errorentry>\n";
    $err .= "\t<datetime>" . $dt . "</datetime>\n";
    $err .= "\t<errornum>" . $errno . "</errornum>\n";
    $err .= "\t<errortype>" . $errortype[$errno] . "</errortype>\n";
    $err .= "\t<errormsg>" . $errmsg . "</errormsg>\n";
    $err .= "\t<scriptname>" . $filename . "</scriptname>\n";
    $err .= "\t<scriptlinenum>" . $linenum . "</scriptlinenum>\n";

    if (in_array($errno, $user_errors)) {
        $err .= "\t<vartrace>".wddx_serialize_value($vars,"Variables")."</vartrace>\n";
    }
    $err .= "</errorentry>\n\n";

    // sauvegarde de l'erreur, et mail si c'est critique
    error_log($err, 3, "/usr/local/php4/error.log");
    if ($errno == E_USER_ERROR) {
        mail("phpdev@example.com","Critical User Error",$err);
    }
}

function distance($vect1, $vect2)
{
    if (!is_array($vect1) || !is_array($vect2)) {
        trigger_error("Incorrect parameters, arrays expected", E_USER_ERROR);
        return NULL;
    }

    if (count($vect1) != count($vect2)) {
        trigger_error("Vectors need to be of the same size", E_USER_ERROR);
        return NULL;
    }

    for ($i=0; $i<count($vect1); $i++) {
        $c1 = $vect1[$i]; $c2 = $vect2[$i];
        $d = 0.0;
        if (!is_numeric($c1)) {
            trigger_error("Coordinate $i in vector 1 is not a number, using zero",
                            E_USER_WARNING);
            $c1 = 0.0;
        }
        if (!is_numeric($c2)) {
            trigger_error("Coordinate $i in vector 2 is not a number, using zero",
                            E_USER_WARNING);
            $c2 = 0.0;
        }
        $d += $c2*$c2 - $c1*$c1;
    }
    return sqrt($d);
}

$old_error_handler = set_error_handler("userErrorHandler");

// constante non définie, qui génère une alerte
$t = I_AM_NOT_DEFINED;

// définition de quelques vecteurs
$a = array (2, 3, "foo");
$b = array (5.5, 4.3, -1.6);
$c = array (1, -3);

// génère une erreur utilisateur
$t1 = distance ($c, $b)."\n";

// génère une erreur utilisateur
$t2 = distance ($b, "i am not an array")."\n";

// Génère une alerte
$t3 = distance ($a, $b)."\n";

?>


Fonctions sur la gestion des erreurs

Voir aussi

Voir aussi la fonction syslog().

Sommaire

  • debug_backtrace — Génère le contexte de déboguage
  • debug_print_backtrace — Affiche la pile d'exécution PHP
  • error_clear_last — Clear the most recent error
  • error_get_last — Récupère la dernière erreur survenue
  • error_log — Envoi un message d'erreur vers le gestionnaire d'erreurs défini
  • error_reporting — Fixe le niveau de rapport d'erreurs PHP
  • restore_error_handler — Réactive l'ancienne fonction de gestion des erreurs
  • restore_exception_handler — Réactive l'ancienne fonction de gestion d'exceptions
  • set_error_handler — Spécifie une fonction utilisateur comme gestionnaire d'erreurs
  • set_exception_handler — Définit une fonction utilisateur de gestion d'exceptions
  • trigger_error — Déclenche une erreur utilisateur
  • user_error — Alias de trigger_error


Génère le contexte de déboguage

  • « Fonctions sur la gestion des erreurs
  • debug_print_backtrace »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Génère le contexte de déboguage

debug_backtrace

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

debug_backtrace — Génère le contexte de déboguage

Description

array debug_backtrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [, int $limit = 0 ]] )

debug_backtrace() génère un contexte de déboguage PHP.

Liste de paramètres

options

Depuis PHP 5.3.6, ce paramètre est un masque d'options suivantes :

Options pour la fonction debug_backtrace()
DEBUG_BACKTRACE_PROVIDE_OBJECT | Si l'on doit ou non peupler l'index "object".
DEBUG_BACKTRACE_IGNORE_ARGS | Si l'on doit ou non omettre l'index "args" et donc tous les arguments de la fonction/méthode pour économiser de la mémoire.
Avant PHP 5.3.6, les seules valeurs reconnues sont TRUE ou FALSE, ce qui revenait à, respectivement, définir ou non l'option DEBUG_BACKTRACE_PROVIDE_OBJECT.

limit

Depuis 5.4.0, ce paramètre peut être utilisé pour limiter le nombre de trames dans la pile retournée. Par défaut (limit=0), la fonction retourne toutes les trames de la pile.

Valeurs de retour

Retourne un tableau de tableaux associatifs. Les éléments de retour possibles sont les suivants :

Éléments possibles de retour de la fonction debug_backtrace()
Nom | Type | Description
function | chaîne de caractères | Le nom de la fonction courante. Voir aussi __FUNCTION__.
line | entier | Le numéro de la ligne courante. Voir aussi __LINE__.
file | chaîne de caractères | Le nom du fichier courant. Voir aussi __FILE__.
class | chaîne de caractères | Le nom de la classe courante. Voir aussi __CLASS__.
object | objet | L'objet courant.
type | chaîne de caractères | Le type de classe courante. Si une méthode est appelée, "->" est retourné. Si une méthode statique est appelée, "::" est retourné. Si une fonction est appelée, rien ne sera retourné.
args | tableau | Si à l'intérieur d'une fonction, ceci liste des arguments. Si dans un fichier inclus, ceci liste des fichiers inclus.

Historique

Version | Description
5.4.0 | Le paramètre optionnel limit a été ajouté.
5.3.6 | Le paramètre provide_object a été modifié en options et d'autres options DEBUG_BACKTRACE_IGNORE_ARGS ont été ajoutées.
5.2.5 | Ajout du paramètre optionnel provide_object.
5.1.1 | Ajout de l'objet courant comme élément de retour possible.

Exemples

Exemple #1 Exemple avec debug_backtrace()

<?php
// filename: /tmp/a.php

function a_test($str)
{
  echo "\nHi: $str";
  var_dump(debug_backtrace());
}

a_test('friend');
?>

<?php
// filename: /tmp/b.php
include_once '/tmp/a.php';
?>

Résultat de l'exécution de /tmp/b.php :

Hi: friend
array(2) {
  [0]=>
    array(4) {
      ["file"] => string(10) "/tmp/a.php"
      ["line"] => int(10)
      ["function"] => string(6) "a_test"
      ["args"]=>
        array(1) {
          [0] => &string(6) "friend"
        }
    }
  [1]=>
    array(4) {
      ["file"] => string(10) "/tmp/b.php"
      ["line"] => int(2)
      ["args"] =>
        array(1) {
          [0] => string(10) "/tmp/a.php"
        }
      ["function"] => string(12) "include_once"
    }
}

Voir aussi

  • trigger_error() - Déclenche une erreur utilisateur
  • debug_print_backtrace() - Affiche la pile d'exécution PHP


Affiche la pile d'exécution PHP

  • « debug_backtrace
  • error_clear_last »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Affiche la pile d'exécution PHP

debug_print_backtrace

(PHP 5, PHP 7)

debug_print_backtrace — Affiche la pile d'exécution PHP

Description

void debug_print_backtrace ([ int $options = 0 [, int $limit = 0 ]] )

debug_print_backtrace() affiche la pile d'exécution de PHP. Elle affiche les appels aux fonctions, aux fichiers inclus / requis ainsi que les appels à eval().

Liste de paramètres

options

Depuis 5.3.6, ce paramètre est un masque d'options suivantes :

Options pour debug_print_backtrace()
DEBUG_BACKTRACE_IGNORE_ARGS Si l'on doit omettre l'index "args" et ainsi, tous les arguments de la méthode/fonction pour préserver la mémoire.

limit

Depuis 5.4.0, ce paramètre peut être utilisé pour limiter le nombre de trames de la pile à afficher. Par défaut (limit=0), toutes les trames de la pile seront affichées.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
5.4.0 | Ajout du paramètre optionnel limit.
5.3.6 | Ajout du paramètre optionnel options.

Exemples

Exemple #1 Exemple avec debug_print_backtrace()

<?php
// fichier include.php

function a() {
    b();
}

function b() {
    c();
}

function c(){
    debug_print_backtrace();
}

a();

?>
<?php
// fichier test.php
// C'est le fichier que vous devez exécuter

include 'include.php';
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

#0  c() called at [/tmp/include.php:10]
#1  b() called at [/tmp/include.php:6]
#2  a() called at [/tmp/include.php:17]
#3  include(/tmp/include.php) called at [/tmp/test.php:3]

Voir aussi

  • debug_backtrace() - Génère le contexte de déboguage


Clear the most recent error

  • « debug_print_backtrace
  • error_get_last »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Clear the most recent error

error_clear_last

(PHP 7)

error_clear_last — Clear the most recent error

Description

void error_clear_last ( void )

Valeurs de retour

Clears the most recent errors, making it unable to be retrieved with error_get_last().

Exemples

Exemple #1 An error_clear_last() example

<?php
var_dump(error_get_last());
error_clear_last();
var_dump(error_get_last());

@$a = $b;

var_dump(error_get_last());
error_clear_last();
var_dump(error_get_last());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

NULL
NULL
array(4) {
  ["type"]=>
  int(8)
  ["message"]=>
  string(21) "Undefined variable: b"
  ["file"]=>
  string(9) "%s"
  ["line"]=>
  int(6)
}
NULL

Voir aussi

  • Error constants


Récupère la dernière erreur survenue

  • « error_clear_last
  • error_log »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Récupère la dernière erreur survenue

error_get_last

(PHP 5 >= 5.2.0, PHP 7)

error_get_last — Récupère la dernière erreur survenue

Description

array error_get_last ( void )

Récupère la dernière erreur survenue.

Valeurs de retour

Retourne un tableau associatif décrivant la dernière erreur avec les clés "type", "message", "file" et "line". Si l'erreur a été causée par une fonction interne à PHP, le message commencera par le nom de cette fonction. Retourne NULL s'il n'y a actuellement aucune erreur.

Exemples

Exemple #1 Exemple avec error_get_last()

<?php
echo $a;
print_r(error_get_last());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [type] => 8
    [message] => Undefined variable: a
    [file] => C:\WWW\index.php
    [line] => 2
)

Voir aussi

  • Constantes d'erreur
  • Variable $php_errormsg
  • error_clear_last() - Clear the most recent error
  • Directive display_errors
  • Directive html_errors
  • Directive xmlrpc_errors


Envoi un message d'erreur vers le gestionnaire d'erreurs défini

  • « error_get_last
  • error_reporting »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Envoi un message d'erreur vers le gestionnaire d'erreurs défini

error_log

(PHP 4, PHP 5, PHP 7)

error_log — Envoi un message d'erreur vers le gestionnaire d'erreurs défini

Description

bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )

Envoi un message d'erreur à l'historique d'erreur du serveur web ou à un fichier.

Liste de paramètres

message

Le message d'erreur qui doit être stocké.

message_type

Spécifie la destination du message d'erreur. Les types possibles de messages sont :

error_log() log types
0 | message est envoyé à l'historique PHP, qui est basé sur l'historique système ou un fichier, en fonction de la configuration de error_log. C'est l'option par défaut.
1 | message est envoyé par email à l'adresse destination. C'est le seul type qui utilise le quatrième paramètre extra_headers.
2 | N'est plus une option.
3 | message est ajouté au fichier destination. Aucune nouvelle ligne (retour chariot) n'est automatiquement ajoutée à la fin de la chaîne message.
4 | message est envoyé directement au gestionnaire d'identification SAPI.

destination

La destination. Cela dépend du paramètre message_type décrit ci-dessus.

extra_headers

Les en-têtes supplémentaires. Ils sont utilisés lorsque le paramètre message_type est défini à 1. Ce type de message utilise la même fonction interne que la fonction mail().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

La fonction error_log() n'est pas sûr, au niveau binaire. Le paramètre message sera tronqué par un caractère nul.

Astuce

Le paramètre message ne doit pas contenir de caractère nul. Notez que le paramètre message peut être envoyé vers un fichier, un mail, syslog, etc. Utilisez les fonctions appropriées de conversion/échappement, base64_encode(), rawurlencode() ou addslashes() avant d'appeler la fonction error_log().

Exemples

Exemple #1 Exemples avec error_log()

<?php
// Envoie une notification par l'historique du serveur web,
// si la connexion à la base de données est impossible.
if (!Ora_Logon($username, $password)) {
  error_log("Base Oracle indisponible !", 0);
}

// Indiquer à l'administrateur, par email, qu'il n'y a plus de FOO
if (!($foo = allocate_new_foo())) {
  error_log("Aya!, Il ne reste plus de FOO disponibles !", 1,
  "operateur@example.com");
}

// D'autres manières d'appeler error_log():
error_log("Grosse bourde !", 3, "/var/tmp/mes-erreurs.log");
?>

Historique

Version | Description
5.2.7 | Le paramètre message_type peut désormais prendre 4 comme valeur.


Fixe le niveau de rapport d'erreurs PHP

  • « error_log
  • restore_error_handler »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Fixe le niveau de rapport d'erreurs PHP

error_reporting

(PHP 4, PHP 5, PHP 7)

error_reporting — Fixe le niveau de rapport d'erreurs PHP

Description

int error_reporting ([ int $level ] )

error_reporting() modifie la directive error_reporting pendant l'exécution du script. PHP possède plusieurs niveaux d'erreurs, utiliser cette fonction configure ce niveau pendant la durée (d'exécution) de votre script. Si le paramètre optionnel level n'est pas défini, error_reporting() retournera uniquement le niveau de rapport d'erreurs courant.

Liste de paramètres

level

Le nouveau niveau error_reporting. Il peut être un champ de bits ou une combinaison de constantes. L'utilisation des constantes est vivement recommandée pour assurer une compatibilité maximale avec les futures versions. Au fur et à mesure que de nouveaux niveaux d'erreurs sont créés, les valeurs évoluent, c'est pourquoi les anciennes valeurs n'ont plus forcément la même signification.

Les constantes représentant les niveaux d'erreurs disponibles et la signification de ces niveaux d'erreurs est décrite dans le manuel sur les constantes prédéfinies.

Valeurs de retour

Retourne l'ancien niveau d'error_reporting ou le niveau d'erreurs courant si le paramètre level n'est pas fourni.

Historique

Version | Description
5.4.0 | E_STRICT devient une partie de E_ALL.
5.3.0 | E_DEPRECATED et E_USER_DEPRECATED ont été introduits.
5.2.0 | E_RECOVERABLE_ERROR est introduit.
5.0.0 | E_STRICT est introduit (ne fait plus partie de E_ALL).

Exemples

Exemple #1 Exemple avec error_reporting()

<?php

// Désactiver le rapport d'erreurs
error_reporting(0);

// Rapporte les erreurs d'exécution de script
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Rapporter les E_NOTICE peut vous aider à améliorer vos scripts
// (variables non initialisées, variables mal orthographiées..)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Rapporte toutes les erreurs à part les E_NOTICE
// C'est la configuration par défaut de php.ini
error_reporting(E_ALL & ~E_NOTICE);

// Reporte toutes les erreurs PHP (Voir l'historique des modifications)
error_reporting(E_ALL);

// Reporte toutes les erreurs PHP
error_reporting(-1);

// Même chose que error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

Notes

Avertissement

La plupart des erreurs E_STRICT sont évaluées au moment de la compilation, comme les erreurs qui ne sont pas reportées dans le fichier lorsque error_reporting est défini pour inclure les erreurs E_STRICT (et vice-versa).

Astuce

En passant la valeur -1, toutes les erreurs possibles seront affichées, même lors de l'ajout d'autres niveaux et constantes dans les futures versions de PHP. La constante E_ALL fonctionne de la même façon depuis PHP 5.4.

Voir aussi

  • La directive display_errors
  • La directive html_errors
  • La directive xmlrpc_errors
  • ini_set() - Modifie la valeur d'une option de configuration


Réactive l'ancienne fonction de gestion des erreurs

  • « error_reporting
  • restore_exception_handler »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Réactive l'ancienne fonction de gestion des erreurs

restore_error_handler

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

restore_error_handler — Réactive l'ancienne fonction de gestion des erreurs

Description

bool restore_error_handler ( void )

Utilisée après avoir modifié la fonction de gestion des erreurs, grâce à set_error_handler(), restore_error_handler() permet de réutiliser l'ancienne version de gestion des erreurs (qui peut être la fonction PHP par défaut, ou une autre fonction utilisateur).

Valeurs de retour

Cette fonction retourne toujours TRUE.

Exemples

Exemple #1 Exemple avec restore_error_handler()

Si unserialize() cause une erreur, alors le gestionnaire d'erreurs original est restauré.

<?php
function unserialize_handler($errno, $errstr)
{
echo "Valeur incorrectement linéarisée.\n";
}

$serialized = 'foo';
set_error_handler('unserialize_handler');
$original = unserialize($serialized);
restore_error_handler();
?>

L'exemple ci-dessus va afficher :

Valeur incorrectement linéarisée.

Voir aussi

  • error_reporting() - Fixe le niveau de rapport d'erreurs PHP
  • set_error_handler() - Spécifie une fonction utilisateur comme gestionnaire d'erreurs
  • restore_exception_handler() - Réactive l'ancienne fonction de gestion d'exceptions
  • trigger_error() - Déclenche une erreur utilisateur


Réactive l'ancienne fonction de gestion d'exceptions

  • « restore_error_handler
  • set_error_handler »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Réactive l'ancienne fonction de gestion d'exceptions

restore_exception_handler

(PHP 5, PHP 7)

restore_exception_handler — Réactive l'ancienne fonction de gestion d'exceptions

Description

bool restore_exception_handler ( void )

restore_exception_handler() est utilisé, après le changement de la fonction de gestion d'exceptions avec la fonction set_exception_handler(), pour revenir à l'ancien gestionnaire d'exceptions (qui peut être la fonction interne ou une fonction définie par l'utilisateur).

Valeurs de retour

Cette fonction retourne toujours TRUE.

Exemples

Exemple #1 Exemple avec restore_exception_handler()

<?php
    function exception_handler_1(Exception $e)
    {
        echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
    }

    function exception_handler_2(Exception $e)
    {
        echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
    }

    set_exception_handler('exception_handler_1');
    set_exception_handler('exception_handler_2');

    restore_exception_handler();

    throw new Exception('Ceci utilise le premier gestionnaire d\'exception...');
?>

L'exemple ci-dessus va afficher :

[exception_handler_1] Ceci utilise le premier gestionnaire d'exception...

Voir aussi

  • set_exception_handler() - Définit une fonction utilisateur de gestion d'exceptions
  • set_error_handler() - Spécifie une fonction utilisateur comme gestionnaire d'erreurs
  • restore_error_handler() - Réactive l'ancienne fonction de gestion des erreurs
  • error_reporting() - Fixe le niveau de rapport d'erreurs PHP


Spécifie une fonction utilisateur comme gestionnaire d'erreurs

  • « restore_exception_handler
  • set_exception_handler »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Spécifie une fonction utilisateur comme gestionnaire d'erreurs

set_error_handler

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

set_error_handler — Spécifie une fonction utilisateur comme gestionnaire d'erreurs

Description

mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )

set_error_handler() choisit la fonction utilisateur error_handler pour gérer les erreurs dans un script.

set_error_handler() peut être utilisé pour définir votre propre manière de gérer les erreurs durant l'exécution, par exemple pour une application dans laquelle vous devez nettoyer les données/fichiers lorsqu'une erreur survient ou lorsque vous devez déclencher une erreur sous certaines conditions (en utilisant trigger_error()).

Il faut se rappeler que la fonction standard de traitement des erreurs de PHP est alors complètement ignorée pour les erreurs de types spécifiés par error_types à moins que la fonction de rappel retourne FALSE. error_reporting() n'aura plus d'effet, et votre fonction de gestion des erreurs sera toujours appelée. Vous pourrez toujours lire la valeur de l'erreur courante de error_reporting et faire réagir la fonction de gestion des erreurs en fonction. Cette remarque est notamment valable si la commande a été préfixée par @.

Notez aussi qu'il est alors confié à cette fonction de terminer le script (die()) si nécessaire. Si la fonction de gestion des erreurs se termine normalement, l'exécution du script se poursuivra avec l'exécution de la prochaine commande.

Les types d'erreur suivants ne peuvent pas être gérés avec cette fonction : E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING ainsi que la plupart des E_STRICT du fichier dans lequel set_error_handler() est appelé.

Si une erreur survient avant que le script ne soit exécuté (par exemple un téléchargement de fichier), le gestionnaire d'erreurs personnalisé ne pourra pas être appelé, car il n'est pas encore enregistré.

Liste de paramètres

error_handler

Une fonction de rappel avec la signature suivante. NULL peut être passé à la place, pour ré-initialiser ce gestionnaire en son statut par défaut. Au lieu d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut également être fourni.

bool handler ( int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]] )
errno
Le premier paramètre errno, contient le niveau d'erreur, sous la forme d'un entier.
errstr
Le second paramètre errstr, contient le message d'erreur, sous forme de chaîne.
errfile
Le troisième paramètre, optionnel, errfile, contient le nom du fichier dans lequel l'erreur a été identifiée.
errline
Le quatrième paramètre, optionnel, errline, contient le numéro de ligne à laquelle l'erreur a été identifiée.
errcontext
Le cinquième paramètre, optionnel, errcontext, est un tableau qui pointe sur la table des symboles actifs lors de l'erreur. En d'autres termes, errcontext contient un tableau avec toutes les variables qui existaient lorsque l'erreur a été déclenchée. La fonction de gestion d'erreurs de l'utilisateur ne doit pas modifier le contexte d'erreur.

Si la fonction retourne FALSE, alors le gestionnaire d'erreurs normal continue.

error_types

Sert de masque pour appeler la fonction error_handler de la même façon que l'option de configuration error_reporting contrôle les erreurs qui sont affichées. Sans le masque, error_handler sera appelé pour toutes les erreurs, quelle que soit la valeur de error_reporting.

Valeurs de retour

Retourne une chaîne contenant le dernier gestionnaire d'erreurs (s'il existe). Si le gestionnaire d'erreurs natif est utilisé, NULL est retourné. NULL est également retourné dans le cas d'une erreur, comme une fonction de rappel incorrecte. Si le gestionnaire d'erreurs précédent est une méthode d'une classe, cette fonction retournera un tableau indexé de la classe et du nom de la méthode.

Historique

Version | Description
5.5.0 | error_handler accepte désormais NULL.
5.2.0 | Le gestionnaire d'erreurs doit retourner FALSE pour peupler la variable $php_errormsg.

Exemples

Exemple #1 Gestionnaire d'erreurs avec set_error_handler() et trigger_error()

L'exemple ci-dessous illustre l'interception d'erreurs internes avec génération d'erreur et son exploitation dans une fonction utilisateur :

<?php
// Gestionnaire d'erreurs
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
   if (!(error_reporting() & $errno)) {
        // Ce code d'erreur n'est pas inclus dans error_reporting()
        return;
    }

    switch ($errno) {
    case E_USER_ERROR:
        echo "<b>Mon ERREUR</b> [$errno] $errstr<br />\n";
        echo "  Erreur fatale sur la ligne $errline dans le fichier $errfile";
        echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
        echo "Arrêt...<br />\n";
        exit(1);
        break;

    case E_USER_WARNING:
        echo "<b>Mon ALERTE</b> [$errno] $errstr<br />\n";
        break;

    case E_USER_NOTICE:
        echo "<b>Mon AVERTISSEMENT</b> [$errno] $errstr<br />\n";
        break;

    default:
        echo "Type d'erreur inconnu : [$errno] $errstr<br />\n";
        break;
    }

    /* Ne pas exécuter le gestionnaire interne de PHP */
    return true;
}

// Fonction pour tester la gestion d'erreur
function scale_by_log($vect, $scale)
{
    if (!is_numeric($scale) || $scale <= 0) {
        trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale", E_USER_ERROR);
    }

    if (!is_array($vect)) {
        trigger_error("Type d'entrée incorrect, tableau de valeurs attendu", E_USER_WARNING);
        return null;
    }

    $temp = array();
    foreach($vect as $pos => $value) {
        if (!is_numeric($value)) {
            trigger_error("La valeur à la position $pos n'est pas un nombre, utilisation 0 (zéro)", E_USER_NOTICE);
            $value = 0;
        }
        $temp[$pos] = log($scale) * $value;
    }
    return $temp;
  }

// Configuration du gestionnaire d'erreurs
$old_error_handler = set_error_handler("myErrorHandler");

// Génération de quelques erreurs. Commençons par créer un tableau
echo "vector a\n";
$a = array(2, 3, "foo", 5.5, 43.3, 21.11);
print_r($a);

// Générons maintenant un second tableau
echo "----\nvector b - a notice (b = log(PI) * a)\n";
/* Valeur à la position $pos n'est pas un nombre, utilisation de 0 (zéro) */
$b = scale_by_log($a, M_PI);
print_r($b);

// Ceci est un problème, nous avons utilisé une chaîne au lieu d'un tableau
echo "----\nvector c - a warning\n";
/* Type d'entrée incorrect, tableau de valeurs attendu */
$c = scale_by_log("non un tablau", 2.3);
var_dump($c); // NULL

// Ceci est une erreur critique : le logarithme de zéro ou d'un nombre négatif est indéfini
echo "----\nvector d - fatal error\n";
/* log(x) pour x <= 0 est indéfini, vous utilisez : scale = $scale" */
$d = scale_by_log($a, -2.5);
var_dump($d); // Jamais atteint
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

vector a
Array
(
    [0] => 2
    [1] => 3
    [2] => foo
    [3] => 5.5
    [4] => 43.3
    [5] => 21.11
)
----
vector b - a notice (b = log(PI) * a)
<b>Mon AVERTISSEMENT</b> [1024] La valeur à la position 2 n'est pas un nombre, utilisation de 0 (zéro)<br />
Array
(
    [0] => 2.2894597716988
    [1] => 3.4341896575482
    [2] => 0
    [3] => 6.2960143721717
    [4] => 49.566804057279
    [5] => 24.165247890281
)
----
vector c - an warning
<b>Mon ALERTE</b> [512] Entrée incorrect, tableau de valeurs attendu<br />
NULL
----
vector d - fatal error
<b>Mon ERREUR</b> [256] log(x) for x <= 0 est indéfini, vous utilisez : scale = -2.5<br />
Erreur fatale sur la ligne 36 dans le fichier trigger_error.php, PHP 4.0.2 (Linux)<br />
Abandon...<br />

Voir aussi

  • ErrorException
  • error_reporting() - Fixe le niveau de rapport d'erreurs PHP
  • restore_error_handler() - Réactive l'ancienne fonction de gestion des erreurs
  • trigger_error() - Déclenche une erreur utilisateur
  • Constantes de niveau d'erreur
  • Informations sur le type callback


Définit une fonction utilisateur de gestion d'exceptions

  • « set_error_handler
  • trigger_error »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Définit une fonction utilisateur de gestion d'exceptions

set_exception_handler

(PHP 5, PHP 7)

set_exception_handler — Définit une fonction utilisateur de gestion d'exceptions

Description

callable set_exception_handler ( callable $exception_handler )

set_exception_handler() définit le gestionnaire d'exceptions par défaut si une exception n'est pas attrapée avec un bloc d'essai/d'attrape. L'exécution sera stoppée après l'appel à la fonction exception_handler.

Liste de paramètres

exception_handler

Nom de la fonction à appeler lorsqu'une exception qui n'a pu être attrapée survient. Ce gestionnaire doit accepter un paramètre qui sera l'objet représentant l'exception qui vient d'être lancée. C'est le gestionnaire de signature avant PHP 7 :

void handler ( Exception $ex )

Depuis PHP 7, la plupart des erreurs sont rapportées en émettant une exception de type Error, qui peut être attrapée par le gestionnaire. Les classes Error et Exception implémentent l'interface Throwable. Voici la signature du gestionnaire depuis PHP 7 :

void handler ( Throwable $ex )

NULL peut être passé à la place, pour ré-initialiser ce gestionnaire en son statut initial.

Attention

Notez que le fait de fournir explicitement le type Exception pour le paramètre ex dans votre fonction de rappel peut avoir des incidences dans la hiérarchie des exceptions modifiées en PHP 7.

Valeurs de retour

Retourne le nom du gestionnaire précédemment défini ou NULL en cas d'erreur. Si aucun gestionnaire n'a été précédemment défini, NULL est également retourné.

Historique

Version | Description
7.0.0 | Le type du paramètre passé dans exception_handler a changé, passant de Exception à Throwable
5.5.0 | Précédemment, si NULL était passé, alors la fonction retournait TRUE. Désormais, elle retourne le gestionnaire précédant, et ce, depuis PHP 5.5.0.

Exemples

Exemple #1 Exemple avec set_exception_handler()

<?php
function exception_handler($exception) {
  echo "Exception non attrapée : " , $exception->getMessage(), "\n";
}

set_exception_handler('exception_handler');

throw new Exception('Uncaught Exception');
echo "Non exécuté\n";
?>

Voir aussi

  • restore_exception_handler() - Réactive l'ancienne fonction de gestion d'exceptions
  • restore_error_handler() - Réactive l'ancienne fonction de gestion des erreurs
  • error_reporting() - Fixe le niveau de rapport d'erreurs PHP
  • Informations sur le type callback
  • Les exceptions en PHP 5


Déclenche une erreur utilisateur

  • « set_exception_handler
  • user_error »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Déclenche une erreur utilisateur

trigger_error

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

trigger_error — Déclenche une erreur utilisateur

Description

bool trigger_error ( string $error_msg [, int $error_type = E_USER_NOTICE ] )

trigger_error() est utilisé pour déclencher une erreur utilisateur. Elle peut aussi être utilisée en conjonction avec un gestionnaire d'erreurs interne, ou un gestionnaire d'erreurs utilisateur qui a été choisi comme gestionnaire d'erreurs avec set_error_handler().

trigger_error() est pratique lorsque vous devez générer une réponse particulière lors de l'exécution.

Liste de paramètres

error_msg

Le message d'erreur désigné pour cette erreur. Il est limité en longueur à 1024 octets. Tous caractères après les 1024 octets seront ignorés.

error_type

Le type d'erreur désigné pour cette erreur. Cela ne fonctionne qu'avec la famille de constantes E_USER et sera par défaut E_USER_NOTICE.

Valeurs de retour

Cette fonction retourne FALSE si un paramètre incorrect est passé à error_type, TRUE sinon.

Exemples

Exemple #1 Exemple avec trigger_error()

Voir set_error_handler() pour un exemple plus conséquent.

<?php
if ($divisor == 0) {
  trigger_error("Impossible de diviser par zéro", E_USER_ERROR);
}
?>

Notes

Avertissement

Les entités HTML contenues dans le paramètre error_msg ne sont pas échappées. Utilisez la fonction htmlentities() sur le message si l'erreur doit être affichée dans un navigateur.

Voir aussi

  • error_reporting() - Fixe le niveau de rapport d'erreurs PHP
  • set_error_handler() - Spécifie une fonction utilisateur comme gestionnaire d'erreurs
  • restore_error_handler() - Réactive l'ancienne fonction de gestion des erreurs
  • Les constantes de niveau d'erreur


Alias de trigger_error

  • « trigger_error
  • htscanner »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Alias de trigger_error

user_error

(PHP 4, PHP 5, PHP 7)

user_error — Alias de trigger_error()

Description

Cette fonction est un alias de : trigger_error().


Support du format .htaccess pour toutes les SAPI

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources


Introduction

L'extension htscanner donne la possibilité d'accéder à des fichiers au format .htaccess pour configurer PHP, dossier par dossier, comme c'est possible avec Apache. Cela est particulièrement utile avec fastcgi (IIS5/6/7, lighttpd, etc.).


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

PHP version 5.2.0 ou plus récent.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/htscanner


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration htscanner
Nom | Défaut | Modifiable | Historique
htscanner.config_file | ".htscanner" | PHP_INI_SYSTEM |
htscanner.default_docroot | "/" | PHP_INI_SYSTEM |
htscanner.default_ttl | "300" | PHP_INI_SYSTEM |
htscanner.stop_on_error | "Off" | PHP_INI_SYSTEM |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

htscanner.config_file string

Nom du fichier qui contient les configurations.

htscanner.default_docroot string

Racine Web par défaut.

htscanner.default_ttl int

Durée de vie des documents mis en cache, exprimé en secondes.

htscanner.stop_on_error int

Arrêt sur erreur (erreur d'analyse, ou d'affectation d'une directive INI).


  • « Configuration à l'exécution
  • inclued »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


Arbre d'inclusions

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Exemple qui implémente inclued dans une application
  • Fonctions inclued
    • inclued_get_data — Lit les données incluses


Introduction

Note les inclusions, et produit une arborescence d'inclusions et d'héritage de classes à la volée.

Les fichiers peuvent avoir été inclus avec les fonctions include, include_once, require, ou require_once.

Les héritages de classes sont aussi rapportés.


Pré-requis

PHP version 5.1.0 ou plus récente.

Le fichier inclus gengraph.php utilise la bibliothèque » graphviz, mais elle n'est pas obligatoire.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/inclued


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration inclued
Nom | Défaut | Modifiable | Historique
inclued.enabled | Off | PHP_INI_SYSTEM |
inclued.dumpdir | NULL | PHP_INI_SYSTEM |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

inclued.enabled bool

Si oui ou non, inclued est activée.

inclued.dumpdir string

Chemin du dossier qui stocke les fichiers inclued. Si configuré, chaque requête PHP va créer un fichier dans ce dossier. Ces fichiers représentent la version sérialisée de ce qu'aurait produit inclued_get_data(), leur contenu peut donc être désérialisé au moyen de unserialize().

Attention

Comme chaque requête crée un fichier, ce dossier risque de se remplir très vite!


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Cette extension ne définit aucune constante.


  • « Constantes pré-définies
  • Exemple qui implémente inclued dans une application »
  • PHP Manual
  • inclued
  • Exemples

Exemples

Sommaire

  • Exemple qui implémente inclued dans une application


Exemple qui implémente inclued dans une application

Cet exemple montre comment implémenter inclued dans une application existante, et afficher les résultats.

Exemple #1 Traitement des informations dans une application PHP

<?php
// Fichier de stockage des informations d'inclusion
$fp = fopen('/tmp/wp.ser', 'w');
if ($fp) {
    $clue = inclued_get_data();
    if ($clue) {
        fwrite($fp, serialize($clue));
    }
    fclose($fp);
}
?>

Maintenant que nous avons des données, il est temps de prendre du recul et d'avoir un graphique. L'extension inclued inclut un fichier PHP appelé gengraph.php qui crée un fichier DOT, qui peut être passé à la bibliothèque » graphviz. Cependant, cette approche n'est pas obligatoire.

Exemple #2 Exemple d'utilisation de gengraph.php

Cet exemple crée une image appelée inclued.png qui montre les fichiers inclus.

# First, create the dot file
$ php gengraph.php -i /tmp/wp.ser -o wp.dot

# Next, create the image
$ dot -Tpng -o inclued.png wp.dot

Exemple #3 Lister les données depuis une capture inclued

En utilisant la directive inclued.dumpdir , des fichiers (les traces include) sont écrits à chaque requête. Voici un moyen de lister ces fichiers et utiliser unserialize() avec.

<?php
$path = ini_get('inclued.dumpdir');
if ($path && is_dir($path)) {

    echo "Path: $path", PHP_EOL;

    $inclues = new GlobIterator($path . DIRECTORY_SEPARATOR . 'inclued*');

    if ($inclues->count() === 0) {
        echo 'Pas de traces', PHP_EOL;
        exit;
    }

    foreach ($inclues as $inclue) {

        echo 'Fichier Inclus: ', $inclue->getFilename(), PHP_EOL;

        $data = file_get_contents($inclue->getPathname());
        if ($data) {
            $inc = unserialize($data);
            echo ' -- fichier: ', $inc['request']['SCRIPT_FILENAME'], PHP_EOL;
            echo ' -- nombre d\'inclusions: ', count($inc['includes']), PHP_EOL;
        }
        echo PHP_EOL;
    }
} else {
    echo 'Pas de traces.', PHP_EOL;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PATH: /tmp/inclued
Fichier Inclus: inclued.56521.1
 -- fichier: /Users/philip/test.php
 -- nombre d'inclusions: 1

Fichier Inclus: inclued.56563.1
 -- fichier: /tmp/none.php
 -- nombre d'inclusions: 0

Fichier Inclus: inclued.56636.1
 -- fichier: /tmp/three.php
 -- nombre d'inclusions: 3


  • « Exemple qui implémente inclued dans une application
  • inclued_get_data »
  • PHP Manual
  • inclued
  • Fonctions inclued

Fonctions inclued

Sommaire

  • inclued_get_data — Lit les données incluses


Lit les données incluses

  • « Fonctions inclued
  • Memtrack »
  • PHP Manual
  • Fonctions inclued
  • Lit les données incluses

inclued_get_data

(PECL inclued >= 0.1.0)

inclued_get_data — Lit les données incluses

Description

array inclued_get_data ( void )

Lit les données incluses.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les données incluses.

Exemples

Exemple #1 Exemple avec inclued_get_data()

Voyez les exemples avec inclued pour une méthode de représentation de ces données.

<?php
include 'x.php';

$clue = inclued_get_data();

print_r($clue);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
  [includes] => Array
    (
      [0] => Array
        (
          [operation] => include
          [op_type] => 2
          [filename] => x.php
          [opened_path] => /tmp/x.php
          [fromfile] => /tmp/z.php
          [fromline] => 2
        )
    )
)

Voir aussi

  • inclued examples
  • debug_backtrace() - Génère le contexte de déboguage
  • include - include


Memtrack

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple


Introduction

Le but de cette extension est d'identifier les scripts et les fonctions les plus consommateurs de mémoire.

memtrack surveille la consommation de mémoire dans les scripts PHP, et produit un rapport d'alertes lorsque la consommation atteint un certain niveau, défini par l'utilisateur. Ceci est réussi en remplaçant les fonctions standard par une fonction spéciale qui compare l'utilisation de mémoire avant et après le passage par une fonction : de cette manière, on sait de combien la consommation de mémoire a changé.

Le Zend Engine fait fonctionner son exécuteur pour chaque tableau d'opcodes, ce qui représente généralement une fonction ou un script, ce qui fait que memtrack n'a pas d'impact notable sur les performances.

memtrack ne fournit aucune fonction, car il n'y a que des directives d'exécution pour configurer son fonctionnement.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/memtrack


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Memtrack
Nom | Défaut | Modifiable
memtrack.enabled | "0" | PHP_INI_SYSTEM
memtrack.soft_limit | "0" | PHP_INI_ALL
memtrack.hard_limit | "0" | PHP_INI_ALL
memtrack.vm_limit | "0" | PHP_INI_ALL
memtrack.ignore_functions | "" | PHP_INI_SYSTEM
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

memtrack.enabled boolean

Active ou non l'extension. Par défaut, c'est 0, i.e. désactivé.

memtrack.soft_limit int

Limite mémoire logicielle.

L'extension vérifie la consommation avant et après l'exécution d'un tableau d'opcode, puis produit une alerte si la différence entre les deux valeurs est égale ou supérieure à la limite logicielle, et que la fonction n'est pas ignorée.

En donnant à cette directive la valeur de 0, on désactive les limites logicielle et physique. Par défaut, cette directive vaut 0, ce qui fait qu'aucune alerte n'est produite.

memtrack.hard_limit int

Limite mémoire physique.

L'extension vérifie la consommation avant et après l'exécution d'un tableau d'opcode, puis produit une alerte si la différence entre les deux valeurs est égale ou supérieure à la limite logicielle, même si la fonction est ignorée. En donnant à cette directive la valeur de 0, on désactive les limites physique. Par défaut, cette directive vaut 0, ce qui fait qu'aucune alerte n'est produite.

memtrack.vm_limit int

Limite de mémoire virtuelle (par processus).

Cette limite est vérifiée à l'extinction du script, et une alerte est émise si la consommation de mémoire est plus grande que cette limite.

Cette option est uniquement supportée sur les OS où la fonction mallinfo() est disponible (i.e. Linux).

memtrack.ignore_functions string

Une liste de fonctions qui seront ignorées par la limite logicielle. Les fonctions sont séparées par des virgules ou des espaces. Les valeurs sont insensibles à la casse, et pour les méthodes, il faut utiliser la syntaxe classe::méthode.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • Memtrack
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • Memtrack
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Exemple simple d'utilisation de memtrack

Exemple #1 Création d'un grand tableau

<?php

/* /tmp/exemple.php */

function foo() {
    $a = array();
    for ($i = 0; $i < 10000; $i++) $a[] = "test";
    return $a;
}
$arr = foo();

?>

Exécution de l'exemple avec la commande suivante :

php -d memtrack.enabled=1 -d memtrack.soft_limit=1M -d memtrack.vm_limit=3M /tmp/exemple.php

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: [memtrack] [pid 26177] user function foo() executed in /tmp/example1.php on line 10 allocated 4194304 bytes in /tmp/example1.php on line 0
Warning: [memtrack] [pid 26177] virtual memory usage on shutdown: 32911360 bytes in Unknown on line 0


OPcache

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Fonctions OPcache
    • opcache_compile_file — Compiles et met en cache un script PHP sans l'exécuter
    • opcache_get_configuration — Récupère les informations de configuration du cache
    • opcache_get_status — Récupère les informations de statut du cache
    • opcache_invalidate — Invalide un script mis en cache
    • opcache_is_script_cached — Indique si un script est dans le cache d'OPCache
    • opcache_reset — Ré-initialise le contenu du cache opcode


Introduction

OPcache améliore les performances de PHP en stockant le bytecode des scripts pré-compilés en mémoire partagée, faisant ainsi qu'il n'est plus nécessaire à PHP de charger et d'analyser les scripts à chaque demande.

Cette extension est embarquée avec PHP 5.5.0 et suivants, et est » disponible via PECL pour les versions 5.2, 5.3 et 5.4 de PHP.


Installation

Le processus d'installation d'OPcache varie suivant la version de PHP que vous utilisez. Référez-vous à la section suivante appropriée.

Note:

Si vous voulez utiliser OPcache avec » Xdebug, vous devez charger OPcache avant Xdebug.

PHP 5.5.0 et suivants

OPcache ne peut être compilé que comme extension partagée. Si vous avez désactivé la construction des extensions par défaut avec l'option --disable-all , vous devez compiler PHP avec l'option --enable-opcache pour rend OPcache disponible.

Une fois compilée, vous pouvez utiliser la directive de configuration zend_extension pour charger l'extension OPcache dans PHP. Pour les plate-formes non-Windows, ce sera zend_extension=/full/path/to/opcache.so, et sous windows, zend_extension=C:\path\to\php_opcache.dll.

PHP 5.2, 5.3 et 5.4

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ZendOpcache.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Configuration php.ini recommandée

La configuration suivante est généralement recommandée, vu qu'elle fournit un bon gain en terme de performance :

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

Vous pourriez également vouloir désactiver opcache.save_comments et activer opcache.enable_file_override, cependant, notez que vous devez tester votre code avant de l'utiliser en production, sachant qu'il peut casser des frameworks et des applications, en particulier dans le cas où les annotations des commentaires de documentations sont utilisées.

Une liste complète de directives de configuration supportées par OPcache est également disponible.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration d'OPcache
Nom | Défaut | Modifiable | Historique
opcache.enable | "1" | PHP_INI_ALL |
opcache.enable_cli | "0" | PHP_INI_SYSTEM |
opcache.memory_consumption | "64" | PHP_INI_SYSTEM |
opcache.interned_strings_buffer | "4" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
opcache.max_accelerated_files | "2000" | PHP_INI_SYSTEM |
opcache.max_wasted_percentage | "5" | PHP_INI_SYSTEM |
opcache.use_cwd | "1" | PHP_INI_SYSTEM |
opcache.validate_timestamps | "1" | PHP_INI_ALL |
opcache.revalidate_freq | "2" | PHP_INI_ALL |
opcache.revalidate_path | "0" | PHP_INI_ALL |
opcache.save_comments | "1" | PHP_INI_SYSTEM |
opcache.load_comments | "1" | PHP_INI_ALL |
opcache.fast_shutdown | "0" | PHP_INI_SYSTEM |
opcache.enable_file_override | "0" | PHP_INI_SYSTEM |
opcache.optimization_level | "0xffffffff" | PHP_INI_SYSTEM |
opcache.inherited_hack | "1" | PHP_INI_SYSTEM |
opcache.dups_fix | "0" | PHP_INI_ALL |
opcache.blacklist_filename | "" | PHP_INI_SYSTEM |
opcache.max_file_size | "0" | PHP_INI_SYSTEM |
opcache.consistency_checks | "0" | PHP_INI_ALL |
opcache.force_restart_timeout | "180" | PHP_INI_SYSTEM |
opcache.error_log | "" | PHP_INI_SYSTEM |
opcache.log_verbosity_level | "1" | PHP_INI_SYSTEM |
opcache.preferred_memory_model | "" | PHP_INI_SYSTEM |
opcache.protect_memory | "0" | PHP_INI_SYSTEM |
opcache.mmap_base | NULL | PHP_INI_SYSTEM |
opcache.restrict_api | "" | PHP_INI_SYSTEM |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

opcache.enable boolean

Active le cache d'opcode. Lorsqu'il est désactivé, le code n'est ni optimisé, ni mis en cache. Le paramétrage de opcache.enable ne peut être activé pendant l'exécution via la fonction ini_set(), il ne peut être que désactivé. Tenter de l'activer dans un script va générer une alerte.

opcache.enable_cli boolean

Active le cache d'opcode pour la version CLI de PHP. Cela est vraiment utile pour les tests et le debugging.

opcache.memory_consumption integer

La taille de la mémoire partagée utilisée par OPcache, en megabytes.

opcache.interned_strings_buffer integer

La quantité de mémoire utilisée pour stocher des chaînes internes, en megabytes. Cette directive de configuration est ignorée dans PHP < 5.3.0.

opcache.max_accelerated_files integer

Le nombre maximal de clés (et donc, de scripts) dans la table de hashage d'OPcache. La valeur actuellement utilisée sera le premier nombre du jeux des nombres premiers { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } qui est plus grand que la valeur configurée. Seuls les nombres compris entre 200 et 100000 sont autorisés.

opcache.max_wasted_percentage integer

Le pourcentage maximum de mémoire gaspillée autorisée avant qu'un redémarrage ne soit programmé.

opcache.use_cwd boolean

Si activé, OPcache ajoute le dossier de travail courant à la clé du script, éliminant ainsi les collisions possibles entre les fichiers dont le nom de base est identique. Le fait de désactiver cette fonctionalité améliore les performances, mais peut casser les applications existantes.

opcache.validate_timestamps boolean

Si activé, OPcache va vérifier les mises à jour des scripts toutes les opcache.revalidate_freq secondes. Lorsque cette directive est désactivée, vous devez réinitialiser OPcache manuellement via la fonction opcache_reset(), la fonction opcache_invalidate() ou en redémarrant le serveur Web pour que les modifications du système de fichiers ne prennent effet.

opcache.revalidate_freq integer

La fréquence de vérification du timestamps du script afin de détecter les possibles mises à jour, en secondes. La valeur 0 fera qu'OPcache vérifira les mises à jour à chaque requête.

Cette directive de configuration est ignorée si opcache.validate_timestamps est désactivé.

opcache.revalidate_path boolean

Si désactivé, les fichiers en cache existant utilisant le même include_path seront réutilisés. Aussi, si un fichier avec le même nom est quelque part ailleurs dans le include_path, il ne sera pas trouvé.

opcache.save_comments boolean

Si désactivé, tous les commentaires de documentation seront supprimés du cache opcode afin de réduire la taille du code optimisé. La désactivation de cette directive peut casser des applications et des frameworks qui s'appuient sur l'analyse des commentaires pour les annotations, comme Doctrine, Zend Framework 2 et PHPUnit.

opcache.load_comments boolean

Si désactivé, les commentaires de documentation ne seront pas chargés depuis le cache opcode, y compris s'ils existent. Cette directive peut être utilisée avec opcache.save_comments pour ne charger les commentaires que pour les applications qui les demandent.

opcache.fast_shutdown boolean

Si activé, une séquence d'arrêt rapide sera utilisé, qui ne libère pas chaque bloc alloué, mais s'appuie sur le gestionnaire de mémoire Zend Engine pour désallouer le jeux entier des variables de requêtes, en masse.

opcache.enable_file_override boolean

Lorsqu'activé, le cache opcode sera vérifié pour savoir si un fichier a déjà été mise en cache lorsque les fonctions file_exists(), is_file() et is_readable() sont appelées. Ceci peut accroître les performances des applications qui vérifient l'existence et la lisibilité des scripts PHP, mais risque de retourner des données périmées si opcache.validate_timestamps est désactivé.

opcache.optimization_level integer

Un masque de bits qui contrôle l'optimisation passée à exécuter.

opcache.inherited_hack boolean

En PHP < 5.3, OPcache stocke les endroits où les opcodes DECLARE_CLASS utilisent l'héritage ; lorsqu'un fichier est chargé, OPcache tente de lier les classes héritées en utilisant l'environnement courant. Le problème est que, malgré le fait que l'opcode DECLARE_CLASS peut ne pas être nécessaire pour le script courant, si le script requiert que l'opcode doit être défini, il peut ne pas s'exécuter.

Cette directive de configuration est ignorée en PHP 5.3 et suivant.

opcache.dups_fix boolean

Ce hack ne doit être activé que comme solution de contournement des erreurs "Cannot redeclare class".

opcache.blacklist_filename string

L'endroit de stockage du fichier gérant la liste noire OPcache. Un fichier de liste noire est un fichier texte contenant des noms de fichiers qui ne doivent pas être accélérés ; un par ligne. Les jokers sont autorisés, et les préfixes peuvent également être fournis. Les lignes commençant par un point-virgule sont vues comme des commentaires et seront donc ignorées.

Un fichier de liste noire simple ressemble à ceci :

; Correspond à un fichier spécifique.
/var/www/broken.php
; Un préfixe qui correspond à tous les fichiers qui commencent par x.
/var/www/x
; Une correspondance avec un joker.
/var/www/*-broken.php
opcache.max_file_size integer

La taille maximale du fichier pouvant être mis en cache, en octets. Si vaut 0, tous les fichiers pourront être mise en cache.

opcache.consistency_checks integer

Si vaut différent de zéro, OPcache va vérifier la somme de contrôle du cache toutes les N requêtes, où N est la valeur de cette directive de configuration. Ceci ne doit être activé que lors du débogage, sachant qu'il impacte fortement les performances.

opcache.force_restart_timeout integer

La durée à attendre pour le début d'un redémarrage programmé, si le cache n'est pas activé, en seconde. Si ce délait d'attente est atteint, alors OPcache imagine que quelque chose se passe mal, et va tuer les processus gérant les verrous sur le cache pour permettre un redémarrage.

Si opcache.log_verbosity_level vaut 3 ou plus, une erreur sera enregistrée dans le log des erreurs lorsque ce comportement survient.

opcache.error_log string

Le log d'erreurs pour les erreurs OPcache. Une chaîne vide sera vu comme stderr, et les erreurs seront envoyées vers la sortie d'erreurs standart (qui sera le log des erreurs du serveur Web dans la plupart des cas).

opcache.log_verbosity_level integer

Le niveau de verbosité des logs. Par défaut, seules les erreurs fatales niveau 0) et les erreurs (niveau 1) seront enregistrées. Les autres niveaux disponibles sont les alertes (niveau 2), les messages d'information (niveau 3), et les messages de débogage (niveau 4).

opcache.preferred_memory_model string

Le modèle de mémoire préféré pour OPcache, à utiliser. Si laissé vide, OPcache va choisir le modèle le plus approprié, ce qui est la meilleure façon de faire dans la plupart des cas.

Les valeurs possibles sont mmap, shm, posix et win32.

opcache.protect_memory boolean

Protège la mémoire partagée des écritures non-approuvées pendant l'exécution des scripts. Ceci est utile uniquement pour du débogage interne.

opcache.mmap_base string

La base utilisée pour les segments de mémoire partagée sous Windows. Tous les processus PHP doivent lier la mémoire partagée dans le même espace d'adresse. L'utilisation de cette directive permet de corriger les erreurs "Unable to reattach to base address".

opcache.restrict_api string

Autorise l'appel aux fonctions de l'API d'OPcache uniquement depuis des scripts PHP dont le chemin commence par une chaîne spécifique. La valeur par défaut, "", signifie "aucune restriction".


  • « Configuration à l'exécution
  • Fonctions OPcache »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


Fonctions OPcache

Sommaire

  • opcache_compile_file — Compiles et met en cache un script PHP sans l'exécuter
  • opcache_get_configuration — Récupère les informations de configuration du cache
  • opcache_get_status — Récupère les informations de statut du cache
  • opcache_invalidate — Invalide un script mis en cache
  • opcache_is_script_cached — Indique si un script est dans le cache d'OPCache
  • opcache_reset — Ré-initialise le contenu du cache opcode


Compiles et met en cache un script PHP sans l'exécuter

  • « Fonctions OPcache
  • opcache_get_configuration »
  • PHP Manual
  • Fonctions OPcache
  • Compiles et met en cache un script PHP sans l'exécuter

opcache_compile_file

(PHP 5 >= 5.5.5, PHP 7, PECL ZendOpcache > 7.0.2)

opcache_compile_file — Compiles et met en cache un script PHP sans l'exécuter

Description

boolean opcache_compile_file ( string $file )

Cette fonction compile un script PHP et l'ajoute au cache d'opcode sans l'exécuter. Ceci peut être utilisé pour remplir un cache après un redémarrage de serveur en précachant les fichiers qui vont être amenés à être utilisés.

Liste de paramètres

file

Le chemin vers le fichier PHP à compiler et mettre en cache.

Valeurs de retour

Retourne TRUE si file a été compilé avec succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Si file ne peut être chargé ou compilé, une erreur de type E_WARNING est renvoyée. Vous pouvez utiliser @ pour la supprimer.

Voir aussi

  • opcache_invalidate() - Invalide un script mis en cache


Récupère les informations de configuration du cache

  • « opcache_compile_file
  • opcache_get_status »
  • PHP Manual
  • Fonctions OPcache
  • Récupère les informations de configuration du cache

opcache_get_configuration

(PHP 5 >= 5.5.5, PHP 7, PECL ZendOpcache > 7.0.2)

opcache_get_configuration — Récupère les informations de configuration du cache

Description

array opcache_get_configuration ( void )

Cette fonction retourne les informations de configuration de l'instance de cache.

Valeurs de retour

Retourne un tableau d'informations, incluant ini, liste noire et version.

Erreurs / Exceptions

Si opcache.restrict_api est utilisé et que le chemin courant est en violation avec les règles, une alerte de niveau E_WARNING sera émise ; aucune information de statut ne sera retournée.

Voir aussi

  • opcache_get_status() - Récupère les informations de statut du cache


Récupère les informations de statut du cache

  • « opcache_get_configuration
  • opcache_invalidate »
  • PHP Manual
  • Fonctions OPcache
  • Récupère les informations de statut du cache

opcache_get_status

(PHP 5 >= 5.5.5, PHP 7, PECL ZendOpcache > 7.0.2)

opcache_get_status — Récupère les informations de statut du cache

Description

array opcache_get_status ([ boolean $get_scripts = TRUE ] )

Cette fonction retourne les informations de statut de l'instance du cache.

Liste de paramètres

get_scripts

Inclut les informations spécifiques aux scripts

Valeurs de retour

Retourne un tableau d'informations, optionnellement contenant un script spécifique d'informations de statut.

Erreurs / Exceptions

Si opcache.restrict_api est utilisé, et que le chemin courant est en violation avec les règles, une alerte E_WARNING sera émise ; aucune information de statut ne sera retournée.

Voir aussi

  • opcache_get_configuration() - Récupère les informations de configuration du cache


Invalide un script mis en cache

  • « opcache_get_status
  • opcache_is_script_cached »
  • PHP Manual
  • Fonctions OPcache
  • Invalide un script mis en cache

opcache_invalidate

(PHP 5 >= 5.5.0, PHP 7, PECL ZendOpcache >= 7.0.0)

opcache_invalidate — Invalide un script mis en cache

Description

boolean opcache_invalidate ( string $script [, boolean $force = FALSE ] )

Cette fonction invalide un script particulier depuis le cache opcode. Si le paramètre force n'est pas défini ou vaut FALSE, le script ne sera invalidé que si la date/heure de modification du script est plus récente que l'opcode en cache.

Liste de paramètres

script

Le chemin vers le script à invalider.

force

Si vaut TRUE, le script sera invalidé indépendamment du fait que l'invalidation soit nécessaire ou non.

Valeurs de retour

Retourne TRUE si le cache opcode pour le script a été invalidé, ou s'il n'y avait rien à invalider, ou bien FALSE si le cache opcode est désactivé.

Voir aussi

  • opcache_compile_file() - Compiles et met en cache un script PHP sans l'exécuter
  • opcache_reset() - Ré-initialise le contenu du cache opcode


Indique si un script est dans le cache d'OPCache

  • « opcache_invalidate
  • opcache_reset »
  • PHP Manual
  • Fonctions OPcache
  • Indique si un script est dans le cache d'OPCache

opcache_is_script_cached

(PHP 5 >= 5.6.0, PHP 7, PECL ZendOpcache >= 7.0.4)

opcache_is_script_cached — Indique si un script est dans le cache d'OPCache

Description

boolean opcache_is_script_cached ( string $file )

Cette fonction vérifie si un script PHP a été mis dans le cache d'OPCache. Ceci peut être utilisé pour détecter facilement les "alertes" du cache pour un script particulier.

Liste de paramètres

file

Le chemin vers le script PHP à vérifier.

Valeurs de retour

Retourne TRUE si le script file est présent dans le cache d'OPCache, FALSE sinon.

Voir aussi

  • opcache_compile_file() - Compiles et met en cache un script PHP sans l'exécuter


Ré-initialise le contenu du cache opcode

  • « opcache_is_script_cached
  • Contrôle de l'affichage »
  • PHP Manual
  • Fonctions OPcache
  • Ré-initialise le contenu du cache opcode

opcache_reset

(PHP 5 >= 5.5.0, PHP 7, PECL ZendOpcache >= 7.0.0)

opcache_reset — Ré-initialise le contenu du cache opcode

Description

boolean opcache_reset ( void )

Cette fonction ré-initialise le cache opcode dans sa globalité. Après l'appel à la fonction opcache_reset(), tous les scripts seront rechargés et ré-analysés lors de leurs prochains appels.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le cache opcode a été ré-initialisé, ou FALSE si le cache opcode est désactivé.

Voir aussi

  • opcache_invalidate() - Invalide un script mis en cache


Bufferisation de sortie

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
  • Fonctions de bufferisation de sortie
    • flush — Vide les tampons de sortie du système
    • ob_clean — Efface le tampon de sortie
    • ob_end_clean — Détruit les données du tampon de sortie et éteint la temporisation de sortie
    • ob_end_flush — Envoie les données du tampon de sortie et éteint la temporisation de sortie
    • ob_flush — Envoie le tampon de sortie
    • ob_get_clean — Lit le contenu courant du tampon de sortie puis l'efface
    • ob_get_contents — Retourne le contenu du tampon de sortie
    • ob_get_flush — Vide le tampon, le retourne en tant que chaîne et stoppe la temporisation
    • ob_get_length — Retourne la longueur du contenu du tampon de sortie
    • ob_get_level — Retourne le nombre de niveaux d'imbrications du système de temporisation de sortie
    • ob_get_status — Lit le statut du tampon de sortie
    • ob_gzhandler — Fonction de rappel pour la compression automatique des tampons
    • ob_implicit_flush — Active/désactive l'envoi implicite
    • ob_list_handlers — Liste les gestionnaires d'affichage utilisés
    • ob_start — Enclenche la temporisation de sortie
    • output_add_rewrite_var — Ajoute une règle de réécriture d'URL
    • output_reset_rewrite_vars — Annule la réécriture d'URL


Introduction

Les fonctions de bufferisation de sortie vous permettent de contrôler quand les données ont été envoyées par le script. Cela peut être utile dans certaines situations, notamment si vous devez envoyer des en-têtes au navigateur après avoir envoyé des données. Ces fonctions n'affectent pas les en-têtes envoyés par la fonction header() ou les cookies envoyés par setcookie(). Seules les fonctions telles que echo et les données entre blocs PHP sont affectées.

Note:

Lors de la mise à jour depuis PHP 4.1.x (et 4.2.x) vers 4.3.x, à cause d'un bogue dans les versions précédentes, vous devez vous assurer que implicit_flush vaut OFF dans votre php.ini, sinon, tout affichage avec la fonction ob_start() sera caché.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration des buffers de sortie
Nom | Défaut | Modifiable | Historique
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR | Disponible depuis PHP 4.0.4.
implicit_flush | "0" | PHP_INI_ALL | PHP_INI_PERDIR en PHP <= 4.2.3.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

output_buffering booléen/entier

Vous pouvez activer la bufferisation de sortie pour tous les fichiers avec cette directive, en lui passant la valeur On. Si vous souhaitez limiter la taille du buffer à une certaine taille, vous pouvez alors indiquer un nombre maximum d'octets à la place de On. Par exemple, output_buffering=4096). Depuis PHP 4.3.5, cette directive est toujours désactivée en ligne de commande.

output_handler string

Vous pouvez rediriger le résultat de tous vos scripts à une fonction avant leur envoi au navigateur. Par exemple, si vous configurez output_handler à mb_output_handler(), l'encodage des caractères sera adapté de manière transparente. Configurer une telle fonction active automatiquement la bufferisation de sortie.

Note:

Vous ne pouvez pas utiliser simultanément mb_output_handler() avec ob_iconv_handler(), non plus que ob_gzhandler() avec zlib.output_compression.

Note:

Seules les fonctions internes peuvent être utilisées avec cette directive. Pour les fonctions utilisateurs, utilisez ob_start().

implicit_flush booléen

FALSE par défaut. En changeant cette valeur pour TRUE vous indiquez à PHP que le buffer de sortie doit être vidé automatiquement après chaque fonction d'affichage. Cela revient à appeler la fonction flush() après chaque appel à print ou echo et pour tous les blocs HTML.

Lorsque vous utilisez PHP en environnement web, activer cette option a de sérieuses implications et généralement, cela n'est conseillé que pour les déboguages. Cette valeur est par défaut à TRUE lorsque PHP fonctionne en mode CLI SAPI.

Voir aussi ob_implicit_flush().


Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

PHP_OUTPUT_HANDLER_START (entier)

Indique que l'affichage de la mémoire tampon a commencé.

PHP_OUTPUT_HANDLER_WRITE (entier)

Indique que la mémoire tampon de sortie a commencé à être affichée, et qu'elle contient des données.

Disponible depuis PHP 5.4.

PHP_OUTPUT_HANDLER_FLUSH (entier)

Indique que la mémoire tampon a été affichée.

Disponible depuis PHP 5.4.

PHP_OUTPUT_HANDLER_CLEAN (entier)

Indique que la mémoire tampon de sortie a été nettoyée.

Disponible depuis PHP 5.4.

PHP_OUTPUT_HANDLER_FINAL (entier)

Indique que c'est l'opération finale d'affichage de la mémoire tampon.

Disponible depuis PHP 5.4.

PHP_OUTPUT_HANDLER_CONT (entier)

Indique que la mémoire tampon a été affichée, mais que la mise en mémoire tampon de la sortie continue.

Depuis PHP 5.4, c'est un alias de la constante PHP_OUTPUT_HANDLER_WRITE.

PHP_OUTPUT_HANDLER_END (entier)

Indique que la mise en mémoire tampon de la sortie est terminée.

Depuis PHP 5.4, c'est un alias de la constante PHP_OUTPUT_HANDLER_FINAL.

PHP_OUTPUT_HANDLER_CLEANABLE (integer)

Contrôle si un tampon de sortie créé par la fonction ob_start() peut être supprimée.

Disponible depuis PHP 5.4.

PHP_OUTPUT_HANDLER_FLUSHABLE (integer)

Contrôle si un tampon de sortie créé par la fonction ob_start() peut être envoyée à la sortie standard.

Disponible depuis PHP 5.4.

PHP_OUTPUT_HANDLER_REMOVABLE (integer)

Contrôle si un tampon de sortie créé par la fonction ob_start() peut être supprimée avant la fin du script.

Disponible depuis PHP 5.4.

PHP_OUTPUT_HANDLER_STDFLAGS (integer)

Le jeu par défaut des drapeaux pour le tampon de sortie ; actuellement, équivalent à PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE.

Disponible depuis PHP 5.4.


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • Contrôle de l'affichage
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Exemple #1 Exemple de bufferisation de sortie

<?php

ob_start();
echo "Bonjour\n";

setcookie("cookiename", "cookiedata");

ob_end_flush();

?>

Dans l'exemple ci-dessus, l'instruction echo est stockée dans un buffer jusqu'à l'appel de la fonction ob_end_flush(). Dans le même temps, l'appel à setcookie() a réussi à créer un cookie, sans générer d'erreur. (Normalement, les en-têtes doivent être envoyés au navigateur avant les données).


Fonctions de bufferisation de sortie

Voir aussi

Voir aussi header() et setcookie().

Sommaire

  • flush — Vide les tampons de sortie du système
  • ob_clean — Efface le tampon de sortie
  • ob_end_clean — Détruit les données du tampon de sortie et éteint la temporisation de sortie
  • ob_end_flush — Envoie les données du tampon de sortie et éteint la temporisation de sortie
  • ob_flush — Envoie le tampon de sortie
  • ob_get_clean — Lit le contenu courant du tampon de sortie puis l'efface
  • ob_get_contents — Retourne le contenu du tampon de sortie
  • ob_get_flush — Vide le tampon, le retourne en tant que chaîne et stoppe la temporisation
  • ob_get_length — Retourne la longueur du contenu du tampon de sortie
  • ob_get_level — Retourne le nombre de niveaux d'imbrications du système de temporisation de sortie
  • ob_get_status — Lit le statut du tampon de sortie
  • ob_gzhandler — Fonction de rappel pour la compression automatique des tampons
  • ob_implicit_flush — Active/désactive l'envoi implicite
  • ob_list_handlers — Liste les gestionnaires d'affichage utilisés
  • ob_start — Enclenche la temporisation de sortie
  • output_add_rewrite_var — Ajoute une règle de réécriture d'URL
  • output_reset_rewrite_vars — Annule la réécriture d'URL


Vide les tampons de sortie du système

  • « Fonctions de bufferisation de sortie
  • ob_clean »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Vide les tampons de sortie du système

flush

(PHP 4, PHP 5, PHP 7)

flush — Vide les tampons de sortie du système

Description

void flush ( void )

Vide les tampons d'écriture système de PHP et tous ceux que PHP utilisait (CGI, un serveur web, etc.). Cette fonction tente d'envoyer tout l'affichage courant au navigateur, sous quelques conditions.

flush() peut ne pas être capable d'écraser le schéma du buffer de votre serveur web et ceci n'aura aucun effet sur le buffer du navigateur côté client. De plus, cette fonction n'affecte pas le mécanisme d'affichage du buffer de l'espace utilisateur de PHP. Cela signifie que vous devez appeler à la fois la fonction ob_flush() et la fonction flush() pour vider les tampons de sortie si vous les utilisez.

De nombreux serveurs, essentiellement sous Windows, continueront à temporiser l'affichage de votre script jusqu'à ce qu'il soit terminé, avant de transmettre les résultats à l'internaute.

Des modules Apache comme mod_gzip utilisent leur propre temporisation, ce qui fait que flush() n'enverra pas les données jusqu'au navigateur client immédiatement.

Même le navigateur peut réaliser une temporisation avant de l'afficher. Netscape, par exemple, met en cache le texte jusqu'à ce qu'il reçoive une fin de ligne, ou un début d'une balise et il n'affichera pas les tables tant que la balise </table> la plus externe ne soit vue.

Certaines versions de Microsoft Internet Explorer ne commenceront l'affichage de la page qu'après avoir reçu 256 octets d'affichage. Cela vous obligera à envoyer des espaces supplémentaires pour afficher la page.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ob_flush() - Envoie le tampon de sortie
  • ob_clean() - Efface le tampon de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la temporisation de sortie
  • ob_end_clean() - Détruit les données du tampon de sortie et éteint la temporisation de sortie


Efface le tampon de sortie

  • « flush
  • ob_end_clean »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Efface le tampon de sortie

ob_clean

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ob_clean — Efface le tampon de sortie

Description

void ob_clean ( void )

Cette fonction vide le tampon de sortie sans l'envoyer au navigateur.

Cette fonction ne détruit pas le contenu du tampon de sortie comme peut le faire ob_end_clean().

Le tampon de sortie doit avoir été démarré avec la fonction ob_start() et le drapeau PHP_OUTPUT_HANDLER_CLEANABLE. Sinon, la fonction ob_clean() ne fonctionnera pas.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ob_flush() - Envoie le tampon de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la temporisation de sortie
  • ob_end_clean() - Détruit les données du tampon de sortie et éteint la temporisation de sortie


Détruit les données du tampon de sortie et éteint la temporisation de sortie

  • « ob_clean
  • ob_end_flush »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Détruit les données du tampon de sortie et éteint la temporisation de sortie

ob_end_clean

(PHP 4, PHP 5, PHP 7)

ob_end_clean — Détruit les données du tampon de sortie et éteint la temporisation de sortie

Description

bool ob_end_clean ( void )

Cette fonction vide le contenu du premier tampon de sortie et désactive la temporisation de sortie. Si vous voulez traiter le contenu du tampon, vous devrez appeler ob_get_contents() avant ob_end_clean(), car le tampon est détruit par ob_end_clean().

Le tampon de sortie doit avoir été démarré avec la fonction ob_start() et les drapeaux PHP_OUTPUT_HANDLER_CLEANABLE et PHP_OUTPUT_HANDLER_REMOVABLE. Sinon, la fonction ob_end_clean() ne fonctionnera pas.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Les raisons d'un tel échec sont que la temporisation de sortie pouvait ne pas être activée, ou que, pour une raison quelconque, le tampon n'a pu être détruit.

Erreurs / Exceptions

Si la fonction échoue, elle génère une note E_NOTICE.

Exemples

L'exemple suivant montre comment se débarrasser de tous les tampons de sortie :

Exemple #1 Exemple avec ob_end_clean()

<?php
ob_start();
echo 'Texte qui ne sera pas affiché.';
ob_end_clean();
?>

Voir aussi

  • ob_start() - Enclenche la temporisation de sortie
  • ob_get_contents() - Retourne le contenu du tampon de sortie
  • ob_flush() - Envoie le tampon de sortie


Envoie les données du tampon de sortie et éteint la temporisation de sortie

  • « ob_end_clean
  • ob_flush »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Envoie les données du tampon de sortie et éteint la temporisation de sortie

ob_end_flush

(PHP 4, PHP 5, PHP 7)

ob_end_flush — Envoie les données du tampon de sortie et éteint la temporisation de sortie

Description

bool ob_end_flush ( void )

Envoie le contenu du tampon de sortie (s'il existe) et éteint la temporisation de sortie. Si vous voulez continuer à manipuler la valeur du tampon, vous pouvez appeler ob_get_contents() avant ob_end_flush() car le contenu du tampon est détruit après un appel à ob_end_flush().

Le tampon de sortie doit avoir été démarré avec la fonction ob_start() et les drapeaux PHP_OUTPUT_HANDLER_FLUSHABLE et PHP_OUTPUT_HANDLER_REMOVABLE. Sinon, la fonction ob_end_flush() ne fonctionnera pas.

Note: Cette fonction est similaire à ob_get_flush(), excepté que ob_get_flush() retourne le tampon comme une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Les raisons d'échec sont que vous pourriez avoir appelé la fonction sans avoir de tampon actif, ou que, pour une raison quelconque, le tampon n'a pu être effacé (possible pour un tampon spécial).

Erreurs / Exceptions

Si la fonction échoue, elle émet une alerte de type E_NOTICE.

Exemples

Exemple #1 Exemple avec ob_end_flush()

L'exemple ci-dessous montre une méthode simple pour vider tous les tampons :

<?php
while (@ob_end_flush());
?>

Voir aussi

  • ob_start() - Enclenche la temporisation de sortie
  • ob_get_contents() - Retourne le contenu du tampon de sortie
  • ob_get_flush() - Vide le tampon, le retourne en tant que chaîne et stoppe la temporisation
  • ob_flush() - Envoie le tampon de sortie
  • ob_end_clean() - Détruit les données du tampon de sortie et éteint la temporisation de sortie


Envoie le tampon de sortie

  • « ob_end_flush
  • ob_get_clean »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Envoie le tampon de sortie

ob_flush

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ob_flush — Envoie le tampon de sortie

Description

void ob_flush ( void )

Envoie le contenu du tampon de sortie (s'il y en a un). Si vous voulez vérifier le contenu du tampon, vous devez appeler la fonction ob_get_contents() avant ob_flush() car le contenu du tampon est effacé après l'appel de ob_flush().

ob_flush() ne désactive pas la temporisation de sortie comme peut le faire ob_end_flush().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ob_get_contents() - Retourne le contenu du tampon de sortie
  • ob_clean() - Efface le tampon de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la temporisation de sortie
  • ob_end_clean() - Détruit les données du tampon de sortie et éteint la temporisation de sortie


Lit le contenu courant du tampon de sortie puis l'efface

  • « ob_flush
  • ob_get_contents »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Lit le contenu courant du tampon de sortie puis l'efface

ob_get_clean

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ob_get_clean — Lit le contenu courant du tampon de sortie puis l'efface

Description

string ob_get_clean ( void )

Lit le contenu courant du tampon de sortie puis l'efface.

ob_get_clean() exécute successivement
ob_get_contents() et
ob_end_clean().

Le tampon de sortie doit avoir été démarré avec la fonction ob_start() et le drapeau PHP_OUTPUT_HANDLER_CLEANABLE. Sinon, la fonction ob_get_clean() ne fonctionnera pas.

Valeurs de retour

Retourne le contenu du tampon de sortie et termine la session de temporisation. Si la temporisation n'est pas activée, alors FALSE sera retourné.

Exemples

Exemple #1 Exemple avec ob_get_clean()

<?php

ob_start();

echo "Bonjour le monde !";

$out = ob_get_clean();
$out = strtolower($out);

var_dump($out);
?>

L'exemple ci-dessus va afficher :

string(18) "bonjour le monde !"

Voir aussi

  • ob_get_contents() - Retourne le contenu du tampon de sortie
  • ob_start() - Enclenche la temporisation de sortie


Retourne le contenu du tampon de sortie

  • « ob_get_clean
  • ob_get_flush »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Retourne le contenu du tampon de sortie

ob_get_contents

(PHP 4, PHP 5, PHP 7)

ob_get_contents — Retourne le contenu du tampon de sortie

Description

string ob_get_contents ( void )

Retourne le contenu du tampon de sortie sans l'effacer.

Valeurs de retour

Retourne le contenu du tampon de sortie sans l'effacer ou FALSE, si la temporisation de sortie n'est pas activée.

Exemples

Exemple #1 Exemple avec ob_get_contents()

<?php

ob_start();

echo "Bonjour ";

$out1 = ob_get_contents();

echo "le monde !";

$out2 = ob_get_contents();

ob_end_clean();

var_dump($out1, $out2);
?>

L'exemple ci-dessus va afficher :

string(8) "Bonjour "
string(18) "Bonjour le monde !"

Voir aussi

  • ob_start() - Enclenche la temporisation de sortie
  • ob_get_length() - Retourne la longueur du contenu du tampon de sortie


Vide le tampon, le retourne en tant que chaîne et stoppe la temporisation

  • « ob_get_contents
  • ob_get_length »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Vide le tampon, le retourne en tant que chaîne et stoppe la temporisation

ob_get_flush

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ob_get_flush — Vide le tampon, le retourne en tant que chaîne et stoppe la temporisation

Description

string ob_get_flush ( void )

ob_get_flush() vide le tampon, le retourne en tant que chaîne et stoppe la temporisation.

Le tampon de sortie doit avoir été démarré avec la fonction ob_start() et le drapeau PHP_OUTPUT_HANDLER_FLUSHABLE. Sinon, la fonction ob_get_flush() ne fonctionnera pas.

Note: ob_get_flush() est similaire à ob_end_flush(), sauf que cette fonction retourne le tampon en tant que chaîne.

Valeurs de retour

Retourne le tampon de sortie ou FALSE s'il n'y en a aucun d'actif.

Exemples

Exemple #1 Exemple avec ob_get_flush()

<?php
//Utilisation de output_buffering=On
print_r(ob_list_handlers());

//Saugarde du tampon dans un fichier
$buffer = ob_get_flush();
file_put_contents('buffer.txt', $buffer);

print_r(ob_list_handlers());
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => default output handler
)
Array
(
)

Voir aussi

  • ob_end_clean() - Détruit les données du tampon de sortie et éteint la temporisation de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la temporisation de sortie
  • ob_list_handlers() - Liste les gestionnaires d'affichage utilisés


Retourne la longueur du contenu du tampon de sortie

  • « ob_get_flush
  • ob_get_level »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Retourne la longueur du contenu du tampon de sortie

ob_get_length

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ob_get_length — Retourne la longueur du contenu du tampon de sortie

Description

int ob_get_length ( void )

Retourne la longueur du contenu du tampon de sortie, en octets.

Valeurs de retour

Retourne la longueur du contenu du tampon de sortie, en octets, si la temporisation est activée, et FALSE sinon.

Exemples

Exemple #1 Exemple avec ob_get_length()

<?php

ob_start();

echo "Bonjour ";

$len1 = ob_get_length();

echo "le monde";

$len2 = ob_get_length();

ob_end_clean();

echo $len1 . ", ." . $len2;
?>

L'exemple ci-dessus va afficher :

8, 16

Voir aussi

  • ob_start() - Enclenche la temporisation de sortie
  • ob_get_contents() - Retourne le contenu du tampon de sortie


Retourne le nombre de niveaux d'imbrications du système de temporisation de sortie

  • « ob_get_length
  • ob_get_status »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Retourne le nombre de niveaux d'imbrications du système de temporisation de sortie

ob_get_level

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ob_get_level — Retourne le nombre de niveaux d'imbrications du système de temporisation de sortie

Description

int ob_get_level ( void )

Retourne le nombre de niveaux d'imbrications du système de temporisation de sortie.

Valeurs de retour

Retourne le nombre de niveaux d'imbrications du système de temporisation de sortie, et zéro s'il n'est pas actif.

Voir aussi

  • ob_start() - Enclenche la temporisation de sortie
  • ob_get_contents() - Retourne le contenu du tampon de sortie


Lit le statut du tampon de sortie

  • « ob_get_level
  • ob_gzhandler »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Lit le statut du tampon de sortie

ob_get_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ob_get_status — Lit le statut du tampon de sortie

Description

array ob_get_status ([ bool $full_status = FALSE ] )

ob_get_status() retourne les informations sur le statut du tampon d'affichage de haut niveau ou de tous les tampons d'affichage si full_status est défini à TRUE.

Liste de paramètres

full_status

TRUE pour retourner tous les tampons d'affichage. Si vaut FALSE ou non défini, seul le statut du tampon d'affichage de haut niveau sera retourné.

Valeurs de retour

Si la fonction est appelée sans le paramètre full_status ou avec le paramètre full_status = FALSE, un tableau simple avec les éléments suivants sera retourné :

Array
(
    [level] => 2
    [type] => 0
    [status] => 0
    [name] => URL-Rewriter
    [del] => 1
)
Résultats simples pour la fonction ob_get_status()
Clé | Valeur
level | Niveau de sortie désiré
type | PHP_OUTPUT_HANDLER_INTERNAL (0) ou PHP_OUTPUT_HANDLER_USER (1)
status | Un parmi PHP_OUTPUT_HANDLER_START (0), PHP_OUTPUT_HANDLER_CONT (1) ou PHP_OUTPUT_HANDLER_END (2)
name | Nom du gestionnaire de sortie actif ou ' default output handler' si aucun n'est défini
del | Flag d'effacement tel que défini par ob_start()

Si la fonction est appelée avec le paramètre full_status défini à TRUE, un tableau avec un élément par tampon de sortie actif est retourné. Le niveau de sortie est utilisé en tant que clé du tableau de niveau élevé et chaque élément du tableau est un autre tableau contenant les informations sur le statut du niveau du tampon actif.

Array
(
    [0] => Array
        (
            [chunk_size] => 0
            [size] => 40960
            [block_size] => 10240
            [type] => 1
            [status] => 0
            [name] => default output handler
            [del] => 1
        )

    [1] => Array
        (
            [chunk_size] => 0
            [size] => 40960
            [block_size] => 10240
            [type] => 0
            [buffer_size] => 0
            [status] => 0
            [name] => URL-Rewriter
            [del] => 1
        )

)

La sortie complète contient les éléments suivants :

Résultats complets pour la fonction ob_get_status()
Clé | Valeur
chunk_size | Taille telle que définie par la fonction ob_start()
size | ...
blocksize | ...

Voir aussi

  • ob_get_level() - Retourne le nombre de niveaux d'imbrications du système de temporisation de sortie
  • ob_list_handlers() - Liste les gestionnaires d'affichage utilisés


Fonction de rappel pour la compression automatique des tampons

  • « ob_get_status
  • ob_implicit_flush »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Fonction de rappel pour la compression automatique des tampons

ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ob_gzhandler — Fonction de rappel pour la compression automatique des tampons

Description

string ob_gzhandler ( string $buffer , int $mode )

ob_gzhandler() est destinée à être utilisée comme fonction de rappel par ob_start() pour faciliter l'envoi de données compressées aux navigateurs qui supportent les pages compressées. Avant que ob_gzhandler() envoie les données compressées, il détermine les types d'encodage qui sont supportés par le navigateur ("gzip", "deflate" ou aucun) et retourne le contenu des tampons de manière appropriée. Tous les navigateurs sont traités, car c'est aux navigateurs d'envoyer un en-tête indiquant les types de pages supportés. Si le navigateur ne supporte pas les pages compressées, cette fonction retournera FALSE.

Liste de paramètres

buffer

mode

Valeurs de retour

Exemples

Exemple #1 Exemple avec ob_gzhandler()

<?php

ob_start("ob_gzhandler");

?>
<html>
<body>
<p>Ceci devrait être une page compressée.</p>
</body>
</html>

Notes

Note:

ob_gzhandler() nécessite l'extension zlib.

Note:

Vous ne pouvez pas utiliser simultanément ob_gzhandler() et zlib.output_compression. De plus, notez bien que zlib.output_compression est préférable à ob_gzhandler().

Voir aussi

  • ob_start() - Enclenche la temporisation de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la temporisation de sortie


Active/désactive l'envoi implicite

  • « ob_gzhandler
  • ob_list_handlers »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Active/désactive l'envoi implicite

ob_implicit_flush

(PHP 4, PHP 5, PHP 7)

ob_implicit_flush — Active/désactive l'envoi implicite

Description

void ob_implicit_flush ([ int $flag = true ] )

ob_implicit_flush() active/désactive l'envoi implicite. L'envoi implicite signifie que toute fonction qui envoie des données au navigateur verra ses données envoyées immédiatement (la fonction flush() est appelée automatiquement).

Liste de paramètres

flag

TRUE pour activer, FALSE sinon.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • flush() - Vide les tampons de sortie du système
  • ob_start() - Enclenche la temporisation de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la temporisation de sortie


Liste les gestionnaires d'affichage utilisés

  • « ob_implicit_flush
  • ob_start »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Liste les gestionnaires d'affichage utilisés

ob_list_handlers

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ob_list_handlers — Liste les gestionnaires d'affichage utilisés

Description

array ob_list_handlers ( void )

Liste les gestionnaires d'affichage utilisés.

Valeurs de retour

Retourne un tableau avec le gestionnaire d'affichage en cours d'utilisation (s'il existe). Si output_buffering est activé ou si une fonction anonyme est utilisée avec ob_start(), ob_list_handlers() retournera un tableau avec comme valeur d'entrée : "default output handler".

Exemples

Exemple #1 Exemple avec ob_list_handlers()

<?php
//Utilisation de output_buffering=On
print_r(ob_list_handlers());
ob_end_flush();

ob_start("ob_gzhandler");
print_r(ob_list_handlers());
ob_end_flush();

// Fonctions anonymes
ob_start(function($string) { return $string; });
print_r(ob_list_handlers());
ob_end_flush();
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => default output handler
)

Array
(
    [0] => ob_gzhandler
)

Array
(
    [0] => Closure::__invoke
)

Voir aussi

  • ob_end_clean() - Détruit les données du tampon de sortie et éteint la temporisation de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la temporisation de sortie
  • ob_get_flush() - Vide le tampon, le retourne en tant que chaîne et stoppe la temporisation
  • ob_start() - Enclenche la temporisation de sortie


Enclenche la temporisation de sortie

  • « ob_list_handlers
  • output_add_rewrite_var »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Enclenche la temporisation de sortie

ob_start

(PHP 4, PHP 5, PHP 7)

ob_start — Enclenche la temporisation de sortie

Description

bool ob_start ([ callable $output_callback = NULL [, int $chunk_size = 0 [, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS ]]] )

ob_start() démarre la temporisation de sortie. Tant qu'elle est enclenchée, aucune donnée, hormis les en-têtes, n'est envoyée au navigateur, mais temporairement mise en tampon.

Le contenu de ce tampon peut être copié dans une chaîne avec la fonction ob_get_contents(). Pour afficher le contenu de ce tampon, utilisez ob_end_flush(). Au contraire, ob_end_clean() effacera le contenu de ce tampon.

Avertissement

Quelques serveurs web (par exemple Apache) modifient le dossier de travail d'un script lorsqu'il appelle une fonction de rappel. Vous pouvez revenir à un comportement normal en ajoutant chdir(dirname($_SERVER['SCRIPT_FILENAME'])) dans votre fonction de rappel.

Les tampons de sortie sont gérés par pile, c'est-à-dire que vous pouvez appeler plusieurs fois ob_start() simultanément. Assurez-vous que vous appelez ob_end_flush() suffisamment souvent. Si plusieurs fonctions de rappel sont actives, les contenus seront filtrés séquentiellement, dans l'ordre d'emboîtement.

Liste de paramètres

output_callback

Une fonction optionnelle de rappel peut être spécifiée. Cette fonction prend une chaîne comme paramètre, et retourne une chaîne. Elle sera appelée lorsque le tampon sera envoyé ou supprimé (avec les fonctions ob_flush(), ob_clean() ou des fonctions similaires) ou lorsque le tampon sera envoyé au navigateur à la fin du script et recevra le contenu du tampon de sortie. Lorsque la fonction output_callback est appelée, elle doit retourner un nouveau contenu pour le tampon de sortie : celui-ci sera envoyé au navigateur. Si output_callback n'est pas une fonction accessible, la fonction retournera FALSE. Voici la signature de la fonction de rappel :

bool handler ( string $buffer [, int $phase ] )
buffer
Contenu du buffer de sortie.
phase
Masque de constantes PHP_OUTPUT_HANDLER_*.

Si output_callback retourne FALSE, l'entrée originale est envoyée au navigateur.

Le paramètre output_callback peut être annulé en y passant la valeur NULL.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() et ob_start() ne doivent pas être appelés depuis une fonction de rappel. Si vous les appelez depuis une fonction de rappel, le comportement ne sera pas défini. Si vous voulez effacer le contenu du tampon, retournez "" (une chaîne vide) depuis la fonction de rappel. Vous ne pourrez jamais appeler les fonctions utilisant la fonction de temporisation de sortie comme print_r($expression, true) ou highlight_file($filename, true) depuis une fonction de rappel.

Note:

En PHP 4.0.4, ob_gzhandler() a été introduite pour faciliter l'envoi de fichiers compressés avec gzip aux navigateurs web qui supportent les pages compressées. ob_gzhandler() détermine le type d'encodage accepté par un navigateur, et retourne le contenu le plus adéquat.

chunk_size

Si le paramètre optionnel chunk_size est passé, la fonction de rappel est appelée à chaque nouvelle ligne après chunk_size octets d'affichage. La valeur par défaut 0 (zéro) signifie que l'affichage de la fonction ne sera appelé que lorsque le buffer de sortie est clos.

Avant la version PHP 5.4.0, la valeur 1 était une valeur spéciale qui définissait la taille du morceau à 4096 octets.

flags

Le paramètre flags est un masque qui contrôle les opérations qui peuvent être effectuées sur le tampon de sortie. Par défaut, il autorise le tampon de sortie à être nettoyé, envoyé et supprimé, ce qui peut être défini explicitement avec les constantes PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE, ou PHP_OUTPUT_HANDLER_STDFLAGS comme alias.

Chaque drapeau contrôle l'accès à un jeu de fonctions, tel décrit ci-dessous :

Constante | Fonctions
PHP_OUTPUT_HANDLER_CLEANABLE | ob_clean(), ob_end_clean() et ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE | ob_end_flush(), ob_flush() et ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE | ob_end_clean(), ob_end_flush() et ob_get_flush().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
7.0.0 | Lors de l'utilisation d'ob_start() a l'intérieur d'une fonction de rappel d'un tampon de sortie, cette fonction ne lèvera plus une E_ERROR mais une E_RECOVERABLE_ERROR, autorisant les gestionnaires d'erreur personnalisés d’attraper ces erreurs.
5.4.0 | Le troisième paramètre de la fonction ob_start() est passé d'un booléen appelé erase (qui, s'il était défini à FALSE va empécher le tampon de sortie d'être effacé tant que le script n'a pas terminé son exécution) en un entier appelé flags. Malheureusement, cela conduit un cassure de la compatibilité de l'API pour les lignes de code écrites avant PHP 5.4.0 qui utilisent ce troisième paramètre. Voir les exemples avec les drapeaux pour un exemple qui gère ce problème en permettant une compatibilité avec les deux comportements.
5.4.0 | Une taille de morceau de 1 résulte maintenant en 1 octet envoyé au buffer de sortie.
4.3.2 | Cette fonction a été modifiée pour retourner FALSE dans le cas où output_callback ne peut être exécuté.

Exemples

Exemple #1 Exemple de gestion de sortie avec fonction de rappel

<?php

function rappel($buffer)
{
  // remplace toutes les pommes par des carottes
  return (str_replace("pommes de terre", "carottes", $buffer));
}

ob_start("rappel");

?>
<html>
<body>
<p>C'est comme comparer des carottes et des pommes de terre.</p>
</body>
</html>
<?php

ob_end_flush();

?>

L'exemple ci-dessus va afficher :

<html>
<body>
<p>C'est comme comparer des carottes et des carottes.</p>
</body>
</html>

Exemple #2 Crée un tampon de sortie in-effacable de sorte à être compatible avec PHP 5.3 et PHP 5.4

<?php

if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
  ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^
    PHP_OUTPUT_HANDLER_REMOVABLE);
} else {
  ob_start(null, 0, false);
}

?>

Voir aussi

  • ob_get_contents() - Retourne le contenu du tampon de sortie
  • ob_end_clean() - Détruit les données du tampon de sortie et éteint la temporisation de sortie
  • ob_end_flush() - Envoie les données du tampon de sortie et éteint la temporisation de sortie
  • ob_implicit_flush() - Active/désactive l'envoi implicite
  • ob_gzhandler() - Fonction de rappel pour la compression automatique des tampons
  • ob_iconv_handler() - Gestionnaire de sortie pour maîtriser le jeu de caractères de sortie
  • mb_output_handler() - Fonction de traitement des affichages
  • ob_tidyhandler() - Fonction de rappel ob_start pour réparer le buffer


Ajoute une règle de réécriture d'URL

  • « ob_start
  • output_reset_rewrite_vars »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Ajoute une règle de réécriture d'URL

output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

output_add_rewrite_var — Ajoute une règle de réécriture d'URL

Description

bool output_add_rewrite_var ( string $name , string $value )

Cette fonction ajoute une nouvelle paire nom/valeur au mécanisme de réécriture d'URL. Le nom et la valeur sera ajouté aux URL (en tant que paramètre GET) et aux formulaires (en tant que champs cachés) de la même façon que pour les identifiants de session lorsque la réécriture d'URL est activée avec session.use_trans_sid. Notez que les URL absolues, telles http://example.com/, ne sont pas réécrites.

Ce comportement est contrôlé par l'option url_rewriter.tags du php.ini.

Note: L'appel à cette fonction démarre implicitement la temporisation de sortie si elle n'est pas déjà activée.

Liste de paramètres

name

Le nom de la variable.

value

La valeur de la variable.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec output_add_rewrite_var()

<?php
output_add_rewrite_var('var', 'value');

// Quelques liens
echo '<a href="file.php">link</a>
<a href="http://example.com">link2</a>';

// un formulaire
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';

print_r(ob_list_handlers());
?>

L'exemple ci-dessus va afficher :

<a href="file.php?var=value">link</a>
<a href="http://example.com">link2</a>

<form action="script.php" method="post">
<input type="hidden" name="var" value="value" />
<input type="text" name="var2" />
</form>

Array
(
    [0] => URL-Rewriter
)

Voir aussi

  • output_reset_rewrite_vars() - Annule la réécriture d'URL
  • ob_flush() - Envoie le tampon de sortie
  • ob_list_handlers() - Liste les gestionnaires d'affichage utilisés


Annule la réécriture d'URL

  • « output_add_rewrite_var
  • Options PHP et informations PHP »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Annule la réécriture d'URL

output_reset_rewrite_vars

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

output_reset_rewrite_vars — Annule la réécriture d'URL

Description

bool output_reset_rewrite_vars ( void )

Cette fonction annule la règle de réécriture et efface toutes les variables de réécriture précédemment définies avec la fonction output_add_rewrite_var() ou par le mécanisme de session (si session.use_trans_sid a été défini lors de l'utilisation de la fonction session_start()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec output_reset_rewrite_vars()

<?php
session_start();
output_add_rewrite_var('var', 'value');

echo '<a href="file.php">link</a>';
ob_flush();

output_reset_rewrite_vars();
echo '<a href="file.php">link</a>';
?>

L'exemple ci-dessus va afficher :

<a href="file.php?PHPSESSID=xxx&var=value">link</a>
<a href="file.php">link</a>

Voir aussi

  • output_add_rewrite_var() - Ajoute une règle de réécriture d'URL
  • ob_flush() - Envoie le tampon de sortie
  • ob_list_handlers() - Liste les gestionnaires d'affichage utilisés
  • session_start() - Démarre une nouvelle session ou reprend une session existante


Options PHP et informations PHP

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions sur les options et les informations de PHP
    • assert_options — Fixe et lit différentes options d'assertions
    • assert — Vérifie si une assertion est fausse
    • cli_get_process_title — Retourne le titre du processus courant
    • cli_set_process_title — Définit le titre du processus
    • dl — Charge une extension PHP à la volée
    • extension_loaded — Détermine si une extension est chargée ou non
    • gc_collect_cycles — Force le passage du collecteur de mémoire
    • gc_disable — Désactive le collecteur de références circulaires
    • gc_enable — Active le collecteur de références circulaires
    • gc_enabled — Retourne le statut du collecteur de références circulaires
    • gc_mem_caches — Reclaims memory used by the Zend Engine memory manager
    • get_cfg_var — Retourne la valeur d'une option de PHP
    • get_current_user — Retourne le nom du possesseur du script courant
    • get_defined_constants — Retourne la liste des constantes et leurs valeurs
    • get_extension_funcs — Liste les fonctions d'une extension
    • get_include_path — Lit la valeur de la directive de configuration include_path
    • get_included_files — Retourne un tableau avec les noms des fichiers qui sont inclus dans un script
    • get_loaded_extensions — Retourne la liste de tous les modules compilés et chargés
    • get_magic_quotes_gpc — Retourne la configuration actuelle de l'option magic_quotes_gpc
    • get_magic_quotes_runtime — Retourne la configuration actuelle de l'option magic_quotes_runtime
    • get_required_files — Alias de get_included_files
    • get_resources — Returns active resources
    • getenv — Retourne la valeur d'une variable d'environnement
    • getlastmod — Retourne la date de dernière modification de la page
    • getmygid — Retourne le GID du propriétaire du script
    • getmyinode — Retourne l'inode du script
    • getmypid — Retourne le numéro de processus courant de PHP
    • getmyuid — Retourne l'UID du propriétaire du script actuel
    • getopt — Lit des options passées dans la ligne de commande
    • getrusage — Retourne le niveau d'utilisation des ressources
    • ini_alter — Alias de ini_set
    • ini_get_all — Lit toutes les valeurs de configuration
    • ini_get — Lit la valeur d'une option de configuration
    • ini_restore — Restaure la valeur de l'option de configuration
    • ini_set — Modifie la valeur d'une option de configuration
    • magic_quotes_runtime — Alias de set_magic_quotes_runtime
    • main — Fausse documentation pour main
    • memory_get_peak_usage — Retourne la quantité de mémoire maximale allouée par PHP
    • memory_get_usage — Indique la quantité de mémoire utilisée par PHP
    • php_ini_loaded_file — Récupère le chemin d'un fichier php.ini chargé
    • php_ini_scanned_files — Retourne la liste des fichiers .ini analysés dans les dossiers de configuration supplémentaires
    • php_logo_guid — Retourne l'identifiant du logo PHP
    • php_sapi_name — Retourne le type d'interface utilisée entre le serveur web et PHP
    • php_uname — Retourne les informations sur le système d'exploitation
    • phpcredits — Affiche les crédits de PHP
    • phpinfo — Affiche de nombreuses informations sur la configuration de PHP
    • phpversion — Retourne le numéro de la version courante de PHP
    • putenv — Fixe la valeur d'une variable d'environnement
    • restore_include_path — Restaure la valeur de la directive de configuration include_path
    • set_include_path — Modifie la valeur de la directive de configuration include_path
    • set_magic_quotes_runtime — Active/désactive l'option magic_quotes_runtime
    • set_time_limit — Fixe le temps maximum d'exécution d'un script
    • sys_get_temp_dir — Retourne le chemin du répertoire utilisé pour les fichiers temporaires
    • version_compare — Compare deux chaînes de version au format des versions PHP
    • zend_logo_guid — Retourne le logo de Zend
    • zend_thread_id — Retourne un identifiant unique du thread courant
    • zend_version — Lit la version courante du moteur Zend


Introduction

Ces fonctions vous donnent accès à de nombreuses informations sur PHP lui-même, comme les configurations d'exécution, les extensions chargées, les versions, etc. Vous trouverez aussi des fonctions pour modifier des options. Ainsi que la star des fonctions PHP phpinfo().


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration
Nom | Défaut | Modifiable | Historique
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.warning | "1" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.quiet_eval | "0" | PHP_INI_ALL |
assert.exception | "0" | PHP_INI_ALL | >Disponible depuis PHP 7.0.0.
enable_dl | "1" | PHP_INI_SYSTEM | Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
max_execution_time | "30" | PHP_INI_ALL |
max_input_time | "-1" | PHP_INI_PERDIR | Disponible depuis PHP 4.3.0.
max_input_nesting_level | "64" | PHP_INI_PERDIR | Disponible depuis PHP 4.4.8 et PHP 5.2.3.
max_input_vars | 1000 | PHP_INI_PERDIR | Disponible depuis PHP 5.3.9.
magic_quotes_gpc | "1" | PHP_INI_PERDIR | PHP_INI_ALL en PHP <= 4.2.3. Supprimé en PHP 5.4.0.
magic_quotes_runtime | "0" | PHP_INI_ALL | Supprimé en PHP 5.4.0.
zend.enable_gc | "1" | PHP_INI_ALL | Disponible depuis PHP 5.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

assert.active boolean

Active les évaluations de type assert().

assert.bail boolean

Termine le script si une assertion échoue.

assert.warning boolean

Émet une alerte PHP pour chaque assertion qui échoue.

assert.callback string

Fonction définie par le programmeur, à appeler pour chaque assertion échouée.

assert.quiet_eval boolean

Utilise la configuration courante de error_reporting() durant les évaluations d'assertions. Si activée, aucune erreur n'est affichée (error_reporting(0) implicite) durant l'évaluation. Si désactivée, les erreurs sont affichées en fonction de la configuration de error_reporting()

assert.exception boolean

Lève une exception AssertionError lors d'une assertion échouée.

enable_dl boolean

Cette directive est réellement utile lorsque PHP est compilé comme module Apache. Vous pouvez activer le chargement dynamique d'extension avec la fonction PHP dl() au cas par cas, pour chaque serveur virtuel.

La raison principale pour désactiver ce système est la sécurité. Avec le chargement dynamique, il est possible de passer outre les configurations de safe mode et open_basedir. Par défaut, le chargement dynamique est autorisé, sauf avec le safe mode. En safe mode, il est toujours impossible d'utiliser la fonction dl().

max_execution_time entier

Fixe le temps maximal d'exécution d'un script, en secondes. Cela permet d'éviter que des scripts en boucles infinies saturent le serveur. La configuration par défaut est de 30 secondes. Lorsque PHP fonctionne depuis la ligne de commande, la valeur par défaut est 0.

Le temps d'exécution maximum n'est pas affecté par des appels systèmes tels que sleep(). Reportez-vous à la fonction set_time_limit() pour plus de détails.

Vous ne pouvez pas modifier la valeur de cette directive avec ini_set() lorsque PHP est configuré en safe mode. Le seul moyen de le faire est de désactiver le safe mode ou de changer la valeur dans php.ini.

Votre serveur web peut avoir d'autres configurations de la durée limite d'exécution qui peuvent également interrompre PHP. Apache a une directive Timeout et IIS a une fonction CGI pour cela. Par défaut, elles valent toutes les deux 300 secondes. Reportez-vous à la documentation de votre serveur web pour plus de détails.

max_input_time entier

Cette option spécifie la durée maximale pour analyser les données d'entrée, via POST et GET. Cette durée est mesurée depuis le moment où PHP est invoqué sur le serveur jusqu'au début de l'exécution du script.

max_input_nesting_level entier

Définit la profondeur maximale des variables d'entrées (i.e. $_GET, $_POST..)

max_input_vars integer

Le nombre de variables d'entrée pouvant être acceptées (cette limite est appliquée aux variables superglobales $_GET, $_POST et $_COOKIE, séparément). L'utilisation de cette directive permet de limiter les possibilités d'attaque par déni de service utilisant des collisions de hashages. S'il y a plusieurs de variables en entrée que le nombre spécifié par cette directive, une alerte de type E_WARNING sera émise, et les variables en trop seront supprimées de la requête.

magic_quotes_gpc boolean
Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Fixe le mode magic_quotes pour les opérations GPC (Get/Post/Cookie). Lorsque magic_quotes est activé, tous les caractères ' (guillemets simples), " (guillemets doubles), \ (antislash) et NUL sont échappés avec un antislash.

Note:

En PHP 4, la variable $_ENV est également échappée.

Note:

Si la directive magic_quotes_sybase est aussi activée, elle écrasera magic_quotes_gpc. Avec les deux directives activées, seuls les guillemets simples seront protégés avec un autre guillemet simple (''). Les guillemets doubles, les antislashs et les NUL ne seront pas protégés.

Voir aussi get_magic_quotes_gpc().

magic_quotes_runtime boolean
Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Si magic_quotes_runtime est activé, toutes les fonctions qui obtiennent des données auprès d'une source externe, y compris les bases de données et les fichiers texte, verront leur guillemets échappés avec un antislash. Si magic_quotes_sybase est aussi activé, les guillemets simples seront échappés avec un autre guillemet simple, plutôt qu'un antislash.

Fonctions affectées par magic_quotes_runtime (n'incluent pas les fonctions depuis PECL):

  • get_meta_tags()
  • file_get_contents()
  • file()
  • fgets()
  • fwrite()
  • fread()
  • fputcsv()
  • stream_socket_recvfrom()
  • exec()
  • system()
  • passthru()
  • stream_get_contents()
  • bzread()
  • gzfile()
  • gzgets()
  • gzwrite()
  • gzread()
  • exif_read_data()
  • dba_insert()
  • dba_replace()
  • dba_fetch()
  • ibase_fetch_row()
  • ibase_fetch_assoc()
  • ibase_fetch_object()
  • mssql_fetch_row()
  • mssql_fetch_object()
  • mssql_fetch_array()
  • mssql_fetch_assoc()
  • mysqli_fetch_row()
  • mysqli_fetch_array()
  • mysqli_fetch_assoc()
  • mysqli_fetch_object()
  • pg_fetch_row()
  • pg_fetch_assoc()
  • pg_fetch_array()
  • pg_fetch_object()
  • pg_fetch_all()
  • pg_select()
  • sybase_fetch_object()
  • sybase_fetch_array()
  • sybase_fetch_assoc()
  • SplFileObject::fgets()
  • SplFileObject::fgetcsv()
  • SplFileObject::fwrite()

zend.enable_gc boolean

Active ou désactive la collecte des références circulaires.


Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

Constantes prédéfinies de phpcredits()
Constante | Valeur | Description
CREDITS_GROUP | 1 | Une liste des développeurs principaux
CREDITS_GENERAL | 2 | Crédits généraux. Design du langage, concepts, auteurs de PHP et module SAPI.
CREDITS_SAPI | 4 | Une liste des API de serveurs, et leurs auteurs.
CREDITS_MODULES | 8 | Une liste des extensions de PHP, et leurs auteurs
CREDITS_DOCS | 16 | Les crédits de l'équipe de documentation
CREDITS_FULLPAGE | 32 | Généralement utilisé combiné avec d'autres options. Cette option indique qu'une page HTML complète doit être générée.
CREDITS_QA | 64 | Les crédits pour le groupe d'assurance qualité.
CREDITS_ALL | -1 | Tous les crédits. C'est l'équivalent de : CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE. Elle génère une page HTML complète et autonome. C'est la valeur par défaut.
Constantes de phpinfo()
Constante | Valeur | Description
INFO_GENERAL | 1 | La ligne de configuration, le chemin du php.ini, la date de compilation, le système et plus encore.
INFO_CREDITS | 2 | Crédits de PHP. Voir aussi phpcredits().
INFO_CONFIGURATION | 4 | Valeurs locales et serveurs des directives PHP. Voir aussi ini_get().
INFO_MODULES | 8 | Les modules chargés et leurs configurations respectives.
INFO_ENVIRONMENT | 16 | Les variables d'environnement, qui sont aussi disponibles dans $_ENV.
INFO_VARIABLES | 32 | Toutes les variables prédéfinies : EGPCS (Environnement, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | La licence PHP. Voir aussi la » FAQ de la licence.
INFO_ALL | -1 | Affiche toutes les valeurs citées ci-dessus. C'est la valeur par défaut.
Constantes INI
Constante | Valeur | Description
INI_USER | 1 | Inutilisé
INI_PERDIR | 2 | Inutilisé
INI_SYSTEM | 4 | Inutilisé
INI_ALL | 7 | Inutilisé

Les constantes d'assertions servent avec la fonction assert_options().

Constantes d'assert()
Constante | Directive de configuration | Description
ASSERT_ACTIVE | assert.active | Active l'évaluation assert().
ASSERT_CALLBACK | assert.callback | Fonction de rappel des assertions échouées.
ASSERT_BAIL | assert.bail | Termine l'exécution des assertions échouées.
ASSERT_WARNING | assert.warning | Émet une alerte PHP pour chaque assertion échouée.
ASSERT_QUIET_EVAL | assert.quiet_eval | Désactive le error_reporting durant l'évaluation des expressions d'assertion.

Les constantes suivantes ne sont disponibles que si le système d'hébergement est sur Windows, et peut vous donner des informations sur les versions, qui vous permettront de détecter la présence de fonctionnalités. Elles sont disponibles depuis PHP 5.3.0.

Constantes particulières à Windows
Constante | Description
PHP_WINDOWS_VERSION_MAJOR | La version majeure de Windows, qui peut être 4 (NT4/Me/98/95), 5 (XP/2003 R2/2003/2000) ou 6 (Vista/2008/7/8/8.1).
PHP_WINDOWS_VERSION_MINOR | La version mineure de Windows, qui peut être 0 (Vista/2008/2000/NT4/95), 1 (XP), 2 (2003 R2/2003/XP x64), 10 (98) ou 90 (ME).
PHP_WINDOWS_VERSION_BUILD | Le numéro de compilation de Windows (par exemple, Windows Vista avec SP1 a le numéro 6001)
PHP_WINDOWS_VERSION_PLATFORM | La plate-forme que PHP utilise actuellement : cette valeur peut être 2 sur Windows Vista/XP/2000/NT4, Server 2008/2003 et sur Windows ME/98/95 cette valeur est 1.
PHP_WINDOWS_VERSION_SP_MAJOR | La version majeure du paquet de service installé : cette valeur vaut 0 si aucun paquet de service n'est disponible. Par exemple, Windows XP avec le paquet de service 3 donne la valeur 3 à cette constante.
PHP_WINDOWS_VERSION_SP_MINOR | La version mineur du paquet de service installé. Cette valeur est 0 si aucun paquet de service n'est installé.
PHP_WINDOWS_VERSION_SUITEMASK | Le masque est un champ de bits qui permet de connaître la présence de différentes fonctionnalités de Windows. Voyez la table ci-dessous pour connaître les différents champs.
PHP_WINDOWS_VERSION_PRODUCTTYPE | Cette constante contient la valeur utilisée pour déterminer la valeur des constantes PHP_WINDOWS_NT_*. Cette valeur peut être l'une des constantes PHP_WINDOWS_NT_*, indiquant le type de plate-forme.
PHP_WINDOWS_NT_DOMAIN_CONTROLLER | Le contrôleur de domaine.
PHP_WINDOWS_NT_SERVER | Un serveur système (eg. Server 2008/2003/2000). Notez que si c'est un contrôleur de domaine, il est indiqué dans PHP_WINDOWS_NT_DOMAIN_CONTROLLER.
PHP_WINDOWS_NT_WORKSTATION | Un poste de travail (eg. Vista/XP/2000/NT4)

La table ci-desous présente les fonctionnalités qui peuvent être vérifiées dans le champ de bit de la constante PHP_WINDOWS_VERSION_SUITEMASK.

Champs du masque Windows
Bits | Description
0x00000004 | Les composants Microsoft BackOffice sont installés.
0x00000400 | Windows Server 2003, Web Edition est installé.
0x00004000 | Windows Server 2003, Compute Cluster Edition est installé.
0x00000080 | Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition ou Windows 2000 Datacenter Server est installé.
0x00000002 | Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition, Windows 2000 Advanced Server, ou Windows NT Server 4.0 Enterprise Edition est installé.
0x00000040 | Windows XP Embedded est installé.
0x00000200 | Windows Vista Home Premium, Windows Vista Home Basic, ou Windows XP Home Edition est installé.
0x00000100 | Remote Desktop est supporté, mais une seule session interactive est supportée. Cette valeur est présente, à moins que le système ne fonctionne en mode serveur d'application.
0x00000001 | Microsoft Small Business Server a été installé sur le système, mais a été mis à joru vers une nouvelle version de Windows.
0x00000020 | Microsoft Small Business Server est installé avec la licence cliente restreinte.
0x00002000 | Windows Storage Server 2003 R2 ou Windows Storage Server 2003 est installé.
0x00000010 | Terminal Services est installé. Cette valeur est toujours activée. Si cette valeur est activée, mais 0x00000100 ne l'est pas, alors le système fonctionne en mode de serveur d'application.
0x00008000 | Windows Home Server est installé.


Fonctions sur les options et les informations de PHP

Sommaire

  • assert_options — Fixe et lit différentes options d'assertions
  • assert — Vérifie si une assertion est fausse
  • cli_get_process_title — Retourne le titre du processus courant
  • cli_set_process_title — Définit le titre du processus
  • dl — Charge une extension PHP à la volée
  • extension_loaded — Détermine si une extension est chargée ou non
  • gc_collect_cycles — Force le passage du collecteur de mémoire
  • gc_disable — Désactive le collecteur de références circulaires
  • gc_enable — Active le collecteur de références circulaires
  • gc_enabled — Retourne le statut du collecteur de références circulaires
  • gc_mem_caches — Reclaims memory used by the Zend Engine memory manager
  • get_cfg_var — Retourne la valeur d'une option de PHP
  • get_current_user — Retourne le nom du possesseur du script courant
  • get_defined_constants — Retourne la liste des constantes et leurs valeurs
  • get_extension_funcs — Liste les fonctions d'une extension
  • get_include_path — Lit la valeur de la directive de configuration include_path
  • get_included_files — Retourne un tableau avec les noms des fichiers qui sont inclus dans un script
  • get_loaded_extensions — Retourne la liste de tous les modules compilés et chargés
  • get_magic_quotes_gpc — Retourne la configuration actuelle de l'option magic_quotes_gpc
  • get_magic_quotes_runtime — Retourne la configuration actuelle de l'option magic_quotes_runtime
  • get_required_files — Alias de get_included_files
  • get_resources — Returns active resources
  • getenv — Retourne la valeur d'une variable d'environnement
  • getlastmod — Retourne la date de dernière modification de la page
  • getmygid — Retourne le GID du propriétaire du script
  • getmyinode — Retourne l'inode du script
  • getmypid — Retourne le numéro de processus courant de PHP
  • getmyuid — Retourne l'UID du propriétaire du script actuel
  • getopt — Lit des options passées dans la ligne de commande
  • getrusage — Retourne le niveau d'utilisation des ressources
  • ini_alter — Alias de ini_set
  • ini_get_all — Lit toutes les valeurs de configuration
  • ini_get — Lit la valeur d'une option de configuration
  • ini_restore — Restaure la valeur de l'option de configuration
  • ini_set — Modifie la valeur d'une option de configuration
  • magic_quotes_runtime — Alias de set_magic_quotes_runtime
  • main — Fausse documentation pour main
  • memory_get_peak_usage — Retourne la quantité de mémoire maximale allouée par PHP
  • memory_get_usage — Indique la quantité de mémoire utilisée par PHP
  • php_ini_loaded_file — Récupère le chemin d'un fichier php.ini chargé
  • php_ini_scanned_files — Retourne la liste des fichiers .ini analysés dans les dossiers de configuration supplémentaires
  • php_logo_guid — Retourne l'identifiant du logo PHP
  • php_sapi_name — Retourne le type d'interface utilisée entre le serveur web et PHP
  • php_uname — Retourne les informations sur le système d'exploitation
  • phpcredits — Affiche les crédits de PHP
  • phpinfo — Affiche de nombreuses informations sur la configuration de PHP
  • phpversion — Retourne le numéro de la version courante de PHP
  • putenv — Fixe la valeur d'une variable d'environnement
  • restore_include_path — Restaure la valeur de la directive de configuration include_path
  • set_include_path — Modifie la valeur de la directive de configuration include_path
  • set_magic_quotes_runtime — Active/désactive l'option magic_quotes_runtime
  • set_time_limit — Fixe le temps maximum d'exécution d'un script
  • sys_get_temp_dir — Retourne le chemin du répertoire utilisé pour les fichiers temporaires
  • version_compare — Compare deux chaînes de version au format des versions PHP
  • zend_logo_guid — Retourne le logo de Zend
  • zend_thread_id — Retourne un identifiant unique du thread courant
  • zend_version — Lit la version courante du moteur Zend


Fixe et lit différentes options d'assertions

  • « Fonctions sur les options et les informations de PHP
  • assert »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Fixe et lit différentes options d'assertions

assert_options

(PHP 4, PHP 5, PHP 7)

assert_options — Fixe et lit différentes options d'assertions

Description

mixed assert_options ( int $what [, mixed $value ] )

assert_options() permet de modifier les diverses options de la fonction assert(), ou simplement connaître la configuration actuelle.

Liste de paramètres

what

Options d'assertions
Option | Directive | Valeur par défaut | Description
ASSERT_ACTIVE | assert.active | 1 | Active l'évaluation de la fonction assert()
ASSERT_WARNING | assert.warning | 1 | Génère une alerte PHP pour chaque assertion fausse
ASSERT_BAIL | assert.bail | 0 | Termine l'exécution en cas d'assertion fausse
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | Désactive le rapport d'erreur durant l'évaluation d'une assertion
ASSERT_CALLBACK | assert.callback | (NULL) | Fonction de rappel utilisateur, pour le traitement des assertions fausses

value

Une nouvelle valeur, optionnelle, pour l'option.

Valeurs de retour

Retourne la valeur originale de l'option, ou bien FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec assert_options()

<?php
// Ceci est notre fonction pour gérer les
// erreurs d'assertion
function assert_failure()
{
    echo 'Échec de l\'assertion';
}

// Ceci est notre fonction de test
function test_assert($parameter)
{
    assert(is_bool($parameter));
}

// Définit nos options d'assertion
assert_options(ASSERT_ACTIVE,   true);
assert_options(ASSERT_BAIL,     true);
assert_options(ASSERT_WARNING,  false);
assert_options(ASSERT_CALLBACK, 'assert_failure');

// Une assertion qui doit échouée
test_assert(1);

// Ceci n'est jamais atteint, car ASSERT_BAIL
// vaut true
echo 'Jamais atteint';
?>

Voir aussi

  • assert() - Vérifie si une assertion est fausse


Vérifie si une assertion est fausse

  • « assert_options
  • cli_get_process_title »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Vérifie si une assertion est fausse

assert

(PHP 4, PHP 5, PHP 7)

assert — Vérifie si une assertion est fausse

Description

PHP 5 et 7

bool assert ( mixed $assertion [, string $description ] )

PHP 7

bool assert ( mixed $assertion [, Throwable $exception ] )

assert() va vérifier l'assertion assertion et prendre la mesure appropriée si le résultat est FALSE.

Assertions traditionnelles (PHP 5 et 7)

Si assertion est donnée sous la forme d'une chaîne, elle sera évaluée comme un code PHP par la fonction assert(). Les avantages de ce type d'assertion sont d'être moins lourd si la vérification d'assertion est désactivée, et les messages contenant l'assertion lorsque l'assertion échoue. Cela signifie que si vous passez une condition booléenne en tant qu'assertion, cette condition ne sera pas considérée comme un paramètre par la fonction d'assertion que vous avez définie avec la fonction assert_options(), la condition est convertie en chaîne de caractères avant l'appel à ce gestionnaire de fonction, et le booléen FALSE sera converti en chaîne de caractères vide.

Il est recommandé de n'utiliser les assertions que comme outil de déboguage. Vous pouvez les utiliser pour les vérifications d'usage : ces conditions doivent normalement être vraies, et indiquer une erreur de programmation si ce n'est pas le cas. Vous pouvez aussi vérifier la présence de certaines extensions ou limitations du système.

Les assertions ne doivent pas être utilisées pour faire des opérations de vérifications en production, comme des vérifications de valeur d'argument. En conditions normales, votre code doit être en état de fonctionner si la vérification d'assertion est désactivée.

Le comportement de assert() peut être configuré par assert_options() ou par les directives de configuration décrites dans la page de manuel de cette fonction.

La fonction assert_options() et la directive ASSERT_CALLBACK permettent de configurer une fonction qui sera appelée lorsque l'assertion échoue.

Les fonctions de rappel pour assert() sont particulièrement utiles pour bâtir des suites de tests automatiques, car elles vous permettent de capturer facilement le code passé à l'assertion, ainsi que des informations sur le lieu et le moment de l'assertion. Même si ces informations peuvent être appelées par d'autres méthodes, les assertions sont plus rapides et plus faciles.

La fonction de rappel doit accepter trois arguments. Le premier contient le nom du fichier qui a vu l'assertion échouer. Le second contient le numéro de ligne dans le fichier précédent. Le troisième argument contient l'expression qui a échoué (s'il y en a : les valeurs littérales — comme 1 ou "deux" ne seront pas passées par cet argument). Les utilisateurs de PHP 5.4.8 ou supérieur peuvent également fournir un quatrième argument optionnel, qui contiendra la description fournie à la fonction assert(), s'il est défini.

Expectations (PHP 7 seulement)

assert() est une construction de langage en PHP 7, autorisé pour la définition des expectations : les assertions qui prennent effet dans les environnements de développement et de test, mais qui sont optimisées de sorte à avoir un coût zéro en production.

Bien que assert_options() peut toujours être utilisé pour contrôler le comportement tel que décrit ci-dessus pour des raisons de compatibilité ascendante, le code purement PHP 7 doit utiliser les deux nouvelles directives de configuration pour contrôler le comportement de la fonction assert() et ne pas appeler la fonction assert_options().

Les directives de configuration PHP 7 pour la fonction assert()
Directive Valeur par défaut Valeurs possibles
zend.assertions 1
  • 1 : génère et exécute le code (mode développement)
  • 0 : génère le code mais l'évite au moment de l'exécution
  • -1 : ne génère pas le code (mode production)
assert.exception 0
  • 1 : lancé lorsqu'une assertion échoue, soit en lançant l'objet fourni par l'exception, soit en lançant un nouvel objet AssertionError si l'exception n'a pas été fourni
  • 0 : utilise ou génère un Throwable tel que décrit ci-dessus, mais ne génère qu'une alerte basée sur cet objet plutôt que de le lancer (compatible avec le comportement de PHP 5)

Liste de paramètres

assertion

L'assertion. En PHP 5, ceci peut être soit une chaîne de caractères à évaluer, soit un booléen à tester. En PHP 7, ceci peut également être toute expression qui retourne une valeur, qui peut être exécuté et le résultat utilisé pour indiquer si l'assertion a réussi ou a échoué.

description

Une description optionnelle, qui sera incluse dans le message d'échec si l'assertion échoue.

exception

En PHP 7, le second paramètre peut être un objet Throwable au lieu d'une chaîne descriptive, auquel cas, ceci sera un objet qui sera lancé si l'assertion échoue et que la directive de configuration assert.exception est activée.

Valeurs de retour

FALSE si l'assertion est fausse, TRUE sinon.

Historique

Version | Description
7.0.0 | assert() est maintenant une construction de langage et non une fonction. assertion() peut maintenant être une expression. Le second paramètre est maintenant interprété soit comme une exception (si un objet Throwable est fourni), soit comme une description supportée depuis PHP 5.4.8 et suivants.
5.4.8 | La paramètre description a été ajoutée. La description est également maintenant fournie à la fonction de rappel en mode ASSERT_CALLBACK comme quatrième argument.

Exemples

Assertions traditionnelles (PHP 5 et 7)

Exemple #1 Gestion des assertions avec un gestionnaire personnalisé

<?php
// Activation des assertions et mise en mode discret
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);

// Création d'un gestionnaire d'assertions
function my_assert_handler($file, $line, $code)
{
    echo "<hr>Échec de l'assertion :
        File '$file'<br />
        Line '$line'<br />
        Code '$code'<br /><hr />";
}

// Configuration de la méthode de callback
assert_options(ASSERT_CALLBACK, 'my_assert_handler');

// Utilisation d'une assertion qui va échouer
assert('mysql_query("")');
?>

Exemple #2 Utilisation d'un gestionnaire personnalisé pour afficher une description

<?php
// Activation de l'assertion et on le rend silencieux
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);

// Création d'une fonction de gestionnaire
function my_assert_handler($file, $line, $code, $desc = null)
{
    echo "Echec de l'assertion : $file:$line: $code";
    if ($desc) {
        echo ": $desc";
    }
    echo "\n";
}

// Définition de la fonction de rappel
assert_options(ASSERT_CALLBACK, 'my_assert_handler');

// Effectue une assertion qui doit échouer
assert('2 < 1');
assert('2 < 1', 'Deux est inférieur à un');
?>

L'exemple ci-dessus va afficher :

Echec de l'assertion : test.php:21: 2 < 1
Echec de l'assertion : test.php:22: 2 < 1: Deux est inférieur à un

Expectations (PHP 7 seulement)

Exemple #3 Expectations sans exception personalisée

<?php
assert(true == false);
echo 'Hi!';
?>

Avec zend.assertions défini à 0, l'exemple ci-dessus afficherait :

Hi!

Avec zend.assertions défini à 1 et assert.exception défini à 0, l'exemple ci-dessus afficherait :

Warning: assert(): assert(true == false) failed in - on line 2
Hi!

AVec zend.assertions défini à 1 et assert.exception défini à 1, l'exemple ci-dessus afficherait :

Fatal error: Uncaught AssertionError: assert(true == false) in -:2
Stack trace:
#0 -(2): assert(false, 'assert(true == ...')
#1 {main}
  thrown in - on line 2

Exemple #4 Expectations avec une exception personalisée

<?php
class CustomError extends AssertionError {}

assert(true == false, new CustomError('True is not false!'));
echo 'Hi!';
?>

Avec zend.assertions défini à 0, l'exemple ci-dessus afficherait :

Hi!

Avec zend.assertions défini à 1 et assert.exception défini à 0, l'exemple ci-dessus afficherait :

Warning: assert(): CustomError: True is not false! in -:4
Stack trace:
#0 {main} failed in - on line 4
Hi!

Avec zend.assertions défini à 1 et assert.exception défini à 1, l'exemple ci-dessus afficherait :

Fatal error: Uncaught CustomError: True is not false! in -:4
Stack trace:
#0 {main}
  thrown in - on line 4

Voir aussi

  • assert_options() - Fixe et lit différentes options d'assertions


Retourne le titre du processus courant

  • « assert
  • cli_set_process_title »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne le titre du processus courant

cli_get_process_title

(PHP 5 >= 5.5.0, PHP 7)

cli_get_process_title — Retourne le titre du processus courant

Description

string cli_get_process_title ( void )

Retourne le titre du processus courant, tel que défini par la fonction cli_set_process_title(). Notez que ce titre peut être légèrement différent de celui affiché via les commandes ps et top, suivant le système sous-jacent.

Cette fonction n'est disponible qu'en mode CLI.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le titre du processus courant, sous la forme d'une chaîne de caractères, ou NULL si une erreur survient.

Erreurs / Exceptions

Une alerte de niveau E_WARNING sera générée si le système sous-jacent n'est pas supporté.

Exemples

Exemple #1 Exemple avec cli_get_process_title()

<?php
echo "Titre du processus : " . cli_get_process_title() . "\n";
?>

Voir aussi

  • cli_set_process_title() - Définit le titre du processus


Définit le titre du processus

  • « cli_get_process_title
  • dl »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Définit le titre du processus

cli_set_process_title

(PHP 5 >= 5.5.0, PHP 7)

cli_set_process_title — Définit le titre du processus

Description

bool cli_set_process_title ( string $title )

Définit le titre du processus visible avec des outils comme top et ps. Cette fonction n'est disponible qu'en mode CLI.

Liste de paramètres

title

Le nouveau titre

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Une alerte de niveau E_WARNING sera générée si le système sous-jacent n'est pas supporté.

Exemples

Exemple #1 Exemple avec cli_set_process_title()

<?php
$title = "Mon super script PHP";
$pid = getmypid(); // vous pouvez utiilser ceci pour voir le titre de votre processus dans ps

if (!cli_set_process_title($title)) {
    echo "Impossible de définir le titre du processus pour le PID $pid...\n";
    exit(1);
} else {
    echo "Le titre du processus '$title' pour le PID $pid a bien été défini !\n";
    sleep(5);
}
?>

Voir aussi

  • cli_get_process_title() - Retourne le titre du processus courant
  • setproctitle() - Définit le titre du processus


Charge une extension PHP à la volée

  • « cli_set_process_title
  • extension_loaded »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Charge une extension PHP à la volée

dl

(PHP 4, PHP 5, PHP 7)

dl — Charge une extension PHP à la volée

Description

bool dl ( string $library )

Charge l'extension PHP library à la volée.

Utilisez la fonction extension_loaded() pour vérifier qu'une extension est chargée ou non. Cette fonction travaille aussi bien avec les extensions natives qu'avec les extensions dynamiquement chargées (via le php.ini ou dl()).

Avertissement

Cette fonction a été supprimée du SAPI en PHP 5.3.

Liste de paramètres

library

Ce paramètre est seulement le nom de fichier de l'extension, qui dépend de votre plate-forme. Par exemple l'extension sockets (si compilée comme module partagé, et non par défaut), sera appelée sockets.so sous Unix, et php_sockets.dll sous Windows.

Le dossier à partir duquel sont chargées vos extensions dépend de votre plate-forme :

Windows - S'il n'est pas explicitement indiqué dans le fichier php.ini, le dossier des extensions est c:\php4\extensions\ (PHP 4) ou C:\php5\ (PHP 5) par défaut.

Unix - S'il n'est pas explicitement indiqué dans le fichier php.ini, le dossier des extensions dépend de

  • Si PHP a été compilé avec l'option --enable-debug ou non
  • Si PHP a été compilé avec le support (expérimental) de ZTS (Zend Thread Safety) ou non
  • de la constante interne ZEND_MODULE_API_NO (version interne de module d'API Zend, qui est en réalité la date à laquelle une modification importante de l'API a été faite, par exemple 20010901)
En prenant ces paramètres en considération, le dossier des extensions vaut alors <install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, e.g. /usr/local/php/lib/php/extensions/debug-non-zts-20010901 ou /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si la fonctionnalité de chargement de module n'est pas disponible, ou a été désactivée (soit en désactivant la directive enable_dl ou en activant le safe mode dans le php.ini) une E_ERROR sera émise et l'exécution du script sera stoppée. Si la fonction dl() échoue parce que la bibliothèque n'a pu être trouvée, dl() retournera FALSE et émettra un message d'alerte E_WARNING.

Exemples

Exemple #1 Exemples avec dl()

<?php
// Chargement pour toutes plates-formes
if (!extension_loaded('sqlite')) {
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
        dl('php_sqlite.dll');
    } else {
        dl('sqlite.so');
    }
}

// Mais la constante PHP_SHLIB_SUFFIX est disponible depuis PHP 4.3.0
if (!extension_loaded('sqlite')) {
    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
    dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

Historique

Version | Description
5.3.0 | dl() est maintenant désactivé dans quelques SAPIs en raison de son instabilité. Le seul SAPI qui active dl() sont CLI et Embed. Utilisez les directives de chargement d'extension à la place.

Notes

Note:

dl() n'est pas supporté lorsque PHP est compilé avec le support ZTS. Utilisez les directives de chargement d'extension à la place.

Note:

dl() est sensible à la casse sur les plates-formes Unix.

Note: Cette fonction est désactivée par le safe-mode

Voir aussi

  • Directives de chargement d'extensions
  • extension_loaded() - Détermine si une extension est chargée ou non


Détermine si une extension est chargée ou non

  • « dl
  • gc_collect_cycles »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Détermine si une extension est chargée ou non

extension_loaded

(PHP 4, PHP 5, PHP 7)

extension_loaded — Détermine si une extension est chargée ou non

Description

bool extension_loaded ( string $name )

Détermine si une extension est chargée ou non.

Liste de paramètres

name

Le nom de l'extension. Ce paramètre n'est pas sensible à la casse.

Vous pouvez connaître le nom des différentes extensions PHP en utilisant la fonction phpinfo() ou bien si vous utilisez la version CGI ou CLI de PHP, vous pouvez utiliser l'option de ligne de commande -m pour afficher toutes les extensions disponibles :

$ php -m
[PHP Modules]
xml
tokenizer
standard
sockets
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

Valeurs de retour

Retourne TRUE si l'extension name a été chargée, FALSE sinon.

Exemples

Exemple #1 Exemple avec extension_loaded()

<?php
if (!extension_loaded('gd')) {
    if (!dl('gd.so')) {
        exit;
    }
}
?>

Voir aussi

  • get_loaded_extensions() - Retourne la liste de tous les modules compilés et chargés
  • get_extension_funcs() - Liste les fonctions d'une extension
  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP
  • dl() - Charge une extension PHP à la volée
  • function_exists() - Indique si une fonction est définie


Force le passage du collecteur de mémoire

  • « extension_loaded
  • gc_disable »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Force le passage du collecteur de mémoire

gc_collect_cycles

(PHP 5 >= 5.3.0, PHP 7)

gc_collect_cycles — Force le passage du collecteur de mémoire

Description

int gc_collect_cycles ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Force le passage du collecteur de mémoire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de cycles collectés.

Voir aussi

  • Le collecteur


Désactive le collecteur de références circulaires

  • « gc_collect_cycles
  • gc_enable »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Désactive le collecteur de références circulaires

gc_disable

(PHP 5 >= 5.3.0, PHP 7)

gc_disable — Désactive le collecteur de références circulaires

Description

void gc_disable ( void )

Désactive le collecteur de références circulaires, en configuration zend.enable_gc à 0.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Le collecteur


Active le collecteur de références circulaires

  • « gc_disable
  • gc_enabled »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Active le collecteur de références circulaires

gc_enable

(PHP 5 >= 5.3.0, PHP 7)

gc_enable — Active le collecteur de références circulaires

Description

void gc_enable ( void )

Active le collecteur de références circulaires, en définissant zend.enable_gc à 1.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Le collecteur


Retourne le statut du collecteur de références circulaires

  • « gc_enable
  • gc_mem_caches »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne le statut du collecteur de références circulaires

gc_enabled

(PHP 5 >= 5.3.0, PHP 7)

gc_enabled — Retourne le statut du collecteur de références circulaires

Description

bool gc_enabled ( void )

Retourne le statut du collecteur de références circulaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le collecteur est actif, et FALSE sinon.

Exemples

Exemple #1 Exemple avec gc_enabled()

<?php
if(gc_enabled()) gc_collect_cycles();
?>

Voir aussi

  • Le collecteur


Reclaims memory used by the Zend Engine memory manager

  • « gc_enabled
  • get_cfg_var »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Reclaims memory used by the Zend Engine memory manager

gc_mem_caches

(PHP 7)

gc_mem_caches — Reclaims memory used by the Zend Engine memory manager

Description

int gc_mem_caches ( void )

Reclaims memory used by the Zend Engine memory manager.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the number of bytes freed.

Voir aussi

  • Garbage Collection


Retourne la valeur d'une option de PHP

  • « gc_mem_caches
  • get_current_user »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne la valeur d'une option de PHP

get_cfg_var

(PHP 4, PHP 5, PHP 7)

get_cfg_var — Retourne la valeur d'une option de PHP

Description

string get_cfg_var ( string $option )

Retourne la valeur de l'option option de configuration PHP.

get_cfg_var() ne retourne pas les options qui ont été choisies lors de la compilation de PHP, ni ne lit dans le fichier de configuration d'Apache.

Pour vérifier si le système utilise le fichier de configuration, essayez de lire la valeur de cfg_file_path. Si cette valeur est disponible, alors le fichier de configuration est utilisé.

Liste de paramètres

option

Le nom de l'option de configuration.

Valeurs de retour

Retourne la valeur courante de l'option PHP option ou bien FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | get_cfg_var() a été modifié afin de permettre de retourner un tableau de directives.

Voir aussi

  • ini_get() - Lit la valeur d'une option de configuration
  • ini_get_all() - Lit toutes les valeurs de configuration


Retourne le nom du possesseur du script courant

  • « get_cfg_var
  • get_defined_constants »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne le nom du possesseur du script courant

get_current_user

(PHP 4, PHP 5, PHP 7)

get_current_user — Retourne le nom du possesseur du script courant

Description

string get_current_user ( void )

Retourne le nom du possesseur du script courant.

Valeurs de retour

Retourne le nom de l'utilisateur, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec get_current_user()

<?php
echo 'Propriétaire du script courant : ' . get_current_user();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Propriétaire du script courant : SYSTEM

Voir aussi

  • getmyuid() - Retourne l'UID du propriétaire du script actuel
  • getmygid() - Retourne le GID du propriétaire du script
  • getmypid() - Retourne le numéro de processus courant de PHP
  • getmyinode() - Retourne l'inode du script
  • getlastmod() - Retourne la date de dernière modification de la page


Retourne la liste des constantes et leurs valeurs

  • « get_current_user
  • get_extension_funcs »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne la liste des constantes et leurs valeurs

get_defined_constants

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

get_defined_constants — Retourne la liste des constantes et leurs valeurs

Description

array get_defined_constants ([ bool $categorize = false ] )

Retourne les noms et valeurs des constantes déjà définies. Cela inclut les constantes créées par les extensions, et celles créées avec la fonction define().

Liste de paramètres

categorize

Permet à cette fonction de retourner un tableau multidimensionnel avec les catégories en tant que clés de la première dimension et les constantes ainsi que leurs valeurs dans la seconde dimension.

<?php
define("MY_CONSTANT", 1);
print_r(get_defined_constants(true));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [Core] => Array
        (
            [E_ERROR] => 1
            [E_WARNING] => 2
            [E_PARSE] => 4
            [E_NOTICE] => 8
            [E_CORE_ERROR] => 16
            [E_CORE_WARNING] => 32
            [E_COMPILE_ERROR] => 64
            [E_COMPILE_WARNING] => 128
            [E_USER_ERROR] => 256
            [E_USER_WARNING] => 512
            [E_USER_NOTICE] => 1024
            [E_ALL] => 2047
            [TRUE] => 1
        )

    [pcre] => Array
        (
            [PREG_PATTERN_ORDER] => 1
            [PREG_SET_ORDER] => 2
            [PREG_OFFSET_CAPTURE] => 256
            [PREG_SPLIT_NO_EMPTY] => 1
            [PREG_SPLIT_DELIM_CAPTURE] => 2
            [PREG_SPLIT_OFFSET_CAPTURE] => 4
            [PREG_GREP_INVERT] => 1
        )

    [user] => Array
        (
            [MY_CONSTANT] => 1
        )

)

Valeurs de retour

Retourne un tableau de constantes au format "nom de la constante" => "valeur de la constante", optionnellement groupées par le nom de l'extension ayant enregistré la constante.

Historique

Version | Description
5.3.1 | Windows uniquement : Les constantes internes sont catégorisées sous Core, précédemment, elles l'étaient sous mhash.
5.3.0 | Les constantes internes sont maintenant catégorisées sous Core alors qu'elles l'étaient sous internal auparavant. Sous WIndows, les constantes internes étaient catégorisées sous mhash.
5.2.11 | Le paramètre categorize agit maintenant comme entendu. Avant, le paramètre categorize était interprété comme !is_null($categorize), faisant que n'importe quelle valeur autre que NULL forçait la constante a être catégorisée.

Exemples

Exemple #1 Exemple avec get_defined_constants()

<?php
print_r(get_defined_constants());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [E_ERROR] => 1
    [E_WARNING] => 2
    [E_PARSE] => 4
    [E_NOTICE] => 8
    [E_CORE_ERROR] => 16
    [E_CORE_WARNING] => 32
    [E_COMPILE_ERROR] => 64
    [E_COMPILE_WARNING] => 128
    [E_USER_ERROR] => 256
    [E_USER_WARNING] => 512
    [E_USER_NOTICE] => 1024
    [E_ALL] => 2047
    [TRUE] => 1
)

Voir aussi

  • defined() - Vérifie l'existence d'une constante
  • get_loaded_extensions() - Retourne la liste de tous les modules compilés et chargés
  • get_defined_functions() - Liste toutes les fonctions définies
  • get_defined_vars() - Liste toutes les variables définies


Liste les fonctions d'une extension

  • « get_defined_constants
  • get_include_path »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Liste les fonctions d'une extension

get_extension_funcs

(PHP 4, PHP 5, PHP 7)

get_extension_funcs — Liste les fonctions d'une extension

Description

array get_extension_funcs ( string $module_name )

Retourne le nom des fonctions définies dans le module module_name.

Liste de paramètres

module_name

Le nom du module.

Note:

Ce paramètre doit être en minuscule.

Valeurs de retour

Retourne un tableau contenant toutes les fonctions, ou FALSE si module_name n'est pas une extension valide.

Exemples

Exemple #1 Affiche toutes les fonctions XML

<?php
print_r(get_extension_funcs("xml"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => xml_parser_create
    [1] => xml_parser_create_ns
    [2] => xml_set_object
    [3] => xml_set_element_handler
    [4] => xml_set_character_data_handler
    [5] => xml_set_processing_instruction_handler
    [6] => xml_set_default_handler
    [7] => xml_set_unparsed_entity_decl_handler
    [8] => xml_set_notation_decl_handler
    [9] => xml_set_external_entity_ref_handler
    [10] => xml_set_start_namespace_decl_handler
    [11] => xml_set_end_namespace_decl_handler
    [12] => xml_parse
    [13] => xml_parse_into_struct
    [14] => xml_get_error_code
    [15] => xml_error_string
    [16] => xml_get_current_line_number
    [17] => xml_get_current_column_number
    [18] => xml_get_current_byte_index
    [19] => xml_parser_free
    [20] => xml_parser_set_option
    [21] => xml_parser_get_option
    [22] => utf8_encode
    [23] => utf8_decode
)

Voir aussi

  • get_loaded_extensions() - Retourne la liste de tous les modules compilés et chargés
  • ReflectionExtension::getFunctions() - Récupère les fonctions d'une extension


Lit la valeur de la directive de configuration include_path

  • « get_extension_funcs
  • get_included_files »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Lit la valeur de la directive de configuration include_path

get_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

get_include_path — Lit la valeur de la directive de configuration include_path

Description

string get_include_path ( void )

Lit la valeur de la directive de configuration include_path.

Valeurs de retour

Retourne le chemin, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec get_include_path()

<?php
// Fonctionne depuis PHP 4.3.0
echo get_include_path();

// Fonctionne sur toutes les versions
echo ini_get('include_path');
?>

Voir aussi

  • ini_get() - Lit la valeur d'une option de configuration
  • restore_include_path() - Restaure la valeur de la directive de configuration include_path
  • set_include_path() - Modifie la valeur de la directive de configuration include_path
  • include - include


Retourne un tableau avec les noms des fichiers qui sont inclus dans un script

  • « get_include_path
  • get_loaded_extensions »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne un tableau avec les noms des fichiers qui sont inclus dans un script

get_included_files

(PHP 4, PHP 5, PHP 7)

get_included_files — Retourne un tableau avec les noms des fichiers qui sont inclus dans un script

Description

array get_included_files ( void )

Retourne un tableau contenant les noms de tous les fichiers qui ont été ajoutés au script avec les fonctions include, include_once, require ou require_once.

Valeurs de retour

Retourne un tableau contenant les noms de tous les fichiers.

Le script en cours est considéré comme fichier inclus, il sera donc listé avec les autres fichiers dont il est fait référence avec include et les fonctions assimilées.

Les fichiers inclus ou requis plusieurs fois ne s'affichent qu'une fois dans le tableau retourné.

Exemples

Exemple #1 Exemple avec get_included_files()

<?php
// Ce fichier est abc.php

include 'test1.php';
include_once 'test2.php';
require 'test3.php';
require_once 'test4.php';

$included_files = get_included_files();

foreach ($included_files as $filename) {
    echo "$filename\n";
}

?>

L'exemple ci-dessus va afficher :

/path/to/abc.php
/path/to/test1.php
/path/to/test2.php
/path/to/test3.php
/path/to/test4.php

Notes

Note:

Les fichiers inclus en utilisant la directive de configuration auto_prepend_file ne sont pas listés.

Voir aussi

  • include - include
  • include_once - include_once
  • require - require
  • require_once - require_once
  • get_required_files() - Alias de get_included_files


Retourne la liste de tous les modules compilés et chargés

  • « get_included_files
  • get_magic_quotes_gpc »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne la liste de tous les modules compilés et chargés

get_loaded_extensions

(PHP 4, PHP 5, PHP 7)

get_loaded_extensions — Retourne la liste de tous les modules compilés et chargés

Description

array get_loaded_extensions ([ bool $zend_extensions = false ] )

Retourne un tableau contenant les noms de tous les modules compilés et chargés par l'application PHP courante.

Liste de paramètres

zend_extensions

Retourne uniquement les extensions Zend. Par défaut vaut FALSE et ne liste que les extensions PHP classiques comme mysqli par exemple.

Valeurs de retour

Retourne un tableau indexé des noms de tous les modules.

Historique

Version | Description
5.2.4 | Le paramètre optionnel zend_extensions a été ajouté

Exemples

Exemple #1 Exemple avec get_loaded_extensions()

<?php
print_r(get_loaded_extensions());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [0] => xml
   [1] => wddx
   [2] => standard
   [3] => session
   [4] => posix
   [5] => pgsql
   [6] => pcre
   [7] => gd
   [8] => ftp
   [9] => db
   [10] => calendar
   [11] => bcmath
)

Voir aussi

  • get_extension_funcs() - Liste les fonctions d'une extension
  • extension_loaded() - Détermine si une extension est chargée ou non
  • dl() - Charge une extension PHP à la volée
  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP


Retourne la configuration actuelle de l'option magic_quotes_gpc

  • « get_loaded_extensions
  • get_magic_quotes_runtime »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne la configuration actuelle de l'option magic_quotes_gpc

get_magic_quotes_gpc

(PHP 4, PHP 5, PHP 7)

get_magic_quotes_gpc — Retourne la configuration actuelle de l'option magic_quotes_gpc

Description

bool get_magic_quotes_gpc ( void )

Retourne la configuration actuelle de l'option magic_quotes_gpc

Gardez en tête que vous ne pouvez pas définir magic_quotes_gpc au moment de l'exécution.

Pour plus d'informations sur magic_quotes, voir la section sur les guillemets magiques.

Valeurs de retour

Retourne 0 si magic_quotes_gpc est désactivée, 1 sinon. Retourne FALSE depuis PHP 5.4.0.

Historique

Version | Description
5.4.0 | Retourne toujours FALSE car la fonctionalité des guillemets magiques a été supprimée de PHP.

Exemples

Exemple #1 Exemple avec get_magic_quotes_gpc()

<?php
// Si les guillemets magiques sont actifs
echo $_POST['lastname'];             // O\'reilly
echo addslashes($_POST['lastname']); // O\\\'reilly

// Utilisation pour toutes les versions de PHP
if (get_magic_quotes_gpc()) {
    $lastname = stripslashes($_POST['lastname']);
}
else {
    $lastname = $_POST['lastname'];
}

// Si vous utilisez MySQL
$lastname = mysql_real_escape_string($lastname);

echo $lastname; // O\'reilly
$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
?>

Notes

Note:

Si la directive magic_quotes_sybase est activée, elle remplacera complètement magic_quotes_gpc. Ce qui fait que même si get_magic_quotes_gpc() retourne TRUE les guillemets doubles, les antislashs ou les caractères NULL ne seront pas protégés. Seul les guillemets simples le seront. Dans ce cas, ils ressembleront à ''.

Voir aussi

  • addslashes() - Ajoute des antislashs dans une chaîne
  • stripslashes() - Supprime les antislashs d'une chaîne
  • get_magic_quotes_runtime() - Retourne la configuration actuelle de l'option magic_quotes_runtime
  • ini_get() - Lit la valeur d'une option de configuration


Retourne la configuration actuelle de l'option magic_quotes_runtime

  • « get_magic_quotes_gpc
  • get_required_files »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne la configuration actuelle de l'option magic_quotes_runtime

get_magic_quotes_runtime

(PHP 4, PHP 5, PHP 7)

get_magic_quotes_runtime — Retourne la configuration actuelle de l'option magic_quotes_runtime

Description

bool get_magic_quotes_runtime ( void )

Retourne la configuration actuelle de l'option magic_quotes_runtime.

Valeurs de retour

Retourne 0 si magic_quotes_runtime est désactivée, 1 sinon. Retourne toujours FALSE depuis PHP 5.4.0.

Historique

Version | Description
5.4.0 | Retourne toujours FALSE car la fonctionalité des guillemets magiques a été supprimée de PHP.

Exemples

Exemple #1 Exemple avec get_magic_quotes_runtime()

<?php
// Vérifie si magic_quotes_runtime est activé
if(get_magic_quotes_runtime())
{
    // Désactivation
    set_magic_quotes_runtime(false);
}
?>

Voir aussi

  • get_magic_quotes_gpc() - Retourne la configuration actuelle de l'option magic_quotes_gpc
  • set_magic_quotes_runtime() - Active/désactive l'option magic_quotes_runtime


Alias de get_included_files

  • « get_magic_quotes_runtime
  • get_resources »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Alias de get_included_files

get_required_files

(PHP 4, PHP 5, PHP 7)

get_required_files — Alias de get_included_files()

Description

Cette fonction est un alias de : get_included_files().


Returns active resources

  • « get_required_files
  • getenv »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Returns active resources

get_resources

(PHP 7)

get_resources — Returns active resources

Description

array get_resources ([ string $type ] )

Returns an array of all currently active resources, optionally filtered by resource type.

Liste de paramètres

type

If defined, this will cause get_resources() to only return resources of the given type. A list of resource types is available.

If the string Unknown is provided as the type, then only resources that are of an unknown type will be returned.

If omitted, all resources will be returned.

Valeurs de retour

Returns an array of currently active resources, indexed by resource number.

Exemples

Exemple #1 Unfiltered get_resources()

<?php
$fp = tmpfile();
var_dump(get_resources());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [1]=>
  resource(1) of type (stream)
}

Exemple #2 Filtered get_resources()

<?php
$fp = tmpfile();
var_dump(get_resources('stream'));
var_dump(get_resources('curl'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [1]=>
  resource(1) of type (stream)
}
array(0) {
}

Voir aussi

  • get_loaded_extensions() - Retourne la liste de tous les modules compilés et chargés
  • get_defined_constants() - Retourne la liste des constantes et leurs valeurs
  • get_defined_functions() - Liste toutes les fonctions définies
  • get_defined_vars() - Liste toutes les variables définies


Retourne la valeur d'une variable d'environnement

  • « get_resources
  • getlastmod »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne la valeur d'une variable d'environnement

getenv

(PHP 4, PHP 5, PHP 7)

getenv — Retourne la valeur d'une variable d'environnement

Description

string getenv ( string $varname )

Retourne la valeur d'une variable d'environnement.

Vous pouvez voir une liste complète des variables d'environnement en utilisant la fonction phpinfo(). Vous pouvez trouver la signification de chacune d'entre elles en consultant la » RFC 3875, en particulier la section 4.1 "Request Meta-Variables".

Liste de paramètres

varname

Le nom de la variable.

Valeurs de retour

Retourne la valeur de la variable d'environnement varname, ou FALSE si la variable d'environnement varname n'existe pas.

Exemples

Exemple #1 Exemple avec getenv()

<?php
// Exemple d'utilisation de getenv()
$ip = getenv('REMOTE_ADDR');

// Ou utilisez simplement une Superglobale ($_SERVER ou $_ENV)
$ip = $_SERVER['REMOTE_ADDR'];
?>

Voir aussi

  • putenv() - Fixe la valeur d'une variable d'environnement
  • apache_getenv() - Lit une variable de processus Apache
  • Superglobales


Retourne la date de dernière modification de la page

  • « getenv
  • getmygid »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne la date de dernière modification de la page

getlastmod

(PHP 4, PHP 5, PHP 7)

getlastmod — Retourne la date de dernière modification de la page

Description

int getlastmod ( void )

Retourne la date de dernière modification du script principal en exécution.

Si vous voulez récupérer la date de la dernière modification d'un fichier différent, utilisez la fonction filemtime().

Valeurs de retour

Retourne la date de dernière modification de la page. La valeur retournée est un timestamp UNIX, utilisable comme paramètre avec la fonction date(). Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec getlastmod()

<?php
// affiche par exemple 'Dernière modification: April 20 2004 20:43:59.'
echo "Dernière modification : " . date ("F d Y H:i:s.", getlastmod());
?>

Voir aussi

  • date() - Formate une date/heure locale
  • getmyuid() - Retourne l'UID du propriétaire du script actuel
  • getmygid() - Retourne le GID du propriétaire du script
  • get_current_user() - Retourne le nom du possesseur du script courant
  • getmyinode() - Retourne l'inode du script
  • getmypid() - Retourne le numéro de processus courant de PHP
  • filemtime() - Lit la date de dernière modification du fichier


Retourne le GID du propriétaire du script

  • « getlastmod
  • getmyinode »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne le GID du propriétaire du script

getmygid

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

getmygid — Retourne le GID du propriétaire du script

Description

int getmygid ( void )

Retourne le GID du propriétaire du script.

Valeurs de retour

Retourne le GID du propriétaire du script courant, ou FALSE si une erreur survient.

Voir aussi

  • getmyuid() - Retourne l'UID du propriétaire du script actuel
  • getmypid() - Retourne le numéro de processus courant de PHP
  • get_current_user() - Retourne le nom du possesseur du script courant
  • getmyinode() - Retourne l'inode du script
  • getlastmod() - Retourne la date de dernière modification de la page


Retourne l'inode du script

  • « getmygid
  • getmypid »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne l'inode du script

getmyinode

(PHP 4, PHP 5, PHP 7)

getmyinode — Retourne l'inode du script

Description

int getmyinode ( void )

Retourne l'inode du script courant.

Valeurs de retour

Retourne l'inode du script courant, sous la forme d'un entier, ou FALSE si une erreur survient.

Voir aussi

  • getmygid() - Retourne le GID du propriétaire du script
  • getmyuid() - Retourne l'UID du propriétaire du script actuel
  • getmypid() - Retourne le numéro de processus courant de PHP
  • get_current_user() - Retourne le nom du possesseur du script courant
  • getlastmod() - Retourne la date de dernière modification de la page


Retourne le numéro de processus courant de PHP

  • « getmyinode
  • getmyuid »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne le numéro de processus courant de PHP

getmypid

(PHP 4, PHP 5, PHP 7)

getmypid — Retourne le numéro de processus courant de PHP

Description

int getmypid ( void )

Retourne le numéro de processus courant de PHP.

Valeurs de retour

Retourne le numéro de processus courant de PHP, ou FALSE si une erreur survient.

Notes

Avertissement

Les identifiants de processus ne sont pas uniques, et forment une source d'entropie faible. Nous recommandons de ne pas utiliser les pid pour assurer la sécurité d'un système.

Voir aussi

  • getmygid() - Retourne le GID du propriétaire du script
  • getmyuid() - Retourne l'UID du propriétaire du script actuel
  • get_current_user() - Retourne le nom du possesseur du script courant
  • getmyinode() - Retourne l'inode du script
  • getlastmod() - Retourne la date de dernière modification de la page


Retourne l'UID du propriétaire du script actuel

  • « getmypid
  • getopt »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne l'UID du propriétaire du script actuel

getmyuid

(PHP 4, PHP 5, PHP 7)

getmyuid — Retourne l'UID du propriétaire du script actuel

Description

int getmyuid ( void )

Retourne l'UID du propriétaire du script actuel.

Valeurs de retour

Retourne l'identifiant du propriétaire du script actuel (UID) ou FALSE en cas d'erreur.

Voir aussi

  • getmygid() - Retourne le GID du propriétaire du script
  • getmypid() - Retourne le numéro de processus courant de PHP
  • get_current_user() - Retourne le nom du possesseur du script courant
  • getmyinode() - Retourne l'inode du script
  • getlastmod() - Retourne la date de dernière modification de la page


Lit des options passées dans la ligne de commande

  • « getmyuid
  • getrusage »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Lit des options passées dans la ligne de commande

getopt

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

getopt — Lit des options passées dans la ligne de commande

Description

array getopt ( string $options [, array $longopts ] )

getopt() lit les options passées dans la ligne de commande.

Liste de paramètres

options
Chaque caractère dans cette chaîne sera utilisé en tant que caractères optionnels et devra correspondre aux options passées, commençant par un tiret simple (-). Par exemple, une chaîne optionnelle "x" correspondra à l'option -x. Seuls a-z, A-Z et 0-9 sont autorisés.
longopts
Un tableau d'options. Chaque élément de ce tableau sera utilisé comme option et devra correspondre aux options passées, commençant par un tiret double (--). Par exemple, un élément longopts "opt" correspondra à l'option --opt.

Le paramètre options peut contenir les éléments suivants :

  • Caractères individuels (n'accepte pas de valeur)
  • Caractères suivis par un deux-points (le paramètre nécessite une valeur)
  • Caractères suivis par deux deux-points (valeur optionnelle)
Les valeurs optionnelles sont les premiers arguments après la chaîne. Si une valeur est requise, peu importe que la valeur soit suivi d'un espace ou non. Voir la note.

Note: Les valeurs optionnelles n'acceptent pas l'espace comme séparateur.

Note:

Le format des paramètres options et longopts est identique ; la seule différence est que longopts prend un tableau en option (où chaque élément est une option) alors que options prend une chaîne (où chaque caractère est une option).

Valeurs de retour

Cette fonction retourne un tableau d'options/arguments, ou FALSE si une erreur survient.

Note:

L'analyse des options s'arrêtera lorsque la première mauvaise option sera trouvée, et tout ce qui suivra sera ignoré.

Historique

Version | Description
5.3.0 | Ajout du support de "=" comme séparateur argument/valeur.
5.3.0 | Ajout du support des valeurs optionnelles (spécifié par "::").
5.3.0 | Le paramètre longopts est disponible sur tous les systèmes.
5.3.0 | Cette fonction n'est plus dépendante du système et fonctionne maintenant également sous Windows.

Exemples

Exemple #1 Exemple avec getopt() : les bases

<?php
// Script example.php
$options = getopt("f:hp:");
var_dump($options);
?>
shell> php example.php -fvalue -h

L'exemple ci-dessus va afficher :

array(2) {
  ["f"]=>
  string(5) "value"
  ["h"]=>
  bool(false)
}

Exemple #2 Second exemple avec getopt() : Introduction aux options longues

<?php
// Script example.php
$shortopts  = "";
$shortopts .= "f:";  // Valeur requise
$shortopts .= "v::"; // Valeur optionnelle
$shortopts .= "abc"; // Ces options n'acceptent pas de valeur

$longopts  = array(
    "required:",     // Valeur requise
    "optional::",    // Valeur optionnelle
    "option",        // Aucune valeur
    "opt",           // Aucune valeur
);
$options = getopt($shortopts, $longopts);
var_dump($options);
?>
shell> php example.php -f "value for f" -v -a --required value --optional="optional value" --option

L'exemple ci-dessus va afficher :

array(6) {
  ["f"]=>
  string(11) "value for f"
  ["v"]=>
  bool(false)
  ["a"]=>
  bool(false)
  ["required"]=>
  string(5) "value"
  ["optional"]=>
  string(14) "optional value"
  ["option"]=>
  bool(false)
}

Exemple #3 Troisième exemple avec getopt() : Passage de plusieurs options

<?php
// Script example.php
$options = getopt("abc");
var_dump($options);
?>
shell> php example.php -aaac

L'exemple ci-dessus va afficher :

array(2) {
  ["a"]=>
  array(3) {
    [0]=>
    bool(false)
    [1]=>
    bool(false)
    [2]=>
    bool(false)
  }
  ["c"]=>
  bool(false)
}

Voir aussi

  • $argv


Retourne le niveau d'utilisation des ressources

  • « getopt
  • ini_alter »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne le niveau d'utilisation des ressources

getrusage

(PHP 4, PHP 5, PHP 7)

getrusage — Retourne le niveau d'utilisation des ressources

Description

array getrusage ([ int $who = 0 ] )

C'est une interface à la fonction système getrusage(2). Elle retourne un tableau associatif contenant les informations renvoyées par cet appel système.

Liste de paramètres

who

Si who est égal à 1, getrusage() sera appelé avec le paramètre RUSAGE_CHILDREN.

Valeurs de retour

Retourne un tableau associatif contenant les données retournées depuis l'appel système. Toutes les entrées sont accessibles en utilisant leurs noms de champs documentés.

Exemples

Exemple #1 Exemple avec getrusage()

<?php
$dat = getrusage();
echo $dat["ru_nswap"];         // Taille de la mémoire swap
echo $dat["ru_majflt"];        // Nombre de pages mémoires utilisées
echo $dat["ru_utime.tv_sec"];  // Temps utilisateur (en secondes)
echo $dat["ru_utime.tv_usec"]; // Temps utilisateur (en microsecondes)
?>

Historique

Version | Description
7.0.0 | Cette fonction est maintenant supportée sous Windows.

Notes

Note:

Sous Windows, la fonction getrusage() ne va retourner que les membres suivants :

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"
  • "ru_majflt" (seulement si who vaut RUSAGE_SELF)
  • "ru_maxrss" (seulement si who vaut RUSAGE_SELF)

Si getrusage() est appelé avec le paramètre who vallant 1 (RUSAGE_CHILDREN), alors l'utilisation de la ressource pour les threads sont collectés (ce qui signifie que, en interne, la fonction est appelée avec RUSAGE_THREAD).

Note:

Sous BeOS 2000, seuls les membres suivants sont retournés :

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"

Voir aussi

  • La page de manuel getrusage(2) de votre système


Alias de ini_set

  • « getrusage
  • ini_get_all »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Alias de ini_set

ini_alter

(PHP 4, PHP 5, PHP 7)

ini_alter — Alias de ini_set()

Description

Cette fonction est un alias de : ini_set().


Lit toutes les valeurs de configuration

  • « ini_alter
  • ini_get »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Lit toutes les valeurs de configuration

ini_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ini_get_all — Lit toutes les valeurs de configuration

Description

array ini_get_all ([ string $extension [, bool $details = true ]] )

Lit toutes les valeurs de configuration.

Liste de paramètres

extension

Un nom d'extension, optionnel. S'il est défini, la fonction retournera uniquement les options spécifiques à cette extension.

details

Récupère les détails, ou uniquement la valeur courante de chaque configuration. Par défaut, vaut TRUE (récupère les détails).

Valeurs de retour

Retourne un tableau associatif dont les clés sont les noms des directives.

Lorsque le paramètre details vaut TRUE (défaut), le tableau contiendra les valeurs global_value (définies dans le fichier php.ini), local_value (définie éventuellement avec la fonction ini_set() ou via un .htaccess), et access (le degré d'accès).

Lorsque le paramètre details vaut FALSE, la valeur sera la valeur courant de l'option.

Voir le manuel pour plus d'informations sur la signification du degré d'accès.

Note:

Il est possible pour une directive d'avoir plusieurs degrés d'accès, et c'est la raison pour laquelle access montre les valeurs du masque appropriées.

Historique

Version | Description
5.3.0 | Ajout du paramètre details.

Exemples

Exemple #1 Exemple avec ini_get_all()

<?php
print_r(ini_get_all("pcre"));
print_r(ini_get_all());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [pcre.backtrack_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

    [pcre.recursion_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

)
Array
(
    [allow_call_time_pass_reference] => Array
        (
            [global_value] => 0
            [local_value] => 0
            [access] => 6
        )

    [allow_url_fopen] => Array
        (
            [global_value] => 1
            [local_value] => 1
            [access] => 4
        )

    ...

)

Exemple #2 Désactive le paramètre details

<?php
print_r(ini_get_all("pcre", false)); // Ajouté en PHP 5.3.0
print_r(ini_get_all(null, false)); // Ajouté en PHP 5.3.0
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [pcre.backtrack_limit] => 100000
    [pcre.recursion_limit] => 100000
)
Array
(
    [allow_call_time_pass_reference] => 0
    [allow_url_fopen] => 1
    ...
)

Voir aussi

  • Comment modifier la configuration
  • ini_get() - Lit la valeur d'une option de configuration
  • ini_restore() - Restaure la valeur de l'option de configuration
  • ini_set() - Modifie la valeur d'une option de configuration
  • get_loaded_extensions() - Retourne la liste de tous les modules compilés et chargés
  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP
  • ReflectionExtension::getINIEntries() - Récupère les entrées ini de l'extension


Lit la valeur d'une option de configuration

  • « ini_get_all
  • ini_restore »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Lit la valeur d'une option de configuration

ini_get

(PHP 4, PHP 5, PHP 7)

ini_get — Lit la valeur d'une option de configuration

Description

string ini_get ( string $varname )

Retourne la valeur de l'option de configuration varname en cas de succès.

Liste de paramètres

varname

Le nom de l'option de configuration.

Valeurs de retour

Retourne la valeur de l'option de configuration varname en cas de succès, ou une chaîne de caractères vide pour les valeurs NULL. Retourne FALSE si l'option de configuration n'existe pas.

Exemples

Exemple #1 Exemples avec ini_get()

<?php
/*
Notre fichier php.ini contient les directives suivantes :

display_errors = On
register_globals = Off
post_max_size = 8M
*/

echo 'display_errors = ' . ini_get('display_errors') . "\n";
echo 'register_globals = ' . ini_get('register_globals') . "\n";
echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));

function return_bytes($val) {
    $val = trim($val);
    $last = strtolower($val[strlen($val)-1]);
    switch($last) {
        // Le modifieur 'G' est disponible depuis PHP 5.1.0
        case 'g':
            $val *= 1024;
        case 'm':
            $val *= 1024;
        case 'k':
            $val *= 1024;
    }

    return $val;
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
post_max_size in bytes = 8388608

Notes

Note: Lecture de valeurs booléennes

Une directive de configuration ayant la valeur de off sera retourné sous la forme d'une chaîne vide ou "0" alors que la valeur on retournera "1". Cette fonction peut également retourner la valeur littérale du fichier INI.

Note: Lors de la lecture des tailles de mémoire

Plusieurs directives traitant de taille mémoire, comme upload_max_filesize, sont stockées dans le fichier php.ini avec une notation courte. ini_get() retourne la chaîne exacte stockée dans le fichier php.ini et NON PAS son équivalent entier. Appliquer des opérations arithmétiques classiques sur ces valeurs ne conduira à rien de bon. L'exemple ci-dessous montre une façon de convertir la notation sténographique en octets, de la même façon dont le fait le source PHP.

Historique

Version | Description
5.3.0 | Précédemment, une chaîne vide était retournée si l'option de configuration n'existait pas. Maintenant, FALSE sera retourné dans ce cas.

Voir aussi

  • get_cfg_var() - Retourne la valeur d'une option de PHP
  • ini_get_all() - Lit toutes les valeurs de configuration
  • ini_restore() - Restaure la valeur de l'option de configuration
  • ini_set() - Modifie la valeur d'une option de configuration


Restaure la valeur de l'option de configuration

  • « ini_get
  • ini_set »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Restaure la valeur de l'option de configuration

ini_restore

(PHP 4, PHP 5, PHP 7)

ini_restore — Restaure la valeur de l'option de configuration

Description

void ini_restore ( string $varname )

Restaure la valeur originale de l'option de configuration varname.

Liste de paramètres

varname

Le nom de l'option de configuration.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ini_restore()

<?php
$setting = 'y2k_compliance';

echo 'Valeur courante de \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;

ini_set($setting, ini_get($setting) ? 0 : 1);
echo 'Nouvelle valeur de \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;

ini_restore($setting);
echo 'Valeur originale de \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;
?>

L'exemple ci-dessus va afficher :

Valeur courante de 'y2k_compliance': 1
Nouvelle valeur de 'y2k_compliance': 0
Valeur originale de 'y2k_compliance': 1

Voir aussi

  • ini_get() - Lit la valeur d'une option de configuration
  • ini_get_all() - Lit toutes les valeurs de configuration
  • ini_set() - Modifie la valeur d'une option de configuration


Modifie la valeur d'une option de configuration

  • « ini_restore
  • magic_quotes_runtime »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Modifie la valeur d'une option de configuration

ini_set

(PHP 4, PHP 5, PHP 7)

ini_set — Modifie la valeur d'une option de configuration

Description

string ini_set ( string $varname , string $newvalue )

Change la valeur de l'option de configuration varname et lui donne celle de newvalue. La valeur de l'option de configuration sera modifiée durant toute l'exécution du script et pour ce script spécifiquement. Elle reprendra sa valeur par défaut dès la fin du script.

Liste de paramètres

varname

Les options disponibles ne peuvent pas toutes être modifiées avec ini_set(). La liste de toutes les options disponibles se trouve dans l'annexe.

newvalue

La nouvelle valeur pour l'option.

Valeurs de retour

Retourne l'ancienne valeur en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Définit une option de configuration

<?php
echo ini_get('display_errors');

if (!ini_get('display_errors')) {
    ini_set('display_errors', '1');
}

echo ini_get('display_errors');
?>

Voir aussi

  • get_cfg_var() - Retourne la valeur d'une option de PHP
  • ini_get() - Lit la valeur d'une option de configuration
  • ini_get_all() - Lit toutes les valeurs de configuration
  • ini_restore() - Restaure la valeur de l'option de configuration
  • Comment modifier la configuration


Alias de set_magic_quotes_runtime

  • « ini_set
  • main »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Alias de set_magic_quotes_runtime

magic_quotes_runtime

(PHP 4, PHP 5)

magic_quotes_runtime — Alias de set_magic_quotes_runtime()

Avertissement

Cette alias était obsolète depuis PHP 5.3.0 et a été supprimé depuis PHP 7.0.0.

Description

Cette fonction est un alias de : set_magic_quotes_runtime()


Fausse documentation pour main

  • « magic_quotes_runtime
  • memory_get_peak_usage »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Fausse documentation pour main

main

main — Fausse documentation pour main()

Description

Il n'y a pas de fonction appelée main(), hormis dans les sources PHP. En PHP 4.3.0, un nouveau type de gestion d'erreur a été introduit dans les sources de PHP : php_error_docref. Une des fonctionnalité était de fournir un lien vers la page de manuel de PHP lorsque les directives html_errors (par défaut) et docref_root (par défaut jusqu'en PHP 4.3.2) sont activées.

Certains messages d'erreur faisaient référence à une page de manuel pour la fonction main() alors que cette page n'existe pas. Ajoutez alors un » rapport de bug, en anglais, où vous mentionnez la fonction PHP vous ayant conduite sur cette page. Cette erreur sera corrigée et documentée.

Erreurs connues pour diriger sur la page main()
Nom de la fonction | Ne pointe plus sur cette page depuis la version
include | 5.1.0
include_once | 5.1.0
require | 5.1.0
require_once | 5.1.0

Voir aussi

  • html_errors
  • display_errors


Retourne la quantité de mémoire maximale allouée par PHP

  • « main
  • memory_get_usage »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne la quantité de mémoire maximale allouée par PHP

memory_get_peak_usage

(PHP 5 >= 5.2.0, PHP 7)

memory_get_peak_usage — Retourne la quantité de mémoire maximale allouée par PHP

Description

int memory_get_peak_usage ([ bool $real_usage = false ] )

Retourne la quantité de mémoire maximale, en octets, qui a été allouée à votre script PHP.

Liste de paramètres

real_usage

Définir à TRUE pour récupérer la taille réelle de la mémoire allouée par le système. Si ce paramètre n'est pas défini ou vaut FALSE, seule la mémoire utilisée par emalloc() sera retournée.

Valeurs de retour

Retourne la quantité de mémoire, en octets.

Historique

Version | Description
5.2.1 | La compilation avec l'option de configuration --enable-memory-limit n'est plus nécessaire pour que cette fonction existe.
5.2.0 | Le paramètre real_usage a été ajouté.

Voir aussi

  • memory_get_usage() - Indique la quantité de mémoire utilisée par PHP
  • memory_limit


Indique la quantité de mémoire utilisée par PHP

  • « memory_get_peak_usage
  • php_ini_loaded_file »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Indique la quantité de mémoire utilisée par PHP

memory_get_usage

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

memory_get_usage — Indique la quantité de mémoire utilisée par PHP

Description

int memory_get_usage ([ bool $real_usage = false ] )

Retourne la quantité de mémoire allouée à PHP à cet instant.

Liste de paramètres

real_usage

Définir à TRUE pour récupérer la taille réelle de la mémoire allouée par le système. Si ce paramètre n'est pas défini ou vaut FALSE, seule la mémoire utilisée par emalloc() sera retournée.

Valeurs de retour

Retourne la quantité de mémoire, en octets.

Historique

Version | Description
5.2.1 | La compilation avec l'option de configuration --enable-memory-limit n'est plus nécessaire pour que cette fonction existe.
5.2.0 | Le paramètre real_usage a été ajouté.

Exemples

Exemple #1 Exemple avec memory_get_usage()

<?php
// Ceci n'est qu'un exemple. Les chiffres ci-dessous
// différeront suivant les systèmes et les configurations

echo memory_get_usage() . "\n"; // 36640

$a = str_repeat("Hello", 4242);

echo memory_get_usage() . "\n"; // 57960

unset($a);

echo memory_get_usage() . "\n"; // 36744

?>

Voir aussi

  • memory_get_peak_usage() - Retourne la quantité de mémoire maximale allouée par PHP
  • memory_limit


Récupère le chemin d'un fichier php.ini chargé

  • « memory_get_usage
  • php_ini_scanned_files »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Récupère le chemin d'un fichier php.ini chargé

php_ini_loaded_file

(PHP 5 >= 5.2.4, PHP 7)

php_ini_loaded_file — Récupère le chemin d'un fichier php.ini chargé

Description

string php_ini_loaded_file ( void )

Vérifie si un fichier php.ini est chargé, et récupère son chemin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le chemin du fichier php.ini chargé, ou FALSE si aucun n'a été chargé.

Exemples

Exemple #1 Exemple avec php_ini_loaded_file()

<?php
$inipath = php_ini_loaded_file();

if ($inipath) {
    echo 'php.ini chargé : ' . $inipath;
} else {
    echo 'Aucun fichier php.ini n\'a été chargé';
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

php.ini chargé : /usr/local/php/php.ini

Voir aussi

  • php_ini_scanned_files() - Retourne la liste des fichiers .ini analysés dans les dossiers de configuration supplémentaires
  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP
  • Le fichier de configuration


Retourne la liste des fichiers .ini analysés dans les dossiers de configuration supplémentaires

  • « php_ini_loaded_file
  • php_logo_guid »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne la liste des fichiers .ini analysés dans les dossiers de configuration supplémentaires

php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

php_ini_scanned_files — Retourne la liste des fichiers .ini analysés dans les dossiers de configuration supplémentaires

Description

string php_ini_scanned_files ( void )

php_ini_scanned_files() retourne une liste de noms de fichiers de configuration analysés, en plus de php.ini. Cette liste est au format CSV. Ces fichiers sont situés dans un dossier défini par l'option --with-config-file-scan-dir , définie au moment de la compilation.

Les fichiers retournés incluent le chemin, comme déclaré dans la directive --with-config-file-scan-dir . De plus, chaque virgule est suivie d'une nouvelle ligne.

Valeurs de retour

Retourne une chaîne de caractères, où les noms de fichiers sont séparés par des virgules. Si --with-config-file-scan-dir n'était pas configuré, FALSE est retourné. Si cette option était configurée, mais que le dossier était vide, une chaîne vide est retournée. Si un fichier n'est pas lisible, le nom du fichier sera inclus dans la liste, mais une erreur sera générée. Cette erreur sera visible au moment de la compilation, et lorsque vous appellerez la fonction php_ini_scanned_files().

Exemples

Exemple #1 Un exemple de liste retournée par php_ini_scanned_files()

<?php
if ($filelist = php_ini_scanned_files()) {
    if (strlen($filelist) > 0) {
        $files = explode(',', $filelist);

        foreach ($files as $file) {
            echo "<li>" . trim($file) . "</li>\n";
        }
    }
}
?>

Voir aussi

  • ini_set() - Modifie la valeur d'une option de configuration
  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP
  • php_ini_loaded_file() - Récupère le chemin d'un fichier php.ini chargé


Retourne l'identifiant du logo PHP

  • « php_ini_scanned_files
  • php_sapi_name »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne l'identifiant du logo PHP

php_logo_guid

(PHP 4, PHP 5 < 5.5)

php_logo_guid — Retourne l'identifiant du logo PHP

Description

string php_logo_guid ( void )

Cette fonction retourne l'identifiant qui peut être utilisé pour afficher le logo PHP en utilisant une image incorporée dans les sources. Le logo est affiché uniquement si expose_php vaut On.

Avertissement

Cette fonction est obsolète et a été supprimée depuis PHP 5.5.0.

Valeurs de retour

Retourne PHPE9568F34-D428-11d2-A769-00AA001ACF42.

Historique

Version | Description
5.5.0 | php_logo_guid() a été supprimé de PHP.

Exemples

Exemple #1 Exemple avec php_logo_guid()

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . php_logo_guid() . '" alt="Logo PHP !" />';

?>

Voir aussi

  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP
  • phpversion() - Retourne le numéro de la version courante de PHP
  • phpcredits() - Affiche les crédits de PHP
  • zend_logo_guid() - Retourne le logo de Zend


Retourne le type d'interface utilisée entre le serveur web et PHP

  • « php_logo_guid
  • php_uname »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne le type d'interface utilisée entre le serveur web et PHP

php_sapi_name

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

php_sapi_name — Retourne le type d'interface utilisée entre le serveur web et PHP

Description

string php_sapi_name ( void )

Retourne une chaîne en minuscule qui décrit le type d'interface (l'API, SAPI serveur) que PHP utilise. Par exemple, en PHP CLI, cette chaîne sera "cli" tandis qu'avec Apache, elle pourra avoir plusieurs valeurs différentes suivant le SAPI exact utilisé. Les valeurs possibles sont listées ci-dessous.

Valeurs de retour

Retourne le type de l'interface, sous la forme d'une chaîne de caractères en minuscule.

Voici une liste non exhaustive des valeurs possibles : aolserver, apache, apache2filter, apache2handler, caudium, cgi (jusqu'en PHP 5.3), cgi-fcgi, cli, cli-server, continuity, embed, fpm-fcgi, isapi, litespeed, milter, nsapi, phttpd, pi3web, roxen, thttpd, tux et webjames.

Exemples

Exemple #1 Exemple avec php_sapi_name()

Cet exemple cherche la sous-chaîne cgi car elle peut également valoir cgi-fcgi.

<?php
$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) == 'cgi') {
    echo "Vous utilisez CGI PHP\n";
} else {
    echo "Vous n'utilisez pas CGI PHP\n";
}
?>

Notes

Note: Une approche alternative

La constante PHP PHP_SAPI a une valeur identique à php_sapi_name().

Astuce

Un comportement inattendu

Le SAPI défini ne doit pas être ambigu, car par exemple, au lieu de apache, il peut être défini à apache2handler ou apache2filter.

Voir aussi

  • PHP_SAPI


Retourne les informations sur le système d'exploitation

  • « php_sapi_name
  • phpcredits »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne les informations sur le système d'exploitation

php_uname

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

php_uname — Retourne les informations sur le système d'exploitation

Description

string php_uname ([ string $mode = "a" ] )

php_uname() retourne une description sur le système d'exploitation sur lequel tourne PHP. C'est la même chaîne que celle que vous voyez en haut du phpinfo(). Si vous voulez juste savoir le nom du système d'exploitation, utilisez plutôt la constante PHP_OS mais gardez à l'esprit que cette constante contient le nom du système sur lequel PHP a été compilé.

Sur certaines vieilles plate-formes Unix, il n'est pas possible de déterminer les informations courantes de l'OS, auquel cas cette fonction se contente de retourner le nom de l'OS sur lequel PHP a été compilé. Cela n'arrivera que si votre bibliothèque uname() n'existe pas ou ne fonctionne pas.

Liste de paramètres

mode

mode est un seul caractère qui définit quelles seront les informations à retourner :

  • 'a': par défaut, contient tous les modes de la séquence "s n r v m".
  • 's': nom du système d'exploitation. Par exemple, FreeBSD.
  • 'n': nom de l'hôte. Par exemple, localhost.example.com.
  • 'r': nom de la version. Par exemple, 5.1.2-RELEASE.
  • 'v': information sur la version. Varie énormément suivant le système d'exploitation.
  • 'm': type de la machine. Par exemple, i386.

Valeurs de retour

Retourne la description, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemples avec php_uname()

<?php
echo php_uname();
echo PHP_OS;

/* Affichages possibles :
Linux localhost 2.4.21-0.13mdk #1 Fri Mar 14 15:08:06 EST 2003 i686
Linux

FreeBSD localhost 3.2-RELEASE #15: Mon Dec 17 08:46:02 GMT 2001
FreeBSD

Windows NT XN1 5.1 build 2600
WINNT
*/

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    echo 'Le serveur tourne sous Windows !';
} else {
    echo 'Le serveur ne tourne pas sous Windows !';
}

?>

Il existe aussi des constantes PHP pré-définies liées qui peuvent s'avérer utiles, par exemple :

Exemple #2 Exemples avec quelques constantes liées au système

<?php
// *nix
echo DIRECTORY_SEPARATOR; // /
echo PHP_SHLIB_SUFFIX;    // so
echo PATH_SEPARATOR;      // :

// Win*
echo DIRECTORY_SEPARATOR; // \
echo PHP_SHLIB_SUFFIX;    // dll
echo PATH_SEPARATOR;      // ;
?>

Voir aussi

  • phpversion() - Retourne le numéro de la version courante de PHP
  • php_sapi_name() - Retourne le type d'interface utilisée entre le serveur web et PHP
  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP


Affiche les crédits de PHP

  • « php_uname
  • phpinfo »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Affiche les crédits de PHP

phpcredits

(PHP 4, PHP 5, PHP 7)

phpcredits — Affiche les crédits de PHP

Description

bool phpcredits ([ int $flag = CREDITS_ALL ] )

Affiche la liste des développeurs PHP, des modules, etc. Elle génère le code HTML approprié pour insérer les informations dans une page.

Liste de paramètres

flag

Pour générer une page personnalisée sur les crédits, il faut utiliser le paramètre flag.

Paramètres prédéfinis de phpcredits()
Nom | Description
CREDITS_ALL | Tous les crédits, équivalent à : CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_FULLPAGE. La fonction génère alors une page HTML complète.
CREDITS_DOCS | Les crédits du groupe de documentation
CREDITS_FULLPAGE | En général, ce paramètre est utilisé avec d'autres constantes. Il indique que la page ainsi générée doit être une page HTML complète, avec toutes les balises nécessaires.
CREDITS_GENERAL | Crédits Généraux : conception et design du langage, auteurs de PHP et du module SAPI.
CREDITS_GROUP | Une liste des développeurs principaux
CREDITS_MODULES | Une liste des extensions de PHP, et leurs auteurs
CREDITS_SAPI | Une liste des API serveur pour PHP et leurs auteurs

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec phpcredits()

<?php
phpcredits(CREDITS_GENERAL);
?>

Exemple #2 Affiche les développeurs principaux ansi que le groupe de documentation

<?php
phpcredits(CREDITS_GROUP | CREDITS_DOCS | CREDITS_FULLPAGE);
?>

Exemple #3 Affiche tous les crédits

<html>
 <head>
  <title>Ma page de crédits</title>
 </head>
 <body>
<?php
// Un peu de votre code
phpcredits(CREDITS_ALL - CREDITS_FULLPAGE);
// Encore un peu de votre code
?>
 </body>
</html>

Notes

Note:

La fonction phpcredits() affiche du texte plein au lieu du HTML lorsqu'elle est utilisée en mode CLI.

Voir aussi

  • phpversion() - Retourne le numéro de la version courante de PHP
  • php_logo_guid() - Retourne l'identifiant du logo PHP
  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP


Affiche de nombreuses informations sur la configuration de PHP

  • « phpcredits
  • phpversion »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Affiche de nombreuses informations sur la configuration de PHP

phpinfo

(PHP 4, PHP 5, PHP 7)

phpinfo — Affiche de nombreuses informations sur la configuration de PHP

Description

bool phpinfo ([ int $what = INFO_ALL ] )

Affiche de nombreuses informations sur PHP, concernant sa configuration courante : options de compilation, extensions, version, informations sur le serveur, et l'environnement (lorsqu'il est compilé comme module), environnement PHP, informations sur le système, chemins, valeurs générales et locales de configuration, en-têtes HTTP et la licence PHP.

Comme tous les systèmes sont configurés différemment, phpinfo() sert généralement à vérifier la configuration ainsi que les variables prédéfinies, pour une plate-forme donnée.

phpinfo() est un bon outil de débogage, car il affiche le contenu de toutes les variables EGPCS (Environnement, GET, POST, Cookie, Serveur).

Liste de paramètres

what

L'affichage peut être personnalisé en utilisant une ou plusieurs des constantes suivantes. Elles sont combinables avec l'opérateur or, et doivent être passées dans le paramètre what. Vous pouvez aussi additionner ces constantes.

Options de phpinfo()
Nom de la constante | Valeur | Description
INFO_GENERAL | 1 | La ligne de configuration, le chemin du php.ini, la date de compilation, le serveur web, le système, etc.
INFO_CREDITS | 2 | Les crédits de PHP. Voir aussi phpcredits().
INFO_CONFIGURATION | 4 | Valeurs courantes locales et générales des directives PHP. Voyez aussi la fonction ini_get().
INFO_MODULES | 8 | Modules chargés et leur configuration spécifique. Voir aussi la fonction get_loaded_extensions().
INFO_ENVIRONMENT | 16 | Informations sur les variables d'environnement, qui sont disponibles dans la variable $_ENV.
INFO_VARIABLES | 32 | Affiche toutes les variables prédéfinies, issues de l'environnement, la méthode GET, la méthode POST, les cookies et le serveur.
INFO_LICENSE | 64 | La licence PHP. Voir aussi » la FAQ de la licence.
INFO_ALL | -1 | Affiche toutes les informations suscitées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.5.0 | Le logo GUIDs a été remplacé par son URI ; aussi, la désactivation de expose_php n'a pas d'effet sur le résultat de la fonction phpinfo(). Les crédits sont également maintenant inclus dans l'affichage au lieu d'être simplement liés.
5.2.2 | L'information "Loaded Configuration File" a été ajoutée, alors qu'avant, seule l'information "Configuration File (php.ini) Path" existait.

Exemples

Exemple #1 Exemple avec phpinfo()

<?php

// Affiche toutes les informations, comme le ferait INFO_ALL
phpinfo();

// Affiche uniquement le module d'information.
// phpinfo(8) fournirait les mêmes informations.
phpinfo(INFO_MODULES);

?>

Notes

Note:

Dans les versions antérieures à PHP 5.5, une partie des informations affichées sont désactivées si la directive expose_php est configurée avec la valeur off. Cela inclut les logos PHP et Zend, ainsi que les crédits.

Note:

phpinfo() affiche du texte au lieu de HTML lorsque vous utilisez la version CLI.

Voir aussi

  • phpversion() - Retourne le numéro de la version courante de PHP
  • phpcredits() - Affiche les crédits de PHP
  • php_logo_guid() - Retourne l'identifiant du logo PHP
  • ini_get() - Lit la valeur d'une option de configuration
  • ini_set() - Modifie la valeur d'une option de configuration
  • get_loaded_extensions() - Retourne la liste de tous les modules compilés et chargés
  • les variables prédéfinies


Retourne le numéro de la version courante de PHP

  • « phpinfo
  • putenv »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne le numéro de la version courante de PHP

phpversion

(PHP 4, PHP 5, PHP 7)

phpversion — Retourne le numéro de la version courante de PHP

Description

string phpversion ([ string $extension ] )

Retourne le numéro de la version courante de PHP.

Liste de paramètres

extension

Un nom d'extension, optionnel.

Valeurs de retour

Si le paramètre optionnel extension est spécifié, la fonction phpversion() retournera la version de cette extension ou FALSE s'il n'y a aucune information sur la version associée ou si cette extension n'est pas disponible.

Exemples

Exemple #1 Exemple avec phpversion()

<?php
// affiche le numéro de version courante du PHP.
echo 'Version PHP courante : ' . phpversion();

// affiche e.g. '2.0' ou rien du tout si cette extension n'est pas active
echo phpversion('tidy');
?>

Exemple #2 Exemple avec PHP_VERSION_ID

<?php
// PHP_VERSION_ID est disponible depuis PHP 5.2.7,
// si votre version est antérieure, émulez-le.
if (!defined('PHP_VERSION_ID')) {
   $version = explode('.',PHP_VERSION);

   define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));
}

// PHP_VERSION_ID est défini comme un nombre : plus il est grand, plus
// la version de PHP est récente. Il est défini comme illustré dans
// le code ci-dessous :
//
// $version_id = $major_version * 10000 + $minor_version * 100 + $release_version;
//
// Maintenant, avec PHP_VERSION_ID, il est possible de vérifier la disponibilité
// de fonctionnalités de PHP, sans passer par version_compare().
//
// Par exemple, on peut définir les constantes PHP_VERSION_* qui n'étaient pas
// disponibles avant 5.2.7

if (PHP_VERSION_ID < 50207) {
    define('PHP_MAJOR_VERSION',   $version[0]);
    define('PHP_MINOR_VERSION',   $version[1]);
    define('PHP_RELEASE_VERSION', $version[2]);

    // etc.

}
?>

Notes

Note:

Cette information est aussi disponible via la constante prédéfinie PHP_VERSION. Plus d'informations sur les versions, avec les constantes PHP_VERSION_*.

Voir aussi

  • les constantes PHP_VERSION
  • version_compare() - Compare deux chaînes de version au format des versions PHP
  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP
  • phpcredits() - Affiche les crédits de PHP
  • php_logo_guid() - Retourne l'identifiant du logo PHP
  • zend_version() - Lit la version courante du moteur Zend


Fixe la valeur d'une variable d'environnement

  • « phpversion
  • restore_include_path »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Fixe la valeur d'une variable d'environnement

putenv

(PHP 4, PHP 5, PHP 7)

putenv — Fixe la valeur d'une variable d'environnement

Description

bool putenv ( string $setting )

Fixe la valeur d'une variable d'environnement. Cette valeur n'existera que durant la vie du script courant, et l'environnement initial sera restauré lorsque le script sera terminé.

Modifier la valeur de certaines variables système peut être un trou de sécurité considérable. La directive de configuration safe_mode_allowed_env_vars contient une liste de préfixes, séparés par des virgules. Lorsque le Safe Mode est actif, l'utilisateur ne peut que modifier les variables dont le nom commence par les préfixes fournis par cette directive. Par défaut, les utilisateurs ne peuvent modifier que les variables qui commencent par PHP_ (i.e. PHP_FOO=BAR). Note : Si cette directive est vide, PHP autorisera la modification de TOUTES les variables d'environnement !

La directive de configuration safe_mode_protected_env_vars contient une liste de variables d'environnement, séparées par des virgules. Les utilisateurs ne pourront pas modifier ces variables avec la fonction putenv(). Ces variables seront protégées même si safe_mode_allowed_env_vars permet leur modification.

Liste de paramètres

setting

La configuration, comme "FOO=BAR"

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Modification d'une variable d'environnement

<?php
putenv("UNIQID=$uniqid");
?>

Notes

Avertissement

Les directives safe_mode_allowed_env_vars et safe_mode_protected_env_vars ne prennent effets que si le safe_mode est activé.

Voir aussi

  • getenv() - Retourne la valeur d'une variable d'environnement
  • apache_setenv() - Modifie une variable de processus Apache


Restaure la valeur de la directive de configuration include_path

  • « putenv
  • set_include_path »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Restaure la valeur de la directive de configuration include_path

restore_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

restore_include_path — Restaure la valeur de la directive de configuration include_path

Description

void restore_include_path ( void )

Restaure la valeur de la directive de configuration include_path à sa valeur originale de début de script, telle qu'inscrite dans le php.ini.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec restore_include_path()

<?php

echo get_include_path();  // .:/usr/local/lib/php

set_include_path('/inc');

echo get_include_path();  // /inc

// Fonctionne depuis PHP 4.3.0
restore_include_path();

// Fonctionne sur toutes les versions
ini_restore('include_path');

echo get_include_path();  // .:/usr/local/lib/php

?>

Voir aussi

  • ini_restore() - Restaure la valeur de l'option de configuration
  • get_include_path() - Lit la valeur de la directive de configuration include_path
  • set_include_path() - Modifie la valeur de la directive de configuration include_path
  • include - include


Modifie la valeur de la directive de configuration include_path

  • « restore_include_path
  • set_magic_quotes_runtime »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Modifie la valeur de la directive de configuration include_path

set_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

set_include_path — Modifie la valeur de la directive de configuration include_path

Description

string set_include_path ( string $new_include_path )

Modifie la valeur de la directive de configuration include_path, pour la durée du script en cours.

Liste de paramètres

new_include_path

La nouvelle valeur pour la directive de configuration include_path

Valeurs de retour

Retourne l'ancienne valeur de include_path en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec set_include_path()

<?php
// Fonctionne depuis PHP 4.3.0
set_include_path('/usr/lib/pear');

// Fonctionne sur toutes les versions
ini_set('include_path', '/usr/lib/pear');
?>

Exemple #2 Ajout dans le chemin d'inclusion

En utilisant la constante PATH_SEPARATOR, il est possible d'étendre le chemin d'inclusion au vu du système.

Dans cet exemple, nous ajoutons /usr/lib/pear à la fin de l'actuel include_path.

<?php
$path = '/usr/lib/pear';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
?>

Voir aussi

  • ini_set() - Modifie la valeur d'une option de configuration
  • get_include_path() - Lit la valeur de la directive de configuration include_path
  • restore_include_path() - Restaure la valeur de la directive de configuration include_path
  • include - include


Active/désactive l'option magic_quotes_runtime

  • « set_include_path
  • set_time_limit »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Active/désactive l'option magic_quotes_runtime

set_magic_quotes_runtime

(PHP 4, PHP 5)

set_magic_quotes_runtime — Active/désactive l'option magic_quotes_runtime

Avertissement

Cette fonction était obsolète depuis PHP 5.3.0 et a été supprimée depuis PHP 7.0.0.

Description

bool set_magic_quotes_runtime ( bool $new_setting )

Active/désactive l'option magic_quotes_runtime.

Erreurs / Exceptions

Depuis PHP 5.3, cette fonction est devenue obsolète et lancera une alerte de niveau E_DEPRECATED lors de son exécution. Depuis PHP 5.4, cette fonction va également lancer une alerte de niveau E_CORE_ERROR lors de la tentative d'activation des guillemets magiques.

Liste de paramètres

new_setting

0 l'option est désactivée, 1 l'option est activée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec set_magic_quotes_runtime()

<?php
// Création d'un pointeur de fichier temporaire
$fp = tmpfile();

// Écriture de quelques données dans ce pointeur
fwrite($fp, '\'PHP\' est un acronyme récursif');

// Sans magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(false);

echo 'Sans magic_quotes_runtime : ' . fread($fp, 64), PHP_EOL;

// Avec magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(true);

echo 'Avec magic_quotes_runtime : ' . fread($fp, 64), PHP_EOL;

// Clean up
fclose($fp);
?>

L'exemple ci-dessus va afficher :

Sans magic_quotes_runtime: 'PHP' est un acronyme récursif
Avec magic_quotes_runtime: \'PHP\' est un acronyme récursif

Voir aussi

  • get_magic_quotes_gpc() - Retourne la configuration actuelle de l'option magic_quotes_gpc
  • get_magic_quotes_runtime() - Retourne la configuration actuelle de l'option magic_quotes_runtime


Fixe le temps maximum d'exécution d'un script

  • « set_magic_quotes_runtime
  • sys_get_temp_dir »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Fixe le temps maximum d'exécution d'un script

set_time_limit

(PHP 4, PHP 5, PHP 7)

set_time_limit — Fixe le temps maximum d'exécution d'un script

Description

bool set_time_limit ( int $seconds )

Fixe le délai d'expiration d'un script, en secondes. Si cette limite est atteinte, le script s'interrompt, et renvoie une erreur fatale. La valeur par défaut est 30 secondes ou, si c'est le cas, la valeur de la directive max_execution_time définie dans le php.ini.

Lorsqu'elle est appelée, set_time_limit() remet le compteur à zéro. En d'autres termes, si la limite par défaut est à 30 secondes, et qu'après 25 secondes d'exécution du script l'appel set_time_limit(20) est fait, alors le script tournera pendant un total de 45 secondes avant de finir.

Liste de paramètres

seconds

Le temps maximal d'exécution, en secondes. S'il vaut 0, aucune limite n'est imposée.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si une erreur survient.

Notes

Avertissement

Notez que set_time_limit() n'a pas d'effet lorsque PHP fonctionne en mode safe mode. Il n'y a pas d'autre solution que de changer de mode, ou de modifier la durée maximale d'exécution dans le php.ini.

Note:

La fonction set_time_limit() et la directive de configuration max_execution_time n'affectent que le temps d'exécution du script lui-même. Tout temps passé en dehors du script, comme un appel système utilisant system(), des opérations sur les flux, les requêtes sur base de données, etc. n'est pas pris en compte lors du calcul de la durée maximale d'exécution du script. Ceci est faux sous Windows où le temps mesuré est le temps réel.

Voir aussi

  • max_execution_time
  • max_input_time


Retourne le chemin du répertoire utilisé pour les fichiers temporaires

  • « set_time_limit
  • version_compare »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne le chemin du répertoire utilisé pour les fichiers temporaires

sys_get_temp_dir

(PHP 5 >= 5.2.1, PHP 7)

sys_get_temp_dir — Retourne le chemin du répertoire utilisé pour les fichiers temporaires

Description

string sys_get_temp_dir ( void )

Retourne le chemin du répertoire PHP où sont enregistrés les fichiers temporaires par défaut.

Valeurs de retour

Retourne le chemin du répertoire temporaire.

Exemples

Exemple #1 Exemple avec sys_get_temp_dir()

<?php
// Création d'un fichier temporaire dans le dossier
// des fichiers temporaires, en utilisant la fonction sys_get_temp_dir()
$temp_file = tempnam(sys_get_temp_dir(), 'Tux');

echo $temp_file;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

C:\Windows\Temp\TuxA318.tmp

Voir aussi

  • tmpfile() - Crée un fichier temporaire
  • tempnam() - Crée un fichier avec un nom unique


Compare deux chaînes de version au format des versions PHP

  • « sys_get_temp_dir
  • zend_logo_guid »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Compare deux chaînes de version au format des versions PHP

version_compare

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

version_compare — Compare deux chaînes de version au format des versions PHP

Description

mixed version_compare ( string $version1 , string $version2 [, string $operator ] )

version_compare() compare les deux versions de PHP standardisées.

version_compare() remplace dans un premier temps _, - et + par un point (.) dans les chaînes de version et insère aussi des points avant et après tout caractère non-numérique pour que, par exemple, '4.3.5RC1' devienne '4.3.5.RC.1'. Puis, elle compare les morceaux en allant de gauche à droite. Si une part contient des caractères alphabétiques, ils sont gérés dans l'ordre suivant : any string not found in this list < dev < alpha = a < beta = b < RC = rc < # < pl = p. De cette façon, il est possible de comparer non seulement des versions de différents niveaux, comme '4.1' et '4.1.2', mais aussi des versions de développement à la mode de PHP, à n'importe quel stade.

Liste de paramètres

version1

Premier numéro de version.

version2

Second numéro de version.

operator

Si le troisième argument optionnel operator est fourni, un test pour une relation particulière sera réalisée. Les opérateurs possibles sont : <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne respectivement.

Ce paramètre est sensible à la casse, les valeurs doivent donc être en minuscules.

Valeurs de retour

Par défaut, version_compare() retourne -1 si la première version est inférieure à la seconde, 0 si elles sont égales, et 1 si la seconde est inférieure à la première.

Lorsque l'on utilise le paramètre optionnel operator, la fonction retourne TRUE si la relation est celle spécifiée par l'opérateur, FALSE sinon.

Exemples

Les exemples ci-dessous utilisent la constante PHP_VERSION, sachant qu'elle contient la valeur de la version PHP utilisée pour exécuter le code.

Exemple #1 Exemple avec version_compare()

<?php
if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
    echo 'J\'ai au moins la version 7.0.0 de PHP ; ma version : ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
    echo 'J\'ai au moins la version 5.3.0 de PHP ; ma version : ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
    echo 'J\'utilise PHP 5 ; ma version : ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '<')) {
    echo 'J\'utilise PHP 4 ; ma version : ' . PHP_VERSION . "\n";
}
?>

Notes

Note:

La constante PHP_VERSION contient la version courante de PHP.

Note:

Notez que les versions intermédiaires, comme 5.3.0-dev, sont considérées comme inférieures à leurs versions finales (telle que 5.3.0).

Note:

Les chaînes spéciales de version comme alpha et beta sont sensibles à la casse. Les chaînes de version issues de sources arbitraires qui n'adhère pas au standard PHP doivent être mises en minuscule en utilisant la fonction strtolower() avant d'appeler la fonction version_compare().

Voir aussi

  • phpversion() - Retourne le numéro de la version courante de PHP
  • php_uname() - Retourne les informations sur le système d'exploitation
  • function_exists() - Indique si une fonction est définie


Retourne le logo de Zend

  • « version_compare
  • zend_thread_id »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne le logo de Zend

zend_logo_guid

(PHP 4, PHP < 5.5)

zend_logo_guid — Retourne le logo de Zend

Description

string zend_logo_guid ( void )

zend_logo_guid() retourne l'identifiant pouvant être utilisé pour afficher le logo Zend en utilisant l'image intégrée.

Avertissement

Cette fonction est obsolète et a été supprimée depuis PHP 5.5.0.

Valeurs de retour

Retourne PHPE9568F35-D428-11d2-A769-00AA001ACF42.

Historique

Version | Description
5.5.0 | zend_logo_guid() a été supprimé de PHP.

Exemples

Exemple #1 Exemple avec zend_logo_guid()

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . zend_logo_guid() . '" alt="Zend Logo !" />';

?>

Voir aussi

  • php_logo_guid() - Retourne l'identifiant du logo PHP


Retourne un identifiant unique du thread courant

  • « zend_logo_guid
  • zend_version »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne un identifiant unique du thread courant

zend_thread_id

(PHP 5, PHP 7)

zend_thread_id — Retourne un identifiant unique du thread courant

Description

int zend_thread_id ( void )

Cette fonction retourne un identifiant unique pour le thread courant.

Valeurs de retour

Retourne l'identifiant du thread, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec zend_thread_id()

<?php
$thread_id = zend_thread_id();

echo 'ID du thread courant : ' . $thread_id;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

ID du thread courant : 7864

Notes

Note:

Cette fonction n'est disponible que si PHP a été compilé avec le support ZTS (Zend Thread Safety) et le mode de débogage (--enable-debug).


Lit la version courante du moteur Zend

  • « zend_thread_id
  • runkit »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Lit la version courante du moteur Zend

zend_version

(PHP 4, PHP 5, PHP 7)

zend_version — Lit la version courante du moteur Zend

Description

string zend_version ( void )

Retourne une chaîne contenant le numéro de version du moteur d'analyse Zend actuellement en cours d'utilisation.

Valeurs de retour

Retourne le numéro de la version du moteur Zend, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec zend_version()

<?php
echo "Version du moteur Zend : " . zend_version();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du moteur Zend : 2.2.0

Voir aussi

  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP
  • phpcredits() - Affiche les crédits de PHP
  • php_logo_guid() - Retourne l'identifiant du logo PHP
  • phpversion() - Retourne le numéro de la version courante de PHP


runkit

  • Introduction
  • Constantes pré-définies
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Fonctions runkit
    • Runkit_Sandbox — Classe Runkit Sandbox -- Machine Virtuelle PHP
    • Runkit_Sandbox_Parent — Classe Anti-Sandbox Runkit
    • runkit_class_adopt — Convertit une classe de base à une classe héritée, ajoute une méthode ancestrale lorsque approprié
    • runkit_class_emancipate — Convertit une classe héritée à une classe de base, supprime toute méthode pour qui la portée est ancestrale
    • runkit_constant_add — Similaire à define(), mais permet aussi la définition dans définitions de classe
    • runkit_constant_redefine — Redéfinit une constante déjà définie
    • runkit_constant_remove — Enlève/Supprime une constante déjà définie
    • runkit_function_add — Ajoute une nouvelle fonction, similaire à create_function
    • runkit_function_copy — Copie une fonction vers un nom de fonction nouveau
    • runkit_function_redefine — Remplace une définition de fonction avec une nouvelle implémentation
    • runkit_function_remove — Enlève une définition de fonction
    • runkit_function_rename — Change le nom d'une fonction
    • runkit_import — Traite un fichier PHP important fonctions et définitions de classes, écrasement où applicable
    • runkit_lint_file — Vérifie la syntaxe PHP d'un fichier spécifié
    • runkit_lint — Vérifie la syntaxe PHP de code PHP spécifié
    • runkit_method_add — Ajoute dynamiquement une nouvelle méthode à une classe donnée
    • runkit_method_copy — Copie une méthode d'une classe à une autre
    • runkit_method_redefine — Change dynamiquement le code de la méthode donnée
    • runkit_method_remove — Supprime dynamiquement la méthode donnée
    • runkit_method_rename — Change dynamiquement le nom de la méthode donnée
    • runkit_return_value_used — Détermine si la valeur de retour des fonctions courantes sera utilisée
    • runkit_sandbox_output_handler — Spécifie une fonction à capturer et/ou traiter la sortie à partir d'un runkit sandbox
    • runkit_superglobals — Retourne un tableau indexé numériquement des variables superglobales enregistrées


Introduction

L'extension runkit fournit les moyens de modifier les constantes, les fonctions et les classes définies par l'utilisateur. Elle fournit aussi ces moyens pour les variables superglobales et les sous-interpréteurs encapsulables par sandboxing.

Ce paquetage est conçu comme un remplacement de fonctionnalités pour le paquetage » classkit. Lorsque compilé avec l'option --enable-runkit=classkit à ./configure, les définitions des fonctions et des constantes de classkit seront exportées.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

RUNKIT_IMPORT_FUNCTIONS (entier)
runkit_import() drapeau indiquant que les fonctions normales doivent être importées à partir du fichier spécifié.
RUNKIT_IMPORT_CLASS_METHODS (entier)
runkit_import() drapeau indiquant que les méthodes de classes doivent être importées à partir du fichier spécifié.
RUNKIT_IMPORT_CLASS_CONSTS (entier)
runkit_import() drapeau indiquant que les constantes de classes doivent être importées à partir du fichier spécifié. Notez que ce drapeau est seulement signifiant dans les versions PHP 5.1.0 et supérieures.
RUNKIT_IMPORT_CLASS_PROPS (entier)
runkit_import() drapeau indiquant que les propriétés standards de classes doivent être importée à partir du fichier spécifié.
RUNKIT_IMPORT_CLASSES (entier)
runkit_import() drapeau indiquant une opération de bits OU (OR) des constantes RUNKIT_IMPORT_CLASS_*.
RUNKIT_IMPORT_OVERRIDE (entier)
runkit_import() drapeau indiquant que si n'importe quelles fonctions, méthodes, constantes ou propriétés importées existent, elles doivent être remplacées par leurs nouvelles définitions. Si ce drapeau n'est pas activé, alors toutes définitions importées qui existent déjà seront supprimées.
RUNKIT_ACC_PUBLIC (entier)
Drapeau spécifique à PHP 5 pour runkit_method_add()
RUNKIT_ACC_PROTECTED (entier)
Drapeau spécifique à PHP 5 pour runkit_method_add()
RUNKIT_ACC_PRIVATE (entier)
Drapeau spécifique à PHP 5 pour runkit_method_add()
CLASSKIT_ACC_PUBLIC (entier)
Drapeau spécifique à PHP 5 pour runkit_method_add() Seulement définie lorsque les compatibilités classkit sont activées.
CLASSKIT_ACC_PROTECTED (entier)
Drapeau spécifique à PHP5 pour runkit_method_add() Seulement définie lorsque les compatibilités classkit sont activées.
CLASSKIT_ACC_PRIVATE (entier)
Drapeau spécifique à PHP 5 pour runkit_method_add() Seulement définie lorsque les compatibilités classkit sont activées.
CLASSKIT_AGGREGATE_OVERRIDE (entier)
Drapeau spécifique à PHP 5 pour classkit_import() Seulement définie lorsque les compatibilités classkit sont activées.
RUNKIT_VERSION (chaîne de caractères)
Définie la version courante du paquetage runkit.
CLASSKIT_VERSION (chaîne de caractères)
Définie la version courante du paquetage runkit. Seulement définie lorsque les compatibilités classkit sont activées.


Pré-requis

Modification de Constantes, Fonctions, Classes et Méthodes fonctionne avec toutes les versions de PHP 4 et PHP 5. Aucune condition spéciale n'est nécessaire.

Les Superglobales Personnalisées sont seulement disponibles dans les versions PHP 4.2.0 et supérieures.

Sandboxing nécessite PHP 5.1.0 ou supérieur ou PHP 5.0.0 avec le patch spécial TSRM appliqué. Sans se soucier de quelle version de PHP est utilisé, sandboxing doit être compilé avec l'option --enable-maintainer-zts. Voyez le fichier README dans le paquetage de runkit pour plus d'informations.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/runkit.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Runkit
Nom | Défaut | Modifiable | Historique
runkit.superglobal | "" | PHP_INI_PERDIR |
runkit.internal_override | "0" | PHP_INI_SYSTEM |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

runkit.superglobal string
Liste de noms de variable séparés par des virgules à être traités comme variables superglobales. Cette valeur devrait être fixée dans le fichier du système php.ini, mais devrait fonctionner dans les contextes de configuration par dossier dépendamment de votre SAPI.

Exemple #1 Superglobales particulières avec runkit.superglobal=_FOO,_BAR dans php.ini

<?php
function montre_valeurs() {
  echo "Foo est $_FOO\n";
  echo "Bar est $_BAR\n";
  echo "Baz est $_BAZ\n";
}

$_FOO = 'foo';
$_BAR = 'bar';
$_BAZ = 'baz';

/* Montre foo et bar mais pas baz */
montre_valeurs();
?>
runkit.internal_override boolean
Active la possibilité de modifier/renommer/supprimer les fonctions internes.


  • « Configuration à l'exécution
  • Fonctions runkit »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


Fonctions runkit

Sommaire

  • Runkit_Sandbox — Classe Runkit Sandbox -- Machine Virtuelle PHP
  • Runkit_Sandbox_Parent — Classe Anti-Sandbox Runkit
  • runkit_class_adopt — Convertit une classe de base à une classe héritée, ajoute une méthode ancestrale lorsque approprié
  • runkit_class_emancipate — Convertit une classe héritée à une classe de base, supprime toute méthode pour qui la portée est ancestrale
  • runkit_constant_add — Similaire à define(), mais permet aussi la définition dans définitions de classe
  • runkit_constant_redefine — Redéfinit une constante déjà définie
  • runkit_constant_remove — Enlève/Supprime une constante déjà définie
  • runkit_function_add — Ajoute une nouvelle fonction, similaire à create_function
  • runkit_function_copy — Copie une fonction vers un nom de fonction nouveau
  • runkit_function_redefine — Remplace une définition de fonction avec une nouvelle implémentation
  • runkit_function_remove — Enlève une définition de fonction
  • runkit_function_rename — Change le nom d'une fonction
  • runkit_import — Traite un fichier PHP important fonctions et définitions de classes, écrasement où applicable
  • runkit_lint_file — Vérifie la syntaxe PHP d'un fichier spécifié
  • runkit_lint — Vérifie la syntaxe PHP de code PHP spécifié
  • runkit_method_add — Ajoute dynamiquement une nouvelle méthode à une classe donnée
  • runkit_method_copy — Copie une méthode d'une classe à une autre
  • runkit_method_redefine — Change dynamiquement le code de la méthode donnée
  • runkit_method_remove — Supprime dynamiquement la méthode donnée
  • runkit_method_rename — Change dynamiquement le nom de la méthode donnée
  • runkit_return_value_used — Détermine si la valeur de retour des fonctions courantes sera utilisée
  • runkit_sandbox_output_handler — Spécifie une fonction à capturer et/ou traiter la sortie à partir d'un runkit sandbox
  • runkit_superglobals — Retourne un tableau indexé numériquement des variables superglobales enregistrées


Classe Runkit Sandbox -- Machine Virtuelle PHP

  • « Fonctions runkit
  • Runkit_Sandbox_Parent »
  • PHP Manual
  • Fonctions runkit
  • Classe Runkit Sandbox -- Machine Virtuelle PHP

Runkit_Sandbox

(PECL runkit >= 0.7.0)

Runkit_Sandbox — Classe Runkit Sandbox -- Machine Virtuelle PHP

Description

L'instanciation de la classe Runkit_Sandbox crée un nouveau thread avec sa propre portée et sa pile de programme. En utilisant les options passées au constructeur, cet environnement peut être restreint à un sous-ensemble pour lequel l'interpréteur primaire peut exécuter et fournir un environnement plus sûr pour l'exécution de code utilisateur.

Note: Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Constructeur

void Runkit_Sandbox::__construct ([ array $options ] )

options est un tableau associatif contenant n'importe quelle combinaison des options ini listées ci-dessous.

safe_mode

Si un script extérieur qui est instancié avec la classe Runkit_Sandbox est configuré avec safe_mode = off, alors safe_mod devrait être activé pour l'environnement sandbox. Cette configuration ne peut être utilisée pour désactiver safe_mode lorsque safe_mode est déjà activé dans le script extérieur.

safe_mode_gid

Si le script extérieur qui est instancié avec la classe Runkit_Sandbox est configuré avec safe_mode_gid = on, alors safe_mod_gid devrait être désactivé pour l'environnement sandbox. Cette configuration ne peut être utilisée pour activer safe_mode_gid lorsque c'est déjà désactivé dans le script extérieur.

safe_mode_include_dir

Si le script extérieur qui est instancié avec la classe Runkit_Sandbox est configuré avec safe_mode_include_dir, alors un nouveau safe_mode_include_dir devrait être fixé pour les environnements de sandbox sous la valeur actuellement définie. safe_mode_include_dir peut aussi être supprimé pour indiquer que l'évitement de cette fonctionnalité est désactivé. Si safe_mode_include_dir était vide dans le script extérieur, mais safe_mod n'était pas activé, alors n'importe quel safe_mode_include_dir arbitraire peut être fixé en activant le safe_mode.

open_basedir

open_basedir peut être fixé à n'importe quel chemin sous la configuration courante de open_basedir. Si open_basedir n'est pas fixé dans la portée globale, alors il est assumé qu'il est dans le répertoire root et peut être fixé à n'importe quelle autre emplacement.

allow_url_fopen

Comme safe_mode, cette configuration peut seulement être faite plus restrictive, dans ce cas, en mettant FALSE lorsque la valeur était précédemment TRUE.

disable_functions

Liste de fonctions séparées par des virgules à désactiver dans le sous-interpréteur sandbox. Cette liste ne nécessite pas de contenir le nom des fonctions déjà désactivées, elles resteront désactivées même si elles ne sont pas listées.

disable_classes

Liste de classes séparées par des virgules à désactiver dans le sous-interpréteur sandbox. Cette liste ne nécessite pas de contenir le nom des classes déjà désactivées, elles resteront désactivées même si elles ne sont pas listées.

runkit.superglobal

Liste des variables qui seront traitées en tant que superglobales dans le sous-interpréteur sandbox. Ces variables seront utilisées en plus de celles définies à l'interne ou à l'aide de la configuration runkit.superglobal.

runkit.internal_override

L'option ini runkit.internal_override devrait être désactivée (mais non réactivée) à l'intérieur des sandbox.

Exemple #1 Instanciation d'un sandbox restreint

<?php
$options = array(
  'safe_mode'=>true,
  'open_basedir'=>'/var/www/users/jdoe/',
  'allow_url_fopen'=>'false',
  'disable_functions'=>'exec,shell_exec,passthru,system',
  'disable_classes'=>'myAppClass');
$sandbox = new Runkit_Sandbox($options);
/* Configurations ini non protégées sont fixées normalement */
$sandbox->ini_set('html_errors',true);
?>

Portée des variables

Toutes les variables dans la portée globale de l'environnement sandbox sont accessibles comme étant des propriétés de l'objet sandbox. La première chose à noter, c'est puisque la manière de gestion de la mémoire entre les deux threads est faite que les objets et les variables de ressources ne peuvent pas, jusqu'à présent, être échangées entre les interpréteurs. De plus, tous les tableaux sont copiés au complet et toutes références seront perdues. Cela veut aussi dire que les références entre les interpréteurs ne sont pas possibles.

Exemple #2 Utilisation des variables dans sandbox

<?php
$sandbox = new Runkit_Sandbox();

$sandbox->foo = 'bar';
$sandbox->eval('echo "$foo\n"; $bar = $foo . "baz";');
echo "{$sandbox->bar}\n";
if (isset($sandbox->foo)) unset($sandbox->foo);
$sandbox->eval('var_dump(isset($foo));');
?>

L'exemple ci-dessus va afficher :

bar
barbaz
bool(false)

Appel de Fonctions PHP

Toute fonction définie dans le sandbox peut être appelée en tant que méthode sur l'objet sandbox. Ceci inclut aussi quelques constructions de pseudo-fonctions : pseudo-function language constructs: eval(), include, include_once, require, require_once, echo, print, die(), et exit().

Exemple #3 Appel de fonctions sandbox

<?php
$sandbox = new Runkit_Sandbox();

echo $sandbox->str_replace('a','f','abc');
?>

L'exemple ci-dessus va afficher :

fbc

Lors du passage d'arguments à une fonction sandbox, les arguments sont pris à partir de l'extérieur de l'instance de PHP. Si vous voulez passer les arguments à la portée de sandbox, soyez assuré de les accéder comme étant des propriétés de l'objet sandbox comme montré plus haut.

Exemple #4 Passage d'arguments aux fonctions sandbox

<?php
$sandbox = new Runkit_Sandbox();

$foo = 'bar';
$sandbox->foo = 'baz';
echo $sandbox->str_replace('a',$foo,'a');
echo $sandbox->str_replace('a',$sandbox->foo,'a');
?>

L'exemple ci-dessus va afficher :

bar
baz

Modification des Configurations de Sandbox

Depuis la version de runkit 0.5, certaines configurations de Sandbox peuvent être modifiées à la volée en utilisant la syntaxe ArrayAccess. Certaines configurations, comme active sont en lecture seule et permettent de fournir des informations de statut. Les autres configurations, comme output_handler peuvent être fixées et lues comme un tableau normal. Les configurations futures devraient être en écriture seule, cependant aucune configuration n'existe présentement.

Configurations Sandbox / Indicateurs de Statut
Configuration | Type | But | Défaut
active | booléen (Lecture Seule) | TRUE si le Sandbox est toujours dans un état utilisable, FALSE si la requête est en arrêt dû à un appel à die(), exit() ou à cause d'une condition d'erreur fatale. | TRUE (Initial)
output_handler | Callback | Lorsque fixée à une valeur de retour valide, toutes sorties générées par l'instance Sandbox seront traitées à travers la fonction nommée. Les sorties de Sandbox suivent les mêmes conventions d'appel pour les gestionnaires de sortie du système entier. | Aucun
parent_access | booléen | Autorise sandbox à utiliser des instances de la classe Runkit_Sandbox_Parent. Doit être activée pour que les autres configurations reliées à Runkit_Sandbox_Parent fonctionnent. | FALSE
parent_read | booléen | Autorise sandbox à lire des variables dans son contexte parent. | FALSE
parent_write | booléen | Autorise sandbox à modifier des variables dans son contexte parent. | FALSE
parent_eval | booléen | Autorise sandbox à évaluer du code arbitraire dans son contexte parent. (DANGEREUX) | FALSE
parent_include | booléen | Autorise sandbox à inclure des fichiers de code php dans son contexte parent. DANGEREUX | FALSE
parent_echo | booléen | Autorise sandbox à afficher des données dans son contexte parent en court-circuitant efficacement son propre output_handler. | FALSE
parent_call | booléen | Autorise sandbox à appeler des fonctions dans son contexte parent. | FALSE
parent_die | booléen | Autorise sandbox à tuer son propre parent. (Et donc soi-même) | FALSE
parent_scope | entier | Quelle portée la propriété de l'accès parental vérifiera ? 0 == Portée Globale, 1 == Portée Appelante, 2 == Portée précédant la portée appelante, 3 == La porté avant celle-ci, etc., etc. | 0 (Global)
parent_scope | chaîne de caractères | Lorsque parent_scope est fixée à une valeur d'une chaîne de caractères, elle se réfère à une variable tableau nommée dans la portée globale. Si la variable nommée n'existe pas au moment de son accès, elle sera créée comme un tableau vide. Si la variable existe mais n'est pas un tableau, un faux tableau sera créé contenant une référence à la variable globale nommée. |


Classe Anti-Sandbox Runkit

  • « Runkit_Sandbox
  • runkit_class_adopt »
  • PHP Manual
  • Fonctions runkit
  • Classe Anti-Sandbox Runkit

Runkit_Sandbox_Parent

(PECL runkit >= 0.7.0)

Runkit_Sandbox_Parent — Classe Anti-Sandbox Runkit

Description

void Runkit_Sandbox_Parent::__construct ( void )

L'instanciation de la classe Runkit_Sandbox_Parent à l'intérieure d'un environnement sandbox créé à partir de la classe Runkit_Sandbox fournit certains moyens (contrôlés) pour un sandbox fils pour accéder à son parent.

Note: Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Afin de faire fonctionner une des fonctionnalités de Runkit_Sandbox_Parent, le support doit être activé sur une base de chaque sandbox en activant le drapeau parent_access à partir du contexte parent.

Exemple #1 Travailler avec des variables dans un sandbox

<?php
$sandbox = new Runkit_Sandbox();
$sandbox['parent_access'] = true;
?>

Accéder les Variables du Parent

Comme les accès des variables de sandbox, les variables de parent sandbox devraient être lues et écrites à partir des propriétés de la classe Runkit_Sandbox_Parent. L'accès en lecture aux variables parentes devraient être activé avec la configuration parent_read (en plus de la base de configuration parent_access). L'accès en écriture est activé avec la configuration parent_write.

La portée des variables est différente de l'accès aux variables enfants de sandbox; elle n'est pas limitée au variables globales seulement. En configurant la configuration parent_scope pour un entier approprié, les autres portées dans la pile active pourraient être inspectée. Une valeur de 0 (Défaut) autorisera l'accès direct aux variables dans la portée globale. 1 pointera l'accès des variables à n'importe quelles variables dont la portée était active au moment ou le bloc courant du code sandbox était exécuté. Des valeurs plus élevées font reculer à travers les fonctions qui ont appelées d'autres fonctions qui menent au code sandbox en train d'être exécuté et qui essaie d'accéder à ses propres variables parentes.

Exemple #2 Accès aux variables parentes

<?php
$php = new Runkit_Sandbox();
$php['parent_access'] = true;
$php['parent_read'] = true;

$test = "Global";

$php->eval('$PARENT = new Runkit_Sandbox_Parent;');

$php['parent_scope'] = 0;
one();

$php['parent_scope'] = 1;
one();

$php['parent_scope'] = 2;
one();

$php['parent_scope'] = 3;
one();

$php['parent_scope'] = 4;
one();

$php['parent_scope'] = 5;
one();

function un() {
    $test = "un()";
    two();
}

function deux() {
    $test = "deux()";
    three();
}

function trois() {
    $test = "trois()";
    $GLOBALS['php']->eval('var_dump($PARENT->test);');
}
?>

L'exemple ci-dessus va afficher :

string(6) "Global"
string(7) "trois()"
string(5) "deux()"
string(5) "un()"
string(6) "Global"
string(6) "Global"

Appel de Fonctions Parentes

Comme l'accès avec sandbox, un sandbox peut accéder ses fonctions parentes si les configurations adéquates ont été activées. L'activation de parent_call autorisera le sandbox d'appeler toutes les fonctions disponibles à la portée parente. Les constructions de langage sont chacune contrôlées par ses propres configurations : print et echo sont activées avec parent_echo. die() et exit() sont activées avec parent_die. eval() est activées avec parent_eval tandis que include, include_once, require et require_once sont activées avec parent_include.


Convertit une classe de base à une classe héritée, ajoute une méthode ancestrale lorsque approprié

  • « Runkit_Sandbox_Parent
  • runkit_class_emancipate »
  • PHP Manual
  • Fonctions runkit
  • Convertit une classe de base à une classe héritée, ajoute une méthode ancestrale lorsque approprié

runkit_class_adopt

(PECL runkit >= 0.7.0)

runkit_class_adopt — Convertit une classe de base à une classe héritée, ajoute une méthode ancestrale lorsque approprié

Description

bool runkit_class_adopt ( string $classname , string $parentname )

Liste de paramètres

classname

Le nom de la classe à adopter

parentname

Classe parente pour laquelle la classe enfant s'étend

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_class_adopt()

<?php
class myParent {
  function parentFunc() {
    echo "Sortie Fonction Parente\n";
  }
}

class myChild {
}

runkit_class_adopt('myChild','myParent');
myChild::parentFunc();
?>

L'exemple ci-dessus va afficher :

Sortie Fonction Parente

Voir aussi

  • runkit_class_emancipate() - Convertit une classe héritée à une classe de base, supprime toute méthode pour qui la portée est ancestrale


Convertit une classe héritée à une classe de base, supprime toute méthode pour qui la portée est ancestrale

  • « runkit_class_adopt
  • runkit_constant_add »
  • PHP Manual
  • Fonctions runkit
  • Convertit une classe héritée à une classe de base, supprime toute méthode pour qui la portée est ancestrale

runkit_class_emancipate

(PECL runkit >= 0.7.0)

runkit_class_emancipate — Convertit une classe héritée à une classe de base, supprime toute méthode pour qui la portée est ancestrale

Description

bool runkit_class_emancipate ( string $classname )

Liste de paramètres

classname

Nom de la classe à émanciper

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_class_emancipate()

<?php
class myParent {
  function parentFunc () {
    echo "Sortie Fonction Parente\n";
  }
}
class myChild extends myParent {
}

myChild::parentFunc();
runkit_class_emancipate('myChild');
myChild::parentFunc();
?>

L'exemple ci-dessus va afficher :

Sortie Fonction Parente
Fatal error: Call to undefined function:  parentFunc() in example.php on line 12

Voir aussi

  • runkit_class_adopt() - Convertit une classe de base à une classe héritée, ajoute une méthode ancestrale lorsque approprié


Similaire à define(), mais permet aussi la définition dans définitions de classe

  • « runkit_class_emancipate
  • runkit_constant_redefine »
  • PHP Manual
  • Fonctions runkit
  • Similaire à define(), mais permet aussi la définition dans définitions de classe

runkit_constant_add

(PECL runkit >= 0.7.0)

runkit_constant_add — Similaire à define(), mais permet aussi la définition dans définitions de classe

Description

bool runkit_constant_add ( string $constname , mixed $value )

Liste de paramètres

constname

Nom de la constante à déclarer. Soit une chaîne de caractères pour indiquer une constante globale ou un classname::constname pour indiquer une constante de classe.

value

Valeur NULL, Bool, Long, Double, String ou Resource pour enregistrer la nouvelle constante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • define() - Définit une constante
  • runkit_constant_redefine() - Redéfinit une constante déjà définie
  • runkit_constant_remove() - Enlève/Supprime une constante déjà définie


Redéfinit une constante déjà définie

  • « runkit_constant_add
  • runkit_constant_remove »
  • PHP Manual
  • Fonctions runkit
  • Redéfinit une constante déjà définie

runkit_constant_redefine

(PECL runkit >= 0.7.0)

runkit_constant_redefine — Redéfinit une constante déjà définie

Description

bool runkit_constant_redefine ( string $constname , mixed $newvalue )

Liste de paramètres

constname

Constante à redéfinir. Soit une chaîne de caractères pour indiquer une constante globale ou classname::constname pour indiquer une constante de classe.

newvalue

Nouvelle valeur à assigner à la constante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • runkit_constant_add() - Similaire à define(), mais permet aussi la définition dans définitions de classe
  • runkit_constant_remove() - Enlève/Supprime une constante déjà définie


Enlève/Supprime une constante déjà définie

  • « runkit_constant_redefine
  • runkit_function_add »
  • PHP Manual
  • Fonctions runkit
  • Enlève/Supprime une constante déjà définie

runkit_constant_remove

(PECL runkit >= 0.7.0)

runkit_constant_remove — Enlève/Supprime une constante déjà définie

Description

bool runkit_constant_remove ( string $constname )

Liste de paramètres

constname

Nom de la constante à enlever. Soit une chaîne de caractères pour indiquer une constante globale ou classname::constname pour indiquer une constante de classe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • define() - Définit une constante
  • runkit_constant_add() - Similaire à define(), mais permet aussi la définition dans définitions de classe
  • runkit_constant_redefine() - Redéfinit une constante déjà définie


Ajoute une nouvelle fonction, similaire à create_function

  • « runkit_constant_remove
  • runkit_function_copy »
  • PHP Manual
  • Fonctions runkit
  • Ajoute une nouvelle fonction, similaire à create_function

runkit_function_add

(PECL runkit >= 0.7.0)

runkit_function_add — Ajoute une nouvelle fonction, similaire à create_function()

Description

bool runkit_function_add ( string $funcname , string $arglist , string $code )

Liste de paramètres

funcname

Nom de la fonction à être créé

arglist

Liste d'arguments séparés par des virgules

code

Code qui compose la fonction

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_function_add()

<?php
runkit_function_add('testme','$a,$b','echo "La valeur de a est $a\n"; echo "La valeur de b est $b\n";');
testme(1,2);
?>

L'exemple ci-dessus va afficher :

La valeur de a est 1
La valeur de b est 2

Voir aussi

  • create_function() - Crée une fonction anonyme
  • runkit_function_redefine() - Remplace une définition de fonction avec une nouvelle implémentation
  • runkit_function_copy() - Copie une fonction vers un nom de fonction nouveau
  • runkit_function_rename() - Change le nom d'une fonction
  • runkit_function_remove() - Enlève une définition de fonction
  • runkit_method_add() - Ajoute dynamiquement une nouvelle méthode à une classe donnée


Copie une fonction vers un nom de fonction nouveau

  • « runkit_function_add
  • runkit_function_redefine »
  • PHP Manual
  • Fonctions runkit
  • Copie une fonction vers un nom de fonction nouveau

runkit_function_copy

(PECL runkit >= 0.7.0)

runkit_function_copy — Copie une fonction vers un nom de fonction nouveau

Description

bool runkit_function_copy ( string $funcname , string $targetname )

Liste de paramètres

funcname

Nom de la fonction existante

targetname

Nom de la nouvelle fonction pour copier la définition vers celle-ci

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_function_copy()

<?php
function original() {
  echo "Dans une fonction\n";
}
runkit_function_copy('original','duplicate');
original();
duplicate();
?>

L'exemple ci-dessus va afficher :

Dans une fonction
Dans une fonction

Voir aussi

  • runkit_function_add() - Ajoute une nouvelle fonction, similaire à create_function
  • runkit_function_redefine() - Remplace une définition de fonction avec une nouvelle implémentation
  • runkit_function_rename() - Change le nom d'une fonction
  • runkit_function_remove() - Enlève une définition de fonction


Remplace une définition de fonction avec une nouvelle implémentation

  • « runkit_function_copy
  • runkit_function_remove »
  • PHP Manual
  • Fonctions runkit
  • Remplace une définition de fonction avec une nouvelle implémentation

runkit_function_redefine

(PECL runkit >= 0.7.0)

runkit_function_redefine — Remplace une définition de fonction avec une nouvelle implémentation

Description

bool runkit_function_redefine ( string $funcname , string $arglist , string $code )

Note: Par défaut, seulement les fonctions définies par l'utilisateur peuvent être supprimées, renommées ou modifiées. Afin de surcharger des fonctions internes, vous devez activer la configuration runkit.internal_override dans le fichier php.ini du système entier.

Liste de paramètres

funcname

Nom de la fonction à redéfinir

arglist

Nouvelle liste d'arguments à être acceptés par la fonction

code

Nouvelle implémentation du code

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_function_redefine()

<?php
function testme() {
  echo "Implémentation de Testme originale\n";
}
testme();
runkit_function_redefine('testme','','echo "Nouvelle implémentation de Testme\n";');
testme();
?>

L'exemple ci-dessus va afficher :

Implémentation de Testme originale
Nouvelle implémentation de Testme

Voir aussi

  • runkit_function_add() - Ajoute une nouvelle fonction, similaire à create_function
  • runkit_function_copy() - Copie une fonction vers un nom de fonction nouveau
  • runkit_function_rename() - Change le nom d'une fonction
  • runkit_function_remove() - Enlève une définition de fonction


Enlève une définition de fonction

  • « runkit_function_redefine
  • runkit_function_rename »
  • PHP Manual
  • Fonctions runkit
  • Enlève une définition de fonction

runkit_function_remove

(PECL runkit >= 0.7.0)

runkit_function_remove — Enlève une définition de fonction

Description

bool runkit_function_remove ( string $funcname )

Note: Par défaut, seulement les fonctions définies par l'utilisateur peuvent être supprimées, renommées ou modifiées. Afin de surcharger des fonctions internes, vous devez activer la configuration runkit.internal_override dans le fichier php.ini du système entier.

Liste de paramètres

funcname

Nom de la fonction à supprimer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • runkit_function_add() - Ajoute une nouvelle fonction, similaire à create_function
  • runkit_function_copy() - Copie une fonction vers un nom de fonction nouveau
  • runkit_function_redefine() - Remplace une définition de fonction avec une nouvelle implémentation
  • runkit_function_rename() - Change le nom d'une fonction


Change le nom d'une fonction

  • « runkit_function_remove
  • runkit_import »
  • PHP Manual
  • Fonctions runkit
  • Change le nom d'une fonction

runkit_function_rename

(PECL runkit >= 0.7.0)

runkit_function_rename — Change le nom d'une fonction

Description

bool runkit_function_rename ( string $funcname , string $newname )

Note: Par défaut, seulement les fonctions définies par l'utilisateur peuvent être supprimées, renommées ou modifiées. Afin de surcharger des fonctions internes, vous devez activer la configuration runkit.internal_override dans le fichier php.ini du système entier.

Liste de paramètres

funcname

Nom de la fonction courante

newname

Nouveau nom de fonction

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • runkit_function_add() - Ajoute une nouvelle fonction, similaire à create_function
  • runkit_function_copy() - Copie une fonction vers un nom de fonction nouveau
  • runkit_function_redefine() - Remplace une définition de fonction avec une nouvelle implémentation
  • runkit_function_remove() - Enlève une définition de fonction


Traite un fichier PHP important fonctions et définitions de classes, écrasement où applicable

  • « runkit_function_rename
  • runkit_lint_file »
  • PHP Manual
  • Fonctions runkit
  • Traite un fichier PHP important fonctions et définitions de classes, écrasement où applicable

runkit_import

(PECL runkit >= 0.7.0)

runkit_import — Traite un fichier PHP important fonctions et définitions de classes, écrasement où applicable

Description

bool runkit_import ( string $filename [, int $flags = RUNKIT_IMPORT_CLASS_METHODS ] )

Similaire à include, par contre tout code qui réside à l'extérieur de fonction ou classe est simplement ignoré. De plus, dépendamment de la valeur de flags, toutes fonctions et classes qui existent déjà dans l'environnement en cours d'exécution seront automatiquement écrasées par leurs nouvelles définitions.

Liste de paramètres

filename

Nom du fichier pour importer les définitions de fonctions et de classe

flags

Comparaison de bits OU (OR) de la famille de constantes RUNKIT_IMPORT_*.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Vérifie la syntaxe PHP d'un fichier spécifié

  • « runkit_import
  • runkit_lint »
  • PHP Manual
  • Fonctions runkit
  • Vérifie la syntaxe PHP d'un fichier spécifié

runkit_lint_file

(PECL runkit >= 0.7.0)

runkit_lint_file — Vérifie la syntaxe PHP d'un fichier spécifié

Description

bool runkit_lint_file ( string $filename )

La fonction runkit_lint_file() effectue une vérification de syntaxe (lint) sur le fichier spécifié en testant les erreurs de scripts. Cette fonction est similaire à l'utilisation de php -l à partir de la ligne de commande.

Note: Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Liste de paramètres

filename

Fichier contenant du code PHP à être vérifié

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • runkit_lint() - Vérifie la syntaxe PHP de code PHP spécifié


Vérifie la syntaxe PHP de code PHP spécifié

  • « runkit_lint_file
  • runkit_method_add »
  • PHP Manual
  • Fonctions runkit
  • Vérifie la syntaxe PHP de code PHP spécifié

runkit_lint

(PECL runkit >= 0.7.0)

runkit_lint — Vérifie la syntaxe PHP de code PHP spécifié

Description

bool runkit_lint ( string $code )

La fonction runkit_lint() effectue une vérification de syntaxe (lint) sur le code PHP spécifié en testant les erreurs de scripts. Cette fonction est similaire à l'utilisation de php -l à partir de la ligne de commande à l'exception que runkit_lint() accepte le code actuel plutôt qu'un fichier.

Note: Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Liste de paramètres

code

Code PHP à être vérifié

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • runkit_lint_file() - Vérifie la syntaxe PHP d'un fichier spécifié


Ajoute dynamiquement une nouvelle méthode à une classe donnée

  • « runkit_lint
  • runkit_method_copy »
  • PHP Manual
  • Fonctions runkit
  • Ajoute dynamiquement une nouvelle méthode à une classe donnée

runkit_method_add

(PECL runkit >= 0.7.0)

runkit_method_add — Ajoute dynamiquement une nouvelle méthode à une classe donnée

Description

bool runkit_method_add ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT_ACC_PUBLIC ] )

Liste de paramètres

classname

La classe dans laquelle la méthode sera ajoutée

methodname

Le nom de la méthode à ajouter

args

Liste des arguments séparés par des virgules pour la nouvelle méthode créée

code

Le code à être évalué lors que methodname est appelé

flags

Le type de méthode à créer, peut être RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED ou RUNKIT_ACC_PRIVATE optionnellement combiné via un OR avec RUNKIT_ACC_STATIC (depuis la versin 1.0.1)

Note:

Ce paramètre est utilisé seulement en PHP 5, parce que, avant cette version, toutes les méthodes étaient publiques.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_method_add()

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// Crée un objet Example
$e = new Example();

// Ajoute une nouvelle méthode publique
runkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    RUNKIT_ACC_PUBLIC
);

// ajoute 12 + 4
echo $e->add(12, 4);
?>

L'exemple ci-dessus va afficher :

16

Voir aussi

  • runkit_method_copy() - Copie une méthode d'une classe à une autre
  • runkit_method_redefine() - Change dynamiquement le code de la méthode donnée
  • runkit_method_remove() - Supprime dynamiquement la méthode donnée
  • runkit_method_rename() - Change dynamiquement le nom de la méthode donnée
  • runkit_function_add() - Ajoute une nouvelle fonction, similaire à create_function


Copie une méthode d'une classe à une autre

  • « runkit_method_add
  • runkit_method_redefine »
  • PHP Manual
  • Fonctions runkit
  • Copie une méthode d'une classe à une autre

runkit_method_copy

(PECL runkit >= 0.7.0)

runkit_method_copy — Copie une méthode d'une classe à une autre

Description

bool runkit_method_copy ( string $dClass , string $dMethod , string $sClass [, string $sMethod ] )

Liste de paramètres

dClass

Classe destination pour la méthode copiée

dMethod

Nom de la méthode de destination

sClass

Classe source pour la méthode à copier

sMethod

Nom de la méthode à copier à partir de la classe source. Si ce paramètre est omis, la valeur de dMethod est utilisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_method_copy()

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // initialement, aucune méthode
}

// Copie la méthode example() de la classe Foo vers la classe Bar, comme étant baz()
runkit_method_copy('Bar', 'baz', 'Foo', 'example');

// sortie de la fonction copiée
echo Bar::baz();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi

  • runkit_method_add() - Ajoute dynamiquement une nouvelle méthode à une classe donnée
  • runkit_method_redefine() - Change dynamiquement le code de la méthode donnée
  • runkit_method_remove() - Supprime dynamiquement la méthode donnée
  • runkit_method_rename() - Change dynamiquement le nom de la méthode donnée
  • runkit_function_copy() - Copie une fonction vers un nom de fonction nouveau


Change dynamiquement le code de la méthode donnée

  • « runkit_method_copy
  • runkit_method_remove »
  • PHP Manual
  • Fonctions runkit
  • Change dynamiquement le code de la méthode donnée

runkit_method_redefine

(PECL runkit >= 0.7.0)

runkit_method_redefine — Change dynamiquement le code de la méthode donnée

Description

bool runkit_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT_ACC_PUBLIC ] )

Note: Cette fonction ne peut être utilisée pour manipuler la méthode en cours d'utilisation (ou chaînée).

Liste de paramètres

classname

La classe dans laquelle la méthode sera redéfinie

methodname

Le nom de la méthode à redéfinir

args

Liste d'arguments séparés par des virgules pour la méthode redéfinie

code

Le nouveau code qui sera évalué lorsque methodname sera appelée

flags

La méthode redéfinie peut etre RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED ou RUNKIT_ACC_PRIVATE optionnellement combiné via un OR avec RUNKIT_ACC_STATIC (depuis la version 1.0.1)

Note:

Ce paramètre est utilisé seulement en PHP 5, parce que, avant cette version, toutes les méthodes étaient publiques.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_method_redefine()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Crée un objet Example
$e = new Example();

// Sortie Example::foo() (avant la redéfinition)
echo "Avant : " . $e->foo();

// Redéfinition de la méthode 'foo'
runkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    RUNKIT_ACC_PUBLIC
);

// Sortie Example::foo() (après la redéfinition)
echo "Après : " . $e->foo();
?>

L'exemple ci-dessus va afficher :

Avant : foo!
Après : bar!

Voir aussi

  • runkit_method_add() - Ajoute dynamiquement une nouvelle méthode à une classe donnée
  • runkit_method_copy() - Copie une méthode d'une classe à une autre
  • runkit_method_remove() - Supprime dynamiquement la méthode donnée
  • runkit_method_rename() - Change dynamiquement le nom de la méthode donnée
  • runkit_function_redefine() - Remplace une définition de fonction avec une nouvelle implémentation


Supprime dynamiquement la méthode donnée

  • « runkit_method_redefine
  • runkit_method_rename »
  • PHP Manual
  • Fonctions runkit
  • Supprime dynamiquement la méthode donnée

runkit_method_remove

(PECL runkit >= 0.7.0)

runkit_method_remove — Supprime dynamiquement la méthode donnée

Description

bool runkit_method_remove ( string $classname , string $methodname )

Note: Cette fonction ne peut être utilisée pour manipuler la méthode en cours d'utilisation (ou chaînée).

Liste de paramètres

classname

La classe dans laquelle la méthode sera supprimée

methodname

Le nom de la méthode à supprimer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_method_remove()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Suppression de la méthode 'foo'
runkit_method_remove(
    'Example',
    'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

L'exemple ci-dessus va afficher :

bar

Voir aussi

  • runkit_method_add() - Ajoute dynamiquement une nouvelle méthode à une classe donnée
  • runkit_method_copy() - Copie une méthode d'une classe à une autre
  • runkit_method_redefine() - Change dynamiquement le code de la méthode donnée
  • runkit_method_rename() - Change dynamiquement le nom de la méthode donnée
  • runkit_function_remove() - Enlève une définition de fonction


Change dynamiquement le nom de la méthode donnée

  • « runkit_method_remove
  • runkit_return_value_used »
  • PHP Manual
  • Fonctions runkit
  • Change dynamiquement le nom de la méthode donnée

runkit_method_rename

(PECL runkit >= 0.7.0)

runkit_method_rename — Change dynamiquement le nom de la méthode donnée

Description

bool runkit_method_rename ( string $classname , string $methodname , string $newname )

Note: Cette fonction ne peut être utilisée pour manipuler la méthode en cours d'utilisation (ou chaînée).

Liste de paramètres

classname

La classe dans laquelle la méthode sera renommée

methodname

Le nom de la méthode à renommer

newname

Le nouveau nom à donner à la méthode renommée

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec runkit_method_rename()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Renomme la méthode 'foo' par 'bar'
runkit_method_rename(
    'Example',
    'foo',
    'bar'
);

// output renamed function
echo Example::bar();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi

  • runkit_method_add() - Ajoute dynamiquement une nouvelle méthode à une classe donnée
  • runkit_method_copy() - Copie une méthode d'une classe à une autre
  • runkit_method_redefine() - Change dynamiquement le code de la méthode donnée
  • runkit_method_remove() - Supprime dynamiquement la méthode donnée
  • runkit_function_rename() - Change le nom d'une fonction


Détermine si la valeur de retour des fonctions courantes sera utilisée

  • « runkit_method_rename
  • runkit_sandbox_output_handler »
  • PHP Manual
  • Fonctions runkit
  • Détermine si la valeur de retour des fonctions courantes sera utilisée

runkit_return_value_used

(PECL runkit >= 0.8.0)

runkit_return_value_used — Détermine si la valeur de retour des fonctions courantes sera utilisée

Description

bool runkit_return_value_used ( void )

Valeurs de retour

Retourne TRUE si la valeur de retour d'une fonction est utilisée par la portée appelante, FALSE autrement.

Exemples

Exemple #1 Exemple avec runkit_return_value_used()

<?php
function foo() {
  var_dump(runkit_return_value_used());
}

foo();
$f = foo();
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)


Spécifie une fonction à capturer et/ou traiter la sortie à partir d'un runkit sandbox

  • « runkit_return_value_used
  • runkit_superglobals »
  • PHP Manual
  • Fonctions runkit
  • Spécifie une fonction à capturer et/ou traiter la sortie à partir d'un runkit sandbox

runkit_sandbox_output_handler

(PECL runkit >= 0.7.0)

runkit_sandbox_output_handler — Spécifie une fonction à capturer et/ou traiter la sortie à partir d'un runkit sandbox

Description

mixed runkit_sandbox_output_handler ( object $sandbox [, mixed $callback ] )

Normalement, toutes les sorties (comme avec echo ou print) seront écrites comme si elles avaient été écrites à partir de la portée du parent. Cependant, l'utilisation de runkit_sandbox_output_handler(), sorties générées par le sandbox (incluant les erreurs), peuvent être capturées par une fonction extérieure à sandbox.

Note: Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Note: Obsolète

Depuis la version de runkit 0.5, cette fonction est obsolète et devrait être supprimée de ce paquetage avant la version 1.0. Le gestionnaire de sortie pour une instance donnée de Runkit_Sandbox devrait être lue/fixée en utilisant la syntaxe tableau de décalage montrée sur la page de définition de la classe Runkit_Sandbox.

Liste de paramètres

sandbox

Instance de la classe Runkit_Sandbox sur laquelle spécifier la gestion des sorties.

callback

Nom d'une fonction qui s'attend à un paramètre. La sortie générée par sandbox sera envoyée à cette fonction de rappel. Tout ce qui sera retourné par cette fonction sera affiché normalement. Si ce paramètre n'est pas passé, alors la gestion des sorties ne sera pas changée. Si une valeur incorrecte est passée, la gestion des sorties sera désactivée et sera retournée à l'affichage direct.

Valeurs de retour

Retourne le nom de la fonction de rappel précédemment définie en tant que gestion des sorties, ou FALSE si aucun gestionnaire n'avait été précédemment défini.

Exemples

Exemple #1 Alimentation de sortie vers une variable

<?php
function capture_output($str) {
  $GLOBALS['sandbox_output'] .= $str;

  return '';
}

$sandbox_output = '';

$php = new Runkit_Sandbox();
runkit_sandbox_output_handler($php, 'capture_output');
$php->echo("Bonjour\n");
$php->eval('var_dump("Excusez-moi");');
$php->die("Je me suis perdu.");
unset($php);

echo "Sandbox Complété\n\n";
echo $sandbox_output;
?>

L'exemple ci-dessus va afficher :

Sandbox Complété

Bonjour
string(9) "Excusez-moi"
Je me suis perdu.


Retourne un tableau indexé numériquement des variables superglobales enregistrées

  • « runkit_sandbox_output_handler
  • scream »
  • PHP Manual
  • Fonctions runkit
  • Retourne un tableau indexé numériquement des variables superglobales enregistrées

runkit_superglobals

(PECL runkit >= 0.7.0)

runkit_superglobals — Retourne un tableau indexé numériquement des variables superglobales enregistrées

Description

array runkit_superglobals ( void )

Valeurs de retour

Retourne un tableau indexé numériquement des variables superglobales enregistrée actuellement. C'est-à-dire _GET, _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES

Voir aussi

  • Portées des Variables


Casse l'opérateur de silence

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Exemples
    • Exemple d'illustration de scream


Introduction

L'extension scream donne la possibilité de désactiver l'opérateur de contrôle d'erreur, de manière à ce que toutes les erreurs soient rapportées. Cette fonctionnalité est désactivée par une directive PHP.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/scream


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration de scream
Nom | Défaut | Modifiable | Historique
scream.enabled | Off | PHP_INI_ALL |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

scream.enabled int

Active ou non le module scream.


  • « Configuration à l'exécution
  • Exemples »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


  • « Types de ressources
  • Exemple d'illustration de scream »
  • PHP Manual
  • scream
  • Exemples

Exemples

Sommaire

  • Exemple d'illustration de scream


Exemple d'illustration de scream

Cet exemple montre comment l'extension scream affecte le comportement du gestionnaire d'erreur PHP.

Exemple #1 Activation et désactivation de scream, à l'exécution

<?php
// Affichage des erreurs
ini_set('display_errors', true);
error_reporting(E_ALL);

// Désactivation de scream : le code est silencieux
ini_set('scream.enabled', false);
echo "Opening http://example.com/not-existing-file\n";
@fopen('http://example.com/not-existing-file', 'r');

// Activation de scream : le code est verbeux
ini_set('scream.enabled', true);
echo "Opening http://example.com/not-existing-file\n";
@fopen('http://example.com/another-not-existing-file', 'r');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Opening http://example.com/not-existing-file
Opening http://example.com/not-existing-file

Warning: fopen(http://example.com/not-existing-file): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in example.php on line 14

Note: Généralement, on active cette extension avec une directive de configuration php.ini, au lieu de la modifier dans le code PHP.


uopz

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Uopz
    • uopz_backup — Sauvegarde une fonction
    • uopz_compose — Compose une classe
    • uopz_copy — Copie une fonction
    • uopz_delete — Supprime une fonction
    • uopz_extend — Etend une classe à l'exécution
    • uopz_flags — Récupère ou défini les drapeaux d'une fonction ou d'une classe
    • uopz_function — Crée une fonction à l'exécution
    • uopz_implement — Implémente une interface à l'exécution
    • uopz_overload — Surcharge un opcode VM
    • uopz_redefine — Re-défini une constante
    • uopz_rename — Renomme une fonction à l'exécution
    • uopz_restore — Restaure une fonction sauvegardée
    • uopz_undefine — Supprime une constante


Introduction

L'extension uopz - User Operations for Zend (NdT : les opérations utilisateurs pour Zend) - expose les fonctionnalités du moteur Zend, normalement utilisées au moment de la compilation et de l'exécution, afin de permettre la modification des structures internes que représentent le code PHP, et pour le code utilisateur d'inter-agir avec la VM.

uopz supporte les activités suivantes :

  • Surcharge d'opcodes incluant ZEND_EXIT et ZEND_NEW
  • Sauvegarde et restauration des fonctions et méthodes
  • Renommage des fonctions et des méthodes
  • Copie des fonctions et des méthodes
  • Suppression des fonctions et des méthodes
  • Re-définition des constantes globales et de classe
  • Suppression des constantes globales et de classe
  • Composition et modification de classes à l'exécution

Note:

Toutes les activités supportées sont compatibes avec opcache.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

uopz requiert 5.4+.


Installation

Les versions d'uopz sont hébergées par PECL et le code source par » github ; la façon la plus simple de l'installer est de passer par l'installation via PECL : » http://pecl.php.net/package/uopz.

Les utilisateurs de Windows peuvent télécharger les binaires depuis le site web de » PECL.


  • « Installation
  • Types de ressources »
  • PHP Manual
  • Installation/Configuration
  • Configuration à l'exécution

Configuration à l'exécution

uopz doit être chargé comme une zend_extension


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les opcodes suivants sont définis comme des constantes par uopz :

ZEND_EXIT (integer)
Invoque exit() et die() ; réceptionne aucun argument. Retourne TRUE pour sortir, FALSE pour continuer
ZEND_NEW (integer)
Invoqué par la construction d'un objet, reçoit l'objet de la classe créée comme seul argument
ZEND_THROW (integer)
Invoqué par la structure throw, reçoit l'exception de la classe émise comme seul argument
ZEND_FETCH_CLASS (integer)
Invoqué lors d'une composition, recoit la classe, le nom de la classe récupérée comme seul argument
ZEND_ADD_TRAIT (integer)
Invoqué lors d'une composition, recoit la classe dans laquelle le trait sera ajouté, comme premier argument, et le nom du trait comme second argument
ZEND_ADD_INTERFACE (integer)
Invoqué lors d'une composition, recoit la classe dans laquelle l'interface sera ajoutée comme premier argument, et le nom de l'interface comme second argument
ZEND_INSTANCEOF (integer)
Invoqué par l'opérateur instanceof, recoit l'objet a vérifier comme premier argument, et le nom de la classe dont l'objet appartient comme second argument

Les constantes suivantes contrôlent le comportement du VM après qu'un gestionnaire utilisateur ne soit appelé ; soyez extrêmement prudent !

ZEND_USER_OPCODE_CONTINUE (integer)
Avance d'un opcode, et continue
ZEND_USER_OPCODE_ENTER (integer)
Entre dans un nouvel op_array sans récursion
ZEND_USER_OPCODE_LEAVE (integer)
Retourne l'op_array appelé dans le même exécuteur
ZEND_USER_OPCODE_DISPATCH (integer)
Dispatche le gestionnaire opcode original
ZEND_USER_OPCODE_DISPATCH_TO (integer)
Dispoatche à un gestionnaire spécifique
ZEND_USER_OPCODE_RETURN (integer)
Sort de l'exécuteur (retourne à la fonction)

Les modificateurs suivants sont enregistrés comme constantes par uopz

ZEND_ACC_PUBLIC (integer)
Marque une fonction comme publique, le comportement par défaut
ZEND_ACC_PROTECTED (integer)
Marque une fonction comme protégée
ZEND_ACC_PRIVATE (integer)
Marque une fonction comme privée
ZEND_ACC_STATIC (integer)
Marque une fonction comme statique
ZEND_ACC_FINAL (integer)
Marque une fonction comme finale
ZEND_ACC_ABSTRACT (integer)
Marque une fonction comme abstraite
ZEND_ACC_CLASS (integer)
Enregistrement pour la consistence, l'entrée par défaut d'une classe
ZEND_ACC_INTERFACE (integer)
Marque la classe comme étant une interface
ZEND_ACC_TRAIT (integer)
Marque la classe comme étant trait
ZEND_ACC_FETCH (integer)
Utilisé pour récupérer seulement les drapeaux


Fonctions Uopz

Sommaire

  • uopz_backup — Sauvegarde une fonction
  • uopz_compose — Compose une classe
  • uopz_copy — Copie une fonction
  • uopz_delete — Supprime une fonction
  • uopz_extend — Etend une classe à l'exécution
  • uopz_flags — Récupère ou défini les drapeaux d'une fonction ou d'une classe
  • uopz_function — Crée une fonction à l'exécution
  • uopz_implement — Implémente une interface à l'exécution
  • uopz_overload — Surcharge un opcode VM
  • uopz_redefine — Re-défini une constante
  • uopz_rename — Renomme une fonction à l'exécution
  • uopz_restore — Restaure une fonction sauvegardée
  • uopz_undefine — Supprime une constante


Sauvegarde une fonction

  • « Fonctions Uopz
  • uopz_compose »
  • PHP Manual
  • Fonctions Uopz
  • Sauvegarde une fonction

uopz_backup

(PECL uopz >= 1.0.3)

uopz_backup — Sauvegarde une fonction

Description

void uopz_backup ( string $class , string $function )
void uopz_backup ( string $function )

Sauvegarde une fonction à l'exécution.

Liste de paramètres

class

Le nom de la classe contenant la fonction à sauvegarder

function

Le nom de la fonction

Valeurs de retour

Exemples

Exemple #1 Exemple avec uopz_backup()

<?php
uopz_backup("fgets");
uopz_function("fgets", function(){
    return true;
});
var_dump(fgets());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)


Compose une classe

  • « uopz_backup
  • uopz_copy »
  • PHP Manual
  • Fonctions Uopz
  • Compose une classe

uopz_compose

(PECL uopz >= 1.0.0)

uopz_compose — Compose une classe

Description

void uopz_compose ( string $name , array $classes [, array $methods [, array $properties [, int $flags ]]] )

Crée une nouvelle classe de nom spécifié, qui implémente, étend ou utilise toutes les classes fournies.

Liste de paramètres

name

Un nom de classe valide

classes

Un tableau de classes, d'interfaces ou de noms trait

methods

Un tableau associatif de méthodes ; les valeurs sont soit des closures, soit des [modifiers => closure]

properties

Un tableau associatif de propriétés, ayant comme clés les noms, et comme valeurs, les modificateurs

flags

Type d'entrée ; par défaut, ZEND_ACC_CLASS

Valeurs de retour

Exemples

Exemple #1 Exemple avec uopz_compose()

<?php
class myClass {}
trait myTrait {}
interface myInterface {}

uopz_compose(
    Composed::class, [
        myClass::class,
        myTrait::class,
        myInterface::class
    ], [
    "__construct" => function() {
        /* ... */
    }
]);

var_dump(
 class_uses(Composed::class),
 class_parents(Composed::class),
 class_implements(Composed::class));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  ["myTrait"]=>
  string(7) "myTrait"
}
array(1) {
  ["myClass"]=>
  string(7) "myClass"
}
array(1) {
  ["myInterface"]=>
  string(11) "myInterface"
}


Copie une fonction

  • « uopz_compose
  • uopz_delete »
  • PHP Manual
  • Fonctions Uopz
  • Copie une fonction

uopz_copy

(PECL uopz >= 1.0.4)

uopz_copy — Copie une fonction

Description

Closure uopz_copy ( string $class , string $function )
Closure uopz_copy ( string $function )

Copie une fonction à partir de son nom.

Liste de paramètres

class

Le nom de la classe contenant la fonction à copier

function

Le nom de la fonction

Valeurs de retour

Une closure pour la fonction spécifiée.

Exemples

Exemple #1 Exemple avec uopz_copy()

<?php
$strtotime = uopz_copy('strtotime');

uopz_function("strtotime", function($arg1, $arg2) use($strtotime) {
    /* on peut appeler la fonction strtotime original depuis ici */
    var_dump($arg1);
});

var_dump(strtotime('dummy'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "dummy"


Supprime une fonction

  • « uopz_copy
  • uopz_extend »
  • PHP Manual
  • Fonctions Uopz
  • Supprime une fonction

uopz_delete

(PECL uopz >= 1.0.0)

uopz_delete — Supprime une fonction

Description

void uopz_delete ( string $class , string $function )
void uopz_delete ( string $function )

Supprime une fonction ou une méthode.

Liste de paramètres

class

function

Valeurs de retour

Exemples

Exemple #1 Exemple avec uopz_delete()

<?php
uopz_delete("strlen");

echo strlen("Hello World");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Fatal error: Call to undefined function strlen() in /path/to/script.php on line 4

Exemple #2 Exemple avec uopz_delete() et une classe

<?php
class My {
    public static function strlen($arg) {
        return strlen($arg);
    }
}

uopz_delete(My::class, "strlen");

echo My::strlen("Hello World");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Fatal error: Call to undefined method My::strlen() in /path/to/script.php on line 10


Etend une classe à l'exécution

  • « uopz_delete
  • uopz_flags »
  • PHP Manual
  • Fonctions Uopz
  • Etend une classe à l'exécution

uopz_extend

(PECL uopz >= 1.0.0)

uopz_extend — Etend une classe à l'exécution

Description

void uopz_extend ( string $class , string $parent )

Etend la classe class en utilisant la classe parent.

Liste de paramètres

class

Le nom de la classe à étendre

parent

Le nom de la classe parent

Valeurs de retour

Exemples

Exemple #1 Exemple avec uopz_extend()

<?php
class A {}
class B {}

uopz_extend(A::class, B::class);

var_dump(class_parents(A::class));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  ["B"]=>
  string(1) "B"
}


Récupère ou défini les drapeaux d'une fonction ou d'une classe

  • « uopz_extend
  • uopz_function »
  • PHP Manual
  • Fonctions Uopz
  • Récupère ou défini les drapeaux d'une fonction ou d'une classe

uopz_flags

(PECL uopz >= 2.0.2)

uopz_flags — Récupère ou défini les drapeaux d'une fonction ou d'une classe

Description

int uopz_flags ( string $class , string $function , int $flags )
int uopz_flags ( string $function , int $flags )

Récupère ou défini les drapeaux d'une classe ou de l'entrée d'une fonction à l'exécution.

Liste de paramètres

class

Le nom de la classe

function

Le nom de la fonction

flags

Un jeu valide de drapeaux ZEND_ACC_ flags, ZEND_ACC_FETCH

Valeurs de retour

Si des drapeaux ont été définis, retourne les anciens drapeaux, sinon, retourne les drapeaux courants

Exemples

Exemple #1 Exemple avec uopz_flags()

<?php
class Test {
    public function method() {
        return __CLASS__;
    }
}

$flags = uopz_flags("Test", "method", ZEND_ACC_FETCH);

var_dump((bool) (uopz_flags("Test", "method", ZEND_ACC_FETCH) & ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method", ZEND_ACC_FETCH) & ZEND_ACC_STATIC));

var_dump(uopz_flags("Test", "method", $flags|ZEND_ACC_STATIC|ZEND_ACC_PRIVATE));

var_dump((bool) (uopz_flags("Test", "method", ZEND_ACC_FETCH) & ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method", ZEND_ACC_FETCH) & ZEND_ACC_STATIC));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(false)
int(1234567890)
bool(true)
bool(true)


Crée une fonction à l'exécution

  • « uopz_flags
  • uopz_implement »
  • PHP Manual
  • Fonctions Uopz
  • Crée une fonction à l'exécution

uopz_function

(PECL uopz >= 1.0.0)

uopz_function — Crée une fonction à l'exécution

Description

void uopz_function ( string $class , string $function , Closure $handler [, int $modifiers ] )
void uopz_function ( string $function , Closure $handler [, int $modifiers ] )

Crée une fonction à l'exécution.

Liste de paramètres

class

Le nom de la classe qui doit recevoir la nouvelle fonction

function

Le nom de la fonction

handler

La closure de la fonction

modifiers

Les modificateurs de la fonction ; par défaut, copé ou ZEND_ACC_PUBLIC

Valeurs de retour

Exemples

Exemple #1 Exemple avec uopz_function()

<?php
uopz_function("my_strlen", function($arg) {
    return strlen($arg);
});
echo my_strlen("Hello World");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

11

Exemple #2 Exemple avec uopz_function() et une classe

<?php
class My {}

uopz_function(My::class, "strlen", function($arg) {
    return strlen($arg);
}, ZEND_ACC_STATIC);

echo My::strlen("Hello World");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

11


Implémente une interface à l'exécution

  • « uopz_function
  • uopz_overload »
  • PHP Manual
  • Fonctions Uopz
  • Implémente une interface à l'exécution

uopz_implement

(PECL uopz >= 1.0.0)

uopz_implement — Implémente une interface à l'exécution

Description

void uopz_implement ( string $class , string $interface )

Implémente l'interface interface dans la classe class.

Liste de paramètres

class

interface

Valeurs de retour

Exemples

Exemple #1 Exemple avec uopz_implement()

<?php
interface myInterface {}

class myClass {}

uopz_implement(myClass::class, myInterface::class);

var_dump(class_implements(myClass::class));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  ["myInterface"]=>
  string(11) "myInterface"
}


Surcharge un opcode VM

  • « uopz_implement
  • uopz_redefine »
  • PHP Manual
  • Fonctions Uopz
  • Surcharge un opcode VM

uopz_overload

(PECL uopz >= 1.0.0)

uopz_overload — Surcharge un opcode VM

Description

void uopz_overload ( int $opcode , Callable $callable )

Surcharge l'opcode spécifié avec une fonction définie par l'utilisateur.

Liste de paramètres

opcode

Un opcode valide ; voir les constantes pour plus de détails sur les codes supportés

callable

Valeurs de retour

Exemples

Exemple #1 Exemple avec uopz_overload()

<?php
uopz_overload(ZEND_EXIT, function(){});

exit();
echo "Hello World";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Hello World


Re-défini une constante

  • « uopz_overload
  • uopz_rename »
  • PHP Manual
  • Fonctions Uopz
  • Re-défini une constante

uopz_redefine

(PECL uopz >= 1.0.0)

uopz_redefine — Re-défini une constante

Description

void uopz_redefine ( string $class , string $constant , mixed $value )
void uopz_redefine ( string $constant , mixed $value )

Re-défini la constante constant fournie, en value.

Liste de paramètres

class

Le nom de la classe contenant la constante

constant

Le nom de la constante

value

La nouvelle valeur de la constante ; doit être un type valide pour une constante

Valeurs de retour

Exemples

Exemple #1 Exemple avec uopz_redefine()

<?php
define("MY", 100);

uopz_redefine("MY", 1000);

echo MY;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1000


Renomme une fonction à l'exécution

  • « uopz_redefine
  • uopz_restore »
  • PHP Manual
  • Fonctions Uopz
  • Renomme une fonction à l'exécution

uopz_rename

(PECL uopz >= 1.0.0)

uopz_rename — Renomme une fonction à l'exécution

Description

void uopz_rename ( string $class , string $function , string $rename )
void uopz_rename ( string $function , string $rename )

Renomme la fonction function en rename.

Note:

Si les deux fonctions existent, leurs noms seront inversés.

Liste de paramètres

class

Le nom de la classe contenant la fonction

function

Le nom d'une fonction existante

rename

Le nouveau nom de la fonction

Valeurs de retour

Exemples

Exemple #1 Exemple avec uopz_rename()

<?php
uopz_rename("strlen", "original_strlen");

echo original_strlen("Hello World");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

11

Exemple #2 Exemple avec uopz_rename() et une classe

<?php
class My {
    public function strlen($arg) {
        return strlen($arg);
    }
}

uopz_rename(My::class, "strlen", "original_strlen");

echo My::original_strlen("Hello World");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

11


Restaure une fonction sauvegardée

  • « uopz_rename
  • uopz_undefine »
  • PHP Manual
  • Fonctions Uopz
  • Restaure une fonction sauvegardée

uopz_restore

(PECL uopz >= 1.0.3)

uopz_restore — Restaure une fonction sauvegardée

Description

void uopz_restore ( string $class , string $function )
void uopz_restore ( string $function )

Restaure une fonction sauvegardée.

Liste de paramètres

class

Le nom de la classe contenant la fonction à restaurer

function

Le nom de la fonction

Valeurs de retour

Exemples

Exemple #1 Exemple avec uopz_restore()

<?php
uopz_backup("fgets");
uopz_function("fgets", function(){
    return true;
});
var_dump(fgets());
uopz_restore('fgets');
fgets();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: fgets() expects at least 1 parameter, 0 given in /path/to/script.php on line 8


Supprime une constante

  • « uopz_restore
  • Weakref »
  • PHP Manual
  • Fonctions Uopz
  • Supprime une constante

uopz_undefine

(PECL uopz >= 1.0.0)

uopz_undefine — Supprime une constante

Description

void uopz_undefine ( string $class , string $constant )
void uopz_undefine ( string $constant )

Supprime une constante à l'exécution.

Liste de paramètres

class

Le nom de la classe contenant la constant

constant

Le nom d'une constante existante

Valeurs de retour

Exemples

Exemple #1 Exemple avec uopz_undefine()

<?php
define("MY", true);

uopz_undefine("MY");

var_dump(defined("MY"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)


Références faibles

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Types de ressources
  • WeakRef — La classe WeakRef
    • Weakref::acquire — Acquière une forte référence sur un objet
    • Weakref::__construct — Construit une nouvelle référence forte
    • Weakref::get — Retourne l'objet pointé par sa référence forte
    • Weakref::release — Libère une référence précédemment acquise
    • Weakref::valid — Vérifie si l'objet référencé existe toujours
  • WeakMap — La classe WeakMap
    • WeakMap::__construct — Construit un nouveau map
    • WeakMap::count — Compte le nombre d'entrées du map
    • WeakMap::current — Retourne la valeur courante de l'itération
    • WeakMap::key — Retourne la clé courante de l'itérateur
    • WeakMap::next — Avance jusqu'au prochain élément du map
    • WeakMap::offsetExists — Vérifie si un objet est dans le map
    • WeakMap::offsetGet — Retourne la valeur pointée par un certain objet
    • WeakMap::offsetSet — Met à jour le map avec une nouvelle paire clé-valeur
    • WeakMap::offsetUnset — Supprime une entrée depuis le map
    • WeakMap::rewind — Réinitialise l'itérateur au début du map
    • WeakMap::valid — Vérifie si l'itérateur est toujours sur un élément map valide


Introduction

Les références faibles fournissent une façon non-intrusive de gérer les objets éphémères. Contrairement aux références normales (fortes), les références faibles n'alertent pas le gestionnaire de la libération de l'objet. Pour cette raison, un objet peut être détruit même si une référence faible vers cet objet existe toujours. Dans de telles conditions, la référence faible devient invalide de façon transparente.

Exemple #1 Exemple d'utilisation de Weakref

<?php
class MyClass {
    public function __destruct() {
        echo "Destruction de l'objet !\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

if ($r1->valid()) {
    echo "L'objet existe toujours !\n";
    var_dump($r1->get());
} else {
    echo "L'objet est mort !\n";
}

unset($o1);

if ($r1->valid()) {
    echo "L'objet existe toujours !\n";
    var_dump($r1->get());
} else {
    echo "L'objet est mort !\n";
}
?>

L'exemple ci-dessus va afficher :

L'objet existe toujours !
object(MyClass)#1 (0) {
}
L'objet est mort !
Object is dead!


  • « Introduction
  • Pré-requis »
  • PHP Manual
  • Weakref
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Types de ressources


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/weakref.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


  • « Installation
  • WeakRef »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


La classe WeakRef

(PECL weakref >= 0.1.0)

Introduction

La classe WeakRef fournit une passerelle vers les objets sans prévenir le gestionnaire de collection de la libération de ces derniers. Elle fournit également une façon de passer d'une référence faible à une référence forte.

Synopsis de la classe

WeakRef {
/* Méthodes */
public Weakref::__construct ( object $object )
public bool Weakref::acquire ( void )
public object Weakref::get ( void )
public bool Weakref::release ( void )
public bool Weakref::valid ( void )
}

Exemples

Exemple #1 Exemple d'utilisation de WeakRef

<?php
class MyClass {
    public function __destruct() {
        echo "Destruction de l'objet !\n";
    }
}

$o1 = new MyClass;

$r1 = new WeakRef($o1);

if ($r1->valid()) {
    echo "L'objet existe toujours !\n";
    var_dump($r1->get());
} else {
    echo "L'objet est mort !\n";
}

unset($o1);

if ($r1->valid()) {
    echo "L'objet existe toujours !\n";
    var_dump($r1->get());
} else {
    echo "L'objet est mort !\n";
}
?>

L'exemple ci-dessus va afficher :

L'objet existe toujours !
object(MyClass)#1 (0) {
}
Destruction de l'objet !
L'objet est mort !

Sommaire

  • Weakref::acquire — Acquière une forte référence sur un objet
  • Weakref::__construct — Construit une nouvelle référence forte
  • Weakref::get — Retourne l'objet pointé par sa référence forte
  • Weakref::release — Libère une référence précédemment acquise
  • Weakref::valid — Vérifie si l'objet référencé existe toujours


Acquière une forte référence sur un objet

  • « WeakRef
  • Weakref::__construct »
  • PHP Manual
  • WeakRef
  • Acquière une forte référence sur un objet

Weakref::acquire

(PECL weakref >= 0.1.0)

Weakref::acquire — Acquière une forte référence sur un objet

Description

public bool Weakref::acquire ( void )

Acquière une forte référence sur un objet, passant ainsi virtuellement d'une référence faible en une référence forte.

L'instance Weakref maintient un compteur interne pour surveiller les références fortes exceptionnelles. Si l'appel à Weakref::acquire() est un succès, ce compteur sera incrémenté de un.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la référence est valide et peut être convertie en une référence forte, FALSE sinon.

Exemples

Exemple #1 Exemple avec Weakref::acquire()

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

$r1->acquire();

echo "Unsetting o1...\n";
unset($o1);

$o2 = $r1->get();

$r1->release();

echo "Unsetting o2...\n";
unset($o2);
?>

L'exemple ci-dessus va afficher :

Unsetting o1...
Unsetting o2...
Destroying object!

Exemple #2 Exemple d'acquisition / libération

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

echo "Acquiring...\n";
$r1->acquire();

echo "  Unsetting...\n";
unset($o1);

echo "  Acquiring...\n";
$r1->acquire();

echo "    Acquiring...\n";
$r1->acquire();

echo "    Releasing...\n";
$r1->release();

echo "  Releasing...\n";
$r1->release();

echo "Releasing...\n";
$r1->release();

?>

L'exemple ci-dessus va afficher :

Acquiring...
  Unsetting...
  Acquiring...
    Acquiring...
    Releasing...
  Releasing...
Releasing...
Destroying object!

Voir aussi

  • Weakref::release() - Libère une référence précédemment acquise


Construit une nouvelle référence forte

  • « Weakref::acquire
  • Weakref::get »
  • PHP Manual
  • WeakRef
  • Construit une nouvelle référence forte

Weakref::__construct

(PECL weakref >= 0.1.0)

Weakref::__construct — Construit une nouvelle référence forte

Description

public Weakref::__construct ( object $object )

Construit une nouvelle référence forte.

Liste de paramètres

object

L'objet à référencer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec Weakref::__construct()

<?php
class MyClass {
    public function __destruct() {
        echo "Destruction de l'objet !\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

if ($r1->valid()) {
    echo "L'objet existe toujours !\n";
    var_dump($r1->get());
} else {
    echo "L'objet est mort !\n";
}

unset($o1);

if ($r1->valid()) {
    echo "L'objet existe toujours !\n";
    var_dump($r1->get());
} else {
    echo "L'objet est mort !\n";
}
?>

L'exemple ci-dessus va afficher :

L'objet existe toujours !
object(MyClass)#1 (0) {
}
Destruction de l'objet !
L'objet est mort !


Retourne l'objet pointé par sa référence forte

  • « Weakref::__construct
  • Weakref::release »
  • PHP Manual
  • WeakRef
  • Retourne l'objet pointé par sa référence forte

Weakref::get

(PECL weakref >= 0.1.0)

Weakref::get — Retourne l'objet pointé par sa référence forte

Description

public object Weakref::get ( void )

Retourne l'objet pointé par sa référence forte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'objet si la référence est toujours valide, NULL sinon.

Voir aussi

  • Weakref::valid() - Vérifie si l'objet référencé existe toujours


Libère une référence précédemment acquise

  • « Weakref::get
  • Weakref::valid »
  • PHP Manual
  • WeakRef
  • Libère une référence précédemment acquise

Weakref::release

(PECL weakref >= 0.1.0)

Weakref::release — Libère une référence précédemment acquise

Description

public bool Weakref::release ( void )

Libère une référence précédemment acquise. Cela revient à modifier une référence forte en une référence faible.

L'instance Weakref maintient un compteur interne pour surveiller les références fortes. Si l'appel à Weakref::release() est un succès, ce compteur sera décrémenté de un. Une fois que ce compteur atteint zéro, la référence forte sera modifiée en référence faible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la référence a été précédemment acquise et ainsi, a pu être libérée, FALSE sinon.

Exemples

Exemple #1 Exemple avec Weakref::release()

<?php
class MyClass {
    public function __destruct() {
        echo "Destruction de l'objet !\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

$r1->acquire();

echo "Libération de o1...\n";
unset($o1);

$o2 = $r1->get();

$r1->release();

echo "Libération de o2...\n";
unset($o2);
?>

L'exemple ci-dessus va afficher :

Libération de o1...
Libération de o2...
Destruction de l'objet !

Voir aussi

  • Weakref::acquire() - Acquière une forte référence sur un objet


Vérifie si l'objet référencé existe toujours

  • « Weakref::release
  • WeakMap »
  • PHP Manual
  • WeakRef
  • Vérifie si l'objet référencé existe toujours

Weakref::valid

(PECL weakref >= 0.1.0)

Weakref::valid — Vérifie si l'objet référencé existe toujours

Description

public bool Weakref::valid ( void )

Vérifie si l'objet référencé existe toujours.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'objet existe toujours et ainsi, est toujours accessibe via la méthode Weakref::get(), FALSE sinon.

Voir aussi

  • Weakref::get() - Retourne l'objet pointé par sa référence forte


La classe WeakMap

(PECL weakref >= 0.2.0)

Introduction

Synopsis de la classe

WeakMap implements Countable , ArrayAccess , Iterator {
/* Méthodes */
public __construct ( void )
public int count ( void )
public mixed current ( void )
public object key ( void )
public void next ( void )
public bool offsetExists ( object $object )
public mixed offsetGet ( object $object )
public void offsetSet ( object $object , mixed $value )
public void offsetUnset ( object $object )
public void rewind ( void )
public bool valid ( void )
}

Exemples

Exemple #1 Exemple d'utilisation de Weakmap

<?php
$wm = new WeakMap();

$o = new StdClass;

class A {
    public function __destruct() {
        echo "Mort !\n";
    }
}

$wm[$o] = new A;

var_dump(count($wm));
echo "Effacement..\n";
unset($o);
echo "Fait\n";
var_dump(count($wm));

L'exemple ci-dessus va afficher :

int(1)
Effacement..
Mort !
Fait
int(0)

Sommaire

  • WeakMap::__construct — Construit un nouveau map
  • WeakMap::count — Compte le nombre d'entrées du map
  • WeakMap::current — Retourne la valeur courante de l'itération
  • WeakMap::key — Retourne la clé courante de l'itérateur
  • WeakMap::next — Avance jusqu'au prochain élément du map
  • WeakMap::offsetExists — Vérifie si un objet est dans le map
  • WeakMap::offsetGet — Retourne la valeur pointée par un certain objet
  • WeakMap::offsetSet — Met à jour le map avec une nouvelle paire clé-valeur
  • WeakMap::offsetUnset — Supprime une entrée depuis le map
  • WeakMap::rewind — Réinitialise l'itérateur au début du map
  • WeakMap::valid — Vérifie si l'itérateur est toujours sur un élément map valide


Construit un nouveau map

  • « WeakMap
  • WeakMap::count »
  • PHP Manual
  • WeakMap
  • Construit un nouveau map

WeakMap::__construct

(PECL weakref >= 0.2.0)

WeakMap::__construct — Construit un nouveau map

Description

public WeakMap::__construct ( void )

Construit un nouveau map.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Compte le nombre d'entrées du map

  • « WeakMap::__construct
  • WeakMap::current »
  • PHP Manual
  • WeakMap
  • Compte le nombre d'entrées du map

WeakMap::count

(PECL weakref >= 0.2.0)

WeakMap::count — Compte le nombre d'entrées du map

Description

public int WeakMap::count ( void )

Compte le nombre d'entrées du map.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'entrées du map.


Retourne la valeur courante de l'itération

  • « WeakMap::count
  • WeakMap::key »
  • PHP Manual
  • WeakMap
  • Retourne la valeur courante de l'itération

WeakMap::current

(PECL weakref >= 0.2.0)

WeakMap::current — Retourne la valeur courante de l'itération

Description

public mixed WeakMap::current ( void )

Retourne la valeur courante itérée dans le map.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur actuellement itérée.


Retourne la clé courante de l'itérateur

  • « WeakMap::current
  • WeakMap::next »
  • PHP Manual
  • WeakMap
  • Retourne la clé courante de l'itérateur

WeakMap::key

(PECL weakref >= 0.2.0)

WeakMap::key — Retourne la clé courante de l'itérateur

Description

public object WeakMap::key ( void )

Retourne l'objet servant comme clé dans le map, à la position courante de l'itérateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet clé actuellement itéré.


Avance jusqu'au prochain élément du map

  • « WeakMap::key
  • WeakMap::offsetExists »
  • PHP Manual
  • WeakMap
  • Avance jusqu'au prochain élément du map

WeakMap::next

(PECL weakref >= 0.2.0)

WeakMap::next — Avance jusqu'au prochain élément du map

Description

public void WeakMap::next ( void )

Avance jusqu'au prochain élément du map.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Vérifie si un objet est dans le map

  • « WeakMap::next
  • WeakMap::offsetGet »
  • PHP Manual
  • WeakMap
  • Vérifie si un objet est dans le map

WeakMap::offsetExists

(PECL weakref >= 0.2.0)

WeakMap::offsetExists — Vérifie si un objet est dans le map

Description

public bool WeakMap::offsetExists ( object $object )

Vérifie si l'objet passé est référencé dans le map.

Liste de paramètres

object

L'objet à vérifier.

Valeurs de retour

Retourne TRUE si l'objet est contenu dans le map, FALSE sinon.


Retourne la valeur pointée par un certain objet

  • « WeakMap::offsetExists
  • WeakMap::offsetSet »
  • PHP Manual
  • WeakMap
  • Retourne la valeur pointée par un certain objet

WeakMap::offsetGet

(PECL weakref >= 0.2.0)

WeakMap::offsetGet — Retourne la valeur pointée par un certain objet

Description

public mixed WeakMap::offsetGet ( object $object )

Retourne la valeur pointée par un certain objet.

Liste de paramètres

object

L'objet clé.

Valeurs de retour

Retourne la valeur associée à l'objet clé passé en argument, ou NULL sinon.


Met à jour le map avec une nouvelle paire clé-valeur

  • « WeakMap::offsetGet
  • WeakMap::offsetUnset »
  • PHP Manual
  • WeakMap
  • Met à jour le map avec une nouvelle paire clé-valeur

WeakMap::offsetSet

(PECL weakref >= 0.2.0)

WeakMap::offsetSet — Met à jour le map avec une nouvelle paire clé-valeur

Description

public void WeakMap::offsetSet ( object $object , mixed $value )

Met à jour le map avec une nouvelle paire clé-valeur. Si la clé existe déjà dans le map, l'ancienne valeur est remplacée avec la nouvelle.

Liste de paramètres

object

L'objet servant comme clé de la paire clé-valeur.

value

DOnnées arbitraires servant comme valeur de la paire clé-valeur.

Valeurs de retour

Aucune valeur n'est retournée.


Supprime une entrée depuis le map

  • « WeakMap::offsetSet
  • WeakMap::rewind »
  • PHP Manual
  • WeakMap
  • Supprime une entrée depuis le map

WeakMap::offsetUnset

(PECL weakref >= 0.2.0)

WeakMap::offsetUnset — Supprime une entrée depuis le map

Description

public void WeakMap::offsetUnset ( object $object )

Supprime une entrée depuis le map.

Liste de paramètres

object

L'objet clé à supprimer depuis le map.

Valeurs de retour

Aucune valeur n'est retournée.


Réinitialise l'itérateur au début du map

  • « WeakMap::offsetUnset
  • WeakMap::valid »
  • PHP Manual
  • WeakMap
  • Réinitialise l'itérateur au début du map

WeakMap::rewind

(PECL weakref >= 0.2.0)

WeakMap::rewind — Réinitialise l'itérateur au début du map

Description

public void WeakMap::rewind ( void )

Réinitialise l'itérateur au début du map.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Vérifie si l'itérateur est toujours sur un élément map valide

  • « WeakMap::rewind
  • WinCache »
  • PHP Manual
  • WeakMap
  • Vérifie si l'itérateur est toujours sur un élément map valide

WeakMap::valid

(PECL weakref >= 0.2.0)

WeakMap::valid — Vérifie si l'itérateur est toujours sur un élément map valide

Description

public bool WeakMap::valid ( void )

Vérifie si l'itérateur est toujours sur un élément map valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'itérateur est sur un élément valide qui peut être accédé, FALSE sinon.


Windows Cache pour PHP

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Script de statistiques WinCache
    • WinCache Session Handler
    • WinCache Functions Reroutes
    • Types de ressources
  • Constantes pré-définies
  • Fonctions WinCache
    • wincache_fcache_fileinfo — Extrait des informations sur les fichiers mis en cache dans le cache de fichiers
    • wincache_fcache_meminfo — Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.
    • wincache_lock — Acquière un verrou exclusif sur une clé donnée
    • wincache_ocache_fileinfo — Extrait des informations sur les fichiers mis en cache dans le cache opcode
    • wincache_ocache_meminfo — Extrait des informations sur l'utilisation du cache opcode
    • wincache_refresh_if_changed — Actualise les entrées du cache pour les fichiers mis en cache
    • wincache_rplist_fileinfo — Récupère des informations du cache sur un chemin de fichier résolu
    • wincache_rplist_meminfo — Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu
    • wincache_scache_info — Récupère des informations sur des fichiers mis en cache
    • wincache_scache_meminfo — Récupère des informations sur l'utilisation de la mémoire du cache
    • wincache_ucache_add — Ajoute une nouvelle variable au cache utilisateur
    • wincache_ucache_cas — Compare la variable avec son ancienne valeur et lui assigne une nouvelle valeur
    • wincache_ucache_clear — Supprime le contenu d'une entrée du cache utilisateur
    • wincache_ucache_dec — Décrémente la valeur associée à une clé
    • wincache_ucache_delete — Supprime les variables du cache utilisateur
    • wincache_ucache_exists — Vérifie si une variable existe dans le cache utilisateur
    • wincache_ucache_get — Récupère une variable stokée dans le cache utilisateur
    • wincache_ucache_inc — Incrémente la valeur associée à une clé
    • wincache_ucache_info — Récupère des informations sur des données stokées dans le cache utilisateur
    • wincache_ucache_meminfo — Récupère des informations sur l'utilisation mémoire du cache utilisateur
    • wincache_ucache_set — Ajoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache
    • wincache_unlock — Libère un verrou exclusif sur une clé donnée
  • Compilation sous Windows
    • Prérequis
    • Compiler et construire
    • Verifying the build


Introduction

L'extension Windows Cache pour PHP est un accélérateur PHP qui est utilisé pour augmenter la vitesse des applications PHP sous Windows et Windows Server. Une fois l'extension Windows Cache activée et chargée par le moteur PHP, les applications PHP peuvent tirer parti des fonctionnalités sans aucune modification de code.

L'extension Windows Cache comprend 5 types de caches. Ce qui suit décrit le but de chaque type de cache et les avantages qu'il procure.

  • Cache d'Opcode PHP - PHP est un moteur de traitement de script, qui lit un flux d'entrée de données qui contient du texte et / ou des instructions PHP et produit un autre flux de données, le plus souvent au format HTML. Cela signifie que sur un serveur Web le moteur PHP lit, analyse, compile et exécute un script PHP à chaque fois qu'il est demandé par un client Web. Les operations de lecture, d'analyse et de compilation ajoute une charge supplémentaire sur le processeur (CPU) et sur le système de fichiers, ce qui affecte la performance globale d'une application web PHP. Le cache de bytecode PHP (Opcode) est utilisé pour stocker le bytecode du script compilé dans la mémoire partagée pour qu'il puisse être ré-utilisé par le moteur PHP lors des exécutions suivantes du même script.

  • Cache de fichiers - Même avec le cache d'opcode PHP activé, le moteur PHP doit accèder aux fichiers de script sur un système de fichiers. Lorsque les scripts PHP sont stockés sur le système de fichiers d'un ordinateur distant, les opérations sur ces fichiers introduisent une surcharge importante des performances. L'extension de Cache Windows pour PHP inclut un cache de fichier qui est utilisé pour stocker le contenu des fichiers de scripts PHP dans la mémoire partagée, ce qui réduit le nombre d'opérations effectuées par le moteur PHP sur le système de fichiers.

  • Cache de résolution des chemins de fichier - Les scripts PHP incluent ou fonctionnent très souvent avec des fichiers en utilisant des chemins relatifs. Chaque chemin de fichier doit être normalisé en un chemin de fichier absolu par le moteur PHP. Quand une application PHP utilise de nombreux fichiers PHP et y accède par des chemins relatifs, l'opération de résolution des chemins peut impacter négativement les performances de l'application. L'extension de Cache Windows pour PHP fournit un cache de résolution des chemins de fichier, qui est utilisé pour stocker les correspondances entre les chemins de fichier relatifs et absolus, réduisant ainsi le nombre de résolutions que le moteur PHP devra effectuer.

  • Cache utilisateur (disponible depuis la version 1.1.0) - Les scripts PHP peuvent tirer profit du cache de mémoire partagée en utilisant l'API de cache utilisateur. Les objets PHP et les variables peuvent être stockées dans le cache utilisateur et réutilisés lors des requêtes suivantes. Ce cache peut être utilisé pour améliorer les performances des scripts PHP et pour partager les données entre plusieurs processus PHP.

  • Gestionnaire de session (disponible depuis la version 1.1.0) - Le gestionnaire de session WinCache peut être utilisé pour stocker les données de session PHP dans le cache de la mémoire partagée. Cela évite des opérations sur le système de fichiers pour la lecture et l'écriture des données de session, ce qui améliore les performances lorsque un montant important de données est stocké dans la session PHP.


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Configuration à l'exécution
  • Script de statistiques WinCache
  • WinCache Session Handler
  • WinCache Functions Reroutes
  • Types de ressources


Pré-requis

L'extension est actuellement uniquement supportée sur les configurations suivantes :

Windows OS:

  • Windows XP SP3 avec IIS 5.1 et l'» Extension FastCGI
  • Windows Server 2003 avec IIS 6.0 et l'» Extension FastCGI
  • Windows Vista SP1 avec IIS 7.0 et le module FastCGI
  • Windows Server 2008 avec IIS 7.0 et le module FastCGI
  • Windows 7 avec IIS 7.5 et le module FastCGI
  • Windows Server 2008 R2 avec IIS 7.5 et le module FastCGI

PHP:

  • PHP 5.2.X, Non-thread-safe build
  • PHP 5.3 X86, Non-thread-safe VC9 build

Note: L'extension WinCache peut uniquement être utilisée lorsque IIS est configuré pour exécuter PHP via FastCGI.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/wincache.

Il y a deux packages pour cette extension: un package est pour les versions PHP 5.2.X, et l'autre package est pour PHP 5.3.X. Choisissez le package approprié à la version PHP utilisée.

Pour installer et activer l'extension, suivez ces étapes :

  1. Décompressez le package dans un endroit temporaire.

  2. Copiez le fichier php_wincache.dll dans le dossier d'extensions PHP. En général, ce dossier se nomme "ext" et est situé dans le même dossier avec tout les fichiers binaires PHP. Par exemple : C:\Program Files\PHP\ext.

  3. Avec un éditeur de texte, ouvrez le fichier php.ini, qui se trouve généralement dans le même dossier que tout les fichiers binaires PHP. Par exemple : C:\Program Files\PHP\php.ini.

  4. Ajoutez la ligne suivante à la fin du fichier php.ini : extension = php_wincache.dll.

  5. Enregistrez et fermez le fichier php.ini.

  6. Redémarrez le pool d'application IIS pour que PHP récupère les changements de configuration. Pour vérifier que l'extension a été activée, créez un fichier nommé phpinfo.php contenant un appel à la fonction phpinfo.

  7. Sauvez le fichier phpinfo.php dans le répertoire racine d'un site Web IIS qui utilise PHP, puis ouvrez un navigateur et faites une requête sur http://localhost/phpinfo.php. Cherchez une section appelée wincache dans la page retournée. Si l'extension est activée, alors la sortie de phpinfo listera les paramètres de configuration fournis par WinCache.

Note: Ne pas oublier de supprimer le fichier phpinfo.php du répertoire racine après avoir vérifié que l'extension a été activée.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Le tableau suivant répertorie et explique les paramètres de configuration fournis par l'extension WinCache :

Options de configuration WinCache
Nom | Défaut | Minimum | Maximum | Modifiable | Historique
wincache.fcenabled | "1" | "0" | "1" | PHP_INI_ALL | Disponible depuis WinCache 1.0.0
wincache.fcenabledfilter | "NULL" | "NULL" | "NULL" | PHP_INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.fcachesize | "24" | "5" | "255" | PHP_INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.fcndetect | "1" | "0" | "1" | PHP_INI_SYSTEM | Disponible depuis WinCache 1.1.0
wincache.maxfilesize | "256" | "10" | "2048" | PHP_INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.ocenabled | "1" | "0" | "1" | PHP_INI_ALL | Disponible depuis WinCache 1.0.0. Supprimé depuis 2.0.0.0
wincache.ocenabledfilter | "NULL" | "NULL" | "NULL" | PHP_INI_SYSTEM | Disponible depuis WinCache 1.0.0. Supprimé depuis 2.0.0.0
wincache.ocachesize | "96" | "15" | "255" | PHP_INI_SYSTEM | Disponible depuis WinCache 1.0.0. Supprimé depuis 2.0.0.0
wincache.filecount | "4096" | "1024" | "16384" | PHP_INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.chkinterval | "30" | "0" | "300" | PHP_INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.ttlmax | "1200" | "0" | "7200" | PHP_INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.enablecli | 0 | 0 | 1 | PHP_INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.ignorelist | NULL | NULL | NULL | PHP_INI_ALL | Disponible depuis WinCache 1.0.0
wincache.namesalt | NULL | NULL | NULL | PHP_INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.ucenabled | 1 | 0 | 1 | PHP_INI_SYSTEM | Disponible depuis WinCache 1.1.0
wincache.ucachesize | 8 | 5 | 85 | PHP_INI_SYSTEM | Disponible depuis WinCache 1.1.0
wincache.scachesize | 8 | 5 | 85 | PHP_INI_SYSTEM | Disponible depuis WinCache 1.1.0
wincache.rerouteini | NULL | NULL | NULL | PHP_INI_SYSTEM | Disponible depuis WinCache 1.2.0. Retiré dans la version 1.3.7
wincache.reroute_enabled | 1 | 0 | 1 | PHP_INI_SYSTEM | PHP_INI_PERDIR | Disponible depuis WinCache 1.3.7
wincache.srwlocks | 1 | 0 | 1 | PHP_INI_SYSTEM | Disponible depuis WinCache 1.3.6.3. Supprimé depuis la version 2.0.0.0
wincache.filemapdir | NULL | NULL | NULL | PHP_INI_SYSTEM | Disponible depuis WinCache 1.3.7.4
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

wincache.fcenabled boolean
Active ou désactive la fonctionnalité de cache de fichiers.
wincache.fcenabledfilter string
Définit une liste séparée par des virgules, d'identificateurs de site Web IIS où le cache de fichiers doit être activé ou désactivé. Ce paramètre fonctionne en conjonction avec wincache.fcenabled : Si wincache.fcenabled est réglé à 1, alors les sites listés dans wincache.fcenabledfilter auront le cache de fichiers désactivé; si wincache.fcenabled est réglé à 0, alors les sites listés dans wincache.fcenabledfilter auront le cache de fichiers activé.
wincache.fcachesize integer
Définit la taille maximale de mémoire (en mégaoctets) qui est allouée pour le cache de fichiers. Si la taille totale de tous les fichiers en cache dépasse la valeur spécifiée dans ce paramètre, alors la plupart des fichiers périmés seront retirés du cache de fichiers.
wincache.fcndetect boolean
Active ou désactive les notifications de détection de modification de fichier. Si la notification est supporté, alors elle sera utilisé pour rafraîchir l'opcode ainsi que les entrées du fichier présentes dans le cache aussitôt la modification correspondante des fichiers effectuée sur le système de fichiers. Si la notification n'est pas supportée, par exemple lors de l'utilisation de fichiers partagés par le réseau, alors Wincache vérifiera les modifications de fichiers à intervalle régulier spécifié par le paramètre wincache.chkinterval.
wincache.maxfilesize integer
Définit la taille maximale autorisée (en kilo-octets) pour un fichier unique qui sera mis en cache. Si un fichier a une taille supérieure à la valeur spécifiée, le fichier ne sera pas mis en cache. Ce paramètre s'applique à la mémoire cache de fichier seulement.
wincache.ocenabled boolean
Avertissement

Cette option a été SUPPRIMEE depuis la version 2.0.0.0

Active ou désactive la fonctionnalité de cache opcode
wincache.ocenabledfilter string
Avertissement

Cette option a été SUPPRIMEE depuis la version 2.0.0.0

Définit une liste séparée par des virgules, d'identificateurs de site Web IIS où le cache opcode doit être activé ou désactivé. Ce paramètre fonctionne en conjonction avec wincache.ocenabled : Si wincache.ocenabled est réglé à 1, alors les sites listés dans wincache.ocenabledfilter auront le cache opcode désactivé; si wincache.ocenabled est réglé à 0, alors les sites listés dans wincache.ocenabledfilter auront le cache opcode activé.
wincache.ocachesize integer
Avertissement

Cette option a été SUPPRIMEE depuis la version 2.0.0.0

Définit la taille maximum de mémoire (en mégaoctets) qui est allouée pour le cache opcode. Si la taille du cache opcode dépasse la valeur spécifiée, alors l'opcode le plus ancien sera retiré du cache. Notez que la taille du cache d'opcode doit être au moins 3 fois plus grande que la taille du cache de fichiers. Si ce n'est pas le cas la taille du cache opcode sera automatiquement augmentée.
wincache.filecount integer
Définit combien de fichiers sont censés être mis en cache par l'extension, de sorte à ce qu'un montant de mémoire suffisant soit alloué au démarrage. Si le nombre de fichiers excède la valeur spécifiée, WinCache ré-allouera plus de mémoire comme demandé.
wincache.chkinterval integer
Définit la fréquence (en secondes) à laquelle l'extension vérifiera les changements de fichier de façon à rafraîchir le cache. Mettre cette option à 0 permet de désactiver le rafraîchissement du cache. Les changements de fichiers ne seront pas reflétés dans le cache à moins que l'entrée de cache soit supprimée par le récupérateur, que le pool d'applications IIS soit recyclé, ou que la fonction wincache_refresh_if_changed soit appelée.
wincache.ttlmax integer
Définit le temps de vie maximale (en secondes) pour une entrée de cache sans être utilisée. Définir ce paramètre à 0 désactive la récupérateur de cache, de façon à ce que les entrées du cache ne soient jamais supprimées du cache pendant la durée de vie du processus de travail IIS.
wincache.enablecli boolean
Définit si le cache est activé lorsque PHP fonctionne en ligne de commande (CLI) .
wincache.ignorelist string

Définit une liste de fichiers qui ne doivent pas être mis en cache par l'extension. La liste des fichiers est spécifiée en utilisant des noms de fichiers uniquement, séparés par le symbole pipe - "|".

Exemple #1 wincache.ignorelist exemple

wincache.ignorelist = "index.php|misc.php|admin.php"

wincache.namesalt string
Définit une chaîne qui sera utilisée lors du nommage des objets spécifiques à l'extension qui seront stockés dans la mémoire partagée. Ce paramètre est utilisé afin d'éviter les conflits qui peuvent être provoqués si d'autres applications dans un processus de travail IIS tente d'accéder à la mémoire partagée. La longueur de la chaîne namesalt ne peut être supérieure à 8 caractères.
wincache.ucenabled boolean
Active ou désactive la fonctionnalité de cache utilisateur.
wincache.ucachesize integer
Définit la taille maximale de mémoire (en mégaoctets) qui est allouée pour le cache utilisateur. Si la taille totale des variables stockées dans le cache utilisateur dépasse la valeur spécifiée, alors les plus anciennes variables seront retirées du cache.
wincache.scachesize integer
Définie la taille maximale de mémoire, en méga-octets, à allouer pour le cache de la session. Si la taille totale des données stockées dans le cache de la session excède la valeur spécifiée, alors les données les plus anciennes seront supprimées du cache.
wincache.rerouteini string
Avertissement

Cette option a été SUPPRIMEE depuis la versio 1.3.7. Voir wincache.reroute_enabled pour des fonctionnalités similaires depuis la version 1.3.7.

Indique un chemin absolu ou relatif vers le fichier reroute.ini contenant une liste de fonctions PHP dont les implémentations devraient être remplacées par les équivalents Wincache. Si un chemin relatif est passé, il est supposé relatif au fichier php-cgi.exe.
wincache.reroute_enabled boolean
Active ou désactive le reroutage de certaines fonctions d'entrées sorties sur des fichiers au travers du cache fichier
wincache.srwlocks boolean
Avertissement

Cette option a été SUPPRIMEE depuis la version 2.0.0.0

Active ou désactive l'utilisation de verrous partagés en lecture écriture. Le désactiver peut être utile lorsque surviennent des problèmes d'interblocage dans WinCache.
wincache.filemapdir string
Spécifie un chemin absolu vers un dossier ou WinCache va stocker les fichiers temporaires utilisés pour les segments de mémoire partagés. Ce dossier doit être sur la machine locale et non sur un système de fichier en réseau. Si le dossier n'est pas précisé, WinCache va utiliser le Windows System Page File pour tous les segments de mémoire partagés.


Script de statistiques WinCache

Le package d'installation pour WinCache inclut un script PHP, wincache.php, qui peut être utilisé pour obtenir des informations et des statistiques sur le cache.

Si l'extension WinCache a été installée via l'installeur de Microsoft Web Platform, alors ce script se trouve dans %SystemDrive%\Program Files\IIS\Windows Cache for PHP\. Sur une version 64 bits du système d'exploitation Windows Server, le script se trouve dans %SystemDrive%\Program Files (x86)\IIS\Windows Cache for PHP. Si l'extension a été installée manuellement, alors le fichier wincache.php sera situé dans le même dossier à partir duquel le contenu du package d'installation a été extrait.

Pour utiliser wincache.php, copiez-le dans le dossier racine d'un site Web ou dans n'importe quel sous-dossier. Pour protéger le script, ouvrez-le dans n'importe quel éditeur et remplacez les valeurs des constantes USERNAME et PASSWORD. Si n'importe quel autre authentification IIS est activée sur le serveur, alors suivez les instructions dans les commentaires :

Exemple #1 Configuration de l'authentification pour wincache.php

<?php
/**
 * ======================== CONFIGURATION SETTINGS ==============================
 * If you do not want to use authentication for this page, set USE_AUTHENTICATION to 0.
 * If you use authentication then replace the default password.
 */
define('USE_AUTHENTICATION', 1);
define('USERNAME', 'wincache');
define('PASSWORD', 'wincache');

/**
 * The Basic PHP authentication will work only when IIS is configured to support
 * Anonymous Authentication' and nothing else. If IIS is configured to support/use
 * any other kind of authentication like Basic/Negotiate/Digest etc, this will not work.
 * In that case use the array below to define the names of users in your
 * domain/network/workgroup which you want to grant access to.
 */
$user_allowed = array('DOMAIN\user1', 'DOMAIN\user2', 'DOMAIN\user3');

/**
 * If the array contains string 'all', then all the users authenticated by IIS
 * will have access to the page. Uncomment the below line and comment above line
 * to grant access to all users who gets authenticated by IIS.
 */
/* $user_allowed = array('all'); */

/** ===================== END OF CONFIGURATION SETTINGS ========================== */
?>

Note: Protégez toujours le script wincache.php en utilisant soit le mécanisme d'authentification intégré ou le mécanisme d'authentification du serveur. Laissez ce script non protégé peut compromettre la sécurité de votre application web et du serveur.


WinCache Session Handler

Le gestionnaire de session WinCache (disponible depuis WinCache 1.1.0) peut être utilisé pour configurer PHP pour stocker les données de session dans la mémoire partagée du cache de session. L'utilisation de la mémoire partagée au lieu de la session par défaut aide à améliorer les performances des applications PHP qui stockent de grandes quantités de données dans des objets de session. Le cache de session Wincache utilise des fichiers basés sur la mémoire partagée, ce qui assure que les données de session ne seront pas perdues lors du recyclage de la file d'attente des applications IIS.

Pour configurer PHP pour utiliser le gestionnaire de session WinCache mettez le paramètre session.save_handler du fichier php.ini à wincache. Par défaut, l'endroit où sont stockés les fichiers temporaires sous Windows est utilisé pour stocker les données de session. Pour changer cet endroit, utilisez la directive session.save_path.

Exemple #1 Activer le gestionnaire de session WinCache

session.save_handler = wincache
session.save_path = C:\inetpub\temp\session\


WinCache Functions Reroutes

NOTE: wincache.rerouteini a été retiré avec WinCache 1.3.7.0. Cela a été remplacé par le reroutage automatique de fonction. Voir : wincache.reroute_enabled

Les fonctionnalités WinCache de re routages de fonctions (disponibles depuis WinCache 1.2.0, retirée depuis WinCache 1.3.7.0) peuvent être utilisées pour remplacer des fonctions PHP natives par leur équivalent optimisé pour des cas particuliers. L'extension Wincache inclut des implémentations de fonctions PHP optimisées pour Windows, notamment dans les cas d'accès réseau ou système de fichiers. Les fonctions suivantes sont concernées :

  • file_exists
  • file_get_contents
  • readfile
  • is_readable
  • is_writable
  • is_dir
  • realpath
  • filesize

Pour configurer le re routage de fonctions avec Wincache, utilisez le fichier reroute.ini inclut dans le paquet. Copiez le dans le dossier où se trouve php.ini. Après, ajoutez wincache.rerouteini dans php.ini et précisez le chemin absolu ou relatif vers reroute.ini.

Exemple #1 Activation des fonctionnalités de re routage des fonctions de WinCache

wincache.rerouteini = C:\PHP\reroute.ini

Note: Si activé, il est recommandé d'augmenter la taille du cache des fichiers. Ceci peut être fait en utilisant le paramètre wincache.fcachesize.

Le fichier reroute.ini contient la correspondance entre la fonction PHP native et l'équivalent Wincache. Chaque ligne dans le fichier définit une correspondance. Voici la syntaxe:

<PHP function name>:[<number of function parameters>]=<wincache function name>

Un exemple de fichier est donné plus bas. Dans cet exemple, les appels aux fonctions PHP file_get_contents() seront remplacés par wincache_file_get_contents() seulement si le nombre de paramètres passés à la fonction est inférieur ou égal à deux. C'est utile de préciser le nombre de paramètres lorsque la fonction de remplacement n'est pas conçue pour tous les utiliser.

Exemple #2 Reroute.ini

[FunctionRerouteList]
file_exists=wincache_file_exists
file_get_contents:2=wincache_file_get_contents
readfile:2=wincache_readfile
is_readable=wincache_is_readable
is_writable=wincache_is_writable
is_writeable=wincache_is_writable
is_file=wincache_is_file
is_dir=wincache_is_dir
realpath=wincache_realpath
filesize=wincache_filesize


  • « WinCache Functions Reroutes
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


  • « Types de ressources
  • Fonctions WinCache »
  • PHP Manual
  • WinCache
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions WinCache

Sommaire

  • wincache_fcache_fileinfo — Extrait des informations sur les fichiers mis en cache dans le cache de fichiers
  • wincache_fcache_meminfo — Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.
  • wincache_lock — Acquière un verrou exclusif sur une clé donnée
  • wincache_ocache_fileinfo — Extrait des informations sur les fichiers mis en cache dans le cache opcode
  • wincache_ocache_meminfo — Extrait des informations sur l'utilisation du cache opcode
  • wincache_refresh_if_changed — Actualise les entrées du cache pour les fichiers mis en cache
  • wincache_rplist_fileinfo — Récupère des informations du cache sur un chemin de fichier résolu
  • wincache_rplist_meminfo — Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu
  • wincache_scache_info — Récupère des informations sur des fichiers mis en cache
  • wincache_scache_meminfo — Récupère des informations sur l'utilisation de la mémoire du cache
  • wincache_ucache_add — Ajoute une nouvelle variable au cache utilisateur
  • wincache_ucache_cas — Compare la variable avec son ancienne valeur et lui assigne une nouvelle valeur
  • wincache_ucache_clear — Supprime le contenu d'une entrée du cache utilisateur
  • wincache_ucache_dec — Décrémente la valeur associée à une clé
  • wincache_ucache_delete — Supprime les variables du cache utilisateur
  • wincache_ucache_exists — Vérifie si une variable existe dans le cache utilisateur
  • wincache_ucache_get — Récupère une variable stokée dans le cache utilisateur
  • wincache_ucache_inc — Incrémente la valeur associée à une clé
  • wincache_ucache_info — Récupère des informations sur des données stokées dans le cache utilisateur
  • wincache_ucache_meminfo — Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_set — Ajoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache
  • wincache_unlock — Libère un verrou exclusif sur une clé donnée


Extrait des informations sur les fichiers mis en cache dans le cache de fichiers

  • « Fonctions WinCache
  • wincache_fcache_meminfo »
  • PHP Manual
  • Fonctions WinCache
  • Extrait des informations sur les fichiers mis en cache dans le cache de fichiers

wincache_fcache_fileinfo

(PECL wincache >= 1.0.0)

wincache_fcache_fileinfo — Extrait des informations sur les fichiers mis en cache dans le cache de fichiers

Description

array wincache_fcache_fileinfo ([ bool $summaryonly = false ] )

Extrait des informations sur le contenu du cache de fichiers et son utilisation.

Liste de paramètres

summaryonly

Si le tableau retourné doit contenir des informations sur chaque entrée du cache en plus du résumé sur les fichiers du cache.

Valeurs de retour

Tableau de méta-données sur le cache de fichier ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • total_cache_uptime - Temps d'activité total en secondes du cache de fichiers
  • total_file_count - Nombre total de fichiers actuellement dans le cache de fichiers
  • total_hit_count - Nombre de fois où les fichiers ont été servis à partir du cache du fichiers
  • total_miss_count - Nombre de fois que les fichiers n'ont pas été trouvés dans le cache de fichiers

  • file_entries - Tableau contenant les informations sur tous les fichiers mis en cache:

    • file_name - Nom et chemin absolu du fichier en cache
    • add_time - Temps en secondes depuis que le fichier a été ajouté au cache de fichiers
    • use_time - Temps en secondes depuis que le fichier a été consulté dans le cache de fichier
    • last_check - Temps en secondes depuis la dernière vérification de modifications
    • hit_count - Nombre de fois que le fichier a été servis à partir du cache
    • file_size - Taille en bytes du fichier caché

Exemples

Exemple #1 Un exemple de wincache_fcache_fileinfo()

<pre>
<?php
print_r(wincache_fcache_fileinfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(   [total_cache_uptime] => 3234
    [total_file_count] => 5
    [total_hit_count] => 0
    [total_miss_count] => 1
    [file_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 1
                    [use_time] => 0
                    [last_check] => 1
                    [hit_count] => 1
                    [file_size] => 2435
                )
            [2] => Array (...iterates for each cached file)
        )
)

Voir aussi

  • wincache_fcache_meminfo() - Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.
  • wincache_ocache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache opcode
  • wincache_ocache_meminfo() - Extrait des informations sur l'utilisation du cache opcode
  • wincache_rplist_fileinfo() - Récupère des informations du cache sur un chemin de fichier résolu
  • wincache_rplist_meminfo() - Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu
  • wincache_refresh_if_changed() - Actualise les entrées du cache pour les fichiers mis en cache
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • wincache_scache_info() - Récupère des informations sur des fichiers mis en cache
  • wincache_scache_meminfo() - Récupère des informations sur l'utilisation de la mémoire du cache


Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.

  • « wincache_fcache_fileinfo
  • wincache_lock »
  • PHP Manual
  • Fonctions WinCache
  • Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.

wincache_fcache_meminfo

(PECL wincache >= 1.0.0)

wincache_fcache_meminfo — Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.

Description

array wincache_fcache_meminfo ( void )

Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.

Valeurs de retour

Tableau de méta-données sur l'utilisation de la mémoire du cache de fichiers ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants:

  • memory_total - Quantité de mémoire en octets allouée pour le cache de fichiers
  • memory_free - Quantité de mémoire libre en octets disponible pour le cache de fichiers
  • num_used_blks - Nombre de blocs mémoire utilisés par le cache de fichiers
  • num_free_blks - Nombre de blocs mémoire libres disponibles pour le cache de fichiers
  • memory_overhead - Quantité de mémoire en bytes utilisée pour la structure interne du cache de fichiers

Exemples

Exemple #1 Un exemple de wincache_fcache_meminfo()

<pre>
<?php
print_r(wincache_fcache_meminfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [memory_total] => 134217728
    [memory_free] => 131339120
    [num_used_blks] => 361
    [num_free_blks] => 3
    [memory_overhead] => 5856
)

Voir aussi

  • wincache_fcache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache de fichiers
  • wincache_ocache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache opcode
  • wincache_ocache_meminfo() - Extrait des informations sur l'utilisation du cache opcode
  • wincache_rplist_fileinfo() - Récupère des informations du cache sur un chemin de fichier résolu
  • wincache_rplist_meminfo() - Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu
  • wincache_refresh_if_changed() - Actualise les entrées du cache pour les fichiers mis en cache
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • wincache_scache_info() - Récupère des informations sur des fichiers mis en cache
  • wincache_scache_meminfo() - Récupère des informations sur l'utilisation de la mémoire du cache


Acquière un verrou exclusif sur une clé donnée

  • « wincache_fcache_meminfo
  • wincache_ocache_fileinfo »
  • PHP Manual
  • Fonctions WinCache
  • Acquière un verrou exclusif sur une clé donnée

wincache_lock

(PECL wincache >= 1.1.0)

wincache_lock — Acquière un verrou exclusif sur une clé donnée

Description

bool wincache_lock ( string $key [, bool $isglobal = false ] )

Obtient un verrou exclusif sur une clé donnée. L'exécution du script courant sera bloqué tant que le verrou ne pourra pas être obtenu. Une fois le verrou obtenu, les autres scripts tentant de requérir le verrou en utilisant la même clé seront bloqués, tant que le script courant n'aura pas libéré le verrou en utilisant la fonction wincache_unlock().

Avertissement

L'utilisation de la fonction wincache_lock() et de la fonction wincache_unlock() peut conduire à des verrous morts lors de l'exécution de scripts PHP sur des environnements multi-processus, comme FastCGI. N'utilisez pas ces fonctions tant que vous n'êtes pas absolument certain d'en avoir besoin. Pour la majorité des opérations sur le cache utilisateur, il n'est pas nécessaire de les utiliser.

Liste de paramètres

key

Nom de la clé du cache dont nous souhaitons obtenir un verrou.

isglobal

Contrôle si le contexte du verrou est local ou au niveau système. Les verrous locaux ont un contexte au niveau applicatif dans le cas de l'utilisation sous IIS Fast CGI ou au niveau de tous les processus PHP qui ont le même identifiant parent de processus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wincache_lock()

<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock(“lock_txt_lock”)) { // obtient un verrou exclusif
    ftruncate($fp, 0); // tronque le fichier
    fwrite($fp, "On écrit quelque chose ici\n");
    wincache_unlock(“lock_txt_lock”); // libère le verrou
} else {
    echo "Impossible d'obtenir le verrou !";
}
fclose($fp);
?>

Voir aussi

  • wincache_unlock() - Libère un verrou exclusif sur une clé donnée
  • wincache_ucache_set() - Ajoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache
  • wincache_ucache_get() - Récupère une variable stokée dans le cache utilisateur
  • wincache_ucache_delete() - Supprime les variables du cache utilisateur
  • wincache_ucache_clear() - Supprime le contenu d'une entrée du cache utilisateur
  • wincache_ucache_exists() - Vérifie si une variable existe dans le cache utilisateur
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • wincache_scache_info() - Récupère des informations sur des fichiers mis en cache


Extrait des informations sur les fichiers mis en cache dans le cache opcode

  • « wincache_lock
  • wincache_ocache_meminfo »
  • PHP Manual
  • Fonctions WinCache
  • Extrait des informations sur les fichiers mis en cache dans le cache opcode

wincache_ocache_fileinfo

(PECL wincache >= 1.0.0)

wincache_ocache_fileinfo — Extrait des informations sur les fichiers mis en cache dans le cache opcode

Description

array wincache_ocache_fileinfo ([ bool $summaryonly = false ] )

Extrait des informations sur le contenu du cache opcode et son utilisation.

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Liste de paramètres

summaryonly

Contrôle si le tableau retourné doit contenir des informations sur les entrées individuelles du cache en plus du résumé sur le cache opcode.

Valeurs de retour

Tableau de méta-données sur le cache opcode ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants:

  • total_cache_uptime - Temps d'activité total en secondes du cache opcode
  • total_file_count - Nombre total de fichiers actuellement dans le cache opcode
  • total_hit_count - Nombre total de fois où l'opcode compilé a été servis par le cache
  • total_miss_count - Nombre de fois où l'opcode compilé n'a pas été trouvé dans le cache
  • is_local_cache - true si les méta-données du cache sont pour une instance de cache local, false si les méta-données sont pour le cache global.

  • file_entries - Tableau contenant les informations sur tous les fichiers mis en cache:

    • file_name - Nom de fichier absolu du fichier en cache
    • add_time - Temps en secondes depuis l'ajout du fichier dans le cache opcode
    • use_time - Temps en secondes depuis la consultation du fichier dans le cache opcode
    • last_check - Temps en secondes depuis où le fichier a été vérifié pour les modifications
    • hit_count - Nombre de fois où le fichier a été servis par le cache
    • function_count - Nombre de fonctions dans le cache
    • class_count - Nombre de classes dans le cache

Exemples

Exemple #1 Un exemple de wincache_ocache_fileinfo()

<pre>
<?php
print_r(wincache_ocache_fileinfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [total_cache_uptime] => 17357
    [total_file_count] => 121
    [total_hit_count] => 36562
    [total_miss_count] => 201
    [file_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 17356
                    [use_time] => 7
                    [last_check] => 10
                    [hit_count] => 454
                    [function_count] => 0
                    [class_count] => 1
                )
            [2] => Array (...iterates for each cached file)
        )
)

Voir aussi

  • wincache_fcache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache de fichiers
  • wincache_fcache_meminfo() - Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.
  • wincache_ocache_meminfo() - Extrait des informations sur l'utilisation du cache opcode
  • wincache_rplist_fileinfo() - Récupère des informations du cache sur un chemin de fichier résolu
  • wincache_rplist_meminfo() - Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu
  • wincache_refresh_if_changed() - Actualise les entrées du cache pour les fichiers mis en cache
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • wincache_scache_info() - Récupère des informations sur des fichiers mis en cache
  • wincache_scache_meminfo() - Récupère des informations sur l'utilisation de la mémoire du cache


Extrait des informations sur l'utilisation du cache opcode

  • « wincache_ocache_fileinfo
  • wincache_refresh_if_changed »
  • PHP Manual
  • Fonctions WinCache
  • Extrait des informations sur l'utilisation du cache opcode

wincache_ocache_meminfo

(PECL wincache >= 1.0.0)

wincache_ocache_meminfo — Extrait des informations sur l'utilisation du cache opcode

Description

array wincache_ocache_meminfo ( void )

Extrait des informations sur l'utilisation de la mémoire par le cache opcode.

Valeurs de retour

Tableau de méta-données sur l'utilisation de la mémoire cache opcode ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • memory_total - Quantité de mémoire en octets, allouée pour le cache opcode
  • memory_free - Quantité de mémoire libre en octets, disponible pour le cache opcode
  • num_used_blks - Nombre de blocs mémoire utilisés par le cache opcode
  • num_free_blks - Nombre de blocs mémoire libres disponibles pour le cache opcode
  • memory_overhead - Quantité de mémoire en octets utilisée pour la structure interne du cache opcode

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Exemples

Exemple #1 Un exemple de wincache_ocache_meminfo()

<pre>
<?php
print_r(wincache_ocache_meminfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [memory_total] => 134217728
    [memory_free] => 112106972
    [num_used_blks] => 15469
    [num_free_blks] => 4
    [memory_overhead] => 247600
)

Voir aussi

  • wincache_fcache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache de fichiers
  • wincache_fcache_meminfo() - Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.
  • wincache_ocache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache opcode
  • wincache_rplist_fileinfo() - Récupère des informations du cache sur un chemin de fichier résolu
  • wincache_rplist_meminfo() - Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu
  • wincache_refresh_if_changed() - Actualise les entrées du cache pour les fichiers mis en cache
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • wincache_scache_info() - Récupère des informations sur des fichiers mis en cache
  • wincache_scache_meminfo() - Récupère des informations sur l'utilisation de la mémoire du cache


Actualise les entrées du cache pour les fichiers mis en cache

  • « wincache_ocache_meminfo
  • wincache_rplist_fileinfo »
  • PHP Manual
  • Fonctions WinCache
  • Actualise les entrées du cache pour les fichiers mis en cache

wincache_refresh_if_changed

(PECL wincache >= 1.0.0)

wincache_refresh_if_changed — Actualise les entrées du cache pour les fichiers mis en cache

Description

bool wincache_refresh_if_changed ([ array $files = NULL ] )

Actualise les entrées du cache pour les fichiers dont les noms ont été passés dans les arguments d'entrée. Si aucun argument n'est précisé, alors, actualise toutes les entrées du cache.

Liste de paramètres

files

Tableau de noms de fichiers pour les fichiers qui ont besoin d'être actualisés. Un chemin de fichier absolu ou relatif peut être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

WinCache effectue des contrôles réguliers sur les fichiers mis en cache pour veiller à ce que, si un fichier ai changé, l'entrée correspondante dans la mémoire cache sois mis à jour. Par défaut, cette vérification est effectuée toutes les 30 secondes. Si par exemple un script PHP met à jour un autre script PHP où les configurations de l'application son stockés, alors il peu arriver que après les changement de configuration soient sauvés, l'application utilise toujours les anciens paramètres pour quelque temps jusqu'à ce que le cache sois actualisé. Dans ce cas, il est préférable d'actualiser le cache juste après que le fichier ai été modifié. L'exemple qui suis montre comment cela peut être effectué.

Exemple #1 Un exemple de wincache_refresh_if_changed()

<?php
$filename = 'C:\inetpub\wwwroot\config.php';
$handle = fopen($filename, 'w+');
if ($handle === FALSE) die('Failed to open file '.$filename.' for writing');
fwrite($handle, '<?php $setting=something; ?>');
fclose($handle);
wincache_refresh_if_changed(array($filename));
?>

Voir aussi

  • wincache_fcache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache de fichiers
  • wincache_fcache_meminfo() - Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.
  • wincache_ocache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache opcode
  • wincache_ocache_meminfo() - Extrait des informations sur l'utilisation du cache opcode
  • wincache_rplist_fileinfo() - Récupère des informations du cache sur un chemin de fichier résolu
  • wincache_rplist_meminfo() - Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur


Récupère des informations du cache sur un chemin de fichier résolu

  • « wincache_refresh_if_changed
  • wincache_rplist_meminfo »
  • PHP Manual
  • Fonctions WinCache
  • Récupère des informations du cache sur un chemin de fichier résolu

wincache_rplist_fileinfo

(PECL wincache >= 1.0.0)

wincache_rplist_fileinfo — Récupère des informations du cache sur un chemin de fichier résolu

Description

array wincache_rplist_fileinfo ([ bool $summaryonly = false ] )

Récupère des informations sur une cartographie en cache entre des chemins relatifs de fichiers et leurs correspondances en chemins absolus.

Valeurs de retour

Un tableau de données méta contenant le contenu du cache d'un chemin de fichier résolu ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • total_file_count - nombre total de chemins de fichiers stockés dans le cache

  • rplist_entries - un tableau contenant les informations sur les chemins de fichier présents en cache :

    • resolve_path - chemin vers le fichier
    • subkey_data - chemin absolu correspondant

Exemples

Exemple #1 Exemple avec wincache_rplist_fileinfo()

<pre>
<?php
print_r(wincache_rplist_fileinfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [total_file_count] => 5
    [rplist_entries] => Array
        (
            [1] => Array
                (
                    [resolve_path] => checkcache.php
                    [subkey_data] => c:\inetpub\wwwroot|c:\inetpub\wwwroot\checkcache.php
                )

            [2] => Array (...iterates for each cached file)
        )
)

Voir aussi

  • wincache_fcache_meminfo() - Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.
  • wincache_fcache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache de fichiers
  • wincache_ocache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache opcode
  • wincache_ocache_meminfo() - Extrait des informations sur l'utilisation du cache opcode
  • wincache_rplist_meminfo() - Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu
  • wincache_refresh_if_changed() - Actualise les entrées du cache pour les fichiers mis en cache
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • wincache_scache_info() - Récupère des informations sur des fichiers mis en cache
  • wincache_scache_meminfo() - Récupère des informations sur l'utilisation de la mémoire du cache


Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu

  • « wincache_rplist_fileinfo
  • wincache_scache_info »
  • PHP Manual
  • Fonctions WinCache
  • Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu

wincache_rplist_meminfo

(PECL wincache >= 1.0.0)

wincache_rplist_meminfo — Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu

Description

array wincache_rplist_meminfo ( void )

Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu.

Valeurs de retour

Un tableau de données méta qui décrit l'utilisation de la mémoire par le cache de chemin de fichier résolu. ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • memory_total - nombre total de mémoire, en octets, alouée au cache de chemins de fichiers résolus
  • memory_free - mémoire libre, en octets, disponible pour le cache de chemins de fichiers résolus
  • num_used_blks - blocs mémoires utilisés par le cache de chemins de fichiers résolus
  • num_free_blks - nombre de blocs mémoires de libre pour le cache des chemins de fichiers résolus
  • memory_overhead - mémoire, en octets, utilisée pour la structure interne du cache des chemins de fichiers résolus

Exemples

Exemple #1 Exemple avec wincache_rplist_meminfo()

<pre>
<?php
print_r(wincache_rplist_meminfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [memory_total] => 9437184
    [memory_free] => 9416744
    [num_used_blks] => 23
    [num_free_blks] => 1
    [memory_overhead] => 416
)

Voir aussi

  • wincache_fcache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache de fichiers
  • wincache_fcache_meminfo() - Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.
  • wincache_ocache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache opcode
  • wincache_ocache_meminfo() - Extrait des informations sur l'utilisation du cache opcode
  • wincache_rplist_fileinfo() - Récupère des informations du cache sur un chemin de fichier résolu
  • wincache_refresh_if_changed() - Actualise les entrées du cache pour les fichiers mis en cache
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • wincache_scache_info() - Récupère des informations sur des fichiers mis en cache
  • wincache_scache_meminfo() - Récupère des informations sur l'utilisation de la mémoire du cache


Récupère des informations sur des fichiers mis en cache

  • « wincache_rplist_meminfo
  • wincache_scache_meminfo »
  • PHP Manual
  • Fonctions WinCache
  • Récupère des informations sur des fichiers mis en cache

wincache_scache_info

(PECL wincache >= 1.1.0)

wincache_scache_info — Récupère des informations sur des fichiers mis en cache

Description

array wincache_scache_info ([ bool $summaryonly = false ] )

Récupère des informations sur le contenu du cache et son utilisation.

Liste de paramètres

summaryonly

Contrôle si le tableau retourné doit contenir des informations sur des entrées individuelles du cache en plus du résumé du cache.

Valeurs de retour

Un tableau de données méta sur le cache pour cette session ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • total_cache_uptime - durée total (en secondes) d'activation du cache
  • total_item_count - nombre total d'éléments contenus actuellement dans le cache
  • is_local_cache - TRUE si les méta-données du cache sont pour une instance de cache locale, FALSE si elles sont pour un cache global
  • total_hit_count - nombre total de fois que les données ont été servis depuis le cache
  • total_miss_count - nombre total de fois que les données ont été trouvées dans le cache

  • scache_entries - un tableau contenant les informations sur les éléments mis en cache :

    • key_name - nom de la clé utilisé pour stocker les données
    • value_type - type de la valeur stockée
    • use_time - durée, en secondes, depuis le dernier accès du fichier depuis le cache opcode
    • last_check - durée, en secondes, depuis la dernière fois où le fichier a été vérifié afin de détection des modifications
    • ttl_seconds - durée restante avant suppression des données du cache, 0 signifiant qu'elles ne seront jamais supprimées
    • age_seconds - l'âge des données dans le cache (i.e. depuis leurs insertions)
    • hitcount - nombre de fois que les données ont été servies depuis le cache

Exemples

Exemple #1 Exemple avec wincache_scache_info()

<pre>
<?php
print_r(wincache_scache_info());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [total_cache_uptime] => 17357
    [total_file_count] => 121
    [total_hit_count] => 36562
    [total_miss_count] => 201
    [scache_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 17356
                    [use_time] => 7
                    [last_check] => 10
                    [hit_count] => 454
                    [function_count] => 0
                    [class_count] => 1
                )
            [2] => Array (...iterates for each cached file)
        )
)

Voir aussi

  • wincache_fcache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache de fichiers
  • wincache_fcache_meminfo() - Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.
  • wincache_ocache_meminfo() - Extrait des informations sur l'utilisation du cache opcode
  • wincache_rplist_fileinfo() - Récupère des informations du cache sur un chemin de fichier résolu
  • wincache_rplist_meminfo() - Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu
  • wincache_refresh_if_changed() - Actualise les entrées du cache pour les fichiers mis en cache
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • wincache_scache_meminfo() - Récupère des informations sur l'utilisation de la mémoire du cache


Récupère des informations sur l'utilisation de la mémoire du cache

  • « wincache_scache_info
  • wincache_ucache_add »
  • PHP Manual
  • Fonctions WinCache
  • Récupère des informations sur l'utilisation de la mémoire du cache

wincache_scache_meminfo

(PECL wincache >= 1.1.0)

wincache_scache_meminfo — Récupère des informations sur l'utilisation de la mémoire du cache

Description

array wincache_scache_meminfo ( void )

Récupère des informations sur l'utilisation mémoire du cache.

Valeurs de retour

Un tableau de données méta sur l'utilisation de la mémoire du cache ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • memory_total - mémoire, en octets, allouée au cache
  • memory_free - mémoire disponible, en octets, pour le cache
  • num_used_blks - nombre de blocs mémoires utilisés par le cache
  • num_free_blks - nombre de blocs mémoires disponibles pour le cache
  • memory_overhead - mémoire, en octets, utilisé par les structures internes du cache

Exemples

Exemple #1 Exemple avec wincache_scache_meminfo()

<pre>
<?php
print_r(wincache_scache_meminfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [memory_total] => 5242880
    [memory_free] => 5215056
    [num_used_blks] => 6
    [num_free_blks] => 3
    [memory_overhead] => 176
)

Voir aussi

  • wincache_fcache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache de fichiers
  • wincache_fcache_meminfo() - Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.
  • wincache_ocache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache opcode
  • wincache_rplist_fileinfo() - Récupère des informations du cache sur un chemin de fichier résolu
  • wincache_rplist_meminfo() - Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu
  • wincache_refresh_if_changed() - Actualise les entrées du cache pour les fichiers mis en cache
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • wincache_scache_info() - Récupère des informations sur des fichiers mis en cache


Ajoute une nouvelle variable au cache utilisateur

  • « wincache_scache_meminfo
  • wincache_ucache_cas »
  • PHP Manual
  • Fonctions WinCache
  • Ajoute une nouvelle variable au cache utilisateur

wincache_ucache_add

(PECL wincache >= 1.1.0)

wincache_ucache_add — Ajoute une nouvelle variable au cache utilisateur

Description

bool wincache_ucache_add ( string $key , mixed $value [, int $ttl = 0 ] )
bool wincache_ucache_add ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] )

Ajoute une variable au cache utilisateur, uniquement si elle n'existe pas déjà dans le cache. La variable restera dans le cache tant que le délai d'expiration n'est pas atteint ou qu'elle n'est effacée par la fonction wincache_ucache_delete() ou la fonction wincache_ucache_clear().

Liste de paramètres

key

Stocke la variable en utilisant le nom key. Si une variable correspondant à la même clé est déjà présente dans le cache, la fonction échouera et retournera FALSE. Le paramètre key est sensible à la casse. Pour écraser cette valeur, si key est présent, utilisez plutôt la fonction wincache_ucache_set(). key peut également être un tableau de paires nom => valeur où les noms seront utilisés comme clés. Ce format peut être utilisé pour ajouter de multiples valeurs dans le cache en une seule opération.

value

La valeur de la variable à stocker. Le paramètre Value supporte tous les types de données, sauf les ressources, comme des pointeurs de fichiers. Ce paramètre sera ignoré si le premier argument est un tableau. De façon général, il convient de passer la valeur NULL au paramètre value lors de l'utilisation d'un tableau pour le paramètre key. Si le paramètre value est un objet, ou un tableau contenant des objets, alors les objets seront linéarisés. Reportez-vous à la fonction __sleep() pour plus de détails sur la linéarisation d'objets.

values

Tableau associatif de clés et de valeurs.

ttl

Durée de vie de la variable dans le cache, en secondes. Après la durée spécifiée par le paramètre ttl, la variable stockée sera supprimée du cache. Ce paramètre prend, comme valeur par défaut, zéro (0), ce qui signifie que la variable restera dans le cache tant qu'elle n'est pas explicitement effacée en utilisant la fonction wincache_ucache_delete() ou la fonction wincache_ucache_clear().

Valeurs de retour

Si le paramètre key est une chaîne de caractères, la fonction retourne TRUE en cas de succès, FALSE si une erreur survient.

Si le paramètre key est un tableau, la fonction retourne :

  • Si toutes les paires nom => valeur du tableau peuvent être définies, la fonction retournera un tableau vide ;
  • Si toutes les paires nom => valeur du tableau ne peuvent être définies, la fonction retournera FALSE ;
  • Si certaines peuvent être définies, et d'autres non, la fonction retournera un tableau de paires nom => valeur n'ayant pû être définies dans le cache utilisateur.

Exemples

Exemple #1 Exemple avec wincache_ucache_add() et le paramètre key sous forme de chaîne de caractères

<?php
$bar = 'BAR';
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_get('foo'));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
string(3) "BAR"

Exemple #2 Exemple avec wincache_ucache_add() et le paramètre key sous forme d'un tableau

<?php
$colors_array = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

L'exemple ci-dessus va afficher :

array(0) { }
array(4) {
  ["green"]=> int(-1)
  ["Blue"]=> int(-1)
  ["yellow"]=> int(-1)
  ["cyan"]=> int(-1)
}
string(1) "6"

Voir aussi

  • wincache_ucache_set() - Ajoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache
  • wincache_ucache_get() - Récupère une variable stokée dans le cache utilisateur
  • wincache_ucache_delete() - Supprime les variables du cache utilisateur
  • wincache_ucache_clear() - Supprime le contenu d'une entrée du cache utilisateur
  • wincache_ucache_exists() - Vérifie si une variable existe dans le cache utilisateur
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • __sleep()


Compare la variable avec son ancienne valeur et lui assigne une nouvelle valeur

  • « wincache_ucache_add
  • wincache_ucache_clear »
  • PHP Manual
  • Fonctions WinCache
  • Compare la variable avec son ancienne valeur et lui assigne une nouvelle valeur

wincache_ucache_cas

(PECL wincache >= 1.1.0)

wincache_ucache_cas — Compare la variable avec son ancienne valeur et lui assigne une nouvelle valeur

Description

bool wincache_ucache_cas ( string $key , int $old_value , int $new_value )

Compare la variable associée avec la clé key avec la valeur old_value et si elle correspond, lui assigne la nouvelle valeur new_value.

Liste de paramètres

key

La clé key utilisé pour stocker la variable dans le cache. key est sensible à la casse.

old_value

L'ancienne valeur de la variable pointée par le paramètre key dans le cache utilisateur. La valeur doit être de type long, sinon, la fonction retournera FALSE.

new_value

La nouvelle valeur qui sera assignée à la variable pointée par la clé key si la correspondance a été trouvée. La valeur doit être de type long, sinon, la fonction retournera FALSE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wincache_ucache_cas()

<?php
wincache_ucache_set('counter', 2922);
var_dump(wincache_ucache_cas('counter', 2922, 1));
var_dump(wincache_ucache_get('counter'));
?>

L'exemple ci-dessus va afficher :

bool(true)
int(1)

Voir aussi

  • wincache_ucache_inc() - Incrémente la valeur associée à une clé
  • wincache_ucache_dec() - Décrémente la valeur associée à une clé


Supprime le contenu d'une entrée du cache utilisateur

  • « wincache_ucache_cas
  • wincache_ucache_dec »
  • PHP Manual
  • Fonctions WinCache
  • Supprime le contenu d'une entrée du cache utilisateur

wincache_ucache_clear

(PECL wincache >= 1.1.0)

wincache_ucache_clear — Supprime le contenu d'une entrée du cache utilisateur

Description

bool wincache_ucache_clear ( void )

Supprime toutes les valeurs stockées dans le cache utilisateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wincache_ucache_clear()

<?php
wincache_ucache_set('green', 1);
wincache_ucache_set('red', 2);
wincache_ucache_set('orange', 4);
wincache_ucache_set('blue', 8);
wincache_ucache_set('cyan', 16);
$array1 = array('green', 'red', 'orange', 'blue', 'cyan');
var_dump(wincache_ucache_get($array1));
var_dump(wincache_ucache_clear());
var_dump(wincache_ucache_get($array1));
?>

L'exemple ci-dessus va afficher :

array(5) { ["green"]=> int(1)
           ["red"]=> int(2)
           ["orange"]=> int(4)
           ["blue"]=> int(8)
           ["cyan"]=> int(16) }
bool(true)
bool(false)

Voir aussi

  • wincache_ucache_set() - Ajoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache
  • wincache_ucache_add() - Ajoute une nouvelle variable au cache utilisateur
  • wincache_ucache_delete() - Supprime les variables du cache utilisateur
  • wincache_ucache_get() - Récupère une variable stokée dans le cache utilisateur
  • wincache_ucache_exists() - Vérifie si une variable existe dans le cache utilisateur
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur


Décrémente la valeur associée à une clé

  • « wincache_ucache_clear
  • wincache_ucache_delete »
  • PHP Manual
  • Fonctions WinCache
  • Décrémente la valeur associée à une clé

wincache_ucache_dec

(PECL wincache >= 1.1.0)

wincache_ucache_dec — Décrémente la valeur associée à une clé

Description

mixed wincache_ucache_dec ( string $key [, int $dec_by = 1 [, bool &$success ]] )

Décrémente de 1 ou dec_by de la valeur associée avec la clé key.

Liste de paramètres

key

La clé key utilisée pour stoker la variable dans le cache. Le paramètre key est sensible à la casse.

dec_by

La valeur utilisée pour décrémenter la variable associée à la clé key. Si l'argument est un nombre à virgule flottante, il sera arrondi à l'entier le plus proche. La variable associée avec la clé key doit être de type long, sinon, la fonction retournera FALSE.

success

Sera définie à TRUE en cas de succès, FALSE si une erreur survient.

Valeurs de retour

Retourne la valeur décrémentée en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wincache_ucache_dec()

<?php
wincache_ucache_set('counter', 1);
var_dump(wincache_ucache_dec('counter', 2923, $success));
var_dump($success);
?>

L'exemple ci-dessus va afficher :

int(2922)
bool(true)

Voir aussi

  • wincache_ucache_inc() - Incrémente la valeur associée à une clé
  • wincache_ucache_cas() - Compare la variable avec son ancienne valeur et lui assigne une nouvelle valeur


Supprime les variables du cache utilisateur

  • « wincache_ucache_dec
  • wincache_ucache_exists »
  • PHP Manual
  • Fonctions WinCache
  • Supprime les variables du cache utilisateur

wincache_ucache_delete

(PECL wincache >= 1.1.0)

wincache_ucache_delete — Supprime les variables du cache utilisateur

Description

bool wincache_ucache_delete ( mixed $key )

Supprime les éléments pointés par la clé key du cache utilisateur.

Liste de paramètres

key

La clé key utilisée pour stoker la variable dans le cache. Le paramètre key est sensible à la casse. key peut être un tableau de clés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si le paramètre key est un tableau, alors la fonction retournera FALSE si un des éléments du tableau n'a pu être supprimé du cache utilisateur, sinon, elle retournera un tableau contenant toutes les clés ayant été supprimées avec succès.

Exemples

Exemple #1 Exemple avec wincache_ucache_delete() et le paramètre key sous forme de chaîne de caractères

<?php
wincache_ucache_set('foo', 'bar');
var_dump(wincache_ucache_delete('foo'));
var_dump(wincache_ucache_exists('foo'));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Exemple #2 Exemple avec wincache_ucache_delete() et le paramètre key sous forme d'un tableau

<?php
$array1 = array('green' => '5', 'blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('green', 'blue', 'yellow', 'cyan');
var_dump(wincache_ucache_delete($array2));
?>

L'exemple ci-dessus va afficher :

array(4) { [0]=> string(5) "green"
           [1]=> string(4) "Blue"
           [2]=> string(6) "yellow"
           [3]=> string(4) "cyan" }

Exemple #3 Exemple avec wincache_ucache_delete() et le paramètre key sous la forme d'un tableau où quelques éléments n'ont pas pu être supprimés

<?php
$array1 = array('green' => '5', 'blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('orange', 'red', 'yellow', 'cyan');
var_dump(wincache_ucache_delete($array2));
?>

L'exemple ci-dessus va afficher :

array(2) { [0]=> string(6) "yellow"
           [1]=> string(4) "cyan" }

Voir aussi

  • wincache_ucache_set() - Ajoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache
  • wincache_ucache_add() - Ajoute une nouvelle variable au cache utilisateur
  • wincache_ucache_get() - Récupère une variable stokée dans le cache utilisateur
  • wincache_ucache_clear() - Supprime le contenu d'une entrée du cache utilisateur
  • wincache_ucache_exists() - Vérifie si une variable existe dans le cache utilisateur
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur


Vérifie si une variable existe dans le cache utilisateur

  • « wincache_ucache_delete
  • wincache_ucache_get »
  • PHP Manual
  • Fonctions WinCache
  • Vérifie si une variable existe dans le cache utilisateur

wincache_ucache_exists

(PECL wincache >= 1.1.0)

wincache_ucache_exists — Vérifie si une variable existe dans le cache utilisateur

Description

bool wincache_ucache_exists ( string $key )

Vérifie si une variable dont la clé est key existe ou non dans le cache utilisateur.

Liste de paramètres

key

La clé key utilisée pour stoker la variable dans le cache. Le paramètre key est sensible à la casse.

Valeurs de retour

Retourne TRUE si la variable dont la clé est key existe, FALSE sinon.

Exemples

Exemple #1 Exemple avec wincache_ucache_exists()

<?php
if (!wincache_ucache_exists('green'))
    wincache_ucache_set('green', 1);
var_dump(wincache_ucache_exists('green'));
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • wincache_ucache_set() - Ajoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache
  • wincache_ucache_add() - Ajoute une nouvelle variable au cache utilisateur
  • wincache_ucache_get() - Récupère une variable stokée dans le cache utilisateur
  • wincache_ucache_clear() - Supprime le contenu d'une entrée du cache utilisateur
  • wincache_ucache_delete() - Supprime les variables du cache utilisateur
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur


Récupère une variable stokée dans le cache utilisateur

  • « wincache_ucache_exists
  • wincache_ucache_inc »
  • PHP Manual
  • Fonctions WinCache
  • Récupère une variable stokée dans le cache utilisateur

wincache_ucache_get

(PECL wincache >= 1.1.0)

wincache_ucache_get — Récupère une variable stokée dans le cache utilisateur

Description

mixed wincache_ucache_get ( mixed $key [, bool &$success ] )

Récupère une variable stokée dans le cache utilisateur.

Liste de paramètres

key

La clé key utilisée pour stoker la variable dans le cache. Le paramètre key est sensible à la casse. key peut être un tableau de clés. Dans ce cas, la valeur retournée sera un tableau de valeurs de chaque éléments du tableau key. Si un objet ou un tableau contenant des objets est retourné, alors les objets seront délinéarisés. Reportez-vous à la fonction __wakeup() pour plus de détails sur les délinéarisations des objets.

success

Sera définie à TRUE en cas de succès, FALSE si une erreur survient.

Valeurs de retour

Si le paramètre key est une chaîne de caractères, la fonction retournera la valeur de la variable stokée avec cette clé. Le paramètre success sera défini à TRUE en cas de succès, et à FALSE si une erreur survient.

Si le paramètre key est un tableau, le paramètre success sera toujours défini à TRUE. Le tableau retourné (paires de nom => valeur) contiendra uniquement les paires nom => valeur pour lesquelles la récupération depuis le cache utilisateur a été un succès. Si aucune des clés du tableau ne correspond à des entrées du cache utilisateur, un tableau vide sera retourné.

Exemples

Exemple #1 Exemple avec wincache_ucache_get() et le paramètre key sous forme de chaîne de caractères

<?php
wincache_ucache_add('color', 'blue');
var_dump(wincache_ucache_get('color', $success));
var_dump($success);
?>

L'exemple ci-dessus va afficher :

string(4) "blue"
bool(true)

Exemple #2 Exemple avec wincache_ucache_get() et le paramètre key sous forme d'un tableau

<?php
$array1 = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('green', 'Blue', 'yellow', 'cyan');
var_dump(wincache_ucache_get($array2, $success));
var_dump($success);
?>

L'exemple ci-dessus va afficher :

array(4) { ["green"]=> string(1) "5"
           ["Blue"]=> string(1) "6"
           ["yellow"]=> string(1) "7"
           ["cyan"]=> string(1) "8" }
bool(true)

Voir aussi

  • wincache_ucache_add() - Ajoute une nouvelle variable au cache utilisateur
  • wincache_ucache_set() - Ajoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache
  • wincache_ucache_delete() - Supprime les variables du cache utilisateur
  • wincache_ucache_clear() - Supprime le contenu d'une entrée du cache utilisateur
  • wincache_ucache_exists() - Vérifie si une variable existe dans le cache utilisateur
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • __wakeup()


Incrémente la valeur associée à une clé

  • « wincache_ucache_get
  • wincache_ucache_info »
  • PHP Manual
  • Fonctions WinCache
  • Incrémente la valeur associée à une clé

wincache_ucache_inc

(PECL wincache >= 1.1.0)

wincache_ucache_inc — Incrémente la valeur associée à une clé

Description

mixed wincache_ucache_inc ( string $key [, int $inc_by = 1 [, bool &$success ]] )

Incrémente, de 1 ou de la valeur du paramètre inc_by, la valeur associée avec la clé key.

Liste de paramètres

key

La clé key utilisée pour stoker la variable dans le cache. Le paramètre key est sensible à la casse.

inc_by

La valeur utilisée pour incrémenter la variable associée à la clé key. Si l'argument est un nombre à virgule flottante, elle sera arrondie à l'entier le plus proche. La variable associée à la clé key doit être de type long, sinon la fonction échouera et retournera FALSE.

success

Sera défini à TRUE en cas de succès, FALSE si une erreur survient.

Valeurs de retour

Retourne la valeur incrémentée en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wincache_ucache_inc()

<?php
wincache_ucache_set('counter', 1);
var_dump(wincache_ucache_inc('counter', 2921, $success));
var_dump($success);
?>

L'exemple ci-dessus va afficher :

int(2922)
bool(true)

Voir aussi

  • wincache_ucache_dec() - Décrémente la valeur associée à une clé
  • wincache_ucache_cas() - Compare la variable avec son ancienne valeur et lui assigne une nouvelle valeur


Récupère des informations sur des données stokées dans le cache utilisateur

  • « wincache_ucache_inc
  • wincache_ucache_meminfo »
  • PHP Manual
  • Fonctions WinCache
  • Récupère des informations sur des données stokées dans le cache utilisateur

wincache_ucache_info

(PECL wincache >= 1.1.0)

wincache_ucache_info — Récupère des informations sur des données stokées dans le cache utilisateur

Description

array wincache_ucache_info ([ bool $summaryonly = false [, string $key = NULL ]] )

Récupère des informations sur des données stokées dans le cache utilisateur.

Liste de paramètres

summaryonly

Contrôle si le tableau résultant doit contenir les informations sur des entrées individuelles en plus du résumé du cache utilisateur.

key

La clé de l'entrée du cache utilisateur. Si spécifiée, alors le tableau résultant contiendra des informations uniquement sur cette entrée du cache. Si non spécifiée, et le paramètre summaryonly est défini à FALSE, alors le tableau résultant contiendra des informations sur toutes les entrées du cache.

Valeurs de retour

Un tableau de données méta sur le cache utilisateur ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • total_cache_uptime - durée, en secondes, depuis l'activation de ce cache utilisateur
  • total_item_count - nombre total d'éléments contenus dans le cache utilisateur
  • is_local_cache - TRUE si les données méta du cache sont pour une instance locale du cache, FALSE si elles sont pour le cache global
  • total_hit_count - durée depuis laquelle les données ont été servies depuis le cache
  • total_miss_count - durée depuis laquelle les données n'ont pu être trouvée dans le cache

  • ucache_entries - un tableau contenant les informations sur les éléments mis en cache :

    • key_name - nom de la clé utilisée pour stoker les données
    • value_type - type de valeur stokée pour cette clé
    • use_time - durée, en secondes, depuis laquelle le fichier a été accédé dans le cache opcode
    • last_check - durée, en secondes, depuis laquelle le fichier a été vérifié pour y détecter les modifications
    • is_session - indique si la donnée est une variable de session
    • ttl_seconds - durée de vie de la donnée dans le cache ; 0 signifie indéfiniment
    • age_seconds - durée depuis laquelle la donné a été ajoutée dans le cache
    • hitcount - nombre de fois que la donnée a été servie depuis le cache

Exemples

Exemple #1 Exemple avec wincache_ucache_info()

<?php
wincache_ucache_get('green');
wincache_ucache_set('green', 2922);
wincache_ucache_get('green');
wincache_ucache_get('green');
wincache_ucache_get('green');
print_r(wincache_ucache_info());
?>

L'exemple ci-dessus va afficher :

Array
( ["total_cache_uptime"] => int(0)
  ["is_local_cache"] => bool(false)
  ["total_item_count"] => int(1)
  ["total_hit_count"] => int(3)
  ["total_miss_count"] => int(1)
  ["ucache_entries"] => Array(1)
    ( [1] => Array(6)
      (
        ["key_name"] => string(5) "green"
        ["value_type"] => string(4) "long"
        ["is_session"] => int(0)
        ["ttl_seconds"] => int(0)
        ["age_seconds"] => int(0)
        ["hitcount"] => int(3)
       )
    )
)

Voir aussi

  • wincache_fcache_meminfo() - Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.
  • wincache_ocache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache opcode
  • wincache_ocache_meminfo() - Extrait des informations sur l'utilisation du cache opcode
  • wincache_rplist_meminfo() - Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu
  • wincache_rplist_fileinfo() - Récupère des informations du cache sur un chemin de fichier résolu
  • wincache_refresh_if_changed() - Actualise les entrées du cache pour les fichiers mis en cache
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_scache_info() - Récupère des informations sur des fichiers mis en cache
  • wincache_scache_meminfo() - Récupère des informations sur l'utilisation de la mémoire du cache


Récupère des informations sur l'utilisation mémoire du cache utilisateur

  • « wincache_ucache_info
  • wincache_ucache_set »
  • PHP Manual
  • Fonctions WinCache
  • Récupère des informations sur l'utilisation mémoire du cache utilisateur

wincache_ucache_meminfo

(PECL wincache >= 1.1.0)

wincache_ucache_meminfo — Récupère des informations sur l'utilisation mémoire du cache utilisateur

Description

array wincache_ucache_meminfo ( void )

Récupère des informations sur l'utilisation mémoire du cache utilisateur.

Valeurs de retour

Tableau de données méta sur l'utilisation mémoire du cache utilisateur ou FALSE si une erreur survient

Le tableau retourné par cette fonction contient les éléments suivants :

  • memory_total - quantité de mémoire, en octets, allouée au cache utilisateur
  • memory_free - quantité de mémoire libre, en octets, disponible pour le cache utilisateur
  • num_used_blks - nombre de blocs mémoire utilisés par le cache utilisateur
  • num_free_blks - nombre de blocs mémoire libres disponible depuis le cache utilisateur
  • memory_overhead - quantité de mémoire, en octets, utilisé pour la structure interne du cache utilisateur

Exemples

Exemple #1 Exemple avec wincache_ucache_meminfo()

<pre>
<?php
print_r(wincache_ucache_meminfo());
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [memory_total] => 5242880
    [memory_free] => 5215056
    [num_used_blks] => 6
    [num_free_blks] => 3
    [memory_overhead] => 176
)

Voir aussi

  • wincache_fcache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache de fichiers
  • wincache_fcache_meminfo() - Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.
  • wincache_ocache_fileinfo() - Extrait des informations sur les fichiers mis en cache dans le cache opcode
  • wincache_rplist_fileinfo() - Récupère des informations du cache sur un chemin de fichier résolu
  • wincache_rplist_meminfo() - Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu
  • wincache_refresh_if_changed() - Actualise les entrées du cache pour les fichiers mis en cache
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • wincache_scache_info() - Récupère des informations sur des fichiers mis en cache
  • wincache_scache_meminfo() - Récupère des informations sur l'utilisation de la mémoire du cache


Ajoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache

  • « wincache_ucache_meminfo
  • wincache_unlock »
  • PHP Manual
  • Fonctions WinCache
  • Ajoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache

wincache_ucache_set

(PECL wincache >= 1.1.0)

wincache_ucache_set — Ajoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache

Description

bool wincache_ucache_set ( mixed $key , mixed $value [, int $ttl = 0 ] )
bool wincache_ucache_set ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] )

Ajoute une variable au cache utilisateur. Écrase une variable si elle existe déjà dans le cache. La variable ainsi créée ou mise à jour restera dans le cache utilisateur tant que le délai d'expiration n'est pas atteint ou tant qu'elle n'est pas supprimée avec la fonction wincache_ucache_delete() ou la fonction wincache_ucache_clear().

Liste de paramètres

key

Stocke la variable en utilisant la clé key. Si une variable utilisant la même clé key est déjà présente, la fonction écrasera la précédente valeur avec la nouvelle. Le paramètre key est sensible à la casse. key peut également être un tableau de paires nom => valeur où les noms seront utilisés comme clés. Ceci peut être utile pour ajouter plusieurs valeurs dans le cache en une seule opération.

value

Valeur de la variable à stocker. Le paramètre Value supporte tous les types de données, sauf les ressources, comme les pointeurs de fichiers. Ce paramètre est ignoré si le premier argument est un tableau. Il est de convention de passer la valeur NULL comme valeur du paramètre value lors de l'utilisation d'un tableau dans le paramètre key. Si le paramètre value est un objet, ou un tableau contenant des objets, alors tous les objets seront linéarisés. Reportez-vous à la fonction __sleep() pour plus de détails sur la linéarisation d'objets.

values

Tableau associatif de clés et de valeurs.

ttl

Durée de vie de la variable dans le cache, en secondes. Après la durée spécifiée par le paramètre ttl, la variable stockée sera effacée du cache utilisateur. Ce paramètre prend par défaut la valeur zéro (0), ce qui signifie que la variable restera dans le cache tant qu'elle ne sera pas explicitement supprimée en appelant la fonction wincache_ucache_delete() ou la fonction wincache_ucache_clear().

Valeurs de retour

Si key est une chaîne de caractères, la fonction retournera TRUE en cas de succès, FALSE si une erreur survient.

Si key est un tableau, la fonction retournera :

  • Si toutes les paires nom => valeur du tableau ont pu être définies, la fonction retournera un tableau vide.
  • Si toutes les paires nom => valeur du tableau n'ont pu être définies, la fonction retournera FALSE.
  • Si quelques paires ont été définies, et d'autres non, la fonction retournera un tableau de paires nom => valeur qui n'ont pas pu être définies dans le cache utilisateur.

Exemples

Exemple #1 Exemple avec wincache_ucache_set() et le paramètre key sous forme de chaîne de caractères

<?php
$bar = 'BAR';
var_dump(wincache_ucache_set('foo', $bar));
var_dump(wincache_ucache_get('foo'));
$bar1 = 'BAR1';
var_dump(wincache_ucache_set('foo', $bar1));
var_dump(wincache_ucache_get('foo'));
?>

L'exemple ci-dessus va afficher :

bool(true)
string(3) "BAR"
bool(true)
string(3) "BAR1"

Exemple #2 Exemple avec wincache_ucache_set() et le paramètre key sous forme de tableau

<?php
$colors_array = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

L'exemple ci-dessus va afficher :

array(0) {}
array(0) {}
string(1) "6"

Voir aussi

  • wincache_ucache_add() - Ajoute une nouvelle variable au cache utilisateur
  • wincache_ucache_get() - Récupère une variable stokée dans le cache utilisateur
  • wincache_ucache_delete() - Supprime les variables du cache utilisateur
  • wincache_ucache_clear() - Supprime le contenu d'une entrée du cache utilisateur
  • wincache_ucache_exists() - Vérifie si une variable existe dans le cache utilisateur
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • __sleep()


Libère un verrou exclusif sur une clé donnée

  • « wincache_ucache_set
  • Compilation sous Windows »
  • PHP Manual
  • Fonctions WinCache
  • Libère un verrou exclusif sur une clé donnée

wincache_unlock

(PECL wincache >= 1.1.0)

wincache_unlock — Libère un verrou exclusif sur une clé donnée

Description

bool wincache_unlock ( string $key )

Libère un verrou exclusif qui a été obtenu sur une clé donnée en utilisant la fonction wincache_lock(). Si un autre processus est en attente de ce verrou, pour cette clé, il obtiendra le verrou.

Avertissement

L'utilisation des fonctions wincache_lock() et wincache_unlock() peut provoquer des verrous morts lors de l'exécution de scripts PHP dans un environnement multi-processus comme FastCGI. N'utilisez pas ces fonctions tant que vous n'êtes pas sûr d'en avoir besoin. Pour la majorité des opérations sur le cache utilisateur, il n'est pas nécessaire de les utiliser.

Liste de paramètres

key

Nom de la clé du cache pour laquelle le verrou doit être libéré.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wincache_unlock()

<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock(“lock_txt_lock”)) { // Pose d'un verrou exclusif
    ftruncate($fp, 0); // on vide le fichier
    fwrite($fp, "On écrit quelque chose ici\n");
    wincache_unlock(“lock_txt_lock”); // On libère le verrou
} else {
    echo "Impossible d'obtenir le verrou !";
}
fclose($fp);
?>

Voir aussi

  • wincache_lock() - Acquière un verrou exclusif sur une clé donnée
  • wincache_ucache_set() - Ajoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache
  • wincache_ucache_get() - Récupère une variable stokée dans le cache utilisateur
  • wincache_ucache_delete() - Supprime les variables du cache utilisateur
  • wincache_ucache_clear() - Supprime le contenu d'une entrée du cache utilisateur
  • wincache_ucache_exists() - Vérifie si une variable existe dans le cache utilisateur
  • wincache_ucache_meminfo() - Récupère des informations sur l'utilisation mémoire du cache utilisateur
  • wincache_ucache_info() - Récupère des informations sur des données stokées dans le cache utilisateur
  • wincache_scache_info() - Récupère des informations sur des fichiers mis en cache


Compilation sous Windows

Sommaire

  • Prérequis
  • Compiler et construire
  • Verifying the build


Prérequis

Pour compiler l'extension WinCache, il faudra:

  1. le code source de PHP
  2. un environnement de compilation PHP
  3. le code source de WinCache

Pour compléter les deux premières étapes, suivez le guide étape par étape » Compiler PHP sous Windows.

Pour obtenir le code source de WinCache, suivez les instructions décrites dans Télécharger des extensions PECL.


Compiler et construire

Les étapes suivantes décrivent comment compiler et construire WinCache sous Windows:

  1. Ouvrez une invite de commande utilisée pour compiler PHP

  2. Allez dans le dossier racine où les sources de PHP sont présentes

  3. Lancez la commande :

    cscript.exe win32\build\buildconf.js

  4. Lancez la commande :

    configure.bat --help
    La sortie contiendra une nouvelle option --enable-wincache.

  5. Lancez la commande :

    configure.js [all options used to build PHP] --enable-wincache
    --enable-wincache est la seule option supplémentaire requise pour s'assurer que l'extension WinCache se compile correctement. Cette option permet de construire WinCache et le lier statiquement avec la DLL de PHP. Pour construire l'extension comme une DLL externe, utilisez l'option --enable-wincache=shared.

  6. Lancez la commande :

    nmake


Verifying the build

Les étapes suivantes décrivent comment vérifier que WinCache a été construit correctement :

  1. Allez dans le dossier où les fichiers PHP sont construits.

  2. Lancez la commande :

    php.exe -n -d extension=php_wincache.dll -re wincache
    Si WinCache a été construit correctement, la sortie de cette commande listera les directives INI et les fonctions supportées par WinCache.


Profilage hiérarchique

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions Xhprof
    • xhprof_disable — Stoppe le profilage xhprof
    • xhprof_enable — Démarre le profilage xhprof
    • xhprof_sample_disable — Stoppe le profilage xhprof sur échantillon
    • xhprof_sample_enable — Démarre le profilage en mode échantillonnage


Introduction

XHProf est un profileur hiérarchique et instrumental léger. Lors de la phase de collecte de données, il garde trace des nombres d'appels et des métriques inclusives pour les arcs dans le graphique dynamique d'appels d'un programme. Il calcule des métriques exclusives lors de la phase de rapport/envoi, comme la durée accumulée, le temps CPU, ainsi que l'utilisation de mémoire. Un profil de fonction peut être décomposé par fonctions appelantes ou appelées. XHProf gère les fonctions récursives en détectant les cycles dans le graphique d'appels lors de la collecte des données, et évite les cycles en donnant des noms uniques dépendant de la profondeur lors des invocations récursives.

XHProf inclut une interface utilisateur HTML simple (écrite en PHP). Le navigateur web permet ainsi de consulter le résultat du profilage de façon simple, ainsi que de partager les résultats. Une image du graphique d'appels est également fournie.

Les rapports XHProf peuvent souvent être utiles pour comprendre la structure du code exécuté. La nature hiérarchique des rapports peut être utilisée pour déterminer, par exemple, la chaîne d'appels ayant conduit à l'appel d'une fonction particulière.

XHProf permet de comparer deux exécutions (i.e. rapports différentiels) ou d'agréger des données issues de plusieurs exécutions. Les rapports différentiels et agrégés, tout comme les rapports d'exécution unique, offrent une vue plate ainsi qu'une vue hiérarchique du profilage.

Vous pouvez trouver plus d'informations sur la page » facebook de xhprof.


Pré-requis

Bien qu'elle ne soit pas requise, xhprof inclut une interface écrite en PHP. Elle est utilisée pour sauvegarder et afficher les données de profilage de manière exploitable, où la lecture s'effectue directement via un navigateur web. Ainsi, un serveur web PHP rendra probablement l'utilisation de xhprof plus conviviale.

Il existe également un fork de l'interface GUI sur » http://github.com/preinheimer/xhprof


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/xhprof


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Xhprof
Nom | Défaut | Modifiable | Historique
xhprof.output_dir | "" | PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

xhprof.output_dir string

Dossier utilisé par l'implémentation par défaut de l'interface iXHProfRuns (nommément, la classe XHProfRuns_Default) pour stocker les exécutions de XHProf.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XHPROF_FLAGS_NO_BUILTINS (entier)
Utilisée pour ne pas tenir compte de toutes les fonctions internes.
XHPROF_FLAGS_CPU (entier)
Utilisée pour ajouter les informations de profilage CPU dans la sortie.
XHPROF_FLAGS_MEMORY (entier)
Utilisée pour ajouter les informations de profilage de la mémoire dans la sortie.


Exemples

Exemple #1 Exemple avec Xhprof et la GUI optionnelle

Cet exemple démarre et stoppe le profilage, puis utilise l'interface GUI fournie pour sauvegarder et analyser les résultats. En d'autres termes, le code de l'extension en elle-même s'arrête après l'appel à la fonction xhprof_disable().

<?php
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

for ($i = 0; $i <= 1000; $i++) {
    $a = $i * $i;
}

$xhprof_data = xhprof_disable();

$XHPROF_ROOT = "/tools/xhprof/";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_testing");

echo "http://localhost/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testing\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

http://localhost/xhprof/xhprof_html/index.php?run=t11_4bdf44d21121f&source=xhprof_testing


Fonctions Xhprof

Sommaire

  • xhprof_disable — Stoppe le profilage xhprof
  • xhprof_enable — Démarre le profilage xhprof
  • xhprof_sample_disable — Stoppe le profilage xhprof sur échantillon
  • xhprof_sample_enable — Démarre le profilage en mode échantillonnage


Stoppe le profilage xhprof

  • « Fonctions Xhprof
  • xhprof_enable »
  • PHP Manual
  • Fonctions Xhprof
  • Stoppe le profilage xhprof

xhprof_disable

(PECL xhprof >= 0.9.0)

xhprof_disable — Stoppe le profilage xhprof

Description

array xhprof_disable ( void )

Stoppe le profilage, et retourne les données xhprof correspondant à son exécution.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de données xhprof, issues de son exécution.

Exemples

Exemple #1 Exemple avec xhprof_disable()

<?php
xhprof_enable();

$foo = strlen("foo bar");

$xhprof_data = xhprof_disable();

print_r($xhprof_data);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [main()==>strlen] => Array
        (
            [ct] => 1
            [wt] => 279
        )

    [main()==>xhprof_disable] => Array
        (
            [ct] => 1
            [wt] => 9
        )

    [main()] => Array
        (
            [ct] => 1
            [wt] => 610
        )

)


Démarre le profilage xhprof

  • « xhprof_disable
  • xhprof_sample_disable »
  • PHP Manual
  • Fonctions Xhprof
  • Démarre le profilage xhprof

xhprof_enable

(PECL xhprof >= 0.9.0)

xhprof_enable — Démarre le profilage xhprof

Description

void xhprof_enable ([ int $flags = 0 [, array $options ]] )

Démarre le profilage xhprof.

Liste de paramètres

flags

Drapeaux optionnels pour ajouter des informations supplémentaires au profilage. Voir les constantes XHprof pour plus d'informations sur ces drapeaux, comme XHPROF_FLAGS_MEMORY pour activer le profilage de la mémoire.

options

Un tableau d'options optionnelles, comme par exemple l'option 'ignored_functions' pour spécifier des fonctions à ignorer durant le profilage.

Valeurs de retour

NULL

Historique

Version | Description
0.9.2 | Le paramètre optionnel options a été ajouté.

Exemples

Exemple #1 Exemple avec xhprof_enable()

<?php
// 1. profilage du temps écoulé + mémoire + CPU ; et on ignore les fonctions internes
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

// 2. profilage du temps écoulé ; on ignore les fonctions call_user_func* lors du profilage
xhprof_enable(
    0,
    array('ignored_functions' =>  array('call_user_func',
                                        'call_user_func_array')));

// 3. profilage du temps écoulé ainsi que de la mémoire ; on ignore les fonctions call_user_func* lors du profilage
xhprof_enable(
    XHPROF_FLAGS_MEMORY,
    array('ignored_functions' =>  array('call_user_func',
                                        'call_user_func_array')));
?>

Voir aussi

  • xhprof_disable() - Stoppe le profilage xhprof
  • xhprof_sample_enable() - Démarre le profilage en mode échantillonnage
  • memory_get_usage() - Indique la quantité de mémoire utilisée par PHP
  • getrusage() - Retourne le niveau d'utilisation des ressources


Stoppe le profilage xhprof sur échantillon

  • « xhprof_enable
  • xhprof_sample_enable »
  • PHP Manual
  • Fonctions Xhprof
  • Stoppe le profilage xhprof sur échantillon

xhprof_sample_disable

(PECL xhprof >= 0.9.0)

xhprof_sample_disable — Stoppe le profilage xhprof sur échantillon

Description

array xhprof_sample_disable ( void )

Stoppe le profilage xhprof sur échantillon.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de données de l'échantillon xhprof, issues de son exécution.

Exemples

Exemple #1 Exemple avec xhprof_sample_disable()

<?php
xhprof_sample_enable();

for ($i = 0; $i <= 10000; $i++) {
    $a = strlen($i);
    $b = $i * $a;
    $c = rand();
}

$xhprof_data = xhprof_sample_disable();

print_r($xhprof_data);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [1272935300.800000] => main()
    [1272935300.900000] => main()
)


Démarre le profilage en mode échantillonnage

  • « xhprof_sample_disable
  • Manipulation audio »
  • PHP Manual
  • Fonctions Xhprof
  • Démarre le profilage en mode échantillonnage

xhprof_sample_enable

(PECL xhprof >= 0.9.0)

xhprof_sample_enable — Démarre le profilage en mode échantillonnage

Description

void xhprof_sample_enable ( void )

Démarre le profilage en mode échantillonnage, ce qui correspond à une version plus légère de la fonction xhprof_enable(). L'intervalle d'échantillonnage est de 0.1 seconde, et les échantillons enregistrent la pile complète des fonctions appelées. La principale utilité de cette fonction est lorsque l'on souhaite diagnostiquer et surveiller les performances sans pour autant consommer trop de ressources.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

NULL

Voir aussi

  • xhprof_sample_disable() - Stoppe le profilage xhprof sur échantillon
  • xhprof_enable() - Démarre le profilage xhprof
  • memory_get_usage() - Indique la quantité de mémoire utilisée par PHP
  • getrusage() - Retourne le niveau d'utilisation des ressources


Manipulation audio

  • ID3 — Balises ID3
    • Introduction
    • Installation/Configuration
    • Constantes prédéfinies
    • Fonctions ID3
  • KTaglib
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • KTaglib_MPEG_File — La classe KTaglib_MPEG_File
    • KTaglib_MPEG_AudioProperties — La classe KTaglib_MPEG_AudioProperties
    • KTaglib_Tag — La classe KTaglib_Tag
    • KTaglib_ID3v2_Tag — La classe KTaglib_ID3v2_Tag
    • KTaglib_ID3v2_Frame — La classe KTaglib_ID3v2_Frame
    • KTaglib_ID3v2_AttachedPictureFrame — La classe KTaglib_ID3v2_AttachedPictureFrame
  • oggvorbis — OGG/Vorbis
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Options de contexte
    • Exemples
  • OpenAL — Gestion Audio OpenAL
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions OpenAL


Balises ID3

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes prédéfinies
  • Fonctions ID3
    • id3_get_frame_long_name — Récupère le nom long d'un champs ID3v2
    • id3_get_frame_short_name — Récupère le nom court d'un champs ID3v2
    • id3_get_genre_id — Récupération d'un id pour un genre
    • id3_get_genre_list — Récupère toutes les valeurs possibles du genre
    • id3_get_genre_name — Récupère le nom pour un id de genre
    • id3_get_tag — Récupère toutes les informations stockées dans un tag ID3
    • id3_get_version — Récupère la version d'un tag ID3
    • id3_remove_tag — Efface un tag ID3
    • id3_set_tag — Met à jour les informations stockées dans un tag ID3


Introduction

Ces fonctions vous permettent de lire et de manipuler les tags ID3. Les tags ID3 sont utilisés dans les fichiers MP3 pour stocker le titre d'une chanson, tout comme des informations sur l'artiste, l'album, le genre, l'année et le numéro de la piste.

Depuis la version 0.2, il est également possible d'extraire des champs texte depuis des tags ID3 v2.2+.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/id3.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


  • « Configuration à l'exécution
  • Constantes prédéfinies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


Constantes prédéfinies

La plupart des fonctions ID3 vous permettent soit de spécifier, soit de retourner un tag. Pour spécifier la version, utilisez une de ces constantes :

ID3_V1_0 (entier)
ID3_V1_0 est utilisé si vous travaillez avec des tags ID3 V1.0. Ces tags peuvent contenir les champs title, artist, album, genre, year et comment.
ID3_V1_1 (entier)
ID3_V1_1 est utilisé si vous travaillez avec des tags ID3 V1.1. Ces tags peuvent contenir tous les champs de la version 1.0 ainsi qu'un champ représentant le numéro de la piste.
ID3_V2_1 (entier)
ID3_V2_1 est utilisé si vous travaillez avec des tags ID3 V2.1.
ID3_V2_2 (entier)
ID3_V2_2 est utilisé si vous travaillez avec des tags ID3 V2.2 tags.
ID3_V2_3 (entier)
ID3_V2_3 est utilisé si vous travaillez avec des tags ID3 V2.3 tags.
ID3_V2_4 (entier)
ID3_V2_4 est utilisé si vous travaillez avec des tags ID3 V2.4 tags.
ID3_BEST (entier)
ID3_BEST est utilisé si vous voulez laisser les fonctions id3 déterminer quelle version de tags doit être utilisée.


Fonctions ID3

Sommaire

  • id3_get_frame_long_name — Récupère le nom long d'un champs ID3v2
  • id3_get_frame_short_name — Récupère le nom court d'un champs ID3v2
  • id3_get_genre_id — Récupération d'un id pour un genre
  • id3_get_genre_list — Récupère toutes les valeurs possibles du genre
  • id3_get_genre_name — Récupère le nom pour un id de genre
  • id3_get_tag — Récupère toutes les informations stockées dans un tag ID3
  • id3_get_version — Récupère la version d'un tag ID3
  • id3_remove_tag — Efface un tag ID3
  • id3_set_tag — Met à jour les informations stockées dans un tag ID3


Récupère le nom long d'un champs ID3v2

  • « Fonctions ID3
  • id3_get_frame_short_name »
  • PHP Manual
  • Fonctions ID3
  • Récupère le nom long d'un champs ID3v2

id3_get_frame_long_name

(PECL id3 >= 0.2)

id3_get_frame_long_name — Récupère le nom long d'un champs ID3v2

Description

string id3_get_frame_long_name ( string $frameId )

id3_get_frame_long_name() retourne le nom long d'un champs ID3v2.

Liste de paramètres

frameId

Une frame ID3v2

Valeurs de retour

Retourne le nom long d'un champs ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec id3_get_frame_long_name()

<?php
$longName = id3_get_frame_long_name("TOLY");
echo $longName;
?>

L'exemple ci-dessus va afficher :

Original lyricist(s)/text writer(s)

Voir aussi

  • id3_get_frame_short_name() - Récupère le nom court d'un champs ID3v2


Récupère le nom court d'un champs ID3v2

  • « id3_get_frame_long_name
  • id3_get_genre_id »
  • PHP Manual
  • Fonctions ID3
  • Récupère le nom court d'un champs ID3v2

id3_get_frame_short_name

(PECL id3 >= 0.2)

id3_get_frame_short_name — Récupère le nom court d'un champs ID3v2

Description

string id3_get_frame_short_name ( string $frameId )

id3_get_frame_short_name() retourne le nom court d'un champs ID3v2.

Liste de paramètres

frameId

Une frame ID3v2

Valeurs de retour

Retourne le nom court d'un champs ou FALSE si une erreur survient.

Les valeurs retournées par id3_get_frame_short_name() sont utilisées dans le tableau retourné par id3_get_tag().

Exemples

Exemple #1 Exemple avec id3_get_frame_short_name()

<?php
$shortName = id3_get_frame_short_name("TOLY");
echo $shortName;
?>

L'exemple ci-dessus va afficher :

originalLyricist

Voir aussi

  • id3_get_frame_long_name() - Récupère le nom long d'un champs ID3v2


Récupération d'un id pour un genre

  • « id3_get_frame_short_name
  • id3_get_genre_list »
  • PHP Manual
  • Fonctions ID3
  • Récupération d'un id pour un genre

id3_get_genre_id

(PECL id3 >= 0.1)

id3_get_genre_id — Récupération d'un id pour un genre

Description

int id3_get_genre_id ( string $genre )

id3_get_genre_id() retourne l'id pour un genre.

Liste de paramètres

genre

Nom du genre, sous la forme d'une chaîne de caractères.

Valeurs de retour

L'id du genre ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec id3_get_genre_id()

<?php
$id = id3_get_genre_id("Alternative");
echo $id;
?>

L'exemple ci-dessus va afficher :

20

Voir aussi

  • id3_get_genre_name() - Récupère le nom pour un id de genre
  • id3_get_genre_list() - Récupère toutes les valeurs possibles du genre


Récupère toutes les valeurs possibles du genre

  • « id3_get_genre_id
  • id3_get_genre_name »
  • PHP Manual
  • Fonctions ID3
  • Récupère toutes les valeurs possibles du genre

id3_get_genre_list

(PECL id3 >= 0.1)

id3_get_genre_list — Récupère toutes les valeurs possibles du genre

Description

array id3_get_genre_list ( void )

id3_get_genre_list() retourne un tableau contenant tous les genres possibles pouvant être stockés dans un tag ID3. La liste a été créée par Eric Kemp et, plus tard, complétée par WinAmp.

Cette fonction est pratique pour fournir à vos utilisateurs une liste de genres depuis laquelle ils peuvent en choisir un. Lorsque vous mettez à jour vos tags ID3, vous devez également spécifier un genre sous forme d'entier entre 0-147.

Valeurs de retour

Retourne un tableau contenant tous les genres possibles qui peuvent être stockés dans une balise ID3.

Exemples

Exemple #1 Exemple avec id3_get_genre_list()

<?php
$genres = id3_get_genre_list();
print_r($genres);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Blues
    [1] => Classic Rock
    [2] => Country
    [3] => Dance
    [4] => Disco
    [5] => Funk
    [6] => Grunge
    [7] => Hip-Hop
    [8] => Jazz
    [9] => Metal
    [10] => New Age
    [11] => Oldies
    [12] => Other
    [13] => Pop
    [14] => R&B
    [15] => Rap
    [16] => Reggae
    [17] => Rock
    [18] => Techno
    [19] => Industrial
    [20] => Alternative
    [21] => Ska
    [22] => Death Metal
    [23] => Pranks
    [24] => Soundtrack
    [25] => Euro-Techno
    [26] => Ambient
    [27] => Trip-Hop
    [28] => Vocal
    [29] => Jazz+Funk
    [30] => Fusion
    [31] => Trance
    [32] => Classical
    [33] => Instrumental
    [34] => Acid
    [35] => House
    [36] => Game
    [37] => Sound Clip
    [38] => Gospel
    [39] => Noise
    [40] => Alternative Rock
    [41] => Bass
    [42] => Soul
    [43] => Punk
    [44] => Space
    [45] => Meditative
    [46] => Instrumental Pop
    [47] => Instrumental Rock
    [48] => Ethnic
    [49] => Gothic
    [50] => Darkwave
    [51] => Techno-Industrial
    [52] => Electronic
    [53] => Pop-Folk
    [54] => Eurodance
    [55] => Dream
    [56] => Southern Rock
    [57] => Comedy
    [58] => Cult
    [59] => Gangsta
    [60] => Top 40
    [61] => Christian Rap
    [62] => Pop/Funk
    [63] => Jungle
    [64] => Native US
    [65] => Cabaret
    [66] => New Wave
    [67] => Psychadelic
    [68] => Rave
    [69] => Showtunes
    [70] => Trailer
    [71] => Lo-Fi
    [72] => Tribal
    [73] => Acid Punk
    [74] => Acid Jazz
    [75] => Polka
    [76] => Retro
    [77] => Musical
    [78] => Rock & Roll
    [79] => Hard Rock
    [80] => Folk
    [81] => Folk-Rock
    [82] => National Folk
    [83] => Swing
    [84] => Fast Fusion
    [85] => Bebob
    [86] => Latin
    [87] => Revival
    [88] => Celtic
    [89] => Bluegrass
    [90] => Avantgarde
    [91] => Gothic Rock
    [92] => Progressive Rock
    [93] => Psychedelic Rock
    [94] => Symphonic Rock
    [95] => Slow Rock
    [96] => Big Band
    [97] => Chorus
    [98] => Easy Listening
    [99] => Acoustic
    [100] => Humour
    [101] => Speech
    [102] => Chanson
    [103] => Opera
    [104] => Chamber Music
    [105] => Sonata
    [106] => Symphony
    [107] => Booty Bass
    [108] => Primus
    [109] => Porn Groove
    [110] => Satire
    [111] => Slow Jam
    [112] => Club
    [113] => Tango
    [114] => Samba
    [115] => Folklore
    [116] => Ballad
    [117] => Power Ballad
    [118] => Rhytmic Soul
    [119] => Freestyle
    [120] => Duet
    [121] => Punk Rock
    [122] => Drum Solo
    [123] => Acapella
    [124] => Euro-House
    [125] => Dance Hall
    [126] => Goa
    [127] => Drum & Bass
    [128] => Club-House
    [129] => Hardcore
    [130] => Terror
    [131] => Indie
    [132] => BritPop
    [133] => Negerpunk
    [134] => Polsk Punk
    [135] => Beat
    [136] => Christian Gangsta
    [137] => Heavy Metal
    [138] => Black Metal
    [139] => Crossover
    [140] => Contemporary C
    [141] => Christian Rock
    [142] => Merengue
    [143] => Salsa
    [144] => Thrash Metal
    [145] => Anime
    [146] => JPop
    [147] => SynthPop
)

Voir aussi

  • id3_get_genre_name() - Récupère le nom pour un id de genre
  • id3_get_genre_id() - Récupération d'un id pour un genre


Récupère le nom pour un id de genre

  • « id3_get_genre_list
  • id3_get_tag »
  • PHP Manual
  • Fonctions ID3
  • Récupère le nom pour un id de genre

id3_get_genre_name

(PECL id3 >= 0.1)

id3_get_genre_name — Récupère le nom pour un id de genre

Description

string id3_get_genre_name ( int $genre_id )

id3_get_genre_name() retourne le nom pour un id de genre spécifié.

Liste de paramètres

genre_id

Un entier, compris entre 0 et 147

Valeurs de retour

Retourne le nom sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec id3_get_genre_name()

<?php
$genre = id3_get_genre_name(20);
echo $genre;
?>

L'exemple ci-dessus va afficher :

Alternative

Voir aussi

  • id3_get_genre_list() - Récupère toutes les valeurs possibles du genre
  • id3_get_genre_id() - Récupération d'un id pour un genre


Récupère toutes les informations stockées dans un tag ID3

  • « id3_get_genre_name
  • id3_get_version »
  • PHP Manual
  • Fonctions ID3
  • Récupère toutes les informations stockées dans un tag ID3

id3_get_tag

(PECL id3 >= 0.1)

id3_get_tag — Récupère toutes les informations stockées dans un tag ID3

Description

array id3_get_tag ( string $filename [, int $version = ID3_BEST ] )

id3_get_tag() est utilisée pour récupérer toutes les informations stockées dans un tag ID3 d'un fichier spécifique.

Liste de paramètres

filename

Le chemin vers le fichier MP3

Au lieu de passer un nom de fichier, vous pouvez aussi passer un flux de ressource valide.

version

Vous permet de spécifier la version du tag, bien que les fichiers MP3 doivent contenir à la fois les versions 1.x et les versions 2.x.

Depuis la version 0.2, id3_get_tag() supporte également les tags ID3 version 2.2, 2.3 et 2.4. Pour extraire les informations de ces tags, passez une des constantes ID3_V2_2, ID3_V2_3 ou ID3_V2_4 en tant que second paramètre. Les tags ID3 v2.x peuvent contenir beaucoup plus d'informations sur le fichier MP3 que les versions ID3 v1.x.

Valeurs de retour

Retourne un tableau associatif avec diverses clés, comme : title, artist, ..

La clé genre doit contenir un entier compris entre 0 et 147. Vous pouvez utiliser la fonction id3_get_genre_name() pour convertir ce nombre en une chaîne lisible humainement.

Exemples

Exemple #1 Exemple avec id3_get_tag()

<?php
$tag = id3_get_tag( "path/to/example.mp3" );
print_r($tag);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [title] => DN-38416
    [artist] => Re:\Legion
    [album] => Reflections
    [year] => 2004
    [genre] => 19
)

Exemple #2 Exemple avec id3_get_tag()

<?php
$tag = id3_get_tag( "path/to/example2.mp3", ID3_V2_3 );
print_r($tag);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [copyright] => Dirty Mac
    [originalArtist] => Dirty Mac
    [composer] => Marcus Götze
    [artist] => Dirty Mac
    [title] => Little Big Man
    [album] => Demo-Tape
    [track] => 5/12
    [genre] => (17)Rock
    [year] => 2001
)

Voir aussi

  • id3_set_tag() - Met à jour les informations stockées dans un tag ID3
  • id3_remove_tag() - Efface un tag ID3
  • id3_get_version() - Récupère la version d'un tag ID3


Récupère la version d'un tag ID3

  • « id3_get_tag
  • id3_remove_tag »
  • PHP Manual
  • Fonctions ID3
  • Récupère la version d'un tag ID3

id3_get_version

(PECL id3 >= 0.1)

id3_get_version — Récupère la version d'un tag ID3

Description

int id3_get_version ( string $filename )

id3_get_version() récupère la(les) version(s) de la(des) balise(s) ID3 d'un fichier MP3.

Si un fichier contient une balise ID3 v1.1, il contiendra toujours aussi une balise 1.0, vu que 1.1 est uniquement une extension de 1.0.

Liste de paramètres

filename

Le chemin vers le fichier MP3

Au lieu de passer un nom de fichier, vous pouvez aussi passer un flux de ressource valide.

Valeurs de retour

Retourne la(les) version(s) du(des) tag(s) ID3 d'un fichier MP3. Sachant qu'un tag peut contenir des tags ID3 de version v1.x et v2.x, la valeur retournée par cette fonction doit être comparée au niveau binaire avec les constantes prédéfinies ID3_V1_0, ID3_V1_1 et ID3_V2.

Exemples

Exemple #1 Exemple avec id3_get_version()

<?php
$version = id3_get_version( "path/to/example.mp3" );
if ($version & ID3_V1_0) {
    echo "Contains a 1.x tag\n";
}
if ($version & ID3_V1_1) {
    echo "Contains a 1.1 tag\n";
}
if ($version & ID3_V2) {
    echo "Contains a 2.x tag\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Contains a 1.x tag
Contains a 1.1 tag

Voir aussi

  • id3_set_tag() - Met à jour les informations stockées dans un tag ID3
  • id3_get_tag() - Récupère toutes les informations stockées dans un tag ID3
  • id3_remove_tag() - Efface un tag ID3


Efface un tag ID3

  • « id3_get_version
  • id3_set_tag »
  • PHP Manual
  • Fonctions ID3
  • Efface un tag ID3

id3_remove_tag

(PECL id3 >= 0.1)

id3_remove_tag — Efface un tag ID3

Description

bool id3_remove_tag ( string $filename [, int $version = ID3_V1_0 ] )

id3_remove_tag() est utilisé pour effacer les informations stockées dans un tag ID3.

Liste de paramètres

filename

Le chemin vers le fichier MP3

Au lieu d'un nom de fichier, vous pouvez également passer une ressource valide.

version

Vous permet de spécifier la version du tag, bien que les fichiers MP3 doivent contenir à la fois les versions 1.x et les versions 2.x.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec id3_remove_tag()

<?php
$result = id3_remove_tag( "path/to/example.mp3", ID3_V1_0 );
if ($result === true) {
    echo "Le tag a été effacé avec succès\n";
}
?>

Si le fichier est accessible en écriture et qu'il contient un tag 1.0, l'exemple affichera :

Le tag a été effacé avec succès

Notes

Note: Actuellement, id3_remove_tag() supporte uniquement les tags version 1.0 et 1.1. Si vous tentez d'effacer un tag 1.0 et que le fichier contient un tag 1.1, le tag sera effacé car la version 1.1 n'est qu'une extension de la version 1.0.

Voir aussi

  • id3_set_tag() - Met à jour les informations stockées dans un tag ID3
  • id3_get_tag() - Récupère toutes les informations stockées dans un tag ID3
  • id3_get_version() - Récupère la version d'un tag ID3


Met à jour les informations stockées dans un tag ID3

  • « id3_remove_tag
  • KTaglib »
  • PHP Manual
  • Fonctions ID3
  • Met à jour les informations stockées dans un tag ID3

id3_set_tag

(PECL id3 >= 0.1)

id3_set_tag — Met à jour les informations stockées dans un tag ID3

Description

bool id3_set_tag ( string $filename , array $tag [, int $version = ID3_V1_0 ] )

id3_set_tag() est utilisé pour changer les informations stockées dans un tag ID3. Si aucun tag n'est présent, le tag sera ajouté au fichier.

Liste de paramètres

filename

Le chemin vers le fichier MP3

Au lieu d'un nom de fichier, vous pouvez également passer une ressource valide.

tag

Un tableau associatif de clés et de valeurs de tags

Les clés suivantes peuvent être utilisées dans le tableau associatif :

Clés dans le tableau associatif
Clé | Valeur possible | Disponible dans la version
title | chaîne de caractères avec un maximum de 30 caractères | v1.0, v1.1
artist | chaîne de caractères avec un maximum de 30 caractères | v1.0, v1.1
album | chaîne de caractères avec un maximum de 30 caractères | v1.0, v1.1
year | 4 digits | v1.0, v1.1
genre | valeur entière comprise entre 0 et 147 | v1.0, v1.1
comment | chaîne de caractères avec un maximum de 30 caractères (28 en v1.1) | v1.0, v1.1
track | entier compris entre 0 et 255 | v1.1

version

Vous permet de spécifier la version du tag, bien que les fichiers MP3 doivent contenir à la fois les versions 1.x et les versions 2.x.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec id3_set_tag()

<?php
$data = array(
              "title" => "Re:Start",
              "artist" => "Re:\Legion",
              "comment" => "A nice track"
             );
$result = id3_set_tag( "path/to/example.mp3", $data, ID3_V1_0 );
if ($result === true) {
    echo "Le tag a été mis à jour avec succès\n";
}
?>

Si le fichier est accessible en écriture, l'exemple affichera :

Le tag a été mis à jour avec succès

Notes

Note: Actuellement, id3_set_tag() supporte uniquement les versions 1.0 et 1.1.

Voir aussi

  • id3_remove_tag() - Efface un tag ID3
  • id3_get_tag() - Récupère toutes les informations stockées dans un tag ID3
  • id3_get_version() - Récupère la version d'un tag ID3


KTaglib

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
  • Constantes pré-définies
  • KTaglib_MPEG_File — La classe KTaglib_MPEG_File
    • KTaglib_MPEG_File::__construct — Ouvre un nouveau fichier
    • KTaglib_MPEG_File::getAudioProperties — Retourne un objet qui permet l'accès aux propriétés audio
    • KTaglib_MPEG_File::getID3v1Tag — Retourne un objet représentant un tag ID3v1
    • KTaglib_MPEG_File::getID3v2Tag — Retourne un objet ID3v2
  • KTaglib_MPEG_AudioProperties — La classe KTaglib_MPEG_AudioProperties
    • KTaglib_MPEG_AudioProperties::getBitrate — Retourne le débit binaire d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::getChannels — Retourne le nombre de canaux d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::getLayer — Retourne la couche d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::getLength — Retourne la taille d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::getSampleBitrate — Retourne l'échantillonnage d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::getVersion — Retourne la version d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::isCopyrighted — Retourne le statut du copyright d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::isOriginal — Vérifie si le fichier MPEG est marqué comme un fichier original
    • KTaglib_MPEG_AudioProperties::isProtectionEnabled — Vérifie si un mécanisme de protection d'un fichier MPEG est actif
  • KTaglib_Tag — La classe KTaglib_Tag
    • KTaglib_Tag::getAlbum — Retourne le nom de l'album d'un tag ID3
    • KTaglib_Tag::getArtist — Retourne le nom de l'artiste d'un tag ID3
    • KTaglib_Tag::getComment — Retourne le commentaire d'un tag ID3
    • KTaglib_Tag::getGenre — Retourne le genre d'un tag ID3
    • KTaglib_Tag::getTitle — Retourne le titre d'un tag ID3
    • KTaglib_Tag::getTrack — Retourne le numéro de la piste d'un tag ID3
    • KTaglib_Tag::getYear — Retourne l'année d'un tag ID3
    • KTaglib_Tag::isEmpty — Retourne TRUE si le tag est vide
  • KTaglib_ID3v2_Tag — La classe KTaglib_ID3v2_Tag
    • KTaglib_ID3v2_Tag::addFrame — Ajoute une frame à un tag ID3v2
    • KTaglib_ID3v2_Tag::getFrameList — Retourne un tableau de frames ID3v2, associées avec un tag ID3v2
  • KTaglib_ID3v2_Frame — La classe KTaglib_ID3v2_Frame
    • KTaglib_ID3v2_Frame::getSize — Retourne la taille de la frame, en octets
    • KTaglib_ID3v2_Frame::__toString — Retourne une chaîne représentant la frame
  • KTaglib_ID3v2_AttachedPictureFrame — La classe KTaglib_ID3v2_AttachedPictureFrame
    • KTaglib_ID3v2_AttachedPictureFrame::getDescription — Retourne une description de l'image contenu dans la frame spécialisée
    • KTaglib_ID3v2_AttachedPictureFrame::getMimeType — Retourne le type MIME de l'image
    • KTaglib_ID3v2_AttachedPictureFrame::getType — Retourne le type d'une image
    • KTaglib_ID3v2_AttachedPictureFrame::savePicture — Sauvegarde une image dans un fichier
    • KTaglib_ID3v2_AttachedPictureFrame::setMimeType — Définit le type MIME d'une image
    • KTaglib_ID3v2_AttachedPictureFrame::setPicture — Définit le tag image en une image donnée
    • KTaglib_ID3v2_AttachedPictureFrame::setType — Définit le type de l'image


Introduction

KTaglib est une approche orientée objet de la bibliothèque taglib du projet KDE utilisée dans des projets comme Amarok, permettant de lire et d'écrire les tags ID3 et Ogg. La bibliothèque permet également d'accéder aux informations audio. Cette approche suit l'API C++ de base, mais a été modifiée légèrement afin d'être plus orientée PHP.

Note:

Pour le moment, ktaglib est capable de lire et d'écrire les tags ID3v1 et ID3v2.


  • « Introduction
  • Pré-requis »
  • PHP Manual
  • KTaglib
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • Installation


Pré-requis

Si vous voulez compiler ktaglib, vous devez avoir installé la bibliothèque taglib version 1.5. Pour obtenir cette bibliothèque, reportez-vous à la » page du projet taglib. Les bibliothèque DLL Windows sont compilés statiquement sur taglib, aussi, vous n'avez pas besoin d'installer la bibliothèque taglib.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ktaglib.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

KTaglib utilise des constantes. La plupart de ces constantes est identique à celle de la bibliothèque Taglib.

KTaglib_MPEG_Header::Version1 (entier)
La version ID3 est 1.0
KTaglib_MPEG_Header::Version2 (entier)
La version ID3 est 2.0
KTaglib_MPEG_Header::Version2_5 (entier)
La version ID3 est 2.5
KTaglib_ID3v2_AttachedPictureFrame::Other (entier)
Autre type d'image
KTaglib_ID3v2_AttachedPictureFrame::FileIcon (entier)
Image de type "FileIcon"
KTaglib_ID3v2_AttachedPictureFrame::OtherFileIcon (entier)
Image de type "OtherFileIcon"
KTaglib_ID3v2_AttachedPictureFrame::FrontCover (entier)
Image de type "FrontCover"
KTaglib_ID3v2_AttachedPictureFrame::BackCover (entier)
Image de type "BackCover"
KTaglib_ID3v2_AttachedPictureFrame::LeafletPage (entier)
Image de type "LeafletPage"
KTaglib_ID3v2_AttachedPictureFrame::Media (entier)
Image de type "Media"
KTaglib_ID3v2_AttachedPictureFrame::LeadArtist (entier)
Image de type "LeadArtist"
KTaglib_ID3v2_AttachedPictureFrame::Artist (entier)
Image de type "Artist"
KTaglib_ID3v2_AttachedPictureFrame::Conductor (entier)
Image de type "Condutor"
KTaglib_ID3v2_AttachedPictureFrame::Band (entier)
Image de type "Band"
KTaglib_ID3v2_AttachedPictureFrame::Composer (entier)
Image de type "Composer"
KTaglib_ID3v2_AttachedPictureFrame::Lyricist (entier)
Image de type "Lyricist"
KTaglib_ID3v2_AttachedPictureFrame::RecordingLocation (entier)
Image de type "RecordingLocation"
KTaglib_ID3v2_AttachedPictureFrame::DuringRecording (entier)
Image de type "DuringRecording"
KTaglib_ID3v2_AttachedPictureFrame::DuringPerformance (entier)
Image de type "DuringPerformance"
KTaglib_ID3v2_AttachedPictureFrame::MovieScreenCapture (entier)
Image de type "MovieScreenCapture"
KTaglib_ID3v2_AttachedPictureFrame::ColouredFish (entier)
Image de type "ColouredFish"
KTaglib_ID3v2_AttachedPictureFrame::Illustration (entier)
Image de type "Illustration"
KTaglib_ID3v2_AttachedPictureFrame::BandLogo (entier)
Image de type "BandLogo"


La classe KTaglib_MPEG_File

(0.0.1)

Introduction

Représente un fichier MPEG. Les fichiers MPEG peuvent avoir des tags ID3v1, ID3v2 et des propriétés audio.

Class synopsis

KTaglib_MPEG_File {
/* Méthodes */
public KTaglib_MPEG_File getAudioProperties ( void )
public KTaglib_ID3v1_Tag getID3v1Tag ([ bool $create = false ] )
public KTaglib_ID3v2_Tag getID3v2Tag ([ bool $create = false ] )
}

Sommaire

  • KTaglib_MPEG_File::__construct — Ouvre un nouveau fichier
  • KTaglib_MPEG_File::getAudioProperties — Retourne un objet qui permet l'accès aux propriétés audio
  • KTaglib_MPEG_File::getID3v1Tag — Retourne un objet représentant un tag ID3v1
  • KTaglib_MPEG_File::getID3v2Tag — Retourne un objet ID3v2


Ouvre un nouveau fichier

  • « KTaglib_MPEG_File
  • KTaglib_MPEG_File::getAudioProperties »
  • PHP Manual
  • KTaglib_MPEG_File
  • Ouvre un nouveau fichier

KTaglib_MPEG_File::__construct

(0.0.1)

KTaglib_MPEG_File::__construct — Ouvre un nouveau fichier

Description

public KTaglib_MPEG_File::__construct ( string $filename )

Ouvre un nouveau fichier MPEG.

Liste de paramètres

filename

Le fichier à lire.

Exemples

Exemple #1 Ouvre un nouveau fichier MP3 et lit le titre

<?php
$mpeg = new KTaglib_MPEG_File('example.mp3');
echo $mpeg->getID3v1Tag()->getTitle();
?>


Retourne un objet qui permet l'accès aux propriétés audio

  • « KTaglib_MPEG_File::__construct
  • KTaglib_MPEG_File::getID3v1Tag »
  • PHP Manual
  • KTaglib_MPEG_File
  • Retourne un objet qui permet l'accès aux propriétés audio

KTaglib_MPEG_File::getAudioProperties

(0.0.1)

KTaglib_MPEG_File::getAudioProperties — Retourne un objet qui permet l'accès aux propriétés audio

Description

public KTaglib_MPEG_File KTaglib_MPEG_File::getAudioProperties ( void )

Retourne un objet qui permet l'accès aux propriétés audio d'un fichier MPEG.

Valeurs de retour

Retourne un objet KTaglib_MPEG_AudioProperties ou FALSE si une erreur survient.


Retourne un objet représentant un tag ID3v1

  • « KTaglib_MPEG_File::getAudioProperties
  • KTaglib_MPEG_File::getID3v2Tag »
  • PHP Manual
  • KTaglib_MPEG_File
  • Retourne un objet représentant un tag ID3v1

KTaglib_MPEG_File::getID3v1Tag

(0.0.1)

KTaglib_MPEG_File::getID3v1Tag — Retourne un objet représentant un tag ID3v1

Description

public KTaglib_ID3v1_Tag KTaglib_MPEG_File::getID3v1Tag ([ bool $create = false ] )

Retourne un objet représentant un tag ID3v1, qui pourra être utilisé pour récupérer les informations s'y trouvant.

Valeurs de retour

Retourne un objet KTaglib_MPEG_ID3v1Tag ou FALSE s'il n'y a pas de tag ID3v1.


Retourne un objet ID3v2

  • « KTaglib_MPEG_File::getID3v1Tag
  • KTaglib_MPEG_AudioProperties »
  • PHP Manual
  • KTaglib_MPEG_File
  • Retourne un objet ID3v2

KTaglib_MPEG_File::getID3v2Tag

(0.0.1)

KTaglib_MPEG_File::getID3v2Tag — Retourne un objet ID3v2

Description

public KTaglib_ID3v2_Tag KTaglib_MPEG_File::getID3v2Tag ([ bool $create = false ] )

Retourne un objet ID3v2 pour le fichier MPEG. S'il n'y a aucun tag ID3v2, une exception KTaglib_TagNotFoundException sera lancée.

Valeurs de retour

Retourne un objet KTaglib_ID3v2_Tag pour un fichier MPEG s'il possède un tag ID3v2, ou FALSE s'il n'en possède pas.


La classe KTaglib_MPEG_AudioProperties

(0.0.1)

Introduction

Représente les propriétés audio d'un fichier MPEG, comme la longueur, le débit ou encore la fréquence.

Classe

KTaglib_MPEG_AudioProperties {
/* Méthodes */
public int KTaglib_MPEG_AudioProperties::getBitrate ( void )
public int KTaglib_MPEG_AudioProperties::getChannels ( void )
public int KTaglib_MPEG_AudioProperties::getLayer ( void )
public int KTaglib_MPEG_AudioProperties::getLength ( void )
public int KTaglib_MPEG_AudioProperties::getSampleBitrate ( void )
public int KTaglib_MPEG_AudioProperties::getVersion ( void )
public bool KTaglib_MPEG_AudioProperties::isCopyrighted ( void )
public bool KTaglib_MPEG_AudioProperties::isOriginal ( void )
public bool KTaglib_MPEG_AudioProperties::isProtectionEnabled ( void )
}

Sommaire

  • KTaglib_MPEG_AudioProperties::getBitrate — Retourne le débit binaire d'un fichier MPEG
  • KTaglib_MPEG_AudioProperties::getChannels — Retourne le nombre de canaux d'un fichier MPEG
  • KTaglib_MPEG_AudioProperties::getLayer — Retourne la couche d'un fichier MPEG
  • KTaglib_MPEG_AudioProperties::getLength — Retourne la taille d'un fichier MPEG
  • KTaglib_MPEG_AudioProperties::getSampleBitrate — Retourne l'échantillonnage d'un fichier MPEG
  • KTaglib_MPEG_AudioProperties::getVersion — Retourne la version d'un fichier MPEG
  • KTaglib_MPEG_AudioProperties::isCopyrighted — Retourne le statut du copyright d'un fichier MPEG
  • KTaglib_MPEG_AudioProperties::isOriginal — Vérifie si le fichier MPEG est marqué comme un fichier original
  • KTaglib_MPEG_AudioProperties::isProtectionEnabled — Vérifie si un mécanisme de protection d'un fichier MPEG est actif


Retourne le débit binaire d'un fichier MPEG

  • « KTaglib_MPEG_AudioProperties
  • KTaglib_MPEG_AudioProperties::getChannels »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Retourne le débit binaire d'un fichier MPEG

KTaglib_MPEG_AudioProperties::getBitrate

(0.0.1)

KTaglib_MPEG_AudioProperties::getBitrate — Retourne le débit binaire d'un fichier MPEG

Description

public int KTaglib_MPEG_AudioProperties::getBitrate ( void )

Retourne le débit binaire d'un fichier MPEG.

Valeurs de retour

Retourne le débit binaire, sous la forme d'un entier.


Retourne le nombre de canaux d'un fichier MPEG

  • « KTaglib_MPEG_AudioProperties::getBitrate
  • KTaglib_MPEG_AudioProperties::getLayer »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Retourne le nombre de canaux d'un fichier MPEG

KTaglib_MPEG_AudioProperties::getChannels

(0.0.1)

KTaglib_MPEG_AudioProperties::getChannels — Retourne le nombre de canaux d'un fichier MPEG

Description

public int KTaglib_MPEG_AudioProperties::getChannels ( void )

Retourne le nombre de canaux d'un fichier MPEG.

Valeurs de retour

Retourne le nombre de canaux, sous la forme d'un entier.


Retourne la couche d'un fichier MPEG

  • « KTaglib_MPEG_AudioProperties::getChannels
  • KTaglib_MPEG_AudioProperties::getLength »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Retourne la couche d'un fichier MPEG

KTaglib_MPEG_AudioProperties::getLayer

(0.0.1)

KTaglib_MPEG_AudioProperties::getLayer — Retourne la couche d'un fichier MPEG

Description

public int KTaglib_MPEG_AudioProperties::getLayer ( void )

Retourne la couche d'un fichier MPEG (habituellement 2 pour un MP3).

Valeurs de retour

Retourne la couche, sous la forme d'un entier.


Retourne la taille d'un fichier MPEG

  • « KTaglib_MPEG_AudioProperties::getLayer
  • KTaglib_MPEG_AudioProperties::getSampleBitrate »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Retourne la taille d'un fichier MPEG

KTaglib_MPEG_AudioProperties::getLength

(0.0.1)

KTaglib_MPEG_AudioProperties::getLength — Retourne la taille d'un fichier MPEG

Description

public int KTaglib_MPEG_AudioProperties::getLength ( void )

Retourne la taille d'un fichier MPEG.

Valeurs de retour

Retourne la taille, sous la forme d'un entier.


Retourne l'échantillonnage d'un fichier MPEG

  • « KTaglib_MPEG_AudioProperties::getLength
  • KTaglib_MPEG_AudioProperties::getVersion »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Retourne l'échantillonnage d'un fichier MPEG

KTaglib_MPEG_AudioProperties::getSampleBitrate

(0.0.1)

KTaglib_MPEG_AudioProperties::getSampleBitrate — Retourne l'échantillonnage d'un fichier MPEG

Description

public int KTaglib_MPEG_AudioProperties::getSampleBitrate ( void )

Retourne l'échantillonnage d'un fichier MPEG.

Valeurs de retour

Retourne l'échantillonnage, sous la forme d'un entier.


Retourne la version d'un fichier MPEG

  • « KTaglib_MPEG_AudioProperties::getSampleBitrate
  • KTaglib_MPEG_AudioProperties::isCopyrighted »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Retourne la version d'un fichier MPEG

KTaglib_MPEG_AudioProperties::getVersion

(0.0.1)

KTaglib_MPEG_AudioProperties::getVersion — Retourne la version d'un fichier MPEG

Description

public int KTaglib_MPEG_AudioProperties::getVersion ( void )

Retourne la version de l'en-tête d'un fichier MPEG. Les versions possibles sont définies dans Tag_MPEG_Header (Version1, Version2, Version2.5).

Valeurs de retour

Retourne la version.


Retourne le statut du copyright d'un fichier MPEG

  • « KTaglib_MPEG_AudioProperties::getVersion
  • KTaglib_MPEG_AudioProperties::isOriginal »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Retourne le statut du copyright d'un fichier MPEG

KTaglib_MPEG_AudioProperties::isCopyrighted

(0.0.1)

KTaglib_MPEG_AudioProperties::isCopyrighted — Retourne le statut du copyright d'un fichier MPEG

Description

public bool KTaglib_MPEG_AudioProperties::isCopyrighted ( void )

Retourne true si le fichier MPEG est sous copyright.

Valeurs de retour

Retourne true si le fichier MPEG est sous copyright.


Vérifie si le fichier MPEG est marqué comme un fichier original

  • « KTaglib_MPEG_AudioProperties::isCopyrighted
  • KTaglib_MPEG_AudioProperties::isProtectionEnabled »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Vérifie si le fichier MPEG est marqué comme un fichier original

KTaglib_MPEG_AudioProperties::isOriginal

(0.0.1)

KTaglib_MPEG_AudioProperties::isOriginal — Vérifie si le fichier MPEG est marqué comme un fichier original

Description

public bool KTaglib_MPEG_AudioProperties::isOriginal ( void )

Retourne true si le fichier MPEG est marqué comme original.

Valeurs de retour

Retourne true si le fichier MPEG est marqué comme original.


Vérifie si un mécanisme de protection d'un fichier MPEG est actif

  • « KTaglib_MPEG_AudioProperties::isOriginal
  • KTaglib_Tag »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Vérifie si un mécanisme de protection d'un fichier MPEG est actif

KTaglib_MPEG_AudioProperties::isProtectionEnabled

(0.0.1)

KTaglib_MPEG_AudioProperties::isProtectionEnabled — Vérifie si un mécanisme de protection d'un fichier MPEG est actif

Description

public bool KTaglib_MPEG_AudioProperties::isProtectionEnabled ( void )

Retourne true si un mécanisme de protection tel que le DRM est actif pour ce fichier.

Valeurs de retour

Retourne true si un mécanisme de protection tel que le DRM est actif pour ce fichier.


La classe KTaglib_Tag

(0.0.1)

Introduction

Classe de base pour les tags ID3v1 ou ID3v2.

Class synopsis

KTaglib_Tag {
/* Méthodes */
public string getAlbum ( void )
public string getArtist ( void )
public string getComment ( void )
public string getGenre ( void )
public string getTitle ( void )
public int getTrack ( void )
public int getYear ( void )
public bool isEmpty ( void )
}

Sommaire

  • KTaglib_Tag::getAlbum — Retourne le nom de l'album d'un tag ID3
  • KTaglib_Tag::getArtist — Retourne le nom de l'artiste d'un tag ID3
  • KTaglib_Tag::getComment — Retourne le commentaire d'un tag ID3
  • KTaglib_Tag::getGenre — Retourne le genre d'un tag ID3
  • KTaglib_Tag::getTitle — Retourne le titre d'un tag ID3
  • KTaglib_Tag::getTrack — Retourne le numéro de la piste d'un tag ID3
  • KTaglib_Tag::getYear — Retourne l'année d'un tag ID3
  • KTaglib_Tag::isEmpty — Retourne TRUE si le tag est vide


Retourne le nom de l'album d'un tag ID3

  • « KTaglib_Tag
  • KTaglib_Tag::getArtist »
  • PHP Manual
  • KTaglib_Tag
  • Retourne le nom de l'album d'un tag ID3

KTaglib_Tag::getAlbum

(0.0.1)

KTaglib_Tag::getAlbum — Retourne le nom de l'album d'un tag ID3

Description

public string KTaglib_Tag::getAlbum ( void )

Retourne le nom de l'album d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne le nom de l'album.


Retourne le nom de l'artiste d'un tag ID3

  • « KTaglib_Tag::getAlbum
  • KTaglib_Tag::getComment »
  • PHP Manual
  • KTaglib_Tag
  • Retourne le nom de l'artiste d'un tag ID3

KTaglib_Tag::getArtist

(0.0.1)

KTaglib_Tag::getArtist — Retourne le nom de l'artiste d'un tag ID3

Description

public string KTaglib_Tag::getArtist ( void )

Retourne le nom de l'artiste d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne le nom de l'artiste.


Retourne le commentaire d'un tag ID3

  • « KTaglib_Tag::getArtist
  • KTaglib_Tag::getGenre »
  • PHP Manual
  • KTaglib_Tag
  • Retourne le commentaire d'un tag ID3

KTaglib_Tag::getComment

(0.0.1)

KTaglib_Tag::getComment — Retourne le commentaire d'un tag ID3

Description

public string KTaglib_Tag::getComment ( void )

Retourne le commentaire d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne le commentaire.


Retourne le genre d'un tag ID3

  • « KTaglib_Tag::getComment
  • KTaglib_Tag::getTitle »
  • PHP Manual
  • KTaglib_Tag
  • Retourne le genre d'un tag ID3

KTaglib_Tag::getGenre

(0.0.1)

KTaglib_Tag::getGenre — Retourne le genre d'un tag ID3

Description

public string KTaglib_Tag::getGenre ( void )

Retourne le genre d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne le genre.


Retourne le titre d'un tag ID3

  • « KTaglib_Tag::getGenre
  • KTaglib_Tag::getTrack »
  • PHP Manual
  • KTaglib_Tag
  • Retourne le titre d'un tag ID3

KTaglib_Tag::getTitle

(0.0.1)

KTaglib_Tag::getTitle — Retourne le titre d'un tag ID3

Description

public string KTaglib_Tag::getTitle ( void )

Retourne le titre d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne le titre.


Retourne le numéro de la piste d'un tag ID3

  • « KTaglib_Tag::getTitle
  • KTaglib_Tag::getYear »
  • PHP Manual
  • KTaglib_Tag
  • Retourne le numéro de la piste d'un tag ID3

KTaglib_Tag::getTrack

(0.0.1)

KTaglib_Tag::getTrack — Retourne le numéro de la piste d'un tag ID3

Description

public int KTaglib_Tag::getTrack ( void )

Retourne le numéro de la piste d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne le numéro de la piste, sous la forme d'un entier.


Retourne l'année d'un tag ID3

  • « KTaglib_Tag::getTrack
  • KTaglib_Tag::isEmpty »
  • PHP Manual
  • KTaglib_Tag
  • Retourne l'année d'un tag ID3

KTaglib_Tag::getYear

(0.0.1)

KTaglib_Tag::getYear — Retourne l'année d'un tag ID3

Description

public int KTaglib_Tag::getYear ( void )

Retourne l'année d'un tag ID3. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne l'année, sous la forme d'un entier.


Retourne TRUE si le tag est vide

  • « KTaglib_Tag::getYear
  • KTaglib_ID3v2_Tag »
  • PHP Manual
  • KTaglib_Tag
  • Retourne TRUE si le tag est vide

KTaglib_Tag::isEmpty

(0.0.1)

KTaglib_Tag::isEmpty — Retourne TRUE si le tag est vide

Description

public bool KTaglib_Tag::isEmpty ( void )

Retourne TRUE si le tag existe mais qu'il est vide. Cette méthode est implémentée pour les tags ID3v1 et ID3v2.

Valeurs de retour

Retourne TRUE si le tag est vide, FALSE sinon.


La classe KTaglib_ID3v2_Tag

(0.0.1)

Introduction

Représente un tag ID3v2. Elle fournit une liste des frames ID3v2 et peut être utilisée pour ajouter ou effacer des frames.

Classe

étend KTaglib_Tag {
/* Méthodes */
public bool addFrame ( KTaglib_ID3v2_Frame $frame )
public array getFrameList ( void )
/* Méthodes héritées */
public string KTaglib_Tag::getAlbum ( void )
public string KTaglib_Tag::getArtist ( void )
public string KTaglib_Tag::getComment ( void )
public string KTaglib_Tag::getGenre ( void )
public string KTaglib_Tag::getTitle ( void )
public int KTaglib_Tag::getTrack ( void )
public int KTaglib_Tag::getYear ( void )
public bool KTaglib_Tag::isEmpty ( void )
}

Sommaire

  • KTaglib_ID3v2_Tag::addFrame — Ajoute une frame à un tag ID3v2
  • KTaglib_ID3v2_Tag::getFrameList — Retourne un tableau de frames ID3v2, associées avec un tag ID3v2


Ajoute une frame à un tag ID3v2

  • « KTaglib_ID3v2_Tag
  • KTaglib_ID3v2_Tag::getFrameList »
  • PHP Manual
  • KTaglib_ID3v2_Tag
  • Ajoute une frame à un tag ID3v2

KTaglib_ID3v2_Tag::addFrame

(0.0.1)

KTaglib_ID3v2_Tag::addFrame — Ajoute une frame à un tag ID3v2

Description

public bool KTaglib_ID3v2_Tag::addFrame ( KTaglib_ID3v2_Frame $frame )

Ajoute une frame à un tag ID3v2. La frame doit être un objet KTaglib_ID3v2_Frame valide. Pour sauvegarder la frame, la fonction de sauvegarde doit être appelée.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Retourne un tableau de frames ID3v2, associées avec un tag ID3v2

  • « KTaglib_ID3v2_Tag::addFrame
  • KTaglib_ID3v2_Frame »
  • PHP Manual
  • KTaglib_ID3v2_Tag
  • Retourne un tableau de frames ID3v2, associées avec un tag ID3v2

KTaglib_ID3v2_Tag::getFrameList

(0.0.1)

KTaglib_ID3v2_Tag::getFrameList — Retourne un tableau de frames ID3v2, associées avec un tag ID3v2

Description

public array KTaglib_ID3v2_Tag::getFrameList ( void )

Retourne un tableau de frames ID3v2, associées au tag ID3v2.

Valeurs de retour

Retourne un tableau d'objets KTaglib_ID3v2_Frame.


La classe KTaglib_ID3v2_Frame

(0.0.1)

Introduction

La classe de base pour les frames ID3v2. Les tags ID3v2 sont séparés en plusieurs frames spécialisés. Quelques frames peuvent être présents plusieurs fois.

Classe

étend KTaglib_Tag {
/* Méthodes */
public int getSize ( void )
public string __toString ( void )
/* Méthodes héritées */
public string KTaglib_Tag::getAlbum ( void )
public string KTaglib_Tag::getArtist ( void )
public string KTaglib_Tag::getComment ( void )
public string KTaglib_Tag::getGenre ( void )
public string KTaglib_Tag::getTitle ( void )
public int KTaglib_Tag::getTrack ( void )
public int KTaglib_Tag::getYear ( void )
public bool KTaglib_Tag::isEmpty ( void )
}

Sommaire

  • KTaglib_ID3v2_Frame::getSize — Retourne la taille de la frame, en octets
  • KTaglib_ID3v2_Frame::__toString — Retourne une chaîne représentant la frame


Retourne la taille de la frame, en octets

  • « KTaglib_ID3v2_Frame
  • KTaglib_ID3v2_Frame::__toString »
  • PHP Manual
  • KTaglib_ID3v2_Frame
  • Retourne la taille de la frame, en octets

KTaglib_ID3v2_Frame::getSize

(0.0.1)

KTaglib_ID3v2_Frame::getSize — Retourne la taille de la frame, en octets

Description

public int KTaglib_ID3v2_Frame::getSize ( void )

Retourne la taille de la frame, en octets. Reportez-vous au site id3.org pour savoir comment sont les frames et comment elles sont définies.

Valeurs de retour

Retourne la taille de la frame, en octets.


Retourne une chaîne représentant la frame

  • « KTaglib_ID3v2_Frame::getSize
  • KTaglib_ID3v2_AttachedPictureFrame »
  • PHP Manual
  • KTaglib_ID3v2_Frame
  • Retourne une chaîne représentant la frame

KTaglib_ID3v2_Frame::__toString

(0.0.1)

KTaglib_ID3v2_Frame::__toString — Retourne une chaîne représentant la frame

Description

public string KTaglib_ID3v2_Frame::__toString ( void )

Retourne une chaîne représentant la frame. Ce peut être uniquement l'identifiant de la frame, mais cette chaîne peut également contenir d'autres informations. Reportez-vous à la documentation de ktaglib pour plus d'informations.

Valeurs de retour

Retourne une chaîne représentant la frame.


La classe KTaglib_ID3v2_AttachedPictureFrame

(0.0.1)

Introduction

Représente une frame ID3v2 qui peut contenir une image.

Classe

étend KTaglib_ID3v2_Frame {
/* Méthodes */
public string getDescription ( void )
public string getMimeType ( void )
public int getType ( void )
public bool savePicture ( string $filename )
public string getMimeType ( string $type )
public void setPicture ( string $filename )
public void setType ( int $type )
/* Méthodes héritées */
public int KTaglib_ID3v2_Frame::getSize ( void )
public string KTaglib_ID3v2_Frame::__toString ( void )
public string KTaglib_Tag::getAlbum ( void )
public string KTaglib_Tag::getArtist ( void )
public string KTaglib_Tag::getComment ( void )
public string KTaglib_Tag::getGenre ( void )
public string KTaglib_Tag::getTitle ( void )
public int KTaglib_Tag::getTrack ( void )
public int KTaglib_Tag::getYear ( void )
public bool KTaglib_Tag::isEmpty ( void )
}

Sommaire

  • KTaglib_ID3v2_AttachedPictureFrame::getDescription — Retourne une description de l'image contenu dans la frame spécialisée
  • KTaglib_ID3v2_AttachedPictureFrame::getMimeType — Retourne le type MIME de l'image
  • KTaglib_ID3v2_AttachedPictureFrame::getType — Retourne le type d'une image
  • KTaglib_ID3v2_AttachedPictureFrame::savePicture — Sauvegarde une image dans un fichier
  • KTaglib_ID3v2_AttachedPictureFrame::setMimeType — Définit le type MIME d'une image
  • KTaglib_ID3v2_AttachedPictureFrame::setPicture — Définit le tag image en une image donnée
  • KTaglib_ID3v2_AttachedPictureFrame::setType — Définit le type de l'image


Retourne une description de l'image contenu dans la frame spécialisée

  • « KTaglib_ID3v2_AttachedPictureFrame
  • KTaglib_ID3v2_AttachedPictureFrame::getMimeType »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Retourne une description de l'image contenu dans la frame spécialisée

KTaglib_ID3v2_AttachedPictureFrame::getDescription

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::getDescription — Retourne une description de l'image contenu dans la frame spécialisée

Description

public string KTaglib_ID3v2_AttachedPictureFrame::getDescription ( void )

Retourne la description attachée à une frame contenant une image, dans une frame ID3v2.x.

Valeurs de retour

Retourne une description de l'image.


Retourne le type MIME de l'image

  • « KTaglib_ID3v2_AttachedPictureFrame::getDescription
  • KTaglib_ID3v2_AttachedPictureFrame::getType »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Retourne le type MIME de l'image

KTaglib_ID3v2_AttachedPictureFrame::getMimeType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::getMimeType — Retourne le type MIME de l'image

Description

public string KTaglib_ID3v2_AttachedPictureFrame::getMimeType ( void )

Retourne le type MIME de l'image présente dans la frame spécialisée.

Notez que cette méthode peut retourner différents types. Alors que les tags ID3v2.2 contiennent un type MIME qui ne commencent pas par "image/", les tags ID3v2.3 et v2.4 commencent eux par "image/". Aussi, cette méthode peut retourner "image/png" pour les tags IDv2.3 et uniquement "PNG" pour les tags ID3v2.2.

Notez également que, malgré le fait qu'une image soit attachée, le type MIME peut ne pas avoir été défini, et ainsi, une chaîne vide peut être retournée.

Valeurs de retour

Retourne le type MIME de l'image.


Retourne le type d'une image

  • « KTaglib_ID3v2_AttachedPictureFrame::getMimeType
  • KTaglib_ID3v2_AttachedPictureFrame::savePicture »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Retourne le type d'une image

KTaglib_ID3v2_AttachedPictureFrame::getType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::getType — Retourne le type d'une image

Description

public int KTaglib_ID3v2_AttachedPictureFrame::getType ( void )

Retourne le type d'une image.

La spécification ID3v2 autorise un AttachedPictureFrame à définir une image. Cela peut être, i.e. FrontCover ou FileIcon. Reportez-vous à la description de la classe KTaglib_ID3v2_AttachedPictureFrame pour une liste des types disponibles.

Valeurs de retour

Retourne un entier représentant le type de l'image.


Sauvegarde une image dans un fichier

  • « KTaglib_ID3v2_AttachedPictureFrame::getType
  • KTaglib_ID3v2_AttachedPictureFrame::setMimeType »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Sauvegarde une image dans un fichier

KTaglib_ID3v2_AttachedPictureFrame::savePicture

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::savePicture — Sauvegarde une image dans un fichier

Description

public bool KTaglib_ID3v2_AttachedPictureFrame::savePicture ( string $filename )

Sauvegarde l'image attachée dans un fichier donné.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Définit le type MIME d'une image

  • « KTaglib_ID3v2_AttachedPictureFrame::savePicture
  • KTaglib_ID3v2_AttachedPictureFrame::setPicture »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Définit le type MIME d'une image

KTaglib_ID3v2_AttachedPictureFrame::setMimeType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::setMimeType — Définit le type MIME d'une image

Description

public string KTaglib_ID3v2_AttachedPictureFrame::getMimeType ( string $type )

Définit le type MIME d'une image. C'est, en général, "image/png" ou "image/jpeg".


Définit le tag image en une image donnée

  • « KTaglib_ID3v2_AttachedPictureFrame::setMimeType
  • KTaglib_ID3v2_AttachedPictureFrame::setType »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Définit le tag image en une image donnée

KTaglib_ID3v2_AttachedPictureFrame::setPicture

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::setPicture — Définit le tag image en une image donnée

Description

public void KTaglib_ID3v2_AttachedPictureFrame::setPicture ( string $filename )

Définit le tag image en une image donnée. L'image est chargée depuis le fichier fourni. Notez que l'image n'est sauvegardée que lors de l'appel à la méthode de sauvegarde de l'objet fichier correspondant.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si une erreur survient.


Définit le type de l'image

  • « KTaglib_ID3v2_AttachedPictureFrame::setPicture
  • oggvorbis »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Définit le type de l'image

KTaglib_ID3v2_AttachedPictureFrame::setType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::setType — Définit le type de l'image

Description

public void KTaglib_ID3v2_AttachedPictureFrame::setType ( int $type )

Définit le type de l'image. Ce peut être FrontCover ou FileIcon. Reportez-vous à la description de la classe KTaglib_ID3v2_AttachedPictureFrame pour une liste de types disponibles ainsi que leurs constantes correspondantes.


OGG/Vorbis

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Options de contexte
  • Exemples
    • Exemples d'utilisation du gestionnaire ogg://


Introduction

Le format de fichier OGG/Vorbis, comme définit par » http://www.vorbis.com/, est un schéma pour la compression de flux audio par de multiples facteurs avec un minimum de perte de qualité. Cette extension ajoute le support Ogg Vorbis aux gestionnaires d'URL de PHP. Lorsqu'utilisé en mode lecture, les données compressées OGG/Vorbis sont déployées en audio PCM brute en un des six formats d'encodage PCM listés ci-dessous.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Cette extension nécessite PHP >= 4.3.0, » libogg >= 1.0, et » libvorbis >= 1.0.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/oggvorbis


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

OGG/Vorbis supporte l'encodage PCM dans les formats suivants :
Constante | Définition
OGGVORBIS_PCM_U8 | PCM 8-bit non-signé.
OGGVORBIS_PCM_S8 | PCM 8-bit signé.
OGGVORBIS_PCM_U16_LE | PCM 16-bit non-signé. Arrangements normaux Little Endian.
OGGVORBIS_PCM_U16_BE | PCM 16-bit non-signé. Arrangements normaux Big Endian.
OGGVORBIS_PCM_S16_LE | PCM 16-bit signé. Arrangements normaux Little Endian.
OGGVORBIS_PCM_S16_BE | PCM 16-bit signé. Arrangements normaux Big Endian.


Options de contexte

Options personnalisées OGG/Vorbis
Option | Définition | Pertinence | Défaut
pcm_mode | Encodage PCM utilisé. Voir les constantes ci-dessous. | Lecture / Écriture | OGGVORBIS_PCM_S16_LE
rate | Taux d'échantillonnage PCM. Mesuré en Hz. | Écriture uniquement | 44100
bitrate | Débit d'encodage moyen Vorbis / Débit d'encodage variable. Mesuré en bps (ABR) ou en niveau de qualité (VBR : 0.0 à 1.0). 128000 ABR équivaut à 0.4 VBR. | Écriture uniquement | 128000
channels | Nombre de canaux PCM. 1 == Mono, 2 == Stéréo. | Écriture uniquement | 2
serialno | Numéro de série du flux dans un fichier. Doit être unique dans un fichier. Parce qu'il est potentiellement possible de sélectionner plusieurs numéros de série dans un fichier chaîné, faites l'effort d'assigner manuellement des numéros uniques lors de l'encodage. | Écriture uniquement | Random
comments | Tableau associatif de commentaires de fichier. Peut être traduit par strtoupper($name) . "=$value". Note : cette option de contexte n'est pas disponible en oggvorbis 0.1 | Écriture uniquement | array('ENCODER' => 'PHP/OggVorbis, http://pear.php.net/oggvorbis')


  • « Options de contexte
  • Exemples d'utilisation du gestionnaire ogg:// »
  • PHP Manual
  • oggvorbis
  • Exemples

Exemples

Sommaire

  • Exemples d'utilisation du gestionnaire ogg://


Exemples d'utilisation du gestionnaire ogg://

Exemple #1 Lecture d'un fichier OGG/Vorbis

<?php
dl("oggvorbis.so");

/* Par défaut, ogg:// décodera en 16-bit signé, en mode Little Endian */
$fp = fopen('ogg://monaudio.ogg', 'r');

/* Collecte quelques informations sur le fichier. */
$metadata = stream_get_meta_data($fp);

/* Inspection de la première chanson (habituellement la seule chanson
   mais les fichiers OGG/Vorbis peuvent être chaînés) */
$songdata = $metadata['wrapper_data'][0];

echo "Fichier OGG/Vorbis encodé par : {$songdata['vendor']}\n.";
echo "  {$songdata['channels']} canaux de {$songdata['rate']}Hz encodé à {$songdata['bitrate_nominal']}bps.\n";
foreach($songdata['comments'] as $comment) {
    echo "  $comment\n";
}

while ($audio_data = fread($fp, 8192)) {
  /* Faire quelque chose avec l'audio PCM extrait depuis le OGG.
     Copier vers /dev/dsp est une bonne chose sur les systèmes linux,
     souvenez-vous juste de définir le périphérique pour votre mode d'échantillonage d'abord. */
}

fclose($fp);

?>

Exemple #2 Encoder un fichier audio en OGG/Vorbis

<?php
dl('oggvorbis.so');

$context = stream_context_create(array('ogg'=>array(
             'pcm_mode' => OGGVORBIS_PCM_S8,  /* audio 8bit signé */
             'rate' => 44100,                 /* Qualité CD 44kHz */
             'bitrate' => 0.5,                /* Qualité moyenne VBR */
             'channels' => 1,                 /* Mono */
             'serialno' => 12345)));          /* Unique dans notre flux */

/* Ouverture d'un fichier pour un ajout. Ceci permet de "chaîner" un deuxième flux OGG à la fin du premier. */
$ogg = fopen('ogg://machanson.ogg', 'a', false, $context);

$pcm = fopen('mysample.pcm', 'r');

/* Compression de l'audio brute PCM depuis mysample.pcm vers machanson.ogg */
stream_copy_to_stream($pcm, $ogg);

fclose($pcm);
fclose($ogg);
?>


Gestion Audio OpenAL

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions OpenAL
    • openal_buffer_create — Génère un buffer OpenAL
    • openal_buffer_data — Charge un buffer avec des données
    • openal_buffer_destroy — Détruit un buffer OpenAL
    • openal_buffer_get — Récupère les propriétés du buffer OpenAL
    • openal_buffer_loadwav — Charge un fichier .wav dans le buffer
    • openal_context_create — Crée un contexte de traitement audio
    • openal_context_current — Rend courant le contexte spécifié
    • openal_context_destroy — Détruit un contexte
    • openal_context_process — Traite le contexte spécifié
    • openal_context_suspend — Suspend le contexte spécifié
    • openal_device_close — Ferme un périphérique OpenAL
    • openal_device_open — Initialise une interface audio OpenAL
    • openal_listener_get — Récupère une propriété d'auditeur
    • openal_listener_set — Définie une propriété d'auditeur
    • openal_source_create — Génère une ressource de source
    • openal_source_destroy — Détruit une ressource de source
    • openal_source_get — Récupère une propriété de source OpenAL
    • openal_source_pause — Marque une pause dans la source
    • openal_source_play — Démarre la lecture de la source
    • openal_source_rewind — Revient en arrière dans la source
    • openal_source_set — Définie une propriété de la source
    • openal_source_stop — Arrête la lecture de la source
    • openal_stream — Démarre le streaming d'une source


Introduction

Plate-forme indépendante pour la gestion de l'audio. Requiert la bibliothèque » OpenAL.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/openal.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Types de ressources

Cette extension définie quatre types de ressource :
Open AL(Device) - Retournée par openal_device_open(),
Open AL(Context) - Retournée par openal_context_create(),
Open AL(Buffer) - Retournée par openal_buffer_create(),
et Open AL(Source) - Retournée par openal_source_create().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

ALC_FREQUENCY (entier)
Attribut de contexte
ALC_REFRESH (entier)
Attribut de contexte
ALC_SYNC (entier)
Attribut de contexte
AL_FREQUENCY (entier)
Configuration du buffer
AL_BITS (entier)
Configuration du buffer
AL_CHANNELS (entier)
Configuration du buffer
AL_SIZE (entier)
Configuration du buffer
AL_BUFFER (entier)
Configuration de la source/de l'écoute (Entier)
AL_SOURCE_RELATIVE (entier)
Configuration de la source/de l'écoute (Entier)
AL_SOURCE_STATE (entier)
Configuration de la source/de l'écoute (Entier)
AL_PITCH (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_GAIN (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_MIN_GAIN (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_MAX_GAIN (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_MAX_DISTANCE (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_ROLLOFF_FACTOR (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_CONE_OUTER_GAIN (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_CONE_INNER_ANGLE (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_CONE_OUTER_ANGLE (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_REFERENCE_DISTANCE (entier)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_POSITION (entier)
Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)
AL_VELOCITY (entier)
Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)
AL_DIRECTION (entier)
Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)
AL_ORIENTATION (entier)
Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)
AL_FORMAT_MONO8 (entier)
Format PCM
AL_FORMAT_MONO16 (entier)
Format PCM
AL_FORMAT_STEREO8 (entier)
Format PCM
AL_FORMAT_STEREO16 (entier)
Format PCM
AL_INITIAL (entier)
État de la Source
AL_PLAYING (entier)
État de la Source
AL_PAUSED (entier)
État de la Source
AL_STOPPED (entier)
État de la Source
AL_LOOPING (entier)
État de la Source
AL_TRUE (entier)
Valeur booléen reconnue par OpenAL
AL_FALSE (entier)
Valeur booléen reconnue par OpenAL


Fonctions OpenAL

Sommaire

  • openal_buffer_create — Génère un buffer OpenAL
  • openal_buffer_data — Charge un buffer avec des données
  • openal_buffer_destroy — Détruit un buffer OpenAL
  • openal_buffer_get — Récupère les propriétés du buffer OpenAL
  • openal_buffer_loadwav — Charge un fichier .wav dans le buffer
  • openal_context_create — Crée un contexte de traitement audio
  • openal_context_current — Rend courant le contexte spécifié
  • openal_context_destroy — Détruit un contexte
  • openal_context_process — Traite le contexte spécifié
  • openal_context_suspend — Suspend le contexte spécifié
  • openal_device_close — Ferme un périphérique OpenAL
  • openal_device_open — Initialise une interface audio OpenAL
  • openal_listener_get — Récupère une propriété d'auditeur
  • openal_listener_set — Définie une propriété d'auditeur
  • openal_source_create — Génère une ressource de source
  • openal_source_destroy — Détruit une ressource de source
  • openal_source_get — Récupère une propriété de source OpenAL
  • openal_source_pause — Marque une pause dans la source
  • openal_source_play — Démarre la lecture de la source
  • openal_source_rewind — Revient en arrière dans la source
  • openal_source_set — Définie une propriété de la source
  • openal_source_stop — Arrête la lecture de la source
  • openal_stream — Démarre le streaming d'une source


Génère un buffer OpenAL

  • « Fonctions OpenAL
  • openal_buffer_data »
  • PHP Manual
  • Fonctions OpenAL
  • Génère un buffer OpenAL

openal_buffer_create

(PECL openal >= 0.1.0)

openal_buffer_create — Génère un buffer OpenAL

Description

resource openal_buffer_create ( void )

Valeurs de retour

openal_buffer_create() retourne une ressource Open AL(Buffer) ou FALSE en cas d'erreur.

Voir aussi

  • openal_buffer_loadwav() - Charge un fichier .wav dans le buffer
  • openal_buffer_data() - Charge un buffer avec des données


Charge un buffer avec des données

  • « openal_buffer_create
  • openal_buffer_destroy »
  • PHP Manual
  • Fonctions OpenAL
  • Charge un buffer avec des données

openal_buffer_data

(PECL openal >= 0.1.0)

openal_buffer_data — Charge un buffer avec des données

Description

bool openal_buffer_data ( resource $buffer , int $format , string $data , int $freq )

Liste de paramètres

buffer

Une ressource Open AL(Buffer) (précédemment créée par openal_buffer_create()).

format

Format du paramètre data, un parmi ceux-là : AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 et AL_FORMAT_STEREO16.

data

Bloc de données binaires audio dans le format spécifié format et freq.

freq

Fréquence des données data, en Hz.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_buffer_loadwav() - Charge un fichier .wav dans le buffer
  • openal_stream() - Démarre le streaming d'une source


Détruit un buffer OpenAL

  • « openal_buffer_data
  • openal_buffer_get »
  • PHP Manual
  • Fonctions OpenAL
  • Détruit un buffer OpenAL

openal_buffer_destroy

(PECL openal >= 0.1.0)

openal_buffer_destroy — Détruit un buffer OpenAL

Description

bool openal_buffer_destroy ( resource $buffer )

Liste de paramètres

buffer

Une ressource Open AL(Buffer) (précédemment créée par openal_buffer_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_buffer_create() - Génère un buffer OpenAL


Récupère les propriétés du buffer OpenAL

  • « openal_buffer_destroy
  • openal_buffer_loadwav »
  • PHP Manual
  • Fonctions OpenAL
  • Récupère les propriétés du buffer OpenAL

openal_buffer_get

(PECL openal >= 0.1.0)

openal_buffer_get — Récupère les propriétés du buffer OpenAL

Description

int openal_buffer_get ( resource $buffer , int $property )

Liste de paramètres

buffer

Une ressource Open AL(Buffer) (précédemment créée par openal_buffer_create()).

property

Une propriété spécifique, une parmi celles-ci : AL_FREQUENCY, AL_BITS, AL_CHANNELS et AL_SIZE.

Valeurs de retour

Retourne une valeur entière appropriée à la demande property ou FALSE si une erreur survient.

Voir aussi

  • openal_buffer_create() - Génère un buffer OpenAL


Charge un fichier .wav dans le buffer

  • « openal_buffer_get
  • openal_context_create »
  • PHP Manual
  • Fonctions OpenAL
  • Charge un fichier .wav dans le buffer

openal_buffer_loadwav

(PECL openal >= 0.1.0)

openal_buffer_loadwav — Charge un fichier .wav dans le buffer

Description

bool openal_buffer_loadwav ( resource $buffer , string $wavfile )

Liste de paramètres

buffer

Une ressource Open AL(Buffer) (précédemment créée par openal_buffer_create()).

wavfile

Chemin vers le fichier .wav sur le système de fichiers local.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_buffer_data() - Charge un buffer avec des données
  • openal_stream() - Démarre le streaming d'une source


Crée un contexte de traitement audio

  • « openal_buffer_loadwav
  • openal_context_current »
  • PHP Manual
  • Fonctions OpenAL
  • Crée un contexte de traitement audio

openal_context_create

(PECL openal >= 0.1.0)

openal_context_create — Crée un contexte de traitement audio

Description

resource openal_context_create ( resource $device )

Liste de paramètres

device

Une ressource Open AL(Device) (précédemment créée par openal_device_open()).

Valeurs de retour

Retourne une ressource Open AL(Context) ou FALSE en cas d'erreur.

Voir aussi

  • openal_device_open() - Initialise une interface audio OpenAL
  • openal_context_destroy() - Détruit un contexte


Rend courant le contexte spécifié

  • « openal_context_create
  • openal_context_destroy »
  • PHP Manual
  • Fonctions OpenAL
  • Rend courant le contexte spécifié

openal_context_current

(PECL openal >= 0.1.0)

openal_context_current — Rend courant le contexte spécifié

Description

bool openal_context_current ( resource $context )

Liste de paramètres

context

Une ressource Open AL(Context) (précédemment créée par openal_context_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_context_create() - Crée un contexte de traitement audio


Détruit un contexte

  • « openal_context_current
  • openal_context_process »
  • PHP Manual
  • Fonctions OpenAL
  • Détruit un contexte

openal_context_destroy

(PECL openal >= 0.1.0)

openal_context_destroy — Détruit un contexte

Description

bool openal_context_destroy ( resource $context )

Liste de paramètres

context

Une ressource Open AL(Context) (précédemment créée par openal_context_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_context_create() - Crée un contexte de traitement audio


Traite le contexte spécifié

  • « openal_context_destroy
  • openal_context_suspend »
  • PHP Manual
  • Fonctions OpenAL
  • Traite le contexte spécifié

openal_context_process

(PECL openal >= 0.1.0)

openal_context_process — Traite le contexte spécifié

Description

bool openal_context_process ( resource $context )

Liste de paramètres

context

Une ressource Open AL(Context) (précédemment créée par openal_context_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_context_create() - Crée un contexte de traitement audio
  • openal_context_current() - Rend courant le contexte spécifié
  • openal_context_suspend() - Suspend le contexte spécifié


Suspend le contexte spécifié

  • « openal_context_process
  • openal_device_close »
  • PHP Manual
  • Fonctions OpenAL
  • Suspend le contexte spécifié

openal_context_suspend

(PECL openal >= 0.1.0)

openal_context_suspend — Suspend le contexte spécifié

Description

bool openal_context_suspend ( resource $context )

Liste de paramètres

context

Une ressource Open AL(Context) (précédemment créée par openal_context_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_context_create() - Crée un contexte de traitement audio
  • openal_context_current() - Rend courant le contexte spécifié
  • openal_context_process() - Traite le contexte spécifié


Ferme un périphérique OpenAL

  • « openal_context_suspend
  • openal_device_open »
  • PHP Manual
  • Fonctions OpenAL
  • Ferme un périphérique OpenAL

openal_device_close

(PECL openal >= 0.1.0)

openal_device_close — Ferme un périphérique OpenAL

Description

bool openal_device_close ( resource $device )

Liste de paramètres

device

Une ressource Open AL(Device) (précédemment créée par openal_device_open()) à fermer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_device_open() - Initialise une interface audio OpenAL


Initialise une interface audio OpenAL

  • « openal_device_close
  • openal_listener_get »
  • PHP Manual
  • Fonctions OpenAL
  • Initialise une interface audio OpenAL

openal_device_open

(PECL openal >= 0.1.0)

openal_device_open — Initialise une interface audio OpenAL

Description

resource openal_device_open ([ string $device_desc ] )

Liste de paramètres

device_desc

openal_device_open() ouvre un périphérique audio optionnellement spécifié par le paramètre device_desc. Si le paramètre device_desc n'est pas spécifié, le premier périphérique audio disponible sera utilisé.

Valeurs de retour

Retourne une ressource Open AL(Device) ou FALSE en cas d'erreur.

Voir aussi

  • openal_device_close() - Ferme un périphérique OpenAL
  • openal_context_create() - Crée un contexte de traitement audio


Récupère une propriété d'auditeur

  • « openal_device_open
  • openal_listener_set »
  • PHP Manual
  • Fonctions OpenAL
  • Récupère une propriété d'auditeur

openal_listener_get

(PECL openal >= 0.1.0)

openal_listener_get — Récupère une propriété d'auditeur

Description

mixed openal_listener_get ( int $property )

Liste de paramètres

property

La propriété à récupérer, une parmi celles-ci :
AL_GAIN (nombre décimal),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) et
AL_ORIENTATION (array(float,float,float)).

Valeurs de retour

Retourne un nombre décimal ou un tableau de nombres à virgule flottante ou FALSE si une erreur survient.

Voir aussi

  • openal_listener_set() - Définie une propriété d'auditeur


Définie une propriété d'auditeur

  • « openal_listener_get
  • openal_source_create »
  • PHP Manual
  • Fonctions OpenAL
  • Définie une propriété d'auditeur

openal_listener_set

(PECL openal >= 0.1.0)

openal_listener_set — Définie une propriété d'auditeur

Description

bool openal_listener_set ( int $property , mixed $setting )

Liste de paramètres

property

La propriété à définir, une parmi celles-ci :
AL_GAIN (nombre décimal),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) et
AL_ORIENTATION (array(float,float,float)).

setting

La valeur à définir, soit un nombre décimal, soit un tableau de nombres à virgule flottante appropriés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_listener_get() - Récupère une propriété d'auditeur


Génère une ressource de source

  • « openal_listener_set
  • openal_source_destroy »
  • PHP Manual
  • Fonctions OpenAL
  • Génère une ressource de source

openal_source_create

(PECL openal >= 0.1.0)

openal_source_create — Génère une ressource de source

Description

resource openal_source_create ( void )

Valeurs de retour

Retourne une ressource Open AL(Source) ou FALSE en cas d'erreur.

Voir aussi

  • openal_source_set() - Définie une propriété de la source
  • openal_source_play() - Démarre la lecture de la source
  • openal_source_destroy() - Détruit une ressource de source


Détruit une ressource de source

  • « openal_source_create
  • openal_source_get »
  • PHP Manual
  • Fonctions OpenAL
  • Détruit une ressource de source

openal_source_destroy

(PECL openal >= 0.1.0)

openal_source_destroy — Détruit une ressource de source

Description

bool openal_source_destroy ( resource $source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_source_create() - Génère une ressource de source


Récupère une propriété de source OpenAL

  • « openal_source_destroy
  • openal_source_pause »
  • PHP Manual
  • Fonctions OpenAL
  • Récupère une propriété de source OpenAL

openal_source_get

(PECL openal >= 0.1.0)

openal_source_get — Récupère une propriété de source OpenAL

Description

mixed openal_source_get ( resource $source , int $property )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

property

Propriété à récupérer, une parmi celles-ci : AL_SOURCE_RELATIVE (entier), AL_SOURCE_STATE (entier), AL_PITCH (nombre décimal), AL_GAIN (nombre décimal), AL_MIN_GAIN (nombre décimal), AL_MAX_GAIN (nombre décimal), AL_MAX_DISTANCE (nombre décimal), AL_ROLLOFF_FACTOR (nombre décimal), AL_CONE_OUTER_GAIN (nombre décimal), AL_CONE_INNER_ANGLE (nombre décimal), AL_CONE_OUTER_ANGLE (nombre décimal), AL_REFERENCE_DISTANCE (nombre décimal), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

Valeurs de retour

Retourne le type associé avec la propriété récupérée ou FALSE si une erreur survient.

Voir aussi

  • openal_source_create() - Génère une ressource de source
  • openal_source_set() - Définie une propriété de la source
  • openal_source_play() - Démarre la lecture de la source


Marque une pause dans la source

  • « openal_source_get
  • openal_source_play »
  • PHP Manual
  • Fonctions OpenAL
  • Marque une pause dans la source

openal_source_pause

(PECL openal >= 0.1.0)

openal_source_pause — Marque une pause dans la source

Description

bool openal_source_pause ( resource $source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée avec openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_source_stop() - Arrête la lecture de la source
  • openal_source_play() - Démarre la lecture de la source
  • openal_source_rewind() - Revient en arrière dans la source


Démarre la lecture de la source

  • « openal_source_pause
  • openal_source_rewind »
  • PHP Manual
  • Fonctions OpenAL
  • Démarre la lecture de la source

openal_source_play

(PECL openal >= 0.1.0)

openal_source_play — Démarre la lecture de la source

Description

bool openal_source_play ( resource $source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_source_stop() - Arrête la lecture de la source
  • openal_source_pause() - Marque une pause dans la source
  • openal_source_rewind() - Revient en arrière dans la source


Revient en arrière dans la source

  • « openal_source_play
  • openal_source_set »
  • PHP Manual
  • Fonctions OpenAL
  • Revient en arrière dans la source

openal_source_rewind

(PECL openal >= 0.1.0)

openal_source_rewind — Revient en arrière dans la source

Description

bool openal_source_rewind ( resource $source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_source_stop() - Arrête la lecture de la source
  • openal_source_pause() - Marque une pause dans la source
  • openal_source_play() - Démarre la lecture de la source


Définie une propriété de la source

  • « openal_source_rewind
  • openal_source_stop »
  • PHP Manual
  • Fonctions OpenAL
  • Définie une propriété de la source

openal_source_set

(PECL openal >= 0.1.0)

openal_source_set — Définie une propriété de la source

Description

bool openal_source_set ( resource $source , int $property , mixed $setting )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

property

La propriété à définir, une parmi celles-ci : AL_BUFFER (OpenAL(Source)), AL_LOOPING (booléen), AL_SOURCE_RELATIVE (entier), AL_SOURCE_STATE (entier), AL_PITCH (nombre décimal), AL_GAIN (nombre décimal), AL_MIN_GAIN (nombre décimal), AL_MAX_GAIN (nombre décimal), AL_MAX_DISTANCE (nombre décimal), AL_ROLLOFF_FACTOR (nombre décimal), AL_CONE_OUTER_GAIN (nombre décimal), AL_CONE_INNER_ANGLE (nombre décimal), AL_CONE_OUTER_ANGLE (nombre décimal), AL_REFERENCE_DISTANCE (nombre décimal), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

setting

La valeur à assigner à la propriété spécifiée par le paramètre property. Référez-vous à la description de la propriété property pour une description des valeurs attendues.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_source_create() - Génère une ressource de source
  • openal_source_get() - Récupère une propriété de source OpenAL
  • openal_source_play() - Démarre la lecture de la source


Arrête la lecture de la source

  • « openal_source_set
  • openal_stream »
  • PHP Manual
  • Fonctions OpenAL
  • Arrête la lecture de la source

openal_source_stop

(PECL openal >= 0.1.0)

openal_source_stop — Arrête la lecture de la source

Description

bool openal_source_stop ( resource $source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openal_source_play() - Démarre la lecture de la source
  • openal_source_pause() - Marque une pause dans la source
  • openal_source_rewind() - Revient en arrière dans la source


Démarre le streaming d'une source

  • « openal_source_stop
  • Services d'identification »
  • PHP Manual
  • Fonctions OpenAL
  • Démarre le streaming d'une source

openal_stream

(PECL openal >= 0.1.0)

openal_stream — Démarre le streaming d'une source

Description

resource openal_stream ( resource $source , int $format , int $rate )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

format

Le format du paramètre data, un parmi ceux-là : AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 et AL_FORMAT_STEREO16.

rate

La fréquence des données à streamer, en Hz.

Valeurs de retour

Retourne une ressource de streaming ou FALSE si une erreur survient.

Voir aussi

  • openal_source_create() - Génère une ressource de source
  • fwrite() - Écrit un fichier en mode binaire


Services d'identification

  • KADM5 — Kerberos V
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions KADM5
  • Radius
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Radius


Kerberos V

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
    • Constantes pour les attributs des balises
    • Constantes pour les options
  • Exemples
    • Utilisation simple
  • Fonctions KADM5
    • kadm5_chpass_principal — Modifie le mot de passe du principal
    • kadm5_create_principal — Crée un principal kerberos avec les paramètres donnés
    • kadm5_delete_principal — Efface un principal kerberos
    • kadm5_destroy — Ferme la connexion avec le serveur d'administration et libère toutes les ressources associées
    • kadm5_flush — Valide toutes les modifications de la base de données Kerberos
    • kadm5_get_policies — Récupère toutes les directives depuis la base de données Kerberos
    • kadm5_get_principal — Récupère les entrées des éléments principaux depuis la base de données Kerberos
    • kadm5_get_principals — Récupère tous les éléments principaux depuis la base de données Kerberos
    • kadm5_init_with_password — Ouvre une connexion à la bibliothèque KADM5
    • kadm5_modify_principal — Modifie un principal Kerberos avec les paramètres donnés


Introduction

Ce paquet vous permet d'accéder à l'administration des serveurs Kerberos V. Vous pourrez créer, modifier et effacer les directives et les éléments principaux Kerberos V.

Plus d'informations à propos de Kerberos peuvent être trouvées sur » http://web.mit.edu/kerberos/www/.

La documentation sur Kerberos et KADM5 peut être trouvée sur » http://web.mit.edu/kerberos/www/krb5-1.2/krb5-1.2.8/doc/admin_toc.html.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/kadm5.

Note:

Si vous utilisez cette option sans spécifier le chemin vers KADM5, PHP utilisera les bibliothèques clientes internes de KADM5. Les utilisateurs qui exécutent d'autres applications qui utilisent également KADM5 (par exemple, l'exécution de PHP 4 et PHP 5 comme modules apache concurrent, ou auth-kadm5), doivent également spécifier le chemin vers KADM5 : --with-kadm5=/path/to/kadm5. Ceci forcera PHP à utiliser les bibliothèques clientes installées par KADM5, évitant ainsi les conflits.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension dÃ©finit un gestionnaire KADM5 retournÃ© par la fonction kadm5_init_with_password().


Constantes pré-définies

Sommaire

  • Constantes pour les attributs des balises
  • Constantes pour les options

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.


Constantes pour les attributs des balises

Les fonctions kadm5_create_principal(),
kadm5_modify_principal() et
kadm5_modify_principal() vous permettent
de spécifier des attributs spéciaux utilisant un champ de bits.
Les symboles sont définis ci-dessous :

Attributs à utiliser par KDC
constante
KRB5_KDB_DISALLOW_POSTDATED
KRB5_KDB_DISALLOW_FORWARDABLE
KRB5_KDB_DISALLOW_TGT_BASED
KRB5_KDB_DISALLOW_RENEWABLE
KRB5_KDB_DISALLOW_PROXIABLE
KRB5_KDB_DISALLOW_DUP_SKEY
KRB5_KDB_DISALLOW_ALL_TIX
KRB5_KDB_REQUIRES_PRE_AUTH
KRB5_KDB_REQUIRES_HW_AUTH
KRB5_KDB_REQUIRES_PWCHANGE
KRB5_KDB_DISALLOW_SVR
KRB5_KDB_PWCHANGE_SERVER
KRB5_KDB_SUPPORT_DESMD5
KRB5_KDB_NEW_PRINC


Constantes pour les options

Les fonctions kadm5_create_principal(), kadm5_modify_principal() et kadm5_get_principal() permettent de spécifier ou retourner les options des éléments principaux en tant que tableaux associatifs. Les clés pour le tableau associatif sont définies en tant que constantes ci-dessous :

Options pour créer/modifier/récupérer des éléments principaux
constante | type | description
KADM5_PRINCIPAL | long | Le délai d'expiration des éléments principaux en tant que timestamp Kerberos.
KADM5_PRINC_EXPIRE_TIME | long | Le délai d'expiration des éléments principaux en tant que timestamp Kerberos.
KADM5_LAST_PW_CHANGE | long | Le délai pendant lequel le mot de passe du principal a été changé pour la dernière fois.
KADM5_PW_EXPIRATION | long | Le délai d'expiration du mot de passe du principal courant, en tant que timestamp Kerberos.
KADM5_MAX_LIFE | long | La durée de vie maximale de tous les tickets Kerberos issus de ce principal.
KADM5_MAX_RLIFE | long | La durée maximale renouvelable de tous les tickets Kerberos issus de ce principal.
KADM5_MOD_NAME | string | Le nom du principal Kerberos qui a modifié ce principal le plus récemment.
KADM5_MOD_TIME | long | L'heure à laquelle ce principal a été modifié pour la dernière fois, en tant que timestamp Kerberos.
KADM5_KVNO | long | La version de la clé courante du principal.
KADM5_POLICY | string | Le nom de la directive contrôlant ce principal.
KADM5_CLEARPOLICY | long | La procédure standard servant à assigner la directive par défaut pour créer des éléments principaux. KADM5_CLEARPOLICY supprime ce comportement.
KADM5_LAST_SUCCESS | long | L'heure KDC de la dernière AS_REQ qui a réussi.
KADM5_LAST_FAILED | long | L'heure KDC de la dernière AS_REQ qui a échoué.
KADM5_FAIL_AUTH_COUNT | long | Le nombre d'échec récursif AS_REQs.
KADM5_RANDKEY | long | Génère un mot de passe aléatoire pour le principal. Le paramètre password sera ignoré.
KADM5_ATTRIBUTES | long | Un champ de bits d'attributs à utiliser par KDC.


  • « Constantes pour les options
  • Utilisation simple »
  • PHP Manual
  • KADM5
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Cet exemple simple montre comment se connecter, interroger, imprimer les éléments principaux et se déconnecter depuis une base de données KADM5.

Exemple #1 Exemple général de l'extension KADM5

<?php

  $handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

  print "<h1>get_principals</h1>\n";
  $principals = kadm5_get_principals($handle);
  for( $i=0; $i<count($principals); $i++)
      print "$principals[$i]<br>\n";

  print "<h1>get_policies</h1>\n";
  $policies = kadm5_get_policies($handle);
  for( $i=0; $i<count($policies); $i++)
      print "$policies[$i]<br>\n";

  print "<h1>get_principal burbach@GONICUS.LOCAL</h1>\n";

  $options = kadm5_get_principal($handle, "burbach@GONICUS.LOCAL" );
  $keys = array_keys($options);
  for( $i=0; $i<count($keys); $i++) {
    $value = $options[$keys[$i]];
    print "$keys[$i]: $value<br>\n";
  }

  $options = array(KADM5_PRINC_EXPIRE_TIME => 0);
  kadm5_modify_principal($handle, "burbach@GONICUS.LOCAL", $options);

  kadm5_destroy($handle);
?>


Fonctions KADM5

Sommaire

  • kadm5_chpass_principal — Modifie le mot de passe du principal
  • kadm5_create_principal — Crée un principal kerberos avec les paramètres donnés
  • kadm5_delete_principal — Efface un principal kerberos
  • kadm5_destroy — Ferme la connexion avec le serveur d'administration et libère toutes les ressources associées
  • kadm5_flush — Valide toutes les modifications de la base de données Kerberos
  • kadm5_get_policies — Récupère toutes les directives depuis la base de données Kerberos
  • kadm5_get_principal — Récupère les entrées des éléments principaux depuis la base de données Kerberos
  • kadm5_get_principals — Récupère tous les éléments principaux depuis la base de données Kerberos
  • kadm5_init_with_password — Ouvre une connexion à la bibliothèque KADM5
  • kadm5_modify_principal — Modifie un principal Kerberos avec les paramètres donnés


Modifie le mot de passe du principal

  • « Fonctions KADM5
  • kadm5_create_principal »
  • PHP Manual
  • Fonctions KADM5
  • Modifie le mot de passe du principal

kadm5_chpass_principal

(PECL kadm5 >= 0.2.3)

kadm5_chpass_principal — Modifie le mot de passe du principal

Description

bool kadm5_chpass_principal ( resource $handle , string $principal , string $password )

kadm5_chpass_principal() définit un nouveau mot de passe password pour le principal.

Liste de paramètres

handle

Un gestionnaire KADM5.

principal

Le principal.

password

Le nouveau mot de passe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de modification du mot de passe du principal

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

kadm5_chpass_principal($handle, "burbach@GONICUS.LOCAL", "newpassword");

kadm5_destroy($handle);
?>


Crée un principal kerberos avec les paramètres donnés

  • « kadm5_chpass_principal
  • kadm5_delete_principal »
  • PHP Manual
  • Fonctions KADM5
  • Crée un principal kerberos avec les paramètres donnés

kadm5_create_principal

(PECL kadm5 >= 0.2.3)

kadm5_create_principal — Crée un principal kerberos avec les paramètres donnés

Description

bool kadm5_create_principal ( resource $handle , string $principal [, string $password [, array $options ]] )

kadm5_create_principal() crée un principal avec le mot de passe password donné.

Liste de paramètres

handle

Un gestionnaire KADM5.

principal

Le principal.

password

Si password n'est pas spécifié ou s'il vaut NULL, une clé aléatoire sera générée.

options

Il est possible de spécifier plusieurs paramètres optionnels avec le tableau options. Les options suivantes sont autorisées : KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_KVNO, KADM5_POLICY, KADM5_CLEARPOLICY, KADM5_MAX_RLIFE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de création d'un principal

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH | KRB5_KDB_DISALLOW_PROXIABLE;
$options = array(KADM5_PRINC_EXPIRE_TIME => 0,
                 KADM5_POLICY => "default",
                 KADM5_ATTRIBUTES => $attributes);

kadm5_create_principal($handle, "burbach@GONICUS.LOCAL", "password", $options);

kadm5_destroy($handle);
?>

Voir aussi

  • kadm5_modify_principal() - Modifie un principal Kerberos avec les paramètres donnés
  • kadm5_delete_principal() - Efface un principal kerberos


Efface un principal kerberos

  • « kadm5_create_principal
  • kadm5_destroy »
  • PHP Manual
  • Fonctions KADM5
  • Efface un principal kerberos

kadm5_delete_principal

(PECL kadm5 >= 0.2.3)

kadm5_delete_principal — Efface un principal kerberos

Description

bool kadm5_delete_principal ( resource $handle , string $principal )

Efface un principal depuis la base de données Kerberos.

Liste de paramètres

handle

Un gestionnaire KADM5.

principal

Le principal à effacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec kadm5_delete_principal()

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

kadm5_delete_principal($handle, "burbach@GONICUS.LOCAL");

kadm5_destroy($handle);
?>

Voir aussi

  • kadm5_modify_principal() - Modifie un principal Kerberos avec les paramètres donnés
  • kadm5_create_principal() - Crée un principal kerberos avec les paramètres donnés


Ferme la connexion avec le serveur d'administration et libère toutes les ressources associées

  • « kadm5_delete_principal
  • kadm5_flush »
  • PHP Manual
  • Fonctions KADM5
  • Ferme la connexion avec le serveur d'administration et libère toutes les ressources associées

kadm5_destroy

(PECL kadm5 >= 0.2.3)

kadm5_destroy — Ferme la connexion avec le serveur d'administration et libère toutes les ressources associées

Description

bool kadm5_destroy ( resource $handle )

Ferme la connexion avec le serveur d'administration et libère toutes les ressources associées.

Liste de paramètres

handle

Un gestionnaire KADM5.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • kadm5_init_with_password() - Ouvre une connexion à la bibliothèque KADM5


Valide toutes les modifications de la base de données Kerberos

  • « kadm5_destroy
  • kadm5_get_policies »
  • PHP Manual
  • Fonctions KADM5
  • Valide toutes les modifications de la base de données Kerberos

kadm5_flush

(PECL kadm5 >= 0.2.3)

kadm5_flush — Valide toutes les modifications de la base de données Kerberos

Description

bool kadm5_flush ( resource $handle )

Valide toutes les modifications de la base de données Kerberos, et quitte la connexion ouverte du serveur d'administration Kerberos

Liste de paramètres

handle

Un gestionnaire KADM5.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Récupère toutes les directives depuis la base de données Kerberos

  • « kadm5_flush
  • kadm5_get_principal »
  • PHP Manual
  • Fonctions KADM5
  • Récupère toutes les directives depuis la base de données Kerberos

kadm5_get_policies

(PECL kadm5 >= 0.2.3)

kadm5_get_policies — Récupère toutes les directives depuis la base de données Kerberos

Description

array kadm5_get_policies ( resource $handle )

Récupère un tableau contenant tous les noms des directives.

Liste de paramètres

handle

Un gestionnaire KADM5.

Valeurs de retour

Retourne un tableau de directives en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec kadm5_get_policies()

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_policies</h1>\n";
foreach (kadm5_get_policies($handle) as $policy) {
    echo "$policy<br />\n";
}

kadm5_destroy($handle);
?>


Récupère les entrées des éléments principaux depuis la base de données Kerberos

  • « kadm5_get_policies
  • kadm5_get_principals »
  • PHP Manual
  • Fonctions KADM5
  • Récupère les entrées des éléments principaux depuis la base de données Kerberos

kadm5_get_principal

(PECL kadm5 >= 0.2.3)

kadm5_get_principal — Récupère les entrées des éléments principaux depuis la base de données Kerberos

Description

array kadm5_get_principal ( resource $handle , string $principal )

Récupère les entrées des éléments principaux depuis la base de données Kerberos.

Liste de paramètres

handle

Un gestionnaire KADM5.

principal

Le principal.

Valeurs de retour

kadm5_get_principal() retourne un tableau associatif contenant les clés suivantes : KADM5_PRINCIPAL, KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_MOD_NAME, KADM5_MOD_TIME, KADM5_KVNO, KADM5_POLICY, KADM5_MAX_RLIFE, KADM5_LAST_SUCCESS, KADM5_LAST_FAILED, KADM5_FAIL_AUTH_COUNT. en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec kadm5_get_principal()

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_principal burbach@GONICUS.LOCAL</h1>\n";

$options = kadm5_get_principal($handle, "burbach@GONICUS.LOCAL" );

foreach ($options as $key => $value) {
    echo "$key: $value<br />\n";
}

kadm5_destroy($handle);
?>

Voir aussi

  • kadm5_get_principals() - Récupère tous les éléments principaux depuis la base de données Kerberos


Récupère tous les éléments principaux depuis la base de données Kerberos

  • « kadm5_get_principal
  • kadm5_init_with_password »
  • PHP Manual
  • Fonctions KADM5
  • Récupère tous les éléments principaux depuis la base de données Kerberos

kadm5_get_principals

(PECL kadm5 >= 0.2.3)

kadm5_get_principals — Récupère tous les éléments principaux depuis la base de données Kerberos

Description

array kadm5_get_principals ( resource $handle )

kadm5_get_principals() retourne un tableau contenant tous les noms des éléments principaux.

Liste de paramètres

handle

A KADM5 handle.

Valeurs de retour

Retourne un tableau d'éléments principaux en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec kadm5_get_principals()

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_principals</h1>\n";
foreach (kadm5_get_principals($handle) as $principal) {
    echo "$principal<br />\n";
}

kadm5_destroy($handle);
?>

Voir aussi

  • kadm5_get_principal() - Récupère les entrées des éléments principaux depuis la base de données Kerberos


Ouvre une connexion à la bibliothèque KADM5

  • « kadm5_get_principals
  • kadm5_modify_principal »
  • PHP Manual
  • Fonctions KADM5
  • Ouvre une connexion à la bibliothèque KADM5

kadm5_init_with_password

(PECL kadm5 >= 0.2.3)

kadm5_init_with_password — Ouvre une connexion à la bibliothèque KADM5

Description

resource kadm5_init_with_password ( string $admin_server , string $realm , string $principal , string $password )

Ouvre une connexion avec la bibliothèque KADM5 en utilisant le principal et le mot de passe password pour obtenir les créances initiales depuis le serveur d'administration admin_server.

Liste de paramètres

admin_server

Le serveur.

realm

Définit le domaine d'identification pour la connexion.

principal

Le principal.

password

Si password est omis ou s'il vaut NULL, une clé aléatoire sera générée.

Valeurs de retour

Retourne un gestionnaire KADM5 en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple d'initialisation KADM5

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH | KRB5_KDB_DISALLOW_PROXIABLE;
$options = array(KADM5_PRINC_EXPIRE_TIME => 0,
                 KADM5_POLICY => "default",
                 KADM5_ATTRIBUTES => $attributes);

kadm5_create_principal($handle, "burbach@GONICUS.LOCAL", "password", $options);

kadm5_destroy($handle);
?>

Notes

Note:

La connexion doit être close après l'avoir utilisée avec la fonction kadm5_destroy().

Voir aussi

  • kadm5_destroy() - Ferme la connexion avec le serveur d'administration et libère toutes les ressources associées


Modifie un principal Kerberos avec les paramètres donnés

  • « kadm5_init_with_password
  • Radius »
  • PHP Manual
  • Fonctions KADM5
  • Modifie un principal Kerberos avec les paramètres donnés

kadm5_modify_principal

(PECL kadm5 >= 0.2.3)

kadm5_modify_principal — Modifie un principal Kerberos avec les paramètres donnés

Description

bool kadm5_modify_principal ( resource $handle , string $principal , array $options )

Modifie un principal Kerberos avec les paramètres donnés

Liste de paramètres

handle

Un gestionnaire KADM5.

principal

Le principal.

options

Il est possible de spécifier plusieurs paramètres optionnels avec un tableau d'options. Les options suivantes sont autorisées : KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_KVNO, KADM5_POLICY, KADM5_CLEARPOLICY, KADM5_MAX_RLIFE. KADM5_FAIL_AUTH_COUNT.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de modification d'un principal

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH;
$options = array(KADM5_PRINC_EXPIRE_TIME => 3451234,
KADM5_POLICY => "gonicus",
KADM5_ATTRIBUTES => $attributes);

kadm5_modify_principal($handle, "burbach@GONICUS.LOCAL", $options);

kadm5_destroy($handle);
?>

Voir aussi

  • kadm5_create_principal() - Crée un principal kerberos avec les paramètres donnés
  • kadm5_delete_principal() - Efface un principal kerberos


Radius

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
    • RADIUS Options
    • Types de paquets RADIUS
    • Types d'attribut RADIUS
    • Types d'attribut RADIUS spécifique au vendeur
  • Exemples
  • Fonctions Radius
    • radius_acct_open — Crée une ressource Radius pour les comptes
    • radius_add_server — Ajoute un serveur
    • radius_auth_open — Crée une ressource Radius pour l'identification
    • radius_close — Libère toutes les ressources Radius
    • radius_config — Demande à la bibliothèque de lire un fichier de configuration donné
    • radius_create_request — Crée une demande de compte ou d'identification
    • radius_cvt_addr — Convertit des données brutes en adresse IP
    • radius_cvt_int — Convertit des données brutes en entier
    • radius_cvt_string — Convertit des données brutes en chaîne de caractères
    • radius_demangle_mppe_key — Dérive les clés mppe depuis des données
    • radius_demangle — Assèche des données
    • radius_get_attr — Extrait un attribut
    • radius_get_tagged_attr_data — Extrait les données d'un attribut
    • radius_get_tagged_attr_tag — Extrait le tag depuis un attribut
    • radius_get_vendor_attr — Extrait un attribut spécifique au vendeur
    • radius_put_addr — Attache une adresse IP en tant qu'attribut
    • radius_put_attr — Attache un attribut binaire
    • radius_put_int — Attache un attribut entier
    • radius_put_string — Attache un attribut chaîne de caractères
    • radius_put_vendor_addr — Attache une adresse IP spécifique à un vendeur
    • radius_put_vendor_attr — Attache un attribut binaire à un vendeur spécifique
    • radius_put_vendor_int — Attache un attribut entier à un vendeur spécifique
    • radius_put_vendor_string — Attache un attribut sous la forme d'une chaîne à un vendeur spécifique
    • radius_request_authenticator — Retourne l'identifiant demandé
    • radius_salt_encrypt_attr — Crypte une valeur en utilisant un Salt
    • radius_send_request — Envoie la demande et attente une réponse
    • radius_server_secret — Retourne le secret partagé
    • radius_strerror — Retourne un message d'erreur


Introduction

Ce paquet est basé sur la bibliothèque libradius (Remote Authentication Dial In User Service) de FreeBSD. Il permet aux clients d'effectuer des identification et représentations par le biais de requêtes réseau sur des serveurs distants.

Cette extension PECL supporte tout le protocole Radius Authentication complet pour les identifications (» RFC 2865) et Radius Accounting (» RFC 2866). Ce paquet est disponible pour Unix (testé sous FreeBSD et Linux) mais aussi pour Windows.

Note:

Une description de libradius peut être trouvée » ici. Une description détaillée du fichier de configuration peut être trouvée » ici.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/radius.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Constantes pré-définies

Sommaire

  • RADIUS Options
  • Types de paquets RADIUS
  • Types d'attribut RADIUS
  • Types d'attribut RADIUS spécifique au vendeur

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

RADIUS_MPPE_KEY_LEN (integer)
La longueur maximale des clés MPPE.


RADIUS Options

Plusieurs fonctions RADIUS acceptent des options sous forme de masque d'octets. Les constantes représentant ces options sont listées ci-dessous.

RADIUS_OPTION_SALT (entier)

Lorsque définie, cette option fera que la valeur de l'attribut sera crypté salt.

RADIUS_OPTION_TAGGED (entier)

Lorsque définie, cette option fera que la valeur de l'attribut proviendra qu paramètre tag.


Types de paquets RADIUS

Les paquets RADIUS, qu'ils soient démandés ou obtenus en réponse, incluent toujours un type. Cette constante est fournie pour rendre plus simple la spécification d'un type lors de l'utilisation de la fonction radius_create_request(), et lors d'une comparaison du résultat avec la fonction radius_send_request().

RADIUS_ACCESS_REQUEST (entier)

Un Access-Request, utilisé pour authentifier un utilisateur sur un serveur RADIUS. Les paquets Access-Request doivent inclure un attribut RADIUS_NAS_IP_ADDRESS, ou un attribut RADIUS_NAS_IDENTIFIER mais aussi inclure un attribut RADIUS_USER_PASSWORD, et un attribut RADIUS_CHAP_PASSWORD ou bien un attribut RADIUS_STATE, et doivent inclure un attribut RADIUS_USER_NAME.

RADIUS_ACCESS_ACCEPT (entier)

Une réponse Access-Accept à un paquet Access-Request indique que le serveur RADIUS a authentifié l'utilisateur avec succès.

RADIUS_ACCESS_REJECT (entier)

Une réponse Access-Reject à un paquet Access-Request indique que le serveur RADIUS n'a pas réussi à authentifié l'utilisateur.

RADIUS_ACCESS_CHALLENGE (entier)

Une réponse Access-Challenge à un paquet Access-Request indique que le serveur RADIUS requiert plus d'informations d'un autre paquet Access-Request avant d'authentifier l'utilisateur.

RADIUS_ACCOUNTING_REQUEST (entier)

Une paquet Accounting-Request, utilisé pour transmettre des informations de comptabilité pour un service du serveur RADIUS.

RADIUS_ACCOUNTING_RESPONSE (entier)

Une réponse Accounting-Response à un paquet Accounting-Request.

RADIUS_COA_REQUEST (entier)

Un paquet CoA-Request, envoyé depuis un serveur RADIUS pour indiquer que les autorisations ont changé dans la session utilisateur. Une réponse doit être émise sous la forme d'un CoA-ACK ou d'un CoA-NAK.

Cette constante est disponible depuis PECL radius 1.3.0 et suivants.

RADIUS_COA_ACK (entier)

Un paquet CoA-ACK, envoyé au serveur RADIUS pour indiquer que les autorisations utilisateurs ont été mises à jour.

Cette constante est disponible depuis PECL radius 1.3.0 et suivants.

RADIUS_COA_NAK (entier)

Un paquet CoA-NAK, envoyé au serveur RADIUS pour indiquer que les autorisations utilisateurs n'ont pas pû être mises à jour.

Cette constante est disponible depuis PECL radius 1.3.0 et suivants.

RADIUS_DISCONNECT_REQUEST (entier)

Un paquet Disconnect-Request, envoyé depuis le serveur RADIUS pour indiquer que la session utilisateur doit être close.

Cette constante est disponible depuis PECL radius 1.3.0 et suivants.

RADIUS_DISCONNECT_ACK (entier)

Un paquet Disconnect-ACK, envoyé au serveur RADIUS pour indiquer que la session utilisateur s'est terminée.

Cette constante est disponible depuis PECL radius 1.3.0 et suivants.

RADIUS_DISCONNECT_NAK (entier)

Un paquet Disconnect-NAK, envoyé au serveur RADIUS pour indiquer que la session utilisateur n'a pas pu se terminer.

Cette constante est disponible depuis PECL radius 1.3.0 et suivants.


Types d'attribut RADIUS

Ces constantes définissent des types d'attribut RADIUS qui peuvent être utilisées avec les fonctions radius_put_addr(), radius_put_attr(), radius_put_int() et radius_put_string().

RADIUS_USER_NAME (entier)

L'attribut User-Name. La valeur de l'attribut doit être une chaîne de caractères contenant le nom de l'utilisateur désirant s'authentifier, et peut être définie en utilisant la fonction radius_put_attr().

RADIUS_USER_PASSWORD (entier)

L'attribut User-Password. La valeur de l'attribut doit être une chaîne de caractères contenant le mot de passe de l'utilisateur, et peut être définie en utilisant la fonction radius_put_attr(). Cette valeur sera brouillée pendant la transmission tel que décrit à la » section 5.2 de la RFC 2865.

RADIUS_CHAP_PASSWORD (entier)

L'attribut Chap-Password. La valeur de l'attribut doit être une chaîne contenant le premier octet (qui est l'identifiant CHAP), puis la sous une sous-séquence de 16 octets contenant le hash MD5 de l'identifiant CHAP, le mot de passe en clair, et la valeur du challenge CHAP, le tout, concaténés. Notez que la valeur du challenge CHAP doit aussi être envoyé séparément dans l'attribut RADIUS_CHAP_CHALLENGE.

Exemple #1 Utilisation des mots de passe CHAP

<?php
// D'abord, nous créons un gestionnaire d'authentification et une requête.
$radh = radius_auth_open();
radius_add_server($radh, $server, $port, $secret, 3, 3);
radius_create_request($radh, RADIUS_ACCESS_REQUEST);

// Supposons que $password contient le mot de passe en clair :

// Génération du challenge.
$challenge = mt_rand();

// Spécifie un identifiant CHAP.
$ident = 1;

// Ajout de l'attribut Chap-Password.
$cp = md5(pack('Ca*', $ident, $password.$challenge), true);
radius_put_attr($radh, RADIUS_CHAP_PASSWORD, pack('C', $ident).$cp);

// Ajout de l'attribut Chap-Challenge.
radius_put_attr($radh, RADIUS_CHAP_CHALLENGE, $challenge);

/* A partir d'ici, nous pouvons ajouter les autres attributs
 * et appeler la fonction radius_send_request(). */
?>

RADIUS_NAS_IP_ADDRESS (entier)

L'attribut NAS-IP-Address. La valeur de l'attribut attendue est l'adresse IP du client RADIUS encodé sous la forme d'un entier, qui peut être définie en utilisant la fonction radius_put_addr().

RADIUS_NAS_PORT (entier)

L'attribut NAS-Port. La valeur de l'attribut attendue est le port physique de l'utilisateur sur le client RADIUS, encodé sous la forme d'un entier, qui peut être définie en utilisant la fonction radius_put_int().

RADIUS_SERVICE_TYPE (entier)

L'attribut Service-Type. La valeur de l'attribut indique le type de service que l'utilisateur requète, et doit être un entier, qui peut être défini en utilisant la fonction radius_put_int().

Des constantes sont fournies pour représenter les valeurs possibles de cet attribut. Les voici :

  • RADIUS_LOGIN
  • RADIUS_FRAMED
  • RADIUS_CALLBACK_LOGIN
  • RADIUS_CALLBACK_FRAMED
  • RADIUS_OUTBOUND
  • RADIUS_ADMINISTRATIVE
  • RADIUS_NAS_PROMPT
  • RADIUS_AUTHENTICATE_ONLY
  • RADIUS_CALLBACK_NAS_PROMPT

RADIUS_FRAMED_PROTOCOL (entier)

L'attribut Framed-Protocol. La valeur de l'attribut attendue est un entier, indiquant le framing à utiliser pour l'accès, et peut être définie en utilisant la fonction radius_put_int(). Les valeurs possibles pour cet attribut sont :

  • RADIUS_PPP
  • RADIUS_SLIP
  • RADIUS_ARAP
  • RADIUS_GANDALF
  • RADIUS_XYLOGICS

RADIUS_FRAMED_IP_ADDRESS (entier)

L'attribut Framed-IP-Address. La valeur attendue est une adresse du réseau utilisateur encodé sous la forme d'un entier, qui peut être définie en utilisant la fonction radius_put_addr() et récupérée en utilisant la fonction radius_cvt_addr().

RADIUS_FRAMED_IP_NETMASK (entier)

L'attribut Framed-IP-Netmask. La valeur attendue est un netmask du réseau utilisateur, encodé sous la forme d'un entier, qui peut être définie en utilisant la fonction radius_put_addr() et récupérée en utilisant la fonction radius_cvt_addr().

RADIUS_FRAMED_ROUTING (entier)

L'attribut Framed-Routing. La valeur attendue est un entier indiquant la méthode de routage pour l'utilisateur, qui peut être définie en utilisant la fonction radius_put_int().

Valeurs possibles :

  • 0 : Aucun routage
  • 1 : Envoi des paquets de routage
  • 2 : Ecoute des paquets de routage
  • 3 : Envoi et écoute

RADIUS_FILTER_ID (entier)

L'attribut Filter-ID. La valeur attendue est une implémentation spécifique, humainement lisible, de chaînes de filtres, qui peuvent être définies en utilisant la fonction radius_put_attr().

RADIUS_FRAMED_MTU (entier)

L'attribut Framed-MTU. La valeur attendue est un entier, indiquant le MTU à configurer pour l'utilisateur, et peut être définie en utilisant la fonction radius_put_int().

RADIUS_FRAMED_COMPRESSION (entier)

L'attribut Framed-Compression. La valeur attendue est un entier, indiquant le protocole de compression à utiliser, et peut être définie en utilisant la fonction radius_put_int(). Valeurs possibles :

  • RADIUS_COMP_NONE : Aucune compression
  • RADIUS_COMP_VJ : Compression de l'en-tête VJ TCP/IP
  • RADIUS_COMP_IPXHDR : Compression de l'en-tête IPX
  • RADIUS_COMP_STAC_LZS : Compression Stac-LZS (ajouté en PECL radius 1.3.0b2)

RADIUS_LOGIN_IP_HOST (entier)

L'attribut Login-IP-Host. La valeur attendue est l'adresse IP de connexion de l'utilisateur, encodée sous la forme d'un entier, qui peut être défini en utilisant la fonction radius_put_addr().

RADIUS_LOGIN_SERVICE (entier)

L'attribut Login-Service. La valeur attendue est un entier indiquant le service sur lequel l'utilisateur se connecte sur l'hôte d'identification. La valeur peut être convertie en un entier PHP via la fonction radius_cvt_int().

RADIUS_LOGIN_TCP_PORT (entier)

L'attribut Login-TCP-Port. La valeur attendue est un entier indiquant le port sur lequel l'utilisateur se connecte sur l'hôte d'identification. La valeur peut être convertie en un entier PHP via la fonction radius_cvt_int().

RADIUS_REPLY_MESSAGE (entier)

L'attribut Reply-Message. La valeur attendue est une chaîne de caractères contenant un texte qui peut être affiché à l'utilisateur en réponse à une requête d'accès.

RADIUS_CALLBACK_NUMBER (entier)

L'attribut Callback-Number. La valeur attendue est une chaîne de caractères contenant la chaîne de numérotation à utiliser pour la fonction de rappel.

RADIUS_CALLBACK_ID (entier)

L'attribut Callback-Id. La valeur attendue est une chaîne contenant le nom de l'implémentation spécifique de la place à appeler.

RADIUS_FRAMED_ROUTE (entier)

L'attribut Framed-Route. La valeur attendue est une chaîne contenant un jeu de routes d'implémentation spécifique à configurer pour l'utilisateur.

RADIUS_FRAMED_IPX_NETWORK (entier)

L'attribut Framed-IPX-Network. La valeur attendue est un entier contenant le réseau IPX à configurer pour l'utilisateur, ou 0xFFFFFFFE pour indiquer que le client RADIUS doit sélectionner le réseau, et peut être accédé via la fonction radius_cvt_int().

RADIUS_STATE (entier)

L'attribut State. La valeur attendue est une chaîne contenant l'implémentation définie incluse dans un Access-Challenge depuis un serveur qui doit être inclus dans la sous-séquence Access-Request, et peut être défini en utilisant la fonction radius_put_attr().

RADIUS_CLASS (entier)

L'attribut Class. La valeur attendue est une chaîne arbitraire incluant le message d'un Access-Accept qui doit être envoyé au serveur de comptes dans les messages Accounting-Request, et peut être défini via la fonction radius_put_attr().

RADIUS_VENDOR_SPECIFIC (entier)

L'attribut Vendor-Specific. En général, les valeurs de l'attribut du vendeur
doivent être définies en utilisant les fonctions
radius_put_vendor_addr(),
radius_put_vendor_attr(),
radius_put_vendor_int() et
radius_put_vendor_string(), plutôt que directement.

Cette constante est utile lors de l'interprétation des attributs spécifiques du vendeur dans les réponses d'un serveur RADIUS ; lorsqu'un attribut spécifique du vendeur est reçu, la fonction radius_get_vendor_attr() doit être utilisée pour accéder à l'identifiant du vendeur, le type d'attribut et la valeur de l'attribut.

RADIUS_SESSION_TIMEOUT (entier)

Timeout de la session

RADIUS_IDLE_TIMEOUT (entier)

Durée d'expiration

RADIUS_TERMINATION_ACTION (entier)

Action de termination

RADIUS_CALLED_STATION_ID (entier)

Identifiant de la station appelée

RADIUS_CALLING_STATION_ID (entier)

Identifiant de la station appelant

RADIUS_NAS_IDENTIFIER (entier)

Identifiant NAS

RADIUS_PROXY_STATE (entier)

Statut du Proxy

RADIUS_LOGIN_LAT_SERVICE (entier)

Service d'identification LAT

RADIUS_LOGIN_LAT_NODE (entier)

Noeud d'identification LAT

RADIUS_LOGIN_LAT_GROUP (entier)

Groupe d'identification LAT

RADIUS_FRAMED_APPLETALK_LINK (entier)

Lien framé Appletalk

RADIUS_FRAMED_APPLETALK_NETWORK (entier)

Réseau framé Appletalk

RADIUS_FRAMED_APPLETALK_ZONE (entier)

Zone framé Appletalk

RADIUS_CHAP_CHALLENGE (entier)

Challenge

RADIUS_NAS_PORT_TYPE (entier)

Type du port NAS :

  • RADIUS_ASYNC
  • RADIUS_SYNC
  • RADIUS_ISDN_SYNC
  • RADIUS_ISDN_ASYNC_V120
  • RADIUS_ISDN_ASYNC_V110
  • RADIUS_VIRTUAL
  • RADIUS_PIAFS
  • RADIUS_HDLC_CLEAR_CHANNEL
  • RADIUS_X_25
  • RADIUS_X_75
  • RADIUS_G_3_FAX
  • RADIUS_SDSL
  • RADIUS_ADSL_CAP
  • RADIUS_ADSL_DMT
  • RADIUS_IDSL
  • RADIUS_ETHERNET
  • RADIUS_XDSL
  • RADIUS_CABLE
  • RADIUS_WIRELESS_OTHER
  • RADIUS_WIRELESS_IEEE_802_11

RADIUS_PORT_LIMIT (entier)

Limite du port

RADIUS_LOGIN_LAT_PORT (entier)

Port d'identification LAT

RADIUS_CONNECT_INFO (entier)

Information de connexion

RADIUS_ACCT_STATUS_TYPE (entier)

Type de statut du compte :

  • RADIUS_START
  • RADIUS_STOP
  • RADIUS_ACCOUNTING_ON
  • RADIUS_ACCOUNTING_OFF

RADIUS_ACCT_DELAY_TIME (entier)

Délai maximal d'identification

RADIUS_ACCT_INPUT_OCTETS (entier)

Octets d'entrée d'identification

RADIUS_ACCT_OUTPUT_OCTETS (entier)

Octets de sortie d'identification

RADIUS_ACCT_SESSION_ID (entier)

Identifiant de session d'identification

RADIUS_ACCT_AUTHENTIC (entier)

Identification authentique, un parmi :

  • RADIUS_AUTH_RADIUS
  • RADIUS_AUTH_LOCAL
  • RADIUS_AUTH_REMOTE

RADIUS_ACCT_SESSION_TIME (entier)

Durée de la session d'identification

RADIUS_ACCT_INPUT_PACKETS (entier)

Paquets d'entrée d'identification

RADIUS_ACCT_OUTPUT_PACKETS (entier)

Paquets de sortie d'identification

RADIUS_ACCT_TERMINATE_CAUSE (entier)

Cause de la fin de l'identification, un parmi :

  • RADIUS_TERM_USER_REQUEST
  • RADIUS_TERM_LOST_CARRIER
  • RADIUS_TERM_LOST_SERVICE
  • RADIUS_TERM_IDLE_TIMEOUT
  • RADIUS_TERM_SESSION_TIMEOUT
  • RADIUS_TERM_ADMIN_RESET
  • RADIUS_TERM_ADMIN_REBOOT
  • RADIUS_TERM_PORT_ERROR
  • RADIUS_TERM_NAS_ERROR
  • RADIUS_TERM_NAS_REQUEST
  • RADIUS_TERM_NAS_REBOOT
  • RADIUS_TERM_PORT_UNNEEDED
  • RADIUS_TERM_PORT_PREEMPTED
  • RADIUS_TERM_PORT_SUSPENDED
  • RADIUS_TERM_SERVICE_UNAVAILABLE
  • RADIUS_TERM_CALLBACK
  • RADIUS_TERM_USER_ERROR
  • RADIUS_TERM_HOST_REQUEST

RADIUS_ACCT_MULTI_SESSION_ID (entier)

Identifiant d'une session multiple d'identification

RADIUS_ACCT_LINK_COUNT (entier)

Nombre de liens d'identification


Types d'attribut RADIUS spécifique au vendeur

RADIUS_VENDOR_MICROSOFT (entier)

Attributs spécifiques à Microsoft (» RFC 2548) :

  • RADIUS_MICROSOFT_MS_CHAP_RESPONSE
  • RADIUS_MICROSOFT_MS_CHAP_ERROR
  • RADIUS_MICROSOFT_MS_CHAP_PW_1
  • RADIUS_MICROSOFT_MS_CHAP_PW_2
  • RADIUS_MICROSOFT_MS_CHAP_LM_ENC_PW
  • RADIUS_MICROSOFT_MS_CHAP_NT_ENC_PW
  • RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_POLICY
  • RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_TYPES
  • RADIUS_MICROSOFT_MS_RAS_VENDOR
  • RADIUS_MICROSOFT_MS_CHAP_DOMAIN
  • RADIUS_MICROSOFT_MS_CHAP_CHALLENGE
  • RADIUS_MICROSOFT_MS_CHAP_MPPE_KEYS
  • RADIUS_MICROSOFT_MS_BAP_USAGE
  • RADIUS_MICROSOFT_MS_LINK_UTILIZATION_THRESHOLD
  • RADIUS_MICROSOFT_MS_LINK_DROP_TIME_LIMIT
  • RADIUS_MICROSOFT_MS_MPPE_SEND_KEY
  • RADIUS_MICROSOFT_MS_MPPE_RECV_KEY
  • RADIUS_MICROSOFT_MS_RAS_VERSION
  • RADIUS_MICROSOFT_MS_OLD_ARAP_PASSWORD
  • RADIUS_MICROSOFT_MS_NEW_ARAP_PASSWORD
  • RADIUS_MICROSOFT_MS_ARAP_PASSWORD_CHANGE_REASON
  • RADIUS_MICROSOFT_MS_FILTER
  • RADIUS_MICROSOFT_MS_ACCT_AUTH_TYPE
  • RADIUS_MICROSOFT_MS_ACCT_EAP_TYPE
  • RADIUS_MICROSOFT_MS_CHAP2_RESPONSE
  • RADIUS_MICROSOFT_MS_CHAP2_SUCCESS
  • RADIUS_MICROSOFT_MS_CHAP2_PW
  • RADIUS_MICROSOFT_MS_PRIMARY_DNS_SERVER
  • RADIUS_MICROSOFT_MS_SECONDARY_DNS_SERVER
  • RADIUS_MICROSOFT_MS_PRIMARY_NBNS_SERVER
  • RADIUS_MICROSOFT_MS_SECONDARY_NBNS_SERVER
  • RADIUS_MICROSOFT_MS_ARAP_CHALLENGE


Exemples

Comment commencer ?

  • récupérez une ressource radius
  • configurez la bibliothèque
  • créez la requête
  • ajoutez les attributs
  • envoyez la requête
  • récupérer les attributs
  • fermez la ressource radius (optionnel)
Regardez également aux exemples fournis avec ce paquet.

Le paquet contient un exemple de script PHP. Ce script montre une identification avec radius, en utilisant PAP ou CHAP (md5). Si vous effectuer une identification via Microsoft Radius servers, alors il est possible d'utiliser CHAP (md5). Si vous voulez vous identifier avec Microsoft Servers, vous devez utiliser MS-CHAPv1 ou MS-CHAPv2, mais c'est plus compliqué, car vous devez avoir md4, sha1 et des pour générer les bonnes données. L'exemple fourni montre toutes les méthodes d'identification, incluant MS-CHAPv1 et MS-CHAPv2. Pour faire en sorte que MS-CHAP fonctionne, vous devez activer les extensions mcrypt et mhash, à partir de la version 1.2 de ce paquet, l'extension mcrypt n'est plus nécessaire.


Fonctions Radius

Sommaire

  • radius_acct_open — Crée une ressource Radius pour les comptes
  • radius_add_server — Ajoute un serveur
  • radius_auth_open — Crée une ressource Radius pour l'identification
  • radius_close — Libère toutes les ressources Radius
  • radius_config — Demande à la bibliothèque de lire un fichier de configuration donné
  • radius_create_request — Crée une demande de compte ou d'identification
  • radius_cvt_addr — Convertit des données brutes en adresse IP
  • radius_cvt_int — Convertit des données brutes en entier
  • radius_cvt_string — Convertit des données brutes en chaîne de caractères
  • radius_demangle_mppe_key — Dérive les clés mppe depuis des données
  • radius_demangle — Assèche des données
  • radius_get_attr — Extrait un attribut
  • radius_get_tagged_attr_data — Extrait les données d'un attribut
  • radius_get_tagged_attr_tag — Extrait le tag depuis un attribut
  • radius_get_vendor_attr — Extrait un attribut spécifique au vendeur
  • radius_put_addr — Attache une adresse IP en tant qu'attribut
  • radius_put_attr — Attache un attribut binaire
  • radius_put_int — Attache un attribut entier
  • radius_put_string — Attache un attribut chaîne de caractères
  • radius_put_vendor_addr — Attache une adresse IP spécifique à un vendeur
  • radius_put_vendor_attr — Attache un attribut binaire à un vendeur spécifique
  • radius_put_vendor_int — Attache un attribut entier à un vendeur spécifique
  • radius_put_vendor_string — Attache un attribut sous la forme d'une chaîne à un vendeur spécifique
  • radius_request_authenticator — Retourne l'identifiant demandé
  • radius_salt_encrypt_attr — Crypte une valeur en utilisant un Salt
  • radius_send_request — Envoie la demande et attente une réponse
  • radius_server_secret — Retourne le secret partagé
  • radius_strerror — Retourne un message d'erreur


Crée une ressource Radius pour les comptes

  • « Fonctions Radius
  • radius_add_server »
  • PHP Manual
  • Fonctions Radius
  • Crée une ressource Radius pour les comptes

radius_acct_open

(PECL radius >= 1.1.0)

radius_acct_open — Crée une ressource Radius pour les comptes

Description

resource radius_acct_open ( void )

Valeurs de retour

Retourne une ressource en cas de succès ou FALSE si une erreur survient. Cette fonction n'échoue que s'il y a un manque de mémoire.

Exemples

Exemple #1 Exemple avec radius_acct_open()

<?php
$res = radius_acct_open ()
    or die ("Impossible de créer la ressource");
print("La ressource a été créée avec succès");
?>


Ajoute un serveur

  • « radius_acct_open
  • radius_auth_open »
  • PHP Manual
  • Fonctions Radius
  • Ajoute un serveur

radius_add_server

(PECL radius >= 1.1.0)

radius_add_server — Ajoute un serveur

Description

bool radius_add_server ( resource $radius_handle , string $hostname , int $port , string $secret , int $timeout , int $max_tries )

radius_add_server() peut être utilisé plusieurs fois, et il peut être utilisé avec la fonction radius_config(). Tout au plus, 10 serveurs peuvent être spécifiés. Lorsque plusieurs serveurs sont fournis, ils sont essayés à la façon round-robin tant qu'une réponse valide n'est pas reçue, ou tant que la limite max_tries de chaque serveur n'est pas atteinte.

Liste de paramètres

radius_handle

hostname

Le paramètre hostname spécifie l'hôte serveur, soit en tant que nom de domaine qualifié, soit en tant qu'adresse IP.

port

Le port spécifie le port UDP à contacter sur le serveur. Si le port donné vaut 0, la bibliothèque recherchera le service radius/udp ou radacct/udp dans la base de données des services du réseau et utilisera le port s'y trouvant. Si aucune entrée n'est trouvée, la bibliothèque utilisera les ports Radius standards, 1812 pour l'identification et 1813 pour les comptes.

secret

Le secret partagé pour l'hôte serveur est passé au paramètre secret. Le protocole Radius ignore tout mais garde les 128 premiers octets du secret partagé.

timeout

Le délai limite pour recevoir les réponses du serveur est passé au paramètre timeout, sous la forme de seconde.

max_tries

Le nombre maximal de requêtes répétées à faire avant d'échouer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec radius_add_server()

<?php
if (!radius_add_server($res, 'radius.example.com', 1812, 'testing123', 3, 3)) {
    echo 'Erreur Radius :' . radius_strerror($res). "\n<br>";
    exit;
}
?>

Voir aussi

  • radius_config() - Demande à la bibliothèque de lire un fichier de configuration donné


Crée une ressource Radius pour l'identification

  • « radius_add_server
  • radius_close »
  • PHP Manual
  • Fonctions Radius
  • Crée une ressource Radius pour l'identification

radius_auth_open

(PECL radius >= 1.1.0)

radius_auth_open — Crée une ressource Radius pour l'identification

Description

resource radius_auth_open ( void )

Valeurs de retour

Retourne une ressource en cas de succès ou FALSE si une erreur survient. Cette fonction n'échoue que s'il y a un manque de mémoire.

Exemples

Exemple #1 Exemple avec radius_auth_open()

<?php
$radh = radius_auth_open()
    or die ("Impossible de créer la ressource");
echo "La ressource a été créée avec succès";
?>


Libère toutes les ressources Radius

  • « radius_auth_open
  • radius_config »
  • PHP Manual
  • Fonctions Radius
  • Libère toutes les ressources Radius

radius_close

(PECL radius >= 1.1.0)

radius_close — Libère toutes les ressources Radius

Description

bool radius_close ( resource $radius_handle )

Il n'est pas nécessaire d'appeler cette fonction car PHP libère toutes les ressources à la fin de chaque demande.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Demande à la bibliothèque de lire un fichier de configuration donné

  • « radius_close
  • radius_create_request »
  • PHP Manual
  • Fonctions Radius
  • Demande à la bibliothèque de lire un fichier de configuration donné

radius_config

(PECL radius >= 1.1.0)

radius_config — Demande à la bibliothèque de lire un fichier de configuration donné

Description

bool radius_config ( resource $radius_handle , string $file )

Avant toute demande Radius, la bibliothèque doit connaître le serveur à contacter. La manière simple de configurer la bibliothèque est d'appeler la fonction radius_config(). radius_config() demande à la bibliothèque de lire un fichier de configuration dont le format est décrit sur la page » radius.conf.

Liste de paramètres

radius_handle

file

Le chemin vers le fichier de configuration est passé en tant qu'argument à la fonction radius_config(). La bibliothèque peut également être configurée en appelant la fonction radius_add_server().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • radius_add_server() - Ajoute un serveur


Crée une demande de compte ou d'identification

  • « radius_config
  • radius_cvt_addr »
  • PHP Manual
  • Fonctions Radius
  • Crée une demande de compte ou d'identification

radius_create_request

(PECL radius >= 1.1.0)

radius_create_request — Crée une demande de compte ou d'identification

Description

bool radius_create_request ( resource $radius_handle , int $type )

Une demande Radius consiste en du code spécifiant une demande spécifique, ainsi que zéro ou plusieurs attributs qui fournissent des informations supplémentaires. Pour commencer à construire une nouvelle demande, appelez la fonction radius_create_request().

Note: Attention : Vous devez appeler cette fonction avant de passer n'importe quel argument !

Liste de paramètres

radius_handle

type

Le type est RADIUS_ACCESS_REQUEST ou RADIUS_ACCOUNTING_REQUEST.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec radius_create_request()

<?php
if (!radius_create_request($res, RADIUS_ACCESS_REQUEST)) {
    echo 'Erreur Radius :' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Voir aussi

  • radius_send_request() - Envoie la demande et attente une réponse


Convertit des données brutes en adresse IP

  • « radius_create_request
  • radius_cvt_int »
  • PHP Manual
  • Fonctions Radius
  • Convertit des données brutes en adresse IP

radius_cvt_addr

(PECL radius >= 1.1.0)

radius_cvt_addr — Convertit des données brutes en adresse IP

Description

string radius_cvt_addr ( string $data )

Exemples

Exemple #1 Exemple avec radius_cvt_addr()

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Erreur lors de la récupération des attributs : %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FRAMED_IP_ADDRESS:
        $ip = radius_cvt_addr($data);
        echo "IP : $ip<br>\n";
        break;

    case RADIUS_FRAMED_IP_NETMASK:
        $mask = radius_cvt_addr($data);
        echo "MASQUE : $mask<br>\n";
        break;
    }
}
?>

Voir aussi

  • radius_cvt_int() - Convertit des données brutes en entier
  • radius_cvt_string() - Convertit des données brutes en chaîne de caractères


Convertit des données brutes en entier

  • « radius_cvt_addr
  • radius_cvt_string »
  • PHP Manual
  • Fonctions Radius
  • Convertit des données brutes en entier

radius_cvt_int

(PECL radius >= 1.1.0)

radius_cvt_int — Convertit des données brutes en entier

Description

int radius_cvt_int ( string $data )

Exemples

Exemple #1 Exemple avec radius_cvt_int()

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Erreur lors de la récupération des attributs : %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FRAMED_MTU:
        $mtu = radius_cvt_int($data);
        echo "MTU : $mtu<br>\n";
        break;
    }
}
?>

Voir aussi

  • radius_cvt_addr() - Convertit des données brutes en adresse IP
  • radius_cvt_string() - Convertit des données brutes en chaîne de caractères


Convertit des données brutes en chaîne de caractères

  • « radius_cvt_int
  • radius_demangle_mppe_key »
  • PHP Manual
  • Fonctions Radius
  • Convertit des données brutes en chaîne de caractères

radius_cvt_string

(PECL radius >= 1.1.0)

radius_cvt_string — Convertit des données brutes en chaîne de caractères

Description

string radius_cvt_string ( string $data )

Exemples

Exemple #1 Exemple avec radius_cvt_string()

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Erreur lors de la récupération des attributs : %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FILTER_ID:
        $id = radius_cvt_string($data);
        echo "Filtre ID : $id<br>\n";
        break;
    }
}
?>

Voir aussi

  • radius_cvt_addr() - Convertit des données brutes en adresse IP
  • radius_cvt_int() - Convertit des données brutes en entier


Dérive les clés mppe depuis des données

  • « radius_cvt_string
  • radius_demangle »
  • PHP Manual
  • Fonctions Radius
  • Dérive les clés mppe depuis des données

radius_demangle_mppe_key

(PECL radius >= 1.2.0)

radius_demangle_mppe_key — Dérive les clés mppe depuis des données

Description

string radius_demangle_mppe_key ( resource $radius_handle , string $mangled )

Lors de l'utilisation de MPPE avec MS-CHAPv2, les clés reçues et envoyées sont "séchées" (voir la » RFC 2548), cependant, cette fonction est utile, car je ne sais pas s'il y a ou pas une implémentation de PPTP-MPPE dans PHP.

Valeurs de retour

Retourne la chaîne ou FALSE si une erreur survient.


Assèche des données

  • « radius_demangle_mppe_key
  • radius_get_attr »
  • PHP Manual
  • Fonctions Radius
  • Assèche des données

radius_demangle

(PECL radius >= 1.2.0)

radius_demangle — Assèche des données

Description

string radius_demangle ( resource $radius_handle , string $mangled )

Quelques données (mots de passe, clés MS-CHAPv1 MPPE) sont "séchées" pour des raisons de sécurité et doivent être "asséchées" avant de pouvoir les utiliser.

Valeurs de retour

Retourne la chaîne "asséchées" ou FALSE si une erreur survient.


Extrait un attribut

  • « radius_demangle
  • radius_get_tagged_attr_data »
  • PHP Manual
  • Fonctions Radius
  • Extrait un attribut

radius_get_attr

(PECL radius >= 1.1.0)

radius_get_attr — Extrait un attribut

Description

mixed radius_get_attr ( resource $radius_handle )

Comme les demandes Radius, chaque réponse doit contenir zéro ou plusieurs attributs. Après la réception d'une réponse avec succès par la fonction radius_send_request(), ces attributs peuvent être extraits un par un en utilisant la fonction radius_get_attr(). À chaque appel de radius_get_attr(), le prochain attribut est récupéré depuis la réponse courante.

Valeurs de retour

Retourne un tableau associatif contenant le type de l'attribut ainsi que les données ou un numéro d'erreur <= 0.

Exemples

Exemple #1 Exemple avec radius_get_attr()

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf("Erreur lors de la récupération de l'attribut : %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];
    printf("Attribut récupéré :%d %d octets %s\n", $attr, strlen($data), bin2hex($data));
}
?>

Voir aussi

  • radius_put_attr() - Attache un attribut binaire
  • radius_get_vendor_attr() - Extrait un attribut spécifique au vendeur
  • radius_put_vendor_attr() - Attache un attribut binaire à un vendeur spécifique
  • radius_send_request() - Envoie la demande et attente une réponse


Extrait les données d'un attribut

  • « radius_get_attr
  • radius_get_tagged_attr_tag »
  • PHP Manual
  • Fonctions Radius
  • Extrait les données d'un attribut

radius_get_tagged_attr_data

(PECL radius >= 1.3.0)

radius_get_tagged_attr_data — Extrait les données d'un attribut

Description

string radius_get_tagged_attr_data ( string $data )

Si un attribut contenant un tag a été retourné depuis la fonction radius_get_attr(), radius_get_tagged_attr_data() va retourner les données depuis cet attribut.

Liste de paramètres

data

L'attribut contenant un tag à décoder.

Valeurs de retour

Retourne les données de l'attribut ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec radius_get_tagged_attr_data()

<?php
while ($resa = radius_get_attr($res)) {
    if (!is_array($resa)) {
        printf ("Erreur lors de la récupération de l'attribut : %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    $tag = radius_get_tagged_attr_tag($data);
    $value = radius_get_tagged_attr_data($data);

    printf("Récupération de l'attribut contenant le tag %d et la valeur %s\n", $tag, $value);
}
?>

Voir aussi

  • radius_get_attr() - Extrait un attribut
  • radius_get_tagged_attr_tag() - Extrait le tag depuis un attribut


Extrait le tag depuis un attribut

  • « radius_get_tagged_attr_data
  • radius_get_vendor_attr »
  • PHP Manual
  • Fonctions Radius
  • Extrait le tag depuis un attribut

radius_get_tagged_attr_tag

(PECL radius >= 1.3.0)

radius_get_tagged_attr_tag — Extrait le tag depuis un attribut

Description

integer radius_get_tagged_attr_tag ( string $data )

Si un attribut contenant un tag a été retourné depuis la fonction radius_get_attr(), radius_get_tagged_attr_data() va retourner le tag depuis l'attribut.

Liste de paramètres

data

L'attribut à décoder.

Valeurs de retour

Retourne le tag depuis l'attribut ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec radius_get_tagged_attr_tag()

<?php
while ($resa = radius_get_attr($res)) {
    if (!is_array($resa)) {
        printf ("Erreur lors de la récupération de l'attribut : %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    $tag = radius_get_tagged_attr_tag($data);
    $value = radius_get_tagged_attr_data($data);

    printf("Récupération de l'attribut contennant le tag %d et la valeur %s\n", $tag, $value);
}
?>

Voir aussi

  • radius_get_attr() - Extrait un attribut
  • radius_get_tagged_attr_data() - Extrait les données d'un attribut


Extrait un attribut spécifique au vendeur

  • « radius_get_tagged_attr_tag
  • radius_put_addr »
  • PHP Manual
  • Fonctions Radius
  • Extrait un attribut spécifique au vendeur

radius_get_vendor_attr

(PECL radius >= 1.1.0)

radius_get_vendor_attr — Extrait un attribut spécifique au vendeur

Description

array radius_get_vendor_attr ( string $data )

Si radius_get_attr() retourne RADIUS_VENDOR_SPECIFIC, radius_get_vendor_attr() peut être appelé pour déterminer le vendeur.

Valeurs de retour

Retourne un tableau associatif contenant le type de l'attribut, le vendeur ainsi que les données, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec radius_get_vendor_attr()

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Erreur lors de la récupération de l'attribut : %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];
    printf("Attribut récupéré :%d %d octets %s\n", $attr, strlen($data), bin2hex($data));
    if ($attr == RADIUS_VENDOR_SPECIFIC) {

        $resv = radius_get_vendor_attr($data);
        if (is_array($resv)) {
            $vendor = $resv['vendor'];
            $attrv = $resv['attr'];
            $datav = $resv['data'];
            printf("Récupération du vendeur de l'attribut :%d %d octets %s\n", $attrv, strlen($datav), bin2hex($datav));
        }

    }
}
?>

Voir aussi

  • radius_get_attr() - Extrait un attribut
  • radius_put_vendor_attr() - Attache un attribut binaire à un vendeur spécifique


Attache une adresse IP en tant qu'attribut

  • « radius_get_vendor_attr
  • radius_put_attr »
  • PHP Manual
  • Fonctions Radius
  • Attache une adresse IP en tant qu'attribut

radius_put_addr

(PECL radius >= 1.1.0)

radius_put_addr — Attache une adresse IP en tant qu'attribut

Description

bool radius_put_addr ( resource $radius_handle , int $type , string $addr [, int $options = 0 [, int $tag ]] )

Attache une adresse IP à la requête RADIUS courante.

Note:

Une requête doit être créée via la fonction radius_create_request() avant que cette fonction puisse être appelée.

Liste de paramètres

radius_handle

La ressource RADIUS.

type

Le type d'attribut.

addr

Une adresse IPv4 ; par exemple 10.0.0.1.

options

Un masqe d'options d'attribut. Les options disponibles incluent RADIUS_OPTION_TAGGED et RADIUS_OPTION_SALT.

tag

L'attribut tag. Ce paramètre est ignoré tant que l'option RADIUS_OPTION_TAGGED est défini.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
PECL radius 1.3.0 | Les paramètres options et tag ont été ajoutés.


Attache un attribut binaire

  • « radius_put_addr
  • radius_put_int »
  • PHP Manual
  • Fonctions Radius
  • Attache un attribut binaire

radius_put_attr

(PECL radius >= 1.1.0)

radius_put_attr — Attache un attribut binaire

Description

bool radius_put_attr ( resource $radius_handle , int $type , string $value [, int $options = 0 [, int $tag ]] )

Attache un attribut binaire à la requête RADIUS courante.

Note:

Une requête doit être créée via la fonction radius_create_request() avant que cette fonction puisse être appelée.

Liste de paramètres

radius_handle

La ressource RADIUS.

type

Le type d'attribut.

value

La valeur de l'attribut, qui sera traité comme une chaîne binaire brûte.

options

Un masqe d'options d'attribut. Les options disponibles incluent RADIUS_OPTION_TAGGED et RADIUS_OPTION_SALT.

tag

L'attribut tag. Ce paramètre est ignoré tant que l'option RADIUS_OPTION_TAGGED est défini.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec radius_put_attr()

<?php
mt_srand(time());
$chall = mt_rand();
$chapval = md5(pack('Ca*',1 , 'sepp' . $chall));
$pass = pack('CH*', 1, $chapval);
if (!radius_put_attr($res, RADIUS_CHAP_PASSWORD, $pass)) {
    echo 'Erreur Radius :' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Historique

Version | Description
PECL radius 1.3.0 | Les paramètres options et tag ont été ajoutés.

Voir aussi

  • radius_get_attr() - Extrait un attribut
  • radius_get_vendor_attr() - Extrait un attribut spécifique au vendeur
  • radius_put_vendor_attr() - Attache un attribut binaire à un vendeur spécifique


Attache un attribut entier

  • « radius_put_attr
  • radius_put_string »
  • PHP Manual
  • Fonctions Radius
  • Attache un attribut entier

radius_put_int

(PECL radius >= 1.1.0)

radius_put_int — Attache un attribut entier

Description

bool radius_put_int ( resource $radius_handle , int $type , int $value [, int $options = 0 [, int $tag ]] )

Attache un attribut entier à la requête RADIUS courante.

Note:

Une requête doit être créée via la fonction radius_create_request() avant que cette fonction puisse être appelée.

Liste de paramètres

radius_handle

La ressource RADIUS.

type

Le type d'attribut.

value

La valeur de l'attribut.

options

Un masqe d'options d'attribut. Les options disponibles incluent RADIUS_OPTION_TAGGED et RADIUS_OPTION_SALT.

tag

L'attribut tag. Ce paramètre est ignoré tant que l'option RADIUS_OPTION_TAGGED est défini.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
PECL radius 1.3.0 | Les paramètres options et tag ont été ajoutés.

Exemples

Exemple #1 Exemple avec radius_put_int()

<?php
if (!radius_put_int($res, RAD_FRAMED_PROTOCOL, RAD_PPP)) {
   echo 'Erreur Radius :' . radius_strerror($res). "\n<br />";
   exit;
}
?>

Voir aussi

  • radius_put_string() - Attache un attribut chaîne de caractères
  • radius_put_vendor_int() - Attache un attribut entier à un vendeur spécifique
  • radius_put_vendor_string() - Attache un attribut sous la forme d'une chaîne à un vendeur spécifique


Attache un attribut chaîne de caractères

  • « radius_put_int
  • radius_put_vendor_addr »
  • PHP Manual
  • Fonctions Radius
  • Attache un attribut chaîne de caractères

radius_put_string

(PECL radius >= 1.1.0)

radius_put_string — Attache un attribut chaîne de caractères

Description

bool radius_put_string ( resource $radius_handle , int $type , string $value [, int $options = 0 [, int $tag ]] )

Attache un attribut sous forme de chaîne à la requête RADIUS courante. En général, la fonction radius_put_attr() est plus utile pour cela, car elle est sécurisé au niveau binaire.

Note:

Une requête doit être créée via la fonction radius_create_request() avant que cette fonction puisse être appelée.

Liste de paramètres

radius_handle

La ressource RADIUS.

type

Le type d'attribut.

value

La valeur de l'attribut. Cette valeur est attendue par la bibliothèque sous-jacente comme devant se terminer par NULL ; aussi, ce paramètre n'est pas sécurisé binairement.

options

Un masqe d'options d'attribut. Les options disponibles incluent RADIUS_OPTION_TAGGED et RADIUS_OPTION_SALT.

tag

L'attribut tag. Ce paramètre est ignoré tant que l'option RADIUS_OPTION_TAGGED est défini.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
PECL radius 1.3.0 | Les paramètres options et tag ont été ajoutés.

Exemples

Exemple #1 Exemple avec radius_put_string()

<?php
if (!radius_put_string($res, RADIUS_USER_NAME, 'billy')) {
    echo 'Erreur Radius :' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Voir aussi

  • radius_put_int() - Attache un attribut entier
  • radius_put_vendor_int() - Attache un attribut entier à un vendeur spécifique
  • radius_put_vendor_string() - Attache un attribut sous la forme d'une chaîne à un vendeur spécifique


Attache une adresse IP spécifique à un vendeur

  • « radius_put_string
  • radius_put_vendor_attr »
  • PHP Manual
  • Fonctions Radius
  • Attache une adresse IP spécifique à un vendeur

radius_put_vendor_addr

(PECL radius >= 1.1.0)

radius_put_vendor_addr — Attache une adresse IP spécifique à un vendeur

Description

bool radius_put_vendor_addr ( resource $radius_handle , int $vendor , int $type , string $addr )

Attache une adresse IP spécifique au vendeur pour la requête RADIUS courante.

Note:

Une requête doit être créée via la fonction radius_create_request() avant que cette fonction puisse être appelée.

Liste de paramètres

radius_handle

La ressource RADIUS.

vendor

L'identifiant du vendeur.

type

Le type d'attribut.

addr

Une adresse IPv4 ; par exemple 10.0.0.1.

options

Un masqe d'options d'attribut. Les options disponibles incluent RADIUS_OPTION_TAGGED et RADIUS_OPTION_SALT.

tag

L'attribut tag. Ce paramètre est ignoré tant que l'option RADIUS_OPTION_TAGGED est défini.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
PECL radius 1.3.0 | Les paramètres options et tag ont été ajoutés.


Attache un attribut binaire à un vendeur spécifique

  • « radius_put_vendor_addr
  • radius_put_vendor_int »
  • PHP Manual
  • Fonctions Radius
  • Attache un attribut binaire à un vendeur spécifique

radius_put_vendor_attr

(PECL radius >= 1.1.0)

radius_put_vendor_attr — Attache un attribut binaire à un vendeur spécifique

Description

bool radius_put_vendor_attr ( resource $radius_handle , int $vendor , int $type , string $value [, int $options = 0 [, int $tag ]] )

Attache un attibut binaire spécifique au vendeur pour la requête courante RADIUS.

Note:

Une requête doit être créée via la fonction radius_create_request() avant que cette fonction puisse être appelée.

Liste de paramètres

radius_handle

La ressource RADIUS.

vendor

L'identifiant du vendeur.

type

Le type d'attribut.

value

La valeur de l'attribut, qui sera traité comme une chaîne binaire brûte.

options

Un masqe d'options d'attribut. Les options disponibles incluent RADIUS_OPTION_TAGGED et RADIUS_OPTION_SALT.

tag

L'attribut tag. Ce paramètre est ignoré tant que l'option RADIUS_OPTION_TAGGED est défini.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
PECL radius 1.3.0 | Les paramètres options et tag ont été ajoutés.

Exemples

Exemple #1 Exemple avec radius_put_vendor_attr()

<?php
if (!radius_put_vendor_attr($res, RADIUS_VENDOR_MICROSOFT, RAD_MICROSOFT_MS_CHAP_CHALLENGE, $challenge)) {
    echo 'Erreur Radius :' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Voir aussi

  • radius_get_vendor_attr() - Extrait un attribut spécifique au vendeur


Attache un attribut entier à un vendeur spécifique

  • « radius_put_vendor_attr
  • radius_put_vendor_string »
  • PHP Manual
  • Fonctions Radius
  • Attache un attribut entier à un vendeur spécifique

radius_put_vendor_int

(PECL radius >= 1.1.0)

radius_put_vendor_int — Attache un attribut entier à un vendeur spécifique

Description

bool radius_put_vendor_int ( resource $radius_handle , int $vendor , int $type , int $value [, int $options = 0 [, int $tag ]] )

Attache un attribut spécifique au vendreau à la requête courante RADIUS.

Liste de paramètres

radius_handle

La ressource RADIUS.

vendor

L'identifiant du vendeur.

type

Le type d'attribut.

value

La valeur de l'attribut.

options

Un masqe d'options d'attribut. Les options disponibles incluent RADIUS_OPTION_TAGGED et RADIUS_OPTION_SALT.

tag

L'attribut tag. Ce paramètre est ignoré tant que l'option RADIUS_OPTION_TAGGED est défini.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
PECL radius 1.3.0 | Les options options et tag ont été ajoutés.

Voir aussi

  • radius_put_vendor_string() - Attache un attribut sous la forme d'une chaîne à un vendeur spécifique


Attache un attribut sous la forme d'une chaîne à un vendeur spécifique

  • « radius_put_vendor_int
  • radius_request_authenticator »
  • PHP Manual
  • Fonctions Radius
  • Attache un attribut sous la forme d'une chaîne à un vendeur spécifique

radius_put_vendor_string

(PECL radius >= 1.1.0)

radius_put_vendor_string — Attache un attribut sous la forme d'une chaîne à un vendeur spécifique

Description

bool radius_put_vendor_string ( resource $radius_handle , int $vendor , int $type , string $value [, int $options = 0 [, int $tag ]] )

Attache un attribut spécifique au vendeur à la requête courante RADIUS. En général, radius_put_vendor_attr() est une fonction plus pratique pour attacher des attributs, sachant qu'elle est sécurisé au niveau binaire.

Liste de paramètres

radius_handle

La ressource RADIUS.

vendor

L'identifiant du vendeur.

type

Le type d'attribut.

value

La valeur de l'attribut. Cette valeur est attendue par la bibliothèque sous-jacente comme se terminant par NULL ; aussi, ce paramètre n'est pas sécurisé au niveau binaire.

options

Un masqe d'options d'attribut. Les options disponibles incluent RADIUS_OPTION_TAGGED et RADIUS_OPTION_SALT.

tag

L'attribut tag. Ce paramètre est ignoré tant que l'option RADIUS_OPTION_TAGGED est défini.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
PECL radius 1.3.0 | Les paramètres options et tag ont été ajoutés.

Voir aussi

  • radius_put_vendor_int() - Attache un attribut entier à un vendeur spécifique


Retourne l'identifiant demandé

  • « radius_put_vendor_string
  • radius_salt_encrypt_attr »
  • PHP Manual
  • Fonctions Radius
  • Retourne l'identifiant demandé

radius_request_authenticator

(PECL radius >= 1.1.0)

radius_request_authenticator — Retourne l'identifiant demandé

Description

string radius_request_authenticator ( resource $radius_handle )

L'identifiant demandé est nécessaire pour le rétablissement des données comme les mots de passe et les clés de chiffrement.

Valeurs de retour

Retourne l'identificateur demandé en tant que chaîne de caractères ou FALSE si une erreur survient.

Voir aussi

  • radius_demangle() - Assèche des données


Crypte une valeur en utilisant un Salt

  • « radius_request_authenticator
  • radius_send_request »
  • PHP Manual
  • Fonctions Radius
  • Crypte une valeur en utilisant un Salt

radius_salt_encrypt_attr

(PECL radius >= 1.3.0)

radius_salt_encrypt_attr — Crypte une valeur en utilisant un Salt

Description

string radius_salt_encrypt_attr ( resource $radius_handle , string $data )

Applique l'algorithme RADIUS salt à la valeur fournie.

En général, ceci est fait automatiquement en fournissant l'option RADIUS_OPTION_SALT à la fonction définissant l'attribut, mais cette fonction peut être utilisée si une construction de requête bas niveau est requise.

Liste de paramètres

data

Les données à crypter avec un salt.

Valeurs de retour

Retourne les données cryptées en utilisant un salt ou FALSE si une erreur survient.

Voir aussi

  • radius_put_addr() - Attache une adresse IP en tant qu'attribut
  • radius_put_attr() - Attache un attribut binaire
  • radius_put_int() - Attache un attribut entier
  • radius_put_string() - Attache un attribut chaîne de caractères


Envoie la demande et attente une réponse

  • « radius_salt_encrypt_attr
  • radius_server_secret »
  • PHP Manual
  • Fonctions Radius
  • Envoie la demande et attente une réponse

radius_send_request

(PECL radius >= 1.1.0)

radius_send_request — Envoie la demande et attente une réponse

Description

int radius_send_request ( resource $radius_handle )

Après qu'une demande Radius ait été construite, elle est envoyé grâce à la fonction radius_send_request().

La fonction radius_send_request() envoie la requête et attend une réponse valide, essayant à nouveau, suivant la méthode round-robin autant que nécessaire.

Valeurs de retour

Si une réponse valide est reçue, radius_send_request() retourne le code Radius qui spécifie le type de réponse. C'est, typiquement, RADIUS_ACCESS_ACCEPT, RADIUS_ACCESS_REJECT ou RADIUS_ACCESS_CHALLENGE. Si aucune réponse valide n'est reçue, radius_send_request() retournera FALSE.

Voir aussi

  • radius_create_request() - Crée une demande de compte ou d'identification


Retourne le secret partagé

  • « radius_send_request
  • radius_strerror »
  • PHP Manual
  • Fonctions Radius
  • Retourne le secret partagé

radius_server_secret

(PECL radius >= 1.1.0)

radius_server_secret — Retourne le secret partagé

Description

string radius_server_secret ( resource $radius_handle )

Le secret partagé est nécessaire pour le rétablissement des données comme les mots de passe et les clés de chiffrement.

Valeurs de retour

Retourne le secret partagé du serveur en tant que chaîne de caractères ou FALSE si une erreur survient.


Retourne un message d'erreur

  • « radius_server_secret
  • Extensions spécifiques à la ligne de commande »
  • PHP Manual
  • Fonctions Radius
  • Retourne un message d'erreur

radius_strerror

(PECL radius >= 1.1.0)

radius_strerror — Retourne un message d'erreur

Description

string radius_strerror ( resource $radius_handle )

Si une fonction Radius échoue, alors, elle enregistre un message d'erreur. Ce message d'erreur peut être récupéré avec cette fonction.

Valeurs de retour

Retourne un message d'erreur en tant que chaîne de caractères.


Extensions spécifiques à la ligne de commande

  • Ncurses — Fonctions de contrôle d'écran de terminal
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Ncurses
  • Newt
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Newt
  • Readline — GNU Readline
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Readline


Fonctions de contrôle d'écran de terminal

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
    • Codes d'erreurs ncurses
    • Couleurs
    • Touches
    • Souris
  • Fonctions Ncurses
    • ncurses_addch — Ajoute un caractère à la position courante et avance le curseur
    • ncurses_addchnstr — Ajoute une chaîne de taille donnée à la position courante
    • ncurses_addchstr — Ajoute une chaîne à la position courante
    • ncurses_addnstr — Ajoute une chaîne à la position courante
    • ncurses_addstr — Affiche du texte à la position courante
    • ncurses_assume_default_colors — Définit la couleur 0
    • ncurses_attroff — Désactive les attributs donnés
    • ncurses_attron — Active les attributs fournis
    • ncurses_attrset — Modifie les attributs donnés
    • ncurses_baudrate — Retourne le baudrate du terminal
    • ncurses_beep — Fait beeper le terminal
    • ncurses_bkgd — Définit les propriétés de fond d'écran pour le terminal
    • ncurses_bkgdset — Définit le fond d'écran
    • ncurses_border — Dessine un bord autour de l'écran avec les caractères données
    • ncurses_bottom_panel — Place un conteneur visible en bas de la pile
    • ncurses_can_change_color — Vérifie si le terminal peut changer de couleur
    • ncurses_cbreak — Désactive la bufferisation d'entrée
    • ncurses_clear — Efface l'écran
    • ncurses_clrtobot — Efface l'écran depuis la position courante jusqu'au bas de l'écran
    • ncurses_clrtoeol — Efface l'écran depuis la position courante jusqu'à la fin de la ligne
    • ncurses_color_content — Lit la valeur RGB d'une couleur
    • ncurses_color_set — Modifie la couleur de fond et de devant
    • ncurses_curs_set — Modifie l'état du curseur
    • ncurses_def_prog_mode — Sauve le mode du terminal
    • ncurses_def_shell_mode — Sauve le mode de terminal (shell)
    • ncurses_define_key — Définit un code de clé (keycode)
    • ncurses_del_panel — Retire un conteneur de la pile et l'efface (mais pas la fenêtre associée)
    • ncurses_delay_output — Retarde l'affichage sur les terminaux utilisant des caractères de remplissage
    • ncurses_delch — Efface le caractère courant et décale le reste de la ligne vers la gauche
    • ncurses_deleteln — Efface la ligne courante, et monte l'écran d'une ligne
    • ncurses_delwin — Efface une fenêtre ncurses
    • ncurses_doupdate — Affiche tout ce qui est prêt, et rafraîchit l'écran
    • ncurses_echo — Active l'écho d'entrée clavier
    • ncurses_echochar — Affiche un caractère et rafraîchit l'écran
    • ncurses_end — Cesse l'utilisation de ncurses et efface l'écran
    • ncurses_erase — Efface l'écran du terminal
    • ncurses_erasechar — Lit le caractère qui se fait effacer
    • ncurses_filter — Définit LINES pour iniscr() et newterm() à 1
    • ncurses_flash — Fait flasher le terminal (visual bell)
    • ncurses_flushinp — Vide le buffer d'entrée du clavier
    • ncurses_getch — Lit un caractère sur le clavier
    • ncurses_getmaxyx — Retourne la taille d'une fenêtre
    • ncurses_getmouse — Lit les événements souris
    • ncurses_getyx — Retourne la position courante du curseur pour une fenêtre
    • ncurses_halfdelay — Met le terminal en mode semi-retardé
    • ncurses_has_colors — Vérifie que le terminal supporte les couleurs
    • ncurses_has_ic — Vérifie les capacités d'insertion et d'effacement
    • ncurses_has_il — Vérifie les capacités d'insertion et d'effacement
    • ncurses_has_key — Vérifie la présence des touches de fonctions sur le clavier
    • ncurses_hide_panel — Retire un conteneur de la pile, pour le rendre invisible
    • ncurses_hline — Dessine une ligne horizontale à la position courante, en utilisant un caractère et une taille maximale
    • ncurses_inch — Lit le caractère et ses attributs à la position courante
    • ncurses_init_color — Configure une nouvelle valeur RGB pour une couleur
    • ncurses_init_pair — Alloue une paire de couleur
    • ncurses_init — Initialise ncurses
    • ncurses_insch — Insère un caractère et décale le reste de la ligne vers la droite, y compris le caractère courant
    • ncurses_insdelln — Insère des lignes devant la ligne courante en scrollant vers le bas (des nombres négatifs donneront un scroll vers le haut)
    • ncurses_insertln — Insère une ligne et décale le reste de l'écran vers le bas
    • ncurses_insstr — Insère une chaîne à la position courante, et décale le reste de la chaîne à droite
    • ncurses_instr — Lit une chaîne depuis le terminal
    • ncurses_isendwin — Vérifie si ncurses est en mode endwin
    • ncurses_keyok — Active ou désactive un code de clé (keycode)
    • ncurses_keypad — Active ou désactive le keypad
    • ncurses_killchar — Retourne la ligne du caractère actuellement supprimé
    • ncurses_longname — Retourne la description du terminal
    • ncurses_meta — Active/désactive les informations de méta clé 8-bits
    • ncurses_mouse_trafo — Transforme les coordonnées
    • ncurses_mouseinterval — Configure les délais entre les clics de souris
    • ncurses_mousemask — Configure les événements de souris à surveiller
    • ncurses_move_panel — Déplace un conteneur pour que son coin supérieur gauche soit aux coordonnées [startx, starty]
    • ncurses_move — Déplace la position d'affichage
    • ncurses_mvaddch — Déplace la position courante et ajoute un caractère
    • ncurses_mvaddchnstr — Déplace la position et ajoute la chaîne attribuée avec la taille donnée
    • ncurses_mvaddchstr — Déplace la position et ajoute une chaîne attribuée
    • ncurses_mvaddnstr — Déplace la position et ajoute une chaîne de taille donnée
    • ncurses_mvaddstr — Déplace la position et ajoute une chaîne
    • ncurses_mvcur — Déplace immédiatement le curseur
    • ncurses_mvdelch — Déplace la position et efface le caractère, puis décale le reste de la ligne à gauche
    • ncurses_mvgetch — Déplace la position et lit le caractère à la nouvelle position
    • ncurses_mvhline — Choisi une nouvelle position et dessine une ligne horizontale avec le caractère donné, et de taille maximale donnée
    • ncurses_mvinch — Déplace la position et lit le caractère à la nouvelle position
    • ncurses_mvvline — Modifie la position et dessine une ligne verticale avec le caractère donné, de taille maximale donnée
    • ncurses_mvwaddstr — Ajoute une chaîne à une nouvelle position dans la fenêtre
    • ncurses_napms — Fait une pause
    • ncurses_new_panel — Crée un nouveau conteneur et l'associe à une fenêtre
    • ncurses_newpad — Crée un nouveau pad (fenêtre)
    • ncurses_newwin — Crée une nouvelle fenêtre
    • ncurses_nl — Convertit les nouvelles lignes et retours chariot en sauts de ligne
    • ncurses_nocbreak — Passe le terminal en mode cooked
    • ncurses_noecho — Désactive l'écho clavier
    • ncurses_nonl — Ne convertit par les nouvelles lignes et retours chariot en sauts de ligne
    • ncurses_noqiflush — Ne vide pas les buffers sur réception des caractères de signaux
    • ncurses_noraw — Déconfigure le mode brut du terminal
    • ncurses_pair_content — Retourne les couleurs de fond et d'affichage d'une paire
    • ncurses_panel_above — Retourne le conteneur au-dessus du conteneur
    • ncurses_panel_below — Retourne le conteneur sous le conteneur
    • ncurses_panel_window — Retourne la fenêtre associée avec un conteneur
    • ncurses_pnoutrefresh — Copie une région depuis un pad dans un écran virtuel
    • ncurses_prefresh — Copie une région depuis un pad dans l'écran virtuel
    • ncurses_putp — Applique l'information d'espacement à la chaîne et l'affiche
    • ncurses_qiflush — Vide les buffers après détection d'un caractère de signal
    • ncurses_raw — Passe le terminal en mode brut (raw)
    • ncurses_refresh — Rafraîchit l'écran
    • ncurses_replace_panel — Remplace la fenêtre associée à un conteneur
    • ncurses_reset_prog_mode — Restaure le mode prog sauvé par def_prog_mode
    • ncurses_reset_shell_mode — Restaure le mode shell, mode sauvé par def_shell_mode
    • ncurses_resetty — Rétablit le terminal sauvé
    • ncurses_savetty — Sauve l'état du terminal
    • ncurses_scr_dump — Sauve un écran dans un fichier
    • ncurses_scr_init — Initialise un écran depuis un fichier de sauvegarde
    • ncurses_scr_restore — Rétablit un écran depuis un fichier de sauvegarde
    • ncurses_scr_set — Configure un écran depuis un fichier de sauvegarde
    • ncurses_scrl — Scrolle le contenu de la fenêtre vers le haut ou le bas, sans changer la position courante
    • ncurses_show_panel — Place un conteneur invisible en haut de la pile, pour le rendre visible
    • ncurses_slk_attr — Retourne l'attribut de la clé soft label courante
    • ncurses_slk_attroff — Désactive l'attribut donné pour les étiquettes des function-key (fonctions clés)
    • ncurses_slk_attron — Active l'attribut donné pour les étiquettes des function-key (fonctions clés)
    • ncurses_slk_attrset — Définit les attributs donnés à une étiquette function-key
    • ncurses_slk_clear — Efface les soft labels de l'écran
    • ncurses_slk_color — Configure la couleur des clés soft label
    • ncurses_slk_init — Initialise les fonctions de clés soft label
    • ncurses_slk_noutrefresh — Copie toutes les clés soft label à l'écran virtuel
    • ncurses_slk_refresh — Copie les clés soft label à l'écran
    • ncurses_slk_restore — Rétablit les clés soft label
    • ncurses_slk_set — Modifie les étiquettes de clé de fonction (function key labels)
    • ncurses_slk_touch — Force l'affichage lorsque ncurses_slk_noutrefresh est utilisé
    • ncurses_standend — Cesse l'utilisation de l'attribut 'standout'
    • ncurses_standout — Commence l'utilisation de l'attribut 'standout'
    • ncurses_start_color — Active les couleurs
    • ncurses_termattrs — Retourne toutes les options supportées par le terminal, combinées ensemble par l'opérateur OR
    • ncurses_termname — Retourne le nom court du terminal
    • ncurses_timeout — Configure le temps d'expiration des séquences clavier spéciales
    • ncurses_top_panel — Place un conteneur visible sur le haut de la pile
    • ncurses_typeahead — Spécifie un autre descripteur de fichier pour la vérification à la volée des données saisies
    • ncurses_ungetch — Replace un caractère dans la queue d'entrée
    • ncurses_ungetmouse — Ajoute un événement souris dans la queue
    • ncurses_update_panels — Rafraîchit l'écran virtuel pour prendre en compte les relations entre les conteneurs de la pile
    • ncurses_use_default_colors — Assigne la couleur de terminal pour l'index -1
    • ncurses_use_env — Contrôle l'utilisation des informations d'environnement concernant la taille du terminal
    • ncurses_use_extended_names — Contrôle l'utilisation des noms étendus dans les descriptions terminfo
    • ncurses_vidattr — Affiche la chaîne sur un terminal dans le mode d'attribut vidéo
    • ncurses_vline — Dessine une ligne verticale à la position courante en utilisant un caractère donné, pour une taille donnée
    • ncurses_waddch — Ajoute un caractère à la position courante, dans une fenêtre, et avance le curseur
    • ncurses_waddstr — Affiche le texte à la position courante dans la fenêtre
    • ncurses_wattroff — Désactive les attributs d'une fenêtre
    • ncurses_wattron — Efface les attributs de la fenêtre
    • ncurses_wattrset — Modifie les attributs d'une fenêtre
    • ncurses_wborder — Dessine le bord d'une fenêtre avec un caractère qualifié
    • ncurses_wclear — Efface la fenêtre
    • ncurses_wcolor_set — Modifie les paires de couleurs de la fenêtre
    • ncurses_werase — Efface le contenu de la fenêtre
    • ncurses_wgetch — Lit un caractère depuis le clavier (fenêtre)
    • ncurses_whline — Dessine une ligne horizontale à partir de la position courante, avec un caractère qualifié, et d'une taille maximale
    • ncurses_wmouse_trafo — Transforme les coordonnées d'une fenêtre
    • ncurses_wmove — Déplace la position d'affichage de la fenêtre
    • ncurses_wnoutrefresh — Copie la fenêtre dans l'écran virtuel
    • ncurses_wrefresh — Rafraîchit la fenêtre sur l'écran du terminal
    • ncurses_wstandend — Termine le mode standout de la fenêtre
    • ncurses_wstandout — Passe une fenêtre en mode standout
    • ncurses_wvline — Dessine une ligne verticale dans une fenêtre, à la position courante, en utilisant un caractère qualifié, avec une taille maximale


Introduction

ncurses (new curses, les nouveaux curseurs) sont une émulation libre des curseurs du System V Rel 4.0 (et plus récente). Ils utilisent le format terminfo, supportent les pavés numériques, les couleurs, les colorations multiples, les caractères de formulaire et les touches de fonctions. De par la nature interactive de cette bibliothèque, il est hors de question de l'utiliser pour écrire des applications pour le Web mais, par contre, elle peut être très intéressante pour écrire des scripts en ligne de commande.

Les fonctionnalités disponibles, telles que les couleurs, dépendent du terminal que vous utilisez. Utilisez les fonctions telles que ncurses_has_colors(), ncurses_can_change_color() et ncurses_has_ic() pour vérifier les capacités du votre.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.3.0.

Ncurses est disponible sur les plates-formes suivantes :

  • AIX
  • BeOS
  • BSD variants (FreeBSD, NetBSD, OpenBSD)
  • Cygwin
  • Digital Unix (aka OSF1)
  • GNU/Linux
  • HPUX
  • IRIX64
  • Mac OS X
  • OS/2
  • QNX
  • SCO OpenServer
  • Solaris
  • Tru64


Pré-requis

Vous devez disposer des bibliothèques ncurses et des fichiers d'en-têtes. Téléchargez la dernière version sur le site de » ftp://ftp.gnu.org/pub/gnu/ncurses/ ou sur un miroir GNU.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ncurses.

Le support des caractères CRT (ncursesw) a été ajouté en version 1.0.1 de cette extension PECL.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit les ressources window, panel et pad.


Constantes pré-définies

Sommaire

  • Codes d'erreurs ncurses
  • Couleurs
  • Touches
  • Souris

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.


Codes d'erreurs ncurses

En cas d'erreur, les fonctions ncurses retournent -1. Certaines fonctions retourne 0 en cas de succès. Voyez les documentations associées pour plus de détails.


Couleurs

Constantes de couleurs ncurses
Constante | Signification
NCURSES_COLOR_BLACK | Pas de couleur
NCURSES_COLOR_WHITE | blanc
NCURSES_COLOR_RED | rouge : supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_GREEN | vert : supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_YELLOW | jaune : supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_BLUE | bleu : supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_CYAN | cyan : supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_MAGENTA | magenta : supporté lorsque le terminal est en mode couleurs


Touches

Constantes de touches ncurses
Constante | Signification
NCURSES_KEY_F0 - NCURSES_KEY_F64 | Touches de fonctions F1 : F64
NCURSES_KEY_DOWN | flèche vers le bas
NCURSES_KEY_UP | flèche vers le haut
NCURSES_KEY_LEFT | flèche vers la gauche
NCURSES_KEY_RIGHT | flèche vers la droite
NCURSES_KEY_HOME | touche home (vers le haut + flèche vers la gauche)
NCURSES_KEY_BACKSPACE | retour en arrière
NCURSES_KEY_DL | efface une ligne
NCURSES_KEY_IL | insère une ligne
NCURSES_KEY_DC | efface un caractère
NCURSES_KEY_IC | insère un caractère, ou bien passe en mode insertion
NCURSES_KEY_EIC | termine le mode insertion
NCURSES_KEY_CLEAR | efface l'écran
NCURSES_KEY_EOS | efface l'écran jusqu'en bas
NCURSES_KEY_EOL | efface l'écran jusqu'à la fin de la ligne
NCURSES_KEY_SF | scrolle une ligne vers le bas
NCURSES_KEY_SR | scrolle une ligne vers le haut
NCURSES_KEY_NPAGE | page suivante
NCURSES_KEY_PPAGE | page précédente
NCURSES_KEY_STAB | place une tabulation
NCURSES_KEY_CTAB | supprime une tabulation
NCURSES_KEY_CATAB | supprime toutes les tabulations
NCURSES_KEY_SRESET | remise à zéro partielle
NCURSES_KEY_RESET | remise à zéro totale
NCURSES_KEY_PRINT | imprime
NCURSES_KEY_LL | inférieur gauche (sur le pavé numérique)
NCURSES_KEY_A1 | supérieur gauche (sur le pavé numérique)
NCURSES_KEY_A3 | supérieur droit (sur le pavé numérique)
NCURSES_KEY_B2 | centre (sur le pavé numérique)
NCURSES_KEY_C1 | inférieur gauche (sur le pavé numérique)
NCURSES_KEY_C3 | inférieur droit (sur le pavé numérique)
NCURSES_KEY_BTAB | tabulation arrière
NCURSES_KEY_BEG | début
NCURSES_KEY_CANCEL | annule
NCURSES_KEY_CLOSE | ferme
NCURSES_KEY_COMMAND | commande
NCURSES_KEY_COPY | copie
NCURSES_KEY_CREATE | crée
NCURSES_KEY_END | fin
NCURSES_KEY_EXIT | quitte
NCURSES_KEY_FIND | trouve
NCURSES_KEY_HELP | aide
NCURSES_KEY_MARK | marque
NCURSES_KEY_MESSAGE | message
NCURSES_KEY_MOVE | déplace
NCURSES_KEY_NEXT | suivant
NCURSES_KEY_OPEN | ouvre
NCURSES_KEY_OPTIONS | options
NCURSES_KEY_PREVIOUS | précédent
NCURSES_KEY_REDO | refaire
NCURSES_KEY_REFERENCE | référence
NCURSES_KEY_REFRESH | rafraîchis
NCURSES_KEY_REPLACE | replace
NCURSES_KEY_RESTART | redémarre
NCURSES_KEY_RESUME | recommence
NCURSES_KEY_SAVE | sauve
NCURSES_KEY_SBEG | shift et début
NCURSES_KEY_SCANCEL | shift et annule
NCURSES_KEY_SCOMMAND | shift et commande
NCURSES_KEY_SCOPY | shift et copie
NCURSES_KEY_SCREATE | shift et crée
NCURSES_KEY_SDC | shift et efface un caractère
NCURSES_KEY_SDL | shift et efface une ligne
NCURSES_KEY_SELECT | sélectionne
NCURSES_KEY_SEND | shift et fin
NCURSES_KEY_SEOL | shift et fin de ligne
NCURSES_KEY_SEXIT | shift et quitte
NCURSES_KEY_SFIND | shift et trouve
NCURSES_KEY_SHELP | shift et aide
NCURSES_KEY_SHOME | shift et home
NCURSES_KEY_SIC | shift et entrée
NCURSES_KEY_SLEFT | shift et flèche vers la gauche
NCURSES_KEY_SMESSAGE | shift et message
NCURSES_KEY_SMOVE | shift et déplace
NCURSES_KEY_SNEXT | shift et suivant
NCURSES_KEY_SOPTIONS | shift et options
NCURSES_KEY_SPREVIOUS | shift et précédent
NCURSES_KEY_SPRINT | shift et imprime
NCURSES_KEY_SREDO | shift et refait
NCURSES_KEY_SREPLACE | shift et remplace
NCURSES_KEY_SRIGHT | shift et flèche vers la droite
NCURSES_KEY_SRSUME | shift et recommence
NCURSES_KEY_SSAVE | shift et sauve
NCURSES_KEY_SSUSPEND | shift et suspend
NCURSES_KEY_UNDO | défait
NCURSES_KEY_MOUSE | un événement souris est survenu
NCURSES_KEY_MAX | valeur maximale de clé


Souris

Constantes de souris
Constante | Signification
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED | bouton (1-4) relâché
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED | bouton (1-4) pressé
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED | bouton (1-4) cliqué
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED | bouton (1-4) double cliqué
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED | bouton (1-4) triple cliqué
NCURSES_BUTTON_CTRL | Contrôle pressé durant le clic
NCURSES_BUTTON_SHIFT | shift pressé durant le clic
NCURSES_BUTTON_ALT | Alt pressé durant le clic
NCURSES_ALL_MOUSE_EVENTS | indique tous les événements souris
NCURSES_REPORT_MOUSE_POSITION | indique la position de la souris


Fonctions Ncurses

Sommaire

  • ncurses_addch — Ajoute un caractère à la position courante et avance le curseur
  • ncurses_addchnstr — Ajoute une chaîne de taille donnée à la position courante
  • ncurses_addchstr — Ajoute une chaîne à la position courante
  • ncurses_addnstr — Ajoute une chaîne à la position courante
  • ncurses_addstr — Affiche du texte à la position courante
  • ncurses_assume_default_colors — Définit la couleur 0
  • ncurses_attroff — Désactive les attributs donnés
  • ncurses_attron — Active les attributs fournis
  • ncurses_attrset — Modifie les attributs donnés
  • ncurses_baudrate — Retourne le baudrate du terminal
  • ncurses_beep — Fait beeper le terminal
  • ncurses_bkgd — Définit les propriétés de fond d'écran pour le terminal
  • ncurses_bkgdset — Définit le fond d'écran
  • ncurses_border — Dessine un bord autour de l'écran avec les caractères données
  • ncurses_bottom_panel — Place un conteneur visible en bas de la pile
  • ncurses_can_change_color — Vérifie si le terminal peut changer de couleur
  • ncurses_cbreak — Désactive la bufferisation d'entrée
  • ncurses_clear — Efface l'écran
  • ncurses_clrtobot — Efface l'écran depuis la position courante jusqu'au bas de l'écran
  • ncurses_clrtoeol — Efface l'écran depuis la position courante jusqu'à la fin de la ligne
  • ncurses_color_content — Lit la valeur RGB d'une couleur
  • ncurses_color_set — Modifie la couleur de fond et de devant
  • ncurses_curs_set — Modifie l'état du curseur
  • ncurses_def_prog_mode — Sauve le mode du terminal
  • ncurses_def_shell_mode — Sauve le mode de terminal (shell)
  • ncurses_define_key — Définit un code de clé (keycode)
  • ncurses_del_panel — Retire un conteneur de la pile et l'efface (mais pas la fenêtre associée)
  • ncurses_delay_output — Retarde l'affichage sur les terminaux utilisant des caractères de remplissage
  • ncurses_delch — Efface le caractère courant et décale le reste de la ligne vers la gauche
  • ncurses_deleteln — Efface la ligne courante, et monte l'écran d'une ligne
  • ncurses_delwin — Efface une fenêtre ncurses
  • ncurses_doupdate — Affiche tout ce qui est prêt, et rafraîchit l'écran
  • ncurses_echo — Active l'écho d'entrée clavier
  • ncurses_echochar — Affiche un caractère et rafraîchit l'écran
  • ncurses_end — Cesse l'utilisation de ncurses et efface l'écran
  • ncurses_erase — Efface l'écran du terminal
  • ncurses_erasechar — Lit le caractère qui se fait effacer
  • ncurses_filter — Définit LINES pour iniscr() et newterm() à 1
  • ncurses_flash — Fait flasher le terminal (visual bell)
  • ncurses_flushinp — Vide le buffer d'entrée du clavier
  • ncurses_getch — Lit un caractère sur le clavier
  • ncurses_getmaxyx — Retourne la taille d'une fenêtre
  • ncurses_getmouse — Lit les événements souris
  • ncurses_getyx — Retourne la position courante du curseur pour une fenêtre
  • ncurses_halfdelay — Met le terminal en mode semi-retardé
  • ncurses_has_colors — Vérifie que le terminal supporte les couleurs
  • ncurses_has_ic — Vérifie les capacités d'insertion et d'effacement
  • ncurses_has_il — Vérifie les capacités d'insertion et d'effacement
  • ncurses_has_key — Vérifie la présence des touches de fonctions sur le clavier
  • ncurses_hide_panel — Retire un conteneur de la pile, pour le rendre invisible
  • ncurses_hline — Dessine une ligne horizontale à la position courante, en utilisant un caractère et une taille maximale
  • ncurses_inch — Lit le caractère et ses attributs à la position courante
  • ncurses_init_color — Configure une nouvelle valeur RGB pour une couleur
  • ncurses_init_pair — Alloue une paire de couleur
  • ncurses_init — Initialise ncurses
  • ncurses_insch — Insère un caractère et décale le reste de la ligne vers la droite, y compris le caractère courant
  • ncurses_insdelln — Insère des lignes devant la ligne courante en scrollant vers le bas (des nombres négatifs donneront un scroll vers le haut)
  • ncurses_insertln — Insère une ligne et décale le reste de l'écran vers le bas
  • ncurses_insstr — Insère une chaîne à la position courante, et décale le reste de la chaîne à droite
  • ncurses_instr — Lit une chaîne depuis le terminal
  • ncurses_isendwin — Vérifie si ncurses est en mode endwin
  • ncurses_keyok — Active ou désactive un code de clé (keycode)
  • ncurses_keypad — Active ou désactive le keypad
  • ncurses_killchar — Retourne la ligne du caractère actuellement supprimé
  • ncurses_longname — Retourne la description du terminal
  • ncurses_meta — Active/désactive les informations de méta clé 8-bits
  • ncurses_mouse_trafo — Transforme les coordonnées
  • ncurses_mouseinterval — Configure les délais entre les clics de souris
  • ncurses_mousemask — Configure les événements de souris à surveiller
  • ncurses_move_panel — Déplace un conteneur pour que son coin supérieur gauche soit aux coordonnées [startx, starty]
  • ncurses_move — Déplace la position d'affichage
  • ncurses_mvaddch — Déplace la position courante et ajoute un caractère
  • ncurses_mvaddchnstr — Déplace la position et ajoute la chaîne attribuée avec la taille donnée
  • ncurses_mvaddchstr — Déplace la position et ajoute une chaîne attribuée
  • ncurses_mvaddnstr — Déplace la position et ajoute une chaîne de taille donnée
  • ncurses_mvaddstr — Déplace la position et ajoute une chaîne
  • ncurses_mvcur — Déplace immédiatement le curseur
  • ncurses_mvdelch — Déplace la position et efface le caractère, puis décale le reste de la ligne à gauche
  • ncurses_mvgetch — Déplace la position et lit le caractère à la nouvelle position
  • ncurses_mvhline — Choisi une nouvelle position et dessine une ligne horizontale avec le caractère donné, et de taille maximale donnée
  • ncurses_mvinch — Déplace la position et lit le caractère à la nouvelle position
  • ncurses_mvvline — Modifie la position et dessine une ligne verticale avec le caractère donné, de taille maximale donnée
  • ncurses_mvwaddstr — Ajoute une chaîne à une nouvelle position dans la fenêtre
  • ncurses_napms — Fait une pause
  • ncurses_new_panel — Crée un nouveau conteneur et l'associe à une fenêtre
  • ncurses_newpad — Crée un nouveau pad (fenêtre)
  • ncurses_newwin — Crée une nouvelle fenêtre
  • ncurses_nl — Convertit les nouvelles lignes et retours chariot en sauts de ligne
  • ncurses_nocbreak — Passe le terminal en mode cooked
  • ncurses_noecho — Désactive l'écho clavier
  • ncurses_nonl — Ne convertit par les nouvelles lignes et retours chariot en sauts de ligne
  • ncurses_noqiflush — Ne vide pas les buffers sur réception des caractères de signaux
  • ncurses_noraw — Déconfigure le mode brut du terminal
  • ncurses_pair_content — Retourne les couleurs de fond et d'affichage d'une paire
  • ncurses_panel_above — Retourne le conteneur au-dessus du conteneur
  • ncurses_panel_below — Retourne le conteneur sous le conteneur
  • ncurses_panel_window — Retourne la fenêtre associée avec un conteneur
  • ncurses_pnoutrefresh — Copie une région depuis un pad dans un écran virtuel
  • ncurses_prefresh — Copie une région depuis un pad dans l'écran virtuel
  • ncurses_putp — Applique l'information d'espacement à la chaîne et l'affiche
  • ncurses_qiflush — Vide les buffers après détection d'un caractère de signal
  • ncurses_raw — Passe le terminal en mode brut (raw)
  • ncurses_refresh — Rafraîchit l'écran
  • ncurses_replace_panel — Remplace la fenêtre associée à un conteneur
  • ncurses_reset_prog_mode — Restaure le mode prog sauvé par def_prog_mode
  • ncurses_reset_shell_mode — Restaure le mode shell, mode sauvé par def_shell_mode
  • ncurses_resetty — Rétablit le terminal sauvé
  • ncurses_savetty — Sauve l'état du terminal
  • ncurses_scr_dump — Sauve un écran dans un fichier
  • ncurses_scr_init — Initialise un écran depuis un fichier de sauvegarde
  • ncurses_scr_restore — Rétablit un écran depuis un fichier de sauvegarde
  • ncurses_scr_set — Configure un écran depuis un fichier de sauvegarde
  • ncurses_scrl — Scrolle le contenu de la fenêtre vers le haut ou le bas, sans changer la position courante
  • ncurses_show_panel — Place un conteneur invisible en haut de la pile, pour le rendre visible
  • ncurses_slk_attr — Retourne l'attribut de la clé soft label courante
  • ncurses_slk_attroff — Désactive l'attribut donné pour les étiquettes des function-key (fonctions clés)
  • ncurses_slk_attron — Active l'attribut donné pour les étiquettes des function-key (fonctions clés)
  • ncurses_slk_attrset — Définit les attributs donnés à une étiquette function-key
  • ncurses_slk_clear — Efface les soft labels de l'écran
  • ncurses_slk_color — Configure la couleur des clés soft label
  • ncurses_slk_init — Initialise les fonctions de clés soft label
  • ncurses_slk_noutrefresh — Copie toutes les clés soft label à l'écran virtuel
  • ncurses_slk_refresh — Copie les clés soft label à l'écran
  • ncurses_slk_restore — Rétablit les clés soft label
  • ncurses_slk_set — Modifie les étiquettes de clé de fonction (function key labels)
  • ncurses_slk_touch — Force l'affichage lorsque ncurses_slk_noutrefresh est utilisé
  • ncurses_standend — Cesse l'utilisation de l'attribut 'standout'
  • ncurses_standout — Commence l'utilisation de l'attribut 'standout'
  • ncurses_start_color — Active les couleurs
  • ncurses_termattrs — Retourne toutes les options supportées par le terminal, combinées ensemble par l'opérateur OR
  • ncurses_termname — Retourne le nom court du terminal
  • ncurses_timeout — Configure le temps d'expiration des séquences clavier spéciales
  • ncurses_top_panel — Place un conteneur visible sur le haut de la pile
  • ncurses_typeahead — Spécifie un autre descripteur de fichier pour la vérification à la volée des données saisies
  • ncurses_ungetch — Replace un caractère dans la queue d'entrée
  • ncurses_ungetmouse — Ajoute un événement souris dans la queue
  • ncurses_update_panels — Rafraîchit l'écran virtuel pour prendre en compte les relations entre les conteneurs de la pile
  • ncurses_use_default_colors — Assigne la couleur de terminal pour l'index -1
  • ncurses_use_env — Contrôle l'utilisation des informations d'environnement concernant la taille du terminal
  • ncurses_use_extended_names — Contrôle l'utilisation des noms étendus dans les descriptions terminfo
  • ncurses_vidattr — Affiche la chaîne sur un terminal dans le mode d'attribut vidéo
  • ncurses_vline — Dessine une ligne verticale à la position courante en utilisant un caractère donné, pour une taille donnée
  • ncurses_waddch — Ajoute un caractère à la position courante, dans une fenêtre, et avance le curseur
  • ncurses_waddstr — Affiche le texte à la position courante dans la fenêtre
  • ncurses_wattroff — Désactive les attributs d'une fenêtre
  • ncurses_wattron — Efface les attributs de la fenêtre
  • ncurses_wattrset — Modifie les attributs d'une fenêtre
  • ncurses_wborder — Dessine le bord d'une fenêtre avec un caractère qualifié
  • ncurses_wclear — Efface la fenêtre
  • ncurses_wcolor_set — Modifie les paires de couleurs de la fenêtre
  • ncurses_werase — Efface le contenu de la fenêtre
  • ncurses_wgetch — Lit un caractère depuis le clavier (fenêtre)
  • ncurses_whline — Dessine une ligne horizontale à partir de la position courante, avec un caractère qualifié, et d'une taille maximale
  • ncurses_wmouse_trafo — Transforme les coordonnées d'une fenêtre
  • ncurses_wmove — Déplace la position d'affichage de la fenêtre
  • ncurses_wnoutrefresh — Copie la fenêtre dans l'écran virtuel
  • ncurses_wrefresh — Rafraîchit la fenêtre sur l'écran du terminal
  • ncurses_wstandend — Termine le mode standout de la fenêtre
  • ncurses_wstandout — Passe une fenêtre en mode standout
  • ncurses_wvline — Dessine une ligne verticale dans une fenêtre, à la position courante, en utilisant un caractère qualifié, avec une taille maximale


Ajoute un caractère à la position courante et avance le curseur

  • « Fonctions Ncurses
  • ncurses_addchnstr »
  • PHP Manual
  • Fonctions Ncurses
  • Ajoute un caractère à la position courante et avance le curseur

ncurses_addch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addch — Ajoute un caractère à la position courante et avance le curseur

Description

int ncurses_addch ( int $ch )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

ch


Ajoute une chaîne de taille donnée à la position courante

  • « ncurses_addch
  • ncurses_addchstr »
  • PHP Manual
  • Fonctions Ncurses
  • Ajoute une chaîne de taille donnée à la position courante

ncurses_addchnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addchnstr — Ajoute une chaîne de taille donnée à la position courante

Description

int ncurses_addchnstr ( string $s , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

s

n


Ajoute une chaîne à la position courante

  • « ncurses_addchnstr
  • ncurses_addnstr »
  • PHP Manual
  • Fonctions Ncurses
  • Ajoute une chaîne à la position courante

ncurses_addchstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addchstr — Ajoute une chaîne à la position courante

Description

int ncurses_addchstr ( string $s )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

s


Ajoute une chaîne à la position courante

  • « ncurses_addchstr
  • ncurses_addstr »
  • PHP Manual
  • Fonctions Ncurses
  • Ajoute une chaîne à la position courante

ncurses_addnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addnstr — Ajoute une chaîne à la position courante

Description

int ncurses_addnstr ( string $s , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

s

n


Affiche du texte à la position courante

  • « ncurses_addnstr
  • ncurses_assume_default_colors »
  • PHP Manual
  • Fonctions Ncurses
  • Affiche du texte à la position courante

ncurses_addstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addstr — Affiche du texte à la position courante

Description

int ncurses_addstr ( string $text )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text


Définit la couleur 0

  • « ncurses_addstr
  • ncurses_attroff »
  • PHP Manual
  • Fonctions Ncurses
  • Définit la couleur 0

ncurses_assume_default_colors

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_assume_default_colors — Définit la couleur 0

Description

int ncurses_assume_default_colors ( int $fg , int $bg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

fg

bg


Désactive les attributs donnés

  • « ncurses_assume_default_colors
  • ncurses_attron »
  • PHP Manual
  • Fonctions Ncurses
  • Désactive les attributs donnés

ncurses_attroff

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attroff — Désactive les attributs donnés

Description

int ncurses_attroff ( int $attributes )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attributes


Active les attributs fournis

  • « ncurses_attroff
  • ncurses_attrset »
  • PHP Manual
  • Fonctions Ncurses
  • Active les attributs fournis

ncurses_attron

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attron — Active les attributs fournis

Description

int ncurses_attron ( int $attributes )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attributes


Modifie les attributs donnés

  • « ncurses_attron
  • ncurses_baudrate »
  • PHP Manual
  • Fonctions Ncurses
  • Modifie les attributs donnés

ncurses_attrset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attrset — Modifie les attributs donnés

Description

int ncurses_attrset ( int $attributes )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attributes


Retourne le baudrate du terminal

  • « ncurses_attrset
  • ncurses_beep »
  • PHP Manual
  • Fonctions Ncurses
  • Retourne le baudrate du terminal

ncurses_baudrate

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_baudrate — Retourne le baudrate du terminal

Description

int ncurses_baudrate ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Fait beeper le terminal

  • « ncurses_baudrate
  • ncurses_bkgd »
  • PHP Manual
  • Fonctions Ncurses
  • Fait beeper le terminal

ncurses_beep

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_beep — Fait beeper le terminal

Description

int ncurses_beep ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

ncurses_beep() envoie une alerte audible (bell) et si ce n'est pas possible, fait flasher l'écran.

Voir aussi

  • ncurses_flash() - Fait flasher le terminal (visual bell)


Définit les propriétés de fond d'écran pour le terminal

  • « ncurses_beep
  • ncurses_bkgdset »
  • PHP Manual
  • Fonctions Ncurses
  • Définit les propriétés de fond d'écran pour le terminal

ncurses_bkgd

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bkgd — Définit les propriétés de fond d'écran pour le terminal

Description

int ncurses_bkgd ( int $attrchar )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attrchar


Définit le fond d'écran

  • « ncurses_bkgd
  • ncurses_border »
  • PHP Manual
  • Fonctions Ncurses
  • Définit le fond d'écran

ncurses_bkgdset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bkgdset — Définit le fond d'écran

Description

void ncurses_bkgdset ( int $attrchar )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attrchar


Dessine un bord autour de l'écran avec les caractères données

  • « ncurses_bkgdset
  • ncurses_bottom_panel »
  • PHP Manual
  • Fonctions Ncurses
  • Dessine un bord autour de l'écran avec les caractères données

ncurses_border

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_border — Dessine un bord autour de l'écran avec les caractères données

Description

int ncurses_border ( int $left , int $right , int $top , int $bottom , int $tl_corner , int $tr_corner , int $bl_corner , int $br_corner )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Dessine les lignes spécifiées et les coins autour de la fenêtre principale.

Utilisez ncurses_wborder() pour les bordures autour de la fenêtre.

Liste de paramètres

Chaque paramètre attend 0 pour dessiner la ligne et 1 pour ne pas le faire.

left

right

top

bottom

tl_corner

Coin en haut à gauche

tr_corner

Coin en haut à droite

bl_corner

Coin en bas à gauche

br_corner

Coin en bas à droite

Voir aussi

  • ncurses_wborder() - Dessine le bord d'une fenêtre avec un caractère qualifié


Place un conteneur visible en bas de la pile

  • « ncurses_border
  • ncurses_can_change_color »
  • PHP Manual
  • Fonctions Ncurses
  • Place un conteneur visible en bas de la pile

ncurses_bottom_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bottom_panel — Place un conteneur visible en bas de la pile

Description

int ncurses_bottom_panel ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel


Vérifie si le terminal peut changer de couleur

  • « ncurses_bottom_panel
  • ncurses_cbreak »
  • PHP Manual
  • Fonctions Ncurses
  • Vérifie si le terminal peut changer de couleur

ncurses_can_change_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_can_change_color — Vérifie si le terminal peut changer de couleur

Description

bool ncurses_can_change_color ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie si le terminal supporte les couleurs et si on peut peut changer ces couleurs à l'aide de la fonction ncurses_init_color(). ncurses doit être initialisé avec ncurses_init() avant d'appeler cette fonction.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si on peut changer les couleurs du terminal, et FALSE sinon.

Voir aussi

  • ncurses_has_colors() - Vérifie que le terminal supporte les couleurs
  • ncurses_init_color() - Configure une nouvelle valeur RGB pour une couleur
  • ncurses_start_color() - Active les couleurs


Désactive la bufferisation d'entrée

  • « ncurses_can_change_color
  • ncurses_clear »
  • PHP Manual
  • Fonctions Ncurses
  • Désactive la bufferisation d'entrée

ncurses_cbreak

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_cbreak — Désactive la bufferisation d'entrée

Description

bool ncurses_cbreak ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Désactive la bufferisation de ligne, et le traitement des caractères (les interruptions et le flux de caractères de contrôle sont inchangés), rendant les caractères tapés par l'utilisateur directement accessibles au programme.

Valeurs de retour

Retourne TRUE en cas de succès, et NCURSES_ERR en cas d'erreur.

Voir aussi

  • ncurses_nocbreak() - Passe le terminal en mode cooked


Efface l'écran

  • « ncurses_cbreak
  • ncurses_clrtobot »
  • PHP Manual
  • Fonctions Ncurses
  • Efface l'écran

ncurses_clear

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clear — Efface l'écran

Description

bool ncurses_clear ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface totalement l'écran sans configurer les blancs.

Note : ncurses_clear() efface totalement l'écran sans configurer les blancs, qui représentent la couleur de fond d'écran. Pour effacer le fond d'écran avec les blancs, utilisez plutôt ncurses_erase().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ncurses_erase() - Efface l'écran du terminal


Efface l'écran depuis la position courante jusqu'au bas de l'écran

  • « ncurses_clear
  • ncurses_clrtoeol »
  • PHP Manual
  • Fonctions Ncurses
  • Efface l'écran depuis la position courante jusqu'au bas de l'écran

ncurses_clrtobot

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clrtobot — Efface l'écran depuis la position courante jusqu'au bas de l'écran

Description

bool ncurses_clrtobot ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface toutes les lignes de l'écran depuis le curseur jusqu'à la fin de l'écran. Les blancs qui sont créés avec la fonction ncurses_clrtobot() ont le rendu courant du fond d'écran.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ncurses_clear() - Efface l'écran
  • ncurses_clrtoeol() - Efface l'écran depuis la position courante jusqu'à la fin de la ligne


Efface l'écran depuis la position courante jusqu'à la fin de la ligne

  • « ncurses_clrtobot
  • ncurses_color_content »
  • PHP Manual
  • Fonctions Ncurses
  • Efface l'écran depuis la position courante jusqu'à la fin de la ligne

ncurses_clrtoeol

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clrtoeol — Efface l'écran depuis la position courante jusqu'à la fin de la ligne

Description

bool ncurses_clrtoeol ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface la ligne courante depuis la position courante du curseur jusqu'à la fin. Les blancs qui sont créés avec la fonction ncurses_clrtoeol() ont le rendu courant du fond d'écran.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ncurses_clear() - Efface l'écran
  • ncurses_clrtobot() - Efface l'écran depuis la position courante jusqu'au bas de l'écran


Lit la valeur RGB d'une couleur

  • « ncurses_clrtoeol
  • ncurses_color_set »
  • PHP Manual
  • Fonctions Ncurses
  • Lit la valeur RGB d'une couleur

ncurses_color_content

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_color_content — Lit la valeur RGB d'une couleur

Description

int ncurses_color_content ( int $color , int &$r , int &$g , int &$b )

Lit les composants rouge, vert et bleu d'une couleur. Les capacités de gestion des couleurs du terminal doivent avoir été initialisées avec ncurses_start_color() avant d'appeler cette fonction.

Liste de paramètres

color

Le numéero de la couleur dont il faut lire les composants. Cela peut être une des constantes de couleurs prédéfinies.

r

Une variable passée par référence, pour recevoir le composant rouge de la couleur demandée. La valeur retournée sera entre 0 et 1000.

g

Une variable passée par référence, pour recevoir le composant vert de la couleur demandée. La valeur retournée sera entre 0 et 1000.

b

Une variable passée par référence, pour recevoir le composant bleu de la couleur demandée. La valeur retournée sera entre 0 et 1000.

Valeurs de retour

Retourne -1 si la fonction a réussi, et 0 si ncurses ou la gestion des couleurs du terminal n'ont pas été initialisées.

Voir aussi

  • ncurses_init_color() - Configure une nouvelle valeur RGB pour une couleur
  • ncurses_start_color() - Active les couleurs


Modifie la couleur de fond et de devant

  • « ncurses_color_content
  • ncurses_curs_set »
  • PHP Manual
  • Fonctions Ncurses
  • Modifie la couleur de fond et de devant

ncurses_color_set

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_color_set — Modifie la couleur de fond et de devant

Description

int ncurses_color_set ( int $pair )

Configure les couleurs actives de fond et d'affichage. Tous les caractères qui seront écrits après l'utilisation de cette fonction utiliseront ces couleurs. Cette fonction a besoin du support des couleurs dans le terminal et de leur initialisation avec ncurses_start_color().

ncurses utilise des paires de couleurs pour spécifier simultanément les deux couleurs. Utilisez ncurses_init_pair() pour définir une paire.

Liste de paramètres

pair

La paire de couleur qui sera utilisée pour définir les couleurs de fond d'écran et d'affichage.

Valeurs de retour

Retourne -1 en cas de succès, et 0 en cas d'échec.

Exemples

Exemple #1 Affichage d'une chaîne avec une couleur donnée à l'écran

<?php
ncurses_init();

// Si le terminal supporte les couleurs, initialisation et activation
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Écriture d'une chaîne à l'écran
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Envoi à l'écran
ncurses_refresh();

ncurses_end();
?>

Voir aussi

  • ncurses_init_pair() - Alloue une paire de couleur
  • ncurses_start_color() - Active les couleurs


Modifie l'état du curseur

  • « ncurses_color_set
  • ncurses_def_prog_mode »
  • PHP Manual
  • Fonctions Ncurses
  • Modifie l'état du curseur

ncurses_curs_set

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_curs_set — Modifie l'état du curseur

Description

int ncurses_curs_set ( int $visibility )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

visibility


Sauve le mode du terminal

  • « ncurses_curs_set
  • ncurses_def_shell_mode »
  • PHP Manual
  • Fonctions Ncurses
  • Sauve le mode du terminal

ncurses_def_prog_mode

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_def_prog_mode — Sauve le mode du terminal

Description

bool ncurses_def_prog_mode ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sauve le mode du terminal pour réutilisation (dans les curses) avec la fonction ncurses_reset_prog_mode().

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

  • ncurses_reset_prog_mode() - Restaure le mode prog sauvé par def_prog_mode


Sauve le mode de terminal (shell)

  • « ncurses_def_prog_mode
  • ncurses_define_key »
  • PHP Manual
  • Fonctions Ncurses
  • Sauve le mode de terminal (shell)

ncurses_def_shell_mode

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_def_shell_mode — Sauve le mode de terminal (shell)

Description

bool ncurses_def_shell_mode ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sauve le mode de terminal courant pour qu'il soit réutilisé par le shell (et non pas par curses) avec la fonction ncurses_reset_shell_mode().

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

  • ncurses_reset_shell_mode() - Restaure le mode shell, mode sauvé par def_shell_mode


Définit un code de clé (keycode)

  • « ncurses_def_shell_mode
  • ncurses_del_panel »
  • PHP Manual
  • Fonctions Ncurses
  • Définit un code de clé (keycode)

ncurses_define_key

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_define_key — Définit un code de clé (keycode)

Description

int ncurses_define_key ( string $definition , int $keycode )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

definition

keycode


Retire un conteneur de la pile et l'efface (mais pas la fenêtre associée)

  • « ncurses_define_key
  • ncurses_delay_output »
  • PHP Manual
  • Fonctions Ncurses
  • Retire un conteneur de la pile et l'efface (mais pas la fenêtre associée)

ncurses_del_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_del_panel — Retire un conteneur de la pile et l'efface (mais pas la fenêtre associée)

Description

bool ncurses_del_panel ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel


Retarde l'affichage sur les terminaux utilisant des caractères de remplissage

  • « ncurses_del_panel
  • ncurses_delch »
  • PHP Manual
  • Fonctions Ncurses
  • Retarde l'affichage sur les terminaux utilisant des caractères de remplissage

ncurses_delay_output

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delay_output — Retarde l'affichage sur les terminaux utilisant des caractères de remplissage

Description

int ncurses_delay_output ( int $milliseconds )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

milliseconds


Efface le caractère courant et décale le reste de la ligne vers la gauche

  • « ncurses_delay_output
  • ncurses_deleteln »
  • PHP Manual
  • Fonctions Ncurses
  • Efface le caractère courant et décale le reste de la ligne vers la gauche

ncurses_delch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delch — Efface le caractère courant et décale le reste de la ligne vers la gauche

Description

bool ncurses_delch ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface la caractère sous le curseur. Tous les caractères sont alors décalés vers la gauche sur la même ligne, et le dernier caractère est remplacé par un vide. La position du curseur ne change pas.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

  • ncurses_deleteln() - Efface la ligne courante, et monte l'écran d'une ligne


Efface la ligne courante, et monte l'écran d'une ligne

  • « ncurses_delch
  • ncurses_delwin »
  • PHP Manual
  • Fonctions Ncurses
  • Efface la ligne courante, et monte l'écran d'une ligne

ncurses_deleteln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_deleteln — Efface la ligne courante, et monte l'écran d'une ligne

Description

bool ncurses_deleteln ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface la ligne courante, qui est placée sous le curseur. Toutes les lignes sous-jacentes sont alors remontées d'un cran. La ligne du bas est effacée. La position du curseur ne change pas.

Valeurs de retour

Retourne FALSE en cas de succès, et sinon TRUE.

Voir aussi

  • ncurses_delch() - Efface le caractère courant et décale le reste de la ligne vers la gauche


Efface une fenêtre ncurses

  • « ncurses_deleteln
  • ncurses_doupdate »
  • PHP Manual
  • Fonctions Ncurses
  • Efface une fenêtre ncurses

ncurses_delwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delwin — Efface une fenêtre ncurses

Description

bool ncurses_delwin ( resource $window )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window


Affiche tout ce qui est prêt, et rafraîchit l'écran

  • « ncurses_delwin
  • ncurses_echo »
  • PHP Manual
  • Fonctions Ncurses
  • Affiche tout ce qui est prêt, et rafraîchit l'écran

ncurses_doupdate

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_doupdate — Affiche tout ce qui est prêt, et rafraîchit l'écran

Description

bool ncurses_doupdate ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Compare l'écran mémoire avec l'écran physique, et met à jour l'écran physique. Cette méthode est plus efficace que d'utiliser des rafraîchissements multiples.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Active l'écho d'entrée clavier

  • « ncurses_doupdate
  • ncurses_echochar »
  • PHP Manual
  • Fonctions Ncurses
  • Active l'écho d'entrée clavier

ncurses_echo

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_echo — Active l'écho d'entrée clavier

Description

bool ncurses_echo ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Active le mode écho. Tous les caractères saisis par l'utilisateur sont affichés à l'écran par ncurses_getch().

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE si une erreur survient.

Voir aussi

  • ncurses_noecho() - Désactive l'écho clavier pour désactiver le mode écho.


Affiche un caractère et rafraîchit l'écran

  • « ncurses_echo
  • ncurses_end »
  • PHP Manual
  • Fonctions Ncurses
  • Affiche un caractère et rafraîchit l'écran

ncurses_echochar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_echochar — Affiche un caractère et rafraîchit l'écran

Description

int ncurses_echochar ( int $character )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

character


Cesse l'utilisation de ncurses et efface l'écran

  • « ncurses_echochar
  • ncurses_erase »
  • PHP Manual
  • Fonctions Ncurses
  • Cesse l'utilisation de ncurses et efface l'écran

ncurses_end

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_end — Cesse l'utilisation de ncurses et efface l'écran

Description

int ncurses_end ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Efface l'écran du terminal

  • « ncurses_end
  • ncurses_erasechar »
  • PHP Manual
  • Fonctions Ncurses
  • Efface l'écran du terminal

ncurses_erase

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_erase — Efface l'écran du terminal

Description

bool ncurses_erase ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Remplit le terminal avec des blancs.

Les blancs créés ont la couleur du fond d'écran, configurée avec la fonction ncurses_bkgd().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ncurses_bkgd() - Définit les propriétés de fond d'écran pour le terminal
  • ncurses_clear() - Efface l'écran


Lit le caractère qui se fait effacer

  • « ncurses_erase
  • ncurses_filter »
  • PHP Manual
  • Fonctions Ncurses
  • Lit le caractère qui se fait effacer

ncurses_erasechar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_erasechar — Lit le caractère qui se fait effacer

Description

string ncurses_erasechar ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le caractère qui se fait effacer.

Valeurs de retour

Le caractère effacé, sous la forme d'une chaîne de caractères.

Voir aussi

  • ncurses_killchar() - Retourne la ligne du caractère actuellement supprimé


Définit LINES pour iniscr() et newterm() à 1

  • « ncurses_erasechar
  • ncurses_flash »
  • PHP Manual
  • Fonctions Ncurses
  • Définit LINES pour iniscr() et newterm() à 1

ncurses_filter

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_filter — Définit LINES pour iniscr() et newterm() à 1

Description

void ncurses_filter ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Fait flasher le terminal (visual bell)

  • « ncurses_filter
  • ncurses_flushinp »
  • PHP Manual
  • Fonctions Ncurses
  • Fait flasher le terminal (visual bell)

ncurses_flash

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_flash — Fait flasher le terminal (visual bell)

Description

bool ncurses_flash ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Fait flasher le terminal et si ce n'est pas possible, envoie une alerte sonore (bell).

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

  • ncurses_beep() - Fait beeper le terminal


Vide le buffer d'entrée du clavier

  • « ncurses_flash
  • ncurses_getch »
  • PHP Manual
  • Fonctions Ncurses
  • Vide le buffer d'entrée du clavier

ncurses_flushinp

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_flushinp — Vide le buffer d'entrée du clavier

Description

bool ncurses_flushinp ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vide le buffer d'entrée du clavier que votre programme n'a pas encore lu.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.


Lit un caractère sur le clavier

  • « ncurses_flushinp
  • ncurses_getmaxyx »
  • PHP Manual
  • Fonctions Ncurses
  • Lit un caractère sur le clavier

ncurses_getch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getch — Lit un caractère sur le clavier

Description

int ncurses_getch ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne la taille d'une fenêtre

  • « ncurses_getch
  • ncurses_getmouse »
  • PHP Manual
  • Fonctions Ncurses
  • Retourne la taille d'une fenêtre

ncurses_getmaxyx

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getmaxyx — Retourne la taille d'une fenêtre

Description

void ncurses_getmaxyx ( resource $window , int &$y , int &$x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Place la taille verticale et la taille horizontale de la fenêtre window dans les variables fournies.

Les variables doivent être passées par référence, donc, elles seront modifiées lorsque l'utilisateur change la taille du terminal.

Liste de paramètres

window

La fenêtre mesurée

y

Sera défini pour la hauteur de la fenêtre

x

Sera défini pour la largeur de la fenêtre

Valeurs de retour

Aucune valeur n'est retournée.


Lit les événements souris

  • « ncurses_getmaxyx
  • ncurses_getyx »
  • PHP Manual
  • Fonctions Ncurses
  • Lit les événements souris

ncurses_getmouse

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getmouse — Lit les événements souris

Description

bool ncurses_getmouse ( array &$mevent )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

ncurses_getmouse() lit les événements souris placés dans la queue.

Liste de paramètres

mevent

Les options d'événements seront placées dans ce paramètre, qui doit être un tableau, passé par référence (voir l'exemple ci-dessous).

En cas de succès, un tableau associatif, contenant les clés suivantes, sera délivré :

  • "id" : Identifiant permettant de distinguer plusieurs périphériques

  • "x" : Position à l'écran, en abscisse relative, et comptée en caractères

  • "y" : Position à l'écran, en ordonnée relative, et comptée en caractères

  • "z" : Actuellement non supporté

  • "mmask" : Action de souris

Valeurs de retour

Retourne FALSE si un événement de souris est actuellement visible dans la fenêtre fournie, TRUE sinon.

Exemples

Exemple #1 Exemple avec ncurses_getmouse()

<?php
switch (ncurses_getch()){
  case NCURSES_KEY_MOUSE:
    if (!ncurses_getmouse($mevent)){
      if ($mevent["mmask"] & NCURSES_MOUSE_BUTTON1_PRESSED){
        $mouse_x = $mevent["x"]; // Sauve la position de la souris
        $mouse_y = $mevent["y"];
      }
    }
  break;

  default:
    /* .... */
}
?>

Voir aussi

  • ncurses_ungetmouse() - Ajoute un événement souris dans la queue


Retourne la position courante du curseur pour une fenêtre

  • « ncurses_getmouse
  • ncurses_halfdelay »
  • PHP Manual
  • Fonctions Ncurses
  • Retourne la position courante du curseur pour une fenêtre

ncurses_getyx

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getyx — Retourne la position courante du curseur pour une fenêtre

Description

void ncurses_getyx ( resource $window , int &$y , int &$x )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

y

x


Met le terminal en mode semi-retardé

  • « ncurses_getyx
  • ncurses_has_colors »
  • PHP Manual
  • Fonctions Ncurses
  • Met le terminal en mode semi-retardé

ncurses_halfdelay

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_halfdelay — Met le terminal en mode semi-retardé

Description

int ncurses_halfdelay ( int $tenth )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

tenth


Vérifie que le terminal supporte les couleurs

  • « ncurses_halfdelay
  • ncurses_has_ic »
  • PHP Manual
  • Fonctions Ncurses
  • Vérifie que le terminal supporte les couleurs

ncurses_has_colors

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_colors — Vérifie que le terminal supporte les couleurs

Description

bool ncurses_has_colors ( void )

Vérifie que le terminal supporte les couleurs. Cette fonction peut être utilisée pour écrire des programmes indépendants des capacités du terminal. ncurses doit être initialisé avec ncurses_init() avant d'appeler cette fonction.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le terminal supporte les couleurs, FALSE sinon.

Exemples

Exemple #1 Writing a string with a specified color to the screen

<?php
ncurses_init();

// Si le terminal supporte les couleurs, initialise et active les couleurs
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Écrit une chaîne à l'écran
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Envoi à l'écran
ncurses_refresh();

ncurses_end();
?>

Voir aussi

  • ncurses_can_change_color() - Vérifie si le terminal peut changer de couleur
  • ncurses_start_color() - Active les couleurs


Vérifie les capacités d'insertion et d'effacement

  • « ncurses_has_colors
  • ncurses_has_il »
  • PHP Manual
  • Fonctions Ncurses
  • Vérifie les capacités d'insertion et d'effacement

ncurses_has_ic

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_ic — Vérifie les capacités d'insertion et d'effacement

Description

bool ncurses_has_ic ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie les capacités d'insertion et d'effacement du terminal.

Valeurs de retour

Retourne TRUE lorsque le terminal a ces capacités, FALSE sinon.

Voir aussi

  • ncurses_has_il() - Vérifie les capacités d'insertion et d'effacement


Vérifie les capacités d'insertion et d'effacement

  • « ncurses_has_ic
  • ncurses_has_key »
  • PHP Manual
  • Fonctions Ncurses
  • Vérifie les capacités d'insertion et d'effacement

ncurses_has_il

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_il — Vérifie les capacités d'insertion et d'effacement

Description

bool ncurses_has_il ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie les capacités d'insertion et d'effacement du terminal.

Valeurs de retour

Retourne TRUE si le terminal a ces capacités, FALSE sinon.

Voir aussi

  • ncurses_has_ic() - Vérifie les capacités d'insertion et d'effacement


Vérifie la présence des touches de fonctions sur le clavier

  • « ncurses_has_il
  • ncurses_hide_panel »
  • PHP Manual
  • Fonctions Ncurses
  • Vérifie la présence des touches de fonctions sur le clavier

ncurses_has_key

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_key — Vérifie la présence des touches de fonctions sur le clavier

Description

int ncurses_has_key ( int $keycode )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

keycode


Retire un conteneur de la pile, pour le rendre invisible

  • « ncurses_has_key
  • ncurses_hline »
  • PHP Manual
  • Fonctions Ncurses
  • Retire un conteneur de la pile, pour le rendre invisible

ncurses_hide_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_hide_panel — Retire un conteneur de la pile, pour le rendre invisible

Description

int ncurses_hide_panel ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel


Dessine une ligne horizontale à la position courante, en utilisant un caractère et une taille maximale

  • « ncurses_hide_panel
  • ncurses_inch »
  • PHP Manual
  • Fonctions Ncurses
  • Dessine une ligne horizontale à la position courante, en utilisant un caractère et une taille maximale

ncurses_hline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_hline — Dessine une ligne horizontale à la position courante, en utilisant un caractère et une taille maximale

Description

int ncurses_hline ( int $charattr , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

charattr

n


Lit le caractère et ses attributs à la position courante

  • « ncurses_hline
  • ncurses_init_color »
  • PHP Manual
  • Fonctions Ncurses
  • Lit le caractère et ses attributs à la position courante

ncurses_inch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_inch — Lit le caractère et ses attributs à la position courante

Description

string ncurses_inch ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le caractère de la position courante.

Valeurs de retour

Retourne le caractère.


Configure une nouvelle valeur RGB pour une couleur

  • « ncurses_inch
  • ncurses_init_pair »
  • PHP Manual
  • Fonctions Ncurses
  • Configure une nouvelle valeur RGB pour une couleur

ncurses_init_color

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init_color — Configure une nouvelle valeur RGB pour une couleur

Description

int ncurses_init_color ( int $color , int $r , int $g , int $b )

Définit ou redéfinit une couleur. Lorsque cette fonction est appelée, toutes les occurrences d'une couleur donnée à l'écran, s'il y en a, changent immédiatement de définition.

Le terminal doit supporter les couleurs, et avoir été initialisé avec la fonction ncurses_start_color() avant d'appeler cette fonction. De plus, le terminal doit avoir être capable de changer les couleurs, ce qui peut être vérifié avec la fonction ncurses_can_change_color().

Liste de paramètres

color

Le numéro d'identification de la couleur à redéfinir. Cela peut être une des constantes de couleurs.

r

Une valeur de couleur pour le rouge, entre 0 et 1000.

g

Une valeur de couleur pour le vert, entre 0 et 1000.

b

Une valeur de couleur pour le bleu, entre 0 et 1000.

Valeurs de retour

Retourne -1 si la fonction a réussi, et 0 si ncurses ou les couleurs du terminal n'ont pas été initialisées, ou que le terminal ne supporte pas le changement de couleurs.

Voir aussi

  • ncurses_color_content() - Lit la valeur RGB d'une couleur
  • ncurses_start_color() - Active les couleurs


Alloue une paire de couleur

  • « ncurses_init_color
  • ncurses_init »
  • PHP Manual
  • Fonctions Ncurses
  • Alloue une paire de couleur

ncurses_init_pair

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init_pair — Alloue une paire de couleur

Description

int ncurses_init_pair ( int $pair , int $fg , int $bg )

Définit ou redéfinit une paire de couleur pour l'affichage à l'écran : fond d'écran et affichage. Si la paire de couleur a déjà été initialisée, l'écran est rafraîchit et toutes les occurrences sont modifiées pour refléter la nouvelle définition.

Le support des couleurs doit avoir été initialisé avec ncurses_start_color() avant d'appeler cette fonction. La première paire de couleur (numéro 0) est supposée être blanc sur noir pardéfaut, mais peut être modifiée avec ncurses_assume_default_colors().

Liste de paramètres

pair

Le numéro de la paire à définir.

fg

La couleur d'affichage pour la paire de couleurs. Doit être une des couleurs prédéfinies ou une couleur définie par ncurses_init_color(), si le terminal est capable de changer les couleurs.

bg

La couleur de fond pour la paire de couleurs. Doit être une des couleurs prédéfinies ou une couleur définie par ncurses_init_color(), si le terminal est capable de changer les couleurs.

Valeurs de retour

Retourne -1 si la fonction réussit, et 0 si ncurses ou le support des couleurs n'a pas été initialisé.

Notes

Notez que le support du changement de couleurs n'est pas nécessaire pour définir une paire de couleurs pré-existante, mais uniquement pour changer la définition des composants (rouge, vert et bleu) des couleurs elles-mêmes, via ncurses_init_color().

Exemples

Exemple #1 Écriture d'une chaîne dans une couleur donnée

<?php
ncurses_init();

// Si le terminal supporte les couleurs, initialisation et activation
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Écriture d'une chaîne à la position donnée
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Envoi à l'écran
ncurses_refresh();

ncurses_end();
?>

Voir aussi

  • ncurses_pair_content() - Retourne les couleurs de fond et d'affichage d'une paire
  • ncurses_start_color() - Active les couleurs


Initialise ncurses

  • « ncurses_init_pair
  • ncurses_insch »
  • PHP Manual
  • Fonctions Ncurses
  • Initialise ncurses

ncurses_init

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init — Initialise ncurses

Description

void ncurses_init ( void )

Initialise l'interface ncurses et doit être utilisé avant n'importe quelle autre fonction ncurses.

Notez que ncurses_end() doit être appelé avant la fin du programme, ou alors le terminal ne sera pas remis dans sont mode non-visuel correct.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ncurses_end() - Cesse l'utilisation de ncurses et efface l'écran


Insère un caractère et décale le reste de la ligne vers la droite, y compris le caractère courant

  • « ncurses_init
  • ncurses_insdelln »
  • PHP Manual
  • Fonctions Ncurses
  • Insère un caractère et décale le reste de la ligne vers la droite, y compris le caractère courant

ncurses_insch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insch — Insère un caractère et décale le reste de la ligne vers la droite, y compris le caractère courant

Description

int ncurses_insch ( int $character )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

character


Insère des lignes devant la ligne courante en scrollant vers le bas (des nombres négatifs donneront un scroll vers le haut)

  • « ncurses_insch
  • ncurses_insertln »
  • PHP Manual
  • Fonctions Ncurses
  • Insère des lignes devant la ligne courante en scrollant vers le bas (des nombres négatifs donneront un scroll vers le haut)

ncurses_insdelln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insdelln — Insère des lignes devant la ligne courante en scrollant vers le bas (des nombres négatifs donneront un scroll vers le haut)

Description

int ncurses_insdelln ( int $count )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

count


Insère une ligne et décale le reste de l'écran vers le bas

  • « ncurses_insdelln
  • ncurses_insstr »
  • PHP Manual
  • Fonctions Ncurses
  • Insère une ligne et décale le reste de l'écran vers le bas

ncurses_insertln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insertln — Insère une ligne et décale le reste de l'écran vers le bas

Description

int ncurses_insertln ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Insère une nouvelle ligne au-dessus de la ligne courante. La ligne du bas de l'écran sera perdue.


Insère une chaîne à la position courante, et décale le reste de la chaîne à droite

  • « ncurses_insertln
  • ncurses_instr »
  • PHP Manual
  • Fonctions Ncurses
  • Insère une chaîne à la position courante, et décale le reste de la chaîne à droite

ncurses_insstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insstr — Insère une chaîne à la position courante, et décale le reste de la chaîne à droite

Description

int ncurses_insstr ( string $text )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text


Lit une chaîne depuis le terminal

  • « ncurses_insstr
  • ncurses_isendwin »
  • PHP Manual
  • Fonctions Ncurses
  • Lit une chaîne depuis le terminal

ncurses_instr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_instr — Lit une chaîne depuis le terminal

Description

int ncurses_instr ( string &$buffer )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Lit une chaîne depuis le terminal et retourne le nombre de caractères lus depuis la position courante jusqu'à la fin de la ligne.

Liste de paramètres

buffer

Les caractères. Les attributs seront supprimés.

Valeurs de retour

Retourne le nombre de caractères.


Vérifie si ncurses est en mode endwin

  • « ncurses_instr
  • ncurses_keyok »
  • PHP Manual
  • Fonctions Ncurses
  • Vérifie si ncurses est en mode endwin

ncurses_isendwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_isendwin — Vérifie si ncurses est en mode endwin

Description

bool ncurses_isendwin ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie si ncurses est en mode endwin.

Valeurs de retour

Retourne TRUE, si ncurses_end() a été appelée sans aucun appel subséquent à ncurses_wrefresh(), FALSE sinon.

Voir aussi

  • ncurses_end() - Cesse l'utilisation de ncurses et efface l'écran
  • ncurses_wrefresh() - Rafraîchit la fenêtre sur l'écran du terminal


Active ou désactive un code de clé (keycode)

  • « ncurses_isendwin
  • ncurses_keypad »
  • PHP Manual
  • Fonctions Ncurses
  • Active ou désactive un code de clé (keycode)

ncurses_keyok

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_keyok — Active ou désactive un code de clé (keycode)

Description

int ncurses_keyok ( int $keycode , bool $enable )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

keycode

enable


Active ou désactive le keypad

  • « ncurses_keyok
  • ncurses_killchar »
  • PHP Manual
  • Fonctions Ncurses
  • Active ou désactive le keypad

ncurses_keypad

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_keypad — Active ou désactive le keypad

Description

int ncurses_keypad ( resource $window , bool $bf )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

bf


Retourne la ligne du caractère actuellement supprimé

  • « ncurses_keypad
  • ncurses_longname »
  • PHP Manual
  • Fonctions Ncurses
  • Retourne la ligne du caractère actuellement supprimé

ncurses_killchar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_killchar — Retourne la ligne du caractère actuellement supprimé

Description

string ncurses_killchar ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la ligne du caractère actuellement supprimé.

Valeurs de retour

Retourne le caractère supprimé.

Voir aussi

  • ncurses_erasechar() - Lit le caractère qui se fait effacer


Retourne la description du terminal

  • « ncurses_killchar
  • ncurses_meta »
  • PHP Manual
  • Fonctions Ncurses
  • Retourne la description du terminal

ncurses_longname

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_longname — Retourne la description du terminal

Description

string ncurses_longname ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne une description complète du terminal.

Valeurs de retour

Retourne une description complète du terminal. La description est tronquée à 128 caractères. En cas d'erreur, FALSE sera retourné.

Voir aussi

  • ncurses_termname() - Retourne le nom court du terminal


Active/désactive les informations de méta clé 8-bits

  • « ncurses_longname
  • ncurses_mouse_trafo »
  • PHP Manual
  • Fonctions Ncurses
  • Active/désactive les informations de méta clé 8-bits

ncurses_meta

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_meta — Active/désactive les informations de méta clé 8-bits

Description

int ncurses_meta ( resource $window , bool $8bit )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

8bit


Transforme les coordonnées

  • « ncurses_meta
  • ncurses_mouseinterval »
  • PHP Manual
  • Fonctions Ncurses
  • Transforme les coordonnées

ncurses_mouse_trafo

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mouse_trafo — Transforme les coordonnées

Description

bool ncurses_mouse_trafo ( int &$y , int &$x , bool $toscreen )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

toscreen


Configure les délais entre les clics de souris

  • « ncurses_mouse_trafo
  • ncurses_mousemask »
  • PHP Manual
  • Fonctions Ncurses
  • Configure les délais entre les clics de souris

ncurses_mouseinterval

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mouseinterval — Configure les délais entre les clics de souris

Description

int ncurses_mouseinterval ( int $milliseconds )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

milliseconds


Configure les événements de souris à surveiller

  • « ncurses_mouseinterval
  • ncurses_move_panel »
  • PHP Manual
  • Fonctions Ncurses
  • Configure les événements de souris à surveiller

ncurses_mousemask

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mousemask — Configure les événements de souris à surveiller

Description

int ncurses_mousemask ( int $newmask , int &$oldmask )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Configure les événements de souris à surveiller. Par défaut, aucun événement souris n'est rapporté.

Les événements souris sont représentés par NCURSES_KEY_MOUSE dans la fonction ncurses_wgetch(). Pour lire les données d'événements dans la queue, utilisez la fonction ncurses_getmouse().

Liste de paramètres

newmask

Les options de masque de souris sont les constantes suivantes :

  • NCURSES_BUTTON1_PRESSED

  • NCURSES_BUTTON1_RELEASED

  • NCURSES_BUTTON1_CLICKED

  • NCURSES_BUTTON1_DOUBLE_CLICKED

  • NCURSES_BUTTON1_TRIPLE_CLICKED

  • NCURSES_BUTTON2_PRESSED

  • NCURSES_BUTTON2_RELEASED

  • NCURSES_BUTTON2_CLICKED

  • NCURSES_BUTTON2_DOUBLE_CLICKED

  • NCURSES_BUTTON2_TRIPLE_CLICKED

  • NCURSES_BUTTON3_PRESSED

  • NCURSES_BUTTON3_RELEASED

  • NCURSES_BUTTON3_CLICKED

  • NCURSES_BUTTON3_DOUBLE_CLICKED

  • NCURSES_BUTTON3_TRIPLE_CLICKED

  • NCURSES_BUTTON4_PRESSED

  • NCURSES_BUTTON4_RELEASED

  • NCURSES_BUTTON4_CLICKED

  • NCURSES_BUTTON4_DOUBLE_CLICKED

  • NCURSES_BUTTON4_TRIPLE_CLICKED

  • NCURSES_BUTTON_SHIFT>

  • NCURSES_BUTTON_CTRL

  • NCURSES_BUTTON_ALT

  • NCURSES_ALL_MOUSE_EVENTS

  • NCURSES_REPORT_MOUSE_POSITION

Comme effet secondaire, utiliser la valeur de 0 avec le paramètre newmask désactive la souris. Lui donner une valeur positive non nulle réactive la souris.

oldmask

Ce paramètre sera défini avec la valeur du masque précédent.

Valeurs de retour

Retourne le masque des événements rapportable. En cas d'échec complet, elle retourne 0.

Exemples

Exemple #1 Exemple avec ncurses_mousemask()

<?php
$newmask = NCURSES_BUTTON1_CLICKED + NCURSES_BUTTON1_RELEASED;
$mask = ncurses_mousemask($newmask, $oldmask);
if ($mask & $newmask){
    printf("Toutes les options de souris spécifiées sont supportées\n");
}
?>

Voir aussi

  • ncurses_getch() - Lit un caractère sur le clavier
  • ncurses_getmouse() - Lit les événements souris
  • ncurses_ungetmouse() - Ajoute un événement souris dans la queue


Déplace un conteneur pour que son coin supérieur gauche soit aux coordonnées [startx, starty]

  • « ncurses_mousemask
  • ncurses_move »
  • PHP Manual
  • Fonctions Ncurses
  • Déplace un conteneur pour que son coin supérieur gauche soit aux coordonnées [startx, starty]

ncurses_move_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_move_panel — Déplace un conteneur pour que son coin supérieur gauche soit aux coordonnées [startx, starty]

Description

int ncurses_move_panel ( resource $panel , int $startx , int $starty )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

startx

starty


Déplace la position d'affichage

  • « ncurses_move_panel
  • ncurses_mvaddch »
  • PHP Manual
  • Fonctions Ncurses
  • Déplace la position d'affichage

ncurses_move

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_move — Déplace la position d'affichage

Description

int ncurses_move ( int $y , int $x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x


Déplace la position courante et ajoute un caractère

  • « ncurses_move
  • ncurses_mvaddchnstr »
  • PHP Manual
  • Fonctions Ncurses
  • Déplace la position courante et ajoute un caractère

ncurses_mvaddch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddch — Déplace la position courante et ajoute un caractère

Description

int ncurses_mvaddch ( int $y , int $x , int $c )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

c


Déplace la position et ajoute la chaîne attribuée avec la taille donnée

  • « ncurses_mvaddch
  • ncurses_mvaddchstr »
  • PHP Manual
  • Fonctions Ncurses
  • Déplace la position et ajoute la chaîne attribuée avec la taille donnée

ncurses_mvaddchnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddchnstr — Déplace la position et ajoute la chaîne attribuée avec la taille donnée

Description

int ncurses_mvaddchnstr ( int $y , int $x , string $s , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

s

n


Déplace la position et ajoute une chaîne attribuée

  • « ncurses_mvaddchnstr
  • ncurses_mvaddnstr »
  • PHP Manual
  • Fonctions Ncurses
  • Déplace la position et ajoute une chaîne attribuée

ncurses_mvaddchstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddchstr — Déplace la position et ajoute une chaîne attribuée

Description

int ncurses_mvaddchstr ( int $y , int $x , string $s )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

s


Déplace la position et ajoute une chaîne de taille donnée

  • « ncurses_mvaddchstr
  • ncurses_mvaddstr »
  • PHP Manual
  • Fonctions Ncurses
  • Déplace la position et ajoute une chaîne de taille donnée

ncurses_mvaddnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddnstr — Déplace la position et ajoute une chaîne de taille donnée

Description

int ncurses_mvaddnstr ( int $y , int $x , string $s , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

s

n


Déplace la position et ajoute une chaîne

  • « ncurses_mvaddnstr
  • ncurses_mvcur »
  • PHP Manual
  • Fonctions Ncurses
  • Déplace la position et ajoute une chaîne

ncurses_mvaddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddstr — Déplace la position et ajoute une chaîne

Description

int ncurses_mvaddstr ( int $y , int $x , string $s )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

s


Déplace immédiatement le curseur

  • « ncurses_mvaddstr
  • ncurses_mvdelch »
  • PHP Manual
  • Fonctions Ncurses
  • Déplace immédiatement le curseur

ncurses_mvcur

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvcur — Déplace immédiatement le curseur

Description

int ncurses_mvcur ( int $old_y , int $old_x , int $new_y , int $new_x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

old_y

old_x

new_y

new_x


Déplace la position et efface le caractère, puis décale le reste de la ligne à gauche

  • « ncurses_mvcur
  • ncurses_mvgetch »
  • PHP Manual
  • Fonctions Ncurses
  • Déplace la position et efface le caractère, puis décale le reste de la ligne à gauche

ncurses_mvdelch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvdelch — Déplace la position et efface le caractère, puis décale le reste de la ligne à gauche

Description

int ncurses_mvdelch ( int $y , int $x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x


Déplace la position et lit le caractère à la nouvelle position

  • « ncurses_mvdelch
  • ncurses_mvhline »
  • PHP Manual
  • Fonctions Ncurses
  • Déplace la position et lit le caractère à la nouvelle position

ncurses_mvgetch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvgetch — Déplace la position et lit le caractère à la nouvelle position

Description

int ncurses_mvgetch ( int $y , int $x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x


Choisi une nouvelle position et dessine une ligne horizontale avec le caractère donné, et de taille maximale donnée

  • « ncurses_mvgetch
  • ncurses_mvinch »
  • PHP Manual
  • Fonctions Ncurses
  • Choisi une nouvelle position et dessine une ligne horizontale avec le caractère donné, et de taille maximale donnée

ncurses_mvhline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvhline — Choisi une nouvelle position et dessine une ligne horizontale avec le caractère donné, et de taille maximale donnée

Description

int ncurses_mvhline ( int $y , int $x , int $attrchar , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

attrchar

n


Déplace la position et lit le caractère à la nouvelle position

  • « ncurses_mvhline
  • ncurses_mvvline »
  • PHP Manual
  • Fonctions Ncurses
  • Déplace la position et lit le caractère à la nouvelle position

ncurses_mvinch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvinch — Déplace la position et lit le caractère à la nouvelle position

Description

int ncurses_mvinch ( int $y , int $x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x


Modifie la position et dessine une ligne verticale avec le caractère donné, de taille maximale donnée

  • « ncurses_mvinch
  • ncurses_mvwaddstr »
  • PHP Manual
  • Fonctions Ncurses
  • Modifie la position et dessine une ligne verticale avec le caractère donné, de taille maximale donnée

ncurses_mvvline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvvline — Modifie la position et dessine une ligne verticale avec le caractère donné, de taille maximale donnée

Description

int ncurses_mvvline ( int $y , int $x , int $attrchar , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

attrchar

n


Ajoute une chaîne à une nouvelle position dans la fenêtre

  • « ncurses_mvvline
  • ncurses_napms »
  • PHP Manual
  • Fonctions Ncurses
  • Ajoute une chaîne à une nouvelle position dans la fenêtre

ncurses_mvwaddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvwaddstr — Ajoute une chaîne à une nouvelle position dans la fenêtre

Description

int ncurses_mvwaddstr ( resource $window , int $y , int $x , string $text )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

y

x

text


Fait une pause

  • « ncurses_mvwaddstr
  • ncurses_new_panel »
  • PHP Manual
  • Fonctions Ncurses
  • Fait une pause

ncurses_napms

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_napms — Fait une pause

Description

int ncurses_napms ( int $milliseconds )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

milliseconds


Crée un nouveau conteneur et l'associe à une fenêtre

  • « ncurses_napms
  • ncurses_newpad »
  • PHP Manual
  • Fonctions Ncurses
  • Crée un nouveau conteneur et l'associe à une fenêtre

ncurses_new_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_new_panel — Crée un nouveau conteneur et l'associe à une fenêtre

Description

resource ncurses_new_panel ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window


Crée un nouveau pad (fenêtre)

  • « ncurses_new_panel
  • ncurses_newwin »
  • PHP Manual
  • Fonctions Ncurses
  • Crée un nouveau pad (fenêtre)

ncurses_newpad

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_newpad — Crée un nouveau pad (fenêtre)

Description

resource ncurses_newpad ( int $rows , int $cols )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

rows

cols


Crée une nouvelle fenêtre

  • « ncurses_newpad
  • ncurses_nl »
  • PHP Manual
  • Fonctions Ncurses
  • Crée une nouvelle fenêtre

ncurses_newwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_newwin — Crée une nouvelle fenêtre

Description

resource ncurses_newwin ( int $rows , int $cols , int $y , int $x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée une nouvelle fenêtre pour y dessiner des éléments.

Lors de la création de la nouvelle fenêtre, pensez à utiliser ncurses_getmaxyx() pour repérer les espaces disponibles, sachant qu'un terminal est individuel et peut varier.

Liste de paramètres

rows

Nombre de lignes

cols

Nombre de colonnes

y

Y : coordonnée de l'origine

x

X : coordonnée de l'origine

Valeurs de retour

Retourne un identifiant de ressource pour la nouvelle fenêtre.


Convertit les nouvelles lignes et retours chariot en sauts de ligne

  • « ncurses_newwin
  • ncurses_nocbreak »
  • PHP Manual
  • Fonctions Ncurses
  • Convertit les nouvelles lignes et retours chariot en sauts de ligne

ncurses_nl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nl — Convertit les nouvelles lignes et retours chariot en sauts de ligne

Description

bool ncurses_nl ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Passe le terminal en mode cooked

  • « ncurses_nl
  • ncurses_noecho »
  • PHP Manual
  • Fonctions Ncurses
  • Passe le terminal en mode cooked

ncurses_nocbreak

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nocbreak — Passe le terminal en mode cooked

Description

bool ncurses_nocbreak ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le terminal en mode normal (cooked). Initialement, le terminal peut ou peut ne pas être en mode cbreak, comme mode hérité. Par conséquent, un program doit appeler ncurses_cbreak() et ncurses_nocbreak() explicitement.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

  • ncurses_cbreak() - Désactive la bufferisation d'entrée


Désactive l'écho clavier

  • « ncurses_nocbreak
  • ncurses_nonl »
  • PHP Manual
  • Fonctions Ncurses
  • Désactive l'écho clavier

ncurses_noecho

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noecho — Désactive l'écho clavier

Description

bool ncurses_noecho ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Annule l'effet d'écho des caractères tapés à l'écran.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

  • ncurses_echo() - Active l'écho d'entrée clavier
  • ncurses_getch() - Lit un caractère sur le clavier


Ne convertit par les nouvelles lignes et retours chariot en sauts de ligne

  • « ncurses_noecho
  • ncurses_noqiflush »
  • PHP Manual
  • Fonctions Ncurses
  • Ne convertit par les nouvelles lignes et retours chariot en sauts de ligne

ncurses_nonl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nonl — Ne convertit par les nouvelles lignes et retours chariot en sauts de ligne

Description

bool ncurses_nonl ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Ne vide pas les buffers sur réception des caractères de signaux

  • « ncurses_nonl
  • ncurses_noraw »
  • PHP Manual
  • Fonctions Ncurses
  • Ne vide pas les buffers sur réception des caractères de signaux

ncurses_noqiflush

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noqiflush — Ne vide pas les buffers sur réception des caractères de signaux

Description

void ncurses_noqiflush ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Déconfigure le mode brut du terminal

  • « ncurses_noqiflush
  • ncurses_pair_content »
  • PHP Manual
  • Fonctions Ncurses
  • Déconfigure le mode brut du terminal

ncurses_noraw

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noraw — Déconfigure le mode brut du terminal

Description

bool ncurses_noraw ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Déconfigure le mode brut du terminal. Le mode brut est similaire au mode cbreak, car les caractères tapés sont immédiatement passés au programme. La différence est qu'en mode brut, les caractères d'interruption, de fin de programme, de suspension et de suivi du flux de caractères sont passés sans être interprétés.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

  • ncurses_raw() - Passe le terminal en mode brut (raw)
  • ncurses_cbreak() - Désactive la bufferisation d'entrée
  • ncurses_nocbreak() - Passe le terminal en mode cooked


Retourne les couleurs de fond et d'affichage d'une paire

  • « ncurses_noraw
  • ncurses_panel_above »
  • PHP Manual
  • Fonctions Ncurses
  • Retourne les couleurs de fond et d'affichage d'une paire

ncurses_pair_content

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_pair_content — Retourne les couleurs de fond et d'affichage d'une paire

Description

int ncurses_pair_content ( int $pair , int &$f , int &$b )

ncurses_pair_content() lit les couleurs de fond et de forme qui constitue une paire. Le support des couleurs du terminal doivent avoir été initialisées avec la fonction ncurses_start_color() avant d'appeler cette fonction.

Liste de paramètres

pair

Le numéro de la paire de couleur qu'il faut lire.

f

Une référence dans laquelle les informations de la couleur d'affichage sera placée. Les informations retournées seront un numéro de couleur parmi les couleurs prédéfinies ou une couleur définie précédemment par ncurses_init_color(), si le terminal supporte le changement de couleur.

b

Une référence dans laquelle les informations de la couleur de fond sera placée. Les informations retournées seront un numéro de couleur parmi les couleurs prédéfinies ou une couleur définie précédemment par ncurses_init_color(), si le terminal supporte le changement de couleur.

Valeurs de retour

Retourne -1 si la fonction a réussi, et 0 si ncurses ou le support des couleurs du terminal n'ont pas été initialisées.

Voir aussi

  • ncurses_init_pair() - Alloue une paire de couleur
  • ncurses_start_color() - Active les couleurs


Retourne le conteneur au-dessus du conteneur

  • « ncurses_pair_content
  • ncurses_panel_below »
  • PHP Manual
  • Fonctions Ncurses
  • Retourne le conteneur au-dessus du conteneur

ncurses_panel_above

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_above — Retourne le conteneur au-dessus du conteneur

Description

resource ncurses_panel_above ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

Valeurs de retour

Si le conteneur est null, retourne le dernier conteneur de la pile.


Retourne le conteneur sous le conteneur

  • « ncurses_panel_above
  • ncurses_panel_window »
  • PHP Manual
  • Fonctions Ncurses
  • Retourne le conteneur sous le conteneur

ncurses_panel_below

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_below — Retourne le conteneur sous le conteneur

Description

resource ncurses_panel_below ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

Liste de paramètres

Si le conteneur est null, le premier conteneur de la pile est retourné.


Retourne la fenêtre associée avec un conteneur

  • « ncurses_panel_below
  • ncurses_pnoutrefresh »
  • PHP Manual
  • Fonctions Ncurses
  • Retourne la fenêtre associée avec un conteneur

ncurses_panel_window

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_window — Retourne la fenêtre associée avec un conteneur

Description

resource ncurses_panel_window ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel


Copie une région depuis un pad dans un écran virtuel

  • « ncurses_panel_window
  • ncurses_prefresh »
  • PHP Manual
  • Fonctions Ncurses
  • Copie une région depuis un pad dans un écran virtuel

ncurses_pnoutrefresh

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_pnoutrefresh — Copie une région depuis un pad dans un écran virtuel

Description

int ncurses_pnoutrefresh ( resource $pad , int $pminrow , int $pmincol , int $sminrow , int $smincol , int $smaxrow , int $smaxcol )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol


Copie une région depuis un pad dans l'écran virtuel

  • « ncurses_pnoutrefresh
  • ncurses_putp »
  • PHP Manual
  • Fonctions Ncurses
  • Copie une région depuis un pad dans l'écran virtuel

ncurses_prefresh

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_prefresh — Copie une région depuis un pad dans l'écran virtuel

Description

int ncurses_prefresh ( resource $pad , int $pminrow , int $pmincol , int $sminrow , int $smincol , int $smaxrow , int $smaxcol )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol


Applique l'information d'espacement à la chaîne et l'affiche

  • « ncurses_prefresh
  • ncurses_qiflush »
  • PHP Manual
  • Fonctions Ncurses
  • Applique l'information d'espacement à la chaîne et l'affiche

ncurses_putp

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_putp — Applique l'information d'espacement à la chaîne et l'affiche

Description

int ncurses_putp ( string $text )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text


Vide les buffers après détection d'un caractère de signal

  • « ncurses_putp
  • ncurses_raw »
  • PHP Manual
  • Fonctions Ncurses
  • Vide les buffers après détection d'un caractère de signal

ncurses_qiflush

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_qiflush — Vide les buffers après détection d'un caractère de signal

Description

void ncurses_qiflush ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Passe le terminal en mode brut (raw)

  • « ncurses_qiflush
  • ncurses_refresh »
  • PHP Manual
  • Fonctions Ncurses
  • Passe le terminal en mode brut (raw)

ncurses_raw

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_raw — Passe le terminal en mode brut (raw)

Description

bool ncurses_raw ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Place le terminal en mode brut. Le mode brut est similaire au mode cbreak, car les caractères tapés sont immédiatement passés au programme. La différence est qu'en mode brut, les caractères d'interruption, de fin de programme, de suspension et de suivi du flux de caractères sont passés sans être interprétés.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

  • ncurses_noraw() - Déconfigure le mode brut du terminal
  • ncurses_cbreak() - Désactive la bufferisation d'entrée
  • ncurses_nocbreak() - Passe le terminal en mode cooked


Rafraîchit l'écran

  • « ncurses_raw
  • ncurses_replace_panel »
  • PHP Manual
  • Fonctions Ncurses
  • Rafraîchit l'écran

ncurses_refresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_refresh — Rafraîchit l'écran

Description

int ncurses_refresh ( int $ch )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

ch


Remplace la fenêtre associée à un conteneur

  • « ncurses_refresh
  • ncurses_reset_prog_mode »
  • PHP Manual
  • Fonctions Ncurses
  • Remplace la fenêtre associée à un conteneur

ncurses_replace_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_replace_panel — Remplace la fenêtre associée à un conteneur

Description

int ncurses_replace_panel ( resource $panel , resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

window


Restaure le mode prog sauvé par def_prog_mode

  • « ncurses_replace_panel
  • ncurses_reset_shell_mode »
  • PHP Manual
  • Fonctions Ncurses
  • Restaure le mode prog sauvé par def_prog_mode

ncurses_reset_prog_mode

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_reset_prog_mode — Restaure le mode prog sauvé par def_prog_mode

Description

int ncurses_reset_prog_mode ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Restaure le mode shell, mode sauvé par def_shell_mode

  • « ncurses_reset_prog_mode
  • ncurses_resetty »
  • PHP Manual
  • Fonctions Ncurses
  • Restaure le mode shell, mode sauvé par def_shell_mode

ncurses_reset_shell_mode

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_reset_shell_mode — Restaure le mode shell, mode sauvé par def_shell_mode

Description

int ncurses_reset_shell_mode ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Rétablit le terminal sauvé

  • « ncurses_reset_shell_mode
  • ncurses_savetty »
  • PHP Manual
  • Fonctions Ncurses
  • Rétablit le terminal sauvé

ncurses_resetty

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_resetty — Rétablit le terminal sauvé

Description

bool ncurses_resetty ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Rétablit le terminal sauvé par la fonction ncurses_savetty().

Valeurs de retour

Retourne toujours FALSE.

Voir aussi

  • ncurses_savetty() - Sauve l'état du terminal


Sauve l'état du terminal

  • « ncurses_resetty
  • ncurses_scr_dump »
  • PHP Manual
  • Fonctions Ncurses
  • Sauve l'état du terminal

ncurses_savetty

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_savetty — Sauve l'état du terminal

Description

bool ncurses_savetty ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sauve l'état courant du terminal. L'état courant du terminal peut être rétabli avec la fonction ncurses_resetty().

Valeurs de retour

Retourne toujours FALSE.

Voir aussi

  • ncurses_resetty() - Rétablit le terminal sauvé


Sauve un écran dans un fichier

  • « ncurses_savetty
  • ncurses_scr_init »
  • PHP Manual
  • Fonctions Ncurses
  • Sauve un écran dans un fichier

ncurses_scr_dump

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_dump — Sauve un écran dans un fichier

Description

int ncurses_scr_dump ( string $filename )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename


Initialise un écran depuis un fichier de sauvegarde

  • « ncurses_scr_dump
  • ncurses_scr_restore »
  • PHP Manual
  • Fonctions Ncurses
  • Initialise un écran depuis un fichier de sauvegarde

ncurses_scr_init

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_init — Initialise un écran depuis un fichier de sauvegarde

Description

int ncurses_scr_init ( string $filename )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename


Rétablit un écran depuis un fichier de sauvegarde

  • « ncurses_scr_init
  • ncurses_scr_set »
  • PHP Manual
  • Fonctions Ncurses
  • Rétablit un écran depuis un fichier de sauvegarde

ncurses_scr_restore

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_restore — Rétablit un écran depuis un fichier de sauvegarde

Description

int ncurses_scr_restore ( string $filename )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename


Configure un écran depuis un fichier de sauvegarde

  • « ncurses_scr_restore
  • ncurses_scrl »
  • PHP Manual
  • Fonctions Ncurses
  • Configure un écran depuis un fichier de sauvegarde

ncurses_scr_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_set — Configure un écran depuis un fichier de sauvegarde

Description

int ncurses_scr_set ( string $filename )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename


Scrolle le contenu de la fenêtre vers le haut ou le bas, sans changer la position courante

  • « ncurses_scr_set
  • ncurses_show_panel »
  • PHP Manual
  • Fonctions Ncurses
  • Scrolle le contenu de la fenêtre vers le haut ou le bas, sans changer la position courante

ncurses_scrl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scrl — Scrolle le contenu de la fenêtre vers le haut ou le bas, sans changer la position courante

Description

int ncurses_scrl ( int $count )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

count


Place un conteneur invisible en haut de la pile, pour le rendre visible

  • « ncurses_scrl
  • ncurses_slk_attr »
  • PHP Manual
  • Fonctions Ncurses
  • Place un conteneur invisible en haut de la pile, pour le rendre visible

ncurses_show_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_show_panel — Place un conteneur invisible en haut de la pile, pour le rendre visible

Description

int ncurses_show_panel ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel


Retourne l'attribut de la clé soft label courante

  • « ncurses_show_panel
  • ncurses_slk_attroff »
  • PHP Manual
  • Fonctions Ncurses
  • Retourne l'attribut de la clé soft label courante

ncurses_slk_attr

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attr — Retourne l'attribut de la clé soft label courante

Description

int ncurses_slk_attr ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne l'attribut de la clé soft label.

Valeurs de retour

L'attribut, sous la forme d'un entier.


Désactive l'attribut donné pour les étiquettes des function-key (fonctions clés)

  • « ncurses_slk_attr
  • ncurses_slk_attron »
  • PHP Manual
  • Fonctions Ncurses
  • Désactive l'attribut donné pour les étiquettes des function-key (fonctions clés)

ncurses_slk_attroff

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attroff — Désactive l'attribut donné pour les étiquettes des function-key (fonctions clés)

Description

int ncurses_slk_attroff ( int $intarg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg


Active l'attribut donné pour les étiquettes des function-key (fonctions clés)

  • « ncurses_slk_attroff
  • ncurses_slk_attrset »
  • PHP Manual
  • Fonctions Ncurses
  • Active l'attribut donné pour les étiquettes des function-key (fonctions clés)

ncurses_slk_attron

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attron — Active l'attribut donné pour les étiquettes des function-key (fonctions clés)

Description

int ncurses_slk_attron ( int $intarg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg


Définit les attributs donnés à une étiquette function-key

  • « ncurses_slk_attron
  • ncurses_slk_clear »
  • PHP Manual
  • Fonctions Ncurses
  • Définit les attributs donnés à une étiquette function-key

ncurses_slk_attrset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attrset — Définit les attributs donnés à une étiquette function-key

Description

int ncurses_slk_attrset ( int $intarg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg


Efface les soft labels de l'écran

  • « ncurses_slk_attrset
  • ncurses_slk_color »
  • PHP Manual
  • Fonctions Ncurses
  • Efface les soft labels de l'écran

ncurses_slk_clear

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_clear — Efface les soft labels de l'écran

Description

bool ncurses_slk_clear ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

ncurses_slk_clear() efface les clés label keys de l'écran.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.


Configure la couleur des clés soft label

  • « ncurses_slk_clear
  • ncurses_slk_init »
  • PHP Manual
  • Fonctions Ncurses
  • Configure la couleur des clés soft label

ncurses_slk_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_color — Configure la couleur des clés soft label

Description

int ncurses_slk_color ( int $intarg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg


Initialise les fonctions de clés soft label

  • « ncurses_slk_color
  • ncurses_slk_noutrefresh »
  • PHP Manual
  • Fonctions Ncurses
  • Initialise les fonctions de clés soft label

ncurses_slk_init

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_init — Initialise les fonctions de clés soft label

Description

bool ncurses_slk_init ( int $format )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Initialise les fonctions de clés soft label.

ncurses_slk_init() doit être appelée
avant que ncurses_init() et
ncurses_newwin() soient utilisées.

Liste de paramètres

format

Si ncurses_init() utilise une ligne de stdscr pour émuler les soft labels, alors le paramètre format détermine comment les labels seront arrangés sur l'écran.

La valeur 0 indique que vous utiliserez un arrangement de type 3-2-3; la valeur 1 indiquera un arrangement 4-4; la valeur 2 indiquera un mode 4-4-4, mais une ligne d'index sera créée en plus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Copie toutes les clés soft label à l'écran virtuel

  • « ncurses_slk_init
  • ncurses_slk_refresh »
  • PHP Manual
  • Fonctions Ncurses
  • Copie toutes les clés soft label à l'écran virtuel

ncurses_slk_noutrefresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_noutrefresh — Copie toutes les clés soft label à l'écran virtuel

Description

bool ncurses_slk_noutrefresh ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Copie les clés soft label à l'écran

  • « ncurses_slk_noutrefresh
  • ncurses_slk_restore »
  • PHP Manual
  • Fonctions Ncurses
  • Copie les clés soft label à l'écran

ncurses_slk_refresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_refresh — Copie les clés soft label à l'écran

Description

int ncurses_slk_refresh ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Copie les clés soft label de l'écran virtuel vers l'écran physique.


Rétablit les clés soft label

  • « ncurses_slk_refresh
  • ncurses_slk_set »
  • PHP Manual
  • Fonctions Ncurses
  • Rétablit les clés soft label

ncurses_slk_restore

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_restore — Rétablit les clés soft label

Description

int ncurses_slk_restore ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Rétablit les clés soft label après l'utilisation de ncurses_slk_clear().


Modifie les étiquettes de clé de fonction (function key labels)

  • « ncurses_slk_restore
  • ncurses_slk_touch »
  • PHP Manual
  • Fonctions Ncurses
  • Modifie les étiquettes de clé de fonction (function key labels)

ncurses_slk_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_set — Modifie les étiquettes de clé de fonction (function key labels)

Description

bool ncurses_slk_set ( int $labelnr , string $label , int $format )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

labelnr

label

format


Force l'affichage lorsque ncurses_slk_noutrefresh est utilisé

  • « ncurses_slk_set
  • ncurses_standend »
  • PHP Manual
  • Fonctions Ncurses
  • Force l'affichage lorsque ncurses_slk_noutrefresh est utilisé

ncurses_slk_touch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_touch — Force l'affichage lorsque ncurses_slk_noutrefresh est utilisé

Description

int ncurses_slk_touch ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Force l'affichage de tous les soft labels dès la prochaine utilisation de ncurses_slk_noutrefresh().


Cesse l'utilisation de l'attribut 'standout'

  • « ncurses_slk_touch
  • ncurses_standout »
  • PHP Manual
  • Fonctions Ncurses
  • Cesse l'utilisation de l'attribut 'standout'

ncurses_standend

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_standend — Cesse l'utilisation de l'attribut 'standout'

Description

int ncurses_standend ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Commence l'utilisation de l'attribut 'standout'

  • « ncurses_standend
  • ncurses_start_color »
  • PHP Manual
  • Fonctions Ncurses
  • Commence l'utilisation de l'attribut 'standout'

ncurses_standout

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_standout — Commence l'utilisation de l'attribut 'standout'

Description

int ncurses_standout ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Active les couleurs

  • « ncurses_standout
  • ncurses_termattrs »
  • PHP Manual
  • Fonctions Ncurses
  • Active les couleurs

ncurses_start_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_start_color — Active les couleurs

Description

int ncurses_start_color ( void )

ncurses_start_color() intialise le support des couleurs dans ncurses. Cette fonction doit être appelée avant toute manipulation des couelurs, et après ncurses_init(). C'est une bonne pratique que d'appeler cette fonction juste après ncurses_init().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne 0 en cas de succès, et -1 si la table de couleurs n'a pas pu être allouée ou ncurses n'a pas été initialisée.

Exemples

Exemple #1 Affichage d'une chaîne en couleur à l'écran

<?php
ncurses_init();

// Si le terminal supporte les couleurs, initialisation et activation
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Ecriture de la chaîne à l'écran
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Envoi à l'écran
ncurses_refresh();

ncurses_end();
?>

Voir aussi

  • ncurses_can_change_color() - Vérifie si le terminal peut changer de couleur
  • ncurses_has_colors() - Vérifie que le terminal supporte les couleurs


Retourne toutes les options supportées par le terminal, combinées ensemble par l'opérateur OR

  • « ncurses_start_color
  • ncurses_termname »
  • PHP Manual
  • Fonctions Ncurses
  • Retourne toutes les options supportées par le terminal, combinées ensemble par l'opérateur OR

ncurses_termattrs

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_termattrs — Retourne toutes les options supportées par le terminal, combinées ensemble par l'opérateur OR

Description

bool ncurses_termattrs ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne le nom court du terminal

  • « ncurses_termattrs
  • ncurses_timeout »
  • PHP Manual
  • Fonctions Ncurses
  • Retourne le nom court du terminal

ncurses_termname

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_termname — Retourne le nom court du terminal

Description

string ncurses_termname ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le nom court du terminal.

Valeurs de retour

Retourne le nom court du terminal. Le nom court est tronqué à 14 caractères. En cas d'erreur, ncurses_termname() retourne NULL.

Voir aussi

  • ncurses_longname() - Retourne la description du terminal


Configure le temps d'expiration des séquences clavier spéciales

  • « ncurses_termname
  • ncurses_top_panel »
  • PHP Manual
  • Fonctions Ncurses
  • Configure le temps d'expiration des séquences clavier spéciales

ncurses_timeout

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_timeout — Configure le temps d'expiration des séquences clavier spéciales

Description

void ncurses_timeout ( int $millisec )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

millisec


Place un conteneur visible sur le haut de la pile

  • « ncurses_timeout
  • ncurses_typeahead »
  • PHP Manual
  • Fonctions Ncurses
  • Place un conteneur visible sur le haut de la pile

ncurses_top_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_top_panel — Place un conteneur visible sur le haut de la pile

Description

int ncurses_top_panel ( resource $panel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel


Spécifie un autre descripteur de fichier pour la vérification à la volée des données saisies

  • « ncurses_top_panel
  • ncurses_ungetch »
  • PHP Manual
  • Fonctions Ncurses
  • Spécifie un autre descripteur de fichier pour la vérification à la volée des données saisies

ncurses_typeahead

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_typeahead — Spécifie un autre descripteur de fichier pour la vérification à la volée des données saisies

Description

int ncurses_typeahead ( int $fd )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

fd


Replace un caractère dans la queue d'entrée

  • « ncurses_typeahead
  • ncurses_ungetmouse »
  • PHP Manual
  • Fonctions Ncurses
  • Replace un caractère dans la queue d'entrée

ncurses_ungetch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_ungetch — Replace un caractère dans la queue d'entrée

Description

int ncurses_ungetch ( int $keycode )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

keycode


Ajoute un événement souris dans la queue

  • « ncurses_ungetch
  • ncurses_update_panels »
  • PHP Manual
  • Fonctions Ncurses
  • Ajoute un événement souris dans la queue

ncurses_ungetmouse

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_ungetmouse — Ajoute un événement souris dans la queue

Description

bool ncurses_ungetmouse ( array $mevent )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajoute un événement souris dans la queue d'entrée, et associe cet événement avec l'état du terminal et les coordonnées relatives (en caractères) de la souris, spécifiés dans mevent.

Liste de paramètres

mevent

Un tableau associatif spécifiant les options de l'événement :

  • "id" : identifiant permettant de distinguer plusieurs périphériques

  • "x" : position à l'écran, en abscisse relative, et comptée en caractères

  • "y" : position à l'écran, en ordonnée relative, et comptée en caractères

  • "z" : actuellement non supporté

  • "mmask" : action de souris

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

  • ncurses_getmouse() - Lit les événements souris


Rafraîchit l'écran virtuel pour prendre en compte les relations entre les conteneurs de la pile

  • « ncurses_ungetmouse
  • ncurses_use_default_colors »
  • PHP Manual
  • Fonctions Ncurses
  • Rafraîchit l'écran virtuel pour prendre en compte les relations entre les conteneurs de la pile

ncurses_update_panels

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_update_panels — Rafraîchit l'écran virtuel pour prendre en compte les relations entre les conteneurs de la pile

Description

void ncurses_update_panels ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Assigne la couleur de terminal pour l'index -1

  • « ncurses_update_panels
  • ncurses_use_env »
  • PHP Manual
  • Fonctions Ncurses
  • Assigne la couleur de terminal pour l'index -1

ncurses_use_default_colors

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_default_colors — Assigne la couleur de terminal pour l'index -1

Description

bool ncurses_use_default_colors ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Contrôle l'utilisation des informations d'environnement concernant la taille du terminal

  • « ncurses_use_default_colors
  • ncurses_use_extended_names »
  • PHP Manual
  • Fonctions Ncurses
  • Contrôle l'utilisation des informations d'environnement concernant la taille du terminal

ncurses_use_env

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_env — Contrôle l'utilisation des informations d'environnement concernant la taille du terminal

Description

void ncurses_use_env ( bool $flag )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flag


Contrôle l'utilisation des noms étendus dans les descriptions terminfo

  • « ncurses_use_env
  • ncurses_vidattr »
  • PHP Manual
  • Fonctions Ncurses
  • Contrôle l'utilisation des noms étendus dans les descriptions terminfo

ncurses_use_extended_names

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_extended_names — Contrôle l'utilisation des noms étendus dans les descriptions terminfo

Description

int ncurses_use_extended_names ( bool $flag )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flag


Affiche la chaîne sur un terminal dans le mode d'attribut vidéo

  • « ncurses_use_extended_names
  • ncurses_vline »
  • PHP Manual
  • Fonctions Ncurses
  • Affiche la chaîne sur un terminal dans le mode d'attribut vidéo

ncurses_vidattr

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_vidattr — Affiche la chaîne sur un terminal dans le mode d'attribut vidéo

Description

int ncurses_vidattr ( int $intarg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg


Dessine une ligne verticale à la position courante en utilisant un caractère donné, pour une taille donnée

  • « ncurses_vidattr
  • ncurses_waddch »
  • PHP Manual
  • Fonctions Ncurses
  • Dessine une ligne verticale à la position courante en utilisant un caractère donné, pour une taille donnée

ncurses_vline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_vline — Dessine une ligne verticale à la position courante en utilisant un caractère donné, pour une taille donnée

Description

int ncurses_vline ( int $charattr , int $n )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

charattr

n


Ajoute un caractère à la position courante, dans une fenêtre, et avance le curseur

  • « ncurses_vline
  • ncurses_waddstr »
  • PHP Manual
  • Fonctions Ncurses
  • Ajoute un caractère à la position courante, dans une fenêtre, et avance le curseur

ncurses_waddch

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_waddch — Ajoute un caractère à la position courante, dans une fenêtre, et avance le curseur

Description

int ncurses_waddch ( resource $window , int $ch )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

ch


Affiche le texte à la position courante dans la fenêtre

  • « ncurses_waddch
  • ncurses_wattroff »
  • PHP Manual
  • Fonctions Ncurses
  • Affiche le texte à la position courante dans la fenêtre

ncurses_waddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_waddstr — Affiche le texte à la position courante dans la fenêtre

Description

int ncurses_waddstr ( resource $window , string $str [, int $n ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

str

n


Désactive les attributs d'une fenêtre

  • « ncurses_waddstr
  • ncurses_wattron »
  • PHP Manual
  • Fonctions Ncurses
  • Désactive les attributs d'une fenêtre

ncurses_wattroff

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattroff — Désactive les attributs d'une fenêtre

Description

int ncurses_wattroff ( resource $window , int $attrs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

attrs


Efface les attributs de la fenêtre

  • « ncurses_wattroff
  • ncurses_wattrset »
  • PHP Manual
  • Fonctions Ncurses
  • Efface les attributs de la fenêtre

ncurses_wattron

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattron — Efface les attributs de la fenêtre

Description

int ncurses_wattron ( resource $window , int $attrs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

attrs


Modifie les attributs d'une fenêtre

  • « ncurses_wattron
  • ncurses_wborder »
  • PHP Manual
  • Fonctions Ncurses
  • Modifie les attributs d'une fenêtre

ncurses_wattrset

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattrset — Modifie les attributs d'une fenêtre

Description

int ncurses_wattrset ( resource $window , int $attrs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

attrs


Dessine le bord d'une fenêtre avec un caractère qualifié

  • « ncurses_wattrset
  • ncurses_wclear »
  • PHP Manual
  • Fonctions Ncurses
  • Dessine le bord d'une fenêtre avec un caractère qualifié

ncurses_wborder

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wborder — Dessine le bord d'une fenêtre avec un caractère qualifié

Description

int ncurses_wborder ( resource $window , int $left , int $right , int $top , int $bottom , int $tl_corner , int $tr_corner , int $bl_corner , int $br_corner )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Dessine les lignes spécifiées et les coins autour de la fenêtre passée par window.

Utilisez ncurses_border() pour les bordures de la fenêtre principale.

Liste de paramètres

Chaque paramètre attend 0 pour dessiner et 1 pour ne pas le faire.

window

La fenêtre à traiter

left

right

top

bottom

tl_corner

Coin en haut, à gauche

tr_corner

Coin en haut, à droite

bl_corner

Coin en bas, à gauche

br_corner

Coin en bas, à droite

Voir aussi

  • ncurses_border() - Dessine un bord autour de l'écran avec les caractères données


Efface la fenêtre

  • « ncurses_wborder
  • ncurses_wcolor_set »
  • PHP Manual
  • Fonctions Ncurses
  • Efface la fenêtre

ncurses_wclear

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wclear — Efface la fenêtre

Description

int ncurses_wclear ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window


Modifie les paires de couleurs de la fenêtre

  • « ncurses_wclear
  • ncurses_werase »
  • PHP Manual
  • Fonctions Ncurses
  • Modifie les paires de couleurs de la fenêtre

ncurses_wcolor_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wcolor_set — Modifie les paires de couleurs de la fenêtre

Description

int ncurses_wcolor_set ( resource $window , int $color_pair )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

color_pair


Efface le contenu de la fenêtre

  • « ncurses_wcolor_set
  • ncurses_wgetch »
  • PHP Manual
  • Fonctions Ncurses
  • Efface le contenu de la fenêtre

ncurses_werase

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_werase — Efface le contenu de la fenêtre

Description

int ncurses_werase ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window


Lit un caractère depuis le clavier (fenêtre)

  • « ncurses_werase
  • ncurses_whline »
  • PHP Manual
  • Fonctions Ncurses
  • Lit un caractère depuis le clavier (fenêtre)

ncurses_wgetch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wgetch — Lit un caractère depuis le clavier (fenêtre)

Description

int ncurses_wgetch ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window


Dessine une ligne horizontale à partir de la position courante, avec un caractère qualifié, et d'une taille maximale

  • « ncurses_wgetch
  • ncurses_wmouse_trafo »
  • PHP Manual
  • Fonctions Ncurses
  • Dessine une ligne horizontale à partir de la position courante, avec un caractère qualifié, et d'une taille maximale

ncurses_whline

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_whline — Dessine une ligne horizontale à partir de la position courante, avec un caractère qualifié, et d'une taille maximale

Description

int ncurses_whline ( resource $window , int $charattr , int $n )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

charattr

n


Transforme les coordonnées d'une fenêtre

  • « ncurses_whline
  • ncurses_wmove »
  • PHP Manual
  • Fonctions Ncurses
  • Transforme les coordonnées d'une fenêtre

ncurses_wmouse_trafo

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wmouse_trafo — Transforme les coordonnées d'une fenêtre

Description

bool ncurses_wmouse_trafo ( resource $window , int &$y , int &$x , bool $toscreen )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

x

y

toscreen


Déplace la position d'affichage de la fenêtre

  • « ncurses_wmouse_trafo
  • ncurses_wnoutrefresh »
  • PHP Manual
  • Fonctions Ncurses
  • Déplace la position d'affichage de la fenêtre

ncurses_wmove

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wmove — Déplace la position d'affichage de la fenêtre

Description

int ncurses_wmove ( resource $window , int $y , int $x )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

y

x


Copie la fenêtre dans l'écran virtuel

  • « ncurses_wmove
  • ncurses_wrefresh »
  • PHP Manual
  • Fonctions Ncurses
  • Copie la fenêtre dans l'écran virtuel

ncurses_wnoutrefresh

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wnoutrefresh — Copie la fenêtre dans l'écran virtuel

Description

int ncurses_wnoutrefresh ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window


Rafraîchit la fenêtre sur l'écran du terminal

  • « ncurses_wnoutrefresh
  • ncurses_wstandend »
  • PHP Manual
  • Fonctions Ncurses
  • Rafraîchit la fenêtre sur l'écran du terminal

ncurses_wrefresh

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wrefresh — Rafraîchit la fenêtre sur l'écran du terminal

Description

int ncurses_wrefresh ( resource $window )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window


Termine le mode standout de la fenêtre

  • « ncurses_wrefresh
  • ncurses_wstandout »
  • PHP Manual
  • Fonctions Ncurses
  • Termine le mode standout de la fenêtre

ncurses_wstandend

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wstandend — Termine le mode standout de la fenêtre

Description

int ncurses_wstandend ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window


Passe une fenêtre en mode standout

  • « ncurses_wstandend
  • ncurses_wvline »
  • PHP Manual
  • Fonctions Ncurses
  • Passe une fenêtre en mode standout

ncurses_wstandout

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wstandout — Passe une fenêtre en mode standout

Description

int ncurses_wstandout ( resource $window )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window


Dessine une ligne verticale dans une fenêtre, à la position courante, en utilisant un caractère qualifié, avec une taille maximale

  • « ncurses_wstandout
  • Newt »
  • PHP Manual
  • Fonctions Ncurses
  • Dessine une ligne verticale dans une fenêtre, à la position courante, en utilisant un caractère qualifié, avec une taille maximale

ncurses_wvline

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wvline — Dessine une ligne verticale dans une fenêtre, à la position courante, en utilisant un caractère qualifié, avec une taille maximale

Description

int ncurses_wvline ( resource $window , int $charattr , int $n )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

charattr

n


Newt

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
    • Raisons de sortie de Newt
    • Newt colorsets
    • Drapeaux d'argument Newt
    • Sens des Drapeaux Newt
    • Drapeaux des Composants Newt
    • Drapeaux de pointeur de fichier
    • Drapeaux d'Arbre de Cases à Cocher
    • Drapeaux d'Entrée
    • Drapeaux de Liste
    • Drapeaux de Boîte Texte
    • Drapeaux de Formulaire
    • Clés Newt
    • Ancres Newt
    • Drapeaux de Grille
  • Exemples
    • Utilisation simple
  • Fonctions Newt
    • newt_bell — Envoie un beep au terminal
    • newt_button_bar — Retourne une grille contenant les boutons créés
    • newt_button — Crée un nouveau bouton
    • newt_centered_window — Ouvre une fenêtre centrée de la taille spécifiée
    • newt_checkbox_get_value — Récupère la valeur de la ressource de boîte à cocher
    • newt_checkbox_set_flags — Configure une ressource de boîte à cocher
    • newt_checkbox_set_value — Définit la valeur de la boîte à cocher
    • newt_checkbox_tree_add_item — Ajout un nouvel élément à l'arbre des boîtes à cocher
    • newt_checkbox_tree_find_item — Cherche un élément dans l'arbre des boîtes à cocher
    • newt_checkbox_tree_get_current — Retourne l'élément sélectionné de l'arbre des boîtes à cocher
    • newt_checkbox_tree_get_entry_value — Description
    • newt_checkbox_tree_get_multi_selection — Description
    • newt_checkbox_tree_get_selection — Description
    • newt_checkbox_tree_multi — Description
    • newt_checkbox_tree_set_current — Description
    • newt_checkbox_tree_set_entry_value — Description
    • newt_checkbox_tree_set_entry — Description
    • newt_checkbox_tree_set_width — Description
    • newt_checkbox_tree — Description
    • newt_checkbox — Description
    • newt_clear_key_buffer — Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle
    • newt_cls — Description
    • newt_compact_button — Description
    • newt_component_add_callback — Description
    • newt_component_takes_focus — Description
    • newt_create_grid — Description
    • newt_cursor_off — Description
    • newt_cursor_on — Description
    • newt_delay — Description
    • newt_draw_form — Description
    • newt_draw_root_text — Affiche la chaîne de caractères à la position indiquée
    • newt_entry_get_value — Description
    • newt_entry_set_filter — Description
    • newt_entry_set_flags — Description
    • newt_entry_set — Description
    • newt_entry — Description
    • newt_finished — Arrête l'interface newt
    • newt_form_add_component — Ajoute un seul composant à la forme
    • newt_form_add_components — Ajoute plusieurs composants à la forme
    • newt_form_add_hot_key — Description
    • newt_form_destroy — Détruit une forme
    • newt_form_get_current — Description
    • newt_form_run — Exécute une forme
    • newt_form_set_background — Description
    • newt_form_set_height — Description
    • newt_form_set_size — Description
    • newt_form_set_timer — Description
    • newt_form_set_width — Description
    • newt_form_watch_fd — Description
    • newt_form — Crée une forme
    • newt_get_screen_size — Remplit les références passées avec la taille courante du terminal
    • newt_grid_add_components_to_form — Description
    • newt_grid_basic_window — Description
    • newt_grid_free — Description
    • newt_grid_get_size — Description
    • newt_grid_h_close_stacked — Description
    • newt_grid_h_stacked — Description
    • newt_grid_place — Description
    • newt_grid_set_field — Description
    • newt_grid_simple_window — Description
    • newt_grid_v_close_stacked — Description
    • newt_grid_v_stacked — Description
    • newt_grid_wrapped_window_at — Description
    • newt_grid_wrapped_window — Description
    • newt_init — Initialise newt
    • newt_label_set_text — Description
    • newt_label — Description
    • newt_listbox_append_entry — Description
    • newt_listbox_clear_selection — Description
    • newt_listbox_clear — Description
    • newt_listbox_delete_entry — Description
    • newt_listbox_get_current — Description
    • newt_listbox_get_selection — Description
    • newt_listbox_insert_entry — Description
    • newt_listbox_item_count — Description
    • newt_listbox_select_item — Description
    • newt_listbox_set_current_by_key — Description
    • newt_listbox_set_current — Description
    • newt_listbox_set_data — Description
    • newt_listbox_set_entry — Description
    • newt_listbox_set_width — Description
    • newt_listbox — Description
    • newt_listitem_get_data — Description
    • newt_listitem_set — Description
    • newt_listitem — Description
    • newt_open_window — Ouvre une fenêtre de la taille et la position spécifiée
    • newt_pop_help_line — Replace la ligne d'aide courante avec une provenant de la pile
    • newt_pop_window — Supprime la fenêtre de premier plan de l'affichage
    • newt_push_help_line — Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne
    • newt_radio_get_current — Description
    • newt_radiobutton — Description
    • newt_redraw_help_line — Description
    • newt_reflow_text — Description
    • newt_refresh — Met à jour les portions modifiées de l'écran
    • newt_resize_screen — Description
    • newt_resume — Récupère l'interface de newt après l'appel de newt_suspend
    • newt_run_form — Exécute une forme
    • newt_scale_set — Description
    • newt_scale — Description
    • newt_scrollbar_set — Description
    • newt_set_help_callback — Description
    • newt_set_suspend_callback — Assigne la fonction de rappel appelée sur suspension
    • newt_suspend — Indique à newt de retourner à l'état initial du terminal
    • newt_textbox_get_num_lines — Description
    • newt_textbox_reflowed — Description
    • newt_textbox_set_height — Description
    • newt_textbox_set_text — Description
    • newt_textbox — Description
    • newt_vertical_scrollbar — Description
    • newt_wait_for_key — Ne continue pas tant qu'une touche n'est pas appuyée
    • newt_win_choice — Description
    • newt_win_entries — Description
    • newt_win_menu — Description
    • newt_win_message — Description
    • newt_win_messagev — Description
    • newt_win_ternary — Description


Introduction

Il s'agit d'une extension du langage PHP pour la bibliothèque RedHat Newt, une fenêtre basée sur un terminal et sur une bibliothèque de widgets pour écrire des applications avec des interfaces conviviales. Une fois que cette extension est activée dans PHP, vous aurez la possibilité d'utiliser des widgets, comme des fenêtres, des boutons, des boîtes à cocher, des boîtes radio, des labels, des boîtes texte, des barres de défilement, de grandes boîtes texte, des règles, etc. L'utilisation de cette extension est vraiment similaire à l'API original Newt du langage de programmation C.


Pré-requis

Ce module utilise les fonctions de la bibliothèque RedHat Newt. Vous aurez besoin de la version libnewt >= 0.51.0.


Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/newt.

Afin d'utiliser ces fonctions, vous devez compiler le support newt en CGI ou en CLI PHP en utilisant l'option de configure --with-newt[=DIR] .

Note:

Cette extension n'est pas disponible pour la plate-forme Windows.

Vous aurez aussi besoin des bibliothèques curses et slang afin de compiler cette extension. Pour spécifier des emplacements de ces bibliothèques, utilisez les options de configuration suivante : --with-curses-dir=/path/to/libcurses --with-slang-dir=/path/to/libslang


Types de ressources

Cette extension utilise deux types de ressources : "composant newt" et "grille newt".

Le type de ressource "composant newt" est retourné par les fonctions, qui créent les widgets communs newt (par exemple : newt_button()).

Le type de ressource "grille newt" est un lien spécial pour les identifiants des composants, retourné par la classe d'objet de grille de newt (par exemple : newt_create_grid())


Constantes pré-définies

Sommaire

  • Raisons de sortie de Newt
  • Newt colorsets
  • Drapeaux d'argument Newt
  • Sens des Drapeaux Newt
  • Drapeaux des Composants Newt
  • Drapeaux de pointeur de fichier
  • Drapeaux d'Arbre de Cases à Cocher
  • Drapeaux d'Entrée
  • Drapeaux de Liste
  • Drapeaux de Boîte Texte
  • Drapeaux de Formulaire
  • Clés Newt
  • Ancres Newt
  • Drapeaux de Grille

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.


Raisons de sortie de Newt

Raisons de sortie de Newt
Constante | Signification
NEWT_EXIT_HOTKEY | touche rapide définie par newt_form_add_hot_key() a été appuyée
NEWT_EXIT_COMPONENT | certains composants ont demandé la sortie de la forme
NEWT_EXIT_FDREADY | le pointeur de fichier spécifié dans newt_form_watch_fd() est prêt à être lu ou écrit
NEWT_EXIT_TIMER | le temps spécifié dans newt_form_set_timer() s'est écoulé


Newt colorsets

Newt colorsets
Constante | Signification
NEWT_COLORSET_ROOT |
NEWT_COLORSET_BORDER |
NEWT_COLORSET_WINDOW |
NEWT_COLORSET_SHADOW |
NEWT_COLORSET_TITLE |
NEWT_COLORSET_BUTTON |
NEWT_COLORSET_ACTBUTTON |
NEWT_COLORSET_CHECKBOX |
NEWT_COLORSET_ACTCHECKBOX |
NEWT_COLORSET_ENTRY |
NEWT_COLORSET_LABEL |
NEWT_COLORSET_LISTBOX |
NEWT_COLORSET_ACTLISTBOX |
NEWT_COLORSET_TEXTBOX |
NEWT_COLORSET_ACTTEXTBOX |
NEWT_COLORSET_HELPLINE |
NEWT_COLORSET_ROOTTEXT |
NEWT_COLORSET_EMPTYSCALE |
NEWT_COLORSET_FULLSCALE |
NEWT_COLORSET_DISENTRY |
NEWT_COLORSET_COMPACTBUTTON |
NEWT_COLORSET_ACTSELLISTBOX |
NEWT_COLORSET_SELLISTBOX |


  • « Newt colorsets
  • Sens des Drapeaux Newt »
  • PHP Manual
  • Constantes pré-définies
  • Drapeaux d'argument Newt

Drapeaux d'argument Newt

Drapeaux d'argument Newt
Constante | Signification
NEWT_ARG_LAST |
NEWT_ARG_APPEND |


  • « Drapeaux d'argument Newt
  • Drapeaux des Composants Newt »
  • PHP Manual
  • Constantes pré-définies
  • Sens des Drapeaux Newt

Sens des Drapeaux Newt

Sens des Drapeaux Newt
Constante | Signification
NEWT_FLAGS_SET |
NEWT_FLAGS_RESET |
NEWT_FLAGS_TOGGLE |


Drapeaux des Composants Newt

Drapeaux des Composants Newt
Constante | Signification
NEWT_FLAG_RETURNEXIT | Sort de la forme, lorsque le composant est activé
NEWT_FLAG_HIDDEN | Le composant est caché
NEWT_FLAG_SCROLL | Le composant est flottant
NEWT_FLAG_DISABLED | Le composant est désactivé
NEWT_FLAG_BORDER |
NEWT_FLAG_WRAP | Enveloppe le texte
NEWT_FLAG_NOF12 | Ne sort pas de la forme en appuyant sur F12
NEWT_FLAG_MULTIPLE |
NEWT_FLAG_SELECTED | Le composant est sélectionné
NEWT_FLAG_CHECKBOX | Le composant est une case à cocher
NEWT_FLAG_PASSWORD | Le composant est une boîte de mot de passe
NEWT_FLAG_SHOWCURSOR | Montre le curseur


  • « Drapeaux des Composants Newt
  • Drapeaux d'Arbre de Cases à Cocher »
  • PHP Manual
  • Constantes pré-définies
  • Drapeaux de pointeur de fichier

Drapeaux de pointeur de fichier

Drapeaux de pointeur de fichier
Constante | Signification
NEWT_FD_READ |
NEWT_FD_WRITE |
NEWT_FD_EXCEPT |


Drapeaux d'Arbre de Cases à Cocher

Drapeaux d'Arbre de Cases à Cocher
Constante | Signification
NEWT_CHECKBOXTREE_UNSELECTABLE |
NEWT_CHECKBOXTREE_HIDE_BOX |
NEWT_CHECKBOXTREE_COLLAPSED |
NEWT_CHECKBOXTREE_EXPANDED |
NEWT_CHECKBOXTREE_UNSELECTED |
NEWT_CHECKBOXTREE_SELECTED |


Drapeaux d'Entrée

Drapeaux d'Entrée
Constante | Signification
NEWT_ENTRY_SCROLL |
NEWT_ENTRY_HIDDEN |
NEWT_ENTRY_RETURNEXIT |
NEWT_ENTRY_DISABLED |


  • « Drapeaux d'Entrée
  • Drapeaux de Boîte Texte »
  • PHP Manual
  • Constantes pré-définies
  • Drapeaux de Liste

Drapeaux de Liste

Drapeaux de Liste
Constante | Signification
NEWT_LISTBOX_RETURNEXIT |


Drapeaux de Boîte Texte

Drapeaux de Boîte Texte
Constante | Signification
NEWT_TEXTBOX_WRAP | Enveloppe le texte dans la boîte texte
NEWT_TEXTBOX_SCROLL | Défile le texte dans la boîte texte


Drapeaux de Formulaire

Drapeaux de Formulaire
Constante | Signification
NEWT_FORM_NOF12 | Ne sort pas de la forme en appuyant sur F12


Clés Newt

Clés Newt
Constante | Signification
NEWT_KEY_TAB |
NEWT_KEY_ENTER |
NEWT_KEY_SUSPEND |
NEWT_KEY_ESCAPE |
NEWT_KEY_RETURN |
NEWT_KEY_EXTRA_BASE |
NEWT_KEY_UP |
NEWT_KEY_DOWN |
NEWT_KEY_LEFT |
NEWT_KEY_RIGHT |
NEWT_KEY_BKSPC |
NEWT_KEY_DELETE |
NEWT_KEY_HOME |
NEWT_KEY_END |
NEWT_KEY_UNTAB |
NEWT_KEY_PGUP |
NEWT_KEY_PGDN |
NEWT_KEY_INSERT |
NEWT_KEY_F1 |
NEWT_KEY_F2 |
NEWT_KEY_F3 |
NEWT_KEY_F4 |
NEWT_KEY_F5 |
NEWT_KEY_F6 |
NEWT_KEY_F7 |
NEWT_KEY_F8 |
NEWT_KEY_F9 |
NEWT_KEY_F10 |
NEWT_KEY_F11 |
NEWT_KEY_F12 |
NEWT_KEY_RESIZE |


Ancres Newt

Ancres Newt
Constante | Signification
NEWT_ANCHOR_LEFT |
NEWT_ANCHOR_RIGHT |
NEWT_ANCHOR_TOP |
NEWT_ANCHOR_BOTTOM |


Drapeaux de Grille

Drapeaux de Grille
Constante | Signification
NEWT_GRID_FLAG_GROWX |
NEWT_GRID_FLAG_GROWY |
NEWT_GRID_EMPTY |
NEWT_GRID_COMPONENT |
NEWT_GRID_SUBGRID |


  • « Drapeaux de Grille
  • Utilisation simple »
  • PHP Manual
  • Newt
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Cet exemple est une utilisation du dialogue 'setup' de RedHat écrit en PHP, exécuté en mode texte.

Exemple #1 Exemple d'Utilisation Newt

<?php
newt_init ();
newt_cls ();

newt_draw_root_text (0, 0, "Test Mode Setup Utility 1.12");
newt_push_help_line (null);
newt_draw_root_text (-30, 0, "(c) 1999-2002 RedHat, Inc");

newt_get_screen_size ($rows, $cols);

newt_open_window ($rows/2-17, $cols/2-10, 34, 17, "Choose a Tool");

$form = newt_form ();

$list = newt_listbox (3, 2, 10);

foreach (array (
    "Authentication configuration",
    "Firewall configuration",
    "Mouse configuration",
    "Network configuration",
    "Printer configuration",
    "System services") as $l_item)
{
    newt_listbox_add_entry ($list, $l_item, $l_item);
}

$b1 = newt_button (5, 12, "Run Tool");
$b2 = newt_button (21, 12, "Quit");

newt_form_add_component ($form, $list);
newt_form_add_components ($form, array($b1, $b2));

newt_refresh ();
newt_run_form ($form);

newt_pop_window ();
newt_pop_help_line ();
newt_finished ();
newt_form_destroy ($form);
?>


Fonctions Newt

Sommaire

  • newt_bell — Envoie un beep au terminal
  • newt_button_bar — Retourne une grille contenant les boutons créés
  • newt_button — Crée un nouveau bouton
  • newt_centered_window — Ouvre une fenêtre centrée de la taille spécifiée
  • newt_checkbox_get_value — Récupère la valeur de la ressource de boîte à cocher
  • newt_checkbox_set_flags — Configure une ressource de boîte à cocher
  • newt_checkbox_set_value — Définit la valeur de la boîte à cocher
  • newt_checkbox_tree_add_item — Ajout un nouvel élément à l'arbre des boîtes à cocher
  • newt_checkbox_tree_find_item — Cherche un élément dans l'arbre des boîtes à cocher
  • newt_checkbox_tree_get_current — Retourne l'élément sélectionné de l'arbre des boîtes à cocher
  • newt_checkbox_tree_get_entry_value — Description
  • newt_checkbox_tree_get_multi_selection — Description
  • newt_checkbox_tree_get_selection — Description
  • newt_checkbox_tree_multi — Description
  • newt_checkbox_tree_set_current — Description
  • newt_checkbox_tree_set_entry_value — Description
  • newt_checkbox_tree_set_entry — Description
  • newt_checkbox_tree_set_width — Description
  • newt_checkbox_tree — Description
  • newt_checkbox — Description
  • newt_clear_key_buffer — Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle
  • newt_cls — Description
  • newt_compact_button — Description
  • newt_component_add_callback — Description
  • newt_component_takes_focus — Description
  • newt_create_grid — Description
  • newt_cursor_off — Description
  • newt_cursor_on — Description
  • newt_delay — Description
  • newt_draw_form — Description
  • newt_draw_root_text — Affiche la chaîne de caractères à la position indiquée
  • newt_entry_get_value — Description
  • newt_entry_set_filter — Description
  • newt_entry_set_flags — Description
  • newt_entry_set — Description
  • newt_entry — Description
  • newt_finished — Arrête l'interface newt
  • newt_form_add_component — Ajoute un seul composant à la forme
  • newt_form_add_components — Ajoute plusieurs composants à la forme
  • newt_form_add_hot_key — Description
  • newt_form_destroy — Détruit une forme
  • newt_form_get_current — Description
  • newt_form_run — Exécute une forme
  • newt_form_set_background — Description
  • newt_form_set_height — Description
  • newt_form_set_size — Description
  • newt_form_set_timer — Description
  • newt_form_set_width — Description
  • newt_form_watch_fd — Description
  • newt_form — Crée une forme
  • newt_get_screen_size — Remplit les références passées avec la taille courante du terminal
  • newt_grid_add_components_to_form — Description
  • newt_grid_basic_window — Description
  • newt_grid_free — Description
  • newt_grid_get_size — Description
  • newt_grid_h_close_stacked — Description
  • newt_grid_h_stacked — Description
  • newt_grid_place — Description
  • newt_grid_set_field — Description
  • newt_grid_simple_window — Description
  • newt_grid_v_close_stacked — Description
  • newt_grid_v_stacked — Description
  • newt_grid_wrapped_window_at — Description
  • newt_grid_wrapped_window — Description
  • newt_init — Initialise newt
  • newt_label_set_text — Description
  • newt_label — Description
  • newt_listbox_append_entry — Description
  • newt_listbox_clear_selection — Description
  • newt_listbox_clear — Description
  • newt_listbox_delete_entry — Description
  • newt_listbox_get_current — Description
  • newt_listbox_get_selection — Description
  • newt_listbox_insert_entry — Description
  • newt_listbox_item_count — Description
  • newt_listbox_select_item — Description
  • newt_listbox_set_current_by_key — Description
  • newt_listbox_set_current — Description
  • newt_listbox_set_data — Description
  • newt_listbox_set_entry — Description
  • newt_listbox_set_width — Description
  • newt_listbox — Description
  • newt_listitem_get_data — Description
  • newt_listitem_set — Description
  • newt_listitem — Description
  • newt_open_window — Ouvre une fenêtre de la taille et la position spécifiée
  • newt_pop_help_line — Replace la ligne d'aide courante avec une provenant de la pile
  • newt_pop_window — Supprime la fenêtre de premier plan de l'affichage
  • newt_push_help_line — Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne
  • newt_radio_get_current — Description
  • newt_radiobutton — Description
  • newt_redraw_help_line — Description
  • newt_reflow_text — Description
  • newt_refresh — Met à jour les portions modifiées de l'écran
  • newt_resize_screen — Description
  • newt_resume — Récupère l'interface de newt après l'appel de newt_suspend
  • newt_run_form — Exécute une forme
  • newt_scale_set — Description
  • newt_scale — Description
  • newt_scrollbar_set — Description
  • newt_set_help_callback — Description
  • newt_set_suspend_callback — Assigne la fonction de rappel appelée sur suspension
  • newt_suspend — Indique à newt de retourner à l'état initial du terminal
  • newt_textbox_get_num_lines — Description
  • newt_textbox_reflowed — Description
  • newt_textbox_set_height — Description
  • newt_textbox_set_text — Description
  • newt_textbox — Description
  • newt_vertical_scrollbar — Description
  • newt_wait_for_key — Ne continue pas tant qu'une touche n'est pas appuyée
  • newt_win_choice — Description
  • newt_win_entries — Description
  • newt_win_menu — Description
  • newt_win_message — Description
  • newt_win_messagev — Description
  • newt_win_ternary — Description


Envoie un beep au terminal

  • « Fonctions Newt
  • newt_button_bar »
  • PHP Manual
  • Fonctions Newt
  • Envoie un beep au terminal

newt_bell

(PECL newt >= 0.1)

newt_bell — Envoie un beep au terminal

Description

void newt_bell ( void )

Cette fonction envoie un beep au terminal.

Note:

Dépendemment des configurations du terminal, le beep peut être ou ne peut être audible.

Valeurs de retour

Aucune valeur n'est retournée.


Retourne une grille contenant les boutons créés

  • « newt_bell
  • newt_button »
  • PHP Manual
  • Fonctions Newt
  • Retourne une grille contenant les boutons créés

newt_button_bar

(PECL newt >= 0.1)

newt_button_bar — Retourne une grille contenant les boutons créés

Description

resource newt_button_bar ( array &$buttons )

Cette fonction retourne une grille contenant les boutons créés.

Liste de paramètres

buttons

Valeurs de retour

Retourne une grille, contenant les boutons créés.


Crée un nouveau bouton

  • « newt_button_bar
  • newt_centered_window »
  • PHP Manual
  • Fonctions Newt
  • Crée un nouveau bouton

newt_button

(PECL newt >= 0.1)

newt_button — Crée un nouveau bouton

Description

resource newt_button ( int $left , int $top , string $text )

Crée un nouveau bouton.

Liste de paramètres

left

Coordonnée X du bouton.

top

Coordonnée Y du bouton.

text

Le texte qui devrait apparaître dans le bouton.

Valeurs de retour

Retourne une ressource du composant bouton créé ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec newt_button()

<?php

$form = newt_form();

$ok_button = newt_button(5, 12, "Run Tool");

newt_form_add_component($form, $ok_button);

?>

Voir aussi

  • newt_button_bar() - Retourne une grille contenant les boutons créés


Ouvre une fenêtre centrée de la taille spécifiée

  • « newt_button
  • newt_checkbox_get_value »
  • PHP Manual
  • Fonctions Newt
  • Ouvre une fenêtre centrée de la taille spécifiée

newt_centered_window

(PECL newt >= 0.1)

newt_centered_window — Ouvre une fenêtre centrée de la taille spécifiée

Description

int newt_centered_window ( int $width , int $height [, string $title ] )

Ouvre une fenêtre centrée de la taille spécifiée.

Liste de paramètres

width

Largeur de la fenêtre

height

Hauteur de la fenêtre

title

Titre de la fenêtre

Valeurs de retour

Valeur non définie.

Voir aussi

  • newt_pop_window() - Supprime la fenêtre de premier plan de l'affichage
  • newt_open_window() - Ouvre une fenêtre de la taille et la position spécifiée


Récupère la valeur de la ressource de boîte à cocher

  • « newt_centered_window
  • newt_checkbox_set_flags »
  • PHP Manual
  • Fonctions Newt
  • Récupère la valeur de la ressource de boîte à cocher

newt_checkbox_get_value

(PECL newt >= 0.1)

newt_checkbox_get_value — Récupère la valeur de la ressource de boîte à cocher

Description

string newt_checkbox_get_value ( resource $checkbox )

Cette fonction retourne le caractère dans la séquence qui indique la valeur courante de la boîte à cocher.

Liste de paramètres

checkbox

Valeurs de retour

Retourne le caractère indiquant la valeur de la boîte à cocher.


Configure une ressource de boîte à cocher

  • « newt_checkbox_get_value
  • newt_checkbox_set_value »
  • PHP Manual
  • Fonctions Newt
  • Configure une ressource de boîte à cocher

newt_checkbox_set_flags

(PECL newt >= 0.1)

newt_checkbox_set_flags — Configure une ressource de boîte à cocher

Description

void newt_checkbox_set_flags ( resource $checkbox , int $flags , int $sense )

Cette fonction permet de définir divers drapeaux d'une ressource de boîte à cocher.

Liste de paramètres

checkbox

flags

sense

Valeurs de retour

Aucune valeur n'est retournée.


Définit la valeur de la boîte à cocher

  • « newt_checkbox_set_flags
  • newt_checkbox_tree_add_item »
  • PHP Manual
  • Fonctions Newt
  • Définit la valeur de la boîte à cocher

newt_checkbox_set_value

(PECL newt >= 0.1)

newt_checkbox_set_value — Définit la valeur de la boîte à cocher

Description

void newt_checkbox_set_value ( resource $checkbox , string $value )

Cette fonction permet de définir la valeur courante de la ressource de boîte à cocher.

Liste de paramètres

checkbox

value

Valeurs de retour

Aucune valeur n'est retournée.


Ajout un nouvel élément à l'arbre des boîtes à cocher

  • « newt_checkbox_set_value
  • newt_checkbox_tree_find_item »
  • PHP Manual
  • Fonctions Newt
  • Ajout un nouvel élément à l'arbre des boîtes à cocher

newt_checkbox_tree_add_item

(PECL newt >= 0.1)

newt_checkbox_tree_add_item — Ajout un nouvel élément à l'arbre des boîtes à cocher

Description

void newt_checkbox_tree_add_item ( resource $checkboxtree , string $text , mixed $data , int $flags , int $index [, int $... ] )

Cette fonction permet d'ajout un nouvel élément l'arbre des boîtes à cocher.

Liste de paramètres

checkboxtree

text

data

flags

index

Valeurs de retour

Aucune valeur n'est retournée.


Cherche un élément dans l'arbre des boîtes à cocher

  • « newt_checkbox_tree_add_item
  • newt_checkbox_tree_get_current »
  • PHP Manual
  • Fonctions Newt
  • Cherche un élément dans l'arbre des boîtes à cocher

newt_checkbox_tree_find_item

(PECL newt >= 0.1)

newt_checkbox_tree_find_item — Cherche un élément dans l'arbre des boîtes à cocher

Description

array newt_checkbox_tree_find_item ( resource $checkboxtree , mixed $data )

Cherche un élément dans l'arbre des boîtes à cocher.

Liste de paramètres

checkboxtree

data

Valeurs de retour

Retourne la ressource de l'élément de l'arbre de boîtes à cocher, ou NULL s'il n'a pas été trouvé.


Retourne l'élément sélectionné de l'arbre des boîtes à cocher

  • « newt_checkbox_tree_find_item
  • newt_checkbox_tree_get_entry_value »
  • PHP Manual
  • Fonctions Newt
  • Retourne l'élément sélectionné de l'arbre des boîtes à cocher

newt_checkbox_tree_get_current

(PECL newt >= 0.1)

newt_checkbox_tree_get_current — Retourne l'élément sélectionné de l'arbre des boîtes à cocher

Description

mixed newt_checkbox_tree_get_current ( resource $checkboxtree )

Cette méthode retourne l'élément sélectionné de l'arbre des boîtes à cocher.

Liste de paramètres

checkboxtree

Valeurs de retour

Retourne l'élément courant (sélectionné) de l'arbre des boîtes à cocher.


Description

  • « newt_checkbox_tree_get_current
  • newt_checkbox_tree_get_multi_selection »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_checkbox_tree_get_entry_value

(PECL newt >= 0.1)

newt_checkbox_tree_get_entry_value —

Description

string newt_checkbox_tree_get_entry_value ( resource $checkboxtree , mixed $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkboxtree

data

Valeurs de retour


Description

  • « newt_checkbox_tree_get_entry_value
  • newt_checkbox_tree_get_selection »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_checkbox_tree_get_multi_selection

(PECL newt >= 0.1)

newt_checkbox_tree_get_multi_selection —

Description

array newt_checkbox_tree_get_multi_selection ( resource $checkboxtree , string $seqnum )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkboxtree

seqnum

Valeurs de retour


Description

  • « newt_checkbox_tree_get_multi_selection
  • newt_checkbox_tree_multi »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_checkbox_tree_get_selection

(PECL newt >= 0.1)

newt_checkbox_tree_get_selection —

Description

array newt_checkbox_tree_get_selection ( resource $checkboxtree )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkboxtree

Valeurs de retour


Description

  • « newt_checkbox_tree_get_selection
  • newt_checkbox_tree_set_current »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_checkbox_tree_multi

(PECL newt >= 0.1)

newt_checkbox_tree_multi —

Description

resource newt_checkbox_tree_multi ( int $left , int $top , int $height , string $seq [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

height

seq

flags

Valeurs de retour


Description

  • « newt_checkbox_tree_multi
  • newt_checkbox_tree_set_entry_value »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_checkbox_tree_set_current

(PECL newt >= 0.1)

newt_checkbox_tree_set_current —

Description

void newt_checkbox_tree_set_current ( resource $checkboxtree , mixed $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkboxtree

data

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_checkbox_tree_set_current
  • newt_checkbox_tree_set_entry »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_checkbox_tree_set_entry_value

(PECL newt >= 0.1)

newt_checkbox_tree_set_entry_value —

Description

void newt_checkbox_tree_set_entry_value ( resource $checkboxtree , mixed $data , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkboxtree

data

value

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_checkbox_tree_set_entry_value
  • newt_checkbox_tree_set_width »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_checkbox_tree_set_entry

(PECL newt >= 0.1)

newt_checkbox_tree_set_entry —

Description

void newt_checkbox_tree_set_entry ( resource $checkboxtree , mixed $data , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkboxtree

data

text

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_checkbox_tree_set_entry
  • newt_checkbox_tree »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_checkbox_tree_set_width

(PECL newt >= 0.1)

newt_checkbox_tree_set_width —

Description

void newt_checkbox_tree_set_width ( resource $checkbox_tree , int $width )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checkbox_tree

width

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_checkbox_tree_set_width
  • newt_checkbox »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_checkbox_tree

(PECL newt >= 0.1)

newt_checkbox_tree —

Description

resource newt_checkbox_tree ( int $left , int $top , int $height [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

height

flags

Valeurs de retour


Description

  • « newt_checkbox_tree
  • newt_clear_key_buffer »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_checkbox

(PECL newt >= 0.1)

newt_checkbox —

Description

resource newt_checkbox ( int $left , int $top , string $text , string $def_value [, string $seq ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

text

def_value

seq

Valeurs de retour


Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle

  • « newt_checkbox
  • newt_cls »
  • PHP Manual
  • Fonctions Newt
  • Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle

newt_clear_key_buffer

(PECL newt >= 0.1)

newt_clear_key_buffer — Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle

Description

void newt_clear_key_buffer ( void )

Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_wait_for_key() - Ne continue pas tant qu'une touche n'est pas appuyée


Description

  • « newt_clear_key_buffer
  • newt_compact_button »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_cls

(PECL newt >= 0.1)

newt_cls —

Description

void newt_cls ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_cls
  • newt_component_add_callback »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_compact_button

(PECL newt >= 0.1)

newt_compact_button —

Description

resource newt_compact_button ( int $left , int $top , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

text

Valeurs de retour


Description

  • « newt_compact_button
  • newt_component_takes_focus »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_component_add_callback

(PECL newt >= 0.1)

newt_component_add_callback —

Description

void newt_component_add_callback ( resource $component , mixed $func_name , mixed $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

component

func_name

data

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_component_add_callback
  • newt_create_grid »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_component_takes_focus

(PECL newt >= 0.1)

newt_component_takes_focus —

Description

void newt_component_takes_focus ( resource $component , bool $takes_focus )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

component

takes_focus

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_component_takes_focus
  • newt_cursor_off »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_create_grid

(PECL newt >= 0.1)

newt_create_grid —

Description

resource newt_create_grid ( int $cols , int $rows )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

cols

rows

Valeurs de retour


Description

  • « newt_create_grid
  • newt_cursor_on »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_cursor_off

(PECL newt >= 0.1)

newt_cursor_off —

Description

void newt_cursor_off ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_cursor_off
  • newt_delay »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_cursor_on

(PECL newt >= 0.1)

newt_cursor_on —

Description

void newt_cursor_on ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_cursor_on
  • newt_draw_form »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_delay

(PECL newt >= 0.1)

newt_delay —

Description

void newt_delay ( int $microseconds )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

microseconds

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_delay
  • newt_draw_root_text »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_draw_form

(PECL newt >= 0.1)

newt_draw_form —

Description

void newt_draw_form ( resource $form )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

Valeurs de retour

Aucune valeur n'est retournée.


Affiche la chaîne de caractères à la position indiquée

  • « newt_draw_form
  • newt_entry_get_value »
  • PHP Manual
  • Fonctions Newt
  • Affiche la chaîne de caractères à la position indiquée

newt_draw_root_text

(PECL newt >= 0.1)

newt_draw_root_text — Affiche la chaîne de caractères à la position indiquée

Description

void newt_draw_root_text ( int $left , int $top , string $text )

Affiche la chaîne de caractères à la position indiquée.

Liste de paramètres

left

Numéro de colonne

Note:

Si left est négatif, la position est mesurée à partir du côté opposé de l'écran.

top

Numéro de ligne

Note:

Si top est négatif, la position est mesurée à partir du côté opposé de l'écran.

text

Texte à afficher.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec newt_draw_root_text()

Ce code démontre l'affichage des titres dans les deux coins de l'écran.

<?php
 newt_init();
 newt_cls();

 newt_draw_root_text (2, 0, "Un peu de texte");
 newt_refresh();
 sleep(1);

 newt_draw_root_text (-30, 0, "Du texte dans l'autre coin");
 newt_refresh();
 sleep(1);

 newt_finished();
?>

Voir aussi

  • newt_push_help_line() - Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne
  • newt_pop_help_line() - Replace la ligne d'aide courante avec une provenant de la pile


Description

  • « newt_draw_root_text
  • newt_entry_set_filter »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_entry_get_value

(PECL newt >= 0.1)

newt_entry_get_value —

Description

string newt_entry_get_value ( resource $entry )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

entry

Valeurs de retour


Description

  • « newt_entry_get_value
  • newt_entry_set_flags »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_entry_set_filter

(PECL newt >= 0.1)

newt_entry_set_filter —

Description

void newt_entry_set_filter ( resource $entry , callable $filter , mixed $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

entry

filter

data

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_entry_set_filter
  • newt_entry_set »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_entry_set_flags

(PECL newt >= 0.1)

newt_entry_set_flags —

Description

void newt_entry_set_flags ( resource $entry , int $flags , int $sense )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

entry

flags

sense

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_entry_set_flags
  • newt_entry »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_entry_set

(PECL newt >= 0.1)

newt_entry_set —

Description

void newt_entry_set ( resource $entry , string $value [, bool $cursor_at_end ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

entry

value

cursor_at_end

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_entry_set
  • newt_finished »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_entry

(PECL newt >= 0.1)

newt_entry —

Description

resource newt_entry ( int $left , int $top , int $width [, string $init_value [, int $flags ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

width

init_value

flags

Valeurs de retour


Arrête l'interface newt

  • « newt_entry
  • newt_form_add_component »
  • PHP Manual
  • Fonctions Newt
  • Arrête l'interface newt

newt_finished

(PECL newt >= 0.1)

newt_finished — Arrête l'interface newt

Description

int newt_finished ( void )

Arrête l'interface newt. Cette fonction est appelée lorsque le programme est prêt à être arrêté.

Valeurs de retour

Retourne 1 en cas de succès ou 0 en cas d'échec.

Voir aussi

  • newt_init() - Initialise newt


Ajoute un seul composant à la forme

  • « newt_finished
  • newt_form_add_components »
  • PHP Manual
  • Fonctions Newt
  • Ajoute un seul composant à la forme

newt_form_add_component

(PECL newt >= 0.1)

newt_form_add_component — Ajoute un seul composant à la forme

Description

void newt_form_add_component ( resource $form , resource $component )

Ajoute un seul composant à la forme qui est passé dans le premier paramètre.

Liste de paramètres

form

Forme à laquelle le composant sera ajouté

component

Composant à ajouter à la forme

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec newt_form_add_component()

<?php
$form = newt_form();

$options = array("Authentication configuration", "Firewall configuration",
"Mouse configuration", "Network configuration", "Printer configuration",
"System services");

$list = newt_listbox(3, 2, 10);

foreach ($options as $l_item) {
   newt_listbox_add_entry($list, $l_item, $l_item);
}

newt_form_add_component($form, $list);
?>

Voir aussi

  • newt_form_add_components() - Ajoute plusieurs composants à la forme


Ajoute plusieurs composants à la forme

  • « newt_form_add_component
  • newt_form_add_hot_key »
  • PHP Manual
  • Fonctions Newt
  • Ajoute plusieurs composants à la forme

newt_form_add_components

(PECL newt >= 0.1)

newt_form_add_components — Ajoute plusieurs composants à la forme

Description

void newt_form_add_components ( resource $form , array $components )

Ajoute plusieurs composants à la forme form.

Liste de paramètres

form

Forme à laquelle les composants seront ajoutés

components

Tableau de composants à ajouter à la forme

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec newt_form_add_components()

<?php
$form = newt_form();

$b1 = newt_button(5, 12, "Run Tool");
$b2 = newt_button(21, 12, "Quit");

newt_form_add_components($form, array($b1, $b2));
?>

Voir aussi

  • newt_form_add_component() - Ajoute un seul composant à la forme


Description

  • « newt_form_add_components
  • newt_form_destroy »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_form_add_hot_key

(PECL newt >= 0.1)

newt_form_add_hot_key —

Description

void newt_form_add_hot_key ( resource $form , int $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

key

Valeurs de retour

Aucune valeur n'est retournée.


Détruit une forme

  • « newt_form_add_hot_key
  • newt_form_get_current »
  • PHP Manual
  • Fonctions Newt
  • Détruit une forme

newt_form_destroy

(PECL newt >= 0.1)

newt_form_destroy — Détruit une forme

Description

void newt_form_destroy ( resource $form )

Cette fonction libère les ressources mémoires utilisées par la forme et tous les composants qui avaient été ajoutés à la forme (en incluant les composants qui sont sur des formes filles). Une fois que la forme est détruite, aucun des composants qui appartenaient à la forme ne peut être utilisé.

Liste de paramètres

form

Composant forme, qui sera détruit

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_form_run() - Exécute une forme
  • newt_run_form() - Exécute une forme


Description

  • « newt_form_destroy
  • newt_form_run »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_form_get_current

(PECL newt >= 0.1)

newt_form_get_current —

Description

resource newt_form_get_current ( resource $form )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

Valeurs de retour


Exécute une forme

  • « newt_form_get_current
  • newt_form_set_background »
  • PHP Manual
  • Fonctions Newt
  • Exécute une forme

newt_form_run

(PECL newt >= 0.1)

newt_form_run — Exécute une forme

Description

void newt_form_run ( resource $form , array &$exit_struct )

Cette fonction exécute la forme qui lui est passée.

Liste de paramètres

form

Composant forme

exit_struct

Tableau, utilisé pour retourner des informations après l'exécution des composants de la forme. Les clés et leur valeur sont décrites dans la table suivante :

Structure Arrêt de Forme
Clé Index | Type de Valeur | Description
reason | entier | La raison indiquant pourquoi la forme a été quittée. Les valeurs possibles sont définies ici.
watch | ressource | Lien de ressource, spécifié dans newt_form_watch_fd()
key | entier | Raccourci
component | ressource | Composant, qui a causé la forme à quitter

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_run_form() - Exécute une forme


Description

  • « newt_form_run
  • newt_form_set_height »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_form_set_background

(PECL newt >= 0.1)

newt_form_set_background —

Description

void newt_form_set_background ( resource $from , int $background )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

from

background

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_form_set_background
  • newt_form_set_size »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_form_set_height

(PECL newt >= 0.1)

newt_form_set_height —

Description

void newt_form_set_height ( resource $form , int $height )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

height

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_form_set_height
  • newt_form_set_timer »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_form_set_size

(PECL newt >= 0.1)

newt_form_set_size —

Description

void newt_form_set_size ( resource $form )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_form_set_size
  • newt_form_set_width »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_form_set_timer

(PECL newt >= 0.1)

newt_form_set_timer —

Description

void newt_form_set_timer ( resource $form , int $milliseconds )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

milliseconds

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_form_set_timer
  • newt_form_watch_fd »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_form_set_width

(PECL newt >= 0.1)

newt_form_set_width —

Description

void newt_form_set_width ( resource $form , int $width )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

width

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_form_set_width
  • newt_form »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_form_watch_fd

(PECL newt >= 0.1)

newt_form_watch_fd —

Description

void newt_form_watch_fd ( resource $form , resource $stream [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

form

stream

flags

Valeurs de retour

Aucune valeur n'est retournée.


Crée une forme

  • « newt_form_watch_fd
  • newt_get_screen_size »
  • PHP Manual
  • Fonctions Newt
  • Crée une forme

newt_form

(PECL newt >= 0.1)

newt_form — Crée une forme

Description

resource newt_form ([ resource $vert_bar [, string $help [, int $flags ]]] )

Crée une nouvelle forme.

Liste de paramètres

vert_bar

Barre de défilement vertical qui devrait être associée à la forme

help

Chaîne de caractères d'aide

flags

Drapeaux variés

Valeurs de retour

Retourne le lien ressource du composant de la forme créé ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec newt_form()

Affiche un simple bouton "Quitter", qui ferme l'application une fois qu'il est pressé.

<?php
newt_init();
newt_cls();

$myform = newt_form();
$button = newt_button (5, 12, "Quitter");

newt_form_add_component ($myform, $button);
newt_refresh ();
newt_run_form ($myform);

newt_finished ();
newt_form_destroy ($myform);
?>

Voir aussi

  • newt_form_run() - Exécute une forme
  • newt_run_form() - Exécute une forme
  • newt_form_add_component() - Ajoute un seul composant à la forme
  • newt_form_add_components() - Ajoute plusieurs composants à la forme
  • newt_form_destroy() - Détruit une forme


Remplit les références passées avec la taille courante du terminal

  • « newt_form
  • newt_grid_add_components_to_form »
  • PHP Manual
  • Fonctions Newt
  • Remplit les références passées avec la taille courante du terminal

newt_get_screen_size

(PECL newt >= 0.1)

newt_get_screen_size — Remplit les références passées avec la taille courante du terminal

Description

void newt_get_screen_size ( int &$cols , int &$rows )

Remplit les références passées avec la taille courante du terminal.

Liste de paramètres

cols

Nombre de colonnes dans le terminal

rows

Nombre de lignes dans le terminal

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec newt_get_screen_size()

Ce code affiche la taille de l'écran de votre terminal.

<?php
 newt_init();
 newt_get_screen_size (&$cols, &$rows);
 newt_finished();

 print "Votre taille de terminal est : {$cols}x{$rows}\n";
?>

L'exemple ci-dessus va afficher :

Votre taille de terminal est : 138x47


Description

  • « newt_get_screen_size
  • newt_grid_basic_window »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_grid_add_components_to_form

(PECL newt >= 0.1)

newt_grid_add_components_to_form —

Description

void newt_grid_add_components_to_form ( resource $grid , resource $form , bool $recurse )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

form

recurse

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_grid_add_components_to_form
  • newt_grid_free »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_grid_basic_window

(PECL newt >= 0.1)

newt_grid_basic_window —

Description

resource newt_grid_basic_window ( resource $text , resource $middle , resource $buttons )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text

middle

buttons

Valeurs de retour


Description

  • « newt_grid_basic_window
  • newt_grid_get_size »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_grid_free

(PECL newt >= 0.1)

newt_grid_free —

Description

void newt_grid_free ( resource $grid , bool $recurse )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

recurse

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_grid_free
  • newt_grid_h_close_stacked »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_grid_get_size

(PECL newt >= 0.1)

newt_grid_get_size —

Description

void newt_grid_get_size ( resouce $grid , int &$width , int &$height )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

width

height

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_grid_get_size
  • newt_grid_h_stacked »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_grid_h_close_stacked

(PECL newt >= 0.1)

newt_grid_h_close_stacked —

Description

resource newt_grid_h_close_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

element1_type

element1

Valeurs de retour


Description

  • « newt_grid_h_close_stacked
  • newt_grid_place »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_grid_h_stacked

(PECL newt >= 0.1)

newt_grid_h_stacked —

Description

resource newt_grid_h_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

element1_type

element1

Valeurs de retour


Description

  • « newt_grid_h_stacked
  • newt_grid_set_field »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_grid_place

(PECL newt >= 0.1)

newt_grid_place —

Description

void newt_grid_place ( resource $grid , int $left , int $top )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

left

top

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_grid_place
  • newt_grid_simple_window »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_grid_set_field

(PECL newt >= 0.1)

newt_grid_set_field —

Description

void newt_grid_set_field ( resource $grid , int $col , int $row , int $type , resource $val , int $pad_left , int $pad_top , int $pad_right , int $pad_bottom , int $anchor [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

col

row

type

val

pad_left

pad_top

pad_right

pad_bottom

anchor

flags

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_grid_set_field
  • newt_grid_v_close_stacked »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_grid_simple_window

(PECL newt >= 0.1)

newt_grid_simple_window —

Description

resource newt_grid_simple_window ( resource $text , resource $middle , resource $buttons )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text

middle

buttons

Valeurs de retour


Description

  • « newt_grid_simple_window
  • newt_grid_v_stacked »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_grid_v_close_stacked

(PECL newt >= 0.1)

newt_grid_v_close_stacked —

Description

resource newt_grid_v_close_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

element1_type

element1

Valeurs de retour


Description

  • « newt_grid_v_close_stacked
  • newt_grid_wrapped_window_at »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_grid_v_stacked

(PECL newt >= 0.1)

newt_grid_v_stacked —

Description

resource newt_grid_v_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

element1_type

element1

Valeurs de retour


Description

  • « newt_grid_v_stacked
  • newt_grid_wrapped_window »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_grid_wrapped_window_at

(PECL newt >= 0.1)

newt_grid_wrapped_window_at —

Description

void newt_grid_wrapped_window_at ( resource $grid , string $title , int $left , int $top )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

title

left

top

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_grid_wrapped_window_at
  • newt_init »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_grid_wrapped_window

(PECL newt >= 0.1)

newt_grid_wrapped_window —

Description

void newt_grid_wrapped_window ( resource $grid , string $title )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

grid

title

Valeurs de retour

Aucune valeur n'est retournée.


Initialise newt

  • « newt_grid_wrapped_window
  • newt_label_set_text »
  • PHP Manual
  • Fonctions Newt
  • Initialise newt

newt_init

(PECL newt >= 0.1)

newt_init — Initialise newt

Description

int newt_init ( void )

Initialise l'interface newt. Cette fonction doit être appelée avant n'importe quelle autre fonction newt.

Valeurs de retour

Retourne 1 en cas de succès ou 0 en cas d'échec.

Voir aussi

  • newt_finished() - Arrête l'interface newt


Description

  • « newt_init
  • newt_label »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_label_set_text

(PECL newt >= 0.1)

newt_label_set_text —

Description

void newt_label_set_text ( resource $label , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

label

text

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_label_set_text
  • newt_listbox_append_entry »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_label

(PECL newt >= 0.1)

newt_label —

Description

resource newt_label ( int $left , int $top , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

text

Valeurs de retour


Description

  • « newt_label
  • newt_listbox_clear_selection »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_append_entry

(PECL newt >= 0.1)

newt_listbox_append_entry —

Description

void newt_listbox_append_entry ( resource $listbox , string $text , mixed $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

text

data

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_listbox_append_entry
  • newt_listbox_clear »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_clear_selection

(PECL newt >= 0.1)

newt_listbox_clear_selection —

Description

void newt_listbox_clear_selection ( resource $listbox )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_listbox_clear_selection
  • newt_listbox_delete_entry »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_clear

(PECL newt >= 0.1)

newt_listbox_clear —

Description

void newt_listbox_clear ( resource $listobx )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listobx

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_listbox_clear
  • newt_listbox_get_current »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_delete_entry

(PECL newt >= 0.1)

newt_listbox_delete_entry —

Description

void newt_listbox_delete_entry ( resource $listbox , mixed $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

key

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_listbox_delete_entry
  • newt_listbox_get_selection »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_get_current

(PECL newt >= 0.1)

newt_listbox_get_current —

Description

string newt_listbox_get_current ( resource $listbox )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

Valeurs de retour


Description

  • « newt_listbox_get_current
  • newt_listbox_insert_entry »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_get_selection

(PECL newt >= 0.1)

newt_listbox_get_selection —

Description

array newt_listbox_get_selection ( resource $listbox )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

Valeurs de retour


Description

  • « newt_listbox_get_selection
  • newt_listbox_item_count »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_insert_entry

(PECL newt >= 0.1)

newt_listbox_insert_entry —

Description

void newt_listbox_insert_entry ( resource $listbox , string $text , mixed $data , mixed $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

text

data

key

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_listbox_insert_entry
  • newt_listbox_select_item »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_item_count

(PECL newt >= 0.1)

newt_listbox_item_count —

Description

int newt_listbox_item_count ( resource $listbox )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

Valeurs de retour


Description

  • « newt_listbox_item_count
  • newt_listbox_set_current_by_key »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_select_item

(PECL newt >= 0.1)

newt_listbox_select_item —

Description

void newt_listbox_select_item ( resource $listbox , mixed $key , int $sense )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

key

sense

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_listbox_select_item
  • newt_listbox_set_current »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_set_current_by_key

(PECL newt >= 0.1)

newt_listbox_set_current_by_key —

Description

void newt_listbox_set_current_by_key ( resource $listbox , mixed $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

key

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_listbox_set_current_by_key
  • newt_listbox_set_data »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_set_current

(PECL newt >= 0.1)

newt_listbox_set_current —

Description

void newt_listbox_set_current ( resource $listbox , int $num )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

num

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_listbox_set_current
  • newt_listbox_set_entry »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_set_data

(PECL newt >= 0.1)

newt_listbox_set_data —

Description

void newt_listbox_set_data ( resource $listbox , int $num , mixed $data )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

num

data

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_listbox_set_data
  • newt_listbox_set_width »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_set_entry

(PECL newt >= 0.1)

newt_listbox_set_entry —

Description

void newt_listbox_set_entry ( resource $listbox , int $num , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

num

text

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_listbox_set_entry
  • newt_listbox »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox_set_width

(PECL newt >= 0.1)

newt_listbox_set_width —

Description

void newt_listbox_set_width ( resource $listbox , int $width )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

listbox

width

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_listbox_set_width
  • newt_listitem_get_data »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listbox

(PECL newt >= 0.1)

newt_listbox —

Description

resource newt_listbox ( int $left , int $top , int $height [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

height

flags

Valeurs de retour


Description

  • « newt_listbox
  • newt_listitem_set »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listitem_get_data

(PECL newt >= 0.1)

newt_listitem_get_data —

Description

mixed newt_listitem_get_data ( resource $item )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

item

Valeurs de retour


Description

  • « newt_listitem_get_data
  • newt_listitem »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listitem_set

(PECL newt >= 0.1)

newt_listitem_set —

Description

void newt_listitem_set ( resource $item , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

item

text

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_listitem_set
  • newt_open_window »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_listitem

(PECL newt >= 0.1)

newt_listitem —

Description

resource newt_listitem ( int $left , int $top , string $text , bool $is_default , resouce $prev_item , mixed $data [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

text

is_default

prev_item

data

flags

Valeurs de retour


Ouvre une fenêtre de la taille et la position spécifiée

  • « newt_listitem
  • newt_pop_help_line »
  • PHP Manual
  • Fonctions Newt
  • Ouvre une fenêtre de la taille et la position spécifiée

newt_open_window

(PECL newt >= 0.1)

newt_open_window — Ouvre une fenêtre de la taille et la position spécifiée

Description

int newt_open_window ( int $left , int $top , int $width , int $height [, string $title ] )

Ouvre une fenêtre de la taille et la position spécifiée.

Liste de paramètres

left

Emplacement du coin haut gauche de la fenêtre (numéro de colonne)

top

Emplacement du coin haut gauche de la fenêtre (numéro de ligne)

width

Largeur de la fenêtre

height

Hauteur de la fenêtre

title

Titre de la fenêtre

Valeurs de retour

Retourne 1 en cas de succès ou 0 en cas d'échec.

Voir aussi

  • newt_pop_window() - Supprime la fenêtre de premier plan de l'affichage
  • newt_centered_window() - Ouvre une fenêtre centrée de la taille spécifiée


Replace la ligne d'aide courante avec une provenant de la pile

  • « newt_open_window
  • newt_pop_window »
  • PHP Manual
  • Fonctions Newt
  • Replace la ligne d'aide courante avec une provenant de la pile

newt_pop_help_line

(PECL newt >= 0.1)

newt_pop_help_line — Replace la ligne d'aide courante avec une provenant de la pile

Description

void newt_pop_help_line ( void )

Replace la ligne d'aide courante avec une provenant de la pile.

Note:

Il est important de ne pas appeler la fonction newt_pop_help_line() plus que newt_push_help_line().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_push_help_line() - Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne


Supprime la fenêtre de premier plan de l'affichage

  • « newt_pop_help_line
  • newt_push_help_line »
  • PHP Manual
  • Fonctions Newt
  • Supprime la fenêtre de premier plan de l'affichage

newt_pop_window

(PECL newt >= 0.1)

newt_pop_window — Supprime la fenêtre de premier plan de l'affichage

Description

void newt_pop_window ( void )

Supprime la fenêtre de premier plan de l'affichage et redessine le secteur d'affichage sur lequel la fenêtre se trouvait.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_open_window() - Ouvre une fenêtre de la taille et la position spécifiée
  • newt_centered_window() - Ouvre une fenêtre centrée de la taille spécifiée


Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne

  • « newt_pop_window
  • newt_radio_get_current »
  • PHP Manual
  • Fonctions Newt
  • Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne

newt_push_help_line

(PECL newt >= 0.1)

newt_push_help_line — Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne

Description

void newt_push_help_line ([ string $text ] )

Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne.

Liste de paramètres

text

Nouveau message d'aide

Note:

Si non spécifié, la ligne d'aide est supprimée.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_pop_help_line() - Replace la ligne d'aide courante avec une provenant de la pile


Description

  • « newt_push_help_line
  • newt_radiobutton »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_radio_get_current

(PECL newt >= 0.1)

newt_radio_get_current —

Description

resource newt_radio_get_current ( resource $set_member )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

set_member

Valeurs de retour


Description

  • « newt_radio_get_current
  • newt_redraw_help_line »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_radiobutton

(PECL newt >= 0.1)

newt_radiobutton —

Description

resource newt_radiobutton ( int $left , int $top , string $text , bool $is_default [, resource $prev_button ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

text

is_default

prev_button

Valeurs de retour


Description

  • « newt_radiobutton
  • newt_reflow_text »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_redraw_help_line

(PECL newt >= 0.1)

newt_redraw_help_line —

Description

void newt_redraw_help_line ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_redraw_help_line
  • newt_refresh »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_reflow_text

(PECL newt >= 0.1)

newt_reflow_text —

Description

string newt_reflow_text ( string $text , int $width , int $flex_down , int $flex_up , int &$actual_width , int &$actual_height )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text

width

flex_down

flex_up

actual_width

actual_height

Valeurs de retour


Met à jour les portions modifiées de l'écran

  • « newt_reflow_text
  • newt_resize_screen »
  • PHP Manual
  • Fonctions Newt
  • Met à jour les portions modifiées de l'écran

newt_refresh

(PECL newt >= 0.1)

newt_refresh — Met à jour les portions modifiées de l'écran

Description

void newt_refresh ( void )

Pour améliorer les performances, newt met à jour seulement l'affichage lorsque c'est requis et non lorsque le programme lui demande d'écrire dans le terminal. Les applications peuvent forcer newt pour mettre à jour immédiatement les portions modifiées de l'écran en appelant cette fonction.

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_refresh
  • newt_resume »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_resize_screen

(PECL newt >= 0.1)

newt_resize_screen —

Description

void newt_resize_screen ([ bool $redraw ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

redraw

Valeurs de retour

Aucune valeur n'est retournée.


Récupère l'interface de newt après l'appel de newt_suspend

  • « newt_resize_screen
  • newt_run_form »
  • PHP Manual
  • Fonctions Newt
  • Récupère l'interface de newt après l'appel de newt_suspend

newt_resume

(PECL newt >= 0.1)

newt_resume — Récupère l'interface de newt après l'appel de newt_suspend()

Description

void newt_resume ( void )

Récupère l'interface après l'appel de newt_suspend().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_suspend() - Indique à newt de retourner à l'état initial du terminal


Exécute une forme

  • « newt_resume
  • newt_scale_set »
  • PHP Manual
  • Fonctions Newt
  • Exécute une forme

newt_run_form

(PECL newt >= 0.1)

newt_run_form — Exécute une forme

Description

resource newt_run_form ( resource $form )

Cette fonction exécute la forme qui lui est passée en argument.

Liste de paramètres

form

Composant forme

Valeurs de retour

Le composant qui a arrêté la forme.

Note:

Notez que cette fonction n'est pas similaire aux conventions de nom de newt. Il s'agit d'une plus vieille interface qui ne fonctionnera pas pour toutes les formes. Elle a été laissée dans newt seulement pour compatibilité des applications. Il s'agit d'une interface plus simple que la nouvelle newt_form_run() et est toujours utilisée plus souvent en pratique. Lorsqu'une application a terminée d'une forme, elle la détruit et tous les composants que la forme contient.

Voir aussi

  • newt_form_run() - Exécute une forme
  • newt_form_destroy() - Détruit une forme


Description

  • « newt_run_form
  • newt_scale »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_scale_set

(PECL newt >= 0.1)

newt_scale_set —

Description

void newt_scale_set ( resource $scale , int $amount )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scale

amount

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_scale_set
  • newt_scrollbar_set »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_scale

(PECL newt >= 0.1)

newt_scale —

Description

resource newt_scale ( int $left , int $top , int $width , int $full_value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

width

full_value

Valeurs de retour


Description

  • « newt_scale
  • newt_set_help_callback »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_scrollbar_set

(PECL newt >= 0.1)

newt_scrollbar_set —

Description

void newt_scrollbar_set ( resource $scrollbar , int $where , int $total )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scrollbar

where

total

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_scrollbar_set
  • newt_set_suspend_callback »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_set_help_callback

(PECL newt >= 0.1)

newt_set_help_callback —

Description

void newt_set_help_callback ( mixed $function )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

function

Valeurs de retour

Aucune valeur n'est retournée.


Assigne la fonction de rappel appelée sur suspension

  • « newt_set_help_callback
  • newt_suspend »
  • PHP Manual
  • Fonctions Newt
  • Assigne la fonction de rappel appelée sur suspension

newt_set_suspend_callback

(PECL newt >= 0.1)

newt_set_suspend_callback — Assigne la fonction de rappel appelée sur suspension

Description

void newt_set_suspend_callback ( callable $function , mixed $data )

newt_set_suspend_callback() assigne une fonction de rappel qui sera appelée lorsque l'utilisateur appuiera sur la touche de suspension (normalement ^Z). Si aucune fonction de rappel n'est configurée, la commande de suspension est ignorée.

Liste de paramètres

function

Une fonction de rappel, qui accepte un argument : data

data

Cette donnée sera passée à la fonction de rappel

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_suspend() - Indique à newt de retourner à l'état initial du terminal
  • newt_resume() - Récupère l'interface de newt après l'appel de newt_suspend


Indique à newt de retourner à l'état initial du terminal

  • « newt_set_suspend_callback
  • newt_textbox_get_num_lines »
  • PHP Manual
  • Fonctions Newt
  • Indique à newt de retourner à l'état initial du terminal

newt_suspend

(PECL newt >= 0.1)

newt_suspend — Indique à newt de retourner à l'état initial du terminal

Description

void newt_suspend ( void )

Indique newt de retourner à l'état initial du terminal. Une fois cela fait, l'application est suspendue (en envoyant à elle-même un SIGTSTP, embranche sur un programme enfant ou fait n'importe quoi d'autre qu'elle aime).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_resume() - Récupère l'interface de newt après l'appel de newt_suspend


Description

  • « newt_suspend
  • newt_textbox_reflowed »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_textbox_get_num_lines

(PECL newt >= 0.1)

newt_textbox_get_num_lines —

Description

int newt_textbox_get_num_lines ( resource $textbox )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

textbox

Valeurs de retour


Description

  • « newt_textbox_get_num_lines
  • newt_textbox_set_height »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_textbox_reflowed

(PECL newt >= 0.1)

newt_textbox_reflowed —

Description

resource newt_textbox_reflowed ( int $left , int $top , char $*text , int $width , int $flex_down , int $flex_up [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

*text

width

flex_down

flex_up

flags

Valeurs de retour


Description

  • « newt_textbox_reflowed
  • newt_textbox_set_text »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_textbox_set_height

(PECL newt >= 0.1)

newt_textbox_set_height —

Description

void newt_textbox_set_height ( resource $textbox , int $height )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

textbox

height

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_textbox_set_height
  • newt_textbox »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_textbox_set_text

(PECL newt >= 0.1)

newt_textbox_set_text —

Description

void newt_textbox_set_text ( resource $textbox , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

textbox

text

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_textbox_set_text
  • newt_vertical_scrollbar »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_textbox

(PECL newt >= 0.1)

newt_textbox —

Description

resource newt_textbox ( int $left , int $top , int $width , int $height [, int $flags ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

width

height

flags

Valeurs de retour


Description

  • « newt_textbox
  • newt_wait_for_key »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_vertical_scrollbar

(PECL newt >= 0.1)

newt_vertical_scrollbar —

Description

resource newt_vertical_scrollbar ( int $left , int $top , int $height [, int $normal_colorset [, int $thumb_colorset ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

left

top

height

normal_colorset

thumb_colorset

Valeurs de retour


Ne continue pas tant qu'une touche n'est pas appuyée

  • « newt_vertical_scrollbar
  • newt_win_choice »
  • PHP Manual
  • Fonctions Newt
  • Ne continue pas tant qu'une touche n'est pas appuyée

newt_wait_for_key

(PECL newt >= 0.1)

newt_wait_for_key — Ne continue pas tant qu'une touche n'est pas appuyée

Description

void newt_wait_for_key ( void )

Cette fonction ne continue pas tant qu'une touche n'est pas appuyée. La frappe est alors ignorée. Si une touche est déjà dans le tampon du terminal, cette fonction jette la frappe et continue immédiatement.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • newt_clear_key_buffer() - Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle


Description

  • « newt_wait_for_key
  • newt_win_entries »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_win_choice

(PECL newt >= 0.1)

newt_win_choice —

Description

int newt_win_choice ( string $title , string $button1_text , string $button2_text , string $format [, mixed $args [, mixed $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

title

button1_text

button2_text

format

args

Valeurs de retour


Description

  • « newt_win_choice
  • newt_win_menu »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_win_entries

(PECL newt >= 0.1)

newt_win_entries —

Description

int newt_win_entries ( string $title , string $text , int $suggested_width , int $flex_down , int $flex_up , int $data_width , array &$items , string $button1 [, string $... ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

title

text

suggested_width

flex_down

flex_up

data_width

items

button1

button2

Valeurs de retour

Exemples

Exemple #1 Exemple avec newt_win_entries()

<?php

newt_init();
newt_cls();

$entries[] = array('text' => 'First name:', 'value' => &$f_name);
$entries[] = array('text' => 'Last name:',  'value' => &$l_name);

$rc = newt_win_entries("User information", "Please enter your credentials:", 50, 7, 7, 30, $entries, "Ok", "Back");
newt_finished ();

if ($rc != 2) {
   echo "Your name is: $f_name $l_name\n";
}
?>


Description

  • « newt_win_entries
  • newt_win_message »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_win_menu

(PECL newt >= 0.1)

newt_win_menu —

Description

int newt_win_menu ( string $title , string $text , int $suggestedWidth , int $flexDown , int $flexUp , int $maxListHeight , array $items , int &$listItem [, string $button1 [, string $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

title

text

suggestedWidth

flexDown

flexUp

maxListHeight

items

listItem

button1

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_win_menu
  • newt_win_messagev »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_win_message

(PECL newt >= 0.1)

newt_win_message —

Description

void newt_win_message ( string $title , string $button_text , string $format [, mixed $args [, mixed $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

title

button_text

format

args

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_win_message
  • newt_win_ternary »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_win_messagev

(PECL newt >= 0.1)

newt_win_messagev —

Description

void newt_win_messagev ( string $title , string $button_text , string $format , array $args )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

title

button_text

format

args

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « newt_win_messagev
  • Readline »
  • PHP Manual
  • Fonctions Newt
  • Description

newt_win_ternary

(PECL newt >= 0.1)

newt_win_ternary —

Description

int newt_win_ternary ( string $title , string $button1_text , string $button2_text , string $button3_text , string $format [, mixed $args [, mixed $... ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

title

button1_text

button2_text

button3_text

format

args

Valeurs de retour


GNU Readline

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Readline
    • readline_add_history — Ajoute une ligne à l'historique
    • readline_callback_handler_install — Initialise l'interface et le terminal de rappel de readline, affiche le prompt et retourne immédiatement
    • readline_callback_handler_remove — Efface un gestionnaire de rappel readline
    • readline_callback_read_char — Lit un caractère et informe l'interface de rappel readline
    • readline_clear_history — Efface l'historique
    • readline_completion_function — Enregistre une fonction de complétion
    • readline_info — Lit ou modifie diverses variables internes de readline
    • readline_list_history — Liste l'historique
    • readline_on_new_line — Informe readline que le curseur est passé à une nouvelle ligne
    • readline_read_history — Lit l'historique
    • readline_redisplay — Demande à readline de refaire l'affichage
    • readline_write_history — Écrit dans l'historique
    • readline — Lit une ligne


Introduction

Les fonctions readline implémente une interface de la bibliothèque GNU Readline. Ce sont des fonctions qui fournissent des lignes de commandes éditables. Un exemple est fourni montrant comment Bash vous permet d'utiliser les flèches pour insérer des caractères ou scroller dans l'historique des commandes. De part la nature de cette bibliothèque, vous ne devriez pas en avoir besoin dans vos applications Web mais par contre, cela peut être très utile lors de l'écriture de scripts utilisés depuis la ligne de commande.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.


Pré-requis

Pour utiliser les fonctions readline, vous devez installer la bibliothèque libreadline. Vous pouvez la trouver sur la page d'accueil du projet GNU Readline, ici : » http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. Elle est maintenu par Chet Ramey, qui est également l'auteur de Bash.

Vous pouvez également utiliser ces fonctions avec la bibliothèque libedit, une alternative non-GPL à la bibliothèque readline. La bibliothèque libedit est sous licence BSD et est disponible au téléchargement depuis » http://www.thrysoee.dk/editline/.


Installation

Pour utiliser ces fonctions, vous devez compiler PHP, en version CGI ou CLI. Vous devez aussi utiliser l'option de compilation --with-readline[=DIR] . Si vous souhaitez utiliser la bibliothèque libedit readline, en remplacement, compilez PHP avec l'option --with-libedit[=DIR] .


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Readline
Nom | Défaut | Modifiable | Historique
cli.pager | "" | PHP_INI_ALL | Disponible depuis PHP 5.4.0.
cli.prompt | "\\b \\> " | PHP_INI_ALL | Disponible depuis PHP 5.4.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

cli.pager string

Outil externe pour afficher la sortie depuis la ligne de commande.

cli.prompt string

Prompt de la ligne de commande.


  • « Types de ressources
  • Fonctions Readline »
  • PHP Manual
  • Readline
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions Readline

Sommaire

  • readline_add_history — Ajoute une ligne à l'historique
  • readline_callback_handler_install — Initialise l'interface et le terminal de rappel de readline, affiche le prompt et retourne immédiatement
  • readline_callback_handler_remove — Efface un gestionnaire de rappel readline
  • readline_callback_read_char — Lit un caractère et informe l'interface de rappel readline
  • readline_clear_history — Efface l'historique
  • readline_completion_function — Enregistre une fonction de complétion
  • readline_info — Lit ou modifie diverses variables internes de readline
  • readline_list_history — Liste l'historique
  • readline_on_new_line — Informe readline que le curseur est passé à une nouvelle ligne
  • readline_read_history — Lit l'historique
  • readline_redisplay — Demande à readline de refaire l'affichage
  • readline_write_history — Écrit dans l'historique
  • readline — Lit une ligne


Ajoute une ligne à l'historique

  • « Fonctions Readline
  • readline_callback_handler_install »
  • PHP Manual
  • Fonctions Readline
  • Ajoute une ligne à l'historique

readline_add_history

(PHP 4, PHP 5, PHP 7)

readline_add_history — Ajoute une ligne à l'historique

Description

bool readline_add_history ( string $line )

Ajoute une ligne à l'historique.

Liste de paramètres

line

La ligne à ajouter à l'historique.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Initialise l'interface et le terminal de rappel de readline, affiche le prompt et retourne immédiatement

  • « readline_add_history
  • readline_callback_handler_remove »
  • PHP Manual
  • Fonctions Readline
  • Initialise l'interface et le terminal de rappel de readline, affiche le prompt et retourne immédiatement

readline_callback_handler_install

(PHP 5 >= 5.1.0, PHP 7)

readline_callback_handler_install — Initialise l'interface et le terminal de rappel de readline, affiche le prompt et retourne immédiatement

Description

bool readline_callback_handler_install ( string $prompt , callable $callback )

Définie une interface de rappel pour readline, affiche le prompt et retourne immédiatement. Appeler cette fonction deux fois sans effacer au préalable l'interface de rappel précédente effacera automatiquement et proprement l'ancienne interface.

La fonctionnalité de rappel est très utile lorsque combinée à la fonction stream_select() permettant l'interconnexion IO / entrée utilisateur, à la différence de readline().

Liste de paramètres

prompt

Le message de prompt.

callback

La fonction callback prend un paramètre : l'entrée utilisateur retournée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple d'interface de rappelde Readline

<?php
function rl_callback($ret)
{
    global $c, $prompting;

    echo "You entered: $ret\n";
    $c++;

    if ($c > 10) {
        $prompting = false;
        readline_callback_handler_remove();
    } else {
        readline_callback_handler_install("[$c] Entrer quelque chose : ", 'rl_callback');
    }
}

$c = 1;
$prompting = true;

readline_callback_handler_install("[$c] Entrer quelque chose : ", 'rl_callback');

while ($prompting) {
    $w = NULL;
    $e = NULL;
    $n = stream_select($r = array(STDIN), $w, $e, null);
    if ($n && in_array(STDIN, $r)) {
        // lit un caractère, appelera la fonction de callback lorsqu'une nouvelle ligne est entrée
        readline_callback_read_char();
    }
}

echo "Le prompt est désactivé. Tout a été effectué.\n";
?>

Voir aussi

  • readline_callback_handler_remove() - Efface un gestionnaire de rappel readline
  • readline_callback_read_char() - Lit un caractère et informe l'interface de rappel readline
  • stream_select() - Surveille la modification d'un ou plusieurs flux


Efface un gestionnaire de rappel readline

  • « readline_callback_handler_install
  • readline_callback_read_char »
  • PHP Manual
  • Fonctions Readline
  • Efface un gestionnaire de rappel readline

readline_callback_handler_remove

(PHP 5 >= 5.1.0, PHP 7)

readline_callback_handler_remove — Efface un gestionnaire de rappel readline

Description

bool readline_callback_handler_remove ( void )

Efface un gestionnaire de rappel installé précédemment et restaure les paramètres du terminal.

Valeurs de retour

Retourne TRUE si un gestionnaire de rappel précédemment installé a été effacé ou FALSE s'il n'a pas été trouvé.

Exemples

Voir la fonction readline_callback_handler_install() pour un exemple concernant l'utilisation de l'interface de rappel readline.

Voir aussi

  • readline_callback_handler_install() - Initialise l'interface et le terminal de rappel de readline, affiche le prompt et retourne immédiatement
  • readline_callback_read_char() - Lit un caractère et informe l'interface de rappel readline


Lit un caractère et informe l'interface de rappel readline

  • « readline_callback_handler_remove
  • readline_clear_history »
  • PHP Manual
  • Fonctions Readline
  • Lit un caractère et informe l'interface de rappel readline

readline_callback_read_char

(PHP 5 >= 5.1.0, PHP 7)

readline_callback_read_char — Lit un caractère et informe l'interface de rappel readline

Description

void readline_callback_read_char ( void )

Lit un caractère de l'entrée utilisateur. Lorsqu'une ligne est reçue, la fonction informe l'interface de rappel readline installée en utilisant readline_callback_handler_install() qu'une ligne est prête à être entrée.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Voir la fonction readline_callback_handler_install() pour un exemple concernant l'utilisation de l'interface de rappel readline.

Voir aussi

  • readline_callback_handler_install() - Initialise l'interface et le terminal de rappel de readline, affiche le prompt et retourne immédiatement
  • readline_callback_handler_remove() - Efface un gestionnaire de rappel readline


Efface l'historique

  • « readline_callback_read_char
  • readline_completion_function »
  • PHP Manual
  • Fonctions Readline
  • Efface l'historique

readline_clear_history

(PHP 4, PHP 5, PHP 7)

readline_clear_history — Efface l'historique

Description

bool readline_clear_history ( void )

Efface l'historique.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Enregistre une fonction de complétion

  • « readline_clear_history
  • readline_info »
  • PHP Manual
  • Fonctions Readline
  • Enregistre une fonction de complétion

readline_completion_function

(PHP 4, PHP 5, PHP 7)

readline_completion_function — Enregistre une fonction de complétion

Description

bool readline_completion_function ( callable $function )

Enregistre une nouvelle fonction de complétion. C'est la même fonctionnalité que lorsque vous utilisez la touche de tabulation sous Bash.

Liste de paramètres

function

Vous devez fournir le nom d'une fonction qui accepte un nom partiel de commande, et retourne une liste de fonctions complète possibles.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Lit ou modifie diverses variables internes de readline

  • « readline_completion_function
  • readline_list_history »
  • PHP Manual
  • Fonctions Readline
  • Lit ou modifie diverses variables internes de readline

readline_info

(PHP 4, PHP 5, PHP 7)

readline_info — Lit ou modifie diverses variables internes de readline

Description

mixed readline_info ([ string $varname [, string $newvalue ]] )

Lit/modifie diverses variables internes.

Liste de paramètres

varname

Un nom de variable.

newvalue

Si fourni, ce sera la nouvelle valeur à définir.

Valeurs de retour

Appelée sans paramètre, readline_info() retourne une tableau contenant les valeurs des paramètres de Readline. Les éléments seront indexés par les clés suivantes : "done", "end", "erase_empty_line", "library_version", "line_buffer", "mark", "pending_input", "point", "prompt", "readline_name" et "terminal_name".

Si appelée avec un ou deux paramètres, l'ancienne valeur est retournée.


Liste l'historique

  • « readline_info
  • readline_on_new_line »
  • PHP Manual
  • Fonctions Readline
  • Liste l'historique

readline_list_history

(PHP 4, PHP 5, PHP 7)

readline_list_history — Liste l'historique

Description

array readline_list_history ( void )

Liste l'historique.

Valeurs de retour

Retourne un tableau avec la liste de toutes les lignes de commandes de l'historique. Les éléments sont indexés numériquement, à partir de 0.


Informe readline que le curseur est passé à une nouvelle ligne

  • « readline_list_history
  • readline_read_history »
  • PHP Manual
  • Fonctions Readline
  • Informe readline que le curseur est passé à une nouvelle ligne

readline_on_new_line

(PHP 5 >= 5.1.0, PHP 7)

readline_on_new_line — Informe readline que le curseur est passé à une nouvelle ligne

Description

void readline_on_new_line ( void )

Informe readline que le curseur est passé à une nouvelle ligne.

Valeurs de retour

Aucune valeur n'est retournée.


Lit l'historique

  • « readline_on_new_line
  • readline_redisplay »
  • PHP Manual
  • Fonctions Readline
  • Lit l'historique

readline_read_history

(PHP 4, PHP 5, PHP 7)

readline_read_history — Lit l'historique

Description

bool readline_read_history ([ string $filename ] )

Lit une ligne de l'historique depuis le fichier filename.

Liste de paramètres

filename

Chemin vers le fichier contenant l'historique des commandes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Demande à readline de refaire l'affichage

  • « readline_read_history
  • readline_write_history »
  • PHP Manual
  • Fonctions Readline
  • Demande à readline de refaire l'affichage

readline_redisplay

(PHP 5 >= 5.1.0, PHP 7)

readline_redisplay — Demande à readline de refaire l'affichage

Description

void readline_redisplay ( void )

Demande à readline de refaire l'affichage.

Valeurs de retour

Aucune valeur n'est retournée.


Écrit dans l'historique

  • « readline_redisplay
  • readline »
  • PHP Manual
  • Fonctions Readline
  • Écrit dans l'historique

readline_write_history

(PHP 4, PHP 5, PHP 7)

readline_write_history — Écrit dans l'historique

Description

bool readline_write_history ([ string $filename ] )

Écrit l'historique dans le fichier filename.

Liste de paramètres

filename

Chemin vers le fichier à sauvegarder.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Lit une ligne

  • « readline_write_history
  • Extensions sur l'archivage et la compression »
  • PHP Manual
  • Fonctions Readline
  • Lit une ligne

readline

(PHP 4, PHP 5, PHP 7)

readline — Lit une ligne

Description

string readline ([ string $prompt ] )

Retourne une ligne entrée par l'utilisateur. Vous devez ajouter cette ligne à l'historique vous-même, avec la fonction readline_add_history().

Liste de paramètres

prompt

Vous pouvez spécifier une chaîne de caractères à utiliser comme prompt à l'utilisateur.

Valeurs de retour

Retourne une chaîne de caractères depuis l'utilisateur. La ligne retournée a été débarrassée du caractère final de nouvelle ligne.

Exemples

Exemple #1 Exemple avec readline()

<?php
// Lit 3 commandes de l'utilisateur
for ($i=0; $i < 3; $i++) {
        $line = readline("Commande : ");
        readline_add_history($line);
}

// Liste l'historique
print_r(readline_list_history());

// Liste les variables
print_r(readline_info());
?>


Extensions sur l'archivage et la compression

  • Bzip2
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Bzip2
  • LZF
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions LZF
  • Phar
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Utiliser les archives Phar
    • Créer des archives Phar
    • Qu'est-ce qui fait d'un phar un phar et pas un tar ou un zip?
    • Phar — La classe Phar
    • PharData — La classe PharData
    • PharFileInfo — La classe PharFileInfo
    • PharException — La classe PharException
  • Rar — Archives RAR
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Rar
    • RarArchive — La classe RarArchive
    • RarEntry — La classe RarEntry
    • RarException — La classe RarException
  • Zip
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • ZipArchive — La classe ZipArchive
    • Fonctions Zip
  • Zlib — Compression Zlib
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Zlib


Bzip2

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions Bzip2
    • bzclose — Ferme un fichier bzip2
    • bzcompress — Compresse une chaîne avec bzip2
    • bzdecompress — Décompresse une chaîne bzip2
    • bzerrno — Retourne le code d'erreur bzip2
    • bzerror — Retourne le numéro et le message d'erreur bzip2 dans un tableau
    • bzerrstr — Retourne le message d'erreur bzip2
    • bzflush — Force l'écriture de toutes les données compressées
    • bzopen — Ouvre un fichier compressé avec bzip2
    • bzread — Lecture binaire d'un fichier bzip2
    • bzwrite — Écriture binaire dans un fichier bzip2


Introduction

Les fonctions bzip2 sont utilisées pour lire et écrire de façon transparente les fichiers compressés bzip2 (.bz2).


Pré-requis

Cette extension utilise les fonctions » bzip2 de la bibliothèque écrite par Julian Seward. Ce module nécessite bzip2/libbzip2, version >= 1.0.x.


Installation

Le support bzip2 par PHP n'est pas activé par défaut. Vous devez utiliser l'option de configuration --with-bz2[=DIR] lors de la compilation de PHP pour l'activer.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit un type de ressource : un pointeur de fichier identifiant le fichier bz2.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • Bzip2
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Exemples

Cet exemple ouvre un fichier temporaire et y écrit une chaîne de test, puis, affiche le contenu de ce fichier.

Exemple #1 Petit exemple avec bzip2

<?php

$filename = "/tmp/testfile.bz2";
$str = "Ceci est une chaîne de test.\n";

// Ouvre un fichier en écriture
$bz = bzopen($filename, "w");

// Écrit une chaîne
bzwrite($bz, $str);

// Ferme le fichier
bzclose($bz);

// Ouvre le fichier en lecture
$bz = bzopen($filename, "r");

// Lit 10 caractères
echo bzread($bz, 10);

// Affiche le contenu du fichier et on le ferme
echo bzread($bz);

bzclose($bz);

?>


Fonctions Bzip2

Sommaire

  • bzclose — Ferme un fichier bzip2
  • bzcompress — Compresse une chaîne avec bzip2
  • bzdecompress — Décompresse une chaîne bzip2
  • bzerrno — Retourne le code d'erreur bzip2
  • bzerror — Retourne le numéro et le message d'erreur bzip2 dans un tableau
  • bzerrstr — Retourne le message d'erreur bzip2
  • bzflush — Force l'écriture de toutes les données compressées
  • bzopen — Ouvre un fichier compressé avec bzip2
  • bzread — Lecture binaire d'un fichier bzip2
  • bzwrite — Écriture binaire dans un fichier bzip2


Ferme un fichier bzip2

  • « Fonctions Bzip2
  • bzcompress »
  • PHP Manual
  • Fonctions Bzip2
  • Ferme un fichier bzip2

bzclose

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzclose — Ferme un fichier bzip2

Description

int bzclose ( resource $bz )

bzclose() ferme le fichier bzip2 représenté par le pointeur bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • bzopen() - Ouvre un fichier compressé avec bzip2


Compresse une chaîne avec bzip2

  • « bzclose
  • bzdecompress »
  • PHP Manual
  • Fonctions Bzip2
  • Compresse une chaîne avec bzip2

bzcompress

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzcompress — Compresse une chaîne avec bzip2

Description

mixed bzcompress ( string $source [, int $blocksize = 4 [, int $workfactor = 0 ]] )

bzcompress() compresse la chaîne source et retourne les données ainsi encodées.

Liste de paramètres

source

La chaîne à compresser.

blocksize

Spécifie la taille de bloc utilisée durant la compression et doit être un nombre de 1 à 9, sachant que 9 représente la meilleure compression, mais qu'elle utilise plus de ressources pour se faire.

workfactor

Contrôle le comportement de la compression dans les pires cas de données hautement répétitives. Cette valeur peut aller de 0 à 250 (0 est une valeur spéciale).

En dehors de workfactor, le résultat sera le même.

Valeurs de retour

La chaîne compressée ou un numéro d'erreur si une erreur survient.

Exemples

Exemple #1 Compression de données

<?php
$str = "donnée simple";
$bzstr = bzcompress($str, 9);
echo $bzstr;
?>

Voir aussi

  • bzdecompress() - Décompresse une chaîne bzip2


Décompresse une chaîne bzip2

  • « bzcompress
  • bzerrno »
  • PHP Manual
  • Fonctions Bzip2
  • Décompresse une chaîne bzip2

bzdecompress

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzdecompress — Décompresse une chaîne bzip2

Description

mixed bzdecompress ( string $source [, int $small = 0 ] )

bzdecompress() décompresse la chaîne source, contenant des données compressées bzip2.

Liste de paramètres

source

La chaîne à décompresser.

small

Si ce paramètre vaut TRUE, un autre algorithme de décompression sera utilisé : il consomme moins de mémoire (le maximum demandé tombe autour de 2300 ko), mais fonctionne globalement à la moitié de la vitesse.

Reportez-vous à la » documentation bzip2 pour plus de détails sur cette fonctionnalité.

Valeurs de retour

La chaîne décompressée ou un numéro d'erreur si une erreur survient.

Exemples

Exemple #1 Décompression d'une chaîne

<?php
$start_str = "phrase à compresser";
$bzstr = bzcompress($start_str);

echo "Chaîne compressée : ";
echo $bzstr;
echo "\n<br />\n";

$str = bzdecompress($bzstr);
echo "Chaîne décompressée : ";
echo $str;
echo "\n<br />\n";
?>

Voir aussi

  • bzcompress() - Compresse une chaîne avec bzip2


Retourne le code d'erreur bzip2

  • « bzdecompress
  • bzerror »
  • PHP Manual
  • Fonctions Bzip2
  • Retourne le code d'erreur bzip2

bzerrno

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzerrno — Retourne le code d'erreur bzip2

Description

int bzerrno ( resource $bz )

bzerrno() retourne le code d'erreur du fichier bz2 représenté par le pointeur bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès avec la fonction bzopen().

Valeurs de retour

Retourne le code erreur sous la forme d'un entier.

Voir aussi

  • bzerror() - Retourne le numéro et le message d'erreur bzip2 dans un tableau
  • bzerrstr() - Retourne le message d'erreur bzip2


Retourne le numéro et le message d'erreur bzip2 dans un tableau

  • « bzerrno
  • bzerrstr »
  • PHP Manual
  • Fonctions Bzip2
  • Retourne le numéro et le message d'erreur bzip2 dans un tableau

bzerror

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzerror — Retourne le numéro et le message d'erreur bzip2 dans un tableau

Description

array bzerror ( resource $bz )

bzerror() retourne un tableau associatif avec le numéro et le message d'erreur du fichier bz2 représenté par le pointeur bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

Valeurs de retour

Retourne un tableau associatif, avec le code erreur dans l'entrée errno, et le message d'erreur dans l'entrée errstr.

Exemples

Exemple #1 Exemple avec bzerror()

<?php
$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

Voir aussi

  • bzerrno() - Retourne le code d'erreur bzip2
  • bzerrstr() - Retourne le message d'erreur bzip2


Retourne le message d'erreur bzip2

  • « bzerror
  • bzflush »
  • PHP Manual
  • Fonctions Bzip2
  • Retourne le message d'erreur bzip2

bzerrstr

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzerrstr — Retourne le message d'erreur bzip2

Description

string bzerrstr ( resource $bz )

bzerrstr() retourne le message d'erreur du fichier bz2 représenté par le pointeur bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

Valeurs de retour

Retourne une chaîne contenant le message d'erreur.

Voir aussi

  • bzerrno() - Retourne le code d'erreur bzip2
  • bzerror() - Retourne le numéro et le message d'erreur bzip2 dans un tableau


Force l'écriture de toutes les données compressées

  • « bzerrstr
  • bzopen »
  • PHP Manual
  • Fonctions Bzip2
  • Force l'écriture de toutes les données compressées

bzflush

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzflush — Force l'écriture de toutes les données compressées

Description

int bzflush ( resource $bz )

bzflush() force l'écriture de toutes les données bzip2 mises en tampon pour le fichier représenté par bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • bzread() - Lecture binaire d'un fichier bzip2
  • bzwrite() - Écriture binaire dans un fichier bzip2


Ouvre un fichier compressé avec bzip2

  • « bzflush
  • bzread »
  • PHP Manual
  • Fonctions Bzip2
  • Ouvre un fichier compressé avec bzip2

bzopen

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzopen — Ouvre un fichier compressé avec bzip2

Description

resource bzopen ( mixed $file , string $mode )

bzopen() ouvre un fichier bzip2 (.bz2) en écriture ou en lecture.

Liste de paramètres

file

Le nom du fichier à ouvrir ou une ressource de flux existante.

mode

Similaire à la fonction fopen(), seules les options 'r' (pour lecture), et 'w' (pour écriture) sont supportées. Toute autre option fera que la fonction retournera FALSE.

Valeurs de retour

Si l'ouverture échoue, bzopen() retourne FALSE, sinon, il retourne un pointeur vers le fichier ouvert.

Exemples

Exemple #1 Exemple avec bzopen()

<?php

$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Impossible d'ouvrir le fichier $file pour lecture");

bzclose($bz);

?>

Voir aussi

  • bzclose() - Ferme un fichier bzip2


Lecture binaire d'un fichier bzip2

  • « bzopen
  • bzwrite »
  • PHP Manual
  • Fonctions Bzip2
  • Lecture binaire d'un fichier bzip2

bzread

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzread — Lecture binaire d'un fichier bzip2

Description

string bzread ( resource $bz [, int $length = 1024 ] )

bzread() lit depuis le pointeur de fichier bzip2 donné.

La lecture s'arrête lorsque length (non-compressé) octets ont été lus ou si la fin du fichier est atteint, le premier des deux qui survient.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

length

Si non spécifié, bzread() lira 1024 (non-compressé) octets à la fois. Un maximum de 8192 octets non-compressés sera lu à la fois.

Valeurs de retour

Retourne les données non-compressées ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bzread()

<?php

$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Impossible d'ouvrir le fichier $file");

$decompressed_file = '';
while (!feof($bz)) {
  $decompressed_file .= bzread($bz, 4096);
}
bzclose($bz);

echo "Le contenu du fichier $file est : <br />\n";
echo $decompressed_file;

?>

Voir aussi

  • bzwrite() - Écriture binaire dans un fichier bzip2
  • feof() - Teste la fin du fichier
  • bzopen() - Ouvre un fichier compressé avec bzip2


Écriture binaire dans un fichier bzip2

  • « bzread
  • LZF »
  • PHP Manual
  • Fonctions Bzip2
  • Écriture binaire dans un fichier bzip2

bzwrite

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzwrite — Écriture binaire dans un fichier bzip2

Description

int bzwrite ( resource $bz , string $data [, int $length ] )

bzwrite() écrit le contenu de la chaîne data dans le fichier bzip2 représenté par bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

data

Les données écrites.

length

Si fourni, l'écriture s'arrêtera après que length (non-compressé) octets aient été écrits ou bien que la fin de data soit atteinte, le premier des deux qui survient.

Valeurs de retour

Retourne le nombre d'octets écrits ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bzwrite()

<?php
$str = "donné non-compressée";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

Voir aussi

  • bzread() - Lecture binaire d'un fichier bzip2
  • bzopen() - Ouvre un fichier compressé avec bzip2


LZF

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions LZF
    • lzf_compress — Compression LZF
    • lzf_decompress — Décompression LZF
    • lzf_optimized_for — Détermine le mode d'optimisation de l'extension LZF


Introduction

LZF est un algorithme de compression très rapide, idéal pour économiser de l'espace disque sans trop de perte de temps. Il peut être optimisé pour la vitesse ou pour la compression au moment de la compilation. Cette extension utilise la bibliothèque » liblzf créée par Marc Lehmann.


Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/lzf.

Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support lzf en utilisant l'option de configuration --with-lzf[=DIR] . Vous pouvez également passer l'option --enable-lzf-better-compression pour optimiser LZF d'un point de vue d'espace au détriment de la vitesse.

Les utilisateurs de Windows doivent activer la bibliothèque php_lzf.dll dans le php.ini pour pouvoir utiliser ces fonctions. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


  • « Types de ressources
  • Fonctions LZF »
  • PHP Manual
  • LZF
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions LZF

Sommaire

  • lzf_compress — Compression LZF
  • lzf_decompress — Décompression LZF
  • lzf_optimized_for — Détermine le mode d'optimisation de l'extension LZF


Compression LZF

  • « Fonctions LZF
  • lzf_decompress »
  • PHP Manual
  • Fonctions LZF
  • Compression LZF

lzf_compress

(PECL lzf >= 0.1.0)

lzf_compress — Compression LZF

Description

string lzf_compress ( string $data )

lzf_compress() compresse les données data en utilisant l'encodage LZF.

Liste de paramètres

data

La chaîne de caractères à compresser.

Valeurs de retour

Retourne les données compressées ou FALSE si une erreur survient.

Voir aussi

  • lzf_decompress() - Décompression LZF


Décompression LZF

  • « lzf_compress
  • lzf_optimized_for »
  • PHP Manual
  • Fonctions LZF
  • Décompression LZF

lzf_decompress

(PECL lzf >= 0.1.0)

lzf_decompress — Décompression LZF

Description

string lzf_decompress ( string $data )

lzf_compress() décompresse les données data en utilisant l'encodage LZF.

Liste de paramètres

data

La chaîne compressée.

Valeurs de retour

Retourne les données compressées ou FALSE si une erreur survient.

Voir aussi

  • lzf_compress() - Compression LZF


Détermine le mode d'optimisation de l'extension LZF

  • « lzf_decompress
  • Phar »
  • PHP Manual
  • Fonctions LZF
  • Détermine le mode d'optimisation de l'extension LZF

lzf_optimized_for

(PECL lzf >= 1.0.0)

lzf_optimized_for — Détermine le mode d'optimisation de l'extension LZF

Description

int lzf_optimized_for ( void )

Détermine le mode d'optimisation de l'extension LZF.

Valeurs de retour

Retourne 1 si LZF a été optimisé pour la vitesse, 0 pour la compression.


Phar

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Utiliser les archives Phar
    • Utiliser les archives Phar : Introduction
    • Utiliser les archives Phar : le flux phar
    • Utiliser les archives Phar : les classes Phar et PharData
  • Créer des archives Phar
    • Créer des archives Phar : Introduction
  • Qu'est-ce qui fait d'un phar un phar et pas un tar ou un zip?
    • Les constituants de toutes les archives Phar, indépendamment du format de fichier
    • Le conteneur de fichier Phar
    • Comparaison entre Phar, Tar et Zip
    • Les phars basés sur Tar
    • Les phars basés sur Zip
    • Le format de fichier Phar
    • Drapeaux "bitmappés" globaux du Phar
    • Définition des entrées du manifeste Phar
    • Phar Signature format
  • Phar — La classe Phar
    • Phar::addEmptyDir — Ajoute un répertoire vide à l'archive phar
    • Phar::addFile — Ajoute un fichier du système de fichiers à l'archive phar
    • Phar::addFromString — Ajoute un fichier depuis une chaîne de caractère à l'archive phar
    • Phar::apiVersion — Retourne la version de l'API
    • Phar::buildFromDirectory — Construit une archive phar à partir des fichiers d'un répertoire
    • Phar::buildFromIterator — Construit une archive phar à partir d'un itérateur
    • Phar::canCompress — Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
    • Phar::canWrite — Détermine si l'extension phar supporte la création et l'écriture des phars
    • Phar::compress — Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
    • Phar::compressAllFilesBZIP2 — Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2
    • Phar::compressAllFilesGZ — Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip
    • Phar::compressFiles — Compresse tous les fichiers de l'archive Phar courante'
    • Phar::__construct — Construit un objet d'archive Phar
    • Phar::convertToData — Convertit une archive phar en un fichier non-exécutable
    • Phar::convertToExecutable — Convertit une archive phar vers un autre format de fichier d'archive phar exécutable
    • Phar::copy — Copie un fichier appartenant à une archive vers un autre fichier de la même archive
    • Phar::count — Retourne le nombre d'entrées (fichiers) dans l'archive Phar
    • Phar::createDefaultStub — Crée un conteneur de chargement d'une archive Phar
    • Phar::decompress — Décompresse l'archive tar complète
    • Phar::decompressFiles — Décompresse tous les fichiers de l'archive Phar courante
    • Phar::delMetadata — Efface les méta-données globales du phar
    • Phar::delete — Efface un fichier au sein d'une archive phar
    • Phar::extractTo — Extrait le contenu d'une archive phar vers un répertoire
    • Phar::getMetadata — Retourne les méta-données de l'archive phar
    • Phar::getModified — Indique si le fichier phar a été modifié
    • Phar::getSignature — Retourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar
    • Phar::getStub — Retourne le chargeur PHP ou le conteneur de chargement d'une archive Phar
    • Phar::getSupportedCompression — Retourne un tableau des algorithmes de compression supportés
    • Phar::getSupportedSignatures — Retourne un tableau des types de signature supportés
    • Phar::getVersion — Retourne les informations de version de l'archive Phar
    • Phar::hasMetadata — Détermine si le phar a ou non des méta-données
    • Phar::interceptFileFuncs — Informe phar qu'il doit intercepter les fonctions de fichiers
    • Phar::isBuffering — Détermine si les opérations d'écriture du Phar sont mises en tampons ou sont directement inscrites sur le disque
    • Phar::isCompressed — Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
    • Phar::isFileFormat — Retourne TRUE si l'archive phar est basée sur le formats de fichier tar/phar/zip selon le paramètre
    • Phar::isValidPharFilename — Détermine si le nom de fichier spécifié est un nom de fichier valide pour une archive phar
    • Phar::isWritable — Retourne TRUE si l'archive phar peut être modifiée
    • Phar::loadPhar — Charge n'importe quelle archive phar avec un alias
    • Phar::mapPhar — Lit le phar exécuté et charge son manifeste
    • Phar::mount — Monte un chemin ou un fichier externe à un emplacement virtuel au sein de l'archive phar
    • Phar::mungServer — Définit une liste de maximum 4 variables $_SERVER qui doivent être modifiées lors de l'exécution
    • Phar::offsetExists — détermine si un fichier existe dans le phar
    • Phar::offsetGet — Obtient un objet PharFileInfo à partir d'un fichier
    • Phar::offsetSet — met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe
    • Phar::offsetUnset — Efface un fichier d'un phar
    • Phar::running — Retourne le chemin complet sur le disque ou l'URL phar complète de l'archive phar couramment exécutée
    • Phar::setAlias — Fixe l'alias de l'archive Phar
    • Phar::setDefaultStub — Utilisé pour fixer le chargeur PHP ou le conteneur de chargement d'une archive Phar en tant que chargeur par défaut
    • Phar::setMetadata — Fixe les métadonnées de l'archive phar
    • Phar::setSignatureAlgorithm — Fixe et applique l'algorithme de signature d'un phar
    • Phar::setStub — Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar
    • Phar::startBuffering — Démarre la mise en tampon de écritures Phar, ne modifie pas l'objet Phar sur le disque
    • Phar::stopBuffering — Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque
    • Phar::uncompressAllFiles — Décompresse tous les fichiers de l'archive Phar courante
    • Phar::unlinkArchive — Efface complètement une archive phar du disque et de la mémoire
    • Phar::webPhar — mapPhar pour les phars orientés web. Contrôleur pour les applications web
  • PharData — La classe PharData
    • PharData::addEmptyDir — Ajoute un répertoire vide à l'archive tar/zip
    • PharData::addFile — Ajoute un fichier du système de fichiers à l'archive tar/zip
    • PharData::addFromString — Ajoute un fichier du système de fichiers à l'archive tar/zip
    • PharData::buildFromDirectory — Construit une archive tar/zip à partir des fichiers d'un répertoire
    • PharData::buildFromIterator — Construit une archive tar ou zip à partir d'un itérateur
    • PharData::compress — Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2
    • PharData::compressFiles — Compresse tous les fichiers de l'archive tar/zip courante
    • PharData::__construct — Construit un objet d'archive tar ou zip non-exécutable
    • PharData::convertToData — Convertit une archive phar en une archive tar ou zip non-exécutable
    • PharData::convertToExecutable — Convertit une archive tar/zip non-exécutable en une archive phar exécutable
    • PharData::copy — Copie un fichier un fichier interne à l'archive phar vers un autre fichier au sein de la même archive
    • PharData::decompress — Décompresse l'archive Phar entière
    • PharData::decompressFiles — Décompresse tous les fichiers de l'archive zip courante
    • PharData::delMetadata — Efface les méta-données globales d'une archive zip
    • PharData::delete — Efface un fichier au sein de l'archive tar/zip
    • PharData::extractTo — Extrait le contenu d'une archive tar/zip vers un répertoire
    • PharData::isWritable — Vérifie si l'archive tar/zip peut être modifiée
    • PharData::offsetSet — remplit un fichier au sein de l'archive tar/zip avec le contenu d'un fichier externe ou d'une chaîne de caractères
    • PharData::offsetUnset — efface un fichier d'une archive tar/zip
    • PharData::setAlias — fonction inutile (Phar::setAlias n'est pas valide pour PharData)
    • PharData::setDefaultStub — fonction inutile (Phar::setDefaultStub n'est pas valide pour PharData)
    • Phar::setMetadata — Fixe les méta-données de l'archive
    • Phar::setSignatureAlgorithm — Assigne l'algorithme de signature d'un phar et l'applique
    • PharData::setStub — fonction inutile (Phar::setStub n'est pas valide pour PharData)
  • PharFileInfo — La classe PharFileInfo
    • PharFileInfo::chmod — Fixe les bits de permission spécifiques aux fichiers
    • PharFileInfo::compress — Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
    • PharFileInfo::__construct — Construit un objet d'entrée Phar
    • PharFileInfo::decompress — Décompresse l'entrée Phar courante au sein du phar
    • PharFileInfo::delMetadata — Efface les métadonnées de l'entrée
    • PharFileInfo::getCRC32 — Retourne le code CRC32 ou soulève une exception si le CRC n'a pas été vérifié
    • PharFileInfo::getCompressedSize — Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
    • PharFileInfo::getMetadata — Retourne les méta-données spécifiques attachées à un fichier
    • PharFileInfo::getPharFlags — Retourne les drapeaux du fichier Phar
    • PharFileInfo::hasMetadata — Retourne les méta-données de l'entrée
    • PharFileInfo::isCRCChecked — Détermine si le fichier a un CRC vérifié
    • PharFileInfo::isCompressed — Retourne si l'entrée est compressée
    • PharFileInfo::isCompressedBZIP2 — Détermine si l'archive Phar est compressée avec bzip2
    • PharFileInfo::isCompressedGZ — Détermine si l'archive Phar est compressée avec gzip
    • PharFileInfo::setCompressedBZIP2 — Compresse l'entrée Phar courante au sein du phar avec Bzip2
    • PharFileInfo::setCompressedGZ — Compresse l'entrée Phar courante au sein du phar avec gzip
    • PharFileInfo::setMetadata — Fixe les métadonnées spécifiques à un fichier
    • PharFileInfo::setUncompressed — Décompresse l'entrée Phar courante au sein du phar s'il y a lieu
  • PharException — La classe PharException
    • PharException — La classe PharException fournit une classe d'exception spécifique à phar pour essayer/attraper des blocs


Introduction

L'extension phar fournit un moyen de mettre une application PHP complète dans un fichier unique appelé un "phar" (PHP Archive) pour une installation et une configuration aisées. En plus de ce service, l'extension fournit aussi une classe d'abstraction de format de fichier pour créer et manipuler des fichiers tar et zip à travers la classe PharData, tout comme PDO fournit une interface unifiée pour accéder à des base de données différentes. Mais à l'inverse de PDO, qui ne peut pas transposer les données d'une base à l'autre, Phar a la possibilité de convertir des fichiers tar, zip et phar avec une simple ligne de code. Regardez Phar::convertToExecutable() pour avoir un exemple.

Qu'est-ce que phar? Les archives phar sont en fait un moyen pratique de grouper plusieurs fichiers en un seul. Ainsi, une archive phar permet de distribuer une application PHP complète dans un fichier unique et de l'exécuter à partir de ce fichier sans pour autant l'extraire sur le disque. De plus, des archives phar peuvent être exécutées par PHP aussi facilement que n'importe quel autre fichier, aussi bien en ligne de commande que via un serveur web. Phar est une sorte de clé USB pour les applications PHP.

Phar implémente cette fonctionnalité via un flux. Normalement, pour utiliser un fichier externe à partir d'un script PHP, vous devez utiliser la fonction include.

Exemple #1 Utiliser un fichier externe

<?php
 include '/chemin/vers/le/fichier/externe.php';
 ?>

On peut considérer que PHP traduit en fait /chemin/vers/le/fichier/externe.php en un flux file:///chemin/vers/le/fichier/externe.php, et qu'il utilise de façon cachée les fonctions de flux de fichiers plats pour accéder à des fichiers locaux.

Pour utiliser un fichier nommé fichier.php contenu dans une archive phar /chemin/vers/monphar.phar, la syntaxe est quasi similaire à la syntaxe file:// ci-dessus.

Exemple #2 Utilier un fichier contenu dans une archive phar

<?php
 include 'phar:///chemin/vers/monphar.phar/fichier.php';
 ?>

En fait, on peut traiter une archive phar comme s'il s'agissait d'un disque externe, en utilisant n'importe laquelle des fonctions relatives à fopen(), opendir() et mkdir() pour lire, changer ou créer des nouveaux fichiers ou répertoires au sein de l'archive phar. Celà permet à des applications PHP complètes d'être distribuées dans un seul fichier et d'être exécutées à partir de celui-ci

L'utilisation la plus courant d'une archive phar est de distribuer une application complète en un seul fichier. Par exemple, l'installeur PEAR qui est inclus avec les versions de PHP est distribué grâce à une archive phar. pour utiliser l'archive phar ainsi distribuée, celle-ci peut-être exécutée via la ligne de commande ou via un navigateur web.

Les archives phar peuvent être distribuées sous forme de fichiers tar, de fichiers zip ou de fichiers phar spécialement conçus pour l'extensions phar. Chaque format de fichier a ses avantages et ses inconvénients. Les fichiers zip et tar peuvent être extraits par n'importe quel outil tiers qui peut lire le format, mais requièrent l'extension phar pour être exécutés par PHP. Le format de fichier phar est unique et dédié à l'extension phar et peut être créé uniquement par celle-ci ou par le paquet PEAR » PHP_Archive, mais a l'avantage de ne pas nécessiter l'installation de l'extension phar pour que l'application empaquetée puisse être exécutée.

En d'autres mots, même avec l'extension phar désactivée, il est possible d'exécuter ou d'inclure une archive basée sur phar. Accéder à des fichiers individuels au sein d'une archive phar n'est possible qu'avec l'extension phar à moins que l'archive phar n'ait été créée par PHP_Archive.

L'extension phar est aussi capable de convertir une archive phar à partir d'un tar vers un fichier zip ou phar en une seule commande :

Exemple #3 Convertir une archive phar au format tar

<?php
 $phar = new Phar('monphar.phar');
 $pgz = $phar->convertToExecutable(Phar::TAR, Phar::GZ); // produit monphar.phar.tar.gz
 ?>

Phar peut compresser des fichiers individuels ou une archive entière en utilisant la compression gzip ou bzip2, et peut vérifier l'intégrité de l'archive automatiquement en utilisant des fonctions de signature MD5, SHA-1, SHA-256 ou SHA-512.

Enfin, l'extension phar est orientée sécurité, elle désactive par défaut les accès en écriture sur les archives phar exécutables et requiert la désactivation au niveau système du paramètre phar.readonly du php.ini pour créer ou modifier des archives phar. Des archives tar et zip sans le marqueur exécutable peuvent toujours être créées ou modifiées en utilisant la classe PharData.

Si vous créez des applications dans le but de les distribuer, vous devriez lire Comment créer des archives Phar. Si vous voulez davantage d'informations sur les différences entre les formats de fichier que phar supporte, vous devriez lire Phar, Tar et Zip.

Si vous utilisez des applications phar, il y a des astuces très utiles dans Comment utiliser des archives Phar

Le mot phar est la contraction de PHP et de Archive et est grandement inspiré du mot jar (Java Archive) familier aux développeurs Java.

L'implémentation des archives Phar est basée sur le paquet PEAR » PHP_Archive, et les détails d'implémentations sont les mêmes, bien que l'extension Phar soit plus puissante. En plus, celle-ci permet à la plupart des applications PHP d'être exécutées sans modification alors que les archives basées sur PHP_Archive requièrent souvent beaucoup de modification pour fonctionner.


Pré-requis

Phar requiert PHP 5.2.0 ou plus récent. Des fonctionnalités supplémentaires requièrent l'extension SPL pour tirer parti de l'itération et de l'accès sous forme de tableau au contenu d'un fichier Phar. Le flux phar ne requiert aucune extension supplémentaire pour fonctionner.

Vous pouvez éventuellement souhaiter activer les extensions zlib et bzip2 pour tirer parti du support phar compressé. De plus, pour exploiter les signatures OpenSSL, l'extension OpenSSL doit être activée.

A noter qu'un bogue dans le filtre de flux zlib.deflate corrigé en PHP 5.2.6 et plus récent pourrait causer la troncature des archives phar compressées en gzip ou bzip2.

PHP 5.3, configuré avec --enable-zend-multibyte rend phar dépendant de l'option ini detect_unicode.


Installation

L'extension Phar est incluse dans PHP depuis PHP 5.3.0. Phar peut aussi être installé depuis l'extension PECL pour les versions précédentes de PHP versions, la » page PECL de Phar contient plus d'informations et l'historique.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour le système de fichiers
Nom | Défaut | Modifiable | Historique
phar.readonly | "1" | PHP_INI_ALL |
phar.require_hash | "1" | PHP_INI_ALL |
phar.extract_list | "" | PHP_INI_ALL | Disponible de phar 1.1.0 à 1.2.3, supprimé en 2.0.0.
phar.cache_list | "" | PHP_INI_SYSTEM | Disponible à partir de phar 2.0.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

phar.readonly booléen

Cette option désactive la création ou la modification des archives Phar en utilisant le flux phar ou le support en écriture sur les objets Phar. Ce paramètre devrait toujours être activé sur des machines de production, car le support en écriture sur les archives phar pourrait mener à la création de virus basés sur PHP en cas d'utilisation conjuguée avec des vulnérabilités communes.

Note:

Ce paramètre ne peut être désactivé que dans php.ini pour des raisons de sécurité. Si phar.readonly est désactivé dans php.ini, l'utilisateur peut activer phar.readonly dans un script ou le désactiver plus tard. Si phar.readonly est activé dans php.ini, un script pourrait "réactiver" sans danger la variable INI, mais ne pourrait pas la désactiver.

phar.require_hash booléen

Cette option forcera toutes les archives Phar ouvertes à contenir un type de signature (à ce jour MD5, SHA1, SHA256 et SHA512 sont supportés), et toute archive Phar ne contenant pas de signature sera rejetée.

Note:

Ce paramètre ne peut être désactivé que dans php.ini pour des raisons de sécurité. Si phar.require_hash est désactivé dans php.ini, l'utilisateur peut activer phar.require_hash dans un script ou le désactiver plus tard. Si phar.require_hash est activé dans php.ini, un script pourrait "réactiver" sans danger la variable INI, mais ne pourrait pas la désactiver.

Ce paramètre n'affecte pas la lecture des fichiers tar avec la classe PharData.

phar.extract_list chaîne de caractères

Ce paramètre INI a été supprimé en phar 2.0.0.

Permet la correspondance entre le chemin complet d'une archive phar ou son alias et l'emplacement de ses fichiers extraits. Le format de ce paramètre est name=archive,name2=archive2. Cela permet l'extraction de fichiers phar sur le disque, et permet à phar d'agir comme une sorte de correspondance vers des fichiers extraits sur disque. C'est souvent utilisé pour des raisons de performance ou pour aider au débogage de phar.

Exemple #1 Exemple d'utilisation de phar.extract_list

dans php.ini:
phar.extract_list = archive=/chemin/complet/vers/archive/,arch2=/chemin/complet/vers/arch2
<?php
include "phar://archive/content.php";
include "phar://arch2/foo.php";
?>

phar.cache_list chaîne de caractères

Ce paramètre INI a été ajouté en phar 2.0.0

Permet aux correspondances d'archives phar d'être traitées au démarrage du serveur web, augmentant de ce fait les performance d'accès aux fichiers contenus dans une archive phar et les rendant très proche d'un accès à des fichiers d'une installation classique sur disque.

Exemple #2 Exemple d'utilisation de phar.cache_list

dans php.ini (windows):
phar.cache_list =C:\chemin\vers\phar1.phar;C:\chemin\vers\phar2.phar
dans php.ini (unix):
phar.cache_list =/chemin/vers/phar1.phar:/chemin/vers/phar2.phar


Types de ressources

L'extension Phar fournit le flux phar, qui permet l'accès de façon transparente aux fichiers contenus dans un phar. Pour davantage d'information, lisez le format de fichier Phar


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes de compression Phar
Constante | Valeur | Description
Phar::NONE (entier) | 0x00000000 | aucune compression
Phar::COMPRESSED (entier) | 0x0000F000 | masque de bits pouvant être utilisé avec les drapeaux de fichier pour déterminer si une compression est utilisée
Phar::GZ (entier) | 0x00001000 | compression zlib (gzip)
Phar::BZ2 (entier) | 0x00002000 | compression bzip2
Les constantes de format de fichier Phar
Constante | Valeur | Description
Phar::SAME (entier) | 0 | Conserve le même format de fichier
Phar::PHAR (entier) | 1 | format de fichier phar
Phar::TAR (entier) | 2 | format de fichier tar
Phar::ZIP (entier) | 3 | format de fichier zip
Les constantes de signature Phar
Constante | Valeur | Description
Phar::MD5 (entier) | 0x0001 | signature avec l'algorithme md5
Phar::SHA1 (entier) | 0x0002 | signature avec l'algorithme sha1
Phar::SHA256 (entier) | 0x0003 | signature avec l'algorithme sha256 (requiert l'extension hash)
Phar::SHA512 (entier) | 0x0004 | signature avec l'algorithme sha512 (requiert l'extension hash)
Phar::OPENSSL (entier) | 0x0010 | signature avec une paire de clé privée/publique OpenSSL. C'est une véritable signature à clé asymétrique/
Les constantes d'écrasement de mime Phar webPhar
Constante | Valeur | Description
Phar::PHP (entier) | 1 | utilisée pour renseigner le paramètre d'écrasement mime de Phar::webPhar() et faire en sorte que l'extension soit parsée comme un fichier PHP
Phar::PHPS (entier) | 2 | utilisée pour renseigner le paramètre d'écrasement mime de Phar::webPhar() et faire en sorte que l'extension soit parsée comme un fichier PHP via highlight_file()


Utiliser les archives Phar

Sommaire

  • Utiliser les archives Phar : Introduction
  • Utiliser les archives Phar : le flux phar
  • Utiliser les archives Phar : les classes Phar et PharData


Utiliser les archives Phar : Introduction

Les archives Phar sont identiques dans le concept aux archives JAR de Java, mais sont conçues plus spécifiquement pour les besoins et la flexibilité des applications PHP. Une archive Phar est utilisée pour distribuer une application PHP complète ou une bibliothèque sous forme d'un fichier unique. Une application sous forme d'archive Phar est utilisée exactement de la même façon que n'importe quelle autre application PHP :

php applicationsympa.phar

L'utilisation d'une bibliothèque sous forme d'archive Phar est la même que n'importe quelle autre bibliothèque PHP :

<?php
include 'bibliothequesympa.phar';
?>

Le flux phar fournit le coeur de l'extension phar, et est décrit en détails ici. Le flux phar permet l'accès aux fichiers contenus dans une archive phar via les fonctions standards de fichier fopen(), opendir(), et toute autre fonctionnant sur des fichiers normaux. Le flux phar supporte toutes les opérations de lecture/écriture à la fois sur les fichiers et sur les répertoires.

<?php
include 'phar://bibliothequesympa.phar/fichier/interne.php';
header('Content-type: image/jpeg');
// les phars peuvent être atteint via le chemin complet ou via des alias
echo file_get_contents('phar:///chemin/complet/vers/bibliothequesympa.phar/images/wow.jpg');
?>

La classe Phar implémente des fonctionnalités avancées pour accéder aux fichiers et créer des archives phar. La classe Phar est décrite en détails ici.

<?php
try {
    // ouvre un phar existant
    $p = new Phar('bibliothequesympa.phar', 0);
    // Phar étend la classe DirectoryIterator de SPL
    foreach (new RecursiveIteratorIterator($p) as $file) {
        // $file est une classe PharFileInfo et hérité de SplFileInfo
        echo $file->getFileName() . "\n";
        echo file_get_contents($file->getPathName()) . "\n"; // affiche le contenu;
    }
    if (isset($p['fichier/interne.php'])) {
        var_dump($p['fichier/interne.php']->getMetadata());
    }

    // crée un nouveau phar - phar.readonly doit être à 0 dans php.ini
    // phar.readonly est activé par défaut pour des raisons de sécurité.
    // Sur des serveurs de production, les Phars n'ont pas besoin d'être créés,
    // juste d'être exécutés.
    if (Phar::canWrite()) {
        $p = new Phar('nouveauphar.tar.phar', 0, 'nouveauphar.tar.phar');
        // On crée une archive Phar basée sur tar, compressée par gzip (.tar.gz)
        $p = $p->convertToExecutable(Phar::TAR, Phar::GZ);

        // crée une transaction - rien n'est écrit dans nouveauphar.phar
        // jusqu'à ce que stopBuffering() ne soit appelé, bien qu'un stockage temporaire soit requis
        $p->startBuffering();
        // ajoute tous les fichiers de /chemin/vers/leprojet dans le phar avec le préfixe "projet"
        $p->buildFromIterator(new RecursiveIteratorIterator(new DirectoryIterator('/chemin/vers/leprojet')), '/chemin/vers/');

        // ajoute un nouveau fichier en utilisant l'API d'accès par tableau
        $p['fichier1.txt'] = 'Information';
        $fp = fopen('grosfichier.dat', 'rb');
        // copie toutes les données du flux
        $p['data/grosfichier.dat'] = $fp;

        if (Phar::canCompress(Phar::GZ)) {
            $p['data/grosfichier.dat']->compress(Phar::GZ);
        }

        $p['images/wow.jpg'] = file_get_contents('images/wow.jpg');
        // toute valeur peut être sauvegardée comme métadonnée spécifique au fichier
        $p['images/wow.jpg']->setMetadata(array('mime-type' => 'image/jpeg'));
        $p['index.php'] = file_get_contents('index.php');
        $p->setMetadata(array('bootstrap' => 'index.php'));

        // sauvegarde l'archive phar sur le disque
        $p->stopBuffering();
    }
} catch (Exception $e) {
    echo 'N\'a pas pu ouvrir le Phar: ', $e;
}
?>

D'autre part, la vérification du contenu du fichier phar peut être faite en utilisant un des algorithme de signature symétrique (MD5, SHA1, SHA256 et SHA512 si ext/hash est activée) et en utilisant la signature asymétrique par clé publique/privée de OpenSSL (nouveauté de Phar 2.0.0). Pour tirer parti de la signature OpenSSL, vous devez générer une paire de clés publique/privée et utiliser la clé privée pour signer avec Phar::setSignatureAlgorithm(). En plus, la clé publique, extraite en utilisant ce code :

<?php
$public = openssl_get_publickey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($public, $pkey);
?>
doit être sauvegardée à part de l'archive phar qu'elle vérifie. Si l'archive phar est sauvegardée en tant que /chemin/vers/mon.phar, la clé publique doit être sauvegardée en tant que /chemin/vers/mon.phar.pubkey, sans quoi phar ne sera pas capable de vérifier la signature OpenSSL.

Depuis la version 2.0.0, la classe Phar fournit aussi trois méthodes statiques, Phar::webPhar(), Phar::mungServer() et Phar::interceptFileFuncs() qui sont cruciales pour empaqueter des applications PHP visant à être utilisée sur un système de fichiers classique ou en tant qu'application web. Phar::webPhar() implémente un contrôleur qui route les appels HTTP vers le bon endroit de l'archive phar. Phar::mungServer() est utilisé pour modifier les valeurs du tableau $_SERVER pour dire aux applications d'utiliser ces valeurs. Phar::interceptFileFuncs() dit à Phar d'intercepter les appels à fopen(), file_get_contents(), opendir(), et à toutes les fonctions basées sur stat (file_exists(), is_readable(), etc) et route tous les chemins relatif vers les bons endroits de l'archive phar.

Par exemple, empaqueter une version de la célèbre application phpMyAdmin dans une archive phar nécessite juste ce simple script et, dès lors, phpMyAdmin.phar.tar.php peut être accédé comme un fichier classique à partir de votre serveur web, après avoir modifié le couple utilisateur/motdepasse :

<?php
@unlink('phpMyAdmin.phar.tar.php');
copy('phpMyAdmin-2.11.3-english.tar.gz', 'phpMyAdmin.phar.tar.php');
$a = new Phar('phpMyAdmin.phar.tar.php');
$a->startBuffering();
$a["phpMyAdmin-2.11.3-english/config.inc.php"] = '<?php
/* Servers configuration */
$i = 0;

/* Server localhost (config:root) [1] */
$i++;
$cfg[\'Servers\'][$i][\'host\'] = \'localhost\';
$cfg[\'Servers\'][$i][\'extension\'] = \'mysqli\';
$cfg[\'Servers\'][$i][\'connect_type\'] = \'tcp\';
$cfg[\'Servers\'][$i][\'compress\'] = false;
$cfg[\'Servers\'][$i][\'auth_type\'] = \'config\';
$cfg[\'Servers\'][$i][\'user\'] = \'root\';
$cfg[\'Servers\'][$i][\'password\'] = \'\';

/* End of servers configuration */
if (strpos(PHP_OS, \'WIN\') !== false) {
    $cfg[\'UploadDir\'] = getcwd();
} else {
    $cfg[\'UploadDir\'] = \'/tmp/pharphpmyadmin\';
    @mkdir(\'/tmp/pharphpmyadmin\');
    @chmod(\'/tmp/pharphpmyadmin\', 0777);
}';
$a->setStub('<?php
Phar::interceptFileFuncs();
Phar::webPhar("phpMyAdmin.phar", "phpMyAdmin-2.11.3-english/index.php");
echo "phpMyAdmin is intended to be executed from a web browser\n";
exit -1;
__HALT_COMPILER();
');
$a->stopBuffering();
?>


Utiliser les archives Phar : le flux phar

Le flux Phar supporte totalement fopen() pour les lectures/écritures (pas les concaténations), unlink(), stat(), fstat(), fseek(), rename() et le opérations de flux sur les répertoires opendir() et depuis la version 2.0.0, rmdir() et mkdir().

La compression et les métadonnées individuelles par fichier peuvent aussi être manipulées au sein de l'archive Phar en utilisant les contextes de flux :

<?php
$context = stream_context_create(array('phar' =>
                                    array('compress' => Phar::GZ)),
                                    array('metadata' => array('user' => 'cellog')));
file_put_contents('phar://mon.phar/unfichier.php', 0, $context);
?>

Le flux phar n'agit pas sur les fichiers distants et ne peut pas considérer les fichiers distants, etc... même si les options INI allow_url_fopen et allow_url_include sont désactivées.

Bien qu'il soit possible de créer des archives phar de zéro en utilisant juste les opérations sur les flux, il est préférable d'utiliser la fonctionnalité incluse dans la classe Phar. Le flux est mieux utilisé pour les opérations de lecture.


Utiliser les archives Phar : les classes Phar et PharData

La classe Phar supporte la lecture et la manipulation des archives Phar, ainsi que l'itération à travers la fonctionnalité héritée de la classe RecursiveDirectoryIterator. Avec le support de l'interface ArrayAccess, les fichiers contenus dans une archive Phar peuvent être accédés comme s'ils étaient membres d'un tableau associatif.

La classe PharData étend la classe Phar, et permet la création et la modification d'archives tar et zip non exécutables (données) même si phar.readonly=1 dans php.ini. Ainsi, PharData::setAlias() et PharData::setStub() sont toutes deux désactivées car les concepts d'alias et de conteneur sont restreints aux archives phar exécutables.

Il est important de noter que quand une archive Phar est créée, le chemin complet doit être passé au constructeur de l'objet Phar. Un chemin relatif empêcherait l'initialisation.

En supposant que $p est un objet initialisé de cette façon :

<?php
$p = new Phar('/chemin/vers/monphar.phar', 0, 'monphar.phar');
?>

Une archive Phar vide sera créée en tant que /chemin/vers/monphar.phar, ou si /chemin/vers/monphar.phar existe déjà, il sera ouvert de nouveau. Le terme monphar.phar démontre le concept d'un alias qui peut être utilisé pour référencer /chemin/vers/monphar.phar dans des URL comme ceci :

<?php
// ces deux appels à file_get_contents() sont équivalents si
// /chemin/vers/monphar.phar a un alias explicite de "monphar.phar"
// dans son mainfeste, ou si le phar a été initialisé avec l'instantiation de
// l'objet Phar de l'exemple précedent
$f = file_get_contents('phar:///chemin/vers/monphar.phar/nimportequoi.txt');
$f = file_get_contents('phar://monphar.phar/nimportequoi.txt');
?>

Avec l'objet Phar $p nouvellement créé, les choses suivantes sont possibles :

  • $a = $p['fichier.php'] crée une PharFileInfo qui réfère au contenu de phar://monphar.phar/fichier.php
  • $p['fichier.php'] = $v crée un nouveau fichier (phar://monphar.phar/fichier.php), ou écrase un fichier existant au sein de monphar.phar. $v peut être soit une chaîne ou un pointeur vers un fichier ouvert, dans quel cas le contenu du fichier sera utilisé pour créer le nouveau fichier. Notez que $p->addFromString('fichier.php', $v) est équivalent en terme de fonctionnalité au cas ci-dessus. Il est aussi possible d'ajouter le contenu d'un fichier avec $p->addFile('/chemin/vers/fichier.php', 'fichier.php'). Enfin, un répertoire vide peut être créé avec $p->addEmptyDir('vide').
  • isset($p['fichier.php']) peut être utilisé pour déterminer si phar://monphar.phar/fichier.php existe au sein de monphar.phar.
  • unset($p['fichier.php']) efface phar://monphar.phar/fichier.php de monphar.phar.

De plus, l'objet Phar est le seul moyen d'accéder aux métadonnées spécifiques de Phar, via Phar::getMetadata(), et c'est aussi le seul moyen de régler ou de récupérer le conteneur du chargeur de l'archive Phar via Phar::getStub() et Phar::setStub(). De plus, la compression pour l'archive Phar entière peut être manipulée seulement via la classe Phar.

La liste complète des fonctionnalités de l'objet Phar est documentée ci-dessous.

La classe PharFileInfo étend la classe SplFileInfo et ajoute plusieurs méthodes pour manipuler les métadonnées spécifiques à Phar d'un fichier contenu dans un Phar, telles que manipuler la compression ou les métadonnées.


  • « Utiliser les archives Phar : les classes Phar et PharData
  • Créer des archives Phar : Introduction »
  • PHP Manual
  • Phar
  • Créer des archives Phar

Créer des archives Phar

Sommaire

  • Créer des archives Phar : Introduction


Créer des archives Phar : Introduction

Sera entièrement écrit plus tard. Avant de lire ceci, soyez sûr de lire Comment utiliser des archives Phar.

Se documenter sur Phar::buildFromIterator() et les spécificités des choix de format de fichier disponibles pour les archives peut être un bon début. Une bonne compréhension de ce qu'est et de ce que fait un conteneur (stub) est cruciale pour la création d'archive phar, ce qui fait de Phar::setStub() et Phar::createDefaultStub() également un bon point de départ. Si vous distribuez des applications web, il est important de connaître Phar::webPhar() et la méthode associée Phar::mungServer(). Toute application qui accède à ses propres fichiers devrait aussi considérer l'utilisation de Phar::interceptFileFuncs().


Qu'est-ce qui fait d'un phar un phar et pas un tar ou un zip?

Sommaire

  • Les constituants de toutes les archives Phar, indépendamment du format de fichier
  • Le conteneur de fichier Phar
  • Comparaison entre Phar, Tar et Zip
  • Les phars basés sur Tar
  • Les phars basés sur Zip
  • Le format de fichier Phar
  • Drapeaux "bitmappés" globaux du Phar
  • Définition des entrées du manifeste Phar
  • Phar Signature format


Les constituants de toutes les archives Phar, indépendamment du format de fichier

Toute les archives Phar contiennent de trois à quatre sections:

  1. Un conteneur

  2. Un manifest décrivant le contenu

  3. Le contenu du fichier

  4. Une signature (facultative) pour vérifier l'intégrité (uniquement avec le format de fichier phar)


Le conteneur de fichier Phar

Un conteneur Phar est un simple fichier PHP. Le conteneur minimal contient :

<?php __HALT_COMPILER();

Un conteneur doit contenir au moins le jeton __HALT_COMPILER(); en guise de conclusion. Typiquement, un conteneur comportera les fonctionnalités de chargement suivantes :

<?php
Phar::mapPhar();
include 'phar://monphar.phar/index.php';
__HALT_COMPILER();

Il n'y a aucune restriction sur le contenu d'un conteneur Phar, si ce n'est le besoin d'être conclu par __HALT_COMPILER();. Le tag fermant PHP

?>
peut être inclus ou omis, mais il ne peut y avoir plus d'un espace entre le ; et le tag fermant
?>
 sans quoi l'extension phar ne sera pas capable de lire le manifeste de l'archive.

Dans une archive phar basée sur tar ou zip, le conteneur est stocké dans le fichier .phar/stub.php. Le conteneur par défaut des archives Phar basées sur phar contient approximativement 7ko de code pour extraire le contenu du phar et l'exécuter. Regardez la fonction Phar::createDefaultStub() pour davantage de détails.

L'alias phar est stocké, dans le cas d'une archive phar basée sur tar ou zip, dans le fichier .phar/alias.txt en tant que texte plein.


Comparaison entre Phar, Tar et Zip

Quels sont les avantages et les inconvénients de chacun des trois formats supportés par l'extension phar? Ce tableau tente de répondre à cette question.

Tableau comparatif : Phar, Tar et Zip
Fonctionnalité | Phar | Tar | Zip
Format de fichier standard | Non | Oui | Oui
Peut être exécuté sans l'extension Phar [1] | Oui | Non | Non
Compression par fichier | Oui | Non | Oui
Compression pour toute l'archive | Oui | Oui | Non
Validation par signature de toute l'archive | Oui | Oui | Oui (PHP 5.3.1+)
Support d'applications spécifiquement Web | Oui | Oui | Oui
Métadonnées par fichier | Oui | Oui | Oui
Métadonnées pour toute l'archive | Oui | Oui | Oui
Création/modification d'archive [2] | Oui | Oui | Oui
Support complet de toutes les fonctions de flux | Oui | Oui | Oui
Peut être créée/modifiée même si phar.readonly=1 [3] | Non | Oui | Oui

Astuce

[1] PHP ne peut accéder directement au contenu d'une archive Phar sans que l'extension Phar soit installée si elle utilise un conteneur qui extrait le contenu de l'archive phar. Le conteneur créé par Phar::createDefaultStub() extrait l'archive phar et exécute son contenu à partir d'un répertoire temporaire si aucune extension phar n'est trouvée.

Astuce

[2] Tous les accès en écriture nécessitent que phar.readonly soit désactivé dans le php.ini ou directement via la ligne de commande.

Astuce

[3] Seules les archives tar ou zip sans .phar dans leur nom et sans conteneur exécutable .phar/stub.php peuvent être créées si phar.readonly=1.


Les phars basés sur Tar

Les archives basées sur le format de fichier tar sont conformes au format moderne USTAR. Le design des en-têtes du fichier tar le rend plus efficace que le format de fichier zip et aussi efficace que le format de fichier phar quand il s'agit d'accéder aux données. Les noms de fichiers sont limités à 255 octets, y compris le chemin complet au sein de l'archive phar basée sur tar. Ces archives peuvent être intégralement compressées au format gzip ou bzip2 tout en restant exécutables par l'extension Phar.

Pour compresser une archive entière, utilisez Phar::compress(). Pour décompresser une archive entière, utilisez Phar::decompress().


Les phars basés sur Zip

Les archives basées sur le format de fichier zip supportent de nombreuses fonctionnalités incluses dans le format zip. Les métadonnées par fichier ou sur toute l'archive sont stockées dans les commentaires du fichier zip et de l'archive zip en tant que chaîne de caractères sérialisée. Les commentaires zip déjà existants seront lus sans problème en tant que chaîne. Les lectures/écritures compressées sont supportées par la compression zlib, et uniquement les lectures compressées par la compression bzip2. Il n'y a pas de limite sur le nombre de fichiers au sein d'une archive phar basée sur zip. Les répertoires vides sont stockés dans l'archive zip comme des fichiers avec un slash final, comme mon/repertoire/


Le format de fichier Phar

Le format de fichier phar est composé de conteneur/manifeste/contenu/signature, et stocke les informations cruciales de ce qui est contenu dans l'archive phar dans son manifeste.

Le manifeste Phar est un format hautement optimisé qui permet la spécification fichier par fichier de la compression, des permissions et même des métadonnées utilisateur tels que l'utilisateur ou le groupe propriétaire. Toutes les valeurs de plus d'un octet sont stockées sous forme petit-boutiste, Ã l'exception de la version de l'API qui est stockée pour des raisons historiques en 3 morceaux grand-boutistes.

Tous les drapeaux non utilisés sont réservés pour un usage futur et ne doivent pas être utilisés pour stocker des informations personnalisées. Utilisez les métadonnées par fichier pour stocker des métadonnées personnalisées sur des fichiers particuliers.

Le format de fichier basique du manifeste d'une archive Phar est le suivant :

Format global du manifeste Phar
Taille en octets | Description
4 octets | Longueur du manifeste en octets (limitée à 1 Mo)
4 octets | Nombre de fichiers dans le Phar
2 octets | Version de l'API du manifest Phar (à ce jour 1.0.0)
4 octets | Drapeaux "bitmappés" globaux du Phar
4 octets | Longueur de l'alias Phar
?? | L'alias Phar (longueur basée sur la valeur précédente)
4 octets | Longueur des métadonnées Phar (0 si aucune)
?? | métadonnées Phar sérialisées, stockées dans un format serialize()
au moins 24 * nombre d'octets des entrées | Entrées pour chaque fichier


Drapeaux "bitmappés" globaux du Phar

Voici les drapeaux "bitmappés" actuellement reconnus par l'extension Phar pour le bitmap plein global de Phar :

Valeurs de bitmap reconnues
Valeur | Description
0x00010000 | Si présent, le Phar contient une signature de vérification
0x00001000 | Si présent, le Phar contient au moins 1 fichier qui est compressé grâce à zlib
0x00002000 | Si présent, le Phar contient au moins 1 fichier qui est compressé grâce à bzip


Définition des entrées du manifeste Phar

Chaque fichier du manifeste contient les informations suivantes :

Entrée du manifeste Phar
Taille en octets | Description
4 octets | Longueur du nom de fichier en octets
?? | Nom de fichier (longueur basée sur la valeur précédente)
4 octets | Taille du fichier décompressé en octets
4 octets | Timestamp Unix du fichier
4 octets | Taille du fichier compressé en octets
4 octets | Somme de contrôle CRC32 du contenu décompressé du fichier
4 octets | Drapeaux bitmappés spécifiques au fichier
4 octets | Longueur des métadonnées du fichier sérialisées (0 si aucune)
?? | métadonnées du fichier sérialisées, stockées dans un format serialize()

A noter qu'à partir de l'API 1.1.1, les répertoires vides sont stockés comme des noms de fichier avec un slash final comme mon/repertoire/

Les valeurs reconnues de drapeaux bitmappés spécifiques au fichier sont :

Valeurs reconnues de bitmap
Valeur | Description
0x000001FF | Ces bits sont réservés pour définir des permissions spécifiques au fichier. Celles-ci sont utilisées pour fstat() et peuvent être utilisées pour recréer les permissions souhaitées en cas d'extraction.
0x00001000 | Si présent, le fichier est compressé grâce à zlib
0x00002000 | Si présent, le fichier est compressé grâce à bzip


Phar Signature format

Les Phar qui contiennent une signature ont toujours la signature ajoutée à la fin du Phar, après le chargeur, le manifeste et le contenu. Les deux types de signature supportés à ce jour sont MD5 et SHA1.

Format de signature
Longueur en octets | Description
16 ou 20 octets | La signature actuelle, 20 octets pour une SHA1, 16 octets pour une MD5, 32 octets pour une SHA256, et 64 octets pour une SHA512.
4 octets | Les drapeaux de signature. 0x0001 est utilisé pour définir une signature MD5, 0x0002 pour une SHA1, 0x0004 pour une SHA256 et 0x0008 pour une SHA512. Le support des signatures SHA256 et SHA512 a été introduit avec l'API version 1.1.0.
4 octets | GBMB magique utilisé pour définir la présence d'une signature.


La classe Phar

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Introduction

La classe Phar fournit une interface de haut niveau pour accéder et créer des archives phar.

Synopsis de la classe

Phar extends RecursiveDirectoryIterator implements Countable , ArrayAccess {
/* Méthodes */
public void addEmptyDir ( string $dirname )
public void addFile ( string $file [, string $localname ] )
public void addFromString ( string $localname , string $contents )
final public static string apiVersion ( void )
public array buildFromDirectory ( string $base_dir [, string $regex ] )
public array buildFromIterator ( Iterator $iter [, string $base_directory ] )
final public static bool canCompress ([ int $type = 0 ] )
final public static bool canWrite ( void )
public object compress ( int $compression [, string $extension ] )
public bool compressAllFilesBZIP2 ( void )
public bool compressAllFilesGZ ( void )
public void compressFiles ( int $compression )
public __construct ( string $fname [, int $flags [, string $alias ]] )
public PharData convertToData ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )
public Phar convertToExecutable ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )
public bool copy ( string $oldfile , string $newfile )
public int count ( void )
final public static string createDefaultStub ([ string $indexfile [, string $webindexfile ]] )
public object decompress ([ string $extension ] )
public bool decompressFiles ( void )
public bool delMetadata ( void )
public bool delete ( string $entry )
public bool extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )
public mixed getMetadata ( void )
public bool getModified ( void )
public array getSignature ( void )
public string getStub ( void )
final public static array getSupportedCompression ( void )
final public static array getSupportedSignatures ( void )
public string getVersion ( void )
public bool hasMetadata ( void )
final public static void interceptFileFuncs ( void )
public bool isBuffering ( void )
public mixed isCompressed ( void )
public bool isFileFormat ( int $format )
final public static bool isValidPharFilename ( string $filename [, bool $executable = true ] )
public bool isWritable ( void )
final public static bool loadPhar ( string $filename [, string $alias ] )
final public static bool mapPhar ([ string $alias [, int $dataoffset = 0 ]] )
final public static void mount ( string $pharpath , string $externalpath )
final public static void mungServer ( array $munglist )
public bool offsetExists ( string $offset )
public int offsetGet ( string $offset )
public void offsetSet ( string $offset , string $value )
public bool offsetUnset ( string $offset )
final public static string running ([ bool $retphar = true ] )
public bool setAlias ( string $alias )
public bool setDefaultStub ([ string $index [, string $webindex ]] )
public void setMetadata ( mixed $metadata )
public void setSignatureAlgorithm ( int $sigtype [, string $privatekey ] )
public bool setStub ( string $stub [, int $len = -1 ] )
public void startBuffering ( void )
public void stopBuffering ( void )
public bool uncompressAllFiles ( void )
final public static bool unlinkArchive ( string $archive )
final public static void webPhar ([ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, callable $rewrites ]]]]] )
}

Sommaire

  • Phar::addEmptyDir — Ajoute un répertoire vide à l'archive phar
  • Phar::addFile — Ajoute un fichier du système de fichiers à l'archive phar
  • Phar::addFromString — Ajoute un fichier depuis une chaîne de caractère à l'archive phar
  • Phar::apiVersion — Retourne la version de l'API
  • Phar::buildFromDirectory — Construit une archive phar à partir des fichiers d'un répertoire
  • Phar::buildFromIterator — Construit une archive phar à partir d'un itérateur
  • Phar::canCompress — Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::canWrite — Détermine si l'extension phar supporte la création et l'écriture des phars
  • Phar::compress — Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
  • Phar::compressAllFilesBZIP2 — Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2
  • Phar::compressAllFilesGZ — Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip
  • Phar::compressFiles — Compresse tous les fichiers de l'archive Phar courante'
  • Phar::__construct — Construit un objet d'archive Phar
  • Phar::convertToData — Convertit une archive phar en un fichier non-exécutable
  • Phar::convertToExecutable — Convertit une archive phar vers un autre format de fichier d'archive phar exécutable
  • Phar::copy — Copie un fichier appartenant à une archive vers un autre fichier de la même archive
  • Phar::count — Retourne le nombre d'entrées (fichiers) dans l'archive Phar
  • Phar::createDefaultStub — Crée un conteneur de chargement d'une archive Phar
  • Phar::decompress — Décompresse l'archive tar complète
  • Phar::decompressFiles — Décompresse tous les fichiers de l'archive Phar courante
  • Phar::delMetadata — Efface les méta-données globales du phar
  • Phar::delete — Efface un fichier au sein d'une archive phar
  • Phar::extractTo — Extrait le contenu d'une archive phar vers un répertoire
  • Phar::getMetadata — Retourne les méta-données de l'archive phar
  • Phar::getModified — Indique si le fichier phar a été modifié
  • Phar::getSignature — Retourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar
  • Phar::getStub — Retourne le chargeur PHP ou le conteneur de chargement d'une archive Phar
  • Phar::getSupportedCompression — Retourne un tableau des algorithmes de compression supportés
  • Phar::getSupportedSignatures — Retourne un tableau des types de signature supportés
  • Phar::getVersion — Retourne les informations de version de l'archive Phar
  • Phar::hasMetadata — Détermine si le phar a ou non des méta-données
  • Phar::interceptFileFuncs — Informe phar qu'il doit intercepter les fonctions de fichiers
  • Phar::isBuffering — Détermine si les opérations d'écriture du Phar sont mises en tampons ou sont directement inscrites sur le disque
  • Phar::isCompressed — Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::isFileFormat — Retourne TRUE si l'archive phar est basée sur le formats de fichier tar/phar/zip selon le paramètre
  • Phar::isValidPharFilename — Détermine si le nom de fichier spécifié est un nom de fichier valide pour une archive phar
  • Phar::isWritable — Retourne TRUE si l'archive phar peut être modifiée
  • Phar::loadPhar — Charge n'importe quelle archive phar avec un alias
  • Phar::mapPhar — Lit le phar exécuté et charge son manifeste
  • Phar::mount — Monte un chemin ou un fichier externe à un emplacement virtuel au sein de l'archive phar
  • Phar::mungServer — Définit une liste de maximum 4 variables $_SERVER qui doivent être modifiées lors de l'exécution
  • Phar::offsetExists — détermine si un fichier existe dans le phar
  • Phar::offsetGet — Obtient un objet PharFileInfo à partir d'un fichier
  • Phar::offsetSet — met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe
  • Phar::offsetUnset — Efface un fichier d'un phar
  • Phar::running — Retourne le chemin complet sur le disque ou l'URL phar complète de l'archive phar couramment exécutée
  • Phar::setAlias — Fixe l'alias de l'archive Phar
  • Phar::setDefaultStub — Utilisé pour fixer le chargeur PHP ou le conteneur de chargement d'une archive Phar en tant que chargeur par défaut
  • Phar::setMetadata — Fixe les métadonnées de l'archive phar
  • Phar::setSignatureAlgorithm — Fixe et applique l'algorithme de signature d'un phar
  • Phar::setStub — Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar
  • Phar::startBuffering — Démarre la mise en tampon de écritures Phar, ne modifie pas l'objet Phar sur le disque
  • Phar::stopBuffering — Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque
  • Phar::uncompressAllFiles — Décompresse tous les fichiers de l'archive Phar courante
  • Phar::unlinkArchive — Efface complètement une archive phar du disque et de la mémoire
  • Phar::webPhar — mapPhar pour les phars orientés web. Contrôleur pour les applications web


Ajoute un répertoire vide à l'archive phar

  • « Phar
  • Phar::addFile »
  • PHP Manual
  • Phar
  • Ajoute un répertoire vide à l'archive phar

Phar::addEmptyDir

(Unknown)

Phar::addEmptyDir — Ajoute un répertoire vide à l'archive phar

Description

public void Phar::addEmptyDir ( string $dirname )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Grâce à cette méthode, un répertoire vide est créé avec le chemin dirname. Cette méthode est identique à ZipArchive::addEmptyDir().

Liste de paramètres

dirname

Le nom du répertoire vide à créer dans l'archive phar

Valeurs de retour

pas de valeur de retour, une exception est levée en cas d'échec.

Exemples

Exemple #1 Un exemple avec Phar::addEmptyDir()

<?php
try {
    $a = new Phar('/chemin/vers/phar.phar');

    $a->addEmptyDir('/chemin/complet/vers/fichier');
    // démontre comment le fichier est stocké
    $b = $a['chemin/complet/vers/fichier']->isDir();
} catch (Exception $e) {
    // traite les erreurs ici
}
?>

Voir aussi

  • PharData::addEmptyDir() - Ajoute un répertoire vide à l'archive tar/zip
  • Phar::addFile() - Ajoute un fichier du système de fichiers à l'archive phar
  • Phar::addFromString() - Ajoute un fichier depuis une chaîne de caractère à l'archive phar


Ajoute un fichier du système de fichiers à l'archive phar

  • « Phar::addEmptyDir
  • Phar::addFromString »
  • PHP Manual
  • Phar
  • Ajoute un fichier du système de fichiers à l'archive phar

Phar::addFile

(Unknown)

Phar::addFile — Ajoute un fichier du système de fichiers à l'archive phar

Description

public void Phar::addFile ( string $file [, string $localname ] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Grâce à cette méthode, tout fichier ou URL peut être ajouté à l'archive phar. Si le second paramètre optionnel localname est spécifié, le fichier sera stocké dans l'archive de ce nom, sinon le paramètre file est utilisé comme chemin vers lequel stocker l'archive. Les URL doivent être locales, sans quoi une exception est levée. Cette méthode est identique à ZipArchive::addFile().

Liste de paramètres

file

Chemin absolu ou relatif vers un fichier du disque à ajouter à l'archive phar.

localname

Chemin où le fichier sera stocké dans l'archive.

Valeurs de retour

Pas de valeur de retour, une exception est levée en cas d'échec.

Exemples

Exemple #1 Un exemple avec Phar::addFile()

<?php
try {
    $a = new Phar('/chemin/vers/phar.phar');

    $a->addFile('/chemin/complet/vers/fichier');
    // démontre comment le fichier est stocké
    $b = $a['chemin/complet/vers/fichier']->getContent();

    $a->addFile('/chemin/complet/vers/fichier', 'mon/fichier.txt');
    $c = $a['mon/fichier.txt']->getContent();

    // démontre l'utilisation d'URL
    $a->addFile('http://www.exemple.com', 'exemple.html');
} catch (Exception $e) {
    // traite les erreurs ici
}
?>

Voir aussi

  • Phar::offsetSet() - met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe
  • PharData::addFile() - Ajoute un fichier du système de fichiers à l'archive tar/zip
  • Phar::addFromString() - Ajoute un fichier depuis une chaîne de caractère à l'archive phar
  • Phar::addEmptyDir() - Ajoute un répertoire vide à l'archive phar


Ajoute un fichier depuis une chaîne de caractère à l'archive phar

  • « Phar::addFile
  • Phar::apiVersion »
  • PHP Manual
  • Phar
  • Ajoute un fichier depuis une chaîne de caractère à l'archive phar

Phar::addFromString

(Unknown)

Phar::addFromString — Ajoute un fichier depuis une chaîne de caractère à l'archive phar

Description

public void Phar::addFromString ( string $localname , string $contents )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Grâce à cette méthode, toute chaîne peut être ajoutée à l'archive phar. Le fichier sera stocké dans l'archive avec localname en tant que chemin. Cette méthode est identique à ZipArchive::addFromString().

Liste de paramètres

localname

Chemin dans lequel le fichier sera stocké dans l'archive.

contents

Le contenu de fichier à stocker

Valeurs de retour

Pas de valeur de retour, une exception est levée en cas d'échec.

Exemples

Exemple #1 Un exemple avec Phar::addFromString()

<?php
try {
    $a = new Phar('/chemin/vers/phar.phar');

    $a->addFromString('chemin/vers/fichier.txt', 'mon fichier simple');
    $b = $a['chemin/vers/fichier.txt']->getContent();

    // pour ajouter du contenu à partir d'un descripteur de flux pour des gros fichiers, utilisez offsetSet()
    $c = fopen('/chemin/vers/grosfichier.bin');
    $a['grosfichier.bin'] = $c;
    fclose($c);
} catch (Exception $e) {
    // traite les erreurs ici
}
?>

Voir aussi

  • Phar::offsetSet() - met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe
  • PharData::addFromString() - Ajoute un fichier du système de fichiers à l'archive tar/zip
  • Phar::addFile() - Ajoute un fichier du système de fichiers à l'archive phar
  • Phar::addEmptyDir() - Ajoute un répertoire vide à l'archive phar


Retourne la version de l'API

  • « Phar::addFromString
  • Phar::buildFromDirectory »
  • PHP Manual
  • Phar
  • Retourne la version de l'API

Phar::apiVersion

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::apiVersion — Retourne la version de l'API

Description

final public static string Phar::apiVersion ( void )

Retourne la version de l'API du format de fichier phar qui sera utilisée pour la création de phars. L'extension Phar supporte la lecture des versions d'API 1.0.0 et supérieures. L'API version 1.1.0 est requise pour les hachages SHA-256 et SHA-512, et l'API version 1.1.1 est requise pour stocker des répertoires vides.

Liste de paramètres

Valeurs de retour

La version de l'API, par exemple "1.0.0".

Exemples

Exemple #1 Un exemple avecPhar::apiVersion()

<?php
echo Phar::apiVersion();
?>

L'exemple ci-dessus va afficher :

1.1.1


Construit une archive phar à partir des fichiers d'un répertoire

  • « Phar::apiVersion
  • Phar::buildFromIterator »
  • PHP Manual
  • Phar
  • Construit une archive phar à partir des fichiers d'un répertoire

Phar::buildFromDirectory

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::buildFromDirectory — Construit une archive phar à partir des fichiers d'un répertoire

Description

public array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Remplit une archive phar à partir du contenu d'un répertoire. Le second paramètre, optionnel, est une expression rationnelle (pcre) utilisée pour exclure des fichiers. Tout fichier dont le nom satisfait l'expression rationnelle sera inclus, les autres seront exclus. Pour un contrôle plus fin, utilisez Phar::buildFromIterator().

Liste de paramètres

base_dir

Le chemin absolu ou relatif vers le répertoire contenant tous les fichiers à ajouter à l'archive.

regex

Une expression rationnelle optionnelle utilisée pour filtrer la liste des fichiers. Seuls les fichiers dont le nom satisfait l'expression rationnelle seront inclus dans l'archive.

Valeurs de retour

Phar::buildFromDirectory() retourne un tableau associatif faisant correspondre le chemin interne du fichier avec le chemin complet sur le système de fichiers.

Erreurs / Exceptions

Cette méthode lève une exception BadMethodCallException quand elle est incapable d'instancier l'itérateur de répertoire interne, ou une exception PharException s'il y a eu des erreurs lors de la sauvegarde de l'archive.

Exemples

Exemple #1 Un exemple avecPhar::buildFromDirectory()

<?php
// crée avec l'alias "projet.phar"
$phar = new Phar('projet.phar', 0, 'projet.phar');
// ajoute des fichiers dans le projet
$phar->buildFromDirectory(dirname(__FILE__) . '/projet');
$phar->setStub($phar->createDefaultWebStub('cli/index.php', 'www/index.php'));

$phar2 = new Phar('projet2.phar', 0, 'projet2.phar');
// ajoute tous les fichiers dans le projet, mais juste les fichiers .php
$phar->buildFromDirectory(dirname(__FILE__) . '/projet', '/\.php$/');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Voir aussi

  • Phar::buildFromIterator() - Construit une archive phar à partir d'un itérateur


Construit une archive phar à partir d'un itérateur

  • « Phar::buildFromDirectory
  • Phar::canCompress »
  • PHP Manual
  • Phar
  • Construit une archive phar à partir d'un itérateur

Phar::buildFromIterator

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::buildFromIterator — Construit une archive phar à partir d'un itérateur

Description

public array Phar::buildFromIterator ( Iterator $iter [, string $base_directory ] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Remplit une archive phar à partir d'un itérateur. Deux styles d'itérateur sont supportés : les itérateurs qui font correspondre le nom de fichier au sein du phar avec le nom d'un fichier sur le disque, et les itérateurs comme DirectoryIterator qui retournent des objets SplFileInfo. Pour les itérateurs qui retournent des objets SplFileInfo, le second paramètre est obligatoire.

Liste de paramètres

iter

Un itérateur qui associe un fichier avec une position, ou bien retourne des objets SplFileInfo.

base_directory

Pour les itérateurs qui retournent des objets SplFileInfo, la portion de chemin absolu de chaque fichier qu'il faut supprimer lors de l'ajout à l'archive phar.

Valeurs de retour

Phar::buildFromIterator() retourne un tableau associatif qui associe la représentation interne du fichier à un chemin absolu dans le système.

Exemples

Exemple #1 Exemple avec Phar::buildFromIterator() et SplFileInfo

Pour la plupart des archives phar, l'archive reflète l'arborescence d'un répertoire, et le second style est le plus utile. Par exemple, pour créer une archive phar contenant les fichiers de l'arborescence du répertoire :

/chemin/vers/projet/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

Ce code peut être utilisé pour ajouter à l'archive "projet.phar" :

<?php
// crée avec l'alias "projet.phar"
$phar = new Phar('projet.phar', 0, 'projet.phar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new RecursiveDirectoryIterator('/chemin/vers/projet')),
    '/chemin/vers/projet');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Le fichier projet.phar peut alors être utilisé immédiatement. Phar::buildFromIterator() ne règle pas les paramètres tels que la compression ou les métadonnées; ceci peut cependant être fait après avoir créé l'archive phar.

Il est intéressant de noter que Phar::buildFromIterator() peut aussi être utilisé pour copier les éléments d'une archive phar existante, car l'objet Phar hérite de DirectoryIterator :

<?php
// crée avec l'alias "projet.phar"
$phar = new Phar('projet.phar', 0, 'projet.phar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new Phar('/chemin/vers/unautrephar.phar')),
    'phar:///chemin/vers/unautrephar.phar/chemin/vers/projet');
$phar->setStub($phar->createDefaultWebStub('cli/index.php', 'www/index.php'));
?>

Exemple #2 Exemple avec Phar::buildFromIterator() et d'autres itérateurs

La seconde forme d'itérateur peut être utilisée avec n'importe quel itérateur qui retourne une correspondance clé => valeur, tels que ArrayIterator :

<?php
// crée avec l'alias "projet.phar"
$phar = new Phar('projet.phar', 0, 'projet.phar');
$phar->buildFromIterator(
    new ArrayIterator(
     array(
        'interne/fichier.php' => dirname(__FILE__) . '/unfichier.php',
        'unautre/fichier.jpg' => fopen('/chemin/vers/grosfichier.jpg', 'rb'),
     )));
$phar->setStub($phar->createDefaultWebStub('cli/index.php', 'www/index.php'));
?>

Erreurs / Exceptions

Cette méthode émet une exception UnexpectedValueException quand l'itérateur retourne des valeurs fausses, telles qu'une clé entière à la place d'une chaîne; une exception BadMethodCallException quand un itérateur basé sur SplFileInfo est passé sans paramètre base_directory, ou une exception PharException s'il y a eu des erreurs lors de la sauvegarde de l'archive phar.

Voir aussi

  • Phar::buildFromDirectory() - Construit une archive phar à partir des fichiers d'un répertoire


Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2

  • « Phar::buildFromIterator
  • Phar::canWrite »
  • PHP Manual
  • Phar
  • Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2

Phar::canCompress

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::canCompress — Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2

Description

final public static bool Phar::canCompress ([ int $type = 0 ] )

Cette méthode doit être utilisée pour déterminer si la compression est possible avant de charger une archive phar qui contient des fichiers compressés.

Liste de paramètres

type

Phar::GZ et Phar::BZ2 peuvent être utilisées pour déterminer si la compression est possible avec respectivement zlib ou bzip2.

Valeurs de retour

TRUE si la compression/décompression est disponible, FALSE sinon.

Exemples

Exemple #1 Un exemple avec Phar::canCompress()

<?php
if (Phar::canCompress()) {
    echo file_get_contents('phar://pharcompresse.phar/interne/fichier.txt');
} else {
    echo 'compression non disponible';
}
?>

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compressFiles() - Compresse tous les fichiers de l'archive Phar courante'
  • Phar::decompressFiles() - Décompresse tous les fichiers de l'archive Phar courante
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::convertToExecutable() - Convertit une archive phar vers un autre format de fichier d'archive phar exécutable
  • Phar::convertToData() - Convertit une archive phar en un fichier non-exécutable


Détermine si l'extension phar supporte la création et l'écriture des phars

  • « Phar::canCompress
  • Phar::compress »
  • PHP Manual
  • Phar
  • Détermine si l'extension phar supporte la création et l'écriture des phars

Phar::canWrite

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::canWrite — Détermine si l'extension phar supporte la création et l'écriture des phars

Description

final public static bool Phar::canWrite ( void )

Cette méthode statique détermine si l'accès en écriture a été désactivé dans le php.ini du système via la variable INI phar.readonly.

Liste de paramètres

Valeurs de retour

TRUE si l'accès en écriture est possible, FALSE sinon.

Exemples

Exemple #1 Un exemple avec Phar::canWrite()

<?php
if (Phar::canWrite()) {
    file_put_contents('phar://monphar.phar/fichier.txt', 'coucou');
}
?>

Voir aussi

  • phar.readonly
  • Phar::isWritable() - Retourne TRUE si l'archive phar peut être modifiée


Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2

  • « Phar::canWrite
  • Phar::compressAllFilesBZIP2 »
  • PHP Manual
  • Phar
  • Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2

Phar::compress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::compress — Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2

Description

public object Phar::compress ( int $compression [, string $extension ] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Dans le cas des archives phar basées sur tar ou sur phar, cette méthode compresse l'archive complète en utilisant la compression gzip ou bzip2. Le fichier qui en résulte peut être traité avec la commande gzip/bzip2, ou accédée directement et de façon transparente avec l'extension Phar.

Dans le cas des archives phar basées sur Zip, cette méthode échoue en lançant une exception. L'extension zlib doit être activée pour compresser avec gzip, tandis que l'extension bzip2 doit être activée pour compresser avec bzip2. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour fonctionner.

En plus, cette méthode renomme automatiquement l'archive, en suffisant son nom par .gz, .bz2 ou en enlevant l'extension si Phar::NONE est passée pour supprimer la compression. Sinon, une extension de fichier peut aussi être spécifiée en utilisant le second paramètre.

Liste de paramètres

compression

La compression doit être soit Phar::GZ, soit Phar::BZ2 pour bénéficier de la compression, ou bien Phar::NONE pour éliminer la compression.

extension

Par défaut, l'extension est .phar.gz ou .phar.bz2 pour compresser les archives phar, et .phar.tar.gz ou .phar.tar.bz2 pour compresser les archives tar. Pour décompresser, les extensions par défaut sont .phar et .phar.tar.

Valeurs de retour

Retourne un objet Phar.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension zlib n'est pas disponible, ou si l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::compress()

<?php
$p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
$p1 = $p->compress(Phar::GZ); // copie vers /chemin/vers/mon.phar.gz
$p2 = $p->compress(Phar::BZ2); // copie vers /chemin/vers/mon.phar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /chemin/vers/mon.phar existe déjà
?>

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
  • PharData::compress() - Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::decompress() - Décompresse l'archive tar complète
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::compressFiles() - Compresse tous les fichiers de l'archive Phar courante'
  • Phar::decompressFiles() - Décompresse tous les fichiers de l'archive Phar courante


Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2

  • « Phar::compress
  • Phar::compressAllFilesGZ »
  • PHP Manual
  • Phar
  • Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2

Phar::compressAllFilesBZIP2

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::compressAllFilesBZIP2 — Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2

Description

public bool Phar::compressAllFilesBZIP2 ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser Phar::compress(), Phar::decompress(), Phar::compressFiles() et Phar::decompressFiles() à la place.

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Cette méthode compresse tous les fichiers de l'archive Phar en utilisant la compression bzip2. L'extension bzip2 doit être activée pour pouvoir bénéficier de cette fonctionnalité. De plus, si un ou des fichiers ont déjà été compressés en utilisant la compression gzip, l'extension zlib doit être activée pour pouvoir décompresser les fichiers et les re-compresser avec l'algorithme bzip2. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour fonctionner.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est on, si l'extension bzip2 n'est pas disponible, ou si un ou des fichiers ont été déjà compressés avec la compression gzip et que l'extension zlib n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::compressAllFilesBZIP2()

<?php
$p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
$p->compressAllFilesBZIP2();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
?>

L'exemple ci-dessus va afficher :

string(10) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(11) "monfichier2.txt"
bool(false)
bool(false)
bool(false)
string(10) "monfichier.txt"
bool(true)
bool(true)
bool(false)
string(11) "monfichier2.txt"
bool(true)
bool(true)
bool(false)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressedBZIP2() - Détermine si l'archive Phar est compressée avec bzip2
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::isCompressedGZ() - Détermine si l'archive Phar est compressée avec gzip
  • PharFileInfo::setCompressedBZIP2() - Compresse l'entrée Phar courante au sein du phar avec Bzip2
  • PharFileInfo::setUncompressed() - Décompresse l'entrée Phar courante au sein du phar s'il y a lieu
  • PharFileInfo::setCompressedGZ() - Compresse l'entrée Phar courante au sein du phar avec gzip
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compressAllFilesGZ() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::uncompressAllFiles() - Décompresse tous les fichiers de l'archive Phar courante


Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip

  • « Phar::compressAllFilesBZIP2
  • Phar::compressFiles »
  • PHP Manual
  • Phar
  • Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip

Phar::compressAllFilesGZ

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::compressAllFilesGZ — Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip

Description

public bool Phar::compressAllFilesGZ ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser Phar::compress(), Phar::decompress(), Phar::compressFiles() et Phar::decompressFiles() à la place.

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Pour les archives phar basées sur tar, cette méthode compresse l'archive complète en utilisant la compression gzip. Le fichier qui en résulte peut être traité avec la commande gunzip, ou accédée directement et de façon transparente avec l'extension Phar.

Pour les archives phar basées sur Zip, cette méthode compresse tous les fichiers de l'archive Phar en utilisant la compression gzip. L'extension zlib doit être activée pour pouvoir bénéficier de cette fonctionnalité. De plus, si un ou des fichiers ont déjà été compressés en utilisant la compression bzip2, l'extension bzip2 doit être activée pour pouvoir décompresser les fichiers et les re-compresser avec l'algorithme gzip. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour fonctionner.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension zlib n'est pas disponible, ou si un ou des fichiers ont déjà été compressés avec l'algorithme bzip2 et que l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::compressAllFilesGZ()

<?php
$p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
$p->compressAllFilesGZ();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
?>

L'exemple ci-dessus va afficher :

string(10) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(11) "monfichier2.txt"
bool(false)
bool(false)
bool(false)
string(10) "monfichier.txt"
bool(true)
bool(false)
bool(true)
string(11) "monfichier22.txt"
bool(true)
bool(false)
bool(true)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressedBZIP2() - Détermine si l'archive Phar est compressée avec bzip2
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::isCompressedGZ() - Détermine si l'archive Phar est compressée avec gzip
  • PharFileInfo::setCompressedBZIP2() - Compresse l'entrée Phar courante au sein du phar avec Bzip2
  • PharFileInfo::setUncompressed() - Décompresse l'entrée Phar courante au sein du phar s'il y a lieu
  • PharFileInfo::setCompressedGZ() - Compresse l'entrée Phar courante au sein du phar avec gzip
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compressAllFilesBZIP2() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::uncompressAllFiles() - Décompresse tous les fichiers de l'archive Phar courante


Compresse tous les fichiers de l'archive Phar courante'

  • « Phar::compressAllFilesGZ
  • Phar::__construct »
  • PHP Manual
  • Phar
  • Compresse tous les fichiers de l'archive Phar courante'

Phar::compressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::compressFiles — Compresse tous les fichiers de l'archive Phar courante'

Description

public void Phar::compressFiles ( int $compression )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Pour les archives phar basées sur tar, cette méthode lève une exception BadMethodCallException car la compression de fichier individuelle au sein d'une archive tar n'est pas supportée par le format de fichier. Utilisez Phar::compress() pour compresser une archive phar basée sur tar en entier.

Pour les extensions phar basées sur Zip, cette méthode compresse tous les fichiers de l'archive Phar en utilisant la compression spécifiée. Les extensions zlib ou bzip2 doivent être activée pour tirer parti de cette fonctionnalité. De plus, si un ou des fichiers ont déjà été compressé en utilisant la compression bzip2/zlib, l'extension adéquate doit être activée pour décompresser les fichiers avant de les recompresser. extensions must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2/zlib compression, the respective extension must be enabled in order to decompress the files prior to re-compressing. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour fonctionner.

Liste de paramètres

compression

La compression doit être soit Phar::GZ, soit Phar::BZ2 pour bénéficier de la compression, ou bien Phar::NONE pour éliminer la compression.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension zlib n'est pas disponible, ou si un ou des fichiers ont été compressés avec l'algorithme bzip2 et que l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::compressFiles()

<?php
$p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

L'exemple ci-dessus va afficher :

string(10) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(11) "monfichier2.txt"
bool(false)
bool(false)
bool(false)
string(10) "monfichier.txt"
int(4096)
bool(false)
bool(true)
string(11) "monfichier2.txt"
int(4096)
bool(false)
bool(true)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::decompressFiles() - Décompresse tous les fichiers de l'archive Phar courante
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::compress() - Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
  • Phar::decompress() - Décompresse l'archive tar complète


Construit un objet d'archive Phar

  • « Phar::compressFiles
  • Phar::convertToData »
  • PHP Manual
  • Phar
  • Construit un objet d'archive Phar

Phar::__construct

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::__construct — Construit un objet d'archive Phar

Description

public Phar::__construct ( string $fname [, int $flags [, string $alias ]] )

Liste de paramètres

fname

Le chemin vers une archive Phar existante ou à créer. Le nom du fichier doit contenir l'extension .phar.

flags

Les drapeaux à passer à la classe parente RecursiveDirectoryIterator.

alias

Alias avec lequel on doit faire référence à l'archive lors de l'appels aux fonctionnalités de flux.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la méthode est appelée deux fois, ou UnexpectedValueException si l'archive ne peut pas être ouverte.

Exemples

Exemple #1 Un exemple avec Phar::__construct()

<?php
try {
    $p = new Phar('/path/to/my.phar', FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::KEY_AS_FILENAME,
                  'mon.phar');
} catch (UnexpectedValueException $e) {
    die('Ne peut pas ouvrir mon.phar');
} catch (BadMethodCallException $e) {
    echo 'techniquement, ça ne peut pas arriver';
}
// ça fonctionne maintenant
echo file_get_contents('phar://mon.phar/exemple.txt');
// et ça fonctionne comme si nous avions tapé
echo file_get_contents('phar:///chemin/vers/mon.phar/exemple.txt');
?>


Convertit une archive phar en un fichier non-exécutable

  • « Phar::__construct
  • Phar::convertToExecutable »
  • PHP Manual
  • Phar
  • Convertit une archive phar en un fichier non-exécutable

Phar::convertToData

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::convertToData — Convertit une archive phar en un fichier non-exécutable

Description

public PharData Phar::convertToData ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )

Convertit une archive phar exécutable en un fichier tar ou zip. Pour rendre le tar ou le zip non exécutable, le conteneur phar et l'alias phar sont supprimés de l'archive nouvellement créée.

Si aucun changement n'est spécifié, cette méthode émet une exception BadMethodCallException si l'archive est dans le format de fichier phar. Pour les archives basées sur tar ou zip, cette méthode convertit l'archive en une archive non exécutable.

En cas de succès, la méthode crée une nouvelle archive sur le disque et retourne un objet PharData. L'ancienne archive n'est pas supprimée du disque, ce qui devrait être fait manuellement à la fin du procédé.

Liste de paramètres

format

Ce doit être l'un des formats Phar::TAR ou Phar::ZIP. Si ce paramètre est NULL, le format de fichier actuel sera conservé.

compression

Ce doit être Phar::NONE pour aucune compression globale, Phar::GZ la une compression basée sur zlib et Phar::BZ2 pour une compression basée sur bzip2.

extension

Ce paramètre est utilisée pour écraser l'extension par défaut d'une archive convertie. A noter que .phar ne peut pas être utilisé dans le nom de fichier d'une archive tar ou zip non-exécutable.

Si on convertit vers une archive basée sur tar, les extensions par défaut sont .tar, .tar.gz, et .tar.bz2 selon la compression spécifiée. Pour les archives phar basées sur zip, l'extension par défaut est .zip.

Valeurs de retour

La méthode retourne un objet PharData en cas de succès et émet une exception en cas d'échec.

Erreurs / Exceptions

Cette méthode émet une exception BadMethodCallException si elle n'est pas capable de compresser, si une méthode de compression inconnue a été spécifiée ou si l'archive demandée a été mise en tampon avec Phar::startBuffering() sans être conclue avec Phar::stopBuffering(), et émet une exception PharException si un quelconque problème a été rencontré pendant la phase de création de l'archive.

Exemples

Exemple #1 Un exemple avec Phar::convertToData()

Utilisons Phar::convertToData():

<?php
try {
    $tarphar = new Phar('monphar.phar.tar');
    // notez bien que monphar.phar.tar n'est *pas* effacé
    // on convertit vers le format de fichier tar non exéctuable
    // crée monphar.tar
    $tar = $tarphar->convertToData();
    // on convertit vers le format de fichier zip non exéctuable et crée monphar.zip
    $zip = $tarphar->convertToData(Phar::ZIP);
    // crée monphar.tbz
    $tgz = $tarphar->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
    // crée monphar.phar.tgz
    $phar = $tarphar->convertToData(Phar::PHAR); // émet une exception
} catch (Exception $e) {
    // on traite les erreurs ici
}
?>

Voir aussi

  • Phar::convertToExecutable() - Convertit une archive phar vers un autre format de fichier d'archive phar exécutable
  • PharData::convertToExecutable() - Convertit une archive tar/zip non-exécutable en une archive phar exécutable
  • PharData::convertToData() - Convertit une archive phar en une archive tar ou zip non-exécutable


Convertit une archive phar vers un autre format de fichier d'archive phar exécutable

  • « Phar::convertToData
  • Phar::copy »
  • PHP Manual
  • Phar
  • Convertit une archive phar vers un autre format de fichier d'archive phar exécutable

Phar::convertToExecutable

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::convertToExecutable — Convertit une archive phar vers un autre format de fichier d'archive phar exécutable

Description

public Phar Phar::convertToExecutable ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Cette méthode est utilisée pour convertir une archive phar vers un autre format de fichier. Par exemple, elle peut être utilisée pour créer une archive phar basée sur tar en partant d'une archive phar basée sur zip ou à partir d'une archive phar exécutable basée sur le format de fichier phar. De plus, elle peut aussi être utilisée pour appliquer une compression globale à une archive basée sur tar ou sur phar.

Si aucun changement n'est précisé, cette méthode lève une exception BadMethodCallException.

En cas de succès, la méthode crée une nouvelle archive sur le disque et retourne un objet Phar. L'ancienne archive n'est pas supprimée du disque, ce qui devrait être fait manuellement à la fin du procédé.

Liste de paramètres

format

Ce doit être l'un des formats Phar::PHAR, Phar::TAR, ou Phar::ZIP. Si ce paramètre est NULL, le format de fichier actuel sera conservé.

compression

Ce doit être Phar::NONE pour aucune compression globale, Phar::GZ la une compression basée sur zlib et Phar::BZ2 pour une compression basée sur bzip2.

extension

Ce paramètre est utilisée pour écraser l'extension par défaut d'une archive convertie. A noter que toutes les archives phar basée sur zip ou sur tar doivent comporter .phar dans leur extension pour être traitées comme une archive phar.

Si on convertit vers une archive basée sur phar, les extensions par défaut sont .phar, .phar.gz, ou .phar.bz2 selon la compression spécifiée. Pour les archives phar basées sur tar, les extensions par défaut sont .phar.tar, .phar.tar.gz, et .phar.tar.bz2. Pour les archives phar basées sur zip, l'extension par défaut est .phar.zip.

Valeurs de retour

La méthode retourne un objet Phar en cas de succès et lève une exception en cas d'échec.

Erreurs / Exceptions

Cette méthode lève une exception BadMethodCallException si elle n'est pas capable de compresser, si une méthode de compression inconnue a été spécifiée ou si l'archive demandée a été mise en tampon avec Phar::startBuffering() sans être conclue avec Phar::stopBuffering(), lève une exception UnexpectedValueException si le support en écriture a été désactivé et lève une exception PharException si un quelconque problème a été rencontré pendant la phase de création de l'archive.

Exemples

Exemple #1 Un exemple avec Phar::convertToExecutable()

Utilisons Phar::convertToExecutable() :

<?php
try {
    $tarphar = new Phar('monphar.phar.tar');
    // on le convertit vers le format de fichier phar
    // notez bien que monphar.phar.tar n'est *pas* effacé
    $phar = $tarphar->convertToExecutable(Phar::PHAR); // crée monphar.phar
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
    // crée monphar.phar.tgz
    $compressed = $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
    // on traite les erreurs ici
}
?>

Voir aussi

  • Phar::convertToData() - Convertit une archive phar en un fichier non-exécutable
  • PharData::convertToExecutable() - Convertit une archive tar/zip non-exécutable en une archive phar exécutable
  • PharData::convertToData() - Convertit une archive phar en une archive tar ou zip non-exécutable


Copie un fichier appartenant à une archive vers un autre fichier de la même archive

  • « Phar::convertToExecutable
  • Phar::count »
  • PHP Manual
  • Phar
  • Copie un fichier appartenant à une archive vers un autre fichier de la même archive

Phar::copy

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::copy — Copie un fichier appartenant à une archive vers un autre fichier de la même archive

Description

public bool Phar::copy ( string $oldfile , string $newfile )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Copie un fichier appartenant à une archive vers un nouveau fichier de la même archive. C'est une alternative orientée objet à l'utilisation de copy() avec un flux phar.

Liste de paramètres

oldfile

newfile

Valeurs de retour

Retourne TRUE en cas de succès, mais il est plus sûr d'encadrer l'appel à cette méthode dans un bloc try/catch et de considérer son succès si aucune exception n'est levée.

Erreurs / Exceptions

Lève une exception UnexpectedValueException si le fichier source n'existe pas, si le fichier destination existe déjà, si l'accès en écriture est désactivé, si ouvrir l'un ou l'autre des fichiers échoue, si la lecture du fichier source échoue, ou lève une exception PharException si l'écriture des changement dans le phar échoue.

Exemples

Exemple #1 Exemple avec Phar::copy()

Cet exemple montre comment utiliser Phar::copy() et la comparaison en terme de performance avec l'équivalent utilisant le flux phar. La différence principale entre les deux méthodes concerne la gestion des erreurs. Toutes les méthodes Phar lèvent des exceptions, là où les fonctions de flux utilisent trigger_error().

<?php
try {
    $phar = new Phar('monphar.phar');
    $phar['a'] = 'salut';
    $phar->copy('a', 'b');
    echo $phar['b']; // affiche "salut"
} catch (Exception $e) {
    // traite les erreurs
}

// l'équivalent en terme de flux du code ci-dessus
// des E_WARNING sont retournés plutôt que des exceptions
copy('phar://monphar.phar/a', 'phar//monphar.phar/c');
echo file_get_contents('phar://monphar.phar/c'); // affiche "salut"
?>


Retourne le nombre d'entrées (fichiers) dans l'archive Phar

  • « Phar::copy
  • Phar::createDefaultStub »
  • PHP Manual
  • Phar
  • Retourne le nombre d'entrées (fichiers) dans l'archive Phar

Phar::count

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::count — Retourne le nombre d'entrées (fichiers) dans l'archive Phar

Description

public int Phar::count ( void )

Liste de paramètres

Valeurs de retour

Le nombre de fichiers contenus dans le phar, ou 0 (le nombre zéro) si aucun.

Exemples

Exemple #1 Un exemple avec Phar::count()

<?php
// on s'assure que le phar n'existe pas
@unlink('lenouveauphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/lenouveauphar.phar', 0, 'le nouveauphar.phar');
} catch (Exception $e) {
    echo 'Ne peut pas créer le phar:', $e;
}
echo 'Le nouveau phar a ' . $p->count() . " entrées\n";
$p['file.txt'] = 'salut';
echo 'Le nouveau phar a ' . $p->count() . " entrées\n";
?>

L'exemple ci-dessus va afficher :

Le nouveau phar a 0 entrées
Le nouveau phar a 1 entrées


Crée un conteneur de chargement d'une archive Phar

  • « Phar::count
  • Phar::decompress »
  • PHP Manual
  • Phar
  • Crée un conteneur de chargement d'une archive Phar

Phar::createDefaultStub

(Unknown)

Phar::createDefaultStub — Crée un conteneur de chargement d'une archive Phar

Description

final public static string Phar::createDefaultStub ([ string $indexfile [, string $webindexfile ]] )

Cette méthode est destinée à la création de conteneurs spécifique au format de fichier phar et n'est pas conçue pour être utilisée avec des archives phar basées sur tar ou sur zip.

Les archives Phar contiennent un chargeur ou un conteneur écrit en PHP qui est exécuté quand l'archive est exécutée soit par une inclusion

<?php
include 'monphar.phar';
?>
ou par une simple exécution :
php monphar.phar

Cette méthode fournit un moyen simple et facile de créer un conteneur qui lancera un fichier de démarrage à partir de l'archive phar. En plus, des fichiers différents peuvent être spécifiés pour exécuter l'archive à partir de la ligne de commande ou d'un serveur web. Le conteneur de chargement appelle alors Phar::interceptFileFuncs() pour permettre l'empaquetage facile d'applications PHP accédant au système de fichiers. Si l'extension phar n'est pas présente, le conteneur de chargement extraira l'archive phar vers un répertoire temporaire et traitera les fichiers. Une fonction d'extinction effacera les fichier temporaires à la fin.

Valeurs de retour

Retourne une chaîne de caractères contenant un conteneur de chargement personnalisé qui permet à l'archive Phar créée de fonctionner avec ou sans l'extension Phar d'activée.

Erreurs / Exceptions

Lève une exception UnexpectedValueException si un des paramètres est plus long que 400 octets.

Exemples

Exemple #1 Exemple avec Phar::createDefaultStub()

<?php
try {
    $phar = new Phar('monphar.phar');
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (Exception $e) {
    // traite les erreurs
}
?>

Voir aussi

  • Phar::setStub() - Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar
  • Phar::getStub() - Retourne le chargeur PHP ou le conteneur de chargement d'une archive Phar


Décompresse l'archive tar complète

  • « Phar::createDefaultStub
  • Phar::decompressFiles »
  • PHP Manual
  • Phar
  • Décompresse l'archive tar complète

Phar::decompress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::decompress — Décompresse l'archive tar complète

Description

public object Phar::decompress ([ string $extension ] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Pour les archives phar basées sur tar et sur phar, cette méthode décompresse l'archive complète.

Pour les archives phar bases sur Zip, cette méthode échoue et lève une exception. L'extension zlib doit être active pour décompresser une archive compressée grâce à gzip, et l'extension bzip2 doit être active pour décompresser une archive compressée grâce à bzip2. Comme avec toutes les fonctionnalités qui modifient le coutenu d'un phar, la variable INI phar.readonly doit être à off pour fonctionner.

De plus, cette méthode change automatiquement l'extension de l'archive, .phar Par défaut pour les archives phar, ou .phar.tar pour les archives phar basées sur tar. Sinon, une extension de fichier peut aussi être spécifiée en utilisant le second paramètre.

Liste de paramètres

extension

Pour décompresser, les extension de fichier par défaut sont .phar et .phar.tar. Utilisez ce paramètre pour spécifier une autre extension de fichier. A noter que toutes les archives phar exécutables doivent contenir .phar dans leur nom de fichier.

Valeurs de retour

Un objet Phar est retourné.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension zlib n'est pas disponible, ou si l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::decompress()

<?php
$p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar.gz');
$p['monfichier.txt'] = 'salut';
$p['monfichier.txt'] = 'salut';
$p3 = $p2->decompress(); // crée /chemin/vers/mon.phar
?>

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
  • PharData::compress() - Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compress() - Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::compressFiles() - Compresse tous les fichiers de l'archive Phar courante'
  • Phar::decompressFiles() - Décompresse tous les fichiers de l'archive Phar courante


Décompresse tous les fichiers de l'archive Phar courante

  • « Phar::decompress
  • Phar::delMetadata »
  • PHP Manual
  • Phar
  • Décompresse tous les fichiers de l'archive Phar courante

Phar::decompressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::decompressFiles — Décompresse tous les fichiers de l'archive Phar courante

Description

public bool Phar::decompressFiles ( void )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Pour les archives phar basées sur tar, cette méthode lève une exception BadMethodCallException, car la compression individuelle des fichiers au sein d'une archive tar n'est pas supportée par le format de fichier. Utilisez Phar::compress() pour compresser en archive phar basée sur tar en entier.

Pour les archives phar basées sur Zip ou sur phar, cette méthode décompresse tous les fichiers de l'archive Phar. Les extensions zlib ou bzip2 doivent être activées pour tirer parti de cette fonctionnalité si n'importe lequel des fichiers est compressé en utilisant une la compression bzip2/zlib. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour fonctionner.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension zlib n'est pas disponible ou si un des fichiers est compressé en utilisant la compression bzip2 et que l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::decompressFiles()

<?php
$p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->decompressFiles();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

L'exemple ci-dessus va afficher :

string(10) "monfichier.txt"
int(4096)
bool(false)
bool(true)
string(11) "monfichier2.txt"
int(4096)
bool(false)
bool(true)
string(10) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(11) "monfichier2.txt"
bool(false)
bool(false)
bool(false)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compressFiles() - Compresse tous les fichiers de l'archive Phar courante'
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::compress() - Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
  • Phar::decompress() - Décompresse l'archive tar complète


Efface les méta-données globales du phar

  • « Phar::decompressFiles
  • Phar::delete »
  • PHP Manual
  • Phar
  • Efface les méta-données globales du phar

Phar::delMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::delMetadata — Efface les méta-données globales du phar

Description

public bool Phar::delMetadata ( void )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Efface les méta-données globales du phar

Liste de paramètres

Valeurs de retour

retourne TRUE en cas de succès, mais il est plus sûr de vérifier si des exceptions sont levées, et de considérer que tout s'est bien passé si aucune n'est levée.

Erreurs / Exceptions

Lève une exception PharException si des erreurs apparaissent pendant l'écriture sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::delMetaData()

<?php
try {
    $phar = new Phar('monphar.phar');
    var_dump($phar->getMetadata());
    $phar->setMetadata("salut");
    var_dump($phar->getMetadata());
    $phar->delMetadata();
    var_dump($phar->getMetadata());
} catch (Exception $e) {
    // traite les erreurs
}
?>

L'exemple ci-dessus va afficher :

NULL
string(8) "salut"
NULL

Voir aussi

  • Phar::getMetadata() - Retourne les méta-données de l'archive phar
  • Phar::setMetadata() - Fixe les méta-données de l'archive
  • Phar::hasMetadata() - Détermine si le phar a ou non des méta-données


Efface un fichier au sein d'une archive phar

  • « Phar::delMetadata
  • Phar::extractTo »
  • PHP Manual
  • Phar
  • Efface un fichier au sein d'une archive phar

Phar::delete

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::delete — Efface un fichier au sein d'une archive phar

Description

public bool Phar::delete ( string $entry )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Efface une fichier au sein d'une archive phar. C'est l'équivalent fonctionnel de l'appel à unlink() dans un contexte de flux, comme décrit dans l'exemple suivant...

Liste de paramètres

entry

Chemin du fichier à effacer au sein de l'archive.

Valeurs de retour

retourne TRUE en cas de succès, mais il est plus sûr de vérifier si des exceptions sont levées, et de considérer que tout s'est bien passé si aucune n'est levée.

Erreurs / Exceptions

Lève une exception PharException si des erreurs apparaissent pendant l'écriture sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::delete()

<?php
try {
    $phar = new Phar('monphar.phar');
    $phar->delete('efface/moi.php');
    // c'est équivalent à :
    unlink('phar://monphar.phar/efface/moi.php');
} catch (Exception $e) {
    // traite les erreurs
}
?>

Voir aussi

  • PharData::delete() - Efface un fichier au sein de l'archive tar/zip
  • Phar::unlinkArchive() - Efface complètement une archive phar du disque et de la mémoire


Extrait le contenu d'une archive phar vers un répertoire

  • « Phar::delete
  • Phar::getMetadata »
  • PHP Manual
  • Phar
  • Extrait le contenu d'une archive phar vers un répertoire

Phar::extractTo

(Unknown)

Phar::extractTo — Extrait le contenu d'une archive phar vers un répertoire

Description

public bool Phar::extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Extrait tous les fichiers d'une archive phar vers le disque. Les fichiers et les dossiers extraits conservent les permissions à l'identique de l'intérieur de l'archive. Les paramètres optionnels permettent un éventuel contrôle sur quel fichier est extrait et si des fichiers déjà existants sur le disque peuvent être écrasés. Le second paramètre files peut être soit le nom d'un fichier ou d'un répertoire, soit un tableau de noms de fichiers et de répertoires à extraire. Par défaut, cette méthode n'écrasant pas les fichiers existants, le troisième paramètre peut être passé à TRUE pour activer l'écrasement de fichiers. Cette méthode est identique à ZipArchive::extractTo().

Liste de paramètres

pathto

Chemin du fichier à effacer au sein de l'archive.

files

Le nom d'un fichier ou d'un répertoire ou un tableau de fichiers/répertoires à extraire

overwrite

Le passer à TRUE pour activer l'écrasement des fichiers existants

Valeurs de retour

retourne TRUE en cas de succès, mais il est plus sûr de vérifier si des exceptions sont levées, et de considérer que tout s'est bien passé si aucune n'est levée.

Erreurs / Exceptions

Lève une exception PharException si des erreurs apparaissent pendant l'écriture sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::extractTo()

<?php
try {
    $phar = new Phar('monphar.phar');
    $phar->extractTo('/chemin/complet'); // extrait tous les fichiers
    $phar->extractTo('/autre/chemin', 'fichier.txt'); // extrait seulement fichier.txt
    $phar->extractTo('/ce/chemin',
        array('fichier1.txt', 'fichier2.txt')); // extrait seulement 2 fichiers
    $phar->extractTo('/troisieme/chemin', null, true); // extrait tous les fichiers, en écrasant
} catch (Exception $e) {
    // traite les erreurs
}
?>

Voir aussi

  • PharData::extractTo() - Extrait le contenu d'une archive tar/zip vers un répertoire


Retourne les méta-données de l'archive phar

  • « Phar::extractTo
  • Phar::getModified »
  • PHP Manual
  • Phar
  • Retourne les méta-données de l'archive phar

Phar::getMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getMetadata — Retourne les méta-données de l'archive phar

Description

public mixed Phar::getMetadata ( void )

Récupère les méta-données de l'archive. Celles-ci peuvent être n'importe quelle variable PHP pouvant être sérialisée.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

n'importe quelle variable PHP pouvant être sérialisée et qui est stockée comme méta-donnée de l'archive Phar, ou NULL si aucune méta-donnée n'est stockée.

Exemples

Exemple #1 Un exemple avec Phar::getMetadata()

<?php
// on s'assure que le phar n'existe pas
@unlink('nouveauphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/nouveauphar.phar', 0, 'nouveauphar.phar');
    $p['fichier.php'] = '<?php echo "salut";';
    $p->setMetadata(array('bootstrap' => 'fichier.php'));
    var_dump($p->getMetadata());
} catch (Exception $e) {
    echo 'Ne peut pas modifier le phar :', $e;
}
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["bootstrap"]=>
  string(8) "fichier.php"
}

Voir aussi

  • Phar::setMetadata() - Fixe les méta-données de l'archive
  • Phar::delMetadata() - Efface les méta-données globales du phar
  • Phar::hasMetadata() - Détermine si le phar a ou non des méta-données


Indique si le fichier phar a été modifié

  • « Phar::getMetadata
  • Phar::getSignature »
  • PHP Manual
  • Phar
  • Indique si le fichier phar a été modifié

Phar::getModified

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getModified — Indique si le fichier phar a été modifié

Description

public bool Phar::getModified ( void )

Détermine si une archive phar a eu soit un fichier interne effacé ou si le contenu d'un fichier a changé d'une façon ou d'une autre.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

TRUE si le phar a été modifié depuis son ouverture, FALSE sinon.


Retourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar

  • « Phar::getModified
  • Phar::getStub »
  • PHP Manual
  • Phar
  • Retourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar

Phar::getSignature

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getSignature — Retourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar

Description

public array Phar::getSignature ( void )

Retourne la signature de vérification d'une archive phar sous forme d'une chaîne de caractères hexadécimale.

Liste de paramètres

Valeurs de retour

Un tableau avec la signature de l'archive ouverte avec le hash en guise de clé et "MD5", "SHA-1", "SHA-256" ou "SHA-512" comme hash_type. Cette signature est un hachage calculé à partir du contenu de l'archive entière; elle peut être utilisée pour vérifier l'intégrité de l'archive. Une signature valide est absolument requise pour toutes les archives phar exécutables si la variable INI phar.require_hash vaut TRUE.


Retourne le chargeur PHP ou le conteneur de chargement d'une archive Phar

  • « Phar::getSignature
  • Phar::getSupportedCompression »
  • PHP Manual
  • Phar
  • Retourne le chargeur PHP ou le conteneur de chargement d'une archive Phar

Phar::getStub

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getStub — Retourne le chargeur PHP ou le conteneur de chargement d'une archive Phar

Description

public string Phar::getStub ( void )

Les archives phar contiennent un chargeur, ou conteneur (stub), écrit en PHP qui est exécuté quand l'archive elle-même est exécutée soit par inclusion :

<?php
include 'monphar.phar';
?>
soit par simple exécution :
php monphar.phar

Valeurs de retour

Retourne une chaîne de caractères avec le contenu du conteneur de chargement (stub) de l'archive phar courante.

Erreurs / Exceptions

Lève une exception RuntimeException s'il n'est pas possible de lire le conteneur de chargement de l'archive Phar.

Exemples

Exemple #1 Exemple avec Phar::getStub()

<?php
$p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
echo $p->getStub();
echo "==SUIVANT==\n";
$p->setStub("<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('monphar.phar');
include 'phar://monphar.phar/demarrage.php';
__HALT_COMPILER(); ?>");
echo $p->getStub();
?>

L'exemple ci-dessus va afficher :

<?php __HALT_COMPILER(); ?>
==SUIVANT==
<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('monphar.phar');
include 'phar://monphar.phar/demarrage.php';
__HALT_COMPILER(); ?>

Voir aussi

  • Phar::setStub() - Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar
  • Phar::createDefaultStub() - Crée un conteneur de chargement d'une archive Phar


Retourne un tableau des algorithmes de compression supportés

  • « Phar::getStub
  • Phar::getSupportedSignatures »
  • PHP Manual
  • Phar
  • Retourne un tableau des algorithmes de compression supportés

Phar::getSupportedCompression

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::getSupportedCompression — Retourne un tableau des algorithmes de compression supportés

Description

final public static array Phar::getSupportedCompression ( void )

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Retourne un tableau contenant l'un des algorithmes Phar::GZ ou Phar::BZ2, selon la disponibilité de l'extension zlib ou de l'extension bz2.

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
  • Phar::compress() - Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
  • Phar::decompress() - Décompresse l'archive tar complète
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compressFiles() - Compresse tous les fichiers de l'archive Phar courante'
  • Phar::decompressFiles() - Décompresse tous les fichiers de l'archive Phar courante


Retourne un tableau des types de signature supportés

  • « Phar::getSupportedCompression
  • Phar::getVersion »
  • PHP Manual
  • Phar
  • Retourne un tableau des types de signature supportés

Phar::getSupportedSignatures

(PHP >= 5.3.0, PECL phar >= 1.1.0)

Phar::getSupportedSignatures — Retourne un tableau des types de signature supportés

Description

final public static array Phar::getSupportedSignatures ( void )

Retourne un tableau des types de signature supportés

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Retourne un tableau contenant un ou plusieurs des types MD5, SHA-1, SHA-256, SHA-512.

Voir aussi

  • Phar::getSignature() - Retourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar
  • Phar::setSignatureAlgorithm() - Assigne l'algorithme de signature d'un phar et l'applique


Retourne les informations de version de l'archive Phar

  • « Phar::getSupportedSignatures
  • Phar::hasMetadata »
  • PHP Manual
  • Phar
  • Retourne les informations de version de l'archive Phar

Phar::getVersion

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getVersion — Retourne les informations de version de l'archive Phar

Description

public string Phar::getVersion ( void )

Retourne la version de l'API d'une archive Phar ouverte.

Liste de paramètres

Valeurs de retour

La version de l'API de l'archive ouverte. A ne pas confondre avec la version dAPI que l'extension phar chargée utilisera pour créer de nouveaux phar. Chaque archive Phar a la version d'API codée en dur dans son manifeste. Pour davantage d'information, regardez le format de fichier Phar.

Voir aussi

  • Phar::apiVersion() - Retourne la version de l'API


Détermine si le phar a ou non des méta-données

  • « Phar::getVersion
  • Phar::interceptFileFuncs »
  • PHP Manual
  • Phar
  • Détermine si le phar a ou non des méta-données

Phar::hasMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::hasMetadata — Détermine si le phar a ou non des méta-données

Description

public bool Phar::hasMetadata ( void )

Détermine si le phar a ou non des méta-données.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Retourne TRUE si des méta-données sont présentes, FALSE sinon.

Exemples

Exemple #1 Un exemple avec Phar::hasMetadata()

<?php
try {
    $phar = new Phar('monphar.phar');
    var_dump($phar->hasMetadata());
    $phar->setMetadata(array('deschoses' => 'salut'));
    var_dump($phar->hasMetadata());
    $phar->delMetadata();
    var_dump($phar->hasMetadata());
} catch (Exception $e) {
    // traite les erreurs
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)

Voir aussi

  • Phar::getMetadata() - Retourne les méta-données de l'archive phar
  • Phar::setMetadata() - Fixe les méta-données de l'archive
  • Phar::delMetadata() - Efface les méta-données globales du phar


Informe phar qu'il doit intercepter les fonctions de fichiers

  • « Phar::hasMetadata
  • Phar::isBuffering »
  • PHP Manual
  • Phar
  • Informe phar qu'il doit intercepter les fonctions de fichiers

Phar::interceptFileFuncs

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::interceptFileFuncs — Informe phar qu'il doit intercepter les fonctions de fichiers

Description

final public static void Phar::interceptFileFuncs ( void )

Informe phar d'intercepter fopen(), readfile(), file_get_contents(), opendir() et toutes les fonctions relatives à stat. Si n'importe laquelle de ces fonctions est appelée depuis l'archive phar avec un chemin relatif, l'appel est modifié pour accéder à un fichier au sein de l'archive. Les chemins absolus sont supposés être des tentatives de chargement de fichiers externes à partir du système de fichiers.

Cette fonction rend possible l'exécution d'applications PHP conçues pour être lancées en dehors d'un disque dur, en tant qu'application phar.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Phar::interceptFileFuncs()

<?php
Phar::interceptFileFuncs();
include 'phar://' . __FILE__ . '/fichier.php';
?>

En supposant que ce phar est nommé /chemin/vers/monphar.phar est qu'il contient fichier.php et fichier2.txt, si fichier.php contient ce code :

Exemple #2 Un exemple avec Phar::interceptFileFuncs()

<?php
echo file_get_contents('fichier2.txt');
?>

Normalement, PHP chercherait dans le répertoire courant le fichier nommé file2.txt, c'est à dire dans le répertoire de fichier.php ou le répertoire courant de l'utilisateur de la ligne de commande. Phar::interceptFileFuncs() dit à PHP de considérer phar:///chemin/vers/monphar.phar/ comme répertoire courant et ainsi ouvre dans l'exemple ci-dessus le fichier phar:///chemin/vers/monphar.phar/fichier2.txt.


Détermine si les opérations d'écriture du Phar sont mises en tampons ou sont directement inscrites sur le disque

  • « Phar::interceptFileFuncs
  • Phar::isCompressed »
  • PHP Manual
  • Phar
  • Détermine si les opérations d'écriture du Phar sont mises en tampons ou sont directement inscrites sur le disque

Phar::isBuffering

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::isBuffering — Détermine si les opérations d'écriture du Phar sont mises en tampons ou sont directement inscrites sur le disque

Description

public bool Phar::isBuffering ( void )

Cette méthode peut être utilisée pour déterminer si un Phar sauvera ses changements immédiatement sur le disque ou si un appel à la fonction Phar::stopBuffering() est nécessaire pour inscrire les modifications.

La mise en tampon de l'écriture du Phar se fait par archive; la mise en tampon de l'archive Pharfoo.phar n'affecte en rien les changements faits sur l'archive Phar bar.phar.

Valeurs de retour

Retourne TRUE si les opérations d'écriture sont mises en tampons, FALSE sinon.

Exemples

Exemple #1 Un exemple avec Phar::isBuffering()

<?php
$p = new Phar(dirname(__FILE__) . '/nouveauphar.phar', 0, 'nouveauphar.phar');
$p2 = new Phar('pharexistant.phar');
$p['fichier1.txt'] = 'salut';
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
?>
=2=
<?php
$p->startBuffering();
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
$p->stopBuffering();
?>
=3=
<?php
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(false)
=2=
bool(true)
bool(false)
=3=
bool(false)
bool(false)

Voir aussi

  • Phar::startBuffering() - Démarre la mise en tampon de écritures Phar, ne modifie pas l'objet Phar sur le disque
  • Phar::stopBuffering() - Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque


Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)

  • « Phar::isBuffering
  • Phar::isFileFormat »
  • PHP Manual
  • Phar
  • Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)

Phar::isCompressed

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::isCompressed — Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)

Description

public mixed Phar::isCompressed ( void )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc). Les archives phar basées sur Zip ne peuvent pas être compressées en tant que fichier, et cette méthode retournera toujours FALSE si une archive phar basée sur Zip est interrogée.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Phar::GZ, Phar::BZ2 ou FALSE

Exemples

Exemple #1 Exemple avec Phar::isCompressed()

<?php
try {
    $phar1 = new Phar('monphar.zip.phar');
    var_dump($phar1->isCompressed());
    $phar2 = new Phar('monpharnoncompresse.tar.phar');
    var_dump($phar2->isCompressed());
    $phar2->compress(Phar::GZ);
    var_dump($phar2->isCompressed() == Phar::GZ);
} catch (Exception $e) {
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(false)
bool(true)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
  • PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • Phar::decompress() - Décompresse l'archive tar complète
  • Phar::compress() - Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::compressFiles() - Compresse tous les fichiers de l'archive Phar courante'
  • Phar::decompressFiles() - Décompresse tous les fichiers de l'archive Phar courante
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés


Retourne TRUE si l'archive phar est basée sur le formats de fichier tar/phar/zip selon le paramètre

  • « Phar::isCompressed
  • Phar::isValidPharFilename »
  • PHP Manual
  • Phar
  • Retourne TRUE si l'archive phar est basée sur le formats de fichier tar/phar/zip selon le paramètre

Phar::isFileFormat

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::isFileFormat — Retourne TRUE si l'archive phar est basée sur le formats de fichier tar/phar/zip selon le paramètre

Description

public bool Phar::isFileFormat ( int $format )

Liste de paramètres

format

Soit Phar::PHAR, soit Phar::TAR, soit Phar::ZIP pour tester le format de fichier de l'archive.

Valeurs de retour

Retourne TRUE si l'archive phar utilise le format de fichier spécifié en paramètre

Erreurs / Exceptions

Une exception PharException est levée sur le paramètre est un format de fichier inconnu.

Voir aussi

  • Phar::convertToExecutable() - Convertit une archive phar vers un autre format de fichier d'archive phar exécutable
  • Phar::convertToData() - Convertit une archive phar en un fichier non-exécutable


Détermine si le nom de fichier spécifié est un nom de fichier valide pour une archive phar

  • « Phar::isFileFormat
  • Phar::isWritable »
  • PHP Manual
  • Phar
  • Détermine si le nom de fichier spécifié est un nom de fichier valide pour une archive phar

Phar::isValidPharFilename

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::isValidPharFilename — Détermine si le nom de fichier spécifié est un nom de fichier valide pour une archive phar

Description

final public static bool Phar::isValidPharFilename ( string $filename [, bool $executable = true ] )

Détermine si le nom de fichier spécifié est une nom de fichier valide pour une archive phar, qui sera reconnue comme telle par l'extension phar. Ceci peut être utilisé pour tester un nom sans avoir à instancier une archive phar et à attraper l'inévitable Exception qui sera levée si un nom de fichier non valide est spécifié.

Liste de paramètres

filename

Le nom ou le chemin complet vers une archive phar non encore créée

executable

Ce paramètre détermine si le nom de fichier doit être traité comme celui d'une archive phar exécutable ou comme une archive de données non exécutable.

Valeurs de retour

Retourne TRUE si le nom de fichier est valide, FALSE sinon.


Retourne TRUE si l'archive phar peut être modifiée

  • « Phar::isValidPharFilename
  • Phar::loadPhar »
  • PHP Manual
  • Phar
  • Retourne TRUE si l'archive phar peut être modifiée

Phar::isWritable

(Unknown)

Phar::isWritable — Retourne TRUE si l'archive phar peut être modifiée

Description

public bool Phar::isWritable ( void )

Cette méthode retourne TRUE si phar.readonly est à 0 et que l'archive phar actuelle sur le disque n'est pas en lecture seule.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Retourne TRUE si l'archive phar peut être modifiée

Voir aussi

  • Phar::canWrite() - Détermine si l'extension phar supporte la création et l'écriture des phars
  • PharData::isWritable() - Vérifie si l'archive tar/zip peut être modifiée


Charge n'importe quelle archive phar avec un alias

  • « Phar::isWritable
  • Phar::mapPhar »
  • PHP Manual
  • Phar
  • Charge n'importe quelle archive phar avec un alias

Phar::loadPhar

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::loadPhar — Charge n'importe quelle archive phar avec un alias

Description

final public static bool Phar::loadPhar ( string $filename [, string $alias ] )

Cette méthode peut être utilisée pour lire le contenu d'une archive Phar externe. C'est principalement utile pour assigner un alias à un phar de telle façon que les références ultérieures au phar puissent être faites à l'aide d'un alias plus court ou pour charger des archives Phar qui contiennent seulement des données et qui ne sont pas destinées à être exécutées/incluses dans des scripts PHP.

Liste de paramètres

filename

le chemin relatif ou absolu vers l'archive phar à ouvrir

alias

L'alias qui pourra être utilisé pour se référer à l'archive phar. Notez que de nombreuses archives phar spécifient un alias explicite au sein de l'archive phar, et une exception PharException sera levée si un nouvel alias est spécifié dans ce cas.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Une exceptionPharException est levée si un alias est passé alors que l'archive phar a déjà un alias explicite

Exemples

Exemple #1 Un exemple avec Phar::loadPhar()

Phar::loadPhar peut être utilisée n'importe où pour charger une archive phar externe alors que Phar::mapPhar devrait être utilisée dans un conteneur de chargement pour un Phar.

<?php
try {
    Phar::loadPhar('/chemin/vers/phar.phar', 'mon.phar');
    echo file_get_contents('phar://mon.phar/fichier.txt');
} catch (PharException $e) {
    echo $e;
}
?>

Voir aussi

  • Phar::mapPhar() - Lit le phar exécuté et charge son manifeste


Lit le phar exécuté et charge son manifeste

  • « Phar::loadPhar
  • Phar::mount »
  • PHP Manual
  • Phar
  • Lit le phar exécuté et charge son manifeste

Phar::mapPhar

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::mapPhar — Lit le phar exécuté et charge son manifeste

Description

final public static bool Phar::mapPhar ([ string $alias [, int $dataoffset = 0 ]] )

Cette méthode statique peut être utilisée seulement au sein du conteneur de chargement d'une archive Phar pour initialiser le phar quand il est exécuté directement ou quand il est inclus dans un autre script.

Liste de paramètres

alias

L'alias qui peut être utilisé dans l'URL phar:// pour se référer à l'archive plutôt que d'utiliser son chemin complet.

dataoffset

Variable inutilisée, présente par souci de compatibilité avec la bibliothèque PHP_Archive de PEAR.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Une exception PharException est levée si la méthode n'est pas appelée directement au sein de l'exécution de PHP, si aucun jeton __HALT_COMPILER(); n'est trouvé dans le fichier source actuel ou si le fichier ne peut pas être ouvert en lecture.

Exemples

Exemple #1 Exemple avec Phar::mapPhar()

mapPhar ne doit être utilisé qu'au sein du conteneur de chargement d'un phar. Utilisez loadPhar pour charger un phar externe en mémoire.

Voici un exemple de conteneur de chargement Phar qui utilise mapPhar.

<?php
function __autoload($class)
{
    include 'phar://mon.phar/' . str_replace('_', '/', $class) . '.php';
}
try {
    Phar::mapPhar('mon.phar');
    include 'phar://mon.phar/demarrage.php';
} catch (PharException $e) {
    echo $e->getMessage();
    die('Ne peut pas initialiser le Phar');
}
__HALT_COMPILER();

Voir aussi

  • Phar::loadPhar() - Charge n'importe quelle archive phar avec un alias


Monte un chemin ou un fichier externe à un emplacement virtuel au sein de l'archive phar

  • « Phar::mapPhar
  • Phar::mungServer »
  • PHP Manual
  • Phar
  • Monte un chemin ou un fichier externe à un emplacement virtuel au sein de l'archive phar

Phar::mount

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::mount — Monte un chemin ou un fichier externe à un emplacement virtuel au sein de l'archive phar

Description

final public static void Phar::mount ( string $pharpath , string $externalpath )

Tout comme le concept unix de montage d'un périphérique externe à un endroit de l'arborescence, Phar::mount() permet de se référer à des fichiers et des répertoires externes comme s'ils étaient à l'intérieur de l'archive.

Liste de paramètres

pharpath

Le chemin interne au sein de l'archive phar à utiliser en tant que point de montage. Doit être un chemin relatif dans l'archive phar, et ne doit pas déjà exister.

externalpath

Un chemin ou une URL vers un fichier ou un répertoire externe à monter au sein de l'archive

Valeurs de retour

Aucun retour. Une exception PharException est levée en cas d'échec.

Erreurs / Exceptions

Lève une exception PharException si un problème est rencontré lors du montage.

Exemples

Exemple #1 Un exemple avec Phar::mount()

L'exemple suivant présente l'accès à un fichier de configuration externe comme s'il était un chemin au sein de l'archive phar.

Tout d'abord, le code au sein de l'archive phar :

<?php
$configuration = simplexml_load_string(file_get_contents(
    Phar::running(false) . '/config.xml'));
?>

Ensuite le code externe utilisé pour monter le fichier de configuration :

<?php
// on commence par configurer l'association entre le fichier config.xml abstrait
// et celui sur le disque
Phar::mount('phar://config.xml', '/home/example/config.xml');
// on lance maintenant l'application
include '/chemin/vers/archive.phar';
?>

Une autre méthode est de mettre le code de montage au sein du conteneur de chargement de l'archive phar. Voici un exemple pour configurer un fichier de configuration par défaut si aucune configuration utilisateur n'est faite :

<?php
// on commence par configurer l'association entre le fichier config.xml abstrait
// et celui sur le disque
if (defined('EXTERNAL_CONFIG')) {
    Phar::mount('config.xml', EXTERNAL_CONFIG);
    if (file_exists(__DIR__ . '/extra_config.xml')) {
        Phar::mount('extra.xml', __DIR__ . '/extra_config.xml');
    }
} else {
    Phar::mount('config.xml', 'phar://' . __FILE__ . '/default_config.xml');
    Phar::mount('extra.xml', 'phar://' . __FILE__ . '/default_extra.xml');
}
// on lance maintenant l'application
include 'phar://' . __FILE__ . '/index.php';
__HALT_COMPILER();
?>

... et le code externe pour charger cette archive phar :

<?php
define('EXTERNAL_CONFIG', '/home/exemple/config.xml');
// on lance maintenant l'application
include '/chemin/vers/archive.phar';
?>


Définit une liste de maximum 4 variables $_SERVER qui doivent être modifiées lors de l'exécution

  • « Phar::mount
  • Phar::offsetExists »
  • PHP Manual
  • Phar
  • Définit une liste de maximum 4 variables $_SERVER qui doivent être modifiées lors de l'exécution

Phar::mungServer

(Unknown)

Phar::mungServer — Définit une liste de maximum 4 variables $_SERVER qui doivent être modifiées lors de l'exécution

Description

final public static void Phar::mungServer ( array $munglist )

Phar::mungServer() doit être appelée seulement dans le conteneur de chargement d'une archive phar.

Définit une liste de maximum 4 variables $_SERVER qui doiventt être modifiées lors de l'exécution. Les variables qui peuvent être modifiées pour effacer les traces de l'exécution phar sont REQUEST_URI, PHP_SELF, SCRIPT_NAME et SCRIPT_FILENAME.

Seule, cette méthode ne fait rien. Elle prend effet seulement quand elle est combinée à Phar::webPhar() et seulement si le fichier demandé est un fichier PHP à parser. Notez que les variables PATH_INFO et PATH_TRANSLATED sont toujours modifiées.

Les valeurs de départ des variables qui sont modifiées sont stockées dans le tableau SERVER avec le préfixe PHAR_ et donc par exemple SCRIPT_NAME sera stockée en tant que PHAR_SCRIPT_NAME.

Liste de paramètres

munglist

un tableau contenant n'importe laquelle des variables REQUEST_URI, PHP_SELF, SCRIPT_NAME et SCRIPT_FILENAME en tant qu'indices de chaînes de caractères. Les autres valeurs déclenchent une exception et Phar::mungServer() est sensible à la casse.

Valeurs de retour

Aucun retour.

Erreurs / Exceptions

Lève une exception UnexpectedValueException si un quelconque problème est trouvé dans les données passées.

Exemples

Exemple #1 Un exemple avec Phar::mungServer()

<?php
// exemple de conteneur
Phar::mungServer(array('REQUEST_URI'));
Phar::webPhar();
__HALT_COMPILER();
?>

Voir aussi

  • Phar::webPhar() - mapPhar pour les phars orientés web. Contrôleur pour les applications web
  • Phar::setStub() - Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar


détermine si un fichier existe dans le phar

  • « Phar::mungServer
  • Phar::offsetGet »
  • PHP Manual
  • Phar
  • détermine si un fichier existe dans le phar

Phar::offsetExists

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetExists — détermine si un fichier existe dans le phar

Description

public bool Phar::offsetExists ( string $offset )

C'est une implémentation de l'interface ArrayAccess qui permet la manipulation directe du contenu d'une archive Phar en utilisant les crochets d'accès au tableau.

offsetExists() est appelé comme isset() est appelé.

Liste de paramètres

offset

Le nom de fichier (en chemin relatif) à chercher dans le Phar.

Valeurs de retour

Retourne TRUE si le fichier existe dans le phar, FALSE sinon.

Exemples

Exemple #1 Un exemple avec Phar::offsetExists()

<?php
$p = new Phar(dirname(__FILE__) . '/mon.phar', 0, 'mon.phar');
$p['premierfichier.txt'] = 'premier fichier';
$p['secondfichier.txt'] = 'second fichier';
// les lignes suivantes font appel à offsetExists() de façon indirecte
var_dump(isset($p['premierfichier.txt']));
var_dump(isset($p['pasla.txt']));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi

  • Phar::offsetGet() - Obtient un objet PharFileInfo à partir d'un fichier
  • Phar::offsetSet() - met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe
  • Phar::offsetUnset() - Efface un fichier d'un phar


Obtient un objet PharFileInfo à partir d'un fichier

  • « Phar::offsetExists
  • Phar::offsetSet »
  • PHP Manual
  • Phar
  • Obtient un objet PharFileInfo à partir d'un fichier

Phar::offsetGet

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetGet — Obtient un objet PharFileInfo à partir d'un fichier

Description

public int Phar::offsetGet ( string $offset )

C'est une implémentation de l'interface ArrayAccess qui permet la manipulation directe du contenu d'une archive Phar en utilisant les crochets d'accès au tableau. Phar::offsetGet() est utilisé pour extraire des fichiers d'une archive Phar.

Liste de paramètres

offset

Le nom de fichier (en chemin relatif) à chercher dans le Phar.

Valeurs de retour

Un objet PharFileInfo est retourné et peut être utilisé pour intégrer le contenu d'un fichier ou pour récupérer des informations sur le fichier courant.

Erreurs / Exceptions

Cette méthode émet une exception BadMethodCallException si le fichier n'existe pas dans l'archive Phar.

Exemples

Exemple #1 Exemple avec Phar::offsetGet()

Comme avec toutes les classes qui implémentent l'interface ArrayAccess, Phar::offsetGet() est automatiquement appelée quand les crochets d'accès à un tableau sont utilisés ([]).

<?php
$p = new Phar(dirname(__FILE__) . '/monphar.phar', 0, 'monphar.phar');
$p['existe.txt'] = "le fichier existe\n";
try {
    // appelle automatiquement offsetGet()
    echo $p['existe.txt'];
    echo $p['nexistepas.txt'];
} catch (BadMethodCallException $e) {
    echo $e;
}
?>

L'exemple ci-dessus va afficher :

le fichier existe
Entry nexistepas.txt does not exist

Voir aussi

  • Phar::offsetExists() - détermine si un fichier existe dans le phar
  • Phar::offsetSet() - met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe
  • Phar::offsetUnset() - Efface un fichier d'un phar


met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe

  • « Phar::offsetGet
  • Phar::offsetUnset »
  • PHP Manual
  • Phar
  • met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe

Phar::offsetSet

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetSet — met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe

Description

public void Phar::offsetSet ( string $offset , string $value )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

C'est une implémentation de l'interface ArrayAccess qui permet la manipulation directe du contenu d'une archive Phar en utilisant les crochets d'accès au tableau. offsetSet est utilisé pour modifier un fichier existant ou pour ajouter un nouveau fichier à l'archive Phar.

Liste de paramètres

offset

Le nom de fichier (en chemin relatif) à chercher dans le Phar.

value

Contenu du fichier.

Valeurs de retour

Aucune valeur de retour.

Erreurs / Exceptions

Si phar.readonly est à 1, une exception BadMethodCallException est levée, car modifier un Phar n'est permis que quand phar.readonly est à 0. Une exception PharException est levée s'il y a eu un problème lors de l'écriture des changements de l'archive Phar sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::offsetSet()

offsetSet ne doit pas être accédé directement, mais plutôt via l'opérateur d'accès au tableau, [].

<?php
$p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
try {
    // appelle offsetSet
    $p['fichier.txt'] = 'Salut';
} catch (Exception $e) {
    echo 'Ne peut pas modifier fichier.txt:', $e;
}
?>

Voir aussi

  • Phar::offsetExists() - détermine si un fichier existe dans le phar
  • Phar::offsetGet() - Obtient un objet PharFileInfo à partir d'un fichier
  • Phar::offsetUnset() - Efface un fichier d'un phar


Efface un fichier d'un phar

  • « Phar::offsetSet
  • Phar::running »
  • PHP Manual
  • Phar
  • Efface un fichier d'un phar

Phar::offsetUnset

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetUnset — Efface un fichier d'un phar

Description

public bool Phar::offsetUnset ( string $offset )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

C'est une implémentation de l'interface ArrayAccess qui permet la manipulation directe du contenu d'une archive Phar en utilisant les crochets d'accès au tableau. offsetUnset est utilisé pour supprimer un fichier existant et est appelé par la fonction unset().

Liste de paramètres

offset

Le nom de fichier (en chemin relatif) à chercher dans le Phar.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Si phar.readonly est à 1, une exception BadMethodCallException est levée, car modifier un Phar n'est permis que quand phar.readonly est à 0.Une exception PharException est levée s'il y a eu un problème lors de l'écriture des changements de l'archive Phar sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::offsetUnset()

<?php
$p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
try {
    // efface fichier.txt de mon.phar en appelant offsetUnset
    unset($p['fichier.txt']);
} catch (Exception $e) {
    echo 'Ne peut pas effacer fichier.txt: ', $e;
}
?>

Voir aussi

  • Phar::offsetExists() - détermine si un fichier existe dans le phar
  • Phar::offsetGet() - Obtient un objet PharFileInfo à partir d'un fichier
  • Phar::offsetSet() - met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe
  • Phar::unlinkArchive() - Efface complètement une archive phar du disque et de la mémoire
  • Phar::delete() - Efface un fichier au sein d'une archive phar


Retourne le chemin complet sur le disque ou l'URL phar complète de l'archive phar couramment exécutée

  • « Phar::offsetUnset
  • Phar::setAlias »
  • PHP Manual
  • Phar
  • Retourne le chemin complet sur le disque ou l'URL phar complète de l'archive phar couramment exécutée

Phar::running

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::running — Retourne le chemin complet sur le disque ou l'URL phar complète de l'archive phar couramment exécutée

Description

final public static string Phar::running ([ bool $retphar = true ] )

Retourne le chemin complet de l'archive phar exécutée. C'est bien entendu utilisé un peu comme la constante magique __FILE__ et a des effets uniquement au sein d'une archive phar en train d'être exécutée.

Dans le conteneur de chargement d'une archive, Phar::running() retourne "". Utilisez simplement __FILE__ pour accéder au phar courant au sein d'un conteneur de chargement.

Liste de paramètres

retphar

Si FALSE, le chemin complet sur le disque vers le phar est retourné. Si TRUE, une URL phar complète est retournée.

Valeurs de retour

Retourne le chemin de fichier si valide, sinon une chaîne vide.

Exemples

Exemple #1 Un exemple avec Phar::running()

Pour l'exemple suivant, on suppose que le fichier phar est /chemin/vers/mon.phar.

<?php
$a = Phar::running(); // $a vaut "phar:///chemin/vers/mon.phar"
$b = Phar::running(false); // $b vaut "/chemin/vers/mon.phar"
?>


Fixe l'alias de l'archive Phar

  • « Phar::running
  • Phar::setDefaultStub »
  • PHP Manual
  • Phar
  • Fixe l'alias de l'archive Phar

Phar::setAlias

(PHP >= 5.3.0, PECL phar >= 1.2.1)

Phar::setAlias — Fixe l'alias de l'archive Phar

Description

public bool Phar::setAlias ( string $alias )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Fixe l'alias de l'archive Phar et l'écrit en tant qu'alias permanent de cette archive phar. Un alias peut être utilisé à l'intérieur d'une archive phar pour s'assurer que l'utilisation du flux phar pour accéder à des fichiers internes fonctionnera toujours quelque soit l'emplacement de l'archive phar sur le système de fichiers. Une alternative consiste à se fier à l'interception de include faite par Phar ou d'utiliser Phar::interceptFileFuncs() et d'utiliser des chemins relatifs.

Liste de paramètres

alias

Une petite chaîne avec laquelle on se référera à cette archive lors des accès avec le flux phar.

Valeurs de retour

Erreurs / Exceptions

Une exception UnexpectedValueException est levée quand l'accès en écriture est désactivé et une exception PharException est levée si l'alias est déjà utilisé ou si un problème a été rencontré lors de l'écriture des changements sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::setAlias()

<?php
try {
    $phar = new Phar('monphar.phar');
    $phar->setAlias('monp.phar');
} catch (Exception $e) {
    // traite les erreurs
}
?>

Voir aussi

  • Phar::__construct() - Construit un objet d'archive Phar
  • Phar::interceptFileFuncs() - Informe phar qu'il doit intercepter les fonctions de fichiers


Utilisé pour fixer le chargeur PHP ou le conteneur de chargement d'une archive Phar en tant que chargeur par défaut

  • « Phar::setAlias
  • Phar::setMetadata »
  • PHP Manual
  • Phar
  • Utilisé pour fixer le chargeur PHP ou le conteneur de chargement d'une archive Phar en tant que chargeur par défaut

Phar::setDefaultStub

(Unknown)

Phar::setDefaultStub — Utilisé pour fixer le chargeur PHP ou le conteneur de chargement d'une archive Phar en tant que chargeur par défaut

Description

public bool Phar::setDefaultStub ([ string $index [, string $webindex ]] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Cette méthode est un raccourci qui combine les fonctionnalités de Phar::createDefaultStub() et de Phar::setStub().

Liste de paramètres

index

Chemin relatif au sein de l'archive phar a exécuter si lancée à partir de la ligne de commande

webindex

Chemin relatif au sein de l'archive phar a exécuter si lancée à partir d'un navigateur

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Une exception UnexpectedValueException est levée si phar.readonly est activée dans le php.ini. Une exception PharException est levée si des problèmes sont rencontrés lors de l'écriture des changements sur disque.

Exemples

Exemple #1 Un exemple avec Phar::setDefaultStub()

<?php
try {
    $phar = new Phar('monphar.phar');
    $phar->setDefaultStub('cli.php', 'web/index.php');
    // est identique à :
    // $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (Exception $e) {
    // traite les erreurs
}
?>

Voir aussi

  • Phar::setStub() - Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar
  • Phar::createDefaultStub() - Crée un conteneur de chargement d'une archive Phar


Fixe les métadonnées de l'archive phar

  • « Phar::setDefaultStub
  • Phar::setSignatureAlgorithm »
  • PHP Manual
  • Phar
  • Fixe les métadonnées de l'archive phar

Phar::setMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::setMetadata — Fixe les métadonnées de l'archive phar

Description

public void Phar::setMetadata ( mixed $metadata )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Phar::setMetadata() doit être utilisée pour stocker des données personnalisées qui décrivent l'archive phar, en tant qu'entité à part entière. PharFileInfo::setMetadata() doit être utilisée pour les métadonnées spécifiques aux fichiers. Les métadonnées peuvent diminuer les performance de chargement d'une archive phar si les données sont importantes.

Une utilisation possible des métadonnées est la spécification des fichiers à utiliser au sein de l'archive pour la lancer, ou l'emplacement d'un fichier de manifeste comme le fichier package.xml de » PEAR. De façon générale, toute donnée utile qui décrit l'archive phar peut être stockée.

Liste de paramètres

metadata

Toute variable PHP contenant des informations à stocker et qui décrit l'archive phar

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Un exemple avec Phar::setMetadata()

<?php
// on s'assure que le phar n'existe pas déjà
@unlink('nouveau.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/nouveau.phar', 0, 'nouveau.phar');
    $p['fichier.php'] = '<?php echo "salut"';
    $p->setMetadata(array('chargeur' => 'fichier.php'));
    var_dump($p->getMetadata());
} catch (Exception $e) {
    echo 'Ne peut pas créer/modifier le phar :', $e;
}
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["chargeur"]=>
  string(11) "fichier.php"
}

Voir aussi

  • Phar::getMetadata() - Retourne les méta-données de l'archive phar
  • Phar::delMetadata() - Efface les méta-données globales du phar
  • Phar::hasMetadata() - Détermine si le phar a ou non des méta-données


Fixe et applique l'algorithme de signature d'un phar

  • « Phar::setMetadata
  • Phar::setStub »
  • PHP Manual
  • Phar
  • Fixe et applique l'algorithme de signature d'un phar

Phar::setSignatureAlgorithm

(PHP >= 5.3.0, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithm — Fixe et applique l'algorithme de signature d'un phar

Description

public void Phar::setSignatureAlgorithm ( int $sigtype [, string $privatekey ] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Fixe et applique l'algorithme de signature d'un phar. L'algorithme de signature doit être Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, ou Phar::OPENSSL.

Notez que toutes les archives phar exécutables ont une signature créée automatiquement, SHA1 par défaut. Les archives de données basées sur tar ou sur zip (créées avec la classe PharData) doivent avoir leur signature créée et assignée explicitement via Phar::setSignatureAlgorithm().

Liste de paramètres

sigtype

Un des algorithmes Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512, ou Phar::OPENSSL

privatekey

Le contenu d'une clé privée OpenSSL, telle qu'extraite d'un certificat ou d'un fichier de clé OpenSSL :

<?php
$private = openssl_get_privatekey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($private, $pkey);
$p->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
?>
Reportez-vous à l'introduction de phar pour les instructions de nommage et de placement du fichier de clé publique.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lève une exception UnexpectedValueException pour de nombreuses erreurs et une exception PharException si des problèmes surviennent durant l'écriture des changements sur le disque.

Voir aussi

  • Phar::getSupportedSignatures() - Retourne un tableau des types de signature supportés
  • Phar::getSignature() - Retourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar


Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar

  • « Phar::setSignatureAlgorithm
  • Phar::startBuffering »
  • PHP Manual
  • Phar
  • Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar

Phar::setStub

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::setStub — Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar

Description

public bool Phar::setStub ( string $stub [, int $len = -1 ] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Cette méthode est utilisée pour ajouter un chargeur PHP à une nouvelle archive Phar, ou pour remplacer le conteneur de chargement d'une archive Phar existante.

Le conteneur de chargement d'une archive Phar est utilisé quand une archive est incluse directement comme dans cet exemple :

<?php
include 'monphar.phar';
?>

Le chargeur n'est pas utilisé quand un fichier est inclus via le flux phar comme ceci :

<?php
include 'phar://monphar.phar/unfchier.php';
?>

Liste de paramètres

stub

Une chaîne ou une ressource de flux ouvert à utiliser comme conteneur exécutable pour cette archive phar.

len

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Une exception UnexpectedValueException est levée si phar.readonly est activé dans le php.ini. Une exception PharException est levée si des problèmes sont rencontrés lors de l'écriture des changement sur le disque.

Exemples

Exemple #1 Un exemple avec Phar::setStub()

<?php
try {
    $p = new Phar(dirname(__FILE__) . '/nouveau.phar', 0, 'nouveau.phar');
    $p['a.php'] = '<?php var_dump("Salut");';
    $p->setStub('<?php var_dump("Premier"); Phar::mapPhar("nouveau.phar"); __HALT_COMPILER(); ?>');
    include 'phar://nouveau.phar/a.php';
    var_dump($p->getStub());
    $p['b.php'] = '<?php var_dump("Tout le monde");';
    $p->setStub('<?php var_dump("Second"); Phar::mapPhar("nouveau.phar"); __HALT_COMPILER(); ?>');
    include 'phar://nouveau.phar/b.php';
    var_dump($p->getStub());
} catch (Exception $e) {
    echo 'Erreur lors de l'écriture de nouveau.phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

string(5) "Salut"
string(79) "<?php var_dump("Premier"); Phar::mapPhar("nouveau.phar"); __HALT_COMPILER(); ?>"
string(13) "Tout le monde"
string(78) "<?php var_dump("Second"); Phar::mapPhar("nouveau.phar"); __HALT_COMPILER(); ?>"

Historique

Version | Description
5.4.0 | Ajout du paramètre len.

Voir aussi

  • Phar::getStub() - Retourne le chargeur PHP ou le conteneur de chargement d'une archive Phar
  • Phar::createDefaultStub() - Crée un conteneur de chargement d'une archive Phar


Démarre la mise en tampon de écritures Phar, ne modifie pas l'objet Phar sur le disque

  • « Phar::setStub
  • Phar::stopBuffering »
  • PHP Manual
  • Phar
  • Démarre la mise en tampon de écritures Phar, ne modifie pas l'objet Phar sur le disque

Phar::startBuffering

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::startBuffering — Démarre la mise en tampon de écritures Phar, ne modifie pas l'objet Phar sur le disque

Description

public void Phar::startBuffering ( void )

Bien que techniquement inutile, la méthode Phar::startBuffering() peut fournir un gain de performance lors de la création ou la modification d'une archive Phar avec un grand nombre de fichiers. D'ordinaire, chaque fois qu'un fichier au sein de l'archive Phar est créé ou modifié, l'archive Phar entière et recréée en incluant les changements. De cette manière, l'archive sera toujours à jour vis à vis des opération qui y sont appliquées.

Alors que ceci peut paraître inutile lors de la création d'un archive Phar simple, ça prend tout son sens lors de l'écriture en une fois de l'archive Phar entière. De même, il est souvent nécessaire de faire une série de changements et de s'assurer qu'ils sont tous possibles avant d'écrire sur le disque, un peu comme les transactions des base de données relationnelles. Les fonctions Phar::startBuffering()/Phar::stopBuffering() sont disponibles dans ce but.

La mise en tampon Phar s'effectue par archive, le tampon actif pour l'archive Phar foo.phar n'affecte pas les changements faits à l'archive Phar bar.phar.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Un exemple avec Phar::startBuffering()

<?php
// on s'assure que le phar n'existe pas déjà
@unlink('nouveau.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/nouveau.phar', 0, 'nouveau.phar');
} catch (Exception $e) {
    echo 'Ne peut pas créer le phar:', $e;
}
echo 'Le nouveau phar a ' . $p->count() . " entrées\n";
$p->startBuffering();
$p['fichier.txt'] = 'salut';
$p['fichier2.txt'] = 'jolie';
$p['fichier2.txt']->setCompressedGZ();
$p['fichier3.txt'] = 'môme';
$p['fichier3.txt']->setMetadata(42);
$p->setStub("<?php
function __autoload($class)
{
    include 'phar://monphar.phar/' . str_replace('_', '/', $class) . '.php';
}
Phar::mapPhar('monphar.phar');
include 'phar://monphar.phar/demarrage.php';
__HALT_COMPILER();");
$p->stopBuffering();
?>

Voir aussi

  • Phar::stopBuffering() - Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque
  • Phar::isBuffering() - Détermine si les opérations d'écriture du Phar sont mises en tampons ou sont directement inscrites sur le disque


Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque

  • « Phar::startBuffering
  • Phar::uncompressAllFiles »
  • PHP Manual
  • Phar
  • Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque

Phar::stopBuffering

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::stopBuffering — Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque

Description

public void Phar::stopBuffering ( void )

Phar::stopBuffering() est utilisée en conjonction avec la méthode Phar::startBuffering(). Phar::startBuffering() peut fournir un gain de performance lors de la création ou la modification d'une archive Phar avec un grand nombre de fichiers. D'ordinaire, chaque fois qu'un fichier au sein de l'archive Phar est créé ou modifié, l'archive Phar entière et recréée en incluant les changements. De cette manière, l'archive sera toujours à jour vis à vis des opération qui y sont appliquées.

Alors que ceci peut paraître inutile lors de la création d'un archive Phar simple, ça prend tout son sens lors de l'écriture en une fois de l'archive Phar entière. De même, il est souvent nécessaire de faire une série de changements et de s'assurer qu'ils sont tous possibles avant d'écrire sur le disque, un peu comme les transactions des base de données relationnelles. Les fonctions Phar::startBuffering()/Phar::stopBuffering() sont disponibles dans ce but.

La mise en tampon Phar s'effectue par archive, le tampon actif pour l'archive Phar foo.phar n'affecte pas les changements faits à l'archive Phar bar.phar.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Une exception PharException est levée si des problèmes sont rencontrés lors de l'écriture des changements sur le disque.

Exemples

Exemple #1 Un exemple Phar::stopBuffering()

<?php
$p = new Phar(dirname(__FILE__) . '/nouveau.phar', 0, 'nouveau.phar');
$p['fichier1.txt'] = 'salut';
$p->startBuffering();
var_dump($p->getStub());
$p->setStub("<?php
function __autoload(\$class)
{
    include 'phar://nouveau.phar/' . str_replace('_', '/', \$class) . '.php';
}
Phar::mapPhar('nouveau.phar');
include 'phar://nouveau.phar/demarrage.php';
__HALT_COMPILER();");
$p->stopBuffering();
var_dump($p->getStub());
?>

L'exemple ci-dessus va afficher :

string(24) "<?php __HALT_COMPILER();"
string(195) "<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('nouveau.phar');
include 'phar://nouveau.phar/demarrage.php';
__HALT_COMPILER();"

Voir aussi

  • Phar::startBuffering() - Démarre la mise en tampon de écritures Phar, ne modifie pas l'objet Phar sur le disque
  • Phar::isBuffering() - Détermine si les opérations d'écriture du Phar sont mises en tampons ou sont directement inscrites sur le disque


Décompresse tous les fichiers de l'archive Phar courante

  • « Phar::stopBuffering
  • Phar::unlinkArchive »
  • PHP Manual
  • Phar
  • Décompresse tous les fichiers de l'archive Phar courante

Phar::uncompressAllFiles

(PECL phar < 2.0.0)

Phar::uncompressAllFiles — Décompresse tous les fichiers de l'archive Phar courante

Description

public bool Phar::uncompressAllFiles ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser Phar::compress(), Phar::decompress(), Phar::compressFiles() et Phar::decompressFiles() à la place.

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Cette méthode décompresse tous les fichiers de l'archive Phar. Si un des fichiers est déjà compressé en utilisant la compression gzip, l'extension zlib doit être activée pour décompresser le fichier, et si un des fichiers est déjà compressé en utilisant la compression bzip2, l'extension bzip2 doit être activée pour décompresser le fichier. Comme avec toutes les fonctionnalités qui modifient le contenu d'un As with all functionality that modifies the contents of phar, la variable INI phar.readonly doit être à off pour que ça fonctionne.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension bzip2 n'est pas activée alors qu'au moins un fichier est compressé avec la compression bzip2 ou si au moins un des fichiers est compressé avec la compression gzip et que l'extension zlib n'est pas activée.

Exemples

Exemple #1 Un exemple avec Phar::uncompressAllFiles()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['monfichier.txt'] = 'salut';
    $p['monfichier2.txt'] = 'salut';
    $p->compressAllFilesGZ();
    foreach ($p as $file) {
        var_dump($file->getFileName());
        var_dump($file->isCompressed());
        var_dump($file->isCompressedBZIP2());
        var_dump($file->isCompressedGZ());
    }
    $p->uncompressAllFiles();
    foreach ($p as $file) {
        var_dump($file->getFileName());
        var_dump($file->isCompressed());
        var_dump($file->isCompressedBZIP2());
        var_dump($file->isCompressedGZ());
    }
} catch (Exception $e) {
    echo 'Les opération d'écriture sur mon.phar ont échoué : ', $e;
}
?>

L'exemple ci-dessus va afficher :

string(10) "monfichiere.txt"
bool(true)
bool(false)
bool(true)
string(11) "monfichier2.txt"
bool(true)
bool(false)
bool(true)
string(10) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(11) "monfichier2.txt"
bool(false)
bool(false)
bool(false)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressedBZIP2() - Détermine si l'archive Phar est compressée avec bzip2
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::isCompressedGZ() - Détermine si l'archive Phar est compressée avec gzip
  • PharFileInfo::setCompressedBZIP2() - Compresse l'entrée Phar courante au sein du phar avec Bzip2
  • PharFileInfo::setUncompressed() - Décompresse l'entrée Phar courante au sein du phar s'il y a lieu
  • PharFileInfo::setCompressedGZ() - Compresse l'entrée Phar courante au sein du phar avec gzip
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compressAllFilesBZIP2() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2
  • Phar::compressAllFilesGZ() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés


Efface complètement une archive phar du disque et de la mémoire

  • « Phar::uncompressAllFiles
  • Phar::webPhar »
  • PHP Manual
  • Phar
  • Efface complètement une archive phar du disque et de la mémoire

Phar::unlinkArchive

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::unlinkArchive — Efface complètement une archive phar du disque et de la mémoire

Description

final public static bool Phar::unlinkArchive ( string $archive )

Efface complètement une archive phar du disque et de la mémoire

Liste de paramètres

archive

Le chemin sur le disque vers l'archive phar.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Une exception PharException est levée si des pointeurs sont ouverts vers des fichiers de l'archive phar, ou si des objets Phar, PharData, ou PharFileInfo réfèrent à l'archive phar.

Exemples

Exemple #1 Un exemple avec Phar::unlinkArchive()

<?php
// utilisation simple
Phar::unlinkArchive('/chemin/vers/mon.phar');

// un exemple plus commun :
$p = new Phar('mon.phar');
$fp = fopen('phar://mon.phar/fichier.txt', 'r');
// cela crée 'mon.phar.gz'
$gp = $p->compress(Phar::GZ);
// enlève toutes les références à l'archive
unset($p);
fclose($fp);
// efface maintenant toute trace de l'archive
Phar::unlinkArchive('mon.phar');
?>

Voir aussi

  • Phar::delete() - Efface un fichier au sein d'une archive phar
  • Phar::offsetUnset() - Efface un fichier d'un phar


mapPhar pour les phars orientés web. Contrôleur pour les applications web

  • « Phar::unlinkArchive
  • PharData »
  • PHP Manual
  • Phar
  • mapPhar pour les phars orientés web. Contrôleur pour les applications web

Phar::webPhar

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::webPhar — mapPhar pour les phars orientés web. Contrôleur pour les applications web

Description

final public static void Phar::webPhar ([ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, callable $rewrites ]]]]] )

Phar::mapPhar() pour les phars orientés web. Cette méthode parse $_SERVER['REQUEST_URI'] et route les requêtes d'un navigateur vers un fichier interne à l'archive. Dans le principe, cela simule un serveur web, en routant des requêtes vers le bon fichier, en envoyant les bons en-têtes et analysant le fichier PHP comme il convient. Cette méthode puissante permet de convertir facilement des applications PHP en archive phar. Combinée avec Phar::mungServer() et Phar::interceptFileFuncs(), n'importe quelle application web peut être utilisée sans changement à partir de l'archive phar.

Phar::webPhar() doit être appelé uniquement à partir du conteneur de chargement d'une archive phar (lisez ceci pour en savoir davantage sur les conteneurs).

Liste de paramètres

alias

L'alias qui peut être utilisé dans l'URL phar:// pour se référer à l'archive, plutôt que son chemin complet.

index

L'emplacement au sein de l'archive de l'index de répertoire.

f404

L'emplacement du script à exécuter quand un fichier n'est pas trouvé. Ce script doit envoyer des en-têtes HTTP 404 corrects.

mimetypes

Un tableau faisant correspondre des extensions de fichier supplémentaires à des types MIME. Si les correspondances par défaut suffisent, passez un tableau vide. Par défaut, ces correspondances sont les suivantes :

<?php
$mimes = array(
    'phps' => Phar::PHPS, // passage vers highlight_file()
    'c' => 'text/plain',
    'cc' => 'text/plain',
    'cpp' => 'text/plain',
    'c++' => 'text/plain',
    'dtd' => 'text/plain',
    'h' => 'text/plain',
    'log' => 'text/plain',
    'rng' => 'text/plain',
    'txt' => 'text/plain',
    'xsd' => 'text/plain',
    'php' => Phar::PHP, // parse en tant que PHP
    'inc' => Phar::PHP, // parse en tant que PHP
    'avi' => 'video/avi',
    'bmp' => 'image/bmp',
    'css' => 'text/css',
    'gif' => 'image/gif',
    'htm' => 'text/html',
    'html' => 'text/html',
    'htmls' => 'text/html',
    'ico' => 'image/x-ico',
    'jpe' => 'image/jpeg',
    'jpg' => 'image/jpeg',
    'jpeg' => 'image/jpeg',
    'js' => 'application/x-javascript',
    'midi' => 'audio/midi',
    'mid' => 'audio/midi',
    'mod' => 'audio/mod',
    'mov' => 'movie/quicktime',
    'mp3' => 'audio/mp3',
    'mpg' => 'video/mpeg',
    'mpeg' => 'video/mpeg',
    'pdf' => 'application/pdf',
    'png' => 'image/png',
    'swf' => 'application/shockwave-flash',
    'tif' => 'image/tiff',
    'tiff' => 'image/tiff',
    'wav' => 'audio/wav',
    'xbm' => 'image/xbm',
    'xml' => 'text/xml',
);
?>

rewrites

La fonction de ré-écriture est passée prend comme seul paramètre une chaîne et doit retourner une chaîne de caractères ou FALSE.

Si vous utilisez fast-cgi ou cgi, le paramètre passé à la fonction est la valeur de la variable $_SERVER['PATH_INFO']. Sinon, le paramètre passé à la fonction est la valeur de la variable $_SERVER['REQUEST_URI'].

Si une chaîne est retournée, elle sera utilisée dans le chemin interne du fichier. Si FALSE est retourné, alors webPhar() enverra un code HTTP 403.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lève une exception PharException quand le fichier interne ne peut pas être ouvert ou si l'appel est fait en dehors d'un conteneur. Si une valeur de tableau non valide est passée dans mimetypes ou si une fonction de rappel invalide est passée au paramètre rewrites, alors une exception UnexpectedValueException est levée.

Exemples

Exemple #1 Exemple avec Phar::webPhar()

Dans l'exemple ci-dessous, le phar créé affichera Salut tout le monde si quelqu'un appelle /monphar.phar/index.php ou /monphar.phar, et affichera la source de index.phps si /monphar.phar/index.phps est appelé.

<?php
// l'archive phar est créée :
try {
    $phar = new Phar('monphar.phar');
    $phar['index.php'] = '<?php echo "Salut tout le monde"; ?>';
    $phar['index.phps'] = '<?php echo "Salut tout le monde"; ?>';
    $phar->setStub('<?php
Phar::webPhar();
__HALT_COMPILER(); ?>');
} catch (Exception $e) {
    // on traite les erreurs ici
}
?>

Voir aussi

  • Phar::mungServer() - Définit une liste de maximum 4 variables $_SERVER qui doivent être modifiées lors de l'exécution
  • Phar::interceptFileFuncs() - Informe phar qu'il doit intercepter les fonctions de fichiers


La classe PharData

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Introduction

La classe PharData fournit une interface de haut niveau pour accéder et créer des archives tar et zip non exécutables. Du fait que ces archives ne contiennent pas de conteneur et qu'elles ne puissent être exécutées par l'extension phar, il est possible de créer et de manipuler des fichiers zip et tar normaux en utilisant la classe PharData même si le paramètre phar.readonly du php.ini est à 1.

Synopsis de la classe

PharData extends Phar {
/* Méthodes */
bool addEmptyDir ( string $dirname )
public void Phar::addFile ( string $file [, string $localname ] )
bool addFromString ( string $localname , string $contents )
public array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )
array buildFromIterator ( Iterator $iter [, string $base_directory ] )
object compress ( int $compression [, string $extension ] )
bool compressFiles ( int $compression )
__construct ( string $fname [, int $flags [, string $alias [, int $format = Phar::TAR ]]] )
PharData convertToData ([ int $format [, int $compression [, string $extension ]]] )
Phar convertToExecutable ([ int $format [, int $compression [, string $extension ]]] )
bool copy ( string $oldfile , string $newfile )
object decompress ([ string $extension ] )
bool decompressFiles ( void )
bool delMetadata ( void )
bool delete ( string $entry )
bool extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )
bool isWritable ( void )
void offsetSet ( string $offset , string $value )
bool offsetUnset ( string $offset )
bool setAlias ( string $alias )
bool setDefaultStub ([ string $index [, string $webindex ]] )
public void Phar::setMetadata ( mixed $metadata )
public void Phar::setSignatureAlgorithm ( int $sigtype )
bool setStub ( string $stub [, int $len = -1 ] )
/* Méthodes héritées */
public void Phar::addEmptyDir ( string $dirname )
public void Phar::addFile ( string $file [, string $localname ] )
public void Phar::addFromString ( string $localname , string $contents )
final public static string Phar::apiVersion ( void )
public array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )
public array Phar::buildFromIterator ( Iterator $iter [, string $base_directory ] )
final public static bool Phar::canCompress ([ int $type = 0 ] )
final public static bool Phar::canWrite ( void )
public object Phar::compress ( int $compression [, string $extension ] )
public bool Phar::compressAllFilesBZIP2 ( void )
public bool Phar::compressAllFilesGZ ( void )
public void Phar::compressFiles ( int $compression )
public Phar::__construct ( string $fname [, int $flags [, string $alias ]] )
public PharData Phar::convertToData ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )
public Phar Phar::convertToExecutable ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )
public bool Phar::copy ( string $oldfile , string $newfile )
public int Phar::count ( void )
final public static string Phar::createDefaultStub ([ string $indexfile [, string $webindexfile ]] )
public object Phar::decompress ([ string $extension ] )
public bool Phar::decompressFiles ( void )
public bool Phar::delMetadata ( void )
public bool Phar::delete ( string $entry )
public bool Phar::extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )
public mixed Phar::getMetadata ( void )
public bool Phar::getModified ( void )
public array Phar::getSignature ( void )
public string Phar::getStub ( void )
final public static array Phar::getSupportedCompression ( void )
final public static array Phar::getSupportedSignatures ( void )
public string Phar::getVersion ( void )
public bool Phar::hasMetadata ( void )
final public static void Phar::interceptFileFuncs ( void )
public bool Phar::isBuffering ( void )
public mixed Phar::isCompressed ( void )
public bool Phar::isFileFormat ( int $format )
final public static bool Phar::isValidPharFilename ( string $filename [, bool $executable = true ] )
public bool Phar::isWritable ( void )
final public static bool Phar::loadPhar ( string $filename [, string $alias ] )
final public static bool Phar::mapPhar ([ string $alias [, int $dataoffset = 0 ]] )
final public static void Phar::mount ( string $pharpath , string $externalpath )
final public static void Phar::mungServer ( array $munglist )
public bool Phar::offsetExists ( string $offset )
public int Phar::offsetGet ( string $offset )
public void Phar::offsetSet ( string $offset , string $value )
public bool Phar::offsetUnset ( string $offset )
final public static string Phar::running ([ bool $retphar = true ] )
public bool Phar::setAlias ( string $alias )
public bool Phar::setDefaultStub ([ string $index [, string $webindex ]] )
public void Phar::setMetadata ( mixed $metadata )
public void Phar::setSignatureAlgorithm ( int $sigtype [, string $privatekey ] )
public bool Phar::setStub ( string $stub [, int $len = -1 ] )
public void Phar::startBuffering ( void )
public void Phar::stopBuffering ( void )
public bool Phar::uncompressAllFiles ( void )
final public static bool Phar::unlinkArchive ( string $archive )
final public static void Phar::webPhar ([ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, callable $rewrites ]]]]] )
}

Sommaire

  • PharData::addEmptyDir — Ajoute un répertoire vide à l'archive tar/zip
  • PharData::addFile — Ajoute un fichier du système de fichiers à l'archive tar/zip
  • PharData::addFromString — Ajoute un fichier du système de fichiers à l'archive tar/zip
  • PharData::buildFromDirectory — Construit une archive tar/zip à partir des fichiers d'un répertoire
  • PharData::buildFromIterator — Construit une archive tar ou zip à partir d'un itérateur
  • PharData::compress — Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2
  • PharData::compressFiles — Compresse tous les fichiers de l'archive tar/zip courante
  • PharData::__construct — Construit un objet d'archive tar ou zip non-exécutable
  • PharData::convertToData — Convertit une archive phar en une archive tar ou zip non-exécutable
  • PharData::convertToExecutable — Convertit une archive tar/zip non-exécutable en une archive phar exécutable
  • PharData::copy — Copie un fichier un fichier interne à l'archive phar vers un autre fichier au sein de la même archive
  • PharData::decompress — Décompresse l'archive Phar entière
  • PharData::decompressFiles — Décompresse tous les fichiers de l'archive zip courante
  • PharData::delMetadata — Efface les méta-données globales d'une archive zip
  • PharData::delete — Efface un fichier au sein de l'archive tar/zip
  • PharData::extractTo — Extrait le contenu d'une archive tar/zip vers un répertoire
  • PharData::isWritable — Vérifie si l'archive tar/zip peut être modifiée
  • PharData::offsetSet — remplit un fichier au sein de l'archive tar/zip avec le contenu d'un fichier externe ou d'une chaîne de caractères
  • PharData::offsetUnset — efface un fichier d'une archive tar/zip
  • PharData::setAlias — fonction inutile (Phar::setAlias n'est pas valide pour PharData)
  • PharData::setDefaultStub — fonction inutile (Phar::setDefaultStub n'est pas valide pour PharData)
  • Phar::setMetadata — Fixe les méta-données de l'archive
  • Phar::setSignatureAlgorithm — Assigne l'algorithme de signature d'un phar et l'applique
  • PharData::setStub — fonction inutile (Phar::setStub n'est pas valide pour PharData)


Ajoute un répertoire vide à l'archive tar/zip

  • « PharData
  • PharData::addFile »
  • PHP Manual
  • PharData
  • Ajoute un répertoire vide à l'archive tar/zip

PharData::addEmptyDir

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::addEmptyDir — Ajoute un répertoire vide à l'archive tar/zip

Description

bool PharData::addEmptyDir ( string $dirname )

Avec cette méthode, un répertoire vide est créé avec le chemin dirname. Cette méthode est identique à ZipArchive::addEmptyDir().

Liste de paramètres

dirname

Le nom du répertoire vide à créer dans l'archive phar

Valeurs de retour

aucune valeur de retour, une exception est levée en cas d'échec.

Exemples

Exemple #1 Un exemple avec PharData::addEmptyDir()

<?php
try {
    $a = new PharData('/chemin/vers/mon.tar');

    $a->addEmptyDir('/chemin/complet/vers/fichier');
    // montre comment le fichier est stocké
    $b = $a['chemin/complet/vers/fichier']->isDir();
} catch (Exception $e) {
    // les erreurs sont traitées ici
}
?>

Voir aussi

  • Phar::addEmptyDir() - Ajoute un répertoire vide à l'archive phar
  • PharData::addFile() - Ajoute un fichier du système de fichiers à l'archive tar/zip
  • PharData::addFromString() - Ajoute un fichier du système de fichiers à l'archive tar/zip


Ajoute un fichier du système de fichiers à l'archive tar/zip

  • « PharData::addEmptyDir
  • PharData::addFromString »
  • PHP Manual
  • PharData
  • Ajoute un fichier du système de fichiers à l'archive tar/zip

PharData::addFile

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::addFile — Ajoute un fichier du système de fichiers à l'archive tar/zip

Description

public void Phar::addFile ( string $file [, string $localname ] )

Avec cette méthode, n'importe quel fichier ou URL peut être ajouté à l'archive tar/zip. Si le second paramètre optionnel localname est spécifié, le fichier sera stocké dans l'archive avec ce nom, sans quoi le paramètre file est utilisé comme chemin vers lequel stocker le fichier au sein de l'archive. Les URL doivent avoir un nom local sans quoi une exception est levée. Cette méthode est identique à ZipArchive::addFile().

Liste de paramètres

file

Chemin relatif ou absolu vers un fichier du disque à ajouter à l'archive phar.

localname

Chemin vers lequel le fichier sera stocké au sein de l'archive.

Valeurs de retour

aucune valeur de retour, une exception est levée en cas d'échec.

Exemples

Exemple #1 Un exemple avec PharData::addFile()

<?php
try {
    $a = new PharData('/chemin/vers/mon.tar');

    $a->addFile('/chemin/complet/vers/fichier');
    // montre comment le fichier est stocké
    $b = $a['chemin/complet/vers/fichier']->getContent();

    $a->addFile('/chemin/complet/vers/fichier', 'mon/fichier.txt');
    $c = $a['mon/fichier.txt']->getContent();

    // montre l'utilisation des URLs
    $a->addFile('http://www.exemple.com', 'exemple.html');
} catch (Exception $e) {
    // les erreurs sont traitées ici
}
?>

Voir aussi

  • PharData::offsetSet() - remplit un fichier au sein de l'archive tar/zip avec le contenu d'un fichier externe ou d'une chaîne de caractères
  • Phar::addFile() - Ajoute un fichier du système de fichiers à l'archive phar
  • PharData::addFromString() - Ajoute un fichier du système de fichiers à l'archive tar/zip
  • PharData::addEmptyDir() - Ajoute un répertoire vide à l'archive tar/zip


Ajoute un fichier du système de fichiers à l'archive tar/zip

  • « PharData::addFile
  • PharData::buildFromDirectory »
  • PHP Manual
  • PharData
  • Ajoute un fichier du système de fichiers à l'archive tar/zip

PharData::addFromString

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::addFromString — Ajoute un fichier du système de fichiers à l'archive tar/zip

Description

bool PharData::addFromString ( string $localname , string $contents )

Ajoute une chaîne de caractères à l'archive tar/zip. Le fichier sera stocké dans l'archive avec le chemin localname. Cette méthode est identique à ZipArchive::addFromString().

Liste de paramètres

localname

Chemin vers lequel le fichier sera stocké au sein de l'archive.

contents

Le contenu du fichier à stocker

Valeurs de retour

Aucune valeur de retour, une exception est levée en cas d'échec.

Exemples

Exemple #1 Exemple avec PharData::addFromString()

<?php
try {
    $a = new PharData('/chemin/vers/mon.tar');

    $a->addFromString('chemin/vers/fichier.txt', 'mon fichier simple');
    $b = $a['chemin/vers/fichier.txt']->getContent();

    // pour ajouter du contenu à partir d'un gestionnaire de flux pour des gros fichier, utilisez offsetSet()
    $c = fopen('/chemin/vers/grosfichier.bin');
    $a['grosfichier.bin'] = $c;
    fclose($c);
} catch (Exception $e) {
    // les erreurs sont traitées ici
}
?>

Voir aussi

  • PharData::offsetSet() - remplit un fichier au sein de l'archive tar/zip avec le contenu d'un fichier externe ou d'une chaîne de caractères
  • Phar::addFromString() - Ajoute un fichier depuis une chaîne de caractère à l'archive phar
  • PharData::addFile() - Ajoute un fichier du système de fichiers à l'archive tar/zip
  • PharData::addEmptyDir() - Ajoute un répertoire vide à l'archive tar/zip


Construit une archive tar/zip à partir des fichiers d'un répertoire

  • « PharData::addFromString
  • PharData::buildFromIterator »
  • PHP Manual
  • PharData
  • Construit une archive tar/zip à partir des fichiers d'un répertoire

PharData::buildFromDirectory

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::buildFromDirectory — Construit une archive tar/zip à partir des fichiers d'un répertoire

Description

public array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )

Remplit une archive tar/zip à partir du contenu d'un répertoire. Le second paramètre optionnel est une expression rationnelle (pcre) utilisée pour exclure des fichiers. N'importe quel fichier dont le nom satisfait sera inclus, tous les autres seront exclus. Pour un contrôle plus fin, utilisez PharData::buildFromIterator().

Liste de paramètres

base_dir

Le chemin relatif ou absolu vers le répertoire contenant tous les fichiers à ajouter à l'archive.

regex

Une expression rationnelle optionnelle qui est utilisée pour filtrer la liste des fichiers. Seuls les fichiers dont le nom satisfont l'expression seront inclus dans l'archive.

Valeurs de retour

Phar::buildFromDirectory() retourne un tableau associatif faisant correspondre un chemin de fichier interne vers un chemin complet sur le système de fichiers.

Erreurs / Exceptions

Cette méthode soulève une exception BadMethodCallException quand elle est incapable d'instancier les itérateurs interne de répertoire, ou une exception PharException si des erreurs ont été rencontrée lors de l'enregistrement de l'archive phar.

Exemples

Exemple #1 Un exemple avec PharData::buildFromDirectory()

<?php
$phar = new PharData('projet.tar');
// ajoute tous les fichiers au projet
$phar->buildFromDirectory(dirname(__FILE__) . '/projet');

$phar2 = new PharData('projet2.zip');
// ajoute tous les fichiers au projet en n'incluant que les fichiers php
$phar2->buildFromDirectory(dirname(__FILE__) . '/projet', '/\.php$/');
?>

Voir aussi

  • Phar::buildFromDirectory() - Construit une archive phar à partir des fichiers d'un répertoire
  • PharData::buildFromIterator() - Construit une archive tar ou zip à partir d'un itérateur


Construit une archive tar ou zip à partir d'un itérateur

  • « PharData::buildFromDirectory
  • PharData::compress »
  • PHP Manual
  • PharData
  • Construit une archive tar ou zip à partir d'un itérateur

PharData::buildFromIterator

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::buildFromIterator — Construit une archive tar ou zip à partir d'un itérateur

Description

array PharData::buildFromIterator ( Iterator $iter [, string $base_directory ] )

Remplit une archive tar ou zip à partir d'un itérateur. Deux styles d'itérateurs sont supportés, les itérateurs qui font correspondre le chemin de fichier au sein de l'archive avec le chemin sur le disque, et les itérateurs comme DirectoryIterator qui retournent des objets SplFileInfo. Pour les itérateurs qui retournent des objets SplFileInfo, le second paramètre est requis.

Exemples

Exemple #1 Exemple avec PharData::buildFromIterator() et SplFileInfo

Pour la plupart des archive tar/zip, l'archive reflétera la structure de répertoire actuelle, et le second style est le plus utile. Par exemple, pour créer une archive tar/zip contenant les fichiers contenant la structure de répertoire ci-dessous :

/chemin/vers/projet/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     fichier1.php
                     fichier2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

Ce code peut être utilisé pour ajouter des fichiers à l'archive "projet.tar" tar :

<?php
$phar = new PharData('projet.tar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new RecursiveDirectoryIterator('/chemin/vers/projet')),
    '/chemin/vers/projet');
?>

Le fichier projet.tar peut alors être effacé immédiatement. PharData::buildFromIterator() ne règle pas les paramètres tels que la compression, les métadonnées, ce qui peut être fait après avoir créé l'archive tar/zip.

A noter que Phar::buildFromIterator() peut aussi être utilisé pour copier le contenu d'une archive phar, tar ou zip existante, car l'objet PharData est dérivé de DirectoryIterator :

<?php
$phar = new PharData('projet.tar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new Phar('/chemin/vers/unautrephar.phar')),
    'phar:///chemin/vers/unautrephar.phar/chemin/vers/projet');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Exemple #2 Exemple avec PharData::buildFromIterator() et d'autres itérateurs

La seconde forme d'itérateur peut être utilisée avec n'importe quel itérateur qui retourne une association clé => valeur, tel que ArrayIterator :

<?php
$phar = new PharData('projet.tar');
$phar->buildFromIterator(
    new ArrayIterator(
     array(
        'interne/fichier.php' => dirname(__FILE__) . '/unfichier.php',
        'unautre/fichier.jpg' => fopen('/chemin/vers/grosfichier.jpg', 'rb'),
     )));
?>

Liste de paramètres

iter

N'importe quel itérateur qui fait correspondre de façon associative un fichier tar/zip ou qui retourne des objets SplFileInfo

base_directory

Pour les itérateurs qui retournent des objets SplFileInfo, la partie du chemin complet vers le fichier à enlever lors de l'ajout à l'archive tar/zip

Valeurs de retour

PharData::buildFromIterator() retourne un tableau associatif faisant correspondre un chemin de fichier interne avec un chemin complet vers le fichier sur le système de fichiers.

Erreurs / Exceptions

Cette méthode retourne une exception UnexpectedValueException quand l'itérateur retourne des valeurs incorrectes, comme une clé entière plutôt qu'une chaîne, une exception BadMethodCallException quand un itérateur basé sur SplFileInfo-based est passé sans paramètre base_directory, ou une exception PharException si des erreurs ont été rencontrées lors de la sauvegarde de l'archive phar.

Voir aussi

  • Phar::buildFromIterator() - Construit une archive phar à partir d'un itérateur


Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2

  • « PharData::buildFromIterator
  • PharData::compressFiles »
  • PHP Manual
  • PharData
  • Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2

PharData::compress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::compress — Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2

Description

object PharData::compress ( int $compression [, string $extension ] )

Pour les archives tar, cette méthode compresse l'archive entière en utilisant la compressions gzip ou bzip2. Le fichier qui en résulte peut être manipulé avec la commande gunzip/bunzip, ou être accédé directement et de façon transparente avec l'extension Phar.

Pour les archives zip, cette méthode échoue en levant une exception. L'extension zlib doit être activée pour compresser avec gzip, l'extension bzip2 doit être activée pour compresser avec bzip2.

De plus, cette méthode renomme automatiquement l'archive, en la suffixant par .gz, .bz2 ou en enlevant l'extension si Phar::NONE est spécifié pour enlever la compression. Sinon, une extension de fichier peut être spécifiée avec le second paramètre.

Liste de paramètres

compression

La compression doit être Phar::GZ ou Phar::BZ2 pour appliquer une compression, ou Phar::NONE pour l'enlever.

extension

Par défaut, l'extension est .tar.gz ou .tar.bz2 pour compresser un tar, et .tar pour décompresser.

Valeurs de retour

Un objet PharData est retourné.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si l'extension zlib n'est pas disponible, ou si l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec PharData::compress()

<?php
$p = new PharData('/chemin/vers/mon.tar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
$p1 = $p->compress(Phar::GZ); // copies vers /path/to/my.tar.gz
$p2 = $p->compress(Phar::BZ2); // copies vers /path/to/my.tar.bz2
$p3 = $p2->compress(Phar::NONE); // exception : /path/to/my.tar existe déjà
?>

Voir aussi

  • Phar::compress() - Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2


Compresse tous les fichiers de l'archive tar/zip courante

  • « PharData::compress
  • PharData::__construct »
  • PHP Manual
  • PharData
  • Compresse tous les fichiers de l'archive tar/zip courante

PharData::compressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::compressFiles — Compresse tous les fichiers de l'archive tar/zip courante

Description

bool PharData::compressFiles ( int $compression )

Pour les archives basées sur tar, cette méthode soulève une exception BadMethodCallException car la compression individuelle des fichiers d'une archive tar n'est pas supportée par ce format de fichiers. Utilisez PharData::compress() pour compresser une archive basée sur tar complète.

Pour les archives basées sur Zip, cette méthode compresse tous les fichiers de l'archive en utilisant la compression spécifiée. Les extensions zlib ou bzip2 doivent être activées pour tirer parti de cette fonctionnalité. De plus, si au moins un fichier est déjà compressé en utilisant la compression bzip2/zlib, l'extension adéquate être activée pour décompresser les fichiers avant de les re-compresser.

Liste de paramètres

compression

La compression doit être Phar::GZ ou Phar::BZ2 pour appliquer une compression, ou Phar::NONE pour l'enlever.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si la variable INI phar.readonly est à on, si l'extension zlib n'est pas disponible ou si au moins un fichier est compressé via bzip2 et que l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec PharData::compressFiles()

<?php
$p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

L'exemple ci-dessus va afficher :

string(14) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(15) "monfichier2.txt"
bool(false)
bool(false)
bool(false)
string(14) "monfichier.txt"
int(4096)
bool(false)
bool(true)
string(15) "monfichier2.txt"
int(4096)
bool(false)
bool(true)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • PharData::decompressFiles() - Décompresse tous les fichiers de l'archive zip courante
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • PharData::compress() - Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2
  • PharData::decompress() - Décompresse l'archive Phar entière


Construit un objet d'archive tar ou zip non-exécutable

  • « PharData::compressFiles
  • PharData::convertToData »
  • PHP Manual
  • PharData
  • Construit un objet d'archive tar ou zip non-exécutable

PharData::__construct

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::__construct — Construit un objet d'archive tar ou zip non-exécutable

Description

PharData::__construct ( string $fname [, int $flags [, string $alias [, int $format = Phar::TAR ]]] )

Liste de paramètres

fname

Chemin vers une archive tar/zip existante ou à créer

flags

Drapeaux à passer à la classe parente Phar RecursiveDirectoryIterator.

alias

L'alias de l'archive Phar à utiliser lors des appels aux fonctionnalités de flux.

format

Une des constantes de format de fichier disponible dans la classe Phar.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si appelée deux fois, une exception UnexpectedValueException si l'archive phar ne peut pas être ouverte.

Exemples

Exemple #1 Un exemple avec PharData::__construct()

<?php
try {
    $p = new PharData('/path/to/my.tar', Phar::CURRENT_AS_FILEINFO | Phar::KEY_AS_FILENAME);
} catch (UnexpectedValueException $e) {
    die('Ne peut pas ouvrir mon.tar');
} catch (BadMethodCallException $e) {
    echo 'techniquement, ça ne peut pas arriver';
}
echo file_get_contents('phar:///chemin/vers/mon.tar/exemple.txt');
?>


Convertit une archive phar en une archive tar ou zip non-exécutable

  • « PharData::__construct
  • PharData::convertToExecutable »
  • PHP Manual
  • PharData
  • Convertit une archive phar en une archive tar ou zip non-exécutable

PharData::convertToData

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::convertToData — Convertit une archive phar en une archive tar ou zip non-exécutable

Description

PharData PharData::convertToData ([ int $format [, int $compression [, string $extension ]]] )

Cette méthode est utilisée pour convertir une archive non exécutable tar ou zip en un autre format non-exécutable.

Si aucun changement n'est demandé, cette méthode, cette méthode soulève une exception BadMethodCallException. Cette méthode doit être utilisée pour convertir une archive tar au format zip et vice-versa. Bien qu'il soit possible de changer la compression d'une archive tar avec cette méthode, il est préférable d'utiliser la méthode PharData::compress() pour rester cohérent au niveau de la logique.

En cas de succès, cette méthode crée une nouvelle archive sur le disque et retourne un objet PharData. L'ancienne archive n'est pas effacée du disque, ceci devant être fait manuellement une fois le traitement terminé.

Liste de paramètres

format

Le format doit être Phar::TAR ou Phar::ZIP. S'il vaut NULL, le format de fichier actuel sera conservé.

compression

La compression doit être Phar::NONE pour éviter la compression de l'archive complète, Phar::GZ pour la compression basée sur zlib, et Phar::BZ2 pour la compression basée sur bzip.

extension

Ce paramètre est utilisé pour écrase l'extension de fichier par défaut de l'archive convertie. Notez que .phar ne peut pas être utilisé n'importe où dans le nom de fichier d'une archive tar ou zip non-exécutable.

En cas de conversion vers une archive phar basée sur tar, les extensions par défaut sont .tar, .tar.gz et .tar.bz2 selon la compression spécifiée. Pour les archives basées sur zip, l'extension par défaut est .zip.

Valeurs de retour

Cette méthode retourne un objet PharData en cas de succès et soulève une exception en cas d'échec.

Erreurs / Exceptions

Cette méthode soulève une exception BadMethodCallException quand elle est incapable de compresser, quand une méthode de compression inconnue a été spécifiée, quand l'archive demandée est mise en tampon avec Phar::startBuffering() et qu'elle n'a pas été conclue avec Phar::stopBuffering(), et soulève une exception PharException si un quelconque problème est rencontré lors de la création du phar.

Exemples

Exemple #1 Un exemple avec PharData::convertToData()

Utilisons PharData::convertToData():

<?php
try {
    $tarphar = new PharData('monphar.tar');
    // notez que monphar.tar n'est *pas* effacé
    // le convertir au format tar non-exécutable
    // crée monphar.zip
    $zip = $tarphar->convertToData(Phar::ZIP);
    // crée monphar.tbz
    $tgz = $zip->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
    // crée monphar.phar.tgz
    $phar = $tarphar->convertToData(Phar::PHAR); // soulève une exceptions
} catch (Exception $e) {
    // les erreurs sont traitées ici
}
?>

Voir aussi

  • Phar::convertToExecutable() - Convertit une archive phar vers un autre format de fichier d'archive phar exécutable
  • Phar::convertToData() - Convertit une archive phar en un fichier non-exécutable
  • PharData::convertToExecutable() - Convertit une archive tar/zip non-exécutable en une archive phar exécutable


Convertit une archive tar/zip non-exécutable en une archive phar exécutable

  • « PharData::convertToData
  • PharData::copy »
  • PHP Manual
  • PharData
  • Convertit une archive tar/zip non-exécutable en une archive phar exécutable

PharData::convertToExecutable

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::convertToExecutable — Convertit une archive tar/zip non-exécutable en une archive phar exécutable

Description

Phar PharData::convertToExecutable ([ int $format [, int $compression [, string $extension ]]] )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Cette méthode est utilisée pour convertit une archive tar ou zip non-exécutable en une archive phar exécutable. N'importe lequel des trois formats de fichier (phar, tar ou zip) peut être utilisé et la compression de l'archive complète est aussi possible.

Si aucun changement n'est demandé, cette méthode soulève une exception BadMethodCallException.

En cas de succès, cette méthode crée une nouvelle archive sur le disque et retourne un objet Phar. L'ancienne archive n'est pas effacée du disque, ceci devant être fait manuellement une fois le traitement terminé.

Liste de paramètres

format

Le format doit être Phar::PHAR, Phar::TAR ou Phar::ZIP. S'il vaut NULL, le format de fichier actuel sera conservé.

compression

La compression doit être Phar::NONE pour éviter la compression de l'archive complète, Phar::GZ pour la compression basée sur zlib, et Phar::BZ2 pour la compression basée sur bzip.

extension

Ce paramètre est utilisé pour écrase l'extension de fichier par défaut de l'archive convertie. Notez que toute les archives basées sur tar et sur zip doivent contenir .phar dans leur extension de fichier pour pouvoir être traitées comme des archives phar.

En cas de conversion vers une archive basée sur phar, les extensions par défaut sont .phar, .phar.gz ou .phar.bz2 selon la compression spécifiée. Pour les archives phar basées sur tar, les extensions par défaut sont .phar.tar, .phar.tar.gz et .phar.tar.bz2. Pour les archives phar basées sur zip, l'extension par défaut est .phar.zip.

Valeurs de retour

Cette méthode retourne un objet Phar en cas de succès et soulève une exception en cas d'échec.

Erreurs / Exceptions

Cette méthode soulève une exception BadMethodCallException quand elle est incapable de compresser, quand une méthode de compression inconnue a été spécifiée, quand l'archive demandée est mise en tampon avec Phar::startBuffering() et qu'elle n'a pas été conclue avec Phar::stopBuffering(), soulève une exception UnexpectedValueException si le support en écriture est désactivé, et soulève une exception PharException si des problèmes ont été rencontrés lors de la création du phar.

Exemples

Exemple #1 Un exemple avec PharData::convertToExecutable()

Utilisons PharData::convertToExecutable() :

<?php
try {
    $tarphar = new PharData('monphar.tar');
    // le convertit au format de fichier phar
    // notez que monphar.tar n'est *pas* effacé
    $phar = $tarphar->convertToExecutable(Phar::PHAR); // crée monphar.phar
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
    // crée monphar.phar.tgz
    $compressed = $tarphar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
    // les erreurs sont traitées ici
}
?>

Voir aussi

  • Phar::convertToExecutable() - Convertit une archive phar vers un autre format de fichier d'archive phar exécutable
  • Phar::convertToData() - Convertit une archive phar en un fichier non-exécutable
  • PharData::convertToData() - Convertit une archive phar en une archive tar ou zip non-exécutable


Copie un fichier un fichier interne à l'archive phar vers un autre fichier au sein de la même archive

  • « PharData::convertToExecutable
  • PharData::decompress »
  • PHP Manual
  • PharData
  • Copie un fichier un fichier interne à l'archive phar vers un autre fichier au sein de la même archive

PharData::copy

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::copy — Copie un fichier un fichier interne à l'archive phar vers un autre fichier au sein de la même archive

Description

bool PharData::copy ( string $oldfile , string $newfile )

Copie un fichier interne à l'archive tar/zip vers un autre fichier au sein de la même archive. C'est une alternative orientée objet à l'utilisation de copy() avec le gestionnaire de flux phar.

Liste de paramètres

oldfile

newfile

Valeurs de retour

retourne TRUE en cas de succès, mais il est plus sûr d'encadrer l'appel à la méthode dans un bloc try/catch est de considérer son succès si aucune exception n'est levée.

Erreurs / Exceptions

lève une exception UnexpectedValueException si le fichier source n'existe pas, si le fichier de destination existe déjà, si le support en écriture est désactivé, si l'ouverture d'un des deux fichiers échoue ou si la lecture du fichier source échoue; ou lève une exception PharException si l'écriture des changements de l'archive phar échoue.

Exemples

Exemple #1 Un exemple avec PharData::copy()

Cet exemple montre l'utilisation de PharData::copy() et de son équivalent en terme de gestionnaire de flux. La différence principale entre les deux façons de faire concerne la gestion des erreurs. Toutes les méthodes PharData soulèvent des exceptions, alors que le gestionnaire de flux utilise trigger_error().

<?php
try {
    $phar = new PharData('monphar.tar');
    $phar['a'] = 'salut';
    $phar->copy('a', 'b');
    echo $phar['b']; // affiche "phar://myphar.tar/b"
} catch (Exception $e) {
    // on traite les erreurs
}

// l'équivalent en terme de flux de l'exemple ci-dessus.
// des E_WARNINGS sont lancés en cas d'erreur à la place d'exceptions.
copy('phar://monphar.tar/a', 'phar//monphar.tar/c');
echo file_get_contents('phar://monphar.tar/c'); // affiche "salut"
?>


Décompresse l'archive Phar entière

  • « PharData::copy
  • PharData::decompressFiles »
  • PHP Manual
  • PharData
  • Décompresse l'archive Phar entière

PharData::decompress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::decompress — Décompresse l'archive Phar entière

Description

object PharData::decompress ([ string $extension ] )

Décompresse l'archive entière, si c'est une archive tar.

Pour les archives Zip, cette méthode échoue et lève une exception. L'extension zlib doit être activée pour décompresser une archive compressée avec gzip et l'extension bzip2 doit être disponible pour décompresser une archive compressée avec bzip2.

De plus, cette méthode renomme automatiquement l'extension de fichier de l'archive, .tar par défaut. Sinon, une extension de fichier peut être spécifiée avec le second paramètre.

Liste de paramètres

extension

Pour décompresser, l'extension par défaut est .phar.tar. Utilisez ce paramètre pour spécifier une autre extension de fichier. Gardez à l'esprit que les archives non-exécutables ne peuvent pas contenir .phar dans leur nom de fichier.

Valeurs de retour

Un objet PharData est retourné.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si l'extension zlib n'est pas disponible ou si l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Exemple avec PharData::decompress()

<?php
$p = new PharData('/path/to/my.tar.gz');
$p->decompress(); // crée /path/to/my.tar
?>

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
  • PharData::compress() - Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • PharData::compress() - Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • PharData::compressFiles() - Compresse tous les fichiers de l'archive tar/zip courante
  • PharData::decompressFiles() - Décompresse tous les fichiers de l'archive zip courante


Décompresse tous les fichiers de l'archive zip courante

  • « PharData::decompress
  • PharData::delMetadata »
  • PHP Manual
  • PharData
  • Décompresse tous les fichiers de l'archive zip courante

PharData::decompressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::decompressFiles — Décompresse tous les fichiers de l'archive zip courante

Description

bool PharData::decompressFiles ( void )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Pour les archives basées sur tar, cette méthode soulève une exception BadMethodCallException, car la compression individuelle des fichiers au sein d'une archive tar n'est pas supportée par le format de fichier. Utilisez PharData::compress() pour compresser une archive basée sur tar complète.

Pour les archives basées sur Zip, cette méthode décompresse tous les fichiers de l'archive. Les extensions zlib ou bzip2 doivent être activées pour tirer parti de cette fonctionnalité si au moins un des fichiers est compressé avec bzip2/zlib.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si l'extension zlib n'est pas disponible ou si au moins un des fichiers est compressé avec bzip2 et que l'extension bzip2 n'est pas activée.

Exemples

Exemple #1 Un exemple avec PharData::decompressFiles()

<?php
$p = new PharData('/chemin/vers/mon.zip');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->decompressFiles();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

L'exemple ci-dessus va afficher :

string(14) "monfichier.txt"
int(4096)
bool(false)
bool(true)
string(15) "monfichier2.txt"
int(4096)
bool(false)
bool(true)
string(14) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(15) "monfichier2.txt"
bool(false)
bool(false)
bool(false)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • PharData::compressFiles() - Compresse tous les fichiers de l'archive tar/zip courante
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • PharData::compress() - Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2
  • PharData::decompress() - Décompresse l'archive Phar entière


Efface les méta-données globales d'une archive zip

  • « PharData::decompressFiles
  • PharData::delete »
  • PHP Manual
  • PharData
  • Efface les méta-données globales d'une archive zip

PharData::delMetadata

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::delMetadata — Efface les méta-données globales d'une archive zip

Description

bool PharData::delMetadata ( void )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Efface les méta-données globales de l'archive zip

Liste de paramètres

Valeurs de retour

retourne TRUE en cas de succès, mais il est préférable de vérifier les exception soulevées et de considérer le succès si aucune ne l'est.

Erreurs / Exceptions

Soulève une exception PharException si des erreurs sont rencontrés lors de l'écriture des changements sur le disque.

Exemples

Exemple #1 Un exemple avec PharData::delMetaData()

<?php
try {
    $phar = new PharData('monphar.zip');
    var_dump($phar->getMetadata());
    $phar->setMetadata("salut");
    var_dump($phar->getMetadata());
    $phar->delMetadata();
    var_dump($phar->getMetadata());
} catch (Exception $e) {
    // on traite les erreurs
}
?>

L'exemple ci-dessus va afficher :

NULL
string(5) "salut"
NULL

Voir aussi

  • Phar::delMetadata() - Efface les méta-données globales du phar


Efface un fichier au sein de l'archive tar/zip

  • « PharData::delMetadata
  • PharData::extractTo »
  • PHP Manual
  • PharData
  • Efface un fichier au sein de l'archive tar/zip

PharData::delete

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::delete — Efface un fichier au sein de l'archive tar/zip

Description

bool PharData::delete ( string $entry )

Efface un fichier au sein de l'archive. C'est l'équivalent fonctionnel de l'appel à unlink() à l'aide du gestionnaire de flux phar, comme montré dans l'exemple ci-dessous.

Liste de paramètres

entry

Chemin du fichier à effacer au sein de l'archive.

Valeurs de retour

retourne TRUE en cas de succès, mais il est préférable de vérifier les exception soulevées et de considérer le succès si aucune ne l'est.

Erreurs / Exceptions

Soulève une exception PharException si des erreurs sont rencontrés lors de l'écriture des changements sur le disque.

Exemples

Exemple #1 Un exemple avec PharData::delete()

<?php
try {
    $phar = new PharData('monphar.zip');
    $phar->delete('efface/moi.php');
    // c'est l'équivalent de :
    unlink('phar://monphar.phar/efface/mon.php');
} catch (Exception $e) {
    // on traite les erreurs
}
?>

Voir aussi

  • Phar::delete() - Efface un fichier au sein d'une archive phar


Extrait le contenu d'une archive tar/zip vers un répertoire

  • « PharData::delete
  • PharData::isWritable »
  • PHP Manual
  • PharData
  • Extrait le contenu d'une archive tar/zip vers un répertoire

PharData::extractTo

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::extractTo — Extrait le contenu d'une archive tar/zip vers un répertoire

Description

bool PharData::extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )

Extrait tous les fichiers d'une archive tar/zip vers le disque. Les fichiers et les répertoires extraits conservent les permissions telles qu'au sein de l'archive. Les paramètres optionnels permettent un éventuel contrôle sur quels fichiers seront extraits et si les fichiers déjà présents sur le disque peuvent être écrasés. Le second paramètre files peut être le nom d'un fichier ou d'un répertoire à extraire, ou tableau de nom de fichiers et de répertoires à extraire. Par défaut, cette méthode n'écrasera aucun fichier déjà existant, à moins que le troisième paramètre soit à TRUE. Cette méthode est identique à ZipArchive::extractTo().

Liste de paramètres

pathto

Chemin où les fichiers seront extraits.

files

Le nom d'un fichier ou d'un répertoire à extraire, ou un tableau de fichiers/répertoires à extraire

overwrite

Le passer à TRUE pour activer l'écrasement des fichiers déjà existants

Valeurs de retour

retourne TRUE en cas de succès, mais il est préférable de vérifier les exception soulevées et de considérer le succès si aucune ne l'est.

Erreurs / Exceptions

Soulève une exception PharException si des erreurs sont rencontrés lors de l'écriture des changements sur le disque.

Exemples

Exemple #1 Un exemple avec PharData::extractTo()

<?php
try {
    $phar = new PharData('monphar.tar');
    $phar->extractTo('/chemin/complet'); // extrait tous les fichiers
    $phar->extractTo('/un/autre/chemin', 'fichier.txt'); // extrait seulement fichier.txt
    $phar->extractTo('/ce/chemin',
        array('fichier1.txt', 'fichier2.txt')); // extrait seulement 2 fichiers
    $phar->extractTo('/troisieme/chemin', null, true); // extrait tous les fichiers, en écrasant
} catch (Exception $e) {
    // on traite les erreurs
}
?>

Voir aussi

  • Phar::extractTo() - Extrait le contenu d'une archive phar vers un répertoire


Vérifie si l'archive tar/zip peut être modifiée

  • « PharData::extractTo
  • PharData::offsetSet »
  • PHP Manual
  • PharData
  • Vérifie si l'archive tar/zip peut être modifiée

PharData::isWritable

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::isWritable — Vérifie si l'archive tar/zip peut être modifiée

Description

bool PharData::isWritable ( void )

Cette méthode retourne TRUE si l'archive tar/zip sur le disque n'est pas en lecture seule. Contrairement à Phar::isWritable(), les archives tar/zip de données peuvent être modifiées même si phar.readonly est à 1.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Retourne TRUE si l'archive tar/zip peut être modifiée

Voir aussi

  • Phar::canWrite() - Détermine si l'extension phar supporte la création et l'écriture des phars
  • Phar::isWritable() - Retourne TRUE si l'archive phar peut être modifiée


remplit un fichier au sein de l'archive tar/zip avec le contenu d'un fichier externe ou d'une chaîne de caractères

  • « PharData::isWritable
  • PharData::offsetUnset »
  • PHP Manual
  • PharData
  • remplit un fichier au sein de l'archive tar/zip avec le contenu d'un fichier externe ou d'une chaîne de caractères

PharData::offsetSet

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::offsetSet — remplit un fichier au sein de l'archive tar/zip avec le contenu d'un fichier externe ou d'une chaîne de caractères

Description

void PharData::offsetSet ( string $offset , string $value )

C'est une implémentation de l'interface ArrayAccess permettant la manipulation directe du contenu d'une archive tar/zip en utilisant les crochets, opérateurs d'accès au tableau. offsetSet est utilisé pour modifier un fichier existant ou pour ajouter un nouveau fichier à l'archive tar/zip.

Liste de paramètres

offset

Le chemin (relatif) du fichier à modifier au sein de l'archive tar ou zip.

value

Contenu du fichier.

Valeurs de retour

Aucune valeur de retour.

Erreurs / Exceptions

Soulève une exception PharException si des problèmes ont été rencontrés lors de l'écriture sur le disque des changements de l'archive tar/zip.

Exemples

Exemple #1 Un exemple avec PharData::offsetSet()

offsetSet ne doit pas être accédé directement, mais plutôt utilisé via l'opérateur [].

<?php
$p = new PharData('/chemin/vers/mon.tar');
try {
    // appelle offsetSet
    $p['fichier.txt'] = 'Salut';
} catch (Exception $e) {
    echo 'Ne peut pas modifier fichier.txt:', $e;
}
?>

Voir aussi

  • Phar::offsetSet() - met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe


efface un fichier d'une archive tar/zip

  • « PharData::offsetSet
  • PharData::setAlias »
  • PHP Manual
  • PharData
  • efface un fichier d'une archive tar/zip

PharData::offsetUnset

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::offsetUnset — efface un fichier d'une archive tar/zip

Description

bool PharData::offsetUnset ( string $offset )

C'est une implémentation de l'interface ArrayAccess permettant la manipulation directe du contenu d'une archive tar/zip en utilisant les crochets, opérateurs d'accès au tableau. offsetUnset est utilisé pour effacer un fichier existant et est appelé par la construction de langage unset().

Liste de paramètres

offset

Le chemin (relatif) du fichier à modifier au sein de l'archive tar ou zip.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception PharException si des problèmes ont été rencontrés lors de l'écriture sur le disque des changements de l'archive tar/zip.

Exemples

Exemple #1 Un exemple avec PharData::offsetUnset()

<?php
$p = new PharData('/chemin/vers/mon.zip');
try {
    // efface fichier.txt de mon.zip en appelant offsetUnset
    unset($p['fichier.txt']);
} catch (Exception $e) {
    echo 'Ne peut pas effacer fichier.txt: ', $e;
}
?>

Voir aussi

  • Phar::offsetUnset() - Efface un fichier d'un phar


fonction inutile (Phar::setAlias n'est pas valide pour PharData)

  • « PharData::offsetUnset
  • PharData::setDefaultStub »
  • PHP Manual
  • PharData
  • fonction inutile (Phar::setAlias n'est pas valide pour PharData)

PharData::setAlias

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::setAlias — fonction inutile (Phar::setAlias n'est pas valide pour PharData)

Description

bool PharData::setAlias ( string $alias )

Les archives tar/zip non exécutables ne peuvent pas avoir d'alias, donc cette méthode ne fait que soulever une exception.

Liste de paramètres

alias

Une courte chaîne de caractères à laquelle se référer pour faire appel à l'archive via le gestionnaire de flux phar. Ce paramètre est ignoré.

Valeurs de retour

Erreurs / Exceptions

Soulève une exception PharException lors de l'appel à la méthode

Voir aussi

  • Phar::setAlias() - Fixe l'alias de l'archive Phar


fonction inutile (Phar::setDefaultStub n'est pas valide pour PharData)

  • « PharData::setAlias
  • Phar::setMetadata »
  • PHP Manual
  • PharData
  • fonction inutile (Phar::setDefaultStub n'est pas valide pour PharData)

PharData::setDefaultStub

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::setDefaultStub — fonction inutile (Phar::setDefaultStub n'est pas valide pour PharData)

Description

bool PharData::setDefaultStub ([ string $index [, string $webindex ]] )

Les archives tar/zip non-exécutables ne peuvent pas avoir de conteneur de chargement, donc cette méthode ne fait que soulever une exception.

Liste de paramètres

index

Chemin relatif au sein de l'archive phar à exécuter en cas d'accès à partir de la ligne de commande

webindex

Chemin relatif au sein de l'archive phar à exécuter en cas d'accès à partir d'un navigateur

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception PharException lors de l'appel à la méthode

Voir aussi

  • Phar::setDefaultStub() - Utilisé pour fixer le chargeur PHP ou le conteneur de chargement d'une archive Phar en tant que chargeur par défaut


Fixe les méta-données de l'archive

  • « PharData::setDefaultStub
  • Phar::setSignatureAlgorithm »
  • PHP Manual
  • PharData
  • Fixe les méta-données de l'archive

Phar::setMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::setMetadata — Fixe les méta-données de l'archive

Description

public void Phar::setMetadata ( mixed $metadata )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Phar::setMetadata() doit être utilisé pour stocker des méta-données personnalisées qui décrivent quelque chose à propos de l'archive phar en tant qu'entité complète. PharFileInfo::setMetadata() doit être utilisé pour les méta-données spécifiques aux fichiers. Les méta-données peuvent dégrader les performances de chargement d'une archive phar si les données sont trop lourdes.

Les méta-données peuvent être utilisées pour spécifier quel fichier au sein de l'archive doit être utilisé pour charger l'archive ou l'emplacement d'un fichier de manifeste comme le fichier package.xml de » PEAR. De manière générale, n'importe quelle donnée utile décrivant l'archive phar peut être stockée.

Liste de paramètres

metadata

N'importe quelle variable PHP contenant de l'information à stocker pour décrire l'archive phar

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Un exemple avec Phar::setMetadata()

<?php
// on s'assure que le phar n'existe pas
@unlink('nouveauphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/nouveauphar.phar', 0, 'nouveauphar.phar');
    $p['fichier.php'] = '<?php echo "salut"';
    $p->setMetadata(array('chargement' => 'fichier.php'));
    var_dump($p->getMetadata());
} catch (Exception $e) {
    echo 'Ne peut pas créer/modifier le phar:', $e;
}
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["chargement"]=>
  string(11) "fichier.php"
}

Voir aussi

  • Phar::getMetadata() - Retourne les méta-données de l'archive phar
  • Phar::delMetadata() - Efface les méta-données globales du phar
  • Phar::hasMetadata() - Détermine si le phar a ou non des méta-données


Assigne l'algorithme de signature d'un phar et l'applique

  • « Phar::setMetadata
  • PharData::setStub »
  • PHP Manual
  • PharData
  • Assigne l'algorithme de signature d'un phar et l'applique

Phar::setSignatureAlgorithm

(PHP >= 5.3.0, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithm — Assigne l'algorithme de signature d'un phar et l'applique

Description

public void Phar::setSignatureAlgorithm ( int $sigtype )

Note:

Cette méthode nécessite que la variable de configuration INI phar.readonly soit définie à 0 pour fonctionner avec les objets Phar. Sinon, une exception PharException sera lançée.

Assigne l'algorithme de signature d'un phar et l'applique. L'algorithme
de signature doit être  Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512, ou Phar::PGP
(PGP n'est pas encore supporté et implique Phar::SHA1).

Liste de paramètres

sigtype

Un algorithme parmi Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512, or Phar::PGP

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Soulève une exception UnexpectedValueException pour beaucoup d'erreurs, une exception BadMethodCallException si l'appel est fait pour une archive phar basée sur tar ou sur zip, une exception PharException si des problèmes sont rencontrés lors de l'écriture des changements sur le disque.

Voir aussi

  • Phar::getSupportedSignatures() - Retourne un tableau des types de signature supportés
  • Phar::getSignature() - Retourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar


fonction inutile (Phar::setStub n'est pas valide pour PharData)

  • « Phar::setSignatureAlgorithm
  • PharFileInfo »
  • PHP Manual
  • PharData
  • fonction inutile (Phar::setStub n'est pas valide pour PharData)

PharData::setStub

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::setStub — fonction inutile (Phar::setStub n'est pas valide pour PharData)

Description

bool PharData::setStub ( string $stub [, int $len = -1 ] )

Les archives tar/zip non-exécutables ne peuvent pas avoir de conteneur de chargement, donc cette méthode ne fait que soulever une exception.

Liste de paramètres

stub

Une chaîne de caractères ou un gestionnaire de flux ouvert à utiliser en tant que conteneur de chargement exécutable pour l'archive phar. Ce paramètre est ignoré.

len

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception PharException lors de tout appel à la méthode

Historique

Version | Description
5.4.0 | Ajout du paramètre len.

Voir aussi

  • Phar::setStub() - Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar


La classe PharFileInfo

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Introduction

La classe PharFileInfo fournit une interface de haut niveau pour accéder au contenu et aux attributs d'un fichier contenu dans une archive phar.

Synopsis de la classe

PharFileInfo extends SplFileInfo {
/* Méthodes */
public void chmod ( int $permissions )
public bool compress ( int $compression )
public __construct ( string $entry )
public bool decompress ( void )
public bool delMetadata ( void )
public int getCRC32 ( void )
public int getCompressedSize ( void )
public mixed getMetadata ( void )
public int getPharFlags ( void )
public bool hasMetadata ( void )
public bool isCRCChecked ( void )
public bool isCompressed ([ int $compression_type = 9021976 ] )
public bool isCompressedBZIP2 ( void )
public bool isCompressedGZ ( void )
public bool setCompressedBZIP2 ( void )
public bool setCompressedGZ ( void )
public void setMetadata ( mixed $metadata )
public bool setUncompressed ( void )
}

Sommaire

  • PharFileInfo::chmod — Fixe les bits de permission spécifiques aux fichiers
  • PharFileInfo::compress — Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • PharFileInfo::__construct — Construit un objet d'entrée Phar
  • PharFileInfo::decompress — Décompresse l'entrée Phar courante au sein du phar
  • PharFileInfo::delMetadata — Efface les métadonnées de l'entrée
  • PharFileInfo::getCRC32 — Retourne le code CRC32 ou soulève une exception si le CRC n'a pas été vérifié
  • PharFileInfo::getCompressedSize — Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::getMetadata — Retourne les méta-données spécifiques attachées à un fichier
  • PharFileInfo::getPharFlags — Retourne les drapeaux du fichier Phar
  • PharFileInfo::hasMetadata — Retourne les méta-données de l'entrée
  • PharFileInfo::isCRCChecked — Détermine si le fichier a un CRC vérifié
  • PharFileInfo::isCompressed — Retourne si l'entrée est compressée
  • PharFileInfo::isCompressedBZIP2 — Détermine si l'archive Phar est compressée avec bzip2
  • PharFileInfo::isCompressedGZ — Détermine si l'archive Phar est compressée avec gzip
  • PharFileInfo::setCompressedBZIP2 — Compresse l'entrée Phar courante au sein du phar avec Bzip2
  • PharFileInfo::setCompressedGZ — Compresse l'entrée Phar courante au sein du phar avec gzip
  • PharFileInfo::setMetadata — Fixe les métadonnées spécifiques à un fichier
  • PharFileInfo::setUncompressed — Décompresse l'entrée Phar courante au sein du phar s'il y a lieu


Fixe les bits de permission spécifiques aux fichiers

  • « PharFileInfo
  • PharFileInfo::compress »
  • PHP Manual
  • PharFileInfo
  • Fixe les bits de permission spécifiques aux fichiers

PharFileInfo::chmod

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::chmod — Fixe les bits de permission spécifiques aux fichiers

Description

public void PharFileInfo::chmod ( int $permissions )

PharFileInfo::chmod() permet de fixer les bits d'exécution des fichiers, ainsi que ceux de lecture seule. Ceux d'écriture sont ignorés car fixés au démarrage par la variable INI phar.readonly. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour réussir si le fichier est au sein d'une archive Phar. Les fichiers au sein d'une archive PharData n'ont pas cette restriction.

Liste de paramètres

permissions

les permissions (voir chmod())

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Un exemple avec PharFileInfo::chmod()

<?php
// on s'assure que le phar n'existe pas
@unlink('nouveauphar.phar');
try {
    $p = new Phar('nouveauphar.phar', 0, 'nouveauphar.phar');
    $p['fichier.sh'] = '#!/usr/local/lib/php
    <?php echo "salut"; ?>';
    // met le bit d'exécution
    $p['fichier.sh']->chmod(0555);
    var_dump($p['fichier.sh']->isExecutable());
} catch (Exception $e) {
    echo 'Ne peut pas créer/modifier le phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(true)


Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2

  • « PharFileInfo::chmod
  • PharFileInfo::__construct »
  • PHP Manual
  • PharFileInfo
  • Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2

PharFileInfo::compress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharFileInfo::compress — Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2

Description

public bool PharFileInfo::compress ( int $compression )

Cette méthode compresse le fichier au sein de l'archive Phar en utilisant l'une des compressions bzip2 ou zlib. Les extensions bzip2 ou zlib doivent être activées pour tirer parti de cette fonctionnalité. De plus, si le fichier est déjà compressé, l'extension adéquate doit être activée pour le décompresser. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour réussir si le fichier est au sein d'une archive Phar. Les fichiers au sein d'archives PharData n'ont pas cette restriction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si la variable INI phar.readonly est à on, ou si l'extension bzip2/zlib n'est pas disponible.

Exemples

Exemple #1 Un exemple avec PharFileInfo::compress()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['monfichier.txt'] = 'salut';
    $file = $p['monfichier.txt'];
    var_dump($file->isCompressed(Phar::BZ2));
    $p['monfichier.txt']->compress(Phar::BZ2);
    var_dump($file->isCompressed(Phar::BZ2));
} catch (Exception $e) {
    echo 'Ne peut pas créer/modifier mon.phar : ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compressFiles() - Compresse tous les fichiers de l'archive Phar courante'
  • Phar::decompressFiles() - Décompresse tous les fichiers de l'archive Phar courante
  • Phar::compress() - Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
  • Phar::decompress() - Décompresse l'archive tar complète
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés


Construit un objet d'entrée Phar

  • « PharFileInfo::compress
  • PharFileInfo::decompress »
  • PHP Manual
  • PharFileInfo
  • Construit un objet d'entrée Phar

PharFileInfo::__construct

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::__construct — Construit un objet d'entrée Phar

Description

public PharFileInfo::__construct ( string $entry )

Cette méthode ne doit pas être appelé directement. A la place, un objet PharFileInfo est initialisé en appelant Phar::offsetGet() via un accès de type tableau.

Liste de paramètres

entry

L'URL complète pour récupérer un fichier. Si vous voulez récupérer les informations du fichier mon/fichier.php du phar boo.phar, vous devrez préciser phar://boo.phar/mon/fichier.php.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si __construct() est appelé deux fois. Soulève une exception UnexpectedValueException si l'URL du phar demandé est mal formée, si le phar ne peut pas être ouvert ou si le fichier ne peut pas être trouvé au sein du phar.

Exemples

Exemple #1 Exemple avec PharFileInfo::__construct()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['fichierdetest.txt'] = "salut\nmon\npote";
    $file = $p['fichierdetest.txt'];
    foreach ($file as $line => $text) {
        echo "ligne numéro $line: $text";
    }
    // ceci marche aussi
    $file = new PharFileInfo('phar:///chemin/vers/mon.phar/fichierdetest.txt');
    foreach ($file as $line => $text) {
        echo "ligne numéro $line: $text";
    }
} catch (Exception $e) {
    echo 'L'opération Phar a échoué : ', $e;
}
?>

L'exemple ci-dessus va afficher :

ligne numéro 1: salut
ligne numéro 2: mon
ligne numéro 3: pote
ligne numéro 1: salut
ligne numéro 2: mon
ligne numéro 3: pote


Décompresse l'entrée Phar courante au sein du phar

  • « PharFileInfo::__construct
  • PharFileInfo::delMetadata »
  • PHP Manual
  • PharFileInfo
  • Décompresse l'entrée Phar courante au sein du phar

PharFileInfo::decompress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharFileInfo::decompress — Décompresse l'entrée Phar courante au sein du phar

Description

public bool PharFileInfo::decompress ( void )

Cette méthode décompresse le fichier au sein de l'archive Phar. Selon la façon dont le fichier est compressé, les extensions bzip2 ou zlib doivent être activées pour tirer parti de cette fonctionnalité. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour réussir si le fichier est dans une archive Phar. Les fichiers au sein d'archives PharData n'ont pas cette restriction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si la variable INI phar.readonly est à on, ou si l'extension bzip2/zlib n'est pas disponible.

Exemples

Exemple #1 Exemple avec PharFileInfo::decompress()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['monfichier.txt'] = 'salut';
    $file = $p['monfichier.txt'];
    $file->compress(Phar::GZ);
    var_dump($file->isCompressed());
    $p['monfichier.txt']->decompress();
    var_dump($file->isCompressed());
} catch (Exception $e) {
    echo 'Ne peut pas créer/modifier mon.phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

int(4096)
bool(false)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compressFiles() - Compresse tous les fichiers de l'archive Phar courante'
  • Phar::decompressFiles() - Décompresse tous les fichiers de l'archive Phar courante
  • Phar::compress() - Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
  • Phar::decompress() - Décompresse l'archive tar complète
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés


Efface les métadonnées de l'entrée

  • « PharFileInfo::decompress
  • PharFileInfo::getCRC32 »
  • PHP Manual
  • PharFileInfo
  • Efface les métadonnées de l'entrée

PharFileInfo::delMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

PharFileInfo::delMetadata — Efface les métadonnées de l'entrée

Description

public bool PharFileInfo::delMetadata ( void )

Efface les métadonnées de l'entrée, s'il y en a.

Liste de paramètres

Pas de paramètres.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si l'entrée ne possédait pas de métadonnées. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour réussir si le fichier est au sein d'une archive Phar. Les fichiers au sein d'archives PharData n'ont pas cette restriction.

Erreurs / Exceptions

Soulève une exception PharException si des erreurs ont été rencontrées lors de l'écriture des changements sur le disque, et une exception BadMethodCallException si l'accès en écriture est désactivé.

Exemples

Exemple #1 Un exemple avec PharFileInfo::delMetaData()

<?php
try {
    $a = new Phar('monphar.phar');
    $a['salut'] = 'salut';
    var_dump($a['salut']->delMetadata());
    $a['salut']->setMetadata('mon pote');
    var_dump($a['salut']->delMetadata());
    var_dump($a['salut']->delMetadata());
} catch (Exception $e) {
    // on traite les erreurs
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)

Voir aussi

  • PharFileInfo::setMetadata() - Fixe les métadonnées spécifiques à un fichier
  • PharFileInfo::hasMetadata() - Retourne les méta-données de l'entrée
  • PharFileInfo::getMetadata() - Retourne les méta-données spécifiques attachées à un fichier
  • Phar::setMetadata() - Fixe les méta-données de l'archive
  • Phar::hasMetadata() - Détermine si le phar a ou non des méta-données
  • Phar::getMetadata() - Retourne les méta-données de l'archive phar


Retourne le code CRC32 ou soulève une exception si le CRC n'a pas été vérifié

  • « PharFileInfo::delMetadata
  • PharFileInfo::getCompressedSize »
  • PHP Manual
  • PharFileInfo
  • Retourne le code CRC32 ou soulève une exception si le CRC n'a pas été vérifié

PharFileInfo::getCRC32

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getCRC32 — Retourne le code CRC32 ou soulève une exception si le CRC n'a pas été vérifié

Description

public int PharFileInfo::getCRC32 ( void )

Retourne la somme de contrôle crc32() du fichier au sein de l'archive Phar.

Valeurs de retour

La somme de contrôle crc32() du fichier au sein de l'archive Phar.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si le CRC32 du fichier n'a pas encore été vérifié. Ceci n'arrive normalement pas, car le CRC est vérifié à l'ouverture du fichier en lecture ou en écriture.

Exemples

Exemple #1 Exemple avec PharFileInfo::getCRC32()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['monfichier.txt'] = 'salut';
    $file = $p['monfichier.txt'];
    echo $file->getCRC32();
} catch (Exception $e) {
    echo 'L'écriture de mon.phar.phar a échouée : ', $e;
}
?>

L'exemple ci-dessus va afficher :

3633523372


Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar

  • « PharFileInfo::getCRC32
  • PharFileInfo::getMetadata »
  • PHP Manual
  • PharFileInfo
  • Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar

PharFileInfo::getCompressedSize

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getCompressedSize — Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar

Description

public int PharFileInfo::getCompressedSize ( void )

Cette méthode retourne la taille du fichier au sein de l'archive Phar. Les fichiers non compressés retourneront la même valeur avec getCompressedSize qu'avec filesize()

Valeurs de retour

La taille en octets du fichier au sein de l'archive Phar sur le disque.

Exemples

Exemple #1 Un exemple avec PharFileInfo::getCompressedSize()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['monfichier.txt'] = 'salut';
    $file = $p['monfichier.txt'];
    echo $file->getCompressedSize();
} catch (Exception $e) {
    echo 'L'écriture de mon.phar a échoué : ', $e;
}
?>

L'exemple ci-dessus va afficher :

2

Voir aussi

  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
  • PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compress() - Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
  • Phar::decompress() - Décompresse l'archive tar complète
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::decompressFiles() - Décompresse tous les fichiers de l'archive Phar courante
  • Phar::compressFiles() - Compresse tous les fichiers de l'archive Phar courante'


Retourne les méta-données spécifiques attachées à un fichier

  • « PharFileInfo::getCompressedSize
  • PharFileInfo::getPharFlags »
  • PHP Manual
  • PharFileInfo
  • Retourne les méta-données spécifiques attachées à un fichier

PharFileInfo::getMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getMetadata — Retourne les méta-données spécifiques attachées à un fichier

Description

public mixed PharFileInfo::getMetadata ( void )

Retourne les méta-données qui ont été sauvegardées dans le manifeste de l'archive Phar pour ce fichier.

Liste de paramètres

Valeurs de retour

n'importe quelle variable PHP qui peut être sérialisée et qui est stockée comme méta-données pour le fichier, ou NULL si aucune méta-donnée n'est stockée.

Exemples

Exemple #1 Un exemple avec PharFileInfo::getMetadata()

<?php
// on s'assure que le phar n'est pas déjà
@unlink('nouveauphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/nouveauphar.phar', 0, 'nouveauphar.phar');
    $p['fichier.txt'] = 'salut';
    $p['fichier.txt']->setMetadata(array('utilisateur' => 'Yannick', 'mime-type' => 'text/plain'));
    var_dump($p['fichier.txt']->getMetadata());
} catch (Exception $e) {
    echo 'Ne peut pas créer/modifier nouveauphar.phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["utilisateur"]=>
  string(7) "Yannick"
  ["mime-type"]=>
  string(10) "text/plain"
}

Voir aussi

  • PharFileInfo::setMetadata() - Fixe les métadonnées spécifiques à un fichier
  • PharFileInfo::hasMetadata() - Retourne les méta-données de l'entrée
  • PharFileInfo::delMetadata() - Efface les métadonnées de l'entrée
  • Phar::setMetadata() - Fixe les méta-données de l'archive
  • Phar::hasMetadata() - Détermine si le phar a ou non des méta-données
  • Phar::getMetadata() - Retourne les méta-données de l'archive phar


Retourne les drapeaux du fichier Phar

  • « PharFileInfo::getMetadata
  • PharFileInfo::hasMetadata »
  • PHP Manual
  • PharFileInfo
  • Retourne les drapeaux du fichier Phar

PharFileInfo::getPharFlags

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getPharFlags — Retourne les drapeaux du fichier Phar

Description

public int PharFileInfo::getPharFlags ( void )

Cette méthode retourne les drapeaux fixés dans le manifeste pour un Phar. Elle retournera toujours 0 dans son implémentation actuelle.

Valeurs de retour

Les drapeaux Phar (toujours 0 dans son implémentation actuelle)

Exemples

Exemple #1 Un exemple avecPharFileInfo::getPharFlags()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['monfichier.txt'] = 'salut';
    $file = $p['monfichier.txt'];
    var_dump($file->getPharFlags());
} catch (Exception $e) {
    echo 'Ne peut pas créer/modifier mon.phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

int(0)


Retourne les méta-données de l'entrée

  • « PharFileInfo::getPharFlags
  • PharFileInfo::isCRCChecked »
  • PHP Manual
  • PharFileInfo
  • Retourne les méta-données de l'entrée

PharFileInfo::hasMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

PharFileInfo::hasMetadata — Retourne les méta-données de l'entrée

Description

public bool PharFileInfo::hasMetadata ( void )

Retourne les méta-données d'un fichier au sein d'une archive Phar.

Liste de paramètres

Aucun paramètre.

Valeurs de retour

Retourne FALSE si aucune méta-donnée n'est présente ou vaut NULL, TRUE si les méta-données ne valent pas NULL

Voir aussi

  • PharFileInfo::setMetadata() - Fixe les métadonnées spécifiques à un fichier
  • PharFileInfo::getMetadata() - Retourne les méta-données spécifiques attachées à un fichier
  • PharFileInfo::delMetadata() - Efface les métadonnées de l'entrée
  • Phar::setMetadata() - Fixe les méta-données de l'archive
  • Phar::hasMetadata() - Détermine si le phar a ou non des méta-données
  • Phar::getMetadata() - Retourne les méta-données de l'archive phar


Détermine si le fichier a un CRC vérifié

  • « PharFileInfo::hasMetadata
  • PharFileInfo::isCompressed »
  • PHP Manual
  • PharFileInfo
  • Détermine si le fichier a un CRC vérifié

PharFileInfo::isCRCChecked

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCRCChecked — Détermine si le fichier a un CRC vérifié

Description

public bool PharFileInfo::isCRCChecked ( void )

Cette méthode détermine si un fichier au sein d'une archive Phar a un CRC vérifié.

Valeurs de retour

TRUE si le fichier a un CRC vérifié, FALSE sinon.

Exemples

Exemple #1 Un exemple avec PharFileInfo::isCRCChecked()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['monfichier.txt'] = 'salut';
    $file = $p['monfichier.txt'];
    var_dump($file->isCRCChecked());
} catch (Exception $e) {
    echo 'La création/modification de mon.phar a échoué : ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(true)


Retourne si l'entrée est compressée

  • « PharFileInfo::isCRCChecked
  • PharFileInfo::isCompressedBZIP2 »
  • PHP Manual
  • PharFileInfo
  • Retourne si l'entrée est compressée

PharFileInfo::isCompressed

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCompressed — Retourne si l'entrée est compressée

Description

public bool PharFileInfo::isCompressed ([ int $compression_type = 9021976 ] )

Cette méthode détermine si un fichier au sein d'une archive Phar est compressé avec une des compression Gzip o Bzip2.

Liste de paramètres

compression_type

Une des compressions Phar::GZ ou Phar::BZ2, aucune compression par défaut.

Valeurs de retour

TRUE si le fichier au sein de l'archive est compressé, FALSE sinon.

Exemples

Exemple #1 Un exemple avec PharFileInfo::isCompressed()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['monfichier.txt'] = 'salut';
    $p['monfichier2.txt'] = 'salut';
    $p['monfichier2.txt']->setCompressedGZ();
    $file = $p['monfichier.txt'];
    $file2 = $p['monfichier2.txt'];
    var_dump($file->isCompressed());
    var_dump($file2->isCompressed());
} catch (Exception $e) {
    echo 'La création/modification de mon.phar a échoué : ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
  • PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
  • Phar::decompress() - Décompresse l'archive tar complète
  • Phar::compress() - Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::decompressFiles() - Décompresse tous les fichiers de l'archive Phar courante
  • Phar::compressFiles() - Compresse tous les fichiers de l'archive Phar courante'


Détermine si l'archive Phar est compressée avec bzip2

  • « PharFileInfo::isCompressed
  • PharFileInfo::isCompressedGZ »
  • PHP Manual
  • PharFileInfo
  • Détermine si l'archive Phar est compressée avec bzip2

PharFileInfo::isCompressedBZIP2

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCompressedBZIP2 — Détermine si l'archive Phar est compressée avec bzip2

Description

public bool PharFileInfo::isCompressedBZIP2 ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser PharFileInfo::isCompressed(), PharFileInfo::decompress(), et PharFileInfo::compress() à la place.

Détermine si le fichier au sein de l'archive Phar est compressé avec Bzip2.

Valeurs de retour

TRUE si le fichier au sein de l'archive Phar est compressé avec Bzip2, FALSE sinon.

Exemples

Exemple #1 Un exemple avec PharFileInfo::isCompressedBZIP2()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['monfichier.txt'] = 'salut';
    $p['monfichier2.txt'] = 'salut';
    $p['monfichier3.txt'] = 'salut';
    $p['monfichier2.txt']->setCompressedGZ();
    $p['monfichier3.txt']->setCompressedBZIP2();
    $file = $p['monfichier.txt'];
    $file2 = $p['monfichier2.txt'];
    $file3 = $p['monfichier3.txt'];
    var_dump($file->isCompressedBZIP2());
    var_dump($file2->isCompressedBZIP2());
    var_dump($file3->isCompressedBZIP2());
} catch (Exception $e) {
    echo 'La création/modification de mon.phar a échoué : ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(false)
bool(true)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::isCompressedGZ() - Détermine si l'archive Phar est compressée avec gzip
  • PharFileInfo::setCompressedBZIP2() - Compresse l'entrée Phar courante au sein du phar avec Bzip2
  • PharFileInfo::setUncompressed() - Décompresse l'entrée Phar courante au sein du phar s'il y a lieu
  • PharFileInfo::setCompressedGZ() - Compresse l'entrée Phar courante au sein du phar avec gzip
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compressAllFilesBZIP2() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2
  • Phar::compressAllFilesGZ() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::uncompressAllFiles() - Décompresse tous les fichiers de l'archive Phar courante


Détermine si l'archive Phar est compressée avec gzip

  • « PharFileInfo::isCompressedBZIP2
  • PharFileInfo::setCompressedBZIP2 »
  • PHP Manual
  • PharFileInfo
  • Détermine si l'archive Phar est compressée avec gzip

PharFileInfo::isCompressedGZ

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCompressedGZ — Détermine si l'archive Phar est compressée avec gzip

Description

public bool PharFileInfo::isCompressedGZ ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser PharFileInfo::isCompressed(), PharFileInfo::decompress(), et PharFileInfo::compress() à la place.

Détermine si un fichier au sein de l'archive Phar est compressé avec Gzip.

Valeurs de retour

TRUE si le fichier au sein de l'archive Phar est compressé avec Gzip, FALSE sinon.

Exemples

Exemple #1 Exemple avec PharFileInfo::isCompressedGZ()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['monfichier.txt'] = 'salut';
    $p['monfichier2.txt'] = 'salut';
    $p['monfichier3.txt'] = 'salut';
    $p['monfichier2.txt']->setCompressedGZ();
    $p['monfichier3.txt']->setCompressedBZIP2();
    $file = $p['monfichier.txt'];
    $file2 = $p['monfichier2.txt'];
    $file3 = $p['monfichier3.txt'];
    var_dump($file->isCompressedGZ());
    var_dump($file2->isCompressedGZ());
    var_dump($file3->isCompressedGZ());
} catch (Exception $e) {
    echo 'La création/modification de mon.phar a échoué : ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressedBZIP2() - Détermine si l'archive Phar est compressée avec bzip2
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::setCompressedBZIP2() - Compresse l'entrée Phar courante au sein du phar avec Bzip2
  • PharFileInfo::setUncompressed() - Décompresse l'entrée Phar courante au sein du phar s'il y a lieu
  • PharFileInfo::setCompressedGZ() - Compresse l'entrée Phar courante au sein du phar avec gzip
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compressAllFilesBZIP2() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2
  • Phar::compressAllFilesGZ() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::uncompressAllFiles() - Décompresse tous les fichiers de l'archive Phar courante


Compresse l'entrée Phar courante au sein du phar avec Bzip2

  • « PharFileInfo::isCompressedGZ
  • PharFileInfo::setCompressedGZ »
  • PHP Manual
  • PharFileInfo
  • Compresse l'entrée Phar courante au sein du phar avec Bzip2

PharFileInfo::setCompressedBZIP2

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setCompressedBZIP2 — Compresse l'entrée Phar courante au sein du phar avec Bzip2

Description

public bool PharFileInfo::setCompressedBZIP2 ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser PharFileInfo::isCompressed(), PharFileInfo::decompress(), et PharFileInfo::compress() à la place.

Cette méthode compresse le fichier au sein de l'archive Phar en utilisant bzip2. L'extension bzip2 doit être activée doit être activée pour tirer parti de cette fonctionnalité. De plus, si au moins un fichier est déjà compressé avec gzip, l'extension zlib doit être activée pour décompresser le fichier. Comme avec toutes les fonctionnalités qui modifient le contenu du phar, la variable INI phar.readonly doit être à off pour réussir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si la variable INI phar.readonly est à on, ou si l'extension bzip2 n'est pas disponible.

Exemples

Exemple #1 Un exemple avec PharFileInfo::setCompressedBZIP2()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['monfichier.txt'] = 'salut';
    $file = $p['monfichier.txt'];
    var_dump($file->isCompressedBZIP2());
    $p['monfichier.txt']->setCompressedBZIP2();
    var_dump($file->isCompressedBZIP2());
} catch (Exception $e) {
    echo 'La création/modification de mon.phar a échoué : ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressedBZIP2() - Détermine si l'archive Phar est compressée avec bzip2
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::isCompressedGZ() - Détermine si l'archive Phar est compressée avec gzip
  • PharFileInfo::setUncompressed() - Décompresse l'entrée Phar courante au sein du phar s'il y a lieu
  • PharFileInfo::setCompressedGZ() - Compresse l'entrée Phar courante au sein du phar avec gzip
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compressAllFilesBZIP2() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2
  • Phar::compressAllFilesGZ() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::uncompressAllFiles() - Décompresse tous les fichiers de l'archive Phar courante


Compresse l'entrée Phar courante au sein du phar avec gzip

  • « PharFileInfo::setCompressedBZIP2
  • PharFileInfo::setMetadata »
  • PHP Manual
  • PharFileInfo
  • Compresse l'entrée Phar courante au sein du phar avec gzip

PharFileInfo::setCompressedGZ

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setCompressedGZ — Compresse l'entrée Phar courante au sein du phar avec gzip

Description

public bool PharFileInfo::setCompressedGZ ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser PharFileInfo::isCompressed(), PharFileInfo::decompress(), et PharFileInfo::compress() à la place.

Cette méthode compresse le fichier au sein de l'archive Phar en utilisant gzip. L'extension zlib doit être activée doit être activée pour tirer parti de cette fonctionnalité. De plus, si au moins un fichier est déjà compressé avec bzip2, l'extension bzip2 doit être activée pour décompresser le fichier. Comme avec toutes les fonctionnalités qui modifient le contenu du phar, la variable INI phar.readonly doit être à off pour réussir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si la variable INI phar.readonly est à on, ou si l'extension zlib n'est pas disponible.

Exemples

Exemple #1 Un exemple avec PharFileInfo::setCompressedGZ()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['monfichier.txt'] = 'salut';
    $file = $p['monfichier.txt'];
    var_dump($file->isCompressedGZ());
    $p['monfichier.txt']->setCompressedGZ();
    var_dump($file->isCompressedGZ());
} catch (Exception $e) {
    echo 'La création/modification de mon.phar a échoué : ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressedBZIP2() - Détermine si l'archive Phar est compressée avec bzip2
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::isCompressedGZ() - Détermine si l'archive Phar est compressée avec gzip
  • PharFileInfo::setCompressedBZIP2() - Compresse l'entrée Phar courante au sein du phar avec Bzip2
  • PharFileInfo::setUncompressed() - Décompresse l'entrée Phar courante au sein du phar s'il y a lieu
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compressAllFilesBZIP2() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2
  • Phar::compressAllFilesGZ() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::uncompressAllFiles() - Décompresse tous les fichiers de l'archive Phar courante


Fixe les métadonnées spécifiques à un fichier

  • « PharFileInfo::setCompressedGZ
  • PharFileInfo::setUncompressed »
  • PHP Manual
  • PharFileInfo
  • Fixe les métadonnées spécifiques à un fichier

PharFileInfo::setMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setMetadata — Fixe les métadonnées spécifiques à un fichier

Description

public void PharFileInfo::setMetadata ( mixed $metadata )

PharFileInfo::setMetadata() ne doit être utilisée que pour stocker des données personnalisées dans un fichier qui ne peuvent pas l'être avec des informations normalement stockées avec le fichier. Les métadonnées peuvent dégrader les performances de chargement d'une archive phar si les données sont trop lourdes ou s'il y a beaucoup de fichiers avec des métadonnées. Il est important de noter que les permissions de fichiers sont supportées nativement dans un phar; il est possible de les fixer avec la méthode PharFileInfo::chmod(). Comme avec toutes les fonctionnalités qui modifient le contenu du phar, la variable INI phar.readonly doit être à off pour réussir si le fichier est au sein d'une archive Phar. Les fichiers au sein d'archives PharData n'ont pas cette restriction.

Une utilisation possible des métadonnées est le passage d'un utilisateur/groupe qui devrait être utilisé quand un fichier est extrait du phar vers le disque. On peut aussi spécifier un type MIME à retourner. De manière générale, on peut stocker toute donnée utile qui décrit un fichier mais qui ne peut pas y être inscrite directement.

Liste de paramètres

metadata

Toute variable PHP contenant des informations à stocker à part du fichier

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Un exemple avec PharFileInfo::setMetadata()

<?php
// on s'assure que le phar n'existe pas déjà
@unlink('nouveauphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/nouveauphar.phar', 0, 'nouveauphar.phar');
    $p['fichier.txt'] = 'salut';
    $p['fichier.txt']->setMetadata(array('utilisateur' => 'Yannick', 'mime-type' => 'text/plain'));
    var_dump($p['fichier.txt']->getMetadata());
} catch (Exception $e) {
    echo 'Ne peut pas créer/modifier le phar : ', $e;
}
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["utilisateur"]=>
  string(7) "Yannick"
  ["mime-type"]=>
  string(10) "text/plain"
}

Voir aussi

  • PharFileInfo::hasMetadata() - Retourne les méta-données de l'entrée
  • PharFileInfo::getMetadata() - Retourne les méta-données spécifiques attachées à un fichier
  • PharFileInfo::delMetadata() - Efface les métadonnées de l'entrée
  • Phar::setMetadata() - Fixe les méta-données de l'archive
  • Phar::hasMetadata() - Détermine si le phar a ou non des méta-données
  • Phar::getMetadata() - Retourne les méta-données de l'archive phar


Décompresse l'entrée Phar courante au sein du phar s'il y a lieu

  • « PharFileInfo::setMetadata
  • PharException »
  • PHP Manual
  • PharFileInfo
  • Décompresse l'entrée Phar courante au sein du phar s'il y a lieu

PharFileInfo::setUncompressed

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setUncompressed — Décompresse l'entrée Phar courante au sein du phar s'il y a lieu

Description

public bool PharFileInfo::setUncompressed ( void )

Note:

Cette méthode a été supprimée de l'extension phar depuis la version 2.0.0. Vous pouvez utiliser PharFileInfo::isCompressed(), PharFileInfo::decompress(), et PharFileInfo::compress() à la place.

Cette méthode décompresse le fichier au sein de l'archive Phar. Selon la façon dont le fichier est compressé, les extensions bzip2 ou zlib doivent être activées pour tirer parti de cette fonctionnalité. Comme avec toutes les fonctionnalités qui modifient le contenu du phar, la variable INI phar.readonly doit être à off pour réussir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Soulève une exception BadMethodCallException si la variable INI phar.readonly est à on, ou si l'extension bzip2/zlib n'est pas disponible.

Exemples

Exemple #1 Un exemple avec PharFileInfo::setUncompressed()

<?php
try {
    $p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
    $p['monfichier.txt'] = 'salut';
    $file = $p['monfichier.txt'];
    $file->setCompressedGZ();
    var_dump($file->isCompressed());
    $p['monfichier.txt']->setUncompressed();
    var_dump($file->isCompressed());
} catch (Exception $e) {
    echo 'La création/modification de mon.phar a échoué : ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi

  • PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
  • PharFileInfo::isCompressedBZIP2() - Détermine si l'archive Phar est compressée avec bzip2
  • PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
  • PharFileInfo::isCompressedGZ() - Détermine si l'archive Phar est compressée avec gzip
  • PharFileInfo::setCompressedBZIP2() - Compresse l'entrée Phar courante au sein du phar avec Bzip2
  • PharFileInfo::setCompressedGZ() - Compresse l'entrée Phar courante au sein du phar avec gzip
  • Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
  • Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
  • Phar::compressAllFilesBZIP2() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2
  • Phar::compressAllFilesGZ() - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip
  • Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
  • Phar::uncompressAllFiles() - Décompresse tous les fichiers de l'archive Phar courante


La classe PharException

(Unknown)

Introduction

La classe PharException fournit une classe d'exception spécifique à phar pour essayer/attraper des blocs.

Synopsis de la classe

PharException extends Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Sommaire

  • PharException — La classe PharException fournit une classe d'exception spécifique à phar pour essayer/attraper des blocs


La classe PharException fournit une classe d'exception spécifique à phar pour essayer/attraper des blocs

  • « PharException
  • Rar »
  • PHP Manual
  • PharException
  • La classe PharException fournit une classe d'exception spécifique à phar pour essayer/attraper des blocs

PharException

(Unknown)

PharException — La classe PharException fournit une classe d'exception spécifique à phar pour essayer/attraper des blocs

Description


Archives RAR

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions Rar
    • rar_wrapper_cache_stats — Statistique pour le cache du gestionnaire URL
  • RarArchive — La classe RarArchive
    • RarArchive::close — Ferme une archive RAR et libère toutes les ressources
    • RarArchive::getComment — Récupère un commentaire depuis une archive RAR
    • RarArchive::getEntries — Récupère la liste complète depuis l'archive RAR
    • RarArchive::getEntry — Récupère une entrée depuis une archive RAR
    • RarArchive::isBroken — Test si une archive est corrompue (incomplète)
    • RarArchive::isSolid — Vérifie si l'archive RAR est solide
    • RarArchive::open — Ouvre une archive RAR
    • RarArchive::setAllowBroken — Autorise ou non l'ouverture d'archives corrompues
    • RarArchive::__toString — Récupère une représentation sous forme de texte
  • RarEntry — La classe RarEntry
    • RarEntry::extract — Extrait une entrée d'une archive
    • RarEntry::getAttr — Récupère les attributs d'une entrée
    • RarEntry::getCrc — Récupère le CRC d'une entrée
    • RarEntry::getFileTime — Récupère la date de dernière modification d'une entrée
    • RarEntry::getHostOs — Récupère le code de l'hôte pour une entrée
    • RarEntry::getMethod — Récupère la méthode utilisée pour l'ajout d'une entrée
    • RarEntry::getName — Récupère le nom de l'entrée
    • RarEntry::getPackedSize — Récupère la taille compressée d'une entrée
    • RarEntry::getStream — Récupère le gestion de fichier pour une entrée
    • RarEntry::getUnpackedSize — Récupère la taille décompressée d'une entrée
    • RarEntry::getVersion — Récupère la version minimale du logiciel RAR à utiliser pour décompresser une entrée
    • RarEntry::isDirectory — Teste si l'entrée courante est un dossier
    • RarEntry::isEncrypted — Teste si une entrée est cryptée
    • RarEntry::__toString — Récupère une représentation sous forme de chaîne de caractères d'une entrée
  • RarException — La classe RarException
    • RarException::isUsingExceptions — Vérifie si le gestionnaire d'erreur utilise les exceptions ou non
    • RarException::setUsingExceptions — Active ou désactive les exceptions dans le gestionnaire d'erreurs


Introduction

Rar est un archiveur puissant et fiable, créé par Eugene Roshal. Cette extension vous donne la possibilité de lire des archives Rar, mais ne supporte pas l'écriture, car elle n'est pas supporté par la bibliothèque UnRar et que c'est interdit directement par la licence.

Plus d'informations sur Rar et UnRar peuvent être trouvées sur » http://www.rarlabs.com/.


Installation

Rar est actuellement disponible via PECL » http://pecl.php.net/package/rar.

Vous pouvez utiliser l'assistant d'installation PECL pour installer l'extension Rar, en utilisant la commande suivante : pecl -v install rar.

Vous pouvez également télécharger le paquet tar.gz et installez Rar manuellement :

Exemple #1 Installation de Rar

gunzip rar-xxx.tgz
tar -xvf rar-xxx.tar
cd rar-xxx
phpize
./configure && make && make install

Les utilisateurs de Windows doivent activer la bibliothèque php_rar.dll dans le fichier php.ini afin d'utiliser ces fonctions. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Types de ressources

Cette extension enregistre 3 classes internes : La représentation de l'archive retournée par la fonction rar_open() – RarArchive –, la représentation des entrées retournée par les fonctions rar_list() et rar_entry_get() – RarEntry et les exceptions de type RarException.

Cette extension enregistre également un flux de ressource appelé "rar" et un gestionnaire d'url appelé "rar wrapper", et enregistré sous le préfixe "rar".


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

RAR_HOST_MSDOS (entier)
Utilisez la constante RarEntry::HOST_MSDOS à la place.
RAR_HOST_OS2 (entier)
Utilisez la constante RarEntry::HOST_OS2 à la place.
RAR_HOST_WIN32 (entier)
Utilisez la constante RarEntry::HOST_WIN32 à la place.
RAR_HOST_UNIX (entier)
Utilisez la constante RarEntry::HOST_UNIX à la place.
RAR_HOST_BEOS (entier)
Utilisez la constante RarEntry::HOST_BEOS à la place.


Exemples

Voir aussi les exemples de la section sur le gestionnaire rar://.

Exemple #1 Décompression à la volée

<?php

if (!array_key_exists("i", $_GET) || !is_numeric($_GET["i"]))
    die("Index non spécifié ou non numérique");
$index = (int) $_GET["i"];

$arch = RarArchive::open("example.rar");
if ($arch === FALSE)
    die("Impossible d'ouvrir example.rar");

$entries = $arch->getEntries();
if ($entries === FALSE)
    die("Impossible de récupérer les entrées");

if (!array_key_exists($index, $entries))
    die("L'index $index n'existe pas");

$orfilename = $entries[$index]->getName(); //Encodage UTF-8

$filesize = $entries[$index]->getUnpackedSize();

/* Vous pouvez vérifier ici HTTP_IF_MODIFIED_SINCE et le comparer
 * avec $entries[$index]->getFileTime(). Vous pouvez également envoyer
 * un en-tête "Last modified" */

$fp = $entries[$index]->getStream();
if ($fp === FALSE)
    die("Impossible d'ouvrir le fichier d'index $index depuis l'archive.");

$arch->close(); //plus nécessaire ; le flux est indépendant

function detectUserAgent() {
    if (!array_key_exists('HTTP_USER_AGENT', $_SERVER))
        return "Autre";

    $uas = $_SERVER['HTTP_USER_AGENT'];
    if (preg_match("@Opera/@", $uas))
        return "Opera";
    if (preg_match("@Firefox/@", $uas))
        return "Firefox";
    if (preg_match("@Chrome/@", $uas))
        return "Chrome";
    if (preg_match("@MSIE ([0-9.]+);@", $uas, $matches)) {
        if (((float)$matches[1]) >= 7.0)
            return "IE";
    }

    return "Autre";
}

/*
 * Nous avons 3 options :
 * - Pour FF et Opera, qui supportent RFC 2231, utilisez ce format.
 * - Pour IE et Chrome, utilisez attwithfnrawpctenclong
 *   (http://greenbytes.de/tech/tc2231/#attwithfnrawpctenclong)
 * - Pour les autres, convertissez en ISO-8859-1, si possible
 */
$formatRFC2231 = 'Content-Disposition: attachment; filename*=UTF-8\'\'%s';
$formatDef = 'Content-Disposition: attachment; filename="%s"';

switch (detectUserAgent()) {
    case "Opera":
    case "Firefox":
        $orfilename = rawurlencode($orfilename);
        $format = $formatRFC2231;
        break;

    case "IE":
    case "Chrome":
        $orfilename = rawurlencode($orfilename);
        $format = $formatDef;
        break;
    default:
        if (function_exists('iconv'))
            $orfilename =
                @iconv("UTF-8", "ISO-8859-1//TRANSLIT", $orfilename);
        $format = $formatDef;
}

header(sprintf($format, $orfilename));
// Impossible d'envoyer les messages d'erreur à partir d'ici (les en-têtes
// ont déjà été émis)

// Remplacement par le type de contenu réel, pourquoi pas par déduction de l'extension du fichier
$contentType = "application/octet-stream";
header("Content-Type: $contentType");

header("Content-Transfer-Encoding: binary");

header("Content-Length: $filesize");

if ($_SERVER['REQUEST_METHOD'] == "HEAD")
    die();

while (!feof($fp)) {
    $s = @fread($fp, 8192);
    if ($s === false)
        break; //utile pour envoyer des messages d'erreur

    echo $s;
}
?>

Cet exemple ouvre l'archive RAR et extrait chacune des entrées dans un dossier spécifié.

Exemple #2 Exemple d'extractions RAR

<?php

$rar_file = rar_open('example.rar') or die("Can't open Rar archive");

$entries = rar_list($rar_file);

foreach ($entries as $entry) {
    echo 'Nom du fichier : ' . $entry->getName() . "\n";
    echo 'Taille de l'archive : ' . $entry->getPackedSize() . "\n";
    echo 'Taille après décompression : ' . $entry->getUnpackedSize() . "\n";

    $entry->extract('/dir/extract/to/');
}

rar_close($rar_file);

?>

Cet exemple ouvre une archive RAR et extrait chaque entrée dans le dossier spécifié.


Fonctions Rar

Sommaire

  • rar_wrapper_cache_stats — Statistique pour le cache du gestionnaire URL


Statistique pour le cache du gestionnaire URL

  • « Fonctions Rar
  • RarArchive »
  • PHP Manual
  • Fonctions Rar
  • Statistique pour le cache du gestionnaire URL

rar_wrapper_cache_stats

(PECL rar >= 3.0.0)

rar_wrapper_cache_stats — Statistique pour le cache du gestionnaire URL

Description

string rar_wrapper_cache_stats ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe RarArchive

(PECL rar >= 2.0.0)

Introduction

Cette classe représente une archive RAR, qui peut être formée de plusieurs volumes (parties) et qui peut contenir plusieurs entrées RAR (i.e., fichiers, dossiers et autres objets spéciaux comme des liens symboliques).

Les objets de cette classe peuvent être parcourus, permettant ainsi d'accéder aux entrées contenues dans les archives RAR respectives. Ces entrées peuvent également être obtenues via les méthodes RarArchive::getEntry() et RarArchive::getEntries().

Synopsis de la classe

final RarArchive implements Traversable {
/* Méthodes */
public bool close ( void )
public string getComment ( void )
public array getEntries ( void )
public RarEntry getEntry ( string $entryname )
public bool isBroken ( void )
public bool isSolid ( void )
public static RarArchive open ( string $filename [, string $password = NULL [, callable $volume_callback = NULL ]] )
public bool setAllowBroken ( bool $allow_broken )
public string __toString ( void )
}

Sommaire

  • RarArchive::close — Ferme une archive RAR et libère toutes les ressources
  • RarArchive::getComment — Récupère un commentaire depuis une archive RAR
  • RarArchive::getEntries — Récupère la liste complète depuis l'archive RAR
  • RarArchive::getEntry — Récupère une entrée depuis une archive RAR
  • RarArchive::isBroken — Test si une archive est corrompue (incomplète)
  • RarArchive::isSolid — Vérifie si l'archive RAR est solide
  • RarArchive::open — Ouvre une archive RAR
  • RarArchive::setAllowBroken — Autorise ou non l'ouverture d'archives corrompues
  • RarArchive::__toString — Récupère une représentation sous forme de texte


Ferme une archive RAR et libère toutes les ressources

  • « RarArchive
  • RarArchive::getComment »
  • PHP Manual
  • RarArchive
  • Ferme une archive RAR et libère toutes les ressources

RarArchive::close

rar_close

(PECL rar >= 2.0.0)

RarArchive::close -- rar_close — Ferme une archive RAR et libère toutes les ressources

Description

Style orienté objet (méthode) :

public bool RarArchive::close ( void )

Style procédural :

bool rar_close ( RarArchive $rarfile )

Ferme une archive RAR et libère toutes les ressources associées.

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonctionrar_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
2.0.0 | Les entrées RAR retournées par RarArchive::getEntry() et RarArchive::getEntries() sont désormais invalidées lors de l'appel à cette méthode. Cela signifie que tous les appels d'instances sur de telles entrées ne sont pas garanties.

Exemples

Exemple #1 Style orienté objet

<?php
$rar_arch = RarArchive::open('latest_winrar.rar');
echo $rar_arch."\n";
$rar_arch->close();
echo $rar_arch."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar"
RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar" (closed)

Exemple #2 Style procédural

<?php
$rar_arch = rar_open('latest_winrar.rar');
echo $rar_arch."\n";
rar_close($rar_arch);
echo $rar_arch."\n";
?>


Récupère un commentaire depuis une archive RAR

  • « RarArchive::close
  • RarArchive::getEntries »
  • PHP Manual
  • RarArchive
  • Récupère un commentaire depuis une archive RAR

RarArchive::getComment

rar_comment_get

(PECL rar >= 2.0.0)

RarArchive::getComment -- rar_comment_get — Récupère un commentaire depuis une archive RAR

Description

Style orienté objet (méthode) :

public string RarArchive::getComment ( void )

Style procédural :

string rar_comment_get ( RarArchive $rarfile )

Récupère le commentaire global stocké dans l'archive RAR. Il peut être supérieur à une longueur de 64 Ko.

Note:

Cette extension ne supporte pas les commentaires sur de simple entrée.

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonctionrar_open().

Valeurs de retour

Retourne le commentaire, ou NULL s'il n'y en a pas.

Note:

RAR ne supporte actuellement pas les commentaires unicodes. L'encodage du résultat de cette fonction n'est pas spécifié, mais il sera probablement de type Windows-1252.

Exemples

Exemple #1 Style orienté objet

<?php
$rar_arch = RarArchive::open('commented.rar');
echo $rar_arch->getComment();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ceci est le commentaire du fichier commented.rar.

Exemple #2 Style procédural

<?php
$rar_arch = rar_open('commented.rar');
echo rar_comment_get($rar_arch);
?>


Récupère la liste complète depuis l'archive RAR

  • « RarArchive::getComment
  • RarArchive::getEntry »
  • PHP Manual
  • RarArchive
  • Récupère la liste complète depuis l'archive RAR

RarArchive::getEntries

rar_list

(PECL rar >= 2.0.0)

RarArchive::getEntries -- rar_list — Récupère la liste complète depuis l'archive RAR

Description

Style orienté objet (method):

public array RarArchive::getEntries ( void )

Style procédural :

array rar_list ( RarArchive $rarfile )

Récupère la liste complète (fichiers et dossiers) depuis l'archive RAR.

Note:

Si l'archive contient des entrées portant le même nom, cette méthode, combinée avec l'itération RarArchive foreach et un accès style tableau avec des indexes numériques, est la seule permettant d'accéder à toutes les entrées (i.e. RarArchive::getEntry() et le gestionnaire rar:// sont insuffisants).

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonction rar_open().

Valeurs de retour

Retourne un tableau d'objets RarEntry ou FALSE si une erreur survient.

Historique

Version | Description
3.0.0 | Support des archives RAR contenant des entrées portant le même nom.

Exemples

Exemple #1 Style orienté objet

<?php
$rar_arch = RarArchive::open('solid.rar');
if ($rar_arch === FALSE)
    die("Impossible d'ouvrir l'archive RAR.");

$rar_entries = $rar_arch->getEntries();
if ($rar_entries === FALSE)
    die("Impossible de récupérer les entrées.");

echo "Nombre d'entrées trouvées : " . count($rar_entries) . "\n";

foreach ($rar_entries as $e) {
    echo $e;
    echo "\n";
}
$rar_arch->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nombre d'entrées trouvées : 2
RarEntry for file "tese.txt" (23b93a7a)
RarEntry for file "unrardll.txt" (2ed64b6e)

Exemple #2 Style procédural

<?php
$rar_arch = rar_open('solid.rar');
if ($rar_arch === FALSE)
    die("Impossible d'ouvrir l'archive RAR.");

$rar_entries = rar_list($rar_arch);
if ($rar_entries === FALSE)
    die("Impossible de récupérer les entrées.");

echo "Nombre d'entrées trouvées : " . count($rar_entries) . "\n";

foreach ($rar_entries as $e) {
    echo $e;
    echo "\n";
}
rar_close($rar_arch);
?>

Voir aussi

  • RarArchive::getEntry() - Récupère une entrée depuis une archive RAR
  • Le gestionnaire rar://


Récupère une entrée depuis une archive RAR

  • « RarArchive::getEntries
  • RarArchive::isBroken »
  • PHP Manual
  • RarArchive
  • Récupère une entrée depuis une archive RAR

RarArchive::getEntry

rar_entry_get

(PECL rar >= 2.0.0)

RarArchive::getEntry -- rar_entry_get — Récupère une entrée depuis une archive RAR

Description

Style orienté objet (method):

public RarEntry RarArchive::getEntry ( string $entryname )

Style procédural :

RarEntry rar_entry_get ( RarArchive $rarfile , string $entryname )

Récupère une entrée (fichier ou dossier) depuis une archive RAR.

Note:

Vous pouvez également récupérer les entrées en utilisant la méthode RarArchive::getEntries().

Notez qu'une archive RAR peut avoir plusieurs entrées portant le même nom ; cette méthode ne récupèrera que la première.

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonctionrar_open().

entryname

Chemin vers l'entrée, dans l'archive RAR.

Note:

Le chemin doit être le même que celui retourné par la méthode RarEntry::getName().

Valeurs de retour

Retourne l'entrée RarEntry correspondante ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$rar_arch = RarArchive::open('solid.rar');
if ($rar_arch === FALSE)
    die("Impossible d'ouvrir l'archive RAR.");
$rar_entry = $rar_arch->getEntry('tese.txt');
if ($rar_entry === FALSE)
    die("Impossible de récupérer cette entrée.");
echo get_class($rar_entry)."\n";
echo $rar_entry;
$rar_arch->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

RarEntry
RarEntry for file "tese.txt" (23b93a7a)

Exemple #2 Style procédural

<?php
$rar_arch = rar_open('solid.rar');
if ($rar_arch === FALSE)
    die("Impossible d'ouvrir l'archive RAR.");
$rar_entry = rar_entry_get($rar_arch, 'tese.txt');
if ($rar_entry === FALSE)
    die("Impossible de récupérer cette entrée.");
echo get_class($rar_entry)."\n";
echo $rar_entry;
rar_close($rar_arch);
?>

Voir aussi

  • RarArchive::getEntries() - Récupère la liste complète depuis l'archive RAR
  • Le gestionnaire rar://


Test si une archive est corrompue (incomplète)

  • « RarArchive::getEntry
  • RarArchive::isSolid »
  • PHP Manual
  • RarArchive
  • Test si une archive est corrompue (incomplète)

RarArchive::isBroken

rar_broken_is

(PECL rar >= 3.0.0)

RarArchive::isBroken -- rar_broken_is — Test si une archive est corrompue (incomplète)

Description

Style orienté objet (méthode) :

public bool RarArchive::isBroken ( void )

Style procédural :

bool rar_broken_is ( RarArchive $rarfile )

Cette fonction détermine si une archive est incomplète, i.e., si un volume est manquant ou un volume est tronqué.

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonction rar_open().

Valeurs de retour

Retourne TRUE si l'archive est corrompue, FALSE sinon. Cette fonction peut également retournée FALSE si le fichier passé a déjà été clos. La seule solution pour faire la différence entre ces 2 cas est d'activer les exceptions grâce à la méthode RarException::setUsingExceptions() ; cependant, ce n'est pas nécessaire sachant qu'un programme ne doit pas fonctionner sur des fichiers fermés.

Exemples

Exemple #1 Style orienté objet

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Le 3ème argument est utilisé pour éviter une alerte */
$arch = RarArchive::open($file, null, 'retnull');
var_dump($arch->isBroken());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)

Exemple #2 Style procédural

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Le 3ème argument est utilisé pour éviter une alerte */
$arch = rar_open($file, null, 'retnull');
var_dump(rar_broken_is($arch));
?>

Voir aussi

  • RarArchive::setAllowBroken() - Autorise ou non l'ouverture d'archives corrompues


Vérifie si l'archive RAR est solide

  • « RarArchive::isBroken
  • RarArchive::open »
  • PHP Manual
  • RarArchive
  • Vérifie si l'archive RAR est solide

RarArchive::isSolid

rar_solid_is

(PECL rar >= 2.0.0)

RarArchive::isSolid -- rar_solid_is — Vérifie si l'archive RAR est solide

Description

Style orienté objet (méthode) :

public bool RarArchive::isSolid ( void )

Style procédural :

bool rar_solid_is ( RarArchive $rarfile )

Vérifie si l'archive RAR est solide. L'extraction de fichier individuel est plus lente sur les archives solides.

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonctionrar_open().

Valeurs de retour

Returns TRUE if the archive is solid, FALSE otherwise.

Exemples

Exemple #1 Style orienté objet

<?php
$arch1 = RarArchive::open("store_method.rar");
$arch2 = RarArchive::open("solid.rar");
echo "$arch1: " . ($arch1->isSolid()?'oui':'non') ."\n";
echo "$arch2: " . ($arch2->isSolid()?'oui':'non') . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

RAR Archive "C:\php_rar\trunk\tests\store_method.rar": no
RAR Archive "C:\php_rar\trunk\tests\solid.rar": yes

Exemple #2 Style procédural

<?php
$arch1 = rar_open("store_method.rar");
$arch2 = rar_open("solid.rar");
echo "$arch1: " . (rar_solid_is($arch1)?'oui':'non') ."\n";
echo "$arch2: " . (rar_solid_is($arch2)?'oui':'non') . "\n";
?>


Ouvre une archive RAR

  • « RarArchive::isSolid
  • RarArchive::setAllowBroken »
  • PHP Manual
  • RarArchive
  • Ouvre une archive RAR

RarArchive::open

rar_open

(PECL rar >= 2.0.0)

RarArchive::open -- rar_open — Ouvre une archive RAR

Description

Style orienté objet (méthode) :

public static RarArchive RarArchive::open ( string $filename [, string $password = NULL [, callable $volume_callback = NULL ]] )

Style procédural :

RarArchive rar_open ( string $filename [, string $password = NULL [, callable $volume_callback = NULL ]] )

Ouvre une archive RAR et retourne une instance RarArchive la représentant.

Note:

Si on tente d'ouvrir une archive multi-volume, le chemin du premier volume doit être passé comme premier paramètre. Sinon, l'ensemble des fichiers ne sera pas affiché.

Liste de paramètres

filename

Path to the Rar archive.

password

Un mot de passe en text plein, si nécessaire pour décrypter l'en-tête. Il sera également utilisé par défaut si des fichiers cryptés sont trouvés. Noter que les fichiers peuvent avoir un mot de passe différent, et ce, en respectant les en-têtes.

volume_callback

Une fonction qui reçoit un seul paramètre - le chemin du volume non trouvé - et retourne une chaîne de caractères contenant le chemin correct du volume ou NULL si le volume n'existe pas ou le chemin n'est pas connu. Attention à ne pas créer de boucle infinie sachant que la fonction sera appelée indéfiniment si le chemin retourné dans un précédent appel ne correspond pas au volume désiré. Le fait de spécifier ce paramètre évitera une alerte qui devrait être émise lorsqu'un volume n'est pas trouvé ; une implémentation qui ne retourne que NULL peut toutefois être utilisée pour éviter une telle alerte.

Avertissement

Avant la version 2.0.0, cette fonction ne gérait pas correctement les chemins relatifs. Utilisez la fonction realpath() pour corriger ce bogue.

Valeurs de retour

Retourne l'instance RarArchive requise ou FALSE si une erreur survient.

Historique

Version | Description
3.0.0 | Le paramètre volume_callback a été ajouté.

Exemples

Exemple #1 Style orienté objet

<?php
$rar_arch = RarArchive::open('encrypted_headers.rar', 'samplepassword');
if ($rar_arch === FALSE)
    die("Échec lors de l'ouverture du fichier");

$entries = $rar_arch->getEntries();
if ($entries === FALSE)
    die("Échec lors de la récupération des entrées");

echo count($entries) . " fichier(s) trouvé(s).\n";

if (empty($entries))
    die("Aucune entrée valide n'a été trouvée.");

$stream = reset($entries)->getStream();
if ($stream === FALSE)
    die("Échec lors de l'ouverture du premier fichier");

$rar_arch->close();

echo "Contenu du premier fichier :\n";
echo stream_get_contents($stream);

fclose($stream);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

2 fichier(s) trouvé(s).
Contenu du premier fichier :
Encrypted file 1 contents.

Exemple #2 Style procédural

<?php
$rar_arch = rar_open('encrypted_headers.rar', 'samplepassword');
if ($rar_arch === FALSE)
    die("Échec lors de l'ouverture du fichier");

$entries = rar_list($rar_arch);
if ($entries === FALSE)
    die("Échec lors de la récupération des entrées");

echo count($entries) . " fichier(s) trouvé(s).\n";

if (empty($entries))
    die("Aucune entrée valide n'a été trouvée.");

$stream = reset($entries)->getStream();
if ($stream === FALSE)
    die("Échec lors de l'ouverture du premier fichier");

rar_close($rar_arch);

echo "Contenu du premier fichier :\n";
echo stream_get_contents($stream);

fclose($stream);
?>

Exemple #3 Fonction de rappel pour le volume

<?php
/* Dans cet exemple, il y a un volume nommé multi_broken.part1.rar
 * dont le volume suivant est nommé multi.part2.rar */
function resolve($vol) {
    if (preg_match('/_broken/', $vol))
        return str_replace('_broken', '', $vol);
    else
        return null;
}
$rar_file1 = rar_open(dirname(__FILE__).'/multi_broken.part1.rar', null, 'resolve');
$entry = $rar_file1->getEntry('file2.txt');
$entry->extract(null, dirname(__FILE__) . "/temp_file2.txt");
?>

Voir aussi

  • Le gestionnaire rar://


Autorise ou non l'ouverture d'archives corrompues

  • « RarArchive::open
  • RarArchive::__toString »
  • PHP Manual
  • RarArchive
  • Autorise ou non l'ouverture d'archives corrompues

RarArchive::setAllowBroken

(PECL rar >= 3.0.0)

RarArchive::setAllowBroken — Autorise ou non l'ouverture d'archives corrompues

Description

Style orienté objet (méthode) :

public bool RarArchive::setAllowBroken ( bool $allow_broken )

Style procédural :

bool rar_allow_broken_set ( RarArchive $rarfile , bool $allow_broken )

Cette méthode définit si les archives corrompues peuvent être lues ou bien si les opérations qui tentent d'extraire les entrées de l'archive doivent échouées. Les archives corrompues sont les archives pour lesquelles aucune erreur n'est détectée lorsque le fichier est ouvert mais qu'une erreur survient lors de la lecture des entrées.

Liste de paramètres

rarfile

Un objet RarArchive, ouvert avec la fonction rar_open().

allow_broken

Si la lecture des archives corrompues est autorisée (TRUE) ou non (FALSE).

Valeurs de retour

Retourne TRUE ou FALSE si une erreur survient. La méthode échouera uniquement si le fichier a déjà été clos.

Exemples

Exemple #1 Style orienté objet

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Le 3ème argument évite le message "volume not found" */
$a = RarArchive::open($file, null, 'retnull');
$a->setAllowBroken(true);
foreach ($a->getEntries() as $e) {
    echo "$e\n";
}
var_dump(count($a));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

RarEntry for file "file1.txt" (52b28202)
int(1)

Exemple #2 Style procédural

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Le 3ème argument évite le message "volume not found" */
$a = rar_open($file, null, 'retnull');
rar_allow_broken_set($a, true);
foreach (rar_list($a) as $e) {
    echo "$e\n";
}
var_dump(count($a));
?>

Voir aussi

  • RarArchive::isBroken() - Test si une archive est corrompue (incomplète)


Récupère une représentation sous forme de texte

  • « RarArchive::setAllowBroken
  • RarEntry »
  • PHP Manual
  • RarArchive
  • Récupère une représentation sous forme de texte

RarArchive::__toString

(PECL rar >= 2.0.0)

RarArchive::__toString — Récupère une représentation sous forme de texte

Description

public string RarArchive::__toString ( void )

Fournit une représentation sous forme de chaîne de caractères pour l'objet RarArchive. Actuellement, ce sera le nom du chemin complet vers le volume de l'archive ouverte ainsi qu'une information indiquant si la ressource est valide ou bien si elle a été close via un appel à la méthode RarArchive::close().

Cette méthode ne doit être utilisée qu'à des fins de débogage, sachant qu'elle n'est ni garantie dans les informations composant le résultat, ni garantie dans la façon dont le résultat sera formaté.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation textuelle de l'objet RarArchive. Le contenu de cette représentation n'est pas spécifié.

Exemples

Exemple #1 Exemple avec RarArchive::__toString()

<?php
$rar_arch = RarArchive::open('latest_winrar.rar');
echo $rar_arch."\n";
$rar_arch->close();
echo $rar_arch."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar"
RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar" (closed)


La classe RarEntry

(PECL rar >= 0.1)

Introduction

Une entrée RAR, représentant un dossier ou un fichier compressé dans une archive RAR.

Synopsis de la classe

final RarEntry {
/* Constantes */
const integer HOST_MSDOS = 0 ;
const integer HOST_OS2 = 1 ;
const integer HOST_WIN32 = 2 ;
const integer HOST_UNIX = 3 ;
const integer HOST_MACOS = 4 ;
const integer HOST_BEOS = 5 ;
const integer ATTRIBUTE_WIN_READONLY = 1 ;
const integer ATTRIBUTE_WIN_HIDDEN = 2 ;
const integer ATTRIBUTE_WIN_SYSTEM = 4 ;
const integer ATTRIBUTE_WIN_DIRECTORY = 16 ;
const integer ATTRIBUTE_WIN_ARCHIVE = 32 ;
const integer ATTRIBUTE_WIN_DEVICE = 64 ;
const integer ATTRIBUTE_WIN_NORMAL = 128 ;
const integer ATTRIBUTE_WIN_TEMPORARY = 256 ;
const integer ATTRIBUTE_WIN_SPARSE_FILE = 512 ;
const integer ATTRIBUTE_WIN_REPARSE_POINT = 1024 ;
const integer ATTRIBUTE_WIN_COMPRESSED = 2048 ;
const integer ATTRIBUTE_WIN_OFFLINE = 4096 ;
const integer ATTRIBUTE_WIN_NOT_CONTENT_INDEXED = 8192 ;
const integer ATTRIBUTE_WIN_ENCRYPTED = 16384 ;
const integer ATTRIBUTE_WIN_VIRTUAL = 65536 ;
const integer ATTRIBUTE_UNIX_WORLD_EXECUTE = 1 ;
const integer ATTRIBUTE_UNIX_WORLD_WRITE = 2 ;
const integer ATTRIBUTE_UNIX_WORLD_READ = 4 ;
const integer ATTRIBUTE_UNIX_GROUP_EXECUTE = 8 ;
const integer ATTRIBUTE_UNIX_GROUP_WRITE = 16 ;
const integer ATTRIBUTE_UNIX_GROUP_READ = 32 ;
const integer ATTRIBUTE_UNIX_OWNER_EXECUTE = 64 ;
const integer ATTRIBUTE_UNIX_OWNER_WRITE = 128 ;
const integer ATTRIBUTE_UNIX_OWNER_READ = 256 ;
const integer ATTRIBUTE_UNIX_STICKY = 512 ;
const integer ATTRIBUTE_UNIX_SETGID = 1024 ;
const integer ATTRIBUTE_UNIX_SETUID = 2048 ;
const integer ATTRIBUTE_UNIX_FINAL_QUARTET = 61440 ;
const integer ATTRIBUTE_UNIX_FIFO = 4096 ;
const integer ATTRIBUTE_UNIX_CHAR_DEV = 8192 ;
const integer ATTRIBUTE_UNIX_DIRECTORY = 16384 ;
const integer ATTRIBUTE_UNIX_BLOCK_DEV = 24576 ;
const integer ATTRIBUTE_UNIX_REGULAR_FILE = 32768 ;
const integer ATTRIBUTE_UNIX_SYM_LINK = 40960 ;
const integer ATTRIBUTE_UNIX_SOCKET = 49152 ;
/* Méthodes */
public bool extract ( string $dir [, string $filepath = "" [, string $password = NULL [, bool $extended_data = false ]]] )
public int getAttr ( void )
public string getCrc ( void )
public string getFileTime ( void )
public int getHostOs ( void )
public int getMethod ( void )
public string getName ( void )
public int getPackedSize ( void )
public resource getStream ([ string $password ] )
public int getUnpackedSize ( void )
public int getVersion ( void )
public bool isDirectory ( void )
public bool isEncrypted ( void )
public string __toString ( void )
}

Constantes pré-définies

RarEntry::HOST_MSDOS

Si la valeur retournée de RarEntry::getHostOs() est égal à cette constante, MS-DOS est utilisé pour ajouter cette entrée. Destiner à remplacer la constante RAR_HOST_MSDOS.

RarEntry::HOST_OS2

Si la valeur retournée de RarEntry::getHostOs() est égal à cette constante, OS/2 est utilisé pour ajouter cette entrée. Destiner à remplacer la constante RAR_HOST_OS2.

RarEntry::HOST_WIN32

Si la valeur retournée de RarEntry::getHostOs() est égal à cette constante, Microsoft Windows est utilisé pour ajouter cette entrée. Destiner à remplacer la constante RAR_HOST_WIN32.

RarEntry::HOST_UNIX

Si la valeur retournée de RarEntry::getHostOs() est égal à cette constante, UNIX OS est utilisé pour ajouter cette entrée. Destiner à remplacer la constante RAR_HOST_UNIX.

RarEntry::HOST_MACOS

Si la valeur retournée de RarEntry::getHostOs() est égal à cette constante, Mac OS est utilisé pour ajouter cette entrée.

RarEntry::HOST_BEOS

Si la valeur retournée de RarEntry::getHostOs() est égal à cette constante, BeOS est utilisé pour ajouter cette entrée. Destiner à remplacer la constante RAR_HOST_BEOS.

RarEntry::ATTRIBUTE_WIN_READONLY

Octet représentant une entrée Windows avec un attribut en lecture seule. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_HIDDEN

Octet représentant une entrée Windows avec un attribut caché. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_SYSTEM

Octet représentant une entrée Windows avec un attribut système. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_DIRECTORY

Octet représentant une entrée Windows avec un attribut dossier (l'entrée est un dossier). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows. Voir aussi la méthode RarEntry::isDirectory(), qui fonctionne également avec les entrées qui ne sont pas ajoutées dans WinRAR.

RarEntry::ATTRIBUTE_WIN_ARCHIVE

Octet représentant une entrée Windows avec un attribut d'archive. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_DEVICE

Octet représentant une entrée Windows avec un attribut de périphérique. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_NORMAL

Octet représentant une entrée Windows avec un attribut de fichier normal (l'entrée n'est pas un dossier). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows. Voir aussi la méthode RarEntry::isDirectory(), qui fonctionne également avec les entrées qui ne sont pas ajoutées dans WinRAR.

RarEntry::ATTRIBUTE_WIN_TEMPORARY

Octet représentant une entrée Windows avec un attribut temporaire. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_SPARSE_FILE

Octet représentant une entrée Windows avec un attribut de fichier fragmenté (le fichier est un fichier NTFS fragmenté). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_REPARSE_POINT

Octet représentant une entrée Windows avec un attribut de point d'analyse (le fichier est un point d'analyse NTFS; i.e. une jonction de dossier ou un système de fichier monté). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_COMPRESSED

Octet représentant une entrée Windows avec un attribut compressé (NTFS uniquement). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_OFFLINE

Octet représentant une entrée Windows avec un attribut hors-ligne (le fichier est hors-ligne et non accessible). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_NOT_CONTENT_INDEXED

Octet représentant une entrée Windows avec un attribut dont le contenu n'est pas indexé (l'entrée doit être indexé). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_ENCRYPTED

Octet représentant une entrée Windows avec un attribut crypté (NTFS uniquement). À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_VIRTUAL

Octet représentant une entrée Windows avec un attribut virtuel. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est Microsoft Windows.

RarEntry::ATTRIBUTE_UNIX_WORLD_EXECUTE

Octet représentant une entrée UNIX qui est exéctuable par tous. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_WORLD_WRITE

Octet représentant une entrée UNIX qui est accessible en écriture par tous. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_WORLD_READ

Octet représentant une entrée UNIX qui est accessible en lecture par tous. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_EXECUTE

Octet représentant une entrée UNIX qui est dans le groupe des exécutables. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_WRITE

Octet représentant une entrée UNIX qui est dans le groupe des accessibles en écriture. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_READ

Octet représentant une entrée UNIX qui est dans le groupe des accessibles en lecture. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_EXECUTE

Octet représentant une entrée UNIX dont le propriétaire est exécutable. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_WRITE

Octet représentant une entrée UNIX dont le propriétaire est accessible en écriture. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_READ

Octet représentant une entrée UNIX dont le propriétaire est accessible en lecture. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_STICKY

Octet représentant une entrée UNIX ayant l'octet sticky. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_SETGID

Octet représentant une attribut UNIX setgid. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_SETUID

Octet représentant une attribut UNIX setuid. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX.

RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET

Masque permettant d'isoler les 4 derniers octets (nibble) des attributs UNIX
(_S_IFMT, le type du masque de fichier).
À utiliser avec la méthode RarEntry::getAttr()
sur les entrées dont l'OS hôte est UNIX et avec les constantes
RarEntry::ATTRIBUTE_UNIX_FIFO,
RarEntry::ATTRIBUTE_UNIX_CHAR_DEV,
RarEntry::ATTRIBUTE_UNIX_DIRECTORY,
RarEntry::ATTRIBUTE_UNIX_BLOCK_DEV,
RarEntry::ATTRIBUTE_UNIX_REGULAR_FILE,
RarEntry::ATTRIBUTE_UNIX_SYM_LINK et
RarEntry::ATTRIBUTE_UNIX_SOCKET.

RarEntry::ATTRIBUTE_UNIX_FIFO

Attributs FIFOs Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_CHAR_DEV

Attributs des périphériques Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_DIRECTORY

Attributs des dossiers Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET. Voir aussi la méthode RarEntry::isDirectory() qui fonctionne également avec les entrées qui ont été ajoutées sous d'autres système d'exploitation.

RarEntry::ATTRIBUTE_UNIX_BLOCK_DEV

Attributs des périphériques de bloc Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_REGULAR_FILE

Attributs des fichiers réguliers (pas de dossiers) Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET. Voir aussi la méthode RarEntry::isDirectory() qui fonctionne également avec les entrées qui ont été ajoutées sous d'autres système d'exploitation.

RarEntry::ATTRIBUTE_UNIX_SYM_LINK

Attributs des liens symboliques Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_SOCKET

Attributs des sockets Unix dont les 4 derniers octets ont cette valeur. À utiliser avec la méthode RarEntry::getAttr() sur les entrées dont l'OS hôte est UNIX et avec la constante RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

Sommaire

  • RarEntry::extract — Extrait une entrée d'une archive
  • RarEntry::getAttr — Récupère les attributs d'une entrée
  • RarEntry::getCrc — Récupère le CRC d'une entrée
  • RarEntry::getFileTime — Récupère la date de dernière modification d'une entrée
  • RarEntry::getHostOs — Récupère le code de l'hôte pour une entrée
  • RarEntry::getMethod — Récupère la méthode utilisée pour l'ajout d'une entrée
  • RarEntry::getName — Récupère le nom de l'entrée
  • RarEntry::getPackedSize — Récupère la taille compressée d'une entrée
  • RarEntry::getStream — Récupère le gestion de fichier pour une entrée
  • RarEntry::getUnpackedSize — Récupère la taille décompressée d'une entrée
  • RarEntry::getVersion — Récupère la version minimale du logiciel RAR à utiliser pour décompresser une entrée
  • RarEntry::isDirectory — Teste si l'entrée courante est un dossier
  • RarEntry::isEncrypted — Teste si une entrée est cryptée
  • RarEntry::__toString — Récupère une représentation sous forme de chaîne de caractères d'une entrée


Extrait une entrée d'une archive

  • « RarEntry
  • RarEntry::getAttr »
  • PHP Manual
  • RarEntry
  • Extrait une entrée d'une archive

RarEntry::extract

(PECL rar >= 0.1)

RarEntry::extract — Extrait une entrée d'une archive

Description

public bool RarEntry::extract ( string $dir [, string $filepath = "" [, string $password = NULL [, bool $extended_data = false ]]] )

RarEntry::extract() extrait une entrée de données. Ceci va créer un nouveau fichier dans le dossier spécifié par le paramètre dir portant un nom identique au nom de l'entrée, tant que le second argument n'est pas spécifié. Voir ci-dessous pour plus d'informations.

Liste de paramètres

dir

Chemin vers le dossier où le fichier extrait devra être créé. Ce paramètre sera utilisé uniquement si le paramètre filepath n'est pas fourni. Si ces 2 paramètres sont vides, l'extraction se fera dans le dossier courant.

filepath

Chemin (relatif ou absolut) contenant le dossier et le nom du fichier à extraire. Ce paramètre écrase à la fois le paramètre dir et le nom original du fichier.

password

Le mot de passe à utiliser pour décrypter cette entrée. Si l'entrée n'est pas crypté, cette valeur ne sera pas utilisée et peut être omise. Si ce paramètre est omis et que l'entrée est cryptée, le mot de passe fourni à la fonction rar_open(), si il existe, sera utilisé. Si un mauvais mot de passe est fourni, soit explicitement ou implicitement via la fonction rar_open(), la vérification CRC échouera et cette méthode échouera, en retournant FALSE. Si aucun mot de passe n'est fourni alors qu'il est nécessaire, cette méthode échouera en retournant FALSE. Vous pouvez vérifier si une entrée est cryptée avec la méthode RarEntry::isEncrypted().

extended_data

Si vaut TRUE, les informations étendues comme NTFS ACLs et les informations sur le propriétaire Unix seront définies dans les fichiers extraits, si ils sont bien définies dans l'archives.

Avertissement

Avant la version 2.0.0, cette fonction ne gérait pas les chemins relatifs correctement. Utilisez la fonction realpath() comme contournement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
3.0.0 | Le paramètre extended_data a été ajouté.
3.0.0 | Support des archives RAR contenant des entrées portant le même nom.

Exemples

Exemple #1 Exemple avec RarEntry::extract()

<?php

$rar_file = rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive RAR");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("L'entrée demandée n'existe pas !");

$entry->extract('/dir/to'); // Création de /dir/to/Dir/file.txt
$entry->extract(false, '/dir/to/new_name.txt'); // Création de /dir/to/new_name.txt

?>

Exemple #2 Comment extraire tous les fichiers d'une archive :

<?php

/* Exemple fourni par Erik Jenssen aka erix */

$filename = "foobar.rar";
$filepath = "/home/foo/bar/";

$rar_file = rar_open($filepath.$filename);
$list = rar_list($rar_file);
foreach($list as $file) {
    $entry = rar_entry_get($rar_file, $file);
    $entry->extract("."); // Extraction dans le dossier courant
}
rar_close($rar_file);

?>

Voir aussi

  • RarEntry::getStream() - Récupère le gestion de fichier pour une entrée
  • Le gestionnaire rar://


Récupère les attributs d'une entrée

  • « RarEntry::extract
  • RarEntry::getCrc »
  • PHP Manual
  • RarEntry
  • Récupère les attributs d'une entrée

RarEntry::getAttr

(PECL rar >= 0.1)

RarEntry::getAttr — Récupère les attributs d'une entrée

Description

public int RarEntry::getAttr ( void )

Retourne les attributs dépendants de l'OS d'une entrée d'une archive.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les attributs ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec RarEntry::getAttr()

<?php

$rar_file = rar_open('example.rar') or die("Impossible d'ouvrir l'archive RAR");

$entry = rar_entry_get($rar_file, 'dir/in/the/archive') or die("L'entrée demandée n'existe pas !");

$host_os = $entry->getHostOs();
$attr = $entry->getAttr();

switch($host_os) {
    case RAR_HOST_MSDOS:
    case RAR_HOST_OS2:
    case RAR_HOST_WIN32:
    case RAR_HOST_MACOS:
        printf("%c%c%c%c%c%c\n",
                ($attr & 0x08) ? 'V' : '.',
                ($attr & 0x10) ? 'D' : '.',
                ($attr & 0x01) ? 'R' : '.',
                ($attr & 0x02) ? 'H' : '.',
                ($attr & 0x04) ? 'S' : '.',
                ($attr & 0x20) ? 'A' : '.');
        break;
    case RAR_HOST_UNIX:
    case RAR_HOST_BEOS:
        switch ($attr & 0xF000)
        {
            case 0x4000:
                printf("d");
                break;
            case 0xA000:
                printf("l");
                break;
            default:
                printf("-");
                break;
        }
        printf("%c%c%c%c%c%c%c%c%c\n",
                ($attr & 0x0100) ? 'r' : '-',
                ($attr & 0x0080) ? 'w' : '-',
                ($attr & 0x0040) ? (($attr & 0x0800) ? 's':'x'):(($attr & 0x0800) ? 'S':'-'),
                ($attr & 0x0020) ? 'r' : '-',
                ($attr & 0x0010) ? 'w' : '-',
                ($attr & 0x0008) ? (($attr & 0x0400) ? 's':'x'):(($attr & 0x0400) ? 'S':'-'),
                ($attr & 0x0004) ? 'r' : '-',
                ($attr & 0x0002) ? 'w' : '-',
                ($attr & 0x0001) ? 'x' : '-');
        break;
}

rar_close($rar_file);

?>

Voir aussi

  • RarEntry::getHostOs() - Récupère le code de l'hôte pour une entrée
  • Les constantes de la classe RarEntry


Récupère le CRC d'une entrée

  • « RarEntry::getAttr
  • RarEntry::getFileTime »
  • PHP Manual
  • RarEntry
  • Récupère le CRC d'une entrée

RarEntry::getCrc

(PECL rar >= 0.1)

RarEntry::getCrc — Récupère le CRC d'une entrée

Description

public string RarEntry::getCrc ( void )

Retourne une chaîne de caractères hexadécimale représentant le CRC d'une entrée d'une archive.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le CRC d'une entrée d'une archive, ou FALSE si une erreur survient.

Historique

Version | Description
2.0.0 | Cette méthode retourne maintenant des valeurs correctes pour les archives sur plusieurs volumes.


Récupère la date de dernière modification d'une entrée

  • « RarEntry::getCrc
  • RarEntry::getHostOs »
  • PHP Manual
  • RarEntry
  • Récupère la date de dernière modification d'une entrée

RarEntry::getFileTime

(PECL rar >= 0.1)

RarEntry::getFileTime — Récupère la date de dernière modification d'une entrée

Description

public string RarEntry::getFileTime ( void )

Récupère la date de dernière modification d'une entrée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la date de dernière modification de l'entrée sous la forme d'une chaîne de caractères au format YYYY-MM-DD HH:II:SS, ou FALSE si une erreur survient.


Récupère le code de l'hôte pour une entrée

  • « RarEntry::getFileTime
  • RarEntry::getMethod »
  • PHP Manual
  • RarEntry
  • Récupère le code de l'hôte pour une entrée

RarEntry::getHostOs

(PECL rar >= 0.1)

RarEntry::getHostOs — Récupère le code de l'hôte pour une entrée

Description

public int RarEntry::getHostOs ( void )

Retourne le code de l'OS hôte d'une entrée d'une archive.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le code de l'OS hôte d'une entrée, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec RarEntry::getHostOs() (version >= 2.0.0)

<?php

$rar_file = rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive RAR");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("L'entrée demandée n'existe pas !");

switch ($entry->getHostOs()) {
    case RarEntry::HOST_MSDOS:
        echo "MS-DOS\n";
        break;
    case RarEntry::HOST_OS2:
        echo "OS2\n";
        break;
    case RarEntry::HOST_WIN32:
        echo "Win32\n";
        break;
    case RarEntry::HOST_MACOS:
        echo "MacOS\n";
        break;
    case RarEntry::HOST_UNIX:
        echo "Unix/Linux\n";
        break;
    case RarEntry::HOST_BEOS:
        echo "BeOS\n";
        break;
}

?>

Exemple #2 Exemple avec RarEntry::getHostOs() (version <= 1.0.0)

<?php

$rar_file = rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive RAR");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("L'entrée demandée n'existe pas !");

switch ($entry->getHostOs()) {
    case RAR_HOST_MSDOS:
        echo "MS-DOS\n";
        break;
    case RAR_HOST_OS2:
        echo "OS2\n";
        break;
    case RAR_HOST_WIN32:
        echo "Win32\n";
        break;
    case RAR_HOST_MACOS:
        echo "MacOS\n";
        break;
    case RAR_HOST_UNIX:
        echo "Unix/Linux\n";
        break;
    case RAR_HOST_BEOS:
        echo "BeOS\n";
        break;
}

?>

Voir aussi

  • RarEntry::extract() - Extrait une entrée d'une archive


Récupère la méthode utilisée pour l'ajout d'une entrée

  • « RarEntry::getHostOs
  • RarEntry::getName »
  • PHP Manual
  • RarEntry
  • Récupère la méthode utilisée pour l'ajout d'une entrée

RarEntry::getMethod

(PECL rar >= 0.1)

RarEntry::getMethod — Récupère la méthode utilisée pour l'ajout d'une entrée

Description

public int RarEntry::getMethod ( void )

Récupère la méthode utilisée lors de l'ajout d'une entrée dans l'archive courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de la méthode, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec RarEntry::getMethod()

<?php

$rar_file = rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive RAR");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("L'entrée demandée n'existe pas !");

echo "Numéro de la méthode : " . $entry->getMethod();

?>


Récupère le nom de l'entrée

  • « RarEntry::getMethod
  • RarEntry::getPackedSize »
  • PHP Manual
  • RarEntry
  • Récupère le nom de l'entrée

RarEntry::getName

(PECL rar >= 0.1)

RarEntry::getName — Récupère le nom de l'entrée

Description

public string RarEntry::getName ( void )

Retourne le nom (avec le chemin) de l'entrée d'une archive.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de l'entrée, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Historique

Version | Description
2.0.0 | Depuis la version 2.0.0, la chaîne de caractères retournée est encodée en Unicode/UTF-8.

Exemples

Exemple #1 Exemple avec RarEntry::getName()

<?php

// Cet exemple fonctionne aussi pour les pages encodées en UTF-8.
// Aussi, l'appel à la fonction mb_convert_encoding n'est pas nécessaire

$rar_file = rar_open('example.rar') or die("Erreur lors de l'ouverture de l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Entrée non trouvée");

echo "Entry name: " . mb_convert_encoding(
    htmlentities(
        $entry->getName(),
        ENT_COMPAT,
        "UTF-8"
    ),
    "HTML-ENTITIES",
    "UTF-8"
);

?>


Récupère la taille compressée d'une entrée

  • « RarEntry::getName
  • RarEntry::getStream »
  • PHP Manual
  • RarEntry
  • Récupère la taille compressée d'une entrée

RarEntry::getPackedSize

(PECL rar >= 0.1)

RarEntry::getPackedSize — Récupère la taille compressée d'une entrée

Description

public int RarEntry::getPackedSize ( void )

Récupère la taille décompressée d'une entrée.

Note:

Noter que sous les plateformes 32bits (y compris sous Windows 64bits), la taille maximale retournée sera tronquée à 2 Go. Vérifier la constante PHP_INT_MAX.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille compressée, ou FALSE si une erreur survient.

Historique

Version | Description
2.0.0 | Cette méthode retourne maintenant des valeurs correcte de tailles compressées plus grandes que 2Go sous les plateformes 64bits et ne retourne jamais de valeurs négatives sous les autres plateformes.

Exemples

Exemple #1 Exemple avec RarEntry::getPackedSize()

<?php

$rar_file = rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Impossible de trouver l'entrée demandée");

echo "Taille compressée de " . $entry->getName() . " = " . $entry->getPackedSize() . " octets";

?>


Récupère le gestion de fichier pour une entrée

  • « RarEntry::getPackedSize
  • RarEntry::getUnpackedSize »
  • PHP Manual
  • RarEntry
  • Récupère le gestion de fichier pour une entrée

RarEntry::getStream

(PECL rar >= 2.0.0)

RarEntry::getStream — Récupère le gestion de fichier pour une entrée

Description

public resource RarEntry::getStream ([ string $password ] )

Retourne le gestionnaire de fichier qui supporte les opérations de lecture. Ce gestionnaire permet la décompression à la volée de l'entrée.

Le gestionnaire ne sera pas touché par l'appel à la fonction rar_close().

Avertissement

Le flux résultant ne permet pas de vérifier l'intégrité des données. Par exemple, un fichier corrompu ou crypté avec une clé fausse ne sera pas détecté. Ce sera de la responsabilité du développeur d'utiliser le CRC de l'entrée pour vérifier son intégrité, s'il le souhaite.

Liste de paramètres

password

Le mot de passe à utiliser pour décrypter l'entrée. Si l'entrée n'est pas crypté, la valeur ne sera pas utilisée et peut être omise. Si ce paramètre est omis et que l'entrée est crypté, le mot de passe fourni lors de l'appel à la fonction rar_open() sera utilisé, si il a été fourni. Si un mauvais mot de passe est fourni, soit explicitement, soit implicitement via la fonction rar_open(), le flux résultant produira un affichage incorrect. Si aucun mot de passe n'est fourni alors qu'il est nécessaire, la méthode échouera et retournera FALSE. Vous pouvez vérifier si l'entrée est cryptée en utilisant la méthode RarEntry::isEncrypted().

Valeurs de retour

Le gestionnaire de fichier, ou FALSE si une erreur survient.

Historique

Version | Description
3.0.0 | Support des archives RAR dont les entrées portent le même nom.

Exemples

Exemple #1 Exemple avec RarEntry::getStream()

<?php

$rar_file = rar_open('example.rar');
if ($rar_file === false)
    die("Échec lors de l'ouverture de l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt');
if ($entry === false)
    die("Impossible de trouver l'entrée demandée");

$stream = $entry->getStream();
if ($stream === false)
    die("Échec lors de la récupération du flux.");

rar_close($rar_file); //le flux est indépendant du fichier

while (!feof($stream)) {
    $buff = fread($stream, 8192);
    if ($buff !== false)
        echo $buff;
    else
        break; //erreur fread
}

fclose($stream);

?>

Voir aussi

  • RarEntry::extract() - Extrait une entrée d'une archive
  • Le gestionnaire rar://


Récupère la taille décompressée d'une entrée

  • « RarEntry::getStream
  • RarEntry::getVersion »
  • PHP Manual
  • RarEntry
  • Récupère la taille décompressée d'une entrée

RarEntry::getUnpackedSize

(PECL rar >= 0.1)

RarEntry::getUnpackedSize — Récupère la taille décompressée d'une entrée

Description

public int RarEntry::getUnpackedSize ( void )

Récupère la taille décompressée d'une entrée d'une archive.

Note:

Notez que sur les plateformes 32bits (y compris les Windows x64), la taille maximale est tronquée à 2 Go. Vérifier la constante PHP_INT_MAX.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille décompressée, ou FALSE si une erreur survient.

Historique

Version | Description
2.0.0 | Cette méthode retourne maintenant les valeurs correctes pour les tailles décompressées plus grandes que 2Go sur les plateformes 64bits et ne retournera jamais de valeurs négatives pour les autres plateformes.

Valeurs de retour

Exemple #1 Exemple avec RarEntry::getUnpackedSize()

<?php

$rar_file = rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Échec lors de la récupération de l'entrée");

echo "Taille décompressée de " . $entry->getName() . " = " . $entry->getPackedSize() . " octets";

?>


Récupère la version minimale du logiciel RAR à utiliser pour décompresser une entrée

  • « RarEntry::getUnpackedSize
  • RarEntry::isDirectory »
  • PHP Manual
  • RarEntry
  • Récupère la version minimale du logiciel RAR à utiliser pour décompresser une entrée

RarEntry::getVersion

(PECL rar >= 0.1)

RarEntry::getVersion — Récupère la version minimale du logiciel RAR à utiliser pour décompresser une entrée

Description

public int RarEntry::getVersion ( void )

Retourne la version minimale du logiciel RAR (e.g. WinRAR) requise pour décompresser l'entrée. Elle sera encodée sous la forme 10 * version majeure + version mineure.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la version ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec RarEntry::getVersion()

<?php

$rar_file = rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("L'entrée demandée n'existe pas");

echo "Version Rar requise pour décompresser l'entrée : " . $entry->getVersion();

?>


Teste si l'entrée courante est un dossier

  • « RarEntry::getVersion
  • RarEntry::isEncrypted »
  • PHP Manual
  • RarEntry
  • Teste si l'entrée courante est un dossier

RarEntry::isDirectory

(PECL rar >= 2.0.0)

RarEntry::isDirectory — Teste si l'entrée courante est un dossier

Description

public bool RarEntry::isDirectory ( void )

Teste si l'entrée courante est un dossier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'entrée est un dossier, FALSE sinon.

Notes

Cette fonction est uniquement disponible depuis la version 2.0.0, mais ce test peut également être effectué en vérifiant les attributs de l'entrée comme ceci (ne fonctionne que pour des fichiers compressés avec RAR sous Windows ou Unix) :

<?php
//...
// Ouvre le fichier, récupère l'entrée et la stock dans la variable $e...
//...

$isDirectory = (bool) ((($e->getHostOs() == RAR_HOST_WIN32) && ($e->getAttr() & 0x10)) ||
    (($e->getHostOs() == RAR_HOST_UNIX) && (($e->getAttr() & 0xf000) == 0x4000)));
?>


Teste si une entrée est cryptée

  • « RarEntry::isDirectory
  • RarEntry::__toString »
  • PHP Manual
  • RarEntry
  • Teste si une entrée est cryptée

RarEntry::isEncrypted

(PECL rar >= 2.0.0)

RarEntry::isEncrypted — Teste si une entrée est cryptée

Description

public bool RarEntry::isEncrypted ( void )

Teste si le contenu de l'entrée courante est crypté.

Note:

Le mot de passe utilisé peut différé entre plusieurs fichiers de la même archive RAR.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'entrée courante est crypté, FALSE sinon.


Récupère une représentation sous forme de chaîne de caractères d'une entrée

  • « RarEntry::isEncrypted
  • RarException »
  • PHP Manual
  • RarEntry
  • Récupère une représentation sous forme de chaîne de caractères d'une entrée

RarEntry::__toString

(PECL rar >= 2.0.0)

RarEntry::__toString — Récupère une représentation sous forme de chaîne de caractères d'une entrée

Description

public string RarEntry::__toString ( void )

Retourne une représentation textuelle d'une entrée. Ceci inclut les entrées sous forme de fichier, de dossier (les liens symboliques ou les objets spéciaux seront traités comme des fichiers), les noms UTF-8 des entrées, mais aussi les CRC. La forme et le contenu de cette représentation peut changer dans le futur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation textuelle de l'entrée.


La classe RarException

(PECL rar >= 2.0.0)

Introduction

Cette classe sert à 2 choses : C'est le type d'exceptions lancées par l'extension RAR et permet, via ses méthodes statiques, de savoir et de définir les comportements des erreurs de l'extension, i.e. si l'exception doit être émise ou bien si des alertes PHP doivent être émises.

Les codes erreurs suivants sont utilisés :

  • -1 - Erreur externe à la bibliothèque UnRAR
  • 11 - Mémoire insuffisante
  • 12 - Données incorrectes
  • 13 - Archive incorrecte
  • 14 - Format inconnu
  • 15 - Erreur lors de l'ouverture du fichier
  • 16 - Erreur lors de la création d'un fichier
  • 17 - Erreur lors de la fermeture d'un fichier
  • 18 - Erreur lors de la lecture
  • 19 - Erreur lors de l'écriture
  • 20 - Buffer trop petit
  • 21 - Erreur RAR inconnue
  • 22 - Mot de passe nécessaire mais non fourni

Synopsis de la classe

final RarException extends Exception {
/* Méthodes */
public static bool isUsingExceptions ( void )
public static void setUsingExceptions ( bool $using_exceptions )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Sommaire

  • RarException::isUsingExceptions — Vérifie si le gestionnaire d'erreur utilise les exceptions ou non
  • RarException::setUsingExceptions — Active ou désactive les exceptions dans le gestionnaire d'erreurs


Vérifie si le gestionnaire d'erreur utilise les exceptions ou non

  • « RarException
  • RarException::setUsingExceptions »
  • PHP Manual
  • RarException
  • Vérifie si le gestionnaire d'erreur utilise les exceptions ou non

RarException::isUsingExceptions

(PECL rar >= 2.0.0)

RarException::isUsingExceptions — Vérifie si le gestionnaire d'erreur utilise les exceptions ou non

Description

public static bool RarException::isUsingExceptions ( void )

Vérifie si les fonctions RAR émettent des alertes et retournent des valeurs d'erreur ou bien si elles émettent des exceptions (n'incluent pas des erreurs de syntaxe telles que le fait de passer des types incorrects comme arguments).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si les exceptions sont utilisées, FALSE sinon.

Exemples

Exemple #1 Exemple avec RarException::isUsingExceptions()

<?php
// Par défaut, les exceptions ne sont pas utilisées
var_dump(RarException::isUsingExceptions());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)

Voir aussi

  • RarException::setUsingExceptions() - Active ou désactive les exceptions dans le gestionnaire d'erreurs


Active ou désactive les exceptions dans le gestionnaire d'erreurs

  • « RarException::isUsingExceptions
  • Zip »
  • PHP Manual
  • RarException
  • Active ou désactive les exceptions dans le gestionnaire d'erreurs

RarException::setUsingExceptions

(PECL rar >= 2.0.0)

RarException::setUsingExceptions — Active ou désactive les exceptions dans le gestionnaire d'erreurs

Description

public static void RarException::setUsingExceptions ( bool $using_exceptions )

Si et seulement si l'argument vaut TRUE, alors, au lieu d'émettre des alertes et de retourner des valeurs spéciales indiquant une erreur lors que la bibliothèque UnRAR rencontre une erreur, une exception de type RarException est émise.

Les exceptions seront également lancées pour les erreurs suivantes, qui surviennent en dehors de la bibliothèque (leurs codes erreurs seront -1) :

  • tentative d'une opération sur un objet RarArchive clos ou un objet RarEntry relatif au premier ;
  • tentative de récupération d'une entrée qui n'existe pas avec la méthode RarArchive::getEntry().

Liste de paramètres

using_exceptions

Doit valoir TRUE pour active l'émission d'exceptions, FALSE pour le désactiver (par défaut).

Exemples

Exemple #1 Exemple avec RarException::setUsingExceptions()

<?php
var_dump(RarException::isUsingExceptions());
$arch = RarArchive::open("does_not_exist.rar");
var_dump($arch);

RarException::setUsingExceptions(true);
var_dump(RarException::isUsingExceptions());
$arch = RarArchive::open("does_not_exist.rar");
var_dump($arch); //non atteint
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)

Warning: RarArchive::open(): Failed to open does_not_exist.rar: ERAR_EOPEN (file open error) in C:\php_rar\trunk\tests\test.php on line 3
bool(false)
bool(true)

Fatal error: Uncaught exception 'RarException' with message 'unRAR internal error: Failed to open does_not_exist.rar: ERAR_EOPEN (file open error)' in C:\php_rar\trunk\tests\test.php:8
Stack trace:
#0 C:\php_rar\trunk\tests\test.php(8): RarArchive::open('does_not_exist....')
#1 {main}
  thrown in C:\php_rar\trunk\tests\test.php on line 8

Voir aussi

  • RarException::isUsingExceptions() - Vérifie si le gestionnaire d'erreur utilise les exceptions ou non


Zip

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • ZipArchive — La classe ZipArchive
    • ZipArchive::addEmptyDir — Ajoute un nouveau dossier à une archive Zip
    • ZipArchive::addFile — Ajoute un fichier à l'archive ZIP depuis le chemin fourni
    • ZipArchive::addFromString — Ajoute un fichier à une archive ZIP en utilisant son contenu
    • ZipArchive::addGlob — Ajoute des fichiers d'un dossier en utilisant un masque glob
    • ZipArchive::addPattern — Ajoute des fichiers d'un dossier en utilisant une expression régulière PCRE
    • ZipArchive::close — Ferme l'archive active
    • ZipArchive::deleteIndex — Efface une entrée de l'archive en utilisant son index
    • ZipArchive::deleteName — Efface une entrée dans l'archive en utilisant son nom
    • ZipArchive::extractTo — Extrait le contenu de l'archive
    • ZipArchive::getArchiveComment — Retourne le commentaire de l'archive ZIP
    • ZipArchive::getCommentIndex — Retourne le commentaire d'une entrée
    • ZipArchive::getCommentName — Retourne le commentaire d'une entrée en utilisant le nom de l'entrée
    • ZipArchive::getExternalAttributesIndex — Récupère les attributs étendus d'une entrée définie par son index
    • ZipArchive::getExternalAttributesName — Récupère les attributs étendus d'une entrée définie par son nom
    • ZipArchive::getFromIndex — Retourne le contenu d'une entrée en utilisant son index
    • ZipArchive::getFromName — Retourne le contenu de l'entrée en utilisant son nom
    • ZipArchive::getNameIndex — Retourne le nom d'une entrée en utilisant son index
    • ZipArchive::getStatusString — Retourne le message du statut de l'erreur, du système ou de zip
    • ZipArchive::getStream — Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule)
    • ZipArchive::locateName — Retourne l'index d'une entrée de l'archive
    • ZipArchive::open — Ouvre une archive ZIP
    • ZipArchive::renameIndex — Renomme une entrée définie par son index
    • ZipArchive::renameName — Renomme une entrée définie par son nom
    • ZipArchive::setArchiveComment — Définit le commentaire d'une archive ZIP
    • ZipArchive::setCommentIndex — Définit le commentaire d'une entrée définie par son index
    • ZipArchive::setCommentName — Définit le commentaire d'une entrée spécifiée par son nom
    • ZipArchive::setCompressionIndex — Set the compression method of an entry defined by its index
    • ZipArchive::setCompressionName — Set the compression method of an entry defined by its name
    • ZipArchive::setExternalAttributesIndex — Définit les attributs étendus d'une entrée définie par son index
    • ZipArchive::setExternalAttributesName — Définit les attributs étendus d'une entrée définie par son nom
    • ZipArchive::setPassword — Défini le mot de passe de l'archive active
    • ZipArchive::statIndex — Récupère les détails d'une entrée définie par son index
    • ZipArchive::statName — Récupère les détails de l'entrée définie par son nom
    • ZipArchive::unchangeAll — Annule toutes les modifications faites sur l'archive
    • ZipArchive::unchangeArchive — Annule toutes les modifications globales faites sur l'archive
    • ZipArchive::unchangeIndex — Annule toutes les modifications faites sur une entrée, définie par nom index
    • ZipArchive::unchangeName — Annule toutes les modifications faites sur une entrée, définie par son nom
  • Fonctions Zip
    • zip_close — Ferme une archive Zip
    • zip_entry_close — Ferme un dossier d'archive
    • zip_entry_compressedsize — Lit la taille compressée d'un dossier d'archives
    • zip_entry_compressionmethod — Lit la méthode de compression utilisée sur un dossier d'archives
    • zip_entry_filesize — Lit la taille décompressée d'un dossier d'archives
    • zip_entry_name — Lit le nom d'un dossier d'archives
    • zip_entry_open — Ouvre un dossier d'archives en lecture
    • zip_entry_read — Lit le contenu d'un fichier dans un dossier
    • zip_open — Ouvre une archive ZIP
    • zip_read — Lit la prochaine entrée dans une archive ZIP


Introduction

Cette extension offre la possibilité de lire et d'écrire des archives compressées ZIP, et d'accéder aux fichiers et dossiers s'y trouvant.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Cette extension requière » libzip qui est fournie avec PHP.


Installation

Systèmes Linux

Afin d'utiliser ces fonctions, vous devez compiler PHP avec le support Zip en utilisant l'option de configuration --enable-zip .

Depuis PHP 5.6.0, l'option de configuration --with-libzip=DIR a été ajoutée pour utiliser une installation existante de libzip. La version 0.11 de libzip est nécessaire, mais nous vous recommandons la version 0.11.2 ou supérieure.

Windows

Depuis PHP 5.3, cette extension est fournie par défaut. Avant cette version, les utilisateurs de Windows doivent activer la bibliothèque php_zip.dll dans le php.ini afin d'utiliser ces fonctions.

Installation via PECL

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/zip.


Types de ressources

Il y a deux types de ressources utilisées par le module Zip. La première est le dossier Zip d'une archive Zip, et la seconde, l'entrée Zip de l'archive.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

ZipArchive utilise des constantes de classe. Il y a trois types de constantes : les options (préfixées par FL_), les erreurs (préfixées par ER_) ou les modes (sans préfixe).

ZipArchive::CREATE (entier)
Crée l'archive si elle n'existe pas.
ZipArchive::OVERWRITE (entier)
Démarre toujours une nouvelle archive. Ce mode écrase le fichier s'il existe déjà.
ZipArchive::EXCL (entier)
Erreur si l'archive existe déjà.
ZipArchive::CHECKCONS (entier)
Effectue des analyses supplémentaires de cohérence et émet une erreur si elles échouent.
ZipArchive::FL_NOCASE (entier)
Ignore la casse sur le nom.
ZipArchive::FL_NODIR (entier)
Ignore le composant dossier.
ZipArchive::FL_COMPRESSED (entier)
Lit les données compressées.
ZipArchive::FL_UNCHANGED (entier)
Utilise les données originales, en ignorant les modifications.
ZipArchive::FL_ENC_GUESS (integer)
Devine l'encodage de la chaîne (par défaut). Disponible depuis PHP 7.0.8.
ZipArchive::FL_ENC_RAW (integer)
Récupère la chaîne non modifiée. Disponible depuis PHP 7.0.8.
ZipArchive::FL_ENC_STRICT (integer)
Suit les spécifications strictement. Disponible depuis PHP 7.0.8.
ZipArchive::FL_ENC_UTF_8 (integer)
La chaîne est encodée UTF-8. Disponible depuis PHP 7.0.8.
ZipArchive::FL_ENC_CP437 (integer)
La chaîne est encodée CP437. Disponible depuis PHP 7.0.8.
ZipArchive::CM_DEFAULT (entier)
Meilleur compression ou stockage.
ZipArchive::CM_STORE (entier)
Stocké (non-compressé).
ZipArchive::CM_SHRINK (entier)
Retrait.
ZipArchive::CM_REDUCE_1 (entier)
Réduit de facteur 1.
ZipArchive::CM_REDUCE_2 (entier)
Réduit de facteur 2.
ZipArchive::CM_REDUCE_3 (entier)
Réduit de facteur 3.
ZipArchive::CM_REDUCE_4 (entier)
Réduit de facteur 4.
ZipArchive::CM_IMPLODE (entier)
Réunit.
ZipArchive::CM_DEFLATE (entier)
Compression.
ZipArchive::CM_DEFLATE64 (entier)
Compression 64.
ZipArchive::CM_PKWARE_IMPLODE (entier)
Réunit PKWARE.
ZipArchive::CM_BZIP2 (entier)
Algorithme BZIP2.
ZipArchive::ER_OK (entier)
Aucune erreur.
ZipArchive::ER_MULTIDISK (entier)
Archives ZIP multidisques non supportées.
ZipArchive::ER_RENAME (entier)
Échec du changement de nom du fichier temporaire.
ZipArchive::ER_CLOSE (entier)
Échec de la fermeture de l'archive ZIP.
ZipArchive::ER_SEEK (entier)
Erreur de pointeur.
ZipArchive::ER_READ (entier)
Erreur de lecture.
ZipArchive::ER_WRITE (entier)
Erreur d'écriture.
ZipArchive::ER_CRC (entier)
Erreur CRC.
ZipArchive::ER_ZIPCLOSED (entier)
Archive ZIP fermée.
ZipArchive::ER_NOENT (entier)
Le fichier n'existe pas.
ZipArchive::ER_EXISTS (entier)
Le fichier existe déjà.
ZipArchive::ER_OPEN (entier)
Impossible d'ouvrir le fichier.
ZipArchive::ER_TMPOPEN (entier)
Échec lors de la création du fichier temporaire.
ZipArchive::ER_ZLIB (entier)
Erreur Zlib.
ZipArchive::ER_MEMORY (entier)
Échec d'allocation mémoire.
ZipArchive::ER_CHANGED (chaîne de caractères)
L'entrée a été modifiée.
ZipArchive::ER_COMPNOTSUPP (entier)
Méthode de compression non supportée.
ZipArchive::ER_EOF (entier)
EOF prématuré.
ZipArchive::ER_INVAL (entier)
Argument invalide.
ZipArchive::ER_NOZIP (entier)
Ce n'est pas une archive ZIP.
ZipArchive::ER_INTERNAL (entier)
erreur interne
ZipArchive::ER_INCONS (entier)
Archive ZIP incohérente.
ZipArchive::ER_REMOVE (entier)
Impossible d'effacer le fichier.
ZipArchive::ER_DELETED (entier)
L'entrée a été supprimée.
Système d'exploitation, constantes pour les attributs étendus
ZipArchive::OPSYS_DOS (entier)
ZipArchive::OPSYS_AMIGA (entier)
ZipArchive::OPSYS_OPENVMS (entier)
ZipArchive::OPSYS_UNIX (entier)
ZipArchive::OPSYS_VM_CMS (entier)
ZipArchive::OPSYS_ATARI_ST (entier)
ZipArchive::OPSYS_OS_2 (entier)
ZipArchive::OPSYS_MACINTOSH (entier)
ZipArchive::OPSYS_Z_SYSTEM (entier)
ZipArchive::OPSYS_CPM (entier)
ZipArchive::OPSYS_WINDOWS_NTFS (entier)
ZipArchive::OPSYS_MVS (entier)
ZipArchive::OPSYS_VSE (entier)
ZipArchive::OPSYS_ACORN_RISC (entier)
ZipArchive::OPSYS_VFAT (entier)
ZipArchive::OPSYS_ALTERNATE_MVS (entier)
ZipArchive::OPSYS_BEOS (entier)
ZipArchive::OPSYS_TANDEM (entier)
ZipArchive::OPSYS_OS_400 (entier)
ZipArchive::OPSYS_OS_X (entier)
ZipArchive::OPSYS_DEFAULT (entier)
Depuis PHP 5.6.0, PECL zip 1.12.4


Exemples

Exemple #1 Création d'une archive Zip

<?php

$zip = new ZipArchive();
$filename = "./test112.zip";

if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
    exit("Impossible d'ouvrir le fichier <$filename>\n");
}

$zip->addFromString("testfilephp.txt" . time(), "#1 Ceci est une chaîne texte, ajoutée comme testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt" . time(), "#2 Ceci est une chaîne texte, ajoutée comme testfilephp2.txt.\n");
$zip->addFile($thisdir . "/too.php","/testfromfile.php");
echo "Nombre de fichiers : " . $zip->numFiles . "\n";
echo "Statut :" . $zip->status . "\n";
$zip->close();
?>

Exemple #2 Affiche les détails de l'archive et liste son contenu

<?php
$za = new ZipArchive();

$za->open('test_with_comment.zip');
print_r($za);
var_dump($za);
echo "Nombre de fichiers : " . $za->numFiles . "\n";
echo "Statut : " . $za->status  . "\n";
echo "Statut du système : " . $za->statusSys . "\n";
echo "Nom du fichier : " . $za->filename . "\n";
echo "Commentaire : " . $za->comment . "\n";

for ($i=0; $i<$za->numFiles;$i++) {
    echo "index : $i\n";
    print_r($za->statIndex($i));
}
echo "Nombre de fichiers :" . $za->numFiles . "\n";
?>

Exemple #3 Flux ZIP : lit les meta-données d'un fichier OpenOffice

<?php
$reader = new XMLReader();

$reader->open('zip://' . dirname(__FILE__) . '/test.odt#meta.xml');
$odt_meta = array();
while ($reader->read()) {
    if ($reader->nodeType == XMLREADER::ELEMENT) {
        $elm = $reader->name;
    } else {
        if ($reader->nodeType == XMLREADER::END_ELEMENT && $reader->name == 'office:meta') {
            break;
        }
        if (!trim($reader->value)) {
            continue;
        }
        $odt_meta[$elm] = $reader->value;
    }
}
print_r($odt_meta);
?>

Cet exemple utilise l'ancienne API (PHP 4) ; il ouvre une archive ZIP, lit chaque fichier de l'archive et affiche son contenu. L'archive test2.zip utilisée dans cet exemple est une des archives de test, se trouvant dans les sources de ZZIPlib.

Exemple #4 Exemple d'utilisation de Zip

<?php

$zip = zip_open("/tmp/test2.zip");

if ($zip) {
    while ($zip_entry = zip_read($zip)) {
        echo "Nom :                        " . zip_entry_name($zip_entry) . "\n";
        echo "Taille actuelle du fichier : " . zip_entry_filesize($zip_entry) . "\n";
        echo "Taille compressée :          " . zip_entry_compressedsize($zip_entry) . "\n";
        echo "Méthode de compression :     " . zip_entry_compressionmethod($zip_entry) . "\n";

        if (zip_entry_open($zip, $zip_entry, "r")) {
            echo "Contenu du fichier :\n";
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            echo "$buf\n";

            zip_entry_close($zip_entry);
        }
        echo "\n";

    }

    zip_close($zip);

}
?>


La classe ZipArchive

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

Introduction

Un fichier d'archive, compressé Zip.

Synopsis de la classe

ZipArchive {
/* Propriétés */
int $status;
int $statusSys;
int $numFiles;
string $filename;
string $comment;
/* Méthodes */
bool addEmptyDir ( string $dirname )
bool addFile ( string $filename [, string $localname = NULL [, int $start = 0 [, int $length = 0 ]]] )
bool addFromString ( string $localname , string $contents )
bool addGlob ( string $pattern [, int $flags = 0 [, array $options = array() ]] )
bool addPattern ( string $pattern [, string $path = "." [, array $options = array() ]] )
bool close ( void )
bool deleteIndex ( int $index )
bool deleteName ( string $name )
bool extractTo ( string $destination [, mixed $entries ] )
string getArchiveComment ([ int $flags ] )
string getCommentIndex ( int $index [, int $flags ] )
string getCommentName ( string $name [, int $flags ] )
bool GetExternalAttributesIndex ( int $index , int &$opsys , int &$attr [, int $flags ] )
bool getExternalAttributesName ( string $name , int &$opsys , int &$attr [, int $flags ] )
string getFromIndex ( int $index [, int $length = 0 [, int $flags ]] )
string getFromName ( string $name [, int $length = 0 [, int $flags ]] )
string getNameIndex ( int $index [, int $flags ] )
string getStatusString ( void )
resource getStream ( string $name )
int locateName ( string $name [, int $flags ] )
mixed open ( string $filename [, int $flags ] )
bool renameIndex ( int $index , string $newname )
bool renameName ( string $name , string $newname )
bool setArchiveComment ( string $comment )
bool setCommentIndex ( int $index , string $comment )
bool setCommentName ( string $name , string $comment )
bool setCompressionIndex ( int $index , int $comp_method [, int $comp_flags = 0 ] )
bool setCompressionName ( string $name , int $comp_method [, int $comp_flags = 0 ] )
bool setExternalAttributesIndex ( int $index , int $opsys , int $attr [, int $flags ] )
bool setExternalAttributesName ( string $name , int $opsys , int $attr [, int $flags ] )
public bool setPassword ( string $password )
array statIndex ( int $index [, int $flags ] )
array statName ( string $name [, int $flags ] )
bool unchangeAll ( void )
bool unchangeArchive ( void )
bool unchangeIndex ( int $index )
bool unchangeName ( string $name )
}

Propriétés

status

Le statut de l'archive Zip

statusSys

Le statut système de l'archive Zip

numFiles

Le nombre de fichiers dans l'archive

filename

Le nom du fichier dans le système de fichiers

comment

Commentaire pour l'archive

Sommaire

  • ZipArchive::addEmptyDir — Ajoute un nouveau dossier à une archive Zip
  • ZipArchive::addFile — Ajoute un fichier à l'archive ZIP depuis le chemin fourni
  • ZipArchive::addFromString — Ajoute un fichier à une archive ZIP en utilisant son contenu
  • ZipArchive::addGlob — Ajoute des fichiers d'un dossier en utilisant un masque glob
  • ZipArchive::addPattern — Ajoute des fichiers d'un dossier en utilisant une expression régulière PCRE
  • ZipArchive::close — Ferme l'archive active
  • ZipArchive::deleteIndex — Efface une entrée de l'archive en utilisant son index
  • ZipArchive::deleteName — Efface une entrée dans l'archive en utilisant son nom
  • ZipArchive::extractTo — Extrait le contenu de l'archive
  • ZipArchive::getArchiveComment — Retourne le commentaire de l'archive ZIP
  • ZipArchive::getCommentIndex — Retourne le commentaire d'une entrée
  • ZipArchive::getCommentName — Retourne le commentaire d'une entrée en utilisant le nom de l'entrée
  • ZipArchive::getExternalAttributesIndex — Récupère les attributs étendus d'une entrée définie par son index
  • ZipArchive::getExternalAttributesName — Récupère les attributs étendus d'une entrée définie par son nom
  • ZipArchive::getFromIndex — Retourne le contenu d'une entrée en utilisant son index
  • ZipArchive::getFromName — Retourne le contenu de l'entrée en utilisant son nom
  • ZipArchive::getNameIndex — Retourne le nom d'une entrée en utilisant son index
  • ZipArchive::getStatusString — Retourne le message du statut de l'erreur, du système ou de zip
  • ZipArchive::getStream — Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule)
  • ZipArchive::locateName — Retourne l'index d'une entrée de l'archive
  • ZipArchive::open — Ouvre une archive ZIP
  • ZipArchive::renameIndex — Renomme une entrée définie par son index
  • ZipArchive::renameName — Renomme une entrée définie par son nom
  • ZipArchive::setArchiveComment — Définit le commentaire d'une archive ZIP
  • ZipArchive::setCommentIndex — Définit le commentaire d'une entrée définie par son index
  • ZipArchive::setCommentName — Définit le commentaire d'une entrée spécifiée par son nom
  • ZipArchive::setCompressionIndex — Set the compression method of an entry defined by its index
  • ZipArchive::setCompressionName — Set the compression method of an entry defined by its name
  • ZipArchive::setExternalAttributesIndex — Définit les attributs étendus d'une entrée définie par son index
  • ZipArchive::setExternalAttributesName — Définit les attributs étendus d'une entrée définie par son nom
  • ZipArchive::setPassword — Défini le mot de passe de l'archive active
  • ZipArchive::statIndex — Récupère les détails d'une entrée définie par son index
  • ZipArchive::statName — Récupère les détails de l'entrée définie par son nom
  • ZipArchive::unchangeAll — Annule toutes les modifications faites sur l'archive
  • ZipArchive::unchangeArchive — Annule toutes les modifications globales faites sur l'archive
  • ZipArchive::unchangeIndex — Annule toutes les modifications faites sur une entrée, définie par nom index
  • ZipArchive::unchangeName — Annule toutes les modifications faites sur une entrée, définie par son nom


Ajoute un nouveau dossier à une archive Zip

  • « ZipArchive
  • ZipArchive::addFile »
  • PHP Manual
  • ZipArchive
  • Ajoute un nouveau dossier à une archive Zip

ZipArchive::addEmptyDir

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.8.0)

ZipArchive::addEmptyDir — Ajoute un nouveau dossier à une archive Zip

Description

bool ZipArchive::addEmptyDir ( string $dirname )

Ajoute un dossier vide dans l'archive Zip.

Liste de paramètres

dirname

Le dossier à ajouter.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Crée un nouveau dossier dans l'archive

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    if($zip->addEmptyDir('newDirectory')) {
        echo 'Création d\'un nouveau dossier racine';
    } else {
        echo 'Impossible de créer un nouveau dossier';
    }
    $zip->close();
} else {
    echo 'Échec';
}
?>


Ajoute un fichier à l'archive ZIP depuis le chemin fourni

  • « ZipArchive::addEmptyDir
  • ZipArchive::addFromString »
  • PHP Manual
  • ZipArchive
  • Ajoute un fichier à l'archive ZIP depuis le chemin fourni

ZipArchive::addFile

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::addFile — Ajoute un fichier à l'archive ZIP depuis le chemin fourni

Description

bool ZipArchive::addFile ( string $filename [, string $localname = NULL [, int $start = 0 [, int $length = 0 ]]] )

Ajoute un fichier à une archive ZIP depuis le chemin fourni.

Note: For maximum portability, it is recommended to always use forward slashes (/) as directory separator in ZIP filenames.

Liste de paramètres

filename

Le chemin vers le fichier à ajouter

localname

Si fourni, ce sera le nom local dans l'archive ZIP qui écrasera le contenu du paramètre filename.

start

Ce paramètre n'est pas utilisé mais est nécessaire pour étendre la classe ZipArchive.

length

Ce paramètre n'est pas utilisé mais est nécessaire pour étendre la classe ZipArchive.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Cet exemple ouvre l'archive ZIP test.zip et ajoute le fichier /path/to/index.txt, en tant que newname.txt.

Exemple #1 Ouverture et ajout

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->addFile('/chemin/vers/index.txt', 'newname.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>

Notes

Note:

Lorsqu'un fichier est marqué comme étant à ajouter à l'archive, PHP va verrouiller ce fichier. Le verrou sera relaché uniquement lorsque l'objet ZipArchive sera fermé, soit via ZipArchive::close() soit via destruction de l'objet ZipArchive. Ceci peut vous empêcher de supprimer le fichier en cours d'ajout même après que le verrou soit relaché.


Ajoute un fichier à une archive ZIP en utilisant son contenu

  • « ZipArchive::addFile
  • ZipArchive::addGlob »
  • PHP Manual
  • ZipArchive
  • Ajoute un fichier à une archive ZIP en utilisant son contenu

ZipArchive::addFromString

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::addFromString — Ajoute un fichier à une archive ZIP en utilisant son contenu

Description

bool ZipArchive::addFromString ( string $localname , string $contents )

Ajoute un fichier à une archive ZIP en utilisant son contenu.

Note: For maximum portability, it is recommended to always use forward slashes (/) as directory separator in ZIP filenames.

Liste de paramètres

localname

Le nom de l'entrée à créer

contents

Le contenu à utiliser pour créer l'entrée. Ceci est utilisé dans un mode binaire sécurisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout d'une entrée dans une nouvelle archive

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'contenu du fichier ici');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>

Exemple #2 Ajout d'un fichier dans un dossier d'une archive

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->addFromString('dir/test.txt', 'contenu du fichier ici');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>


Ajoute des fichiers d'un dossier en utilisant un masque glob

  • « ZipArchive::addFromString
  • ZipArchive::addPattern »
  • PHP Manual
  • ZipArchive
  • Ajoute des fichiers d'un dossier en utilisant un masque glob

ZipArchive::addGlob

(PHP 5 >= 5.3.0, PHP 7, PECL zip >= 1.9.0)

ZipArchive::addGlob — Ajoute des fichiers d'un dossier en utilisant un masque glob

Description

bool ZipArchive::addGlob ( string $pattern [, int $flags = 0 [, array $options = array() ]] )

Ajoute des fichiers d'un dossier qui correspondent à un masque glob pattern.

Note: For maximum portability, it is recommended to always use forward slashes (/) as directory separator in ZIP filenames.

Liste de paramètres

pattern

Un masque glob().

flags

Un masque d'octets de drapeaux glob().

options

Un tableau associatif d'options. Les options disponibles sont :

  • "add_path"

    Préfixe à ajouter lors de la translation du chemin local du fichier dans l'archive. Il sera appliqué après les opérations de suppression définies par l'option "remove_path" ou l'option "remove_all_path".

  • "remove_path"

    Préfixe à supprimer des chemins des fichiers avant de les ajouter à l'archive.

  • "remove_all_path"

    TRUE pour utiliser le nom du fichier uniquement, et ajouter les fichiers directement à la racine de l'archive.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ZipArchive::addGlob()

Ajoute tous les scripts PHP et les fichiers textes du dossier courant.

<?php
$zip = new ZipArchive();
$ret = $zip->open('application.zip', ZipArchive::OVERWRITE);
if ($ret !== TRUE) {
    printf("Echec lors de l'ouverture de l'archive %d", $ret);
} else {
    $options = array('add_path' => 'sources/', 'remove_all_path' => TRUE);
    $zip->addGlob('*.{php,txt}', GLOB_BRACE, $options);
    $zip->close();
}
?>

Voir aussi

  • ZipArchive::addFile() - Ajoute un fichier à l'archive ZIP depuis le chemin fourni
  • ZipArchive::addPattern() - Ajoute des fichiers d'un dossier en utilisant une expression régulière PCRE


Ajoute des fichiers d'un dossier en utilisant une expression régulière PCRE

  • « ZipArchive::addGlob
  • ZipArchive::close »
  • PHP Manual
  • ZipArchive
  • Ajoute des fichiers d'un dossier en utilisant une expression régulière PCRE

ZipArchive::addPattern

(PHP 5 >= 5.3.0, PHP 7, PECL zip >= 1.9.0)

ZipArchive::addPattern — Ajoute des fichiers d'un dossier en utilisant une expression régulière PCRE

Description

bool ZipArchive::addPattern ( string $pattern [, string $path = "." [, array $options = array() ]] )

Ajoute des fichiers depuis un dossier qui correspondent à l'expression régulière pattern. L'opération n'est pas récursive. L'expression ne sera exécutée que sur les noms des fichiers.

Liste de paramètres

pattern

Une expression régulière PCRE.

path

Le dossier à analyser. Par défaut, ce sera le dossier courant.

options

Un tableau associatif d'options acceptés par la méthode ZipArchive::addGlob().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ZipArchive::addPattern()

Ajoute tous les scripts PHP et les fichiers textes du dossier courant.

<?php
$zip = new ZipArchive();
$ret = $zip->open('application.zip', ZipArchive::OVERWRITE);
if ($ret !== TRUE) {
    printf("Echec lors de l'ouverture de l'archive %d", $ret);
} else {
    $directory = realpath('.');
    $options = array('add_path' => 'sources/', 'remove_path' => $directory);
    $zip->addPattern('/\.(?:php|txt)$/', $directory, $options);
    $zip->close();
}
?>

Voir aussi

  • ZipArchive::addFile() - Ajoute un fichier à l'archive ZIP depuis le chemin fourni
  • ZipArchive::addGlob() - Ajoute des fichiers d'un dossier en utilisant un masque glob


Ferme l'archive active

  • « ZipArchive::addPattern
  • ZipArchive::deleteIndex »
  • PHP Manual
  • ZipArchive
  • Ferme l'archive active

ZipArchive::close

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::close — Ferme l'archive active

Description

bool ZipArchive::close ( void )

Ferme une archive ouverte ou nouvellement créée et sauvegarde les modifications. Cette méthode est appelée automatiquement à la fin du script.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Efface une entrée de l'archive en utilisant son index

  • « ZipArchive::close
  • ZipArchive::deleteName »
  • PHP Manual
  • ZipArchive
  • Efface une entrée de l'archive en utilisant son index

ZipArchive::deleteIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::deleteIndex — Efface une entrée de l'archive en utilisant son index

Description

bool ZipArchive::deleteIndex ( int $index )

Efface une entrée de l'archive en utilisant son index.

Liste de paramètres

index

Index de l'entrée à effacer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Efface le fichier depuis l'archive en utilisant son index

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->deleteIndex(2);
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>


Efface une entrée dans l'archive en utilisant son nom

  • « ZipArchive::deleteIndex
  • ZipArchive::extractTo »
  • PHP Manual
  • ZipArchive
  • Efface une entrée dans l'archive en utilisant son nom

ZipArchive::deleteName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::deleteName — Efface une entrée dans l'archive en utilisant son nom

Description

bool ZipArchive::deleteName ( string $name )

Efface une entrée dans l'archive en utilisant son nom.

Liste de paramètres

name

Nom de l'entrée à effacer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Efface un fichier et un dossier de l'archive en utilisant les noms

<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
    $zip->deleteName('testfromfile.php');
    $zip->deleteName('testDir/');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>


Extrait le contenu de l'archive

  • « ZipArchive::deleteName
  • ZipArchive::getArchiveComment »
  • PHP Manual
  • ZipArchive
  • Extrait le contenu de l'archive

ZipArchive::extractTo

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::extractTo — Extrait le contenu de l'archive

Description

bool ZipArchive::extractTo ( string $destination [, mixed $entries ] )

Extrait l'archive complète ou les fichiers fournis vers un chemin spécifié.

Liste de paramètres

destination

Endroit où l'on doit extraire les fichiers

entries

Les entrées à extraire. Ce peut être soit le nom d'une entrée ou un tableau de noms

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Extrait toutes les entrées

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->extractTo('/mon/dossier/destination/');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>

Exemple #2 Extrait deux entrées

<?php
$zip = new ZipArchive;
$res = $zip->open('test_im.zip');
if ($res === TRUE) {
    $zip->extractTo('/mon/dossier/destination/', array('pear_item.gif', 'testfromfile.php'));
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>


Retourne le commentaire de l'archive ZIP

  • « ZipArchive::extractTo
  • ZipArchive::getCommentIndex »
  • PHP Manual
  • ZipArchive
  • Retourne le commentaire de l'archive ZIP

ZipArchive::getArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::getArchiveComment — Retourne le commentaire de l'archive ZIP

Description

string ZipArchive::getArchiveComment ([ int $flags ] )

Retourne le commentaire de l'archive ZIP.

Liste de paramètres

flags

Si ce paramètre est défini à ZipArchive::FL_UNCHANGED, le commentaire original non modifié sera retourné.

Valeurs de retour

Retourne le commentaire de l'archive ZIP ou FALSE si une erreur survient.

Exemples

Exemple #1 Extrait le commentaire de l'archive

<?php
$zip = new ZipArchive;
$res = $zip->open('test_avec_commentaire.zip');
if ($res === TRUE) {
    var_dump($zip->getArchiveComment());
    /* Ou en utilisant la propriété de l'archive */
    var_dump($zip->comment);
} else {
    echo 'échec, code:' . $res;
}
?>


Retourne le commentaire d'une entrée

  • « ZipArchive::getArchiveComment
  • ZipArchive::getCommentName »
  • PHP Manual
  • ZipArchive
  • Retourne le commentaire d'une entrée

ZipArchive::getCommentIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::getCommentIndex — Retourne le commentaire d'une entrée

Description

string ZipArchive::getCommentIndex ( int $index [, int $flags ] )

Retourne le commentaire d'une entrée en utilisant l'index de l'entrée.

Liste de paramètres

index

Index de l'entrée

flags

Si ce flag est défini à ZipArchive::FL_UNCHANGED, le commentaire original est retourné.

Valeurs de retour

Retourne le commentaire en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Affiche le commentaire d'une entrée

<?php
$zip = new ZipArchive;
$res = $zip->open('test1.zip');
if ($res === TRUE) {
    var_dump($zip->getCommentIndex(1));
} else {
    echo 'échec, code:' . $res;
}
?>


Retourne le commentaire d'une entrée en utilisant le nom de l'entrée

  • « ZipArchive::getCommentIndex
  • ZipArchive::getExternalAttributesIndex »
  • PHP Manual
  • ZipArchive
  • Retourne le commentaire d'une entrée en utilisant le nom de l'entrée

ZipArchive::getCommentName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::getCommentName — Retourne le commentaire d'une entrée en utilisant le nom de l'entrée

Description

string ZipArchive::getCommentName ( string $name [, int $flags ] )

Retourne le commentaire d'une entrée en utilisant le nom de l'entrée.

Liste de paramètres

name

Nom de l'entrée

flags

Si ce flag est défini à ZipArchive::FL_UNCHANGED, le commentaire original est retourné.

Valeurs de retour

Retourne le commentaire en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Affiche le commentaire d'une entrée

<?php
$zip = new ZipArchive;
$res = $zip->open('test1.zip');
if ($res === TRUE) {
    var_dump($zip->getCommentName('test/entry1.txt'));
} else {
    echo 'échec, code:' . $res;
}
?>


Récupère les attributs étendus d'une entrée définie par son index

  • « ZipArchive::getCommentName
  • ZipArchive::getExternalAttributesName »
  • PHP Manual
  • ZipArchive
  • Récupère les attributs étendus d'une entrée définie par son index

ZipArchive::getExternalAttributesIndex

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesIndex — Récupère les attributs étendus d'une entrée définie par son index

Description

bool ZipArchive::GetExternalAttributesIndex ( int $index , int &$opsys , int &$attr [, int $flags ] )

Récupére les attributs étendus d'une entrée définie par son index.

Liste de paramètres

index

Index de l'entrée.

opsys

En cas de succès, récupère le code du système d'exploitation défini par une des constantes ZipArchive::OPSYS_.

attr

En cas de succès, récupère les attributs étendus, la valeur dépend du système d'exploitation.

flags

Si cet indicateur est positionné à ZipArchive::FL_UNCHANGED, les valeurs originales sont retournées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Cet exemple extrait toutes les entrées de l'archive ZIP test.zip et positionne les droits Unix à partir des attributs étendus.

Exemple #1 Extrait les entrées et leurs droits Unix

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip') === TRUE) {
    for ($idx=0 ; $s = $zip->statIndex($idx) ; $idx++) {
        if ($zip->extractTo('.', $s['name'])) {
            if ($zip->getExternalAttributesIndex($idx, $opsys, $attr)
                && $opsys==ZipArchive::OPSYS_UNIX) {
               chmod($s['name'], ($attr >> 16) & 0777);
            }
        }
    }
    $zip->close();
    echo "Ok\n";
} else {
    echo "KO\n";
}
?>


Récupère les attributs étendus d'une entrée définie par son nom

  • « ZipArchive::getExternalAttributesIndex
  • ZipArchive::getFromIndex »
  • PHP Manual
  • ZipArchive
  • Récupère les attributs étendus d'une entrée définie par son nom

ZipArchive::getExternalAttributesName

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesName — Récupère les attributs étendus d'une entrée définie par son nom

Description

bool ZipArchive::getExternalAttributesName ( string $name , int &$opsys , int &$attr [, int $flags ] )

Récupère les attributs étendus d'une entrée définie par son nom.

Liste de paramètres

name

Nom de l'entrée.

opsys

En cas de succès, récupère le code du système d'exploitation défini par une des constantes ZipArchive::OPSYS_.

attr

En cas de succès, récupère les attributs étendus, la valeur dépend du système d'exploitation.

flags

Si cet indicateur est positionné à ZipArchive::FL_UNCHANGED, les valeurs originales sont retournées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne le contenu d'une entrée en utilisant son index

  • « ZipArchive::getExternalAttributesName
  • ZipArchive::getFromName »
  • PHP Manual
  • ZipArchive
  • Retourne le contenu d'une entrée en utilisant son index

ZipArchive::getFromIndex

(No version information available, might only be in Git)

ZipArchive::getFromIndex — Retourne le contenu d'une entrée en utilisant son index

Description

string ZipArchive::getFromIndex ( int $index [, int $length = 0 [, int $flags ]] )

Retourne le contenu d'une entrée en utilisant son index.

Liste de paramètres

index

Index de l'entrée

length

La longueur à lire depuis l'entrée. Si vaut 0, alors toute l'entrée sera lue.

flags

Le flag à utiliser pour ouvrir l'archive.

  • ZipArchive::FL_UNCHANGED

  • ZipArchive::FL_COMPRESSED

Valeurs de retour

Retourne le contenu de l'entrée en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupère le contenu du fichier

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    echo $zip->getFromIndex(2);
    $zip->close();
} else {
    echo 'échec';
}
?>

Voir aussi

  • ZipArchive::getFromName() - Retourne le contenu de l'entrée en utilisant son nom


Retourne le contenu de l'entrée en utilisant son nom

  • « ZipArchive::getFromIndex
  • ZipArchive::getNameIndex »
  • PHP Manual
  • ZipArchive
  • Retourne le contenu de l'entrée en utilisant son nom

ZipArchive::getFromName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::getFromName — Retourne le contenu de l'entrée en utilisant son nom

Description

string ZipArchive::getFromName ( string $name [, int $length = 0 [, int $flags ]] )

Retourne le contenu de l'entrée en utilisant son nom.

Liste de paramètres

name

Nom de l'entrée

length

La longueur à lire depuis l'entrée. Si vaut 0, alors toute l'entrée sera lue.

flags

Le flag à utiliser pour trouver l'entrée. Les constantes suivantes peuvent être utilisées.

  • ZipArchive::FL_UNCHANGED

  • ZipArchive::FL_COMPRESSED

  • ZipArchive::FL_NOCASE

Valeurs de retour

Retourne le contenu de l'entrée en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupère le contenu d'un fichier

<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
    echo $zip->getFromName('testfromfile.php');
    $zip->close();
} else {
    echo 'échec';
}
?>

Exemple #2 Convertit une image depuis une entrée ZIP

<?php
$z = new ZipArchive();
if ($z->open(dirname(__FILE__) . '/test_im.zip')) {
    $im_string = $z->getFromName("pear_item.gif");
    $im = imagecreatefromstring($im_string);
    imagepng($im, 'b.png');
}
?>

Voir aussi

  • ZipArchive::getFromIndex() - Retourne le contenu d'une entrée en utilisant son index


Retourne le nom d'une entrée en utilisant son index

  • « ZipArchive::getFromName
  • ZipArchive::getStatusString »
  • PHP Manual
  • ZipArchive
  • Retourne le nom d'une entrée en utilisant son index

ZipArchive::getNameIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::getNameIndex — Retourne le nom d'une entrée en utilisant son index

Description

string ZipArchive::getNameIndex ( int $index [, int $flags ] )

Retourne le nom d'une entrée en utilisant son index.

Liste de paramètres

index

Index de l'entrée

flags

Si ce paramètre est défini à ZipArchive::FL_UNCHANGED, le nom original non modifié sera retourné.

Valeurs de retour

Retourne le nom en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ZipArchive::getNameIndex()

<?php
if ($zip->open('test.zip') == TRUE) {
 for ($i = 0; $i < $zip->numFiles; $i++) {
     $filename = $zip->getNameIndex($i);
     // ...
 }
}
?>


Retourne le message du statut de l'erreur, du système ou de zip

  • « ZipArchive::getNameIndex
  • ZipArchive::getStream »
  • PHP Manual
  • ZipArchive
  • Retourne le message du statut de l'erreur, du système ou de zip

ZipArchive::getStatusString

(PHP 5 >= 5.2.7, PHP 7)

ZipArchive::getStatusString — Retourne le message du statut de l'erreur, du système ou de zip

Description

string ZipArchive::getStatusString ( void )

Retourne le message du statut de l'erreur, du système ou de zip.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant le message du statut en cas de succès ou FALSE si une erreur survient.


Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule)

  • « ZipArchive::getStatusString
  • ZipArchive::locateName »
  • PHP Manual
  • ZipArchive
  • Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule)

ZipArchive::getStream

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::getStream — Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule)

Description

resource ZipArchive::getStream ( string $name )

Récupère un gestionnaire de fichier pour l'entrée définie par son nom. Actuellement, cette fonction ne supporte que les opérations de lecture.

Liste de paramètres

name

Le nom de l'entrée à utiliser

Valeurs de retour

Retourne un pointeur de fichier (ressource) en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupère le contenu de l'entrée ZIP

<?php
$contents = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
    $fp = $z->getStream('test');
    if(!$fp) exit("échec\n");

    while (!feof($fp)) {
        $contents .= fread($fp, 2);
    }

    fclose($fp);
    file_put_contents('t',$contents);
    echo "fait.\n";
}
?>

Exemple #2 Récupère une entrée Zip avec la fonction fopen() et le gestionnaire de flux ZIP

<?php
$contents = '';
$fp = fopen('zip://' . dirname(__FILE__) . '/test.zip#test', 'r');
if (!$fp) {
    exit("impossible d'ouvrir\n");
}
while (!feof($fp)) {
    $contents .= fread($fp, 2);
}
echo "$contents\n";
fclose($fp);
echo "fait.\n";
?>

Exemple #3 Gestionnaire de flux et image, peut être utilisé également avec les fonctions XML

<?php
$im = imagecreatefromgif('zip://' . dirname(__FILE__) . '/test_im.zip#pear_item.gif');
imagepng($im, 'a.png');
?>


Retourne l'index d'une entrée de l'archive

  • « ZipArchive::getStream
  • ZipArchive::open »
  • PHP Manual
  • ZipArchive
  • Retourne l'index d'une entrée de l'archive

ZipArchive::locateName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::locateName — Retourne l'index d'une entrée de l'archive

Description

int ZipArchive::locateName ( string $name [, int $flags ] )

Localise une entrée en utilisant son nom.

Liste de paramètres

name

Le nom de l'entrée à chercher

flags

La fonction retourne l'index du fichier dans l'archive. Le flag est spécifié par les valeurs suivantes ou par 0 pour aucun d'entre eux.

  • ZipArchive::FL_NOCASE

  • ZipArchive::FL_NODIR

Valeurs de retour

Retourne l'index de l'entrée en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Crée une archive et l'utilise avec ZipArchive::locateName()

<?php
$file = 'testlocate.zip';

$zip = new ZipArchive;
if ($zip->open($file, ZipArchive::CREATE) !== TRUE) {
    exit('failed');
}

$zip->addFromString('entry1.txt', 'entry #1');
$zip->addFromString('entry2.txt', 'entry #2');
$zip->addFromString('dir/entry2d.txt', 'entry #2');

if (!$zip->status == ZipArchive::ER_OK) {
    echo "échec lors de l'écriture ZIP\n";
}
$zip->close();

if ($zip->open($file) === TRUE) {
    exit('échec');
}

echo $zip->locateName('entry1.txt') . "\n";
echo $zip->locateName('eNtry2.txt') . "\n";
echo $zip->locateName('eNtry2.txt', ZipArchive::FL_NOCASE) . "\n";
echo $zip->locateName('enTRy2d.txt', ZipArchive::FL_NOCASE|ZIPARCHIVE::FL_NODIR) . "\n";
$zip->close();

?>

L'exemple ci-dessus va afficher :

0

1
2


Ouvre une archive ZIP

  • « ZipArchive::locateName
  • ZipArchive::renameIndex »
  • PHP Manual
  • ZipArchive
  • Ouvre une archive ZIP

ZipArchive::open

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::open — Ouvre une archive ZIP

Description

mixed ZipArchive::open ( string $filename [, int $flags ] )

Ouvre une nouvelle archive ZIP pour lecture, écriture et modification.

Liste de paramètres

filename

Le nom du fichier ZIP à ouvrir.

flags

Le mode à utiliser pour ouvrir l'archive.

  • ZipArchive::OVERWRITE

  • ZipArchive::CREATE

  • ZipArchive::EXCL

  • ZipArchive::CHECKCONS

Valeurs de retour

Error codes

Retourne TRUE en cas de succès ou sinon, le code erreur

  • ZipArchive::ER_EXISTS

    Le fichier existe déjà.

  • ZipArchive::ER_INCONS

    L'archive ZIP est inconsistante.

  • ZipArchive::ER_INVAL

    Argument invalide.

  • ZipArchive::ER_MEMORY

    Erreur de mémoire.

  • ZipArchive::ER_NOENT

    Le fichier n'existe pas.

  • ZipArchive::ER_NOZIP

    N'est pas une archive ZIP.

  • ZipArchive::ER_OPEN

    Impossible d'ouvrir le fichier.

  • ZipArchive::ER_READ

    Erreur lors de la lecture.

  • ZipArchive::ER_SEEK

    Erreur de position.

Exemples

Exemple #1 Ouverture et extraction

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    echo 'ok';
    $zip->extractTo('test');
    $zip->close();
} else {
    echo 'échec, code:' . $res;
}
?>

Exemple #2 Création d'une archive

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'file content goes here');
    $zip->addFile('data.txt', 'nom_de_l_entree.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>


Renomme une entrée définie par son index

  • « ZipArchive::open
  • ZipArchive::renameName »
  • PHP Manual
  • ZipArchive
  • Renomme une entrée définie par son index

ZipArchive::renameIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::renameIndex — Renomme une entrée définie par son index

Description

bool ZipArchive::renameIndex ( int $index , string $newname )

Renomme une entrée définie par son index.

Liste de paramètres

index

Index de l'entrée à renommer

newname

Nouveau nom

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Renommer une entrée

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->renameIndex(2,'newname.txt');
    $zip->close();
} else {
    echo 'échec, code:' . $res;
}
?>


Renomme une entrée définie par son nom

  • « ZipArchive::renameIndex
  • ZipArchive::setArchiveComment »
  • PHP Manual
  • ZipArchive
  • Renomme une entrée définie par son nom

ZipArchive::renameName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::renameName — Renomme une entrée définie par son nom

Description

bool ZipArchive::renameName ( string $name , string $newname )

Renomme une entrée définie par son nom.

Liste de paramètres

name

Nom de l'entrée à renommer

newname

Nouveau nom

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Renommer une entrée

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->renameName('currentname.txt','newname.txt');
    $zip->close();
} else {
    echo 'échec, code:' . $res;
}
?>


Définit le commentaire d'une archive ZIP

  • « ZipArchive::renameName
  • ZipArchive::setCommentIndex »
  • PHP Manual
  • ZipArchive
  • Définit le commentaire d'une archive ZIP

ZipArchive::setArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::setArchiveComment — Définit le commentaire d'une archive ZIP

Description

bool ZipArchive::setArchiveComment ( string $comment )

Définit le commentaire d'une archive ZIP.

Liste de paramètres

comment

Le contenu du commentaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'une archive et définition d'un commentaire

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'contenu du fichier ici');
    $zip->setArchiveComment('commentaire de l\'archive');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>


Définit le commentaire d'une entrée définie par son index

  • « ZipArchive::setArchiveComment
  • ZipArchive::setCommentName »
  • PHP Manual
  • ZipArchive
  • Définit le commentaire d'une entrée définie par son index

ZipArchive::setCommentIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::setCommentIndex — Définit le commentaire d'une entrée définie par son index

Description

bool ZipArchive::setCommentIndex ( int $index , string $comment )

Définit le commentaire d'une entrée définie par son index.

Liste de paramètres

index

Index de l'entrée

comment

Le contenu du commentaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ouvre une archive et définit un commentaire pour une entrée

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->setCommentIndex(2, 'commentaire de l\'entrée');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>


Définit le commentaire d'une entrée spécifiée par son nom

  • « ZipArchive::setCommentIndex
  • ZipArchive::setCompressionIndex »
  • PHP Manual
  • ZipArchive
  • Définit le commentaire d'une entrée spécifiée par son nom

ZipArchive::setCommentName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::setCommentName — Définit le commentaire d'une entrée spécifiée par son nom

Description

bool ZipArchive::setCommentName ( string $name , string $comment )

Définit le commentaire pour une entrée définie par son nom.

Liste de paramètres

name

Nom de l'entrée

comment

Le contenu du commentaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ouvre une archive et définit le commentaire pour une entrée

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->setCommentName('entry1.txt', 'commentaire de l\'entrée');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>


Set the compression method of an entry defined by its index

  • « ZipArchive::setCommentName
  • ZipArchive::setCompressionName »
  • PHP Manual
  • ZipArchive
  • Set the compression method of an entry defined by its index

ZipArchive::setCompressionIndex

(PHP 7, PECL zip >= 1.13.0)

ZipArchive::setCompressionIndex — Set the compression method of an entry defined by its index

Description

bool ZipArchive::setCompressionIndex ( int $index , int $comp_method [, int $comp_flags = 0 ] )

Set the compression method of an entry defined by its index.

Liste de paramètres

index

Index of the entry.

comp_method

The compression method. Either
ZipArchive::CM_DEFAULT,
ZipArchive::CM_STORE or
ZipArchive::CM_DEFLATE.

comp_flags

Compression flags. Currently unused.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Add files with different compression methods to an archive

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('foo', 'Some text');
    $zip->addFromString('bar', 'Some other text');
    $zip->setCompressionIndex(0, ZipArchive::CM_STORE);
    $zip->setCompressionIndex(1, ZipArchive::CM_DEFLATE);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>


Set the compression method of an entry defined by its name

  • « ZipArchive::setCompressionIndex
  • ZipArchive::setExternalAttributesIndex »
  • PHP Manual
  • ZipArchive
  • Set the compression method of an entry defined by its name

ZipArchive::setCompressionName

(PHP 7, PECL zip >= 1.13.0)

ZipArchive::setCompressionName — Set the compression method of an entry defined by its name

Description

bool ZipArchive::setCompressionName ( string $name , int $comp_method [, int $comp_flags = 0 ] )

Set the compression method of an entry defined by its name.

Liste de paramètres

name

Name of the entry.

comp_method

The compression method. Either
ZipArchive::CM_DEFAULT,
ZipArchive::CM_STORE or
ZipArchive::CM_DEFLATE.

comp_flags

Compression flags. Currently unused.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Add files with different compression methods to an archive

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('foo', 'Some text');
    $zip->addFromString('bar', 'Some other text');
    $zip->setCompressionName('foo', ZipArchive::CM_STORE);
    $zip->setCompressionName('bar', ZipArchive::CM_DEFLATE);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>


Définit les attributs étendus d'une entrée définie par son index

  • « ZipArchive::setCompressionName
  • ZipArchive::setExternalAttributesName »
  • PHP Manual
  • ZipArchive
  • Définit les attributs étendus d'une entrée définie par son index

ZipArchive::setExternalAttributesIndex

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesIndex — Définit les attributs étendus d'une entrée définie par son index

Description

bool ZipArchive::setExternalAttributesIndex ( int $index , int $opsys , int $attr [, int $flags ] )

Définit les attributs étendus d'une entrée définie par son index.

Liste de paramètres

index

Index de l'entrée.

opsys

Code du système d'exploitation, définie par une des constantes ZipArchive::OPSYS_.

attr

Attributs étendus, la valeur dépend du système d'exploitation.

flags

Indicateurs optionnels, valeur non utilisée actuellement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Définit les attributs étendus d'une entrée définie par son nom

  • « ZipArchive::setExternalAttributesIndex
  • ZipArchive::setPassword »
  • PHP Manual
  • ZipArchive
  • Définit les attributs étendus d'une entrée définie par son nom

ZipArchive::setExternalAttributesName

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesName — Définit les attributs étendus d'une entrée définie par son nom

Description

bool ZipArchive::setExternalAttributesName ( string $name , int $opsys , int $attr [, int $flags ] )

Définit les attributs étendus d'une entrée définie par son nom.

Liste de paramètres

name

Nom de l'entrée.

opsys

Code du système d'exploitation, définie par une des constantes ZipArchive::OPSYS_.

attr

Attributs étendus, la valeur dépend du système d'exploitation.

flags

Indicateurs optionnels, valeur non utilisée actuellement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Cet example crée une archive ZIP test.zip et ajoute le fichier test.txt ainsi que ses permissions Unix dans les attributs étendus.

Exemple #1 Archive un fichier avec ses droits Unix

<?php
$zip = new ZipArchive();
$stat = stat($filename='test.txt');
if (is_array($stat) && $zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
    $zip->addFile($filename);
    $zip->setExternalAttributesName($filename, ZipArchive::OPSYS_UNIX, $stat['mode'] << 16);
    $zip->close();
    echo "Ok\n";
} else {
    echo "KO\n";
}
?>


Défini le mot de passe de l'archive active

  • « ZipArchive::setExternalAttributesName
  • ZipArchive::statIndex »
  • PHP Manual
  • ZipArchive
  • Défini le mot de passe de l'archive active

ZipArchive::setPassword

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::setPassword — Défini le mot de passe de l'archive active

Description

public bool ZipArchive::setPassword ( string $password )

Défini le mot de passe de l'archive active.

Liste de paramètres

password

Le mot de passe à utiliser sur l'archive.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Cette fonction ne définit que le mot de passe à utiliser pour décompression l'archive ; il ne rend pas une archive ZipArchive non-protégéé par mot de passe en une archive ZipArchive protégée par mot de passe.


Récupère les détails d'une entrée définie par son index

  • « ZipArchive::setPassword
  • ZipArchive::statName »
  • PHP Manual
  • ZipArchive
  • Récupère les détails d'une entrée définie par son index

ZipArchive::statIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::statIndex — Récupère les détails d'une entrée définie par son index

Description

array ZipArchive::statIndex ( int $index [, int $flags ] )

Cette fonction obtient des informations d'une entrée définie par son index.

Liste de paramètres

index

Index de l'entrée

flags

ZipArchive::FL_UNCHANGED permet d'obtenir les informations du fichier original de l'archive, ignorant toutes les modifications effectuées

Valeurs de retour

Retourne un tableau contenant les détails de l'entrée ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupère les informations d'une entrée

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    print_r($zip->statIndex(3));
    $zip->close();
} else {
    echo 'échec, code:' . $res;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)


Récupère les détails de l'entrée définie par son nom

  • « ZipArchive::statIndex
  • ZipArchive::unchangeAll »
  • PHP Manual
  • ZipArchive
  • Récupère les détails de l'entrée définie par son nom

ZipArchive::statName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::statName — Récupère les détails de l'entrée définie par son nom

Description

array ZipArchive::statName ( string $name [, int $flags ] )

Cette fonction obtient des informations sur l'entrée définie par son nom.

Liste de paramètres

name

Nom de l'entrée

flags

Le flag spécifie comment la recherche sur le nom doit s'effectuer. ZipArchive::FL_UNCHANGED doit être utilisé pour récupérer les informations sur le fichier original de l'archive, ignorant toutes les modifications effectuées.

  • ZipArchive::FL_NOCASE

  • ZipArchive::FL_NODIR

  • ZipArchive::FL_UNCHANGED

Valeurs de retour

Retourne un tableau contenant les détails de l'entrée, ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupère les informations d'une entrée

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    print_r($zip->statName('foobar/baz'));
    $zip->close();
} else {
    echo 'échec, code:' . $res;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)


Annule toutes les modifications faites sur l'archive

  • « ZipArchive::statName
  • ZipArchive::unchangeArchive »
  • PHP Manual
  • ZipArchive
  • Annule toutes les modifications faites sur l'archive

ZipArchive::unchangeAll

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::unchangeAll — Annule toutes les modifications faites sur l'archive

Description

bool ZipArchive::unchangeAll ( void )

Annule toutes les modifications faites sur l'archive.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Annule toutes les modifications globales faites sur l'archive

  • « ZipArchive::unchangeAll
  • ZipArchive::unchangeIndex »
  • PHP Manual
  • ZipArchive
  • Annule toutes les modifications globales faites sur l'archive

ZipArchive::unchangeArchive

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::unchangeArchive — Annule toutes les modifications globales faites sur l'archive

Description

bool ZipArchive::unchangeArchive ( void )

Annule toutes les modifications faites sur l'archive. Actuellement, ceci annule uniquement les modifications effectuées sur les commentaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Annule toutes les modifications faites sur une entrée, définie par nom index

  • « ZipArchive::unchangeArchive
  • ZipArchive::unchangeName »
  • PHP Manual
  • ZipArchive
  • Annule toutes les modifications faites sur une entrée, définie par nom index

ZipArchive::unchangeIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::unchangeIndex — Annule toutes les modifications faites sur une entrée, définie par nom index

Description

bool ZipArchive::unchangeIndex ( int $index )

Annule toutes les modifications faites sur une entrée, définie par son index.

Liste de paramètres

index

Index de l'entrée

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Annule toutes les modifications faites sur une entrée, définie par son nom

  • « ZipArchive::unchangeIndex
  • Fonctions Zip »
  • PHP Manual
  • ZipArchive
  • Annule toutes les modifications faites sur une entrée, définie par son nom

ZipArchive::unchangeName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::unchangeName — Annule toutes les modifications faites sur une entrée, définie par son nom

Description

bool ZipArchive::unchangeName ( string $name )

Annule toutes les modifications faites sur une entrée, définie par son nom.

Liste de paramètres

name

Nom de l'entrée

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Fonctions Zip

Sommaire

  • zip_close — Ferme une archive Zip
  • zip_entry_close — Ferme un dossier d'archive
  • zip_entry_compressedsize — Lit la taille compressée d'un dossier d'archives
  • zip_entry_compressionmethod — Lit la méthode de compression utilisée sur un dossier d'archives
  • zip_entry_filesize — Lit la taille décompressée d'un dossier d'archives
  • zip_entry_name — Lit le nom d'un dossier d'archives
  • zip_entry_open — Ouvre un dossier d'archives en lecture
  • zip_entry_read — Lit le contenu d'un fichier dans un dossier
  • zip_open — Ouvre une archive ZIP
  • zip_read — Lit la prochaine entrée dans une archive ZIP


Ferme une archive Zip

  • « Fonctions Zip
  • zip_entry_close »
  • PHP Manual
  • Fonctions Zip
  • Ferme une archive Zip

zip_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_close — Ferme une archive Zip

Description

void zip_close ( resource $zip )

zip_close() ferme l'archive ZIP donnée.

Liste de paramètres

zip

Un fichier ZIP précédemment ouvert avec la fonction zip_open().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • zip_open() - Ouvre une archive ZIP
  • zip_read() - Lit la prochaine entrée dans une archive ZIP


Ferme un dossier d'archive

  • « zip_close
  • zip_entry_compressedsize »
  • PHP Manual
  • Fonctions Zip
  • Ferme un dossier d'archive

zip_entry_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_close — Ferme un dossier d'archive

Description

bool zip_entry_close ( resource $zip_entry )

zip_entry_close() ferme un dossier d'archive donné.

Liste de paramètres

zip_entry

Un dossier d'archive précédemment ouvert avec la fonction zip_entry_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • zip_entry_open() - Ouvre un dossier d'archives en lecture
  • zip_entry_read() - Lit le contenu d'un fichier dans un dossier


Lit la taille compressée d'un dossier d'archives

  • « zip_entry_close
  • zip_entry_compressionmethod »
  • PHP Manual
  • Fonctions Zip
  • Lit la taille compressée d'un dossier d'archives

zip_entry_compressedsize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_compressedsize — Lit la taille compressée d'un dossier d'archives

Description

int zip_entry_compressedsize ( resource $zip_entry )

zip_entry_compressedsize() retourne la taille compressée d'un dossier d'archives donné.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

Valeurs de retour

La taille compressée.

Voir aussi

  • zip_open() - Ouvre une archive ZIP
  • zip_read() - Lit la prochaine entrée dans une archive ZIP


Lit la méthode de compression utilisée sur un dossier d'archives

  • « zip_entry_compressedsize
  • zip_entry_filesize »
  • PHP Manual
  • Fonctions Zip
  • Lit la méthode de compression utilisée sur un dossier d'archives

zip_entry_compressionmethod

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_compressionmethod — Lit la méthode de compression utilisée sur un dossier d'archives

Description

string zip_entry_compressionmethod ( resource $zip_entry )

zip_entry_compressionmethod() retourne la méthode de compression utilisée sur le dossier d'archives spécifié par zip_entry.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

Valeurs de retour

La méthode de compression.

Voir aussi

  • zip_open() - Ouvre une archive ZIP
  • zip_read() - Lit la prochaine entrée dans une archive ZIP


Lit la taille décompressée d'un dossier d'archives

  • « zip_entry_compressionmethod
  • zip_entry_name »
  • PHP Manual
  • Fonctions Zip
  • Lit la taille décompressée d'un dossier d'archives

zip_entry_filesize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_filesize — Lit la taille décompressée d'un dossier d'archives

Description

int zip_entry_filesize ( resource $zip_entry )

zip_entry_filesize() retourne la taille décompressée d'un dossier d'archives donné.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

Valeurs de retour

La taille décompressée du dossier d'archives.

Voir aussi

  • zip_open() - Ouvre une archive ZIP
  • zip_read() - Lit la prochaine entrée dans une archive ZIP


Lit le nom d'un dossier d'archives

  • « zip_entry_filesize
  • zip_entry_open »
  • PHP Manual
  • Fonctions Zip
  • Lit le nom d'un dossier d'archives

zip_entry_name

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_name — Lit le nom d'un dossier d'archives

Description

string zip_entry_name ( resource $zip_entry )

zip_entry_name() retourne le nom d'un dossier d'archives donné.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

Valeurs de retour

Le nom du dossier d'archives.

Voir aussi

  • zip_open() - Ouvre une archive ZIP
  • zip_read() - Lit la prochaine entrée dans une archive ZIP


Ouvre un dossier d'archives en lecture

  • « zip_entry_name
  • zip_entry_read »
  • PHP Manual
  • Fonctions Zip
  • Ouvre un dossier d'archives en lecture

zip_entry_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_open — Ouvre un dossier d'archives en lecture

Description

bool zip_entry_open ( resource $zip , resource $zip_entry [, string $mode ] )

zip_entry_open() ouvre un dossier dans un fichier ZIP pour lecture.

Liste de paramètres

zip

Une ressource valide retournée par la fonction zip_open().

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

mode

Toutes les méthodes spécifiées dans la documentation de la fonction fopen().

Note:

Actuellement, mode est ignoré et vaut toujours "rb". Cela est dû au fait que le support ZIP de PHP est uniquement en lecture seule.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Note:

Contrairement à fopen() et les autres fonctions de fichiers, la valeur retournée par zip_entry_open() indique uniquement le résultat de l'opération, et n'est pas nécessaire pour la lecture ou la fermeture du fichier de dossier d'archives.

Voir aussi

  • zip_entry_close() - Ferme un dossier d'archive
  • zip_entry_read() - Lit le contenu d'un fichier dans un dossier


Lit le contenu d'un fichier dans un dossier

  • « zip_entry_open
  • zip_open »
  • PHP Manual
  • Fonctions Zip
  • Lit le contenu d'un fichier dans un dossier

zip_entry_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_read — Lit le contenu d'un fichier dans un dossier

Description

string zip_entry_read ( resource $zip_entry [, int $length = 1024 ] )

zip_entry_read() lit dans un dossier d'archives ouvert.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

length

Le nombre d'octets à retourner.

Note:

Ceci doit être la taille non-compressée que vous voulez lire.

Valeurs de retour

Retourne les données lues, une chaîne vide si l'on est à la fin du fichier, ou FALSE si une erreur survient.

Voir aussi

  • zip_entry_open() - Ouvre un dossier d'archives en lecture
  • zip_entry_close() - Ferme un dossier d'archive
  • zip_entry_filesize() - Lit la taille décompressée d'un dossier d'archives


Ouvre une archive ZIP

  • « zip_entry_read
  • zip_read »
  • PHP Manual
  • Fonctions Zip
  • Ouvre une archive ZIP

zip_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_open — Ouvre une archive ZIP

Description

resource zip_open ( string $filename )

zip_open() ouvre une nouvelle archive ZIP pour lecture.

Liste de paramètres

filename

Le nom du fichier de l'archive ZIP à ouvrir.

Valeurs de retour

Retourne une ressource à utiliser plus tard avec les fonctions zip_read() et zip_close(), ou bien retourne le numéro de l'erreur si le paramètre filename n'existe pas ou dans le cas d'une autre erreur.

Voir aussi

  • zip_read() - Lit la prochaine entrée dans une archive ZIP
  • zip_close() - Ferme une archive Zip


Lit la prochaine entrée dans une archive ZIP

  • « zip_open
  • Zlib »
  • PHP Manual
  • Fonctions Zip
  • Lit la prochaine entrée dans une archive ZIP

zip_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_read — Lit la prochaine entrée dans une archive ZIP

Description

resource zip_read ( resource $zip )

zip_read() lit la prochaine entrée dans une archive ZIP.

Liste de paramètres

zip

Un fichier ZIP précédemment ouvert avec la fonction zip_open().

Valeurs de retour

Retourne une ressource de dossier d'archive, à utiliser plus tard avec les autres fonctions de la bibliothèque, FALSE s'il n'y a plus d'entrées à lire dans l'archive ZIP ou le numéro de l'erreur si une erreur survient.

Voir aussi

  • zip_open() - Ouvre une archive ZIP
  • zip_close() - Ferme une archive Zip
  • zip_entry_open() - Ouvre un dossier d'archives en lecture
  • zip_entry_read() - Lit le contenu d'un fichier dans un dossier


Compression Zlib

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions Zlib
    • deflate_add — Incrementally deflate data
    • deflate_init — Initialize an incremental deflate context
    • gzclose — Ferme un pointeur sur un fichier gz ouvert
    • gzcompress — Compresse une chaîne
    • gzdecode — Décode une chaîne de caractères compressée gzip
    • gzdeflate — Compresse une chaîne
    • gzencode — Crée une chaîne compressée gzip
    • gzeof — Indique si la fin d'un fichier (EOF) compressé est atteinte
    • gzfile — Lit la totalité d'un fichier compressé
    • gzgetc — Lit un caractère dans un fichier compressé
    • gzgets — Lit une ligne dans un fichier compressé
    • gzgetss — Lit une ligne dans un fichier compressé, et supprime les balises HTML
    • gzinflate — Décompresse une chaîne
    • gzopen — Ouvre un fichier compressé avec gzip
    • gzpassthru — Affiche toutes les données qui restent dans un pointeur gz
    • gzputs — Alias de gzwrite
    • gzread — Lecture de fichier compressé binaire
    • gzrewind — Replace le pointeur au début du fichier
    • gzseek — Déplace le pointeur de lecture
    • gztell — Lit la position courante du pointeur de lecture
    • gzuncompress — Décompresse une chaîne compressée
    • gzwrite — Écrit dans un fichier compressé gzip
    • inflate_add — Incrementally inflate encoded data
    • inflate_init — Initialize an incremental inflate context
    • readgzfile — Lit tout le fichier compressé
    • zlib_decode — Décompresse des données encodées raw/gzip/zlib
    • zlib_encode — Compresse des données avec l'encodage spécifié
    • zlib_get_coding_type — Retourne la méthode de compression utilisée avec Gzip


Introduction

Ce module vous permet de lire et d'écrire des fichiers compressés gzip (.gz), via la plupart des fonctions du système de fichiers qui fonctionnent avec les fichiers compressés gzip (ainsi qu'avec les fichiers non-compressés, mais sans sockets).

Note:

La version 4.0.4 introduit un gestionnaire de format pour les fichiers .gz ; ainsi, vous pouvez utiliser l'URL spécial zlib: pour accéder aux fichiers compressés en utilisant les fonctions normales f*() si vous préfixez le nom du fichier ou le nom du chemin par zlib: lorsque vous appelez la fonction fopen(). Cette fonctionnalité nécessite une bibliothèque C qui fournit la fonction fopencookie(). À ce jour, il semble que seule la bibliothèque GNU libc fournisse cette fonctionnalité.

En PHP 4.3.0, zlib: a été modifié en compress.zlib:// afin d'éviter de confondre avec les noms de fichiers contenant les caractères ':'. La fonction fopencookie() n'est plus requise. Pour plus d'informations, reportez-vous à la section zlib://.


Pré-requis

Ce module utilise les fonctions » zlib créées par Jean-loup Gailly et Mark Adler. Vous devez utiliser la bibliothèque zlib version >= 1.0.9 avec ce module.


Installation

Le support de Zlib dans PHP n'est pas activé par défaut. Vous devez compiler PHP avec l'option --with-zlib[=DIR] .

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note: Le support intégré de zlib pour Windows est disponible depuis PHP 4.3.0.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

L'extension zlib offre l'option de compresser de manière transparente les pages PHP à la volée, si le navigateur du visiteur le supporte. Voici donc les trois options à utiliser dans le fichier de configuration php.ini.

Options de configuration Zlib
Nom | Défaut | Modifiable | Historique
zlib.output_compression | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
zlib.output_compression_level | "-1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
zlib.output_handler | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

zlib.output_compression booléen/entier

Active ou pas la compression transparente des pages. Si cette option est mise à "On" dans php.ini ou dans la configuration Apache, les pages sont compressées si le navigateur envoie un en-tête "Accept-Encoding: gzip" ou "deflate". Les en-têtes "Content-Encoding: gzip" (respectivement "deflate") et "Vary: Accept-Encoding" sont ajoutés dans la page envoyée au navigateur. En fonctionnement, il peut être défini uniquement avant tout affichage.

Cette option accepte aussi des valeurs entières au lieu des booléens, "On"/"Off", ce qui vous permet de configurer la taille du tampon de sortie (par défaut, il vaut 4ko).

Note:

output_handler doit être laissée à vide si cette option est activée. Sinon, vous devez utiliser zlib.output_handler.

zlib.output_compression_level entier

Niveau de compression utilisé pour la compression de sortie. La valeur doit être comprise entre 0 (aucune compression) et 9 (compression élevée). La valeur par défaut est -1, ce qui laissera le serveur décider du niveau de compression à utiliser.

zlib.output_handler chaîne de caractères

Vous ne pouvez pas spécifier de gestionnaire de sortie supplémentaire si zlib.output_compression est activée. Cette configuration est la même que output_handler mais dans un ordre différent.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit une ressource de fichier, retournée par la fonction gzopen().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FORCE_GZIP (entier)
FORCE_DEFLATE (entier)
ZLIB_ENCODING_RAW (integer)
Algorithme DEFLATE tel que décrite dans la RFC 1951. Disponible depuis PHP 7.0.0.
ZLIB_ENCODING_DEFLATE (integer)
Algorithme de compression ZLIB tel que décrit dans la RFC 1950. Disponible depuis PHP 7.0.0.
ZLIB_ENCODING_GZIP (integer)
Algorithme GZIP tel que décrit par la RFC 1952. Disponible depuis PHP 7.0.0.
ZLIB_FILTERED (integer)
Disponible depuis PHP 7.0.0.
ZLIB_HUFFMAN_ONLY (integer)
Disponible depuis PHP 7.0.0.
ZLIB_FIXED (integer)
Disponible depuis PHP 7.0.0.
ZLIB_RLE (integer)
Disponible depuis PHP 7.0.0.
ZLIB_DEFAULT_STRATEGY (integer)
Disponible depuis PHP 7.0.0.
ZLIB_BLOCK (integer)
Disponible depuis PHP 7.0.0.
ZLIB_NO_FLUSH (integer)
Disponible depuis PHP 7.0.0.
ZLIB_PARTIAL_FLUSH (integer)
Disponible depuis PHP 7.0.0.
ZLIB_SYNC_FLUSH (integer)
Disponible depuis PHP 7.0.0.
ZLIB_FULL_FLUSH (integer)
Disponible depuis PHP 7.0.0.
ZLIB_FINISH (integer)
Disponible depuis PHP 7.0.0.


Exemples

Cet exemple ouvre un fichier temporaire et y écrit une chaîne de test, puis, affiche le contenu de ce fichier, deux fois.

Exemple #1 Exemple avec Zlib

<?php

$filename = tempnam('/tmp', 'zlibtest') . '.gz';
echo "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Seulement un test, test, test, test, test, test, test, test!\n";

// Ouvre un fichier en écriture, avec une compression maximale
$zp = gzopen($filename, "w9");

// Ecrit une chaîne dans le fichier
gzwrite($zp, $s);

// Ferme le fichier
gzclose($zp);

// Ouvre un fichier en lecture
$zp = gzopen($filename, "r");

// Lit 3 caractères
echo gzread($zp, 3);

// Lit tout le contenu et ferme le fichier
gzpassthru($zp);
gzclose($zp);

echo "\n";

// Ouvre un fichier et affiche le contenu (pour la deuxième fois).
if (readgzfile($filename) != strlen($s)) {
        echo "Erreur avec les fonctions zlib !";
}
unlink($filename);
echo "</pre>\n</body>\n</html>\n";

?>

Exemple #2 Fonctionnement avec l'API de compression et de décompression incrémentale depuis PHP 7.0.0

// Compression GZIP :
$deflateContext = deflate_init(ZLIB_ENCODING_GZIP);
$compressed = deflate_add($deflateContext, "Data to compress", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, ", more data", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, ", and even more data!", ZLIB_FINISH);?>

// Décompression GZIP :
$inflateContext = inflate_init(ZLIB_ENCODING_GZIP);
$uncompressed = inflate_add($inflateContext, $compressed, ZLIB_NO_FLUSH);
$uncompressed .= inflate_add($inflateContext, NULL, ZLIB_FINISH);
echo $uncompressed;

L'exemple ci-dessus va afficher :

Data to compress, more data, and even more data!


Fonctions Zlib

Sommaire

  • deflate_add — Incrementally deflate data
  • deflate_init — Initialize an incremental deflate context
  • gzclose — Ferme un pointeur sur un fichier gz ouvert
  • gzcompress — Compresse une chaîne
  • gzdecode — Décode une chaîne de caractères compressée gzip
  • gzdeflate — Compresse une chaîne
  • gzencode — Crée une chaîne compressée gzip
  • gzeof — Indique si la fin d'un fichier (EOF) compressé est atteinte
  • gzfile — Lit la totalité d'un fichier compressé
  • gzgetc — Lit un caractère dans un fichier compressé
  • gzgets — Lit une ligne dans un fichier compressé
  • gzgetss — Lit une ligne dans un fichier compressé, et supprime les balises HTML
  • gzinflate — Décompresse une chaîne
  • gzopen — Ouvre un fichier compressé avec gzip
  • gzpassthru — Affiche toutes les données qui restent dans un pointeur gz
  • gzputs — Alias de gzwrite
  • gzread — Lecture de fichier compressé binaire
  • gzrewind — Replace le pointeur au début du fichier
  • gzseek — Déplace le pointeur de lecture
  • gztell — Lit la position courante du pointeur de lecture
  • gzuncompress — Décompresse une chaîne compressée
  • gzwrite — Écrit dans un fichier compressé gzip
  • inflate_add — Incrementally inflate encoded data
  • inflate_init — Initialize an incremental inflate context
  • readgzfile — Lit tout le fichier compressé
  • zlib_decode — Décompresse des données encodées raw/gzip/zlib
  • zlib_encode — Compresse des données avec l'encodage spécifié
  • zlib_get_coding_type — Retourne la méthode de compression utilisée avec Gzip


Incrementally deflate data

  • « Fonctions Zlib
  • deflate_init »
  • PHP Manual
  • Fonctions Zlib
  • Incrementally deflate data

deflate_add

(PHP 7)

deflate_add — Incrementally deflate data

Description

string deflate_add ( resource $context , string $data [, int $flush_mode = ZLIB_SYNC_FLUSH ] )

Incrementally deflates data in the specified context.

Liste de paramètres

context

A context created with deflate_init().

data

A chunk of data to compress.

flush_mode

One of ZLIB_BLOCK, ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH (default), ZLIB_FULL_FLUSH, ZLIB_FINISH. Normally you will want to set ZLIB_NO_FLUSH to maximize compression, and ZLIB_FINISH to terminate with the last chunk of data. See the » zlib manual for a detailed description of these constants.

Valeurs de retour

Returns a chunk of compressed data, ou FALSE si une erreur survient.

Erreurs / Exceptions

If invalid arguments are given, an error of level E_WARNING is generated.

Voir aussi

  • deflate_init() - Initialize an incremental deflate context


Initialize an incremental deflate context

  • « deflate_add
  • gzclose »
  • PHP Manual
  • Fonctions Zlib
  • Initialize an incremental deflate context

deflate_init

(PHP 7)

deflate_init — Initialize an incremental deflate context

Description

resource deflate_init ( int $encoding [, array $options = array() ] )

Initializes an incremental deflate context using the specified encoding.

Note that the window option here only sets the window size of the algorithm, differently from the zlib filters where the same parameter also sets the encoding to use; the encoding must be set with the encoding parameter.

Limitation: there is currently no way to set the header information on a GZIP compressed stream, which are set as follows: GZIP signature (\x1f\x8B); compression method (\x08 == DEFLATE); 6 zero bytes; the operating system set to the current system (\x00 = Windows, \x03 = Unix, etc.)

Liste de paramètres

encoding

One of the ZLIB_ENCODING_* constants.

options

An associative array which may contain the following elements:

level

The compression level in range -1..9; defaults to -1.

memory

The compression memory level in range 1..9; defaults to 8.

window

The zlib window size (logarithmic) in range 8..15; defaults to 15.

strategy

One of ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED or ZLIB_DEFAULT_STRATEGY (the default).

dictionary

A string or an array of strings of the preset dictionary (default: no preset dictionary).

Valeurs de retour

Returns a deflate context resource (zlib.deflate) on success, ou FALSE si une erreur survient.

Erreurs / Exceptions

If an invalid option is passed to options or the context couldn't be created, an error of level E_WARNING is generated.

Voir aussi

  • deflate_add() - Incrementally deflate data
  • inflate_init() - Initialize an incremental inflate context


Ferme un pointeur sur un fichier gz ouvert

  • « deflate_init
  • gzcompress »
  • PHP Manual
  • Fonctions Zlib
  • Ferme un pointeur sur un fichier gz ouvert

gzclose

(PHP 4, PHP 5, PHP 7)

gzclose — Ferme un pointeur sur un fichier gz ouvert

Description

bool gzclose ( resource $zp )

gzclose() referme le fichier compressé zp.

Liste de paramètres

zp

Le pointeur de fichier compressé. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gzclose()

<?php
$gz = gzopen('somefile.gz','w9');
gzputs ($gz, 'Je suis ajouté à somefile.gz');
gzclose($gz);
?>

Voir aussi

  • gzopen() - Ouvre un fichier compressé avec gzip


Compresse une chaîne

  • « gzclose
  • gzdecode »
  • PHP Manual
  • Fonctions Zlib
  • Compresse une chaîne

gzcompress

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

gzcompress — Compresse une chaîne

Description

string gzcompress ( string $data [, int $level = -1 [, int $encoding = ZLIB_ENCODING_DEFLATE ]] )

gzcompress() compresse la chaîne donnée en utilisant le format de données ZLIB.

Pour plus de détails sur l'algorithme, lisez le document » "ZLIB Compressed Data Format Specification version 3.3" (RFC 1950).

Note:

Ce n'est pas la même chose que la compression gzip, qui inclut quelques en-têtes de données. Voir gzencode() pour la compression gzip.

Liste de paramètres

data

La donnée à compresser.

level

Le degré de compression. 0 signifie aucune compression, jusqu'à 9 pour une compression maximale.

Si ce paramètre vaut -1, la compression par défaut de la bibliothèque zlib sera utilisée, soit 6.

encoding

Une constante ZLIB_ENCODING_*.

Valeurs de retour

La chaîne compressée ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gzcompress()

<?php
$compressed = gzcompress('Compresse moi', 9);
echo $compressed;
?>

Historique

Version | Description
5.4.0 | Ajout du paramètre encoding.

Voir aussi

  • gzdeflate() - Compresse une chaîne
  • gzinflate() - Décompresse une chaîne
  • gzuncompress() - Décompresse une chaîne compressée
  • gzencode() - Crée une chaîne compressée gzip


Décode une chaîne de caractères compressée gzip

  • « gzcompress
  • gzdeflate »
  • PHP Manual
  • Fonctions Zlib
  • Décode une chaîne de caractères compressée gzip

gzdecode

(PHP 5 >= 5.4.0, PHP 7)

gzdecode — Décode une chaîne de caractères compressée gzip

Description

string gzdecode ( string $data [, int $length ] )

Cette fonction retourne une version décodée des données data.

Liste de paramètres

data

Les données à décoder, encodées par la fonction gzencode().

length

La longueur maximale de données à décoder.

Valeurs de retour

La chaîne de caractères décodée, ou FALSE si une erreur survient.

Voir aussi

  • gzencode() - Crée une chaîne compressée gzip


Compresse une chaîne

  • « gzdecode
  • gzencode »
  • PHP Manual
  • Fonctions Zlib
  • Compresse une chaîne

gzdeflate

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gzdeflate — Compresse une chaîne

Description

string gzdeflate ( string $data [, int $level = -1 [, int $encoding = ZLIB_ENCODING_RAW ]] )

gzdeflate() compresse la chaîne donnée en utilisant le format de données DEFLATE.

Pour plus de détails sur l'algorithme, lisez le document » "ZLIB Compressed Data Format Specification version 1.3" (RFC 1951).

Liste de paramètres

data

Les données à compresser.

level

Le degré de compression. 0 signifie aucune compression jusqu'à 9 pour une compression maximale. Si omis, le degré de compression par défaut sera celui de la bibliothèque zlib.

encoding

Une constante ZLIB_ENCODING_*.

Valeurs de retour

La chaîne compressée ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gzdeflate()

<?php
$compressed = gzdeflate('Compresse moi', 9);
echo $compressed;
?>

Historique

Version | Description
5.4.0 | Ajout du paramètre encoding.

Voir aussi

  • gzinflate() - Décompresse une chaîne
  • gzcompress() - Compresse une chaîne
  • gzuncompress() - Décompresse une chaîne compressée
  • gzencode() - Crée une chaîne compressée gzip


Crée une chaîne compressée gzip

  • « gzdeflate
  • gzeof »
  • PHP Manual
  • Fonctions Zlib
  • Crée une chaîne compressée gzip

gzencode

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gzencode — Crée une chaîne compressée gzip

Description

string gzencode ( string $data [, int $level = -1 [, int $encoding_mode = FORCE_GZIP ]] )

gzencode() retourne la version compressée de la chaîne data compatible avec la sortie du programme gzip.

Pour plus de détails sur l'algorithme, lisez le document » "ZLIB Compressed Data Format Specification version 4.3" (RFC 1952).

Liste de paramètres

data

Les données à encoder.

level

Le degré de compression. 0 signifie aucune compression, jusqu'à 9 pour une compression maximale. Si omis, le degré de compression par défaut sera celui de la bibliothèque zlib.

encoding_mode

Le mode d'encodage. Peut être FORCE_GZIP (par défaut) ou FORCE_DEFLATE.

Avant PHP 5.4.0, l'utilisation de FORCE_DEFLATE conduit en une chaîne standard zlib (incluant les en-têtes zlib) après l'en-tête de fichier gzip mais sans la somme de vérification (checksum) crc32 finale.

En PHP 5.4.0 et suivant, FORCE_DEFLATE génère un affichage conforme à la RFC 1950, contenant un en-tête zlib, les données standard, et une somme de vérification Adler.

Valeurs de retour

La chaîne encodée ou FALSE si une erreur survient.

Historique

Version | Description
5.4.0 | FORCE_DEFLATE génère maintenant un affichage conforme à la RFC 1950.

Exemples

Les données résultantes contiennent les en-têtes appropriés ainsi que la structure de données pour faire un fichier .gz standard, e.g. :

Exemple #1 Création d'un fichier gzip

<?php
$data = implode("", file("bigfile.txt"));
$gzdata = gzencode($data, 9);
$fp = fopen("bigfile.txt.gz", "w");
fwrite($fp, $gzdata);
fclose($fp);
?>

Voir aussi

  • gzdecode() - Décode une chaîne de caractères compressée gzip
  • gzdeflate() - Compresse une chaîne
  • gzinflate() - Décompresse une chaîne
  • gzuncompress() - Décompresse une chaîne compressée
  • gzcompress() - Compresse une chaîne
  • » Spécification du format de données compressées ZLIB (RFC 1950)


Indique si la fin d'un fichier (EOF) compressé est atteinte

  • « gzencode
  • gzfile »
  • PHP Manual
  • Fonctions Zlib
  • Indique si la fin d'un fichier (EOF) compressé est atteinte

gzeof

(PHP 4, PHP 5, PHP 7)

gzeof — Indique si la fin d'un fichier (EOF) compressé est atteinte

Description

int gzeof ( resource $zp )

Indique si la fin d'un fichier compressé est atteinte, c'est à dire si le pointeur est à la position EOF.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Retourne TRUE si le pointeur de fichier gz est à la fin du fichier (EOF) ou si une erreur survient ; sinon, retourne FALSE.

Exemples

Exemple #1 Exemple avec gzeof()

<?php
$gz = gzopen('somefile.gz', 'r');
while (!gzeof($gz)) {
  echo gzgetc($gz);
}
gzclose($gz);
?>


Lit la totalité d'un fichier compressé

  • « gzeof
  • gzgetc »
  • PHP Manual
  • Fonctions Zlib
  • Lit la totalité d'un fichier compressé

gzfile

(PHP 4, PHP 5, PHP 7)

gzfile — Lit la totalité d'un fichier compressé

Description

array gzfile ( string $filename [, int $use_include_path = 0 ] )

gzfile() est identique à la fonction readgzfile(), excepté qu'elle retourne le fichier dans un tableau.

Liste de paramètres

filename

Le nom du fichier.

use_include_path

Vous pouvez définir ce paramètre optionnel à 1, si vous voulez chercher le fichier également dans l'include_path.

Valeurs de retour

Un tableau contenant le fichier, une ligne par cellule ; les lignes vides sont incluses, et les nouvelles lignes sont tojours attachées.

Exemples

Exemple #1 Exemple avec gzfile()

<?php
$lines = gzfile('somefile.gz');
foreach ($lines as $line) {
    echo $line;
}
?>

Voir aussi

  • readgzfile() - Lit tout le fichier compressé
  • gzopen() - Ouvre un fichier compressé avec gzip


Lit un caractère dans un fichier compressé

  • « gzfile
  • gzgets »
  • PHP Manual
  • Fonctions Zlib
  • Lit un caractère dans un fichier compressé

gzgetc

(PHP 4, PHP 5, PHP 7)

gzgetc — Lit un caractère dans un fichier compressé

Description

string gzgetc ( resource $zp )

gzgetc() retourne une chaîne contenant un seul caractère (décompressé) lu depuis le pointeur de fichier gz.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Le caractère décompressé ou FALSE si le pointeur est à la fin du fichier, position EOF (contrairement à la fonction gzeof()).

Exemples

Exemple #1 Exemple avec gzgetc()

<?php
$gz = gzopen('somefile.gz', 'r');
while (!gzeof($gz)) {
  echo gzgetc($gz);
}
gzclose($gz);
?>

Voir aussi

  • gzopen() - Ouvre un fichier compressé avec gzip
  • gzgets() - Lit une ligne dans un fichier compressé


Lit une ligne dans un fichier compressé

  • « gzgetc
  • gzgetss »
  • PHP Manual
  • Fonctions Zlib
  • Lit une ligne dans un fichier compressé

gzgets

(PHP 4, PHP 5, PHP 7)

gzgets — Lit une ligne dans un fichier compressé

Description

string gzgets ( resource $zp [, int $length ] )

gzgets() retourne une chaîne non compressée, de taille maximale length - 1 octets, lue dans le fichier représenté par zp. La lecture s'arrête lorsque length - 1 octets ont été lus, ou que la fonction a rencontré une nouvelle ligne ou la fin du fichier (le premier des trois qui survient).

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

length

La longueur de données à lire.

Valeurs de retour

La chaîne décompressée ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gzgets()

<?php
$handle = gzopen('somefile.gz', 'r');
while (!gzeof($handle)) {
   $buffer = gzgets($handle, 4096);
   echo $buffer;
}
gzclose($handle);
?>

Voir aussi

  • gzopen() - Ouvre un fichier compressé avec gzip
  • gzgetc() - Lit un caractère dans un fichier compressé
  • gzwrite() - Écrit dans un fichier compressé gzip


Lit une ligne dans un fichier compressé, et supprime les balises HTML

  • « gzgets
  • gzinflate »
  • PHP Manual
  • Fonctions Zlib
  • Lit une ligne dans un fichier compressé, et supprime les balises HTML

gzgetss

(PHP 4, PHP 5, PHP 7)

gzgetss — Lit une ligne dans un fichier compressé, et supprime les balises HTML

Description

string gzgetss ( resource $zp , int $length [, string $allowable_tags ] )

gzgetss() est identique à la fonction gzgets(), excepté que gzgetss() tente de supprimer toutes les balises HTML et PHP du texte lu.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

length

La longueur des données à récupérer.

allowable_tags

Vous pouvez utiliser ce paramètre optionnel pour spécifier les balises à ne pas supprimer.

Valeurs de retour

La chaîne décompressée et nettoyée ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gzgetss()

<?php
$handle = gzopen('somefile.gz', 'r');
while (!gzeof($handle)) {
   $buffer = gzgetss($handle, 4096);
   echo $buffer;
}
gzclose($handle);
?>

Voir aussi

  • gzopen() - Ouvre un fichier compressé avec gzip
  • gzgets() - Lit une ligne dans un fichier compressé
  • strip_tags() - Supprime les balises HTML et PHP d'une chaîne


Décompresse une chaîne

  • « gzgetss
  • gzopen »
  • PHP Manual
  • Fonctions Zlib
  • Décompresse une chaîne

gzinflate

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gzinflate — Décompresse une chaîne

Description

string gzinflate ( string $data [, int $length = 0 ] )

gzinflate() décompresse une chaîne.

Liste de paramètres

data

Les données compressées avec la fonction gzdeflate().

length

La longueur maximale de données à décoder.

Valeurs de retour

Les données originales décompressées ou FALSE si une erreur survient.

gzinflate() retourne une erreur si la chaîne décompressée est plus de 32768 fois plus longue que la chaîne compressée data ou plus grande que la taille de length octets, passé comme paramètre optionnel.

Exemples

Exemple #1 Exemple avec gzinflate()

<?php
$compressed   = gzdeflate('Compresse moi', 9);
$uncompressed = gzinflate($compressed);
echo $uncompressed;
?>

Voir aussi

  • gzdeflate() - Compresse une chaîne
  • gzcompress() - Compresse une chaîne
  • gzuncompress() - Décompresse une chaîne compressée
  • gzencode() - Crée une chaîne compressée gzip


Ouvre un fichier compressé avec gzip

  • « gzinflate
  • gzpassthru »
  • PHP Manual
  • Fonctions Zlib
  • Ouvre un fichier compressé avec gzip

gzopen

(PHP 4, PHP 5, PHP 7)

gzopen — Ouvre un fichier compressé avec gzip

Description

resource gzopen ( string $filename , string $mode [, int $use_include_path = 0 ] )

gzopen() ouvre un fichier compressé avec gzip pour y écrire ou y lire des données.

gzopen() peut être utilisée pour lire un fichier qui n'est pas dans un format gzip ; dans ce cas, gzread() lira directement le fichier sans décompression.

Liste de paramètres

filename

Le nom du fichier.

mode

Comme dans la fonction fopen() (rb ou wb) mais peut également inclure un degré de compression (wb9) ou une stratégie : f pour les données filtrées comme wb6f, h pour Huffman only compression comme wb1h. (Lisez la description de deflateInit2 dans le fichier zlib.h pour plus d'informations sur la stratégie des paramètres.)

use_include_path

Vous pouvez définir ce paramètre optionnel à 1, si vous voulez chercher un fichier également dans l'include_path.

Valeurs de retour

Retourne un pointeur de fichier vers le fichier ouvert, ainsi, la lecture depuis ce pointeur de fichier sera des données décompressées et ce que vous y écrirez, sera compressé.

Si l'ouverture échoue, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gzopen()

<?php
$fp = gzopen("/tmp/file.gz", "r");
?>

Voir aussi

  • gzclose() - Ferme un pointeur sur un fichier gz ouvert


Affiche toutes les données qui restent dans un pointeur gz

  • « gzopen
  • gzputs »
  • PHP Manual
  • Fonctions Zlib
  • Affiche toutes les données qui restent dans un pointeur gz

gzpassthru

(PHP 4, PHP 5, PHP 7)

gzpassthru — Affiche toutes les données qui restent dans un pointeur gz

Description

int gzpassthru ( resource $zp )

gzpassthru() lit les données restantes du fichier zp jusqu'à la fin (position EOF), puis affiche le résultat (décompressé).

Note:

Vous pourriez avoir besoin d'appeler la fonction gzrewind() pour réinitialiser le pointeur de fichier au début du fichier si vous avez déjà écrit des données dedans.

Astuce

Si vous voulez uniquement afficher le contenu d'un fichier, sans le modifier auparavant ou sans déplacer le pointeur à une position particulière, vous devriez utiliser la fonction readgzfile(), ce qui vous évitera d'appeler la fonction gzopen().

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Le nombre de caractères décompressés lus depuis gz et affiché ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gzpassthru()

<?php
$fp = gzopen('file.gz', 'r');
gzpassthru($fp);
gzclose($fp);
?>


Alias de gzwrite

  • « gzpassthru
  • gzread »
  • PHP Manual
  • Fonctions Zlib
  • Alias de gzwrite

gzputs

(PHP 4, PHP 5, PHP 7)

gzputs — Alias de gzwrite()

Description

Cette fonction est un alias de : gzwrite().


Lecture de fichier compressé binaire

  • « gzputs
  • gzrewind »
  • PHP Manual
  • Fonctions Zlib
  • Lecture de fichier compressé binaire

gzread

(PHP 4, PHP 5, PHP 7)

gzread — Lecture de fichier compressé binaire

Description

string gzread ( resource $zp , int $length )

gzread() lit jusqu'à length octets dans le fichier compressé gzip, représenté par zp. La lecture s'arrête lorsque length octets (décompressés) ont été lus, ou que la fin du fichier a été atteinte (position EOF).

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

length

Le nombre d'octets lus.

Valeurs de retour

Les données qui ont été lues.

Exemples

Exemple #1 Exemple avec gzread()

<?php
// récupère le contenu d'un fichier gz dans une chaîne
$filename = "/usr/local/something.txt.gz";
$zd = gzopen($filename, "r");
$contents = gzread($zd, 10000);
gzclose($zd);
?>

Voir aussi

  • gzwrite() - Écrit dans un fichier compressé gzip
  • gzopen() - Ouvre un fichier compressé avec gzip
  • gzgets() - Lit une ligne dans un fichier compressé
  • gzgetss() - Lit une ligne dans un fichier compressé, et supprime les balises HTML
  • gzfile() - Lit la totalité d'un fichier compressé
  • gzpassthru() - Affiche toutes les données qui restent dans un pointeur gz


Replace le pointeur au début du fichier

  • « gzread
  • gzseek »
  • PHP Manual
  • Fonctions Zlib
  • Replace le pointeur au début du fichier

gzrewind

(PHP 4, PHP 5, PHP 7)

gzrewind — Replace le pointeur au début du fichier

Description

bool gzrewind ( resource $zp )

gzrewind() replace le pointeur de position du fichier zp au début de celui-ci.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gzseek() - Déplace le pointeur de lecture
  • gztell() - Lit la position courante du pointeur de lecture


Déplace le pointeur de lecture

  • « gzrewind
  • gztell »
  • PHP Manual
  • Fonctions Zlib
  • Déplace le pointeur de lecture

gzseek

(PHP 4, PHP 5, PHP 7)

gzseek — Déplace le pointeur de lecture

Description

int gzseek ( resource $zp , int $offset [, int $whence = SEEK_SET ] )

gzseek() place le pointeur de lecture du fichier zp à la position offset, comptée en octets depuis le début du fichier. C'est l'équivalent de la fonction gzseek(zp, offset, SEEK_SET), du langage C.

Si le fichier est ouvert en lecture, cette fonction est alors émulée, et se révèle extrêmement lente. Si le fichier est ouvert en écriture, seuls les déplacements vers l'avant sont supportés : gzseek() compresse alors une série de zéros jusqu'à la nouvelle position.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

offset

La position désirée.

whence

Les valeurs de whence sont :

  • SEEK_SET : ramène la position à l'offset.
  • SEEK_CUR : ramène la position à la position actuelle plus offset.

Si whence n'est pas spécifié, il vaut par défaut SEEK_SET.

Valeurs de retour

0 en cas de réussite, -1 sinon. Notez que placer le pointeur au delà de la fin du fichier n'est pas considéré comme une erreur.

Exemples

Exemple #1 Exemple avec gzseek()

<?php
$gz = gzopen('somefile.gz', 'r');
gzseek($gz,2);
echo gzgetc($gz);
gzclose($gz);
?>

Voir aussi

  • gztell() - Lit la position courante du pointeur de lecture
  • gzrewind() - Replace le pointeur au début du fichier


Lit la position courante du pointeur de lecture

  • « gzseek
  • gzuncompress »
  • PHP Manual
  • Fonctions Zlib
  • Lit la position courante du pointeur de lecture

gztell

(PHP 4, PHP 5, PHP 7)

gztell — Lit la position courante du pointeur de lecture

Description

int gztell ( resource $zp )

gztell() retourne la position du pointeur de lecture dans le fichier zp.

Liste de paramètres

zp

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

La position du pointeur de fichier ou FALSE si une erreur survient.

Voir aussi

  • gzopen() - Ouvre un fichier compressé avec gzip
  • gzseek() - Déplace le pointeur de lecture
  • gzrewind() - Replace le pointeur au début du fichier


Décompresse une chaîne compressée

  • « gztell
  • gzwrite »
  • PHP Manual
  • Fonctions Zlib
  • Décompresse une chaîne compressée

gzuncompress

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

gzuncompress — Décompresse une chaîne compressée

Description

string gzuncompress ( string $data [, int $length = 0 ] )

gzuncompress() décompresse une chaîne compressée.

Liste de paramètres

data

Les données compressées par gzcompress().

length

La longueur maximale de données à décoder.

Valeurs de retour

Les données originales décompressées ou FALSE si une erreur survient.

gzuncompress() retourne une erreur si la chaîne décompressée est 32768 fois plus longue que la chaîne compressée data ou plus grande que la taille de length octets, passé comme paramètre optionnel.

Exemples

Exemple #1 Exemple avec gzuncompress()

<?php
$compressed   = gzcompress('Compresse moi', 9);
$uncompressed = gzuncompress($compressed);
echo $uncompressed;
?>

Voir aussi

  • gzcompress() - Compresse une chaîne
  • gzinflate() - Décompresse une chaîne
  • gzdeflate() - Compresse une chaîne
  • gzencode() - Crée une chaîne compressée gzip


Écrit dans un fichier compressé gzip

  • « gzuncompress
  • inflate_add »
  • PHP Manual
  • Fonctions Zlib
  • Écrit dans un fichier compressé gzip

gzwrite

(PHP 4, PHP 5, PHP 7)

gzwrite — Écrit dans un fichier compressé gzip

Description

int gzwrite ( resource $zp , string $string [, int $length ] )

gzwrite() écrit le contenu de la chaîne string dans le fichier compressé zp.

Liste de paramètres

zp

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

string

La chaîne à écrire.

length

Le nombre d'octets décompressés à écrire. Si fournie, l'écriture s'arrêtera après length (décompressé) octets écrits ou si la fin de la chaîne string est atteinte ; celui qui survient le premier.

Note:

Notez que si l'argument length est donné, alors l'option de configuration magic_quotes_runtime sera ignoré et aucun slash ne sera supprimé de la chaîne string.

Valeurs de retour

Retourne le nombre d'octets (décompressés) écrits dans le fichier gz donné.

Exemples

Exemple #1 Exemple avec gzwrite()

<?php
$string = 'Quelques informations à compresser';
$gz = gzopen('somefile.gz','w9');
gzwrite($gz, $string);
gzclose($gz);
?>

Voir aussi

  • gzread() - Lecture de fichier compressé binaire
  • gzopen() - Ouvre un fichier compressé avec gzip


Incrementally inflate encoded data

  • « gzwrite
  • inflate_init »
  • PHP Manual
  • Fonctions Zlib
  • Incrementally inflate encoded data

inflate_add

(PHP 7)

inflate_add — Incrementally inflate encoded data

Description

string inflate_add ( resource $context , string $encoded_data [, int $flush_mode = ZLIB_SYNC_FLUSH ] )

Incrementally inflates encoded data in the specified context.

Limitation: header information from GZIP compressed data are not made available.

Liste de paramètres

context

A context created with inflate_init().

encoded_data

A chunk of compressed data.

flush_mode

One of ZLIB_BLOCK, ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH (default), ZLIB_FULL_FLUSH, ZLIB_FINISH. Normally you will want to set ZLIB_NO_FLUSH to maximize compression, and ZLIB_FINISH to terminate with the last chunk of data. See the » zlib manual for a detailed description of these constants.

Valeurs de retour

Returns a chunk of uncompressed data, ou FALSE si une erreur survient.

Erreurs / Exceptions

If invalid parameters are given, inflating the data requires a preset dictionary, but none is specified, the compressed stream is corrupt or has an invalid checksum, an error of level E_WARNING is generated.

Voir aussi

  • inflate_init() - Initialize an incremental inflate context


Initialize an incremental inflate context

  • « inflate_add
  • readgzfile »
  • PHP Manual
  • Fonctions Zlib
  • Initialize an incremental inflate context

inflate_init

(PHP 7)

inflate_init — Initialize an incremental inflate context

Description

resource inflate_init ( int $encoding [, array $options = array() ] )

Initialize an incremental inflate context with the specified encoding.

Liste de paramètres

encoding

One of the ZLIB_ENCODING_* constants.

options

An associative array which may contain the following elements:

level

The compression level in range -1..9; defaults to -1.

memory

The compression memory level in range 1..9; defaults to 8.

window

The zlib window size (logarithmic) in range 8..15; defaults to 15.

strategy

One of ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED or ZLIB_DEFAULT_STRATEGY (the default).

dictionary

A string or an array of strings of the preset dictionary (default: no preset dictionary).

Valeurs de retour

Returns an inflate context resource (zlib.inflate) on success, ou FALSE si une erreur survient.

Erreurs / Exceptions

If an invalid encoding or option is passed to options, or the context couldn't be created, an error of level E_WARNING is generated.

Voir aussi

  • inflate_add() - Incrementally inflate encoded data
  • deflate_init() - Initialize an incremental deflate context


Lit tout le fichier compressé

  • « inflate_init
  • zlib_decode »
  • PHP Manual
  • Fonctions Zlib
  • Lit tout le fichier compressé

readgzfile

(PHP 4, PHP 5, PHP 7)

readgzfile — Lit tout le fichier compressé

Description

int readgzfile ( string $filename [, int $use_include_path = 0 ] )

readgzfile() lit le fichier filename, le décompresse et affiche le résultat.

readgzfile() peut aussi servir à lire un fichier qui n'est pas compressé : dans ce cas, readgzfile() va lire le fichier sans le décompresser.

Liste de paramètres

filename

Le nom du fichier. Ce fichier devra être ouvert depuis le système de fichiers et son contenu sera affiché.

use_include_path

Vous pouvez définir ce paramètre optionnel à 1, si vous voulez chercher le fichier également dans l'include_path.

Valeurs de retour

Retourne le nombre d'octets (décompressés) lus depuis le fichier. Si une erreur survient, FALSE est retourné et si la fonction n'a pas été appelée de cette façon : @readgzfile, un message d'erreur sera affiché.

Voir aussi

  • gzpassthru() - Affiche toutes les données qui restent dans un pointeur gz
  • gzfile() - Lit la totalité d'un fichier compressé
  • gzopen() - Ouvre un fichier compressé avec gzip


Décompresse des données encodées raw/gzip/zlib

  • « readgzfile
  • zlib_encode »
  • PHP Manual
  • Fonctions Zlib
  • Décompresse des données encodées raw/gzip/zlib

zlib_decode

(PHP 5 >= 5.4.0, PHP 7)

zlib_decode — Décompresse des données encodées raw/gzip/zlib

Description

string zlib_decode ( string $data [, string $max_decoded_len ] )

Décompresse des données encodées raw/gzip/zlib.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

data

max_decoded_len

Valeurs de retour

Retourne les données compressées, ou FALSE si une erreur survient.

Voir aussi

  • zlib_encode() - Compresse des données avec l'encodage spécifié


Compresse des données avec l'encodage spécifié

  • « zlib_decode
  • zlib_get_coding_type »
  • PHP Manual
  • Fonctions Zlib
  • Compresse des données avec l'encodage spécifié

zlib_encode

(PHP 5 >= 5.4.0, PHP 7)

zlib_encode — Compresse des données avec l'encodage spécifié

Description

string zlib_encode ( string $data , string $encoding [, string $level = -1 ] )

Compresse des données avec l'encodage spécifié.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

data

Les données à compresser.

encoding

L'algorithme de compression. Soit ZLIB_ENCODING_RAW, ZLIB_ENCODING_DEFLATE ou ZLIB_ENCODING_GZIP.

level

Valeurs de retour

Exemples

Exemple #1 Exemple avec zlib_encode()

<?php
$str = 'hello world';
$enc = zlib_encode($str, ZLIB_ENCODING_DEFLATE);
echo bin2hex($enc);
?>

L'exemple ci-dessus va afficher :

789ccb48cdc9c95728cf2fca4901001a0b045d

Voir aussi

  • zlib_decode() - Décompresse des données encodées raw/gzip/zlib


Retourne la méthode de compression utilisée avec Gzip

  • « zlib_encode
  • Traitement des cartes de crédit »
  • PHP Manual
  • Fonctions Zlib
  • Retourne la méthode de compression utilisée avec Gzip

zlib_get_coding_type

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

zlib_get_coding_type — Retourne la méthode de compression utilisée avec Gzip

Description

string zlib_get_coding_type ( void )

zlib_get_coding_type() retourne la méthode de compression utilisée avec Gzip.

Valeurs de retour

Les valeurs possibles de retour sont gzip, deflate ou FALSE.

Voir aussi

  • La directive zlib.output_compression directive


Traitement des cartes de crédit

  • MCVE — Paiement MCVE (Monetra)
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions MCVE


Paiement MCVE (Monetra)

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions MCVE
    • m_checkstatus — Vérifie si la transaction a été complétée
    • m_completeauthorizations — Nombre d'autorisations complètes en attente, retourne un tableau de leur identifiant
    • m_connect — Établit une connexion à MCVE
    • m_connectionerror — Obtient une représentation textuelle de la cause de l'échec de connexion
    • m_deletetrans — Supprime la transaction spécifiée de la structure MCVE_CONN
    • m_destroyconn — Détruit la connexion et la structure MCVE_CONN
    • m_destroyengine — Libère la mémoire associée avec la connectivité IP/SSL
    • m_getcell — Récupère une cellule spécifique d'une réponse délimitée par virgule avec le nom de colonne
    • m_getcellbynum — Récupère une cellule spécifique d'une réponse délimitée par virgule avec le numéro de colonne
    • m_getcommadelimited — Récupère les données brutes délimitées par virgule retournées par MCVE
    • m_getheader — Récupère le nom de la colonne dans la réponse délimitée par virgule
    • m_initconn — Crée et initialise une structure MCVE_CONN
    • m_initengine — Apprête le client pour une communication IP/SSL
    • m_iscommadelimited — Vérifie si la réponse est délimitée par virgule
    • m_maxconntimeout — Le temps maximal pendant lequel l'API tentera une connexion à MCVE
    • m_monitor — Effectue une communication avec MCVE (envoi/réception de données) en mode non-bloquant
    • m_numcolumns — Nombre de colonnes retournées dans une réponse délimitée par virgule
    • m_numrows — Nombre de lignes retournées dans une réponse délimitée par virgule
    • m_parsecommadelimited — Analyse la réponse délimitée par virgule permettant à m_getcell, etc. de fonctionner ensuite
    • m_responsekeys — Retourne un tableau de chaînes de caractères qui représentent les clés pouvant être utilisées en tant que paramètres de réponse pour cette transaction
    • m_responseparam — Récupère un paramètre spécial de réponse
    • m_returnstatus — Vérifie si la transaction fut complétée correctement
    • m_setblocking — Spécifie le mode bloquant/non-bloquant pour une connexion
    • m_setdropfile — Spécifie la méthode de connexion à Drop-File
    • m_setip — Spécifie la méthode de connexion à IP
    • m_setssl_cafile — Spécifie le fichier SSL CA (Certificate Authority) pour vérification du certificat du serveur
    • m_setssl_files — Spécifie les fichiers de clé de certificat et certifie si le serveur requiert la vérification du client par certificat
    • m_setssl — Spécifie la méthode de connexion à SSL
    • m_settimeout — Spécifie le temps maximal d'une transaction (par transaction)
    • m_sslcert_gen_hash — Génère une clé de hachage pour les vérifications de certificat de client SSL
    • m_transactionssent — Vérifie si le tampon de sortie est vide
    • m_transinqueue — Nombre de transactions dans la file de client
    • m_transkeyval — Ajoute une paire clé/valeur à une transaction. Remplace transparam() obsolète
    • m_transnew — Démarre une nouvelle transaction
    • m_transsend — Finalise et envoie la transaction
    • m_uwait — Attend x micro secondes
    • m_validateidentifier — Valide ou non l'identifiant passé pour n'importe quelle transaction à laquelle il est fourni
    • m_verifyconnection — Effectue un ping ou non lors de la connexion pour la vérifier
    • m_verifysslcert — Active ou non la vérification du certificat SSL du serveur


Introduction

Ces fonctions servent d'interface avec l'API MCVE (Monetra, libmonetra, auparavant libmcve), qui vous permet de travailler directement avec MCVE/Monetra à partir de vos scripts PHP. MCVE/Monetra est la solution de Main Street Softworks pour les traitements de carte de crédit/débit/cadeau sous Linux/Unix/MacOSX/Windows (» http://www.mainstreetsoftworks.com/). Elle vous permet d'interroger l'établissement bancaire gérant la carte de crédit à partir de votre machine *nix, de votre modem ou de votre connexion Internet (en ne passant pas par des services supplémentaires comme Authorize.Net ou Pay Flow Pro). En utilisant le module MCVE/Monetra pour PHP, vous pouvez manipuler les cartes de crédit directement dans vos scripts PHP via l'API MCVE/Monetra. La documentation ci-dessous en explique le fonctionnement.

Note:

MCVE/Monetra remplace la solution CCVS de RedHat. Un contrat a été passé avec RedHat fin 2001 pour migrer la clientèle existante vers la plate-forme MCVE.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

La bibliothèque LibMonetra (formellement, libmcve).


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mcve.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Si vous installez sans spécifier le chemin d'accès de votre installation de libmonetra, PHP tentera de rechercher dans l'emplacement d'installation par défaut de LibMonetra (/usr/local). Si Monetra (MCVE) est dans un emplacement non standard, exécutez la configuration avec : --with-mcve=$mcve_path , où $mcve_path est le chemin menant à votre installation de MCVE/Monetra. Veuillez noter que le support MCVE/Monetra requiert que $mcve_path/lib et $mcve_path/include existent et incluent mcve.h ou monetra.h dans le répertoire include et libmcve.so et/ou libmcve.a et/ou libmonetra.so et/ou libmonetra.a dans le répertoire lib.

Comme MCVE/Monetra vient avec une véritable séparation client/serveur, il n'y a pas de prérequis supplémentaires pour compiler PHP avec le support MCVE. Pour tester votre extension MCVE/Monetra avec PHP, connectez-vous au site testbox.monetra.com sur le port 8333 pour le mode IP, ou le port 8444 pour le mode SSL en utilisant l'API PHP MCVE/Monetra. Utilisez 'vitale' comme nom d'utilisateur et 'test' comme mot de passe. Plus de détails sur ce système de test sont disponibles sur » http://www.mainstreetsoftworks.com/.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit une resource MVCE_CONN retournée par m_initconn().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

M_PENDING (entier)
M_DONE (entier)
M_ERROR (entier)
M_FAIL (entier)
M_SUCCESS (entier)


Fonctions MCVE

Voir aussi

De la documentation supplémentaire sur l'API PHP MCVE/Monetra peut être trouvée sur » http://www.mainstreetsoftworks.com/documentation.html. La documentation de Main Street est complète et devrait être la référence pour les fonctions.

Sommaire

  • m_checkstatus — Vérifie si la transaction a été complétée
  • m_completeauthorizations — Nombre d'autorisations complètes en attente, retourne un tableau de leur identifiant
  • m_connect — Établit une connexion à MCVE
  • m_connectionerror — Obtient une représentation textuelle de la cause de l'échec de connexion
  • m_deletetrans — Supprime la transaction spécifiée de la structure MCVE_CONN
  • m_destroyconn — Détruit la connexion et la structure MCVE_CONN
  • m_destroyengine — Libère la mémoire associée avec la connectivité IP/SSL
  • m_getcell — Récupère une cellule spécifique d'une réponse délimitée par virgule avec le nom de colonne
  • m_getcellbynum — Récupère une cellule spécifique d'une réponse délimitée par virgule avec le numéro de colonne
  • m_getcommadelimited — Récupère les données brutes délimitées par virgule retournées par MCVE
  • m_getheader — Récupère le nom de la colonne dans la réponse délimitée par virgule
  • m_initconn — Crée et initialise une structure MCVE_CONN
  • m_initengine — Apprête le client pour une communication IP/SSL
  • m_iscommadelimited — Vérifie si la réponse est délimitée par virgule
  • m_maxconntimeout — Le temps maximal pendant lequel l'API tentera une connexion à MCVE
  • m_monitor — Effectue une communication avec MCVE (envoi/réception de données) en mode non-bloquant
  • m_numcolumns — Nombre de colonnes retournées dans une réponse délimitée par virgule
  • m_numrows — Nombre de lignes retournées dans une réponse délimitée par virgule
  • m_parsecommadelimited — Analyse la réponse délimitée par virgule permettant à m_getcell, etc. de fonctionner ensuite
  • m_responsekeys — Retourne un tableau de chaînes de caractères qui représentent les clés pouvant être utilisées en tant que paramètres de réponse pour cette transaction
  • m_responseparam — Récupère un paramètre spécial de réponse
  • m_returnstatus — Vérifie si la transaction fut complétée correctement
  • m_setblocking — Spécifie le mode bloquant/non-bloquant pour une connexion
  • m_setdropfile — Spécifie la méthode de connexion à Drop-File
  • m_setip — Spécifie la méthode de connexion à IP
  • m_setssl_cafile — Spécifie le fichier SSL CA (Certificate Authority) pour vérification du certificat du serveur
  • m_setssl_files — Spécifie les fichiers de clé de certificat et certifie si le serveur requiert la vérification du client par certificat
  • m_setssl — Spécifie la méthode de connexion à SSL
  • m_settimeout — Spécifie le temps maximal d'une transaction (par transaction)
  • m_sslcert_gen_hash — Génère une clé de hachage pour les vérifications de certificat de client SSL
  • m_transactionssent — Vérifie si le tampon de sortie est vide
  • m_transinqueue — Nombre de transactions dans la file de client
  • m_transkeyval — Ajoute une paire clé/valeur à une transaction. Remplace transparam() obsolète
  • m_transnew — Démarre une nouvelle transaction
  • m_transsend — Finalise et envoie la transaction
  • m_uwait — Attend x micro secondes
  • m_validateidentifier — Valide ou non l'identifiant passé pour n'importe quelle transaction à laquelle il est fourni
  • m_verifyconnection — Effectue un ping ou non lors de la connexion pour la vérifier
  • m_verifysslcert — Active ou non la vérification du certificat SSL du serveur


Vérifie si la transaction a été complétée

  • « Fonctions MCVE
  • m_completeauthorizations »
  • PHP Manual
  • Fonctions MCVE
  • Vérifie si la transaction a été complétée

m_checkstatus

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_checkstatus — Vérifie si la transaction a été complétée

Description

int m_checkstatus ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour


Nombre d'autorisations complètes en attente, retourne un tableau de leur identifiant

  • « m_checkstatus
  • m_connect »
  • PHP Manual
  • Fonctions MCVE
  • Nombre d'autorisations complètes en attente, retourne un tableau de leur identifiant

m_completeauthorizations

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_completeauthorizations — Nombre d'autorisations complètes en attente, retourne un tableau de leur identifiant

Description

int m_completeauthorizations ( resource $conn , int &$array )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

array

Valeurs de retour


Établit une connexion à MCVE

  • « m_completeauthorizations
  • m_connectionerror »
  • PHP Manual
  • Fonctions MCVE
  • Établit une connexion à MCVE

m_connect

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_connect — Établit une connexion à MCVE

Description

int m_connect ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour


Obtient une représentation textuelle de la cause de l'échec de connexion

  • « m_connect
  • m_deletetrans »
  • PHP Manual
  • Fonctions MCVE
  • Obtient une représentation textuelle de la cause de l'échec de connexion

m_connectionerror

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_connectionerror — Obtient une représentation textuelle de la cause de l'échec de connexion

Description

string m_connectionerror ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour


Supprime la transaction spécifiée de la structure MCVE_CONN

  • « m_connectionerror
  • m_destroyconn »
  • PHP Manual
  • Fonctions MCVE
  • Supprime la transaction spécifiée de la structure MCVE_CONN

m_deletetrans

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_deletetrans — Supprime la transaction spécifiée de la structure MCVE_CONN

Description

bool m_deletetrans ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour


Détruit la connexion et la structure MCVE_CONN

  • « m_deletetrans
  • m_destroyengine »
  • PHP Manual
  • Fonctions MCVE
  • Détruit la connexion et la structure MCVE_CONN

m_destroyconn

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_destroyconn — Détruit la connexion et la structure MCVE_CONN

Description

bool m_destroyconn ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • m_initconn() - Crée et initialise une structure MCVE_CONN


Libère la mémoire associée avec la connectivité IP/SSL

  • « m_destroyconn
  • m_getcell »
  • PHP Manual
  • Fonctions MCVE
  • Libère la mémoire associée avec la connectivité IP/SSL

m_destroyengine

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_destroyengine — Libère la mémoire associée avec la connectivité IP/SSL

Description

void m_destroyengine ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour

Aucune valeur n'est retournée.


Récupère une cellule spécifique d'une réponse délimitée par virgule avec le nom de colonne

  • « m_destroyengine
  • m_getcellbynum »
  • PHP Manual
  • Fonctions MCVE
  • Récupère une cellule spécifique d'une réponse délimitée par virgule avec le nom de colonne

m_getcell

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getcell — Récupère une cellule spécifique d'une réponse délimitée par virgule avec le nom de colonne

Description

string m_getcell ( resource $conn , int $identifier , string $column , int $row )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

column

row

Valeurs de retour


Récupère une cellule spécifique d'une réponse délimitée par virgule avec le numéro de colonne

  • « m_getcell
  • m_getcommadelimited »
  • PHP Manual
  • Fonctions MCVE
  • Récupère une cellule spécifique d'une réponse délimitée par virgule avec le numéro de colonne

m_getcellbynum

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getcellbynum — Récupère une cellule spécifique d'une réponse délimitée par virgule avec le numéro de colonne

Description

string m_getcellbynum ( resource $conn , int $identifier , int $column , int $row )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

column

row

Valeurs de retour


Récupère les données brutes délimitées par virgule retournées par MCVE

  • « m_getcellbynum
  • m_getheader »
  • PHP Manual
  • Fonctions MCVE
  • Récupère les données brutes délimitées par virgule retournées par MCVE

m_getcommadelimited

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getcommadelimited — Récupère les données brutes délimitées par virgule retournées par MCVE

Description

string m_getcommadelimited ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour


Récupère le nom de la colonne dans la réponse délimitée par virgule

  • « m_getcommadelimited
  • m_initconn »
  • PHP Manual
  • Fonctions MCVE
  • Récupère le nom de la colonne dans la réponse délimitée par virgule

m_getheader

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getheader — Récupère le nom de la colonne dans la réponse délimitée par virgule

Description

string m_getheader ( resource $conn , int $identifier , int $column_num )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

column_num

Valeurs de retour


Crée et initialise une structure MCVE_CONN

  • « m_getheader
  • m_initengine »
  • PHP Manual
  • Fonctions MCVE
  • Crée et initialise une structure MCVE_CONN

m_initconn

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_initconn — Crée et initialise une structure MCVE_CONN

Description

resource m_initconn ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Retourne une ressource MCVE_CONN.

Voir aussi

  • m_destroyconn() - Détruit la connexion et la structure MCVE_CONN


Apprête le client pour une communication IP/SSL

  • « m_initconn
  • m_iscommadelimited »
  • PHP Manual
  • Fonctions MCVE
  • Apprête le client pour une communication IP/SSL

m_initengine

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_initengine — Apprête le client pour une communication IP/SSL

Description

int m_initengine ( string $location )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

location

Valeurs de retour


Vérifie si la réponse est délimitée par virgule

  • « m_initengine
  • m_maxconntimeout »
  • PHP Manual
  • Fonctions MCVE
  • Vérifie si la réponse est délimitée par virgule

m_iscommadelimited

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_iscommadelimited — Vérifie si la réponse est délimitée par virgule

Description

int m_iscommadelimited ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour


Le temps maximal pendant lequel l'API tentera une connexion à MCVE

  • « m_iscommadelimited
  • m_monitor »
  • PHP Manual
  • Fonctions MCVE
  • Le temps maximal pendant lequel l'API tentera une connexion à MCVE

m_maxconntimeout

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_maxconntimeout — Le temps maximal pendant lequel l'API tentera une connexion à MCVE

Description

bool m_maxconntimeout ( resource $conn , int $secs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

secs

Valeurs de retour


Effectue une communication avec MCVE (envoi/réception de données) en mode non-bloquant

  • « m_maxconntimeout
  • m_numcolumns »
  • PHP Manual
  • Fonctions MCVE
  • Effectue une communication avec MCVE (envoi/réception de données) en mode non-bloquant

m_monitor

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_monitor — Effectue une communication avec MCVE (envoi/réception de données) en mode non-bloquant

Description

int m_monitor ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour


Nombre de colonnes retournées dans une réponse délimitée par virgule

  • « m_monitor
  • m_numrows »
  • PHP Manual
  • Fonctions MCVE
  • Nombre de colonnes retournées dans une réponse délimitée par virgule

m_numcolumns

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_numcolumns — Nombre de colonnes retournées dans une réponse délimitée par virgule

Description

int m_numcolumns ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour


Nombre de lignes retournées dans une réponse délimitée par virgule

  • « m_numcolumns
  • m_parsecommadelimited »
  • PHP Manual
  • Fonctions MCVE
  • Nombre de lignes retournées dans une réponse délimitée par virgule

m_numrows

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_numrows — Nombre de lignes retournées dans une réponse délimitée par virgule

Description

int m_numrows ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour


Analyse la réponse délimitée par virgule permettant à m_getcell, etc. de fonctionner ensuite

  • « m_numrows
  • m_responsekeys »
  • PHP Manual
  • Fonctions MCVE
  • Analyse la réponse délimitée par virgule permettant à m_getcell, etc. de fonctionner ensuite

m_parsecommadelimited

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_parsecommadelimited — Analyse la réponse délimitée par virgule permettant à m_getcell, etc. de fonctionner ensuite

Description

int m_parsecommadelimited ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour


Retourne un tableau de chaînes de caractères qui représentent les clés pouvant être utilisées en tant que paramètres de réponse pour cette transaction

  • « m_parsecommadelimited
  • m_responseparam »
  • PHP Manual
  • Fonctions MCVE
  • Retourne un tableau de chaînes de caractères qui représentent les clés pouvant être utilisées en tant que paramètres de réponse pour cette transaction

m_responsekeys

(PHP 5 >= 5.0.5, PHP 7, PECL mcve >= 1.0.0)

m_responsekeys — Retourne un tableau de chaînes de caractères qui représentent les clés pouvant être utilisées en tant que paramètres de réponse pour cette transaction

Description

array m_responsekeys ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour


Récupère un paramètre spécial de réponse

  • « m_responsekeys
  • m_returnstatus »
  • PHP Manual
  • Fonctions MCVE
  • Récupère un paramètre spécial de réponse

m_responseparam

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_responseparam — Récupère un paramètre spécial de réponse

Description

string m_responseparam ( resource $conn , int $identifier , string $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

key

Valeurs de retour


Vérifie si la transaction fut complétée correctement

  • « m_responseparam
  • m_setblocking »
  • PHP Manual
  • Fonctions MCVE
  • Vérifie si la transaction fut complétée correctement

m_returnstatus

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_returnstatus — Vérifie si la transaction fut complétée correctement

Description

int m_returnstatus ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour


Spécifie le mode bloquant/non-bloquant pour une connexion

  • « m_returnstatus
  • m_setdropfile »
  • PHP Manual
  • Fonctions MCVE
  • Spécifie le mode bloquant/non-bloquant pour une connexion

m_setblocking

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setblocking — Spécifie le mode bloquant/non-bloquant pour une connexion

Description

int m_setblocking ( resource $conn , int $tf )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

tf

Valeurs de retour


Spécifie la méthode de connexion à Drop-File

  • « m_setblocking
  • m_setip »
  • PHP Manual
  • Fonctions MCVE
  • Spécifie la méthode de connexion à Drop-File

m_setdropfile

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setdropfile — Spécifie la méthode de connexion à Drop-File

Description

int m_setdropfile ( resource $conn , string $directory )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

directory

Valeurs de retour


Spécifie la méthode de connexion à IP

  • « m_setdropfile
  • m_setssl_cafile »
  • PHP Manual
  • Fonctions MCVE
  • Spécifie la méthode de connexion à IP

m_setip

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setip — Spécifie la méthode de connexion à IP

Description

int m_setip ( resource $conn , string $host , int $port )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

host

port

Valeurs de retour


Spécifie le fichier SSL CA (Certificate Authority) pour vérification du certificat du serveur

  • « m_setip
  • m_setssl_files »
  • PHP Manual
  • Fonctions MCVE
  • Spécifie le fichier SSL CA (Certificate Authority) pour vérification du certificat du serveur

m_setssl_cafile

(PHP 5 >= 5.0.5, PHP 7, PECL mcve >= 1.0.0)

m_setssl_cafile — Spécifie le fichier SSL CA (Certificate Authority) pour vérification du certificat du serveur

Description

int m_setssl_cafile ( resource $conn , string $cafile )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

cafile

Valeurs de retour


Spécifie les fichiers de clé de certificat et certifie si le serveur requiert la vérification du client par certificat

  • « m_setssl_cafile
  • m_setssl »
  • PHP Manual
  • Fonctions MCVE
  • Spécifie les fichiers de clé de certificat et certifie si le serveur requiert la vérification du client par certificat

m_setssl_files

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setssl_files — Spécifie les fichiers de clé de certificat et certifie si le serveur requiert la vérification du client par certificat

Description

int m_setssl_files ( resource $conn , string $sslkeyfile , string $sslcertfile )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

sslkeyfile

sslcertfile

Valeurs de retour


Spécifie la méthode de connexion à SSL

  • « m_setssl_files
  • m_settimeout »
  • PHP Manual
  • Fonctions MCVE
  • Spécifie la méthode de connexion à SSL

m_setssl

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setssl — Spécifie la méthode de connexion à SSL

Description

int m_setssl ( resource $conn , string $host , int $port )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

host

port

Valeurs de retour


Spécifie le temps maximal d'une transaction (par transaction)

  • « m_setssl
  • m_sslcert_gen_hash »
  • PHP Manual
  • Fonctions MCVE
  • Spécifie le temps maximal d'une transaction (par transaction)

m_settimeout

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_settimeout — Spécifie le temps maximal d'une transaction (par transaction)

Description

int m_settimeout ( resource $conn , int $seconds )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

seconds

Valeurs de retour


Génère une clé de hachage pour les vérifications de certificat de client SSL

  • « m_settimeout
  • m_transactionssent »
  • PHP Manual
  • Fonctions MCVE
  • Génère une clé de hachage pour les vérifications de certificat de client SSL

m_sslcert_gen_hash

(PECL mcve >= 5.2.0)

m_sslcert_gen_hash — Génère une clé de hachage pour les vérifications de certificat de client SSL

Description

string m_sslcert_gen_hash ( string $filename )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename

Valeurs de retour


Vérifie si le tampon de sortie est vide

  • « m_sslcert_gen_hash
  • m_transinqueue »
  • PHP Manual
  • Fonctions MCVE
  • Vérifie si le tampon de sortie est vide

m_transactionssent

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transactionssent — Vérifie si le tampon de sortie est vide

Description

int m_transactionssent ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour


Nombre de transactions dans la file de client

  • « m_transactionssent
  • m_transkeyval »
  • PHP Manual
  • Fonctions MCVE
  • Nombre de transactions dans la file de client

m_transinqueue

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transinqueue — Nombre de transactions dans la file de client

Description

int m_transinqueue ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour


Ajoute une paire clé/valeur à une transaction. Remplace transparam() obsolète

  • « m_transinqueue
  • m_transnew »
  • PHP Manual
  • Fonctions MCVE
  • Ajoute une paire clé/valeur à une transaction. Remplace transparam() obsolète

m_transkeyval

(PHP 5 >= 5.0.5, PHP 7, PECL mcve >= 1.0.0)

m_transkeyval — Ajoute une paire clé/valeur à une transaction. Remplace transparam() obsolète

Description

int m_transkeyval ( resource $conn , int $identifier , string $key , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

key

value

Valeurs de retour


Démarre une nouvelle transaction

  • « m_transkeyval
  • m_transsend »
  • PHP Manual
  • Fonctions MCVE
  • Démarre une nouvelle transaction

m_transnew

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transnew — Démarre une nouvelle transaction

Description

int m_transnew ( resource $conn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour


Finalise et envoie la transaction

  • « m_transnew
  • m_uwait »
  • PHP Manual
  • Fonctions MCVE
  • Finalise et envoie la transaction

m_transsend

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transsend — Finalise et envoie la transaction

Description

int m_transsend ( resource $conn , int $identifier )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Valeurs de retour


Attend x micro secondes

  • « m_transsend
  • m_validateidentifier »
  • PHP Manual
  • Fonctions MCVE
  • Attend x micro secondes

m_uwait

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_uwait — Attend x micro secondes

Description

int m_uwait ( int $microsecs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

microsecs

Valeurs de retour


Valide ou non l'identifiant passé pour n'importe quelle transaction à laquelle il est fourni

  • « m_uwait
  • m_verifyconnection »
  • PHP Manual
  • Fonctions MCVE
  • Valide ou non l'identifiant passé pour n'importe quelle transaction à laquelle il est fourni

m_validateidentifier

(PHP 5 >= 5.0.5, PHP 7, PECL mcve >= 1.0.0)

m_validateidentifier — Valide ou non l'identifiant passé pour n'importe quelle transaction à laquelle il est fourni

Description

int m_validateidentifier ( resource $conn , int $tf )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

tf

Valeurs de retour


Effectue un ping ou non lors de la connexion pour la vérifier

  • « m_validateidentifier
  • m_verifysslcert »
  • PHP Manual
  • Fonctions MCVE
  • Effectue un ping ou non lors de la connexion pour la vérifier

m_verifyconnection

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_verifyconnection — Effectue un ping ou non lors de la connexion pour la vérifier

Description

bool m_verifyconnection ( resource $conn , int $tf )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

tf

Valeurs de retour


Active ou non la vérification du certificat SSL du serveur

  • « m_verifyconnection
  • Extensions sur la cryptographie »
  • PHP Manual
  • Fonctions MCVE
  • Active ou non la vérification du certificat SSL du serveur

m_verifysslcert

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_verifysslcert — Active ou non la vérification du certificat SSL du serveur

Description

bool m_verifysslcert ( resource $conn , int $tf )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

tf

Valeurs de retour


Extensions sur la cryptographie

  • Crack — Cracklib
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Crack
  • CSPRNG
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • CSPRNG Fonctions
  • Hash — HASH
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Hash
  • Mcrypt
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Modes de chiffrement Mcrypt
    • Exemples
    • Fonctions Mcrypt
  • Mhash
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Mhash
  • OpenSSL
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Paramètres clés/certificats
    • Vérification de certificats
    • Fonctions OpenSSL
  • Table de hachage de mot de passe
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions de hachage de mot de passe


Cracklib

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions Crack
    • crack_check — Effectue une vérification de mot de passe
    • crack_closedict — Ferme un dictionnaire CrackLib
    • crack_getlastmessage — Retourne le message de diagnostic
    • crack_opendict — Ouvre un nouveau dictionnaire CrackLib


Introduction

Ces fonctions vous permettent d'utiliser la bibliothèque CrackLib afin de tester la solidité d'un mot de passe. Cette solidité est testée au regard de la longueur du mot de passe, de l'utilisation de majuscule/minuscule, et en utilisant le dictionnaire CrackLib. CrackLib fournit également des messages de diagnostique très utiles qui vous aideront dans la construction d'un mot de passe solide.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0.


Pré-requis

Pour plus d'informations sur CrackLib, consultez la page suivante : » http://sourceforge.net/projects/cracklib.


Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/crack.

Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support Crack en utilisant l'option de configuration --with-crack[=DIR] .

Les utilisateurs de Windows doivent activer la bibliothèque php_crack.dll dans le php.ini pour pouvoir utiliser ces fonctions. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

L'extension CrackLib définit une ressource de dictionnaire, retournée par la fonction crack_opendict().


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • Crack
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Exemples

Cet exemple montre comment ouvrir un dictionnaire CrackLib, tester un mot de passe, récupérer les messages de diagnostique, et enfin, fermer le dictionnaire.

Exemple #1 Exemple avec CrackLib

<?php
// Ouvre un dictionnaire CrackLib
$dictionary = crack_opendict('/usr/local/lib/pw_dict')
     or die('Impossible d\'ouvrir le dictionnaire CrackLib');

// Effectue une vérification de mot de passe
$check = crack_check($dictionary, 'gx9A2s0x');

// Récupère les messages
$diag = crack_getlastmessage();
echo $diag; // 'strong password'

// Ferme le dictionnaire
crack_closedict($dictionary);
?>

Note:

Si crack_check() retourne TRUE, crack_getlastmessage() devrait retourner 'strong password'.


Fonctions Crack

Sommaire

  • crack_check — Effectue une vérification de mot de passe
  • crack_closedict — Ferme un dictionnaire CrackLib
  • crack_getlastmessage — Retourne le message de diagnostic
  • crack_opendict — Ouvre un nouveau dictionnaire CrackLib


Effectue une vérification de mot de passe

  • « Fonctions Crack
  • crack_closedict »
  • PHP Manual
  • Fonctions Crack
  • Effectue une vérification de mot de passe

crack_check

(PECL crack >= 0.1)

crack_check — Effectue une vérification de mot de passe

Description

bool crack_check ( resource $dictionary , string $password )
bool crack_check ( string $password )

crack_check() effectue une vérification du mot de passe donné sur le dictionnaire spécifié.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

dictionary

Le dictionnaire. Si aucun n'est spécifié, le dernier dictionnaire ouvert sera utilisé.

password

Le mot de passe à tester.

Valeurs de retour

Retourne TRUE si password est solide, ou FALSE sinon.


Ferme un dictionnaire CrackLib

  • « crack_check
  • crack_getlastmessage »
  • PHP Manual
  • Fonctions Crack
  • Ferme un dictionnaire CrackLib

crack_closedict

(PECL crack >= 0.1)

crack_closedict — Ferme un dictionnaire CrackLib

Description

bool crack_closedict ([ resource $dictionary ] )

crack_closedict() ferme le dictionnaire représenté par l'identifiant dictionary.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

dictionary

Le dictionnaire à fermer. Si aucun n'est spécifié, le dictionnaire courant sera fermé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • crack_opendict() - Ouvre un nouveau dictionnaire CrackLib


Retourne le message de diagnostic

  • « crack_closedict
  • crack_opendict »
  • PHP Manual
  • Fonctions Crack
  • Retourne le message de diagnostic

crack_getlastmessage

(PECL crack >= 0.1)

crack_getlastmessage — Retourne le message de diagnostic

Description

string crack_getlastmessage ( void )

crack_getlastmessage() retourne le message de diagnostic depuis la dernière vérification.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Valeurs de retour

Le message depuis la dernière vérification ou FALSE s'il n'y eu aucune vérification.

Le message retourné est l'un des suivants :

  • it's WAY too short (Le mot de passe est beaucoup trop court)
  • it is too short (Le mot de passe est trop court)
  • it does not contain enough DIFFERENT characters (Le mot de passe ne contient pas assez de caractères)
  • it is all whitespace (Le mot de passe ne contient que des espaces)
  • it is too simplistic/systematic (Le mot de passe est trop simple)
  • it looks like a National Insurance number. (Le mot de passe ressemble à un numéro d'assurance nationale.)
  • it is based on a dictionary word (Le mot de passe est basé sur un mot du dictionnaire)
  • it is based on a (reversed) dictionary word (Le mot de passe est basé sur un mot inversé du dictionnaire)
  • strong password (Le mot de passe est solide)

Voir aussi

  • crack_check() - Effectue une vérification de mot de passe


Ouvre un nouveau dictionnaire CrackLib

  • « crack_getlastmessage
  • CSPRNG »
  • PHP Manual
  • Fonctions Crack
  • Ouvre un nouveau dictionnaire CrackLib

crack_opendict

(PECL crack >= 0.1)

crack_opendict — Ouvre un nouveau dictionnaire CrackLib

Description

resource crack_opendict ( string $dictionary )

crack_opendict() ouvre le dictionnaire CrackLib dictionary pour être utilisé avec la fonction crack_check().

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note:

Un seul dictionnaire peut être ouvert à la fois.

Liste de paramètres

dictionary

Le chemin vers le dictionnaire CrackLib.

Valeurs de retour

Retourne un identifiant de ressource de dictionnaire en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • crack_check() - Effectue une vérification de mot de passe
  • crack_closedict() - Ferme un dictionnaire CrackLib


CSPRNG

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • CSPRNG Fonctions
    • random_bytes — Generates cryptographically secure pseudo-random bytes
    • random_int — Generates cryptographically secure pseudo-random integers


Introduction

The » cryptographically secure pseudo-random number generator (CSPRNG) API provides an easy and reliable way to generate crypto-strong random integers and bytes for use within cryptographic contexts.

Existe depuis PHP 7.0.0 but there is also a » userland implementation for PHP >= 5.2.0.


  • « Types de ressources
  • CSPRNG Fonctions »
  • PHP Manual
  • CSPRNG
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


CSPRNG Fonctions

Sommaire

  • random_bytes — Generates cryptographically secure pseudo-random bytes
  • random_int — Generates cryptographically secure pseudo-random integers


Generates cryptographically secure pseudo-random bytes

  • « CSPRNG Fonctions
  • random_int »
  • PHP Manual
  • CSPRNG Fonctions
  • Generates cryptographically secure pseudo-random bytes

random_bytes

(PHP 7)

random_bytes — Generates cryptographically secure pseudo-random bytes

Description

string random_bytes ( int $length )

Generates an arbitrary length string of cryptographic random bytes that are suitable for cryptographic use, such as when generating salts, keys or initialization vectors.

La source des données aléatoires utilisée pour cette fonction est :

  • Sous Windows, » CryptGenRandom() sera toujours utilisé.
  • Sous Linux, l'appel système » getrandom(2) sera utilisé si disponible.
  • Sous les autres plate-formes, /dev/urandom sera utilisé.
  • Si tout ce qui précède n'est pas disponible, alors une Exception sera émise.

Note: Bien que cette fonction ait été ajoutée en PHP 7.0, une » implementation en espace utilisateur est disponible pour PHP 5.2 jusqu'à 5.6, inclus.

Liste de paramètres

length

The length of the random string that should be returned in bytes.

Valeurs de retour

Returns a string containing the requested number of cryptographically secure random bytes.

Erreurs / Exceptions

  • Si aucune source de données aléatoires n'est trouvée, une Exception sera émise.
  • Si un paramètre invalide est fourni, une exception de type TypeError sera émise.
  • If an invalid length of bytes is given, an Error will be thrown.

Exemples

Exemple #1 random_bytes() example

<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(10) "385e33f741"

Voir aussi

  • random_int() - Generates cryptographically secure pseudo-random integers
  • openssl_random_pseudo_bytes() - Génère une chaine pseudo-aléatoire d'octets
  • bin2hex() - Convertit des données binaires en représentation hexadécimale


Generates cryptographically secure pseudo-random integers

  • « random_bytes
  • Hash »
  • PHP Manual
  • CSPRNG Fonctions
  • Generates cryptographically secure pseudo-random integers

random_int

(PHP 7)

random_int — Generates cryptographically secure pseudo-random integers

Description

int random_int ( int $min , int $max )

Generates cryptographic random integers that are suitable for use where unbiased results are critical, such as when shuffling a deck of cards for a poker game.

La source des données aléatoires utilisée pour cette fonction est :

  • Sous Windows, » CryptGenRandom() sera toujours utilisé.
  • Sous Linux, l'appel système » getrandom(2) sera utilisé si disponible.
  • Sous les autres plate-formes, /dev/urandom sera utilisé.
  • Si tout ce qui précède n'est pas disponible, alors une Exception sera émise.

Note: Bien que cette fonction ait été ajoutée en PHP 7.0, une » implementation en espace utilisateur est disponible pour PHP 5.2 jusqu'à 5.6, inclus.

Liste de paramètres

min

The lowest value to be returned, which must be PHP_INT_MIN or higher.

max

The highest value to be returned, which must be less than or equal to PHP_INT_MAX.

Valeurs de retour

Returns a cryptographically secure random integer in the range min to max, inclusive.

Erreurs / Exceptions

  • Si aucune source de données aléatoires n'est trouvée, une Exception sera émise.
  • Si un paramètre invalide est fourni, une exception de type TypeError sera émise.
  • If max is less than min, an Error will be thrown.

Exemples

Exemple #1 random_int() example

<?php
var_dump(random_int(100, 999));
var_dump(random_int(-1000, 0));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(248)
int(-898)

Voir aussi

  • random_bytes() - Generates cryptographically secure pseudo-random bytes


HASH

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Hash
    • hash_algos — Retourne une liste des algorithmes de hachage enregistrés
    • hash_copy — Copie un contexte de hashage
    • hash_equals — Comparaison de chaînes résistante aux attaques temporelles
    • hash_file — Génère une valeur de hachage en utilisant le contenu d'un fichier donné
    • hash_final — Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique
    • hash_hmac_file — Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné
    • hash_hmac — Génère une valeur de clé de hachage en utilisant la méthode HMAC
    • hash_init — Initialise un contexte de hachage incrémental
    • hash_pbkdf2 — Génère une clé PBKDF2 dérivée du mot de passe fourni
    • hash_update_file — Ajoute des données dans un contexte de hachage actif provenant d'un fichier
    • hash_update_stream — Ajoute des données dans un contexte de hachage actif d'un flux ouvert
    • hash_update — Ajoute des données dans le contexte de hachage actif
    • hash — Génère une valeur de hachage (empreinte numérique)


Introduction

Moteur d'empreinte numérique. Permet le traitement direct ou incrémental de message de grandeur arbitraire en utilisant une variété d'algorithmes.


Pré-requis

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.


Installation

Depuis PHP 5.1.2, l'extension Hash est livrée et compilée dans PHP par défaut. default.

Elle peut être explicitement désactivé par l'utilisation du switch --disable-hash pour configure. Pour les versions antérieuses, il est possible d'inclure l'extension Hash en installant le » module PECL.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit une ressource Hash de contexte, retournée par la fonction hash_init().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

HASH_HMAC (entier)
Drapeau optionnel pour hash_init(). Indique que l'algorithme de clé HMAC doit être appliqué au contexte courant de hachage.


Fonctions Hash

Sommaire

  • hash_algos — Retourne une liste des algorithmes de hachage enregistrés
  • hash_copy — Copie un contexte de hashage
  • hash_equals — Comparaison de chaînes résistante aux attaques temporelles
  • hash_file — Génère une valeur de hachage en utilisant le contenu d'un fichier donné
  • hash_final — Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique
  • hash_hmac_file — Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné
  • hash_hmac — Génère une valeur de clé de hachage en utilisant la méthode HMAC
  • hash_init — Initialise un contexte de hachage incrémental
  • hash_pbkdf2 — Génère une clé PBKDF2 dérivée du mot de passe fourni
  • hash_update_file — Ajoute des données dans un contexte de hachage actif provenant d'un fichier
  • hash_update_stream — Ajoute des données dans un contexte de hachage actif d'un flux ouvert
  • hash_update — Ajoute des données dans le contexte de hachage actif
  • hash — Génère une valeur de hachage (empreinte numérique)


Retourne une liste des algorithmes de hachage enregistrés

  • « Fonctions Hash
  • hash_copy »
  • PHP Manual
  • Fonctions Hash
  • Retourne une liste des algorithmes de hachage enregistrés

hash_algos

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_algos — Retourne une liste des algorithmes de hachage enregistrés

Description

array hash_algos ( void )

Valeurs de retour

Retourne un tableau indexé numériquement contenant la liste des algorithmes de hachage supportés.

Historique

Version | Description
5.6.0 | Le support de gost-crypto a été ajouté. Il implémente la fonction de hashage GOST utilisant les tables CryptoPro S-box, tel que spécifié par la » RFC 4357, section 11.2.
5.4.0 | Ajout du support pour joaat, fnv132 et fnv164. Suppression du support pour Salsa10 et Salsa20.
5.3.0 | Ajout du support pour md2, ripemd256, ripemd320, salsa10, salsa20, snefru256 et sha224

Exemples

Exemple #1 Exemple avec hash_algos()

Dans PHP 5.6.0, hash_algos() retournera la liste d'algorithmes suivante :

<?php
print_r(hash_algos());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha224
    [5] => sha256
    [6] => sha384
    [7] => sha512
    [8] => ripemd128
    [9] => ripemd160
    [10] => ripemd256
    [11] => ripemd320
    [12] => whirlpool
    [13] => tiger128,3
    [14] => tiger160,3
    [15] => tiger192,3
    [16] => tiger128,4
    [17] => tiger160,4
    [18] => tiger192,4
    [19] => snefru
    [20] => snefru256
    [21] => gost
    [22] => gost-crypto
    [23] => adler32
    [24] => crc32
    [25] => crc32b
    [26] => fnv132
    [27] => fnv1a32
    [28] => fnv164
    [29] => fnv1a64
    [30] => joaat
    [31] => haval128,3
    [32] => haval160,3
    [33] => haval192,3
    [34] => haval224,3
    [35] => haval256,3
    [36] => haval128,4
    [37] => haval160,4
    [38] => haval192,4
    [39] => haval224,4
    [40] => haval256,4
    [41] => haval128,5
    [42] => haval160,5
    [43] => haval192,5
    [44] => haval224,5
    [45] => haval256,5
)


Copie un contexte de hashage

  • « hash_algos
  • hash_equals »
  • PHP Manual
  • Fonctions Hash
  • Copie un contexte de hashage

hash_copy

(PHP 5 >= 5.3.0, PHP 7)

hash_copy — Copie un contexte de hashage

Description

resource hash_copy ( resource $context )

Liste de paramètres

context

Contexte de hashage, retourné par la fonction hash_init().

Valeurs de retour

Retourne une copie du contexte de hashage.

Exemples

Exemple #1 Exemple avec hash_copy()

<?php
$context = hash_init("md5");
hash_update($context, "data");

/* copie le contexte afin de pouvoir continuer à l'utiliser */
$copy_context = hash_copy($context);

echo hash_final($context), "\n";

hash_update($copy_context, "data");
echo hash_final($copy_context), "\n";
?>

L'exemple ci-dessus va afficher :

8d777f385d3dfec8815d20f7496026dc
511ae0b1c13f95e5f08f1a0dd3da3d93


Comparaison de chaînes résistante aux attaques temporelles

  • « hash_copy
  • hash_file »
  • PHP Manual
  • Fonctions Hash
  • Comparaison de chaînes résistante aux attaques temporelles

hash_equals

(PHP 5 >= 5.6.0, PHP 7)

hash_equals — Comparaison de chaînes résistante aux attaques temporelles

Description

bool hash_equals ( string $known_string , string $user_string )

Compare deux chaînes en utilisant la même durée qu'elles soient égales ou non.

Cette fonction devrait être utilisée pour limiter les attaques temporelles ; par exemple, lors d'un test de mots de passe hashés avec crypt().

Liste de paramètres

known_string

La string de longueur connue servant de référence pour la comparaison

user_string

La chaîne fournie par l'utilisateur

Valeurs de retour

Retourne TRUE si les deux chaînes sont égales, FALSE sinon.

Erreurs / Exceptions

Emets une alerte de type E_WARNING quand l'un ou l'autre des paramètres passés n'est pas une chaîne.

Exemples

Exemple #1 Exemple

<?php
$expected  = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$correct   = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$incorrect = crypt('apple',  '$2a$07$usesomesillystringforsalt$');

var_dump(hash_equals($expected, $correct));
var_dump(hash_equals($expected, $incorrect));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Notes

Note:

Les deux arguments doivent être de même longueur pour être comparés avec succès. Quand des arguments de longueur différente sont passés, FALSE est retourné immédiatement et la longueur de la chaîne connue peut être dévoilée en cas d'attaque temporelle.

Note:

Il est important de passer la chaîne fournie par l'utilisateur en second paramètre plutôt qu'en premier.


Génère une valeur de hachage en utilisant le contenu d'un fichier donné

  • « hash_equals
  • hash_final »
  • PHP Manual
  • Fonctions Hash
  • Génère une valeur de hachage en utilisant le contenu d'un fichier donné

hash_file

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_file — Génère une valeur de hachage en utilisant le contenu d'un fichier donné

Description

string hash_file ( string $algo , string $filename [, bool $raw_output = false ] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.)

filename

URL indiquant l'emplacement du fichier qui sera haché; Supporte les enveloppes fopen().

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple #1 Exemple avec hash_file()

<?php
/* Crée un fichier pour calculer son empreinte numérique */
file_put_contents('exemple.txt', 'Le rapide goupil brun sauta par dessus le chien paresseux.');

echo hash_file('md5', 'exemple.txt');
?>

L'exemple ci-dessus va afficher :

2dfe052a8caca3db869ede6ae544cd5d

Voir aussi

  • hash() - Génère une valeur de hachage (empreinte numérique)
  • hash_hmac_file() - Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné
  • hash_update_file() - Ajoute des données dans un contexte de hachage actif provenant d'un fichier
  • md5_file() - Calcule le md5 d'un fichier
  • sha1_file() - Calcule le sha1 d'un fichier


Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique

  • « hash_file
  • hash_hmac_file »
  • PHP Manual
  • Fonctions Hash
  • Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique

hash_final

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_final — Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique

Description

string hash_final ( resource $context [, bool $raw_output = false ] )

Liste de paramètres

context

Contexte de hachage retourné par hash_init().

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple #1 Exemple avec hash_final()

<?php
$ctx = hash_init('sha1');
hash_update($ctx, 'Le rapide goupil brun sauta par dessus le chien paresseux.');
echo hash_final($ctx);
?>

L'exemple ci-dessus va afficher :

7d36f32a7c271e74a44d759b89d19bbaf1b53904

Voir aussi

  • hash_init() - Initialise un contexte de hachage incrémental
  • hash_update() - Ajoute des données dans le contexte de hachage actif
  • hash_update_stream() - Ajoute des données dans un contexte de hachage actif d'un flux ouvert
  • hash_update_file() - Ajoute des données dans un contexte de hachage actif provenant d'un fichier


Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné

  • « hash_final
  • hash_hmac »
  • PHP Manual
  • Fonctions Hash
  • Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné

hash_hmac_file

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_hmac_file — Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné

Description

string hash_hmac_file ( string $algo , string $filename , string $key [, bool $raw_output = false ] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.). Voir la documentation sur la fonction hash_algos() pour connaitre la liste des algorithmes supportés.

filename

URL indiquant l'emplacement du fichier qui sera haché; Supporte les enveloppes fopen().

key

Clé secrète partagée utilisée pour générer la variance HMAC de l'empreinte numérique.

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple #1 Exemple avec hash_hmac_file()

<?php
/* Crée un fichier pour calculer son empreinte numérique */
file_put_contents('exemple.txt', 'Le rapide goupil brun sauta par dessus le chien paresseux.');

echo hash_hmac_file('md5', 'exemple.txt', 'secret');
?>

L'exemple ci-dessus va afficher :

0d68e079ae8a5d364df207637e4f6860

Voir aussi

  • hash_algos() - Retourne une liste des algorithmes de hachage enregistrés
  • hash_hmac() - Génère une valeur de clé de hachage en utilisant la méthode HMAC
  • hash_file() - Génère une valeur de hachage en utilisant le contenu d'un fichier donné


Génère une valeur de clé de hachage en utilisant la méthode HMAC

  • « hash_hmac_file
  • hash_init »
  • PHP Manual
  • Fonctions Hash
  • Génère une valeur de clé de hachage en utilisant la méthode HMAC

hash_hmac

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_hmac — Génère une valeur de clé de hachage en utilisant la méthode HMAC

Description

string hash_hmac ( string $algo , string $data , string $key [, bool $raw_output = false ] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.). Voir la documentation de la fonction hash_algos() pour une liste des algorithmes supportés.

data

Le message qui sera haché.

key

Clé secrète partagée utilisée pour générer la variance HMAC de l'empreinte numérique.

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée. Retourne FALSE lorsque le paramètre algo n'est pas une valeur valide.

Exemples

Exemple #1 Exemple avec hash_hmac()

<?php
echo hash_hmac('ripemd160', 'Le rapide goupil brun sauta par dessus le chien paresseux.', 'secret');
?>

L'exemple ci-dessus va afficher :

a6f41314c7a3482836268cf504b066e08216e40f

Voir aussi

  • hash() - Génère une valeur de hachage (empreinte numérique)
  • hash_algos() - Retourne une liste des algorithmes de hachage enregistrés
  • hash_init() - Initialise un contexte de hachage incrémental
  • hash_hmac_file() - Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné


Initialise un contexte de hachage incrémental

  • « hash_hmac
  • hash_pbkdf2 »
  • PHP Manual
  • Fonctions Hash
  • Initialise un contexte de hachage incrémental

hash_init

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_init — Initialise un contexte de hachage incrémental

Description

resource hash_init ( string $algo [, int $options = 0 [, string $key = NULL ]] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.). Pour une liste des algorithmes supportés, reportez-vous à la documentation sur la fonction hash_algos().

options

Configurations optionnelles pour la génération du hachage, supporte actuellement seulement une option : HASH_HMAC. Lorsque cette option est spécifiée, le paramètre key doit être spécifié.

key

Lorsque HASH_HMAC est spécifiée pour options, une clé secrète partagée qui sera utilisée avec la méthode de hachage HMAC doit être fournie dans ce paramètre.

Valeurs de retour

Retourne une ressource de Contexte de Hachage pour utilisation avec hash_update(), hash_update_stream(), hash_update_file() et hash_final().

Exemples

Exemple #1 Exemple de hashage incrémental

<?php
$ctx = hash_init('md5');
hash_update($ctx, 'Le rapide goupil brun ');
hash_update($ctx, 'sauta par dessus le chien paresseux.');
echo hash_final($ctx);
?>

L'exemple ci-dessus va afficher :

2dfe052a8caca3db869ede6ae544cd5d

Voir aussi

  • hash() - Génère une valeur de hachage (empreinte numérique)
  • hash_algos() - Retourne une liste des algorithmes de hachage enregistrés
  • hash_file() - Génère une valeur de hachage en utilisant le contenu d'un fichier donné
  • hash_hmac() - Génère une valeur de clé de hachage en utilisant la méthode HMAC
  • hash_hmac_file() - Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné


Génère une clé PBKDF2 dérivée du mot de passe fourni

  • « hash_init
  • hash_update_file »
  • PHP Manual
  • Fonctions Hash
  • Génère une clé PBKDF2 dérivée du mot de passe fourni

hash_pbkdf2

(PHP 5 >= 5.5.0, PHP 7)

hash_pbkdf2 — Génère une clé PBKDF2 dérivée du mot de passe fourni

Description

string hash_pbkdf2 ( string $algo , string $password , string $salt , int $iterations [, int $length = 0 [, bool $raw_output = false ]] )

Liste de paramètres

algo

Nom de l'algorithme de hashage sélectionné (i.e. md5, sha256, haval160,4, etc..). Voir la fonction hash_algos() pour une liste des algorithmes supportés.

password

Le mot de passe à utiliser pour la dérivation.

salt

Le salt à utiliser pour la dérivation. Cette valeur doit être générée aléatoirement.

iterations

Le nombre d'itérations internes pour effectuer la dérivation.

length

La longueur de la chaîne de sortie. Si le paramètre raw_output vaut TRUE, ce paramètre correspondra à la longueur, en octets, de la clé dérivée ; si le paramètre raw_output vaut FALSE, il correspondra à deux fois la longueur, en octets, de la clé dérivée (vu que chaque octet de la clé est retournée sur deux hexits).

Si 0 est passé, la sortie complète de l'algorithme choisi sera utilisée.

raw_output

Lorsque définit à TRUE, la fonction affichera les données binaires brutes. Si vaut FALSE, l'affichage se fera en minuscule.

Valeurs de retour

Retourne une chaîne contenant la clé dérivée en minuscule, à moins que le paramètre raw_output ne soit positionné à TRUE auquel cas, la représentation binaire brute de la clé dérivée sera retournée.

Erreurs / Exceptions

Une alerte de type E_WARNING sera émise si l'algorithme n'est pas connu, si le paramètre iterations est inférieur ou égal à 0, si la longueur length est inférieure ou égale à 0 ou si le salt est trop long (plus grand que INT_MAX - 4).

Exemples

Exemple #1 Exemple avec hash_pbkdf2()

<?php
$password = "password";
$iterations = 1000;

// Génère un IV aléatoire en utilisant la fonction mcrypt_create_iv(),
// openssl_random_pseudo_bytes() ou tout autre source aléatoire correspondante
$salt = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM);

$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 20);
echo $hash;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

120fb6cffcf8b32c43e7

Notes

Attention

La méthode PBKDF2 peut être utilisée pour hasher des mots de passe pour le stockage. Cependant, vous devez garder à l'esprit que la fonction password_hash() ou la fonction crypt() avec la constante CRYPT_BLOWFISH est meilleur pour cet usage.

Voir aussi

  • crypt() - Hachage à sens unique (indéchiffrable)
  • password_hash() - Crée une clé de hachage pour un mot de passe
  • hash() - Génère une valeur de hachage (empreinte numérique)
  • hash_algos() - Retourne une liste des algorithmes de hachage enregistrés
  • hash_init() - Initialise un contexte de hachage incrémental
  • hash_hmac() - Génère une valeur de clé de hachage en utilisant la méthode HMAC
  • hash_hmac_file() - Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné


Ajoute des données dans un contexte de hachage actif provenant d'un fichier

  • « hash_pbkdf2
  • hash_update_stream »
  • PHP Manual
  • Fonctions Hash
  • Ajoute des données dans un contexte de hachage actif provenant d'un fichier

hash_update_file

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_update_file — Ajoute des données dans un contexte de hachage actif provenant d'un fichier

Description

bool hash_update_file ( resource $hcontext , string $filename [, resource $scontext = NULL ] )

Liste de paramètres

hcontext

Contexte de hachage retourné par hash_init().

filename

URL indiquant l'emplacement du fichier qui sera haché; Supporte les enveloppes fopen().

scontext

Contexte de flux retourné par stream_context_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • hash_init() - Initialise un contexte de hachage incrémental
  • hash_update() - Ajoute des données dans le contexte de hachage actif
  • hash_update_stream() - Ajoute des données dans un contexte de hachage actif d'un flux ouvert
  • hash_final() - Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique
  • hash() - Génère une valeur de hachage (empreinte numérique)
  • hash_file() - Génère une valeur de hachage en utilisant le contenu d'un fichier donné


Ajoute des données dans un contexte de hachage actif d'un flux ouvert

  • « hash_update_file
  • hash_update »
  • PHP Manual
  • Fonctions Hash
  • Ajoute des données dans un contexte de hachage actif d'un flux ouvert

hash_update_stream

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_update_stream — Ajoute des données dans un contexte de hachage actif d'un flux ouvert

Description

int hash_update_stream ( resource $context , resource $handle [, int $length = -1 ] )

Liste de paramètres

context

Contexte de hachage retourné par hash_init().

handle

Identifiant de fichier ouvert comme retourné par n'importe quelle fonction de création de flux.

length

Taille maximale de caractères à copier de handle dans le contexte de hachage.

Valeurs de retour

Nombre actuel d'octets ajoutés au contexte de hachage de handle.

Exemples

Exemple #1 Exemple avec hash_update_stream()

<?php
$fp = tmpfile();
fwrite($fp, 'Le rapide goupil brun sauta par dessus le chien paresseux.');
rewind($fp);

$ctx = hash_init('md5');
hash_update_stream($ctx, $fp);
echo hash_final($ctx);
?>

L'exemple ci-dessus va afficher :

2dfe052a8caca3db869ede6ae544cd5d

Voir aussi

  • hash_init() - Initialise un contexte de hachage incrémental
  • hash_update() - Ajoute des données dans le contexte de hachage actif
  • hash_final() - Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique
  • hash() - Génère une valeur de hachage (empreinte numérique)
  • hash_file() - Génère une valeur de hachage en utilisant le contenu d'un fichier donné


Ajoute des données dans le contexte de hachage actif

  • « hash_update_stream
  • hash »
  • PHP Manual
  • Fonctions Hash
  • Ajoute des données dans le contexte de hachage actif

hash_update

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_update — Ajoute des données dans le contexte de hachage actif

Description

bool hash_update ( resource $context , string $data )

Liste de paramètres

context

Contexte de hachage retourné par hash_init().

data

Message qui sera inclut dans l'empreinte de hachage.

Valeurs de retour

Retourne TRUE.

Voir aussi

  • hash_init() - Initialise un contexte de hachage incrémental
  • hash_update_file() - Ajoute des données dans un contexte de hachage actif provenant d'un fichier
  • hash_update_stream() - Ajoute des données dans un contexte de hachage actif d'un flux ouvert
  • hash_final() - Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique


Génère une valeur de hachage (empreinte numérique)

  • « hash_update
  • Mcrypt »
  • PHP Manual
  • Fonctions Hash
  • Génère une valeur de hachage (empreinte numérique)

hash

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash — Génère une valeur de hachage (empreinte numérique)

Description

string hash ( string $algo , string $data [, bool $raw_output = false ] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.)

data

Message à hacher.

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Historique

Version | Description
5.4.0 | L'algorithme tiger utilise désormais l'ordre des octets big-endian. Voir l'exemple ci-dessous.

Exemples

Exemple #1 Exemple avec hash()

<?php
echo hash('ripemd160', 'Le rapide goupil brun sauta par dessus le chien paresseux.');
?>

L'exemple ci-dessus va afficher :

cdb8426cb020896cea1d040e62a0f8cf9f5b4226

Exemple #2 Exemple avec PHP-5.4 et supérieur

<?php
function old_tiger($data = "", $width=192, $rounds = 3) {
    return substr(
        implode(
            array_map(
                function ($h) {
                    return str_pad(bin2hex(strrev($h)), 16, "0");
                },
                str_split(hash("tiger192,$rounds", $data, true), 8)
            )
        ),
        0, 48-(192-$width)/4
    );
}
echo hash('tiger192,3', 'a-string'), PHP_EOL;
echo old_tiger('a-string'), PHP_EOL;
?>

Résultat de l'exemple ci-dessus en PHP 5.3 :

146a7492719b3564094efe7abbd40a7416fd900179d02773
64359b7192746a14740ad4bb7afe4e097327d0790190fd16

Résultat de l'exemple ci-dessus en PHP 5.4 :

64359b7192746a14740ad4bb7afe4e097327d0790190fd16
146a7492719b3564094efe7abbd40a7416fd900179d02773

Voir aussi

  • hash_file() - Génère une valeur de hachage en utilisant le contenu d'un fichier donné
  • hash_hmac() - Génère une valeur de clé de hachage en utilisant la méthode HMAC
  • hash_init() - Initialise un contexte de hachage incrémental
  • md5() - Calcule le md5 d'une chaîne
  • sha1() - Calcule le sha1 d'une chaîne de caractères


Mcrypt

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Modes de chiffrement Mcrypt
  • Exemples
  • Fonctions Mcrypt
    • mcrypt_cbc — Chiffre/déchiffre des données en mode CBC
    • mcrypt_cfb — Chiffre/déchiffre des données en mode CFB
    • mcrypt_create_iv — Crée un vecteur d'initialisation (IV) à partir d'une source aléatoire
    • mcrypt_decrypt — Déchiffre un texte avec les paramètres donnés
    • mcrypt_ecb — Obsolète : Chiffre/déchiffre des données en mode ECB
    • mcrypt_enc_get_algorithms_name — Retourne le nom de l'algorithme de chiffrement
    • mcrypt_enc_get_block_size — Retourne la taille du bloc d'un algorithme
    • mcrypt_enc_get_iv_size — Retourne la taille du VI d'un algorithme
    • mcrypt_enc_get_key_size — Retourne la taille maximale de la clé pour un mode
    • mcrypt_enc_get_modes_name — Retourne le nom du mode
    • mcrypt_enc_get_supported_key_sizes — Retourne un tableau contenant les tailles de clés acceptées par un algorithme
    • mcrypt_enc_is_block_algorithm_mode — Teste le chiffrement par blocs d'un mode
    • mcrypt_enc_is_block_algorithm — Teste le chiffrement par blocs d'un algorithme
    • mcrypt_enc_is_block_mode — Teste si le mode retourne les données par blocs
    • mcrypt_enc_self_test — Teste un module ouvert
    • mcrypt_encrypt — Chiffre un texte
    • mcrypt_generic_deinit — Prépare le module pour le déchargement
    • mcrypt_generic_end — Termine un chiffrement
    • mcrypt_generic_init — Initialise tous les buffers nécessaires
    • mcrypt_generic — Chiffre les données
    • mcrypt_get_block_size — Retourne la taille de blocs d'un chiffrement
    • mcrypt_get_cipher_name — Lit le nom du chiffrement utilisé
    • mcrypt_get_iv_size — Retourne la taille du VI utilisé par un couple chiffrement/mode
    • mcrypt_get_key_size — Retourne la taille de la clé de chiffrement
    • mcrypt_list_algorithms — Liste tous les algorithmes de chiffrement supportés
    • mcrypt_list_modes — Liste tous les modes de chiffrement supportés
    • mcrypt_module_close — Décharge le module de chiffrement
    • mcrypt_module_get_algo_block_size — Retourne la taille de blocs d'un algorithme
    • mcrypt_module_get_algo_key_size — Retourne la taille maximale de clé
    • mcrypt_module_get_supported_key_sizes — Retourne un tableau contenant les tailles de clés supportées par l'algorithme ouvert
    • mcrypt_module_is_block_algorithm_mode — Indique si un mode fonctionne par blocs
    • mcrypt_module_is_block_algorithm — Indique si un algorithme fonctionne par blocs
    • mcrypt_module_is_block_mode — Indique si un mode travaille par blocs
    • mcrypt_module_open — Ouvre le module de l'algorithme et du mode à utiliser
    • mcrypt_module_self_test — Teste un mode
    • mcrypt_ofb — Chiffre/déchiffre des données en mode OFB
    • mdecrypt_generic — Déchiffre les données


Introduction

Ces fonctions permettent d'accéder à la bibliothèque mcrypt, qui dispose d'une grande variété d'algorithmes de chiffrement, tels DES, TripleDES, Blowfish (par défaut), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 et GOST en modes CBC, OFB, CFB et ECB. De plus, elles acceptent aussi RC6 et IDEA qui sont considérés comme "non-libres". CFB/OFB est sur 8bit par défaut.


Pré-requis

Ces fonctions utilisent » mcrypt. Pour utiliser cette bibliothèque, téléchargez le fichier libmcrypt-x.x.tar.gz sur » http://mcrypt.sourceforge.net/ et suivez les instructions d'installation fournies.

Depuis PHP 5.0.0, vous avez besoin de la version 2.5.6 ou suivant de la bibliothèque libmcrypt.

Les utilisateurs de Windows trouveront la bibliothèque dans la version Windows de PHP 5.3. La version binaire Windows de PHP 5.3 utilise la version statique de la bibliothèque MCrypt, aucune DLL n'est nécessaire.

Si vous compilez PHP avec la bibliothèque libmcrypt 2.4.x, les algorithmes suivants sont supportés : "CAST", "LOKI97", "RIJNDAEL", "SAFERPLUS", "SERPENT" ainsi que les chiffrements suivants : "ENIGMA" (chiffrement), "PANAMA", "RC4" et "WAKE". Avec libmcrypt 2.4.x un autre mode de chiffrement est disponible : "nOFB".


Installation

Vous devez compiler PHP avec l'option --with-mcrypt=[DIR] pour activer cette extension. DIR est le dossier d'installation de mcrypt. Assurez-vous de compiler libmcrypt avec l'option --disable-posix-threads .


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration mcrypt
Nom | Défaut | Modifiable | Historique
mcrypt.algorithms_dir | NULL | PHP_INI_ALL |
mcrypt.modes_dir | NULL | PHP_INI_ALL |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mcrypt.algorithms_dir string

Le dossier contenant les algorithmes. Par défaut il s'agit du dossier indiqué à la compilation de libmcrypt, typiquement il s'agit de /usr/local/lib/libmcrypt. Voyez mcrypt_list_algorithms() pour plus de détails.

mcrypt.modes_dir string

Le dossier contenant les modes. Par défaut il s'agit du dossier indiqué à la compilation de libmcrypt, typiquement il s'agit de /usr/local/lib/libmcrypt. Voyez mcrypt_list_modes() pour plus de détails.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

mcrypt_module_open() retourne un pointeur de chiffrement.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Mcrypt peut opérer en 4 modes de chiffrement (CBC, OFB, CFB, et ECB). Si vous utilisez libmcrypt-2.4.x ou plus récent, les fonctions peuvent aussi opérer en mode nOFB et en mode STREAM. Nous allons présenter la technique d'utilisation de ces modes. Pour plus de références et de détails, reportez-vous au livre suivant : Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • MCRYPT_MODE_ECB (electronic codebook) est prévu pour des données aléatoires, telles que des clés. Comme les données sont peu nombreuses et aléatoires, les inconvénients de l'ECB ont ici un effet négatif favorable.
  • MCRYPT_MODE_CBC (cipher block chaining) est particulièrement pratique avec les fichiers dont la sécurité ECB n'est pas suffisante.
  • MCRYPT_MODE_CFB (cipher feedback) est la meilleure méthode pour chiffrer des flots d'octets, quand les octets doivent être chiffrés un par un.
  • MCRYPT_MODE_OFB (output feedback, in 8bit) est comparable à CFB, mais peut être utilisé lorsque des erreurs ne doivent pas être propagées.
  • MCRYPT_MODE_NOFB (output feedback, in nbit) est comparable à OFB, mais plus sûr, car il opère avec la taille de blocs de l'algorithme.
  • MCRYPT_MODE_STREAM est un mode supplémentaire, pour permettre l'utilisation d'algorithmes tels "WAKE" ou "RC4".

Voici quelques autres modes et méthodes de compression :

MCRYPT_ENCRYPT (entier)
MCRYPT_DECRYPT (entier)
MCRYPT_DEV_RANDOM (entier)
MCRYPT_DEV_URANDOM (entier)
MCRYPT_RAND (entier)


Modes de chiffrement Mcrypt

Voici une liste non exhaustive des modes de chiffrement de l'extension mcrypt. Pour disposer d'une liste complète des chiffrements supportés, voyez les définitions dans le fichier mcrypt.h. La règle générale avec l'API mcrypt-2.2.x est que vous pouvez accéder au mode de chiffrement depuis PHP avec la constante MCRYPT_ciphername. Avec la bibliothèque libmcrypt-2.4.x et libmcrypt-2.5.x, ces constantes fonctionnent toujours, mais il est possible de spécifier le nom du chiffrement dans une chaîne, lors de l'appel à mcrypt_module_open().

  • MCRYPT_3DES
  • MCRYPT_ARCFOUR_IV (libmcrypt > 2.4.x uniquement)
  • MCRYPT_ARCFOUR (libmcrypt > 2.4.x uniquement)
  • MCRYPT_BLOWFISH
  • MCRYPT_CAST_128
  • MCRYPT_CAST_256
  • MCRYPT_CRYPT
  • MCRYPT_DES
  • MCRYPT_DES_COMPAT (libmcrypt 2.2.x uniquement)
  • MCRYPT_ENIGMA (libmcrypt > 2.4.x uniquement, alias de MCRYPT_CRYPT)
  • MCRYPT_GOST
  • MCRYPT_IDEA (non libre)
  • MCRYPT_LOKI97 (libmcrypt > 2.4.x uniquement)
  • MCRYPT_MARS (libmcrypt > 2.4.x uniquement, non libre)
  • MCRYPT_PANAMA (libmcrypt > 2.4.x uniquement)
  • MCRYPT_RIJNDAEL_128 (libmcrypt > 2.4.x uniquement)
  • MCRYPT_RIJNDAEL_192 (libmcrypt > 2.4.x uniquement)
  • MCRYPT_RIJNDAEL_256 (libmcrypt > 2.4.x uniquement)
  • MCRYPT_RC2
  • MCRYPT_RC4 (libmcrypt 2.2.x uniquement)
  • MCRYPT_RC6 (libmcrypt > 2.4.x uniquement)
  • MCRYPT_RC6_128 (libmcrypt 2.2.x uniquement)
  • MCRYPT_RC6_192 (libmcrypt 2.2.x uniquement)
  • MCRYPT_RC6_256 (libmcrypt 2.2.x uniquement)
  • MCRYPT_SAFER64
  • MCRYPT_SAFER128
  • MCRYPT_SAFERPLUS (libmcrypt > 2.4.x uniquement)
  • MCRYPT_SERPENT(libmcrypt > 2.4.x uniquement)
  • MCRYPT_SERPENT_128 (libmcrypt 2.2.x uniquement)
  • MCRYPT_SERPENT_192 (libmcrypt 2.2.x uniquement)
  • MCRYPT_SERPENT_256 (libmcrypt 2.2.x uniquement)
  • MCRYPT_SKIPJACK (libmcrypt > 2.4.x uniquement)
  • MCRYPT_TEAN (libmcrypt 2.2.x uniquement)
  • MCRYPT_THREEWAY
  • MCRYPT_TRIPLEDES (libmcrypt > 2.4.x uniquement)
  • MCRYPT_TWOFISH (pour les anciennes versions de mcrypt 2.x ou mcrypt > 2.4.x )
  • MCRYPT_TWOFISH128 (TWOFISHxxx est disponible dans les nouvelles versions 2.x, mais pas dans les versions 2.4.x)
  • MCRYPT_TWOFISH192
  • MCRYPT_TWOFISH256
  • MCRYPT_WAKE (libmcrypt > 2.4.x uniquement)
  • MCRYPT_XTEA (libmcrypt > 2.4.x uniquement)

Vous devez (mode CFB et OFB) ou pouvez (mode CBC) fournir un vecteur d'initialisation (IV) pour ces modes de chiffrement. IV doit être unique, et avoir la même valeur au chiffrement et au déchiffrement. Pour des données qui seront enregistrées après chiffrement, vous pouvez prendre le résultat d'une fonction telle que MD5, appliquée sur le nom du fichier. Sinon, vous pouvez envoyer IV avec les données chiffrées, (reportez-vous au chapitre 9.3 de Applied Cryptography by Schneier (ISBN 0-471-11709-9) de Schneier (ISBN 0-471-11709-9) pour plus de détails sur le sujet).


Exemples

Mcrypt permet de chiffrer et de déchiffrer en utilisant les méthodes mentionnées ci-dessus. Si vous utilisez libmcrypt-2.2.x, les 4 commandes importantes (mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb() et mcrypt_ofb()) peuvent toutes opérer en mode MCRYPT_ENCRYPT et MCRYPT_DECRYPT.

Si vous avez compilé PHP avec libmcrypt 2.4.x ou 2.5.x, ces fonctions sont toujours disponibles, mais il est vivement conseillé d'utiliser les nouvelles fonctions avancées.

Exemple #1 Chiffrement d'une valeur avec AES avec une clé 256-bit sous 2.4.x et supérieur, en mode CBC

<?php
$key = hash('sha256', 'this is a secret key', true);
$input = "Rendez-vous à 9 heures, dans notre planque.";

$td = mcrypt_module_open('rijndael-128', '', 'cbc', '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_URANDOM);
mcrypt_generic_init($td, $key, $iv);
$encrypted_data = mcrypt_generic($td, $input);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
?>
Cet exemple va retourner les données cryptées dans la variable $encrypted_data. Pour un exemple complet, voyez mcrypt_module_open().


Fonctions Mcrypt

Sommaire

  • mcrypt_cbc — Chiffre/déchiffre des données en mode CBC
  • mcrypt_cfb — Chiffre/déchiffre des données en mode CFB
  • mcrypt_create_iv — Crée un vecteur d'initialisation (IV) à partir d'une source aléatoire
  • mcrypt_decrypt — Déchiffre un texte avec les paramètres donnés
  • mcrypt_ecb — Obsolète : Chiffre/déchiffre des données en mode ECB
  • mcrypt_enc_get_algorithms_name — Retourne le nom de l'algorithme de chiffrement
  • mcrypt_enc_get_block_size — Retourne la taille du bloc d'un algorithme
  • mcrypt_enc_get_iv_size — Retourne la taille du VI d'un algorithme
  • mcrypt_enc_get_key_size — Retourne la taille maximale de la clé pour un mode
  • mcrypt_enc_get_modes_name — Retourne le nom du mode
  • mcrypt_enc_get_supported_key_sizes — Retourne un tableau contenant les tailles de clés acceptées par un algorithme
  • mcrypt_enc_is_block_algorithm_mode — Teste le chiffrement par blocs d'un mode
  • mcrypt_enc_is_block_algorithm — Teste le chiffrement par blocs d'un algorithme
  • mcrypt_enc_is_block_mode — Teste si le mode retourne les données par blocs
  • mcrypt_enc_self_test — Teste un module ouvert
  • mcrypt_encrypt — Chiffre un texte
  • mcrypt_generic_deinit — Prépare le module pour le déchargement
  • mcrypt_generic_end — Termine un chiffrement
  • mcrypt_generic_init — Initialise tous les buffers nécessaires
  • mcrypt_generic — Chiffre les données
  • mcrypt_get_block_size — Retourne la taille de blocs d'un chiffrement
  • mcrypt_get_cipher_name — Lit le nom du chiffrement utilisé
  • mcrypt_get_iv_size — Retourne la taille du VI utilisé par un couple chiffrement/mode
  • mcrypt_get_key_size — Retourne la taille de la clé de chiffrement
  • mcrypt_list_algorithms — Liste tous les algorithmes de chiffrement supportés
  • mcrypt_list_modes — Liste tous les modes de chiffrement supportés
  • mcrypt_module_close — Décharge le module de chiffrement
  • mcrypt_module_get_algo_block_size — Retourne la taille de blocs d'un algorithme
  • mcrypt_module_get_algo_key_size — Retourne la taille maximale de clé
  • mcrypt_module_get_supported_key_sizes — Retourne un tableau contenant les tailles de clés supportées par l'algorithme ouvert
  • mcrypt_module_is_block_algorithm_mode — Indique si un mode fonctionne par blocs
  • mcrypt_module_is_block_algorithm — Indique si un algorithme fonctionne par blocs
  • mcrypt_module_is_block_mode — Indique si un mode travaille par blocs
  • mcrypt_module_open — Ouvre le module de l'algorithme et du mode à utiliser
  • mcrypt_module_self_test — Teste un mode
  • mcrypt_ofb — Chiffre/déchiffre des données en mode OFB
  • mdecrypt_generic — Déchiffre les données


Chiffre/déchiffre des données en mode CBC

  • « Fonctions Mcrypt
  • mcrypt_cfb »
  • PHP Manual
  • Fonctions Mcrypt
  • Chiffre/déchiffre des données en mode CBC

mcrypt_cbc

(PHP 4, PHP 5)

mcrypt_cbc — Chiffre/déchiffre des données en mode CBC

Description

string mcrypt_cbc ( int $cipher , string $key , string $data , int $mode [, string $iv ] )
string mcrypt_cbc ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x. Le paramètre mode doit être MCRYPT_ENCRYPT ou MCRYPT_DECRYPT.

mcrypt_cbc() ne doit plus être utilisée. Vous pouvez la remplacer par mcrypt_generic() et mdecrypt_generic().

Avertissement

Cette fonction était obsolète en PHP 5.5.0, et a été supprimée depuis PHP 7.0.0.


Chiffre/déchiffre des données en mode CFB

  • « mcrypt_cbc
  • mcrypt_create_iv »
  • PHP Manual
  • Fonctions Mcrypt
  • Chiffre/déchiffre des données en mode CFB

mcrypt_cfb

(PHP 4, PHP 5)

mcrypt_cfb — Chiffre/déchiffre des données en mode CFB

Description

string mcrypt_cfb ( int $cipher , string $key , string $data , int $mode , string $iv )
string mcrypt_cfb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x. Le paramètre mode doit être MCRYPT_ENCRYPT ou MCRYPT_DECRYPT.

mcrypt_cfb() ne doit plus être utilisée. Vous pouvez la remplacer par mcrypt_generic() et mdecrypt_generic().

Avertissement

Cette fonction était obsolète en PHP 5.5.0, et a été supprimée depuis PHP 7.0.0.


Crée un vecteur d'initialisation (IV) à partir d'une source aléatoire

  • « mcrypt_cfb
  • mcrypt_decrypt »
  • PHP Manual
  • Fonctions Mcrypt
  • Crée un vecteur d'initialisation (IV) à partir d'une source aléatoire

mcrypt_create_iv

(PHP 4, PHP 5, PHP 7)

mcrypt_create_iv — Crée un vecteur d'initialisation (IV) à partir d'une source aléatoire

Description

string mcrypt_create_iv ( int $size [, int $source = MCRYPT_DEV_URANDOM ] )

mcrypt_create_iv() crée un IV (vecteur d'initialisation) à partir d'une source aléatoire.

Le vecteur d'initialisation est le seul moyen de fournir une initialisation de remplacement aux méthodes d'initialisation. Ce vecteur n'a pas besoin d'être particulièrement secret, même si c'est mieux. Vous pouvez l'envoyer avec vos documents chiffrés sans perdre en sécurité.

Liste de paramètres

size

La taille du vecteur.

source

La source d'un IV. La source peut être MCRYPT_RAND (le générateur de nombre aléatoire du système), MCRYPT_DEV_RANDOM (lit les données depuis /dev/random) et MCRYPT_DEV_URANDOM (lit les données depuis /dev/urandom). Avant la version 5.3.0, MCRYPT_RAND était la seule constante supportée par Windows.

Notez que la valeur par défaut de ce paramètre était MCRYPT_DEV_RANDOM avant PHP 5.6.0.

Valeurs de retour

Retourne le vecteur d'initialisation, ou bien FALSE en cas d'erreur.

Historique

Version | Description
5.6.0 | MCRYPT_DEV_URANDOM est maintenant la valeur par défaut du paramètre source.
5.3.0 | MCRYPT_DEV_RANDOM et MCRYPT_DEV_URANDOM deviennent disponibles sous Windows.
5.3.0 | Il n'est plus nécessaire d'appeler srand() dans un premier temps. Cet appel est maintenant fait automatiquement.

Exemples

Exemple #1 Exemple avec mcrypt_create_iv()

<?php
     $size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
     $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
     ?>

Voir aussi

  • » http://www.ciphersbyritter.com/GLOSSARY.HTM#IV
  • » http://www.quadibloc.com/crypto/co0409.htm
  • Chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9)


Déchiffre un texte avec les paramètres donnés

  • « mcrypt_create_iv
  • mcrypt_ecb »
  • PHP Manual
  • Fonctions Mcrypt
  • Déchiffre un texte avec les paramètres donnés

mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_decrypt — Déchiffre un texte avec les paramètres donnés

Description

string mcrypt_decrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )

Déchiffre les données data et retourne les données déchiffrées.

Liste de paramètres

cipher

Une constante parmi les constantes MCRYPT_ciphername, ou le nom de l'algorithme, sous la forme d'une chaîne de caractères.

key

La clé utilisée lors du chiffrement des données. Si la taille de la clé fournit n'est pas supportée par le cipher, la fonction émettra un warning et retournera FALSE

data

Les données qui seront déchiffrées avec utilisant les paramètres cipher et mode. Si la taille des données ne correspond pas à n * la taille du bloc, les données seront complétées par des '\0'.

mode

Une constantes parmi les constantes MCRYPT_MODE_modename, ou une des chaînes suivantes : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

iv

Utilisé pour l'initialisation des modes CBC, CFB, OFB, ainsi que dans quelques algorithmes du mode STREAM. Si la taille de l'IV fourni n'est pas supporté par le mode d'opération ou si vous ne fournissez pas d'IV, mais que le mode d'opération en requiert un, la fonction émettra un avertissement et retournera FALSE.

Valeurs de retour

Retourne les données déchiffrées sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Historique

Version | Description
5.6.0 | Des tailles de clés et IV invalides ne sont plus acceptées. mcrypt_decrypt() va maintenant émettre un warning et retourner FALSE. Précédemment les clés et IVs étaient complétées avec des '\0' jusqu'a la prochaine taille valide.

Voir aussi

  • mcrypt_encrypt() - Chiffre un texte


Obsolète : Chiffre/déchiffre des données en mode ECB

  • « mcrypt_decrypt
  • mcrypt_enc_get_algorithms_name »
  • PHP Manual
  • Fonctions Mcrypt
  • Obsolète : Chiffre/déchiffre des données en mode ECB

mcrypt_ecb

(PHP 4, PHP 5)

mcrypt_ecb — Obsolète : Chiffre/déchiffre des données en mode ECB

Description

string mcrypt_ecb ( int $cipher , string $key , string $data , int $mode )
string mcrypt_ecb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x. Le paramètre mode doit être MCRYPT_ENCRYPT ou MCRYPT_DECRYPT.

mcrypt_ecb() ne doit plus être utilisée. Vous pouvez la remplacer par mcrypt_generic() et mdecrypt_generic().

Avertissement

Cette fonction était obsolète en PHP 5.5.0, et a été supprimée depuis PHP 7.0.0.


Retourne le nom de l'algorithme de chiffrement

  • « mcrypt_ecb
  • mcrypt_enc_get_block_size »
  • PHP Manual
  • Fonctions Mcrypt
  • Retourne le nom de l'algorithme de chiffrement

mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_get_algorithms_name — Retourne le nom de l'algorithme de chiffrement

Description

string mcrypt_enc_get_algorithms_name ( resource $td )

mcrypt_enc_get_algorithms_name() retourne le nom de l'algorithme utilisé par td.

Liste de paramètres

td

La resource de chiffrement.

Valeurs de retour

Retourne le nom de l'algorithme courant, sous forme de chaîne de caractères

Exemples

Exemple #1 Exemple avec mcrypt_enc_get_algorithms_name()

<?php
     $td = mcrypt_module_open (MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
     echo mcrypt_enc_get_algorithms_name($td). "\n";

     $td = mcrypt_module_open ('cast-256', '', MCRYPT_MODE_CFB, '');
     echo mcrypt_enc_get_algorithms_name($td). "\n";
     ?>

L'exemple ci-dessus va afficher :

CAST-256
CAST-256


Retourne la taille du bloc d'un algorithme

  • « mcrypt_enc_get_algorithms_name
  • mcrypt_enc_get_iv_size »
  • PHP Manual
  • Fonctions Mcrypt
  • Retourne la taille du bloc d'un algorithme

mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_get_block_size — Retourne la taille du bloc d'un algorithme

Description

int mcrypt_enc_get_block_size ( resource $td )

Récupère la taille du bloc d'un algorithme.

Liste de paramètres

td

Le pointeur de fichiers.

Valeurs de retour

Retourne la taille du bloc de l'algorithme, en octets.


Retourne la taille du VI d'un algorithme

  • « mcrypt_enc_get_block_size
  • mcrypt_enc_get_key_size »
  • PHP Manual
  • Fonctions Mcrypt
  • Retourne la taille du VI d'un algorithme

mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_get_iv_size — Retourne la taille du VI d'un algorithme

Description

int mcrypt_enc_get_iv_size ( resource $td )

Cette fonction retourne la taille du VI de l'algorithme désigné par td, en octets. Si la valeur retournée est 0, c'est que l'algorithme ne demande pas de VI. Un VI est demandé en mode "cbc", "cfb" et "ofb", et parfois en mode "stream".

Liste de paramètres

td

Le pointeur de fichiers.

Valeurs de retour

Retourne la taille du IV, ou 0 si l'IV est ignoré par l'algorithme.


Retourne la taille maximale de la clé pour un mode

  • « mcrypt_enc_get_iv_size
  • mcrypt_enc_get_modes_name »
  • PHP Manual
  • Fonctions Mcrypt
  • Retourne la taille maximale de la clé pour un mode

mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_get_key_size — Retourne la taille maximale de la clé pour un mode

Description

int mcrypt_enc_get_key_size ( resource $td )

Retourne la taille maximale de la clé pour un mode donné.

Liste de paramètres

td

Le pointeur de fichier.

Valeurs de retour

Retourne la taille maximale de la clé pour le mode donné.


Retourne le nom du mode

  • « mcrypt_enc_get_key_size
  • mcrypt_enc_get_supported_key_sizes »
  • PHP Manual
  • Fonctions Mcrypt
  • Retourne le nom du mode

mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_get_modes_name — Retourne le nom du mode

Description

string mcrypt_enc_get_modes_name ( resource $td )

Retourne le nom du mode.

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Retourne le nom, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec mcrypt_enc_get_modes_name()

<?php
$td = mcrypt_module_open (MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
echo mcrypt_enc_get_modes_name($td). "\n";

$td = mcrypt_module_open ('cast-256', '', 'ecb', '');
echo mcrypt_enc_get_modes_name($td). "\n";
?>

L'exemple ci-dessus va afficher :

CFB
ECB


Retourne un tableau contenant les tailles de clés acceptées par un algorithme

  • « mcrypt_enc_get_modes_name
  • mcrypt_enc_is_block_algorithm_mode »
  • PHP Manual
  • Fonctions Mcrypt
  • Retourne un tableau contenant les tailles de clés acceptées par un algorithme

mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_get_supported_key_sizes — Retourne un tableau contenant les tailles de clés acceptées par un algorithme

Description

array mcrypt_enc_get_supported_key_sizes ( resource $td )

mcrypt_enc_get_supported_key_sizes() lit les tailles de clés supportées par l'algorithme courant de la ressource de chiffrement td.

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Retourne un tableau contenant les tailles des clés supportées par l'algorithme désigné par td. S'il retourne un tableau vide, c'est que toutes les clés entre 1 et mcrypt_enc_get_key_size() sont acceptées par l'algorithme.

Exemples

Exemple #1 Exemple avec mcrypt_enc_get_supported_key_sizes()

<?php
    $td = mcrypt_module_open('rijndael-256', '', 'ecb', '');
    var_dump(mcrypt_enc_get_supported_key_sizes($td));
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  int(16)
  [1]=>
  int(24)
  [2]=>
  int(32)
}


Teste le chiffrement par blocs d'un mode

  • « mcrypt_enc_get_supported_key_sizes
  • mcrypt_enc_is_block_algorithm »
  • PHP Manual
  • Fonctions Mcrypt
  • Teste le chiffrement par blocs d'un mode

mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_is_block_algorithm_mode — Teste le chiffrement par blocs d'un mode

Description

bool mcrypt_enc_is_block_algorithm_mode ( resource $td )

Teste le chiffrement par blocs d'un mode (e.g. FALSE pour un flux, et TRUE pour "cbc", "cfb", "ofb").

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Retourne TRUE si ce mode utilise des algorithmes par blocs, et FALSE sinon.


Teste le chiffrement par blocs d'un algorithme

  • « mcrypt_enc_is_block_algorithm_mode
  • mcrypt_enc_is_block_mode »
  • PHP Manual
  • Fonctions Mcrypt
  • Teste le chiffrement par blocs d'un algorithme

mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_is_block_algorithm — Teste le chiffrement par blocs d'un algorithme

Description

bool mcrypt_enc_is_block_algorithm ( resource $td )

Teste le chiffrement par blocs d'un algorithme.

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Retourne TRUE si l'algorithme utilisé est un algorithme par blocs, et FALSE si c'est un algorithme par flux.


Teste si le mode retourne les données par blocs

  • « mcrypt_enc_is_block_algorithm
  • mcrypt_enc_self_test »
  • PHP Manual
  • Fonctions Mcrypt
  • Teste si le mode retourne les données par blocs

mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_is_block_mode — Teste si le mode retourne les données par blocs

Description

bool mcrypt_enc_is_block_mode ( resource $td )

Teste si le mode retourne les données par blocs (e.g. TRUE pour "cbc" et "ecb", et FALSE pour "cfb" et un flux).

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Retourne TRUE si le mode retourne des blocs d'octets, ou bien FALSE s'il ne retourne que des octets.


Teste un module ouvert

  • « mcrypt_enc_is_block_mode
  • mcrypt_encrypt »
  • PHP Manual
  • Fonctions Mcrypt
  • Teste un module ouvert

mcrypt_enc_self_test

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_self_test — Teste un module ouvert

Description

int mcrypt_enc_self_test ( resource $td )

Effectue un test du module ouvert et désigné par td.

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Si le test est concluant, elle retourne FALSE, sinon TRUE.


Chiffre un texte

  • « mcrypt_enc_self_test
  • mcrypt_generic_deinit »
  • PHP Manual
  • Fonctions Mcrypt
  • Chiffre un texte

mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_encrypt — Chiffre un texte

Description

string mcrypt_encrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )

mcrypt_encrypt() chiffre les données, et retourne les données chiffrées.

Liste de paramètres

cipher

Une constante parmi les constantes MCRYPT_ciphername, ou le nom de l'algorithme, sous la forme d'une chaîne de caractères.

key

La clé avec laquelle les données seront chiffrées. Si la taille de la clé fournie n'est pas supportée par le cipher, la fonction émettra un warning et retournera FALSE

data

Les données qui seront chiffrées, avec le cipher et le mode indiqué. Si la taille des données n'est pas un multiple de la taille de bloc, les données seront complétées par des caractères '\0', autant que nécessaire.

Le texte chiffré retourné peut être plus long que la taille des données passées en argument via data.

mode

Une constantes parmi les constantes MCRYPT_MODE_modename, ou une des chaînes suivantes : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

iv

Utilisé pour l'initialisation des modes CBC, CFB, OFB, ainsi que dans quelques algorithmes du mode STREAM. Si la taille de l'IV fourni n'est pas supporté par le mode d'opération ou si vous ne fournissez pas d'IV, mais que le mode d'opération en requiert un, la fonction émettra un avertissement et retournera FALSE.

Valeurs de retour

Retourne les données chiffrées, sous forme de chaîne de caractères ou FALSE si une erreur survient.

Historique

Version | Description
5.6.0 | Des tailles de clés et IV invalides ne sont plus acceptées. mcrypt_encrypt() va maintenant émettre un warning et retourner FALSE. Précédemment les clés et IVs étaient complétées avec des '\0' jusqu'a la prochaine taille valide.

Exemples

Exemple #1 Exemple avec mcrypt_encrypt()

<?php
    # --- CHIFFREMENT ---

    # la clé devrait être un binaire aléatoire, utilisez la fonction scrypt, bcrypt
    # ou PBKDF2 pour convertir une chaîne de caractères en une clé.
    # La clé est spécifiée en utilisant une notation héxadécimale.
    $key = pack('H*', "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3");

    # Montre la taille de la clé utilisée ; soit des clés sur 16, 24 ou 32 octets pour
    # AES-128, 192 et 256 respectivement.
    $key_size =  strlen($key);
    echo "Taille de la clé : " . $key_size . "\n";

    $plaintext = "Cette chaîne de caractère a été chiffrée en AES-256 / CBC / ZeroBytePadding.";

    # Crée un IV aléatoire à utiliser avec l'encodage CBC
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    # Crée un texte cipher compatible avec AES (Rijndael block size = 128)
    # pour conserver le texte confidentiel.
    # Uniquement applicable pour les entrées encodées qui ne se terminent jamais
    # pas la valeur 00h (en raison de la suppression par défaut des zéros finaux)
    $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,
                                 $plaintext, MCRYPT_MODE_CBC, $iv);

    # On ajoute le IV au début du texte chiffré pour le rendre disponible pour le déchiffrement
    $ciphertext = $iv . $ciphertext;

    # Encode le texte chiffré résultant pour qu'il puisse être représenté par une chaîne de caractères
    $ciphertext_base64 = base64_encode($ciphertext);

    echo  $ciphertext_base64 . "\n";

    # === ATTENTION ===

    # Le texte chiffré résultant ne contient aucune intégrité ni d'authentification
    # et il n'est pas protégé contre des attaques de type "oracle padding".

    # --- DECHIFFREMENT ---

    $ciphertext_dec = base64_decode($ciphertext_base64);

    # Récupère le IV, iv_size doit avoir été créé en utilisant la fonction
    # mcrypt_get_iv_size()
    $iv_dec = substr($ciphertext_dec, 0, $iv_size);

    # Récupère le texte du cipher (tout, sauf $iv_size du début)
    $ciphertext_dec = substr($ciphertext_dec, $iv_size);

    # On doit supprimer les caractères de valeur 00h de la fin du texte plein
    $plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,
                                    $ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);

    echo  $plaintext_dec . "\n";
?>

L'exemple ci-dessus va afficher :

Taille de la clé : 32
ENJW8mS2KaJoNB5E5CoSAAu0xARgsR1bdzFWpEn+poYw45q+73az5kYi4j+0haevext1dGrcW8Qi59txfCBV8BBj3bzRP3dFCp3CPQSJ8eU=
Cette chaîne de caractère a été chiffrée en AES-256 / CBC / ZeroBytePadding.

Voir aussi

  • mcrypt_decrypt() - Déchiffre un texte avec les paramètres donnés
  • mcrypt_module_open() - Ouvre le module de l'algorithme et du mode à utiliser


Prépare le module pour le déchargement

  • « mcrypt_encrypt
  • mcrypt_generic_end »
  • PHP Manual
  • Fonctions Mcrypt
  • Prépare le module pour le déchargement

mcrypt_generic_deinit

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

mcrypt_generic_deinit — Prépare le module pour le déchargement

Description

bool mcrypt_generic_deinit ( resource $td )

Prépare le module de chiffrement td pour le déchargement. Tous les tampons sont vidés, mais le module n'est pas déchargé. Vous devez appeler mcrypt_module_close() vous-même (mais PHP le fera pour vous a la fin du script).

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mcrypt_module_open() - Ouvre le module de l'algorithme et du mode à utiliser
  • mcrypt_generic_init() - Initialise tous les buffers nécessaires


Termine un chiffrement

  • « mcrypt_generic_deinit
  • mcrypt_generic_init »
  • PHP Manual
  • Fonctions Mcrypt
  • Termine un chiffrement

mcrypt_generic_end

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_end — Termine un chiffrement

Description

bool mcrypt_generic_end ( resource $td )

Avertissement

Cette fonction est obsolète, utilisez mcrypt_generic_deinit() à la place. Elle peut causer des crashes lorsqu'elle est utilisée avec mcrypt_module_close() à cause d'une multitude de tampons libres.

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0

mcrypt_generic_end() termine le chiffrement désigné par le pointeur td. En fait, elle supprime tous les buffers, et ferme les modules utilisés. Retourne FALSE si une erreur survient, ou TRUE en cas de succès.

Historique

Version | Description
7.0.0 | La fonction a été supprimée.


Initialise tous les buffers nécessaires

  • « mcrypt_generic_end
  • mcrypt_generic »
  • PHP Manual
  • Fonctions Mcrypt
  • Initialise tous les buffers nécessaires

mcrypt_generic_init

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_generic_init — Initialise tous les buffers nécessaires

Description

int mcrypt_generic_init ( resource $td , string $key , string $iv )

Vous devez appeler mcrypt_generic_init()
avant chaque appel à mcrypt_generic() ou
mdecrypt_generic().

Liste de paramètres

td

La ressource de chiffrement.

key

La taille maximale de la clé doit être celle retournée par mcrypt_enc_get_key_size() et toutes les valeurs inférieures seront aussi valides.

iv

Le vecteur d'initialisation (VI) doit avoir la taille d'un bloc, mais vous devez lire sa taille en appelant mcrypt_enc_get_iv_size(). IV est ignoré en mode ECB. IV DOIT exister en modes "CFB", "CBC", "STREAM", "nOFB" et "OFB". Il doit être aléatoire et unique (mais pas secret). Le même VI doit être utilisé pour le chiffrement et le déchiffrement. Si vous ne voulez pas l'utiliser, remplissez-le de zéros, mais ce n'est pas recommandé.

Valeurs de retour

Retourne une valeur négative en cas d'erreur : -3 si la taille de la clé est incorrecte, -4 quand il y a eu un problème d'allocation de mémoire et toute autre valeur en cas d'erreur inconnue. Si une erreur survient, une alerte est affichée. FALSE est retourné si des paramètres incorrects sont passés à la fonction.

Voir aussi

  • mcrypt_module_open() - Ouvre le module de l'algorithme et du mode à utiliser


Chiffre les données

  • « mcrypt_generic_init
  • mcrypt_get_block_size »
  • PHP Manual
  • Fonctions Mcrypt
  • Chiffre les données

mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_generic — Chiffre les données

Description

string mcrypt_generic ( resource $td , string $data )

mcrypt_generic() chiffre les données data. Les données sont complétées par des "\0" pour obtenir une taille multiple de la taille d'un bloc. Elle retourne les données chiffrées. Notez que la longueur de la chaîne retournée peut être plus longue que celle passée en argument, à cause du complément.

Si vous voulez enregistrer les données chiffrées dans une base de données assurez-vous d'enregistrer la chaîne entière retournée par cette fonction, sinon la chaîne ne sera pas décryptée correctement. Si votre chaîne d'origine comporte 10 caractères et que la taille d'un bloc est de 8 (utilisez mcrypt_enc_get_block_size() pour déterminer cette taille), vous aurez besoin d'au moins 16 caractères dans le champ de votre base de données. Notez que la chaîne retournée par mdecrypt_generic() aura 16 caractères de long... utilisez rtrim($str, "\0") pour supprimer le complément.

Par exemple, si vous enregistrez les données dans une base de données MySQL, souvenez-vous que les champs de type VARCHAR suppriment automatiquement les espaces en trop durant l'insertion. Comme les données chiffrés peuvent se terminer avec un espace (ASCII 32), les données seront endommagées par cette suppression. Stockez les données dans un champ de type TINYBLOB/TINYTEXT (ou plus grand) pour que tout fonctionne normalement.

Liste de paramètres

td

La ressource de chiffrement.

Le gestionnaire de chiffrement td doit être initialisé avec la fonction mcrypt_generic_init(), avec une clé et un VI, avant d'appeler cette fonction. Lorsque le chiffrement est réalisé, vous devez libérer les buffers en appelant la fonction mcrypt_generic_deinit(). Voyez mcrypt_module_open() pour un exemple.

data

Les données à chiffrer.

Valeurs de retour

Retourne les données chiffrées.

Voir aussi

  • mdecrypt_generic() - Déchiffre les données
  • mcrypt_generic_init() - Initialise tous les buffers nécessaires
  • mcrypt_generic_deinit() - Prépare le module pour le déchargement


Retourne la taille de blocs d'un chiffrement

  • « mcrypt_generic
  • mcrypt_get_cipher_name »
  • PHP Manual
  • Fonctions Mcrypt
  • Retourne la taille de blocs d'un chiffrement

mcrypt_get_block_size

(PHP 4, PHP 5, PHP 7)

mcrypt_get_block_size — Retourne la taille de blocs d'un chiffrement

Description

int mcrypt_get_block_size ( int $cipher )
int mcrypt_get_block_size ( string $cipher , string $mode )

Le premier prototype sert lorsque PHP est compilé avec la bibliothèque libmcrypt 2.2.x, le second lorsqu'il est compilé avec libmcrypt 2.4.x ou 2.5.x.

mcrypt_get_block_size() sert à lire la taille de blocs du chiffrement cipher (en combinaison avec un mode de chiffrement).

Il est recommandé de se servir de la fonction mcrypt_enc_get_block_size(), car elle utilise la ressource retournée par mcrypt_module_open().

Liste de paramètres

cipher

Une constante parmi les constantes MCRYPT_ciphername, ou le nom de l'algorithme, sous la forme d'une chaîne de caractères.

mode

Une constantes parmi les constantes MCRYPT_MODE_modename, ou une des chaînes suivantes : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

Valeurs de retour

Lit la taille de bloc, sous forme d'un entier.

Exemples

Exemple #1 Exemple avec mcrypt_get_block_size()

Cet exemple montre comment utiliser cette fonction lorsque PHP est compilé avec libmcrypt 2.4.x et 2.5.x.

<?php
echo mcrypt_get_block_size('tripledes', 'ecb'); // 8
?>

Voir aussi

  • mcrypt_get_key_size() - Retourne la taille de la clé de chiffrement
  • mcrypt_enc_get_block_size() - Retourne la taille du bloc d'un algorithme
  • mcrypt_encrypt() - Chiffre un texte


Lit le nom du chiffrement utilisé

  • « mcrypt_get_block_size
  • mcrypt_get_iv_size »
  • PHP Manual
  • Fonctions Mcrypt
  • Lit le nom du chiffrement utilisé

mcrypt_get_cipher_name

(PHP 4, PHP 5, PHP 7)

mcrypt_get_cipher_name — Lit le nom du chiffrement utilisé

Description

string mcrypt_get_cipher_name ( int $cipher )
string mcrypt_get_cipher_name ( string $cipher )

mcrypt_get_cipher_name() retourne le nom du chiffrement utilisé.

mcrypt_get_cipher_name() prend le numéro de chiffrement (avec libmcrypt 2.2.x) ou prend le nom du chiffrement (avec libmcrypt 2.4.x) comme paramètre, et retourne le nom du chiffrement, ou FALSE, s'il n'existe pas.

Liste de paramètres

cipher

Une constante parmi les constantes MCRYPT_ciphername, ou le nom de l'algorithme, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne le nom du cipher ou FALSE si le cipher n'existe pas.

Exemples

Exemple #1 Exemple avec mcrypt_get_cipher_name()

<?php
$cipher = MCRYPT_TripleDES;

echo mcrypt_get_cipher_name($cipher);
?>

L'exemple ci-dessus va afficher :

3DES


Retourne la taille du VI utilisé par un couple chiffrement/mode

  • « mcrypt_get_cipher_name
  • mcrypt_get_key_size »
  • PHP Manual
  • Fonctions Mcrypt
  • Retourne la taille du VI utilisé par un couple chiffrement/mode

mcrypt_get_iv_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_get_iv_size — Retourne la taille du VI utilisé par un couple chiffrement/mode

Description

int mcrypt_get_iv_size ( string $cipher , string $mode )

mcrypt_get_iv_size() retourne la taille du vecteur d'initialisation (VI). Si l'algorithme n'utilise pas de vecteur d'initialisation, zéro est retourné.

Il est plus utile d'utiliser la fonction mcrypt_enc_get_iv_size(), car elle utilise la ressource retournée par mcrypt_module_open().

Liste de paramètres

cipher

Une constante parmi les constantes MCRYPT_ciphername, ou le nom de l'algorithme, sous la forme d'une chaîne de caractères.

mode

Une constantes parmi les constantes MCRYPT_MODE_modename, ou une des chaînes suivantes : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

IV est ignoré en mode ECB sachant que ce mode ne le demande pas. Vous devez avoir le même IV (point de départ) lors du chiffrement et du déchiffrement, sinon, votre chiffrage échouera.

Valeurs de retour

Retourne la taille du vecteur d'initialisation (IV), en octets. En cas d'erreur, la fonction retourne FALSE. Si le vecteur d'initialisation est inutile, 0 est retourné.

Exemples

Exemple #1 Exemple avec mcrypt_get_iv_size()

<?php
echo mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB) . "\n";

echo mcrypt_get_iv_size('des', 'ecb') . "\n";
?>

Voir aussi

  • mcrypt_get_block_size() - Retourne la taille de blocs d'un chiffrement
  • mcrypt_enc_get_iv_size() - Retourne la taille du VI d'un algorithme
  • mcrypt_create_iv() - Crée un vecteur d'initialisation (IV) à partir d'une source aléatoire


Retourne la taille de la clé de chiffrement

  • « mcrypt_get_iv_size
  • mcrypt_list_algorithms »
  • PHP Manual
  • Fonctions Mcrypt
  • Retourne la taille de la clé de chiffrement

mcrypt_get_key_size

(PHP 4, PHP 5, PHP 7)

mcrypt_get_key_size — Retourne la taille de la clé de chiffrement

Description

int mcrypt_get_key_size ( int $cipher )
int mcrypt_get_key_size ( string $cipher , string $mode )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x ou plus récent.

mcrypt_get_key_size() sert à lire la taille de clé du chiffrement cipher.

Il est plus intéressant d'utiliser la fonction mcrypt_enc_get_key_size() sachant qu'elle utilise la ressource retournée par la fonction mcrypt_module_open().

Liste de paramètres

cipher

Une constante parmi les constantes MCRYPT_ciphername, ou le nom de l'algorithme, sous la forme d'une chaîne de caractères.

mode

Une constantes parmi les constantes MCRYPT_MODE_modename, ou une des chaînes suivantes : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

Valeurs de retour

Retourne la taille maximale supportée pour une clé de l'algorithme, en octets ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mcrypt_get_key_size()

<?php
echo mcrypt_get_key_size('tripledes', 'ecb');
?>

L'exemple ci-dessus montre l'utilisation de la fonction lorsqu'elle a été compilée avec la bibliothèque 2.4.x ou 2.5.x.

L'exemple ci-dessus va afficher :

24

Voir aussi

  • mcrypt_get_block_size() - Retourne la taille de blocs d'un chiffrement
  • mcrypt_enc_get_key_size() - Retourne la taille maximale de la clé pour un mode
  • mcrypt_encrypt() - Chiffre un texte


Liste tous les algorithmes de chiffrement supportés

  • « mcrypt_get_key_size
  • mcrypt_list_modes »
  • PHP Manual
  • Fonctions Mcrypt
  • Liste tous les algorithmes de chiffrement supportés

mcrypt_list_algorithms

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_list_algorithms — Liste tous les algorithmes de chiffrement supportés

Description

array mcrypt_list_algorithms ([ string $lib_dir = ini_get("mcrypt.algorithms_dir") ] )

Liste tous les algorithmes de chiffrement de lib_dir.

Liste de paramètres

lib_dir

Spécifie le dossier où les algoritjmes sont situés. Si omis, la valeur de la directive mcrypt.algorithms_dir du fichier php.ini est utilisée.

Valeurs de retour

Retourne un tableau avec les algorithmes supportés.

Exemples

Exemple #1 Exemple avec mcrypt_list_algorithms()

<?php
$algorithms = mcrypt_list_algorithms("/usr/local/lib/libmcrypt");

foreach ($algorithms as $cipher) {
    echo "$cipher<br />\n";
}
?>

L'exemple ci-dessus va afficher tous les algorithmes supportés dans le dossier "/usr/local/lib/libmcrypt".


Liste tous les modes de chiffrement supportés

  • « mcrypt_list_algorithms
  • mcrypt_module_close »
  • PHP Manual
  • Fonctions Mcrypt
  • Liste tous les modes de chiffrement supportés

mcrypt_list_modes

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_list_modes — Liste tous les modes de chiffrement supportés

Description

array mcrypt_list_modes ([ string $lib_dir = ini_get("mcrypt.modes_dir") ] )

Liste tous les modes de chiffrement de lib_dir.

Liste de paramètres

lib_dir

Spécifie le dossier où tous les modes sont situés. Si omis, la valeur de la directive mcrypt.modes_dir dans le php.ini est utilisée.

Valeurs de retour

Retourne un tableau avec tous les modes supportés.

Exemples

Exemple #1 Exemple avec mcrypt_list_modes()

<?php
$modes = mcrypt_list_modes();

foreach ($modes as $mode) {
    echo "$mode <br />\n";
}
?>

L'exemple ci-dessus va afficher tous les modes supportés dans le dossier par défaut. Si le mode n'est pas défini par la directive mcrypt.modes_dir du php.ini, le dossier par défaut de mcrypt sera utilisé (soit le dossier /usr/local/lib/libmcrypt).


Décharge le module de chiffrement

  • « mcrypt_list_modes
  • mcrypt_module_get_algo_block_size »
  • PHP Manual
  • Fonctions Mcrypt
  • Décharge le module de chiffrement

mcrypt_module_close

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_close — Décharge le module de chiffrement

Description

bool mcrypt_module_close ( resource $td )

Décharge le module td.

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mcrypt_module_open() - Ouvre le module de l'algorithme et du mode à utiliser


Retourne la taille de blocs d'un algorithme

  • « mcrypt_module_close
  • mcrypt_module_get_algo_key_size »
  • PHP Manual
  • Fonctions Mcrypt
  • Retourne la taille de blocs d'un algorithme

mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_get_algo_block_size — Retourne la taille de blocs d'un algorithme

Description

int mcrypt_module_get_algo_block_size ( string $algorithm [, string $lib_dir ] )

Retourne la taille de blocs d'un algorithme.

Liste de paramètres

algorithm

Le nom de l'algorithme.

lib_dir

Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

Valeurs de retour

Retourne la taille de blocs d'un algorithme, en octets.


Retourne la taille maximale de clé

  • « mcrypt_module_get_algo_block_size
  • mcrypt_module_get_supported_key_sizes »
  • PHP Manual
  • Fonctions Mcrypt
  • Retourne la taille maximale de clé

mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_get_algo_key_size — Retourne la taille maximale de clé

Description

int mcrypt_module_get_algo_key_size ( string $algorithm [, string $lib_dir ] )

Retourne la taille maximale de clé.

Liste de paramètres

algorithm

Le nom de l'algorithme.

lib_dir

Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

Valeurs de retour

Retourne la taille maximale de la clé supportée par l'algorithme algorithm.


Retourne un tableau contenant les tailles de clés supportées par l'algorithme ouvert

  • « mcrypt_module_get_algo_key_size
  • mcrypt_module_is_block_algorithm_mode »
  • PHP Manual
  • Fonctions Mcrypt
  • Retourne un tableau contenant les tailles de clés supportées par l'algorithme ouvert

mcrypt_module_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_get_supported_key_sizes — Retourne un tableau contenant les tailles de clés supportées par l'algorithme ouvert

Description

array mcrypt_module_get_supported_key_sizes ( string $algorithm [, string $lib_dir ] )

Retourne un tableau contenant les tailles de clés supportées par l'algorithme de chiffrement algorithm. S'il retourne un tableau vide, alors toutes les clés entre 1 et mcrypt_module_get_algo_key_size() sont supportées par l'algorithme.

Liste de paramètres

algorithm

L'algorithme à utiliser.

lib_dir

Le paramètre optionnel lib_dir peut contenir le chemin du dossier d'installation du module, sur le système.

Valeurs de retour

Retourne un tableau contenant les tailles de clés supportées par l'algorithme de chiffrement algorithm. S'il retourne un tableau vide, alors toutes les clés entre 1 et mcrypt_module_get_algo_key_size() sont supportées par l'algorithme.

Voir aussi

  • mcrypt_enc_get_supported_key_sizes() - Retourne un tableau contenant les tailles de clés acceptées par un algorithme


Indique si un mode fonctionne par blocs

  • « mcrypt_module_get_supported_key_sizes
  • mcrypt_module_is_block_algorithm »
  • PHP Manual
  • Fonctions Mcrypt
  • Indique si un mode fonctionne par blocs

mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_is_block_algorithm_mode — Indique si un mode fonctionne par blocs

Description

bool mcrypt_module_is_block_algorithm_mode ( string $mode [, string $lib_dir ] )

Cette fonction retourne TRUE si le mode doit être utilisé avec un algorithme par bloc, sinon, elle retourne FALSE (i.e. FALSE pour un flux, et TRUE pour cbc, cfb, ofb).

Liste de paramètres

mode

Le mode à vérifier.

lib_dir

Le paramètre optionnel lib_dir peut contenir le dossier où les modules d'algorithme se trouvent sur le système.

Valeurs de retour

Cette fonction retourne TRUE si le mode doit être utilisé avec un algorithme par bloc, sinon, elle retourne FALSE (i.e. FALSE pour un flux, et TRUE pour cbc, cfb, ofb).


Indique si un algorithme fonctionne par blocs

  • « mcrypt_module_is_block_algorithm_mode
  • mcrypt_module_is_block_mode »
  • PHP Manual
  • Fonctions Mcrypt
  • Indique si un algorithme fonctionne par blocs

mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_is_block_algorithm — Indique si un algorithme fonctionne par blocs

Description

bool mcrypt_module_is_block_algorithm ( string $algorithm [, string $lib_dir ] )

mcrypt_module_is_block_algorithm() retourne TRUE si algorithm est un algorithme par blocs, ou FALSE si c'est un algorithme par flux.

Liste de paramètres

algorithm

L'algorithme à vérifier.

lib_dir

Le paramètre optionnel lib_dir peut contenir le chemin où se trouve les modules des algorithmes sur le disque système.

Valeurs de retour

Retourne TRUE si l'algorithme spécifié est un algorithme par blocs ou FALSE si c'est un algorithme par flux.


Indique si un mode travaille par blocs

  • « mcrypt_module_is_block_algorithm
  • mcrypt_module_open »
  • PHP Manual
  • Fonctions Mcrypt
  • Indique si un mode travaille par blocs

mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_is_block_mode — Indique si un mode travaille par blocs

Description

bool mcrypt_module_is_block_mode ( string $mode [, string $lib_dir ] )

Cette fonction retourne TRUE si ce mode fournit des blocs d'octets ou FALSE s'il ne sort que des octets. (i.e. TRUE pour "cbc" et "ecb", et FALSE pour "cfb" et "stream").

Liste de paramètres

mode

Une constantes parmi les constantes MCRYPT_MODE_modename, ou une des chaînes suivantes : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

lib_dir

Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

Valeurs de retour

Cette fonction retourne TRUE si ce mode fournit des blocs d'octets ou FALSE s'il ne sort que des octets. (i.e. TRUE pour "cbc" et "ecb", et FALSE pour "cfb" et "stream").


Ouvre le module de l'algorithme et du mode à utiliser

  • « mcrypt_module_is_block_mode
  • mcrypt_module_self_test »
  • PHP Manual
  • Fonctions Mcrypt
  • Ouvre le module de l'algorithme et du mode à utiliser

mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_open — Ouvre le module de l'algorithme et du mode à utiliser

Description

resource mcrypt_module_open ( string $algorithm , string $algorithm_directory , string $mode , string $mode_directory )

mcrypt_module_open() ouvre le module de l'algorithme et du mode à utiliser. Le nom de l'algorithme est spécifié par le paramètre algorithm (par exemple : "twofish"), ou bien une des constantes MCRYPT_ciphername. La bibliothèque est refermée en appelant mcrypt_module_close().

Liste de paramètres

algorithm

Une constante parmi les constantes MCRYPT_ciphername, ou le nom de l'algorithme, sous la forme d'une chaîne de caractères.

algorithm_directory

Le paramètre algorithm_directory est utilisé pour localiser le module de cryptage. Lorsque vous spécifiez un nom de dossier, il sera utilisé. Si vous spécifiez une chaîne vide (""), la valeur définie dans la directive mcrypt.algorithms_dir du fichier php.ini sera utilisée. Lorsqu'elle n'est pas définie, le dossier par défaut utilisé sera celui dans lequel se trouve la bibliothèque libmcrypt (habituellement, /usr/local/lib/libmcrypt).

mode

Une constantes parmi les constantes MCRYPT_MODE_modename, ou une des chaînes suivantes : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

mode_directory

Le paramètre mode_directory est utilisé pour localiser le module de cryptage. Si un nom de dossier est spécifié, il sera utilisé. Lorsque vous spécifiez une chaîne vide (""), la valeur de la directive mcrypt.modes_dir du fichier php.ini sera utilisée. Si elle n'est pas définie, le dossier par défaut utilisé sera celui dans lequel se trouve la bibliothèque libmcrypt (habituellement /usr/local/lib/libmcrypt).

Valeurs de retour

Normalement, cette fonction retourne un descripteur de cryptage, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mcrypt_module_open()

<?php
$td = mcrypt_module_open(MCRYPT_DES, '',
    MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');

$td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
?>

La première ligne de l'exemple ci-dessus va essayer d'ouvrir le chiffrement DES, dans le dossier par défaut, et le mode ECB dans le dossier /usr/lib/mcrypt-modes. Le second exemple utilise les chaînes comme nom pour le chiffrement et le mode. Cela ne fonctionne que si l'extension est compilée avec libmcrypt 2.4.x or 2.5.x.

Exemple #2 Utilisation de mcrypt_module_open() pour chiffrer

<?php
/* Charge un chiffrement */
$td = mcrypt_module_open('rijndael-256', '', 'ofb', '');

/* Crée le VI et détermine la taille de la clé */
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
$ks = mcrypt_enc_get_key_size($td);

/* Crée la clé */
$key = substr(md5('very secret key'), 0, $ks);

/* Intialise le chiffrement */
mcrypt_generic_init($td, $key, $iv);

/* Chiffre les données */
$encrypted = mcrypt_generic($td, 'This is very important data');

/* Libère le gestionnaire de chiffrement */
mcrypt_generic_deinit($td);

/* Initialise le module de chiffrement pour le déchiffrement */
mcrypt_generic_init($td, $key, $iv);

/* Déchiffre les données */
$decrypted = mdecrypt_generic($td, $encrypted);

/* Libère le gestionnaire de déchiffrement, et ferme le module */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);

/* Affiche la chaîne */
echo trim($decrypted)."\n";
?>

Voir aussi

  • mcrypt_module_close() - Décharge le module de chiffrement
  • mcrypt_generic() - Chiffre les données
  • mdecrypt_generic() - Déchiffre les données
  • mcrypt_generic_init() - Initialise tous les buffers nécessaires
  • mcrypt_generic_deinit() - Prépare le module pour le déchargement


Teste un mode

  • « mcrypt_module_open
  • mcrypt_ofb »
  • PHP Manual
  • Fonctions Mcrypt
  • Teste un mode

mcrypt_module_self_test

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_self_test — Teste un mode

Description

bool mcrypt_module_self_test ( string $algorithm [, string $lib_dir ] )

Effectue un test sur l'algorithme spécifié.

Liste de paramètres

algorithm

Une constante parmi les constantes MCRYPT_ciphername, ou le nom de l'algorithme, sous la forme d'une chaîne de caractères.

lib_dir

Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

Valeurs de retour

Retourne TRUE si le test fonctionne, et FALSE sinon.

Exemples

Exemple #1 Exemple avec mcrypt_module_self_test()

<?php
var_dump(mcrypt_module_self_test(MCRYPT_RIJNDAEL_128)) . "\n";
var_dump(mcrypt_module_self_test(MCRYPT_BOGUS_CYPHER));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)


Chiffre/déchiffre des données en mode OFB

  • « mcrypt_module_self_test
  • mdecrypt_generic »
  • PHP Manual
  • Fonctions Mcrypt
  • Chiffre/déchiffre des données en mode OFB

mcrypt_ofb

(PHP 4, PHP 5)

mcrypt_ofb — Chiffre/déchiffre des données en mode OFB

Description

string mcrypt_ofb ( int $cipher , string $key , string $data , int $mode , string $iv )
string mcrypt_ofb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x. Le paramètre mode doit être MCRYPT_ENCRYPT ou MCRYPT_DECRYPT.

mcrypt_ofb() ne doit plus être utilisée. Vous pouvez la remplacer par mcrypt_generic() et mdecrypt_generic().

Avertissement

Cette fonction était obsolète en PHP 5.5.0, et a été supprimée depuis PHP 7.0.0.


Déchiffre les données

  • « mcrypt_ofb
  • Mhash »
  • PHP Manual
  • Fonctions Mcrypt
  • Déchiffre les données

mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mdecrypt_generic — Déchiffre les données

Description

string mdecrypt_generic ( resource $td , string $data )

Déchiffre les données data. Notez que la longueur de la chaîne déchiffrée peut être plus longue que la chaîne originale, car elle peut avoir été complétée par des caractères.

Liste de paramètres

td

Un descripteur de chiffrement, retourné par la fonction mcrypt_module_open()

data

Les données chiffrées.

Exemples

Exemple #1 Exemple avec mdecrypt_generic()

<?php
/* Données */
$key = 'Ceci est une très longue clé de chiffrement, et même trop longue';
$plain_text = 'Ceci sont des données importantes';

/* Ouvre le module et crée un VI */
$td = mcrypt_module_open('des', '', 'ecb', '');
$key = substr($key, 0, mcrypt_enc_get_key_size($td));
$iv_size = mcrypt_enc_get_iv_size($td);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

/* Initialise le module de chiffrement */
if (mcrypt_generic_init($td, $key, $iv) != -1) {

    /* Chiffre les données */
    $c_t = mcrypt_generic($td, $plain_text);
    mcrypt_generic_deinit($td);

    /* Réinitialise les tampons pour le déchiffrement */
    mcrypt_generic_init($td, $key, $iv);
    $p_t = mdecrypt_generic($td, $c_t);

    /* Nettoye */
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
}

if (strncmp($p_t, $plain_text, strlen($plain_text)) == 0) {
    echo "ok\n";
} else {
    echo "erreur\n";
}
?>

L'exemple ci-dessus montre comment vérifier que les données avant chiffrement sont bien les mêmes que celles après chiffrement/déchiffrement. Il est très important de réinitialiser le buffer de chiffrement avec mcrypt_generic_init() avant que nous ne déchiffriez les données.

Le gestionnaire de déchiffrement doit toujours être initialisé par la fonction mcrypt_generic_init() avec une clé et un VI avant d'appeler cette fonction. Lorsque le chiffrement est fait, il faut que vous libériez les données chiffrées en appelant mcrypt_generic_deinit(). Voir mcrypt_module_open() pour un exemple.

Voir aussi

  • mcrypt_generic() - Chiffre les données
  • mcrypt_generic_init() - Initialise tous les buffers nécessaires
  • mcrypt_generic_deinit() - Prépare le module pour le déchargement


Mhash

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions Mhash
    • mhash_count — Récupère l'identifiant maximal de hash
    • mhash_get_block_size — Retourne la taille de bloc du hash
    • mhash_get_hash_name — Retourne le nom du hash
    • mhash_keygen_s2k — Génère une clé
    • mhash — Calcule un hash


Introduction

Ces fonctions ont été prévues pour fonctionner avec » mhash. Mhash peut être utilisée pour créer une somme de contrôle, un hachage et bien plus.

Cet ensemble de fonctions représente une interface avec la bibliothèque mhash. Mhash accepte un grand nombre d'algorithmes différents, tels MD5, SHA1, GOST et bien d'autres. Pour une liste complète des hashes supportés, reportez-vous à la page sur les constantes. La règle générale est que vous pouvez accéder à un algorithme depuis PHP avec la constante MHASH_hashname. Par exemple, pour accéder à l'algorithme TIGER, vous pouvez utiliser la constante PHP MHASH_TIGER.

Note:

Cette extension est obsolète. Veuillez utiliser l'extension Hash à la place.


Pré-requis

Pour l'utiliser, téléchargez les distributions de mhash depuis ce » site internet et suivez les instructions d'installation incluses.


Installation

Vous aurez besoin de compiler PHP avec l'option --with-mhash[=DIR] pour activer cette extension. DIR est le chemin du dossier d'installation de la bibliothèque MHASH.

Depuis PHP 5.3.0, l'extension mhash est émulée via l'extension Hash. Aussi, l'option permettant de spécifier le dossier d'installation de mhash n'a plus d'effet, et cette extension nécessite l'installation de l'extension hash pour fonctionner.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Voici une liste des modes qui sont supportés par mhash. Si un mode n'est pas listé ici, mais listé dans la documentation mhash comme étant supporté, vous pouvez considéré que cette liste n'est plus à jour.

  • MHASH_ADLER32
  • MHASH_CRC32
  • MHASH_CRC32B
  • MHASH_GOST
  • MHASH_HAVAL128
  • MHASH_HAVAL160
  • MHASH_HAVAL192
  • MHASH_HAVAL224
  • MHASH_HAVAL256
  • MHASH_MD2
  • MHASH_MD4
  • MHASH_MD5
  • MHASH_RIPEMD128
  • MHASH_RIPEMD256
  • MHASH_RIPEMD320
  • MHASH_SHA1
  • MHASH_SHA192
  • MHASH_SHA224
  • MHASH_SHA256
  • MHASH_SHA384
  • MHASH_SHA512
  • MHASH_SNEFRU128
  • MHASH_SNEFRU256
  • MHASH_TIGER
  • MHASH_TIGER128
  • MHASH_TIGER160
  • MHASH_WHIRLPOOL


Exemples

Exemple #1 Calcule le MD5 et le hmac, puis l'affiche comme un hexadécimal

<?php
$input = "what do ya want for nothing?";
$hash = mhash(MHASH_MD5, $input);
echo "Le hash vaut " . bin2hex($hash) . "<br />\n";
$hash = mhash(MHASH_MD5, $input, "Jefe");
echo "Le hmac vaut " . bin2hex($hash) . "<br />\n";
?>

L'exemple ci-dessus va afficher :

Le hash vaut d03cb659cbf9192dcd066272249f8412
Le hmac vaut 750c783e6ab0b503eaa86e310a5db738


Fonctions Mhash

Sommaire

  • mhash_count — Récupère l'identifiant maximal de hash
  • mhash_get_block_size — Retourne la taille de bloc du hash
  • mhash_get_hash_name — Retourne le nom du hash
  • mhash_keygen_s2k — Génère une clé
  • mhash — Calcule un hash


Récupère l'identifiant maximal de hash

  • « Fonctions Mhash
  • mhash_get_block_size »
  • PHP Manual
  • Fonctions Mhash
  • Récupère l'identifiant maximal de hash

mhash_count

(PHP 4, PHP 5, PHP 7)

mhash_count — Récupère l'identifiant maximal de hash

Description

int mhash_count ( void )

Récupère l'identifiant maximal de hash.

Valeurs de retour

Retourne l'identifiant de hash maximal. Les hashs sont numérotés de 0 jusqu'à cet identifiant.

Exemples

Exemple #1 Parcourir la liste des hash

<?php

$nr = mhash_count();

for ($i = 0; $i <= $nr; $i++) {
    echo sprintf("La taille de bloc de %s est %d\n",
        mhash_get_hash_name($i),
        mhash_get_block_size($i));
}
?>


Retourne la taille de bloc du hash

  • « mhash_count
  • mhash_get_hash_name »
  • PHP Manual
  • Fonctions Mhash
  • Retourne la taille de bloc du hash

mhash_get_block_size

(PHP 4, PHP 5, PHP 7)

mhash_get_block_size — Retourne la taille de bloc du hash

Description

int mhash_get_block_size ( int $hash )

Retourne la taille de bloc du hash spécifié.

Liste de paramètres

hash

L'identifiant du hash. Une des constantes MHASH_hashname.

Valeurs de retour

Retourne la taille, en octets, ou FALSE si le hash n'existe pas.

Exemples

Exemple #1 Exemple avec mhash_get_block_size()

<?php

echo mhash_get_block_size(MHASH_MD5); // 16

?>


Retourne le nom du hash

  • « mhash_get_block_size
  • mhash_keygen_s2k »
  • PHP Manual
  • Fonctions Mhash
  • Retourne le nom du hash

mhash_get_hash_name

(PHP 4, PHP 5, PHP 7)

mhash_get_hash_name — Retourne le nom du hash

Description

string mhash_get_hash_name ( int $hash )

Retourne le nom du hash spécifié.

Liste de paramètres

hash

L'identifiant du hash. Une des constantes MHASH_hashname.

Valeurs de retour

Retourne le nom du hash ou FALSE si le hash n'existe pas.

Exemples

Exemple #1 Exemple avec mhash_get_hash_name()

<?php

echo mhash_get_hash_name(MHASH_MD5); // MD5

?>


Génère une clé

  • « mhash_get_hash_name
  • mhash »
  • PHP Manual
  • Fonctions Mhash
  • Génère une clé

mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

mhash_keygen_s2k — Génère une clé

Description

string mhash_keygen_s2k ( int $hash , string $password , string $salt , int $bytes )

Génère une clé suivant le hash fourni, en utilisant le mot de passe password fourni.

Cette fonction utilise l'algorithme Salted S2K, spécifié dans OpenPGP (» RFC 2440).

N'oubliez pas que les mots de passe fournis par les utilisateurs ne sont pas conseillés pour faire des clés cryptographiques, étant donné que les utilisateurs normaux retiennent des mots de passe qu'ils peuvent saisir au clavier. Ces mots de passe utilisent uniquement 6 à 7 des 8 bits d'un caractère (voire moins). Il est vivement recommandé d'appliquer une fonction de transformation (comme celle-ci), à un mot de passe utilisateur.

Liste de paramètres

hash

L'identifiant du hash utilisé pour créer la clé. Une parmi les constantes MHASH_hashname.

password

Mot de passe fourni par l'utilisateur.

salt

Doit être différent et suffisamment aléatoire pour chaque clé que vous générez, afin de créer des clés différentes. Du fait que le paramètre salt doit être connu lorsque vous vérifiez les clés, c'est une bonne idée de l'ajouter à la clé. Le paramètre salt doit avoir une longueur de 8 octets, et sera complété de zéro si vous en fournissez un d'une taille inférieure.

bytes

La longueur de la clé, en octets.

Valeurs de retour

Retourne la clé générée, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.


Calcule un hash

  • « mhash_keygen_s2k
  • OpenSSL »
  • PHP Manual
  • Fonctions Mhash
  • Calcule un hash

mhash

(PHP 4, PHP 5, PHP 7)

mhash — Calcule un hash

Description

string mhash ( int $hash , string $data [, string $key ] )

mhash() applique la fonction de hash hash aux données data.

Liste de paramètres

hash

L'identifiant du hash. Une parmi les constantes MHASH_hashname.

data

L'entrée utilisateur, sous la forme d'une chaîne de caractères.

key

Spécifié, la fonction retournera le HMAC résultant. HMAC est un hash indexé utilisé pour l'identification de message, ou bien un simple rapport de message, suivant la clé spécifiée. Certains algorithmes supportés dans mhash ne sont pas compatibles avec le mode HMAC.

Valeurs de retour

Retourne le hash résultant (appelé aussi "digest") ou HMAC, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.


OpenSSL

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
    • Options de validations générales
    • Options de remplissage (Padding) pour le cryptage asymétrique
    • Types de clés
    • Constantes/options PKCS7
    • Algorithme de signature
    • Chiffrements
    • Constantes de version
    • Constantes d'identification du nom de serveur
  • Paramètres clés/certificats
  • Vérification de certificats
  • Fonctions OpenSSL
    • openssl_cipher_iv_length — Récupère la longueur cipher iv
    • openssl_csr_export_to_file — Exporte une CSR vers un fichier
    • openssl_csr_export — Exporte un CSR vers un fichier ou une variable
    • openssl_csr_get_public_key — Retourne la clé publique d'un CERT
    • openssl_csr_get_subject — Retourne le sujet d'un CERT
    • openssl_csr_new — Génère une CSR
    • openssl_csr_sign — Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat
    • openssl_decrypt — Décrypte les données
    • openssl_dh_compute_key — Calcule un secret partagé pour une valeur publique des clés DH locales et distantes
    • openssl_digest — Calcule un digest
    • openssl_encrypt — Crypte les données
    • openssl_error_string — Retourne le message d'erreur OpenSSL
    • openssl_free_key — Libère les ressources
    • openssl_get_cert_locations — Récupère les chemins vers les certificats disponibles
    • openssl_get_cipher_methods — Récupère la liste des méthodes cipher disponibles
    • openssl_get_md_methods — Récupère la liste des méthodes digest disponibles
    • openssl_get_privatekey — Alias de openssl_pkey_get_private
    • openssl_get_publickey — Alias de openssl_pkey_get_public
    • openssl_open — Ouvre des données scellées
    • openssl_pbkdf2 — Génère une chaîne PKCS5 v2 PBKDF2, par défaut un SHA-1
    • openssl_pkcs12_export_to_file — Exporte un certificat compatible PKCS#12
    • openssl_pkcs12_export — Exporte un certificat compatible PKCS#12 dans une variable
    • openssl_pkcs12_read — Lit un certificat PKCS#12 dans un tableau
    • openssl_pkcs7_decrypt — Déchiffre un message S/MIME
    • openssl_pkcs7_encrypt — Chiffre un message S/MIME
    • openssl_pkcs7_sign — Signe un message S/MIME
    • openssl_pkcs7_verify — Vérifie la signature d'un message S/MIME
    • openssl_pkey_export_to_file — Sauve une clé au format ASCII dans un fichier
    • openssl_pkey_export — Stocke une représentation exportable de la clé dans une chaîne de caractères
    • openssl_pkey_free — Libère une clé privée
    • openssl_pkey_get_details — Retourne un tableau contenant le détail d'une clé
    • openssl_pkey_get_private — Lit une clé privée
    • openssl_pkey_get_public — Extrait une clé publique d'un certificat, et la prépare
    • openssl_pkey_new — Génère une nouvelle clé privée
    • openssl_private_decrypt — Déchiffre des données avec une clé privée
    • openssl_private_encrypt — Chiffre des données avec une clé privée
    • openssl_public_decrypt — Déchiffre des données avec une clé publique
    • openssl_public_encrypt — Chiffre des données avec une clé publique
    • openssl_random_pseudo_bytes — Génère une chaine pseudo-aléatoire d'octets
    • openssl_seal — Scelle des données
    • openssl_sign — Signe les données
    • openssl_spki_export_challenge — Exporte le challenge associé avec la clé publique signée
    • openssl_spki_export — Exporte un PEM valide formaté comme une clé publique signée
    • openssl_spki_new — Génère une clé publique signée et effectue un challenge
    • openssl_spki_verify — Vérifie une clé publique signée, et effectue un challenge
    • openssl_verify — Vérifie une signature
    • openssl_x509_check_private_key — Vérifie si une clé privée correspond à un certificat
    • openssl_x509_checkpurpose — Vérifie l'usage d'un certificat
    • openssl_x509_export_to_file — Exporte un certificat vers un fichier
    • openssl_x509_export — Exporte un certificat vers une chaîne de caractères
    • openssl_x509_fingerprint — Calcule l'empreinte, ou le digest d'un certificat X.509 donné
    • openssl_x509_free — Libère les ressources prises par un certificat
    • openssl_x509_parse — Analyse un certificat X509
    • openssl_x509_read — Analyse un certificat X.509 et retourne une ressource


Introduction

Cette extension utilise les fonctions de » OpenSSL pour générer et vérifier les signatures, ainsi que pour sceller (chiffrer) et ouvrir (déchiffrer) les données. OpenSSL offre beaucoup de fonctionnalités que ce module n'offre pas actuellement. Quelques-unes pourront être ajoutées dans le futur.


Pré-requis

Afin de pouvoir utiliser les fonctions OpenSSL, vous devez installer les fonctions » OpenSSL. PHP depuis les version 4.0.5 et 4.3.1 fonctionnent avec openSSL >= 0.9.5. Les autres versions (PHP <=4.0.4 et >= 4.3.2) nécessitent OpenSSL >= 0.9.6.

Avertissement

Vous êtes vivement encouragé à utiliser la version la plus récente d'OpenSSL afin d'éviter certaines vulnérabilités sur votre serveur web.


Installation

Pour utiliser le support OpenSSL de PHP, vous devez aussi compiler PHP avec l'option de configuration --with-openssl[=DIR] .

La bibliothèque OpenSSL possède aussi des dépendances à l'exécution. Par exemple, OpenSSL a besoin d'accéder à un générateur de nombres pseudo-aléatoires; sur la plupart des plateformes Unix (incluant donc Linux), elle doit avoir accès au périphérique /dev/urandom ou /dev/random.

Note: Note aux utilisateurs Win32

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : libeay32.dll

De plus, si vous avez prévu d'utiliser les fonctions relatives à la génération de clés et aux certificats, vous devez installer un fichier openssl.cnf valide sur votre système. Depuis PHP 4.3.0, nous incluons un fichier de configuration de base dans les distributions de PHP pour win32. PHP 4.3.x et 4.4.x ont ce fichier dans le dossier openssl. PHP 5.x et 6.x ont ce fichier dans le dossier extras/openssl. Si vous utilisez PHP 4.2.x ou bien si le fichier n'est pas présent, vous pouvez l'obtenir sur la page des binaires OpenSSL ou en téléchargeant une version récente de PHP. Attention : Windows Explorer cache par défaut les fichiers dont l'extension est .cnf et indique que le type de fichier est SpeedDial.

PHP va rechercher le fichier openssl.cnf suivant la tactique suivante :

  • La variable d'environnement OPENSSL_CONF, si elle est définie, sera utilisée comme chemin (comprenant le fichier) vers le fichier de configuration.
  • La variable d'environnement SSLEAY_CONF, si elle est définie, sera utilisée comme chemin (comprenant le fichier) vers le fichier de configuration.
  • Le fichier openssl.cnf sera supposé se trouver dans le dossier des certificats, tel que configuré lors de la compilation de la bibliothèque openssl. Cela signifie généralement c:\usr\local\ssl\openssl.cnf.

Dans votre installation, vous devrez décider si vous allez installer le fichier dans c:\usr\local\ssl\openssl.cnf ou si vous allez le faire ailleurs et configurer une variable d'environnement (possiblement par site virtuel). Notez qu'il est possible de remplacer le chemin par défaut en utilisant le paramètre configargs des fonctions qui requièrent un fichier de configuration.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

openssl Options de configuration
Nom | Défaut | Modifiable | Changelog
openssl.cafile | "" | PHP_INI_PERDIR | Available since PHP 5.6.0.
openssl.capath | "" | PHP_INI_PERDIR | Available since PHP 5.6.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

openssl.cafile string

Location of Certificate Authority file on local filesystem which should be used with the verify_peer context option to authenticate the identity of the remote peer.

openssl.capath string

If cafile is not specified or if the certificate is not found there, the directory pointed to by capath is searched for a suitable certificate. capath must be a correctly hashed certificate directory.

See also the SSL stream context options.


Constantes pré-définies

Sommaire

  • Options de validations générales
  • Options de remplissage (Padding) pour le cryptage asymétrique
  • Types de clés
  • Constantes/options PKCS7
  • Algorithme de signature
  • Chiffrements
  • Constantes de version
  • Constantes d'identification du nom de serveur

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.


Options de validations générales

X509_PURPOSE_SSL_CLIENT (entier)
X509_PURPOSE_SSL_SERVER (entier)
X509_PURPOSE_NS_SSL_SERVER (entier)
X509_PURPOSE_SMIME_SIGN (entier)
X509_PURPOSE_SMIME_ENCRYPT (entier)
X509_PURPOSE_CRL_SIGN (entier)
X509_PURPOSE_ANY (entier)


Options de remplissage (Padding) pour le cryptage asymétrique

OPENSSL_PKCS1_PADDING (entier)
OPENSSL_SSLV23_PADDING (entier)
OPENSSL_NO_PADDING (entier)
OPENSSL_PKCS1_OAEP_PADDING (entier)


Types de clés

OPENSSL_KEYTYPE_RSA (entier)
OPENSSL_KEYTYPE_DSA (entier)
OPENSSL_KEYTYPE_DH (entier)
OPENSSL_KEYTYPE_EC (entier)
Cette constante n'est disponible que lorsque PHP est compilé avec OpenSSL 0.9.8+.

Note:

Cette constante a été ajoutée en PHP 5.2.0.

OPENSSL_KEYTYPE_EC


Constantes/options PKCS7

Les fonctions S/MIME utilisent des options qui sont spécifiées par un champ de bits. Les valeurs valides sont :

Constantes PKCS7
Constante | Description
PKCS7_TEXT | Ajoute le texte plein en clair dans les en-têtes du message signé/chiffré. Lors du déchiffrement ou la vérification, il supprime purement et simplement ces données. Si le message chiffré ou signé n'est pas du type MIME, une erreur surviendra.
PKCS7_BINARY | Normalement, le message est converti au format canonique qui utilise effectivement des CR et LF comme fin de ligne, comme demandé dans les spécifications de S/MIME. Lorsque cette option est activée, le message ne sera pas converti. Cela sert lorsque vous manipulez des données binaires qui ne sont pas au format MIME.
PKCS7_NOINTERN | Lors de la vérification d'un message, les certificats (s'il y en a) inclus dans le message sont normalement utilisés pour rechercher le certificat de signature. Avec cette option, seul le certificat spécifié par le paramètre extracerts de la fonction openssl_pkcs7_verify() est utilisé. Les certificats fournis peuvent toujours être utilisés, avec un niveau de confiance réduit.
PKCS7_NOVERIFY | Ne vérifie pas les certificats des signataires d'un message signé.
PKCS7_NOCHAIN | N'enchaîne pas les vérifications des signataires de certificats. C'est-à-dire, n'utilise pas les certificats contenu dans le message.
PKCS7_NOCERTS | Lors de la signature d'un message, le certificat du signataire est normalement inclus. Avec cette option, c'est désactivé. Cela va réduire la taille du message, mais le vérificateur devra avoir une copie locale du certificat du signataire (passée au paramètre extracerts, avec la fonction openssl_pkcs7_verify()).
PKCS7_NOATTR | Normalement, lorsqu'un message est signé, un jeu d'attributs contenant l'heure de signature et l'algorithme symétrique supporté, est inclus dans le message. Avec cette option, il n'est pas inclus.
PKCS7_DETACHED | Lors de la signature d'un message, utilise la signature en texte clair, avec le type MIME "multipart/signed". C'est la valeur par défaut du paramètre flags pour la fonction openssl_pkcs7_sign(). Si vous annulez cette option, le message sera signé de manière opaque, ce qui résiste mieux à la traduction des relais mail (certains anciens serveurs mail corrompent les messages), mais empêche la lecture par les client emails qui ne connaissent pas S/MIME.
PKCS7_NOSIGS | Ne vérifie pas les signatures d'un message

Note:

Ces constantes ont été ajoutées en PHP 4.0.6.


Algorithme de signature

OPENSSL_ALGO_DSS1 (entier)
OPENSSL_ALGO_SHA1 (entier)
Utilisé comme algorithme par défaut pour les fonctions openssl_sign() et openssl_verify().
OPENSSL_ALGO_SHA224 (entier)
OPENSSL_ALGO_SHA256 (entier)
OPENSSL_ALGO_SHA384 (entier)
OPENSSL_ALGO_SHA512 (entier)
OPENSSL_ALGO_RMD160 (entier)
OPENSSL_ALGO_MD5 (entier)
OPENSSL_ALGO_MD4 (entier)
OPENSSL_ALGO_MD2 (entier)
Depuis PHP 5.2.13 et PHP 5.3.2, cette constante n'est disponible que lorsque PHP est compilé avec le support MD2. Il est nécessaire de passer le CFLAG -DHAVE_OPENSSL_MD2_H lors de la compilation de PHP et d'activer md2 lors de la compilation de OpenSSL 1.0.0+.

Note:

Ces constantes ont été ajoutées en PHP 5.0.0.

OPENSSL_ALGO_MD2, OPENSSL_ALGO_MD4, OPENSSL_ALGO_MD5, OPENSSL_ALGO_SHA1, OPENSSL_ALGO_DSS1

Note:

Ces constantes ont été ajoutées en 5.4.8.

OPENSSL_ALGO_RMD160, OPENSSL_ALGO_SHA224, OPENSSL_ALGO_SHA256, OPENSSL_ALGO_SHA384, OPENSSL_ALGO_SHA512


Chiffrements

OPENSSL_CIPHER_RC2_40 (entier)
OPENSSL_CIPHER_RC2_128 (entier)
OPENSSL_CIPHER_RC2_64 (entier)
OPENSSL_CIPHER_DES (entier)
OPENSSL_CIPHER_3DES (entier)

Note:

Ces constantes ont été ajoutées depuis PHP 4.3.0.

OPENSSL_CIPHER_AES_128_CBC (entier)
OPENSSL_CIPHER_AES_192_CBC (entier)
OPENSSL_CIPHER_AES_256_CBC (entier)

Note:

Ces constantes ont été ajoutées en 5.4.0.


  • « Chiffrements
  • Constantes d'identification du nom de serveur »
  • PHP Manual
  • Constantes pré-définies
  • Constantes de version

Constantes de version

OPENSSL_VERSION_TEXT (entier)
OPENSSL_VERSION_NUMBER (entier)

Note:

Ces constantes ont été ajoutées depuis PHP 5.2.0.


Constantes d'identification du nom de serveur

OPENSSL_TLSEXT_SERVER_NAME (chaîne de caractères)
Si le support SNI est disponible ou non.

Note:

Cette constante a été ajoutée en PHP 5.3.2 et nécessite que PHP ait été compilé avec OpenSSL 0.9.8j ou supérieur.


Paramètres clés/certificats

Un bon nombre de fonctions OpenSSL demandent une clé et un certificat comme paramètres. PHP 4.0.5 et plus récent utilisait des clés ou certificats sous forme de ressource, retournée par l'une des fonctions openssl_get_xxx(). Les versions ultérieures utilisent l'une des méthodes suivantes :

  • Certificats

    1. Une ressource X.509 retournée par openssl_x509_read()
    2. Une chaîne au format file://path/to/cert.pem; Le fichier ainsi repéré doit contenir un certificat, encodé au format PEM
    3. Une chaîne contenant le contenu d'un certificat, encodé au format PEM.

  • Clés publiques/privées

    1. Une ressource clé, retournée par la fonction openssl_get_publickey() ou openssl_get_privatekey()
    2. Pour les clés publiques seulement : une ressource X.509
    3. Une chaîne avec le format : file://path/to/file.pem. Le fichier doit contenir une clé privée, ou un certificat, encodé au format PEM (il peut contenir les deux).
    4. Une chaîne contenant une clé ou un certificat encodé au format PEM
    5. Pour les clés privées, vous pouvez aussi utiliser la syntaxe array($key, $passphrase), où $key représente une clé spécifiée par un fichier ou une représentation textuelle comme cité ci-dessus, et $passphrase représente une chaîne contenant la phrase de passe de cette clé privée.


Vérification de certificats

Lorsque vous appelez une fonction qui va vérifier une signature ou un certificat, le paramètre cainfo doit être un tableau contenant les noms d'un dossier et d'un fichier indiquant les tiers de confiance. Si un dossier est spécifié, il doit être correct, car openssl va l'utiliser.


Fonctions OpenSSL

Sommaire

  • openssl_cipher_iv_length — Récupère la longueur cipher iv
  • openssl_csr_export_to_file — Exporte une CSR vers un fichier
  • openssl_csr_export — Exporte un CSR vers un fichier ou une variable
  • openssl_csr_get_public_key — Retourne la clé publique d'un CERT
  • openssl_csr_get_subject — Retourne le sujet d'un CERT
  • openssl_csr_new — Génère une CSR
  • openssl_csr_sign — Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat
  • openssl_decrypt — Décrypte les données
  • openssl_dh_compute_key — Calcule un secret partagé pour une valeur publique des clés DH locales et distantes
  • openssl_digest — Calcule un digest
  • openssl_encrypt — Crypte les données
  • openssl_error_string — Retourne le message d'erreur OpenSSL
  • openssl_free_key — Libère les ressources
  • openssl_get_cert_locations — Récupère les chemins vers les certificats disponibles
  • openssl_get_cipher_methods — Récupère la liste des méthodes cipher disponibles
  • openssl_get_md_methods — Récupère la liste des méthodes digest disponibles
  • openssl_get_privatekey — Alias de openssl_pkey_get_private
  • openssl_get_publickey — Alias de openssl_pkey_get_public
  • openssl_open — Ouvre des données scellées
  • openssl_pbkdf2 — Génère une chaîne PKCS5 v2 PBKDF2, par défaut un SHA-1
  • openssl_pkcs12_export_to_file — Exporte un certificat compatible PKCS#12
  • openssl_pkcs12_export — Exporte un certificat compatible PKCS#12 dans une variable
  • openssl_pkcs12_read — Lit un certificat PKCS#12 dans un tableau
  • openssl_pkcs7_decrypt — Déchiffre un message S/MIME
  • openssl_pkcs7_encrypt — Chiffre un message S/MIME
  • openssl_pkcs7_sign — Signe un message S/MIME
  • openssl_pkcs7_verify — Vérifie la signature d'un message S/MIME
  • openssl_pkey_export_to_file — Sauve une clé au format ASCII dans un fichier
  • openssl_pkey_export — Stocke une représentation exportable de la clé dans une chaîne de caractères
  • openssl_pkey_free — Libère une clé privée
  • openssl_pkey_get_details — Retourne un tableau contenant le détail d'une clé
  • openssl_pkey_get_private — Lit une clé privée
  • openssl_pkey_get_public — Extrait une clé publique d'un certificat, et la prépare
  • openssl_pkey_new — Génère une nouvelle clé privée
  • openssl_private_decrypt — Déchiffre des données avec une clé privée
  • openssl_private_encrypt — Chiffre des données avec une clé privée
  • openssl_public_decrypt — Déchiffre des données avec une clé publique
  • openssl_public_encrypt — Chiffre des données avec une clé publique
  • openssl_random_pseudo_bytes — Génère une chaine pseudo-aléatoire d'octets
  • openssl_seal — Scelle des données
  • openssl_sign — Signe les données
  • openssl_spki_export_challenge — Exporte le challenge associé avec la clé publique signée
  • openssl_spki_export — Exporte un PEM valide formaté comme une clé publique signée
  • openssl_spki_new — Génère une clé publique signée et effectue un challenge
  • openssl_spki_verify — Vérifie une clé publique signée, et effectue un challenge
  • openssl_verify — Vérifie une signature
  • openssl_x509_check_private_key — Vérifie si une clé privée correspond à un certificat
  • openssl_x509_checkpurpose — Vérifie l'usage d'un certificat
  • openssl_x509_export_to_file — Exporte un certificat vers un fichier
  • openssl_x509_export — Exporte un certificat vers une chaîne de caractères
  • openssl_x509_fingerprint — Calcule l'empreinte, ou le digest d'un certificat X.509 donné
  • openssl_x509_free — Libère les ressources prises par un certificat
  • openssl_x509_parse — Analyse un certificat X509
  • openssl_x509_read — Analyse un certificat X.509 et retourne une ressource


Récupère la longueur cipher iv

  • « Fonctions OpenSSL
  • openssl_csr_export_to_file »
  • PHP Manual
  • Fonctions OpenSSL
  • Récupère la longueur cipher iv

openssl_cipher_iv_length

(PHP 5 >= PHP 5.3.3, PHP 7)

openssl_cipher_iv_length — Récupère la longueur cipher iv

Description

int openssl_cipher_iv_length ( string $method )

Récupère la longueur cipher du vecteur d'initialisation.

Liste de paramètres

method

La méthode cipher, voir la fonction openssl_get_cipher_methods() pour une liste de valeurs potentielles.

Valeurs de retour

Retourne la longueur cipher en cas de succès, ou $false; si une erreur survient.

Erreurs / Exceptions

Émets une erreur de niveau E_WARNING lorsque l'algorithme cipher est inconnu.

Exemples

Exemple #1 Exemple avec openssl_cipher_iv_length()

<?php
$method = 'AES-128-CBC';
$ivlen = openssl_cipher_iv_length($method);

echo $ivlen;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

16


Exporte une CSR vers un fichier

  • « openssl_cipher_iv_length
  • openssl_csr_export »
  • PHP Manual
  • Fonctions OpenSSL
  • Exporte une CSR vers un fichier

openssl_csr_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_csr_export_to_file — Exporte une CSR vers un fichier

Description

bool openssl_csr_export_to_file ( resource $csr , string $outfilename [, bool $notext = true ] )

openssl_csr_export_to_file() prend la CSR représentée par le paramètre csr et la sauve dans le fichier nommé outfilename.

Liste de paramètres

csr

outfilename

Chemin vers le fichier de sortie.

notext

Le paramètre optionnel notext affecte le niveau verbeux de l'affichage ; s'il vaut FALSE, des informations humainement lisibles seront ajoutées dans l'affichage. Par défaut, le paramètre notext vaut TRUE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openssl_csr_export() - Exporte un CSR vers un fichier ou une variable
  • openssl_csr_new() - Génère une CSR
  • openssl_csr_sign() - Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat


Exporte un CSR vers un fichier ou une variable

  • « openssl_csr_export_to_file
  • openssl_csr_get_public_key »
  • PHP Manual
  • Fonctions OpenSSL
  • Exporte un CSR vers un fichier ou une variable

openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_csr_export — Exporte un CSR vers un fichier ou une variable

Description

bool openssl_csr_export ( resource $csr , string &$out [, bool $notext = true ] )

openssl_csr_export() convertit la requête de signature de certificat représentée par csr au format ASCII et la stocke dans la variable out, qui est passée par référence.

Liste de paramètres

csr

out

notext

Le paramètre optionnel notext affecte le niveau verbeux de l'affichage ; s'il vaut FALSE, des informations humainement lisibles seront ajoutées dans l'affichage. Par défaut, le paramètre notext vaut TRUE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openssl_csr_export_to_file() - Exporte une CSR vers un fichier
  • openssl_csr_new() - Génère une CSR
  • openssl_csr_sign() - Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat


Retourne la clé publique d'un CERT

  • « openssl_csr_export
  • openssl_csr_get_subject »
  • PHP Manual
  • Fonctions OpenSSL
  • Retourne la clé publique d'un CERT

openssl_csr_get_public_key

(PHP 5 >= 5.2.0, PHP 7)

openssl_csr_get_public_key — Retourne la clé publique d'un CERT

Description

resource openssl_csr_get_public_key ( mixed $csr [, bool $use_shortnames = true ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne le sujet d'un CERT

  • « openssl_csr_get_public_key
  • openssl_csr_new »
  • PHP Manual
  • Fonctions OpenSSL
  • Retourne le sujet d'un CERT

openssl_csr_get_subject

(PHP 5 >= 5.2.0, PHP 7)

openssl_csr_get_subject — Retourne le sujet d'un CERT

Description

array openssl_csr_get_subject ( mixed $csr [, bool $use_shortnames = true ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Génère une CSR

  • « openssl_csr_get_subject
  • openssl_csr_sign »
  • PHP Manual
  • Fonctions OpenSSL
  • Génère une CSR

openssl_csr_new

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_csr_new — Génère une CSR

Description

mixed openssl_csr_new ( array $dn , resource &$privkey [, array $configargs [, array $extraattribs ]] )

openssl_csr_new() génère une nouvelle CSR (Certificate Signing Request, requête de signature de certificat), basée sur les informations apportés par dn, qui représente le nom unique (Distinguished Name) qui doit être utilisé pour ce certificat.

Note: Vous devez avoir un fichier openssl.cnf valide et installé pour que cette fonction opère correctement. Voir les notes se trouvant dans la section concernant l'installation pour plus d'informations.

Liste de paramètres

dn

Le nom distingué qui doit être utilisé dans le certificat.

privkey

privkey doit être une clé privée qui a été générée par openssl_pkey_new() (ou obtenue autrement par l'une des fonctions de la famille openssl_pkey) La clé publique sera utilisée pour signer la CSR.

configargs

Par défaut, le fichier openssl.conf de votre système est utilisé pour initialiser la requête; vous pouvez spécifier une section du fichier de configuration en paramétrant la clé config_section_section de configargs. Vous pouvez aussi spécifier un fichier de configuration openssl alternatif en paramétrant la valeur de config avec le chemin du fichier à utiliser. Si les clés suivantes sont présentes dans configargs, elles se comportent comme leurs équivalents dans openssl.conf, selon la liste suivante.

Écrasement de configuration
configargs | type | Équivalent de openssl.conf | description
digest_alg | string | default_md | Sélectionne l'algorithme de hachage à utiliser
x509_extensions | string | x509_extensions | Sélectionne quelle extension utiliser lors de la création d'un certificat x509
req_extensions | string | req_extensions | Sélectionne quelle extension utiliser lors de la création d'une CSR
private_key_bits | integer | default_bits | Spécifie la longueur en bits de la clé privée
private_key_type | integer | none | Spécifie le type de clé privée à créer. Les valeurs possibles sont OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH ou OPENSSL_KEYTYPE_RSA. La valeur par défaut est OPENSSL_KEYTYPE_RSA qui est actuellement le seul type de clé supporté.
encrypt_key | boolean | encrypt_key | La clé (avec mot de passe) exportée doit-elle être chiffrée?
encrypt_key_cipher | integer | none | Une des constantes cipher.

extraattribs

extraattribs est utilisé pour spécifier des options de configuration supplémentaires pour la CSR. Les deux paramètres dn et extraattribs sont des tableaux associatifs dont les clés sont converties en OIDs et appliquées aux parties appropriées de la requête.

Valeurs de retour

Retourne la CSR.

Exemples

Exemple #1 Création d'un certificat autosigné

<?php
// Assigne les valeurs du nom distingué à utiliser avec le certificat
// Vous devez remplacer les valeurs suivantes pour qu'elles correspondent
// au nom de votre compagnie, ou, plus précisément, le nom de la personne
// qui représente le site de votre compagnie pour qui vous générez des certificats.
// Pour les certificats SSL, le commonName est généralement le nom de domaine
// pour lequel vous installez le certificat, mais pour les certificats S/MIME,
// le commonName sera le nom de la personne qui utilisera le certificat.
$dn = array(
    "countryName" => "UK",
    "stateOrProvinceName" => "Somerset",
    "localityName" => "Glastonbury",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@example.com"
);

// Génère les clés privée et publique
$privkey = openssl_pkey_new();

// Génère la requête de signature de certificat
$csr = openssl_csr_new($dn, $privkey);

// Vous souhaiterez généralement créer un certificat auto-signé
// une fois que votre autorité de certification accède à votre requête
// Cette commande crée une certificat auto-signé valide 365 jours
$sscert = openssl_csr_sign($csr, null, $privkey, 365);

// Maintenant, vous voulez préserver la clé privée, la CSR et le certificat
// auto-signé, de façon à ce qu'ils puissent être installés sur votre
// serveur web, serveur mail ou client mail (suivant l'utilisation).
// Cet exemple vous montre comment placer ces éléments dans des variables
// mais vous pouvez aussi les mettre directement dans des fichiers.
// Typiquement, vous allez envoyer la CSR à votre autorité de certification
// qui vous émettra un "vrai" certificat.
openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($sscert, $certout) and var_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout);

// Affiche les erreurs qui sont survenues
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>


Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat

  • « openssl_csr_new
  • openssl_decrypt »
  • PHP Manual
  • Fonctions OpenSSL
  • Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat

openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_csr_sign — Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat

Description

resource openssl_csr_sign ( mixed $csr , mixed $cacert , mixed $priv_key , int $days [, array $configargs [, int $serial = 0 ]] )

openssl_csr_sign() génère une ressource de certificat x509 depuis la CSR donnée.

Note: Vous devez avoir un fichier openssl.cnf valide et installé pour que cette fonction opère correctement. Voir les notes se trouvant dans la section concernant l'installation pour plus d'informations.

Liste de paramètres

csr

Une CSR générée précédemment par openssl_csr_new(). mais ce paramètre peut aussi être une Ca peut aussi être le chemin vers une CSR encodée au format PEM, et spécifiée avec file://path/to/csr ou une chaîne exportée par openssl_csr_export().

cacert

Le certificat généré sera signé par le certificat cacert. Si cacert vaut NULL, le certificat généré sera autosigné.

priv_key

priv_key est la clé privée qui correspond au certificat cacert.

days

days spécifie la durée pour laquelle le certificat est valide, en nombre de jours.

configargs

Vous pouvez affiner la signature CSR avec configargs. Voir la fonction openssl_csr_new() pour plus d'informations sur configargs.

serial

Un numéro de série optionnel pour le certificat émis. S'il n'est pas spécifié, il vaudra 0.

Valeurs de retour

Retourne la ressource de certificat x509 en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec openssl_csr_sign() - signer une CSR (comment être votre propre Autorité de Certification)

<?php
// Supposons que ce script est configuré pour recevoir des CSR qui ont
// été collés dans un champ textarea depuis une autre page
$csrdata = $_POST["CSR"];

// Nous allons signer la requête avec notre propre certificat, en tant
// qu'"autorité de certification". Vous pouvez utiliser n'importe quel
// certificat pour en signer un autre, mais le processus est inutile à moins
// que le certificat de signature n'ait la confiance des utilisateurs
// qui utiliseront le nouveau certificat signé.

// Nous avons besoin de notre certificat et de la clé privée
$cacert = "file://path/to/ca.crt";
$privkey = array("file://path/to/ca.key", "la_cle_secrete_de_votre_certificat");

$usercert = openssl_csr_sign($csrdata, $cacert, $privkey, 365);

// Affichons maintenant le certificat généré, de façon à ce que l'utilisateur
// puisse le copier/coller dans sa configuration locale (comme un
// fichier qui contient les certificats de son serveur SSL)
openssl_x509_export($usercert, $certout);
echo $certout;

// Affiche toutes les erreurs survenues
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>


Décrypte les données

  • « openssl_csr_sign
  • openssl_dh_compute_key »
  • PHP Manual
  • Fonctions OpenSSL
  • Décrypte les données

openssl_decrypt

(PHP 5 >= 5.3.0, PHP 7)

openssl_decrypt — Décrypte les données

Description

string openssl_decrypt ( string $data , string $method , string $password [, int $options = 0 [, string $iv = "" ]] )

Prend une chaine brute ou base64 encodée et la décrypte en utilisant la méthode et la clé passées.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

data

Les données.

method

La méthode de cipher.

password

Le password.

options

Le paramètre options peut prendre comme valeur OPENSSL_RAW_DATA ou OPENSSL_ZERO_PADDING.

iv

Un vecteur d'initialisation non-nul.

Valeurs de retour

La chaine décryptée en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une erreur de niveau E_WARNING si un algorithme cipher inconnu est passé via method.

Émets une erreur de niveau E_WARNING si une valeur vide est passée comme paramètre iv.

Historique

Version | Description
5.3.3 | Le paramètre iv a été ajouté.
5.4.0 | Le paramètre raw_output a été changé en options.

Voir aussi

  • openssl_encrypt() - Crypte les données


Calcule un secret partagé pour une valeur publique des clés DH locales et distantes

  • « openssl_decrypt
  • openssl_digest »
  • PHP Manual
  • Fonctions OpenSSL
  • Calcule un secret partagé pour une valeur publique des clés DH locales et distantes

openssl_dh_compute_key

(PHP 5 >= 5.3.11, PHP 7)

openssl_dh_compute_key — Calcule un secret partagé pour une valeur publique des clés DH locales et distantes

Description

string openssl_dh_compute_key ( string $pub_key , resource $dh_key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pub_key

La clé publique

dh_key

La clé DH

Valeurs de retour

Retourne la clé calculée en cas de succès ou FALSE si une erreur survient.


Calcule un digest

  • « openssl_dh_compute_key
  • openssl_encrypt »
  • PHP Manual
  • Fonctions OpenSSL
  • Calcule un digest

openssl_digest

(PHP 5 >= 5.3.0, PHP 7)

openssl_digest — Calcule un digest

Description

string openssl_digest ( string $data , string $method [, bool $raw_output = false ] )

Calcule une hash digest pour les données d'entrée en utilisant la méthode fournie. Retourne une chaine brute ou héxadécimale.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

data

Les données.

method

La méthode digest à utiliser.

raw_output

Passez à TRUE et une donnée brute sera retournée, sinon la valeur retournée sera héxadécimale.

Valeurs de retour

Retourne la valeur en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Emmet une erreur de niveau E_WARNING si un algorithme inconnu est passé au paramètre method.

Voir aussi

  • openssl_get_md_methods() - Récupère la liste des méthodes digest disponibles


Crypte les données

  • « openssl_digest
  • openssl_error_string »
  • PHP Manual
  • Fonctions OpenSSL
  • Crypte les données

openssl_encrypt

(PHP 5 >= 5.3.0, PHP 7)

openssl_encrypt — Crypte les données

Description

string openssl_encrypt ( string $data , string $method , string $password [, int $options = 0 [, string $iv = "" ]] )

Crypte les données passées avec la méthode et la clé précisées. Retourne une chaine brute ou base64.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

data

Les données.

method

La méthode de cipher.

password

Le password.

options

Le paramètre options peut prendre la valeur OPENSSL_RAW_DATA ou la valeur OPENSSL_ZERO_PADDING.

iv

Un vecteur d'initialisation non-nul.

Valeurs de retour

Retourne la chaine cryptée en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si un algorithme cipher inconnu est passé comme paramètre method.

Émet une erreur de niveau E_WARNING si une valeur vide est passé comme paramètre iv.

Historique

Version | Description
5.3.3 | Le paramètre iv a été ajouté.
5.4.0 | Le paramètre raw_output a été changé en options.

Voir aussi

  • openssl_decrypt() - Décrypte les données


Retourne le message d'erreur OpenSSL

  • « openssl_encrypt
  • openssl_free_key »
  • PHP Manual
  • Fonctions OpenSSL
  • Retourne le message d'erreur OpenSSL

openssl_error_string

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_error_string — Retourne le message d'erreur OpenSSL

Description

string openssl_error_string ( void )

openssl_error_string() retourne la dernière erreur de la bibliothèque OpenSSL. Les messages d'erreurs sont placés en file d'attente, et la fonction openssl_error_string() doit être appelée plusieurs fois pour afficher toutes les erreurs. La dernière erreur sera la plus récente dans cette file.

Valeurs de retour

Retourne un message d'erreur, sous la forme d'une chaîne de caractères, ou FALSE s'il n'y a plus de message à afficher.

Exemples

Exemple #1 Exemple avec openssl_error_string()

<?php
// Imaginons que vous avez appelé une fonction qui a émis une erreur
while ($msg = openssl_error_string())
    echo $msg . "<br />\n";
?>


Libère les ressources

  • « openssl_error_string
  • openssl_get_cert_locations »
  • PHP Manual
  • Fonctions OpenSSL
  • Libère les ressources

openssl_free_key

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_free_key — Libère les ressources

Description

void openssl_free_key ( resource $key_identifier )

openssl_free_key() libère les ressources associées à key_identifier.

Liste de paramètres

key_identifier

Valeurs de retour

Aucune valeur n'est retournée.


Récupère les chemins vers les certificats disponibles

  • « openssl_free_key
  • openssl_get_cipher_methods »
  • PHP Manual
  • Fonctions OpenSSL
  • Récupère les chemins vers les certificats disponibles

openssl_get_cert_locations

(PHP 5 >= 5.6.0, PHP 7)

openssl_get_cert_locations — Récupère les chemins vers les certificats disponibles

Description

array openssl_get_cert_locations ( void )

La fonction openssl_get_cert_locations() retourne un tableau contenant les informations sur les chemins où l'on cherchera les certificats SSL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les chemins vers les certificats disponibles.

Exemples

Exemple #1 Exemple avec openssl_get_cert_locations()

<?php
var_dump(openssl_get_cert_locations());
?>

L'exemple ci-dessus va afficher :

array(8) {
  ["default_cert_file"]=>
  string(21) "/usr/lib/ssl/cert.pem"
  ["default_cert_file_env"]=>
  string(13) "SSL_CERT_FILE"
  ["default_cert_dir"]=>
  string(18) "/usr/lib/ssl/certs"
  ["default_cert_dir_env"]=>
  string(12) "SSL_CERT_DIR"
  ["default_private_dir"]=>
  string(20) "/usr/lib/ssl/private"
  ["default_default_cert_area"]=>
  string(12) "/usr/lib/ssl"
  ["ini_cafile"]=>
  string(0) ""
  ["ini_capath"]=>
  string(0) ""
}


Récupère la liste des méthodes cipher disponibles

  • « openssl_get_cert_locations
  • openssl_get_md_methods »
  • PHP Manual
  • Fonctions OpenSSL
  • Récupère la liste des méthodes cipher disponibles

openssl_get_cipher_methods

(PHP 5 >= 5.3.0, PHP 7)

openssl_get_cipher_methods — Récupère la liste des méthodes cipher disponibles

Description

array openssl_get_cipher_methods ([ bool $aliases = false ] )

Récupère la liste des méthodes cipher disponibles.

Liste de paramètres

aliases

Passez TRUE si vous voulez que les alias de cipher soient inclus dans le tableau retourné.

Valeurs de retour

Un array des méthodes cipher disponibles.

Exemples

Exemple #1 Exemple openssl_get_cipher_methods()

Montre à quoi ressemblent les ciphers disponibles, ainsi que les alias disponibles.

<?php
$ciphers             = openssl_get_cipher_methods();
$ciphers_and_aliases = openssl_get_cipher_methods(true);
$cipher_aliases      = array_diff($ciphers_and_aliases, $ciphers);

print_r($ciphers);

print_r($cipher_aliases);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => AES-128-CBC
    [1] => AES-128-CFB
    [2] => AES-128-CFB1
    [3] => AES-128-CFB8
    [4] => AES-128-ECB
    [5] => AES-128-OFB
    [6] => AES-192-CBC
    [7] => AES-192-CFB
    [8] => AES-192-CFB1
    [9] => AES-192-CFB8
    [10] => AES-192-ECB
    [11] => AES-192-OFB
    [12] => AES-256-CBC
    [13] => AES-256-CFB
    [14] => AES-256-CFB1
    [15] => AES-256-CFB8
    [16] => AES-256-ECB
    [17] => AES-256-OFB
    [18] => BF-CBC
    [19] => BF-CFB
    [20] => BF-ECB
    [21] => BF-OFB
    [22] => CAST5-CBC
    [23] => CAST5-CFB
    [24] => CAST5-ECB
    [25] => CAST5-OFB
    [26] => DES-CBC
    [27] => DES-CFB
    [28] => DES-CFB1
    [29] => DES-CFB8
    [30] => DES-ECB
    [31] => DES-EDE
    [32] => DES-EDE-CBC
    [33] => DES-EDE-CFB
    [34] => DES-EDE-OFB
    [35] => DES-EDE3
    [36] => DES-EDE3-CBC
    [37] => DES-EDE3-CFB
    [38] => DES-EDE3-OFB
    [39] => DES-OFB
    [40] => DESX-CBC
    [41] => IDEA-CBC
    [42] => IDEA-CFB
    [43] => IDEA-ECB
    [44] => IDEA-OFB
    [45] => RC2-40-CBC
    [46] => RC2-64-CBC
    [47] => RC2-CBC
    [48] => RC2-CFB
    [49] => RC2-ECB
    [50] => RC2-OFB
    [51] => RC4
    [52] => RC4-40
    [53] => aes-128-cbc
    [54] => aes-128-cfb
    [55] => aes-128-cfb1
    [56] => aes-128-cfb8
    [57] => aes-128-ecb
    [58] => aes-128-ofb
    [59] => aes-192-cbc
    [60] => aes-192-cfb
    [61] => aes-192-cfb1
    [62] => aes-192-cfb8
    [63] => aes-192-ecb
    [64] => aes-192-ofb
    [65] => aes-256-cbc
    [66] => aes-256-cfb
    [67] => aes-256-cfb1
    [68] => aes-256-cfb8
    [69] => aes-256-ecb
    [70] => aes-256-ofb
    [71] => bf-cbc
    [72] => bf-cfb
    [73] => bf-ecb
    [74] => bf-ofb
    [75] => cast5-cbc
    [76] => cast5-cfb
    [77] => cast5-ecb
    [78] => cast5-ofb
    [79] => des-cbc
    [80] => des-cfb
    [81] => des-cfb1
    [82] => des-cfb8
    [83] => des-ecb
    [84] => des-ede
    [85] => des-ede-cbc
    [86] => des-ede-cfb
    [87] => des-ede-ofb
    [88] => des-ede3
    [89] => des-ede3-cbc
    [90] => des-ede3-cfb
    [91] => des-ede3-ofb
    [92] => des-ofb
    [93] => desx-cbc
    [94] => idea-cbc
    [95] => idea-cfb
    [96] => idea-ecb
    [97] => idea-ofb
    [98] => rc2-40-cbc
    [99] => rc2-64-cbc
    [100] => rc2-cbc
    [101] => rc2-cfb
    [102] => rc2-ecb
    [103] => rc2-ofb
    [104] => rc4
    [105] => rc4-40
)
Array
(
    [18] => AES128
    [19] => AES192
    [20] => AES256
    [21] => BF
    [26] => CAST
    [27] => CAST-cbc
    [32] => DES
    [47] => DES3
    [48] => DESX
    [50] => IDEA
    [55] => RC2
    [82] => aes128
    [83] => aes192
    [84] => aes256
    [85] => bf
    [90] => blowfish
    [91] => cast
    [92] => cast-cbc
    [97] => des
    [112] => des3
    [113] => desx
    [115] => idea
    [120] => rc2
)

Voir aussi

  • openssl_get_md_methods() - Récupère la liste des méthodes digest disponibles


Récupère la liste des méthodes digest disponibles

  • « openssl_get_cipher_methods
  • openssl_get_privatekey »
  • PHP Manual
  • Fonctions OpenSSL
  • Récupère la liste des méthodes digest disponibles

openssl_get_md_methods

(PHP 5 >= 5.3.0, PHP 7)

openssl_get_md_methods — Récupère la liste des méthodes digest disponibles

Description

array openssl_get_md_methods ([ bool $aliases = false ] )

Récupère la liste des méthodes digest disponibles.

Liste de paramètres

aliases

Passez TRUE si vous voulez que les alias de digest soient inclus dans le tableau retourné.

Valeurs de retour

Un array des méthodes digest disponibles.

Exemples

Exemple #1 Exemple openssl_get_md_methods()

Montre à quoi ressemblent les digests disponibles, ainsi que les alias disponibles.

<?php
$digests             = openssl_get_md_methods();
$digests_and_aliases = openssl_get_md_methods(true);
$digest_aliases      = array_diff($digests_and_aliases, $digests);

print_r($digests);

print_r($digest_aliases);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => DSA
    [1] => DSA-SHA
    [2] => MD2
    [3] => MD4
    [4] => MD5
    [5] => RIPEMD160
    [6] => SHA
    [7] => SHA1
    [8] => SHA224
    [9] => SHA256
    [10] => SHA384
    [11] => SHA512
    [12] => dsaEncryption
    [13] => dsaWithSHA
    [14] => ecdsa-with-SHA1
    [15] => md2
    [16] => md4
    [17] => md5
    [18] => ripemd160
    [19] => sha
    [20] => sha1
    [21] => sha224
    [22] => sha256
    [23] => sha384
    [24] => sha512
)
Array
(
    [2] => DSA-SHA1
    [3] => DSA-SHA1-old
    [4] => DSS1
    [9] => RSA-MD2
    [10] => RSA-MD4
    [11] => RSA-MD5
    [12] => RSA-RIPEMD160
    [13] => RSA-SHA
    [14] => RSA-SHA1
    [15] => RSA-SHA1-2
    [16] => RSA-SHA224
    [17] => RSA-SHA256
    [18] => RSA-SHA384
    [19] => RSA-SHA512
    [28] => dsaWithSHA1
    [29] => dss1
    [32] => md2WithRSAEncryption
    [34] => md4WithRSAEncryption
    [36] => md5WithRSAEncryption
    [37] => ripemd
    [39] => ripemd160WithRSA
    [40] => rmd160
    [43] => sha1WithRSAEncryption
    [45] => sha224WithRSAEncryption
    [47] => sha256WithRSAEncryption
    [49] => sha384WithRSAEncryption
    [51] => sha512WithRSAEncryption
    [52] => shaWithRSAEncryption
    [53] => ssl2-md5
    [54] => ssl3-md5
    [55] => ssl3-sha1
)

Voir aussi

  • openssl_digest() - Calcule un digest
  • openssl_get_cipher_methods() - Récupère la liste des méthodes cipher disponibles


Alias de openssl_pkey_get_private

  • « openssl_get_md_methods
  • openssl_get_publickey »
  • PHP Manual
  • Fonctions OpenSSL
  • Alias de openssl_pkey_get_private

openssl_get_privatekey

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_get_privatekey — Alias de openssl_pkey_get_private()

Description

Cette fonction est un alias de : openssl_pkey_get_private().


Alias de openssl_pkey_get_public

  • « openssl_get_privatekey
  • openssl_open »
  • PHP Manual
  • Fonctions OpenSSL
  • Alias de openssl_pkey_get_public

openssl_get_publickey

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_get_publickey — Alias de openssl_pkey_get_public()

Description

Cette fonction est un alias de : openssl_pkey_get_public().


Ouvre des données scellées

  • « openssl_get_publickey
  • openssl_pbkdf2 »
  • PHP Manual
  • Fonctions OpenSSL
  • Ouvre des données scellées

openssl_open

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_open — Ouvre des données scellées

Description

bool openssl_open ( string $sealed_data , string &$open_data , string $env_key , mixed $priv_key_id [, string $method ] )

openssl_open() ouvre (déchiffre) les données sealed_data en utilisant la clé privée priv_key_id et la clé d'enveloppe env_key et remplit open_data avec les données déchiffrées. La clé d'enveloppe est générée lorsque les données sont scellées, et ne peut être utilisée qu'avec la clé privée spécifique. Reportez-vous à openssl_seal() pour plus d'informations.

Liste de paramètres

sealed_data

open_data

Si l'appel a réussi, les données ouvertes sont retournées dans ce paramètre.

env_key

priv_key_id

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec openssl_open()

<?php
// On suppose que $sealed et $env_key contiennent les données scellées
// et la clé d'enveloppe, fournies par l'expéditeur
// lecture de la clé privée dans un fichier
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// déchiffrage des données : elles sont placées dans $open
if (openssl_open($sealed, $open, $env_key, $pkeyid)) {
    echo "Voici les données déchiffrées : ", $open;
} else {
    echo "Impossible de déchiffrer les données";
}

// libération des ressources
openssl_free_key($pkeyid);
?>

Voir aussi

  • openssl_seal() - Scelle des données


Génère une chaîne PKCS5 v2 PBKDF2, par défaut un SHA-1

  • « openssl_open
  • openssl_pkcs12_export_to_file »
  • PHP Manual
  • Fonctions OpenSSL
  • Génère une chaîne PKCS5 v2 PBKDF2, par défaut un SHA-1

openssl_pbkdf2

(PHP 5 >= 5.5.0, PHP 7)

openssl_pbkdf2 — Génère une chaîne PKCS5 v2 PBKDF2, par défaut un SHA-1

Description

string openssl_pbkdf2 ( string $password , string $salt , int $key_length , int $iterations [, string $digest_algorithm ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

password

salt

key_length

iterations

digest_algorithm

Valeurs de retour

Retourne une chaîne ou FALSE si une erreur survient.


Exporte un certificat compatible PKCS#12

  • « openssl_pbkdf2
  • openssl_pkcs12_export »
  • PHP Manual
  • Fonctions OpenSSL
  • Exporte un certificat compatible PKCS#12

openssl_pkcs12_export_to_file

(PHP 5 >= 5.2.2, PHP 7)

openssl_pkcs12_export_to_file — Exporte un certificat compatible PKCS#12

Description

bool openssl_pkcs12_export_to_file ( mixed $x509 , string $filename , mixed $priv_key , string $pass [, array $args ] )

openssl_pkcs12_export_to_file() stocke un certificat x509 dans un fichier nommé filename dans un format PKCS#12.

Liste de paramètres

x509

Voir les paramètres clés/Certificats pour une liste de valeurs valides.

filename

Chemin vers le fichier de sortie.

priv_key

Clé privée du fichier PKCS#12.

pass

Mot de passe de chiffrement pour déverrouiller le fichier PKCS#12.

args

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Exporte un certificat compatible PKCS#12 dans une variable

  • « openssl_pkcs12_export_to_file
  • openssl_pkcs12_read »
  • PHP Manual
  • Fonctions OpenSSL
  • Exporte un certificat compatible PKCS#12 dans une variable

openssl_pkcs12_export

(PHP 5 >= 5.2.2, PHP 7)

openssl_pkcs12_export — Exporte un certificat compatible PKCS#12 dans une variable

Description

bool openssl_pkcs12_export ( mixed $x509 , string &$out , mixed $priv_key , string $pass [, array $args ] )

openssl_pkcs12_export() stocke un certificat x509 dans une chaîne nommée out dans un format PKCS#12.

Liste de paramètres

x509

Voir les paramètres clés/Certificats pour une liste de valeurs valides.

out

En cas de succès, cette variable contiendra le PKCS#12.

priv_key

Clé privée du fichier PKCS#12.

pass

Mot de passe de chiffrement pour déverrouiller le fichier PKCS#12.

args

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Lit un certificat PKCS#12 dans un tableau

  • « openssl_pkcs12_export
  • openssl_pkcs7_decrypt »
  • PHP Manual
  • Fonctions OpenSSL
  • Lit un certificat PKCS#12 dans un tableau

openssl_pkcs12_read

(PHP 5 >= 5.2.2, PHP 7)

openssl_pkcs12_read — Lit un certificat PKCS#12 dans un tableau

Description

bool openssl_pkcs12_read ( string $pkcs12 , array &$certs , string $pass )

openssl_pkcs12_read() lit le certificat PKCS#12 fourni par le paramètre pkcs12 dans un tableau nommé certs.

Liste de paramètres

pkcs12

certs

En cas de succès, ce tableau contiendra les données du certificat.

pass

Mot de passe de chiffrement pour déverrouiller le fichier PKCS#12.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Déchiffre un message S/MIME

  • « openssl_pkcs12_read
  • openssl_pkcs7_encrypt »
  • PHP Manual
  • Fonctions OpenSSL
  • Déchiffre un message S/MIME

openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_decrypt — Déchiffre un message S/MIME

Description

bool openssl_pkcs7_decrypt ( string $infilename , string $outfilename , mixed $recipcert [, mixed $recipkey ] )

Déchiffre le message S/MIME contenu dans le fichier infilename, en utilisant le certificat et la clé privée spécifiés par recipcert et recipkey.

Liste de paramètres

infilename

outfilename

Le message déchiffré est écrit dans le fichier spécifié par ce paramètre.

recipcert

recipkey

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec openssl_pkcs7_decrypt()

<?php
// $cert et $key contiennent vos certificats et clés privés
// On suppose aussi que le message vous est destiné
$infilename = "encrypted.msg";  // ce fichier contient votre message chiffré
$outfilename = "decrypted.msg"; // assurez-vous de pouvoir écrire dans ce fichier

if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key)) {
    echo "déchiffré !";
} else {
    echo "Échec lors du déchiffrement !";
}
?>


Chiffre un message S/MIME

  • « openssl_pkcs7_decrypt
  • openssl_pkcs7_sign »
  • PHP Manual
  • Fonctions OpenSSL
  • Chiffre un message S/MIME

openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_encrypt — Chiffre un message S/MIME

Description

bool openssl_pkcs7_encrypt ( string $infile , string $outfile , mixed $recipcerts , array $headers [, int $flags = 0 [, int $cipherid = OPENSSL_CIPHER_RC2_40 ]] )

openssl_pkcs7_encrypt() prend le contenu du fichier infilename et le chiffre en utilisant un chiffrement RC2 à 40-bit, de manière à ce que le message ne puisse être lu que par le possesseur de recipcerts.

Liste de paramètres

infile

outfile

recipcerts

Soit un certificat X.509, soit un tableau de certificats X.509.

headers

headers est un tableau d'en-têtes qui seront ajoutés en tête de message, une fois que les données auront été chiffrées.

headers peut être un tableau associatif, dont les clés sont les noms d'en-tête, ou bien un tableau indexé dont chaque ligne contient un en-tête complet.

flags

flags peut être utilisé pour spécifier des options qui affecteront le chiffrement (voir les constantes PKCS7).

cipherid

Une des constantes cipher.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec openssl_pkcs7_encrypt()

<?php
// le message que vous souhaitez chiffrer et envoyer à votre agent secret
// en mission commandée, appelé "nighthawk". Vous avez son certificat
// dans le fichier "nighthawk.pem"
$data = <<<EOD
Nighthawk,

Top secret, uniquement votre lecture !

L'ennemi approche! Rendez-vous au café à 8 h 30,
pour votre faux passeport.

HQ
EOD;

// Chargement de la clé
$key = file_get_contents("nighthawk.pem");

// Sauvegarde du message dans un fichier
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);

// Chiffrons-le
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
    array("To" => "nighthawk@example.com", // syntaxe sous forme de clé
          "From: HQ <hq@example.com>", // syntaxe sous forme d'indexe
          "Subject" => "Que pour vos yeux !"))) {
    // message chiffré - envoyez-le !
    exec(ini_get("sendmail_path") . " < enc.txt");
}
?>


Signe un message S/MIME

  • « openssl_pkcs7_encrypt
  • openssl_pkcs7_verify »
  • PHP Manual
  • Fonctions OpenSSL
  • Signe un message S/MIME

openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_sign — Signe un message S/MIME

Description

bool openssl_pkcs7_sign ( string $infilename , string $outfilename , mixed $signcert , mixed $privkey , array $headers [, int $flags = PKCS7_DETACHED [, string $extracerts ]] )

openssl_pkcs7_sign() prend le contenu du fichier infilename et le signe en utilisant le certificat et la clé privée contenus dans les arguments signcert et privkey.

Liste de paramètres

infilename

outfilename

signcert

privkey

headers

headers est un tableau d'en-têtes qui seront ajoutés aux données chiffrées (voir la fonction openssl_pkcs7_encrypt() pour plus de détails sur le format du paramètre).

flags

flags sert à modifier le message final. Voyez les constantes PKCS7.

extracerts

extracerts spécifie le nom du fichier contenant un ensemble de certificats supplémentaires à inclure dans la signature, qui pourront aider le destinataire à vérifier les données que vous utilisez.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec openssl_pkcs7_sign()

<?php
// le message que vous voulez signer, afin que le destinataire soit sûr qu'il
// vient bien de vous
$data = <<<EOD

Tu peux dépenser jusqu'à 10000 euros en note de frais.

Ton boss
EOD;
// sauvez le message dans un fichier
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// encrypt it
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem",
    array("file://mycert.pem", "mypassphrase"),
    array("To" => "joes@example.com", // syntaxe à clé
          "From: HQ <ceo@example.com>", // syntaxe indexée
          "Subject" => "Eyes only")
    )) {
    // message signée - envoyez-le !
    exec(ini_get("sendmail_path") . " < signed.txt");
}
?>


Vérifie la signature d'un message S/MIME

  • « openssl_pkcs7_sign
  • openssl_pkey_export_to_file »
  • PHP Manual
  • Fonctions OpenSSL
  • Vérifie la signature d'un message S/MIME

openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_verify — Vérifie la signature d'un message S/MIME

Description

mixed openssl_pkcs7_verify ( string $filename , int $flags [, string $outfilename [, array $cainfo [, string $extracerts [, string $content ]]]] )

openssl_pkcs7_verify() lit le message S/MIME contenu dans le fichier filename et examine la signature digitale.

Liste de paramètres

filename

Chemin vers le message.

flags

flags sert à modifier la façon dont la signature est vérifiée. Voyez les constantes PKCS7. Par défaut, la valeur est : PKCS7_DETACHED.

outfilename

Si le paramètre outfilename est spécifié, il doit être une chaîne contenant le nom d'un fichier qui contient le certificat du signataire, au format PEM.

cainfo

Si le paramètre cainfo est spécifié, il doit contenir les informations sur les tiers de certificats de confiance utilisé lors de la vérification. Voyez vérification des certificats pour plus de détails.

extracerts

Si le paramètre extracerts est spécifié, il doit représenter le nom d'un fichier contenant un ensemble de certificats utilisés comme certificats de peu de confiance.

content

Vous pouvez spécifier un nom de fichier avec le paramètre content qui peut être remplit avec les données vérifiées, mais avec les informations de signature.

Valeurs de retour

Retourne TRUE si la signature est vérifiée, et FALSE sinon (le message a été modifié, ou bien le certificat de signature est invalide) ou -1 si une erreur survient.

Historique

Version | Description
5.1.0 | Ajout du paramètre content.

Notes

Note: Tel que spécifié dans la RFC 2045, les lignes ne doivent pas être plus longues que 76 caractères dans le paramètre filename.


Sauve une clé au format ASCII dans un fichier

  • « openssl_pkcs7_verify
  • openssl_pkey_export »
  • PHP Manual
  • Fonctions OpenSSL
  • Sauve une clé au format ASCII dans un fichier

openssl_pkey_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_export_to_file — Sauve une clé au format ASCII dans un fichier

Description

bool openssl_pkey_export_to_file ( mixed $key , string $outfilename [, string $passphrase [, array $configargs ]] )

openssl_pkey_export_to_file() sauve la clé au format ASCII (PEM) key dans le fichier outfilename.

Note: Vous devez avoir un fichier openssl.cnf valide et installé pour que cette fonction opère correctement. Voir les notes se trouvant dans la section concernant l'installation pour plus d'informations.

Liste de paramètres

key

outfilename

Chemin du fichier de sortie.

passphrase

La clé peut éventuellement être protégée par un mot de passe.

configargs

configargs peut être utilisé pour calibrer le processus d'exportation en spécifiant ou remplaçant les options du fichier de configuration d'OpenSSl. Voyez openssl_csr_new() pour plus d'informations sur configargs.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Stocke une représentation exportable de la clé dans une chaîne de caractères

  • « openssl_pkey_export_to_file
  • openssl_pkey_free »
  • PHP Manual
  • Fonctions OpenSSL
  • Stocke une représentation exportable de la clé dans une chaîne de caractères

openssl_pkey_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_export — Stocke une représentation exportable de la clé dans une chaîne de caractères

Description

bool openssl_pkey_export ( mixed $key , string &$out [, string $passphrase [, array $configargs ]] )

openssl_pkey_export() exporte la clé key sous forme de chaîne au format PEM, et la stocke dans la variable out (qui est passée par référence).

Note: Vous devez avoir un fichier openssl.cnf valide et installé pour que cette fonction opère correctement. Voir les notes se trouvant dans la section concernant l'installation pour plus d'informations.

Liste de paramètres

key

out

passphrase

La clé est éventuellement protégée par le mot de passe passphrase.

configargs

configargs peut être utilisé pour calibrer le processus d'exportation en spécifiant ou remplaçant les options du fichier de configuration d'OpenSSl. Voyez openssl_csr_new() pour plus d'informations sur configargs.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Libère une clé privée

  • « openssl_pkey_export
  • openssl_pkey_get_details »
  • PHP Manual
  • Fonctions OpenSSL
  • Libère une clé privée

openssl_pkey_free

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_free — Libère une clé privée

Description

void openssl_pkey_free ( resource $key )

Libère une clé privée créée par la fonction openssl_pkey_new().

Liste de paramètres

key

Ressource représentant la clé.

Valeurs de retour

Aucune valeur n'est retournée.


Retourne un tableau contenant le détail d'une clé

  • « openssl_pkey_free
  • openssl_pkey_get_private »
  • PHP Manual
  • Fonctions OpenSSL
  • Retourne un tableau contenant le détail d'une clé

openssl_pkey_get_details

(PHP 5 >= 5.2.0, PHP 7)

openssl_pkey_get_details — Retourne un tableau contenant le détail d'une clé

Description

array openssl_pkey_get_details ( resource $key )

Retourne les détails d'une clé (bits, key, type).

Liste de paramètres

key

Ressource représentant la clé.

Valeurs de retour

Retourne un tableau avec les détails de la clé en cas de succès, ou FALSE si une erreur survient. Le tableau retourné contient l'index bits (nombre d'octets), key (représentation sous forme de chaîne de caractères de la clé publique) et type (type de clé, parmi les constantes OPENSSL_KEYTYPE_RSA, OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_EC ou -1, signifiant "inconnu").

En fonction du type de clés utilisées, des détails supplémentaires peuvent être retournés. Notez que quelques éléments peuvent ne pas être toujours disponibles.

  • OPENSSL_KEYTYPE_RSA, une clé de tableau additionnelle appelée "rsa", contenant la donnée de clé est retournée
    Key Description
    "n"
    "e"
    "d"
    "p"
    "q"
    "dmp1"
    "dmq1"
    "iqmp"
  • OPENSSL_KEYTYPE_DSA, une clé de tableau additionnelle appelée "dsa", contenant la donnée de clé est retournée
    Key Description
    "p"
    "q"
    "g"
    "priv_key"
    "pub_key"
  • OPENSSL_KEYTYPE_DH, une clé de tableau additionnelle appelée "dh", contenant la donnée de clé est retournée.
    Key Description
    "p"
    "g"
    "priv_key"
    "pub_key"


Lit une clé privée

  • « openssl_pkey_get_details
  • openssl_pkey_get_public »
  • PHP Manual
  • Fonctions OpenSSL
  • Lit une clé privée

openssl_pkey_get_private

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_get_private — Lit une clé privée

Description

resource openssl_pkey_get_private ( mixed $key [, string $passphrase = "" ] )

openssl_pkey_get_private() analyse la clé key et la prépare pour être utilisée par d'autres fonctions.

Liste de paramètres

key

key peut être l'une des valeurs suivantes :

  1. une chaîne au format file://path/to/file.pem. Le fichier ainsi désigné doit contenir une clé privée ou un certificat au format PEM (éventuellement les deux).
  2. Une clé privée au format PEM.

passphrase

Le paramètre optionnel passphrase doit être utilisé si la clé spécifiée est chiffrée (protégée par un mot de passe).

Valeurs de retour

Retourne une ressource positive représentant une clé en cas de succès, ou FALSE si une erreur survient.


Extrait une clé publique d'un certificat, et la prépare

  • « openssl_pkey_get_private
  • openssl_pkey_new »
  • PHP Manual
  • Fonctions OpenSSL
  • Extrait une clé publique d'un certificat, et la prépare

openssl_pkey_get_public

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_get_public — Extrait une clé publique d'un certificat, et la prépare

Description

resource openssl_pkey_get_public ( mixed $certificate )

openssl_get_publickey() extrait la clé publique du certificat certificate et la prépare pour être utilisée par les autres fonctions.

Liste de paramètres

certificate

certificate peut avoir l'une des valeurs suivantes :

  1. Une ressource d'un certificat X.509.
  2. Une chaîne au format file://path/to/file.pem. Le fichier ainsi désigné doit contenir une clé publique ou un certificat au format PEM (éventuellement les deux).
  3. Une clé publique au format PEM.

Valeurs de retour

Retourne une ressource positive, représentant une clé en cas de succès, ou FALSE si une erreur survient.


Génère une nouvelle clé privée

  • « openssl_pkey_get_public
  • openssl_private_decrypt »
  • PHP Manual
  • Fonctions OpenSSL
  • Génère une nouvelle clé privée

openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_new — Génère une nouvelle clé privée

Description

resource openssl_pkey_new ([ array $configargs ] )

openssl_pkey_new() génère une nouvelle paire de clés, une privée et une publique. La partie publique en est accessible via la fonction openssl_pkey_get_public().

Note: Vous devez avoir un fichier openssl.cnf valide et installé pour que cette fonction opère correctement. Voir les notes se trouvant dans la section concernant l'installation pour plus d'informations.

Liste de paramètres

configargs

Vous pouvez calibrer la génération de la clé (comme le nombre de bits) en utilisant le paramètre configargs. Voir la fonction openssl_csr_new() pour plus de détails sur configargs.

Valeurs de retour

Retourne un identifiant de ressource pour la pkey en cas de succès, FALSE sinon.


Déchiffre des données avec une clé privée

  • « openssl_pkey_new
  • openssl_private_encrypt »
  • PHP Manual
  • Fonctions OpenSSL
  • Déchiffre des données avec une clé privée

openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_private_decrypt — Déchiffre des données avec une clé privée

Description

bool openssl_private_decrypt ( string $data , string &$decrypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] )

openssl_private_decrypt() déchiffre data qui a été chiffrée précédemment avec openssl_public_encrypt(), puis stocke le résultat dans la variable decrypted.

Vous pouvez utiliser cette fonction pour déchiffrer les données qui sont supposées vous être personnellement adressées.

Liste de paramètres

data

decrypted

key

key doit être la clé privée utilisée pour chiffrer les données.

padding

padding peut être OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING ou OPENSSL_NO_PADDING.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openssl_public_encrypt() - Chiffre des données avec une clé publique
  • openssl_public_decrypt() - Déchiffre des données avec une clé publique


Chiffre des données avec une clé privée

  • « openssl_private_decrypt
  • openssl_public_decrypt »
  • PHP Manual
  • Fonctions OpenSSL
  • Chiffre des données avec une clé privée

openssl_private_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_private_encrypt — Chiffre des données avec une clé privée

Description

bool openssl_private_encrypt ( string $data , string &$crypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] )

openssl_private_encrypt() chiffre les données data avec la clé privée key et stocke le résultat dans crypted. Les données chiffrées peuvent être déchiffrées avec la fonction openssl_public_decrypt().

Cette fonction peut être utilisée pour signer les données (ou leurs chiffrements) pour prouver qu'elles n'ont pas été écrites par une autre personne.

Liste de paramètres

data

crypted

key

padding

Le paramètre padding peut être OPENSSL_PKCS1_PADDING ou OPENSSL_NO_PADDING.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openssl_public_encrypt() - Chiffre des données avec une clé publique
  • openssl_public_decrypt() - Déchiffre des données avec une clé publique


Déchiffre des données avec une clé publique

  • « openssl_private_encrypt
  • openssl_public_encrypt »
  • PHP Manual
  • Fonctions OpenSSL
  • Déchiffre des données avec une clé publique

openssl_public_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_public_decrypt — Déchiffre des données avec une clé publique

Description

bool openssl_public_decrypt ( string $data , string &$decrypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] )

openssl_public_decrypt() déchiffre les données data qui ont été chiffrées avec la fonction openssl_private_encrypt() et stocke le résultat dans decrypted.

Vous pouvez utiliser cette fonction pour vérifier si le message a été écrit par le propriétaire de la clé privée.

Liste de paramètres

data

decrypted

key

key doit être la clé publique qui a été utilisée pour chiffrer les données.

padding

padding peut être OPENSSL_PKCS1_PADDING ou OPENSSL_NO_PADDING.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openssl_private_encrypt() - Chiffre des données avec une clé privée
  • openssl_private_decrypt() - Déchiffre des données avec une clé privée


Chiffre des données avec une clé publique

  • « openssl_public_decrypt
  • openssl_random_pseudo_bytes »
  • PHP Manual
  • Fonctions OpenSSL
  • Chiffre des données avec une clé publique

openssl_public_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_public_encrypt — Chiffre des données avec une clé publique

Description

bool openssl_public_encrypt ( string $data , string &$crypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] )

openssl_public_encrypt() chiffre les données data avec la clé publique key et stocke le résultat dans crypted. Les données chiffrées peuvent être déchiffrées avec la fonction openssl_private_decrypt().

Cette fonction peut être utilisée pour chiffrer un message qui pourra être lu uniquement par le propriétaire de la clé privée. Elle peut être également utilisée pour stocker des données sécurisées dans une base de données.

Liste de paramètres

data

crypted

Contiendra le résultat du chiffrage.

key

La clé publique.

padding

padding peut être OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING ou OPENSSL_NO_PADDING.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • openssl_private_encrypt() - Chiffre des données avec une clé privée
  • openssl_private_decrypt() - Déchiffre des données avec une clé privée


Génère une chaine pseudo-aléatoire d'octets

  • « openssl_public_encrypt
  • openssl_seal »
  • PHP Manual
  • Fonctions OpenSSL
  • Génère une chaine pseudo-aléatoire d'octets

openssl_random_pseudo_bytes

(PHP 5 >= 5.3.0, PHP 7)

openssl_random_pseudo_bytes — Génère une chaine pseudo-aléatoire d'octets

Description

string openssl_random_pseudo_bytes ( int $length [, bool &$crypto_strong ] )

Génère une chaîne de caractères pseudo-aléatoire d'octets, dont la longueur est spécifiée par le paramètre length.

Indique également si l'algorithme fort de cryptologie a été utilisé pour produire ces octets pseudo-aléatoires, en utilisant le paramètre crypto_strong.

Liste de paramètres

length

La taille désirée pour la chaine d'octets. Un entier positif est demandé. PHP va tenter de transtyper ce paramètre en un entier non nul pour l'utiliser.

crypto_strong

Si fourni, détermine si l'agorithme de cryptologie utilisé était cryptographiquement fort, i.e. sécurisé pour être utilisé avec GPG, les mots de passe, etc... TRUE si il l'est, FALSE sinon.

Valeurs de retour

Retourne la chaine d'octets générée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple openssl_random_pseudo_bytes()

<?php
for ($i = -1; $i <= 4; $i++) {
    $bytes = openssl_random_pseudo_bytes($i, $cstrong);
    $hex   = bin2hex($bytes);

    echo "Longueur : Octets : $i et Hex: " . strlen($hex) . PHP_EOL;
    var_dump($hex);
    var_dump($cstrong);
    echo PHP_EOL;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Longueur : Octets : -1 et Hex: 0
string(0) ""
NULL

Longueur : Octets : 0 et Hex: 0
string(0) ""
NULL

Longueur : Octets : 1 et  Hex: 2
string(2) "42"
bool(true)

Longueur : Octets : 2 et Hex: 4
string(4) "dc6e"
bool(true)

Longueur : Octets : 3 et Hex: 6
string(6) "288591"
bool(true)

Longueur : Octets : 4 et Hex: 8
string(8) "ab86d144"
bool(true)

Voir aussi

  • random_bytes() - Generates cryptographically secure pseudo-random bytes
  • bin2hex() - Convertit des données binaires en représentation hexadécimale
  • crypt() - Hachage à sens unique (indéchiffrable)
  • mt_rand() - Génère une meilleure valeur aléatoire
  • uniqid() - Génère un identifiant unique


Scelle des données

  • « openssl_random_pseudo_bytes
  • openssl_sign »
  • PHP Manual
  • Fonctions OpenSSL
  • Scelle des données

openssl_seal

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_seal — Scelle des données

Description

int openssl_seal ( string $data , string &$sealed_data , array &$env_keys , array $pub_key_ids [, string $method ] )

openssl_seal() chiffre les données data en utilisant l'algorithme RC4 avec une clé secrète générée aléatoirement. La clé est chiffrée avec chaque clé publique associée à pub_key_ids et chaque clé ainsi chiffrée est retournée dans env_keys. Cela signifie que vous pouvez envoyer des données scellées à plusieurs destinataires (en supposant que chacun ait reçu la clé publique). Chaque destinataire doit recevoir les données chiffrées et la clé d'enveloppe, qui a été chiffrée avec la clé publique du destinataire.

Liste de paramètres

data

sealed_data

env_keys

pub_key_ids

Valeurs de retour

Retourne la longueur des données scellées en cas de succès, et FALSE sinon. En cas de succès, les données scellées sont placées dans le paramètre sealed_data, et les clés d'enveloppe dans env_keys.

Exemples

Exemple #1 Exemple avec openssl_seal()

<?php
// On suppose que $data contient les données à sceller
// lecture de la clé publique pour chaque destinataire
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);
// pour le deuxième destinataire
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);

// scelle le message : seuls, les possesseurs de $pk1 et $pk2 peuvent déchiffrer
// le message $sealed avec les clés $ekeys[0] et $ekeys[1] (respectivement).
openssl_seal($data, $sealed, $ekeys, array($pk1, $pk2));

// libère les clés de la mémoire
openssl_free_key($pk1);
openssl_free_key($pk2);
?>

Voir aussi

  • openssl_open() - Ouvre des données scellées


Signe les données

  • « openssl_seal
  • openssl_spki_export_challenge »
  • PHP Manual
  • Fonctions OpenSSL
  • Signe les données

openssl_sign

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_sign — Signe les données

Description

bool openssl_sign ( string $data , string &$signature , mixed $priv_key_id [, mixed $signature_alg = OPENSSL_ALGO_SHA1 ] )

openssl_sign() calcule la signature des données data en générant une signature digitale cryptographique en utilisant la clé privée associée avec le paramètre priv_key_id. Notez que les données elles-mêmes ne sont pas chiffrées.

Liste de paramètres

data

La chaîne de données que vous souhaitez signer.

signature

Si l'appel à la fonction est un succès, la signature sera retournée dans le paramètre signature.

priv_key_id

resource - une clé, retournée par la fonction openssl_get_privatekey()

string - une clé au format PEM

signature_alg

int - une des signatures d'algorithmes.

string - une chaîne valide retournée par la fonction openssl_get_md_methods(), par exemple : "sha256WithRSAEncryption" ou "sha384".

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec openssl_sign()

<?php
// On suppose que $data contient les données à signer

// lecture de la clé publique pour chaque destinataire
$pkeyid = openssl_pkey_get_private("file://src/openssl-0.9.6/demos/sign/key.pem");

// calcule de la signature
openssl_sign($data, $signature, $pkeyid);

// libère les clés de la mémoire
openssl_free_key($pkeyid);
?>

Exemple #2 Exemple avec openssl_sign()

<?php
//données que vous souhaitez signer
$data = 'my data';

//Crée une nouvelle clé privée et publique
$new_key_pair = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
openssl_pkey_export($new_key_pair, $private_key_pem);

$details = openssl_pkey_get_details($new_key_pair);
$public_key_pem = $details['key'];

//Création de la signature
openssl_sign($data, $signature, $private_key_pem, OPENSSL_ALGO_SHA256);

//Sauvegarde pour utilisation ultérieur
file_put_contents('private_key.pem', $private_key_pem);
file_put_contents('public_key.pem', $public_key_pem);
file_put_contents('signature.dat', $signature);

//Vérification de la signature
$r = openssl_verify($data, $signature, $public_key_pem, "sha256WithRSAEncryption");
var_dump($r);
?>

Voir aussi

  • openssl_verify() - Vérifie une signature


Exporte le challenge associé avec la clé publique signée

  • « openssl_sign
  • openssl_spki_export »
  • PHP Manual
  • Fonctions OpenSSL
  • Exporte le challenge associé avec la clé publique signée

openssl_spki_export_challenge

(PHP 5 >= 5.6.0, PHP 7)

openssl_spki_export_challenge — Exporte le challenge associé avec la clé publique signée

Description

string openssl_spki_export_challenge ( string &$spkac )

Exporte le challenge associé avec la clé publique signée.

Liste de paramètres

spkac

Une clé publique signée valide

Valeurs de retour

Retourne le challenge associé sous la forme d'une chaîne de caractères ou NULL en cas d'échec.

Erreurs / Exceptions

Emets une alerte de niveau E_WARNING si un argument invalide est passé via le paramètre spkac.

Exemples

Exemple #1 Exemple avec openssl_spki_export_challenge()

Extrait le challenge associé sous la forme d'une chaîne de caractères ou NULL en cas d'échec.

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'challenge string');
$challenge = openssl_spki_export_challenge(preg_replace('/SPKAC=/', '', $spkac));
?>

Exemple #2 Exemple avec openssl_spki_export_challenge() depuis <keygen>

Extrait le challenge associé issue d'un élément <keygen>

<?php
$challenge = openssl_spki_export_challenge(preg_replace('/SPKAC=/', '', $_POST['spkac']));
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Voir aussi

  • openssl_spki_new() - Génère une clé publique signée et effectue un challenge
  • openssl_spki_verify() - Vérifie une clé publique signée, et effectue un challenge
  • openssl_spki_export() - Exporte un PEM valide formaté comme une clé publique signée
  • openssl_md_method()
  • openssl_csr_new() - Génère une CSR
  • openssl_csr_sign() - Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat


Exporte un PEM valide formaté comme une clé publique signée

  • « openssl_spki_export_challenge
  • openssl_spki_new »
  • PHP Manual
  • Fonctions OpenSSL
  • Exporte un PEM valide formaté comme une clé publique signée

openssl_spki_export

(PHP 5 >= 5.6.0, PHP 7)

openssl_spki_export — Exporte un PEM valide formaté comme une clé publique signée

Description

string openssl_spki_export ( string &$spkac )

Exporte un PEM valide formaté comme une clé publique signée.

Liste de paramètres

spkac

Une clé publique signée valide

Valeurs de retour

Retourne le PEM associé formaté en clé publique, ou NULL si une erreur survient.

Erreurs / Exceptions

Emets une alerte de niveau E_WARNING si un argument non valide est passé via le paramètre spkac.

Exemples

Exemple #1 Exemple avec openssl_spki_export()

Extrait le PEM associé formaté comme clé publique, ou NULL en cas d'échec.

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'challenge string');
$pubKey = openssl_spki_export(preg_replace('/SPKAC=/', '', $spkac));

if ($pubKey) {
    echo $pubKey;
}
?>

Exemple #2 Exemple avec openssl_spki_export() depuis <keygen>

Extrait le PEM associé formaté en clé publique, issue d'un élément <keygen>

<?php
$spkac = openssl_spki_export(preg_replace('/SPKAC=/', '', $_POST['spkac']));
if ($spkac != NULL) {
    echo $spkac;
} else {
    echo "Extraction of pub key failed";
}
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Voir aussi

  • openssl_spki_new() - Génère une clé publique signée et effectue un challenge
  • openssl_spki_verify() - Vérifie une clé publique signée, et effectue un challenge
  • openssl_spki_export_challenge() - Exporte le challenge associé avec la clé publique signée
  • openssl_md_method()
  • openssl_csr_new() - Génère une CSR
  • openssl_csr_sign() - Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat


Génère une clé publique signée et effectue un challenge

  • « openssl_spki_export
  • openssl_spki_verify »
  • PHP Manual
  • Fonctions OpenSSL
  • Génère une clé publique signée et effectue un challenge

openssl_spki_new

(PHP 5 >= 5.6.0, PHP 7)

openssl_spki_new — Génère une clé publique signée et effectue un challenge

Description

string openssl_spki_new ( resource &$privkey , string &$challenge [, int $algorithm = 0 ] )

Génère une clé publique signée en utilisant un algorithme de hashage spécifié.

Liste de paramètres

privkey

privkey doit être une clé privée qui a été précédemment générée par la fonction openssl_pkey_new() (ou sinon, obtenu depuis une fonction de la famille openssl_pkey). La portion publique de la clé sera utilisée pour signer le CSR.

challenge

Le challenge associé à associer avec le SPKAC

algorithm

L'algorithme digest. Voir openssl_get_md_method().

Valeurs de retour

Retourne une clé publique signée sous la forme d'une chaîne de caractères ou NULL en cas d'échec.

Erreurs / Exceptions

Emets une alerte de niveau E_WARNING si un algorithme avec une signature non connue est passée via le paramètre algorithm.

Exemples

Exemple #1 Exemple avec openssl_spki_new()

Génère un nouveau SPKAC avec le digest par défaut (MD5)

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'testing');

if ($spkac !== NULL) {
    echo $spkac;
} else {
    echo "SPKAC generation failed";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

MIICRzCCAS8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDM3V3sS4o4
mB9dczziRnjGAmSp+JwPrHoYMAFGvDNmZGyiWfU586X4BKs++BAj7e/FsAfno0Hd
hN9FwpCNFSox30L03nQvLYJE7f/WqigwBeMRT7Op/xvFks4sT70xP2HRYv4KqP9a
WRcKU6cFH8VxhFhqM2txEIxZKdFLaL28yT7bEDmcglf4JLDdgNMb9rET1dkgtKE6
dOaJHPGjf1uvnOH4YwkQr7n4sLUR3Kdbh0ZJAFuQVDZulo+LLzxBBkqJJcB6FhF+
oXCdHTKZnqAhpWDz+NXYytAmevab6IYm5TWPWsJUv1YKJA5lg2mXbbloIZlN9Mgc
i9fi03bdw+crAgMBAAEWB3Rlc3RpbmcwDQYJKoZIhvcNAQEEBQADggEBALyUvP/o
pPSoWBlorFyZ2RnGwKf9qMpE0q2IJP7G3oDR4LyK/m933DUiZ+YnqThrH/CWb4Ek
y5I3OCyl3S4wCuU1ibZZwDVwYShr5ELp0J9PEf7qMQZOhNsizoC7k+Czb2xB6hYW
sKfsfTKm3cXBtH3fdgc/Z1Z7VSWnAzYo38snqm72NTf5yFRnrQdphNNXi+kn1zHA
lxXRyFDXHOcYsOnwAWfyXFA4QDHQ0ezz0UoCY8gJXovcZb4GRYqOLUAsF2HcNboy
29WN8VqE29sL9QxVZFlwMcqyoLcNnyw38GvNvAGqSvzzbnEFP2MAQXJVe0H0hdp/
MML5G2iNVgNozAo=

Voir aussi

  • openssl_spki_new()
  • openssl_spki_export_challenge() - Exporte le challenge associé avec la clé publique signée
  • openssl_spki_export() - Exporte un PEM valide formaté comme une clé publique signée
  • openssl_csr_new() - Génère une CSR
  • openssl_csr_sign() - Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat


Vérifie une clé publique signée, et effectue un challenge

  • « openssl_spki_new
  • openssl_verify »
  • PHP Manual
  • Fonctions OpenSSL
  • Vérifie une clé publique signée, et effectue un challenge

openssl_spki_verify

(PHP 5 >= 5.6.0, PHP 7)

openssl_spki_verify — Vérifie une clé publique signée, et effectue un challenge

Description

string openssl_spki_verify ( string &$spkac )

Vérifie une clé publique signée, et effectue un challenge.

Liste de paramètres

spkac

Une clé publique signée valide

Valeurs de retour

Retourne un booléen en cas de succès ou d'échec.

Erreurs / Exceptions

Emets une alerte de niveau E_WARNING si un argument invalide est passé au paramètre spkac parameter.

Exemples

Exemple #1 Exemple avec openssl_spki_verify()

Valide une clé publique signée existante et effectue un challenge

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'challenge string');

if (openssl_spki_verify(preg_replace('/SPKAC=/', '', $spkac))) {
    echo $spkac;
} else {
    echo "SPKAC validation failed";
}
?>

Exemple #2 Exemple avec openssl_spki_verify() depuis <keygen>

Valide une clé publique signée existante issue d'un élément <keygen>

<?php
if (openssl_spki_verify(preg_replace('/SPKAC=/', '', $_POST['spkac']))) {
    echo $spkac;
} else {
    echo "SPKAC validation failed";
}
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Voir aussi

  • openssl_spki_new() - Génère une clé publique signée et effectue un challenge
  • openssl_spki_export_challenge() - Exporte le challenge associé avec la clé publique signée
  • openssl_spki_export() - Exporte un PEM valide formaté comme une clé publique signée
  • openssl_md_method()
  • openssl_csr_new() - Génère une CSR
  • openssl_csr_sign() - Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat


Vérifie une signature

  • « openssl_spki_verify
  • openssl_x509_check_private_key »
  • PHP Manual
  • Fonctions OpenSSL
  • Vérifie une signature

openssl_verify

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_verify — Vérifie une signature

Description

int openssl_verify ( string $data , string $signature , mixed $pub_key_id [, mixed $signature_alg = OPENSSL_ALGO_SHA1 ] )

openssl_verify() vérifie que la signature signature est correcte pour les données data, et avec la clé publique pub_key_id. Cette clé doit être la clé publique correspondant à la clé privée utilisée lors de la signature.

Liste de paramètres

data

La chaîne de données utilisé pour générer la signature

signature

Une chaîne brûte binaire, générée par la fonction openssl_sign() ou signification similaire

pub_key_id

resource - une clé, retourné par la fonction openssl_get_publickey()

string - une clé au format PEM, par exemple : "-----BEGIN PUBLIC KEY----- MIIBCgK..."

signature_alg

int - une des signatures d'algorithmes.

string - une chaîne valide retournée par la fonction openssl_get_md_methods(), par exemple : "sha1WithRSAEncryption" ou "sha512". Algorithme par défaut: "OPENSSL_ALGO_SHA1".

Valeurs de retour

Retourne 1 si la signature est correcte, 0 si elle est incorrecte et -1 si une erreur survient.

Historique

Version | Description
5.2.0 | Ajout du paramètre signature_alg.

Exemples

Exemple #1 Exemple avec openssl_verify()

<?php
// On suppose que $data et $signature contiennent les données à signer et
// la signature.

// Lecture de la clé publique depuis le certificat
$pubkeyid = openssl_pkey_get_public("file://src/openssl-0.9.6/demos/sign/cert.pem");

// indique si la signature est correcte
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1) {
    echo "Signature valide";
} elseif ($ok == 0) {
    echo "Signature erronée";
} else {
    echo "Erreur de vérification de la signature";
}
// libère les clés de la mémoire
openssl_free_key($pubkeyid);
?>

Exemple #2 Exemple avec openssl_verify()

<?php
//Données que vous souhaitez signer
$data = 'my data';

//Crée une nouvelle clé privée et publique
$private_key_res = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$details = openssl_pkey_get_details($private_key_res);
$public_key_res = openssl_pkey_get_public($details['key']);

//Crée une signature
openssl_sign($data, $signature, $private_key_res, "sha1WithRSAEncryption");

//Vérifie la signature
$ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA1);
if ($ok == 1) {
    echo "valid";
} elseif ($ok == 0) {
    echo "invalide";
} else {
    echo "erreur : ".openssl_error_string();
}
?>

Voir aussi

  • openssl_sign() - Signe les données


Vérifie si une clé privée correspond à un certificat

  • « openssl_verify
  • openssl_x509_checkpurpose »
  • PHP Manual
  • Fonctions OpenSSL
  • Vérifie si une clé privée correspond à un certificat

openssl_x509_check_private_key

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_x509_check_private_key — Vérifie si une clé privée correspond à un certificat

Description

bool openssl_x509_check_private_key ( mixed $cert , mixed $key )

Vérifie si le paramètre key fourni est la clé privée qui correspond à cert.

Liste de paramètres

cert

Le certificat.

key

La clé privée.

Valeurs de retour

Retourne TRUE si key est la clé privée qui correspond à cert, ou FALSE sinon.


Vérifie l'usage d'un certificat

  • « openssl_x509_check_private_key
  • openssl_x509_export_to_file »
  • PHP Manual
  • Fonctions OpenSSL
  • Vérifie l'usage d'un certificat

openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_x509_checkpurpose — Vérifie l'usage d'un certificat

Description

int openssl_x509_checkpurpose ( mixed $x509cert , int $purpose [, array $cainfo = array() [, string $untrustedfile ]] )

openssl_x509_checkpurpose() examine le certificat spécifié par x509cert, pour voir s'il peut être utilisé pour une opération particulière purpose.

Liste de paramètres

x509cert

Le certificat examiné.

purpose

Utilisation de openssl_x509_checkpurpose()
Constante | Description
X509_PURPOSE_SSL_CLIENT | Est-ce que le certificat peut être utilisé avec le client d'une connexion SSL ?
X509_PURPOSE_SSL_SERVER | Est-ce que le certificat peut être utilisé avec le serveur d'une connexion SSL ?
X509_PURPOSE_NS_SSL_SERVER | Est-ce que le certificat peut être utilisé avec un serveur Netscape d'une connexion SSL ?
X509_PURPOSE_SMIME_SIGN | Est-ce que le certificat peut être utilisé pour signer des courriers à la norme S/MIME ?
X509_PURPOSE_SMIME_ENCRYPT | Est-ce que le certificat peut être utilisé pour chiffrer un courrier au format S/MIME ?
X509_PURPOSE_CRL_SIGN | Est-ce que le certificat peut être utilisé pour chiffrer une liste de révocation de certificats ? (CRL)?
X509_PURPOSE_ANY | Est-ce que le certificat peut être utilisé pour n'importe lequel de ces cas ?
Ces options ne sont pas des champs de bits : vous ne pouvez en passer qu'une seule à la fois.

cainfo

cainfo doit être un tableau de dossiers/fichiers de CA de confiance comme décrit dans la Vérification des certificats.

untrustedfile

Si spécifié, est le nom d'un fichier au format PEM contenant les certificats qui pourront aider lors de la vérification du certificat, même si une confiance limitée doit leur être portée.

Valeurs de retour

Retourne TRUE si le certificat peut être utilisé pour un but particulier, FALSE s'il ne le peut pas, ou -1 si une erreur survient.


Exporte un certificat vers un fichier

  • « openssl_x509_checkpurpose
  • openssl_x509_export »
  • PHP Manual
  • Fonctions OpenSSL
  • Exporte un certificat vers un fichier

openssl_x509_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_x509_export_to_file — Exporte un certificat vers un fichier

Description

bool openssl_x509_export_to_file ( mixed $x509 , string $outfilename [, bool $notext = TRUE ] )

openssl_x509_export_to_file() stocke un certificat x509 dans le fichier outfilename au format PRM.

Liste de paramètres

x509

Voir les paramètres clés/Certificats pour une liste de valeurs valides.

outfilename

Chemin du fichier de sortie.

notext

Le paramètre optionnel notext affecte le niveau verbeux de l'affichage ; s'il vaut FALSE, des informations humainement lisibles seront ajoutées dans l'affichage. Par défaut, le paramètre notext vaut TRUE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Exporte un certificat vers une chaîne de caractères

  • « openssl_x509_export_to_file
  • openssl_x509_fingerprint »
  • PHP Manual
  • Fonctions OpenSSL
  • Exporte un certificat vers une chaîne de caractères

openssl_x509_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_x509_export — Exporte un certificat vers une chaîne de caractères

Description

bool openssl_x509_export ( mixed $x509 , string &$output [, bool $notext = TRUE ] )

openssl_x509_export() stocke un certificat x509 dans le fichier output au format PRM.

Liste de paramètres

x509

Voir les paramètres clés/Certificats pour une liste de valeurs valides.

output

En cas de succès, contiendra le PEM.

notext

Le paramètre optionnel notext affecte le niveau verbeux de l'affichage ; s'il vaut FALSE, des informations humainement lisibles seront ajoutées dans l'affichage. Par défaut, le paramètre notext vaut TRUE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Calcule l'empreinte, ou le digest d'un certificat X.509 donné

  • « openssl_x509_export
  • openssl_x509_free »
  • PHP Manual
  • Fonctions OpenSSL
  • Calcule l'empreinte, ou le digest d'un certificat X.509 donné

openssl_x509_fingerprint

(PHP 5.6, PHP 7)

openssl_x509_fingerprint — Calcule l'empreinte, ou le digest d'un certificat X.509 donné

Description

bool openssl_x509_fingerprint ( mixed $x509 [, string $hash_algorithm = "sha1" [, bool $raw_output = FALSE ]] )

La fonction openssl_x509_fingerprint() retourne le digest d'un certificat x509 sous la forme d'une chaîne de caractères.

Liste de paramètres

x509

Voir les paramètres clés/Certificats pour une liste de valeurs valides.

hash_algorithm

L'algorithme de hashage à utiliser, i.e. "md5" ou "sha1"

raw_output

Lorsque vaut TRUE, affiche les données brutes binaires. FALSE permet d'afficher en hexits minuscules.

Valeurs de retour

Retourne un chaîne de caractères contenant l'empreinte calculé du certificat sous la forme d'hexits minuscule si le paramètre raw_output vaut FALSE. Si ce paramètre vaut TRUE, retourne la représentation brûte binaire du message digest.

Retourne FALSE en cas d'échec.


Libère les ressources prises par un certificat

  • « openssl_x509_fingerprint
  • openssl_x509_parse »
  • PHP Manual
  • Fonctions OpenSSL
  • Libère les ressources prises par un certificat

openssl_x509_free

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_x509_free — Libère les ressources prises par un certificat

Description

void openssl_x509_free ( resource $x509cert )

openssl_x509_free() libère les ressources prises par le certificat x509cert.

Liste de paramètres

x509cert

Valeurs de retour

Aucune valeur n'est retournée.


Analyse un certificat X509

  • « openssl_x509_free
  • openssl_x509_read »
  • PHP Manual
  • Fonctions OpenSSL
  • Analyse un certificat X509

openssl_x509_parse

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_x509_parse — Analyse un certificat X509

Description

array openssl_x509_parse ( mixed $x509cert [, bool $shortnames = true ] )

openssl_x509_parse() analyse le certificat X509 x509cert, et retourne les informations contenues dedans, y compris le sujet (subject), nom (name), émetteur (issuer name), dates de début et de fin (valid from date et valid to date), etc.

Liste de paramètres

x509cert

shortnames

shortnames contrôle l'indexation des données dans le tableau : si shortnames vaut TRUE (valeur par défaut), alors les champs seront indexés avec la forme courte des noms, sinon, les noms longs seront utilisés. (par exemple, CN est le nom court de commonName).

Valeurs de retour

La structure des données retournées est (délibérément) non documentée, car elle est sujette à des changements sans préavis.


Analyse un certificat X.509 et retourne une ressource

  • « openssl_x509_parse
  • Table de hachage de mot de passe »
  • PHP Manual
  • Fonctions OpenSSL
  • Analyse un certificat X.509 et retourne une ressource

openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_x509_read — Analyse un certificat X.509 et retourne une ressource

Description

resource openssl_x509_read ( mixed $x509certdata )

openssl_x509_read() analyse le certificat x509certdata et retourne un identifiant de ressource.

Liste de paramètres

x509certdata

Valeurs de retour

Retourne une ressource en cas de succès ou FALSE si une erreur survient.


Table de hachage de mot de passe

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions de hachage de mot de passe
    • password_get_info — Retourne des informations à propos du hachage fourni
    • password_hash — Crée une clé de hachage pour un mot de passe
    • password_needs_rehash — Vérifie que le hachage fourni est conforme à l'algorithme et aux options spécifiées
    • password_verify — Vérifie qu'un mot de passe correspond à un hachage


Introduction

L'API de hachage de mot de passe fournit un gestionnaire simple à utiliser reposant sur la fonction crypt(), rendant simple la création et la gestion des mots de passe, de manière sécurisé.

Cette extension est disponible depuis PHP 5.5.0 mais il existe également une » implémentation en espace utilisateur pour PHP >= 5.3.7.


Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

PASSWORD_BCRYPT (entier)

La constante PASSWORD_BCRYPT est utilisée pour créer une nouvelle table de hachage de mot de passe en utilisant l'algorithme CRYPT_BLOWFISH.

Elle a toujours retourné le résultat de hachage en utilisant le format crypt "$2y$", qui sera toujours une chaîne de caractères de 60 caractères de long.

Options supportées :

  • salt - permet de fournir manuellement un salt à utiliser pour le hachage du mot de passe. Notez que ceci va écraser tout salt généré automatiquement.

    Si omis, un salt aléatoire sera généré par la fonction password_hash() pour chaque mot de passe haché. C'est bien le but de l'opération.

  • cost - le "cost" algorithmique à utiliser. Des exemples de ces valeurs peuvent être trouvés sur la page de la documentation de la fonction crypt().

    Si omis, une valeur par défaut de 10 sera utilisée. C'est une bonne base mais vous pourriez vouloir l'augmenter suivant votre architecture matérielle.

PASSWORD_DEFAULT (entier)

L'algorithme par défaut à utiliser pour le hachage si aucun algorithme n'est fourni. Cette valeur peut changer dans les futures versions de PHP où il est probable que de meilleurs algorithmes de hachage soient supportés.

Cette valeur peut (et va certainement) changer dans le temps. Toutefois, vous devez être prudent sur le fait que la longueur du résultat peut changer aussi. Aussi, si vous utilisez la constante PASSWORD_DEFAULT, vous devriez stocker le hache résultant dans un champ supportant au moins 60 caractères (255 caractères serait un excellent choix).

Valeur pour cette constante :

  • PHP 5.5.0 - PASSWORD_BCRYPT


Fonctions de hachage de mot de passe

Sommaire

  • password_get_info — Retourne des informations à propos du hachage fourni
  • password_hash — Crée une clé de hachage pour un mot de passe
  • password_needs_rehash — Vérifie que le hachage fourni est conforme à l'algorithme et aux options spécifiées
  • password_verify — Vérifie qu'un mot de passe correspond à un hachage


Retourne des informations à propos du hachage fourni

  • « Fonctions de hachage de mot de passe
  • password_hash »
  • PHP Manual
  • Fonctions de hachage de mot de passe
  • Retourne des informations à propos du hachage fourni

password_get_info

(PHP 5 >= 5.5.0, PHP 7)

password_get_info — Retourne des informations à propos du hachage fourni

Description

array password_get_info ( string $hash )

Lorsqu'il est passé un hachage valide, créée par un algorithme supporté par la fonction password_hash(), cette fonction retournera un tableau d'information à propos de ce dernier.

Liste de paramètres

hash

Un hachage créé par la fonction password_hash().

Valeurs de retour

Retourne un tableau associatif contenant trois éléments :

  • algo, qui doit correspondre à une constante de l'algorithme de mot de passe
  • algoName, qui correspond au nom humainement lisible de l'algorithme
  • options, qui contient les options fournies lors de l'appel de la fonction password_hash()


Crée une clé de hachage pour un mot de passe

  • « password_get_info
  • password_needs_rehash »
  • PHP Manual
  • Fonctions de hachage de mot de passe
  • Crée une clé de hachage pour un mot de passe

password_hash

(PHP 5 >= 5.5.0, PHP 7)

password_hash — Crée une clé de hachage pour un mot de passe

Description

string password_hash ( string $password , integer $algo [, array $options ] )

La fonction password_hash() crée un nouveau hachage en utilisant un algorithme de hachage fort et irréversible. La fonction password_hash() est compatible avec la fonction crypt(). Aussi, un mot de passe haché par la fonction crypt() peut être utilisé avec la fonction password_hash().

Les algorithmes suivants sont actuellement supportés :

  • PASSWORD_DEFAULT - Utilisation de l'algorithme bcrypt (par défaut depuis PHP 5.5.0). Notez que cette constante est concue pour changer dans le temps, au fur et à mesure que des algorithmes plus récents et plus forts sont ajoutés à PHP. Pour cette raison, la longueur du résultat issu de cet algorithme peut changer dans le temps, il est donc recommandé de stocker le résultat dans une colonne de la base de données qui peut contenir au moins 60 caractères (255 caractères peut être un très bon choix).
  • PASSWORD_BCRYPT - Utilisation de l'algorithme CRYPT_BLOWFISH pour créer la clé de hachage. Ceci va créer une clé de hachage standard crypt() utilisant l'identifiant "$2y$". Le résultat sera toujours une chaîne de 60 caractères, ou FALSE si une erreur survient.

    Options supportées :

    • salt - pour fournir manuellement un salt à utiliser lors du hachage du mot de passe. Notez que cette option empêchera la génération automatique.

      Si omis, un salt aléatoire sera généré par la fonction password_hash() pour chaque mot de passe haché. C'est le mode de fonctionnement prévu.

    • cost - détermine le coût algorithmique qui doit être utilisé. Des exemples de ces valeurs peuvent être trouvés sur la page de la documentation de la fonction crypt().

      Si omis, la valeur par défaut 10 sera utilisée. C'est un bon compromis, mais vous pourriez vouloir l'augmenter suivant votre architecture.

Liste de paramètres

password

Le mot de passe utilisateur.

Attention

L'utilisation de la constante PASSWORD_BCRYPT pour le paramètre algo fera que le paramètre password sera tronqué à une longueur maximale de 72 caractères.

algo

Une constantes de l'algorithme de mot de passe représentant l'algorithme à utiliser lors du hachage du mot de passe.

options

Un tableau associatif contenant les options. Voir aussi les constantes de l'algorithme de mot de passe pour une documentation sur les options supportées pour chaque algorithme.

Si omis, un salt aléatoire sera créé et le cost par défaut sera utilisé.

Valeurs de retour

Retourne le mot de passe haché, ou FALSE si une erreur survient.

L'algorithme utilisé, le coût et le salt sont contenus dans le hachage retourné. Aussi, toutes les informations utiles pour vérifier ce dernier y sont incluses. Ceci permet à la fonction password_verify() de vérifier le hachage sans avoir besoin de stocker séparément ces informations.

Exemples

Exemple #1 Exemple avec password_hash()

<?php
/**
 * Nous voulons juste hacher notre mot de passe en utiliant l'algorithme par défaut.
 * Actuellement, il s'agit de BCRYPT, ce qui produira un résultat sous forme de chaîne de
 * caractères d'une longueur de 60 caractères.
 *
 * Gardez à l'esprit que DEFAULT peut changer dans le temps, aussi, vous devriez vous
 * y préparer en autorisant un stockage supérieur à 60 caractères (255 peut être un bon choix)
 */

echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT)."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a

Exemple #2 Exemple avec password_hash() en définissant manuellement l'option cost

<?php
/**
 * Dans ce cas, nous souhaitons augmenter le "cost" par défaut pour BCRYPT à la valeur 12.
 * Notez que nous passons également à l'algorithme BCRYPT, qui produit toujours un résultat
 * de 60 caractères.
 */

$options = [
    'cost' => 12,
];
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options)."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

$2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K

Exemple #3 Exemple avec password_hash() et une définition du salt manuelle

<?php
/**
 * Notez que le salt est généré aléatoirement.
 * Ne jamais utiliser un salt statique, ou un qui ne serait pas généré aléatoirement.
 *
 * Pour la grande majorité des cas, laissez la fonction password_hash générer le salt
 * aléatoirement à votre place
 */
$options = [
    'cost' => 11,
    'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM),
];
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options)."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

$2y$11$q5MkhSBtlsJcNEVsYh64a.aCluzHnGog7TQAKVmQwO9C8xb.t89F.

Exemple #4 Exemple avec password_hash() et un bon "cost"

<?php
/**
 * Ce code va tester votre serveur pour déterminer quel serait le meilleur "cost".
 * Vous souhaitez définir le "cost" le plus élevé possible sans trop ralentir votre serveur.
 * 8-10 est une bonne base, mais une valeur plus élevée est aussi un bon choix à partir
 * du moment où votre serveur est suffisament rapide ! Le code suivant espère un temps
 * = à 50 millisecondes, ce qui est une bonne base pour les systèmes gérants les identifications
 * intéractivement.
 */
$timeTarget = 0.05; // 50 millisecondes

$cost = 8;
do {
    $cost++;
    $start = microtime(true);
    password_hash("test", PASSWORD_BCRYPT, ["cost" => $cost]);
    $end = microtime(true);
} while (($end - $start) < $timeTarget);

echo "Valeur de 'cost' la plus appropriée : " . $cost . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Valeur de 'cost' la plus appropriée : 10

Notes

Attention

Il est vivement recommandé de ne pas générer vous-même votre propre salt pour cette fonction. La fonction va générer un salt sécurisé automatiquement pour vous si vous n'en spécifiez pas un !

Note:

Il est recommandé de tester cette fonction sur vos serveurs, et d'ajuster le paramètre "cost" afin que l'exécution de cette fonction prenne moins de 100 millisecondes. Le script dans l'exemple ci-dessus vous aide à choisir une bonne valeur suivant votre architecture matérielle.

Note: La mise à jour des algorithmes supportés par cette fonction (ou le changement à celui par défaut) doit suivre les règles suivantes :

  • Chaque nouvel algorithme doit faire parti du coeur de PHP pendant au moins 1 version complète avant de prétendre à devenir l'algorithme par défaut. Aussi, si, par exemple, un nouvel algorithme est ajouté en version 5.5.5, il ne sera éligible comme algorithme par défaut qu'à partir de PHP 5.7 (sachant que 5.6 sera la première version complète). Mais si un algorithme différent a été ajouté en 5.6.0, il sera aussi éligible comme algorithme par défaut à partir de la version 5.7.0.
  • L'algorithme par défaut ne peut être changé que lors d'une version complète (5.6.0, 6.0.0, etc...) et non pendant une version de révision. La seule exception à ce principe de base serait une urgence, par exemple, lors de la découverte d'un bogue critique au niveau de la sécurité dans l'algorithme par défaut.

Voir aussi

  • password_verify() - Vérifie qu'un mot de passe correspond à un hachage
  • crypt() - Hachage à sens unique (indéchiffrable)
  • » l'implémentation en espace utilisateur


Vérifie que le hachage fourni est conforme à l'algorithme et aux options spécifiées

  • « password_hash
  • password_verify »
  • PHP Manual
  • Fonctions de hachage de mot de passe
  • Vérifie que le hachage fourni est conforme à l'algorithme et aux options spécifiées

password_needs_rehash

(PHP 5 >= 5.5.0, PHP 7)

password_needs_rehash — Vérifie que le hachage fourni est conforme à l'algorithme et aux options spécifiées

Description

boolean password_needs_rehash ( string $hash , integer $algo [, array $options ] )

Cette fonction vérifie que le hachage fourni correspond à l'algorithme et aux options spécifiées. Si ce n'est pas le cas, le hachage devrait être re-généré.

Liste de paramètres

hash

Un hachage créé par la fonction password_hash().

algo

Une constantes de l'algorithme de mot de passe représentant l'algorithme à utiliser lors du hachage du mot de passe.

options

Un tableau associatif contenant les options. Voir aussi les constantes de l'algorithme de mot de passe pour une documentation sur les options supportées pour chaque algorithme.

Exemples

Exemple #1 Usage de password_needs_rehash()

<?php

$password = 'rasmuslerdorf';
$hash = '$2y$10$YCFsG6elYca568hBi2pZ0.3LDL5wjgxct1N8w/oLR/jfHsiQwCqTS';

// Le paramètre cost peut évoluer avec le temps en fonction des améliorations
// matérielles.
$options = array('cost' => 11);

// Vérifions d'abord que le mot de passe correspond au hachage stocké
if (password_verify($password, $hash)) {
    // Le hachage correspond, on vérifie au cas où un nouvel algorithme de hachage
    // serait disponible ou si le coût a été changé
    if (password_needs_rehash($hash, PASSWORD_DEFAULT, $options)) {
        // On crée un nouveau hachage afin de mettre à jour l'ancien
        $newHash = password_hash($password, PASSWORD_DEFAULT, $options);
    }

    // On connecte l'utilisateur
}
?>

Valeurs de retour

Retourne TRUE si le hachage doit être re-généré pour correspondre aux paramètres algo et options fournis, ou FALSE sinon.


Vérifie qu'un mot de passe correspond à un hachage

  • « password_needs_rehash
  • Extensions sur les bases de données »
  • PHP Manual
  • Fonctions de hachage de mot de passe
  • Vérifie qu'un mot de passe correspond à un hachage

password_verify

(PHP 5 >= 5.5.0, PHP 7)

password_verify — Vérifie qu'un mot de passe correspond à un hachage

Description

boolean password_verify ( string $password , string $hash )

Vérifie que le hachage fourni correspond bien au mot de passe fourni.

Notez que la fonction password_hash() retourne l'algorithme, le "cost", et le salt comme parties du hachage retourné. Toutefois, toutes les informations nécessaires pour vérifier le hachage y sont incluses. Ceci permet à la fonction de vérifier le hachage sans avoir besoin d'un stockage séparé pour les informations concernant l'algorithme et le salt.

Liste de paramètres

password

Le mot de passe utilisateur.

hash

Un hachage créé par la fonction password_hash().

Valeurs de retour

Retourne TRUE si le mot de passe et le hachage correspondent, ou FALSE sinon.

Exemples

Exemple #1 Exemple avec password_verify()

<?php
// Voir l'exemple fourni sur la page de la fonction password_hash()
// pour savoir d'où cela provient.
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

if (password_verify('rasmuslerdorf', $hash)) {
    echo 'Le mot de passe est valide !';
} else {
    echo 'Le mot de passe est invalide.';
}
?>

L'exemple ci-dessus va afficher :

Le mot de passe est valide !

Voir aussi

  • password_hash() - Crée une clé de hachage pour un mot de passe
  • » l'implémentation en espace utilisateur


Extensions sur les bases de données

  • Interface d'abstraction
    • DBA — Couche d'abstraction de base de données (style dbm)
    • dbx
    • ODBC — ODBC (Unifié)
    • PDO — PHP Data Objects
  • Extensions spécifiques des fabricants de bases de données
    • CUBRID
    • DB++
    • dBase
    • filePro
    • Firebird/InterBase
    • FrontBase
    • IBM DB2 — Fonctions IBM DB2, Cloudscape et Apache Derby
    • Informix
    • Ingres — Ingres DBMS, EDBC, et Enterprise Access
    • MaxDB
    • Mongo — Driver MongoDB (stable et supporté)
    • MongoDB — MongoDB driver
    • mSQL
    • Mssql — Serveur MS SQL
    • MySQL — Plugins et drivers MySQL
    • OCI8 — Oracle OCI8
    • Paradox
    • PostgreSQL
    • SQLite
    • SQLite3
    • SQLSRV — Driver Microsoft SQL Server pour PHP
    • Sybase
    • tokyo_tyrant


Interface d'abstraction

  • DBA — Couche d'abstraction de base de données (style dbm)
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions DBA
  • dbx
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions dbx
  • ODBC — ODBC (Unifié)
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions ODBC
  • PDO — PHP Data Objects
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Connexions et gestionnaire de connexion
    • Transactions et validation automatique (autocommit)
    • Requêtes préparées et procédures stockées
    • Les erreurs et leur gestion
    • Les gros objets (LOB)
    • PDO — La classe PDO
    • PDOStatement — La classe PDOStatement
    • PDOException — La classe PDOException
    • Pilotes PDO


Couche d'abstraction de base de données (style dbm)

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation
  • Fonctions DBA
    • dba_close — Ferme une base DBA
    • dba_delete — Efface une ligne dans une base DBA
    • dba_exists — Vérifie qu'une clé DBA existe
    • dba_fetch — Lit les données liées à une clé DBA
    • dba_firstkey — Lit la première clé DBA
    • dba_handlers — Liste les gestionnaires DBA disponibles
    • dba_insert — Insère une entrée DBA
    • dba_key_split — Transforme une représentation de clé DBA par chaîne en une représentation par tableau
    • dba_list — Liste tous les fichiers de bases de données DBA ouverts
    • dba_nextkey — Lit la clé DBA suivante
    • dba_open — Ouvre une base de données DBA
    • dba_optimize — Optimise une base DBA
    • dba_popen — Ouvre une connexion persistante à une base de données DBA
    • dba_replace — Remplace ou insère une ligne DBA
    • dba_sync — Synchronise une base de données DBA


Introduction

Ces fonctions permettent l'accès aux bases de données du style Berkeley DB.

C'est une couche d'abstraction générale pour plusieurs bases de données, basées sur des fichiers. Raison pour laquelle les fonctionnalités sont limitées à des actions communes supportées par les bases de données modernes, comme » Oracle Berkeley DB.


Pré-requis

Le comportement de certains aspects dépend de l'implémentation de la base de données sous-jacente. Les fonctions comme dba_optimize() et dba_sync() fonctionnent comme prévues pour une base de données, alors qu'elles peuvent ne rien faire sur d'autres. Vous devez télécharger et installer les gestionnaires DBA supportés.

Liste des gestionnaires DBA
Gestionnaire | Notes
dbm | DBM est la plus ancienne (l'originale) des bases de données de style Berkeley DB. Vous devriez éviter de l'utiliser si vous en avez le choix. Nous ne fournissons pas de support de la compatibilité des fonctions internes à DB2 et gdbm, car elles ne sont compatibles qu'au niveau source du code, mais ne peuvent pas gérer le format original DBM.
ndbm | Ndbm est un nouveau type et plus flexible que dbm. Il comporte néanmoins des limitations arbitraires de dbm (et par conséquence, il est obsolète).
gdbm | Gdbm est un » gestionnaire de bases de données GNU.
db2 | » Oracle Berkeley DB 2. Il est décrit comme étant un toolkit fournissant un support haute performance pour les bases de données, aussi bien du côté client que du côté serveur.
db3 | » Oracle Berkeley DB 3.
db4 | » Oracle Berkeley DB 4 ou 5. Cette option est disponible depuis PHP 4.3.2. Elle peut être utilisée avec BDB 5 depuis PHP 5.3.3.
cdb | Cdb est un paquet rapide, léger et fiable pour créer et lire des bases de données constantes. Il a été créé par l'auteur de qmail et peut être trouvé sur » http://cr.yp.to/cdb.html. Vu qu'il est "constant", nous ne supporterons donc que les opérations de lecture. Depuis PHP 4.3.0, nous supportons également l'écriture (et non la mise à jour) via la bibliothèque interne cdb.
cdb_make | Depuis PHP 4.3.0, nous supportons l'écriture (et non la mise à jour) des fichiers cdb lorsque la bibliothèque cdb est utilisée.
flatfile | Supporté depuis PHP 4.3.0 pour des raisons de compatibilité avec l'extension obsolète dbm. Cependant, vous pouvez l'utiliser lorsque les fichiers ont été créés dans ce format. Survient lorsque la configuration n'a pas réussi à trouver de bibliothèque externe.
inifile | Disponible depuis PHP 4.3.3 afin de permettre de modifier les fichiers php.ini depuis des scripts PHP. Lorsque vous utilisez des fichiers ini, vous pouvez passer des tableaux de la forme (0=>groupe,1=>nom_valeur) ou des chaînes de la forme "[groupe]nom_valeur" où le groupe est optionnel. Sachant que les fonctions dba_firstkey() et dba_nextkey() retournent une chaîne de caractères représentant la clé, il y a une nouvelle fonction, dba_key_split(), disponible depuis PHP 5, qui permet de convertir les clés en tableaux sans déperdition.
qdbm | Disponible depuis PHP 5.0.0. La bibliothèque peut être téléchargée depuis » http://fallabs.com/qdbm/index.html.

Lorsque vous appelez la fonction dba_open() ou la fonction dba_popen(), un des noms de gestionnaire doit être fourni comme argument. La liste des gestionnaires disponibles peut être affichée en utilisant la fonction phpinfo() ou la fonction dba_handlers().


Installation

En utilisant l'option de compilation --enable-dba=shared , vous pouvez compiler un module dynamique qui activera le support des bases de données de style DBM pour PHP. Vous devez aussi ajouter le support d'au moins l'un des gestionnaires suivants, en spécifiant l'option de configuration --with-XXXX lors de la configuration de PHP.

Avertissement

Après avoir configuré et compilé PHP, vous devez exécuter les tests suivants à partir de la ligne de commande : php run-tests.php ext/dba. Cela montre si votre combinaison de pilotes fonctionne. Les plus problématiques sont dbm et ndbm qui entrent en conflit avec nombre d'installations. Ceci est dû au fait que sur de nombreux systèmes, ces bibliothèques font parties de plus d'une bibliothèque. Le test de configuration vous empêche juste de configurer des descripteurs dont la combinaison est défectueuse alors qu'ils fonctionnent correctement séparément.

Gestionnaires DBA supportés
Gestionnaire | Option de configuration
dbm

Pour activer le support de dbm, ajoutez l'option de compilation --with-dbm[=DIR] .

Note:

dbm est une surcouche qui aboutit souvent à des échecs. Ainsi, vous ne devez utiliser dbm que si vous êtes sûr qu'il fonctionne et que vous avez besoin de ce format.

ndbm

Pour activer le support de ndbm, ajoutez l'option de compilation --with-ndbm[=DIR] .

Note:

ndbm est une surcouche qui aboutit souvent à des échecs. Ainsi, vous ne devez utiliser ndbm que si vous êtes sûr qu'il fonctionne et que vous avez besoin de ce format.

gdbm | Pour activer le support de gdbm, ajoutez l'option de compilation --with-gdbm[=DIR] .
db2

Pour activer le support de Oracle Berkeley DB 2, ajoutez l'option de compilation --with-db2[=DIR] .

Note:

db2 entre en conflit avec db3 et db4.

db3

Pour activer le support de Oracle Berkeley DB 3, ajoutez l'option de compilation --with-db3[=DIR] .

Note:

db3 entre en conflit avec db2 et db4.

db4

Pour activer le support de Oracle Berkeley DB 4, ajoutez l'option de compilation --with-db4[=DIR] .

Note:

db4 entre en conflit avec db2 et db3.

Note:

L'option db4 a été introduite avec PHP 4.3.2. Dans des versions précédentes de PHP, vous devez utiliser --with-db3=DIR où DIR pointe vers le répertoire où se situe la bibliothèque db4. Il n'est pas possible d'utiliser des versions de db supérieures à 4.1 avec des versions de PHP antérieures à 4.3.0. De même, les bibliothèques db avec des versions allant de 4.1 à 4.1.24 ne peuvent être utilisées avec aucune version de PHP.

Le support DB5 a été ajouté en PHP 5.3.3.

cdb

Pour activer le support de cdb, ajoutez l'option de compilation --with-cdb[=DIR] .

Note:

Depuis PHP 4.3.0, vous pouvez omettre d'utiliser DIR, afin d'exploiter la bibliothèque cdb fournie avec PHP, qui ajoute un gestionnaire cdb_make, permet la création de fichier cdb et permet l'accès aux fichiers cbd via le réseau avec les flux de PHP.

flatfile

Pour activer le support des fichiers, ajoutez l'option de compilation --with-flatfile .

Note:

Ceci a été ajouté à PHP 4.3.0 pour assurer la compatibilité avec l'extension dbm qui est obsolète. Utilisez ce gestionnaire seulement quand vous ne pouvez installer aucun autre gestionnaire et que vous ne pouvez pas utiliser le gestionnaire cdb intégré.

inifile

Pour activer le support de inifile, ajoutez l'option de compilation --with-inifile .

Note:

Cette option a été ajoutée avec PHP 5.0.0 et permet de lire et écrire dans des fichiers d'initialisation de type Microsoft (.ini), comme le php.ini par exemple.

qdbm

Pour activer le support de qdbm, ajoutez l'option de compilation --with-qdbm[=DIR] .

Note:

qdbm entre en conflit avec dbm et gdbm.

Note:

Cette option a été ajoutée avec PHP 5.0.0. La bibliothèque qdbm peut être téléchargée sur » http://fallabs.com/qdbm/index.html.

Note:

Jusqu'en PHP 4.3.0, il était possible d'utiliser simultanément les gestionnaires db2 et db3 mais juste avec un seul en interne. Cela signifie que vous ne pouvez pas avoir les deux formats de fichiers. Depuis PHP 5.0.0, une vérification est faite lors de la configuration pour éviter ces problèmes.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration DBA
Nom | Défaut | Modifiable | Historique
dba.default_handler | DBA_DEFAULT | PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

dba.default_handler string

Le nom du gestionnaire par défaut


Types de ressources

Les fonctions dba_open() et dba_popen() retournent une ressource représentant le fichier de la base de données accédée, qui sera utilisé par toutes les autres fonctions dba.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • DBA
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


  • « Constantes pré-définies
  • Utilisation »
  • PHP Manual
  • DBA
  • Exemples

Exemples

Sommaire

  • Utilisation


Utilisation

Exemple #1 Exemple avec DBA

<?php

$id = dba_open("/tmp/test.db", "n", "db2");

if (!$id) {
    echo "dba_open a échoué\n";
    exit;
}

dba_replace("key", "Ceci est un exemple !", $id);

if (dba_exists("key", $id)) {
    echo dba_fetch("key", $id);
    dba_delete("key", $id);
}

dba_close($id);
?>

DBA gère les données binaires et n'a aucune limite arbitraire. Cependant, il hérite de toutes les limites définies par l'implémentation de la base de données accédée.

Toutes les bases de données se basant sur des fichiers doivent fournir une façon de définir le mode de fichier des nouvelles bases créées. Ce mode est passé généralement comme 4ème argument des fonctions dba_open() ou dba_popen().

Vous pouvez accéder à toutes les entrées de la base de données de façon linéaire, en utilisant les fonctions dba_firstkey() et dba_nextkey(). Vous ne pouvez pas modifier la base de données lorsque vous êtes en train de la lire.

Exemple #2 Lecture d'une base de données

<?php

// ...ouverture de la base de données...

$key = dba_firstkey($id);

while ($key != false) {
    if (true) {          // on retient la clé pour effectuer d'autres actions plus tard
        $handle_later[] = $key;
    }
    $key = dba_nextkey($id);
}

foreach ($handle_later as $val) {
    dba_delete($val, $id);
}

?>


Fonctions DBA

Sommaire

  • dba_close — Ferme une base DBA
  • dba_delete — Efface une ligne dans une base DBA
  • dba_exists — Vérifie qu'une clé DBA existe
  • dba_fetch — Lit les données liées à une clé DBA
  • dba_firstkey — Lit la première clé DBA
  • dba_handlers — Liste les gestionnaires DBA disponibles
  • dba_insert — Insère une entrée DBA
  • dba_key_split — Transforme une représentation de clé DBA par chaîne en une représentation par tableau
  • dba_list — Liste tous les fichiers de bases de données DBA ouverts
  • dba_nextkey — Lit la clé DBA suivante
  • dba_open — Ouvre une base de données DBA
  • dba_optimize — Optimise une base DBA
  • dba_popen — Ouvre une connexion persistante à une base de données DBA
  • dba_replace — Remplace ou insère une ligne DBA
  • dba_sync — Synchronise une base de données DBA


Ferme une base DBA

  • « Fonctions DBA
  • dba_delete »
  • PHP Manual
  • Fonctions DBA
  • Ferme une base DBA

dba_close

(PHP 4, PHP 5, PHP 7)

dba_close — Ferme une base DBA

Description

void dba_close ( resource $handle )

dba_close() ferme le lien établi avec la base de données et libère toutes les ressources de handle.

Liste de paramètres

handle

Le gestionnaire de la base de données, retourné par la fonction dba_open() ou la fonction dba_popen().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • dba_open() - Ouvre une base de données DBA
  • dba_popen() - Ouvre une connexion persistante à une base de données DBA


Efface une ligne dans une base DBA

  • « dba_close
  • dba_exists »
  • PHP Manual
  • Fonctions DBA
  • Efface une ligne dans une base DBA

dba_delete

(PHP 4, PHP 5, PHP 7)

dba_delete — Efface une ligne dans une base DBA

Description

bool dba_delete ( string $key , resource $handle )

dba_delete() efface l'entrée spécifiée par la clé key, dans la base identifiée par handle.

Liste de paramètres

key

La clé de l'entrée à effacer.

handle

Le gestionnaire de la base de données, retourné par la fonction dba_open() ou la fonction dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • dba_exists() - Vérifie qu'une clé DBA existe
  • dba_fetch() - Lit les données liées à une clé DBA
  • dba_insert() - Insère une entrée DBA
  • dba_replace() - Remplace ou insère une ligne DBA


Vérifie qu'une clé DBA existe

  • « dba_delete
  • dba_fetch »
  • PHP Manual
  • Fonctions DBA
  • Vérifie qu'une clé DBA existe

dba_exists

(PHP 4, PHP 5, PHP 7)

dba_exists — Vérifie qu'une clé DBA existe

Description

bool dba_exists ( string $key , resource $handle )

dba_exists() vérifie si la clé key existe dans la base identifiée par handle.

Liste de paramètres

key

La clé à vérifier.

handle

Le gestionnaire de base de données, retourné par la fonction dba_open() ou la fonction dba_popen().

Valeurs de retour

Retourne TRUE si la clé existe, FALSE sinon.

Voir aussi

  • dba_delete() - Efface une ligne dans une base DBA
  • dba_fetch() - Lit les données liées à une clé DBA
  • dba_insert() - Insère une entrée DBA
  • dba_replace() - Remplace ou insère une ligne DBA


Lit les données liées à une clé DBA

  • « dba_exists
  • dba_firstkey »
  • PHP Manual
  • Fonctions DBA
  • Lit les données liées à une clé DBA

dba_fetch

(PHP 4, PHP 5, PHP 7)

dba_fetch — Lit les données liées à une clé DBA

Description

string dba_fetch ( string $key , resource $handle )
string dba_fetch ( string $key , int $skip , resource $handle )

dba_fetch() lit les données spécifiées par la clé key dans la base identifiée par handle.

Liste de paramètres

key

La clé correspondant aux données.

Note:

Lorsque vous travaillez avec des fichiers .ini, cette fonction accepte des tableaux comme clés où l'index 0 est le groupe et l'index 1 est le nom de la valeur. Voir la fonction dba_key_split().

skip

Le nombre de paires clé-valeur que vous souhaitez ignorer lors de l'utilisation de bases cdb. Cette valeur sera ignorée pour toutes les autres bases de données qui ne supportent pas les clés multiples avec le même nom.

handle

Le gestionnaire de base de données, retourné par la fonction dba_open() ou la fonction dba_popen().

Valeurs de retour

Retourne la chaîne associée si la paire clé/valeur est trouvée, FALSE sinon.

Historique

Version | Description
4.3.0 | Le paramètre skip est disponible pour supporter les capacités cdb des clés multiples portant le même nom.

Voir aussi

  • dba_exists() - Vérifie qu'une clé DBA existe
  • dba_delete() - Efface une ligne dans une base DBA
  • dba_insert() - Insère une entrée DBA
  • dba_replace() - Remplace ou insère une ligne DBA
  • dba_key_split() - Transforme une représentation de clé DBA par chaîne en une représentation par tableau


Lit la première clé DBA

  • « dba_fetch
  • dba_handlers »
  • PHP Manual
  • Fonctions DBA
  • Lit la première clé DBA

dba_firstkey

(PHP 4, PHP 5, PHP 7)

dba_firstkey — Lit la première clé DBA

Description

string dba_firstkey ( resource $handle )

dba_firstkey() retourne la première clé de la base de données spécifiée par handle et y place le pointeur interne de clé. Cela permettra de traverser la base.

Liste de paramètres

handle

Le gestionnaire de base de données, retourné par la fonction dba_open() ou la fonction dba_popen().

Valeurs de retour

Retourne la clé en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • dba_nextkey() - Lit la clé DBA suivante
  • dba_key_split() - Transforme une représentation de clé DBA par chaîne en une représentation par tableau
  • Exemple 2 dans les exemples DBA


Liste les gestionnaires DBA disponibles

  • « dba_firstkey
  • dba_insert »
  • PHP Manual
  • Fonctions DBA
  • Liste les gestionnaires DBA disponibles

dba_handlers

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

dba_handlers — Liste les gestionnaires DBA disponibles

Description

array dba_handlers ([ bool $full_info = false ] )

dba_handlers() retourne un tableau avec tous les gestionnaires supportés par cette extension.

Liste de paramètres

full_info

Active l'affiche de toutes les informations dans le résultat.

Valeurs de retour

Retourne un tableau de gestionnaires disponibles. Si full_info est défini à TRUE, le tableau sera associé avec les noms des gestionnaires en tant que clés, et les informations en tant que valeurs. Sinon, le résultat sera un tableau indexé par les noms des gestionnaires.

Note:

Lorsque la bibliothèque interne cdb est utilisée, vous devez voir avec cdb and cdb_make.

Exemples

Exemple #1 Exemple avec dba_handlers()

<?php

echo "Gestionnaires DBA disponibles :\n";
foreach (dba_handlers(true) as $handler_name => $handler_version) {
  // clean the versions
  $handler_version = str_replace('$', '', $handler_version);
  echo " - $handler_name: $handler_version\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Gestionnaires DBA disponibles :
 - cdb: 0.75, Revision: 1.3.2.3
 - cdb_make: 0.75, Revision: 1.2.2.4
 - db2: Sleepycat Software: Berkeley DB 2.7.7: (08/20/99)
 - inifile: 1.0, Revision: 1.6.2.3
 - flatfile: 1.0, Revision: 1.5.2.4


Insère une entrée DBA

  • « dba_handlers
  • dba_key_split »
  • PHP Manual
  • Fonctions DBA
  • Insère une entrée DBA

dba_insert

(PHP 4, PHP 5, PHP 7)

dba_insert — Insère une entrée DBA

Description

bool dba_insert ( string $key , string $value , resource $handle )

dba_insert() insère l'entrée décrite par la clé key et la valeur value dans la base spécifiée par handle.

Liste de paramètres

key

La clé de l'entrée à insérer. Si cette clé existe déjà dans la base de données, cette fonction échouera. Utilisez la fonction dba_replace() si vous devez remplacer une clé existante.

value

La valeur à insérer.

handle

Le gestionnaire de base de données, retourné par la fonction dba_open() ou la fonction dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • dba_exists() - Vérifie qu'une clé DBA existe
  • dba_delete() - Efface une ligne dans une base DBA
  • dba_fetch() - Lit les données liées à une clé DBA
  • dba_replace() - Remplace ou insère une ligne DBA


Transforme une représentation de clé DBA par chaîne en une représentation par tableau

  • « dba_insert
  • dba_list »
  • PHP Manual
  • Fonctions DBA
  • Transforme une représentation de clé DBA par chaîne en une représentation par tableau

dba_key_split

(PHP 5, PHP 7)

dba_key_split — Transforme une représentation de clé DBA par chaîne en une représentation par tableau

Description

mixed dba_key_split ( mixed $key )

dba_key_split() transforme une représentation de clé DBA par chaîne en une représentation par tableau.

Liste de paramètres

key

La clé sous forme de chaîne de caractères.

Valeurs de retour

Retourne un tableau sous la forme array(0 => group, 1 => nom_valeur). Cette fonction retourne FALSE si key vaut NULL ou FALSE.

Voir aussi

  • dba_firstkey() - Lit la première clé DBA
  • dba_nextkey() - Lit la clé DBA suivante
  • dba_fetch() - Lit les données liées à une clé DBA


Liste tous les fichiers de bases de données DBA ouverts

  • « dba_key_split
  • dba_nextkey »
  • PHP Manual
  • Fonctions DBA
  • Liste tous les fichiers de bases de données DBA ouverts

dba_list

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

dba_list — Liste tous les fichiers de bases de données DBA ouverts

Description

array dba_list ( void )

dba_list() liste tous les fichiers de bases de données DBA ouverts.

Valeurs de retour

Un tableau associatif, sous la forme idressource => nomfichier.


Lit la clé DBA suivante

  • « dba_list
  • dba_open »
  • PHP Manual
  • Fonctions DBA
  • Lit la clé DBA suivante

dba_nextkey

(PHP 4, PHP 5, PHP 7)

dba_nextkey — Lit la clé DBA suivante

Description

string dba_nextkey ( resource $handle )

dba_nextkey() retourne la clé suivante, dans la base identifiée par handle et incrémente le pointeur de clé.

Liste de paramètres

handle

Le gestionnaire de base de données, retourné par la fonction dba_open() ou la fonction dba_popen().

Valeurs de retour

Retourne la clé en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • dba_firstkey() - Lit la première clé DBA
  • dba_key_split() - Transforme une représentation de clé DBA par chaîne en une représentation par tableau
  • Exemple 2 dans les exemples DBA


Ouvre une base de données DBA

  • « dba_nextkey
  • dba_optimize »
  • PHP Manual
  • Fonctions DBA
  • Ouvre une base de données DBA

dba_open

(PHP 4, PHP 5, PHP 7)

dba_open — Ouvre une base de données DBA

Description

resource dba_open ( string $path , string $mode [, string $handler [, mixed $... ]] )

dba_open() établit une connexion à la base identifiée par path avec le mode mode et l'identifiant handler.

Liste de paramètres

path

Chemin sur votre système de fichiers.

mode

Il vaut r pour lecture seule, w pour lecture/écriture, c pour lecture/écriture, et création si la base n'existe pas, et n pour création, écrasement et accès en lecture/écriture. La base de données est créée en mode BTree ; les autres modes (comme Hash ou Queue) ne sont pas supportés.

De plus, vous pouvez choisir la méthode de verrouillage de la base avec le caractère suivant. Utilisez l pour verrouiller la base avec un fichier .lck, ou d pour verrouiller la base elle-même. Il est important que vos application utilisent ces options de manière cohérente.

Si vous voulez tester la possibilité d'accès, et ne pas attendre la disponibilité du verrou, vous pouvez ajouter la lettre t comme troisième caractère. Lorsque vous êtes absolument certain que votre base ne requière pas de verrou, vous pouvez utiliser le tiret - à la place de l ou d. Lorsque vous n'utilisez ni d, ni l ni -, dba va verrouiller en mode d.

Note:

Il ne peut y avoir qu'un seul type d'écriture dans la base. Lorsque vous utilisez dba sur un serveur web, et que plusieurs requêtes HTTP effectuent des écritures, elles ne peuvent être faites que l'une après l'autre. De même, la lecture durant l'écriture n'est pas possible. L'extension dba utilise un verrou pour éviter ces problèmes. Voici la table de verrouillage :

Verrouillage DBA
déjà ouverte | mode = "rl" | mode = "rlt" | mode = "wl" | mode = "wlt" | mode = "rd" | mode = "rdt" | mode = "wd" | mode = "wdt"
non-ouverte | ok | ok | ok | ok | ok | ok | ok | ok
mode = "rl" | ok | ok | attente | FALSE | illégal | illégal | illégal | illégal
mode = "wl" | attente | FALSE | attente | FALSE | illégal | illégal | illégal | illégal
mode = "rd" | illégal | illégal | illégal | illégal | ok | ok | attente | FALSE
mode = "wd" | illégal | illégal | illégal | illégal | attente | FALSE | attente | FALSE
  • ok: Le second appel réussit.
  • wait: Le second appel attend que dba_close() soit appelé par le premier script.
  • false: Le second appel retourne FALSE.
  • illégal: vous ne devez pas mélanger les options "l" et "d" pour le paramètre mode.

handler

Le nom du gestionnaire qui doit être utilisé pour accéder à path. C'est passé à tous les paramètres facultatifs donnés à dba_open() et peut agir au nom d'eux.

Valeurs de retour

Retourne un gestionnaire positif en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
4.3.0 | Il est possible d'ouvrir la base de données à travers le réseau. Toutefois, dans le cas où des connexions sockets seront utilisées (via HTTP ou FTP), la connexion sera verrouillée, et non pas la ressource. C'est important de le savoir pour comprendre que dans ce cas, le verrouillage sera ignoré, et d'autres solutions doivent être trouvées.

Voir aussi

  • dba_popen() - Ouvre une connexion persistante à une base de données DBA
  • dba_close() - Ferme une base DBA


Optimise une base DBA

  • « dba_open
  • dba_popen »
  • PHP Manual
  • Fonctions DBA
  • Optimise une base DBA

dba_optimize

(PHP 4, PHP 5, PHP 7)

dba_optimize — Optimise une base DBA

Description

bool dba_optimize ( resource $handle )

dba_optimize() optimise la base de données identifiée par handle.

Liste de paramètres

handle

Le gestionnaire de base de données, retourné par la fonction dba_open() ou la fonction dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • dba_sync() - Synchronise une base de données DBA


Ouvre une connexion persistante à une base de données DBA

  • « dba_optimize
  • dba_replace »
  • PHP Manual
  • Fonctions DBA
  • Ouvre une connexion persistante à une base de données DBA

dba_popen

(PHP 4, PHP 5, PHP 7)

dba_popen — Ouvre une connexion persistante à une base de données DBA

Description

resource dba_popen ( string $path , string $mode [, string $handler [, mixed $... ]] )

dba_popen() établit une connexion persistante à la base repérée par path avec le mode mode, en utilisant l'identifiant handler.

Liste de paramètres

path

Chemin sur votre système de fichiers.

mode

Il vaut r pour lecture seule, w pour lecture/écriture, c pour lecture/écriture, et création si la base n'existe pas, et n pour création, écrasement, et accès en lecture/écriture.

handler

Le nom du gestionnaire qui doit être utilisé pour accéder à path. Le gestionnaire reçoit tous les paramètres supplémentaires passés à la fonction dba_popen().

Valeurs de retour

Retourne un gestionnaire positif en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • dba_open() - Ouvre une base de données DBA
  • dba_close() - Ferme une base DBA


Remplace ou insère une ligne DBA

  • « dba_popen
  • dba_sync »
  • PHP Manual
  • Fonctions DBA
  • Remplace ou insère une ligne DBA

dba_replace

(PHP 4, PHP 5, PHP 7)

dba_replace — Remplace ou insère une ligne DBA

Description

bool dba_replace ( string $key , string $value , resource $handle )

dba_replace() remplace ou insère une entrée, pour la clé key et avec la valeur value dans la base identifiée par handle.

Liste de paramètres

key

La clé de l'entrée à remplacer.

value

La valeur utilisée pour le remplacement.

handle

Le gestionnaire de base de données, retourné par la fonction dba_open() ou la fonction dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • dba_exists() - Vérifie qu'une clé DBA existe
  • dba_delete() - Efface une ligne dans une base DBA
  • dba_fetch() - Lit les données liées à une clé DBA
  • dba_insert() - Insère une entrée DBA


Synchronise une base de données DBA

  • « dba_replace
  • dbx »
  • PHP Manual
  • Fonctions DBA
  • Synchronise une base de données DBA

dba_sync

(PHP 4, PHP 5, PHP 7)

dba_sync — Synchronise une base de données DBA

Description

bool dba_sync ( resource $handle )

dba_sync() synchronise la base de données spécifiée par handle. Si accepté, cela va probablement lancer une opération de réécriture physique du fichier.

Liste de paramètres

handle

Le gestionnaire de base de données, retourné par la fonction dba_open() ou la fonction dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • dba_optimize() - Optimise une base DBA


dbx

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions dbx
    • dbx_close — Ferme une connexion à une base DBX
    • dbx_compare — Compare deux lignes DBX afin de les trier
    • dbx_connect — Ouvre une connexion à une base de données
    • dbx_error — Rapporte le message d'erreur du dernier appel de fonction DBX
    • dbx_escape_string — Protège une chaîne de caractères pour l'utiliser dans une requête
    • dbx_fetch_row — Lit une ligne dans un résultat DBX ayant l'option DBX_RESULT_UNBUFFERED activée
    • dbx_query — Envoie une requête et lit tous les résultats DBX
    • dbx_sort — Trie un résultat avec une fonction utilisateur


Introduction

Le module dbx est une couche d'abstraction de base de données (db 'X', où 'X' est la base de données supportées). Les fonctions dbx vous permettent d'accéder à toutes les bases de données supportées en utilisant un simple appel. Les fonctions dbx elles-mêmes ne s'interfacent pas directement sur les bases de données, mais plutôt avec le module qui est utilisé pour supporter la base de données.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.


Pré-requis

Afin de pouvoir utiliser une base de données avec le module dbx, le module doit être lié ou chargé dans PHP, et le mode de base de données doit être supporté par le module dbx. Actuellement, les bases de données suivantes sont supportées, mais d'autres devraient suivre :

  • FrontBase (disponible depuis PHP 4.1.0).
  • Microsoft SQL Server
  • MySQL
  • ODBC
  • PostgreSQL
  • Sybase-CT (disponible depuis PHP 4.2.0).
  • Oracle (oci8) (disponible depuis PHP 4.3.0).
  • SQLite (PHP 5).

La documentation permettant l'ajout du support d'autres bases de données à dbx peut être trouvée sur » http://www.guidance.nl/php/dbx/doc/.


Installation

Il vous faut avoir ces fonctions compilées avec PHP (option de configuration --enable-dbx et toutes les bases que vous souhaitez utiliser. Par exemple, si vous voulez accéder à MySQL depuis dbx, vous devez aussi configurer PHP avec --with-mysql=[DIR] .


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration DBX
Nom | Défaut | Modifiable | Historique
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0. Supprimé depuis PHP 5.1.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

dbx.colnames_case string

Les noms de colonnes peuvent être retournés comme "inchangés" ("unchanged"), ou bien "majuscules" ("uppercase") ou encore "minuscules" ("lowercase"). Cette directive peut être reconfigurée par une option de dbx_query().


Types de ressources

Il y a deux types de ressources utilisées par le module dbx. La première est l'objet lié à la connexion avec la base de données, la deuxième est le résultat d'une requête.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

DBX_MYSQL (entier)
DBX_ODBC (entier)
DBX_PGSQL (entier)
DBX_MSSQL (entier)
DBX_FBSQL (entier)
DBX_OCI8 (entier) (disponible à partir de PHP 4.3.0)
DBX_SYBASECT (entier)
DBX_SQLITE (entier) (PHP 5)
DBX_PERSISTENT (entier)
DBX_RESULT_INFO (entier)
DBX_RESULT_INDEX (entier)
DBX_RESULT_ASSOC (entier)
DBX_RESULT_UNBUFFERED (entier) (PHP 5)
DBX_COLNAMES_UNCHANGED (entier) (uniquement disponible à partir de PHP 4.3.0)
DBX_COLNAMES_UPPERCASE (entier) (uniquement disponible à partir de PHP 4.3.0)
DBX_COLNAMES_LOWERCASE (entier) (uniquement disponible à partir de PHP 4.3.0)
DBX_CMP_NATIVE (entier)
DBX_CMP_TEXT (entier)
DBX_CMP_NUMBER (entier)
DBX_CMP_ASC (entier)
DBX_CMP_DESC (entier)


Fonctions dbx

Sommaire

  • dbx_close — Ferme une connexion à une base DBX
  • dbx_compare — Compare deux lignes DBX afin de les trier
  • dbx_connect — Ouvre une connexion à une base de données
  • dbx_error — Rapporte le message d'erreur du dernier appel de fonction DBX
  • dbx_escape_string — Protège une chaîne de caractères pour l'utiliser dans une requête
  • dbx_fetch_row — Lit une ligne dans un résultat DBX ayant l'option DBX_RESULT_UNBUFFERED activée
  • dbx_query — Envoie une requête et lit tous les résultats DBX
  • dbx_sort — Trie un résultat avec une fonction utilisateur


Ferme une connexion à une base DBX

  • « Fonctions dbx
  • dbx_compare »
  • PHP Manual
  • Fonctions dbx
  • Ferme une connexion à une base DBX

dbx_close

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_close — Ferme une connexion à une base DBX

Description

int dbx_close ( object $link_identifier )

Liste de paramètres

link_identifier

L'objet DBX à fermer.

Valeurs de retour

Retourne 1 en cas de succès, 0 si une erreur survient.

Exemples

Exemple #1 Exemple avec dbx_close()

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

echo "Connected successfully";
dbx_close($link);
?>

Notes

Note:

Reportez-vous aussi à la documentation de la base de données que vous utilisez.

Voir aussi

  • dbx_connect() - Ouvre une connexion à une base de données


Compare deux lignes DBX afin de les trier

  • « dbx_close
  • dbx_connect »
  • PHP Manual
  • Fonctions dbx
  • Compare deux lignes DBX afin de les trier

dbx_compare

(PHP 4 >= 4.1.0, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_compare — Compare deux lignes DBX afin de les trier

Description

int dbx_compare ( array $row_a , array $row_b , string $column_key [, int $flags = DBX_CMP_ASC | DBX_CMP_NATIVE ] )

dbx_compare() est une fonction d'aide pour dbx_sort(), afin d'aider aux tris.

Liste de paramètres

row_a

Première ligne

row_b

Seconde ligne

column_key

La colonne comparée

flags

Le paramètre flags peut prendre plusieurs valeurs :

  • DBX_CMP_ASC - ordre ascendant
  • DBX_CMP_DESC - ordre descendant
et le type utilisé pour la comparaison :
  • DBX_CMP_NATIVE - pas de conversion de type
  • DBX_CMP_TEXT - compare les lignes comme des chaînes
  • DBX_CMP_NUMBER - compare les lignes comme des nombres
Une direction de tri et un type de comparaison peuvent être combinés avec l'opérateur OR (|).

Valeurs de retour

Retourne 0 si row_a[$column_key] est égale à row_b[$column_key], et 1 ou -1 si le premier est plus grand ou plus petit que le dernier, respectivement, ou bien le contraire si l'option flags est configurée à DBX_CMP_DESC.

Exemples

Exemple #1 Exemple avec dbx_compare()

<?php
function user_re_order($a, $b)
{
    $rv = dbx_compare($a, $b, "parentid", DBX_CMP_DESC);
    if (!$rv) {
        $rv = dbx_compare($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Impossible de se connecter");

$result = dbx_query($link, "SELECT id, parentid, description FROM table ORDER BY id");
    // les données de $result sont désormais classées par id

dbx_sort($result, "user_re_order");
    // la date dans $result est maintenant ordonnée par parentid (descending), puis par id

dbx_close($link);
?>

Voir aussi

  • dbx_sort() - Trie un résultat avec une fonction utilisateur


Ouvre une connexion à une base de données

  • « dbx_compare
  • dbx_error »
  • PHP Manual
  • Fonctions dbx
  • Ouvre une connexion à une base de données

dbx_connect

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_connect — Ouvre une connexion à une base de données

Description

object dbx_connect ( mixed $module , string $host , string $database , string $username , string $password [, int $persistent ] )

Ouvre une connexion à une base de données.

Liste de paramètres

module

Le paramètre module peut être soit une chaîne, soit une constante. Les valeurs possibles de module sont listées ci-dessous, mais n'oubliez pas que cela fonctionnera que si le module associé est chargé.

  • DBX_MYSQL ou "mysql"
  • DBX_ODBC ou "odbc"
  • DBX_PGSQL ou "pgsql"
  • DBX_MSSQL ou "mssql"
  • DBX_FBSQL ou "fbsql"
  • DBX_SYBASECT ou "sybase_ct"
  • DBX_OCI8 ou "oci8"
  • DBX_SQLITE ou "sqlite"

host

L'hôte serveur SQL

database

Le nom de la base de données

username

Le nom d'utilisateur

password

Le mot de passe

persistent

Le paramètre persistent peut prendre la valeur DBX_PERSISTENT, pour créer une connexion persistante.

Les paramètres host, database, username et password sont attendus, mais ne sont pas toujours utiles, suivant la fonction de connexion de la base de données utilisée.

Valeurs de retour

Retourne un objet en cas de succès, FALSE si une erreur survient. Si une connexion a été faîte mais la base de données n'a pu être sélectionnée, la connexion sera fermée et FALSE sera retourné.

L'objet retourné object a trois propriétés :

database
Nom de la base de données sélectionnées
handle

Ressource de connexion de la base de données, et donc, elle peut être utilisée dans les fonctions spécifiques au module (si requis).

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password");
mysql_close($link->handle); // dbx_close($link) serait plus appropriée ici.
?>

module
Utiliser en interne par dbx uniquement et actuellement, correspond au numéro du module mentionné ci-dessus.

Historique

Version | Description
5.0.0 | Ajout de la constante DBX_SQLITE.
4.3.0 | Ajout de la constante DBX_OCI8.
4.2.0 | Ajout de la constante DBX_SYBASECT.
4.1.0 | Ajout de la constante DBX_FBSQL.

Exemples

Exemple #1 Exemple avec dbx_connect()

<?php
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password", DBX_PERSISTENT)
    or die("Impossible de se connecter");

echo "Connexion réussie";
dbx_close($link);
?>

Notes

Note:

Reportez-vous à la documentation du module utilisé.

Voir aussi

  • dbx_close() - Ferme une connexion à une base DBX


Rapporte le message d'erreur du dernier appel de fonction DBX

  • « dbx_connect
  • dbx_escape_string »
  • PHP Manual
  • Fonctions dbx
  • Rapporte le message d'erreur du dernier appel de fonction DBX

dbx_error

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_error — Rapporte le message d'erreur du dernier appel de fonction DBX

Description

string dbx_error ( object $link_identifier )

dbx_error() retourne une chaîne contenant le dernier message d'erreur du module sélectionné.

Liste de paramètres

link_identifier

L'objet DBX retourné par la fonction dbx_connect()

Valeurs de retour

Retourne une chaîne contenant le dernier message d'erreur du module sélectionné. S'il y a des connexions multiples sur le même module, seule la dernière erreur est fournie. S'il a des connexions sur différents modules, la dernière erreur du module est retourné (le module est alors représenté par link_identifier).

Exemples

Exemple #1 Exemple avec dbx_error()

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Impossible de se connecter");

$result = dbx_query($link, "select id from non_existing_table");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

Notes

Note:

Reportez-vous aussi à la documentation de la base de données que vous utilisez.

Le message de Microsoft SQL Server est en fait le résultat de la fonction mssql_get_last_message().

Le support des messages d'erreur Oracle ne sont pas implémentés pour le moment.


Protège une chaîne de caractères pour l'utiliser dans une requête

  • « dbx_error
  • dbx_fetch_row »
  • PHP Manual
  • Fonctions dbx
  • Protège une chaîne de caractères pour l'utiliser dans une requête

dbx_escape_string

(PHP 4 >= 4.3.0, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_escape_string — Protège une chaîne de caractères pour l'utiliser dans une requête

Description

string dbx_escape_string ( object $link_identifier , string $text )

Protège une chaîne de caractères pour l'utiliser dans une requête.

Liste de paramètres

link_identifier

L'objet DBX retourné par la fonction dbx_connect()

text

La chaîne à échapper

Valeurs de retour

Retourne le texte text dont les caractères spéciaux ont été protégés (les guillemets, les antislash...). Si une erreur survient, NULL sera retourné.

Exemples

Exemple #1 Exemple avec dbx_escape_string()

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Impossible de se connecter");

$text = dbx_escape_string($link, "It\'s quoted and backslashed (\\).");
$result = dbx_query($link, "insert into tbl (txt) values ('" . $text . "')");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

Voir aussi

  • dbx_query() - Envoie une requête et lit tous les résultats DBX


Lit une ligne dans un résultat DBX ayant l'option DBX_RESULT_UNBUFFERED activée

  • « dbx_escape_string
  • dbx_query »
  • PHP Manual
  • Fonctions dbx
  • Lit une ligne dans un résultat DBX ayant l'option DBX_RESULT_UNBUFFERED activée

dbx_fetch_row

(PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_fetch_row — Lit une ligne dans un résultat DBX ayant l'option DBX_RESULT_UNBUFFERED activée

Description

mixed dbx_fetch_row ( object $result_identifier )

dbx_fetch_row() récupère les lignes depuis le jeu de résultats dont le drapeau DBX_RESULT_UNBUFFERED est défini.

Lorsque l'option DBX_RESULT_UNBUFFERED n'est pas activée dans la requête, dbx_fetch_row() va échouer car toutes les lignes auront été déjà lues dans le membre data.

De plus, le membre rows de l'objet de résultat est incrémenté à chaque lecture réussie de dbx_fetch_row().

Liste de paramètres

result_identifier

Un jeu de résultats retourné par la fonction dbx_query().

Valeurs de retour

Retourne un objet en cas de succès qui contient les mêmes informations que n'importe quelle ligne d'un résultat dbx, placé dans le membre data, incluant l'accès aux colonnes par index ou par nom, suivant l'utilisation des options avec dbx_guery().

Si une erreur survient, la fonction retournera 0 (e.g. lorsqu'aucune ligne n'est disponible).

Exemples

Exemple #1 Comment gérer la valeur retournée

<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

Voir aussi

  • dbx_query() - Envoie une requête et lit tous les résultats DBX


Envoie une requête et lit tous les résultats DBX

  • « dbx_fetch_row
  • dbx_sort »
  • PHP Manual
  • Fonctions dbx
  • Envoie une requête et lit tous les résultats DBX

dbx_query

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_query — Envoie une requête et lit tous les résultats DBX

Description

mixed dbx_query ( object $link_identifier , string $sql_statement [, int $flags ] )

Envoie une requête et lit tous les résultats.

Liste de paramètres

link_identifier

L'objet DBX retournée par la fonction dbx_connect()

sql_statement

La requête SQL.

Les données à l'intérieur de la requête doivent être proprement échappées.

flags

Le paramètre flags sert à contrôler la quantité d'informations retournée. Il peut être n'importe quelle combinaisons par l'opérateur OR des constantes ci-après. Les constantes remplacent la configuration du php.ini.

DBX_RESULT_INDEX
Ce paramètre est toujours activé, c'est à dire que l'objet retourné dispose du membre data qui est un tableau à deux dimensions, indexé numériquement. Par exemple, dans l'expression data[2][3] 2 représente le numéro de ligne et 3 représente le numéro de colonne. Les premières lignes et colonnes sont indexées à 0. Si DBX_RESULT_ASSOC est aussi spécifié, l'objet retourné contient en plus les informations liées à DBX_RESULT_INFO, même s'il n'a pas été spécifié.
DBX_RESULT_INFO
Cette option fournit des informations sur les colonnes, comme les noms des champs et leur type.
DBX_RESULT_ASSOC
Cette option fait que la valeur des champs peut être accessible avec le nom de la colonne, utilisé comme clé dans le tableau du membre data. Les résultats ainsi associés sont des références sur les valeurs identifiées par les index numériques, ce qui fait que modifier data[0][0] fait que data[0]['nom_de_la_premiere_colonne'] sera aussi modifié.
DBX_RESULT_UNBUFFERED
Cet option ne crée pas de propriété data et la propriété rows sera initialement positionnée à 0. Utilisez ce flag pour des jeux d'enregistrements importants et utilisez dbx_fetch_row() pour retrouver le résultat ligne par ligne. dbx_fetch_row() retournera les lignes qui se conforment au flag de la requête. Par ailleurs, cela mettra à jour les lignes à chaque appel de la fonction.
DBX_COLNAMES_UNCHANGED
La casse du nom des colonnes retournées ne sera pas modifiée.
DBX_COLNAMES_UPPERCASE
Les noms de colonnes seront mis en majuscules.
DBX_COLNAMES_LOWERCASE
Les noms de colonnes seront mis en minuscules.
Notez que DBX_RESULT_INDEX est toujours active, indépendamment de la valeur de flags. Cela signifie que seules les combinaisons suivantes sont utiles :
  • DBX_RESULT_INDEX
  • DBX_RESULT_INDEX | DBX_RESULT_INFO
  • DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - c'est la valeur par défaut, si flags est omis.

Valeurs de retour

dbx_query() retourne un objet dbx_result_object ou 1 en cas de succès (un objet de résultat ne sera retourné que pour les requêtes SQL qui retournent un résultat), ou 0 en cas d'erreur. L'objet résultant n'est retourné que si la requête donnée par sql_statement produit un jeu d'enregistrements. (i.e. une requête SELECT, même si le résultat est vide).

L'objet retourné a 5 membres (éventuellement 4, suivant les valeurs de flags) :

handle

Ceci est une ressource représentant la connexion à la base de données, et il peut être utilisé (si nécessaire) avec les fonctions spécialisées de la base.

<?php
$result = dbx_query($link, "SELECT id FROM table");
mysql_field_len($result->handle, 0);
?>

cols et rows

Ces deux membres contiennent respectivement le nombre de colonnes et de lignes.

<?php
$result = dbx_query($link, 'SELECT id FROM table');
echo $result->rows; // nombre de lignes
echo $result->cols; // nombre de champs
?>

info (optionnel)
Ce membre est retourné uniquement si DBX_RESULT_INFO ou DBX_RESULT_ASSOC sont spécifiés dans le paramètre flags. C'est un tableau à deux dimensions, avec deux lignes (name et type) pour lire les informations de colonnes.

Exemple #1 Listes les types et noms de colonnes

<?php
$result = dbx_query($link, 'SELECT id FROM table',
                     DBX_RESULT_INDEX | DBX_RESULT_INFO);

for ($i = 0; $i < $result->cols; $i++ ) {
    echo $result->info['name'][$i] . "\n";
    echo $result->info['type'][$i] . "\n";
}
?>
data
Ce membre contient les résultats obtenus, possiblement associés avec le nom de colonne, en fonction de la valeur du paramètre flags. Si DBX_RESULT_ASSOC est activé, il est possible d'utiliser aussi $result->data[2]["nom_de_la_colonne"].

Exemple #2 Afficher le contenu d'une base

<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

echo "<table>\n";
foreach ($result->data as $row) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

Exemple #3 Comment utiliser les requêtes UNBUFFERED

<?php

$result = dbx_query ($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Historique

Version | Description
5.0.0 | Ajout de la constante DBX_RESULT_UNBUFFERED.
4.3.0 | Ajout des constantes DBX_COLNAMES_UNCHANGED, DBX_COLNAMES_UPPERCASE, et DBX_COLNAMES_LOWERCASE.

Exemples

Exemple #4 Comment gérer la valeur retournée

<?php
$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Impossible de se connecter");

$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

if (is_object($result) ) {
    // ... faîtes des actions ici, voir les exemples détaillés ci-dessus ...
    // tout d'abord, afficher les noms et types de champs
    // puis, afficher un tableau contenant les valeurs retournées
} else {
    exit("Échec de la requête");
}

dbx_close($link);
?>

Notes

Note:

Reportez-vous aussi à la documentation de la base de données que vous utilisez.

Les noms des colonnes pour les requêtes sur des bases de données Oracle sont retournés en minuscules.

Voir aussi

  • dbx_escape_string() - Protège une chaîne de caractères pour l'utiliser dans une requête
  • dbx_fetch_row() - Lit une ligne dans un résultat DBX ayant l'option DBX_RESULT_UNBUFFERED activée
  • dbx_connect() - Ouvre une connexion à une base de données


Trie un résultat avec une fonction utilisateur

  • « dbx_query
  • ODBC »
  • PHP Manual
  • Fonctions dbx
  • Trie un résultat avec une fonction utilisateur

dbx_sort

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_sort — Trie un résultat avec une fonction utilisateur

Description

bool dbx_sort ( object $result , string $user_compare_function )

Trie un résultat depuis un appel à la fonction dbx_query() avec une fonction de trie personnalisée.

Liste de paramètres

result

Un jeu de résultats retourné par la fonction dbx_query().

user_compare_function

La fonction de comparaison définie par l'utilisateur. Elle doit accepter deux arguments et retourner un entier, inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à ou supérieur au second.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec dbx_sort()

<?php
function user_re_order($a, $b)
{
    $rv = dbx_compare($a, $b, "parentid", DBX_CMP_DESC);
    if (!$rv) {
        $rv = dbx_compare($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Impossible de se connecter");

$result = dbx_query($link, "SELECT id, parentid, description FROM tbl ORDER BY id");
    // Les données sont maintenant triées par id

dbx_sort($result, "user_re_order");
    // Les données sont maintenant triées par parentid décroissant, puis par id

dbx_close($link);
?>

Notes

Note:

Il est toujours plus intéressant d'utiliser la clause SQL ORDER BY que la fonction dbx_sort(), si possible.

Voir aussi

  • dbx_compare() - Compare deux lignes DBX afin de les trier


ODBC (Unifié)

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions ODBC
    • odbc_autocommit — Active le mode d'autovalidation
    • odbc_binmode — Modifie la gestion des colonnes de données binaires
    • odbc_close_all — Ferme toutes les connexions ODBC
    • odbc_close — Ferme une connexion ODBC
    • odbc_columnprivileges — Liste les colonnes et leurs droits associés
    • odbc_columns — Liste les colonnes d'une table
    • odbc_commit — Valide une transaction ODBC
    • odbc_connect — Connexion à une source
    • odbc_cursor — Lit le nom du pointeur de résultat courant
    • odbc_data_source — Retourne des informations sur la connexion courante
    • odbc_do — Alias de odbc_exec
    • odbc_error — Lit le dernier code d'erreur
    • odbc_errormsg — Lit le dernier message d'erreur
    • odbc_exec — Prépare et exécute une requête SQL
    • odbc_execute — Exécute une requête SQL préparée
    • odbc_fetch_array — Lit une ligne de résultat dans un tableau associatif
    • odbc_fetch_into — Lit une ligne de résultat, et la place dans un tableau
    • odbc_fetch_object — Lit une ligne de résultat dans un objet
    • odbc_fetch_row — Lit une ligne de résultat
    • odbc_field_len — Lit la longueur d'un champ
    • odbc_field_name — Lit le nom de la colonne
    • odbc_field_num — Numéro de colonne
    • odbc_field_precision — Alias de odbc_field_len
    • odbc_field_scale — Lit l'échelle d'un champ
    • odbc_field_type — Type de données d'un champ
    • odbc_foreignkeys — Liste les clés étrangères
    • odbc_free_result — Libère les ressources associées à un résultat
    • odbc_gettypeinfo — Liste les types de données supportés par une source
    • odbc_longreadlen — Gestion des colonnes de type LONG
    • odbc_next_result — Vérifie si plusieurs résultats sont disponibles
    • odbc_num_fields — Nombre de colonnes dans un résultat
    • odbc_num_rows — Nombre de lignes dans un résultat
    • odbc_pconnect — Ouvre une connexion persistante à une source de données
    • odbc_prepare — Prépare une commande pour l'exécution
    • odbc_primarykeys — Liste les colonnes utilisées dans une clé primaire
    • odbc_procedurecolumns — Liste les paramètres des procédures
    • odbc_procedures — Liste les procédures stockées
    • odbc_result_all — Affiche le résultat sous la forme d'une table HTML
    • odbc_result — Lit un champ de résultat UODBC
    • odbc_rollback — Annule une transaction
    • odbc_setoption — Modifie les paramètres ODBC
    • odbc_specialcolumns — Retourne l'ensemble optimal de colonnes
    • odbc_statistics — Calcul des statistiques sur une table
    • odbc_tableprivileges — Liste les tables et leurs privilèges
    • odbc_tables — Liste les tables d'une source


Introduction

En plus du support de l'ODBC normal, l'ODBC unifié de PHP vous donne accès à diverses bases de données qui ont emprunté la sémantique des API ODBC pour implémenter leur propres API. Au lieu de maintenir de multiples pilotes qui sont similaires, ces pilotes ont été rassemblés dans un jeu de fonctions ODBC uniques.

Les bases de données suivantes sont supportées par l'ODBC unifié : » Adabas D, » IBM DB2, » iODBC, » Solid, et » Sybase SQL Anywhere.

Note:

Mise à part pour IODBC, il n'y a pas d'ODBC utilisé lors des connexions aux bases de données ci-dessus. Les fonctions que vous utiliserez portent des noms évocateurs, et utilisent les mêmes syntaxes que leurs cousines d'ODBC. L'exception à ceci est iODBC. En compilant PHP avec le support iODBC, vous pourrez utiliser n'importe quel pilote compatible ODBC avec vos applications PHP. Plus d'informations sur iODBC, ainsi qu'un HOWTO (en anglais), sont disponibles sur » www.iodbc.org, ainsi que l'alternative unixODBC, disponible sur » www.unixodbc.org.


Pré-requis

Pour accéder à l'une des bases de données supportées, il faut que les bibliothèques équivalentes soient installées.


Installation

--with-adabas[=DIR]

Inclut le support Adabas D. DIR est le dossier d'installation d'Adabas D. Par défaut, c'est /usr/local.

--with-sapdb[=DIR]

Inclut le support SAP DB. DIR est le dossier d'installation de SAP DB. Par défaut, c'est /usr/local.

--with-solid[=DIR]

Inclut le support Solid. DIR est le dossier d'installation de Solid. Par défaut, c'est /usr/local/solid.

--with-ibm-db2[=DIR]

Inclut le support IBM DB2. DIR est le dossier d'installation de DB2. Par défaut, c'est /home/db2inst1/sqllib.

--with-empress[=DIR]

Inclut le support Empress. DIR est le dossier d'installation de Empress. Par défaut, c'est $EMPRESSPATH. Cette option ne supporte que Empress Version 8.60 et plus récent.

--with-empress-bcs[=DIR]

Inclut le support "Empress Local Access". DIR est le dossier d'installation de Empress. Par défaut, c'est $EMPRESSPATH. Cette option ne supporte que Empress version 8.60 et plus récent.

--with-birdstep[=DIR]

Inclut le support Birdstep. DIR est le dossier d'installation de Birdstep. Par défaut, c'est /usr/local/birdstep.

--with-custom-odbc[=DIR]

Inclut le support d'un ODBC définit par l'utilisateur. DIR est le dossier d'installation d'ODBC. Par défaut, c'est /usr/local. Assurez-vous que la variable CUSTOM_ODBC_LIBS est définie, et que le fichier odbc.h est dans votre chemin d'inclusion, c'est-à-dire que vous devriez définir les lignes suivantes pour Sybase SQL Anywhere 5.5.00 sous QNX, avant d'utiliser le script de configuration :

   CPPFLAGS="-DODBC_QNX -DSQLANY_BUG"
   LDFLAGS=-lunix
   CUSTOM_ODBC_LIBS="-ldblib -lodbc".

--with-iodbc[=DIR]

Inclut le support iODBC. DIR est le dossier d'installation de iODBC. Par défaut, c'est /usr/local.

--with-esoob[=DIR]

Inclut le support Easysoft OOB. DIR est le dossier d'installation de OOB. Par défaut, c'est /usr/local/easysoft/oob/client.

--with-unixodbc[=DIR]

Inclut le support UnixODBC. DIR est le dossier d'installation d'UnixODBC. Par défaut, c'est /usr/local.

--with-openlink[=DIR]

Inclut le support OpenLink ODBC. DIR est le dossier d'installation OpenLink. Par défaut, c'est /usr/local. C'est le même que pour iODBC.

--with-dbmaker[=DIR]

Inclut le support DBMaker. DIR est le dossier d'installation DBMaker. Par défaut, c'est le chemin de la dernière installation de DBMaker (par exemple /home/dbmaker/3.6).

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration UODBC
Nom | Défaut | Modifiable | Historique
odbc.default_db * | NULL | PHP_INI_ALL |
odbc.default_user * | NULL | PHP_INI_ALL |
odbc.default_pw * | NULL | PHP_INI_ALL |
odbc.allow_persistent | "1" | PHP_INI_SYSTEM |
odbc.check_persistent | "1" | PHP_INI_SYSTEM |
odbc.max_persistent | "-1" | PHP_INI_SYSTEM |
odbc.max_links | "-1" | PHP_INI_SYSTEM |
odbc.defaultlrl | "4096" | PHP_INI_ALL |
odbc.defaultbinmode | "1" | PHP_INI_ALL |
odbc.default_cursortype | "3" | PHP_INI_ALL | Disponible depuis PHP 5.3.0

Note: Les entrées marquées avec une étoile ne sont pas encore implémentées.

Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

odbc.default_db chaîne de caractères

La source de données ODBC si aucune n'est spécifiée dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.default_user chaîne de caractères

Nom d'utilisateur à utiliser si aucun n'est spécifié dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.default_pw chaîne de caractères

Mot de passe à utiliser si aucun n'est spécifié dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.allow_persistent booléen

Est-ce que les connexions ODBC persistantes sont autorisées ou pas ?

odbc.check_persistent booléen

Vérifie que la connexion est valide avant de l'utiliser.

odbc.max_persistent entier

Nombre maximum de connexions persistantes par processus.

odbc.max_links entier

Le nombre maximum de connexions ODBC par processus, y compris les connexions persistantes.

odbc.defaultlrl entier

Gestion des champs de type LONG. Spécifie le nombre d'octets retournés dans les variables.

Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..
odbc.defaultbinmode entier

Gestion des données binaires.

odbc.default_cursortype entier

Contrôle le modèle de curseur ODBC. Valeurs possibles : SQL_CURSOR_FORWARD_ONLY, SQL_CURSOR_KEYSET_DRIVEN, SQL_CURSOR_DYNAMIC et SQL_CURSOR_STATIC (par défaut).


Types de ressources

Cette extension définit deux types de ressource : un identifiant de connexion ODBC et un identifiant de résultat ODBC.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

ODBC_TYPE (entier)
ODBC_BINMODE_PASSTHRU (entier)
ODBC_BINMODE_RETURN (entier)
ODBC_BINMODE_CONVERT (entier)
SQL_ODBC_CURSORS (entier)
SQL_CUR_USE_DRIVER (entier)
SQL_CUR_USE_IF_NEEDED (entier)
SQL_CUR_USE_ODBC (entier)
SQL_CONCURRENCY (entier)
SQL_CONCUR_READ_ONLY (entier)
SQL_CONCUR_LOCK (entier)
SQL_CONCUR_ROWVER (entier)
SQL_CONCUR_VALUES (entier)
SQL_CURSOR_TYPE (entier)
SQL_CURSOR_FORWARD_ONLY (entier)
SQL_CURSOR_KEYSET_DRIVEN (entier)
SQL_CURSOR_DYNAMIC (entier)
SQL_CURSOR_STATIC (entier)
SQL_KEYSET_SIZE (entier)
SQL_CHAR (entier)
SQL_VARCHAR (entier)
SQL_LONGVARCHAR (entier)
SQL_DECIMAL (entier)
SQL_NUMERIC (entier)
SQL_BIT (entier)
SQL_TINYINT (entier)
SQL_SMALLINT (entier)
SQL_INTEGER (entier)
SQL_BIGINT (entier)
SQL_REAL (entier)
SQL_FLOAT (entier)
SQL_DOUBLE (entier)
SQL_BINARY (entier)
SQL_VARBINARY (entier)
SQL_LONGVARBINARY (entier)
SQL_DATE (entier)
SQL_TIME (entier)
SQL_TIMESTAMP (entier)
SQL_TYPE_DATE (entier)
SQL_TYPE_TIME (entier)
SQL_TYPE_TIMESTAMP (entier)
SQL_BEST_ROWID (entier)
SQL_ROWVER (entier)
SQL_SCOPE_CURROW (entier)
SQL_SCOPE_TRANSACTION (entier)
SQL_SCOPE_SESSION (entier)
SQL_NO_NULLS (entier)
SQL_NULLABLE (entier)
SQL_INDEX_UNIQUE (entier)
SQL_INDEX_ALL (entier)
SQL_ENSURE (entier)
SQL_QUICK (entier)


Fonctions ODBC

Sommaire

  • odbc_autocommit — Active le mode d'autovalidation
  • odbc_binmode — Modifie la gestion des colonnes de données binaires
  • odbc_close_all — Ferme toutes les connexions ODBC
  • odbc_close — Ferme une connexion ODBC
  • odbc_columnprivileges — Liste les colonnes et leurs droits associés
  • odbc_columns — Liste les colonnes d'une table
  • odbc_commit — Valide une transaction ODBC
  • odbc_connect — Connexion à une source
  • odbc_cursor — Lit le nom du pointeur de résultat courant
  • odbc_data_source — Retourne des informations sur la connexion courante
  • odbc_do — Alias de odbc_exec
  • odbc_error — Lit le dernier code d'erreur
  • odbc_errormsg — Lit le dernier message d'erreur
  • odbc_exec — Prépare et exécute une requête SQL
  • odbc_execute — Exécute une requête SQL préparée
  • odbc_fetch_array — Lit une ligne de résultat dans un tableau associatif
  • odbc_fetch_into — Lit une ligne de résultat, et la place dans un tableau
  • odbc_fetch_object — Lit une ligne de résultat dans un objet
  • odbc_fetch_row — Lit une ligne de résultat
  • odbc_field_len — Lit la longueur d'un champ
  • odbc_field_name — Lit le nom de la colonne
  • odbc_field_num — Numéro de colonne
  • odbc_field_precision — Alias de odbc_field_len
  • odbc_field_scale — Lit l'échelle d'un champ
  • odbc_field_type — Type de données d'un champ
  • odbc_foreignkeys — Liste les clés étrangères
  • odbc_free_result — Libère les ressources associées à un résultat
  • odbc_gettypeinfo — Liste les types de données supportés par une source
  • odbc_longreadlen — Gestion des colonnes de type LONG
  • odbc_next_result — Vérifie si plusieurs résultats sont disponibles
  • odbc_num_fields — Nombre de colonnes dans un résultat
  • odbc_num_rows — Nombre de lignes dans un résultat
  • odbc_pconnect — Ouvre une connexion persistante à une source de données
  • odbc_prepare — Prépare une commande pour l'exécution
  • odbc_primarykeys — Liste les colonnes utilisées dans une clé primaire
  • odbc_procedurecolumns — Liste les paramètres des procédures
  • odbc_procedures — Liste les procédures stockées
  • odbc_result_all — Affiche le résultat sous la forme d'une table HTML
  • odbc_result — Lit un champ de résultat UODBC
  • odbc_rollback — Annule une transaction
  • odbc_setoption — Modifie les paramètres ODBC
  • odbc_specialcolumns — Retourne l'ensemble optimal de colonnes
  • odbc_statistics — Calcul des statistiques sur une table
  • odbc_tableprivileges — Liste les tables et leurs privilèges
  • odbc_tables — Liste les tables d'une source


Active le mode d'autovalidation

  • « Fonctions ODBC
  • odbc_binmode »
  • PHP Manual
  • Fonctions ODBC
  • Active le mode d'autovalidation

odbc_autocommit

(PHP 4, PHP 5, PHP 7)

odbc_autocommit — Active le mode d'autovalidation

Description

mixed odbc_autocommit ( resource $connection_id [, bool $OnOff = false ] )

Sans le paramètre onoff, odbc_autocommit() retourne le statut d'autovalidation

Par défaut, l'autovalidation est activée. Désactiver l'autovalidation est équivalent à démarrer une transaction.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

OnOff

Si OnOff vaut TRUE, l'autovalidation est activée. S'il est FALSE, l'autovalidation est désactivée.

Valeurs de retour

Sans le paramètre OnOff, odbc_autocommit() retourne le statut d'autovalidation de la connexion connection_id. Une valeur différente de 0 si le mode est activé, 0 s'il ne l'est pas, ou FALSE si une erreur survient.

Si OnOff est défini, cette fonction retourne TRUE en cas de succès,et FALSE si une erreur survient.

Voir aussi

  • odbc_commit() - Valide une transaction ODBC
  • odbc_rollback() - Annule une transaction


Modifie la gestion des colonnes de données binaires

  • « odbc_autocommit
  • odbc_close_all »
  • PHP Manual
  • Fonctions ODBC
  • Modifie la gestion des colonnes de données binaires

odbc_binmode

(PHP 4, PHP 5, PHP 7)

odbc_binmode — Modifie la gestion des colonnes de données binaires

Description

bool odbc_binmode ( resource $result_id , int $mode )

odbc_binmode() modifie la gestion des colonnes de données binaires. Les types ODBC SQL affectés sont BINARY, VARBINARY et LONGVARBINARY.

Lorsqu'une donnée SQL est convertie en caractère C, les 8 bits du caractère source sont représentés par deux caractères ASCII. Ces caractères sont des représentations ASCII des nombres au format hexadécimal. Par exemple, le binaire 00000001 est converti en "01" et le binaire 11111111 est converti en "FF".

Conversion des LONGVARBINARY
Mode | Longueur | Résultat
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_RETURN | 0 | passthru
ODBC_BINMODE_CONVERT | 0 | passthru
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_RETURN | 0 | Tel quel
ODBC_BINMODE_CONVERT | 0 | Caractère

Si odbc_fetch_into() est utilisé, passthru signifie qu'une chaîne vide sera retournée pour ces colonnes.

Liste de paramètres

result_id

L'identifiant de résultat.

Si result_id vaut 0, ces paramètres seront appliqués aux nouveaux résultats.

Note: La valeur par défaut de longreadlen est 4096 et celle de mode est ODBC_BINMODE_RETURN. La gestion des colonnes binaires est aussi modifiée par odbc_longreadlen().

mode

Valeurs possibles pour le paramètre mode :

  • ODBC_BINMODE_PASSTHRU : retourner les données en binaire
  • ODBC_BINMODE_RETURN : retourner sans conversion
  • ODBC_BINMODE_CONVERT : convertir en caractère

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Ferme toutes les connexions ODBC

  • « odbc_binmode
  • odbc_close »
  • PHP Manual
  • Fonctions ODBC
  • Ferme toutes les connexions ODBC

odbc_close_all

(PHP 4, PHP 5, PHP 7)

odbc_close_all — Ferme toutes les connexions ODBC

Description

void odbc_close_all ( void )

odbc_close_all() ferme toutes les connexions ODBC à des sources de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

odbc_close_all() échouera s'il y a des transactions en cours sur cette connexion. Dans ce cas, la connexion restera ouverte.


Ferme une connexion ODBC

  • « odbc_close_all
  • odbc_columnprivileges »
  • PHP Manual
  • Fonctions ODBC
  • Ferme une connexion ODBC

odbc_close

(PHP 4, PHP 5, PHP 7)

odbc_close — Ferme une connexion ODBC

Description

void odbc_close ( resource $connection_id )

Ferme la connexion avec la source de données représentée par l'identifiant de connexion connection_id.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

odbc_close() échouera s'il y a des transactions en cours sur cette connexion. Dans ce cas, la connexion restera ouverte.


Liste les colonnes et leurs droits associés

  • « odbc_close
  • odbc_columns »
  • PHP Manual
  • Fonctions ODBC
  • Liste les colonnes et leurs droits associés

odbc_columnprivileges

(PHP 4, PHP 5, PHP 7)

odbc_columnprivileges — Liste les colonnes et leurs droits associés

Description

resource odbc_columnprivileges ( resource $connection_id , string $qualifier , string $owner , string $table_name , string $column_name )

Liste les colonnes et leurs droits associés.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

owner

Le propriétaire.

table_name

Le nom de la table.

column_name

Le paramètre column_name accepte des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

Les paramètres owner, table_name, et column_name acceptent des masques de recherche ('%' correspond à zéro ou plus de caractères, et '_' correspond à exactement un caractère).

Valeurs de retour

Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient. Cet identifiant de résultat pourra être utilisé pour récupérer une liste des colonnes ainsi que les droits associés.

Le jeu de résultat contient les colonnes suivantes :

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE

Le résultat est ordonné par TABLE_QUALIFIER, TABLE_OWNER et TABLE_NAME.


Liste les colonnes d'une table

  • « odbc_columnprivileges
  • odbc_commit »
  • PHP Manual
  • Fonctions ODBC
  • Liste les colonnes d'une table

odbc_columns

(PHP 4, PHP 5, PHP 7)

odbc_columns — Liste les colonnes d'une table

Description

resource odbc_columns ( resource $connection_id [, string $qualifier [, string $schema [, string $table_name [, string $column_name ]]]] )

Liste les colonnes d'une table.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

schema

Le propriétaire.

table_name

Le nom de la table.

column_name

Le nom de la colonne.

Les paramètres owner, column_name et table_name acceptent des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

Valeurs de retour

Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient.

Le jeu de résultat contient les colonnes suivantes :

  • TABLE_QUALIFIER
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • PRECISION
  • LENGTH
  • SCALE
  • RADIX
  • NULLABLE
  • REMARKS

Le résultat est ordonné par TABLE_QUALIFIER, TABLE_SCHEM et TABLE_NAME.

Voir aussi

  • odbc_columnprivileges() - Liste les colonnes et leurs droits associéspour connaître les droits associés.


Valide une transaction ODBC

  • « odbc_columns
  • odbc_connect »
  • PHP Manual
  • Fonctions ODBC
  • Valide une transaction ODBC

odbc_commit

(PHP 4, PHP 5, PHP 7)

odbc_commit — Valide une transaction ODBC

Description

bool odbc_commit ( resource $connection_id )

Valide toutes les transactions en cours sur la connexion connection_id.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Connexion à une source

  • « odbc_commit
  • odbc_cursor »
  • PHP Manual
  • Fonctions ODBC
  • Connexion à une source

odbc_connect

(PHP 4, PHP 5, PHP 7)

odbc_connect — Connexion à une source

Description

resource odbc_connect ( string $dsn , string $user , string $password [, int $cursor_type ] )

L'identifiant de connexion retourné par cette fonction est nécessaire pour toutes les autres fonctions ODBC. Vous pouvez avoir de multiples connexions en même temps.

Avec certains pilotes ODBC, l'exécution de procédures enregistrées complexes peut produire l'erreur suivante : "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it", ce qui signifie : "Impossible de créer un pointeur de résultat dans une procédure enregistrée qui est réduite à une simple sélection (SELECT)". Utiliser l'option SQL_CUR_USE_ODBC permet d'éviter cette erreur. De plus, certains pilotes ne supportent pas le paramètre optionnel de numéro de ligne dans odbc_fetch_row(). SQL_CUR_USE_ODBC peut aussi permettre de résoudre ces problèmes.

Liste de paramètres

dsn

Le nom source de la base de données (DSN), pour la connexion.

user

Le nom d'utilisateur.

password

Le mot de passe.

cursor_type

Fixe le type de pointeur de résultat utilisé pour cette connexion. Ce paramètre n'est généralement pas nécessaire, mais il peut être utile pour contourner certains problèmes ODBC.

Les constantes suivantes sont définies comme types de pointeur :

  • SQL_CUR_USE_IF_NEEDED
  • SQL_CUR_USE_ODBC
  • SQL_CUR_USE_DRIVER

Valeurs de retour

Retourne une connexion ODBC ou FALSE si une erreur survient.

Exemples

Exemple #1 Connexion sans DSN

<?php
// Microsoft SQL Server utilise le pilote SQL Native Client 10.0 ODBC Driver :
// il permet les connexions à SQL 7, 2000, 2005 et 2008
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);

// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);

// Microsoft Excel
$excelFile = realpath('C:/ExcelData.xls');
$excelDir = dirname($excelFile);
$connection = odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;DefaultDir=$excelDir" , '', '');
?>

Voir aussi

  • Pour les connexions persistantes : odbc_pconnect() - Ouvre une connexion persistante à une source de données


Lit le nom du pointeur de résultat courant

  • « odbc_connect
  • odbc_data_source »
  • PHP Manual
  • Fonctions ODBC
  • Lit le nom du pointeur de résultat courant

odbc_cursor

(PHP 4, PHP 5, PHP 7)

odbc_cursor — Lit le nom du pointeur de résultat courant

Description

string odbc_cursor ( resource $result_id )

odbc_cursor() lit le nom du pointeur de résultat courant pour le résultat result_id.

Liste de paramètres

result_id

La ressource de résultat.

Valeurs de retour

Retourne le nom du curseur, sous forme d'une chaîne de caractères.


Retourne des informations sur la connexion courante

  • « odbc_cursor
  • odbc_do »
  • PHP Manual
  • Fonctions ODBC
  • Retourne des informations sur la connexion courante

odbc_data_source

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

odbc_data_source — Retourne des informations sur la connexion courante

Description

array odbc_data_source ( resource $connection_id , int $fetch_type )

Retourne une liste de DSN disponibles (après l'avoir appelée plusieurs fois).

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

fetch_type

Le paramètre connection_id est une connexion ODBC valide. Le paramètre fetch_type peut être l'une des deux constantes suivantes : SQL_FETCH_FIRST ou SQL_FETCH_NEXT. Utilisez SQL_FETCH_FIRST la première fois que la fonction est appelée, puis SQL_FETCH_NEXT.

Valeurs de retour

Retourne FALSE si une erreur survient, un tableau sinon.


Alias de odbc_exec

  • « odbc_data_source
  • odbc_error »
  • PHP Manual
  • Fonctions ODBC
  • Alias de odbc_exec

odbc_do

(PHP 4, PHP 5, PHP 7)

odbc_do — Alias de odbc_exec()

Description

Cette fonction est un alias de : odbc_exec().


Lit le dernier code d'erreur

  • « odbc_do
  • odbc_errormsg »
  • PHP Manual
  • Fonctions ODBC
  • Lit le dernier code d'erreur

odbc_error

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

odbc_error — Lit le dernier code d'erreur

Description

string odbc_error ([ resource $connection_id ] )

Retourne un état ODBC sur 6 chiffres, ou une chaîne vide s'il n'y avait plus d'erreurs.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Si connection_id est spécifié, le dernier état ODBC de cette connexion est retourné. Si connection_id est omis, c'est le dernier état de n'importe quelle connexion qui est retourné.

Cette fonction retourne une valeur significative uniquement si la dernière requête ODBC a échoué (i.e. la fonction odbc_exec() a retourné FALSE).

Voir aussi

  • odbc_errormsg() - Lit le dernier message d'erreur
  • odbc_exec() - Prépare et exécute une requête SQL


Lit le dernier message d'erreur

  • « odbc_error
  • odbc_exec »
  • PHP Manual
  • Fonctions ODBC
  • Lit le dernier message d'erreur

odbc_errormsg

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

odbc_errormsg — Lit le dernier message d'erreur

Description

string odbc_errormsg ([ resource $connection_id ] )

Retourne une chaîne contenant le dernier message d'erreur ODBC, ou une chaîne vide s'il n'y avait pas d'erreur.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Si connection_id est spécifié, le dernier état ODBC de cette connexion est retourné.

Cette fonction retourne une valeur significative uniquement si la dernière requête ODBC a échoué (i.e. la fonction odbc_exec() a retourné FALSE).

Voir aussi

  • odbc_error() - Lit le dernier code d'erreur
  • odbc_exec() - Prépare et exécute une requête SQL


Prépare et exécute une requête SQL

  • « odbc_errormsg
  • odbc_execute »
  • PHP Manual
  • Fonctions ODBC
  • Prépare et exécute une requête SQL

odbc_exec

(PHP 4, PHP 5, PHP 7)

odbc_exec — Prépare et exécute une requête SQL

Description

resource odbc_exec ( resource $connection_id , string $query_string [, int $flags ] )

odbc_exec() envoie une commande SQL à la source de données ODBC, représentée par connection_id.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

query_string

La requête SQL.

flags

Ce paramètre n'est actuellement pas utilisé.

Valeurs de retour

Retourne une ressource de résultat ODBC en cas de succès, FALSE si une erreur survient.

Voir aussi

  • odbc_prepare() - Prépare une commande pour l'exécution
  • odbc_execute() - Exécute une requête SQL préparée


Exécute une requête SQL préparée

  • « odbc_exec
  • odbc_fetch_array »
  • PHP Manual
  • Fonctions ODBC
  • Exécute une requête SQL préparée

odbc_execute

(PHP 4, PHP 5, PHP 7)

odbc_execute — Exécute une requête SQL préparée

Description

bool odbc_execute ( resource $result_id [, array $parameters_array ] )

Exécute une requête SQL préparée par odbc_prepare().

Liste de paramètres

result_id

L'identifiant de résultat, depuis la fonction odbc_prepare().

parameters_array

Les valeurs du paramètre parameter_array seront substituées dans les variables de requêtes de la requête préparée. Les éléments de ce tableau seront convertis en chaînes de caractères en appelant cette fonction.

Tout paramètre de parameter_array qui commence et termine par des guillemets simples sera considéré comme un nom de fichier à lire et envoyé à la base de données, avec la variable de requête appropriée.

Si vous voulez stocker une chaîne de caractères qui commence et se finit réellement par des guillemets, vous devez ajouter un espace au début ou à la fin de la chaîne, pour éviter que ce paramètre soit confondu avec un nom de fichier. Si ce n'est pas possible dans le cadre de votre application, vous devrez passer par la fonction odbc_exec().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec odbc_execute() et odbc_prepare()

Dans le script suivant, $success ne sera possible que si les trois paramètres de maproc sont des paramètres de type IN :

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt    = odbc_prepare($conn, 'CALL maproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>

Si vous devez appeler une procédure stockée en utilisant des paramètres INOUT ou OUT, la solution est d'utiliser une extension native de votre base de données (par exemple, mssql pour MS SQL Server, ou oci8 pour Oracle).

Historique

Version | Description
4.2.0 | La lecture du fichier est maintenant sujette au safe mode et aux restrictions open-basedir dans le paramètre parameters_array.

Voir aussi

  • odbc_prepare() - Prépare une commande pour l'exécution


Lit une ligne de résultat dans un tableau associatif

  • « odbc_execute
  • odbc_fetch_into »
  • PHP Manual
  • Fonctions ODBC
  • Lit une ligne de résultat dans un tableau associatif

odbc_fetch_array

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

odbc_fetch_array — Lit une ligne de résultat dans un tableau associatif

Description

array odbc_fetch_array ( resource $result [, int $rownumber ] )

odbc_fetch_array() lit une ligne de résultat dans un tableau associatif depuis une requête ODBC.

Liste de paramètres

result

La ressource de résultat depuis la fonction odbc_exec().

rownumber

Le numéro de la ligne devant être lue, optionnel.

Valeurs de retour

Retourne un tableau correspondant à la ligne récupérée, ou FALSE s'il n'y a plus de ligne de disponible.

Notes

Note: Cette fonction est disponible lorsque PHP est compilé avec le support IBM DB2 ou UnixODBC.

Voir aussi

  • odbc_fetch_row() - Lit une ligne de résultat
  • odbc_fetch_object() - Lit une ligne de résultat dans un objet
  • odbc_num_rows() - Nombre de lignes dans un résultat


Lit une ligne de résultat, et la place dans un tableau

  • « odbc_fetch_array
  • odbc_fetch_object »
  • PHP Manual
  • Fonctions ODBC
  • Lit une ligne de résultat, et la place dans un tableau

odbc_fetch_into

(PHP 4, PHP 5, PHP 7)

odbc_fetch_into — Lit une ligne de résultat, et la place dans un tableau

Description

int odbc_fetch_into ( resource $result_id , array &$result_array [, int $rownumber ] )

Lit une ligne de résultat, et la place dans un tableau.

Liste de paramètres

result_id

La ressource de résultat.

result_array

Peut être de n'importe quel type, étant donné qu'il sera converti en tableau. Le tableau contiendra les valeurs des colonnes, ces dernières étant numérotées à partir de 0.

rownumber

Le numéro de la ligne.

Valeurs de retour

Retourne le nombre de colonnes du résultat, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec odbc_fetch_into()

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

ou

<?php
$rc = odbc_fetch_into($res_id, $my_array, 2);
?>


Lit une ligne de résultat dans un objet

  • « odbc_fetch_into
  • odbc_fetch_row »
  • PHP Manual
  • Fonctions ODBC
  • Lit une ligne de résultat dans un objet

odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

odbc_fetch_object — Lit une ligne de résultat dans un objet

Description

object odbc_fetch_object ( resource $result [, int $rownumber ] )

odbc_fetch_object() lit une ligne de résultat dans un objet depuis une requête ODBC.

Liste de paramètres

result

La ressource de résultat depuis la fonction odbc_exec().

rownumber

Le numéro de ligne à récupérer, en option.

Valeurs de retour

Retourne un objet qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de ligne de disponible.

Notes

Note: Cette fonction est disponible lorsque PHP est compilé avec le support IBM DB2 ou UnixODBC.

Voir aussi

  • odbc_fetch_row() - Lit une ligne de résultat
  • odbc_fetch_array() - Lit une ligne de résultat dans un tableau associatif
  • odbc_num_rows() - Nombre de lignes dans un résultat


Lit une ligne de résultat

  • « odbc_fetch_object
  • odbc_field_len »
  • PHP Manual
  • Fonctions ODBC
  • Lit une ligne de résultat

odbc_fetch_row

(PHP 4, PHP 5, PHP 7)

odbc_fetch_row — Lit une ligne de résultat

Description

bool odbc_fetch_row ( resource $result_id [, int $row_number ] )

Lit une ligne dans le résultat identifié par
result_id et retourné par
odbc_do() ou
odbc_exec(). Après
odbc_fetch_row(), les champs seront accessibles
avec la fonction odbc_result().

Liste de paramètres

result_id

L'identifiant de résultat.

row_number

Si row_number est omis, row_number va tenter de lire la prochaine ligne dans le résultat. Des appels répétés à odbc_fetch_row() avec et sans paramètre row_number peuvent être combinés librement.

Pour passer en revue toutes les lignes d'un résultat plusieurs fois, vous pouvez appeler odbc_fetch_row() avec row_number = 1, puis continuer à appeler odbc_fetch_row() sans le paramètre row_number pour passer en revue tout le résultat. Si un pilote ne supporte pas la lecture des lignes par numéro, le paramètre sera ignoré.

Valeurs de retour

Retourne TRUE si la ligne existe, FALSE sinon.


Lit la longueur d'un champ

  • « odbc_fetch_row
  • odbc_field_name »
  • PHP Manual
  • Fonctions ODBC
  • Lit la longueur d'un champ

odbc_field_len

(PHP 4, PHP 5, PHP 7)

odbc_field_len — Lit la longueur d'un champ

Description

int odbc_field_len ( resource $result_id , int $field_number )

Lit la longueur du champ identifié par son numéro.

Liste de paramètres

result_id

L'identifiant de résultat.

field_number

Le numéro du champ. La numérotation commence à 1.

Valeurs de retour

Retourne la longueur du champ ou FALSE si une erreur survient.

Voir aussi

  • odbc_field_scale() - Lit l'échelle d'un champpour connaître l'échelle d'un nombre à virgule flottante


Lit le nom de la colonne

  • « odbc_field_len
  • odbc_field_num »
  • PHP Manual
  • Fonctions ODBC
  • Lit le nom de la colonne

odbc_field_name

(PHP 4, PHP 5, PHP 7)

odbc_field_name — Lit le nom de la colonne

Description

string odbc_field_name ( resource $result_id , int $field_number )

Lit le nom de la colonne dont l'index est field_number.

Liste de paramètres

result_id

L'identifiant de résultat.

field_number

Le numéro de la colonne. La numérotation commence à 1.

Valeurs de retour

Retourne le nom de la colonne, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.


Numéro de colonne

  • « odbc_field_name
  • odbc_field_precision »
  • PHP Manual
  • Fonctions ODBC
  • Numéro de colonne

odbc_field_num

(PHP 4, PHP 5, PHP 7)

odbc_field_num — Numéro de colonne

Description

int odbc_field_num ( resource $result_id , string $field_name )

Lit le numéro de la colonne nommée field_name.

Liste de paramètres

result_id

L'identifiant de résultat.

field_name

Le nom du champ.

Valeurs de retour

Retourne le numéro du champ, sous la forme d'un entier, ou FALSE si une erreur survient. La numérotation commence à 1.


Alias de odbc_field_len

  • « odbc_field_num
  • odbc_field_scale »
  • PHP Manual
  • Fonctions ODBC
  • Alias de odbc_field_len

odbc_field_precision

(PHP 4, PHP 5, PHP 7)

odbc_field_precision — Alias de odbc_field_len()

Description

Cette fonction est un alias de : odbc_field_len().

Voir aussi

  • odbc_field_scale() - Lit l'échelle d'un champpour connaître l'échelle d'un nombre à virgule flottante.


Lit l'échelle d'un champ

  • « odbc_field_precision
  • odbc_field_type »
  • PHP Manual
  • Fonctions ODBC
  • Lit l'échelle d'un champ

odbc_field_scale

(PHP 4, PHP 5, PHP 7)

odbc_field_scale — Lit l'échelle d'un champ

Description

int odbc_field_scale ( resource $result_id , int $field_number )

Lit l'échelle du champ référencé par son numéro de champ field_number dans le résultat ODBC result_id.

Liste de paramètres

result_id

L'identifiant de résultat.

field_number

Le numéro du champ. La numérotation commence à 1.

Valeurs de retour

Retourne l'échelle du champ, sous la forme d'un entier, ou FALSE si une erreur survient.


Type de données d'un champ

  • « odbc_field_scale
  • odbc_foreignkeys »
  • PHP Manual
  • Fonctions ODBC
  • Type de données d'un champ

odbc_field_type

(PHP 4, PHP 5, PHP 7)

odbc_field_type — Type de données d'un champ

Description

string odbc_field_type ( resource $result_id , int $field_number )

Lit le type de données SQL d'un champ, identifié par son numéro.

Liste de paramètres

result_id

L'identifiant de résultat.

field_number

Le numéro du champ. La numérotation commence à 1.

Valeurs de retour

Retourne le type du champ, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.


Liste les clés étrangères

  • « odbc_field_type
  • odbc_free_result »
  • PHP Manual
  • Fonctions ODBC
  • Liste les clés étrangères

odbc_foreignkeys

(PHP 4, PHP 5, PHP 7)

odbc_foreignkeys — Liste les clés étrangères

Description

resource odbc_foreignkeys ( resource $connection_id , string $pk_qualifier , string $pk_owner , string $pk_table , string $fk_qualifier , string $fk_owner , string $fk_table )

Liste les clés étrangères utilisées dans la table pk_table.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

pk_qualifier

Le qualifieur de la clé primaire.

pk_owner

Le propriétaire de la clé primaire.

pk_table

La table de la clé primaire.

fk_qualifier

Le qualifieur de la clé étrangère.

fk_owner

Le propriétaire de la clé étrangère.

fk_table

La table de la clé étrangère.

Valeurs de retour

Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • PKTABLE_QUALIFIER
  • PKTABLE_OWNER
  • PKTABLE_NAME
  • PKCOLUMN_NAME
  • FKTABLE_QUALIFIER
  • FKTABLE_OWNER
  • FKTABLE_NAME
  • FKCOLUMN_NAME
  • KEY_SEQ
  • UPDATE_RULE
  • DELETE_RULE
  • FK_NAME
  • PK_NAME

Si pk_table contient un nom de table, odbc_foreignkeys() retourne la clé primaire de la table pk_table, et toutes les clés étrangères qui y font référence.

Si fk_table contient un nom de table, odbc_foreignkeys() retourne la liste des clés étrangères de la table fk_table, et les clés primaires (d'autres tables) qui y font référence.

Si pk_table et fk_table contiennent des noms de tables, odbc_foreignkeys() retourne la liste des clés étrangères de la table fk_table qui utilisent la clé primaire de la table pk_table. Cette liste devrait ne contenir qu'une clé au mieux.


Libère les ressources associées à un résultat

  • « odbc_foreignkeys
  • odbc_gettypeinfo »
  • PHP Manual
  • Fonctions ODBC
  • Libère les ressources associées à un résultat

odbc_free_result

(PHP 4, PHP 5, PHP 7)

odbc_free_result — Libère les ressources associées à un résultat

Description

bool odbc_free_result ( resource $result_id )

Libère les ressources associées à un résultat.

odbc_free_result() n'est nécessaire que si vous craignez d'utiliser trop de mémoire lors de l'exécution de votre script. Tous les résultats en mémoire seront libérés dès la fin du script.

Liste de paramètres

result_id

L'identifiant de résultat.

Valeurs de retour

Retourne toujours TRUE.

Notes

Note:

Si l'autovalidation est désactivée (voir odbc_autocommit()) et que vous appelez odbc_free_result() avant de valider vos requêtes, toutes les transactions préparées seront annulées.


Liste les types de données supportés par une source

  • « odbc_free_result
  • odbc_longreadlen »
  • PHP Manual
  • Fonctions ODBC
  • Liste les types de données supportés par une source

odbc_gettypeinfo

(PHP 4, PHP 5, PHP 7)

odbc_gettypeinfo — Liste les types de données supportés par une source

Description

resource odbc_gettypeinfo ( resource $connection_id [, int $data_type ] )

Liste les types de données supportés par une source.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

data_type

Peut être utilisé pour restreindre les informations à un seul type de données.

Valeurs de retour

Retourne l'identifiant de résultat ODBC, ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • TYPE_NAME
  • DATA_TYPE
  • PRECISION
  • LITERAL_PREFIX
  • LITERAL_SUFFIX
  • CREATE_PARAMS
  • NULLABLE
  • CASE_SENSITIVE
  • SEARCHABLE
  • UNSIGNED_ATTRIBUTE
  • MONEY
  • AUTO_INCREMENT
  • LOCAL_TYPE_NAME
  • MINIMUM_SCALE
  • MAXIMUM_SCALE

Le résultat est ordonné par DATA_TYPE et TYPE_NAME.


Gestion des colonnes de type LONG

  • « odbc_gettypeinfo
  • odbc_next_result »
  • PHP Manual
  • Fonctions ODBC
  • Gestion des colonnes de type LONG

odbc_longreadlen

(PHP 4, PHP 5, PHP 7)

odbc_longreadlen — Gestion des colonnes de type LONG

Description

bool odbc_longreadlen ( resource $result_id , int $length )

Active la gestion des colonnes de type LONG et LONGVARBINARY.

Liste de paramètres

result_id

L'identifiant de résultat.

length

Le nombre d'octets retourné à PHP. S'il est défini à 0, les données des colonnes de type LONG sont passé au client.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

La gestion des types LONGVARBINARY est aussi affectée par odbc_binmode().


Vérifie si plusieurs résultats sont disponibles

  • « odbc_longreadlen
  • odbc_num_fields »
  • PHP Manual
  • Fonctions ODBC
  • Vérifie si plusieurs résultats sont disponibles

odbc_next_result

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

odbc_next_result — Vérifie si plusieurs résultats sont disponibles

Description

bool odbc_next_result ( resource $result_id )

Vérifie s'il y a plus de jeux de résultats de disponibles accessibles via les fonctions odbc_fetch_array(), odbc_fetch_row(), odbc_result(), etc.

Liste de paramètres

result_id

L'identifiant de résultat.

Valeurs de retour

Retourne TRUE s'il n'y a plus de jeux de résultats, FALSE sinon.

Exemples

Exemple #1 Exemple avec odbc_next_result()

<?php
$r_Connection = odbc_connect($dsn, $username, $password);

$s_SQL = <<<END_SQL
SELECT 'A'
SELECT 'B'
SELECT 'C'
END_SQL;

$r_Results = odbc_exec($r_Connection, $s_SQL);

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Affiche le premier jeu de résultats : ";
var_dump($a_Row1, $a_Row2);

echo "Récupération du deuxième jeu de résultats : ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Affiche le second jeu de résultats : ";
var_dump($a_Row1, $a_Row2);

echo "Récupération du troisième jeu de résultats : ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Affiche le troisième jeu de résultats : ";
var_dump($a_Row1, $a_Row2);

echo "Tente de récupérer un quatrième jeu de résultats : ";
var_dump(odbc_next_result($r_Results));
?>

L'exemple ci-dessus va afficher :

Affiche le premier jeu de résultats : array(1) {
  ["A"]=>
  string(1) "A"
}
bool(false)
Récupération du second jeu de résultats :bool(true)
Affiche le second jeu de résultats : array(1) {
  ["B"]=>
  string(1) "B"
}
bool(false)
Récupération du troisième jeu de résultats : bool(true)
Affiche le troisième jeu de résultats : array(1) {
  ["C"]=>
  string(1) "C"
}
bool(false)
Tente de récupérer un quatrième jeu de résultats : bool(false)


Nombre de colonnes dans un résultat

  • « odbc_next_result
  • odbc_num_rows »
  • PHP Manual
  • Fonctions ODBC
  • Nombre de colonnes dans un résultat

odbc_num_fields

(PHP 4, PHP 5, PHP 7)

odbc_num_fields — Nombre de colonnes dans un résultat

Description

int odbc_num_fields ( resource $result_id )

Récupère le nombre de colonnes dans un résultat ODBC.

Liste de paramètres

result_id

L'identifiant de résultat, retourné par la fonction odbc_exec().

Valeurs de retour

Retourne le nombre de colonnes, ou -1 si une erreur survient.


Nombre de lignes dans un résultat

  • « odbc_num_fields
  • odbc_pconnect »
  • PHP Manual
  • Fonctions ODBC
  • Nombre de lignes dans un résultat

odbc_num_rows

(PHP 4, PHP 5, PHP 7)

odbc_num_rows — Nombre de lignes dans un résultat

Description

int odbc_num_rows ( resource $result_id )

Lit le nombre de lignes dans un résultat. Pour les commandes INSERT, UPDATE et DELETE, odbc_num_rows() retourne le nombre de lignes affectées. Pour les commandes SELECT, cela PEUT être le nombre de lignes disponibles, mais ce n'est pas certain.

Liste de paramètres

result_id

L'identifiant de résultat, retourné par la fonction odbc_exec().

Valeurs de retour

Retourne le nombre de lignes dans le résultat ODBC. Cette fonction retournera -1 si une erreur survient.

Notes

Note:

L'utilisation de la fonction odbc_num_rows() pour déterminer le nombre de lignes disponible après un SELECT retournera -1 avec la plupart des pilotes.


Ouvre une connexion persistante à une source de données

  • « odbc_num_rows
  • odbc_prepare »
  • PHP Manual
  • Fonctions ODBC
  • Ouvre une connexion persistante à une source de données

odbc_pconnect

(PHP 4, PHP 5, PHP 7)

odbc_pconnect — Ouvre une connexion persistante à une source de données

Description

resource odbc_pconnect ( string $dsn , string $user , string $password [, int $cursor_type ] )

Ouvre une connexion persistante à une source de données.

odbc_pconnect() se comporte de manière similaire à odbc_connect(), mais la connexion ouverte n'est pas vraiment terminée lorsque le script est achevé. Les prochaines requêtes qui se feront sur une connexion dont les dsn, user, password sont les mêmes que celle-ci (avec odbc_connect() et odbc_pconnect()) réutiliseront la connexion ouverte.

Liste de paramètres

Voir la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Retourne un identifiant de connexion ODBC, ou 0 (FALSE) si une erreur survient.

Notes

Note: Les connexions persistantes n'ont aucun effet si PHP est utilisé comme CGI.

Voir aussi

  • odbc_connect() - Connexion à une source
  • Les connexions persistantes aux bases de données


Prépare une commande pour l'exécution

  • « odbc_pconnect
  • odbc_primarykeys »
  • PHP Manual
  • Fonctions ODBC
  • Prépare une commande pour l'exécution

odbc_prepare

(PHP 4, PHP 5, PHP 7)

odbc_prepare — Prépare une commande pour l'exécution

Description

resource odbc_prepare ( resource $connection_id , string $query_string )

Prépare une commande pour l'exécution. L'identifiant peut être utilisé plus tard pour exécuter la commande avec odbc_execute().

Quelques bases de données (comme IBM DB2, MS SQL Server et Oracle) supportent les procédures stockées qui acceptent les types de paramètres IN, INOUT et OUT comme définis dans les spécifications ODBC. Cependant, le driver unifié ODBC supporte actuellement uniquement le type de paramètres IN pour les procédures stockées.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

query_string

La requête à préparer.

Valeurs de retour

Retourne un identifiant de résultat ODBC si la commande SQL a été préparée avec succès. Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec odbc_prepare() et odbc_execute()

Dans le code suivant, $res ne sera valide uniquement si les trois paramètres pour myproc sont des paramètres IN :

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$res  = odbc_execute($stmt, array($a, $b, $c));
?>

Si vous devez appeler une procédure stockée utilisant des paramètres INOUT ou OUT, il est recommandé d'utiliser l'extension native de votre base de données (par exemple, mssql pour MS SQL Server ou oci8 pour Oracle).

Voir aussi

  • odbc_execute() - Exécute une requête SQL préparée


Liste les colonnes utilisées dans une clé primaire

  • « odbc_prepare
  • odbc_procedurecolumns »
  • PHP Manual
  • Fonctions ODBC
  • Liste les colonnes utilisées dans une clé primaire

odbc_primarykeys

(PHP 4, PHP 5, PHP 7)

odbc_primarykeys — Liste les colonnes utilisées dans une clé primaire

Description

resource odbc_primarykeys ( resource $connection_id , string $qualifier , string $owner , string $table )

Liste les colonnes utilisées dans une clé primaire de la table table.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

owner

table

Valeurs de retour

Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • COLUMN_NAME
  • KEY_SEQ
  • PK_NAME


Liste les paramètres des procédures

  • « odbc_primarykeys
  • odbc_procedures »
  • PHP Manual
  • Fonctions ODBC
  • Liste les paramètres des procédures

odbc_procedurecolumns

(PHP 4, PHP 5, PHP 7)

odbc_procedurecolumns — Liste les paramètres des procédures

Description

resource odbc_procedurecolumns ( resource $connection_id )
resource odbc_procedurecolumns ( resource $connection_id , string $qualifier , string $owner , string $proc , string $column )

Liste les paramètres des procédures.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

owner

Le propriétaire. Ce paramètre accepte les masques de recherche suivants : "%" pour chercher zéro ou plusieurs caractères, et "_" pour chercher un seul caractère.

proc

Le procédure. Ce paramètre accepte les masques de recherche suivants : "%" pour chercher zéro ou plusieurs caractères, et "_" pour chercher un seul caractère.

column

La colonne. Ce paramètre accepte les masques de recherche suivants : "%" pour chercher zéro ou plusieurs caractères, et "_" pour chercher un seul caractère.

Valeurs de retour

Retourne les paramètres d'entrée et de sortie, ainsi que les colonnes utilisées dans les procédures désignées par les paramètres. Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • PROCEDURE_QUALIFIER
  • PROCEDURE_OWNER
  • PROCEDURE_NAME
  • COLUMN_NAME
  • COLUMN_TYPE
  • DATA_TYPE
  • TYPE_NAME
  • PRECISION
  • LENGTH
  • SCALE
  • RADIX
  • NULLABLE
  • REMARKS

Le résultat est ordonné par PROCEDURE_QUALIFIER, PROCEDURE_OWNER, PROCEDURE_NAME et COLUMN_TYPE.


Liste les procédures stockées

  • « odbc_procedurecolumns
  • odbc_result_all »
  • PHP Manual
  • Fonctions ODBC
  • Liste les procédures stockées

odbc_procedures

(PHP 4, PHP 5, PHP 7)

odbc_procedures — Liste les procédures stockées

Description

resource odbc_procedures ( resource $connection_id )
resource odbc_procedures ( resource $connection_id , string $qualifier , string $owner , string $name )

Liste les procédures stockées.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

owner

Le propriétaire. Ce paramètre accepte les masques de recherche suivants : "%" pour chercher zéro ou plusieurs caractères, et "_" pour chercher un seul caractère.

name

Le nom. Ce paramètre accepte les masques de recherche suivants : "%" pour chercher zéro ou plusieurs caractères, et "_" pour chercher un seul caractère.

Valeurs de retour

Retourne un identifiant de résultat ODBC contenant les informations ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • PROCEDURE_QUALIFIER
  • PROCEDURE_OWNER
  • PROCEDURE_NAME
  • NUM_INPUT_PARAMS
  • NUM_OUTPUT_PARAMS
  • NUM_RESULT_SETS
  • REMARKS
  • PROCEDURE_TYPE


Affiche le résultat sous la forme d'une table HTML

  • « odbc_procedures
  • odbc_result »
  • PHP Manual
  • Fonctions ODBC
  • Affiche le résultat sous la forme d'une table HTML

odbc_result_all

(PHP 4, PHP 5, PHP 7)

odbc_result_all — Affiche le résultat sous la forme d'une table HTML

Description

int odbc_result_all ( resource $result_id [, string $format ] )

Affiche toutes les lignes d'un résultat. L'affichage se fait au format HTML.

Liste de paramètres

result_id

L'identifiant de résultat.

format

Permet de modifier l'aspect global de la table.

Valeurs de retour

Retourne le nombre de lignes du résultat, ou FALSE si une erreur survient.


Lit un champ de résultat UODBC

  • « odbc_result_all
  • odbc_rollback »
  • PHP Manual
  • Fonctions ODBC
  • Lit un champ de résultat UODBC

odbc_result

(PHP 4, PHP 5, PHP 7)

odbc_result — Lit un champ de résultat UODBC

Description

mixed odbc_result ( resource $result_id , mixed $field )

Lit un champ de résultat UODBC.

Liste de paramètres

result_id

Une ressource ODBC.

field

Le nom du champ à récupérer. Peut être aussi bien un entier, contenant le numéro de colonne du champ, dans le résultat, ou bien une chaîne de caractères, qui représente le nom du champ.

Valeurs de retour

Retourne le contenu du champ, FALSE si une erreur survient, NULL pour les données NULL, ou TRUE pour des données binaires.

Exemples

Le premier appel à odbc_result() retourne la valeur du troisième champ de la ligne courante du résultat result_id. Le deuxième appel à odbc_result() retourne la valeur du troisième champ dont le nom est "val" de la ligne courante du résultat result_id. Une erreur survient si le paramètre de colonne est inférieur à 1, ou dépasse le nombre de colonnes du résultat. De la même manière, une erreur survient si le nom du champ passé ne correspond à aucun champ dans le résultat.

Exemple #1 Exemple avec odbc_result()

<?php
$item_3   = odbc_result($Query_ID, 3);
$item_val = odbc_result($Query_ID, "val");
?>

Notes

Les index de champs commencent à 1. Pour plus d'informations sur la façon de lire des colonnes de type binaire ou long, reportez-vous à odbc_binmode() et odbc_longreadlen().


Annule une transaction

  • « odbc_result
  • odbc_setoption »
  • PHP Manual
  • Fonctions ODBC
  • Annule une transaction

odbc_rollback

(PHP 4, PHP 5, PHP 7)

odbc_rollback — Annule une transaction

Description

bool odbc_rollback ( resource $connection_id )

Annule toutes les transactions sur la connexion connection_id.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Modifie les paramètres ODBC

  • « odbc_rollback
  • odbc_specialcolumns »
  • PHP Manual
  • Fonctions ODBC
  • Modifie les paramètres ODBC

odbc_setoption

(PHP 4, PHP 5, PHP 7)

odbc_setoption — Modifie les paramètres ODBC

Description

bool odbc_setoption ( resource $id , int $function , int $option , int $param )

odbc_setoption() donne accès aux options ODBC pour une connexion particulière ou un résultat de requête. Elle a été écrite pour aider à la résolution de problèmes liés aux pilotes ODBC récalcitrants. Vous aurez sûrement à utiliser odbc_setoption() si vous êtes un programmeur ODBC et que vous comprenez les divers effets des options disponibles. Vous aurez aussi besoin d'un bon manuel de référence pour comprendre les options et leur usage. Différentes versions de pilotes supportent différentes versions d'options.

Étant donné que les effets peuvent varier d'un pilote à l'autre, l'utilisation de odbc_setoption() dans des scripts voués à être livrés au public est très fortement déconseillée. De plus, certaines options ODBC ne sont pas disponibles car elles doivent être fixées avant l'établissement de la connexion. Cependant, si dans un cas bien spécifique, odbc_setoption() vous permet d'utiliser PHP sans que votre patron ne vous pousse à utiliser un produit commercial, alors cela n'a pas d'importance.

Liste de paramètres

id

Un identifiant de connexion, ou un identifiant de résultat, pour lequel vous souhaitez modifier des options. Pour SQLSetConnectOption(), c'est un identifiant de connexion. Pour SQLSetStmtOption(), c'est un identifiant de résultat.

function

Fonction ODBC à utiliser. La valeur doit être de 1 pour utiliser SQLSetConnectOption() et 2 pour SQLSetStmtOption().

option

L'option à définir.

param

La valeur pour l'option donnée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec odbc_setoption()

<?php
// 1. L'option 102 de SQLSetConnectOption() est SQL_AUTOCOMMIT.
// 1 de SQL_AUTOCOMMIT est SQL_AUTOCOMMIT_ON.
//    Cet exemple a le même effet que
//    odbc_autocommit($conn, true);

odbc_setoption($conn, 1, 102, 1);

// 2. Option 0 de SQLSetStmtOption() est SQL_QUERY_TIMEOUT.
//    Cet exemple fixe le délai d'expiration à 30 secondes.

$result = odbc_prepare($conn, $sql);
odbc_setoption($result, 2, 0, 30);
odbc_execute($result);
?>


Retourne l'ensemble optimal de colonnes

  • « odbc_setoption
  • odbc_statistics »
  • PHP Manual
  • Fonctions ODBC
  • Retourne l'ensemble optimal de colonnes

odbc_specialcolumns

(PHP 4, PHP 5, PHP 7)

odbc_specialcolumns — Retourne l'ensemble optimal de colonnes

Description

resource odbc_specialcolumns ( resource $connection_id , int $type , string $qualifier , string $owner , string $table , int $scope , int $nullable )

Retourne soit l'ensemble optimal de colonnes qui identifie de façon unique une ligne d'une table, ou les colonnes qui sont automatiquement mises à jour lorsqu'un des valeurs de la ligne est mise à jour par une transaction.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

type
Lorsque le type est SQL_BEST_ROWID, odbc_specialcolumns() retourne la ou les colonnes qui permettent de repérer uniquement chaque ligne d'une table. Lorsque le type est SQL_ROWVER, odbc_specialcolumns() retourne la colonne ou les colonnes de la table spécifiée, s'il y en a, elles sont automatiquement mises à jour par les données sources lorsque chaque valeur de la ligne est mise à jour par n'importe quelle transaction.
qualifier

Le qualifieur.

owner

Le propriétaire.

table

La table.

scope

Le scope, qui ordonne le jeu de résultats.

nullable

L'option nullable.

Valeurs de retour

Retourne la ressource de résultat ODBC ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • SCOPE
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • PRECISION
  • LENGTH
  • SCALE
  • PSEUDO_COLUMN


Calcul des statistiques sur une table

  • « odbc_specialcolumns
  • odbc_tableprivileges »
  • PHP Manual
  • Fonctions ODBC
  • Calcul des statistiques sur une table

odbc_statistics

(PHP 4, PHP 5, PHP 7)

odbc_statistics — Calcul des statistiques sur une table

Description

resource odbc_statistics ( resource $connection_id , string $qualifier , string $owner , string $table_name , int $unique , int $accuracy )

Calcul des statistiques sur une table.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

owner

Le propriétaire.

table_name

Le nom de la table.

unique

L'attribut unique.

accuracy

L'attribut accuracy.

Valeurs de retour

Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • NON_UNIQUE
  • INDEX_QUALIFIER
  • INDEX_NAME
  • TYPE
  • SEQ_IN_INDEX
  • COLUMN_NAME
  • COLLATION
  • CARDINALITY
  • PAGES
  • FILTER_CONDITION

Le résultat est ordonné par NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME et SEQ_IN_INDEX.


Liste les tables et leurs privilèges

  • « odbc_statistics
  • odbc_tables »
  • PHP Manual
  • Fonctions ODBC
  • Liste les tables et leurs privilèges

odbc_tableprivileges

(PHP 4, PHP 5, PHP 7)

odbc_tableprivileges — Liste les tables et leurs privilèges

Description

resource odbc_tableprivileges ( resource $connection_id , string $qualifier , string $owner , string $name )

Liste les tables et leurs privilèges.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

owner

Le propriétaire. Acceptent des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

name

Le nom. Acceptent des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

Valeurs de retour

Retourne un identifiant de résultat ODBC ou FALSE si une erreur survient.

Le résultat possède les colonnes suivantes :

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE

Le résultat est ordonné par TABLE_QUALIFIER, TABLE_OWNER et TABLE_NAME.


Liste les tables d'une source

  • « odbc_tableprivileges
  • PDO »
  • PHP Manual
  • Fonctions ODBC
  • Liste les tables d'une source

odbc_tables

(PHP 4, PHP 5, PHP 7)

odbc_tables — Liste les tables d'une source

Description

resource odbc_tables ( resource $connection_id [, string $qualifier [, string $owner [, string $name [, string $types ]]]] )

Liste les tables d'une source.

Pour supporter les énumérations de qualificateurs propriétaires et types de table, la sémantique suivante pour les paramètres qualifier, owner, name et table_type est disponible :

  • Si qualifier est un signe de pourcentage (%), et owner et name sont des chaînes vides, alors le résultat contient la liste des qualifiés valides pour la source (toutes les colonnes hormis TABLE_QUALIFIER contiennent NULL).
  • Si owner est un signe de pourcentage (%), et qualifier et name sont des chaînes vides, alors le résultat contient la liste des propriétaires de la source (toutes les colonnes hormis TABLE_OWNER contiennent NULL).
  • Si table_type est un signe de pourcentage (%), et qualifier, owner et name sont des chaînes vides, alors le résultat contient la liste des types de tables de la source (toutes les colonnes hormis TABLE_TYPE contiennent NULL).

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

qualifier

Le qualifieur.

owner

Le propriétaire. Accepte des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

name

Le nom. Accepte des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

types

Si table_type n'est pas une chaîne vide, il doit contenir une liste de valeurs, séparées par des virgules, qui représentent les types recherchés. Chaque valeur peut être insérée entre guillemets simples ('), ou sans guillemets. Par exemple, "'TABLE','VIEW'" ou "TABLE, VIEW". Si la source de données ne supporte pas un type de table donné, odbc_tables() ne retournera aucun résultat pour ce type.

Valeurs de retour

Retourne un identifiant de résultat ODBC contenant les informations ou FALSE si une erreur survient.

Le résultat contient les colonnes suivantes :

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • TABLE_TYPE
  • REMARKS

Le résultat est ordonné grâce aux options TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER et TABLE_NAME.

Voir aussi

  • odbc_tableprivileges() - Liste les tables et leurs privilèges


PHP Data Objects

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Connexions et gestionnaire de connexion
  • Transactions et validation automatique (autocommit)
  • Requêtes préparées et procédures stockées
  • Les erreurs et leur gestion
  • Les gros objets (LOB)
  • PDO — La classe PDO
    • PDO::beginTransaction — Démarre une transaction
    • PDO::commit — Valide une transaction
    • PDO::__construct — Crée une instance PDO qui représente une connexion à la base
    • PDO::errorCode — Retourne le SQLSTATE associé avec la dernière opération sur la base de données
    • PDO::errorInfo — Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données
    • PDO::exec — Exécute une requête SQL et retourne le nombre de lignes affectées
    • PDO::getAttribute — Récupère un attribut d'une connexion à une base de données
    • PDO::getAvailableDrivers — Retourne la liste des pilotes PDO disponibles
    • PDO::inTransaction — Vérifie si nous sommes dans une transaction
    • PDO::lastInsertId — Retourne l'identifiant de la dernière ligne insérée ou la valeur d'une séquence
    • PDO::prepare — Prépare une requête à l'exécution et retourne un objet
    • PDO::query — Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement
    • PDO::quote — Protège une chaîne pour l'utiliser dans une requête SQL PDO
    • PDO::rollBack — Annule une transaction
    • PDO::setAttribute — Configure un attribut PDO
  • PDOStatement — La classe PDOStatement
    • PDOStatement::bindColumn — Lie une colonne à une variable PHP
    • PDOStatement::bindParam — Lie un paramètre à un nom de variable spécifique
    • PDOStatement::bindValue — Associe une valeur à un paramètre
    • PDOStatement::closeCursor — Ferme le curseur, permettant à la requête d'être de nouveau exécutée
    • PDOStatement::columnCount — Retourne le nombre de colonnes dans le jeu de résultats
    • PDOStatement::debugDumpParams — Détaille une commande préparée SQL
    • PDOStatement::errorCode — Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête
    • PDOStatement::errorInfo — Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête
    • PDOStatement::execute — Exécute une requête préparée
    • PDOStatement::fetch — Récupère la ligne suivante d'un jeu de résultats PDO
    • PDOStatement::fetchAll — Retourne un tableau contenant toutes les lignes du jeu d'enregistrements
    • PDOStatement::fetchColumn — Retourne une colonne depuis la ligne suivante d'un jeu de résultats
    • PDOStatement::fetchObject — Récupère la prochaine ligne et la retourne en tant qu'objet
    • PDOStatement::getAttribute — Récupère un attribut de requête
    • PDOStatement::getColumnMeta — Retourne les métadonnées pour une colonne d'un jeu de résultats
    • PDOStatement::nextRowset — Avance à la prochaine ligne de résultats d'un gestionnaire de lignes de résultats multiples
    • PDOStatement::rowCount — Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()
    • PDOStatement::setAttribute — Définit un attribut de requête
    • PDOStatement::setFetchMode — Définit le mode de récupération par défaut pour cette requête
  • PDOException — La classe PDOException
  • Pilotes PDO
    • CUBRID (PDO) — Fonctions CUBRID (PDO_CUBRID)
    • MS SQL Server (PDO) — Microsoft SQL Server et Fonctions Sybase (PDO_DBLIB)
    • Firebird (PDO) — Fonctions Firebird (PDO_FIREBIRD)
    • IBM (PDO) — Fonctions IBM (PDO_IBM)
    • Informix (PDO) — Fonctions Informix (PDO_INFORMIX)
    • MySQL (PDO) — Fonctions MySQL (PDO_MYSQL)
    • MS SQL Server (PDO) — Fonctions Microsoft SQL Server (PDO_SQLSRV)
    • Oracle (PDO) — Fonctions Oracle (PDO_OCI)
    • ODBC et DB2 (PDO) — Fonctions ODBC et DB2 (PDO_ODBC)
    • PostgreSQL (PDO) — Fonctions PostgreSQL (PDO_PGSQL)
    • SQLite (PDO) — Fonctions SQLite (PDO_SQLITE)
    • 4D (PDO)


Introduction

L'extension PHP Data Objects (PDO) définit une excellente interface pour accéder à une base de données depuis PHP. Chaque pilote de base de données implémenté dans l'interface PDO peut utiliser des fonctionnalités spécifiques de chacune des bases de données en utilisant des extensions de fonctions. Notez que vous ne pouvez exécuter aucune fonction de base de données en utilisant l'extension PDO par elle-même ; vous devez utiliser un driver PDO spécifique à la base de données pour accéder au serveur de base de données.

PDO fournit une interface d'abstraction à l'accès de données, ce qui signifie que vous utilisez les mêmes fonctions pour exécuter des requêtes ou récupérer les données quelque soit la base de données utilisée. PDO ne fournit pas une abstraction de base de données : il ne réécrit pas le SQL, n'émule pas des fonctionnalités manquantes. Vous devriez utiliser une interface d'abstraction complète si vous avez besoin de cela.

PDO est fourni avec PHP 5.1 et est disponible en tant qu'extension PECL pour PHP 5.0 ; PDO requiert les nouvelles fonctionnalités OO fournies par PHP 5 et donc, ne fonctionne pas avec les versions antérieures de PHP.


Installation

PHP 5.1 et supérieur sur les systèmes Unix

  1. PDO et le pilote PDO_SQLITE sont activés par défaut depuis PHP 5.1.0. Vous devez activer le pilote PDO de la base de données de votre choix ; consultez la documentation pour les pilotes spécifiques à votre base de données pour plus d'informations.

    Note:

    Notez que lors de la compilation de PDO comme extension partagée (non recommandé), alors tous les pilotes PDO doivent être chargés après le chargement de PDO.

  2. Lors de l'installation de PDO comme module partagé, le fichier php.ini doit être mis à jour afin de charger l'extension PDO automatiquement lorsque PHP entre en fonctionnement. Vous devez également y activer les pilotes spécifiques à votre base de données ; assurez-vous que ces pilotes seront listés après la ligne pdo.so, vu que PDO doit être initialisé avant le chargement des extensions spécifiques aux bases de données. Si vous compilez PDO et les extensions relatives aux bases de données de façon statique, vous pouvez ignorer cette étape.

    extension=pdo.so

Utilisateurs de Windows

  1. PDO ainsi que tous les pilotes principaux interagissent avec PHP en tant qu'extensions partagées, et ont tout simplement besoin d'être activés en éditant le fichier php.ini :

    extension=php_pdo.dll

    Note:

    Cette étape n'est plus nécessaire depuis PHP 5.3, PDO ne requiert plus de DLL.

  2. Ensuite, choisissez les autres fichiers DLL spécifiques à votre base de données et utilisez soit la fonction dl() pour les charger au moment de l'exécution ou activez-les dans le fichier php.ini en-dessous de la ligne php_pdo.dll. Par exemple :

    extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_informix.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll

    Ces librairies DDLs doivent exister dans le dossier système extension_dir.

Note:

Gardez à l'esprit qu'après modification de votre php.ini, vous devez redémarrer PHP pour que vos nouvelles directives de configuration prennent effet.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration PDO
Nom | Défaut | Modifiable | Historique
pdo.dsn.* |  | php.ini seulement |

Voici un éclaircissement sur l'utilisation des directives de configuration.

pdo.dsn.* string

Définit un alias DSN. Voyez PDO::__construct() pour une explication complète.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Avertissement

PDO utilise les constantes de classe depuis PHP 5.1. Les versions antérieures utilisent les constantes globales sous la forme PDO_PARAM_BOOL.

PDO::PARAM_BOOL (entier)
Représente le type de données booléen.
PDO::PARAM_NULL (entier)
Représente le type de données NULL SQL.
PDO::PARAM_INT (entier)
Représente le type de données INTEGER SQL.
PDO::PARAM_STR (entier)
Représente les types de données CHAR, VARCHAR ou les autres types de données sous forme de chaîne de caractères SQL.
PDO::PARAM_LOB (entier)
Représente le type de données "objet large" SQL.
PDO::PARAM_STMT (entier)
Représente un type de jeu de résultats. N'est actuellement pas pris en charge par tous les pilotes.
PDO::PARAM_INPUT_OUTPUT (entier)
Spécifie que le paramètre est un paramètre INOUT pour une procédure stockée. Vous devez utiliser l'opérateur OR avec un type de données explicite PDO::PARAM_*.
PDO::FETCH_LAZY (entier)
Spécifie que la méthode de récupération doit retourner chaque ligne en tant qu'objet PDORow avec les noms de variables correspondants aux noms des colonnes retournées dans le jeu de résultats. PDO::FETCH_LAZY crée les noms des variables de l'objet uniquement lorsqu'ils sont utilisés. Non valide dans la méthode PDOStatement::fetchAll().
PDO::FETCH_ASSOC (entier)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par les noms des colonnes comme elles sont retournées dans le jeu de résultats correspondant. Si le jeu de résultats contient de multiples colonnes avec le même nom, PDO::FETCH_ASSOC retourne une seule valeur par nom de colonne.
PDO::FETCH_NAMED (entier)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par les noms des colonnes comme elles sont retournées dans le jeu de résultats correspondant. Si le jeu de résultats contient de multiples colonnes avec le même nom, PDO::FETCH_NAMED retourne un tableau de valeurs par nom de colonne.
PDO::FETCH_NUM (entier)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par le numéro des colonnes comme elles sont retournées dans le jeu de résultats correspondant, en commençant à 0.
PDO::FETCH_BOTH (entier)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par les noms des colonnes ainsi que leurs numéros, comme elles sont retournées dans le jeu de résultats correspondant, en commençant à 0.
PDO::FETCH_OBJ (entier)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un objet avec les noms de propriétés correspondant aux noms des colonnes comme elles sont retournées dans le jeu de résultats.
PDO::FETCH_BOUND (entier)
Spécifie que la méthode de récupération doit retourner TRUE et assigner les valeurs des colonnes du jeu de résultats aux variables PHP auxquelles elles sont liées avec la méthode PDOStatement::bindParam() ou la méthode PDOStatement::bindColumn().
PDO::FETCH_COLUMN (entier)
Spécifie que la méthode de récupération doit retourner uniquement une seule colonne demandée depuis la prochaine ligne du jeu de résultats.
PDO::FETCH_CLASS (entier)
Spécifie que la méthode de récupération doit retourner une nouvelle instance de la classe demandée, liant les colonnes aux membres de la classe.

Note: La méthode magique __set() est appelée si le membre n'existe pas dans la classe utilisée.

PDO::FETCH_INTO (entier)
Spécifie que la méthode de récupération doit mettre à jour une instance existante de la classe demandée, liant les colonnes aux propriétés nommées dans la classe.
PDO::FETCH_FUNC (entier)
Permet de personnaliser la façon dont sont traitées les données à la volée (uniquement valide dans la méthode PDOStatement::fetchAll()).
PDO::FETCH_GROUP (entier)
Groupe le résultat par les valeurs. Habituellement combiné avec PDO::FETCH_COLUMN ou PDO::FETCH_KEY_PAIR.
PDO::FETCH_UNIQUE (entier)
Récupère uniquement les valeurs uniques.
PDO::FETCH_KEY_PAIR (entier)
Récupère un résultat sur deux colonnes dans un tableau où la première colonne est la clé, et la seconde colonne est la valeur. Disponible depuis PHP 5.2.3.
PDO::FETCH_CLASSTYPE (entier)
Détermine le nom de la classe depuis la valeur de la première colonne.
PDO::FETCH_SERIALIZE (entier)
Identique à PDO::FETCH_INTO, mais l'objet est fourni sous la forme d'une chaîne linéarisée. Disponible depuis PHP 5.1.0. Depuis PHP 5.3.0, le constructeur de la classe n'est jamais appelé si ce drapeau est défini.
PDO::FETCH_PROPS_LATE (entier)
Appelle le constructeur avant de définir les propriétés. Disponible depuis PHP 5.2.0
PDO_ATTR_AUTOCOMMIT (entier)
Si la valeur vaut FALSE, PDO tente de désactiver l'autovalidation lorsque la connexion commence une transaction.
PDO::ATTR_PREFETCH (entier)
Définir la taille de la prérécupération vous permet d'accroître les performances de votre application. Toutes les combinaisons bases de données / pilotes ne prennent pas en charge cette fonctionnalité. Ceci accroît les performances au détriment de la consommation de mémoire vive.
PDO::ATTR_TIMEOUT (entier)
Définit la valeur d'attente en secondes pour les communications avec la base de données.
PDO::ATTR_ERRMODE (entier)
Voir la section sur les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.
PDO::ATTR_SERVER_VERSION (entier)
Attribut en lecture seule ; il retourne des informations sur la version de la base de données à laquelle PDO est connecté.
PDO::ATTR_CLIENT_VERSION (entier)
Attribut en lecture seule ; il retourne des informations sur la version de la librairie cliente utilisée par PDO.
PDO::ATTR_SERVER_INFO (entier)
Attribut en lecture seule ; il retourne quelques méta-informations sur le serveur de base de données auquel PDO est connecté.
PDO::ATTR_CONNECTION_STATUS (entier)
PDO::ATTR_CASE (entier)
Force les noms des colonnes dans une casse spécifiée par les constantes PDO::CASE_*.
PDO::ATTR_CURSOR_NAME (entier)
Récupère ou définit le nom à utiliser pour un curseur. Très utile lors de l'utilisation de curseurs défilables et des mises à jour positionnées.
PDO::ATTR_CURSOR (entier)
Sélectionne le type de curseur. PDO supporte actuellement soit PDO::CURSOR_FWDONLY, soit PDO::CURSOR_SCROLL. Conservez PDO::CURSOR_FWDONLY tant que vous savez que vous avez besoin d'un curseur défilable.
PDO::ATTR_DRIVER_NAME (chaîne de caractères)
Retourne le nom du pilote.

Exemple #1 Utilisation de PDO::ATTR_DRIVER_NAME

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
   echo "Utilisation de mysql ; fait quelque chose de spécifique à mysql ici\n";
}
?>

PDO::ATTR_ORACLE_NULLS (entier)
Convertit les chaînes vides en valeurs NULL SQL dans les données récupérées.
PDO::ATTR_PERSISTENT (entier)
Demande une connexion persistante, plutôt que de créer une nouvelle connexion. Voir les connexions et le gestionnaire de connexion pour plus d'informations sur cet attribut.
PDO::ATTR_STATEMENT_CLASS (entier)
PDO::ATTR_FETCH_CATALOG_NAMES (entier)
Ajoute le contenu du catalogue de noms dans chaque nom de colonne retourné dans le jeu de résultat. Le catalogue de noms et les noms de colonnes sont séparés par un point (.). Le prise en charge de cet attribut n'est faite par tous les pilotes ; il peut ne pas être disponible pour votre pilote.
PDO::ATTR_FETCH_TABLE_NAMES (entier)
Ajoute le contenu de la table de noms dans chaque nom de colonne retourné dans le jeu de résultats. La table de noms et les noms de colonnes sont séparés par un point (.). La prise en charge de cet attribut n'est pas faite par tous les pilotes ; il peut ne pas être disponible pour votre pilote.
PDO::ATTR_STRINGIFY_FETCHES (entier)
PDO::ATTR_MAX_COLUMN_LEN (entier)
PDO::ATTR_DEFAULT_FETCH_MODE (entier)
Disponible depuis PHP 5.2.0.
PDO::ATTR_EMULATE_PREPARES (entier)
Disponible depuis PHP 5.1.3.
PDO::ERRMODE_SILENT (entier)
N'envoie pas d'erreur ni d'exception si une erreur survient. Le développeur doit explicitement vérifier les erreurs. C'est le mode par défaut. Voir les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.
PDO::ERRMODE_WARNING (entier)
Envoie une erreur de niveau E_WARNING si une erreur survient. Voir les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.
PDO::ERRMODE_EXCEPTION (entier)
Lance une exception PDOException si une erreur survient. Voir les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.
PDO::CASE_NATURAL (entier)
Laisse les noms de colonnes comme retournés par le pilote de base de données.
PDO::CASE_LOWER (entier)
Force les noms de colonnes en minuscules.
PDO::CASE_UPPER (entier)
Force les noms des colonnes en majuscules.
PDO::NULL_NATURAL (entier)
PDO::NULL_EMPTY_STRING (entier)
PDO::NULL_TO_STRING (entier)
PDO::FETCH_ORI_NEXT (entier)
Récupère la prochaine ligne d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::FETCH_ORI_PRIOR (entier)
Récupère la ligne précédente d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::FETCH_ORI_FIRST (entier)
Récupère la première ligne d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::FETCH_ORI_LAST (entier)
Récupère la dernière ligne d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::FETCH_ORI_ABS (entier)
Récupère la ligne demandée par un numéro de ligne d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::FETCH_ORI_REL (entier)
Récupère la ligne demandée par une position relative à la position courante du curseur d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::CURSOR_FWDONLY (entier)
Crée un objet PDOStatement avec un curseur uniquement de retour. C'est le choix par défaut pour le curseur, car il est rapide et l'accès aux données est commun pour les masques en PHP.
PDO::CURSOR_SCROLL (entier)
Crée un objet PDOStatement avec un curseur défilable. Passez la constante PDO::FETCH_ORI_* pour contrôler les lignes récupérées du jeu de résultats.
PDO::ERR_NONE (chaîne de caractères)
Correspond à SQLSTATE '00000', ce qui signifie que la requête SQL a réussi sans erreur, ni avertissement. Cette constante est utile lorsque vous utilisez PDO::errorCode() ou PDOStatement::errorCode() pour déterminer si une erreur est survenue. Cependant, vous devez déjà savoir si c'est le cas en examinant le code retourné par la méthode qui a lancé l'erreur.
PDO::PARAM_EVT_ALLOC (entier)
Alloue un événement
PDO::PARAM_EVT_FREE (entier)
Supprime un événement
PDO::PARAM_EVT_EXEC_PRE (entier)
Toujours faire un déclencheur avant l'exécution d'une requête préparée.
PDO::PARAM_EVT_EXEC_POST (entier)
Toujours effectuer un déclencheur de sous-séquence avant l'exécution d'une requête préparée.
PDO::PARAM_EVT_FETCH_PRE (entier)
Toujours effectuer un déclencheur avant de récupérer un résultat d'un jeu de résultats.
PDO::PARAM_EVT_FETCH_POST (entier)
Toujours effectuer un déclencheur de sous-séquence avant de récupérer un résultat d'un jeu de résultats.
PDO::PARAM_EVT_NORMALIZE (entier)
Toujours effectuer un déclencheur lors de l'enregistrement des paramètres liés permettant au pilote de normaliser le nom des paramètres.


Connexions et gestionnaire de connexion

Les connexions sont établies en créant des instances de la classe de base de PDO. Peu importe quel pilote vous voulez utiliser ; vous utilisez toujours le nom de la classe PDO. Le constructeur accepte des paramètres pour spécifier la source de la base de données (connue en tant que DSN) et optionnellement, le nom d'utilisateur et le mot de passe (s'il y en a un).

Exemple #1 Connexion à MySQL

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

S'il y a des erreurs de connexion, un objet PDOException est lancé. Vous pouvez attraper cette exception si vous voulez gérer cette erreur, ou laisser le gestionnaire global d'exception défini via la fonction set_exception_handler() la traiter.

Exemple #2 Gestion des erreurs de connexion

<?php
try {
    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
    foreach($dbh->query('SELECT * from FOO') as $row) {
        print_r($row);
    }
    $dbh = null;
} catch (PDOException $e) {
    print "Erreur !: " . $e->getMessage() . "<br/>";
    die();
}
?>

Avertissement

Si votre application n'attrape pas les exceptions lancées depuis le constructeur PDO, l'action par défaut du moteur zend est de terminer le script et d'afficher une trace. Cette trace devrait révéler des détails complets sur la connexion à la base de données, incluant le nom d'utilisateur et le mot de passe. Il est donc de votre responsabilité d'attraper cette exception, soit explicitement (via l'instruction catch) ou implicitement via la fonction set_exception_handler().

Lorsque la connexion à la base de données a réussi, une instance de la classe PDO est retournée à votre script. La connexion est active tant que l'objet PDO l'est. Pour clore la connexion, vous devez détruire l'objet en vous assurant que toutes ses références sont effacées. Vous pouvez faire cela en assignant NULL à la variable gérant l'objet. Si vous ne le faites pas explicitement, PHP fermera automatiquement la connexion lorsque le script arrivera à la fin.

Exemple #3 Fermeture d'une connexion

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// utiliser la connexion ici

// et maintenant, fermez-la !
$dbh = null;
?>

Beaucoup d'applications web utilisent des connexions persistantes aux serveurs de base de données. Les connexions persistantes ne sont pas fermées à la fin du script, mais sont mises en cache et réutilisées lorsqu'un autre script demande une connexion en utilisant les mêmes paramètres. Le cache des connexions persistantes vous permet d'éviter d'établir une nouvelle connexion à chaque fois qu'un script doit accéder à une base de données, rendant l'application web plus rapide.

Exemple #4 Connexions persistantes

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
    PDO::ATTR_PERSISTENT => true
));
?>

Note:

Si vous souhaitez utiliser des connexions persistantes, vous devez utiliser la valeur PDO::ATTR_PERSISTENT dans le tableau des options du pilote passé au constructeur PDO. Si vous définissez cet attribut avec la méthode PDO::setAttribute() après l'instanciation de l'objet, le pilote n'utilisera pas les connexions persistantes.

Note:

Si vous utilisez le pilote PDO ODBC et que votre librairie ODBC prend en charge le bassin de connexion ODBC (unixODBC et Windows le supportent tous les deux ; peut être plus), alors il est recommandé de ne pas utiliser les connexions persistantes PDO, mais plutôt laisser le bassin de connexion ODBC mettre en cache les connexions. Le bassin de connexion ODBC est partagé avec les autres modules dans le processus ; si PDO met en cache la connexion, alors cette connexion ne sera jamais retournée par le bassin de connexion ODBC, faisant que plusieurs connexions sont créées pour les autres modules.


Transactions et validation automatique (autocommit)

Maintenant que vous êtes connecté via PDO, vous devez comprendre comment PDO gère les transactions avant d'exécuter des requêtes. Si vous n'avez jamais utilisé les transactions, elles offrent 4 fonctionnalités majeures : Atomicité, Consistance, Isolation et Durabilité (ACID). En d'autres termes, n'importe quel travail mené à bien dans une transaction, même s'il est effectué par étapes, est garanti d'être appliqué à la base de données sans risque, et sans interférence pour les autres connexions, quand il est validé. Le travail des transactions peut également être automatiquement annulé à votre demande (en supposant que vous n'avez encore rien validé), ce qui rend la gestion des erreurs bien plus simple dans vos scripts.

Les transactions sont typiquement implémentées pour appliquer toutes vos modifications en une seule fois ; ceci a le bel effet d'éprouver radicalement l'efficacité de vos mises à jour. En d'autres termes, les transactions rendent vos scripts plus rapides et potentiellement plus robustes (vous devez les utiliser correctement pour jouir de ces bénéfices).

Malheureusement, toutes les bases de données ne prennent pas en charge les transactions, donc PDO doit s'exécuter en mode "autocommit" lorsque vous ouvrez pour la première fois la connexion. Le mode "autocommit" signifie que toutes les requêtes que vous exécutez ont leurs transactions implicites, si la base de données le prend en charge ou aucune transaction si la base de données ne les prend pas en charge. Si vous avez besoin d'une transaction, vous devez utiliser la méthode PDO::beginTransaction() pour l'initialiser. Si le pilote utilisé ne prend pas en charge les transactions, une exception PDO sera lancée (en accord avec votre gestionnaire d'erreurs : ceci est toujours une erreur sérieuse). Une fois que vous êtes dans une transaction, vous devez utiliser la fonction PDO::commit() ou la fonction PDO::rollBack() pour la terminer, suivant le succès de votre code durant la transaction.

Avertissement

PDO ne vérifie la possibilité d'utiliser des transactions qu'au niveau du pilote. Si certaines conditions à l'exécution empêchent les transactions de fonctionner, PDO::beginTransaction() retournera tout de même TRUE sans erreur si le serveur accepte de démarrer une transaction.

Un exemple serait d'utiliser des transactions sur des tables au format MyISAM du serveur de base de données MySQL.

Lorsque le script se termine ou lorsque la connexion est sur le point de se fermer, si vous avez une transaction en cours, PDO l'annulera automatiquement. Ceci est une mesure de sécurité afin de garantir l'intégrité de vos données dans le cas où le script se termine d'une façon inattendue. Si vous ne validez pas explicitement la transaction, alors, on présume que quelque chose s'est mal passé et l'annulation de la transaction intervient afin de garantir la sécurité de vos données.

Avertissement

L'annulation automatique intervient si vous avez initialisé la transaction via PDO::beginTransaction(). Si vous avez manuellement exécuté une requête qui commence une transaction, PDO n'a aucun moyen de le savoir et donc, n'annulera pas automatiquement cette transaction si quelque chose s'est mal passé.

Exemple #1 Exécution d'un groupe dans une transaction

Dans l'exemple suivant, supposons que nous allons créer un jeu d'entrées pour un nouvel employé, dont le numéro d'ID sera 23. En plus des données de base sur cette personne, nous devons également lui enregistrer son salaire. Il est très simple d'effectuer deux mises à jour séparées, mais en les enfermant dans les appels des fonctions PDO::beginTransaction() et PDO::commit(), nous garantissons que personne ne pourra voir ces modifications tant qu'elles ne seront pas complètes. Si quelque chose tourne mal, le bloc de capture annulera toutes les modifications effectuées depuis le début de la transaction et affichera un message d'erreur.

<?php
try {
  $dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
      array(PDO::ATTR_PERSISTENT => true));
  echo "Connecté\n";
} catch (Exception $e) {
  die("Impossible de se connecter : " . $e->getMessage());
}

try {
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $dbh->beginTransaction();
  $dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
  $dbh->exec("insert into salarychange (id, amount, changedate)
      values (23, 50000, NOW())");
  $dbh->commit();

} catch (Exception $e) {
  $dbh->rollBack();
  echo "Failed: " . $e->getMessage();
}
?>

Vous n'êtes pas limités dans le nombre de mises à jour dans une transaction ; vous pouvez également y effectuer des requêtes complexes et bien sûr, utiliser ces informations pour construire d'autres mises à jour et requêtes ; durant l'activité de la transaction, vous êtes sûrs que personne d'autre ne peut effectuer des modifications alors que vous êtes au milieu de vos modifications. Pour plus d'informations sur les transactions, reportez-vous à la documentation fournie par votre base de données.


Requêtes préparées et procédures stockées

La plupart des bases de données supportent le concept des requêtes préparées. Qu'est-ce donc ? Vous pouvez les voir comme une sorte de modèle compilé pour le SQL que vous voulez exécuter, qui peut être personnalisé en utilisant des variables en guise de paramètres. Les requêtes préparées offrent deux fonctionnalités essentielles :

  • La requête ne doit être analysée (ou préparée) qu'une seule fois, mais peut être exécutée plusieurs fois avec des paramètres identiques ou différents. Lorsque la requête est préparée, la base de données va analyser, compiler et optimiser son plan pour exécuter la requête. Pour les requêtes complexes, ce processus peut prendre assez de temps, ce qui peut ralentir vos applications si vous devez répéter la même requête plusieurs fois avec différents paramètres. En utilisant les requêtes préparées, vous évitez ainsi de répéter le cycle analyse/compilation/optimisation. Pour résumer, les requêtes préparées utilisent moins de ressources et s'exécutent plus rapidement.
  • Les paramètres pour préparer les requêtes n'ont pas besoin d'être entre guillemets ; le pilote gère cela pour vous. Si votre application utilise exclusivement les requêtes préparées, vous pouvez être sûr qu'aucune injection SQL n'est possible (Cependant, si vous construisez d'autres parties de la requête en vous basant sur des entrées utilisateurs, vous continuez à prendre un risque).

Les requêtes préparées sont tellement pratiques que c'est l'unique fonctionnalité que PDO émule pour les pilotes qui ne les prennent pas en charge. Ceci assure de pouvoir utiliser la même technique pour accéder aux données, sans se soucier des capacités de la base de données.

Exemple #1 Insertions répétitives en utilisant les requêtes préparées

Cet exemple effectue une requête INSERT en y substituant un nom et une valeur pour les marqueurs nommés.

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// insertion d'une ligne
$name = 'one';
$value = 1;
$stmt->execute();

// insertion d'une autre ligne avec des valeurs différentes
$name = 'two';
$value = 2;
$stmt->execute();
?>

Exemple #2 Insertions répétées en utilisant des requêtes préparées

Cet exemple effectue une requête INSERT en y substituant un nom et une valeur pour les marqueurs ?.

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

// insertion d'une ligne
$name = 'one';
$value = 1;
$stmt->execute();

// insertion d'une autre ligne avec différentes valeurs
$name = 'two';
$value = 2;
$stmt->execute();
?>

Exemple #3 Récupération des données en utilisant des requêtes préparées

Cet exemple récupère des données basées sur la valeur d'une clé fournie par un formulaire. L'entrée utilisateur est automatiquement échappée, il n'y a donc aucun risque d'attaque par injection SQL.

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) {
  while ($row = $stmt->fetch()) {
    print_r($row);
  }
}
?>

Si le pilote de la base de données le prend en charge, vous pouvez également lier des paramètres aussi bien pour l'entrée que pour la sortie. Les paramètres de sortie sont utilisés typiquement pour récupérer les valeurs d'une procédure stockée. Les paramètres de sortie sont un peu plus complexes à utiliser que les paramètres d'entrée car vous devez savoir la longueur qu'un paramètre donné pourra atteindre lorsque vous le liez. Si la valeur retournée est plus longue que la taille qui vous aurez suggéré, une erreur sera émise.

Exemple #4 Appel d'une procédure stockée avec un paramètre de sortie

<?php
$stmt = $dbh->prepare("CALL sp_returns_string(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);

// Appel de la procédure stockée
$stmt->execute();

print "La procédure a retourné : $return_value\n";
?>

Vous devez également spécifier les paramètres qui gèrent les valeurs aussi bien pour l'entrée que pour la sortie ; la syntaxe est similaire aux paramètres de sortie. Dans le prochain exemple, la chaîne 'Bonjour' est passée à la procédure stockée et lorsqu'elle retourne la valeur, 'Bonjour' est remplacée par la valeur retournée par la procédure.

Exemple #5 Appel d'une procédure stockée avec un paramètre d'entrée/sortie

<?php
$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(?)");
$value = 'hello';
$stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000);

// appel de la procédure stockée
$stmt->execute();

print "La procédure a retourné : $value\n";
?>

Exemple #6 Utilisation invalide de marqueur

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE '%?%'");
$stmt->execute(array($_GET['name']));

// un marqueur doit être utilisé à la place d'une valeur complète
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->execute(array("%$_GET[name]%"));
?>


Les erreurs et leur gestion

PDO vous offre 3 façons différentes de gérer les erreurs afin de mieux s'adapter à votre application.

  • PDO::ERRMODE_SILENT

    C'est le mode par défaut. PDO définit simplement le code d'erreur à inspecter grâce aux méthodes PDO::errorCode() et PDO::errorInfo() sur les objets représentant les requêtes, mais aussi ceux représentant les bases de données ; si l'erreur résulte d'un appel à l'objet représentant la requête, vous pouvez appeler la méthode PDOStatement::errorCode() ou la méthode PDOStatement::errorInfo() sur l'objet. Si l'erreur résulte d'un appel sur l'objet représentant une base de données, vous pouvez également appeler ces deux mêmes méthodes sur l'objet.

  • PDO::ERRMODE_WARNING

    En plus de définir le code d'erreur, PDO émettra un message E_WARNING traditionnel. Cette configuration est utile lors des tests et du débogage, si vous voulez voir le problème sans interrompre l'application.

  • PDO::ERRMODE_EXCEPTION

    En plus de définir le code d'erreur, PDO lancera une exception PDOException et y définit les propriétés afin de représenter le code d'erreur et les informations complémentaires. Cette configuration est également utile lors du débogage, car elle va « contourner » le point critique de votre code, vous montrer rapidement le problème rencontré (souvenez-vous : les transactions sont automatiquement annulées si l'exception fait que votre script se termine).

    Le mode "exception" est également très utile car ainsi, vous pouvez structurer votre gestionnaire d'erreur plus clairement qu'avec les alertes traditionnelles PHP et, ce, avec moins de code que lorsque vous exécutez votre code en mode silence, et que vous vérifiez systématiquement les valeurs retournées après chaque appel à la base de données.

    Voir le chapitre sur les exceptions pour plus d'informations sur les exceptions en PHP.

PDO utilise les codes erreurs SQL-92 SQLSTATE ; chaque pilote PDO est responsable de lier ses codes natifs aux codes SQLSTATE appropriés. La méthode PDO::errorCode() retourne un code SQLSTATE unique. Si vous avez besoin d'informations spécifiques sur l'erreur, PDO vous propose également la méthode PDO::errorInfo() qui retourne un tableau contenant le code SQLSTATE, le code d'erreur spécifique du pilote et la chaîne décrivant l'erreur provenant du pilote.

Exemple #1 Création d'une instance PDO et définition du mode d'erreur

<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Échec lors de la connexion : ' . $e->getMessage();
}

?>

Note:

PDO::__construct() va toujours lancer une exception PDOException si la connexion échoue suivant la configuration de PDO::ATTR_ERRMODE. Les exceptions non attrappées deviennent des erreurs fatales.

Exemple #2 Crée une instance PDO et définit le mode d'erreur depuis le constructeur

<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'googleguy';
$password = 'googleguy';

/*
    L'utilisation des blocs try/catch autour du constructeur est toujours valide
    même si nous définissons le ERRMODE à WARNING sachant que PDO::__construct
    va toujours lancer une exception PDOException si la connexion échoue.
*/
try {
    $dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
} catch (PDOException $e) {
    echo 'Échec de la connexion : ' . $e->getMessage();
    exit;
}

// Ceci fera que PDO lancera une erreur de niveau E_WARNING au lieu d'une exception (lorsque la table n'existe pas)
$dbh->query("SELECT wrongcolumn FROM wrongtable");
?>

L'exemple ci-dessus va afficher :

Warning: PDO::query(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.wrongtable' doesn't exist in
/tmp/pdo_test.php on line 18


Les gros objets (LOB)

À un moment dans votre application, vous pourriez avoir besoin de stocker de grosses données dans votre base de données. « Gros » signifie typiquement des données d'environ 4 ko ou plus, bien que certaines bases de données peuvent gérer plus de 32 ko avant que les données deviennent « grosses ». Les gros objets peuvent être de nature textuelle ou binaire. PDO vous permet de travailler avec ce type de grosses données en utilisant le code type PDO::PARAM_LOB dans vos appels aux fonctions PDOStatement::bindParam() ou PDOStatement::bindColumn(). PDO::PARAM_LOB demande à PDO de transformer les données en un flux que vous pourrez manipuler en utilisant l'API PHP des flux.

Exemple #1 Affichage d'une image depuis une base de données

Cet exemple lie un LOB dans une variable nommée $lob et l'envoie au navigateur en utilisant la fonction fpassthru(). Étant donné qu'un LOB est représenté en un flux, les fonctions comme fgets(), fread() et stream_get_contents() peuvent être utilisées sur ce flux.

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("select contenttype, imagedata from images where id=?");
$stmt->execute(array($_GET['id']));
$stmt->bindColumn(1, $type, PDO::PARAM_STR, 256);
$stmt->bindColumn(2, $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

header("Content-Type: $type");
fpassthru($lob);
?>

Exemple #2 Insertion d'une image dans une base de données

Cet exemple ouvre un fichier et passe le pointeur de fichier à PDO pour l'insérer en tant que LOB. PDO fera son possible pour récupérer le contenu du fichier et l'insérer dans la base de données de la manière la plus efficace possible.

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");
$id = get_new_id(); // fonction pour allouer un nouvel ID

// assumons que nous récupérons un fichier depuis un formulaire
// vous pouvez trouver plus de détails dans la documentation de PHP

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$db->beginTransaction();
$stmt->execute();
$db->commit();
?>

Exemple #3 Insertion d'une image dans une base de données Oracle

Oracle requiert une syntaxe légèrement différente pour y insérer un LOB depuis un fichier. Il est également essentiel d'effectuer votre insertion au sein d'une transaction, sinon, votre nouveau LOB sera inséré avec une longueur de zéro :

<?php
$db = new PDO('oci:', 'scott', 'tiger');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) " .
"VALUES (?, ?, EMPTY_BLOB()) RETURNING imagedata INTO ?");
$id = get_new_id(); // fonction pour allouer un nouvel ID

// assumons que nous récupérons un fichier depuis un formulaire
// vous pouvez trouver plus de détails dans la documentation de PHP

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$stmt->beginTransaction();
$stmt->execute();
$db->commit();
?>


La classe PDO

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

Introduction

Représente une connexion entre PHP et un serveur de base de données.

Synopsis de la classe

PDO {
public __construct ( string $dsn [, string $username [, string $password [, array $options ]]] )
public bool beginTransaction ( void )
public bool commit ( void )
public mixed errorCode ( void )
public array errorInfo ( void )
public int exec ( string $statement )
public mixed getAttribute ( int $attribute )
public static array getAvailableDrivers ( void )
public bool inTransaction ( void )
public string lastInsertId ([ string $name = NULL ] )
public PDOStatement prepare ( string $statement [, array $driver_options = array() ] )
public PDOStatement query ( string $statement )
public string quote ( string $string [, int $parameter_type = PDO::PARAM_STR ] )
public bool rollBack ( void )
public bool setAttribute ( int $attribute , mixed $value )
}

Sommaire

  • PDO::beginTransaction — Démarre une transaction
  • PDO::commit — Valide une transaction
  • PDO::__construct — Crée une instance PDO qui représente une connexion à la base
  • PDO::errorCode — Retourne le SQLSTATE associé avec la dernière opération sur la base de données
  • PDO::errorInfo — Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données
  • PDO::exec — Exécute une requête SQL et retourne le nombre de lignes affectées
  • PDO::getAttribute — Récupère un attribut d'une connexion à une base de données
  • PDO::getAvailableDrivers — Retourne la liste des pilotes PDO disponibles
  • PDO::inTransaction — Vérifie si nous sommes dans une transaction
  • PDO::lastInsertId — Retourne l'identifiant de la dernière ligne insérée ou la valeur d'une séquence
  • PDO::prepare — Prépare une requête à l'exécution et retourne un objet
  • PDO::query — Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement
  • PDO::quote — Protège une chaîne pour l'utiliser dans une requête SQL PDO
  • PDO::rollBack — Annule une transaction
  • PDO::setAttribute — Configure un attribut PDO


Démarre une transaction

  • « PDO
  • PDO::commit »
  • PHP Manual
  • PDO
  • Démarre une transaction

PDO::beginTransaction

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::beginTransaction — Démarre une transaction

Description

public bool PDO::beginTransaction ( void )

PDO::beginTransaction() désactive le mode autocommit. Lorsque l'autocommit est désactivé, les modifications faites sur la base de données via les instances des objets PDO ne sont pas appliquées tant que vous ne mettez pas fin à la transaction en appelant la fonction PDO::commit(). L'appel de PDO::rollBack() annulera toutes les modifications faites à la base de données et remettra la connexion en mode autocommit.

Quelques bases de données, dont MySQL, exécuteront automatiquement un COMMIT lorsqu'une requête de définition de langage de base de données (DDL) comme DROP TABLE ou CREATE TABLE est exécutée dans une transaction. Ce COMMIT implicite vous empêchera d'annuler toutes autres modifications faites dans cette transaction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Annule une transaction

L'exemple suivant commence une transaction et exécute deux requêtes qui modifient la base de données avant d'annuler les modifications. Sur MySQL, cependant, la requête DROP TABLE validera automatiquement la transaction, donc, aucune des modifications de la transaction ne sera annulée.

<?php
/* Démarre une transaction, désactivation de l'auto-commit */
$dbh->beginTransaction();

/* Modification du schéma de la base ainsi que des données */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
SET name = 'hamburger'");

/* On s'aperçoit d'une erreur et on annule les modifications */
$dbh->rollBack();

/* Le connexion à la base de données est maintenant de retour en mode auto-commit */
?>

Voir aussi

  • PDO::commit() - Valide une transaction
  • PDO::rollBack() - Annule une transaction
  • Transactions et auto-commit


Valide une transaction

  • « PDO::beginTransaction
  • PDO::__construct »
  • PHP Manual
  • PDO
  • Valide une transaction

PDO::commit

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::commit — Valide une transaction

Description

public bool PDO::commit ( void )

PDO::commit() valide une transaction, remet la connexion en mode autocommit en attendant l'appel à la fonction PDO::beginTransaction() pour débuter une nouvelle transaction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Valide une transaction basique

<?php
/* Commence une transaction, désactivation de l'auto-commit */
$dbh->beginTransaction();

/* Insérer plusieurs enregistrements sur une base tout-ou-rien */
$sql = 'INSERT INTO fruit
    (name, colour, calories)
    VALUES (?, ?, ?)';

$sth = $dbh->prepare($sql);

foreach ($fruits as $fruit) {
    $sth->execute(array(
        $fruit->name,
        $fruit->colour,
        $fruit->calories,
    ));
}

/* Valider les modifications */
$dbh->commit();

/* La connexion à la base de données est maintenant de retour en mode auto-commit */
?>

Exemple #2 Committing a DDL transaction

<?php
/* Commence une transaction, désactivation de l'auto-commit */
$dbh->beginTransaction();

/* Modification du schéma de la base de données */
$sth = $dbh->exec("DROP TABLE fruit");

/* Valide les modifications */
$dbh->commit();

/* La connexion à la base de données est maintenant de retour en mode auto-commit */
?>

Note: Toutes les bases de données n'autorisent pas les transactions à fonctionner sur des déclarations DDL: certaines vont générer des erreurs, tandis que d'autres (y compris MySQL) vont automatiquement valider la transaction après que la première déclaration DDL aura été rencontré.

Voir aussi

  • PDO::beginTransaction() - Démarre une transaction
  • PDO::rollBack() - Annule une transaction
  • Transactions et auto-commit


Crée une instance PDO qui représente une connexion à la base

  • « PDO::commit
  • PDO::errorCode »
  • PHP Manual
  • PDO
  • Crée une instance PDO qui représente une connexion à la base

PDO::__construct

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::__construct — Crée une instance PDO qui représente une connexion à la base

Description

public PDO::__construct ( string $dsn [, string $username [, string $password [, array $options ]]] )

Crée un objet PDO qui représente une connexion à la base.

Liste de paramètres

dsn

Le Data Source Name, ou DSN, qui contient les informations requises pour se connecter à la base.

En général, un DSN est constitué du nom du pilote PDO, suivi d'une syntaxe spécifique au pilote. Plus de détails sont disponibles dans la documentation PDO de chaque pilote.

Le paramètre dsn supporte trois méthodes différentes pour spécifier les arguments nécessaires à la création de la base de données :

Appel pilote

dsn contient le DSN complet.

Appel URI

dsn est constitué de uri: suivi par une URI qui définit la localisation du fichier contenant la chaîne de DSN. L'URI peut spécifier un fichier local ou distant.

uri:file:///path/to/dsnfile

Aliasing

dsn est constitué d'un nom name qui correspond à pdo.dsn.name dans le fichier php.ini, et qui définit la chaîne DSN.

Note:

L'alias doit être défini dans le fichier php.ini, et non pas dans un fichier .htaccess ou httpd.conf

username

Le nom d'utilisateur pour la chaîne DSN. Ce paramètre est optionnel pour certains pilote PDO.

password

Le mot de passe de la chaîne DSN. Ce paramètre est optionnel pour certains pilote PDO.

options

Un tableau clé=>valeur avec les options spécifiques de connexion.

Valeurs de retour

Retourne un objet PDO en cas de succès.

Erreurs / Exceptions

PDO::__construct() émet une exception PDOException si la tentative de connexion à la base de données échoue.

Exemples

Exemple #1 Crée une instance PDO via une invocation de pilote

<?php
/* Connexion à une base ODBC avec l'invocation de pilote */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connexion échouée : ' . $e->getMessage();
}

?>

Exemple #2 Crée une instance PDO via une invocation URI

L'exemple ci-dessous suppose que le fichier /usr/local/dbconnect existe avec des droits d'accès qui permettent à PHP d'y accéder. Le fichier contient alors le DSN de PDO, pour se connecter à une base de données DB2, avec le pilote PDO_ODBC :

odbc:DSN=SAMPLE;UID=john;PWD=mypass

Le script PHP peut alors créer une connexion de base de données, en passant dans l'URL le paramètre uri: et en pointant sur l'URI du fichier :

<?php
/* Connexion à une base ODBC avec l'invocation de pilote */
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connexion échouée : ' . $e->getMessage();
}

?>

Exemple #3 Crée une instance PDO avec un alias

L'exemple ci-dessous suppose que le fichier php.ini contient la directive suivant pour activer une connexion à un serveur MySQL, avec l'alias mydb:

[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?php
/* Connexion à une base MySQL avec l'invocation d'alias */
$dsn = 'mydb';
$user = '';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connexion échouée : ' . $e->getMessage();
}

?>

Note:

Avant PHP 5.3, une classe qui étendait PDO et implémentait la méthode magique __call recevait toujours le paramètre $method en minuscule.


Retourne le SQLSTATE associé avec la dernière opération sur la base de données

  • « PDO::__construct
  • PDO::errorInfo »
  • PHP Manual
  • PDO
  • Retourne le SQLSTATE associé avec la dernière opération sur la base de données

PDO::errorCode

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::errorCode — Retourne le SQLSTATE associé avec la dernière opération sur la base de données

Description

public mixed PDO::errorCode ( void )

Valeurs de retour

PDO::errorCode() retourne un SQLSTATE, un identifiant alphanumérique de cinq caractères défini dans le standard ANSI SQL. Brièvement, un SQLSTATE consiste en une valeur de classe de deux caractères suivi par une valeur de sous-classe de trois caractères. Une valeur de classe de 01 indique une alerte et est accompagnée par un code de retour SQL_SUCCESS_WITH_INFO. Les valeurs de classes autre que '01', mis à part la classe 'IM', indiquent une erreur. La classe 'IM' est spécifique aux alertes et aux erreurs qui sont issues de l'implémentation elle-même de PDO (ou peut-être ODBC, si vous utilisez le driver ODBC). La valeur de sous-classe '000' dans n'importe quelle classe, indique qu'il n'y a pas de sous-classe pour cet SQLSTATE.

PDO::errorCode() retourne uniquement les codes erreurs pour les opérations exécutées directement sur le gestionnaire de la base de données. Si vous créez un objet PDOStatement avec la fonction PDO::prepare() ou la fonction PDO::query() et que vous invoquez une erreur sur le gestionnaire de requête, PDO::errorCode() ne retournera pas cette erreur. Vous devez appeler PDOStatement::errorCode() pour retourner le code erreur pour une opération exécutée sur un gestionnaire de requête particulier.

Retourne NULL si aucune opération n'a été exécutée sur la base de données.

Exemples

Exemple #1 Récupération d'un code SQLSTATE

<?php
/* Provoque une erreur -- la table BONES n'existe pas */
$dbh->exec("INSERT INTO bones(skull) VALUES ('lucy')");

echo "\nPDO::errorCode(): ", $dbh->errorCode();
?>

L'exemple ci-dessus va afficher :

PDO::errorCode(): 42S02

Voir aussi

  • PDO::errorInfo() - Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données
  • PDOStatement::errorCode() - Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête
  • PDOStatement::errorInfo() - Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête


Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données

  • « PDO::errorCode
  • PDO::exec »
  • PHP Manual
  • PDO
  • Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données

PDO::errorInfo

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::errorInfo — Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données

Description

public array PDO::errorInfo ( void )

Valeurs de retour

PDO::errorInfo() retourne un tableau contenant des informations sur l'erreur survenu lors de la dernière opération exécutée par ce gestionnaire de base de données. Le tableau contient les champs suivants :

Élément | Information
0 | Code d'erreur SQLSTATE (un identifiant alphanumérique de cinq caractères défini dans le standard ANSI SQL).
1 | Code d'erreur spécifique au driver.
2 | Message d'erreur spécifique au driver.

Note:

Si le code d'erreur SQLSTATE n'est pas défini ou s'il n'y a pas d'erreur spécifique du driver, l'élément suivant l'élément 0 sera défini à NULL.

PDO::errorInfo() retourne uniquement les informations des erreurs pour les opérations exécutées directement sur un gestionnaire de base de données. Si vous créez un objet PDOStatement avec la fonction PDO::prepare() ou la fonction PDO::query() et que vous invoquez une erreur sur le gestionnaire de requête, PDO::errorInfo() ne retournera pas l'erreur depuis le gestionnaire de requête. Vous devez appeler la fonction PDOStatement::errorInfo() pour retourner les informations sur l'erreur pour une opération exécutée sur un gestionnaire de requête particulier.

Exemples

Exemple #1 Affiche les champs d'erreurs pour une connexion PDO_ODBC sur une base de données DB2

<?php
/* Provoque une erreur -- mauvaise syntaxe SQL */
$stmt = $dbh->prepare('mauvaise syntaxe sql');
if (!$stmt) {
   echo "\nPDO::errorInfo():\n";
   print_r($dbh->errorInfo());
}
?>

L'exemple ci-dessus va afficher :

PDO::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

Voir aussi

  • PDO::errorCode() - Retourne le SQLSTATE associé avec la dernière opération sur la base de données
  • PDOStatement::errorCode() - Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête
  • PDOStatement::errorInfo() - Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête


Exécute une requête SQL et retourne le nombre de lignes affectées

  • « PDO::errorInfo
  • PDO::getAttribute »
  • PHP Manual
  • PDO
  • Exécute une requête SQL et retourne le nombre de lignes affectées

PDO::exec

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::exec — Exécute une requête SQL et retourne le nombre de lignes affectées

Description

public int PDO::exec ( string $statement )

PDO::exec() exécute une requête SQL dans un appel d'une seule fonction, retourne le nombre de lignes affectées par la requête.

PDO::exec() ne retourne pas de résultat pour une requête SELECT. Pour une requête SELECT dont vous auriez besoin une seule fois dans le programme, utilisez plutôt la fonction PDO::query(). Pour une requête dont vous auriez besoin plusieurs fois, préparez un objet PDOStatement avec la fonction PDO::prepare() et exécutez la requête avec la fonction PDOStatement::execute().

Liste de paramètres

statement

La requête à préparer et à exécuter.

Les données contenues dans la requête doivent être échappées proprement.

Valeurs de retour

PDO::exec() retourne le nombre de lignes qui ont été modifiées ou effacées pour la requête SQL qui vous exécutez. Si aucune ligne n'est affectée, la fonction PDO::exec() retournera 0.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

L'exemple suivant se fonde inexactement sur la valeur retournée par PDO::exec(), où une requête qui n'affecte aucune lignes revient à appeler die() :

<?php
$db->exec() or die(print_r($db->errorInfo(), true));
?>

Exemples

Exemple #1 Exécution d'une requête DELETE

Compte le nombre de lignes effacées pour une requête DELETE avec aucune clause WHERE.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

/* Effacement de toutes les lignes de la table FRUIT */
$count = $dbh->exec("DELETE FROM fruit WHERE couleur = 'rouge'");

/* Retourne le nombre de lignes effacées */
print("Retourne le nombre de lignes effacées :\n");
print("Effacement de $count lignes.\n");
?>

L'exemple ci-dessus va afficher :

Retourne le nombre de lignes effacées :
Effacement de 2 lignes.

Voir aussi

  • PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
  • PDO::query() - Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement
  • PDOStatement::execute() - Exécute une requête préparée


Récupère un attribut d'une connexion à une base de données

  • « PDO::exec
  • PDO::getAvailableDrivers »
  • PHP Manual
  • PDO
  • Récupère un attribut d'une connexion à une base de données

PDO::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDO::getAttribute — Récupère un attribut d'une connexion à une base de données

Description

public mixed PDO::getAttribute ( int $attribute )

Cette fonction retourne la valeur d'un attribut d'une connexion à une base de données. Pour récupérer les attributs PDOStatement, référez-vous à la fonction PDOStatement::getAttribute().

Notez que quelques bases de données/drivers combinés ne supportent pas tous les attributs de connexion.

Liste de paramètres

attribute

Une des constantes PDO::ATTR_*. Les constantes qui sont appliquées aux connexions sont les suivantes :

  • PDO::ATTR_AUTOCOMMIT
  • PDO::ATTR_CASE
  • PDO::ATTR_CLIENT_VERSION
  • PDO::ATTR_CONNECTION_STATUS
  • PDO::ATTR_DRIVER_NAME
  • PDO::ATTR_ERRMODE
  • PDO::ATTR_ORACLE_NULLS
  • PDO::ATTR_PERSISTENT
  • PDO::ATTR_PREFETCH
  • PDO::ATTR_SERVER_INFO
  • PDO::ATTR_SERVER_VERSION
  • PDO::ATTR_TIMEOUT

Valeurs de retour

Un appel réussi retourne la valeur de l'attribut PDO demandé. Un appel qui a échoué retourne la valeur NULL.

Exemples

Exemple #1 Récupération des attributs de connexion à une base de données

<?php
$conn = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$attributes = array(
"AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION", "CONNECTION_STATUS",
"ORACLE_NULLS", "PERSISTENT", "PREFETCH", "SERVER_INFO", "SERVER_VERSION",
"TIMEOUT"
);

foreach ($attributes as $val) {
   echo "PDO::ATTR_$val: ";
   echo $conn->getAttribute(constant("PDO::ATTR_$val")) . "\n";
}
?>

Voir aussi

  • PDO::setAttribute() - Configure un attribut PDO
  • PDOStatement::getAttribute() - Récupère un attribut de requête
  • PDOStatement::setAttribute() - Définit un attribut de requête


Retourne la liste des pilotes PDO disponibles

  • « PDO::getAttribute
  • PDO::inTransaction »
  • PHP Manual
  • PDO
  • Retourne la liste des pilotes PDO disponibles

PDO::getAvailableDrivers

(PHP 5 >= 5.1.3, PHP 7, PECL pdo >= 1.0.3)

PDO::getAvailableDrivers — Retourne la liste des pilotes PDO disponibles

Description

public static array PDO::getAvailableDrivers ( void )
array pdo_drivers ( void )

Cette fonction retourne la liste de tous les pilotes PDO disponibles qui peuvent être utilisés avec le paramètre DSN de la fonction PDO::__construct().

Valeurs de retour

PDO::getAvailableDrivers() retourne un tableau de nom de pilotes. Si aucun pilote n'est disponible, il retourne un tableau vide.

Exemples

Exemple #1 Exemple avec PDO::getAvailableDrivers()

<?php
print_r(PDO::getAvailableDrivers());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => mysql
    [1] => sqlite
)


Vérifie si nous sommes dans une transaction

  • « PDO::getAvailableDrivers
  • PDO::lastInsertId »
  • PHP Manual
  • PDO
  • Vérifie si nous sommes dans une transaction

PDO::inTransaction

(PHP 5 >= 5.3.3, Bundled pdo_pgsql, PHP 7)

PDO::inTransaction — Vérifie si nous sommes dans une transaction

Description

public bool PDO::inTransaction ( void )

Vérifie si une transaction est actuellement active dans le driver. Cette méthode ne fonctionne que pour les drivers de base de données qui supportent les transactions.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si une transaction est actuellement active, FALSE sinon.


Retourne l'identifiant de la dernière ligne insérée ou la valeur d'une séquence

  • « PDO::inTransaction
  • PDO::prepare »
  • PHP Manual
  • PDO
  • Retourne l'identifiant de la dernière ligne insérée ou la valeur d'une séquence

PDO::lastInsertId

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::lastInsertId — Retourne l'identifiant de la dernière ligne insérée ou la valeur d'une séquence

Description

public string PDO::lastInsertId ([ string $name = NULL ] )

Retourne l'identifiant de la dernière ligne insérée, ou la dernière valeur d'une séquence d'objets, dépendamment du driver utilisé. Par exemple, PDO_PGSQL vous impose de spécifier le nom d'une séquence d'objet pour le paramètre name.

Note:

Cette méthode peut ne pas retourner un résultat significatif suivant les drivers PDO utilisés, car la base de données utilisée peut ne pas supporter la notion de champs auto-incrémenté ou de séquences.

Liste de paramètres

name

Nom de la séquence d'objets depuis laquelle l'identifiant doit être retourné.

Valeurs de retour

Si un nom de séquence n'est pas spécifié pour le paramètre name, PDO::lastInsertId() retourne une chaîne représentant l'identifiant de la ligne de la dernière ligne insérée dans la base de données.

Si un nom de séquence est spécifié pour le paramètre name, PDO::lastInsertId() retourne une chaîne représentant la dernière valeur depuis la séquence d'objets spécifiée.

Si le driver PDO ne supporte pas cette fonctionnalité, PDO::lastInsertId() lancera un SQLSTATE IM001.


Prépare une requête à l'exécution et retourne un objet

  • « PDO::lastInsertId
  • PDO::query »
  • PHP Manual
  • PDO
  • Prépare une requête à l'exécution et retourne un objet

PDO::prepare

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::prepare — Prépare une requête à l'exécution et retourne un objet

Description

public PDOStatement PDO::prepare ( string $statement [, array $driver_options = array() ] )

Prépare une requête SQL à être exécutée par la méthode PDOStatement::execute(). La requête SQL peut contenir zéro ou plusieurs noms (:nom) ou marqueurs (?) pour lesquels les valeurs réelles seront substituées lorsque la requête sera exécutée. Vous ne pouvez pas utiliser les marqueurs nommés et les marqueurs interrogatifs dans une même requête SQL ; choisissez l'un ou l'autre. Utilisez ces paramètres pour lier les entrées utilisateurs, ne les incluez pas directement dans la requête.

Vous devez inclure un marqueur avec un nom unique pour chaque valeur que vous souhaitez passer dans la requête lorsque vous appelez PDOStatement::execute(). Vous ne pouvez pas utiliser un marqueur avec deux noms identiques dans une requête préparée, à moins que le mode émulation ne soit actif.

Note:

Les marqueurs de paramètres peuvent représenter uniquement un littéral de données complet. Ni une partie de littéral, ni un mot clé, ni un identifiant, ni toute autre requête arbitraire ne peuvent être liés en utilisant les paramètres. Par exemple, vous ne pouvez associer plusieurs valeurs à un seul marqueur de nom entrant, dans la clause IN() d'une requête SQL.

Appeler PDO::prepare() et PDOStatement::execute() pour les requêtes qui doivent être exécutées plusieurs fois avec différentes valeurs de paramètres optimisent les performances de votre application en autorisant le pilote à négocier coté client et/ou serveur avec le cache des requêtes et les metainformations, et aident à prévenir les attaques par injection SQL en éliminant le besoin de protéger les paramètres manuellement.

PDO émule les requêtes préparées / les paramètres liés pour les pilotes qui ne le supportent pas nativement, et peut également réécrire les paramètres nommés ou les marqueurs en quelques choses de plus approprié, si le pilote supporte un style et pas l'autre.

Liste de paramètres

statement

Doit être une template de requête SQL valide pour le serveur de base de données cible.

driver_options

Ce tableau contient une ou plusieurs paires clé=>valeur pour définir les valeurs des attributs pour l'objet PDOStatement que cette méthode retourne. Vous pouvez utiliser ceci pour définir la valeur PDO::ATTR_CURSOR à PDO::CURSOR_SCROLL pour demander un curseur scrollable. Quelques pilotes ont des options spécifiques qui peuvent être définies au moment de la préparation.

Valeurs de retour

Si le serveur de base de données prépare avec succès cette requête, PDO::prepare() retourne un objet PDOStatement. Si le serveur de base de données ne réussit pas à préparer la requête, PDO::prepare() retourne FALSE ou émet une exception PDOException (suivant le gestionnaire des erreurs).

Note:

L'émulation de requêtes préparées ne communique pas avec le serveur de base de données. Aussi, la fonction PDO::prepare() ne vérifie pas la requête.

Exemples

Exemple #1 Prépare une requête SQL avec des paramètres nommés

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$sql = 'SELECT nom, couleur, calories
    FROM fruit
WHERE calories < :calories AND couleur = :couleur';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':couleur' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':couleur' => 'yellow'));
$yellow = $sth->fetchAll();
?>

Exemple #2 Prépare une requête SQL avec des marqueurs

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?');
$sth->execute(array(150, 'rouge'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'jaune'));
$yellow = $sth->fetchAll();
?>

Voir aussi

  • PDO::exec() - Exécute une requête SQL et retourne le nombre de lignes affectées
  • PDO::query() - Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement
  • PDOStatement::execute() - Exécute une requête préparée


Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement

  • « PDO::prepare
  • PDO::quote »
  • PHP Manual
  • PDO
  • Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement

PDO::query

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDO::query — Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement

Description

public PDOStatement PDO::query ( string $statement )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_COLUMN , int $colno )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_INTO , object $object )

PDO::query() exécute une requête SQL en appelant une seule fonction, retourne le jeu de résultats (s'il y en a) retourné par la requête en tant qu'objet PDOStatement.

Pour une requête que vous devez exécuter plusieurs fois, vous réaliserez de meilleures performances si vous préparez l'objet PDOStatement en utilisant la fonction PDO::prepare() et exécutez la requête via plusieurs appels à la fonction PDOStatement::execute().

Si vous ne récupérez pas toutes les données du jeu de résultats avant d'exécuter le prochain appel à PDO::query(), votre appel peut échouer. Appeler PDOStatement::closeCursor() pour libérer les ressources de la base de données associées à l'objet PDOStatement avant d'exécuter votre prochain appel à la fonction PDO::query().

Note:

Bien que la documentation de cette fonction autorise de passer un seul paramètre, vous pouvez y passer d'autres paramètres. Ils seront traités via l'appel à PDOStatement::setFetchMode() sur le résultat du traitement de l'objet.

Liste de paramètres

statement

La requête SQL à préparer et à exécuter.

Les données contenues dans la requête doivent être échappées proprement.

Valeurs de retour

PDO::query() retourne un objet PDOStatement, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec PDO::query

Une fonctionnalité intéressante de PDO::query() est qu'il vous permet d'itérer à travers un jeu de résultats retourné par une requête SELECT exécutée avec succès.

<?php
function getFruit($conn) {
    $sql =  'SELECT name, color, calories FROM fruit ORDER BY name';
    foreach  ($conn->query($sql) as $row) {
        print $row['name'] . "\t";
        print  $row['color'] . "\t";
        print $row['calories'] . "\n";
  }
}
?>

L'exemple ci-dessus va afficher :

apple   red     150
banana  yellow  250
kiwi    brown   75
lemon   yellow  25
orange  orange  300
pear    green   150
watermelon      pink    90

Voir aussi

  • PDO::exec() - Exécute une requête SQL et retourne le nombre de lignes affectées
  • PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
  • PDOStatement::execute() - Exécute une requête préparée


Protège une chaîne pour l'utiliser dans une requête SQL PDO

  • « PDO::query
  • PDO::rollBack »
  • PHP Manual
  • PDO
  • Protège une chaîne pour l'utiliser dans une requête SQL PDO

PDO::quote

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.1)

PDO::quote — Protège une chaîne pour l'utiliser dans une requête SQL PDO

Description

public string PDO::quote ( string $string [, int $parameter_type = PDO::PARAM_STR ] )

PDO::quote() place des guillemets simples autour d'une chaîne d'entrée, si nécessaire et protège les caractères spéciaux présents dans la chaîne d'entrée, en utilisant le style de protection approprié au pilote courant.

Si vous utilisez cette fonction pour construire des requêtes SQL, vous êtes vivement invités à utiliser PDO::prepare() pour préparer les requêtes SQL avec des paramètres liés au lieu d'utiliser PDO::quote() pour interpréter les entrées utilisateur dans la requête SQL. Les requêtes préparées avec des paramètres liés sont non seulement plus portables, plus souples et plus sécuritaires, mais bien plus rapides à exécuter que d'interpréter les requêtes, étant donné que les côtés client et serveur peuvent mettre en cache une version compilée de la requête.

Tous les pilotes PDO n'implémentent pas cette méthode (comme PDO_ODBC). Utilisez les requêtes préparées à la place.

Attention

Securité : le jeu de caractères par défaut

Le jeu de caractères doit être défini soit au niveau du serveur, soit lors de la connexion à la base de données (suivant le driver utilisé) pour qu'il affecte la méthode PDO::quote(). Voir la documentation spécifique au driver pour plus d'informations.

Liste de paramètres

string

La chaîne à protéger.

parameter_type

Le type de données pour les drivers qui ont des styles particuliers de protection.

Valeurs de retour

Retourne une chaîne protégée, qui est théoriquement sûre à utiliser dans une requête SQL. Retourne FALSE si le pilote ne supporte pas ce type de protections.

Exemples

Exemple #1 Protection d'une chaîne normale

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Chaîne simple */
$string = 'Nice';
print "Chaîne non échappée : $string\n";
print "Chaîne échappée : " . $conn->quote($string) . "\n";
?>

L'exemple ci-dessus va afficher :

Chaîne non échappée : Nice
Chaîne échappée: 'Nice'

Exemple #2 Protection d'une chaîne dangereuse

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Chaîne dangereuse */
$string = 'Chaîne \' particulière';
print "Chaîne non échappée : $string\n";
print "Chaîne échappée :" . $conn->quote($string) . "\n";
?>

L'exemple ci-dessus va afficher :

Chaîne non échappée : Chaîne ' particulière
Chaîne échappée : 'Chaîne '' particulière'

Exemple #3 Protection d'une chaîne complexe

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Chaîne complexe */
$string = "Co'mpl''exe \"ch'\"aîne";
print "Chaîne non protégée : $string\n";
print "Chaîne protégée : " . $conn->quote($string) . "\n";
?>

L'exemple ci-dessus va afficher :

Chaîne non échappée: Co'mpl''exe "ch'"aîne
Chaîne échappée: 'Co''mpl''''exe "ch''"aîne'

Voir aussi

  • PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
  • PDOStatement::execute() - Exécute une requête préparée


Annule une transaction

  • « PDO::quote
  • PDO::setAttribute »
  • PHP Manual
  • PDO
  • Annule une transaction

PDO::rollBack

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::rollBack — Annule une transaction

Description

public bool PDO::rollBack ( void )

Annule la transaction courante, initiée par la fonction PDO::beginTransaction(). Une exception PDOException sera lancée si aucune transaction n'est active.

Si la base de données est en mode autocommit, cette fonction restaurera le mode autocommit après l'annulation de la transaction.

Quelques bases de données, dont MySQL, exécuteront automatiquement un COMMIT lorsqu'une requête de définition de langage de base de données (DDL) comme DROP TABLE ou CREATE TABLE est exécutée dans une transaction. Ce COMMIT implicite vous empêchera d'annuler toutes autres modifications faites dans cette transaction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Annulation d'une transaction

L'exemple suivant commence une transaction et exécute deux requêtes qui modifient la base de données avant d'annuler les modifications. Sur MySQL, cependant, la requête DROP TABLE validera automatiquement la transaction, donc, aucune des modifications de la transaction ne sera annulée.

<?php
/* Début d'une transaction, désactivation du mode autocommit */
$dbh->beginTransaction();

/* Modifie le schéma de la base de données ainsi que des données */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/* On s'aperçoit d'une erreur et on annule les modifications */
$dbh->rollBack();

/* La connexion à la base de donnés revient en mode autocommit */
?>

Voir aussi

  • PDO::beginTransaction() - Démarre une transaction
  • PDO::commit() - Valide une transaction
  • Transactions et auto-commit


Configure un attribut PDO

  • « PDO::rollBack
  • PDOStatement »
  • PHP Manual
  • PDO
  • Configure un attribut PDO

PDO::setAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::setAttribute — Configure un attribut PDO

Description

public bool PDO::setAttribute ( int $attribute , mixed $value )

Configure un attribut du gestionnaire de base de données. Certains des attributs génériques sont listés ci-dessous : certains pilotes disposent de configuration supplémentaires.

  • PDO::ATTR_CASE: force les noms de colonnes à une casse particulière.

    • PDO::CASE_LOWER : force les noms de colonnes à être en minuscules.

    • PDO::CASE_NATURAL : laisse les noms de colonnes inchangées.

    • PDO::CASE_UPPER : force les noms de colonnes à être en majuscules.

  • PDO::ATTR_ERRMODE : rapport d'erreurs.

    • PDO::ERRMODE_SILENT : assigne simplement les codes d'erreur.

    • PDO::ERRMODE_WARNING: émet une alerte E_WARNING.

    • PDO::ERRMODE_EXCEPTION : émet une exception.

  • PDO::ATTR_ORACLE_NULLS (disponible pour tous les pilotes, et pas juste Oracle ) : Conversion des valeurs NULL et chaînes vides.

    • PDO::NULL_NATURAL : Pas de conversion.

    • PDO::NULL_EMPTY_STRING : Chaîne vide convertie en NULL.

    • PDO::NULL_TO_STRING : NULL est converti en chaîne vide.

  • PDO::ATTR_STRINGIFY_FETCHES : Convertit une valeur numérique en chaîne lors de la lecture. Requiert bool.

  • PDO::ATTR_STATEMENT_CLASS : Configure une classe de résultat, définie par l'utilisateur, et dérivée de PDOStatement. Ne peut pas être utilisée avec les instances persistantes de PDO. Requiert array(string classname, array(mixed constructor_args)).

  • PDO::ATTR_TIMEOUT: Précise la durée de timeout en secondes. Tous les pilotes ne supportent pas cette option et sa signification peut différer en fonctions des pilotes. Par exemple, sqlite attendra pendant cette période pour obtenir un verrou en écriture sur le fichier, mais les autres pilotes considèreront ceci comme un timeout de connexion ou de lecture. Requiert int.

  • PDO::ATTR_AUTOCOMMIT (disponible en OCI, Firebird et MySQL) : activation de l'autocommit pour chaque commande.

  • PDO::ATTR_EMULATE_PREPARES Active ou désactive la simulation des requêtes préparées. Certainspilotes ne supportent pas nativement les requêtes préparées ou en ont un support limité. Ce paramètre force PDO à émuler (TRUE) les requêtes préparées ou (FALSE) à utiliser l'interface native. Il tentera toujours une émulation si le pilote n'a pas de support natif. bool requis.

  • PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (disponible en MySQL) : utilisation des requêtes bufferisées.

  • PDO::ATTR_DEFAULT_FETCH_MODE : Définit le mode de récupération par défaut. Les différentes descriptions des modes sont disponibles dans la documentation de la méthode PDOStatement::fetch().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


La classe PDOStatement

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.0)

Introduction

Représente une requête préparée et, une fois exécutée, le jeu de résultats associé.

Synopsis de la classe

PDOStatement implements Traversable {
/* Propriétés */
readonly string $queryString;
/* Méthodes */
public bool bindColumn ( mixed $column , mixed &$param [, int $type [, int $maxlen [, mixed $driverdata ]]] )
public bool bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )
public bool bindValue ( mixed $parameter , mixed $value [, int $data_type = PDO::PARAM_STR ] )
public bool closeCursor ( void )
public int columnCount ( void )
public void debugDumpParams ( void )
public string errorCode ( void )
public array errorInfo ( void )
public bool execute ([ array $input_parameters ] )
public mixed fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )
public array fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
public mixed fetchColumn ([ int $column_number = 0 ] )
public mixed fetchObject ([ string $class_name = "stdClass" [, array $ctor_args ]] )
public mixed getAttribute ( int $attribute )
public array getColumnMeta ( int $column )
public bool nextRowset ( void )
public int rowCount ( void )
public bool setAttribute ( int $attribute , mixed $value )
public bool setFetchMode ( int $mode )
}

Propriétés

queryString

chaîne de caractères utilisée pour la requête.

Sommaire

  • PDOStatement::bindColumn — Lie une colonne à une variable PHP
  • PDOStatement::bindParam — Lie un paramètre à un nom de variable spécifique
  • PDOStatement::bindValue — Associe une valeur à un paramètre
  • PDOStatement::closeCursor — Ferme le curseur, permettant à la requête d'être de nouveau exécutée
  • PDOStatement::columnCount — Retourne le nombre de colonnes dans le jeu de résultats
  • PDOStatement::debugDumpParams — Détaille une commande préparée SQL
  • PDOStatement::errorCode — Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête
  • PDOStatement::errorInfo — Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête
  • PDOStatement::execute — Exécute une requête préparée
  • PDOStatement::fetch — Récupère la ligne suivante d'un jeu de résultats PDO
  • PDOStatement::fetchAll — Retourne un tableau contenant toutes les lignes du jeu d'enregistrements
  • PDOStatement::fetchColumn — Retourne une colonne depuis la ligne suivante d'un jeu de résultats
  • PDOStatement::fetchObject — Récupère la prochaine ligne et la retourne en tant qu'objet
  • PDOStatement::getAttribute — Récupère un attribut de requête
  • PDOStatement::getColumnMeta — Retourne les métadonnées pour une colonne d'un jeu de résultats
  • PDOStatement::nextRowset — Avance à la prochaine ligne de résultats d'un gestionnaire de lignes de résultats multiples
  • PDOStatement::rowCount — Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()
  • PDOStatement::setAttribute — Définit un attribut de requête
  • PDOStatement::setFetchMode — Définit le mode de récupération par défaut pour cette requête


Lie une colonne à une variable PHP

  • « PDOStatement
  • PDOStatement::bindParam »
  • PHP Manual
  • PDOStatement
  • Lie une colonne à une variable PHP

PDOStatement::bindColumn

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::bindColumn — Lie une colonne à une variable PHP

Description

public bool PDOStatement::bindColumn ( mixed $column , mixed &$param [, int $type [, int $maxlen [, mixed $driverdata ]]] )

PDOStatement::bindColumn() fait en sorte qu'une variable PHP soit liée à une colonne données dans le jeu de résultats dans une requête. Chaque appel à la fonction PDOStatement::fetch() ou PDOStatement::fetchAll() met à jour toutes les variables qui sont liées aux colonnes.

Note:

Étant donné que les informations sur les colonnes ne sont pas toujours disponibles à PDO tant que la requête n'est pas exécutée, les applications portables doivent appeler cette fonction après la fonction PDOStatement::execute().

Cependant, pour pouvoir lier une colonne de type LOB avec un flux lors de l'utilisation du pilote PostGreSQL, les applications doivent appeler cette méthode avant d'appeler PDOStatement::execute(), sous peine de recevoir l'objet OID sous forme d'entier.

Liste de paramètres

column

Numéro de la colonne (en commençant à 1) ou nom de la colonne dans le jeu de résultats. Si vous utilisez les noms de colonnes, assurez-vous que le nom corresponde à la casse de la colonne, comme retourné par le pilote.

param

Nom de la variable PHP à laquelle la colonne doit être liée.

type

Type du paramètre, spécifié par les constantes PDO::PARAM_* constants.

maxlen

Une astuce pour la pré-allocation.

driverdata

Paramètres optionnels pour la bibliothèque.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Lie l'affichage du jeu de résultats à des variables PHP

Lie les colonnes du jeu de résultats aux variables PHP est une façon agréable de rendre les données contenues dans chaque ligne immédiatement disponible à votre application. L'exemple suivant montre comment PDO vous autorise à lier et récupérer les colonnes avec une variété d'options.

<?php
function readData($dbh) {
  $sql = 'SELECT nom, couleur, calories FROM fruit';
  try {
    $stmt = $dbh->prepare($sql);
    $stmt->execute();

    /* Lie par les numéros de colonnes */
    $stmt->bindColumn(1, $nom);
    $stmt->bindColumn(2, $couleur);

    /* Lie par les noms de colonnes */
    $stmt->bindColumn('calories', $cals);

    while ($row = $stmt->fetch(PDO::FETCH_BOUND)) {
      $data = $nom . "\t" . $couleur . "\t" . $cals . "\n";
      print $data;
    }
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}
readData($dbh);
?>

L'exemple ci-dessus va afficher :

pomme   rouge     150
banane  jaune  175
kiwi    vert   75
orange  orange  150
mangue   rouge     200
fraise      rouge     25

Voir aussi

  • PDOStatement::execute() - Exécute une requête préparée
  • PDOStatement::fetch() - Récupère la ligne suivante d'un jeu de résultats PDO
  • PDOStatement::fetchAll() - Retourne un tableau contenant toutes les lignes du jeu d'enregistrements
  • PDOStatement::fetchColumn() - Retourne une colonne depuis la ligne suivante d'un jeu de résultats


Lie un paramètre à un nom de variable spécifique

  • « PDOStatement::bindColumn
  • PDOStatement::bindValue »
  • PHP Manual
  • PDOStatement
  • Lie un paramètre à un nom de variable spécifique

PDOStatement::bindParam

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::bindParam — Lie un paramètre à un nom de variable spécifique

Description

public bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )

Lie une variable PHP à un marqueur nommé ou interrogatif correspondant dans une requête SQL utilisée pour préparer la requête. Contrairement à PDOStatement::bindValue(), la variable est liée en tant que référence et ne sera évaluée qu'au moment de l'appel à la fonction PDOStatement::execute().

La plupart des paramètres sont des paramètres d'entrées, et sont utilisés en lecture seule pour construire la requête. Quelques drivers supportent l'invocation de procédures stockées qui retournent des données en tant que paramètres de sortie, et quelques autres en tant que paramètres entrées / sorties qui sont envoyés ensemble et sont mis à jour pour les recevoir.

Liste de paramètres

parameter

Identifiant. Pour une requête préparée utilisant des marqueurs nommés, ce sera le nom du paramètre sous la forme :name. Pour une requête préparée utilisant les marqueurs interrogatifs, ce sera la position indexé -1 du paramètre.

variable

Nom de la variable PHP à lier au paramètre de la requête SQL.

data_type

Type explicite de données pour le paramètre utilisant la constante PDO::PARAM_* constants. Pour retourner un paramètre INOUT depuis une procédure stockée, utilisez l'opérateur OR pour définir l'octet PDO::PARAM_INPUT_OUTPUT pour le paramètre data_type.

length

Longueur du type de données. Pour indiquer qu'un paramètre est un paramètre OUT depuis une procédure stockée, vous devez explicitement définir la longueur.

driver_options

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exécution d'une requête préparée avec des emplacements nommés

<?php
/* Exécution d'une requête préparée en liant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < :calories AND couleur = :couleur');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':couleur', $couleur, PDO::PARAM_STR, 12);
$sth->execute();
?>

Exemple #2 Exécution d'une requête préparée avec des marqueurs de positionnement

<?php
/* Exécution d'une requête préparée en liant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $couleur, PDO::PARAM_STR, 12);
$sth->execute();
?>

Exemple #3 Appel une procédure stockée avec un paramètre INOUT

<?php
/* Appel une procédure stockée avec un paramètre INOUT */
$couleur = 'rouge';
$sth = $dbh->prepare('CALL puree_fruit(?)');
$sth->bindParam(1, $couleur, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);
$sth->execute();
print("Après avoir pressé le fruit, la couleur est : $couleur");
?>

Voir aussi

  • PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
  • PDOStatement::execute() - Exécute une requête préparée
  • PDOStatement::bindValue() - Associe une valeur à un paramètre


Associe une valeur à un paramètre

  • « PDOStatement::bindParam
  • PDOStatement::closeCursor »
  • PHP Manual
  • PDOStatement
  • Associe une valeur à un paramètre

PDOStatement::bindValue

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.0)

PDOStatement::bindValue — Associe une valeur à un paramètre

Description

public bool PDOStatement::bindValue ( mixed $parameter , mixed $value [, int $data_type = PDO::PARAM_STR ] )

Associe une valeur à un nom correspondant ou à un point d'interrogation (comme paramètre fictif) dans la requête SQL qui a été utilisé pour préparer la requête.

Liste de paramètres

parameter

Identifiant du paramètre. Pour une requête préparée utilisant les marqueurs, cela sera un nom de paramètre de la forme :nom. Pour une requête préparée utilisant les points d'interrogation (comme paramètre fictif), cela sera un tableau indexé numériquement qui commence à la position 1 du paramètre.

value

La valeur à associer au paramètre.

data_type

Type de données explicite pour le paramètre utilisant les constantes PDO::PARAM_* constants.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exécute une requête préparée avec des marqueurs nommés

<?php
/* Exécute une requête préparée en associant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < :calories AND couleur = :couleur');
$sth->bindValue(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':couleur', $couleur, PDO::PARAM_STR);
$sth->execute();
?>

Exemple #2 Exécute une requête préparée avec des points d'interrogation comme paramètre fictif

<?php
/* Exécute une requête préparée en associant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?');
$sth->bindValue(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $couleur, PDO::PARAM_STR);
$sth->execute();
?>

Voir aussi

  • PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
  • PDOStatement::execute() - Exécute une requête préparée
  • PDOStatement::bindParam() - Lie un paramètre à un nom de variable spécifique


Ferme le curseur, permettant à la requête d'être de nouveau exécutée

  • « PDOStatement::bindValue
  • PDOStatement::columnCount »
  • PHP Manual
  • PDOStatement
  • Ferme le curseur, permettant à la requête d'être de nouveau exécutée

PDOStatement::closeCursor

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)

PDOStatement::closeCursor — Ferme le curseur, permettant à la requête d'être de nouveau exécutée

Description

public bool PDOStatement::closeCursor ( void )

PDOStatement::closeCursor() libère la connexion au serveur, permettant ainsi à d'autres requêtes SQL d'être exécutées, mais laisse la requête dans un état lui permettant d'être de nouveau exécutée.

Cette méthode est utile pour les drivers de base de données qui ne supportent pas l'exécution d'objet PDOStatement lorsqu'un objet PDOStatement exécuté précédemment a encore des lignes non récupérées. Si votre driver de base de données souffre de cette limitation, le problème se manifestera de lui-même dans une erreur en dehors de la séquence.

PDOStatement::closeCursor() est implémenté soit en tant que méthode optionnelle spécifique au pilote, avec un maximum d'efficacité, ou en tant que solution générique si aucune fonction spécifique au pilote n'est installée. Sémantiquement, la fonction générique PDO revient à écrire le code suivant dans votre script PHP :

<?php
do {
    while ($stmt->fetch())
        ;
    if (!$stmt->nextRowset())
        break;
} while (true);
?>

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec PDOStatement::closeCursor()

Dans l'exemple suivant, l'objet PDOStatement $stmt retourne de multiples lignes, mais l'application récupère uniquement la première ligne, laissant l'objet PDOStatement dans l'état où il lui reste des lignes non récupérées. Pour vous assurez que l'application fonctionnera avec tous les drivers de base de données, l'auteur insère un appel à la fonction PDOStatement::closeCursor() sur $stmt avant l'exécution d'objet PDOStatement $otherStmt.

<?php
/* Création d'un objet PDOStatement */
$stmt = $dbh->prepare('SELECT foo FROM bar');

/* Création d'un second objet PDOStatement */
$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');

/* Exécute la première requête */
$stmt->execute();

/* Récupération de la première ligne uniquement depuis le résultat */
$stmt->fetch();

/* L'appel suivant à closeCursor() peut être requis par quelques drivers */
$stmt->closeCursor();

/* Maintenant, nous pouvons exécuter la deuxième requête */
$otherStmt->execute();
?>

Voir aussi

  • PDOStatement::execute() - Exécute une requête préparée


Retourne le nombre de colonnes dans le jeu de résultats

  • « PDOStatement::closeCursor
  • PDOStatement::debugDumpParams »
  • PHP Manual
  • PDOStatement
  • Retourne le nombre de colonnes dans le jeu de résultats

PDOStatement::columnCount

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::columnCount — Retourne le nombre de colonnes dans le jeu de résultats

Description

public int PDOStatement::columnCount ( void )

Utilisez la fonction PDOStatement::columnCount() pour retourner le nombre de colonnes dans le jeu de résultats représenté par l'objet PDOStatement.

Si l'objet PDOStatement a été retourné par la fonction PDO::query(), le nombre de colonnes est immédiatement disponible.

Si l'objet PDOStatement a été retourné par la fonction PDO::prepare(), un compte précis des colonnes ne sera pas disponible tant que vous n'invoquerez pas la fonction PDOStatement::execute().

Valeurs de retour

Retourne le nombre de colonnes dans le jeu de résultats représenté par l'objet PDOStatement. S'il n'y a pas de jeu de résultats, PDOStatement::columnCount() retournera 0.

Exemples

Exemple #1 Comptage des colonnes

Cet exemple démontre comment PDOStatement::columnCount() fonctionne avec ou sans jeu de résultats.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

$sth = $dbh->prepare("SELECT nom, couleur FROM fruit");

/* Compte le nombre de colonnes dans le jeu de résultat (non-existant) */
$colcount = $sth->columnCount();
print("Avant execute(), le jeu de résultats avait $colcount colonnes (devrait être 0)\n");

$sth->execute();

/* Compte le nombre de colonnes dans le jeu de résultats */
$colcount = $sth->columnCount();
print("Après execute(), le jeu de résultats a $colcount colonnes (devrait être 2)\n");

?>

L'exemple ci-dessus va afficher :

Avant execute(), le jeu de résultats avait 0 colonnes (devrait être 0)
Après execute(), le jeu de résultat a 2 colonnes (devrait être 2)

Voir aussi

  • PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
  • PDOStatement::execute() - Exécute une requête préparée
  • PDOStatement::rowCount() - Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()


Détaille une commande préparée SQL

  • « PDOStatement::columnCount
  • PDOStatement::errorCode »
  • PHP Manual
  • PDOStatement
  • Détaille une commande préparée SQL

PDOStatement::debugDumpParams

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)

PDOStatement::debugDumpParams — Détaille une commande préparée SQL

Description

public void PDOStatement::debugDumpParams ( void )

Détaille les informations contenues dans une commande préparée, directement sur la sortie standard. Les informations sont notamment la requête SQL utilisée, le nombre de paramètres utilisés (Params), la liste des paramètres, avec le nom de clé ou leur position, leur nom, leur position dans la requête (si cette dernière information n'est pas supportée par le pilote PDO, c'est toujours -1), un type (param_type) sous forme d'entier, et une valeur booléenne is_param.

Ceci est une fonction de déboguage, qui affiche directement des informations sur la sortie standard.

Astuce

Comme pour toutes les fonctions qui affichent directement des résultats au navigateur, vous pouvez utiliser les fonctions de gestion des sorties pour capturer le contenu de cette fonction et le sauver, par exemple, dans une chaîne.

Les paramètres affichés sont ceux qui ont été ajoutés dans la requête jusqu'au moment de l'appel. Les paramètres surnuméraires sont ignorés.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec PDOStatement::debugDumpParams() et des paramètres nommés

<?php
/* exécution d'une commande préparée avec liaison avec variables PHP */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();

$sth->debugDumpParams();

?>

L'exemple ci-dessus va afficher :

SQL: [96] SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour
Params:  2
Key: Name: [9] :calories
paramno=-1
name=[9] ":calories"
is_param=1
param_type=1
Key: Name: [7] :colour
paramno=-1
name=[7] ":colour"
is_param=1
param_type=2

Exemple #2 Exemple avec PDOStatement::debugDumpParams() et des paramètres anonymes

<?php

/* exécution d'une commande préparée avec liaison avec variables PHP */
$calories = 150;
$colour = 'red';
$name = 'apple';

$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();

$sth->debugDumpParams();

?>

L'exemple ci-dessus va afficher :

SQL: [82] SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?
Params:  2
Key: Position #0:
paramno=0
name=[0] ""
is_param=1
param_type=1
Key: Position #1:
paramno=1
name=[0] ""
is_param=1
param_type=2

Voir aussi

  • PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
  • PDOStatement::bindParam() - Lie un paramètre à un nom de variable spécifique
  • PDOStatement::bindValue() - Associe une valeur à un paramètre


Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête

  • « PDOStatement::debugDumpParams
  • PDOStatement::errorInfo »
  • PHP Manual
  • PDOStatement
  • Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête

PDOStatement::errorCode

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::errorCode — Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête

Description

public string PDOStatement::errorCode ( void )

Valeurs de retour

Identique à PDO::errorCode(), excepté que PDOStatement::errorCode() récupère uniquement les codes erreurs pour les opérations sur les objets PDOStatement.

Exemples

Exemple #1 Détermine la catégorie de l'erreur qui survient

<?php
/* Provoque une erreur -- la table BONES n'existe pas */
$err = $dbh->prepare('SELECT skull FROM bones');
$err->execute();

echo "\nPDOStatement::errorCode(): ";
print $err->errorCode();
?>

L'exemple ci-dessus va afficher :

PDOStatement::errorCode(): 42S02

Voir aussi

  • PDO::errorCode() - Retourne le SQLSTATE associé avec la dernière opération sur la base de données
  • PDO::errorInfo() - Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données
  • PDOStatement::errorInfo() - Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête


Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête

  • « PDOStatement::errorCode
  • PDOStatement::execute »
  • PHP Manual
  • PDOStatement
  • Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête

PDOStatement::errorInfo

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::errorInfo — Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête

Description

public array PDOStatement::errorInfo ( void )

Valeurs de retour

PDOStatement::errorInfo() retourne un tableau contenant des informations sur l'erreur survenue lors de la dernière opération exécutée par ce gestionnaire de requêtes. Le tableau contient les champs suivants :

Élément | Information
0 | Code erreur SQLSTATE (un identifiant de cinq caractères alphanumériques défini dans le standard ANSI SQL)
1 | Code erreur spécifique au driver.
2 | Message d'erreur spécifique au driver.

Exemples

Exemple #1 Affiche les champs de errorInfo() pour une connexion PDO_ODBC sur une base de données DB2

<?php
/* Provoque une erreur -- la table BONES n'existe pas */
$sth = $dbh->prepare('SELECT skull FROM bones');
$sth->execute();

echo "\nPDOStatement::errorInfo():\n";
$arr = $sth->errorInfo();
print_r($arr);
?>

L'exemple ci-dessus va afficher :

PDOStatement::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

Voir aussi

  • PDO::errorCode() - Retourne le SQLSTATE associé avec la dernière opération sur la base de données
  • PDO::errorInfo() - Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données
  • PDOStatement::errorCode() - Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête


Exécute une requête préparée

  • « PDOStatement::errorInfo
  • PDOStatement::fetch »
  • PHP Manual
  • PDOStatement
  • Exécute une requête préparée

PDOStatement::execute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::execute — Exécute une requête préparée

Description

public bool PDOStatement::execute ([ array $input_parameters ] )

Exécute une requête préparée. Si la requête préparée inclut des marqueurs de positionnement, vous pouvez :

  • appeler la fonction PDOStatement::bindParam() pour lier les variables PHP aux marqueurs de positionnement : les variables liées passent leurs valeurs en entrée et reçoivent les valeurs de sortie, s'il y en a, de leurs marqueurs de positionnement respectifs

  • ou passer un tableau de valeurs de paramètres, uniquement en entrée

Liste de paramètres

input_parameters

Un tableau de valeurs avec autant d'éléments qu'il y a de paramètres à associer dans la requête SQL qui sera exécutée. Toutes les valeurs sont traitées comme des constantes PDO::PARAM_STR.

Vous ne pouvez pas associer plusieurs valeurs à un seul paramètre; par exemple, vous ne pouvez associer deux valeurs à un paramètre de nom dans une clause IN().

Vous ne pouvez pas associer plus de valeurs que spécifié ; s'il y a plus de clés dans input_parameters que dans le code SQL utilisé pour PDO::prepare(), alors la requête préparée échouera et une erreur sera levée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.2.0 | Les clés déclarées dans input_parameters doivent correspondre à celles déclarées dans le SQL. Avant PHP 5.2.0, ceci était ignoré sans erreur.

Exemples

Exemple #1 Exécute une requête préparée avec des variables liées

<?php
/* Exécute une requête préparée en liant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < :calories AND couleur = :couleur');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':couleur', $couleur, PDO::PARAM_STR, 12);
$sth->execute();
?>

Exemple #2 Exécute une requête préparée avec un tableau de valeurs (paramètres de nom)

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < :calories AND couleur = :couleur');
$sth->execute(array(':calories' => $calories, ':couleur' => $couleur));
?>

Exemple #3 Exécute une requête préparée avec un tableau de valeurs (marqueurs)

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$calories = 150;
$colour = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?');
$sth->execute(array($calories, $couleur));
?>

Exemple #4 Exécute une requête préparée avec un marqueur de positionnement

<?php
/* Exécute une requête préparée en liant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $couleur, PDO::PARAM_STR, 12);
$sth->execute();
?>

Exemple #5 Exécute une requête préparée en utilisant un tableau pour les clauses IN

<?php
/* Exécute une commande préparée en utilisant un tableau de valeurs pour les clauses IN */
$params = array(1, 21, 63, 171);
/* Crée une chaîne pour les marqueurs */
$place_holders = implode(',', array_fill(0, count($params), '?'));

/*
    Ce morceau de code va préparer la requête avec assez de marqueurs pour chaque valeur
    du tableau $params. Les valeurs du tableau $params sont ensuite liées aux marqueurs
    de la requête préparée lorsque la requête est exécutée. Ce n'est pas la même chose
    que d'utiliser la méthode PDOStatement::bindParam() sachant qu'elle impose une
    référence vers les valeurs. La méthode PDOStatement::execute() ne fait que lier
    par la valeur.
*/
$sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
$sth->execute($params);
?>

Notes

Note:

Quelques drivers nécessitent de fermer le curseur avant d'exécuter la requête suivante.

Voir aussi

  • PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
  • PDOStatement::bindParam() - Lie un paramètre à un nom de variable spécifique
  • PDOStatement::fetch() - Récupère la ligne suivante d'un jeu de résultats PDO
  • PDOStatement::fetchAll() - Retourne un tableau contenant toutes les lignes du jeu d'enregistrements
  • PDOStatement::fetchColumn() - Retourne une colonne depuis la ligne suivante d'un jeu de résultats


Récupère la ligne suivante d'un jeu de résultats PDO

  • « PDOStatement::execute
  • PDOStatement::fetchAll »
  • PHP Manual
  • PDOStatement
  • Récupère la ligne suivante d'un jeu de résultats PDO

PDOStatement::fetch

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::fetch — Récupère la ligne suivante d'un jeu de résultats PDO

Description

public mixed PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )

Récupère une ligne depuis un jeu de résultats associé à l'objet PDOStatement. Le paramètre fetch_style détermine la façon dont PDO retourne la ligne.

Liste de paramètres

fetch_style

Contrôle comment la prochaine ligne sera retournée à l'appelant. Cette valeur doit être une des constantes PDO::FETCH_*, et par défaut, vaut la valeur de PDO::ATTR_DEFAULT_FETCH_MODE (qui vaut par défaut la valeur de la constante PDO::FETCH_BOTH).

  • PDO::FETCH_ASSOC: retourne un tableau indexé par le nom de la colonne comme retourné dans le jeu de résultats

  • PDO::FETCH_BOTH (défaut): retourne un tableau indexé par les noms de colonnes et aussi par les numéros de colonnes, commençant à l'index 0, comme retournés dans le jeu de résultats

  • PDO::FETCH_BOUND: retourne TRUE et assigne les valeurs des colonnes de votre jeu de résultats dans les variables PHP à laquelle elles sont liées avec la méthode PDOStatement::bindColumn()

  • PDO::FETCH_CLASS: retourne une nouvelle instance de la classe demandée, liant les colonnes du jeu de résultats aux noms des propriétés de la classe. Si fetch_style inclut PDO::FETCH_CLASS (c'est-à-dire PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE), alors le nom de la classe est déterminé à partir d'une valeur de la première colonne.

  • PDO::FETCH_INTO : met à jour une instance existante de la classe demandée, liant les colonnes du jeu de résultats aux noms des propriétés de la classe

  • PDO::FETCH_LAZY : combine PDO::FETCH_BOTH et PDO::FETCH_OBJ, créant ainsi les noms des variables de l'objet, comme elles sont accédées

  • PDO::FETCH_NAMED : retourne un tableau de la même forme que PDO::FETCH_ASSOC, excepté que s'il y a plusieurs colonnes avec les mêmes noms, la valeur pointée par cette clé sera un tableau de toutes les valeurs de la ligne qui a ce nom comme colonne

  • PDO::FETCH_NUM : retourne un tableau indexé par le numéro de la colonne comme elle est retourné dans votre jeu de résultat, commençant à 0

  • PDO::FETCH_OBJ : retourne un objet anonyme avec les noms de propriétés qui correspondent aux noms des colonnes retournés dans le jeu de résultats

cursor_orientation

Pour un objet PDOStatement représentant un curseur scrollable, cette valeur détermine quelle ligne sera retournée à l'appelant. Cette valeur doit être une des constantes PDO::FETCH_ORI_*, et par défaut, vaut PDO::FETCH_ORI_NEXT. Pour demander un curseur scrollable pour votre objet PDOStatement, vous devez définir l'attribut PDO::ATTR_CURSOR à PDO::CURSOR_SCROLL lorsque vous préparez la requête SQL avec la fonction PDO::prepare().

offset

Pour un objet PDOStatement représentant un curseur scrollable pour lequel le paramètre cursor_orientation est défini à PDO::FETCH_ORI_ABS, cette valeur spécifie le numéro absolu de la ligne dans le jeu de résultats qui doit être récupérée.

Pour un objet PDOStatement représentant un curseur scrollable pour lequel le paramètre cursor_orientation est défini à PDO::FETCH_ORI_REL, cette valeur spécifie la ligne à récupérer relativement à la position du curseur avant l'appel à la fonction PDOStatement::fetch().

Valeurs de retour

La valeur retournée par cette fonction en cas de succès dépend du type récupéré. Dans tous les cas, FALSE est retourné si une erreur survient.

Exemples

Exemple #1 Récupération de lignes en utilisant différentes méthodes

<?php
$sth = $dbh->prepare("SELECT nom, couleur FROM fruit");
$sth->execute();

/* styles PDOStatement::fetch */
print("PDO::FETCH_ASSOC: ");
print("Retourne la ligne suivante en tant qu'un tableau indexé par le nom des colonnes\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");

print("PDO::FETCH_BOTH: ");
print("Retourne la ligne suivante en tant qu'un tableau indexé par le nom et le numéro de la colonne\n");
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print("\n");

print("PDO::FETCH_LAZY: ");
print("Retourne la ligne suivante en tant qu'objet anonyme ayant les noms de colonnes comme propriétés\n");
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print("\n");

print("PDO::FETCH_OBJ: ");
print("Retourne la ligne suivante en tant qu'objet anonyme ayant les noms de colonnes comme propriétés\n");
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->name;
print("\n");
?>

L'exemple ci-dessus va afficher :

PDO::FETCH_ASSOC: Retourne la ligne suivante en tant qu'un tableau indexé par le nom des colonnes
Array
(
    [nom] => apple
    [couleur] => red
)

PDO::FETCH_BOTH: Retourne la ligne suivante en tant qu'un tableau indexé par le nom et le numéro de la colonne
Array
(
    [nom] => banana
    [0] => banana
    [couleur] => yellow
    [1] => yellow
)

PDO::FETCH_LAZY: Retourne la ligne suivante en tant qu'objet anonyme ayant les noms de colonnes comme propriétés PDORow Object
(
    [nom] => orange
    [couleur] => orange
)

PDO::FETCH_OBJ: Retourne la ligne suivante en tant qu'objet anonyme ayant les noms de colonnes comme propriétés kiwi

Exemple #2 Récupération des lignes avec un curseur scrollable

<?php
function readDataForwards($dbh) {
  $sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY BET';
  try {
    $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR, PDO::CURSOR_SCROLL));
    $stmt->execute();
    while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) {
      $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
      print $data;
    }
    $stmt = null;
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}
function readDataBackwards($dbh) {
  $sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
  try {
    $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR, PDO::CURSOR_SCROLL));
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
    do {
      $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
      print $data;
    } while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
    $stmt = null;
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}

print "Lecture en avant :\n";
readDataForwards($conn);

print "Lecture en arrière :\n";
readDataBackwards($conn);
?>

L'exemple ci-dessus va afficher :

Lecture en avant :
21    10    5
16    0     5
19    20    10

Lecture en arrière :
19    20    10
16    0     5
21    10    5

Voir aussi

  • PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
  • PDOStatement::execute() - Exécute une requête préparée
  • PDOStatement::fetchAll() - Retourne un tableau contenant toutes les lignes du jeu d'enregistrements
  • PDOStatement::fetchColumn() - Retourne une colonne depuis la ligne suivante d'un jeu de résultats
  • PDOStatement::fetchObject() - Récupère la prochaine ligne et la retourne en tant qu'objet
  • PDOStatement::setFetchMode() - Définit le mode de récupération par défaut pour cette requête


Retourne un tableau contenant toutes les lignes du jeu d'enregistrements

  • « PDOStatement::fetch
  • PDOStatement::fetchColumn »
  • PHP Manual
  • PDOStatement
  • Retourne un tableau contenant toutes les lignes du jeu d'enregistrements

PDOStatement::fetchAll

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::fetchAll — Retourne un tableau contenant toutes les lignes du jeu d'enregistrements

Description

public array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )

Liste de paramètres

fetch_style

Contrôle le contenu du tableau retourné comme documenté dans la fonction PDOStatement::fetch(). Valeur par défaut : PDO::ATTR_DEFAULT_FETCH_MODE (qui prend sa valeur par défaut de PDO::FETCH_BOTH).

Pour retourner un tableau contenant toutes les valeurs d'une seule colonne depuis le jeu de résultats, spécifiez PDO::FETCH_COLUMN. Vous pouvez spécifier quelle colonne vous voulez avec le paramètre fetch_argument.

Pour récupérer uniquement les valeurs uniques d'une seule colonne depuis le jeu de résultats, utilisez PDO::FETCH_COLUMN avec PDO::FETCH_UNIQUE.

Pour retourner un tableau associatif groupé par les valeurs d'une colonne spécifique, utilisez PDO::FETCH_COLUMN avec PDO::FETCH_GROUP.

fetch_argument

Cet argument prend une valeur différente en fonction de la valeur de l'argument fetch_style:

  • PDO::FETCH_COLUMN: Retourne le numéro de la colonne demandée (indexée à partir de 0).

  • PDO::FETCH_CLASS: Retourne une instance de la classe désirée. Les colonnes sélectionnées sont liées aux attributs de la classe.

  • PDO::FETCH_FUNC: Retourne la valeur de retour de la fonction de rappel précisée.

ctor_args

Arguments du constructeur personnalisé de la classe lorsque l'argument fetch_style est à PDO::FETCH_CLASS.

Valeurs de retour

PDOStatement::fetchAll() retourne un tableau contenant toutes les lignes du jeu d'enregistrements. Le tableau représente chaque ligne comme soit un tableau de valeurs des colonnes, soit un objet avec des propriétés correspondant à chaque nom de colonne.

L'utilisation de cette méthode pour récupérer de gros jeux de résultats peut augmenter les ressources du système, mais également ces ressources. Plutôt que de récupérer toutes les données et de les manipuler avec PHP, utilisez le serveur de base de données pour manipuler les jeux de résultats. Par exemple, utilisez les clauses WHERE et ORDER BY dans vos requêtes SQL pour restreindre les résultats avant de les récupérer et de les traiter avec PHP.

Exemples

Exemple #1 Récupération de toutes les lignes d'un jeu de résultats

<?php
$sth = $dbh->prepare("SELECT nom, couleur FROM fruit");
$sth->execute();

/* Récupération de toutes les lignes d'un jeu de résultats */
print("Récupération de toutes les lignes d'un jeu de résultats :\n");
$result = $sth->fetchAll();
print_r($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Récupération de toutes les lignes d'un jeu de résultats :
Array
(
    [0] => Array
        (
            [nom] => pear
            [0] => pear
            [couleur] => green
            [1] => green
        )

    [1] => Array
        (
            [nom] => watermelon
            [0] => watermelon
            [couleur] => pink
            [1] => pink
        )

)

Exemple #2 Récupération de toutes les valeurs d'une seule colonne depuis un jeu de résultats

L'exemple suivant montre comment retourner toutes les valeurs d'une seule colonne depuis un jeu de résultats, même si la requête SQL retourne plusieurs colonnes par lignes.

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Récupération de toutes les valeurs de la première colonne */
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
var_dump($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array(3)
(
    [0] =>
    string(5) => apple
    [1] =>
    string(4) => pear
    [2] =>
    string(10) => watermelon
)

Exemple #3 Grouper toutes les valeurs d'une seule colonne

L'exemple suivant montre comment retourner un tableau associatif groupé par les valeurs de la colonne spécifiée d'un jeu de résultats. Le tableau contient trois clés : les valeurs apple et pear sont retournées sous la forme de tableaux qui contiennent deux couleurs différentes, tandis que watermelon est retourné sous la forme d'un tableau qui contient uniquement une seule couleur.

<?php
$insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)");
$insert->execute(array('apple', 'green'));
$insert->execute(array('pear', 'yellow'));

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Grouper les valeurs de la première colonne */
var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["apple"]=>
    array(2) {
      [0]=>
        string(5) "green"
      [1]=>
        string(3) "red"
    }
  ["pear"]=>
    array(2) {
      [0]=>
        string(5) "green"
      [1]=>
        string(6) "yellow"
    }
  ["watermelon"]=>
    array(1) {
      [0]=>
        string(5) "green"
    }
}

Exemple #4 Instancier une classe pour chaque résultat

L'exemple suivant montre le comportement de PDO::FETCH_CLASS.

<?php
class fruit {
    public $name;
    public $colour;
}

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

$result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit");
var_dump($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  object(fruit)#1 (2) {
    ["name"]=>
    string(5) "apple"
    ["colour"]=>
    string(5) "green"
  }
  [1]=>
  object(fruit)#2 (2) {
    ["name"]=>
    string(4) "pear"
    ["colour"]=>
    string(6) "yellow"
  }
  [2]=>
  object(fruit)#3 (2) {
    ["name"]=>
    string(10) "watermelon"
    ["colour"]=>
    string(4) "pink"
  }
}

Exemple #5 Appel d'une fonction pour chaque résultat

L'exemple suivant montre le comportement de PDO::FETCH_FUNC.

<?php
function fruit($name, $colour) {
    return "{$name}: {$colour}";
}

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

$result = $sth->fetchAll(PDO::FETCH_FUNC, "fruit");
var_dump($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  string(12) "apple: green"
  [1]=>
  string(12) "pear: yellow"
  [2]=>
  string(16) "watermelon: pink"
}

Voir aussi

  • PDO::query() - Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement
  • PDOStatement::fetch() - Récupère la ligne suivante d'un jeu de résultats PDO
  • PDOStatement::fetchColumn() - Retourne une colonne depuis la ligne suivante d'un jeu de résultats
  • PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
  • PDOStatement::setFetchMode() - Définit le mode de récupération par défaut pour cette requête


Retourne une colonne depuis la ligne suivante d'un jeu de résultats

  • « PDOStatement::fetchAll
  • PDOStatement::fetchObject »
  • PHP Manual
  • PDOStatement
  • Retourne une colonne depuis la ligne suivante d'un jeu de résultats

PDOStatement::fetchColumn

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)

PDOStatement::fetchColumn — Retourne une colonne depuis la ligne suivante d'un jeu de résultats

Description

public mixed PDOStatement::fetchColumn ([ int $column_number = 0 ] )

Retourne une colonne depuis la ligne suivante d'un jeu de résultats ou FALSE s'il n'y a plus de ligne.

Note:

PDOStatement::fetchColumn() ne doit pas être utilisé pour récupérer des colonnes contenant des booléens, car il n'est pas possible de distinguer une valeur FALSE d'un retour avec aucune ligne à récupérer. Utilisez PDOStatement::fetch() à la place.

Liste de paramètres

column_number

Numéro de la colonne que vous voulez récupérer depuis la ligne (commençant à 0). Si aucune valeur n'est fournie, PDOStatement::fetchColumn() récupérera la première colonne.

Valeurs de retour

PDOStatement::fetchColumn() retourne une colonne depuis la ligne suivante d'un jeu de résultats.

Avertissement

Il n'y a pas de solution pour retourner une autre colonne depuis la même ligne si vous utilisez la fonction PDOStatement::fetchColumn() pour récupérer les données.

Exemples

Exemple #1 Retourne la première colonne de la ligne suivante

<?php
$sth = $dbh->prepare("SELECT nom, couleur FROM fruit");
$sth->execute();

/* Récupère la première colonne depuis la première ligne d'un jeu de résultats */
print("Récupère la première colonne depuis la première ligne d'un jeu de résultats :\n");
$result = $sth->fetchColumn();
print("nom=$result\n");

print("Récupère la deuxième colonne depuis la seconde ligne d'un jeu de résultats :\n");
$result = $sth->fetchColumn(1);
print("couleur=$result\n");
?>

L'exemple ci-dessus va afficher :

Récupère la première colonne depuis la première ligne d'un jeu de résultats :
nom=lemon
Récupère la deuxième colonne depuis la seconde ligne d'un jeu de résultats :
couleur=orange

Voir aussi

  • PDO::query() - Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement
  • PDOStatement::fetch() - Récupère la ligne suivante d'un jeu de résultats PDO
  • PDOStatement::fetchAll() - Retourne un tableau contenant toutes les lignes du jeu d'enregistrements
  • PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
  • PDOStatement::setFetchMode() - Définit le mode de récupération par défaut pour cette requête


Récupère la prochaine ligne et la retourne en tant qu'objet

  • « PDOStatement::fetchColumn
  • PDOStatement::getAttribute »
  • PHP Manual
  • PDOStatement
  • Récupère la prochaine ligne et la retourne en tant qu'objet

PDOStatement::fetchObject

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.4)

PDOStatement::fetchObject — Récupère la prochaine ligne et la retourne en tant qu'objet

Description

public mixed PDOStatement::fetchObject ([ string $class_name = "stdClass" [, array $ctor_args ]] )

Récupère la prochaine ligne et la retourne en tant qu'objet. Cette fonction
est une alternative à PDOStatement::fetch() avec
PDO::FETCH_CLASS ou le style
PDO::FETCH_OBJ.

Liste de paramètres

class_name

Nom de la classe créée.

ctor_args

Éléments de ce tableau sont passés au constructeur.

Valeurs de retour

Retourne une instance de la classe demandée avec les propriétés de noms qui correspondent aux noms des colonnes ou FALSE si une erreur survient.

Voir aussi

  • PDOStatement::fetch() - Récupère la ligne suivante d'un jeu de résultats PDO


Récupère un attribut de requête

  • « PDOStatement::fetchObject
  • PDOStatement::getColumnMeta »
  • PHP Manual
  • PDOStatement
  • Récupère un attribut de requête

PDOStatement::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::getAttribute — Récupère un attribut de requête

Description

public mixed PDOStatement::getAttribute ( int $attribute )

Récupère un attribut de la requête. Actuellement, aucun attribut générique n'existe, mais uniquement des spécificités du driver :

  • PDO::ATTR_CURSOR_NAME (spécificité de Firebird et d'ODBC) : Récupère le nom du curseur pour UPDATE ... WHERE CURRENT OF.

Valeurs de retour

Retourne la valeur de l'attribut.

Voir aussi

  • PDO::getAttribute() - Récupère un attribut d'une connexion à une base de données
  • PDO::setAttribute() - Configure un attribut PDO
  • PDOStatement::setAttribute() - Définit un attribut de requête


Retourne les métadonnées pour une colonne d'un jeu de résultats

  • « PDOStatement::getAttribute
  • PDOStatement::nextRowset »
  • PHP Manual
  • PDOStatement
  • Retourne les métadonnées pour une colonne d'un jeu de résultats

PDOStatement::getColumnMeta

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::getColumnMeta — Retourne les métadonnées pour une colonne d'un jeu de résultats

Description

public array PDOStatement::getColumnMeta ( int $column )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère les metainformations pour une colonne d'un jeu de résultats dans un tableau associatif.

Avertissement

Tous les drivers PDO ne supportent pas la fonction PDOStatement::getColumnMeta().

Liste de paramètres

column

Le nom de la colonne dans le jeu de résultats.

Valeurs de retour

Retourne un tableau associatif contenant les valeurs suivantes représentant les metainformations pour une colonne :

Metainformations d'une colonne
Nom | Valeur
native_type | Le type natif PHP utilisé pour représenter la valeur de la colonne.
driver:decl_type | Le type SQL utilisé pour représenter la valeur de la colonne dans la base de données. Si la colonne du jeu de résultats est le résultat d'une fonction, cette valeur n'est pas retournée par la fonction PDOStatement::getColumnMeta().
flags | N'importe quelle balise définie pour cette colonne.
name | Le nom de cette colonne, comme retourné par la base de données.
table | Le nom de la table de cette colonne, tel que retourné par la base de données.
len | La longueur de cette colonne. Normalement, -1 pour les types autres que les nombres décimaux à virgule flottante.
precision | La précision numérique pour cette colonne. Normalement, 0 pour les types autres que les nombres décimaux à virgule flottante.
pdo_type | Le type de cette colonne comme représenté par la constante PDO::PARAM_*.

Retourne FALSE si la colonne demandée n'existe pas dans le jeu de résultats, ou si aucun jeu de résultats n'existe.

Historique

Version | Description
5.2.3 | champs table

Exemples

Exemple #1 Récupération des metainformations pour une colonne

L'exemple suivant montre le résultat de la récupération des metainformations pour une colonne générée par une fonction (COUNT) dans un pilote PDO_SQLITE.

<?php
$select = $DB->query('SELECT COUNT(*) FROM fruit');
$meta = $select->getColumnMeta(0);
var_dump($meta);
?>

L'exemple ci-dessus va afficher :

array(6) {
   ["native_type"]=>
   string(7) "integer"
   ["flags"]=>
      array(0) {
      }
   ["name"]=>
   string(8) "COUNT(*)"
   ["len"]=>
   int(-1)
   ["precision"]=>
   int(0)
   ["pdo_type"]=>
   int(2)
}

Voir aussi

  • PDOStatement::columnCount() - Retourne le nombre de colonnes dans le jeu de résultats
  • PDOStatement::rowCount() - Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()


Avance à la prochaine ligne de résultats d'un gestionnaire de lignes de résultats multiples

  • « PDOStatement::getColumnMeta
  • PDOStatement::rowCount »
  • PHP Manual
  • PDOStatement
  • Avance à la prochaine ligne de résultats d'un gestionnaire de lignes de résultats multiples

PDOStatement::nextRowset

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::nextRowset — Avance à la prochaine ligne de résultats d'un gestionnaire de lignes de résultats multiples

Description

public bool PDOStatement::nextRowset ( void )

Quelques bases de données supportent les procédures stockées qui retournent plus d'une ligne de résultats (aussi connu comme des jeux de résultats). PDOStatement::nextRowset() vous permet d'accéder à la seconde et suivantes lignes de résultats associées avec l'objet PDOStatement. Chaque ligne de résultats a des jeux différents de colonnes depuis la ligne de résultats.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupération de multiples lignes de résultats retournées par une procédure stockée

L'exemple suivant montre comment appeler une procédure stockée, MULTIPLE_RESULTS, qui retourne trois lignes de résultats. Nous utilisons une boucle do / while pour parcourir la méthode PDOStatement::nextRowset(), qui retourne FALSE et termine la boucle lorsque plus aucune ligne de résultats ne peut être retournée.

<?php
$sql = 'CALL multiple_rowsets()';
$stmt = $conn->query($sql);
$i = 1;
do {
    $rowset = $stmt->fetchAll(PDO::FETCH_NUM);
    if ($rowset) {
        printResultSet($rowset, $i);
    }
    $i++;
} while ($stmt->nextRowset());

function printResultSet(&$rowset, $i) {
    print "Jeu de résultats $i:\n";
    foreach ($rowset as $row) {
        foreach ($row as $col) {
            print $col . "\t";
        }
        print "\n";
    }
    print "\n";
}
?>

L'exemple ci-dessus va afficher :

Jeu de résultats 1:
apple    red
banana   yellow

Jeu de résultats 2:
orange   orange    150
banana   yellow    175

Jeu de résultats 3:
lime     green
apple    red
banana   yellow

Voir aussi

  • PDOStatement::columnCount() - Retourne le nombre de colonnes dans le jeu de résultats
  • PDOStatement::execute() - Exécute une requête préparée
  • PDOStatement::getColumnMeta() - Retourne les métadonnées pour une colonne d'un jeu de résultats
  • PDO::query() - Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement


Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()

  • « PDOStatement::nextRowset
  • PDOStatement::setAttribute »
  • PHP Manual
  • PDOStatement
  • Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()

PDOStatement::rowCount

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::rowCount — Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()

Description

public int PDOStatement::rowCount ( void )

PDOStatement::rowCount() retourne le nombre de lignes affectées par la dernière requête DELETE, INSERT ou UPDATE exécutée par l'objet PDOStatement correspondant.

Si la dernière requête SQL exécutée par l'objet PDOStatement associé est une requête de type SELECT, quelques bases de données retourneront le nombre de lignes retournées par cette requête. Néanmoins, ce comportement n'est pas garanti pour toutes les bases de données et ne devrait pas être exécuté pour des applications portables.

Valeurs de retour

Retourne le nombre de lignes.

Exemples

Exemple #1 Retourne le nombre de lignes effacées

PDOStatement::rowCount() retourne le nombre de lignes affectées par une requête DELETE, INSERT, ou UPDATE.

<?php
/* Effacement de toutes les lignes de la table FRUIT */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();

/* Retourne le nombre de lignes effacées */
print("Retourne le nombre de lignes effacées :\n");
$count = $del->rowCount();
print("Effacement de $count lignes.\n");
?>

L'exemple ci-dessus va afficher :

Retourne le nombre de lignes effacées :
Effacement de 9 lignes.

Exemple #2 Comptage des lignes retournées par une requête SELECT

Pour la plupart des bases de données, PDOStatement::rowCount() ne retourne pas le nombre de lignes affectées par une requête SELECT. À la place, utilisez PDO::query() pour faire une requête SELECT COUNT(*), puis utilisez PDOStatement::fetchColumn() pour récupérer le nombre de lignes retournées. Votre application peut ainsi effectuer la bonne action.

<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
if ($res = $conn->query($sql)) {

   /* Récupère le nombre de lignes qui correspond à la requête SELECT */
   if ($res->fetchColumn() > 0) {

      /* Effectue la vraie requête SELECT et travaille sur le résultat */
      $sql = "SELECT nom FROM fruit WHERE calories > 100";
      foreach ($conn->query($sql) as $row) {
      print "Nom : " .  $row['NOM'] . "\n";
      }
   }
   /* Aucune ligne ne correspond -- faire quelque chose d'autre */
   else {
      print "Aucune ligne ne correspond à la requête.";
   }
}

$res = null;
$conn = null;
?>

L'exemple ci-dessus va afficher :

apple
banana
orange
pear

Voir aussi

  • PDOStatement::columnCount() - Retourne le nombre de colonnes dans le jeu de résultats
  • PDOStatement::fetchColumn() - Retourne une colonne depuis la ligne suivante d'un jeu de résultats
  • PDO::query() - Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement


Définit un attribut de requête

  • « PDOStatement::rowCount
  • PDOStatement::setFetchMode »
  • PHP Manual
  • PDOStatement
  • Définit un attribut de requête

PDOStatement::setAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::setAttribute — Définit un attribut de requête

Description

public bool PDOStatement::setAttribute ( int $attribute , mixed $value )

Définit un attribut de la requête. Actuellement, aucun attribut générique n'est défini, mais uniquement des spécificités du driver :

  • PDO::ATTR_CURSOR_NAME (spécificité de Firebird et d'ODBC) : Définit le nom du curseur pour UPDATE ... WHERE CURRENT OF.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • PDO::getAttribute() - Récupère un attribut d'une connexion à une base de données
  • PDO::setAttribute() - Configure un attribut PDO
  • PDOStatement::getAttribute() - Récupère un attribut de requête


Définit le mode de récupération par défaut pour cette requête

  • « PDOStatement::setAttribute
  • PDOException »
  • PHP Manual
  • PDOStatement
  • Définit le mode de récupération par défaut pour cette requête

PDOStatement::setFetchMode

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::setFetchMode — Définit le mode de récupération par défaut pour cette requête

Description

public bool PDOStatement::setFetchMode ( int $mode )
public bool PDOStatement::setFetchMode ( int $PDO::FETCH_COLUMN , int $colno )
public bool PDOStatement::setFetchMode ( int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
public bool PDOStatement::setFetchMode ( int $PDO::FETCH_INTO , object $object )

Liste de paramètres

mode

Le mode de récupération doit être une des constantes PDO::FETCH_*.

colno

Numéro de la colonne.

classname

Nom de la classe.

ctorargs

Arguments du constructeur.

object

Objet.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Définition du mode de récupération

L'exemple suivant montre comment PDOStatement::setFetchMode() modifie le mode de récupération par défaut pour un objet PDOStatement.

<?php
$sql = 'SELECT name, colour, calories FROM fruit';
try {
  $stmt = $dbh->query($sql);
  $result = $stmt->setFetchMode(PDO::FETCH_NUM);
  while ($row = $stmt->fetch()) {
    print $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
  }
}
catch (PDOException $e) {
  print $e->getMessage();
}
?>

L'exemple ci-dessus va afficher :

apple   red     150
banana  yellow  250
orange  orange  300
kiwi    brown   75
lemon   yellow  25
pear    green   150
watermelon      pink    90


La classe PDOException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Représente une erreur émise par PDO. Vous ne devez pas lancer une exception PDOException depuis votre propre code. Voir le chapitre sur les exceptions pour plus d'informations concernant les exceptions en PHP.

Synopsis de la classe

PDOException extends RuntimeException {
/* Propriétés */
public array $errorInfo ;
protected string $code ;
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

errorInfo

Correspond à PDO::errorInfo() ou PDOStatement::errorInfo()

code

Code erreur SQLSTATE. Utilisez la méthode Exception::getCode() pour y accéder.


Pilotes PDO

Sommaire

  • CUBRID (PDO)
  • MS SQL Server (PDO)
  • Firebird (PDO)
  • IBM (PDO)
  • Informix (PDO)
  • MySQL (PDO)
  • MS SQL Server (PDO)
  • Oracle (PDO)
  • ODBC et DB2 (PDO)
  • PostgreSQL (PDO)
  • SQLite (PDO)
  • 4D (PDO)

Les pilotes suivants (driver) sont actuellement implémentés dans l'interface PDO :

Nom du pilote | Bases de données prises en charge
PDO_CUBRID | Cubrid
PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD | Firebird
PDO_IBM | IBM DB2
PDO_INFORMIX | IBM Informix Dynamic Server
PDO_MYSQL | MySQL 3.x/4.x/5.x
PDO_OCI | Oracle Call Interface
PDO_ODBC | ODBC v3 (IBM DB2, unixODBC et win32 ODBC)
PDO_PGSQL | PostgreSQL
PDO_SQLITE | SQLite 3 et SQLite 2
PDO_SQLSRV | Microsoft SQL Server / SQL Azure
PDO_4D | 4D


Fonctions CUBRID (PDO_CUBRID)

Introduction

PDO_CUBRID est un driver implémentant l' interface PHP Data Objects (PDO) pour activer l'accès depuis PHP aux bases de données CUBRID.

Note:

La version courante de PDO_CUBRID ne supporte pas les connexions persistantes.

Installation

Pour construire l'extension PDO_CUBRID, CUBRID DBMS doit être installé sur le même système que PHP. PDO_CUBRID est une extension » PECL, aussi, vous devez suivre les instructions de Installation d'extensions PECL pour installer l'extension PDO_CUBRID. Lancez la commande configure pour localiser le dossier de base de CUBRID comme ceci :

   $ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
La commande configure prendra par défaut la valeur de la variable d'environnement CUBRID.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows. Des informations sur l'installation manuelle sous Linux et Windows peuvent être trouvées dans le fichier build-guide.html du paquet CUBRID de PECL.

Fonctionnalités

Fonctionnalités PDO_CUBRID
Fonctionnalités | Description
Curseurs scrollables | PDO_CUBRID supporte les curseurs scrollables. Le type de curseur par défaut est uniquement un curseur permettant de se déplacer vers l'avant, et vous pouvez utiliser le paramètre driver_options de la méthode PDO::prepare() pour modifier ce type de curseur.
Délai d'expiration | PDO_CUBRID supporte le délai d'expiration d'exécution d'une requête sql ; vous pouvez utiliser la méthode PDO::setAttribute() pour définir la valeur.
Autocommit_mode et transaction PDO_CUBRID supporte à la fois l'autocommit_mode et la transaction (autocommit_mode est activé par défaut). Vous pouvez utiliser la méthode PDO::setAttribute() pour modifier ce comportement.

Si vous utilisez PDO::beginTransaction() pour commencer une transaction, la méthode désactivera automatiquement l'autocommit_mode et l'activera de nouveau après un appel à la méthode PDO::commit() ou la méthode PDO::rollBack(). Notez qu'avant de désactiver l'autocommit_mode, tous les travaux en attente seront automatiquement commités.

Requêtes SQL multiples | PDO_CUBRID supporte les requêtes SQL multiples. Elles sont séparées par un point virgule (;).
Informations sur un schéma | PDO_CUBRID implémente la méthode PDO::cubrid_schema() pour récupérer les informations sur le schéma.
LOBs PDO_CUBRID supporte les types de données BLOB/CLOB. Le LOB en PDO est représenté sous la forme d'un flux, aussi, vous pouvez insérer des LOBs en liant un flux et récupérer des LOBs en lisant un flux retourné par CUBRID PDO. Par exemple :

Exemple #1 Insertion de LOBs dans CUBRID PDO

<?php
$fp = fopen('lob_test.png', 'rb');

$sql_stmt = "INSERT INTO lob_test(name, content) VALUES('lob_test.png', ?)";

$stmt = $dbh->prepare($sql_stmt);
$ret = $stmt->bindParam(1, $fp, PDO::PARAM_LOB);
$ret = $stmt->execute();
?>

Exemple #2 Récupère des LOBs depuis CUBRID PDO

<?php
$sql_stmt = "SELECT content FROM lob_test WHERE name='lob_test.png'";

$stmt = $dbh->prepare($sql_stmt);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_NUM);

header("Content-Type: image/png");
fpassthru($result[0]);
?>

Méta-données des colonnes La méthode PDOStatement::getColumnMeta() en CUBRID PDO retournera un tableau associatif contenant les valeurs suivantes :
  • type
  • name
  • table
  • def
  • precision
  • scale
  • not_null
  • auto_increment
  • unique_key
  • multiple_key
  • primary_key
  • foreign_key
  • reverse_index
  • reverse_unique
Type de données de la collection PDO_CUBRID supporte les types de données SET/MULTISET/SEQUENCE. Si vous n'en spécifiez aucun, le type de données par défaut sera char, par exemple :

Exemple #3 Insertion d'un jeu dans CUBRID PDO avec le type de données par défaut.

<?php
$conn_str ="cubrid:dbname=demodb;host=localhost;port=33000";
$cubrid_pdo = new PDO($conn_str, 'dba', '');

$cubrid_pdo->exec("DROP TABLE if exists test_tbl");
$cubrid_pdo->exec("CREATE TABLE test_tbl (col_1 SET(VARCHAR))");

$sql_stmt_insert = "INSERT INTO test_tbl VALUES (?);";
$stmt = $cubrid_pdo->prepare($sql_stmt_insert);
$data = array("abc","def","ghi");
$ret = $stmt->bindParam(1, $data, PDO::PARAM_NULL);
$ret = $stmt->execute();
var_Dump($ret);
?>

Exemple #4 Spécifie le type de données lors de l'insertion du jeu dans CUBRID PDO

<?php
$conn_str ="cubrid:dbname=demodb;host=localhost;port=33000";
$cubrid_pdo = new PDO($conn_str, 'dba', '');

$cubrid_pdo->exec("DROP TABLE if exists test_tbl");
$cubrid_pdo->exec("CREATE TABLE test_tbl (col_1 SET(int))");

$sql_stmt_insert = "INSERT INTO test_tbl VALUES (?);";
$stmt = $cubrid_pdo->prepare($sql_stmt_insert);
$data = array(1,2,3,4);
$ret = $stmt->bindParam(1, $data, 0,0,"int");
$ret = $stmt->execute();
var_Dump($ret);
?>

Types de données liées CUBRID :(Le cinquième paramètre de la méthode PDOStatement::bindParam):
  • CHAR
  • STRING
  • NCHAR
  • VARNCHAR
  • BIT
  • VARBIT
  • NUMERIC
  • NUMBER
  • INT
  • SHORT
  • BIGINT
  • MONETARY
  • FLOAT
  • DOUBLE
  • DATE
  • TIME
  • DATETIME
  • TIMESTAMP

Constantes pré-définies

Les constantes ci-dessous sont définies par ce pilote et seront seulement disponibles lorsque l'extension aura été compilée dans PHP ou chargée dynamiquement du moteur d'exécution. De plus, ces constantes spécifiques au pilote devraient être utilisées seulement si vous utilisez ce pilote. En utilisant les attributs spécifiques à un pilote avec un autre pilote pourrait causer un comportement inattendu. PDO::getAttribute() pourrait être utilisé pour obtenir l'attribut PDO_ATTR_DRIVER_NAME pour vérifier le pilote, si votre code peut fonctionner sur des pilotes multiples.

Les constantes suivantes peuvent être utilisées pour configurer les attributs de la base de données. Elles peuvent être passées à la méthode PDO::getAttribute() ou à la méthode PDO::setAttribute().

Drapeaux pour les attributs PDO::CUBRID
Constante | Description
PDO::CUBRID_ATTR_ISOLATION_LEVEL | Le niveau d'isolation de la transaction pour la connexion à la base de données.
PDO::CUBRID_ATTR_LOCK_TIMEOUT | Délai d'expiration de la transaction en secondes.
PDO::CUBRID_ATTR_MAX_STRING_LENGTH | Lecture seule. La longueur maximale de la chaîne pour les types de données bit, varbit, char, varchar, nchar, nchar lors de l'utilisation de l'API CUBRID PDO.

Les constantes suivantes peuvent être utilisées lors de la configuration du niveau d'isolation de la transaction. Elles peuvent être passées à la méthode PDO::getAttribute() ou à la méthode PDO::setAttribute().

Drapeaux pour le niveau d'isolation PDO::CUBRID
Constante | Description
PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE | Le niveau d'isolation le moins élevé (1). Une lecture non fiable, non reproductible ou fantôme peut survenir sur le tuple, mais aussi une lecture non reproductible peut survenir pour la table.
PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE | Un niveau d'isolation relativement bas (2). Une lecture non fiable ne peut pas survenir, par contre, une lecture non reproductible ou fantôme peut survenir.
PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE | Le niveau d'isolation par défaut pour CUBRID (3). Une lecture non fiable ou fantôme peut survenir sur le tuple, mais la reproductibilité de la lecture est assurée sur le table.
PDO::TRAN_REP_CLASS_COMMIT_INSTANCE | Un niveau d'isolation relativement bas (4). Une lecture non fiable ne peut survenir, mais les lectures non reproductibles ou fantôme le peuvent.
PDO::TRAN_REP_CLASS_REP_INSTANCE | Un niveau d'isolation relativement haut (5). Les lectures non fiables ou non reproductibles ne peuvent pas survenir, mais une lecture fantôme est possible.
PDO::TRAN_SERIALIZABLE | Le plus haut niveau d'isolation (6). Les problèmes relatifs à la concurrence (i.e. lecture non fiable, lecture non reproductible, lecture fantôme, etc...) ne peuvent survenir.

Les constantes suivantes peuvent être utilisées pour récupérer les informations sur le schéma. Elles peuvent être passées à la fonction PDO::cubrid_schema().

Drapeaux pour le schéma CUBRID
Constante | Description
PDO::CUBRID_SCH_TABLE | Récupère le nom et le type de table CUBRID.
PDO::CUBRID_SCH_VIEW | Récupère le nom et le type de vue dans CUBRID.
PDO::CUBRID_SCH_QUERY_SPEC | Récupère la définition de la requête de la vue.
PDO::CUBRID_SCH_ATTRIBUTE | Récupère les attributs de la colonne de la table.
PDO::CUBRID_SCH_TABLE_ATTRIBUTE | Récupère les attributs de la table.
PDO::CUBRID_SCH_METHOD | Récupère la méthode de l'instance. C'est une méthode appelée par l'instance de la classe. Elle est utilisée plus souvent que la méthode de la classe car la plupart des opérations sont exécutées dans l'instance.
PDO::CUBRID_SCH_TABLE_METHOD | Récupère la méthode de la classe. C'est une méthode appelée par un objet de la classe. Elle est habituellement utilisée pour créer une nouvelle instance de la classe ou pour l'initialiser. Elle est également utilisée pour accéder ou mettre à jour les attributs de la classe.
PDO::CUBRID_SCH_METHOD_FILE | Récupère les informations sur le fichier où la méthode de la table est définie.
PDO::CUBRID_SCH_SUPER_TABLE | Récupère le nom et le type de la table dont les attributs héritent.
PDO::CUBRID_SCH_SUB_TABLE | Récupère le nom et le type de la table dont les attributs héritent.
PDO::CUBRID_SCH_CONSTRAINT | Récupère les contraintes de la table.
PDO::CUBRID_SCH_TRIGGER | Récupère les triggers de la table.
PDO::CUBRID_SCH_TABLE_PRIVILEGE | Récupère les informations sur les privilèges de la table.
PDO::CUBRID_SCH_COL_PRIVILEGE | Récupère les informations sur les privilèges d'une colonne.
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE | Récupère la table directement supérieure à la table.
PDO::CUBRID_SCH_PRIMARY_KEY | Récupère la clé primaire de la table.
PDO::CUBRID_SCH_IMPORTED_KEYS | Récupère les clés importées d'une table.
PDO::CUBRID_SCH_EXPORTED_KEYS | Récupère les clés exportées d'une table.
PDO::CUBRID_SCH_CROSS_REFERENCE | Récupère les relations de référence entre 2 tables.

Sommaire

  • DSN PDO_CUBRID — Connexion aux bases de données CUBRID
  • PDO::cubrid_schema — Récupère le schéma d'informations demandé


Connexion aux bases de données CUBRID

  • « CUBRID (PDO)
  • PDO::cubrid_schema »
  • PHP Manual
  • CUBRID (PDO)
  • Connexion aux bases de données CUBRID

DSN PDO_CUBRID

(No version information available, might only be in Git)

DSN PDO_CUBRID — Connexion aux bases de données CUBRID

Description

Le DSN PDO_CUBRID est composé des éléments suivants, délimités par un point virgule :

préfixe DSN

Le préfixe DSN est cubrid:.

host

Le nom d'hôte sur lequel se trouve le serveur de base de données.

port

Le port sur lequel le serveur de base de données fonctionne.

dbname

Le nom de la base de données.

Notes

Note:

Lorsque vous établissez la connexion à CUBRID, vous devez fournir le nom de l'utilisateur et le mot de passe, mais pas le DSN.

Exemples

Exemple #1 Exemples de DSN PDO_CUBRID

L'exemple suivant montre un DSN PDO_CUBRID pour une connexion à une base de données CUBRID :

cubrid:host=localhost;port=33000;dbname=demodb


Récupère le schéma d'informations demandé

  • « DSN PDO_CUBRID
  • MS SQL Server (PDO) »
  • PHP Manual
  • CUBRID (PDO)
  • Récupère le schéma d'informations demandé

PDO::cubrid_schema

(No version information available, might only be in Git)

PDO::cubrid_schema — Récupère le schéma d'informations demandé

Description

public array PDO::cubrid_schema ( int $schema_type [, string $table_name [, string $col_name ]] )

Cette fonction est utilisée pour récupérer le schéma d'informations demandé depuis la base de données. Vous devez désigner le paramètre table_name, si vous souhaitez récupérer les informations d'une certaine table, le paramètre col_name, si vous souhaitez récupérer les informations d'une certaine colonne (ne peut être utilisé qu'avec PDO::CUBRID_SCH_COL_PRIVILEGE).

Le résultat de cette fonction est retourné sous la forme d'un tableau à 2 dimensions (colonne(tableau associatif) * ligne (tableau numérique)). Les tables suivantes montrent les types de schéma et la structure de la colonne du tableau résultant.

Composition du résultat pour chaque type
Schéma | Numéro de la colonne | Nom de la colonne | Valeur
PDO::CUBRID_SCH_TABLE | 1 | NAME |
 | 2 | TYPE | 0:system table 1:view 2:table
PDO::CUBRID_SCH_VIEW | 1 | NAME |
 | 2 | TYPE | 1:view
PDO::CUBRID_SCH_QUERY_SPEC | 1 | QUERY_SPEC |
PDO::CUBRID_SCH_ATTRIBUTE / PDO::CUBRID_SCH_TABLE_ATTRIBUTE | 1 | ATTR_NAME |
 | 2 | DOMAIN |
 | 3 | SCALE |
 | 4 | PRECISION |
 | 5 | INDEXED | 1:indexed
 | 6 | NOT NULL | 1:not null
 | 7 | SHARED | 1:shared
 | 8 | UNIQUE | 1:unique
 | 9 | DEFAULT |
 | 10 | ATTR_ORDER | base:1
 | 11 | CLASS_NAME |
 | 12 | SOURCE_CLASS |
 | 13 | IS_KEY | 1:key
PDO::CUBRID_SCH_METHOD / PDO::CUBRID_SCH_TABLE_METHOD | 1 | NAME |
 | 2 | RET_DOMAIN |
 | 3 | ARG_DOMAIN |
PDO::CUBRID_SCH_METHOD_FILE | 1 | METHOD_FILE |
PDO::CUBRID_SCH_SUPER_TABLE / PDO::CUBRID_SCH_DIRECT_SUPER_TABLE / PDO::CUBRID_SCH_SUB_TABLE | 1 | CLASS_NAME |
 | 2 | TYPE | 0:system table 1:view 2:table
PDO::CUBRID_SCH_CONSTRAINT | 1 | TYPE | 0:unique 1:index 2:reverse unique 3:reverse index
 | 2 | NAME |
 | 3 | ATTR_NAME |
 | 4 | NUM_PAGES |
 | 5 | NUM_KEYS |
 | 6 | PRIMARY_KEY | 1:primary key
 | 7 | KEY_ORDER | base:1
PDO::CUBRID_SCH_TRIGGER | 1 | NAME |
 | 2 | STATUS |
 | 3 | EVENT |
 | 4 | TARGET_CLASS |
 | 5 | TARGET_ATTR |
 | 6 | ACTION_TIME |
 | 7 | ACTION |
 | 8 | PRIORITY |
 | 9 | CONDITION_TIME |
 | 10 | CONDITION |
PDO::CUBRID_SCH_TABLE_PRIVILEGE / PDO::CUBRID_SCH_COL_PRIVILEGE | 1 | CLASS_NAME / ATTR_NAME |
 | 2 | PRIVILEGE |
 | 3 | GRANTABLE |
PDO::CUBRID_SCH_PRIMARY_KEY | 1 | CLASS_NAME |
 | 2 | ATTR_NAME |
 | 3 | KEY_SEQ | base:1
 | 4 | KEY_NAME |
PDO::CUBRID_SCH_IMPORTED_KEYS / PDO::CUBRID_SCH_EXPORTED_KEYS / PDO::CUBRID_SCH_CROSS_REFERENCE | 1 | PKTABLE_NAME |
 | 2 | PKCOLUMN_NAME |
 | 3 | FKTABLE_NAME | base:1
 | 4 | FKCOLUMN_NAME |
 | 5 | KEY_SEQ | base:1
 | 6 | UPDATE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 7 | DELETE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 8 | FK_NAME |
 | 9 | PK_NAME |

Liste de paramètres

schema_type

Le type du schéma que vous souhaitez récupérer.

table_name

La table dont vous souhaitez récupérer le schéma.

col_name

La colonne dont vous souhaitez récupérer le schéma.

Valeurs de retour

Un tableau contenant les informations relatives au schéma, lorsque le processus s'est exécuté avec succès.

FALSE sera retourné si une erreur survient.

Exemples

Exemple #1 Exemple avec PDO::cubrid_schema()

Cet exemple montre la façon dont on récupère les clés primaires et étrangères de la table "game".

<?php
$pk_list = $dbh->cubrid_schema(PDO::CUBRID_SCH_PRIMARY_KEY, "game");
print_r($pk_list);

$fk_list = $dbh->cubrid_schema(PDO::CUBRID_SCH_IMPORTED_KEYS, "game");
print_r($fk_list);
?>

L'exemple ci-dessus va afficher :

Result:
Array
(
    [0] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => athlete_code
            [KEY_SEQ] => 3
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

    [1] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => event_code
            [KEY_SEQ] => 2
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

    [2] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => host_year
            [KEY_SEQ] => 1
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

)
Array
(
    [0] => Array
        (
            [PKTABLE_NAME] => athlete
            [PKCOLUMN_NAME] => code
            [FKTABLE_NAME] => game
            [FKCOLUMN_NAME] => athlete_code
            [KEY_SEQ] => 1
            [UPDATE_RULE] => 1
            [DELETE_RULE] => 1
            [FK_NAME] => fk_game_athlete_code
            [PK_NAME] => pk_athlete_code
        )

    [1] => Array
        (
            [PKTABLE_NAME] => event
            [PKCOLUMN_NAME] => code
            [FKTABLE_NAME] => game
            [FKCOLUMN_NAME] => event_code
            [KEY_SEQ] => 1
            [UPDATE_RULE] => 1
            [DELETE_RULE] => 1
            [FK_NAME] => fk_game_event_code
            [PK_NAME] => pk_event_code
        )

)


Microsoft SQL Server et Fonctions Sybase (PDO_DBLIB)

Introduction

PDO_DBLIB est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP au Microsoft SQL Server et aux bases de données Sybase par la bibliothèque FreeTDS.

Cette extension n'est plus disponible sous Windows avec PHP 5.3 et suivant.

Sous Windows, vous devriez utiliser SqlSrv, un driver alternatif pour MS SQL disponible chez Microsoft : » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx .

Si vous ne pouvez pas utiliser SqlSrv, vous pouvez utiliser le driver PDO_ODBC pour se connecter à un serveur de bases de données Microsoft SQL et Sybase, sachant que le driver natif Windows DB-LIB est ancien, non sécurisé niveau thread et plus supporté par Microsoft.

Sommaire

  • PDO_DBLIB DSN — Connexion au Serveur Microsoft SQL et bases de données Sybase


Connexion au Serveur Microsoft SQL et bases de données Sybase

  • « MS SQL Server (PDO)
  • Firebird (PDO) »
  • PHP Manual
  • MS SQL Server (PDO)
  • Connexion au Serveur Microsoft SQL et bases de données Sybase

PDO_DBLIB DSN

(PECL PDO_DBLIB >= 0.9.0)

PDO_DBLIB DSN — Connexion au Serveur Microsoft SQL et bases de données Sybase

Description

Le Data Source Name (DSN) de PDO_DBLIB est composé des éléments suivants :

Préfixe DSN

Le préfixe DNS est sybase: si PDO_DBLIB était lié avec les bibliothèques Sybase ct-lib, mssql: si PDO_DBLIB était lié avec les bibliothèques de Microsoft SQL Server, ou dblib: si PDO_DBLIB était lié avec les bibliothèques FreeTDS.

host

L'hôte sur lequel le serveur de base de données se situe.

dbname

Le nom de la base de données.

charset

Le jeu de caractères du client.

appname

Le nom de l'application (utilisé dans sysprocesses). Par défaut, "PHP Generic DB-lib" ou "PHP freetds".

secure

Actuellement inutilisé.

Exemples

Exemple #1 Exemples avec PDO_DBLIB DSN

Les exemples suivants montrent PDO_DBLIB DSN pour se connecter au Microsoft SQL Server et les bases de données Sybase :

mssql:host=localhost;dbname=testdb
sybase:host=localhost;dbname=testdb
dblib:host=localhost;dbname=testdb


Fonctions Firebird (PDO_FIREBIRD)

Introduction

PDO_FIREBIRD est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour permettre l'accès de PHP aux bases de données Firebird.

Installation

Utilisez l'option de compilation --with-pdo-firebird[=DIR] pour installer l'extension PDO Firebird, où [=DIR] (optionnel) représente le chemin vers le dossier d'installation de base de Firebird.

$ ./configure --with-pdo-firebird

Constantes pré-définies

Les constantes ci-dessous sont définies par ce pilote et seront seulement disponibles lorsque l'extension aura été compilée dans PHP ou chargée dynamiquement du moteur d'exécution. De plus, ces constantes spécifiques au pilote devraient être utilisées seulement si vous utilisez ce pilote. En utilisant les attributs spécifiques à un pilote avec un autre pilote pourrait causer un comportement inattendu. PDO::getAttribute() pourrait être utilisé pour obtenir l'attribut PDO_ATTR_DRIVER_NAME pour vérifier le pilote, si votre code peut fonctionner sur des pilotes multiples.

PDO::FB_ATTR_DATE_FORMAT (entier)

Disponible depuis PHP 5.3.0.

Configure le format de la date.

PDO::FB_ATTR_TIME_FORMAT (entier)

Disponible depuis PHP 5.3.0.

Configure le format de l'heure.

PDO::FB_ATTR_TIMESTAMP_FORMAT (entier)

Disponible depuis PHP 5.3.0.

Configure le format des timestamp.

Sommaire

  • PDO_FIREBIRD DSN — Connexion aux bases de données Firebird


Connexion aux bases de données Firebird

  • « Firebird (PDO)
  • IBM (PDO) »
  • PHP Manual
  • Firebird (PDO)
  • Connexion aux bases de données Firebird

PDO_FIREBIRD DSN

(PECL PDO_FIREBIRD >= 0.1.0)

PDO_FIREBIRD DSN — Connexion aux bases de données Firebird

Description

Le Data Source Name (DSN) de PDO_FIREBIRD est composé des éléments suivants :

Préfixe DSN

Le préfixe DNS est firebird:.

dbname

Le nom de la base de données.

charset

Le jeu de caractères.

role

Le nom du rôle SQL.

Exemples

Exemple #1 Exemples avec PDO_FIREBIRD DSN

L'exemple suivant montre PDO_FIREBIRD DSN pour se connecter aux bases de données Firebird :

firebird:dbname=/chemin/vers/DATABASE.FDB

Exemple #2 Exemple avec un DSN PDO_FIREBIRD avec un port et un chemin

L'exemple suivant montre un DSN PDO_FIREBIRD pour la connexion à une base de données Firebird, en utilisant un nom d'hôte, un port et un chemin :

firebird:dbname=hostname/port:/path/to/DATABASE.FDB

Exemple #3 Exemple avec un DSN PDO_FIREBIRD en local et un chemin vers le fichier employee.fdb sur un système Debian

L'exemple suivant montre un DSN PDO_FIREBIRD pour la connexion à une base de données Firebird employee.fdb en local :

firebird:dbname=localhost:/var/lib/firebird/2.5/data/employee.fdb


Fonctions IBM (PDO_IBM)

Introduction

PDO_IBM est un driver qui implémente l'interface PHP Data Objects (PDO) afin d'activer l'accès depuis PHP aux bases de données IBM.

Installation

Pour compiler l'extension PDO_IBM, le client DB2 v9.1 ou supérieur doit être installé sur le même système que PHP. Le client DB2 peut être téléchargé depuis le site d'IBM de » développement d'applications.

Note: Note

Le client DB2 v9.1 ou supérieur supporte les accès directs à DB2 pour les systèmes Linux, UNIX et les serveurs Windows v8 et v9.1.

Le client DB2 v9.1 supporte également les accès à DB2 UDB pour i5 et DB2 UDB pour les serveurs z/OS en utilisant le » produit de connexion DB2 payant.

PDO_IBM est une extension » PECL; vous devez donc suivre les instructions de Installation d'extensions PECL pour installer l'extension PDO_IBM. Exécutez la commande configure afin qu'elle pointe vers le dossier contenant les fichiers d'en-têtes et les bibliothèques de votre client DB2 comme ceci :

 bash$ ./configure --with-pdo-ibm=/path/to/sqllib[,shared]
La commande configure utilise par défaut la valeur de la variable d'environnement DB2DIR.

Sommaire

  • PDO_IBM DSN — Connexion aux bases de données IBM


Connexion aux bases de données IBM

  • « IBM (PDO)
  • Informix (PDO) »
  • PHP Manual
  • IBM (PDO)
  • Connexion aux bases de données IBM

PDO_IBM DSN

(PECL PDO_IBM >= 0.9.0)

PDO_IBM DSN — Connexion aux bases de données IBM

Description

Le nom de la source de données PDO_IBM (DSN) est basé sur le IBM CLI DSN. Les principaux composants de PDO_IBM DSN sont :

DSN prefix

Le préfixe DSN est ibm:.

DSN

Le DSN peut être une valeur parmi celles-ci :

  • a) Configuration de la source des données en utilisant le fichier db2cli.ini ou odbc.ini

  • b) Nom de base de données catalogué, i.e. alias de base de données contenus dans le catalogue du client DB2

  • c) Chaîne de connexion complète dans le format suivant : DRIVER={IBM DB2 ODBC DRIVER};DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password; où les paramètres représentent les valeurs suivantes :

    database

    Le nom de la base de données.

    hostname

    Le nom de l'hôte ou l'adresse IP du serveur de base de données.

    port

    Le port TCP/IP sur lequel la base de données écoute les requêtes.

    username

    Le nom d'utilisateur utilisé pour la connexion à la base de données.

    password

    Le mot de passe utilisé pour la connexion à la base de données.

Exemples

Exemple #1 Exemple avec PDO_IBM DSN en utilisant db2cli.ini

L'exemple suivant montre l'utilisation de PDO_IBM DSN pour la connexion à une base de données DB2 cataloguée comme DB2_9 dans le fichier db2cli.ini :

$db = new PDO("ibm:DSN=DB2_9", "", "");

[DB2_9]
Database=testdb
Protocol=tcpip
Hostname=11.22.33.444
Servicename=56789

Exemple #2 Exemple avec PDO_IBM DSN en utilisant une chaîne complète de connexion

L'exemple suivant montre l'utilisation de PDO_IBM DSN pour la connexion à une base de données DB2 nommé testdb en utilisant la chaîne complète de connexion DB2 CLI :

$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
"HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");


Fonctions Informix (PDO_INFORMIX)

Introduction

PDO_INFORMIX est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès à PHP aux bases de données Informix.

Installation

Pour compiler l'extension PDO_INFORMIX, le SDK Client Informix 2.81 UC1 ou supérieur doit être installé sur le même système que PHP. Le SDK Client Informix est disponible sur le » Site de Support IBM Informix.

PDO_INFORMIX est une extension » PECL, alors suivez les instructions dans Installation d'extensions PECL pour installer l'extension PDO_INFORMIX. Écrivez la commande configure pour pointer au chemin de vos fichiers d'en-têtes SDK Client Informix ainsi que les bibliothèques comme suit :

   bash$ ./configure --with-pdo-informix=/path/to/SDK[,shared]
La commande configure utilise par défaut la variable d'environnement INFORMIXDIR.

Curseurs flottants

PDO_INFORMIX supporte les curseurs flottants; cependant, ils ne sont pas activés par défaut. Pour activer le support des curseurs flottants, vous devez soit fixer ENABLESCROLLABLECURSORS=1 dans les configurations de la connexion ODBC correspondante dans odbc.ini ou passer la clause EnableScrollableCursors=1 dans la chaîne de caractères de connexion DSN.

Sommaire

  • PDO_INFORMIX DSN — Connexion aux bases de données Informix


Connexion aux bases de données Informix

  • « Informix (PDO)
  • MySQL (PDO) »
  • PHP Manual
  • Informix (PDO)
  • Connexion aux bases de données Informix

PDO_INFORMIX DSN

(PECL PDO_INFORMIX >= 0.1.0)

PDO_INFORMIX DSN — Connexion aux bases de données Informix

Description

Le Data Source Name (DSN) de PDO_INFORMIX est basé sur la chaîne de caractères DSN d'Informix ODBC. Les détails sur la configuration d'un DSN Informix ODBC sont disponibles sur » Informix Dynamic Server Information Center. Les composants majeurs de DSN de PDO_INFORMIX sont :

DSN prefix

Le préfixe DSN est informix:.

DSN

Le DSN peut soit être une source de données de configuration en utilisant odbc.ini ou une » chaînes de caractères de connexion complète.

Exemples

Exemple #1 Exemple DSN de PDO_INFORMIX avec odbc.ini

L'exemple suivant montre PDO_INFORMIX DSN pour se connecter à une base de données Informix cataloguée comme Infdrv33 dans odbc.ini :

$db = new PDO("informix:DSN=Infdrv33", "", "");

[ODBC Data Sources]
Infdrv33=INFORMIX 3.3 32-BIT

[Infdrv33]
Driver=/opt/informix/csdk_2.81.UC1G2/lib/cli/iclis09b.so
Description=INFORMIX 3.3 32-BIT
Database=common_db
LogonID=testuser
pwd=testpass
Servername=ids_server
DB_LOCALE=en_US.819
OPTIMIZEAUTOCOMMIT=1
ENABLESCROLLABLECURSORS=1

Exemple #2 Exemple DSN de PDO_INFORMIX avec une chaîne de caractères de connexion

L'exemple suivant montre PDO_INFORMIX DSN pour se connecter à une base de données Informix nommée common_db en utilisant la syntaxe de chaîne de caractères de connexion Informix.

$db = new PDO("informix:host=host.domain.com; service=9800;
    database=common_db; server=ids_server; protocol=onsoctcp;
    EnableScrollableCursors=1", "testuser", "tespass");


Fonctions MySQL (PDO_MYSQL)

Introduction

PDO_MYSQL est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données de MySQL 3.x, 4.x. et 5.x.

PDO_MYSQL tirera avantage des requêtes natives préparées présentes dans MySQL 4.1 et supérieur. Si vous utilisez une version plus ancienne des bibliothèques clientes mysql, PDO les émulera pour vous.

Avertissement

Prenez garde : certains types de tables MySQL (moteur d'enregistrement) ne supportent pas les transactions. Lorsque vous écrivez du code de base de données transactionnel en utilisant un type de table qui ne supporte pas les transactions, MySQL prétendra qu'une transaction était initiée correctement. De plus, toutes requêtes DLL publiées enverra implicitement toutes les transactions en attente.

Installation

Utilisez l'option de compilation --with-pdo-mysql[=DIR] pour installer l'extension PDO MySQL, où [=DIR] (optionnel) représente le chemin vers le dossier d'installation de base de MySQL. Si mysqlnd est passé comme [=DIR], alors le driver natif MySQL sera utilisé.

Optionnellement, l'option --with-mysql-sock[=DIR] définit le chemin vers le socket Unix MySQL pour toutes les extensions MySQL, y compris PDO_MYSQL. Si non spécifié, les chemins par défaut seront utilisés.

Optionnellement, l'option --with-zlib-dir[=DIR] sera utilisé pour définir le préfixe d'installation libz.

$ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock

Le support SSL est activé en utilisant les constantes PDO_MySQL appropriées, ce qui revient à appeler la fonction » mysql_ssl_set() de l'API C MySQL. De plus, SSL ne peut être activé avec PDO::setAttribute car la connexion existe déjà. Reportez-vous à la documentation MySQL sur » la connexion sur MySQL en utilisant SSL.

Historique
Version | Description
5.4.0 | Les bibliothèques cliente MySQL 4.1 et inférieures ne sont plus supportées.
5.3.9 | Ajout du support SSL avec mysqlnd et OpenSSL.
5.3.7 | Ajout du support SSL avec libmysqlclient et OpenSSL.

Constantes pré-définies

Les constantes ci-dessous sont définies par ce pilote et seront seulement disponibles lorsque l'extension aura été compilée dans PHP ou chargée dynamiquement du moteur d'exécution. De plus, ces constantes spécifiques au pilote devraient être utilisées seulement si vous utilisez ce pilote. En utilisant les attributs spécifiques à un pilote avec un autre pilote pourrait causer un comportement inattendu. PDO::getAttribute() pourrait être utilisé pour obtenir l'attribut PDO_ATTR_DRIVER_NAME pour vérifier le pilote, si votre code peut fonctionner sur des pilotes multiples.

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (entier)
Si cet attribut est fixé à TRUE sur un objet de classe PDOStatement, le pilote MySQL utilisera les versions bufferisées de l'API MySQL. Si vous écrivez du code portable, vous devriez utiliser à la place PDOStatement::fetchAll().

Exemple #1 Forcer la bufferisation des requêtes avec mysql

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
    $stmt = $db->prepare('select * from foo',
         array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
} else {
    die("mon application fonctionne seulement avec mysql; Je devrais utiliser \$stmt->fetchAll() à la place");
}
?>

PDO::MYSQL_ATTR_LOCAL_INFILE (entier)

Active LOAD LOCAL INFILE.

Notez que cette option n'a d'effet que si utilisée dans le tableau d'options driver_options du constructeur.

PDO::MYSQL_ATTR_INIT_COMMAND (entier)

Commande à exécuter lors de la connexion au serveur MySQL. Sera automatiquement ré-exécuté lors d'une reconnexion.

Notez que cette option n'a d'effet que si utilisée dans le tableau d'options driver_options du constructeur.

PDO::MYSQL_ATTR_READ_DEFAULT_FILE (entier)

Lit les options depuis le fichier nommé optionnel, plutôt que depuis my.cnf. Cette option n'est pas disponible lors de l'utilisation de mysqlnd car ce dernier ne lit pas les fichiers de configuration de mysql.

PDO::MYSQL_ATTR_READ_DEFAULT_GROUP (entier)

Lit les options depuis le groupe nommé du fichier my.cnf ou depuis le fichier spécifié par MYSQL_READ_DEFAULT_FILE. Cette option n'est pas disponible lors de l'utilisation de mysqlnd car ce dernier ne lit pas les fichiers de configuration de mysql.

PDO::MYSQL_ATTR_MAX_BUFFER_SIZE (entier)

Taille maximale du tampon. Par défaut, vaut 1 MiB. Cette constante n'est pas supportée lorsque mysqlnd est utilisé.

PDO::MYSQL_ATTR_DIRECT_QUERY (entier)

Effectue des requêtes directes, sans utiliser de requêtes préparées.

PDO::MYSQL_ATTR_FOUND_ROWS (entier)

Retourne le nombre d'enregistrements trouvés, pas le nombre d'enregistrements changés.

PDO::MYSQL_ATTR_IGNORE_SPACE (entier)

Autorise les espaces après les noms de fonctions. Fait en sorte que les noms de fonctions soient des mots réservés.

PDO::MYSQL_ATTR_COMPRESS (entier)

Active la compression de la communication réseau. Supporté si mysqlnd est utilisé à partir de PHP 5.3.11.

PDO::MYSQL_ATTR_SSL_CA (entier)

Chemin vers l'authorité certificat SSL.

Existe depuis PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_CAPATH (entier)

Chemin vers le dossier contenant les certificats SSL CA, stockés au format PEM.

Existe depuis PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_CERT (entier)

Chemin vers le certificat SSL.

Existe depuis PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_CIPHER (entier)

Liste d'un ou plusieurs ciphers pour utiliser lors du cryptage SSL, dans un format reconnu par OpenSSL. Par exemple: DHE-RSA-AES256-SHA:AES128-SHA

Existe depuis PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_KEY (entier)

Chemin vers la clé SSL.

Existe depuis PHP 5.3.7.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration du driver PDO_MYSQL
Nom | Défaut | Modifiable
pdo_mysql.default_socket | "/tmp/mysql.sock" | PHP_INI_SYSTEM
pdo_mysql.debug | NULL | PHP_INI_SYSTEM
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

pdo_mysql.default_socket string

Définit un socket de domaine Unix. La valeur peut aussi être définie au moment de la compilation si un socket de domaine Unix est trouvé lors de la configuration. Cette configuration INI n'est disponible que sous Unix.

pdo_mysql.debug boolean

Active le débogage pour le driver PDO_MYSQL. Cette configuration n'est disponible que lorsque le driver PDO_MYSQL est compilé avec mysqlnd et en mode de débogage PDO.

Sommaire

  • PDO_MYSQL DSN — Connexion aux bases de données MySQL


Connexion aux bases de données MySQL

  • « MySQL (PDO)
  • MS SQL Server (PDO) »
  • PHP Manual
  • MySQL (PDO)
  • Connexion aux bases de données MySQL

PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSN — Connexion aux bases de données MySQL

Description

Le Data Source Name (DSN) de PDO_MYSQL est composé des éléments suivants :

Préfixe DSN

Le préfixe DSN est mysql:.

host

L'hôte sur lequel le serveur de base de données se situe.

port

Le numéro de port où le serveur de base de données est en train d'écouter.

dbname

Le nom de la base de données.

unix_socket

Le socket Unix MySQL (ne devrait pas être utilisé avec host ou port).

charset

Le jeu de caractères. Voir la documentation sur les concepts des jeux de caractères pour plus d'informations.

Avant la version 5.3.6 de PHP, cet élément était ignoré. Le même comportement peut être partiellement reproduit avec l'option PDO::MYSQL_ATTR_INIT_COMMAND du driver, comme le montre l'exemple suivant.

Avertissement

La méthode de l'exemple suivant ne peut être utilisée qu'avec des jeux de caractères qui partagent la même représentation des 7 bits les plus faibles qu'en ASCII, comme ISO-8859-1 et UTF-8. Les utilisateurs utilisant des jeux de caractères ayant une représentation différente (comme UTF-16 ou Big5) doivent utiliser l'option charset fournie depuis la version 5.3.6 de PHP.

Exemple #1 Définition du jeu de caractères pour la connexion à UTF-8 avant PHP 5.3.6

<?php
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'username';
$password = 'password';
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);

$dbh = new PDO($dsn, $username, $password, $options);
?>

Historique

Version | Description
5.3.6 | Avant la version 5.3.6, charset était ignoré.

Exemples

Exemple #2 Exemples avec le DSN de PDO_MYSQL

L'exemple suivant montre le DSN PDO_MYSQL pour se connecter aux bases de données MySQL :

mysql:host=localhost;dbname=testdb
Exemples plus complets :
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

Notes

Note: Unix seulement:

Lorsque le nom d'hôte est "localhost", la connexion est faite par un socket Unix. Si PDO_MYSQL est compilé avec libmysqlclient alors le fichier de socket est celui précisé à la compilation de libmysqlclient. Si PDO_MYSQL est compilé avec mysqlnd, un socket par défaut peut être indiqué via la paramètre pdo_mysql.default_socket.


Fonctions Microsoft SQL Server (PDO_SQLSRV)

Introduction

PDO_SQLSRV est un pilote qui implémente l'interface PDO (PHP Data Objects) pour permettre l'accès depuis PHP aux bases de données MS SQL Server (version SQL Server 2005 et supérieures) et SQL Azure.

Installation

L'extension PDO_SQLSRV est activée en ajoutant les bibliothèques DLL appropriées dans votre dossier d'extension PHP et en ajoutant les entrées correspondantes dans le fichier php.ini. PDO_SQLSRV est livré avec 8 pilotes, dont 4 dédiés au support de PDO. Si vous exécutez PHP en version non thread-safe (PHP 5.3), utilisez le fichier php_pdo_sqlsrv_53_nts.dll (vous devez utiliser une version non-thread-safe si vous utilisez IIS comme serveur web). Si vous exécutez PHP en version thread-safe, utilisez le fichier php_pdo_sqlsrv_53_ts.dll. De même pour PHP 5.4, utilisez le fichier php_pdo_sqlsrv_54_nts.dll ou php_pdo_sqlsrv_54_ts.dll suivant si votre installation de PHP est non-thread-safe ou thread-safe.

La version la plus récente du pilote est disponible au téléchargement ici : » téléchargement de SQLSRV 3.0. Si vous avez besoin d'un support de PHP 5.2 et/ou de PHP compilé avec VC6, utilisez la version 2.0 du pilote : » téléchargement de SQLSRV 2.0.

Pour plus d'information à propos des exigences système, consultez le chapitre sur les » exisgences systèmes SQLSRV.

L'extension PDO_SQLSRV n'est compatible qu'avec PHP sur Windows. Pour Linux, reportez-vous à ODBC ainsi qu'au » driver ODBC du serveur SQL Microsoft pour Linux.

Constantes pré-définies

Les constantes ci-dessous sont définies par ce pilote et seront seulement disponibles lorsque l'extension aura été compilée dans PHP ou chargée dynamiquement du moteur d'exécution. De plus, ces constantes spécifiques au pilote devraient être utilisées seulement si vous utilisez ce pilote. En utilisant les attributs spécifiques à un pilote avec un autre pilote pourrait causer un comportement inattendu. PDO::getAttribute() pourrait être utilisé pour obtenir l'attribut PDO_ATTR_DRIVER_NAME pour vérifier le pilote, si votre code peut fonctionner sur des pilotes multiples.

PDO::SQLSRV_TXN_READ_UNCOMMITTED (entier)
Cette constante est une valeur possible pour la clé "TransactionIsolation" du DSN pour SQLSRV. Cette constante positionne le niveau d'isolation de la transaction à "Read Uncommitted".
PDO::SQLSRV_TXN_READ_COMMITTED (entier)
Cette constante est une valeur possible pour la clé "TransactionIsolation" du DSN pour SQLSRV. Cette constante positionne le niveau d'isolation de la transaction à "Read Uncommitted".
PDO::SQLSRV_TXN_REPEATABLE_READ (entier)
Cette constante est une valeur possible pour la clé "TransactionIsolation" du DSN pour SQLSRV. Cette constante positionne le niveau d'isolation de la transaction à "Repeateable Read".
PDO::SQLSRV_TXN_SNAPSHOT (entier)
Cette constante est une valeur possible pour la clé "TransactionIsolation" du DSN pour SQLSRV. Cette constante positionne le niveau d'isolation de la transaction à "Snapshot".
PDO::SQLSRV_TXN_SERIALIZABLE (entier)
Cette constante est une valeur possible pour la clé "TransactionIsolation" du DSN pour SQLSRV. Cette constante positionne le niveau d'isolation de la transaction à "Serializable".
PDO::SQLSRV_ENCODING_BINARY (entier)
Spécifie que cette donnée est envoyée vers le (ou reçue du) serveur comme un flux d'octets, sans opérer d'encodage ou de traduction. Cette constante peut être utilisée dans les appels à PDOStatement::setAttribute, PDO::prepare, PDOStatement::bindColumn, et PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_SYSTEM (entier)
Spécifie que cette donnée est envoyée vers le (ou reçue du) serveur comme un flux de caractères 8 bits, comme spécifié dans la page de code de la locale Windows active sur le système. Tout caractère multi-octet, ou caractère qui n'existe pas dans cette page de code, est substitué par un simple point d'interrogation (?). Cette constante peut être utilisée dans les appels à PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, et PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_UTF8 (entier)
Spécifie que cette donnée est envoyée vers le (ou reçue du) serveur comme un flux de caractères UTF-8. Il s'agit de l'encodage par défaut. Cette constante peut être utilisée dans les appels à PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, et PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_DEFAULT (entier)
Spécifie que cette donnée est envoyée vers le (ou reçue du) serveur en utilisant l'encodage PDO::SQLSRV_ENCODING_SYSTEM si elle est spécifiée pendant la connexion. Si elle est spécifiée dans une instruction "prepare", c'est l'encodage de la connexion qui est utilisé. Cette constante peut être utilisée dans les appels à PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, et PDOStatement::bindParam.
PDO::SQLSRV_ATTR_QUERY_TIMEOUT (entier)
Un entier positif ou nul représentant la durée de timeout, en secondes. Zéro (0) est la valeur par défaut et signifie qu'il n'y a pas de timeout. Cette constante peut être utilisée dans les appels à PDOStatement::setAttribute, PDO::setAttribute, et PDO::prepare.
PDO::SQLSRV_ATTR_DIRECT_QUERY (entier)
Indique une requête qui doit être exécutée directement, sans être préparée. Cette constante peut être utilisée dans les appels à PDO::setAttribute, et PDO::prepare. Pour plus d'informations, voir (en anglais) » Direct and Prepared Statement Execution.

Sommaire

  • PDO_SQLSRV DSN — Connexion à des bases de données MS SQL Server et SQL Azure


Connexion à des bases de données MS SQL Server et SQL Azure

  • « MS SQL Server (PDO)
  • Oracle (PDO) »
  • PHP Manual
  • MS SQL Server (PDO)
  • Connexion à des bases de données MS SQL Server et SQL Azure

PDO_SQLSRV DSN

(No version information available, might only be in Git)

PDO_SQLSRV DSN — Connexion à des bases de données MS SQL Server et SQL Azure

Description

Le fichier DSN (Data Source Name) PDO_SQLSRV est composé des éléments suivants :

préfixe DSN

Le préfixe DSN est sqlsrv:.

APP

Le nom de l'application, utilisé pour les traces.

ConnectionPooling

Spécifie si la connexion est assignée à un pool de connexions (1 ou TRUE) ou non (0 ou FALSE).

Database

The name of the database.Le nom de la base de données.

Encrypt

Spécifie si la communication avec le server SQL Server est encryptée (1 ou TRUE) ou non-encryptée (0 ou FALSE).

Failover_Partner

Sépcifie le serveur et l'instance de la base de données miroir (si elle est activée et configurée) à utiliser quand le serveur principal est inaccessible.

LoginTimeout

Spécifie le nombre de secondes d'attente avant de stopper et mettre en erreur la tentative de connexion.

MultipleActiveResultSets

Désactive, ou active explictement, le support pour des jeux de résultats multiples (Multiple Active Result Sets, MARS).

QuotedId

Spécifie s'il faut utiliser les règles SQL-92 pour les identifiants entre guillemets (1 ou TRUE) ou s'il faut utiliser les règles Transact-SQL standard (0 ou FALSE).

Server

Le nom du serveur de base de données.

TraceFile

Le chemin du fichier utilisé pour les traces.

TraceOn

Spécifie si les traces ODBC sont activées (1 ou TRUE) ou désactivées (0 ou FALSE) à l'activation de la connexion.

TransactionIsolation

Spécifie le niveau d'icolation de la transaction. les valeurs possibles
pour cette option sont
PDO::SQLSRV_TXN_READ_UNCOMMITTED, PDO::SQLSRV_TXN_READ_COMMITTED,
PDO::SQLSRV_TXN_REPEATABLE_READ, PDO::SQLSRV_TXN_SNAPSHOT, et
PDO::SQLSRV_TXN_SERIALIZABLE.

TrustServerCertificate

Spécifie si le client doit faire confiance (1 ou TRUE) ou rejeter (0 ou FALSE) un certificat serveur auto-signé.

WSID

Spécifie le nom de l'ordinateur pour les traces.

Exemples

Exemple #1 Exemples de DSN PDO_SQLSRV

L'exemple suivant montre comment se connecter à la base de données MS SQL Server spécifiée :

$c = new PDO("sqlsrv:Server=localhost;Database=bddtest", "Utilisateur", "MotDePasse");

L'exemple suivant montre comment se connecter à la base de données MS SQL Server spécifiée sur un port spécifique :

$c = new PDO("sqlsrv:Server=localhost,1521;Database=bddtest", "Utilisateur", "MotDePasse");

L'exemple suivant montre comment se connecter à une base de données SQL Azure avec l'ID serveur 12345abcde. Notez que, quand vous vous connectez à Azure avec PDO, votre nom d'utilisateur sera Utilisateur@12345abcde (Utilisateur@IdServeur).

$c = new PDO("sqlsrv:Server=12345abcde.database.windows.net;Database=bddtest", "Utilisateur@12345abcde", "MotDePasse");


Fonctions Oracle (PDO_OCI)

Installation

Utilisez l'option de compilation --with-pdo-oci[=DIR] pour installer l'extension PDO Oracle OCI, où [=DIR] (optionnel) représente le chemin vers le dossier racine d'Oracle. [=DIR] vaut par défaut la valeur de la variable d'environnement $ORACLE_HOME.

Utilisez l'option --with-pdo-oci=instantclient,prefix,version pour leOracle Instant Client SDK, où le préfixe et la version sont configurés.

// Utilisation de $ORACLE_HOME
$ ./configure --with-pdo-oci

// Utilisation de OIC pour Linux avec 10.2.0.3 RPMs avec le préfixe /usr
$ ./configure --with-pdo-oci=instantclient,/usr,10.2.0.3

Sommaire

  • PDO_OCI DSN — Connexion aux bases de données Oracle


Connexion aux bases de données Oracle

  • « Oracle (PDO)
  • ODBC et DB2 (PDO) »
  • PHP Manual
  • Oracle (PDO)
  • Connexion aux bases de données Oracle

PDO_OCI DSN

(PECL PDO_OCI >= 0.1.0)

PDO_OCI DSN — Connexion aux bases de données Oracle

Description

Le Data Source Name (DSN) de PDO_OCI est composé des éléments suivants :

Préfixe DSN

Le préfixe DSN est oci:.

dbname (Oracle Instant Client)

Le URI de la connexion Oracle Instant Client prend la forme de dbname=//hostname:port-number/database. Si vous vous connectez sur une base de données définies dans tnsnames.ora, utilisez seulement le nom de la base de données : dbname=database.

charset

Le jeu de caractères côté client pour l'environnement courant.

Exemples

Exemple #1 Exemples avec PDO_OCI DSN

Les exemples suivants montrent PDO_OCI DSN pour se connecter aux bases de données Oracle :

// Connexion à une base de données définie dans tnsnames.ora
oci:dbname=mydb

// Connexion en utilisant le client Oracle Instant
oci:dbname=//localhost:1521/mydb


Fonctions ODBC et DB2 (PDO_ODBC)

Introduction

PDO_ODBC est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données par les pilotes de ODBC ou par la bibliothèque d'interface IBM DB2 Call Level (DB2 CLI). PDO_ODBC supporte actuellement trois "saveurs" différentes des pilotes de bases de données :

ibm-db2

Supporte l'accès à IBM DB2 Universal Database, Cloudscape et Apache Derby Server à l'aide du client gratuit DB2.

unixODBC

Supporte l'accès aux serveurs de base de données à l'aide du pilote de gestion unixODBC et les bases de données possédées par les pilotes ODBC.

generic

Offre une option de compilation pour les pilotes de gestion ODBC qui ne sont pas explicitement supportés par PDO_ODBC.

Sur Windows, PDO_ODBC est construit dans le noyau de PHP par défaut. Il est lié avec le Windows ODBC Driver Manager, c'est pourquoi PHP peut se connecter à n'importe quelle base de données cataloguée comme étant un System DSN. De plus, PDO_ODBC est le pilote recommandé pour se connecter aux bases de données Microsoft SQL Server.

Installation

PDO_ODBC sur les systèmes UNIX

  1. À partir de PHP 5.1, PDO_ODBC est inclus dans les sources de PHP. Vous pouvez compiler l'extension PDO_ODBC soit en statique ou en module partagé en utilisant les commandes configure suivantes.

    ibm_db2

    ./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
    Pour construire PDO_ODBC avec la saveur ibm-db2, vous devez avoir précédemment installé les en-têtes de développement de l'application de DB2 sur la même machine sur laquelle vous compilez PDO_ODBC. Les en-têtes de développement de l'application DB2 sont une option d'installation dans les serveurs DB2 et sont aussi disponibles en tant que DB2 Application Development Client gratuitement disponibles pour téléchargement à partir du » site. IBM DB2 Universal Database.

    Si vous ne spécifiez pas d'emplacement pour les bibliothèques et les en-têtes de DB2 à la commande configure, PDO_ODBC prendra par défaut /home/db2inst1/sqllib.

    unixODBC

    ./configure --with-pdo-odbc=unixODBC,/usr/local
    Si vous ne spécifiez pas d'emplacement pour les bibliothèques et les en-têtes de unixODBC à la commande configure, PDO_ODBC prendra par défaut /usr/local.

    generic
    ./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration PDO_ODBC
Nom | Défaut | Modifiable | Historique
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | Disponible depuis PHP 5.1.0.
pdo_odbc.db2_instance_name | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.1. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

pdo_odbc.connection_pooling string

Pour mettre en commun les connexions ODBC. Peut être "strict", "relaxed" ou "off" (égal à ""). Le paramètre décrit comment la gestion de la connexion stricte devrait être lorsque les paramètres de connexion se ressemblent pour des connexions mises en commun. strict est la valeur par défaut recommandée et permettra l'utilisation des connexions en cache lorsque des paramètres de connexion similaires sont utilisés. relaxed permettra d'utiliser des connexions mises en cache lorsque des paramètres de connexion similaire seront utilisés. Cela peut augmenter l'utilisation du cache au risque de noyer les informations de connexion entre (par exemple) des serveurs virtuels.

Cette configuration peut seulement être changé à partir du fichier php.ini et affecte le processus entier; n'importe quels autres modules chargé dans le processus qui utilisent les bibliothèques ODBC sera aussi affecté, en incluant l'extension unifié ODBC.

Avertissement

relaxed ne devrait pas être utilisé sur les serveurs partagés, pour des raisons de sécurité.

Astuce

Laissez cette configuration à la valeur par défaut strict à moins que vous ayez une bonne raison pour la changer.

pdo_odbc.db2_instance_name string

Si vous compilez PDO_ODBC en utilisant db2, cette configuration fixe la valeur de la variable d'environnement DB2INSTANCE sur les systèmes d'exploitation Linux et UNIX au nom spécifié de l'instance DB2. Ceci permet à PDO_ODBC de résoudre le chemin des bibliothèques DB2 et de faire des connexions cataloguées aux bases de données DB2.

Cette configuration peut seulement être changée à partir du fichier php.ini et affecte le processus entier; n'importe quels autres modules chargés dans le processus qui utilisent les même bibliothèques ODBC seront aussi affectés, incluant l'extension unifiée ODBC.

Cette configuration n'a aucun effet sur Windows.

Sommaire

  • PDO_ODBC DSN — Connexion aux bases de données ODBC ou DB2


Connexion aux bases de données ODBC ou DB2

  • « ODBC et DB2 (PDO)
  • PostgreSQL (PDO) »
  • PHP Manual
  • ODBC et DB2 (PDO)
  • Connexion aux bases de données ODBC ou DB2

PDO_ODBC DSN

(PECL PDO_ODBC >= 0.1.0)

PDO_ODBC DSN — Connexion aux bases de données ODBC ou DB2

Description

Le Data Source Name (DSN) de PDO_ODBC est composé des éléments suivants :

Préfixe DSN

Le préfixe DSN est odbc:. Si vous vous connectez à une base de données cataloguée dans le pilote de ODBC Manager ou dans le catalogue de DB2, vous pouvez ajouter le nom du catalogue de la base de données au DSN.

DSN

Le nom de la base de données étant catalogué dans le pilote ODBC Manager ou le catalogue DB2. Alternativement, vous pouvez fournir une chaîne de connexion complète pour ODBC pour vous connecter à une base de données comme décrit à » http://www.connectionstrings.com/.

UID

Le nom de l'utilisateur pour la connexion. Si vous spécifiez l'utilisateur dans le DSN, PDO ignorera la valeur de l'utilisateur en argument dans le constructeur PDO.

PWD

Le mot de passe de l'utilisateur pour la connexion. Si vous spécifiez le mot de passe dans le DSN, PDO ignorera la valeur du mot de passe en argument dans le constructeur PDO.

Exemples

Exemple #1 Exemple avec PDO_ODBC DSN (pilote ODBC Manager)

L'exemple suivant montre PDO_ODBC DSN pour se connecter à une base de données ODBC catalogué comme étant testdb dans le pilote ODBC Manager :

odbc:testdb

Exemple #2 Exemple avec PDO_ODBC DSN (connexion non cataloguée IBM DB2)

L'exemple suivant montre PDO_ODBC DSN pour se connecter à une base de données IBM DB2 nommé SAMPLE en utilisant la syntaxe complète de ODBC DSN :

odbc:DRIVER={IBM DB2 ODBC DRIVER};HOSTNAME=localhost;PORT=50000;DATABASE=SAMPLE;PROTOCOL=TCPIP;UID=db2inst1;PWD=ibmdb2;

Exemple #3 Exemple avec PDO_ODBC DSN (connexion non cataloguée Microsoft Access)

L'exemple suivant montre PDO_ODBC DSN pour se connecter à une base de données Microsoft Access enregistré à C:\db.mdb en utilisant la syntaxe complète de ODBC DSN :

odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\db.mdb;Uid=Admin


Fonctions PostgreSQL (PDO_PGSQL)

Introduction

PDO_PGSQL est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données PostgreSQL.

Types de ressources

Cette extension définit une ressource de flux, retournée par la fonction PDO::pgsqlLOBOpen().

Installation

Utilisez l'option de compilation --with-pdo-pgsql[=DIR] pour installer l'extension PDO PostgreSQL, où [=DIR] (optionnel) représente le chemin vers le dossier d'installation de base de PostgreSQL ou le chemin vers le fichier pg_config.

$ ./configure --with-pdo-pgsql

Sommaire

  • PDO_PGSQL DSN — Connexion aux bases de données PostgreSQL
  • PDO::pgsqlCopyFromArray — Copy data from PHP array into table
  • PDO::pgsqlCopyFromFile — Copy data from file into table
  • PDO::pgsqlCopyToArray — Copy data from database table into PHP array
  • PDO::pgsqlCopyToFile — Copy data from table into file
  • PDO::pgsqlGetNotify — Récupère une notification asynchrone
  • PDO::pgsqlGetPid — Récupère le PID du serveur
  • PDO::pgsqlLOBCreate — Crée un nouvel objet large
  • PDO::pgsqlLOBOpen — Ouvre un flux existant de large objet
  • PDO::pgsqlLOBUnlink — Supprime un objet large


Connexion aux bases de données PostgreSQL

  • « PostgreSQL (PDO)
  • PDO::pgsqlCopyFromArray »
  • PHP Manual
  • PostgreSQL (PDO)
  • Connexion aux bases de données PostgreSQL

PDO_PGSQL DSN

(PECL PDO_PGSQL >= 0.1.0)

PDO_PGSQL DSN — Connexion aux bases de données PostgreSQL

Description

Le Data Source Name (DSN) de PDO_PGSQL est composé des éléments suivants, délimités par des espaces ou des points-virgules :

Préfixe DSN

Le préfixe DSN est pgsql:.

host

L'hôte sur lequel le serveur de base de données se situe.

port

L'hôte sur lequel le serveur de base de données se situe.

dbname

Le nom de la base de données.

user

Le nom de l'utilisateur pour la connexion. Si vous spécifiez l'utilisateur dans le DSN, PDO ignorera la valeur de l'utilisateur en argument dans le constructeur PDO.

password

Le mot de passe de l'utilisateur pour la connexion. Si vous spécifiez le mot de passe dans le DSN, PDO ignorera la valeur du mot de passe en argument dans le constructeur PDO.

Note:

Les champs bytea sont retournés sous forme de flux.

Exemples

Exemple #1 Exemples avec PDO_PGSQL DSN

L'exemple suivant montre PDO_PGSQL DSN pour se connecter à une base de données PostgreSQL :

pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass


Copy data from PHP array into table

  • « PDO_PGSQL DSN
  • PDO::pgsqlCopyFromFile »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from PHP array into table

PDO::pgsqlCopyFromArray

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyFromArray — Copy data from PHP array into table

Description

public bool PDO::pgsqlCopyFromArray ( string $table_name , array $rows [, string $delimiter = '\t' [, string $null_as = "\\\\N" [, string $fields ]]] )

Copies data from rows array to table table_name using delimiter as fields delimiter and fields list

Liste de paramètres

table_name

String containing table name

rows

Array of strings with fields separated by delimiter

delimiter

Delimiter used in rows array

null_as

How to interpret null values

fields

List of fields to insert

Valeurs de retour

Returns TRUE on success, ou FALSE si une erreur survient.


Copy data from file into table

  • « PDO::pgsqlCopyFromArray
  • PDO::pgsqlCopyToArray »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from file into table

PDO::pgsqlCopyFromFile

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyFromFile — Copy data from file into table

Description

public bool PDO::pgsqlCopyFromFile ( string $table_name , string $filename [, string $delimiter = '\t' [, string $null_as = "\\\\N" [, string $fields ]]] )

Copies data from file specified by filename into table table_name using delimiter as fields delimiter and fields list

Liste de paramètres

table_name

String containing table name

filename

Filename containing data to import

delimiter

Delimiter used in file specified by filename

null_as

How to interpret null values

fields

List of fields to insert

Valeurs de retour

Returns TRUE on success, ou FALSE si une erreur survient.


Copy data from database table into PHP array

  • « PDO::pgsqlCopyFromFile
  • PDO::pgsqlCopyToFile »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from database table into PHP array

PDO::pgsqlCopyToArray

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyToArray — Copy data from database table into PHP array

Description

public array PDO::pgsqlCopyToArray ( string $table_name , array $rows [, string $delimiter = '\t' [, string $null_as = "\\\\N" [, string $fields ]]] )

Copies data from table into array using delimiter as fields delimiter and fields list

Liste de paramètres

table_name

String containing table name

delimiter

Delimiter used in rows array

null_as

How to interpret null values

fields

List of fields to export

Valeurs de retour

Returns an array of rows, ou FALSE si une erreur survient.


Copy data from table into file

  • « PDO::pgsqlCopyToArray
  • PDO::pgsqlGetNotify »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from table into file

PDO::pgsqlCopyToFile

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyToFile — Copy data from table into file

Description

public bool PDO::pgsqlCopyToFile ( string $table_name , string $filename [, string $delimiter = '\t' [, string $null_as = "\\\\N" [, string $fields ]]] )

Copies data from table into file specified by filename using delimiter as fields delimiter and fields list

Liste de paramètres

table_name

String containing table name

filename

Filename to export data

delimiter

Delimiter used in file specified by filename

null_as

How to interpret null values

fields

List of fields to insert

Valeurs de retour

Returns TRUE on success, ou FALSE si une erreur survient.


Récupère une notification asynchrone

  • « PDO::pgsqlCopyToFile
  • PDO::pgsqlGetPid »
  • PHP Manual
  • PostgreSQL (PDO)
  • Récupère une notification asynchrone

PDO::pgsqlGetNotify

(PHP 5 >= 5.6.0, PHP 7)

PDO::pgsqlGetNotify — Récupère une notification asynchrone

Description

public array PDO::pgsqlGetNotify ([ int $result_type = PDO::FETCH_USE_DEFAULT [, int $ms_timeout = 0 ]] )

Retourne le jeu de résultats représentant une notification asynchrone en attente.

Liste de paramètres

result_type

Le format du résultat, représenté sous la forme d'une constante de type PDO::FETCH_*.

ms_timeout

La durée d'attente d'une réponse, en millisecondes.

Valeurs de retour

Si une ou plusieurs notifications sont en attente, retourne une seule ligne avec les champs message et pid, sinon, retourne FALSE.


Récupère le PID du serveur

  • « PDO::pgsqlGetNotify
  • PDO::pgsqlLOBCreate »
  • PHP Manual
  • PostgreSQL (PDO)
  • Récupère le PID du serveur

PDO::pgsqlGetPid

(PHP 5 >= 5.6.0, PHP 7)

PDO::pgsqlGetPid — Récupère le PID du serveur

Description

public int PDO::pgsqlGetPid ( void )

Retourne le PID du serveur.

Valeurs de retour

Le PID du serveur.


Crée un nouvel objet large

  • « PDO::pgsqlGetPid
  • PDO::pgsqlLOBOpen »
  • PHP Manual
  • PostgreSQL (PDO)
  • Crée un nouvel objet large

PDO::pgsqlLOBCreate

(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBCreate — Crée un nouvel objet large

Description

public string PDO::pgsqlLOBCreate ( void )

PDO::pgsqlLOBCreate() crée un objet large et retourne le OID de cet objet. Vous devrez alors ouvrir un flux sur cet objet en utilisant PDO::pgsqlLOBOpen() pour lire et écrire des données à l'intérieur. Le OID peut être enregistré en colonnes de type OID et doit être utilisé pour référencer l'objet large, sans pour autant augmenter arbitrairement la grandeur des lignes. L'objet large continuera a vivre dans la base de données tant qu'il n'est pas supprimé en appelant PDO::pgsqlLOBUnlink().

Les objets larges peuvent atteindre une taille jusqu'à 2GO, mais sont encombrant à utiliser; vous devez vous assurer que PDO::pgsqlLOBUnlink() est appelée avant de supprimer la dernière ligne qui fait référence son OID de votre base de données. De plus, les objets larges n'ont pas de contrôle d'accès. Comme alternative, essayez la colonne de type BYTEA; les nouvelles versions de PostgreSQL autorisent les colonnes BYTEA à atteindre une taille de 1GO et gère de manière transparente l'enregistrement pour avoir une ligne de taille optimale.

Note: Cette fonction doit être appelée à l'intérieur d'une transaction.

Liste de paramètres

PDO::pgsqlLOBCreate() ne prend aucun paramètre.

Valeurs de retour

Retourne le OID du nouvel objet large créé en cas de réussite ou FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec PDO::pgsqlLOBCreate()

Cet exemple crée un nouvel objet large et copie le contenu d'un fichier à l'intérieur. Le OID est alors enregistré dans une table.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$oid = $db->pgsqlLOBCreate();
$stream = $db->pgsqlLOBOpen($oid, 'w');
$local = fopen($filename, 'rb');
stream_copy_to_stream($local, $stream);
$local = null;
$stream = null;
$stmt = $db->prepare("INSERT INTO BLOBS (ident, oid) VALUES (?, ?)");
$stmt->execute(array($some_id, $oid));
$db->commit();
?>

Voir aussi

  • PDO::pgsqlLOBOpen() - Ouvre un flux existant de large objet
  • PDO::pgsqlLOBUnlink() - Supprime un objet large
  • pg_lo_create() - Crée un objet de grande taille PostgreSQL


Ouvre un flux existant de large objet

  • « PDO::pgsqlLOBCreate
  • PDO::pgsqlLOBUnlink »
  • PHP Manual
  • PostgreSQL (PDO)
  • Ouvre un flux existant de large objet

PDO::pgsqlLOBOpen

(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBOpen — Ouvre un flux existant de large objet

Description

public resource PDO::pgsqlLOBOpen ( string $oid [, string $mode = "rb" ] )

PDO::pgsqlLOBOpen() ouvre un flux pour accéder aux données référencées par oid. Si mode est r, le flux est ouvert en lecture, si mode est w, alors le flux sera ouvert en écriture. Vous pouvez utilisez toutes les fonctions usuelles de système de fichiers, comme fread(), fwrite() et fgets() pour manipuler le contenu du flux.

Note: Cette fonction, ainsi que toutes les manipulations sur l'objet large, doit être appelée et exécutée à l'intérieur d'une transaction.

Liste de paramètres

oid

Un identifiant d'objet large

mode

Si le mode est r, ouverture du flux en lecture. Si le mode est w, ouverture du flux en écriture.

Valeurs de retour

Retourne une ressource de flux en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec PDO::pgsqlLOBOpen()

Suivant l'exemple de PDO::pgsqlLOBCreate(), cet partie de code récupère l'objet large de la base de données et l'affiche au navigateur.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$stmt = $db->prepare("select oid from BLOBS where ident = ?");
$stmt->execute(array($some_id));
$stmt->bindColumn('oid', $oid, PDO::PARAM_STR);
$stmt->fetch(PDO::FETCH_BOUND);
$stream = $db->pgsqlLOBOpen($oid, 'r');
header("Content-type: application/octet-stream");
fpassthru($stream);
?>

Voir aussi

  • PDO::pgsqlLOBCreate() - Crée un nouvel objet large
  • PDO::pgsqlLOBUnlink() - Supprime un objet large
  • pg_lo_open() - Ouvre un objet de grande taille PostgreSQL


Supprime un objet large

  • « PDO::pgsqlLOBOpen
  • SQLite (PDO) »
  • PHP Manual
  • PostgreSQL (PDO)
  • Supprime un objet large

PDO::pgsqlLOBUnlink

(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBUnlink — Supprime un objet large

Description

public bool PDO::pgsqlLOBUnlink ( string $oid )

Supprime un large objet de la base de données identifié par le OID.

Note: Cette fonction doit être appelée à l'intérieur d'une transaction.

Liste de paramètres

oid

Un identifiant d'objet large

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec PDO::pgsqlLOBUnlink()

Cet exemple supprime l'objet large de la base de données avant de supprimer la ligne qui le référence de la table binaire que nous avons utilisé dans nos exemples de PDO::pgsqlLOBCreate() et PDO::pgsqlLOBOpen().

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$db->pgsqlLOBUnlink($oid);
$stmt = $db->prepare("DELETE FROM BLOBS where ident = ?");
$stmt->execute(array($some_id));
$db->commit();
?>

Voir aussi

  • PDO::pgsqlLOBOpen() - Ouvre un flux existant de large objet
  • PDO::pgsqlLOBCreate() - Crée un nouvel objet large


Fonctions SQLite (PDO_SQLITE)

Introduction

PDO_ODBC est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données SQLite 3.

Dans PHP 5.1, l'extension SQLite fournit aussi le pilote pour les bases de données SQLite 2; bien que ce ne soit pas techniquement une partie du pilote de PDO_SQLITE, il se comporte similairement, donc il est documenté a côté de ce pilote. Le pilote SQLite 2 pour PDO est fourni principalement pour rendre plus facile l'importation de l'ancien format SQLite 2 des fichiers de base de données dans une application qui utilisent le pilote SQLite 3 qui est plus rapide et plus efficace. En conséquence, le pilote SQLite 2 n'est pas aussi riche en fonctionnalité que le pilote SQLite 3.

Note:

PDO_SQLITE autorise l'utilisation de chaînes en dehors des flux avec PDO::PARAM_LOB.

Installation

Le driver PDO PDO_SQLITE est actif par défaut. Pour le désactiver, utilisez l'option de compilation --without-pdo-sqlite[=DIR] , où [=DIR] (optionnel) représente le chemin vers le dossier d'installation de base de sqlite.

Sommaire

  • PDO_SQLITE DSN — Connexion aux bases de données SQLite
  • PDO::sqliteCreateAggregate — Référence une fonction agrégative définie par l'utilisateur pour une utilisation dans les requêtes SQL
  • PDO::sqliteCreateCollation — Enregistre une fonction PHP ou définie par l'utilisateur pour l'utiliser comme une fonction de collecte dans les requêtes SQL.
  • PDO::sqliteCreateFunction — Référence une fonction définie par l'utilisateur pour une utilisation dans les requêtes SQL


Connexion aux bases de données SQLite

  • « SQLite (PDO)
  • PDO::sqliteCreateAggregate »
  • PHP Manual
  • SQLite (PDO)
  • Connexion aux bases de données SQLite

PDO_SQLITE DSN

(PECL PDO_SQLITE >= 0.2.0)

PDO_SQLITE DSN — Connexion aux bases de données SQLite

Description

Le Data Source Name (DSN) de PDO_SQLITE est composé des éléments suivants :

Préfixe DSN (SQLite 3)

Le préfixe DSN est sqlite:.

  • Pour accéder à une base de données sur le disque, ajoutez le chemin absolu au préfixe DSN.

  • Pour créer une base de données en mémoire, ajouter :memory: au préfixe DSN.

Préfixe DSN (SQLite 2)

L'extension SQLite dans PHP 5.1 fournit un pilote PDO qui supporte l'accès et la création de bases de données pour SQLite 2. Ceci vous permet d'accéder aux bases de données que vous avez créées avec l'extension SQLite dans une version antérieure de PHP.

Note:

Le pilote sqlite2 n'est disponible que dans PHP 5.1.x si vous avez activé PDO et ext/sqlite. Il n'est actuellement pas disponible à partir de PECL.

Le préfixe DSN pour se connecter aux bases de données SQLite 2 est sqlite2:.

  • Pour accéder à une base de données sur le disque, ajoutez le chemin absolu au préfixe DSN.

  • Pour créer une base de données en mémoire, ajouter :memory: au préfixe DSN.

Exemples

Exemple #1 Exemples avec PDO_SQLITE DSN

Les exemples suivant montrent PDO_SQLITE DSN pour se connecter aux bases de données SQLite :

sqlite:/opt/databases/mydb.sq3
sqlite::memory:
sqlite2:/opt/databases/mydb.sq2
sqlite2::memory:


Référence une fonction agrégative définie par l'utilisateur pour une utilisation dans les requêtes SQL

  • « PDO_SQLITE DSN
  • PDO::sqliteCreateCollation »
  • PHP Manual
  • SQLite (PDO)
  • Référence une fonction agrégative définie par l'utilisateur pour une utilisation dans les requêtes SQL

PDO::sqliteCreateAggregate

(PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)

PDO::sqliteCreateAggregate — Référence une fonction agrégative définie par l'utilisateur pour une utilisation dans les requêtes SQL

Description

public bool PDO::sqliteCreateAggregate ( string $function_name , callable $step_func , callable $finalize_func [, int $num_args ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette méthode est similaire à PDO::sqliteCreateFunction à l'exception qu'elle référence les fonctions qui peuvent être utilisées pour calculer un résultat agrégé à travers toutes les lignes d'une requête.

La différence entre cette méthode et PDO::sqliteCreateFunction est que deux fonctions sont requises pour gérer les agrégation.

Liste de paramètres

function_name

Le nom de la fonction utilisée dans les requêtes SQL.

step_func

Fonction de rappel appelée pour chaque ligne dans le jeu de résultats. Votre fonction PHP devrait accumuler le résultat et stocker son contexte d'agrégation.

Cette fonction doit être définie comme :

mixed step ( mixed $context , int $rownumber , mixed $value1 [, mixed $value2 [, mixed $.. ]] )

context vaudra NULL pour la première ligne; pour les lignes suivantes, il vaudra la même valeur que celle précédemment retournée par la fonction step; vous devriez l'utiliser pour maintenir l'état d'agrégation.

rownumber contiendra le nombre de lignes.

La valeur retournée de cette fonction sera utilisée comme argument context lors du prochain appel d'une fonction d'étape ou finale.

finalize_func

Fonction de rappel pour agréger les "étapes" de données de chaque ligne. Une fois que toutes les lignes ont été traitées, la fonction sera appelée, prendra les données du contexte d'agrégation et retournera le résultat. La fonction de rappel retournera une type compris par SQLite (c'est-à-dire un type scalaire).

Cette fonction doit être définie comme :

mixed fini ( mixed $context , int $rownumber )

context contiendra la valeur de retour du tout dernier appel à la fonction step.

rownumber contiendra le nombre de lignes sur lesquelles l'agrégation a eu lieu.

La valeur de retour de cette fonction sera utilisée comme valeur de retour pour l'agrégation.

num_args

Conseil à l'analyseur SQLite si la fonction de rappel accepte un nombre prédéterminé d'arguments.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple d'agrégation avec une fonction max_length

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$db = new PDO('sqlite::memory:');
$db->exec("CREATE TABLE strings(a)");
$insert = $db->prepare('INSERT INTO strings VALUES (?)');
foreach ($data as $str) {
    $insert->execute(array($str));
}
$insert = null;

function max_len_step(&$context, $rownumber, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
    return $context;
}

function max_len_finalize(&$context, $rownumber)
{
    return $context;
}

$db->sqliteCreateAggregate('max_len', 'max_len_step', 'max_len_finalize');

var_dump($db->query('SELECT max_len(a) from strings')->fetchAll());

?>

Dans cet exemple, on crée une fonction agrégative qui va calculer la longueur de la plus grande chaîne de caractères dans une des colonnes de la table. Pour chaque ligne, la fonction max_len_step est appelée et le paramètre context est passé. Le paramètre de contexte est comme n'importe quelle autre variable PHP et doit être fixé pour contenir un tableau ou même, un objet. Dans cet exemple, nous l'utilisons pour contenir la taille maximale que nous avons vu jusqu'à présent ; si le paramètre string a une grandeur plus importante que celle courante, on met à jour le contexte pour contenir cette nouvelle taille maximale.

Une fois que toutes les lignes ont été traitées, SQLite appelle la fonction max_len_finalize pour déterminer le résultat agrégatif. Ici, nous pourrions effectuer des calculs basés sur les données trouvées dans context. Dans notre exemple simple, nous avons calculé le résultat comme si la requête progressait, alors que nous avons simplement besoin de retourner la valeur de contexte.

Astuce

Il n'est PAS recommandé d'enregistrer une copie des valeurs dans le contexte pour finalement les traiter. Dans ce cas, SQLite utiliserait beaucoup trop de mémoire pour traiter la requête - imaginez la quantité de mémoire nécessaire si un million de lignes étaient enregistrées en mémoire, sachant que chaque ligne contient une chaîne de caractères (32 octets par chaîne).

Astuce

Vous pouvez utiliser PDO::sqliteCreateFunction et PDO::sqliteCreateAggregate pour surcharger les fonctions natives de SQLite.

Note:

Cette méthode n'est pas disponible avec les pilotes de SQLite2. Utilisez l'ancien style de l'API sqlite à la place.

Voir aussi

  • PDO::sqliteCreateFunction
  • sqlite_create_function() - Enregistre une fonction utilisateur "classique" UDF pour SQLite
  • sqlite_create_aggregate() - Enregistre une UDF agrégeante pour les requêtes SQLite


Enregistre une fonction PHP ou définie par l'utilisateur pour l'utiliser comme une fonction de collecte dans les requêtes SQL.

  • « PDO::sqliteCreateAggregate
  • PDO::sqliteCreateFunction »
  • PHP Manual
  • SQLite (PDO)
  • Enregistre une fonction PHP ou définie par l'utilisateur pour l'utiliser comme une fonction de collecte dans les requêtes SQL.

PDO::sqliteCreateCollation

(PHP 5 >= 5.3.11, PHP 7)

PDO::sqliteCreateCollation — Enregistre une fonction PHP ou définie par l'utilisateur pour l'utiliser comme une fonction de collecte dans les requêtes SQL.

Description

public bool PDO::sqliteCreateCollation ( string $name , callable $callback )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

name

Nom de la fonction de collecte SQL à créer ou à re-définir

callback

Le nom d'une fonction PHP ou définie par l'utilisateur à appliquer comme fonction de rappel, définissant le comportement de la collecte. Elle doit accepter deux chaînes et retourner comme le fait la fonction strcmp(), i.e. elle doit retourner -1, 1, ou 0 si la première chaîne trie avant, après ou pareil que la seconde.

Cette fonction doit être définie comme ceci :

int collation ( string $string1 , string $string2 )

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec PDO::sqliteCreateCollation()

<?php
$db = new PDO('sqlite::memory:');
$db->exec("CREATE TABLE test (col1 string)");
$db->exec("INSERT INTO test VALUES ('a1')");
$db->exec("INSERT INTO test VALUES ('a10')");
$db->exec("INSERT INTO test VALUES ('a2')");

$db->sqliteCreateCollation('NATURAL_CMP', 'strnatcmp');
foreach ($db->query("SELECT col1 FROM test ORDER BY col1") as $row) {
  echo $row['col1'] . "\n";
}
echo "\n";
foreach ($db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP") as $row) {
  echo $row['col1'] . "\n";
}
?>

L'exemple ci-dessus va afficher :

a1
a10
a2

a1
a2
a10

Note:

Cette méthode n'est pas disponible avec le driver SQLite2. Utiliser l'ancien style API pour cela, à la place.


Référence une fonction définie par l'utilisateur pour une utilisation dans les requêtes SQL

  • « PDO::sqliteCreateCollation
  • 4D (PDO) »
  • PHP Manual
  • SQLite (PDO)
  • Référence une fonction définie par l'utilisateur pour une utilisation dans les requêtes SQL

PDO::sqliteCreateFunction

(PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)

PDO::sqliteCreateFunction — Référence une fonction définie par l'utilisateur pour une utilisation dans les requêtes SQL

Description

public bool PDO::sqliteCreateFunction ( string $function_name , callable $callback [, int $num_args ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette méthode vous permet de référencer une fonction PHP avec SQLite comme étant un UDF (User Defined Function), de telle façon qu'elle puisse être appelée à l'intérieur de vos requêtes SQL.

Un UDF peut être utilisé dans n'importe quelle requête SQL qui peut appeler des fonctions, par exemple les requêtes SELECT et UPDATE mais aussi dans les marqueurs.

Liste de paramètres

function_name

Le nom de la fonction utilisé dans les requêtes SQL.

callback

Fonction de rappel pour manipuler la fonction SQL définie.

Note: Les fonctions de rappel devraient retourner un type connu par SQLite (c'est-à-dire type scalaire).

num_args

Conseil à l'analyseur SQLite si la fonction de rappel accepte un nombre prédéterminé d'arguments.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec PDO::sqliteCreateFunction()

<?php
function md5_and_reverse($string)
{
    return strrev(md5($string));
}

$db = new PDO('sqlite:sqlitedb');
$db->sqliteCreateFunction('md5rev', 'md5_and_reverse', 1);
$rows = $db->query('SELECT md5rev(filename) FROM files')->fetchAll();
?>

Dans cet exemple, nous avons une fonction qui calcule la somme MD5 de la chaîne de caractères et la renverse ensuite. Lorsque la requête SQL s'exécute, elle retourne la valeur du nom du fichier transformée par notre fonction. Les données retournées dans $rows contiennent le résultat traité.

La beauté de cette technique est que vous n'avez pas à traiter le résultat en utilisant une boucle foreach après que vous ayez récupéré les données.

Astuce

Vous pouvez utiliser PDO::sqliteCreateFunction et PDO::sqliteCreateAggregate pour surcharger les fonctions natives de SQL.

Note:

Cette méthode n'est pas disponible avec les pilotes de SQLite2. Utilisez l'ancien style de l'API sqlite à la place.

Voir aussi

  • PDO::sqliteCreateAggregate
  • sqlite_create_function() - Enregistre une fonction utilisateur "classique" UDF pour SQLite
  • sqlite_create_aggregate() - Enregistre une UDF agrégeante pour les requêtes SQLite


4D (PDO)

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

PDO_4D est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données 4D.

4D est une plate-forme intégrée de développement accélérant et simplifiant le développement et le déploiement d'applications métier, exploitée dans plus de 70 pays par une communauté de plusieurs milliers de développeurs et fournisseurs de solutions verticales, et utilisée par des millions d'utilisateurs finaux à travers le monde.

En proposant un ensemble d'outils intégrés tels qu'une base de données ANSI SQL relationnelle et transactionnelle, un environnement de développement graphique, un langage de quatrième génération comptant plus de 1000 commandes de haut niveau, un serveur HTTP, un serveur d'applications etc... 4D facilite la génération et la maintenance d'applications pour un à plusieurs centaines d'utilisateurs simultanés sous Windows, Mac ou depuis tout client Web.

4D est également une plate-forme ouverte qui offre une API complète permettant la création de plug-ins additionnels ainsi que des connecteurs variés lui permettant d'agir comme back-end ou front-end de nombreux environnements (Oracle via OCI, Serveur ou Client SOAP, source de données Flex, toutes bases ODBC, XML over HTTP, etc...).

Outre la possibilité d'interagir avec les applications 4D à travers leurs Web Services, leur base de données est désormais directement accessible avec le pilote PDO_4D.

Plus de détails sur l'environnement 4D sur » http://www.4d.com/.

Il est recommandé de l'utiliser avec les serveurs 4D versions 12 beta et plus récentes, pour Mac OS X et Windows. Les versions plus anciennes peuvent fonctionner avec, mais ne sont pas supportées.

Sommaire

  • PDO_4D DSN — Connexion aux bases de données 4D
  • Constantes pour PDO_4D — Constantes pour PDO_4D
  • Types SQL en PDO_4D et PHP — Types SQL en PDO_4D et PHP
  • Indications sur le SQL supporté par 4D — PDO et SQL 4D
  • Exemples PDO_4D — Exemples PDO_4D


Connexion aux bases de données 4D

  • « 4D (PDO)
  • Constantes pour PDO_4D »
  • PHP Manual
  • 4D (PDO)
  • Connexion aux bases de données 4D

PDO_4D DSN

(No version information available, might only be in Git)

PDO_4D DSN — Connexion aux bases de données 4D

Description

Le Data Source Name (DSN) de PDO_4D est composé des éléments suivants :

Préfixe DSN

Le préfixe DSN est 4D:.

host

L'hôte sur lequel le serveur de base de données se situe.

port

Le numéro de port où le serveur de base de données est en train d'écouter. Ce paramètre est optionnel.

user

Le nom d'utilisateur pour se connecter à la base 4D.

password

Le mot de passe associé à l'utilisateur pour se connecter à la base 4D.

dbname

Le nom de la base de données. Ce paramètre est optionnel, et n'est pas utilisé.

charset

Le jeu de caractères utilisé par 4D.

Exemples

Exemple #1 Exemples de DSN pour PDO_4D

L'exemple suivant montre un DSN PDO_4D pour se connecter aux bases de données 4D :

4D:host=localhost;CHARSET=Windows-1252
Autres exemples possibles :
4D:host=localhost
4D:


Constantes pour PDO_4D

(No version information available, might only be in Git)

Constantes pour PDO_4D — Constantes pour PDO_4D

Constantes pré-définies

Les constantes ci-dessous sont définies par ce pilote et seront seulement disponibles lorsque l'extension aura été compilée dans PHP ou chargée dynamiquement du moteur d'exécution. De plus, ces constantes spécifiques au pilote devraient être utilisées seulement si vous utilisez ce pilote. En utilisant les attributs spécifiques à un pilote avec un autre pilote pourrait causer un comportement inattendu. PDO::getAttribute() pourrait être utilisé pour obtenir l'attribut PDO_ATTR_DRIVER_NAME pour vérifier le pilote, si votre code peut fonctionner sur des pilotes multiples.

PDO::FOURD_ATTR_CHARSET (entier)

Modifie le jeu de caractère dans lequel 4D retourne les résultats. (Par défaut, UTF-8). Cette constante supporte les mêmes constantes que celle de l'extension mbstring.

PDO::FOURD_ATTR_PREFERRED_IMAGE_TYPES (entier)

Le type d'image retourné par 4D, lorsqu'on sélectionne une colonne de type image.


Types SQL en PDO_4D et PHP

(No version information available, might only be in Git)

Types SQL en PDO_4D et PHP — Types SQL en PDO_4D et PHP

Liste des types SQL supportés par 4D
Type SQL 4D | Équivalent 4D | Note
ALPHA_NUMERIC | TEXT |
VARCHAR | TEXT |
TEXT | TEXT |
TIMESTAMP | DATE |
INTERVAL | HOUR |
DURATION | HOUR |
BOOLEAN | BOOLEAN |
BIT | BOOLEAN |
BYTE | INT32 |
INT16 | SMALLINT |
SMALLINT | SMALLINT |
INT32 | INT32 |
INT | INT32 |
INT64 | INT64 |
NUMERIC | INT64 |
REAL | REAL | Non supporté (utilisez la conversion en VARCHAR)
FLOAT | FLOAT | Non supporté (utilisez la conversion en VARCHAR)
DOUBLE PRECISION | FLOAT | Non supporté (utiliser la conversion en VARCHAR)
BLOB | BLOB | Doit passer par une commande préparée, et PDO::PARAM_LOB
BIT VARYING | BLOB | Doit passer par une commande préparée, et PDO::PARAM_LOB
CLOB | TEXT |
PICTURE | PICTURE | Doit passer par une commande préparée, et PDO::PARAM_LOB


PDO et SQL 4D

  • « Types SQL en PDO_4D et PHP
  • Exemples PDO_4D »
  • PHP Manual
  • 4D (PDO)
  • PDO et SQL 4D

Indications sur le SQL supporté par 4D

(No version information available, might only be in Git)

Indications sur le SQL supporté par 4D — PDO et SQL 4D

Description

4D implémente le standard ANSI 89 strict, et le fait respecter. Il est recommandé de bien lire la documentation 4D sur les commandes disponibles, dans la documentation à l'adresse suivante : » http://doc.4d.com/. La liste des particularités de 4D ci-dessous est une introduction, et ne saurait être exhaustive.

Liste des caractéristiques SQL de 4D
Caractéristique | Solution | Note
INTEGER | Modifier la requête de création de la table. | INT est le type officiellement supporté.
CHAR | Utilisez VARCHAR à la place. | Non supporté en 4D v12.0
UNION | Faire plusieurs requêtes séparées. | Non supporté en 4D v12.0
SELECT 1 + 1; | SELECT 1 + 1 FROM _USER_SCHEMAS; | FROM est toujours obligatoire.
REAL, FLOAT | Transtyper le FLOAT en FLOAT ou en STRING avec la fonction SQL 4D (CAST, ROUND, TRUNC ou TRUNCATE) | Non supporté dans les versions courantes du pilote PDO_4D
Typage fort | Réécrivez votre requête SQL, ou bien ajouter du code PHP pour gérer les données dans les types attendus. | Il faut utiliser le type exact que 4D attend. On ne peut pas insérer '1' (la chaîne), dans une colonne entière.
PDO::execute($row)() | Utiliser les commandes préparées, et spécifier les bons types. | L'extension PDO fait passer toutes les données comme des chaînes, et présume que la base assure le transtypage.
SELECT NULL FROM TABLE | N'utilisez pas de constantes NULL. Extrayez les des tables. | Il n'est pas autorisé d'utiliser la constante NULL dans la liste sélectionnée.
SELECT * FROM TABLE WHERE 1 | Utilisez 1 = 1 | Une constante ne peut pas être utilisée dans la clause WHERE.
SHOW TABLES | Utilisez les tables système. | Utilisez les tables _USER_TABLES, _USER_COLUMNS, _USER_INDEXES, _USER_CONSTRAINTS, _USER_IND_COLUMNS, _USER_CONS_COLUMNS et _USER_SCHEMAS.
Délimiteur de structures SQL | Utilisez la fonction de protection suivante sur les noms d'objets SQL : function sqlEscapeElement(elem) { return '[' . str_replace(']',']]', $elem) . ']'; } | Pour la protection des noms d'objets SQL (tables, champs, utilisateurs, groupe, schéma, clé primaire, etc.. ) il faut doubler les crochets fermants et mettre tout l'identifiant entre crochets.


Exemples PDO_4D

(No version information available, might only be in Git)

Exemples PDO_4D — Exemples PDO_4D

Ce premier exemple montre comment se connecter, exécuter une requête SQL, lire les informations obtenues et se déconnecter d'une base de données 4D.

Exemple #1 Exemple de présentation de l'extension PDO_4D

<?php
$dsn = '4D:host=localhost;CHARSET=Windows-1252';
$user = 'test';
$pass = 'test';

// Connexion au serveur 4D
$db = new PDO($dsn, $user, $pass);

try {
    $db->exec('CREATE TABLE test(id varCHAR(1) NOT NULL, val VARCHAR(10))');
} catch (PDOException $e) {
    die("Erreur 4D : " . $e->getMessage());
}

$db->exec("INSERT INTO test VALUES('A', 'B')");
$db->exec("INSERT INTO test VALUES('C', 'D')");
$db->exec("INSERT INTO test VALUES('E', 'F')");

$stmt = $db->prepare('SELECT id, val from test');

$stmt->execute();
print_r($stmt->fetchAll());

unset($stmt);
unset($db);
?>

L'exemple ci-dessus va afficher :

    Array
(
    [0] => Array
        (
            [ID] => A
            [0] => A
            [VAL] => B
            [1] => B
        )

    [1] => Array
        (
            [ID] => C
            [0] => C
            [VAL] => D
            [1] => D
        )

    [2] => Array
        (
            [ID] => E
            [0] => E
            [VAL] => F
            [1] => F
        )

)

Ce deuxième exemple montre comment exécuter une commande en langage 4D, et obtenir le résultat en PDO_4D.

Exemple #2 Exemple d'exécution de langage 4D depuis pdo_4d

Créer une méthode 4D, de nom method. Dans les propriétés de la méthode, assurez-vous que l'option Disponible via SQL est active. Le code de la méthode est disponible ci-dessous.

C_TEXTE($0)
$0:=Version application(*);

Le code PHP pour accéder à cette méthode 4D est le suivant :

<?php
$dsn = '4D:host=localhost;CHARSET=Windows-1252';
$user = 'test';
$pass = 'test';

// Connexion et sélection de la base
$db = new PDO($dsn, $user, $pass);

$stmt = $db->prepare('SELECT {FN method() AS VARCHAR } FROM _USER_SCHEMAS LIMIT 1');

$stmt->execute();
print_r($stmt->fetchAll());

unset($stmt);
unset($db);
?>

L'exemple ci-dessus va afficher :

(
    [0] => Array
        (
            [<expression>] => F0011140
            [0] => F0011140
        )

)

Exemple #3 Protection des noms de tables spéciaux

Cet exemple montre comment protéger un nom de table ou de colonnes avec les crochets de 4D.

<?php
$dsn = '4D:host=localhost;CHARSET=Windows-1252';
$user = 'test';
$pass = 'test';

// Connexion au serveur 4D
$db = new PDO($dsn, $user, $pass);

$objets = array('[',']','[]','][','[[',']]','[[[',']]]','TBL ]]32[23');

foreach($objets as $id => $objet) {
    $objet = str_replace(']',']]', $objet);
    print "$objet\n";

    $db->exec('CREATE TABLE IF NOT EXISTS ['.$objet.'](['.$objet.'] FLOAT)');

    $req = "INSERT INTO [$objet] ([$objet]) VALUES ($id);";
    $db->query($req);

    $q = $db->prepare("SELECT [$objet] FROM [$objet]");
    $q->execute();
    $x[] = $q->fetch(PDO::FETCH_NUM);

    $db->exec('DROP TABLE ['.$objet.'];');
}

?>

L'exemple ci-dessus va afficher :

[
]]
[]]
]][
[[
]]]]
[[[
]]]]]]
TBL ]]]]32[23


Extensions spécifiques des fabricants de bases de données

  • CUBRID
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions CUBRID
    • Fonctions CUBRID compatibles MySQL
    • Fonctions et alias CUBRID obsolètes
  • DB++
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions DB++
  • dBase
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions dBase
  • filePro
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions filePro
  • Firebird/InterBase
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Firebird/InterBase
  • FrontBase
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • FrontBase Fonctions
  • IBM DB2 — Fonctions IBM DB2, Cloudscape et Apache Derby
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions IBM DB2
  • Informix
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Informix
  • Ingres — Ingres DBMS, EDBC, et Enterprise Access
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Ingres
  • MaxDB
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions MaxDB
  • Mongo — Driver MongoDB (stable et supporté)
    • Installation/Configuration
    • Constantes pré-définies
    • Manuel
    • Classes internes
    • Les types
    • Classes GridFS
    • Classes Batch
    • Divers
    • Fonctions Mongo
    • Exceptions
    • Historique des modifications
  • MongoDB — MongoDB driver
    • Installation/Configuration
    • Tutorials
    • Driver Architecture and Internals — Explains the driver architecure, and special features
    • Security
    • MongoDB\Driver — MongoDB driver classes
    • MongoDB\BSON — BSON type classes and serialization functions
    • MongoDB\Driver\Exception — Exception classes
  • mSQL
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions mSQL
  • Mssql — Serveur MS SQL
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Mssql
  • MySQL — Plugins et drivers MySQL
    • Aperçu des drivers PHP MySQL
    • MySQL (Original) — API MySQL originale
    • MySQLi — Extension mysqli
    • Mysqlnd — Le pilote natif MySQL
    • mysqlnd_ms — Plugin de réplication Mysqlnd et de balance de charge
    • mysqlnd_qc — Plugin de cache des résultats de requêtes Mysqlnd
    • mysqlnd_uh — Plugin de gestion utilisateur Mysqlnd
    • mysqlnd_mux — Plugin de multiplexage de connexions Mysqlnd
    • mysqlnd_memcache — Plugin Mysqlnd Memcache
  • OCI8 — Oracle OCI8
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Gestion de la connexion OCI8 et de la mise en file d'attente
    • Support de FAN (Fast Application Notification : Application de notification Rapide) OCI8
    • OCI8 et le suivi dynamique DTrace
    • Types de données supportées par le driver
    • Fonctions OCI8
    • OCI-Collection — La classe OCI-Collection
    • OCI-Lob — La classe OCI-Lob
    • Fonctions et alias OCI8 obsolètes
  • Paradox
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Paradox
  • PostgreSQL
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions PostgreSQL
  • SQLite
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions SQLite
  • SQLite3
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • SQLite3 — La classe SQLite3
    • SQLite3Stmt — La classe SQLite3Stmt
    • SQLite3Result — La classe SQLite3Result
  • SQLSRV — Driver Microsoft SQL Server pour PHP
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions SQLSRV
  • Sybase
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Sybase
  • tokyo_tyrant
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • TokyoTyrant — La classe TokyoTyrant
    • TokyoTyrantTable — La classe TokyoTyrantTable
    • TokyoTyrantQuery — La classe TokyoTyrantQuery
    • TokyoTyrantIterator — La classe TokyoTyrantIterator
    • TokyoTyrantException — La classe TokyoTyrantException


CUBRID

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions CUBRID
    • cubrid_bind — Lie des valeurs à une requête préparée
    • cubrid_close_prepare — Ferme le gestionnaire de requête
    • cubrid_close_request — Ferme le gestionnaire de requête
    • cubrid_col_get — Récupère le contenu des éléments d'un type de collection en utilisant l'OID
    • cubrid_col_size — Récupère le nombre d'éléments dans un type de colonne d'une collection en utilisant l'OID
    • cubrid_column_names — Récupère les noms de colonnes du résultat
    • cubrid_column_types — Récupère les types de colonnes du résultat
    • cubrid_commit — Commit une transaction
    • cubrid_connect_with_url — Établit l'environnement pour une connexion au serveur CUBRID
    • cubrid_connect — Ouvre une connexion au serveur CUBRID
    • cubrid_current_oid — Récupère l'OID de la localisation du curseur courant
    • cubrid_disconnect — Ferme la connexion à la base de données
    • cubrid_drop — Supprime une instance en utilisant son OID
    • cubrid_error_code_facility — Récupère le niveau du code erreur
    • cubrid_error_code — Récupère le code erreur de la dernière erreur survenue
    • cubrid_error_msg — Récupère le message d'erreur de la dernière erreur survenue
    • cubrid_execute — Exécute une requête SQL préparée
    • cubrid_fetch — Récupère la prochaine ligne du jeu de résultats
    • cubrid_free_result — Libère la mémoire occupée par les données de résultat
    • cubrid_get_autocommit — Récupère le mode auto-commit de la connexion
    • cubrid_get_charset — Retourne le jeu de caractères utilisé sur la connexion CUBRID courante
    • cubrid_get_class_name — Récupère le nom de la classe en utilisant son OID
    • cubrid_get_client_info — Retourne la version de la bibliothèque cliente
    • cubrid_get_db_parameter — Retourne les paramètres de la base de données CUBRID
    • cubrid_get_query_timeout — Récupère la valeur du délai d'attente maximal d'une requête
    • cubrid_get_server_info — Retourne la version du serveur CUBRID
    • cubrid_get — Récupère une colonne en utilisant son OID
    • cubrid_insert_id — Retourne l'identifiant généré pour la dernière mise à jour de la colonne AUTO_INCREMENT
    • cubrid_is_instance — Vérifie si une instance existe
    • cubrid_lob_close — Ferme un BLOB/CLOB
    • cubrid_lob_export — Exporte des données BLOB/CLOB vers un fichier
    • cubrid_lob_get — Récupère les données BLOB/CLOB
    • cubrid_lob_send — Lit les données BLOB/CLOB et les envoye au navigateur
    • cubrid_lob_size — Récupère la taille des données BLOB/CLOB
    • cubrid_lob2_bind — Lie un objet LOB ou une chaîne de caractères à un objet LOB comme paramètre d'une requête préparée
    • cubrid_lob2_close — Ferme un objet LOB
    • cubrid_lob2_export — Exporte un objet LOB vers un fichier
    • cubrid_lob2_import — Importe des données BLOB/CLOB depuis un fichier
    • cubrid_lob2_new — Crée un nouvel objet LOB
    • cubrid_lob2_read — Lit des données BLOB/CLOB
    • cubrid_lob2_seek64 — Déplace le curseur d'un objet LOB
    • cubrid_lob2_seek — Déplace le curseur d'un objet LOB
    • cubrid_lob2_size64 — Récupère la taille d'un objet LOB
    • cubrid_lob2_size — Récupère la taille d'un objet LOB
    • cubrid_lob2_tell64 — Récupère la position du curseur dans l'objet LOB
    • cubrid_lob2_tell — Récupère la position du curseur dans un objet LOB
    • cubrid_lob2_write — Ecrit dans un objet LOB
    • cubrid_lock_read — Place un verrou de lecture sur l'OID fourni
    • cubrid_lock_write — Place un verrou d'écriture sur l'OID fourni
    • cubrid_move_cursor — Déplace le curseur dans le résultat
    • cubrid_next_result — Récupère le résultat de la prochaine requête lors de l'exécution de requêtes SQL multiples
    • cubrid_num_cols — Récupère le nombre de colonnes du jeu de résultats
    • cubrid_num_rows — Récupère le nombre de lignes d'un jeu de résultats
    • cubrid_pconnect_with_url — Ouvre une connexion persistante vers un serveur CUBRID
    • cubrid_pconnect — Ouvre une connexion persistante vers un serveur CUBRID
    • cubrid_prepare — Prépare une requête SQL pour son exécution
    • cubrid_put — Met à jour une colonne suivant son OID
    • cubrid_rollback — Annule une transaction
    • cubrid_schema — Récupère des informations sur un schéma
    • cubrid_seq_drop — Supprime un élément d'une séquence
    • cubrid_seq_insert — Insère un élément dans une séquence
    • cubrid_seq_put — Met à jour la valeur d'un élément d'une séquence
    • cubrid_set_add — Insère un seul élément pour définir le type d'une colonne
    • cubrid_set_autocommit — Définit le mode auto-commit pour la connexion
    • cubrid_set_db_parameter — Définit les paramètres de base de données CUBRID
    • cubrid_set_drop — Supprime un élément
    • cubrid_set_query_timeout — Définit le délai maximal d'exécution d'une requête
    • cubrid_version — Récupère la version du module PHP CUBRID
  • Fonctions CUBRID compatibles MySQL
    • cubrid_affected_rows — Récupère le nombre de lignes affectées par la dernière requête SQL
    • cubrid_client_encoding — Retourne le jeu de caractères utilisé sur la connexion CUBRID courante
    • cubrid_close — Ferme une connexion CUBRID
    • cubrid_data_seek — Déplace le pointeur de lignes interne du résultat CUBRID
    • cubrid_db_name — Récupère le nom de la base de données depuis les résultats de cubrid_list_dbs
    • cubrid_errno — Retourne la valeur numérique d'un message d'erreur
    • cubrid_error — Récupère le message de l'erreur
    • cubrid_fetch_array — Récupère une ligne de résultat sous forme de tableau associatif, de tableau numérique, ou les deux
    • cubrid_fetch_assoc — Retourne un tableau associatif correspondant à la ligne récupérée
    • cubrid_fetch_field — Récupère des informations sur une colonne et les retourne sous la forme d'un objet
    • cubrid_fetch_lengths — Retourne un tableau contenant les longueurs des valeurs de chaque champ de la ligne courante
    • cubrid_fetch_object — Récupère la prochaine ligne et la retourne sous la forme d'un objet
    • cubrid_fetch_row — Retourne un tableau numérique avec les valeurs de la ligne courante
    • cubrid_field_flags — Retourne une chaîne avec les drapeaux de la position du champ fourni
    • cubrid_field_len — Récupère la longueur maximale du champ spécifié
    • cubrid_field_name — Retourne le nom du champ spécifié
    • cubrid_field_seek — Déplace le curseur du jeu de résultats à une position spécifiée
    • cubrid_field_table — Retourne le nom de la table d'un champ spécifié
    • cubrid_field_type — Retourne le type de la colonne correspondant à la position du champ fourni
    • cubrid_list_dbs — Retourne un tableau contenant la liste de toutes les bases de données CUBRID existantes
    • cubrid_num_fields — Retourne le nombre de colonnes dans le jeu de résultats
    • cubrid_ping — Ping une connexion au serveur ou se reconnecte s'il n'y a plus de connexion active
    • cubrid_query — Envoi une requête CUBRID
    • cubrid_real_escape_string — Échappe les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL
    • cubrid_result — Retourne la valeur d'un champ d'une ligne spécifique
    • cubrid_unbuffered_query — Exécute une requête sans placer les résultats en mémoire vive
  • Fonctions et alias CUBRID obsolètes
    • cubrid_load_from_glo — Lie une donnée
    • cubrid_new_glo — Crée une instance glo
    • cubrid_save_to_glo — Sauvegarde un fichier dans une instance glo
    • cubrid_send_glo — Lit les données depuis une instance glo


Introduction

Ces fonctions vous autorisent à accéder aux serveurs de base de données CUBRID. Plus d'informations sur CUBRID peuvent être trouvées sur le site de » CUBRID.

La documentation sur CUBRID peut être trouvée » ici.


Pré-requis

Afin d'avoir accès à ces fonctions, vous devez installer CUBRID, et compiler la bibliothèque PHP CUBRID avec le support CUBRID.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/cubrid.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Pour plus d'informations sur l'installation manuelle sous Linux et Windows, lisez le fichier build-guide.html inclus dans le paquet.


  • « Installation
  • Types de ressources »
  • PHP Manual
  • Installation/Configuration
  • Configuration à l'exécution

Configuration à l'exécution

Il n'y a pas actuellement de configuration au moment de l'exécution.


Types de ressources

Il y a 4 types de ressources utilisés dans CUBRID. La première est l'identifiant du lien pour une connexion à la base de données, la seconde est une ressource qui contient le résultat d'une requête, et deux dernières, une ressource qui contient les résultats d'une requête pour les types de données BLOB/CLOB.

Identifiant de connexion

Un identifiant de connexion retourné par les fonctions
cubrid_connect(),
cubrid_connect_with_url(),
cubrid_pconnect() et
cubrid_pconnect_with_url().

Identifiant de requête

Un identifiant de requête retourné par la fonction cubrid_prepare() et par la fonction cubrid_execute().

Identifiant LOB

Un identifiant LOB retourné par la fonction cubrid_lob_get().

Identifiant LOB2

Un identifiant LOB retourné par la fonction cubrid_lob2_new() ou récupéré depuis le jeu de résultats.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes suivantes peuvent être utilisées lors de l'exécution de requête SQL. Elles peuvent être passées aux fonctions cubrid_prepare() et cubrid_execute().

Drapeaux d'exécution SQL CUBRID
Constante | Description
CUBRID_INCLUDE_OID | Détermine si l'on doit récupérer l'OID lors de l'exécution de la requête.
CUBRID_ASYNC | Exécute la requête en mode asynchrone.
CUBRID_EXEC_QUERY_ALL | Exécute la requête en mode synchrone. Ce drapeau doit être défini lors de l'exécution de requêtes SQL multiples.

Les constantes suivantes peuvent être utilisées lors de la récupération des résultats afin d'en spécifier le comportement. Elles peuvent être passées aux fonctions cubrid_fetch() et cubrid_fetch_array().

Drapeaux de récupération CUBRID
Constante | Description
CUBRID_NUM | Récupère le résultat de la requête sous la forme d'un tableau numérique (dont les indexes commencent à 0).
CUBRID_ASSOC | Récupère le résultat de la requête sous la forme d'un tableau associatif.
CUBRID_BOTH | Récupère le résultat de la requête à la fois sous la forme d'un tableau numérique et sous la forme d'un tableau associatif (valeur par défaut).
CUBRID_OBJECT | Récupère le résultat de la requête sous la forme d'un objet.
CUBRID_LOB | La constante CUBRID_LOB peut être utilisée lorsque vous voulez utiliser un objet LOB. Elle peut être passée aux fonctions cubrid_fetch(), cubrid_fetch_row(), cubrid_fetch_array(), cubrid_fetch_assoc() et cubrid_fetch_object().

Les constantes suivantes peuvent être utilisées lors du positionnement du curseur dans les résultats de la requête. Elles peuvent être passées à ou retournées par la fonction cubrid_move_cursor().

Drapeaux sur le positionnement du curseur CUBRID
Constante | Description
CUBRID_CURSOR_FIRST | Déplace le curseur courant à la première position du résultat.
CUBRID_CURSOR_CURRENT | Déplace le curseur courant à une valeur par défaut si l'origine n'est pas spécifiée.
CUBRID_CURSOR_LAST | Déplace le curseur courant à la dernière position du résultat.
CUBRID_CURSOR_SUCCESS | La valeur retournée par la fonction cubrid_move_cursor() en cas de succès. Ce drapeau a été supprimé depuis la version 8.4.1.
CUBRID_NO_MORE_DATA | La valeur retournée par la fonction cubrid_move_cursor() si une erreur survient. Ce drapeau a été supprimé depuis la version 8.4.1.
CUBRID_CURSOR_ERROR | La valeur retournée par la fonction cubrid_move_cursor() si une erreur survient. Ce drapeau a été supprimé depuis la version 8.4.1.

Les constantes suivantes peuvent être utilisées lors de la définition du mode auto-commit pour la connexion à la base de données. Elles peuvent être passées à la fonction cubrid_set_autocommit() ou retournées par la fonction cubrid_get_autocommit().

Drapeaux CUBRID pour le mode auto-commit
Constante | Description
CUBRID_AUTOCOMMIT_TRUE | Active le mode auto-commit.
CUBRID_AUTOCOMMIT_FALSE | Désactive le mode auto-commit.

Les constantes suivantes peuvent être utilisées lors de la définition des paramètres à la base de données. Elles peuvent être passées à la fonction cubrid_set_db_parameter().

Drapeaux des paramètres CUBRID
Constante | Description
CUBRID_PARAM_ISOLATION_LEVEL | Niveau d'isolation de la transaction pour la connexion à la base de données.
CUBRID_PARAM_LOCK_TIMEOUT | Délai d'expiration de la transaction en secondes.

Les constantes suivantes peuvent être utilisées pour définir le niveau d'isolation de la transaction. Elles peuvent être passées à la fonction cubrid_set_db_parameter() ou retournées par la fonction cubrid_get_db_parameter().

Drapeaux CUBRID pour le niveau d'isolation
Constante | Description
TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE | Le niveau d'isolation le plus faible (1). Une lecture de données modifiées, non-répétables, ou fantômes peuvent survenir sur le tuple et, de plus, une lecture non-répétable peut survenir sur la table.
TRAN_COMMIT_CLASS_COMMIT_INSTANCE | Un niveau d'isolation relativement bas (2). Une lecture de données modifiées ne peut pas survenir, mais une lecture de données non-répétables ou fantômes peut survenir.
TRAN_REP_CLASS_UNCOMMIT_INSTANCE | Le niveau d'isolation par défaut pour CUBRID (3). Une lecture de données modifiées, non répétables ou fantômes peut survenir sur le tuple, mais la lecture de données répétables est assurée pour la table.
TRAN_REP_CLASS_COMMIT_INSTANCE | Un niveau d'isolation relativement bas (4). Une lecture de données modifiées ne peut pas survenir, mais une lecture de données non-répétables ou fantômes peut survenir.
TRAN_REP_CLASS_REP_INSTANCE | Un niveau d'isolation relativement haut (5). Une lecture de données modifiées ou non-répétables ne peut pas survenir, mais une lecture de données fantômes peut survenir.
TRAN_SERIALIZABLE | Le niveau d'isolation le plus haut (6). Les problèmes liés à la concurrence (i.e. lecture de données modifiées, non-répétables, fantômes, etc...) ne peut pas survenir.

Les constantes suivantes peuvent être utilisées pour récupérer les informations de schéma. Elles peuvent être passées à la fonction cubrid_schema().

Drapeaux pour les schémas CUBRID
Constante | Description
CUBRID_SCH_CLASS | Récupère le nom et le type de la table dans CUBRID.
CUBRID_SCH_VCLASS | Récupère le nom et le type de la vue dans CUBRID.
CUBRID_SCH_QUERY_SPEC | Récupère la définition de la requête pour une vue.
CUBRID_SCH_ATTRIBUTE | Récupère les attributs d'une colonne d'une table.
CUBRID_SCH_CLASS_ATTRIBUTE | Récupère les attributs d'une table.
CUBRID_SCH_METHOD | Récupère la méthode de l'instance. La méthode de l'instance est la méthode appelée par une instance de classe. Elle est plus souvent utilisée qu'une méthode de classe car la plupart des opérations sont exécutées dans l'instance.
CUBRID_SCH_CLASS_METHOD | Récupère la méthode de classe. La méthode de classe est la méthode appelée par un objet de la classe. Elle est habituellement utilisée pour créer une nouvelle instance de la classe ou pour l'initialiser. Elle est également utilisée pour accéder ou mettre à jour les attributs de la classe.
CUBRID_SCH_METHOD_FILE | Récupère les informations du ficher définissant la méthode de la table.
CUBRID_SCH_SUPERCLASS | Récupère le nom et le type de la table pour laquelle la table héritent ses attributs.
CUBRID_SCH_SUBCLASS | Récupère le nom et le type de la table héritant des attributs.
CUBRID_SCH_CONSTRAINT | Récupère les contraintes de la table.
CUBRID_SCH_TRIGGER | Récupère les triggers de la table.
CUBRID_SCH_CLASS_PRIVILEGE | Récupère les informations quant aux privilèges de la tableGet the privilege information of table.
CUBRID_SCH_ATTR_PRIVILEGE | Récupère les informations de privilèges d'une colonne.
CUBRID_SCH_DIRECT_SUPER_CLASS | Récupère la table super direct de la table.
CUBRID_SCH_PRIMARY_KEY | Récupère la clé primaire de la table.
CUBRID_SCH_IMPORTED_KEYS | Récupère les clés importées de la table.
CUBRID_SCH_EXPORTED_KEYS | Récupère les clés exportées de la table.
CUBRID_SCH_CROSS_REFERENCE | Récupère les références des liens de 2 tables.

Les constantes suivantes peuvent être utilisées lors du rapport des erreurs. Elles peuvent être retournées par la fonction cubrid_error_code_facility().

Code de facilité des erreurs CUBRID
Constante | Description
CUBRID_FACILITY_DBMS | L'erreur est survenue dans la base de données CUBRID.
CUBRID_FACILITY_CAS | L'erreur est survenue dans le courtier CUBRID.
CUBRID_FACILITY_CCI | L'erreur est survenue dans le cci CUBRID.
CUBRID_FACILITY_CLIENT | L'erreur est survenue dans le client PHP CUBRID.


Exemples

Ce qui suit est un simple exemple qui établit une connexion entre PHP et CUBRID. Cette section expose les fonctions les plus basiques et utiles. Le code suivant nécessite une connexion à la base de données CUBRID, ce qui signifie que le serveur CUBRID ainsi que le courtier CUBRID doivent être en fonctionnement.

L'exemple ci-dessous utilise la base de données demodb comme exemple. Par défaut, elle est créée durant l'installation. Assurez-vous que c'est bien le cas.

Exemple #1 Exemple de récupération de données

<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=euc-kr">
    </head>
    <body>
    <center>
    <table border=2>
    <?php
        /**
         * Définit les informations du serveur pour une connexion CUBRID.
         * host_ip est l'adresse IP pointant l'installation du courtier CUBRID (localhost
         * dans cet exemple), ainsi que le numéro de port à utiliser pour le courtier CUBRID.
         * Le numéro du port est celui par défaut fourni lors de l'installation.
         * Pour plus de détails, lisez le "Guide d'administration"
         */
        $host_ip = "localhost";
        $host_port = 33000;
        $db_name = "demodb";
        /**
         * Connexion au serveur CUBRID. N'effectue pas la connexion immédiatement,
         * mais ne fait que retenir les informations de connexions. La raison
         * pour laquelle la connexion ne s'effectue pas immédiatement est pour
         * gérer les transactions plus efficacement sur des architectures en 3 parties.
         */
        $cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);

        if (!$cubrid_con) {
            echo "Erreur de connexion à la base de données";
            exit;
        }
    ?>
    <?php
        $sql = "select sports, count(players) as players from event group by sports";
        /**
         * Interroge le serveur CUBRID afin de récupérer les résultats de la requête SQL.
         * Maintenant, nous effectuons réellement la connexion au serveur CUBRID.
         */
        $result = cubrid_execute($cubrid_con, $sql);

        if ($result) {
            /**
             * Récupère les noms des colonnes depuis le jeu de résultats créé par la requête SQL.
             */
            $columns = cubrid_column_names($result);
            /**
             * Récupère le nombre de colonnes depuis le jeu de résultats créé par la requête SQL.
             */
            $num_fields = cubrid_num_cols($result);
            /**
             * Liste les noms des colonnes depuis le jeu de résultats directement sur l'écran.
             */
            echo("<tr>");

            while (list($key, $colname) = each($columns)) {
                echo("<td align=center>$colname</td>");
            }

            echo("</tr>");

            /**
             * Récupère les résultats depuis le jeu de résultats.
             */
            while ($row = cubrid_fetch($result)) {
                echo("<tr>");

                for ($i = 0; $i < $num_fields; $i++) {
                    echo("<td align=center>");
                    echo($row[$i]);
                    echo("</td>");
                }

                echo("</tr>");
            }
        }
        /**
         * Le module PHP dans CUBRID fonctionne en architecture 3 parties.
         * Lors de l'appel à une requête de type SELECT dans une transaction, elle
         * sera exécutée comme faisant partie de la transaction. Aussi, si la
         * transaction est annulé avant l'appel à la requête SELECT, elle sera
         * exécutée avec des performances moindres.
         */
        cubrid_commit($cubrid_con);
        cubrid_disconnect($cubrid_con);
    ?>
    </body>
    </html>

Exemple #2 Exemple d'insertion de données

<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=euc- kr">
    </head>
    <body>
    <center>
    <table border=2>
    <?php
        /**
         * host_ip est l'adresse IP pointant l'installation du courtier CUBRID.
         * host_port est le numéro du port du courtier CUBRID.
         * db_name est le nom de la base de données CUBRID.
         */
        $host_ip = "localhost";
        $host_port = 33000;
        $db_name = "demodb";
        $cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);

        if (!$cubrid_con) {
            echo "Erreur lors de la connexion à la base de données";
            exit;
        }
    ?>
    <?php
        $sql = "insert into olympic (host_year,host_nation,host_city,"
            . "opening_date,closing_date) values (2008, 'China', 'Beijing',"
            . "to_date('08-08-2008','mm-dd- yyyy'),to_date('08-24-2008','mm-dd-yyyy')) ;"
        $result = cubrid_execute($cubrid_con, $sql);
        if ($result) {
            /**
             * Traitement réussi, nous pouvons commiter.
             */
            cubrid_commit($cubrid_con);
            echo("Insertion avec succès");
        } else {
            /**
             * Une erreur est survenue, aussi, le message d'erreur est affiché et le rollback est appelé.
             */
            echo(cubrid_error_msg());
            cubrid_rollback($cubrid_con);
        }
        cubrid_disconnect($cubrid_con);
    ?>
    </body>
    </html>


Fonctions CUBRID

Sommaire

  • cubrid_bind — Lie des valeurs à une requête préparée
  • cubrid_close_prepare — Ferme le gestionnaire de requête
  • cubrid_close_request — Ferme le gestionnaire de requête
  • cubrid_col_get — Récupère le contenu des éléments d'un type de collection en utilisant l'OID
  • cubrid_col_size — Récupère le nombre d'éléments dans un type de colonne d'une collection en utilisant l'OID
  • cubrid_column_names — Récupère les noms de colonnes du résultat
  • cubrid_column_types — Récupère les types de colonnes du résultat
  • cubrid_commit — Commit une transaction
  • cubrid_connect_with_url — Établit l'environnement pour une connexion au serveur CUBRID
  • cubrid_connect — Ouvre une connexion au serveur CUBRID
  • cubrid_current_oid — Récupère l'OID de la localisation du curseur courant
  • cubrid_disconnect — Ferme la connexion à la base de données
  • cubrid_drop — Supprime une instance en utilisant son OID
  • cubrid_error_code_facility — Récupère le niveau du code erreur
  • cubrid_error_code — Récupère le code erreur de la dernière erreur survenue
  • cubrid_error_msg — Récupère le message d'erreur de la dernière erreur survenue
  • cubrid_execute — Exécute une requête SQL préparée
  • cubrid_fetch — Récupère la prochaine ligne du jeu de résultats
  • cubrid_free_result — Libère la mémoire occupée par les données de résultat
  • cubrid_get_autocommit — Récupère le mode auto-commit de la connexion
  • cubrid_get_charset — Retourne le jeu de caractères utilisé sur la connexion CUBRID courante
  • cubrid_get_class_name — Récupère le nom de la classe en utilisant son OID
  • cubrid_get_client_info — Retourne la version de la bibliothèque cliente
  • cubrid_get_db_parameter — Retourne les paramètres de la base de données CUBRID
  • cubrid_get_query_timeout — Récupère la valeur du délai d'attente maximal d'une requête
  • cubrid_get_server_info — Retourne la version du serveur CUBRID
  • cubrid_get — Récupère une colonne en utilisant son OID
  • cubrid_insert_id — Retourne l'identifiant généré pour la dernière mise à jour de la colonne AUTO_INCREMENT
  • cubrid_is_instance — Vérifie si une instance existe
  • cubrid_lob_close — Ferme un BLOB/CLOB
  • cubrid_lob_export — Exporte des données BLOB/CLOB vers un fichier
  • cubrid_lob_get — Récupère les données BLOB/CLOB
  • cubrid_lob_send — Lit les données BLOB/CLOB et les envoye au navigateur
  • cubrid_lob_size — Récupère la taille des données BLOB/CLOB
  • cubrid_lob2_bind — Lie un objet LOB ou une chaîne de caractères à un objet LOB comme paramètre d'une requête préparée
  • cubrid_lob2_close — Ferme un objet LOB
  • cubrid_lob2_export — Exporte un objet LOB vers un fichier
  • cubrid_lob2_import — Importe des données BLOB/CLOB depuis un fichier
  • cubrid_lob2_new — Crée un nouvel objet LOB
  • cubrid_lob2_read — Lit des données BLOB/CLOB
  • cubrid_lob2_seek64 — Déplace le curseur d'un objet LOB
  • cubrid_lob2_seek — Déplace le curseur d'un objet LOB
  • cubrid_lob2_size64 — Récupère la taille d'un objet LOB
  • cubrid_lob2_size — Récupère la taille d'un objet LOB
  • cubrid_lob2_tell64 — Récupère la position du curseur dans l'objet LOB
  • cubrid_lob2_tell — Récupère la position du curseur dans un objet LOB
  • cubrid_lob2_write — Ecrit dans un objet LOB
  • cubrid_lock_read — Place un verrou de lecture sur l'OID fourni
  • cubrid_lock_write — Place un verrou d'écriture sur l'OID fourni
  • cubrid_move_cursor — Déplace le curseur dans le résultat
  • cubrid_next_result — Récupère le résultat de la prochaine requête lors de l'exécution de requêtes SQL multiples
  • cubrid_num_cols — Récupère le nombre de colonnes du jeu de résultats
  • cubrid_num_rows — Récupère le nombre de lignes d'un jeu de résultats
  • cubrid_pconnect_with_url — Ouvre une connexion persistante vers un serveur CUBRID
  • cubrid_pconnect — Ouvre une connexion persistante vers un serveur CUBRID
  • cubrid_prepare — Prépare une requête SQL pour son exécution
  • cubrid_put — Met à jour une colonne suivant son OID
  • cubrid_rollback — Annule une transaction
  • cubrid_schema — Récupère des informations sur un schéma
  • cubrid_seq_drop — Supprime un élément d'une séquence
  • cubrid_seq_insert — Insère un élément dans une séquence
  • cubrid_seq_put — Met à jour la valeur d'un élément d'une séquence
  • cubrid_set_add — Insère un seul élément pour définir le type d'une colonne
  • cubrid_set_autocommit — Définit le mode auto-commit pour la connexion
  • cubrid_set_db_parameter — Définit les paramètres de base de données CUBRID
  • cubrid_set_drop — Supprime un élément
  • cubrid_set_query_timeout — Définit le délai maximal d'exécution d'une requête
  • cubrid_version — Récupère la version du module PHP CUBRID


Lie des valeurs à une requête préparée

  • « Fonctions CUBRID
  • cubrid_close_prepare »
  • PHP Manual
  • Fonctions CUBRID
  • Lie des valeurs à une requête préparée

cubrid_bind

(PECL CUBRID >= 8.3.0)

cubrid_bind — Lie des valeurs à une requête préparée

Description

bool cubrid_bind ( resource $req_identifier , int $bind_index , mixed $bind_value [, string $bind_value_type ] )

La fonction cubrid_bind() est utilisée pour lier les valeurs à un marqueur correspondant, nommé ou non d'une requête SQL qui a été passée à la fonction cubrid_prepare(). Si le paramètre bind_value_type n'est pas fourni, le type chaîne de caractères sera le type par défaut.

Note:

Si le type de données à lier est BLOB/CLOB, CUBRID tentera de lier les données comme un flux PHP. Si le type de la valeur à lier n'est pas un flux, CUBRID la convertira en chaîne, et l'utilisera comme chemin complet et nom de fichier sur le système de fichiers client.

Si le type de données à lier explicitement est ENUM, l'argument $bind_value doit être l'élément ENUM sous forme de chaîne de caractères.

En environnement partagé CUBRID, $bind_value_type doit être inclus dans la fonction cubrid_bind.

La liste suivante montre les types des valeurs substituées.

Types de données liées CUBRID
Support | Type de liage | Type correspondant SQL
Supporté | STRING | CHAR, VARCHAR
 | NCHAR | NCHAR, NVARCHAR
 | BIT | BIT, VARBIT
 | NUMERIC or NUMBER | SHORT, INT, NUMERIC
 | FLOAT | FLOAT
 | DOUBLE | DOUBLE
 | TIME | TIME
 | DATE | DATE
 | TIMESTAMP | TIMESTAMP
 | OBJECT | OBJECT
 | ENUM | ENUM
 | BLOB | BLOB
 | CLOB | CLOB
 | NULL | NULL
Not supported | SET | SET
 | MULTISET | MULTISET
 | SEQUENCE | SEQUENCE

Liste de paramètres

req_identifier

Identifiant de requête, retourné par la fonction cubrid_prepare().

bind_index

Position des paramètres liés. Commence avec 1.

bind_value

Valeur actuelle à lier.

bind_value_type

Un type de valeur à lier (il est omis par défaut et en interne, le type chaîne de caractères sera utilisé. Cependant, vous devez spécifier le type exact de la valeur comme argument lorsque vous utilisez NCHAR, BIT, ou BLOB/CLOB).

Valeurs de retour

TRUE, lorsque l'opération a été réalisée avec succès.

FALSE, lorsque l'opération a échoué.

Historique

Version | Description
8.3.1 | Ajout du support des types BLOB/CLOB.

Exemples

Exemple #1 Exemple avec cubrid_bind()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$result = cubrid_execute($conn, "SELECT code FROM event WHERE sports='Basketball' and gender='M'");
$row = cubrid_fetch_array($result, CUBRID_ASSOC);
$event_code = $row["code"];

cubrid_close_request($result);

$game_req = cubrid_prepare($conn, "SELECT athlete_code FROM game WHERE host_year=1992 and event_code=? and nation_code='USA'");
cubrid_bind($game_req, 1, $event_code, "number");
cubrid_execute($game_req);

printf("--- Dream Team (1992 United States men's Olympic basketball team) ---\n");
while ($athlete_code = cubrid_fetch_array($game_req, CUBRID_NUM)) {
    $athlete_req = cubrid_prepare($conn, "SELECT name FROM athlete WHERE code=? AND nation_code='USA' AND event='Basketball' AND gender='M'");
    cubrid_bind($athlete_req, 1, $athlete_code[0], "number");
    cubrid_execute($athlete_req);
    $row = cubrid_fetch_assoc($athlete_req);
    printf("%s\n", $row["name"]);
}

cubrid_close_request($game_req);
cubrid_close_request($athlete_req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

--- Dream Team (1992 United States men's Olympic basketball team) ---
Stockton John
Robinson David
Pippen Scottie
Mullin C.
Malone Karl
Laettner C.
Jordan Michael
Johnson Earvin
Ewing Patrick
Drexler Clyde
Bird Larry
Barkley Charles

Exemple #2 Exemple avec cubrid_bind() et les types BLOB/CLOB

<?php
$con = cubrid_connect("localhost", 33000, "demodb", "dba", "");
if ($con) {
    cubrid_execute($con,"DROP TABLE if exists php_cubrid_lob_test");
    cubrid_execute($con,"CREATE TABLE php_cubrid_lob_test (doc_content CLOB)");
    $sql = "INSERT INTO php_cubrid_lob_test(doc_content) VALUES(?)";
    $req = cubrid_prepare($con, $sql);

    $fp = fopen("book.txt", "rb");

    cubrid_bind($req, 1, $fp, "clob");
    cubrid_execute($req);
}
?>

Exemple #3 Exemple avec cubrid_bind() et BLOB/CLOB

<?php
$con = cubrid_connect("localhost", 33000, "demodb", "dba", "");
if ($con) {
    cubrid_execute($con,"DROP TABLE if exists php_cubrid_lob_test");
    cubrid_execute($con,"CREATE TABLE php_cubrid_lob_test (image BLOB)");
    $sql = "INSERT INTO php_cubrid_lob_test(image) VALUES(?)";
    $req = cubrid_prepare($con, $sql);

    cubrid_bind($req, 1, "cubrid_logo.png", "blob");
    cubrid_execute($req);
}
?>

Voir aussi

  • cubrid_execute() - Exécute une requête SQL préparée
  • cubrid_prepare() - Prépare une requête SQL pour son exécution


Ferme le gestionnaire de requête

  • « cubrid_bind
  • cubrid_close_request »
  • PHP Manual
  • Fonctions CUBRID
  • Ferme le gestionnaire de requête

cubrid_close_prepare

(PECL CUBRID >= 8.3.0)

cubrid_close_prepare — Ferme le gestionnaire de requête

Description

bool cubrid_close_prepare ( resource $req_identifier )

La fonction cubrid_close_prepare() ferme le gestionnaire de requête fourni par l'argument req_identifier et libère la région mémoire associée. C'est un alias de la fonction cubrid_close_request().

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec cubrid_close_prepare()

<?php
$con = cubrid_connect ("localhost", 33000, "demodb", "dba", "");
if ($con) {
   echo "Connexion réalisée avec succès";
   $req = cubrid_execute ( $con, "select * from members",
                           CUBRID_INCLUDE_OID | CUBRID_ASYNC);
   if ($req) {
      while ( list ($id, $name) = cubrid_fetch ($req) ){
         echo $id;
         echo $name;
      }
      cubrid_close_prepare($req); // vous pouvez aussi utiliser cubrid_close_request($req)
   }
   cubrid_disconnect($con);
}
?>

Voir aussi

  • cubrid_close_request() - Ferme le gestionnaire de requête


Ferme le gestionnaire de requête

  • « cubrid_close_prepare
  • cubrid_col_get »
  • PHP Manual
  • Fonctions CUBRID
  • Ferme le gestionnaire de requête

cubrid_close_request

(PECL CUBRID >= 8.3.0)

cubrid_close_request — Ferme le gestionnaire de requête

Description

bool cubrid_close_request ( resource $req_identifier )

La fonction cubrid_close_request() ferme le gestionnaire de requête fourni par l'argument req_identifier et libère la mémoire associée. C'est un alias de la fonction cubrid_close_prepare().

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec cubrid_close_request()

<?php
$con = cubrid_connect ("localhost", 33000, "demodb", "dba", "");
if ($con) {
   echo "connected successfully";
   $req = cubrid_execute ( $con, "select * from members",
                           CUBRID_INCLUDE_OID | CUBRID_ASYNC);
   if ($req) {
      while ( list ($id, $name) = cubrid_fetch ($req) ){
         echo $id;
         echo $name;
      }
      cubrid_close_request($req); // ou vous pouvez utiliser cubrid_close_prepare($req)
   }
   cubrid_disconnect($con);
}
?>

Voir aussi

  • cubrid_close_prepare() - Ferme le gestionnaire de requête


Récupère le contenu des éléments d'un type de collection en utilisant l'OID

  • « cubrid_close_request
  • cubrid_col_size »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère le contenu des éléments d'un type de collection en utilisant l'OID

cubrid_col_get

(PECL CUBRID >= 8.3.0)

cubrid_col_get — Récupère le contenu des éléments d'un type de collection en utilisant l'OID

Description

array cubrid_col_get ( resource $conn_identifier , string $oid , string $attr_name )

La fonction cubrid_col_get() est utilisé pour récupérer le contenu des attributs des éléments d'un type de collection (set, multiset, sequence), sous la forme d'un tableau.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance à utiliser pour la lecture.

attr_name

Nom de l'attribut que vous voulez lire depuis l'instance.

Valeurs de retour

Un tableau (numérique, commençant à 0) contenant les éléments voulus lorsque l'opération a été réalisée avec succès.

FALSE (afin de distinguer les erreurs et le fait que les attributs ont une collection vide ou nul ; en cas d'erreur, un message d'alerte sera affiché ; dans ce cas, vous pouvez récupérer l'erreur en utilisant la fonction cubrid_error_code()), lorsque l'opération a échouée.

Exemples

Exemple #1 Exemple avec cubrid_col_get()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

$size = cubrid_col_size($conn, $oid, "b");
var_dump($size);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
int(3)


Récupère le nombre d'éléments dans un type de colonne d'une collection en utilisant l'OID

  • « cubrid_col_get
  • cubrid_column_names »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère le nombre d'éléments dans un type de colonne d'une collection en utilisant l'OID

cubrid_col_size

(PECL CUBRID >= 8.3.0)

cubrid_col_size — Récupère le nombre d'éléments dans un type de colonne d'une collection en utilisant l'OID

Description

int cubrid_col_size ( resource $conn_identifier , string $oid , string $attr_name )

La fonction cubrid_col_size() est utilisée pour récupérer le nombre d'éléments dans un attribut de type de collection (set, multiset, sequence).

Liste de paramètres

conn_identifier

Un identifiant de connexion.

oid

OID de l'instance à utiliser.

attr_name

Nom de l'attribut à utiliser.

Valeurs de retour

Nombre d'éléments, lorsque l'opération est un succès.

FALSE, lorsque l'opération a échoué.

Historique

Version | Description
8.3.1 | Modification de la valeur retournée : lorsque l'opération échoue, la fonction retourne maintenant FALSE au lieu de -1.

Exemples

Exemple #1 Exemple avec cubrid_col_size()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

$size = cubrid_col_size($conn, $oid, "b");
var_dump($size);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
int(3)


Récupère les noms de colonnes du résultat

  • « cubrid_col_size
  • cubrid_column_types »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère les noms de colonnes du résultat

cubrid_column_names

(PECL CUBRID >= 8.3.0)

cubrid_column_names — Récupère les noms de colonnes du résultat

Description

array cubrid_column_names ( resource $req_identifier )

La fonction cubrid_column_names() est utilisée pour récupérer les noms de colonnes du résultat de la requête en utilisant le paramètre req_identifier.

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

Un tableau de chaînes de caractères contenant les noms des colonnes lorsque l'opération est un succès.

FALSE, lorsque l'opération échoue.

Exemples

Exemple #1 Exemple avec cubrid_column_names()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Maxlen");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
    $column_len = cubrid_field_len($result, $i);
    printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Column Names                   Column Types                   Column Maxlen
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10

Voir aussi

  • cubrid_prepare() - Prépare une requête SQL pour son exécution
  • cubrid_execute() - Exécute une requête SQL préparée
  • cubrid_column_types() - Récupère les types de colonnes du résultat


Récupère les types de colonnes du résultat

  • « cubrid_column_names
  • cubrid_commit »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère les types de colonnes du résultat

cubrid_column_types

(PECL CUBRID >= 8.3.0)

cubrid_column_types — Récupère les types de colonnes du résultat

Description

array cubrid_column_types ( resource $req_identifier )

La fonction cubrid_column_types() récupère les types de colonnes du résultat de la requête en utilisant le paramètre req_identifier.

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

Un tableau de chaînes de caractères contenant les types de colonnes, lorsque l'opération est un succès.

FALSE, lorsque l'opération a échoué.

Exemples

Exemple #1 Exemple avec cubrid_column_types()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Maxlen");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
    $column_len = cubrid_field_len($result, $i);
    printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Column Names                   Column Types                   Column Maxlen
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10

Voir aussi

  • cubrid_column_names() - Récupère les noms de colonnes du résultat
  • cubrid_prepare() - Prépare une requête SQL pour son exécution
  • cubrid_execute() - Exécute une requête SQL préparée


Commit une transaction

  • « cubrid_column_types
  • cubrid_connect_with_url »
  • PHP Manual
  • Fonctions CUBRID
  • Commit une transaction

cubrid_commit

(PECL CUBRID >= 8.3.0)

cubrid_commit — Commit une transaction

Description

bool cubrid_commit ( resource $conn_identifier )

La fonction cubrid_commit() est utilisée pour valider une transaction pointée par le paramètre conn_identifier. La connexion au serveur sera fermée après l'appel à la fonction cubrid_commit() ; cependant, le gestionnaire de connexion resta valide.

En CUBRID PHP, le mode auto-commit est désactivé par défaut pour la gestion des transactions. Vous pouvez le définir en utilisant la fonction cubrid_set_autocommit(). Vous pouvez récupérer son statut en utilisant la fonction cubrid_get_autocommit(). Avant de commencer une transaction, n'oubliez pas de désactiver le mode auto-commit.

Liste de paramètres

conn_identifier

Identifiant de connexion.

Valeurs de retour

TRUE, lorsque l'opération est un succès.

FALSE, lorsque l'opération a échoué.

Exemples

Exemple #1 Exemple avec cubrid_commit()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE publishers");

$sql = <<<EOD
CREATE TABLE publishers(
pub_id CHAR(3),
pub_name VARCHAR(20),
city VARCHAR(15),
state CHAR(2),
country VARCHAR(15)
)
EOD;

cubrid_set_autocommit($conn,false);

if (!cubrid_execute($conn, $sql)) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n", cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}

$req = cubrid_prepare($conn, "INSERT INTO publishers VALUES(?, ?, ?, ?, ?)");

$id_list = array("P01", "P02", "P03", "P04");
$name_list = array("Abatis Publishers", "Core Dump Books", "Schadenfreude Press", "Tenterhooks Press");
$city_list = array("New York", "San Francisco", "Hamburg", "Berkeley");
$state_list = array("NY", "CA", NULL, "CA");
$country_list = array("USA", "USA", "Germany", "USA");

for ($i = 0, $size = count($id_list); $i < $size; $i++) {
    cubrid_bind($req, 1, $id_list[$i]);
    cubrid_bind($req, 2, $name_list[$i]);
    cubrid_bind($req, 3, $city_list[$i]);
    cubrid_bind($req, 4, $state_list[$i]);
    cubrid_bind($req, 5, $country_list[$i]);

    if (!($ret = cubrid_execute($req))) {
        break;
    }
}

if (!$ret) {
    cubrid_rollback($conn);
} else {
    cubrid_commit($conn);

    $req = cubrid_execute($conn, "SELECT * FROM publishers");
    while ($result = cubrid_fetch_assoc($req)) {
        printf("%-3s %-20s %-15s %-3s %-15s\n",
            $result["pub_id"], $result["pub_name"], $result["city"], $result["state"], $result["country"]);
    }
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

P01 Abatis Publishers    New York        NY  USA
P02 Core Dump Books      San Francisco   CA  USA
P03 Schadenfreude Press  Hamburg             Germany
P04 Tenterhooks Press    Berkeley        CA  USA

Voir aussi

  • cubrid_rollback() - Annule une transaction
  • cubrid_get_autocommit() - Récupère le mode auto-commit de la connexion
  • cubrid_set_autocommit() - Définit le mode auto-commit pour la connexion


Établit l'environnement pour une connexion au serveur CUBRID

  • « cubrid_commit
  • cubrid_connect »
  • PHP Manual
  • Fonctions CUBRID
  • Établit l'environnement pour une connexion au serveur CUBRID

cubrid_connect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_connect_with_url — Établit l'environnement pour une connexion au serveur CUBRID

Description

resource cubrid_connect_with_url ( string $conn_url [, string $userid [, string $passwd [, bool $new_link = false ]]] )

La fonction cubrid_connect_with_url() est utilisée pour préparer l'environnement pour la connexion au serveur en utilisant les informations de connexion passées avec des arguments dans l'URL. Si la fonctionnalité HA est active pour CUBRID, vous devez spécifier les informations de connexion du serveur de secours, qui sera utilisé comme backup lorsqu'une erreur survient. Si le nom d'utilisateur et le mot de passe ne sont pas fournis, alors la connexion "PUBLIC" sera établie par défaut.

<url> ::= CUBRID:<host>:<db_name>:<db_user>:<db_password>:[?<properties>]

<properties> ::= <property> [&<property>]

<properties> ::= alhosts=<alternative_hosts>[ &rctime=<time>]

<properties> ::= login_timeout=<milli_sec>

<properties> ::= query_timeout=<milli_sec>

<properties> ::= disconnect_on_query_timeout=true|false

<alternative_hosts> ::= <standby_broker1_host>:<port> [,<standby_broker2_host>:<port>]

<host> := HOSTNAME | IP_ADDR

<time> := SECOND

<milli_sec> := MILLI SECOND

  • host : Un nom d'hôte ou une adresse IP vers la base de données principale
  • db_name : Un nom de base de données
  • db_user : Un nom d'utilisateur pour la base de données
  • db_password : Le mot de passe associé à l'utilisateur
  • autocommit : Le mode auto-commit de la connexion à la base de données
  • alhosts : spécifie le courtier d'information pour le serveur de secours, qui sera utilisé comme backup lorsqu'il devient impossible de se connecter au serveur courant. Vous pouvez spécifier plusieurs courtiers comme backup et la connexion aux courtiers se fera dans l'ordre de alhosts
  • rctime : un intervalle pendant lequel il sera tenter de se connecter au courtier active lorsqu'une erreur survient. Après qu'une erreur ne soit survenue, le système se connecter au courant spécifié par althosts, met fin à la transaction, et tente une connexion au courtier actif de la base de données principale à chaque intervalle rctime. La valeur par défaut est 600 secondes.
  • login_timeout : Valeur du délai maximal d'attente (unité : mseconde) pour l'identification à la base de données. Par défaut, cette valeur vaut 0, ce qui signifie que l'on attend indéfiniment.
  • query_timeout : Valeur du délai maximal d'attente (unité : mseconde) pour l'exécution de la requête. Une fois cette valeur atteinte, un message pour annuler la requête envoyée au serveur est envoyé. La valeur retournée peut dépendre de la configuration de disconnect_on_query_timeout configuration ; même si le message pour annuler la requête a été envoyée au serveur, la requête peut réussir.
  • disconnect_on_query_timeout : Configure une valeur déterminant si l'on doit retourner immédiatement une erreur pour les fonctions exécutées après le délai maximal d'attente. La valeur par défaut est FALSE.

Note:

Les caractères ? et : utilisés comme identifiants dans les URLs de connexion PHP ne peuvent être inclus dans le mot de passe. Voici un exemple de mot de passe invalide, car utilisant les caractères "?:" dans l'URL de connexion.

$url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";

Les mots de passe contenant le caractère ? ou le caractère : peuvent être passés en tant que paramètre séparé.

$url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";

$conn = cubrid_connect_with_url($url, "dba", "12?");

Si le nom d'utilisateur ou le mot de passe est vide, vous ne devez pas supprimer les ":" ; voici un exemple :

$url = "CUBRID:localhost:33000:demodb:::";

Liste de paramètres

conn_url

Une chaîne de caractères contenant les informations de connexion au serveur.

userid

Le nom d'utilisateur de la base de données.

passwd

Le mot de passe de l'utilisateur.

new_link

Si un second appel est effectué à la fonction cubrid_connect_with_url() avec les mêmes arguments, aucune nouvelle connexion ne sera établit, et l'identifiant de la connexion déjà ouverte sera retourné à la place. Le paramètre new_link modifie ce comportement et fera que la fonction cubrid_connect_with_url() ouvre toujours une nouvelle connexion, y compris si la fonction cubrid_connect_with_url() a déjà été appelée avec les mêmes arguments.

Valeurs de retour

Identifiant de connexion, en cas de succès.

FALSE, lorsqu'une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_connect_with_url()

<?php
$conn_url = "CUBRID:localhost:33000:demodb:dba::";
$con = cubrid_connect_with_url($conn_url);

if ($con) {
   echo "Connexion avec succès.";
   cubrid_execute($con, "create table person(id int,name char(16))");
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }
   cubrid_disconnect($con);
}
?>

Exemple #2 Exemple avec cubrid_connect_with_url()

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::?login_timeout=100"
$con = cubrid_connect_with_url ($conn_url);

if ($con) {
   echo "Connexion avec succès.";
   cubrid_execute($con, "create table person(id int,name char(16))");
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }
   cubrid_disconnect($con);
}
?>

Voir aussi

  • cubrid_connect() - Ouvre une connexion au serveur CUBRID
  • cubrid_pconnect() - Ouvre une connexion persistante vers un serveur CUBRID
  • cubrid_pconnect_with_url() - Ouvre une connexion persistante vers un serveur CUBRID
  • cubrid_disconnect() - Ferme la connexion à la base de données
  • cubrid_close() - Ferme une connexion CUBRID


Ouvre une connexion au serveur CUBRID

  • « cubrid_connect_with_url
  • cubrid_current_oid »
  • PHP Manual
  • Fonctions CUBRID
  • Ouvre une connexion au serveur CUBRID

cubrid_connect

(PECL CUBRID >= 8.3.1)

cubrid_connect — Ouvre une connexion au serveur CUBRID

Description

resource cubrid_connect ( string $host , int $port , string $dbname [, string $userid [, string $passwd [, bool $new_link = false ]]] )

La fonction cubrid_connect() est utilisée pour établir l'environnement pour une connexion au serveur en utilisant l'adresse du serveur, le numéro du port, le nom de la base de données, le nom d'utilisateur et son mot de passe. Si le nom d'utilisateur et le mot de passe ne sont pas fournis, alors une connexion "PUBLIC" sera effectuée par défaut.

Liste de paramètres

host

Nom d'hôte ou adresse IP du serveur CUBRID CAS.

port

Numéro du port du serveur CUBRID CAS (BROKER_PORT est configuré danns le fichier $CUBRID/conf/cubrid_broker.conf).

dbname

Nom de la base de données.

userid

Nom d'utilisateur pour la base de données. Si non fourni, la valeur par défaut est "public".

passwd

Mot de passe pour l'utilisateur. Si non fourni, la valeur par défaut est "".

new_link

Si un second appel est effectué à la fonction cubrid_connect() avec les mêmes arguments, aucune nouvelle connexion ne sera établie, et l'identifiant de la connexion déjà ouverte sera retourné à la place. Le paramètre new_link modifie ce comportement et fera que la fonction cubrid_connect() ouvre toujours une nouvelle connexion, y compris si la fonction cubrid_connect() a déjà été appelée avec les mêmes arguments.

Valeurs de retour

Un identifiant de connexion, lorsque l'opération a été réalisée avec succès.

FALSE, lorsque l'opération a échoué.

Exemples

Exemple #1 Exemple avec cubrid_connect()

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Voir aussi

  • cubrid_pconnect() - Ouvre une connexion persistante vers un serveur CUBRID
  • cubrid_connect_with_url() - Établit l'environnement pour une connexion au serveur CUBRID
  • cubrid_pconnect_with_url() - Ouvre une connexion persistante vers un serveur CUBRID
  • cubrid_disconnect() - Ferme la connexion à la base de données
  • cubrid_close() - Ferme une connexion CUBRID


Récupère l'OID de la localisation du curseur courant

  • « cubrid_connect
  • cubrid_disconnect »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère l'OID de la localisation du curseur courant

cubrid_current_oid

(PECL CUBRID >= 8.3.0)

cubrid_current_oid — Récupère l'OID de la localisation du curseur courant

Description

string cubrid_current_oid ( resource $req_identifier )

La fonction cubrid_current_oid() est utilisée pour récupérer l'OID de la localisation du curseur courant. Pour utiliser la fonction cubrid_current_oid(), la requête exécutée doit être une requête de mise à jour, et l'option CUBRID_INCLUDE_OID doit être incluse lors de l'exécution de la requête.

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

OID de la localisation du curseur courant, lorsque l'opération est un succès.

FALSE, lorsque l'opération échoue.

Exemples

Exemple #1 Exemple avec cubrid_current_oid()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code", CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);
$res = cubrid_get($conn, $oid);

print_r($res);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Array
(
    [s_name] => X
    [f_name] => Mixed
)

Voir aussi

  • cubrid_execute() - Exécute une requête SQL préparée


Ferme la connexion à la base de données

  • « cubrid_current_oid
  • cubrid_drop »
  • PHP Manual
  • Fonctions CUBRID
  • Ferme la connexion à la base de données

cubrid_disconnect

(PECL CUBRID >= 8.3.0)

cubrid_disconnect — Ferme la connexion à la base de données

Description

bool cubrid_disconnect ([ resource $conn_identifier ] )

La fonction cubrid_disconnect() ferme le gestionnaire de connexion et se déconnecte du serveur. S'il existe des gestionnaires de requêtes non fermés, à ce moment là, ils le seront. Cette fonction est similaire à la fonction cubrid_close().

Liste de paramètres

conn_identifier

Identifiant de connexion.

Valeurs de retour

TRUE, en cas de succès.

FALSE, si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_disconnect()

<?php
$con = cubrid_connect ("localhost", 33000, "demodb");
if ($con) {
   echo "Connexion réussie";

   $req = cubrid_execute( $con, "create table person(id int,name char(10))");
   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }

   $req = cubrid_execute( $con, "insert into person values(1,'James')");
   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }
   cubrid_disconnect($con);
}
?>

Voir aussi

  • cubrid_close() - Ferme une connexion CUBRID
  • cubrid_connect() - Ouvre une connexion au serveur CUBRID
  • cubrid_connect_with_url() - Établit l'environnement pour une connexion au serveur CUBRID


Supprime une instance en utilisant son OID

  • « cubrid_disconnect
  • cubrid_error_code_facility »
  • PHP Manual
  • Fonctions CUBRID
  • Supprime une instance en utilisant son OID

cubrid_drop

(PECL CUBRID >= 8.3.0)

cubrid_drop — Supprime une instance en utilisant son OID

Description

bool cubrid_drop ( resource $conn_identifier , string $oid )

La cubrid_drop() est utilisée pour supprimer une instance de la base de données en utilisant le paramètre oid de l'instance.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

Oid de l'instance que vous voulez supprimer.

Valeurs de retour

TRUE, en cas de succès.

FALSE, si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_drop()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

printf("--- Before Drop: ---\n");
$attr = cubrid_get($conn, $oid);
var_dump($attr);

if (cubrid_drop($conn, $oid)) {
    cubrid_commit($conn);
} else {
    cubrid_rollback($conn);
}

cubrid_close_request($req);

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

printf("\n--- After Drop: ---\n");
$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

--- Before Drop: ---
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

--- After Drop: ---
array(4) {
  ["a"]=>
  string(1) "2"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "4"
    [1]=>
    string(1) "5"
    [2]=>
    string(1) "7"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "44"
    [1]=>
    string(2) "55"
    [2]=>
    string(2) "66"
    [3]=>
    string(3) "666"
  }
  ["d"]=>
  string(10) "b         "
}

Voir aussi

  • cubrid_is_instance() - Vérifie si une instance existe


Récupère le niveau du code erreur

  • « cubrid_drop
  • cubrid_error_code »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère le niveau du code erreur

cubrid_error_code_facility

(PECL CUBRID >= 8.3.0)

cubrid_error_code_facility — Récupère le niveau du code erreur

Description

int cubrid_error_code_facility ( void )

La fonction cubrid_error_code_facility() est utilisée pour récupérer le niveau du code erreur (niveau dans lequel l'erreur est survenue) depuis le code erreur d'une erreur survenue lors de l'exécution de l'API. Habituellement, vous pouvez récupérer le code erreur lorsque l'API retourne FALSE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le niveau depuis le code erreur survenue : CUBRID_FACILITY_DBMS, CUBRID_FACILITY_CAS, CUBRID_FACILITY_CCI, CUBRID_FACILITY_CLIENT

Exemples

Exemple #1 Exemple avec cubrid_error_code_facility()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = @cubrid_execute($conn, "SELECT * FROM unknown");
if (!$req) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n",
        cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}
?>

L'exemple ci-dessus va afficher :

Error facility: 1
Error code: -493
Error msg: Syntax: In line 1, column 15 before END OF STATEMENT
Syntax error: unexpected 'unknown'

Voir aussi

  • cubrid_error_code() - Récupère le code erreur de la dernière erreur survenue
  • cubrid_error_msg() - Récupère le message d'erreur de la dernière erreur survenue


Récupère le code erreur de la dernière erreur survenue

  • « cubrid_error_code_facility
  • cubrid_error_msg »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère le code erreur de la dernière erreur survenue

cubrid_error_code

(PECL CUBRID >= 8.3.0)

cubrid_error_code — Récupère le code erreur de la dernière erreur survenue

Description

int cubrid_error_code ( void )

La fonction cubrid_error_code() est utilisée pour récupérer le code erreur survenue lors de l'exécution de l'API. Habituellement, elle récupère le code erreur lorsque l'API retourne FALSE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le code erreur de la dernière erreur survenue, ou 0 (zéro) si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec cubrid_error_code()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_prepare($conn , "SELECT * FROM code WHERE s_name=?");

$req = @cubrid_execute($req);
if (!$req) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n",
        cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}
?>

L'exemple ci-dessus va afficher :

Error facility: 4
Error code: -30015
Error msg: Some parameter not binded

Voir aussi

  • cubrid_error_code_facility() - Récupère le niveau du code erreur
  • cubrid_error_msg() - Récupère le message d'erreur de la dernière erreur survenue


Récupère le message d'erreur de la dernière erreur survenue

  • « cubrid_error_code
  • cubrid_execute »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère le message d'erreur de la dernière erreur survenue

cubrid_error_msg

(PECL CUBRID >= 8.3.0)

cubrid_error_msg — Récupère le message d'erreur de la dernière erreur survenue

Description

string cubrid_error_msg ( void )

La fonction cubrid_error_msg() est utilisée pour récupérer le message d'erreur survenue lors de l'utilisation de l'API CUBRID. Habituellement, elle récupère le message d'erreur lorsque l'API retourne FALSE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le message d'erreur survenue.

Exemples

Exemple #1 Exemple avec cubrid_error_msg()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

if (!@cubrid_schema($conn, 100000)) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n",
        cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}
?>

L'exemple ci-dessus va afficher :

Error facility: 2
Error code: -10015
Error msg: Invalid T_CCI_SCH_TYPE value

Voir aussi

  • cubrid_error_code() - Récupère le code erreur de la dernière erreur survenue
  • cubrid_error_code_facility() - Récupère le niveau du code erreur


Exécute une requête SQL préparée

  • « cubrid_error_msg
  • cubrid_fetch »
  • PHP Manual
  • Fonctions CUBRID
  • Exécute une requête SQL préparée

cubrid_execute

(PECL CUBRID >= 8.3.0)

cubrid_execute — Exécute une requête SQL préparée

Description

resource cubrid_execute ( resource $conn_identifier , string $sql [, int $option ] )
bool cubrid_execute ( resource $request_identifier [, int $option ] )

La fonction cubrid_execute() est utilisée pour exécuter une requête SQL. Elle exécute la requête en utilisant le paramètre conn_identifier et SQL, puis, retourne l'identifiant de requête créé. Elle est utilisée pour une exécution simple de requête, où le liage de paramètre n'est pas nécessaire. De plus, la fonction cubrid_execute() est utilisée pour exécuter la requête préparée en utilisant cubrid_prepare() et cubrid_bind(). À ce point, vous devez spécifier les arguments request_identifier et option.

L'option est utilisé pour déterminer si l'on doit récupérer l'IOD après l'exécution de la requête, et si l'on doit exécuter la requête en mode asynchrone ou non. CUBRID_INCLUDE_OID et CUBRID_ASYNC (ou CUBRID_EXEC_QUERY_ALL si vous voulez exécuter plusieurs requêtes SQL) peuvent être spécifiés en utilisant l'opérateur OR. Si l'opérateur n'est pas spécifié, aucun des deux ne sera sélectionné. Si le drapeau CUBRID_EXEC_QUERY_ALL est défini, le mode synchrone (sync_mode) sera utilisé pour récupérer les résultats de la requête, et dans un tel cas, les règles suivantes seront appliquées :

  • La valeur retournée sera le résultat de la première requête.
  • Si une erreur survient dans une des requêtes, l'exécution sera vu comme étant un échec.
  • Pour une requête composée de q1 q2 et q3, si une erreur survient dans q2 alors que q1 a été exécutée avec succès, le résultat de q1 reste valide. Ainsi, l'exécution avec succès d'une précédente requête ne sera pas annulée lorsqu'une erreur survient.
  • Si une requête est exécutée avec succès, le résultat de la seconde requête peut être obtenu en utilisant la fonction cubrid_next_result().

Si le premier paramètre est request_identifier pour exécuter la fonction cubrid_prepare(), vous pouvez spécifier une option, CUBRID_ASYNC uniquement.

Liste de paramètres

conn_identifier

Identifiant de connexion.

sql

SQL à exécuter.

option

Option d'exécution de la requête : CUBRID_INCLUDE_OID, CUBRID_ASYNC, CUBRID_EXEC_QUERY_ALL.

request_identifier

Identifiant de requête pour la fonction cubrid_prepare().

Valeurs de retour

Un identifiant de requête, lorsque l'opération a été réalisée avec succès et que le premier paramètre est l'identifiant de connexion ; TRUE, lorsque l'opération a été réalisée avec succès et que le premier paramètre est l'identifiant de requête.

FALSE, si une erreur survient.

Historique

Version | Description
8.4.0 | Ajout d'une nouvelle option : CUBRID_EXEC_QUERY_ALL.

Exemples

Exemple #1 Exemple avec cubrid_execute()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$result = cubrid_execute($conn, "SELECT code FROM event WHERE name='100m Butterfly' and gender='M'", CUBRID_ASYNC);
$row = cubrid_fetch_array($result, CUBRID_ASSOC);
$event_code = $row["code"];

cubrid_close_request($result);

$history_req = cubrid_prepare($conn, "SELECT * FROM history WHERE event_code=?");
cubrid_bind($history_req, 1, $event_code, "number");
cubrid_execute($history_req);

printf("%-20s %-9s %-10s %-5s\n", "athlete", "host_year", "score", "unit");
while ($row = cubrid_fetch_array($history_req, CUBRID_ASSOC)) {
    printf("%-20s %-9s %-10s %-5s\n",
        $row["athlete"], $row["host_year"], $row["score"], $row["unit"]);
}

cubrid_close_request($history_req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

athlete              host_year score      unit
Phelps Michael       2004      51.25      time

Voir aussi

  • cubrid_prepare() - Prépare une requête SQL pour son exécution
  • cubrid_bind() - Lie des valeurs à une requête préparée
  • cubrid_next_result() - Récupère le résultat de la prochaine requête lors de l'exécution de requêtes SQL multiples
  • cubrid_close_request() - Ferme le gestionnaire de requête
  • cubrid_commit() - Commit une transaction
  • cubrid_rollback() - Annule une transaction


Récupère la prochaine ligne du jeu de résultats

  • « cubrid_execute
  • cubrid_free_result »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère la prochaine ligne du jeu de résultats

cubrid_fetch

(PECL CUBRID >= 8.3.0)

cubrid_fetch — Récupère la prochaine ligne du jeu de résultats

Description

mixed cubrid_fetch ( resource $result [, int $type = CUBRID_BOTH ] )

La fonction cubrid_fetch() est utilisée pour récupérer une seule ligne depuis le résultat de la requête. Le curseur se déplace automatiquement sur la prochaine ligne une fois la récupération effectuée.

Liste de paramètres

result

Le paramètre result provient de l'appel à la fonction cubrid_execute()

type

Type du tableau à retourner : CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH, CUBRID_OBJECT. Si vous voulez utiliser un objet LOB, vous pouvez utiliser CUBRID_LOB.

Valeurs de retour

Tableau ou objet de résultat, en cas de succès.

FALSE lorsqu'il n'y a plus de ligne de disponible, NULL si une erreur survient.

Le résultat peut être sous la forme d'un tableau ou d'un objet ; le type de résultat peut être défini grâce au paramètre type. La variable type peut être définie à une des valeurs suivantes :

  • CUBRID_NUM : Tableau numérique (en commençant à l'indice 0)
  • CUBRID_ASSOC : Tableau associatif
  • CUBRID_BOTH : Tableau numérique et associatif (valeur par défaut)
  • CUBRID_OBJECT : Objet dont les noms des attributs correspondent aux noms des colonnes du résultat de la requête

Lorsque l'argument type est omis, le résultat sera retourné en utilisant l'option CUBRID_BOTH par défaut. Lorsque vous voulez recevoir le résultat de la requête sous la forme d'un objet, le nom de la colonne du résultat doit être conforme aux règles de nommage des identifiants en PHP. Par exemple, les noms de colonnes comme "count(*)" ne peuvent être acceptés dans le type objet.

Exemples

Exemple #1 Exemple avec cubrid_fetch()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT * FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch($req)) {
    printf("%-40s %-10s %-6s %-20s\n",
        $row["name"], $row["area"], $row["seats"], $row["address"]);
}

// Si vous voulez utiliser un objet LOB, vous pouvez utiliser
// cubrid_fetch($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Voir aussi

  • cubrid_execute() - Exécute une requête SQL préparée
  • cubrid_fetch_array() - Récupère une ligne de résultat sous forme de tableau associatif, de tableau numérique, ou les deux
  • cubrid_fetch_row() - Retourne un tableau numérique avec les valeurs de la ligne courante
  • cubrid_fetch_assoc() - Retourne un tableau associatif correspondant à la ligne récupérée
  • cubrid_fetch_object() - Récupère la prochaine ligne et la retourne sous la forme d'un objet


Libère la mémoire occupée par les données de résultat

  • « cubrid_fetch
  • cubrid_get_autocommit »
  • PHP Manual
  • Fonctions CUBRID
  • Libère la mémoire occupée par les données de résultat

cubrid_free_result

(PECL CUBRID >= 8.3.0)

cubrid_free_result — Libère la mémoire occupée par les données de résultat

Description

bool cubrid_free_result ( resource $req_identifier )

Cette fonction libère la mémoire occupées par les données de résultat. Elle retourne TRUE en cas de succès, FALSE sinon. Notez que cette fonction ne libère que le buffer de récupération du client, et que si vous voulez libérer toute la mémoire, vous devez utilisez la fonction cubrid_close_request().

Liste de paramètres

req_identifier

Identifiant de requête.

Valeurs de retour

TRUE en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_free_result()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM history WHERE host_year=2004 ORDER BY event_code");
$row = cubrid_fetch_assoc($req);
var_dump($row);

cubrid_free_result($req);
cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(5) {
  ["event_code"]=>
  string(5) "20005"
  ["athlete"]=>
  string(12) "Hayes Joanna"
  ["host_year"]=>
  string(4) "2004"
  ["score"]=>
  string(5) "12.37"
  ["unit"]=>
  string(4) "time"
}


Récupère le mode auto-commit de la connexion

  • « cubrid_free_result
  • cubrid_get_charset »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère le mode auto-commit de la connexion

cubrid_get_autocommit

(PECL CUBRID >= 8.4.0)

cubrid_get_autocommit — Récupère le mode auto-commit de la connexion

Description

bool cubrid_get_autocommit ( resource $conn_identifier )

La fonction cubrid_get_autocommit() est utilisée pour récupérer le statut du mode auto-commit de la connexion à la base de données CUBRID.

En CUBRID 8.4.0, le mode auto-commit est désactivé par défault pour la gestion des transactions.

En CUBRID 8.4.1, le mode auto-commit est activé par défaut pour la gestion des transactions.

Liste de paramètres

conn_identifier

Identifiant de connexion.

Valeurs de retour

TRUE, lorsque le mode auto-commit est actif.

FALSE, lorsque le mode auto-commit est inactif.

NULL Si une erreur survient.

Voir aussi

  • cubrid_set_autocommit() - Définit le mode auto-commit pour la connexion
  • cubrid_commit() - Commit une transaction


Retourne le jeu de caractères utilisé sur la connexion CUBRID courante

  • « cubrid_get_autocommit
  • cubrid_get_class_name »
  • PHP Manual
  • Fonctions CUBRID
  • Retourne le jeu de caractères utilisé sur la connexion CUBRID courante

cubrid_get_charset

(PECL CUBRID >= 8.3.0)

cubrid_get_charset — Retourne le jeu de caractères utilisé sur la connexion CUBRID courante

Description

string cubrid_get_charset ( resource $conn_identifier )

Cette fonction retourne le jeu de caractères sur la connexion CUBRID courante et est similaire à la fonction CUBRID compatible MySQL cubrid_client_encoding().

Liste de paramètres

conn_identifier

La connexion CUBRID.

Valeurs de retour

Une chaîne de caractères représentant le jeu de caractères sur la connexion CUBRID en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_get_charset()

<?php

$con = cubrid_connect("localhost", 33000, "demodb");
if (!$con)
{
    die('Connexion impossible.');
}

printf("Jeu de caractères CUBRID courant : %s\n", cubrid_get_charset($con));

?>

L'exemple ci-dessus va afficher :

Jeu de caractères CUBRID courant : iso8859-1

Voir aussi

  • cubrid_client_encoding() - Retourne le jeu de caractères utilisé sur la connexion CUBRID courante


Récupère le nom de la classe en utilisant son OID

  • « cubrid_get_charset
  • cubrid_get_client_info »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère le nom de la classe en utilisant son OID

cubrid_get_class_name

(PECL CUBRID >= 8.3.0)

cubrid_get_class_name — Récupère le nom de la classe en utilisant son OID

Description

string cubrid_get_class_name ( resource $conn_identifier , string $oid )

La fonction cubrid_get_class_name() est utilisée pour récupérer le nom de la classe depuis l'oid. Ce mécanisme ne fonctionne pas lors de la sélection de données depuis des tables systèmes, comme db_class.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance dont vous voulez vérifier l'existence.

Valeurs de retour

Le nom de la classe, en cas de succès.

FALSE, si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_get_class_name()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code", CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);
$class_name = cubrid_get_class_name($conn, $oid);

print_r($class_name);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

code

Voir aussi

  • cubrid_is_instance() - Vérifie si une instance existe
  • cubrid_drop() - Supprime une instance en utilisant son OID


Retourne la version de la bibliothèque cliente

  • « cubrid_get_class_name
  • cubrid_get_db_parameter »
  • PHP Manual
  • Fonctions CUBRID
  • Retourne la version de la bibliothèque cliente

cubrid_get_client_info

(PECL CUBRID >= 8.3.0)

cubrid_get_client_info — Retourne la version de la bibliothèque cliente

Description

string cubrid_get_client_info ( void )

Cette fonction retourne une chaîne de caractères représentant la vesion de la bibliothèque cliente.

Liste de paramètres

Valeurs de retour

Une chaîne de caractères représentant la version de la bibliothèque cliente en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_get_client_info()

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

L'exemple ci-dessus va afficher :

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1


Retourne les paramètres de la base de données CUBRID

  • « cubrid_get_client_info
  • cubrid_get_query_timeout »
  • PHP Manual
  • Fonctions CUBRID
  • Retourne les paramètres de la base de données CUBRID

cubrid_get_db_parameter

(PECL CUBRID >= 8.3.0)

cubrid_get_db_parameter — Retourne les paramètres de la base de données CUBRID

Description

array cubrid_get_db_parameter ( resource $conn_identifier )

Cette fonction retourne les paramètres de la base de données CUBRID, ou FALSE si une erreur survient. Elle retourne un tableau associatif avec les valeurs des paramètres suivants :

  • PARAM_ISOLATION_LEVEL
  • PARAM_LOCK_TIMEOUT
  • PARAM_MAX_STRING_LENGTH
  • PARAM_AUTO_COMMIT

Paramètres de la base de données
Paramètre | Description
PARAM_ISOLATION_LEVEL | Le niveau d'isolation de la transaction.
LOCK_TIMEOUT | CUBRID fournit la fonctionnalité de verrou du délai d'expiration, qui définit le temps d'attente (en secondes) pour le verrou tant que la configuration du verrou de la transaction est autorisée. La valeur par défaut du paramètre lock_timeout_in_secs vaut -1, qui signifie que l'application cliente attendra indéfiniment tant que le verrou de transaction est autorisé.
PARAM_AUTO_COMMIT | En CUBRID PHP, le mode auto-commit est désactivé par défaut pour le gestionnaire de transaction. Il peut être défini par la fonction cubrid_set_autocommit().

La table suivante montre les niveaux d'isolation de 1 à 6 :

Niveaux d'isolation supportés par CUBRID
Nom | Description
SERIALIZABLE (6) | Dans ce niveau d'isolation, les problèmes de concurrence (i.e. lecture de données modifiées, lecture répétée de données, lecture de données fantôme, etc.) ne peuvent pas survenir.
REPEATABLE READ CLASS avec REPEATABLE READ INSTANCES (5) | Une autre transaction T2 ne peut pas mettre à jour le schéma de la table A tant que la transaction T1 lit la table A. La transaction T1 peut rencontrer des données fantômes de l'enregistrement R qui a été inséré par la transaction T2 lorsqu'elle récupère à plusieurs reprises un enregistrement spécifique.
REPEATABLE READ CLASS with READ COMMITTED INSTANCES (or CURSOR STABILITY) (4) | Une autre transaction T2 ne peut pas mettre à jour le schéma de la table A alors qu'une transaction T1 lit la table A. La transaction T1 peut rencontrer des lectures répétées de données qui ont été mises à jour, et valider par une autre transaction T2 lorsqu'elle récupère à plusieurs reprises l'enregistrement R.
REPEATABLE READ CLASS with READ UNCOMMITTED INSTANCES (3) | Niveau d'isolation par défaut. Une transaction T2 ne peut pas mettre à jour le schéma de la table A alors qu'une transaction T1 lit la table A. La transaction T1 peut rencontrer des données non mises à jour pour l'enregistrement qui a été mis à jour mais non encore validé par la transaction T2.
READ COMMITTED CLASS with READ COMMITTED INSTANCES (2) | La transaction T1 peut rencontrer des lectures répétées de données pour la table qui a été mise à jour et validée par la transaction T2 alors qu'elle lit plusieurs fois la table A. La transaction T1 peut rencontrer des lectures répétées de données pour l'enregistrement qui a été mis à jour et validé par la transaction T2 alors qu'elle récupère à plusieurs reprises l'enregistrement R.
READ COMMITTED CLASS with READ UNCOMMITTED INSTANCES (1) | La transaction T1 peut rencontrer des lectures répétées de données pour la table qui a été mise à jour et validée par la transaction T2 alors qu'elle lit à plusieurs reprises la table A. La transaction T1 peut rencontrer des données non mises à jour pour l'enregistrement qui a été mise à jour mais non validé par la transaction T2.

Liste de paramètres

conn_identifier

La connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, le dernier lien ouvert avec la fonction cubrid_connect() sera utilisé.

Valeurs de retour

Un tableau associatif contenant les paramètres de la base de données CUBRID en cas de succès.

FALSE si une erreur survient.

Historique

Version | Description
8.4.0 | Modification de LOCK_TIMEOUT en PARAM_LOCK_TIMEOUT, de MAX_STRING_LENGTH en PARAM_MAX_STRING_LENGTH dans le résultat.

Exemples

Exemple #1 Exemple avec cubrid_get_db_parameter()

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

L'exemple ci-dessus va afficher :

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Voir aussi

  • cubrid_set_db_parameter() - Définit les paramètres de base de données CUBRID
  • cubrid_get_autocommit() - Récupère le mode auto-commit de la connexion


Récupère la valeur du délai d'attente maximal d'une requête

  • « cubrid_get_db_parameter
  • cubrid_get_server_info »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère la valeur du délai d'attente maximal d'une requête

cubrid_get_query_timeout

(PECL CUBRID >= 8.4.1)

cubrid_get_query_timeout — Récupère la valeur du délai d'attente maximal d'une requête

Description

int cubrid_get_query_timeout ( resource $req_identifier )

La fonction cubrid_get_query_timeout() est utilisée pour récupérer le délai d'attente maximal d'une requête.

Liste de paramètres

req_identifier

Un identifiant de requête.

Valeurs de retour

Retourne la valeur du délai d'attente maximal pour la requête en cas de succès, en millisecondes.

Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_get_query_timeout()

<?php

$host = "localhost";
$port = 33000;
$db = "demodb";

$conn =
cubrid_connect_with_url("CUBRID:$host:$port:$db:::?login_timeout=50000&query_timeout=5000&disconnect_on_query_timeout=yes");

$req = cubrid_prepare($conn, "SELECT * FROM code");

$timeout = cubrid_get_query_timeout($req);
var_dump($timeout);

cubrid_set_query_timeout($req, 1000);
$timeout = cubrid_get_query_timeout($req);
var_dump($timeout);

cubrid_close($conn);
?>

L'exemple ci-dessus va afficher :

int(5000)
int(1000)

Voir aussi

  • cubrid_set_query_timeout() - Définit le délai maximal d'exécution d'une requête


Retourne la version du serveur CUBRID

  • « cubrid_get_query_timeout
  • cubrid_get »
  • PHP Manual
  • Fonctions CUBRID
  • Retourne la version du serveur CUBRID

cubrid_get_server_info

(PECL CUBRID >= 8.3.0)

cubrid_get_server_info — Retourne la version du serveur CUBRID

Description

string cubrid_get_server_info ( resource $conn_identifier )

Cette fonction retourne une chaîne de caractères représentant la version du serveur CUBRID.

Liste de paramètres

conn_identifier

L'identifiant de connexion CUBRID.

Valeurs de retour

Une chaîne de caractères représentant la version du serveur CUBRID en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_get_server_info()

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

L'exemple ci-dessus va afficher :

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1


Récupère une colonne en utilisant son OID

  • « cubrid_get_server_info
  • cubrid_insert_id »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère une colonne en utilisant son OID

cubrid_get

(PECL CUBRID >= 8.3.0)

cubrid_get — Récupère une colonne en utilisant son OID

Description

mixed cubrid_get ( resource $conn_identifier , string $oid [, mixed $attr ] )

La fonction cubrid_get() est utilisée pour récupérer l'attribut de l'instance représentée par l'oid fourni. Vous pouvez récupérer un seul attribut en utilisant le type de données "chaîne de caractères" de l'argument attr ou plusieurs attributs en utilisant le type de données "tableau" de l'argument attr.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance depuis laquelle vous voulez lire.

attr

Nom de l'attribut que vous voulez lire.

Valeurs de retour

Le contenu de l'attribut demandé, lorsque l'opération a réussi : lorsque le paramètre attr est défini comme type de données "chaîne de caractères", le résultat est retourné sous la forme d'une chaîne de caractères ; lorsque le paramètre attr est défini comme type de données "tableau" (tableau numérique commençant à 0), le résultat est retourné sous la forme d'un tableau associatif. Lorsque le paramètre attr est omis, alors tous les attributs seront retournés dans un tableau.

FALSE si une erreur survient ou si le résultat vaut NULL (si une erreur survient, pour distinguer d'une chaîne vide, un message d'alerte sera émis. Vous pouvez récupérer l'erreur en utilisant la fonction cubrid_error_code()).

Exemples

Exemple #1 Exemple avec cubrid_get()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_get($conn, $oid, "b");
var_dump($attr);

$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

string(9) "{1, 2, 3}"
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

Voir aussi

  • cubrid_put() - Met à jour une colonne suivant son OID


Retourne l'identifiant généré pour la dernière mise à jour de la colonne AUTO_INCREMENT

  • « cubrid_get
  • cubrid_is_instance »
  • PHP Manual
  • Fonctions CUBRID
  • Retourne l'identifiant généré pour la dernière mise à jour de la colonne AUTO_INCREMENT

cubrid_insert_id

(PECL CUBRID >= 8.3.0)

cubrid_insert_id — Retourne l'identifiant généré pour la dernière mise à jour de la colonne AUTO_INCREMENT

Description

string cubrid_insert_id ([ resource $conn_identifier ] )

La fonction cubrid_insert_id() récupère l'identifiant généré pour la colonne AUTO_INCREMENT mise à jour par la précédente requête INSERT. Elle retourne 0 si la précédente requête ne génère pas de nouvelles lignes, ou FALSE si une erreur survient.

Note:

CUBRID supporte AUTO_INCREMENT pour plus d'une colonne dans une table. Dans la plupart des cas, il n'y en a qu'une seule. S'il y en a plusieurs, cette fonction ne doit pas être utilisée y compris si elle retourne une valeur.

Liste de paramètres

conn_identifier

L'identifiant de connexion précédemment obtenu depuis un appel à la fonction cubrid_connect().

Valeurs de retour

Une chaîne de caractères représentant l'identifiant généré pour la colonne AUTO_INCREMENT par la précédente requête en cas de succès.

0 si la précédente requête n'a généré aucune nouvelle ligne.

FALSE si une erreur survient.

Historique

Version | Description
8.4.0 | Modification de la valeur retournée (d'un tableau vers une chaîne de caractères) ; Suppression du premier paramètre class_name.

Exemples

Exemple #1 Exemple avec cubrid_insert_id()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (d int AUTO_INCREMENT(1, 2), t varchar)");

for ($i = 0; $i < 10; $i++) {
    cubrid_execute($conn, "INSERT INTO cubrid_test(t) VALUES('cubrid_test')");
}

$id = cubrid_insert_id();
var_dump($id);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

string(2) "19"


Vérifie si une instance existe

  • « cubrid_insert_id
  • cubrid_lob_close »
  • PHP Manual
  • Fonctions CUBRID
  • Vérifie si une instance existe

cubrid_is_instance

(PECL CUBRID >= 8.3.0)

cubrid_is_instance — Vérifie si une instance existe

Description

int cubrid_is_instance ( resource $conn_identifier , string $oid )

La fonction cubrid_is_instance() est utilisée pour vérifier si l'instance pointée par l'oid fournie existe ou non.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance dont vous voulez vérifier l'existence.

Valeurs de retour

1, si l'instance existe.

0, si l'instance n'existe pas.

-1, si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_is_instance()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$sql = <<<EOD
SELECT host_year, medal, game_date
FROM game
WHERE athlete_code IN
    (SELECT code FROM athlete WHERE name='Thorpe Ian');
EOD;

$req = cubrid_execute($conn, $sql, CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);

$res = cubrid_is_instance ($conn, $oid);
if ($res == 1) {
    echo "Instance pointed by $oid exists.\n";
} else if ($res == 0){
    echo "Instance pointed by $oid doesn't exist.\n";
} else {
    echo "error\n";
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Instance pointed by @0|0|0 doesn't exist.

Voir aussi

  • cubrid_drop() - Supprime une instance en utilisant son OID
  • cubrid_get_class_name() - Récupère le nom de la classe en utilisant son OID


Ferme un BLOB/CLOB

  • « cubrid_is_instance
  • cubrid_lob_export »
  • PHP Manual
  • Fonctions CUBRID
  • Ferme un BLOB/CLOB

cubrid_lob_close

(PECL CUBRID >= 8.3.1)

cubrid_lob_close — Ferme un BLOB/CLOB

Description

bool cubrid_lob_close ( array $lob_identifier_array )

La fonction cubrid_lob_close() est utilisée pour fermer tous les BLOB/CLOB retournés depuis la fonction cubrid_lob_get().

Liste de paramètres

lob_identifier_array

Un tableau d'identifiants LOB retournés par la fonction cubrid_lob_get.

Valeurs de retour

TRUE lorsque le processus est un succès.

FALSE lorsque le processus est un échec.

Exemples

Exemple #1 Exemple avec cubrid_lob_close()

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Voir aussi

  • cubrid_lob_get() - Récupère les données BLOB/CLOB
  • cubrid_lob_size() - Récupère la taille des données BLOB/CLOB
  • cubrid_lob_export() - Exporte des données BLOB/CLOB vers un fichier
  • cubrid_lob_send() - Lit les données BLOB/CLOB et les envoye au navigateur


Exporte des données BLOB/CLOB vers un fichier

  • « cubrid_lob_close
  • cubrid_lob_get »
  • PHP Manual
  • Fonctions CUBRID
  • Exporte des données BLOB/CLOB vers un fichier

cubrid_lob_export

(PECL CUBRID >= 8.3.1)

cubrid_lob_export — Exporte des données BLOB/CLOB vers un fichier

Description

bool cubrid_lob_export ( resource $conn_identifier , resource $lob_identifier , string $path_name )

La fonction cubrid_lob_export() est utilisée pour récupérer les données BLOB/CLOB depuis la base de données CUBRID, et sauvegarde leurs contenus dans un fichier. Pour utiliser cette fonction, vous devez utiliser d'abord la fonction cubrid_lob_get() pour récupérer les informations des BLOB/CLOB depuis CUBRID.

Liste de paramètres

conn_identifier

Identifiant de connexion.

lob_identifier

Identifiant LOB.

path_name

Chemin vers le fichier.

Valeurs de retour

TRUE lorsque le processus est un succès.

FALSE lorsque le processus est un échec.

Exemples

Exemple #1 Exemple avec cubrid_lob_export()

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Voir aussi

  • cubrid_lob_get() - Récupère les données BLOB/CLOB
  • cubrid_lob_close() - Ferme un BLOB/CLOB
  • cubrid_lob_size() - Récupère la taille des données BLOB/CLOB
  • cubrid_lob_send() - Lit les données BLOB/CLOB et les envoye au navigateur


Récupère les données BLOB/CLOB

  • « cubrid_lob_export
  • cubrid_lob_send »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère les données BLOB/CLOB

cubrid_lob_get

(PECL CUBRID >= 8.3.1)

cubrid_lob_get — Récupère les données BLOB/CLOB

Description

array cubrid_lob_get ( resource $conn_identifier , string $sql )

La fonction cubrid_lob_get() est utilisée pour récupérer les données d'informations méta BLOB/CLOB depuis la base de données CUBRID (CUBRID récupère les BLOB/CLOB en exécutant une requête SQL), et retourne tous les LOBs sous la forme d'un tableau de ressources. Assurez-vous que le SQL récupère uniquement une seule colonne et que le type de données est bien BLOB ou CLOB.

Gardez à l'esprit que l'utilisation de la fonction cubrid_lob_close() libère les LOBs si vous n'en avez plus besoin.

Liste de paramètres

conn_identifier

Identifiant de connexion.

sql

Requête SQL à exécuter.

Valeurs de retour

Retourne un tableau de ressources LOB en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_lob_get()

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Voir aussi

  • cubrid_lob_close() - Ferme un BLOB/CLOB
  • cubrid_lob_size() - Récupère la taille des données BLOB/CLOB
  • cubrid_lob_export() - Exporte des données BLOB/CLOB vers un fichier
  • cubrid_lob_send() - Lit les données BLOB/CLOB et les envoye au navigateur


Lit les données BLOB/CLOB et les envoye au navigateur

  • « cubrid_lob_get
  • cubrid_lob_size »
  • PHP Manual
  • Fonctions CUBRID
  • Lit les données BLOB/CLOB et les envoye au navigateur

cubrid_lob_send

(PECL CUBRID >= 8.3.1)

cubrid_lob_send — Lit les données BLOB/CLOB et les envoye au navigateur

Description

bool cubrid_lob_send ( resource $conn_identifier , resource $lob_identifier )

La fonction cubrid_lob_send() lit des données BLOB/CLOB et les passent au navigateur. Pour utiliser cette fonction, vous devez utiliser d'abord la fonction cubrid_lob_get() pour récupérer les informations des BLOB/CLOB depuis CUBRID.

Liste de paramètres

conn_identifier

Identifiant de connexion.

lob_identifier

Identifiant LOB.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_lob_send()

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");

cubrid_lob_send($conn, $lobs[0]);
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Voir aussi

  • cubrid_lob_get() - Récupère les données BLOB/CLOB
  • cubrid_lob_close() - Ferme un BLOB/CLOB
  • cubrid_lob_size() - Récupère la taille des données BLOB/CLOB
  • cubrid_lob_export() - Exporte des données BLOB/CLOB vers un fichier


Récupère la taille des données BLOB/CLOB

  • « cubrid_lob_send
  • cubrid_lob2_bind »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère la taille des données BLOB/CLOB

cubrid_lob_size

(PECL CUBRID >= 8.3.1)

cubrid_lob_size — Récupère la taille des données BLOB/CLOB

Description

string cubrid_lob_size ( resource $lob_identifier )

La fonction cubrid_lob_size() est utilisée pour récupérer la taille des données BLOB/CLOB.

Liste de paramètres

lob_identifier

Identifiant LOB.

Valeurs de retour

Une chaîne représentant la taille des données LOB, lorsque l'opération a réussi.

FALSE en cas d'échec.

Historique

Version | Description
8.4.0 | Le type de la valeur retourné à changer. Avant, c'était un entier, maintenant, c'est une chaîne de caractères.

Exemples

Exemple #1 Exemple avec cubrid_lob_size()

<?php
$lobs = cubrid_lob_get($con, "SELECT doc_content FROM doc WHERE doc_id=5");
echo "Taille de la documentation :".cubrid_lob_size($lobs[0]);
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
?>

Voir aussi

  • cubrid_lob_get() - Récupère les données BLOB/CLOB
  • cubrid_lob_close() - Ferme un BLOB/CLOB
  • cubrid_lob_export() - Exporte des données BLOB/CLOB vers un fichier
  • cubrid_lob_send() - Lit les données BLOB/CLOB et les envoye au navigateur


Lie un objet LOB ou une chaîne de caractères à un objet LOB comme paramètre d'une requête préparée

  • « cubrid_lob_size
  • cubrid_lob2_close »
  • PHP Manual
  • Fonctions CUBRID
  • Lie un objet LOB ou une chaîne de caractères à un objet LOB comme paramètre d'une requête préparée

cubrid_lob2_bind

(PECL CUBRID >= 8.4.1)

cubrid_lob2_bind — Lie un objet LOB ou une chaîne de caractères à un objet LOB comme paramètre d'une requête préparée

Description

bool cubrid_lob2_bind ( resource $req_identifier , int $bind_index , mixed $bind_value [, string $bind_value_type ] )

La fonction cubrid_lob2_bind() est utilisée pour lier des données BLOB/CLOB à un marqueur correspondant dans une requête SQL passée à la fonction cubrid_prepare(). Si le paramètre bind_value_type n'est pas fourni, la chaîne sera par défaut "BLOB". Mais si vous utilisez d'abord la fonction cubrid_lob2_new(), le paramètre bind_value_type deviendra consistent avec le paramètre type dans la fnction cubrid_lob2_new().

Liste de paramètres

req_identifier

Identifiant de la demande, résultant de la fonction cubrid_prepare().

bind_index

Position des paramètres liés. Commence à 1.

bind_value

Valeur actuelle pour le liage.

bind_value_type

Doit être "BLOB" ou "CLOB" et n'est pas sensible à la casse. S'il n'est pas fourni, la valeur par défaut sera "BLOB".

Valeurs de retour

TRUE, lorsque le processus réussi.

FALSE, si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_lob2_bind()

<?php
// Table : test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");

cubrid_bind($req,1, 3);

$lob = cubrid_lob2_new($conn, 'CLOB');
cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_bind($req, 1, 4);

cubrid_lob2_bind($req, 2, 'CUBRID LOB2 TEST', 'CLOB');

cubrid_execute($req);

cubrid_disconnect($conn);
?>

Voir aussi

  • cubrid_lob2_new() - Crée un nouvel objet LOB
  • cubrid_lob2_close() - Ferme un objet LOB


Ferme un objet LOB

  • « cubrid_lob2_bind
  • cubrid_lob2_export »
  • PHP Manual
  • Fonctions CUBRID
  • Ferme un objet LOB

cubrid_lob2_close

(PECL CUBRID >= 8.4.1)

cubrid_lob2_close — Ferme un objet LOB

Description

bool cubrid_lob2_close ( resource $lob_identifier )

La fonction cubrid_lob2_close() est utilisée pour fermer un objet LOB, retourné par la fonction cubrid_lob2_new() ou récupéré depuis le jeu de résultats.

Liste de paramètres

lob_identifier

Un identifiant LOB, résultant de la fonction cubrid_lob2_new() ou récupéré depuis le jeu de résultats.

Valeurs de retour

TRUE, en cas de succès.

FALSE, sii une erreur survient.

Voir aussi

  • cubrid_lob2_new() - Crée un nouvel objet LOB


Exporte un objet LOB vers un fichier

  • « cubrid_lob2_close
  • cubrid_lob2_import »
  • PHP Manual
  • Fonctions CUBRID
  • Exporte un objet LOB vers un fichier

cubrid_lob2_export

(PECL CUBRID >= 8.4.1)

cubrid_lob2_export — Exporte un objet LOB vers un fichier

Description

bool cubrid_lob2_export ( resource $lob_identifier , string $file_name )

La fonction cubrid_lob2_export() est utilisée pour sauvegarder les données BLOB/CLOB dans un fichier. Pour utiliser cette fonction, vous devez tout d'abord utiliser la fonction cubrid_lob2_new() ou récupérer un objet LOB depuis la base de données CUBRID. Si le fichier n'existe pas, l'opération échouera. Cette fonction ne modifiera pas la position du curseur de l'objet LOB. Elle opère sur l'objet LOB dans sa totalité.

Liste de paramètres

lob_identifier

Un identifiant LOB résultant de la fonction cubrid_lob2_new() ou récupérer depuis le jeu de résultat.

filename

Nom du fichier dans lequel vous souhaitez enregistrer les données BLOB/CLOB. Le chemin vers le fichier peut également être spécifié.

Valeurs de retour

TRUE en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 cubrid_lob2_export() example

<?php
// Table : test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$req = cubrid_prepare($conn, "select * from doc");

cubrid_execute($req);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);

$row = cubrid_fetch($req, CUBRID_NUM | CUBRID_LOB);

cubrid_lob2_export($row[1], "doc_3.txt");

cubrid_lob2_close($row[1]);
cubrid_disconnect($conn);
?>

Voir aussi

  • cubrid_lob2_new() - Crée un nouvel objet LOB
  • cubrid_lob2_close() - Ferme un objet LOB
  • cubrid_lob2_import() - Importe des données BLOB/CLOB depuis un fichier
  • cubrid_lob2_bind() - Lie un objet LOB ou une chaîne de caractères à un objet LOB comme paramètre d'une requête préparée


Importe des données BLOB/CLOB depuis un fichier

  • « cubrid_lob2_export
  • cubrid_lob2_new »
  • PHP Manual
  • Fonctions CUBRID
  • Importe des données BLOB/CLOB depuis un fichier

cubrid_lob2_import

(PECL CUBRID >= 8.4.1)

cubrid_lob2_import — Importe des données BLOB/CLOB depuis un fichier

Description

bool cubrid_lob2_import ( resource $lob_identifier , string $file_name )

La fonction cubrid_lob2_import() est utilisée pour importer des données BLOB/CLOB depuis un fichier. Pour utiliser cette fonction, vous devez d'abord utiliser la fonction cubrid_lob2_new() ou récupérer un objet LOB depuis la base de données CUBRID. Si le fichier n'existe pas, l'opération échouera. Cette fonction n'impacte pas la position du curseur dans l'objet LOB ; elle opère sur l'objet LOB dans sa totalité.

Liste de paramètres

lob_identifier

Un identifiant LOB, résultat de la fonction cubrid_lob2_new() ou récupérer depuis le jeu de résultats.

filename

Le nom du fichier depuis lequel les données BLOB/CLOB doivent être importées. Le chemin vers le fichier est également supporté.

Valeurs de retour

TRUE en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_lob2_export()

<?php

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");
cubrid_bind($req, 1, 1);

$lob = cubrid_lob2_new($conn, "clob");
cubrid_lob2_import($lob, "doc_1.txt");
cubrid_lob2_bind($req, 2, $lob, 'CLOB'); // ou cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_lob2_close($lob);
cubrid_disconnect($conn);
?>

Voir aussi

  • cubrid_lob2_new() - Crée un nouvel objet LOB
  • cubrid_lob2_close() - Ferme un objet LOB
  • cubrid_lob2_export() - Exporte un objet LOB vers un fichier
  • cubrid_lob2_bind() - Lie un objet LOB ou une chaîne de caractères à un objet LOB comme paramètre d'une requête préparée


Crée un nouvel objet LOB

  • « cubrid_lob2_import
  • cubrid_lob2_read »
  • PHP Manual
  • Fonctions CUBRID
  • Crée un nouvel objet LOB

cubrid_lob2_new

(PECL CUBRID >= 8.4.1)

cubrid_lob2_new — Crée un nouvel objet LOB

Description

resource cubrid_lob2_new ([ resource $conn_identifier [, string $type = "BLOB" ]] )

La fonction cubrid_lob2_new() est utilisée pour créer un nouvel objet LOB (à la fois BLOB et CLOB). Cette fonction doit être utilisée avant de lier un objet LOB.

Liste de paramètres

conn_identifier

Un identifiant de connexion. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction cubrid_connect() ou la fonction cubrid_connect_with_url() sera utilisée.

type

Peut être "BLOB" ou "CLOB", et n'est pas sensible à la casse. La valeur par défaut est "BLOB".

Valeurs de retour

Un identifiant LOB en cas de succès.

FALSE si une erreur survient.

Voir aussi

  • cubrid_lob2_close() - Ferme un objet LOB


Lit des données BLOB/CLOB

  • « cubrid_lob2_new
  • cubrid_lob2_seek64 »
  • PHP Manual
  • Fonctions CUBRID
  • Lit des données BLOB/CLOB

cubrid_lob2_read

(PECL CUBRID >= 8.4.1)

cubrid_lob2_read — Lit des données BLOB/CLOB

Description

string cubrid_lob2_read ( resource $lob_identifier , int $len )

La fonction cubrid_lob2_read() lit len octets depuis les données LOB, et retourne les octets lus.

Liste de paramètres

lob_identifier

Un identifiant LOB, résultant de la fonction cubrid_lob2_new() ou récupérer depuis le jeu de résultats.

len

Quantité de données à lire depuis les données LOB.

Valeurs de retour

Retourne le contenu, sous la forme d'une chaîne de caractères.

FALSE lorsqu'il n'y a plus de données à lire.

NULL si une erreur survient.

Exemples

Exemple #1 Exemple 1 avec cubrid_lob2_read()

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "public", "");

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);

print "position now is " . cubrid_lob2_tell($row[1]) . "\n";

cubrid_lob2_seek($row[1], 10, CUBRID_CURSOR_FIRST);

print "\nPosition après déplacement : " . cubrid_lob2_tell($row[1]) . "\n";

$data = cubrid_lob2_read($row[1], 12);

print "\nPosition après lecture : " . cubrid_lob2_tell($row[1]) . "\n";

print $data . "\n";

cubrid_lob2_seek($row[1], 5, CUBRID_CURSOR_CURRENT);

print "\nPosition après un nouveau déplacement : " . cubrid_lob2_tell($row[1]) . "\n";

$data = cubrid_lob2_read($row[1], 20);
print $data . "\n";

cubrid_disconnect($conn);
?>

Exemple #2 Exemple 2 avec cubrid_lob2_read()

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);

while (true) {
    if ($data = cubrid_lob2_read($row[1], 1024)) {
        print $data . "\n";
    }
    elseif ($data === false) {
        print "Il n'y a plus de données\n";
        break;
    }
    else {
        print "Une erreur est survenue\n";
        break;
    }
}

cubrid_disconnect($conn);
?>

Voir aussi

  • cubrid_lob2_write() - Ecrit dans un objet LOB
  • cubrid_lob2_seek() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_seek64() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_tell() - Récupère la position du curseur dans un objet LOB
  • cubrid_lob2_tell64() - Récupère la position du curseur dans l'objet LOB
  • cubrid_lob2_size() - Récupère la taille d'un objet LOB
  • cubrid_lob2_size64() - Récupère la taille d'un objet LOB


Déplace le curseur d'un objet LOB

  • « cubrid_lob2_read
  • cubrid_lob2_seek »
  • PHP Manual
  • Fonctions CUBRID
  • Déplace le curseur d'un objet LOB

cubrid_lob2_seek64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_seek64 — Déplace le curseur d'un objet LOB

Description

bool cubrid_lob2_seek64 ( resource $lob_identifier , string $offset [, int $origin = CUBRID_CURSOR_CURRENT ] )

La fonction cubrid_lob2_seek64() est utilisée pour déplacer la position du curseur dans un objet LOB d'une valeur fournie par le paramètre offset, dans la direction fournie par le paramètre origin. Si la position offset est plus grande que la capacité de stockage d'un entier, vous pouvez utiliser cette fonction.

Pour définir le paramètre origin, vous pouvez utiliser la constante CUBRID_CURSOR_FIRST pour définir la position du curseur à laquelle on ajoute offset unités depuis le début. Dans ce cas, offset doit être une valeur positive.

Si vous utilisez CUBRID_CURSOR_CURRENT pour le paramètre origin, vous pouvez vous déplacer vers l'arrière, comme vers l'avant. Et le paramètre offset pourra être positif ou négatif.

Si vous utilisez la constante CUBRID_CURSOR_LAST pour le paramètre origin, vous pouvez vous déplacer en arrière de offset unités depuis la fin de l'objet LOB et et le paramètre offset ne pourra être que positif.

Note:

Si vous utilisez cette fonction pour déplacer la position du curseur d'un objet LOB, vous devriez passer le paramètre offset sous la forme d'une chaîne de caractères.

Liste de paramètres

lob_identifier

Un identifiant LOB, récupéré depuis la fonction cubrid_lob2_new() ou depuis le jeu de résultats.

offset

Nombre d'unités de déplacement du curseur.

origin

Ce paramètre peut prendre les valeurs suivantes :

CUBRID_CURSOR_FIRST : déplace le curseur vers l'avant en partant du début.

CUBRID_CURSOR_CURRENT : déplace le curseur vers l'arrière et vers l'avant depuis la position courante.

CUBRID_CURSOR_LAST : déplace le curseur vers l'arrière depuis la fin de l'objet LOB.

Valeurs de retour

TRUE en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_lob2_seek64()

<?php
<?php
// test_lob (id INT, contents CLOB)
// La longueur des données de doc_1.txt doit être supérieure à 20101029056306120215.

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");
cubrid_bind($req, 1, 1);

$lob = cubrid_lob2_new($conn, "clob");
cubrid_lob2_import($lob, "doc_1.txt");
cubrid_lob2_bind($req, 2, $lob, 'CLOB'); // or cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_lob2_close($lob);

$req = cubrid_execute($conn, "select * from test_lob");
$row = cubrid_fetch_row($req, CUBRID_LOB);
$lob = $row[1];

cubrid_lob2_seek64($lob, "20101029056306120215", CUBRID_CURSOR_FIRST);
$data = cubrid_lob2_read($lob, 20);
echo $data."\n";
cubrid_disconnect($conn);
?>

Voir aussi

  • cubrid_lob2_read() - Lit des données BLOB/CLOB
  • cubrid_lob2_write() - Ecrit dans un objet LOB
  • cubrid_lob2_seek() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_tell() - Récupère la position du curseur dans un objet LOB
  • cubrid_lob2_tell64() - Récupère la position du curseur dans l'objet LOB
  • cubrid_lob2_size() - Récupère la taille d'un objet LOB
  • cubrid_lob2_size64() - Récupère la taille d'un objet LOB


Déplace le curseur d'un objet LOB

  • « cubrid_lob2_seek64
  • cubrid_lob2_size64 »
  • PHP Manual
  • Fonctions CUBRID
  • Déplace le curseur d'un objet LOB

cubrid_lob2_seek

(PECL CUBRID >= 8.4.1)

cubrid_lob2_seek — Déplace le curseur d'un objet LOB

Description

bool cubrid_lob2_seek ( resource $lob_identifier , int $offset [, int $origin = CUBRID_CURSOR_CURRENT ] )

La fonction cubrid_lob2_seek() est utilisée pour déplacer la position du curseur d'un objet LOB d'un pas spécifié par l'argument offset, et dans la direction spécifiée par l'argument origin.

Pour définir l'argument origin, vous pouvez utiliser la constante CUBRID_CURSOR_FIRST pour déplacer en avant la position du curseur de offset unités depuis le début. Dans ce cas, offset doit être une valeur positive.

Si vous utilisez la constante CUBRID_CURSOR_CURRENT pour le paramètre origin, vous pouvez vous déplacer en avant ou en arrière. L'argument offset peut être négatif ou positif.

Si vous utilisez la constante CUBRID_CURSOR_LAST pour le paramètre origin, vous pouvez vous déplacer en arrière de offset unités depuis la fin de l'objet LOB ; l'argument offset peut seulement être positif dans ce cas.

Liste de paramètres

lob_identifier

Un identifiant LOB, résultant de la fonction cubrid_lob2_new() ou récupérer depuis le jeu de résultats.

offset

Nombre d'unités à utiliser pour déplacer le curseur.

origin

Ce paramètre peut prendre les valeurs suivantes :

CUBRID_CURSOR_FIRST : Se déplace en avant depuis le début.

CUBRID_CURSOR_CURRENT : Se déplace en avant ou en arrière, depuis la position courante.

CUBRID_CURSOR_LAST : Se déplace en arrière depuis la fin de l'objjet LOB.

Valeurs de retour

TRUE en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_lob2_seek()

<?php
// test_lob (id INT, contents CLOB)
$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");
$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(2, ?)");

$lob = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob, "Hello world");

cubrid_lob2_seek($lob, 0, CUBRID_CURSOR_LAST);
cubrid_lob2_write($lob, "beautiful");

cubrid_lob2_seek($lob, 15, CUBRID_CURSOR_FIRST);
$data = cubrid_lob2_read($lob, 5);

echo $data."\n";

cubrid_lob2_bind($req, 1, $lob);
cubrid_execute($req);

cubrid_disconnect($conn);
?>

Voir aussi

  • cubrid_lob2_read() - Lit des données BLOB/CLOB
  • cubrid_lob2_write() - Ecrit dans un objet LOB
  • cubrid_lob2_seek64() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_tell() - Récupère la position du curseur dans un objet LOB
  • cubrid_lob2_tell64() - Récupère la position du curseur dans l'objet LOB
  • cubrid_lob2_size() - Récupère la taille d'un objet LOB
  • cubrid_lob2_size64() - Récupère la taille d'un objet LOB


Récupère la taille d'un objet LOB

  • « cubrid_lob2_seek
  • cubrid_lob2_size »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère la taille d'un objet LOB

cubrid_lob2_size64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_size64 — Récupère la taille d'un objet LOB

Description

string cubrid_lob2_size64 ( resource $lob_identifier )

La fonction cubrid_lob2_size64() est utilisée pour récupérer la taille d'un objet LOB. Si la taille de l'objet LOB est plus grande que la capacité de stockage d'un entier, vous pouvez utiliser cette fonction, et elle vous retournera la taille sous la forme d'une chaîne de caractères.

Liste de paramètres

lob_identifier

Un identifiant LOB, récupéré depuis la fonction cubrid_lob2_new() ou depuis le jeu de résultats.

Valeurs de retour

Retourne la taille d'un objet LOB sous la forme d'une chaîne de caractères en cas de succès.

FALSE si une erreur survient.

Voir aussi

  • cubrid_lob2_read() - Lit des données BLOB/CLOB
  • cubrid_lob2_write() - Ecrit dans un objet LOB
  • cubrid_lob2_seek() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_seek64() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_tell() - Récupère la position du curseur dans un objet LOB
  • cubrid_lob2_tell64() - Récupère la position du curseur dans l'objet LOB
  • cubrid_lob2_size() - Récupère la taille d'un objet LOB


Récupère la taille d'un objet LOB

  • « cubrid_lob2_size64
  • cubrid_lob2_tell64 »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère la taille d'un objet LOB

cubrid_lob2_size

(PECL CUBRID >= 8.4.1)

cubrid_lob2_size — Récupère la taille d'un objet LOB

Description

int cubrid_lob2_size ( resource $lob_identifier )

La fonction cubrid_lob2_size() est utilisée pour récupérer la taille d'un objet LOB.

Liste de paramètres

lob_identifier

Un identifiant LOB, récupéré depuis la fonction cubrid_lob2_new() ou depuis le jeu de résultats.

Valeurs de retour

Retourne la taille de l'objet LOB en cas de succès.

FALSE si une erreur survient.

Voir aussi

  • cubrid_lob2_read() - Lit des données BLOB/CLOB
  • cubrid_lob2_write() - Ecrit dans un objet LOB
  • cubrid_lob2_seek() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_seek64() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_tell() - Récupère la position du curseur dans un objet LOB
  • cubrid_lob2_tell64() - Récupère la position du curseur dans l'objet LOB
  • cubrid_lob2_size64() - Récupère la taille d'un objet LOB


Récupère la position du curseur dans l'objet LOB

  • « cubrid_lob2_size
  • cubrid_lob2_tell »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère la position du curseur dans l'objet LOB

cubrid_lob2_tell64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_tell64 — Récupère la position du curseur dans l'objet LOB

Description

string cubrid_lob2_tell64 ( resource $lob_identifier )

La fonction cubrid_lob2_tell64() est utilisée pour récupérer la position du curseur dans l'objet LOB. Si la taille de l'objet LOB est plus grande que la capacité de stockage d'un entier, vous pouvez utiliser cette fonction et elle vous retournera l'information sous la forme d'une chaîne de caractères.

Liste de paramètres

lob_identifier

Un identifiant LOB, récupéré depuis la fonction cubrid_lob2_new() ou depuis le jeu de résultats.

Valeurs de retour

Retourne la position du curseur dans l'objet LOB, sous la forme d'une chaîne de caractères en cas de succès.

FALSE si une erreur survient.

Voir aussi

  • cubrid_lob2_read() - Lit des données BLOB/CLOB
  • cubrid_lob2_write() - Ecrit dans un objet LOB
  • cubrid_lob2_seek() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_seek64() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_tell() - Récupère la position du curseur dans un objet LOB
  • cubrid_lob2_size() - Récupère la taille d'un objet LOB
  • cubrid_lob2_size64() - Récupère la taille d'un objet LOB


Récupère la position du curseur dans un objet LOB

  • « cubrid_lob2_tell64
  • cubrid_lob2_write »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère la position du curseur dans un objet LOB

cubrid_lob2_tell

(PECL CUBRID >= 8.4.1)

cubrid_lob2_tell — Récupère la position du curseur dans un objet LOB

Description

int cubrid_lob2_tell ( resource $lob_identifier )

La fonction cubrid_lob2_tell() est utilisée pour récupérer la position du curseur dans l'objet LOB.

Liste de paramètres

lob_identifier

Un identifiant LOB, récupéré depuis la fonction cubrid_lob2_new() ou depuis le jeu de résultats.

Valeurs de retour

Retourne la position du curseur dans l'objet LOB en cas de succès.

FALSE si une erreur survient.

Voir aussi

  • cubrid_lob2_read() - Lit des données BLOB/CLOB
  • cubrid_lob2_write() - Ecrit dans un objet LOB
  • cubrid_lob2_seek() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_seek64() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_tell64() - Récupère la position du curseur dans l'objet LOB
  • cubrid_lob2_size() - Récupère la taille d'un objet LOB
  • cubrid_lob2_size64() - Récupère la taille d'un objet LOB


Ecrit dans un objet LOB

  • « cubrid_lob2_tell
  • cubrid_lock_read »
  • PHP Manual
  • Fonctions CUBRID
  • Ecrit dans un objet LOB

cubrid_lob2_write

(PECL CUBRID >= 8.4.1)

cubrid_lob2_write — Ecrit dans un objet LOB

Description

bool cubrid_lob2_write ( resource $lob_identifier , string $buf )

La fonction cubrid_lob2_write() lit les données depuis le paramètre buf et les stocke dans l'objet LOB. Notez que cette fonction ne peut ajouter actuellement que des caractères.

Liste de paramètres

lob_identifier

Un identifiant LOB, récupéré depuis la fonction cubrid_lob2_new() ou depuis le jeu de résultats.

buf

Les données qui doivent être écrites dans l'objet LOB.

Valeurs de retour

TRUE si le processus réussit, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple 1 avec cubrid_lob2_write()

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(2, ?)");

$lob = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob, "Hello world");

cubrid_lob2_bind($req, 1, $lob);
cubrid_execute($req);

cubrid_disconnect($conn);
?>

Exemple #2 Exemple 2 avec cubrid_lob2_write()

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(1, ?)");
$lob1 = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob1, "cubrid php driver");
cubrid_lob2_bind($req, 1, $lob1);
cubrid_execute($req);

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);
$lob2 = $row[1];
cubrid_lob2_seek($lob2, 0, CUBRID_CURSOR_LAST);

$pos = cubrid_lob2_tell($lob2);
print "pos before write: $pos\n";

cubrid_lob2_write($lob2, "Hello world");

$pos = cubrid_lob2_tell($lob2);
print "Position après écriture : $pos\n";

cubrid_disconnect($conn);
?>

Voir aussi

  • cubrid_lob2_read() - Lit des données BLOB/CLOB
  • cubrid_lob2_seek() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_seek64() - Déplace le curseur d'un objet LOB
  • cubrid_lob2_tell() - Récupère la position du curseur dans un objet LOB
  • cubrid_lob2_tell64() - Récupère la position du curseur dans l'objet LOB
  • cubrid_lob2_size() - Récupère la taille d'un objet LOB
  • cubrid_lob2_size64() - Récupère la taille d'un objet LOB


Place un verrou de lecture sur l'OID fourni

  • « cubrid_lob2_write
  • cubrid_lock_write »
  • PHP Manual
  • Fonctions CUBRID
  • Place un verrou de lecture sur l'OID fourni

cubrid_lock_read

(PECL CUBRID >= 8.3.0)

cubrid_lock_read — Place un verrou de lecture sur l'OID fourni

Description

bool cubrid_lock_read ( resource $conn_identifier , string $oid )

La fonction cubrid_lock_read() est utilisée pour placer un verrou de lecture sur l'instance pointée par l'oid fournie.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance dont vous voulez verrouiller la lecture.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_lock_read()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

cubrid_lock_read($conn, $oid);

$attr = cubrid_get($conn, $oid, "b");
var_dump($attr);

$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

string(9) "{1, 2, 3}"
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

Voir aussi

  • cubrid_lock_write() - Place un verrou d'écriture sur l'OID fourni


Place un verrou d'écriture sur l'OID fourni

  • « cubrid_lock_read
  • cubrid_move_cursor »
  • PHP Manual
  • Fonctions CUBRID
  • Place un verrou d'écriture sur l'OID fourni

cubrid_lock_write

(PECL CUBRID >= 8.3.0)

cubrid_lock_write — Place un verrou d'écriture sur l'OID fourni

Description

bool cubrid_lock_write ( resource $conn_identifier , string $oid )

La fonction cubrid_lock_write() est utilisée pour placer un verrou d'écriture sur l'instance pointée par l'oid fournie.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance dont vous voulez placer un verrou d'écriture.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_lock_write()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

cubrid_lock_write($conn, $oid);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_put($conn, $oid, "b", array(2, 4, 8));

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(3) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "4"
  [2]=>
  string(1) "8"
}

Voir aussi

  • cubrid_lock_read() - Place un verrou de lecture sur l'OID fourni


Déplace le curseur dans le résultat

  • « cubrid_lock_write
  • cubrid_next_result »
  • PHP Manual
  • Fonctions CUBRID
  • Déplace le curseur dans le résultat

cubrid_move_cursor

(PECL CUBRID >= 8.3.0)

cubrid_move_cursor — Déplace le curseur dans le résultat

Description

int cubrid_move_cursor ( resource $req_identifier , int $offset [, int $origin = CUBRID_CURSOR_CURRENT ] )

La fonction cubrid_move_cursor() est utilisée pour déplacer le curseur courant suivant le paramètre req_identifier de la valeur du paramètre offset et dans la direction définie par le paramètre origin argument. Pour définir l'argument origin, vous pouvez utiliser CUBRID_CURSOR_FIRST pour la première partie du résultat, CUBRID_CURSOR_CURRENT pour la position courant du résultat, ou CUBRID_CURSOR_LAST pour la dernière partie du résultat. Si l'argument origin n'est pas explicitement désigné, alors la fonction utilisera CUBRID_CURSOR_CURRENT comme valeur par défaut.

Si la valeur courant du déplacement du curseur est au delà des limites valides, alors le curseur se déplace à la prochaine position après l'intervalle valide du curseur. Par exemple, si vous le déplacez de 20 unités dans le résultat dont la taille est de 10, alors le curseur se placera sur la 11ème place et retournera CUBRID_NO_MORE_DATA.

Liste de paramètres

req_identifier

Identifiant de requête.

offset

Nombre d'unités que vous voulez utiliser pour le déplacement.

origin

Cible où vous voulez déplacer le curseur, soit CUBRID_CURSOR_FIRST, CUBRID_CURSOR_CURRENT, CUBRID_CURSOR_LAST.

Valeurs de retour

TRUE en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_move_cursor()

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");
cubrid_move_cursor($req, 1, CUBRID_CURSOR_LAST);

$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_CURRENT);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  string(1) "G"
  [1]=>
  string(4) "Gold"
}
array(2) {
  [0]=>
  string(1) "X"
  [1]=>
  string(5) "Mixed"
}
array(2) {
  [0]=>
  string(1) "M"
  [1]=>
  string(3) "Man"
}

Voir aussi

  • cubrid_execute() - Exécute une requête SQL préparée


Récupère le résultat de la prochaine requête lors de l'exécution de requêtes SQL multiples

  • « cubrid_move_cursor
  • cubrid_num_cols »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère le résultat de la prochaine requête lors de l'exécution de requêtes SQL multiples

cubrid_next_result

(PECL CUBRID >= 8.4.0)

cubrid_next_result — Récupère le résultat de la prochaine requête lors de l'exécution de requêtes SQL multiples

Description

bool cubrid_next_result ( resource $result )

La fonction cubrid_next_result() est utilisée pour récupérer les résultats de la prochaine requête si plusieurs requêtes SQL sont exécutées et que le drapeau CUBRID_EXEC_QUERY_ALL est défini lors de l'utilisation de la fonction cubrid_execute().

Liste de paramètres

result

Le paramètre result provient de l'appel à la fonction cubrid_execute()

Valeurs de retour

TRUE lorsque l'opération est un succès.

FALSE lorsqu'une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_next_result()

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");

$sql_stmt = "SELECT * FROM code; SELECT * FROM history WHERE host_year=2004 AND event_code=20281";
$res = cubrid_execute($conn, $sql_stmt, CUBRID_EXEC_QUERY_ALL);

get_result_info($res);
cubrid_next_result($res);
get_result_info($res);

function get_result_info($req)
{
    printf("\n------------ get_result_info --------------------\n");

    $row_num = cubrid_num_rows($req);
    $col_num = cubrid_num_cols($req);

    $column_name_list = cubrid_column_names($req);
    $column_type_list = cubrid_column_types($req);

    $column_last_name = cubrid_field_name($req, $col_num - 1);
    $column_last_table = cubrid_field_table($req, $col_num - 1);

    $column_last_type = cubrid_field_type($req, $col_num - 1);
    $column_last_len = cubrid_field_len($req, $col_num - 1);

    $column_1_flags = cubrid_field_flags($req, 1);

    printf("%-30s %d\n", "Row count:", $row_num);
    printf("%-30s %d\n", "Column count:", $col_num);
    printf("\n");

    printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Len");
    printf("------------------------------------------------------------------------------\n");

    $size = count($column_name_list);
    for($i = 0; $i < $size; $i++) {
        $column_len = cubrid_field_len($req, $i);
        printf("%-30s %-30s %-15s\n", $column_name_list[$i], $column_type_list[$i], $column_len);
    }
    printf("\n\n");

    printf("%-30s %s\n", "Last Column Name:", $column_last_name);
    printf("%-30s %s\n", "Last Column Table:", $column_last_table);
    printf("%-30s %s\n", "Last Column Type:", $column_last_type);
    printf("%-30s %d\n", "Last Column Len:", $column_last_len);
    printf("%-30s %s\n", "Second Column Flags:", $column_1_flags);

    printf("\n\n");
}
?>

L'exemple ci-dessus va afficher :

------------ get_result_info --------------------
Row count:                     6
Column count:                  2

Column Names                   Column Types                   Column Len
------------------------------------------------------------------------------
s_name                         char                           1
f_name                         varchar                        6

Last Column Name:              f_name
Last Column Table:             code
Last Column Type:              varchar
Last Column Len:               6
Second Column Flags:

------------ get_result_info --------------------
Row count:                     4
Column count:                  5

Column Names                   Column Types                   Column Len
------------------------------------------------------------------------------
event_code                     integer                        11
athlete                        varchar                        40
host_year                      integer                        11
score                          varchar                        10
unit                           varchar                        5

Last Column Name:              unit
Last Column Table:             history
Last Column Type:              varchar
Last Column Len:               5
Second Column Flags:           not_null primary_key unique_key

Voir aussi

  • cubrid_execute() - Exécute une requête SQL préparée


Récupère le nombre de colonnes du jeu de résultats

  • « cubrid_next_result
  • cubrid_num_rows »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère le nombre de colonnes du jeu de résultats

cubrid_num_cols

(PECL CUBRID >= 8.3.0)

cubrid_num_cols — Récupère le nombre de colonnes du jeu de résultats

Description

int cubrid_num_cols ( resource $result )

La fonction cubrid_num_cols() est utilisée pour récupérer le nombre de colonnes depuis le résultat de la requête. Elle ne peut être utilisée que lorsque la requête est de type SELECT.

Liste de paramètres

result

Le résultat.

Valeurs de retour

Nombre de colonnes en cas de succès.

FALSE, si la requête SQL n'est pas de type SELECT.

Exemples

Exemple #1 Exemple avec cubrid_num_cols()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_cols($req);

printf("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Row Num: 6
Column Num: 2

Voir aussi

  • cubrid_execute() - Exécute une requête SQL préparée
  • cubrid_num_rows() - Récupère le nombre de lignes d'un jeu de résultats


Récupère le nombre de lignes d'un jeu de résultats

  • « cubrid_num_cols
  • cubrid_pconnect_with_url »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère le nombre de lignes d'un jeu de résultats

cubrid_num_rows

(PECL CUBRID >= 8.3.0)

cubrid_num_rows — Récupère le nombre de lignes d'un jeu de résultats

Description

int cubrid_num_rows ( resource $result )

La fonction cubrid_num_rows() est utilisée pour récupérer le nombre de lignes depuis le jeu de résultats. Vous ne pouvez l'utiliser que lorsque la requête est de type SELECT. Lorsque vous voulez savoir ce type de valeur pour une requête de type INSERT, UPDATE ou DELETE, vous devez utiliser la fonction cubrid_affected_rows().

Note : La fonction cubrid_num_rows() ne peut être utilisée que sur les requêtes synchrones ; elle retourne 0 sur des requêtes asynchrones.

Liste de paramètres

result

Le paramètre result provient
d'un appel à la fonction cubrid_execute(),
la fonction cubrid_query() ou la fonction
cubrid_prepare().

Valeurs de retour

Nombre de lignes en cas de succès.

0 lorsque la requête a été effectuée en mode asynchrone.

-1, si la requête SQL n'est pas de type SELECT.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_num_rows()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_cols($req);

printf("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Row Num: 6
Column Num: 2

Voir aussi

  • cubrid_execute() - Exécute une requête SQL préparée
  • cubrid_num_cols() - Récupère le nombre de colonnes du jeu de résultats
  • cubrid_affected_rows() - Récupère le nombre de lignes affectées par la dernière requête SQL


Ouvre une connexion persistante vers un serveur CUBRID

  • « cubrid_num_rows
  • cubrid_pconnect »
  • PHP Manual
  • Fonctions CUBRID
  • Ouvre une connexion persistante vers un serveur CUBRID

cubrid_pconnect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_pconnect_with_url — Ouvre une connexion persistante vers un serveur CUBRID

Description

resource cubrid_pconnect_with_url ( string $conn_url [, string $userid [, string $passwd ]] )

Établit une connexion persistante vers un serveur CUBRID.

cubrid_pconnect_with_url() agit de la même façon que la fonction cubrid_connect_with_url(), avec deux différences majeures.

Tout d'abord, lors de la connexion, la fonction tentera tout d'abord de trouver un lien (persistant) déjà ouvert avec le même hôte, sur le même port, sur la même base de données dbname et utilisant le même userid. Si une telle connexion est trouvée, son identifiant sera retourné au lieu d'ouvrir une nouvelle connexion.

Ensuite, la connexion vers le serveur MySQL ne sera pas fermée lorsque la fin du script sera atteint. Au lieu de cela, la connexion restera ouverte pour une utilisation future ( la fonction cubrid_close() ou la fonction cubrid_disconnect() ne fermera pas la connexion établie par la fonction cubrid_pconnect_with_url()).

Ce type de lien était appelé, auparavant, 'persistant'.

<url> ::= CUBRID:<host>:<db_name>:<db_user>:<db_password>:[?<properties>]

<properties> ::= <property> [&<property>]

<properties> ::= alhosts=<alternative_hosts>[ &rctime=<time>]

<properties> ::= login_timeout=<milli_sec>

<properties> ::= query_timeout=<milli_sec>

<properties> ::= disconnect_on_query_timeout=true|false

<alternative_hosts> ::= <standby_broker1_host>:<port> [,<standby_broker2_host>:<port>]

<host> := HOSTNAME | IP_ADDR

<time> := SECOND

<milli_sec> := MILLI SECOND

  • host : Un nom d'hôte ou une adresse IP du serveur maître de base de données
  • db_name : Un nom de base de données
  • db_user : Un nom d'utilisateur de la base de données
  • db_password : Un mot de passe pour l'utilisateur de la base de données
  • autocommit : Le mode auto-commit de la connexion à la base de données
  • alhosts : Spécifie l'information du broker du serveur, qui sera utilisé comme point de sortie lorsqu'il est impossible de se connecter au serveur actif. Vous pouvez spécifier plusieurs brokers dans ce cas, et la connexion aux brokers sera tentée dans l'ordre de la configuration alhosts
  • rctime : Un intervalle de temps à attendre avant de tenter une connexion vers un broker lorsqu'une erreur survient. Après qu'une erreur soit survenue, le système tentera une connexion vers un broker spécifié par althosts, termine la transaction, et ensuite, tente de se connecter au broker actif du serveur maître de base de données. La valeur par défaut est de 600 secondes.
  • login_timeout : Valeur du délai maximal d'attente (unité : mseconde) pour l'identification à la base de données. Par défaut, cette valeur vaut 0, ce qui signifie que l'on attend indéfiniment.
  • query_timeout : Valeur du délai maximal d'attente (unité : mseconde) pour l'exécution de la requête. Une fois cette valeur atteinte, un message pour annuler la requête envoyée au serveur est envoyé. La valeur retournée peut dépendre de la configuration de disconnect_on_query_timeout configuration ; même si le message pour annuler la requête a été envoyée au serveur, la requête peut réussir.
  • disconnect_on_query_timeout : Configure une valeur déterminant si l'on doit retourner immédiatement une erreur pour les fonctions exécutées après le délai maximal d'attente. La valeur par défaut est FALSE.

Note:

Les caractères ? et : utilisés comme identifiants dans les URLs de connexion PHP ne peuvent être inclus dans le mot de passe. Voici un exemple de mot de passe invalide, car utilisant les caractères "?:" dans l'URL de connexion.

$url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";

Les mots de passe contenant le caractère ? ou le caractère : peuvent être passés en tant que paramètre séparé.

$url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";

$conn = cubrid_pconnect_with_url ($url, "dba", "12?");

Si le nom d'utilisateur ou le mot de passe est vide, vous ne devez pas supprimer les ":" ; voici un exemple :

$url = "CUBRID:localhost:33000:demodb:::";

Liste de paramètres

conn_url

Une chaîne de caractères qui contient les informations de connexion pour le serveur.

userid

Nom d'utilisateur pour la base de données.

passwd

Mot de passe pour l'utilisateur.

Valeurs de retour

Identifiant de connexion, lorsque le processus réussit.

FALSE, lorsqu'une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_pconnect_with_url() sans propriétés

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::?althost=10.34.63.132:33088&rctime=100"
$con = cubrid_pconnect_with_url ($conn_url);

if ($con) {
   echo "Connexion réussie";
   cubrid_execute($con, "create table person(id int,name char(16))");
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request ($req);
      cubrid_commit ($con);
   } else {
      cubrid_rollback ($con);
   }
   cubrid_disconnect ($con);
}
?>

Exemple #2 cubrid_pconnect_with_url() url with properties example

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::?autocommit=off&althost=10.34.63.132:33088&rctime=100"
$con = cubrid_pconnect_with_url ($conn_url);

if ($con) {
   echo "Connexion réussie";
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request ($req);
      cubrid_commit ($con);
   } else {
      cubrid_rollback ($con);
   }
   cubrid_disconnect ($con);
}
?>

Voir aussi

  • cubrid_connect() - Ouvre une connexion au serveur CUBRID
  • cubrid_pconnect() - Ouvre une connexion persistante vers un serveur CUBRID
  • cubrid_pconnect_with_url()
  • cubrid_disconnect() - Ferme la connexion à la base de données
  • cubrid_close() - Ferme une connexion CUBRID


Ouvre une connexion persistante vers un serveur CUBRID

  • « cubrid_pconnect_with_url
  • cubrid_prepare »
  • PHP Manual
  • Fonctions CUBRID
  • Ouvre une connexion persistante vers un serveur CUBRID

cubrid_pconnect

(PECL CUBRID >= 8.3.1)

cubrid_pconnect — Ouvre une connexion persistante vers un serveur CUBRID

Description

resource cubrid_pconnect ( string $host , int $port , string $dbname [, string $userid [, string $passwd ]] )

Établit une connexion persistante vers un serveur CUBRID.

cubrid_pconnect() agit de la même façon que cubrid_connect() avec deux différences majeures.

Tout d'abord, lors de la connexion, la fonction tentera d'abord de trouver un lien (persistant) déjà ouvert avec le même nom d'hôte, sur le même port, utilisant la même base de données dbname ainsi que le même userid. Si un tel lien est trouvé, son identifiant sera retourné au lieu d'ouvrir une nouvelle connexion.

Ensuite, la connexion vers le serveur MySQL ne sera pas fermée lorsque la fin du scripts est atteint. Au lieu de cela, le lien restera ouvert pour une utilisation future (cubrid_close() ou cubrid_disconnect() ne fermera pas les liens établis avec cubrid_pconnect()).

Ce type de lien était appelé auparavant 'persistante'.

Liste de paramètres

host

Nom de l'hôte ou adresse IP du serveur CUBRID CAS.

port

Numéro du port du serveur CUBRID CAS (BROKER_PORT configuré dans $CUBRID/conf/cubrid_broker.conf).

dbname

Nom de la base de données.

userid

Nom d'utilisateur pour la base de données.

passwd

Mot de passe à associer avec le nom d'utilisateur.

Valeurs de retour

Identifiant de connexion en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_connect()

<?php
printf("%-30s %s\n", "version de CUBRID PHP :", cubrid_version());

printf("\n");

$conn = cubrid_pconnect("localhost", 33000, "demodb", "dba");

if (!$conn) {
    die('Erreur de connexion ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Infos Server :", $server_info);
printf("%-30s %s\n", "Infos Client:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "Jeux de caractères CUBRID :", $charset);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Voir aussi

  • cubrid_connect() - Ouvre une connexion au serveur CUBRID
  • cubrid_connect_with_url() - Établit l'environnement pour une connexion au serveur CUBRID
  • cubrid_pconnect_with_url() - Ouvre une connexion persistante vers un serveur CUBRID
  • cubrid_disconnect() - Ferme la connexion à la base de données
  • cubrid_close() - Ferme une connexion CUBRID


Prépare une requête SQL pour son exécution

  • « cubrid_pconnect
  • cubrid_put »
  • PHP Manual
  • Fonctions CUBRID
  • Prépare une requête SQL pour son exécution

cubrid_prepare

(PECL CUBRID >= 8.3.0)

cubrid_prepare — Prépare une requête SQL pour son exécution

Description

resource cubrid_prepare ( resource $conn_identifier , string $prepare_stmt [, int $option = 0 ] )

La fonction cubrid_prepare() prépare une requête SQL pour un gestionnaire de connexion fournie. Cette requête SQL pré-compilée sera incluse dans la fonction cubrid_prepare().

De plus, vous pouvez utiliser cette requête à plusieurs reprises ou pour traiter de gros volumes de données. Une seule requête peut être utilisée et vous pouvez y placer des variables. L'ajout d'une variable se fait lorsque vous voulez lier une valeur dans la clause VALUES ou WHERE d'une requête. Notez qu'il est autorisé de lier une valeur à une variable (?) uniquement en utilisant la fonction cubrid_bind().

Liste de paramètres

conn_identifier

Identifiant de connexion.

prepare_stmt

Requête préparée.

option

OID retourné par l'option CUBRID_INCLUDE_OID.

Valeurs de retour

Identifiant de requête en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_prepare()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$sql = <<<EOD
SELECT g.event_code, e.name
FROM game g
JOIN event e ON g.event_code=e.code
WHERE host_year = ? AND event_code NOT IN (SELECT event_code FROM game WHERE host_year=?) GROUP BY event_code;
EOD;

$req = cubrid_prepare($conn, $sql);

cubrid_bind($req, 1, 2004);
cubrid_bind($req, 2, 2000);
cubrid_execute($req);

$row_num = cubrid_num_rows($req);
printf("There are %d event that exits in 2004 olympic but not in 2000. For example:\n\n", $row_num);

printf("%-15s %s\n", "Event_code", "Event_name");
printf("----------------------------\n");

$row = cubrid_fetch_assoc($req);
printf("%-15d %s\n", $row["event_code"], $row["name"]);
$row = cubrid_fetch_assoc($req);
printf("%-15d %s\n", $row["event_code"], $row["name"]);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

There are 27 event that exits in 2004 olympic but not in 2000. For example:

Event_code      Event_name
----------------------------
20063           +91kg
20070           64kg

Voir aussi

  • cubrid_execute() - Exécute une requête SQL préparée
  • cubrid_bind() - Lie des valeurs à une requête préparée


Met à jour une colonne suivant son OID

  • « cubrid_prepare
  • cubrid_rollback »
  • PHP Manual
  • Fonctions CUBRID
  • Met à jour une colonne suivant son OID

cubrid_put

(PECL CUBRID >= 8.3.0)

cubrid_put — Met à jour une colonne suivant son OID

Description

int cubrid_put ( resource $conn_identifier , string $oid [, string $attr ], mixed $value )

La fonction cubrid_put() est utilisée pour mettre à jour un attribut de l'instance pointée par l'oid fournie.

Vous pouvez mettre à jour un seul attribut en utilisant une chaîne de caractères dans le paramètre attr. Dans ce cas, vous pouvez utiliser un entier, un nombre à virgule flottante, ou une chaîne de caractères comme value. Pour mettre à jour plusieurs attributs, vous devez ignorer le paramètre attr et définir l'argument value en utilisant un tableau associatif.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance que vous voulez mettre à jour.

attr

Nom de l'attribut que vous voulez mettre à jour.

value

Nouvelle valeur que vous voulez assigner à l'attribut.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_put()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_put($conn, $oid, "b", array(2, 4, 8));

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(3) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "4"
  [2]=>
  string(1) "8"
}

Voir aussi

  • cubrid_get() - Récupère une colonne en utilisant son OID
  • cubrid_set_add() - Insère un seul élément pour définir le type d'une colonne
  • cubrid_set_drop() - Supprime un élément
  • cubrid_seq_insert() - Insère un élément dans une séquence
  • cubrid_seq_drop() - Supprime un élément d'une séquence
  • cubrid_seq_put() - Met à jour la valeur d'un élément d'une séquence


Annule une transaction

  • « cubrid_put
  • cubrid_schema »
  • PHP Manual
  • Fonctions CUBRID
  • Annule une transaction

cubrid_rollback

(PECL CUBRID >= 8.3.0)

cubrid_rollback — Annule une transaction

Description

bool cubrid_rollback ( resource $conn_identifier )

La fonction cubrid_rollback() annule la transaction en cours pointée par le paramètre conn_identifier.

La connexion au serveur est fermée après l'appel à la fonction cubrid_rollback(). Cependant, le gestionnaire de connexion reste actif.

Liste de paramètres

conn_identifier

Identifiant de connexion.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exempe avec cubrid_rollback()

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");
cubrid_set_autocommit($conn,false);

@cubrid_execute($conn, "DROP TABLE publishers");

$sql = <<<EOD
CREATE TABLE publishers(
pub_id CHAR(3),
pub_name VARCHAR(20),
city VARCHAR(15),
state CHAR(2),
country VARCHAR(15)
)
EOD;

if (!cubrid_execute($conn, $sql)) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n", cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}

$req = cubrid_prepare($conn, "INSERT INTO publishers VALUES(?, ?, ?, ?, ?)");

$id_list = array("P01", "P02", "P03", "P04");
$name_list = array("Abatis Publishers", "Core Dump Books", "Schadenfreude Press", "Tenterhooks Press");
$city_list = array("New York", "San Francisco", "Hamburg", "Berkeley");
$state_list = array("NY", "CA", NULL, "CA");
$country_list = array("USA", "USA", "Germany", "USA");

for ($i = 0, $size = count($id_list); $i < $size; $i++) {
    cubrid_bind($req, 1, $id_list[$i]);
    cubrid_bind($req, 2, $name_list[$i]);
    cubrid_bind($req, 3, $city_list[$i]);
    cubrid_bind($req, 4, $state_list[$i]);
    cubrid_bind($req, 5, $country_list[$i]);

    if (!($ret = cubrid_execute($req))) {
        break;
    }
}

if (!$ret) {
    cubrid_rollback($conn);
} else {
    cubrid_commit($conn);

    $req = cubrid_execute($conn, "SELECT * FROM publishers");
    while ($result = cubrid_fetch_assoc($req)) {
        printf("%-3s %-20s %-15s %-3s %-15s\n",
            $result["pub_id"], $result["pub_name"], $result["city"], $result["state"], $result["country"]);
    }
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

P01 Abatis Publishers    New York        NY  USA
P02 Core Dump Books      San Francisco   CA  USA
P03 Schadenfreude Press  Hamburg             Germany
P04 Tenterhooks Press    Berkeley        CA  USA

Voir aussi

  • cubrid_commit() - Commit une transaction
  • cubrid_disconnect() - Ferme la connexion à la base de données


Récupère des informations sur un schéma

  • « cubrid_rollback
  • cubrid_seq_drop »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère des informations sur un schéma

cubrid_schema

(PECL CUBRID >= 8.3.0)

cubrid_schema — Récupère des informations sur un schéma

Description

array cubrid_schema ( resource $conn_identifier , int $schema_type [, string $class_name [, string $attr_name ]] )

La fonction cubrid_schema() est utilisée pour récupérer des informations d'un schéma depuis la base de données. Vous devez désigner le paramètre class_name, si vous voulez récupérer les informations d'une classe particulière, attr_name si vous voulez récupérer des informations sur un attribut particulier (ne peut être utilisé qu'avec CUBRID_ SCH_ATTR_PRIVILEGE).

Le résultat de la fonction est retourné sous la forme d'un tableau à 2 dimensions (colonne (tableau associatif) * lignes (tableau numérique)). Les tables suivantes montrent les types d'un schéma ainsi que la structure d'une colonne du tableau résultant, suivant le type de schéma demandé.

Composition du résultat pour chaque type
Schéma | Numéro de colonne | Nom de la colonne | Valeur
CUBRID_SCH_CLASS | 1 | NAME |
 | 2 | TYPE | 0:system class 1:vclass 2:class
CUBRID_SCH_VCLASS | 1 | NAME |
 | 2 | TYPE | 1:vclass
CUBRID_SCH_QUERY_SPEC | 1 | QUERY_SPEC |
CUBRID_SCH_ATTRIBUTE / CUBRID_SCH_CLASS_ATTRIBUTE | 1 | ATTR_NAME |
 | 2 | DOMAIN |
 | 3 | SCALE |
 | 4 | PRECISION |
 | 5 | INDEXED | 1:indexed
 | 6 | NOT NULL | 1:not null
 | 7 | SHARED | 1:shared
 | 8 | UNIQUE | 1:unique
 | 9 | DEFAULT |
 | 10 | ATTR_ORDER | base:1
 | 11 | CLASS_NAME |
 | 12 | SOURCE_CLASS |
 | 13 | IS_KEY | 1:key
CUBRID_SCH_METHOD / CUBRID_SCH_CLASS_METHOD | 1 | NAME |
 | 2 | RET_DOMAIN |
 | 3 | ARG_DOMAIN |
CUBRID_SCH_METHOD_FILE | 1 | METHOD_FILE |
CUBRID_SCH_SUPERCLASS / CUBRID_SCH_DIRECT_SUPER_CLASS / CUBRID_SCH_SUBCLASS | 1 | CLASS_NAME |
 | 2 | TYPE | 0:system class 1:vclass 2:class
CUBRID_SCH_CONSTRAINT | 1 | TYPE | 0:unique 1:index 2:reverse unique 3:reverse index
 | 2 | NAME |
 | 3 | ATTR_NAME |
 | 4 | NUM_PAGES |
 | 5 | NUM_KEYS |
 | 6 | PRIMARY_KEY | 1:primary key
 | 7 | KEY_ORDER | base:1
CUBRID_SCH_TRIGGER | 1 | NAME |
 | 2 | STATUS |
 | 3 | EVENT |
 | 4 | TARGET_CLASS |
 | 5 | TARGET_ATTR |
 | 6 | ACTION_TIME |
 | 7 | ACTION |
 | 8 | PRIORITY |
 | 9 | CONDITION_TIME |
 | 10 | CONDITION |
CUBRID_SCH_CLASS_PRIVILEGE / CUBRID_SCH_ATTR_PRIVILEGE | 1 | CLASS_NAME / ATTR_NAME |
 | 2 | PRIVILEGE |
 | 3 | GRANTABLE |
CUBRID_SCH_PRIMARY_KEY | 1 | CLASS_NAME |
 | 2 | ATTR_NAME |
 | 3 | KEY_SEQ | base:1
 | 4 | KEY_NAME |
CUBRID_SCH_IMPORTED_KEYS / CUBRID_SCH_EXPORTED_KEYS / CUBRID_SCH_CROSS_REFERENCE | 1 | PKTABLE_NAME |
 | 2 | PKCOLUMN_NAME |
 | 3 | FKTABLE_NAME | base:1
 | 4 | FKCOLUMN_NAME |
 | 5 | KEY_SEQ | base:1
 | 6 | UPDATE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 7 | DELETE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 8 | FK_NAME |
 | 9 | PK_NAME |

Liste de paramètres

conn_identifier

Identifiant de connexion.

schema_type

Données du schéma à récupérer.

class_name

Classe pour laquelle vous souhaitez connaître le schéma.

attr_name

Attribut pour lequel vous souhaitez connaître le schéma.

Valeurs de retour

Un tableau contenant les informations sur le schéma en cas de succès.

FALSE en cas d'échec.

Historique

Version | Description
8.3.1 | Modification de la valeur retournée : lorsque la fonction échoue, la valeur retournée est maintenant FALSE au lieu de -1.

Exemples

Exemple #1 Exemple avec cubrid_schema()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

printf("\n--- Primary Key ---\n");
$pk = cubrid_schema($conn, CUBRID_SCH_PRIMARY_KEY, "game");
var_dump($pk);

printf("\n--- Foreign Keys ---\n");
$fk = cubrid_schema($conn, CUBRID_SCH_IMPORTED_KEYS, "game");
var_dump($fk);

printf("\n--- Column Attribute ---\n");
$attr = cubrid_schema($conn, CUBRID_SCH_ATTRIBUTE, "stadium", "area");
var_dump($attr);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

--- Primary Key ---
array(3) {
  [0]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "3"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [1]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "2"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [2]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(9) "host_year"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
}

--- Foreign Keys ---
array(2) {
  [0]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(7) "athlete"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(20) "fk_game_athlete_code"
    ["PK_NAME"]=>
    string(15) "pk_athlete_code"
  }
  [1]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(5) "event"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(18) "fk_game_event_code"
    ["PK_NAME"]=>
    string(13) "pk_event_code"
  }
}

--- Column Attribute ---
array(1) {
  [0]=>
  array(13) {
    ["ATTR_NAME"]=>
    string(4) "area"
    ["DOMAIN"]=>
    string(1) "7"
    ["SCALE"]=>
    string(1) "2"
    ["PRECISION"]=>
    string(2) "10"
    ["INDEXED"]=>
    string(1) "0"
    ["NON_NULL"]=>
    string(1) "0"
    ["SHARED"]=>
    string(1) "0"
    ["UNIQUE"]=>
    string(1) "0"
    ["DEFAULT"]=>
    NULL
    ["ATTR_ORDER"]=>
    string(1) "4"
    ["CLASS_NAME"]=>
    string(7) "stadium"
    ["SOURCE_CLASS"]=>
    string(7) "stadium"
    ["IS_KEY"]=>
    string(1) "0"
  }
}


Supprime un élément d'une séquence

  • « cubrid_schema
  • cubrid_seq_insert »
  • PHP Manual
  • Fonctions CUBRID
  • Supprime un élément d'une séquence

cubrid_seq_drop

(PECL CUBRID >= 8.3.0)

cubrid_seq_drop — Supprime un élément d'une séquence

Description

bool cubrid_seq_drop ( resource $conn_identifier , string $oid , string $attr_name , int $index )

La fonction cubrid_seq_drop() est utilisée pour supprimer un élément de la base de données en se basant sur la séquence de types d'attributs fournie.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance à utiliser.

attr_name

Nom de l'attribut depuis lequel l'élément doit être supprimé.

index

Index de l'élément à supprimer (en commençant à 1).

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_seq_drop()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_drop($conn, $oid, "c", 4);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(3) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
}

Voir aussi

  • cubrid_seq_insert() - Insère un élément dans une séquence
  • cubrid_seq_put() - Met à jour la valeur d'un élément d'une séquence


Insère un élément dans une séquence

  • « cubrid_seq_drop
  • cubrid_seq_put »
  • PHP Manual
  • Fonctions CUBRID
  • Insère un élément dans une séquence

cubrid_seq_insert

(PECL CUBRID >= 8.3.0)

cubrid_seq_insert — Insère un élément dans une séquence

Description

bool cubrid_seq_insert ( resource $conn_identifier , string $oid , string $attr_name , int $index , string $seq_element )

La fonction cubrid_col_insert() est utilisée pour insérer un élément dans une séquence de types d'attributs.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance à utiliser.

attr_name

Nom de l'attribut à insérer.

index

Position de l'élement pour son insertion (en commençant à 1).

seq_element

Contenu de l'élément à insérer.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_seq_insert()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_insert($conn, $oid, "c", 5, "44");

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(5) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
  [4]=>
  string(2) "44"
}

Voir aussi

  • cubrid_seq_drop() - Supprime un élément d'une séquence
  • cubrid_seq_put() - Met à jour la valeur d'un élément d'une séquence


Met à jour la valeur d'un élément d'une séquence

  • « cubrid_seq_insert
  • cubrid_set_add »
  • PHP Manual
  • Fonctions CUBRID
  • Met à jour la valeur d'un élément d'une séquence

cubrid_seq_put

(PECL CUBRID >= 8.3.0)

cubrid_seq_put — Met à jour la valeur d'un élément d'une séquence

Description

bool cubrid_seq_put ( resource $conn_identifier , string $oid , string $attr_name , int $index , string $seq_element )

La fonction cubrid_seq_put() est utilisée pour mettre à jour le contenu d'un élément dans une séquence de types d'attributs.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance à utiliser.

attr_name

Nom de l'attribut à utiliser.

index

Index (en commençant à 1) de l'élément à mettre à jour.

seq_element

Nouveau contenu à placer dans l'élément.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_seq_put()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_put($conn, $oid, "c", 1, "111");

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(4) {
  [0]=>
  string(3) "111"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}

Voir aussi

  • cubrid_seq_drop() - Supprime un élément d'une séquence
  • cubrid_seq_insert() - Insère un élément dans une séquence


Insère un seul élément pour définir le type d'une colonne

  • « cubrid_seq_put
  • cubrid_set_autocommit »
  • PHP Manual
  • Fonctions CUBRID
  • Insère un seul élément pour définir le type d'une colonne

cubrid_set_add

(PECL CUBRID >= 8.3.0)

cubrid_set_add — Insère un seul élément pour définir le type d'une colonne

Description

bool cubrid_set_add ( resource $conn_identifier , string $oid , string $attr_name , string $set_element )

La fonction cubrid_set_add() est utilisée pour insérer un seul élément dans un jeu de types d'attributs.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance à utiliser.

attr_name

Nom de l'attribut dans lequel le nouvel élément sera insérer.

set_element

Contenu de l'élément à insérer.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_set_add()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_set_add($conn, $oid, "b", "4");

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(4) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
  [3]=>
  string(1) "4"
}

Voir aussi

  • cubrid_seq_drop() - Supprime un élément d'une séquence


Définit le mode auto-commit pour la connexion

  • « cubrid_set_add
  • cubrid_set_db_parameter »
  • PHP Manual
  • Fonctions CUBRID
  • Définit le mode auto-commit pour la connexion

cubrid_set_autocommit

(PECL CUBRID >= 8.4.0)

cubrid_set_autocommit — Définit le mode auto-commit pour la connexion

Description

bool cubrid_set_autocommit ( resource $conn_identifier , bool $mode )

La fonction cubrid_set_autocommit() est utilisée pour définir le mode auto-commit pour la connexion à la base de données CUBRID.

En CUBRID PHP, le mode auto-commit est désactivé par défaut pour la gestion des transactions. Lorsque le mode auto-commit passe de Off à On, tous les travaux en attente sont automatiquement validés.

Liste de paramètres

conn_identifier

Identifiant de connexion.

mode

Le mode auto-commit. Les constantes suivantes peuvent être utilisées :

  • CUBRID_AUTOCOMMIT_FALSE
  • CUBRID_AUTOCOMMIT_TRUE

Valeurs de retour

TRUE lorsque l'opération est un succès.

FALSE lorsqu'une erreur survient.

Voir aussi

  • cubrid_get_autocommit() - Récupère le mode auto-commit de la connexion
  • cubrid_commit() - Commit une transaction


Définit les paramètres de base de données CUBRID

  • « cubrid_set_autocommit
  • cubrid_set_drop »
  • PHP Manual
  • Fonctions CUBRID
  • Définit les paramètres de base de données CUBRID

cubrid_set_db_parameter

(PECL CUBRID >= 8.4.0)

cubrid_set_db_parameter — Définit les paramètres de base de données CUBRID

Description

bool cubrid_set_db_parameter ( resource $conn_identifier , int $param_type , int $param_value )

La fonction cubrid_set_db_parameter() est utilisée pour définir les paramètres de base de données CUBRID. Elle peut définir les paramètres de base de données CUBRID suivants :

  • PARAM_ISOLATION_LEVEL
  • PARAM_LOCK_TIMEOUT

Note:

Le mode auto-commit peut être défini en utilisant la fonction cubrid_set_autocommit().

Liste de paramètres

conn_identifier

La connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, le dernier lien ouvert par la fonction cubrid_connect() sera utilisé.

param_type

Type de paramètre de la base de données.

param_value

Niveau d'isolation (1-6) ou la valeur du délai d'expiration (en secondes).

Valeurs de retour

TRUE en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_get_db_parameter()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$params = cubrid_get_db_parameter($conn);
var_dump($params);

cubrid_set_autocommit($conn, CUBRID_AUTOCOMMIT_TRUE);
cubrid_set_db_parameter($conn, CUBRID_PARAM_ISOLATION_LEVEL, 2);

$params_new = cubrid_get_db_parameter($conn);
var_dump($params_new);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(4) {
  ["PARAM_ISOLATION_LEVEL"]=>
  int(3)
  ["PARAM_LOCK_TIMEOUT"]=>
  int(-1)
  ["PARAM_MAX_STRING_LENGTH"]=>
  int(1073741823)
  ["PARAM_AUTO_COMMIT"]=>
  int(0)
}
array(4) {
  ["PARAM_ISOLATION_LEVEL"]=>
  int(2)
  ["PARAM_LOCK_TIMEOUT"]=>
  int(-1)
  ["PARAM_MAX_STRING_LENGTH"]=>
  int(1073741823)
  ["PARAM_AUTO_COMMIT"]=>
  int(1)
}

Voir aussi

  • cubrid_get_db_parameter() - Retourne les paramètres de la base de données CUBRID
  • cubrid_set_autocommit() - Définit le mode auto-commit pour la connexion


Supprime un élément

  • « cubrid_set_db_parameter
  • cubrid_set_query_timeout »
  • PHP Manual
  • Fonctions CUBRID
  • Supprime un élément

cubrid_set_drop

(PECL CUBRID >= 8.3.0)

cubrid_set_drop — Supprime un élément

Description

bool cubrid_set_drop ( resource $conn_identifier , string $oid , string $attr_name , string $set_element )

La fonction cubrid_set_drop() est utilisée pour supprimer un élément depuis un attribut donné de la base de données.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

OID de l'instance à utiliser.

attr_name

Nom de l'attribut depuis lequel l'élément sera supprimé.

set_element

Contenu de l'élément à supprimer.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_set_drop()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_set_drop($conn, $oid, "b", "1");

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(2) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "3"
}

Voir aussi

  • cubrid_set_add() - Insère un seul élément pour définir le type d'une colonne


Définit le délai maximal d'exécution d'une requête

  • « cubrid_set_drop
  • cubrid_version »
  • PHP Manual
  • Fonctions CUBRID
  • Définit le délai maximal d'exécution d'une requête

cubrid_set_query_timeout

(PECL CUBRID >= 8.4.1)

cubrid_set_query_timeout — Définit le délai maximal d'exécution d'une requête

Description

bool cubrid_set_query_timeout ( resource $req_identifier , int $timeout )

La fonction cubrid_set_query_timeout() est utilisée pour définir le délai maximal d'exécution d'une requête.

Liste de paramètres

req_identifier

Identifiant de requête.

timeout

Délai maximal, en millisecondes.

Valeurs de retour

TRUE en cas de succès.

FALSE lorsqu'une erreur survient.

Voir aussi

  • cubrid_get_query_timeout() - Récupère la valeur du délai d'attente maximal d'une requête


Récupère la version du module PHP CUBRID

  • « cubrid_set_query_timeout
  • Fonctions CUBRID compatibles MySQL »
  • PHP Manual
  • Fonctions CUBRID
  • Récupère la version du module PHP CUBRID

cubrid_version

(PECL CUBRID >= 8.3.0)

cubrid_version — Récupère la version du module PHP CUBRID

Description

string cubrid_version ( void )

La fonction cubrid_version() est utilisée pour récupérer la version du module PHP CUBRID.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Information sur la version (i.e. "8.3.1.0001").

Exemples

Exemple #1 Exemple avec cubrid_version()

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb", "dba");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

L'exemple ci-dessus va afficher :

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Voir aussi

  • cubrid_error_code() - Récupère le code erreur de la dernière erreur survenue
  • cubrid_error_code_facility() - Récupère le niveau du code erreur


Fonctions CUBRID compatibles MySQL

Sommaire

  • cubrid_affected_rows — Récupère le nombre de lignes affectées par la dernière requête SQL
  • cubrid_client_encoding — Retourne le jeu de caractères utilisé sur la connexion CUBRID courante
  • cubrid_close — Ferme une connexion CUBRID
  • cubrid_data_seek — Déplace le pointeur de lignes interne du résultat CUBRID
  • cubrid_db_name — Récupère le nom de la base de données depuis les résultats de cubrid_list_dbs
  • cubrid_errno — Retourne la valeur numérique d'un message d'erreur
  • cubrid_error — Récupère le message de l'erreur
  • cubrid_fetch_array — Récupère une ligne de résultat sous forme de tableau associatif, de tableau numérique, ou les deux
  • cubrid_fetch_assoc — Retourne un tableau associatif correspondant à la ligne récupérée
  • cubrid_fetch_field — Récupère des informations sur une colonne et les retourne sous la forme d'un objet
  • cubrid_fetch_lengths — Retourne un tableau contenant les longueurs des valeurs de chaque champ de la ligne courante
  • cubrid_fetch_object — Récupère la prochaine ligne et la retourne sous la forme d'un objet
  • cubrid_fetch_row — Retourne un tableau numérique avec les valeurs de la ligne courante
  • cubrid_field_flags — Retourne une chaîne avec les drapeaux de la position du champ fourni
  • cubrid_field_len — Récupère la longueur maximale du champ spécifié
  • cubrid_field_name — Retourne le nom du champ spécifié
  • cubrid_field_seek — Déplace le curseur du jeu de résultats à une position spécifiée
  • cubrid_field_table — Retourne le nom de la table d'un champ spécifié
  • cubrid_field_type — Retourne le type de la colonne correspondant à la position du champ fourni
  • cubrid_list_dbs — Retourne un tableau contenant la liste de toutes les bases de données CUBRID existantes
  • cubrid_num_fields — Retourne le nombre de colonnes dans le jeu de résultats
  • cubrid_ping — Ping une connexion au serveur ou se reconnecte s'il n'y a plus de connexion active
  • cubrid_query — Envoi une requête CUBRID
  • cubrid_real_escape_string — Échappe les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL
  • cubrid_result — Retourne la valeur d'un champ d'une ligne spécifique
  • cubrid_unbuffered_query — Exécute une requête sans placer les résultats en mémoire vive


Récupère le nombre de lignes affectées par la dernière requête SQL

  • « Fonctions CUBRID compatibles MySQL
  • cubrid_client_encoding »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Récupère le nombre de lignes affectées par la dernière requête SQL

cubrid_affected_rows

(PECL CUBRID >= 8.3.0)

cubrid_affected_rows — Récupère le nombre de lignes affectées par la dernière requête SQL

Description

int cubrid_affected_rows ([ resource $conn_identifier ] )
int cubrid_affected_rows ([ resource $req_identifier ] )

La fonction cubrid_affected_rows() est utilisée pour récupérer le nombre de lignes affectées par la dernière requête Cubrid (INSERT, DELETE, UPDATE).

Liste de paramètres

conn_identifier

Le résultat. S'il n'est pas spécifié, le dernière résultat sera utilisé.

req_identifier

L'identifiant de requête ; il peut être retourné soit de la fonction cubrid_prepare(), soit de la fonction cubrid_execute(). Si l'identifiant de requête n'est pas spécifié, le dernier identifiant de requête utilisé par la fonction cubrid_prepare() ou la fonction cubrid_execute() sera utilisé.

Valeurs de retour

Nombre de lignes affectées par la dernière requête SQL, lorsqu'elle a réussi.

-1, lorsque la dernière requête n'était pas de type INSERT, DELETE ou UPDATE.

FALSE, lorsque l'identifiant de requête n'est pas spécifié et qu'il n'y a aucune requête précédente.

Exemples

Exemple #1 Exemple avec cubrid_affected_rows()

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
cubrid_execute($conn, "DROP TABLE IF EXISTS cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (d varchar)");
$sql_stmt = "INSERT INTO cubrid_test(d) VALUES('php-test')";
$req = cubrid_prepare($conn, $sql_stmt);

for ($i = 0; $i < 10; $i++) {
    cubrid_execute($req);
}
cubrid_commit($conn);

$req = cubrid_execute($conn, "DELETE FROM cubrid_test WHERE d='php-test'", CUBRID_ASYNC);
var_dump(cubrid_affected_rows());
var_dump(cubrid_affected_rows($conn));
var_dump(cubrid_affected_rows($req));

cubrid_disconnect($conn);

print "done!";
?>

L'exemple ci-dessus va afficher :

Rows deleted: 5

Voir aussi

  • cubrid_execute() - Exécute une requête SQL préparée


Retourne le jeu de caractères utilisé sur la connexion CUBRID courante

  • « cubrid_affected_rows
  • cubrid_close »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Retourne le jeu de caractères utilisé sur la connexion CUBRID courante

cubrid_client_encoding

(PECL CUBRID >= 8.3.1)

cubrid_client_encoding — Retourne le jeu de caractères utilisé sur la connexion CUBRID courante

Description

string cubrid_client_encoding ([ resource $conn_identifier ] )

Cette fonction retourne le jeu de caractères utilisé sur la connexion CUBRID courante et est similaire à la fonction cubrid_get_charset().

Liste de paramètres

conn_identifier

La connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

Une chaîne de caractères qui représente le jeu de caractères sur la connexion CUBRID en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_client_encoding()

<?php

$con = cubrid_connect("localhost", 33000, "demodb");
if (!$con)
{
    die('Connexion impossible.');
}

printf("Jeu de caractères courant CUBRID : %s\n", cubrid_client_encoding($con));

?>

L'exemple ci-dessus va afficher :

Jeu de caractères courant CUBRID : iso8859-1

Voir aussi

  • cubrid_get_charset() - Retourne le jeu de caractères utilisé sur la connexion CUBRID courante


Ferme une connexion CUBRID

  • « cubrid_client_encoding
  • cubrid_data_seek »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Ferme une connexion CUBRID

cubrid_close

(PECL CUBRID >= 8.3.1)

cubrid_close — Ferme une connexion CUBRID

Description

bool cubrid_close ([ resource $conn_identifier ] )

La fonction cubrid_close() met fin à la transaction courante, ferme le gestionnaire de connexion et déconnecte le serveur. S'il existe des gestionnaires de requêtes non clos à ce moment là, ils seront tous clos. Cette fonction est similaire à la fonction cubrid_disconnect().

Liste de paramètres

conn_identifier

L'identifiant de connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

TRUE, lorsque l'opération a été réalisée avec succès.

FALSE, lorsque l'opération a échoué.

Exemples

Exemple #1 Exemple avec cubrid_close()

<?php
$con = cubrid_connect ("localhost", 33000, "demodb");
if ($con) {
   echo "connexion avec succès";
   $req = cubrid_execute ( $con, "insert into person values(1,'James')");
   if ($req) {
      cubrid_close_request ($req);
      cubrid_commit ($con);
   } else {
      cubrid_rollback ($con);
   }
   cubrid_close ($con);
}
?>

Voir aussi

  • cubrid_disconnect() - Ferme la connexion à la base de données
  • cubrid_connect() - Ouvre une connexion au serveur CUBRID
  • cubrid_connect_with_url() - Établit l'environnement pour une connexion au serveur CUBRID


Déplace le pointeur de lignes interne du résultat CUBRID

  • « cubrid_close
  • cubrid_db_name »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Déplace le pointeur de lignes interne du résultat CUBRID

cubrid_data_seek

(PECL CUBRID >= 8.3.0)

cubrid_data_seek — Déplace le pointeur de lignes interne du résultat CUBRID

Description

bool cubrid_data_seek ( resource $result , int $row_number )

Cette fonction déplace le pointeur de lignes interne du résultat CUBRID (associé avec l'identifiant de résultat spécifié) pour pointer sur un numéro de ligne spécifique. Il y a des fonctions, comme la fonction cubrid_fetch_assoc(), qui utilise la valeur courante stockée de row_number.

Liste de paramètres

result

Le résultat.

row_number

Numéro de ligne désirée pour le pointeur.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_data_seek()

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM code");
cubrid_data_seek($req, 0);

$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_data_seek($req, 2);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_data_seek($req, 4);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  string(1) "X"
  [1]=>
  string(5) "Mixed"
}
array(2) {
  [0]=>
  string(1) "M"
  [1]=>
  string(3) "Man"
}
array(2) {
  [0]=>
  string(1) "S"
  [1]=>
  string(6) "Silver"
}


Récupère le nom de la base de données depuis les résultats de cubrid_list_dbs

  • « cubrid_data_seek
  • cubrid_errno »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Récupère le nom de la base de données depuis les résultats de cubrid_list_dbs

cubrid_db_name

(PECL CUBRID >= 8.3.1)

cubrid_db_name — Récupère le nom de la base de données depuis les résultats de cubrid_list_dbs

Description

string cubrid_db_name ( array $result , int $index )

Récupère le nom de la base de données depuis un appel à la fonction cubrid_list_dbs().

Liste de paramètres

result

Le pointeur de résultat depuis un appel à la fonction cubrid_list_dbs().

index

L'index dans le jeu de résultats.

Valeurs de retour

Retourne le nom de la base de données en cas de succès, et FALSE si une erreur survient. Si FALSE est retourné, utilisez la fonction cubrid_error() pour déterminer la nature de l'erreur.

Exemples

Exemple #1 Exemple avec cubrid_db_name()

<?php
error_reporting(E_ALL);

$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$db_list = cubrid_list_dbs($conn);

$i = 0;
$cnt = count($db_list);
while ($i < $cnt) {
    echo cubrid_db_name($db_list, $i) . "\n";
    $i++;
}
?>

L'exemple ci-dessus va afficher :

demodb

Voir aussi

  • cubrid_list_dbs() - Retourne un tableau contenant la liste de toutes les bases de données CUBRID existantes


Retourne la valeur numérique d'un message d'erreur

  • « cubrid_db_name
  • cubrid_error »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Retourne la valeur numérique d'un message d'erreur

cubrid_errno

(PECL CUBRID >= 8.3.1)

cubrid_errno — Retourne la valeur numérique d'un message d'erreur

Description

int cubrid_errno ([ resource $conn_identifier ] )

Retourne le numéro de l'erreur issue depuis la dernière fonction CUBRID.

La fonction cubrid_errno() est utilisée pour récupérer le code erreur de la dernière erreur survenue lors d'une exécution de l'API. Habituellement, elle retourne le code erreur lorsque l'API retourne FALSE.

Liste de paramètres

conn_identifier

L'identifiant de connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

Retourne le numéro de l'erreur issue lors de la dernière fonction CUBRID, ou 0 (zéro) si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec cubrid_errno()

<?php
$con = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if ($req) {
    while (list ($id, $name) = cubrid_fetch($req))
    echo $id, $name;
} else {
    echo "Code erreur : ", cubrid_errno($con);
    echo "Message d'erreur : ", cubrid_error($con);
}
?>

L'exemple ci-dessus va afficher :

Code erreur : -493 Message d'erreur : Syntax: Unknown class "person". select id, [name] from person

Voir aussi

  • cubrid_error() - Récupère le message de l'erreur
  • cubrid_error_code() - Récupère le code erreur de la dernière erreur survenue
  • cubrid_error_msg() - Récupère le message d'erreur de la dernière erreur survenue


Récupère le message de l'erreur

  • « cubrid_errno
  • cubrid_fetch_array »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Récupère le message de l'erreur

cubrid_error

(PECL CUBRID >= 8.3.1)

cubrid_error — Récupère le message de l'erreur

Description

string cubrid_error ([ resource $connection ] )

La fonction cubrid_error() est utilisée pour récupérer le message de l'erreur survenue lors de l'utilisation de l'API CUBRID. Habituellement, elle récupère le message de l'erreur lorsque l'API retourne FALSE.

Liste de paramètres

connection

La connexion CUBRID.

Valeurs de retour

Le message de l'erreur survenue.

Exemples

Exemple #1 Exemple avec cubrid_error()

<?php
$con = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$req = cubrid_execute($con, "select id, name from person");
if ($req) {
    while (list ($id, $name) = cubrid_fetch($req))
    echo $id, $name;
} else {
    echo "Code de l'erreur : ", cubrid_errno($con);
    echo "Message de l'erreur : ", cubrid_error($con);
}
?>

L'exemple ci-dessus va afficher :

Code de l'erreur : -493 Message de l'erreur : Syntax: Unknown class "person". select id, [name] from person

Voir aussi

  • cubrid_errno() - Retourne la valeur numérique d'un message d'erreur
  • cubrid_error_code() - Récupère le code erreur de la dernière erreur survenue
  • cubrid_error_msg() - Récupère le message d'erreur de la dernière erreur survenue


Récupère une ligne de résultat sous forme de tableau associatif, de tableau numérique, ou les deux

  • « cubrid_error
  • cubrid_fetch_assoc »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Récupère une ligne de résultat sous forme de tableau associatif, de tableau numérique, ou les deux

cubrid_fetch_array

(PECL CUBRID >=8.3.0)

cubrid_fetch_array — Récupère une ligne de résultat sous forme de tableau associatif, de tableau numérique, ou les deux

Description

array cubrid_fetch_array ( resource $result [, int $type = CUBRID_BOTH ] )

La fonction cubrid_fetch_array() est utilisée pour récupérer une seule ligne depuis le résultat de la requête et retourne un tableau. Le curseur se déplace automatiquement sur la prochaine ligne une fois le résultat récupéré.

Liste de paramètres

result

Le paramètre Result provient d'un appel à la fonction cubrid_execute()

type

Type du tableau récupéré : CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH. Si vous avez besoin d'utiliser un objet LOB, vous pouvez utiliser CUBRID_LOB.

Valeurs de retour

Retourne un tableau de chaînes de caractères correspondant à la ligne récupérée, lorsque l'opération a réussi.

FALSE lorsqu'il n'y a plus de ligne, NULL lorsqu'une erreur survient.

Le type du tableau retourné dépend dont le type a été défini. En utilisant CUBRID_BOTH (valeur par défaut), vous récupérerez un tableau contenant à la fois des indices associatifs et numériques ; vous pouvez choisir explicitement ce type via l'argument type. La variable type peut être définie à une des valeurs suivantes :

  • CUBRID_NUM : Tableau numérique (en commençant à l'indice 0)
  • CUBRID_ASSOC : Tableau associatif
  • CUBRID_BOTH : Tableau associatif et numérique (valeur par défaut)

Exemples

Exemple #1 Exemple avec cubrid_fetch_array()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch_array($req, CUBRID_NUM)) {
    printf("%-40s %-10s %-6s %-20s\n", $row[0], $row[1], $row[2], $row[3]);
}

// Si vous voulez utiliser un objet LOB, vous pouvez utiliser
// cubrid_fetch_array($req, CUBRID_NUM | CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Voir aussi

  • cubrid_execute() - Exécute une requête SQL préparée
  • cubrid_fetch() - Récupère la prochaine ligne du jeu de résultats
  • cubrid_fetch_row() - Retourne un tableau numérique avec les valeurs de la ligne courante
  • cubrid_fetch_assoc() - Retourne un tableau associatif correspondant à la ligne récupérée
  • cubrid_fetch_object() - Récupère la prochaine ligne et la retourne sous la forme d'un objet


Retourne un tableau associatif correspondant à la ligne récupérée

  • « cubrid_fetch_array
  • cubrid_fetch_field »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Retourne un tableau associatif correspondant à la ligne récupérée

cubrid_fetch_assoc

(PECL CUBRID >= 8.3.0)

cubrid_fetch_assoc — Retourne un tableau associatif correspondant à la ligne récupérée

Description

array cubrid_fetch_assoc ( resource $result [, int $type ] )

Cette fonction retourne un tableau associatif correspondant à la ligne récupérée, puis, déplace le pointer de données interne sur la prochaine ligne. La fonction retourne FALSE si il n'y a plus de résultat de disponible.

Liste de paramètres

result

Le paramètre result provient d'un appel à la fonction cubrid_execute()

type

Le type ne peut être que CUBRID_LOB ; ce paramètre sera utilisé uniquement lorsque vous avez besoin d'utiliser un objet LOB.

Valeurs de retour

Un tableau associatif, en cas de succès.

FALSE lorsqu'il n'y a plus de ligne, NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_fetch_assoc()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch_assoc($req)) {
    printf("%-40s %-10s %-6s %-20s\n",
        $row["name"], $row["area"], $row["seats"], $row["address"]);
}

// Si vous voulez utiliser un objet LOB, vous pouvez utiliser
// cubrid_fetch_assoc($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Voir aussi

  • cubrid_execute() - Exécute une requête SQL préparée
  • cubrid_fetch() - Récupère la prochaine ligne du jeu de résultats
  • cubrid_fetch_row() - Retourne un tableau numérique avec les valeurs de la ligne courante
  • cubrid_fetch_array() - Récupère une ligne de résultat sous forme de tableau associatif, de tableau numérique, ou les deux
  • cubrid_fetch_object() - Récupère la prochaine ligne et la retourne sous la forme d'un objet


Récupère des informations sur une colonne et les retourne sous la forme d'un objet

  • « cubrid_fetch_assoc
  • cubrid_fetch_lengths »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Récupère des informations sur une colonne et les retourne sous la forme d'un objet

cubrid_fetch_field

(PECL CUBRID >= 8.3.1)

cubrid_fetch_field — Récupère des informations sur une colonne et les retourne sous la forme d'un objet

Description

object cubrid_fetch_field ( resource $result [, int $field_offset = 0 ] )

Cette fonction retourne un objet avec certaines propriétés d'une colonne spécifique. Les propriétés de l'objet sont :

name

Nom de la colonne

table

Nom de la tableau contenant cette colonne

def

Valeur par défaut de la colonne

max_length

Longueur maximale de la colonne

not_null

1 si la colonne ne peut être NULL

primary_key

1 si la colonne est une clé primaire

unique_key

1 si la colonne est une clé unique

multiple_key

1 si la colonne est une clé non-unique

numeric

1 si la colonne est de type numérique

blob

1 si la colonne est de type BLOB

type

Le type de la colonne

unsigned

1 si la colonne n'est pas signée

zerofill

1 si la colonne est complétée par des zéros

Liste de paramètres

result

Le paramètre result provient d'un appel à la fonction cubrid_execute()

field_offset

La position numérique du champ. Si la position du champ n'est pas spécifiée, le prochain champ (qui n'a pas encore été récupéré par cette fonction) est récupéré. Le paramètre field_offset commence à zéro.

Valeurs de retour

Un objet avec certaines propriétés d'une colonne spécifique, en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_fetch_field()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT event_code,athlete_code,nation_code,game_date FROM game WHERE host_year=1988 and event_code=20001;");

var_dump(cubrid_fetch_row($req));

cubrid_field_seek($req, 1);
$field = cubrid_fetch_field($req);

printf("\n--- Propriétés des champs ---\n");
printf("%-30s %s\n", "name:", $field->name);
printf("%-30s %s\n", "table:", $field->table);
printf("%-30s \"%s\"\n", "default value:", $field->def);
printf("%-30s %d\n", "max length:", $field->max_length);
printf("%-30s %d\n", "not null:", $field->not_null);
printf("%-30s %d\n", "primary key:", $field->primary_key);
printf("%-30s %d\n", "unique key:", $field->unique_key);
printf("%-30s %d\n", "multiple key:", $field->multiple_key);
printf("%-30s %d\n", "numeric:", $field->numeric);
printf("%-30s %d\n", "blob:", $field->blob);
printf("%-30s %s\n", "type:", $field->type);
printf("%-30s %d\n", "unsigned:", $field->unsigned);
printf("%-30s %d\n", "zerofill:", $field->zerofill);

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(5) "20001"
  [1]=>
  string(5) "16681"
  [2]=>
  string(3) "KOR"
  [3]=>
  string(9) "1988-9-30"
}

--- Propriétés des champs ---
name:                          athlete_code
table:                         game
default value:                 ""
max length:                    0
not null:                      1
primary key:                   1
unique key:                    1
multiple key:                  0
numeric:                       1
blob:                          0
type:                          integer
unsigned:                      0
zerofill:                      0


Retourne un tableau contenant les longueurs des valeurs de chaque champ de la ligne courante

  • « cubrid_fetch_field
  • cubrid_fetch_object »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Retourne un tableau contenant les longueurs des valeurs de chaque champ de la ligne courante

cubrid_fetch_lengths

(PECL CUBRID >= 8.3.0)

cubrid_fetch_lengths — Retourne un tableau contenant les longueurs des valeurs de chaque champ de la ligne courante

Description

array cubrid_fetch_lengths ( resource $result )

Cette fonction retourne un tableau numérique avec les longueurs des valeurs de chaque champ depuis la ligne courante du jeu de résultats, ou retourne FALSE si une erreur survient.

Note:

Si le type de données du champ est BLOB/CLOB, vous devez utiliser la fonction cubrid_lob_size() afin d'en connaître sa longueur.

Liste de paramètres

result

Le paramètre result provient d'un appel à la fonction cubrid_execute()

Valeurs de retour

Un tableau numérique en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_fetch_lengths()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$row = cubrid_fetch_row($result);
print_r($row);

$lens = cubrid_fetch_lengths($result);
print_r($lens);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 2004
    [1] => 20085
    [2] => 15118
    [3] => 30134
    [4] => AUS
    [5] => G
    [6] => 2004-8-20
)
Array
(
    [0] => 4
    [1] => 5
    [2] => 5
    [3] => 5
    [4] => 3
    [5] => 1
    [6] => 10
)


Récupère la prochaine ligne et la retourne sous la forme d'un objet

  • « cubrid_fetch_lengths
  • cubrid_fetch_row »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Récupère la prochaine ligne et la retourne sous la forme d'un objet

cubrid_fetch_object

(PECL CUBRID >= 8.3.0)

cubrid_fetch_object — Récupère la prochaine ligne et la retourne sous la forme d'un objet

Description

object cubrid_fetch_object ( resource $result [, string $class_name [, array $params [, int $type ]]] )

Cette fonction retourne un objet avec les noms de la colonne du jeu de résultats comme propriétés. Les valeurs de ces propriétés sont extraites depuis la ligne courante du jeu de résultats.

Liste de paramètres

result

Le paramètre result provient d'un appel à la fonction cubrid_execute()

class_name

Le nom de la classe à instancier, à définir les propriétés et à retourner. Si non spécifié, un objet stdClass est retourné.

params

Un tableau de paramètres optionnels à passer au constructeur de la classe class_name.

type

Le type ne peut être que CUBRID_LOB ; ce paramètre sera utilisé uniquement lorsque vous avez besoin d'utiliser un objet lob.

Valeurs de retour

Un objet en cas de succès.

FALSE lorsqu'il n'y a plus de ligne, NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_fetch_object()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$res = cubrid_execute($conn, "SELECT * FROM code");

var_dump(cubrid_fetch_object($res));

class demodb_code {
    public $s_name = null;
    public $f_name = null;

    public function toString() {
        var_dump($this);
    }
}

var_dump(cubrid_fetch_object($res, "demodb_code"));

// Si vous voulez utiliser un objet LOB, vous pouvez utiliser
// cubrid_fetch_object($res, 'demodb_code_construct', array('s_name', 'f_name'), CUBRID_LOB)

class demodb_code_construct extends demodb_code {
    public function __construct($s, $f) {
        $this->s_name = $s;
        $this->f_name = $f;
    }
}

var_dump(cubrid_fetch_object($res, 'demodb_code_construct', array('s_name', 'f_name')));

// Si vous voulez utiliser un objet LOB, vous pouvez utiliser
// cubrid_fetch_object($res, 'demodb_code_construct', array('s_name', 'f_name'), CUBRID_LOB)

var_dump(cubrid_fetch_object($res));

cubrid_close_request($res);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

object(stdClass)#1 (2) {
  ["s_name"]=>
  string(1) "X"
  ["f_name"]=>
  string(5) "Mixed"
}
object(demodb_code)#1 (2) {
  ["s_name"]=>
  string(1) "W"
  ["f_name"]=>
  string(5) "Woman"
}
object(demodb_code_construct)#1 (2) {
  ["s_name"]=>
  string(6) "s_name"
  ["f_name"]=>
  string(6) "f_name"
}
object(stdClass)#1 (2) {
  ["s_name"]=>
  string(1) "B"
  ["f_name"]=>
  string(6) "Bronze"
}

Voir aussi

  • cubrid_execute() - Exécute une requête SQL préparée
  • cubrid_fetch() - Récupère la prochaine ligne du jeu de résultats
  • cubrid_fetch_array() - Récupère une ligne de résultat sous forme de tableau associatif, de tableau numérique, ou les deux
  • cubrid_fetch_assoc() - Retourne un tableau associatif correspondant à la ligne récupérée
  • cubrid_fetch_row() - Retourne un tableau numérique avec les valeurs de la ligne courante


Retourne un tableau numérique avec les valeurs de la ligne courante

  • « cubrid_fetch_object
  • cubrid_field_flags »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Retourne un tableau numérique avec les valeurs de la ligne courante

cubrid_fetch_row

(PECL CUBRID >= 8.3.0)

cubrid_fetch_row — Retourne un tableau numérique avec les valeurs de la ligne courante

Description

array cubrid_fetch_row ( resource $result [, int $type ] )

Cette fonction retourne un tableau numérique avec les valeurs de la ligne courante depuis le jeu de résultats, en commençant à 0 et déplace le pointeur interne de données.

Liste de paramètres

result

Le paramètre result provient d'un appel à la fonction cubrid_execute()

type

Le type ne peut être que CUBRID_LOB ; ce paramètre sera utilisé uniquement lorsque vous avez besoin d'utiliser un objet lob.

Valeurs de retour

Un tableau numérique en cas de succès.

FALSE lorsqu'il n"y a plus de ligne, NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_fetch_row()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch_row($req)) {
    printf("%-40s %-10s %-6s %-20s\n", $row[0], $row[1], $row[2], $row[3]);
}

// Si vous souhaitez utiliser un objet lob, vous pouvez utiliser
// cubrid_fetch_row($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Voir aussi

  • cubrid_execute() - Exécute une requête SQL préparée
  • cubrid_fetch() - Récupère la prochaine ligne du jeu de résultats
  • cubrid_fetch_array() - Récupère une ligne de résultat sous forme de tableau associatif, de tableau numérique, ou les deux
  • cubrid_fetch_assoc() - Retourne un tableau associatif correspondant à la ligne récupérée
  • cubrid_fetch_object() - Récupère la prochaine ligne et la retourne sous la forme d'un objet


Retourne une chaîne avec les drapeaux de la position du champ fourni

  • « cubrid_fetch_row
  • cubrid_field_len »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Retourne une chaîne avec les drapeaux de la position du champ fourni

cubrid_field_flags

(PECL CUBRID >= 8.3.0)

cubrid_field_flags — Retourne une chaîne avec les drapeaux de la position du champ fourni

Description

string cubrid_field_flags ( resource $result , int $field_offset )

Cette fonction retourne une chaîne de caractères avec les drapeaux de la position du champ fourni, séparés par un espace. Vous pouvez utiliser la fonction explode() pour récupérer chaque drapeau. Les drapeaux disponibles sont : not_null, primary_key, unique_key, foreign_key, auto_increment, shared, reverse_index, reverse_unique et timestamp.

Liste de paramètres

result

Le paramètre result provient de l'appel à la fonction cubrid_execute()

field_offset

La position numérique du champ. field_offset commence à zéro (0). Si field_offset n'existe pas, une erreur de niveau E_WARNING sera également émise.

Valeurs de retour

Une chaîne de caractères avec les drapeaux, en cas de succès.

FALSE si la valeur de field_offset est invalide.

-1 si la requête SQL n'est pas de type SELECT.

Exemples

Exemple #1 Exemple avec cubrid_field_flags()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$col_num = cubrid_num_cols($result);

printf("%-30s %s\n", "Field Name", "Field Flags");
for($i = 0; $i < $col_num; $i++) {
    printf("%-30s %s\n", cubrid_field_name($result, $i), cubrid_field_flags($result, $i));
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Field Name                     Field Flags
host_year                      not_null primary_key unique_key
event_code                     not_null primary_key unique_key foreign_key
athlete_code                   not_null primary_key unique_key foreign_key
stadium_code                   not_null
nation_code
medal
game_date


Récupère la longueur maximale du champ spécifié

  • « cubrid_field_flags
  • cubrid_field_name »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Récupère la longueur maximale du champ spécifié

cubrid_field_len

(PECL CUBRID >= 8.3.0)

cubrid_field_len — Récupère la longueur maximale du champ spécifié

Description

int cubrid_field_len ( resource $result , int $field_offset )

Cette fonction retourne la longueur maximale du champ spécifié en cas de succès, ou FALSE si une erreur survient.

Liste de paramètres

result

Le paramètre result provient de l'appel à la fonction cubrid_execute()

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une erreur de niveau E_WARNING sera également émise.

Valeurs de retour

La longueur maximale, en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_field_len()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Maxlen");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
    $column_len = cubrid_field_len($result, $i);
    printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Column Names                   Column Types                   Column Maxlen
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10


Retourne le nom du champ spécifié

  • « cubrid_field_len
  • cubrid_field_seek »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Retourne le nom du champ spécifié

cubrid_field_name

(PECL CUBRID >= 8.3.0)

cubrid_field_name — Retourne le nom du champ spécifié

Description

string cubrid_field_name ( resource $result , int $field_offset )

Cette fonction retourne le nom du champ spécifié par son index en cas de succès, ou FALSE si une erreur survient.

Liste de paramètres

result

Le paramètre result provient de l'appel à la fonction cubrid_execute()

field_offset

La position numérique du champ. field_offset commence à zéro (0). Si field_offset n'existe pas, une erreur de niveau E_WARNING sera également émise.

Valeurs de retour

Nom du champ spécifié par son index en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_field_name()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$col_num = cubrid_num_cols($result);

printf("%-30s %s\n", "Field Name", "Field Flags");
for($i = 0; $i < $col_num; $i++) {
    printf("%-30s %s\n", cubrid_field_name($result, $i), cubrid_field_flags($result, $i));
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Field Name                     Field Flags
host_year                      not_null primary_key unique_key
event_code                     not_null primary_key unique_key foreign_key
athlete_code                   not_null primary_key unique_key foreign_key
stadium_code                   not_null
nation_code
medal
game_date


Déplace le curseur du jeu de résultats à une position spécifiée

  • « cubrid_field_name
  • cubrid_field_table »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Déplace le curseur du jeu de résultats à une position spécifiée

cubrid_field_seek

(PECL CUBRID >= 8.3.0)

cubrid_field_seek — Déplace le curseur du jeu de résultats à une position spécifiée

Description

bool cubrid_field_seek ( resource $result [, int $field_offset = 0 ] )

Cette fonction déplace le curseur du jeu de résultats à une position spécifiée. La position est utilisée par la fonction cubrid_fetch_field() si elle n'inclut pas une position de champ. La fonction retourne TRUE en cas de succès, FALSE sinon.

Liste de paramètres

result

Le paramètre result provient de l'appel à la fonction cubrid_execute()

field_offset

La position numérique du champ. field_offset commence à zéro (0). Si field_offset n'existe pas, une erreur de niveau E_WARNING sera également émise.

Valeurs de retour

TRUE en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_field_seek()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT event_code,athlete_code,nation_code,game_date FROM game WHERE host_year=1988 and event_code=20001;");

var_dump(cubrid_fetch_row($req));

cubrid_field_seek($req, 1);
$field = cubrid_fetch_field($req);

printf("\n--- Field Properties ---\n");
printf("%-30s %s\n", "name:", $field->name);
printf("%-30s %s\n", "table:", $field->table);
printf("%-30s \"%s\"\n", "default value:", $field->def);
printf("%-30s %d\n", "max length:", $field->max_length);
printf("%-30s %d\n", "not null:", $field->not_null);
printf("%-30s %d\n", "unique key:", $field->unique_key);
printf("%-30s %d\n", "multiple key:", $field->multiple_key);
printf("%-30s %d\n", "numeric:", $field->numeric);
printf("%-30s %s\n", "type:", $field->type);

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(5) "20001"
  [1]=>
  string(5) "16132"
  [2]=>
  string(3) "KOR"
  [3]=>
  string(9) "1988-09-30"
}

--- Field Properties ---
name:                          athlete_code
table:                         game
default value:                 ""
max length:                    0
not null:                      1
unique key:                    1
multiple key:                  0
numeric:                       1
type:                          integer


Retourne le nom de la table d'un champ spécifié

  • « cubrid_field_seek
  • cubrid_field_type »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Retourne le nom de la table d'un champ spécifié

cubrid_field_table

(PECL CUBRID >= 8.3.0)

cubrid_field_table — Retourne le nom de la table d'un champ spécifié

Description

string cubrid_field_table ( resource $result , int $field_offset )

Cette fonction retourne le nom de la table d'un champ spécifié. Ceci est utile lors de l'utilisation d'une requête SELECT volumineuses avec des jointures.

Liste de paramètres

result

Type du tableau des résultats retournés : CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH.

field_offset

La position numérique du champ. field_offset commence à zéro (0). Si field_offset n'existe pas, une erreur de niveau E_WARNING sera également émise.

Valeurs de retour

Nom de la table du champ spécifié, en cas de succès.

FALSE when invalid field_offset value.

-1 si la requête SQL n'est pas de type SELECT.

Exemples

Exemple #1 Exemple avec cubrid_field_table()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM code");

$col_num = cubrid_num_cols($result);

printf("%-15s %-15s %s\n", "Field Table", "Field Name", "Field Type");
for($i = 0; $i < $col_num; $i++) {
    printf("%-15s %-15s %s\n",
        cubrid_field_table($result, $i), cubrid_field_name($result, $i), cubrid_field_type($result, $i));
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Field Table     Field Name      Field Type
code            s_name          char
code            f_name          varchar


Retourne le type de la colonne correspondant à la position du champ fourni

  • « cubrid_field_table
  • cubrid_list_dbs »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Retourne le type de la colonne correspondant à la position du champ fourni

cubrid_field_type

(PECL CUBRID >= 8.3.0)

cubrid_field_type — Retourne le type de la colonne correspondant à la position du champ fourni

Description

string cubrid_field_type ( resource $result , int $field_offset )

Cette fonction retourne le type de la colonne correspondant à la position du champ fourni. Le type du champ retourné peut être un parmi les suivants : "int", "real", "string", etc.

Liste de paramètres

result

Type du tableau du résultat récupéré : CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH.

field_offset

Position numérique du champ. le paramètre field_offset commence à zéro (0). Si field_offset n'existe pas, une erreur de niveau E_WARNING sera également émise.

Valeurs de retour

Le type de la colonne en cas de succès.

FALSE Lorsque la valeur de field_offset est invalide.

-1 si la requête SQL n'est pas de type SELECT.

Exemples

Exemple #1 Exemple avec cubrid_field_type()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM code");

$col_num = cubrid_num_cols($result);

printf("%-15s %-15s %s\n", "Field Table", "Field Name", "Field Type");
for($i = 0; $i < $col_num; $i++) {
    printf("%-15s %-15s %s\n",
        cubrid_field_table($result, $i), cubrid_field_name($result, $i), cubrid_field_type($result, $i));
}

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Field Table     Field Name      Field Type
code            s_name          char
code            f_name          varchar


Retourne un tableau contenant la liste de toutes les bases de données CUBRID existantes

  • « cubrid_field_type
  • cubrid_num_fields »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Retourne un tableau contenant la liste de toutes les bases de données CUBRID existantes

cubrid_list_dbs

(PECL CUBRID >= 8.3.0)

cubrid_list_dbs — Retourne un tableau contenant la liste de toutes les bases de données CUBRID existantes

Description

array cubrid_list_dbs ([ resource $conn_identifier ] )

Cette fonction retourne un tableau contenant la liste de toutes les bases de données CUBRID existantes.

Liste de paramètres

conn_identifier

Identifiant de connexion CUBRID.

Valeurs de retour

Un tableau numérique contenant toutes les bases de données CUBRID existantes en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_list_dbs()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$db_list = cubrid_list_dbs($conn);
var_dump($db_list);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(1) {
  [0]=>
  string(6) "demodb"
}


Retourne le nombre de colonnes dans le jeu de résultats

  • « cubrid_list_dbs
  • cubrid_ping »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Retourne le nombre de colonnes dans le jeu de résultats

cubrid_num_fields

(PECL CUBRID >= 8.3.0)

cubrid_num_fields — Retourne le nombre de colonnes dans le jeu de résultats

Description

int cubrid_num_fields ( resource $result )

Cette fonction retourne le nombre de colonnes dans le jeu de résultats en cas de succès, ou FALSE si une erreur survient.

Liste de paramètres

result

Le paramètre result provient
      d'un appel à la fonction cubrid_execute(),
      cubrid_query() ou
      cubrid_prepare()

Valeurs de retour

Nombre de colonnes en cas de succès.

-1 si la requête SQL n'est pas de type SELECT.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_num_fields()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_fields($req);

printf("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

Row Num: 6
Column Num: 2


Ping une connexion au serveur ou se reconnecte s'il n'y a plus de connexion active

  • « cubrid_num_fields
  • cubrid_query »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Ping une connexion au serveur ou se reconnecte s'il n'y a plus de connexion active

cubrid_ping

(PECL CUBRID >= 8.3.1)

cubrid_ping — Ping une connexion au serveur ou se reconnecte s'il n'y a plus de connexion active

Description

bool cubrid_ping ([ resource $conn_identifier ] )

Vérifie si la connexion au serveur est toujours active.

Liste de paramètres

conn_identifier

L'identifiant de connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

Retourne TRUE si la connexion au serveur CUBRID est active, FALSE sinon.

Exemples

Exemple #1 Exemple avec cubrid_ping()

<?php
set_time_limit(0);

$conn = cubrid_connect('localhost', 33000, 'demodb');

/* Supposons que la requête prend beaucoup de temps */
$sql = "select * from athlete";
$result = cubrid_query($sql);
if (!$result) {
    echo 'La requête #1 a échoué, on sort.';
    exit;
}

/* Assurons-nous que la connexion est toujours active, sinon, on se reconnecte */
if (!cubrid_ping($conn)) {
    echo 'Connexion perdue, on sort après la requête #1';
    exit;
}
cubrid_free_result($result);

/* La connexion est toujours active, on peut exécuter une autre requête */
$sql2 = "select * from code";
$result2 = cubrid_query($sql2);
?>


Envoi une requête CUBRID

  • « cubrid_ping
  • cubrid_real_escape_string »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Envoi une requête CUBRID

cubrid_query

(PECL CUBRID >= 8.3.1)

cubrid_query — Envoi une requête CUBRID

Description

resource cubrid_query ( string $query [, resource $conn_identifier ] )

La fonction cubrid_query() envoie une seule requête (l'envoi de plusieurs requête n'est pas supporté) à la base de données active sur le serveur associé avec le paramètre conn_identifier fourni.

Liste de paramètres

query

Une requête SQL

Les données de la requête doivent être proprement échappées.

conn_identifier

La connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

Pour les requête de type SELECT, SHOW, DESCRIBE, EXPLAIN et autres requêtes retournant un jeu de résultats, cubrid_query() retourne une ressource en cas de succès, ou FALSE si une erreur survient.

Pour les autres requêtes (INSERT, UPDATE, DELETE, DROP, etc.), cubrid_query() retourne TRUE en cas de succès, ou FALSE si une erreur survient.

La ressource de résultats retournée doit être passée à la fonction cubrid_fetch_array(), et autres fonctions gérants les ressources de résultats, afin d'accéder aux données retournées.

Utilisez la fonction cubrid_num_rows() pour trouver le nombre de lignes retournées par une requête SELECT ou la fonction cubrid_affected_rows() afin de savoir le nombre de lignes affectées par une requête DELETE, INSERT, REPLACE, ou UPDATE.

La fonction cubrid_query() échouera et retournera FALSE si l'utilisateur n'a pas l'autorisation d'accéder à la table utilisée dans la requête.

Exemples

Exemple #1 Requête invalide

La requête suivante n'est littéralement pas valide, aussi, la fonction cubrid_query() échouera et retournera FALSE.

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb');

$result = cubrid_query('SELECT * WHERE 1=1');
if (!$result) {
    die('Requête invalide : ' . cubrid_error());
}

?>

Exemple #2 Requête valide

La requête suivante est valide, aussi, la fonction cubrid_query() retournera une ressource.

<?php
// Ces variables pourraient être fournis par un utilisateur, par exemple
$firstname = 'fred';
$lastname  = 'fox';

$conn = cubrid_connect('localhost', 33000, 'demodb');

cubrid_execute($conn,"DROP TABLE if exists friends");
cubrid_execute($conn,"create table friends(firstname varchar,lastname varchar,address char(24),age int)");
cubrid_execute($conn,"insert into friends values('fred','fox','home-1','20')");
cubrid_execute($conn,"insert into friends values('blue','cat','home-2','21')");

// Requête formelle
// C'est la meilleure façon d'exécuter une requête SQL
// Pour plus d'exemples, voir la fonction cubrid_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
cubrid_real_escape_string($firstname),
cubrid_real_escape_string($lastname));

// Exécution de la requête
$result = cubrid_query($query);

// Vérifie le résultat
// Montre la requête envoyée à CUBRID, et l'erreur. Utile pour le débogage.
if (!$result) {
    $message  = 'Requête invalide : ' . cubrid_error() . "\n";
    $message .= 'Requête complète : ' . $query;
    die($message);
}

// Utilisation du résultat
// Le fait de tenter d'afficher $result ne vous donnera pas accès à l'information de la ressource
// Une des fonctions de traitement des résultats CUBRID doit être utilisée
// Voir aussi cubrid_result(), cubrid_fetch_array(), cubrid_fetch_row(), etc.
while ($row = cubrid_fetch_assoc($result)) {
    echo $row['firstname'];
    echo $row['lastname'];
    echo $row['address'];
    echo $row['age'];
}

// Libère les ressources associées avec le jeu de résultats
// Ceci est fait automatiquement à la fin du script
cubrid_free_result($result);
?>

Voir aussi

  • cubrid_connect() - Ouvre une connexion au serveur CUBRID
  • cubrid_error() - Récupère le message de l'erreur
  • cubrid_real_escape_string() - Échappe les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL
  • cubrid_result() - Retourne la valeur d'un champ d'une ligne spécifique
  • cubrid_fetch_assoc() - Retourne un tableau associatif correspondant à la ligne récupérée
  • cubrid_unbuffered_query() - Exécute une requête sans placer les résultats en mémoire vive


Échappe les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL

  • « cubrid_query
  • cubrid_result »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Échappe les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL

cubrid_real_escape_string

(PECL CUBRID >= 8.3.0)

cubrid_real_escape_string — Échappe les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL

Description

string cubrid_real_escape_string ( string $unescaped_string [, resource $conn_identifier ] )

Cette fonction retourne la version échappée de la chaîne fournie. Elle ajoute des anti-slashes aux caractères suivants : '. En général, les guillemets simples sont utilisés pour entourer la chaîne. Les doubles guillemets peuvent être utilisés également suivant la valeur de ansi_quotes, qui est un paramètre des requêtes SQL. Si la valeur de ansi_quotes est "no", les guillemets doubles seront gérés comme un caractère de la chaîne et non un identifiant. La valeur par défaut est "yes". Si vous voulez inclure un guillemet simple comme caractère d'une chaîne, vous devez le spécifier 2 fois.

Liste de paramètres

unescaped_string

La chaîne de caractères à échapper.

conn_identifier

L'identifiant de connexion CUBRID. Si l'identifiant de connexion n'est pas spécifiée, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

La version échappée de la chaîne de caractères fournie en cas de succès.

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_real_escape_string()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$unescaped_str = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
$escaped_str = cubrid_real_escape_string($unescaped_str);

$len = strlen($unescaped_str);

@cubrid_execute($conn, "DROP TABLE cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (t char($len))");
cubrid_execute($conn, "INSERT INTO cubrid_test (t) VALUES('$escaped_str')");

$req = cubrid_execute($conn, "SELECT * FROM cubrid_test");
$row = cubrid_fetch_assoc($req);

var_dump($row);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["t"]=>
  string(95) " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
}


Retourne la valeur d'un champ d'une ligne spécifique

  • « cubrid_real_escape_string
  • cubrid_unbuffered_query »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Retourne la valeur d'un champ d'une ligne spécifique

cubrid_result

(PECL CUBRID >= 8.3.0)

cubrid_result — Retourne la valeur d'un champ d'une ligne spécifique

Description

string cubrid_result ( resource $result , int $row [, mixed $field = 0 ] )

Cette fonction retourne la valeur d'un champ spécifique d'une ligne spécifique depuis un jeu de résultats.

Liste de paramètres

result

Le paramètre result provient d'un appel à la fonction cubrid_execute()

row

Le numéro de la ligne depuis le résultat à récupérer. Ce numéro commence à partir de 0.

field

Le nom ou la position du champ field à récupérer. Ce peut être la position du champ, son nom, ou le nom de la table suivi d'un point, suivi du nom du champ (tablename.fieldname). Si le nom de la colonne est un alias ('select foo as bar from...'), utilisez l'alias au lieu du nom de la colonne. Si non défini, le premier champ sera récupéré.

Valeurs de retour

La valeur du champ spécifié en cas de succès (NULL si la valeur est NULL).

FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec cubrid_result()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM code");

$result = cubrid_result($req, 0);
var_dump($result);

$result = cubrid_result($req, 0, 1);
var_dump($result);

$result = cubrid_result($req, 5, "f_name");
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

L'exemple ci-dessus va afficher :

string(1) "X"
string(5) "Mixed"
string(4) "Gold"


Exécute une requête sans placer les résultats en mémoire vive

  • « cubrid_result
  • Fonctions et alias CUBRID obsolètes »
  • PHP Manual
  • Fonctions CUBRID compatibles MySQL
  • Exécute une requête sans placer les résultats en mémoire vive

cubrid_unbuffered_query

(PECL CUBRID >= 8.3.0)

cubrid_unbuffered_query — Exécute une requête sans placer les résultats en mémoire vive

Description

resource cubrid_unbuffered_query ( string $query [, resource $conn_identifier ] )

Cette fonction exécute une requête sans attendre que tous les résultats ait été récupérés. La fonction retournera lorsque les résultats seront générés.

Liste de paramètres

query

Une requête SQL.

conn_identifier

Identifiant de connexion. Si non fourni, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.

Valeurs de retour

Pour les requêtes de type SELECT, SHOW, DESCRIBE ou EXPLAIN, la fonction retournera une ressource d'identifiant de requête en cas de succès.

Pour les autres types de requêtes SQL (UPDATE, DELETE, DROP, etc.), la fonction retournera TRUE en cas de succès.

FALSE si une erreur survient.

Notes

Note:

Les bénéfices de la fonction cubrid_unbuffered_query() ont un prix : vous ne pouvez pas utiliser cubrid_num_rows() et cubrid_data_seek() sur le jeu de résultats retourné depuis cubrid_unbuffered_query().

Exemples

Exemple #1 Exemple avec cubrid_unbuffered_query()

<?php
    $link = cubrid_connect("localhost", 30000, "demodb", "dba", "");
    if (!$link)
    {
        die('Could not connect.');
    }
    $query = "select * from code";
    $result = cubrid_unbuffered_query($query, $link);

    while ($row = cubrid_fetch($result))
    {
        var_dump($row);
    }

    cubrid_close_request($result);
    cubrid_disconnect($link);
?>


Fonctions et alias CUBRID obsolètes

Sommaire

  • cubrid_load_from_glo — Lie une donnée
  • cubrid_new_glo — Crée une instance glo
  • cubrid_save_to_glo — Sauvegarde un fichier dans une instance glo
  • cubrid_send_glo — Lit les données depuis une instance glo


Lie une donnée

  • « Fonctions et alias CUBRID obsolètes
  • cubrid_new_glo »
  • PHP Manual
  • Fonctions et alias CUBRID obsolètes
  • Lie une donnée

cubrid_load_from_glo

(PECL CUBRID >= 8.3.0)

cubrid_load_from_glo — Lie une donnée

Description

int cubrid_load_from_glo ( resource $conn_identifier , string $oid , string $file_name )

La fonction cubrid_load_from_glo() est utilisée pour lire une donnée depuis une instance glo, et la sauvegarde dans un fichier donné.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

Oid de l'instance glo depuis laquelle vous voulez lire la donnée.

file_name

Nom du fichier où la sauvegarde de la donnée doit s'effectuer.

Valeurs de retour

TRUE lorsque le processus est un succès.

FALSE lorsque le processus a échoué.

Exemples

Exemple #1 Exemple avec cubrid_load_from_glo()

<?php
$req = cubrid_execute ($con, "select image from person where id=1");
if ($req) {
   list ($oid) = cubrid_fetch($req);
   cubrid_close_request($req);
   $res = cubrid_load_from_glo ($con, $oid, "output.jpg");
   if ($res) {
      echo "image changée avec succès";
   }
}
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : cubrid_load_from_glo()

Note:

Cette fonction a été supprimée depuis CUBRID 3.1.

Voir aussi

  • cubrid_new_glo() - Crée une instance glo
  • cubrid_save_to_glo() - Sauvegarde un fichier dans une instance glo
  • cubrid_send_glo() - Lit les données depuis une instance glo


Crée une instance glo

  • « cubrid_load_from_glo
  • cubrid_save_to_glo »
  • PHP Manual
  • Fonctions et alias CUBRID obsolètes
  • Crée une instance glo

cubrid_new_glo

(PECL CUBRID >= 8.3.0)

cubrid_new_glo — Crée une instance glo

Description

string cubrid_new_glo ( resource $conn_identifier , string $class_name , string $file_name )

La fonction cubrid_new_glo() est utilisée pour créer une instance glo dans la classe demandée (classe glo). Le glo créé est de type LO, et est stocké dans le fichier file_name.

Liste de paramètres

conn_identifier

Identifiant de connexion.

class_name

Nom de la classe dans laquelle vous voulez créer le glo.

file_name

Le nom du fichier dans lequel vous voulez sauvegarder le nouveau glo créé.

Valeurs de retour

OID de l'instance créée en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_new_glo()

<?php
$oid = cubrid_new_glo ($con, "glo", "input.jpg");
if ($oid){
   // Le type de la colonne "image" est "object"
   $req = cubrid_execute ($con, "insert into person(image) values($oid)");
   if ($req) {
      echo "image insérée avec succès";
      cubrid_close_request ($req);
      cubrid_commit($con);
   }
}
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : cubrid_new_glo()

Note:

Cette fonction a été supprimée depuis CUBRID 3.1.

Voir aussi

  • cubrid_save_to_glo() - Sauvegarde un fichier dans une instance glo
  • cubrid_load_from_glo() - Lie une donnée
  • cubrid_send_glo() - Lit les données depuis une instance glo


Sauvegarde un fichier dans une instance glo

  • « cubrid_new_glo
  • cubrid_send_glo »
  • PHP Manual
  • Fonctions et alias CUBRID obsolètes
  • Sauvegarde un fichier dans une instance glo

cubrid_save_to_glo

(PECL CUBRID >= 8.3.0)

cubrid_save_to_glo — Sauvegarde un fichier dans une instance glo

Description

int cubrid_save_to_glo ( resource $conn_identifier , string $oid , string $file_name )

La fonction cubrid_save_to_glo() est utilisée pour sauvegarder un fichier dans une instance glo.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

Oid de l'instance glo dans laquelle le fichier sera sauvegardé.

file_name

Le nom du fichier à sauvegarder.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_save_to_glo()

<?php
$req = cubrid_execute ($con, "select image from person where id=1");
if ($req) {
   list ($oid) = cubrid_fetch($req);
   cubrid_close_request($req);
   $res = cubrid_save_to_glo ($con, $oid, "input.jpg");
   if ($res) {
      echo "image changée avec succès";
   }
}
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : cubrid_save_to_glo()

Note:

Cette fonction a été supprimée depuis CUBRID 3.1.

Voir aussi

  • cubrid_new_glo() - Crée une instance glo
  • cubrid_load_from_glo() - Lie une donnée
  • cubrid_send_glo() - Lit les données depuis une instance glo


Lit les données depuis une instance glo

  • « cubrid_save_to_glo
  • DB++ »
  • PHP Manual
  • Fonctions et alias CUBRID obsolètes
  • Lit les données depuis une instance glo

cubrid_send_glo

(PECL CUBRID >= 8.3.0)

cubrid_send_glo — Lit les données depuis une instance glo

Description

int cubrid_send_glo ( resource $conn_identifier , string $oid )

La fonction cubrid_send_glo() est utilisée pour lire les données depuis une instance glo et les envoie à la sortie standard de PHP.

Liste de paramètres

conn_identifier

Identifiant de connexion.

oid

Oid de l'instance glo depuis laquelle les données sont lues.

Valeurs de retour

TRUE en cas de succès.

FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec cubrid_send_glo()

<?php
$req = cubrid_execute ($con, "select image from person where id =1");
if ($req) {
  list ($oid) = cubrid_fetch($req);
  cubrid_close_request($req);
  Header ("Content-type: image/jpeg");
  cubrid_send_glo ($con, $oid);
}
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : cubrid_send_glo()

Note:

Cette fonction a été supprimée depuis CUBRID 3.1.

Voir aussi

  • cubrid_new_glo() - Crée une instance glo
  • cubrid_save_to_glo() - Sauvegarde un fichier dans une instance glo
  • cubrid_load_from_glo() - Lie une donnée


DB++

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
    • Codes d'erreurs de DB++
  • Fonctions DB++
    • dbplus_add — Ajoute une ligne à une relation
    • dbplus_aql — Exécute une requête AQL
    • dbplus_chdir — Lit/Modifie le chemin du dossier virtuel courant vers la base de données
    • dbplus_close — Ferme une relation
    • dbplus_curr — Lit la ligne courante depuis une relation
    • dbplus_errcode — Récupère le message d'erreur pour le code erreur fourni ou pour la dernière erreur survenue
    • dbplus_errno — Lit le code d'erreur généré par la dernière opération
    • dbplus_find — Ajoute une contrainte sur une relation
    • dbplus_first — Lit la première ligne d'une relation
    • dbplus_flush — Écrit toutes les modifications apportées à une relation
    • dbplus_freealllocks — Libère tous les verrous posés par le client
    • dbplus_freelock — Lève un verrou en écriture sur une ligne
    • dbplus_freerlocks — Lève tous les verrous sur les lignes d'une relation
    • dbplus_getlock — Pose un verrou sur une ligne
    • dbplus_getunique — Retourne un identifiant unique pour une relation
    • dbplus_info — Récupère les informations sur une relation
    • dbplus_last — Lit la dernière ligne d'une relation
    • dbplus_lockrel — Pose un verrou en écriture sur une relation
    • dbplus_next — Lit la ligne suivante dans la relation
    • dbplus_open — Ouvre un fichier de relation
    • dbplus_prev — Lit la ligne précédente dans la relation
    • dbplus_rchperm — Modifie les droits sur la relation
    • dbplus_rcreate — Crée une nouvelle relation DB++
    • dbplus_rcrtexact — Crée une copie exacte mais vide d'une relation
    • dbplus_rcrtlike — Crée une copie vide d'une relation avec les index
    • dbplus_resolve — Résout les informations d'hôte pour une relation
    • dbplus_restorepos — Restaure la position
    • dbplus_rkeys — Spécifie la nouvelle clé primaire d'une relation
    • dbplus_ropen — Ouvre un fichier de relation local
    • dbplus_rquery — Accomplit une requête AQL locale
    • dbplus_rrename — Renomme une relation
    • dbplus_rsecindex — Crée un nouvel index secondaire pour une relation
    • dbplus_runlink — Détruit une relation
    • dbplus_rzap — Supprime toutes les lignes d'une relation
    • dbplus_savepos — Sauvegarde la position
    • dbplus_setindex — Définie l'index
    • dbplus_setindexbynumber — Définie l'index par un nombre
    • dbplus_sql — Exécute une requête SQL
    • dbplus_tcl — Exécute du code TCL côté serveur
    • dbplus_tremove — Supprime la ligne courante et retourne la nouvelle ligne courante
    • dbplus_undo — Annule
    • dbplus_undoprepare — Prépare l'annulation
    • dbplus_unlockrel — Libère un verrou en écriture posé sur une relation
    • dbplus_unselect — Retire une contrainte d'une relation
    • dbplus_update — Modifie une ligne dans une relation
    • dbplus_xlockrel — Pose un verrou exclusif sur une relation
    • dbplus_xunlockrel — Lève un verrou exclusif posé sur une relation


Introduction

db++, conçu par une compagnie allemande » Concept asa, est un système de base de données relationnelles avec de hautes performances et une basse utilisation de la mémoire, et en gardant à l'esprit l'utilisation du disque. En fournissant le SQL comme langage additionnel, db++ n'est pas réellement une base de données SQL, mais fournit son propre langage de requête AQL, qui est plus influencé par l'algèbre relationnel que SQL.

Concept asa a toujours souhaité supporter les langages open source ; db++ a des interfaces Perl et Tcl depuis plusieurs années, et utilise Tcl comme son langage de procédure stockée interne.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.


Pré-requis

Cette extension utilise des bibliothèques clientes externes ; vous devez installer le client db++ sur votre système afin d'y utiliser cette extension.

» Concept asa fournit des versions » de démo de db++ ainsi qu'une » documentation pour Linux et quelques autres Unix. Il y a également une version Windows de db++, mais cette extension ne la supporte pas (encore).


Installation

Pour compiler cette extension vous-même, vous devez avoir les bibliothèques clients et les fichiers d'en-têtes installés sur le système (ils sont inclus dans la distribution de DB++ par défaut). Exécutez la commande configure avec l'option --with-dbplus pour inclure cette extension dans PHP.

configure recherche les bibliothèques clients et les fichiers d'en-têtes dans les dossiers suivants : /usr/dbplus, /usr/local/dbplus et /opt/dbplus. Si vous avez installé DB++ dans un autre dossier, indiquez le chemin de ce dossier dans l'option de configure comme ceci : --with-dbplus=/votre/dossier/installation .


Types de ressources

dbplus_relation

La plupart des fonctions db++ opèrent ou retournent des ressources dbplus_relation. dbplus_relation est un gestionnaire de relation stockée ou de relation générée, comme résultat d'une requête.


Constantes pré-définies

Sommaire

  • Codes d'erreurs de DB++

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.


Codes d'erreurs de DB++

Codes d'erreurs de DB++
Constante PHP | Constante DB++ | Description
DBPLUS_ERR_NOERR (entier) | ERR_NOERR | Condition d'erreur Null
DBPLUS_ERR_DUPLICATE (entier) | ERR_DUPLICATE | Tentative d'insertion d'un doublon
DBPLUS_ERR_EOSCAN (entier) | ERR_EOSCAN | Fin de scan rget()
DBPLUS_ERR_EMPTY (entier) | ERR_EMPTY | Relation vide (serveur)
DBPLUS_ERR_CLOSE (entier) | ERR_CLOSE | Le serveur ne peut fermer
DBPLUS_ERR_WLOCKED (entier) | ERR_WLOCKED | La ligne est verrouillée en écriture
DBPLUS_ERR_LOCKED (entier) | ERR_LOCKED | La relation est déjà verrouillée
DBPLUS_ERR_NOLOCK (entier) | ERR_NOLOCK | La relation ne peut être verrouillée
DBPLUS_ERR_READ (entier) | ERR_READ | Erreur de lecture sur la relation
DBPLUS_ERR_WRITE (entier) | ERR_WRITE | Erreur d'écriture sur la relation
DBPLUS_ERR_CREATE (entier) | ERR_CREATE | La fonction système Create() a échoué
DBPLUS_ERR_LSEEK (entier) | ERR_LSEEK | La fonction système lseek() a échoué
DBPLUS_ERR_LENGTH (entier) | ERR_LENGTH | La ligne excède la taille maximale
DBPLUS_ERR_OPEN (entier) | ERR_OPEN | La fonction système Open() a échoué
DBPLUS_ERR_WOPEN (entier) | ERR_WOPEN | La relation est déjà ouverte en lecture
DBPLUS_ERR_MAGIC (entier) | ERR_MAGIC | Le fichier n'est pas une relation
DBPLUS_ERR_VERSION (entier) | ERR_VERSION | Le fichier est une très vieille relation
DBPLUS_ERR_PGSIZE (entier) | ERR_PGSIZE | La relation utilise une page de taille différente
DBPLUS_ERR_CRC (entier) | ERR_CRC | CRC invalide de la super-page
DBPLUS_ERR_PIPE (entier) | ERR_PIPE | Une relation pipée requiert lseek()
DBPLUS_ERR_NIDX (entier) | ERR_NIDX | Trop d'index secondaires
DBPLUS_ERR_MALLOC (entier) | ERR_MALLOC | L'appel à malloc() a échoué
DBPLUS_ERR_NUSERS (entier) | ERR_NUSERS | Erreur lors de l'utilisation du nombre maximal d'utilisateurs
DBPLUS_ERR_PREEXIT (entier) | ERR_PREEXIT | Causée par une utilisation invalide
DBPLUS_ERR_ONTRAP (entier) | ERR_ONTRAP | Causée par un signal
DBPLUS_ERR_PREPROC (entier) | ERR_PREPROC | Erreur dans le préprocesseur
DBPLUS_ERR_DBPARSE (entier) | ERR_DBPARSE | Erreur dans l'analyseur
DBPLUS_ERR_DBRUNERR (entier) | ERR_DBRUNERR | Erreur durant l'exécution
DBPLUS_ERR_DBPREEXIT (entier) | ERR_DBPREEXIT | La condition d'exit a été causée par la procédure prexit()
DBPLUS_ERR_WAIT (entier) | ERR_WAIT | Attend un peu (Simple seulement)
DBPLUS_ERR_CORRUPT_TUPLE (entier) | ERR_CORRUPT_TUPLE | Un client a envoyé une ligne corrompue
DBPLUS_ERR_WARNING0 (entier) | ERR_WARNING0 | Les routines Simple ont rencontré une erreur non fatale, qui a été corrigée.
DBPLUS_ERR_PANIC (entier) | ERR_PANIC | Le serveur ne devrait pas s'arrêter, mais, après un désastre, envoyer ERR_PANIC à tout ses clients
DBPLUS_ERR_FIFO (entier) | ERR_FIFO | Impossible de créer une pile FIFO
DBPLUS_ERR_PERM (entier) | ERR_PERM | Permission refusée
DBPLUS_ERR_TCL (entier) | ERR_TCL | TCL_error
DBPLUS_ERR_RESTRICTED (entier) | ERR_RESTRICTED | Seulement deux utilisateurs
DBPLUS_ERR_USER (entier) | ERR_USER | Une erreur est survenue dans l'utilisation de la bibliothèque par l'application.
DBPLUS_ERR_UNKNOWN (entier) | ERR_UNKNOWN | Erreur inconnue


Fonctions DB++

Sommaire

  • dbplus_add — Ajoute une ligne à une relation
  • dbplus_aql — Exécute une requête AQL
  • dbplus_chdir — Lit/Modifie le chemin du dossier virtuel courant vers la base de données
  • dbplus_close — Ferme une relation
  • dbplus_curr — Lit la ligne courante depuis une relation
  • dbplus_errcode — Récupère le message d'erreur pour le code erreur fourni ou pour la dernière erreur survenue
  • dbplus_errno — Lit le code d'erreur généré par la dernière opération
  • dbplus_find — Ajoute une contrainte sur une relation
  • dbplus_first — Lit la première ligne d'une relation
  • dbplus_flush — Écrit toutes les modifications apportées à une relation
  • dbplus_freealllocks — Libère tous les verrous posés par le client
  • dbplus_freelock — Lève un verrou en écriture sur une ligne
  • dbplus_freerlocks — Lève tous les verrous sur les lignes d'une relation
  • dbplus_getlock — Pose un verrou sur une ligne
  • dbplus_getunique — Retourne un identifiant unique pour une relation
  • dbplus_info — Récupère les informations sur une relation
  • dbplus_last — Lit la dernière ligne d'une relation
  • dbplus_lockrel — Pose un verrou en écriture sur une relation
  • dbplus_next — Lit la ligne suivante dans la relation
  • dbplus_open — Ouvre un fichier de relation
  • dbplus_prev — Lit la ligne précédente dans la relation
  • dbplus_rchperm — Modifie les droits sur la relation
  • dbplus_rcreate — Crée une nouvelle relation DB++
  • dbplus_rcrtexact — Crée une copie exacte mais vide d'une relation
  • dbplus_rcrtlike — Crée une copie vide d'une relation avec les index
  • dbplus_resolve — Résout les informations d'hôte pour une relation
  • dbplus_restorepos — Restaure la position
  • dbplus_rkeys — Spécifie la nouvelle clé primaire d'une relation
  • dbplus_ropen — Ouvre un fichier de relation local
  • dbplus_rquery — Accomplit une requête AQL locale
  • dbplus_rrename — Renomme une relation
  • dbplus_rsecindex — Crée un nouvel index secondaire pour une relation
  • dbplus_runlink — Détruit une relation
  • dbplus_rzap — Supprime toutes les lignes d'une relation
  • dbplus_savepos — Sauvegarde la position
  • dbplus_setindex — Définie l'index
  • dbplus_setindexbynumber — Définie l'index par un nombre
  • dbplus_sql — Exécute une requête SQL
  • dbplus_tcl — Exécute du code TCL côté serveur
  • dbplus_tremove — Supprime la ligne courante et retourne la nouvelle ligne courante
  • dbplus_undo — Annule
  • dbplus_undoprepare — Prépare l'annulation
  • dbplus_unlockrel — Libère un verrou en écriture posé sur une relation
  • dbplus_unselect — Retire une contrainte d'une relation
  • dbplus_update — Modifie une ligne dans une relation
  • dbplus_xlockrel — Pose un verrou exclusif sur une relation
  • dbplus_xunlockrel — Lève un verrou exclusif posé sur une relation


Ajoute une ligne à une relation

  • « Fonctions DB++
  • dbplus_aql »
  • PHP Manual
  • Fonctions DB++
  • Ajoute une ligne à une relation

dbplus_add

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_add — Ajoute une ligne à une relation

Description

int dbplus_add ( resource $relation , array $tuple )

Ajoute une ligne à la relation.

Liste de paramètres

relation

tuple

Un tableau de paires d'attribut/valeur à insérer dans la relation donnée.

Après une exécution réussie, le tableau contiendra toutes les données de la nouvelle ligne y compris tous les champs implicitement créés, comme les séquences.

Valeurs de retour

Cette fonction retournera DBPLUS_ERR_NOERR en cas de succès ou une erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_errcode() - Récupère le message d'erreur pour le code erreur fourni ou pour la dernière erreur survenue


Exécute une requête AQL

  • « dbplus_add
  • dbplus_chdir »
  • PHP Manual
  • Fonctions DB++
  • Exécute une requête AQL

dbplus_aql

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_aql — Exécute une requête AQL

Description

resource dbplus_aql ( string $query [, string $server [, string $dbpath ]] )

Exécute une requête AQL query sur le serveur server et le chemin dbpath.

Liste de paramètres

query

La requête AQL qui sera exécutée. Plus d'informations sur AQL A... Le langage de requête est fourni dans le manuel original de db++.

server

dbpath

Valeurs de retour

Retourne une ressource de relation en cas de succès. Les données de résultats peuvent être récupérées à partir de cette relation en appelant dbplus_next() et dbplus_curr(). Les autres fonctions d'accès aux relations ne fonctionneront pas avec ce résultat de relation.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Lit/Modifie le chemin du dossier virtuel courant vers la base de données

  • « dbplus_aql
  • dbplus_close »
  • PHP Manual
  • Fonctions DB++
  • Lit/Modifie le chemin du dossier virtuel courant vers la base de données

dbplus_chdir

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_chdir — Lit/Modifie le chemin du dossier virtuel courant vers la base de données

Description

string dbplus_chdir ([ string $newdir ] )

Change le chemin du dossier virtuel courant où les fichiers de relations seront recherchés par dbplus_open().

Liste de paramètres

newdir

Le nouveau répertoire pour les fichiers de relations. Vous pouvez omettre ce paramètre pour récupérer le répertoire de travail courant.

Valeurs de retour

Retourne le chemin absolu du dossier courant.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Ferme une relation

  • « dbplus_chdir
  • dbplus_curr »
  • PHP Manual
  • Fonctions DB++
  • Ferme une relation

dbplus_close

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_close — Ferme une relation

Description

mixed dbplus_close ( resource $relation )

Ferme une relation précédemment ouverte par dbplus_open().

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Retourne TRUE en cas de succès ou DBPLUS_ERR_UNKNOWN en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Lit la ligne courante depuis une relation

  • « dbplus_close
  • dbplus_errcode »
  • PHP Manual
  • Fonctions DB++
  • Lit la ligne courante depuis une relation

dbplus_curr

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_curr — Lit la ligne courante depuis une relation

Description

int dbplus_curr ( resource $relation , array &$tuple )

Lit les données de la ligne courante pour la relation relation.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

tuple

Les données seront retournées par ce paramètre comme un tableau associatif.

Valeurs de retour

La fonction retournera zéro (DBPLUS_ERR_NOERR) en cas de succès ou une erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_first() - Lit la première ligne d'une relation
  • dbplus_prev() - Lit la ligne précédente dans la relation
  • dbplus_next() - Lit la ligne suivante dans la relation
  • dbplus_last() - Lit la dernière ligne d'une relation
  • dbplus_errcode() - Récupère le message d'erreur pour le code erreur fourni ou pour la dernière erreur survenue


Récupère le message d'erreur pour le code erreur fourni ou pour la dernière erreur survenue

  • « dbplus_curr
  • dbplus_errno »
  • PHP Manual
  • Fonctions DB++
  • Récupère le message d'erreur pour le code erreur fourni ou pour la dernière erreur survenue

dbplus_errcode

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_errcode — Récupère le message d'erreur pour le code erreur fourni ou pour la dernière erreur survenue

Description

string dbplus_errcode ([ int $errno ] )

Retourne un message d'erreur sous forme de chaîne de caractères pour le code d'erreur fourni.

Liste de paramètres

errno

Le code d'erreur. S'il n'est pas fourni, le code de la dernière opération db++ sera utilisé.

Valeurs de retour

Retourne le message d'erreur.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Lit le code d'erreur généré par la dernière opération

  • « dbplus_errcode
  • dbplus_find »
  • PHP Manual
  • Fonctions DB++
  • Lit le code d'erreur généré par la dernière opération

dbplus_errno

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_errno — Lit le code d'erreur généré par la dernière opération

Description

int dbplus_errno ( void )

Retourne le code d'erreur retourné par la dernière opération db++.

Valeurs de retour

Retourne le code d'erreur sous forme d'entier.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_errcode() - Récupère le message d'erreur pour le code erreur fourni ou pour la dernière erreur survenue


Ajoute une contrainte sur une relation

  • « dbplus_errno
  • dbplus_first »
  • PHP Manual
  • Fonctions DB++
  • Ajoute une contrainte sur une relation

dbplus_find

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_find — Ajoute une contrainte sur une relation

Description

int dbplus_find ( resource $relation , array $constraints , mixed $tuple )

Ajoute une contrainte sur la relation relation.

Les futurs appels aux fonctions comme dbplus_curr() ou dbplus_next() retourneront uniquement les tuples correspondants, suivant les contraintes.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

constraints

Les contraintes sont des triplets de chaîne de caractères contenant un nom de domaine, un opérateur de comparaison et une valeur de comparaison. Le paramètre constraints est un tableau qui contient une collection de tableaux de chaîne de caractères, chacun contenant un domaine, un opérateur et une valeur, ou bien un seul tableau de chaîne de caractères contenant un multiple de trois éléments.

L'opérateur de comparaison peut être une des chaînes de caractères suivantes : '==', '>', '>=', '<', '<=', '!=', '~' pour les recherche régulière, et 'BAND' ou 'BOR' pour les opérations bits à bits.

tuple

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_unselect() - Retire une contrainte d'une relation


Lit la première ligne d'une relation

  • « dbplus_find
  • dbplus_flush »
  • PHP Manual
  • Fonctions DB++
  • Lit la première ligne d'une relation

dbplus_first

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_first — Lit la première ligne d'une relation

Description

int dbplus_first ( resource $relation , array &$tuple )

Lit les données de la première ligne de la relation relation et place la ligne courante à ces données. Retourne aussi ces données en tant que tableau associatif dans le paramètre tuple.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

tuple

Valeurs de retour

Retourne DBPLUS_ERR_NOERR en cas de succès ou un code d'erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_curr() - Lit la ligne courante depuis une relation
  • dbplus_prev() - Lit la ligne précédente dans la relation
  • dbplus_next() - Lit la ligne suivante dans la relation
  • dbplus_last() - Lit la dernière ligne d'une relation
  • dbplus_errcode() - Récupère le message d'erreur pour le code erreur fourni ou pour la dernière erreur survenue


Écrit toutes les modifications apportées à une relation

  • « dbplus_first
  • dbplus_freealllocks »
  • PHP Manual
  • Fonctions DB++
  • Écrit toutes les modifications apportées à une relation

dbplus_flush

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_flush — Écrit toutes les modifications apportées à une relation

Description

int dbplus_flush ( resource $relation )

Écrit tous les changements appliqués à relation depuis la dernière écriture vers le disque.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

Valeurs de retour

Retourne DBPLUS_ERR_NOERR en cas de succès ou un code d'erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_errcode() - Récupère le message d'erreur pour le code erreur fourni ou pour la dernière erreur survenue


Libère tous les verrous posés par le client

  • « dbplus_flush
  • dbplus_freelock »
  • PHP Manual
  • Fonctions DB++
  • Libère tous les verrous posés par le client

dbplus_freealllocks

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freealllocks — Libère tous les verrous posés par le client

Description

int dbplus_freealllocks ( void )

Libère tous les verrous posés par le client.

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_getlock() - Pose un verrou sur une ligne
  • dbplus_freelock() - Lève un verrou en écriture sur une ligne
  • dbplus_freerlocks() - Lève tous les verrous sur les lignes d'une relation


Lève un verrou en écriture sur une ligne

  • « dbplus_freealllocks
  • dbplus_freerlocks »
  • PHP Manual
  • Fonctions DB++
  • Lève un verrou en écriture sur une ligne

dbplus_freelock

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freelock — Lève un verrou en écriture sur une ligne

Description

int dbplus_freelock ( resource $relation , string $tuple )

Supprime le verrou en écriture sur la ligne tuple précédemment obtenu par dbplus_getlock().

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

tuple

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_getlock() - Pose un verrou sur une ligne
  • dbplus_freerlocks() - Lève tous les verrous sur les lignes d'une relation
  • dbplus_freealllocks() - Libère tous les verrous posés par le client


Lève tous les verrous sur les lignes d'une relation

  • « dbplus_freelock
  • dbplus_getlock »
  • PHP Manual
  • Fonctions DB++
  • Lève tous les verrous sur les lignes d'une relation

dbplus_freerlocks

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freerlocks — Lève tous les verrous sur les lignes d'une relation

Description

int dbplus_freerlocks ( resource $relation )

Lève tous les verrous sur les lignes de la relation relation.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_getlock() - Pose un verrou sur une ligne
  • dbplus_freelock() - Lève un verrou en écriture sur une ligne
  • dbplus_freealllocks() - Libère tous les verrous posés par le client


Pose un verrou sur une ligne

  • « dbplus_freerlocks
  • dbplus_getunique »
  • PHP Manual
  • Fonctions DB++
  • Pose un verrou sur une ligne

dbplus_getlock

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_getlock — Pose un verrou sur une ligne

Description

int dbplus_getlock ( resource $relation , string $tuple )

Demande un verrou sur la ligne tuple.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

tuple

Valeurs de retour

Retourne zéro en cas de succès ou un code d'erreur différent de zéro, plus précisément, DBPLUS_ERR_WLOCKED en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_freelock() - Lève un verrou en écriture sur une ligne
  • dbplus_freerlocks() - Lève tous les verrous sur les lignes d'une relation
  • dbplus_freealllocks() - Libère tous les verrous posés par le client


Retourne un identifiant unique pour une relation

  • « dbplus_getlock
  • dbplus_info »
  • PHP Manual
  • Fonctions DB++
  • Retourne un identifiant unique pour une relation

dbplus_getunique

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_getunique — Retourne un identifiant unique pour une relation

Description

int dbplus_getunique ( resource $relation , int $uniqueid )

Demande le nombre qui sera garantit comme unique pour la relation relation et le retourne dans le paramètre uniqueid.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

uniqueid

Valeurs de retour

Retourne DBPLUS_ERR_NOERR en cas de succès ou un code d'erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Récupère les informations sur une relation

  • « dbplus_getunique
  • dbplus_last »
  • PHP Manual
  • Fonctions DB++
  • Récupère les informations sur une relation

dbplus_info

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_info — Récupère les informations sur une relation

Description

int dbplus_info ( resource $relation , string $key , array &$result )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

key

result

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Lit la dernière ligne d'une relation

  • « dbplus_info
  • dbplus_lockrel »
  • PHP Manual
  • Fonctions DB++
  • Lit la dernière ligne d'une relation

dbplus_last

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_last — Lit la dernière ligne d'une relation

Description

int dbplus_last ( resource $relation , array &$tuple )

Lit les données de la dernière ligne de la relation relation et place la ligne courante à ces données. Retourne aussi ces données en tant que tableau associatif dans le paramètre tuple

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

tuple

Valeurs de retour

Retourne DBPLUS_ERR_NOERR en cas de succès ou un code d'erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_first() - Lit la première ligne d'une relation
  • dbplus_curr() - Lit la ligne courante depuis une relation
  • dbplus_prev() - Lit la ligne précédente dans la relation
  • dbplus_next() - Lit la ligne suivante dans la relation


Pose un verrou en écriture sur une relation

  • « dbplus_last
  • dbplus_next »
  • PHP Manual
  • Fonctions DB++
  • Pose un verrou en écriture sur une relation

dbplus_lockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_lockrel — Pose un verrou en écriture sur une relation

Description

int dbplus_lockrel ( resource $relation )

Demande un verrou en écriture sur la relation relation.

Les autres clients pourront toujours lire dans cette relation, mais devront attendre pour la modifier.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Lit la ligne suivante dans la relation

  • « dbplus_lockrel
  • dbplus_open »
  • PHP Manual
  • Fonctions DB++
  • Lit la ligne suivante dans la relation

dbplus_next

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_next — Lit la ligne suivante dans la relation

Description

int dbplus_next ( resource $relation , array &$tuple )

Lit les données de la ligne suivante de la relation relation et place la ligne courante à ces données. Retourne aussi ces données en tant que tableau associatif dans le paramètre tuple.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

tuple

Valeurs de retour

Retourne DBPLUS_ERR_NOERR en cas de succès ou un code d'erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_first() - Lit la première ligne d'une relation
  • dbplus_curr() - Lit la ligne courante depuis une relation
  • dbplus_prev() - Lit la ligne précédente dans la relation
  • dbplus_last() - Lit la dernière ligne d'une relation


Ouvre un fichier de relation

  • « dbplus_next
  • dbplus_prev »
  • PHP Manual
  • Fonctions DB++
  • Ouvre un fichier de relation

dbplus_open

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_open — Ouvre un fichier de relation

Description

resource dbplus_open ( string $name )

Ouvre le fichier de relation donné.

Liste de paramètres

name

Peut être soit un fichier ou un chemin relatif ou absolu. Dans tous les cas, il sera remplacé par un chemin absolu, sur une machine spécifique et sur un serveur spécifique.

Valeurs de retour

En cas de succès, une ressource de fichier de relation (dite aussi curseur) sera retournée. Elle sera alors utilisée avec les fonctions utilisant cette relation. En cas d'échec, la valeur zéro est retournée et le code d'erreur peut être demandé via la fonction dbplus_errno().

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Lit la ligne précédente dans la relation

  • « dbplus_open
  • dbplus_rchperm »
  • PHP Manual
  • Fonctions DB++
  • Lit la ligne précédente dans la relation

dbplus_prev

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_prev — Lit la ligne précédente dans la relation

Description

int dbplus_prev ( resource $relation , array &$tuple )

Lit les données de la ligne précédente de la relation relation et place la ligne courante à ces données. Retourne aussi ces données en tant que tableau associatif dans le paramètre tuple.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

tuple

Valeurs de retour

Retourne DBPLUS_ERR_NOERR en cas de succès ou un code d'erreur db++ en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_first() - Lit la première ligne d'une relation
  • dbplus_curr() - Lit la ligne courante depuis une relation
  • dbplus_next() - Lit la ligne suivante dans la relation
  • dbplus_last() - Lit la dernière ligne d'une relation


Modifie les droits sur la relation

  • « dbplus_prev
  • dbplus_rcreate »
  • PHP Manual
  • Fonctions DB++
  • Modifie les droits sur la relation

dbplus_rchperm

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rchperm — Modifie les droits sur la relation

Description

int dbplus_rchperm ( resource $relation , int $mask , string $user , string $group )

Modifie les droits d'accès comme spécifié par les paramètres mask, user et group. Les valeurs à fournir sont spécifiques à chaque système d'exploitation.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

mask

user

group

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Crée une nouvelle relation DB++

  • « dbplus_rchperm
  • dbplus_rcrtexact »
  • PHP Manual
  • Fonctions DB++
  • Crée une nouvelle relation DB++

dbplus_rcreate

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcreate — Crée une nouvelle relation DB++

Description

resource dbplus_rcreate ( string $name , mixed $domlist [, bool $overwrite ] )

Crée une nouvelle relation. N'importe quelle autre relation qui possède le même nom name sera écrasée si la relation n'est pas présentement utilisée et que le paramètre overwrite est fixé à TRUE.

Liste de paramètres

name

domlist

Une combinaison de domaines. Il est possible de passer un simple domaine en chaîne de caractères ou plusieurs noms de domaines en tableau.

Ce paramètre devrait contenir les spécifications du domaine pour la nouvelle relation, sous la forme d'un tableau de chaînes de caractères descriptives. Une description de domaine est constituée d'un nom de domaine unique pour cette relation, d'un slash et d'un caractère de spécification de type. Voyez la documentation de db++, plus spécialement la page de manuel dbcreate(1), pour une description des spécificateurs de type disponibles et leur signification.

Note:

Cette fonction acceptera aussi une chaîne de caractères avec des domaines séparés par des espaces, mais il est recommandé d'utiliser un tableau.

overwrite

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Crée une copie exacte mais vide d'une relation

  • « dbplus_rcreate
  • dbplus_rcrtlike »
  • PHP Manual
  • Fonctions DB++
  • Crée une copie exacte mais vide d'une relation

dbplus_rcrtexact

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcrtexact — Crée une copie exacte mais vide d'une relation

Description

mixed dbplus_rcrtexact ( string $name , resource $relation [, bool $overwrite ] )

dbplus_rcrtexact() crée une copie exacte de la relation relation mais vide, sous le nouveau nom de name.

Liste de paramètres

name

relation

La relation copiée, ouverte par dbplus_open().

overwrite

Une relation existante par le même nom name sera seulement écrasée si ce paramètre est fixé à TRUE et aucun autre processus utilise cette relation.

Valeurs de retour

Retourne une ressource en cas de succès ou DBPLUS_ERR_UNKNOWN en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Crée une copie vide d'une relation avec les index

  • « dbplus_rcrtexact
  • dbplus_resolve »
  • PHP Manual
  • Fonctions DB++
  • Crée une copie vide d'une relation avec les index

dbplus_rcrtlike

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcrtlike — Crée une copie vide d'une relation avec les index

Description

mixed dbplus_rcrtlike ( string $name , resource $relation [, int $overwrite ] )

dbplus_rcrtexact() crée une copie vide de la relation relation, sous le nouveau nom de name, mais avec les index par défaut.

Liste de paramètres

name

relation

La relation copiée, ouverte par dbplus_open().

overwrite

Une relation existante par le même nom name sera seulement écrasée si ce paramètre est fixé à TRUE et aucun autre processus utilise cette relation.

Valeurs de retour

Retourne une ressource en cas de succès ou DBPLUS_ERR_UNKNOWN en cas d'erreur.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Résout les informations d'hôte pour une relation

  • « dbplus_rcrtlike
  • dbplus_restorepos »
  • PHP Manual
  • Fonctions DB++
  • Résout les informations d'hôte pour une relation

dbplus_resolve

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_resolve — Résout les informations d'hôte pour une relation

Description

array dbplus_resolve ( string $relation_name )

dbplus_resolve() essaie de résoudre le nom de relation relation_name et collecte le nom interne de serveur, le nom d'hôte et le chemin vers la base sur cet hôte.

Liste de paramètres

relation_name

Nom de la relation.

Valeurs de retour

Retourne un tableau contenant les valeurs sous les clés sid, host et host_path ou FALSE en cas d'erreur.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_tcl() - Exécute du code TCL côté serveur


Restaure la position

  • « dbplus_resolve
  • dbplus_rkeys »
  • PHP Manual
  • Fonctions DB++
  • Restaure la position

dbplus_restorepos

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_restorepos — Restaure la position

Description

int dbplus_restorepos ( resource $relation , array $tuple )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

tuple

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Spécifie la nouvelle clé primaire d'une relation

  • « dbplus_restorepos
  • dbplus_ropen »
  • PHP Manual
  • Fonctions DB++
  • Spécifie la nouvelle clé primaire d'une relation

dbplus_rkeys

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rkeys — Spécifie la nouvelle clé primaire d'une relation

Description

mixed dbplus_rkeys ( resource $relation , mixed $domlist )

dbplus_rkeys() remplace la clé primaire courante de la relation relation avec la combinaison de domaines spécifiée par domlist.

Liste de paramètres

relation

Une relation ouverte avec dbplus_open().

domlist

Une combinaison de domaines. Peut être passé comme un seul nom de domaine ou alors un tableau de noms de domaine.

Valeurs de retour

Retourne une ressource en cas de succès où DBPLUS_ERR_UNKNOWN en cas d'erreur.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Ouvre un fichier de relation local

  • « dbplus_rkeys
  • dbplus_rquery »
  • PHP Manual
  • Fonctions DB++
  • Ouvre un fichier de relation local

dbplus_ropen

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_ropen — Ouvre un fichier de relation local

Description

resource dbplus_ropen ( string $name )

dbplus_ropen() ouvre le fichier de relation file localement, pour accès rapide, sans les coûts supplémentaires du système client/serveur. L'accès est alors en lecture seule, et seules dbplus_curr() et dbplus_next() peuvent être utilisées avec la relation retournée.

Liste de paramètres

name

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Accomplit une requête AQL locale

  • « dbplus_ropen
  • dbplus_rrename »
  • PHP Manual
  • Fonctions DB++
  • Accomplit une requête AQL locale

dbplus_rquery

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rquery — Accomplit une requête AQL locale

Description

resource dbplus_rquery ( string $query [, string $dbpath ] )

dbplus_rquery() accomplit une requête AQL brute, en utilisant l'interpréteur de la bibliothèque du client DB++. dbplus_rquery() est plus rapide que dbplus_aql() mais ne fonctionne que sur des données locales.

Liste de paramètres

query

dbpath

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Renomme une relation

  • « dbplus_rquery
  • dbplus_rsecindex »
  • PHP Manual
  • Fonctions DB++
  • Renomme une relation

dbplus_rrename

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rrename — Renomme une relation

Description

int dbplus_rrename ( resource $relation , string $name )

dbplus_rrename() va changer le nom de la relation en name.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

name

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Crée un nouvel index secondaire pour une relation

  • « dbplus_rrename
  • dbplus_runlink »
  • PHP Manual
  • Fonctions DB++
  • Crée un nouvel index secondaire pour une relation

dbplus_rsecindex

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rsecindex — Crée un nouvel index secondaire pour une relation

Description

mixed dbplus_rsecindex ( resource $relation , mixed $domlist , int $type )

dbplus_rsecindex() crée un nouvel index secondaire pour la relation relation, qui sera constitué par domlist et sera de type type

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

domlist

Une combinaison de domaines. Peut être passé comme un seul nom de domaine ou alors un tableau de noms de domaine.

type

Valeurs de retour

Retourne une ressource en cas de succès ou DBPLUS_ERR_UNKNOWN en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Détruit une relation

  • « dbplus_rsecindex
  • dbplus_rzap »
  • PHP Manual
  • Fonctions DB++
  • Détruit une relation

dbplus_runlink

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_runlink — Détruit une relation

Description

int dbplus_runlink ( resource $relation )

dbplus_runlink() ferme et supprime la relation relation.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Supprime toutes les lignes d'une relation

  • « dbplus_runlink
  • dbplus_savepos »
  • PHP Manual
  • Fonctions DB++
  • Supprime toutes les lignes d'une relation

dbplus_rzap

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rzap — Supprime toutes les lignes d'une relation

Description

int dbplus_rzap ( resource $relation )

dbplus_rzap() supprime toutes les lignes de la relation relation.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Sauvegarde la position

  • « dbplus_rzap
  • dbplus_setindex »
  • PHP Manual
  • Fonctions DB++
  • Sauvegarde la position

dbplus_savepos

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_savepos — Sauvegarde la position

Description

int dbplus_savepos ( resource $relation )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Définie l'index

  • « dbplus_savepos
  • dbplus_setindexbynumber »
  • PHP Manual
  • Fonctions DB++
  • Définie l'index

dbplus_setindex

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_setindex — Définie l'index

Description

int dbplus_setindex ( resource $relation , string $idx_name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

idx_name

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Définie l'index par un nombre

  • « dbplus_setindex
  • dbplus_sql »
  • PHP Manual
  • Fonctions DB++
  • Définie l'index par un nombre

dbplus_setindexbynumber

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_setindexbynumber — Définie l'index par un nombre

Description

int dbplus_setindexbynumber ( resource $relation , int $idx_number )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

idx_number

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Exécute une requête SQL

  • « dbplus_setindexbynumber
  • dbplus_tcl »
  • PHP Manual
  • Fonctions DB++
  • Exécute une requête SQL

dbplus_sql

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_sql — Exécute une requête SQL

Description

resource dbplus_sql ( string $query [, string $server [, string $dbpath ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

query

server

dbpath

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Exécute du code TCL côté serveur

  • « dbplus_sql
  • dbplus_tremove »
  • PHP Manual
  • Fonctions DB++
  • Exécute du code TCL côté serveur

dbplus_tcl

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_tcl — Exécute du code TCL côté serveur

Description

string dbplus_tcl ( int $sid , string $script )

Un serveur db++ va préparer un interpréteur TCL pour chaque connexion de client. Cet interpréteur va permettre au serveur d'exécuter du code TCL fourni par le client, un peu comme une procédure stockée, pour améliorer les performances du serveur en évitant des transferts client/serveur et des changements de contexte.

dbplus_tcl() doit recevoir l'identifiant de connexion sid et le code TCL script qui sera exécuté. dbplus_resolve() fournira l'identifiant de connexion. dbplus_tcl() retourne ce que le code TCL retourne, ou bien un message d'erreur TCL si le code TCL échoue.

Liste de paramètres

sid

script

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_resolve() - Résout les informations d'hôte pour une relation


Supprime la ligne courante et retourne la nouvelle ligne courante

  • « dbplus_tcl
  • dbplus_undo »
  • PHP Manual
  • Fonctions DB++
  • Supprime la ligne courante et retourne la nouvelle ligne courante

dbplus_tremove

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_tremove — Supprime la ligne courante et retourne la nouvelle ligne courante

Description

int dbplus_tremove ( resource $relation , array $tuple [, array &$current ] )

dbplus_tremove() supprime la ligne tuple de la relation si cela correspond parfaitement à une ligne dans la relation. current, si fourni, contient les données de la nouvelle ligne, une fois la suppression effectuée avec dbplus_tremove().

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

tuple

current

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Annule

  • « dbplus_tremove
  • dbplus_undoprepare »
  • PHP Manual
  • Fonctions DB++
  • Annule

dbplus_undo

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_undo — Annule

Description

int dbplus_undo ( resource $relation )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Prépare l'annulation

  • « dbplus_undo
  • dbplus_unlockrel »
  • PHP Manual
  • Fonctions DB++
  • Prépare l'annulation

dbplus_undoprepare

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_undoprepare — Prépare l'annulation

Description

int dbplus_undoprepare ( resource $relation )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Libère un verrou en écriture posé sur une relation

  • « dbplus_undoprepare
  • dbplus_unselect »
  • PHP Manual
  • Fonctions DB++
  • Libère un verrou en écriture posé sur une relation

dbplus_unlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_unlockrel — Libère un verrou en écriture posé sur une relation

Description

int dbplus_unlockrel ( resource $relation )

Lève le verrou en écriture obtenu par dbplus_lockrel().

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Retire une contrainte d'une relation

  • « dbplus_unlockrel
  • dbplus_update »
  • PHP Manual
  • Fonctions DB++
  • Retire une contrainte d'une relation

dbplus_unselect

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_unselect — Retire une contrainte d'une relation

Description

int dbplus_unselect ( resource $relation )

L'utilisation de dbplus_unselect() supprime la contrainte posée par dbplus_find() sur la relation.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Modifie une ligne dans une relation

  • « dbplus_unselect
  • dbplus_xlockrel »
  • PHP Manual
  • Fonctions DB++
  • Modifie une ligne dans une relation

dbplus_update

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_update — Modifie une ligne dans une relation

Description

int dbplus_update ( resource $relation , array $old , array $new )

dbplus_update() remplace la ligne old avec les données de la nouvelle ligne new, seulement si la ligne old est parfaitement similaire à une relation dans relation.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

old

L'ancienne ligne.

new

La nouvelle ligne.

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Pose un verrou exclusif sur une relation

  • « dbplus_update
  • dbplus_xunlockrel »
  • PHP Manual
  • Fonctions DB++
  • Pose un verrou exclusif sur une relation

dbplus_xlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_xlockrel — Pose un verrou exclusif sur une relation

Description

int dbplus_xlockrel ( resource $relation )

Demande le verrou exclusif sur la relation relation qui empêchera même la lecture des autres clients.

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • dbplus_xunlockrel() - Lève un verrou exclusif posé sur une relation


Lève un verrou exclusif posé sur une relation

  • « dbplus_xlockrel
  • dBase »
  • PHP Manual
  • Fonctions DB++
  • Lève un verrou exclusif posé sur une relation

dbplus_xunlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_xunlockrel — Lève un verrou exclusif posé sur une relation

Description

int dbplus_xunlockrel ( resource $relation )

Lève le verrou exclusif obtenu par la fonction dbplus_xlockrel().

Liste de paramètres

relation

Une relation ouverte par dbplus_open().

Valeurs de retour

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


dBase

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions dBase
    • dbase_add_record — Ajoute un enregistrement dans une base de données dBase
    • dbase_close — Ferme une base dBase
    • dbase_create — Crée une base de données dBase
    • dbase_delete_record — Efface un enregistrement dans une base dBase
    • dbase_get_header_info — Récupère des informations d'en-tête d'une base de données dBase
    • dbase_get_record_with_names — Lit un enregistrement dans une base dBase, sous la forme d'un tableau associatif
    • dbase_get_record — Lit un enregistrement dans une base dBase
    • dbase_numfields — Compte le nombre de champs d'une base dBase
    • dbase_numrecords — Compte le nombre d'enregistrements dans une base dBase
    • dbase_open — Ouvre une base dBase
    • dbase_pack — Compacte une base dBase
    • dbase_replace_record — Remplace un enregistrement dans une base dBase


Introduction

Ces fonctions permettent d'accéder aux enregistrements des bases de données au format dBase (dbf).

Les fichiers dBase sont de simples fichiers séquentiels, d'un nombre d'enregistrements fixe. Les enregistrements sont ajoutés à la fin du fichier et les enregistrements effacés sont conservés tant que vous n'appelez pas la fonction dbase_pack().

Les types de champs dBase disponibles sont :

Type de champs disponible
Champ | Type dBase | Format | Informations complémentaires
M | Memo | n/a | Ce type n'est pas supporté par PHP, et sera ignoré
D | Date | YYYYMMDD | La taille du champ est limitée à 8
N | Number | Un nombre | Vous devez déclarer une taille et une précision (le nombre de chiffres après le point décimal)
C | chaîne de caractères | Une chaîne de caractères | Vous devez déclarer une taille. Lors de la récupération des données, la chaîne sera complétée d'espace afin d'atteindre la taille déclarée.
L | booléen | T ou Y pour TRUE, F ou N pour FALSE | Stocké et retourné sous la forme d'un entier (1 ou 0)
F | Float | Un nombre à virgule flottante | Le support de ce type de champ a été ajouté en PHP 5.2.0

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.3.0.

Avertissement

Il n'y pas aucun support des index ou des champs memo. Il n'y pas non plus de support des verrous. Ainsi, si 2 processus accèdent en même temps au même fichier dBase, ce dernier risque d'être corrompu.

Nous vous recommandons de ne pas utiliser les fichiers dBase comme base de données, en production. Optez plutôt pour un vrai serveur SQL à la place ; » MySQL ou » PostgreSQL sont des choix commun en PHP. Le support dBase est présent en PHP uniquement pour vous permettre d'importer et d'exporter des données depuis et vers votre base de données, car ce format de fichier est habituellement compris par les tableurs Windows.


Installation

Pour activer la bibliothèque dBase fournie avec PHP, vous devez compiler PHP avec l'option --enable-dbase .


  • « Types de ressources
  • Fonctions dBase »
  • PHP Manual
  • dBase
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions dBase

Exemples

La plupart des exemples de cette documentation nécessitent une base de données dBase. Nous utiliserons /tmp/test.dbf qui est créée dans l'exemple de la fonction dbase_create().

Sommaire

  • dbase_add_record — Ajoute un enregistrement dans une base de données dBase
  • dbase_close — Ferme une base dBase
  • dbase_create — Crée une base de données dBase
  • dbase_delete_record — Efface un enregistrement dans une base dBase
  • dbase_get_header_info — Récupère des informations d'en-tête d'une base de données dBase
  • dbase_get_record_with_names — Lit un enregistrement dans une base dBase, sous la forme d'un tableau associatif
  • dbase_get_record — Lit un enregistrement dans une base dBase
  • dbase_numfields — Compte le nombre de champs d'une base dBase
  • dbase_numrecords — Compte le nombre d'enregistrements dans une base dBase
  • dbase_open — Ouvre une base dBase
  • dbase_pack — Compacte une base dBase
  • dbase_replace_record — Remplace un enregistrement dans une base dBase


Ajoute un enregistrement dans une base de données dBase

  • « Fonctions dBase
  • dbase_close »
  • PHP Manual
  • Fonctions dBase
  • Ajoute un enregistrement dans une base de données dBase

dbase_add_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_add_record — Ajoute un enregistrement dans une base de données dBase

Description

bool dbase_add_record ( int $dbase_identifier , array $record )

dbase_add_record() ajoute les données fournies dans la base de données dBase spécifiée.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record

Un tableau de données indexé. Le nombre d'éléments doit être égal au nombre de champs dans la base de données, sinon la fonction dbase_add_record() échouera.

Note:

Si vous utilisez dbase_get_record() pour retourner une valeur pour ce paramètre, n'oubliez pas de réinitialiser la clé nommée deleted.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Insertion d'un enregistrement dans une base de données dBase

<?php

// Ouverture en mode lecture-écriture
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  dbase_add_record($db, array(
    date('Ymd'),
    'Maxim Topolov',
    '23',
    'max@example.com',
    'T'));
  dbase_close($db);
}

?>

Voir aussi

  • dbase_delete_record() - Efface un enregistrement dans une base dBase
  • dbase_replace_record() - Remplace un enregistrement dans une base dBase


Ferme une base dBase

  • « dbase_add_record
  • dbase_create »
  • PHP Manual
  • Fonctions dBase
  • Ferme une base dBase

dbase_close

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_close — Ferme une base dBase

Description

bool dbase_close ( int $dbase_identifier )

dbase_close() ferme la base de données associée à dbase_identifier.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ferme un fichier de base de données dBase

<?php

// Ouverture en mode lecture-écriture
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
// Lecture des données ..

dbase_close($db);
}

?>

Voir aussi

  • dbase_open() - Ouvre une base dBase
  • dbase_create() - Crée une base de données dBase


Crée une base de données dBase

  • « dbase_close
  • dbase_delete_record »
  • PHP Manual
  • Fonctions dBase
  • Crée une base de données dBase

dbase_create

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_create — Crée une base de données dBase

Description

int dbase_create ( string $filename , array $fields )

dbase_create() crée une base de données dBase dans le fichier filename, et avec les champs fields.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note:

Cette fonction est affectée par la directive de configuration open_basedir.

Liste de paramètres

filename

Le nom de la base de données. Il peut être un chemin relatif ou absolu vers le fichier où dBase stockera vos données.

fields

Un tableau de tableaux, chaque tableau décrit le format d'un champ de la base de données. Chaque champ est constitué d'un nom, d'un caractère indiquant le type du champ et optionnellement, une longueur et une précision.

Note:

Les noms des champs sont limités en longueur et ne doivent pas excéder 10 caractères.

Valeurs de retour

Retourne un identifiant de lien à la base de données si la base de données a été créée avec succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'un fichier de base de données dBase

<?php

// Base de données "definition"
$def = array(
  array("date",     "D"),
  array("name",     "C",  50),
  array("age",      "N",   3, 0),
  array("email",    "C", 128),
  array("ismember", "L")
);

// Création
if (!dbase_create('/tmp/test.dbf', $def)) {
  echo "Erreur, impossible de créer la base de données\n";
}

?>

Voir aussi

  • dbase_open() - Ouvre une base dBase
  • dbase_close() - Ferme une base dBase


Efface un enregistrement dans une base dBase

  • « dbase_create
  • dbase_get_header_info »
  • PHP Manual
  • Fonctions dBase
  • Efface un enregistrement dans une base dBase

dbase_delete_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_delete_record — Efface un enregistrement dans une base dBase

Description

bool dbase_delete_record ( int $dbase_identifier , int $record_number )

dbase_delete_record() marque l'enregistrement record pour l'effacement, dans la base dbase_identifier.

Note:

Pour effacer réellement l'enregistrement de la base de données, vous devez appeler la fonction dbase_pack().

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record_number

Un entier compris entre 1 et le nombre maximal d'enregistrements dans la base de données (tel que retourné par la fonction dbase_numrecords()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • dbase_add_record() - Ajoute un enregistrement dans une base de données dBase
  • dbase_replace_record() - Remplace un enregistrement dans une base dBase


Récupère des informations d'en-tête d'une base de données dBase

  • « dbase_delete_record
  • dbase_get_record_with_names »
  • PHP Manual
  • Fonctions dBase
  • Récupère des informations d'en-tête d'une base de données dBase

dbase_get_header_info

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_header_info — Récupère des informations d'en-tête d'une base de données dBase

Description

array dbase_get_header_info ( int $dbase_identifier )

dbase_get_header_info() retourne des informations sur la structure des colonnes de la base de données référencée par dbase_identifier.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Un tableau indexé avec une entrée pour chaque colonne de la base de données. L'index du tableau commence à 0.

Chaque élément du tableau contient un tableau associatif contenant les informations sur les colonnes, comme décrit ici :

name
Le nom de la colonne
type
Le nom lisible du type de la colonne (i.e. date, boolean, etc.)
length
Le nombre d'octets que cette colonne peut contenir
precision
Le nombre de décimales pour la colonne
format
Un format printf() suggéré pour la colonne
offset
La position de la colonne depuis la début de la ligne

Si les informations d'en-têtes de la base de données ne peuvent pas être lues, FALSE est retourné.

Exemples

Exemple #1 Affiche les informations d'en-têtes pour un fichier de base de données dBase

<?php
// Chemin vers le fichier dBase
$db_path = "/tmp/test.dbf";

// Ouvre le fichier dBase
$dbh = dbase_open($db_path, 0)
or die("Erreur ! Impossible d'ouvrir le fichier dBase '$db_path'.");

// Récupération des informations des colonnes
$column_info = dbase_get_header_info($dbh);

// Affichage des informations
print_r($column_info);
?>


Lit un enregistrement dans une base dBase, sous la forme d'un tableau associatif

  • « dbase_get_header_info
  • dbase_get_record »
  • PHP Manual
  • Fonctions dBase
  • Lit un enregistrement dans une base dBase, sous la forme d'un tableau associatif

dbase_get_record_with_names

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_record_with_names — Lit un enregistrement dans une base dBase, sous la forme d'un tableau associatif

Description

array dbase_get_record_with_names ( int $dbase_identifier , int $record_number )

dbase_identifier retourne les données de l'enregistrement record dans un tableau associatif.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record_number

L'index de l'enregistrement.

Valeurs de retour

L'enregistrement, sous la forme d'un tableau associatif. Ceci inclut également une clé nommée deleted qui est définie à 1 si l'enregistrement a été marqué pour effacement (voir la fonction dbase_delete_record()).

Chaque champ est converti en un type PHP approprié, excepté :

  • Les dates sont laissées en tant que chaînes de caractères.
  • Les entiers qui peuvent causer un dépassement de mémoire tampon (> 32 bits) sont retournés sous forme de chaînes de caractères.

En cas d'erreur, dbase_get_record_with_names() retourne FALSE.

Exemples

Exemple #1 Liste tous les membres enregistrés dans la base de données

<?php
// Ouverture en mode lecture seul
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  $record_numbers = dbase_numrecords($db);
  for ($i = 1; $i <= $record_numbers; $i++) {
    $row = dbase_get_record_with_names($db, $i);
    if ($row['ismember'] == 1) {
      echo "Membre #$i: " . trim($row['name']) . "\n";
    }
  }
}
?>

Voir aussi

  • dbase_get_record() - Lit un enregistrement dans une base dBase


Lit un enregistrement dans une base dBase

  • « dbase_get_record_with_names
  • dbase_numfields »
  • PHP Manual
  • Fonctions dBase
  • Lit un enregistrement dans une base dBase

dbase_get_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_record — Lit un enregistrement dans une base dBase

Description

array dbase_get_record ( int $dbase_identifier , int $record_number )

dbase_get_record() retourne les données de l'enregistrement record dans un tableau.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record_number

L'index de l'enregistrement.

Valeurs de retour

Un tableau indexé avec l'enregistrement. Ce tableau inclut également une clé associée nommée deleted qui est définie à 1 si l'enregistrement a été marqué pour effacement (voir dbase_delete_record()).

Chaque champ est converti en un type PHP approprié, excepté :

  • Les dates sont laissées en tant que chaînes de caractères.
  • Les entiers qui peuvent causer un dépassement de mémoire tampon (> 32 bits) sont retournés sous forme de chaînes de caractères.

En cas d'erreur, dbase_get_record() retourne FALSE.

Voir aussi

  • dbase_get_record_with_names() - Lit un enregistrement dans une base dBase, sous la forme d'un tableau associatif


Compte le nombre de champs d'une base dBase

  • « dbase_get_record
  • dbase_numrecords »
  • PHP Manual
  • Fonctions dBase
  • Compte le nombre de champs d'une base dBase

dbase_numfields

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_numfields — Compte le nombre de champs d'une base dBase

Description

int dbase_numfields ( int $dbase_identifier )

dbase_numfields() retourne le nombre de champs (colonnes) de la base de données dbase_identifier.

Note:

Les champs sont numérotés de 0 à dbase_numfields($db)-1, tandis que les enregistrements sont numérotés de 1 à dbase_numrecords($db).

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Le nombre de champs de la base de données, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec dbase_numfields()

<?php

$rec = dbase_get_record($db, $recno);
$nf  = dbase_numfields($db);
for ($i = 0; $i < $nf; $i++) {
  echo $rec[$i], "\n";
}

?>

Voir aussi

  • dbase_numrecords() - Compte le nombre d'enregistrements dans une base dBase


Compte le nombre d'enregistrements dans une base dBase

  • « dbase_numfields
  • dbase_open »
  • PHP Manual
  • Fonctions dBase
  • Compte le nombre d'enregistrements dans une base dBase

dbase_numrecords

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_numrecords — Compte le nombre d'enregistrements dans une base dBase

Description

int dbase_numrecords ( int $dbase_identifier )

dbase_numrecords() retourne le nombre d'enregistrements (lignes) dans la base dbase_identifier.

Note:

Les numéros de champ sont numérotés de 0 à dbase_numfields($db)-1, tandis que les numéros d'enregistrements sont numérotés de 1 à dbase_numrecords($db).

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Le nombre d'enregistrements dans la base de données ou FALSE si une erreur survient.

Exemples

Exemple #1 Lecture de tous les enregistrements de la base de données

<?php

// Ouverture en mode lecture seul
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
$record_numbers = dbase_numrecords($db);
for ($i = 1; $i <= $record_numbers; $i++) {
  // Faites quelque chose ici, pour chaque enregistrement
}
}

?>

Voir aussi

  • dbase_numfields() - Compte le nombre de champs d'une base dBase


Ouvre une base dBase

  • « dbase_numrecords
  • dbase_pack »
  • PHP Manual
  • Fonctions dBase
  • Ouvre une base dBase

dbase_open

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_open — Ouvre une base dBase

Description

int dbase_open ( string $filename , int $mode )

dbase_open() ouvre une base de données dBase avec un mode d'accès donné.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note:

Cette fonction est affectée par la directive de configuration open_basedir.

Liste de paramètres

filename

Le nom de la base de données. Il peut être un chemin relatif ou absolu vers le fichier où dBase stockera vos données.

mode

Un entier correspondant à celui utilisé pour l'appel système open() (Typiquement, 0 signifie lecture seule, 1 signifie écriture seule, et 2 signifie lecture et écriture).

Note:

Vous ne pouvez pas ouvrir un fichier dBase en mode écriture seule, car la fonction échouera lors de la lecture des informations d'en-têtes et donc, vous ne pouvez pas utiliser 1 comme mode.

Exemples

Exemple #1 Ouverture d'un fichier de base de données dBase

<?php

// Ouverture en lecture seule
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
// lecture des données ..

dbase_close($db);
}

?>

Valeurs de retour

Retourne un identifiant de lien à la base de données si la base de données est ouverte avec succès, ou FALSE si une erreur survient.

Voir aussi

  • dbase_create() - Crée une base de données dBase
  • dbase_close() - Ferme une base dBase


Compacte une base dBase

  • « dbase_open
  • dbase_replace_record »
  • PHP Manual
  • Fonctions dBase
  • Compacte une base dBase

dbase_pack

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_pack — Compacte une base dBase

Description

bool dbase_pack ( int $dbase_identifier )

dbase_pack() compacte la base de données dbase_identifier (effacement définitif de tous les enregistrements marqués pour l'effacement à l'aide de la fonction dbase_delete_record()).

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Vide une base de données dBase

<?php

// Ouverture en mode lecture-écriture
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  $record_numbers = dbase_numrecords($db);
  for ($i = 1; $i <= $record_numbers; $i++) {
    dbase_delete_record($db, $i);
  }
// Compacte la base de données
dbase_pack($db);
}

?>

Voir aussi

  • dbase_delete_record() - Efface un enregistrement dans une base dBase


Remplace un enregistrement dans une base dBase

  • « dbase_pack
  • filePro »
  • PHP Manual
  • Fonctions dBase
  • Remplace un enregistrement dans une base dBase

dbase_replace_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_replace_record — Remplace un enregistrement dans une base dBase

Description

bool dbase_replace_record ( int $dbase_identifier , array $record , int $record_number )

dbase_replace_record() remplace les données associées à l'enregistrement dbase_record_number par les données enregistrées dans record, dans la base dbase_identifier.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par la fonction dbase_open() ou la fonction dbase_create().

record

Un tableau indexé des données. Le nombre d'éléments doit être égal au nombre de champs dans la base de données, sinon la fonction dbase_replace_record() échouera.

Note:

Si vous utilisez dbase_get_record() pour retourner la valeur de ce paramètre, n'oubliez pas de réinitialiser la clé nommée deleted.

record_number

Un entier entre 1 et le nombre total d'enregistrements dans la base de données (comme retourné par la fonction dbase_numrecords()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Mise à jour d'un enregistrement dans une base de données

<?php

// Ouverture en mode lecture-écriture
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  // Récupération de l'ancienne ligne
  $row = dbase_get_record_with_names($db, 1);

  // Supprime l'entrée effacée
  unset($row['deleted']);

  // Mise à jour de la date du champ avec le timestamp courant
  $row['date'] = date('Ymd');

  // Remplace l'enregistrement
  dbase_replace_record($db, $row, 1);
  dbase_close($db);
}

?>

Voir aussi

  • dbase_add_record() - Ajoute un enregistrement dans une base de données dBase
  • dbase_delete_record() - Efface un enregistrement dans une base dBase


filePro

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions filePro
    • filepro_fieldcount — Retourne le nombre de champs dans une base filePro
    • filepro_fieldname — Retourne le nom d'un champ filePro
    • filepro_fieldtype — Retourne le type d'un champ filePro
    • filepro_fieldwidth — Retourne la taille d'un champ filePro
    • filepro_retrieve — Retourne la valeur d'un champ filePro
    • filepro_rowcount — Retourne le nombre de lignes dans une base filePro
    • filepro — Lit et vérifie un fichier


Introduction

Ces fonctions permettent de lire des données enregistrées dans des bases de données non modifiables filePro.

filePro est une marque de fP Technologies, Inc. Vous pouvez avoir plus de détails sur filePro en visitant » http://www.fptech.com/.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.2.0.


Installation

Le support de filePro n'est pas activé par défaut dans PHP. Pour utiliser le support fourni dans la distribution, qui assure l'accès en lecture seule, vous devez compiler PHP avec l'option --enable-filepro .


  • « Types de ressources
  • Fonctions filePro »
  • PHP Manual
  • filePro
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions filePro

Sommaire

  • filepro_fieldcount — Retourne le nombre de champs dans une base filePro
  • filepro_fieldname — Retourne le nom d'un champ filePro
  • filepro_fieldtype — Retourne le type d'un champ filePro
  • filepro_fieldwidth — Retourne la taille d'un champ filePro
  • filepro_retrieve — Retourne la valeur d'un champ filePro
  • filepro_rowcount — Retourne le nombre de lignes dans une base filePro
  • filepro — Lit et vérifie un fichier


Retourne le nombre de champs dans une base filePro

  • « Fonctions filePro
  • filepro_fieldname »
  • PHP Manual
  • Fonctions filePro
  • Retourne le nombre de champs dans une base filePro

filepro_fieldcount

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro_fieldcount — Retourne le nombre de champs dans une base filePro

Description

int filepro_fieldcount ( void )

Retourne le nombre de champs (ou colonnes) d'une base filePro.

Valeurs de retour

Retourne le nombre de champs d'une base de données filePro ouverte, ou FALSE si une erreur survient.

Voir aussi

  • filepro() - Lit et vérifie un fichier


Retourne le nom d'un champ filePro

  • « filepro_fieldcount
  • filepro_fieldtype »
  • PHP Manual
  • Fonctions filePro
  • Retourne le nom d'un champ filePro

filepro_fieldname

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro_fieldname — Retourne le nom d'un champ filePro

Description

string filepro_fieldname ( int $field_number )

Retourne le nom du champ d'index field_number.

Liste de paramètres

field_number

Le numéro du champ.

Valeurs de retour

Retourne le nom du champ sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.


Retourne le type d'un champ filePro

  • « filepro_fieldname
  • filepro_fieldwidth »
  • PHP Manual
  • Fonctions filePro
  • Retourne le type d'un champ filePro

filepro_fieldtype

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro_fieldtype — Retourne le type d'un champ filePro

Description

string filepro_fieldtype ( int $field_number )

Retourne le type du champ d'index field_number.

Liste de paramètres

field_number

Le numéro du champ.

Valeurs de retour

Retourne le type du champs sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.


Retourne la taille d'un champ filePro

  • « filepro_fieldtype
  • filepro_retrieve »
  • PHP Manual
  • Fonctions filePro
  • Retourne la taille d'un champ filePro

filepro_fieldwidth

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro_fieldwidth — Retourne la taille d'un champ filePro

Description

int filepro_fieldwidth ( int $field_number )

Retourne la taille du champ d'index field_number.

Liste de paramètres

field_number

Le numéro du champ.

Valeurs de retour

Retourne la taille du champ sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.


Retourne la valeur d'un champ filePro

  • « filepro_fieldwidth
  • filepro_rowcount »
  • PHP Manual
  • Fonctions filePro
  • Retourne la valeur d'un champ filePro

filepro_retrieve

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro_retrieve — Retourne la valeur d'un champ filePro

Description

string filepro_retrieve ( int $row_number , int $field_number )

Retourne les données à partir de l'endroit spécifié dans la base de données.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Liste de paramètres

row_number

Le numéro de ligne. Doit être compris entre 0 et le nombre total de lignes moins une (0..filepro_rowcount() - 1)

field_number

Le numéro du champ. Doit être compris entre 0 et le nombre total de champs moins un (0..filepro_fieldcount() - 1)

Valeurs de retour

Retourne les données spécifiées, ou FALSE si une erreur survient.


Retourne le nombre de lignes dans une base filePro

  • « filepro_retrieve
  • filepro »
  • PHP Manual
  • Fonctions filePro
  • Retourne le nombre de lignes dans une base filePro

filepro_rowcount

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro_rowcount — Retourne le nombre de lignes dans une base filePro

Description

int filepro_rowcount ( void )

Retourne le nombre de lignes dans une base filePro.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Valeurs de retour

Retourne le nombre de lignes d'une base de données filePro ouverte, ou FALSE si une erreur survient.

Voir aussi

  • filepro() - Lit et vérifie un fichier


Lit et vérifie un fichier

  • « filepro_rowcount
  • Firebird/InterBase »
  • PHP Manual
  • Fonctions filePro
  • Lit et vérifie un fichier

filepro

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro — Lit et vérifie un fichier

Description

bool filepro ( string $directory )

Lit et vérifie un fichier, puis enregistre le nombre de champs et de lignes.

Aucun verrouillage n'est pratiqué : il vaut alors mieux ne pas modifier la base filePro lorsqu'elle est ouverte par PHP.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Liste de paramètres

directory

Le dossier du fichier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Firebird/InterBase

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Firebird/InterBase
    • ibase_add_user — Ajoute un utilisateur à une base de données de sécurité
    • ibase_affected_rows — Retourne le nombre de lignes affectées par la dernière requête iBase
    • ibase_backup — Effectue une sauvegarde de base de données InterBase
    • ibase_blob_add — Ajoute des données dans un BLOB iBase fraîchement créé
    • ibase_blob_cancel — Annule la création d'un BLOB iBase
    • ibase_blob_close — Ferme un BLOB iBase
    • ibase_blob_create — Crée un BLOB iBase pour ajouter des données
    • ibase_blob_echo — Affiche le contenu d'un BLOB iBase au navigateur
    • ibase_blob_get — Lit len octets de données dans un BLOB iBase ouvert
    • ibase_blob_import — Crée un BLOB iBase, y copie un fichier et le referme
    • ibase_blob_info — Retourne la taille d'un BLOB iBase et d'autres informations utiles
    • ibase_blob_open — Ouvre un BLOB iBase pour récupérer des parties de données
    • ibase_close — Ferme une connexion à une base de données Interbase
    • ibase_commit_ret — Valide une transaction iBase sans la refermer
    • ibase_commit — Valide une transaction iBase
    • ibase_connect — Ouvre une connexion à une base de données
    • ibase_db_info — Demande des statistiques sur une base de données Interbase
    • ibase_delete_user — Efface un utilisateur d'une base de données de sécurité
    • ibase_drop_db — Supprime une base de données iBase
    • ibase_errcode — Retourne le code d'erreur iBase
    • ibase_errmsg — Retourne un message d'erreur
    • ibase_execute — Exécute une requête iBase préparée
    • ibase_fetch_assoc — Récupère une ligne du résultat d'une requête dans un tableau associatif
    • ibase_fetch_object — Lit une ligne dans une base Interbase dans un objet
    • ibase_fetch_row — Lit une ligne d'une base Interbase
    • ibase_field_info — Lit les informations sur un champ iBase
    • ibase_free_event_handler — Libère un gestionnaire d'événements iBase
    • ibase_free_query — Libère la mémoire réservée par une requête préparée
    • ibase_free_result — Libère un résultat iBase
    • ibase_gen_id — Incrémente le générateur donné et retourne sa nouvelle valeur
    • ibase_maintain_db — Exécute une commande de maintenance sur une base de données Interbase
    • ibase_modify_user — Modifie un utilisateur dans une base de données de sécurité
    • ibase_name_result — Assigne un nom à un jeu de résultats iBase
    • ibase_num_fields — Retourne le nombre de colonnes dans un résultat iBase
    • ibase_num_params — Retourne le nombre de paramètres dans une requête préparée iBase
    • ibase_param_info — Retourne des informations à propos d'un paramètre dans une requête préparée iBase
    • ibase_pconnect — Ouvre une connexion persistante à une base de données InterBase
    • ibase_prepare — Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement
    • ibase_query — Exécute une requête sur une base iBase
    • ibase_restore — Restaure une sauvegarde de base de données Interbase
    • ibase_rollback_ret — Annule une transaction sans la fermer
    • ibase_rollback — Annule une transaction interBase
    • ibase_server_info — Demande des informations sur le serveur Interbase
    • ibase_service_attach — Connexion au service de gestion Interbase
    • ibase_service_detach — Déconnexion du service de gestion Interbase
    • ibase_set_event_handler — Enregistre une fonction de rappel sur un événement interBase
    • ibase_trans — Prépare une transaction interBase
    • ibase_wait_event — Attend un événement interBase


Introduction

Firebird est une base de données relationnelles offrant la plupart des fonctionnalités décrites dans la norme ISO SQL-2003, qui fonctionne sous environnements Linux, Windows, et la plupart des systèmes Unix. Firebird offre une excellente simultanéité, de hautes performances et un langage efficace pour l'écriture des procédures stockées et des déclencheurs. Il est utilisé sur des systèmes de production depuis 1981.

Interbase est le nom de la variante commerciale de cette base de données créée par Embarcadero/Inprise. Pour plus d'informations sur Interbase, allez à » http://www.embarcadero.com/products/interbase.

Firebird est un projet commercialement indépendant (fondation) de programmeurs C++, conseillés techniques, supportant le développement et assurant la compatibilité multi-plate-forme de la base de données relationnelle basé sur le code source offert par Inprise Corp. (maintenant connu sous le nom de Embarcadero) sous la licence "InterBase Public License v.1.0 le 25 Juillet 2000". Pour plus d'informations sur Firebird, allez à » http://www.firebirdsql.org/.

Note:

Cette extension supporte Interbase version 6 et suivantes ainsi que Firebird version 2 et suivantes.

Cette base de données utilise les guillemets simples (') pour échapper les caractères. Ajoutez à votre fichier php.ini la directive suivante (Obsolète en PHP 5.3.0. Supprimé depuis PHP 5.4.0) :

magic_quotes_sybase = On


Installation

Pour activer le support de Firebird/InterBase, vous devez compiler PHP avec l'option --with-interbase[=DIR] , où DIR est le dossier d'installation de Firebird/InterBase (qui est par défaut, /usr).

Note: Note aux utilisateurs Win32/Win64

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : fbclient.dll,gds32.dll

Si vous installez un serveur Firebird/InterBase sur la même machine que celle faisant fonctionner PHP, vous aurez déjà cette bibliothèque et fbclient.dll,gds32.dll (gds32.dll est généré depuis l'installeur) devrait déjà être dans votre PATH.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration iBase
Nom | Défaut | Modifiable | Historique
ibase.allow_persistent | "1" | PHP_INI_SYSTEM |
ibase.max_persistent | "-1" | PHP_INI_SYSTEM |
ibase.max_links | "-1" | PHP_INI_SYSTEM |
ibase.default_db | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
ibase.default_user | NULL | PHP_INI_ALL |
ibase.default_password | NULL | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ibase.allow_persistent booléen

Accepte ou non les connexions persistantes à Firebird/Interbase.

ibase.max_persistent entier

Le nombre maximal de connexions persistantes Firebird/Interbase par processus. Les nouvelles connexions avec ibase_pconnect() ne seront pas persistantes si ce nombre maximal est atteint.

ibase.max_links entier

Le nombre maximal de connexions Firebird/Interbase par processus, incluant les connexions persistantes.

ibase.default_db chaîne de caractères

Le nom de la base de données par défaut lorsque ibase_[p]connect() est appelé sans base de données spécifique. Si cette valeur est définie et que le mode sécurisé (safe mode) SQL est activé, aucune connexion à d'autres bases de données que celle-ci ne sera autorisée.

ibase.default_user chaîne de caractères

Le nom d'utilisateur utilisé lors de la connexion à la base de données lorsque aucun n'est spécifié.

ibase.default_password chaîne de caractères

Le mot de passe utilisé lors de la connexion à la base de données lorsque aucun n'est spécifié.

ibase.default_charset chaîne de caractères

Le jeux de caractères utilisé lors de la connexion à la base de données lorsque aucun n'est spécifié.

ibase.timestampformat chaîne de caractères

ibase.dateformat chaîne de caractères

ibase.timeformat chaîne de caractères

Ces directives sont utilisées pour définir les formats de dates et d'heures qui seront utilisés lorsque des dates/heures seront retournées d'un jeux de résultat, ou lors de traitement d'arguments en paramètres dates/heures.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes suivantes peuvent être passées à la fonction ibase_trans() pour spécifier le comportement du traitement.

Constantes Firebird/InterBase
Constante | Description
IBASE_DEFAULT | Définit le comportement par défaut. Ce comportement est déterminé par la bibliothèque cliente, qui est définie comme IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT dans la plupart des cas.
IBASE_READ | Démarre une transaction en lecture seul
IBASE_WRITE | Démarre une transaction en lecture / écriture
IBASE_CONSISTENCY | Démarre une transaction avec le niveau d'isolation définie à 'consistency', ce qui signifie que le transaction courante ne peut lire depuis des tables qui ont été modifiées par d'autres transactions.
IBASE_CONCURRENCY | Démarre une transaction avec le niveau d'isolation définie à 'concurrency' (ou 'snapshot'), ce qui signifie que la transaction peut accéder à toutes les tables, mais ne peut pas voir les modifications apportées par d'autres transactions une fois que la transaction a débuté.
IBASE_COMMITTED | Démarre une transaction avec le niveau d'isolation définie à 'read committed'. Ce flag doit être associé avec soit la constante IBASE_REC_VERSION, soit la constante IBASE_REC_NO_VERSION. Ce niveau d'isolation vous permet d'accéder aux modifications effectuées après le début de la transaction. Si la constante IBASE_REC_NO_VERSION est spécifiée, seulement la dernière version des lignes pourra être lue. Si la constante IBASE_REC_VERSION est spécifiée, une ligne peut toujours être lue lorsqu'une modification est en attente dans une transaction concurrente.
IBASE_WAIT | Indique que la transaction peut attendre, puis réessayer lorsqu'un conflit apparaît.
IBASE_NOWAIT | Indique que la transaction échouera immédiatement lorsqu'un conflit apparaît.

Les constantes suivantes peuvent être passées aux fonctions ibase_fetch_row(), ibase_fetch_assoc() ou ibase_fetch_object() pour spécifier leurs comportements.

Constantes Firebird/InterBase
Constante | Description
IBASE_FETCH_BLOBS | Aussi disponible sous le nom IBASE_TEXT pour des raisons de compatibilité ascendante. Permet de lire le contenu d'un BLOB "inline" au lieu de le parcourir en utilisant un identifiant de BLOB.
IBASE_FETCH_ARRAYS | Permet de lire un tableau "inline". Sinon, les identifiants de tableaux sont retournés. Les identifiants de tableaux ne peuvent être passés uniquement comme arguments aux requêtes INSERT, car aucune fonction pour traiter les identifiants de tableaux n'est actuellement disponible.
IBASE_UNIXTIME | Permet de retourner les champs date et heure non pas comme des chaînes de caractères mais comme des timestamps UNIX (le nombre de secondes depuis l'époque UNIX, qui est le 1-Jan-1970 0:00 UTC). Cela peut être problématique si vous utilisez des dates antérieures à 1970 sur quelques systèmes.

Les constantes suivantes sont utilisées pour passer des requêtes et des options à l'API (ibase_server_info(), ibase_db_info(), ibase_backup(), ibase_restore() et ibase_maintain_db()). Merci de consulter le manuel Firebird/InterBase pour plus d'informations sur la significations de ces options.

IBASE_BKP_IGNORE_CHECKSUMS
IBASE_BKP_IGNORE_LIMBO
IBASE_BKP_METADATA_ONLY
IBASE_BKP_NO_GARBAGE_COLLECT
IBASE_BKP_OLD_DESCRIPTIONS
IBASE_BKP_NON_TRANSPORTABLE
IBASE_BKP_CONVERT
Options de ibase_backup()
IBASE_RES_DEACTIVATE_IDX
IBASE_RES_NO_SHADOW
IBASE_RES_NO_VALIDITY
IBASE_RES_ONE_AT_A_TIME
IBASE_RES_REPLACE
IBASE_RES_CREATE
IBASE_RES_USE_ALL_SPACE
Options de ibase_restore()
IBASE_PRP_PAGE_BUFFERS
IBASE_PRP_SWEEP_INTERVAL
IBASE_PRP_SHUTDOWN_DB
IBASE_PRP_DENY_NEW_TRANSACTIONS
IBASE_PRP_DENY_NEW_ATTACHMENTS
IBASE_PRP_RESERVE_SPACE
IBASE_PRP_RES_USE_FULL
IBASE_PRP_RES
IBASE_PRP_WRITE_MODE
IBASE_PRP_WM_ASYNC
IBASE_PRP_WM_SYNC
IBASE_PRP_ACCESS_MODE
IBASE_PRP_AM_READONLY
IBASE_PRP_AM_READWRITE
IBASE_PRP_SET_SQL_DIALECT
IBASE_PRP_ACTIVATE
IBASE_PRP_DB_ONLINE
IBASE_RPR_CHECK_DB
IBASE_RPR_IGNORE_CHECKSUM
IBASE_RPR_KILL_SHADOWS
IBASE_RPR_MEND_DB
IBASE_RPR_VALIDATE_DB
IBASE_RPR_FULL
IBASE_RPR_SWEEP_DB
Options de ibase_maintain_db()
IBASE_STS_DATA_PAGES
IBASE_STS_DB_LOG
IBASE_STS_HDR_PAGES
IBASE_STS_IDX_PAGES
IBASE_STS_SYS_RELATIONS
Options de ibase_db_info()
IBASE_SVC_SERVER_VERSION
IBASE_SVC_IMPLEMENTATION
IBASE_SVC_GET_ENV
IBASE_SVC_GET_ENV_LOCK
IBASE_SVC_GET_ENV_MSG
IBASE_SVC_USER_DBPATH
IBASE_SVC_SVR_DB_INFO
IBASE_SVC_GET_USERS
Options de ibase_server_info()


Fonctions Firebird/InterBase

Sommaire

  • ibase_add_user — Ajoute un utilisateur à une base de données de sécurité
  • ibase_affected_rows — Retourne le nombre de lignes affectées par la dernière requête iBase
  • ibase_backup — Effectue une sauvegarde de base de données InterBase
  • ibase_blob_add — Ajoute des données dans un BLOB iBase fraîchement créé
  • ibase_blob_cancel — Annule la création d'un BLOB iBase
  • ibase_blob_close — Ferme un BLOB iBase
  • ibase_blob_create — Crée un BLOB iBase pour ajouter des données
  • ibase_blob_echo — Affiche le contenu d'un BLOB iBase au navigateur
  • ibase_blob_get — Lit len octets de données dans un BLOB iBase ouvert
  • ibase_blob_import — Crée un BLOB iBase, y copie un fichier et le referme
  • ibase_blob_info — Retourne la taille d'un BLOB iBase et d'autres informations utiles
  • ibase_blob_open — Ouvre un BLOB iBase pour récupérer des parties de données
  • ibase_close — Ferme une connexion à une base de données Interbase
  • ibase_commit_ret — Valide une transaction iBase sans la refermer
  • ibase_commit — Valide une transaction iBase
  • ibase_connect — Ouvre une connexion à une base de données
  • ibase_db_info — Demande des statistiques sur une base de données Interbase
  • ibase_delete_user — Efface un utilisateur d'une base de données de sécurité
  • ibase_drop_db — Supprime une base de données iBase
  • ibase_errcode — Retourne le code d'erreur iBase
  • ibase_errmsg — Retourne un message d'erreur
  • ibase_execute — Exécute une requête iBase préparée
  • ibase_fetch_assoc — Récupère une ligne du résultat d'une requête dans un tableau associatif
  • ibase_fetch_object — Lit une ligne dans une base Interbase dans un objet
  • ibase_fetch_row — Lit une ligne d'une base Interbase
  • ibase_field_info — Lit les informations sur un champ iBase
  • ibase_free_event_handler — Libère un gestionnaire d'événements iBase
  • ibase_free_query — Libère la mémoire réservée par une requête préparée
  • ibase_free_result — Libère un résultat iBase
  • ibase_gen_id — Incrémente le générateur donné et retourne sa nouvelle valeur
  • ibase_maintain_db — Exécute une commande de maintenance sur une base de données Interbase
  • ibase_modify_user — Modifie un utilisateur dans une base de données de sécurité
  • ibase_name_result — Assigne un nom à un jeu de résultats iBase
  • ibase_num_fields — Retourne le nombre de colonnes dans un résultat iBase
  • ibase_num_params — Retourne le nombre de paramètres dans une requête préparée iBase
  • ibase_param_info — Retourne des informations à propos d'un paramètre dans une requête préparée iBase
  • ibase_pconnect — Ouvre une connexion persistante à une base de données InterBase
  • ibase_prepare — Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement
  • ibase_query — Exécute une requête sur une base iBase
  • ibase_restore — Restaure une sauvegarde de base de données Interbase
  • ibase_rollback_ret — Annule une transaction sans la fermer
  • ibase_rollback — Annule une transaction interBase
  • ibase_server_info — Demande des informations sur le serveur Interbase
  • ibase_service_attach — Connexion au service de gestion Interbase
  • ibase_service_detach — Déconnexion du service de gestion Interbase
  • ibase_set_event_handler — Enregistre une fonction de rappel sur un événement interBase
  • ibase_trans — Prépare une transaction interBase
  • ibase_wait_event — Attend un événement interBase


Ajoute un utilisateur à une base de données de sécurité

  • « Fonctions Firebird/InterBase
  • ibase_affected_rows »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Ajoute un utilisateur à une base de données de sécurité

ibase_add_user

(PHP 5, PHP 7)

ibase_add_user — Ajoute un utilisateur à une base de données de sécurité

Description

bool ibase_add_user ( resource $service_handle , string $user_name , string $password [, string $first_name [, string $middle_name [, string $last_name ]]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ibase_modify_user() - Modifie un utilisateur dans une base de données de sécurité
  • ibase_delete_user() - Efface un utilisateur d'une base de données de sécurité


Retourne le nombre de lignes affectées par la dernière requête iBase

  • « ibase_add_user
  • ibase_backup »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Retourne le nombre de lignes affectées par la dernière requête iBase

ibase_affected_rows

(PHP 5, PHP 7)

ibase_affected_rows — Retourne le nombre de lignes affectées par la dernière requête iBase

Description

int ibase_affected_rows ([ resource $link_identifier ] )

Retourne le nombre de lignes qui ont été affectées par la dernière requête (INSERT, UPDATE ou DELETE) qui a été exécuté dans le contexte de transaction spécifié par link_identifier.

Liste de paramètres

link_identifier

Un contexte de transaction. Si link_identifier est une ressource de connexion, la transaction par défaut est utilisée.

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.

Voir aussi

  • ibase_query() - Exécute une requête sur une base iBase
  • ibase_execute() - Exécute une requête iBase préparée


Effectue une sauvegarde de base de données InterBase

  • « ibase_affected_rows
  • ibase_blob_add »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Effectue une sauvegarde de base de données InterBase

ibase_backup

(PHP 5, PHP 7)

ibase_backup — Effectue une sauvegarde de base de données InterBase

Description

mixed ibase_backup ( resource $service_handle , string $source_db , string $dest_file [, int $options = 0 [, bool $verbose = false ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Ajoute des données dans un BLOB iBase fraîchement créé

  • « ibase_backup
  • ibase_blob_cancel »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Ajoute des données dans un BLOB iBase fraîchement créé

ibase_blob_add

(PHP 5, PHP 7)

ibase_blob_add — Ajoute des données dans un BLOB iBase fraîchement créé

Description

void ibase_blob_add ( resource $blob_handle , string $data )

ibase_blob_add() ajoute les données data dans le BLOB blob_handle, créé avec ibase_blob_create().

Liste de paramètres

blob_handle

Une ressource blob, ouverte avec la fonction ibase_blob_create().

data

Les données à ajouter.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ibase_blob_cancel() - Annule la création d'un BLOB iBase
  • ibase_blob_close() - Ferme un BLOB iBase
  • ibase_blob_create() - Crée un BLOB iBase pour ajouter des données
  • ibase_blob_import() - Crée un BLOB iBase, y copie un fichier et le referme


Annule la création d'un BLOB iBase

  • « ibase_blob_add
  • ibase_blob_close »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Annule la création d'un BLOB iBase

ibase_blob_cancel

(PHP 5, PHP 7)

ibase_blob_cancel — Annule la création d'un BLOB iBase

Description

bool ibase_blob_cancel ( resource $blob_handle )

ibase_blob_cancel() annule la création du BLOB blob_handle, créé par ibase_blob_create() s'il n'a pas encore été fermé avec ibase_blob_close().

Liste de paramètres

blob_handle

Une ressource blob, ouverte avec la fonction ibase_blob_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ibase_blob_close() - Ferme un BLOB iBase
  • ibase_blob_create() - Crée un BLOB iBase pour ajouter des données
  • ibase_blob_import() - Crée un BLOB iBase, y copie un fichier et le referme


Ferme un BLOB iBase

  • « ibase_blob_cancel
  • ibase_blob_create »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Ferme un BLOB iBase

ibase_blob_close

(PHP 5, PHP 7)

ibase_blob_close — Ferme un BLOB iBase

Description

mixed ibase_blob_close ( resource $blob_handle )

ibase_blob_close() ferme le BLOB blob_handle, ouvert en lecture avec ibase_open_blob() ou en écriture avec ibase_blob_create().

Liste de paramètres

blob_handle

Une ressource blob, ouverte avec la fonction ibase_blob_create() ou la fonction ibase_blob_open().

Valeurs de retour

Si le BLOB était lu, ibase_blob_close() retourne TRUE en cas de succès, s'il était en cours de modification, ibase_blob_close() retourne une chaîne de caractères contenant l'identifiant du BLOB qui lui a été assigné par la base de données. En cas d'échec, cette fonction retournera FALSE.

Voir aussi

  • ibase_blob_cancel() - Annule la création d'un BLOB iBase
  • ibase_blob_open() - Ouvre un BLOB iBase pour récupérer des parties de données


Crée un BLOB iBase pour ajouter des données

  • « ibase_blob_close
  • ibase_blob_echo »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Crée un BLOB iBase pour ajouter des données

ibase_blob_create

(PHP 5, PHP 7)

ibase_blob_create — Crée un BLOB iBase pour ajouter des données

Description

resource ibase_blob_create ([ resource $link_identifier = NULL ] )

ibase_blob_create() crée un nouveau BLOB à remplir avec des données, sur la connexion InterBase link_identifier.

Liste de paramètres

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

Valeurs de retour

Retourne un identifiant de BLOB à utiliser avec ibase_blob_add() ou FALSE si une erreur survient.

Voir aussi

  • ibase_blob_add() - Ajoute des données dans un BLOB iBase fraîchement créé
  • ibase_blob_cancel() - Annule la création d'un BLOB iBase
  • ibase_blob_close() - Ferme un BLOB iBase
  • ibase_blob_import() - Crée un BLOB iBase, y copie un fichier et le referme


Affiche le contenu d'un BLOB iBase au navigateur

  • « ibase_blob_create
  • ibase_blob_get »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Affiche le contenu d'un BLOB iBase au navigateur

ibase_blob_echo

(PHP 5, PHP 7)

ibase_blob_echo — Affiche le contenu d'un BLOB iBase au navigateur

Description

bool ibase_blob_echo ( string $blob_id )
bool ibase_blob_echo ( resource $link_identifier , string $blob_id )

ibase_blob_echo() ouvre le BLOB blob_id en lecture et envoie son contenu directement vers la sortie standard (le navigateur dans la plupart des cas).

Liste de paramètres

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

blob_id

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ibase_blob_open() - Ouvre un BLOB iBase pour récupérer des parties de données
  • ibase_blob_close() - Ferme un BLOB iBase
  • ibase_blob_get() - Lit len octets de données dans un BLOB iBase ouvert


Lit len octets de données dans un BLOB iBase ouvert

  • « ibase_blob_echo
  • ibase_blob_import »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Lit len octets de données dans un BLOB iBase ouvert

ibase_blob_get

(PHP 5, PHP 7)

ibase_blob_get — Lit len octets de données dans un BLOB iBase ouvert

Description

string ibase_blob_get ( resource $blob_handle , int $len )

ibase_blob_get() retourne au plus len octets du BLOB blob_handle qui a été ouvert en lecture par ibase_blob_open().

Note:

Il n'est pas possible de lire dans un BLOB ouvert en écriture par ibase_blob_create().

Liste de paramètres

blob_handle

Une ressource blob, ouverte avec la fonction ibase_blob_open().

len

La taille des données retournées.

Valeurs de retour

Retourne au plus, len octets du BLOB, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ibase_blob_get()

<?php
$result    = ibase_query("SELECT blob_value FROM table");
$data      = ibase_fetch_object($result);
$blob_data = ibase_blob_info($data->BLOB_VALUE);
$blob_hndl = ibase_blob_open($data->BLOB_VALUE);
echo         ibase_blob_get($blob_hndl, $blob_data[0]);
?>
Cet exemple ne fait pas plus qu'un ibase_blob_echo( $data->BLOB_VALUE ), mais il montre comment récupérer les informations dans une $variable pour les manipuler comme vous le voulez.

Voir aussi

  • ibase_blob_open() - Ouvre un BLOB iBase pour récupérer des parties de données
  • ibase_blob_close() - Ferme un BLOB iBase
  • ibase_blob_echo() - Affiche le contenu d'un BLOB iBase au navigateur


Crée un BLOB iBase, y copie un fichier et le referme

  • « ibase_blob_get
  • ibase_blob_info »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Crée un BLOB iBase, y copie un fichier et le referme

ibase_blob_import

(PHP 5, PHP 7)

ibase_blob_import — Crée un BLOB iBase, y copie un fichier et le referme

Description

string ibase_blob_import ( resource $link_identifier , resource $file_handle )
string ibase_blob_import ( resource $file_handle )

ibase_blob_import() crée un nouveau BLOB sur la connexion iBase link_identifier, y copie le fichier file_handle en entier, le referme et en retourne l'identifiant assigné

Liste de paramètres

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

file_handle

La ressource de fichier, retournée par la fonction fopen().

Valeurs de retour

Retourne l'identifiant du BLOB en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ibase_blob_import()

<?php
$dbh = ibase_connect($host, $username, $password);
$filename = '/tmp/bar';

$fd = fopen($filename, 'r');
if ($fd) {

    $blob = ibase_blob_import($dbh, $fd);
    fclose($fd);

    if (!is_string($blob)) {
        // échec de l'importation
    } else {
        $query = "INSERT INTO foo (name, data) VALUES ('$filename', ?)";
        $prepared = ibase_prepare($dbh, $query);
        if (!ibase_execute($prepared, $blob)) {
            // échec de l'insertion de l'enregistrement
        }
    }
} else {
    // impossible d'ouvrir le fichier
}
?>

Voir aussi

  • ibase_blob_add() - Ajoute des données dans un BLOB iBase fraîchement créé
  • ibase_blob_cancel() - Annule la création d'un BLOB iBase
  • ibase_blob_close() - Ferme un BLOB iBase
  • ibase_blob_create() - Crée un BLOB iBase pour ajouter des données


Retourne la taille d'un BLOB iBase et d'autres informations utiles

  • « ibase_blob_import
  • ibase_blob_open »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Retourne la taille d'un BLOB iBase et d'autres informations utiles

ibase_blob_info

(PHP 5, PHP 7)

ibase_blob_info — Retourne la taille d'un BLOB iBase et d'autres informations utiles

Description

array ibase_blob_info ( resource $link_identifier , string $blob_id )
array ibase_blob_info ( string $blob_id )

Retourne la taille d'un BLOB iBase et d'autres informations utiles.

Liste de paramètres

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

blob_id

L'identifiant du BLOB.

Valeurs de retour

Retourne un tableau contenant des informations à propos du BLOB blob_id. Les informations sont la taille du BLOB, le nombre de segments qu'il contient, la taille du segment le plus large, et indiquent s'il s'agit d'un BLOB stream ou segmenté.


Ouvre un BLOB iBase pour récupérer des parties de données

  • « ibase_blob_info
  • ibase_close »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Ouvre un BLOB iBase pour récupérer des parties de données

ibase_blob_open

(PHP 5, PHP 7)

ibase_blob_open — Ouvre un BLOB iBase pour récupérer des parties de données

Description

resource ibase_blob_open ( resource $link_identifier , string $blob_id )
resource ibase_blob_open ( string $blob_id )

Ouvre un BLOB iBase pour récupérer des parties de données.

Liste de paramètres

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

blob_id

L'identifiant du BLOB.

Valeurs de retour

Retourne une ressource BLOB pour une utilisation avec la fonction ibase_blob_get() ou FALSE si une erreur survient.

Voir aussi

  • ibase_blob_close() - Ferme un BLOB iBase
  • ibase_blob_echo() - Affiche le contenu d'un BLOB iBase au navigateur
  • ibase_blob_get() - Lit len octets de données dans un BLOB iBase ouvert


Ferme une connexion à une base de données Interbase

  • « ibase_blob_open
  • ibase_commit_ret »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Ferme une connexion à une base de données Interbase

ibase_close

(PHP 5, PHP 7)

ibase_close — Ferme une connexion à une base de données Interbase

Description

bool ibase_close ([ resource $connection_id = NULL ] )

Ferme une connexion à une base de données Interbase. Cette fonction prend comme argument l'identifiant de connexion connection_id retourné par ibase_connect(). Les transactions par défaut sont validées et les autres sont annulées.

Liste de paramètres

connection_id

Un identifiant de connexion à InterBase, retourné par la fonction ibase_connect(). S'il est omis, la dernière connexion ouverte sera utilisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ibase_connect() - Ouvre une connexion à une base de données
  • ibase_pconnect() - Ouvre une connexion persistante à une base de données InterBase


Valide une transaction iBase sans la refermer

  • « ibase_close
  • ibase_commit »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Valide une transaction iBase sans la refermer

ibase_commit_ret

(PHP 5, PHP 7)

ibase_commit_ret — Valide une transaction iBase sans la refermer

Description

bool ibase_commit_ret ([ resource $link_or_trans_identifier = NULL ] )

Valide une transaction iBase sans la refermer.

Liste de paramètres

link_or_trans_identifier

Appelée sans argument, elle valide la transaction par défaut de la connexion par défaut. Si l'argument link_or_trans_identifier est un identifiant de connexion, sa transaction par défaut est validée. Si l'argument link_or_trans_identifier est un identifiant de transaction, celle-ci sera validée. Le contexte de transaction sera retenu et, donc, les requêtes exécutées dans cette transaction ne seront pas invalidées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Valide une transaction iBase

  • « ibase_commit_ret
  • ibase_connect »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Valide une transaction iBase

ibase_commit

(PHP 5, PHP 7)

ibase_commit — Valide une transaction iBase

Description

bool ibase_commit ([ resource $link_or_trans_identifier = NULL ] )

Valide une transaction iBase.

Liste de paramètres

link_or_trans_identifier

Appelée sans argument, elle valide la transaction par défaut de la connexion par défaut. Si l'argument link_or_trans_identifier est un identifiant de connexion, sa transaction par défaut est validée. Si l'argument link_or_trans_identifier est un identifiant de transaction, celle-ci sera validée. Le contexte de transaction sera retenu et, donc, les requêtes exécutées dans cette transaction ne seront pas invalidées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Ouvre une connexion à une base de données

  • « ibase_commit
  • ibase_db_info »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Ouvre une connexion à une base de données

ibase_connect

(PHP 5, PHP 7)

ibase_connect — Ouvre une connexion à une base de données

Description

resource ibase_connect ([ string $database [, string $username [, string $password [, string $charset [, int $buffers [, int $dialect [, string $role [, int $sync ]]]]]]]] )

Ouvre une connexion à une base de données Firebird/InterBase.

Si un deuxième appel est fait avec ibase_connect(), en passant les mêmes arguments, une nouvelle connexion ne sera pas ouverte, mais la connexion déjà ouverte sera retournée. La connexion sera fermée dès que le script se termine, à moins qu'elle ne soit fermée explicitement avec ibase_close(), durant le script.

Liste de paramètres

database

database doit être un chemin valide jusqu'à un fichier de base de données sur le serveur sur lequel il réside. Si le serveur est distant, il faut le préfixer avec un nom d'hôte 'hostname:' (TCP/IP) ou '//hostname/' (NetBEUI) en fonction du protocole de communication utilisé.

username

Le nom d'utilisateur. Peut être défini avec la directive ibase.default_user du fichier php.ini.

password

Le mot de passe correspondant à l'utilisateur username. Peut être défini avec la directive ibase.default_password du fichier php.ini.

charset

charset est le jeu de caractères par défaut pour la base de données.

buffers

buffers est le nombre de buffer de base à allouer pour le cache serveur. S'il est passé à 0 ou omis, le serveur le choisira de lui-même.

dialect

dialect sélectionne le dialecte SQL pour les requêtes exécutées avec cette connexion et, par défaut, il utilise le meilleur dialecte disponible.

role

Ne fonctionne qu'avec InterBase 5 et supérieur.

sync

Valeurs de retour

Retourne un identifiant de connexion Firebird/InterBase en cas de succès, ou FALSE si une erreur survient.

Erreurs / Exceptions

Si vous avez quelques erreurs comme "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (cela se produit lorsque vous tentez d'utiliser quelques caractères accentués) lorsque vous utilisez ibase_connect() et après ibase_query(), vous devez spécifier un jeu de caractères correct (i.e. ISO8859_1 ou votre jeu de caractères courant).

Exemples

Exemple #1 Exemple avec ibase_connect()

<?php
$host = 'localhost:/path/to/your.gdb';

$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';
$sth = ibase_query($dbh, $stmt);
while ($row = ibase_fetch_object($sth)) {
    echo $row->email, "\n";
}
ibase_free_result($sth);
ibase_close($dbh);
?>

Voir aussi

  • ibase_pconnect() - Ouvre une connexion persistante à une base de données InterBase
  • ibase_close() - Ferme une connexion à une base de données Interbase


Demande des statistiques sur une base de données Interbase

  • « ibase_connect
  • ibase_delete_user »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Demande des statistiques sur une base de données Interbase

ibase_db_info

(PHP 5, PHP 7)

ibase_db_info — Demande des statistiques sur une base de données Interbase

Description

string ibase_db_info ( resource $service_handle , string $db , int $action [, int $argument = 0 ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Efface un utilisateur d'une base de données de sécurité

  • « ibase_db_info
  • ibase_drop_db »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Efface un utilisateur d'une base de données de sécurité

ibase_delete_user

(PHP 5, PHP 7)

ibase_delete_user — Efface un utilisateur d'une base de données de sécurité

Description

bool ibase_delete_user ( resource $service_handle , string $user_name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ibase_add_user() - Ajoute un utilisateur à une base de données de sécurité
  • ibase_modify_user() - Modifie un utilisateur dans une base de données de sécurité


Supprime une base de données iBase

  • « ibase_delete_user
  • ibase_errcode »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Supprime une base de données iBase

ibase_drop_db

(PHP 5, PHP 7)

ibase_drop_db — Supprime une base de données iBase

Description

bool ibase_drop_db ([ resource $connection = NULL ] )

ibase_drop_db() supprime une base de données qui a été ouverte par ibase_connect() ou ibase_pconnect(). La base de données est refermée et supprimée du serveur.

Liste de paramètres

connection

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ibase_connect() - Ouvre une connexion à une base de données
  • ibase_pconnect() - Ouvre une connexion persistante à une base de données InterBase


Retourne le code d'erreur iBase

  • « ibase_drop_db
  • ibase_errmsg »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Retourne le code d'erreur iBase

ibase_errcode

(PHP 5, PHP 7)

ibase_errcode — Retourne le code d'erreur iBase

Description

int ibase_errcode ( void )

Retourne le code erreur résultant de l'appel le plus récent à une fonction InterBase.

Valeurs de retour

Retourne le code erreur, sous la forme d'un entier, ou FALSE si aucune erreur n'est survenue.

Voir aussi

  • ibase_errmsg() - Retourne un message d'erreur


Retourne un message d'erreur

  • « ibase_errcode
  • ibase_execute »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Retourne un message d'erreur

ibase_errmsg

(PHP 5, PHP 7)

ibase_errmsg — Retourne un message d'erreur

Description

string ibase_errmsg ( void )

Retourne une chaîne contenant les messages d'erreurs.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères, ou FALSE si aucune erreur n'est survenue.

Voir aussi

  • ibase_errcode() - Retourne le code d'erreur iBase


Exécute une requête iBase préparée

  • « ibase_errmsg
  • ibase_fetch_assoc »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Exécute une requête iBase préparée

ibase_execute

(PHP 5, PHP 7)

ibase_execute — Exécute une requête iBase préparée

Description

resource ibase_execute ( resource $query [, mixed $bind_arg [, mixed $... ]] )

Exécute une requête iBase préparée.

ibase_execute() est beaucoup plus efficace que ibase_query(), si vous effectuez plusieurs fois la même requête en ne changeant que quelques paramètres.

Liste de paramètres

query

Une requête InterBase, préparée avec la fonction ibase_prepare().

bind_arg

...

Valeurs de retour

Si la requête émet une erreur, la fonction retournera FALSE. Si la requête réussie, et qu'il y a un jeu de résultats (pouvant être vide), la fonction retourne un identifiant de résultats. Si la requête réussie et qu'il n'y a pas de résultat, la fonction retourne TRUE.

Note:

ibase_execute() retourne le nombre d'enregistrements affectés par la requête (si supérieur à 0). Pour une requête qui réussie mais qui ne renvoie aucun enregistrement (e.g un UPDATE sur un enregistrement inexistant), ibase_execute() retournera TRUE.

Exemples

Exemple #1 Exemple avec ibase_execute()

<?php

$dbh = ibase_connect($host, $username, $password);

$updates = array(
    1 => 'Eric',
    5 => 'Filip',
    7 => 'Larry'
);

$query = ibase_prepare($dbh, "UPDATE FOO SET BAR = ? WHERE BAZ = ?");

foreach ($updates as $baz => $bar) {
    ibase_execute($query, $bar, $baz);
}

?>

Voir aussi

  • ibase_query() - Exécute une requête sur une base iBase


Récupère une ligne du résultat d'une requête dans un tableau associatif

  • « ibase_execute
  • ibase_fetch_object »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Récupère une ligne du résultat d'une requête dans un tableau associatif

ibase_fetch_assoc

(PHP 5, PHP 7)

ibase_fetch_assoc — Récupère une ligne du résultat d'une requête dans un tableau associatif

Description

array ibase_fetch_assoc ( resource $result [, int $fetch_flag = 0 ] )

Récupère une ligne du résultat d'une requête dans un tableau associatif.

ibase_fetch_assoc() récupère une ligne de données à partir de result. Si deux ou plus colonnes ont le même nom de champ, la dernière colonne prendra précédence. Pour accéder aux autres colonnes du même nom, vous devez soit le faire avec leurs indices numériques en utilisant ibase_fetch_row() ou en utilisant des alias dans votre requête.

Liste de paramètres

result

Le jeu de résultats.

fetch_flag

fetch_flag est une combinaison des constantes IBASE_TEXT et IBASE_UNIXTIME. Passer IBASE_TEXT fait retourner le contenu du BLOB au lieu de l'ID du BLOB. Passer IBASE_UNIXTIME fait retourner les valeurs date/time sous forme de timestamps UNIX au lieu de chaînes formatées.

Valeurs de retour

Retourne un tableau associatif qui correspond à la ligne récupérée. Les appels suivants renvoient la ligne qui suit dans le jeu de résultats, ou FALSE s'il n'y a plus de lignes.

Voir aussi

  • ibase_fetch_row() - Lit une ligne d'une base Interbase
  • ibase_fetch_object() - Lit une ligne dans une base Interbase dans un objet


Lit une ligne dans une base Interbase dans un objet

  • « ibase_fetch_assoc
  • ibase_fetch_row »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Lit une ligne dans une base Interbase dans un objet

ibase_fetch_object

(PHP 5, PHP 7)

ibase_fetch_object — Lit une ligne dans une base Interbase dans un objet

Description

object ibase_fetch_object ( resource $result_id [, int $fetch_flag = 0 ] )

Lit une ligne dans une base Interbase et la place dans un pseudo objet.

Les prochains appels à la fonction ibase_fetch_object() retourneront la prochaine ligne du jeu de résultats.

Liste de paramètres

result_id

Un identifiant de résultat InterBase, obtenu soit par la fonction ibase_query(), soit par la fonction ibase_execute().

fetch_flag

fetch_flag est une combinaison des constantes IBASE_TEXT et IBASE_UNIXTIME. Passer IBASE_TEXT fait retourner le contenu du BLOB au lieu de l'ID du BLOB. Passer IBASE_UNIXTIME fait retourner les valeurs date/time sous forme de timestamps UNIX au lieu de chaînes formatées.

Valeurs de retour

Retourne un objet contenant les informations de la ligne, ou FALSE s'il n'y a plus de ligne.

Exemples

Exemple #1 Exemple avec ibase_fetch_object()

<?php
$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';
$sth = ibase_query($dbh, $stmt);
while ($row = ibase_fetch_object($sth)) {
    echo $row->email . "\n";
}
ibase_close($dbh);
?>

Voir aussi

  • ibase_fetch_row() - Lit une ligne d'une base Interbase
  • ibase_fetch_assoc() - Récupère une ligne du résultat d'une requête dans un tableau associatif


Lit une ligne d'une base Interbase

  • « ibase_fetch_object
  • ibase_field_info »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Lit une ligne d'une base Interbase

ibase_fetch_row

(PHP 5, PHP 7)

ibase_fetch_row — Lit une ligne d'une base Interbase

Description

array ibase_fetch_row ( resource $result_identifier [, int $fetch_flag = 0 ] )

ibase_fetch_row() récupère une ligne de données depuis le jeu de résultats donné.

Les appels suivants à ibase_fetch_row() vont retourner la prochaine ligne dans le résultat, ou bien FALSE s'il n'y a plus de ligne.

Liste de paramètres

result_identifier

Un identifiant de résultat InterBase.

fetch_flag

fetch_flag est une combinaison des constantes IBASE_TEXT et IBASE_UNIXTIME. Passer IBASE_TEXT fait retourner le contenu du BLOB au lieu de l'ID du BLOB. Passer IBASE_UNIXTIME fait retourner les valeurs date/time sous forme de timestamps UNIX au lieu de chaînes formatées.

Valeurs de retour

Retourne un tableau correspondant à la ligne récupérée, ou FALSE s'il n'y a plus de ligne. Chaque colonne du résultat est stockée dans une position du tableau, en commençant à 0.

Voir aussi

  • ibase_fetch_assoc() - Récupère une ligne du résultat d'une requête dans un tableau associatif
  • ibase_fetch_object() - Lit une ligne dans une base Interbase dans un objet


Lit les informations sur un champ iBase

  • « ibase_fetch_row
  • ibase_free_event_handler »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Lit les informations sur un champ iBase

ibase_field_info

(PHP 5, PHP 7)

ibase_field_info — Lit les informations sur un champ iBase

Description

array ibase_field_info ( resource $result , int $field_number )

Retourne un tableau contenant les informations d'un champ, après qu'une requête de type sélection ait été exécutée.

Liste de paramètres

result

Un identifiant de résultat InterBase.

field_number

Position du champ.

Valeurs de retour

Retourne un tableau contenant les clés suivantes : name, alias, relation, length et type.

Exemples

Exemple #1 Exemple avec ibase_field_info()

<?php
$rs = ibase_query("SELECT * FROM tablename");
$coln = ibase_num_fields($rs);
for ($i = 0; $i < $coln; $i++) {
    $col_info = ibase_field_info($rs, $i);
    echo "nom : ". $col_info['name']. "\n";
    echo "alias : ". $col_info['alias']. "\n";
    echo "relation : ". $col_info['relation']. "\n";
    echo "taille : ". $col_info['length']. "\n";
    echo "type : ". $col_info['type']. "\n";
}
?>

Voir aussi

  • ibase_num_fields() - Retourne le nombre de colonnes dans un résultat iBase


Libère un gestionnaire d'événements iBase

  • « ibase_field_info
  • ibase_free_query »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Libère un gestionnaire d'événements iBase

ibase_free_event_handler

(PHP 5, PHP 7)

ibase_free_event_handler — Libère un gestionnaire d'événements iBase

Description

bool ibase_free_event_handler ( resource $event )

ibase_free_event_handler() annule le gestionnaire d'événements enregistré, spécifié par event. La fonction de rappel ne sera plus exécutée pour les événements qu'elle devait prendre en charge.

Liste de paramètres

event

Une ressource d'événement, créée par la fonction ibase_set_event_handler().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ibase_set_event_handler() - Enregistre une fonction de rappel sur un événement interBase


Libère la mémoire réservée par une requête préparée

  • « ibase_free_event_handler
  • ibase_free_result »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Libère la mémoire réservée par une requête préparée

ibase_free_query

(PHP 5, PHP 7)

ibase_free_query — Libère la mémoire réservée par une requête préparée

Description

bool ibase_free_query ( resource $query )

Libère la mémoire réservée par une requête préparée.

Liste de paramètres

query

Une requête préparée avec la fonction ibase_prepare().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Libère un résultat iBase

  • « ibase_free_query
  • ibase_gen_id »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Libère un résultat iBase

ibase_free_result

(PHP 5, PHP 7)

ibase_free_result — Libère un résultat iBase

Description

bool ibase_free_result ( resource $result_identifier )

Libère un résultat iBase.

Liste de paramètres

result_identifier

Un jeu de caractères, créé par la fonction ibase_query() ou par la fonction ibase_execute().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Incrémente le générateur donné et retourne sa nouvelle valeur

  • « ibase_free_result
  • ibase_maintain_db »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Incrémente le générateur donné et retourne sa nouvelle valeur

ibase_gen_id

(PHP 5, PHP 7)

ibase_gen_id — Incrémente le générateur donné et retourne sa nouvelle valeur

Description

mixed ibase_gen_id ( string $generator [, int $increment = 1 [, resource $link_identifier = NULL ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Retourne une nouvelle valeur générée sous la forme d'un entier ou d'une chaîne de caractères si la valeur est trop grosse.


Exécute une commande de maintenance sur une base de données Interbase

  • « ibase_gen_id
  • ibase_modify_user »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Exécute une commande de maintenance sur une base de données Interbase

ibase_maintain_db

(PHP 5, PHP 7)

ibase_maintain_db — Exécute une commande de maintenance sur une base de données Interbase

Description

bool ibase_maintain_db ( resource $service_handle , string $db , int $action [, int $argument = 0 ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Modifie un utilisateur dans une base de données de sécurité

  • « ibase_maintain_db
  • ibase_name_result »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Modifie un utilisateur dans une base de données de sécurité

ibase_modify_user

(PHP 5, PHP 7)

ibase_modify_user — Modifie un utilisateur dans une base de données de sécurité

Description

bool ibase_modify_user ( resource $service_handle , string $user_name , string $password [, string $first_name [, string $middle_name [, string $last_name ]]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ibase_add_user() - Ajoute un utilisateur à une base de données de sécurité
  • ibase_delete_user() - Efface un utilisateur d'une base de données de sécurité


Assigne un nom à un jeu de résultats iBase

  • « ibase_modify_user
  • ibase_num_fields »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Assigne un nom à un jeu de résultats iBase

ibase_name_result

(PHP 5, PHP 7)

ibase_name_result — Assigne un nom à un jeu de résultats iBase

Description

bool ibase_name_result ( resource $result , string $name )

Assigne un nom à un jeu de résultats. Ce nom peut être utilisé plus tard dans les requêtes de type UPDATE|DELETE ... WHERE CURRENT OF name.

Liste de paramètres

result

Un jeu de résultats InterBase.

name

Le nom à assigner.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ibase_name_result()

<?php
$result = ibase_query("SELECT field1,field2 FROM table FOR UPDATE");
ibase_name_result($result, "my_cursor");

$updateqry = ibase_prepare("UPDATE table SET field2 = ? WHERE CURRENT OF my_cursor");

for ($i = 0; ibase_fetch_row($result); ++$i) {
    ibase_execute($updateqry, $i);
}
?>

Voir aussi

  • ibase_prepare() - Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement
  • ibase_execute() - Exécute une requête iBase préparée


Retourne le nombre de colonnes dans un résultat iBase

  • « ibase_name_result
  • ibase_num_params »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Retourne le nombre de colonnes dans un résultat iBase

ibase_num_fields

(PHP 5, PHP 7)

ibase_num_fields — Retourne le nombre de colonnes dans un résultat iBase

Description

int ibase_num_fields ( resource $result_id )

Retourne le nombre de colonnes dans un résultat iBase.

Liste de paramètres

result_id

Un identifiant de résultat InterBase.

Valeurs de retour

Retourne le nombre de champs, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec ibase_num_fields()

<?php
$rs = ibase_query("SELECT * FROM tablename");
$coln = ibase_num_fields($rs);
for ($i = 0; $i < $coln; $i++) {
    $col_info = ibase_field_info($rs, $i);
    echo "nom : " . $col_info['name'] . "\n";
    echo "alias : " . $col_info['alias'] . "\n";
    echo "relation : " . $col_info['relation'] . "\n";
    echo "taille : " . $col_info['length'] . "\n";
    echo "type : " . $col_info['type'] . "\n";
}
?>

Voir aussi

  • ibase_field_info() - Lit les informations sur un champ iBase


Retourne le nombre de paramètres dans une requête préparée iBase

  • « ibase_num_fields
  • ibase_param_info »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Retourne le nombre de paramètres dans une requête préparée iBase

ibase_num_params

(PHP 5, PHP 7)

ibase_num_params — Retourne le nombre de paramètres dans une requête préparée iBase

Description

int ibase_num_params ( resource $query )

ibase_num_params() retourne le nombre de paramètres dans la requête spécifiée par query. C'est le nombre d'arguments de substitution qui doivent être présents lors de l'appel de ibase_execute().

Liste de paramètres

query

La requête préparée.

Valeurs de retour

Retourne le nombre de paramètres, sous la forme d'un entier.

Voir aussi

  • ibase_prepare() - Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement
  • ibase_param_info() - Retourne des informations à propos d'un paramètre dans une requête préparée iBase


Retourne des informations à propos d'un paramètre dans une requête préparée iBase

  • « ibase_num_params
  • ibase_pconnect »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Retourne des informations à propos d'un paramètre dans une requête préparée iBase

ibase_param_info

(PHP 5, PHP 7)

ibase_param_info — Retourne des informations à propos d'un paramètre dans une requête préparée iBase

Description

array ibase_param_info ( resource $query , int $param_number )

Retourne un tableau avec des informations à propos d'un paramètre après qu'une requête n'ait été préparée.

Liste de paramètres

query

Un gestionnaire de requête préparée InterBase.

param_number

La position du paramètre.

Valeurs de retour

Retourne un tableau contenant les clés suivantes : name, alias, relation, length et type.

Voir aussi

  • ibase_field_info() - Lit les informations sur un champ iBase
  • ibase_num_params() - Retourne le nombre de paramètres dans une requête préparée iBase


Ouvre une connexion persistante à une base de données InterBase

  • « ibase_param_info
  • ibase_prepare »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Ouvre une connexion persistante à une base de données InterBase

ibase_pconnect

(PHP 5, PHP 7)

ibase_pconnect — Ouvre une connexion persistante à une base de données InterBase

Description

resource ibase_pconnect ([ string $database [, string $username [, string $password [, string $charset [, int $buffers [, int $dialect [, string $role [, int $sync ]]]]]]]] )

Ouvre une connexion persistante à une base de données InterBase.

ibase_pconnect() se comporte similairement à ibase_connect(), avec deux différences majeures.

La première est que, lors de la connexion, la fonction va essayer de trouver une connexion (persistante) déjà ouverte. Si elle la trouve, cette dernière sera retournée, plutôt qu'une nouvelle connexion. Sinon, une nouvelle connexion sera ouverte.

La deuxième est que la connexion ne sera pas fermée à la fin du script, mais restera ouverte pour utilisation ultérieure. (ibase_close() ne fermera pas une connexion ouverte avec ibase_pconnect()). Ce type de lien est alors dit 'persistant'.

Liste de paramètres

database

L'argument database doit être un chemin valide vers le fichier de la base de données sur le serveur où il réside. Si le serveur n'est pas local, il doit être préfixé avec soit 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) ou 'hostname@' (IPX/SPX), suivant le protocole utilisé.

username

Le nom d'utilisateur. Peut être défini avec la directive ibase.default_user du php.ini.

password

Le mot de passe pour l'utilisateur username. Peut être défini avec la directive ibase.default_password du php.ini.

charset

charset est le jeu de caractères par défaut pour la base de données.

buffers

buffers est le nombre de buffers de la base de données à allouer pour le cache côté serveur. Si ce paramètre vaut 0 ou s'il est omis, le serveur choisira lui-même ce nombre.

dialect

dialect sélectionne le dialecte SQL par défaut pour toutes les requêtes exécutées dans la connexion, et vaudra par défaut, le plus haut supporté par la bibliothèque cliente. Ne fonctionne qu'avec InterBase 6 et supérieur.

role

Ne fonctionne qu'avec InterBase 5 et supérieur.

sync

Valeurs de retour

Retourne un identifiant de connexion InterBase en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • ibase_close() - Ferme une connexion à une base de données Interbase
  • ibase_connect() - Ouvre une connexion à une base de données


Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement

  • « ibase_pconnect
  • ibase_query »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement

ibase_prepare

(PHP 5, PHP 7)

ibase_prepare — Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement

Description

resource ibase_prepare ( string $query )
resource ibase_prepare ( resource $link_identifier , string $query )
resource ibase_prepare ( resource $link_identifier , string $trans , string $query )

Prépare une requête afin d'y lier ultérieurement des paramètres ainsi que de l'exécuter (via la fonction ibase_execute()).

Liste de paramètres

query

Une requête InterBase.

Valeurs de retour

Retourne un gestionnaire de requête préparée, ou FALSE si une erreur survient.


Exécute une requête sur une base iBase

  • « ibase_prepare
  • ibase_restore »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Exécute une requête sur une base iBase

ibase_query

(PHP 5, PHP 7)

ibase_query — Exécute une requête sur une base iBase

Description

resource ibase_query ([ resource $link_identifier ], string $query [, int $bind_args ] )

Exécute une requête sur une base iBase.

Liste de paramètres

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

query

Une requête InterBase.

bind_args

Valeurs de retour

Si la requête émet une erreur, la fonction retournera FALSE. Si la requête est exécutée avec succès, et qu'il y a un jeu de résultats (même vide), la fonction retournera un identifiant de résultat. Si la requête est exécutée avec succès, et qu'il n'y a pas de résultat, la fonction retournera TRUE.

Note:

Dans les version 5.0.0 de PHP et suivantes, ibase_query() retourne le nombre d'enregistrements affectés par les requêtes INSERT, UPDATE et DELETE. Dans un souci de compatibilité ascendante, ibase_query() retournera TRUE si la requête réussi mais ne renvoie aucun enregistrement.

Erreurs / Exceptions

Si vous recevez une erreur du type "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (ceci survient lorsque vous essayez d'utiliser des caractères accentués) avec la fonction ibase_query(), c'est que vous devez choisir un jeu de caractères (i.e. ISO8859_1 ou votre jeu courant).

Historique

Version | Description
5.3.1 | En cas de succès, cette fonction retourne maintenant TRUE s'il n'y a aucune ligne d'affectée, alors qu'elle retournait auparavant 0 (un zéro suivi d'un espace vide).

Exemples

Exemple #1 Exemple avec ibase_query()

<?php

$host = 'localhost:/path/to/your.gdb';

$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';

$sth = ibase_query($dbh, $stmt) or die(ibase_errmsg());

?>

Voir aussi

  • ibase_errmsg() - Retourne un message d'erreur
  • ibase_fetch_row() - Lit une ligne d'une base Interbase
  • ibase_fetch_object() - Lit une ligne dans une base Interbase dans un objet
  • ibase_free_result() - Libère un résultat iBase


Restaure une sauvegarde de base de données Interbase

  • « ibase_query
  • ibase_rollback_ret »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Restaure une sauvegarde de base de données Interbase

ibase_restore

(PHP 5, PHP 7)

ibase_restore — Restaure une sauvegarde de base de données Interbase

Description

mixed ibase_restore ( resource $service_handle , string $source_file , string $dest_db [, int $options = 0 [, bool $verbose = false ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Annule une transaction sans la fermer

  • « ibase_restore
  • ibase_rollback »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Annule une transaction sans la fermer

ibase_rollback_ret

(PHP 5, PHP 7)

ibase_rollback_ret — Annule une transaction sans la fermer

Description

bool ibase_rollback_ret ([ resource $link_or_trans_identifier = NULL ] )

Annule une transaction sans la fermer.

Liste de paramètres

link_or_trans_identifier

Si ibase_rollback_ret() est appelée sans argument, elle annule la transaction par défaut du lien par défaut. Si l'argument link_or_trans_identifier est un identifiant de connexion, la transaction par défaut de cette connexion sera annulée. Si l'argument link_or_trans_identifier est un identifiant de transaction, celle-ci sera annulée. Le contexte de transaction sera retenu et, donc, les requêtes exécutées dans cette transaction ne seront pas invalidées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Annule une transaction interBase

  • « ibase_rollback_ret
  • ibase_server_info »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Annule une transaction interBase

ibase_rollback

(PHP 5, PHP 7)

ibase_rollback — Annule une transaction interBase

Description

bool ibase_rollback ([ resource $link_or_trans_identifier = NULL ] )

Annule une transaction interBase.

Liste de paramètres

link_or_trans_identifier

Lorsque ibase_rollback() est appelée sans argument, elle annule la transaction par défaut du lien par défaut. Si l'argument link_or_trans_identifier est un identifiant de connexion, la transaction par défaut de cette connexion sera annulée. Si l'argument link_or_trans_identifier est un identifiant de transaction, celle-ci sera annulée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Demande des informations sur le serveur Interbase

  • « ibase_rollback
  • ibase_service_attach »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Demande des informations sur le serveur Interbase

ibase_server_info

(PHP 5, PHP 7)

ibase_server_info — Demande des informations sur le serveur Interbase

Description

string ibase_server_info ( resource $service_handle , int $action )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Connexion au service de gestion Interbase

  • « ibase_server_info
  • ibase_service_detach »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Connexion au service de gestion Interbase

ibase_service_attach

(PHP 5, PHP 7)

ibase_service_attach — Connexion au service de gestion Interbase

Description

resource ibase_service_attach ( string $host , string $dba_username , string $dba_password )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Déconnexion du service de gestion Interbase

  • « ibase_service_attach
  • ibase_set_event_handler »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Déconnexion du service de gestion Interbase

ibase_service_detach

(PHP 5, PHP 7)

ibase_service_detach — Déconnexion du service de gestion Interbase

Description

bool ibase_service_detach ( resource $service_handle )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Enregistre une fonction de rappel sur un événement interBase

  • « ibase_service_detach
  • ibase_trans »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Enregistre une fonction de rappel sur un événement interBase

ibase_set_event_handler

(PHP 5, PHP 7)

ibase_set_event_handler — Enregistre une fonction de rappel sur un événement interBase

Description

resource ibase_set_event_handler ( callable $event_handler , string $event_name1 [, string $event_name2 [, string $... ]] )
resource ibase_set_event_handler ( resource $connection , callable $event_handler , string $event_name1 [, string $event_name2 [, string $... ]] )

ibase_set_event_handler() enregistre la fonction utilisateur PHP event_handler en tant que gestionnaire d'événements pour les événements spécifiés.

Liste de paramètres

event_handler

Fonction de rappel appelée avec le nom de l'événement et la ressource de connexion en tant qu'arguments dès qu'un événement spécifié est posté dans la base de données.

La fonction de rappel event_handler doit retourner FALSE si le gestionnaire doit être annulé. Toute autre valeur de retour est ignorée. Cette fonction accepte jusqu'à 15 arguments d'événement.

event_name1

Le nom de l'événement.

event_name2

15 événements tout au plus sont autorisés.

Valeurs de retour

La valeur retournée est une ressource d'événement. Elle peut être utilisée pour libérer le gestionnaire d'événements en utilisant ibase_free_event_handler().

Exemples

Exemple #1 Exemple avec ibase_set_event_handler()

<?php

function event_handler($event_name, $link)
{
    if ($event_name == "NEW ORDER") {
        // Traitement du nouvel ordre
        ibase_query($link, "UPDATE orders SET status='handled'");
    } else if ($event_name == "DB_SHUTDOWN") {
        // Libération du gestionnaire
        return false;
    }
}

ibase_set_event_handler($link, "event_handler", "NEW_ORDER", "DB_SHUTDOWN");
?>

Voir aussi

  • ibase_free_event_handler() - Libère un gestionnaire d'événements iBase
  • ibase_wait_event() - Attend un événement interBase


Prépare une transaction interBase

  • « ibase_set_event_handler
  • ibase_wait_event »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Prépare une transaction interBase

ibase_trans

(PHP 5, PHP 7)

ibase_trans — Prépare une transaction interBase

Description

resource ibase_trans ([ int $trans_args [, resource $link_identifier ]] )
resource ibase_trans ([ resource $link_identifier [, int $trans_args ]] )

Prépare une transaction interBase.

Note:

Le premier appel à ibase_trans() retournera la transaction par défaut pour la connexion courante. Toutes les transactions commencées par ibase_trans() seront annulées à la fin de l'exécution du script si elles n'ont pas été validées ou annulées par respectivement les fonctions ibase_commit() ou ibase_rollback().

Note:

ibase_trans() accepte plusieurs paramètres trans_args et link_identifier. Ceci permet d'effectuer des transactions sur plusieurs connexions à des bases de données différentes, qui seront validées en utilisant l'algorithme 2-phase. Cela signifie que vous pouvez mettre à jour plusieurs bases de données. Cela ne veut PAS dire que vous pouvez utiliser plusieurs bases de données dans une même requête !

Si vous utilisez les transactions sur plusieurs base de données, vous devez spécifier link_id et transaction_id dans les fonctions ibase_query() et ibase_prepare().

Liste de paramètres

trans_args

trans_args peut être une combinaison des constantes suivantes : IBASE_READ, IBASE_WRITE, IBASE_COMMITTED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT et IBASE_NOWAIT.

link_identifier

Un identifiant de connexion à InterBase. S'il est omis, la dernière connexion ouverte sera utilisée.

Valeurs de retour

Retourne une ressource de transaction, ou FALSE si une erreur survient.


Attend un événement interBase

  • « ibase_trans
  • FrontBase »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Attend un événement interBase

ibase_wait_event

(PHP 5, PHP 7)

ibase_wait_event — Attend un événement interBase

Description

string ibase_wait_event ( string $event_name1 [, string $event_name2 [, string $... ]] )
string ibase_wait_event ( resource $connection , string $event_name1 [, string $event_name2 [, string $... ]] )

ibase_wait_event() suspend l'exécution du script jusqu'à ce que l'un des événements spécifiés soit posté par la base de données. Le nom de l'événement qui a été posté est alors retourné. Cette fonction accepte jusqu'à 15 arguments événements.

Liste de paramètres

event_name1

Le nom de l'événement.

event_name2

...

Valeurs de retour

Retourne le nom de l'événement qui a été posté.

Voir aussi

  • ibase_set_event_handler() - Enregistre une fonction de rappel sur un événement interBase
  • ibase_free_event_handler() - Libère un gestionnaire d'événements iBase


FrontBase

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • FrontBase Fonctions
    • fbsql_affected_rows — Lit le nombre de lignes affectées par la dernière requête
    • fbsql_autocommit — Active ou désactive la validation automatique
    • fbsql_blob_size — Retourne la taille d'un BLOB
    • fbsql_change_user — Change le nom d'utilisateur de la session active
    • fbsql_clob_size — Retourne la taille d'un CLOB
    • fbsql_close — Ferme la connexion FrontBase
    • fbsql_commit — Valide une transaction
    • fbsql_connect — Ouvre une connexion à un serveur FrontBase
    • fbsql_create_blob — Crée un BLOB
    • fbsql_create_clob — Crée un CLOB
    • fbsql_create_db — Crée une base de données
    • fbsql_data_seek — Déplace le pointeur interne de résultat FBSQL
    • fbsql_database_password — Modifie/lit le mot de passe dans une base FBSQL
    • fbsql_database — Lit ou définit le nom de la base de données utilisée avec une connexion
    • fbsql_db_query — Envoie une requête à la base FrontBase
    • fbsql_db_status — Lit le statut courant d'une base de données
    • fbsql_drop_db — Supprime une base de données FrontBase
    • fbsql_errno — Retourne le code d'erreur FrontBase
    • fbsql_error — Retourne le message d'erreur FrontBase
    • fbsql_fetch_array — Lit toute une ligne de résultat dans un tableau
    • fbsql_fetch_assoc — Lit toute une ligne de résultat dans un tableau associatif
    • fbsql_fetch_field — Lit des informations sur une colonne dans un résultat, et retourne un objet
    • fbsql_fetch_lengths — Lit la taille de chaque colonne d'un résultat
    • fbsql_fetch_object — Lit une ligne de résultat sous forme d'objet
    • fbsql_fetch_row — Lit une ligne de résultat sous forme de tableau numérique
    • fbsql_field_flags — Lit les options associées à une colonne de résultat
    • fbsql_field_len — Retourne la taille d'un champ
    • fbsql_field_name — Lit le nom d'un champ
    • fbsql_field_seek — Déplace le pointeur de résultat
    • fbsql_field_table — Lit le nom de la table d'origine d'un champ
    • fbsql_field_type — Lit le type d'une colonne
    • fbsql_free_result — Libère le résultat de la mémoire
    • fbsql_get_autostart_info — Description
    • fbsql_hostname — Lit ou définit le nom de l'hôte à utiliser avec une connexion
    • fbsql_insert_id — Lit le dernier identifiant généré par une requête INSERT
    • fbsql_list_dbs — Liste les bases de données FBSQL
    • fbsql_list_fields — Liste les champs d'une table FrontBase
    • fbsql_list_tables — Liste les tables dans une base de données FrontBase
    • fbsql_next_result — Déplace le pointeur interne vers le résultat suivant
    • fbsql_num_fields — Lit le nombre de champs dans un résultat
    • fbsql_num_rows — Lit le nombre de lignes dans un résultat
    • fbsql_password — Lit ou définit le mot de passe à utiliser avec une connexion
    • fbsql_pconnect — Ouvre une connexion persistante sur un serveur FrontBase
    • fbsql_query — Exécute une requête sur un serveur FrontBase
    • fbsql_read_blob — Lit un BLOB dans une base de données
    • fbsql_read_clob — Lit un CLOB dans une base de données
    • fbsql_result — Lit des données dans un résultat
    • fbsql_rollback — Annule une transaction FBSQL
    • fbsql_rows_fetched — Récupère le nombre de lignes affectées par la dernière requête
    • fbsql_select_db — Sélectionne une base de données FrontBase
    • fbsql_set_characterset — Modifie le jeu de caractères pour l'entrée / sortie
    • fbsql_set_lob_mode — Modifie le mode de lecture des LOB
    • fbsql_set_password — Change le mot de passe de l'utilisateur spécifié
    • fbsql_set_transaction — Configure le verrouillage et l'isolation de transactions
    • fbsql_start_db — Démarre une base de données FBSQL
    • fbsql_stop_db — Stoppe une base de données FBSQL
    • fbsql_table_name — Récupère le nom de la table d'un champ
    • fbsql_tablename — Alias de fbsql_table_name
    • fbsql_username — Lit ou définit le nom de login à utiliser avec une connexion
    • fbsql_warnings — Active ou désactive les alertes FrontBase


Introduction

Ces fonctions vous permettent d'accéder aux serveurs SQL FrontBase. Plus de détails sur le serveur FrontBase sont disponibles sur le site de » http://www.frontbase.com/.

La documentation complète de FrontBase est disponible à » http://www.frontbase.com/cgi-bin/WebObjects/FBWebSite.woa.

Frontbase est supporté depuis PHP 4.0.6.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.3.0.


Pré-requis

Vous devez installer un serveur de bases de données FrontBase ou, tout au moins, les bibliothèques clientes fbsql, pour accéder à ces fonctions. Vous pouvez accéder au site de FrontBase à l'adresse » http://www.frontbase.com/.


Installation

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support fbsql en utilisant l'option de configuration --with-fbsql . Si vous utilisez cette option sans spécifier le chemin jusqu'au dossier d'installation fbsql, PHP recherchera les bibliothèques du client fbsql dans les dossiers habituels, sur votre système. Les utilisateurs qui ont installé FrontBase dans un dossier non standard doivent spécifier le chemin comme ceci : --with-fbsql=/path/to/fbsql . Cela va indiquer à PHP le bon emplacement des bibliothèques de FrontBase, et éviter les conflits.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration FBSQL
Nom | Défaut | Modifiable | Historique
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.autocommit | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_links | "128" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_connections | "128" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_results | "128" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.batchSize | "1000" | PHP_INI_SYSTEM | Disponible depuis PHP 4.2.0. Supprimé en PHP 5.1.0.
fbsql.default_host | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_password | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_database | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_database_password | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.mbatchSize | "1000" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6. Supprimé en PHP 4.2.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FBSQL_ASSOC (entier)
FBSQL_NUM (entier)
FBSQL_BOTH (entier)
FBSQL_LOCK_DEFERRED (entier)
FBSQL_LOCK_OPTIMISTIC (entier)
FBSQL_LOCK_PESSIMISTIC (entier)
FBSQL_ISO_READ_UNCOMMITTED (entier)
FBSQL_ISO_READ_COMMITTED (entier)
FBSQL_ISO_REPEATABLE_READ (entier)
FBSQL_ISO_SERIALIZABLE (entier)
FBSQL_ISO_VERSIONED (entier)
FBSQL_UNKNOWN (entier)
FBSQL_STOPPED (entier)
FBSQL_STARTING (entier)
FBSQL_RUNNING (entier)
FBSQL_STOPPING (entier)
FBSQL_NOEXEC (entier)
FBSQL_LOB_DIRECT (entier)
FBSQL_LOB_HANDLE (entier)


FrontBase Fonctions

Sommaire

  • fbsql_affected_rows — Lit le nombre de lignes affectées par la dernière requête
  • fbsql_autocommit — Active ou désactive la validation automatique
  • fbsql_blob_size — Retourne la taille d'un BLOB
  • fbsql_change_user — Change le nom d'utilisateur de la session active
  • fbsql_clob_size — Retourne la taille d'un CLOB
  • fbsql_close — Ferme la connexion FrontBase
  • fbsql_commit — Valide une transaction
  • fbsql_connect — Ouvre une connexion à un serveur FrontBase
  • fbsql_create_blob — Crée un BLOB
  • fbsql_create_clob — Crée un CLOB
  • fbsql_create_db — Crée une base de données
  • fbsql_data_seek — Déplace le pointeur interne de résultat FBSQL
  • fbsql_database_password — Modifie/lit le mot de passe dans une base FBSQL
  • fbsql_database — Lit ou définit le nom de la base de données utilisée avec une connexion
  • fbsql_db_query — Envoie une requête à la base FrontBase
  • fbsql_db_status — Lit le statut courant d'une base de données
  • fbsql_drop_db — Supprime une base de données FrontBase
  • fbsql_errno — Retourne le code d'erreur FrontBase
  • fbsql_error — Retourne le message d'erreur FrontBase
  • fbsql_fetch_array — Lit toute une ligne de résultat dans un tableau
  • fbsql_fetch_assoc — Lit toute une ligne de résultat dans un tableau associatif
  • fbsql_fetch_field — Lit des informations sur une colonne dans un résultat, et retourne un objet
  • fbsql_fetch_lengths — Lit la taille de chaque colonne d'un résultat
  • fbsql_fetch_object — Lit une ligne de résultat sous forme d'objet
  • fbsql_fetch_row — Lit une ligne de résultat sous forme de tableau numérique
  • fbsql_field_flags — Lit les options associées à une colonne de résultat
  • fbsql_field_len — Retourne la taille d'un champ
  • fbsql_field_name — Lit le nom d'un champ
  • fbsql_field_seek — Déplace le pointeur de résultat
  • fbsql_field_table — Lit le nom de la table d'origine d'un champ
  • fbsql_field_type — Lit le type d'une colonne
  • fbsql_free_result — Libère le résultat de la mémoire
  • fbsql_get_autostart_info — Description
  • fbsql_hostname — Lit ou définit le nom de l'hôte à utiliser avec une connexion
  • fbsql_insert_id — Lit le dernier identifiant généré par une requête INSERT
  • fbsql_list_dbs — Liste les bases de données FBSQL
  • fbsql_list_fields — Liste les champs d'une table FrontBase
  • fbsql_list_tables — Liste les tables dans une base de données FrontBase
  • fbsql_next_result — Déplace le pointeur interne vers le résultat suivant
  • fbsql_num_fields — Lit le nombre de champs dans un résultat
  • fbsql_num_rows — Lit le nombre de lignes dans un résultat
  • fbsql_password — Lit ou définit le mot de passe à utiliser avec une connexion
  • fbsql_pconnect — Ouvre une connexion persistante sur un serveur FrontBase
  • fbsql_query — Exécute une requête sur un serveur FrontBase
  • fbsql_read_blob — Lit un BLOB dans une base de données
  • fbsql_read_clob — Lit un CLOB dans une base de données
  • fbsql_result — Lit des données dans un résultat
  • fbsql_rollback — Annule une transaction FBSQL
  • fbsql_rows_fetched — Récupère le nombre de lignes affectées par la dernière requête
  • fbsql_select_db — Sélectionne une base de données FrontBase
  • fbsql_set_characterset — Modifie le jeu de caractères pour l'entrée / sortie
  • fbsql_set_lob_mode — Modifie le mode de lecture des LOB
  • fbsql_set_password — Change le mot de passe de l'utilisateur spécifié
  • fbsql_set_transaction — Configure le verrouillage et l'isolation de transactions
  • fbsql_start_db — Démarre une base de données FBSQL
  • fbsql_stop_db — Stoppe une base de données FBSQL
  • fbsql_table_name — Récupère le nom de la table d'un champ
  • fbsql_tablename — Alias de fbsql_table_name
  • fbsql_username — Lit ou définit le nom de login à utiliser avec une connexion
  • fbsql_warnings — Active ou désactive les alertes FrontBase


Lit le nombre de lignes affectées par la dernière requête

  • « FrontBase Fonctions
  • fbsql_autocommit »
  • PHP Manual
  • FrontBase Fonctions
  • Lit le nombre de lignes affectées par la dernière requête

fbsql_affected_rows

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_affected_rows — Lit le nombre de lignes affectées par la dernière requête

Description

int fbsql_affected_rows ([ resource $link_identifier ] )

fbsql_affected_rows() retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE, effectuée avec la connexion représentée par link_identifier.

Note:

Si vous utilisez les transactions, vous devez appeler fbsql_affected_rows() après votre requête INSERT, UPDATE ou DELETE, et non après la validation.

Si la dernière requête DELETE ne contenait pas de clause WHERE, toutes les lignes seront effacées, mais fbsql_affected_rows() retournera 0.

Note:

Lors d'une requête UPDATE, FrontBase ne modifie pas les lignes dont les anciennes valeurs sont égales aux nouvelles. Cela fait que fbsql_affected_rows() ne retournera pas le nombre de lignes traitées, mais le nombre de lignes affectées (modifiées) par la requête.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Si la dernière requête échoue, fbsql_affected_rows() retourne -1.

Voir aussi

  • fbsql_num_rows() - Lit le nombre de lignes dans un résultat


Active ou désactive la validation automatique

  • « fbsql_affected_rows
  • fbsql_blob_size »
  • PHP Manual
  • FrontBase Fonctions
  • Active ou désactive la validation automatique

fbsql_autocommit

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_autocommit — Active ou désactive la validation automatique

Description

bool fbsql_autocommit ( resource $link_identifier [, bool $OnOff ] )

Retourne l'état courant de la validation automatique.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

OnOff

Si ce paramètre optionnel est fourni, le statut de l'autovalidation sera changé.

Si le paramètre onoff vaut TRUE, FBSQL va se mettre en mode d'autovalidation, et les requêtes seront validées automatiquement si aucune erreur n'est trouvée.

Si le paramètre onoff vaut FALSE, FBSQL va se mettre en mode de validation manuelle, et les requêtes seront validées par l'appel de la fonction fbsql_commit() ou annulées par fbsql_rollback().

Valeurs de retour

Retourne le statut courant de l'autovalidation, sous la forme d'un booléen.

Voir aussi

  • fbsql_commit() - Valide une transaction
  • fbsql_rollback() - Annule une transaction FBSQL


Retourne la taille d'un BLOB

  • « fbsql_autocommit
  • fbsql_change_user »
  • PHP Manual
  • FrontBase Fonctions
  • Retourne la taille d'un BLOB

fbsql_blob_size

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_blob_size — Retourne la taille d'un BLOB

Description

int fbsql_blob_size ( string $blob_handle [, resource $link_identifier ] )

Retourne la taille du BLOB fourni.

Liste de paramètres

blob_handle

Un gestionnaire de BLOB, retourné par la fonction fbsql_create_blob().

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne la taille du BLOB, sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi

  • fbsql_clob_size() - Retourne la taille d'un CLOB


Change le nom d'utilisateur de la session active

  • « fbsql_blob_size
  • fbsql_clob_size »
  • PHP Manual
  • FrontBase Fonctions
  • Change le nom d'utilisateur de la session active

fbsql_change_user

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_change_user — Change le nom d'utilisateur de la session active

Description

bool fbsql_change_user ( string $user , string $password [, string $database [, resource $link_identifier ]] )

fbsql_change_user() change le nom de l'utilisateur sur la session courante. Si l'identification du nouvel utilisateur échoue, l'utilisateur courant reste actif.

Liste de paramètres

user

Le nom du nouvel utilisateur.

password

Le mot de passe du nouvel utilisateur.

database

Si spécifié, ce sera la base de données par défaut après le changement d'utilisateur.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne la taille d'un CLOB

  • « fbsql_change_user
  • fbsql_close »
  • PHP Manual
  • FrontBase Fonctions
  • Retourne la taille d'un CLOB

fbsql_clob_size

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_clob_size — Retourne la taille d'un CLOB

Description

int fbsql_clob_size ( string $clob_handle [, resource $link_identifier ] )

Retourne la taille du CLOB fourni.

Liste de paramètres

clob_handle

Un gestionnaire de CLOB, retourné par la fonction fbsql_create_clob().

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne la taille du CLOB, sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi

  • fbsql_blob_size() - Retourne la taille d'un BLOB


Ferme la connexion FrontBase

  • « fbsql_clob_size
  • fbsql_commit »
  • PHP Manual
  • FrontBase Fonctions
  • Ferme la connexion FrontBase

fbsql_close

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_close — Ferme la connexion FrontBase

Description

bool fbsql_close ([ resource $link_identifier ] )

Ferme la connexion au serveur FrontBase associée à la ressource spécifiée.

Utiliser fbsql_close() n'est pas nécessaire, car les liens non persistants seront automatiquement fermés à la fin du script.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fbsql_close()

<?php
$link = fbsql_connect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
echo "Connecté !";
fbsql_close($link);
?>

Voir aussi

  • fbsql_connect() - Ouvre une connexion à un serveur FrontBase
  • fbsql_pconnect() - Ouvre une connexion persistante sur un serveur FrontBase


Valide une transaction

  • « fbsql_close
  • fbsql_connect »
  • PHP Manual
  • FrontBase Fonctions
  • Valide une transaction

fbsql_commit

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_commit — Valide une transaction

Description

bool fbsql_commit ([ resource $link_identifier ] )

Termine la transaction courante en sauvant toutes les insertions, modifications et effacements sur le serveur, puis en relâchant tous les verrous qui ont été posés sur les tables. Cette commande n'est nécessaire que si FBSQL est en mode de validation manuelle.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fbsql_autocommit() - Active ou désactive la validation automatique
  • fbsql_rollback() - Annule une transaction FBSQL


Ouvre une connexion à un serveur FrontBase

  • « fbsql_commit
  • fbsql_create_blob »
  • PHP Manual
  • FrontBase Fonctions
  • Ouvre une connexion à un serveur FrontBase

fbsql_connect

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_connect — Ouvre une connexion à un serveur FrontBase

Description

 resource fbsql_connect
  ([ string $hostname = ini_get("fbsql.default_host")
 [, string $username = ini_get("fbsql.default_user")
 [, string $password = ini_get("fbsql.default_password")
]]] )

fbsql_connect() établit une connexion avec un serveur FrontBase.

Si un deuxième appel est fait à fbsql_connect() avec les mêmes arguments, une nouvelle connexion ne sera pas générée, mais la connexion déjà ouverte sera réutilisée, et retournée.

La connexion au serveur sera fermée dès la fin du script, à moins qu'elle ne soit explicitement terminée plus tôt, avec la fonction fbsql_close().

Liste de paramètres

hostname

Le nom du serveur hôte.

username

Le nom de l'utilisateur pour la connexion.

password

Le mot de passe pour la connexion.

Valeurs de retour

Retourne une ressource de connexion positive FrontBase en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fbsql_connect()

<?php

$link = fbsql_connect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
echo "Connexion effectuée !";
fbsql_close($link);

?>

Voir aussi

  • fbsql_pconnect() - Ouvre une connexion persistante sur un serveur FrontBase
  • fbsql_close() - Ferme la connexion FrontBase


Crée un BLOB

  • « fbsql_connect
  • fbsql_create_clob »
  • PHP Manual
  • FrontBase Fonctions
  • Crée un BLOB

fbsql_create_blob

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_create_blob — Crée un BLOB

Description

string fbsql_create_blob ( string $blob_data [, resource $link_identifier ] )

Crée un BLOB à partir des données fournies.

Liste de paramètres

blob_data

Les données BLOB.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un gestionnaire de ressource BLOB qui peut être utilisé avec les commandes insertions ou de mise à jour pour stocker le BLOB dans la base de données.

Exemples

Exemple #1 Exemple avec fbsql_create_blob()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
$filename = "blobfile.bin";
$fp = fopen($filename, "rb");
$blobdata = fread($fp, filesize($filename));
fclose($fp);

$blobHandle = fbsql_create_blob($blobdata, $link);

$sql = "INSERT INTO BLOB_TABLE (BLOB_COLUMN) VALUES ($blobHandle);";
$rs = fbsql_query($sql, $link);
?>

Voir aussi

  • fbsql_create_clob() - Crée un CLOB
  • fbsql_read_blob() - Lit un BLOB dans une base de données
  • fbsql_read_clob() - Lit un CLOB dans une base de données
  • fbsql_set_lob_mode() - Modifie le mode de lecture des LOB


Crée un CLOB

  • « fbsql_create_blob
  • fbsql_create_db »
  • PHP Manual
  • FrontBase Fonctions
  • Crée un CLOB

fbsql_create_clob

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_create_clob — Crée un CLOB

Description

string fbsql_create_clob ( string $clob_data [, resource $link_identifier ] )

Crée un CLOB à partir des données fournies.

Liste de paramètres

clob_data

Les données CLOB.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un gestionnaire de ressource CLOB qui pourra être utilisé avec les commandes d'insertion ou de mise à jour pour stocker le CLOB dans la base de données.

Exemples

Exemple #1 Exemple avec fbsql_create_clob()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
$filename = "clob_file.txt";
$fp = fopen($filename, "rb");
$clobdata = fread($fp, filesize($filename));
fclose($fp);

$clobHandle = fbsql_create_clob($clobdata, $link);

$sql = "INSERT INTO CLOB_TABLE (CLOB_COLUMN) VALUES ($clobHandle);";
$rs = fbsql_query($sql, $link);
?>

Voir aussi

  • fbsql_create_blob() - Crée un BLOB
  • fbsql_read_blob() - Lit un BLOB dans une base de données
  • fbsql_read_clob() - Lit un CLOB dans une base de données
  • fbsql_set_lob_mode() - Modifie le mode de lecture des LOB


Crée une base de données

  • « fbsql_create_clob
  • fbsql_data_seek »
  • PHP Manual
  • FrontBase Fonctions
  • Crée une base de données

fbsql_create_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_create_db — Crée une base de données

Description

bool fbsql_create_db ( string $database_name [, resource $link_identifier [, string $database_options ]] )

Tente de créer une nouvelle base de données sur le serveur spécifié.

Liste de paramètres

database_name

Le nom de la base de données, sous la forme d'une chaîne de caractères.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

database_options

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fbsql_create_db()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
if (fbsql_create_db("my_db")) {
    echo "Base de données créée avec succès\n";
} else {
    printf("Erreur de création de la base de données : %s\n", fbsql_error());
}
?>

Voir aussi

  • fbsql_drop_db() - Supprime une base de données FrontBase


Déplace le pointeur interne de résultat FBSQL

  • « fbsql_create_db
  • fbsql_database_password »
  • PHP Manual
  • FrontBase Fonctions
  • Déplace le pointeur interne de résultat FBSQL

fbsql_data_seek

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_data_seek — Déplace le pointeur interne de résultat FBSQL

Description

bool fbsql_data_seek ( resource $result , int $row_number )

Déplace le pointeur interne de ligne dans le résultat de requête result_identifier jusqu'à la ligne row_number.

Le prochain appel à la fonction fbsql_fetch_row() retournera cette ligne.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

row_number

Le numéro de la ligne. Commence à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fbsql_data_seek()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");

fbsql_select_db("samp_db")
    or die("Impossible de sélectionner une base");

$query = "SELECT last_name, first_name FROM friends;";
$result = fbsql_query($query)
    or die("La requête a échoué");

// Lecture des lignes en ordre inverse

for ($i = fbsql_num_rows($result) - 1; $i >=0; $i--) {
    if (!fbsql_data_seek($result, $i)) {
        printf("Impossible d'accéder à la ligne %d\n", $i);
        continue;
    }

    if (!($row = fbsql_fetch_object($result)))
        continue;

    echo $row->last_name . $row->first_name . "<br />\n";
}

fbsql_free_result($result);
?>


Modifie/lit le mot de passe dans une base FBSQL

  • « fbsql_data_seek
  • fbsql_database »
  • PHP Manual
  • FrontBase Fonctions
  • Modifie/lit le mot de passe dans une base FBSQL

fbsql_database_password

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_database_password — Modifie/lit le mot de passe dans une base FBSQL

Description

string fbsql_database_password ( resource $link_identifier [, string $database_password ] )

Modifie et lit le mot de passe de la base de données courante. Si la base de données est protégée par un mot de passe, l'utilisateur doit appeler cette fonction avant d'appeler la fonction fbsql_select_db().

Si aucune connexion n'a été ouverte PHP essaiera d'en ouvrir une en appelant la fonction fbsql_connect(), et en utilisant la connexion qui en résultera (si elle réussit).

Cette fonction ne modifie pas le mot de passe d'accès au serveur qui est stocké sur le serveur, et elle ne permet pas non plus d'aller lire ce mot de passe.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

database_password

Le mot de passe, sous la forme d'une chaîne de caractères. Si fourni, la fonction définira le mot de passe de base de données pour la connexion courante.

Valeurs de retour

Retourne le mot de passe de base de données associé à la connexion courante.

Exemples

Exemple #1 Exemple avec fbsql_create_clob()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
fbsql_database_password($link, "secret db password");
fbsql_select_db($database, $link);
?>

Voir aussi

  • fbsql_connect() - Ouvre une connexion à un serveur FrontBase
  • fbsql_pconnect() - Ouvre une connexion persistante sur un serveur FrontBase
  • fbsql_select_db() - Sélectionne une base de données FrontBase


Lit ou définit le nom de la base de données utilisée avec une connexion

  • « fbsql_database_password
  • fbsql_db_query »
  • PHP Manual
  • FrontBase Fonctions
  • Lit ou définit le nom de la base de données utilisée avec une connexion

fbsql_database

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_database — Lit ou définit le nom de la base de données utilisée avec une connexion

Description

string fbsql_database ( resource $link_identifier [, string $database ] )

Lit ou définit le nom de la base de données utilisée avec la connexion fournie.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

database

Le nom de la base de données. Si fourni, la base de données par défaut pour la connexion sera changé en database.

Valeurs de retour

Retourne le nom de la base de données utilisée avec cette connexion.


Envoie une requête à la base FrontBase

  • « fbsql_database
  • fbsql_db_status »
  • PHP Manual
  • FrontBase Fonctions
  • Envoie une requête à la base FrontBase

fbsql_db_query

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_db_query — Envoie une requête à la base FrontBase

Description

resource fbsql_db_query ( string $database , string $query [, resource $link_identifier ] )

Sélectionne une base de données et y exécute une requête.

Liste de paramètres

database

La base de données à sélectionner.

query

La requête SQL à exécuter.

Note:

La requête doit toujours se terminer par un point virgule.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un identifiant de résultat positif FrontBase ou FALSE si une erreur survient.

Voir aussi

  • fbsql_query() - Exécute une requête sur un serveur FrontBase
  • fbsql_connect() - Ouvre une connexion à un serveur FrontBase


Lit le statut courant d'une base de données

  • « fbsql_db_query
  • fbsql_drop_db »
  • PHP Manual
  • FrontBase Fonctions
  • Lit le statut courant d'une base de données

fbsql_db_status

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

fbsql_db_status — Lit le statut courant d'une base de données

Description

int fbsql_db_status ( string $database_name [, resource $link_identifier ] )

Lit le statut courant de la base de données fournie.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un entier correspondant au statut courant. Il peut être une des constantes suivantes :

  • FALSE - Le gestion de cet hôte était invalide. Cette erreur survient lorsque PHP se connecte directement à une base de données en utilisant un numéro de port. FBExec peut être disponible sur un serveur, mais aucune connexion n'a été faite.
  • FBSQL_UNKNOWN - Le statut est inconnu.
  • FBSQL_STOPPED - La base de données ne fonctionne pas. Utilisez fbsql_start_db() pour démarrer la base.
  • FBSQL_STARTING - La base de données démarre.
  • FBSQL_RUNNING - La base de données fonctionne, et est disponible pour recevoir des requêtes SQL.
  • FBSQL_STOPPING - La base de données s'arrête.
  • FBSQL_NOEXEC - FBExec ne fonctionne par sur le serveur, et il n'est pas possible d'obtenir le statut de la base de données.

Voir aussi

  • fbsql_start_db() - Démarre une base de données FBSQL
  • fbsql_stop_db() - Stoppe une base de données FBSQL


Supprime une base de données FrontBase

  • « fbsql_db_status
  • fbsql_errno »
  • PHP Manual
  • FrontBase Fonctions
  • Supprime une base de données FrontBase

fbsql_drop_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_drop_db — Supprime une base de données FrontBase

Description

bool fbsql_drop_db ( string $database_name [, resource $link_identifier ] )

fbsql_drop_db() essaie de supprimer la base de données database_name, sur la connexion représentée par link_identifier.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fbsql_create_db() - Crée une base de données


Retourne le code d'erreur FrontBase

  • « fbsql_drop_db
  • fbsql_error »
  • PHP Manual
  • FrontBase Fonctions
  • Retourne le code d'erreur FrontBase

fbsql_errno

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_errno — Retourne le code d'erreur FrontBase

Description

int fbsql_errno ([ resource $link_identifier ] )

Retourne le code d'erreur de la dernière opération sur la connexion FrontBase fournie.

Les erreurs générées par FrontBase ne sont pas automatiquement affichées comme alertes. Il faut utiliser la fonction fbsql_errno() pour connaître leur code d'erreur. Notez que cette fonction ne retourne que le code d'erreur généré par la dernière fonction FrontBase (hormis fbsql_error() et fbsql_errno()) : si vous voulez repérer les erreurs, faites-le dès que les fonctions ont été appelées.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne le numéro de l'erreur généré par la dernière fonction fbsql ou 0 (zéro) si aucune erreur survient.

Exemples

Exemple #1 Exemple avec fbsql_errno()

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

Voir aussi

  • fbsql_error() - Retourne le message d'erreur FrontBase
  • fbsql_warnings() - Active ou désactive les alertes FrontBase


Retourne le message d'erreur FrontBase

  • « fbsql_errno
  • fbsql_fetch_array »
  • PHP Manual
  • FrontBase Fonctions
  • Retourne le message d'erreur FrontBase

fbsql_error

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_error — Retourne le message d'erreur FrontBase

Description

string fbsql_error ([ resource $link_identifier ] )

Retourne le dernier message d'erreur généré par le serveur FrontBase.

Les erreurs générées par FrontBase ne sont pas automatiquement affichées comme alertes. Il faut utiliser la fonction fbsql_errno() pour connaître leur code d'erreur. Notez que cette fonction ne retourne que le code d'erreur généré par la dernière fonction FrontBase (hormis fbsql_error() et fbsql_errno()) : si vous voulez repérer les erreurs, faites-le dès que les fonctions ont été appelées.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne le texte de l'erreur générée par la dernière fonction fbsql ou '' (une chaîne vide) si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec fbsql_error()

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

Voir aussi

  • fbsql_errno() - Retourne le code d'erreur FrontBase
  • fbsql_warnings() - Active ou désactive les alertes FrontBase


Lit toute une ligne de résultat dans un tableau

  • « fbsql_error
  • fbsql_fetch_assoc »
  • PHP Manual
  • FrontBase Fonctions
  • Lit toute une ligne de résultat dans un tableau

fbsql_fetch_array

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_array — Lit toute une ligne de résultat dans un tableau

Description

array fbsql_fetch_array ( resource $result [, int $result_type ] )

fbsql_fetch_array() est une combinaison de
fbsql_fetch_row() et
fbsql_fetch_assoc().

Il est important de noter que fbsql_fetch_array() n'est pas significativement plus lente que fbsql_fetch_row(), tandis qu'elle apporte un confort d'utilisation notable.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

result_type

Une constante et peut prendre les valeurs suivantes : FBSQL_ASSOC, FBSQL_NUM, ou FBSQL_BOTH.

Lors de l'utilisation de FBSQL_BOTH, en plus de stocker les indices numériques du tableau de résultats, il stockera les données dans des indices associatifs, en utilisant les noms des champs comme clés.

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de ligne de disponible.

Si deux colonnes (ou plus) ont le même nom, la dernière colonne sera utilisée. Pour accéder aux autres colonnes de même nom, vous devez absolument utiliser les indices numériques.

select t1.f1 as foo t2.f1 as bar from t1, t2

Exemples

Exemple #1 Exemple avec fbsql_fetch_array()

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select user_id, fullname from table");
while ($row = fbsql_fetch_array($result)) {
    echo "user_id: " . $row["user_id"] . "<br />\n";
    echo "user_id: " . $row[0] . "<br />\n";
    echo "Nom complet : " . $row["fullname"] . "<br />\n";
    echo "Nom complet : " . $row[1] . "<br />\n";
}
fbsql_free_result($result);
?>

Voir aussi

  • fbsql_fetch_row() - Lit une ligne de résultat sous forme de tableau numérique
  • fbsql_fetch_assoc() - Lit toute une ligne de résultat dans un tableau associatif
  • fbsql_fetch_object() - Lit une ligne de résultat sous forme d'objet


Lit toute une ligne de résultat dans un tableau associatif

  • « fbsql_fetch_array
  • fbsql_fetch_field »
  • PHP Manual
  • FrontBase Fonctions
  • Lit toute une ligne de résultat dans un tableau associatif

fbsql_fetch_assoc

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_assoc — Lit toute une ligne de résultat dans un tableau associatif

Description

array fbsql_fetch_assoc ( resource $result )

fbsql_fetch_assoc() est équivalent à fbsql_fetch_array() avec l'option FBSQL_ASSOC. Elle ne retourne qu'un tableau associatif.

C'est le comportement initial de fbsql_fetch_array(). Si vous avez aussi besoin des indices numériques, utilisez fbsql_fetch_array().

Il est important de noter que fbsql_fetch_assoc() n'est pas significativement plus lente que fbsql_fetch_row(), tandis qu'elle apporte un confort d'utilisation notable.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne un tableau associatif contenant la ligne courante du résultat, ou FALSE s'il n'y a plus de lignes.

Si deux colonnes (ou plus) ont le même nom, la dernière colonne sera utilisée. Pour accéder aux autres colonnes de même nom, vous devez absolument utiliser la fonction fbsql_fetch_array().

Exemples

Exemple #1 Exemple avec fbsql_fetch_assoc()

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_assoc($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
fbsql_free_result($result);
?>

Voir aussi

  • fbsql_fetch_row() - Lit une ligne de résultat sous forme de tableau numérique
  • fbsql_fetch_array() - Lit toute une ligne de résultat dans un tableau
  • fbsql_fetch_object() - Lit une ligne de résultat sous forme d'objet


Lit des informations sur une colonne dans un résultat, et retourne un objet

  • « fbsql_fetch_assoc
  • fbsql_fetch_lengths »
  • PHP Manual
  • FrontBase Fonctions
  • Lit des informations sur une colonne dans un résultat, et retourne un objet

fbsql_fetch_field

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_field — Lit des informations sur une colonne dans un résultat, et retourne un objet

Description

object fbsql_fetch_field ( resource $result [, int $field_offset ] )

Sert à lire des informations sur les champs dans le résultat fourni.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

field_offset

L'offset numérique du champ. L'index du champ commence à 0. Si aucun n'est spécifié, le prochain champ qui n'a pas été récupéré par la fonction fbsql_fetch_field() sera retourné.

Valeurs de retour

Retourne un objet contenant les informations sur le champ ou FALSE si une erreur survient.

Les propriétés de l'objet sont :

  • "name" : nom de colonne
  • "table" : nom de la table d'origine
  • "max_length" : taille maximale de la colonne
  • "not_null" : 1 si la colonne ne peut être nulle
  • "type" : type de la colonne

Exemples

Exemple #1 Exemple avec fbsql_fetch_field()

<?php
fbsql_connect($host, $user, $password)
    or die("Impossible de se connecter");
$result = fbsql_db_query("database", "select * from table")
    or die("La requête a échoué");
// lire les données de colonnes
$i = 0;
while ($i < fbsql_num_fields($result)) {
    echo "Information de la colonne $i:<br />\n";
    $meta = fbsql_fetch_field($result);
    if (!$meta) {
        echo "Aucune information disponible<br />\n";
    }
    echo "<pre>
max_length:   $meta->max_length
name:         $meta->name
not_null:     $meta->not_null
table:        $meta->table
type:         $meta->type
</pre>";
    $i++;
}
fbsql_free_result($result);
?>

Voir aussi

  • fbsql_field_seek() - Déplace le pointeur de résultat


Lit la taille de chaque colonne d'un résultat

  • « fbsql_fetch_field
  • fbsql_fetch_object »
  • PHP Manual
  • FrontBase Fonctions
  • Lit la taille de chaque colonne d'un résultat

fbsql_fetch_lengths

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_lengths — Lit la taille de chaque colonne d'un résultat

Description

array fbsql_fetch_lengths ( resource $result )

Stocke les tailles de chaque ligne de résultat retournée par
fbsql_fetch_row(),
fbsql_fetch_array() et
fbsql_fetch_object()
dans un tableau à indices numériques, commençant à 0.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne un tableau, commençant à l'offset 0, qui correspond aux tailles de chaque champ présent dans la dernière ligne récupérée par la fonction fbsql_fetch_row(), ou FALSE si une erreur survient.

Voir aussi

  • fbsql_fetch_row() - Lit une ligne de résultat sous forme de tableau numérique


Lit une ligne de résultat sous forme d'objet

  • « fbsql_fetch_lengths
  • fbsql_fetch_row »
  • PHP Manual
  • FrontBase Fonctions
  • Lit une ligne de résultat sous forme d'objet

fbsql_fetch_object

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_object — Lit une ligne de résultat sous forme d'objet

Description

object fbsql_fetch_object ( resource $result )

fbsql_fetch_object() est similaire à fbsql_fetch_array(), à la différence qu'elle retourne un objet. Vous ne pouvez alors accéder aux données qu'avec les noms des colonnes, et sous la forme de membres d'objet, et non plus avec leurs index (les nombres ne peuvent représenter un membre d'objet).

En terme de vitesse, cette fonction est identique à fbsql_fetch_array() et presque aussi rapide que fbsql_fetch_row() (la différence n'est pas significative).

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne un objet dont les propriétés correspondent à la ligne récupérée ou FALSE s'il n'y a plus de ligne à lire.

Exemples

Exemple #1 Exemple avec fbsql_fetch_object()

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
fbsql_free_result($result);
?>

Voir aussi

  • fbsql_fetch_array() - Lit toute une ligne de résultat dans un tableau
  • fbsql_fetch_row() - Lit une ligne de résultat sous forme de tableau numérique
  • fbsql_fetch_assoc() - Lit toute une ligne de résultat dans un tableau associatif


Lit une ligne de résultat sous forme de tableau numérique

  • « fbsql_fetch_object
  • fbsql_field_flags »
  • PHP Manual
  • FrontBase Fonctions
  • Lit une ligne de résultat sous forme de tableau numérique

fbsql_fetch_row

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_row — Lit une ligne de résultat sous forme de tableau numérique

Description

array fbsql_fetch_row ( resource $result )

fbsql_fetch_row() lit une ligne de données dans le résultat result et crée un tableau indexé.

Le prochain appel à fbsql_fetch_row() va lire la prochaine ligne, ou bien retourner FALSE s'il n'y a plus de ligne à lire.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée où chaque colonne du résultat y est stocké, en commençant par la position 0 ou FALSE s'il n'y a plus de ligne à lire.

Voir aussi

  • fbsql_fetch_array() - Lit toute une ligne de résultat dans un tableau
  • fbsql_fetch_assoc() - Lit toute une ligne de résultat dans un tableau associatif
  • fbsql_fetch_object() - Lit une ligne de résultat sous forme d'objet
  • fbsql_data_seek() - Déplace le pointeur interne de résultat FBSQL
  • fbsql_fetch_lengths() - Lit la taille de chaque colonne d'un résultat
  • fbsql_result() - Lit des données dans un résultat


Lit les options associées à une colonne de résultat

  • « fbsql_fetch_row
  • fbsql_field_len »
  • PHP Manual
  • FrontBase Fonctions
  • Lit les options associées à une colonne de résultat

fbsql_field_flags

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_flags — Lit les options associées à une colonne de résultat

Description

string fbsql_field_flags ( resource $result [, int $field_offset ] )

Lit les options associées à la colonne de résultat spécifiée dans le résultat.

Liste de paramètres

result

Un pointeur de résultat, retourné par la fonction fbsql_list_fields().

field_offset

La position numérique du champ. L'index des champs commence à 0.

Valeurs de retour

Retourne les options du champ field_offset, dans le résultat result. Les options sont retournées sous la forme d'un seul mot par option, séparées par des espaces, de façon à faciliter la manipulation avec explode().


Retourne la taille d'un champ

  • « fbsql_field_flags
  • fbsql_field_name »
  • PHP Manual
  • FrontBase Fonctions
  • Retourne la taille d'un champ

fbsql_field_len

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_len — Retourne la taille d'un champ

Description

int fbsql_field_len ( resource $result [, int $field_offset ] )

Retourne la taille du champ spécifié.

Liste de paramètres

result

Un pointeur de résultat, retourné par la fonction fbsql_list_fields().

field_offset

La position numérique du champ. L'index des champs commence à 0.

Valeurs de retour

Retourne la taille du champ spécifié.


Lit le nom d'un champ

  • « fbsql_field_len
  • fbsql_field_seek »
  • PHP Manual
  • FrontBase Fonctions
  • Lit le nom d'un champ

fbsql_field_name

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_name — Lit le nom d'un champ

Description

string fbsql_field_name ( resource $result [, int $field_index ] )

Lit le nom d'un champ à un index spécifié.

Liste de paramètres

result

Un pointeur de résultat, retourné par la fonction fbsql_list_fields().

field_index

La position numérique du champ. L'index des champs commence à 0.

Valeurs de retour

Retourne le nom sous la forme d'une chaîne de caractères ou FALSE si le champ n'existe pas.

Exemples

Exemple #1 Exemple avec fbsql_field_name()

<?php
// La table utilisateur est constituée de trois colonnes :
//   user_id
//   username
//   password

$res = fbsql_db_query("users", "select * from users", $link);

echo fbsql_field_name($res, 0) . "\n";
echo fbsql_field_name($res, 2);
?>

L'exemple ci-dessus va afficher :

user_id
password

Voir aussi

  • fbsql_field_type() - Lit le type d'une colonne


Déplace le pointeur de résultat

  • « fbsql_field_name
  • fbsql_field_table »
  • PHP Manual
  • FrontBase Fonctions
  • Déplace le pointeur de résultat

fbsql_field_seek

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_seek — Déplace le pointeur de résultat

Description

bool fbsql_field_seek ( resource $result [, int $field_offset ] )

Place le pointeur de colonne à la colonne spécifiée. Si le prochain appel à fbsql_fetch_field() n'inclut pas un pointeur de champs, le pointeur du champ spécifié dans fbsql_field_seek() sera retourné.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

field_offset

La position numérique du champ. L'index des champs commence à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fbsql_fetch_field() - Lit des informations sur une colonne dans un résultat, et retourne un objet


Lit le nom de la table d'origine d'un champ

  • « fbsql_field_seek
  • fbsql_field_type »
  • PHP Manual
  • FrontBase Fonctions
  • Lit le nom de la table d'origine d'un champ

fbsql_field_table

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_table — Lit le nom de la table d'origine d'un champ

Description

string fbsql_field_table ( resource $result [, int $field_offset ] )

Retourne le nom de la table d'où est issu le champ spécifié.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

field_offset

La position numérique du champ. L'index des champs commence à 0.

Valeurs de retour

Retourne le nom de la table, sous la forme d'une chaîne de caractères.


Lit le type d'une colonne

  • « fbsql_field_table
  • fbsql_free_result »
  • PHP Manual
  • FrontBase Fonctions
  • Lit le type d'une colonne

fbsql_field_type

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_type — Lit le type d'une colonne

Description

string fbsql_field_type ( resource $result [, int $field_offset ] )

fbsql_field_type() est similaire à la fonction fbsql_field_name(). Les arguments sont identiques, mais le type du champ est retourné.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

field_offset

La position numérique du champ. L'index des champs commence à 0.

Valeurs de retour

Retourne le type du champ sous la forme d'une chaîne de caractères.

Ce type peut être un parmi int, real, string, blob, et d'autres, tel que spécifié dans la » documentation de FrontBase.

Exemples

Exemple #1 Exemple avec fbsql_field_type()

<?php

fbsql_connect("localhost", "_SYSTEM", "");
fbsql_select_db("wisconsin");
$result = fbsql_query("SELECT * FROM onek;");
$fields = fbsql_num_fields($result);
$rows   = fbsql_num_rows($result);
$i = 0;
$table = fbsql_field_table($result, $i);
echo "Votre table '" . $table . "' a " . $fields . " colonnes et " . $rows . " lignes <br />";
echo "TLa table dispose des champs suivants <br />";
while ($i < $fields) {
    $type  = fbsql_field_type($result, $i);
    $name  = fbsql_field_name($result, $i);
    $len   = fbsql_field_len($result, $i);
    $flags = fbsql_field_flags($result, $i);
    echo $type . " " . $name . " " . $len . " " . $flags . "<br />";
    $i++;
}
fbsql_close();

?>

Voir aussi

  • fbsql_field_name() - Lit le nom d'un champ


Libère le résultat de la mémoire

  • « fbsql_field_type
  • fbsql_get_autostart_info »
  • PHP Manual
  • FrontBase Fonctions
  • Libère le résultat de la mémoire

fbsql_free_result

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_free_result — Libère le résultat de la mémoire

Description

bool fbsql_free_result ( resource $result )

Libérer toute la mémoire utilisée par le résultat associé à la ressource result.

fbsql_free_result() n'a besoin d'être appelé que si vous craignez que votre script ne consomme trop de mémoire, lorsqu'une requête retourne de très grands résultats. Toutes les ressources mémoire utilisées par le script sont de toute manière libérées à la fin du script.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Description

  • « fbsql_free_result
  • fbsql_hostname »
  • PHP Manual
  • FrontBase Fonctions
  • Description

fbsql_get_autostart_info

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

fbsql_get_autostart_info —

Description

array fbsql_get_autostart_info ([ resource $link_identifier ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.


Lit ou définit le nom de l'hôte à utiliser avec une connexion

  • « fbsql_get_autostart_info
  • fbsql_insert_id »
  • PHP Manual
  • FrontBase Fonctions
  • Lit ou définit le nom de l'hôte à utiliser avec une connexion

fbsql_hostname

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_hostname — Lit ou définit le nom de l'hôte à utiliser avec une connexion

Description

string fbsql_hostname ( resource $link_identifier [, string $host_name ] )

Lit ou définit le nom de l'hôte à utiliser avec une connexion.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

host_name

Si fourni, ce sera le nouveau nom de l'hôte à utiliser.

Valeurs de retour

Retourne le nom de l'hôte courant pour la connexion.

Voir aussi

  • fbsql_username() - Lit ou définit le nom de login à utiliser avec une connexion
  • fbsql_password() - Lit ou définit le mot de passe à utiliser avec une connexion


Lit le dernier identifiant généré par une requête INSERT

  • « fbsql_hostname
  • fbsql_list_dbs »
  • PHP Manual
  • FrontBase Fonctions
  • Lit le dernier identifiant généré par une requête INSERT

fbsql_insert_id

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_insert_id — Lit le dernier identifiant généré par une requête INSERT

Description

int fbsql_insert_id ([ resource $link_identifier ] )

Retourne l'identifiant généré par la colonne de type DEFAULT UNIQUE, lors de la dernière requête INSERT.

Note:

La valeur de la fonction FrontBase SQL fbsql_insert_id() retourne toujours la dernière valeur générée par DEFAULT UNIQUE et n'est jamais annulée entre les requêtes.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne l'identifiant généré depuis la dernière requête INSERT, ou 0 si la dernière requête n'a pas générée une valeur DEFAULT UNIQUE.

Si vous devez sauver cette valeur pour plus tard, n'oubliez pas d'appeler fbsql_insert_id() tout de suite après la requête qui a généré cette valeur.

Voir aussi

  • fbsql_affected_rows() - Lit le nombre de lignes affectées par la dernière requête


Liste les bases de données FBSQL

  • « fbsql_insert_id
  • fbsql_list_fields »
  • PHP Manual
  • FrontBase Fonctions
  • Liste les bases de données FBSQL

fbsql_list_dbs

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_list_dbs — Liste les bases de données FBSQL

Description

resource fbsql_list_dbs ([ resource $link_identifier ] )

Retourne un résultat contenant la liste des bases de données disponibles sur le serveur link_identifier. Utilisez la fonction fbsql_tablename() pour passer en revue ce résultat.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un pointeur de résultat ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fbsql_list_dbs()

<?php
$link = fbsql_connect('localhost', 'myname', 'secret');
$db_list = fbsql_list_dbs($link);

while ($row = fbsql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

database1
database2
database3
...

Note:

L'exemple ci-dessus peut aussi bien fonctionner avec la fonction fbsql_fetch_row() ou toute autre similaire.

Voir aussi

  • fbsql_list_fields() - Liste les champs d'une table FrontBase
  • fbsql_list_tables() - Liste les tables dans une base de données FrontBase


Liste les champs d'une table FrontBase

  • « fbsql_list_dbs
  • fbsql_list_tables »
  • PHP Manual
  • FrontBase Fonctions
  • Liste les champs d'une table FrontBase

fbsql_list_fields

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_list_fields — Liste les champs d'une table FrontBase

Description

resource fbsql_list_fields ( string $database_name , string $table_name [, resource $link_identifier ] )

Liste les champs d'une table fournie.

Liste de paramètres

database_name

Le nom de la base de données.

table_name

Le nom de la table.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un pointeur de résultat qui pourra être utilisé avec les fonctions fbsql_field_xxx ou FALSE si une erreur survient.

Erreurs / Exceptions

Une chaîne décrivant l'erreur sera placée dans la variable $phperrmsg, et ce, même si la fonction a été appelée comme ceci : @fbsql(), puis, l'erreur sera également affichée.

Exemples

Exemple #1 Exemple avec fbsql_list_fields()

<?php
$link = fbsql_connect('localhost', 'myname', 'secret');

$fields = fbsql_list_fields("database1", "table1", $link);
$columns = fbsql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo fbsql_field_name($fields, $i) . "\n";;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

field1
field2
field3
...

Voir aussi

  • fbsql_field_len() - Retourne la taille d'un champ
  • fbsql_field_name() - Lit le nom d'un champ
  • fbsql_field_type() - Lit le type d'une colonne
  • fbsql_field_flags() - Lit les options associées à une colonne de résultat


Liste les tables dans une base de données FrontBase

  • « fbsql_list_fields
  • fbsql_next_result »
  • PHP Manual
  • FrontBase Fonctions
  • Liste les tables dans une base de données FrontBase

fbsql_list_tables

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_list_tables — Liste les tables dans une base de données FrontBase

Description

resource fbsql_list_tables ( string $database [, resource $link_identifier ] )

Retourne un pointeur de résultat décrivant la base de données database.

Liste de paramètres

database

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un pointeur de résultat qui pourra être utilisé avec la fonction fbsql_tablename() pour lire les noms des tables ou FALSE si une erreur survient.

Voir aussi

  • fbsql_list_fields() - Liste les champs d'une table FrontBase
  • fbsql_list_dbs() - Liste les bases de données FBSQL


Déplace le pointeur interne vers le résultat suivant

  • « fbsql_list_tables
  • fbsql_num_fields »
  • PHP Manual
  • FrontBase Fonctions
  • Déplace le pointeur interne vers le résultat suivant

fbsql_next_result

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_next_result — Déplace le pointeur interne vers le résultat suivant

Description

bool fbsql_next_result ( resource $result )

Lorsque vous envoyez plus d'une commande SQL au serveur ou que vous exécutez une procédure stockée avec de multiples résultats, cela va conduire le serveur à retourner plusieurs jeux de lignes. fbsql_next_result() va vérifier l'existence de plusieurs résultats disponibles sur le serveur. Si un autre jeu de résultats existe, fbsql_next_result() va détruire le résultat précédent et préparer la lecture dans les nouvelles lignes.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne TRUE si un jeu de résultats additionnel est disponible, FALSE sinon.

Exemples

Exemple #1 Exemple avec fbsql_next_result()

<?php
$link = fbsql_connect("localhost", "_SYSTEM", "secret");
fbsql_select_db("MyDB", $link);
$SQL = "Select * from table1; select * from table2;";
$rs = fbsql_query($SQL, $link);
do {
    while ($row = fbsql_fetch_row($rs)) {
    }
} while (fbsql_next_result($rs));
fbsql_free_result($rs);
fbsql_close($link);
?>


Lit le nombre de champs dans un résultat

  • « fbsql_next_result
  • fbsql_num_rows »
  • PHP Manual
  • FrontBase Fonctions
  • Lit le nombre de champs dans un résultat

fbsql_num_fields

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_num_fields — Lit le nombre de champs dans un résultat

Description

int fbsql_num_fields ( resource $result )

Retourne le nombre de champs dans le résultat result.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne le nombre de champs, sous la forme d'un entier.

Voir aussi

  • fbsql_db_query() - Envoie une requête à la base FrontBase
  • fbsql_query() - Exécute une requête sur un serveur FrontBase
  • fbsql_fetch_field() - Lit des informations sur une colonne dans un résultat, et retourne un objet
  • fbsql_num_rows() - Lit le nombre de lignes dans un résultat


Lit le nombre de lignes dans un résultat

  • « fbsql_num_fields
  • fbsql_password »
  • PHP Manual
  • FrontBase Fonctions
  • Lit le nombre de lignes dans un résultat

fbsql_num_rows

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_num_rows — Lit le nombre de lignes dans un résultat

Description

int fbsql_num_rows ( resource $result )

Lit le nombre de lignes dans le jeu de résultats result.

Cette fonction n'est valable qu'avec les commandes SELECT. Pour connaître le nombre de lignes dans une requête INSERT, UPDATE ou DELETE, utilisez fbsql_affected_rows().

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne le nombre de lignes retourné par la dernière requête SELECT.

Exemples

Exemple #1 Exemple avec fbsql_num_rows()

<?php

$link = fbsql_connect("localhost", "username", "password");
fbsql_select_db("database", $link);

$result = fbsql_query("SELECT * FROM table1;", $link);
$num_rows = fbsql_num_rows($result);

echo "$num_rows lignes\n";

?>

Voir aussi

  • fbsql_affected_rows() - Lit le nombre de lignes affectées par la dernière requête
  • fbsql_connect() - Ouvre une connexion à un serveur FrontBase
  • fbsql_select_db() - Sélectionne une base de données FrontBase
  • fbsql_query() - Exécute une requête sur un serveur FrontBase


Lit ou définit le mot de passe à utiliser avec une connexion

  • « fbsql_num_rows
  • fbsql_pconnect »
  • PHP Manual
  • FrontBase Fonctions
  • Lit ou définit le mot de passe à utiliser avec une connexion

fbsql_password

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_password — Lit ou définit le mot de passe à utiliser avec une connexion

Description

string fbsql_password ( resource $link_identifier [, string $password ] )

Lit ou définit le mot de passe à utiliser avec une connexion.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

password

Si fourni, il sera le nouveau mot de passe pour la connexion.

Valeurs de retour

Retourne le mot de passe courant pour la connexion.

Voir aussi

  • fbsql_username() - Lit ou définit le nom de login à utiliser avec une connexion
  • fbsql_hostname() - Lit ou définit le nom de l'hôte à utiliser avec une connexion


Ouvre une connexion persistante sur un serveur FrontBase

  • « fbsql_password
  • fbsql_query »
  • PHP Manual
  • FrontBase Fonctions
  • Ouvre une connexion persistante sur un serveur FrontBase

fbsql_pconnect

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_pconnect — Ouvre une connexion persistante sur un serveur FrontBase

Description

 resource fbsql_pconnect
  ([ string $hostname = ini_get("fbsql.default_host")
 [, string $username = ini_get("fbsql.default_user")
 [, string $password = ini_get("fbsql.default_password")
]]] )

Ouvre une connexion persistante sur un serveur FrontBase.

Pour choisir le port d'accès au serveur FrontBase, voyez fbsql_select_db().

fbsql_pconnect() se comporte comme fbsql_connect() avec deux différences majeures :

Premièrement, lors de la connexion, fbsql_pconnect() essaie de trouver une connexion permanente déjà ouverte sur cet hôte, avec les mêmes nom d'utilisateur et mot de passe. Si une telle connexion est trouvée, son identifiant est retourné sans ouvrir de nouvelle connexion.

Deuxièmement, la connexion au serveur fbssl ne sera pas terminée avec la fin du script. Au lieu de cela, le lien sera conservé pour un prochain accès (fbsql_close() ne terminera pas une connexion persistante établie par fbsql_pconnect()).

C'est pourquoi ce type de connexion est dit 'persistant'.

Liste de paramètres

hostname

Le nom de l'hôte du serveur.

username

Le nom d'utilisateur pour la connexion.

password

Le mot de passe pour la connexion.

Valeurs de retour

Retourne un identifiant de connexion persistante FrontBase en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • fbsql_connect() - Ouvre une connexion à un serveur FrontBase


Exécute une requête sur un serveur FrontBase

  • « fbsql_pconnect
  • fbsql_read_blob »
  • PHP Manual
  • FrontBase Fonctions
  • Exécute une requête sur un serveur FrontBase

fbsql_query

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_query — Exécute une requête sur un serveur FrontBase

Description

resource fbsql_query ( string $query [, resource $link_identifier [, int $batch_size ]] )

Envoie la requête query à la base de données courante, sur le serveur.

Lorsque la requête réussit, vous pouvez utilisez fbsql_num_rows() pour savoir combien de lignes ont été retournées par une requête SELECT, ou fbsql_affected_rows() pour les autres requêtes (DELETE, INSERT, REPLACE et UPDATE).

Liste de paramètres

query

La requête SQL à exécuter.

Note:

La requête doit toujours se terminer par un point virgule.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

batch_size

Valeurs de retour

fbsql_query() retourne une ressource en cas de succès, ou FALSE, en cas d'échec. Si TRUE est retourné, cela signifie que la requête est correcte et qu'elle peut être exécutée par le serveur. Cela n'indique rien sur le nombre de lignes concernées ou retournées. Il est tout à fait possible qu'une requête réussisse mais qu'aucune ligne ne soit affectée ni retournée.

Pour les requêtes SELECT, fbsql_query() retourne une ressource de résultat, que vous pouvez passer à fbsql_result().

fbsql_query() échouera si vous n'avez pas les droits d'accès sur l'une des bases de données utilisées dans la requête.

Exemples

La requête suivante est invalide, et fbsql_query() échouera puis retournera FALSE :

Exemple #1 Exemple avec fbsql_query()

<?php
$result = fbsql_query("SELECT * WHERE 1=1")
    or die ("Requête invalide");
?>

La requête suivante est invalide si my_col n'est pas une colonne dans la table my_tbl : fbsql_query() échouera puis retournera FALSE :

Exemple #2 Exemple avec fbsql_query()

<?php
$result = fbsql_query ("SELECT my_col FROM my_tbl;")
    or die ("Requête invalide");
?>

Voir aussi

  • fbsql_affected_rows() - Lit le nombre de lignes affectées par la dernière requête
  • fbsql_db_query() - Envoie une requête à la base FrontBase
  • fbsql_free_result() - Libère le résultat de la mémoire
  • fbsql_result() - Lit des données dans un résultat
  • fbsql_select_db() - Sélectionne une base de données FrontBase
  • fbsql_connect() - Ouvre une connexion à un serveur FrontBase


Lit un BLOB dans une base de données

  • « fbsql_query
  • fbsql_read_clob »
  • PHP Manual
  • FrontBase Fonctions
  • Lit un BLOB dans une base de données

fbsql_read_blob

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_read_blob — Lit un BLOB dans une base de données

Description

string fbsql_read_blob ( string $blob_handle [, resource $link_identifier ] )

Lit un BLOB d'une base de données.

Si une sélection contient une colonne de type BLOB et/ou de type CLOB, FrontBase retournera directement les données lors de la lecture. Ce comportement par défaut peut être modifié avec la fonction fbsql_set_lob_mode() pour que les fonctions de lecture ne retournent qu'un identifiant de BLOB ou CLOB. Si un identifiant est lu, il faut utiliser la fonction fbsql_read_blob() pour obtenir la valeur du BLOB.

Liste de paramètres

blob_handle

Un gestionnaire BLOB, retourné par la fonction fbsql_create_blob().

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne une chaîne de caractères contenant les données du BLOB spécifié.

Exemples

Exemple #1 Exemple avec fbsql_read_blob()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
$sql = "SELECT BLOB_COLUMN FROM BLOB_TABLE;";
$rs = fbsql_query($sql, $link);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] contiendra maintenant les données du blob de la première
// ligne
fbsql_free_result($rs);

$rs = fbsql_query($sql, $link);
fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] contient maintenant un gestionnaire vers les données BLOB
// dans la première ligne
$blob_data = fbsql_read_blob($row_data[0]);
fbsql_free_result($rs);

?>

Voir aussi

  • fbsql_create_blob() - Crée un BLOB
  • fbsql_read_clob() - Lit un CLOB dans une base de données
  • fbsql_set_lob_mode() - Modifie le mode de lecture des LOB


Lit un CLOB dans une base de données

  • « fbsql_read_blob
  • fbsql_result »
  • PHP Manual
  • FrontBase Fonctions
  • Lit un CLOB dans une base de données

fbsql_read_clob

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_read_clob — Lit un CLOB dans une base de données

Description

string fbsql_read_clob ( string $clob_handle [, resource $link_identifier ] )

Lit un CLOB d'une base de données.

Si une sélection contient une colonne de type CLOB et/ou de type BLOB, FrontBase retournera directement les données lors de la lecture. Ce comportement par défaut peut être modifié avec la fonction fbsql_set_lob_mode() pour que les fonctions de lecture ne retournent qu'un identifiant de BLOB ou CLOB. Si un identifiant est lu, il faut utiliser la fonction fbsql_read_clob() pour obtenir la valeur du CLOB.

Liste de paramètres

clob_handle

Un gestionnaire CLOB, retourné par la fonction fbsql_create_clob().

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne une chaîne de caractères contenant les données du CLOB spécifié.

Exemples

Exemple #1 Exemple avec fbsql_read_clob()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
$sql = "SELECT CLOB_COLUMN FROM CLOB_TABLE;";
$rs = fbsql_query($sql, $link);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] contiendra maintenant les données du blob de la
// première ligne
fbsql_free_result($rs);

$rs = fbsql_query($sql, $link);
fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] contiendra maintenant un identifiant vers les
// données du clob de la première ligne
$clob_data = fbsql_read_clob($row_data[0]);
fbsql_free_result($rs);

?>

Voir aussi

  • fbsql_create_clob() - Crée un CLOB
  • fbsql_read_blob() - Lit un BLOB dans une base de données
  • fbsql_set_lob_mode() - Modifie le mode de lecture des LOB


Lit des données dans un résultat

  • « fbsql_read_clob
  • fbsql_rollback »
  • PHP Manual
  • FrontBase Fonctions
  • Lit des données dans un résultat

fbsql_result

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_result — Lit des données dans un résultat

Description

mixed fbsql_result ( resource $result [, int $row [, mixed $field ]] )

Retourne le contenu d'une cellule depuis un jeu de résultat FrontBase.

Lorsque vous travaillez sur de grands résultats, il est vivement recommandé d'utiliser les fonctions qui lisent toute une ligne d'un coup, plutôt que fbsql_result() qui travaille ligne par ligne. Elles sont beaucoup plus rapides. Notez aussi que les offset numériques sont plus rapides que les offset nominaux.

L'utilisation de fbsql_result() ne doit pas être mélangée avec d'autres fonctions qui utilisent aussi le résultat result.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

row

field

Peut être la position du champ ou le nom du champ, ou le nom de la table, suivi d'un point, suivi du nom du champ (tablename.fieldname).

Si vous n'utilisez pas d'alias ('select foo as bar from...'), utilisez plutôt le nom de la colonne.

Note:

Le fait de spécifier une position numérique pour l'argument du champ est plus rapide que de spécifier le nom du champ ou la forme tablename.fieldname comme argument.

Valeurs de retour

Voir aussi

Alternatives vivement recommandées :

  • fbsql_fetch_row() - Lit une ligne de résultat sous forme de tableau numérique
  • fbsql_fetch_array() - Lit toute une ligne de résultat dans un tableau
  • fbsql_fetch_assoc() - Lit toute une ligne de résultat dans un tableau associatif
  • fbsql_fetch_object() - Lit une ligne de résultat sous forme d'objet


Annule une transaction FBSQL

  • « fbsql_result
  • fbsql_rows_fetched »
  • PHP Manual
  • FrontBase Fonctions
  • Annule une transaction FBSQL

fbsql_rollback

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_rollback — Annule une transaction FBSQL

Description

bool fbsql_rollback ([ resource $link_identifier ] )

Termine la transaction courante en annulant toutes les requêtes émises depuis la dernière validation.

Cette commande n'est utile que si FrontBase est en mode de validation manuelle.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fbsql_autocommit() - Active ou désactive la validation automatique
  • fbsql_commit() - Valide une transaction


Récupère le nombre de lignes affectées par la dernière requête

  • « fbsql_rollback
  • fbsql_select_db »
  • PHP Manual
  • FrontBase Fonctions
  • Récupère le nombre de lignes affectées par la dernière requête

fbsql_rows_fetched

(PHP 5 >= 5.1.0, PHP 7)

fbsql_rows_fetched — Récupère le nombre de lignes affectées par la dernière requête

Description

int fbsql_rows_fetched ( resource $result )

Récupère le nombre de lignes affectées par la dernière requête.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.


Sélectionne une base de données FrontBase

  • « fbsql_rows_fetched
  • fbsql_set_characterset »
  • PHP Manual
  • FrontBase Fonctions
  • Sélectionne une base de données FrontBase

fbsql_select_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_select_db — Sélectionne une base de données FrontBase

Description

bool fbsql_select_db ([ string $database_name [, resource $link_identifier ]] )

Sélectionne une base de données FrontBase.

Le client contacte FBExec pour connaître le numéro de port à utiliser pour la connexion à la base de données. Si le nom de la base est un numéro, le système l'utilisera comme numéro de port, et ne le demandera pas à FBExec. Le serveur Frontbase peut être démarré avec la commande : FRontBase -FBExec=No -port=<port number> <database name>.

Tous les prochains appels à fbsql_query() se feront dans la base database_name.

Liste de paramètres

database_name

Le nom de la base de données à sélectionner.

Si la base de données est protégée avec un mot de passe, l'utilisateur doit appeler la fonction fbsql_database_password() avant de sélectionner la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fbsql_connect() - Ouvre une connexion à un serveur FrontBase
  • fbsql_pconnect() - Ouvre une connexion persistante sur un serveur FrontBase
  • fbsql_database_password() - Modifie/lit le mot de passe dans une base FBSQL
  • fbsql_query() - Exécute une requête sur un serveur FrontBase


Modifie le jeu de caractères pour l'entrée / sortie

  • « fbsql_select_db
  • fbsql_set_lob_mode »
  • PHP Manual
  • FrontBase Fonctions
  • Modifie le jeu de caractères pour l'entrée / sortie

fbsql_set_characterset

(PHP 5 >= 5.1.0, PHP 7)

fbsql_set_characterset — Modifie le jeu de caractères pour l'entrée / sortie

Description

void fbsql_set_characterset ( resource $link_identifier , int $characterset [, int $in_out_both ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Modifie le mode de lecture des LOB

  • « fbsql_set_characterset
  • fbsql_set_password »
  • PHP Manual
  • FrontBase Fonctions
  • Modifie le mode de lecture des LOB

fbsql_set_lob_mode

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_set_lob_mode — Modifie le mode de lecture des LOB

Description

bool fbsql_set_lob_mode ( resource $result , int $lob_mode )

Modifie le mode de lecture des LOB depuis la base de données.

Lorsque des données BLOB ou CLOB sont stockées dans une base de données FrontBase, elles peuvent l'être de manière directe ou indirecte. Si les données sont stockées directement, elles seront automatiquement lues, quel que soit le mode choisi. Si un LOB fait moins de 512 octets, il sera aussi stocké directement.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

lob_mode

Peut être un parmi :

  • FBSQL_LOB_DIRECT - les données LOB sont lues directement. Lorsque les données sont lues dans la base avec fbsql_fetch_row() ou d'autres fonctions de lecture, toutes les colonnes de type CLOB et BLOB seront retournées comme des colonnes habituelles. C'est le comportement par défaut de FrontBase.
  • FBSQL_LOB_HANDLE - Les données LOB sont lues sous forme d'identifiants. Lorsque les données sont lues dans la base avec fbsql_fetch_row() ou d'autres fonctions de lecture, toutes les colonnes de type CLOB et BLOB seront retournées sous la forme d'un identifiant. Cet identifiant sera une chaîne de 27 caractères de long, formatée comme ceci : "@'000000000000000000000000'".

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fbsql_create_blob() - Crée un BLOB
  • fbsql_create_clob() - Crée un CLOB
  • fbsql_read_blob() - Lit un BLOB dans une base de données
  • fbsql_read_clob() - Lit un CLOB dans une base de données


Change le mot de passe de l'utilisateur spécifié

  • « fbsql_set_lob_mode
  • fbsql_set_transaction »
  • PHP Manual
  • FrontBase Fonctions
  • Change le mot de passe de l'utilisateur spécifié

fbsql_set_password

(PHP 5, PHP 7)

fbsql_set_password — Change le mot de passe de l'utilisateur spécifié

Description

bool fbsql_set_password ( resource $link_identifier , string $user , string $password , string $old_password )

Change le mot de passe de l'utilisateur user.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

user

Le nom de l'utilisateur.

password

Le nouveau mot de passe à définir.

old_password

L'ancien mot de passe à remplacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure le verrouillage et l'isolation de transactions

  • « fbsql_set_password
  • fbsql_start_db »
  • PHP Manual
  • FrontBase Fonctions
  • Configure le verrouillage et l'isolation de transactions

fbsql_set_transaction

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_set_transaction — Configure le verrouillage et l'isolation de transactions

Description

void fbsql_set_transaction ( resource $link_identifier , int $locking , int $isolation )

Configure le verrouillage et l'isolation de la transaction.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

locking

Le type de verrouillage à définir. Il peut être une constante parmi : FBSQL_LOCK_DEFERRED, FBSQL_LOCK_OPTIMISTIC, ou FBSQL_LOCK_PESSIMISTIC.

isolation

Le type d'isolation à définir. Il peut être une constante parmi : FBSQL_ISO_READ_UNCOMMITTED, FBSQL_ISO_READ_COMMITTED, FBSQL_ISO_REPEATABLE_READ, FBSQL_ISO_SERIALIZABLE, ou FBSQL_ISO_VERSIONED.

Valeurs de retour

Aucune valeur n'est retournée.


Démarre une base de données FBSQL

  • « fbsql_set_transaction
  • fbsql_stop_db »
  • PHP Manual
  • FrontBase Fonctions
  • Démarre une base de données FBSQL

fbsql_start_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_start_db — Démarre une base de données FBSQL

Description

bool fbsql_start_db ( string $database_name [, resource $link_identifier [, string $database_options ]] )

Démarre une base de données FBSQL.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

database_options

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fbsql_db_status() - Lit le statut courant d'une base de données
  • fbsql_stop_db() - Stoppe une base de données FBSQL


Stoppe une base de données FBSQL

  • « fbsql_start_db
  • fbsql_table_name »
  • PHP Manual
  • FrontBase Fonctions
  • Stoppe une base de données FBSQL

fbsql_stop_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_stop_db — Stoppe une base de données FBSQL

Description

bool fbsql_stop_db ( string $database_name [, resource $link_identifier ] )

Stoppe une base de données FBSQL sur un serveur local ou distant.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fbsql_db_status() - Lit le statut courant d'une base de données
  • fbsql_start_db() - Démarre une base de données FBSQL


Récupère le nom de la table d'un champ

  • « fbsql_stop_db
  • fbsql_tablename »
  • PHP Manual
  • FrontBase Fonctions
  • Récupère le nom de la table d'un champ

fbsql_table_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_table_name — Récupère le nom de la table d'un champ

Description

string fbsql_table_name ( resource $result , int $index )

fbsql_table_name() récupère le nom de la table courante dans le jeu de résultats result.

La fonction fbsql_num_rows() peut être utilisée pour déterminer le nombre de tables dans le pointeur de résultats.

Liste de paramètres

result

Un pointeur de résultats retourné par la fonction fbsql_list_tables().

index

L'index de la table courante, sous la forme d'un entier.

Valeurs de retour

Retourne le nom de la table, sous le forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec fbsql_table_name()

<?php
fbsql_connect("localhost", "_SYSTEM", "");
$result = fbsql_list_tables("wisconsin");
$i = 0;
while ($i < fbsql_num_rows($result)) {
    $tb_names[$i] = fbsql_table_name($result, $i);
    echo $tb_names[$i] . "<br />";
    $i++;
}
?>


Alias de fbsql_table_name

  • « fbsql_table_name
  • fbsql_username »
  • PHP Manual
  • FrontBase Fonctions
  • Alias de fbsql_table_name

fbsql_tablename

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_tablename — Alias de fbsql_table_name()

Description

Cette fonction est un alias de : fbsql_table_name().


Lit ou définit le nom de login à utiliser avec une connexion

  • « fbsql_tablename
  • fbsql_warnings »
  • PHP Manual
  • FrontBase Fonctions
  • Lit ou définit le nom de login à utiliser avec une connexion

fbsql_username

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_username — Lit ou définit le nom de login à utiliser avec une connexion

Description

string fbsql_username ( resource $link_identifier [, string $username ] )

Lit ou définit le nom de login à utiliser avec la connexion.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

username

Si fourni, il sera le nouveau nom de l'utilisateur à définir.

Valeurs de retour

Retourne le nom de l'utilisateur courant utilisé avec la connexion, sous la forme d'une chaîne de caractères.

Voir aussi

  • fbsql_password() - Lit ou définit le mot de passe à utiliser avec une connexion
  • fbsql_hostname() - Lit ou définit le nom de l'hôte à utiliser avec une connexion


Active ou désactive les alertes FrontBase

  • « fbsql_username
  • IBM DB2 »
  • PHP Manual
  • FrontBase Fonctions
  • Active ou désactive les alertes FrontBase

fbsql_warnings

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_warnings — Active ou désactive les alertes FrontBase

Description

bool fbsql_warnings ([ bool $OnOff ] )

Active ou désactive les alertes FrontBase.

Liste de paramètres

OnOff

Si l'on doit activer ou non les alertes.

Valeurs de retour

Retourne TRUE si les alertes sont actives, FALSE sinon.

Voir aussi

  • fbsql_errno() - Retourne le code d'erreur FrontBase
  • fbsql_error() - Retourne le message d'erreur FrontBase


Fonctions IBM DB2, Cloudscape et Apache Derby

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions IBM DB2
    • db2_autocommit — Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de données
    • db2_bind_param — Associe une variable PHP à un paramètre d'une requête SQL
    • db2_client_info — Retourne un objet avec des propriétés qui décrivent le client de base de données DB2
    • db2_close — Ferme une connexion de base de données
    • db2_column_privileges — Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
    • db2_columns — Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
    • db2_commit — Valide la transaction
    • db2_conn_error — Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion
    • db2_conn_errormsg — Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE
    • db2_connect — Retourne une connexion à une base de données
    • db2_cursor_type — Retourne le type de curseur utilisé par une ressource
    • db2_escape_string — Utilisé pour échapper certains caractères
    • db2_exec — Exécute une requête SQL directement
    • db2_execute — Exécute une requête SQL préparée
    • db2_fetch_array — Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
    • db2_fetch_assoc — Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
    • db2_fetch_both — Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
    • db2_fetch_object — Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
    • db2_fetch_row — Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
    • db2_field_display_size — Retourne le maximum d'octets requis pour afficher une colonne
    • db2_field_name — Retourne le nom de la colonne du jeu de résultats
    • db2_field_num — Retourne la position du nom de la colonne du jeu de résultats
    • db2_field_precision — Retourne la précision de la colonne indiquée du jeu de résultats
    • db2_field_scale — Retourne l'échelle de la colonne indiquée du jeu de résultats
    • db2_field_type — Retourne le type de donnée de la colonne indiquée du jeu de résultats
    • db2_field_width — Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats
    • db2_foreign_keys — Retourne un jeu de résultats listant les clés étrangères d'une table
    • db2_free_result — Libère la mémoire associée à un jeu de résultats
    • db2_free_stmt — Libère la mémoire associée à la ressource indiquée
    • db2_get_option — Récupère la valeur d'une option pour une requête ou une connexion
    • db2_last_insert_id — Retourne le dernier ID généré par la dernière requête d'insertion
    • db2_lob_read — Récupère de grands objets binaires de tailles prédéfinies à chaque invocation
    • db2_next_result — Demande le prochain jeu de résultats de la ressource indiquée
    • db2_num_fields — Retourne le nombre de champs contenu du jeu de résultats
    • db2_num_rows — Retourne le nombre de lignes affectées par une requête SQL
    • db2_pclose — Ferme une connexion persistante à la base de données
    • db2_pconnect — Retourne une connexion persistante à une base de données
    • db2_prepare — Prépare une requête SQL à être exécutée
    • db2_primary_keys — Retourne un jeu de résultats listant les clés d'une table
    • db2_procedure_columns — Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
    • db2_procedures — Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
    • db2_result — Retourne une colonne d'une ligne d'un jeu de résultats
    • db2_rollback — Annule une transaction
    • db2_server_info — Retourne un objet avec des propriétés qui décrivent le serveur de base de données DB2
    • db2_set_option — Fixe des options pour une connexion ou des ressources
    • db2_special_columns — Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
    • db2_statistics — Retourne un jeu de résultats listant les index et statistiques d'une table
    • db2_stmt_error — Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL
    • db2_stmt_errormsg — Retourne le dernier message d'erreur d'une requête SQL
    • db2_table_privileges — Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
    • db2_tables — Retourne la liste des tables et leurs métadonnées


Introduction

Ces fonctions vous permettent un accès aux IBM DB2 Universal Database, IBM Cloudscape et Apache Derby qui utilisent DB2 Call Level Interface (CLI).


Pré-requis

Pour se connecter à des bases de données IBM DB2 Universal Database pour linux, UNIX et Windows ou IBM Cloudscape ou Apache Derby, vous devez installer un client IBM DB2 Universal Database sur le même ordinateur qui utilise PHP. Cette extension a été développé et testé avec DB2 Version 8.2.

Pour se connecter à des bases de données IBM DB2 Universal Database pour z/OS ou iSeries, vous aurez aussi besoin de IBM DB2 Connect ou l'équivalent d'un programme DRDA.

Prérequis pour Linux et Unix

L'utilisateur appelant l'exécutable PHP ou module SAPI doit spécifier l'instance DB2 avant d'accéder à ces fonctions. Vous pouvez spécifier le nom de l'instance DB2 dans php.ini en utilisant l'option de configuration ibm_db2.instance_name ou vous pouvez approvisionner le profile de l'instance DB2 avant d'appeler l'exécutable PHP.

Si vous avez créée une instance DB2 nommée db2inst1 dans /home/db2inst1, par exemple, vous pouvez ajouter la ligne suivante à votre php.ini :

ibm_db2.instance_name=db2inst1
Si vous ne spécifiez pas cette option dans php.ini, vous devez exécuter la commande suivante pour modifier vos variables d'environnement pour autoriser l'accès à DB2 :
bash$ source /home/db2inst1/sqllib/db2profile
Pour permettre votre PHP sur votre serveur web d'accéder à ces fonctions, vous devez ajouter la même commande à votre script de démarrage de votre serveur Web (typiquement /etc/init.d/httpd or /etc/init.d/apache).


Installation

Pour compiler l'extension ibm_db2, les fichiers d'en-tête et de bibliothèques de l'application de développement de DB2 doivent être présents sur votre système. DB2 ne les installe pas par défaut, vous devrez donc retourner à l'installation de DB2 et ajouter cette option. Les en-têtes des fichiers sont inclus avec le client de développement d'application DB2, disponible librement au téléchargement depuis le » support du site de la base de données universelle.

Si vous ajoutez les fichiers d'en-têtes et de bibliothèques de l'application de développement de DB2 sur un système Linux ou Unix où DB2 est déjà installé, vous devez lancer la commande db2iupdt -e pour mettre à jour les liens symboliques dans les fichiers d'en-têtes et de bibliothèques de vos exemples DB2.

ibm_db2 est une extension » PECL, alors suivez les instructions présentes dans Installation d'extensions PECL pour installer l'extension ibm_db2 pour PHP. Tapez la commande configure pour pointer vers l'emplacement de vos fichiers d'en-têtes et de bibliothèques de DB2 comme suit :

bash$ ./configure --with-IBM_DB2=/chemin/vers/DB2
La commande configure prend la valeur par défaut de /opt/IBM/db2/V8.1.

Note: Note pour les utilisateurs de IIS

Si vous utilisez le driver ibm_db2 avec IIS (Microsoft Internet Information Server), vous devez faire ce qui suit :

  • Installez DB2 avec le système de sécurité étendu.
  • Ajoutez le chemin vers le binaire PHP à la variable d'environnement PATH du système (Par défaut : C:\php\).
  • Créé une autre variable d'environnement contenant le chemin vers le fichier PHP.INI (e.g. : PHPRC = C:\php\).
  • Ajoutez l'utilisateur IUSR_COMPUTERNAME au groupe DB2USERS.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration DB2
Nom | Défaut | Modifiable | Historique
ibm_db2.binmode | "1" | PHP_INI_ALL |
ibm_db2.i5_all_pconnect | "0" | PHP_INI_SYSTEM | Disponible depuis ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | PHP_INI_SYSTEM | Disponible depuis ibm_db2 1.5.0.
ibm_db2.i5_dbcs_alloc | "0" | PHP_INI_SYSTEM | Disponible depuis ibm_db2 1.0.2.
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM |
ibm_db2.i5_ignore_userid | "0" | PHP_INI_SYSTEM | Disponible depuis ibm_db2 1.8.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ibm_db2.binmode (entier)

Cette option contrôle le mode utilisé pour convertir à partir ou vers les données binaires dans l'application PHP.

  • 1 (DB2_BINARY)

  • 2 (DB2_CONVERT)

  • 3 (DB2_PASSTHRU)

ibm_db2.i5_all_pconnect (entier)

Cette option écrase le comportement de la fonction db2_connect() pour les ouvertures et les fermetures en PHP Lorsque ibm_db2.i5_all_pconnect = 1, toutes les connexions db2 deviennent persistante (db2_pconnect()). Sous i5/OS, db2_pconnect() a des performances accrues avec de petites machines comparée à la fonction db2_connect(). Cette option est pratique dans le sens où elle permet de modifier le comportement de la fonction db2_connect() en db2_pconnect() sans pour autant modifier le code source PHP.

  • 0 : le comportement de la fonction db2_connect() est inchangé

  • 1 : le comportement de la fonction db2_connect() devient identique à la fonction db2_pconnect() pour les connexions persistantes uniquement.

ibm_db2.i5_allow_commit integer

Cette option contrôle le mode d'envoi utilisé pour les schémas de collections i5 dans l'application PHP.

  • 0 : aucun envoi (voir i5_commit pour dérivé)

  • 1 : autorise l'envoi (voir i5_commit pour dérivé)

ibm_db2.i5_dbcs_alloc (entier)

Cette option contrôle l'allocation de canevas internes de ibm_db2 pour des tampons de colonne large DBCS.

  • 0 : aucune allocation étendue (voir i5_dbcs_alloc pour dérivé)

  • 1 : utilise les allocations étendues (voir i5_dbcs_alloc pour dérivé)

ibm_db2.instance_name (chaîne de caractères)

Sur les systèmes d'exploitation Linux et UNIX, cette option définit le nom de l'instance à utiliser pour les connexions aux bases de données cataloguées. Si cette option est utilisée, sa valeur prévaut sur la variable d'environnement DB2INSTANCE.

Cette option est ignorée sur les systèmes d'exploitation Windows.

ibm_db2.i5_ignore_userid (entier)

Cette option surcharge le comportement de db2_pconnect() et db2_connect() quant aux userid et au mot de passe dans vos application PHP. Lorsque ibm_db2.i5_ignore_userid = 1, toutes les connexions db2 (persistantes comprises) reçoivent un userid et un mot de passe vide. Ainsi, Apache se connecte avec le profil courant (NOBODY). Vous ne devriez utiliser cette option que pour des sites web DB2 qui ne nécessitent aucun changement de profile. Cette option est une façon simple de définir le userid et le mot de passe pour les fonctions db2_pconnect() et db2_connect() sans pour autant modifier le code source PHP. Cette option peut être utilisée avec l'option ibm_db2.i5_all_pconnect = 1.

  • 0 : db2_(p)connect avec un userid et un mot de passé spécifique

  • 1 : db2_(p)connect avec un userid et un mot de passe nul


Types de ressources

L'extension ibm_db2 retourne des ressources de connexion, des ressources de déclaration et des ressources de jeu de résultats.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

DB2_BINARY (entier)
Spécifie que les données binaires seront retournées comme elles sont. Ceci est le mode par défaut.
DB2_CONVERT (entier)
Spécifie que les données binaires seront converties en hexadécimal et retournées comme une chaîne ASCII.
DB2_PASSTHRU (entier)
Spécifie que les données binaires seront converties en valeur NULL.
DB2_SCROLLABLE (entier)
Spécifie le curseur flottant pour une déclaration de ressource. Ce mode permet un accès aléatoire aux lignes du jeu de résultats, mais présentement, il est supporté seulement par IBM DB2 Universal Database.
DB2_FORWARD_ONLY (entier)
Spécifie un curseur d'avancement seul pour une déclaration de ressource. Il s'agit de la valeur par défaut de ce type de curseur, et il est supporté par tous les serveurs de base de données.
DB2_PARAM_IN (entier)
Spécifie que la variable PHP doit être lié comme étant un paramètre ENTRANT pour une procédure d'enregistrement.
DB2_PARAM_OUT (entier)
Spécifie que la variable PHP doit être lié comme étant un paramètre SORTANT pour une procédure d'enregistrement.
DB2_PARAM_INOUT (entier)
Spécifie que la variable PHP doit être lié comme étant un paramètre ENTRANT/SORTANT pour une procédure d'enregistrement.
DB2_PARAM_FILE (entier)
Spécifie que la colonne doit être lié directement à un fichier pour entrée.
DB2_AUTOCOMMIT_ON (entier)
Spécifie que autocommit doit être activé.
DB2_AUTOCOMMIT_OFF (entier)
Spécifie que autocommit doit être désactivé.
DB2_DOUBLE (entier)
Spécifie que la variable doit être lié à un type DOUBLE, FLOAT ou REAL.
DB2_LONG (entier)
Spécifie que la variable doit être lié à un type SMALLINT, INTEGER ou BIGINT.
DB2_CHAR (entier)
Spécifie que la variable doit être lié à un type CHAR ou VARCHAR
DB2_CASE_NATURAL (entier)
Spécifie que les noms de colonnes doivent être retournés dans leurs casses naturelles.
DB2_CASE_LOWER (entier)
Spécifie que les noms de colonnes doivent être retournés en minuscule.
DB2_CASE_UPPER (entier)
Spécifie que les noms de colonnes doivent être retournés en majuscule.
DB2_DEFERRED_PREPARE_ON (entier)
Spécifie que la préparation déferrée doit être active pour la ressource de requête spécifiée.
DB2_DEFERRED_PREPARE_OFF (entier)
Spécifie que la préparation déferrée doit être désactivée pour la ressource de requête spécifiée.


Fonctions IBM DB2

Sommaire

  • db2_autocommit — Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de données
  • db2_bind_param — Associe une variable PHP à un paramètre d'une requête SQL
  • db2_client_info — Retourne un objet avec des propriétés qui décrivent le client de base de données DB2
  • db2_close — Ferme une connexion de base de données
  • db2_column_privileges — Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns — Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_commit — Valide la transaction
  • db2_conn_error — Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion
  • db2_conn_errormsg — Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE
  • db2_connect — Retourne une connexion à une base de données
  • db2_cursor_type — Retourne le type de curseur utilisé par une ressource
  • db2_escape_string — Utilisé pour échapper certains caractères
  • db2_exec — Exécute une requête SQL directement
  • db2_execute — Exécute une requête SQL préparée
  • db2_fetch_array — Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_assoc — Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_both — Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_object — Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
  • db2_fetch_row — Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_field_display_size — Retourne le maximum d'octets requis pour afficher une colonne
  • db2_field_name — Retourne le nom de la colonne du jeu de résultats
  • db2_field_num — Retourne la position du nom de la colonne du jeu de résultats
  • db2_field_precision — Retourne la précision de la colonne indiquée du jeu de résultats
  • db2_field_scale — Retourne l'échelle de la colonne indiquée du jeu de résultats
  • db2_field_type — Retourne le type de donnée de la colonne indiquée du jeu de résultats
  • db2_field_width — Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats
  • db2_foreign_keys — Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_free_result — Libère la mémoire associée à un jeu de résultats
  • db2_free_stmt — Libère la mémoire associée à la ressource indiquée
  • db2_get_option — Récupère la valeur d'une option pour une requête ou une connexion
  • db2_last_insert_id — Retourne le dernier ID généré par la dernière requête d'insertion
  • db2_lob_read — Récupère de grands objets binaires de tailles prédéfinies à chaque invocation
  • db2_next_result — Demande le prochain jeu de résultats de la ressource indiquée
  • db2_num_fields — Retourne le nombre de champs contenu du jeu de résultats
  • db2_num_rows — Retourne le nombre de lignes affectées par une requête SQL
  • db2_pclose — Ferme une connexion persistante à la base de données
  • db2_pconnect — Retourne une connexion persistante à une base de données
  • db2_prepare — Prépare une requête SQL à être exécutée
  • db2_primary_keys — Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns — Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures — Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_result — Retourne une colonne d'une ligne d'un jeu de résultats
  • db2_rollback — Annule une transaction
  • db2_server_info — Retourne un objet avec des propriétés qui décrivent le serveur de base de données DB2
  • db2_set_option — Fixe des options pour une connexion ou des ressources
  • db2_special_columns — Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics — Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_stmt_error — Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL
  • db2_stmt_errormsg — Retourne le dernier message d'erreur d'une requête SQL
  • db2_table_privileges — Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables — Retourne la liste des tables et leurs métadonnées


Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de données

  • « Fonctions IBM DB2
  • db2_bind_param »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de données

db2_autocommit

(PECL ibm_db2 >= 1.0.0)

db2_autocommit — Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de données

Description

mixed db2_autocommit ( resource $connection [, bool $value ] )

Modifie ou lit le comportement de AUTOCOMMIT de la connexion spécifiée.

Liste de paramètres

connection

Une variable de connexion à une base de données valide retournée par db2_connect() ou db2_pconnect().

value

Une des constantes suivantes :

DB2_AUTOCOMMIT_OFF

Désactive AUTOCOMMIT.

DB2_AUTOCOMMIT_ON

Active AUTOCOMMIT.

Valeurs de retour

Lorsque db2_autocommit() reçoit seulement connection comme paramètre, la fonction retourne un entier représentant l'état courant de AUTOCOMMIT de la connexion fournie. Une valeur de 0 signifie que AUTOCOMMIT est désactivé, tandis qu'une valeur de 1 signifie que AUTOCOMMIT est activé.

Lorsque db2_autocommit() reçoit les deux paramètres connection et autocommit, la fonction essaie de modifier l'état AUTOCOMMIT à l'état autocommit de la connexion fournie. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupération de la valeur de AUTOCOMMIT pour une connexion

Dans l'exemple suivant, une connexion qui a été initialisée avec l'état AUTOCOMMIT désactivé est testé avec la fonction db2_autocommit().

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);
$ac = db2_autocommit($conn);
if ($ac == 0) {
    print "$ac -- AUTOCOMMIT est désactivé.";
} else {
    print "$ac -- AUTOCOMMIT est activé.";
}
?>

L'exemple ci-dessus va afficher :

0 -- AUTOCOMMIT est désactivé.

Exemple #2 Modification de la valeur de AUTOCOMMIT pour une connexion

Dans l'exemple suivant, une connexion qui a été préalablement initialisée avec l'état AUTOCOMMIT désactivé a son comportement changé lors de l'activation de l'état AUTOCOMMIT.

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);

// Active AUTOCOMMIT
$rc = db2_autocommit($conn, DB2_AUTOCOMMIT_ON);
if ($rc) {
    print "Activation AUTOCOMMIT réussie.\n";
}

// Vérification de l'état AUTOCOMMIT
$ac = db2_autocommit($conn);
if ($ac == 0) {
    print "$ac -- AUTOCOMMIT est désactivé.";
} else {
    print "$ac -- AUTOCOMMIT est activé.";
}
?>

L'exemple ci-dessus va afficher :

Activation AUTOCOMMIT réussie.
1 -- AUTOCOMMIT est activé.

Voir aussi

  • db2_connect() - Retourne une connexion à une base de données
  • db2_pconnect() - Retourne une connexion persistante à une base de données


Associe une variable PHP à un paramètre d'une requête SQL

  • « db2_autocommit
  • db2_client_info »
  • PHP Manual
  • Fonctions IBM DB2
  • Associe une variable PHP à un paramètre d'une requête SQL

db2_bind_param

(PECL ibm_db2 >= 1.0.0)

db2_bind_param — Associe une variable PHP à un paramètre d'une requête SQL

Description

bool db2_bind_param ( resource $stmt , int $parameter-number , string $variable-name [, int $parameter-type [, int $data-type = 0 [, int $precision = -1 [, int $scale = 0 ]]]] )

Associe une variable PHP à un paramètre dans la requête SQL retournée par db2_prepare(). Cette fonction vous donne plus de contrôle sur les types des paramètres, les types des données, la précision, et l'échelle pour le paramètre qu'en lui passant simplement une variable à l'intérieur du tableau d'entrée optionnel de la fonction db2_execute().

Liste de paramètres

stmt

Une requête préparée retournée par db2_prepare().

parameter-number

Spécifie la position du paramètre commençant à l'indice 1 dans la requête préparée.

variable-name

Une chaîne spécifiant le nom de la variable PHP à associer au paramètre spécifié par parameter-number.

parameter-type

Une constante spécifiant si la variable PHP devrait être associé au paramètre SQL en tant que paramètre entrant (DB2_PARAM_IN), que paramètre sortant (DB2_PARAM_OUT) ou en tant que paramètre qui accepte les entrées et les sorties (DB2_PARAM_INOUT). Pour éviter une surconsommation de la mémoire, vous pouvez aussi spécifier DB2_PARAM_FILE pour attacher la variable PHP au nom du fichier qui contient les données de l'objet large (BLOB, CLOB ou DBCLOB).

data-type

Une constante spécifiant le type de données SQL que la variable PHP devrait être associée. Le paramètre doit prendre une des valeurs suivantes : DB2_BINARY, DB2_CHAR, DB2_DOUBLE ou DB2_LONG.

precision

Spécifie la précision à laquelle la variable devrait être associée à la base de données. Ce paramètre peut également être utilisé pour récupérer des valeurs de sortie XML pour les procédures stockées. Une valeur non-négative spécifie la taille maximale des données XML qui seront récupérées depuis la base de données. Si ce paramètre n'est pas utilisé, une taille par défaut de 1 Mo sera définie pour récupérer les valeurs de sorte XML depuis la procédure stockée.

scale

Spécifie l'échelle à laquelle la variable devrait être associée à la base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Association de variables PHP à une requête préparée

La requête SQL dans l'exemple suivant utilise deux paramètres d'entrée dans la section WHERE. Nous appelons db2_bind_param() pour associer deux variables qui n'ont pas été déclarées ou assignées avant l'appel de db2_bind_param(); dans cet exemple, $lower_limit est assignée avant d'être appelée à db2_bind_param(), mais $upper_limit est assignée après l'appel de db2_bind_param(). Les variables doivent être associées et, pour les paramètres qui acceptent les entrées, nous devons leur assigner une valeur avant d'appeler db2_execute().

<?php

$sql = 'SELECT nom, race, poids FROM animaux
    WHERE poids > ? AND poids < ?';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);

// Nous pouvons déclarer la variable avant d'appeler db2_bind_param()
$lower_limit = 1;

db2_bind_param($stmt, 1, "lower_limit", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "upper_limit", DB2_PARAM_IN);

// Nous pouvons aussi déclarer la variable après l'appel de db2_bind_param()
$upper_limit = 15.0;

if (db2_execute($stmt)) {
    while ($row = db2_fetch_array($stmt)) {
        print "{$row[0]}, {$row[1]}, {$row[2]}\n";
    }
}
?>

L'exemple ci-dessus va afficher :

Pook, chat, 3.2
Rickety Ride, chèvre, 9.7
Peaches, chien, 12.3

Exemple #2 Appel de procédures d'enregistrement avec les paramètres IN et OUT

La procédure d'enregistrement concorde_animal dans l'exemple suivant accepte trois différents paramètres :

  1. un paramètre d'entré (IN) qui accepte le nom du premier animal en entré

  2. un paramètre d'entrée-sortie (INOUT) qui accepte le nom du second animal en entré et retourne une chaîne de caractères TRUE si un animal dans la base de données correspond à ce nom

  3. un paramètre de sortie (OUT) qui retourne la somme des poids des deux animaux identifiés

De plus, la procédure d'enregistrement retourne un jeu de résultat contenant les animaux listés en ordre alphabétique en commençant avec l'animal correspondant à la valeur d'entrée du premier paramètre et en terminant avec l'animal correspondant à la valeur d'entrée du deuxième paramètre.

<?php

$sql = 'CALL concorde_animal(?, ?, ?)';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);

$nom = "Peaches";
$second_nom = "Rickety Ride";
$poids = 0;

db2_bind_param($stmt, 1, "nom", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "second_nom", DB2_PARAM_INOUT);
db2_bind_param($stmt, 3, "poids", DB2_PARAM_OUT);

print "Valeurs des paramètres _avant_ CALL :\n";
print "  1: {$nom} 2: {$second_nom} 3: {$poids}\n\n";

if (db2_execute($stmt)) {
    print "Valeurs des paramètres _après_ CALL :\n";
    print "  1: {$nom} 2: {$second_nom} 3: {$poids}\n\n";

    print "Résultats :\n";
    while ($row = db2_fetch_array($stmt)) {
        print "  {$row[0]}, {$row[1]}, {$row[2]}\n";
    }
}
?>

L'exemple ci-dessus va afficher :

Valeurs des paramètres _avant_ CALL :
  1: Peaches 2: Rickety Ride 3: 0

Valeurs des paramètres _après_ CALL :
  1: Peaches 2: TRUE 3: 22

Résultats :
  Peaches, chien, 12.3
  Pook, chat, 3.2
  Rickety Ride, chèvre, 9.7

Exemple #3 Insertion d'un objet large binaire (BLOB) provenant directement d'un fichier

Les données pour les objets larges sont normalement enregistrées dans des fichiers, comme des documents XML ou des fichiers audio. Plutôt que de lire le fichier en entier dans une variable de PHP et ensuite associer la variable PHP dans la requête SQL, vous pouvez éviter certain surdébit de mémoire en associant le fichier directement au paramètre d'entrée de votre requête SQL. L'exemple suivant démontre comment associer un fichier directement dans une colonne BLOB.

<?php
$stmt = db2_prepare($conn, "INSERT INTO animal_pictures(photo) VALUES (?)");

$picture = "/opt/albums/spook/grooming.jpg";
$rc = db2_bind_param($stmt, 1, "picture", DB2_PARAM_FILE);
$rc = db2_execute($stmt);
?>

Voir aussi

  • db2_execute() - Exécute une requête SQL préparée
  • db2_prepare() - Prépare une requête SQL à être exécutée


Retourne un objet avec des propriétés qui décrivent le client de base de données DB2

  • « db2_bind_param
  • db2_close »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un objet avec des propriétés qui décrivent le client de base de données DB2

db2_client_info

(PECL ibm_db2 >= 1.1.1)

db2_client_info — Retourne un objet avec des propriétés qui décrivent le client de base de données DB2

Description

object db2_client_info ( resource $connection )

Cette fonction retourne un objet avec des propriétés en lecture seule qui retournent des informations à propos du client de base de données DB2. La table suivante liste les propriétés du client DB2 :

Propriétés du client DB2
Nom Propriété | Type de retour | Description
APPL_CODEPAGE | entier | L'application est un code page.
CONN_CODEPAGE | entier | Le code page pour la connexion courante.
DATA_SOURCE_NAME | chaîne de caractères | Le nom source de la donnée (DSN) utilisé pour créer la connexion courante à la base de données.
DRIVER_NAME | chaîne de caractères | Le nom de la bibliothèque qui implémente la spécification DB2 Call Level Interface (CLI).
DRIVER_ODBC_VER | chaîne de caractères | La version de ODBC que le client DB2 supporte. Ceci retourne une chaîne de caractères "MM.mm" où MM est la version majeure et mm est la version mineure. Le client DB2 retourne toujours "03.51".
DRIVER_VER | chaîne de caractères | La version du client, dans la forme d'une chaîne de caractères "MM.mm.uuuu" où MM est la version majeure, mm est la version mineure et uuuu est la mise à jour. Par exemple, "08.02.0001" représente la version majeure 8, la version mineure 2, et la mise à jour 1.
ODBC_SQL_CONFORMANCE chaîne de caractères

Le niveau de grammaire supporté par le client :

MINIMUM

Supporte le minimum de grammaire SQL de ODBC.

CORE

Supporte le noyau de grammaire SQL de ODBC.

EXTENDED

Supporte la grammaire étendue SQL de ODBC.

ODBC_VER | chaîne de caractères | La version de ODBC que le gestionnaire de pilote ODBC supporte. Cela retourne une chaîne de caractères "MM.mm.rrrr" où MM est la version majeure, mm est la version mineure et rrrr est la mise à jour. Le client DB2 retourne toujours "03.01.0000".

Liste de paramètres

connection

Spécifie la connexion cliente DB2 active.

Valeurs de retour

Retourne un objet si l'appel est réussi. Retourne FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec db2_client_info()

Pour récupérer des informations à propos du client, vous devez passer une ressource de connexion de base de données valide à la fonction db2_client_info().

<?php
$conn = db2_connect( 'SAMPLE', 'db2inst1', 'ibmdb2' );
$client = db2_client_info( $conn );

if ($client) {
    echo "DRIVER_NAME: ";   var_dump( $client->DRIVER_NAME );
    echo "DRIVER_VER: ";   var_dump( $client->DRIVER_VER );
    echo "DATA_SOURCE_NAME: ";   var_dump( $client->DATA_SOURCE_NAME );
    echo "DRIVER_ODBC_VER: ";   var_dump( $client->DRIVER_ODBC_VER );
    echo "ODBC_VER: ";    var_dump( $client->ODBC_VER );
    echo "ODBC_SQL_CONFORMANCE: ";  var_dump( $client->ODBC_SQL_CONFORMANCE );
    echo "APPL_CODEPAGE: ";   var_dump( $client->APPL_CODEPAGE );
    echo "CONN_CODEPAGE: ";   var_dump( $client->CONN_CODEPAGE );
}
else {
    echo "Erreur de récupération des informations du client.
     Peut-être que votre connexion à la base de données était invalide.";
}
db2_close($conn);

?>

L'exemple ci-dessus va afficher :

DRIVER_NAME: string(8) "libdb2.a"
DRIVER_VER: string(10) "08.02.0001"
DATA_SOURCE_NAME: string(6) "SAMPLE"
DRIVER_ODBC_VER: string(5) "03.51"
ODBC_VER: string(10) "03.01.0000"
ODBC_SQL_CONFORMANCE: string(8) "EXTENDED"
APPL_CODEPAGE: int(819)
CONN_CODEPAGE: int(819)

Voir aussi

  • db2_server_info() - Retourne un objet avec des propriétés qui décrivent le serveur de base de données DB2


Ferme une connexion de base de données

  • « db2_client_info
  • db2_column_privileges »
  • PHP Manual
  • Fonctions IBM DB2
  • Ferme une connexion de base de données

db2_close

(PECL ibm_db2 >= 1.0.0)

db2_close — Ferme une connexion de base de données

Description

bool db2_close ( resource $connection )

Cette fonction ferme la connexion client DB2 initialisée avec db2_connect() et libère les ressources correspondantes du serveur de base de données.

Si vous essayez de fermer une connexion client DB2 persistante initialisée avec db2_pconnect(), la requête de fermeture est ignorée et la connexion client DB2 persistante reste disponible pour de prochains appels.

Liste de paramètres

connection

Spécifie une connexion client DB2 active.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fermeture d'une connexion

L'exemple suivant montre une tentative réussie de fermeture de connexion d'une base de données IBM DB2, Cloudscape ou Apache Derby.

<?php
$conn = db2_connect('SAMPLE', 'db2inst1', 'ibmdb2');
$rc = db2_close($conn);
if ($rc) {
    echo "La connexion a été correctement fermée.";
}
?>

L'exemple ci-dessus va afficher :

La connexion a été correctement fermée.

Voir aussi

  • db2_connect() - Retourne une connexion à une base de données
  • db2_pclose() - Ferme une connexion persistante à la base de données
  • db2_pconnect() - Retourne une connexion persistante à une base de données


Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table

  • « db2_close
  • db2_columns »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table

db2_column_privileges

(PECL ibm_db2 >= 1.0.0)

db2_column_privileges — Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table

Description

resource db2_column_privileges ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $column-name ]]]] )

Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Pour concorder avec tous les schémas, passez NULL ou une chaîne vide.

table-name

Le nom de la table. Pour obtenir toutes les tables dans la base de données, passez NULL ou une chaîne vide.

column-name

Le nom de la colonne. Pour obtenir toutes les colonnes de la table, passez NULL ou une chaîne vide.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrivent les privilèges des colonnes concordant avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne | Description
TABLE_CAT | Nom du catalogue. La valeur est NULL si la table ne possède pas de catalogue.
TABLE_SCHEM | Nom du schéma.
TABLE_NAME | Nom de la table.
COLUMN_NAME | Nom de la colonne.
GRANTOR | ID d'autorisation de l'utilisateur qui a donné le privilège.
GRANTEE | ID d'autorisation de l'utilisateur à qui le privilège a été donné.
PRIVILEGE | Le privilège pour la colonne.
IS_GRANTABLE | Si GRANTEE est permis pour donner ce privilège à d'autres utilisateurs.

Voir aussi

  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées


Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table

  • « db2_column_privileges
  • db2_commit »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table

db2_columns

(PECL ibm_db2 >= 1.0.0)

db2_columns — Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table

Description

resource db2_columns ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $column-name ]]]] )

Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Pour concorder avec tous les schémas, passez '%'.

table-name

Le nom de la table. Pour obtenir toutes les tables dans la base de données, passez NULL ou une chaîne vide.

column-name

Le nom de la colonne. Pour obtenir toutes les colonnes de la table, passez NULL ou une chaîne vide.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrivent les privilèges des colonnes concordant avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne | Description
TABLE_CAT | Nom du catalogue. La valeur est NULL si la table ne possède pas de catalogue.
TABLE_SCHEM | Nom du schéma.
TABLE_NAME | Nom de la table.
COLUMN_NAME | Nom de la colonne.
DATA_TYPE | Le type de données SQL pour la colonne, représenté comme un entier.
TYPE_NAME | Une chaîne représentant le type de données pour la colonne.
COLUMN_SIZE | Un entier représentant la grandeur de la colonne.
BUFFER_LENGTH | Nombre d'octets maximaux nécessaires pour enregistrer des données de cette colonne.
DECIMAL_DIGITS | L'échelle de la colonne ou NULL où l'échelle n'est pas applicable.
NUM_PREC_RADIX | Un entier pouvant être 10 (représentant un type de données numérique exact), 2 (représentant un type de données numériques approximé) ou NULL (représentant un type de données pour lequel la base n'est pas applicable).
NULLABLE | Un entier représentant si la colonne peut être nulle ou pas.
REMARKS | Description de la colonne.
COLUMN_DEF | Valeur par défaut de la colonne.
SQL_DATA_TYPE | Un entier représentant la grandeur de la colonne.
SQL_DATETIME_SUB | Retourne un entier représentant un code de sous-type datetime ou NULL si les types de données SQL n'appliquent pas.
CHAR_OCTET_LENGTH | Grandeur maximale en octets pour les types de données d'un caractère de la colonne, qui concorde avec COLUMN_SIZE pour un seul octet de données ou NULL pour un type de données qui n'est pas des caractères.
ORDINAL_POSITION | La position de la colonne commençant à 1 dans la table.
IS_NULLABLE | Une chaîne dont la valeur est 'YES' signifie que la colonne est nulle et 'NO' signifie que la colonne ne peut être nulle.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées


Valide la transaction

  • « db2_columns
  • db2_conn_error »
  • PHP Manual
  • Fonctions IBM DB2
  • Valide la transaction

db2_commit

(PECL ibm_db2 >= 1.0.0)

db2_commit — Valide la transaction

Description

bool db2_commit ( resource $connection )

Envoie une une requête en cours sur la ressource de connexion spécifiée et commence une nouvelle transaction. Les applications PHP ont normalement pour valeur par défaut AUTOCOMMIT d'activé, alors db2_commit() n'est pas nécessaire tant que AUTOCOMMIT n'est pas désactivée pour la ressource de connexion.

Liste de paramètres

connection

Une variable ressource de connexion valide retournée par db2_connect() ou db2_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • db2_autocommit() - Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de données
  • db2_rollback() - Annule une transaction


Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion

  • « db2_commit
  • db2_conn_errormsg »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion

db2_conn_error

(PECL ibm_db2 >= 1.0.0)

db2_conn_error — Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion

Description

string db2_conn_error ([ resource $connection ] )

db2_conn_error() retourne la valeur de SQLSTATE représentant la raison pour laquelle la dernière tentative de connexion à la base de données a échouée. Lorsque db2_connect() retourne FALSE en cas d'une tentative de connexion échouée, ne passez aucun paramètre à db2_conn_error() pour obtenir la valeur de SQLSTATE.

Si par contre la connexion était réussie mais est devenue invalide avec le temps, vous pouvez passer le paramètre de connexion connection pour obtenir la valeur de SQLSTATE pour la connexion spécifique.

Pour comprendre les valeurs de SQLSTATE, vous pouvez taper la commande suivante dans le processeur de ligne de commandes de DB2 : db2 '? sqlstate-value'. Vous pouvez aussi appeler la fonction db2_conn_errormsg() pour obtenir un message d'erreur explicite ainsi que la valeur de SQLCODE associée.

Liste de paramètres

connection

Une ressource de connexion associée à la connexion qui a préalablement été réussie, mais qui est devenue invalide avec le temps.

Valeurs de retour

Retourne la valeur de SQLSTATE résultant d'une mauvaise tentative de connexion. Retourne une chaîne vide s'il n'y a pas d'erreur associée avec la dernière tentative de connexion.

Exemples

Exemple #1 Récupération de la valeur de SQLSTATE pour une tentative de connexion échouée

L'exemple suivant montre comment retourner une valeur de SQLSTATE après un passage forcé d'un paramètre invalide à la fonction db2_connect().

<?php
$conn = db2_connect('mauvaisnom', 'mauvaisutilisateur', 'mauvaismotdepasse');
if (!$conn) {
    print "Valeur de SQLSTATE : " . db2_conn_error();
}
?>

L'exemple ci-dessus va afficher :

Valeur de SQLSTATE : 08001

Voir aussi

  • db2_conn_errormsg() - Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE
  • db2_connect() - Retourne une connexion à une base de données
  • db2_stmt_error() - Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL
  • db2_stmt_errormsg() - Retourne le dernier message d'erreur d'une requête SQL


Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE

  • « db2_conn_error
  • db2_connect »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE

db2_conn_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_conn_errormsg — Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE

Description

string db2_conn_errormsg ([ resource $connection ] )

db2_conn_errormsg() retourne un message d'erreur et la valeur de SQLCODE représentant la raison pour laquelle la dernière tentative de connexion à la base de données a échouée. Lorsque db2_connect() retourne FALSE en cas d'une tentative de connexion échouée, ne passez aucun paramètre à db2_conn_errormsg() pour obtenir le message d'erreur et la valeur de SQLCODE.

Si par contre la connexion était réussie mais est devenue invalide avec le temps, vous pouvez passer le paramètre de connexion connection pour obtenir le message d'erreur et la valeur de SQLCODE pour la connexion spécifique.

Liste de paramètres

connection

Une ressource de connexion associée à la connexion qui a préalablement été réussie, mais qui est devenue invalide avec le temps.

Valeurs de retour

Retourne une chaîne contenant le message d'erreur et la valeur de SQLCODE résultant d'une mauvaise tentative de connexion. Retourne une chaîne vide s'il n'y a pas d'erreur associée avec la dernière tentative de connexion.

Exemples

Exemple #1 Récupération du message d'erreur retourné par une tentative de connexion échouée

L'exemple suivant montre comment retourner un message d'erreur ainsi que la valeur de SQLCODE après un passage forcé d'un paramètre invalide à la fonction db2_connect(). db2_connect().

<?php
$conn = db2_connect('mauvaisnom', 'mauvaisutilisateur', 'mauvaismotdepasse');
if (!$conn) {
    print db2_conn_errormsg();
}
?>

L'exemple ci-dessus va afficher :

[IBM][CLI Driver] SQL1013N  The database alias name
or database name "MAUVAISNOM" could not be found.  SQLSTATE=42705
 SQLCODE=-1013

Voir aussi

  • db2_conn_error() - Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion
  • db2_connect() - Retourne une connexion à une base de données
  • db2_stmt_error() - Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL
  • db2_stmt_errormsg() - Retourne le dernier message d'erreur d'une requête SQL


Retourne une connexion à une base de données

  • « db2_conn_errormsg
  • db2_cursor_type »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne une connexion à une base de données

db2_connect

(PECL ibm_db2 >= 1.0.0)

db2_connect — Retourne une connexion à une base de données

Description

resource db2_connect ( string $database , string $username , string $password [, array $options ] )

Crée une nouvelle connexion à une base de données IBM DB2 Universal Database, IBM Cloudscape ou Apache Derby.

Liste de paramètres

database

Pour une connexion cataloguée de la base de données, database représente l'alias de la base de données dans le catalogue client DB2

Pour une connexion non cataloguée de la base de données, database représente une chaîne complète de connexion qui est dans le format suivant :

DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password;
où les paramètres représentent les valeurs suivantes :
database

Le nom de la base de données.

hostname

L'adresse Internet ou IP du serveur de base de données.

port

Le port TCP/IP sur lequel la base de données écoute les connexions.

username

Le nom d'utilisateur avec lequel vous vous connectez à la base de données.

password

Le mot de passe avec lequel vous vous connectez à la base de données.

username

Le nom d'utilisateur avec lequel vous vous connectez à la base de données.

Pour les connexions non cataloguées, vous devez passer une valeur NULL ou une chaîne vide.

password

Le mot de passe avec lequel vous vous connectez à la base de données.

Pour les connexions non cataloguées, vous devez passer une valeur NULL ou une chaîne vide.

options

Un tableau associatif des options de connexion qui affecteront le comportement de la connexion, où les valeurs des clés incluent :

autocommit

La valeur DB2_AUTOCOMMIT_ON active l'autocommit sur cette connexion.

La valeur DB2_AUTOCOMMIT_OFF désactive le autocommit pour cette connexion.

DB2_ATTR_CASE

Passer la valeur DB2_CASE_NATURAL spécifie que les noms de colonnes seront retournés dans leurs casses naturelles.

Passer la valeur DB2_CASE_LOWER spécifie que les noms de colonnes seront retournés en minuscule.

Passer la valeur DB2_CASE_UPPER spécifie que les noms de colonnes seront retournés en majuscule.

CURSOR

Passer la valeur DB2_FORWARD_ONLY spécifie un curseur uniquement suivant pour une ressource de requête. C'est le type de curseur par défaut et est supporté sur tous les serveurs de base de données.

Passer la valeur DB2_SCROLLABLE spécifie un curseur scrollable pour une ressource de requête. Ce mode permet un accès aléatoire aux lignes dans un jeu de résultats, mais actuellement, n'est supporté que par la base de données IBM DB2 Universal.

La nouvelle option suivante est disponible pour les versions ibm_db2 1.7.0 et suivantes.

trustedcontext

Le fait de passer la valeur DB2_TRUSTED_CONTEXT_ENABLE active le contexte pour ce gestionnaire de connexion. Ce paramètre ne peut être défini avec la fonction db2_set_option().

Cette clé fonctionne uniquement si la base de données est cataloguée (même si la base de données est locale), ou si vous spécifiez le DSN complet lors de la création de la connexion.

Pour catalogue la base de données, utilisez les commandes suivantes :

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

Les nouvelles options i5/OS suivantes sont disponibles dans les versions ibm_db2 1.5.1 et suivantes.

i5_lib

Un caractère qui indique la bibliothèque par défaut qui sera utilisée pour résoudre les références aux fichiers non qualifiées. Ceci n'est pas valide si la connexion utilise un mode de système de nom.

i5_naming

La valeur DB2_I5_NAMING_ON active DB2 UDB Cli iSeries mode système de nom. Les fichiers sont qualifiés en utilisant le délimiteur slash (/). Les fichiers non qualifiés sont résolus en utilisant la liste de bibliothèque pour le travail.

La valeur DB2_I5_NAMING_OFF désactive DB2 UDB CLI mode de nom par défaut, qui est l'écriture SQL. Les fichiers sont qualifiés en utilisant le délimiteur point (.). Les fichiers non qualifiés sont résolus en utilisant soit la bibliothèque par défaut ou l'ID de l'usager courant.

i5_commit

L'attribut i5_commit devrait être fixé avant l'appel à db2_connect(). Si la valeur est changée après que la connexion ait été établie et que la connexion est à une source de données distance, le changement ne prendra effet qu'au prochain appel de db2_connect().

Note:

La configuration php.ini ibm_db2.i5_allow_commit==0 ou DB2_I5_TXN_NO_COMMIT est par défaut, mais peut être dérivée avec l'option i5_commit.

DB2_I5_TXN_NO_COMMIT : contrôle d'envoi n'est pas utilisé.

DB2_I5_TXN_READ_UNCOMMITTED : lecture ancienne, lecture non répétitive et fictive est possible.

DB2_I5_TXN_READ_COMMITTED : lecture ancienne non possible. La lecture répétitive et fictive est possible.

DB2_I5_TXN_REPEATABLE_READ : lecture ancienne et non répétitive n'est pas possible. Lecture fictive est possible.

DB2_I5_TXN_SERIALIZABLE : les transactions sont linéarisées. Lecture ancienne, non répétitive et fictive n'est pas possible.

i5_query_optimize

DB2_FIRST_IO Toutes les requêtes sont optimisées avec le but de retourner la première page aussi vite que possible. Ce but fonctionne bien lorsque l'affichage est contrôlé par un utilisateur qui peut annuler une requête après avoir vu la première page des données. Les requêtes sont codées avec une clause "OPTIMIZE nnn ROWS" afin de réussir le but spécifié par la clause.

DB2_ALL_IO Toutes les requêtes sont optimisées avec le but de retourner l'entière requête dans le plus petit intervalle de temps. Ceci est une bonne option lorsque l'affichage d'une requête est en train d'être écrit vers un fichier ou un rapport ou encore lorsque l'interface met en queue les données. Les requêtes sont codées avec une clause "OPTIMIZE FOR nnn ROWS" afin de réussir le but spécifié par la clause. Ceci est l'opération par défaut.

i5_dbcs_alloc

La valeur DB2_I5_DBCS_ALLOC_ON active le canevas d'allocation DB2 6X pour l'accroissement des tailles des colonnes.

La valeur DB2_I5_DBCS_ALLOC_OFF désactive le canevas d'allocation DB2 6X pour l'accroissement des tailles des colonnes.

Note : la configuration php.ini ibm_db2.i5_dbcs_alloc==0 ou DB2_I5_DBCS_ALLOC_OFF est par défaut mais peut être dérivée avec l'option i5_dbcs_alloc.

i5_date_fmt

DB2_I5_FMT_ISO : le format de date de l'organisation internationale de normalisation (ISO) "yyyy-mm-dd" est utilisé. Ceci est la valeur par défaut.

DB2_I5_FMT_USA : le format de date des États-Unis "mm/dd/yyyy" est utilisé.

DB2_I5_FMT_EUR : le format de date Européen "dd.mm.yyyy" est utilisé.

DB2_I5_FMT_JIS : le format de date de l'industrie japonaise des standards "yyyy-mm-dd" est utilisé.

DB2_I5_FMT_MDY : le format de date "mm/dd/yyyy" est utilisé.

DB2_I5_FMT_DMY : le format de date "dd/mm/yyyy" est utilisé.

DB2_I5_FMT_YMD : le format de date "yy/mm/dd" est utilisé.

DB2_I5_FMT_JUL : le format de date Julien "yy/ddd" est utilisé.

DB2_I5_FMT_JOB : le valeur par défaut est utilisée.

i5_date_sep

DB2_I5_SEP_SLASH : un slash ( / ) est utilisé en tant que séparateur de date. Ceci est la valeur par défaut.

DB2_I5_SEP_DASH : un tiret ( : ) est utilisé en tant que séparateur de date.

DB2_I5_SEP_PERIOD : un point ( . ) est utilisé en tant que séparateur de date.

DB2_I5_SEP_COMMA : une virgule ( , ) est utilisée en tant que séparateur de date.

DB2_I5_SEP_BLANK : un espace blanc est utilisé en tant que séparateur de date.

DB2_I5_SEP_JOB : la valeur par défaut est utilisée.

i5_time_fmt

DB2_I5_FMT_ISO : le format de l'heure de l'organisation internationale de normalisation "hh.mm.ss" est utilisé. Ceci est la valeur par défaut.

DB2_I5_FMT_USA : le format de l'heure des États-Unis "hh:mmxx" est utilisé, où "xx" vaut "AM" ou "PM".

DB2_I5_FMT_EUR : le format de l'heure Européen "hh.mm.ss" est utilisé.

DB2_I5_FMT_JIS : le format de l'heure de l'industrie japonaise des standards "hh:mm:ss" est utilisé.

DB2_I5_FMT_HMS : le format "hh:mm:ss" est utilisé.

i5_time_sep

DB2_I5_SEP_COLON : un deux-points ( : ) est utilisé en tant que séparateur de temps. Ceci est la valeur par défaut.

DB2_I5_SEP_PERIOD : un point ( . ) est utilisé en tant que séparateur de temps.

DB2_I5_SEP_COMMA : une virgule ( , ) est utilisée en tant que séparateur de temps.

DB2_I5_SEP_BLANK : un espace blanc est utilisé en tant que séparateur de temps.

DB2_I5_SEP_JOB : la valeur par défaut est utilisée.

i5_decimal_sep

DB2_I5_SEP_PERIOD : un point ( . ) est utilisé en tant que séparateur de décimale. Ceci est la valeur par défaut.

DB2_I5_SEP_COMMA : une virgule ( , ) est utilisée en tant que séparateur de décimale.

DB2_I5_SEP_JOB : la valeur par défaut est utilisée.

La nouvelle option i5/OS suivante est disponible depuis la version ibm_db2 1.8.0 et suivantes.

i5_libl

Une chaîne indiquant la liste a utilisé pour résoudre les références de fichiers non qualifiés. Spécifiez la liste en séparant les valeurs par un espace, comme ceci : 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Note:

i5_libl appelle qsys2/qcmdexc('cmd',cmdlen), qui n'est disponible que depuis i5/OS V5R4.

Valeurs de retour

Retourne la ressource de connexion si la tentative de connexion réussie. Si la tentative de connexion échoue, db2_connect() retourne FALSE.

Exemples

Exemple #1 Création d'une connexion cataloguée

Les connexions cataloguées nécessitent que vous ayez préalablement catalogué la base de données spécifiée à l'aide du processeur de ligne de commandes DB2 ("Command Line Processor" : cLP) ou avec l'assistant de configuration de DB2.

<?php
$database = 'EXEMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$conn = db2_connect($database, $user, $password);

if ($conn) {
    echo "Connexion réussie.";
    db2_close($conn);
}
else {
    echo "Connexion échouée.";
}
?>

L'exemple ci-dessus va afficher :

Connexion réussie.

Exemple #2 Création d'une connexion non cataloguée

Une connexion non cataloguées vous permet de vous connecter dynamiquement à une base de données.

<?php
$database = 'EXEMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$hostname = 'localhost';
$port = 50000;

$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" .
  "HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;";
$conn = db2_connect($conn_string, '', '');

if ($conn) {
    echo "Connexion réussie.";
    db2_close($conn);
}
else {
    echo "Connexion échouée.";
}
?>

L'exemple ci-dessus va afficher :

Connexion réussie.

Exemple #3 Création d'une connexion avec autocommit désactivé par défaut

Le fait de passer un tableau d'option à db2_connect() vous permet de modifier le comportement par défaut de la connexion.

<?php
$database = 'EXEMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);

$conn = db2_connect($database, $user, $password, $options);

if ($conn) {
    echo "Connexion réussie.\n";
    if (db2_autocommit($conn)) {
         echo "Autocommit est activé.\n";
    }
    else {
         echo "Autocommit est désactivé.\n";
    }
    db2_close($conn);
}
else {
    echo "Connexion échouée.";
}
?>

L'exemple ci-dessus va afficher :

Connexion réussie.
Autocommit est désactivé.

Exemple #4 Meilleure performance i5/OS

Pour réussir à utiliser les meilleures performance de votre i5/OS ibm_db2 1.5.1, l'application PHP utilise l'hôte par défaut, le userid et le mot de passer pour votre db2_connect().

<?php
  $library = "ADC";
  $i5 = db2_connect("", "", "", array("i5_lib"=>"qsys2"));
  $result = db2_exec($i5,
       "select * from systables where table_schema = '$library'");
  while ($row = db2_fetch_both($result)) {
     echo $row['TABLE_NAME']."</br>";
  }
  db2_close($i5);
?>

L'exemple ci-dessus va afficher :

ANIMALS
NAMES
PICTURES

Exemple #5 Utilisation du contexte

L'exemple suivant montre comment activer le contexte, changer d'utilisateur et récupérer l'ID de l'utilisateur courant.

<?php

$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";

$tc_user = "tcuser";
$tc_pass = "tcpassword";

$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
  PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn = db2_connect($dsn, "", "", $options);
if($tc_conn) {
    echo "Explicit trusted connection succeeded.\n";

    if(db2_get_option($tc_conn, "trustedcontext")) {
        $userBefore = db2_get_option($tc_conn, "trusted_user");

        //Code en tant qu'utilisateur 1.

        //Modification en l'utilisateur de confiance.
        $parameters = array("trusted_user" => $tc_user,
          "trusted_password" => $tcuser_pass);
        $res = db2_set_option ($tc_conn, $parameters, 1);

        $userAfter = db2_get_option($tc_conn, "trusted_user");
        //Code en tant qu'utilisateur de confiance.

        if($userBefore != $userAfter) {
            echo "L'utilisateur a changé." . "\n";
        }
    }

    db2_close($tc_conn);
}
else {
    echo "Le changement de contexte de connexion a échoué.\n";
}
?>

L'exemple ci-dessus va afficher :

Le changement de contexte de connexion a échoué.
L'utilisateur a changé.

Voir aussi

  • db2_close() - Ferme une connexion de base de données
  • db2_pconnect() - Retourne une connexion persistante à une base de données


Retourne le type de curseur utilisé par une ressource

  • « db2_connect
  • db2_escape_string »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne le type de curseur utilisé par une ressource

db2_cursor_type

(PECL ibm_db2 >= 1.0.0)

db2_cursor_type — Retourne le type de curseur utilisé par une ressource

Description

int db2_cursor_type ( resource $stmt )

Retourne le type de curseur utilisé par une ressource. Utilisez cette fonction pour déterminer si vous travaillez avec un curseur à avancement seul ou un curseur flottant.

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Retourne DB2_FORWARD_ONLY si la ressource utilise un curseur à avance seul ou DB2_SCROLLABLE si la ressource utilise un curseur flottant.

Voir aussi

  • db2_prepare() - Prépare une requête SQL à être exécutée


Utilisé pour échapper certains caractères

  • « db2_cursor_type
  • db2_exec »
  • PHP Manual
  • Fonctions IBM DB2
  • Utilisé pour échapper certains caractères

db2_escape_string

(PECL ibm_db2 >= 1.6.0)

db2_escape_string — Utilisé pour échapper certains caractères

Description

string db2_escape_string ( string $string_literal )

Place des antislashs devant les caractères spéciaux à la chaîne de caractères passée en argument.

Liste de paramètres

string_literal

Une chaîne de caractères qui contient des caractères spéciaux qui doivent être modifiés. Les caractères qui sont transformés à l'aide d'un antislash sont \x00, \n, \r, \, ' " et \x1a.

Valeurs de retour

Retourne string_literal avec les caractères spéciaux mentionnés ci-dessus précédés par des antislashs.

Exemples

Exemple #1 Exemple avec db2_escape_string()

Résultat suite à l'utilisation de la fonction db2_escape_string()

<?php

$conn = db2_connect($database, $user, $password);

if ($conn) {
    $str[0] = "Tous les caractères : \x00 , \n , \r , \ , ' , \" , \x1a .";
    $str[1] = "Antislash (\). Apostrophe ('). Guillemet (\")";
    $str[2] = "Le caractère NULL \0 doit être transformé aussi";
    $str[3] = "Caractères intéressants : \x1a , \x00 .";
    $str[4] = "Rien à transformer";
    $str[5] = 200676;
    $str[6] = "";

    foreach( $str as $string ) {
        echo "db2_escape_string: " . db2_escape_string($string). "\n";
    }
}
?>

L'exemple ci-dessus va afficher :

db2_escape_string: Tous les caractères : \0 , \n , \r , \\ , \' , \" , \Z .
db2_escape_string: Antislash (\\). Apostrophe (\'). Guillemet (\")
db2_escape_string: Le caractère NULL \0 doit être transformé aussi
db2_escape_string: Caractères intéressants : \Z , \0 .
db2_escape_string: Rien à transformer
db2_escape_string: 200676
db2_escape_string:

Voir aussi

  • db2_prepare() - Prépare une requête SQL à être exécutée


Exécute une requête SQL directement

  • « db2_escape_string
  • db2_execute »
  • PHP Manual
  • Fonctions IBM DB2
  • Exécute une requête SQL directement

db2_exec

(PECL ibm_db2 >= 1.0.0)

db2_exec — Exécute une requête SQL directement

Description

resource db2_exec ( resource $connection , string $statement [, array $options ] )

Exécute une requête SQL directement.

Si vous prévoyez intercaler des variables PHP dans la requête SQL, vous devez comprendre que c'est l'une des plus communes failles de sécurité. Considérez qu'il faut appeler la fonction db2_prepare() pour préparer une requête SQL qui contient des marqueurs pour des variables d'entrée. Ensuite, vous pouvez appeler la fonction db2_execute() pour passer les valeurs d'entrée et ainsi éviter les attaques par injections SQL.

Si vous prévoyez appeler à plusieurs reprises la même requête SQL avec des paramètres différents, considérez qu'il est préférable d'appeler la fonction db2_prepare() et db2_execute() pour permettre au serveur de base de données de réutiliser son plan d'accès et ainsi augmenter l'efficacité de votre accès à la base de données.

Liste de paramètres

connection

Une variable ressource de connexion valide retournée par db2_connect() ou db2_pconnect().

statement

Une requête SQL. La requête ne peut contenir de marqueur.

options

Un tableau associatif contenant les options de la requête. Vous pouvez utiliser ce paramètre pour demander un curseur flottant sur les serveurs de base de données qui supportent cette fonctionnalité.

Pour une description des options valides, reportez-vous à la fonction db2_set_option().

Valeurs de retour

Retourne une variable ressource si la requête SQL était envoyée correctement ou FALSE si la base de données n'a pas réussi à exécuter la requête SQL.

Exemples

Exemple #1 Création d'une table avec db2_exec()

L'exemple suivant utilise la fonction db2_exec() pour envoyer un ensemble de requêtes DDL afin de créer une table.

<?php
$conn = db2_connect($database, $user, $password);

// Create the test table
$create = 'CREATE TABLE animaux (id INTEGER, race VARCHAR(32),
    nom CHAR(16), poids DECIMAL(7,2))';
$result = db2_exec($conn, $create);
if ($result) {
    print "La table a été créée correctement.\n";
}

// Remplit la table de test
$animaux = array(
    array(0, 'chat', 'Pook', 3.2),
    array(1, 'chien', 'Peaches', 12.3),
    array(2, 'cheval', 'Smarty', 350.0),
    array(3, 'cyprin doré', 'Bubbles', 0.1),
    array(4, 'perruche', 'Gizmo', 0.2),
    array(5, 'chèvre', 'Rickety Ride', 9.7),
    array(6, 'lama', 'Sweater', 150)
);

foreach ($animaux as $animal) {
    $rc = db2_exec($conn, "INSERT INTO animaux (id, race, nom, poids)
      VALUES ({$animal[0]}, '{$animal[1]}', '{$animal[2]}', {$animal[3]})");
    if ($rc) {
        print "Insertion... ";
    }
}
?>

L'exemple ci-dessus va afficher :

La table a été créée correctement.
Insertion... Insertion... Insertion... Insertion... Insertion... Insertion... Insertion...

Exemple #2 Exécution d'une requête SELECT avec un curseur flottant

L'exemple suivant montre comment demander un curseur flottant pour une requête SQL envoyée avec la fonction db2_exec().

<?php
$conn = db2_connect($database, $user, $password);
$sql = "SELECT nom FROM animaux
    WHERE poids < 10.0
    ORDER BY nom";
if ($conn) {
    require_once('prepare.inc');
    $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
    while ($row = db2_fetch_array($stmt)) {
        print "$row[0]\n";
    }
}
?>

L'exemple ci-dessus va afficher :

Bubbles
Gizmo
Pook
Rickety Ride

Exemple #3 Retourne des données XML en tant que ResultSet SQL

L'exemple suivant démontre comment utiliser des documents enregistrés dans une colonne XML en utilisant la base de données SAMPLE. En utilisant un simple SQL/XML, cet exemple retourne quelques noeuds dans un document XML dans un format ResultSet SQL dont la plupart des utilisateurs sont familiers.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = \'Kathy Smith\'
    ';
$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE\n");
}
db2_close($conn);

?>

L'exemple ci-dessus va afficher :

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Exemple #4 Exécuter un "JOIN" avec des données XML

L'exemple suivant fonctionne avec des documents enregistrés dans deux colonnes différentes dans la base de données SAMPLE. Cela crée deux tables temporaires provenant des documents XML de deux différentes colonnes XML et retourne un ResultSet SQL avec les informations contenant le statut de livraison pour un client.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
    SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
    FROM
    XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" BIGINT PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) as A,
    PURCHASEORDER AS B,
    XMLTABLE (
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
    COLUMNS
    "PONUM"  BIGINT PATH \'@PoNum\',
    "STATUS" VARCHAR (50) PATH \'@Status\'
    ) as C
    WHERE A.CID = B.CUSTID AND
 B.POID = C.PONUM AND
 A.NAME = \'Kathy Smith\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
}

db2_close($conn);

?>

L'exemple ci-dessus va afficher :

1001     Kathy Smith     905-555-7258     5002     Shipped

Exemple #5 Retourne des données SQL faisant partie d'un document XML large

L'exemple suivant utilise une portion des documents de PRODUCT.DESCRIPTION dans la base de données SAMPLE. Cela crée un document XML contenant la description du produit (données XML) et les informations concernant le prix (données SQL).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
        for $prod in $doc/product
        where $prod/description/price < 10.00
        order by $prod/description/price ascending
        return(
            <promoitem> {
                $prod,
                <startdate> {$start} </startdate>,
                <enddate> {$end} </enddate>,
                <promoprice> {$promo} </promoprice>
            } </promoitem>
        )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = \'100-100-01\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_array($stmt)){
 printf("$row[0]\n");
}
db2_close($conn);

?>

L'exemple ci-dessus va afficher :

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Voir aussi

  • db2_execute() - Exécute une requête SQL préparée
  • db2_prepare() - Prépare une requête SQL à être exécutée


Exécute une requête SQL préparée

  • « db2_exec
  • db2_fetch_array »
  • PHP Manual
  • Fonctions IBM DB2
  • Exécute une requête SQL préparée

db2_execute

(PECL ibm_db2 >= 1.0.0)

db2_execute — Exécute une requête SQL préparée

Description

bool db2_execute ( resource $stmt [, array $parameters ] )

db2_execute() exécute une requête SQL qui a été préparée par db2_prepare().

Si la requête SQL retourne un jeu de résultats, par exemple, une requête SELECT ou CALL à une procédure d'enregistrement retourne un ou plusieurs jeux de résultats, vous pouvez récupérer une ligne en tant que tableau à partir de la ressource stmt en utilisant db2_fetch_assoc(), db2_fetch_both() ou db2_fetch_array(). Alternativement, vous pouvez utiliser db2_fetch_row() pour déplacer le pointeur à la ligne suivante et récupérer une colonne à la fois de cette ligne avec la fonction db2_result().

Référez-vous à db2_prepare() pour une brève discussion sur les avantages de l'utilisation de db2_prepare() et db2_execute() plutôt que db2_exec().

Liste de paramètres

stmt

Une requête préparée retournée par db2_prepare().

parameters

Un tableau des paramètres d'entrée qui contient les marqueurs de variables contenus dans la requête préparée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Préparation et exécution d'une requête SQL avec des marqueurs

L'exemple suivant prépare une requête INSERT qui accepte quatre marqueurs, ensuite itère sur le tableau contenant les valeurs d'entrées qui sera passé à la fonction db2_execute().

<?php
$pet = array(0, 'chat', 'Pook', 3.2);

$insert = 'INSERT INTO animaux (id, race, nom, poids)
    VALUES (?, ?, ?, ?)';

$stmt = db2_prepare($conn, $insert);
if ($stmt) {
    $result = db2_execute($stmt, $pet);
    if ($result) {
        print "Ajout d'un nouvel animal réussi.";
    }
}
?>

L'exemple ci-dessus va afficher :

Ajout d'un nouvel animal réussi.

Exemple #2 Appel d'une procédure d'enregistrement avec un paramètre de SORTIE

L'exemple suivant prépare une requête CALL qui accepte un marqueur qui représente un paramètre de SORTIE, lie la variable PHP $my_pets au paramètre en utilisant la fonction db2_bind_param() et appelle la fonction db2_execute() pour exécuter la requête CALL. Une fois que la requête CALL a été exécutée, la valeur de $num_pets change pour réfléchir la valeur retournée par la procédure d'enregistrement pour ce paramètre de SORTIE.

<?php
$num_pets = 0;
$res = db2_prepare($conn, "CALL count_my_pets(?)");
$rc = db2_bind_param($res, 1, "num_pets", DB2_PARAM_OUT);
$rc = db2_execute($res);
print "Je possède $num_pets animaux !";
?>

L'exemple ci-dessus va afficher :

Je possède 7 animaux !

Exemple #3 Retourne des données XML en tant que ResultSet SQL

L'exemple suivant démontre comment utiliser des documents enregistrés dans une colonne XML en utilisant la base de données SAMPLE. En utilisant un simple SQL/XML, cet exemple retourne quelques noeuds dans un document XML dans un format ResultSet SQL dont la plupart des utilisateurs sont familiers.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = ?
    ';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_object($stmt)){
        printf("$row->CID     $row->NAME     $row->PHONE\n");
    }
}
db2_close($conn);

?>

L'exemple ci-dessus va afficher :

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Exemple #4 Exécuter un "JOIN" avec des données XML

L'exemple suivant fonctionne avec des documents enregistrés dans deux colonnes différentes dans la base de données SAMPLE. Cela crée deux tables temporaires provenant des documents XML de deux différentes colonnes XML et retourne un ResultSet SQL avec les informations contenant le statut de livraison pour un client.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
FROM
XMLTABLE(
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
COLUMNS
"CID" BIGINT PATH \'@Cid\',
"NAME" VARCHAR (50) PATH \'name\',
"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
) as A,
PURCHASEORDER AS B,
XMLTABLE (
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
COLUMNS
"PONUM"  BIGINT PATH \'@PoNum\',
"STATUS" VARCHAR (50) PATH \'@Status\'
) as C
WHERE A.CID = B.CUSTID AND
        B.POID = C.PONUM AND
        A.NAME = ?
';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_object($stmt)){
        printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
    }
}

db2_close($conn);

?>

L'exemple ci-dessus va afficher :

1001     Kathy Smith     905-555-7258     5002     Shipped

Exemple #5 Retourne des données SQL faisant partie d'un document XML large

L'exemple suivant utilise une portion des documents de PRODUCT.DESCRIPTION dans la base de données SAMPLE. Cela crée un document XML contenant la description du produit (données XML) et les informations concernant le prix (données SQL).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
        for $prod in $doc/product
        where $prod/description/price < 10.00
        order by $prod/description/price ascending
        return(
            <promoitem> {
                $prod,
                <startdate> {$start} </startdate>,
                <enddate> {$end} </enddate>,
                <promoprice> {$promo} </promoprice>
            } </promoitem>
        )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = ?
';

$stmt = db2_prepare($conn, $query);

$pid = "100-100-01";

if ($stmt) {
    db2_bind_param($stmt, 1, "pid", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_array($stmt)){
        printf("$row[0]\n");
    }
}

db2_close($conn);

?>

L'exemple ci-dessus va afficher :

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Voir aussi

  • db2_exec() - Exécute une requête SQL directement
  • db2_fetch_array() - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_assoc() - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_both() - Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_prepare() - Prépare une requête SQL à être exécutée
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats


Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats

  • « db2_execute
  • db2_fetch_assoc »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats

db2_fetch_array

(PECL ibm_db2 >= 1.0.1)

db2_fetch_array — Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats

Description

array db2_fetch_array ( resource $stmt [, int $row_number = -1 ] )

Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats. Les indices du tableau sont numériques et commencent par zéro.

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

row_number

Demande une ligne spécifique indexée numériquement qui commence par la valeur 1 au jeu de résultat. En fournissant ce paramètre, vous obtiendrez une alerte PHP si le jeu de résultat utilise une curseur d'avancement seul.

Valeurs de retour

Retourne un tableau à indices numériques commençant à 0 indexé avec la position des colonnes. Cet indice pointe vers des données de la ligne suivante ou la ligne demandée dans le jeu de résultats. Retourne FALSE s'il n'y a pas de ligne disponible dans le jeu de résultats ou si la ligne demandée par row_number n'existe pas dans le jeu de résultats.

Exemples

Exemple #1 Itère avec un curseur d'avancement seul

Si vous appelez db2_fetch_array() sans le numéro d'une ligne spécifique, la ligne suivante sera automatiquement récupérée dans le jeu de résultats.

<?php

$sql = "SELECT id, nom, race, poids FROM animaux ORDER BY race";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_array($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row[1], $row[2], $row[3]);
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Exemple #2 Récupération de lignes spécifiques avec db2_fetch_array() provenant d'un curseur flottant

Si votre jeu de résultats utilise un curseur flottant, vous pouvez appeler la fonction db2_fetch_array() avec une numéro de ligne spécifique. L'exemple suivant récupère chaque ligne paire dans le jeu de résultats, commençant avec la deuxième ligne.

<?php

$sql = "SELECT id, nom, race, poids FROM animaux ORDER BY race";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_array($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row[1], $row[2], $row[3]);
    $i = $i + 2;
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Voir aussi

  • db2_fetch_assoc() - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_both() - Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_object() - Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats


Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats

  • « db2_fetch_array
  • db2_fetch_both »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats

db2_fetch_assoc

(PECL ibm_db2 >= 1.0.0)

db2_fetch_assoc — Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats

Description

array db2_fetch_assoc ( resource $stmt [, int $row_number = -1 ] )

Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats.

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

row_number

Demande une ligne spécifique indexée numériquement qui commence par la valeur 1 au jeu de résultat. En fournissant ce paramètre, vous obtiendrez une alerte PHP si le jeu de résultat utilise une curseur d'avancement seul.

Valeurs de retour

Retourne un tableau associatif avec les valeurs des colonnes indexées par le nom des colonnes représentant la ligne suivante ou la ligne demandée dans le jeu de résultats. Retourne FALSE s'il n'y a pas de ligne disponible dans le jeu de résultats ou si la ligne demandée par row_number n'existe pas dans le jeu de résultats.

Exemples

Exemple #1 Itère avec un curseur d'avancement seul

Si vous appelez db2_fetch_assoc() sans le numéro d'une ligne spécifique, la ligne suivante sera automatiquement récupérée dans le jeu de résultats.

<?php

$sql = "SELECT id, nom, race, poids FROM animaux ORDER BY race";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_assoc($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row['NOM'], $row['RACE'], $row['POIDS']);
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Exemple #2 Récupération de lignes spécifiques avec db2_fetch_assoc() provenant d'un curseur flottant

Si votre jeu de résultats utilise un curseur flottant, vous pouvez appeler la fonction db2_fetch_assoc() avec un numéro de ligne spécifique. L'exemple suivant récupère chaque ligne paire dans le jeu de résultats, commençant avec la deuxième ligne.

<?php

$sql = "SELECT id, nom, race, poids FROM animaux ORDER BY race";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_assoc($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row['NOM'], $row['RACE'], $row['POIDS']);
    $i = $i + 2;
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Voir aussi

  • db2_fetch_array() - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_both() - Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_object() - Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats


Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats

  • « db2_fetch_assoc
  • db2_fetch_object »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats

db2_fetch_both

(PECL ibm_db2 >= 1.0.0)

db2_fetch_both — Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats

Description

array db2_fetch_both ( resource $stmt [, int $row_number = -1 ] )

Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats. Notez que la ligne retournée par db2_fetch_both() nécessite plus de mémoire que les tableaux simplement indexés retournés par db2_fetch_assoc() ou db2_fetch_array().

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

row_number

Demande une ligne spécifique indexée numériquement qui commence par la valeur 1 au jeu de résultat. En fournissant ce paramètre, vous obtiendrez une alerte PHP si le jeu de résultat utilise une curseur d'avancement seul.

Valeurs de retour

Retourne un tableau associatif avec les valeurs des colonnes indexées par le nom des colonnes et le numéro des colonnes commençant par 0. Le tableau représente la ligne suivante ou la ligne demandée du jeu de résultats. Retourne FALSE s'il n'y a pas de ligne disponible dans le jeu de résultats ou si la ligne demandée par row_number n'existe pas dans le jeu de résultats.

Exemples

Exemple #1 Itère avec un curseur d'avancement seul

Si vous appelez db2_fetch_both() sans le numéro d'une ligne spécifique, la ligne suivante sera automatiquement récupérée par le jeu de résultats. L'exemple suivant accède aux colonnes retournées dans le tableau avec la méthode des noms de colonne et par indice numérique.

<?php

$sql = "SELECT id, nom, race, poids FROM animaux ORDER BY race";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_both($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row[0], $row['RACE'], $row[3]);
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Exemple #2 Récupération de lignes spécifiques avec db2_fetch_both() provenant d'un curseur flottant

Si votre jeu de résultats utilise un curseur flottant, vous pouvez appeler la fonction db2_fetch_assoc() avec une numéro de ligne spécifique. L'exemple suivant récupère chaque ligne paire dans le jeu de résultats, commençant avec la deuxième ligne.

<?php

$sql = "SELECT id, nom, race, poids FROM animaux ORDER BY race";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_both($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row['NOM'], $row[2], $row['POIDS']);
    $i = $i + 2;
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Voir aussi

  • db2_fetch_array() - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_assoc() - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_object() - Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats


Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite

  • « db2_fetch_both
  • db2_fetch_row »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite

db2_fetch_object

(PECL ibm_db2 >= 1.0.0)

db2_fetch_object — Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite

Description

object db2_fetch_object ( resource $stmt [, int $row_number = -1 ] )

Retourne un objet dans lequel chaque propriété représente une colonne retournée dans la ligne extraite du jeu de résultats.

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

row_number

Demande une ligne spécifique commençant à l'index 1 du jeu de résultats. Si vous passez ce paramètre, vous obtiendrez une alerte PHP si le résultat utilise un curseur à avancement seul.

Valeurs de retour

Retourne un objet représentant une seule ligne dans le jeu de résultats. Les propriétés de l'objet correspondent au nom des colonnes dans le jeu de résultats.

Les serveurs IBM DB2, Cloudscape et Apache Derby remplissent normalement les nom des colonnes avec des majuscules, par conséquent, les propriétés de l'objet refléteront ce cas.

Si votre requête SELECT appelle une fonction scalaire pour modifier la valeur d'une colonne, les serveurs de base de données retournent le numéro de colonne en tant que nom de colonne dans le jeu de résultats. Si vous préférez une description plus détaillée du nom des colonnes et des propriétés de l'objet, vous pouvez utiliser la clause AS pour assigner un nom à la colonne dans le jeu de résultats.

Retourne FALSE si aucune ligne n'a été récupérée.

Exemples

Exemple #1 Exemple avec db2_fetch_object()

L'exemple suivant envoie une requête SELECT avec une fonction scalaire, RTRIM, qui supprime les espaces à partir de la fin de la colonne. Au lieu de créer un objet avec les propriétés "RACE" et "2", nous utilisons la clause AS dans la requête SELECT pour assigner le nom "nom" à la colonne modifiée. Le serveur de base de données remplit le nom des colonnes avec des majuscules, alors l'objet aura les propriétés "RACE" et "NOM".

<?php
$conn = db2_connect($database, $user, $password);

$sql = "SELECT race, RTRIM(nom) AS nom
    FROM animaux
    WHERE id = ?";

if ($conn) {
    $stmt = db2_prepare($conn, $sql);
    db2_execute($stmt, array(0));

    while ($pet = db2_fetch_object($stmt)) {
        echo "Viens ici, {$pet->NOM}, mon petit {$pet->RACE} !";
    }
    db2_close($conn);
}
?>

L'exemple ci-dessus va afficher :

Viens ici, Pook, mon petit chat !

Voir aussi

  • db2_fetch_array() - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_assoc() - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_both() - Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats


Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée

  • « db2_fetch_object
  • db2_field_display_size »
  • PHP Manual
  • Fonctions IBM DB2
  • Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée

db2_fetch_row

(PECL ibm_db2 >= 1.0.0)

db2_fetch_row — Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée

Description

bool db2_fetch_row ( resource $stmt [, int $row_number ] )

Utilisez db2_fetch_row() pour itérer à travers un jeu de résultats ou pour pointer à une ligne spécifique d'un jeu de résultats si vous avez demandé un curseur flottant.

Pour obtenir des champs individuels du jeu de résultats, appelez la fonction db2_result().

Au lieu d'appeler les fonctions db2_fetch_row() et db2_result(), la plupart des applications vont appeler la fonction db2_fetch_assoc(), db2_fetch_both() ou db2_fetch_array() pour avancer le pointeur dans le jeu de résultats et retourner une ligne complète en tant que tableau.

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

row_number

Avec des curseurs flottants, vous pouvez demander un numéro de ligne spécifique du jeu de résultats. Les numéros des lignes commencent par l'indice 1

Valeurs de retour

Retourne TRUE si la ligne demandée existe dans le jeu de résultats. Retourne FALSE si la ligne demandée n'existe pas dans le jeu de résultats.

Exemples

Exemple #1 Itère à travers un jeu de résultats

L'exemple suivant démontre comment itérer à travers un jeu de résultats avec la fonction db2_fetch_row() et récupérer les colonnes du jeu de résultats avec db2_result().

<?php
$sql = 'SELECT nom, race FROM animaux WHERE poids < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
    $nom = db2_result($stmt, 0);
    $race = db2_result($stmt, 1);
    print "$nom $race";
}
?>

L'exemple ci-dessus va afficher :

chat Pook
cyprin doré Bubbles
perruche Gizmo
chèvre Rickety Ride

Exemple #2 Alternatives recommandées i5/OS pour db2_fetch_row/db2_result

Sur i5/OS, il est recommandé que vous utilisiez db2_fetch_both(), db2_fetch_array() ou db2_fetch_object() au lieu de db2_fetch_row()/db2_result(). En général db2_fetch_row()/db2_result() a plus de problèmes avec des types de colonne variés dans la traduction de EBCIDIC à ASCII, en incluant de possible troncature dans les applications DBCS. Vous pourriez aussi trouver une performance d'utiliser db2_fetch_both(), db2_fetch_array() et db2_fetch_object() à utiliser db2_fetch_row()/db2_result().

<?php
  $conn = db2_connect("","","");
  $sql = 'SELECT SPECIFIC_SCHEMA, SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_CREATED, ROUTINE_BODY, IN_PARMS, OUT_PARMS, INOUT_PARMS, PARAMETER_STYLE, EXTERNAL_NAME, EXTERNAL_LANGUAGE FROM QSYS2.SYSROUTINES FETCH FIRST 2 ROWS ONLY';
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_both($stmt)){
    echo "<br>db2_fetch_both {$row['SPECIFIC_NAME']} {$row['ROUTINE_CREATED']} {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_array($stmt)){
    echo "<br>db2_fetch_array {$row[1]}  {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_object($stmt)){
    echo "<br>db2_fetch_object {$row->SPECIFIC_NAME} {$row->ROUTINE_CREATED}";
  }
  db2_close($conn);
?>

L'exemple ci-dessus va afficher :

db2_fetch_both MATCH_ANIMAL 2006-08-25-17.10.23.775000 2006-08-25-17.10.23.775000
db2_fetch_both MULTIRESULTS 2006-10-17-10.11.05.308000 2006-10-17-10.11.05.308000
db2_fetch_array MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_array MULTIRESULTS 2006-10-17-10.11.05.308000
db2_fetch_object MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_object MULTIRESULTS 2006-10-17-10.11.05.308000

Voir aussi

  • db2_fetch_array() - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_assoc() - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_both() - Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_object() - Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats


Retourne le maximum d'octets requis pour afficher une colonne

  • « db2_fetch_row
  • db2_field_name »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne le maximum d'octets requis pour afficher une colonne

db2_field_display_size

(PECL ibm_db2 >= 1.0.0)

db2_field_display_size — Retourne le maximum d'octets requis pour afficher une colonne

Description

int db2_field_display_size ( resource $stmt , mixed $column )

Retourne le maximum d'octets requis pour afficher une colonne dans un jeu de résultats.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne une valeur entière avec le maximum d'octets requis pour afficher la colonne spécifiée. Si la colonne n'existe pas dans le jeu de résultats, db2_field_display_size() retourne FALSE.

Voir aussi

  • db2_field_name() - Retourne le nom de la colonne du jeu de résultats
  • db2_field_num() - Retourne la position du nom de la colonne du jeu de résultats
  • db2_field_precision() - Retourne la précision de la colonne indiquée du jeu de résultats
  • db2_field_scale() - Retourne l'échelle de la colonne indiquée du jeu de résultats
  • db2_field_type() - Retourne le type de donnée de la colonne indiquée du jeu de résultats
  • db2_field_width() - Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats


Retourne le nom de la colonne du jeu de résultats

  • « db2_field_display_size
  • db2_field_num »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne le nom de la colonne du jeu de résultats

db2_field_name

(PECL ibm_db2 >= 1.0.0)

db2_field_name — Retourne le nom de la colonne du jeu de résultats

Description

string db2_field_name ( resource $stmt , mixed $column )

Retourne le nom de la colonne du jeu de résultats

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne une chaîne contenant le nom de la colonne spécifiée. Si la colonne spécifiée n'existe pas dans le jeu de résultat, db2_field_name() retourne FALSE.

Voir aussi

  • db2_field_display_size() - Retourne le maximum d'octets requis pour afficher une colonne
  • db2_field_num() - Retourne la position du nom de la colonne du jeu de résultats
  • db2_field_precision() - Retourne la précision de la colonne indiquée du jeu de résultats
  • db2_field_scale() - Retourne l'échelle de la colonne indiquée du jeu de résultats
  • db2_field_type() - Retourne le type de donnée de la colonne indiquée du jeu de résultats
  • db2_field_width() - Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats


Retourne la position du nom de la colonne du jeu de résultats

  • « db2_field_name
  • db2_field_precision »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne la position du nom de la colonne du jeu de résultats

db2_field_num

(PECL ibm_db2 >= 1.0.0)

db2_field_num — Retourne la position du nom de la colonne du jeu de résultats

Description

int db2_field_num ( resource $stmt , mixed $column )

Retourne la position du nom de la colonne du jeu de résultats

Liste de paramètres

stmt

Spécifie une ressource contenant un jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne un entier contenant la position commençant à 0 du nom de la colonne dans le jeu de résultats. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_num() retourne FALSE.

Voir aussi

  • db2_field_display_size() - Retourne le maximum d'octets requis pour afficher une colonne
  • db2_field_name() - Retourne le nom de la colonne du jeu de résultats
  • db2_field_precision() - Retourne la précision de la colonne indiquée du jeu de résultats
  • db2_field_scale() - Retourne l'échelle de la colonne indiquée du jeu de résultats
  • db2_field_type() - Retourne le type de donnée de la colonne indiquée du jeu de résultats
  • db2_field_width() - Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats


Retourne la précision de la colonne indiquée du jeu de résultats

  • « db2_field_num
  • db2_field_scale »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne la précision de la colonne indiquée du jeu de résultats

db2_field_precision

(PECL ibm_db2 >= 1.0.0)

db2_field_precision — Retourne la précision de la colonne indiquée du jeu de résultats

Description

int db2_field_precision ( resource $stmt , mixed $column )

Retourne la précision de la colonne indiquée du jeu de résultats.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne un entier contenant la précision de la colonne spécifiée. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_precision() retourne FALSE.

Voir aussi

  • db2_field_display_size() - Retourne le maximum d'octets requis pour afficher une colonne
  • db2_field_name() - Retourne le nom de la colonne du jeu de résultats
  • db2_field_num() - Retourne la position du nom de la colonne du jeu de résultats
  • db2_field_scale() - Retourne l'échelle de la colonne indiquée du jeu de résultats
  • db2_field_type() - Retourne le type de donnée de la colonne indiquée du jeu de résultats
  • db2_field_width() - Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats


Retourne l'échelle de la colonne indiquée du jeu de résultats

  • « db2_field_precision
  • db2_field_type »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne l'échelle de la colonne indiquée du jeu de résultats

db2_field_scale

(PECL ibm_db2 >= 1.0.0)

db2_field_scale — Retourne l'échelle de la colonne indiquée du jeu de résultats

Description

int db2_field_scale ( resource $stmt , mixed $column )

Retourne l'échelle de la colonne indiquée du jeu de résultats.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne un entier contenant l'échelle de la colonne spécifiée. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_scale() retourne FALSE.

Voir aussi

  • db2_field_display_size() - Retourne le maximum d'octets requis pour afficher une colonne
  • db2_field_name() - Retourne le nom de la colonne du jeu de résultats
  • db2_field_num() - Retourne la position du nom de la colonne du jeu de résultats
  • db2_field_precision() - Retourne la précision de la colonne indiquée du jeu de résultats
  • db2_field_type() - Retourne le type de donnée de la colonne indiquée du jeu de résultats
  • db2_field_width() - Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats


Retourne le type de donnée de la colonne indiquée du jeu de résultats

  • « db2_field_scale
  • db2_field_width »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne le type de donnée de la colonne indiquée du jeu de résultats

db2_field_type

(PECL ibm_db2 >= 1.0.0)

db2_field_type — Retourne le type de donnée de la colonne indiquée du jeu de résultats

Description

string db2_field_type ( resource $stmt , mixed $column )

Retourne le type de donnée de la colonne indiquée du jeu de résultats.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne une chaîne contenant le type de données défini de la colonne spécifiée. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_type() retourne FALSE.

Voir aussi

  • db2_field_display_size() - Retourne le maximum d'octets requis pour afficher une colonne
  • db2_field_name() - Retourne le nom de la colonne du jeu de résultats
  • db2_field_num() - Retourne la position du nom de la colonne du jeu de résultats
  • db2_field_precision() - Retourne la précision de la colonne indiquée du jeu de résultats
  • db2_field_scale() - Retourne l'échelle de la colonne indiquée du jeu de résultats
  • db2_field_width() - Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats


Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats

  • « db2_field_type
  • db2_foreign_keys »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats

db2_field_width

(PECL ibm_db2 >= 1.0.0)

db2_field_width — Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats

Description

int db2_field_width ( resource $stmt , mixed $column )

Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats. Cela est la largeur maximale de la colonne pour un type de données de longueur fixe ou la largeur actuelle de la colonne pour un type de données de longueur fixe.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne un entier contenant la largeur du caractère spécifié ou de la colonne de type binaire dans le jeu de résultats. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_width() retourne FALSE.

Voir aussi

  • db2_field_display_size() - Retourne le maximum d'octets requis pour afficher une colonne
  • db2_field_name() - Retourne le nom de la colonne du jeu de résultats
  • db2_field_num() - Retourne la position du nom de la colonne du jeu de résultats
  • db2_field_precision() - Retourne la précision de la colonne indiquée du jeu de résultats
  • db2_field_scale() - Retourne l'échelle de la colonne indiquée du jeu de résultats
  • db2_field_type() - Retourne le type de donnée de la colonne indiquée du jeu de résultats


Retourne un jeu de résultats listant les clés étrangères d'une table

  • « db2_field_width
  • db2_free_result »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un jeu de résultats listant les clés étrangères d'une table

db2_foreign_keys

(PECL ibm_db2 >= 1.0.0)

db2_foreign_keys — Retourne un jeu de résultats listant les clés étrangères d'une table

Description

resource db2_foreign_keys ( resource $connection , string $qualifier , string $schema , string $table-name )

Retourne un jeu de résultats listant les clés étrangères d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Si schema est NULL, db2_foreign_keys() fait concorder le schéma pour la connexion courante.

table-name

Le nom de la table.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant des lignes décrivant les clés étrangères à la table spécifiée. Le jeu de résultats est composé des colonnes suivantes :

Nom de la colonne | Description
PKTABLE_CAT | Nom du catalogue de la table contenant la clé primaire. La valeur est NULL si la table n'a pas de catalogue.
PKTABLE_SCHEM | Nom du schéma de la table contenant la clé primaire.
PKTABLE_NAME | Nom de la table contenant la clé primaire.
PKCOLUMN_NAME | Nom de la colonne contenant la clé primaire.
FKTABLE_CAT | Nom du catalogue de la table contenant la clé étrangère. La valeur est NULL si la table n'a pas de catalogue.
FKTABLE_SCHEM | Nom du schéma de la table contenant la clé étrangère.
FKTABLE_NAME | Nom de la table contenant la clé étrangère.
FKCOLUMN_NAME | Nom de la colonne contenant la clé étrangère.
KEY_SEQ | Position commençant à 1 de la colonne dans la clé.
UPDATE_RULE | Entier représentant l'action appliquée à la clé étrangère lorsque une opération est de type UPDATE.
DELETE_RULE | Entier représentant l'action appliquée à la clé étrangère lorsque une opération est de type DELETE.
FK_NAME | Nom de la clé étrangère.
PK_NAME | Nom de la clé primaire.
DEFERRABILITY | Un entier représentant si le mode différé de la clé étrangère est SQL_INITIALLY_DEFERRED, SQL_INITIALLY_IMMEDIATE ou SQL_NOT_DEFERRABLE.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées


Libère la mémoire associée à un jeu de résultats

  • « db2_foreign_keys
  • db2_free_stmt »
  • PHP Manual
  • Fonctions IBM DB2
  • Libère la mémoire associée à un jeu de résultats

db2_free_result

(PECL ibm_db2 >= 1.0.0)

db2_free_result — Libère la mémoire associée à un jeu de résultats

Description

bool db2_free_result ( resource $stmt )

Libère la mémoire des ressources du système et de base de données associée du jeu de résultats. Ces ressources sont libérées implicitement lorsqu'un script se termine, mais vous pouvez appeler db2_free_result() pour libérer explicitement les ressources avant la fin du script.

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • db2_free_stmt() - Libère la mémoire associée à la ressource indiquée


Libère la mémoire associée à la ressource indiquée

  • « db2_free_result
  • db2_get_option »
  • PHP Manual
  • Fonctions IBM DB2
  • Libère la mémoire associée à la ressource indiquée

db2_free_stmt

(PECL ibm_db2 >= 1.0.0)

db2_free_stmt — Libère la mémoire associée à la ressource indiquée

Description

bool db2_free_stmt ( resource $stmt )

Libère la mémoire des ressources du système et de base de données associée au jeu de résultats. Ces ressources sont libérées implicitement lorsqu'un script se termine, mais vous pouvez appeler db_free_stmt() pour libérer explicitement les ressources avant la fin du script.

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • db2_free_result() - Libère la mémoire associée à un jeu de résultats


Récupère la valeur d'une option pour une requête ou une connexion

  • « db2_free_stmt
  • db2_last_insert_id »
  • PHP Manual
  • Fonctions IBM DB2
  • Récupère la valeur d'une option pour une requête ou une connexion

db2_get_option

(PECL ibm_db2 >= 1.6.0)

db2_get_option — Récupère la valeur d'une option pour une requête ou une connexion

Description

string db2_get_option ( resource $resource , string $option )

Récupère la valeur d'une option spécifiée pour une ressource de requête ou une ressource de connexion.

Liste de paramètres

resource

Une ressource de requête valide retournée par db2_prepare() ou une ressource de connexion valide retournée par db2_connect() ou db2_pconnect().

option

Des options de requête ou de connexion valides. Les nouvelles options suivantes sont disponibles depuis la version 1.6.0 de ibm_db2. Elles fournissent d'utiles informations de traçage qui peuvent être fixées pendant l'exécution avec db2_get_option().

Note:

Les anciennes versions de ibm_db ne supportent pas ces nouvelles options.

Lorsqu'une valeur dans chaque option est fixée, certains serveurs peuvent ne pas prendre en charge la valeur totale fournie et peuvent tronquer cette valeur.

Pour s'assurer que les données spécifiées dans chaque option sont converties correctement lors de la transmission vers une base de données, utilisez seulement les caractères de A à Z, 0 à 9 et les caractères de soulignement (_) ou point (.).

userid

SQL_ATTR_INFO_USERID : un pointeur vers une chaîne de caractères utilisée pour identifier l'identifiant de l'usager (ID) envoyé vers le serveur de base de données lors de la connexion à DB2.

Note:

DB2 pour les serveurs z/OS et OS/390 supportent jusqu'à 16 caractères. Le user-id ne doit pas être confondu avec l'identification user-id ; il s'agit seulement d'un but d'identification et ne doit pas être autorisé pour des autorisations.

acctstr

SQL_ATTR_INFO_ACCTSTR : un pointeur vers une chaîne de caractères utilisée pour identifier le compte du client envoyé vers le serveur de base de données lors de la connexion à DB2.

Note:

DB2 pour les serveurs z/OS et OS/390 supportent jusqu'à 200 caractères.

applname

SQL_ATTR_INFO_APPLNAME : un pointeur vers une chaîne de caractères utilisée pour identifier le nom de l'application du client envoyée vers le serveur de base de données lors de la connexion à DB2.

Note:

DB2 pour les serveurs z/OS et OS/390 supportent jusqu'à 32 caractères.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME : un pointeur vers une chaîne de caractères utilisée pour identifier le nom de la machine du client envoyée vers le serveur de base de données lors de la connexion à DB2.

Note:

DB2 pour les serveurs z/OS et OS/390 supportent jusqu'à 18 caractères.

La table suivante spécifie quelles options qui sont compatibles avec le type de ressource disponible :

Matrice ressource paramètre
Clé | Valeur | Type de ressource
 |  | Connexion | Requête | Jeu de résultats
userid | SQL_ATTR_INFO_USERID | X | X | -
acctstr | SQL_ATTR_INFO_ACCTSTR | X | X | -
applname | SQL_ATTR_INFO_APPLNAME | X | X | -
wrkstnname | SQL_ATTR_INFO_WRKSTNNAME | X | X | -

Valeurs de retour

Retourne la configuration courante de la connexion fournie en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fixe et récupère les paramètres d'une ressource de connexion

<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$user     = 'db2inst1';
$password = 'ibmdb2';

/* Récupération de la Ressource de Connexion */
$conn = db2_connect($database, $user, $password);

echo "Attributs de connexion passés avec la chaîne de caractères de connexion :\n";

/* Crée un tableau associatif d'options avec les paires clé/valeur valides */
/* Assigne les attributs à partir de la chaîne de caractères de connexion */
/* Accède les options spécifiées */
$options1 = array('userid' => 'db2inst1');
$conn1 = db2_connect($database, $user, $password, $options1);
$val = db2_get_option($conn1, 'userid');
echo $val . "\n";

$options2 = array('acctstr' => 'account');
$conn2 = db2_connect($database, $user, $password, $options2);
$val = db2_get_option($conn2, 'acctstr');
echo $val . "\n";

$options3 = array('applname' => 'myapp');
$conn3 = db2_connect($database, $user, $password, $options3);
$val = db2_get_option($conn3, 'applname');
echo $val . "\n";

$options4 = array('wrkstnname' => 'workstation');
$conn4 = db2_connect($database, $user, $password, $options4);
$val = db2_get_option($conn4, 'wrkstnname');
echo $val . "\n";

echo "Attributs après la connexion :\n";

/* Crée un tableau associatif d'options avec les paires clé/valeur valides */
/* Assigne les attributs après que la connexion soit faite */
/* Accède les options spécifiées */
$options5 = array('userid' => 'db2inst1');
$conn5 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn5, $options5, 1);
$val = db2_get_option($conn5, 'userid');
echo $val . "\n";

$options6 = array('acctstr' => 'account');
$conn6 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn6, $options6, 1);
$val = db2_get_option($conn6, 'acctstr');
echo $val . "\n";

$options7 = array('applname' => 'myapp');
$conn7 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn7, $options7, 1);
$val = db2_get_option($conn7, 'applname');
echo $val . "\n";

$options8 = array('wrkstnname' => 'workstation');
$conn8 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn8, $options8, 1);
$val = db2_get_option($conn8, 'wrkstnname');
echo $val . "\n";
?>

L'exemple ci-dessus va afficher :

Attributs de connexion passés avec la chaîne de caractères de connexion :
db2inst1
account
myapp
workstation
Attributs après la connexion :
db2inst1
account
myapp
workstation

Voir aussi

  • db2_connect() - Retourne une connexion à une base de données
  • db2_cursor_type() - Retourne le type de curseur utilisé par une ressource
  • db2_exec() - Exécute une requête SQL directement
  • db2_set_option() - Fixe des options pour une connexion ou des ressources
  • db2_pconnect() - Retourne une connexion persistante à une base de données
  • db2_prepare() - Prépare une requête SQL à être exécutée


Retourne le dernier ID généré par la dernière requête d'insertion

  • « db2_get_option
  • db2_lob_read »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne le dernier ID généré par la dernière requête d'insertion

db2_last_insert_id

(PECL ibm_db2 >= 1.7.1)

db2_last_insert_id — Retourne le dernier ID généré par la dernière requête d'insertion

Description

string db2_last_insert_id ( resource $resource )

Retourne le dernier identifiant autogénéré par la dernière requête d'insertion pour la connexion en cours.

Le résultat de cette fonction n'est pas affecté par les événements suivants :

  • Une commande unique INSERT avec une clause VALUES pour une table qui ne dispose pas de colonne d'identité.

  • Une commande INSERT multiple avec clause VALUES.

  • Une commande INSERT avec un SELECT.

  • Une commande ROLLBACK TO SAVEPOINT.

Liste de paramètres

resource

Une ressource de connexion valide, créée par db2_connect() ou db2_pconnect(). La valeur de ce paramètre ne peut pas être une ressource de commande ou de résultat.

Valeurs de retour

Retourne l'identifiant autogénéré qui a pu être exécuté correctement sur cette connexion.

Exemples

Exemple #1 Exemple avec db2_last_insert_id()

L'exemple suivant montre comment retourner un identifiant automatique

<?php

$database = "SAMPLE";
$user = "db2inst1";
$password = "ibmdb2";

$conn = db2_connect($database, $user, $password);
if($conn) {
    $createTable = "CREATE TABLE lastInsertID
      (id integer GENERATED BY DEFAULT AS IDENTITY, name varchar(20))";
    $insertTable = "INSERT INTO lastInsertID (name) VALUES ('Temp Name')";

    $stmt = @db2_exec($conn, $createTable);

    /* Vérification de l'insertion d'une ligne unique */
    $stmt = db2_exec($conn, $insertTable);
    $ret =  db2_last_insert_id($conn);
    if($ret) {
        echo "Dernier ID inséré : " . $ret . "\n";
    } else {
        echo "Pas d'ID inséré récemment.\n";
    }

    db2_close($conn);
}
else {
    echo "La connexion a échoué.";
}
?>

L'exemple ci-dessus va afficher :

Dernier ID généré : 1


Récupère de grands objets binaires de tailles prédéfinies à chaque invocation

  • « db2_last_insert_id
  • db2_next_result »
  • PHP Manual
  • Fonctions IBM DB2
  • Récupère de grands objets binaires de tailles prédéfinies à chaque invocation

db2_lob_read

(PECL ibm_db2 >= 1.6.0)

db2_lob_read — Récupère de grands objets binaires de tailles prédéfinies à chaque invocation

Description

string db2_lob_read ( resource $stmt , int $colnum , int $length )

Utilisez db2_lob_read() pour passer à travers une colonne spécifique d'un jeu de résultats et récupérer les grands objets binaires de taille prédéfinie.

Liste de paramètres

stmt

Une ressource stmt valide contenant des grands objets binaires.

colnum

Un numéro de colonne valide dans le jeu de résultats de la ressource stmt.

length

La taille des grands objets binaires à récupérer de la ressource stmt.

Valeurs de retour

Retourne le nombre de données spécifiés. Retourne FALSE si les données ne peuvent être récupérées.

Exemples

Exemple #1 Itére à travers différents types de données

<?php

/* Paramètres de Connexion */
$db = 'SAMPLE';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Récupération de la Ressource de Connexion */
$conn = db2_connect($db,$username,$password);

if ($conn) {
    $drop = 'DROP TABLE clob_stream';
    $result = @db2_exec( $conn, $drop );

    $create = 'CREATE TABLE clob_stream (id INTEGER, my_clob CLOB)';
    $result = db2_exec( $conn, $create );

    $variable = "";
    $stmt = db2_prepare($conn, "INSERT INTO clob_stream (id,my_clob) VALUES (1, ?)");
    $variable = "THIS IS A CLOB TEST. THIS IS A CLOB TEST.";
    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
    db2_execute($stmt);

    $sql = "SELECT id,my_clob FROM clob_stream";
    $result = db2_prepare($conn, $sql);
    db2_execute($result);
    db2_fetch_row($result);
    $i = 0;
    /* Lecture des grands objets */
    while ($data = db2_lob_read($result, 2, 6)) {
        echo "Boucle $i : $data\n";
        $i = $i + 1;
    }

    $drop = 'DROP TABLE blob_stream';
    $result = @db2_exec( $conn, $drop );

    $create = 'CREATE TABLE blob_stream (id INTEGER, my_blob CLOB)';
    $result = db2_exec( $conn, $create );

    $variable = "";
    $stmt = db2_prepare($conn, "INSERT INTO blob_stream (id,my_blob) VALUES (1, ?)");
    $variable = "THIS IS A BLOB TEST. THIS IS A BLOB TEST.";
    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
    db2_execute($stmt);

    $sql = "SELECT id,my_blob FROM blob_stream";
    $result = db2_prepare($conn, $sql);
    db2_execute($result);
    db2_fetch_row($result);
    $i = 0;
    /* Lecture des grands objets */
    while ($data = db2_lob_read($result, 2, 6)) {
        echo "Boucle $i : $data\n";
        $i = $i + 1;
    }
} else {
    echo 'aucune connexion : ' . db2_conn_errormsg();
}

?>

L'exemple ci-dessus va afficher :

Boucle 0 : THIS I
Boucle 1 : S A CL
Boucle 2 : OB TES
Boucle 3 : T. THI
Boucle 4 : S IS A
Boucle 5 :  CLOB
Boucle 6 : TEST.
Boucle 0 : THIS I
Boucle 1 : S A BL
Boucle 2 : OB TES
Boucle 3 : T. THI
Boucle 4 : S IS A
Boucle 5 :  BLOB
Boucle 6 : TEST.

Voir aussi

  • db2_bind_param() - Associe une variable PHP à un paramètre d'une requête SQL
  • db2_exec() - Exécute une requête SQL directement
  • db2_execute() - Exécute une requête SQL préparée
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
  • db2_prepare() - Prépare une requête SQL à être exécutée
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats


Demande le prochain jeu de résultats de la ressource indiquée

  • « db2_lob_read
  • db2_num_fields »
  • PHP Manual
  • Fonctions IBM DB2
  • Demande le prochain jeu de résultats de la ressource indiquée

db2_next_result

(PECL ibm_db2 >= 1.0.0)

db2_next_result — Demande le prochain jeu de résultats de la ressource indiquée

Description

resource db2_next_result ( resource $stmt )

Une procédure d'enregistrement peut retourner aucun ou plusieurs jeux de résultats. Vous devez gérer le premier jeu de résultats de la même manière que vous gérez les résultats retournés par une simple requête SELECT, pour obtenir le second ou les résultats suivants, vous devez appeler la fonction db2_next_result() et retourner le résultat dans une variable PHP.

Liste de paramètres

stmt

Une requête préparée retournée par db2_exec() ou db2_execute().

Valeurs de retour

Retourne une nouvelle ressource contenant le jeu de résultats suivants si la procédure contenait un jeu de résultats suivant. Retourne FALSE si la procédure n'avait plus de jeu de résultats à retourner.

Exemples

Exemple #1 Exemple avec db2_next_result()

Dans l'exemple suivant, nous appelons une procédure qui retourne trois jeux de résultats. Le premier jeu de résultats est récupéré directement de la même ressource sur laquelle on a invoqué une requête CALL, alors que le deuxième et troisième jeux de résultats sont récupérés des ressources retournées par l'appel de la fonction db2_next_result().

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
  $stmt = db2_exec($conn, 'CALL multiResults()');

  print "Récupération du premier jeu de résultats\n";
  while ($row = db2_fetch_array($stmt)) {
    var_dump($row);
  }

  print "\nRécupération du deuxième jeu de résultats\n";
  $res = db2_next_result($stmt);
  if ($res) {
    while ($row = db2_fetch_array($res)) {
      var_dump($row);
    }
  }

  print "\nRécupération du troisième jeu de résultats\n";
  $res2 = db2_next_result($stmt);
  if ($res2) {
    while ($row = db2_fetch_array($res2)) {
      var_dump($row);
    }
  }

  db2_close($conn);
}
?>

L'exemple ci-dessus va afficher :

Récupération du premier jeu de résultats
array(2) {
  [0]=>
  string(16) "Bubbles         "
  [1]=>
  int(3)
}
array(2) {
  [0]=>
  string(16) "Gizmo           "
  [1]=>
  int(4)
}

Récupération du deuxième jeu de résultats
array(4) {
  [0]=>
  string(16) "Sweater         "
  [1]=>
  int(6)
  [2]=>
  string(5) "lama"
  [3]=>
  string(6) "150.00"
}
array(4) {
  [0]=>
  string(16) "Smarty          "
  [1]=>
  int(2)
  [2]=>
  string(5) "cheval"
  [3]=>
  string(6) "350.00"
}

Récupération du troisième jeu de résultats
array(1) {
  [0]=>
  string(16) "Bubbles         "
}
array(1) {
  [0]=>
  string(16) "Gizmo           "
}


Retourne le nombre de champs contenu du jeu de résultats

  • « db2_next_result
  • db2_num_rows »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne le nombre de champs contenu du jeu de résultats

db2_num_fields

(PECL ibm_db2 >= 1.0.0)

db2_num_fields — Retourne le nombre de champs contenu du jeu de résultats

Description

int db2_num_fields ( resource $stmt )

Retourne le nombre de champs contenus dans le jeu de résultats. Cette fonction est très utile lorsque vous gérez des jeux de résultats retourné par des requêtes générées dynamiquement ou pour des jeux de résultats retournés par des procédures d'enregistrement, là où votre application ne peut faire autrement pour obtenir et utiliser ces résultats.

Liste de paramètres

stmt

Une ressource valide contenant un jeu de résultats.

Valeurs de retour

Retourne un entier représentant le nombre de champs dans le jeu de résultats associé avec la ressource spécifiée. Retourne FALSE si la ressource n'est pas valide.

Exemples

Exemple #1 Exemple avec db2_num_fields()

L'exemple suivant démontre comment obtenir le nombre de champs retournés dans le jeu de résultats.

<?php

$sql = "SELECT id, nom, race, poids FROM animaux ORDER BY race";
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, $sql);
$columns = db2_num_fields($stmt);

echo "Il y a {$columns} colonne dans le jeu de résultats.";
?>

L'exemple ci-dessus va afficher :

Il y a 4 colonnes dans le jeu de résultats.

Voir aussi

  • db2_execute() - Exécute une requête SQL préparée
  • db2_field_display_size() - Retourne le maximum d'octets requis pour afficher une colonne
  • db2_field_name() - Retourne le nom de la colonne du jeu de résultats
  • db2_field_num() - Retourne la position du nom de la colonne du jeu de résultats
  • db2_field_precision() - Retourne la précision de la colonne indiquée du jeu de résultats
  • db2_field_scale() - Retourne l'échelle de la colonne indiquée du jeu de résultats
  • db2_field_type() - Retourne le type de donnée de la colonne indiquée du jeu de résultats
  • db2_field_width() - Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats


Retourne le nombre de lignes affectées par une requête SQL

  • « db2_num_fields
  • db2_pclose »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne le nombre de lignes affectées par une requête SQL

db2_num_rows

(PECL ibm_db2 >= 1.0.0)

db2_num_rows — Retourne le nombre de lignes affectées par une requête SQL

Description

int db2_num_rows ( resource $stmt )

Retourne le nombre de lignes supprimées, ajoutées, mises à jour par une requête SQL.

Afin de déterminer le nombre de lignes que retournera une requête SELECT, utilisez la requête SELECT COUNT(*) avec les mêmes attributs lorsque vous avez effectué la requête SELECT et la récupération des valeurs.

Si la logique de votre application vérifie le nombre de ligne retournée par une requête SELECT et effectue le saut si le nombre de ligne est 0, modifiez votre application pour tenter de retourner la première ligne avec db2_fetch_assoc(), db2_fetch_both(), db2_fetch_array() ou db2_fetch_row(), et effectuez le saut si la fonction retourne FALSE.

Note:

Si vous envoyez une requête SELECT avec un curseur flottant, db2_num_rows() retournera le nombre de lignes retournées par la requête SELECT. Cependant, le temps système associé avec des curseurs flottants dégrade considérablement les performances de votre application, alors si cela est la seule raison pour laquelle vous utilisez des curseurs flottants, vous devriez utiliser des curseurs à avancement seul et de plus appeler SELECT COUNT(*) ou compter sur les valeurs de retour des fonctions de type boolean pour obtenir l'équivalent de fonctionnalité avec une performance bien meilleure.

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

Valeurs de retour

Retourne le nombre de lignes affectées par la dernière requête SQL envoyée par une fonction qui exécute les requêtes SQL.


Ferme une connexion persistante à la base de données

  • « db2_num_rows
  • db2_pconnect »
  • PHP Manual
  • Fonctions IBM DB2
  • Ferme une connexion persistante à la base de données

db2_pclose

(PECL ibm_db2 >= 1.8.0)

db2_pclose — Ferme une connexion persistante à la base de données

Description

bool db2_pclose ( resource $resource )

Cette fonction ferme une connexion DB2, créée avec db2_pconnect() et libère les ressources correspondances du serveur.

Note:

Cette fonction n'est disponible sur i5/OS en réponse à des requêtes d'administration i5/OS.

Si vous avez une connexion client DB2 persistante créée avec la fonction db2_pconnect(), vous pouvez utiliser cette fonction pour fermer la connexion. Pour éviter des coûts de connexion significatifs, cette fonction ne doit être utilisée que dans de rares cas, où la connexion est devenue amorphe, ou que la connexion persistante ne sera plus utilisée pour un long moment.

Liste de paramètres

connection

Une ressource de connexion active DB2.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fermer une connexion DB2 persistante

L'exemple ci-dessous montre comment fermer une connexion sur un serveur IBM DB2 i5/OS.

<?php
$conn = db2_pconnect('', '', '');
$rc = db2_pclose($conn);
if ($rc) {
    echo "La connexion a été correctement fermée.";
}
?>

L'exemple ci-dessus va afficher :

La connexion a été correctement fermée.

Voir aussi

  • db2_close() - Ferme une connexion de base de données
  • db2_pconnect() - Retourne une connexion persistante à une base de données


Retourne une connexion persistante à une base de données

  • « db2_pclose
  • db2_prepare »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne une connexion persistante à une base de données

db2_pconnect

(PECL ibm_db2 >= 1.0.0)

db2_pconnect — Retourne une connexion persistante à une base de données

Description

resource db2_pconnect ( string $database , string $username , string $password [, array $options ] )

Retourne une connexion persistante à une base de données IBM DB2 Universal Database, IBM Cloudscape ou Apache Derby.

Pour plus d'infirmations sur les connexions persistantes, voyez Connexions persistantes aux bases de données.

En appelant db2_close() sur une connexion persistante, vous recevrez toujours TRUE, mais les connexions des clients DB2 demeureront ouvertes et attendront de servir la prochaine demande de la fonction db2_pconnect().

Les utilisateurs de versions 1.9.0 ou plus de ibm_db2 doivent savoir que l'extension exécutera un rollback sur une transaction dans une connexion persistente à la fin de la requête, terminant ainsi la transaction. Ceci évite un blocage transactionnel vers la requête suivante sur la même connexion si l'exécution du script se termine avant la transaction.

Liste de paramètres

database

L'alias de la base de données dans le catalogue du client DB2.

username

Le nom d'utilisateur avec lequel vous vous connectez à la base de données.

password

Le mot de passe avec lequel vous vous connectez à la base de données.

options

Un tableau associatif des options de connexion qui affecteront le comportement de la connexion, où les valeurs des clés incluent :

autocommit

La valeur DB2_AUTOCOMMIT_ON active le autocommit sur cette connexion.

La valeur DB2_AUTOCOMMIT_OFF désactive le autocommit pour cette connexion.

DB2_ATTR_CASE

Passer la valeur DB2_CASE_NATURAL spécifie que les noms de colonnes seront retournés dans leurs casses naturelles.

Passer la valeur DB2_CASE_LOWER spécifie que les noms de colonnes seront retournés en minuscule.

Passer la valeur DB2_CASE_UPPER spécifie que les noms de colonnes seront retournés en majuscule.

CURSOR

Passer la valeur DB2_FORWARD_ONLY spécifie un curseur uniquement suivant pour une ressource de requête. C'est le type de curseur par défaut et est supporté sur tous les serveurs de base de données.

Passer la valeur DB2_SCROLLABLE spécifie un curseur scrollable pour une ressource de requête. Ce mode permet un accès aléatoire aux lignes dans un jeu de résultats, mais actuellement, n'est supporté que par la base de données IBM DB2 Universal.

Les options suivantes sont disponibles depuis ibm_db2 version 1.7.0.

trustedcontext

En passant la valeur DB2_TRUSTED_CONTEXT_ENABLE, le contexte de confiance est activé pour cette connexion. Ce paramètre ne peut pas être activé avec db2_set_option().

Cette option ne fonctionne que si la base est cataloguée, même si la base est locale, ou si vous spécifiez un DSN complet lors de la création de la connexion.

Pour cataloguer la base, utilisez la commande suivante :

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

Les options i5/OS suivantes sont disponibles depuis ibm_db2 version 1.5.1.

Astuce

Des attributs de connexion contradictoires, en conjonction avec une connexion persistante peut produire des résultats indéterminés sur i5/OS. La politique du site doit être établie pour toutes les applications qui utilisent une connexion persistante. La valeur par défaut de DB2_AUTOCOMMIT_ON est recommandée avec les connexions persistantes.

i5_lib

Une caractère qui indique la bibliothèque par défaut qui sera utilisée pour résoudre les références de fichiers non qualifiées. Cette option n'est pas valide si la connexion utilise le mode de nommage système.

i5_naming

DB2_I5_NAMING_ON active le mode de nommage système de DB2 UDB CLI iSeries. Les fichiers sont alors qualifiés avec le délimiteur slash (/). Les fichiers non qualifiés sont résolus en utilisant la liste de bibliothèque de la tâche.

DB2_I5_NAMING_OFF active le mode de nommage par défaut, qui est le nommage SQL. Les fichiers sont alors qualifiés avec le point (.) . Les fichiers non qualifiés sont résolus avec la bibliothèque par défaut, ou bien l'identifiant de l'utilisateur courant.

i5_commit

L'attribut i5_commit doit être configuré avant l'appel à db2_pconnect(). Si la valeur est changée après la connexion, et que la connexion s'effectue sur des données distantes, alors ce changement n'aura pas d'effets, juqu'au prochain appel réussi à db2_pconnect().

Note:

La directive du php.ini ibm_db2.i5_allow_commit==0 ou DB2_I5_TXN_NO_COMMIT est la valeur par défaut, mais peut être remplacé par l'option i5_commit.

DB2_I5_TXN_NO_COMMIT : le contrôle de validation n'est pas utilisé.

DB2_I5_TXN_READ_UNCOMMITTED : les lectures incohérentes, ou non répétables et les fantômes sont possibles.

DB2_I5_TXN_READ_COMMITTED : les lectures sont cohérentes. Les lecteurs non répétables et les fantômes sont possibles.

DB2_I5_TXN_REPEATABLE_READ : les lectures cohérentes et répétables, mais les fantômes sont possibles.

DB2_I5_TXN_SERIALIZABLE : les transactions sont activées. les lectures incohérentes, ou non répétables et les fantômes sont impossibles.

i5_query_optimize

DB2_FIRST_IO : toutes les requêtes sont optimisées dans le but de retourner la première page le plus rapidement possible. Cet objectif fonctionne bien lorsque le résultat est contrôler par un utilisateur qui a de bonnes chances d'annuler la requête après avoir vu les premières réponses. Les requêtes codée avec une clause OPTIMIZE FOR nnn ROWS respectent aussi cet objectif.

DB2_ALL_IO : toutes les requêtes sont optimisées dans le but de traiter la requête complète le plus rapidement possible. C'est une bonne option lorsque le résultat de la requête doit être écrit dans un fichier ou un rapport, ou que l'interface accumule toutes les données avant de les exporter. Les requêtes codées avec la clause OPTIMIZE FOR nnn ROWS respectent aussi cet objectif. C'est le comportement par défaut.

i5_dbcs_alloc

DB2_I5_DBCS_ALLOC_ON active le schéma d'allocation DB2 6X pour la croissance des tailles de colonnes de translation DBCS.

DB2_I5_DBCS_ALLOC_OFF désactive le schéma d'allocation DB2 6X pour la croissance des tailles de colonnes de translation DBCS.

Note:

La directive du php.ini ibm_db2.i5_dbcs_alloc==0 ou DB2_I5_DBCS_ALLOC_OFF est la valeur par défaut, mais peut être remplacé par l'option i5_dbcs_alloc.

i5_date_fmt

DB2_I5_FMT_ISO : le format de date ISO (International Organization for Standardization) est utilisé : yyyy-mm-dd. C'est le format par défaut.

DB2_I5_FMT_USA : le format des États Unis d'Amérique est utilisé : mm/dd/yyyy.

DB2_I5_FMT_EUR : le format de date européen dd.mm.yyyy est utilisé.

DB2_I5_FMT_JIS : le format standard industriel japonais yyyy-mm-dd est utilisé.

DB2_I5_FMT_MDY : le format de date mm/dd/yyyy est utilisé.

DB2_I5_FMT_DMY : le format de date dd/mm/yyyy est utilisé.

DB2_I5_FMT_YMD : le format de date yy/mm/dd est utilisé.

DB2_I5_FMT_JUL : Le format de date julien yy/ddd est utilisé.

DB2_I5_FMT_JOB : le format de date par défaut est utilisé.

i5_date_sep

DB2_I5_SEP_SLASH : un slash ( / ) est utilisé comme séparateur de date. C'est le format par défaut.

DB2_I5_SEP_DASH : un tiret ( - ) est utilisé comme séparateur de date.

DB2_I5_SEP_PERIOD : un point ( . ) est utilisé comme séparateur de date.

DB2_I5_SEP_COMMA : une virgule ( , ) est utilisé comme séparateur de date.

DB2_I5_SEP_BLANK : un espace est utilisé comme séparateur de date.

DB2_I5_SEP_JOB : la configuration par défaut est utilisée

i5_time_fmt

DB2_I5_FMT_ISO : le format d'heure ISO (International Organization for Standardization) est utilisé : hh.mm.ss. C'est le format par défaut.

DB2_I5_FMT_USA : le format des États-Unis d'Amérique est utilisé : hh:mmxx est utilisé, où xx vaut AM ou PM.

DB2_I5_FMT_EUR : le format d'heure européen hh.mm.ss est utilisé.

DB2_I5_FMT_JIS : le format standard industriel japonais est utilisé hh:mm:ss.

DB2_I5_FMT_HMS : le format hh:mm:ss est utilisé.

i5_time_sep

DB2_I5_SEP_COLON : un deux-point ( : ) est utilisé comme séparateur d'heure. C'est le défaut.

DB2_I5_SEP_PERIOD : un point ( . ) est utilisé comme séparateur d'heure.

DB2_I5_SEP_COMMA : une virgule ( , ) est utilisée comme séparateur d'heure.

DB2_I5_SEP_BLANK : un espace est utilisé comme séparateur d'heure.

DB2_I5_SEP_JOB : le séparateur par défaut est utilisé.

i5_decimal_sep

DB2_I5_SEP_PERIOD : un point ( . ) est utilisé comme séparateur décimal. C'est le séparateur par défaut.

DB2_I5_SEP_COMMA : une virgule ( , ) est utilisée comme séparateur décimal.

DB2_I5_SEP_JOB : le séparateur par défaut est utilisé.

Les options suivantes i5/OS sont disponibles depuis ibm_db2 version 1.8.0.

i5_libl

Un caractère qui indique la bibliothèque qui sera utilisée pour résoudre les références de fichiers non qualifiées. Spécifiez la liste de bibliothèque sous la forme d'éléments séparés par des espaces : 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Note:

i5_libl appelle qsys2/qcmdexc('cmd',cmdlen), qui est disponible depuis i5/OS V5R4.

Valeurs de retour

Retourne la ressource de connexion si la tentative de connexion réussie. db2_pconnect() essaie de réutiliser une ressource de connexion existante qui correspond parfaitement aux paramètres tels que la base de données database, l'utilisateur username et le mot de passe password. Si la tentative de connexion échoue, db2_pconnect() retourne FALSE

Historique

Version | Description
ibm_db2 1.9.0 | Les transactions actives sur des connexions persistantes seront annulées à la fin de chaque requête.
ibm_db2 1.8.0 | L'option i5_libl est disponible pour les utilisateurs de i5/OS.
ibm_db2 1.7.0 | L'option trustedcontext est disponible.
ibm_db2 1.5.1 | Les options i5_lib, i5_naming, i5_commit, i5_query_optimize, i5_dbcs_alloc, i5_date_fmt, i5_date_sep, i5_time_fmt, i5_time_sep et i5_decimal_sep sont disponibles pour les utilisateurs de i5/OS.

Exemples

Exemple #1 Exemple d'utilisation de db2_pconnect()

Dans l'exemple suivant, le premier appel à db2_pconnect() retourne une nouvelle ressource de connexion persistante. Le second appel à la fonction db2_pconnect() retourne une ressource de connexion persistante qui réutilise la première ressource de connexion.

<?php
$database = 'EXEMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$pconn = db2_pconnect($database, $user, $password);

if ($pconn) {
    echo "Connexion persistante réussie.";
}
else {
    echo "Connexion persistante échouée.";
}

$pconn2 = db2_pconnect($database, $user, $password);
if ($pconn) {
    echo "Deuxième connexion persistante réussie.";
}
else {
    echo "Deuxième connexion persistante échouée.";
}
?>

L'exemple ci-dessus va afficher :

Connexion persistante réussie.
Deuxième connexion persistante réussie.

Exemple #2 Utilisation de contextes de confiance DB2

L'exemple suivant montre comment activer un utilisateur de confiance, basculer dessus, et obtenir un identifiant d'utilisateur.

<?php

$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";

$tc_user = "tcuser";
$tc_pass = "tcpassword";

$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
  PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn = db2_pconnect($dsn, "", "", $options);
if($tc_conn) {
    echo "Connexion de confiance réussie.\n";

    if(db2_get_option($tc_conn, "trustedcontext")) {
        $userBefore = db2_get_option($tc_conn, "trusted_user");

        //Travail par l'utilisateur 1.

        //Bascule sur l'utilisateur de confiance.
        $parameters = array("trusted_user" => $tc_user,
          "trusted_password" => $tcuser_pass);
        $res = db2_set_option ($tc_conn, $parameters, 1);

        $userAfter = db2_get_option($tc_conn, "trusted_user");
        //Do more work as trusted user.

        if($userBefore != $userAfter) {
            echo "Utilisateur changé." . "\n";
        }
    }

    db2_close($tc_conn);
}
else {
    echo "Connexion de confiance échouée.\n";
}
?>

L'exemple ci-dessus va afficher :

Connexion de confiance réussie.
Utilisateur changé

Voir aussi

  • db2_connect() - Retourne une connexion à une base de données


Prépare une requête SQL à être exécutée

  • « db2_pconnect
  • db2_primary_keys »
  • PHP Manual
  • Fonctions IBM DB2
  • Prépare une requête SQL à être exécutée

db2_prepare

(PECL ibm_db2 >= 1.0.0)

db2_prepare — Prépare une requête SQL à être exécutée

Description

resource db2_prepare ( resource $connection , string $statement [, array $options ] )

db2_prepare() crée une requête SQL préparée qui peut inclure aucun ou plusieurs marqueurs (caractères ?) représentant les paramètres d'entrée, sortie ou d'entrée/sortie. Vous pouvez passer des paramètres à la requête préparée en utilisant la fonction db2_bind_param(), si vous avez que des entrées, vous pouvez utiliser db2_execute().

Il y a trois principaux avantages d'utiliser les requêtes préparées dans votre application :

  • Performance : lorsque vous préparez une requête, le serveur de base de données crée un plan d'accès optimisé pour la récupération des données avec la requête. Par la suite, l'envoi de la requête préparée avec db2_execute() permet à la requête de réutiliser le plan d'accès et ainsi d'éviter les surcharges du processeurs à chaque envoi de requête qui créerait dynamiquement un nouveau plan d'accès.

  • Sécurité : lorsque vous préparez une requête, vous pouvez inclure des marqueurs pour les valeurs d'entrées. Lorsque vous exécutez une requête préparée avec ces valeurs d'entrées, le serveur de base de données vérifie chaque valeur d'entrée pour s'assurer que les types concordent avec la définition de la colonne ou du paramètre de définition.

  • Fonctionnalité avancée : Les marqueurs vous permettent non seulement de passer des valeurs d'entrées dans les requêtes SQL préparées, mais permettent aussi de récupérer des paramètres de SORTIE et d'ENTRÉE/SORTIE des procédures d'enregistrement en utilisant la fonction db2_bind_param().

Liste de paramètres

connection

Une variable ressource de connexion valide retournée par db2_connect() ou db2_pconnect().

statement

Une requête SQL qui peut contenir un ou plusieurs marqueurs.

options

Un tableau associatif contenant les options de la requête. Vous pouvez utiliser ce paramètre pour demander un curseur flottant sur les serveurs de base de données qui supportent cette fonctionnalité.

Pour une description des options valides, reportez-vous à la fonction db2_set_option().

Valeurs de retour

Retourne une variable ressource si la requête SQL était envoyée correctement ou FALSE si le serveur de base de données a retourné une erreur. Vous pouvez déterminer quelle erreur a été retournée en appelant la fonction db2_stmt_error() ou db2_stmt_errormsg().

Exemples

Exemple #1 Préparation et exécution d'une requête SQL avec des marqueurs

L'exemple suivant prépare une requête INSERT qui accepte quatre marqueurs, ensuite itère sur le tableau contenant les valeurs d'entrées qui sera passé à la fonction db2_execute().

<?php
$animaux = array(
    array(0, 'chat', 'Pook', 3.2),
    array(1, 'chien', 'Peaches', 12.3),
    array(2, 'cheval', 'Smarty', 350.0),
);

$insert = 'INSERT INTO animaux (id, race, nom, poids)
    VALUES (?, ?, ?, ?)';
$stmt = db2_prepare($conn, $insert);
if ($stmt) {
    foreach ($animaux as $animal) {
        $result = db2_execute($stmt, $animal);
    }
}
?>

Voir aussi

  • db2_bind_param() - Associe une variable PHP à un paramètre d'une requête SQL
  • db2_execute() - Exécute une requête SQL préparée
  • db2_stmt_error() - Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL
  • db2_stmt_errormsg() - Retourne le dernier message d'erreur d'une requête SQL


Retourne un jeu de résultats listant les clés d'une table

  • « db2_prepare
  • db2_procedure_columns »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un jeu de résultats listant les clés d'une table

db2_primary_keys

(PECL ibm_db2 >= 1.0.0)

db2_primary_keys — Retourne un jeu de résultats listant les clés d'une table

Description

resource db2_primary_keys ( resource $connection , string $qualifier , string $schema , string $table-name )

Retourne un jeu de résultats listant les clés d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Si schema est NULL, db2_primary_keys() fait concorder le schéma pour la connexion courante.

table-name

Le nom de la table.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant des lignes décrivant les clés primaires à la table spécifiée. Le jeu de résultats est composé des colonnes suivantes :

Nom de la colonne | Description
TABLE_CAT | Nom du catalogue de la table contenant la clé primaire. La valeur est NULL si la table n'a pas de catalogue.
TABLE_SCHEM | Nom du schéma de la table contenant la clé primaire.
TABLE_NAME | Nom de la table contenant la clé primaire.
COLUMN_NAME | Nom de la colonne contenant la clé primaire.
KEY_SEQ | Position commençant à 1 de la colonne dans la clé.
PK_NAME | Nom de la clé primaire.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées


Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement

  • « db2_primary_keys
  • db2_procedures »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement

db2_procedure_columns

(PECL ibm_db2 >= 1.0.0)

db2_procedure_columns — Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement

Description

resource db2_procedure_columns ( resource $connection , string $qualifier , string $schema , string $procedure , string $parameter )

Retourne un jeu de résultats listant les paramètres pour une ou plusieurs procédures d'enregistrement.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

procedure

Le nom de la procédure. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

parameter

Le nom du paramètre. Ce paramètre accepte un paramètre de recherche de forme contenant _ et % en tant que mot clé. Si ce paramètre est NULL, tous les paramètres pour la procédure d'enregistrement spécifiée sont retournés.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrient les paramètres pour les procédures d'enregistrement qui concordent avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne | Description
PROCEDURE_CAT | Nom du catalogue que contient la table. La valeur est NULL si la table n'a pas de catalogue.
PROCEDURE_SCHEM | Nom du schéma que contient la procédure d'enregistrement.
PROCEDURE_NAME | Nom de la procédure.
COLUMN_NAME | Nom du paramètre.
COLUMN_TYPE

Un entier représentant le type du paramètre :

Valeur de retour | Type de paramètre
1 (SQL_PARAM_INPUT) | Paramètre d'entrée (IN).
2 (SQL_PARAM_INPUT_OUTPUT) | Paramètre d'entrée/sortie (INOUT).
3 (SQL_PARAM_OUTPUT) | Paramètre d'entrée (OUT).
DATA_TYPE | Le type de données SQL pour le paramètre représenté en tant qu'entier.
TYPE_NAME | Une chaîne représentant le type de données pour le paramètre.
COLUMN_SIZE | Un entier représentant la grandeur du paramètre.
BUFFER_LENGTH | Nombre d'octets maximaux nécessaires pour enregistrer des données de ce paramètre.
DECIMAL_DIGITS | L'échelle du paramètre ou NULL où l'échelle n'est pas applicable.
NUM_PREC_RADIX | Un entier pouvant être 10 (représentant un type de données numérique exact), 2 (représentant une approximation de type de données numériques) ou NULL (représentant un type de données pour lequel la base n'est pas applicable).
NULLABLE | Un entier représentant si le paramètre peut être nul ou pas.
REMARKS | Description du paramètre.
COLUMN_DEF | Valeur par défaut du paramètre.
SQL_DATA_TYPE | Un entier représentant la grandeur du paramètre.
SQL_DATETIME_SUB | Retourne un entier représentant un code de sous-type datetime ou NULL si les types de données SQL n'appliquent pas.
CHAR_OCTET_LENGTH | Grandeur maximale en octets pour les types de données d'un caractère du paramètre, qui concorde avec COLUMN_SIZE pour un seul octet de données ou NULL pour un type de données qui n'est pas des caractères.
ORDINAL_POSITION | La position du paramètre commençant à 1 dans la requête CALL.
IS_NULLABLE | Une chaîne dont la valeur est YES signifie que le paramètre accepte ou retourne des valeurs NULL et NO signifie que le paramètre n'accepte pas ou ne retourne pas de valeurs NULL.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées


Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données

  • « db2_procedure_columns
  • db2_result »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données

db2_procedures

(PECL ibm_db2 >= 1.0.0)

db2_procedures — Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données

Description

resource db2_procedures ( resource $connection , string $qualifier , string $schema , string $procedure )

Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

procedure

Le nom de la procédure. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrient les procédures enregistrées qui concordent avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne | Description
PROCEDURE_CAT | Nom du catalogue que contient la table. La valeur est NULL si la table n'a pas de catalogue.
PROCEDURE_SCHEM | Nom du schéma que contient la procédure d'enregistrement.
PROCEDURE_NAME | Nom de la procédure.
NUM_INPUT_PARAMS | Nombre de paramètres d'entrée (IN) pour la procédure d'enregistrement.
NUM_OUTPUT_PARAMS | Nombre de paramètres de sortie (OUT) pour la procédure d'enregistrement.
NUM_RESULT_SETS | Nombre de jeux de résultats retournés par la procédure d'enregistrement.
REMARKS | Commentaires concernant la procédure d'enregistrement.
PROCEDURE_TYPE | Retourne toujours 1, indiquant que la procédure d'enregistrement ne retourne aucune valeur de retour.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées


Retourne une colonne d'une ligne d'un jeu de résultats

  • « db2_procedures
  • db2_rollback »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne une colonne d'une ligne d'un jeu de résultats

db2_result

(PECL ibm_db2 >= 1.0.0)

db2_result — Retourne une colonne d'une ligne d'un jeu de résultats

Description

mixed db2_result ( resource $stmt , mixed $column )

Utilisez db2_result() pour retourner une valeur d'une colonne spécifique dans la ligne courante d'un jeu de résultats. Vous devez appeler db2_fetch_row() avant d'appeler db2_result() pour enregistrer les valeurs pointées du jeu de résultats.

Liste de paramètres

stmt

Une ressource stmt valide.

column

Un tableau d'entier commençant avec l'indice 0 qui pointe vers les champs du jeu de résultats ou une chaîne représentant le nom de la colonne.

Valeurs de retour

Retourne la valeur du champ demandé si le champ existe dans le jeu de résultats. Retourne NULL si le champ n'existe pas et retourne une alerte PHP.

Exemples

Exemple #1 Exemple d'utilisation de db2_result()

L'exemple suivant démontre comment itérer à travers un jeu de résultats avec la fonction db2_fetch_row() et récupérer les colonnes du jeu de résultats avec db2_result().

<?php
$sql = 'SELECT nom, race FROM animaux WHERE poids < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
    $nom = db2_result($stmt, 0);
    $race = db2_result($stmt, 'RACE');
    print "$nom $race";
}
?>

L'exemple ci-dessus va afficher :

chat Pook
cyprin doré Bubbles
perruche Gizmo
chèvre Rickety Ride

Voir aussi

  • db2_fetch_array() - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_assoc() - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_both() - Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
  • db2_fetch_object() - Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
  • db2_fetch_row() - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée


Annule une transaction

  • « db2_result
  • db2_server_info »
  • PHP Manual
  • Fonctions IBM DB2
  • Annule une transaction

db2_rollback

(PECL ibm_db2 >= 1.0.0)

db2_rollback — Annule une transaction

Description

bool db2_rollback ( resource $connection )

Annule une transaction en cours sur la connexion spécifiée et commence une nouvelle transaction. Les applications PHP ont normalement pour valeur par défaut AUTOCOMMIT d'activé, alors db2_commit() n'est pas nécessaire tant que AUTOCOMMIT n'est pas désactivée pour la ressource de connexion.

Liste de paramètres

connection

Une variable ressource de connexion valide retournée par db2_connect() ou db2_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Annulation d'une requête DELETE

Dans l'exemple suivant, nous comptons le nombre de ligne dans la table, désactivons le mode AUTOCOMMIT sur la connexion de la base de données, supprimons toutes les lignes dans la table et retournons le nombre 0 pour prouver que les lignes ont bien été supprimées. Ensuite nous utilisons la fonction db2_rollback() et retournons la nouvelle valeur du nombre de ligne dans la table pour montrer que le nombre est le même que celui que nous avions avant d'effectuer la requête DELETE. Le retour à l'état original de la table démontre que l'annulation de la transaction a réussie.

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
    $stmt = db2_exec($conn, "SELECT count(*) FROM animaux");
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";

    // Désactive AUTOCOMMIT
    db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);

    // Suppression de toutes les lignes de ANIMAUX
    db2_exec($conn, "DELETE FROM animals");

    $stmt = db2_exec($conn, "SELECT count(*) FROM animaux");
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";

    // Annule la requête DELETE
    db2_rollback( $conn );

    $stmt = db2_exec( $conn, "SELECT count(*) FROM animaux" );
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";
    db2_close($conn);
}
?>

L'exemple ci-dessus va afficher :

7
0
7

Voir aussi

  • db2_autocommit() - Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de données
  • db2_commit() - Valide la transaction


Retourne un objet avec des propriétés qui décrivent le serveur de base de données DB2

  • « db2_rollback
  • db2_set_option »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un objet avec des propriétés qui décrivent le serveur de base de données DB2

db2_server_info

(PECL ibm_db2 >= 1.1.1)

db2_server_info — Retourne un objet avec des propriétés qui décrivent le serveur de base de données DB2

Description

object db2_server_info ( resource $connection )

Cette fonction retourne un objet avec des propriétés en lecture seule qui retournent des informations à propos le serveur de base de données IBM DB2, Cloudscape ou Apache Derby. La table suivante liste les propriétés du serveur de base de données :

Propriétés serveur de base de données
Nom Propriété | Type de retour | Description
DBMS_NAME | chaîne de caractères | Le nom du serveur de base de données sur lequel vous êtes connecté. Pour des serveurs DB2, c'est une combinaison de DB2 suivi par le système d'exploitation sur lequel le serveur de base de données fonctionne.
DBMS_VER | chaîne de caractères | La version du serveur de la base de données, dans la forme d'une chaîne de caractères "MM.mm.uuuu" où MM est la version majeure, mm est la version mineure et uuuu est la mise à jour. Par exemple, "08.02.0001" représente la version majeure 8, la version mineure 2, la mise à jour 1.
DB_CODEPAGE | entier | Le code page de la base de données sur laquelle vous êtes connecté.
DB_NAME | chaîne de caractères | Le nom de la base de données sur laquelle vous êtes connecté.
DFT_ISOLATION chaîne de caractères

Le niveau par défaut d'isolation de transaction supporté par le serveur :

UR

Lecture non-envoyée (Uncommitted read) : les changements sont immédiatement visibles par toutes les transactions concurrentes.

CS

Stabilité du curseur (Cursor stability) : une ligne lue par une transaction peut être modifiée et envoyée par une seconde transaction concurrente.

RS

Stabilité de lecture (Read stability) : une transaction peut ajouter ou supprimer des lignes qui correspondent à une condition de recherche ou à une transaction en attente.

RR

Lecture répétée (Repeatable read) : les données affectées par les transaction en attente ne sont pas disponibles aux autres transactions.

NC

Aucun envoi (No commit) : tout changement est visible à la fin d'une opération réussie. Les envois explicites et retours arrières ne sont pas alloués.

IDENTIFIER_QUOTE_CHAR | chaîne de caractères | Le caractère utilisé pour délimiter un identifiant.
INST_NAME | chaîne de caractères | L'instance sur le serveur de base de données qui contient la base de données.
ISOLATION_OPTION | tableau | Un tableau d'options d'isolation supporté par le serveur de base de données. Les options d'isolation sont décrites dans la propriété DFT_ISOLATION.
KEYWORDS | tableau | Un tableau des mots-clés réservés par le serveur de base de données.
LIKE_ESCAPE_CLAUSE | booléen | TRUE si le serveur de base de données supporte l'utilisation des caractères de remplacement % et _. FALSE si le serveur de base de données ne supporte pas ces caractères de remplacement.
MAX_COL_NAME_LEN | entier | Taille maximale d'un nom de colonne supportée par le serveur de base de données, exprimée en octets.
MAX_IDENTIFIER_LEN | entier | Taille maximale d'un identifiant SQL supportée par les serveurs de base de données, exprimée en caractères.
MAX_INDEX_SIZE | entier | Taille maximale des colonnes combinées dans un index supporté par le serveur de base de données, exprimée en octets.
MAX_PROC_NAME_LEN | entier | Taille maximale d'un nom de procédure supporté par le serveur de base de données, exprimée en octets.
MAX_ROW_SIZE | entier | Taille maximale d'une ligne dans la table de base supportée par le serveur de base de données, exprimée en octets.
MAX_SCHEMA_NAME_LEN | entier | Taille maximale d'un nom de schéma supporté par le serveur de base de données, exprimé en octets.
MAX_STATEMENT_LEN | entier | Taille maximale d'une requête SQL supporté par le serveur de base de données, exprimée en octets.
MAX_TABLE_NAME_LEN | entier | Taille maximale d'un nom de table supporté par le serveur de base de données, exprimée en octets.
NON_NULLABLE_COLUMNS | booléen | TRUE si le serveur de base de données supporte les colonnes qui peuvent être définies comme NOT NULL, FALSE si le serveur de base de données ne supporte pas les colonnes définies comme NOT NULL.
PROCEDURES | booléen | TRUE si le serveur de base de données supporte l'utilisation de la requête CALL pour appeler les procédures enregistrées, FALSE si le serveur de base de données ne supporte pas la requête CALL.
SPECIAL_CHARS | chaîne de caractères | Une chaîne de caractères contenant tous les caractères autre que les lettres (majuscules et minuscules), les chiffres et le caractère souligné qui peuvent être utilisé en tant que nom d'identifiant.
SQL_CONFORMANCE chaîne de caractères

Le niveau de conformité à la spécification ANSI/ISO SQL-92 offert par le serveur de base de données :

ENTRY

Niveau de conformité SQL-92.

FIPS127

Conformité traditionnelle FIPS-127-2.

FULL

Niveau complet de conformité SQL-92.

INTERMEDIATE

Niveau intermédiaire de conformité SQL-92.

Liste de paramètres

connection

Spécifie la connexion cliente DB2 active.

Valeurs de retour

Retourne un objet si l'appel est réussi. Retourne FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec db2_server_info()

Pour récupérer des informations à propos du serveur, vous devez passer une ressource de connexion de base de données valide à la fonction db2_server_info().

<?php

$conn = db2_connect('sample', 'db2inst1', 'ibmdb2');

$server = db2_server_info( $conn );

if ($server) {
    echo "DBMS_NAME: ";                 var_dump( $server->DBMS_NAME );
    echo "DBMS_VER: ";                  var_dump( $server->DBMS_VER );
    echo "DB_CODEPAGE: ";               var_dump( $server->DB_CODEPAGE );
    echo "DB_NAME: ";                   var_dump( $server->DB_NAME );
    echo "INST_NAME: ";                 var_dump( $server->INST_NAME );
    echo "SPECIAL_CHARS: ";             var_dump( $server->SPECIAL_CHARS );
    echo "KEYWORDS: ";                  var_dump( sizeof($server->KEYWORDS) );
    echo "DFT_ISOLATION: ";             var_dump( $server->DFT_ISOLATION );
    echo "ISOLATION_OPTION: ";
    $il = '';
    foreach( $server->ISOLATION_OPTION as $opt )
    {
       $il .= $opt." ";
    }
    var_dump( $il );
    echo "SQL_CONFORMANCE: ";           var_dump( $server->SQL_CONFORMANCE );
    echo "PROCEDURES: ";                var_dump( $server->PROCEDURES );
    echo "IDENTIFIER_QUOTE_CHAR: ";     var_dump( $server->IDENTIFIER_QUOTE_CHAR );
    echo "LIKE_ESCAPE_CLAUSE: ";        var_dump( $server->LIKE_ESCAPE_CLAUSE );
    echo "MAX_COL_NAME_LEN: ";          var_dump( $server->MAX_COL_NAME_LEN );
    echo "MAX_ROW_SIZE: ";              var_dump( $server->MAX_ROW_SIZE );
    echo "MAX_IDENTIFIER_LEN: ";        var_dump( $server->MAX_IDENTIFIER_LEN );
    echo "MAX_INDEX_SIZE: ";            var_dump( $server->MAX_INDEX_SIZE );
    echo "MAX_PROC_NAME_LEN: ";         var_dump( $server->MAX_PROC_NAME_LEN );
    echo "MAX_SCHEMA_NAME_LEN: ";       var_dump( $server->MAX_SCHEMA_NAME_LEN );
    echo "MAX_STATEMENT_LEN: ";         var_dump( $server->MAX_STATEMENT_LEN );
    echo "MAX_TABLE_NAME_LEN: ";        var_dump( $server->MAX_TABLE_NAME_LEN );
    echo "NON_NULLABLE_COLUMNS: ";      var_dump( $server->NON_NULLABLE_COLUMNS );

    db2_close($conn);
}
?>

L'exemple ci-dessus va afficher :

DBMS_NAME: string(9) "DB2/LINUX"
DBMS_VER: string(10) "08.02.0000"
DB_CODEPAGE: int(1208)
DB_NAME: string(6) "SAMPLE"
INST_NAME: string(8) "db2inst1"
SPECIAL_CHARS: string(2) "@#"
KEYWORDS: int(179)
DFT_ISOLATION: string(2) "CS"
ISOLATION_OPTION: string(12) "UR CS RS RR "
SQL_CONFORMANCE: string(7) "FIPS127"
PROCEDURES: bool(true)
IDENTIFIER_QUOTE_CHAR: string(1) """
LIKE_ESCAPE_CLAUSE: bool(true)
MAX_COL_NAME_LEN: int(30)
MAX_ROW_SIZE: int(32677)
MAX_IDENTIFIER_LEN: int(18)
MAX_INDEX_SIZE: int(1024)
MAX_PROC_NAME_LEN: int(128)
MAX_SCHEMA_NAME_LEN: int(30)
MAX_STATEMENT_LEN: int(2097152)
MAX_TABLE_NAME_LEN: int(128)
NON_NULLABLE_COLUMNS: bool(true)

Voir aussi

  • db2_client_info() - Retourne un objet avec des propriétés qui décrivent le client de base de données DB2


Fixe des options pour une connexion ou des ressources

  • « db2_server_info
  • db2_special_columns »
  • PHP Manual
  • Fonctions IBM DB2
  • Fixe des options pour une connexion ou des ressources

db2_set_option

(PECL ibm_db2 >= 1.0.0)

db2_set_option — Fixe des options pour une connexion ou des ressources

Description

bool db2_set_option ( resource $resource , array $options , int $type )

Fixe des options pour une ressource ou une connexion. Vous ne pouvez pas fixer des options pour un jeu de résultats.

Liste de paramètres

resource

Une ressource valide comme retournée par
db2_prepare() ou une connexion valide comme
retournée par db2_connect() ou
db2_pconnect().

options

Un tableau associatif contenant des options de ressources ou de connexion valides. Ce paramètre peut être utilisé pour changer les valeurs d'autocommit, types de curseur (flottant ou à avance seule) et spécifier la casse des noms de colonne (minuscule, majuscule ou naturelle) qui apparaîtra dans le jeu de résultats.

autocommit

Passer DB2_AUTOCOMMIT_ON active l'autocommit pour la connexion spécifiée.

Passer DB2_AUTOCOMMIT_OFF désactive l'autocommit pour la connexion spécifiée.

cursor

Passer DB2_FORWARD_ONLY spécifie un curseur à avance seule pour une ressource. Ceci est le type de défaut pour un curseur et est supporté par tous les serveurs de base de données.

Passer DB2_SCROLLABLE spécifie un curseur flottant pour une ressource. Les curseurs flottants permettent aux lignes de résultats d'être accessibles dans un ordre non séquentiel. Ce type de curseur est supporté seulement par les bases de données IBM DB2 Universal Database.

binmode

Passer DB2_BINARY spécifie que des données binaires seront retournées comme telles. Ceci est le mode par défaut. Ceci est équivalent à la configuration ibm_db2.binmode=1 dans php.ini.

Passer DB2_CONVERT spécifie que les données binaires seront converties en encodage hexadécimal et seront retourné ainsi. Ceci est équivalent à la configuration ibm_db2.binmode=2 dans php.ini.

Passer DB2_PASSTHRU spécifie que les données binaires seront converties en NULL. Ceci est équivalent à la configuration ibm_db2.binmode=3 dans php.ini.

db2_attr_case

Passer DB2_CASE_LOWER spécifie que les noms des colonnes dans le jeu de résultats seront retournés en minuscules.

Passer DB2_CASE_UPPER spécifie que les noms des colonnes dans le jeu de résultats seront retournés en majuscules.

Passer DB2_CASE_NATURAL spécifie que les noms de colonnes dans le jeu de résultats seront retournés en casse naturelle.

deferred_prepare

Passer DB2_DEFERRED_PREPARE_ON active la préparation déférée sur la ressource de requête spécifiée.

Passer DB2_DEFERRED_PREPARE_OFF désactive la préparation déférée sur la ressource de requête spécifiée.

Les nouvelles options suivantes i5/OS sont disponibles depuis la version 1.5.1 de ibm_db2. Ces options s'appliquent uniquement lorsque PHP et ibm_db2 fonctionnent nativement sur un système i5.

i5_fetch_only

DB2_I5_FETCH_ON : les curseurs sont en lecture seule et ne peuvent être utilisé pour positionner des mises à jour et des suppressions. Ceci est la valeur par défaut a moins que la variable d'environnement SQL_ATTR_FOR_FETCH_ONLY ait été mis à SQL_FALSE.

DB2_I5_FETCH_OFF : les curseurs peuvent être positionnés pour mises à jour et suppressions.

Les nouvelles options suivantes sont disponibles depuis ibm_db2 version 1.8.0 et suivants.

rowcount

DB2_ROWCOUNT_PREFETCH_ON - Le client peut demander un comptage complet des lignes avant de les récupérer, ce qui signifie que la fonction db2_num_rows() retourne le nombre de lignes sélectionnées même si un curseur ROLLFORWARD_ONLY est utilisé.

DB2_ROWCOUNT_PREFETCH_OFF - Le client ne peut pas demander un comptage complet des lignes avant de les récupérer.

Les options suivantes sont nouvelles, et disponibles depuis ibm_db2 version 1.7.0.

trusted_user

Pour basculer l'utilisateur vers un utilisateur de confiance, indiquez l'identifiant utilisateur sous forme de chaîne, de l'utilisateur de confiance que vous voulez utiliser. Cette option peut être configurée au niveau de la connexion uniquement. Pour utiliser cette option, un contexte de confiance doit être activé sur la ressource de connexion.

trusted_password

Le mot de passe, sous forme de chaîne, qui correspond à l'utilisateur de confiance.

Les options suivantes sont nouvelles, et disponibles depuis ibm_db2 version 1.6.0. Ces options sont pratiques pour obtenir des informations de suivis, accessibles via db2_get_option().

Note:

Lorsque la valeur de chaque option est sur le point d'être définie, quelques serveurs peuvent ne pas gérer la totalité de la longueur fournie et peuvent tronquer la valeur.

Pour s'assurer que les données spécifiées dans chaque option seront converties correctement lorsqu'elles seront transmises au système, utilisez seulement les caractères de A à Z, 0 à 9, les soulignés (_) et les points (.).

userid

SQL_ATTR_INFO_USERID : un pointeur vers une chaîne de caractères terminée par NULL utilisée pour identifier l'ID utilisateur du client envoyé au serveur de base de données, lors de la connexion DB2.

Note:

DB2 pour les serveurs z/OS et OS/390 supporte une longueur supérieure à 16 caractères. L'ID utilisateur ne doit pas être confondu avec l'ID utilisateur d'identification, il est utilisé pour les processus d'identification uniquement et non pour ceux d'autorisation.

acctstr

SQL_ATTR_INFO_ACCTSTR : un pointeur vers une chaîne de caractères terminée par NULL utilisée pour identifier le compte du client à envoyer au serveur de base de données lors de la connexion DB2..

Note:

DB2 pour les serveurs z/OS et OS/390 supporte une longueur supérieure à 200 caractères.

applname

SQL_ATTR_INFO_APPLNAME : un pointeur vers une chaîne de caractères terminée par NULL utilisée pour identifier le nom de l'application client à envoyer au serveur de base de données lors de la connexion DB2.

Note:

DB2 pour les serveurs z/OS and OS/390 supportent une longueur supérieure à 32 caractères.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME : un pointeur vers une chaîne de caractères terminée par NULL utilisée pour identifier le nom de la station à envoyer au serveur de base de données lors de la connexion DB2.

Note:

DB2 pour les serveurs z/OS et OS/390 supportent une longueur supérieure à 18 caractères.

type

Un entier qui spécifie le type de ressource qui a été passé à la fonction. Le type de ressource et valeur doit correspondre.

Passer 1 en tant que valeur spécifie qu'une ressource de connexion a été passée à la fonction.

Passer n'importe quel entier différent de 1 en tant que valeur spécifie qu'une ressource a été passée à la fonction.

Le tableau suivant spécifie quelles options sont compatibles avec quels types de ressources :

Matrice ressource paramètre
Clé | Valeur | Type de ressource
 |  | Connexion | Requête | Jeu de résultats
autocommit | DB2_AUTOCOMMIT_ON | X | - | -
autocommit | DB2_AUTOCOMMIT_OFF | X | - | -
cursor | DB2_SCROLLABLE | - | X | -
cursor | DB2_FORWARD_ONLY | - | X | -
binmode | DB2_BINARY | X | X | -
binmode | DB2_CONVERT | X | X | -
binmode | DB2_PASSTHRU | X | X | -
db2_attr_case | DB2_CASE_LOWER | X | X | -
db2_attr_case | DB2_CASE_UPPER | X | X | -
db2_attr_case | DB2_CASE_NATURAL | X | X | -
deferred_prepare | DB2_DEFERRED_PREPARE_ON | - | X | -
deferred_prepare | DB2_DEFERRED_PREPARE_OFF | - | X | -
i5_fetch_only | DB2_I5_FETCH_ON | - | X | -
rowcount | DB2_ROWCOUNT_PREFETCH_ON | - | X | -
rowcount | DB2_ROWCOUNT_PREFETCH_OFF | - | X | -
trusted_user | <USER NAME> (String) | X | - | -
trusted_password | <PASSWORD> (String) | X | - | -
i5_fetch_only | DB2_I5_FETCH_OFF | - | X | -
userid | SQL_ATTR_INFO_USERID | X | X | -
acctstr | SQL_ATTR_INFO_ACCTSTR | X | X | -
applname | SQL_ATTR_INFO_APPLNAME | X | X | -
wrkstnname | SQL_ATTR_INFO_WRKSTNNAME | X | X | -

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fixer un paramètre à une ressource de connexion

<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_ON);

/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$result = db2_set_option($conn, $options, 1);

/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
   echo 'Options fixées correctement';
}
else
{
   echo 'Impossible de fixer les options';
}
?>

L'exemple ci-dessus va afficher :

Options fixées correctement

Exemple #2 Fixe des paramètres multiples avec une ressource de connexion

<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'binmode' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$result = db2_set_option($conn, $options, 1);

/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
  echo 'Options fixées correctement';
}
else
{
  echo 'Impossible de fixer les options';
}
?>

L'exemple ci-dessus va afficher :

Options fixées correctement

Exemple #3 Fixe des paramètres multiples avec une clé invalide

<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'MY_INVALID_KEY' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$result = db2_set_option($conn, $options, 1);

/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
   echo 'Options fixées correctement';
}
else
{
   echo 'Impossible de fixer les options';
}
?>

L'exemple ci-dessus va afficher :

Impossible de fixer les options

Exemple #4 Fixe des paramètres multiples avec une valeur invalide

<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'binmode' => 'INVALID_VALUE',
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$result = db2_set_option($conn, $options, 1);

/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
   echo 'Options fixées correctement';
}
else
{
   echo 'Impossible de fixer les options';
}
?>

L'exemple ci-dessus va afficher :

Impossible de fixer les options

Exemple #5 Fixe des paramètres multiples avec une ressource de connexion et un mauvais type

<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'binmode' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type invalide */
$result = db2_set_option($conn, $options, 2);

/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
  echo 'Options fixées correctement';
}
else
{
  echo 'Impossible de fixer les options';
}
?>

L'exemple ci-dessus va afficher :

Impossible de fixer les options

Exemple #6 Fixe des paramètres multiples avec une mauvaise ressource

<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'binmode' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE');

/* Appel de la fonction en utilisant le type incorrect de ressource, mais le tableau
* d'options et la valeur type valide */
$result = db2_set_option($stmt, $options, 1);

/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
  echo 'Options fixées correctement';
}
else
{
  echo 'Impossible de fixer les options';
}
?>

L'exemple ci-dessus va afficher :

Impossible de fixer les options

Exemple #7 Tout mettre ensemble

<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');

/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('db2_attr_case' => DB2_CASE_LOWER,
'cursor' => DB2_SCROLLABLE);

$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE WHERE EMPNO = ? OR EMPNO = ?');

/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$option_result = db2_set_option($stmt, $options, 2);
$result = db2_execute($stmt, array('000130', '000140'));

/* Récupère la ligne 2 avant la ligne 1 puisque nous avons un curseur flottant */
print_r(db2_fetch_assoc($stmt, 2));
print '<br /><br />';
print_r(db2_fetch_assoc($stmt, 1));

?>

L'exemple ci-dessus va afficher :

Array
(
     [empno] => 000140
     [firstnme] => HEATHER
     [midinit] => A
     [lastname] => NICHOLLS
     [workdept] => C01
     [phoneno] => 1793
     [hiredate] => 1976-12-15
     [job] => ANALYST
     [edlevel] => 18
     [sex] => F
     [birthdate] => 1946-01-19
     [salary] => 28420.00
     [bonus] => 600.00
     [comm] => 2274.00
)

Array
(
     [empno] => 000130
     [firstnme] => DELORES
     [midinit] => M
     [lastname] => QUINTANA
     [workdept] => C01
     [phoneno] => 4578
     [hiredate] => 1971-07-28
     [job] => ANALYST
     [edlevel] => 16
     [sex] => F
     [birthdate] => 1925-09-15
     [salary] => 23800.00
     [bonus] => 500.00
     [comm] => 1904.00
)

Exemple #8 Les curseurs i5/OS sont en lecture seule

<?php
$conn = db2_connect("", "", "", array("i5_lib"=>"nobody"));
$stmt = db2_prepare($conn, 'select * from names where first = ?');
$name = "first2";
db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
$options = array("i5_fetch_only"=>DB2_I5_FETCH_ON);
db2_set_option($stmt,$options,0);
if (db2_execute($stmt)) {
   while ($row = db2_fetch_array($stmt)) {
      echo "{$row[0]} {$row[1]}";
   }
}
?>

L'exemple ci-dessus va afficher :

first2 last2

Voir aussi

  • db2_connect() - Retourne une connexion à une base de données
  • db2_pconnect() - Retourne une connexion persistante à une base de données
  • db2_exec() - Exécute une requête SQL directement
  • db2_prepare() - Prépare une requête SQL à être exécutée
  • db2_cursor_type() - Retourne le type de curseur utilisé par une ressource


Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table

  • « db2_set_option
  • db2_statistics »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table

db2_special_columns

(PECL ibm_db2 >= 1.0.0)

db2_special_columns — Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table

Description

resource db2_special_columns ( resource $connection , string $qualifier , string $schema , string $table_name , int $scope )

Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables.

table_name

Le nom de la table.

scope

Un entier représentant le temps minimal pour lequel l'identifiant unique de la ligne est valide. Cela peut être une des valeurs suivantes :

Valeur Entier | Constante SQL | Description
0 | SQL_SCOPE_CURROW | L'identifiant de la ligne est valide seulement lorsque curseur est positionné sur la ligne.
1 | SQL_SCOPE_TRANSACTION | L'identifiant de la ligne est valide pour la durée de la transaction.
2 | SQL_SCOPE_SESSION | L'identifiant de la ligne est valide durant la durée de la connexion.

Valeurs de retour

Retourne une ressource avec un jeu de résultats contenant des lignes avec des informations uniques pour une table. Les lignes sont composées des colonnes suivantes :

Nom de la colonne | Description
SCOPE

Valeur Entier | Constante SQL | Description
0 | SQL_SCOPE_CURROW | L'identifiant de la ligne est valide seulement lorsque curseur est positionné sur la ligne.
1 | SQL_SCOPE_TRANSACTION | L'identifiant de la ligne est valide pour la durée de la transaction.
2 | SQL_SCOPE_SESSION | L'identifiant de la ligne est valide durant la durée de la connexion.
COLUMN_NAME | Nom de la colonne unique.
DATA_TYPE | Le type de données SQL pour la colonne.
TYPE_NAME | Une chaîne représentant le type de données pour la colonne.
COLUMN_SIZE | Un entier représentant la grandeur de la colonne.
BUFFER_LENGTH | Nombre d'octets maximaux nécessaires pour enregistrer des données de cette colonne.
DECIMAL_DIGITS | L'échelle de la colonne ou NULL où l'échelle n'est pas applicable.
NUM_PREC_RADIX | Un entier pouvant être 10 (représentant un type de données numérique exact), 2 (représentant un type de données numériques approximé) ou NULL (représentant un type de données pour lequel la base n'est pas applicable).
PSEUDO_COLUMN | Retourne toujours 1.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées


Retourne un jeu de résultats listant les index et statistiques d'une table

  • « db2_special_columns
  • db2_stmt_error »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un jeu de résultats listant les index et statistiques d'une table

db2_statistics

(PECL ibm_db2 >= 1.0.0)

db2_statistics — Retourne un jeu de résultats listant les index et statistiques d'une table

Description

resource db2_statistics ( resource $connection , string $qualifier , string $schema , string $table-name , bool $unique )

Retourne un jeu de résultats listant les index et statistiques d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables visées. Si le paramètre est NULL, les statistiques et les index sont retournés pour le schéma de l'utilisateur en cours.

table_name

Le nom de la table.

unique

Un entier représentant le type d'information à retourner.

0

Retourne seulement les informations pour les index uniques de la table.

1

Retourne les informations pour tous les index de la table.

Valeurs de retour

Ce que la fonction retourne, premièrement lors de succès, ensuite lors d'échec. Voyez aussi l'entité Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Nom de la colonne | Description
TABLE_CAT | Nom du catalogue que contient la table. La valeur est NULL si la table n'a pas de catalogue.
TABLE_SCHEM | Nom du schéma que contient la table.
TABLE_NAME | Nom de la table.
NON_UNIQUE

Un entier représentant si l'index interdit les valeurs uniques ou si la ligne représente des statistiques sur la table elle-même :

Valeur de retour | Type de paramètre
0 (SQL_FALSE) | L'index autorise les valeurs dupliquées.
1 (SQL_TRUE) | Les valeurs index doivent être uniques.
NULL | La ligne contient des informations statistiques à propos de la table.
INDEX_QUALIFIER | Une chaîne de caractères représentant un qualificatif qui devrait avoir été préalablement fixé à INDEX_NAME pour qualifier complètement l'index.
INDEX_NAME | Une chaîne représentant le nom de l'index.
TYPE

Un entier représentant le type d'informations contenues dans cette ligne du jeu de résultats :

Valeur de retour | Type de paramètre
0 (SQL_TABLE_STAT) | La ligne contient des informations statistiques à propos de la table.
1 (SQL_INDEX_CLUSTERED) | La ligne contient des informations à propos d'index groupé.
2 (SQL_INDEX_HASH) | La ligne contient des informations à propos d'index haché.
3 (SQL_INDEX_OTHER) | La ligne contient des informations à propos du type d'index qui n'est pas groupé ni haché.
ORDINAL_POSITION | Un tableau commençant à l'index 1 indiquant la colonne dans l'index. NULL si la ligne contient des informations statistiques à propos de la table.
COLUMN_NAME | Le nom de la colonne dans l'index. NULL si la ligne contient des informations statistiques à propos de la table.
ASC_OR_DESC | A si la colonne est triée en ordre alphabétique, D si la colonne est triée en ordre alphabétique inverse, NULL si la ligne contient des informations statistiques à propos de la table.
CARDINALITY

Si la ligne contient des informations à propos d'un index, cette colonne contiendra un entier représentant le nombre de valeurs uniques dans l'index.

Si la ligne contient des informations à propos de la table, cette colonne contiendra un entier représentant le nombre de lignes dans la table.

PAGES

Si la ligne contient des informations à propos d'un index, cette colonne contiendra un entier représentant le nombre de pages utilisées pour enregistrer l'index.

Si la ligne contient des informations à propos de la table, cette colonne contiendra un entier représentant le nombre de pages utilisées pour enregistrer la table.

FILTER_CONDITION | Retourne toujours NULL.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
  • db2_tables() - Retourne la liste des tables et leurs métadonnées


Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL

  • « db2_statistics
  • db2_stmt_errormsg »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL

db2_stmt_error

(PECL ibm_db2 >= 1.0.0)

db2_stmt_error — Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL

Description

string db2_stmt_error ([ resource $stmt ] )

Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL.

Si vous ne passez pas de ressource en tant qu'argument à la fonction db2_stmt_error(), elle retournera le message d'erreur associé avec le dernier essai de retour d'une requête SQL, par exemple, provenant de db2_prepare() ou db2_exec().

Pour comprendre les valeurs de SQLSTATE, vous pouvez taper la commande suivante dans le processeur de ligne de commandes de DB2 : db2 '? sqlstate-value'. Vous pouvez aussi appeler la fonction db2_conn_errormsg() pour obtenir un message d'erreur explicite ainsi que la valeur de SQLCODE associée.

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Retourne une chaîne contenant la valeur de SQLSTATE.

Voir aussi

  • db2_conn_error() - Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion
  • db2_conn_errormsg() - Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE
  • db2_stmt_errormsg() - Retourne le dernier message d'erreur d'une requête SQL


Retourne le dernier message d'erreur d'une requête SQL

  • « db2_stmt_error
  • db2_table_privileges »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne le dernier message d'erreur d'une requête SQL

db2_stmt_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_stmt_errormsg — Retourne le dernier message d'erreur d'une requête SQL

Description

string db2_stmt_errormsg ([ resource $stmt ] )

Retourne le dernier message d'erreur d'une requête SQL.

Si vous ne passez pas de ressource en tant qu'argument à la fonction db2_stmt_errormsg(), elle retournera le message d'erreur associé avec le dernier essai de retour d'une requête SQL, par exemple, provenant de db2_prepare() ou db2_exec().

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Retourne une chaîne contenant l'erreur du message et le SQLCODE pour la dernière erreur qui s'est déroulée après l'exécution d'une requête SQL.

Voir aussi

  • db2_conn_error() - Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion
  • db2_conn_errormsg() - Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE
  • db2_stmt_error() - Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL


Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données

  • « db2_stmt_errormsg
  • db2_tables »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données

db2_table_privileges

(PECL ibm_db2 >= 1.0.0)

db2_table_privileges — Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données

Description

resource db2_table_privileges ( resource $connection [, string $qualifier [, string $schema [, string $table_name ]]] )

Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

table-name

Le nom de la table. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrient les privilèges pour la table qui concordent avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne | Description
TABLE_CAT | Nom du catalogue que contient la table. La valeur est NULL si la table n'a pas de catalogue.
TABLE_SCHEM | Nom du schéma que contient la table.
TABLE_NAME | Nom de la table.
GRANTOR | ID d'autorisation de l'utilisateur qui a donné le privilège.
GRANTEE | ID d'autorisation de l'utilisateur à qui le privilège a été donné.
PRIVILEGE | Le privilège qui a été donné. Cela peut être un de ces mots suivants : ALTER, CONTROL, DELETE, INDEX, INSERT, REFERENCES, SELECT ou UPDATE.
IS_GRANTABLE | Une chaîne contenant "YES" ou "NO" indiquant si l'utilisateur à qui le privilège a été donné peut donner le privilège aux autres utilisateurs.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_tables() - Retourne la liste des tables et leurs métadonnées


Retourne la liste des tables et leurs métadonnées

  • « db2_table_privileges
  • Informix »
  • PHP Manual
  • Fonctions IBM DB2
  • Retourne la liste des tables et leurs métadonnées

db2_tables

(PECL ibm_db2 >= 1.0.0)

db2_tables — Retourne la liste des tables et leurs métadonnées

Description

resource db2_tables ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $table-type ]]]] )

Retourne un jeu de résultats listant les tables et leurs métadonnées qui leur sont associées d'une base de données

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

table-name

Le nom de la table. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

table-type

Une liste des identifiants du type de table délimitée par des virgules. Pour concorder avec tous les schémas, passez NULL ou une chaîne vide. Les identifiants valides sont : ALIAS, HIERARCHY TABLE, INOPERATIVE VIEW, NICKNAME, MATERIALIZED QUERY TABLE, SYSTEM TABLE, TABLE, TYPED TABLE, TYPED VIEW et VIEW.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrient les tables qui concordent avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne | Description
TABLE_CAT | Nom du catalogue que contient la table. La valeur est NULL si la table n'a pas de catalogue.
TABLE_SCHEM | Nom du schéma que contient la table.
TABLE_NAME | Nom de la table.
TABLE_TYPE | Identifiant de la table.
REMARKS | Description de la table.

Voir aussi

  • db2_column_privileges() - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
  • db2_columns() - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
  • db2_foreign_keys() - Retourne un jeu de résultats listant les clés étrangères d'une table
  • db2_primary_keys() - Retourne un jeu de résultats listant les clés d'une table
  • db2_procedure_columns() - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
  • db2_procedures() - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
  • db2_special_columns() - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
  • db2_statistics() - Retourne un jeu de résultats listant les index et statistiques d'une table
  • db2_table_privileges() - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données


Informix

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Informix
    • ifx_affected_rows — Retourne le nombre de lignes affectées par une requête
    • ifx_blobinfile_mode — Choisit le mode par défaut des objets BLOB pour toutes les requêtes SELECT
    • ifx_byteasvarchar — Choisit le mode par défaut des objets BYTE
    • ifx_close — Ferme une connexion à un serveur Informix
    • ifx_connect — Ouvre une connexion à un serveur Informix
    • ifx_copy_blob — Duplique un BLOB
    • ifx_create_blob — Crée un objet BLOB
    • ifx_create_char — Crée un objet char
    • ifx_do — Exécute une requête SQL préparée
    • ifx_error — Retourne le code d'erreur de la dernière requête Informix
    • ifx_errormsg — Retourne le message d'erreur de la dernière requête Informix
    • ifx_fetch_row — Retourne une ligne sous la forme d'un tableau énuméré
    • ifx_fieldproperties — Liste les propriétés des champs SQL
    • ifx_fieldtypes — Liste les champs Informix SQL
    • ifx_free_blob — Supprime un objet BLOB
    • ifx_free_char — Supprime un objet char
    • ifx_free_result — Libère les ressources prises par un résultat
    • ifx_get_blob — Retourne le contenu d'un objet BLOB
    • ifx_get_char — Retourne le contenu d'un objet char
    • ifx_getsqlca — Retourne le contenu de la variable sqlca.sqlerrd[0..5] après une requête
    • ifx_htmltbl_result — Lit toutes les lignes d'un tableau, et le met sous la forme d'un tableau HTML
    • ifx_nullformat — Modifie le mode par défaut de lecture des valeurs
    • ifx_num_fields — Retourne le nombre de colonnes d'une requête
    • ifx_num_rows — Compte le nombre de lignes déjà lues dans un résultat
    • ifx_pconnect — Ouvre une connexion persistante à un serveur Informix
    • ifx_prepare — Prépare une requête SQL pour l'exécution
    • ifx_query — Envoie une requête Informix
    • ifx_textasvarchar — Choisit le mode par défaut des objets texte
    • ifx_update_blob — Modifie le contenu d'un objet BLOB
    • ifx_update_char — Modifie le contenu d'un objet char
    • ifxus_close_slob — Ferme un objet SLOB
    • ifxus_create_slob — Crée un objet SLOB et l'ouvre
    • ifxus_free_slob — Supprime un objet SLOB
    • ifxus_open_slob — Ouvre un objet SLOB
    • ifxus_read_slob — Lit des octets dans un objet SLOB
    • ifxus_seek_slob — Fixe le fichier courant ou la position courante
    • ifxus_tell_slob — Retourne le fichier courant ou la position courante
    • ifxus_write_slob — Écrit une chaîne dans un objet SLOB


Introduction

Les pilotes d'accès à Informix pour Online (ODS) 7.x, SE 7.x, Universal Server (IUS) 9.x et IDS 2000 sont implémentés dans "functions/ifx.ec" et "functions/php3_ifx.h". Le support ODS 7.x est plutôt complet, et accepte les colonnes de type BYTE et TEXT. Le support IUS 9.x est partiellement fini, de nouveaux types sont disponibles, mais SLOB et CLOB sont toujours en cours de développement.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.2.1.


Pré-requis

Note: Configuration notes

Vous avez besoin d'une version de ESQL/C pour compiler le pilote PHP d'Informix. Les versions ESQL/C 7.2x sont utilisables. ESQL/C fait partie du SDK Informix Client.

Avant que vous ne lanciez le script "configure", assurez-vous que la variable d'environnement "INFORMIXDIR" a été correctement paramétrée, et que $INFORMIXDIR/bin est dans votre PATH.


Installation

Pour activer ces fonctions, vous devez compiler PHP avec l'option --with-informix[=DIR] , où DIR est le dossier d'installation de Informix et, par défaut, il ne vaut rien.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Note:

Avant que vous ne lanciez le script "configure", assurez-vous que la variable d'environnement "INFORMIXDIR" a été correctement paramétrée, et que $INFORMIXDIR/bin est dans votre PATH. Vérifiez cela en étudiant le résultat de la fonction phpinfo() avant de commencer à utiliser cette extension. phpinfo() devrait lister ces variables d'environnement. C'est le cas aussi bien pour les modes CGI que module Apache. Vous pouvez aussi mettre en place ces variables dans votre script de démarrage Apache.

Les bibliothèques partagées Informix doivent être accessibles pour le chargement (vérifiez LD_LIBRARY_PATH et ld.so.conf/ldconfig).

Note: Notes sur l'utilisation des BLOB (TEXT et BYTE)

Les objets de type BLOB sont normalement gérés par des identifiants de BLOB. Les requêtes de sélection retournent un identifiant de BLOB pour chaque colonne de type BYTE et TEXT. Vous pouvez en lire le contenu, avec des commandes de type "string_var = ifx_get_blob($BLOB_id);" ; si vous souhaitez ramener le BLOB en mémoire (avec: "ifx_blobinfile_mode(0);"). Si vous préférez recevoir le contenu d'une colonne BLOB dans un fichier, utilisez ifx_blobinfile_mode(), et ifx_get_blob($BLOB_id) vous retournera le nom du fichier. Utilisez les fonctions habituelles d'accès aux fichiers pour lire son contenu.

Pour les requêtes INSERT/UPDATE, vous devez créer les identifiants de BLOB vous-même, avec la fonction ifx_create_blob(). Puis, vous placez l'identifiant de BLOB dans un tableau, et remplacez la colonne par un point d'interrogation (?). Pour les UPDATE/INSERT, vous êtes responsable du contenu du BLOB, avec la fonction ifx_update_blob().

Le comportement par défaut des colonnes de type BLOB peut être modifié en affectant de nouvelles valeurs aux variables de configuration (même à la volée) :

Variable de configuration : ifx.textasvarchar

Variable de configuration : ifx.byteasvarchar

Fonctions à utiliser lors de l'exécution :

ifx_textasvarchar(0) : utilise l'identifiant de BLOB avec des colonnes de type TEXT, dans les requêtes SELECT

ifx_byteasvarchar(0) : utilise l'identifiant de BLOB avec des colonnes de type BYTE, dans les requêtes SELECT

ifx_textasvarchar(1) : retourne les colonnes de type TEXT sous la forme de VARCHAR, sans utiliser les identifiants de BLOB dans les requêtes SELECT.

ifx_byteasvarchar(1) : retourne les colonnes de type BYTE sous la forme de VARCHAR, sans utiliser les identifiants de BLOB dans les requêtes SELECT.

Variable de configuration : ifx.BLOBinfile

Fonctions à utiliser lors de l'exécution :

ifx_blobinfile_mode(0) : retourne les colonnes de type BYTE en mémoire ; l'identifiant de BLOB vous donnera accès au contenu.

ifx_blobinfile_mode(1) : retourne les colonnes de type BYTE dans un fichier ; l'identifiant de BLOB vous donnera accès au nom de ce fichier.

En affectant la valeur 1 à ifx_text/byteasvarchar, vous pouvez utiliser les colonnes de type TEXT et BYTE dans les requêtes SELECT comme des champs VARCHAR (mais plus long). Étant donné la gestion des chaînes par PHP, cette technique conserve les données binaires. Les données retournées peuvent contenir n'importe quoi, et vous êtes responsable de la bonne manipulation de ces valeurs.

En affectant la valeur 1 à ifx_blobinfile_mode(), utilisez le nom de fichier retourné par ifx_get_blob() pour accéder au contenu du BLOB. Notez bien que vous êtes tenu responsable de l'effacement des fichiers temporaires, créés par Informix. Chaque nouvelle ligne lue sur le serveur va créer un nouveau fichier temporaire, pour chaque colonne de type BYTE.

L'emplacement des fichiers temporaires peut être modifié, grâce à la variable "blobdir", (par défaut, ".", c'est-à-dire, le dossier courant). Une valeur telle que BLOBdir="tmpBLOB" simplifiera le nettoyage des fichiers temporaires, accidentellement oubliés (les noms commencent tous par "blb").

Note: Suppression automatique des espaces (SQLCHAR et SQLNCHAR)

Elle peut être mise en place avec la variable de configuration.

ifx.charasvarchar : avec la valeur 1, les espaces de fin de champs seront automatiquement supprimés.

Note: NULL values

Lorsque la variable de configuration ifx.nullformat (ou que la fonction ifx_nullformat()) est à un, les colonnes contenant la valeur NULL retourneront la chaîne "NULL" et, sinon, retourneront une chaîne vide. Cela vous permet de faire la différence entre les colonnes vides et celles qui contiennent la valeur NULL.

Options de configuration Informix
Nom | Défaut | Modifiable | Historique
ifx.allow_persistent | "1" | PHP_INI_SYSTEM | Supprimé depuis PHP 5.2.1.
ifx.max_persistent | "-1" | PHP_INI_SYSTEM | Supprimé depuis PHP 5.2.1.
ifx.max_links | "-1" | PHP_INI_SYSTEM | Supprimé depuis PHP 5.2.1.
ifx.default_host | NULL | PHP_INI_SYSTEM | Supprimé depuis PHP 5.2.1.
ifx.default_user | NULL | PHP_INI_SYSTEM | Supprimé depuis PHP 5.2.1.
ifx.default_password | NULL | PHP_INI_SYSTEM | Supprimé depuis PHP 5.2.1.
ifx.blobinfile | "1" | PHP_INI_ALL | Supprimé depuis PHP 5.2.1.
ifx.textasvarchar | "0" | PHP_INI_ALL | Supprimé depuis PHP 5.2.1.
ifx.byteasvarchar | "0" | PHP_INI_ALL | Supprimé depuis PHP 5.2.1.
ifx.charasvarchar | "0" | PHP_INI_ALL | Supprimé depuis PHP 5.2.1.
ifx.nullformat | "0" | PHP_INI_ALL | Supprimé depuis PHP 5.2.1.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ifx.allow_persistent bool

Active les connexions persistantes à une base de données Informix.

ifx.max_persistent entier

Nombre maximum de connexions persistantes à une base de données Informix, par processus.

ifx.max_links entier

Nombre maximum de connexions à une base de données Informix par processus, en incluant les connexions persistantes.

ifx.default_host string

Hôte par défaut où se connecter si aucun hôte n'est spécifié par les fonctions ifx_connect() ou ifx_pconnect(). Cette option ne s'applique pas si le safe mode est activé.

ifx.default_user string

Utilisateur par défaut si aucun utilisateur n'est spécifié par les fonctions ifx_connect() ou ifx_pconnect(). Cette option ne s'applique pas si le safe mode est activé.

ifx.default_password string

Mot de passe par défaut si aucun mot de passe n'est spécifié par les fonctions ifx_connect() ou ifx_pconnect(). Cette option ne s'applique pas si le safe mode est activé.

ifx.blobinfile bool

Lorsque cette option est activée, les colonnes de type "blob" seront retournées dans un fichier. Par défaut, elles seront retournées en mémoire. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_blobinfile_mode().

ifx.textasvarchar bool

Lorsque cette option est activée, les colonnes de type "TEXT" seront retournées dans une chaîne de caractères. Par défaut, elles seront retournées en mémoire. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_textasvarchar().

ifx.byteasvarchar bool

Lorsque cette option est activée, les colonnes de type "BYTE" seront retournées dans une chaîne de caractères. Par défaut, elles seront retournées en mémoire. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_textasvarchar().

ifx.charasvarchar bool

Lorsque cette option est activée, les espaces en fin de chaîne de caractères seront conservés lors d'une commande FETCH.

ifx.nullformat bool

Lorsque cette option est activée, les colonnes de valeur NULL seront retournées comme des chaînes de caractères vides. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_nullformat().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

IFX_SCROLL (entier)
IFX_HOLD (entier)
IFX_LO_RDONLY (entier)
IFX_LO_WRONLY (entier)
IFX_LO_APPEND (entier)
IFX_LO_RDWR (entier)
IFX_LO_BUFFER (entier)
IFX_LO_NOBUFFER (entier)


Fonctions Informix

Sommaire

  • ifx_affected_rows — Retourne le nombre de lignes affectées par une requête
  • ifx_blobinfile_mode — Choisit le mode par défaut des objets BLOB pour toutes les requêtes SELECT
  • ifx_byteasvarchar — Choisit le mode par défaut des objets BYTE
  • ifx_close — Ferme une connexion à un serveur Informix
  • ifx_connect — Ouvre une connexion à un serveur Informix
  • ifx_copy_blob — Duplique un BLOB
  • ifx_create_blob — Crée un objet BLOB
  • ifx_create_char — Crée un objet char
  • ifx_do — Exécute une requête SQL préparée
  • ifx_error — Retourne le code d'erreur de la dernière requête Informix
  • ifx_errormsg — Retourne le message d'erreur de la dernière requête Informix
  • ifx_fetch_row — Retourne une ligne sous la forme d'un tableau énuméré
  • ifx_fieldproperties — Liste les propriétés des champs SQL
  • ifx_fieldtypes — Liste les champs Informix SQL
  • ifx_free_blob — Supprime un objet BLOB
  • ifx_free_char — Supprime un objet char
  • ifx_free_result — Libère les ressources prises par un résultat
  • ifx_get_blob — Retourne le contenu d'un objet BLOB
  • ifx_get_char — Retourne le contenu d'un objet char
  • ifx_getsqlca — Retourne le contenu de la variable sqlca.sqlerrd[0..5] après une requête
  • ifx_htmltbl_result — Lit toutes les lignes d'un tableau, et le met sous la forme d'un tableau HTML
  • ifx_nullformat — Modifie le mode par défaut de lecture des valeurs
  • ifx_num_fields — Retourne le nombre de colonnes d'une requête
  • ifx_num_rows — Compte le nombre de lignes déjà lues dans un résultat
  • ifx_pconnect — Ouvre une connexion persistante à un serveur Informix
  • ifx_prepare — Prépare une requête SQL pour l'exécution
  • ifx_query — Envoie une requête Informix
  • ifx_textasvarchar — Choisit le mode par défaut des objets texte
  • ifx_update_blob — Modifie le contenu d'un objet BLOB
  • ifx_update_char — Modifie le contenu d'un objet char
  • ifxus_close_slob — Ferme un objet SLOB
  • ifxus_create_slob — Crée un objet SLOB et l'ouvre
  • ifxus_free_slob — Supprime un objet SLOB
  • ifxus_open_slob — Ouvre un objet SLOB
  • ifxus_read_slob — Lit des octets dans un objet SLOB
  • ifxus_seek_slob — Fixe le fichier courant ou la position courante
  • ifxus_tell_slob — Retourne le fichier courant ou la position courante
  • ifxus_write_slob — Écrit une chaîne dans un objet SLOB


Retourne le nombre de lignes affectées par une requête

  • « Fonctions Informix
  • ifx_blobinfile_mode »
  • PHP Manual
  • Fonctions Informix
  • Retourne le nombre de lignes affectées par une requête

ifx_affected_rows

(PHP 4, PHP <=5.2.0)

ifx_affected_rows — Retourne le nombre de lignes affectées par une requête

Description

int ifx_affected_rows ( resource $result_id )

Retourne le nombre de lignes affectées par la requête associée à result_id.

Pour les INSERT, UPDATE et DELETE, ce nombre est le nombre exact de lignes affectées (sqlerrd[2]). Pour les SELECT, ce n'est qu'une estimation (sqlerrd[0]). Ne vous y fiez pas. Le serveur de base de données ne peut jamais retourner le nombre de lignes actuel qui sera retourné par une requête SELECT car il n'a pas commencé à les récupérer ce stade (juste après "PREPARE", lorsque l'optimisateur a déterminé le plan de requête).

ifx_affected_rows() est très pratique après ifx_prepare() pour limiter la taille des résultats.

Liste de paramètres

result_id

Un identifiant de résultat valide retourné par la fonction ifx_query() ou la fonction ifx_prepare().

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.

Exemples

Exemple #1 Nombre de lignes affectées

<?php
$rid = ifx_prepare("select * from emp
                     where name like " . $name, $connid);
if (! $rid) {
    /* ... erreur ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Trop de lignes trouvées (%d)\n<br />", $rowcount);
    die ("Rééssayez avec une autre requête.<br />\n");
}
?>

Voir aussi

  • ifx_num_rows() - Compte le nombre de lignes déjà lues dans un résultat


Choisit le mode par défaut des objets BLOB pour toutes les requêtes SELECT

  • « ifx_affected_rows
  • ifx_byteasvarchar »
  • PHP Manual
  • Fonctions Informix
  • Choisit le mode par défaut des objets BLOB pour toutes les requêtes SELECT

ifx_blobinfile_mode

(PHP 4, PHP <=5.2.0)

ifx_blobinfile_mode — Choisit le mode par défaut des objets BLOB pour toutes les requêtes SELECT

Description

bool ifx_blobinfile_mode ( int $mode )

Choisit le mode par défaut des objets BLOB pour toutes les requêtes SELECT.

Liste de paramètres

mode

Mode "0" chargera les BLOB de type Byte en mémoire ; Mode "1" sauvera les BLOB de type Byte dans un fichier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Choisit le mode par défaut des objets BYTE

  • « ifx_blobinfile_mode
  • ifx_close »
  • PHP Manual
  • Fonctions Informix
  • Choisit le mode par défaut des objets BYTE

ifx_byteasvarchar

(PHP 4, PHP <=5.2.0)

ifx_byteasvarchar — Choisit le mode par défaut des objets BYTE

Description

bool ifx_byteasvarchar ( int $mode )

Choisit le mode par défaut des objets BYTE pour toutes les requêtes de sélection.

Liste de paramètres

mode

Le mode "0" retournera l'identifiant de BLOB, et le mode "1" retournera le contenu du TEXT sous la forme d'un VARCHAR.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ifx_textasvarchar() - Choisit le mode par défaut des objets texte


Ferme une connexion à un serveur Informix

  • « ifx_byteasvarchar
  • ifx_connect »
  • PHP Manual
  • Fonctions Informix
  • Ferme une connexion à un serveur Informix

ifx_close

(PHP 4, PHP <=5.2.0)

ifx_close — Ferme une connexion à un serveur Informix

Description

bool ifx_close ([ resource $link_identifier ] )

ifx_close() ferme le lien au serveur de données Informix associé à l'identifiant de connexion link_identifier.

Notez qu'il n'est généralement pas besoin d'appeler cette fonction, car les connexions non persistantes seront automatiquement fermées.

ifx_close() ne peut pas fermer une connexion ouverte avec ifx_pconnect().

Liste de paramètres

link_identifier

L'identifiant du lien. S'il n'est pas spécifié, le dernier lien ouvert est utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fermer une connexion Informix

<?php
$conn_id = ifx_connect ("mydb@ol_srv", "itsme", "mypassword");
/* ... quelques requêtes diverses et variées ... */
ifx_close($conn_id);
?>

Voir aussi

  • ifx_connect() - Ouvre une connexion à un serveur Informix
  • ifx_pconnect() - Ouvre une connexion persistante à un serveur Informix


Ouvre une connexion à un serveur Informix

  • « ifx_close
  • ifx_copy_blob »
  • PHP Manual
  • Fonctions Informix
  • Ouvre une connexion à un serveur Informix

ifx_connect

(PHP 4, PHP <=5.2.0)

ifx_connect — Ouvre une connexion à un serveur Informix

Description

resource ifx_connect ([ string $database [, string $userid [, string $password ]]] )

ifx_connect() établit une connexion à un serveur Informix.

Si un deuxième appel à ifx_connect() est fait avec les mêmes arguments, l'identifiant de connexion déjà ouvert sera retourné.

Le lien avec le serveur sera fermé dès que le script se termine, ce qui fait qu'il n'est pas nécessaire de terminer les connexions avec ifx_close().

Liste de paramètres

Tous les arguments sont optionnels, et, s'ils viennent à manquer, les valeurs par défaut seront prises dans le php.ini (ifx.default_host pour l'hôte par défaut) (Les bibliothèques Informix utiliseront la variable d'environnement $INFORMIXSERVER si ifx.default_host n'est pas définie). ifx.default_user pour l'utilisateur, et ifx.default_password comme mot de passe (si aucun n'a été défini).

database

Le nom de la base de données, sous la forme d'une chaîne de caractères.

userid

Le nom d'utilisateur, sous la forme d'une chaîne de caractères.

password

Le mot de passe, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne un identifiant de connexion en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Connexion à un serveur Informix

<?php
$conn_id = ifx_connect ("mydb@ol_srv1", "imyself", "mypassword");
?>

Voir aussi

  • ifx_pconnect() - Ouvre une connexion persistante à un serveur Informix
  • ifx_close() - Ferme une connexion à un serveur Informix


Duplique un BLOB

  • « ifx_connect
  • ifx_create_blob »
  • PHP Manual
  • Fonctions Informix
  • Duplique un BLOB

ifx_copy_blob

(PHP 4, PHP <=5.2.0)

ifx_copy_blob — Duplique un BLOB

Description

int ifx_copy_blob ( int $bid )

Duplique le BLOB fourni.

Liste de paramètres

bid

L'identifiant d'un BLOB.

Valeurs de retour

Retourne l'identifiant vers le nouveau BLOB, ou FALSE si une erreur survient.

Voir aussi

  • ifx_create_blob() - Crée un objet BLOB
  • ifx_free_blob() - Supprime un objet BLOB


Crée un objet BLOB

  • « ifx_copy_blob
  • ifx_create_char »
  • PHP Manual
  • Fonctions Informix
  • Crée un objet BLOB

ifx_create_blob

(PHP 4, PHP <=5.2.0)

ifx_create_blob — Crée un objet BLOB

Description

int ifx_create_blob ( int $type , int $mode , string $param )

Crée un objet BLOB.

Liste de paramètres

type

1 = TEXT, 0 = BYTE

mode

0 = L'objet BLOB place le contenu en mémoire, 1 = L'objet BLOB place le contenu dans un fichier.

param

Si mode = 0: pointeur du contenu, si mode = 1: pointeur vers un fichier.

Valeurs de retour

Retourne l'identifiant vers le nouveau BLOB, ou FALSE si une erreur survient.

Voir aussi

  • ifx_copy_blob() - Duplique un BLOB
  • ifx_free_blob() - Supprime un objet BLOB


Crée un objet char

  • « ifx_create_blob
  • ifx_do »
  • PHP Manual
  • Fonctions Informix
  • Crée un objet char

ifx_create_char

(PHP 4, PHP <=5.2.0)

ifx_create_char — Crée un objet char

Description

int ifx_create_char ( string $param )

Crée un objet char.

Liste de paramètres

param

Le contenu du char.

Valeurs de retour

Retourne l'identifiant vers le nouvel objet char, ou FALSE si une erreur survient.

Voir aussi

  • ifx_free_char() - Supprime un objet char


Exécute une requête SQL préparée

  • « ifx_create_char
  • ifx_error »
  • PHP Manual
  • Fonctions Informix
  • Exécute une requête SQL préparée

ifx_do

(PHP 4, PHP <=5.2.0)

ifx_do — Exécute une requête SQL préparée

Description

bool ifx_do ( resource $result_id )

Exécute une requête qui a déjà été préparée, ou crée un pointeur pour cela.

ifx_do() ne libère pas result_id en cas d'erreur.

De plus, ifx_do() fixe la valeur de result_id pour accès ultérieur par ifx_affected_rows().

Liste de paramètres

result_id

result_id est un identifiant de résultat valide retourné par la fonction ifx_query() ou la fonction ifx_prepare() (uniquement les requêtes de type SELECT !).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

Exemple #1 Exemple avec ifx_do()

<?php
$conn = fx_connect( "db", "user", "password" );
$result = ifx_prepare("SELECT customer_num, company FROM customer", $conn);
ifx_do($result);
?>

Voir aussi

  • ifx_prepare() - Prépare une requête SQL pour l'exécution


Retourne le code d'erreur de la dernière requête Informix

  • « ifx_do
  • ifx_errormsg »
  • PHP Manual
  • Fonctions Informix
  • Retourne le code d'erreur de la dernière requête Informix

ifx_error

(PHP 4, PHP <=5.2.0)

ifx_error — Retourne le code d'erreur de la dernière requête Informix

Description

string ifx_error ([ resource $link_identifier ] )

Retourne un seul caractère décrivant les résultats généraux d'une requête ainsi que SQLSTATE et SQLCODE associés avec la requête SQL la plus récente.

Liste de paramètres

link_identifier

L'identifiant du lien.

Valeurs de retour

Les codes erreurs Informix (SQLSTATE & SQLCODE) sont formatés ainsi : x [SQLSTATE = aa bbb SQLCODE=cccc].

où x = space : aucune erreur

E : erreur

N : il n'y a plus de donnée

W : alerte

? : indéfinie

Si le caractère "x" vaut autre chose qu'un espace, SQLSTATE et SQLCODE décrivent l'erreur avec plus de détails.

Reportez-vous au manuel Informix pour trouver la description de SQLSTATE et SQLCODE.

Voir aussi

  • ifx_errormsg() - Retourne le message d'erreur de la dernière requête Informix


Retourne le message d'erreur de la dernière requête Informix

  • « ifx_error
  • ifx_fetch_row »
  • PHP Manual
  • Fonctions Informix
  • Retourne le message d'erreur de la dernière requête Informix

ifx_errormsg

(PHP 4, PHP <=5.2.0)

ifx_errormsg — Retourne le message d'erreur de la dernière requête Informix

Description

string ifx_errormsg ([ int $errorcode ] )

Retourne le message d'erreur associé à la dernière erreur Informix.

Liste de paramètres

errorcode

Si spécifié, la fonction retournera le message correspondant au code erreur spécifié.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec ifx_errormsg()

<?php
printf("%s\n<br>", ifx_errormsg(-201));
?>

Voir aussi

  • ifx_error() - Retourne le code d'erreur de la dernière requête Informix


Retourne une ligne sous la forme d'un tableau énuméré

  • « ifx_errormsg
  • ifx_fieldproperties »
  • PHP Manual
  • Fonctions Informix
  • Retourne une ligne sous la forme d'un tableau énuméré

ifx_fetch_row

(PHP 4, PHP <=5.2.0)

ifx_fetch_row — Retourne une ligne sous la forme d'un tableau énuméré

Description

array ifx_fetch_row ( resource $result_id [, mixed $position ] )

Retourne une ligne de données d'un résultat associé à l'identifiant de résultat result_id.

Les appels ultérieurs à ifx_fetch_row() retourneront la ligne suivante, ou FALSE s'il n'y a plus de ligne.

Liste de paramètres

result_id

result_id est un identifiant valide de résultat, retourné par ifx_query() ou ifx_prepare() (Requêtes SELECT seulement !).

position

position est un paramètre optionnel, pour une opération de lecture d'informations sur un pointeur de type "scroll": NEXT, PREVIOUS, CURRENT, FIRST, LAST ou encore un nombre. Si vous spécifiez un nombre, la ligne d'index absolu sera retournée. Ce paramètre est optionnel, et ne fonctionne qu'avec les pointeurs de type "scroll".

Valeurs de retour

retourne un tableau associatif qui contient la ligne retournée ou FALSE s'il ne reste plus de lignes à lire, ou s'il a eu une erreur.

Les colonnes de types BLOB sont retournées sous la forme d'un identifiant à utiliser avec ifx_get_blob() à moins que vous n'ayez utilisé la fonction ifx_textasvarchar() ou ifx_byteasvarchar() et, dans ce cas, les BLOB seront retournés sous forme de chaîne.

Exemples

Exemple #1 Exemple avec ifx_fetch_row()

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... erreur ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Trop de lignes dans le résultat. (%d)\n<br />", $rowcount);
    die ("Restreignez votre requête. <br />\n");
}
if (! ifx_do ($rid)) {
   /* ... erreur ... */
}
$row = ifx_fetch_row ($rid, "NEXT");
while (is_array($row)) {
    for (reset($row); $fieldname=key($row); next($row)) {
        $fieldvalue = $row[$fieldname];
        printf ("%s = %s,", $fieldname, $fieldvalue);
    }
    printf("\n<br />");
    $row = ifx_fetch_row($rid, "NEXT");
}
ifx_free_result ($rid);
?>


Liste les propriétés des champs SQL

  • « ifx_fetch_row
  • ifx_fieldtypes »
  • PHP Manual
  • Fonctions Informix
  • Liste les propriétés des champs SQL

ifx_fieldproperties

(PHP 4, PHP <=5.2.0)

ifx_fieldproperties — Liste les propriétés des champs SQL

Description

array ifx_fieldproperties ( resource $result_id )

Retourne les propriétés Informix SQL pour tous les champs d'une requête, sous la forme d'un tableau associatif. Les propriétés sont présentées sous la forme : "SQLTYPE;longueur ;précision;échelle;ISNULLABLE" avec SQLTYPE qui représente le type de données Informix tel que "SQLVCHAR" et ISNULLABLE = "Y" ou "N" (le champ peut contenir NULL ou pas : Oui ou Non).

Liste de paramètres

result_id

result_id est un identifiant de résultats valide retourné par la fonction ifx_query() ou la fonction ifx_prepare() (Requête de type SELECT uniquement !).

Valeurs de retour

Retourne un tableau associatif avec les noms des champs comme clés, et les données de propriétés des champs comme valeurs. ifx_fieldproperties() retourne FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec ifx_fieldproperties()

<?php
$properties = ifx_fieldproperties($resultid);
if (!isset($properties)) {
    /* ... erreur ... */
}
foreach ($properties as $fname => $val) {
    echo "$fname :\t property = $val\n";
}
?>

Voir aussi

  • ifx_fieldtypes() - Liste les champs Informix SQL


Liste les champs Informix SQL

  • « ifx_fieldproperties
  • ifx_free_blob »
  • PHP Manual
  • Fonctions Informix
  • Liste les champs Informix SQL

ifx_fieldtypes

(PHP 4, PHP <=5.2.0)

ifx_fieldtypes — Liste les champs Informix SQL

Description

array ifx_fieldtypes ( resource $result_id )

Retourne un tableau associatif avec les noms des champs comme clés, et les types SQL comme valeurs.

Liste de paramètres

result_id

result_id est un identifiant de résultats valide, retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Retourne un tableau associatif avec les noms des champs comme clés, et les types SQL comme valeurs. En cas d'erreur, retourne FALSE.

Exemples

Exemple #1 Nom de champs et type SQL

<?php
$types = ifx_fieldtypes($resultid);
if (is_array($types)) {
    foreach ($types as $fname => $val) {
        echo "$fname :\t type = $val\n";
    }
}
?>

Voir aussi

  • ifx_fieldproperties() - Liste les propriétés des champs SQL


Supprime un objet BLOB

  • « ifx_fieldtypes
  • ifx_free_char »
  • PHP Manual
  • Fonctions Informix
  • Supprime un objet BLOB

ifx_free_blob

(PHP 4, PHP <=5.2.0)

ifx_free_blob — Supprime un objet BLOB

Description

bool ifx_free_blob ( int $bid )

Supprime l'objet BLOB dont l'identifiant est fourni.

Liste de paramètres

bid

L'identifiant de l'objet BLOB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ifx_create_blob() - Crée un objet BLOB


Supprime un objet char

  • « ifx_free_blob
  • ifx_free_result »
  • PHP Manual
  • Fonctions Informix
  • Supprime un objet char

ifx_free_char

(PHP 4, PHP <=5.2.0)

ifx_free_char — Supprime un objet char

Description

bool ifx_free_char ( int $bid )

Supprime l'objet char dont l'identifiant est fourni.

Liste de paramètres

bid

L'identifiant de l'objet char.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ifx_create_char() - Crée un objet char


Libère les ressources prises par un résultat

  • « ifx_free_char
  • ifx_get_blob »
  • PHP Manual
  • Fonctions Informix
  • Libère les ressources prises par un résultat

ifx_free_result

(PHP 4, PHP <=5.2.0)

ifx_free_result — Libère les ressources prises par un résultat

Description

bool ifx_free_result ( resource $result_id )

Libère les ressources prises par le résultat associé avec result_id.

Liste de paramètres

result_id

result_id est un identifiant de résultats valide, retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ifx_do() - Exécute une requête SQL préparée


Retourne le contenu d'un objet BLOB

  • « ifx_free_result
  • ifx_get_char »
  • PHP Manual
  • Fonctions Informix
  • Retourne le contenu d'un objet BLOB

ifx_get_blob

(PHP 4, PHP <=5.2.0)

ifx_get_blob — Retourne le contenu d'un objet BLOB

Description

string ifx_get_blob ( int $bid )

Retourne le contenu d'un objet BLOB.

Liste de paramètres

bid

L'identifiant de l'objet BLOB.

Valeurs de retour

Le contenu du BLOB, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Voir aussi

  • ifx_get_char() - Retourne le contenu d'un objet char


Retourne le contenu d'un objet char

  • « ifx_get_blob
  • ifx_getsqlca »
  • PHP Manual
  • Fonctions Informix
  • Retourne le contenu d'un objet char

ifx_get_char

(PHP 4, PHP <=5.2.0)

ifx_get_char — Retourne le contenu d'un objet char

Description

string ifx_get_char ( int $bid )

Retourne le contenu d'un objet char.

Liste de paramètres

bid

L'identifiant de l'objet char.

Valeurs de retour

Retourne le contenu sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Voir aussi

  • ifx_get_blob() - Retourne le contenu d'un objet BLOB


Retourne le contenu de la variable sqlca.sqlerrd[0..5] après une requête

  • « ifx_get_char
  • ifx_htmltbl_result »
  • PHP Manual
  • Fonctions Informix
  • Retourne le contenu de la variable sqlca.sqlerrd[0..5] après une requête

ifx_getsqlca

(PHP 4, PHP <=5.2.0)

ifx_getsqlca — Retourne le contenu de la variable sqlca.sqlerrd[0..5] après une requête

Description

array ifx_getsqlca ( resource $result_id )

Retourne un tableau associatif, contenant sqlca.sqlerrd[0] à sqlca.sqlerrd[5] après la requête associée result_id.

Pour les requêtes INSERT, UPDATE et DELETE, les valeurs retournées sont celles fixées par le serveur après avoir exécuté la requête. Cela donne accès au nombre de lignes affectées, ainsi qu'au numéro de série d'insertion. Pour les requêtes de type SELECT, les valeurs retournées sont celles qui ont été préparées. Utiliser cette fonction économise l'exécution d'une requête SELECT dbinfo('sqlca.sqlerrdx'), étant donné qu'elle retourne les valeurs qui ont été sauvées par le pilote ifx au moment approprié.

Liste de paramètres

result_id

result_id est un identifiant de résultats valide, retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Retourne un tableau associatif, composé des entrées suivantes : sqlerrd0, sqlerrd1, sqlerrd2, sqlerrd3, sqlerrd4 et sqlerrd5.

Exemples

Exemple #1 Lire les valeurs de sqlca.sqlerrd[x]

<?php
/* On suppose que la première colonne d'une table
'quelconque' est un numéro de série */
$qid = ifx_query("insert into sometable
                  values (0, '2nd column', 'another column') ", $connid);
if (!$qid) {
    /* ... erreur ... */
}
$sqlca = ifx_getsqlca($qid);
$serial_value = $sqlca["sqlerrd1"];
echo "Le numéro de série de la valeur insérée est : $serial_value<br />\n";
?>


Lit toutes les lignes d'un tableau, et le met sous la forme d'un tableau HTML

  • « ifx_getsqlca
  • ifx_nullformat »
  • PHP Manual
  • Fonctions Informix
  • Lit toutes les lignes d'un tableau, et le met sous la forme d'un tableau HTML

ifx_htmltbl_result

(PHP 4, PHP <=5.2.0)

ifx_htmltbl_result — Lit toutes les lignes d'un tableau, et le met sous la forme d'un tableau HTML

Description

int ifx_htmltbl_result ( resource $result_id [, string $html_table_options ] )

Formate et affiche toutes les lignes issues de la requête result_id dans un tableau HTML.

Liste de paramètres

result_id

result_id est un identifiant de résultats, retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

html_table_options

Cet argument optionnel est une chaîne de caractères d'options de balise <table>.

Valeurs de retour

Retourne le nombre de lignes récupérées ou FALSE si une erreur survient.

Exemples

Exemple #1 Affichage sous la forme d'une table HTML

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... erreur ... */
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
    printf ("Trop de lignes dans le résultat : (%d)\n<br />", $rowcount);
    die ("Recommencez votre requête <br />\n");
}
if (! ifx_do($rid)) {
    /* ... erreur ... */
}

ifx_htmltbl_result ($rid, "border=\"2\"");

ifx_free_result($rid);
?>


Modifie le mode par défaut de lecture des valeurs

  • « ifx_htmltbl_result
  • ifx_num_fields »
  • PHP Manual
  • Fonctions Informix
  • Modifie le mode par défaut de lecture des valeurs

ifx_nullformat

(PHP 4, PHP <=5.2.0)

ifx_nullformat — Modifie le mode par défaut de lecture des valeurs

Description

bool ifx_nullformat ( int $mode )

Modifie le mode par défaut de lecture des valeurs.

Liste de paramètres

mode

Le mode "0" retourne "", et le mode "1" retourne "NULL".

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne le nombre de colonnes d'une requête

  • « ifx_nullformat
  • ifx_num_rows »
  • PHP Manual
  • Fonctions Informix
  • Retourne le nombre de colonnes d'une requête

ifx_num_fields

(PHP 4, PHP <=5.2.0)

ifx_num_fields — Retourne le nombre de colonnes d'une requête

Description

int ifx_num_fields ( resource $result_id )

Après avoir préparé ou exécuté une requête, cette fonction retourne le nombre de colonnes dans la requête.

Liste de paramètres

result_id

result_idest un identifiant de résultats retourné par la fonction ifx_query() ou par la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Retourne le nombre de colonnes dans la requête result_id ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec ifx_num_fields()

<?php
$conn_id = ifx_connect("db", "user", "password");
$res_id = ifx_query("select * from systables", $conn_id);
echo ifx_num_fields($res_id);
?>

Voir aussi

  • ifx_num_rows() - Compte le nombre de lignes déjà lues dans un résultat


Compte le nombre de lignes déjà lues dans un résultat

  • « ifx_num_fields
  • ifx_pconnect »
  • PHP Manual
  • Fonctions Informix
  • Compte le nombre de lignes déjà lues dans un résultat

ifx_num_rows

(PHP 4, PHP <=5.2.0)

ifx_num_rows — Compte le nombre de lignes déjà lues dans un résultat

Description

int ifx_num_rows ( resource $result_id )

Compte le nombre de lignes déjà lues dans le résultat result_id après ifx_query() ou ifx_do().

Liste de paramètres

result_id

result_id est un identifiant de résultats retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Retourne le nombre de lignes récupérées ou FALSE si une erreur survient.

Voir aussi

  • ifx_num_fields() - Retourne le nombre de colonnes d'une requête


Ouvre une connexion persistante à un serveur Informix

  • « ifx_num_rows
  • ifx_prepare »
  • PHP Manual
  • Fonctions Informix
  • Ouvre une connexion persistante à un serveur Informix

ifx_pconnect

(PHP 4, PHP <=5.2.0)

ifx_pconnect — Ouvre une connexion persistante à un serveur Informix

Description

resource ifx_pconnect ([ string $database [, string $userid [, string $password ]]] )

ifx_pconnect() se comporte de manière très similaire à ifx_connect() avec deux différences importantes.

Tout d'abord, lors de la connexion, la fonction va chercher une connexion (persistante) déjà ouverte avec le même hôte, le même nom d'utilisateur et le même mot de passe. Si elle en trouve une, elle retournera un identifiant de cette connexion au lieu d'en ouvrir une nouvelle.

Deuxièmement, la connexion au serveur SQL ne sera pas automatiquement refermée à la fin de l'exécution du script. Au contraire, le lien va rester ouvert (ifx_close() ne fermera pas les connexions établies avec ifx_pconnect()).

Ainsi, ce type de lien est appelé 'persistant'.

Liste de paramètres

Tous les arguments sont optionnels, et s'ils ne sont pas fournis, les valeurs par défaut sont utilisées, émanant du php.ini (ifx.default_host pour l'hôte (les bibliothèques Informix utiliseront la valeur de la variable d'environnement INFORMIXSERVER si cette valeur n'est pas défini), ifx.default_user pour l'utilisateur, ifx.default_password pour le mot de passe (aucun s'il n'est pas fourni)).

database

Le nom de la base de données, sous la forme d'une chaîne de caractères.

userid

Le nom d'utilisateur, sous la forme d'une chaîne de caractères.

password

Le mot de passe, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne un identifiant valide de connexion persistante à un serveur Informix, ou FALSE, en cas d'erreur.

Voir aussi

  • ifx_connect() - Ouvre une connexion à un serveur Informix


Prépare une requête SQL pour l'exécution

  • « ifx_pconnect
  • ifx_query »
  • PHP Manual
  • Fonctions Informix
  • Prépare une requête SQL pour l'exécution

ifx_prepare

(PHP 4, PHP <=5.2.0)

ifx_prepare — Prépare une requête SQL pour l'exécution

Description

resource ifx_prepare ( string $query , resource $link_identifier [, int $cursor_def ], mixed $blobidarray )

Prépare la requête query pour une utilisation ultérieure avec la fonction ifx_do().

Pour les requêtes de type "select-type" un pointeur de résultat est déclaré et ouvert. Les autres seront exécutées immédiatement.

Pour les autres types de requêtes, le nombre de lignes affectées (estimé ou exact) est enregistré, pour être lu avec la fonction ifx_affected_rows().

Si le contenu d'une colonne est de type TEXT (ou BYTE) vous pouvez aussi utiliser les fonctions ifx_textasvarchar(1) et ifx_byteasvarchar(1). Cela vous permettra d'utiliser les colonnes TEXT (ou BYTE) comme des colonnes de type VARCHAR (mais plus long, tout de même), et vous n'aurez pas besoin de l'identifiant de BLOB.

Avec les fonctions ifx_textasvarchar(0) et ifx_byteasvarchar(0) (valeurs par défaut), les requêtes SELECT retourneront des identifiants de BLOB. Cet identifiant peut être une chaîne ou un fichier, suivant la configuration (voir plus loin).

Liste de paramètres

query

La requête.

link_identifier

L'identifiant du lien.

cursor_def

Ce paramètre optionnel permet de choisir le type de pointeur : scroll et/ou hold. Les valeurs peuvent être combinées ensemble (IFX_SCROLL, IFX_HOLD).

blobidarray

Si vous avez une colonne de type BLOB (BYTE ou TEXT) dans une requête de modification, vous pouvez passer un paramètre blobidarray qui contiendra les identifiants des BLOB à modifier, et vous devrez remplacer cette colonne par un point d'interrogation (?) dans la requête.

Valeurs de retour

Retourne un identifiant de résultats pour une utilisation ultérieure avec la fonction ifx_do(), ou FALSE si une erreur survient.

Voir aussi

  • ifx_do() - Exécute une requête SQL préparée


Envoie une requête Informix

  • « ifx_prepare
  • ifx_textasvarchar »
  • PHP Manual
  • Fonctions Informix
  • Envoie une requête Informix

ifx_query

(PHP 4, PHP <=5.2.0)

ifx_query — Envoie une requête Informix

Description

resource ifx_query ( string $query , resource $link_identifier [, int $cursor_type [, mixed $blobidarray ]] )

ifx_query() envoie une requête au serveur actif courant, associé à l'identifiant de connexion link_identifier.

Pour les requêtes de type SELECT, un pointeur est déclaré, et ouvert. Les autres seront exécutées immédiatement.

Pour les autres requêtes, le nombre de lignes affectées (estimé ou exact) est enregistré pour être lu avec ifx_affected_rows().

Si le contenu d'une colonne est de type TEXT (ou BYTE) vous pouvez aussi utiliser les fonctions ifx_textasvarchar(1) et ifx_byteasvarchar(1). Cela vous permettra d'utiliser les colonnes TEXT ( ou BYTE ) comme des colonnes de type VARCHAR (mais plus long, tout de même), et vous n'aurez pas besoin de l'identifiant de BLOB.

Avec les fonctions ifx_textasvarchar(0) et ifx_byteasvarchar(0) (valeurs par défaut), les requêtes SELECT retourneront des identifiants de BLOB. Ces identifiants peuvent être une chaîne ou un fichier, suivant la configuration (voir plus loin).

Liste de paramètres

query

La requête, sous la forme d'une chaîne de caractères.

link_identifier

L'identifiant du lien.

cursor_def

Ce paramètre optionnel vous permet de choisir le type de curseur, scroll et/ou hold. C'est un masque qui peut être soit IFX_SCROLL, soit IFX_HOLD, ou les deux. Si vous ne fournissez pas ce paramètre, le curseur est un curseur normal séquentiel.

blobidarray

Si vous avez une colonne de type BLOB (BYTE ou TEXT) dans une requête de modification, vous pouvez passer un paramètre blobidarray qui contiendra les identifiants des BLOB à modifier, et vous devrez remplacer cette colonne par un point d'interrogation (?) dans la requête.

Valeurs de retour

Retourne un identifiant de résultats Informix en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Afficher toutes les lignes de la table "ordres" sous la forme html du serveur IFX

<?php
ifx_textasvarchar(1);      // Utilisation du mode "text mode" pour les BLOBs
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
    printf("Can't select orders : %s\n<br />%s<br />\n", ifx_error(), ifx_errormsg());
    die;
}
ifx_htmltbl_result($res_id, "border=\"1\"");
ifx_free_result($res_id);
?>

Exemple #2 Insertion de valeurs dans la table "catalogue" IFX

<?php

// Créer un identifiant de BLOB pour une colonne de type BYTE et une de type TEXT
$textid = ifx_create_blob(0, 0, "Colonne Text en mémoire");
$byteid = ifx_create_blob(1, 0, "Colonne Byte en mémoire");

// Stocke l'identifiant du BLOB dans le tableau BLOBid
$blobidarray[] = $textid;
$blobidarray[] = $byteid;

// Exécute la requête
$query = "insert into catalog (stock_num, manu_code, " .
         "cat_descr,cat_picture) values(1,'HRO',?,?)";
$res_id = ifx_query($query, $conn_id, $blobidarray);
if (! $res_id) {
    /* ... erreur ... */
}

// Libération du résultat
ifx_free_result($res_id);
?>

Voir aussi

  • ifx_connect() - Ouvre une connexion à un serveur Informix


Choisit le mode par défaut des objets texte

  • « ifx_query
  • ifx_update_blob »
  • PHP Manual
  • Fonctions Informix
  • Choisit le mode par défaut des objets texte

ifx_textasvarchar

(PHP 4, PHP <=5.2.0)

ifx_textasvarchar — Choisit le mode par défaut des objets texte

Description

bool ifx_textasvarchar ( int $mode )

Modifie le mode par défaut des objets TEXT.

Liste de paramètres

mode

Le mode "0" retournera un identifiant de BLOB et le mode "1" retourne le BLOB sous la forme d'un (gros) VARCHAR.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ifx_byteasvarchar() - Choisit le mode par défaut des objets BYTE


Modifie le contenu d'un objet BLOB

  • « ifx_textasvarchar
  • ifx_update_char »
  • PHP Manual
  • Fonctions Informix
  • Modifie le contenu d'un objet BLOB

ifx_update_blob

(PHP 4, PHP <=5.2.0)

ifx_update_blob — Modifie le contenu d'un objet BLOB

Description

bool ifx_update_blob ( int $bid , string $content )

Modifie le contenu de l'objet BLOB repéré par son identifiant bid.

Liste de paramètres

bid

Un identifiant d'objet BLOB.

content

Les nouvelles données, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ifx_update_char() - Modifie le contenu d'un objet char


Modifie le contenu d'un objet char

  • « ifx_update_blob
  • ifxus_close_slob »
  • PHP Manual
  • Fonctions Informix
  • Modifie le contenu d'un objet char

ifx_update_char

(PHP 4, PHP <=5.2.0)

ifx_update_char — Modifie le contenu d'un objet char

Description

bool ifx_update_char ( int $bid , string $content )

Modifie le contenu de l'objet char repéré par son identifiant bid.

Liste de paramètres

bid

Un identifiant d'objet char.

content

Les nouvelles données, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ifx_update_blob() - Modifie le contenu d'un objet BLOB


Ferme un objet SLOB

  • « ifx_update_char
  • ifxus_create_slob »
  • PHP Manual
  • Fonctions Informix
  • Ferme un objet SLOB

ifxus_close_slob

(PHP 4, PHP <=5.2.0)

ifxus_close_slob — Ferme un objet SLOB

Description

bool ifxus_close_slob ( int $bid )

Ferme l'objet SLOB représenté par son identifiant bid.

Liste de paramètres

bid

Un identifiant vers un slob existant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ifxus_open_slob() - Ouvre un objet SLOB


Crée un objet SLOB et l'ouvre

  • « ifxus_close_slob
  • ifxus_free_slob »
  • PHP Manual
  • Fonctions Informix
  • Crée un objet SLOB et l'ouvre

ifxus_create_slob

(PHP 4, PHP <=5.2.0)

ifxus_create_slob — Crée un objet SLOB et l'ouvre

Description

int ifxus_create_slob ( int $mode )

Crée un objet SLOB et l'ouvre.

Liste de paramètres

mode

Une combinaison des constantes suivantes : IFX_LO_RDONLY, IFX_LO_WRONLY, IFX_LO_APPEND IFX_LO_RDWR, IFX_LO_BUFFER, IFX_LO_NOBUFFER.

Valeurs de retour

Retourne l'identifiant du nouvel objet slob, ou FALSE si une erreur survient.

Voir aussi

  • ifxus_close_slob() - Ferme un objet SLOB
  • ifxus_free_slob() - Supprime un objet SLOB


Supprime un objet SLOB

  • « ifxus_create_slob
  • ifxus_open_slob »
  • PHP Manual
  • Fonctions Informix
  • Supprime un objet SLOB

ifxus_free_slob

(PHP 4, PHP <=5.2.0)

ifxus_free_slob — Supprime un objet SLOB

Description

bool ifxus_free_slob ( int $bid )

Supprime un objet SLOB.

Liste de paramètres

bid

Un identifiant vers un slob existant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ifxus_close_slob() - Ferme un objet SLOB


Ouvre un objet SLOB

  • « ifxus_free_slob
  • ifxus_read_slob »
  • PHP Manual
  • Fonctions Informix
  • Ouvre un objet SLOB

ifxus_open_slob

(PHP 4, PHP <=5.2.0)

ifxus_open_slob — Ouvre un objet SLOB

Description

int ifxus_open_slob ( int $bid , int $mode )

Ouvre un objet SLOB. bid doit être un identifiant slob existant.

Liste de paramètres

bid

Un identifiant slob existant.

mode

Une combinaison des constantes suivantes : IFX_LO_RDONLY, IFX_LO_WRONLY, IFX_LO_APPEND IFX_LO_RDWR, IFX_LO_BUFFER, IFX_LO_NOBUFFER.

Valeurs de retour

Retourne l'identifiant du nouvel objet slob, ou FALSE si une erreur survient.

Voir aussi

  • ifxus_close_slob() - Ferme un objet SLOB
  • ifxus_free_slob() - Supprime un objet SLOB


Lit des octets dans un objet SLOB

  • « ifxus_open_slob
  • ifxus_seek_slob »
  • PHP Manual
  • Fonctions Informix
  • Lit des octets dans un objet SLOB

ifxus_read_slob

(PHP 4, PHP <=5.2.0)

ifxus_read_slob — Lit des octets dans un objet SLOB

Description

string ifxus_read_slob ( int $bid , int $nbytes )

Lit nbytes octets de l'objet slob.

Liste de paramètres

bid

Un identifiant slob existant.

nbytes

Le nombre d'octets à lire.

Valeurs de retour

Retourne le contenu du slob sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Voir aussi

  • ifxus_write_slob() - Écrit une chaîne dans un objet SLOB


Fixe le fichier courant ou la position courante

  • « ifxus_read_slob
  • ifxus_tell_slob »
  • PHP Manual
  • Fonctions Informix
  • Fixe le fichier courant ou la position courante

ifxus_seek_slob

(PHP 4, PHP <=5.2.0)

ifxus_seek_slob — Fixe le fichier courant ou la position courante

Description

int ifxus_seek_slob ( int $bid , int $mode , int $offset )

Fixe le fichier courant ou la position courante d'un objet slob ouvert.

Liste de paramètres

bid

Un identifiant slob existant.

mode

0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END.

offset

La position.

Valeurs de retour

Retourne le position sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi

  • ifxus_tell_slob() - Retourne le fichier courant ou la position courante


Retourne le fichier courant ou la position courante

  • « ifxus_seek_slob
  • ifxus_write_slob »
  • PHP Manual
  • Fonctions Informix
  • Retourne le fichier courant ou la position courante

ifxus_tell_slob

(PHP 4, PHP <=5.2.0)

ifxus_tell_slob — Retourne le fichier courant ou la position courante

Description

int ifxus_tell_slob ( int $bid )

Retourne le fichier courant ou la position courante d'un objet slob ouvert.

Liste de paramètres

bid

Un identifiant slob existant.

Valeurs de retour

Retourne la position sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi

  • ifxus_seek_slob() - Fixe le fichier courant ou la position courante


Écrit une chaîne dans un objet SLOB

  • « ifxus_tell_slob
  • Ingres »
  • PHP Manual
  • Fonctions Informix
  • Écrit une chaîne dans un objet SLOB

ifxus_write_slob

(PHP 4, PHP <=5.2.0)

ifxus_write_slob — Écrit une chaîne dans un objet SLOB

Description

int ifxus_write_slob ( int $bid , string $content )

Écrit une chaîne dans un objet SLOB.

Liste de paramètres

bid

Un identifiant slob existant.

content

Le contenu à écrire, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne les octets écrits, sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi

  • ifxus_read_slob() - Lit des octets dans un objet SLOB


Ingres DBMS, EDBC, et Enterprise Access

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
  • Fonctions Ingres
    • ingres_autocommit_state — Vérifie si la connexion utilise l'autocommit
    • ingres_autocommit — Active ou désactive le mode autocommit
    • ingres_charset — Retourne le jeu de caractères utilisé par Ingres
    • ingres_close — Ferme une connexion à un serveur Ingres
    • ingres_commit — Valide une transaction
    • ingres_connect — Ouvre une connexion sur un serveur Ingres
    • ingres_cursor — Récupère le nom du curseur pour une ressource de résultats donnée
    • ingres_errno — Récupère le dernier numéro d'erreur d'Ingres généré
    • ingres_error — Lit le dernier message d'erreur Ingres
    • ingres_errsqlstate — Récupère le dernier code SQLSTATE généré
    • ingres_escape_string — Protège les caractères spéciaux de Ingres
    • ingres_execute — Exécute une commande préparée Ingres
    • ingres_fetch_array — Récupère une ligne de résultat Ingres dans un tableau
    • ingres_fetch_assoc — Récupère une ligne de résultat dans un tableau associatif
    • ingres_fetch_object — Récupère une ligne de résultat dans un objet
    • ingres_fetch_proc_return — Lit le résultat d'un appel à une procédure stockée
    • ingres_fetch_row — Récupère une ligne de résultat dans un tableau énuméré
    • ingres_field_length — Retourne la taille d'un champ
    • ingres_field_name — Retourne le nom d'un champ dans le résultat d'une requête Ingres
    • ingres_field_nullable — Teste si un champ est annulable
    • ingres_field_precision — Retourne la précision d'un champ Ingres
    • ingres_field_scale — Retourne l'échelle d'un champ
    • ingres_field_type — Retourne le type d'un champ dans le résultat d'une requête Ingres
    • ingres_free_result — Libère les ressources d'un résultat Ingres
    • ingres_next_error — Lit l'erreur Ingres suivante
    • ingres_num_fields — Retourne le nombre de champs renvoyés par la dernière requête Ingres
    • ingres_num_rows — Retourne le nombre de lignes affectées ou renvoyées par une requête Ingres
    • ingres_pconnect — Ouvre une connexion persistante à un serveur Ingres
    • ingres_prepare — Prépare une requête pour l'exécution
    • ingres_query — Envoie une requête SQL à Ingres
    • ingres_result_seek — Change la position de lecture des données
    • ingres_rollback — Annule une transaction Ingres
    • ingres_set_environment — Configure les directives contrôlant les résultats Ingres
    • ingres_unbuffered_query — Envoie une requête sans buffer à Ingres


Introduction

Le driver Ingres pour PHP vous permet de vous connecter et d'effectuer des requêtes sur des serveurs DBMS, EDBC, et Enterprise Access.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.


Pré-requis

Pour utiliser ou compiler l'extension PHP pour Ingres, vous devez avoir un environnement client Ingres. Vous pouvez télécharger le logiciel client à » http://esd.ingres.com/.


Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ingres.

La bibliothèque DLL de cette extension PECL peut être téléchargée sur » http://esd.ingres.com/product/drivers/PHP/.

Pour activer ces fonctions, vous devez avoir » téléchargé et compilé cette extension, activé le support Ingres avec l'option --with-ingres[=DIR] , où DIR est le dossier de base de Ingres. Si la variable d'environnement II_SYSTEM n'est pas correctement spécifiée, vous devrez utiliser la directive --with-ingres=DIR pour indiquer où se trouve votre dossier d'installation Ingres.

Le code PHP écrite pour la version 2.x et plus récent n'est pas compatible avec les versions plus anciennes de cette extension. Cependant, il est possible d'exécuter les deux extensions incompatibles dans le même environnement PHP, avec l'option --enable-ingres2 . Cette option de configuration renomme l'extension en ingres2, change le nom des fonctions, des directives de configurations et des constantes. Par exemple, cette option activée, la fonction ingres_connect() devient ingres2_connect().

Pour utiliser cette extension, la variable d'environnement II_SYSTEM doit être définie. Les utilisateurs Linux et UNIX doivent aussi définir le chemin jusqu'à la bibliothèque partagée, par exemple LD_LIBRARY_PATH. Lorsqu'utilisé avec le serveur Web Apache, ces variables doivent être configurées explicitement dans le script de démarrage d'Apache. De plus, la directive PassEnv est nécessaire pour que l'extension Ingres charge correctement les bibliothèques. Par exemple :

Exemple #1 Exemple d'utilisation de PassEnv avec Ingres

<IfModule mod_env.c>
    PassEnv II_SYSTEM
    PassEnv LD_LIBRARY_PATH
</IfModule>

Note:

Pour des exemples de configurations pour différents serveurs Web et systèmes d'exploitation, voyez » http://community.ingres.com/wiki/Ingres_Articles#Ingres_and_Web_Servers.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Ingres
Nom | Défaut | Modifiable | Historique
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Disponible depuis ingres 1.0.0
ingres.array_index_start | "1" | PHP_INI_ALL | Disponible depuis ingres 1.4.0.
ingres.auto | "1" | PHP_INI_ALL | Disponible depuis ingres 2.0.0.
ingres.blob_segment_length | "4096" | PHP_INI_ALL | Disponible depuis ingres 1.2.0.
ingres.cursor_mode | "0" | PHP_INI_ALL | Disponible depuis ingres 1.1.0.
ingres.default_database | NULL | PHP_INI_ALL | Disponible depuis ingres 1.0.0
ingres.default_password | NULL | PHP_INI_ALL | Disponible depuis ingres 1.0.0
ingres.default_user | NULL | PHP_INI_ALL | Disponible depuis ingres 1.0.0
ingres.describe | 1 | PHP_INI_ALL | Disponible depuis ingres 2.1.0
ingres.fetch_buffer_size | 100 | PHP_INI_ALL | Disponible depuis ingres 2.1.0
ingres.max_links | "-1" | PHP_INI_SYSTEM | Disponible depuis ingres 1.0.0
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible depuis ingres 1.0.0
ingres.reuse_connection | "1" | PHP_INI_ALL | Disponible depuis ingres 2.0.0
ingres.scrollable | "1" | PHP_INI_ALL | Disponible depuis ingres 2.0.0.
ingres.trace | "0" | PHP_INI_ALL | Disponible depuis ingres 2.0.0.
ingres.trace_connect | "0" | PHP_INI_ALL | Disponible depuis ingres 1.2.1.
ingres.utf8 | "1" | PHP_INI_ALL | Disponible depuis ingres 2.0.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ingres.allow_persistent booléen

Indique s'il faut activer les connexions persistantes à Ingres

ingres.array_index_start entier

Spécifie la valeur de départ pour les clés des entiers des tableaux générés par la fonction ingres_fetch_row() ou par la fonction ingres_fetch_array(). Par défaut, le paramètre ingres.array_index_start est défini à 1. Si vous voulez que l'extension ingres fonctionne de la même façon que les autres extensions de bases de données, définissez ce paramètre à 0.

ingres.auto booléen

Active ou pas l'émulation de l'autocommit. Ingres ne peut pas avoir plusieurs curseurs ouverts simultanément, lorsque l'autocommit est actif. Lorsqu'il est activé, le pilote émule l'autocommit.

ingres.blob_segment_length entier

Spécifie la quantité de mémoire à utiliser lors de la lecture des BLOB, en octets.

ingres.cursor_mode entier

Spécifie le mode par défaut pour les curseurs ouverts avec ingres_prepare(). Les valeurs valides sont INGRES_CURSOR_UPDATE ou INGRES_CURSOR_READONLY.

ingres.default_database chaîne de caractères

Spécifie le nom de la base de données par défaut, lors de la connexion à un serveur, si aucun nom de base n'est fourni. Cela ne s'applique pas au safe mode SQL.

ingres.default_password chaîne de caractères

Spécifie le mot de passe par défaut, lors de la connexion à un serveur, si aucun nom de base n'est fourni. Cela ne s'applique pas au safe mode SQL.

ingres.default_user chaîne de caractères

Spécifie le nom d'utilisateur par défaut, lors de la connexion à un serveur, si aucun nom de base n'est fourni. Cela ne s'applique pas au safe mode SQL.

ingres.describe booléen

Active l'utilisation de DESCRIBE INPUT pour déterminer les types de données pour les requêtes préparées. Disponible depuis Ingres 9.1.0. Lorsque cette directive est désactivée, les requêtes qui reçoivent des paramètres doivent décrire manuellement ces paramètres avec le paramètre types dans la fonction ingres_query().

Note:

En activant cette fonctionnalité, ingres_query() va réaliser plusieurs requêtes supplémentaires entre PHP et le serveur. Pour réduire ce trafic, utilisez ingres_prepare() et ingres_execute().

ingres.fetch_buffer_size entier

Spécifie le nombre de ligne à télécharger lors d'une opération de lecture
en groupe par ingres_fetch_array(),
ingres_fetch_object() et
ingres_fetch_row().

ingres.max_links entier

Spécifie le nombre de sessions Ingres allouées par processus ou thread. Le nombre de sessions ne doit pas excéder le nombre maximal de connexions configurées par le serveur Ingres.

ingres.max_persistent entier

Spécifie le nombre maximum de sessions persistantes allouées par processus ou par thread. Le nombre de sessions ne doit pas excéder le nombre de connexions configurées sur le serveur Ingres.

ingres.reuse_connection booléen

Active la réutilisation de connexion si la connexion est tentée sur le même serveur avec le même nom d'utilisateur.

ingres.scrollable booléen

Active le support des curseurs scrollables. Lors de la lecture de données CLOB ou BLOB, cette directive doit être mise à FALSE. Disponible depuis Ingres 9.2.0.

ingres.trace booléen

Active les traces simples de messages E_NOTICE.

ingres.trace_connect booléen

Affiche des messages E_NOTICE durant les appels à ingres_connect() et ingres_pconnect().

ingres.utf8 booléen

Suppose que les chaînes de caractères passées à une colonne de type National Character (NVARCHAR ou NCHAR) utilisent l'encodage UTF-8 et les converti en UTF-16 pour le serveur.


Types de ressources

ingres_connect() et ingres_pconnect() retournent une ressource de connexion à Ingres.

ingres_query() et ingres_unbuffered_query() retourne une ressource de résultat Ingres.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

INGRES_ASSOC (entier)
Les colonnes sont retournées dans des tableaux, dont les noms de colonnes sont les index. À utiliser avec ingres_fetch_array().
INGRES_NUM (entier)
Les colonnes sont retournées dans des tableaux avec des index numériques. Par défaut, les index commencent à 1, qui est le premier champ du résultat. Pour changer cette valeur, voyez ingres.array_index_start. À utiliser avec ingres_fetch_array().
INGRES_BOTH (entier)
Les colonnes sont retournées dans des tableaux, numériques et littéraux. À utiliser avec ingres_fetch_array().
INGRES_EXT_VERSION (chaîne de caractères)
Spécifie la version de l'extension Ingres. Disponible depuis la version 1.2.0 de l'extension PECL.
INGRES_API_VERSION (entier)
Spécifie la version de Ingres OpenAPI. Disponible depuis la version 1.2.0 de l'extension PECL.
INGRES_CURSOR_READONLY (entier)
Spécifie si les curseurs Ingres sont en mode lecture seule. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres.cursor_mode.
INGRES_CURSOR_UPDATE (entier)
Spécifie si les curseurs Ingres sont en mode écriture. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres.cursor_mode.
INGRES_DATE_MULTINATIONAL (entier)
Équivalent à configure II_DATE_FORMAT à MULTINATIONAL. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_MULTINATIONAL4 (entier)
Équivalent à configure II_DATE_FORMAT à MULTINATIONAL4. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_FINNISH (entier)
Équivalent à configure II_DATE_FORMAT à FINNISH. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_ISO (entier)
Équivalent à configure II_DATE_FORMAT à ISO. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_ISO4 (entier)
Équivalent à configure II_DATE_FORMAT à ISO4. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_GERMAN (entier)
Équivalent à configure II_DATE_FORMAT à GERMAN. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_MDY (entier)
Équivalent à configure II_DATE_FORMAT à MDY. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_DMY (entier)
Équivalent à configure II_DATE_FORMAT à DMY. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_DATE_YMD (entier)
Équivalent à configure II_DATE_FORMAT à YMD. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_MONEY_LEADING (entier)
Spécifie le symbole monétaire, lorsqu'il est utilisé comme préfixe d'une valeur. Équivalent à configure II_MONEY_FORMAT à L:. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_MONEY_TRAILING (entier)
Spécifie le symbole monétaire, lorsqu'il est utilisé comme suffixe d'une valeur. Équivalent à configure II_MONEY_FORMAT à T:. Disponible depuis la version 1.2.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_set_environment().
INGRES_STRUCTURE_BTREE (entier)
Spécifie la structure de table ou d'index par défaut à BTREE, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_CBTREE (entier)
Spécifie la structure de table ou d'index par défaut à COMPRESSED BTREE, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_HASH (entier)
Spécifie la structure de table ou d'index par défaut à HASH, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_CHASH (entier)
Spécifie la structure de table ou d'index par défaut à COMPRESSED HASH, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_HEAP (entier)
Spécifie la structure de table ou d'index par défaut à HEAP, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_CHEAP (entier)
Spécifie la structure de table ou d'index par défaut à COMPRESSED HEAP, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_ISAM (entier)
Spécifie la structure de table ou d'index par défaut à ISAM, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().
INGRES_STRUCTURE_CISAM (entier)
Spécifie la structure de table ou d'index par défaut à COMPRESSED ISAM, lorsqu'elle est utilisée en combinaison avec les options ou l'option index_structure lors de la connexion. Disponible depuis la version 1.4.0 de l'extension PECL. À utiliser avec ingres_connect(), ingres_pconnect() and ingres_set_environment(). Voyez les options de ingres_connect().


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • Ingres
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

L'exemple suivant montre comment se connecter à une base Ingres, exécuter une requête, afficher le résultat et se déconnecter.

Exemple #1 Exemple simple avec Ingres

<?php
// Connexion et sélection de la base
$link = ingres_connect("database", "user", "password")
    or die("Could not connect: " . ingres_error($link));
echo "Connected successfully";

// Sélection dans une table qui existe dans toutes les bases
$query = "SELECT * FROM iitables";
$result = ingres_query($link,$query) or die("Query failed: " .
ingres_error($link));

// Affichage du résultat au format HTML
// relid : nom de la table
// relowner : propriétaire de la table
echo "<table>\n";
while ($iitables = ingres_fetch_object($result)) {
    echo "\t<tr>\n";
    echo "\t\t<td>" . $iitables->relid . "</td>\n";
    echo "\t\t<td>" . $iitables->relowner . "</td>\n";
    echo "\t</tr>\n";
}
echo "</table>\n";

// Libération des résultats
ingres_free_result($result);

// Validation de la transaction
ingres_commit($link);

// Fermeture de la connexion
ingres_close($link);
?>


Fonctions Ingres

Sommaire

  • ingres_autocommit_state — Vérifie si la connexion utilise l'autocommit
  • ingres_autocommit — Active ou désactive le mode autocommit
  • ingres_charset — Retourne le jeu de caractères utilisé par Ingres
  • ingres_close — Ferme une connexion à un serveur Ingres
  • ingres_commit — Valide une transaction
  • ingres_connect — Ouvre une connexion sur un serveur Ingres
  • ingres_cursor — Récupère le nom du curseur pour une ressource de résultats donnée
  • ingres_errno — Récupère le dernier numéro d'erreur d'Ingres généré
  • ingres_error — Lit le dernier message d'erreur Ingres
  • ingres_errsqlstate — Récupère le dernier code SQLSTATE généré
  • ingres_escape_string — Protège les caractères spéciaux de Ingres
  • ingres_execute — Exécute une commande préparée Ingres
  • ingres_fetch_array — Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc — Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object — Récupère une ligne de résultat dans un objet
  • ingres_fetch_proc_return — Lit le résultat d'un appel à une procédure stockée
  • ingres_fetch_row — Récupère une ligne de résultat dans un tableau énuméré
  • ingres_field_length — Retourne la taille d'un champ
  • ingres_field_name — Retourne le nom d'un champ dans le résultat d'une requête Ingres
  • ingres_field_nullable — Teste si un champ est annulable
  • ingres_field_precision — Retourne la précision d'un champ Ingres
  • ingres_field_scale — Retourne l'échelle d'un champ
  • ingres_field_type — Retourne le type d'un champ dans le résultat d'une requête Ingres
  • ingres_free_result — Libère les ressources d'un résultat Ingres
  • ingres_next_error — Lit l'erreur Ingres suivante
  • ingres_num_fields — Retourne le nombre de champs renvoyés par la dernière requête Ingres
  • ingres_num_rows — Retourne le nombre de lignes affectées ou renvoyées par une requête Ingres
  • ingres_pconnect — Ouvre une connexion persistante à un serveur Ingres
  • ingres_prepare — Prépare une requête pour l'exécution
  • ingres_query — Envoie une requête SQL à Ingres
  • ingres_result_seek — Change la position de lecture des données
  • ingres_rollback — Annule une transaction Ingres
  • ingres_set_environment — Configure les directives contrôlant les résultats Ingres
  • ingres_unbuffered_query — Envoie une requête sans buffer à Ingres


Vérifie si la connexion utilise l'autocommit

  • « Fonctions Ingres
  • ingres_autocommit »
  • PHP Manual
  • Fonctions Ingres
  • Vérifie si la connexion utilise l'autocommit

ingres_autocommit_state

(PECL ingres >= 2.0.0)

ingres_autocommit_state — Vérifie si la connexion utilise l'autocommit

Description

bool ingres_autocommit_state ( resource $link )

ingres_autocommit_state() sert à déterminer si la connexion actuelle utilise l'autocommit ou non.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Retourne TRUE si l'autocommit est activé, et FALSE sinon.

Voir aussi

  • ingres_autocommit() - Active ou désactive le mode autocommit
  • ingres_query() - Envoie une requête SQL à Ingres


Active ou désactive le mode autocommit

  • « ingres_autocommit_state
  • ingres_charset »
  • PHP Manual
  • Fonctions Ingres
  • Active ou désactive le mode autocommit

ingres_autocommit

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_autocommit — Active ou désactive le mode autocommit

Description

bool ingres_autocommit ( resource $link )

ingres_autocommit() est appelée juste avant l'ouverture d'une transaction (avant le premier appel à ingres_query() ou juste après un appel à ingres_rollback() ou ingres_commit()) pour changer l'état du mode autocommit (ce mode fonctionne comme une bascule). Lorsque le script débute le mode autocommit est toujours désactivé.

Pour savir si l'autocommit est activé, utilisez la fonction ingres_autocommit_state().

Par défaut, Ingres va annuler toute transaction qui n'est pas validée à la fin d'une requête. Utilisez cette fonction ou ingres_autocommit() pour vous assurer que vos requêtes sont bien enregistrées dans la base.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ingres_autocommit_state() - Vérifie si la connexion utilise l'autocommit
  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_rollback() - Annule une transaction Ingres
  • ingres_commit() - Valide une transaction


Retourne le jeu de caractères utilisé par Ingres

  • « ingres_autocommit
  • ingres_close »
  • PHP Manual
  • Fonctions Ingres
  • Retourne le jeu de caractères utilisé par Ingres

ingres_charset

(PECL ingres >= 2.1.0)

ingres_charset — Retourne le jeu de caractères utilisé par Ingres

Description

string ingres_charset ( resource $link )

ingres_charset() retourne le jeu de caractères utilisé par le client Ingres, parmi les jeux II_CHARSETxx (où xx est le code d'installation).

Note:

Vous pouvez modifier la valeur retournée par cette fonction avec la fonction putenv(). Changer la valeur de II_CHARSETxx lorsque Ingres est en fonctionnement peut conduire à de la corruption de données.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Retourne la chaîne avec une valeur II_CHARSETxx ou NULL si la valeur n'a pas pu être déterminée.

Exemples

Exemple #1 Exemple avec ingres_charset()

<?php
$link = ingres_connect($database, $user, $password);

echo ingres_charset($link) . "\n";

ingres_close($link);
?>

Voir aussi

  • ingres_connect() - Ouvre une connexion sur un serveur Ingres
  • ingres_query() - Envoie une requête SQL à Ingres


Ferme une connexion à un serveur Ingres

  • « ingres_charset
  • ingres_commit »
  • PHP Manual
  • Fonctions Ingres
  • Ferme une connexion à un serveur Ingres

ingres_close

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_close — Ferme une connexion à un serveur Ingres

Description

bool ingres_close ( resource $link )

ingres_close() ferme la connexion au serveur Ingres associée au lien link.

Habituellement l'appel à ingres_close() n'est pas nécessaire, car il ne ferme pas les connexions persistantes, et toutes les connexions non-persistantes sont automatiquement fermées à la fin du script.

Liste de paramètres

link

La ressource de connexion.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ingres_connect() - Ouvre une connexion sur un serveur Ingres
  • ingres_pconnect() - Ouvre une connexion persistante à un serveur Ingres


Valide une transaction

  • « ingres_close
  • ingres_connect »
  • PHP Manual
  • Fonctions Ingres
  • Valide une transaction

ingres_commit

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_commit — Valide une transaction

Description

bool ingres_commit ( resource $link )

ingres_commit() valide la transaction ouverte, ce qui rend permanentes toutes les modifications faites sur la base de données au cours de cette transaction.

Cette fonction ferme la transaction. Une nouvelle transaction peut être ouverte en envoyant une requête à l'aide de ingres_query().

Vous pouvez aussi faire en sorte que le serveur valide automatiquement les changements après chaque requête en appelant ingres_autocommit() avant l'ouverture d'une transaction.

Par défaut, Ingres va annuler toute transaction qui n'est pas validée à la fin d'une requête. Utilisez cette fonction ou ingres_autocommit() pour vous assurer que vos requêtes sont bien enregistrées dans la base.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_rollback() - Annule une transaction Ingres
  • ingres_autocommit() - Active ou désactive le mode autocommit


Ouvre une connexion sur un serveur Ingres

  • « ingres_commit
  • ingres_cursor »
  • PHP Manual
  • Fonctions Ingres
  • Ouvre une connexion sur un serveur Ingres

ingres_connect

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_connect — Ouvre une connexion sur un serveur Ingres

Description

resource ingres_connect ([ string $database [, string $username [, string $password [, array $options ]]]] )

ingres_connect() ouvre une connexion avec la base de données database.

La connexion est fermée lorsque le script se termine ou en cas d'appel à ingres_close().

Liste de paramètres

Si certains paramètres sont manquants, ingres_connect() utilise les valeurs de ingres.default_database, ingres.default_user et ingres.default_password indiquées dans php.ini.

database

Le nom de la base de données.

Doit suivre la syntaxe : [node_id::]dbname[/svr_class].

username

Le nom d'utilisateur Ingres

password

Le mot de passe associé avec l'utilisateur username

options

Options d'ingres_connect()

Nom de l'option | Option type | Description | Exemple
date_century_boundary | entier | Le seuil pour lequel une année sur 2 chiffres est déterminée pour être dans le siècle courant ou dans le siècle prochain. Identique à II_DATE_CENTURY_BOUNDARY. | 50
group | chaîne de caractères | Spécifie d'identifiant de groupe de l'utilisateur. Équivaut à l'option "-G" | payroll
role | chaîne de caractères | L'identifiant du rôle de l'application. Si un mot de passe de rôle est nécessaire, la valeur du paramètre devra être spécifiée sous la forme "rôle/mot de passe"
effective_user | chaîne de caractères | Le compte utilisateur Ingres à personnifier. Équivalent à l'option "-u" | un_autre_utilisateur
dbms_password | chaîne de caractères | Le mot de passe interne de la base de données pour l'utilisateur se connectant à Ingres | s3cr3t
table_structure chaîne de caractères

La structure par défaut pour les nouvelles tables. Les valeurs valides pour table_structure sont :

  • INGRES_STRUCTURE_BTREE
  • INGRES_STRUCTURE_HASH
  • INGRES_STRUCTURE_HEAP
  • INGRES_STRUCTURE_ISAM
  • INGRES_STRUCTURE_CBTREE
  • INGRES_STRUCTURE_CISAM
  • INGRES_STRUCTURE_CHASH
  • INGRES_STRUCTURE_CHEAP

 INGRES_STRUCTURE_BTREE
index_structure chaîne de caractères

La structure par défaut pour les indexes secondaires. Les valeurs valides pour index_structure sont :

  • INGRES_STRUCTURE_CBTREE
  • INGRES_STRUCTURE_CISAM
  • INGRES_STRUCTURE_CHASH
  • INGRES_STRUCTURE_BTREE
  • INGRES_STRUCTURE_HASH
  • INGRES_STRUCTURE_ISAM

 INGRES_STRUCTURE_HASH
login_local | booléen | Détermine la façon dont sont traités l'identifiant de l'utilisateur et le mot de passe lorsqu'un VNODE est inclus dans la chaîne cible de la base de données. Si définit à TRUE, l'identifiant de l'utilisateur et le mot de passe sont utilisés pour accéder localement au VNODE et les informations d'identification du VNODE sont utilisées pour établir la connexion DBMS. Si définit à FALSE, l'identifiant du processus utilisateur est utilisé pour accéder au VNODE et l'identifiant de l'utilisateur pour la connexion et le mot de passe sont utilisés à la place des informations d'identification VNODE pour établir la connexion DBMS. Ce paramètre est ignoré si aucun VNODE n'est inclus dans la chaîne cible de la base de données. Par défaut, ce paramètre vaut FALSE. | TRUE
timezone | chaîne de caractères | Contrôle le fuseau horaire de la session. Si aucun n'est défini, ce paramètre vaudra la valeur définie par la constante II_TIMEZONE_NAME. Si la constante II_TIMEZONE_NAME n'est pas définie, la valeur NA-PACIFIC (GMT-8) sera utilisée.
date_format entier

Définit les formats d'entrée et de sortie autorisées pour les dates Ingres. Par défaut, la valeur est définie par la constante II_DATE_FORMAT. Si la constante II_DATE_FORMAT n'est pas définie, le format par défaut de la date sera US, e.g. mm/dd/yy. Les valeurs valides pour date_format sont :

  • INGRES_DATE_DMY
  • INGRES_DATE_FINISH
  • INGRES_DATE_GERMAN
  • INGRES_DATE_ISO
  • INGRES_DATE_ISO4
  • INGRES_DATE_MDY
  • INGRES_DATE_MULTINATIONAL
  • INGRES_DATE_MULTINATIONAL4
  • INGRES_DATE_YMD
  • INGRES_DATE_US

 INGRES_DATE_MULTINATIONAL4
decimal_separator chaîne de caractères Le caractère utilisé comme séparateur des décimales ","
money_lort entier

Si le signe pour la monnaie doit se trouver avant ou après la valeur. Les valeurs valides pour money_lort sont :

  • INGRES_MONEY_LEADING
  • INGRES_MONEY_TRAILING

 INGRES_MONEY_TRAILING
money_sign chaîne de caractères Le symbole à utiliser avec le type de données MONEY €
money_precision | entier | La précision pour le type de données MONEY | 3
float4_precision | entier | La précision pour le type de données FLOAT4 | 10
float8_precision | entier | La précision pour le type de données FLOAT8 | 10
blob_segment_length | entier | La quantité de données à récupérer en une fois lorsque l'on récupère des données de type BLOB/CLOB. Par défaut, ce paramètre vaut 4096 octets. | 8192

Valeurs de retour

Retourne une ressource Ingres en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ingres_connect()

<?php
$link = ingres_connect("mydb", "user", "pass")
    or die("Connexion impossible");
echo "Connexion réussie";
ingres_close($link);
?>

Voir aussi

  • ingres_pconnect() - Ouvre une connexion persistante à un serveur Ingres
  • ingres_close() - Ferme une connexion à un serveur Ingres


Récupère le nom du curseur pour une ressource de résultats donnée

  • « ingres_connect
  • ingres_errno »
  • PHP Manual
  • Fonctions Ingres
  • Récupère le nom du curseur pour une ressource de résultats donnée

ingres_cursor

(PECL ingres >= 1.1.0)

ingres_cursor — Récupère le nom du curseur pour une ressource de résultats donnée

Description

string ingres_cursor ( resource $result )

ingres_cursor() retourne une chaîne de caractères contenant le nom du curseur actif. Si aucun curseur n'est actif, alors NULL est retourné.

Liste de paramètres

result

La ressource de connexion Ingres

Valeurs de retour

Retourne une chaîne de caractères contenant le nom du curseur actif. Si aucun curseur n'est actif, NULL est retourné.

Exemples

Exemple #1 Exemple avec ingres_cursor()

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_prepare($link, "select * from table");

$cursor_name = ingres_cursor($result);

echo $cursor_name;

?>

Voir aussi

  • ingres_prepare() - Prépare une requête pour l'exécution
  • ingres_execute() - Exécute une commande préparée Ingres


Récupère le dernier numéro d'erreur d'Ingres généré

  • « ingres_cursor
  • ingres_error »
  • PHP Manual
  • Fonctions Ingres
  • Récupère le dernier numéro d'erreur d'Ingres généré

ingres_errno

(PECL ingres >= 1.1.0)

ingres_errno — Récupère le dernier numéro d'erreur d'Ingres généré

Description

int ingres_errno ([ resource $link ] )

ingres_errno() retourne le dernier numéro d'erreur. Si aucune erreur n'a été rapportée, 0 est retourné.

Si une ressource link est passée à la fonction ingres_errno(), elle retourne la dernière erreur enregistrée pour ce lien. Si aucun lien n'est passé alors ingres_errno() retourne la dernière erreur en utilisant le lien par défaut.

La fonction, ingres_errno(), devrait toujours être appelée après avoir exécuté n'importe quelle requête à la base de données. Un appel d'une autre fonction avant d'appeler ingres_errno() supprimerait ou changerait le message d'erreur provenant du dernier appel de fonction Ingres.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Retourne un entier contenant le numéro de la dernière erreur. Si aucune erreur n'a été rapportée, 0 est retourné.

Exemples

Exemple #1 Exemple avec ingres_errno()

<?php
$link = ingres_connect($database, $user, $password);

ingres_query("select * from table", $link);

$error_code = ingres_errno($link);

if ( $error_code != 0 ) {
   echo "Une erreur est survenue - " . $error_code;
}
?>

Voir aussi

  • ingres_error() - Lit le dernier message d'erreur Ingres
  • ingres_errsqlstate() - Récupère le dernier code SQLSTATE généré
  • ingres_next_error() - Lit l'erreur Ingres suivante


Lit le dernier message d'erreur Ingres

  • « ingres_errno
  • ingres_errsqlstate »
  • PHP Manual
  • Fonctions Ingres
  • Lit le dernier message d'erreur Ingres

ingres_error

(PECL ingres >= 1.1.0)

ingres_error — Lit le dernier message d'erreur Ingres

Description

string ingres_error ([ resource $link ] )

ingres_error() retourne une chaîne de caractères contenant la dernière erreur ou NULL si aucune erreur ne s'est produite.

Si une ressource link est passée à la fonction ingres_error(), elle retourne la dernière erreur enregistrée pour ce lien. Si aucun lien n'est passé alors ingres_error() retourne la dernière erreur en utilisant le lien par défaut.

La fonction, ingres_error(), devrait toujours être appelée après avoir exécuté toute sorte de requête à la base de données. Un appel d'une autre fonction avant d'appeler ingres_error() supprimera ou changera le message d'erreur provenant du dernier appel de fonction Ingres.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Retourne une chaîne contenant la dernière erreur, ou NULL si aucune n'est survenue.

Exemples

Exemple #1 Exemple avec ingres_error()

<?php
ingres_connect($database, $user, $password);

$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

$error_text = ingres_error();

if (!is_null($error_text)) {
   echo "Une erreur est survenue : " . $error_text;
}
?>

Voir aussi

  • ingres_errno() - Récupère le dernier numéro d'erreur d'Ingres généré
  • ingres_errsqlstate() - Récupère le dernier code SQLSTATE généré
  • ingres_next_error() - Lit l'erreur Ingres suivante


Récupère le dernier code SQLSTATE généré

  • « ingres_error
  • ingres_escape_string »
  • PHP Manual
  • Fonctions Ingres
  • Récupère le dernier code SQLSTATE généré

ingres_errsqlstate

(PECL ingres >= 1.1.0)

ingres_errsqlstate — Récupère le dernier code SQLSTATE généré

Description

string ingres_errsqlstate ([ resource $link ] )

ingres_errsqlstate() retourne une chaîne de caractères contenant le dernier SQLSTATE ou NULL si aucune erreur ne s'est produite.

Si une ressource link est passée à la fonction ingres_errsqlstate(), elle retourne la dernière erreur enregistrée pour ce lien. Si aucun lien n'est passé alors ingres_errsqlstate() retourne la dernière erreur en utilisant le lien par défaut.

La fonction, ingres_errsqlstate(), devrait toujours être appelée après avoir exécuté toute sorte de requête à la base de données. Un appel d'une autre fonction avant d'appeler ingres_errsqlstate() supprimera ou changera le message d'erreur provenant du dernier appel de fonction Ingres.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Retourne une chaîne contenant la dernière SQLSTATE, ou NULL si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec ingres_errsqlstate()

<?php
ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

$error_sqlstate = ingres_errsqlstate($link);

if (!is_null($error_sqlstate)) {
   echo "Une erreur est survenue - " . $error_sqlstate;
}
?>

Voir aussi

  • ingres_errno() - Récupère le dernier numéro d'erreur d'Ingres généré
  • ingres_error() - Lit le dernier message d'erreur Ingres
  • ingres_next_error() - Lit l'erreur Ingres suivante


Protège les caractères spéciaux de Ingres

  • « ingres_errsqlstate
  • ingres_execute »
  • PHP Manual
  • Fonctions Ingres
  • Protège les caractères spéciaux de Ingres

ingres_escape_string

(PECL ingres >= 2.1.0)

ingres_escape_string — Protège les caractères spéciaux de Ingres

Description

string ingres_escape_string ( resource $link , string $source_string )

ingres_escape_string() protège les caractères spéciaux de Ingres dans une chaîne, avant de l'envoyer au serveur.

Liste de paramètres

link

La ressource de connexion au serveur

source_string

La chaîne à protéger

Valeurs de retour

Retourne la chaîne avec les caractères protégés

Exemples

Exemple #1 Protège les caractères spéciaux avant de les utiliser avec Ingres

<?php
$link = ingres_connect($database, $user, $password);

$last_name = "O'Connor";

$sql = sprintf("select * from user_profile where up_last = '%s'", ingres_escape_string( $link, $last_name));

$result = ingres_query($link, $sql);

while ($user = ingres_fetch_object($result))
{
  echo $user->up_first . '<BR/>';
}

ingres_commit($link);

ingres_close($link);

?>

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres


Exécute une commande préparée Ingres

  • « ingres_escape_string
  • ingres_fetch_array »
  • PHP Manual
  • Fonctions Ingres
  • Exécute une commande préparée Ingres

ingres_execute

(PECL ingres >= 1.1.0)

ingres_execute — Exécute une commande préparée Ingres

Description

bool ingres_execute ( resource $result [, array $params [, string $types ]] )

ingres_execute() exécute une requête préparée avec ingres_prepare().

Note: Configurations associées

Voyez aussi les directives ingres.describe, ingres.scrollable et ingres.utf8 dans les configurations à l'exécution.

Liste de paramètres

result

La ressource de résultat Ingres

params

Un tableau de paramètres à utiliser avec la requête

types

Une chaîne contenant une séquence de types pour formater les valeurs des paramètres. Voyez les types dans la documentation de la fonction ingres_query() pour connaître la liste des codes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ingres_unbuffered_query() - Envoie une requête sans buffer à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré
  • ingres_commit() - Valide une transaction
  • ingres_rollback() - Annule une transaction Ingres
  • ingres_autocommit() - Active ou désactive le mode autocommit
  • ingres_set_environment() - Configure les directives contrôlant les résultats Ingres
  • ingres_errno() - Récupère le dernier numéro d'erreur d'Ingres généré
  • ingres_error() - Lit le dernier message d'erreur Ingres


Récupère une ligne de résultat Ingres dans un tableau

  • « ingres_execute
  • ingres_fetch_assoc »
  • PHP Manual
  • Fonctions Ingres
  • Récupère une ligne de résultat Ingres dans un tableau

ingres_fetch_array

( PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_fetch_array — Récupère une ligne de résultat Ingres dans un tableau

Description

array ingres_fetch_array ( resource $result [, int $result_type ] )

ingres_fetch_array() est une version améliorée de ingres_fetch_row(). En plus de stocker les données dans un tableau à indices numériques, elle peut aussi les enregistrer dans un tableau associatif, en utilisant les noms des champs comme indices.

Si plusieurs colonnes ont le même nom, la dernière colonne aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez utiliser l'index numérique, ou faire un alias pour chaque colonne. Par exemple :

<?php

$result = ingres_query($link, "select ap_place as city, ap_ccode as country from airport where ap_iatacode = 'VLL'");
$result = ingres_fetch_array($result);
$foo = $result["city"];
$bar = $result["country"];

?>

Du point de vue de la rapidité, cette fonction est identique à ingres_fetch_object(), et presque aussi rapide que ingres_fetch_row() (la différence est insignifiante).

Par défaut, les index numériques des tableaux créés avec la fonction ingres_fetch_array() commencent à 1, qui est le premier champ du résultat. Ce n'est pas la pratique avec les autres bases de données, qui commencent la numérotation à 0. Pour changer cette valeur, voyez ingres.array_index_start. À utiliser avec ingres_fetch_array().

Note: Directives de configurations associées

Voyez aussi ingres.array_index_start, ingres.fetch_buffer_size et les directives ingres.utf8 dans les configurations à l'exécution.

Liste de paramètres

result

La ressource de résultats

result_type

result_type peut valoir INGRES_NUM pour un tableau à index numériques, INGRES_ASSOC pour un tableau associatif, ou INGRES_BOTH (défaut) pour un tableau mixte (accessible selon les deux méthodes).

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

Exemples

Exemple #1 Exemple avec ingres_fetch_array()

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link,"select * from table");

while ($row = ingres_fetch_array($result)) {
    echo $row["user_id"];  // utilisation du tableau associatif
    echo $row["fullname"];
    echo $row[1];          // utilisation du tableau à indices numériques
    echo $row[2];
}
?>

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_num_fields() - Retourne le nombre de champs renvoyés par la dernière requête Ingres
  • ingres_field_name() - Retourne le nom d'un champ dans le résultat d'une requête Ingres
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré


Récupère une ligne de résultat dans un tableau associatif

  • « ingres_fetch_array
  • ingres_fetch_object »
  • PHP Manual
  • Fonctions Ingres
  • Récupère une ligne de résultat dans un tableau associatif

ingres_fetch_assoc

(PECL ingres >= 2.2.2)

ingres_fetch_assoc — Récupère une ligne de résultat dans un tableau associatif

Description

array ingres_fetch_assoc ( resource $result )

Cette fonction stocke les données récupérées depuis une requête exécutée en utilisant la fonction ingres_query() dans un tableau associatif, en utilisant les noms des champs comme clés.

D'un point de vue rapidité, cette fonction est identique à la fonction ingres_fetch_object(), et presque aussi rapide que la fonction ingres_fetch_row() (la différence est insignifiante).

Par défaut, les tableaux créés avec la fonction ingres_fetch_assoc() commence à la position 1 et non 0 comme cela est souvent le cas avec les extensions relatives aux bases de données. La position de départ peut être mise à 0 en utilisant le paramètre de configuration ingres.array_index_start.

Note: Configurations associées

Voir aussi les directives ingres.array_index_start, ingres.fetch_buffer_size et ingres.utf8 dans la configuration lors de l'exécution.

Liste de paramètres

result

L'identifiant de résultat

Valeurs de retour

Retourne un tableau associatif correspondant à la ligne récupérée, ou FALSE s'il n'y a plus de lignes de disponible.

Exemples

Exemple #1 Récupère une ligne dans un tableau associatif

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link,"select * from table");
while ($row = ingres_fetch_assoc($result)) {
    echo $row["user_id"];  // utilisant du tableau associatif
    echo $row["fullname"];
}
?>

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_num_fields() - Retourne le nombre de champs renvoyés par la dernière requête Ingres
  • ingres_field_name() - Retourne le nom d'un champ dans le résultat d'une requête Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré


Récupère une ligne de résultat dans un objet

  • « ingres_fetch_assoc
  • ingres_fetch_proc_return »
  • PHP Manual
  • Fonctions Ingres
  • Récupère une ligne de résultat dans un objet

ingres_fetch_object

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_fetch_object — Récupère une ligne de résultat dans un objet

Description

object ingres_fetch_object ( resource $result [, int $result_type ] )

ingres_fetch_object() est similaire à ingres_fetch_array(), avec une différence : la valeur de retour est un objet et non un tableau. Indirectement, cela signifie qu'il n'est possible d'accéder aux données qu'avec les noms des champs, et pas avec leur numéro (les nombres ne sont pas des noms valides de propriété).

Du point de vue de la rapidité, cette fonction est identique à ingres_fetch_array(), et presque aussi rapide que ingres_fetch_row() (la différence est insignifiante).

Note: Configurations associées

Voyez aussi les directives ingres.fetch_buffer_size et ingres.utf8 dans les configurations à l'exécution.

Liste de paramètres

link

La ressource de connexion.

result_type

Le paramètre optionnel result_type est une constante qui peut prendre les valeurs INGRES_ASSOC, INGRES_NUM, et INGRES_BOTH.

Valeurs de retour

Retourne un objet qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

Exemples

Exemple #1 Exemple avec ingres_fetch_object()

<?php
$link = ingres_connect($database, $user, $password);
$result = ingres_query($link, "select * from table");
while ($row = ingres_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
?>

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_num_fields() - Retourne le nombre de champs renvoyés par la dernière requête Ingres
  • ingres_field_name() - Retourne le nom d'un champ dans le résultat d'une requête Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré


Lit le résultat d'un appel à une procédure stockée

  • « ingres_fetch_object
  • ingres_fetch_row »
  • PHP Manual
  • Fonctions Ingres
  • Lit le résultat d'un appel à une procédure stockée

ingres_fetch_proc_return

(PECL ingres >= 1.4.0)

ingres_fetch_proc_return — Lit le résultat d'un appel à une procédure stockée

Description

int ingres_fetch_proc_return ( resource $result )

ingres_fetch_proc_return() lit le résultat retourné par une procédure stockée Ingres.

Note:

Si cette fonction est utilisée avec une procédure stockée qui produit des lignes, elle doit être appelée après que toute les lignes de la procédure ait été lues avec ingres_fetch_array(), ingres_fetch_object() ou ingres_fetch_row(). Cette fonction va éliminer toutes les lignes qui n'ont pas encore été lues.

Liste de paramètres

result

La ressource de résultat Ingres

Valeurs de retour

Retourne un entier s'il y a une valeur à retourner, et sinon, retourne NULL.

Exemples

Exemple #1 Lit la valeur retournée par une procédure stockée Ingres

<?php

$link = ingres_connect($database);

if ( ingres_errno() != 0 ) {
    $error_text = ingres_error();
    die($error_text);
}

$result = ingres_query($link, "execute procedure php_proc (value = 1000)");

if ( ingres_errno() != 0 ) {
    $error_text = ingres_error();
    die($error_text);
}

echo "return value - " . ingres_fetch_proc_return($result) . "\n";

ingres_close($link);

?>

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré


Récupère une ligne de résultat dans un tableau énuméré

  • « ingres_fetch_proc_return
  • ingres_field_length »
  • PHP Manual
  • Fonctions Ingres
  • Récupère une ligne de résultat dans un tableau énuméré

ingres_fetch_row

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_fetch_row — Récupère une ligne de résultat dans un tableau énuméré

Description

array ingres_fetch_row ( resource $result )

ingres_fetch_row() renvoie un tableau correspondant à la ligne récupérée, ou FALSE s'il n'y a plus de ligne à récupérer. La ligne est stockée dans un tableau à indices numériques, le premier champ étant à l'indice 1.

Les appels successifs à ingres_fetch_row() retournent les lignes suivantes du résultat, ou FALSE s'il n'y a plus de lignes.

Par défaut, les index numériques commencent à 1, qui est le premier champ du résultat. Ce n'est pas la pratique avec les autres bases de données, qui commencent la numérotation à 0. Pour changer cette valeur, voyez ingres.array_index_start. À utiliser avec ingres_fetch_array().

Note: Directives de configurations associées

Voyez aussi ingres.array_index_start, ingres.fetch_buffer_size et les directives ingres.utf8 dans les configurations à l'exécution.

Liste de paramètres

result

La ressource de connexion Ingres

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

Exemples

Exemple #1 Exemple avec ingres_fetch_row()

<?php
ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Voir aussi

  • ingres_num_fields() - Retourne le nombre de champs renvoyés par la dernière requête Ingres
  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet


Retourne la taille d'un champ

  • « ingres_fetch_row
  • ingres_field_name »
  • PHP Manual
  • Fonctions Ingres
  • Retourne la taille d'un champ

ingres_field_length

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_length — Retourne la taille d'un champ

Description

int ingres_field_length ( resource $result , int $index )

ingres_field_length() retourne la taille d'un champ. Il s'agit du nombre d'octets utilisés par le serveur pour stocker ce champ. Pour plus d'informations, voir le OpenAPI User Guide, Appendice "Data Types".

Note: Configurations connexes

Voir ingres.array_index_start dans la configuration à l'exécution

Liste de paramètres

result

La ressource de résultat Ingres

index

index est l'indexe du champ à récupérer.

Les valeurs possibles de index dépendent de la valeur de ingres.array_index_start. Si ingres.array_index_start vaut 1 (par défaut), alors index doit être compris entre 1 et la valeur retournée par la fonction ingres_num_fields(). Si ingres.array_index_start vaut 0, alors index doit être compris entre 0 et la valeur retournée par la fonction ingres_num_fields() - 1.

Valeurs de retour

Retourne la taille du champ.

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré


Retourne le nom d'un champ dans le résultat d'une requête Ingres

  • « ingres_field_length
  • ingres_field_nullable »
  • PHP Manual
  • Fonctions Ingres
  • Retourne le nom d'un champ dans le résultat d'une requête Ingres

ingres_field_name

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_name — Retourne le nom d'un champ dans le résultat d'une requête Ingres

Description

string ingres_field_name ( resource $result , int $index )

ingres_field_name() retourne le nom d'un champ dans le résultat d'une requête.

Note: Configurations connexes

Voir ingres.array_index_start dans la configuration à l'exécution

Liste de paramètres

result

La ressource de résultat Ingres

index

index est l'indexe du champ à récupérer.

Les valeurs possibles de index dépendent de la valeur de ingres.array_index_start. Si ingres.array_index_start vaut 1 (par défaut), alors index doit être compris entre 1 et la valeur retournée par la fonction ingres_num_fields(). Si ingres.array_index_start vaut 0, alors index doit être compris entre 0 et la valeur retournée par la fonction ingres_num_fields() - 1.

Valeurs de retour

Retourne le nom du champ dans le résultat d'une requête, ou FALSE si une erreur survient.

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré


Teste si un champ est annulable

  • « ingres_field_name
  • ingres_field_precision »
  • PHP Manual
  • Fonctions Ingres
  • Teste si un champ est annulable

ingres_field_nullable

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_nullable — Teste si un champ est annulable

Description

bool ingres_field_nullable ( resource $result , int $index )

ingres_field_nullable() test si un champ est annulable.

Note: Configurations connexes

Voir ingres.array_index_start dans la configuration à l'exécution

Liste de paramètres

result

La ressource de résultat Ingres

index

index est l'indexe du champ à récupérer.

Les valeurs possibles de index dépendent de la valeur de ingres.array_index_start. Si ingres.array_index_start vaut 1 (par défaut), alors index doit être compris entre 1 et la valeur retournée par la fonction ingres_num_fields(). Si ingres.array_index_start vaut 0, alors index doit être compris entre 0 et la valeur retournée par la fonction ingres_num_fields() - 1.

Valeurs de retour

ingres_field_nullable() retourne TRUE si le champ peut recevoir la valeur NULL et FALSE sinon.

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré


Retourne la précision d'un champ Ingres

  • « ingres_field_nullable
  • ingres_field_scale »
  • PHP Manual
  • Fonctions Ingres
  • Retourne la précision d'un champ Ingres

ingres_field_precision

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_precision — Retourne la précision d'un champ Ingres

Description

int ingres_field_precision ( resource $result , int $index )

ingres_field_precision() retourne la précision d'un champ. Cette valeur est utilisée uniquement pour les types de données SQL decimal, float et money. Pour plus d'informations, voir le OpenAPI User Guide, Appendice "Data Types".

Note: Configurations connexes

Voir ingres.array_index_start dans la configuration à l'exécution

Liste de paramètres

result

La ressource de connexion Ingres

index

index est l'indexe du champ à récupérer.

Les valeurs possibles de index dépendent de la valeur de ingres.array_index_start. Si ingres.array_index_start vaut 1 (par défaut), alors index doit être compris entre 1 et la valeur retournée par la fonction ingres_num_fields(). Si ingres.array_index_start vaut 0, alors index doit être compris entre 0 et la valeur retournée par la fonction ingres_num_fields() - 1.

Valeurs de retour

Retourne la précision du champ, sous la forme d'un entier.

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré


Retourne l'échelle d'un champ

  • « ingres_field_precision
  • ingres_field_type »
  • PHP Manual
  • Fonctions Ingres
  • Retourne l'échelle d'un champ

ingres_field_scale

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_scale — Retourne l'échelle d'un champ

Description

int ingres_field_scale ( resource $result , int $index )

ingres_field_scale() retourne l'échelle d'un champ. Cette valeur n'est utilisée que pour le type de données SQL décimal. Pour plus d'informations, voir le OpenAPI User Guide, Appendice "Data Types".

Note: Configurations connexes

Voir ingres.array_index_start dans la configuration à l'exécution

Liste de paramètres

result

La ressource de résultat Ingres

index

index est l'indexe du champ à récupérer.

Les valeurs possibles de index dépendent de la valeur de ingres.array_index_start. Si ingres.array_index_start vaut 1 (par défaut), alors index doit être compris entre 1 et la valeur retournée par la fonction ingres_num_fields(). Si ingres.array_index_start vaut 0, alors index doit être compris entre 0 et la valeur retournée par la fonction ingres_num_fields() - 1.

Valeurs de retour

Retourne l'échelle d'un champ, sous la forme d'un entier.

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré


Retourne le type d'un champ dans le résultat d'une requête Ingres

  • « ingres_field_scale
  • ingres_free_result »
  • PHP Manual
  • Fonctions Ingres
  • Retourne le type d'un champ dans le résultat d'une requête Ingres

ingres_field_type

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_type — Retourne le type d'un champ dans le résultat d'une requête Ingres

Description

string ingres_field_type ( resource $result , int $index )

Retourne le type d'un champ dans le résultat d'une requête.

Note: Configurations connexes

Voir ingres.array_index_start dans la configuration à l'exécution

Liste de paramètres

resultat

La ressource de résultat Ingres

index

index est l'indexe du champ à récupérer.

Les valeurs possibles de index dépendent de la valeur de ingres.array_index_start. Si ingres.array_index_start vaut 1 (par défaut), alors index doit être compris entre 1 et la valeur retournée par la fonction ingres_num_fields(). Si ingres.array_index_start vaut 0, alors index doit être compris entre 0 et la valeur retournée par la fonction ingres_num_fields() - 1.

Valeurs de retour

ingres_field_type() retourne le type d'un champ dans le résultat d'une requête ou FALSE si une erreur survient. Exemples de types renvoyés par cette fonction : IIAPI_BYTE_TYPE, IIAPI_CHA_TYPE, IIAPI_DTE_TYPE, IIAPI_FLT_TYPE, IIAPI_INT_TYPE, IIAPI_VCH_TYPE. Certains de ces types correspondent à plus d'un type SQL, selon la taille du champ (voir ingres_field_length()). Par exemple IIAPI_FLT_TYPE peut être un float4 ou un float8. Pour plus d'informations, voir le OpenAPI User Guide, Appendice C.

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré


Libère les ressources d'un résultat Ingres

  • « ingres_field_type
  • ingres_next_error »
  • PHP Manual
  • Fonctions Ingres
  • Libère les ressources d'un résultat Ingres

ingres_free_result

(PECL ingres >= 2.0.0)

ingres_free_result — Libère les ressources d'un résultat Ingres

Description

bool ingres_free_result ( resource $result )

ingres_free_result() libère les ressources du résultat Ingres result.

Liste de paramètres

result

La ressource de résultat Ingres

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Libération d'un résultat Ingres

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
ingres_free_result($result);

ingres_close($link)

?>

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres


Lit l'erreur Ingres suivante

  • « ingres_free_result
  • ingres_num_fields »
  • PHP Manual
  • Fonctions Ingres
  • Lit l'erreur Ingres suivante

ingres_next_error

(PECL ingres >= 2.0.0)

ingres_next_error — Lit l'erreur Ingres suivante

Description

bool ingres_next_error ([ resource $link ] )

ingres_next_error() lit la prochaine erreur produite par la dernière requête. Chaque appel à ingres_next_error() peut être suivi d'un appel à ingres_errno(), ingres_error() ou ingres_errsqlstate() pour obtenir respectivement le numéro, le message ou le SQL STATE. Tant que ingres_next_error() vaut TRUE, il y a d'autres erreur à lire.

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

ingres_next_error() retourne TRUE s'il y a d'autres erreurs à lire, et FALSE s'il n'y a plus d'autres erreurs.

Voir aussi

  • ingres_errno() - Récupère le dernier numéro d'erreur d'Ingres généré
  • ingres_error() - Lit le dernier message d'erreur Ingres
  • ingres_errsqlstate() - Récupère le dernier code SQLSTATE généré


Retourne le nombre de champs renvoyés par la dernière requête Ingres

  • « ingres_next_error
  • ingres_num_rows »
  • PHP Manual
  • Fonctions Ingres
  • Retourne le nombre de champs renvoyés par la dernière requête Ingres

ingres_num_fields

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_num_fields — Retourne le nombre de champs renvoyés par la dernière requête Ingres

Description

int ingres_num_fields ( resource $result )

ingres_num_fields() retourne le nombre de champs du résultat renvoyé par le serveur Ingres après un appel à ingres_query().

Liste de paramètres

result

La ressource de résultat Ingres

Valeurs de retour

Retourne le nombre de champs.

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré


Retourne le nombre de lignes affectées ou renvoyées par une requête Ingres

  • « ingres_num_fields
  • ingres_pconnect »
  • PHP Manual
  • Fonctions Ingres
  • Retourne le nombre de lignes affectées ou renvoyées par une requête Ingres

ingres_num_rows

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_num_rows — Retourne le nombre de lignes affectées ou renvoyées par une requête Ingres

Description

int ingres_num_rows ( resource $result )

Cette fonction est conçue principalement pour obtenir le nombre de lignes modifiées dans la base de données par la requête précédente. Elle peut être utilisée pour lire le nombre de lignes à lire après une requête SELECT.

Note:

Si les curseurs scrollables sont désactivés, et que cette fonction est appelée avant ingres_fetch_array(), ingres_fetch_object(), ou ingres_fetch_row(), le serveur va effacer les données de résultats, et le script sera incapable de les obtenir.

Il faut dans ce cas récupérer les données du résultat en utilisant une de ces 3 fonctions dans une boucle jusqu'à ce qu'elle renvoie FALSE, ce qui indique qu'il n'y a plus de résultats à récupérer.

Liste de paramètres

link

La ressource de résultats Ingres

Valeurs de retour

Pour les requêtes DELETE, INSERT, UPDATE ingres_num_rows() retourne le nombre de lignes affectées par la requête. Pour les autres requêtes, ingres_num_rows() retourne le nombre de lignes du résultat de la requête.

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré


Ouvre une connexion persistante à un serveur Ingres

  • « ingres_num_rows
  • ingres_prepare »
  • PHP Manual
  • Fonctions Ingres
  • Ouvre une connexion persistante à un serveur Ingres

ingres_pconnect

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_pconnect — Ouvre une connexion persistante à un serveur Ingres

Description

resource ingres_pconnect ([ string $database [, string $username [, string $password [, array $options ]]]] )

ingres_pconnect() ouvre une connexion persistante à la base de données Ingres.

Il n'y a que 2 différences entre ingres_pconnect() et ingres_connect() : tout d'abord, à la connexion, la fonction cherche un lien persistant déjà ouvert avec les mêmes paramètres. Si un tel lien est trouvé, la ressource de ce lien est retournée au lieu d'établir une nouvelle connexion. Ensuite, la connexion vers le serveur Ingres n'est pas fermée lorsque le script se termine. En fait, le lien reste ouvert pour pouvoir être réutilisé (ingres_close() ne ferme pas les liens établis avec ingres_pconnect()). C'est pourquoi ce type de lien est dit 'persistant'.

Liste de paramètres

database

Le nom de la base de données.

Doit suivre la syntaxe suivante : [node_id::]dbname[/svr_class].

username

Le nom d'utilisateur Ingres.

password

Le mot de passe associé à l'utilisateur username.

options

Voyez la fonction ingres_connect() pour connaître la liste des options qui peuvent être passées.

Valeurs de retour

Retourne une ressource de connexion Ingres en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • ingres_connect() - Ouvre une connexion sur un serveur Ingres
  • ingres_close() - Ferme une connexion à un serveur Ingres


Prépare une requête pour l'exécution

  • « ingres_pconnect
  • ingres_query »
  • PHP Manual
  • Fonctions Ingres
  • Prépare une requête pour l'exécution

ingres_prepare

(PECL ingres >= 1.1.0)

ingres_prepare — Prépare une requête pour l'exécution

Description

mixed ingres_prepare ( resource $link , string $query )

ingres_prepare() prépare une requête pour l'exécution avec ingres_execute().

La requête fait alors partie de la transaction courante. S'il n'y a pas de transaction ouverte, ingres_query() en ouvre une nouvelle. Pour fermer la transaction, vous pouvez appeler soit ingres_commit() pour valider les modifications, ou bien ingres_rollback() pour les annuler. Lorsque le script s'achève, toutes les transactions qui n'auront pas été validées, seront annulées, en appelant ingres_rollback(). Vous pouvez aussi utiliser ingres_autocommit() avant d'ouvrir une nouvelle transaction pour forcer la validation immédiate de toutes les requêtes.

Note: Configurations associées

Voyez aussi les directives ingres.describe, ingres.scrollable et ingres.utf8 dans les configurations d'exécution.

Liste de paramètres

link

La ressource de connexion Ingres

query

Une requête SQL valide (voyez le SQL reference guide de la documentation Ingres). Voyez la documentation du paramètre query de la fonction ingres_query() pour une liste de commandes SQL qui ne peuvent pas être exécutées avec ingres_prepare()

Valeurs de retour

ingres_prepare() retourne une ressource de résultat qui peut être utilisée avec ingres_execute() pour exécuter la requête. Pour voir si une erreur est survenue, utilisez ingres_errno(), ingres_error() ou ingres_errsqlstate().

Voir aussi

  • ingres_unbuffered_query() - Envoie une requête sans buffer à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré
  • ingres_commit() - Valide une transaction
  • ingres_rollback() - Annule une transaction Ingres
  • ingres_autocommit() - Active ou désactive le mode autocommit
  • ingres_set_environment() - Configure les directives contrôlant les résultats Ingres
  • ingres_errno() - Récupère le dernier numéro d'erreur d'Ingres généré
  • ingres_error() - Lit le dernier message d'erreur Ingres


Envoie une requête SQL à Ingres

  • « ingres_prepare
  • ingres_result_seek »
  • PHP Manual
  • Fonctions Ingres
  • Envoie une requête SQL à Ingres

ingres_query

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_query — Envoie une requête SQL à Ingres

Description

mixed ingres_query ( resource $link , string $query [, array $params [, string $types ]] )

ingres_query() envoie la requête SQL query au serveur Ingres.

La requête fait alors partie de la transaction courante. S'il n'y a pas de transaction ouverte, ingres_query() en ouvre une nouvelle. Pour fermer la transaction, vous pouvez appeler soit ingres_commit() pour valider les modifications, ou bien ingres_rollback() pour les annuler. Lorsque le script s'achève, toutes les transactions qui n'auront pas été validées, seront annulées, en appelant ingres_rollback(). Vous pouvez aussi utiliser ingres_autocommit() avant d'ouvrir une nouvelle transaction pour forcer la validation immédiate de toutes les requêtes.

Note: Configurations reliées

Voyez aussi les directives ingres.describe, ingres.scrollable ingres.utf8 dans les configurations d'exécutions

Liste de paramètres

link

La ressource de connexion à Ingres

query

Une requête SQL valide (voyez le SQL reference guide de la documentation Ingres).

Les données contenues dans la requête doivent être proprement échappées.

Les requêtes suivantes ne peuvent pas être envoyées à l'aide de cette fonction :

  • close (voyez ingres_close())
  • commit (voyez ingres_commit())
  • connect (voyez ingres_connect())
  • disconnect (voyez ingres_close())
  • get dbevent
  • prepare to commit
  • rollback (voyez ingres_rollback())
  • savepoint
  • set autocommit (voyez ingres_autocommit())
  • toutes les requêtes liées aux curseurs ne sont pas supportées

params

Un tableau de valeurs de paramètres à utiliser avec la requête

types

Une chaîne contenant une séquence de types pour les paramètres fournis à la requête. Lorsque ingres.describe est activé, ce paramètre peut être ignoré car le pilote va lire automatiquement la valeur de ce paramètre auprès du serveur.

Code de type | Type Ingres
a | BOOLEAN
b | BYTE
B | LONG BYTE/BLOB
c | CHAR
d | DATE/ANSIDATE/TIMESTAMP/TIME
f | FLOAT
i | INTEGER
L | LONG TEXT
m | MONEY
M | LONG NVARCHAR
n | NCHAR
N | NVARCHAR
t | TEXT
v | VARCHAR
V | LONG VARCHAR

Valeurs de retour

ingres_query() retourne une ressource de résultat
en cas de succès, et sinon FALSE. Pour savoir si une erreur est
survenue, utilisez ingres_errno(),
ingres_error() ou
ingres_errsqlstate().

Exemples

Exemple #1 Envoi d'une requête à Ingres

<?php
$link = ingres_connect("demodb");

$result = ingres_query($link, "select * from user_profile");
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Exemple #2 Passage de paramètres de requête à ingres_query()

<?php
$link = ingres_connect("demodb");

$params[] = "Emma";
$query = "select * from user_profile where up_first = ?";
$result = ingres_query($link, $query, $params);
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Exemple #3 Insertion d'un BLOB dans les paramètres de requête

<?php
$link = ingres_connect("demodb");

//Ouverture d'une photo
$fh = fopen("photo.jpg","r");
$blob_data = stream_get_contents($fh);
fclose($fh);

//Préparation des paramètres
$params[] = $blob_data;
$params[] = 1201;

//Définition des paramètres
$param_types = "Bi";

$query = "update user_profile set up_image = ? where up_id = ?";
$result = ingres_query($link, $query , $params, $param_types);

if (ingres_errno())
{
    echo ingres_errno() . " : " . ingres_error() . "\n";
}

ingres_commit($link);

ingres_close($link);
?>

Voir aussi

  • ingres_unbuffered_query() - Envoie une requête sans buffer à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré
  • ingres_commit() - Valide une transaction
  • ingres_rollback() - Annule une transaction Ingres
  • ingres_autocommit() - Active ou désactive le mode autocommit
  • ingres_set_environment() - Configure les directives contrôlant les résultats Ingres
  • ingres_errno() - Récupère le dernier numéro d'erreur d'Ingres généré
  • ingres_error() - Lit le dernier message d'erreur Ingres


Change la position de lecture des données

  • « ingres_query
  • ingres_rollback »
  • PHP Manual
  • Fonctions Ingres
  • Change la position de lecture des données

ingres_result_seek

(PECL ingres >= 2.1.0)

ingres_result_seek — Change la position de lecture des données

Description

bool ingres_result_seek ( resource $result , int $position )

ingres_result_seek() positionne le curseur associé au résultat, avant de lire la ligne. Si ingres.array_index_start vaut 0, alors la première ligne sera au numéro 0, et sinon, elle sera à 1. ingres_result_seek() peut uniquement être utilisé avec des requêtes qui utilisent des curseurs scrollables. Elle ne peut pas être utilisée avec la fonction ingres_unbuffered_query().

Note: Configurations associées

Voyez aussi les directives ingres.scrollable et ingres.array_index_start dans les configurations d'exécution.

Liste de paramètres

result

Une ressource de résultat Ingres

position

La ligne à laquelle positionner le curseur. Si ingres.array_index_start vaut 0, ce sera la première ligne, et sinon, ce sera 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Positionnement du curseur Ingres sur la 3ème ligne

<?php

$result=ingres_query($link, "select * from airport where ap_ccode = 'ES' order by ap_place asc");

/* Va en position 3 */
if (!ingres_result_seek($result, 3))
{
    echo ingres_errno() . " - " . ingres_error . "\n";
    die();
}
else
{
    $airport = ingres_fetch_object ($result);
    {
        echo $airport->ap_iatacode . " - " .  $airport->ap_name . "\n";
    }
}

ingres_commit($link);

?>

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré


Annule une transaction Ingres

  • « ingres_result_seek
  • ingres_set_environment »
  • PHP Manual
  • Fonctions Ingres
  • Annule une transaction Ingres

ingres_rollback

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_rollback — Annule une transaction Ingres

Description

bool ingres_rollback ( resource $link )

ingres_rollback() annule (roll back) la transaction ouverte sur la connexion Ingres link, ce qui annule les modifications faites sur la base de données au cours de cette transaction.

Ceci ferme la transaction. Une nouvelle transaction peut être ouverte en envoyant une requête à l'aide de ingres_query().

Liste de paramètres

link

La ressource de connexion Ingres

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_commit() - Valide une transaction
  • ingres_autocommit() - Active ou désactive le mode autocommit


Configure les directives contrôlant les résultats Ingres

  • « ingres_rollback
  • ingres_unbuffered_query »
  • PHP Manual
  • Fonctions Ingres
  • Configure les directives contrôlant les résultats Ingres

ingres_set_environment

(PECL ingres >= 1.2.0)

ingres_set_environment — Configure les directives contrôlant les résultats Ingres

Description

bool ingres_set_environment ( resource $link , array $options )

ingres_set_environment() assigne des valeurs aux options qui affectent l'affichage des valeurs en provenance d'Ingres, telles que les fuseaux horaires, le format de date, le séparateur décimal ou la précision des nombres décimaux.

Liste de paramètres

link

La ressource de connexion Ingres

options

Un tableau énuméré de paires clé / valeur. La table suivante liste toutes les options et leur type associé.

Nom de l'option | Type de l'option | Description | Exemple
date_century_boundary | entier | Le seuil qui fait qu'une année exprimée sur deux chiffres fait partie de ce siècle ou du précédent. C'est l'équivalent de II_DATE_CENTURY_BOUNDARY | 50
timezone | chaîne de caractères | Contrôle le fuseau horaire de la session. S'il n'est pas configuré, il prendra par défaut la valeur définie dans II_TIMEZONE_NAME. Si II_TIMEZONE_NAME n'est pas définie, ce sera NA-PACIFIC (GMT-8 avec horaire d'été), qui sera utilisé. | UNITED-KINGDOM
date_format entier

Configure les formats acceptables de dates. Par défaut, c'est la valeur définie dans II_DATE_FORMAT. Si II_DATE_FORMAT n'est pas configuré, le format par défaut est celui de la date US, par exemple mm/dd/yy. Les valeurs valides pour les formats sont :

  • INGRES_DATE_DMY
  • INGRES_DATE_FINISH
  • INGRES_DATE_GERMAN
  • INGRES_DATE_ISO
  • INGRES_DATE_ISO4
  • INGRES_DATE_MDY
  • INGRES_DATE_MULTINATIONAL
  • INGRES_DATE_MULTINATIONAL4
  • INGRES_DATE_YMD
  • INGRES_DATE_US

 INGRES_DATE_ISO4
decimal_separator chaîne de caractères Le séparateur décimal (en français, la virgule) ","
money_lort entier

Le symbole monétaire, suffixe ou préfixe. Les valeurs valides sont :

  • INGRES_MONEY_LEADING
  • INGRES_MONEY_TRAILING

 INGRES_MONEY_LEADING
money_sign chaîne de caractères Le symbole monétaire à utiliser avec les valeurs de type MONEY €
money_precision | entier | La précision à utiliser avec les valeurs de type MONEY | 2
float4_precision | entier | La précision à utiliser avec les valeurs de type FLOAT4 | 10
float8_precision | entier | La précision à utiliser avec les valeurs de type FLOAT8 | 10
blob_segment_length | entier | La quantité de données à lire à chaque lecture d'une valeur de type BLOB ou CLOB. Par défaut, c'est 4096 octets | 8192

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Configuration du format de date à ISO4

<?php
$options = array( "date_format" => INGRES_DATE_ISO4 );

if (ingres_set_environment($link, $options))
{
    $result=ingres_query($link,"select date('now') as date");

    while ( $object = ingres_fetch_object ($result) ) {
        echo $object->date."\n";
    }
}
?>

Exemple #2 Configuration du fuseau horaire de Hong-Kong

<?php

$options = array( "timezone" => "HONG-KONG");

if (ingres_set_environment($link, $options))
{
    $result=ingres_query($link,"select date('now') as date");

    while ( $object = ingres_fetch_object ($result) ) {
        echo $object->date."\n";
    }
}
?>

Voir aussi

  • ingres_connect() - Ouvre une connexion sur un serveur Ingres
  • ingres_query() - Envoie une requête SQL à Ingres


Envoie une requête sans buffer à Ingres

  • « ingres_set_environment
  • MaxDB »
  • PHP Manual
  • Fonctions Ingres
  • Envoie une requête sans buffer à Ingres

ingres_unbuffered_query

(No version information available, might only be in Git)

ingres_unbuffered_query — Envoie une requête sans buffer à Ingres

Description

mixed ingres_unbuffered_query ( resource $link , string $query [, array $params [, string $types ]] )

ingres_unbuffered_query() envoie la requête SQL query au serveur Ingres.

La requête fait alors partie de la transaction courante. S'il n'y a pas de transaction ouverte, ingres_query() en ouvre une nouvelle. Pour fermer la transaction, vous pouvez appeler soit ingres_commit() pour valider les modifications, ou bien ingres_rollback() pour les annuler. Lorsque le script s'achève, toutes les transactions qui n'auront pas été validées, seront annulées, en appelant ingres_rollback(). Vous pouvez aussi utiliser ingres_autocommit() avant d'ouvrir une nouvelle transaction pour forcer la validation immédiate de toutes les requêtes. Ingres permet une seule requête sans buffer active à un moment donné. L'extension va fermer toute requête active avant d'exécuter une nouvelle requête SQL. De plus, vous ne pouvez pas utiliser ingres_result_seek() pour vous positionner à la ligne que vous souhaitez dans le résultat.

Note: Configurations associées

Voyez aussi les directives ingres.describe et ingres.utf8 dans les directives d'exécution.

Liste de paramètres

link

La ressource de connexion à Ingres

query

Une requête SQL valide (voyez le SQL reference guide) pour le serveur Ingres. Voyez la documentation du paramètre query la fonction ingres-query() pour une liste de requêtes SQL qui ne peuvent pas être exécutées via la fonction ingres_unbuffered_query().

Les données contenues dans la requête doivent être proprement échappées.

params

Un tableau de valeurs de paramètre à utiliser avec la requête

types

Une chaîne contenant une séquence de types pour les paramètres fournis à la requête. Voyez la documentation de la fonction ingres-query() pour obtenir la liste des types.

Valeurs de retour

ingres_unbuffered_query() retourne une ressource de résultats lorsqu'il y a des lignes à lire, et sinon, elle retourne FALSE s'il n'y a pas de lignes à lire, comme pour les requêtes INSERT, UPDATE et DELETE. Pour savoir s'il y a eu une erreur, utilisez l'une des fonctions ingres_errno(), ingres_error() ou ingres_errsqlstate().

Exemples

Exemple #1 Exécution d'une requête SQL sans buffer sur Ingres

<?php
$link = ingres_connect("demodb");

$result = ingres_unbuffered_query($link, "select * from user_profile");
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Exemple #2 Passage de paramètres de requêtes à ingres_unbuffered_query()

<?php
$link = ingres_connect("demodb");

$params[] = "Emma";
$query = "select * from user_profile where up_first = ?";
$result = ingres_unbuffered_query($link, $query, $params);
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Exemple #3 Insertion d'un BLOB dans les paramètres de requêtes SQL Ingres

<?php
$link = ingres_connect("demodb");

//Ouverture d'une photo
$fh = fopen("photo.jpg","r");
$blob_data = stream_get_contents($fh);
fclose($fh);

//Préparation des parametres
$params[] = $blob_data;
$params[] = 1201;

//Définition des types de paramètres
$param_types = "Bi";

$query = "update user_profile set up_image = ? where up_id = ?";
$result = ingres_unbuffered_query($link, $query , $params, $param_types);

if (ingres_errno())
{
    echo ingres_errno() . " : " . ingres_error() . "\n";
}
?>

Voir aussi

  • ingres_query() - Envoie une requête SQL à Ingres
  • ingres_fetch_array() - Récupère une ligne de résultat Ingres dans un tableau
  • ingres_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • ingres_fetch_object() - Récupère une ligne de résultat dans un objet
  • ingres_fetch_row() - Récupère une ligne de résultat dans un tableau énuméré
  • ingres_commit() - Valide une transaction
  • ingres_rollback() - Annule une transaction Ingres
  • ingres_autocommit() - Active ou désactive le mode autocommit
  • ingres_set_environment() - Configure les directives contrôlant les résultats Ingres
  • ingres_errno() - Récupère le dernier numéro d'erreur d'Ingres généré
  • ingres_error() - Lit le dernier message d'erreur Ingres


MaxDB

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
  • Fonctions MaxDB
    • maxdb_affected_rows — Récupère le nombre de lignes affectées par la dernière opération MaxDB
    • maxdb_autocommit — Active ou désactive l'auto-commit des modifications de la base de données
    • maxdb_bind_param — Alias de maxdb_stmt_bind_param
    • maxdb_bind_result — Alias de maxdb_stmt_bind_result
    • maxdb_change_user — Modifie l'utilisateur de la connexion à la base de données spécifiée
    • maxdb_character_set_name — Retourne le jeu de caractères par défaut pour la connexion à la base de données
    • maxdb_client_encoding — Alias de maxdb_character_set_name
    • maxdb_close_long_data — Alias de maxdb_stmt_close_long_data
    • maxdb_close — Ferme une connexion à une base de données
    • maxdb_commit — Valide la transaction courante
    • maxdb_connect_errno — Retourne le code erreur du dernier appel à la connexion
    • maxdb_connect_error — Retourne une chaîne descriptive de la dernière erreur
    • maxdb_connect — Ouvre une nouvelle connexion sur un serveur MaxDB
    • maxdb_data_seek — Ajuste le pointeur de résultat sur une ligne arbitraire dans le résultat
    • maxdb_debug — Effectue des opérations de déboguage
    • maxdb_disable_reads_from_master — Désactive la lecture depuis le maître
    • maxdb_disable_rpl_parse — Désactive l'analyseur RPL
    • maxdb_dump_debug_info — Sauvegarde les informations de déboguage dans un log
    • maxdb_embedded_connect — Ouvre une connexion sur un serveur MaxDB embarqué
    • maxdb_enable_reads_from_master — Active la lecture depuis le maître
    • maxdb_enable_rpl_parse — Active l'analyseur RPL
    • maxdb_errno — Retourne le code erreur pour le dernier appel à une fonction
    • maxdb_error — Retourne une chaîne représentant la dernière erreur
    • maxdb_escape_string — Alias de maxdb_real_escape_string
    • maxdb_execute — Alias de maxdb_stmt_execute
    • maxdb_fetch_array — Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux
    • maxdb_fetch_assoc — Récupère une ligne de résultat dans un tableau associatif
    • maxdb_fetch_field_direct — Récupère les métadonnées pour un seul champ
    • maxdb_fetch_field — Retourne le prochain champ d'un jeu de résultats
    • maxdb_fetch_fields — Retourne un tableau de ressource représentant les champs dans un jeu de résultats
    • maxdb_fetch_lengths — Retourne la longueur des colonnes de la ligne courante dans un jeu de résultats
    • maxdb_fetch_object — Retourne la ligne courante d'un jeu de résultats dans un objet
    • maxdb_fetch_row — Récupère une ligne de résultat en tant que tableau énuméré
    • maxdb_fetch — Alias de maxdb_stmt_fetch
    • maxdb_field_count — Retourne le nombre de colonnes pour la dernière requête
    • maxdb_field_seek — Définit le pointeur de résultat à une position donnée
    • maxdb_field_tell — Récupère la position du champ courant pour un pointeur de résultat
    • maxdb_free_result — Libère la mémoire associée à un résultat
    • maxdb_get_client_info — Retourne la version du client MaxDB sous la forme d'une chaîne
    • maxdb_get_client_version — Récupère des informations sur le client MaxDB
    • maxdb_get_host_info — Retourne une chaîne représentant le type de de connexion utilisé
    • maxdb_get_metadata — Alias de maxdb_stmt_result_metadata
    • maxdb_get_proto_info — Retourne la version du protocole MaxDB utilisé
    • maxdb_get_server_info — Retourne la version du serveur MaxDB
    • maxdb_get_server_version — Retourne la version du serveur MaxDB sous la forme d'un entier
    • maxdb_info — Récupère des informations sur le dernière requête exécutée
    • maxdb_init — Initialise MaxDB et retourne une ressource pour l'utiliser avec maxdb_real_connect
    • maxdb_insert_id — Retourne le dernier identifiant généré automatiquement par la dernière requête
    • maxdb_kill — Déconnecte un serveur MaxDB
    • maxdb_master_query — Force l'exécution d'une requête sur le maître
    • maxdb_more_results — Vérifie s'il y a encore des résultats de disponibles depuis de multiples requêtes
    • maxdb_multi_query — Exécute une requête sur une base de données
    • maxdb_next_result — Prépare le prochain résultat depuis multi_query
    • maxdb_num_fields — Récupère le nombre de champs dans un résultat
    • maxdb_num_rows — Récupère le nombre de lignes dans un résultat
    • maxdb_options — Définie des options
    • maxdb_param_count — Alias de maxdb_stmt_param_count
    • maxdb_ping — Test une connexion à un serveur ou tente de se reconnecter si la connexion a été interrompue
    • maxdb_prepare — Prépare une requête SQL pour exécution
    • maxdb_query — Exécute une requête sur une base de données
    • maxdb_real_connect — Ouvre une connexion sur un serveur MaxDB
    • maxdb_real_escape_string — Protège les caractères spéciaux d'une chaîne afin de l'utiliser dans une requête SQL, en tenant compte du jeu de caractères courant de la connexion
    • maxdb_real_query — Exécute une requête SQL
    • maxdb_report — Active ou désactive le rapport interne des fonctions
    • maxdb_rollback — Annule la transaction courante
    • maxdb_rpl_parse_enabled — Vérifie si l'analyseur RPL est activé
    • maxdb_rpl_probe — Test RPL
    • maxdb_rpl_query_type — Retourne une requête de type RPL
    • maxdb_select_db — Sélectionne une base de données pour les requêtes
    • maxdb_send_long_data — Alias de maxdb_stmt_send_long_data
    • maxdb_send_query — Envoie une requête et retourne
    • maxdb_server_end — Éteint un serveur embarqué
    • maxdb_server_init — Initialise un serveur embarqué
    • maxdb_set_opt — Alias de maxdb_options
    • maxdb_sqlstate — Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB
    • maxdb_ssl_set — Utilisé pour établir une connexion sécurisée utilisant SSL
    • maxdb_stat — Récupère le statut courant du système
    • maxdb_stmt_affected_rows — Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête
    • maxdb_stmt_bind_param — Lie les variables à une requête préparée en tant que paramètres
    • maxdb_stmt_bind_result — Lie les variables à une requête préparée pour stockage du résultat
    • maxdb_stmt_close_long_data — Termine une séquence maxdb_stmt_send_long_data
    • maxdb_stmt_close — Ferme une requête préparée
    • maxdb_stmt_data_seek — Se positionne sur une ligne arbitraire dans le jeu de résultats
    • maxdb_stmt_errno — Retourne le code erreur pour le dernier appel à une fonction de requête
    • maxdb_stmt_error — Retourne une description de la dernière erreur
    • maxdb_stmt_execute — Exécute une requête préparée
    • maxdb_stmt_fetch — Récupère les résultats depuis la requête préparée dans les variables liées
    • maxdb_stmt_free_result — Libère la mémoire des résultats stockés pour un gestionnaire de requête donné
    • maxdb_stmt_init — Initialise une requête et retourne une ressource à utiliser avec maxdb_stmt_prepare
    • maxdb_stmt_num_rows — Retourne le nombre de lignes dans le jeu de résultats
    • maxdb_stmt_param_count — Retourne le nombre de marqueurs pour une requête donnée
    • maxdb_stmt_prepare — Prépare une requête SQL pour exécution
    • maxdb_stmt_reset — Réinitialise une requête préparée
    • maxdb_stmt_result_metadata — Retourne les métadonnées du jeu de résultats pour une requête préparée
    • maxdb_stmt_send_long_data — Envoie un bloc de données
    • maxdb_stmt_sqlstate — Retourne une erreur SQLSTATE depuis la requête précédente
    • maxdb_stmt_store_result — Transfert un jeu de résultats depuis une requête préparée
    • maxdb_store_result — Transfert un jeu de résultats depuis la dernière requête
    • maxdb_thread_id — Retourne l'identifiant du thread pour la connexion courante
    • maxdb_thread_safe — Indique si le thread safety est donné ou non
    • maxdb_use_result — Initialise un jeu de résultats
    • maxdb_warning_count — Retourne le nombre d'avertissements depuis la dernière requête pour un lien donné


Introduction

L'extension MaxDB de PHP vous permet d'accéder aux fonctionnalités fournies par MaxDB 7.5.0 et suivant. Plus d'informations sur le serveur de base de données MaxDB peuvent être trouvées sur » http://www.sdn.sap.com/irj/sdn/maxdb.

L'extension MaxDB est compatible avec l'extension mysqli de MySQL. Il y a simplement des différences mineurs dans le comportement de certaines fonctions, liées au comportement des bibliothèques sous- jacentes.

Les différences notables par rapport à MySQLi sont :

  • maxdb_character_set_name() : retourne uniquement de l'ASCII ou unicode.
  • maxdb_get_client_info() : retourne une chaîne de version différente.
  • maxdb_get_client_version() : retourne une chaîne de version différente.
  • maxdb_get_host_info() : retourne localhost ou le nom de l'hôte.
  • maxdb_get_server_info() : retourne une chaîne de version différente.
  • maxdb_get_server_version() : retourne une chaîne de version différente.
  • maxdb_kill() : déconnecte uniquement la session.
  • maxdb_multi_query() : ne peut pas gérer les requêtes multiples SQL.
  • maxdb_next_result() : la fonction retourne toujours FALSE.
  • maxdb_options() : supporte un jeu d'options différentes.
  • maxdb_report() : supporte un mode de rapport différent.
  • maxdb_stat() : retourne une chaîne de statut système différente.
  • maxdb_stmt_store_result() : n'est pas nécessaire pour MaxDB.
  • maxdb_store_result() : n'est pas nécessaire pour MaxDB.

La documentation pour MaxDB peut être trouvée sur » http://maxdb.sap.com/documentation/.


Pré-requis

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support MaxDB. De plus, vous devez avoir de disponible la bibliothèque MaxDB SQLDBC pour accéder au serveur MaxDB.

La documentation sur MaxDB SQLDBC peut être trouvée sur » http://maxdb.sap.com/documentation/.

Téléchargez le paquet MaxDB SQLDBC sur » http://www.sdn.sap.com/irj/sdn/maxdb-downloads.


Installation

En utilisant l'option de configuration --with-maxdb[=DIR] , vous permettez à PHP d'accéder à une base de données MaxDB. [DIR] pointe vers le dossier contenant le paquet d'installation MaxDB SQLDBC.

Les utilisateurs de Windows doivent activer la bibliothèque php_maxdb.dll dans le php.ini.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration maxdb
Nom | Défaut | Modifiable | Historique
maxdb.default_host | NULL | PHP_INI_ALL |
maxdb.default_db | NULL | PHP_INI_ALL |
maxdb.default_user | NULL | PHP_INI_ALL |
maxdb.default_pw | NULL | PHP_INI_ALL |
maxdb.long_readlen | "200" | PHP_INI_ALL |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

maxdb.default_host string

L'hôte par défaut à utiliser lors de la connexion au serveur de base de données si aucun hôte n'est spécifié.

maxdb.default_db string

La base de données par défaut à utiliser lors de la connexion si aucun autre base de données n'est spécifié.

maxdb.default_user string

Le nom d'utilisateur par défaut à utiliser lors de la connexion au serveur de base de données si aucun autre nom n'est spécifié.

maxdb.default_pw string

Le mot de passe par défaut à utiliser lorsqu'un utilisateur se connecte à un serveur sans spécifier de mot de passe.

maxdb.long_readlen integer

La longueur maximale d'octets par défaut qui sont transférés au client si un gros volume de données est récupéré depuis un serveur de base de données MaxDB.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit des ressources.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes suivantes à utiliser avec maxdb_options() sont définies. Pour plus de descriptions sur ces constantes, lisez » http://maxdb.sap.com/documentation/.

Constantes clientes PHP MaxDB
Constante | Description
MAXDB_COMPNAME | Le nom du composant utilisé pour initialiser l'environnement d'exécution SQLDBC.
MAXDB_APPLICATION | L'application à connecter à la base de données.
MAXDB_APPVERSION | La version de l'application.
MAXDB_SQLMODE | Le mode SQL.
MAXDB_UNICODE | TRUE, si la connexion est un client unicode (UCS2) ou FALSE sinon.
MAXDB_TIMEOUT | Le délai maximal d'inactivité après lequel la connexion à la base de données est close par le système.
MAXDB_ISOLATIONLEVEL | Spécifie si oui ou non et comment les verrous partagés ainsi que les verrous exclusifs sont implicitement demandés ou libérés.
MAXDB_PACKETCOUNT | Le nombre de paquets de requêtes différents utilisé pour la connexion.
MAXDB_STATEMENTCACHESIZE | Le nombre de requêtes préparées à être mises en cache pour la connexion pour être réutilisées.
MAXDB_CURSORPREFIX | Le préfixe à utiliser pour la table de résultats qui sont automatiquement nommées.

La fonction maxdb_fetch_array() utilise une constante pour les différents types de tableaux de résultats. Les constantes suivantes sont définies :

MaxDB fetch constants
Constante | Description
MAXDB_ASSOC | Les colonnes sont retournées dans un tableau ayant comme index les noms des champs.
MAXDB_ASSOC_UPPER | Les colonnes sont retournées dans un tableau ayant comme index les noms des champs en majuscule.
MAXDB_ASSOC_LOWER | Les colonnes sont retournées dans un tableau ayant comme index les noms des champs en minuscule.
MAXDB_BOTH | Les colonnes sont retournées dans un tableau ayant des index numériques ainsi que les noms des champs en tant qu'index.
MAXDB_NUM | Les colonnes sont retournées dans un tableau ayant un index numérique correspondant à un champs. Cet index commence à 0, le premier champs du jeu de résultats.


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • MaxDB
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Tous les exemples dans la documentation PHP de MaxDB utilise la base de données de démonstration HETOLDB depuis MaxDB. Plus d'informations concernant cette base de données peuvent être trouvées sur » http://maxdb.sap.com/doc/7_7/44/d8c25164bb38d0e10000000a1553f7/content.htm.

Pour utiliser les exemples dans la documentation PHP MaxDB, vous devez télécharger les données du tutorial dans votre base de données. Ensuite, vous devez définir maxdb.default_db dans votre php.ini à la valeur de votre base de données contenant les données du tutorial.

Cet exemple simple montre comment se connecter, exécuter une requête, afficher les lignes résultants et se déconnecter de la base de données MaxDB.

Exemple #1 Exemple global de l'extension MaxDB

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
   printf("Échec de la connexion : %s\n", maxdb_connect_error());
   exit();
}

/* Exécution de la requête SQL */
$query = "SELECT * FROM hotel.city";
$result = maxdb_query($link, $query) or die("Échec de la requête : " . maxdb_error());

/* Affichage des resultats en HTML */
echo "<table>\n";
while ($line = maxdb_fetch_array($result, MAXDB_ASSOC)) {
    echo "  <tr>\n";
    foreach ($line as $col_value) {
        echo "    <td>$col_value</td>\n";
    }
    echo "  </tr>\n";
}
echo "</table>\n";

/* Libération du résultat */
maxdb_free_result($result);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple suivant montre comment l'on lie des variables à des requêtes SELECT INTO.

Exemple #2 Exemple d'utilisation des requêtes SELECT INTO

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
   printf("Échec de la connexion : %s\n", maxdb_connect_error());
   exit();
}

/* Exécution de la requête SQL */
$stmt = maxdb_prepare ($link, "SELECT percentage INTO ? FROM hotel.countrylanguage where language = ?");
if (!$stmt) {
  printf ("Échec de la préparation : %s\n", maxdb_error($link));
}

$name = "Mbundu";

maxdb_stmt_bind_param($stmt, 'ds', $percentage, $name);
maxdb_stmt_execute($stmt);

printf ("%f\n", $percentage);

maxdb_stmt_close ($stmt);
?>

L'exemple suivant montre comment utiliser les procédures avec les bases de données MaxDB.

Exemple #3 Exemple d'utilisation des procédures

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
   printf("Échec de la connexion : %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);

$query = "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";

maxdb_query($link, $query);

/* Exécution de la requête SQL */
$stmt = maxdb_prepare ($link, "CALL test_proc (?)");
if (!$stmt) {
  printf ("Échec de la préparation : %s\n", maxdb_error($link));
}

maxdb_stmt_bind_param($stmt, 's', $result);
maxdb_stmt_execute($stmt);

printf ("%s\n", $result);

maxdb_stmt_close ($stmt);
?>


Fonctions MaxDB

Classes pré-définies

maxdb

Représente une connexion entre PHP et une base MaxDB.

Constructeur

  • maxdb : constructeur

Méthodes

  • autocommit : active ou pas l'autoarchivage

  • change_user : change l'utilisateur de la base de données

  • character_set_name : retourne le jeu de caractères par défaut de la connexion

  • close : ferme une connexion ouverte

  • commit : valide la transaction courante

  • connect : ouvre une nouvelle connexion

  • debug : effectue des opérations de déboguage

  • dump_debug_info : affiche des informations de déboguage

  • get_client_info : retourne la version du client

  • get_host_info : retourne le type de connexion

  • get_server_info : retourne les informations sur le serveur maxDB

  • get_server_version : retourne la version du serveur

  • init : initialise un objet maxdb

  • info : lit les informations sur la dernière requête exécutée

  • kill : tente de terminer un thread MaxDB

  • multi_query : effectue une commande multiple

  • more_results : vérifie si d'autres résultats existent dans la commande multiple courante

  • next_result : lit le prochain résultat de la commande multiple courante

  • options : configure les options

  • ping : teste le serveur avec un ping et se reconnecte si besoin

  • prepare : prépare une requête SQL

  • query : exécute une requête

  • real_connect : ouvre une connexion au serveur MaxDB

  • escape_string : protège les caractères spéciaux dans une chaîne pour l'utiliser dans une requête, en tenant compte du jeu de caractères courant

  • rollback : annule la transaction courante

  • select_db : sélectionne la base de données par défaut

  • ssl_set : configure les paramètres ssl

  • stat : lit le statut courant du système

  • stmt_init : initialise une commande à utiliser avec maxdb_stmt_prepare

  • store_result : transfert un résultat de la dernière requête

  • use_result : transfert un résultat non bufferisé de la dernière requête

  • thread-safe : indique si la sécurité thread est active ou pas

Propriétés

  • affected_rows : lit le nombre de lignes affectées par la dernière opération MaxDB

  • client_info : retourne la version du client MaxDB sous forme de chaîne

  • client_version : retourne la version du client MaxDB sous forme d'entier

  • errno : retourne le code d'erreur du dernier appel de fonction

  • error : retourne le message d'erreur de la plus récente fonction

  • field_count : retourne le nombre de colonne de la dernière requête

  • host_info : retourne une chaîne représentant le type de connexion

  • info : lit les informations sur la dernière requête exécutée

  • insert-id : retourne l'identifiant autogénéré par la dernière requête

  • protocol_version : retourne la version du protocole MaxDB utilisé

  • sqlstate : retourne une chaîne représentant le code d'erreur SQLSTATE

  • thread_id : retourne l'identifiant du thread de la connexion courante

  • warning-count : retourne le nombre d'alertes générées durant la dernière commande SQL

maxdb_stmt

Représente une commande préparée.

Méthodes

  • bind_param : lie les variables à la commande préparée

  • bind_result : lie les variables à la commande préparée, pour stockage des résultats

  • close : détruit la commande préparée

  • data-seek : place le pointeur à une position arbitraire du résultat

  • execute : exécute une commande préparée

  • fetch : lit les résultats de la commande préparée dans les variables liées

  • free_result : libère les ressources de la mémoire

  • result_metadata : lit les métadonnées d'un résultat de commande préparée

  • prepare : prépare une commande préparée

  • send_long_data : envoie les données par paquet

  • close_long_data : termine l'envoi de grandes données

  • reset : remet à zéro une commande préparée

  • store_result : stocke tout le résultat d'une commande préparée

Propriétés

  • affected_rows : retourne le nombre de lignes affectées par la dernière commande préparée

  • errno : retourne le code d'erreur de la dernière commande préparée

  • errno : retourne le message d'erreur de la dernière commande préparée

  • param_count : retourne le nombre de paramètres pour une commande préparée

  • sqlstate : retourne une chaîne contenant le code d'erreur SQLSTATE

maxdb_result

Représente le jeu de résultat obtenu après exécution d'une requête.

Méthodes

  • close : détruit le jeu de résultat

  • data_seek : déplace le pointeur de ligne

  • fetch_field : lit les informations de colonnes d'un résultat

  • fetch_fields : lit les informations de toutes les colonnes d'un résultat

  • fetch_field_direct : lit les informations sur une colonne spécifique

  • fetch_array : lit la ligne de résultat sous forme de tableau associatif, numérique ou les deux.

  • fetch_assoc : lit une ligne sous forme de tableau associatif

  • fetch_object : lit un résultat sous forme d'objet

  • fetch_row : lit un résultat sous forme de tableau énuméré

  • close : libère les ressources

  • field_seek : place le pointeur à une position donnée

Propriétés

  • current_field : retourne le pointeur courant

  • field_count : retourne le nombre de champs dans le résultat

  • lengths : retourne un tableau avec les tailles des colonnes

  • num_rows : retourne le nombre de ligne du résultat

Sommaire

  • maxdb_affected_rows — Récupère le nombre de lignes affectées par la dernière opération MaxDB
  • maxdb_autocommit — Active ou désactive l'auto-commit des modifications de la base de données
  • maxdb_bind_param — Alias de maxdb_stmt_bind_param
  • maxdb_bind_result — Alias de maxdb_stmt_bind_result
  • maxdb_change_user — Modifie l'utilisateur de la connexion à la base de données spécifiée
  • maxdb_character_set_name — Retourne le jeu de caractères par défaut pour la connexion à la base de données
  • maxdb_client_encoding — Alias de maxdb_character_set_name
  • maxdb_close_long_data — Alias de maxdb_stmt_close_long_data
  • maxdb_close — Ferme une connexion à une base de données
  • maxdb_commit — Valide la transaction courante
  • maxdb_connect_errno — Retourne le code erreur du dernier appel à la connexion
  • maxdb_connect_error — Retourne une chaîne descriptive de la dernière erreur
  • maxdb_connect — Ouvre une nouvelle connexion sur un serveur MaxDB
  • maxdb_data_seek — Ajuste le pointeur de résultat sur une ligne arbitraire dans le résultat
  • maxdb_debug — Effectue des opérations de déboguage
  • maxdb_disable_reads_from_master — Désactive la lecture depuis le maître
  • maxdb_disable_rpl_parse — Désactive l'analyseur RPL
  • maxdb_dump_debug_info — Sauvegarde les informations de déboguage dans un log
  • maxdb_embedded_connect — Ouvre une connexion sur un serveur MaxDB embarqué
  • maxdb_enable_reads_from_master — Active la lecture depuis le maître
  • maxdb_enable_rpl_parse — Active l'analyseur RPL
  • maxdb_errno — Retourne le code erreur pour le dernier appel à une fonction
  • maxdb_error — Retourne une chaîne représentant la dernière erreur
  • maxdb_escape_string — Alias de maxdb_real_escape_string
  • maxdb_execute — Alias de maxdb_stmt_execute
  • maxdb_fetch_array — Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux
  • maxdb_fetch_assoc — Récupère une ligne de résultat dans un tableau associatif
  • maxdb_fetch_field_direct — Récupère les métadonnées pour un seul champ
  • maxdb_fetch_field — Retourne le prochain champ d'un jeu de résultats
  • maxdb_fetch_fields — Retourne un tableau de ressource représentant les champs dans un jeu de résultats
  • maxdb_fetch_lengths — Retourne la longueur des colonnes de la ligne courante dans un jeu de résultats
  • maxdb_fetch_object — Retourne la ligne courante d'un jeu de résultats dans un objet
  • maxdb_fetch_row — Récupère une ligne de résultat en tant que tableau énuméré
  • maxdb_fetch — Alias de maxdb_stmt_fetch
  • maxdb_field_count — Retourne le nombre de colonnes pour la dernière requête
  • maxdb_field_seek — Définit le pointeur de résultat à une position donnée
  • maxdb_field_tell — Récupère la position du champ courant pour un pointeur de résultat
  • maxdb_free_result — Libère la mémoire associée à un résultat
  • maxdb_get_client_info — Retourne la version du client MaxDB sous la forme d'une chaîne
  • maxdb_get_client_version — Récupère des informations sur le client MaxDB
  • maxdb_get_host_info — Retourne une chaîne représentant le type de de connexion utilisé
  • maxdb_get_metadata — Alias de maxdb_stmt_result_metadata
  • maxdb_get_proto_info — Retourne la version du protocole MaxDB utilisé
  • maxdb_get_server_info — Retourne la version du serveur MaxDB
  • maxdb_get_server_version — Retourne la version du serveur MaxDB sous la forme d'un entier
  • maxdb_info — Récupère des informations sur le dernière requête exécutée
  • maxdb_init — Initialise MaxDB et retourne une ressource pour l'utiliser avec maxdb_real_connect
  • maxdb_insert_id — Retourne le dernier identifiant généré automatiquement par la dernière requête
  • maxdb_kill — Déconnecte un serveur MaxDB
  • maxdb_master_query — Force l'exécution d'une requête sur le maître
  • maxdb_more_results — Vérifie s'il y a encore des résultats de disponibles depuis de multiples requêtes
  • maxdb_multi_query — Exécute une requête sur une base de données
  • maxdb_next_result — Prépare le prochain résultat depuis multi_query
  • maxdb_num_fields — Récupère le nombre de champs dans un résultat
  • maxdb_num_rows — Récupère le nombre de lignes dans un résultat
  • maxdb_options — Définie des options
  • maxdb_param_count — Alias de maxdb_stmt_param_count
  • maxdb_ping — Test une connexion à un serveur ou tente de se reconnecter si la connexion a été interrompue
  • maxdb_prepare — Prépare une requête SQL pour exécution
  • maxdb_query — Exécute une requête sur une base de données
  • maxdb_real_connect — Ouvre une connexion sur un serveur MaxDB
  • maxdb_real_escape_string — Protège les caractères spéciaux d'une chaîne afin de l'utiliser dans une requête SQL, en tenant compte du jeu de caractères courant de la connexion
  • maxdb_real_query — Exécute une requête SQL
  • maxdb_report — Active ou désactive le rapport interne des fonctions
  • maxdb_rollback — Annule la transaction courante
  • maxdb_rpl_parse_enabled — Vérifie si l'analyseur RPL est activé
  • maxdb_rpl_probe — Test RPL
  • maxdb_rpl_query_type — Retourne une requête de type RPL
  • maxdb_select_db — Sélectionne une base de données pour les requêtes
  • maxdb_send_long_data — Alias de maxdb_stmt_send_long_data
  • maxdb_send_query — Envoie une requête et retourne
  • maxdb_server_end — Éteint un serveur embarqué
  • maxdb_server_init — Initialise un serveur embarqué
  • maxdb_set_opt — Alias de maxdb_options
  • maxdb_sqlstate — Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB
  • maxdb_ssl_set — Utilisé pour établir une connexion sécurisée utilisant SSL
  • maxdb_stat — Récupère le statut courant du système
  • maxdb_stmt_affected_rows — Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête
  • maxdb_stmt_bind_param — Lie les variables à une requête préparée en tant que paramètres
  • maxdb_stmt_bind_result — Lie les variables à une requête préparée pour stockage du résultat
  • maxdb_stmt_close_long_data — Termine une séquence maxdb_stmt_send_long_data
  • maxdb_stmt_close — Ferme une requête préparée
  • maxdb_stmt_data_seek — Se positionne sur une ligne arbitraire dans le jeu de résultats
  • maxdb_stmt_errno — Retourne le code erreur pour le dernier appel à une fonction de requête
  • maxdb_stmt_error — Retourne une description de la dernière erreur
  • maxdb_stmt_execute — Exécute une requête préparée
  • maxdb_stmt_fetch — Récupère les résultats depuis la requête préparée dans les variables liées
  • maxdb_stmt_free_result — Libère la mémoire des résultats stockés pour un gestionnaire de requête donné
  • maxdb_stmt_init — Initialise une requête et retourne une ressource à utiliser avec maxdb_stmt_prepare
  • maxdb_stmt_num_rows — Retourne le nombre de lignes dans le jeu de résultats
  • maxdb_stmt_param_count — Retourne le nombre de marqueurs pour une requête donnée
  • maxdb_stmt_prepare — Prépare une requête SQL pour exécution
  • maxdb_stmt_reset — Réinitialise une requête préparée
  • maxdb_stmt_result_metadata — Retourne les métadonnées du jeu de résultats pour une requête préparée
  • maxdb_stmt_send_long_data — Envoie un bloc de données
  • maxdb_stmt_sqlstate — Retourne une erreur SQLSTATE depuis la requête précédente
  • maxdb_stmt_store_result — Transfert un jeu de résultats depuis une requête préparée
  • maxdb_store_result — Transfert un jeu de résultats depuis la dernière requête
  • maxdb_thread_id — Retourne l'identifiant du thread pour la connexion courante
  • maxdb_thread_safe — Indique si le thread safety est donné ou non
  • maxdb_use_result — Initialise un jeu de résultats
  • maxdb_warning_count — Retourne le nombre d'avertissements depuis la dernière requête pour un lien donné


Récupère le nombre de lignes affectées par la dernière opération MaxDB

  • « Fonctions MaxDB
  • maxdb_autocommit »
  • PHP Manual
  • Fonctions MaxDB
  • Récupère le nombre de lignes affectées par la dernière opération MaxDB

maxdb_affected_rows

maxdb::affected_rows

(PECL maxdb >= 1.0)

maxdb_affected_rows -- maxdb::affected_rows — Récupère le nombre de lignes affectées par la dernière opération MaxDB

Description

Style procédural

int maxdb_affected_rows ( resource $link )

Style orienté objet

int $maxdb->affected_rows;

Retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE associée avec le paramètre link fourni. Si ce nombre ne peut pas être déterminé, cette fonction retournera -1.

Note:

Pour les requêtes SELECT, maxdb_affected_rows() fonctionne comme la fonction maxdb_num_rows().

La fonction maxdb_affected_rows() ne fonctionne qu'avec les requêtes qui modifient une table. Pour récupérer le nombre de lignes depuis une requête SELECT, utilisez plutôt la fonction maxdb_num_rows().

Valeurs de retour

Un entier plus grand que 0 indique le nombre de lignes affectées ou récupérées. Zéro indique qu'aucune ligne n'a été mise à jour pour une requête de type SELECT, qu'aucun ligne ne correspond à une clause WHERE dans une requête ou bien qu'aucune requête n'a été exécutée. -1 indique que le nombre de lignes affectées n'a pû être déterminé.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

/* Insertion de lignes */
$maxdb->query("CREATE TABLE mycustomer AS SELECT * from hotel.customer");
printf("Affected rows (INSERT): %d\n", $maxdb->affected_rows);

$maxdb->query("ALTER TABLE mycustomer ADD Status int default 0");

/* Mise à jour de lignes */
$maxdb->query("UPDATE mycustomer SET Status=1 WHERE cno > 50");
printf("Affected rows (UPDATE): %d\n", $maxdb->affected_rows);

/* Effacement de lignes */
$maxdb->query("DELETE FROM mycustomer WHERE cno < 50");
printf("Affected rows (DELETE): %d\n", $maxdb->affected_rows);

/* Sélection de toutes les lignes */
$result = $maxdb->query("SELECT title FROM mycustomer");
printf("Affected rows (SELECT): %d\n", $maxdb->affected_rows);

$result->close();

/* Effacement de la table Language */
$maxdb->query("DROP TABLE mycustomer");

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

if (!$link) {
    printf("Impossible de se connecter à localhost. Erreur : %s\n", maxdb_connect_error());
    exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

/* Insertion de lignes */
maxdb_query($link, "CREATE TABLE mycustomer AS SELECT * from hotel.customer");
printf("Nombres de lignes affectées (INSERT): %d\n", maxdb_affected_rows($link));

maxdb_query($link, "ALTER TABLE mycustomer ADD Status int default 0");

/* Mise à jour de lignes */
maxdb_query($link, "UPDATE mycustomer SET Status=1 WHERE cno > 50");
printf("Nombres de lignes affectées (UPDATE): %d\n", maxdb_affected_rows($link));

/* Effacement de lignes */
maxdb_query($link, "DELETE FROM mycustomer WHERE cno < 50");
printf("Nombres de lignes affectées (DELETE): %d\n", maxdb_affected_rows($link));

/* Sélectionne toutes les lignes */
$result = maxdb_query($link, "SELECT title FROM mycustomer");
printf("Nombres de lignes affectées (SELECT): %d\n", maxdb_affected_rows($link));

maxdb_free_result($result);

/* Effacement d'une table */
maxdb_query($link, "DROP TABLE mycustomer");

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affected rows (INSERT): 15
Affected rows (UPDATE): 15
Affected rows (DELETE): 0
Affected rows (SELECT): 15

Voir aussi

  • maxdb_num_rows() - Récupère le nombre de lignes dans un résultat
  • maxdb_info() - Récupère des informations sur le dernière requête exécutée


Active ou désactive l'auto-commit des modifications de la base de données

  • « maxdb_affected_rows
  • maxdb_bind_param »
  • PHP Manual
  • Fonctions MaxDB
  • Active ou désactive l'auto-commit des modifications de la base de données

maxdb_autocommit

maxdb::auto_commit

(PECL maxdb >= 1.0)

maxdb_autocommit -- maxdb::auto_commit — Active ou désactive l'auto-commit des modifications de la base de données

Description

Style procédural

bool maxdb_autocommit ( resource $link , bool $mode )

Style orienté objet

bool maxdb::auto_commit ( bool $mode )

maxdb_autocommit() est utilisé pour activer ou désactiver le mode auto-commit sur les requêtes pour la connexion à la base de données représentée par la ressource link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Activation de l'auto-commit */
$maxdb->autocommit(TRUE);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

if (!$link) {
    printf("Impossible de se connecter à localhost. Erreur : %s\n", maxdb_connect_error());
    exit();
}

/* Active l'auto-commit */
maxdb_autocommit($link, TRUE);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  • maxdb_commit() - Valide la transaction courante
  • maxdb_rollback() - Annule la transaction courante


Alias de maxdb_stmt_bind_param

  • « maxdb_autocommit
  • maxdb_bind_result »
  • PHP Manual
  • Fonctions MaxDB
  • Alias de maxdb_stmt_bind_param

maxdb_bind_param

(PECL maxdb 1.0)

maxdb_bind_param — Alias de maxdb_stmt_bind_param()

Description

Cette fonction est un alias de : maxdb_stmt_bind_param()

Cet alias est déprécié et n'existe que pour des raisons de compatibilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.


Alias de maxdb_stmt_bind_result

  • « maxdb_bind_param
  • maxdb_change_user »
  • PHP Manual
  • Fonctions MaxDB
  • Alias de maxdb_stmt_bind_result

maxdb_bind_result

(PECL maxdb 1.0)

maxdb_bind_result — Alias de maxdb_stmt_bind_result()

Description

Cette fonction est un alias de : maxdb_stmt_bind_result().

Cet alias est déprécié et n'existe que pour des raisons de compatibilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.


Modifie l'utilisateur de la connexion à la base de données spécifiée

  • « maxdb_bind_result
  • maxdb_character_set_name »
  • PHP Manual
  • Fonctions MaxDB
  • Modifie l'utilisateur de la connexion à la base de données spécifiée

maxdb_change_user

maxdb::change_user

(PECL maxdb >= 1.0)

maxdb_change_user -- maxdb::change_user — Modifie l'utilisateur de la connexion à la base de données spécifiée

Description

Style procédural

bool maxdb_change_user ( resource $link , string $user , string $password , string $database )

Style orienté objet

bool maxdb::change_user ( string $user , string $password , string $database )

maxdb_change_user() est utilisé pour modifier l'utilisateur de la connexion à la base de données spécifiée par le paramètre link et pour définir la base de données courant à celle spécifiée par le paramètre database.

Pour modifier avec succès un utilisateur, les paramètres username et password doivent être fournis et cet utilisateur doit avoir des permissions suffisantes pour accéder à la base de données désirées. Si pour une raison quelconque l'identification échoue, l'utilisateur courant sera conservé.

Note:

L'utilisation de cette commande fera que la connexion courante à la base de données sera renouvelée, comme si l'on avait fait une nouvelle connexion, indépendamment du succès de l'opération. Cette réinitialisation effectue une annulation sur toutes les transactions actives, ferme toutes les tables temporaires et déverrouille toutes les tables verrouillées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php

/* Connexion à la base de données */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($result = $maxdb->query("SELECT * FROM dual")) {
    $row = $result->fetch_row();
    printf("Résultat : %s\n", $row[0]);
    $result->free();
}

/* Réinitialisation et sélection d'une nouvelle base de données */
if (!$maxdb->change_user("DBADMIN", "SECRET", "DEMODB")) {
    printf("La base de données ne fonctionne pas.\n");
} else {
    printf("La base de données fonctionne.\n");
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($result = maxdb_query($link, "SELECT * FROM dual")) {
    $row = maxdb_fetch_row($result);
    printf("Résultat : %s\n", $row[0]);
    maxdb_free_result($result);
}

/* réinitialisation de tout et sélection d'une nouvelle base de données */
if (!maxdb_change_user($link, "DBADMIN", "SECRET", "DEMODB")) {
    printf("La base de données ne fonctionne pas.\n");
} else {
    printf("La base de données fonctionne.\n");
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Résultat : a
La base de données fonctionne.

Voir aussi

  • maxdb_connect() - Ouvre une nouvelle connexion sur un serveur MaxDB
  • maxdb_select_db() - Sélectionne une base de données pour les requêtes


Retourne le jeu de caractères par défaut pour la connexion à la base de données

  • « maxdb_change_user
  • maxdb_client_encoding »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne le jeu de caractères par défaut pour la connexion à la base de données

maxdb_character_set_name

maxdb::character_set_name

(PECL maxdb >= 1.0)

maxdb_character_set_name -- maxdb::character_set_name — Retourne le jeu de caractères par défaut pour la connexion à la base de données

Description

Style procédural

string maxdb_character_set_name ( resource $link )

Style orienté objet

string maxdb::character_set_name ( void )

Retourne le jeu de caractères courant défini pour la connexion à la base de données spécifiée par le paramètre link.

Valeurs de retour

Le jeu de caractères par défaut défini pour la connexion courante, soit ascii, soit unicode.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouverture d'une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affichage du jeu de caractères courant */
$charset = $maxdb->character_set_name();
printf ("Le jeu de caractères courant est %s\n", $charset);

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche le jeu de caractères courant */
$charset = maxdb_character_set_name($link);
printf ("Le jeu de caractères courant est %s\n",$charset);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le jeu de caractères courant est ascii

Voir aussi

  • maxdb_client_encoding() - Alias de maxdb_character_set_name
  • maxdb_real_escape_string() - Protège les caractères spéciaux d'une chaîne afin de l'utiliser dans une requête SQL, en tenant compte du jeu de caractères courant de la connexion


Alias de maxdb_character_set_name

  • « maxdb_character_set_name
  • maxdb_close_long_data »
  • PHP Manual
  • Fonctions MaxDB
  • Alias de maxdb_character_set_name

maxdb_client_encoding

(PECL maxdb 1.0)

maxdb_client_encoding — Alias de maxdb_character_set_name()

Description

Cette fonction est un alias de : maxdb_character_set_name().

Cet alias est déprécié et n'existe que pour des raisons de compatibilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.


Alias de maxdb_stmt_close_long_data

  • « maxdb_client_encoding
  • maxdb_close »
  • PHP Manual
  • Fonctions MaxDB
  • Alias de maxdb_stmt_close_long_data

maxdb_close_long_data

maxdb::close_long_data

(PECL maxdb >= 1.0)

maxdb_close_long_data -- maxdb::close_long_data — Alias de maxdb_stmt_close_long_data()

Description

Cette fonction est un alias de : maxdb_stmt_close_long_data().

Cet alias est déprécié et n'existe que pour des raisons de compatibilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.


Ferme une connexion à une base de données

  • « maxdb_close_long_data
  • maxdb_commit »
  • PHP Manual
  • Fonctions MaxDB
  • Ferme une connexion à une base de données

maxdb_close

maxdb::close

(PECL maxdb >= 1.0)

maxdb_close -- maxdb::close — Ferme une connexion à une base de données

Description

Style procédural

bool maxdb_close ( resource $link )

Style orienté objet

bool maxdb::close ( void )

maxdb_close() ferme une connexion à une base de données spécifiée par le paramètre link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • maxdb_connect() - Ouvre une nouvelle connexion sur un serveur MaxDB
  • maxdb_init() - Initialise MaxDB et retourne une ressource pour l'utiliser avec maxdb_real_connect
  • maxdb_real_connect() - Ouvre une connexion sur un serveur MaxDB


Valide la transaction courante

  • « maxdb_close
  • maxdb_connect_errno »
  • PHP Manual
  • Fonctions MaxDB
  • Valide la transaction courante

maxdb_commit

maxdb::commit

(PECL maxdb >= 1.0)

maxdb_commit -- maxdb::commit — Valide la transaction courante

Description

Style procédural

bool maxdb_commit ( resource $link )

Style orienté objet

bool maxdb::commit ( void )

maxdb_commit() valide la transaction courante pour la connexion à la base de données spécifiée par le paramètre link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Désactivation de l'auto-commit */
$maxdb->autocommit(FALSE);

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query("CREATE TABLE mycustomer LIKE hotel.customer");

/* Insertion de quelques valeurs */
$maxdb->query("INSERT INTO mycustomer VALUES (3000,'Mrs','Jenny','Porter','10580','1340 N.Ash Street, #3')");
$maxdb->query("INSERT INTO mycustomer VALUES (3100,'Mr','Peter','Brown','48226','1001 34th Str., APT.3')");

/* Valide la transaction */
$maxdb->commit();

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Connect failed: %s\n", maxdb_connect_error());
    exit();
}

/* Désactive l'auto-commit */
maxdb_autocommit($link, FALSE);

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE mycustomer LIKE hotel.customer");

/* Insertion de quelques lignes */
maxdb_query($link, "INSERT INTO mycustomer VALUES (3000,'Mrs','Jenny','Porter','10580','1340 N.Ash Street, #3')");
maxdb_query($link, "INSERT INTO mycustomer VALUES (3100,'Mr','Peter','Brown','48226','1001 34th Str., APT.3')");

/* Valide la transaction */
maxdb_commit($link);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus ne produit aucun affichage.

Voir aussi

  • maxdb_autocommit() - Active ou désactive l'auto-commit des modifications de la base de données
  • maxdb_rollback() - Annule la transaction courante


Retourne le code erreur du dernier appel à la connexion

  • « maxdb_commit
  • maxdb_connect_error »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne le code erreur du dernier appel à la connexion

maxdb_connect_errno

(PECL maxdb >= 1.0)

maxdb_connect_errno — Retourne le code erreur du dernier appel à la connexion

Description

int maxdb_connect_errno ( void )

maxdb_connect_errno() retourne le dernier code erreur du dernier appel à maxdb_connect(). Si aucune erreur n'est survenue, cette fonction retournera zéro.

Valeurs de retour

Un code erreur pour le dernier appel à maxdb_connect(), si elle a échouée. Zéro signifie qu'aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec maxdb_connect_errno()

<?php
$link = maxdb_connect("localhost", "XXXXXXXX", "YYYYYYYYY");

if (!$link) {
    printf("Impossible de se connecter à locahost. Code erreur : %d\n", maxdb_connect_errno());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Warning:  maxdb_connect(): -4008 POS(1) Unknown user name/password combination [08004] <...>
Impossible de se connecter à locahost. Code erreur : -4008

Voir aussi

  • maxdb_connect() - Ouvre une nouvelle connexion sur un serveur MaxDB
  • maxdb_connect_error() - Retourne une chaîne descriptive de la dernière erreur
  • maxdb_errno() - Retourne le code erreur pour le dernier appel à une fonction
  • maxdb_error() - Retourne une chaîne représentant la dernière erreur
  • maxdb_sqlstate() - Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB


Retourne une chaîne descriptive de la dernière erreur

  • « maxdb_connect_errno
  • maxdb_connect »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne une chaîne descriptive de la dernière erreur

maxdb_connect_error

(PECL maxdb >= 1.0)

maxdb_connect_error — Retourne une chaîne descriptive de la dernière erreur

Description

string maxdb_connect_error ( void )

maxdb_connect_error() est identique à la fonction maxdb_connect_errno(), excepté qu'au lieu de retourner un code erreur, maxdb_connect_error() retourne une chaîne représentative de la dernière erreur survenue lors du dernier appel à maxdb_connect(). Si aucune erreur n'est survenue, cette fonction retournera une chaîne vide.

Valeurs de retour

Une chaîne décrivant l'erreur. Une chaîne vide si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec maxdb_connect_error()

<?php

$link = maxdb_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Impossible de se connecter à localhost. Erreur : %s\n", maxdb_connect_error());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Warning:  maxdb_connect(): -4008 POS(1) Unknown user name/password combination <...>
Impossible de se connecter à localhost. Erreur : POS(1) Unknown user name/password combination

Voir aussi

  • maxdb_connect() - Ouvre une nouvelle connexion sur un serveur MaxDB
  • maxdb_connect_errno() - Retourne le code erreur du dernier appel à la connexion
  • maxdb_errno() - Retourne le code erreur pour le dernier appel à une fonction
  • maxdb_error() - Retourne une chaîne représentant la dernière erreur
  • maxdb_sqlstate() - Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB


Ouvre une nouvelle connexion sur un serveur MaxDB

  • « maxdb_connect_error
  • maxdb_data_seek »
  • PHP Manual
  • Fonctions MaxDB
  • Ouvre une nouvelle connexion sur un serveur MaxDB

maxdb_connect

maxdb::__construct

(PECL maxdb >= 1.0)

maxdb_connect -- maxdb::__construct — Ouvre une nouvelle connexion sur un serveur MaxDB

Description

Style procédural

resource maxdb_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] )

Style orienté objet

maxdb::__construct ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] )

maxdb_connect() tente d'ouvrir une connexion sur un serveur MaxDB fonctionnant sur l'hôte host qui peut être soit un nom d'hôte, soit une adresse IP. Passer la chaîne "localhost" à ce paramètre, l'hôte local sera assumé. En cas de succès, maxdb_connect() retournera une ressource représentant la connexion à la base de données ou FALSE si une erreur survient.

Les paramètres username et password spécifient le nom de l'utilisateur ainsi que le mot de passe utilisés pour la connexion au serveur MaxDB. Si le mot de passe n'est pas fourni (la valeur NULL est passée), le serveur MaxDB tentera d'identifier l'utilisateur encore une fois en utilisant la valeur de l'option de configuration maxdb.default_pw du php.ini.

Le paramètre dbname, si fourni, spécifie la base de données par défaut à utiliser lors de l'exécution de requêtes. S'il n'est pas fourni, l'option de configuration maxdb.default_db du php.ini est utilisée.

Les paramètres port et socket sont ignorés par le serveur MaxDB.

Valeurs de retour

Retourne une ressource représentant la connexion au serveur MaxDB ou FALSE si la connexion échoue.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérfication de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

printf("Informations sur l'hôte : %s\n", $maxdb->host_info);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED");

/* Vérifie la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

printf("Informations sur l'hôte : %s\n", maxdb_get_host_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Informations sur l'hôte : localhost


Ajuste le pointeur de résultat sur une ligne arbitraire dans le résultat

  • « maxdb_connect
  • maxdb_debug »
  • PHP Manual
  • Fonctions MaxDB
  • Ajuste le pointeur de résultat sur une ligne arbitraire dans le résultat

maxdb_data_seek

maxdb_result::data_seek

(PECL maxdb >= 1.0)

maxdb_data_seek -- maxdb_result::data_seek — Ajuste le pointeur de résultat sur une ligne arbitraire dans le résultat

Description

Style procédural

bool maxdb_data_seek ( resource $result , int $offset )

Style orienté objet

bool maxdb_result::data_seek ( int $offset )

maxdb_data_seek() se déplace sur un pointeur de résultat arbitraire spécifié par offset dans le jeu de résultats représenté par result. Le paramètre offset doit être compris entre zéro le nombre total de lignes moins un (0..maxdb_num_rows() - 1).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouverture de la connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Connect failed: %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER BY name";
if ($result = $maxdb->query( $query)) {

    /* Déplacement sur la ligne no. 10 */
    $result->data_seek(10);

    /* Récupération de la ligne */
    $row = $result->fetch_row();

    printf ("Ville : %s  Pays : %s\n", $row[0], $row[1]);

    /* Libération du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER BY name";

if ($result = maxdb_query($link, $query)) {

    /* Déplacement sur la ligne no. 400 */
    maxdb_data_seek($result, 10);

    /* Récupération de la ligne */
    $row = maxdb_fetch_row($result);

    printf ("Ville : %s  Pays : %s\n", $row[0], $row[1]);

    /* Libération du jeu de résultats*/
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ville : Irvine  Pays : CA

Voir aussi

  • maxdb_store_result() - Transfert un jeu de résultats depuis la dernière requête
  • maxdb_fetch_row() - Récupère une ligne de résultat en tant que tableau énuméré
  • maxdb_num_rows() - Récupère le nombre de lignes dans un résultat


Effectue des opérations de déboguage

  • « maxdb_data_seek
  • maxdb_disable_reads_from_master »
  • PHP Manual
  • Fonctions MaxDB
  • Effectue des opérations de déboguage

maxdb_debug

(PECL maxdb >= 1.0)

maxdb_debug — Effectue des opérations de déboguage

Description

void maxdb_debug ( string $debug )

maxdb_debug() peut être utilisé pour tracer la connexion SQLDBC. Les chaînes suivantes peuvent être utilisées en tant que paramètre de la fonction maxdb_debug() :

  • TRACE SHORT ON|OFF - Active/Désactive l'appel à la méthode de traçage.
  • TRACE LONG ON|OFF - Active/Désactive l'argument de la méthode et les détails de la trace de déboguage.
  • TRACE PACKET ON|OFF|<size> - Active/Désactive le paquet de trace, limitant la taille de l'objet de traçage au nombre d'octets spécifiés, ou 1000 si aucune taille n'est spécifiée.
  • TRACE SQL ON|OFF - Active/Désactive la trace de haut niveau de l'API.
  • TRACE TIMESTAMP ON|OFF - Active/Désactive un préfixe timestamp sur chaque ligne tracée.
  • TRACE SIZE <size> - Limite la taille du fichier de trace à <size> octets, 8192 octets sont au moins nécessaire.

Valeurs de retour

maxdb_debug() ne retourne aucune valeur.

Exemples

Exemple #1 Style procédural

<?php

maxdb_debug("trace packet 200");

$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus ne produit aucun affichage.


Désactive la lecture depuis le maître

  • « maxdb_debug
  • maxdb_disable_rpl_parse »
  • PHP Manual
  • Fonctions MaxDB
  • Désactive la lecture depuis le maître

maxdb_disable_reads_from_master

maxdb::disable_reads_from_master

(PECL maxdb >= 1.0)

maxdb_disable_reads_from_master -- maxdb::disable_reads_from_master — Désactive la lecture depuis le maître

Description

Style procédural

bool maxdb_disable_reads_from_master ( resource $link )

Style orienté objet

void maxdb::disable_reads_from_master ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Désactive l'analyseur RPL

  • « maxdb_disable_reads_from_master
  • maxdb_dump_debug_info »
  • PHP Manual
  • Fonctions MaxDB
  • Désactive l'analyseur RPL

maxdb_disable_rpl_parse

(PECL maxdb >= 1.0)

maxdb_disable_rpl_parse — Désactive l'analyseur RPL

Description

bool maxdb_disable_rpl_parse ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Sauvegarde les informations de déboguage dans un log

  • « maxdb_disable_rpl_parse
  • maxdb_embedded_connect »
  • PHP Manual
  • Fonctions MaxDB
  • Sauvegarde les informations de déboguage dans un log

maxdb_dump_debug_info

(PECL maxdb >= 1.0)

maxdb_dump_debug_info — Sauvegarde les informations de déboguage dans un log

Description

bool maxdb_dump_debug_info ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Ouvre une connexion sur un serveur MaxDB embarqué

  • « maxdb_dump_debug_info
  • maxdb_enable_reads_from_master »
  • PHP Manual
  • Fonctions MaxDB
  • Ouvre une connexion sur un serveur MaxDB embarqué

maxdb_embedded_connect

(PECL maxdb >= 1.0)

maxdb_embedded_connect — Ouvre une connexion sur un serveur MaxDB embarqué

Description

resource maxdb_embedded_connect ([ string $dbname ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Active la lecture depuis le maître

  • « maxdb_embedded_connect
  • maxdb_enable_rpl_parse »
  • PHP Manual
  • Fonctions MaxDB
  • Active la lecture depuis le maître

maxdb_enable_reads_from_master

(PECL maxdb >= 1.0)

maxdb_enable_reads_from_master — Active la lecture depuis le maître

Description

bool maxdb_enable_reads_from_master ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Active l'analyseur RPL

  • « maxdb_enable_reads_from_master
  • maxdb_errno »
  • PHP Manual
  • Fonctions MaxDB
  • Active l'analyseur RPL

maxdb_enable_rpl_parse

(PECL maxdb >= 1.0)

maxdb_enable_rpl_parse — Active l'analyseur RPL

Description

bool maxdb_enable_rpl_parse ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne le code erreur pour le dernier appel à une fonction

  • « maxdb_enable_rpl_parse
  • maxdb_error »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne le code erreur pour le dernier appel à une fonction

maxdb_errno

maxdb::errno

(PECL maxdb >= 1.0)

maxdb_errno -- maxdb::errno — Retourne le code erreur pour le dernier appel à une fonction

Description

Style procédural

int maxdb_errno ( resource $link )

Style orienté objet

int $maxdb->errno;

maxdb_errno() retourne le dernier code erreur pour le dernier appel à une fonction MaxDB, qu'elle ait réussie ou échouée, sur la connexion à la base de données représentée par le paramètre link. Si aucune erreur n'est survenue, cette fonction retournera zéro.

Valeurs de retour

Une valeur de code erreur pour le dernier appel, s'il a échoué. Zéro signifie qu'aucune erreur n'est survenue.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if (!$maxdb->query("SELECT xxx FROM hotel.city")) {
    printf("Code erreur : %d\n", $maxdb->errno);
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if (!maxdb_query($link, "SELECT xxx FROM hotel.city")) {
    printf("Code erreur : %d\n", maxdb_errno($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000] <...>
Code erreur : -4005

Voir aussi

  • maxdb_connect_errno() - Retourne le code erreur du dernier appel à la connexion
  • maxdb_connect_error() - Retourne une chaîne descriptive de la dernière erreur
  • maxdb_error() - Retourne une chaîne représentant la dernière erreur
  • maxdb_sqlstate() - Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB


Retourne une chaîne représentant la dernière erreur

  • « maxdb_errno
  • maxdb_escape_string »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne une chaîne représentant la dernière erreur

maxdb_error

maxdb::error

(PECL maxdb >= 1.0)

maxdb_error -- maxdb::error — Retourne une chaîne représentant la dernière erreur

Description

Style procédural

string maxdb_error ( resource $link )

Style orienté objet

string $maxdb->error;

maxdb_error() est identique à la fonction maxdb_errno() dans tous les sens, exceptée qu'au lieu de retourner une erreur sous forme d'entier, maxdb_error() retourne une chaîne représentant la dernière erreur survenue pour la connexion à la base de données représentée par le paramètre link. Si aucune erreur n'est survenue, cette fonction retournera une chaîne vide.

Valeurs de retour

Une chaîne décrivant l'erreur. Une chaîne vide si aucune erreur n'est survenue.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la conneixon */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion: %s\n", maxdb_connect_error());
    exit();
}

if (!$maxdb->query("SELECT xxx FROM hotel.city")) {
    printf("Message d'erreur : %s\n", $maxdb->error);
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if (!maxdb_query($link, "SELECT xxx FROM hotel.city")) {
    printf("Message d'erreur : %s\n", maxdb_error($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000]
Message d'erreur : POS(8) Unknown column name:XXX

Voir aussi

  • maxdb_connect_errno() - Retourne le code erreur du dernier appel à la connexion
  • maxdb_connect_error() - Retourne une chaîne descriptive de la dernière erreur
  • maxdb_errno() - Retourne le code erreur pour le dernier appel à une fonction
  • maxdb_sqlstate() - Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB


Alias de maxdb_real_escape_string

  • « maxdb_error
  • maxdb_execute »
  • PHP Manual
  • Fonctions MaxDB
  • Alias de maxdb_real_escape_string

maxdb_escape_string

(PECL maxdb 1.0)

maxdb_escape_string — Alias de maxdb_real_escape_string()

Description

Cette fonction est un alias de : maxdb_real_escape_string().


Alias de maxdb_stmt_execute

  • « maxdb_escape_string
  • maxdb_fetch_array »
  • PHP Manual
  • Fonctions MaxDB
  • Alias de maxdb_stmt_execute

maxdb_execute

(PECL maxdb 1.0)

maxdb_execute — Alias de maxdb_stmt_execute()

Description

Cette fonction est un alias de : maxdb_stmt_execute().

Cet alias est déprécié et n'existe que pour des raisons de compatibilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.


Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux

  • « maxdb_execute
  • maxdb_fetch_assoc »
  • PHP Manual
  • Fonctions MaxDB
  • Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux

maxdb_fetch_array

maxdb_result::fetch_array

(PECL maxdb >= 1.0)

maxdb_fetch_array -- maxdb_result::fetch_array — Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux

Description

Style procédural

mixed maxdb_fetch_array ( resource $result [, int $resulttype ] )

Style orienté objet

mixed maxdb_result::fetch_array ([ int $resulttype ] )

Retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes pour le jeu de résultats représenté par le paramètre result.

maxdb_fetch_array() est une version étendue de la fonction maxdb_fetch_row(). En plus de stocker les données dans un tableau de résultats aux indices numériques , la fonction maxdb_fetch_array() peut également stocker les données dans des indices associatifs, en utilisant les noms de champs du résultat en tant que clés.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Si deux colonnes ou plus du résultats ont les mêmes noms de champs, la dernière colonne aura la priorité et effacera les données précédentes. Pour accéder aux autres colonnes du même nom, la version indexée numériquement de la ligne doit être utilisée.

Le second argument optionnel resulttype est une constante indiquant quel type de tableau doit être produit pour les données de la ligne courante. Les valeurs possibles pour ce paramètre sont les constantes MAXDB_ASSOC, MAXDB_ASSOC_UPPER, MAXDB_ASSOC_LOWER, MAXDB_NUM, ou MAXDB_BOTH. Par défaut, la fonction maxdb_fetch_array() prendra la valeur MAXDB_BOTH, qui est une combinaison de MAXDB_NUM et de MAXDB_ASSOC, pour ce paramètre.

En utilisant la constante MAXDB_ASSOC, cette fonction fonctionne de la même manière que la fonction maxdb_fetch_assoc(), tandis que MAXDB_NUM fonctionne de la même manière que la fonction maxdb_fetch_row(). L'option MAXDB_BOTH créera un seul tableau contenant les deux sortes d'attributs.

En utilisant la constante MAXDB_ASSOC_UPPER, le comportement de cette fonction est identique à l'utilisation de MAXDB_ASSOC à la seule différence que l'index de la colonne du tableau est le nom du champ en majuscule.

En utilisant la constante MAXDB_ASSOC_LOWER, le comportement de cette fonction est identique à l'utilisation de MAXDB_ASSOC à la seule différence que l'index de la colonne du tableau est le nom du champ en minuscule.

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes de disponibles dans le jeu de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Connect failed: %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";
$result = $maxdb->query($query);

/* Tableau numérique */
$row = $result->fetch_array(MAXDB_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* Tableau associatif */
$row = $result->fetch_array(MAXDB_ASSOC);
printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);

/* Tableau associatif et numérique */
$row = $result->fetch_array(MAXDB_BOTH);
printf ("%s (%s)\n", $row[0], $row["STATE"]);

/* Libération du jeu de résultats */
$result->close();

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";
$result = maxdb_query($link, $query);

/* Tableau numérique */
$row = maxdb_fetch_array($result, MAXDB_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* Tableau associatif */
$row = maxdb_fetch_array($result, MAXDB_ASSOC);
printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);

/* Tableau associatif et numérique */
$row = maxdb_fetch_array($result, MAXDB_BOTH);
printf ("%s (%s)\n", $row[0], $row["STATE"]);

/* Libération du jeu de résultats */
maxdb_free_result($result);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

New York (NY)
New York (NY)
Long Island (NY)

Voir aussi

  • maxdb_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • maxdb_fetch_row() - Récupère une ligne de résultat en tant que tableau énuméré
  • maxdb_fetch_resource()


Récupère une ligne de résultat dans un tableau associatif

  • « maxdb_fetch_array
  • maxdb_fetch_field_direct »
  • PHP Manual
  • Fonctions MaxDB
  • Récupère une ligne de résultat dans un tableau associatif

maxdb_fetch_assoc

maxdb_result::fetch_assoc

(PECL maxdb >= 1.0)

maxdb_fetch_assoc -- maxdb_result::fetch_assoc — Récupère une ligne de résultat dans un tableau associatif

Description

Style procédural

array maxdb_fetch_assoc ( resource $result )

Style orienté objet

array maxdb_result::fetch_assoc ( void )

Retourne un tableau associatif qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes de disponibles.

maxdb_fetch_assoc() est utilisé pour retourner un tableau associatif représentant la prochaine ligne dans le jeu de résultats pour le résultat représenté par le paramètre result, où chaque clé du tableau représente le nom d'une des colonnes du jeu de résultats.

Si deux colonnes ou plus du résultats ont les mêmes noms de champs, la dernière colonne aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez soit accéder au résultat avec des indices numériques en utilisant la fonction maxdb_fetch_row(), soit ajouter des alias aux noms.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Valeurs de retour

Retourne un tableau représentant la ligne récupérée ou NULL s'il n'y a plus de lignes de disponibles.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Connect failed: %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

    /* Récupération du tableau associatif */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);
    }

    /* Libération du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

    /* Récupération du tableau associatif */
    while ($row = maxdb_fetch_assoc($result)) {
        printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);
    }

    /* Libération du jeu de résultats */
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Voir aussi

  • maxdb_fetch_array() - Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux
  • maxdb_fetch_row() - Récupère une ligne de résultat en tant que tableau énuméré
  • maxdb_fetch_resource()


Récupère les métadonnées pour un seul champ

  • « maxdb_fetch_assoc
  • maxdb_fetch_field »
  • PHP Manual
  • Fonctions MaxDB
  • Récupère les métadonnées pour un seul champ

maxdb_fetch_field_direct

maxdb_result::fetch_field_direct

(PECL maxdb >= 1.0)

maxdb_fetch_field_direct -- maxdb_result::fetch_field_direct — Récupère les métadonnées pour un seul champ

Description

Style procédural

mixed maxdb_fetch_field_direct ( resource $result , int $fieldnr )

Style orienté objet

mixed maxdb_result::fetch_field_direct ( int $fieldnr )

maxdb_fetch_field_direct() retourne une ressource qui contient les informations de définition des champs pour un jeu de résultat spécifique. La valeur du champ doit être dans l'intervalle 0 à number of fields - 1.

Valeurs de retour

Retourne une ressource qui contient les informations de définition des champs ou FALSE s'il n'y a plus d'informations pour le champ fieldnr.

Attributs de l'objet
Attribut | Description
name | Le nom de la colonne
max_length | La largeur maximale du champ pour le jeu de résultats
type | Le type de données utilisé pour ce champ
decimals | Le nombre de décimales utilisées (pour les champs entiers)

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY name";

if ($result = $maxdb->query($query)) {

    /* Récupère les informations pour la colonne 'SurfaceArea' */
    $finfo = $result->fetch_field_direct(1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY name";

if ($result = maxdb_query($link, $query)) {

    /* Récupère les informations pour la colonne 'cno' */
    $finfo = maxdb_fetch_field_direct($result, 1);

    printf("Nom :     %s\n", $finfo->name);
    printf("Table :    %s\n", $finfo->table);
    printf("Longueur max. : %d\n", $finfo->max_length);
    printf("Flags :    %d\n", $finfo->flags);
    printf("Type :     %d\n", $finfo->type);

    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nom :     CNO
Table :
Longueur max.: 4
Flags :    -1
Type :     0

Voir aussi

  • maxdb_num_fields() - Récupère le nombre de champs dans un résultat
  • maxdb_fetch_field() - Retourne le prochain champ d'un jeu de résultats
  • maxdb_fetch_fields() - Retourne un tableau de ressource représentant les champs dans un jeu de résultats


Retourne le prochain champ d'un jeu de résultats

  • « maxdb_fetch_field_direct
  • maxdb_fetch_fields »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne le prochain champ d'un jeu de résultats

maxdb_fetch_field

maxdb_result::fetch_field

(PECL maxdb >= 1.0)

maxdb_fetch_field -- maxdb_result::fetch_field — Retourne le prochain champ d'un jeu de résultats

Description

Style procédural

mixed maxdb_fetch_field ( resource $result )

Style orienté objet

mixed maxdb_result::fetch_field ( void )

maxdb_fetch_field() retourne la définition d'une colonne d'un jeu de résultats en tant que ressource. Appelez cette fonction de façon répétitive pour récupérer toutes les informations sur les colonnes dans le jeu de résultats. maxdb_fetch_field() retourne FALSE lorsqu'il n'y a plus de champs disponibles.

Valeurs de retour

Retourne une ressource contenant toutes les informations de définitions des champs ou FALSE s'il n'y a plus d'informations de champs disponibles.

Propriétés de l'objet
Propriété | Description
name | Le nom de la colonne
max_length | La largeur maximale d'un champ dans le jeu de résultats
type | Le type de données utilisé pour ce champ
decimals | Le nombre de décimales utilisées (pour les champs entiers)

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

    /* Récupération de l'information pour tous les champs */
    while ($finfo = $result->fetch_field()) {

        printf("Nom :     %s\n", $finfo->name);
        printf("Table :    %s\n", $finfo->table);
        printf("Longueur max. : %d\n", $finfo->max_length);
        printf("Flags :    %d\n", $finfo->flags);
        printf("Type :     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

    /* Récupération de l'information pour tous les champs */
    while ($finfo = maxdb_fetch_field($result)) {

        printf("Nom :     %s\n", $finfo->name);
        printf("Table :    %s\n", $finfo->table);
        printf("Longueur max.: %d\n", $finfo->max_length);
        printf("Flags :    %d\n", $finfo->flags);
        printf("Type :     %d\n\n", $finfo->type);
    }
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nom :     NAME
Table :
Longueur max. : 10
Flags :    -1
Type :     2

Nom :     CNO
Table :
Longueur max. : 4
Flags :    -1
Type :     0

Voir aussi

  • maxdb_num_fields() - Récupère le nombre de champs dans un résultat
  • maxdb_fetch_field_direct() - Récupère les métadonnées pour un seul champ
  • maxdb_fetch_fields() - Retourne un tableau de ressource représentant les champs dans un jeu de résultats
  • maxdb_field_seek() - Définit le pointeur de résultat à une position donnée


Retourne un tableau de ressource représentant les champs dans un jeu de résultats

  • « maxdb_fetch_field
  • maxdb_fetch_lengths »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne un tableau de ressource représentant les champs dans un jeu de résultats

maxdb_fetch_fields

maxdb_result::fetch_fields

(PECL maxdb >= 1.0)

maxdb_fetch_fields -- maxdb_result::fetch_fields — Retourne un tableau de ressource représentant les champs dans un jeu de résultats

Description

Style procédural

mixed maxdb_fetch_fields ( resource $result )

Style orienté objet

mixed maxdb_result::fetch_fields ( void )

Cette fonction est identique à la fonction maxdb_fetch_field() avec la seule différence qu'au lieu de retourner une ressource à la fois pour chaque champ, les colonnes sont retournées en tant que tableau de ressources.

Valeurs de retour

Retourne un tableau de ressources qui contient les informations de définitions des champs ou FALSE s'il n'y a plus d'informations de champs de disponibles.

Propriétés de l'objet
Propriété | Description
name | Le nom de la colonne
max_length | La largeur maximale d'un champ dans le jeu de résultats
type | Le type de données utilisé pour ce champ
decimals | Le nombre de décimales utilisées (pour les champs entiers)

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

    /* Récupération des informations pour toutes les colonnes */
    $finfo = $result->fetch_fields();

    foreach ($finfo as $val) {
        printf("Nom :     %s\n", $finfo[$i]->name);
        printf("Table :    %s\n", $finfo[$i]->table);
        printf("Longueur max. : %d\n", $finfo[$i]->max_length);
        printf("Flags :    %d\n", $finfo[$i]->flags);
        printf("Type :     %d\n\n", $finfo[$i]->type);
    }
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

    /* Récupération des informations pour toutes les colonnes */
    $finfo = maxdb_fetch_fields($result);

    foreach ($finfo as $val) {
        printf("Nom :     %s\n", $finfo[$i]->name);
        printf("Table :    %s\n", $finfo[$i]->table);
        printf("Longueur max. : %d\n", $finfo[$i]->max_length);
        printf("Flags :    %d\n", $finfo[$i]->flags);
        printf("Type :     %d\n\n", $finfo[$i]->type);
    }
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nom :     NAME
Table :
Longueur max. : 10
Flags :    -1
Type :     2

Nom :     CNO
Table :
Longueur max. : 4
Flags :    -1
Type :     0

Voir aussi

  • maxdb_num_fields() - Récupère le nombre de champs dans un résultat
  • maxdb_fetch_field() - Retourne le prochain champ d'un jeu de résultats
  • maxdb_fetch_field_direct() - Récupère les métadonnées pour un seul champ


Retourne la longueur des colonnes de la ligne courante dans un jeu de résultats

  • « maxdb_fetch_fields
  • maxdb_fetch_object »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne la longueur des colonnes de la ligne courante dans un jeu de résultats

maxdb_fetch_lengths

maxdb_result::lengths

(PECL maxdb >= 1.0)

maxdb_fetch_lengths -- maxdb_result::lengths — Retourne la longueur des colonnes de la ligne courante dans un jeu de résultats

Description

Style procédural

array maxdb_fetch_lengths ( resource $result )

Style orienté objet

array $maxdb_result->lengths;

maxdb_fetch_lengths() retourne un tableau contenant la longueur de chaque colonne de la ligne courante du jeu de résultats représenté par le paramètre result. Si cela réussit, un tableau indexé numériquement représentant la longueur de chaque colonne est retourné ou FALSE si une erreur survient.

Valeurs de retour

Un tableau d'entiers représentant la taille de chaque colonne (n'inclut aucun caractères nul de fin). FALSE si une erreur survient.

maxdb_fetch_lengths() est valide uniquement pour la ligne courante du jeu de résultats. Il retourne FALSE si vous l'appelez avant d'appeler les fonctions maxdb_fetch_row/array/resource ou après avoir récupéré toutes les lignes du jeu de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT * from hotel.customer WHERE cno = 3000";

if ($result = $maxdb->query($query)) {

    $row = $result->fetch_row();

    /* Affiche la longueur des colonnes */
    foreach ($result->lengths as $i => $val) {
        printf("Le champs %2d a une longueur de %2d\n", $i+1, $result->lengths[$i]);
    }
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT * from hotel.customer WHERE cno = 3000";

if ($result = maxdb_query($link, $query)) {

    $row = maxdb_fetch_row($result);

    /* Affiche la longueur des colonnes */
    foreach (maxdb_fetch_lengths($result) as $i => $val) {
        printf("Le champs %2d a une longueur de %2d\n", $i+1, $lengths[$i]);
    }
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le champs 1 a une longueur de 4
Le champs 2 a une longueur de 3
Le champs 3 a une longueur de 5
Le champs 4 a une longueur de 6
Le champs 5 a une longueur de 5
Le champs 6 a une longueur de 21


Retourne la ligne courante d'un jeu de résultats dans un objet

  • « maxdb_fetch_lengths
  • maxdb_fetch_row »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne la ligne courante d'un jeu de résultats dans un objet

maxdb_fetch_object

maxdb_result::fetch_object

(PECL maxdb >= 1.0)

maxdb_fetch_object -- maxdb_result::fetch_object — Retourne la ligne courante d'un jeu de résultats dans un objet

Description

Style procédural

object maxdb_fetch_object ( object $result )

Style orienté objet

object maxdb_result::fetch_object ( void )

maxdb_fetch_resource() retourne la ligne courante du jeu de résultats result dans un objet dont les attributs sont les noms des champs trouvés dans le jeu de résultats. S'il n'y a plus de lignes dans le jeu de résultats courant, NULL est retourné.

Valeurs de retour

Retourne une ressource qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes disponibles dans le jeu de résultats.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
printf("Connexion échouée : %s\n", maxdb_connect_error());
exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

    /* Lecture d'un objet */
    while ($obj = $result->fetch_object()) {
        printf ("%s (%s)\n", $obj->NAME, $obj->STATE);
    }

    /* Libération des ressources */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

    /* Récupération de l'objet */
    while ($obj = maxdb_fetch_object($result)) {
        printf ("%s (%s)\n", $obj->NAME, $obj->STATE);
    }

    /* Libération du résultat */
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Voir aussi

  • maxdb_fetch_array() - Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux
  • maxdb_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • maxdb_fetch_row() - Récupère une ligne de résultat en tant que tableau énuméré


Récupère une ligne de résultat en tant que tableau énuméré

  • « maxdb_fetch_object
  • maxdb_fetch »
  • PHP Manual
  • Fonctions MaxDB
  • Récupère une ligne de résultat en tant que tableau énuméré

maxdb_fetch_row

maxdb_result::fetch_row

(PECL maxdb >= 1.0)

maxdb_fetch_row -- maxdb_result::fetch_row — Récupère une ligne de résultat en tant que tableau énuméré

Description

Style procédural

mixed maxdb_fetch_row ( resource $result )

Style orienté objet

mixed maxdb_result::fetch_row ( void )

Retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de résultat.

maxdb_fetch_row() récupère une ligne de données depuis le jeu de résultats représenté par result et la retourne dans un tableau énuméré, où chaque colonne est stocké dans une entrée du tableau, en commençant à 0 (zéro). Chaque sous-séquence d'appel à la fonction maxdb_fetch_row() retourne la ligne suivante du jeu de résultats ou FALSE s'il n'y a plus de lignes de disponibles.

Valeurs de retour

maxdb_fetch_row() retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes disponibles dans le jeu de résultats.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Connect failed: %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

    /* Récupération du tableau énumératif */
    while ($row = $result->fetch_row()) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* Libération du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED");

/* Vérification de la connexion  */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

    /* Récupération du tableau énumératif */
    while ($row = maxdb_fetch_row($result)) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* Libération du jeu de résultats */
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Voir aussi

  • maxdb_fetch_array() - Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux
  • maxdb_fetch_assoc() - Récupère une ligne de résultat dans un tableau associatif
  • maxdb_fetch_resource()


Alias de maxdb_stmt_fetch

  • « maxdb_fetch_row
  • maxdb_field_count »
  • PHP Manual
  • Fonctions MaxDB
  • Alias de maxdb_stmt_fetch

maxdb_fetch

(PECL maxdb 1.0)

maxdb_fetch — Alias de maxdb_stmt_fetch()

Description

Cette fonction est un alias de : maxdb_stmt_fetch().

Cet alias est déprécié et n'existe que pour des raisons de compatibilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.


Retourne le nombre de colonnes pour la dernière requête

  • « maxdb_fetch
  • maxdb_field_seek »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne le nombre de colonnes pour la dernière requête

maxdb_field_count

maxdb::field_count

(PECL maxdb >= 1.0)

maxdb_field_count -- maxdb::field_count — Retourne le nombre de colonnes pour la dernière requête

Description

Style procédural

int maxdb_field_count ( resource $link )

Style orienté objet

int maxdb::field_count ( void )

Retourne le nombre de colonnes pour la dernière requête sur la connexion représentée par le paramètre link. Cette fonction est utile lors de l'utilisation de la fonction maxdb_store_result() pour déterminer si la requête a produit un jeu de résultats non-vide ou non, sans connaître la nature de la requête.

Valeurs de retour

Un entier représentant le nombre de champs dans un jeu de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE friends");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query( "CREATE TABLE friends (id int, name varchar(20))");

$maxdb->query( "INSERT INTO friends VALUES (1,'Hartmut')");
$maxdb->query( "INSERT INTO friends VALUES (2, 'Ulf')");

if ($maxdb->field_count()) {
    /* Ceci est une requête select/show ou describe */
    $result = $maxdb->store_result();

    /* Récupération du jeu de résultats */
    $row = $result->fetch_row();

    /* Libération du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE friends");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE friends (id int, name varchar(20))");

maxdb_query($link, "INSERT INTO friends VALUES (1,'Hartmut')");
maxdb_query($link, "INSERT INTO friends VALUES (2, 'Ulf')");

if (maxdb_field_count($link)) {
    /* Ceci est une requête select/show ou describe */
    $result = maxdb_store_result($link);

    /* Récupération du jeu de résultats */
    $row = maxdb_fetch_row($result);

    /* Libération du jeu de résultats */
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

Cet exemple ne produit aucun affichage.


Définit le pointeur de résultat à une position donnée

  • « maxdb_field_count
  • maxdb_field_tell »
  • PHP Manual
  • Fonctions MaxDB
  • Définit le pointeur de résultat à une position donnée

maxdb_field_seek

maxdb_result::field_seek

(PECL maxdb >= 1.0)

maxdb_field_seek -- maxdb_result::field_seek — Définit le pointeur de résultat à une position donnée

Description

Style procédural

bool maxdb_field_seek ( resource $result , int $fieldnr )

Style orienté objet

bool maxdb_result::field_seek ( int $fieldnr )

Définit le curseur de champ à une position donnée. Le prochain appel à la fonction maxdb_fetch_field() récupérera la définition de champ de la colonne associée avec cette position.

Note:

Pour placer le curseur au début d'une ligne, passez zéro comme valeur.

Valeurs de retour

maxdb_field_seek() retourne la valeur précédente du curseur de champ.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

    /* Récupération des informations de champ pour la deuxième colonne */
    $result->field_seek(1);
    $finfo = $result->fetch_field();

    printf("Nom :     %s\n", $finfo->name);
    printf("Table :    %s\n", $finfo->table);
    printf("Longueur max. : %d\n", $finfo->max_length);
    printf("Flags :    %d\n", $finfo->flags);
    printf("Type :     %d\n\n", $finfo->type);

    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

    /* Récupération des informations de champ pour la deuxième colonne */
    maxdb_field_seek($result, 1);
    $finfo = maxdb_fetch_field($result);

    printf("Nom :     %s\n", $finfo->name);
    printf("Table :    %s\n", $finfo->table);
    printf("Longueur max. : %d\n", $finfo->max_length);
    printf("Flags :    %d\n", $finfo->flags);
    printf("Type :     %d\n\n", $finfo->type);

    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nom :     NAME
Table :
Longueur max. : 10
Flags :    -1
Type :     2

Voir aussi

  • maxdb_fetch_field() - Retourne le prochain champ d'un jeu de résultats


Récupère la position du champ courant pour un pointeur de résultat

  • « maxdb_field_seek
  • maxdb_free_result »
  • PHP Manual
  • Fonctions MaxDB
  • Récupère la position du champ courant pour un pointeur de résultat

maxdb_field_tell

maxdb_result::current_field

(PECL maxdb >= 1.0)

maxdb_field_tell -- maxdb_result::current_field — Récupère la position du champ courant pour un pointeur de résultat

Description

Style procédural

int maxdb_field_tell ( resource $result )

Style orienté objet

int $maxdb_result->current_field;

Retourne la position du curseur de champs utilisé par le dernier appel à maxdb_fetch_field(). Cette valeur peut être utilisée en tant qu'argument à la fonction maxdb_field_seek().

Valeurs de retour

Retourne le position courant du curseur de champs.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

    /* Récupère les informations pour tous les champs */
    while ($finfo = $result->fetch_field()) {

        /* Récupère le position du curseur de champs */
        $currentfield = $result->current_field;

        printf("Colonne    %d:\n", $currentfield);
        printf("Nom:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("Longueur max. : %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

    /* Récupère les informations pour tous les champs */
    while ($finfo = maxdb_fetch_field($result)) {

        /* Récupère le position du curseur de champs */
        $currentfield = maxdb_field_tell($result);

        printf("Colonne    %d:\n", $currentfield);
        printf("Nom :     %s\n", $finfo->name);
        printf("Table :    %s\n", $finfo->table);
        printf("Longueur max. : %d\n", $finfo->max_length);
        printf("Flags :    %d\n", $finfo->flags);
        printf("Type :     %d\n\n", $finfo->type);
    }
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Colonne    1:
Nom :     NAME
Table :
Longueur max. : 10
Flags :    -1
Type :     2

Colonne    2:
Nom :     CNO
Table :
Longueur max. : 4
Flags :    -1
Type :     0

Voir aussi

  • maxdb_fetch_field() - Retourne le prochain champ d'un jeu de résultats
  • maxdb_field_seek() - Définit le pointeur de résultat à une position donnée


Libère la mémoire associée à un résultat

  • « maxdb_field_tell
  • maxdb_get_client_info »
  • PHP Manual
  • Fonctions MaxDB
  • Libère la mémoire associée à un résultat

maxdb_free_result

maxdb_result::free

(PECL maxdb >= 1.0)

maxdb_free_result -- maxdb_result::free — Libère la mémoire associée à un résultat

Description

Style procédural

void maxdb_free_result ( resource $result )

Style orienté objet

void maxdb_result::free ( void )

maxdb_free_result() libère la mémoire associée avec le résultat représenté par le paramètre result, qui a été allouée par maxdb_query(), maxdb_store_result() ou maxdb_use_result().

Note:

Vous devriez toujours libérer votre résultat avec la fonction maxdb_free_result(), lorsque votre ressource de résultat n'est plus utile.

Valeurs de retour

Cette fonction ne retourne aucune valeur.

Voir aussi

  • maxdb_query() - Exécute une requête sur une base de données
  • maxdb_stmt_store_result() - Transfert un jeu de résultats depuis une requête préparée
  • maxdb_store_result() - Transfert un jeu de résultats depuis la dernière requête
  • maxdb_use_result() - Initialise un jeu de résultats


Retourne la version du client MaxDB sous la forme d'une chaîne

  • « maxdb_free_result
  • maxdb_get_client_version »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne la version du client MaxDB sous la forme d'une chaîne

maxdb_get_client_info

(PECL maxdb >= 1.0)

maxdb_get_client_info — Retourne la version du client MaxDB sous la forme d'une chaîne

Description

string maxdb_get_client_info ( void )

maxdb_get_client_info() est utilisé pour retourner une chaîne représentant la version cliente utilisée dans l'extension MaxDB.

Valeurs de retour

Une chaîne représentant la version de la bibliothèque cliente MaxDB.

Exemples

Exemple #1 Exemple avec maxdb_get_client_info()

<?php

/* Nous n'avons pas besoin d'une connexion
pour déterminer la version de la bibliothèque MaxDB */

printf("Version de la bibliothèque cliente : %s\n", maxdb_get_client_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version de la bibliothèque cliente : libSQLDBC <...>

Voir aussi

  • maxdb_get_client_version() - Récupère des informations sur le client MaxDB
  • maxdb_get_server_info() - Retourne la version du serveur MaxDB
  • maxdb_get_server_version() - Retourne la version du serveur MaxDB sous la forme d'un entier


Récupère des informations sur le client MaxDB

  • « maxdb_get_client_info
  • maxdb_get_host_info »
  • PHP Manual
  • Fonctions MaxDB
  • Récupère des informations sur le client MaxDB

maxdb_get_client_version

(PECL maxdb >= 1.0)

maxdb_get_client_version — Récupère des informations sur le client MaxDB

Description

int maxdb_get_client_version ( void )

Retourne le numéro de version du client en tant qu'entier.

Valeurs de retour

Un nombre représentant la version de la bibliothèque cliente MaxDB dans le format : main_version*10000 + minor_version *100 + sub_version. Par exemple, 7.5.0 est retourné comme ceci : 70500.

Ceci est utile pour déterminer rapidement la version de la bibliothèque cliente pour savoir si certaines fonctionnalités existent.

Exemples

Exemple #1 Exemple avec maxdb_get_client_version()

<?php

/* Nous n'avons pas besoin d'une connexion
pour déterminer la version de la bibliothèque MaxDB */

printf("Version de la bibliothèque cliente : %d\n", maxdb_get_client_version());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version de la bibliothèque cliente : 7.<...>

Voir aussi

  • maxdb_get_client_info() - Retourne la version du client MaxDB sous la forme d'une chaîne
  • maxdb_get_server_info() - Retourne la version du serveur MaxDB
  • maxdb_get_server_version() - Retourne la version du serveur MaxDB sous la forme d'un entier


Retourne une chaîne représentant le type de de connexion utilisé

  • « maxdb_get_client_version
  • maxdb_get_metadata »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne une chaîne représentant le type de de connexion utilisé

maxdb_get_host_info

maxdb::get_host_info

(PECL maxdb >= 1.0)

maxdb_get_host_info -- maxdb::get_host_info — Retourne une chaîne représentant le type de de connexion utilisé

Description

Style procédural

string maxdb_get_host_info ( resource $link )

Style orienté objet

string $maxdb->host_info;

maxdb_get_host_info() retourne une chaîne décrivant la connexion représentée par le paramètre link.

Valeurs de retour

Une chaîne représentant l'hôte du serveur ainsi que le type de connexion.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche les informations de l'hôte */
printf("Informations sur l'hôte : %s\n", $maxdb->host_info);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche les informations de l'hôte */
printf("Informations sur l'hôte : %s\n", maxdb_get_host_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Informations sur l'hôte : localhost

Voir aussi

  • maxdb_get_proto_info() - Retourne la version du protocole MaxDB utilisé


Alias de maxdb_stmt_result_metadata

  • « maxdb_get_host_info
  • maxdb_get_proto_info »
  • PHP Manual
  • Fonctions MaxDB
  • Alias de maxdb_stmt_result_metadata

maxdb_get_metadata

(PECL maxdb 1.0)

maxdb_get_metadata — Alias de maxdb_stmt_result_metadata()

Description

Cette fonction est un alias de : maxdb_stmt_result_metadata().

Cet alias est déprécié et n'existe que pour des raisons de compatibilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.


Retourne la version du protocole MaxDB utilisé

  • « maxdb_get_metadata
  • maxdb_get_server_info »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne la version du protocole MaxDB utilisé

maxdb_get_proto_info

maxdb::protocol_version

(PECL maxdb >= 1.0)

maxdb_get_proto_info -- maxdb::protocol_version — Retourne la version du protocole MaxDB utilisé

Description

Style procédural

int maxdb_get_proto_info ( resource $link )

Style orienté objet

string $maxdb->protocol_version;

Retourne un entier représentant la version du protocole MaxDB utilisé par la connexion représentée par le paramètre link.

Valeurs de retour

Retourne un entier représentant la version du protocole (constante 10).

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche la version du protocole */
printf("Version du protocole : %d\n", $maxdb->protocol_version);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche la version du protocole */
printf("Version du protocole : %d\n", maxdb_get_proto_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du protocole : 10

Voir aussi

  • maxdb_get_host_info() - Retourne une chaîne représentant le type de de connexion utilisé


Retourne la version du serveur MaxDB

  • « maxdb_get_proto_info
  • maxdb_get_server_version »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne la version du serveur MaxDB

maxdb_get_server_info

maxdb::server_info

(PECL maxdb >= 1.0)

maxdb_get_server_info -- maxdb::server_info — Retourne la version du serveur MaxDB

Description

Style procédural

string maxdb_get_server_info ( resource $link )

Style orienté objet

string $maxdb->server_info;

Retourne une chaîne représentant la version du serveur MaxDB sur lequel l'extension MaxDB est connecté (représenté par le paramètre link).

Valeurs de retour

Une chaîne représentant la version du serveur.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche la version du serveur */
printf("Version du serveur : %s\n", $maxdb->server_info);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche la version du serveur */
printf("Version du serveur : %s\n", maxdb_get_server_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du serveur : Kernel    7<...>

Voir aussi

  • maxdb_get_client_info() - Retourne la version du client MaxDB sous la forme d'une chaîne
  • maxdb_get_client_version() - Récupère des informations sur le client MaxDB
  • maxdb_get_server_version() - Retourne la version du serveur MaxDB sous la forme d'un entier


Retourne la version du serveur MaxDB sous la forme d'un entier

  • « maxdb_get_server_info
  • maxdb_info »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne la version du serveur MaxDB sous la forme d'un entier

maxdb_get_server_version

maxdb::server_version

(PECL maxdb >= 1.0)

maxdb_get_server_version -- maxdb::server_version — Retourne la version du serveur MaxDB sous la forme d'un entier

Description

Style procédural

int maxdb_get_server_version ( resource $link )

Style orienté objet

int $maxdb->server_version;

maxdb_get_server_version() retourne la version du serveur connecté (représenté par le paramètre link) en tant qu'entier.

La forme de ce numéro de version est main_version * 10000 + minor_version * 100 + sub_version (i.e. version 7.5.0 est 70500).

Valeurs de retour

Un entier représentant la version du serveur.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche la version du serveur */
printf("Version du serveur : %d\n", $maxdb->server_version);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche la version du serveur */
printf("Version du serveur : %d\n", maxdb_get_server_version($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du serveur : 7<...>

Voir aussi

  • maxdb_get_client_info() - Retourne la version du client MaxDB sous la forme d'une chaîne
  • maxdb_get_client_version() - Récupère des informations sur le client MaxDB
  • maxdb_get_server_info() - Retourne la version du serveur MaxDB


Récupère des informations sur le dernière requête exécutée

  • « maxdb_get_server_version
  • maxdb_init »
  • PHP Manual
  • Fonctions MaxDB
  • Récupère des informations sur le dernière requête exécutée

maxdb_info

maxdb::info

(PECL maxdb >= 1.0)

maxdb_info -- maxdb::info — Récupère des informations sur le dernière requête exécutée

Description

Style procédural

string maxdb_info ( resource $link )

Style orienté objet

string $maxdb->info;

maxdb_info() retourne une chaîne contenant des informations sur la dernière requête exécutée. La nature de cette chaîne est définie ci-dessous :

Valeurs de retour possibles pour maxdb_info
Type de requête | Exemple de chaîne résultante
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Note:

Les requêtes qui ne correspondent pas à une des catégories ci-dessus ne sont pas supportées. Dans ce cas, maxdb_info() retourne une chaîne vide.

Valeurs de retour

Une chaîne représentant des informations additionnelles sur la dernière requête exécutée.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.t1 LIKE hotel.city");

/* INSERT INTO .. SELECT */
$maxdb->query("INSERT INTO temp.t1 SELECT * FROM hotel.city");
printf("%s\n", $maxdb->info);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.t1 LIKE hotel.city");

/* INSERT INTO .. SELECT */
maxdb_query($link, "INSERT INTO temp.t1 SELECT * FROM hotel.city");
printf("%s\n", maxdb_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Records: 25 Duplicates: 0 Warnings: 0

Voir aussi

  • maxdb_affected_rows() - Récupère le nombre de lignes affectées par la dernière opération MaxDB
  • maxdb_warning_count() - Retourne le nombre d'avertissements depuis la dernière requête pour un lien donné
  • maxdb_num_rows() - Récupère le nombre de lignes dans un résultat


Initialise MaxDB et retourne une ressource pour l'utiliser avec maxdb_real_connect

  • « maxdb_info
  • maxdb_insert_id »
  • PHP Manual
  • Fonctions MaxDB
  • Initialise MaxDB et retourne une ressource pour l'utiliser avec maxdb_real_connect

maxdb_init

(PECL maxdb >= 1.0)

maxdb_init — Initialise MaxDB et retourne une ressource pour l'utiliser avec maxdb_real_connect

Description

resource maxdb_init ( void )

Alloue ou initialise une ressource MaxDB utilisable pour avec les fonctions maxdb_options() et maxdb_real_connect().

Note:

Tous les appels de sous-séquence à n'importe quel fonction maxdb (sauf maxdb_options()) échoueront tant que la fonction maxdb_real_connect() ne sera pas appelée.

Valeurs de retour

Retourne une ressource.

Voir aussi

  • maxdb_options() - Définie des options
  • maxdb_close() - Ferme une connexion à une base de données
  • maxdb_real_connect() - Ouvre une connexion sur un serveur MaxDB
  • maxdb_connect() - Ouvre une nouvelle connexion sur un serveur MaxDB


Retourne le dernier identifiant généré automatiquement par la dernière requête

  • « maxdb_init
  • maxdb_kill »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne le dernier identifiant généré automatiquement par la dernière requête

maxdb_insert_id

maxdb::insert_id

(PECL maxdb >= 1.0)

maxdb_insert_id -- maxdb::insert_id — Retourne le dernier identifiant généré automatiquement par la dernière requête

Description

Style procédural

mixed maxdb_insert_id ( resource $link )

Style orienté objet

mixed $maxdb->insert_id;

maxdb_insert_id() retourne le denier identifiant généré par une requête sur une table qui a une colonne possédant l'attribut DEFAULT SERIAL. Si la dernière requête n'était pas une requête de type INSERT ou UPDATE ou si la table modifiée n'a pas de colonne possédant un attribut DEFAULT SERIAL, cette fonction retournera zéro.

Valeurs de retour

La valeur du champs DEFAULT SERIAL qui a été mis à jour par la dernière requête. Retourne zéro s'il n'y a aucune requête précédente sur la connexion ou si la requête n'a pas mis à jour la valeur DEFAULT_SERIAL.

Note:

Si le nombre généré est plus grand que la valeur maximale pour un entier, maxdb_insert_id() retournera une chaîne de caractères.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
printf("Echec de la connexion : %s\n", maxdb_connect_error());
exit();
}

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycity");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query("CREATE TABLE mycity LIKE hotel.city");
$maxdb->query("ALTER TABLE mycity ADD id FIXED(11) DEFAULT SERIAL");

$query = "INSERT INTO mycity (zip,name,state) VALUES ('12203','Albany' ,'NY')";
$maxdb->query($query);

printf ("Le nouvel enregistrement a comme identifiant %d.\n", $maxdb->insert_id);

/* Effacement de la table */
$maxdb->query("DROP TABLE mycity");

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
   printf("Echec de la connexion : %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycity");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE mycity LIKE hotel.city");
maxdb_query($link, "ALTER TABLE mycity ADD id FIXED(11) DEFAULT SERIAL");

$query = "INSERT INTO mycity (zip,name,state) VALUES ('12203','Albany' ,'NY')";
maxdb_query($link, $query);

printf ("Le nouvel enregistrement a comme identifiant %d.\n", maxdb_insert_id($link));

/* Effacement de la table */
maxdb_query($link, "DROP TABLE mycity");

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le nouvel enregistrement a comme identifiant 1.


Déconnecte un serveur MaxDB

  • « maxdb_insert_id
  • maxdb_master_query »
  • PHP Manual
  • Fonctions MaxDB
  • Déconnecte un serveur MaxDB

maxdb_kill

maxdb::kill

(PECL maxdb >= 1.0)

maxdb_kill -- maxdb::kill — Déconnecte un serveur MaxDB

Description

Style procédural

bool maxdb_kill ( resource $link , int $processid )

Style orienté objet

bool maxdb::kill ( int $processid )

Cette fonction est utilisée pour se déconnecter d'un serveur MaxDB spécifié par le paramètre processid.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Détermine l'identifiant du thread */
$thread_id = $maxdb->thread_id;

/* Tue la connexion */
$maxdb->kill($thread_id);

/* Ceci doit produire une erreur */
if (!$maxdb->query("CREATE TABLE myCity LIKE City")) {
    printf("Erreur : %s\n", $maxdb->error);
    exit;
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Détermine l'identifiant du thread */
$thread_id = maxdb_thread_id($link);

/* Tue la connexion */
maxdb_kill($link, $thread_id);

/* Ceci doit produire une erreur */
if (!maxdb_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Erreur : %s\n", maxdb_error($link));
    exit;
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Erreur : Session not connected

Voir aussi

  • maxdb_thread_id() - Retourne l'identifiant du thread pour la connexion courante


Force l'exécution d'une requête sur le maître

  • « maxdb_kill
  • maxdb_more_results »
  • PHP Manual
  • Fonctions MaxDB
  • Force l'exécution d'une requête sur le maître

maxdb_master_query

(PECL maxdb >= 1.0)

maxdb_master_query — Force l'exécution d'une requête sur le maître

Description

bool maxdb_master_query ( resource $link , string $query )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Vérifie s'il y a encore des résultats de disponibles depuis de multiples requêtes

  • « maxdb_master_query
  • maxdb_multi_query »
  • PHP Manual
  • Fonctions MaxDB
  • Vérifie s'il y a encore des résultats de disponibles depuis de multiples requêtes

maxdb_more_results

maxdb::more_results

(PECL maxdb >= 1.0)

maxdb_more_results -- maxdb::more_results — Vérifie s'il y a encore des résultats de disponibles depuis de multiples requêtes

Description

bool maxdb_more_results ( resource $link )

maxdb_more_results() indique si un ou plusieurs jeux de résultats sont disponibles depuis le dernier appel à la fonction maxdb_multi_query().

Valeurs de retour

Toujours FALSE.

Exemples

Voir la documentation sur la fonction maxdb_multi_query().

Voir aussi

  • maxdb_multi_query() - Exécute une requête sur une base de données
  • maxdb_next_result() - Prépare le prochain résultat depuis multi_query
  • maxdb_store_result() - Transfert un jeu de résultats depuis la dernière requête
  • maxdb_use_result() - Initialise un jeu de résultats


Exécute une requête sur une base de données

  • « maxdb_more_results
  • maxdb_next_result »
  • PHP Manual
  • Fonctions MaxDB
  • Exécute une requête sur une base de données

maxdb_multi_query

maxdb::multi_query

(PECL maxdb >= 1.0)

maxdb_multi_query -- maxdb::multi_query — Exécute une requête sur une base de données

Description

Style procédural

bool maxdb_multi_query ( resource $link , string $query )

Style orienté objet

bool maxdb::multi_query ( string $query )

maxdb_multi_query() fonctionne de la même manière que la fonction maxdb_query(). Les requêtes multiples ne sont pas encore supportées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query  = "SELECT * FROM dual";

/* Exécute de multiples requêtes */
if ($maxdb->multi_query($query)) {
    do {
        /* Stock le premier jeu de résultats */
        if ($result = $maxdb->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* Affiche une séparation */
        if ($maxdb->more_results()) {
            printf("-----------------\n");
        }
    } while ($maxdb->next_result());
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT * FROM dual";

/* Exécute de multiples requêtes */
if (maxdb_multi_query($link, $query)) {
    do {
        /* Stock le premier jeu de résultats */
        if ($result = maxdb_store_result($link)) {
            while ($row = maxdb_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            maxdb_free_result($result);
        }
        /* Affiche une séparation */
        if (maxdb_more_results($link)) {
        printf("-----------------\n");
        }
    } while (maxdb_next_result($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a

Voir aussi

  • maxdb_use_result() - Initialise un jeu de résultats
  • maxdb_store_result() - Transfert un jeu de résultats depuis la dernière requête
  • maxdb_next_result() - Prépare le prochain résultat depuis multi_query
  • maxdb_more_results() - Vérifie s'il y a encore des résultats de disponibles depuis de multiples requêtes


Prépare le prochain résultat depuis multi_query

  • « maxdb_multi_query
  • maxdb_num_fields »
  • PHP Manual
  • Fonctions MaxDB
  • Prépare le prochain résultat depuis multi_query

maxdb_next_result

maxdb::next_result

(PECL maxdb >= 1.0)

maxdb_next_result -- maxdb::next_result — Prépare le prochain résultat depuis multi_query

Description

bool maxdb_next_result ( resource $link )

Vu que les requêtes multiples ne sont pas encore implémentées, maxdb_next_result() retourne toujours FALSE.

Valeurs de retour

Retourne FALSE.

Voir aussi

  • maxdb_multi_query() - Exécute une requête sur une base de données
  • maxdb_more_results() - Vérifie s'il y a encore des résultats de disponibles depuis de multiples requêtes
  • maxdb_store_result() - Transfert un jeu de résultats depuis la dernière requête
  • maxdb_use_result() - Initialise un jeu de résultats


Récupère le nombre de champs dans un résultat

  • « maxdb_next_result
  • maxdb_num_rows »
  • PHP Manual
  • Fonctions MaxDB
  • Récupère le nombre de champs dans un résultat

maxdb_num_fields

maxdb_result::field_count

(PECL maxdb >= 1.0)

maxdb_num_fields -- maxdb_result::field_count — Récupère le nombre de champs dans un résultat

Description

Style procédural

int maxdb_num_fields ( resource $result )

Style orienté objet

int $maxdb_result->field_count;

maxdb_num_fields() retourne le nombre de champs pour un jeu de résultats spécifique.

Valeurs de retour

Le nombre de champs dans un jeu de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($result = $maxdb->query("SELECT * FROM hotel.city ORDER BY zip")) {

    /* Détermine le nombre de champs dans le jeu de résultats */
    $field_cnt = $result->field_count;

    printf("Le résultat contient %d champs.\n", $field_cnt);

    /* Fermeture du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($result = maxdb_query($link, "SELECT * FROM hotel.city ORDER BY zip")) {

    /* Détermine le nombre de champs dans le jeu de résultats */
    $field_cnt = maxdb_num_fields($result);

    printf("Le résultat contient %d champs.\n", $field_cnt);

    /* Fermeture du jeu de résultats */
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le résultat contient 3 champs.

Voir aussi

  • maxdb_fetch_field() - Retourne le prochain champ d'un jeu de résultats


Récupère le nombre de lignes dans un résultat

  • « maxdb_num_fields
  • maxdb_options »
  • PHP Manual
  • Fonctions MaxDB
  • Récupère le nombre de lignes dans un résultat

maxdb_num_rows

maxdb::num_rows

(PECL maxdb >= 1.0)

maxdb_num_rows -- maxdb::num_rows — Récupère le nombre de lignes dans un résultat

Description

Style procédural

int maxdb_num_rows ( resource $result )

Style orienté objet

int $maxdb->num_rows;

Retourne le nombre de lignes dans un jeu de résultats.

L'utilisation de la fonction maxdb_num_rows() dépend si vous utilisez des jeux de résultats bufferisés ou non. Dans le cas où vous utilisez des jeux de résultats non bufferisés, maxdb_num_rows() ne retournera pas un nombre de lignes correct tant que toutes les lignes du jeu de résultats n'auront pas été récupérées.

Valeurs de retour

Retourne le nombre de lignes dans le jeu de résultats.

Note:

Si le nombre de lignes est plus grand que la valeur maximale pour un entier, le nombre sera retourné en tant que chaîne de caractères.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($result = $maxdb->query("SELECT cno, name FROM hotel.customer ORDER BY name")) {

    /* Détermine le nombre de lignes dans le jeu de résultats */
    $row_cnt = $result->num_rows;

    printf("Le résultat contient %d lignes.\n", $row_cnt);

    /* Fermeture du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($result = maxdb_query($link, "SELECT cno, name FROM hotel.customer ORDER BY name")) {

    /* Détermine le nombre de lignes dans le jeu de résultats */
    $row_cnt = maxdb_num_rows($result);

    printf("Le résultat contient %d lignes.\n", $row_cnt);

    /* Fermeture du jeu de résultats */
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le résultat contient 15 lignes.

Voir aussi

  • maxdb_affected_rows() - Récupère le nombre de lignes affectées par la dernière opération MaxDB
  • maxdb_store_result() - Transfert un jeu de résultats depuis la dernière requête
  • maxdb_use_result() - Initialise un jeu de résultats
  • maxdb_query() - Exécute une requête sur une base de données


Définie des options

  • « maxdb_num_rows
  • maxdb_param_count »
  • PHP Manual
  • Fonctions MaxDB
  • Définie des options

maxdb_options

maxdb::options

(PECL maxdb >= 1.0)

maxdb_options -- maxdb::options — Définie des options

Description

Style procédural

bool maxdb_options ( resource $link , int $option , mixed $value )

Style orienté objet

bool maxdb::options ( int $option , mixed $value )

maxdb_options() peut être utilisé pour définir des options de connexion supplémentaire et affecte le comportement de cette connexion.

Cette fonction peut être appelée plusieurs fois pour définir différentes options.

maxdb_options() doit être appelé après
maxdb_init() et avant
maxdb_real_connect().

Le paramètre option est l'option que vous voulez définir, le paramètre value est la valeur de cette option. Pour plus de descriptions sur ces options, lisez » http://maxdb.sap.com/documentation/. Le paramètre option peut être une des valeurs suivantes :

Options valides
Nom | Description
MAXDB_COMPNAME | Le composant "name" utilisé pour initialiser l'environnement d'exécution SQLDBC.
MAXDB_APPLICATION | L'application à connecter à la base de données.
MAXDB_APPVERSION | La version de l'application.
MAXDB_SQLMODE | Le mode SQL.
MAXDB_UNICODE | TRUE si la connexion est un client unicode(UCS2), FALSE sinon.
MAXDB_TIMEOUT | Le délai maximal d'inactivité autorisé après lequel la connexion à la base de données sera fermée par le système.
MAXDB_ISOLATIONLEVEL | Spécifie si oui ou non et combien de verrous partagés et de verrous exclusifs sont demandés ou libérés implicitement.
MAXDB_PACKETCOUNT | Le nombre de paquets différents utilisés pour la connexion.
MAXDB_STATEMENTCACHESIZE | Le nombre de requêtes préparées à être mises en cache pour la connexion pour être réutilisées.
MAXDB_CURSORPREFIX | Le préfixe à utiliser pour les tables résultantes qui sont automatiquement nommées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Voir la documentation de la fonction maxdb_real_connect().

Voir aussi

  • maxdb_init() - Initialise MaxDB et retourne une ressource pour l'utiliser avec maxdb_real_connect
  • maxdb_real_connect() - Ouvre une connexion sur un serveur MaxDB


Alias de maxdb_stmt_param_count

  • « maxdb_options
  • maxdb_ping »
  • PHP Manual
  • Fonctions MaxDB
  • Alias de maxdb_stmt_param_count

maxdb_param_count

(PECL maxdb 1.0)

maxdb_param_count — Alias de maxdb_stmt_param_count()

Description

Cette fonction est un alias de : maxdb_stmt_param_count().

Cet alias est déprécié et n'existe que pour des raisons de compatibilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.


Test une connexion à un serveur ou tente de se reconnecter si la connexion a été interrompue

  • « maxdb_param_count
  • maxdb_prepare »
  • PHP Manual
  • Fonctions MaxDB
  • Test une connexion à un serveur ou tente de se reconnecter si la connexion a été interrompue

maxdb_ping

maxdb::ping

(PECL maxdb >= 1.0)

maxdb_ping -- maxdb::ping — Test une connexion à un serveur ou tente de se reconnecter si la connexion a été interrompue

Description

Style procédural

bool maxdb_ping ( resource $link )

Style orienté objet

bool maxdb::ping ( void )

Vérifie si la connexion au serveur est active. Si elle a été interrompue et que l'option globale maxdb.reconnect est active, une reconnexion automatique est tentée.

Cette fonction peut être utilisée par les clients qui restent en attente durant de grande période, pour vérifier si la connexion a été interrompue par le serveur et pour se reconnecter si nécessaire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Vérifie si la connexion est active */
if ($maxdb->ping()) {
    printf ("Notre connexion est Ok !\n");
} else {
    printf ("Erreur : %s\n", $maxdb->error);
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Vérifie si la connexion est active */
if (maxdb_ping($link)) {
    printf ("Notre connexion est Ok !\n");
} else {
    printf ("Erreur : %s\n", maxdb_error($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Notre connexion est Ok !


Prépare une requête SQL pour exécution

  • « maxdb_ping
  • maxdb_query »
  • PHP Manual
  • Fonctions MaxDB
  • Prépare une requête SQL pour exécution

maxdb_prepare

maxdb::prepare

(PECL maxdb >= 1.0)

maxdb_prepare -- maxdb::prepare — Prépare une requête SQL pour exécution

Description

Style procédural

resource maxdb_prepare ( resource $link , string $query )

Style orienté objet

maxdb_stmt maxdb::prepare ( string $query )

maxdb_prepare() prépare la requête SQL pointée par la chaîne de requête et retourne un gestionnaire de requête à utiliser pour les opérations futures sur la requête. La requête doit être composée d'une seule requête SQL.

Note:

Vous ne devez pas ajouter de point-virgule ou de \g à la fin de la requête.

Le paramètre query peut inclure un ou plusieurs marqueurs dans la requête SQL en y intégrant des point d'interrogations (?) aux positions voulues.

Note:

Les marqueurs sont autorisés uniquement à des positions précises dans les requêtes SQL. Par exemple, ils sont autorisés dans la liste VALUE() d'une requête INSERT (pour spécifier une valeur de colonne pour une ligne), ou dans une comparaison avec une colonne dans une clause WHERE pour spécifier une valeur de comparaison.

Cependant, ils ne sont pas autorisés pour les identifiants (comme les noms de tables ou de colonnes), dans la liste SELECT qui nomme les colonnes à être retournées par les requêtes SELECT), ou pour spécifier les opérants d'un opérateur binaire comme le signe égal (=). La dernière restriction est nécessaire car il est impossible de déterminer le type du paramètre. En général, les paramètres sont légaux uniquement dans les requêtes Data Manipulation Languange (DML) et non dans les requêtes Data Defination Language (DDL).

Les marqueurs doit être liés aux variables en utilisant les fonctions maxdb_stmt_bind_param() et/ou maxdb_stmt_bind_result() avant d'exécuter la requête ou de récupérer les lignes.

Valeurs de retour

maxdb_prepare() retourne une ressource de requête ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec dela connexion : %s\n", maxdb_connect_error());
    exit();
}

$city = "Rosemont";

/* Création d'une requête préparée */
if ($stmt = $maxdb->prepare("SELECT state FROM hotel.city WHERE name=?")) {

    /* Lie les paramètres aux marqueurs */
    $stmt->bind_param("s", $city);

    /* Exécute la requête */
    $stmt->execute();

    /* Lie les variables de résultats */
    $stmt->bind_result($district);

    /* Récupération des valeurs */
    $stmt->fetch();

    printf("%s est dans %s\n", $city, $district);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec dela connexion : %s\n", maxdb_connect_error());
    exit();
}

$city = "Rosemont";

/* Création d'une requête préparée */
if ($stmt = maxdb_prepare($link, "SELECT state FROM hotel.city WHERE name=?")) {

     /* Lie les paramètres aux marqueurs */
     maxdb_stmt_bind_param($stmt, "s", $city);

     /* Exécute la requête */
     maxdb_stmt_execute($stmt);

     /* Lie les variables de résultats */
     maxdb_stmt_bind_result($stmt, $district);

     /* Récupération des valeurs */
     maxdb_stmt_fetch($stmt);

     printf("%s est dans %s\n", $city, $district);

     /* Fermeture de la requête */
     maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Rosemont est dans IL

Voir aussi

  • maxdb_stmt_execute() - Exécute une requête préparée
  • maxdb_stmt_fetch() - Récupère les résultats depuis la requête préparée dans les variables liées
  • maxdb_stmt_bind_param() - Lie les variables à une requête préparée en tant que paramètres
  • maxdb_stmt_bind_result() - Lie les variables à une requête préparée pour stockage du résultat
  • maxdb_stmt_close() - Ferme une requête préparée


Exécute une requête sur une base de données

  • « maxdb_prepare
  • maxdb_real_connect »
  • PHP Manual
  • Fonctions MaxDB
  • Exécute une requête sur une base de données

maxdb_query

maxdb::query

(PECL maxdb >= 1.0)

maxdb_query -- maxdb::query — Exécute une requête sur une base de données

Description

Style procédural

mixed maxdb_query ( resource $link , string $query [, int $resultmode ] )

Style orienté objet

mixed maxdb::query ( string $query )

maxdb_query() est utilisé pour simplifier l'exécution d'une requête sur une base de données représentée par le paramètre link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Pour les requêtes SELECT, SHOW, DESCRIBE ou EXPLAIN, maxdb_query() retourne une ressource de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* La création d'une table ne retourne pas de jeu de résultats*/
if ($maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city") === TRUE) {
    printf("La table mycity a été créée avec succès.\n");
}

/* Les requêtes SELECT retournent un jeu de résultats */
if ($result = $maxdb->query("SELECT name FROM hotel.city")) {
    printf("SELECT a retourné %d lignes.\n", $result->num_rows);

    /* Libération des résultats */
    $result->close();
}

/* Si nous devons récupérer une grosse quantité de données, nous utilisons MAXDB_USE_RESULT */
if ($result = $maxdb->query("SELECT * FROM hotel.city", MAXDB_USE_RESULT)) {
    $result->close();
}

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* La création d'une table ne retourne pas de jeu de résultats */
if (maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city") === TRUE) {
    printf("La table mycity a été créée avec succès.\n");
}

/* Les requêtes SELECT retournent un jeu de résultats */
if ($result = maxdb_query($link, "SELECT name FROM hotel.city")) {
    printf("SELECT a retourné %d lignes.\n", maxdb_num_rows($result));

    /* Libération des résultats */
    maxdb_free_result($result);
}

/* Si nous devons récupérer une grosse quantité de données, nous utilisons MAXDB_USE_RESULT */
if ($result = maxdb_query($link, "SELECT * FROM hotel.city", MAXDB_USE_RESULT)) {
    maxdb_free_result($result);
}

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

La table mycity a été créée avec succès.
SELECT a retourné 25 lignes.

Voir aussi

  • maxdb_real_query() - Exécute une requête SQL
  • maxdb_multi_query() - Exécute une requête sur une base de données
  • maxdb_free_result() - Libère la mémoire associée à un résultat


Ouvre une connexion sur un serveur MaxDB

  • « maxdb_query
  • maxdb_real_escape_string »
  • PHP Manual
  • Fonctions MaxDB
  • Ouvre une connexion sur un serveur MaxDB

maxdb_real_connect

maxdb::real_connect

(PECL maxdb >= 1.0)

maxdb_real_connect -- maxdb::real_connect — Ouvre une connexion sur un serveur MaxDB

Description

Style procédural

bool maxdb_real_connect ( resource $link [, string $hostname [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] )

Style orienté objet

bool maxdb::real_connect ([ string $hostname [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] )

maxdb_real_connect() tente d'ouvrir une connexion sur un serveur MaxDB fonctionnant sur l'hôte hostname.

Cette fonction diffère de maxdb_connect() :

  • maxdb_real_connect() nécessite une ressource valide créée par la fonction maxdb_init().

  • Avec la fonction maxdb_options(), vous pouvez définir plusieurs options pour la connexion.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php

/* Création d'un objet de connexion qui n'est pas connecté */
$maxdb = maxdb_init();

/* Définition des options de connexion */
$maxdb->options(MAXDB_UNICODE, "FALSE");
$maxdb->options(MAXDB_TIMEOUT, 5);

/* Connexion au serveur */
$maxdb->real_connect('localhost', 'MONA', 'RED', 'DEMODB');

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

printf ("Connexion : %s\n.", $maxdb->host_info);

$maxdb->close();
?>

Exemple #2 Style procédural

<?php

/* Création d'un objet de connexion qui n'est pas connecté */
$link = maxdb_init();

/* Définition des options de connexion */
maxdb_options($link, MAXDB_UNICODE, "FALSE");
maxdb_options($link, MAXDB_TIMEOUT, 5);

/* Connexion au serveur */
maxdb_real_connect($link, 'localhost', 'MONA', 'RED', 'DEMODB');

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

printf ("Connexion : %s\n.", maxdb_get_host_info($link));

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Connexion: localhost <...>

Voir aussi

  • maxdb_connect() - Ouvre une nouvelle connexion sur un serveur MaxDB
  • maxdb_init() - Initialise MaxDB et retourne une ressource pour l'utiliser avec maxdb_real_connect
  • maxdb_options() - Définie des options
  • maxdb_ssl_set() - Utilisé pour établir une connexion sécurisée utilisant SSL
  • maxdb_close() - Ferme une connexion à une base de données


Protège les caractères spéciaux d'une chaîne afin de l'utiliser dans une requête SQL, en tenant compte du jeu de caractères courant de la connexion

  • « maxdb_real_connect
  • maxdb_real_query »
  • PHP Manual
  • Fonctions MaxDB
  • Protège les caractères spéciaux d'une chaîne afin de l'utiliser dans une requête SQL, en tenant compte du jeu de caractères courant de la connexion

maxdb_real_escape_string

maxdb::real_escape_string

(PECL maxdb >= 1.0)

maxdb_real_escape_string -- maxdb::real_escape_string — Protège les caractères spéciaux d'une chaîne afin de l'utiliser dans une requête SQL, en tenant compte du jeu de caractères courant de la connexion

Description

Style procédural

string maxdb_real_escape_string ( resource $link , string $escapestr )

Style orienté objet

string maxdb::real_escape_string ( string $escapestr )

Cette fonction est utilisée pour créer une chaîne SQL valide que vous pouvez utiliser dans une requête SQL. La chaîne escapestr est encodée en une chaîne échappée SQL, en tenant compte du jeu de caractères courant de la connexion.

Les caractères encodés sont ', ".

Valeurs de retour

Retourne une chaîne échappée.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

$city = "'s Hertogenbosch";

/* Cette requête échouera, car nous n'avons pas échappé $city */
if (!$maxdb->query("INSERT into temp.mycity VALUES ('11111','$city','NY')")) {
    printf("Erreur : %s\n", $maxdb->sqlstate);
}

$city = $maxdb->real_escape_string($city);

/* Cette requête, avec $city échappé, fonctionnera */
if ($maxdb->query("INSERT into temp.mycity VALUES ('22222','$city','NY')")) {
    printf("%d ligne insérée.\n", $maxdb->affected_rows);
}

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

$city = "'s Hertogenbosch";

/* Cette requête échouera, car nous n'avons pas échappé $city */
if (!maxdb_query($link, "INSERT into temp.mycity VALUES ('11111','$city','NY')")) {
    printf("Erreur : %s\n", maxdb_sqlstate($link));
}

$city = maxdb_real_escape_string($link, $city);

/* Cette requête, avec $city échappé, fonctionnera */
if (maxdb_query($link, "INSERT into temp.mycity VALUES ('22222','$city','NY')")) {
    printf("%d ligne insérée.\n", maxdb_affected_rows($link));
}

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_query(): -5016 POS(43) Missing delimiter: ) <...>
Erreur : 42000
1 ligne insérée.

Voir aussi

  • maxdb_character_set_name() - Retourne le jeu de caractères par défaut pour la connexion à la base de données


Exécute une requête SQL

  • « maxdb_real_escape_string
  • maxdb_report »
  • PHP Manual
  • Fonctions MaxDB
  • Exécute une requête SQL

maxdb_real_query

maxdb::real_query

(PECL maxdb >= 1.0)

maxdb_real_query -- maxdb::real_query — Exécute une requête SQL

Description

Style procédural

bool maxdb_real_query ( resource $link , string $query )

Style orienté objet

bool maxdb::real_query ( string $query )

maxdb_real_query() est identique au niveau fonctionnalité que la fonction maxdb_query().

Note:

Pour déterminer si une requête donnée doit retourner un jeu de résultats ou non, référez-vous à la fonction maxdb_field_count().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • maxdb_query() - Exécute une requête sur une base de données
  • maxdb_store_result() - Transfert un jeu de résultats depuis la dernière requête
  • maxdb_use_result() - Initialise un jeu de résultats


Active ou désactive le rapport interne des fonctions

  • « maxdb_real_query
  • maxdb_rollback »
  • PHP Manual
  • Fonctions MaxDB
  • Active ou désactive le rapport interne des fonctions

maxdb_report

(PECL maxdb 1.0)

maxdb_report — Active ou désactive le rapport interne des fonctions

Description

bool maxdb_report ( int $flags )

Liste de paramètres

flags

Une des constantes MAXDB_REPORT_XXX.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style procédural

<?php
/* Active les rapports */
maxdb_report(MAXDB_REPORT_ERROR);

$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Cette requête doit produire une erreur */
$result = maxdb_query($link,"SELECT Name FROM Nonexistingtable WHERE population > 50000");

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_query(): -4004 POS(18) Unknown table name:NONEXISTINGTABLE <...>


Annule la transaction courante

  • « maxdb_report
  • maxdb_rpl_parse_enabled »
  • PHP Manual
  • Fonctions MaxDB
  • Annule la transaction courante

maxdb_rollback

maxdb::rollback

(PECL maxdb >= 1.0)

maxdb_rollback -- maxdb::rollback — Annule la transaction courante

Description

Style procédural

bool maxdb_rollback ( resource $link )

Style orienté objet

bool maxdb::rollback ( void )

Annule la transaction courante pour la base de données spécifiée par le paramètre link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Désactive l'auto-commit */
$maxdb->autocommit(FALSE);

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

/* Exécution */
$maxdb->commit();

/* Efface toutes les lignes */
$maxdb->query("DELETE FROM temp.mycity");

if ($result = $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
    $row = $result->fetch_row();
    printf("%d rows in table mycity.\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Rollback */
$maxdb->rollback();

if ($result = $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
    $row = $result->fetch_row();
    printf("%d ligne dans la table mycity (après annulation).\n", $row[0]);
    /* Libération du résultat */
    $result->close();
}

/* Effacement de la table myCity */
$maxdb->query("DROP TABLE temp.mycity");

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Désactive l'auto-commit */
maxdb_autocommit($link, FALSE);

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

/* Exécution */
maxdb_commit($link);

/* Efface toutes les lignes */
maxdb_query($link, "DELETE FROM temp.mycity");

if ($result = maxdb_query($link, "SELECT COUNT(*) FROM temp.mycity")) {
    $row = maxdb_fetch_row($result);
    printf("%d ligne dans la table mycity.\n", $row[0]);
    /* Libération du résultats */
    maxdb_free_result($result);
}

/* Annulation */
maxdb_rollback($link);

if ($result = maxdb_query($link, "SELECT COUNT(*) FROM temp.mycity")) {
    $row = maxdb_fetch_row($result);
    printf("%d lignes dans la table mycity (après annulation).\n", $row[0]);
    /* Libération du résultat */
    maxdb_free_result($result);
}

/* Effacement de la table myCity */
maxdb_query($link, "DROP TABLE temp.mycity");

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0 ligne dans la table mycity.
25 lignes dans la table mycity (après annulation).

Voir aussi

  • maxdb_commit() - Valide la transaction courante
  • maxdb_autocommit() - Active ou désactive l'auto-commit des modifications de la base de données


Vérifie si l'analyseur RPL est activé

  • « maxdb_rollback
  • maxdb_rpl_probe »
  • PHP Manual
  • Fonctions MaxDB
  • Vérifie si l'analyseur RPL est activé

maxdb_rpl_parse_enabled

(PECL maxdb >= 1.0)

maxdb_rpl_parse_enabled — Vérifie si l'analyseur RPL est activé

Description

int maxdb_rpl_parse_enabled ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Test RPL

  • « maxdb_rpl_parse_enabled
  • maxdb_rpl_query_type »
  • PHP Manual
  • Fonctions MaxDB
  • Test RPL

maxdb_rpl_probe

(PECL maxdb >= 1.0)

maxdb_rpl_probe — Test RPL

Description

bool maxdb_rpl_probe ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne une requête de type RPL

  • « maxdb_rpl_probe
  • maxdb_select_db »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne une requête de type RPL

maxdb_rpl_query_type

maxdb::rpl_query_type

(PECL maxdb >= 1.0)

maxdb_rpl_query_type -- maxdb::rpl_query_type — Retourne une requête de type RPL

Description

Style procédural

int maxdb_rpl_query_type ( resource $link )

Style orienté objet

int maxdb::rpl_query_type ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Sélectionne une base de données pour les requêtes

  • « maxdb_rpl_query_type
  • maxdb_send_long_data »
  • PHP Manual
  • Fonctions MaxDB
  • Sélectionne une base de données pour les requêtes

maxdb_select_db

maxdb::select_db

(PECL maxdb >= 1.0)

maxdb_select_db -- maxdb::select_db — Sélectionne une base de données pour les requêtes

Description

bool maxdb_select_db ( resource $link , string $dbname )

maxdb_select_db() sélectionne la base de données (spécifiée par le paramètre dbname) a être utilisée lors de l'exécution de requête sur la connexion représentée par le paramètre link.

Note:

Cette fonction ne doit être utilisée que pour changer de base de données pour une connexion donnée. Vous pouvez sélectionner une base de données par défaut en utilisant le quatrième paramètres dans la fonction maxdb_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Retourne le nom de la base de données courante */
if ($result = $maxdb->query("SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
    $row = $result->fetch_row();
    printf("La base de données par défaut est %s.\n", $row[0]);
    $result->close();
}

/* Changement de base de données en une base inexistante */
$maxdb->select_db("XXXXXXXX");

/* Retourne le nom de la base de données courante */
if ($result = $maxdb->query("SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
    $row = $result->fetch_row();
    printf("La base de données courante est %s.\n", $row[0]);
    $result->close();
}

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Retourne le nom de la base de données courante */
if ($result = maxdb_query($link, "SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
    $row = maxdb_fetch_row($result);
    printf("La base de données par défaut est %s.\n", $row[0]);
    maxdb_free_result($result);
}

/* Changement de base de données en une base inexistante */
maxdb_select_db($link, "XXXXXXXX");

/* Retourne le nom de la base de données courante */
if ($result = maxdb_query($link, "SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
    $row = maxdb_fetch_row($result);
    printf("La base de données courante est %s.\n", $row[0]);
    maxdb_free_result($result);
}

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

La base de données courante est <...>.

Warning: maxdb_select_db(): -10709 Connection failed (RTE:database not running) <...>

Warning: maxdb_query(): -10821 Session not connected [] <...>

Warning: maxdb_close(): -10821 Session not connected [] <...>

Voir aussi

  • maxdb_connect() - Ouvre une nouvelle connexion sur un serveur MaxDB
  • maxdb_real_connect() - Ouvre une connexion sur un serveur MaxDB


Alias de maxdb_stmt_send_long_data

  • « maxdb_select_db
  • maxdb_send_query »
  • PHP Manual
  • Fonctions MaxDB
  • Alias de maxdb_stmt_send_long_data

maxdb_send_long_data

(PECL maxdb >= 1.0)

maxdb_send_long_data — Alias de maxdb_stmt_send_long_data()

Description

Cette fonction est un alias de : maxdb_stmt_send_long_data().

Cet alias est déprécié et n'existe que pour des raisons de compatibilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.


Envoie une requête et retourne

  • « maxdb_send_long_data
  • maxdb_server_end »
  • PHP Manual
  • Fonctions MaxDB
  • Envoie une requête et retourne

maxdb_send_query

maxdb::send_query

(PECL maxdb >= 1.0)

maxdb_send_query -- maxdb::send_query — Envoie une requête et retourne

Description

Style procédural

bool maxdb_send_query ( resource $link , string $query )

Style orienté objet

bool maxdb::send_query ( string $query )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Éteint un serveur embarqué

  • « maxdb_send_query
  • maxdb_server_init »
  • PHP Manual
  • Fonctions MaxDB
  • Éteint un serveur embarqué

maxdb_server_end

(PECL maxdb >= 1.0)

maxdb_server_end — Éteint un serveur embarqué

Description

void maxdb_server_end ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Initialise un serveur embarqué

  • « maxdb_server_end
  • maxdb_set_opt »
  • PHP Manual
  • Fonctions MaxDB
  • Initialise un serveur embarqué

maxdb_server_init

(PECL maxdb >= 1.0)

maxdb_server_init — Initialise un serveur embarqué

Description

bool maxdb_server_init ([ array $server [, array $groups ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Alias de maxdb_options

  • « maxdb_server_init
  • maxdb_sqlstate »
  • PHP Manual
  • Fonctions MaxDB
  • Alias de maxdb_options

maxdb_set_opt

(PECL maxdb 1.0)

maxdb_set_opt — Alias de maxdb_options()

Description

Cette fonction est un alias de : maxdb_options().


Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB

  • « maxdb_set_opt
  • maxdb_ssl_set »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB

maxdb_sqlstate

maxdb::sqlstate

(PECL maxdb >= 1.0)

maxdb_sqlstate -- maxdb::sqlstate — Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB

Description

Style procédural

string maxdb_sqlstate ( resource $link )

Style orienté objet

string $maxdb->sqlstate;

Retourne une chaîne contenant le code erreur SQLSTATE pour la dernière erreur. Le code erreur est composé de cinq caractères. '00000' signifie aucune erreur. Les valeurs sont spécifiées par ANSI SQL et ODBC.

Note:

Notez que toutes les erreurs MaxDB ne sont pas encore implémentées dans SQLSTATE. La valeur HY000 (erreur générale) est utilisée pour les erreurs non implémentées.

Valeurs de retour

Retourne une chaîne contenant le code erreur SQLSTATE pour la dernière erreur. Le code erreur est composé de cinq caractères. '00000' signifie aucune erreur.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* La table City existe déjà, donc nous devrions avoir une erreur */
if (!$maxdb->query("CREATE TABLE hotel.city (ID INT, Name VARCHAR(30))")) {
    printf("Erreur - SQLSTATE %s.\n", $maxdb->sqlstate);
}

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* La table City existe déjà, donc nous devrions avoir une erreur */
if (!maxdb_query($link, "CREATE TABLE hotel.city (ID INT, Name VARCHAR(30))")) {
    printf("Erreur - SQLSTATE %s.\n", maxdb_sqlstate($link));
}

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_query(): -6000 POS(20) Duplicate table name:CITY [I6000] <...>
Erreur - SQLSTATE I6000.

Voir aussi

  • maxdb_errno() - Retourne le code erreur pour le dernier appel à une fonction
  • maxdb_error() - Retourne une chaîne représentant la dernière erreur


Utilisé pour établir une connexion sécurisée utilisant SSL

  • « maxdb_sqlstate
  • maxdb_stat »
  • PHP Manual
  • Fonctions MaxDB
  • Utilisé pour établir une connexion sécurisée utilisant SSL

maxdb_ssl_set

maxdb::ssl_set

(PECL maxdb >= 1.0)

maxdb_ssl_set -- maxdb::ssl_set — Utilisé pour établir une connexion sécurisée utilisant SSL

Description

Style procédural

bool maxdb_ssl_set ( resource $link , string $key , string $cert , string $ca , string $capath , string $cipher )

Style orienté objet

bool maxdb::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Récupère le statut courant du système

  • « maxdb_ssl_set
  • maxdb_stmt_affected_rows »
  • PHP Manual
  • Fonctions MaxDB
  • Récupère le statut courant du système

maxdb_stat

maxdb::stat

(PECL maxdb >= 1.0)

maxdb_stat -- maxdb::stat — Récupère le statut courant du système

Description

Style procédural

string maxdb_stat ( resource $link )

Style orienté objet

string maxdb::stat ( void )

maxdb_stat() retourne une chaîne contenant plusieurs informations concernant le serveur MaxDB.

Valeurs de retour

Une chaîne décrivant le statut du serveur ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

printf ("Statut du système : %s\n", $maxdb->stat());

$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

printf("Statut du système : %s\n", maxdb_stat($link));

maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Statut du système : Kernel    7<...>

Voir aussi

  • maxdb_get_server_info() - Retourne la version du serveur MaxDB


Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête

  • « maxdb_stat
  • maxdb_stmt_bind_param »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête

maxdb_stmt_affected_rows

maxdb_stmt::affected_rows

(PECL maxdb >= 1.0)

maxdb_stmt_affected_rows -- maxdb_stmt::affected_rows — Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête

Description

Style procédural

int maxdb_stmt_affected_rows ( resource $stmt )

Style orienté objet

int $maxdb_stmt->affected_rows;

maxdb_stmt_affected_rows() retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE. Si la dernière requête est invalide ou si le nombre de lignes ne peut être déterminé, cette fonction retournera -1.

Valeurs de retour

Un entier plus grand que zéro indique le nombre de lignes affectées ou récupérées. Zéro indique qu'aucun enregistrement n'a été mis à jour pour une requête UPDATE/DELETE; aucune ligne ne correspond à la clause WHERE d'une requête ou bien qu'aucun requête n'a été exécutée pour le moment. -1 indique que la requête a retournée une erreur ou bien que le nombre de lignes n'a pu être déterminé.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Création d'une table temporaire */
$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

$query = "INSERT INTO temp.mycity SELECT * FROM hotel.city WHERE state LIKE ?";

/* Prépare une requête */
if ($stmt = $maxdb->prepare($query)) {

    /* Lie les variables à un endroit */
    $code = 'N%';
    $stmt->bind_param("s", $code);

    /* Exécute la requête */
    $stmt->execute();

    printf("Lignes insérées : %d\n", $stmt->affected_rows);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Création d'une table temporaire */
maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

$query = "INSERT INTO temp.mycity SELECT * FROM hotel.city WHERE state LIKE ?";

/* Prépare une requête */
if ($stmt = maxdb_prepare($link, $query)) {

    /* Lie les variables à un endroit */
    $code = 'N%';
    maxdb_stmt_bind_param($stmt, "s", $code);

    /* Exécute la requête */
    maxdb_stmt_execute($stmt);

    printf("Lignes insérées : %d\n", maxdb_stmt_affected_rows($stmt));

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Lignes insérées : 4

Voir aussi

  • maxdb_stmt_num_rows() - Retourne le nombre de lignes dans le jeu de résultats
  • maxdb_prepare() - Prépare une requête SQL pour exécution


Lie les variables à une requête préparée en tant que paramètres

  • « maxdb_stmt_affected_rows
  • maxdb_stmt_bind_result »
  • PHP Manual
  • Fonctions MaxDB
  • Lie les variables à une requête préparée en tant que paramètres

maxdb_stmt_bind_param

maxdb_stmt::bind_param

(PECL maxdb >= 1.0)

maxdb_stmt_bind_param -- maxdb_stmt::bind_param — Lie les variables à une requête préparée en tant que paramètres

Description

Style procédural

bool maxdb_stmt_bind_param ( resource $stmt , string $types , mixed &$var1 [, mixed &$... ] )

Style orienté objet

bool maxdb_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

Style procédural (syntaxe étendue) :

bool maxdb_stmt_bind_param ( resource $stmt , string $types , array &$var )

Style orienté objet (syntaxe étendue) :

bool maxdb_stmt::bind_param ( string $types , array &$var )

maxdb_stmt_bind_param() est utilisé pour lier les variables pour les marqueurs dans la requête SQL qui a été passée à maxdb_prepare(). La chaîne types contient un ou plusieurs caractères qui spécifient le(s) type(s) correspondant aux variables liées.

La syntaxe étendue de maxdb_stmt_bind_param() permet de passer les paramètres en tant que tableaux plutôt qu'en tant que listes de variables PHP à la fonction. Si le tableau de variables n'a pas été utilisé avant l'appel à la fonction maxdb_stmt_bind_param(), il doit être initialisé en tant que tableau vide. Voir les exemples sur l'utilisation de la fonction maxdb_stmt_bind_param() avec la syntaxe étendue.

Les variables pour les requêtes SELECT INTO SQL peuvent également être liées en utilisant la fonction maxdb_stmt_bind_param(). Les paramètres pour les procédures de base de données peuvent être liés en utilisant la fonction maxdb_stmt_bind_param(). Voir les exemples sur l'utilisation de la fonction maxdb_stmt_bind_param() dans ce cas.

Si une variable liée comme variable INTO à une requête SQL a été utilisée avant, le contenu de cette variable sera écrasé par les données de la requête SELECT INTO. Une référence sur cette variable sera invalide après un appel à la fonction maxdb_stmt_bind_param().

Pour les paramètres INOUT des procédures de base de données, le contenu de la variable liée INOUT sera écrasé par la valeur de sortie de la procédure de la base de données. Une référence sur cette variable sera invalide après un appel à la fonction maxdb_stmt_bind_param().

Caractères spécifiant les types
Caractères | Description
i | correspond à une variable de type entier
d | correspond à une variable de type nombre décimal
s | correspond à une variable de type chaîne de caractères
b | correspond à une variable de type blob et sera envoyée dans le paquet

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb('localhost', 'MONA', 'RED', 'DEMODB');

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");
$stmt->bind_param('sss', $zip, $name, $state);

$zip = '11111';
$name = 'Georgetown';
$state = 'NY';

/* Exécution de la requête préparée */
$stmt->execute();

printf("%d ligne insérée.\n", $stmt->affected_rows);

/* Fermeture de la requête */
$stmt->close();

/* Nettoyage de la table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d ligne effacée.\n", $maxdb->affected_rows);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query ($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query ($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = maxdb_prepare($link, "INSERT INTO temp.mycity VALUES (?, ?, ?)");
maxdb_stmt_bind_param($stmt, 'sss', $zip, $name, $state);

$zip = '11111';
$name = 'Georgetown';
$state = 'NY';

/* Exécution de la requête préparée */
maxdb_stmt_execute($stmt);

printf("%d ligne insérée.\n", maxdb_stmt_affected_rows($stmt));

/* Fermeture de la requête */
maxdb_stmt_close($stmt);

/* Nettoyage de la table CountryLanguage */
maxdb_query($link, "DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d ligne effacée.\n", maxdb_affected_rows($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1 ligne insérée.
1 ligne effacée.

Exemple #3 Style procédural (SELECT INTO)

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Exécution d'une requête SQL */
$stmt = maxdb_prepare ($link, "SELECT price INTO ? FROM hotel.room where hno = ? and type = ?");
if (!$stmt) {
    printf ("Echec de la préparation : %s\n", maxdb_error($link));
}

$hno = "50";
$rtype = "suite";

maxdb_stmt_bind_param($stmt, 'dss', $price, $hno, $rtype);
maxdb_stmt_execute($stmt);

printf ("%f\n", $price);

maxdb_stmt_close ($stmt);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

21.600000

Exemple #4 Style procédural (avec procédure de base)

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);

$query = "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";

maxdb_query($link, $query);

/* Exécution d'une requête SQL */
$stmt = maxdb_prepare ($link, "CALL test_proc (?)");
if (!$stmt) {
    printf ("Echec de la préparation : %s\n", maxdb_error($link));
}

maxdb_stmt_bind_param($stmt, 's', $result);
maxdb_stmt_execute($stmt);

printf ("%s\n", $result);

maxdb_stmt_close ($stmt);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a

Exemple #5 Style orienté objet (syntaxe étendue)

<?php
$maxdb = new maxdb('localhost', 'MONA', 'RED', 'DEMODB');

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Connect failed: %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");

$arr = array();

$stmt->bind_param('iss', $arr);

$arr[0] = 11111;
$arr[1] = 'Georgetown';
$arr[2] = 'NY';

/* Exécution de la requête préparée */
$stmt->execute();

printf("%d ligne insérée.\n", maxdb_stmt_affected_rows($stmt));

$arr[0] = 22222;
$arr[1] = 'New Orleans';
$arr[2] = 'LA';

/* Exécution de la requête préparée */
$stmt->execute();

printf("%d ligne insérée.\n", $stmt->affected_rows);

/* Fermeture de la requête et de la connexion */
$stmt->close();

$result = $maxdb->query("SELECT * from temp.mycity WHERE zip = '11111' OR zip = '22222'");
if ($result) {
    while ($row = $result->fetch_row()) {
        printf ("%s %s %s\n", $row[0], $row[1], $row[2]);
    }
}

/* Nettoyage de la table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
$maxdb->query("DELETE FROM temp.mycity WHERE name='New Orleans'");
printf("%d lignes effacées.\n", $maxdb->affected_rows);

/* Fermeture de la connexion */
$maxdb->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1 ligne insérée.
1 ligne insérée.
11111 Georgetown NY
22222 New Orleans LA
2 lignes effacées.

Voir aussi

  • maxdb_stmt_bind_result() - Lie les variables à une requête préparée pour stockage du résultat
  • maxdb_stmt_execute() - Exécute une requête préparée
  • maxdb_stmt_fetch() - Récupère les résultats depuis la requête préparée dans les variables liées
  • maxdb_prepare() - Prépare une requête SQL pour exécution
  • maxdb_stmt_send_long_data() - Envoie un bloc de données
  • maxdb_stmt_errno() - Retourne le code erreur pour le dernier appel à une fonction de requête
  • maxdb_stmt_error() - Retourne une description de la dernière erreur


Lie les variables à une requête préparée pour stockage du résultat

  • « maxdb_stmt_bind_param
  • maxdb_stmt_close_long_data »
  • PHP Manual
  • Fonctions MaxDB
  • Lie les variables à une requête préparée pour stockage du résultat

maxdb_stmt_bind_result

maxdb_stmt::bind_result

(PECL maxdb >= 1.0)

maxdb_stmt_bind_result -- maxdb_stmt::bind_result — Lie les variables à une requête préparée pour stockage du résultat

Description

Style procédural

bool maxdb_stmt_bind_result ( resource $stmt , mixed &$var1 [, mixed &$... ] )

Style orienté objet

bool maxdb_stmt::bind_result ( mixed &$var1 [, mixed &$... ] )

maxdb_stmt_bind_result() est utilisé pour associer (lier) les colonnes du jeu de résultats à des variables. Lorsque maxdb_stmt_fetch() est appelé pour récupérer les données, Le protocole client/serveur MaxDB place les données pour les colonnes liées dans les variables spécifiées var1, ....

Note:

Notez que toutes les colonnes doivent être liées avant l'appel à maxdb_stmt_fetch(). Les variables liées peuvent être modifiées en leur type PHP correspondant suivant le type des colonnes.

Une colonne peut être liée ou reliée à n'importe quel moment, y compris après la récupération d'une partie du jeu de résultats. La nouvelle association prend effet au prochain appel à maxdb_stmt_fetch().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Préparation de la requête */
if ($stmt = $maxdb->prepare("SELECT zip, name FROM hotel.city ORDER BY name")) {
    $stmt->execute();

    /* Lie les variables à la requête préparée */
    $stmt->bind_result($col1, $col2);

    /* Récupération des valeurs */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

    /* Fermeture de la requête */
    $stmt->close();
}
/* Fermeture de la connexion */
$maxdb->close();

?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Préparation de la requête */
if ($stmt = maxdb_prepare($link, "SELECT zip, name FROM hotel.city ORDER BY name")) {
    maxdb_stmt_execute($stmt);

    /* Lie les variables à la requête préparée */
    maxdb_stmt_bind_result($stmt, $col1, $col2);

    /* Récupération des valeurs */
    while (maxdb_stmt_fetch($stmt)) {
        printf("%s %s\n", $col1, $col2);
    }

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

12203 Albany
60601 Chicago
60615 Chicago
45211 Cincinnati
33575 Clearwater
75243 Dallas
32018 Daytona Beach
33441 Deerfield Beach
48226 Detroit
90029 Hollywood
92714 Irvine
90804 Long Beach
11788 Long Island
90018 Los Angeles
70112 New Orleans
10019 New York
10580 New York
92262 Palm Springs
97213 Portland
60018 Rosemont
95054 Santa Clara
20903 Silver Spring
20005 Washington
20019 Washington
20037 Washington

Voir aussi

  • maxdb_stmt_bind_param() - Lie les variables à une requête préparée en tant que paramètres
  • maxdb_stmt_execute() - Exécute une requête préparée
  • maxdb_stmt_fetch() - Récupère les résultats depuis la requête préparée dans les variables liées
  • maxdb_prepare() - Prépare une requête SQL pour exécution
  • maxdb_stmt_prepare() - Prépare une requête SQL pour exécution
  • maxdb_stmt_init() - Initialise une requête et retourne une ressource à utiliser avec maxdb_stmt_prepare
  • maxdb_stmt_errno() - Retourne le code erreur pour le dernier appel à une fonction de requête
  • maxdb_stmt_error() - Retourne une description de la dernière erreur


Termine une séquence maxdb_stmt_send_long_data

  • « maxdb_stmt_bind_result
  • maxdb_stmt_close »
  • PHP Manual
  • Fonctions MaxDB
  • Termine une séquence maxdb_stmt_send_long_data

maxdb_stmt_close_long_data

maxdb_stmt::close_long_data

(PECL maxdb 1.0)

maxdb_stmt_close_long_data -- maxdb_stmt::close_long_data — Termine une séquence maxdb_stmt_send_long_data()

Description

Style procédural

bool maxdb_stmt_close_long_data ( resource $stmt , int $param_nr )

Style orienté objet

bool maxdb_stmt::close_long_data ( void )

Cette fonction doit être appelée après une séquence de maxdb_stmt_send_long_data(), qui a été commencée après maxdb_execute().

param_nr indique quel paramètre à associer avec la fin des données. Les paramètres sont numérotés en commençant à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • maxdb_prepare() - Prépare une requête SQL pour exécution
  • maxdb_stmt_bind_param() - Lie les variables à une requête préparée en tant que paramètres


Ferme une requête préparée

  • « maxdb_stmt_close_long_data
  • maxdb_stmt_data_seek »
  • PHP Manual
  • Fonctions MaxDB
  • Ferme une requête préparée

maxdb_stmt_close

maxdb_stmt::close

(PECL maxdb >= 1.0)

maxdb_stmt_close -- maxdb_stmt::close — Ferme une requête préparée

Description

Style procédural

bool maxdb_stmt_close ( resource $stmt )

Style orienté objet

bool maxdb_stmt::close ( void )

Ferme une requête préparée. maxdb_stmt_close() Libère également le gestionnaire de requête représenté par stmt. Si la requête courante est en attente ou a des résultats non lus, cette fonction s'interrompt et ainsi, la prochaine requête peut être exécutée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • maxdb_prepare() - Prépare une requête SQL pour exécution


Se positionne sur une ligne arbitraire dans le jeu de résultats

  • « maxdb_stmt_close
  • maxdb_stmt_errno »
  • PHP Manual
  • Fonctions MaxDB
  • Se positionne sur une ligne arbitraire dans le jeu de résultats

maxdb_stmt_data_seek

maxdb_stmt::data_seek

(PECL maxdb >= 1.0)

maxdb_stmt_data_seek -- maxdb_stmt::data_seek — Se positionne sur une ligne arbitraire dans le jeu de résultats

Description

Style procédural

bool maxdb_stmt_data_seek ( resource $statement , int $offset )

Style orienté objet

bool maxdb_stmt::data_seek ( int $offset )

maxdb_stmt_data_seek() déplace le pointeur sur une ligne arbitraire offset du jeu de résultat statement. Le paramètre offset doit être compris entre zéro et le nombre total de lignes moins un (0..maxdb_stmt_num_rows() - 1).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

    /* Exécute une requête */
    $stmt->execute();

    /* Lie les variables de résultats */
    $stmt->bind_result($name, $code);

    /* Stock le résultat */
    $stmt->store_result();

    /* Se place sur la ligne no. 5 */
    $stmt->data_seek(5);

    /* Récupère les valeurs */
    $stmt->fetch();

    printf ("Ville : %s  Code postal : %s\n", $name, $code);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre une connexion */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

    /* Exécute une requête */
    maxdb_stmt_execute($stmt);

    /* Lie les variables de résultats */
    maxdb_stmt_bind_result($stmt, $name, $code);

    /* Stock le résultat */
    maxdb_stmt_store_result($stmt);

    /* Se place sur la ligne no. 5 */
    maxdb_stmt_data_seek($stmt, 5);

    /* Récupère les valeurs */
    maxdb_stmt_fetch($stmt);

    printf ("Ville : %s  Code postal : %s\n", $name, $code);

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ville : Dallas  Code postal : 75243

Voir aussi

  • maxdb_prepare() - Prépare une requête SQL pour exécution


Retourne le code erreur pour le dernier appel à une fonction de requête

  • « maxdb_stmt_data_seek
  • maxdb_stmt_error »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne le code erreur pour le dernier appel à une fonction de requête

maxdb_stmt_errno

maxdb_stmt::errno

(PECL maxdb >= 1.0)

maxdb_stmt_errno -- maxdb_stmt::errno — Retourne le code erreur pour le dernier appel à une fonction de requête

Description

Style procédural

int maxdb_stmt_errno ( resource $stmt )

Style orienté objet

int $maxdb_stmt->errno;

Pour la requête spécifiée par le paramètre stmt, maxdb_stmt_errno() retourne le code erreur pour l'appel le plus récent à une fonction de requête, qu'elle ait réussie ou échouée.

Note:

Pour une liste des codes erreurs possibles, lisez la documentation SQLDBC: » http://maxdb.sap.com/documentation/.

Valeurs de retour

Un code erreur. Zéro signifie qu'aucune erreur n'est survenue.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

    /* Efface une table */
    $maxdb->query("DROP TABLE temp.mycity");

    /* Exécute une requête */
    $stmt->execute();

    printf("Erreur : %d.\n", $stmt->errno);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre une connexion */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

    /* Efface une table */
    maxdb_query($link, "DROP TABLE temp.mycity");

    /* Exécute une requête */
    maxdb_stmt_execute($stmt);

    printf("Erreur : %d.\n", maxdb_stmt_errno($stmt));

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Erreur : -4004.

Voir aussi

  • maxdb_stmt_error() - Retourne une description de la dernière erreur
  • maxdb_stmt_sqlstate() - Retourne une erreur SQLSTATE depuis la requête précédente


Retourne une description de la dernière erreur

  • « maxdb_stmt_errno
  • maxdb_stmt_execute »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne une description de la dernière erreur

maxdb_stmt_error

maxdb_stmt::error

(PECL maxdb >= 1.0)

maxdb_stmt_error -- maxdb_stmt::error — Retourne une description de la dernière erreur

Description

Style procédural

string maxdb_stmt_error ( resource $stmt )

Style orienté objet

string $maxdb_stmt->error;

Pour la requête spécifiée par le paramètre stmt, maxdb_stmt_error() retourne un message d'erreur correspondant à la fonction de requête la plus récente, qu'elle ait échouée ou réussie.

Valeurs de retour

Une chaîne décrivant l'erreur. Une chaîne vide s'il n'y a aucune erreur.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouverture d'une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

    /* Effacement de la table */
    $maxdb->query("DROP TABLE temp.mycity");

    /* Exécute une requête */
    $stmt->execute();

    printf("Erreur : %s.\n", $stmt->error);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
/* Ouverture d'une connexion */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

    /* Effacement de la table */
    maxdb_query($link, "DROP TABLE temp.mycity");

    /* Exécute une requête */
    maxdb_stmt_execute($stmt);

    printf("Erreur : %s.\n", maxdb_stmt_error($stmt));

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Erreur : POS(23) Unknown table name:MYCITY.

Voir aussi

  • maxdb_stmt_errno() - Retourne le code erreur pour le dernier appel à une fonction de requête
  • maxdb_stmt_sqlstate() - Retourne une erreur SQLSTATE depuis la requête précédente


Exécute une requête préparée

  • « maxdb_stmt_error
  • maxdb_stmt_fetch »
  • PHP Manual
  • Fonctions MaxDB
  • Exécute une requête préparée

maxdb_stmt_execute

maxdb_stmt::execute

(PECL maxdb >= 1.0)

maxdb_stmt_execute -- maxdb_stmt::execute — Exécute une requête préparée

Description

Style procédural

bool maxdb_stmt_execute ( resource $stmt )

Style orienté objet

bool maxdb_stmt::execute ( void )

maxdb_stmt_execute() exécute une requête qui a été préparée auparavant en utilisant la fonction maxdb_prepare() représenté par la ressource stmt. Lors de l'exécution, tous les marqueurs existants seront automatiquement remplacés par les données appropriées.

Si la requête est du type UPDATE, DELETE ou INSERT, le nombre total de lignes affectées peut être déterminé en utilisant la fonction maxdb_stmt_affected_rows(). De même, si la requête rapporte un jeu de résultats, la fonction maxdb_fetch() est utilisée.

Note:

Lors de l'utilisation de la fonction maxdb_stmt_execute(), la fonction maxdb_fetch() doit être utilisée pour récupérer les données avant d'effectuer toute autre requête additionnelle.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

/* Prépare une requête d'insertion */
$query = "INSERT INTO temp.mycity (zip, name, state) VALUES (?,?,?)";
$stmt = $maxdb->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = '11111';
$val2 = 'Georgetown';
$val3 = 'NY';

/* Exécute la requête */
$stmt->execute();

$val1 = '22222';
$val2 = 'Hubbatown';
$val3 = 'CA';

/* Exécute la requête */
$stmt->execute();

/* Fermeture de la requête */
$stmt->close();

/* Récupère toutes les lignes depuis myCity */
$query = "SELECT zip, name, state FROM temp.mycity";
if ($result = $maxdb->query($query)) {
    while ($row = $result->fetch_row()) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* Libération du jeu de résultats */
    $result->close();
}

/* Effacement de la table */
$maxdb->query("DROP TABLE temp.mycity");

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

/* Prépare une requête d'insertion */
$query = "INSERT INTO temp.mycity (zip, name, state) VALUES (?,?,?)";
$stmt = maxdb_prepare($link, $query);

maxdb_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = '11111';
$val2 = 'Georgetown';
$val3 = 'NY';

/* Exécute la requête */
maxdb_stmt_execute($stmt);

$val1 = '22222';
$val2 = 'Hubbatown';
$val3 = 'CA';

/* Exécute la requête */
maxdb_stmt_execute($stmt);

/* Fermeture de la requête */
maxdb_stmt_close($stmt);

/* Récupère toutes les lignes depuis myCity */
$query = "SELECT zip, name, state FROM temp.mycity";
if ($result = maxdb_query($link, $query)) {
    while ($row = maxdb_fetch_row($result)) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* Libération du jeu de résultats */
    maxdb_free_result($result);
}

/* Effacement de la table */
maxdb_query($link, "DROP TABLE temp.mycity");

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

11111 (Georgetown,NY)
22222 (Hubbatown,CA)

Voir aussi

  • maxdb_prepare() - Prépare une requête SQL pour exécution
  • maxdb_stmt_bind_param() - Lie les variables à une requête préparée en tant que paramètres


Récupère les résultats depuis la requête préparée dans les variables liées

  • « maxdb_stmt_execute
  • maxdb_stmt_free_result »
  • PHP Manual
  • Fonctions MaxDB
  • Récupère les résultats depuis la requête préparée dans les variables liées

maxdb_stmt_fetch

maxdb_stmt::fetch

(PECL maxdb >= 1.0)

maxdb_stmt_fetch -- maxdb_stmt::fetch — Récupère les résultats depuis la requête préparée dans les variables liées

Description

Style procédural

bool maxdb_stmt_fetch ( resource $stmt )

Style orienté objet

bool maxdb_stmt::fetch ( void )

maxdb_stmt_fetch() retourne les données de lignes en utilisant les variables liées par la fonction maxdb_stmt_bind_result().

Note:

Notez que toutes les colonnes doivent être liées par l'application avant l'appel à la fonction maxdb_stmt_fetch().

Valeurs de retour

Valeurs retournées
Valeur | Description
TRUE | Succès. Les données ont été récupérées
FALSE | Une erreur est survenue
NULL | Il n'y a plus de lignes/données disponibles

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER by name";

if ($stmt = $maxdb->prepare($query)) {

    /* Exécution de la requête */
    $stmt->execute();

    /* Lie les variables de résultats */
    $stmt->bind_result($name, $code);

    /* Récupération des valeurs */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER by name";

if ($stmt = maxdb_prepare($link, $query)) {

    /* Exécution de la requête */
    maxdb_stmt_execute($stmt);

    /* Lie les variables de résultats */
    maxdb_stmt_bind_result($stmt, $name, $code);

    /* Récupération des valeurs */
    while (maxdb_stmt_fetch($stmt)) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

12203 (Albany)
60601 (Chicago)
60615 (Chicago)
45211 (Cincinnati)
33575 (Clearwater)
75243 (Dallas)
32018 (Daytona Beach)
33441 (Deerfield Beach)
48226 (Detroit)
90029 (Hollywood)
92714 (Irvine)
90804 (Long Beach)
11788 (Long Island)
90018 (Los Angeles)
70112 (New Orleans)
10019 (New York)
10580 (New York)
92262 (Palm Springs)
97213 (Portland)
60018 (Rosemont)
95054 (Santa Clara)
20903 (Silver Spring)
20005 (Washington)
20019 (Washington)
20037 (Washington)

Voir aussi

  • maxdb_prepare() - Prépare une requête SQL pour exécution
  • maxdb_stmt_errno() - Retourne le code erreur pour le dernier appel à une fonction de requête
  • maxdb_stmt_error() - Retourne une description de la dernière erreur
  • maxdb_stmt_bind_result() - Lie les variables à une requête préparée pour stockage du résultat


Libère la mémoire des résultats stockés pour un gestionnaire de requête donné

  • « maxdb_stmt_fetch
  • maxdb_stmt_init »
  • PHP Manual
  • Fonctions MaxDB
  • Libère la mémoire des résultats stockés pour un gestionnaire de requête donné

maxdb_stmt_free_result

maxdb_stmt::free_result

(PECL maxdb >= 1.0)

maxdb_stmt_free_result -- maxdb_stmt::free_result — Libère la mémoire des résultats stockés pour un gestionnaire de requête donné

Description

Style procédural

void maxdb_stmt_free_result ( resource $stmt )

Style orienté objet

void maxdb_stmt::free_result ( void )

maxdb_stmt_free_result() libère la mémoire des résultats associés avec la requête représentée par le paramètre stmt, qui a été alloué avec la fonction maxdb_stmt_store_result().

Valeurs de retour

Cette fonction ne retourne aucune valeur.

Voir aussi

  • maxdb_stmt_store_result() - Transfert un jeu de résultats depuis une requête préparée


Initialise une requête et retourne une ressource à utiliser avec maxdb_stmt_prepare

  • « maxdb_stmt_free_result
  • maxdb_stmt_num_rows »
  • PHP Manual
  • Fonctions MaxDB
  • Initialise une requête et retourne une ressource à utiliser avec maxdb_stmt_prepare

maxdb_stmt_init

maxdb::stmt_init

(PECL maxdb >= 1.0)

maxdb_stmt_init -- maxdb::stmt_init — Initialise une requête et retourne une ressource à utiliser avec maxdb_stmt_prepare

Description

Style procédural

resource maxdb_stmt_init ( resource $link )

Style orienté objet

object maxdb::stmt_init ( void )

Alloue et initialise une ressource de requête utilisable pour la fonction maxdb_stmt_prepare().

Note:

Tous les appels de sous-séquence à n'importe quel fonction maxdb_stmt échoueront tant que la fonction maxdb_stmt_prepare() ne sera pas appelée.

Valeurs de retour

Retourne une ressource.

Voir aussi

  • maxdb_stmt_prepare() - Prépare une requête SQL pour exécution


Retourne le nombre de lignes dans le jeu de résultats

  • « maxdb_stmt_init
  • maxdb_stmt_param_count »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne le nombre de lignes dans le jeu de résultats

maxdb_stmt_num_rows

maxdb_stmt::num_rows

(PECL maxdb >= 1.0)

maxdb_stmt_num_rows -- maxdb_stmt::num_rows — Retourne le nombre de lignes dans le jeu de résultats

Description

Style procédural

int maxdb_stmt_num_rows ( resource $stmt )

Style orienté objet

int $maxdb_stmt->num_rows;

Retourne le nombre de lignes dans le jeu de résultats.

Valeurs de retour

Un entier représentant le nombre de lignes dans le jeu de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

    /* Exécute une requête */
    $stmt->execute();

    /* Stock le résultat */
    $stmt->store_result();

    printf("Nombre de lignes : %d.\n", $stmt->num_rows);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre une connexion */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

    /* Exécute une requête */
    maxdb_stmt_execute($stmt);

    /* Stock le résultat */
    maxdb_stmt_store_result($stmt);

    printf("Nombre de lignes : %d.\n", maxdb_stmt_num_rows($stmt));

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nombre de lignes : 25.

Voir aussi

  • maxdb_stmt_affected_rows() - Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête
  • maxdb_prepare() - Prépare une requête SQL pour exécution
  • maxdb_stmt_store_result() - Transfert un jeu de résultats depuis une requête préparée


Retourne le nombre de marqueurs pour une requête donnée

  • « maxdb_stmt_num_rows
  • maxdb_stmt_prepare »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne le nombre de marqueurs pour une requête donnée

maxdb_stmt_param_count

maxdb_stmt::param_count

(PECL maxdb >= 1.0)

maxdb_stmt_param_count -- maxdb_stmt::param_count — Retourne le nombre de marqueurs pour une requête donnée

Description

Style procédural

int maxdb_stmt_param_count ( resource $stmt )

Style orienté objet

int $maxdb_stmt->param_count;

maxdb_stmt_param_count() retourne le nombre de marqueurs présent dans une requête préparée.

Valeurs de retour

Retourne un entier représentant le nombre de marqueurs.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($stmt = $maxdb->prepare("SELECT name FROM hotel.city WHERE name=? OR state=?")) {

    $marker = $stmt->param_count;
    printf("Statement has %d markers.\n", $marker);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($stmt = maxdb_prepare($link, "SELECT name FROM hotel.city WHERE name=? OR state=?")) {

    $marker = maxdb_stmt_param_count($stmt);
    printf("La requête contient %d marqueurs.\n", $marker);

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

La requête contient 2 marqueurs.

Voir aussi

  • maxdb_prepare() - Prépare une requête SQL pour exécution


Prépare une requête SQL pour exécution

  • « maxdb_stmt_param_count
  • maxdb_stmt_reset »
  • PHP Manual
  • Fonctions MaxDB
  • Prépare une requête SQL pour exécution

maxdb_stmt_prepare

maxdb_stmt::prepare

(PECL maxdb >= 1.0)

maxdb_stmt_prepare -- maxdb_stmt::prepare — Prépare une requête SQL pour exécution

Description

Style procédural

bool maxdb_stmt_prepare ( resource $stmt , string $query )

Style orienté objet

mixed maxdb_stmt::prepare ( string $query )

maxdb_stmt_prepare() prépare une requête SQL pointée par une chaîne. La ressource de requête doit avoir été allouée par la fonction maxdb_stmt_init(). La requête doit être constituée d'une simple requête SQL.

Note:

Vous ne devez pas ajouter de point-virgule final ou \g à la requête.

Le paramètre query peut inclure un ou plusieurs marqueurs de paramètres dans la requête SQL en y intégrant des points d'exclamations (?) à une position appropriée.

Note:

Les marqueurs sont autorisés uniquement à des positions précises dans les requêtes SQL. Par exemple, ils sont autorisés dans la liste VALUE() d'une requête INSERT (pour spécifier une valeur de colonne pour une ligne), ou dans une comparaison avec une colonne dans une clause WHERE pour spécifier une valeur de comparaison.

Cependant, ils ne sont pas autorisés pour les identifiants (comme les noms de tables ou de colonnes), dans la liste SELECT qui nomme les colonnes à être retournées par les requêtes SELECT), ou pour spécifier les opérants d'un opérateur binaire comme le signe égal (=). La dernière restriction est nécessaire car il est impossible de déterminer le type du paramètre. En général, les paramètres sont légaux uniquement dans les requêtes Data Manipulation Languange (DML) et non dans les requêtes Data Defination Language (DDL).

Les marqueurs doit être liés aux variables en utilisant les fonctions maxdb_stmt_bind_param() et/ou maxdb_stmt_bind_result() avant d'exécuter la requête ou de récupérer les lignes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$city = "Portland";

/* Création d'une requête préparée */
$stmt =  $maxdb->stmt_init();
if ($stmt->prepare("SELECT state FROM hotel.city WHERE name=?")) {

    /* Lie les paramètres aux marqueurs */
    $stmt->bind_param("s", $city);

    /* Exécute la requête */
    $stmt->execute();

    /* Lie les variables de résultats */
    $stmt->bind_result($district);

    /* Récupère la valeur */
    $stmt->fetch();

    printf("%s est dans %s\n", $city, $district);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$city = "Portland";

/* Création d'une requête préparée */
$stmt = maxdb_stmt_init($link);
if (maxdb_stmt_prepare($stmt, "SELECT state FROM hotel.city WHERE name=?")) {

    /* Lie les paramètres aux marqueurs */
    maxdb_stmt_bind_param($stmt, "s", $city);

    /* Exécute la requête */
    maxdb_stmt_execute($stmt);

    /* Lie les variables de résultats */
    maxdb_stmt_bind_result($stmt, $district);

    /* Récupère la valeur */
    maxdb_stmt_fetch($stmt);

    printf("%s est dans %s\n", $city, $district);

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Portland est dans OR

Voir aussi

  • maxdb_stmt_init() - Initialise une requête et retourne une ressource à utiliser avec maxdb_stmt_prepare
  • maxdb_stmt_execute() - Exécute une requête préparée
  • maxdb_stmt_fetch() - Récupère les résultats depuis la requête préparée dans les variables liées
  • maxdb_stmt_bind_param() - Lie les variables à une requête préparée en tant que paramètres
  • maxdb_stmt_bind_result() - Lie les variables à une requête préparée pour stockage du résultat
  • maxdb_stmt_close() - Ferme une requête préparée


Réinitialise une requête préparée

  • « maxdb_stmt_prepare
  • maxdb_stmt_result_metadata »
  • PHP Manual
  • Fonctions MaxDB
  • Réinitialise une requête préparée

maxdb_stmt_reset

maxdb_stmt::reset

(PECL maxdb >= 1.0)

maxdb_stmt_reset -- maxdb_stmt::reset — Réinitialise une requête préparée

Description

Style procédural

bool maxdb_stmt_reset ( resource $stmt )

Style orienté objet

bool maxdb_stmt::reset ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne les métadonnées du jeu de résultats pour une requête préparée

  • « maxdb_stmt_reset
  • maxdb_stmt_send_long_data »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne les métadonnées du jeu de résultats pour une requête préparée

maxdb_stmt_result_metadata

maxdb_stmt::result_metadata

(PECL maxdb >= 1.0)

maxdb_stmt_result_metadata -- maxdb_stmt::result_metadata — Retourne les métadonnées du jeu de résultats pour une requête préparée

Description

Style procédural

resource maxdb_stmt_result_metadata ( resource $stmt )

Style orienté objet

resource maxdb_stmt::result_metadata ( void )

Si la requête passée à maxdb_prepare() est une de celle puisant un jeu de résultats, maxdb_stmt_result_metadata() retourne la ressource de résultats qui peut être utilisée pour récupérer les métadonnées comme, le nombre total de champs et les informations individuelles d'un champ.

Note:

Ce pointeur de résultats peut être passé comme argument à n'importe quelle fonction basé sur les champs qui traite les métadonnées, comme :

  • maxdb_num_fields()

  • maxdb_fetch_field()

  • maxdb_fetch_field_direct()

  • maxdb_fetch_fields()

  • maxdb_field_count()

  • maxdb_field_seek()

  • maxdb_field_tell()

  • maxdb_free_result()

La structure du jeu de résultats doit être libérée lorsque vous en avez terminé avec, ce qui est obtenu en la passant à la fonction maxdb_free_result().

Note:

Le jeu de résultat retourné par maxdb_stmt_result_metadata() contient uniquement des métadonnées. Il ne contient aucune ligne de résultats. Les lignes sont obtenues en utilisant le gestionnaire de requête avec la fonction maxdb_fetch().

Valeurs de retour

maxdb_stmt_result_metadata() retourne une ressource de résultats ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

$maxdb->query("CREATE TABLE temp.friends (id int, name varchar(20))");

$maxdb->query("INSERT INTO temp.friends VALUES (1,'Hartmut')");
$maxdb->query("INSERT INTO temp.friends VALUES (2, 'Ulf')");

$stmt = $maxdb->prepare("SELECT id, name FROM temp.friends");
$stmt->execute();

/* Récupération du jeu de résultats pour les métadonnées */
$result = $stmt->result_metadata();

/* Récupère les informations d'un champ pour les métadonnées du jeu de résultats */
$field = $result->fetch_field();

printf("Nom du champ : %s\n", $field->name);

/* Fermeture du jeu de résultats */
$result->close();

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

maxdb_query($link, "CREATE TABLE temp.friends (id int, name varchar(20))");

maxdb_query($link, "INSERT INTO temp.friends VALUES (1,'Hartmut')");
maxdb_query($link, "INSERT INTO temp.friends VALUES (2, 'Ulf')");

$stmt = maxdb_prepare($link, "SELECT id, name FROM temp.friends");
maxdb_stmt_execute($stmt);

/* Récupération du jeu de résultats pour les métadonnées */
$result = maxdb_stmt_result_metadata($stmt);

/* Récupère les informations d'un champ pour les métadonnées du jeu de résultats */
$field = maxdb_fetch_field($result);

printf("Nom du champ : %s\n", $field->name);

/* Fermeture du jeu de résultats */
maxdb_free_result($result);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nom du champ : ID

Voir aussi

  • maxdb_prepare() - Prépare une requête SQL pour exécution
  • maxdb_free_result() - Libère la mémoire associée à un résultat


Envoie un bloc de données

  • « maxdb_stmt_result_metadata
  • maxdb_stmt_sqlstate »
  • PHP Manual
  • Fonctions MaxDB
  • Envoie un bloc de données

maxdb_stmt_send_long_data

maxdb_stmt::send_long_data

(PECL maxdb 1.0)

maxdb_stmt_send_long_data -- maxdb_stmt::send_long_data — Envoie un bloc de données

Description

Style procédural

bool maxdb_stmt_send_long_data ( resource $stmt , int $param_nr , string $data )

Style orienté objet

bool maxdb_stmt::stmt_send_long_data ( int $param_nr , string $data )

Permet d'envoyer les données au serveur sous forme de morceaux (ou gros morceaux). Cette fonction peut être appelée plusieurs fois pour envoyer les parties des caractères ou des valeurs de données binaires pour une colonne, qui peut être du type TEXT ou BLOB.

param_nr indique quel paramètre à associer avec les données. Les paramètres sont numérotés en commençant à 0. data est une chaîne contenant les données à envoyer.

Note:

Pour des raisons d'efficacité, cette fonction doit être utilisée après l'appel à la fonction maxdb_execute(). Dans ce cas, les données ne sont pas stockées côté client. La fin de la séquence doit finir avec un appel à la fonction maxdb_stmt_close_long_data().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • maxdb_prepare() - Prépare une requête SQL pour exécution
  • maxdb_stmt_bind_param() - Lie les variables à une requête préparée en tant que paramètres


Retourne une erreur SQLSTATE depuis la requête précédente

  • « maxdb_stmt_send_long_data
  • maxdb_stmt_store_result »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne une erreur SQLSTATE depuis la requête précédente

maxdb_stmt_sqlstate

(PECL maxdb >= 1.0)

maxdb_stmt_sqlstate — Retourne une erreur SQLSTATE depuis la requête précédente

Description

string maxdb_stmt_sqlstate ( resource $stmt )

Retourne une chaîne contenant un code erreur SQLSTATE depuis la fonction de requête préparée la plus récente qu'elle ait réussie ou échouée. Le code erreur est composé de cinq caractères. '00000' signifie aucune erreur. La valeur est spécifiée par ANSI SQL et ODBC.

Note:

Notez que toutes les erreurs MaxDB ne sont pas encore liées à SQLSTATE. La valeur HY000 (erreur général) est utilisée pour les erreurs non liées.

Valeurs de retour

Retourne une chaîne contenant le code erreur SQLSTATE pour la dernière erreur. Le code erreur est composé de cinq caractères. '00000' signifie aucune erreur.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

    /* Efface la table */
    $maxdb->query("DROP TABLE temp.mycity");

    /* Exécute une requête */
    $stmt->execute();

    printf("Erreur : %s.\n", $stmt->sqlstate);

    /* Ferme la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre une connexion */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

    /* Efface la table */
    maxdb_query($link, "DROP TABLE temp.mycity");

    /* Exécute une requête */
    maxdb_stmt_execute($stmt);

    printf("Erreur : %s.\n", maxdb_stmt_sqlstate($stmt));

    /* Ferme la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Erreur : 42000.

Voir aussi

  • maxdb_stmt_errno() - Retourne le code erreur pour le dernier appel à une fonction de requête
  • maxdb_stmt_error() - Retourne une description de la dernière erreur


Transfert un jeu de résultats depuis une requête préparée

  • « maxdb_stmt_sqlstate
  • maxdb_store_result »
  • PHP Manual
  • Fonctions MaxDB
  • Transfert un jeu de résultats depuis une requête préparée

maxdb_stmt_store_result

maxdb_stmt::store_result

(PECL maxdb >= 1.0)

maxdb_stmt_store_result -- maxdb_stmt::store_result — Transfert un jeu de résultats depuis une requête préparée

Description

Style procédural

bool maxdb_stmt_store_result ( resource $stmt )

Style orienté objet

object maxdb_stmt::store_result ( void )

maxdb_stmt_store_result() n'a pas de fonctionnalité et ne devrait pas être utilisé pour récupérer les données depuis un serveur MaxDB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

    /* Exécute une requête */
    $stmt->execute();

    /* Stock le résultat */
    $stmt->store_result();

    printf("Nombre de lignes : %d.\n", $stmt->num_rows);

    /* Libération du résultat */
    $stmt->free_result();

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre une connexion */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

    /* Exécute une requête */
    maxdb_stmt_execute($stmt);

    /* Stock le résultat */
    maxdb_stmt_store_result($stmt);

    printf("Nombre de lignes : %d.\n", maxdb_stmt_num_rows($stmt));

    /* Libération du résultat */
    maxdb_stmt_free_result($stmt);

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nombre de lignes : 25.

Voir aussi

  • maxdb_prepare() - Prépare une requête SQL pour exécution
  • maxdb_stmt_result_metadata() - Retourne les métadonnées du jeu de résultats pour une requête préparée
  • maxdb_fetch() - Alias de maxdb_stmt_fetch


Transfert un jeu de résultats depuis la dernière requête

  • « maxdb_stmt_store_result
  • maxdb_thread_id »
  • PHP Manual
  • Fonctions MaxDB
  • Transfert un jeu de résultats depuis la dernière requête

maxdb_store_result

maxdb::store_result

(PECL maxdb >= 1.0)

maxdb_store_result -- maxdb::store_result — Transfert un jeu de résultats depuis la dernière requête

Description

Style procédural

resource maxdb_store_result ( resource $link )

Style orienté objet

object maxdb::store_result ( void )

Cette fonction n'a aucune fonctionnalité.

Valeurs de retour

Retourne une ressource de résultats ou FALSE si une erreur survient.

Exemples

Voir la documentation de la fonction maxdb_multi_query().

Voir aussi

  • maxdb_real_query() - Exécute une requête SQL
  • maxdb_use_result() - Initialise un jeu de résultats


Retourne l'identifiant du thread pour la connexion courante

  • « maxdb_store_result
  • maxdb_thread_safe »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne l'identifiant du thread pour la connexion courante

maxdb_thread_id

maxdb::thread_id

(PECL maxdb >= 1.0)

maxdb_thread_id -- maxdb::thread_id — Retourne l'identifiant du thread pour la connexion courante

Description

Style procédural

int maxdb_thread_id ( resource $link )

Style orienté objet

int $maxdb->thread_id;

maxdb_thread_id() retourne l'identifiant du thread pour la connexion courante que l'on peut ensuite tuer en utilisant la fonction maxdb_kill(). Si la connexion est perdue et que vous vous reconnectez avec la fonction maxdb_ping(), l'identifiant du thread changera. De ce fait, vous ne devez récupérer l'identifiant du thread que lorsque vous en avez besoin.

Note:

L'identifiant du thread est assigné à chaque connexion. De ce fait, si la connexion est interrompue puis établie à nouveau, un nouvel identifiant du thread sera assigné.

Valeurs de retour

maxdb_thread_id() retourne l'identifiant du thread pour la connexion courante.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Détermine notre identifiant de thread */
$thread_id = $maxdb->thread_id;

/* Tue la connexion */
$maxdb->kill($thread_id);

/* This should produce an error */
if (!$maxdb->query("CREATE TABLE mycity LIKE hotel.city")) {
    printf("Erreur : %s\n", $maxdb->error);
    exit;
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Détermine notre identifiant de thread */
$thread_id = maxdb_thread_id($link);

/* Tue la connexion */
maxdb_kill($link, $thread_id);

/* Ceci devrait produire une erreur */
if (!maxdb_query($link, "CREATE TABLE mycity LIKE hotel.city")) {
    printf("Erreur : %s\n", maxdb_error($link));
    exit;
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_query(): -10821 Session not connected <...>
Erreur : Session not connected

Voir aussi

  • maxdb_kill() - Déconnecte un serveur MaxDB


Indique si le thread safety est donné ou non

  • « maxdb_thread_id
  • maxdb_use_result »
  • PHP Manual
  • Fonctions MaxDB
  • Indique si le thread safety est donné ou non

maxdb_thread_safe

(PECL maxdb >= 7.6.06.04)

maxdb_thread_safe — Indique si le thread safety est donné ou non

Description

bool maxdb_thread_safe ( void )

maxdb_thread_safe() indique si la bibliothèque cliente a été compilé en tant que thread safety.

Valeurs de retour

TRUE si la bibliothèque cliente est thread safety, FALSE sinon.


Initialise un jeu de résultats

  • « maxdb_thread_safe
  • maxdb_warning_count »
  • PHP Manual
  • Fonctions MaxDB
  • Initialise un jeu de résultats

maxdb_use_result

maxdb::use_result

(PECL maxdb >= 1.0)

maxdb_use_result -- maxdb::use_result — Initialise un jeu de résultats

Description

Style procédural

resource maxdb_use_result ( resource $link )

Style orienté objet

resource maxdb::use_result ( void )

maxdb_use_result() n'a aucun effet.

Valeurs de retour

Retourne le résultat ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query  = "SELECT * FROM DUAL";

/* Exécute une requête multiple */
if ($maxdb->multi_query($query)) {
    do {
        /* Stock le premier jeu de résultat */
        if ($result = $maxdb->use_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* Affiche un séparateur */
        if ($maxdb->more_results()) {
            printf("-----------------\n");
        }
    } while ($maxdb->next_result());
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query  = "SELECT * FROM DUAL;";

/* Exécute une requête multiple */
if (maxdb_multi_query($link, $query)) {
    do {
        /* Stock le premier jeu de résultat */
        if ($result = maxdb_use_result($link)) {
            while ($row = maxdb_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            maxdb_free_result($result);
        }
        /* Affiche un séparateur */
        if (maxdb_more_results($link)) {
            printf("-----------------\n");
        }
    } while (maxdb_next_result($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a

Voir aussi

  • maxdb_real_query() - Exécute une requête SQL
  • maxdb_store_result() - Transfert un jeu de résultats depuis la dernière requête


Retourne le nombre d'avertissements depuis la dernière requête pour un lien donné

  • « maxdb_use_result
  • Mongo »
  • PHP Manual
  • Fonctions MaxDB
  • Retourne le nombre d'avertissements depuis la dernière requête pour un lien donné

maxdb_warning_count

maxdb::warning_count

(PECL maxdb >= 1.0)

maxdb_warning_count -- maxdb::warning_count — Retourne le nombre d'avertissements depuis la dernière requête pour un lien donné

Description

Style procédural

int maxdb_warning_count ( resource $link )

Style orienté objet

int $maxdb->warning_count;

maxdb_warning_count() retourne le nombre d'avertissements depuis la dernière requête dans la connexion représentée par le paramètre link.

Valeurs de retour

Nombre d'avertissements ou zéro s'il n'y en a aucun.

Exemples

Exemple #1 Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

/* un nom de ville remarquablement long dans Wales */
$query = "INSERT INTO temp.mycity (zip, name) VALUES('11111',
'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

$maxdb->query($query);

printf ("Nombre d'avertissements : %d\n", $maxdb->warning_count);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple #2 Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

/* un nom de ville remarquablement long dans Wales */
$query = "INSERT INTO temp.mycity (zip, name) VALUES('11111',
'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

maxdb_query($link, $query);

printf ("Nombre d'avertissements : %d\n", maxdb_warning_count($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: maxdb_query(): -8004 POS(62) Constant must be compatible with column type and length <...>
 Nombre d'avertissements : 0

Voir aussi

  • maxdb_errno() - Retourne le code erreur pour le dernier appel à une fonction
  • maxdb_error() - Retourne une chaîne représentant la dernière erreur
  • maxdb_sqlstate() - Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB


Driver MongoDB (stable et supporté)

  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
  • Constantes pré-définies
  • Manuel
    • Tutoriel
    • Préférences de lecture
    • Write Concerns
    • Cartographie de mappage SQL vers Mongo
    • Connection
    • Options de contexte du flux
    • Écritures
    • Interrogation
    • Mises à jour
    • Securité
    • Dépannage
    • Lancer les tests du pilote
  • Classes internes
    • MongoClient — La classe MongoClient
    • MongoDB — La classe MongoDB
    • MongoCollection — La classe MongoCollection
    • MongoCursor — La classe MongoCursor
    • MongoCursorInterface — L'interface MongoCursorInterface
    • MongoCommandCursor — La Classe MongoCommandCursor
  • Les types
    • MongoId — La classe MongoId
    • MongoCode — La classe MongoCode
    • MongoDate — La classe MongoDate
    • MongoRegex — La classe MongoRegex
    • MongoBinData — La classe MongoBinData
    • MongoInt32 — La classe MongoInt32
    • MongoInt64 — La classe MongoInt64
    • MongoDBRef — La classe MongoDBRef
    • MongoMinKey — La classe MongoMinKey
    • MongoMaxKey — La classe MongoMaxKey
    • MongoTimestamp — La classe MongoTimestamp
  • Classes GridFS
    • MongoGridFS — La classe MongoGridFS
    • MongoGridFSFile — La classe MongoGridFSFile
    • MongoGridFSCursor — La classe MongoGridFSCursor
  • Classes Batch
    • MongoWriteBatch — La classe MongoWriteBatch
    • MongoInsertBatch — La classe MongoInsertBatch
    • MongoUpdateBatch — La classe MongoUpdateBatch
    • MongoDeleteBatch — La classe MongoDeleteBatch
  • Divers
    • MongoLog — La classe MongoLog
    • MongoPool — La classe MongoPool
    • Mongo — La classe Mongo [Obsolète]
  • Fonctions Mongo
    • bson_decode — Délinéarise un objet BSON en un tableau PHP
    • bson_encode — Linéarise une variable PHP en une chaîne BSON
  • Exceptions
    • MongoException — La classe MongoException
    • MongoResultException — La classe MongoResultException
    • MongoCursorException — La classe MongoCursorException
    • MongoCursorTimeoutException — La classe MongoCursorTimeoutException
    • MongoConnectionException — La classe MongoConnectionException
    • MongoGridFSException — La classe MongoGridFSException
    • MongoDuplicateKeyException — La Class MongoDuplicateKeyException
    • MongoProtocolException — La classe MongoProtocolException
    • MongoExecutionTimeoutException — La classe MongoExecutionTimeoutException
    • MongoWriteConcernException — La classe MongoWriteConcernException
  • Historique des modifications


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Configuration à l'exécution
Avertissement

Cette extension est obsolète. À la place, vous devriez utiliser l'extension MongoDB.


Installation

Avertissement

Cette extension est obsolète. À la place, vous devriez utiliser l'extension MongoDB.

Le driver MongoDB devrait fonctionner sur la plupart des systèmes : Windows, Mac OS X, Unix, et Linux ; des petites machines aux gros serveurs ; sur des systèmes 32 et 64 bit ; avec PHP 5.3 à 5.6 (les versions antérieures à la 1.6 supportent aussi PHP 5.2).

Cette extension » PECL n'est pas intégrée à PHP.

  • Installation manuelle
  • Installation sur les systèmes *NIX
  • Installation sous Windows
  • Installation sur les systèmes OS X
  • Gentoo
  • Red Hat
  • Instructions d'installation tierces

Installation manuelle

Pour les développeurs des pilotes ou les personnes intéréssées par les derniers correctifs de bugs, vous pouvez compiler le pilote depuis » Github. Allez sur Github et cliquez sur "download". Lancez ensuite :

$ tar zxvf mongodb-mongodb-php-driver-<commit_id>.tar.gz
$ cd mongodb-mongodb-php-driver-<commit_id>
$ phpize
$ ./configure
$ make all
$ sudo make install

Effectuez ces changements à votre fichier php.ini:

  • Assurez-vous que la variable extension_dir pointe vers le dossier contenant le fichier mongo.so. La compilation devrait afficher l'endroit où PHP installe le driver ; l'affichage devrait ressembler à quelque chose comme :

    Installing '/usr/lib/php/extensions/no-debug-non-zts-20060613/mongo.so'
    Vérifiez bien qu'il s'agisse du même dossier d'extensions que celui de votre PHP en lançant:
    $ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/no-debug-non-zts-20060613 =>
                   /usr/lib/php/extensions/no-debug-non-zts-20060613
    Si ce n'est pas le cas, changez extension_dir de php.ini ou placez manuellement mongo.so.

  • Pour chargez l'extension au démarrage de PHP, ajoutez cette ligne :

    extension=mongo.so

Installation sur les systèmes *NIX

Exécutez :

$ sudo pecl install mongo

Si vous utilisez CentOS ou Redhat, vous pouvez utiliser les » RPM.

Ajoutez la ligne suivante à votre fichier php.ini :

extension=mongo.so

Si PECL fait un dépassement de mémoire lors de l'installation, assurez-vous que la directive memory_limit du fichier php.ini est fixée à au moins 128MB.

Installation sous Windows

Les binaires précompilés pour chaque version sont disponibles sur » PECL pour une grande variété de combinaison de versions, de sécurité de threads, et de bibliothèques VC. Décompressez l'archive et placez php_mongo.dll dans votre dossier d'extension PHP ("ext" par défaut).

Ajoutez la ligne suivante à votre fichier php.ini :

extension=php_mongo.dll

Note: Dépendences DLL additionnelles pour les utilisateurs Windows

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : libsasl.dll

Installation sur les systèmes OS X

Dans la plupart des cas, l'installation depuis pecl reste le plus simple :

$ sudo pecl install mongo

Si vous utilisez » Homebrew, PHP tap contient des formules pour le driver. Par exemple, vous pouvez installer le driver pour PHP 5.6 via la commande suivante :

$ brew install php56-mongo

Si vous utilisez » XAMPP, vous devriez être capable de compiler le driver avec la commande suivante :

sudo /Applications/XAMPP/xamppfiles/bin/pecl install mongo

Note: Dépendance avec Xcode pour compiler sur OS X

Compiler le driver sous OS X requiert les outils de développements Xcode, qui peuvent être installé avec xcode-select --install. Si cette commande n'est pas disponible, vous devriez d'abord installer le paquet » Command Line Tools.

Gentoo

Gentoo a un paquet pour le driver PHP PECL nommé dev-php/pecl-mongo, qui peut installer via la commande suivante :

$ sudo emerge -va dev-php/pecl-mongo

Si vous utilisez PECL, vous recevrez une erreur signalant que libtool n'est pas à la bonne version. Lors de la compilation depuis les sources, vous devriez avoir besoin d'exécuter aclocal et autoconf.

$ phpize
$ aclocal
$ autoconf
$ ./configure
$ make
$ sudo make install

Red Hat

Ceci inclut Fedora et CentOS.

La configuration par défaut d'Apache sur ces systèmes ne permet pas aux requêtes d'effectuer des connexions réseaux, ceci signifie que le driver recevra une erreur "Permission denied" lorsqu'il tentera une connexion à la base de données. Si vous rencontrez une telle erreur, tentez d'exécuter ceci :

$ /usr/sbin/setsebool -P httpd_can_network_connect 1
Puis, redémarrez Apache (Ce comportement peut également survenir sous SELinux).

Instructions d'installation tierces

Beaucoup de personnes ont créés d'excellents tutoriels sur l'installation du driver PHP.

  • » (Re)installer PHP sur Mac OS X

    Cet article de Justin Hileman détaille le processus d’installation de PHP et ses extensions additionnelles avec Homebrew sous OS X. C'est un complément pour les instructions de cette page sur l’installation du driver avec Homebrew.

  • » PHP 5.3.1 avec Xdebug, MongoDB et Lithium sous Ubuntu 9.10 / Apache 2.2

    Une excellent vidéo qui vous explique l'installation étape par étape d'Apache, PHP, Xdebug, MongoDB, et Lithium par Jon Adams.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Mongo
Nom | Défaut | Modifiable | Historique
mongo.allow_empty_keys | 0 | PHP_INI_ALL |
mongo.allow_persistent | 1 | PHP_INI_ALL | Supprimé en 1.2.0
mongo.chunk_size | 262144 | PHP_INI_ALL |
mongo.cmd | "$" | PHP_INI_ALL |
mongo.default_host | "localhost" | PHP_INI_ALL |
mongo.default_port | 27017 | PHP_INI_ALL |
mongo.is_master_interval | 15 | PHP_INI_ALL | Ajouté en 1.2.10, avant 1.3.0, la valeur par défaut était de 60.
mongo.long_as_object | 0 | PHP_INI_ALL |
mongo.native_long | 1 | PHP_INI_ALL | Avant la version 1.5.0, la valeur par défaut était 0.
mongo.ping_interval | 5 | PHP_INI_ALL | Ajouté en 1.2.10
mongo.utf8 | 1 | PHP_INI_ALL |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mongo.allow_empty_keys int

Ajouté en version 1.0.11.

Si les chaînes vides ("") doivent être autorisées comme noms de clés. Par défaut, le driver émet une exception si vous tentez de passer une chaîne vide en tant que clé à la base de données. C'est très simple de le faire sans faire exprès en utilisant les guillemets doubles avec les $-opérateurs, aussi, il est recommandé de laisser cette option à sa valeur par défaut. Cependant, si vous avez besoin de sauvegarder les clés qui sont des chaînes vides, vous pouvez définir cette option à TRUE et le driver vous autorisera à passer des chaînes vides à la base de données.

mongo.allow_persistent int

Indique si les connexions persistantes sont autorisées (supprimé en 1.2.0 - toutes les connexions sont maintenant persistentes).

mongo.chunk_size int

Le nombre d'octets par bloc. Utilisé lors avec les fichiers GridFS. Ce nombre doit être supérieur 4 Mo moins 100 octets (max : 4194204) et il est recommandé qu'il soit plus petit.

mongo.cmd string

Un caractère à utiliser à la place du caractère $ dans les modificateurs et les comparaisons.

Sachant qu'il est rapide d'oublier d'échapper le caractère "$", vous pouvez également choisir votre propose caractère à utiliser en lieu et place de "$". Choisissez un caractère qui ne peut survenir dans les noms de vos clés, i.e. ":" :

mongo.cmd = ":"

Ensuite, pour effectuer une comparaison, par exemple :

<?php

$query = array( "i" => array( ":gt" => 20, ":lte" => 30 ) );

?>

Vous pouvez également le modifier dans votre code en utilisant ini_set("mongo.cmd", ":"). Évidemment, vous pouvez également utiliser un guillemet simple ou un anti-slash pour échapper le "$".

mongo.default_host string

Nom d'hôte par défaut lorsqu'aucun nom d'hôte n'est fourni au constructeur.

mongo.default_port string

Le numéro de port par défaut, à utiliser lors de la connexion à la base de données, si aucun port n'est spécifié. La valeur par défaut est 27017.

mongo.is_master_interval int

Ajouté en version 1.2.10.

Pour les connexions au jeu de réplications : l'intervalle minimum pour lequel le driver enverra des requêtes "isMaster" au serveur MongoDB. Si la valeur est petite, il y aura plus de requêtes, mais le driver trouvera rapidement que le jeu de réplication a changé.

mongo.long_as_object int

Retourne un BSON_LONG comme instance de MongoInt64 (à la place du type primitif).

mongo.native_long int

Le comportement par défaut de ce paramètre a été changé à TRUE en 1.5.0, faites attention de bien configurer ce paramètre à la valeur désirée (probablement TRUE) ainsi le comportement du pilote ne changera pas soudainement à la mise à jour.

Sur les plateformes 64-bits, le paramètre mongo.native_long autorise les entiers 64-bits à être stockés dans MongoDB. Sinon, seuls les entiers 32-bits seront sauvés. Dans le cas des long, le type MongoDB BSON LONG est utilisé à la place de BSON INT lorsque ce paramètre est désactivé.

Ce paramètre change aussi la manière dont les BSON LONG se comportent lorsqu'ils sont lus depuis MongoDB. Sans mongo.native_long, le pilote convertira tout BSON LONG en un type double de PHP ce qui peut amener à une perte de précision.

Sur les plateformes 32-bits, le paramètre mongo.native_log ne change rien en ce qui concerne le stockage des entiers dans MongoDB: l'entier est stocké comme un BSON INT comme avant. Cependant, lorsque ce paramètre est activé et qu'un BSON LONG est lu de MongoDB, une MongoCursorException est levée alertant que la donnée n'a pu être lue sans perte de précision.

Sur les systèmes 32-bits particulièrement, il est recommandé de combiner cela avec l'activation de mongo.long_as_object.

mongo.ping_interval int

Ajouté en version 1.2.10.

Pour les connexions au jeu de réplications : L'intervalle minimum pour lequel le driver enverra des requêtes "ping" au serveur MongoDB. Si la valeur est petite, il y aura plus de pings, mais le driver trouvera rapidement qu'un noeud n'est plus disponible depuis le jeu de réplications.

mongo.utf8 int

Si une exception doit être émise lors de l'utilisation de chaînes non encodées UTF-8. Jusqu'à la version 1.0.4, le driver PHP ignorait les chaînes non encodées UTF-8, même si vous n'étiez pas supposés en utiliser. Depuis la version 1.0.4, le driver lance une exception MongoException. Pour faciliter la transition de vos applications qui pouvaient insérer des chaînes non encodées UTF-8, vous pouvez désactiver cette option pour émuler l'ancien comportement. Cette option sera supprimée et l'exception toujours lancée pour les chaînes non encodées UTF-8 à partir de la version 1.1.0.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MONGO_STREAMS (integer)
Alias de MONGO_SUPPORTS_STREAMS
MONGO_SUPPORTS_STREAMS (integer)
Vaut 1 lorsque compilé avec les Flux PHP (PHP Streams) (par défaut depuis la version 1.4.0)
MONGO_SUPPORTS_SSL (integer)
Vaut 1 lorsque OpenSSL est activé et disponible.
MONGO_SUPPORTS_AUTH_MECHANISM_MONGODB_CR (integer)
Vaut 1 lorsque le mécanisme d'authentification par question réponse de MongoDB (MongoDB-Challenge/Reponse authentication) est compilé avec.
MONGO_SUPPORTS_AUTH_MECHANISM_MONGODB_X509 (integer)
Vaut 1 lorque le mécanisme d'authentification x.509 est compilé avec.
MONGO_SUPPORTS_AUTH_MECHANISM_GSSAPI (integer)
Vaut 1 lorsque le mécanisme d'authentification GSSAPI est compilé avec.
MONGO_SUPPORTS_AUTH_MECHANISM_PLAIN (integer)
Vaut 1 lorque le mécanisme d'authentification simple est compilé avec.
MONGO_STREAM_NOTIFY_TYPE_IO_INIT (integer)
MONGO_STREAM_NOTIFY_TYPE_LOG (integer)
MONGO_STREAM_NOTIFY_IO_READ (integer)
MONGO_STREAM_NOTIFY_IO_WRITE (integer)
MONGO_STREAM_NOTIFY_IO_PROGRESS (integer)
MONGO_STREAM_NOTIFY_IO_COMPLETED (integer)
MONGO_STREAM_NOTIFY_LOG_INSERT (integer)
MONGO_STREAM_NOTIFY_LOG_QUERY (integer)
MONGO_STREAM_NOTIFY_LOG_UPDATE (integer)
MONGO_STREAM_NOTIFY_LOG_DELETE (integer)
MONGO_STREAM_NOTIFY_LOG_GETMORE (integer)
MONGO_STREAM_NOTIFY_LOG_KILLCURSOR (integer)
MONGO_STREAM_NOTIFY_LOG_BATCHINSERT (integer)
MONGO_STREAM_NOTIFY_LOG_RESPONSE_HEADER (integer)
MONGO_STREAM_NOTIFY_LOG_WRITE_REPLY (integer)
MONGO_STREAM_NOTIFY_LOG_CMD_INSERT (integer)
MONGO_STREAM_NOTIFY_LOG_CMD_UPDATE (integer)
MONGO_STREAM_NOTIFY_LOG_CMD_DELETE (integer)
MONGO_STREAM_NOTIFY_LOG_WRITE_BATCH (integer)


Manuel

Sommaire

  • Tutoriel
  • Préférences de lecture
  • Write Concerns
  • Cartographie de mappage SQL vers Mongo
  • Connection
  • Options de contexte du flux
  • Écritures
  • Interrogation
  • Mises à jour
  • Securité
  • Dépannage
  • Lancer les tests du pilote
Avertissement

Cette extension est obsolète. À la place, vous devriez utiliser l'extension MongoDB.

Ce manuel vous fournira quelques détails sur la façon d'utiliser MongoDB, mais il couvre essentiellement l'utilisation du driver PHP. Pour des informations sur la façon de réaliser votre schéma, la signification des termes, ainsi que la configuration du serveur de base de données, reportez-vous à la » documentation MongoDB.


Tutoriel

Sommaire

  • Création d'une connexion
  • Sélection d'une base de données
  • Sélection d'une collection
  • Insertion d'un document
  • Trouver un document en utilisant la méthode MongoCollection::findOne
  • Ajout de plusieurs documents
  • Comptage des documents dans une collection
  • Utilisation d'un curseur pour récupérer tous les documents
  • Ajout d'un critère à une requête
  • Récupération de plusieurs documents avec une requête
  • Création d'un index
Avertissement

Cette extension est obsolète. À la place, vous devriez utiliser l'extension MongoDB.

Voici le driver officiel MongoDB pour PHP.

Vous trouverez dans ce chapitre quelques rapides exemples montrant la façon de se connecter, d'insérer des documents, de requêter des documents, de traverser des jeux de résultats, et de se déconnecter d'une base de données MongoDB. Vous trouverez encore plus de détails dans chaque étape de ce tutoriel.

<?php

// connexion
$m = new MongoClient();

// sélection d'une base de données
$db = $m->comedy;

// sélectionne une collection (analogue à une table de base de données relationnelle)
$collection = $db->cartoons;

// ajoute un enregistrement
$document = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
$collection->insert($document);

// ajoute un autre enregistrement, avec une façon différente d'insertion
$document = array( "title" => "XKCD", "online" => true );
$collection->insert($document);

// récupère tout de la collection
$cursor = $collection->find();

// traverse les résultats
foreach ($cursor as $document) {
    echo $document["title"] . "\n";
}

?>

L'exemple ci-dessus va afficher :

Calvin and Hobbes
XKCD


Création d'une connexion

Pour se connecter à un serveur de base de données, utilisez une des façons suivantes :

<?php

$connection = new MongoClient(); // Connexion à localhost:27017
$connection = new MongoClient( "mongodb://example.com" ); // Connexion à un hôte distant (en utilisant le port par défaut : 27017)
$connection = new MongoClient( "mongodb://example.com:65432" ); // connect to a remote host at a given port

?>

Vous n'avez pas à vous déconnecter explicitement de la base de données. Le driver utilise les connexions persistentes, et ré-utilisera les connexions déjà existantes.

Voir aussi

La chapitre sur les connexion couvre les différents types de connexions.

La documentation de l'API de la classe MongoClient et de la classe MongoClient::__construct() permet d'avoir une bonne compréhension des options possibles avec bons nombres d'exemples.


Sélection d'une base de données

Pour sélectionner une base de données, utilisez :

<?php
$connection = new MongoClient();
$db = $connection->dbname;
?>

La base de données n'a pas besoin d'avoir été créée auparavant ; vous pouvez simplement créer une nouvelle base de données en tentant de la sélectionner.

Attention aux fautes de frappe ! Vous pouvez par inadvertance créer une nouvelle base de données, ce qui peut rendre plus compliqué de trouver la cause d'une erreur (ici, name est mal écrit : anme dans la seconde sélection) :

<?php
$connection = new MongoClient();

$db = $connection->mybiglongdbname;
// Plus de codes ici...

$db = $connection->mybiglongdbanme;
// Maintenant, vous êtes connecté à une base de données différente !

?>

Voir aussi

La documentation de l'API de la classe MongoDB contient plus d'informations sur les objets de bases de données.


Sélection d'une collection

Récupérer une connexion utilise la même syntaxe que de récupérer une base de données :

<?php

$connection = new MongoClient();
$db = $connection->baz;

// Sélection d'une collection
$collection = $db->foobar;

// ou, sélection direct d'une base de données et d'une collection :
$collection = $connection->baz->foobar;

?>

Une collection est similaire à une table (si vous êtes familier avec les bases de données relationnelles).

Voir aussi

La documentation de l'API de la classe MongoCollection contient plus d'informations sur les objets de collection.


Insertion d'un document

Les tableaux associatifs sont les objets basiques qui peuvent être insérés dans une collection d'une base de données. Un document "document" peut être :

<?php
$doc = array(
    "name" => "MongoDB",
    "type" => "database",
    "count" => 1,
    "info" => (object)array( "x" => 203, "y" => 102),
    "versions" => array("0.9.7", "0.9.8", "0.9.9")
);
?>

Notez que vous pouvez avoir des tableaux et des objets imbriqués. Le driver va toujours stocker un tableau associatif sous forme d'objet dans la base de données. Un tableau indexé numériquement est stocké sous forme de tableau dans le cas où les clés commencent à 0, et ne sont pas interrompues, et sous forme d'objet si les clés du tableau ne commencent pas par 0 ou ont une interruption (e.g. : 0, 1, 4, 5).

Pour insérer ce document, utilisez la méthode MongoCollection::insert() :

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$collection->insert( $doc );
?>

Voir aussi

La documentation de l'API sur la méthode MongoCollection::insert() contient plus d'informations sur l'insertion des données.


Trouver un document en utilisant la méthode MongoCollection::findOne

  • « Insertion d'un document
  • Ajout de plusieurs documents »
  • PHP Manual
  • Tutoriel
  • Trouver un document en utilisant la méthode MongoCollection::findOne

Trouver un document en utilisant la méthode MongoCollection::findOne()

Pour montrer que le document inséré dans l'étape précédente est bien stocké dans la base de données, nous pouvons simplement utiliser la méthode MongoCollection::findOne() pour récupérer une seule document de la collection. Cette méthode est utile dans les cas où il n'y a qu'un seul document correspondant aux critères ou bien si vous ne souhaitez qu'un seul résultat.

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$document = $collection->findOne();
var_dump( $document );
?>

L'exemple ci-dessus va afficher :

array(6) {
  ["_id"]=>
  object(MongoId)#8 (1) {
    ["$id"]=>
    string(24) "4e2995576803fab768000000"
  }
  ["name"]=>
  string(7) "MongoDB"
  ["type"]=>
  string(8) "database"
  ["count"]=>
  int(1)
  ["info"]=>
  array(2) {
    ["x"]=>
    int(203)
    ["y"]=>
    int(102)
  }
  ["versions"]=>
  array(3) {
    [0]=>
    string(5) "0.9.7"
    [1]=>
    string(5) "0.9.8"
    [2]=>
    string(5) "0.9.9"
  }
}

Notez qu'il y a un champ _id qui a été ajouté automatiquement à votre document. _id est le champ de la clé primaire. Si votre document n'en spécifie pas une, le driver en ajoutera une automatiquement.

Si vous spécifiez votre propre champ _id, il doit être unique dans la collection. Par exemple :

<?php
$connection = new MongoClient();
$db = $connection->database;

$db->foo->insert(array("_id" => 1));
// ceci émettra une exception
$db->foo->insert(array("_id" => 1));

// ceci est correct, sachant que c'est une collection différente
$db->bar->insert(array("_id" => 1));

?>

Par défaut, le driver va s'assurer que le serveur a reconnu l'écriture avant de retourner. Vous pouvez optionnellement désactiver ce comportement en passant array("w" => 0) en tant que second argument. Cela signifie que le driver ne va pas attendre la reconnaissance de l'écriture par le serveur, et n'émettra pas d'exception sur le duplicata de _id.

Voir aussi

La méthode MongoCollection::findOne() pour plus d'informations sur la recherche de données.

La classe MongoId vous fournira plus de détails sur les identifiants uniques.

La section sur les écritures couvre les écritures en profondeur, et le chapitre Write Concerns va dans le détail des options d'écritures.


Ajout de plusieurs documents

Afin de faire des requêtes plus intéressantes, commençons par ajouter plusieurs documents simples dans notre collection. Ces documents seront de la forme array( "i" => value ); et nous pourrons les insérer efficacement via une boucle :

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

for ( $i = 0; $i < 100; $i++ )
{
    $collection->insert( array( 'i' => $i, "field{$i}" => $i * 2 ) );
}
?>

Notez que vous pouvez insérer des tableaux avec des clés différentes dans la même collection. Cet aspect correspond à ce que nous avançons lorsque nous disons que MongoDB a "un schéma libre". Dans l'exemple ci-dessus, chaque document a un champ i, mais aussi un nom de champ de la forme field + $i.


Comptage des documents dans une collection

Maintenant que nous avons inséré 101 documents (le 100 noté dans la boucle, +1), nous pouvons vérifier le nombre de documents dans la collection en utilisant la méthode MongoCollection::count().

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

echo $collection->count();
?>
et vous devriez voir afficher : 101.


Utilisation d'un curseur pour récupérer tous les documents

Afin de récupérer tous les documents d'une collection, vous devez utiliser la méthode MongoCollection::find(). Cette méthode retourne un objet MongoCursor qui vous permet de parcourir tous les documents correspondant à votre requête. Aussi, pour récupérer tous les documents et les afficher, vous pouvez faire ceci :

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$cursor = $collection->find();
foreach ( $cursor as $id => $value )
{
    echo "$id: ";
    var_dump( $value );
}
?>
ceci affichera les 101 documents de la collection. $id est le champ _id du document (sous la forme d'une chaîne de caractères), et $value est le document lui-même.

Voir aussi

La documentation de l'API sur la méthode MongoCollection::find() contient plus d'informations sur la recherche de données.


Ajout d'un critère à une requête

Nous pouvons créer une requête à passer à la méthode MongoCollection::find() pour récupérer un sous-jeu de documents de notre collection. Par exemple, si vous voulez trouver les documents dont le champ "i" vaut 71, vous pouvez le faire comme ceci :

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$query = array( 'i' => 71 );
$cursor = $collection->find( $query );

while ( $cursor->hasNext() )
{
    var_dump( $cursor->getNext() );
}
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["i"]=>
  int(71)
  ["_ns"]=>
  "testCollection"
}


Récupération de plusieurs documents avec une requête

Vous pouvez utiliser une requête pour récupérer plusieurs documents depuis la collection. Par exemple, si vous voulez récupérer tous les documents dont le champ "i" est plus grand que 50, vous pouvez le faire comme ceci :

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$query = array( "i" => array( '$gt' => 50 ) ); //notez les simples guillemets autour de '$gt'
$cursor = $collection->find( $query );

while ( $cursor->hasNext() )
{
    var_dump( $cursor->getNext() );
}

?>

Ceci devrait afficher les documents dont le champ "i" est supérieur à 50. Nous pouvons également spécifier un intervalle comme 20 < i <= 30 :

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$query = array( 'i' => array( '$gt' => 20, "\$lte" => 30 ) );
$cursor = $collection->find( $query );

while ( $cursor->hasNext() )
{
    var_dump( $cursor->getNext() );
}
?>

Rappelez-vous de toujours échapper le symbole $ ou d'utiliser des guillemets simples. Sinon, PHP l'interprétera comme étant la variable $gt.


Création d'un index

MongoDB supporte les indexes, et il est très simple de les ajouter à une collection. Pour créer un index, vous devez spécifier le nom du champ ainsi que sa direction : ascendant (1) ou descendant (-1). L'exemple suivant va créer un index ascendant sur le champ "i" :

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$collection->ensureIndex( array( "i" => 1 ) );  // Création d'un index sur le champ "i"
$collection->ensureIndex( array( "i" => -1, "j" => 1 ) );  // Index descendant sur le champ "i", et ascendant sur le champ "j"

?>

L'indexation est une action critique pour les performances en lecture lorsque vos données grossissent. Si vous n'êtes pas familier avec l'indexation, reportez-vous à la documentation de la méthode MongoCollection::ensureIndex() ansi que la » documentation du coeur de l'indexation MongoDB.


Préférences de lecture

MongoDB 2.2 et la version 1.3.0 du driver ajoutent le support pour les » préférences de lecture, qui autorise le contrôle sur la façon dont les requêtes sont dirigées vers les instances mongod dans un environnement de jeux de réplication. Les préférences de lecture peuvent être spécifiées soit pour chaque connexion, soit par base de données, soit par collection. Les préférences définies à un niveau plus élévé seront héritées par défaut (i.e. MongoCollection héritera des préférences définies au niveau correspondant de l'instance MongoDB).

Les préférences de lecture sont spécifiées avec des combinaison de modes et de jeu de tags. Les modes déterminent la façon dont les instances mongod sont priorisées, alors que les » jeux de tags spécifient les critères d'éligibilité des instances mongod. Les instances Mongod ne sont éligibles que si le temps du ping n'excède pas une différence de 15 ms depuis l'instance mongod la plus proche.

Les modes des préférences de lecture

Avertissement

Tous les modes des préférences de lecture, excepté MongoClient::RP_PRIMARY peuvent retourner des données périmées sachant que les opérations de réplication des secondaires depuis le primaire peuvent prendre un certain délai. Assurez-vous que votre application peut toléler des données périmées si vous choisissez d'utiliser un mode autre que le mode MongoClient::RP_PRIMARY.

  • MongoClient::RP_PRIMARY

    Toutes les opérations de lecture n'utilisent que le jeu primaire de réplication courant. C'est le comportement par défaut. Si le primaire n'est pas disponible, les opérations de lecture produiront une exception.

    Ce mode est incompatible avec l'utilisation des jeux de tags. Le fait de spécifier un jeu de tags avec le mode MongoClient::RP_PRIMARY retournera une exception.

  • MongoClient::RP_PRIMARY_PREFERRED

    Dans la plupart des situations, les opérations de lecture s'effectuent depuis le membre primaire du jeu. Cependant, si le primaire n'est pas disponible, ce qui est le cas lors des situations critiques, les opérations de lecture s'effectuent depuis les membres secondaires.

    Lorsque les préférences de lecture incluent un jeu de tags, le client lit tout d'abord en utilisant le primaire, s'il est disponible, puis, en utilisant les secondaires qui correspondent aux tags spécifiés. Si aucun secondaire ne correspond aux tags spécifiés, l'opération de lecture échoue et produit une exception.

    Avertissement

    La version 2.2 de mongo ajoute un support complet des préférences de lecture. Lors de la connexion à d'anciennes instances mongo, MongoClient::RP_PRIMARY_PREFERRED enverra les requêtes aux secondaires.

  • MongoClient::RP_SECONDARY

    Les opérations de lecture ne s'effectuent que sur les membres secondaires du jeu. Si aucun secondaire n'est disponible, les opérations de lecture produiront une exception.

    La plupart des jeux ont au moins un secondaire, mais il existe des situations où il peut ne pas être disponible. Par exemple, un jeu avec un primaire, un secondaire, un arbitraire peut ne pas avoir de secondaire si un membre est en cours de récupération ou indisponible.

    Lorsque les préférences de lecture incluent un jeu de tags, le client tente de trouver des membres secondaires qui correspondent au jeu de tags spécifié, et dirige les lectures vers un secondaire pris aléatoirement dans le groupe le plus proche. Si aucun secondaire ne correspond aux tags, l'opération de lecture produira une exception.

  • MongoClient::RP_SECONDARY_PREFERRED

    Dans la plupart des situations, les opérations de lecture s'effectuent sur les membres secondaires, mais dans le cas où le jeu contient un seul primaire avec aucun autre membre, l'opération de lecture utilisera le primaire du jeu.

    Lorsque les préférences de lecture incluent un jeu de tags, le client tente de trouver un membre secondaire qui correspond au jeu de tags spécifié, et dirige les lectures vers un secondaire pris aléatoirement dans la groupe le plus proche. Si aucun secondaire ne correspond aux tags, l'opération de lecture produira une exception.

  • MongoClient::RP_NEAREST

    Le driver lit depuis un membre aléatoire du jeu, qui a un ping inférieur à 15ms du membre avec le ping le plus bas. Une lecture en mode MongoClient::RP_NEAREST ne prend pas en compte le type du membre, et peut lire depuis les primaires mais aussi depuis les secondaires.

    Utilisez ce mode pour minimiser les effects de latence du réseau lors des opérations de lecture sans préférence pour des données courantes ou périmées.

    Si vous spécifiez un jeu de tags, le client tente de trouver un membre qui correspond au jeu de tags spécifié et dirige les lectures vers un noeud pris aléatoirement depuis le groupe le plus proche.

    Note:

    Toutes les opérations lisent depuis le membre le plus proche du jeu de réplication qui correspond au mode de préférence de lecture spécifié. Le mode MongoClient::RP_NEAREST préfère les faibles latences lors des lectures sur les membres au statut primaire ou secondaire.

Jeux de tags

Les » jeux de tags vous permettent de spécifier des critères indiquant à votre application les membres spécifiques à utiliser lors des opérations de lecture, en se basant sur des paramètres personnalisés. Les jeux de tags permettent cela, permettant ainsi de s'assurer que les opérations de lecture utilisent des membres d'un centre de données particulier, ou utilisent des instances mongod désignées pour une classe particulière d'opérations, comme les rapports ou les analyses.

Vous pouvez spécifier des jeux de tags avec les modes de préférence de lecture suivants :

  • MongoClient::RP_PRIMARY_PREFERRED

  • MongoClient::RP_SECONDARY

  • MongoClient::RP_SECONDARY_PREFERRED

  • MongoClient::RP_NEAREST

Vous ne pouvez pas spécifier de jeux de tags avec le mode de préférence de lecture MongoClient::RP_PRIMARY. Les tags sont applicables que lors de la sélection d'un membre secondaire d'un jeu, excepté lors du mode utilisant le plus proche.

Spécifier les préférences de lecture

Les préférences de lecture peuvent être spécifiées dans l'URI de connexion fourni à la méthode MongoClient::__construct(), qui utilise une syntaxe de type requête, ou via des méthodes du coeur de la classe, qui utilise un tableau pour spécifier les jeux de tags.

Lorsque les modes de préférences de lecture sont fournis via une chaîne de type requête, les jeux de tags pour la valeur de readPreferenceTags doivent être une séquence délimitée par une virgule de paires clé/valeur séparée par deux points(:).

Note:

Chaque jeu de tags défini dans la chaîne de requête utilisera le nom readPreferenceTags. Contrairement à la façon dont PHP gère les chaînes de type URL, les valeurs successives de readPreferenceTags n'effaceront pas les précédentes. Le driver va collecter les jeux de tags dans l'ordre de leur apparition dans la chaîne de requête.

Avertissement

Si le driver ne trouve pas de jeu de tags correspondant, la lecture échoue ! Il en est de votre responsabilité que de fournir un fallback valide, comme une valeur vide pour readPreferenceTags qui voudra dire "aucun jeu de tags de préférence".

Exemple #1 Préférences de lecture via l'URI de connexion avec une syntaxe de type requête

<?php
// Préfère le serveur le plus proche avec aucun tag de préférence
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$m = new Mongo($uri, array('replicaSet' => 'rs'));

// Sélectionne le serveur le plus proche dans le centre de données "east"
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$m = new Mongo($uri, array('replicaSet' => 'rs'));

// Préfère le serveur le plus proche dans le centre de données "east", également
// utilisé pour les rapports, mais utilise le centre de données "west" en cas de problème
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east,use:reporting';
$uri .= '&readPreferenceTags=dc:west';
$m = new Mongo($uri, array('replicaSet' => 'rs'));

// Préfère le serveur le plus proche dans le centre de données "east", puis, un
// serveur dans le centre de données "west", et pour terminer, n'avoir aucun
jeu de tags de préférence si une erreur survient
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$uri .= '&readPreferenceTags=dc:west';
$uri .= '&readPreferenceTags=';
$m = new Mongo($uri, array('replicaSet' => 'rs'));
?>

Exemple #2 Préférences de lecture avec une syntaxe de type tableau pour les jeux de tags

<?php

$m = new Mongo('mongodb://rs1.example.com,rs2.example.com', array(
    'replicaSet' => 'rs',
));

// Préfère le serveur le plus proche, avec aucun tag de préférence
$m->setReadPreference(MongoClient::RP_NEAREST, array());

// Sélectionne le serveur le plus proche dans le centre de données "east"
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east'),
));

// Préfère le serveur le plus proche dans le centre de données "east" également
// utilisé pour les rapports, mais prend un serveur du centre de données "west"
// en cas d'erreur
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));

// Préfère le serveur le plus proche dans le centre de données "east", puis un
// serveur dans le centre de données "west", et pour terminer, n'avoir aucun
jeu de tags de préférence si une erreur survient
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east'),
    array('dc' => 'west'),
    array(),
));
?>


Write Concerns

MongoDB provides several different ways of selecting how durable a write to the database should be. These ways are called Write Concerns and span everything from completely ignoring all errors, to specifically targetting which servers are required to confirm the write before returning the operation.

When a write (such as with MongoCollection::insert(), MongoCollection::update(), and MongoCollection::remove()) is given a Write Concern option ("w") the driver will send the query to MongoDB and piggy back a getLastError command (GLE) with the Write Concern option at the same time. The server only returns when the Write Concern condition is verified to be fullfilled, or the query times out (controlled with the "wtimeout" option, 10000 milliseconds is the default).

Avertissement

Even though a getLastError command times out the data will most likely have been written to the primary server and will be replicated to all the secondaries once they have cought up.

The typical reasons for a timeout to happen is if you specify a Write Concern which requires confirmation from more servers then you currently have available.

When using acknowledged writes and the replica set has failed over, the driver will automatically disconnect from the primary, throw an exception, and attempt to find a new primary on the next operation (your application must decide whether or not to retry the operation on the new primary).

When using unacknowledged writes (w=0) and the replica set has failed over, there will be no way for the driver to know about the change so it will continue and silently fail to write.

The default Write Concern for the MongoClient is 1: acknowledge write operations.

Available Write Concerns
Write Concern | Meaning | Description
w=0 | Unacknowledged | A write will not be followed up with a GLE call, and therefore not checked ("fire and forget")
w=1 | Acknowledged | The write will be acknowledged by the server (the primary on replica set configuration)
w=N | Replica Set Acknowledged | The write will be acknowledged by the primary server, and replicated to N-1 secondaries.
w=majority | Majority Acknowledged | The write will be acknowledged by the majority of the replica set (including the primary). This is a special reserved string.
w=<tag set> | Replica Set Tag Set Acknowledged | The write will be acknowledged by members of the entire tag set
j=true | Journaled | The write will be acknowledged by primary and the journal flushed to disk

Using WriteConcerns

Each of the methods that causes writes (MongoCollection::insert(), MongoCollection::update(), MongoCollection::remove(), and MongoCollection::batchInsert()) allow an optional argument to send a set of options to the MongoDB server. With this option array you can set the WriteConcern as the following example illustrates:

Exemple #1 Passing a WriteConcern to a write operation

<?php
// Setting w=0 for insert:
$collection->insert($someDoc, array("w" => 0));

// Setting w=majority for update:
$collection->update($someDoc, $someUpdates, array("w" => "majority"));

// Setting w=5 and j=true for remove:
$collection->update($someDoc, array("w" => 5, "j" => true));

// Setting w="AllDCs" for batchInsert:
$collection->update(array($someDoc1, $someDoc2), array("w" => "AllDCs"));
?>

Besides setting WriteConcerns per operation as an option argument, it is also possible to set a default WriteConcern in different ways.

The first way is through the connection string. The connection string accepts the journal, w, and wTimeoutMS options:

Exemple #2 Connection string WriteConcerns

<?php
$m = new MongoClient("mongodb://localhost/?journal=true&w=majority&wTimeoutMS=20000");
?>

Since driver version 1.5 it is also possible to call MongoDB::setWriteConcern() and MongoCollection::setWriteConcern() to set a default WriteConcern for all operations created from that specific MongoDB or MongoCollection object:

Exemple #3 MongoDB::setWriteConcern and MongoCollection::setWriteConcern

<?php
$m = new MongoClient("mongodb://localhost/");
$d = $m->demoDb;
$c = $d->demoCollection;

// Set w=3 on the database object with a timeout of 25000ms
$d->setWriteConcern(3, 25000);

// Set w=majority on the collection object without changing the timeout
$c->setWriteConcern("majority");
?>

Unacknowledged Writes

By not requiring the server to acknowledge writes the writes can be performed extremely quickly, but you don't know whether or not they actually succeeded. Writes can fail for a number of reasons: if there are network problems, if a database server goes down, or if the write was simply invalid (e.g., writing to a system collection; or duplicate key errors).

While developing, you should always use acknowledged writes (to protect against inadvertent mistakes, such as syntax errors, invalid operators, duplicate key errors and so on). In production, unacknowledged writes can be used for "unimportant" data. Unimportant data varies on application, but it's generally automatically (instead of user generated) data, such as click tracking or GPS locations, where you can get thousands of records per second.

It is strongly recommended that you do an acknowledged write at the end of series of unacknowledged writes. Doing so will not incur in a too large performance penalty, but still allow you to catch any errors that may have occurred.

Exemple #4 Unacknowledged WriteConcern, followed with Acknowledged Write

<?php
$collection->insert($someDoc, array("w" => 0));
$collection->update($criteria, $newObj, array("w" => 0));
$collection->insert($somethingElse, array("w" => 0));
try {
    $collection->remove($something, array("w" => 1));
} catch(MongoCursorException $e) {
    /* Handle the exception.. */
    /* Here we should issue find() queries on the IDs generated for
    $somethingElse and $someDoc to verify they got written to the database and
    attempt to figureout where in the chain something happened. */
}
?>

If the last write throws an exception, you know that there's a problem with your database.

Acknowledged Writes

These type of write operations will make sure that the database has accepted the write operation before returning success. If the write failed, it will throw a MongoCursorException with an explanation of the failure. The MongoClient default behaviour is to acknowledge the write (w=1).

It is possible to specify how many members of an replica set have to acknowledge the write (i.e. have it replicated) before the write is deemed acknowledged and the operation returns.

Exemple #5 Acknowledged Writes

<?php
// Force acknowledgement from the primary only
$collection->insert($doc, array("w" => 1));

// Force acknowledgement from the primary, and one other member of the
// replica set
$collection->insert($doc, array("w" => 2));

// Force acknowledgement from the primary, and six other members of the
// replica set (you probably never should do this):
$collection->insert($doc, array("w" => 7));
?>

Keep in mind to select your Write Concern carefully. If you have a replica set with 5 members, and you select Write Concern of 4 you will risk the write blocking forever when one member of the replica set goes down for maintenance or a temporary network outage happens.

Avertissement

Passing in a string value for Write Concern has a specific meaning (Replica Set Tag Set Acknowledged). Please be careful of NOT using string values for numbers (i.e. array("w" => "1")) as it will be treated as a tag set name.

Majority Acknowledged Writes

Using the special majority Write Concern option is the recommended way for writes that are required to survive the apocalypse, as it will ensure the majority of your replica set will have the write and will therefore be guaranteed to survive all usual suspect outage scenarios.

Exemple #6 Majority Acknowledged Write

<?php
$collection->insert($someDoc, array("w" => "majority"));
?>

Journaled Writes

When connecting to a replica set the default Write Concern is only to have the primary server acknowledge the write. There is however a 100ms window until the write gets journaled and flushed to disk. It is possible to force the write to be journaled before acknowledging the write by setting the j option:

Exemple #7 Acknowledged and Journaled Write

Forcing journal flush

<?php
$options = array(
    "w" => 1,
    "j" => true,
);
try {
    $collection->insert($document, $options);
} catch(MongoCursorException $e) {
    /* handle the exception */
}
?>

Voir aussi

  • » MongoDB WriteConcern docs

Historique

Version | Description
1.3.0 | MongoClient was introduced and defaults to acknowledged writes. The deprecated Mongo defaults to unacknowledged writes.
1.3.0 | The "safe" write option has been deprecated and is not available with the new MongoClient class. Use the "w" option instead.


Cartographie de mappage SQL vers Mongo

Il y a une version spécifique à PHP de la cartographie de mappage » SQL vers Mongo dans la documentation principale.

Requête SQL | Requête en langage Mongo
CREATE TABLE USERS (a Number, b Number) | Implicite ou utilisez MongoDB::createCollection().
INSERT INTO USERS VALUES(1,1) | $db->users->insert(array("a" => 1, "b" => 1));
SELECT a,b FROM users | $db->users->find(array(), array("a" => 1, "b" => 1));
SELECT * FROM users WHERE age=33 | $db->users->find(array("age" => 33));
SELECT a,b FROM users WHERE age=33 | $db->users->find(array("age" => 33), array("a" => 1, "b" => 1));
SELECT a,b FROM users WHERE age=33 ORDER BY name | $db->users->find(array("age" => 33), array("a" => 1, "b" => 1))->sort(array("name" => 1));
SELECT * FROM users WHERE age>33 | $db->users->find(array("age" => array('$gt' => 33)));
SELECT * FROM users WHERE age<33 | $db->users->find(array("age" => array('$lt' => 33)));
SELECT * FROM users WHERE name LIKE "%Joe%" | $db->users->find(array("name" => new MongoRegex("/Joe/")));
SELECT * FROM users WHERE name LIKE "Joe%" | $db->users->find(array("name" => new MongoRegex("/^Joe/")));
SELECT * FROM users WHERE age>33 AND age<=40 | $db->users->find(array("age" => array('$gt' => 33, '$lte' => 40)));
SELECT * FROM users ORDER BY name DESC | $db->users->find()->sort(array("name" => -1));
CREATE INDEX myindexname ON users(name) | $db->users->ensureIndex(array("name" => 1));
CREATE INDEX myindexname ON users(name,ts DESC) | $db->users->ensureIndex(array("name" => 1, "ts" => -1));
SELECT * FROM users WHERE a=1 and b='q' | $db->users->find(array("a" => 1, "b" => "q"));
SELECT * FROM users LIMIT 20, 10 | $db->users->find()->limit(10)->skip(20);
SELECT * FROM users WHERE a=1 or b=2 | $db->users->find(array('$or' => array(array("a" => 1), array("b" => 2))));
SELECT * FROM users LIMIT 1 | $db->users->find()->limit(1);
EXPLAIN SELECT * FROM users WHERE z=3 | $db->users->find(array("z" => 3))->explain()
SELECT DISTINCT last_name FROM users | $db->command(array("distinct" => "users", "key" => "last_name"));
SELECT COUNT(*y) FROM users | $db->users->count();
SELECT COUNT(*y) FROM users where AGE > 30 | $db->users->find(array("age" => array('$gt' => 30)))->count();
SELECT COUNT(AGE) from users | $db->users->find(array("age" => array('$exists' => true)))->count();
UPDATE users SET a=1 WHERE b='q' | $db->users->update(array("b" => "q"), array('$set' => array("a" => 1)));
UPDATE users SET a=a+2 WHERE b='q' | $db->users->update(array("b" => "q"), array('$inc' => array("a" => 2)));
DELETE FROM users WHERE z="abc" | $db->users->remove(array("z" => "abc"));


Connection

Sommaire

  • Connexion via SSL
  • Authentification
  • Paires de réplication
  • Fragmentation
  • Support des sockets de domaine
  • Les connexions persistentes (version 1.3.0+)
  • File d'attente de connexion (version 1.2.0-1.2.12 *seulement*)
  • Les connexions persistantes manuelles (version supérieure à 1.1.4 *uniquement*)

La connexion à MongoDB est aussi simple que cela : new MongoClient, mais il existe aussi plusieurs options et plusieurs configurations. La page sur la méthode MongoClient::__construct() couvre toutes les options offertes par l'API, mais aussi, propose plusieurs cas pratiques.


Connexion via SSL

Le driver supporte les connexions » MongoDB via SSL et peut, optionnellement, utiliser les options de contexte du flux SSL pour fournir plus de détails, comme la vérification des certificats en utilisant une chaîne de certificat spécifique, ou l'authentification à » MongoDB en utilisant des certificats X509.

Exemple #1 Connexion à l'instance MongoDB avec un cryptage SSL

<?php
$mc = new MongoClient("mongodb://server1", array("ssl" => true));
?>

Exemple #2 Connexion à l'instance MongoDB avec le cryptage SSL avec des vérifications

<?php
$SSL_DIR = "/vagrant/certs/";
$SSL_FILE = "CA_Root_Certificate.pem";

$ctx = stream_context_create(array(
    "ssl" => array(
        /* Authorité de certification du certificat du serveur distant utilisé pour la signature */
        "cafile"            => $SSL_DIR . "/" . $SSL_FILE,

        /* On désactive les certificats auto-signés */
        "allow_self_signed" => false,

        /* Vérifie le certificat d'apairage avec notre certificat racine d'authorité de certification */
        "verify_peer"       => true, /* Default to false pre PHP 5.6 */

        /* Vérifie le nom d'apairage (i.e. validation du nom d'hôte) */
        /* Nous utilisons le nom d'hôte utilisé pour la connexion sur le noeud */
        "verify_peer_name"  => true,

        /* On vérifie que le certificat du serveur n'a pas expiré */
        "verify_expiry"     => true, /* Seulement disponible avec le driver MongoDB PHP */
    ),
);

$mc = new MongoClient(
    "mongodb://server1",
    array("ssl" => true),
    array("context" => $ctx)
);
?>

Note:

"verify_peer_name" est nouveau en PHP 5.6.0. Le driver MongoDB, depuis la version 1.6.5, a porté cette fonctionalité dans le driver lui-même, aussi, il fonctionne avec PHP 5.3 et 5.4 également.

Exemple #3 Connexion à l'instance MongoDB qui nécessite des certificats client

<?php
$SSL_DIR  = "/vagrant/certs/";
$SSL_FILE = "CA_Root_Certificate.pem";

MYCERT   = "/vagrant/certs/ca-signed-client.pem";

$ctx = stream_context_create(array(
    "ssl" => array(
        "local_cert"        => $MYCERT,
        /* Si le certificat que nous avons fourni a été encodé avec une phrase en guise de mot de passe, nous devons la définir ici */
        "passphrase"        => "Ma phrase mot de passe ici pour le local_cert",

        /* Optionnellement, on vérifie que le serveur est bien celui annoncé */
        "cafile"            => $SSL_DIR . "/" . $SSL_FILE,
        "allow_self_signed" => false,
        "verify_peer"       => true,
        "verify_peer_name"  => true,
        "verify_expiry"     => true,
    ),
));

$mc = new MongoClient(
    "mongodb://server1/?ssl=true",
    array(),
    array("context" => $ctx)
);
?>

Exemple #4 Authentification avec des certificats X.509

Le nom d'utilisateur correspond au certificate subject du certificat X509, qui peut être extrait comme ceci :

openssl x509 -in /vagrant/certs/ca-signed-client.pem -inform PEM -subject -nameopt RFC2253
<?php
$ctx = stream_context_create( array(
    "ssl" => array(
        "local_cert" => "/vagrant/certs/ca-signed-client.pem",
    )
) );

$mc = new MongoClient(
    'mongodb://username@server1/?authSource=$external&authMechanism=MONGODB-X509&ssl=true',
    array(),
    array("context" => $ctx)
);
?>

Où username est le sujet du certificat.

Historique

Version | Description
1.5.0 | Ajout du support pour l'authentification X509.
1.4.0 | Ajout du support pour les connexions MongoDB via SSL.


Authentification

Si MongoDB est en fonctionnement avec l'option --auth ou l'option --keyFile, vous devez vous authentifier avant de faire n'importe quelle opération avec le driver. Vous pouvez vous authentifier via la connexion en spécifiant le nom d'utilisateur et le mot de passe soit dans l'URI de connexion, ou en utilisant les options "username" et "password" dans le constructeur MongoClient::__construct().

Exemple #1 Authentification sur la base de données "admin"

<?php
// Spécifie le nom d'utilisateur et le mot de passe dans l'URI de connexion (méthode préférée)
$m = new MongoClient("mongodb://${username}:${password}@localhost");

// Spécifie le nom d'utilisateur et le mot de passe via le tableau d'options (méthode alternative)
$m = new MongoClient("mongodb://localhost", array("username" => $username, "password" => $password));
?>

Par défaut, le driver s'authentifiera sur la base de données admin. Vous pouvez vous authentifier sur une base de données différente en le spécifiant soit dans l'URI de connexion, soit via l'option "db" du constructeur MongoClient::__construct().

Exemple #2 Authentification sur une base de données normale

<?php
// Spécifie la base de données à utiliser dans l'URI de connexion (méthode préférée)
$m = new MongoClient("mongodb://${username}:${password}@localhost/myDatabase");

// Spécifie la base de données à utiliser via le tableau d'options (méthode alternative)
$m = new MongoClient("mongodb://${username}:${password}@localhost", array("db" => "myDatabase"));
?>

Si votre connexion est interrompue, le driver tentera automatiquement une re-connexion ou une ré-authentification.


Paires de réplication

Pour se connecter à une paire de réplication, vous devez spécifier au moins un membre de la paire et utiliser l'option "replicaSet". Plusieurs serveurs doivent être délimités par une virgule.

Exemple #1 Liste du jeux de réplication

<?php

// Utilisation de plusieurs serveurs de la liste (méthode préférée)
$m = new MongoClient("mongodb://rs1.example.com:27017,rs2.example.com:27017/?replicaSet=myReplSetName");

// Utilisation d'un seul serveur de la liste
$m = new MongoClient("mongodb://rs1.example.com:27017", array("replicaSet" => "myReplSetName"));

// Utilisation de plusieurs serveurs de la liste
$m = new MongoClient("mongodb://rs1.example.com:27017,rs2.example.com:27017", array("replicaSet" => "myReplSetName"));
?>

Le pilote PHP requêtera le(s) serveur(s) de base de données listé(s) pour vérifier qui est le primaire. Dès qu'il peut se connecter à au moins un hôte listé, et trouver un primaire, la connexion sera réussie. Dans le cas contraire, une MongoConnectionException est envoyée.

Astuce

Vous devriez toujours fournir une liste de partage contenant plus d'un membre du jeu de réplication. Pour une haute disponibilité, vous devriez partager avec au moins un serveur de chacun de vos centres de données.

Avertissement

Les noms d'hôte que vous spécifiez dans la liste de partage doivent correspondre aux noms d'hôte présent dans la configuration du jeux de réplication. Et ce, car le driver utilise uniquement les noms d'hôte présents dans la configuration du jeux de réplication pour créer le hash pour ces connexions persistentes.

Par exemple, si une adresse IP est utilisée dans la liste de partage et que le jeux de réplication est configuré avec les noms d'hôte, le driver va rejeter toutes les connexions de la liste de partage qui diffèrent des noms d'hôte canoniques présents dans le jeux de réplication. En pratique, ces connexions non-canoniques de la liste de partage seront re-créées à chaque requête, ce qui réduit le bénéfice de l'utilisation des connexions persistentes.

Avertissement

Le driver ne supporte pas les connexions aux différents jeux de réplication avec un nom identique. Vous devez vous assurer d'avoir des noms différents pour chaque serveur de vos jeux de réplication. Cela signifie également que vous ne pouvez pas faire ceci :

Exemple #2 Mauvais noms pour le jeu de réplication

<?php
$m = new MongoClient("mongodb://devserver1,devserver2,devserver3/?replicaSet=repset");
$m = new MongoClient("mongodb://prodserver1,prodserver2,prodserver3/?replicaSet=repset");
?>

A la place, vous devez avoir deux noms différents pour vos jeux de réplications :

Exemple #3 Utilisation correcte des noms de deux jeux de réplication

<?php
$m = new MongoClient("mongodb://devserver1,devserver2,devserver3/?replicaSet=devset");
$m = new MongoClient("mongodb://prodserver1,prodserver2,prodserver3/?replicaSet=prodset");
?>

Si le primaire devient indisponible, les secondaires ne deviendront pas primaires pendant ces quelques secondes. Pendant ce temps là (» 20-60 secondes), la connexion ne sera pas capable d'effectuer les opérations sur la base de données (les connexions aux secondaires pourront toujours effectuer des lectures) et une exception sera levée.

Note:

La préférence de lecture par défaut est de ne lire que depuis le primaire. Lors du processus d'élection, il n'y a pas de primaire, et toutes les lectures échoueront.

Il est recommandé d'utiliser la préférence de lecture MongoClient::RP_PRIMARY_PREFERRED pour les applications qui requièrent une haute disponibilité pour les lectures, vu que les lectures ne seront réalisées sur les secondaires que lorsqu'il n'y a aucun primaire de disponible.

Une fois le maître trouvé, essayer des lectures ou écritures permettra au pilote de détecter le nouveau primaire. Le pilote en fera alors sa connexion principale et continuera les opérations normalement.

La santé et le statut d'un secondaire sont vérifiés toutes les 5 secondes (configurable avec la directive mongo.ping_interval) ou lorsque la prochaine opération survient après 5 secondes. La configuration sera de nouveau analysée lorsque le driver rencontre un problème lors d'une connexion à un serveur.

Les failovers du jeu de réplication sont vérifiés toutes les 60 secondes (configurable avec la directive mongo.is_master_interval), et lorsqu'une opération en écriture échoue avec des écritures reconnues.

Attention

Les secondaires peuvent être derrière le primaire lors des opérations, aussi, votre application doit être capable de gérer les données périmées lors de l'utilisation de préférences de lecture autre que MongoClient::RP_PRIMARY.

Pour plus d'informations sur les paires de réplication, reportez-vous à la » documentation interne.

Voir aussi

  • Préférences de lecture
  • Write Concerns

Historique

Version | Description
1.0.9 | Ajout du support au jeu de réplication, et du failover automatique.


Fragmentation

Pour se connecter à un cluster fragmenté, vous devez spécifier une ou plusieurs instances mongos dans la chaîne de connexion. Les serveurs doivent être séparés par une virgule.

<?php

// Utilisation d'un serveur depuis la liste
$m = new MongoClient("mongodb://mongos1.example.com:27017");

// Utilisation de plusieurs serveurs depuis la liste
$m = new MongoClient("mongodb://mongos1.example.com:27017,mongos2.example.com:27017");

?>

Que le cluster fragmenté soit un serveur mongod simple ou un jeu complet de réplication, le processus de connexion du driver reste le même. Toutes les communications à la base de données seront dirigées vers mongos.

Pour plus d'informations sur la fragmentation avec MongoDB, reportez-vous à cette » documentation.


Support des sockets de domaine

MongoDB a un support interne des sockets de domaine Unix, et ouvrira le socket au démarrage, par défaut, situé dans le fichier /tmp/mongodb-<port>.sock..

Pour vous connecter au fichier de socket, specifiez le chemin dans la chaine de connexion MongoDB:

<?php
$m = new MongoClient("mongodb:///tmp/mongo-27017.sock");
?>

Si vous voulez vous authentifier sur une base de données (tel que décrit ci-dessous) en utilisant un socket, vous devez alors préciser un port égal à 0 comme cela l'analyseur sait où trouver la fin de la chaine de connexion. Vous pouvez également utiliser les options du constructeur.

<?php
$m = new MongoClient("mongodb://username:password@/tmp/mongo-27017.sock:0/foo");
?>

Historique

Version | Description
1.0.9 | Ajout du support des sockets de domaine Unix.


Les connexions persistentes (version 1.3.0+)

Toutes les version du driver depuis la version 1.3.0 utilisent les connexions persistentes pour minimiser le nombre de connexions effectuées à chaque serveur de base de données. Ces connexions sont sauvegardées par le processus PHP et peuvent être réutilisées par plusieurs requêtes.

Avant la connexion au serveur de base de données, le driver va créer un hash pour la connexion basé sur l'hôte, le port, le nom du jeux de réplication (s'il y en a), tous les éléments d'authentification (i.e. le nom d'utilisateur, le mot de passe, la base de données), ainsi que l'identifiant de processus. Si une connexion existe déjà avec ce hash, elle sera utilisée au lieu de créer une nouvelle connexion associée à ce hash. La fonction MongoClient::getConnections() peut être utilisée pour récupérer les informations à propos de chaque connexion persistente. Par exemple :

<?php

$m1 = new MongoClient('mongodb://localhost');
$m2 = new MongoClient('mongodb://localhost');
$m3 = new MongoClient('mongodb://user:pw@localhost');
$m4 = new MongoClient('mongodb://127.0.0.1');
$m5 = new MongoClient('mongodb://rs1.local:30017,rs2.local:30018/?replicaSet=rs');
$m6 = new MongoClient('mongodb://sharding.local:40017');

foreach (MongoClient::getConnections() as $conn) {
    echo $conn['hash'], "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

localhost:27017;-;X;15487
localhost:27017;-;admin/user/c56c…8bbc;15487
127.0.0.1:27017;-;X;15487
rs1.local:30017;rs;X;15487
rs2.local:30018;rs;X;15487
sharding.local:40017;-;X;15487

Dans cet exemple, $m1 et $m2 ont le même hash et partage une connexion persistente. Les connexions pour chacun des autres instances MongoClient ont un hash unique, et utilisent leurs propres sockets. Notez que "localhost" et "127.0.0.1" ne partagent pas le même hash ; la résolution DNS n'est pas utilisée dans ce calcul.


File d'attente de connexion (version 1.2.0-1.2.12 *seulement*)

Note:

Cette section n'est plus pertinente depuis la version 1.3.0 du driver, et n'est plus présente que dans un but d'historisation de l'information sur la façon dont la mise en file d'attente fonctionne.

The latest versions of the driver have no concept of pooling anymore and will maintain only one connection per process, for each connection type (ReplicaSet/standalone/mongos), for each credentials combination.

La création de connexions est une des actions les plus lourdes réalisées par le driver. Cela peut prendre plusieurs millisecondes pour définir correctement une connexion, y compris sur un réseau rapide. Aussi, le driver tente de minimiser le nombre de nouvelles connexions créées en réutilisant les connexions depuis la file d'attente.

Lorsqu'un utilisateur crée une nouvelle instance de la clase MongoClient, toutes les connexions nécessaires seront prises depuis leurs files d'attente (les connexions pour le jeu de réplication peuvent nécessiter plusieurs connexions, une pour chaque membre du jeu). Lorsque l'instance de la classe MongoClient sort du scope, les connexions seront remises dans la file d'attente. Lorsque le processus PHP existe, toutes les connexions de la file d'attente seront fermées.

"Pourquoi dois-je avoir autant de connexions ouvertes ?"

La file d'attente de connexions peut générer un nombre important de connexions. Ceci est voulu, et, en utilisant un peu d'arithmétique, vous pouvez trouver le nombre de connexions qui sera créée. Il y a 3 facteurs qui affectent le nombre de connexions :

  • connections_per_pool

    Chaque file d'attente de connexions, créera, par défaut, un nombre illimité de connexions. Cela peut poser quelques soucis : si la file peut créer un nombre illimité de connexions, peut-elle en créer des centaines et ainsi, dépasser les descripteurs de fichiers du serveur ? En pratique, ceci est peu probable, sachant que chaque connexion inutilisée est replacée dans la file d'attente pour une réutilisation ultérieure, aussi, les futures connexions utiliseront la même connexion au lieu d'en créer une nouvelle. Sauf si vous créez volontairement des milliers de connexions à la fois sans les laisser sortir du scope, le nombre de connexions ouvertes devrait rester à un niveau raisonnable.

    Vous pouvez voir le nombre de connexions présentes dans la file d'attente en utilisant la méthode MongoPool::info(). Ajouter les champs "in use" et "in pool" pour un serveur donné. Ce sera le nombre total de connexions pour cette file d'attente.

  • pools_per_process

    Chaque adresse de serveur MongoDB sur lequel vous vous connectez utilise sa propre file d'attente de connexions. Par exemple, si votre nom d'hôte local est "example.net", une connexion à "example.net:27017", "localhost:27017", et "/tmp/mongodb-27017.sock" créera 3 files d'attente de connexions. Vous pouvez voir le nombre de files d'attentes de connexions ouvertes en utilisant la méthode MongoPool::info().

  • processes

    Chaque processus PHP a un jeu de files d'attente séparées. PHP-FPM et Apache créent généralement entre 6 et une douzaine de fils. Vérifiez votre configuration pour voir le nombre maximal de processus PHP pouvant être engendrés.

    Si vous utilisez PHP-FPM, le fait d'estimer le nombre de connexions peut être délicat car le processus va engendrer encore plus de fils à forte charge. Pour rester dans un contexte sécurisé, regardez le paramètre max_children et ajoutez-y spare_servers + start_servers (choisissez le nombre le plus important). Le résultat sera le nombre de processus PHP (et donc, le nombre de jeux de files d'attente) dont vous pourrez vous attendre.

Les trois variables ci-dessus peuvent être multipliés ensemble pour fournir le nombre maximal de connexions attendues : connections_per_pool * pools_per_process * processes. Notez que connections_per_pool peut être différent suivant les files d'attente, aussi, connections_per_pool devrait être le maximal.

Par exemple, supposez que vous avez 30 connexions par files d'attentes, 10 files d'attente par processus PHP, et 128 processus PHP. Alors, vous pouvez vous attendre à 38400 connexions depuis cette machine. Aussi, vous devriez définir la limite des descripteurs de fichiers de cette machine à une valeur suffisante pour gérer toutes ces connexions, ou alors les descripteurs de fichiers ne seront pas suffisants.

Voir la méthode MongoPool pour plus d'informations sur les files d'attente de connexions.


Les connexions persistantes manuelles (version supérieure à 1.1.4 *uniquement*)

Note:

Cette section n'est pas pertinente pour les versions 1.2.0+. En 1.2.0+, les connexions sont toujours persistantes et gérées automatiquement par le driver. Si vous utilisez la version 1.2.x (mais non 1.3.x ou supérieur), reportez-vous à la méthode MongoPool pour plus d'informations sur les files d'attente de connexions.

La création de nouvelles connexions à la base de données est une opération lente. Pour minimiser le nombre de connexions que vous devez effectuer, vous pouvez utiliser les connexions dites "persistantes". Une connexion persistante est sauvegardée par PHP, et ainsi, vous pourrez utiliser la même connexion pour toutes vos requêtes.

Par exemple, ce programme simple se connecte à la base de données 1000 fois :

<?php

for ($i=0; $i<1000; $i++) {
  $m = new MongoClient();
}

?>

Son exécution prend approximativement 18 secondes. Si vous changez ce code pour utiliser les connexions persistantes :

<?php

for ($i=0; $i<1000; $i++) {
  $m = new MongoClient("localhost:27017", array("persist" => "x"));
}

?>

... il ne prend plus que .02 secondes, vu qu'il ne réalise réellement qu'une seule connexion à la base de données.

Les connexions persistantes ont besoin d'une chaîne d'identification (qui est "x" dans notre précédent exemple) afin de les identifier de façon unique. Afin d'utiliser une connexion persistante, le nom de l'hôte, le port, la chaîne d'identification, le nom d'utilisateur ainsi que le mot de passe (si fourni) doivent correspondre avec une connexion persistante existante. Sinon, une nouvelle connexion sera créée avec ces informations d'identification.

Les connexions persistantes sont hautement recommandées et devraient être systématiquement utilisées en production sauf si une très bonne raison indique le contraire. La plupart des raisons qui font qu'elles ne sont pas recommandées dans le cas des bases de données relationnelles ne sont pas applicables pour MongoDB.


Options de contexte du flux

L'extension PHP MongoDB fournit un support de contexte du flux en utilisant le contexte mongodb.

Un contexte de flux doit être créé avec la fonction stream_context_create() puis, passé à la méthode MongoClient::__construct() avant que la connexion avec MongoDB ne soit réalisée. Il n'est pas possible d'appliquer le contexte de flux à des flux existants.

Des paramètres et options de contexte additionnelles, comme ssl et des paramètres de notification, sont également supportées.

Les options de contexte MongoDB fournissent une interface riche pour surveiller le traffic réseau entre le driver et le serveur MongoDB. Cette interface peut être utilisée pour fournir une historisation des requêtes, une profilage, un dobogueur, ou tout autre chose permettant d'inspecter les commandes sous-jacentes et les options de protocole.

Voir aussi

  • Options de contexte SSL
  • Options de contexte des sockets
  • Paramètres de contexte

Sommaire

  • log_cmd_delete — Fonction de rappel lors de la suppression des documents
  • log_cmd_insert — Fonction de rappel lors de l'insertion de documents
  • log_cmd_update — Fonction de rappel lors de la mise à jour de documents
  • log_getmore — Fonction de rappel lors de la récupération du prochain curseur du lot
  • log_killcursor — Fonction de rappel lors de l'exécution des opération KILLCURSOR
  • log_reply — Fonction de rappel lors de la lecture d'une réponse MongoDB
  • log_write_batch — Fonction de rappel pour écrire les lots


Fonction de rappel lors de la suppression des documents

  • « Options de contexte du flux
  • log_cmd_insert »
  • PHP Manual
  • Options de contexte du flux
  • Fonction de rappel lors de la suppression des documents

log_cmd_delete

(PECL mongo >= 1.5.0)

log_cmd_delete — Fonction de rappel lors de la suppression des documents

Description

log_cmd_delete ( array $server , array $writeOptions , array $deleteOptions , array $protocolOptions )

Une fonction de rappel callable, utilisée par l'option de contexte log_cmd_delete, lors de la suppression d'un document.

Note:

Ceci n'est pas une réelle fonction, mais uniquement un prototype de la façon dont la fonction devrait être.

Liste de paramètres

server

Un tableau contenant les informations basiques du serveur récupéré.

clé | valeur
hash | Hash du serveur, par exemple : localhost:27017;-;X;56052
type | Type du noeud (primaire/secondaire/mongos/arbitraire) : 2
max_bson_size | La taille BSON maximale que ce noeud accepte : 16777216
max_message_size | La taille maximale du message que ce noeud accepte : 48000000
request_id | L'identifiant de requête pour ce message : 42

writeOptions

key | value
ordered | booléen, si l'opération doit être exécutée séquentiellement (dans le cas d'une exécution par lot) (ordered=true)
writeConcern | Un tableau d'option pour writeConcern (Voir plus loin)
Tableau de valeurs writeConcern
key | value
fsync | booléen, force le flushing vers le disque avant de retourner
j | boolean, force l'écriture dans le journal avant de retourner
wtimeout | entier, millisecondes, temps maximum le serveur primaire est autorisé à attendre pour vérifier la réplication
w | integer=server count, or string=replication-tag

deleteOptions

Clé | Valeur
limit | entier, 1 ou 0. Si 0, suppression de tous les documents correspondants.
q | Tableau, les critères de recherche

protocolOptions

key | value
message_length | La taille totale (en bytes) du message encodé en cours d'envoi.
request_id | L'identifiant de requête pour ce message : 42
namespace | L'espace de nommage MongoDB utilisé pour le message protocolaire dbname.collectionname

Historique

Version | Description
1.5.0 | Uniquement disponible lorsque connecté à MongoDB 2.6.0+


Fonction de rappel lors de l'insertion de documents

  • « log_cmd_delete
  • log_cmd_update »
  • PHP Manual
  • Options de contexte du flux
  • Fonction de rappel lors de l'insertion de documents

log_cmd_insert

(PECL mongo >= 1.5.0)

log_cmd_insert — Fonction de rappel lors de l'insertion de documents

Description

log_cmd_insert ( array $server , array $document , array $writeOptions , array $protocolOptions )

Une fonction de rappel callable, utilisée par l'option de contexte log_cmd_insert, lors de l'insertion d'un document.

Note:

Ceci n'est pas une réelle fonction, mais seulement un prototype de la façon dont devrait être la fonction.

Liste de paramètres

server

Un tableau contenant les informations basiques du serveur récupéré.

clé | valeur
hash | Hash du serveur, par exemple : localhost:27017;-;X;56052
type | Type du noeud (primaire/secondaire/mongos/arbitraire) : 2
max_bson_size | La taille BSON maximale que ce noeud accepte : 16777216
max_message_size | La taille maximale du message que ce noeud accepte : 48000000
request_id | L'identifiant de requête pour ce message : 42

document

Le document préparé pour l'insertion

writeOptions

key | value
ordered | booléen, si l'opération doit être exécutée séquentiellement (dans le cas d'une exécution par lot) (ordered=true)
writeConcern | Un tableau d'option pour writeConcern (Voir plus loin)
Tableau de valeurs writeConcern
key | value
fsync | booléen, force le flushing vers le disque avant de retourner
j | boolean, force l'écriture dans le journal avant de retourner
wtimeout | entier, millisecondes, temps maximum le serveur primaire est autorisé à attendre pour vérifier la réplication
w | integer=server count, or string=replication-tag

protocolOptions

key | value
message_length | La taille totale (en bytes) du message encodé en cours d'envoi.
request_id | L'identifiant de requête pour ce message : 42
namespace | L'espace de nommage MongoDB utilisé pour le message protocolaire dbname.collectionname

Historique

Version | Description
1.5.0 | Uniquement disponible lorsque connecté à MongoDB 2.6.0+


Fonction de rappel lors de la mise à jour de documents

  • « log_cmd_insert
  • log_getmore »
  • PHP Manual
  • Options de contexte du flux
  • Fonction de rappel lors de la mise à jour de documents

log_cmd_update

(PECL mongo >= 1.5.0)

log_cmd_update — Fonction de rappel lors de la mise à jour de documents

Description

log_cmd_update ( array $server , array $writeOptions , array $updateOptions , array $protocolOptions )

Une fonction de rappel callable, utilisée pour l'option de contexte log_cmd_update, lors de la mise à jour d'un document.

Note:

Ceci n'est pas une réelle fonction, mais seulement un prototype de la façon dont devrait être la fonction.

Liste de paramètres

server

Un tableau contenant les informations basiques du serveur récupéré.

clé | valeur
hash | Hash du serveur, par exemple : localhost:27017;-;X;56052
type | Type du noeud (primaire/secondaire/mongos/arbitraire) : 2
max_bson_size | La taille BSON maximale que ce noeud accepte : 16777216
max_message_size | La taille maximale du message que ce noeud accepte : 48000000
request_id | L'identifiant de requête pour ce message : 42

writeOptions

key | value
ordered | booléen, si l'opération doit être exécutée séquentiellement (dans le cas d'une exécution par lot) (ordered=true)
writeConcern | Un tableau d'option pour writeConcern (Voir plus loin)
Tableau de valeurs writeConcern
key | value
fsync | booléen, force le flushing vers le disque avant de retourner
j | boolean, force l'écriture dans le journal avant de retourner
wtimeout | entier, millisecondes, temps maximum le serveur primaire est autorisé à attendre pour vérifier la réplication
w | integer=server count, or string=replication-tag

updateOptions

Clé | Valeur
multi | Booléen, TRUE si cette mise à jour est autorisée à mettre à jour tous les critères correspondants
upsert | Booléen, TRUE si le document doit être créé si le critère ne correspond pas
q | Tableau, les critères de recherche
u | Tableau, le nouvel objet/les modifications

protocolOptions

key | value
message_length | La taille totale (en bytes) du message encodé en cours d'envoi.
request_id | L'identifiant de requête pour ce message : 42
namespace | L'espace de nommage MongoDB utilisé pour le message protocolaire dbname.collectionname

Historique

Version | Description
1.5.0 | Uniquement disponible lorsque connecté à MongoDB 2.6.0+


Fonction de rappel lors de la récupération du prochain curseur du lot

  • « log_cmd_update
  • log_killcursor »
  • PHP Manual
  • Options de contexte du flux
  • Fonction de rappel lors de la récupération du prochain curseur du lot

log_getmore

(PECL mongo >= 1.5.0)

log_getmore — Fonction de rappel lors de la récupération du prochain curseur du lot

Description

log_getmore ( array $server , array $info )

Une fonction de rappel callable, utilisée par l'option de contexte log_getmore, lors de l'exécution d'une opération GET_MORE.

Note:

Ceci n'est pas une réelle fonction, mais seulement un prototype de la façon dont devrait être la fonction.

Liste de paramètres

server

Un tableau contenant les informations basiques du serveur récupéré.

clé | valeur
hash | Hash du serveur, par exemple : localhost:27017;-;X;56052
type | Type du noeud (primaire/secondaire/mongos/arbitraire) : 2
max_bson_size | La taille BSON maximale que ce noeud accepte : 16777216
max_message_size | La taille maximale du message que ce noeud accepte : 48000000
request_id | L'identifiant de requête pour ce message : 42

info

Clé | Valeur
request_id | entier, l'identifiant de requête du driver
cursor_id | entier, l'identifiant du curseur utilisé pour récupérer plus de données
batch_size | entier, nombre maximal de documents demandés


Fonction de rappel lors de l'exécution des opération KILLCURSOR

  • « log_getmore
  • log_reply »
  • PHP Manual
  • Options de contexte du flux
  • Fonction de rappel lors de l'exécution des opération KILLCURSOR

log_killcursor

(PECL mongo >= 1.5.0)

log_killcursor — Fonction de rappel lors de l'exécution des opération KILLCURSOR

Description

log_killcursor ( array $server , array $info )

Une fonction de rappel callable, utilisée par l'option de contexte log_killcursor, lors de la lecture d'un killcursor depuis MongoDB.

Note:

Ceci n'est pas une réelle fonction, uniquement un prototype de la façon dont devrait être la fonction.

Liste de paramètres

server

Un tableau contenant les informations basiques du serveur récupéré.

clé | valeur
hash | Hash du serveur, par exemple : localhost:27017;-;X;56052
type | Type du noeud (primaire/secondaire/mongos/arbitraire) : 2
max_bson_size | La taille BSON maximale que ce noeud accepte : 16777216
max_message_size | La taille maximale du message que ce noeud accepte : 48000000
request_id | L'identifiant de requête pour ce message : 42

info

Clé | Valeur
cursor_id | entier, l'identifiant du curseur à tuer


Fonction de rappel lors de la lecture d'une réponse MongoDB

  • « log_killcursor
  • log_write_batch »
  • PHP Manual
  • Options de contexte du flux
  • Fonction de rappel lors de la lecture d'une réponse MongoDB

log_reply

(PECL mongo >= 1.5.0)

log_reply — Fonction de rappel lors de la lecture d'une réponse MongoDB

Description

log_reply ( array $server , array $messageHeaders , array $operationHeaders )

Une fonction de rappel callable, utilisée par l'option de contexte log_reply, lors de la lecture d'une réponse depuis MongoDB.

Note:

Ceci n'est pas une fonction réelle, mais seulement un prototype de la façon dont doit être la fonction.

Liste de paramètres

server

Un tableau contenant les informations basiques du serveur récupéré.

clé | valeur
hash | Hash du serveur, par exemple : localhost:27017;-;X;56052
type | Type du noeud (primaire/secondaire/mongos/arbitraire) : 2
max_bson_size | La taille BSON maximale que ce noeud accepte : 16777216
max_message_size | La taille maximale du message que ce noeud accepte : 48000000
request_id | L'identifiant de requête pour ce message : 42

messageHeaders

Clé | Valeur
length | entier, en octets, de la longueur du message de la réponse
request_id | entier, l'identifiant de requête du serveur
response_id | entier, l'identifiant de requête du driver dont ce message est la réponse
opcode | entier, l'identifiant opcode

operationHeaders

Clé | Valeur
flags | entier, masque de bits des drapeaux du protocole
cursor_id | entier, ID du curseur créé sur le serveur (0 si aucune n'est créé, ou s'il est épuisé)
start | La position de départ de ce curseur
returned | entier, nombre de documents retournés durant cette étape

Voir aussi

  • La » définition d'OP_REPLY dans ce protocole


Fonction de rappel pour écrire les lots

  • « log_reply
  • Écritures »
  • PHP Manual
  • Options de contexte du flux
  • Fonction de rappel pour écrire les lots

log_write_batch

(PECL mongo >= 1.5.0)

log_write_batch — Fonction de rappel pour écrire les lots

Description

log_write_batch ( array $server , array $writeOptions , array $batch , array $protocolOptions )

Une fonction de rappel callable, utilisée par l'option de contexte log_write_batch, lors de l'exécution d'un lot d'opérations.

Note:

Ceci n'est pas une fonction réelle, mais seulement un prototype de la façon dont la fonction doit être.

Liste de paramètres

server

Un tableau contenant les informations basiques du serveur récupéré.

clé | valeur
hash | Hash du serveur, par exemple : localhost:27017;-;X;56052
type | Type du noeud (primaire/secondaire/mongos/arbitraire) : 2
max_bson_size | La taille BSON maximale que ce noeud accepte : 16777216
max_message_size | La taille maximale du message que ce noeud accepte : 48000000
request_id | L'identifiant de requête pour ce message : 42

writeOptions

key | value
ordered | booléen, si l'opération doit être exécutée séquentiellement (dans le cas d'une exécution par lot) (ordered=true)
writeConcern | Un tableau d'option pour writeConcern (Voir plus loin)
Tableau de valeurs writeConcern
key | value
fsync | booléen, force le flushing vers le disque avant de retourner
j | boolean, force l'écriture dans le journal avant de retourner
wtimeout | entier, millisecondes, temps maximum le serveur primaire est autorisé à attendre pour vérifier la réplication
w | integer=server count, or string=replication-tag

batch

Tableau, le lot actuel d'opérations.

protocolOptions

key | value
message_length | La taille totale (en bytes) du message encodé en cours d'envoi.
request_id | L'identifiant de requête pour ce message : 42
namespace | L'espace de nommage MongoDB utilisé pour le message protocolaire dbname.collectionname

Historique

Version | Description
1.5.0 | Uniquement disponible lors d'une connexion à MongoDB 2.6.0+


Écritures

Mise à jour d'objets imbriqués

Supposez que vous souhaitez modifier le nom de l'auteur de ce commentaire, dans ce document :

{
    "_id" : ObjectId("4b06c282edb87a281e09dad9"),
    "content" : "this is a blog post.",
    "comments" :
    [
        {
            "author" : "Mike",
            "comment" : "I think that blah blah blah...",
        },
        {
            "author" : "John",
            "comment" : "I disagree."
        }
    ]
}
Afin de modifier le champ interne, nous utilisons $set (ainsi, tous les autres champs ne seront pas supprimés) avec l'index du commentaire à modifier :
<?php

$blog->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim"))));

?>

L'opérateur de position

L'opérateur de position $ est utile pour mettre à jour les objets qui sont des tableaux. Dans l'exemple ci-dessus, supposons que nous ne connaissons pas l'index du commentaire que nous souhaitons modifier, mais juste que nous souhaitons modifier "John" en "Jim". Nous pouvons ici utiliser $ pour arriver à nos fins.

<?php

$blog->update(
    array('comments.author' => 'John'),
    array('$set' => array('comments.$.author' => 'Jim')));

?>


Interrogation

Distribution des requêtes aux secondaires

Toutes les requêtes (en lecture et en écriture) ne sont envoyées qu'au membre primaire du jeu de réplication par défaut. Ce comportement est cependant facilement configurable en utilisant les préférences de lecture qui vous permettent de définir quelques préférences de lecture génériques (comme l'autorisation des lectures sur un secondaire du serveur le plus proche), mais aussi fournissent une façon de spécifier un serveur précis, dans un pays spécifique, un centre de données précis, ou même un matériel donné, en utilisant les tags des jeux de réplication.

Les préférences de lecture peuvent être configurées à tous les niveaux du driver.

  • Sous la forme d'un paramètre ou d'une option à MongoClient::__construct()
  • Spécifiquement, en appelant la méthode MongoClient::setReadPreference()
  • Au niveau de la base de données, avec la méthode MongoDB::setReadPreference()
  • Au niveau de la collection, avec la méthode MongoCollection::setReadPreference()
  • Au niveau du curseur, avec la méthode MongoCursor::setReadPreference() ou la méthode MongoCommandCursor::setReadPreference()
Chaque classe hérite de la configuration des préférences de lecture de le contexte appelant.

Exemple #1 Héritage des préférences de lecture depuis le niveau de la base de données vers le curseur

<?php
$db->setReadPreference(MongoClient::RP_SECONDARY_PREFERRED);
$c = $db->myCollection;

$cursor = $c->find();
?>

Dans cet exemple, la requête sera exécutée sur un secondaire. La collection hérite de MongoClient::RP_SECONDARY_PREFERRED depuis la base de données, et le curseur en hérite de la collection.

Comment les secondaires sont-ils choisis ?

Chaque instance de MongoClient choisit son secondaire en utilisant le secondaire ayant le ping le moins élevé. Ainsi, si nous avons un client PHP en Europe et un en Australie et que nous avons un secondaire dans chacun de ces data-centers, nous pouvons faire :

<?php
$options = array("replicaSet" => "setName", "readPreference" => MongoClient::RP_SECONDARY_PREFERRED);

// sur un client Australien
$m = new MongoClient("mongodb://primary,australianhost.secondary,europeanhost.secondary", $options);
$cursor = $m->foo->bar->find();
$cursor->getNext();
echo "Lecture depuis : ", $cursor->info()["server"], "\n";

// sur un client européen
$m = new MongoClient("mongodb://primary,australianhost.secondary,europeanhost.secondary", $options);
$cursor = $m->foo->bar->find();
$cursor->getNext();
echo "Lecture depuis : ", $cursor->info()["server"], "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Lecture depuis : australianHost
Lecture depuis : europeanHost

Notez que nous devons exécuter une requête avant qu'un secondaire ne soit choisi : les secondaires sont choisis par le driver et pour chaque requête, séparément.

Vous pouvez voir le choix du driver, en analysant le statut courant du membres du jeu, en exécutant la méthode MongoClient::getHosts() ou la méthode MongoClient::getConnections().

Si aucun secondaire n'est lisible, le driver enverra les lectures au primaire, tel que nous l'avons spécifié avec MongoClient::RP_SECONDARY_PREFERRED, qui aura comme comportement de repli que d'exécuter une requete sur un primaire, si aucune secondaire n'est disponible. Un serveur est considéré comme lisible si son état vaut 2 (secondaire) et sa santé vaut 1. Vous pouvez vérifier cela avec les méthodes MongoClient::getHosts() et MongoClient::getConnections().

Diverses notes

Les écritures sont toujours envoyées au serveur principal et par défaut, toutes les lectures sont aussi envoyées au primaire.

Interrogation sur un _id

Chaque objet inséré se voit assigné automatiquement un champ unique _id, qui est bien utile pour être utilisé dans les requêtes. Ceci fonctionne de façon similaire à la fonctionalité "donne moi le dernier ID inséré", excepté que _id est choisi par le client.

Supposez que vous voulez trouver un document que vous venez tout juste d'insérer. L'insertion ajoute un champ _id au document, aussi, vous pouvez effectuer votre requête de la sorte :

<?php
$person = array("name" => "joe");

$people->insert($person);

// Maintenant, $joe a un champ _id
$joe = $people->findOne(array("_id" => $person['_id']));
?>

Tant que l'utilisateur ne l'a pas spécifié autrement, le champ _id est un MongoId. L'erreur la plus courante est d'essayer d'utiliser une chaîne qui correspond à un MongoId. Gardez à l'esprit que cet identifiant a 2 types de données différents, et ne correspond pas l'un l'autre, de la même façon que la chaîne "array()" n'est pas la même chose qu'un tableau vide. Par exemple :

<?php
$person = array("name" => "joe");

$people->insert($person);

// Conversion de l'_id en une chaîne
$pid = $person['_id'] . "";

// ECHEC - $pid est une chaîne, et non un MongoId
$joe = $people->findOne(array("_id" => $pid));
?>

Les tableaux

Les tableaux sont spéciaux à plus d'un titre. Tout d'abord, il y a 2 types utilisés par MongoDB : des tableaux "normaux" et des tableaux associatifs. Les tableaux associatifs peuvent avoir plusieurs types de clés et de valeurs. Les tableaux "normaux" sont définis comme tableaux dans ces indices numériques ascendants, en commençant par 0 et s'incrémentant de 1 pour chaque élément. Ces 2 types correspondent à ce que vous connaissez déjà comme type en PHP.

Actuellement, si vous voulez sauvegarder la liste des récompenses dans un document, vous pouvez :

<?php

$collection->save(array("awards" => array("gold", "silver", "bronze")));

?>

Les requêtes peuvent effectuer des recherches directement dans les éléments. Supposez que nous souhaitons trouver tous les documents dont l'élément du tableau est à une valeur fournie. Par exemple, les documents dont la récompense est l'or, comme ceci :

{ "_id" : ObjectId("4b06c282edb87a281e09dad9"), "awards" : ["gold", "silver", "bronze"]}

Ceci peut être effectué avec une requête simple, en ignorant le fait que "awards" est un tableau :

<?php

$cursor = $collection->find(array("awards" => "gold"));

?>

Supposez que vous interrogiez la base de données avec un objet plus complexe, dont chaque élément du tableau sont eux-mêmes des objets, comme ceci :

{
     "_id" : ObjectId("4b06c282edb87a281e09dad9"),
     "awards" :
     [
        {
            "first place" : "gold"
        },
        {
            "second place" : "silver"
        },
        {
            "third place" :  "bronze"
        }
     ]
}

Continuons d'ignorer que c'est un tableau. Nous pouvons utiliser la notation basée sur les points pour interroger le sous-objet :

<?php

$cursor = $collection->find(array("awards.first place" => "gold"));

?>

Notez qu'il importe peu qu'il y ait un espace dans le nom du champ (bien qu'il convient de ne pas en mettre, juste pour rendre le code plus lisible).

Vous pouvez également utiliser un tableau contenant plusieurs valeurs à chercher. Actuellement, si nous cherchons les documents "gold" et "copper", nous pouvons le faire comme ceci :

<?php

$cursor = $collection->find(array("awards" => array('$in' => array("gold", "copper"))));

?>

Historique

Version | Description
1.3.0 | Introduction du framework pour les préférence de lecture permettant une contrôle fin des lectures sur les secondaires.
1.3.0 | L'utilisation de slaveOkay devient obsolète ; l'alternative est les préférences de lecture.
1.1.0 | Introduction de la possibilité de router les lectures vers les secondaires des membres du jeu de réplication, en utilisant la méthode Mongo::setSlaveOkay().


Mises à jour

Les mises à jour sont les opérations les plus compliquées disponibles avec MongoDB. Elles combinent une requête avec une action, modifiant les documents qui correspondent aux critères. Elles sont également extrèmement puissantes, vous permettant de changer les documents rapidement mais aussi de les remplacer tous ensemble. Elles se font sur place (quand c'est possible), entrainant une légère surcharge.

Modification et remplacement de documents

Il existe 2 types de mises à jour: modification ou remplacement. Les modifications contiennent des opérateurs $ et changent des champs d'un document: elles peuvent incrémenter des compteurs, ajouter des éléments dans des tableaux ou encore changer le type d'un champ.

Par exemple, une mise à jour en modification ajoute un nouveau champ au document.

<?php
/** imaginons un document de cette structure :
 * {"username" : "...", "password" : "...", "email" : "..."}
 */
$coll->update(array("username" => "joe"), array('$set' => array("twitter" => "@joe4153")));

/** maintenant, le document ressemblera à :
 * {"username" : "joe", "password" : "...", "email" : "...", "twitter" : "@joe4153"}
 */
?>

Les mises à jour de remplacement remplacent le document entier par un autre. Elles ne sont pas aussi efficaces que les modifications, mais elles peuvent avoir un intérêt dans le cas où les opérateurs à $ ne peuvent être utilisés.

Par exemple, une mise à jour de remplacement peut complètement changer la structure d'un document.

<?php
/** imaginons un document de cette structure:
 * {"username" : "...", "password" : "...", "email" : "..."}
 */
$coll->update(array("username" => "joe"), array("userId" => 12345, "info" => array(
    "name" => "joe", "twitter" => "@joe4153", "email" => "..."), "likes" => array()));

/** maintenant, le document ressemblera à :
 * {
 *     "userId" : 12345,
 *     "info" : {
 *         "name" : "joe",
 *         "twitter" : "@joe4153",
 *         "email" : "..."
 *     },
 *     "likes" : []
 * }
 */
?>

Mises à jour des objets imbriqués

Supposez que vous voulez modifier le nom de l'auteur d'un commentaire dans un document :

{
    "_id" : ObjectId("4b06c282edb87a281e09dad9"),
    "content" : "ceci est un post d'un blog.",
    "comments" :
    [
        {
            "author" : "Mike",
            "comment" : "Je pense que blah blah blah...",
        },
        {
            "author" : "John",
            "comment" : "Je ne suis pas d'accord."
        }
    ]
}
Afin de modifier un champ interne, nous utilisons $set (ainsi, les autres champs ne sont pas supprimés) avec l'index du commentaire à changer :
<?php

$blog->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim"))));

?>

L'opérateur de position

L'opérateur de position $ est utile pour la mise à jour d'objets qui se trouvent dans des tableaux. Dans l'exemple suivant, nous supposons que nous ne connaissons pas l'index du commentaire que nous souhaitons modifier, alors que vous voulons changer "John" en "Jim". Nous pouvons dans ce cas utiliser l'opérateur de position $.

<?php

$blog->update(
    array("comments.author" => "John"),
    array('$set' => array('comments.$.author' => "Jim")));

?>


Securité

Attaque par injection dans la requête

Si vous passez des paramètres $_GET (ou $_POST) dans vos requêtes, assurez-vous de les transtyper en chaînes de caractères avant. Les utilisateurs peuvent insérer des tableaux associatifs dans leurs requêtes GET et POST, qui deviendront des requêtes non désirées.

Voici un exemple relativement inoffensif : supposez que vous récupérez les informations d'un utilisateur avec la requête http://www.example.com?username=bob. Votre application exécute la requête suivante : $collection->find(array("username" => $_GET['username'])).

Quelqu'un peut détourner ce comportement en appelant l'URL suivante : http://www.example.com?username[$ne]=foo, que PHP transformera automatiquement en un tableau associatif, exécutant ainsi la requête suivante : $collection->find(array("username" => array('$ne' => "foo"))), qui retournera tous les utilisateurs qui ne se nomment pas "foo" (tous vos utilisateurs, probablement).

Ceci est une attaque simple qui se contre tout aussi facilement : assurez-vous que les paramètres $_GET et $_POST sont du type que vous attendez avant de les envoyer à la base de données (transtypez les en chaînes de caractères, dans ce cas).

Notez que ce type d'attaque peut être utilisée avec chaque itération de bases de données qui tente de localiser un document, y compris les mises à jour, les recherches/remplacements, et les effacement.

Merci à » Phil d'avoir mis le doigt sur ces possibilités.

Reportez-vous à » la documentation principale pour plus d'informations sur les injections SQL avec MongoDB.

Attaques par injection

Si vous utilisez Javascript, assurez-vous que toutes les variables qui passent par le lien PHP-vers-Javascript sont passées dans le champ scope de la classe MongoCode sans être interpolées dans la chaîne Javascript. Ceci peut survenir lors de l'utilisation de la méthode MongoDB::execute(), des clauses $where, MapReduces, group-bys, et à chaque fois que vous pouvez passer du Javascript dans la base de données.

Note:

MapReduce ignore le champ scope de la méthode MongoCode, mais il y a une option scope sur la commande qui peut être utilisée à la place.

Par exemple, supposons que nous avons du Javascript qui salut un utilisateur dans la base de données. Nous pouvons faire :

<?php

// Ne faîtes pas ceci !

$username = $_POST['username'];
$db->execute("print('Hello, $username!');");

?>

Cependant, que se passe-t-il si un utilisateur passe le Javascript suivant ?

<?php

// Ne faîtes pas ceci !

// $username vaut : "'); db.users.drop(); print('"
$db->execute("print('Hello, $username!');");

?>

Maintenant, MongoDB exécute le chaîne Javascript "print('Hello, '); db.users.drop(); print('!');". Ce type d'attaque est facile à contrer : utilisez scope pour passe les variables de PHP à Javascript :

<?php

$scope = array("user" => $username);
$db->execute(new MongoCode("print('Hello, '+user+'!');", $scope));

?>

Ceci permet d'ajout une variable user au scope JavaScript. Maintenant, si quelqu'un tente d'envoyer du code malicieux, MongoDB affichera Hello, '); db.dropDatabase(); print('!.

L'utilisation de scope permet de prévenir d'exécution de code malicieux dans la base de données. Cependant, vous devez vous assurer que votre code ne tourne pas en rond et finisse par, au final, exécuter l'entrée utilisateur ! Par exemple, n'utilisez jamais la fonction Javascript eval sur des entrées utilisateurs :

<?php

// Ne faîtes pas ceci !

// $jsShellInput vaut : "db.users.drop();"
$scope = array("input" => $jsShellInput);
$db->execute(new MongoCode("eval(input);", $scope));

?>

Utilisez toujours scope et n'autorisez jamais la base de données à exécuter des entrées utilisateurs sous forme de code.


Dépannage

Si vous rencontrez des problèmes, il existe un grand nombre de ressources vous permettant d'y faire face.

  • IRC

    Le salon IRC officiel de MongoDB se trouve sur irc.freenode.net/#mongodb. C'est le moyen le plus rapide d'obtenir de l'aide.

  • Liste de diffusion

    La » liste de diffusion MongoDB est un bon moyen (et souvent, un moyen rapide) d'obtenir des réponses à vos questions.

  • Le gestionnaire de bogues

    Vous avez trouvé un bogue ? Vous désirez une nouvelle fonctionnalité ? Vous avez une question ? Rapportez un bogue sur notre » gestionnaire de bogue relatif au driver PHP.

Vous pouvez demander au pilote de loguer tous les types de messages d'erreurs comme le niveau E_NOTICE dans les messages d'erreurs PHP. Regardez au niveau de la classe MongoLog pour un exemple.


Lancer les tests du pilote

Le paquet PECL n'est pas inclus dans les tests, mais sont disponibles sur » Github.

Les tests .phpt

Les tests .phpt sont la façon standard de tester des extensions PHP. Après compilation du driver MongoDG avec la commande "make", vous pouvez ensuite utiliser la commande "make test" pour exécuter les tests. Ces tests nécessitent le bon fonctionnement de MongoDB et donc, vous devez configurer la suite de test en tant que tel.

Reportez-vous à » GitHub pour plus d'informations à propos de ces tests.

Rapport des erreurs

Veuillez rapporter tous les échecs ou les erreurs dans » l'outil de suivi des bogues. Il se peut que des tests ne soient pas exécutés, c'est normal et vous pouvez les ignorer.

Les nouveaux tests sont toujours les bienvenus ! Vous pouvez contribuer en proposant des nouveaux tests sur toutes les fonctionnalités.


Classes internes

Sommaire

  • MongoClient
  • MongoDB
  • MongoCollection
  • MongoCursor
  • MongoCursorInterface
  • MongoCommandCursor
Avertissement

Cette extension est obsolète. À la place, vous devriez utiliser l'extension MongoDB.

Les classes internes représentent la partie la plus importante du driver.


La classe MongoClient

(PECL mongo >=1.3.0)

Avertissement

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette classe sont :

  • MongoDB\Driver\Manager

Introduction

Un gestionnaire de connexion pour PHP et MongoDB.

Cette classe est utilisée pour créer et gérer les connexions. Voici une utilisation typique :

Exemple #1 Utilisation basique de MongoClient

<?php

$m = new MongoClient(); // connexion
$db = $m->foo; // récupération de la base de données nommée "foo"

?>

Voir MongoClient::__construct() ainsi que la section sur les connexions pour plus d'informations sur la création de connexion.

Synopsis de la classe

MongoClient {
/* Constantes */
const string VERSION ;
const string DEFAULT_HOST = "localhost" ;
const int DEFAULT_PORT = 27017 ;
const string RP_PRIMARY = "primary" ;
const string RP_PRIMARY_PREFERRED = "primaryPreferred" ;
const string RP_SECONDARY = "secondary" ;
const string RP_SECONDARY_PREFERRED = "secondaryPreferred" ;
const string RP_NEAREST = "nearest" ;
/* Propriétés */
public boolean $connected = FALSE ;
public string $status = NULL ;
protected string $server = NULL ;
protected boolean $persistent = NULL ;
/* Méthodes */
public __construct ([ string $server = "mongodb://localhost:27017" [, array $options = array("connect" => TRUE) [, array $driver_options ]]] )
public bool close ([ boolean|string $connection ] )
public bool connect ( void )
public array dropDB ( mixed $db )
public MongoDB __get ( string $dbname )
public static array getConnections ( void )
public array getHosts ( void )
public array getReadPreference ( void )
public array getWriteConcern ( void )
public bool killCursor ( string $server_hash , int|MongoInt64 $id )
public array listDBs ( void )
public MongoCollection selectCollection ( string $db , string $collection )
public MongoDB selectDB ( string $name )
public bool setReadPreference ( string $read_preference [, array $tags ] )
public bool setWriteConcern ( mixed $w [, int $wtimeout ] )
public string __toString ( void )
}

Constantes pré-définies

MongoClient Constants

MongoClient::VERSION
Version du driver PHP. Peut être suffixée avec "dev", "+" ou "-" s'il s'agit d'une version intermédiaire.
MongoClient::DEFAULT_HOST
"localhost"
Hôte de connexion si aucun hôte n'est fourni.
MongoClient::DEFAULT_PORT
27017
Port de connexion si aucun port n'est fourni.
MongoClient::RP_PRIMARY
"primary"
Les préférences de lecture pour le membre du jeu de réplication primaire.
MongoClient::RP_PRIMARY_PREFERRED
"primaryPreferred"
Les préférences de lecture pour choisir le membre préféré du jeu de réplication primaire.
MongoClient::RP_SECONDARY
"secondary"
Les préférences de lecture pour un membre du jeu de réplication secondaire.
MongoClient::RP_SECONDARY_PREFERRED
"secondaryPreferred"
Les préférences de lecture pour choisir le membre préféré du jeu de réplication secondaire.
MongoClient::RP_NEAREST
"nearest"
Les préférences de lecture pour le membre le plus proche du jeu de réplication.

Champs

connected

Cette propriété devrait être définie à TRUE si nous avons une connexion ouverte sur la base de données,FALSE sinon. Si la connexion est un jeu de réplication, cette propriété ne pourra valoir que TRUE si le driver a une connexion à noeud correspondant à la préférence de lecture courante. Cette propriété ne prend pas en compte l'identification.

Cette propriété est obsolète depuis la version 1.5.0.

status

Cette propriété n'est plus utilisée et devrait être définie à NULL. Dans les versions 1.1.x et précédentes du driver, cette propriété devait être définie en tant que chaîne de caractères (i.e. "recycled", "new") lorsque les connexions persistentes étaient utilisées.

Cette propriété est obsolète depuis la version 1.5.0.

Voir aussi

  • Préférences de lecture
  • Write Concerns
  • Connection
  • La documentation sur le coeur MongoDB, à propos des » connexions

Sommaire

  • MongoClient::close — Ferme la connexion
  • MongoClient::connect — Ouvre une connexion au serveur de base de données
  • MongoClient::__construct — Crée un nouvel objet de connexion à une base de données
  • MongoClient::dropDB — Supprime une base de données [obsolète]
  • MongoClient::__get — Récupère une base de données
  • MongoClient::getConnections — Retourne des informations sur toutes les connexions ouvertes
  • MongoClient::getHosts — Met à jour les statuts de tous les hôtes associés
  • MongoClient::getReadPreference — Récupère les préférences de lecture pour cette connexion
  • MongoClient::getWriteConcern — Récupère la préoccupation d'écriture pour cette connexion
  • MongoClient::killCursor — Supprime un curseur spécifique du serveur
  • MongoClient::listDBs — Liste toutes les bases de données disponibles
  • MongoClient::selectCollection — Lit une collection de base de données
  • MongoClient::selectDB — Récupère une base de données
  • MongoClient::setReadPreference — Définit les préférences de lecture pour cette connexion
  • MongoClient::setWriteConcern — Défini la préoccupation d'écriture pour cette connexion
  • MongoClient::__toString — Produit une représentation sous forme de chaîne de la connexion


Ferme la connexion

  • « MongoClient
  • MongoClient::connect »
  • PHP Manual
  • MongoClient
  • Ferme la connexion

MongoClient::close

(PECL mongo >=1.3.0)

MongoClient::close — Ferme la connexion

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public bool MongoClient::close ([ boolean|string $connection ] )

La méthode MongoClient::close() ferme une connexion de base de données, y compris si les connexions persistentes sont utilisées. Dans une logique classique, vous ne devriez jamais utiliser cette méthode.

Liste de paramètres

connection

Si ce paramètre n'est pas fourni ou vaut FALSE, alors la connexion sélectionnée pour les écritures sera fermée. Dans une configuration avec un seul noeud, la connexion dans sa totalité sera fermée, mais si vous êtes connecté à un jeu de réplication, close() ne fermera only la connexion au serveur primaire.

Si ce paramètre vaut TRUE, alors toutes les connexions connues du gestionnaire de connexion seront fermées. Cela peut inclure les connexions qui ne sont pas référencées via la chaîne de connexion, utilisée pour créer l'objet que vous souhaitez fermer.

Si ce paramètre est une chaîne, alors seule la connexion identifiée par cette chaîne sera fermée. Cette chaîne identifie une connexion et peut être obtenue en appelant la méthode Mongo::getConnections().

Valeurs de retour

Retourne TRUE si la connexion a pu être fermée.

Exemples

Exemple #1 Exemple avec MongoClient::close()

Cet exemple montre comment fermer toutes les connexions vers les secondaires.

<?php
// Connexion à un jeu de réplication
$a = new MongoClient("mongodb://whisky:13000/?replicaset=seta");

$connections = $a->getConnections();

foreach ( $connections as $con )
{
    // Parcourt des connexions, et lorsque le type est "SECONDARY",
    // nous fermons la connexion
    if ( $con['connection']['connection_type_desc'] == "SECONDARY" )
    {
        echo "Fermeture de '{$con['hash']}': ";
        $closed = $a->close( $con['hash'] );
        echo $closed ? "ok" : "échec", "\n";
    }
}
?>

L'exemple ci-dessus va afficher :

Fermeture de 'whisky:13001;X;4948': ok

Historique

Version | Description
1.3.0 | Le paramètre connection a été ajouté. Avant cette version, seule la connexion en écriture était fermée par cette méthode.
1.2.0 | Avant la version 1.2.0, le driver n'utilisait pas les connexions persistentes par défaut, et toutes les connexions étaient fermées dès que une connexion MongoDB sortait du scope. Depuis la version 1.2.0, ce n'est plus le cas et c'est une mauvaise idée d'appeler la méthode close car vous pourriez finir par surcharger le serveur avec des connexions à haute charge.

Voir aussi

  • MongoClient::getConnections() - Retourne des informations sur toutes les connexions ouvertes


Ouvre une connexion au serveur de base de données

  • « MongoClient::close
  • MongoClient::__construct »
  • PHP Manual
  • MongoClient
  • Ouvre une connexion au serveur de base de données

MongoClient::connect

(PECL mongo >=1.3.0)

MongoClient::connect — Ouvre une connexion au serveur de base de données

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public bool MongoClient::connect ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Si la connexion a réussi.

Erreurs / Exceptions

Émet une exception MongoConnectionException si la connexion à la base de données échoue.


Crée un nouvel objet de connexion à une base de données

  • « MongoClient::connect
  • MongoClient::dropDB »
  • PHP Manual
  • MongoClient
  • Crée un nouvel objet de connexion à une base de données

MongoClient::__construct

(PECL mongo >=1.3.0)

MongoClient::__construct — Crée un nouvel objet de connexion à une base de données

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\Driver\Manager::__construct()

Description

 public MongoClient::__construct
  ([ string $server = "mongodb://localhost:27017"
 [, array $options = array("connect" => TRUE)
 [, array $driver_options
]]] )

Si aucun paramètre n'est passé, la connexion se fera sur "localhost:27017" (ou ce qui a été spécifié dans php.ini pour mongo.default_host et mongo.default_port).

server doit être de la forme :

mongodb://[username:password@]host1[:port1][,host2[:port2:],...]/db

La chaine de connexion débute toujours par mongodb://.

Si username et password sont précisés, le constructeur tentera d'authentifier la connexion à la base. Username et password sont optionnels et doivent être suivis d'une @, si renseignés.

Au moins un hôte doit être précisé (port optionnel, par défaut 27017) et plusieurs hôtes vers lesquels se connecter peuvent être passés. Les noms d'hôtes sont séparés par des virgules et le constructeur exécutera sans erreur si au moins un des hôtes peut être connecté. Si il ne peut se connecter à aucun hôte, il enverra une MongoConnectionException. Veuillez vous reporter à la section sur les jeux de réplication pour plus d'informations sur la façon dont on se connecte aux jeux de réplication.

Si vous avez précisé un username et un password, vous devez préciser une base de données envers laquelle s'authentifier. Si db n'est pas renseigné, "admin" sera utilisé.

Une chaîne optionnelle de la requête peut être utilisée pour spécifier d'autres options. Les mêmes options sont également supportées via le tableau options, et y sont décrites. Voir les exemples ci-dessous pour connaitre la façon pour définir ces options.

Une partie de ces options concerne la façon dont le driver lit depuis des noeuds secondaires dans un environnement de jeu de réplication. Vous pouvez trouver plus d'informations sur la méthode de fonctionnement des préférences de lecture via la page de la documentation relative aux préférences de lecture.

Liste de paramètres

server

Le nom du serveur.

options

Un tableau d'options pour la connexion. Les options disponibles sont :

  • "authMechanism"

    Les mécanismes disponibles sont :

    authMechanism | Description | Disponibilité
    MONGODB-CR | Authentification en utilisant le mécanisme Challenge Response. C'est la valeur par défaut. | Toutes les versions MongoDB
    X509 | Authentification en utilisant les certificats X509 | MongoDB 2.6. Uniquement disponible lorsque OpenSSL est activé
    PLAIN | Authentification en utilisant un nom d'utilisateur avec un mot de passe en clair. Doit être utilisé sur des connexions SSL. Habituellement utilisé par MongoDB pour s'identifier sur des serveurs LDAP tierces | MongoDB Enterprise 2.4. Le driver doit avoir été compilé avec CyrusSASL2
    GSSAPI | Authentification via les systèmes kerberos | MongoDB Enterprise 2.4. Le driver doit avoir été compilé avec CyrusSASL2

  • "authSource"

    Doit être défini au nom de la base de données dans laquelle l'utilisateur est défini.

  • "connect"

    Si le constructeur doit se connecter avant de retourner l'objet. Par défaut TRUE. Lorsque vaut FALSE, le driver va automatiquement se connecter au serveur chaque fois qu'il est nécessaire d'y faire une requête. Mais vous pouvez aussi exécuter la méthode MongoClient::connect() manuellement.

    Avertissement

    Cette option n'est pas supportée via la chaîne de connexion.

  • "connectTimeoutMS"

    Durée pendant laquelle une connexion peut rester ouverte avant de se fermer, en millisecondes. Vaut par défaut 60000 (60 secondes).

    Si -1 est spécifié, aucun délai maximal d'attente de connexion ne sera appliqué et PHP va utiliser la valeur de default_socket_timeout.

  • "db"

    La base de données sur laquelle l'authentification doit s'effectuer ; elle peut être spécifiée ici au lieu de l'inclure dans la liste des hôtes. Ce paramètre écrase une base de données fournie dans la liste des hôtes.

  • "fsync"

    Lorsque "fsync" est défini, toutes les opérations en écriture seront bloquantes tant que la base de données ne les aura pas écrites sur le disque. Ceci rend les opérations d'écriture plus lentes, mais garantie que les écritures réussissent et que les opérations peuvent être retrouvées dans le cas d'un échec total du système.

    Si le serveur MongoDB a son historisation d'activé, cette option est identique à "journal". Si l'historisation n'est pas activée, cette option s'assure que les opérations d'écriture seront synchronisées dans les fichiers de base de données sur le disque.

    Note: Si l'historisation est activée, les utilisateurs sont vivement encouragés à utiliser l'option "journal" plutôt que "fsync". N'utilisez pas "fsync" et "journal" en même temps ; cela produirait une erreur.

  • "journal"

    Lorsque "journal" est défini, toutes les opérations en écriture seront bloquantes tant que la base de données n'aura pas reflétée ces modifications dans le journal du disque. Ceci rend les opérations en écriture plus lentes, mais garantie que les écritures ont réussi et que les opérations peuvent être retrouvées en cas d'échec total du système.

    Note: Si cette option est utilisée et que l'historisation est activée, MongoDB 2.6+ va émettre une erreur, et l'écriture échouera ; les anciennes versions de serveur vont simplement ignorer cette option.

  • "gssapiServiceName"

    Défini le » service principal Kerberos. Uniquement applicable lorsque authMechanism=GSSAPI. Par défaut, "mongodb".

  • "password"

    Le mot de passe peut être spécifié ici, au lieu de l'inclure dans la liste des hôtes. Ceci est utile tout spécialement si le mot de passe contient le caractère "@". Ce paramètre écrase le mot de passe défini dans la liste des hôtes.

  • "readPreference"

    Spécifie le type de préférence de lecture. Les préférences de lecture vous permettent de contrôler quel secondaire sera utilisé pour lire les données.

    Les valeurs possibles sont : MongoClient::RP_PRIMARY,
MongoClient::RP_PRIMARY_PREFERRED,
MongoClient::RP_SECONDARY,
MongoClient::RP_SECONDARY_PREFERRED et
MongoClient::RP_NEAREST.

    Voir la documentation sur les préférences de lecture pour plus d'informations.

  • "readPreferenceTags"

    Spécifie les tags pour les préférences de lecture. Les tags peuvent être utilisés en combinaison de l'option readPreference afin de contrôler le type de données que l'on doit lire depuis le secondaire.

    Voir la documentation sur les préférences de lecture pour plus d'informations.

  • "replicaSet"

    Nom du pool de réplicats sur lequel se connecter. Si fourni, le primaire sera déterminé en utilisant la commande ismaster sur les serveurs, ainsi le pilote peut se connecter à un serveur qui n'était même pas listé. Voyez l'exemple après pour plus de détails.

  • "secondaryAcceptableLatencyMS"

    Lors d'une lecture depuis un secondaire (en utilisant ReadPreferences), ne pas lire depuis les secondaires dont on sait que la latence dépasse secondaryAcceptableLatencyMS. Par défaut, vaut 15

  • "socketTimeoutMS"

    La durée qu'une opération de socket (lecture ou écriture) peut prendre avant d'atteindre le délai maximal d'attente, en millisecondes. Par défaut, vaut 30000 (30 secondes).

    Si -1 est spécifié, les opérations de socket peuvent bloquer indéfiniement. Cette option peut également être définie pour chaque opération en utilisant la méthode MongoCursor::timeout() pour les requêtes, ou l'option "socketTimeoutMS" pour les méthodes d'écriture.

    Note: Ceci est un délai d'attente maximal côté client. Si une opération en écriture atteint le délai maximal d'attente, il n'y a aucune façon de savoir si le serveur gère actuellement l'écriture ou non, sachant que l'exception MongoCursorTimeoutException sera émise au lieu de retourner un résultat d'écriture.

  • "ssl"

    Un booléen pour spécifier si l'on souhaite ou non activer SSL pour les connexions MongoDB. Les autres options comme les certificats peuvent être définies avec Options de contexte SSL.

  • "username"

    Le nom d'utilisateur peut être spécifié ici, au lieu de l'inclure dans la liste des hôtes. Ceci est utile tout spécialement si le nom d'utilisateur contient un caractère ":". Ce paramètre écrase le nom d'utilisateur défini dans la liste des hôtes.

  • "w"

    L'option w contrôle la durée de blocage du driver lors d'une écriture.La valeur par défaut est 1.

    Une valeur entière positive contrôle le nombre de noeuds dans un jeu de réplication qui ont reçu une instruction d'écriture avant que le driver ne continue. Une valeur de 3 signifie que l'écriture a été appliquée au primaire ainsi qu'à deux autres membres du jeu de réplication.

    Une chaîne est utilisée pour contrôler quels jeux de tags seront pris en compte pour les écritures. La chaîne "majority" est spéciale et s'assure que les opérations d'écriture ont été appliquées à la majorité (plus de 50%) des noeuds concernés.

  • "wTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour une prise en compte de la préoccupation d'écriture. Ceci n'est applicable que pour les opérations en écriture où "w" est supérieur à 1, sachant que le délai d'attente maximal concerne aussi la réplication. Si la préoccupation en écriture n'est pas respectée pendant le temps limite, une exception MongoCursorException sera émise. Une valeur de 0 peut être spécifiée pour bloquer indéfiniement. La valeur par défaut est 10000 (dix secondes).

Les options suivantes sont obsolètes et ne doivent plus être utilisées :

  • "slaveOkay"

    Obsolète. Veuillez utiliser plutôt les options de préférence de lecture.

  • "timeout"

    Alias obsolète pour "connectTimeoutMS".

  • "wTimeout"

    Alias obsolète pour "wTimeoutMS".

driver_options

Un tableau d'options pour le driver MongoDB. Les options incluent les configurations de connexions des options de contexte pour SSL ou les fonctions de rappel de l'identification.

  • "context"

    Le contexte de flux à attacher à toutes les nouvelles connexions. Ceci vous permet, par exemple, de configurer les certificats SSL décrits sur la page de la documentation sur les options de contexte SSL. Voir le tutorial sur la connexion via SSL.

Valeurs de retour

Retourne un nouvel objet de connexion à la base de données Mongo.

Erreurs / Exceptions

Emet une exception MongoConnectionException si la connexion échoue avec les identifiants pour la base de données considérée ou si les identifiants sont invalides. Voyez la documentation de MongoConnectionException pour en savoir plus sur les exceptions courantes et leurs causes.

Exemples

Exemple #1 Exemple avec MongoClient::__construct() et un pool de réplicats

Cet exemple montre comment se connecter avec le driver à un pool de réplicats. Il suppose un jeu de trois serveurs : sf1.example.com, sf2.example.com et ny1.example.com. Le primaire peut être l'un de ces serveurs.

<?php

// Passer une liste séparée par une virgule de noms de serveurs au constructeur.
// Notez que vous n'avez pas besoin de passer tous les membres du jeu de réplication,
// le driver va dériver la liste complète.
$m1 = new MongoClient("mongodb://sf2.example.com,ny1.example.com", array("replicaSet" => "myReplSet"));

?>

Si le primaire courant échoue, le pilote calculera quel serveur secondaire deviendra le nouveau primaire et utilisera sa connexion. Le failover ne fonctionnera pas correctement si replicaSet n'est pas spécifié.

Au moins un serveur dans la liste doit fonctionner pour que le pilote se connecte au pool de replica.

Si vous incluez des serveurs depuis deux pools de réplicats distincts, le comportement est alors indéfini.

Voyez la » documentation du coeur sur la réplication.

Exemple #2 Connexion via socket UNIX

Dans les versions 1.0.9+, vous pouvez utiliser un socket du domaine UNIX pour vous connecter à une instance de MongoDB locale. Ceci devrait être plus rapide qu'une connexion réseau.

Dans la version 1.5.0, Le serveur MongoDB ouvre automatiquement un socket à /tmp/mongodb-<port>.sock. Vous pouvez vous y connecter en précisant le chemin dans la chaine de connexion :

<?php

// Serveur MongoDB local sur le port 20000
$m = new MongoClient("mongodb:///tmp/mongodb-20000.sock");

?>

Vous pouvez combiner cela avec d'autres connexions :

<?php

// Essaye la connexion socket UNIX, utilise localhost sinon
$m = new MongoClient("mongodb:///tmp/mongodb-27017.sock,localhost:27017");

?>

Exemple #3 Exemple d'authentification MongoClient::__construct()

Un utilisateur doit exister dans la base de données admin avant de lancer l'authentification. Vous pouvez créer un utilisateur avec la commande shell Mongo suivante :

> use admin
switched to db admin
> db.addUser("testUser", "testPass");
{
        "_id" : ObjectId("4b21272fd9ab21611d19095c"),
        "user" : "testUser",
        "pwd" : "03b9b27e0abf1865e2f6fcbd9845dd59"
}
>

Après avoir crée un utilisateur, dans notre cas de nom "testUser" et password "testPass", vous pouvez créer une connexion authentifiée :

<?php

$m = new MongoClient("mongodb://testUser:testPass@localhost");

?>

Exemple #4 Exemple avec MongoClient::__construct() et des préférences de lecture

<?php

// Préfère le serveur le plus proche dans le centre de données "east"
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));
?>

Voir la section relative aux préférences de lecture de ce manuel pour plus d'informations.

Exemple #5 Exemple avec MongoClient::__construct() et des options

Les options peuvent être passées à la fois directement dans la chaîne de requête dans la connexion, ou comme tableau passé comme second argument du constructeur.

Ici, nous définissons l'option journal à TRUE et readPreference au secondaire préféré, comme défaut pour toutes les opérations en écriture :

<?php
$m = new MongoClient("mongodb://localhost/?journal=true&readPreference=secondary");
?>

Et maintenant, nous faisons la même chose mais via le tableau d'options :

<?php
$options = array(
    'journal' => true,
    'readPreference' => 'secondary',
);
$m = new MongoClient("mongodb://localhost/", $options);
?>

Exemple #6 Exemple avec MongoClient::__construct() et les préférences de lecture

<?php

// Préfère le serveur le plus proche dans le centre de données "east"
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));
?>

Voir la section sur les préférences de lecture de ce manuel pour plus d'informations.

Historique

Version | Description
1.5.0

Ajout de "authMechanism", "gssapiServiceName" et "secondaryAcceptableLatencyMS".

1.4.0

Ajout de l'option "ssl" et du support de la connexion via SSL.

Ajout de l'option "wTimeoutMS", qui remplace l'option "wTimeout".

Emets une alerte de niveau E_DEPRECATED lorsque "slaveOkay" ou "timeout" est utilisé.

1.5.0

Ajout de "authSource".

1.3.4

Ajout des options "connectTimeoutMS" et "socketTimeoutMS".

1.3.0

Ajout des options "readPreference", "readPreferenceTags", "w" et "wTimeout".

1.2.0

Ajout des options "username" et "password".

Suppression de l'option "persist", toutes les connexions sont désormais persistantes. Le paramètre peut tout de même être utilisé, il sera simplement ignoré.

"persist"

Si la connexion doit être persistante. La chaine représentant la valeur est utilisée comme identifiant de connexion, ainsi deux instances de MongoClient qui sont initialisées avec array("persist" => "foobar") vont partager la même connexion à la base, alors que une instance initialisée avec array("persist" => "barbaz") utilisera une connexion différente.

Le paramètre "replicaSet" accepte maintenant une chaine, pas un booléen.

1.0.9 | Ajout de l'option "replicaSet".
1.0.2

Le constructeur a changé pour accepter une tableau. Avant 1.0.2, le constructeur acceptait les paramètres suivants :

server

Nom du serveur.

connect

Paramètre optionnel indiquant si le constructeur doit se connecter à la base avant de retourner l'objet. Par défaut TRUE.

persistent

Si la connexion doit être persistante.

paired

Si la connexion doit être pairée.


Supprime une base de données [obsolète]

  • « MongoClient::__construct
  • MongoClient::__get »
  • PHP Manual
  • MongoClient
  • Supprime une base de données [obsolète]

MongoClient::dropDB

(PECL mongo >=1.3.0)

MongoClient::dropDB — Supprime une base de données [obsolète]

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension, mais il existe une alternative dans la bibliothèque PHP:

  • » MongoDB\Database\drop

Description

public array MongoClient::dropDB ( mixed $db )
Avertissement

Deprecated

Utilisez MongoDB::drop() à la place.

Liste de paramètres

db

Le nom de la base de données à supprimer. Ce paramètre peut être un objet MongoDB ou le nom de la base de données.

Valeurs de retour

Retourne la réponse de la base de données.


Récupère une base de données

  • « MongoClient::dropDB
  • MongoClient::getConnections »
  • PHP Manual
  • MongoClient
  • Récupère une base de données

MongoClient::__get

(PECL mongo >=1.3.0)

MongoClient::__get — Récupère une base de données

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension, mais il existe une alternative dans la bibliothèque PHP:

  • » MongoDB\Client\selectDatabase

Description

public MongoDB MongoClient::__get ( string $dbname )

Cette méthode est la méthode la plus simple pour récupérer une base de données. Si le nom de la base de données contient des caractères exotiques, vous devriez plutôt utiliser la méthode MongoClient::selectDB(). Cependant, dans la plupart des cas, cette méthode suffit.

<?php

$mongo = new MongoClient();

// les 2 lignes suivantes sont identiques
$db = $mongo->selectDB("foo");
$db = $mongo->foo;

?>

Liste de paramètres

dbname

Le nom de la base de données.

Valeurs de retour

Retourne un nouvel objet de base de données.

Erreurs / Exceptions

Lance une exception générique si le nom de la base de données est invalide.


Retourne des informations sur toutes les connexions ouvertes

  • « MongoClient::__get
  • MongoClient::getHosts »
  • PHP Manual
  • MongoClient
  • Retourne des informations sur toutes les connexions ouvertes

MongoClient::getConnections

(PECL mongo >=1.3.0)

MongoClient::getConnections — Retourne des informations sur toutes les connexions ouvertes

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public static array MongoClient::getConnections ( void )

Retourne un tableau de toutes les connexions ouvertes, et des informations à propos de chaque serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de connexions ouvertes.

Exemples

Exemple #1 Exemple avec MongoClient::getConnections()

<?php
$m = new MongoClient;
var_dump($m->getConnections());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  array(3) {
    ["hash"]=>
    string(26) "localhost:27017;-;X;56052"
    ["server"]=>
    array(3) {
      ["host"]=>
      string(10) "localhost"
      ["port"]=>
      int(27017)
      ["pid"]=>
      int(56052)
    }
    ["connection"]=>
    array(8) {
      ["last_ping"]=>
      int(1354076401)
      ["last_ismaster"]=>
      int(0)
      ["ping_ms"]=>
      int(0)
      ["connection_type"]=>
      int(1)
      ["connection_type_desc"]=>
      string(10) "STANDALONE"
      ["max_bson_size"]=>
      int(16777216)
      ["tag_count"]=>
      int(0)
      ["tags"]=>
      array(0) {
      }
    }
  }
}


Met à jour les statuts de tous les hôtes associés

  • « MongoClient::getConnections
  • MongoClient::getReadPreference »
  • PHP Manual
  • MongoClient
  • Met à jour les statuts de tous les hôtes associés

MongoClient::getHosts

(PECL mongo >=1.3.0)

MongoClient::getHosts — Met à jour les statuts de tous les hôtes associés

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\Driver\Manager::getServers()

Description

public array MongoClient::getHosts ( void )

Cette méthode est utile uniquement avec une connexion à un jeu de réplication. Elle retourne le statut de tous les hôtes du jeu. Sans jeu de réplication, elle retournera seulement un tableau avec un élément contenant le host auquel vous êtes connecté.

Reportez-vous à la section sur les requêtes de ce manuel pour plus d'informations sur la distribution de lecture aux secondaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau d'informations sur les hôtes du jeu, incluant chaque nom d'hôtes, la santé (1 signifie que l'hôte est en bonne santé), l'état (1 primaire, 2 secondaire, 3 autre), le temps écoulé pour pinger le serveur et quand le dernier ping a eu lieu. Par exemple, pour un jeu de réplication contenant 3 membres s'exécutant en local, ces informations ressembleront à ceci :

array(3) {
  ["A:27017"]=>
  array(4) {
    ["host"]=>
    "A"
    ["port"]=>
    27017
    ["health"]=>
    int(1)
    ["state"]=>
    int(2)
    ["ping"]=>
    int(369)
    ["lastPing"]=>
    int(1309470644)
  }
  ["B:27017"]=>
  array(4) {
    ["host"]=>
    "B"
    ["port"]=>
    27017
    ["health"]=>
    int(1)
    ["state"]=>
    int(1)
    ["ping"]=>
    int(139)
    ["lastPing"]=>
    int(1309470644)
  }
  ["C:27017"]=>
  array(4) {
    ["host"]=>
    "C"
    ["port"]=>
    27017
    ["health"]=>
    int(1)
    ["state"]=>
    int(2)
    ["ping"]=>
    int(1012)
    ["lastPing"]=>
    int(1309470644)
  }
}

Historique

Version | Description
1.2.10 | Le support de l'absence de jeu de réplication a été ajouté. Les éléments de tableau retournés incluent à présent également le hostname et le port.

Voir aussi

  • MongoClient::getConnections() - Retourne des informations sur toutes les connexions ouvertes


Récupère les préférences de lecture pour cette connexion

  • « MongoClient::getHosts
  • MongoClient::getWriteConcern »
  • PHP Manual
  • MongoClient
  • Récupère les préférences de lecture pour cette connexion

MongoClient::getReadPreference

(PECL mongo >=1.3.0)

MongoClient::getReadPreference — Récupère les préférences de lecture pour cette connexion

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public array MongoClient::getReadPreference ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne un tableau décrivant les préférences de lecture. Ce tableau contient les valeurs type contenant une chaîne représentant le mode de préférence de lecture (suivant les MongoClient), et tagsets contenant une liste de tous les critères du jeu de tags. Si aucun jeu de tags n'est spécifié, tagsets ne sera pas présent dans ce tableau.

Historique

Version | Description
1.3.3 | La valeur retournée a changé pour être consistante avec la méthode MongoClient::setReadPreference(). La valeur type a été modifiée, passant d'un nombre à une chaîne de caractères, la valeur type_string a été supprimée, et la valeur tagsets exprime désormais les tags sous la forme d'une paire clé/valeur, au lieu d'une chaîne dont les valeurs étaient séparées par une virgule.

Exemples

Exemple #1 Exemple avec MongoClient::getReadPreference()

<?php

$m = new MongoClient();
$m->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($m->getReadPreference());
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Voir aussi

  • La documentation sur les préférences de lecture.
  • MongoClient::setReadPreference() - Définit les préférences de lecture pour cette connexion


Récupère la préoccupation d'écriture pour cette connexion

  • « MongoClient::getReadPreference
  • MongoClient::killCursor »
  • PHP Manual
  • MongoClient
  • Récupère la préoccupation d'écriture pour cette connexion

MongoClient::getWriteConcern

(PECL mongo >=1.5.0)

MongoClient::getWriteConcern — Récupère la préoccupation d'écriture pour cette connexion

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public array MongoClient::getWriteConcern ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne un tableau décrivant la préoccupation d'écriture. Le tableau contient la valeur w pour le niveau d'approbation (valeur entière), ou un mode sous forme de chaîne de caractères, et la valeur wtimeout indiquant le nombre maximal de millisecondes à attente le serveur pour satisfaire la préoccupation d'écriture.

Exemples

Exemple #1 Exemple avec MongoClient::getWriteConcern()

<?php

$mc = new MongoClient('mongodb://localhost:27017', array('wTimeoutMS' => 500));
var_dump($mc->getWriteConcern());

$mc->setWriteConcern(1, 1000);
var_dump($mc->getWriteConcern());
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(500)
}
array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(1000)
}

Voir aussi

  • La documentation sur la préoccupation d'écriture.
  • MongoClient::setWriteConcern() - Défini la préoccupation d'écriture pour cette connexion


Supprime un curseur spécifique du serveur

  • « MongoClient::getWriteConcern
  • MongoClient::listDBs »
  • PHP Manual
  • MongoClient
  • Supprime un curseur spécifique du serveur

MongoClient::killCursor

(PECL mongo >=1.5.0)

MongoClient::killCursor — Supprime un curseur spécifique du serveur

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public bool MongoClient::killCursor ( string $server_hash , int|MongoInt64 $id )

Dans certaines situations, il peut être nécessaire de supprimer un curseur du serveur. Habituellement, les curseurs ont une durée de vie de 10 minutes d'inactivité, mais il est possible de créer des curseurs immortels avec la méthode MongoCursor::immortal(). Afin de pouvoir supprimer un curseur immortel, vous pouvez appeler cette méthode avec l'information fournie par la méthode MongoCursor::info().

Liste de paramètres

server_hash

Le hash serveur du curseur. Peut être obtenu via la méthode MongoCursor::info().

id

L'ID du curseur à supprimer. Vous pouvez soit fournir un entier contenant l'ID du curseur sur 64 bit, ou un objet de la classe MongoInt64. Ce dernier est nécessaire sur les plateformes 32 bit (et sous Windows).

Valeurs de retour

Retourne TRUE si la méthode tente de supprimer un curseur, et FALSE s'il n'y a rien d'incorrect avec l'argument (comme un server_hash incorrect). Le statut retourné ne reflète pas la réussite de l'opération sachant que le serveur n'indique pas si le curseur a bien été supprimé ou non.

Erreurs / Exceptions

Cette méthode affiche une alerte si le server_hash fourni ne correspond pas à une connexion existante. Aucune tentative de suppression de curseur n'est effectuée dans ce cas.

Exemples

Exemple #1 Exemple avec MongoClient::killCursor()

Cet exemple montre comment se connecter, effectuer une requête, obtenir l'information quant au curseur, et supprimer ce curseur.

<?php
$m = new MongoClient();
$c = $m->testdb->collection;
$cursor = $c->find();
$result = $cursor->next();

// Maintenant, le curseur est valide, nous pouvons donc récupérer le hash et l'ID :
$info = $cursor->info();

// Supprime le curseur
MongoClient::killCursor( $info['server'], $info['id'] );
?>


Liste toutes les bases de données disponibles

  • « MongoClient::killCursor
  • MongoClient::selectCollection »
  • PHP Manual
  • MongoClient
  • Liste toutes les bases de données disponibles

MongoClient::listDBs

(PECL mongo >=1.3.0)

MongoClient::listDBs — Liste toutes les bases de données disponibles

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension, mais il existe une alternative dans la bibliothèque PHP:

  • » MongoDB\Client\listDatabases

Description

public array MongoClient::listDBs ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau associatif contenant 3 champs. Le premier vaut databases, et contient lui-même un tableau dont chaque élément est un tableau associatif correspondant à une base de données, fournissant des informations comme le nom, la taille, et le fait qu'elle soit vide ou non. Les 2 autres champs sont totalSize (en octets) et ok, qui vaut 1 si la méthode est exécutée avec succès.

Exemples

Exemple #1 Exemple avec MongoClient::listDBs()

Cet exemple montre comment utiliser listDBs ainsi que la structure de données retournées.

<?php

$mongo = new MongoClient();
$dbs = $mongo->listDBs();
print_r($dbs);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [databases] => Array
        (
            [0] => Array
                (
                    [name] => doctrine
                    [sizeOnDisk] => 218103808
                    [empty] =>
                )
        )

    [totalSize] => 218103808
    [ok] => 1
)


Lit une collection de base de données

  • « MongoClient::listDBs
  • MongoClient::selectDB »
  • PHP Manual
  • MongoClient
  • Lit une collection de base de données

MongoClient::selectCollection

(PECL mongo >=1.3.0)

MongoClient::selectCollection — Lit une collection de base de données

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension, mais il existe une alternative dans la bibliothèque PHP:

  • » MongoDB\Client\selectCollection

Description

public MongoCollection MongoClient::selectCollection ( string $db , string $collection )

Liste de paramètres

db

Le nom de la base de données.

collection

Le nom de la collection.

Valeurs de retour

Retourne un nouvel objet de collection collection.

Erreurs / Exceptions

Emet une Exception si la base de données ou la collection est invalide.

Exemples

Exemple #1 Exemple avec MongoClient::selectCollection()

<?php
$m = new MongoClient();

$c1 = $m->selectCollection("foo", "bar.baz");
// qui est équivalent à
$c2 = $m->selectDB("foo")->selectCollection("bar.baz");

// $c1 et $c2 représentent maintenant la même collection
?>


Récupère une base de données

  • « MongoClient::selectCollection
  • MongoClient::setReadPreference »
  • PHP Manual
  • MongoClient
  • Récupère une base de données

MongoClient::selectDB

(PECL mongo >=1.3.0)

MongoClient::selectDB — Récupère une base de données

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension, mais il existe une alternative dans la bibliothèque PHP:

  • » MongoDB\Client\selectDatabase

Description

public MongoDB MongoClient::selectDB ( string $name )

Liste de paramètres

name

Le nom de la base de données.

Valeurs de retour

Retourne un nouvel objet de base de données.

Erreurs / Exceptions

Emet une Exception si la base de données est invalide.


Définit les préférences de lecture pour cette connexion

  • « MongoClient::selectDB
  • MongoClient::setWriteConcern »
  • PHP Manual
  • MongoClient
  • Définit les préférences de lecture pour cette connexion

MongoClient::setReadPreference

(PECL mongo >=1.3.0)

MongoClient::setReadPreference — Définit les préférences de lecture pour cette connexion

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public bool MongoClient::setReadPreference ( string $read_preference [, array $tags ] )

Liste de paramètres

read_preference

Le mode de préférence de lecture : MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, ou MongoClient::RP_NEAREST.

tags

Un tableau de zéro ou plusieurs jeux de tags, où chaque jeu de tags est lui même un tableau de critères utilisés pour faire correspondre les tags sur les membres du jeu de réplication.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE sinon.

Erreurs / Exceptions

Emets une alerte de niveau E_WARNING si soit le paramètre est invalide, soit si un ou plusieurs jeux de tags sont fournis avec le mode de préférence de lecture MongoClient::RP_PRIMARY.

Exemples

Exemple #1 Exemple avec MongoClient::setReadPreference()

<?php

$m = new MongoClient();

// Préfère le serveur le plus proche du centre de données "east", également utilisé pour les rapports
// mais utilise un serveur du centre de données "west" en cas d'échec
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Voir aussi

  • La documentation sur les préférences de lecture.
  • MongoClient::getReadPreference() - Récupère les préférences de lecture pour cette connexion


Défini la préoccupation d'écriture pour cette connexion

  • « MongoClient::setReadPreference
  • MongoClient::__toString »
  • PHP Manual
  • MongoClient
  • Défini la préoccupation d'écriture pour cette connexion

MongoClient::setWriteConcern

(PECL mongo >=1.5.0)

MongoClient::setWriteConcern — Défini la préoccupation d'écriture pour cette connexion

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public bool MongoClient::setWriteConcern ( mixed $w [, int $wtimeout ] )

Liste de paramètres

w

La préoccupation d'écriture. Peut être un entier indiquant le nombre de serveurs requis pour approuver une écriture, ou un mode sous forme de chaîne de caractères (e.g. "majority").

wtimeout

Le nombre maximal de millisecondes à attendre le serveur pour satisfaire une préoccupation d'écriture.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE sinon.

Erreurs / Exceptions

Emets une exception de niveau E_WARNING si le paramètre w n'est pas un entier ou une chaîne de caractères.

Exemples

Exemple #1 Exemple avec MongoClient::setWriteConcern()

<?php

$mc = new MongoClient('mongodb://rs1.example.com,rs2.example.com');

// Nécessite que la majorité des serveurs du jeu de réplication approuve les écritures
// dans les trois secondes.
$mc->setWriteConcern('majority', 3000);
?>

Voir aussi

  • La documentation sur la préoccupation d'écriture.
  • MongoClient::getWriteConcern() - Récupère la préoccupation d'écriture pour cette connexion


Produit une représentation sous forme de chaîne de la connexion

  • « MongoClient::setWriteConcern
  • MongoDB »
  • PHP Manual
  • MongoClient
  • Produit une représentation sous forme de chaîne de la connexion

MongoClient::__toString

(PECL mongo >=1.3.0)

MongoClient::__toString — Produit une représentation sous forme de chaîne de la connexion

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public string MongoClient::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom d'hôte et le port de cette connexion.


La classe MongoDB

(PECL mongo >=0.9.0)

Introduction

Les objets de cette classe servent à interagir avec la base de données. Pour obtenir une base de données :

Exemple #1 Sélection d'une base de données

<?php

$m = new MongoClient(); // connexion
$db = $m->selectDB("exemple");

?>
Les noms de base de données peuvent contenir n'importe quel caractère ASCII. Mais ils ne peuvent pas contenir les caractères " ", "." ou être la chaîne vide. Le mot "system" est aussi réservé.

Quelques noms de base de données valides mais inattendus : "null", "[x,y]", "3", à"\"", "/".

Contrairement aux noms de collection, les noms de bases de données peuvent contenir "$".

Synopsis de la classe

MongoDB {
/* Constantes */
const int PROFILING_OFF = 0 ;
const int PROFILING_SLOW = 1 ;
const int PROFILING_ON = 2 ;
/* Champs */
public integer $w = 1 ;
public integer $wtimeout = 10000 ;
/* Méthodes */
public array authenticate ( string $username , string $password )
public array command ( array $command [, array $options = array() [, string &$hash ]] )
public __construct ( MongoClient $conn , string $name )
public MongoCollection createCollection ( string $name [, array $options ] )
public array createDBRef ( string $collection , mixed $document_or_id )
public array drop ( void )
public array dropCollection ( mixed $coll )
public array execute ( mixed $code [, array $args = array() ] )
public bool forceError ( void )
public MongoCollection __get ( string $name )
public array getCollectionInfo ([ array $options = array() ] )
public array getCollectionNames ([ array $options = array() ] )
public array getDBRef ( array $ref )
public MongoGridFS getGridFS ([ string $prefix = "fs" ] )
public int getProfilingLevel ( void )
public array getReadPreference ( void )
public bool getSlaveOkay ( void )
public array getWriteConcern ( void )
public array lastError ( void )
public array listCollections ([ array $options = array() ] )
public array prevError ( void )
public array repair ([ bool $preserve_cloned_files = FALSE [, bool $backup_original_files = FALSE ]] )
public array resetError ( void )
public MongoCollection selectCollection ( string $name )
public int setProfilingLevel ( int $level )
public bool setReadPreference ( string $read_preference [, array $tags ] )
public bool setSlaveOkay ([ bool $ok = true ] )
public bool setWriteConcern ( mixed $w [, int $wtimeout ] )
public string __toString ( void )
}

Constantes pré-définies

Niveaux d'historisation de MongoDB

MongoDB::PROFILING_OFF
0
Le profilage est inactif.
MongoDB::PROFILING_SLOW
1
Le profilage est actif pour les opérations lentes (>100 ms).
MongoDB::PROFILING_ON
2
Le profilage est actif sur toutes les opérations.

Champs

w
1

Le nombre de serveurs vers lesquels répliquer avant de retourner avec succès. Hérité par les instances dérivées de la MongoCollection La fonctionnalité w n'est disponible que pour les versions 1.5.1+ du serveur MongoDB et 1.0.8+ du pilote.

w est utilisé chaque fois que vous avez besoin d'ajuster le niveau de reconnaissance (MongoCollection::insert(), MongoCollection::update(), MongoCollection::remove(), MongoCollection::save(), et MongoCollection::ensureIndex() supportent tous cette option). Avec la valeur par défaut (1), une opération reconnue retournera une fois que le serveur a effectué l'opération. Si le serveur tombe avant que l'opération ne soit répliquée vers un secondaire, il est possible de perdre l'opération. Ainsi vous pouvez préciser une valeur supérieure à 1 pour le paramètre w et garantir qu'au moins un secondaire recoive l'opération avant qu'elle ne soit considérée comme étant réalisée avec succès.

Par exemple si w vaut 2, le serveur principal et un des secondaires doivent avoir enregistré l'opération ou le pilote enverra une MongoCursorException. Il est tentant de mettre le nombre total d'escalves + le maitre comme numéro pour w, mais alors si un des secondaires tombe l'opération échouera et une exception sera levée, ainsi w=2 est le cas le plus sécurisant (maitre et un secondaire).

wtimeout
10000

Le nombre de millisecondes à attendre pour que les réplications de MongoDB::$w démarrent. Hérité par les instances dérivées dans la MongoCollection en cours. La fonctionnalité w n'est disponible que depuis la version 1.5.1+ du serveur MongoDB et 1.0.8+ du pilote.

Sauf si wtimeout est précisé, le serveur attendra indéfiniment que la réplication vers les serveurs w se termine. Le pilote attendra par défaut 10 secondes, vous pouvez changer cette valeur.

Voir aussi

Documentation de MongoDB » concernant les bases de données.

Sommaire

  • MongoDB::authenticate — Identification à une base de données
  • MongoDB::command — Exécute une commande de base de données
  • MongoDB::__construct — Crée une nouvelle base de données Mongo
  • MongoDB::createCollection — Crée une collection
  • MongoDB::createDBRef — Crée une référence de base de données
  • MongoDB::drop — Supprime cette base de données
  • MongoDB::dropCollection — Supprime une collection [obsolète]
  • MongoDB::execute — Exécute le code JavaScript sur la base de données [Obsolète]
  • MongoDB::forceError — Crée une erreur de base de données
  • MongoDB::__get — Récupère une collection
  • MongoDB::getCollectionInfo — Retourne des informations sur les collections de cette base de données
  • MongoDB::getCollectionNames — Récupère un tableau de noms pour toutes les collections de cette base de données
  • MongoDB::getDBRef — Lit le contenu d'une référence de base de données
  • MongoDB::getGridFS — Manipulations des fichiers dans la base
  • MongoDB::getProfilingLevel — Lit le niveau de profilage de la base de données
  • MongoDB::getReadPreference — Récupère les préférences de lecture pour cette base de données
  • MongoDB::getSlaveOkay — Récupère la configuration de slaveOkay pour cette base de données
  • MongoDB::getWriteConcern — Récupère la préoccupation d'écriture pour cette base de données
  • MongoDB::lastError — Vérifie s'il y a une erreur sur la dernière opération relative à la base de données
  • MongoDB::listCollections — Récupère un tableau des objets MongoCollections pour toutes les collections de cette base de données
  • MongoDB::prevError — Vérifie la dernière erreur émise lors d'une opération relative à la base de données
  • MongoDB::repair — Répare et compacte une base de données
  • MongoDB::resetError — Efface toutes les erreurs d'une base de données
  • MongoDB::selectCollection — Lit une collection
  • MongoDB::setProfilingLevel — Configure le niveau de profilage de la base de données
  • MongoDB::setReadPreference — Définit les préférences de lecture pour cette base de données
  • MongoDB::setSlaveOkay — Modifie la configuration de slaveOkay pour cette base de données
  • MongoDB::setWriteConcern — Défini la préoccupation d'écriture pour cette base de données
  • MongoDB::__toString — Le nom de cette base de données Mongo


Identification à une base de données

  • « MongoDB
  • MongoDB::command »
  • PHP Manual
  • MongoDB
  • Identification à une base de données

MongoDB::authenticate

(PECL mongo >=1.0.1)

MongoDB::authenticate — Identification à une base de données

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

A la place, vous devez fournir les éléments d'authentification via la chaîne de connexion.

Description

public array MongoDB::authenticate ( string $username , string $password )

Cette méthode permet de s'identifier sur une connexion. Si l'identification est activée sur le serveur de base de données (ce n'est pas le cas par défaut), vous devez vous y identifier avant de faire une quelconque opération.

En général, vous devriez utiliser l'authentification intégrée à MongoClient::__construct() au lieu de cette méthode. Si vous vous authentifiez sur une connexion et que celle-ci se perd et se reconnecte pendant votre session, vous serez réauthentifié. Si vous vous étiez authentifié manuellement au moyen de cette méthode et que la connexion se perd, vous devrez alors rappeler cette méthode une fois reconnecté.

Cette méthode revient à exécuter :

<?php

$salted = "${username}:mongo:${password}";
$hash = md5($salted);

$nonce = $db->command(array("getnonce" => 1));

$saltedHash = md5($nonce["nonce"]."${username}${hash}");

$result = $db->command(array("authenticate" => 1,
    "user" => $username,
    "nonce" => $nonce["nonce"],
    "key" => $saltedHash
));

?>

Une fois la connexion authentifiée, elle ne peut être non-authentifiée qu'en utilisant la commande de la base de données "logout" :

<?php

$db->command(array("logout" => 1));

?>

Liste de paramètres

username

Le nom d'utilisateur.

password

Le mot de passe (en texte plein).

Valeurs de retour

Retourne la réponse de la base de données. Si l'identification a réussi, la méthode retournera

<?php
array("ok" => 1);
?>
Si une erreur survient, elle retournera
<?php
array("ok" => 0, "errmsg" => "auth fails");
?>
("auth fails" peut être un message différent, suivant la version de la base de données et le type d'erreur rencontré).

Voir aussi

Documentation principale MongoDB sur l' » authentification.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé. Veuillez passer les détails d'authentification au constructeur.


Exécute une commande de base de données

  • « MongoDB::authenticate
  • MongoDB::__construct »
  • PHP Manual
  • MongoDB
  • Exécute une commande de base de données

MongoDB::command

(PECL mongo >=0.9.2)

MongoDB::command — Exécute une commande de base de données

Description

public array MongoDB::command ( array $command [, array $options = array() [, string &$hash ]] )

Tout ce qui n'est pas une opération CRUD peut être effectué avec une commande de base de données. Besoin de connaitre la version de la base de données ? Il y a une commande pour cela. Besoin de faire une agrégation ? Il y a une commande pour cela. Besoin d'activer l'historisation ? Vous voyez l'idée ?

Cette méthode est équivalente à :

<?php

public function command($data) {
    return $this->selectCollection('$cmd')->findOne($data);
}

?>

Liste de paramètres

command

La requête à envoyer.

options

Un tableau d'options pour la création de l'index. Actuellement, les options disponibles sont :

  • "socketTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la communication avec un socket. Si le serveur ne répond pas pendant cette période, une exception MongoCursorTimeoutException sera émise et il n'y a aucune façon de déterminer si le serveur gère actuellement l'écriture ou non. Une valeur de -1 peut être spécifiée pour bloquer indéfiniement. La valeur par défaut pour MongoClient est 30000 (30 secondes).

Les options suivantes sont obsolètes et ne doivent plus être utilisées :

  • "timeout"

    Alias obsolète pour "socketTimeoutMS".

hash

Défini le hash de connexion du serveur qui a exécuté la commande. Lorsque le résultat de la commande permet de créer un MongoCommandCursor, le hash est prévu pour être passé à la méthode MongoCommandCursor::createFromDocument().

Le hash peut aussi correspondre à une connexion retournée depuis MongoClient::getConnections().

Historique

Version | Description
1.5.0 | Renommage de l'option "timeout" en "socketTimeoutMS". Emets une alerte de type E_DEPRECATED lorsque "timeout" est utilisée. Ajout du paramètre hash par référence.
1.2.0 | Ajout du paramètre options avec une seule option : "timeout".

Valeurs de retour

Retourne la réponse de la base de données. Toutes les réponses de la base de données sont composées d'au maximum un document, ce qui signifie que le résultat d'une commande de base de données ne peut jamais excéder les 16 Mo. La structure du document résultat dépend de la commande utilisée, mais la plupart des résultats auront le champ ok pour indiquer le succès ou l'échec de l'opération, et le champ results contenant un tableau de chaque document résultant.

Exemples

Exemple #1 Exemple avec MongoDB::command() et "distinct"

Trouver tous les valeurs distinctes pour une clé.

<?php

$people = $db->people;

$people->insert(array("name" => "Joe", "age" => 4));
$people->insert(array("name" => "Sally", "age" => 22));
$people->insert(array("name" => "Dave", "age" => 22));
$people->insert(array("name" => "Molly", "age" => 87));

$ages = $db->command(array("distinct" => "people", "key" => "age"));

foreach ($ages['values'] as $age) {
    echo "$age\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

4
22
87

Exemple #2 Exemple avec MongoDB::command() et "distinct"

Récupère toutes les valeurs distinctes pour une clé, pour laquelle la valeur est supérieure ou égale à 18.

<?php

$people = $db->people;

$people->insert(array("name" => "Joe", "age" => 4));
$people->insert(array("name" => "Sally", "age" => 22));
$people->insert(array("name" => "Dave", "age" => 22));
$people->insert(array("name" => "Molly", "age" => 87));

$ages = $db->command(
    array(
        "distinct" => "people",
        "key" => "age",
        "query" => array("age" => array('$gte' => 18))
    )
);

foreach ($ages['values'] as $age) {
    echo "$age\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

22
87

Exemple #3 Exemple avec MongoDB::command() et MapReduce

Récupérer tous les utilisateurs avec au moins un événement "sale", et savoir le nombre de fois chacun de ces utilisateurs ont eu une vente.

<?php

// Document d'événement simple
$events->insert(array("user_id" => $id,
    "type" => $type,
    "time" => new MongoDate(),
    "desc" => $description));

// Construit les fonctions map et reduce
$map = new MongoCode("function() { emit(this.user_id,1); }");
$reduce = new MongoCode("function(k, vals) { ".
    "var sum = 0;".
    "for (var i in vals) {".
        "sum += vals[i];".
    "}".
    "return sum; }");

$sales = $db->command(array(
    "mapreduce" => "events",
    "map" => $map,
    "reduce" => $reduce,
    "query" => array("type" => "sale"),
    "out" => array("merge" => "eventCounts")));

$users = $db->selectCollection($sales['result'])->find();

foreach ($users as $user) {
    echo "{$user['_id']} had {$user['value']} sale(s).\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

User 47cc67093475061e3d9536d2 had 3 sale(s).
User 49902cde5162504500b45c2c had 14 sale(s).
User 4af467e4fd543cce7b0ea8e2 had 1 sale(s).

Note: Utilisation de MongoCode

Cet exemple utilise la méthode MongoCode, qui prend également comme argument le scope. Cependant, actuellement, Mongo ne supporte pas l'utilisation d'un scope dans MapReduce. Si vous voulez utiliser des variables définies côté client dans les fonctions MapReduce, vous pouvez les ajouter au scope global en utilisant le champ optionnel scope avec la commande de la base de données. Voir la » documentation de MapReduce pour plus d'informations.

Note: L'argument out

Avant la version 1.8.0, l'argument out était optionnel. Si vous ne l'utilisiez pas, les résultats de MapReduce étaient écrits dans une collection temporaire, qui était supprimée lors de la fermeture de la collection. En version 1.8.0+, l'argument out est obligatoire. Reportez-vous à la » documentation sur MapReduce pour plus d'informations.

Exemple #4 Exemple avec la commande MongoDB::command() "geoNear"

Cet exemple montre l'utilisation de la commande geoNear.

<?php
$m = new MongoClient();
$d = $m->demo;
$c = $d->poiConcat;

$r = $d->command(array(
    'geoNear' => "poiConcat",      // Recherche dans la collection poiConcat
    'near' => array(-0.08, 51.48), // Recherche à proximité de 51.48°N, 0.08°E
    'spherical' => true,           // Active la recherche sphérique
    'num' => 5,                    // Retourne au maximum 5 documents
));
print_r($r);
?>

Voir aussi

  • MongoCollection::aggregate() - Effectue une agrégation en utilisant le framework dédié
  • MongoCollection::findAndModify() - Met à jour un document et le retourne
  • MongoCollection::group() - Effecture une opération de regroupement

La documentation principale MongoDB sur les » commandes de base de données. Aussi, quelques commandes individuelles : » findAndModify, » getLastError, et » repairDatabase.


Crée une nouvelle base de données Mongo

  • « MongoDB::command
  • MongoDB::createCollection »
  • PHP Manual
  • MongoDB
  • Crée une nouvelle base de données Mongo

MongoDB::__construct

(PECL mongo >=0.9.0)

MongoDB::__construct — Crée une nouvelle base de données Mongo

Description

public MongoDB::__construct ( MongoClient $conn , string $name )

Cette méthode ne devrait pas être appelée directement. Pour créer une instance de MongoDB, utilisez MongoClient::__get() ou MongoClient::selectDB().

Si vous voulez ignorer cette recommandation, vous pouvez alors utiliser:

<?php

$m = new MongoClient();
$db = new MongoDB($m, 'mydbname');

?>

Mais évitez. Ceci est plus logique:

<?php

$m = new MongoClient();
$db = $m->mydbname;

// ou, si le nom contient des caractères hasardeux:

$db = $m->selectDB('my,db:name');

?>

Liste de paramètres

MongoClient conn

La connexion à la base de données.

name

Le nom de la base de données.

Valeurs de retour

Returns the database.

Erreurs / Exceptions

Emet l'exception par défaut si le nom de la base de données est invalide.


Crée une collection

  • « MongoDB::__construct
  • MongoDB::createDBRef »
  • PHP Manual
  • MongoDB
  • Crée une collection

MongoDB::createCollection

(PECL mongo >=0.9.0)

MongoDB::createCollection — Crée une collection

Description

public MongoCollection MongoDB::createCollection ( string $name [, array $options ] )

Cette méthode est utilisée pour créer des collections limitées ainsi que des collections nécessitant des options spéciales. Cette méthode revient à exécuter :

<?php

$collection = $db->command(array(
    "create" => $name,
    "capped" => $options["capped"],
    "size" => $options["size"],
    "max" => $options["max"],
    "autoIndexId" => $options["autoIndexId"],
));

?>
Voir la méthode MongoDB::command() pour plus d'informations sur les commandes de base de données.

Liste de paramètres

name

Le nom de la collection.

options

Un tableau contenant les options pour les collections. Chaque option est son propre élément dans le tableau des options, dont le nom de l'option listée ci-dessous est la clé de l'élément. Les options supportées dépendent de la version du serveur MongoDB et du moteur de stockage, et le driver passe toutes les options que vous fournissez directement au serveur. Voici une liste de quelques options, mais vous pouvez trouver une liste complète dans la documentation coeur de MongoDB pour » createCollection :

capped

Si la collection doit avoir une taille fixe.

size

Si la collection a une taille fixe, la taille en octets.

max

Si la collection a une taille fixe, le nombre maximum d'éléments à stoquer dans la collection.

autoIndexId

Si l'option capped vaut TRUE, vous pouvez spécifier FALSE ici pour désactiver la création d'index automatique sur le champ _id. Avant MongoDB 2.2, la valeur par défaut pour autoIndexId était FALSE.

Valeurs de retour

Retourne un objet MongoCollection, qui représente la nouvelle collection.

Exemples

Exemple #1 Exemple avec MongoDB::createCollection()

Une collection plafonnée est un type spécial de collection qui a soit des éléments fixes, soit un nombre d'éléments fixes. Une fois que la collection est pleine, les éléments les plus anciens seront effacés lors de l'ajout de nouveaux éléments. Les collections plafonnées sont vraiment utiles pour les applications qui historisent et que vous souhaitez réserver une certaine quantitié d'espaces à l'historisation sans vous soucier de leurs évolutions.

Cet exemple crée une petite collection qui conserve un maximum de 10 documents.

<?php

$log = $db->createCollection(
    "logger",
    array(
        'capped' => true,
        'size' => 10*1024,
        'max' => 10
    )
);

for ($i = 0; $i < 100; $i++) {
    $log->insert(array("level" => WARN, "msg" => "Message simple d'historisation #$i", "ts" => new MongoDate()));
}

$msgs = $log->find();

foreach ($msgs as $msg) {
    echo $msg['msg']."\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Message simple d'historisation #90
Message simple d'historisation #91
Message simple d'historisation #92
Message simple d'historisation #93
Message simple d'historisation #94
Message simple d'historisation #95
Message simple d'historisation #96
Message simple d'historisation #97
Message simple d'historisation #98
Message simple d'historisation #99

Historique

Version Description
1.4.0

Dans les versions antérieures à 1.4.0, les options étaient toutes des arguments de la méthode. La signature de la fonction dans ces anciennes versions était :

public MongoCollection MongoDB::createCollection ( string $name [, bool $capped = FALSE [, int $size = 0 [, int $max = 0 ]]] )

La signification de ces options est la même que celle décrite ci-dessus, dans l'argument options.


Crée une référence de base de données

  • « MongoDB::createCollection
  • MongoDB::drop »
  • PHP Manual
  • MongoDB
  • Crée une référence de base de données

MongoDB::createDBRef

(PECL mongo >=0.9.0)

MongoDB::createDBRef — Crée une référence de base de données

Description

public array MongoDB::createDBRef ( string $collection , mixed $document_or_id )

Cette méthode est une interface flexible pour créer des références à des bases de données (voir la classe MongoDBRef).

Liste de paramètres

collection

La collection vers laquelle la référence de base de données va pointer.

document_or_id

Si un tableau ou un objet est fourni, son champ _id sera utilisé comme identifiant de référence. Si un MongoId ou un scalaire est fourni, il sera utilisé comme identifiant de référence.

Valeurs de retour

Retourne la tableau de référence de la base de données.

Si un tableau sans champ _id a été fourni comme paramètre document_or_id, NULL sera retourné.

Exemples

Exemple #1 Exemple pour MongoDB::createDBRef()

Cet exemple montre comment créer un tableau de référence de base de données à partir d'un document.

<?php

$articles = $db->articles;

$article = array(
 'title' => 'Test article',
 'description' => 'Test article description'
);

$articles->insert($article);
$ref = $db->createDBRef('articles', $article);

print_r($article);
print_r($ref);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

     Array
     (
         [title] => Test article
         [description] => Test article description
         [_id] => MongoId Object
             (
             )

     )
     Array
     (
         [$ref] => articles
         [$id] => MongoId Object
             (
             )

     )

Maintenant $ref peut être stocké sur un autre document et récupéré plus tard avec MongoDB::getDBRef() ou MongoCollection::getDBRef().

Exemple #2 Exemple pour MongoDB::createDBRef()

Exemple montrant comment créer une référence de base de données depuis un simple id.

<?php

$id = new MongoId('47cc67093475061e3d9536d2');
$ref = $db->createDBRef('articles', $id);
?>


Supprime cette base de données

  • « MongoDB::createDBRef
  • MongoDB::dropCollection »
  • PHP Manual
  • MongoDB
  • Supprime cette base de données

MongoDB::drop

(PECL mongo >=0.9.0)

MongoDB::drop — Supprime cette base de données

Description

public array MongoDB::drop ( void )

Supprime la base de données actuellement utilisée.

Identique à :

<?php

public function drop() {
    $this->command(array("dropDatabase" => 1));
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse de la base de données.

Exemples

Exemple #1 Exemple avec MongoDB::drop()

Cet exemple montre comment supprimer une base de données Mongo et la réponse que nous devons attendre.

<?php

$db = $mongo->foo;
$response = $db->drop();
print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [dropped] => foo.$cmd
    [ok] => 1
)


Supprime une collection [obsolète]

  • « MongoDB::drop
  • MongoDB::execute »
  • PHP Manual
  • MongoDB
  • Supprime une collection [obsolète]

MongoDB::dropCollection

(PECL mongo >=0.9.0)

MongoDB::dropCollection — Supprime une collection [obsolète]

Description

public array MongoDB::dropCollection ( mixed $coll )
Avertissement

Obsolète

Utilisez MongoCollection::drop() à la place.

Cette fonction provoque des fuites mémoires dans les versions 1.0.7 et inférieures!

Liste de paramètres

coll

un objet MongoCollection ou le nom de la collection à supprimer.

Valeurs de retour

Retourne la réponse de la base de données.


Exécute le code JavaScript sur la base de données [Obsolète]

  • « MongoDB::dropCollection
  • MongoDB::forceError »
  • PHP Manual
  • MongoDB
  • Exécute le code JavaScript sur la base de données [Obsolète]

MongoDB::execute

(PECL mongo >=0.9.3)

MongoDB::execute — Exécute le code JavaScript sur la base de données [Obsolète]

Description

public array MongoDB::execute ( mixed $code [, array $args = array() ] )
Avertissement

La commande » eval, que cette méthode appelle, est obsolète en MongoDB 3.0 et supérieur.

Le serveur de base de données Mongo exécute un moteur Javascript. Cette méthode vous permet d'exécuter du Javascript arbitraire sur la base de données. Ceci peut être utile si vous voulez toucher un petit nombre de collections, ou pour traiter quelques résultats issus de la base de données afin de réduire la quantitié de données à envoyer au client.

L'exécution de Javascript dans la base de données pose un verrou en écriture, signifiant que les autres opérations sont bloquées. Gardez-le bien à l'esprit avant d'exécuter un script conséquant.

Ceci est un wrapper pour la commande » eval de base de données. Cette méthode est équivalente à :

<?php

public function execute($code, $args) {
    return $this->command(array('eval' => $code, 'args' => $args));
}

?>

MongoDB implique une instruction de retour si vous avez une requête unique sur une seule ligne. Ceci peut causer des comportements non-intuitifs. Par exemple, l'exemple suivant retournera "foo" :

<?php

$db->execute('"foo";');

?>

Cependant, ceci retournera NULL:

<?php

$db->execute('"bar"; "foo";'); // plus d'une requête

$db->execute('db.foo.count(
);'); // plus d'une ligne

?>

Afin d'éviter tout comportement non-désiré, il convient de ne pas laisser MongoDB choisir ce qu'il doit retourner, mais explicitement définir une valeur de retour. Dans l'exemple ci-dessus, nous pouvons le modifier comme ceci :

<?php

$db->execute('"bar"; return "foo";');

$db->execute('return db.foo.count(
);');

?>

Maintenant, la première requête retournera "foo", et la seconde retournera un comptage de la collection "foo".

Liste de paramètres

code

un objet MongoCode ou une chaîne a exécuter.

args

Les arguments à passer à la requête code.

Valeurs de retour

Retourne le résultat de l'évaluation.

Exemples

Exemple #1 Exemple avec MongoDB::execute()

<?php

$response = $db->execute("function() { return 'Bonjour le monde !'; }");
echo $response['retval'];

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Bonjour le monde !

Exemple #2 Exemple avec MongoDB::execute()

Le tableau optionnel de paramètres sera passé à la fonction Javascript.

<?php

$response = $db->execute("function(greeting, name) { return greeting+', '+name+'!'; }", array("Au revoir", "Joe"));
echo $response['retval'];

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Au revoir, Joe!

Exemple #3 Exemple de porté

Si un objet MongoCode est utilisé à la place d'une chaîne comme premier paramètre, un scope peut être passé dans lequel le Javascript sera exécuté.

<?php

$func =
    "function(greeting, name) { ".
        "return greeting+', '+name+', dit '+greeter;".
    "}";
$scope = array("greeter" => "Fred");

$code = new MongoCode($func, $scope);

$response = $db->execute($code, array("Au revoir", "Joe"));
echo $response['retval'];

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Au revoir, Joe, dit Fred

Voir aussi

  • La documentation MongoDB sur la » commande eval

Historique

Version | Description
1.7.0 | Cette méthode est devenue obsolète, sachant qu'un résultat d'une commande » eval sous-jacente est devenu obsolète en MongoDB 3.0+.


Crée une erreur de base de données

  • « MongoDB::execute
  • MongoDB::__get »
  • PHP Manual
  • MongoDB
  • Crée une erreur de base de données

MongoDB::forceError

(PECL mongo >=0.9.5)

MongoDB::forceError — Crée une erreur de base de données

Description

public bool MongoDB::forceError ( void )

Cette méthode n'est pas utile lors d'une utilisation normal de MongoDB. Elle force l'émission d'une erreur de base de données. Cela signifie que la méthode MongoDB::lastError() retournera une erreur générique de base de données après son exécution.

Cette commande est identique à :

<?php

public function forceError() {
    return $this->command(array('forceerror' => 1));
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse de la base de données.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.


Récupère une collection

  • « MongoDB::forceError
  • MongoDB::getCollectionInfo »
  • PHP Manual
  • MongoDB
  • Récupère une collection

MongoDB::__get

(PECL mongo >=1.0.2)

MongoDB::__get — Récupère une collection

Description

public MongoCollection MongoDB::__get ( string $name )

C'est la méthode la plus simple de récupérer une collection depuis un objet de base de données. Si un nom de collection contient des caractères étranges, vous devriez utiliser plutôt la méthode MongoDB::selectCollection().

<?php

$mongo = new MongoClient();

// les 2 lignes suivants sont équivalentes
$collection = $mongo->selectDB("foo")->selectCollection("bar");
$collection = $mongo->foo->bar;

?>

Liste de paramètres

name

Le nom de la collection.

Valeurs de retour

Retourne la collection.


Retourne des informations sur les collections de cette base de données

  • « MongoDB::__get
  • MongoDB::getCollectionNames »
  • PHP Manual
  • MongoDB
  • Retourne des informations sur les collections de cette base de données

MongoDB::getCollectionInfo

(PECL mongo >=1.6.0)

MongoDB::getCollectionInfo — Retourne des informations sur les collections de cette base de données

Description

public array MongoDB::getCollectionInfo ([ array $options = array() ] )

Récupère une liste de toutes les collections de cette base de données et la retourne sous la forme d'un tableau de documents, contenant leurs noms et leurs options.

Note: Cette méthode va utiliser la commande de base de données » listCollections lors des communications avec MongoDB 2.8+. Pour les versions précédentes, la méthode va interroger la collection spéciale system.namespaces.

Liste de paramètres

options

Un tableau d'options pour lister les collections. Actuellement, les options disponibles sont :

  • "filter"

    Critère de requête optionnel. Si fourni, ce critère sera utilisé pour filtrer les collections inclues dans le résultat.

    Les champs pertinents qui peuvent être requêtés inclus "name" (nom de la collection comme chaine de caractères, sans préfixer par le nom de la base de données) et "options" (objet contenant les options utilisées pour créér la collection)..

    Note: MongoDB 2.6 et les versions antérieures requierent que le critère "name", si spécifié, soit une chaine de caractère (i.e. correspondance exacte). Ceci, car le driver doit préfixer la valeur avec le nom de la base de données afin de requêter la collection system.namespaces. Les versions suivantes de MongoDB n'ont pas cette limitation, comme le driver va utiliser la commande listCollections.

  • "includeSystemCollections"

    Booléen, par défaut FALSE. Détermine si les collections systèmes doivent être incluses dans le résultat.

L'option suivante peut être utilisée avec MongoDB 2.8+ :

  • "maxTimeMS"

    Spécifie une limite cumulative de temps, en millisecondes, pour procéder à l'opération (n'inclut pas le temps d'inactivité). Si l'opération n'est pas terminée durant cette période, une exception MongoExecutionTimeoutException sera émise.

Valeurs de retour

Cette fonction retourne un tableau où chaque élément est un tableau décrivant une collection. Les éléments vont contenir une clé name représentant le nom de la collection, et, optionnellement, une clé options contenant un tableau d'objets utilisés pour créer la collection. Par exemple, les collections limitées contiendront les options capped et size.

Erreurs / Exceptions

Pour MongoDB 2.6 et antérieures, une exception MongoException sera émise si une valeur différente d'une chaîne de caractères est spécifiée pour le critère "name" de l'option "filter".

Exemples

Exemple #1 Exemple avec MongoDB::getCollectionInfo()

<?php
$m = new MongoClient();
$db = $m->selectDB("demo");
var_dump($db->getCollectionInfo());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  array(2) {
    ["name"]=>
    string(4) "logs"
    ["options"]=>
    array(2) {
      ["capped"]=>
      bool(true)
      ["size"]=>
      int(10240)
    }
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(5) "users"
    ["options"]=>
    array(1) {
      ["flags"]=>
      int(1)
    }
  }
}

Voir aussi

  • MongoDB::getCollectionNames() - Récupère un tableau de noms pour toutes les collections de cette base de données
  • MongoDB::listCollections() - Récupère un tableau des objets MongoCollections pour toutes les collections de cette base de données


Récupère un tableau de noms pour toutes les collections de cette base de données

  • « MongoDB::getCollectionInfo
  • MongoDB::getDBRef »
  • PHP Manual
  • MongoDB
  • Récupère un tableau de noms pour toutes les collections de cette base de données

MongoDB::getCollectionNames

(PECL mongo >=1.3.0)

MongoDB::getCollectionNames — Récupère un tableau de noms pour toutes les collections de cette base de données

Description

public array MongoDB::getCollectionNames ([ array $options = array() ] )

Récupère une liste de toutes les collections dans la base de données et retourne leurs noms sous la forme d'un tableau de chaînes de caractères.

Note: Cette méthode va utiliser la commande de base de données » listCollections lors des communications avec MongoDB 2.8+. Pour les versions précédentes, la méthode va interroger la collection spéciale system.namespaces.

Liste de paramètres

options

Un tableau d'options listant les collections. Actuellement, les options disponibles sont :

  • "filter"

    Critère de requête optionnel. Si fourni, ce critère sera utilisé pour filtrer les collections inclues dans le résultat.

    Les champs pertinents qui peuvent être requêtés inclus "name" (nom de la collection comme chaine de caractères, sans préfixer par le nom de la base de données) et "options" (objet contenant les options utilisées pour créér la collection)..

    Note: MongoDB 2.6 et les versions antérieures requierent que le critère "name", si spécifié, soit une chaine de caractère (i.e. correspondance exacte). Ceci, car le driver doit préfixer la valeur avec le nom de la base de données afin de requêter la collection system.namespaces. Les versions suivantes de MongoDB n'ont pas cette limitation, comme le driver va utiliser la commande listCollections.

  • "includeSystemCollections"

    Booléen, par défaut FALSE. Détermine si les collections systèmes doivent être incluses dans le résultat.

L'option suivante peut être utilisée avec MongoDB 2.8+ :

  • "maxTimeMS"

    Spécifie une limite cumulative de temps, en millisecondes, pour procéder à l'opération (n'inclut pas le temps d'inactivité). Si l'opération n'est pas terminée durant cette période, une exception MongoExecutionTimeoutException sera émise.

Valeurs de retour

Retourne les noms des collections sous la forme d'un tableau de chaînes de caractères.

Erreurs / Exceptions

Pour MongoDB 2.6 etn précédent, une exception MongoException sera émise si une valeur différente d'une chaîne de caractères a été spécifiée pour l'option "filter" du critère "name".

Historique

Version | Description
1.6.0 | Modification du premier paramètre pour devenir un tableau d'options. Avant la version 1.6.0, le premier paramètre était un booléen indiquant l'option "includeSystemCollections".

Exemples

Exemple #1 Exemple avec MongoDB::getCollectionNames()

<?php
$m = new MongoClient();
$db = $m->selectDB("demo");
$collections = $db->getCollectionNames();

foreach ($collections as $collectionName) {
    echo "Collection trouvée : ", $collectionName, "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...
Collection trouvée : img
Collection trouvée : beer
Collection trouvée : collation
...

Voir aussi

  • MongoDB::listCollections() - Récupère un tableau des objets MongoCollections pour toutes les collections de cette base de données
  • MongoDB::getCollectionInfo() - Retourne des informations sur les collections de cette base de données


Lit le contenu d'une référence de base de données

  • « MongoDB::getCollectionNames
  • MongoDB::getGridFS »
  • PHP Manual
  • MongoDB
  • Lit le contenu d'une référence de base de données

MongoDB::getDBRef

(PECL mongo >=0.9.0)

MongoDB::getDBRef — Lit le contenu d'une référence de base de données

Description

public array MongoDB::getDBRef ( array $ref )

Liste de paramètres

ref

Une référence de base de données.

Valeurs de retour

Retourne le document de base de données, référencé par l'identifiant de base.

Exemples

Exemple #1 Exemple pour MongoDB::getDBRef()

Exemple montrant comment récupérer une référence de base de données et la forme de l'entrée.

<?php

 $ref = array(
   '$ref' => 'profiles',
   '$id' => new MongoId('47cc67093475061e3d9536d2')
 );

 $profile = $db->getDBRef($ref);
 ?>

Voyez MongoDB::createDBRef() pour plus d'informations sur comment créer des références de bases de données.


Manipulations des fichiers dans la base

  • « MongoDB::getDBRef
  • MongoDB::getProfilingLevel »
  • PHP Manual
  • MongoDB
  • Manipulations des fichiers dans la base

MongoDB::getGridFS

(PECL mongo >=0.9.0)

MongoDB::getGridFS — Manipulations des fichiers dans la base

Description

public MongoGridFS MongoDB::getGridFS ([ string $prefix = "fs" ] )

Liste de paramètres

prefix

Le préfixe pour les fichiers et les morceaux de collections.

Valeurs de retour

Retourne un nouvel objet mongogridfs pour cette base de données.

Exemples

Exemple #1 Exemple pour MongoDB::getGridFS()

Cet exemple montre comment récupérer une instance de MongoGridFS.

<?php

$db = $mongo->my_db;

$prefix = 'files';
$collection = $db->getGridFS($prefix);

?>

Lisez la documentation de MongoGridFS pour apprendre comment stocker des fichiers avec MongoDB.


Lit le niveau de profilage de la base de données

  • « MongoDB::getGridFS
  • MongoDB::getReadPreference »
  • PHP Manual
  • MongoDB
  • Lit le niveau de profilage de la base de données

MongoDB::getProfilingLevel

(PECL mongo >=0.9.0)

MongoDB::getProfilingLevel — Lit le niveau de profilage de la base de données

Description

public int MongoDB::getProfilingLevel ( void )

Retourne le niveau de profilage de la base de données.

Le profilage de base de données surveille les temps d'exécution d'une requête. Si vous l'activez (en utilisant MongoDB::setProfilingLevel() ou le shell), vous pouvez observer le nombre de requêtes qui prennent plus qu'un certain nombre de millisecondes à s'exécuter; ou bien le temps dévolu pour toutes les requêtes.

Notez que la surveillance des requêtes ralentit les requêtes, aussi, il convient de l'utiliser lors du développement ou d'une période de test mais pas en production.

Cette méthode est équivalent à l'exécution de :

<?php

public function getProfilingLevel() {
    return $this->command(array('profile' => -1));
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le niveau de profilage.

Voir aussi

  • Documentation MongoDB sur le » profiling
  • MongoDB::setProfilingLevel() - Configure le niveau de profilage de la base de données


Récupère les préférences de lecture pour cette base de données

  • « MongoDB::getProfilingLevel
  • MongoDB::getSlaveOkay »
  • PHP Manual
  • MongoDB
  • Récupère les préférences de lecture pour cette base de données

MongoDB::getReadPreference

(PECL mongo >=1.3.0)

MongoDB::getReadPreference — Récupère les préférences de lecture pour cette base de données

Description

public array MongoDB::getReadPreference ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne un tableau décrivant les préférences de lecture. Ce tableau contient les valeurs type contenant une chaîne représentant le mode de préférence de lecture (suivant les MongoClient), et tagsets contenant une liste de tous les critères du jeu de tags. Si aucun jeu de tags n'est spécifié, tagsets ne sera pas présent dans ce tableau.

Historique

Version | Description
1.3.3 | La valeur retournée a changée pour être consistante avec la méthode MongoDB::setReadPreference(). La valeur type a été changée, passant d'un nombre à une chaîne de caractères, la valeur type_string a été supprimée, et la valeur tagsets exprime maintenant les tags sous la forme d'une paire clé/valeur, au lieu d'une chaîne dont les valeurs étaient séparées par une virgule.

Exemples

Exemple #1 Exemple avec MongoDB::getReadPreference()

<?php

$m = new MongoClient();
$db = $m->test;
$db->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($db->getReadPreference());
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Voir aussi

  • La documentation sur les préférences de lecture.
  • MongoDB::setReadPreference() - Définit les préférences de lecture pour cette base de données


Récupère la configuration de slaveOkay pour cette base de données

  • « MongoDB::getReadPreference
  • MongoDB::getWriteConcern »
  • PHP Manual
  • MongoDB
  • Récupère la configuration de slaveOkay pour cette base de données

MongoDB::getSlaveOkay

(PECL mongo >=1.1.0)

MongoDB::getSlaveOkay — Récupère la configuration de slaveOkay pour cette base de données

Description

public bool MongoDB::getSlaveOkay ( void )

Voir la section requête de ce manuel pour plus d'informations sur la distribution de la lecture aux secondaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur de slaveOkay pour cette instance.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.

Voir aussi

  • Préférences de lecture
  • MongoDB::getReadPreference() - Récupère les préférences de lecture pour cette base de données
  • MongoDB::setReadPreference() - Définit les préférences de lecture pour cette base de données


Récupère la préoccupation d'écriture pour cette base de données

  • « MongoDB::getSlaveOkay
  • MongoDB::lastError »
  • PHP Manual
  • MongoDB
  • Récupère la préoccupation d'écriture pour cette base de données

MongoDB::getWriteConcern

(PECL mongo >=1.5.0)

MongoDB::getWriteConcern — Récupère la préoccupation d'écriture pour cette base de données

Description

public array MongoDB::getWriteConcern ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne un tableau décrivant la préoccupation d'écriture. Le tableau contient la valeur w pour le niveau d'approbation (valeur entière), ou un mode sous forme de chaîne de caractères, et la valeur wtimeout indiquant le nombre maximal de millisecondes à attente le serveur pour satisfaire la préoccupation d'écriture.

Exemples

Exemple #1 Exemple avec MongoDB::getWriteConcern()

<?php

$mc = new MongoClient('mongodb://localhost:27017', array('wTimeoutMS' => 500));
$db = $mc->selectDB('test');
var_dump($db->getWriteConcern());

$db->setWriteConcern(1, 1000);
var_dump($db->getWriteConcern());
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(500)
}
array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(1000)
}

Voir aussi

  • La documentation sur les préoccupations d'écriture.
  • MongoDB::setWriteConcern() - Défini la préoccupation d'écriture pour cette base de données


Vérifie s'il y a une erreur sur la dernière opération relative à la base de données

  • « MongoDB::getWriteConcern
  • MongoDB::listCollections »
  • PHP Manual
  • MongoDB
  • Vérifie s'il y a une erreur sur la dernière opération relative à la base de données

MongoDB::lastError

(PECL mongo >=0.9.5)

MongoDB::lastError — Vérifie s'il y a une erreur sur la dernière opération relative à la base de données

Description

public array MongoDB::lastError ( void )

Cette méthode est équivalente à :

<?php

public function lastError() {
    return $this->command(array('getlasterror' => 1));
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'erreur, s'il y en a une.

Exemples

Exemple #1 Exemple avec MongoDB::lastError()

<?php
$db->resetError();
var_dump($db->lastError());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["err"]=>
  NULL
  ["n"]=>
  int(0)
  ["ok"]=>
  float(1)
}

Exemple #2 Exemple avec MongoDB::lastError() et une clé dupliquée

<?php
$c = $db->selectCollection("foo");

// insert two documents with the same _id
$c->insert(array("_id" => 1));
$c->insert(array("_id" => 1));

var_dump($db->lastError());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["err"]=>
  string(64) "E11000 duplicate key errorindex: foo.foo.$_id_  dup key: { : 1 }"
  ["n"]=>
  int(0)
  ["ok"]=>
  float(1)
}


Récupère un tableau des objets MongoCollections pour toutes les collections de cette base de données

  • « MongoDB::lastError
  • MongoDB::prevError »
  • PHP Manual
  • MongoDB
  • Récupère un tableau des objets MongoCollections pour toutes les collections de cette base de données

MongoDB::listCollections

(PECL mongo >=0.9.0)

MongoDB::listCollections — Récupère un tableau des objets MongoCollections pour toutes les collections de cette base de données

Description

public array MongoDB::listCollections ([ array $options = array() ] )

Récupère une liste de toutes les collections de la base de données et les retourne sous la forme d'un tableau d'objets MongoCollection.

Note: Cette méthode va utiliser la commande de base de données » listCollections lors des communications avec MongoDB 2.8+. Pour les versions précédentes, la méthode va interroger la collection spéciale system.namespaces.

Liste de paramètres

options

Un tableau d'options listant les collections. Les options actuellement disponibles sont :

  • "filter"

    Critère de requête optionnel. Si fourni, ce critère sera utilisé pour filtrer les collections inclues dans le résultat.

    Les champs pertinents qui peuvent être requêtés inclus "name" (nom de la collection comme chaine de caractères, sans préfixer par le nom de la base de données) et "options" (objet contenant les options utilisées pour créér la collection)..

    Note: MongoDB 2.6 et les versions antérieures requierent que le critère "name", si spécifié, soit une chaine de caractère (i.e. correspondance exacte). Ceci, car le driver doit préfixer la valeur avec le nom de la base de données afin de requêter la collection system.namespaces. Les versions suivantes de MongoDB n'ont pas cette limitation, comme le driver va utiliser la commande listCollections.

  • "includeSystemCollections"

    Booléen, par défaut FALSE. Détermine si les collections systèmes doivent être incluses dans le résultat.

L'option suivante peut être utilisée avec MongoDB 2.8+ :

  • "maxTimeMS"

    Spécifie une limite cumulative de temps, en millisecondes, pour procéder à l'opération (n'inclut pas le temps d'inactivité). Si l'opération n'est pas terminée durant cette période, une exception MongoExecutionTimeoutException sera émise.

Valeurs de retour

Retourne un tableau d'objets MongoCollection.

Erreurs / Exceptions

Pour MongoDB 2.6 et précédent, une exception MongoException sera lancée si une valeur différente d'une chaîne de caractères a été spécifiée pour l'option "filter" du critère "name".

Historique

Version | Description
1.6.0 | Modification du premier paramètre pour devenir un tableau d'options. Avant la version 1.6.0, le premier paramètre était un booléen indiquant l'option "includeSystemCollections".
1.3.0 | Ajout du paramètre includeSystemCollections.

Exemples

Exemple #1 Exemple avec MongoDB::listCollections()

L'exemple suivant illustre le comptage de chaque collection de la base de données.

<?php

$m = new MongoClient();
$db = $m->selectDB("demo");
$collections = $db->listCollections();

foreach ($collections as $collection) {
    echo "Nombre de documents dans la collection $collection : ";
    echo $collection->count(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...
Nombre de documents dans la collection demo.pubs : 4
Nombre de documents dans la collection demo.elephpants : 3
Nombre de documents dans la collection demo.cities : 22840
...

Voir aussi

  • MongoDB::getCollectionNames() - Récupère un tableau de noms pour toutes les collections de cette base de données
  • MongoDB::getCollectionInfo() - Retourne des informations sur les collections de cette base de données


Vérifie la dernière erreur émise lors d'une opération relative à la base de données

  • « MongoDB::listCollections
  • MongoDB::repair »
  • PHP Manual
  • MongoDB
  • Vérifie la dernière erreur émise lors d'une opération relative à la base de données

MongoDB::prevError

(PECL mongo >=0.9.5)

MongoDB::prevError — Vérifie la dernière erreur émise lors d'une opération relative à la base de données

Description

public array MongoDB::prevError ( void )

MongoDB::lastError() est généralement préférée à la place de cette méthode. Celle-ci retourne la dernière erreur survenue sur la base de données ainsi que le nombre d'opérations sur cette dernière. Cette méthode est obsolète.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'erreur ainsi que le numéro de l'opérations dans laquelle elle est apparue.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.


Répare et compacte une base de données

  • « MongoDB::prevError
  • MongoDB::resetError »
  • PHP Manual
  • MongoDB
  • Répare et compacte une base de données

MongoDB::repair

(PECL mongo >=0.9.0)

MongoDB::repair — Répare et compacte une base de données

Description

public array MongoDB::repair ([ bool $preserve_cloned_files = FALSE [, bool $backup_original_files = FALSE ]] )

Cette méthode crée une copie de toutes les données de la base de données. Elle supprime toutes les données corrompues, compacte et optimise les espaces libres trouvés. Ces opérations sont très lentes sur de grosses bases de données.

Cette méthode est habituellement appelée depuis le shell ou depuis la ligne de commande, et non via le driver.

C'est un équivalent à la fonction :

<?php

public function repair() {
    return $this->command(array('repairDatabase' => 1));
}

?>

Liste de paramètres

preserve_cloned_files

Indique les fichiers clonés doivent être conservé, en cas d'échec de la réparation.

backup_original_files

Indique si les fichiers originaux doivent être sauvegardés.

Valeurs de retour

Retourne la réponse de la base de données.

Voir aussi

La documentation principale MongoDB sur » la réparation.

Exemples

Exemple #1 Exemple pour MongoDB::repair()

Cet exemple montre comment réparer et comprimer une base de données.

<?php

$db = $mongo->foo;

$response = $db->repair();
print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [ok] => 1
)


Efface toutes les erreurs d'une base de données

  • « MongoDB::repair
  • MongoDB::selectCollection »
  • PHP Manual
  • MongoDB
  • Efface toutes les erreurs d'une base de données

MongoDB::resetError

(PECL mongo >=0.9.5)

MongoDB::resetError — Efface toutes les erreurs d'une base de données

Description

public array MongoDB::resetError ( void )

Cette méthode n'est pas utilisée lors d'opérations normales. Elle réinitialise le tracker d'erreur de base de données (qui peut être incrémenté via la méthode MongoDB::forceError(), qui n'est également pas une méthode normalement utilisée).

C'est un équivalent de :

<?php

public function resetError() {
    return $this->command(array('reseterror' => 1));
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse à la base de données.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.


Lit une collection

  • « MongoDB::resetError
  • MongoDB::setProfilingLevel »
  • PHP Manual
  • MongoDB
  • Lit une collection

MongoDB::selectCollection

(PECL mongo >=0.9.0)

MongoDB::selectCollection — Lit une collection

Description

public MongoCollection MongoDB::selectCollection ( string $name )

Liste de paramètres

name

Le nom de la collection.

Valeurs de retour

Retourne un nouvel objet de collection.

Erreurs / Exceptions

Lance une Exception si le nom de la collection est invalide.


Configure le niveau de profilage de la base de données

  • « MongoDB::selectCollection
  • MongoDB::setReadPreference »
  • PHP Manual
  • MongoDB
  • Configure le niveau de profilage de la base de données

MongoDB::setProfilingLevel

(PECL mongo >=0.9.0)

MongoDB::setProfilingLevel — Configure le niveau de profilage de la base de données

Description

public int MongoDB::setProfilingLevel ( int $level )

Cette méthode modifie le niveau de profilage courant de la base de données.

Cette fonction est un équivalent à :

<?php

public function setProfilingLevel($level) {
    return $this->command(array('profile' => $level));
}

?>

Les options pour le niveau sont 0 (off), 1 (requêtes > 100ms), et 2 (toutes les requêtes). Si vous souhaitez profiler les requêtes qui prennent plus de temps d'une période donnée, utilisez la commande de base de données et passez là dans la seconde option, le nombre de millisecondes. Par exemple, pour profiler toutes les requêtes qui prennent plus d'une seconde, exécutez :

<?php

$result = $this->command(array('profile' => 1, 'slowms' => 1000));

?>

Le profilage de requêtes apparaissent dans la collection system.profile de la base de données.

Liste de paramètres

level

Le niveau de profilage.

Valeurs de retour

Retourne le niveau de profilage précédent.

Voir aussi

  • Documentation MongoDB sur le » profiling
  • MongoDB::getProfilingLevel() - Lit le niveau de profilage de la base de données


Définit les préférences de lecture pour cette base de données

  • « MongoDB::setProfilingLevel
  • MongoDB::setSlaveOkay »
  • PHP Manual
  • MongoDB
  • Définit les préférences de lecture pour cette base de données

MongoDB::setReadPreference

(PECL mongo >=1.3.0)

MongoDB::setReadPreference — Définit les préférences de lecture pour cette base de données

Description

public bool MongoDB::setReadPreference ( string $read_preference [, array $tags ] )

Liste de paramètres

read_preference

Le mode de préférence de lecture : MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, ou MongoClient::RP_NEAREST.

tags

Un tableau de zéro ou plusieurs jeux de tags, où chaque jeu de tags est lui même un tableau de critères utilisés pour faire correspondre les tags sur les membres du jeu de réplication.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE sinon.

Erreurs / Exceptions

Emets une alerte de niveau E_WARNING si soit le paramètre est invalide, soit si un ou plusieurs jeux de tags sont fournis avec le mode de préférence de lecture MongoClient::RP_PRIMARY.

Exemples

Exemple #1 Exemple avec MongoDB::setReadPreference()

<?php

$m = new MongoClient();
$db = $m->test;

// Préfère le serveur le plus proche dans le centre de données "east" également utilisé
// pour les rapports, mais utilise un serveur du centre de données "west" en cas d'échec
$db->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Voir aussi

  • La documentation sur les préférences de lecture.
  • MongoDB::getReadPreference() - Récupère les préférences de lecture pour cette base de données


Modifie la configuration de slaveOkay pour cette base de données

  • « MongoDB::setReadPreference
  • MongoDB::setWriteConcern »
  • PHP Manual
  • MongoDB
  • Modifie la configuration de slaveOkay pour cette base de données

MongoDB::setSlaveOkay

(PECL mongo >=1.1.0)

MongoDB::setSlaveOkay — Modifie la configuration de slaveOkay pour cette base de données

Description

public bool MongoDB::setSlaveOkay ([ bool $ok = true ] )

Voir la section requête de ce manuel pour plus d'informations sur la distribution de la lecture pour les secondaires.

Liste de paramètres

ok

Si la lecture doit être envoyée au second membre d'un jeu de réplication pour toutes les requêtes possibles utilisant l'instance MongoDB.

Valeurs de retour

Retourne la valeur de slaveOkay pour cette instance.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.

Voir aussi

  • Préférences de lecture
  • MongoDB::setReadPreference() - Définit les préférences de lecture pour cette base de données
  • MongoDB::getReadPreference() - Récupère les préférences de lecture pour cette base de données


Défini la préoccupation d'écriture pour cette base de données

  • « MongoDB::setSlaveOkay
  • MongoDB::__toString »
  • PHP Manual
  • MongoDB
  • Défini la préoccupation d'écriture pour cette base de données

MongoDB::setWriteConcern

(PECL mongo >=1.5.0)

MongoDB::setWriteConcern — Défini la préoccupation d'écriture pour cette base de données

Description

public bool MongoDB::setWriteConcern ( mixed $w [, int $wtimeout ] )

Liste de paramètres

w

La préoccupation d'écriture. Peut être un entier indiquant le nombre de serveurs requis pour approuver une écriture, ou un mode sous forme de chaîne de caractères (e.g. "majority").

wtimeout

Le nombre maximal de millisecondes à attendre le serveur pour satisfaire une préoccupation d'écriture.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE sinon.

Erreurs / Exceptions

Emets une exception de niveau E_WARNING si le paramètre w n'est pas un entier ou une chaîne de caractères.

Exemples

Exemple #1 Exemple avec MongoDB::setWriteConcern()

<?php

$mc = new MongoClient('mongodb://rs1.example.com,rs2.example.com');
$db = $mc->selectDB('test');

// Nécessite que la majorité des serveurs du jeu de réplication approuvent les écriture
// en moins de 3 secondes.
$db->setWriteConcern('majority', 3000);
?>

Voir aussi

  • La documentation sur les préoccupations d'écriture.
  • MongoDB::getWriteConcern() - Récupère la préoccupation d'écriture pour cette base de données


Le nom de cette base de données Mongo

  • « MongoDB::setWriteConcern
  • MongoCollection »
  • PHP Manual
  • MongoDB
  • Le nom de cette base de données Mongo

MongoDB::__toString

(PECL mongo >=0.9.0)

MongoDB::__toString — Le nom de cette base de données Mongo

Description

public string MongoDB::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de la base de données.


La classe MongoCollection

(PECL mongo >=0.9.0)

Introduction

Représente une collecion MongoDB.

Les noms de collections peuvent contenir n'importe quel caractère ASCII. Il est possible d'utiliser les noms de collections suivants : "", "...", "ma collection" et "*&#@".

Les noms de collections définies par l'utilisateur ne peuvent contenir le caractère $. Il y a certaines collections systèmes qui utilisent le caractère $ dans leurs noms (i.e., local.oplog.$main), mais c'est un caractère réservé. Si vous tentez de créer et d'utiliser une collection dont le nom contient un $, MongoDB échouera.

Synopsis de la classe

MongoCollection {
/* Constantes */
const int ASCENDING = 1 ;
const int DESCENDING = -1 ;
/* Champs */
public MongoDB $db = NULL ;
public integer $w ;
public integer $wtimeout ;
/* Méthodes */
public array aggregate ( array $pipeline [, array $options ] )
public MongoCommandCursor aggregateCursor ( array $command [, array $options ] )
public mixed batchInsert ( array $a [, array $options = array() ] )
public __construct ( MongoDB $db , string $name )
public int count ([ array $query = array() [, array $options = array() ]] )
public array createDBRef ( mixed $document_or_id )
public bool createIndex ( array $keys [, array $options = array() ] )
public array deleteIndex ( string|array $keys )
public array deleteIndexes ( void )
public array distinct ( string $key [, array $query ] )
public array drop ( void )
public bool ensureIndex ( string|array $key|keys [, array $options = array() ] )
public MongoCursor find ([ array $query = array() [, array $fields = array() ]] )
public array findAndModify ( array $query [, array $update [, array $fields [, array $options ]]] )
 public array findOne
  ([ array $query = array()
 [, array $fields = array()
 [, array $options = array()
]]] )
public MongoCollection __get ( string $name )
public array getDBRef ( array $ref )
public array getIndexInfo ( void )
public string getName ( void )
public array getReadPreference ( void )
public bool getSlaveOkay ( void )
public array getWriteConcern ( void )
public array group ( mixed $keys , array $initial , MongoCode $reduce [, array $options = array() ] )
public bool|array insert ( array|object $document [, array $options = array() ] )
public array[MongoCommandCursor] parallelCollectionScan ( int $num_cursors )
public bool|array remove ([ array $criteria = array() [, array $options = array() ]] )
public mixed save ( array|object $document [, array $options = array() ] )
public bool setReadPreference ( string $read_preference [, array $tags ] )
public bool setSlaveOkay ([ bool $ok = true ] )
public bool setWriteConcern ( mixed $w [, int $wtimeout ] )
static protected string toIndexString ( mixed $keys )
public string __toString ( void )
public bool|array update ( array $criteria , array $new_object [, array $options = array() ] )
public array validate ([ bool $scan_data = FALSE ] )
}

Constantes pré-définies

MongoCollection::ASCENDING
1
Classements et créations d'index dans l'ordre croissant.
MongoCollection::DESCENDING
-1
Classements et créations d'index dans l'ordre décroissant.

Champs

db

La base de données "parente" pour cette collection.

w

Le nombre de serveurs vers lesquels répliquer un changement avant de retourner un succès.La valeur est héritée de la base de données parente. La classe MongoDB possède plus de détails sur le fonctionnement de w.

wtimeout

Le nombre de millisecondes à attendre que les réplications $this->w se fassent. La valeur est héritée de la base de données parente. La classe MongoDB possède plus de détails sur le fonctionnement de wtimeout.

Voir aussi

Documentation de MongoDB » concernant les collections.

Sommaire

  • MongoCollection::aggregate — Effectue une agrégation en utilisant le framework dédié
  • MongoCollection::aggregateCursor — Exécute une commande d'agrégation, et récupère les résultats via un curseur
  • MongoCollection::batchInsert — Insère plusieurs documents dans la collection
  • MongoCollection::__construct — Crée une nouvelle collection
  • MongoCollection::count — Compte le nombre de documents de cette collection
  • MongoCollection::createDBRef — Crée une référence de base de données
  • MongoCollection::createIndex — Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà
  • MongoCollection::deleteIndex — Supprime un index de la collection
  • MongoCollection::deleteIndexes — Supprime tous les index de cette collection
  • MongoCollection::distinct — Retourne une liste de valeurs distinctes d'une collection pour la clé donnée
  • MongoCollection::drop — Supprime cette collection
  • MongoCollection::ensureIndex — Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà
  • MongoCollection::find — Interroge une collection, et retourne comme jeu de résultats un objet MongoCursor
  • MongoCollection::findAndModify — Met à jour un document et le retourne
  • MongoCollection::findOne — Interroge cette collection, retourne un seul élément
  • MongoCollection::__get — Récupère une collection
  • MongoCollection::getDBRef — Lit une référence de base de données
  • MongoCollection::getIndexInfo — Retourne des informations sur les indexes de cette collection
  • MongoCollection::getName — Retourne le nom de cette collection
  • MongoCollection::getReadPreference — Récupère les préférences de lecture pour cette collection
  • MongoCollection::getSlaveOkay — Récupère la configuration slaveOkay pour cette collection
  • MongoCollection::getWriteConcern — Récupère la préoccupation d'écriture de cette collection
  • MongoCollection::group — Effecture une opération de regroupement
  • MongoCollection::insert — Insère un document dans la collection
  • MongoCollection::parallelCollectionScan — Retourne un tableau de curseurs pour parcourir une collection complète en parallèle
  • MongoCollection::remove — Supprime un enregistrement d'une collection
  • MongoCollection::save — Sauvegarde un document dans une collection
  • MongoCollection::setReadPreference — Définit les préférences de lecture pour cette collection
  • MongoCollection::setSlaveOkay — Modifie la configuration de slaveOkay pour cette collection
  • MongoCollection::setWriteConcern — Défini la préoccupation d'écriture pour cette base de données
  • MongoCollection::toIndexString — Convertit les clés spécifiant un index en une chaîne de caractères
  • MongoCollection::__toString — Retourne la répresentation en chaîne de cette collection
  • MongoCollection::update — Modifie les enregistrements
  • MongoCollection::validate — Valide la collection


Effectue une agrégation en utilisant le framework dédié

  • « MongoCollection
  • MongoCollection::aggregateCursor »
  • PHP Manual
  • MongoCollection
  • Effectue une agrégation en utilisant le framework dédié

MongoCollection::aggregate

(PECL mongo >=1.3.0)

MongoCollection::aggregate — Effectue une agrégation en utilisant le framework dédié

Description

public array MongoCollection::aggregate ( array $pipeline [, array $options ] )
public array MongoCollection::aggregate ( array $op [, array $op [, array $... ]] )

Le » framework agrégation de MongoDB fournit une façon de calculer des valeurs agrégées sans avoir à utiliser MapReduce. Bien que MapReduce soit performant, il est souvent plus compliqué que nécessaire pour des tâches d'agrégation simples, comme le calcul du total ou de la moyenne des valeurs d'un champ.

Cette méthode accepte soit une variable au début du pipeline des opérateurs, ou un tableau simple d'opérateurs constituant le pipeline.

Liste de paramètres

pipeline

Un tableau d'opérateurs de pipeline.

options

Options pour la commande d'agrégation. Les options valides sont :

  • "allowDiskUse"

    Autorise les opérations d'agrégation d'écrire dans les fichiers temporaires

  • "cursor"

    Options controllant la créatun d'un objet curseur. Cette option fait que la commande va retourner un document prêt pour construire un MongoCommandCursor. Si vous avez besoin d'utiliser cette option, vous devriez considérer l'utilisation de la méthode MongoCollection::aggregateCursor().

  • "explain"

    Retourne des informations quant à l'exécution du pipeline.

  • "maxTimeMS"

    Spécifie une limite cumulative de temps, en millisecondes, pour procéder à l'opération (n'inclut pas le temps d'inactivité). Si l'opération n'est pas terminée durant cette période, une exception MongoExecutionTimeoutException sera émise.

Ou

op

Premier opérateur de pipeline.

op

Second opérateur de pipeline.

...

Opérateurs additionnels de pipeline.

Valeurs de retour

Le résultat del'agrégation, sous la forme d'un tableau. La clé ok vaudra 1 en cas de succès, 0 si une erreur survient.

Erreurs / Exceptions

Lorsqu'une erreur survient, un tableau contenant les clés suivantes sera retourné :

  • errmsg - contient la raison de l'échec
  • code - le code erreur de l'échec
  • ok - vaudra 0.

Historique

Version | Description
1.5.0 | Ajout de l'argument optionnel options

Exemples

Exemple #1 Exemple avec MongoCollection::aggregate()

L'exemple d'agrégation suivant opère sur des données pivots pour créer un jeu de noms d'auteurs, groupé par les tags appliqués à un article. Appelez le framework d'agrégation en utilisant la commande suivante :

<?php
$m = new MongoClient("localhost");
$c = $m->selectDB("examples")->selectCollection("article");
$data = array (
    'title' => 'this is my title',
    'author' => 'bob',
    'posted' => new MongoDate,
    'pageViews' => 5,
    'tags' => array ( 'fun', 'good', 'fun' ),
    'comments' => array (
      array (
        'author' => 'joe',
        'text' => 'this is cool',
      ),
      array (
        'author' => 'sam',
        'text' => 'this is bad',
      ),
    ),
    'other' =>array (
      'foo' => 5,
    ),
);
$d = $c->insert($data, array("w" => 1));

$ops = array(
    array(
        '$project' => array(
            "author" => 1,
            "tags"   => 1,
        )
    ),
    array('$unwind' => '$tags'),
    array(
        '$group' => array(
            "_id" => array("tags" => '$tags'),
            "authors" => array('$addToSet' => '$author'),
        ),
    ),
);
$results = $c->aggregate($ops);
var_dump($results);
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["result"]=>
  array(2) {
    [0]=>
    array(2) {
      ["_id"]=>
      array(1) {
        ["tags"]=>
        string(4) "good"
      }
      ["authors"]=>
      array(1) {
        [0]=>
        string(3) "bob"
      }
    }
    [1]=>
    array(2) {
      ["_id"]=>
      array(1) {
        ["tags"]=>
        string(3) "fun"
      }
      ["authors"]=>
      array(1) {
        [0]=>
        string(3) "bob"
      }
    }
  }
  ["ok"]=>
  float(1)
}

L'exemple suivant utilise le » jeu de données zipcode. Utilisez mongoimport pour charger ce jeu de données dans l'instance mongod.

Exemple #2 Exemple avec MongoCollection::aggregate()

Pour retourner tous les états avec une population supérieure à 10 million, utilisez l'opération d'agrégation suivante :

<?php
$m = new MongoClient("localhost");
$c = $m->selectDB("test")->selectCollection("zips");

$pipeline = array(
    array(
        '$group' => array(
            '_id' => array('state' => '$state'),
            'totalPop' => array('$sum' => '$pop')
        )
    ),
    array(
        '$match' => array(
            'totalPop' => array('$gte' => 10 * 1000 * 1000)
        )
    ),
);
$out = $c->aggregate($pipeline);
var_dump($out);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["result"]=>
  array(7) {
    [0]=>
    array(2) {
      ["_id"]=>
      string(2) "TX"
      ["totalPop"]=>
      int(16986510)
    }
    [1]=>
    array(2) {
      ["_id"]=>
      string(2) "PA"
      ["totalPop"]=>
      int(11881643)
    }
    [2]=>
    array(2) {
      ["_id"]=>
      string(2) "NY"
      ["totalPop"]=>
      int(17990455)
    }
    [3]=>
    array(2) {
      ["_id"]=>
      string(2) "IL"
      ["totalPop"]=>
      int(11430602)
    }
    [4]=>
    array(2) {
      ["_id"]=>
      string(2) "CA"
      ["totalPop"]=>
      int(29760021)
    }
    [5]=>
    array(2) {
      ["_id"]=>
      string(2) "OH"
      ["totalPop"]=>
      int(10847115)
    }
    [6]=>
    array(2) {
      ["_id"]=>
      string(2) "FL"
      ["totalPop"]=>
      int(12937926)
    }
  }
  ["ok"]=>
  float(1)
}

Exemple #3 Exemple avec MongoCollection::aggregate()

Pour retourner la moyenne de la population pour les villes de chaque état, utilisez l'opération d'agrégation suivante :

<?php
$m = new MongoClient;
$c = $m->selectDB("test")->selectCollection("zips");

$out = $c->aggregate(
    array(
        '$group' => array(
            '_id' => array('state' => '$state', 'city' => '$city' ),
            'pop' => array('$sum' => '$pop' )
        )
    ),
    array(
        '$group' => array(
            '_id' => '$_id.state',
            'avgCityPop' => array('$avg' => '$pop')
        )
    )
);

var_dump($out);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["result"]=>
  array(51) {
    [0]=>
    array(2) {
      ["_id"]=>
      string(2) "DC"
      ["avgCityPop"]=>
      float(303450)
    }
    [1]=>
    array(2) {
      ["_id"]=>
      string(2) "DE"
      ["avgCityPop"]=>
      float(14481.913043478)
    }
...
    [49]=>
    array(2) {
      ["_id"]=>
      string(2) "WI"
      ["avgCityPop"]=>
      float(7323.0074850299)
    }
    [50]=>
    array(2) {
      ["_id"]=>
      string(2) "WV"
      ["avgCityPop"]=>
      float(2759.1953846154)
    }
  }
  ["ok"]=>
  float(1)
}

Exemple #4 Exemple avec MongoCollection::aggregate() et des options de commande

Pour retourner des informations sur l'exécution de la pipeline, nous utilisons l'option de commande explain.

<?php
$m = new MongoClient;
$c = $m->selectDB("test")->selectCollection("zips");

$pipeline = array(
        '$group' => array(
            '_id' => '$state',
           'totalPop' => array('$sum' => '$pop'),
        ),
    ),
    array(
        '$match' => array(
            'totalPop' => array('$gte' => 10 * 1000 * 1000)
        )
    ),
    array(
        '$sort' => array("totalPop" => -1),
    ),
);

$options = array("explain" => true);
$out = $c->aggregate($pipeline, $options);
var_dump($out);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["stages"]=>
  array(4) {
    [0]=>
    array(1) {
      ["$cursor"]=>
      array(3) {
        ["query"]=>
        array(0) {
        }
        ["fields"]=>
        array(3) {
          ["pop"]=>
          int(1)
          ["state"]=>
          int(1)
          ["_id"]=>
          int(0)
        }
        ["plan"]=>
        array(4) {
          ["cursor"]=>
          string(11) "BasicCursor"
          ["isMultiKey"]=>
          bool(false)
          ["scanAndOrder"]=>
          bool(false)
          ["allPlans"]=>
          array(1) {
            [0]=>
            array(3) {
              ["cursor"]=>
              string(11) "BasicCursor"
              ["isMultiKey"]=>
              bool(false)
              ["scanAndOrder"]=>
              bool(false)
            }
          }
        }
      }
    }
    [1]=>
    array(1) {
      ["$group"]=>
      array(2) {
        ["_id"]=>
        string(6) "$state"
        ["totalPop"]=>
        array(1) {
          ["$sum"]=>
          string(4) "$pop"
        }
      }
    }
    [2]=>
    array(1) {
      ["$match"]=>
      array(1) {
        ["totalPop"]=>
        array(1) {
          ["$gte"]=>
          int(10000000)
        }
      }
    }
    [3]=>
    array(1) {
      ["$sort"]=>
      array(1) {
        ["sortKey"]=>
        array(1) {
          ["totalPop"]=>
          int(-1)
        }
      }
    }
  }
  ["ok"]=>
  float(1)
}

Voir aussi

  • MongoCollection::aggregateCursor() - Exécute une commande d'agrégation, et récupère les résultats via un curseur
  • Le » framework d'agrégation de MongoDB


Exécute une commande d'agrégation, et récupère les résultats via un curseur

  • « MongoCollection::aggregate
  • MongoCollection::batchInsert »
  • PHP Manual
  • MongoCollection
  • Exécute une commande d'agrégation, et récupère les résultats via un curseur

MongoCollection::aggregateCursor

(PECL mongo >=1.5.0)

MongoCollection::aggregateCursor — Exécute une commande d'agrégation, et récupère les résultats via un curseur

Description

public MongoCommandCursor MongoCollection::aggregateCursor ( array $command [, array $options ] )

Avec cette méthode, vous pouvez exécuter des commandes d'agrégation et récupérer les résultats via un curseur, au lieu de ne récupérer qu'un seul document, comme c'est le cas avec la méthode MongoCollection::aggregate(). Cette méthode retourne un objet MongoCommandCursor. Cet objet de type curseur implémente l'interface Iterator tout comme les objets MongoCursor qui sont retournés par la méthode MongoCollection::find().

Note: Le MongoCommandCursor résultant va hériter des préférences de lecture de cette collection. MongoCommandCursor::setReadPreference() peut être utilisé pour modifier les préférences de lecture, avant d'avancer sur le curseur.

Liste de paramètres

pipeline

La commande d'agrégation à exécuter.

options

Options pour la commande d'agrégation. Les options valides sont :

  • "allowDiskUse"

    Autorise les étapes d'agrégation d'écrire dans des fichiers temporaires

  • "cursor"

    Il est possible de configurer le nombre de documents initiaux que le serveur doit retourner avec le premier jeux de résultats. La taille du lot initial par défaut est 101. Vous pouvez la modifier en ajoutant l'option batchSize :

    <?php
    $collection    ->aggregateCursor(
            $pipeline,
        [     "cursor" => [ "batchSize" => 4 ] ]
    );

    Cette option configure uniquement la taille du premier lot. Pour configurer la taille des lots suivants, utilisez la méthode MongoCommandCursor::batchSize() sur l'objet MongoCommandCursor retourné.

  • "explain"

    Retourne des informations sur l'exécution de la commande. Cette option peut faire que la commande va retourner un document résultat qui ne sera pas utilisable pour la construction d'un MongoCommandCursor. Si vous devez utiliser cette option, vous pourriez considérer l'utilisation de la méthode MongoCollection::aggregate().

  • "maxTimeMS"

    Spécifie une limite cumulative de temps, en millisecondes, pour procéder à l'opération (n'inclut pas le temps d'inactivité). Si l'opération n'est pas terminée durant cette période, une exception MongoExecutionTimeoutException sera émise.

Valeurs de retour

Retourne un objet MongoCommandCursor. En raison du fait que l'objet implémente l'interface Iterator, vous pouvez parcourir le jeux de résultats tel que retourné par la requête de commande. MongoCommandCursor implémente également l'interface MongoCursorInterface qui ajoute les méthodes MongoCommandCursor::batchSize(), MongoCommandCursor::dead() et MongoCommandCursor::info().

Exemples

Exemple #1 Exemple avec MongoCollection::aggregateCursor()

Trouve toutes les valeurs distinctes pour une clé.

<?php
$m = new MongoClient;
$db = $m->test;
$people = $db->people;
$people->drop();

$people->insert(array("name" => "Joe", "points" => 4));
$people->insert(array("name" => "Molly", "points" => 43));
$people->insert(array("name" => "Sally", "points" => 22));
$people->insert(array("name" => "Joe", "points" => 22));
$people->insert(array("name" => "Molly", "points" => 87));

$ages = $people->aggregateCursor( [
        [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
        [ '$sort' => [ 'points' => -1 ] ],
] );

foreach ($ages as $person) {
    echo "{$person['_id']}: {$person['points']}\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Molly: 130
Joe: 26
Sally: 22

Exemple #2 Exemple avec MongoCollection::aggregateCursor() avec différentes tailles de lots initiaux

Trouve toutes les valeurs distinctes pour une clé.

<?php
$m = new MongoClient;
$db = $m->test;
$people = $db->people;
$people->drop();

/* Insertion de données */
$people->insert(array("name" => "Joe", "points" => 4));
$people->insert(array("name" => "Molly", "points" => 43));
$people->insert(array("name" => "Sally", "points" => 22));
$people->insert(array("name" => "Joe", "points" => 22));
$people->insert(array("name" => "Molly", "points" => 87));

/* Exécuter la commande */
$ages = $people->aggregateCursor(
    [
        [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
        [ '$sort' => [ 'points' => -1 ] ],
    ],
    [ "cursor" => [ "batchSize" => 4 ] ]
);

foreach ($ages as $person) {
    echo "{$person['_id']}: {$person['points']}\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Molly: 130
Joe: 26
Sally: 22

Voir aussi

  • MongoDB::command() - Exécute une commande de base de données
  • MongoCommandCursor
  • MongoCommandCursor::batchSize() - Limite le nombre d'éléments retournés dans un lot
  • MongoCollection::aggregate() - Effectue une agrégation en utilisant le framework dédié
  • La documentation MongoDB sur l'» agrégation


Insère plusieurs documents dans la collection

  • « MongoCollection::aggregateCursor
  • MongoCollection::__construct »
  • PHP Manual
  • MongoCollection
  • Insère plusieurs documents dans la collection

MongoCollection::batchInsert

(PECL mongo >=0.9.0)

MongoCollection::batchInsert — Insère plusieurs documents dans la collection

Description

public mixed MongoCollection::batchInsert ( array $a [, array $options = array() ] )

Liste de paramètres

a

Un tableau de tableaux ou d'objets. Si des objets sont utilisés, il ne faut pas que leurs propriétés soient protégées ou privées.

Note:

Si le document à insérer n'a pas de clé _id ou de propriété, une nouvelle instance MongoId sera créée et utilisée. Voir la méthode MongoCollection::insert() pour plus d'informations quant à ce comportement.

options

Un tableau d'options pour le lot d'opérations d'insertion. Actuellement, les options valides sont :

  • "continueOnError"

    Booléen, par défaut, FALSE. Si défini, la base de données n'arrêtera pas une insertion bulk si une d'entre elles échoue (i.e. en raison d'un ID dupliqué). Ceci rend les insertions bulk comme une succession d'insertion simple, sauf que lors d'un appel à la méthode MongoDB::lastError(), un jeu d'erreurs sera retourné lors de l'échec d'une insertion, et pas seulement la dernière. Si plusieurs erreurs surviennent, seule la plus récente sera rapportée par la méthode MongoDB::lastError().

    Note:

    Veuillez noter que continueOnError affecte les erreurs côté base de données uniquement. Si vous tentez d'insérer un document qui contient des erreurs (par exemple, il contient une clé dont le nom est vide), alors le document ne sera pas transféré à la base de données car le driver va détecter cette erreur et l'indiquer. continueOnError n'a aucun effet sur les erreurs détectées dans le document par le driver.

  • "fsync"

    Booléen, par défaut à FALSE. Si l'historisation est activée, il fonctionne exactement comme "j". Si l'historisation n'est pas activée, l'opération en écriture sera bloquante tant qu'elle ne sera pas synchronisé sur les fichiers de base de données du disque. Si vaut TRUE, une insertion reconnue devient implicite, et cette option va écraser la configuration "w" à 0.

    Note: Si l'historisation est activée, les utilisateurs sont vivement encouragés à utiliser l'option "j" au lieu de "fsync". N'utilisez pas "fsync" et "j" en même temps, ou une erreur sera produite.

  • "j"

    Booléen, par défaut à FALSE. Force les opérations en écriture a être bloquantes tant qu'elles ne sont pas synchronisées dans le journal du disque. Si vaut TRUE, une écriture reconnue est implicite, et cette option va écraser la configuration "w" à 0.

    Note: Si cette option est utilisée, et que l'historisation est désactivée, MongoDB 2.6+ va lancer une erreur, et l'écriture échouera ; les anciennes versions du serveur vont simplement ignorer cette ooption.

  • "socketTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la communication avec un socket. Si le serveur ne répond pas pendant cette période, une exception MongoCursorTimeoutException sera émise et il n'y a aucune façon de déterminer si le serveur gère actuellement l'écriture ou non. Une valeur de -1 peut être spécifiée pour bloquer indéfiniement. La valeur par défaut pour MongoClient est 30000 (30 secondes).

  • "w"

    Voir les préoccupatios d'écriture. La valeur par défaut pour MongoClient est 1.

  • "wTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la reconnaissance des préoccupations d'écriture.Ceci n'est applicable que lorsque "w" est supérieur à 1, sachant que le délai d'attente maximal est en relation avec la réplication. Si la préoccupation d'écriture n'est pas spécifiée dans la durée limite, une exception MongoCursorException sera émise. Une valeur de 0 peut être spécifiée pour un blocage permanent. La valeur par défaut pour MongoClient est 10000 (dix secondes).

Les options suivantes sont obsolètes, et ne devraient plus être utilisées :

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Alias obsolète pour "socketTimeoutMS".

  • "wtimeout"

    Alias obsolète pour "wTimeoutMS".

Valeurs de retour

Si le paramètre w est défini pour reconnaître l'écriture, retourne un tableau associatif contenant le statut de l'insertion ("ok") ainsi que toutes les erreurs survenues ("err"). Sinon, retourne TRUE si l'insertion a été envoyée avec succès, FALSE sinon.

Erreurs / Exceptions

Lance une exception MongoException si les documents insérés sont vides, ou s'ils contiennent une clé de valeur nulle. Tenter d'insérer un objet avec des propriétés protégées et privées causera une erreur de type "clé de valeur nulle". if any inserted documents are empty or if they contains zero-length keys. Attempting to insert an object with protected and private properties will cause a zero-length key error.

Lance une exception MongoCursorException si l'option "w" est définie, et que l'écriture échoue.

Lance une exception MongoCursorTimeoutException si l'option "w" est définie à une valeur supérieure à 1 et que l'opération prend plus de temps que MongoCursor::$timeout millisecondes à se terminer. Ceci ne va pas mettre fin à l'opération sur le serveur, ce n'est qu'un délai d'attente maximal côté client. L'unité pour MongoCollection::$wtimeout est la milliseconde.

Historique

Version | Description
1.5.0

Ajout de l'option "wTimeoutMS", qui remplace "wtimeout". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée.

Ajout de l'option "socketTimeoutMS", qui remplace "timeout". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée.

Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.

1.3.4 | Ajout de l'option "wtimeout".
1.3.0 | Ajout de l'option "w".
1.2.7 | Le drapeau "continueOnError" a été ajouté.
1.0.9

Ajout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés).

Ajout de l'option "fsync".

1.0.5 | Ajout du paramètre options.

Exemples

Exemple #1 Exemple avec MongoCollection::batchInsert()

L'insertion en masse est un moyen rapide d'insérer rapidement de nombreux éléments à la fois dans une base

<?php

$users = array();
for ($i = 0; $i<100; $i++) {
  $users[] = array('username' => 'user'.$i, 'i' => $i);
}

$mongo = new MongoClient();
$collection = $mongo->my_db->users;
$collection->drop();

$collection->batchInsert($users);

foreach ($users as $user) {
  echo $user['_id']."\n"; // peuplé via l'instance de MongoId
}

$users = $collection->find()->sort(array('i' => 1));
foreach ($users as $user) {
    var_dump($user['username']);
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

4bf43ac68ead0e1971000000
4bf43ac68ead0e1971010000
4bf43ac68ead0e1971020000
...
string(5) "user1"
string(5) "user2"
string(5) "user3"
...

Exemple #2 Exemple avec MongoCollection::batchInsert() où l'on ignore les erreurs

<?php

$con = new Mongo;
$db = $con->demo;

$doc1 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010001'),
        'id' => 1,
        'desc' => "ONE",
);
$doc2 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010002'),
        'id' => 2,
        'desc' => "TWO",
);
$doc3 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010002'), // _id identique au précédent
        'id' => 3,
        'desc' => "THREE",
);
$doc4 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010004'),
        'id' => 4,
        'desc' => "FOUR",
);

$c = $db->selectCollection('c');
$c->batchInsert(
    array($doc1, $doc2, $doc3, $doc4),
    array('continueOnError' => true)
);

$docs = $c->find();
foreach ($docs as $doc) {
    var_dump($doc['desc']);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(3) "ONE"
string(3) "TWO"
string(4) "FOUR"

Voir aussi

  • MongoCollection::insert() - Insère un document dans la collection
  • MongoCollection::update() - Modifie les enregistrements
  • MongoCollection::find() - Interroge une collection, et retourne comme jeu de résultats un objet MongoCursor
  • MongoCollection::remove() - Supprime un enregistrement d'une collection
  • Documentation interne MongoDB sur » insert.


Crée une nouvelle collection

  • « MongoCollection::batchInsert
  • MongoCollection::count »
  • PHP Manual
  • MongoCollection
  • Crée une nouvelle collection

MongoCollection::__construct

(PECL mongo >=0.9.0)

MongoCollection::__construct — Crée une nouvelle collection

Description

public MongoCollection::__construct ( MongoDB $db , string $name )

Liste de paramètres

MongoDB db

La base de données parente.

name

Le nom de la collection.

Valeurs de retour

Retourne un nouvel objet de connexion MongoCollection.

Erreurs / Exceptions

Emet l'exception par défaut si la connexion est invalide.


Compte le nombre de documents de cette collection

  • « MongoCollection::__construct
  • MongoCollection::createDBRef »
  • PHP Manual
  • MongoCollection
  • Compte le nombre de documents de cette collection

MongoCollection::count

(PECL mongo >=0.9.0)

MongoCollection::count — Compte le nombre de documents de cette collection

Description

 public int MongoCollection::count
  ([ array $query = array()
 [, array $options = array()
]] )

Liste de paramètres

query

Tableau associatif ou objet avec les champs à chercher.

options

Un tableau d'options pour la création de l'index. Les options actuellement disponibles sont :

Nom | Type | Description
hint mixed

L'index à utiliser pour la requête. Si une chaîne est passée, elle doit correspondre au nom de l'index. Si un tableau ou un objet est passé, il doit correspondre à la spécification utilisée pour créer l'index (i.e. le premier argument de MongoCollection::createIndex()).

Cette option est uniquement supportée en MongoDB 2.6+.
limit | integer | Le nombre maximal de documents qui correspond à retourner.
maxTimeMS integer

Spécifie une durée limite cumulative, en millisecondes, pour réaliser l'opération (n'incluant pas la durée d'inactivité). Si l'opération n'est pas terminée pendant la durée maximale, une exception de type MongoExecutionTimeoutException sera émise.

Cette option n'est supporté qu'en MongoDB 2.6+.
skip | integer | Le nombre de documents qui correspond à ignorer avant de retourner les résultats.

Valeurs de retour

Retourne le nombre de documents correspondant à la requête.

Erreurs / Exceptions

Lance une exception de type MongoResultException si le serveur ne peut pas exécuter la commande en raison d'une erreur.

Lance une exception MongoExecutionTimeoutException si l'exécution de la commande s'est terminée en raison d'un maxTimeMS.

Historique

Version | Description
1.6.0 | Le second paramètre est maintenant un tableau d'options. Le fait de passer les paramètres limit et skip comme second et troisième paramètres, respectivement, est maintenant obsolète.
1.0.7 | Ajout des paramètres limit et skip comme second et troisième paramètres, respectivement.

Exemples

Exemple #1 Exemple avec MongoCollection::count()

<?php

$collection->insert(array('x'=>1));
$collection->insert(array('x'=>2));
$collection->insert(array('x'=>3));

var_dump($collection->count());
var_dump($collection->count(array('x'=>1)));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)
int(1)


Crée une référence de base de données

  • « MongoCollection::count
  • MongoCollection::createIndex »
  • PHP Manual
  • MongoCollection
  • Crée une référence de base de données

MongoCollection::createDBRef

(PECL mongo >=0.9.0)

MongoCollection::createDBRef — Crée une référence de base de données

Description

public array MongoCollection::createDBRef ( mixed $document_or_id )

Liste de paramètres

document_or_id

Si un tableau ou un objet est fourni, son identifiant de champ _id sera utilisé comme identifiant de référence. Si un MongoId ou un scalaire est fourni, il sera utilisé comme identifiant de référence.

Valeurs de retour

Retourne le tableau de référence de base de données.

Si un tableau sans champ _id a été fourni comme paramètre document_or_id, NULL sera retourné.

Exemples

Exemple #1 Exemple avec MongoCollection::createDBRef()

<?php

$songs = $db->songs;
$playlists = $db->playlists;

// crée une référence à une chanson
$manamana = $songs->findOne(array('title' => 'Ma na ma na'));
$refToSong = $songs->createDBRef($manamana);

// ajoute la référence à ma liste de lectures
$playlists->update(array('username' => 'me'), array('$push' => array('songlist' => $refToSong)));

?>

Voir aussi

  • MongoCollection::getDBRef() - Lit une référence de base de données


Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà

  • « MongoCollection::createDBRef
  • MongoCollection::deleteIndex »
  • PHP Manual
  • MongoCollection
  • Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà

MongoCollection::createIndex

(PECL mongo >=1.5.0)

MongoCollection::createIndex — Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà

Description

public bool MongoCollection::createIndex ( array $keys [, array $options = array() ] )

Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà. Les champs peuvent être indexés avec une direction (i.e. croissant ou décroissant) ou sur un type spécial (i.e. texte, géospatial, hashé).

Note:

Cette méthode utilise la commande de base de données » createIndexes lors de la communication avec MongoDB 2.6+. Pour les anciennes versions de base de données, la méthode va effectuer une opération d'insertion sur la collection spéciale system.indexes.

Liste de paramètres

keys

Un tableau spécifiant les champs de l'index, sous forme de clés. Pour chaque champ, la valeur est soit la direction de l'index, soit » le type d'index. Si la direction est spécifiée, utilisez 1 pour croissant, ou -1 pour décroissant.

options

Un tableau d'options pour la création de l'index. Toutes les options fournies seront passées au serveur ; voici une liste non-exhaustive des options actuellement disponibles :

  • "unique"

    Spécifiez TRUE pour créer un index unique. La valeur par défaut est FALSE. Cette option s'applique uniquement sur les indexes croissants/décroissants.

    Note:

    Lorsque MongoDB indexe un champ, si un document n'a pas une valeur pour ce champ, la valeur NULL sera indexée. Si plusieurs documents ne contiennent pas un champ, un index unique rejètera tout, sauf le premier de ces documents. L'option "sparse" peut être utilisée pour remédier à cela, sachant qu'il va éviter que les documents ne contenant pas ce champ ne soient indexés.

  • "sparse"

    Spécifiez TRUE pour créer un index clairsemé, qui n'indexe que des documents contenant un champ spécifié. La valeur par défaut est FALSE.

  • "expireAfterSeconds"

    La valeur de cette option doit spécifier le nombre de secondes après lequel un document doit être considéré comme expiré, et automatiquement supprimé de la collection. Cette option n'est compatible qu'avec des indexes sur un seul champ où le champ contient une valeur MongoDate.

    Note:

    Cette fonctionnalité est disponible depuis MongoDB 2.2+. Voir » l'expiration des données d'une collection en définissant un TTL pour plus d'informations.

  • "name"

    Un nom optionnel qui identifie de façon unique l'index.

    Note:

    Par défaut, le driver va générer un nom d'index basé sur le(s) champ(s) d'index, leur tri, ou leur type. Par exemple, un index calculé array("x" => 1, "y" => -1) sera nommé "x_1_y_-1" et un index géospacial array("loc" => "2dsphere") sera nommé "loc_2dsphere". Pour les indexes avec beaucoup de champs, il est possible que le nom généré puisse excéder la » limite des noms d'index MongoDB. L'option "name" peut être utilisée dans ce cas pour fournir un nom plus court.

  • "background"

    Construit l'index en arrière plan faisant ainsi que la construction de l'index ne bloquera pas les autres activités de la base de données. Spécifiez TRUE pour une construction en arrière plan. La valeur par défaut est FALSE.

    Avertissement

    Avant MongoDB 2.6.0, les constructions d'index sur les secondaires étaient exécutés comme des opérations de premier plan, sans respecter cette option. Voir » la construction d'index sur les jeux de réplication pour plus d'informations.

  • "socketTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la communication avec un socket. Si le serveur ne répond pas pendant cette période, une exception MongoCursorTimeoutException sera émise et il n'y a aucune façon de déterminer si le serveur gère actuellement l'écriture ou non. Une valeur de -1 peut être spécifiée pour bloquer indéfiniement. La valeur par défaut pour MongoClient est 30000 (30 secondes).

L'option suivante peut être utilisé avec MongoDB 2.6+ :

  • "maxTimeMS"

    Spécifie une limite cumulative de temps, en millisecondes, pour procéder à l'opération (n'inclut pas le temps d'inactivité). Si l'opération n'est pas terminée durant cette période, une exception MongoExecutionTimeoutException sera émise.

L'option suivante peut être utilisé avec les versions de MongoDB avant 2.8 :

  • "dropDups"

    Spécifiez TRUE pour forcer la création d'un index unique lorsque la collection peut contenir des valeurs dupliqués pour une même clé. MongoDB va indexer la première occurrence dans la clé et supprimer les documents suivants dans la collection qui contiennent une valeur dupliquée pour cette clé. La valeur par défaut est FALSE.

    Avertissement

    "dropDups" peut supprimer des données dans votre base de données. A utiliser avec une extrême attention.

    Note:

    Cette option n'est pas supporté sur MongoDB 2.8+. La création d'index sera refusé si la collection contient des clés dupliquées.

Les options suivantes peuvent être utilisées avec les versions de MongoDB avant 2.6 :

  • "w"

    Voir les préoccupatios d'écriture. La valeur par défaut pour MongoClient est 1.

  • "wTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la reconnaissance des préoccupations d'écriture.Ceci n'est applicable que lorsque "w" est supérieur à 1, sachant que le délai d'attente maximal est en relation avec la réplication. Si la préoccupation d'écriture n'est pas spécifiée dans la durée limite, une exception MongoCursorException sera émise. Une valeur de 0 peut être spécifiée pour un blocage permanent. La valeur par défaut pour MongoClient est 10000 (dix secondes).

Les options suivantes sont obsolètes, et ne doivent plus être utilisées :

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Alias obsolète pour "socketTimeoutMS".

  • "wtimeout"

    Alias obsolète pour "wTimeoutMS".

Valeurs de retour

Retourne un tableau contenant le statut de la création de l'index. Le tableau contient soit le succès de l'opération ("ok"), le nombre d'indexes avant et après l'opération ("numIndexesBefore" et "numIndexesAfter"), et si la collection de l'index a été créée ("createdCollectionAutomatically"). Si l'index existe déjà, et n'a pas été créé, un champ "note" peut être présent au lieu de "numIndexesAfter".

Avec MongoDB 2.4 et antérieurs, le statut du document n'est retourné que si la préoccupation d'écriture vaut au moins 1. Sinon, TRUE sera retourné. Les champs dans le statut du document sont différents, sauf pour le champ "ok" qui signale si la création de l'index a réussi. Les champs additionnels sont décrits dans la documentation de la méthode MongoCollection::insert().

Erreurs / Exceptions

Lance une exception MongoException si le nom de l'index est supérieur à 128 octets, ou si la spécification de l'index n'est pas un tableau.

Lance une exception MongoDuplicateKeyException si le serveur n'a pas réussi à créer l'index unique en raison d'un conflit de documents.

Lance une exception MongoResultException si le serveur n'a pas réussi à créer l'index en raison d'une erreur.

Lance une exception MongoCursorException si l'option "w" est définie, et que l'écriture échoue.

Lance une exception MongoCursorTimeoutException si l'option "w" est définie à une valeur supérieure à 1 et que l'opération prend plus de temps que MongoCursor::$timeout millisecondes à se terminer. Ceci ne va pas mettre fin à l'opération sur le serveur, ce n'est qu'un délai d'attente maximal côté client. L'unité pour MongoCollection::$wtimeout est la milliseconde.

Exemples

Exemple #1 Exemple avec MongoCollection::createIndex()

<?php

$c = new MongoCollection($db, 'foo');

// Crée un index sur 'x' croissant
$c->createIndex(array('x' => 1));

// Crée un index unique sur 'y'
$c->createIndex(array('y' => 1), array('unique' => true));

// Crée un index calculé sur 'za' croissant et sur 'zb' décroissant
$c->createIndex(array('za' => 1, 'zb' => -1));

?>

Exemple #2 Indexation géospatiale

Mongo supporte les indexes géospatiaux, qui vous permet de chercher des documents proches d'une localisation précise, ou dans un espace. L'exemple suivant crée un index géospatial sur le champ "loc" :

<?php

$collection->createIndex(array('loc' => '2dsphere'));

?>

Exemple #3 Exemple de suppression de doublons

<?php

$collection->insert(array('username' => 'joeschmoe'));
$collection->insert(array('username' => 'joeschmoe'));

/* La création d'index échoue, sachant que vous ne pouvez pas créer d'index unique
 * sur un champ lorsqu'un doublon existe.
 */
$collection->createIndex(array('username' => 1), array('unique' => 1));

/* MongoDB va supprimer le conflit de documents et autoriser
 * la création de l'index unique.
 */
$collection->createIndex(array('username' => 1), array('unique' => 1, 'dropDups' => 1));

/* Nous avons maintenant un index unique et une sous-séquence d'insertions avec le
 * même nom va échouer.
 */
$collection->insert(array('username' => 'joeschmoe'));

?>

Voir aussi

  • MongoCollection::deleteIndex() - Supprime un index de la collection
  • MongoCollection::deleteIndexes() - Supprime tous les index de cette collection
  • La documentation MongoDB sur les » indexes et les » types d'index.


Supprime un index de la collection

  • « MongoCollection::createIndex
  • MongoCollection::deleteIndexes »
  • PHP Manual
  • MongoCollection
  • Supprime un index de la collection

MongoCollection::deleteIndex

(PECL mongo >=0.9.0)

MongoCollection::deleteIndex — Supprime un index de la collection

Description

public array MongoCollection::deleteIndex ( string|array $keys )

Cette méthode est identique à:

<?php

public function deleteIndexes($keys) {
  $indexName = $this->toIndexString($keys);

  return $this->db->command(array(
    "deleteIndexes" => $this->getName(),
    "index" => $indexName,
  ));
}

?>

Chaque index se voit recevoir un nom unique lors de sa création. Il est souvent généré par le driver, en se basant sur la clé de l'index, et sur l'ordre ou le type de l'index, mais des noms personalisés peuvent aussi être spécifiés avec la méthode MongoCollection::createIndex() (option "name").

Malheureusement, la méthode MongoCollection::deleteIndex() ne peut supprimer les indexes possédant un nom personalisé en raison d'une compatibilité ascendante. Lorsqu'un argument est fourni, il est supposé être le nom d'un seul champ dans un index croissant (i.e. le nom "x_1" sera utilisé pour l'argument "x"). Si un tableau ou un objet est fourni, un nom d'index est généré comme si l'argument avait été passé à la méthode MongoCollection::createIndex().

Pour pouvoir supprimer un index possédant un nom personalisé avec le driver PHP, la commande de base de données deleteIndexes doit être utilisée. Actuellement, un index dont le nom est "myIndex" peut être supprimé avec le driver PHP en exécutant :

<?php

$db->command(array(
  "deleteIndexes" => $collection->getName(),
  "index" => "myIndex",
));

?>

Pour déterminer le nom d'un index avec le driver PHP, vous pouvez interroger la collection system.indexes de la base de données, et regarder le champ "name" de chaque résultat. Le champ "ns" indiquera la collection dont l'index fait parti.

Liste de paramètres

keys

Un tableau spécifiant les champs de l'index, comme clés. Pour chaque champ, la valeur est soit la direction de l'index, soit le » type d'index. Si la direction est spécifiée, la valeur 1 correspondra à un sens croissant, et la valeur -1, au sens décroissant.

Si une chaîne de caractères est fournie, on supposera qu'il s'agit du nom d'un seul champ d'un index croissant.

Valeurs de retour

Retourne la réponse de la base de données.

Exemples

Exemple #1 Exemple avec MongoCollection::deleteIndex()

This example passes the function string and array parameters.

<?php

$m = new MongoClient();
$c = $m->example->indices;

// crée et supprime un index
$c->createIndex(array("i"=>1));
$c->deleteIndex("i");

// crée et supprime un index multi-clé
$c->ensureIndex(array("j" => 1, "k" => 1));
$c->deleteIndex(array("j" => 1, "k" => 1));

?>

Voir aussi

  • MongoCollection::createIndex() - Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà
  • MongoCollection::deleteIndexes() - Supprime tous les index de cette collection
  • MongoCollection::toIndexString() - Convertit les clés spécifiant un index en une chaîne de caractères
  • La documentation MongoDB sur les » indexes et les » types d'indexes.


Supprime tous les index de cette collection

  • « MongoCollection::deleteIndex
  • MongoCollection::distinct »
  • PHP Manual
  • MongoCollection
  • Supprime tous les index de cette collection

MongoCollection::deleteIndexes

(PECL mongo >=0.9.0)

MongoCollection::deleteIndexes — Supprime tous les index de cette collection

Description

public array MongoCollection::deleteIndexes ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse de la base de données.

Exemples

Exemple #1 Exemple avec MongoCollection::deleteIndexes()

Cet exemple montre comme effacer tous les indexes depuis une collection et la réponse que nous devons attendre.

<?php

$collection = $mongo->my_db->articles;
$response = $collection->deleteIndexes();
print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [nIndexesWas] => 1
    [msg] => all indexes deleted for collection
    [ok] => 1
)

Voir aussi

  • MongoCollection::createIndex() - Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà
  • MongoCollection::deleteIndex() - Supprime un index de la collection


Retourne une liste de valeurs distinctes d'une collection pour la clé donnée

  • « MongoCollection::deleteIndexes
  • MongoCollection::drop »
  • PHP Manual
  • MongoCollection
  • Retourne une liste de valeurs distinctes d'une collection pour la clé donnée

MongoCollection::distinct

(PECL mongo >=1.2.11)

MongoCollection::distinct — Retourne une liste de valeurs distinctes d'une collection pour la clé donnée

Description

public array MongoCollection::distinct ( string $key [, array $query ] )

La commande distinct retourne une liste de valeurs distinctes d'une collection pour une clé donnée.

Liste de paramètres

key

La clé à utiliser.

query

Paramètres additionnels de la requête

Valeurs de retour

Retourne un tableau contenant les valeurs distinctes, ou FALSE si une erreur survient

Exemples

Exemple #1 Exemple avec MongoCollection::distinct()

<?php
$m = new Mongo;
$db = $m->selectDB("test");
$db->dropCollection("distinct");
$c = $db->distinct;

$c->insert(array("stuff" => "bar", "zip-code" => 10010));
$c->insert(array("stuff" => "foo", "zip-code" => 10010));
$c->insert(array("stuff" => "bar", "zip-code" => 99701), array("w" => 1));

$retval = $c->distinct("zip-code");
var_dump($retval);

$retval = $c->distinct("zip-code", array("stuff" => "foo"));
var_dump($retval);

$retval = $c->distinct("zip-code", array("stuff" => "bar"));
var_dump($retval);

?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  int(10010)
  [1]=>
  int(99701)
}
array(1) {
  [0]=>
  int(10010)
}
array(2) {
  [0]=>
  int(10010)
  [1]=>
  int(99701)
}

Exemple #2 Exemple avec MongoCollection::distinct() sur un document embarqué

<?php
$c->insert(array("user" => array("points" => 25)));
$c->insert(array("user" => array("points" => 31)));
$c->insert(array("user" => array("points" => 25)));

$retval = $c->distinct("user.points");
var_dump($retval);

$retval = $c->distinct("user.nonexisting");
var_dump($retval);
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  int(25)
  [1]=>
  int(31)
}
array(0) {
}


Supprime cette collection

  • « MongoCollection::distinct
  • MongoCollection::ensureIndex »
  • PHP Manual
  • MongoCollection
  • Supprime cette collection

MongoCollection::drop

(PECL mongo >=0.9.0)

MongoCollection::drop — Supprime cette collection

Description

public array MongoCollection::drop ( void )

Supprime cette collection et ses index.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse de la base de données.

Exemples

Exemple #1 Exemple avec MongoCollection::drop()

Cet exemple montre comment supprimer une collection et la réponse que nous devons attendre.

<?php

$collection = $mongo->my_db->articles;
$response = $collection->drop();
print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [nIndexesWas] => 1
    [msg] => all indexes deleted for collection
    [ns] => my_db.articles
    [ok] => 1
)


Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà

  • « MongoCollection::drop
  • MongoCollection::find »
  • PHP Manual
  • MongoCollection
  • Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà

MongoCollection::ensureIndex

(PECL mongo >=0.9.0)

MongoCollection::ensureIndex — Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà

Description

public bool MongoCollection::ensureIndex ( string|array $key|keys [, array $options = array() ] )
Avertissement

Cette méthode est obsolète depuis la version 1.5.0. Veuillez utiliser plutôt la méthode MongoCollection::createIndex().

Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà. Les champs peuvent être indexés avec une direction (i.e. croissant ou décroissant) ou avec un type spécial (e.g. text, geospatial, hashed).

Note:

Cette méthode utilisera la commande de base de données » createIndexes lors de la communication avec MongoDB 2.6+. Pour les versions antérieures de bases de données, la méthode va effectuer une opération d'insertion sur la collection spéciale system.indexes.

Liste de paramètres

keys

Un tableau spécifiant les champs d'index comme clés. Pour chaque champ, la valeur est soit la direction de l'index, soit le » type d'index. Si la direction est spécifiée, vous devez utiliser 1 pour le sens croissant, ou -1 pour le sens décroissant.

options

Un tableau d'options pour la création de l'index. Les options actuellement disponibles sont :

  • "unique"

    Spécifiez TRUE pour créer un index unique. La valeur par défaut est FALSE. Cette option s'applique uniquement sur les indexes croissants/décroissants.

    Note:

    Lorsque MongoDB indexe un champ, si un document n'a pas une valeur pour ce champ, la valeur NULL sera indexée. Si plusieurs documents ne contiennent pas un champ, un index unique rejètera tout, sauf le premier de ces documents. L'option "sparse" peut être utilisée pour remédier à cela, sachant qu'il va éviter que les documents ne contenant pas ce champ ne soient indexés.

  • "sparse"

    Spécifiez TRUE pour créer un index clairsemé, qui n'indexe que des documents contenant un champ spécifié. La valeur par défaut est FALSE.

  • "expireAfterSeconds"

    La valeur de cette option doit spécifier le nombre de secondes après lequel un document doit être considéré comme expiré, et automatiquement supprimé de la collection. Cette option n'est compatible qu'avec des indexes sur un seul champ où le champ contient une valeur MongoDate.

    Note:

    Cette fonctionnalité est disponible depuis MongoDB 2.2+. Voir » l'expiration des données d'une collection en définissant un TTL pour plus d'informations.

  • "name"

    Un nom optionnel qui identifie de façon unique l'index.

    Note:

    Par défaut, le driver va générer un nom d'index basé sur le(s) champ(s) d'index, leur tri, ou leur type. Par exemple, un index calculé array("x" => 1, "y" => -1) sera nommé "x_1_y_-1" et un index géospacial array("loc" => "2dsphere") sera nommé "loc_2dsphere". Pour les indexes avec beaucoup de champs, il est possible que le nom généré puisse excéder la » limite des noms d'index MongoDB. L'option "name" peut être utilisée dans ce cas pour fournir un nom plus court.

  • "background"

    Construit l'index en arrière plan faisant ainsi que la construction de l'index ne bloquera pas les autres activités de la base de données. Spécifiez TRUE pour une construction en arrière plan. La valeur par défaut est FALSE.

    Avertissement

    Avant MongoDB 2.6.0, les constructions d'index sur les secondaires étaient exécutés comme des opérations de premier plan, sans respecter cette option. Voir » la construction d'index sur les jeux de réplication pour plus d'informations.

  • "socketTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la communication avec un socket. Si le serveur ne répond pas pendant cette période, une exception MongoCursorTimeoutException sera émise et il n'y a aucune façon de déterminer si le serveur gère actuellement l'écriture ou non. Une valeur de -1 peut être spécifiée pour bloquer indéfiniement. La valeur par défaut pour MongoClient est 30000 (30 secondes).

Les options suivants peuvent être utilisées avec MongoDB 2.6+ :

  • "maxTimeMS"

    Spécifie une limite cumulative de temps, en millisecondes, pour procéder à l'opération (n'inclut pas le temps d'inactivité). Si l'opération n'est pas terminée durant cette période, une exception MongoExecutionTimeoutException sera émise.

Les options suivantes peuvent être utilisées avec les versions MongoDB avant 2.8 :

  • "dropDups"

    Spécifiez TRUE pour forcer la création d'un index unique lorsque la collection peut contenir des valeurs dupliqués pour une même clé. MongoDB va indexer la première occurrence dans la clé et supprimer les documents suivants dans la collection qui contiennent une valeur dupliquée pour cette clé. La valeur par défaut est FALSE.

    Avertissement

    "dropDups" peut supprimer des données dans votre base de données. A utiliser avec une extrême attention.

    Note:

    Cette option n'est pas supporté sur MongoDB 2.8+. La création d'index sera refusé si la collection contient des clés dupliquées.

Les options suivantes peuvent être utilisées avec les versions MongoDB avant 2.6 :

  • "w"

    Voir les préoccupatios d'écriture. La valeur par défaut pour MongoClient est 1.

  • "wTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la reconnaissance des préoccupations d'écriture.Ceci n'est applicable que lorsque "w" est supérieur à 1, sachant que le délai d'attente maximal est en relation avec la réplication. Si la préoccupation d'écriture n'est pas spécifiée dans la durée limite, une exception MongoCursorException sera émise. Une valeur de 0 peut être spécifiée pour un blocage permanent. La valeur par défaut pour MongoClient est 10000 (dix secondes).

Les options suivantes sont obsolètes et ne devraient plus être utilisées :

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Alias obsolète pour "socketTimeoutMS".

  • "wtimeout"

    Alias obsolète pour "wTimeoutMS".

Valeurs de retour

Retourne un tableau contenant le statut de la création de l'index. Le tableau contient une indication du succès de l'opération ("ok"), le nombre d'indexes avant et après l'opération ("numIndexesBefore" et "numIndexesAfter"), et si la collection auquelle appartient l'index a été créée ("createdCollectionAutomatically"). Si l'index existait déjà, et n'avait donc pas besoin d'être créé, un champ "note" peut être présent au lieu du champ "numIndexesAfter".

Avec MongoDB 2.4 et antérieures, le statut du document n'est retourné que si le write concern vaut au moins 1. Sinon, TRUE est retourné. Les champs dans le statut du document sont différents, sauf pour le champ "ok", qui signale le succès de la création de l'index. Les champs additionnels sont décrits dans la documentation de la méthode MongoCollection::insert().

Historique

Version | Description
1.5.0

Renommage de l'option "wtimeout" en "wTimeoutMS". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée.

Renommage de l'option "timeout" en "socketTimeoutMS". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée.

Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.

1.3.4 | Ajout de l'option "wtimeout".
1.3.0

Ajout de l'option "w".

Le paramètre options n'accepte plus de booléen pour signifier un index unique. A la place, vous devez utiliser la syntaxe array('unique' => true).

1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsque le paramètre options est de type scalar.
1.2.0 | Ajout de l'option "timeout".
1.0.11

L'option "safe" déclenchera le failover du primaire, si nécessaire.

MongoException sera envoyée si le nom de l'index (généré ou défini) est plus long que 128 octets.

1.0.5 | Ajout de l'option "name" pour écraser la création du nom de l'index.
1.0.2 | Le paramètre options passe de booléen à un tableau. En version Pre-1.0.2, le second paramètre était une valeur booléenne optionnelle spécifiant un index unique.

Erreurs / Exceptions

Emets une exception MongoException si le nom de l'index a une longueur supérieure à 128 octets, ou si la spécification de l'index n'est pas un tableau.

Emets une exception MongoDuplicateKeyException si le serveur n'a pas réussi à créer l'index en raison d'une conflit de documents.

Emets une exception MongoResultException si le serveur n'a pas réussi à créer l'index en raison d'une erreur interne.

Lance une exception MongoCursorException si l'option "w" est définie, et que l'écriture échoue.

Lance une exception MongoCursorTimeoutException si l'option "w" est définie à une valeur supérieure à 1 et que l'opération prend plus de temps que MongoCursor::$timeout millisecondes à se terminer. Ceci ne va pas mettre fin à l'opération sur le serveur, ce n'est qu'un délai d'attente maximal côté client. L'unité pour MongoCollection::$wtimeout est la milliseconde.

Exemples

Exemple #1 Exemple avec MongoCollection::ensureIndex()

<?php

$c = new MongoCollection($db, 'foo');

// crée un index sur 'x', croissant
$c->ensureIndex(array('x' => 1));

// crée un index unique sur 'y'
$c->ensureIndex(array('y' => 1), array('unique' => true));

// crée un index composé sur 'za', croissant, et sur 'zb', décroissant
$c->ensureIndex(array('za' => 1, 'zb' => -1));

?>

Exemple #2 indexation géospatiale

Mongo supporte l'indexation géospatiale, qui vous permet de rechercher des documents à côté d'une localisation fournie, ou dans un espace donné. L'exemple suivant crée un index géospatial sur le champ "loc" :

<?php

$collection->ensureIndex(array('loc' => '2dsphere'));

?>

Exemple #3 Exemple de suppression de données dupliquées

<?php

$collection->insert(array("username" => "joeschmoe"));
$collection->insert(array("username" => "joeschmoe"));

/*
 * La création d'index a échoué, vous ne pouvez pas créer d'index unique
 * sur une clé ne possédant pas de valeurs non-uniques
 */
$collection->ensureIndex(array("username" => 1), array("unique" => 1));

/*
 * La création d'index a réussi : un des documents est supprimé de la collection
 */
$collection->ensureIndex(array("username" => 1), array("unique" => 1, "dropDups" => 1));

/*
 * Maintenant que nous avons un index unique, les prochaines insertions
 * avec le même nom d'utilisateur (comme ci-dessous) échoueront
 */
$collection->insert(array("username" => "joeschmoe"));

?>

Voir aussi

  • MongoCollection::createIndex() - Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà
  • MongoCollection::deleteIndex() - Supprime un index de la collection
  • MongoCollection::deleteIndexes() - Supprime tous les index de cette collection
  • La documentation MongoDB sur les » indexes et les » types d'indexes.


Interroge une collection, et retourne comme jeu de résultats un objet MongoCursor

  • « MongoCollection::ensureIndex
  • MongoCollection::findAndModify »
  • PHP Manual
  • MongoCollection
  • Interroge une collection, et retourne comme jeu de résultats un objet MongoCursor

MongoCollection::find

(PECL mongo >=0.9.0)

MongoCollection::find — Interroge une collection, et retourne comme jeu de résultats un objet MongoCursor

Description

 public MongoCursor MongoCollection::find
  ([ array $query = array()
 [, array $fields = array()
]] )

Liste de paramètres

query

Le champ dans lequel la recherche va s'effectuer. Le langage de requête Mongo est assez extensible. Le driver PHP passera dans la plupart des cas la requête au serveur, aussi, la lecture de la documentation coeur de MongoDB sur la fonctionnalité » find pourrait être une bonne idée.

Avertissement

Assurez-vous que pour tous les opérateurs spéciaux de la requête (commençant par $) vous utilisez des guillemets simples, et ainsi, PHP ne tentera pas de remplacer "$exists" avec la valeur de la variable $exists.

fields

Les champs qui devront être retournés dans le résultat. Le tableau est au format array('fieldname' => true, 'fieldname2' => true). Le champ _id sera, quant à lui, toujours retourné.

Valeurs de retour

Retourne un curseur pour les résultats de recherche.

Exemples

Exemple #1 Exemple avec MongoCollection::find()

Cet exemple montre l'utilisation des options de recherche via un exemple simple.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'produce');

// recherche des fruits
$fruitQuery = array('Type' => 'Fruit');

$cursor = $collection->find($fruitQuery);
foreach ($cursor as $doc) {
    var_dump($doc);
}

// recherche des produits sucrés. Le goût est un enfant de "Details"
$sweetQuery = array('Details.Taste' => 'Sweet');
echo "Sucré \n";
$cursor = $collection->find($sweetQuery);
foreach ($cursor as $doc) {
    var_dump($doc);
}

?>

L'exemple ci-dessus va afficher :

array(4) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "50a87dd084f045a19b220dd6"
  }
  ["Name"]=>
  string(5) "Apple"
  ["Type"]=>
  string(5) "Fruit"
  ["Details"]=>
  array(2) {
    ["Taste"]=>
    string(5) "Sweet"
    ["Colour"]=>
    string(3) "Red"
  }
}
array(4) {
  ["_id"]=>
  object(MongoId)#8 (1) {
    ["$id"]=>
    string(24) "50a87de084f045a19b220dd7"
  }
  ["Name"]=>
  string(5) "Lemon"
  ["Type"]=>
  string(5) "Fruit"
  ["Details"]=>
  array(2) {
    ["Taste"]=>
    string(4) "Sour"
    ["Colour"]=>
    string(5) "Green"
  }
}

Sucré :
array(4) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "50a87dd084f045a19b220dd6"
  }
  ["Name"]=>
  string(5) "Apple"
  ["Type"]=>
  string(5) "Fruit"
  ["Details"]=>
  array(2) {
    ["Taste"]=>
    string(5) "Sweet"
    ["Colour"]=>
    string(3) "Red"
  }
}

Voir la classe MongoCursor pour plus d'informations sur le fonctionnement des curseurs.

Exemple #2 Exemple avec MongoCollection::find()

Cet exemple montre comment rechercher un intervalle.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

// recherche les documents dont l'identifiant est entre 5 < x < 20
$rangeQuery = array('x' => array( '$gt' => 5, '$lt' => 20 ));

$cursor = $collection->find($rangeQuery);
foreach ($cursor as $doc) {
    var_dump($doc);
}

?>

L'exemple ci-dessus va afficher :

array(2) {
  ["_id"]=>
  object(MongoId)#10 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000000"
  }
  ["x"]=>
  int(12)
}
array(2) {
  ["_id"]=>
  object(MongoId)#11 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000001"
  }
  ["x"]=>
  int(12)
}

Voyez MongoCursor pour plus d'informations sur le fonctionnement des curseurs.

Exemple #3 Exemple pour MongoCollection::find() en utilisant $where

Cet exemple montre comment chercher dans une collection en utilisant du code javascript pour réduire les résultats retournés.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

$js = "function() {
    return this.name == 'Joe' || this.age == 50;
}";
$cursor = $collection->find(array('$where' => $js));
foreach ($cursor as $doc) {
    var_dump($doc);
}

?>

L'exemple ci-dessus va afficher :

array(3) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000002"
  }
  ["name"]=>
  string(3) "Joe"
  ["age"]=>
  int(20)
}

Exemple #4 Exemple pour MongoCollection::find() utilisant $in

Cet exemple montre comment chercher dans une collection en utilisant l'opérateur $in.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

$cursor = $collection->find(array(
    'name' => array('$in' => array('Joe', 'Wendy'))
));

?>

L'exemple ci-dessus va afficher :

array(3) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000002"
  }
  ["name"]=>
  string(3) "Joe"
  ["age"]=>
  int(20)
}

Exemple #5 Récupération des résultats sous la forme d'un tableau

Cet exemple retourne un objet MongoCursor. Lors des débuts, il peut être plus confortable d'utiliser un tableau. Pour transformer un curseur en un tableau, utilisez la fonction iterator_to_array().

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

$cursor = $collection->find();
$array = iterator_to_array($cursor);

?>

L'exemple ci-dessus va afficher :

array(3) {
  ["4ebc40af10b89f5149000000"]=>
  array(2) {
    ["_id"]=>
    object(MongoId)#6 (1) {
      ["$id"]=>
      string(24) "4ebc40af10b89f5149000000"
    }
    ["x"]=>
    int(12)
  }
  ["4ebc40af10b89f5149000001"]=>
  array(2) {
    ["_id"]=>
    object(MongoId)#11 (1) {
      ["$id"]=>
      string(24) "4ebc40af10b89f5149000001"
    }
    ["x"]=>
    int(12)
  }
  ["4ebc40af10b89f5149000002"]=>
  array(3) {
    ["_id"]=>
    object(MongoId)#12 (1) {
      ["$id"]=>
      string(24) "4ebc40af10b89f5149000002"
    }
    ["name"]=>
    string(3) "Joe"
    ["age"]=>
    int(20)
  }
}

L'utilisation de la fonction iterator_to_array() force le driver à charger tous les résultats en mémoire, aussi, évitez d'utiliser cette fonction sur des jeux de résultats qui peuvent être plus grands que la mémoire disponible!

Aussi, certaines collections n'ont pas de champ _id. Si vous manipulez des collections ne possédans pas de champ _id, passez FALSE au second paramètre de iterator_to_array() (il n'essayera pas d'utiliser les valeurs innexistantes de _id comme clés).

Voir aussi

  • MongoCollection::findOne() - Interroge cette collection, retourne un seul élément
  • MongoCollection::insert() - Insère un document dans la collection
  • Documentation de MongoDB sur » find


Met à jour un document et le retourne

  • « MongoCollection::find
  • MongoCollection::findOne »
  • PHP Manual
  • MongoCollection
  • Met à jour un document et le retourne

MongoCollection::findAndModify

(PECL mongo >=1.3.0)

MongoCollection::findAndModify — Met à jour un document et le retourne

Description

public array MongoCollection::findAndModify ( array $query [, array $update [, array $fields [, array $options ]]] )

La méthode findAndModify modifie automatiquement un document et le retourne. Par défaut, le document retourné n'inclut pas les modifications effectuées lors de la mise à jour. Pour retourner le document avec les modifications effectuées lors de la mise à jour, utilisez la méthode avec l'option new.

Liste de paramètres

query

Les critères de recherche.

update

Les critères de mise à jour.

fields

Optionnellement, ne retourne que ces champs.

options

Un tableau d'options à appliquer, comme le fait de supprimer le document trouvé depuis la base de données et le retourner.

Option | Description
sort array | Détermine le document que l'opération va modifier si la requête sélectionne plusieurs documents. findAndModify va modifier le premier document suivant l'ordre spécifié par cet argument.
remove boolean | Optionnel si le champ update existe. Lorsque vaut TRUE, le document sélectionné sera supprimé. Par défaut, vaut FALSE.
update array | Optionnel, si le champ remove existe. Effectue une mise à jour du document sélectionné.
new boolean | Optionnel. Lorsque vaut TRUE, retourne le document modifié plutôt que l'original. La méthode findAndModify ignore l'option new pour les opérations de suppression. Par défaut, vaut FALSE.
upsert boolean | Optionnel. Utilisé en conjonction du champ update. Lorsque vaut TRUE, la méthode findAndModify crée un nouveau document si la requête retourne aucun document. Par défaut, vaut FALSE. En MongoDB 2.2, la méthode findAndModify retourne NULL lorsque upsert vaut TRUE.

Valeurs de retour

Retourne le document original, ou le document modifié lorsque new est défini.

Erreurs / Exceptions

Lance une exception MongoResultException en cas d'échec.

Exemples

Exemple #1 Exemple avec MongoCollection::findAndModify()

<?php
$m = new Mongo;
$col = $m->selectDB("test")->jobs;

$col->insert(array(
     "name" => "Next promo",
     "inprogress" => false,
     "priority" => 0,
     "tasks" => array( "select product", "add inventory", "do placement"),
) );

$col->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 1,
     "tasks" => array( "run sales report", "email report" )
) );

$col->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 2,
     "tasks" => array( "run marketing report", "email report" )
    ),
    array("w" => 1)
);

$retval = $col->findAndModify(
     array("inprogress" => false, "name" => "Biz report"),
     array('$set' => array('inprogress' => true, "started" => new MongoDate())),
     null,
     array(
        "sort" => array("priority" => -1),
        "new" => true,
    )
);

var_dump($retval);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(6) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "5091b5b244415e8cc3000002"
  }
  ["inprogress"]=>
  bool(true)
  ["name"]=>
  string(10) "Biz report"
  ["priority"]=>
  int(2)
  ["started"]=>
  object(MongoDate)#8 (2) {
    ["sec"]=>
    int(1351726514)
    ["usec"]=>
    int(925000)
  }
  ["tasks"]=>
  array(2) {
    [0]=>
    string(20) "run marketing report"
    [1]=>
    string(12) "email report"
  }
}

Exemple #2 Exemple avec MongoCollection::findAndModify() et un gestionnaire d'erreur

<?php
$m = new Mongo;
$col = $m->selectDB("test")->jobs;
try {
    $retval = $col->findAndModify(
         array("inprogress" => false, "name" => "Next promo"),
         array('$pop' => array("tasks" => -1)),
         array("tasks" => array('$pop' => array("stuff"))),
         array("new" => true)
    );
} catch(MongoResultException $e) {
    echo $e->getCode(), " : ", $e->getMessage(), "\n";
    var_dump($e->getDocument());
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

13097 : exception: Unsupported projection option: $pop
array(3) {
  ["errmsg"]=>
  string(46) "exception: Unsupported projection option: $pop"
  ["code"]=>
  int(13097)
  ["ok"]=>
  float(0)
}

Voir aussi

  • La documentation MongoDB sur » findAndModify


Interroge cette collection, retourne un seul élément

  • « MongoCollection::findAndModify
  • MongoCollection::__get »
  • PHP Manual
  • MongoCollection
  • Interroge cette collection, retourne un seul élément

MongoCollection::findOne

(PECL mongo >=0.9.0)

MongoCollection::findOne — Interroge cette collection, retourne un seul élément

Description

 public array MongoCollection::findOne
  ([ array $query = array()
 [, array $fields = array()
 [, array $options = array()
]]] )

Contrairement à la méthode MongoCollection::find(), cette méthode retournera seulement le premier résultat du jeu de données, et non un MongoCursor sur lequel on aurait pu boucler.

Liste de paramètres

query

Le champ dans lequel la recherche va s'effectuer. Le langage de requête MongoDB est relativement extensible. Le driver PHP passera dans la plupart des cas la requête au serveur, aussi, nous vous invitons à lire la documentation du coeur de MongoDB sur » find pour mieux comprendre le fonctionnement.

Avertissement

Assurez-vous que pour tous les opérateurs spéciaux de la requête (ceux commençant par $) vous utilisez des guillemets simples, ainsi, PHP ne tentera pas de remplacer "$exists" avec la valeur de la variable $exists.

fields

Les champs de résultat à retourner. Le tableau est au format array('fieldname' => true, 'fieldname2' => true). Le champ _id sera, quant à lui, toujours retourné.

options

Ce paramètre est un tableau associatif sous la forme array("nom" => <valeur>, ...). Les options actuellement supportées sont :

  • "maxTimeMS"

    Spécifie une limite cumulative de temps, en millisecondes, pour procéder à l'opération (n'inclut pas le temps d'inactivité). Si l'opération n'est pas terminée durant cette période, une exception MongoExecutionTimeoutException sera émise.

Valeurs de retour

Retourne les enregistrements qui correspondent aux critères, ou bien NULL.

Erreurs / Exceptions

Lance une exception MongoConnectionException si l'on ne peut joindre la base de données.

Historique

Version | Description
1.5.0 | Ajout de l'argument optionnel options.

Exemples

Exemple #1 MongoCollection::findOne() Cherche un document par son id.

Cet exemple montre comment récupérer un document dans une collection par son id.

<?php

$articles = $mongo->my_db->articles;

$article = $articles->findOne(array('_id' => new MongoId('47cc67093475061e3d9536d2')));

?>

Exemple #2 MongoCollection::findOne() Cherche un document par condition.

Cet exemple montre comment récupérer un document dans une collection au moyen d'un condition en limitant les champs retournés.

<?php

$users = $mongo->my_db->users;
$user = $users->findOne(array('username' => 'jwage'), array('password'));
print_r($user);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [_id] => MongoId Object
        (
        )

    [password] => test
)

Remarquez que même si le document possède un champ username, nous limitons les résultats au seul champ password.

Voir aussi

  • MongoCollection::find() - Interroge une collection, et retourne comme jeu de résultats un objet MongoCursor
  • MongoCollection::insert() - Insère un document dans la collection
  • Documentation coeur de MongoDB sur » find.


Récupère une collection

  • « MongoCollection::findOne
  • MongoCollection::getDBRef »
  • PHP Manual
  • MongoCollection
  • Récupère une collection

MongoCollection::__get

(PECL mongo >=1.0.2)

MongoCollection::__get — Récupère une collection

Description

public MongoCollection MongoCollection::__get ( string $name )

Une syntaxe simple pour récupérer une collection avec des noms séparés par des points (.). Si le nom d'une collection contient des caractères exotiques, vous devriez plutôt utiliser la méthode MongoDB::selectCollection().

<?php

$mongo = new MongoClient();

// les 2 lignes suivants sont identiques
$collection = $mongo->selectDB("foo")->selectCollection("bar.baz");
$collection = $mongo->foo->bar->baz;

?>

Liste de paramètres

name

La prochaine chaîne de caractères dans le nom de la collection.

Valeurs de retour

Retourne la collection.


Lit une référence de base de données

  • « MongoCollection::__get
  • MongoCollection::getIndexInfo »
  • PHP Manual
  • MongoCollection
  • Lit une référence de base de données

MongoCollection::getDBRef

(PECL mongo >=0.9.0)

MongoCollection::getDBRef — Lit une référence de base de données

Description

public array MongoCollection::getDBRef ( array $ref )

Liste de paramètres

ref

Une référence de base de données.

Valeurs de retour

Retourne le document de base de données désigné par la référence.

Exemples

Exemple #1 Exemple avec MongoCollection::getDBRef()

<?php

$playlists = $db->playlists;

$myList = $playlists->findOne(array('username' => 'me'));

// lit chaque chanson dans la liste
foreach ($myList['songlist'] as $songRef) {
    $song = $playlists->getDBRef($songRef);
    echo $song['title'] . "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Dazed and Confused
Ma na ma na
Bohemian Rhapsody

Dans l'exemple ci-dessus, chaque $songRef ressemble à quelque chose
comme :
    Array
    (
        [$ref] => songs
        [$id] => 49902cde5162504500b45c2c
    )

Voir aussi

  • MongoCollection::createDBRef() - Crée une référence de base de données


Retourne des informations sur les indexes de cette collection

  • « MongoCollection::getDBRef
  • MongoCollection::getName »
  • PHP Manual
  • MongoCollection
  • Retourne des informations sur les indexes de cette collection

MongoCollection::getIndexInfo

(PECL mongo >=0.9.0)

MongoCollection::getIndexInfo — Retourne des informations sur les indexes de cette collection

Description

public array MongoCollection::getIndexInfo ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne un tableau dont chaque élément décrit un index. Les éléments contiennent les valeurs name pour le nom de l'index, ns pour l'espace de noms (une combinaison du nom la base de données et du nom de la collection), et key contenant une liste de tous les champs de l'index ainsi que leur ordre de tri. D'autres valeurs peuvent être présentes pour les indexes spéciaux, comme unique ou sparse.

Exemples

Exemple #1 Exemple avec MongoCollection::find()

<?php

$m = new MongoClient();
$c = $m->selectCollection('test', 'venues');
var_dump($c->getIndexInfo());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  [0]=>
  array(4) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(1) {
      ["_id"]=>
      int(1)
    }
    ["name"]=>
    string(4) "_id_"
    ["ns"]=>
    string(11) "test.venues"
  }
  [1]=>
  array(4) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(1) {
      ["name"]=>
      float(1)
    }
    ["name"]=>
    string(6) "name_1"
    ["ns"]=>
    string(11) "test.venues"
  }
  [2]=>
  array(4) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(2) {
      ["type"]=>
      float(1)
      ["createdAt"]=>
      float(-1)
    }
    ["name"]=>
    string(19) "type_1_createdAt_-1"
    ["ns"]=>
    string(11) "test.venues"
  }
  [3]=>
  array(5) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(1) {
      ["location"]=>
      string(8) "2dsphere"
    }
    ["name"]=>
    string(17) "location_2dsphere"
    ["ns"]=>
    string(11) "test.venues"
    ["2dsphereIndexVersion"]=>
    int(2)
  }
}

Voir aussi

Documentation coeur MongoDB sur les » indexes vanilla et les » indexes géospatiaux.


Retourne le nom de cette collection

  • « MongoCollection::getIndexInfo
  • MongoCollection::getReadPreference »
  • PHP Manual
  • MongoCollection
  • Retourne le nom de cette collection

MongoCollection::getName

(PECL mongo >=0.9.0)

MongoCollection::getName — Retourne le nom de cette collection

Description

public string MongoCollection::getName ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de cette collection.

Exemples

Exemple #1 Exemple avec MongoCollection::getName()

<?php

$m = new MongoClient();
$c = $m->foo->bar->baz;

echo "Collection de travail " . $c->getName() . ".\n";

// Le nom complet de l'espace de noms est donné par la méthode
// MongoCollection::__toString()
echo "Espace de noms de travail $c.\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Collection de travail bar.baz.
Espace de noms de travail foo.bar.baz.


Récupère les préférences de lecture pour cette collection

  • « MongoCollection::getName
  • MongoCollection::getSlaveOkay »
  • PHP Manual
  • MongoCollection
  • Récupère les préférences de lecture pour cette collection

MongoCollection::getReadPreference

(PECL mongo >=1.3.0)

MongoCollection::getReadPreference — Récupère les préférences de lecture pour cette collection

Description

public array MongoCollection::getReadPreference ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne un tableau décrivant les préférences de lecture. Ce tableau contient les valeurs type contenant une chaîne représentant le mode de préférence de lecture (suivant les MongoClient), et tagsets contenant une liste de tous les critères du jeu de tags. Si aucun jeu de tags n'est spécifié, tagsets ne sera pas présent dans ce tableau.

Historique

Version | Description
1.3.3 | La valeur retournée a changé pour être consistante avec la méthode MongoCollection::setReadPreference(). La valeur type a été modifiée, passant d'un nombre à une chaîne de caractères, la valeur type_string a été supprimée, et la valeur tagsets exprime maintenant les tags sous la forme d'une paire clé/valeur, au lieu d'une chaîne dont les valeurs sont délimitées par une virgule.

Exemples

Exemple #1 Exemple avec MongoCollection::getReadPreference()

<?php

$m = new MongoClient();
$c = $m->test->users;
$c->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($c->getReadPreference());
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Voir aussi

  • La documentation sur les préférences de lecture.
  • MongoCollection::setReadPreference() - Définit les préférences de lecture pour cette collection


Récupère la configuration slaveOkay pour cette collection

  • « MongoCollection::getReadPreference
  • MongoCollection::getWriteConcern »
  • PHP Manual
  • MongoCollection
  • Récupère la configuration slaveOkay pour cette collection

MongoCollection::getSlaveOkay

(PECL mongo >=1.1.0)

MongoCollection::getSlaveOkay — Récupère la configuration slaveOkay pour cette collection

Description

public bool MongoCollection::getSlaveOkay ( void )

Reportez-vous à la section sur la requête de ce manuel pour plus d'informations sur la distribution de lecture sur les secondaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur de la configuration slaveOkay pour cette instance.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.

Voir aussi

  • Préférences de lecture
  • MongoCollection::getReadPreference() - Récupère les préférences de lecture pour cette collection


Récupère la préoccupation d'écriture de cette collection

  • « MongoCollection::getSlaveOkay
  • MongoCollection::group »
  • PHP Manual
  • MongoCollection
  • Récupère la préoccupation d'écriture de cette collection

MongoCollection::getWriteConcern

(PECL mongo >=1.5.0)

MongoCollection::getWriteConcern — Récupère la préoccupation d'écriture de cette collection

Description

public array MongoCollection::getWriteConcern ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne un tableau décrivant la préoccupation d'écriture. Le tableau contient la valeur w pour le niveau d'approbation (valeur entière), ou un mode sous forme de chaîne de caractères, et la valeur wtimeout indiquant le nombre maximal de millisecondes à attente le serveur pour satisfaire la préoccupation d'écriture.

Exemples

Exemple #1 Exemple avec MongoCollection::getWriteConcern()

<?php

$mc = new MongoClient('mongodb://localhost:27017', array('wTimeoutMS' => 500));
$coll = $mc->selectCollection('test', 'foo');
var_dump($coll->getWriteConcern());

$coll->setWriteConcern(1, 1000);
var_dump($coll->getWriteConcern());
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(500)
}
array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(1000)
}

Voir aussi

  • La documentation sur les préoccupations d'écriture.
  • MongoCollection::setWriteConcern() - Défini la préoccupation d'écriture pour cette base de données


Effecture une opération de regroupement

  • « MongoCollection::getWriteConcern
  • MongoCollection::insert »
  • PHP Manual
  • MongoCollection
  • Effecture une opération de regroupement

MongoCollection::group

(PECL mongo >=0.9.2)

MongoCollection::group — Effecture une opération de regroupement

Description

public array MongoCollection::group ( mixed $keys , array $initial , MongoCode $reduce [, array $options = array() ] )

Liste de paramètres

keys

Les champs avec lesquels faire le regroupement. Si un tableau ou un objet non-code est passé, ce sera la clé utilisée pour grouper les résultats.

1.0.4+: Si keys est une instance de MongoCode, keys sera considéré comme une fonction qui retourne la clé pour effectuer le regroupement (voir l'exemple ci-dessous sur le passage d'une fonction keys).

initial

Valeur initiales des compteurs d'agrégation.

reduce

Fonction acceptant deux arguments (le document courant et l'agrégation à ce point) et effectue l'agrégation.

options

Paramètres optionnels pour la commande de groupe. Les options accéptées sont:

  • "condition"

    Critère pour inclure un document dans l'agrégation.

  • "finalize"

    Fonction appelée une fois par clé unique qui prend le rendu final de la fonction de réduction.

  • "maxTimeMS"

    Spécifie une limite cumulative de temps, en millisecondes, pour procéder à l'opération (n'inclut pas le temps d'inactivité). Si l'opération n'est pas terminée durant cette période, une exception MongoExecutionTimeoutException sera émise.

Valeurs de retour

Retourne un tableau contenant les résultats.

Historique

Version | Description
1.5.0 | Ajout de l'option "maxTimeMS".
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsque le paramètre options est de type scalar.

Exemples

Exemple #1 Exemple avec MongoCollection::group()

Cet exemple regroupe des documents par catégorie et crée une liste de noms à l'intérieur des catégories

<?php

$collection->insert(array("category" => "fruit", "name" => "apple"));
$collection->insert(array("category" => "fruit", "name" => "peach"));
$collection->insert(array("category" => "fruit", "name" => "banana"));
$collection->insert(array("category" => "veggie", "name" => "corn"));
$collection->insert(array("category" => "veggie", "name" => "broccoli"));

$keys = array("category" => 1);

$initial = array("items" => array());

$reduce = "function (obj, prev) { prev.items.push(obj.name); }";

$g = $collection->group($keys, $initial, $reduce);

echo json_encode($g['retval']);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

[{"category":"fruit","items":["apple","peach","banana"]},{"category":"veggie","items":["corn","broccoli"]}]

Exemple #2 Exemple avec MongoCollection::group()

Cet exemple n'utilise aucune clé, donc chaque document sera dans son propre groupe. Il y a aussi une condition: seuls les documents qui correspondent à cette condition seront traités par la fonction de regroupement.

$collection->save(array("a" => 2));
$collection->save(array("b" => 5));
$collection->save(array("a" => 1));

// Utilisation de tous les champs
$keys = array();

// Défini les valeurs initiales
$initial = array("count" => 0);

// Fonction JavaScript pour traitement
$reduce = "function (obj, prev) { prev.count++; }";

// N'utilisez que les documents où le champ "a" est plus grand que 1
$condition = array('condition' => array("a" => array( '$gt' => 1)));

$g = $collection->group($keys, $initial, $reduce, $condition);

var_dump($g);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  ["retval"]=>
  array(1) {
    [0]=>
    array(1) {
      ["count"]=>
      float(1)
    }
  }
  ["count"]=>
  float(1)
  ["keys"]=>
  int(1)
  ["ok"]=>
  float(1)
}

Exemple #3 Passer une fonction keys

Si vous voulez grouper par quelque chose d'autre qu'un nom de champ, vous pouvez passer une fonction comme premier paramètre à la méthode MongoCollection::group() et elle sera exécutée sur chacun des documents. La valeur retournée de cette fonction sera utilisée comme valeur de regroupement.

Cet exemple montre comment regrouper par le numéro du champ, modulo 4.

<?php

$c->group(new MongoCode('function(doc) { return {mod : doc.num % 4}; }'),
     array("count" => 0),
     new MongoCode('function(current, total) { total.count++; }'));

?>


Insère un document dans la collection

  • « MongoCollection::group
  • MongoCollection::parallelCollectionScan »
  • PHP Manual
  • MongoCollection
  • Insère un document dans la collection

MongoCollection::insert

(PECL mongo >=0.9.0)

MongoCollection::insert — Insère un document dans la collection

Description

public bool|array MongoCollection::insert ( array|object $document [, array $options = array() ] )

Toutes les chaînes envoyées à la base de données doivent être en UTF-8. Si une chaîne n'est pas UTF-8, une exception MongoException sera émise. Pour insérer (ou chercher) une chaîne non-UTF-8, utilisez la méthode MongoBinData.

Liste de paramètres

document

Un tableau ou un objet. Si un objet est utilisé, ces propriétés ne doivent être ni protégées, ni privées.

Note:

Si le paramètre n'a pas de clé _id ou de propriété, une nouvelle instance MongoId sera créée et utilisée. Ce comportement spécial ne signifie pas que le paramètre est passé par référence.

options

Un tableau d'options pour l'opération d'insertion. Les options actuellement disponibles sont :

  • "fsync"

    Booléen, par défaut à FALSE. Si l'historisation est activée, il fonctionne exactement comme "j". Si l'historisation n'est pas activée, l'opération en écriture sera bloquante tant qu'elle ne sera pas synchronisé sur les fichiers de base de données du disque. Si vaut TRUE, une insertion reconnue devient implicite, et cette option va écraser la configuration "w" à 0.

    Note: Si l'historisation est activée, les utilisateurs sont vivement encouragés à utiliser l'option "j" au lieu de "fsync". N'utilisez pas "fsync" et "j" en même temps, ou une erreur sera produite.

  • "j"

    Booléen, par défaut à FALSE. Force les opérations en écriture a être bloquantes tant qu'elles ne sont pas synchronisées dans le journal du disque. Si vaut TRUE, une écriture reconnue est implicite, et cette option va écraser la configuration "w" à 0.

    Note: Si cette option est utilisée, et que l'historisation est désactivée, MongoDB 2.6+ va lancer une erreur, et l'écriture échouera ; les anciennes versions du serveur vont simplement ignorer cette ooption.

  • "socketTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la communication avec un socket. Si le serveur ne répond pas pendant cette période, une exception MongoCursorTimeoutException sera émise et il n'y a aucune façon de déterminer si le serveur gère actuellement l'écriture ou non. Une valeur de -1 peut être spécifiée pour bloquer indéfiniement. La valeur par défaut pour MongoClient est 30000 (30 secondes).

  • "w"

    Voir les préoccupatios d'écriture. La valeur par défaut pour MongoClient est 1.

  • "wTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la reconnaissance des préoccupations d'écriture.Ceci n'est applicable que lorsque "w" est supérieur à 1, sachant que le délai d'attente maximal est en relation avec la réplication. Si la préoccupation d'écriture n'est pas spécifiée dans la durée limite, une exception MongoCursorException sera émise. Une valeur de 0 peut être spécifiée pour un blocage permanent. La valeur par défaut pour MongoClient est 10000 (dix secondes).

Les options suivantes sont obsolètes, et ne devraient plus être utilisées :

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Alias obsolète pour "socketTimeoutMS".

  • "wtimeout"

    Alias obsolète pour "wTimeoutMS".

Valeurs de retour

Retourne un tableau contenant le statut de l'insertion si l'option "w" est définie. Sinon, retourne TRUE si le tableau inséré n'est pas vide (une exception MongoException sera lancée si le tableau inséré est vide).

Si un tableau est retourné, les clés suivantes peuvent être présentes :

ok

Doit toujours valoir 1 (à moins que last_error échoue).

err

Si ce champ est non-nul, une erreur est survenue lors de la dernière opération. Si ce champ est défini, il sera une chaîne de caractères décrivant l'erreur survenue.

code

Si une erreur de base de données est survenue, le code erreur de cette erreur sera passé au client.

errmsg

Ce champ est défini si quelque chose a échoué avec une commande de base de données. Il est couplé avec ok qui vaudra alors 0. Par exemple, si w est défini et que le délai maximal d'attente est atteint, errmsg sera défini à "timed out waiting for slaves" et ok vaudra 0. Si ce champ est défini, il sera une chaîne de caractères décrivant l'erreur survenue.

n

Si la dernière opération était une mise à jour, un upsert ou une suppression, le nombre d'objets affectés sera retourné. Pour les opérations d'insertion, cette valeur sera toujours de 0.

wtimeout

Si l'option précédente a expiré en attendant la réplication.

waited

Le temps que l'opération doit attendre avant d'expirer.

wtime

Si w a été défini et que l'opération réussit, ce sera le temps prit pour la réplication vers les w serveurs.

upserted

Si un upsert survient, ce champ contiendra le champ _id du nouvel enregistrement. Pour les upserts, soit ce champ, soit le champ updatedExisting sera présent (à moins qu'une erreur ne survienne).

updatedExisting

Si un upsert met à jour un élément existant, ce champ vaudra TRUE. Pour les upserts, soit ce champ, soit le champ upserted sera présent (à moins qu'une erreur ne survienne).

Erreurs / Exceptions

Lance une exception MongoCursorTimeoutException si le document inséré est vide ou s'il contient des clés d'une longueur de zéro. Le fait de tenter d'insérer un objet avec des propriétés protégées ou privées causera une erreur de type "clé d'une longueur zéro".

Lance une exception MongoCursorException si l'option "w" est définie, et que l'écriture échoue.

Lance une exception MongoCursorTimeoutException si l'option "w" est définie à une valeur supérieure à 1 et que l'opération prend plus de temps que MongoCursor::$timeout millisecondes à se terminer. Ceci ne va pas mettre fin à l'opération sur le serveur, ce n'est qu'un délai d'attente maximal côté client. L'unité pour MongoCollection::$wtimeout est la milliseconde.

Historique

Version | Description
1.5.0

Ajout de l'option "wTimeoutMS", qui remplace "wtimeout". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée.

Ajout de l'option "socketTimeoutMS", qui remplace "timeout". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée.

Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.

1.3.4 | Ajout de l'option "wtimeout".
1.3.0

Ajout de l'option "w".

Le paramètre options n'accepte plus de booléen pour indiquer une écriture reconnue. A la place, utilisez la syntaxe array('w' => 1) (comportement par défaut de MongoClient).

1.2.0 | Ajout de l'option "timeout".
1.0.11 | Se déconnecte lors d'erreurs "not master" si "safe" est utilisé.
1.0.9

Ajout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés).

Ajotu de l'option "fsync".

Le type retourné a changé. C'est maintenant un tableau contenant les informations d'erreur si l'option "safe" est utilisée, sinon, c'est un booléen, comme auparavant.

1.0.2 | Modification du second paramètre en un tableau d'options. Avant la version 1.0.2, le second paramètre était un booléen indiquant l'option "safe".
1.0.1 | Lance une exception MongoCursorException si l'option "safe" est définie et que l'insertion échoue.

Exemples

Exemple #1 Exemple avec MongoCollection::insert() _id

Un champ _id sera ajouté au document inséré s'il n'est pas présent. Suivant comment le paramètre est passé, un _id généré peut ou non être disponible pour le code appelant.

<?php

$m = new MongoClient();
$collection = $m->selectCollection('test', 'phpmanual');

// Si un tableau litéral est utilisé, il n'y a aucun moyen d'accéder à l'_id généré
$collection->insert(array('x' => 1));

// L'_id est disponible pour un tableau passé par valeur
$a = array('x' => 2);
$collection->insert($a);
var_dump($a);

// L'_id n'est pas disponible sur un tableau passé par référence
$b = array('x' => 3);
$ref = &$b;
$collection->insert($ref);
var_dump($ref);

// L'_id est disponible si la fonction ne déclenche pas de copy-on-write
function insert_no_cow($collection, $document)
{
    $collection->insert($document);
}

$c = array('x' => 4);
insert_no_cow($collection, $c);
var_dump($c);

// L'_id n'est pas disponible si la fonction déclenche un copy-on-write
function insert_cow($collection, $document)
{
    $document['y'] = 1;
    $collection->insert($document);
}

$d = array('x' => 5);
insert_cow($collection, $d);
var_dump($d);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["x"]=>
  int(2)
  ["_id"]=>
  object(MongoId)#4 (0) {
  }
}
array(1) {
  ["x"]=>
  int(3)
}
array(2) {
  ["x"]=>
  int(4)
  ["_id"]=>
  object(MongoId)#5 (0) {
  }
}
array(1) {
  ["x"]=>
  int(5)
}

Exemple #2 Exemple d'une écriture reconnue avec MongoCollection::insert()

Cet exemple montre l'insertion de 2 éléments avec le même _id, ce qui entraine l'émission d'une exception MongoCursorException vu que le paramètre w a été défini.

<?php

$person = array("name" => "Joe", "age" => 20);
$collection->insert($person);

// Maintenant, $person a un champ _id, aussi, si vous le sauvegardez à nouveau,
// une exception sera émise
try {
    $collection->insert($person, array("w" => 1));
} catch(MongoCursorException $e) {
    echo "Vous ne pouvez pas sauvegarder la même personne 2 fois !\n";
}

?>

Voir aussi

  • MongoCollection::batchInsert() - Insère plusieurs documents dans la collection
  • MongoCollection::update() - Modifie les enregistrements
  • MongoCollection::find() - Interroge une collection, et retourne comme jeu de résultats un objet MongoCursor
  • MongoCollection::remove() - Supprime un enregistrement d'une collection
  • Documentation de MongoDB » concernant insert.


Retourne un tableau de curseurs pour parcourir une collection complète en parallèle

  • « MongoCollection::insert
  • MongoCollection::remove »
  • PHP Manual
  • MongoCollection
  • Retourne un tableau de curseurs pour parcourir une collection complète en parallèle

MongoCollection::parallelCollectionScan

(PECL mongo >=1.5.0)

MongoCollection::parallelCollectionScan — Retourne un tableau de curseurs pour parcourir une collection complète en parallèle

Description

public array[MongoCommandCursor] MongoCollection::parallelCollectionScan ( int $num_cursors )

Cette méthode retourne un tableau d'un maximum de num_cursors curseurs. Une itération d'un des curseurs retournés retournera un jeu partiel de documents de la collection. Une itération sur tous les curseurs retournés retournera tous les documents de la collection.

Cette méthode est un gestionnaire de la commande parallelCollectionScan MongoDB.

Liste de paramètres

num_cursors

Le nombre de curseurs à demander au serveur. Notez que le serveur peut retourner moins de curseurs que demandé.

Valeurs de retour

Retourne un tableau d'objets MongoCommandCursor.

Exemples

Exemple #1 Exemple avec MongoCollection::parallelCollectionScan()

Retourne tous les documents d'une collection en utilisant plusieurs curseurs.

<?php
$m = new MongoClient;
$c = $m->demo->cities;

/* Demande 3 curseurs */
$cursors = $c->parallelCollectionScan( 3 );

/* Ajoute tous les curseurs à l'itérateur multiple */
$mi = new MultipleIterator( MultipleIterator::MIT_NEED_ANY );
foreach ( $cursors as $cursor )
{
    $mi->attachIterator( $cursor );
}

/* Parcours tous les curseurs associés */
foreach ( $mi as $items )
{
    foreach ( $items as $item )
    {
        if ( $item !== NULL )
        {
            echo $item['name'], "\n";
        }
    }
}
?>

Voir aussi

  • MultipleIterator
  • MongoCommandCursor
  • MongoDB::command() - Exécute une commande de base de données


Supprime un enregistrement d'une collection

  • « MongoCollection::parallelCollectionScan
  • MongoCollection::save »
  • PHP Manual
  • MongoCollection
  • Supprime un enregistrement d'une collection

MongoCollection::remove

(PECL mongo >=0.9.0)

MongoCollection::remove — Supprime un enregistrement d'une collection

Description

 public bool|array MongoCollection::remove
  ([ array $criteria = array()
 [, array $options = array()
]] )

Liste de paramètres

criteria

Critères de requête pour le document à supprimer.

options

Un tableau d'options pour l'opération de suppression. Les options actuellement disponibles sont :

  • "w"

    Voir les préoccupatios d'écriture. La valeur par défaut pour MongoClient est 1.

  • "justOne"

    Spécifier TRUE pour limiter la suppression à un seul document. Si FALSE est fourni, ou omis, alors tous les documents correspondants aux critères seront supprimés.

  • "fsync"

    Booléen, par défaut à FALSE. Si l'historisation est activée, il fonctionne exactement comme "j". Si l'historisation n'est pas activée, l'opération en écriture sera bloquante tant qu'elle ne sera pas synchronisé sur les fichiers de base de données du disque. Si vaut TRUE, une insertion reconnue devient implicite, et cette option va écraser la configuration "w" à 0.

    Note: Si l'historisation est activée, les utilisateurs sont vivement encouragés à utiliser l'option "j" au lieu de "fsync". N'utilisez pas "fsync" et "j" en même temps, ou une erreur sera produite.

  • "j"

    Booléen, par défaut à FALSE. Force les opérations en écriture a être bloquantes tant qu'elles ne sont pas synchronisées dans le journal du disque. Si vaut TRUE, une écriture reconnue est implicite, et cette option va écraser la configuration "w" à 0.

    Note: Si cette option est utilisée, et que l'historisation est désactivée, MongoDB 2.6+ va lancer une erreur, et l'écriture échouera ; les anciennes versions du serveur vont simplement ignorer cette ooption.

  • "socketTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la communication avec un socket. Si le serveur ne répond pas pendant cette période, une exception MongoCursorTimeoutException sera émise et il n'y a aucune façon de déterminer si le serveur gère actuellement l'écriture ou non. Une valeur de -1 peut être spécifiée pour bloquer indéfiniement. La valeur par défaut pour MongoClient est 30000 (30 secondes).

  • "w"

    Voir les préoccupatios d'écriture. La valeur par défaut pour MongoClient est 1.

  • "wTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la reconnaissance des préoccupations d'écriture.Ceci n'est applicable que lorsque "w" est supérieur à 1, sachant que le délai d'attente maximal est en relation avec la réplication. Si la préoccupation d'écriture n'est pas spécifiée dans la durée limite, une exception MongoCursorException sera émise. Une valeur de 0 peut être spécifiée pour un blocage permanent. La valeur par défaut pour MongoClient est 10000 (dix secondes).

Les options suivantes sont obsolètes et ne devraient plus être utilisées :

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Alias obsolète pour "socketTimeoutMS".

  • "wtimeout"

    Alias obsolète pour "wTimeoutMS".

Valeurs de retour

Retourne un tableau contenant le statut de l'effacement si l'option "w" est définie. Sinon, retourne TRUE.

Les champs de ce tableau sont décrits dans la documentation de la méthode MongoCollection::insert().

Erreurs / Exceptions

Lance une exception MongoCursorException si l'option "w" est définie, et que l'écriture échoue.

Lance une exception MongoCursorTimeoutException si l'option "w" est définie à une valeur supérieure à 1 et que l'opération prend plus de temps que MongoCursor::$timeout millisecondes à se terminer. Ceci ne va pas mettre fin à l'opération sur le serveur, ce n'est qu'un délai d'attente maximal côté client. L'unité pour MongoCollection::$wtimeout est la milliseconde.

Historique

Version | Description
1.5.0

Ajout de l'option "wTimeoutMS", qui remplace l'option "wtimeout". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée.

Ajout de l'option "socketTimeoutMS", qui remplace l'option "timeout". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée.

Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.

1.3.4 | Ajout de l'option "wtimeout".
1.3.0

Ajout de l'option "w".

Le paramètre options n'accepte plus de booléen pour indiquer "justOne". A la place, utilisez la syntaxe array('justOne' => true).

1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsque le paramètre options est de type scalar.
1.2.0 | Ajout de l'option "timeout".
1.0.11 | Se déconnecte lors d'erreurs "not master" si "safe" est utilisé.
1.0.9

Ajout de la capacité de passer des entiers à l'option "safe" (n'acceptaient que des booléens avant).

Ajout de l'option "fsync".

Le type retourné a été modifié en un tableau contenant les informations de l'erreur si l'option "safe" est utilisée, sinon, ce sera un booléen comme auparavant.

1.0.5 | Modification du second paramètre en un tableau d'options. Pre-1.0.5, le second paramètre était un booléen indiquant l'option "safe".

Exemples

Exemple #1 Exemple avec MongoCollection::remove() et justOne

<?php

$radioactive = $db->radioactive;

// compte la quantité de plutonium
$remaining = $radioactive->count(array('type' => 94));

$halflife = $remaining/2;

// Suppression de la moitié
while ($halflife > 0) {
    $radioactive->remove(array('type' => 94), array("justOne" => true));
    $halflife--;
}

?>

Voir aussi

  • MongoCollection::insert() - Insère un document dans la collection
  • MongoCollection::update() - Modifie les enregistrements
  • Documentation de MongoDB » concernant remove.


Sauvegarde un document dans une collection

  • « MongoCollection::remove
  • MongoCollection::setReadPreference »
  • PHP Manual
  • MongoCollection
  • Sauvegarde un document dans une collection

MongoCollection::save

(PECL mongo >=0.9.0)

MongoCollection::save — Sauvegarde un document dans une collection

Description

public mixed MongoCollection::save ( array|object $document [, array $options = array() ] )

Si l'objet est déjà dans la base, modifie la base et sinon, insère l'objet.

Liste de paramètres

document

Un tableau ou un objet à sauvegarder. Si un objet est utilisé, ces propriétés ne doivent pas être protégées, ni privées.

Note:

Si le paramètre n'a pas de clé _id, ni de propriété, une nouvelle instance MongoId sera créée et utilisée. Voir la méthode MongoCollection::insert() pour plus d'informations quant à ce comportement.

options

Options pour la sauvegarde.

  • "fsync"

    Booléen, par défaut à FALSE. Si l'historisation est activée, il fonctionne exactement comme "j". Si l'historisation n'est pas activée, l'opération en écriture sera bloquante tant qu'elle ne sera pas synchronisé sur les fichiers de base de données du disque. Si vaut TRUE, une insertion reconnue devient implicite, et cette option va écraser la configuration "w" à 0.

    Note: Si l'historisation est activée, les utilisateurs sont vivement encouragés à utiliser l'option "j" au lieu de "fsync". N'utilisez pas "fsync" et "j" en même temps, ou une erreur sera produite.

  • "j"

    Booléen, par défaut à FALSE. Force les opérations en écriture a être bloquantes tant qu'elles ne sont pas synchronisées dans le journal du disque. Si vaut TRUE, une écriture reconnue est implicite, et cette option va écraser la configuration "w" à 0.

    Note: Si cette option est utilisée, et que l'historisation est désactivée, MongoDB 2.6+ va lancer une erreur, et l'écriture échouera ; les anciennes versions du serveur vont simplement ignorer cette ooption.

  • "socketTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la communication avec un socket. Si le serveur ne répond pas pendant cette période, une exception MongoCursorTimeoutException sera émise et il n'y a aucune façon de déterminer si le serveur gère actuellement l'écriture ou non. Une valeur de -1 peut être spécifiée pour bloquer indéfiniement. La valeur par défaut pour MongoClient est 30000 (30 secondes).

  • "w"

    Voir les préoccupatios d'écriture. La valeur par défaut pour MongoClient est 1.

  • "wtimeout"

    Alias obsolète pour "wTimeoutMS".

  • "wTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la reconnaissance des préoccupations d'écriture.Ceci n'est applicable que lorsque "w" est supérieur à 1, sachant que le délai d'attente maximal est en relation avec la réplication. Si la préoccupation d'écriture n'est pas spécifiée dans la durée limite, une exception MongoCursorException sera émise. Une valeur de 0 peut être spécifiée pour un blocage permanent. La valeur par défaut pour MongoClient est 10000 (dix secondes).

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Alias obsolète pour "socketTimeoutMS".

Valeurs de retour

Si w est utilisé, retourne un tableau contenant le statut de la sauvegarde. Sinon, retourne un booléen si le tableau était non vide (un tableau vide ne sera pas inséré).

Erreurs / Exceptions

Lance une exception MongoException si le document inséré est vide, ou s'il contient des clés de valeurs nulles. Tenter d'insérer un objet avec des propriétés protégées ou privées causera une erreur de type "clés de valeurs nulles".

Lance une exception MongoCursorException si l'option "w" est définie, et que l'écriture échoue.

Lance une exception MongoCursorTimeoutException si l'option "w" est définie à une valeur supérieure à 1 et que l'opération prend plus de temps que MongoCursor::$timeout millisecondes à se terminer. Ceci ne va pas mettre fin à l'opération sur le serveur, ce n'est qu'un délai d'attente maximal côté client. L'unité pour MongoCollection::$wtimeout est la milliseconde.

Historique

Version | Description
1.5.0

Ajout de l'option "wTimeoutMS", qui remplace l'option "wtimeout". Emets une alerte de type E_DEPRECATED lorsque "wtimeout" est utilisée.

Ajout de l'option "socketTimeoutMS", qui remplace l'option "timeout". Emets une alerte de type E_DEPRECATED lorsque "timeout" est utilisée.

Emets une alerte de type E_DEPRECATED lorsque "safe" est utilisée.

1.2.0 | Ajout de l'option "timeout".
1.0.11 | Se déconnecte lors d'erreurs "not master" si "safe" est utilisé.
1.0.9

Ajout de l'option "fsync".

1.0.5 | Ajout du paramètre options.

Exemples

Exemple #1 Exemple avec MongoCollection::save()

<?php

$obj = array('x' => 1);

// insertion de $obj dans la base
$collection->save($obj);
var_dump($obj);

// ajout d'un nouveau champ
$obj['foo'] = 'bar';

// $obj ne peut pas être inséré, car il causerait une duplication
$collection->insert($obj);

// sauvegarde de la modification de $obj
$collection->save($obj);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["x"]=>
  int(1)
  ["_id"]=>
  object(MongoId)#4 (1) {
    ["$id"]=>
    string(24) "50b6afe544415ed606000000"
  }
}


Définit les préférences de lecture pour cette collection

  • « MongoCollection::save
  • MongoCollection::setSlaveOkay »
  • PHP Manual
  • MongoCollection
  • Définit les préférences de lecture pour cette collection

MongoCollection::setReadPreference

(PECL mongo >=1.3.0)

MongoCollection::setReadPreference — Définit les préférences de lecture pour cette collection

Description

public bool MongoCollection::setReadPreference ( string $read_preference [, array $tags ] )

Liste de paramètres

read_preference

Le mode de préférence de lecture : MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, ou MongoClient::RP_NEAREST.

tags

Un tableau de zéro ou plusieurs jeux de tags, où chaque jeu de tags est lui même un tableau de critères utilisés pour faire correspondre les tags sur les membres du jeu de réplication.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE sinon.

Erreurs / Exceptions

Emets une alerte de niveau E_WARNING si soit le paramètre est invalide, soit si un ou plusieurs jeux de tags sont fournis avec le mode de préférence de lecture MongoClient::RP_PRIMARY.

Exemples

Exemple #1 Exemple avec MongoCollection::setReadPreference() avec un jeu de tags sous la forme d'un tableau

<?php

$m = new MongoClient();
$c = $m->test->users;

// Préfère le serveur le plus proche du centre de données "east", également utilisé pour les rapports
// mais utilise un serveur du centre de données "west" en cas d'échec
$c->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Voir aussi

  • La documentation sur les préférences de lecture.
  • MongoCollection::getReadPreference() - Récupère les préférences de lecture pour cette collection


Modifie la configuration de slaveOkay pour cette collection

  • « MongoCollection::setReadPreference
  • MongoCollection::setWriteConcern »
  • PHP Manual
  • MongoCollection
  • Modifie la configuration de slaveOkay pour cette collection

MongoCollection::setSlaveOkay

(PECL mongo >=1.1.0)

MongoCollection::setSlaveOkay — Modifie la configuration de slaveOkay pour cette collection

Description

public bool MongoCollection::setSlaveOkay ([ bool $ok = true ] )

Reportez-vous à la section sur les requêtes de ce manuel pour plus d'informations sur la distribution de lecture aux secondaires.

Liste de paramètres

ok

Si la lecture doit être envoyée aux membres secondaires d'un jeu de réplication pour toutes les requêtes possibles utilisant cette instance de MongoCollection.

Valeurs de retour

Retourne la valeur formelle de la configuration de slaveOkay pour cette instance.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.

Voir aussi

  • Préférences de lecture
  • MongoCollection::setReadPreference() - Définit les préférences de lecture pour cette collection


Défini la préoccupation d'écriture pour cette base de données

  • « MongoCollection::setSlaveOkay
  • MongoCollection::toIndexString »
  • PHP Manual
  • MongoCollection
  • Défini la préoccupation d'écriture pour cette base de données

MongoCollection::setWriteConcern

(PECL mongo >=1.5.0)

MongoCollection::setWriteConcern — Défini la préoccupation d'écriture pour cette base de données

Description

public bool MongoCollection::setWriteConcern ( mixed $w [, int $wtimeout ] )

Liste de paramètres

w

La préoccupation d'écriture. Peut être un entier indiquant le nombre de serveurs requis pour approuver une écriture, ou un mode sous forme de chaîne de caractères (e.g. "majority").

wtimeout

Le nombre maximal de millisecondes à attendre le serveur pour satisfaire une préoccupation d'écriture.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE sinon.

Erreurs / Exceptions

Emets une exception de niveau E_WARNING si le paramètre w n'est pas un entier ou une chaîne de caractères.

Exemples

Exemple #1 Exemple avec MongoDB::setWriteConcern()

<?php

$mc = new MongoClient('mongodb://rs1.example.com,rs2.example.com');
$coll = $mc->selectCollection('test', 'foo');

// Nécessite que la majorité des serveurs du jeu de réplications approuvent les écritures
// dans les 3 secondes.
$coll->setWriteConcern('majority', 3000);
?>

Voir aussi

  • La documentation sur les préoccupation d'écriture.
  • MongoCollection::getWriteConcern() - Récupère la préoccupation d'écriture de cette collection


Convertit les clés spécifiant un index en une chaîne de caractères

  • « MongoCollection::setWriteConcern
  • MongoCollection::__toString »
  • PHP Manual
  • MongoCollection
  • Convertit les clés spécifiant un index en une chaîne de caractères

MongoCollection::toIndexString

(PECL mongo >=0.9.0)

MongoCollection::toIndexString — Convertit les clés spécifiant un index en une chaîne de caractères

Description

static protected string MongoCollection::toIndexString ( mixed $keys )
Avertissement

Cette méthode est obsolète depuis la version 1.5.0.

Liste de paramètres

keys

Le ou les champs à convertir en chaîne(s) de caractères.

Valeurs de retour

Retourne une chaîne de caractères qui décrit l'index.

Exemples

Exemple #1 Exemple avec MongoCollection::toIndexString()

Cet exemple montre la façon dont vous pouvez créer un nom d'index. En raison du fait que ce soit une méthode protégée (statique), vous devez d'abord la surcharger en une classe fils.

<?php
// Crée une classe héritée pour rendre la méthode "publique".
class MyCollection extends MongoCollection
{
    static public function toIndexString($a)
    {
        return parent::toIndexString($a);
    }
}

echo MyCollection::toIndexString("foo"), "\n";
// Affiche : foo_1

echo MyCollection::toIndexString(array('name' => 1, 'age' => -1)), "\n";
// Affiche : name_1_age_-1
?>

Voir aussi

Documentation MongoDB sur les » indexes.

Historique

Version | Description
1.5.0 | Cette méthode est devenue obsolète.


Retourne la répresentation en chaîne de cette collection

  • « MongoCollection::toIndexString
  • MongoCollection::update »
  • PHP Manual
  • MongoCollection
  • Retourne la répresentation en chaîne de cette collection

MongoCollection::__toString

(PECL mongo >=0.9.0)

MongoCollection::__toString — Retourne la répresentation en chaîne de cette collection

Description

public string MongoCollection::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom complet de cette collection.

Exemples

Exemple #1 Exemple avec MongoCollection::__toString()

<?php

$m = new MongoClient();

$c1 = $m->foo->bar->baz;
echo "Utilisation de la collection $c1.";

$c2 = $m->selectCollection('[]', '&');
echo "Utilisation de la collection $c2.";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Utilisation de la collection foo.bar.baz.
Utilisation de la collection [].&.


Modifie les enregistrements

  • « MongoCollection::__toString
  • MongoCollection::validate »
  • PHP Manual
  • MongoCollection
  • Modifie les enregistrements

MongoCollection::update

(PECL mongo >=0.9.0)

MongoCollection::update — Modifie les enregistrements

Description

public bool|array MongoCollection::update ( array $criteria , array $new_object [, array $options = array() ] )

Liste de paramètres

criteria

Critère de requête pour le document à mettre à jour.

new_object

L'objet utilisé pour mettre à jour les documents correspondants. Il peut contenir soit les opérateurs de mise à jour (pour la modification de champs spécifiques), soit être un remplacement du document.

options

Un tableau d'options pour l'opération de mise à jour. Les options actuellement disponibles sont :

  • "upsert"

    Si aucun document ne correspond au critère $criteria, un nouveau document sera inséré.

    Si un nouveau document doit être inséré, et que $new_object contient des modificateurs atomiques (i.e. opérateurs $), alors ces opérateurs seront appliqués au paramètre $criteria pour créer le nouveau document. Si $new_object ne contient pas de modificateur atomique, il sera pris tel quel en tant que document inséré. Voir l'exemple ci-dessous pour plus d'informations.

  • "multiple"

    Tous les documents correspondants au $criteria seront mis à jour. MongoCollection::update() a le comportement opposé de MongoCollection::remove(): elle met à jour un document par défaut, pas tous les documents correspondants. Il est recommandé de toujours préciser si vous voulez mettre à jour un document ou plusieurs, la base de données pouvant changer son comportement par défaut dans le futur.

  • "fsync"

    Booléen, par défaut à FALSE. Si l'historisation est activée, il fonctionne exactement comme "j". Si l'historisation n'est pas activée, l'opération en écriture sera bloquante tant qu'elle ne sera pas synchronisé sur les fichiers de base de données du disque. Si vaut TRUE, une insertion reconnue devient implicite, et cette option va écraser la configuration "w" à 0.

    Note: Si l'historisation est activée, les utilisateurs sont vivement encouragés à utiliser l'option "j" au lieu de "fsync". N'utilisez pas "fsync" et "j" en même temps, ou une erreur sera produite.

  • "j"

    Booléen, par défaut à FALSE. Force les opérations en écriture a être bloquantes tant qu'elles ne sont pas synchronisées dans le journal du disque. Si vaut TRUE, une écriture reconnue est implicite, et cette option va écraser la configuration "w" à 0.

    Note: Si cette option est utilisée, et que l'historisation est désactivée, MongoDB 2.6+ va lancer une erreur, et l'écriture échouera ; les anciennes versions du serveur vont simplement ignorer cette ooption.

  • "socketTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la communication avec un socket. Si le serveur ne répond pas pendant cette période, une exception MongoCursorTimeoutException sera émise et il n'y a aucune façon de déterminer si le serveur gère actuellement l'écriture ou non. Une valeur de -1 peut être spécifiée pour bloquer indéfiniement. La valeur par défaut pour MongoClient est 30000 (30 secondes).

  • "w"

    Voir les préoccupatios d'écriture. La valeur par défaut pour MongoClient est 1.

  • "wTimeoutMS"

    Cette option spécifie la durée limite, en millisecondes, pour la reconnaissance des préoccupations d'écriture.Ceci n'est applicable que lorsque "w" est supérieur à 1, sachant que le délai d'attente maximal est en relation avec la réplication. Si la préoccupation d'écriture n'est pas spécifiée dans la durée limite, une exception MongoCursorException sera émise. Une valeur de 0 peut être spécifiée pour un blocage permanent. La valeur par défaut pour MongoClient est 10000 (dix secondes).

Les options suivants sont obsolètes, et ne devraient plus être utilisées :

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Alias obsolète pour "socketTimeoutMS".

  • "wtimeout"

    Alias obsolète pour "wTimeoutMS".

Valeurs de retour

Retourne un tableau contenant le statut de la mise à jour si l'option "w" est définie. Sinon, retourne TRUE.

Les champs du tableau de statut sont décrits dans la documentation de la méthode MongoCollection::insert().

Erreurs / Exceptions

Lance une exception MongoCursorException si l'option "w" est définie, et que l'écriture échoue.

Lance une exception MongoCursorTimeoutException si l'option "w" est définie à une valeur supérieure à 1 et que l'opération prend plus de temps que MongoCursor::$timeout millisecondes à se terminer. Ceci ne va pas mettre fin à l'opération sur le serveur, ce n'est qu'un délai d'attente maximal côté client. L'unité pour MongoCollection::$wtimeout est la milliseconde.

Historique

Version | Description
1.5.0

Ajout de l'option "wTimeoutMS", qui remplace l'option "wtimeout". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée.

Ajout de l'option "socketTimeoutMS", qui remplace l'option "timeout". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée.

Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.

1.3.4 | Ajout de l'option "wtimeout".
1.3.0

Ajout de l'option "w".

Le paramètre options n'accepte plus de booléen pour indiquer un upsert. A la place, vous devez utiliser la syntaxe array('upsert' => true).

1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsque le paramètre options est de type scalar.
1.2.0 | Ajout de l'option "timeout".
1.0.11 | Se déconnecte lors d'erreurs "not master" si "safe" est utilisé.
1.0.9

Ajout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés).

Ajout de l'option "fsync".

Le type retourné a été modifié en un tableau contenant les informations de l'erreur si l'option "safe" est utilisé, sinon, ce sera un booléen comme auparavant.

1.0.5 | Ajout de l'option "safe".
1.0.1 | Le paramètre options passe de booléen à un tableau. En version Pre-1.0.1, le second paramètre était une valeur booléenne optionnelle, spécifiant un upsert.

Exemples

Exemple #1 Exemple avec MongoCollection::update()

Ajout d'un champ adresse à un document.

<?php

$c->insert(array("firstname" => "Bob", "lastname" => "Jones" ));
$newdata = array('$set' => array("address" => "1 Smith Lane"));
$c->update(array("firstname" => "Bob"), $newdata);

var_dump($c->findOne(array("firstname" => "Bob")));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["firstname"]=>
  string(3) "Bob"
  ["lastname"]=>
  string(5) "Jones"
  ["address"]=>
  string(12) "1 Smith Lane"
}

Exemple #2 Exemples avec MongoCollection::update() et upsert

Les Upserts permettent de simplifier le code, vu qu'une simple ligne permet de créer le document s'il n'existe pas encore (en se basant sur le paramètre $criteria) ou de le mettre à jour s'il existe.

Dans l'exemple suivant, $new_object contient un modificateur atomique. Vu que la collection est vide, l'upsert doit insérer un nouveau document, et utilisera les opérateurs de $criteria pour le créer.

<?php

$c->drop();
$c->update(
    array("uri" => "/summer_pics"),
    array('$inc' => array("page hits" => 1)),
    array("upsert" => true)
);
var_dump($c->findOne());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["_id"]=>
  object(MongoId)#9 (0) {
  }
  ["uri"]=>
  string(12) "/summer_pics"
  ["page hits"]=>
  int(1)
}

Si $new_object ne contient pas de modificateurs atomiques (i.e. des opérateurs $), un upsert utilisera $new_object tel quel comme nouveau document. Ceci correspond à une mise à jour normale, vu qu'aucun modificateur atomique n'est utilisé, le document sera écrasé.

<?php

$c->drop();
$c->update(
    array("name" => "joe"),
    array("username" => "joe312", "createdAt" => new MongoDate()),
    array("upsert" => true)
);
var_dump($c->findOne());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["_id"]=>
  object(MongoId)#10 (0) {
  }
  ["username"]=>
  string(6) "joe312"
  ["createdAt"]=>
  object(MongoDate)#4 (0) {
  }
}

Exemple #3 Exemple avec plusieurs MongoCollection::update()

Par défaut, MongoCollection::update() met uniquement à jour le premier document correspondant aux critères $criteria qu'il trouve. En utilisant l'option "multiple", ce comportement est redéfini.

Cet exemple ajoute un champ "gift" à chaque personne possédant un anniversaire dans le prochain jour.

<?php

$today = array('$gt' => new MongoDate(), '$lt' => new MongoDate(strtotime("+1 day")));
$people->update(
    array("birthday" => $today),
    array('$set' => array('gift' => $surprise)),
    array("multiple" => true)
);

?>

Voir aussi

La documentation PHP sur les mises à jour et la » documentation core de MongoDB.


Valide la collection

  • « MongoCollection::update
  • MongoCursor »
  • PHP Manual
  • MongoCollection
  • Valide la collection

MongoCollection::validate

(PECL mongo >=0.9.0)

MongoCollection::validate — Valide la collection

Description

public array MongoCollection::validate ([ bool $scan_data = FALSE ] )

Liste de paramètres

scan_data

Valide uniquement les index, et non pas la base de collection.

Valeurs de retour

Retourne l'évaluation de cet objet par la base de données.


La classe MongoCursor

(PECL mongo >=0.9.0)

Introduction

Un curseur est utilisé pour itérer les résultats d'une requête. Par exemple regarder tous les résultats d'une requête quelconque :

Exemple #1 Utilisation basique de MongoCursor

<?php

$cursor = $collection->find();
var_dump(iterator_to_array($cursor));

?>

En général, vous ne créez pas de MongoCursor en utilisant le constructeur mais en appelant MongoCollection::find() (comme ci-dessus).

Supposons que, dans l'exemple ci-dessus, $collection pèse 50Go. On ne voudra certainement pas tout charger en mémoire, c'est ce que permet un curseur : permettre au client d'accéder aux données au fur et à mesure.

Si nous avons des jeux de résultats très grands, nous pouvons itérer dessus, ceci chargera seulement quelques méga-octets dans la mémoire. Par exemple :

Exemple #2 Parcourt d'un MongoCursor

<?php

$cursor = $collection->find();

foreach ($cursor as $doc) {
    // faire quelque chose avec chaque document $doc
}

?>
Les documents ici sont créés puis détruits au fur et à mesure de l'itération.

Notez que cela signifie qu'un curseur ne contient pas les données du jeu de résultats, il ne fait que les piloter. Ainsi si vous affichez un curseur (par exemple, avec var_dump() ou print_r()), vous n'obtiendrez que l'objet curseur, pas les documents. Pour obtenir les documents, vous pouvez utiliser une des techniques ci-dessus.

Etats des curseurs

Un MongoCursor a 2 états différents : Avant et après la requête. Lorsqu'un curseur est créé, il n'a pas encore contacté la base de données, il est en état pré-requête et le client peut toujours préciser ce qu'il attend de la requête, par exemple ajouter des limites, des tris ou encore des options avancées.

Lorsque le client tente de récupérer un résultat (en appelant la fonction MongoCursor::next(), directement ou indirectement), le curseur passe à l'état post-requête. À ce moment-là, la requête a été exécutée par la base et ne peut plus être modifiée.

Exemple #3 Ajout d'options à MongoCursor

<?php

$cursor = $collection->find()->limit(10);

// la base n'a pas encore été interrogée,
// il est donc encore temps d'ajouter des options
$cursor = $cursor->sort(array("a" => 1));

var_dump($cursor->getNext());
// maintenant, la base a été interrogée, et les options ne sont plus prises en compte

// Cet commnande va produire une exception :
$cursor->skip(4);
?>

Synopsis de la classe

MongoCursor implements MongoCursorInterface , Iterator {
/* Champs statiques */
static boolean $slaveOkay = FALSE ;
static integer $timeout = 30000 ;
/* Méthodes */
public MongoCursor addOption ( string $key , mixed $value )
public MongoCursor awaitData ([ bool $wait = true ] )
public MongoCursor batchSize ( int $batchSize )
public __construct ( MongoClient $connection , string $ns [, array $query = array() [, array $fields = array() ]] )
public int count ([ bool $foundOnly = FALSE ] )
public array current ( void )
public bool dead ( void )
protected void doQuery ( void )
public array explain ( void )
public MongoCursor fields ( array $f )
public array getNext ( void )
public array getReadPreference ( void )
public bool hasNext ( void )
public MongoCursor hint ( mixed $index )
public MongoCursor immortal ([ bool $liveForever = true ] )
public array info ( void )
public string|int key ( void )
public MongoCursor limit ( int $num )
public MongoCursor maxTimeMS ( int $ms )
public array next ( void )
public MongoCursor partial ([ bool $okay = true ] )
public void reset ( void )
public void rewind ( void )
public MongoCursor setFlag ( int $flag [, bool $set = true ] )
public MongoCursor setReadPreference ( string $read_preference [, array $tags ] )
public MongoCursor skip ( int $num )
public MongoCursor slaveOkay ([ bool $okay = true ] )
public MongoCursor snapshot ( void )
public MongoCursor sort ( array $fields )
public MongoCursor tailable ([ bool $tail = true ] )
public MongoCursor timeout ( int $ms )
public bool valid ( void )
}

Variables statiques

slaveOkay

Est ce que la requête doit avoir le drapeau "slaveOkay" activé, ce qui permet des lectures sur le secondaire (les secondaires sont par défaut déstinés à des sauvegardes et donc inaccessibles en lectures). Peut être surchargé avec MongoCursor::slaveOkay().

Cette fonctionalité est obsolète. Veuillez utiliser Préférences de lecture à la place.

timeout

Affecte le timeout en millisecondes pour les réponses des bases de données. Pour un timeout infini, utilisez -1. Peut être surchargé avec MongoCursor::timeout(). Ceci ne provoque pas une annulation de l'opération par le serveur MongoDB mais fait en sorte que le pilote s'arrête d'attendre une réponse et envoie une exception MongoCursorTimeoutException.

Voir aussi

Documentation de MongoDB » concernant les curseurs.

Sommaire

  • MongoCursor::addOption — Ajoute une paire clé/valeur de haut niveau à la requête
  • MongoCursor::awaitData — Définit si le curseur doit attendre un curseur tailable pour retourner plus de données
  • MongoCursor::batchSize — Limite le nombre de résultats retourné pour un lot
  • MongoCursor::__construct — Crée un nouveau curseur
  • MongoCursor::count — Compte le nombre de résultats pour cette requête
  • MongoCursor::current — Retourne l'élément courant
  • MongoCursor::dead — Vérifie s'il reste des résultats non envoyés depuis la base de données
  • MongoCursor::doQuery — Exécute la requête Mongo
  • MongoCursor::explain — Retourne une explication de la requête, souvent utile pour le déboguage et l'optimisation
  • MongoCursor::fields — Définit les champs d'une requête
  • MongoCursor::getNext — Avance le curseur au prochain résultat, et le retourne
  • MongoCursor::getReadPreference — Récupère les préférences de lecture pour cette requête
  • MongoCursor::hasNext — Vérifie s'il y a encore des éléments pour ce curseur
  • MongoCursor::hint — Donne des indications à la base de données pour la requête
  • MongoCursor::immortal — Définit si le curseur doit s'interrompre après un certain délai
  • MongoCursor::info — Récupère les informations sur la création du curseur et son itération
  • MongoCursor::key — Retourne l'identifiant du résultat courant ou son index dans le jeu de résultats
  • MongoCursor::limit — Limite le nombre de résultats retournés
  • MongoCursor::maxTimeMS — Défini le délai d'attente maximal côté serveur pour la requête
  • MongoCursor::next — Avance le curseur au prochain résultat et le retourne
  • MongoCursor::partial — Si la requête doit récupérer des résultats partiels depuis mongos si un partage est inaccessible
  • MongoCursor::reset — Efface le curseur
  • MongoCursor::rewind — Retourne le curseur au début du jeu de résultats
  • MongoCursor::setFlag — Définit des drapeaux dans le cas où aucune méthode dédiée n'est disponible
  • MongoCursor::setReadPreference — Définit les préférences de lecture pour cette requête
  • MongoCursor::skip — Omet les premiers résultats
  • MongoCursor::slaveOkay — Définit si la requête peut être effectuée sur un serveur secondaire (obsolète)
  • MongoCursor::snapshot — Utilise le mode de capture pour la requête
  • MongoCursor::sort — Trie les résultats par ordre de champs
  • MongoCursor::tailable — Définit si le curseur doit être conservé ouvert après la récupération du dernier résultat
  • MongoCursor::timeout — Défini un délai maximum d'attente côté client pour cette requête
  • MongoCursor::valid — Vérifie si le curseur lit un résultat valide


Ajoute une paire clé/valeur de haut niveau à la requête

  • « MongoCursor
  • MongoCursor::awaitData »
  • PHP Manual
  • MongoCursor
  • Ajoute une paire clé/valeur de haut niveau à la requête

MongoCursor::addOption

(PECL mongo >=1.0.4)

MongoCursor::addOption — Ajoute une paire clé/valeur de haut niveau à la requête

Description

public MongoCursor MongoCursor::addOption ( string $key , mixed $value )

Cette méthode est une méthode avancée et ne devrait pas être utiliser sans vraiment savoir ce que vous en faîtes.

Une requête peut optionnellement être imbriquée dans un champ "query" si les autres options, comme un tri ou un indice sont fournies. Actuellement, l'ajout d'un tri fait que la requête devient un sous-champ d'un objet requête plus gros, comme ceci :

<?php

$query = array("query" => $query, "orderby" => $sort);

?>

Cette méthode permet d'ajouter un champ de haut niveau à une requête. Elle rend une requête un sous-objet (si elle ne l'est pas déjà) et ajoute une paire clé/valeur de votre choix en haut niveau.

Avertissement

Elle ne peut être utilisée pour ajouter d'autres critères pour une requête à la volée. Actuellement, ceci ne fonctionne pas :

<?php

// INCORRECT !
$cursor = $users->find()->addOption("name", "joe")->addOption("age", 20);

?>
Ceci ne permet pas de chercher un utilisateur nommé "joe" et dont l'âge vaut 20.

Liste de paramètres

key

Le nom du champ à ajouter.

value

La valeur à ajouter.

Valeurs de retour

Retourne ce curseur.

Erreurs / Exceptions

Lance une exception MongoCursorException si ce curseur a commencé à être parcouru.

Exemples

Exemple #1 Exemple de l'ajout d'un commentaire avec MongoCursor::addOption()

MongoDB supporte des options spéciales à envoyer au serveur. Le shell utilise l'option _addSpecial pour envoyer un $comment au server. Ce commentaire sera affiché dans les logs de profilage (i.e. pour les requêtes lentes). Dans le driver PHP, vous utilisez la méthode MongoCursor::addOption().

<?php
$m = new MongoClient;
$c = $m->demo->demo;
$cursor = $c->find();
$cursor->addOption('$comment', "Ce commentaire sera affiché dans les logs de profilage");

foreach ($cursor as $document) { /* vide */ }
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

{
    "op" : "query",
    "ns" : "demo.demo",
    "query" : {
        "$query" : {

        },
        "$comment" : "Ce commentaire sera affiché dans les logs de profilage"
    },
    "cursorid" : 168463566447,
    "ntoreturn" : 0,
    "ntoskip" : 0,
    "nscanned" : 101,
    "nscannedObjects" : 101,
    "keyUpdates" : 0,
    "numYield" : 0,
…

Exemple #2 Exemple avec MongoCursor::addOption()

L'utilisation de la méthode MongoCursor::skip() pour éviter plusieurs millions de résultats peut être lent. Pour éviter de rencontrer ce problème, vous pouvez utiliser les options $min ou $max de votre requête. Ceci peut paraître simple mais encore faut-il un index sur le champ exact sur lequel on effectue la recherche. Voici un exemple d'utilisation de l'option $min comme alternative à la méthode MongoCursor::skip().

<?php

// Assurons-nous que l'index est présent
$c->ensureIndex(array("ts" => 1));

// vous devriez modifier ceci afin que l'exécution s'effectue en un
// temps raisonnable sur des machines lentes (prend environ 30 secondes
// sur une bonne machine)
for ($i = 0; $i < 30000000; $i++) {
    $c->insert(array("ts" => new MongoDate(), "i" => $i));
}

$now = strtotime("now");

// Trouve les documents insérés dans les 2 dernières secondes
$cursor = $c->find()->addOption('$min', array("ts" => $now-2));

?>


Définit si le curseur doit attendre un curseur tailable pour retourner plus de données

  • « MongoCursor::addOption
  • MongoCursor::batchSize »
  • PHP Manual
  • MongoCursor
  • Définit si le curseur doit attendre un curseur tailable pour retourner plus de données

MongoCursor::awaitData

(PECL mongo >=1.2.11)

MongoCursor::awaitData — Définit si le curseur doit attendre un curseur tailable pour retourner plus de données

Description

public MongoCursor MongoCursor::awaitData ([ bool $wait = true ] )

Cette méthode est à utiliser avec les curseurs tailable. Lorsque nous sommes à la fin des données, cette méthode permet de choisir entre attendre d'autres données, ou retourner le fait qu'il n'y en a plus. Une fois le délai d'expiration écoulé, la méthode retournera normalement.

Liste de paramètres

wait

Si le curseur doit attente plus de données ou non.

Valeurs de retour

Retourne le curseur.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à être parcouru.

Exemples

Exemple #1 Exemple avec MongoCursor::awaitData()

Dans cet exemple, nous affichons "oplog" et au lieu d'attendre entre chaque itération, nous définissons l'option MongoCursor::awaitData(). MongoCursor::hasNext() va maintenant attendre que d'autres données soient disponibles.

<?php
$m = new MongoClient( 'mongodb://localhost:13000', array( 'replSet' => 'seta' ) );
$c = $m->local->selectCollection( 'oplog.rs' );
$cursor = $c->find( array( 'ns' => 'demo.article', 'op' => 'i' ) );
$cursor->tailable( true );
$cursor->awaitData( true );

while (true) {
    if (!$cursor->hasNext()) {
        // nous avons lu tous les résultats, on sort
        if ($cursor->dead()) {
            break;
        }
    } else {
        var_dump( $cursor->getNext() );
    }
}
?>

Voir aussi

La documentation MongoDB sur les » curseurs tailable.

  • MongoCursor::tailable() - Définit si le curseur doit être conservé ouvert après la récupération du dernier résultat


Limite le nombre de résultats retourné pour un lot

  • « MongoCursor::awaitData
  • MongoCursor::__construct »
  • PHP Manual
  • MongoCursor
  • Limite le nombre de résultats retourné pour un lot

MongoCursor::batchSize

(PECL mongo >=1.0.11)

MongoCursor::batchSize — Limite le nombre de résultats retourné pour un lot

Description

public MongoCursor MongoCursor::batchSize ( int $batchSize )

Un curseur récupère un lot d'objets de résultats et les stocke en local. Cette méthode définit la valeur batchSize permettant de configurer la quantité de documents à récupérer en un passage, depuis le serveur. Cependant, la quantité de documents retournée ne pourra jamais être supérieure à la limite maximale (habituellement 4 Mo).

Liste de paramètres

batchSize

Le nombre de résultats à retourner pour un lot. Chaque lot nécessite un aller-retour avec le serveur.

Si batchSize vaut 2 ou plus, il représentera la taille de chaque lot d'objets récupérés. Il peut être ajuster pour optimiser les performances et limiter les données transférées.

Si batchSize vaut 1 ou une valeur négative, cela va limiter le nombre de documents retournés à la valeur absolue de batchSize, et le curseur sera fermé. Par exemple, si batchSize vaut -10, alors le serveur retournera un maximum de 10 documents (si ces documents tiennent dans 4Mo), puis le curseur sera fermé.

Avertissement

Le fait de définir batchSize à 1 est spécial, et signifie la même chose que de le définir à -1, i.e. une valeur de 1 rend le curseur capable de ne retourner d'un seul document.

Notez que cette fonctionalité est différente de la méthode MongoCursor::limit() car les documents doivent tenir dans une taille maximale, et elle supprime la nécessité d'envoyer une requête pour fermer le curseur côté serveur. La taille du lot peut être changée après l'itération d'un curseur, au quel cas la configuration sera appliquée lorsque le prochain lot sera récupéré.

Cette méthode ne peut pas écraser la limite MongoDB de la quantité de données à retourner au client (i.e., si vous définissez la taille du lot à 1.000.000.000, MongoDB continuera de retourner uniquement 4-16Mo de résultats par lot).

Afin d'assurer un comportement consistent, les règles de MongoCursor::batchSize() et MongoCursor::limit() sont assez complexes mais fonctionnent "comme attendues". Les règles sont : les limites dures écrasent les limites légères avec une préférence donnée à la méthode MongoCursor::limit() sur la méthode MongoCursor::batchSize(). Après cela, tout ce qui est défini et est inférieure à ce qui précède prendra le dessus ; voir ci-dessous pour plus d'exemples.

Valeurs de retour

Retourne ce curseur.

Exemples

Exemple #1 Exemple avec MongoCursor::batchSize() et des combinaisons avec la fonction MongoCursor::limit()

<?php

// un lot, au maximum de 10 éléments. Le -10 fera que le serveur retournera 10 éléments,
// puis, fermera le curseur.
$cursor->limit(20)->batchSize(-10);

// premier lot : un maximum de 10 éléments
$cursor->limit(10);

// premier lot : un maximum de 10 éléments
$cursor->limit(10)->batchSize(20);

// Les résultats sont récupérés en lot de 10 éléments, avec un maximum de 20 éléments
// retournés (cela signifie deux lots de 10).
$cursor->limit(20)->batchSize(10);

// Les résultats sont récupérés en lot de 7 éléments, avec un maximum de 30 éléments
// retournés (cela signifie que le driver demandera 4 lots de 7 éléments, et un lot
// de 2).
$cursor->limit(30)->batchSize(7)
?>

Voir aussi

La documentation coeur de MongoDB sur la fonction » batchSize.

  • MongoCursor::limit() - Limite le nombre de résultats retournés
  • MongoCursorInterface::batchSize() - Limite le nombre d'éléments retourné dans un lot

Historique

Version | Description
1.4.5 | Avant la version 1.4.5, cette méthode lançait une exception de type MongoCursorException si le curseur avait déjà commencé son itération.


Crée un nouveau curseur

  • « MongoCursor::batchSize
  • MongoCursor::count »
  • PHP Manual
  • MongoCursor
  • Crée un nouveau curseur

MongoCursor::__construct

(PECL mongo >=0.9.0)

MongoCursor::__construct — Crée un nouveau curseur

Description

public MongoCursor::__construct ( MongoClient $connection , string $ns [, array $query = array() [, array $fields = array() ]] )

Liste de paramètres

connection

La connexion à la base de données Mongo.

ns

Le nom complet de la base et de la collection.

query

La requête de base de données.

fields

Les champs à retourner.

Valeurs de retour

Retourne le nouveau curseur.


Compte le nombre de résultats pour cette requête

  • « MongoCursor::__construct
  • MongoCursor::current »
  • PHP Manual
  • MongoCursor
  • Compte le nombre de résultats pour cette requête

MongoCursor::count

(PECL mongo >=0.9.2)

MongoCursor::count — Compte le nombre de résultats pour cette requête

Description

public int MongoCursor::count ([ bool $foundOnly = FALSE ] )

Cette méthode n'affecte pas l'état du curseur: si vous n'avez pas effectué de requête à ce stade, vous pouvez encore appliquer des limites, des skips, etc. Si vous avez commencé à itérer sur les résultats, cela ne déplacera pas la position courante du curseur. Si vous avez épuisé le curseur, cela ne le remettra pas à zéro.

Liste de paramètres

foundOnly

Envoi la limite du curseur et supprime l'information de la fonction count, si applicable.

Valeurs de retour

Le nombre de documents retournés par la requête du curseur.

Exemples

Exemple #1 Exemple avec MongoCursor::count()

<?php

$collection->insert(array('x'=>1));
$collection->insert(array('x'=>2));
$collection->insert(array('x'=>3));

$cursor = $collection->find();

var_dump($cursor->count());
var_dump($cursor->count(true));

$cursor->limit(2);

var_dump($cursor->count());
var_dump($cursor->count(true));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)
int(3)
int(3)
int(2)

Erreurs / Exceptions

Lance une exception MongoConnectionException si la base de données ne peut être atteinte.


Retourne l'élément courant

  • « MongoCursor::count
  • MongoCursor::dead »
  • PHP Manual
  • MongoCursor
  • Retourne l'élément courant

MongoCursor::current

(PECL mongo >=0.9.0)

MongoCursor::current — Retourne l'élément courant

Description

public array MongoCursor::current ( void )

Retourne NULL tant que la méthode MongoCursor::next() est appelé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le document résultant, sous la forme d'un tableau associatif. NULL sera retourné s'il n'y a aucun résultat.

Voir aussi

  • Iterator::current() - Retourne l'élément courant


Vérifie s'il reste des résultats non envoyés depuis la base de données

  • « MongoCursor::current
  • MongoCursor::doQuery »
  • PHP Manual
  • MongoCursor
  • Vérifie s'il reste des résultats non envoyés depuis la base de données

MongoCursor::dead

(PECL mongo >=0.9.6)

MongoCursor::dead — Vérifie s'il reste des résultats non envoyés depuis la base de données

Description

public bool MongoCursor::dead ( void )

La base de données retourne les réponses dans une série de documents, supérieures à 4 MB par documents, par réponse. Cette méthode vérifie si la base de données a encore des séries ou si le jeu de résultats est terminé.

Un curseur devenu "dead" ne signifie pas que MongoCursor::hasNext() retournera FALSE, cela signifie uniquement que la base de données a terminé d'envoyer les résultats au client. Le client doit continuer d'itérer les résultats tant que la méthode MongoCursor::hasNext() ne retourne pas FALSE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE s'il existe d'autres résultats qui n'ont pas encore été envoyés au client, FALSE sinon.

Voir aussi

  • MongoCursorInterface::dead() - Vérifie s'il y a des résultats qui n'ont pas encore été envoyés depuis la base de données


Exécute la requête Mongo

  • « MongoCursor::dead
  • MongoCursor::explain »
  • PHP Manual
  • MongoCursor
  • Exécute la requête Mongo

MongoCursor::doQuery

(PECL mongo >=0.9.0 <1.6.0)

MongoCursor::doQuery — Exécute la requête Mongo

Description

protected void MongoCursor::doQuery ( void )
Avertissement

Veuillez ne pas utiliser cette méthode.

Cette fonction requête actuellement la base de données. Toutes les requêtes et les commandes passent par cette fonction. Aussi, cette fonction peut être surchargée pour fournir une gestion personnalisée des requêtes.

Ce gestionnaire linéarise votre requête, et l'envoie à la base de données, puis, reçoit une réponse et la dé-linéarise. Aussi, si vous souhaitez la surcharger, votre code devrait appeler la fonction originale pour utiliser les fonctionnalités existantes (voir l'exemple ci-dessous).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

NULL.

Erreurs / Exceptions

Lance une exception MongoConnectionException si la base de données n'a pu être atteinte.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.

Exemples

Exemple #1 Exemple avec MongoCursor::doQuery()

Vous pouvez surcharger cette fonction pour effectuer une requête sur un secondaire et, si elle échoue, la tenter sur le primaire.

<?php

class MyCursor extends MongoCursor {

    protected function doQuery() {

        $this->slaveOkay();

        try {
            MongoCursor::doQuery();
        }
        catch(MongoCursorException $e) {
            $this->slaveOkay(false);
            MongoCursor::doQuery();
        }
    }
}

?>


Retourne une explication de la requête, souvent utile pour le déboguage et l'optimisation

  • « MongoCursor::doQuery
  • MongoCursor::fields »
  • PHP Manual
  • MongoCursor
  • Retourne une explication de la requête, souvent utile pour le déboguage et l'optimisation

MongoCursor::explain

(PECL mongo >=0.9.2)

MongoCursor::explain — Retourne une explication de la requête, souvent utile pour le déboguage et l'optimisation

Description

public array MongoCursor::explain ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une explication de la requête

Exemples

Exemple #1 Exemple avec MongoCursor::explain()

<?php

$cursor = $collection->find(array("x"=>1), array("y"));
$cursor->sort(array("z" => 1))->limit(4)->skip(5);

var_dump($cursor->explain());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(8) {
  ["cursor"]=>
  string(15) "BtreeCursor x_1"
  ["startKey"]=>
  array(1) {
    ["x"]=>
    int(1)
  }
  ["endKey"]=>
  array(1) {
    ["x"]=>
    int(1)
  }
  ["nscanned"]=>
  float(4)
  ["n"]=>
  int(4)
  ["scanAndOrder"]=>
  int(1)
  ["millis"]=>
  int(3)
  ["allPlans"]=>
  array(2) {
    [0]=>
    array(3) {
      ["cursor"]=>
      string(15) "BtreeCursor x_1"
      ["startKey"]=>
      array(1) {
        ["x"]=>
        int(1)
      }
      ["endKey"]=>
      array(1) {
        ["x"]=>
        int(1)
      }
    }
    [1]=>
    array(3) {
      ["cursor"]=>
      string(11) "BasicCursor"
      ["startKey"]=>
      array(0) {
      }
      ["endKey"]=>
      array(0) {
      }
    }
  }
}

Erreurs / Exceptions

Lance une exception MongoConnectionException si la base de données ne peut être atteinte.

Voir aussi

Documentation de MongoDB » concernant explain.


Définit les champs d'une requête

  • « MongoCursor::explain
  • MongoCursor::getNext »
  • PHP Manual
  • MongoCursor
  • Définit les champs d'une requête

MongoCursor::fields

(PECL mongo >=1.0.6)

MongoCursor::fields — Définit les champs d'une requête

Description

public MongoCursor MongoCursor::fields ( array $f )

Les champs sont spécifiés via la syntaxe "fieldname" : bool. TRUE indique qu'un champ doit être retourné, FALSE qu'il ne doit pas l'être. Vous pouvez également utiliser 1 ou 0 à la place de TRUE et FALSE.

Ainsi, pour retourner uniquement le champ "summary" :

<?php

$cursor->fields(array("summary" => true));

?>

Pour retourner tous les champs sauf le champ "hidden" :

<?php

$cursor->fields(array("hidden" => false));

?>

Liste de paramètres

f

Champs à retourner (ou à ne pas retourner).

Valeurs de retour

Retourne ce curseur.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à être parcouru, ou qu'un argument scalaire a été fourni.


Avance le curseur au prochain résultat, et le retourne

  • « MongoCursor::fields
  • MongoCursor::getReadPreference »
  • PHP Manual
  • MongoCursor
  • Avance le curseur au prochain résultat, et le retourne

MongoCursor::getNext

(PECL mongo >=0.9.0)

MongoCursor::getNext — Avance le curseur au prochain résultat, et le retourne

Description

public array MongoCursor::getNext ( void )

Note:

La méthode MongoCursor::getNext() est un alias de la méthode MongoCursor::next().


Récupère les préférences de lecture pour cette requête

  • « MongoCursor::getNext
  • MongoCursor::hasNext »
  • PHP Manual
  • MongoCursor
  • Récupère les préférences de lecture pour cette requête

MongoCursor::getReadPreference

(PECL mongo >=1.3.3)

MongoCursor::getReadPreference — Récupère les préférences de lecture pour cette requête

Description

public array MongoCursor::getReadPreference ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne un tableau décrivant les préférences de lecture. Ce tableau contient les valeurs type contenant une chaîne représentant le mode de préférence de lecture (suivant les MongoClient), et tagsets contenant une liste de tous les critères du jeu de tags. Si aucun jeu de tags n'est spécifié, tagsets ne sera pas présent dans ce tableau.

Exemples

Exemple #1 Exemple avec MongoCursor::getReadPreference()

<?php

$m = new MongoClient();
$cursor = $m->test->users->find();
$cursor->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($cursor->getReadPreference());
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Voir aussi

  • La documentation sur les préférences de lecture.
  • MongoCursor::setReadPreference() - Définit les préférences de lecture pour cette requête
  • MongoCursorInterface::getReadPreference() - Récupère les préférence de lecture pour cette requête


Vérifie s'il y a encore des éléments pour ce curseur

  • « MongoCursor::getReadPreference
  • MongoCursor::hint »
  • PHP Manual
  • MongoCursor
  • Vérifie s'il y a encore des éléments pour ce curseur

MongoCursor::hasNext

(PECL mongo >=0.9.0)

MongoCursor::hasNext — Vérifie s'il y a encore des éléments pour ce curseur

Description

public bool MongoCursor::hasNext ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE s'il reste encore des éléments.

Erreurs / Exceptions

Lance une exception MongoConnectionException si la base de données ne peut être atteinte et une exception MongoCursorTimeoutException si le délai d'attente maximum a été atteint.


Donne des indications à la base de données pour la requête

  • « MongoCursor::hasNext
  • MongoCursor::immortal »
  • PHP Manual
  • MongoCursor
  • Donne des indications à la base de données pour la requête

MongoCursor::hint

(PECL mongo >=0.9.0)

MongoCursor::hint — Donne des indications à la base de données pour la requête

Description

public MongoCursor MongoCursor::hint ( mixed $index )

Liste de paramètres

index

Index à utiliser avec cette requête. Si une chaîne est passée, elle doit correspondre au nom de l'index. Si un tableau ou un objet est passé, il doit correspondre à la spécification utilisée pour créer l'index (i.e. le premier argument de la méthode MongoCollection::ensureIndex()).

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Emet une exception MongoCursorException si le curseur a commencé ses itérations.

Historique

Version | Description
1.4.0 | L'argument index supporte maintenant les noms d'index comme valeur. Pour les versions antérieures à 1.4.0, sur les valeurs sous forme de tableau ou d'objet étaient acceptées.


Définit si le curseur doit s'interrompre après un certain délai

  • « MongoCursor::hint
  • MongoCursor::info »
  • PHP Manual
  • MongoCursor
  • Définit si le curseur doit s'interrompre après un certain délai

MongoCursor::immortal

(PECL mongo >=1.0.1)

MongoCursor::immortal — Définit si le curseur doit s'interrompre après un certain délai

Description

public MongoCursor MongoCursor::immortal ([ bool $liveForever = true ] )

Après un certain délai sur le serveur, le curseur, par défaut, "meurt". C'est en général le comportement que nous souhaitons. La base de données nettoie le curseur une fois que ses résultats ont été envoyés au client, mais si le client ne demande pas tous les résultats, le curseur sera toujours "vivant", prenant ainsi des ressources. Aussi, après quelques minutes, le curseur atteint son délai d'expiration et la base de données considère que le client a récupéré tout ce dont il avait besoin et supprime les ressources allouées à ce curseur.

Si, pour une raison particulière, vous avez besoin d'un délai plus important avant que le curseur ne meurt, vous pouvez empécher la base de données de le supprimer en utilisant cette méthode. Cependant, si vous rendez un curseur "immortel", vous devez parcourir tous ses résultats (ou, tout du moins, jusqu'à ce que la méthode MongoCursor::dead() retourne FALSE) ou bien le curseur sera pour toujours actif, prenant ainsi des ressources par toujours nécessaire.

Liste de paramètres

liveForever

Si le curseur doit être immortel, ou non.

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à être parcouru.


Récupère les informations sur la création du curseur et son itération

  • « MongoCursor::immortal
  • MongoCursor::key »
  • PHP Manual
  • MongoCursor
  • Récupère les informations sur la création du curseur et son itération

MongoCursor::info

(PECL mongo >=1.0.5)

MongoCursor::info — Récupère les informations sur la création du curseur et son itération

Description

public array MongoCursor::info ( void )

Cette méthode peut être appelée avant ou après le début de l'itération du curseur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les champs namespace, batch size, limit, skip, flags, query, et projected de ce curseur. Si le curseur a commencé son itération, d'autres informations seront disponibles sur l'itération et la connexion.

Historique

Version | Description
1.1.0 | Ajout de quelques champs, incluant id (l'identifiant de curseur), at (le compteur du driver du document courant), numReturned (le nombre retourné par le serveur dans le batch courant), et server (le serveur sur lequel la requête a été émise ; utile en plus de Préférences de lecture).
1.0.10 | Ajout du champ started_iterating, un booléen indiquant si le curseur est antérieur ou postérieur à la requête.

Exemples

Exemple #1 Exemple avec MongoCursor::info()

<?php
$m = new MongoClient();

$cursor = $m->test->foo->find(array("x" => 4), array("y" => 0));

echo "Avant le début de l'itération :\n";
var_dump($cursor->info());

echo "\nAprès le début de l'itération :\n";
$cursor->rewind();
var_dump($cursor->info());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Avant le début de l'itération :
array(8) {
  ["ns"]=>
  string(8) "test.foo"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["fields"]=>
  array(1) {
    ["y"]=>
    int(0)
  }
  ["started_iterating"]=>
  bool(false)
}

Après le début de l'itération :
array(15) {
  ["ns"]=>
  string(8) "test.foo"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["fields"]=>
  array(1) {
    ["y"]=>
    int(0)
  }
  ["started_iterating"]=>
  bool(true)
  ["id"]=>
  int(0)
  ["at"]=>
  int(0)
  ["numReturned"]=>
  int(1)
  ["server"]=>
  string(25) "localhost:27017;-;.;26450"
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(27017)
  ["connection_type_desc"]=>
  string(10) "STANDALONE"
}

Voir aussi

  • MongoCursorInterface::info() - Récupère des informations sur la création du curseur et son itération


Retourne l'identifiant du résultat courant ou son index dans le jeu de résultats

  • « MongoCursor::info
  • MongoCursor::limit »
  • PHP Manual
  • MongoCursor
  • Retourne l'identifiant du résultat courant ou son index dans le jeu de résultats

MongoCursor::key

(PECL mongo >=0.9.0)

MongoCursor::key — Retourne l'identifiant du résultat courant ou son index dans le jeu de résultats

Description

public string|int MongoCursor::key ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'_id du résultat courant sous la forme d'une chaîne de caractères. Si le résultat n'a pas d'_id, son index numérique dans le jeu de résultats sera retourné sous la forme d'un entier.

Voir aussi

  • Iterator::key() - Retourne la clé de l'élément courant


Limite le nombre de résultats retournés

  • « MongoCursor::key
  • MongoCursor::maxTimeMS »
  • PHP Manual
  • MongoCursor
  • Limite le nombre de résultats retournés

MongoCursor::limit

(PECL mongo >=0.9.0)

MongoCursor::limit — Limite le nombre de résultats retournés

Description

public MongoCursor MongoCursor::limit ( int $num )

Liste de paramètres

num

Le nombre de résultats à retourner.

Valeurs de retour

Retourne ce curseur.

Erreurs / Exceptions

Émet une exception MongoCursorException si le curseur a commencé ses itérations.

Voir aussi

  • Documentation de MongoD concernant » limit.
  • MongoCursor::batchSize() - Limite le nombre de résultats retourné pour un lot
  • MongoCursor::skip() - Omet les premiers résultats


Défini le délai d'attente maximal côté serveur pour la requête

  • « MongoCursor::limit
  • MongoCursor::next »
  • PHP Manual
  • MongoCursor
  • Défini le délai d'attente maximal côté serveur pour la requête

MongoCursor::maxTimeMS

(PECL mongo >=1.5.0)

MongoCursor::maxTimeMS — Défini le délai d'attente maximal côté serveur pour la requête

Description

public MongoCursor MongoCursor::maxTimeMS ( int $ms )

Spécifie une limite de temps cumulative, en millisecondes, autorisé au serveur pour effectuer les opérations sur le curseur.

Liste de paramètres

ms

Spécifie une limite de temps cumulative, en millisecondes, autorisé au serveur pour effectuer les opérations sur le curseur.

Valeurs de retour

Ce curseur.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé son itération.

Fait que les méthodes qui récupèrent les résultats lance une exception MongoExecutionTimeoutException si la requête prend plus de temps que le nombre de millisecondes spécifié dans l'exécution des opérations.

Exemples

Exemple #1 Exemple avec MongoCursor::maxTimeMS()

Dans l'exemple suivant, le serveur a interrompre la requête si le curseur requiert plus de deux secondes dans l'exécution des opérations pour retourner les résultats.

<?php

$cursor = $collection->find();
$cursor->maxTimeMS(2000);

try {
    $results = iterator_to_array($cursor);
} catch (MongoExecutionTimeoutException $e) {
    echo "query took too long!";
}

?>

Notes

Avertissement

Contrairement à la méthode MongoCursor::timeout(), qui spécifie un délai d'attente maximal côté client, la méthode MongoCursor::maxTimeMS() peut être utilisée pour stopper le serveur MongoDB lors de l'exécution de requêtes qui prennent trop de temps. Ce délai d'attente maximal est cumulatif pour la durée de vie du curseur (i.e. chaque lot va contribuer à cette durée). Le délai d'attente maximal ne prend en considération que le temps d'exécution ; le temps d'inactivité n'est pas pris en compte.


Avance le curseur au prochain résultat et le retourne

  • « MongoCursor::maxTimeMS
  • MongoCursor::partial »
  • PHP Manual
  • MongoCursor
  • Avance le curseur au prochain résultat et le retourne

MongoCursor::next

(PECL mongo >=0.9.0)

MongoCursor::next — Avance le curseur au prochain résultat et le retourne

Description

public array MongoCursor::next ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le prochain document.

Erreurs / Exceptions

Lance une exception MongoConnectionException si la base de données ne peut être atteinte et une exception MongoCursorTimeoutException si le délai d'attente maximum a été atteint.

Voir aussi

  • Iterator::next() - Se déplace sur l'élément suivant


Si la requête doit récupérer des résultats partiels depuis mongos si un partage est inaccessible

  • « MongoCursor::next
  • MongoCursor::reset »
  • PHP Manual
  • MongoCursor
  • Si la requête doit récupérer des résultats partiels depuis mongos si un partage est inaccessible

MongoCursor::partial

(PECL mongo >=1.2.0)

MongoCursor::partial — Si la requête doit récupérer des résultats partiels depuis mongos si un partage est inaccessible

Description

public MongoCursor MongoCursor::partial ([ bool $okay = true ] )

Cette option permet à mongos d'envoyer des résultats partiels de requête si un partage est inaccessible. Ceci n'est valable que lors d'une exécution sur un cluster MongoDB partagé, et lors d'une connexion à un mongos.

Si un partage devient inaccessible et qu'une requête doit être envoyée sur ce partage, mongos retournera les résultats (s'il y en a) depuis les partages déjà contactés, puis, un message d'erreur indiquant qu'il n'a pu atteindre le partage (une exeception MongoCursorException en PHP). Si vous voulez récupérer tous les résultats que mongos peut fournir sans émission d'une exception, vous pouvez utiliser cette méthode. Notez que cela signifie que vous n'aurez aucune indication quant au fait qu'un partage n'est pas accessible dans la réponse.

Cette méthode n'a aucun effet sur la requête si tous les partages sont disponibles. Ce drapeau a été implémenté en MongoDB version 1.7.5, aussi, vous ne pouvez vous en service qu'à partir de cette version et supérieure.

Liste de paramètres

okay

Si nous souhaitons recevoir des résultats partiels.

Valeurs de retour

Retourne ce curseur.

Erreurs / Exceptions

Émets une exception MongoCursorException si le curseur à commencer son itération.


Efface le curseur

  • « MongoCursor::partial
  • MongoCursor::rewind »
  • PHP Manual
  • MongoCursor
  • Efface le curseur

MongoCursor::reset

(PECL mongo >=0.9.0)

MongoCursor::reset — Efface le curseur

Description

public void MongoCursor::reset ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

NULL.


Retourne le curseur au début du jeu de résultats

  • « MongoCursor::reset
  • MongoCursor::setFlag »
  • PHP Manual
  • MongoCursor
  • Retourne le curseur au début du jeu de résultats

MongoCursor::rewind

(PECL mongo >=0.9.0)

MongoCursor::rewind — Retourne le curseur au début du jeu de résultats

Description

public void MongoCursor::rewind ( void )

Identique à la fonction :

<?php

public function rewind() {
    $this->reset();
    $this->next();
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

NULL.

Erreurs / Exceptions

Lance une exception MongoConnectionException si une erreur survient lors de la connexion à la base de données, et une exception MongoCursorTimeoutException si le délai d'attente maximum a été atteint.

Voir aussi

  • Iterator::rewind() - Replace l'itérateur sur le premier élément


Définit des drapeaux dans le cas où aucune méthode dédiée n'est disponible

  • « MongoCursor::rewind
  • MongoCursor::setReadPreference »
  • PHP Manual
  • MongoCursor
  • Définit des drapeaux dans le cas où aucune méthode dédiée n'est disponible

MongoCursor::setFlag

(PECL mongo >=1.2.11)

MongoCursor::setFlag — Définit des drapeaux dans le cas où aucune méthode dédiée n'est disponible

Description

public MongoCursor MongoCursor::setFlag ( int $flag [, bool $set = true ] )

La classe MongoCursor possède plusieurs méthodes pour définir des drapeaux sur l'objet de requête. Cette méthode est disponible dans le cas où le protocole MongoDB se voit ajouter un nouveau drapeau, et que le driver n'a pas été mis à jour avec une nouvelle méthode permettant de le définir. Dans tous les cas, la méthode doit être préférée. Voir la section "Voir aussi" pour les méthodes disponibles.

Liste de paramètres

flag

Le drapeau à définir. Vous ne pouvez pas définir le drapeau n°6 (EXHAUST) sachant que le driver ne sait pas comment le gérer. Vous recevrez une alerte si vous tentez d'utiliser ce drapeau. Pour avoir une liste des drapeaux disponibles, référez-vous à la » documentation du protocole.

set

Si le drapeau doit être défini (TRUE) ou supprimé (FALSE).

Valeurs de retour

Retourne le curseur.

Erreurs / Exceptions

Affiche une alerte lorsque l'on tente de définir un drapeau non-supporté.

Historique

Version | Description
1.4.0 | Ajout du support du drapeau n°3 (OPLOG_REPLAY). Les versions antérieures à 1.4.0 émettront une alerte indiquant que le drapeau n'est pas supporté..

Exemples

Exemple #1 Exemple avec MongoCursor::setFlag()

<?php
$m = new MongoClient( 'mongodb://localhost:13000', array( 'replSet' => 'seta' ) );
$c = $m->local->selectCollection( 'oplog.rs' );
$cursor = $c->find( array( 'ns' => 'demo.article', 'op' => 'i' ) );
$cursor->setFlag( 1, true ); // définit le drapeau tailable
$cursor->setFlag( 5, true ); // définit le drapeau "await data"
?>

Voir aussi

  • MongoCursor::tailable() - Définit si le curseur doit être conservé ouvert après la récupération du dernier résultat
  • MongoCursor::immortal() - Définit si le curseur doit s'interrompre après un certain délai
  • MongoCursor::awaitData() - Définit si le curseur doit attendre un curseur tailable pour retourner plus de données
  • MongoCursor::partial() - Si la requête doit récupérer des résultats partiels depuis mongos si un partage est inaccessible
  • La documentation coeur de MongoDB sur » les drapeaux du protocole de requête


Définit les préférences de lecture pour cette requête

  • « MongoCursor::setFlag
  • MongoCursor::skip »
  • PHP Manual
  • MongoCursor
  • Définit les préférences de lecture pour cette requête

MongoCursor::setReadPreference

(PECL mongo >=1.3.3)

MongoCursor::setReadPreference — Définit les préférences de lecture pour cette requête

Description

public MongoCursor MongoCursor::setReadPreference ( string $read_preference [, array $tags ] )

Liste de paramètres

read_preference

Le mode de préférence de lecture : MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, ou MongoClient::RP_NEAREST.

tags

Un tableau de zéro ou plusieurs jeux de tags, où chaque jeu de tags est lui même un tableau de critères utilisés pour faire correspondre les tags sur les membres du jeu de réplication.

Valeurs de retour

Retourne ce curseur.

Erreurs / Exceptions

Emets une alerte de niveau E_WARNING si soit le paramètre est invalide, soit si un ou plusieurs jeux de tags sont fournis avec le mode de préférence de lecture MongoClient::RP_PRIMARY.

Exemples

Exemple #1 Exemple avec MongoCursor::setReadPreference()

<?php

$m = new MongoClient();
$cursor = $m->test->users->find();

// Préfère le serveur le plus proche dans le centre de données "east", également
// utilisé pour les rapports, mais utilise un serveur du centre de données "west"
// en cas d'échec
$cursor->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Voir aussi

  • La documentation sur les préférences de lecture.
  • MongoCursor::getReadPreference() - Récupère les préférences de lecture pour cette requête
  • MongoCursorInterface::setReadPreference() - Définit les préférences de lecture pour cette requête


Omet les premiers résultats

  • « MongoCursor::setReadPreference
  • MongoCursor::slaveOkay »
  • PHP Manual
  • MongoCursor
  • Omet les premiers résultats

MongoCursor::skip

(PECL mongo >=0.9.0)

MongoCursor::skip — Omet les premiers résultats

Description

public MongoCursor MongoCursor::skip ( int $num )

Liste de paramètres

num

Le nombre de résultats à omettre.

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Emet une exception MongoCursorException si le curseur a commencer ses itérations.

Voir aussi

  • MongoCursor::limit() - Limite le nombre de résultats retournés


Définit si la requête peut être effectuée sur un serveur secondaire (obsolète)

  • « MongoCursor::skip
  • MongoCursor::snapshot »
  • PHP Manual
  • MongoCursor
  • Définit si la requête peut être effectuée sur un serveur secondaire (obsolète)

MongoCursor::slaveOkay

(PECL mongo >=0.9.4)

MongoCursor::slaveOkay — Définit si la requête peut être effectuée sur un serveur secondaire (obsolète)

Description

public MongoCursor MongoCursor::slaveOkay ([ bool $okay = true ] )
Avertissement

Cette méthode est obsolète depuis la version 1.5.0. Veuillez utiliser la méthode MongoCursor::setReadPreference() ainsi que Préférences de lecture.

L'appel à cette méthode fera que la driver liera sur les secondaires si :

  • Vous utilisez un jeu de réplication, et
  • Vous avez créé une instance MongoClient en utilisant l'option "replicaSet" => "setName" et
  • Il y a un secondaire en bonne santé qui peut être atteint par le driver.
Vous pouvez savoir quel serveur a été utilisé pour cette requête en appelant la méthode MongoCursor::info() après l'exécution de la requête. L'information sera contenue dans le champ server.

Notez que vous devriez utiliser cette fonction même si vous n'utilisez pas la lecture automatique sur les secondaires. Si vous vous connectez directement sur un secondaire d'un jeu de réplications, vous devrez continuer d'utiliser cette méthode, qui informe la base de données que vous êtes prêt à recevoir d'anciennes données. Si vous ne l'appelez pas, vous recevrez une erreur de type "not master" lors de l'exécution de la requête.

Cette méthode écrasera la variable statique
MongoCursor::$slaveOkay. Elle écrasera aussi
Mongo::setSlaveOkay(),
MongoDB::setSlaveOkay() et
MongoCollection::setSlaveOkay().

Liste de paramètres

okay

Si l'on peut effectuer la requête sur un serveur secondaire.

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à être parcouru.

Exemples

Exemple #1 Exemple avec MongoCursor::slaveOkay()

<?php

MongoCursor::$slaveOkay = false;

// On ne peut pas faire la requête sur un serveur secondaire
$cursor = $collection->find();

// On peut faire la requête sur un serveur secondaire
$cursor = $collection->find()->slaveOkay();

MongoCursor::$slaveOkay = true;

// On peut faire la requête sur un serveur secondaire
$cursor = $collection->find();

// On ne peut pas faire la requête sur un serveur secondaire
$cursor = $collection->find()->slaveOkay(false);

?>

Voir aussi

  • Préférences de lecture
  • MongoCursor::setReadPreference() - Définit les préférences de lecture pour cette requête
  • MongoCursor::getReadPreference() - Récupère les préférences de lecture pour cette requête

Historique

Version | Description
1.5.0 | Cette méthode est devenue obsolète, en faveur de la méthode MongoCursor::setReadPreference() et Préférences de lecture.


Utilise le mode de capture pour la requête

  • « MongoCursor::slaveOkay
  • MongoCursor::sort »
  • PHP Manual
  • MongoCursor
  • Utilise le mode de capture pour la requête

MongoCursor::snapshot

(PECL mongo >=0.9.4)

MongoCursor::snapshot — Utilise le mode de capture pour la requête

Description

public MongoCursor MongoCursor::snapshot ( void )

Utilise le mode de capture pour la requête. Le mode de capture assure qu'un document ne sera pas retourné plus d'une fois, car une opération d'écriture a pour conséquence le déplacement du document. Les documents insérés ou effacés pendant la durée de vie du curseur peuvent être retournés ou non, sans respecter le mode de capture.

Les requêtes avec de courtes réponses (inférieures à 1Mo) sont toujours capturées.

Le mode de capture ne peut être utilisé avec les tris, avec des astuces explicites, ou avec des requêtes sur des collections partagées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le curseur.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à être parcouru.

Voir aussi

La document coeur de MongoDB sur » l'opérateur $snapshot.


Trie les résultats par ordre de champs

  • « MongoCursor::snapshot
  • MongoCursor::tailable »
  • PHP Manual
  • MongoCursor
  • Trie les résultats par ordre de champs

MongoCursor::sort

(PECL mongo >=0.9.0)

MongoCursor::sort — Trie les résultats par ordre de champs

Description

public MongoCursor MongoCursor::sort ( array $fields )

Liste de paramètres

fields

Un tableau de champs utilisés pour le tri. Chaque élément de ce tableau contient une clé représentant le nom du champ, et comme valeur, soit 1 pour un tri croissant, soit -1 pour un tri décroissant.

Chaque résultat est d'abord trié sur le premier champs du tableaun puis (si il en existe), sur le second champ du tableau, etc. Ceci signifie que l'ordre des champs du tableau fields est important. Voir aussi la section sur les exemples.

Valeurs de retour

Retourne le même curseur utilisé dans l'appel de cette méthode.

Erreurs / Exceptions

Emet une exception MongoCursorException si le curseur a commencé à itérer.

Exemples

Exemple #1 Exemple avec MongoCursor::sort()

<?php
// tri sur le champ x croissant
$cursor->sort(array('x' => 1));

// L'ordre dans le tableau associatif est important. Actuellement,
// ces deux exemples produiront des résultats différents :

// Tri sur la date, croissant, et sur l'age, décroissant
$cursor->sort(array('date' => 1, 'age' => -1));

// Tri sur l'age, décroissant, et sur la date, croissant
$cursor->sort(array('age' => -1, 'date' => 1));
?>


Définit si le curseur doit être conservé ouvert après la récupération du dernier résultat

  • « MongoCursor::sort
  • MongoCursor::timeout »
  • PHP Manual
  • MongoCursor
  • Définit si le curseur doit être conservé ouvert après la récupération du dernier résultat

MongoCursor::tailable

(PECL mongo >=0.9.4)

MongoCursor::tailable — Définit si le curseur doit être conservé ouvert après la récupération du dernier résultat

Description

public MongoCursor MongoCursor::tailable ([ bool $tail = true ] )

Mongo a une fonction permettant de voir le contenu du curseur en temps réel, similaire à la commande Unix "tail -f".

En utilisant cette fonctionnalité, le curseur n'est pas fermé lorsque le dernier résultat est récupéré. Au lieu de cela, le curseur marque la position du dernier objet. Vous pouvez ainsi utiliser plus tard ce curseur, depuis sa position courante, si d'autres données sont reçues.

Comme tous les curseurs latents, le curseur devient non valide à certain point, par exemple, lorsque la référence de l'objet final est effacée. Ainsi, vous devez être prêt à effectuer une nouvelle requête si le curseur est mort.

Liste de paramètres

tail

Si le curseur doit être consulté en temps réel.

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à être parcouru.

Exemples

Exemple #1 Exemple avec MongoCursor::tailable()

<?php

$cursor = $collection->find()->tailable();

$results = array();

while (1) {
    if (!$cursor->hasNext()) {
        // Nous avons lu tous les résultats, on peut sortir
        if ($cursor->dead()) {
            break;
        }
        // On lit tous les résultats, et on attend les suivants
        sleep(10);
    }
    else {
        $results[] = $cursor->getNext();
    }
}

?>

Voir aussi

Documentation MongoDB sur les » curseurs.

  • MongoCursor::awaitData() - Définit si le curseur doit attendre un curseur tailable pour retourner plus de données


Défini un délai maximum d'attente côté client pour cette requête

  • « MongoCursor::tailable
  • MongoCursor::valid »
  • PHP Manual
  • MongoCursor
  • Défini un délai maximum d'attente côté client pour cette requête

MongoCursor::timeout

(PECL mongo >=1.0.3)

MongoCursor::timeout — Défini un délai maximum d'attente côté client pour cette requête

Description

public MongoCursor MongoCursor::timeout ( int $ms )

Un délai maximum d'attente peut être défini à n'importe quel moment, et affectera les requêtes suivantes du curseur, incluant la récupération de plus de résultats depuis la base de données.

Liste de paramètres

ms

Le nombre de millisecondes que le curseur doit attente une réponse. Pour attendre indéfiniement, utilisez la valeur -1. Par défaut, le curseur attendra 30000 millisecondes (30 secondes).

Valeurs de retour

Ce curseur.

Erreurs / Exceptions

Si la requête prend plus de temps que le nombre de millisecondes spécifié, une exception de type MongoCursorTimeoutException sera émise.

Exemples

Exemple #1 Exemple avec MongoCursor::timeout()

Dans l'exemple suivant, le driver va attendre indéfiniement la réponse initiale de la base de données, puis, va attendre 100ms pour les réponses suivantes.

<?php

$cursor = $collection->find();
$cursor->timeout(-1);

/* $cursor->hasNext() exécute la requête. Un délai d'attente infini a été défini, aussi
 * le driver va attendre autant de temps que nécessaire la réponse.
 */
while ($cursor->hasNext()) {
    $cursor->timeout(100);

    /* Un délai d'attente maximal a maintenant été défini, aussi, si le curseur
     * doit récupérer plus de résultats depuis la base de données, il n'attendra
     * la réponse que pendant 100ms.
     */
    try {
        print_r($cursor->getNext());
    } catch (MongoCursorTimeoutException $e) {
        echo "La requête prend trop longtemps !";
    }
}

?>

Notes

Avertissement

Ce comportement ne permet pas d'annuler une opération trop longue au niveau du serveur MongoDB ; il ne va qu'informer le driver d'arrêter d'attendre une réponse, et lancer une exception MongoCursorTimeoutException après la durée définie. Si vous devez spécifier un délai maximal d'attente côté serveur pour une requête, veuillez utiliser la méthode MongoCursor::maxTimeMS().

Voir aussi

  • MongoCursorInterface::timeout() - Définit un délai maximal d'attente côté client pour cette requête
  • L'option socketTimeoutMS pour MongoClient::__construct()


Vérifie si le curseur lit un résultat valide

  • « MongoCursor::timeout
  • MongoCursorInterface »
  • PHP Manual
  • MongoCursor
  • Vérifie si le curseur lit un résultat valide

MongoCursor::valid

(PECL mongo >=0.9.0)

MongoCursor::valid — Vérifie si le curseur lit un résultat valide

Description

public bool MongoCursor::valid ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le résultat courant n'est pas NULL, FALSE sinon.

Voir aussi

  • Iterator::valid() - Vérifie si la position courante est valide


L'interface MongoCursorInterface

(PECL mongo >=1.5.0)

Introduction

Interface pour les curseurs, qui peut être utilisée pour itérer au travers du résultat d'une commande ou d'une requête de base de données. Cette interface est implémentée par les classes MongoCursor et MongoCommandCursor.

Note: De même que Traversable, cette interface ne peut pas être implémentée dans des sprints PHP.

Synopsis de la classe

MongoCursorInterface extends Iterator {
/* Méthodes */
abstract public MongoCursorInterface batchSize ( int $batchSize )
abstract public bool dead ( void )
abstract public array getReadPreference ( void )
abstract public array info ( void )
abstract public MongoCursorInterface setReadPreference ( string $read_preference [, array $tags ] )
abstract public MongoCursorInterface timeout ( int $ms )
/* Méthodes héritées */
abstract public mixed Iterator::current ( void )
abstract public scalar Iterator::key ( void )
abstract public void Iterator::next ( void )
abstract public void Iterator::rewind ( void )
abstract public boolean Iterator::valid ( void )
}

Sommaire

  • MongoCursorInterface::batchSize — Limite le nombre d'éléments retourné dans un lot
  • MongoCursorInterface::dead — Vérifie s'il y a des résultats qui n'ont pas encore été envoyés depuis la base de données
  • MongoCursorInterface::getReadPreference — Récupère les préférence de lecture pour cette requête
  • MongoCursorInterface::info — Récupère des informations sur la création du curseur et son itération
  • MongoCursorInterface::setReadPreference — Définit les préférences de lecture pour cette requête
  • MongoCursorInterface::timeout — Définit un délai maximal d'attente côté client pour cette requête


Limite le nombre d'éléments retourné dans un lot

  • « MongoCursorInterface
  • MongoCursorInterface::dead »
  • PHP Manual
  • MongoCursorInterface
  • Limite le nombre d'éléments retourné dans un lot

MongoCursorInterface::batchSize

(PECL mongo >=1.5.0)

MongoCursorInterface::batchSize — Limite le nombre d'éléments retourné dans un lot

Description

abstract public MongoCursorInterface MongoCursorInterface::batchSize ( int $batchSize )

Un curseur, typiquement, récupère un lot d'objets résultants, et les stocke localement. Cette méthode définit la valeur de la taille du lot pour configurer le nombre de documents récupérés depuis le serveur en une fois.

Liste de paramètres

batchSize

Le nombre de résultats à retourner par lot.

Valeurs de retour

Retourne ce curseur.


Vérifie s'il y a des résultats qui n'ont pas encore été envoyés depuis la base de données

  • « MongoCursorInterface::batchSize
  • MongoCursorInterface::getReadPreference »
  • PHP Manual
  • MongoCursorInterface
  • Vérifie s'il y a des résultats qui n'ont pas encore été envoyés depuis la base de données

MongoCursorInterface::dead

(PECL mongo >=1.5.0)

MongoCursorInterface::dead — Vérifie s'il y a des résultats qui n'ont pas encore été envoyés depuis la base de données

Description

abstract public bool MongoCursorInterface::dead ( void )

Cette méthode vérifie si le curseur est à la fin, et que la base de données n'a plus de résultats à envoyer au client. Un curseur devenu "mort" ne signifie pas obligatoirement qu'il n'y a plus de résultats disponibles pour l'itération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE s'il y a encore des résultats qui n'ont pas encore été envoyés au client, FALSE sinon.


Récupère les préférence de lecture pour cette requête

  • « MongoCursorInterface::dead
  • MongoCursorInterface::info »
  • PHP Manual
  • MongoCursorInterface
  • Récupère les préférence de lecture pour cette requête

MongoCursorInterface::getReadPreference

(PECL mongo >=1.6.0)

MongoCursorInterface::getReadPreference — Récupère les préférence de lecture pour cette requête

Description

abstract public array MongoCursorInterface::getReadPreference ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne un tableau décrivant les préférences de lecture. Ce tableau contient les valeurs type contenant une chaîne représentant le mode de préférence de lecture (suivant les MongoClient), et tagsets contenant une liste de tous les critères du jeu de tags. Si aucun jeu de tags n'est spécifié, tagsets ne sera pas présent dans ce tableau.

Voir aussi

  • La documentation sur les préférences de lecture.
  • MongoCursorInterface::setReadPreference() - Définit les préférences de lecture pour cette requête


Récupère des informations sur la création du curseur et son itération

  • « MongoCursorInterface::getReadPreference
  • MongoCursorInterface::setReadPreference »
  • PHP Manual
  • MongoCursorInterface
  • Récupère des informations sur la création du curseur et son itération

MongoCursorInterface::info

(PECL mongo >=1.5.0)

MongoCursorInterface::info — Récupère des informations sur la création du curseur et son itération

Description

abstract public array MongoCursorInterface::info ( void )

Retourne des informations sur la création du curseur et son itération. Cette méthode peut être appelée avant et après le début de l'itération du curseur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les champs namespace, batch size, limit, skip, flags, query, et projected de ce surseur. Si le curseur a débuté son itération, des informations supplémentaires sur l'itération et la connexion seront incluses.


Définit les préférences de lecture pour cette requête

  • « MongoCursorInterface::info
  • MongoCursorInterface::timeout »
  • PHP Manual
  • MongoCursorInterface
  • Définit les préférences de lecture pour cette requête

MongoCursorInterface::setReadPreference

(PECL mongo >=1.6.0)

MongoCursorInterface::setReadPreference — Définit les préférences de lecture pour cette requête

Description

abstract public MongoCursorInterface MongoCursorInterface::setReadPreference ( string $read_preference [, array $tags ] )

Liste de paramètres

read_preference

Le mode de préférence de lecture : MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, ou MongoClient::RP_NEAREST.

tags

Un tableau de zéro ou plusieurs jeux de tags, où chaque jeu de tags est lui même un tableau de critères utilisés pour faire correspondre les tags sur les membres du jeu de réplication.

Valeurs de retour

Retourne ce curseur.

Erreurs / Exceptions

Emets une alerte de niveau E_WARNING si soit le paramètre est invalide, soit si un ou plusieurs jeux de tags sont fournis avec le mode de préférence de lecture MongoClient::RP_PRIMARY.

Voir aussi

  • La documentation sur les préférences de lecture.
  • MongoCursorInterface::getReadPreference() - Récupère les préférence de lecture pour cette requête


Définit un délai maximal d'attente côté client pour cette requête

  • « MongoCursorInterface::setReadPreference
  • MongoCommandCursor »
  • PHP Manual
  • MongoCursorInterface
  • Définit un délai maximal d'attente côté client pour cette requête

MongoCursorInterface::timeout

(PECL mongo >=1.5.0)

MongoCursorInterface::timeout — Définit un délai maximal d'attente côté client pour cette requête

Description

abstract public MongoCursorInterface MongoCursorInterface::timeout ( int $ms )

Un délai maximal d'attente peut être défini à tout moment et affectera les prochaines données associées avec ce curseur, incluant la récupération de plus de résultats depuis la base de données.

Liste de paramètres

ms

Le nombre de millisecondes que le curseur doit attendre une réponse. Utiliser la valeur -1 pour attendre indéfiniement. Par défaut, le curseur attendra 30000 millisecondes (30 secondes).

Valeurs de retour

Retourne ce curseur.

Erreurs / Exceptions

Les méthodes récupérants des résultats lanceront une exception MongoCursorTimeoutException si les données récupérées prennent plus de temps que le nombre de millisecondes spécifiées.

Voir aussi

  • L'option socketTimeoutMS du constructeur MongoClient::__construct()


La Classe MongoCommandCursor

(PECL mongo >=1.5.0)

Introduction

Un curseur de commande est similaire à un MongoCursor excepté qu'il est utilisé pour parcourir les résultats d'une commande de base de données au lieu d'une requête normale. Les curseurs de commande sont utiles pour parcourir de larges jeux de résultats qui peuvent dépasser la taille limite d'un document (actuellement de 16MB) d'une seule réponse MongoDB::command().

Malgré le fait que vous pouvez créer des curseurs de commande en utilisant la méthode MongoCommandCursor::__construct() ou la méthode MongoCommandCursor::createFromDocument(), vous devriez plutôt utiliser une commande spécifique comme MongoCollection::aggregateCursor().

Noter que le curseur ne contient pas les résultats de la commande de la base de données ; il ne gère que la consultation du résultat. Aussi, si vous affichez un curseur (i.e. avec une fonction comme var_dump() ou print_r()), vous verrez l'objet curseur, mais vous ne verrez pas les documents résultants.

Les états d'un Curseur

Un MongoCommandCursor possède 2 "périodes de vie" : pré- et post- commande. Lorsqu'un curseur est créé, il n'a pas encore interrogé la base de données, alors il est dans son état pré-commande. Lorsque le client tente d'abord de récupérer un résultat (en appelant la méthode MongoCommandCursor::rewind(), directement ou indirectement), le curseur se déplace dans un état de post-commande.

La taille du lot et la durée maximale d'attente du socket du curseur de commande peuvent être configurés dans les deux états pre- et post-.

Exemple #1 Ajout d'options à MongoCommandCursor

<?php

$cursor = new MongoCommandCursor(...);

$cursor = $cursor->batchSize( 4 );

foreach ($cursor as $result) {
    var_dump($result);
}
?>

Synopsis de la classe

MongoCommandCursor implements MongoCursorInterface , Iterator {
/* Méthodes */
public MongoCommandCursor batchSize ( int $batchSize )
public __construct ( MongoClient $connection , string $ns , array $command = array() )
public static MongoCommandCursor createFromDocument ( MongoClient $connection , string $hash , array $document )
public array current ( void )
public bool dead ( void )
public array getReadPreference ( void )
public array info ( void )
public int key ( void )
public void next ( void )
public array rewind ( void )
public MongoCommandCursor setReadPreference ( string $read_preference [, array $tags ] )
public MongoCommandCursor timeout ( int $ms )
public bool valid ( void )
}

Voir aussi

  • MongoDB::command()
  • MongoCollection::aggregateCursor()

Sommaire

  • MongoCommandCursor::batchSize — Limite le nombre d'éléments retournés dans un lot
  • MongoCommandCursor::__construct — Crée un nouveau curseur de commande
  • MongoCommandCursor::createFromDocument — Crée un nouveau curseur de commande depuis un document de commande existant
  • MongoCommandCursor::current — Retourne l'élément courant
  • MongoCommandCursor::dead — Vérifie s'il y a des documents qui n'ont pas encore été envoyés depuis la base de données
  • MongoCommandCursor::getReadPreference — Récupère les préférences de lecture pour cette commande
  • MongoCommandCursor::info — Récupère des informations sur la création du curseur et son itération
  • MongoCommandCursor::key — Retourne l'index du résultat courant du jeu de résultats
  • MongoCommandCursor::next — Avance le curseur au prochain résultat
  • MongoCommandCursor::rewind — Exécute la commande, et replace le curseur au début du jeu de résultats
  • MongoCommandCursor::setReadPreference — Défini les préférences de lecture pour cette commande
  • MongoCommandCursor::timeout — Défini le délai d'attente maximal côté client pour cette commande
  • MongoCommandCursor::valid — Vérifie si le curseur lit un résultat valide


Limite le nombre d'éléments retournés dans un lot

  • « MongoCommandCursor
  • MongoCommandCursor::__construct »
  • PHP Manual
  • MongoCommandCursor
  • Limite le nombre d'éléments retournés dans un lot

MongoCommandCursor::batchSize

(PECL mongo >=1.5.0)

MongoCommandCursor::batchSize — Limite le nombre d'éléments retournés dans un lot

Description

public MongoCommandCursor MongoCommandCursor::batchSize ( int $batchSize )

Un curseur, typiquement, parcourt un lot d'objets résultants et les stocke locallement. Cette méthode définit la valeur batchSize pour configurer la quantité de documents à récupérer depuis le serveur dans un seul paquet de données.

Liste de paramètres

batchSize

Le nombre de résultats à retourner par lot. Chaque lot requiert un aller-retour au serveur.

Ceci ne peut pas écraser la limite MongoDB de données que le serveur peut retourner au client (i.e. si vous définissez la taille du lot à 1.000.000.000, MongoDB continuera de retourner 4-16MB de résultats par lot).

Valeurs de retour

Retourne ce curseur.

Exemples

Exemple #1 Exemple avec MongoCommandCursor::batchSize()

<?php
$commandCursor->batchSize(20);
?>

Voir aussi

  • MongoCursorInterface::batchSize() - Limite le nombre d'éléments retourné dans un lot


Crée un nouveau curseur de commande

  • « MongoCommandCursor::batchSize
  • MongoCommandCursor::createFromDocument »
  • PHP Manual
  • MongoCommandCursor
  • Crée un nouveau curseur de commande

MongoCommandCursor::__construct

(PECL mongo >=1.5.0)

MongoCommandCursor::__construct — Crée un nouveau curseur de commande

Description

public MongoCommandCursor::__construct ( MongoClient $connection , string $ns , array $command = array() )

Dans la plupart des cas, vous n'avez pas à créer un MongoCommandCursor manuellement, mais plutôt utiliser une méthode comme MongoCollection::aggregateCursor() et MongoCollection::parallelCollectionScan(). Cependant, si le serveur ajoute de nouvelles commandes qui peuvent retourner des curseurs, ce constructeur peut être utile en l'absence de méthodes spécifiques. Il est tout de même plus simple d'utiliser la méthode MongoCommandCursor::createFromDocument().

Liste de paramètres

connection

La connexion à la base de données.

ns

Nom complet de la base de données et de la collection (i.e. "test.foo").

command

Commande de base de données.

Valeurs de retour

Retourne le nouveau curseur.

Exemples

Exemple #1 Exemple avec MongoCommandCursor

<?php
$m = new MongoClient;

// Définit le pipeline d'agrégation
$pipeline = [
    [ '$group' => [
        '_id' => '$country_code',
        'timezones' => [ '$addToSet' => '$timezone' ]
    ] ],
    [ '$sort' => [ '_id' => 1 ] ],
];

// Construit un objet MongoCommandCursor
$cursor = new MongoCommandCursor(
    $m, // Objet MongoClient
    'demo.cities', // Espace de noms
    [
        'aggregate' => 'cities',
        'pipeline' => $pipeline,
        'cursor' => [ 'batchSize' => 0 ],
    ]
);

foreach($cursor as $result) {
   …
}
?>

Voir aussi

  • MongoCommandCursor::createFromDocument() - Crée un nouveau curseur de commande depuis un document de commande existant
  • MongoCollection::aggregateCursor() - Exécute une commande d'agrégation, et récupère les résultats via un curseur
  • MongoCollection::parallelCollectionScan() - Retourne un tableau de curseurs pour parcourir une collection complète en parallèle


Crée un nouveau curseur de commande depuis un document de commande existant

  • « MongoCommandCursor::__construct
  • MongoCommandCursor::current »
  • PHP Manual
  • MongoCommandCursor
  • Crée un nouveau curseur de commande depuis un document de commande existant

MongoCommandCursor::createFromDocument

(PECL mongo >=1.5.0)

MongoCommandCursor::createFromDocument — Crée un nouveau curseur de commande depuis un document de commande existant

Description

public static MongoCommandCursor MongoCommandCursor::createFromDocument ( MongoClient $connection , string $hash , array $document )

Utilisez cette méthode si vous avez un résultat de commande brute qui contient des informations de curseur. Notez que les curseurs créés avec cette méthode ne peuvent pas être parcouru plusieurs fois, sachant qu'ils perdent la commande originale nécessaire à la ré-exécution.

Liste de paramètres

connection

La connexion à la base de données.

hash

Le hash de la connexion, tel qu'obtenu via le troisième argument par référence de la méthodec MongoDB:command().

document

Document contenant les informations du curseur. Ce document doit contenir les champs id, ns et firstBatch. Un tel document est obtenu par appel à la méthode MongoDB:command() avec les arguments appropriés à retourner au curseur, et pas seulement un résultat. Voir l'exemple ci-dessous.

Valeurs de retour

Retourne le nouveau curseur.

Exemples

Exemple #1 Exemple avec MongoCommandCursor::createFromDocument()

<?php
$m = new MongoClient;
$d = $m->demo;

// Définit le pipeline d'agrégation
$pipeline = [
    [ '$group' => [
        '_id' => '$country_code',
        'timezones' => [ '$addToSet' => '$timezone' ]
    ] ],
    [ '$sort' => [ '_id' => 1 ] ],
];

// Exécution de la commande. L'option "cursor" ci-dessous indique au serveur
// de retourner un document d'information de curseur plutôt que des résultats
$r = $d->command(
    [
        'aggregate' => 'cities',
        'pipeline' => $pipeline,
        'cursor' => [ 'batchSize' => 1 ],
    ],
    null,
    $hash
);

// Affiche les résultats ainsi que le hash
var_dump( $r, $hash );

// Construit le curseur de commande
$cursor = MongoCommandCursor::createFromDocument( $m, $hash, $r );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["cursor"]=>
  array(3) {
    ["id"]=>
    object(MongoInt64)#5 (1) {
      ["value"]=>
      string(12) "392143983421"
    }
    ["ns"]=>
    string(11) "demo.cities"
    ["firstBatch"]=>
    array(1) {
      [0]=>
      array(2) {
        ["_id"]=>
        string(2) "AD"
        ["timezones"]=>
        array(1) {
          [0]=>
          string(14) "Europe/Andorra"
        }
      }
    }
  }
  ["ok"]=>
  float(1)
}
string(25) "localhost:27017;-;.;17617"

Comme vous pouvez le voir, les informations de curseur retournées contiennent les champs id, ns et firstBatch.

Voir aussi

  • MongoCommandCursor::__construct() - Crée un nouveau curseur de commande


Retourne l'élément courant

  • « MongoCommandCursor::createFromDocument
  • MongoCommandCursor::dead »
  • PHP Manual
  • MongoCommandCursor
  • Retourne l'élément courant

MongoCommandCursor::current

(PECL mongo >=1.5.0)

MongoCommandCursor::current — Retourne l'élément courant

Description

public array MongoCommandCursor::current ( void )

Cette méthode retourne NULL tant que la méthode MongoCommandCursor::rewind() est appelée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le document courant, sous la forme d'un tableau associatif. NULL sera retourné s'il n'y a aucun résultat.

Voir aussi

  • Iterator::current() - Retourne l'élément courant


Vérifie s'il y a des documents qui n'ont pas encore été envoyés depuis la base de données

  • « MongoCommandCursor::current
  • MongoCommandCursor::getReadPreference »
  • PHP Manual
  • MongoCommandCursor
  • Vérifie s'il y a des documents qui n'ont pas encore été envoyés depuis la base de données

MongoCommandCursor::dead

(PECL mongo >=1.5.0)

MongoCommandCursor::dead — Vérifie s'il y a des documents qui n'ont pas encore été envoyés depuis la base de données

Description

public bool MongoCommandCursor::dead ( void )

Cette méthode vérifie si le curseur MongoCommandCursor s'est erminé, et que la base de données n'a plus de résultats à envoyer au client. Un curseur devenu "mort" ne signifie pas nécessairement qu'il n'y a plus de résultats disponibles pour son itération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE s'il y a encore des résultats qui n'ont pas été envoyés au client, FALSE sinon.

Voir aussi

  • MongoCursorInterface::dead() - Vérifie s'il y a des résultats qui n'ont pas encore été envoyés depuis la base de données


Récupère les préférences de lecture pour cette commande

  • « MongoCommandCursor::dead
  • MongoCommandCursor::info »
  • PHP Manual
  • MongoCommandCursor
  • Récupère les préférences de lecture pour cette commande

MongoCommandCursor::getReadPreference

(PECL mongo >=1.6.0)

MongoCommandCursor::getReadPreference — Récupère les préférences de lecture pour cette commande

Description

public array MongoCommandCursor::getReadPreference ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne un tableau décrivant les préférences de lecture. Ce tableau contient les valeurs type contenant une chaîne représentant le mode de préférence de lecture (suivant les MongoClient), et tagsets contenant une liste de tous les critères du jeu de tags. Si aucun jeu de tags n'est spécifié, tagsets ne sera pas présent dans ce tableau.

Exemples

Exemple #1 Exemple de valeur retournée par MongoCommandCursor::getReadPreference()

<?php

$m = new MongoClient('mongodb://rs1.example.com:27017', array('replicaSet' => 'myReplSetName'));
$collection = $m->selectCollection('test', 'people');

// Si un MongoCommandCursor est directement construit, il va hériter des
// préférences de lecture de l'instance MongoClient passé au constructeur ;
// cependant, MongoCollection::aggregateCursor() va recevoir l'héritage
// de MongoCommandCursor des préférences de lecture de la collection.
$collection->setReadPreference(MongoClient::RP_SECONDARY);

$cursor = $collection->aggregateCursor( [
    [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
    [ '$sort' => [ 'points' => -1 ] ],
] );

var_dump($cursor->getReadPreference());

?>

L'exemple ci-dessus va afficher :

array(1) {
  ["type"]=>
  string(9) "secondary"
}

Voir aussi

  • La documentation sur les préférences de lecture.
  • MongoCommandCursor::setReadPreference() - Défini les préférences de lecture pour cette commande
  • MongoCursorInterface::getReadPreference() - Récupère les préférence de lecture pour cette requête


Récupère des informations sur la création du curseur et son itération

  • « MongoCommandCursor::getReadPreference
  • MongoCommandCursor::key »
  • PHP Manual
  • MongoCommandCursor
  • Récupère des informations sur la création du curseur et son itération

MongoCommandCursor::info

(PECL mongo >=1.5.0)

MongoCommandCursor::info — Récupère des informations sur la création du curseur et son itération

Description

public array MongoCommandCursor::info ( void )

Cette méthode peut être appelée avant ou après le début de l'itération du curseur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les champs namespace, batch size, limit, skip, flags, query, et projected de ce curseur. Si le curseur a commencé son itération, d'autres informations sur l'itération, et la connexion seront présentes.

Exemples

Exemple #1 Exemple avec MongoCommandCursor::info()

<?php
$m = new MongoClient();

$cursor = new MongoCommandCursor(
    $m, // MongoClient object
    'demo.cities', // namespace
    [
        'aggregate' => 'cities',
        'pipeline' => [ [ '$match' => [ '_id' => [ '$exists' => true ] ] ] ],
        'cursor' => [ 'batchSize' => 1 ],
    ]
);

echo "Avant le début de l'itération :\n";
var_dump($cursor->info());

echo "\nAprès le début de l'itération :\n";
$cursor->rewind();
var_dump($cursor->info());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Avant le début de l'itération :
array(8) {
  ["ns"]=>
  string(11) "demo.cities"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(3) {
    ["aggregate"]=>
    string(6) "cities"
    ["pipeline"]=>
    array(1) {
      [0]=>
      array(1) {
        ["$match"]=>
        array(1) {
          ["_id"]=>
          array(1) {
            ["$exists"]=>
            bool(true)
          }
        }
      }
    }
    ["cursor"]=>
    array(1) {
      ["batchSize"]=>
      int(1)
    }
  }
  ["fields"]=>
  NULL
  ["started_iterating"]=>
  bool(false)
}

Après le début de l'itération :
array(17) {
  ["ns"]=>
  string(11) "demo.cities"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(3) {
    ["aggregate"]=>
    string(6) "cities"
    ["pipeline"]=>
    array(1) {
      [0]=>
      array(1) {
        ["$match"]=>
        array(1) {
          ["_id"]=>
          array(1) {
            ["$exists"]=>
            bool(true)
          }
        }
      }
    }
    ["cursor"]=>
    array(1) {
      ["batchSize"]=>
      int(1)
    }
  }
  ["fields"]=>
  NULL
  ["started_iterating"]=>
  bool(true)
  ["id"]=>
  int(185840310129)
  ["at"]=>
  int(0)
  ["numReturned"]=>
  int(0)
  ["server"]=>
  string(25) "localhost:27017;-;.;23991"
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(27017)
  ["connection_type_desc"]=>
  string(10) "STANDALONE"
  ["firstBatchAt"]=>
  int(0)
  ["firstBatchNumReturned"]=>
  int(1)
}

Voir aussi

  • MongoCursorInterface::info() - Récupère des informations sur la création du curseur et son itération


Retourne l'index du résultat courant du jeu de résultats

  • « MongoCommandCursor::info
  • MongoCommandCursor::next »
  • PHP Manual
  • MongoCommandCursor
  • Retourne l'index du résultat courant du jeu de résultats

MongoCommandCursor::key

(PECL mongo >=1.5.0)

MongoCommandCursor::key — Retourne l'index du résultat courant du jeu de résultats

Description

public int MongoCommandCursor::key ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index du résultat courant dans le jeu de résultats.

Voir aussi

  • Iterator::key() - Retourne la clé de l'élément courant


Avance le curseur au prochain résultat

  • « MongoCommandCursor::key
  • MongoCommandCursor::rewind »
  • PHP Manual
  • MongoCommandCursor
  • Avance le curseur au prochain résultat

MongoCommandCursor::next

(PECL mongo >=1.5.0)

MongoCommandCursor::next — Avance le curseur au prochain résultat

Description

public void MongoCommandCursor::next ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

NULL.

Erreurs / Exceptions

Lance une exception MongoConnectionException si la base de données ne peut être jointe, et une exception MongoCursorTimeoutException si le délai d'attente maximal est atteint.

Voir aussi

  • Iterator::next() - Se déplace sur l'élément suivant


Exécute la commande, et replace le curseur au début du jeu de résultats

  • « MongoCommandCursor::next
  • MongoCommandCursor::setReadPreference »
  • PHP Manual
  • MongoCommandCursor
  • Exécute la commande, et replace le curseur au début du jeu de résultats

MongoCommandCursor::rewind

(PECL mongo >=1.5.0)

MongoCommandCursor::rewind — Exécute la commande, et replace le curseur au début du jeu de résultats

Description

public array MongoCommandCursor::rewind ( void )

Si le curseur a commencé son itération, la commande sera ré-exécutée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le document brute servi par le serveur.

Erreurs / Exceptions

Lance une exception MongoConnectionException si la base de données ne peut être atteinte et une exception MongoCursorTimeoutException si le délai d'attente maximal a été atteint.

Lance une exception MongoCursorException si le curseur a été créé avec la méthode MongoCommandCursor::createFromDocument() et que l'itération a déjà commencé. De tels curseurs ne peuvent être parcourus à plusieurs reprises, sachant qu'ils perdent la commande originale nécessaire à la ré-exécution.

Exemples

Exemple #1 Exemple avec MongoCommandCursor::rewind()

<?php
$rawResult = $commandCursor->rewind();

// Le curseur de commande est maintenant ré-initialisé au début du jeu de résultats

var_dump($rawResult);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["cursor"]=>
  array(3) {
    ["id"]=>
    object(MongoInt64)#5 (1) {
      ["value"]=>
      string(12) "310050110216"
    }
    ["ns"]=>
    string(9) "demo.test"
    ["firstBatch"]=>
    array(1) {
      [0]=>
      array(2) {
        ["_id"]=>
        object(MongoId)#6 (1) {
          ["$id"]=>
          string(24) "52f5691544670a8077b0dc51"
        }
        ["value"]=>
        string(2) "42"
      }
    }
  }
  ["ok"]=>
  float(1)
}

Voir aussi

  • Iterator::rewind() - Replace l'itérateur sur le premier élément


Défini les préférences de lecture pour cette commande

  • « MongoCommandCursor::rewind
  • MongoCommandCursor::timeout »
  • PHP Manual
  • MongoCommandCursor
  • Défini les préférences de lecture pour cette commande

MongoCommandCursor::setReadPreference

(PECL mongo >=1.6.0)

MongoCommandCursor::setReadPreference — Défini les préférences de lecture pour cette commande

Description

public MongoCommandCursor MongoCommandCursor::setReadPreference ( string $read_preference [, array $tags ] )

Liste de paramètres

read_preference

Le mode de préférence de lecture : MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, ou MongoClient::RP_NEAREST.

tags

Un tableau de zéro ou plusieurs jeux de tags, où chaque jeu de tags est lui même un tableau de critères utilisés pour faire correspondre les tags sur les membres du jeu de réplication.

Valeurs de retour

Retourne le curseur.

Erreurs / Exceptions

Emets une alerte de niveau E_WARNING si soit le paramètre est invalide, soit si un ou plusieurs jeux de tags sont fournis avec le mode de préférence de lecture MongoClient::RP_PRIMARY.

Exemples

Exemple #1 Exemple avec MongoCommandCursor::setReadPreference() et un tableau de jeux de tag

<?php

$m = new MongoClient('mongodb://rs1.example.com:27017', array('replicaSet' => 'myReplSetName'));
$collection = $m->selectCollection('test', 'people');

$cursor = $collection->aggregateCursor( [
    [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
    [ '$sort' => [ 'points' => -1 ] ],
] );

// Préférer le serveur le plus proche dans le centre de données "east" également
// utilisé pour le rporting, mais utilise le centre de données "west" en cas de problème
$cursor->setReadPreference(MongoClient::RP_NEAREST, [
    [ 'dc' => 'east', 'use' => 'reporting' ],
    [ 'dc' => 'west' ],
] );

foreach ($cursor as $person) {
    // ...
}

// Si les préférences de lecture sont changées, elles seront utilisées la
// prochaine fois que le curseur sera ré-initialisé et que la commande sera
// ré-exécutée.
$cursor->setReadPreference(MongoClient::RP_PRIMARY);

foreach ($cursor as $person) {
    // ...
}

?>

Voir aussi

  • La documentation sur les préférences de lecture.
  • MongoCommandCursor::getReadPreference() - Récupère les préférences de lecture pour cette commande
  • MongoCursorInterface::setReadPreference() - Définit les préférences de lecture pour cette requête


Défini le délai d'attente maximal côté client pour cette commande

  • « MongoCommandCursor::setReadPreference
  • MongoCommandCursor::valid »
  • PHP Manual
  • MongoCommandCursor
  • Défini le délai d'attente maximal côté client pour cette commande

MongoCommandCursor::timeout

(PECL mongo >=1.6.0)

MongoCommandCursor::timeout — Défini le délai d'attente maximal côté client pour cette commande

Description

public MongoCommandCursor MongoCommandCursor::timeout ( int $ms )

Un délai d'attente peut être défini à n'importe quel moment, et va impacter la récupération des prochaines données associée avec ce curseur, incluant la récupération de plus de résultats depuis la base de données.

Liste de paramètres

ms

Le nombre de millisecondes que ce curseur doit attente une réponse. Utilisez la valeur -1 pour attendre indéfiniement. Par défaut, le curseur attendra 30000 millisecondes (30 secondes).

Valeurs de retour

Ce curseur.

Erreurs / Exceptions

Une exception de type MongoCursorTimeoutException sera lancée si la récupération des données prend plus de temps que le délai spécifié.

Exemples

Exemple #1 Exemple avec MongoCommandCursor::timeout()

Dans l'exemple suivant, le driver va attendre 60 secondes la première réponse de la commande d'aggrégation. Il va également attendre 60 secondes chaque fois que le serveur doit être contacté pour l'obtention d'informations.

<?php

$m = new MongoClient;
$col = $m->database->collection;

$pipeline = [ … ];

$cursor = $col->aggregateCursor( $pipeline );
$cursor->timeout( 60000 ); // 60 secondes

foreach ( $cursor as $result ) {
   …
}

?>

Notes

Avertissement

Ce mécanisme ne va pas annuler les opérations longues du serveur MongoDB ; il ne va qu'informer le driver qu'il ne doit plus attendre une réponse, et lancer une exception de type MongoCursorTimeoutException après le délai spécifié. Si vous devez spécifier un délai d'attente maximal côté serveur pour une commande, vous devez utiliser l'option maxTimeMS de la méthode MongoCollection::aggregateCursor().

Voir aussi

  • MongoCollection::aggregateCursor() - Exécute une commande d'agrégation, et récupère les résultats via un curseur
  • MongoCursorInterface::timeout() - Définit un délai maximal d'attente côté client pour cette requête
  • L'option socketTimeoutMS de la méthode MongoClient::__construct()


Vérifie si le curseur lit un résultat valide

  • « MongoCommandCursor::timeout
  • Les types »
  • PHP Manual
  • MongoCommandCursor
  • Vérifie si le curseur lit un résultat valide

MongoCommandCursor::valid

(PECL mongo >=1.5.0)

MongoCommandCursor::valid — Vérifie si le curseur lit un résultat valide

Description

public bool MongoCommandCursor::valid ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si le résultat courant n'est pas NULL, FALSE sinon.

Voir aussi

  • Iterator::valid() - Vérifie si la position courante est valide


Les types

Sommaire

  • MongoId
  • MongoCode
  • MongoDate
  • MongoRegex
  • MongoBinData
  • MongoInt32
  • MongoInt64
  • MongoDBRef
  • MongoMinKey
  • MongoMaxKey
  • MongoTimestamp

MongoDB permet aux développeurs de sauvegarder et de rechercher des données exprimées dans tous les types PHP basiques, les types composés (tableaux, tableaux associatifs, et objets), ainsi qu'une demi-douzaine de classes fournies par le driver MongoDB (pour les expressions rationnelles, les dates, et les autres applications spécialisées).

Booléens et NULL

TRUE, FALSE, et NULL peuvent également être utilisés.

Les nombres

Les nombres sont distincts des chaînes en MongoDB : "123" ne correspond pas à 123. Aussi, si vous voulez vous assurer que les nombres soient correctement triés et correspondent parfaitement, vous devez vous assurer qu'ils sont bien sauvegardés comme des nombres.

<?php

$doc = array("a" => 123, "b" => "123");
$collection->insert($doc);

$doc->find(array("a" => 123));   // correspond
$doc->find(array("a" => "123")); // Ne correspond pas
$doc->find(array("a" => 123.0)); // correspond
$doc->find(array("b" => 123));   // Ne correspond pas
$doc->find(array("b" => "123")); // correspond

?>

Comme vous pouvez le constater ci-dessus, les nombres à virgule flottante peuvent être comparés et correspondre à des nombres entiers.

Les grands nombres

Par défaut, sur un système 32-bits, les nombres sont envoyés à la base de données sous la forme d'entiers 32-bits. Sur les système 64-bits, ils sont envoyés sous la forme d'entiers 64-bits. En raison de compatibilité ascendante, tous les systèmes linéarisent les entiers 64-bits sous la forme de nombres à virgule flottante. Les nombres à virgule flottante ne sont pas exacts. Si vous avez besoin de nombres exacts, vous devez personnaliser votre fichier de configuration php.ini.

Sur les systèmes 32-bits, si l'option mongo.long_as_object est définie, les entiers 64-bits seront retournés sous la forme d'objets MongoInt64. Les entiers seront stockés dans le champ value avec une précision parfaite (comme les chaînes). Vous pouvez également utiliser la méthode MongoInt64 pour sauvegarder des entiers 64-bits sur des machines 32-bits.

Sur les systèmes 64-bits, vous pouvez définir soit l'option mongo.long_as_object, soit l'option mongo.native_long. mongo.native_long retournera des entiers 64-bits et des entiers PHP "normaux". Vous pouvez utiliser la méthode MongoInt32 pour sauvegarder des entiers 32-bits sur des machines 64-bits.

Vous devriez définir les options mongo.long_as_object et mongo.native_long si vous comptez les utiliser, même si c'est le comportement par défaut (et ce, afin de vous protéger contre de futures modifications sur les valeurs par défaut).

Voir aussi : php.ini Options, MongoInt32, MongoInt64.

Les chaînes

Les chaînes doivent être en UTF-8. Les chaînes qui ne le sont pas doivent soit être converties en UTF-8 avant l'envoi à la base de données, soit sauvegardées comme données binaires.

Les expressions rationnelles peuvent être utilisées pour chercher une chaîne, et elles sont exprimées en utilisant la classe MongoRegex.

Les données binaires

Les chaînes non-UTF-8, les images ainsi que toutes autres données binaires doivent être envoyées à la base de données en utilisant le type MongoBinData.

Dates

Les dates peuvent être créées en utilisant la classe MongoDate. Elles sont stockées sous la forme du nombre de milliseconde depuis l'époque Unix.

MongoTimestamp n'a pas pour but de sauvegarder des dates ou des timestamps, elle est utilisée en interne par MongoDB. Sauf si vous créez un outil qui interagit avec la réplication ou le partage interne, vous devriez utiliser MongoDate, et non MongoTimestamp.

Identifiants uniques

Le driver créera automatiquement un champ _id avant d'insérer un document (sauf si un tel champ est spécifié par l'utilisateur). Ce champ est une instance de MongoId (appelée "ObjectId" dans la plupart des autres langages).

Ces identifiants sont sur 12 octets et composés de :

  • 4 octets pour le timestamp

    Deux enregistrements ne peuvent pas avoir le même identifiant s'ils sont insérés à des moments différents.

  • 3 octets pour l'identifiant de la machine

    Deux enregistrements ne peuvent pas avoir le même identifiant s'ils ont été insérés sur des machines différentes.

  • 2 octets pour l'identifiant du thread

    Deux enregistrement ne peuvent pas avoir le même identifiant s'ils ont été enregistrés par des threads différents s'exécutant sur la même machine.

  • 3 octets pour une valeur incrémentée

    Chaque fois qu'un identifiant est créé, un compteur global est incrémenté et utilisé comme valeur d'incrémentation pour le prochain identifiant.

Ainsi, deux enregistrements ne peuvent avoir le même identifiant tant qu'un seul processus, sur une seule machine, n'arrivera à insérer 256^3 (plus de 16 millions) de documents en une seconde, pouvant ainsi écraser le champ d'incrémentation.

JavaScript

MongoDB est fourni avec un moteur Javascript, ainsi, vous pouvez embarquer du Javascript dans une requête (en utilisant une clause $where), et l'envoyer directement à la base de données pour exécution, et l'utiliser pour effectuer des agrégations.

Pour des raisons de sécurité, utilisez le champ scope de MongoCode pour utiliser les variables PHP dans Javascript. Le code qui ne requière pas de valeurs externes peut soit utiliser MongoCode, soit être juste une chaîne. Voir la section sur la sécurité pour plus d'informations sur l'envoi de javascript à la base de données.

Tableaux et objets

Les tableaux et les objets peuvent également être sauvegardés dans la base de données. Un tableau avec des clés numériques ascendantes sera sauvegardé sous la forme d'un tableau, tout le reste sera sauvegardé sous la forme d'un objet.

<?php

// $scores sera sauvegardé sous la forme d'un tableau
$scores = array(98, 100, 73, 85);
$collection->insert(array("scores" => $scores));

// $scores sera sauvegardé sous la forme d'un objet
$scores = array("quiz1" => 98, "midterm" => 100, "quiz2" => 73, "final" => 85);
$collection->insert(array("scores" => $scores));

?>

Si votre requête pour ces objets utilise le shell de la base de données, elle ressemblera à :

> db.students.find()
{ "_id" : ObjectId("4b06beada9ad6390dab17c43"), "scores" : [ 98, 100, 73, 85 ] }
{ "_id" : ObjectId("4b06bebea9ad6390dab17c44"), "scores" : { "quiz1" : 98, "midterm" : 100, "quiz2" : 73, "final" : 85 } }

La base de données peut aussi sauvegarder des objets PHP arbitraires (même si ils seront retournés sous la forme de tableaux associatifs). Les champs sont utilisés pour les paires clés/valeurs. Par exemple, un article de blog peut ressembler à ceci :

<?php

  // la classe d'articles de blog
  class Post {

  var $author;
  var $content;
  var $comments = array();
  var $date;

  public function __construct($author, $content) {
  $this->author = $author;
$this->content = $content;
    $this->date = new MongoDate();
  }

  public function setTitle($title) {
    $this->title = $title;
  }
}

// Crée un simple article de blog et on l'insère dans la base de données
$post1 = new Post("Adam", "This is a blog post");

$blog->insert($post1);

// Il n'y a rien qui restreint le type du champ "author", il peut donc être un objet
// imbriqué
$author = array("name" => "Fred", "karma" => 42);
$post2 = new Post($author, "This is another blog post.");

// Nous créons un champ supplémentaire en définissant le titre
$post2->setTitle("Second Post");

$blog->insert($post2);

?>

Depuis le shell de la base de données, cela va ressembler à :

> db.blog.find()
{ "_id" : ObjectId("4b06c263edb87a281e09dad8"), "author" : "Adam", "content" : "This is a blog post", "comments" : [ ], "date" : "Fri Nov 20 2009 11:22:59 GMT-0500 (EST)" }
{ "_id" : ObjectId("4b06c282edb87a281e09dad9"), "author" : { "name" : "Fred", "karma" : 42 }, "content" : "This is a blog post", "comments" : [ ], "date" : "Fri Nov 20 2009 11:23:30 GMT-0500 (EST)", "title" : "Second Post" }

Le driver ne détectera pas les boucles de référence dans les tableaux et les objets. Par exemple, ceci donnera une erreur fatale :

<?php

$collection->insert($GLOBALS);

?>
Fatal error: Nesting level too deep - recursive dependency?
Si vous avez besoin d'insérer des documents qui peuvent avoir des dépendances récursives, vous devez les vérifier vous-même avant de les passez dans le driver.


La classe MongoId

(PECL mongo >=0.8.0)

Avertissement

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette classe sont :

  • MongoDB\BSON\ObjectID

Introduction

Un identifiant unique créé par les objets de la base. Si un objet est inséré dans la base de données sans le champ _id, ce champ y sera ajouté en utilisant la valeur de l'instance MongoId. Si les données ont un champ unique naturel (comme un nom d'utilisateur ou un timestamp), il conviendra de l'utiliser, mais sa valeur ne sera pas remplacée par la valeur de l'instance MongoId.

Les instances de la classe MongoId remplissent le rôle d'un champ auto-incrémenté d'une base de données relationnelle : fournir une clé unique si la base de données n'en possède pas. L'auto-incrémentation ne fonctionne pas correctement lors de bases de données partagées, vu qu'il est très difficile de déterminer le prochain nombre de la séquence. Cette classe permet de trouver rapidement une valeur unique, y compris lors de l'utilisation de bases de données partagées.

Chaque MongoId est sur 12 octets (ces chaînes seront sur 24 caractères héxadécimaux). Les premiers 4 octets sont un timestamp, les 3 suivants, un hash du nom de la machine cliente, les 2 suivants, les 2 derniers octets significatifs de l'identifiant du processus exécutant le script, et les 3 derniers, une valeur incrémentée.

Un MongoId est linéarisable/délinéarisable. Leur forme linéarisé est similaire à la forme d'une chaîne de caractères :

C:7:"MongoId":24:{4af9f23d8ead0e1d32000000}

Synopsis de la classe

MongoId {
public string $$id = NULL ;
/* Méthodes */
public __construct ([ string|MongoId $id = NULL ] )
public static string getHostname ( void )
public int getInc ( void )
public int getPID ( void )
public int getTimestamp ( void )
public static bool isValid ( mixed $value )
public static MongoId __set_state ( array $props )
public string __toString ( void )
}

Champs

$id
Ce champ contient la représentation sous forme de chaine de cet objet.

Note: Le nom de la propriété commence avec un caractère $. Il peut être accédé en utilisant une syntaxe d'analyser complexe de variable (i.e. $mongoId->{'$id'}).

Voir aussi

Documentation de MongoDB » concernant les ObjectIds.

Sommaire

  • MongoId::__construct — Crée un nouvel identifiant
  • MongoId::getHostname — Récupère le nom d'hôte utilisé pour les identifiants de cette machine
  • MongoId::getInc — Récupère la valeur incrémentée pour créer cet identifiant
  • MongoId::getPID — Récupère l'identifiant du processus
  • MongoId::getTimestamp — Retourne le timestamp depuis la création de l'id
  • MongoId::isValid — Vérifie si une valeur est un ObjectId valide
  • MongoId::__set_state — Crée un MongoId
  • MongoId::__toString — Retourne une représentation hexadécimale de cet identifiant


Crée un nouvel identifiant

  • « MongoId
  • MongoId::getHostname »
  • PHP Manual
  • MongoId
  • Crée un nouvel identifiant

MongoId::__construct

(PECL mongo >= 0.8.0)

MongoId::__construct — Crée un nouvel identifiant

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\BSON\ObjectID::__construct()

Description

public MongoId::__construct ([ string|MongoId $id = NULL ] )

Liste de paramètres

id

Une chaîne de caractères (doit être d'une longueur de 24 caractères héxadécimaux), ou une instance de la classe MongoId.

Valeurs de retour

Retourne un nouvel identifiant.

Historique

Version | Description
1.4.0 | Une exception est lancée lorsqu'une chaîne de caractères invalide est passée.

Exemples

Exemple #1 Exemple avec MongoId::__construct()

Cet exemple montre comment crée un nouvel identifiant. C'est rarement nécessaire, car le pilote ajoute automatiquement les identifiants avant de les stocker en base.

<?php

$id1 = new MongoId();
echo "$id1\n";

$id2 = new MongoId();
echo "$id2\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

49a7011a05c677b9a916612a
49a702d5450046d3d515d10d

Exemple #2 Exemple avec MongoId::__construct() et des paramètres

Cet exemple montre comment utiliser une chaîne de paramètres pour initialiser un objet MongoId avec une valeur donnée.

<?php
  $id1 = new MongoId();

  // Crée un nouvel identifiant pour $id1
  $id2 = new MongoId("$id1");

  // montre que $id1 et $id2 ont la même valeur hexadécimal
  var_dump($id1 == $id2);
  ?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)

Voir aussi

  • MongoId::__toString() - Retourne une représentation hexadécimale de cet identifiant
  • MongoId::isvalid() - Vérifie si une valeur est un ObjectId valide


Récupère le nom d'hôte utilisé pour les identifiants de cette machine

  • « MongoId::__construct
  • MongoId::getInc »
  • PHP Manual
  • MongoId
  • Récupère le nom d'hôte utilisé pour les identifiants de cette machine

MongoId::getHostname

(PECL mongo >= 1.0.8)

MongoId::getHostname — Récupère le nom d'hôte utilisé pour les identifiants de cette machine

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public static string MongoId::getHostname ( void )

Ceci retourne le nom d'hôte que MongoId utilise pour générer des identifiants uniques. Ce devrait être la même valeur que gethostname().

C'est identique à cette fonction:

<?php

public static function getHostname() {
    return gethostname();
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom d'hôte.


Récupère la valeur incrémentée pour créer cet identifiant

  • « MongoId::getHostname
  • MongoId::getPID »
  • PHP Manual
  • MongoId
  • Récupère la valeur incrémentée pour créer cet identifiant

MongoId::getInc

(PECL mongo >= 1.0.11)

MongoId::getInc — Récupère la valeur incrémentée pour créer cet identifiant

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public int MongoId::getInc ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur incrémentée utilisée pour créer l'identifiant MongoId.


Récupère l'identifiant du processus

  • « MongoId::getInc
  • MongoId::getTimestamp »
  • PHP Manual
  • MongoId
  • Récupère l'identifiant du processus

MongoId::getPID

(PECL mongo >= 1.0.11)

MongoId::getPID — Récupère l'identifiant du processus

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public int MongoId::getPID ( void )

Extrait le PID depuis l'ID Mongo.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le PID de MongoId.


Retourne le timestamp depuis la création de l'id

  • « MongoId::getPID
  • MongoId::isValid »
  • PHP Manual
  • MongoId
  • Retourne le timestamp depuis la création de l'id

MongoId::getTimestamp

(PECL mongo >= 1.0.1)

MongoId::getTimestamp — Retourne le timestamp depuis la création de l'id

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public int MongoId::getTimestamp ( void )

Équivaut à exécuter la fonction time() depuis la création de l'id.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de secondes depuis l'époque Unix et la création de l'id. Seulement les 4 premiers octets du timestamp sont stockés, aussi la méthode MongoDate est un meilleur choix pour stocker la valeur exacte.


Vérifie si une valeur est un ObjectId valide

  • « MongoId::getTimestamp
  • MongoId::__set_state »
  • PHP Manual
  • MongoId
  • Vérifie si une valeur est un ObjectId valide

MongoId::isValid

(PECL mongo >= 1.5.0)

MongoId::isValid — Vérifie si une valeur est un ObjectId valide

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public static bool MongoId::isValid ( mixed $value )

Cette méthode est utilisée pour vérifier une variable avant de la passer comme argument à MongoId::__construct().

Liste de paramètres

value

La valeur à vérifier.

Valeurs de retour

Retourne TRUE si value est une instance MongoId ou une chaîne de caractères composée d'exactement 24 caractères hexadécimaux ; sinon FALSE sera retourné.


Crée un MongoId

  • « MongoId::isValid
  • MongoId::__toString »
  • PHP Manual
  • MongoId
  • Crée un MongoId

MongoId::__set_state

(PECL mongo >= 1.0.8)

MongoId::__set_state — Crée un MongoId

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public static MongoId MongoId::__set_state ( array $props )

Cette fonction n'est à utiliser qu'en interne, par PHP ; elle ne devrait jamais être appelé directement par l'utilisateur.

Identique à la fonction :

<?php

public static function __set_state($props) {
    return new MongoId("000000000000000000000000");
}

?>

Liste de paramètres

props

Théoriquement, un tableau de propriétés utilisé pour créer un nouvel identifiant. Cependant, vu que les instances mongoId n'ont pas de propriétés, ce paramètre n'est pas utilisé.

Valeurs de retour

Un nouvel identifiant avec la valeur "000000000000000000000000".


Retourne une représentation hexadécimale de cet identifiant

  • « MongoId::__set_state
  • MongoCode »
  • PHP Manual
  • MongoId
  • Retourne une représentation hexadécimale de cet identifiant

MongoId::__toString

(PECL mongo >= 0.8.0)

MongoId::__toString — Retourne une représentation hexadécimale de cet identifiant

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\BSON\ObjectID::__toString()

Description

public string MongoId::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cet identifiant.

Exemples

Exemple #1 Exemple avec MongoId::__toString()

<?php

$m = new MongoClient();
$collection = $m->selectDB("foo")->selectCollection("bar");

$collection->insert(array( "x" => "y" ));
$collection->insert(array( "x" => "y" ));

$cursor = $collection->find();
$r1 = $cursor->next();
$r2 = $cursor->next();

echo $r1["_id"] . "\n";
echo $r2["_id"] . "\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

49a7011a05c677b9a916612a
49a702d5450046d3d515d10d


La classe MongoCode

(PECL mongo >=0.8.3)

Avertissement

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette classe sont :

  • MongoDB\BSON\JavaScript

Introduction

Cette classe représente du code JavaScript pour la base de données.

Les objets MongoCode sont composés de deux parties : une chaîne de code, et un contexte optionnel. La chaîne de code doit être du code JavaScript valide. Le contexte est un tableau associatif avec un nombre variable de paires clé/valeur.

Synopsis de la classe

MongoCode {
/* Méthodes */
public __construct ( string $code [, array $scope = array() ] )
public string __toString ( void )
}

Sommaire

  • MongoCode::__construct — Crée un nouvel objet de code
  • MongoCode::__toString — Retourne le code sous forme de chaîne


Crée un nouvel objet de code

  • « MongoCode
  • MongoCode::__toString »
  • PHP Manual
  • MongoCode
  • Crée un nouvel objet de code

MongoCode::__construct

(PECL mongo >= 0.8.3)

MongoCode::__construct — Crée un nouvel objet de code

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\BSON\JavaScript::__construct()

Description

public MongoCode::__construct ( string $code [, array $scope = array() ] )

Liste de paramètres

code

Une chaîne de code.

scope

Un contexte d'exécution du code.

Valeurs de retour

Retourne un nouvel objet de code.

Exemples

Exemple #1 Exemple avec MongoCode::__construct()

<?php

$code = new MongoCode('function() { '.
    'for(i=0;i<10;i++) {'.
        'db.foo.update({z : i}, {z : x});'.
    '}'.
    'return x-1;'.
 '}', array("x" => 4));
var_dump($code);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(MongoCode)#1 (2) {
  ["scope"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["code"]=>
  string(80) "function() { for(i=0;i<10;i++) { db.foo.update({z : i}, {z : x}); } return x-1; }"
}

Exemple #2 Utilisation de MongoCode() et $where

Cette requête interroge une collection pour récupérer les éléments où le champ 'x' est inférieur à la valeur $y. Notez que les objets PHP peuvent être passé dans le contexte JavaScript, et que la fonction JavaScript retourne un booléen.

<?php

$cursor = $collection->find(array('$where' => new MongoCode('function() { return this.x < y; }', array('y'=>$y))));

?>


Retourne le code sous forme de chaîne

  • « MongoCode::__construct
  • MongoDate »
  • PHP Manual
  • MongoCode
  • Retourne le code sous forme de chaîne

MongoCode::__toString

(PECL mongo >= 0.8.3)

MongoCode::__toString — Retourne le code sous forme de chaîne

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette méthode dans la nouvelle extension.

Description

public string MongoCode::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Ce code, le contexte n'et pas retourné.

Exemples

Exemple #1 Exemple avec MongoCode::__toString()

<?php

$code = new MongoCode('return x;', array("x"=>"hi"));
echo "$code\n";

$code = new MongoCode('function() { for(i=0;i<10;i++) { db.foo.update({x:i}, {x:i+1}); } }');
echo "$code\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

return x;
function() { for(i=0;i<10;i++) { db.foo.update({x:i}, {x:i+1}); } }


La classe MongoDate

(PECL mongo >=0.8.1)

Avertissement

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette classe sont :

  • MongoDB\BSON\UTCDateTime

Introduction

Représente un objet date pour la base. Cette classe peut être utilisée pour sauvegarder des dates dans la base de données mais aussi pour faire des requêtes à base de dates. Par exemple :

Exemple #1 Stockage des dates avec MongoDate

<?php

// Sauvegarde une date dans la base de données
$collection->save(array("ts" => new MongoDate()));

$start = new MongoDate(strtotime("2010-01-15 00:00:00"));
$end = new MongoDate(strtotime("2010-01-30 00:00:00"));

// Trouve les dates entre 1/15/2010 et 1/30/2010
$collection->find(array("ts" => array('$gt' => $start, '$lte' => $end)));

?>

MongoDB stocke les dates en millisecondes après epoch. Ceci signifie que les dates ne contiennent pas d'informations sur les fuseaux horaires. Les fuseaux doivent être stockés dans un champ séparé si besoin. Aussi, toute précision au delà de la milliseconde sera perdue lorsque le document est envoyé dans la base ou restauré de celle-ci.

Synopsis de la classe

MongoDate {
/* Champs */
public int $sec ;
public int $usec ;
/* Méthodes */
public __construct ([ int $sec = time() [, int $usec = 0 ]] )
public DateTime toDateTime ( void )
public string __toString ( void )
}

Sommaire

  • MongoDate::__construct — Crée une nouvelle date
  • MongoDate::toDateTime — Retourne un objet DateTime représentant cette date
  • MongoDate::__toString — Retourne la date sous forme de chaîne


Crée une nouvelle date

  • « MongoDate
  • MongoDate::toDateTime »
  • PHP Manual
  • MongoDate
  • Crée une nouvelle date

MongoDate::__construct

(PECL mongo >= 0.8.1)

MongoDate::__construct — Crée une nouvelle date

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\BSON\UTCDateTime::__construct()

Description

public MongoDate::__construct ([ int $sec = time() [, int $usec = 0 ]] )

Créée une nouvelle date. Si aucun paramètre n'est donné, la date courante est utilisée.

Liste de paramètres

sec

Le nombre de secondes depuis l'époque (i.e. 1 Jan 1970 00:00:00.000 UTC).

usec

Le nombre de microsecondes. Attention, l'unité en MongoDB est la milliseconde, et non la microseconde, ce qui signifie que la valeur sera tronquée à l'unité milliseconde.

Valeurs de retour

Retourne la nouvelle date.

Exemples

Exemple #1 Exemple avec MongoDate::__construct()

Cet exemple montre comment créer une date à partir de la date et l'heure courante, et une date à partir d'un timestamp.

<?php

$d = new MongoDate();
echo "$d\n";
$d = new MongoDate(1234567890);
echo "$d\n";
$d = new MongoDate(strtotime("2009-05-01 00:00:01"));
echo "$d\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0.23660600 1235685067
0.00000000 1234567890
0.00000000 1241150401

Voir aussi

  • MongoDate::__toString() - Retourne la date sous forme de chaîne


Retourne un objet DateTime représentant cette date

  • « MongoDate::__construct
  • MongoDate::__toString »
  • PHP Manual
  • MongoDate
  • Retourne un objet DateTime représentant cette date

MongoDate::toDateTime

(PECL mongo >= 1.6.0; PHP > 5.3.4)

MongoDate::toDateTime — Retourne un objet DateTime représentant cette date

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\BSON\UTCDateTime::toDateTime()

Description

public DateTime MongoDate::toDateTime ( void )

Retourne un objet DateTime représentant cette date.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette date, sous la forme d'un objet DateTime.

Exemples

Exemple #1 Exemple avec MongoDate::toDateTime()

Cet exemple montre la création d'un objet DateTime depuis un objet MongoDate.

<?php
$d = new MongoDate(strtotime("2014-11-18 11:01:25"));
var_dump( $d->toDateTime() );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

class DateTime#2 (3) {
  public $date =>
  string(26) "2014-11-18 11:01:25.000000"
  public $timezone_type =>
  int(1)
  public $timezone =>
  string(6) "+00:00"
}


Retourne la date sous forme de chaîne

  • « MongoDate::toDateTime
  • MongoRegex »
  • PHP Manual
  • MongoDate
  • Retourne la date sous forme de chaîne

MongoDate::__toString

(PECL mongo >= 0.8.1)

MongoDate::__toString — Retourne la date sous forme de chaîne

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\BSON\UTCDateTime::__toString()

Description

public string MongoDate::__toString ( void )

Retourne l'objet de date sous forme d'une chaîne de caractères, similairement au résultat de la fonction microtime().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette date.


La classe MongoRegex

(PECL mongo >=0.8.1)

Avertissement

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette classe sont :

  • MongoDB\BSON\Regex

Introduction

Cette classe peut être utilisée pour créer des expressions rationnelles. Ces expressions pourront être ensuite utilisées pour interroger la base de données et trouver les chaînes correspondantes. Vous pouvez également les sauvegarder en base de données et les récupérer par la suite.

Une expression rationnelle est constituée de quatre parties. Tout d'abord, un / comme délimiteur de départ, puis, le masque, ensuite, un autre / et pour finir, une chaîne contenant les drapeaux.

Exemple #1 Masque d'une expression rationnelle

/masque/drapeaux

Mongo reconnait 6 options d'expressions rationnelles :

  • i : Insensible à la casse

  • m : Multi-lignes

  • x : Peut contenir des commentaires

  • l : Locale

  • s : Le caractère "." correspond à n'importe quel caractère, y compris les nouvelles lignes

  • u : Unicode possible

Synopsis de la classe

MongoRegex {
/* Champs */
public string $regex ;
public string $flags ;
/* Méthodes */
public __construct ( string $regex )
public string __toString ( void )
}

Sommaire

  • MongoRegex::__construct — Crée une nouvelle expression rationnelle
  • MongoRegex::__toString — Retourne une expression rationnelle sous forme de chaîne


Crée une nouvelle expression rationnelle

  • « MongoRegex
  • MongoRegex::__toString »
  • PHP Manual
  • MongoRegex
  • Crée une nouvelle expression rationnelle

MongoRegex::__construct

(PECL mongo >= 0.8.1)

MongoRegex::__construct — Crée une nouvelle expression rationnelle

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\BSON\Regex::__construct()

Description

public MongoRegex::__construct ( string $regex )

Crée une nouvelle expression rationnelle.

Liste de paramètres

regex

Expression rationnelle, sous la forme /expression/options.

Valeurs de retour

Retourne une expression rationnelle.

Exemples

Exemple #1 Exemple avec MongoRegex::__construct()

Cet exemple montre comment utiliser une expression rationnelle pour rechercher les documents ayant un champ de nom d'utilisateur commençant par (^) un l, puis une lettre parmi "aeiouy" ([aeiouy]), le tout, insensible à la casse (/i).

<?php
$luke_search = new MongoRegex("/^l[aeiouy]/i");
$cursor = $collection->find(array("username" => $luke_search));
?>

Voir aussi

  • MongoRegex::__toString() - Retourne une expression rationnelle sous forme de chaîne


Retourne une expression rationnelle sous forme de chaîne

  • « MongoRegex::__construct
  • MongoBinData »
  • PHP Manual
  • MongoRegex
  • Retourne une expression rationnelle sous forme de chaîne

MongoRegex::__toString

(PECL mongo >= 0.8.1)

MongoRegex::__toString — Retourne une expression rationnelle sous forme de chaîne

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\BSON\Regex::__toString()

Description

public string MongoRegex::__toString ( void )

Retourne une chaîne représentant l'expression rationnelle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'expression rationnelle, sous la forme "/expr/flags".

Exemples

Exemple #1 Exemple avec MongoRegex::__toString()

<?php

$r = new MongoRegex( "/[a-fA-F0-9]{16}/g" );
echo $r->regex . "\n";
echo $r->flags . "\n";
echo "$r\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

[a-fA-F0-9]{16}
g
/[a-fA-F0-9]{16}/g


La classe MongoBinData

(PECL mongo >= 0.8.1)

Avertissement

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette classe sont :

  • MongoDB\BSON\Binary

Introduction

MongoBinData est une classe pour stocker ou lire des données binaires issues de la base.

La taille maximale d'un objet pouvant être inséré dans la base de données est de 16MB. Pour les données supérieures à cette taille (films, musiques ou biographie de Guillaume Plessis), utilisez la classe MongoGridFS. Pour les données de taille inférieure à 16MB, il est probablement plus simple de les inclure directement dans le document en utilisant la classe MongoBinData.

Par exemple, pour insérer une image dans un document :

<?php

$profile = array(
    "username" => "foobity",
    "pic" => new MongoBinData(file_get_contents("gravatar.jpg"), MongoBinData::GENERIC),
);

$users->save($profile);

?>

Cette classe contient un champ type, qui ne donne actuellement aucune information supplémentaires au driver PHP, ni à la base de données. Il y a sept types prédéfinis, sont définis comme constantes de classe. Afin de préserver la compatibilité ascendante, le driver PHP utilise MongoBinData::BYTE_ARRAY par défaut ; cependant, ceci peut changer en MongoBinData::GENERIC dans le futur. Les utilisateurs sont encouragés à spécifier un type via la méthode MongoBinData::__construct().

Synopsis de la classe

MongoBinData {
/* Constantes */
const int GENERIC = 0 ;
const int FUNC = 1 ;
const int BYTE_ARRAY = 2 ;
const int UUID = 3 ;
const int UUID_RFC4122 = 4 ;
const int MD5 = 5 ;
const int CUSTOM = 128 ;
/* Champs */
public string $bin ;
public int $type = 2 ;
/* Méthodes */
public __construct ( string $data [, int $type = 0 ] )
public string __toString ( void )
}

Constantes pré-définies

Types de données binaires

MongoBinData::GENERIC
0x00
Données binaires génériques.
MongoBinData::FUNC
0x01
Fonction.
MongoBinData::BYTE_ARRAY
0x02
Données binaires génériques (obsolète, en faveur de MongoBinData::GENERIC).
MongoBinData::UUID
0x03
Identifiant unique universel (obsolète en faveur de MongoBinData::UUID_RFC4122).
MongoBinData::UUID_RFC4122
0x04
Identifiant unique universel (suivant la » RFC 4122).
MongoBinData::MD5
0x05
MD5.
MongoBinData::CUSTOM
0x80
Type défini par l'utilisateur.

Historique

Version | Description
1.5.0 | Ajout des constantes MongoBinData::GENERIC et MongoBinData::UUID_RFC4122.

Sommaire

  • MongoBinData::__construct — Crée un nouvel objet de données binaires
  • MongoBinData::__toString — La représentation en chaîne de l'objet binaire


Crée un nouvel objet de données binaires

  • « MongoBinData
  • MongoBinData::__toString »
  • PHP Manual
  • MongoBinData
  • Crée un nouvel objet de données binaires

MongoBinData::__construct

(PECL mongo >= 0.8.1)

MongoBinData::__construct — Crée un nouvel objet de données binaires

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\BSON\Binary::__construct()

Description

public MongoBinData::__construct ( string $data [, int $type = 0 ] )

Crée un nouvel objet de données binaires.

Il y a sept types de données binaires actuellement reconnues par BSON, qui sont définis comme constantes de classe. Dans un souci de compatibilité ascendante, le driver PHP utilise MongoBinData::BYTE_ARRAY par défaut ; cependant, ceci peut changer en MongoBinData::GENERIC dans le futur. Les utilisateurs sont encouragés à spécifier un type plutôt que d'utiliser celui par défaut.

Liste de paramètres

data

Données binaires.

type

Le type de données.

Valeurs de retour

Retourne un nouvel objet de données binaires.

Historique

Version | Description
1.5.0 | La valeur par défaut passe de 2 (MongoBinData::BYTE_ARRAY) à 0 (MongoBinData::GENERIC).
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsque le second argument n'est pas utilisé. La valeur par défaut du paramètre type peut changer dans de futures versions.


La représentation en chaîne de l'objet binaire

  • « MongoBinData::__construct
  • MongoInt32 »
  • PHP Manual
  • MongoBinData
  • La représentation en chaîne de l'objet binaire

MongoBinData::__toString

(PECL mongo >= 0.8.1)

MongoBinData::__toString — La représentation en chaîne de l'objet binaire

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\BSON\Binary::getData()

Description

public string MongoBinData::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la chaîne "<Mongo Binary Data>". Pour accéder au contenu d'un MongoBinData, utilisez le champ bin.


La classe MongoInt32

(PECL mongo >=1.0.9)

Avertissement

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette classe dans la nouvelle extension.

A la place, la nouvelle extension choisit le type approprié de base de données suivant la valeur entière.

Introduction

La classe peut être utilisée pour sauvegarder des entiers 32 bits dans la base de données sur un système 64 bits.

Synopsis de la classe

MongoInt32 {
/* Fields */
public string $value ;
/* Méthodes */
public __construct ( string $value )
public string __toString ( void )
}

Fields

value
C'est la valeur textuelle du nombre 32-bit. Par exemple, la 123ème valeur sera "123".

Sommaire

  • MongoInt32::__construct — Crée un nouvel entier 32-bit
  • MongoInt32::__toString — Retourne la représentation sous forme de chaîne de caractères d'un entier 32-bit


Crée un nouvel entier 32-bit

  • « MongoInt32
  • MongoInt32::__toString »
  • PHP Manual
  • MongoInt32
  • Crée un nouvel entier 32-bit

MongoInt32::__construct

(PECL mongo >= 1.0.9)

MongoInt32::__construct — Crée un nouvel entier 32-bit

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette classe dans la nouvelle extension.

A la place, la nouvelle extension choisit le type approprié de base de données suivant la valeur entière.

Description

public MongoInt32::__construct ( string $value )

Crée un nouvel entier 32-bit avec la valeur fournie.

Liste de paramètres

value

Un nombre.

Valeurs de retour

Retourne un nouvel entier.


Retourne la représentation sous forme de chaîne de caractères d'un entier 32-bit

  • « MongoInt32::__construct
  • MongoInt64 »
  • PHP Manual
  • MongoInt32
  • Retourne la représentation sous forme de chaîne de caractères d'un entier 32-bit

MongoInt32::__toString

(PECL mongo >= 1.0.9)

MongoInt32::__toString — Retourne la représentation sous forme de chaîne de caractères d'un entier 32-bit

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette classe dans la nouvelle extension.

A la place, la nouvelle extension choisit le type approprié de base de données suivant la valeur entière.

Description

public string MongoInt32::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sous forme de chaîne de caractères de l'entier.


La classe MongoInt64

(PECL mongo >=1.0.9)

Avertissement

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette classe dans la nouvelle extension.

A la place, la nouvelle extension choisit le type approprié de base de données suivant une valeur entière.

Introduction

la classe peut être utilisée pour sauvegarder les entiers 64 bits dans la base de données sur un système 32 bits.

Synopsis de la classe

MongoInt64 {
/* Champs */
public string $value ;
/* Méthodes */
public __construct ( string $value )
public string __toString ( void )
}

Fields

value
C'est la valeur textuelle du nombre 64-bit. Actuellement, la 123ème valeur sera "123".

Sommaire

  • MongoInt64::__construct — Crée un nouvel entier 64-bit
  • MongoInt64::__toString — Retourne la représentation sous forme de chaîne de caractères d'un entier 64-bit


Crée un nouvel entier 64-bit

  • « MongoInt64
  • MongoInt64::__toString »
  • PHP Manual
  • MongoInt64
  • Crée un nouvel entier 64-bit

MongoInt64::__construct

(PECL mongo >= 1.0.9)

MongoInt64::__construct — Crée un nouvel entier 64-bit

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette classe dans la nouvelle extension.

A la place, la nouvelle extension choisit le type approprié de base de données suivant la valeur entière.

Description

public MongoInt64::__construct ( string $value )

Crée un nouvel entier 64-bit number avec la valeur fournie.

Liste de paramètres

value

Un nombre.

Valeurs de retour

Retourne un nouvel entier.


Retourne la représentation sous forme de chaîne de caractères d'un entier 64-bit

  • « MongoInt64::__construct
  • MongoDBRef »
  • PHP Manual
  • MongoInt64
  • Retourne la représentation sous forme de chaîne de caractères d'un entier 64-bit

MongoInt64::__toString

(PECL mongo >= 1.0.9)

MongoInt64::__toString — Retourne la représentation sous forme de chaîne de caractères d'un entier 64-bit

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette classe dans la nouvelle extension.

A la place, la nouvelle extension choisit le type approprié de base de données suivant la valeur entière.

Description

public string MongoInt64::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sous forme de chaîne de caractères de l'entier.


La classe MongoDBRef

(PECL mongo >=0.9.0)

Avertissement

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette classe dans la nouvelle extension.

Le concept des références de base de données, et par conséquence cette classe, est obsolète dans la base de données.

Introduction

Cette classe sert à créer des liens légers entre des objets de différentes colllections.

Motivation : Supposez que vous voulez lier un document dans une autre collection. La façon la plus facile est de créer un champ dans le document courant. Par exemple, si vous avez une collection "people" et une collection "addresses", vous devriez vouloir créer un lien entre chaque document d'une personne et chaque document d'adresses :

Exemple #1 Liage des documents

<?php

$people = $db->people;
$addresses = $db->addresses;

$myAddress = array("line 1" => "123 Main Street",
    "line 2" => null,
    "city" => "Springfield",
    "state" => "Vermont",
    "country" => "USA");

// Sauvegarde de l'adresse
$addresses->insert($myAddress);

// Sauvegarde une personne avec une référence vers l'adresse
$me = array("name" => "Fred", "address" => $myAddress['_id']);
$people->insert($me);

?>

Par la suite, vous pouver retrouver l'adresse d'une personne en interrogeant la collection "addresses" avec un MongoId sauvegardé dans la collection "people".

Supposez maintenant que vous avez un cas plus général, où vous ne savez pas quelle collection (ou bien quelle base de données) contient le document référencé. La classe MongoDBRef est un bon choix dans ce cas, vu qu'elle a un format commun que tous les drivers et bases de données comprennent.

Si chaque personne a une liste de choses qu'elles aiment, pouvant venir de plusieurs collections, comme des "hobbies", "sports", "books", etc., vous pouvez utiliser la classe MongoDBRef pour garder une trace des collections fournissant ces choses :

Exemple #2 Création de lien MongoDBRef

<?php

$people = $db->selectCollection("people");

// Les modèles de train sont dans la collection "hobbies"
$trainRef = MongoDBRef::create("hobbies", $modelTrains['_id']);
// Le foot dans la collection "sports"
$soccerRef = MongoDBRef::create("sports", $soccer['_id']);

// Maintenant, vous connaissez la collection dont les éléments du tableau "likes"
// proviennent, au moment où vous souhaitez récupérer les documents associés
$people->insert(array("name" => "Fred", "likes" => array($trainRef, $soccerRef)));

?>

On peut représenter les références des bases de données comme des liens: elles donnent l'adresse unique d'un document, mais elles ne le chargent pas et ne suivent pas les lien/référence automatiquement.

Une référence de base de données est juste un tableau associatif, pas une instance de MongoDBRef, cette classe est donc un peu différente des autres classes de tyes de données, elle ne contient que des méthodes statiques pour manipuler les références de bases de données.

Synopsis de la classe

MongoDBRef {
/* Méthodes */
public static array create ( string $collection , mixed $id [, string $database ] )
public static array get ( MongoDB $db , array $ref )
public static bool isRef ( mixed $ref )
}

Voir aussi

Documentation de MongoDB » concernant les références de bases de données.

Sommaire

  • MongoDBRef::create — Crée un nouvelle référence de base de données
  • MongoDBRef::get — Lit l'objet identifié par la référence
  • MongoDBRef::isRef — Vérifie si un tableau est une référence de base de données


Crée un nouvelle référence de base de données

  • « MongoDBRef
  • MongoDBRef::get »
  • PHP Manual
  • MongoDBRef
  • Crée un nouvelle référence de base de données

MongoDBRef::create

(PECL mongo >= 0.9.0)

MongoDBRef::create — Crée un nouvelle référence de base de données

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette classe dans la nouvelle extension.

Le concept des références de base de données, et par conséquent, cette classe, sont obsolètes.

Description

public static array MongoDBRef::create ( string $collection , mixed $id [, string $database ] )

Si aucune base de données n'est fournie, la base de données courante sera utilisée.

Liste de paramètres

collection

Nom de la collection (sans le nom de la base de données).

id

Le champ _id de l'objet à lier.

database

Nom de la base de données.

Valeurs de retour

Retourne la référence.

Exemples

Exemple #1 Exemple avec MongoDBRef::create()

Cet exemple crée une référence de base de données vers un document de la collection addresses. La fonction MongoCollection::getName() retourne le nom de la collection (sans y inclure le nom de la base de données).

<?php
$addresses = $db->addresses;
$people = $db->people;

// Sauvegarde $address. Cette variable a maintenant un identifiant
$addresses->insert($address);

// Crée une référence
$ref = MongoDBRef::create($addresses->getName(), $address['_id']);

// Définitle champ dans la variable $person
$person['address'] = $ref;
$people->save($person);
?>

Voir aussi

  • MongoDB::createDBRef() - Crée une référence de base de données
  • MongoCollection::createDBRef() - Crée une référence de base de données


Lit l'objet identifié par la référence

  • « MongoDBRef::create
  • MongoDBRef::isRef »
  • PHP Manual
  • MongoDBRef
  • Lit l'objet identifié par la référence

MongoDBRef::get

(PECL mongo >= 0.9.0)

MongoDBRef::get — Lit l'objet identifié par la référence

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette classe dans la nouvelle extension.

Le concept des références de base de données, et par conséquent cette classe, est obsolète.

Description

public static array MongoDBRef::get ( MongoDB $db , array $ref )

Liste de paramètres

db

La base de données à utiliser.

ref

La référence à lire.

Valeurs de retour

Retourne le document pointé par la référence, ou NULL si le document n'existe pas (la référence a été rompue).

Exemples

Exemple #1 Exemple avec MongoCollection::createDBRef()

<?php

// Récupère $person depuis la base de données
$person = $people->findOne();

// Récupère la référence de l'adresse
$address = MongoDBRef::get($people->db, $person['address']);

?>

Voir aussi

  • MongoDB::getDBRef() - Lit le contenu d'une référence de base de données
  • MongoCollection::getDBRef() - Lit une référence de base de données


Vérifie si un tableau est une référence de base de données

  • « MongoDBRef::get
  • MongoMinKey »
  • PHP Manual
  • MongoDBRef
  • Vérifie si un tableau est une référence de base de données

MongoDBRef::isRef

(PECL mongo >= 0.9.0)

MongoDBRef::isRef — Vérifie si un tableau est une référence de base de données

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Il n'y a pas d'équivalent à cette classe dans la nouvelle extension.

Le concept des références de base de données, et par conséquence cette classe, est obsolète.

Description

public static bool MongoDBRef::isRef ( mixed $ref )

Cette méthode ne suit actuellement pas les références, aussi, elle ne peut déterminer si les références sont cassées ou non. Elle vérifie si le paramètre ref est bien au format valide de base de données (vérifie seulement si c'est un objet ou un tableau contenant les champs $ref et $id).

Liste de paramètres

ref

Le tableau ou l'objet à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


La classe MongoMinKey

(PECL mongo >= 1.0.2)

Avertissement

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette classe sont :

  • MongoDB\BSON\MinKey

Introduction

MongoMinKey est un type spécial utilisé par la base de données qui est évalué comme étant le plus petit des autres types BSON. Aussi, si une requête est triée par ce genre de champs dans un ordre ascendant, n'importe quel document possédant le type MongoMinKey sera retourné en premier.

MongoMinKey n'a pas de champ associé, de méthode ou de constante. C'est la plus petite valeur que vous pouvez insérer dans la base de données.

Note: MongoMinKey est utilisé en interne par MongoDB pour l'indexation, et le partage. Il n'y a générallement aucune raison d'utiliser cette classe dans une application.

Synopsis de la classe

MongoMinKey {
}

Exemple avec MongoMinKey comme valeur

<?php

$collection->insert(array("task" => "lunch", "doBy" => new MongoMinKey));
$collection->insert(array("task" => "staff meeting", "doBy" => new MongoDate(strtotime("+4 days"))));

$cursor = $collection->find()->sort(array("doBy" => 1));

?>

Le curseur retournera le document "lunch", puis, le document "staff meeting". Le document "lunch" sera toujours retourné en premier, quelque soit les autres documents de la collection (tant qu'un autre document n'aura pas été ajouté avec un MongoMinKey dans le champ "doBy").

Voir aussi

  • MongoMaxKey


La classe MongoMaxKey

(PECL mongo >= 1.0.2)

Avertissement

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette classe sont :

  • MongoDB\BSON\MaxKey

Introduction

MongoMaxKey est un type spécial utilisé par la base de données qui sera évalué comme le plus grand parmi les autres valeurs BSON. Aussi, si une requête est triée par ce genre de champ de façon ascendante, n'importe quel document avec un MongoMaxKey comme valeur sera retourné en dernier.

MongoMaxKey n'a pas de champ associé, de méthode ou de constante. C'est la plus grande valeur que vous pouvez insérer dans la base de données.

Note: MongoMaxKey est utilisé en interne par MongoDB pour l'indexation et le partage. Il n'y a générallement aucune raison d'utiliser cette classe dans une application.

Synopsis de la classe

MongoMaxKey {
}

Utilisation de MongoMaxKey comme valeur

<?php

$collection->insert(array("task" => "dishes", "doBy" => new MongoMaxKey));
$collection->insert(array("task" => "staff meeting", "doBy" => new MongoDate(strtotime("+4 days"))));

$cursor = $collection->find()->sort(array("doBy" => 1));

?>

Le curseur retournera le document "staff meeting", puis, le document "dishes". Le document "dishes" sera toujours retourné en dernier, quelque soit les autres documents de la collection (tant qu'un autre document n'aura pas été ajouté avec un MongoMaxKey dans le champ "doBy").

Voir aussi

  • MongoMinKey


La classe MongoTimestamp

(PECL mongo >=1.0.1)

Avertissement

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette classe sont :

  • MongoDB\BSON\Timestamp

Introduction

MongoTimestamp est un type interne utilisé par MongoDB pour la réplication et le partage. Il consiste en un timestamp sur 4 octets (i.e. secondes depuis l'époque Unix) et un incrément sur 4 octets. Ce type n'est pas conçu pour stocker une durée ou une valeur de date (i.e. champ "createdAt" d'un document).

Note: A moins que vous n'écriviez une application qui intéragit avec la réplication et le partage internes de MongoDB : STOP ! Allez directement à la méthode MongoDate, ne passer pas par la casse de départ, et toucher 20 000 euros ! Ce n'est pas la classe que vous cherchez ;)

Synopsis de la classe

MongoTimestamp {
/* Champs */
public int $sec = 0 ;
public int $inc = 0 ;
/* Méthodes */
public __construct ([ int $sec = time() [, int $inc ]] )
public string __toString ( void )
}

Sommaire

  • MongoTimestamp::__construct — Crée un nouveau timestamp
  • MongoTimestamp::__toString — Retourne une représentation sous la forme d'une chaîne de caractères d'un timestamp


Crée un nouveau timestamp

  • « MongoTimestamp
  • MongoTimestamp::__toString »
  • PHP Manual
  • MongoTimestamp
  • Crée un nouveau timestamp

MongoTimestamp::__construct

(PECL mongo >= 1.0.1)

MongoTimestamp::__construct — Crée un nouveau timestamp

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\BSON\Timestamp::__construct()

Description

public MongoTimestamp::__construct ([ int $sec = time() [, int $inc ]] )

Crée un nouveau timestamp. Si aucun paramètre n'est fourni, les date et heure courantes seront utilisés et l'incrément sera automatiquement fourni. L'incrément est défini à 0 lorsque le module est chargé et est incrémenté à chaque fois que ce constructeur sera appelé (sans paramètre $inc).

Liste de paramètres

sec

Nombre de secondes depuis l'époque (i.e. 1 Jan 1970 00:00:00.000 UTC).

inc

L'incrément.

Valeurs de retour

Retourne le nouveau timestamp.

Voir aussi

  • MongoTimestamp::__toString() - Retourne une représentation sous la forme d'une chaîne de caractères d'un timestamp


Retourne une représentation sous la forme d'une chaîne de caractères d'un timestamp

  • « MongoTimestamp::__construct
  • Classes GridFS »
  • PHP Manual
  • MongoTimestamp
  • Retourne une représentation sous la forme d'une chaîne de caractères d'un timestamp

MongoTimestamp::__toString

(PECL mongo >= 1.0.1)

MongoTimestamp::__toString — Retourne une représentation sous la forme d'une chaîne de caractères d'un timestamp

Cette extension, qui définie cette méthode est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette méthode sont :

  • MongoDB\BSON\Timestamp::__toString()

Description

public string MongoTimestamp::__toString ( void )

Retourne le champ "sec" d'un timestamp.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre de seconde depuis l'époque Unix représenté par le timestamp.


  • « MongoTimestamp::__toString
  • MongoGridFS »
  • PHP Manual
  • Mongo
  • Classes GridFS

Classes GridFS

Sommaire

  • MongoGridFS
  • MongoGridFSFile
  • MongoGridFSCursor


La classe MongoGridFS

(PECL mongo >=0.9.0)

Introduction

Utilitaires de stockage et lecture de fichiers dans la base de données

GridFS est une spécification de stockage que tous les pilotes implémentent. Simplement, il définit deux collections: files, pour les métadonnées du fichier, et chunks pour le contenu du fichier. Si le fichier est volumineux, il sera automatiquement scindé en sous-parties et chacune sera sauvée comme document dans la collection 'chunks' représentant le contenu du fichier.

Chaque document dans la collection 'files' est caractérisé par un nom, une date d'envoi et un hash md5. Il contient aussi un champ unique _id, qui peut être utilisé pour requêter la collection 'chunks' et obtenir le contenu du fichier. Chaque document dans la collection 'chunks' contient des données inaires, un champ files_id qui correspond au _id du fichier, et la position de ce document dans le fichier.

Par exemple, la collection 'files' ressemble à:

<?php
array("_id" => 123456789, "filename" => "foo.txt", "chunkSize" => 3, "length" => 12);
?>
et la collection 'chunks' à:
<?php
array("files_id" => 123456789, "n" => 0, "data" => new MongoBinData("abc"));
array("files_id" => 123456789, "n" => 1, "data" => new MongoBinData("def"));
array("files_id" => 123456789, "n" => 2, "data" => new MongoBinData("ghi"));
array("files_id" => 123456789, "n" => 3, "data" => new MongoBinData("jkl"));
?>
Bien sur la taille par défaut des segments est de plusieurs milliers d'octets, non représentatif pour notre exemple.

Compatibilité entre les différentes langages

Vous devriez être capable d'utiliser n'importe quel fichier créé par MongoGridFS avec n'importe quel driver et vis versa. Cependant, quelques drivers s'attendent à ce que toutes les méta-données associées avec un fichier soivent dans un champ "metadata". Si vous souhaitez utiliser un autre langage, ce peut être une bonne idée de placer les informations souhaitées dans un champ "metadata". Par exemple, au lieu de :

<?php

$grid->storeFile("somefile.txt", array("date" => new MongoDate()));

?>

utilisez quelque chose comme :

<?php

$grid->storeFile("somefile.txt", array("metadata" => array("date" => new MongoDate())));

?>

La famille MongoGridFS

MongoGridFS représente les collections 'files' et 'chunks'. MongoGridFS étend MongoCollection, et une instance de MongoGridFS a accès à toutes les méthodes de MongoCollection, qui agissent sur la collection 'files':

<?php

$grid = $db->getGridFS();
$grid->update(array("filename" => "foo"), $newObj); // update on the files collection

?>

Un autre exemple de manipulation des méta-données:

<?php

// Sauvegarde un fichier
$id = $grid->storeFile("game.tgz");
$game = $grid->findOne();

// Ajoute un compteur de téléchargement
$game->file['downloads'] = 0;
$grid->save($game->file);

// Incrémente le compteur
$grid->update(array("_id" => $id), array('$inc' => array("downloads" => 1)));

?>

Vous pouvez aussi accéder aux objets dans la collection 'chunks' depuis une instance de MongoGridFS:

<?php

  $chunks = $grid->chunks; // $chunks est une MongoCollection
$chunks->insert(array("x" => 4));

?>

Il existe des méthodes dans MongoGridFS qui ont le même no que dans MongoCollection mais elles se comportent différement. Par exemple, MongoGridFS::remove() suppriment les objets qui correspondent au critère depuis la collection des fichiers ('files'), ainsi que leur contenu depuis la collection des données ('chunks').

Pour stocker un nouvel enregistrement dans GridFS, il y a plusieurs options. Si vous possédez un nom de fichier, agissez comme cela:

<?php

$grid->storeFile($filename, array("whatever" => "metadata", "you" => "want"));

?>

Si vous avez une chaine d'octets qui n'est pas un fichier, vous pouvez la stocker grâce à MongoGridFS::storeBytes():

<?php

$grid->storeBytes($bytes, array("whatever" => "metadata", "you" => "want"));

?>

Requêter une collection MongoGridFS retourne un MongoGridFSCursor, qui se comporte comme un MongoCursor normal sauf qu'il retourne des MongoGridFSFiles plutôt que des tableaux associatifs.

MongoGridFSFiles peut être écrit sur le disque en utilisant MongoGridFSFile::write() ou récupéré de la mémoire avec MongoGridFSFile::getBytes(). Il n'y a pas de méthode actuellement qui guide les données d'un à l'autre, mais ce n'est pas très difficile à écrire en utilisant $grid->chunks de la collection.

Les objets MongoGridFSFile contiennent un champ file qui contient les méta-données du fichier.

Synopsis de la classe

étend MongoCollection {
/* Fields */
public MongoCollection $chunks = NULL ;
protected string $filesName = NULL ;
protected string $chunksName = NULL ;
/* Méthodes */
public __construct ( MongoDB $db [, string $prefix = "fs" [, mixed $chunks = "fs" ]] )
public bool|array delete ( mixed $id )
public array drop ( void )
public MongoGridFSCursor find ([ array $query = array() [, array $fields = array() ]] )
public MongoGridFSFile findOne ([ mixed $query = array() [, mixed $fields = array() ]] )
public MongoGridFSFile get ( mixed $id )
public mixed put ( string $filename [, array $metadata = array() [, array $options = array() ]] )
public bool|array remove ([ array $criteria = array() [, array $options = array() ]] )
public mixed storeBytes ( string $bytes [, array $metadata = array() [, array $options = array() ]] )
public mixed storeFile ( string|resource $filename [, array $metadata = array() [, array $options = array() ]] )
public mixed storeUpload ( string $name [, array $metadata ] )
}

Voir aussi

  • Documentation coeur de MongoDB sur » GridFS
  • Article sur les solutions LightCube sur » la sauvegarde des téléchargements utilisateurs
  • Article sur les solutions LightCube sur » l'ajout de méta-données aux fichiers

Sommaire

  • MongoGridFS::__construct — Crée une nouvelle collection de fichiers
  • MongoGridFS::delete — Efface un fichier et ces morceaux depuis la base de données
  • MongoGridFS::drop — Efface les collections de fichiers
  • MongoGridFS::find — Interroge un fichier
  • MongoGridFS::findOne — Lit un fichier unique satisfaisant les critères
  • MongoGridFS::get — Récupère un fichier depuis la base de données
  • MongoGridFS::put — Stocke un fichier dans la base de données
  • MongoGridFS::remove — Efface des fichiers et leurs morceaux de la base de données
  • MongoGridFS::storeBytes — Stocke une chaîne d'octets dans la base de données
  • MongoGridFS::storeFile — Stocke un fichier dans la base de données
  • MongoGridFS::storeUpload — Stocke un fichier téléchargé dans la base de données


Crée une nouvelle collection de fichiers

  • « MongoGridFS
  • MongoGridFS::delete »
  • PHP Manual
  • MongoGridFS
  • Crée une nouvelle collection de fichiers

MongoGridFS::__construct

(PECL mongo >=0.9.0)

MongoGridFS::__construct — Crée une nouvelle collection de fichiers

Description

public MongoGridFS::__construct ( MongoDB $db [, string $prefix = "fs" [, mixed $chunks = "fs" ]] )

Les fichiers sont stockés à l'aide de deux collections : la première contient les métadonnées, et la seconde contient le contenu des fichiers. Par défaut, fs.files et fs.chunks sont les noms des collections utilisés.

Utilisez un argument pour spécifier un préfixe, autre que "fs" :

$fs = new MongoGridFS($db, "myfiles");
cet exemple utilise les collections myfiles.files et myfiles.chunks.

Liste de paramètres

db

La base de données.

files

Le nom de fichier de collection pour les fichiers, optionnel.


Efface un fichier et ces morceaux depuis la base de données

  • « MongoGridFS::__construct
  • MongoGridFS::drop »
  • PHP Manual
  • MongoGridFS
  • Efface un fichier et ces morceaux depuis la base de données

MongoGridFS::delete

(PECL mongo >=1.0.8)

MongoGridFS::delete — Efface un fichier et ces morceaux depuis la base de données

Description

public bool|array MongoGridFS::delete ( mixed $id )

Note:

La méthode MongoGridFS::delete() est une méthode de convenance pour l'appel à la méthode MongoGridFS::remove() avec des critères criteria spécifiques et des paramètres options par défaut.

Liste de paramètres

id

Champ _id du fichier à effacer.

Valeurs de retour

Retourne un tableau contenant le statut de la suppression (avec le respect de la collection files) si une considération d'écriture est appliquée. Sinon, retourne TRUE.

Les champs du tableau des statuts sont décrits dans la document pour la méthode MongoCollection::insert().

Erreurs / Exceptions

Lance une exception MongoCursorException si l'option "w" est définie, et que l'écriture échoue.

Lance une exception MongoCursorTimeoutException si l'option "w" est définie à une valeur supérieure à 1 et que l'opération prend plus de temps que MongoCursor::$timeout millisecondes à se terminer. Ceci ne va pas mettre fin à l'opération sur le serveur, ce n'est qu'un délai d'attente maximal côté client. L'unité pour MongoCollection::$wtimeout est la milliseconde.


Efface les collections de fichiers

  • « MongoGridFS::delete
  • MongoGridFS::find »
  • PHP Manual
  • MongoGridFS
  • Efface les collections de fichiers

MongoGridFS::drop

(PECL mongo >=0.9.0)

MongoGridFS::drop — Efface les collections de fichiers

Description

public array MongoGridFS::drop ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La réponse de la base de données.


Interroge un fichier

  • « MongoGridFS::drop
  • MongoGridFS::findOne »
  • PHP Manual
  • MongoGridFS
  • Interroge un fichier

MongoGridFS::find

(PECL mongo >=0.9.0)

MongoGridFS::find — Interroge un fichier

Description

 public MongoGridFSCursor MongoGridFS::find
  ([ array $query = array()
 [, array $fields = array()
]] )

Liste de paramètres

query

La requête.

fields

Les fichiers à retourner.

Valeurs de retour

Un objet MongoGridFSCursor.


Lit un fichier unique satisfaisant les critères

  • « MongoGridFS::find
  • MongoGridFS::get »
  • PHP Manual
  • MongoGridFS
  • Lit un fichier unique satisfaisant les critères

MongoGridFS::findOne

(PECL mongo >=0.9.0)

MongoGridFS::findOne — Lit un fichier unique satisfaisant les critères

Description

 public MongoGridFSFile MongoGridFS::findOne
  ([ mixed $query = array()
 [, mixed $fields = array()
]] )

Liste de paramètres

query

Le nom du fichier ou les critères à rechercher.

Valeurs de retour

Retourne un objet MongoGridFSFile, ou bien NULL.

Exemples

Exemple #1 Exemple pour MongoGridFS::findOne()

Exemple montrant comment récupérer un fichier depuis la MongoGridFS.

<?php

$downloads = $mongo->my_db->getGridFS('downloads');

$downloads->storeFile('filename.tgz');

$download = $downloads->findOne('filename.tgz'); // instance de MongoGridFSFile

print_r($download);
?>

Voyez MongoGridFSFile pour plus d'informations sur la manière de gèrer les fichiers.

L'exemple ci-dessus va afficher quelque chose de similaire à :

MongoGridFSFile Object
(
    [file] => Array
        (
            [_id] => MongoId Object
                (
                )

            [filename] => filename.tgz
            [uploadDate] => MongoDate Object
                (
                    [sec] => 1274288014
                    [usec] => 467000
                )

            [chunkSize] => 262144
            [md5] => d41d8cd98f00b204e9800998ecf8427e
        )

    [gridfs:protected] => MongoGridFS Object
        (
            [chunks] => MongoCollection Object
                (
                )

            [filesName:protected] => downloads.files
            [chunksName:protected] => downloads.chunks
        )

)


Récupère un fichier depuis la base de données

  • « MongoGridFS::findOne
  • MongoGridFS::put »
  • PHP Manual
  • MongoGridFS
  • Récupère un fichier depuis la base de données

MongoGridFS::get

(PECL mongo >=1.0.8)

MongoGridFS::get — Récupère un fichier depuis la base de données

Description

public MongoGridFSFile MongoGridFS::get ( mixed $id )

Liste de paramètres

id

L'identifiant _id du fichier à trouver.

Valeurs de retour

Retourne le fichier, s'il a été trouvé, ou NULL.


Stocke un fichier dans la base de données

  • « MongoGridFS::get
  • MongoGridFS::remove »
  • PHP Manual
  • MongoGridFS
  • Stocke un fichier dans la base de données

MongoGridFS::put

(PECL mongo >=1.0.8)

MongoGridFS::put — Stocke un fichier dans la base de données

Description

public mixed MongoGridFS::put ( string $filename [, array $metadata = array() [, array $options = array() ]] )

Note:

La méthode MongoGridFS::put() est un alias de la méthode MongoGridFS::storeFile().

Liste de paramètres

filename

Le nom du fichier pour le stockage.

metadata

Autres métadonnées à inclure dans le fichier document.

options

Un tableau d'options pour les opérations d'insertion, exécutées sur les collections chunks et files. Voir la méthode MongoCollection::insert() pour une documentation de ces options.

Valeurs de retour

Retourne l'_id du fichier document sauvegardé. Cela va retourner un MongoId généré tant qu'un _id ne soit explicitement spécifié dans le paramètre metadata.

Erreurs / Exceptions

Lance une exception MongoGridFSException si une erreur survient lors de la lection du fichier filename ou lors de l'insertion dans les collections chunks ou files.

Voir aussi

  • MongoGridFS::storeBytes() - Stocke une chaîne d'octets dans la base de données
  • MongoGridFS::storeFile() - Stocke un fichier dans la base de données
  • MongoGridFS::storeUpload() - Stocke un fichier téléchargé dans la base de données
  • Document coeur de MongoDB sur » GridFS


Efface des fichiers et leurs morceaux de la base de données

  • « MongoGridFS::put
  • MongoGridFS::storeBytes »
  • PHP Manual
  • MongoGridFS
  • Efface des fichiers et leurs morceaux de la base de données

MongoGridFS::remove

(PECL mongo >=0.9.0)

MongoGridFS::remove — Efface des fichiers et leurs morceaux de la base de données

Description

 public bool|array MongoGridFS::remove
  ([ array $criteria = array()
 [, array $options = array()
]] )

Liste de paramètres

criteria

Le nom du fichier ou le critère de recherche.

options

Un tableau d'options pour les opérations de suppression, exécutées sur les collections chunks et files. Voir la méthode MongoCollection::remove() pour une documentation de ces options.

  • "w"

    Voir les préoccupatios d'écriture. La valeur par défaut pour MongoClient est 1.

Valeurs de retour

Retourne un tableau contenant le statut de la suppression (avec le respect de la collection files) si l'option "w" est défini. Sinon, retourne TRUE.

Les champs du tableau de statut sont décrits dans la documentation de la méthode MongoCollection::insert().

Erreurs / Exceptions

Lance une exception MongoCursorException si l'option "w" est définie, et que l'écriture échoue.

Lance une exception MongoCursorTimeoutException si l'option "w" est définie à une valeur supérieure à 1 et que l'opération prend plus de temps que MongoCursor::$timeout millisecondes à se terminer. Ceci ne va pas mettre fin à l'opération sur le serveur, ce n'est qu'un délai d'attente maximal côté client. L'unité pour MongoCollection::$wtimeout est la milliseconde.


Stocke une chaîne d'octets dans la base de données

  • « MongoGridFS::remove
  • MongoGridFS::storeFile »
  • PHP Manual
  • MongoGridFS
  • Stocke une chaîne d'octets dans la base de données

MongoGridFS::storeBytes

(PECL mongo >=0.9.2)

MongoGridFS::storeBytes — Stocke une chaîne d'octets dans la base de données

Description

public mixed MongoGridFS::storeBytes ( string $bytes [, array $metadata = array() [, array $options = array() ]] )

Liste de paramètres

bytes

Une chaîne d'octets à stocker.

metadata

Autres champs de méta-données à inclure dans le fichier document.

Note:

Ces champs peuvent aussi écraser ceux qui auraient pu être créés automatiquement par le driver, tel que décrit dans la documentation MongoDB sur les » fichiers de collection. Une des particularités de ce comportement serait de spécifier un chunkSize ou un _id personnalisé pour le fichier.

options

Un tableau d'options pour les opérations d'insertion exécutées sur les collections chunks et files. Voir la méthode MongoCollection::insert() pour une documentation de ces options.

Valeurs de retour

Retourne l'_id du fichier document sauvegardé. Cela va retourner un MongoId généré tant qu'un _id ne soit explicitement spécifié dans le paramètre metadata.

Erreurs / Exceptions

Lance une exception MongoGridFSException si une erreur survient lors de l'insertion dans les collections chunks ou files.

Exemples

Exemple #1 Exemple avec MongoGridFS::storeBytes() avec des méta-données additionnelles

<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();

$bytes = 'abcdefghijklmnopqrstuvwxyz';
$id = $gridfs->storeBytes($bytes, array('_id' => 'alphabet'));
$gridfsFile = $gridfs->get($id);

var_dump($gridfsFile->file);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(7) {
  ["_id"]=>
  string(8) "alphabet"
  ["uploadDate"]=>
  object(MongoDate)#7 (0) {
  }
  ["length"]=>
  int(26)
  ["chunkSize"]=>
  int(262144)
  ["md5"]=>
  string(32) "c3fcd3d76192e4007dfb496cca67e13b"
}

Voir aussi

  • MongoGridFS::put() - Stocke un fichier dans la base de données
  • MongoGridFS::storeFile() - Stocke un fichier dans la base de données
  • MongoGridFS::storeUpload() - Stocke un fichier téléchargé dans la base de données
  • Documentation coeur de MongoDB sur » GridFS


Stocke un fichier dans la base de données

  • « MongoGridFS::storeBytes
  • MongoGridFS::storeUpload »
  • PHP Manual
  • MongoGridFS
  • Stocke un fichier dans la base de données

MongoGridFS::storeFile

(PECL mongo >=0.9.0)

MongoGridFS::storeFile — Stocke un fichier dans la base de données

Description

public mixed MongoGridFS::storeFile ( string|resource $filename [, array $metadata = array() [, array $options = array() ]] )

Liste de paramètres

filename

Le nom du fichier ou un flux lisible à stocker.

metadata

Les autres champs de méta-données à inclure dans le fichier document.

Note:

Ces champs peuvent aussi écraser ceux qui auraient pu être créés automatiquement par le driver, tel que décrit dans la documentation MongoDB sur les » fichiers de collection. Une des particularités de ce comportement serait de spécifier un chunkSize ou un _id personnalisé pour le fichier.

options

Un tableau d'options pour les opérations d'insertion exécutées sur les collections chunks et files. Voir la méthode MongoCollection::insert() pour une documentation de ces options.

Valeurs de retour

Retourne l'_id du fichier document sauvegardé. Cela va retourner un MongoId généré tant qu'un _id ne soit explicitement spécifié dans le paramètre metadata.

Erreurs / Exceptions

Lance une exception MongoGridFSException si une erreur survient lors de la lecture du fichier filename ou lors de l'insertion dans les collections chunks ou files.

Exemples

Exemple #1 Exemple avec MongoGridFS::storeFile() avec des méta-données additionnelles

<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();

$id = $gridfs->storeFile('example.txt', array('contentType' => 'plain/text'));
$gridfsFile = $gridfs->get($id);

var_dump($gridfsFile->file);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(7) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["contentType"]=>
  string(10) "plain/text"
  ["filename"]=>
  string(11) "example.txt"
  ["uploadDate"]=>
  object(MongoDate)#7 (0) {
  }
  ["length"]=>
  int(26)
  ["chunkSize"]=>
  int(262144)
  ["md5"]=>
  string(32) "c3fcd3d76192e4007dfb496cca67e13b"
}

Voir aussi

  • MongoGridFS::put() - Stocke un fichier dans la base de données
  • MongoGridFS::storeBytes() - Stocke une chaîne d'octets dans la base de données
  • MongoGridFS::storeUpload() - Stocke un fichier téléchargé dans la base de données
  • Documentation coeur MongoDB sur » GridFS


Stocke un fichier téléchargé dans la base de données

  • « MongoGridFS::storeFile
  • MongoGridFSFile »
  • PHP Manual
  • MongoGridFS
  • Stocke un fichier téléchargé dans la base de données

MongoGridFS::storeUpload

(PECL mongo >=0.9.0)

MongoGridFS::storeUpload — Stocke un fichier téléchargé dans la base de données

Description

public mixed MongoGridFS::storeUpload ( string $name [, array $metadata ] )

Liste de paramètres

name

Le nom du ou des fichiers téléchargés à stocker. Il doit correspondre à l'attribut name du formulaire HTML.

metadata

Autres champs de méta-données à inclure dans le document fichier.

Note:

Ces champs peuvent aussi écraser ceux qui auraient pu être créés automatiquement par le driver, tel que décrit dans la documentation MongoDB sur les » fichiers de collection. Une des particularités de ce comportement serait de spécifier un chunkSize ou un _id personnalisé pour le fichier.

Note:

Le champ filename contiendra le nom du fichier client (i.e.$_FILES['foo']['name']).

Valeurs de retour

Retourne l'_id du fichier document sauvegardé. Cela va retourner un MongoId généré tant qu'un _id ne soit explicitement spécifié dans le paramètre metadata.

Note:

Si plusieurs fichiers sont téléchargés en utilisant le même nom de champ, cette méthode ne retournera rien ; cependant, les fichiers eux-même seront tout de même traités.

Erreurs / Exceptions

Lance une exception MongoGridFSException si une erreur survient lors de la lecture du ou des fichiers téléchargés, ou lors de l'insertion dans la collection chunks ou files.

Historique

Version | Description
1.2.5 | Modification du second paramètre en un tableau de méta-données. Avant la version 1.2.5, le second paramètre étaient une chaîne optionnelle permettant d'écraser le nom du fichier.

Exemples

Exemple #1 Exemple avec MongoGridFS::storeUpload() et un formulaire HTML

Supposons que vous avez le formulaire HTML suivant :

<form method="POST" enctype="multipart/form-data">
    <label for="username">Username:</label>
    <input type="text" name="username" id="username" />

    <label for="pic">Please upload a profile picture:</label>
    <input type="file" name="pic" id="pic" />

    <input type="submit" />
</form>

Si vous voulez stocker l'image téléchargé dans MongoDB, vous pouvez le faire grâce au script suivant, gérant la soumission du formulaire :

<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();

$gridfs->storeUpload('pic', array('username' => $_POST['username']));
?>

Voir aussi

  • MongoGridFS::put() - Stocke un fichier dans la base de données
  • MongoGridFS::storeBytes() - Stocke une chaîne d'octets dans la base de données
  • MongoGridFS::storeFile() - Stocke un fichier dans la base de données
  • Documentation coeur MongoDB sur » GridFS


La classe MongoGridFSFile

(PECL mongo >=0.9.0)

Introduction

Un objet de fichier de base de données.

Synopsis de la classe

MongoGridFSFile {
/* Champs */
public array $file = NULL ;
protected MongoGridFS $gridfs = NULL ;
/* Méthodes */
public MongoGridfsFile::__construct ( MongoGridFS $gridfs , array $file )
public string getBytes ( void )
public string getFilename ( void )
public resource getResource ( void )
public int getSize ( void )
public int write ([ string $filename = NULL ] )
}

Sommaire

  • MongoGridfsFile::__construct — Crée un nouveau fichier GridFS
  • MongoGridFSFile::getBytes — Retourne le contenu du fichier
  • MongoGridFSFile::getFilename — Retourne le nom du fichier
  • MongoGridFSFile::getResource — Retourne une ressource qui peut être utilisée pour lire le fichier stocké
  • MongoGridFSFile::getSize — Retourne la taille du fichier
  • MongoGridFSFile::write — Ecrit un fichier dans le système de fichiers


Crée un nouveau fichier GridFS

  • « MongoGridFSFile
  • MongoGridFSFile::getBytes »
  • PHP Manual
  • MongoGridFSFile
  • Crée un nouveau fichier GridFS

MongoGridfsFile::__construct

(PECL mongo >=0.9.0)

MongoGridfsFile::__construct — Crée un nouveau fichier GridFS

Description

public MongoGridfsFile::__construct ( MongoGridFS $gridfs , array $file )

Liste de paramètres

gridfs

L'objet parent MongoGridFS.

file

Un fichier de la base de données.

Valeurs de retour

Retourne un nouvel objet MongoGridFSFile.


Retourne le contenu du fichier

  • « MongoGridfsFile::__construct
  • MongoGridFSFile::getFilename »
  • PHP Manual
  • MongoGridFSFile
  • Retourne le contenu du fichier

MongoGridFSFile::getBytes

(PECL mongo >=0.9.0)

MongoGridFSFile::getBytes — Retourne le contenu du fichier

Description

public string MongoGridFSFile::getBytes ( void )

Attention : cette fonction va charger tout le fichier en mémoire. Si le fichier est plus grand que votre capacité mémoire, cela va causer des problèmes!

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le contenu du fichier sous forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemples pour MongoGridFSFile::getBytes()

<?php

$images = $db->my_db->getGridFS('images');

$image = $images->findOne('jwage.png');

header('Content-type: image/png;');
echo $image->getBytes();
?>


Retourne le nom du fichier

  • « MongoGridFSFile::getBytes
  • MongoGridFSFile::getResource »
  • PHP Manual
  • MongoGridFSFile
  • Retourne le nom du fichier

MongoGridFSFile::getFilename

(PECL mongo >=0.9.0)

MongoGridFSFile::getFilename — Retourne le nom du fichier

Description

public string MongoGridFSFile::getFilename ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du fichier.


Retourne une ressource qui peut être utilisée pour lire le fichier stocké

  • « MongoGridFSFile::getFilename
  • MongoGridFSFile::getSize »
  • PHP Manual
  • MongoGridFSFile
  • Retourne une ressource qui peut être utilisée pour lire le fichier stocké

MongoGridFSFile::getResource

(PECL mongo >=1.3.0)

MongoGridFSFile::getResource — Retourne une ressource qui peut être utilisée pour lire le fichier stocké

Description

public resource MongoGridFSFile::getResource ( void )

Cette méthode retourne une ressource de flux qui peut être utilisé avec toutes les fonctions de fichiers en PHP qui traitent de la lecture de fichiers. Le contenu de ce fichier sont extraites de MongoDB à la volée, faisant ainsi que le fichier complet n'a pas à être chargé en mémoire auparavant.

Au moins deux morceaux GridFSFile seront chargés en mémoire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une ressource qui pourra être utilisée pour lire le fichier.

Exemples

Exemple #1 Exemple avec MongoGridFSFile::getResource()

<?php
$m = new Mongo;
$images = $m->my_db->getGridFS('images');

$image = $images->findOne('mongo.png');

header('Content-type: image/png;');
$stream = $image->getResource();

while (!feof($stream)) {
    echo fread($stream, 8192);
}
?>


Retourne la taille du fichier

  • « MongoGridFSFile::getResource
  • MongoGridFSFile::write »
  • PHP Manual
  • MongoGridFSFile
  • Retourne la taille du fichier

MongoGridFSFile::getSize

(PECL mongo >=0.9.0)

MongoGridFSFile::getSize — Retourne la taille du fichier

Description

public int MongoGridFSFile::getSize ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille du fichier.


Ecrit un fichier dans le système de fichiers

  • « MongoGridFSFile::getSize
  • MongoGridFSCursor »
  • PHP Manual
  • MongoGridFSFile
  • Ecrit un fichier dans le système de fichiers

MongoGridFSFile::write

(PECL mongo >=0.9.0)

MongoGridFSFile::write — Ecrit un fichier dans le système de fichiers

Description

public int MongoGridFSFile::write ([ string $filename = NULL ] )

Liste de paramètres

filename

Le chemin où écrire le fichier. Si aucun n'est fourni, le nom du fichier stocké en base sera utilisé.

Valeurs de retour

Retourne le nombre d'octets écrits.

Exemples

Exemple #1 Exemples pour MongoGridFSFile::write()

<?php

$images = $db->my_db->getGridFS('images');

$image = $images->findOne('jwage.png');
$image->write('/path/to/write/jwage.png');
?>


La classe MongoGridFSCursor

(PECL mongo >=0.9.0)

Introduction

Curseur de résultats de fichiers de base de données.

Synopsis de la classe

extends MongoCursor {
/* Champs */
protected MongoGridFS $gridfs = NULL ;
/* Méthodes */
public __construct ( MongoGridFS $gridfs , resource $connection , string $ns , array $query , array $fields )
public MongoGridFSFile current ( void )
public MongoGridFSFile getNext ( void )
public string key ( void )
}

Sommaire

  • MongoGridFSCursor::__construct — Crée un nouveau curseur
  • MongoGridFSCursor::current — Retourne le fichier courant
  • MongoGridFSCursor::getNext — Retourne le prochain fichier vers lequel pointe le curseur, puis avance le curseur
  • MongoGridFSCursor::key — Retourne l'identifiant courant


Crée un nouveau curseur

  • « MongoGridFSCursor
  • MongoGridFSCursor::current »
  • PHP Manual
  • MongoGridFSCursor
  • Crée un nouveau curseur

MongoGridFSCursor::__construct

(PECL mongo >=0.9.0)

MongoGridFSCursor::__construct — Crée un nouveau curseur

Description

public MongoGridFSCursor::__construct ( MongoGridFS $gridfs , resource $connection , string $ns , array $query , array $fields )

Liste de paramètres

gridfs

La collection GridFS associée.

connection

La connexion à la base de données.

ns

Full name of database and collection.

query

La requête de base de données.

fields

Les champs à retourner.

Valeurs de retour

Retourne le nouveau curseur.


Retourne le fichier courant

  • « MongoGridFSCursor::__construct
  • MongoGridFSCursor::getNext »
  • PHP Manual
  • MongoGridFSCursor
  • Retourne le fichier courant

MongoGridFSCursor::current

(PECL mongo >=0.9.0)

MongoGridFSCursor::current — Retourne le fichier courant

Description

public MongoGridFSFile MongoGridFSCursor::current ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le fichier courant.


Retourne le prochain fichier vers lequel pointe le curseur, puis avance le curseur

  • « MongoGridFSCursor::current
  • MongoGridFSCursor::key »
  • PHP Manual
  • MongoGridFSCursor
  • Retourne le prochain fichier vers lequel pointe le curseur, puis avance le curseur

MongoGridFSCursor::getNext

(PECL mongo >=0.9.0)

MongoGridFSCursor::getNext — Retourne le prochain fichier vers lequel pointe le curseur, puis avance le curseur

Description

public MongoGridFSFile MongoGridFSCursor::getNext ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le fichier suivant.


Retourne l'identifiant courant

  • « MongoGridFSCursor::getNext
  • Classes Batch »
  • PHP Manual
  • MongoGridFSCursor
  • Retourne l'identifiant courant

MongoGridFSCursor::key

(PECL mongo >=0.9.0)

MongoGridFSCursor::key — Retourne l'identifiant courant

Description

public string MongoGridFSCursor::key ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'identifiant de résultat courant, sous la forme d'une chaîne de caractères.

Historique

Version | Description
1.3.0 | L'_id du document est retourné sous forme de chaîne de caractères, sachant que la clé doit être unique. Avant la version 1.3.0, filename était retourné.


Classes Batch

Sommaire

  • MongoWriteBatch
  • MongoInsertBatch
  • MongoUpdateBatch
  • MongoDeleteBatch


La classe MongoWriteBatch

(PECL mongo >=1.5.0)

Introduction

MongoWriteBatch est la classe de base pour MongoInsertBatch, MongoUpdateBatch et MongoDeleteBatch.

MongoWriteBatch vous permet de mettre en lot plusieurs opérations (du même type) et de les envoyer dans le même temps à MongoDB. Ceci est tout particulièrement utile lorsqu'on travaille sur plusieurs documents en même temps, réduisant ainsi les étapes.

Avant la version 1.5.0 du driver, il était possible d'utiliser la méthode MongoCollection::batchInsert(), cependant, depuis la version 1.5.0, cette méthode n'est plus recommandée.

Note : Cette classe n'est disponible que lorsqu'on travaille avec des serveurs MongoDB 2.6.0 (et supérieurs). Elle lancera une exception MongoProtocolException si vous tentez de l'utiliser avec des serveurs MongoDB plus anciens.

Synopsis de la classe

MongoWriteBatch {
/* Constantes */
const int COMMAND_INSERT = 1 ;
const int COMMAND_UPDATE = 2 ;
const int COMMAND_DELETE = 3 ;
/* Méthodes */
protected __construct ( MongoCollection $collection [, string $batch_type [, array $write_options ]] )
public bool add ( array $item )
final public array execute ( array $write_options )
}

Type de MongoWriteBatch

MongoWriteBatch::COMMAND_INSERT

Crée un lot d'écritures d'insertion

MongoWriteBatch::COMMAND_UPDATE

Crée un lot d'écritures de mise à jour

MongoWriteBatch::COMMAND_DELETE

Crée un lot d'écritures d'effacement

Description

Lors de l'exécution d'un lot, en appelant la méthode MongoWriteBatch::execute(), MongoWriteBatch va envoyer » maxWriteBatchSize (par défaut, 1000) documents ou jusqu'à » maxBsonObjectSize (par défaut, 16777216 octets), celui qui arrive en premier.

Note:

Les documents ne seront jamais partiellement envoyés. Lors de l'ajout de documents dans le lot, qui dépassent la limite, un nouveau lot sera créé et le document sera ajouté à ce nouveau lot.

Erreurs / Exceptions

  • Lance une exception Exception lors d'un échec d'analyse des paramètres
  • Lance une exception Exception lors d'erreurs de validation des arguments (i.e., clés manquantes)
  • Lance une exception MongoProtocolException lors d'une communication avec un serveur MongoDB plus ancien que la version 2.6.0.
  • Lance une exception MongoProtocolException lors d'erreurs du socket.
  • Lance une exception MongoWriteConcernException lors d'un échec d'écriture à cause des préoccupations d'écriture

Exemples

Exemple #1 Exemple avec MongoWriteBatch

Ajout de documents dans un lot d'insertion, et l'exécute

<?php
$mc = new MongoClient("localhost");

$collection = $mc->selectCollection("test", "test");

$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");

$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
    $batch->add($document);
}
$retval = $batch->execute(array("w" => 1));
var_dump($retval);
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["nInserted"]=>
  int(3)
  ["ok"]=>
  bool(true)
}

Sommaire

  • MongoWriteBatch::add — Ajoute une opération d'écriture dans un lot
  • MongoWriteBatch::__construct — Crée un nouveau lot d'opérations d'écriture
  • MongoWriteBatch::execute — Exécute un lot d'opérations d'écriture


Ajoute une opération d'écriture dans un lot

  • « MongoWriteBatch
  • MongoWriteBatch::__construct »
  • PHP Manual
  • MongoWriteBatch
  • Ajoute une opération d'écriture dans un lot

MongoWriteBatch::add

(PECL mongo >= 1.5.0)

MongoWriteBatch::add — Ajoute une opération d'écriture dans un lot

Description

public bool MongoWriteBatch::add ( array $item )

Ajoute une opération d'écriture dans un lot.

Si le paramètre $item fait que le lot excède les limites » maxWriteBatchSize ou » maxBsonObjectSize, le driver va, en interne, couper les lots en plusieurs commandes d'écriture avant d'appeler la méthode MongoWriteBatch::execute().

Liste de paramètres

item

Un tableau qui décrit une opération d'écriture. La structure de cette valeur dépoend du type de l'opération du lot.

Type du lot | Signification
MongoWriteBatch::COMMAND_INSERT | Le document à ajouter.
MongoWriteBatch::COMMAND_UPDATE

Opération brute de mise à jour.

Les clés requises sont "q" et "u", qui correspondent aux paramètres $criteria et $new_object de MongoCollection::update(), respectivement.

Les clés optionnelles sont "multi" et "upsert", qui correspondent aux options "multiple" et "upsert" pour MongoCollection::update(), respectivement. Si on spécifiés, les deux options vaudront par défaut FALSE.

MongoWriteBatch::COMMAND_DELETE

Opération brute de suppression.

Les clés requises sont : "q" et "limit", qui correspondent au paramètre $criteria et à l'option "justOne" de MongoCollection::remove(), respectivement.

L'option "limit" est de type integer ; cependant, MongoDB ne supporte que la valeur 0 (i.e. supprime tous les documents correspondants) et la valeur 1 (i.e. supprime au moins un document correspondant) pour le moment.

Valeurs de retour

Retourne TRUE en cas de succès, et lance une exception si une erreur survient.

Erreurs / Exceptions

  • Une exception Exception sur un échec d'analyse du paramètre
  • Une exception Exception sur une erreur de validation de l'argument (i.e. clés manquantes)

Exemples

Exemple #1 Exemple avec MongoWriteBatch::add()

Mise en lot de plusieurs opérations d'insertion

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");

$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
    $batch->add($document);
}
$batch->execute(array("w" => 1));
?>

Exemple #2 Exemple avec MongoWriteBatch::add()

Mise en lot de plusieurs opérations de mise à jour

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "u" => array('$set' => array("try" => 1)),
    "multi"  => false, /* Valeur par défaut */
    "upsert" => false, /* Valeur par défaut */
);
$item2 = array(
    "q" => array("is" => "working"),
    "u" => array('$set' => array("try" => 2)),
    "multi" => true,
);
$item3 = array(
    "q" => array("created" => "new-document"),
    "u" => array('$set' => array("try" => 3)),
    "upsert" => true,
);

$batch = new MongoUpdateBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->add($item3);
$batch->execute(array("w" => 1));

?>

Exemple #3 Exemple avec MongoWriteBatch::add()

Mise en lot de plusieurs opérations de suppression

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "limit" => 1,
);
$item2 = array(
    "q" => array("try" => 3),
    "limit" => 1,
);

$batch = new MongoDeleteBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->execute(array("w" => 1));
?>


Crée un nouveau lot d'opérations d'écriture

  • « MongoWriteBatch::add
  • MongoWriteBatch::execute »
  • PHP Manual
  • MongoWriteBatch
  • Crée un nouveau lot d'opérations d'écriture

MongoWriteBatch::__construct

(PECL mongo >= 1.5.0)

MongoWriteBatch::__construct — Crée un nouveau lot d'opérations d'écriture

Description

protected MongoWriteBatch::__construct ( MongoCollection $collection [, string $batch_type [, array $write_options ]] )

Construit un nouveau MongoWriteBatch.

Note:

Ceci est un constructeur protégé. Veuillez utiliser une des classes héritées de MongoWriteBatch.

Liste de paramètres

collection

La MongoCollection sur laquelle le lot sera exécuté. Sa préoccupation d'écriture sera copiée et utilisée comme précoccupation d'écriture par défaut si aucune n'est fournie comme paramètre $write_options ou pendant MongoWriteBatch::execute().

batch_type

Valeurs possibles :

  • 0 - crée un lot MongoWriteBatch::COMMAND_INSERT
  • 1 - crée un lot MongoWriteBatch::COMMAND_UPDATE
  • 2 - crée un lot MongoWriteBatch::COMMAND_DELETE

write_options

Un tableau d'options d'écriture.

key | Signification de la valeur
w (int|string) | Valeur de Write concern
wtimeout (int) | Durée maximale à attendre pour une réplication
ordered | Détermine si MongoDB doit appliquer ce lot dans l'ordre. Les écritures dans l'ordre sont exécutées en série (i.e. une à la fois) et l'exécution va s'arrêter après la première erreur. Les écritures dans le désordre sont exécutées en parallèle et l'exécution ne s'arrêtera pas après la première erreur. Par défaut, vaut TRUE
j (bool) | Attend le journal du primaire. Cette valeur n'est pas conseillée, utilisez plutôt les WriteConcern
fsync (bool) | Attend fsync sur le primaire. Cette valeur n'est pas conseillée, utilisez plutôt les WriteConcern

Valeurs de retour

Un nouveau MongoWriteBatch de type batch_type.

Voir aussi

  • MongoInsertBatch
  • MongoUpdateBatch
  • MongoDeleteBatch


Exécute un lot d'opérations d'écriture

  • « MongoWriteBatch::__construct
  • MongoInsertBatch »
  • PHP Manual
  • MongoWriteBatch
  • Exécute un lot d'opérations d'écriture

MongoWriteBatch::execute

(PECL mongo >= 1.5.0)

MongoWriteBatch::execute — Exécute un lot d'opérations d'écriture

Description

final public array MongoWriteBatch::execute ( array $write_options )

Exécute le lot d'opérations d'écriture.

Liste de paramètres

write_options

Voir MongoWriteBatch::__construct.

Valeurs de retour

Retourne un tableau contenant les informations statistiques pour le lot complet. Si le lot a dû être découpé en plusieurs lots, la valeur retournée aggrégera les valeurs des différents lots et ne retournera que le total.

Si le lot est vide, un tableau contenant seulement le champ 'ok' sera retourné (avec la valeur TRUE) même si aucune opération n'a eu lieu (NOOP).

Clé du tableau | Signification de la valeur | Retourné pour le type de lot
nInserted | Nombre de documents insérés | MongoWriteBatch::COMMAND_INSERT batch
nMatched | Nombre de documents correspondant aux critères de requête | MongoWriteBatch::COMMAND_UPDATE batch
nModified | Nombre de documents devant être mis à jour | MongoWriteBatch::COMMAND_UPDATE batch
nUpserted | Nombre de documents insérés | MongoWriteBatch::COMMAND_UPDATE batch
nRemoved | Nombre de documents supprimés | MongoWriteBatch::COMMAND_DELETE batch
ok | Indicateur de succès de la commande | All

Erreurs / Exceptions

Une exception MongoWriteConcernException est émise en cas d'échec.

Exemples

Exemple #1 Exemple avec MongoWriteBatch::add()

Mise en lot de plusieurs opérations d'insertion

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");

$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
    $batch->add($document);
}
$retval = $batch->execute(array("w" => 1));
var_dump($retval);
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["nInserted"]=>
  int(3)
  ["ok"]=>
  bool(true)
}

Exemple #2 Exemple avec MongoWriteBatch::add()

Mise en lot de plusieurs opérations de mise à jour

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "u" => array('$set' => array("try" => 1)),
    "multi"  => false, /* valeur par défaut */
    "upsert" => false, /* valeur par défaut */
);
$item2 = array(
    "q" => array("is" => "working"),
    "u" => array('$set' => array("try" => 2)),
    "multi" => true,
);
$item3 = array(
    "q" => array("created" => "new-document"),
    "u" => array('$set' => array("try" => 3)),
    "upsert" => true,
);

$batch = new MongoUpdateBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->add($item3);
$retval = $batch->execute(array("w" => 1));
var_dump($retval);

?>

L'exemple ci-dessus va afficher :

array(4) {
  ["nMatched"]=>
  int(18)
  ["nModified"]=>
  int(2)
  ["nUpserted"]=>
  int(0)
  ["ok"]=>
  bool(true)
}

Exemple #3 Exemple avec MongoWriteBatch::add()

Mise en lot de plusieurs opérations d'effacement

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "limit" => 1,
);
$item2 = array(
    "q" => array("try" => 3),
    "limit" => 1,
);

$batch = new MongoDeleteBatch($collection);
$batch->add($item1);
$batch->add($item2);
$retval = $batch->execute(array("w" => 1));
var_dump($retval);
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["nRemoved"]=>
  int(1)
  ["ok"]=>
  bool(true)
}


La classe MongoInsertBatch

(PECL mongo >=1.5.0)

Introduction

Construit un lot d'opérations d'INSERT. Voir la méthode MongoWriteBatch.

Synopsis de la classe

MongoInsertBatch extends MongoWriteBatch {
/* Méthodes */
public __construct ( MongoCollection $collection [, array $write_options ] )
/* Méthodes héritées */
public bool MongoWriteBatch::add ( array $item )
final public array MongoWriteBatch::execute ( array $write_options )
}

Sommaire

  • MongoInsertBatch::__construct — Description


Description

  • « MongoInsertBatch
  • MongoUpdateBatch »
  • PHP Manual
  • MongoInsertBatch
  • Description

MongoInsertBatch::__construct

(PECL mongo >= 1.5.0)

MongoInsertBatch::__construct — Description

Description

public MongoInsertBatch::__construct ( MongoCollection $collection [, array $write_options ] )

Construit un lot d'opérations INSERT. Voir MongoWriteBatch.

Liste de paramètres

collection

La MongoCollection sur laquelle le lot sera exécuté. Sa préoccupation d'écriture sera copiée et utilisée comme précoccupation d'écriture par défaut si aucune n'est fournie comme paramètre $write_options ou pendant MongoWriteBatch::execute().

write_options

Un tableau d'options d'écriture.

key | Signification de la valeur
w (int|string) | Valeur de Write concern
wtimeout (int) | Durée maximale à attendre pour une réplication
ordered | Détermine si MongoDB doit appliquer ce lot dans l'ordre. Les écritures dans l'ordre sont exécutées en série (i.e. une à la fois) et l'exécution va s'arrêter après la première erreur. Les écritures dans le désordre sont exécutées en parallèle et l'exécution ne s'arrêtera pas après la première erreur. Par défaut, vaut TRUE
j (bool) | Attend le journal du primaire. Cette valeur n'est pas conseillée, utilisez plutôt les WriteConcern
fsync (bool) | Attend fsync sur le primaire. Cette valeur n'est pas conseillée, utilisez plutôt les WriteConcern

Valeurs de retour

Un nouveau MongoInsertBatch.


La classe MongoUpdateBatch

(PECL mongo >=1.5.0)

Introduction

Construit un lot d'opérations UPDATE. Voir la méthode MongoWriteBatch.

Synopsis de la classe

MongoUpdateBatch extends MongoWriteBatch {
/* Méthodes */
public __construct ( MongoCollection $collection [, array $write_options ] )
/* Méthodes héritées */
public bool MongoWriteBatch::add ( array $item )
final public array MongoWriteBatch::execute ( array $write_options )
}

Sommaire

  • MongoUpdateBatch::__construct — Description


Description

  • « MongoUpdateBatch
  • MongoDeleteBatch »
  • PHP Manual
  • MongoUpdateBatch
  • Description

MongoUpdateBatch::__construct

(PECL mongo >= 1.5.0)

MongoUpdateBatch::__construct — Description

Description

public MongoUpdateBatch::__construct ( MongoCollection $collection [, array $write_options ] )

Construit un lot d'opérations UPDATE. Voir MongoWriteBatch.

Liste de paramètres

collection

La MongoCollection sur laquelle le lot sera exécuté. Sa préoccupation d'écriture sera copiée et utilisée comme précoccupation d'écriture par défaut si aucune n'est fournie comme paramètre $write_options ou pendant MongoWriteBatch::execute().

write_options

Un tableau d'options d'écriture.

key | Signification de la valeur
w (int|string) | Valeur de Write concern
wtimeout (int) | Durée maximale à attendre pour une réplication
ordered | Détermine si MongoDB doit appliquer ce lot dans l'ordre. Les écritures dans l'ordre sont exécutées en série (i.e. une à la fois) et l'exécution va s'arrêter après la première erreur. Les écritures dans le désordre sont exécutées en parallèle et l'exécution ne s'arrêtera pas après la première erreur. Par défaut, vaut TRUE
j (bool) | Attend le journal du primaire. Cette valeur n'est pas conseillée, utilisez plutôt les WriteConcern
fsync (bool) | Attend fsync sur le primaire. Cette valeur n'est pas conseillée, utilisez plutôt les WriteConcern

Valeurs de retour

Un nouveau MongoUpdateBatch.


La classe MongoDeleteBatch

(PECL mongo >=1.5.0)

Introduction

Constructs a batch of DELETE operations. See MongoWriteBatch.

Synopsis de la classe

MongoDeleteBatch extends MongoWriteBatch {
/* Méthodes */
public __construct ( MongoCollection $collection [, array $write_options ] )
/* Méthodes héritées */
public bool MongoWriteBatch::add ( array $item )
final public array MongoWriteBatch::execute ( array $write_options )
}

Sommaire

  • MongoDeleteBatch::__construct — Description


Description

  • « MongoDeleteBatch
  • Divers »
  • PHP Manual
  • MongoDeleteBatch
  • Description

MongoDeleteBatch::__construct

(PECL mongo >= 1.5.0)

MongoDeleteBatch::__construct — Description

Description

public MongoDeleteBatch::__construct ( MongoCollection $collection [, array $write_options ] )

Construit un lot d'opérations DELETE. Voir MongoWriteBatch.

Liste de paramètres

collection

La MongoCollection sur laquelle le lot sera exécuté. Sa préoccupation d'écriture sera copiée et utilisée comme précoccupation d'écriture par défaut si aucune n'est fournie comme paramètre $write_options ou pendant MongoWriteBatch::execute().

write_options

Un tableau d'options d'écriture.

key | Signification de la valeur
w (int|string) | Valeur de Write concern
wtimeout (int) | Durée maximale à attendre pour une réplication
ordered | Détermine si MongoDB doit appliquer ce lot dans l'ordre. Les écritures dans l'ordre sont exécutées en série (i.e. une à la fois) et l'exécution va s'arrêter après la première erreur. Les écritures dans le désordre sont exécutées en parallèle et l'exécution ne s'arrêtera pas après la première erreur. Par défaut, vaut TRUE
j (bool) | Attend le journal du primaire. Cette valeur n'est pas conseillée, utilisez plutôt les WriteConcern
fsync (bool) | Attend fsync sur le primaire. Cette valeur n'est pas conseillée, utilisez plutôt les WriteConcern

Valeurs de retour

Un nouveau MongoDeleteBatch.


  • « MongoDeleteBatch::__construct
  • MongoLog »
  • PHP Manual
  • Mongo
  • Divers

Divers

Sommaire

  • MongoLog
  • MongoPool
  • Mongo


La classe MongoLog

(PECL mongo >=1.2.3)

Introduction

L'enregistrement de traces peut être utilisé pour récupérer des informations détaillées sur les différentes activités du driver. Par défaut, l'enregistrement des traces est désactivé, mais cette classe vous permet d'activer des niveaux spécifiques d'enregistrements pour différentes parties du driver. Quelques exemples :

<?php

// affiche tous les messages de logs possibles
MongoLog::setLevel(MongoLog::ALL); // tous les niveaux de logs
MongoLog::setModule(MongoLog::ALL); // toutes les parties du driver

// affiche les évènements significatifs concernant les erreurs du jeu de réplication
MongoLog::setLevel(MongoLog::INFO);
MongoLog::setModule(MongoLog::RS);

// affiche les informations et le niveau de diagnostique des événements pour les
// jeux de réplication et les connexions
MongoLog::setLevel(MongoLog::INFO|MongoLog::FINE);
MongoLog::setModule(MongoLog::RS|MongoLog::CON);

?>

Note:

Par défaut, MongoLog émet tous les messages d'enregistrement de traces comme notices PHP. Suivant le SAPI utilisé, les messages peuvent être envoyés à stderr (pour CLI) ou au log d'erreurs du serveur Web. Si, après avoir configuré MongoLog, les messages d'enregistrement de traces n'apparaissent pas comme prévus, assurez-vous que E_NOTICE est inclus dans l'option de configuration error_reporting et que display_errors vaut "on".

Synopsis de la classe

MongoLog {
/* Constantes */
const int NONE = 0 ;
const int ALL = 31 ;
level constants {
const int WARNING = 1 ;
const int INFO = 2 ;
const int FINE = 4 ;
module constants {
const int RS = 1 ;
const int POOL = 1 ;
const int CON = 2 ;
const int IO = 4 ;
const int SERVER = 8 ;
const int PARSE = 16 ;
/* Champs */
private static int $callback ;
private static int $level ;
private static int $module ;
/* Méthodes */
public static callable getCallback ( void )
public static int getLevel ( void )
public static int getModule ( void )
public static void setCallback ( callable $log_function )
public static void setLevel ( int $level )
public static void setModule ( int $module )
}

Constantes pré-définies

Constantes MongoLog

Ces constantes peuvent être utilisées par à la fois la méthode MongoLog::setLevel() et la méthode MongoLog::setModule().

MongoLog::NONE
Aucun enregistrement de traces n'est réalisé.
MongoLog::ALL
Enregistre toutes les traces.

Constantes MongoLog sur les niveaux

Ces constantes peuvent être utilisées par la méthode MongoLog::setLevel().

MongoLog::WARNING
Log les événements qui sont exceptionnels, mais pas assez pour lancer une exception (i.e. erreurs de connexion qui peuvent être corrigées).
MongoLog::INFO
Log les événements qui peuvent intéresser les administrateurs, mais qui ne sont pas noticiable (i.e. option d'analyse, étape d'authentification).
MongoLog::FINE
Log la plupart des événements que le driver produit (i.e. sélection de serveur, communication avec un socket). Suivant le module dont on enregistre les traces, ceci peut être très verbeux, et est principalement prévu pour le débogage.

Constantes du module MongoLog

Ces constantes peuvent être utilisées par la méthode MongoLog::setModule().

MongoLog::CON
Log l'activité de la connexion. Création d'une nouvelle connexion, authentification, les différents pings, l'atteinte des délais d'expiration, etc..
MongoLog::IO
Enregistre les traces à propos du trafic de la base de données. A moins que votre programme soit très particulier, cette constante créera un nombre gigantesque de messages de logs.
MongoLog::PARSE
Log l'analyse de la chaîne de connexion et des options, lors de la construction d'un MongoClient.
MongoLog::POOL
Précédemment utilisé pour enregistrer les traces de l'activité du pool de connexion. Cette option est maintenant obsolète, et est un alias de MongoLog::RS.
MongoLog::RS
Enregistre les traces de l'activité du jeu de réplication (Erreur, sélection de la préférence de lecture, etc.).
MongoLog::SERVER
Précédemment utilisé pour enregistrer les traces des modifications de statut du serveur. Cette option est obsolète, en faveur de MongoLog::RS.

Historique

Version | Description
1.3.0 | Ajout de MongoLog::CON, et, désormais, MongoLog::POOL et MongoLog::SERVER sont obsolètes.

Sommaire

  • MongoLog::getCallback — Récupère la précédente fonction de rappel définie
  • MongoLog::getLevel — Récupère le(s) niveau(x) actuellement loggué(s)
  • MongoLog::getModule — Récupère le(s) module(s) actuellement surveillé(s)
  • MongoLog::setCallback — Définit une fonction de rappel à utiliser lors d'événements
  • MongoLog::setLevel — Définit le(s) niveau(x) des logs
  • MongoLog::setModule — Définit le(s) module(s) à surveiller avec les logs


Récupère la précédente fonction de rappel définie

  • « MongoLog
  • MongoLog::getLevel »
  • PHP Manual
  • MongoLog
  • Récupère la précédente fonction de rappel définie

MongoLog::getCallback

(PECL mongo >= 1.3.0)

MongoLog::getCallback — Récupère la précédente fonction de rappel définie

Description

public static callable MongoLog::getCallback ( void )

Récupère la fonction de rappel.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la fonction de rappel, ou FALSE si aucune fonction de rappel n'a été définie.

Notes

Attention

Cette fonction n'est disponible qu'avec PHP 5.3.0 et suivant.


Récupère le(s) niveau(x) actuellement loggué(s)

  • « MongoLog::getCallback
  • MongoLog::getModule »
  • PHP Manual
  • MongoLog
  • Récupère le(s) niveau(x) actuellement loggué(s)

MongoLog::getLevel

(PECL mongo >= 1.2.3)

MongoLog::getLevel — Récupère le(s) niveau(x) actuellement loggué(s)

Description

public static int MongoLog::getLevel ( void )

Cette fonction peut être utilisée pour afficher les niveaux de log actuellement activés. L'entier retourné peut être comparé avec les constantes de niveaux MongoLog en utilisant des opérateurs de bits pour vérifier les niveaux de log spécifiques.

<?php

if (MongoLog::getLevel() & MongoLog::FINE) {
    echo "Beaucoup de logs\n";
}

if (MongoLog::getLevel() ^ MongoLog::NONE) {
    echo "historisation, au moins un peu !\n";
}

if (MongoLog::getLevel() == MongoLog::ALL) {
    echo "historisation au plus haut niveau !\n";
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le(s) niveau(x) actuellement loggués.


Récupère le(s) module(s) actuellement surveillé(s)

  • « MongoLog::getLevel
  • MongoLog::setCallback »
  • PHP Manual
  • MongoLog
  • Récupère le(s) module(s) actuellement surveillé(s)

MongoLog::getModule

(PECL mongo >= 1.2.3)

MongoLog::getModule — Récupère le(s) module(s) actuellement surveillé(s)

Description

public static int MongoLog::getModule ( void )

Cette fonction peut être utilisée pour voir quels sont les modules du driver actuellement surveillés. L'entier retourné peut être comparé avec les constantes de module MongoLog en utilisant un opérateur de bits pour vérifier si les modules spécifiés sont surveillés.

<?php

if (MongoLog::getModule() & MongoLog::RS) {
    echo "logging replica sets\n";
}

if (MongoLog::getModule() ^ MongoLog::NONE) {
    echo "logging something\n";
}

if ((MongoLog::getModule() & MongoLog::IO) == 0) {
    echo "not logging io\n";
}

?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le(s) module(s) actuellement connecté(s).


Définit une fonction de rappel à utiliser lors d'événements

  • « MongoLog::getModule
  • MongoLog::setLevel »
  • PHP Manual
  • MongoLog
  • Définit une fonction de rappel à utiliser lors d'événements

MongoLog::setCallback

(PECL mongo >= 1.3.0)

MongoLog::setCallback — Définit une fonction de rappel à utiliser lors d'événements

Description

public static void MongoLog::setCallback ( callable $log_function )

Cette fonction va définir une fonction de rappel à appeler par les événements au lieu d'émettre une notice PHP.

Liste de paramètres

log_function

La fonction de rappel à appeler lors d'événements. Elle doit avoir le prototype suivant :

log_function ( int $module , int $level , string $message )
module
Une constante parmi les constantes du module MongoLog.
level
Une constante parmi les constantes de niveau MongoLog.
message
Le message de log.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec MongoLog::setCallback()

<?php
function module2string($module)
{
    switch ($module) {
        case MongoLog::RS: return "REPLSET";
        case MongoLog::CON: return "CON";
        case MongoLog::IO: return "IO";
        case MongoLog::SERVER: return "SERVER";
        case MongoLog::PARSE: return "PARSE";
        default: return "UNKNOWN";
    }
}

function level2string($level)
{
    switch ($level) {
        case MongoLog::WARNING: return "WARN";
        case MongoLog::INFO: return "INFO";
        case MongoLog::FINE: return "FINE";
        default: var_dump($level); return "UNKNOWN";
    }
}

function callback($module, $level, $message)
{
    echo date("Y-m-d H:i:s - ");
    printf("%s (%s): %s\n", module2string($module), level2string($level), $message);
}

MongoLog::setLevel(MongoLog::ALL);
MongoLog::setModule(MongoLog::ALL);

// Nous spécifions ici le nom de la fonction, mais tout callable (i.e. fonction
// anonyme) va fonctionner
MongoLog::setCallback("callback");

new MongoClient();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

2013-07-09 09:41:42 - PARSE (INFO): Parsing localhost:27017
2013-07-09 09:41:42 - PARSE (INFO): - Found node: localhost:27017
2013-07-09 09:41:42 - PARSE (INFO): - Connection type: STANDALONE
2013-07-09 09:41:42 - CON (INFO): mongo_get_read_write_connection: finding a STANDALONE connection
2013-07-09 09:41:42 - CON (INFO): connection_create: creating new connection for localhost:27017
2013-07-09 09:41:42 - CON (INFO): stream_connect: Not establishing SSL for localhost:27017
2013-07-09 09:41:42 - CON (INFO): get_server_flags: start
2013-07-09 09:41:42 - CON (FINE): send_packet: read from header: 36
2013-07-09 09:41:42 - CON (FINE): send_packet: data_size: 95
2013-07-09 09:41:42 - CON (FINE): get_server_flags: setting maxBsonObjectSize to 16777216
2013-07-09 09:41:42 - CON (FINE): get_server_flags: setting maxMessageSizeBytes to 48000000
2013-07-09 09:41:42 - CON (INFO): is_ping: pinging localhost:27017;-;.;1543
2013-07-09 09:41:42 - CON (FINE): send_packet: read from header: 36
2013-07-09 09:41:42 - CON (FINE): send_packet: data_size: 17
2013-07-09 09:41:42 - CON (INFO): is_ping: last pinged at 1373359302; time: 0ms
2013-07-09 09:41:42 - REPLSET (FINE): finding candidate servers
2013-07-09 09:41:42 - REPLSET (FINE): - all servers
2013-07-09 09:41:42 - REPLSET (FINE): filter_connections: adding connections:
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): filter_connections: done
2013-07-09 09:41:42 - REPLSET (FINE): limiting by seeded/discovered servers
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): limiting by seeded/discovered servers: done
2013-07-09 09:41:42 - REPLSET (FINE): limiting by credentials
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): limiting by credentials: done
2013-07-09 09:41:42 - REPLSET (FINE): sorting servers by priority and ping time
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): sorting servers: done
2013-07-09 09:41:42 - REPLSET (FINE): selecting near servers
2013-07-09 09:41:42 - REPLSET (FINE): selecting near servers: nearest is 0ms
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): selecting near server: done
2013-07-09 09:41:42 - REPLSET (INFO): pick server: random element 0
2013-07-09 09:41:42 - REPLSET (INFO): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543

Notes

Attention

Cette fonction n'est disponible qu'avec PHP 5.3.0 et suivant.


Définit le(s) niveau(x) des logs

  • « MongoLog::setCallback
  • MongoLog::setModule »
  • PHP Manual
  • MongoLog
  • Définit le(s) niveau(x) des logs

MongoLog::setLevel

(PECL mongo >= 1.2.3)

MongoLog::setLevel — Définit le(s) niveau(x) des logs

Description

public static void MongoLog::setLevel ( int $level )

Cette fonction peut être utilisée pour définir la verbosité des logs ainsi que le type d'activités à surveiller. Utilisez les constantes de niveaux MongoLog avec un opérateur de bits pour spécifier plusieurs niveaux.

<?php

// d'abords, spécifiions un module de log
MongoLog::setModule(MongoLog::CON);

// enregistre les messages pour tous les niveaux
MongoLog::setLevel(MongoLog::ALL);

// enregistre les alertes et les informations uniquement
MongoLog::setLevel(MongoLog::WARNING|MongoLog::INFO);

// enregistre n'importe quoi, sauf l'activité fine
MongoLog::setLevel(MongoLog::ALL & (~MongoLog::FINE));

?>

Notez que vous devez aussi appeler la méthode MongoLog::setModule() pour spécifier le ou les modules du driver qui doivent enregistrer des logs.

Liste de paramètres

level

Le(s) niveau(x) que vous voulez surveiller.


Définit le(s) module(s) à surveiller avec les logs

  • « MongoLog::setLevel
  • MongoPool »
  • PHP Manual
  • MongoLog
  • Définit le(s) module(s) à surveiller avec les logs

MongoLog::setModule

(PECL mongo >= 1.2.3)

MongoLog::setModule — Définit le(s) module(s) à surveiller avec les logs

Description

public static void MongoLog::setModule ( int $module )

Cette fonction peut être utilisée pour définir les modules à surveiller avec les logs. Les constantes du module MongoLog peuvent être utilisées avec un opérateur sur les bits pour spécifier les plusieurs modules.

<?php

// d'abord, spécifions un niveau de log
MongoLog::setLevel(MongoLog::ALL);

// enregistre l'activité de réplication
MongoLog::setModule(MongoLog::RS);

// enregistre l'activité de la réplication et de la connexion
MongoLog::setModule(MongoLog::RS|MongoLog::CON);

// enregistre tout sauf l'activité IO
MongoLog::setModule(MongoLog::ALL & (~MongoLog::IO));

?>

Notez que vous devez aussi appeler la méthode MongoLog::setLevel() pour activer l'enregistrement des logs.

Liste de paramètres

module

Le ou les modules à loguer.


La classe MongoPool

(PECL mongo >= 1.2.3)

Introduction

Avertissement

La version courante (1.3.0+) du driver n'implémente plus la mise en file d'attente. Cette classe et ces méthodes sont donc obsolètes, et ne doivent plus être utilisées.

Synopsis de la classe

MongoPool {
/* Méthodes */
public static int getSize ( void )
public array info ( void )
public static bool setSize ( int $size )
}

Historique

Version | Description
1.3.0 | Cette fonctionalité a été supprimée et ne fait plus rien, mise à part lancer des alertes indiquant l'obsolescence. Cette classe n'est conservée que pour des raisons de compatibilité ascendante, et sera supprimée dans un futur proche.
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.

Sommaire

  • MongoPool::getSize — Récupère la taille de la file d'attente des connexions
  • MongoPool::info — Retourne des informations sur toutes les files d'attente de connexions
  • MongoPool::setSize — Définit la taille de la future file d'attente de connexions


Récupère la taille de la file d'attente des connexions

  • « MongoPool
  • MongoPool::info »
  • PHP Manual
  • MongoPool
  • Récupère la taille de la file d'attente des connexions

MongoPool::getSize

(PECL mongo >= 1.2.3)

MongoPool::getSize — Récupère la taille de la file d'attente des connexions

Description

public static int MongoPool::getSize ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille de la file d'attente des connexions.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.

Exemples

Exemple #1 Modification de la taille de la file d'attente

Cet exemple retourne la taille par défaut de la file d'attente, puis, définit une nouvelle taille, et enfin, affiche la nouvelle taille ainsi que les informations de débogage de la file d'attente. Notez que la modification de la taille de la file d'attente n'affecte que les nouvelles files d'attente de connexions, cela ne modifie pas les anciennes.

<?php

$connection = new Mongo("host1");

// La taille de la file est -1
echo "La taille de la file est : ".MongoPool::getSize()."\n";

echo "Modification de la taille à 200\n";

MongoPool::setSize(200);

// La taille de la file est 200
echo "La taille de la file est : ".MongoPool::getSize()."\n";

$conn2 = new Mongo("host2");

// Pour l'hôte host1, c'est -2
// Pour l'hôte host2, c'est 199
var_dump(Mongo::poolDebug());

?>

Voir aussi

  • MongoPool::setSize() - Définit la taille de la future file d'attente de connexions
  • MongoPool::info() - Retourne des informations sur toutes les files d'attente de connexions
  • La documentation sur les connexions.


Retourne des informations sur toutes les files d'attente de connexions

  • « MongoPool::getSize
  • MongoPool::setSize »
  • PHP Manual
  • MongoPool
  • Retourne des informations sur toutes les files d'attente de connexions

MongoPool::info

(PECL mongo >= 1.2.3)

MongoPool::info — Retourne des informations sur toutes les files d'attente de connexions

Description

public array MongoPool::info ( void )

Retourne un tableau d'informations sur toutes les files d'attente de connexion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Chaque file d'attente de connexions a un identifiant, qui commence par l'hôte. Pour chaque file, cette fonction affiche les champs suivants :

in use

Le nombre de connexions actuellement utilisées par les instances Mongo.

in pool

Le nombre de connexions actuellement dans la file d'attente (et non encore utilisées).

remaining

Le nombre de connexions pouvant être créées par cette file d'attente. Par exemple, en supposant que la file a 5 connexions restantes, et 3 connexions dans la file d'attente, nous pouvons créer 8 instances MongoClient avant de dépasser cette file d'attente (en supposant qu'aucune des instances MongoClient ne sorte du scope, faisant ainsi que leurs connexions retournent à la file d'attente).

Un nombre négatif signifie que cette file pourra contenir un nombre de connexions illimité.

Avant de créer une file d'attente, vous pouvez modifier le nombre maximal de connexions en appelant la méthode Mongo::setPoolSize(). Une fois qu'une file est affichée avec cette méthode, sa taille ne peut plus être modifiée.

total

Le nombre total de connexions autorisées pour cette file. Doit être supérieur ou égal au nombre du champ "in use" + "in pool" (ou -1).

timeout

Le délai d'attente maximal du socket pour les connexions de cette file.

waiting

Si vous avez limité la taille de la file, les travailleurs demandant une connexion depuis cette file peuvent attendre que d'autres travailleurs retournent leurs connexions. Ce champ montre le nombre de millisecondes les travailleurs resteront bloqués en attente de connexions. Si ce nombre est souvent sollicité, vous devriez utiliser la méthode MongoPool::setSize() pour ajouter plus de connexions à votre file.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.


Définit la taille de la future file d'attente de connexions

  • « MongoPool::info
  • Mongo »
  • PHP Manual
  • MongoPool
  • Définit la taille de la future file d'attente de connexions

MongoPool::setSize

(PECL mongo >= 1.2.3)

MongoPool::setSize — Définit la taille de la future file d'attente de connexions

Description

public static bool MongoPool::setSize ( int $size )

Définit le nombre maximal de connexions pour les futures nouvelles files d'attente.

Liste de paramètres

size

Le nombre maximal de connexions pour les futures nouvelles files d'attente. Un nombre négatif signifie que la file peut contenir un nombre infini de connexions.

Valeurs de retour

Retourne la taille de la file d'attente.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.

Exemples

Exemple #1 Exemple avec Mongo::setPoolSize()

Si vous définissez la taille de la file d'attente à n et que vous créez n connexions, le fait de tenter de créer une n+1ème connexion émettra une exception de type MongoConnectionException.

<?php

// n'autorise qu'une seule connexion au serveur
MongoPool::setSize(1);

// crée une connexion vers localhost:27017
$m1 = new Mongo();

// tente de créer une seconde connexion vers localhost:27017
// seule une connexion est autorisée, une exception sera émise
$m2 = new Mongo();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fatal error: Uncaught exception 'MongoConnectionException' with message 'no more connections in pool' in /path/to/php/script.php:10
Stack trace:
#0 /path/to/php/script.php(10): Mongo->__construct()
#1 {main}
  thrown in /path/to/php/script.php on line 10

Voir aussi

  • MongoPool::getSize() - Récupère la taille de la file d'attente des connexions
  • MongoPool::info() - Retourne des informations sur toutes les files d'attente de connexions
  • La documentation sur les connexions.


La classe Mongo [Obsolète]

(PECL mongo >=0.9.0)

Introduction

La connexion entre MongoDB et PHP.

Cette classe étend la classe MongoClient et permet l'accès à plusieurs méthodes devenues obsolètes.

Pour des raisons de compatibilité ascendantes, l'option "w" de l'argument de son constructeur vaut 0 par défaut, ce qui ne nécessite pas aux opérations en écriture d'être reconnues par le serveur. Voir la méthode MongoClient::__construct() pour plus d'informations.

Avertissement

Cette classe est devenue OBSOLETE depuis la version 1.3.0. Son utilisation est vivement déconseillée. Veuillez utiliser la classe MongoClient à la place.

Synopsis de la classe

Mongo extends MongoClient {
/* Méthodes */
protected bool connectUtil ( void )
public static int getPoolSize ( void )
public string getSlave ( void )
public bool getSlaveOkay ( void )
public array poolDebug ( void )
public static bool setPoolSize ( int $size )
public bool setSlaveOkay ([ bool $ok = true ] )
public string switchSlave ( void )
/* Méthodes héritées */
public bool MongoClient::close ([ boolean|string $connection ] )
public bool MongoClient::connect ( void )
public array MongoClient::dropDB ( mixed $db )
public MongoDB MongoClient::__get ( string $dbname )
public static array MongoClient::getConnections ( void )
public array MongoClient::getHosts ( void )
public array MongoClient::getReadPreference ( void )
public array MongoClient::getWriteConcern ( void )
public bool MongoClient::killCursor ( string $server_hash , int|MongoInt64 $id )
public array MongoClient::listDBs ( void )
public MongoCollection MongoClient::selectCollection ( string $db , string $collection )
public MongoDB MongoClient::selectDB ( string $name )
public bool MongoClient::setReadPreference ( string $read_preference [, array $tags ] )
public bool MongoClient::setWriteConcern ( mixed $w [, int $wtimeout ] )
public string MongoClient::__toString ( void )
}

Sommaire

  • Mongo::connectUtil — Se connecte à un serveur Mongo
  • Mongo::__construct — Le but de __construct
  • Mongo::getPoolSize — Récupère la taille de la file d'attente pour les connexions
  • Mongo::getSlave — Retourne l'adresse à utiliser pour les lectures slaveOkay
  • Mongo::getSlaveOkay — Récupère la configuration de slaveOkay pour cette collection
  • Mongo::poolDebug — Retourne des informations sur les pools de connexion
  • Mongo::setPoolSize — Affecte la taille des futurs pools de connexion
  • Mongo::setSlaveOkay — Modifie la configuration de slaveOkay pour cette collection
  • Mongo::switchSlave — Choisit un nouvel secondaire pour les lectures slaveOkay


Se connecte à un serveur Mongo

  • « Mongo
  • Mongo::__construct »
  • PHP Manual
  • Mongo
  • Se connecte à un serveur Mongo

Mongo::connectUtil

(PECL mongo >=0.9.0)

Mongo::connectUtil — Se connecte à un serveur Mongo

Description

protected bool Mongo::connectUtil ( void )
Avertissement

Ceci est une fonction interne que vous ne devez jamais appeler directement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la connexion a réussi.

Erreurs / Exceptions

Emet une exception MongoConnectionException si la connexion à la base de données échoue.


Le but de __construct

  • « Mongo::connectUtil
  • Mongo::getPoolSize »
  • PHP Manual
  • Mongo
  • Le but de __construct

Mongo::__construct

(PECL mongo >=0.9.0)

Mongo::__construct — Le but de __construct

Description

public Mongo::__construct ([ string $server [, array $options ]] )

Cette méthode écrase le constructeur MongoClient et désactive les écritures reconnues.

Reportez-vous à la documentation de MongoClient::__construct() pour une description des paramètres.

Valeurs de retour

Avertissement

L'instanciation de cette classe émet une alerte de niveau E_DEPRECATED et désactive les écritures reconnues.

Veuillez utiliser la classe MongoClient à la place.


Récupère la taille de la file d'attente pour les connexions

  • « Mongo::__construct
  • Mongo::getSlave »
  • PHP Manual
  • Mongo
  • Récupère la taille de la file d'attente pour les connexions

Mongo::getPoolSize

(PECL mongo >=1.2.0)

Mongo::getPoolSize — Récupère la taille de la file d'attente pour les connexions

Description

public static int Mongo::getPoolSize ( void )
Avertissement

Cette fonctionnalité est devenue OBSOLÈTE depuis la version 1.2.3. Nous vous encourageons vivement à ne plus l'utiliser. Utilisez la méthode MongoPool::getSize() à la place.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille de la file d'attente pour les connexions.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.

Exemples

Exemple #1 Changer la taille de la file

Cet exemple retourne la taille de la file par défaut, change cette taille puis affiche la nouvelle taille de file et des informations de débogage. Notez que changer la taille de la file n'affecte que les nouvelles files de connections, pas les anciennes.

<?php

$connection = new Mongo("host1");

// Taille de la file : -1
echo "la taille de la file est de: ".Mongo::getPoolSize()."\n";

echo "Changement de la taille de la file à 200\n";

Mongo::setPoolSize(200);

// Taille de la file : 200
echo "la taille de la file est de: ".Mongo::getPoolSize()."\n";

$conn2 = new Mongo("host2");

// Il reste -2 pour host1
// Il reste 199 pour host2
var_dump(Mongo::poolDebug());

?>

Voir aussi

  • Mongo::setPoolSize() - Affecte la taille des futurs pools de connexion
  • Mongo::poolDebug() - Retourne des informations sur les pools de connexion
  • La documentation sur les connections.


Retourne l'adresse à utiliser pour les lectures slaveOkay

  • « Mongo::getPoolSize
  • Mongo::getSlaveOkay »
  • PHP Manual
  • Mongo
  • Retourne l'adresse à utiliser pour les lectures slaveOkay

Mongo::getSlave

(PECL mongo >=1.1.0)

Mongo::getSlave — Retourne l'adresse à utiliser pour les lectures slaveOkay

Description

public string Mongo::getSlave ( void )

Cette méthode trouve l'adresse du secondaire actuellement utilisé pour les lectures. C'est une méthode en lecture seule : elle ne modifie rien sur le statut interne de l'objet.

Lorsque vous créez une connexion à la base de données, le pilote ne décidera pas immédiatement du secondaire à utiliser. Ainsi, après la connexion, cette fonction retournera NULL même s'il existe des secondaires disponibles. Lorsque vous effectuez une requête avec slaveOkay, là, le pilote choisira un secondaire pour la connexion. Dès lors, cette fonction retournera le secondaire choisi.

Reportez-vous à la section sur les requêtes de ce manuel pour plus d'informations sur la distribution de lecture aux secondaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'adresse du secondaire utilisé par cette connexion pour les lectures.

Cette méthode retourne NULL si elle n'est pas connectée à un jeu de réplication, ou si la connexion n'a pas encore été initialisée.

Erreurs / Exceptions

Lance une alerte de type E_DEPRECATED

Le résultat retourné n'est pas réellement utile, sachant que le processus de sélection du secondaire est effectué sur chaque requête et exécution de commande de base de données.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.

Voir aussi

  • MongoCursor::info() - Récupère les informations sur la création du curseur et son itération


Récupère la configuration de slaveOkay pour cette collection

  • « Mongo::getSlave
  • Mongo::poolDebug »
  • PHP Manual
  • Mongo
  • Récupère la configuration de slaveOkay pour cette collection

Mongo::getSlaveOkay

(PECL mongo >=1.1.0)

Mongo::getSlaveOkay — Récupère la configuration de slaveOkay pour cette collection

Description

public bool Mongo::getSlaveOkay ( void )

Reportez-vous à la section sur les requêtes de ce manuel pour plus d'informations sur la distribution de lecture aux secondaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur de la configuration de slaveOkay pour cette instance.

Erreurs / Exceptions

Lance une alerte de type E_DEPRECATED

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.

Voir aussi

  • Préférences de lecture
  • MongoClient::getReadPreference() - Récupère les préférences de lecture pour cette connexion


Retourne des informations sur les pools de connexion

  • « Mongo::getSlaveOkay
  • Mongo::setPoolSize »
  • PHP Manual
  • Mongo
  • Retourne des informations sur les pools de connexion

Mongo::poolDebug

(PECL mongo >=1.2.0)

Mongo::poolDebug — Retourne des informations sur les pools de connexion

Description

public array Mongo::poolDebug ( void )
Avertissement

Cette fonctionnalité est devenue OBSOLÈTE depuis la version 1.2.3. Nous vous encourageons vivement à ne plus l'utiliser. Utilisez la méthode MongoPool::info() à la place.

Retourne un tableau contenant des informations sur les pools de connexion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Chaque pool de connexion possède un identifiant, qui commence par l'hôte. Pour chaque pool, cette fonction fournit les champs suivants:

in use

Nombre de connexions utilisées actuellement par les instances MongoClient.

in pool

Le nombre de connexions actuellement dans le pool (non utilisées).

remaining

Le nombre de connexions qui pourraient être créées dans ce pool. Par exemple, supposons un pool avec 5 connexions restantes et 3 utilisées. Nous pourrions créer 8 instances de MongoClient avant d'arriver à saturer le pool (supposant que toutes les instances ont réussi MongoClient).

Un nombre négatif signifie que le pool est illimité en connexions.

Avant que le pool ne soit crée, vous pouvez changer le nombre maximum de connexions en appelant Mongo::setPoolSize(). Une fois le pool crée, vous ne pouvez plus changer sa taille.

timeout

Le timeout pour le socket de connexion de ce pool. C'est le temps pendant lequel les connexions dans ce pool vont attendre pour se connecter à un serveur.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.


Affecte la taille des futurs pools de connexion

  • « Mongo::poolDebug
  • Mongo::setSlaveOkay »
  • PHP Manual
  • Mongo
  • Affecte la taille des futurs pools de connexion

Mongo::setPoolSize

(PECL mongo >=1.2.0)

Mongo::setPoolSize — Affecte la taille des futurs pools de connexion

Description

public static bool Mongo::setPoolSize ( int $size )
Avertissement

Cette méthode est devenue OBSOLÈTE depuis la version 1.2.3. Nous vous encourageons vivement à ne plus l'utiliser. Utilisez la méthode MongoPool::setSize() à la place.

Définit le nombre maximum de connexions que les nouveaux pools seront capables de créer.

Liste de paramètres

size

Le nombre maximum de connexions que les nouveaux pools seront capables de créer. Un nombre négatif signifie sans limite.

Valeurs de retour

Retourne l'ancienne valeur de taille du pool.

Exemples

Exemple #1 Exemple Mongo::setPoolSize()

Si vous passez la taille du pool à n et que vous créez n connexions, la tentative de créer une n+1 connexion lèvera une MongoConnectionException.

<?php

// N'autorise qu'une seule connexion à un serveur
Mongo::setPoolSize(1);

// Créer une connexion à localhost:27017
$m1 = new Mongo();

// Tente de créer une seconde connexion à localhost:27017
// Seule une connexion est autorisée, ceci va lever une exception
$m2 = new Mongo();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fatal error: Uncaught exception 'MongoConnectionException' with message 'no more connections in pool' in /path/to/php/script.php:10
Stack trace:
#0 /path/to/php/script.php(10): Mongo->__construct()
#1 {main}
  thrown in /path/to/php/script.php on line 10

Voir aussi

  • Mongo::getPoolSize() - Récupère la taille de la file d'attente pour les connexions
  • Mongo::poolDebug() - Retourne des informations sur les pools de connexion
  • La documentention des connections.


Modifie la configuration de slaveOkay pour cette collection

  • « Mongo::setPoolSize
  • Mongo::switchSlave »
  • PHP Manual
  • Mongo
  • Modifie la configuration de slaveOkay pour cette collection

Mongo::setSlaveOkay

(PECL mongo >=1.1.0)

Mongo::setSlaveOkay — Modifie la configuration de slaveOkay pour cette collection

Description

public bool Mongo::setSlaveOkay ([ bool $ok = true ] )

Reportez-vous à la section sur les requêtes de ce manuel pour plus d'informations sur la distribution de la lecture aux secondaires.

Liste de paramètres

ok

Si la lecture doit être envoyée aux membres secondaires du jeu de réplication pour toutes les requêtes possibles issues de l'instance MongoClient.

Valeurs de retour

Retourne la valeur formelle de la configuration de slaveOkay pour cette instance.

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.

Voir aussi

  • Préférences de lecture
  • MongoClient::setReadPreference() - Définit les préférences de lecture pour cette connexion


Choisit un nouvel secondaire pour les lectures slaveOkay

  • « Mongo::setSlaveOkay
  • Fonctions Mongo »
  • PHP Manual
  • Mongo
  • Choisit un nouvel secondaire pour les lectures slaveOkay

Mongo::switchSlave

(PECL mongo >=1.1.0)

Mongo::switchSlave — Choisit un nouvel secondaire pour les lectures slaveOkay

Description

public string Mongo::switchSlave ( void )

Cette méthode choisit de façon aléatoire un secondaire pour une connexion afin d'y effectuer les lectures. Elle est appelée automatiquement par le driver et ne devrait pas être appelée manuellement. Elle appelle la méthode MongoClient::getHosts() (pour rafraichir les statuts des hôtes) et la méthode MongoClient::getSlave() (pour récupérer la valeur retournée).

Reportez-vous à la section sur les requêtes de ce manuel pour plus d'informations sur la distribution de lecture aux secondaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'adresse du secondaire utilisé par cette connexion pour les lectures. Elle devrait être la même que celle choisie précédemment de façon aléatoire. La méthode devrait retourner qu'une seule adresse si un seul serveur secondaire (ou un seul primaire) est disponible.

Par exemple, si vous avez 3 membres dans le jeu de réplication avec un primaire, un secondaire et un arbitraire, cette méthode devrait toujours retourner l'adresse du secondaire. Si le secondaire devient indisponible, cette méthode devrait toujours retourner l'adresse du primaire. Si le primaire devient aussi indisponible, cette méthode lancera une exception, sachant qu'un serveur arbitraire ne peut gérer les lectures.

Erreurs / Exceptions

Lance une exception MongoException (code erreur 15) si la méthode est appelée sur une connexion non connue du jeu de réplication. Elle lancera également une exception MongoException si aucun serveur de réplication n'est trouvé (primaire ou secondaire) pour la lecture (code erreur 16).

Historique

Version | Description
1.2.11 | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.

Voir aussi

  • Préférences de lecture


Fonctions Mongo

Sommaire

  • bson_decode — Délinéarise un objet BSON en un tableau PHP
  • bson_encode — Linéarise une variable PHP en une chaîne BSON


Délinéarise un objet BSON en un tableau PHP

  • « Fonctions Mongo
  • bson_encode »
  • PHP Manual
  • Fonctions Mongo
  • Délinéarise un objet BSON en un tableau PHP

bson_decode

(PECL mongo >=1.0.1)

bson_decode — Délinéarise un objet BSON en un tableau PHP

Description

array bson_decode ( string $bson )

Cette fonction est en phase béta et très peu utile pour 99% des utilisateurs. Elle ne sert que si vous faites une mauvaise manipulation comme écrire votre propre pilote par dessus le pilote PHP.

Liste de paramètres

bson

L'objet BSON à délinéariser.

Valeurs de retour

Retourne l'objet BSON délinéarisé.


Linéarise une variable PHP en une chaîne BSON

  • « bson_decode
  • Exceptions »
  • PHP Manual
  • Fonctions Mongo
  • Linéarise une variable PHP en une chaîne BSON

bson_encode

(PECL mongo >=1.0.1)

bson_encode — Linéarise une variable PHP en une chaîne BSON

Description

string bson_encode ( mixed $anything )

Cette fonction est en phase béta et très peu utile pour 99% des utilisateurs. Elle ne sert que si vous faites une mauvaise manipulation comme écrire votre propre pilote par dessus le pilote PHP.

Liste de paramètres

anything

La variable à linéariser.

Valeurs de retour

Retourne la chaîne linéarisée.


Exceptions

Sommaire

  • MongoException
  • MongoResultException
  • MongoCursorException
  • MongoCursorTimeoutException
  • MongoConnectionException
  • MongoGridFSException
  • MongoDuplicateKeyException
  • MongoProtocolException
  • MongoExecutionTimeoutException
  • MongoWriteConcernException

Spécificités VMWare

Si vous utilisez VMWare sous Windows et que vous utilisez CIFS, mettre en pause la VM désynchronisera CIFS et conduira à des erreurs sournoises à la reprise ("The Mongo object has not been correctly initialized by its constructor"). Monter les partages Windows de manière permanente corrigera ce comportement et vous pourrez alors mettre en pause et restaurer sans problème.

Pour monter les partages Windows de manière permanente, lancez:

$ sudo update-rc.d -f umountnfs.sh remove
$ sudo update-rc.d umountnfs.sh stop 15 0 6 .

Voyez » les documents Ubuntu pour des instructions plus à jour.


La classe MongoException

(PECL mongo >= 1.0.0)

Introduction

Exception Mongo par défaut.

Cette exception couvre un grand nombre de conditions d'erreurs pouvant être déplacées vers une exception plus spécifique, mais étendant toujours la classe MongoException.

  • L'objet MongoSomething n'a pas été correctement initialisé par son constructeur

    Code: 0

    Votre objet Mongo semble déconnecté du serveur de base de données.

  • Des clés de taille zéro ne sont pas autorisées, avez-vous utiliser le $ avec des double quotes?

    Code: 1

    Vous avez tenté de sauvegardé une clé "". Vous ne devriez pas agir comme cela. "" peut servir pour des sous-objets et est utilisé en interne par MongoDB. Cependant, si vous le voulez vraiment, vous pouvez placer mongo.allow_empty_keys à true dans php.ini pour surcharger cette vérification. Si tel est le cas, il est recommandé d'utiliser la vérification stricte des erreurs.

  • '.' non autorisé dans la clé: <key>

    Code: 2

    Vous tentez d'écrire une clé avec un '.' dedans, ce qui est interdit.

  • insertion trop grande: <size>, max: <max>

    Code: 3

    Vous tentez d'envoyer trop de données à la base en une fois: la base n'accepte des insertions que jusqu'à une certaine taille (actuellement 16 MB).

  • Pas d'éléments dans le doc

    Code: 4

    Vous tentez de sauver un document sans champ.

  • La taille du document BSON est de <size> octets, max <max>MB

    Code: 5

    Vous tentez de sauver un document plus gros que la taille autorisée par MongoDB.

  • Pas de documents fournis

    Code: 6

    Vous tentez d'insérer par lots un tableau vide de documents.

  • MongoCollection::group prend un tableau, objet ou une clé MongoCode

    Code: 7

    Mauvais type envoyé à MongoCollection::group().

  • les noms de champs doivent être des chaines

    Code: 8

    Vous devriez formatter les sélecteurs de champs comme array("field1" => 1, "field2" => 1, ..., "fieldN" => 1).

  • invalid regex

    Code: 9

    L'expression régulière passée à MongoRegex n'a pas la forme attendue.

  • MongoDBRef::get: le champ $ref doit être une chaine

    Code: 10

  • MongoDBRef::get: le champ $db doit être une chaine

    Code: 11

  • chaines non-utf8: <str>

    Code: 12

    Cette erreur survient si vous tentez d'envoyer une chaîne de caractères non UTF-8 dans la base de données. Toutes les chaînes envoyées à la base de données doivent être encodées UTF-8. Reportez-vous aux options de votre php.ini pour l'option de transition permettant de rendre silencieuse cette exception.

  • mutex error: <err>

    Code: 13

    Le pilote utilise des mutexes pour synchroniser les requêtes et les réponses dans des environnements multithreadés. Ceci est une erreur sérieuse et peut ne pas avoir de trace de pile. C'est peu commun et devrait être rapporté aux mainteneurs avec toute information sur le système pour assurer le déboguage.

  • nom d'index trop long: <len>, max <max> caractères

    Code: 14

    Les index dont les noms dépassent 128 caractères ne peuvent être créés. Si vous avez cette erreur, vous devriez utiliser l'option "name" de MongoCollection::ensureIndex() pour créer un nom d'index plus court.

Synopsis de la classe

MongoException extends Exception {
}


La classe MongoResultException

(PECL mongo >=1.3.0)

Introduction

Une exception MongoResultException peut être émise par plusieurs méthodes (comme MongoCollection::findAndModify()) lorsqu'une erreur survient. Le document original résultant est disponible via la méthode MongoResultException::getDocument().

Synopsis de la classe

MongoResultException extends MongoException {
/* Propriétés */
public $document ;
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes */
public array getDocument ( void )
}

Propriétés

document

Le document résultant brute, sous la forme d'un tableau.

Sommaire

  • MongoResultException::getDocument — Récupère le document résultant complet


Récupère le document résultant complet

  • « MongoResultException
  • MongoCursorException »
  • PHP Manual
  • MongoResultException
  • Récupère le document résultant complet

MongoResultException::getDocument

(PECL mongo >=1.3.0)

MongoResultException::getDocument — Récupère le document résultant complet

Description

public array MongoResultException::getDocument ( void )

Récupère le document résultant complet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le document résultant complet sous la forme d'un tableau, incluant des données partielles si possible, ainsi que des clés additionnelles.

Exemples

Exemple #1 Exemple avec MongoResultException::getDocument()

<?php
$mc = new MongoClient("localhost");
$c = $mc->selectCollection("test", "test");

$c->insert(array(
     "name" => "Next promo",
     "inprogress" => false,
     "priority" => 0,
     "tasks" => array( "select product", "add inventory", "do placement"),
) );

$c->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 1,
     "tasks" => array( "run sales report", "email report" )
) );

$c->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 2,
     "tasks" => array( "run marketing report", "email report" )
    ),
    array("w" => true)
);

try {
    $retval = $c->findAndModify(
         array("inprogress" => false, "name" => "Biz report"),
         array('$set' => array('$set' => array('inprogress' => true, "started" => new MongoDate()))),
         null,
         array(
            "sort" => array("priority" => -1),
            "new" => true,
        )
    );
} catch(MongoResultException $e) {
    echo $e->getMessage(), "\n";
    $res = $e->getDocument();
    var_dump($res);
}
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

$set is not valid for storage.
array(3) {
  ["lastErrorObject"]=>
  array(5) {
    ["connectionId"]=>
    int(6)
    ["err"]=>
    string(30) "$set is not valid for storage."
    ["code"]=>
    int(52)
    ["n"]=>
    int(0)
    ["ok"]=>
    float(1)
  }
  ["ok"]=>
  float(0)
  ["errmsg"]=>
  string(30) "$set is not valid for storage."
}


La classe MongoCursorException

(PECL mongo >= 1.0.0)

Introduction

Émise lors d'un accès incorrect à un curseur ou lors de la réception d'une erreur au moment de la réponse. Notez que cette exception peut être émise par n'importe quelle requête de base de données qui reçoit une réponse, et pas uniquement les requêtes. Les commandes d'écriture, et toutes les autres opérations qui envoient des informations à la base de données et attendent une réponse peuvent émettre une exception de type MongoCursorException. La seule exception à ce principe est new MongoClient() (création d'une nouvelle connexion), qui n'émet que des exceptions de type MongoConnectionException.

Cette exception retourne un message d'erreur spécifique pour aider dans le diagnostique du problème ainsi qu'un code erreur numérique associé avec la cause de l'exception.

Par exemple, supposez que vous tentiez d'insérer 2 documents avec le même _id :

<?php

try {
    $collection->insert(array("_id" => 1), array("w" => 1));
    $collection->insert(array("_id" => 1), array("w" => 1));
}
catch (MongoCursorException $e) {
    echo "message d'erreur : ".$e->getMessage()."\n";
    echo "code de l'erreur : ".$e->getCode()."\n";
}

?>
Ceci affichera quelque chose comme :
message d'erreur : E11000 duplicate key error index: foo.bar.$_id_  dup key: { : 1 }
code de l'erreur : 11000
Notez que le code erreur MongoDB (11000) est utilisé pour le code erreur PHP. Le driver PHP utilise le code erreur natif lorsque c'est possible.

Voici une liste des erreurs, codes et causes survenant le plus fréquemment. Les erreurs exactes sont en italiquue, les erreurs dont le message varie sont décrites en oblique.

  • cannot modify cursor after beginning iteration

    Code : 0

    Vous appelez une méthode qui affecte la requête après l'exécuter. Remettez à zéro le curseur et rééssayez.

    Un exemple :

    <?php

    try {
            $cursor = $collection->find();
            var_dump($cursor->getNext());

            // getNext() requête la base de données, il est trop tard pour définir une limite
            $cursor->limit(1);
    }
    catch (    MongoCursorException $e) {
        echo     "message d'erreur : ".$e->getMessage()."\n";
        echo     "code de l'erreur : ".$e->getCode()."\n";
    }

    // Ceci fonctionnera :
    $cursor->getNext();
    $cursor->reset();
    $cursor->limit(1);

    ?>

  • Get next batch send errors

    Code : 1

    Ne peut envoyer la requête à la base. Vérifiez l'état su serveur et du réseau.

  • cursor not found

    Code : 2

    Le pilote a tenté de récupérer plus de données depuis la base, mais celle-ci n'avait pas assez d'enregistrements. Ceci signifie en général que le curseur a expiré coté serveur après quelques minutes d'inactivité, la base va détruire un curseur. (Voyez MongoCursor::immortal() pour plus d'informations).

    Un exemple :

    <?php

    try {
            $cursor = $collection->find();
            $cursor->getNext();

            // attendre pendant 15 minutes
            sleep(60*15);

        while (    $cursor->hasNext()) {
                $cursor->getNext();
        }
    }
    catch (    MongoCursorException $e) {
        echo     "message d'erreur : ".$e->getMessage()."\n";
        echo     "code de l'erreur : ".$e->getCode()."\n";
    }

    ?>

  • cursor->buf.pos is null

    Code : 3

    Ceci peut indiquer que vous n'avez plus de RAM de disponible ou bien d'autres circonstances extraordinaires.

  • couldn't get response header

    Code : 4

    Une erreur commune si la base de données ou le réseau n'est plus disponible. Cela signifie que le driver ne peut récupérer une réponse depuis la connexion.

  • no db response

    Code : 5

    Ceci n'est pas toujours une erreur, par exemple, la commande "shutdown" émise à la base de données ne retourne aucune réponse. Cependant, si vous attendez une réponse, cela signifie que la base de données n'a pas réussi à la fournir.

  • bad response length: %d, did the db assert?

    Code : 6

    Ceci signifie que la base de données dit que sa réponse est inférieure à 0. Cela signifie généralement qu'une erreur réseau ou une corruption de la base de données est survenue.

  • incomplete header

    Code : 7

    Très peu commun. Apparait si la réponse de la base commence de manière correcte, mais échoue en plein milieu. Probablement un problème réseau.

  • incomplete response

    Code : 8

    Très rare. Survient si la réponse de la base de données a commencé avec succès, mais s'est interrompue avant la fin. Probablement un problème réseau.

  • couldn't find a response

    Code : 9

    Si la réponse est en cache mais ne peut être trouvée.

  • error getting socket

    Code : 10

    Le socket a été fermé ou a rencontré un problème. Le pilote devrait se reconnecter automatiquement (si possible) lors de l'opération suivante.

  • couldn't find reply, please try again

    Code : 11

    Le pilote sauvegarde toutes les réponses de la base qu'il ne peut associer immédiatement à une requête. Cette exception arrive lorsque le pilote a déja passé la réponse à votre requête mais ne peut la trouver dans son cache.

  • error getting database response: errstr

    WSA error getting database response: errstr

    "errstr" est une erreur IO, repporté directement depuis le socket C du sous-système. Sous Windows, le message d'erreur est préfixé par "WSA".

  • Timeout error

    Code : 13

    Erreur lors de l'attente qu'une requête s'exécute.

  • couldn't send query: <various>

    Code : 14

    Erreur de socket C à l'envoi.

  • max number of retries exhausted, couldn't send query

    Code : 19

    Le driver retentera automatiquement les requêtes (et non les commandes) un nombre de fois défini si la première tentative échoue pour certaines raisons. Ceci peut produire quelques exceptions lors du jeu de réplication (alors que d'autres passeront normalement), ainsi que quelques erreurs réseaux.

    Ceci peut aussi survenir en raison du driver qui n'arrive pas à se reconnecter à la base de données (si, par exemple, la base de données n'est plus joignable).

    Version 1.2.2+.

Erreur de la base de données

Les erreurs de la base devraient toujours déclencher une MongoCursorExceptions. Les messages d'erreur et les codes sont envoyés directement depuis la base et devraient se retrouver dans le journal de la base de données.

Voici quelques erreurs classiques de base de données:

  • E11000 duplicate key error index: foo.bar.$X dup key: { /* ... */ }

    Code: 11000

    Erreur de clé dupliquée.

  • not master

    Codes: 10107, 13435, and 10058

    Erreurs not master, pipée vers la base. Chacune causera une déconnection du pilote et sa recherche d'un nouveau primaire. L'erreur en failover peut ne pas être de type "not master", en fonction du déclenchement du changement de primaire.

Synopsis de la classe

MongoCursorException extends MongoException {
}

Sommaire

  • MongoCursorException::getHost — Récupère le nom de l'hôte sur lequel une erreur est survenue


Récupère le nom de l'hôte sur lequel une erreur est survenue

  • « MongoCursorException
  • MongoCursorTimeoutException »
  • PHP Manual
  • MongoCursorException
  • Récupère le nom de l'hôte sur lequel une erreur est survenue

MongoCursorException::getHost

(PECL mongo >= 1.0.0)

MongoCursorException::getHost — Récupère le nom de l'hôte sur lequel une erreur est survenue

Description

public string MongoCursorException::getHost ( void )

Retourne le nom de l'hôte du serveur où la requête a été envoyée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de l'hôte ou NULL si le nom de l'hôte est inconnu.


La classe MongoCursorTimeoutException

(PECL mongo >= 1.0.0)

Introduction

Lancée lorsqu'une requête atteint de délai maximal d'exécution. Vous pouvez passer le temps à attendre avant de lancer cette exception en appelant MongoCursor::timeout() sur le curseur ou en changeant la valeur de MongoCursor::$timeout. L'attribut static est pratique pour les requêtes comme les commandes de base et MongoCollection::findOne(), toutes deux utilisant implicitement des curseurs.

Synopsis de la classe

MongoCursorTimeoutException extends MongoCursorException {
}


La classe MongoConnectionException

(PECL mongo >= 1.0.0)

Introduction

Émise lorsque le pilote échoue à se connecter à la base de données.

Il y a plusieurs messages d'erreur possibles afin de vous aider à analyser un problème de connexion. Les voici :

  • No candidate servers found

    Lancé lorsque le driver ne peut établir une connexion à MongoDB (rempli les ReadPreferences, si spécifié).

  • No server name given.

    Cette erreur survient si vous passez une chaine vide comme nom de serveur, peut à cause d'une faute dans la variable de connexion, i.e. "$servr" au lieu de "$server".

  • failed to get left host [hostname] or port [portnum] from [server].

    Ceci indique que le premier ou le second serveur, respectivement "server1,server2" dans la chaîne de connexion, est mal formé. "[hostname]" et "[portnum]" doivent correspondre aux éxigences du driver.

  • Operation in progress

    Délai d'attente expiré lors de la connexion à la base de données.

  • Transport endpoint is not connected

    En général cela signifie que la chaine de connexion est incorrecte, le pilote ne trouve pas le serveur de base de données.

  • couldn't determine master

    Aucun serveur du jeu de réplication n'a été identifié comme primaire.

  • couldn't get host info for [server]

    Ceci indique que les DNS n'ont pas réussis à résoudre l'adresse du serveur que vous avez fourni. Vérifier la chaîne fournie.

  • Invalid Argument

    Ceci peut être dû lorsque vous tentez d'accéder à une machine qui fonctionne mais dont la base de données n'est pas en marche. Assurez-vous que la base de données est en fonctionnement avant de tenter de vous y connecter.

  • Permission denied

    Ceci signifie que le socket ne peut être ouvert en raison d'un problème sur les permissions. Sur les systèmes à base de Red Hat, ceci peut être dû à une configuration par défaut qui n'autorise pas Apache à créer des connexions réseaux. Vous pouvez résoudre ce problème en exécutant la commande suivante :

    $ /usr/sbin/setsebool -P httpd_can_network_connect 1
    puis, relancez Apache.

Si le message d'erreur que vous recevez n'est pas listé ci-dessus, c'est probablement une erreur qui provient du socket C, et vous pouvez chercher sur le web pour trouver les causes du problème.

Synopsis de la classe

MongoConnectionException extends MongoException {
}


La classe MongoGridFSException

(PECL mongo >= 1.0.0)

Introduction

Émise lors d'erreur de lecture ou d'écriture de fichiers dans la base.

Synopsis de la classe

MongoGridFSException extends MongoException {
}

Codes d'erreur

Codes d'erreur de MongoGridFSException
Code | Message | Raison
3 | Could not open file $filename | Tentative de stocker un fichier invalide, comme un dossier
4 | File $filename is too large: $filesize bytes | La taille maximale d'un fichier en GridFS est 4GB
5 | could not find filehandle | La ressource n'est pas de gestionnaire de fichier
6 | no file is associate with this filehandle | La ressource n'est pas une ressource de fichier
7 | error setting up file: $filenames | Impossible d'ouvrir le fichier en lecture
9 | error reading file $filenames | Échec dans la lecture du fichier
10 | error reading filehandle | Échec de la lecture depuis une ressource
11 | could not find uploaded file %s | Le nom de fichier ne semble pas être un fichier téléchargé
12 | Couldn't find tmp_name in the $_FILES array. Are you sure the upload worked? | Le téléchargement du fichier a probablement échoué
13 | tmp_name was not a string or an array | Nom de fichier fourni invalide
14 | couldn't find file size | La propriété length est manquante
15 | Cannot find filename | Aucun fichier fourni, et aucun jeu de propriété pour filename
16 | could not open destination file %s | La destination du fichier n'est pas accessible en écriture
17 | error reading chunk of file | Corruption de type Chunk
18 | couldn't create a php_stream | Impossible de créer une ressource de flux
19 | couldn't find property | Corruption de type Chunk
20 | chunk number has wrong size (size) when the max is maxchunksize | Le Chunk est plus grand qu'attendu
21 | chunk has wrong format | Corruption de type Chunk


La Class MongoDuplicateKeyException

(PECL mongo >= 1.5.0)

Introduction

Levée lors d'une tentative d'insertion de document dans une collection qui contient cette même valeur et qui possède une contrainte de clé unique.

Synopsis de la classe

MongoDuplicateKeyException extends MongoWriteConcernException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
public array MongoWriteConcernException::getDocument ( void )
}

Exemples

Exemple #1 Catching MongoDuplicateKeyException

<?php
$mc = new MongoClient("localhost");

$c = $mc->selectCollection("test", "test");

$c->insert(array('_id' => 1));
try {
    $c->insert(array('_id' => 1));
} catch (MongoWriteConcernException $e) {
    echo $e->getMessage(), "\n";
}
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

localhost:27017: insertDocument :: caused by :: 11000 E11000 duplicate key error index: test.test.$_id_  dup key: { : 1 }


La classe MongoProtocolException

(PECL mongo >= 1.5.0)

Introduction

Lors d'une communication avec MongoDB 2.6.0 et suivants, certaines opérations (comme les écritures) peuvent lancer une exception MongoProtocolException lorsque la réponse du serveur n'a pas de sens - par exemple, lors d'une erreur de réseau (impossible de lire la totalité de la réponse), ou lors d'une corruption de données.

Cette exception est également lancée lors d'une tentative de communication avec des protocoles nouveaux sur des serveurs plus anciens, par exemple, en utilisant MongoWriteBatch avec des serveurs MongoDB dont la version est inférieure à 2.6.0.

Synopsis de la classe

MongoProtocolException extends MongoException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}

Exemples

Exemple #1 Catching MongoProtocolException

Exécution de l'exemple suivant sur un serveur MongoDB dont la version est antérieure à 2.6.0 va lancer une exception MongoProtocolException

<?php
$mc = new MongoClient("localhost");
$c = $mc->selectCollection("test", "test");

try {
    $batch = new MongoInsertBatch($c);
} catch(MongoProtocolException $e) {
    echo $e->getMessage();
}
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Current primary does not have a Write API


La classe MongoExecutionTimeoutException

(PECL mongo >= 1.5.0)

Introduction

Emise lorsqu'une opération atteint le délai d'attente maximale côté serveur (i.e. dans MongoDB).

Pour configurer le seuil du délai d'attente maximale de l'opération, utilisez la méthode MongoCursor::maxTimeMS() ou l'option de commande "maxTimeMS".

Synopsis de la classe

MongoExecutionTimeoutException extends MongoException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}


La classe MongoWriteConcernException

(PECL mongo >= 1.5.0)

Introduction

MongoWriteConcernException est émise lorsqu'une écriture échoue. Voir Write Concerns pour savoir comment configurer le seuil de l'échec.

Avant MongoDB 2.6.0 » GLE déterminait si un échec d'écriture avait lieu.

Synopsis de la classe

MongoWriteConcernException extends MongoCursorException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes */
public array getDocument ( void )
/* Méthodes héritées */
public string MongoCursorException::getHost ( void )
}

Sommaire

  • MongoWriteConcernException::getDocument — Récupère le document d'erreur


Récupère le document d'erreur

  • « MongoWriteConcernException
  • Historique des modifications »
  • PHP Manual
  • MongoWriteConcernException
  • Récupère le document d'erreur

MongoWriteConcernException::getDocument

(PECL mongo >= 1.5.0)

MongoWriteConcernException::getDocument — Récupère le document d'erreur

Description

public array MongoWriteConcernException::getDocument ( void )

Retourne la réponse actuelle depuis le serveur qui est interprétée comme une erreur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un document MongoDB, si disponible, sous la forme d'un tableau.


Historique des modifications

Les modifications suivantes ont été apportées aux classes/fonctions/méthodes de cette extension.

Driver PHP MongoDB 1.5.0

Il supporte toutes les nouvelles fonctionnalités de MongoDB 2.6, y compris :

  • L'aggrégation peut maintenant retourner un curseur
  • Les pipelines d'aggrégation peuvent maintenant être expliquées
  • Possibilité de définir maxTimeMS pour les commandes et les requêtes
  • Support transparant pour les nouvelles commandes basées sur l'API d'écriture MongoDB
  • Nouvelle classe MongoWriteBatch (utilisant la nouvelle API d'écriture MongoDB)
  • Support des fonctionnalités MongoDB Enterprise (i.e. Kerberos, LDAP, X509)
  • Option pour affiner une latence acceptable des serveurs pour les lectures secondaires (secondaryAcceptableLatencyMS)

Dans cette version, quelques fonctionnalités du driver qui étaient documentées sont devenues obsolètes, et émettent désormais des notices quant à leur obsolescence. Ceci est valable pour :

  • L'instanciation de la classe Mongo
  • L'appel à la méthode MongoCursor::slaveOkay()
  • L'utilisation des options "wtimeout" et "safe" pour les opérations en écriture de MongoCollection
  • La manipulation des propriétés publiques des classes du coeur (par exemple, $collection->w)

Note:

Aucune fonctionnalité déclarée comme obsolète précédemment n'a été supprimée.

Modification de comportement :

  • Le fait de définir l'option INI mongo.native_long émet désormais une erreur sur les plateformes 32-bits, et vaut TRUE par défaut pour les plateformes 64-bits.

Driver PHP MongoDB 1.4.0

La série 1.4 a introduit des changements fondamentaux sur la façon dont les connexions sont créées vers les serveurs MongoDB. Le driver utilise désormais les flux PHP natifs, aussi, toutes les options des flux PHP peuvent être utilisées. De plus, le support d'un contexte de flux expérimental a été ajouté.

La série 1.4.x a également ajouté le support de MongoDB 2.4.x.

Cependant, l'amélioration la plus importe reste la gestion des jeux de réplication, et tout spécialement les noeuds dont le délai maximal d'attente est atteint ou ceux qui ne sont pas joignables pour diverses raisons. Cette version aborde également les problèmes avec les préférences de lecture via les noeuds mongo. Elle apporte également le support des connexions SSL, ainsi que des options pour les journaux et les connexions fsync.

Driver PHP MongoDB 1.3.0

La série 1.3 introduit plusieurs modifications majeures à l'extension, comme la complète ré-écriture du gestionnaire de connexion (et la suppression du mécanisme de mise en file d'attente), le support des préférences de lecture et la modification de WriteConcerns devant être reconnu en introduisant une nouvelle classe MongoClient qui agit comme classe de remplacement pour la classe Mongo devenue pour l'occasion obsolète.

Le driver supporte maintenant la connexion à de multiples instances mongos (le routeur Mongo Shard) pour la balance de charge.

Mais aussi d'autres améliorations comme la fourniture de log pour un débogage simplifié du gestionnaire de connexion avec la classe MongoLog ainsi que le support du » Framework d'aggrégation via la méthode MongoCollection::aggregate().

Modifications sur les méthodes existantes

Voici une liste de toutes les améliorations sur les méthodes existantes depuis leur création.

Version | Function | Description
1.7.0 | MongoDB::execute | Cette méthode est devenue obsolète, sachant qu'un résultat d'une commande eval sous-jacente est devenu obsolète en MongoDB 3.0+.
1.6.0 | MongoCollection::count | Le second paramètre est maintenant un tableau d'options. Le fait de passer les paramètres limit et skip comme second et troisième paramètres, respectivement, est maintenant obsolète.
 | MongoDB::getCollectionNames | Modification du premier paramètre pour devenir un tableau d'options. Avant la version 1.6.0, le premier paramètre était un booléen indiquant l'option "includeSystemCollections".
 | MongoDB::listCollections | Modification du premier paramètre pour devenir un tableau d'options. Avant la version 1.6.0, le premier paramètre était un booléen indiquant l'option "includeSystemCollections".
1.5.0 | log_cmd_delete | Uniquement disponible lorsque connecté à MongoDB 2.6.0+
 | log_cmd_insert | Uniquement disponible lorsque connecté à MongoDB 2.6.0+
 | log_cmd_update | Uniquement disponible lorsque connecté à MongoDB 2.6.0+
 | log_write_batch | Uniquement disponible lors d'une connexion à MongoDB 2.6.0+
 | MongoBinData::__construct | La valeur par défaut passe de 2 (MongoBinData::BYTE_ARRAY) à 0 (MongoBinData::GENERIC).
 | MongoClient::__construct | Ajout de "authSource".
 | MongoClient::__construct | Ajout de "authMechanism", "gssapiServiceName" et "secondaryAcceptableLatencyMS".
 | MongoCollection::aggregate | Ajout de l'argument optionnel options
 | MongoCollection::batchInsert | Ajout de l'option "wTimeoutMS", qui remplace "wtimeout". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée. Ajout de l'option "socketTimeoutMS", qui remplace "timeout". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée. Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.
 | MongoCollection::ensureIndex | Renommage de l'option "wtimeout" en "wTimeoutMS". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée. Renommage de l'option "timeout" en "socketTimeoutMS". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée. Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.
 | MongoCollection::findOne | Ajout de l'argument optionnel options.
 | MongoCollection::group | Ajout de l'option "maxTimeMS".
 | MongoCollection::insert | Ajout de l'option "wTimeoutMS", qui remplace "wtimeout". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée. Ajout de l'option "socketTimeoutMS", qui remplace "timeout". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée. Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.
 | MongoCollection::remove | Ajout de l'option "wTimeoutMS", qui remplace l'option "wtimeout". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée. Ajout de l'option "socketTimeoutMS", qui remplace l'option "timeout". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée. Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.
 | MongoCollection::save | Ajout de l'option "wTimeoutMS", qui remplace l'option "wtimeout". Emets une alerte de type E_DEPRECATED lorsque "wtimeout" est utilisée. Ajout de l'option "socketTimeoutMS", qui remplace l'option "timeout". Emets une alerte de type E_DEPRECATED lorsque "timeout" est utilisée. Emets une alerte de type E_DEPRECATED lorsque "safe" est utilisée.
 | MongoCollection::toIndexString | Cette méthode est devenue obsolète.
 | MongoCollection::update | Ajout de l'option "wTimeoutMS", qui remplace l'option "wtimeout". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée. Ajout de l'option "socketTimeoutMS", qui remplace l'option "timeout". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée. Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.
 | MongoCursor::slaveOkay | Cette méthode est devenue obsolète, en faveur de la méthode MongoCursor::setReadPreference et .
 | MongoDB::command | Renommage de l'option "timeout" en "socketTimeoutMS". Emets une alerte de type E_DEPRECATED lorsque "timeout" est utilisée. Ajout du paramètre hash par référence.
1.4.5 | MongoCursor::batchSize | Avant la version 1.4.5, cette méthode lançait une exception de type MongoCursorException si le curseur avait déjà commencé son itération.
1.4.0 | MongoClient::__construct | Ajout de l'option "ssl" et du support de la connexion via SSL. Ajout de l'option "wTimeoutMS", qui remplace l'option "wTimeout". Emets une alerte de niveau E_DEPRECATED lorsque "slaveOkay" ou "timeout" est utilisé.
 | MongoCursor::hint | L'argument index supporte maintenant les noms d'index comme valeur. Pour les versions antérieures à 1.4.0, sur les valeurs sous forme de tableau ou d'objet étaient acceptées.
 | MongoCursor::setFlag | Ajout du support du drapeau n°3 (OPLOG_REPLAY). Les versions antérieures à 1.4.0 émettront une alerte indiquant que le drapeau n'est pas supporté..
 | MongoDB::createCollection | Dans les versions antérieures à 1.4.0, les options étaient toutes des arguments de la méthode. La signature de la fonction dans ces anciennes versions était : public MongoCollectionMongoDB::createCollection stringname boolcappedFALSE intsize0 intmax0 La signification de ces options est la même que celle décrite ci-dessus, dans l'argument options.
 | MongoId::__construct | Une exception est lancée lorsqu'une chaîne de caractères invalide est passée.
1.3.4 | MongoClient::__construct | Ajout des options "connectTimeoutMS" et "socketTimeoutMS".
 | MongoCollection::batchInsert | Ajout de l'option "wtimeout".
 | MongoCollection::ensureIndex | Ajout de l'option "wtimeout".
 | MongoCollection::insert | Ajout de l'option "wtimeout".
 | MongoCollection::remove | Ajout de l'option "wtimeout".
 | MongoCollection::update | Ajout de l'option "wtimeout".
1.3.3 | MongoClient::getReadPreference | La valeur retournée a changé pour être consistante avec la méthode MongoClient::setReadPreference. La valeur type a été modifiée, passant d'un nombre à une chaîne de caractères, la valeur type_string a été supprimée, et la valeur tagsets exprime désormais les tags sous la forme d'une paire clé/valeur, au lieu d'une chaîne dont les valeurs étaient séparées par une virgule.
 | MongoCollection::getReadPreference | La valeur retournée a changé pour être consistante avec la méthode MongoCollection::setReadPreference. La valeur type a été modifiée, passant d'un nombre à une chaîne de caractères, la valeur type_string a été supprimée, et la valeur tagsets exprime maintenant les tags sous la forme d'une paire clé/valeur, au lieu d'une chaîne dont les valeurs sont délimitées par une virgule.
 | MongoDB::getReadPreference | La valeur retournée a changée pour être consistante avec la méthode MongoDB::setReadPreference. La valeur type a été changée, passant d'un nombre à une chaîne de caractères, la valeur type_string a été supprimée, et la valeur tagsets exprime maintenant les tags sous la forme d'une paire clé/valeur, au lieu d'une chaîne dont les valeurs étaient séparées par une virgule.
1.3.0 | MongoClient::close | Le paramètre connection a été ajouté. Avant cette version, seule la connexion en écriture était fermée par cette méthode.
 | MongoClient::__construct | Ajout des options "readPreference", "readPreferenceTags", "w" et "wTimeout".
 | MongoCollection::batchInsert | Ajout de l'option "w".
 | MongoCollection::ensureIndex | Ajout de l'option "w". Le paramètre options n'accepte plus de booléen pour signifier un index unique. A la place, vous devez utiliser la syntaxe array('unique' => true).
 | MongoCollection::insert | Ajout de l'option "w". Le paramètre options n'accepte plus de booléen pour indiquer une écriture reconnue. A la place, utilisez la syntaxe array('w' => 1) (comportement par défaut de MongoClient).
 | MongoCollection::remove | Ajout de l'option "w". Le paramètre options n'accepte plus de booléen pour indiquer "justOne". A la place, utilisez la syntaxe array('justOne' => true).
 | MongoCollection::update | Ajout de l'option "w". Le paramètre options n'accepte plus de booléen pour indiquer un upsert. A la place, vous devez utiliser la syntaxe array('upsert' => true).
 | MongoDB::listCollections | Ajout du paramètre includeSystemCollections.
 | MongoGridFSCursor::key | L'_id du document est retourné sous forme de chaîne de caractères, sachant que la clé doit être unique. Avant la version 1.3.0, filename était retourné.
1.2.11 | Mongo::getPoolSize | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | Mongo::getSlave | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | Mongo::getSlaveOkay | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | Mongo::poolDebug | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | Mongo::setSlaveOkay | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | Mongo::switchSlave | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | MongoBinData::__construct | Lance une alerte de niveau E_DEPRECATED lorsque le second argument n'est pas utilisé. La valeur par défaut du paramètre type peut changer dans de futures versions.
 | MongoCollection::ensureIndex | Lance une alerte de niveau E_DEPRECATED lorsque le paramètre options est de type scalar.
 | MongoCollection::getSlaveOkay | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | MongoCollection::group | Lance une alerte de niveau E_DEPRECATED lorsque le paramètre options est de type scalar.
 | MongoCollection::remove | Lance une alerte de niveau E_DEPRECATED lorsque le paramètre options est de type scalar.
 | MongoCollection::setSlaveOkay | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | MongoCollection::update | Lance une alerte de niveau E_DEPRECATED lorsque le paramètre options est de type scalar.
 | MongoCursor::doQuery | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | MongoDB::authenticate | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé. Veuillez passer les détails d'authentification au constructeur.
 | MongoDB::forceError | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | MongoDB::getSlaveOkay | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | MongoDB::prevError | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | MongoDB::resetError | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | MongoDB::setSlaveOkay | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | MongoPool::getSize | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | MongoPool::info | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 | MongoPool::setSize | Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
1.2.10 | MongoClient::getHosts | Le support de l'absence de jeu de réplication a été ajouté. Les éléments de tableau retournés incluent à présent également le hostname et le port.
1.2.7 | MongoCollection::batchInsert | Le drapeau "continueOnError" a été ajouté.
1.2.5 | MongoGridFS::storeUpload | Modification du second paramètre en un tableau de méta-données. Avant la version 1.2.5, le second paramètre étaient une chaîne optionnelle permettant d'écraser le nom du fichier.
1.2.0 | MongoClient::close | Avant la version 1.2.0, le driver n'utilisait pas les connexions persistentes par défaut, et toutes les connexions étaient fermées dès que une connexion MongoDB sortait du scope. Depuis la version 1.2.0, ce n'est plus le cas et c'est une mauvaise idée d'appeler la méthode close car vous pourriez finir par surcharger le serveur avec des connexions à haute charge.
 | MongoClient::__construct | Ajout des options "username" et "password". Suppression de l'option "persist", toutes les connexions sont désormais persistantes. Le paramètre peut tout de même être utilisé, il sera simplement ignoré. "persist" Si la connexion doit être persistante. La chaine représentant la valeur est utilisée comme identifiant de connexion, ainsi deux instances de MongoClient qui sont initialisées avec array("persist" => "foobar") vont partager la même connexion à la base, alors que une instance initialisée avec array("persist" => "barbaz") utilisera une connexion différente. Le paramètre "replicaSet" accepte maintenant une chaine, pas un booléen.
 | MongoCollection::ensureIndex | Ajout de l'option "timeout".
 | MongoCollection::insert | Ajout de l'option "timeout".
 | MongoCollection::remove | Ajout de l'option "timeout".
 | MongoCollection::save | Ajout de l'option "timeout".
 | MongoCollection::update | Ajout de l'option "timeout".
 | MongoDB::command | Ajout du paramètre options avec une seule option : "timeout".
1.1.0 | MongoCursor::info | Ajout de quelques champs, incluant id (l'identifiant de curseur), at (le compteur du driver du document courant), numReturned (le nombre retourné par le serveur dans le batch courant), et server (le serveur sur lequel la requête a été émise ; utile en plus de ).
1.0.11 | MongoCollection::ensureIndex | L'option "safe" déclenchera le failover du primaire, si nécessaire. MongoException sera envoyée si le nom de l'index (généré ou défini) est plus long que 128 octets.
 | MongoCollection::insert | Se déconnecte lors d'erreurs "not master" si "safe" est utilisé.
 | MongoCollection::remove | Se déconnecte lors d'erreurs "not master" si "safe" est utilisé.
 | MongoCollection::save | Se déconnecte lors d'erreurs "not master" si "safe" est utilisé.
 | MongoCollection::update | Se déconnecte lors d'erreurs "not master" si "safe" est utilisé.
1.0.10 | MongoCursor::info | Ajout du champ started_iterating, un booléen indiquant si le curseur est antérieur ou postérieur à la requête.
1.0.9 | MongoClient::__construct | Ajout de l'option "replicaSet".
 | MongoCollection::batchInsert | Ajout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés). Ajout de l'option "fsync".
 | MongoCollection::insert | Ajout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés). Ajotu de l'option "fsync". Le type retourné a changé. C'est maintenant un tableau contenant les informations d'erreur si l'option "safe" est utilisée, sinon, c'est un booléen, comme auparavant.
 | MongoCollection::remove | Ajout de la capacité de passer des entiers à l'option "safe" (n'acceptaient que des booléens avant). Ajout de l'option "fsync". Le type retourné a été modifié en un tableau contenant les informations de l'erreur si l'option "safe" est utilisée, sinon, ce sera un booléen comme auparavant.
 | MongoCollection::save | Ajout de l'option "fsync".
 | MongoCollection::update | Ajout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés). Ajout de l'option "fsync". Le type retourné a été modifié en un tableau contenant les informations de l'erreur si l'option "safe" est utilisé, sinon, ce sera un booléen comme auparavant.
1.0.7 | MongoCollection::count | Ajout des paramètres limit et skip comme second et troisième paramètres, respectivement.
1.0.5 | MongoCollection::batchInsert | Ajout du paramètre options.
 | MongoCollection::ensureIndex | Ajout de l'option "name" pour écraser la création du nom de l'index.
 | MongoCollection::remove | Modification du second paramètre en un tableau d'options. Pre-1.0.5, le second paramètre était un booléen indiquant l'option "safe".
 | MongoCollection::save | Ajout du paramètre options.
 | MongoCollection::update | Ajout de l'option "safe".
1.0.2 | MongoClient::__construct | Le constructeur a changé pour accepter une tableau. Avant 1.0.2, le constructeur acceptait les paramètres suivants : server Nom du serveur. connect Paramètre optionnel indiquant si le constructeur doit se connecter à la base avant de retourner l'objet. Par défaut TRUE. persistent Si la connexion doit être persistante. paired Si la connexion doit être pairée.
 | MongoCollection::ensureIndex | Le paramètre options passe de booléen à un tableau. En version Pre-1.0.2, le second paramètre était une valeur booléenne optionnelle spécifiant un index unique.
 | MongoCollection::insert | Modification du second paramètre en un tableau d'options. Avant la version 1.0.2, le second paramètre était un booléen indiquant l'option "safe".
1.0.1 | MongoCollection::insert | Lance une exception MongoCursorException si l'option "safe" est définie et que l'insertion échoue.
 | MongoCollection::update | Le paramètre options passe de booléen à un tableau. En version Pre-1.0.1, le second paramètre était une valeur booléenne optionnelle, spécifiant un upsert.


MongoDB driver

Unlike the mongo extension, this extension supports both PHP and HHVM and is developed atop the » libmongoc and » libbson libraries. It provides a minimal API for core driver functionality: commands, queries, writes, connection management, and BSON serialization.

Userland PHP libraries that depend on this extension may provide higher level APIs, such as query builders, individual command helper methods, and GridFS. Application developers should consider using this extension in conjunction with the » MongoDB PHP library, which implements the same higher level APIs found in MongoDB drivers for other languages. This separation of concerns allows the driver to focus on essential features for which an extension implementation is paramount for performance.

  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Constantes pré-définies
  • Tutorials
    • Getting Started with HHVM
    • Using the PHP Library for MongoDB (PHPLIB)
  • Driver Architecture and Internals — Explains the driver architecure, and special features
    • Architecture — Architecture Overview
    • Connections — Connection handling and persistence
    • Persisting Data — Serialization and deserialization of PHP variables into MongoDB
  • Security
    • Request Injection Attacks
    • Script Injection Attacks
  • MongoDB\Driver — MongoDB driver classes
    • MongoDB\Driver\Manager — The MongoDB\Driver\Manager class
    • MongoDB\Driver\Command — The MongoDB\Driver\Command class
    • MongoDB\Driver\Query — La classe MongoDB\Driver\Query
    • MongoDB\Driver\BulkWrite — The MongoDB\Driver\BulkWrite class
    • MongoDB\Driver\WriteConcern — La classe MongoDB\Driver\WriteConcern
    • MongoDB\Driver\ReadPreference — La classe MongoDB\Driver\ReadPreference
    • MongoDB\Driver\ReadConcern — The MongoDB\Driver\ReadConcern class
    • MongoDB\Driver\Cursor — La classe MongoDB\Driver\Cursor
    • MongoDB\Driver\CursorId — La classe MongoDB\Driver\CursorId
    • MongoDB\Driver\Server — La classe MongoDB\Driver\Server
    • MongoDB\Driver\WriteConcernError — La classe MongoDB\Driver\WriteConcernError
    • MongoDB\Driver\WriteError — La classe MongoDB\Driver\WriteError
    • MongoDB\Driver\WriteResult — La classe MongoDB\Driver\WriteResult
  • MongoDB\BSON — BSON type classes and serialization functions
    • Fonctions
    • MongoDB\BSON\Binary — La classe MongoDB\BSON\Binary
    • MongoDB\BSON\Decimal128 — The MongoDB\BSON\Decimal128 class
    • MongoDB\BSON\Javascript — La classe MongoDB\BSON\Javascript
    • MongoDB\BSON\MaxKey — La classe MongoDB\BSON\MaxKey
    • MongoDB\BSON\MinKey — La classe MongoDB\BSON\MinKey
    • MongoDB\BSON\ObjectID — La classe MongoDB\BSON\ObjectID
    • MongoDB\BSON\Regex — La classe MongoDB\BSON\Regex
    • MongoDB\BSON\Timestamp — La classe MongoDB\BSON\Timestamp
    • MongoDB\BSON\UTCDatetime — La classe MongoDB\BSON\UTCDatetime
    • MongoDB\BSON\Type — L'interface MongoDB\BSON\Type
    • MongoDB\BSON\Persistable — La classe MongoDB\BSON\Persistable
    • MongoDB\BSON\Serializable — La classe MongoDB\BSON\Serializable
    • MongoDB\BSON\Unserializable — L'interface MongoDB\BSON\Unserializable
  • MongoDB\Driver\Exception — Exception classes
    • MongoDB\Driver\Exception\AuthenticationException — The MongoDB\Driver\Exception\AuthenticationException class
    • MongoDB\Driver\Exception\BulkWriteException — The MongoDB\Driver\Exception\BulkWriteException class
    • MongoDB\Driver\Exception\ConnectionException — The MongoDB\Driver\Exception\ConnectionException class
    • MongoDB\Driver\Exception\ConnectionTimeoutException — The MongoDB\Driver\Exception\ConnectionTimeoutException class
    • MongoDB\Driver\Exception\Exception — The MongoDB\Driver\Exception\Exception interface
    • MongoDB\Driver\Exception\ExecutionTimeoutException — The MongoDB\Driver\Exception\ExecutionTimeoutException class
    • MongoDB\Driver\Exception\InvalidArgumentException — The MongoDB\Driver\Exception\InvalidArgumentException class
    • MongoDB\Driver\Exception\LogicException — The MongoDB\Driver\Exception\LogicException class
    • MongoDB\Driver\Exception\RuntimeException — The MongoDB\Driver\Exception\RuntimeException class
    • MongoDB\Driver\Exception\SSLConnectionException — The MongoDB\Driver\Exception\SSLConnectionException class
    • MongoDB\Driver\Exception\UnexpectedValueException — The MongoDB\Driver\Exception\UnexpectedValueException class
    • MongoDB\Driver\Exception\WriteException — The MongoDB\Driver\Exception\WriteException class


Installation/Configuration

  • Pré-requis
  • Installation
    • Installing the MongoDB PHP Driver with PECL
    • Installing the MongoDB PHP Driver on OSX with Homebrew
    • Installing the MongoDB PHP Driver on Windows
    • Manually Installing the MongoDB PHP Driver
    • Manually Installing the MongoDB HHVM Driver
  • Configuration à l'exécution
  • Constantes pré-définies


Pré-requis

The PHP variant of the driver requires PHP 5.4 or higher.

The HHVM variant of the driver requires HHVM 3.9 or higher.

The driver requires » libbson and » libmongoc, and will use bundled versions of both libraries by default.

The driver requires » OpenSSL and will rely on PHP to find its headers (i.e. PHP_SETUP_OPENSSL). If the build process fails to find OpenSSL, check that the OpenSSL development package (e.g. libssl-dev) and » pkg-config are both installed.

» Cyrus SASL is an optional dependency and will be used if available.


Installation

Sommaire

  • Installing the MongoDB PHP Driver with PECL
  • Installing the MongoDB PHP Driver on OSX with Homebrew
  • Installing the MongoDB PHP Driver on Windows
  • Manually Installing the MongoDB PHP Driver
  • Manually Installing the MongoDB HHVM Driver


Installing the MongoDB PHP Driver with PECL

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mongodb

Linux, Unix, and OS X users may run the following command to install the driver:

$ sudo pecl install mongodb

Note: Installing the driver via PECL will use bundled versions of » libbson and » libmongoc and rely on PHP to find OpenSSL (i.e. PHP_SETUP_OPENSSL). If the build process fails to find OpenSSL, check that the OpenSSL development package (e.g. libssl-dev) and » pkg-config are both installed.

Add the following line to your php.ini file:

extension=mongodb.so


Installing the MongoDB PHP Driver on OSX with Homebrew

If you are using » Homebrew, the PHP tap includes formulae for installing the driver on various PHP versions.

  • php54-mongodb
  • php55-mongodb
  • php56-mongodb
  • php70-mongodb

For example, you might install the driver for PHP 7.0 using the following command:

$ brew install php70-mongodb


Installing the MongoDB PHP Driver on Windows

Precompiled binaries for each release are available from » PECL for a variety of combinations of versions, thread safety, and VC libraries. Extract the archive and put php_mongodb.dll in your PHP extension directory ("ext" by default).

Add the following line to your php.ini file:

extension=php_mongodb.dll


Manually Installing the MongoDB PHP Driver

For driver developers and people interested in the latest bugfixes, you can compile the driver from the latest source code on » Github. Run the following commands to clone and build the project:

$ git clone https://github.com/mongodb/mongo-php-driver.git
$ cd mongo-php-driver
$ git submodule sync && git submodule update --init
$ phpize
$ ./configure
$ make all -j 5
$ sudo make install

Note: By default, the driver will use bundled versions of » libbson and » libmongoc and rely on PHP to find OpenSSL (i.e. PHP_SETUP_OPENSSL). If the build process fails to find OpenSSL, check that the OpenSSL development package (e.g. libssl-dev) and » pkg-config are both installed.

The last step will report where mongodb.so has been installed, similar to:

Installing shared extensions:     /usr/lib/php/extensions/debug-non-zts-20151012/

Ensure that the extension_dir option in php.ini points to the directory where mongodb.so was installed. You can query the option by running:

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/debug-non-zts-20151012 =>
                   /usr/lib/php/extensions/debug-non-zts-20151012

If the directories differ, either change extension_dir in php.ini or manually move mongodb.so to the correct directory.

Add the following line to your php.ini file:

extension=mongodb.so


Manually Installing the MongoDB HHVM Driver

At the time of this writing, HHVM does not have a package manager for extensions. Download the latest driver from » GitHub. Alternatively, you may clone the repository to build the latest source code:

$ git clone https://github.com/mongodb/mongo-hhvm-driver.git
$ cd mongo-hhvm-driver
$ git submodule sync && git submodule update --init --recursive

Set up the make files by running:

$ hphpize
$ cmake .

Generate the configure files for the bundled libraries. For this this to work, you need to have the automake, autoconf, and libtool packages installed (e.g. through apt-get).

$ make configlib

Build and install the driver by running:

$ make -j 5
$ sudo make install

Note:

If the hphpize command is not available, you will need to either compile HHVM from source or install the hhvm-dev package (e.g. through apt-get).

The last step will report where mongodb.so has been installed, similar to:

Installing:     /usr/local/hhvm/3.9.1/lib/hhvm/extensions/20150212/mongodb.so

Add the following line to your php.ini file (usually found in "/etc/hhvm"):

hhvm.dynamic_extension_path=/usr/local/hhvm/3.9.1/lib/hhvm/extensions/20150212
hhvm.dynamic_extensions[mongodb]=mongodb.so


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

mongodb Options de configuration
Nom | Défaut | Modifiable | Historique | Comments
mongodb.debug | "" | PHP_INI_ALL |  | Only available for the PHP driver, and not the HHVM one

Voici un éclaircissement sur l'utilisation des directives de configuration.

mongodb.debug string

Store full activity debug log in this directory or stream. The special value "stderr" can be provided to write to STDERR.

Note:

Not available for HHVM


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MONGODB_VERSION (string)
x.y.z style version number of the extension
MONGODB_STABILITY (string)
Current stability (alpha/beta/stable)


Tutorials

In this section you will find several tutorials on how to use the MongoDB driver for PHP and HHVM. Because the drivers work exactly the same, they share common usage tutorials, but have a separate installation sections.

  • Getting Started with HHVM
  • Using the PHP Library for MongoDB (PHPLIB)


Getting Started with HHVM

In this section you will learn how to set-up NGINX with HHVM and MongoDB. However, this tutorial is not meant to be an all inclusive guide on how to run NGINX and HHVM in a production environment.

In this tutorial, we will be using a Debian system with NGINX installed through apt-get and HHVM installed from source or pre-built packages into /usr/local/hhvm/3.9.1 (with the binary located at /usr/local/hhvm/3.9.1/bin/hhvm).

Installing NGINX

We simply install NGINX by running apt-get install nginx-full. If NGINX fails to start after installation, it is likely that you already have another web server (e.g. Apache) running on the same port. In that case, you will see the following lines in /var/log/nginx/error.log:

2015/09/29 10:19:27 [emerg] 22445#22445: bind() to 0.0.0.0:80 failed (98:Address already in use)
2015/09/29 10:19:27 [emerg] 22445#22445: bind() to [::]:80 failed (98: Address already in use)

To resolve this, you can either change the default port for NGINX or Apache, stop the Apache process with service apache2 stop, or remove Apache entirely with apt-get remove apache2.

Installing HHVM

This tutorial is written from the perspective of an extension developer, so we've installed HHVM from source to faciliate patch development and ensure that debug symbols are available. That said, the folks at Facebook also provide pre-built packages, which is probably what you will want to use in production and development. You can find installation instructions for these packages on the » HHVM Wiki.

You will need to install both the the hhvm and hhvm-dev packages. The latter is needed so that we can compile the MongoDB HHVM extension later on.

If you are compiling HHVM from source, you will need to create /var/run/hhvm:

sudo mkdir -p /var/run/hhvm
sudo chown www-data.www-data /var/run/hhvm
sudo mkdir /etc/hhvm
sudo touch /etc/hhvm/php.ini
# So that you don't have to ``sudo`` to edit the file
sudo chown derick /etc/hhvm/php.ini
# To see whether it actually works
echo "date.timezone=Europe/London" >> /etc/hhvm/php.ini

HHVM should be started as the www-data user. For the purposes of this tutorial, we can run it in the foreground in server mode as follows:

sudo -u www-data -s /usr/local/hhvm/3.9.1/bin/hhvm \
 --mode server \
 -vServer.Type=fastcgi \
 -vServer.FileSocket=/var/run/hhvm/sock

Making NGINX Talk to HHVM

Once HHVM runs, we need to tell NGINX how to talk to HHVM for executing .php files. Although this is perhaps not the cleanest approach, you can add the following snippet to /etc/nginx/sites-enabled/default, just after the location / { … } section:

location ~ \.php$ {
   fastcgi_pass unix:/var/run/hhvm/sock;
   fastcgi_index index.php;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   include fastcgi_params;
}

After adding that snippet, you should restart NGINX:

sudo service nginx restart

To confirm that everything works so far, we will create a project directory with an index.php file that calls phpinfo():

  • Create the project directory: sudo mkdir -p /var/www/html/my-first-project

  • Change permissions to your user and the www-data group: sudo chown derick.www-data /var/www/html/my-first-project

  • Create the file /var/www/html/my-first-project/index.php. From now on, I will not include the full path /var/www/html/my-first-project/ when I mention file names. Put the following content in this file:

    <?php
    phpinfo    ();
    ?>

Now, in your browser, request the page http://gargleblaster/my-first-project/index.php (but adjust the hostname). This should then show a page starting with "HHVM Version 3.9.1" followed by several tables with information.

Installing the MongoDB Driver for HHVM

The MongoDB driver is the part that links up the PHP in HHVM with the database server. To install and register the driver with HHVM, you need to follow the steps in Manually Installing the MongoDB HHVM Driver.

After you have installed and enabled the extension, HHVM will need to be restarted. If you have HHVM running in the shell from earlier, stop it with Ctrl-C and restart it again as above:

sudo -u www-data -s /usr/local/hhvm/3.9.1/bin/hhvm \
   --mode server \
   -vServer.Type=fastcgi \
   -vServer.FileSocket=/var/run/hhvm/sock

In order to test that the driver is loaded, edit the index.php file and replace its contents with:

<?php
var_dump(phpversion("mongodb"));
?>

This should output something similar to:

string(5) "x.y.z"

Further Reading

Continue this tutorial by jumping to Using the PHP Library for MongoDB (PHPLIB).


Using the PHP Library for MongoDB (PHPLIB)

After the initial driver set-up, we will continue explaining how to get started with the MongoDB driver and corresponding userland library to write our first project.

Installing the PHP Library with Composer

The last thing we still need to install to get started on the application itself, is the PHP library.

The library needs to be installed with » Composer, a package manager for PHP. Instructions for installing Composer on various platforms may be found on its website.

Install the library by running:

$ composer require "mongodb/mongodb=^1.0.0"

It will output something akin to:

./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing mongodb/mongodb (1.0.0)
    Downloading: 100%

Writing lock file
Generating autoload files

Composer will create several files: composer.json, composer.lock, and a vendor directory that will contain the library and any other dependencies your project might require.

Using the PHP Library

In addition to managing your dependencies, Composer will also provide you with an autoloader (for those dependencies' classes). Ensure that it is included at the start of your script or in your application's bootstrap code:

<?php
// This path should point to Composer's autoloader
require 'vendor/autoload.php';

With this done, you can now use any of the functionality as described in the » library documentation and its » API.

If you have previously used the old driver (i.e. mongo extension), the library's API should look familiar. It contains a » Client class for connecting to MongoDB, and » Database class for database-level operations (e.g. commands, collection management) and a » Collection class for collection-level operations (e.g. » CRUD methods, index management). Various Collection methods have been renamed for clarity, and to be in accordance with a new language-agnostic » specification.

As an example, this is how you insert a document into the beers collection of the demo database:

<?php
require 'vendor/autoload.php'; // include Composer goodies

$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;

$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

echo "Inserted with Object ID '{$result->getInsertedId()}'";
?>

Instead of injecting the generated _id field into the input document (as was done in the old driver), it is now made available through the result object returned by the insertOne method.

After insertion, you can of course also query the data that you have just inserted. For that, you use the find method, which returns an iterable cursor:

<?php
require 'vendor/autoload.php'; // include Composer goodies

$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;

$result = $collection->find( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

foreach ($result as $entry) {
    echo $entry['_id'], ': ', $entry['name'], "\n";
}
?>

While it may not be apparent in the examples, BSON documents and arrays are unserialized as type classes in the library by default. These classes ensure that values preserve their type when being serialized back into BSON, which avoids a caveat in the old driver where arrays might turn into documents, and vice versa. Additionally, the classes extend ArrayObject for enhanced usability. You can find more information on how serialization and deserialization between PHP variables and BSON is handled by the driver and library by reading the Persisting Data specification.


Explains the driver architecure, and special features

  • Architecture — Architecture Overview
  • Connections — Connection handling and persistence
  • Persisting Data — Serialization and deserialization of PHP variables into MongoDB
    • Serialization to BSON
    • Deserialization from BSON


Architecture Overview

This section explains how all the different parts of the driver fit together. From the different language runtimes, through the extensions and to the PHP libraries on top. This new architecture has replaced the old mongo extension. We refer to the new one as the mongodb extension.

At the top of this stack sits a pure » PHP library, which we will distribute as a Composer package. This library will provide an API similar to what users have come to expect from the old mongo driver (e.g. CRUD methods, database and collection objects, command helpers) and we expect it to be a common dependency for most applications built with MongoDB. This library will also implement common » specifications, in the interest of improving API consistency across all of the » drivers maintained by MongoDB (and hopefully some community drivers, too).

Sitting below that library we have the lower level drivers—one per platform. These extensions will effectively form the glue between PHP and HHVM and our system libraries (» libmongoc and » libbson). These extensions will expose an identical public API for the most essential and performance-sensitive functionality:

  • Connection management
  • BSON encoding and decoding
  • Object document serialization (to support ODM libraries)
  • Executing commands and write operations
  • Handling queries and cursors

By decoupling the driver internals and a high-level API into extensions and PHP libraries, respectively, we hope to reduce our maintainence burden and allow for faster iteration on new features. As a welcome side effect, this also makes it easier for anyone to contribute to the driver. Additionally, an identical public API for these extensions will make it that much easier to port an application across PHP runtimes, whether the application uses the low-level driver directly or a higher-level PHP library.

» GridFS is a great example of why we chose this direction. Although we implemented GridFS in C for our old mongo driver, it is actually quite a high-level specification. Its API is just an abstraction for accessing two collections: files (i.e. metadata) and chunks (i.e. blocks of data). Likewise, all of the syntactic sugar found in the old mongo driver, such as processing uploaded files or exposing GridFS files as PHP streams, can be implemented in pure PHP. Provided we have performant methods for reading from and writing to GridFS' collections – and thanks to our low level extensions, we will – shifting this API to PHP is win-win.

Earlier I mentioned that we expect the PHP library to be a common dependency for most applications, but not all. Some users may prefer to stick to the no-frills API offered by the extensions, or create their own high-level abstraction (akin to » Doctrine MongoDB for the old mongo driver). Future libraries could include a PHP library geared for MongoDB administration, which provides an API for various user management and ops commands. The next major version of » Doctrine MongoDB ODM will likely also sit directly atop the extensions.

While we will continue to maintain and support the old mongo driver and its users for the foreseeable future, we invite everyone to use the next-generation driver and consider it for any new projects going forward. You can find all of the essential components across GitHub and JIRA:

Driver Source Code and JIRA Locations
Project | GitHub | JIRA
PHP Library | » mongodb/mongo-php-library | » PHPLIB
PHP 5 and PHP 7 Driver (phongo) | » mongodb/mongo-php-driver | » PHPC
HHVM Driver (hippo) | » mongodb/mongo-hhvm-driver | » HHVM

The existing » PHP project in JIRA will remain open for reporting bugs against the old mongo driver, but we would ask that you use the new projects above for anything pertaining to our next-generation drivers.


Connection handling and persistence

Astuce

Sur les plate-formes Unix, le driver MongoDB est sensible aux scripts qui utilisent l'appel système fork() sans pour autant appeler exec(). Vous ne devez pas ré-utliser des instances MongoDB\Driver\Manager dans une processus fils issue d'un fork.

Connection and topology persistence (PHP and HHVM versions since 1.2.0)

All versions of the driver since 1.2.0 persist the » libmongoc client object in the PHP worker process, which allows it to re-use database connections, authentication states, and topology information across multiple requests.

When MongoDB\Driver\Manager::__construct() is invoked, a hash is created from its arguments (i.e. URI string and array options). The driver will attempt to find a previously persisted » libmongoc client object for that hash. If an existing client cannot be found for the hash, a new client will be created (and persisted for future use).

Each client contains its own database connections and a view of the server topology (e.g. standalone, replica set, shard cluster). By persisting the client between PHP requests, the driver is able to re-use established database connections and remove the need for » discovering the server topology on each request.

Consider the following example:

<?php

$managers = [
    new MongoDB\Driver\Manager('mongodb://127.0.0.1'),
    new MongoDB\Driver\Manager('mongodb://127.0.0.1'),
    new MongoDB\Driver\Manager('mongodb://127.0.0.1:27017'),
    new MongoDB\Driver\Manager('mongodb://rs1.example.com,rs2.example.com/', ['replicaSet' => 'myReplicaSet']),
];

foreach ($managers as $manager) {
    $manager->executeCommand('test', new MongoDB\Driver\Command(['ping' => 1]));
}

?>

The first two Manager objects will share the same » libmongoc client since their constructor arguments are identical. The third and fourth objects will each use their own client. In total, three clients will be created and the PHP worker executing this script will open two connections to 127.0.0.1 and one connection to each of rs1.example.com and rs2.example.com. If the driver discovers additional members of the replica set after issuing isMaster commands, it will open additional connections to those servers as well.

If the same worker executes the script again in a second request, the three clients will be re-used and no new connections should be made. Depending on how long ago the previous request was served, the driver may need to issue additional isMaster commands to update its view of the topologies.

Socket persistence (PHP versions before 1.2.0)

Versions of the PHP driver before 1.2.0 utilize PHP's Streams API for database connections, using an API within » libmongoc to designate custom handlers for socket communication; however, a new libmongoc client is created for each MongoDB\Driver\Manager. As a result, the driver persists individual database connections but not authentication state or topology information. This means that the driver needs to issue commands at the start of each request to authenticate and » discover the server topology.

Database connections are persisted by a hash derived from the server's host, port, and the URI string used to construct the MongoDB\Driver\Manager. The constructor's array options are not included in this hash.

Note: Versions of the driver >= 1.1.8 and < 1.2.0 do not persist sockets for SSL connections. See » PHPC-720 for additional information.

Despite its shortcomings with persisting SSL connections when and topology information, this version of the driver supports all SSL context options since it uses PHP's Streams API.

No persistence (HHVM versions before 1.2.0)

Versions of the HHVM driver before 1.2.0 do not persist sockets, authentication state, or topology information. Socket communication uses » libmongoc entirely.


Serialization and deserialization of PHP variables into MongoDB

Sommaire

  • Serialization to BSON
  • Deserialization from BSON

This document discusses the methods how compound structures (documents, arrays, objects) are persisted through the drivers. And how they are brought back into PHP land.


Serialization to BSON

Arrays

If an array is a packed array — i.e. the keys start at 0 and are sequential without gaps: BSON array.

If the array is not packed — i.e. having associative (string) keys, the keys don't start at 0, or when there are gaps:: BSON object

A top-level (root) document, always serializes as a BSON document.

Examples

These serialize as a BSON array:

[ 8, 5, 2, 3 ] => [ 8, 5, 2, 3 ]
[ 0 => 4, 1 => 9 ] => [ 4, 9 ]

These serialize as a BSON document:

[ 0 => 1, 2 => 8, 3 => 12 ] => { "0" : 1, "2" : 8, "3" : 12 }
[ "foo" => 42 ] => { "foo" : 42 }
[ 1 => 9, 0 => 10 ] => { "1" : 9, "0" : 10 }

Note that the five examples are extracts of a full document, and represent only one value inside a document.

Objects

If an object is of the stdClass class, serialize as a BSON document.

If an object is a supported class that implements MongoDB\BSON\Type, then use the BSON serialization logic for that specific type. MongoDB\BSON\Type instances (excluding MongoDB\BSON\Serializable may only be serialized as a document field value. Attempting to serialize such an object as a root document will throw a MongoDB\Driver\Exception\UnexpectedValueException

If an object is of an unknown class implementing the MongoDB\BSON\Type interface, then throw a MongoDB\Driver\Exception\UnexpectedValueException

If an object is of any other class, without implementing any special interface, serialize as a BSON document. Keep only public properties, and ignore protected and private properties.

If an object is of a class that implements the MongoDB\BSON\Serializable interface, call MongoDB\BSON\Serializable::bsonSerialize() and use the returned array or stdClass to serialize as a BSON document or array. The BSON type will be determined by the following:

  1. Root documents must be serialized as a BSON document.

  2. MongoDB\BSON\Persistable objects must be serialized as a BSON document.

  3. If MongoDB\BSON\Serializable::bsonSerialize() returns a packed array, serialize as a BSON array.

  4. If MongoDB\BSON\Serializable::bsonSerialize() returns a non-packed array or stdClass, serialize as a BSON document.

  5. If MongoDB\BSON\Serializable::bsonSerialize() did not return an array or stdClass, throw an MongoDB\Driver\Exception\UnexpectedValueException exception.

If an object is of a class that implements the MongoDB\BSON\Persistable interface (which implies MongoDB\BSON\Serializable obtain the properties in a similar way as in the previous paragraphs, but also add an additional property __pclass as a Binary value, with subtype 0x80 and data bearing the fully qualified class name of the object that is being serialized.

The __pclass property is added to the array or object returned by MongoDB\BSON\Serializable::bsonSerialize(), which means it will overwrite any __pclass key/property in the MongoDB\BSON\Serializable::bsonSerialize() return value. If you want to avoid this behaviour and set your own __pclass value, you must not implement MongoDB\BSON\Persistable and should instead implement MongoDB\BSON\Serializable directly.

Examples

<?php

class stdClass {
  public $foo = 42;
} // => { "foo" : 42 }

class MyClass {
  public $foo = 42;
  protected $prot = "wine";
  private $fpr = "cheese";
} // => { "foo" : 42 }

class AnotherClass1 implements MongoDB\BSON\Serializable {
  public $foo = 42;
  protected $prot = "wine";
  private $fpr = "cheese";
  function bsonSerialize() {
      return [ 'foo' => $this->foo, 'prot' => $this->prot ];
  }
} // => { "foo" : 42, "prot" : "wine" }

class AnotherClass2 implements MongoDB\BSON\Serializable {
  public $foo = 42;
  function bsonSerialize() {
      return $this;
  }
} // => MongoDB\Driver\Exception\UnexpectedValueException("bsonSerialize() did not return an array or stdClass")

class AnotherClass3 implements MongoDB\BSON\Serializable {
  private $elements = [ 'foo', 'bar' ];
  function bsonSerialize() {
      return $this->elements;
  }
} // => { "0" : "foo", "1" : "bar" }

class ContainerClass implements MongoDB\BSON\Serializable {
  public $things = AnotherClass4 implements MongoDB\BSON\Serializable {
    private $elements = [ 0 => 'foo', 2 => 'bar' ];
    function bsonSerialize() {
      return $this->elements;
    }
  }
  function bsonSerialize() {
      return [ 'things' => $this->things ];
  }
} // => { "things" : { "0" : "foo", "2" : "bar" } }

class ContainerClass implements MongoDB\BSON\Serializable {
  public $things = AnotherClass5 implements MongoDB\BSON\Serializable {
    private $elements = [ 0 => 'foo', 2 => 'bar' ];
    function bsonSerialize() {
      return array_values($this->elements);
    }
  }
  function bsonSerialize() {
      return [ 'things' => $this->things ];
  }
} // => { "things" : [ "foo", "bar" ] }

class ContainerClass implements MongoDB\BSON\Serializable {
  public $things = AnotherClass6 implements MongoDB\BSON\Serializable {
    private $elements = [ 'foo', 'bar' ];
    function bsonSerialize() {
      return (object) $this->elements;
    }
  }
  function bsonSerialize() {
      return [ 'things' => $this->things ];
  }
} // => { "things" : { "0" : "foo", "1" : "bar" } }

class UpperClass implements MongoDB\BSON\Persistable {
  public $foo = 42;
  protected $prot = "wine";
  private $fpr = "cheese";
  function bsonSerialize() {
      return [ 'foo' => $this->foo, 'prot' => $this->prot ];
  }
} // => { "foo" : 42, "prot" : "wine", "__pclass" : { "$type" : "80", "$binary" : "VXBwZXJDbGFzcw==" } }


Deserialization from BSON

For compound types, there are three data types:

root

refers to the top-level BSON document only

document

refers to embedded BSON documents only

array

refers to a BSON array

Each of those three data types can be mapped against different PHP types. The possible mapping values are:

not set or NULL (the is the default)

  • A BSON array will be deserialized as a PHP array.

  • A BSON document (root or embedded) without a __pclass property [1] becomes a PHP stdClass object, with each BSON document key set as a public stdClass property.

  • A BSON document (root or embedded) with a __pclass property [1] becomes a PHP object of the class name as defined by the __pclass property.

    If the named class implements the MongoDB\BSON\Persistable interface, then the properties of the BSON document, including the __pclass property, are sent as an associative array to the MongoDB\BSON\Unserializable::bsonUnserialize() function to initialise the object's properties.

    If the named class does not exist or does not implement the MongoDB\BSON\Persistable interface, stdClass will be used and each BSON document key (including __pclass) will be set as a public stdClass property.

"array"

Turns a BSON array or BSON document into a PHP array. There will be no special treatment of a __pclass property [1], but it may be set as an element in the returned array if it was present in the BSON document.

"object" or "stdClass"

Turns a BSON array or BSON document into a stdClass object. There will be no special treatment of a __pclass property [1], but it may be set as a public property in the returned object if it was present in the BSON document.

any other string

Defines the class name that the BSON array or BSON object should be deserialized as. For BSON objects that include __pclass properties, that class will take priority.

If the named class does not exist, is not concrete (i.e. it is abstract or an interface), or does not implement MongoDB\BSON\Unserializable then an MongoDB\Driver\Exception\InvalidArgumentException exception is thrown.

If the BSON object has a __pclass property and that class exists and implements MongoDB\BSON\Persistable it will supersede the class provided in the type map.

The properties of the BSON document, including the __pclass property if it exists, will be sent as an associative array to the MongoDB\BSON\Unserializable::bsonUnserialize() function to initialise the object's properties.

TypeMaps

TypeMaps can be set through the MongoDB\Driver\Cursor::setTypeMap() method on a MongoDB\Driver\Cursor object, or the $typeMap argument of MongoDB\BSON\toPHP(). Each of the three classes (root, document and array) can be individually set.

If the value in the map is NULL, it means the same as the default value for that item.

Examples

These examples use the following classes:

MyClass

which does not implement any interface

YourClass

which implements MongoDB\BSON\Unserializable

OurClass

which implements MongoDB\BSON\Persistable

TheirClass

which extends OurClass

The MongoDB\BSON\Unserializable::bsonUnserialize() method of YourClass, OurClass, TheirClass iterate over the array and set the properties without modifications. It also sets the $unserialized property to true:

<?php

function bsonUnserialize( array $map )
{
    foreach ( $map as $k => $value )
    {
        $this->$k = $value;
    }
    $this->unserialized = true;
}

/* typemap: [] (all defaults) */
{ "foo": "yes", "bar" : false }
  -> stdClass { $foo => 'yes', $bar => false }

{ "foo": "no", "array" : [ 5, 6 ] }
  -> stdClass { $foo => 'no', $array => [ 5, 6 ] }

{ "foo": "no", "obj" : { "embedded" : 3.14 } }
  -> stdClass { $foo => 'no', $obj => stdClass { $embedded => 3.14 } }

{ "foo": "yes", "__pclass": "MyClass" }
  -> stdClass { $foo => 'yes', $__pclass => 'MyClass' }

{ "foo": "yes", "__pclass": { "$type" : "80", "$binary" : "MyClass" } }
  -> stdClass { $foo => 'yes', $__pclass => Binary(0x80, 'MyClass') }

{ "foo": "yes", "__pclass": { "$type" : "80", "$binary" : "YourClass") }
  -> stdClass { $foo => 'yes', $__pclass => Binary(0x80, 'YourClass') }

{ "foo": "yes", "__pclass": { "$type" : "80", "$binary" : "OurClass") }
  -> OurClass { $foo => 'yes', $__pclass => Binary(0x80, 'OurClass'), $unserialized => true }

{ "foo": "yes", "__pclass": { "$type" : "44", "$binary" : "YourClass") }
  -> stdClass { $foo => 'yes', $__pclass => Binary(0x44, 'YourClass') }

/* typemap: [ "root" => "MissingClass" ] */
{ "foo": "yes" }
  -> MongoDB\Driver\Exception\InvalidArgumentException("MissingClass does not exist")

/* typemap: [ "root" => "MyClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MyClass" } }
  -> MongoDB\Driver\Exception\InvalidArgumentException("MyClass does not implement Unserializable interface")

/* typemap: [ "root" => "MongoDB\BSON\Unserializable" ] */
{ "foo": "yes" }
  -> MongoDB\Driver\Exception\InvalidArgumentException("Unserializable is not a concrete class")

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MongoDB\BSON\Unserializable" } }
  -> YourClass { $foo => "yes", $__pclass => Binary(0x80, "MongoDB\BSON\Unserializable"), $unserialized => true }

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MyClass" } }
  -> YourClass { $foo => "yes", $__pclass => Binary(0x80, "MyClass"), $unserialized => true }

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "OurClass" } }
  -> OurClass { $foo => "yes", $__pclass => Binary(0x80, "OurClass"), $unserialized => true }

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "TheirClass" } }
  -> TheirClass { $foo => "yes", $__pclass => Binary(0x80, "TheirClass"), $unserialized => true }

/* typemap: [ "root" => "OurClass" ] */
{ foo: "yes", "__pclass" : { "$type": "80", "$binary": "TheirClass" } }
  -> TheirClass { $foo => "yes", $__pclass => Binary(0x80, "TheirClass"), $unserialized => true }

/* typemap: [ 'root' => 'YourClass' ] */
{ foo: "yes", "__pclass" : { "$type": "80", "$binary": "YourClass" } }
  -> YourClass { $foo => 'yes', $__pclass => Binary(0x80, 'YourClass'), $unserialized => true }

/* typemap: [ 'root' => 'array', 'document' => 'array' ] */
{ "foo": "yes", "bar" : false }
  -> [ "foo" => "yes", "bar" => false ]

{ "foo": "no", "array" : [ 5, 6 ] }
  -> [ "foo" => "no", "array" => [ 5, 6 ] ]

{ "foo": "no", "obj" : { "embedded" : 3.14 } }
  -> [ "foo" => "no", "obj" => [ "embedded => 3.14 ] ]

{ "foo": "yes", "__pclass": "MyClass" }
  -> [ "foo" => "yes", "__pclass" => "MyClass" ]

{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MyClass" } }
  -> [ "foo" => "yes", "__pclass" => Binary(0x80, "MyClass") ]

{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "OurClass" } }
  -> [ "foo" => "yes", "__pclass" => Binary(0x80, "OurClass") ]

/* typemap: [ 'root' => 'object', 'document' => 'object' ] */
{ "foo": "yes", "__pclass": { "$type": "80", "$binary": "MyClass" } }
  -> stdClass { $foo => "yes", "__pclass" => Binary(0x80, "MyClass") }


  • « Deserialization from BSON
  • Request Injection Attacks »
  • PHP Manual
  • MongoDB
  • Security

Security

  • Request Injection Attacks
  • Script Injection Attacks


Request Injection Attacks

If you are passing $_GET (or $_POST) parameters to your queries, make sure that they are cast to strings first. Users can insert associative arrays in GET and POST requests, which could then become unwanted $-queries.

A fairly innocuous example: suppose you are looking up a user's information with the request http://www.example.com?username=bob. Your application creates the query $q = new \MongoDB\Driver\Query( [ 'username' => $_GET['username'] ]).

Someone could subvert this by getting http://www.example.com?username[$ne]=foo, which PHP will magically turn into an associative array, turning your query into $q = new \MongoDB\Driver\Query( [ 'username' => [ '$ne' => 'foo' ] ] ), which will return all users not named "foo" (all of your users, probably).

This is a fairly easy attack to defend against: make sure $_GET and $_POST parameters are the type you expect before you send them to the database. PHP has the filter_var() function to assist with this.

Note that this type of attack can be used with any databases interation that locates a document, including updates, upserts, deletes, and findAndModify commands.

See » the main documentation for more information about SQL-injection-like issues with MongoDB.


Script Injection Attacks

If you are using JavaScript, make sure that any variables that cross the PHP- to-JavaScript boundry are passed in the scope field of MongoDB\BSON\Javascript, not interpolated into the JavaScript string. This can come up when using $where clauses in queries, mapReduce and group commands, and any other time you may pass JavaScript into the database.

For example, suppose we have some JavaScript to greet a user in the database logs. We could do:

<?php
$m = new MongoDB\Driver\Manager;

// Don't do this!!!
$username = $_GET['field'];

$cmd = new \MongoDB\Driver\Command( [
    'eval' => "print('Hello, $username!');"
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

However, what if a malicious user passes in some JavaScript?

<?php
$m = new MongoDB\Driver\Manager;

// Don't do this!!!
$username = $_GET['field'];
// $username is set to "'); db.users.drop(); print('"

$cmd = new \MongoDB\Driver\Command( [
    'eval' => "print('Hello, $username!');"
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

Now MongoDB executes the JavaScript string "print('Hello, '); db.users.drop(); print('!');". This attack is easy to avoid: use args to pass variables from PHP to JavaScript:

<?php
$m = new MongoDB\Driver\Manager;

$_GET['field'] = 'derick';
$args = [ $_GET['field'] ];

$cmd = new \MongoDB\Driver\Command( [
    'eval' => "function greet(username) { print('Hello, ' + username + '!'); }",
    'args' => $args,
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

This adds an argument to the JavaScript scope, which gets used as argument for the greet function. Now if someone tries to send malicious code, MongoDB will harmlessly print Hello, '); db.dropDatabase(); print('!.

Using arguments helps to prevent malicious input from being executed by the database. However, you must make sure that your code does not turn around and execute the input anyway! It is best to avoid executing any JavaScript on the server in the first place.

You are strongly recommended to stay clear of the » $where clause with queries, as it impacts performance significantly. Where possible, use either normal query operators, or the » Aggregation Framework.

As alternative to » MapReduce, which uses JavaScript, consider using the » Aggregation Framework. Unlike Map/Reduce, it uses an idiomatic language to construct queries, without having to write, and use, the slower JavaScript approach that Map/Reduce requires.

The » eval command has been deprecated since MongoDB 3.0, and should also be avoided.


MongoDB driver classes

  • MongoDB\Driver\Manager — The MongoDB\Driver\Manager class
    • MongoDB\Driver\Manager::__construct — Create new MongoDB Manager
    • MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations
    • MongoDB\Driver\Manager::executeCommand — Execute a database command
    • MongoDB\Driver\Manager::executeQuery — Execute a database query
    • MongoDB\Driver\Manager::getServers — Description
    • MongoDB\Driver\Manager::selectServer — Select a server matching a read preference
  • MongoDB\Driver\Command — The MongoDB\Driver\Command class
    • MongoDB\Driver\Command::__construct — Crée une nouvelle commande
  • MongoDB\Driver\Query — La classe MongoDB\Driver\Query
    • MongoDB\Driver\Query::__construct — Construct new Query
  • MongoDB\Driver\BulkWrite — The MongoDB\Driver\BulkWrite class
    • MongoDB\Driver\BulkWrite::__construct — Create a new BulkWrite
    • MongoDB\Driver\BulkWrite::count — Count number of write operations in the bulk
    • MongoDB\Driver\BulkWrite::delete — Add a delete operation to the bulk
    • MongoDB\Driver\BulkWrite::insert — Add an insert operation to the bulk
    • MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk
  • MongoDB\Driver\WriteConcern — La classe MongoDB\Driver\WriteConcern
    • MongoDB\Driver\WriteConcern::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\WriteConcern::__construct — Construit un WriteConcern immutable
    • MongoDB\Driver\WriteConcern::getJournal — Returns the WriteConcern's "journal" option
    • MongoDB\Driver\WriteConcern::getW — Returns the WriteConcern's "w" option
    • MongoDB\Driver\WriteConcern::getWtimeout — Returns the WriteConcern's "wtimeout" option
  • MongoDB\Driver\ReadPreference — La classe MongoDB\Driver\ReadPreference
    • MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\ReadPreference::__construct — Description
    • MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option
    • MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option
  • MongoDB\Driver\ReadConcern — The MongoDB\Driver\ReadConcern class
    • MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\ReadConcern::__construct — Construct immutable ReadConcern
    • MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option
  • MongoDB\Driver\Cursor — La classe MongoDB\Driver\Cursor
    • MongoDB\Driver\Cursor::__construct — Description
    • MongoDB\Driver\Cursor::getId — Retourne le CursorId pour ce curseur
    • MongoDB\Driver\Cursor::getServer — Retourne l'objet Server sur lequel le curseur est attaché
    • MongoDB\Driver\Cursor::isDead — Vérifie si un curseur est toujours disponible
    • MongoDB\Driver\Cursor::setTypeMap — Défini un type de carte à utiliser pour la délinéarisation BSON
    • MongoDB\Driver\Cursor::toArray — Retourne un tableau de tous les documents résultants pour ce curseur
  • MongoDB\Driver\CursorId — La classe MongoDB\Driver\CursorId
    • MongoDB\Driver\CursorId::__construct — Description
    • MongoDB\Driver\CursorId::__toString — Description
  • MongoDB\Driver\Server — La classe MongoDB\Driver\Server
    • MongoDB\Driver\Server::__construct — Description
    • MongoDB\Driver\Server::executeBulkWrite — Exécute une ou plusieurs opérations d'écriture sur ce serveur
    • MongoDB\Driver\Server::executeCommand — Exécute une commande de base de données sur ce serveur
    • MongoDB\Driver\Server::executeQuery — Exécute une requête de base de données sur ce serveur
    • MongoDB\Driver\Server::getHost — Retourne le nom d'hôte du serveur
    • MongoDB\Driver\Server::getInfo — Retourne un tableau d'informations sur ce serveur
    • MongoDB\Driver\Server::getLatency — Retourne la latence de ce serveur
    • MongoDB\Driver\Server::getPort — Retourne le port sur lequel le serveur écoute
    • MongoDB\Driver\Server::getTags — Returns an array of tags describing this server in a replica set
    • MongoDB\Driver\Server::getType — Retourne un entier représentant le type du serveur
    • MongoDB\Driver\Server::isArbiter — Checks if this server is an arbiter member of a replica set
    • MongoDB\Driver\Server::isHidden — Checks if this server is a hidden member of a replica set
    • MongoDB\Driver\Server::isPassive — Vérifie si le serveur est un membre passif du jeu de réplication
    • MongoDB\Driver\Server::isPrimary — Checks if this server is a primary member of a replica set
    • MongoDB\Driver\Server::isSecondary — Checks if this server is a secondary member of a replica set
  • MongoDB\Driver\WriteConcernError — La classe MongoDB\Driver\WriteConcernError
    • MongoDB\Driver\WriteConcernError::getCode — Description
    • MongoDB\Driver\WriteConcernError::getInfo — Description
    • MongoDB\Driver\WriteConcernError::getMessage — Description
  • MongoDB\Driver\WriteError — La classe MongoDB\Driver\WriteError
    • MongoDB\Driver\WriteError::getCode — Description
    • MongoDB\Driver\WriteError::getIndex — Description
    • MongoDB\Driver\WriteError::getInfo — Returns additional metadata for the WriteError
    • MongoDB\Driver\WriteError::getMessage — Description
  • MongoDB\Driver\WriteResult — La classe MongoDB\Driver\WriteResult
    • MongoDB\Driver\WriteResult::getDeletedCount — Description
    • MongoDB\Driver\WriteResult::getInsertedCount — Description
    • MongoDB\Driver\WriteResult::getMatchedCount — Description
    • MongoDB\Driver\WriteResult::getModifiedCount — Description
    • MongoDB\Driver\WriteResult::getServer — Description
    • MongoDB\Driver\WriteResult::getUpsertedCount — Description
    • MongoDB\Driver\WriteResult::getUpsertedIds — Description
    • MongoDB\Driver\WriteResult::getWriteConcernError — Description
    • MongoDB\Driver\WriteResult::getWriteErrors — Description
    • MongoDB\Driver\WriteResult::isAcknowledged — Returns whether the write was acknowledged


The MongoDB\Driver\Manager class

(mongodb >=1.0.0)

Introduction

The MongoDB\Driver\Manager is the main entry point to the extension. It is responsible for maintaining connections to MongoDB (be it standalone server, replica set, or sharded cluster).

No connection to MongoDB is made upon instantiating the Manager. This means the MongoDB\Driver\Manager can always be constructed, even though one or more MongoDB servers are down.

Any write or query can throw connection exceptions as connections are created lazily. A MongoDB server may also become unavailable during the life time of the script. It is therefore important that all actions on the Manager to be wrapped in try/catch statements.

Synopsis de la classe

final MongoDB\Driver\Manager {
/* Méthodes */
final public __construct ( string $uri [, array $options [, array $driverOptions ]] )
final public MongoDB\Driver\WriteResult executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, MongoDB\Driver\WriteConcern $writeConcern ] )
final public MongoDB\Driver\Cursor executeCommand ( string $db , MongoDB\Driver\Command $command [, MongoDB\Driver\ReadPreference $readPreference ] )
final public MongoDB\Driver\Cursor executeQuery ( string $namespace , MongoDB\Driver\Query $query [, MongoDB\Driver\ReadPreference $readPreference ] )
final public ReturnType getServers ( void )
final public MongoDB\Driver\Server selectServer ( MongoDB\Driver\ReadPreference $readPreference )
}

Exemples

Exemple #1 MongoDB\Driver\Manager::__construct() basic example

var_dump()ing a MongoDB\Driver\Manager will print out various details about the manager that are otherwise not normally exposed. This can be useful to debug how the driver views your MongoDB setup, and which options are used.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
var_dump($manager);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(MongoDB\Driver\Manager)#1 (3) {
  ["request_id"]=>
  int(1714636915)
  ["uri"]=>
  string(25) "mongodb://localhost:27017"
  ["cluster"]=>
  array(13) {
    ["mode"]=>
    string(6) "direct"
    ["state"]=>
    string(4) "born"
    ["request_id"]=>
    int(0)
    ["sockettimeoutms"]=>
    int(300000)
    ["last_reconnect"]=>
    int(0)
    ["uri"]=>
    string(25) "mongodb://localhost:27017"
    ["requires_auth"]=>
    int(0)
    ["nodes"]=>
    array(...)
    ["max_bson_size"]=>
    int(16777216)
    ["max_msg_size"]=>
    int(50331648)
    ["sec_latency_ms"]=>
    int(15)
    ["peers"]=>
    array(0) {
    }
    ["replSet"]=>
    NULL
  }
}

Sommaire

  • MongoDB\Driver\Manager::__construct — Create new MongoDB Manager
  • MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations
  • MongoDB\Driver\Manager::executeCommand — Execute a database command
  • MongoDB\Driver\Manager::executeQuery — Execute a database query
  • MongoDB\Driver\Manager::getServers — Description
  • MongoDB\Driver\Manager::selectServer — Select a server matching a read preference


Create new MongoDB Manager

  • « MongoDB\Driver\Manager
  • MongoDB\Driver\Manager::executeBulkWrite »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Create new MongoDB Manager

MongoDB\Driver\Manager::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Manager::__construct — Create new MongoDB Manager

Description

final public MongoDB\Driver\Manager::__construct ( string $uri [, array $options [, array $driverOptions ]] )

Constructs a new MongoDB\Driver\Manager object with the specified options.

Astuce

Sur les plate-formes Unix, le driver MongoDB est sensible aux scripts qui utilisent l'appel système fork() sans pour autant appeler exec(). Vous ne devez pas ré-utliser des instances MongoDB\Driver\Manager dans une processus fils issue d'un fork.

Liste de paramètres

uri

A » mongodb:// connection URI:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

The uri is a URL, hence any special characters in its components need to be URL encoded according to » RFC 3986. This is particularly relevant to the username and password, which can often include special characters such as @, :, or %. When connecting via a Unix domain socket, the socket path may contain special characters such as slashes and must be encoded. The rawurlencode() function may be used to encode constituent parts of the URI.

options

» Connection string options.

Note:

Specifying options via the options argument will overwrite any options with the same name in the uri argument.

driverOptions

driverOptions
Option | Type | Description
allow_invalid_hostname bool

Disables hostname validation if TRUE. Defaults to FALSE.

Allowing invalid hostnames may expose the driver to a » man-in-the-middle attack.

ca_dir string

Path to a correctly hashed certificate directory. The system certificate store will be used by default.

Falls back to the deprecated "capath" SSL context option if not specified.

ca_file string

Path to a certificate authority file. The system certificate store will be used by default.

Falls back to the deprecated "cafile" SSL context option if not specified.

crl_file | string | Path to a certificate revocation list file.
pem_file string

Path to a PEM encoded certificate to use for client authentication.

Falls back to the deprecated "local_cert" SSL context option if not specified.

pem_pwd string

Passphrase for the PEM encoded certificate (if applicable).

Falls back to the deprecated "passphrase" SSL context option if not specified.

context resource

SSL context options to be used as fallbacks for other driver options (as specified). Note that the driver does not consult the default stream context.

This option is supported for backwards compatibility, but should be considered deprecated.

weak_cert_validation bool

Disables certificate validation if TRUE. Defaults to FALSE

Falls back to the deprecated "allow_self_signed" SSL context option if not specified.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Throws MongoDB\Driver\Exception\RuntimeException if the uri format is invalid

Historique

Version Description
1.2.0

Added the "allow_invalid_hostname", "ca_file", "ca_dir", "clr_file", "pem_file", "pem_pwd", and "weak_cert_validation" driver options.

The driver no longer supports all SSL context options via the "context" driver option, since the PHP Streams API is no longer used for socket communication.

Exemples

Exemple #1 MongoDB\Driver\Manager::__construct() basic examples

Connecting to standalone MongoDB node:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://example.com:27017");

?>

Connecting to standalone MongoDB node via a Unix domain socket. The socket path may include special characters such as slashes and should be encoded with rawurlencode().

<?php

$manager = new MongoDB\Driver\Manager("mongodb://" . rawurlencode("/tmp/mongodb-27017.sock"));

?>

Connecting to a replica set:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

?>

Connecting to a sharded cluster (i.e. one or more mongos instances):

<?php

$manager = new MongoDB\Driver\Manager("mongodb://mongos1.example.com,mongos2.example.com/");

?>

Connecting to MongoDB with authentication credentials for a particular user and database:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://myusername:mypassword@example.com/mydatabase");

?>

Connecting to MongoDB with authentication credentials for a particular user and database, where the username or password includes special characters (e.g. @, :, %). In the following example, the password string myp@ss:w%rd has been manually escaped; however, rawurlencode() may also be used to escape URI components that may contain special characters.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://myusername:myp%40ss%3Aw%25rd@example.com/mydatabase");

?>

Connecting to MongoDB with X509 authentication:

<?php

$manager = new MongoDB\Driver\Manager(
    "mongodb://example.com/?ssl=true&authMechanism=MONGODB-X509",
    [],
    [
        "pem_file" => "/path/to/client.pem",
    ]
);
?>

Voir aussi

  • » MongoDB Connection String Format


Execute one or more write operations

  • « MongoDB\Driver\Manager::__construct
  • MongoDB\Driver\Manager::executeCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute one or more write operations

MongoDB\Driver\Manager::executeBulkWrite

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations

Description

final public MongoDB\Driver\WriteResult MongoDB\Driver\Manager::executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, MongoDB\Driver\WriteConcern $writeConcern ] )

Executes one or more write operations on the primary server.

A MongoDB\Driver\BulkWrite can be constructed with one or more write operations of varying types (e.g. updates, deletes, and inserts). The driver will attempt to send operations of the same type to the server in as few requests as possible to optimize round trips.

Liste de paramètres

namespace (string)

Un espace de noms totalement qualifié (e.g. "databaseName.collectionName")

bulk (MongoDB\Driver\BulkWrite)

Le MongoDB\Driver\BulkWrite à exécuter.

writeConcern (MongoDB\Driver\WriteConcern)

Optionnellement, une MongoDB\Driver\WriteConcern. Si rien n'est fourni, ce sera les préoccupations d'écriture définies par l' URI de connexion MongoDB.

Valeurs de retour

Retourne un MongoDB\Driver\WriteResult en cas de succès.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\BulkWriteException lors d'une erreur d'une opération en écriture (une erreur WriteError et WriteConcern)
  • Lance une exception MongoDB\Driver\AuthenticationException si une identification est nécessaire mais qu'elle échoue
  • Lance une exception MongoDB\Driver\ConnectionException si la connexion au serveur échoue pour une autre raison qu'en raison d'un problème d'identification
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.

Exemples

Exemple #1 MongoDB\Driver\Manager::executeBulkWrite() example

<?php

$bulk = new MongoDB\Driver\BulkWrite();

$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);

$bulk->update(['x' => 2], ['$set' => ['x' => 1]], ['multi' => false, 'upsert' => false]);
$bulk->update(['x' => 3], ['$set' => ['x' => 3]], ['multi' => false, 'upsert' => true]);
$bulk->update(['_id' => 3], ['$set' => ['x' => 3]], ['multi' => false, 'upsert' => true]);

$bulk->insert(['_id' => 4, 'x' => 2]);

$bulk->delete(['x' => 1], ['limit' => 1]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 100);
$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);

printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Matched  %d document(s)\n", $result->getMatchedCount());
printf("Updated  %d document(s)\n", $result->getModifiedCount());
printf("Upserted %d document(s)\n", $result->getUpsertedCount());
printf("Deleted  %d document(s)\n", $result->getDeletedCount());

foreach ($result->getUpsertedIds() as $index => $id) {
    printf('upsertedId[%d]: ', $index);
    var_dump($id);
}

/* If the WriteConcern could not be fulfilled */
if ($writeConcernError = $result->getWriteConcernError()) {
    printf("%s (%d): %s\n", $writeConcernError->getMessage(), $writeConcernError->getCode(), var_export($writeConcernError->getInfo(), true));
}

/* If a write could not happen at all */
foreach ($result->getWriteErrors() as $writeError) {
    printf("Operation#%d: %s (%d)\n", $writeError->getIndex(), $writeError->getMessage(), $writeError->getCode());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Inserted 3 document(s)
Matched  1 document(s)
Updated  1 document(s)
Upserted 2 document(s)
Deleted  1 document(s)
upsertedId[3]: object(MongoDB\BSON\ObjectID)#5 (1) {
  ["oid"]=>
  string(24) "54d3adc3ce7a792f4d703756"
}
upsertedId[4]: int(3)

Voir aussi

  • MongoDB\Driver\BulkWrite
  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\Server::executeBulkWrite() - Exécute une ou plusieurs opérations d'écriture sur ce serveur


Execute a database command

  • « MongoDB\Driver\Manager::executeBulkWrite
  • MongoDB\Driver\Manager::executeQuery »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database command

MongoDB\Driver\Manager::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeCommand — Execute a database command

Description

final public MongoDB\Driver\Cursor MongoDB\Driver\Manager::executeCommand ( string $db , MongoDB\Driver\Command $command [, MongoDB\Driver\ReadPreference $readPreference ] )

Executes command on a server If readPreference is provided, it will be used for server selection; otherwise, the default read preference will be used.

Liste de paramètres

db (string)

Le nom de la base de données sur laquelle la commande sera exécutée.

command (MongoDB\Driver\Command)

La MongoDB\Driver\Command à exécuter.

readPreference (MongoDB\Driver\ReadPreference)

Optionnellement, une MongoDB\Driver\ReadPreference vers laquelle la commande sera routée. Si rien n'est fourni, ce sera les préférences de lecture définies par l' URI de connexion MongoDB.

Valeurs de retour

Retourne un MongoDB\Driver\Cursor en cas de succès.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\AuthenticationException si une identification est nécessaire mais qu'elle échoue
  • Lance une exception MongoDB\Driver\ConnectionException si la connexion au serveur échoue pour une autre raison qu'en raison d'un problème d'identification
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command, issuing a write command to a secondary).

Exemples

Exemple #1 MongoDB\Driver\Manager::executeCommand() with a command returning a single result document

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$command = new MongoDB\Driver\Command(['ping' => 1]);

try {
    $cursor = $manager->executeCommand('admin', $command);
} catch(MongoDB\Driver\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

/* The ping command returns a single result document, so we need to access the
 * first result in the cursor. */
$response = $cursor->toArray()[0];

var_dump($response);

?>

L'exemple ci-dessus va afficher :

array(1) {
  ["ok"]=>
  float(1)
}

Exemple #2 MongoDB\Driver\Manager::executeCommand() with a command returning a cursor

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1, 'y' => 'foo']);
$bulk->insert(['x' => 2, 'y' => 'bar']);
$bulk->insert(['x' => 3, 'y' => 'bar']);
$manager->executeBulkWrite('db.collection', $bulk);

$command = new MongoDB\Driver\Command([
    'aggregate' => 'collection',
    'pipeline' => [
        ['$group' => ['_id' => '$y', 'sum' => ['$sum' => '$x']]],
    ],
    'cursor' => new stdClass,
]);
$cursor = $manager->executeCommand('db', $command);

/* The aggregate command can optionally return its results in a cursor instead
 * of a single result document. In this case, we can iterate on the cursor
 * directly to access those results. */
foreach ($cursor as $document) {
    var_dump($document);
}

?>

L'exemple ci-dessus va afficher :

object(stdClass)#6 (2) {
  ["_id"]=>
  string(3) "bar"
  ["sum"]=>
  int(10)
}
object(stdClass)#7 (2) {
  ["_id"]=>
  string(3) "foo"
  ["sum"]=>
  int(2)
}

Notes

Note:

This method does not take a MongoDB\Driver\WriteConcern parameter. For write commands (e.g. » findAndModify in MongoDB 3.2+), the write concern should be included in the command document itself.

If a secondary readPreference is used, it is the caller's responsibility to ensure that the command can be executed on a secondary. No validation is done by the driver.

Voir aussi

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Server::executeCommand() - Exécute une commande de base de données sur ce serveur


Execute a database query

  • « MongoDB\Driver\Manager::executeCommand
  • MongoDB\Driver\Manager::getServers »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database query

MongoDB\Driver\Manager::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeQuery — Execute a database query

Description

final public MongoDB\Driver\Cursor MongoDB\Driver\Manager::executeQuery ( string $namespace , MongoDB\Driver\Query $query [, MongoDB\Driver\ReadPreference $readPreference ] )

Executes query on a server. If readPreference is provided, it will be used for server selection; otherwise, the default read preference will be used.

Liste de paramètres

namespace (string)

Un espace de noms totalement qualifié (e.g. "databaseName.collectionName")

query (MongoDB\Driver\Query)

La MongoDB\Driver\Query à exécuter.

readPreference (MongoDB\Driver\ReadPreference)

Optionnellement, une MongoDB\Driver\ReadPreference vers laquelle la commande sera routée. Si rien n'est fourni, ce sera les préférences de lecture définies par l' URI de connexion MongoDB.

Valeurs de retour

Retourne un MongoDB\Driver\Cursor en cas de succès.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\AuthenticationException si une identification est nécessaire mais qu'elle échoue
  • Lance une exception MongoDB\Driver\ConnectionException si la connexion au serveur échoue pour une autre raison qu'en raison d'un problème d'identification
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid query operators).

Exemples

Exemple #1 MongoDB\Driver\Manager::executeQuery() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$filter = ['x' => ['$gt' => 1]];
$options = [
    'projection' => ['_id' => 0],
    'sort' => ['x' => -1],
];

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);

foreach ($cursor as $document) {
    var_dump($document);
}

?>

L'exemple ci-dessus va afficher :

object(stdClass)#6 (1) {
  ["x"]=>
  int(3)
}
object(stdClass)#7 (1) {
  ["x"]=>
  int(2)
}

Voir aussi

  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Query
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Server::executeQuery() - Exécute une requête de base de données sur ce serveur


Description

  • « MongoDB\Driver\Manager::executeQuery
  • MongoDB\Driver\Manager::selectServer »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Description

MongoDB\Driver\Manager::getServers

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getServers — Description

Description

final public ReturnType MongoDB\Driver\Manager::getServers ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Manager::getServers()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Select a server matching a read preference

  • « MongoDB\Driver\Manager::getServers
  • MongoDB\Driver\Command »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Select a server matching a read preference

MongoDB\Driver\Manager::selectServer

(mongodb >=1.0.0)

MongoDB\Driver\Manager::selectServer — Select a server matching a read preference

Description

final public MongoDB\Driver\Server MongoDB\Driver\Manager::selectServer ( MongoDB\Driver\ReadPreference $readPreference )

Selects a MongoDB\Driver\Server matching readPreference. This may be used to preselect a server in order to perform version checking before executing an operation.

Liste de paramètres

readPreference (MongoDB\Driver\ReadPreference)

Optionnellement, une MongoDB\Driver\ReadPreference vers laquelle la commande sera routée. Si rien n'est fourni, ce sera les préférences de lecture définies par l' URI de connexion MongoDB.

Valeurs de retour

Returns an MongoDB\Driver\Server matching the read preference.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\AuthenticationException si une identification est nécessaire mais qu'elle échoue
  • Lance une exception MongoDB\Driver\ConnectionException si la connexion au serveur échoue pour une autre raison qu'en raison d'un problème d'identification
  • Throws MongoDB\Driver\Exception\RuntimeException if a server matching the read preference could not be found.

Voir aussi

  • MongoDB\Driver\Server
  • MongoDB\Driver\Manager::getServers() - Description
  • » Server Selection Specification


The MongoDB\Driver\Command class

(mongodb >=1.0.0)

Introduction

The MongoDB\Driver\Command class is a value object that represents a database command.

To provide "Command Helpers" the MongoDB\Driver\Command object should be composed.

Synopsis de la classe

final MongoDB\Driver\Command {
/* Méthodes */
final public __construct ( array|object $document )
}

Exemples

Exemple #1 Composing MongoDB\Driver\Command to provide a helper to create collections

<?php
class CreateCollection {
    protected $cmd = array();

    function __construct($collectionName) {
        $this->cmd["create"] = (string)$collectionName;
    }
    function setAutoIndexId($bool) {
        $this->cmd["autoIndexId"] = (bool)$bool;
    }
    function setCappedCollection($maxBytes, $maxDocuments = false) {
        $this->cmd["capped"] = true;
        $this->cmd["size"]   = (int)$maxBytes;

        if ($maxDocuments) {
            $this->cmd["max"] = (int)$maxDocuments;
        }
    }
    function usePowerOf2Sizes($bool) {
        if ($bool) {
            $this->cmd["flags"] = 1;
        } else {
            $this->cmd["flags"] = 0;
        }
    }
    function setFlags($flags) {
        $this->cmd["flags"] = (int)$flags;
    }
    function getCommand() {
        return new MongoDB\Driver\Command($this->cmd);
    }
    function getCollectionName() {
        return $this->cmd["create"];
    }
}

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$createCollection = new CreateCollection("cappedCollection");
$createCollection->setCappedCollection(64 * 1024);

try {
    $command = $createCollection->getCommand();
    $cursor = $manager->executeCommand("databaseName", $command);
    $response = $cursor->toArray()[0];
    var_dump($response);

    $collstats = ["collstats" => $createCollection->getCollectionName()];
    $cursor = $manager->executeCommand("databaseName", new MongoDB\Driver\Command($collstats));
    $response = $cursor->toArray()[0];
    var_dump($response);
} catch(MongoDB\Driver\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

?>

L'exemple ci-dessus va afficher :

object(MongoDB\Driver\Command)#3 (1) {
  ["command"]=>
  array(3) {
    ["create"]=>
    string(16) "cappedCollection"
    ["capped"]=>
    bool(true)
    ["size"]=>
    int(65536)
  }
}
array(1) {
  ["ok"]=>
  float(1)
}
array(16) {
  ["ns"]=>
  string(29) "databaseName.cappedCollection"
  ["count"]=>
  int(0)
  ["size"]=>
  int(0)
  ["numExtents"]=>
  int(1)
  ["storageSize"]=>
  int(65536)
  ["nindexes"]=>
  int(1)
  ["lastExtentSize"]=>
  float(65536)
  ["paddingFactor"]=>
  float(1)
  ["paddingFactorNote"]=>
  string(101) "paddingFactor is unused and unmaintained in 2.8. It remains hard coded to 1.0 for compatibility only."
  ["userFlags"]=>
  int(0)
  ["capped"]=>
  bool(true)
  ["max"]=>
  int(9223372036854775807)
  ["maxSize"]=>
  int(65536)
  ["totalIndexSize"]=>
  int(8176)
  ["indexSizes"]=>
  object(stdClass)#4 (1) {
    ["_id_"]=>
    int(8176)
  }
  ["ok"]=>
  float(1)
}

Sommaire

  • MongoDB\Driver\Command::__construct — Crée une nouvelle commande


Crée une nouvelle commande

  • « MongoDB\Driver\Command
  • MongoDB\Driver\Query »
  • PHP Manual
  • MongoDB\Driver\Command
  • Crée une nouvelle commande

MongoDB\Driver\Command::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Command::__construct — Crée une nouvelle commande

Description

final public MongoDB\Driver\Command::__construct ( array|object $document )

Liste de paramètres

document

La commande complète à construire.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Command::__construct()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$command = new MongoDB\Driver\Command(array("buildinfo" => 1));

try {
    $cursor = $manager->executeCommand("admin", $command);
    $response = $cursor->toArray()[0];
} catch(MongoDB\Driver\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}
var_dump($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(13) {
  ["version"]=>
  string(14) "2.8.0-rc2-pre-"
  ["gitVersion"]=>
  string(62) "b743d7158f7642f4da6b7eac8320374b3b88dc2e modules: subscription"
  ["OpenSSLVersion"]=>
  string(25) "OpenSSL 1.0.1f 6 Jan 2014"
  ["sysInfo"]=>
  string(104) "Linux infant 3.16.0-24-generic #32-Ubuntu SMP Tue Oct 28 13:07:32 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49"
  ["loaderFlags"]=>
  string(91) "-fPIC -pthread -Wl,-z,now -rdynamic -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,-E"
  ["compilerFlags"]=>
  string(301) "-Wnon-virtual-dtor -Woverloaded-virtual -std=c++11 -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -pipe -Werror -O3 -Wno-unused-local-typedefs -Wno-unused-function -Wno-deprecated-declarations -Wno-unused-but-set-variable -fno-builtin-memcmp -std=c99"
  ["allocator"]=>
  string(8) "tcmalloc"
  ["versionArray"]=>
  array(4) {
    [0]=>
    int(2)
    [1]=>
    int(8)
    [2]=>
    int(0)
    [3]=>
    int(-8)
  }
  ["javascriptEngine"]=>
  string(2) "V8"
  ["bits"]=>
  int(64)
  ["debug"]=>
  bool(false)
  ["maxBsonObjectSize"]=>
  int(16777216)
  ["ok"]=>
  float(1)
}

Voir aussi

  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Cursor


La classe MongoDB\Driver\Query

(mongodb >=1.0.0)

Introduction

La classe MongoDB\Driver\Query est un objet qui représente une requête de base de données.

Synopsis de la classe

final MongoDB\Driver\Query {
/* Méthodes */
final public __construct ( array|object $filter [, array $queryOptions ] )
}

Sommaire

  • MongoDB\Driver\Query::__construct — Construct new Query


Construct new Query

  • « MongoDB\Driver\Query
  • MongoDB\Driver\BulkWrite »
  • PHP Manual
  • MongoDB\Driver\Query
  • Construct new Query

MongoDB\Driver\Query::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Query::__construct — Construct new Query

Description

final public MongoDB\Driver\Query::__construct ( array|object $filter [, array $queryOptions ] )

Liste de paramètres

filter (array|object)

L'» attribut de la requête. Un attribut vide va faire correspondre tous les documents de la collection.

queryOptions

queryOptions
Option | Type | Description
allowPartialResults bool

For queries against a sharded collection, returns partial results from the mongos if some shards are unavailable instead of throwing an error.

Falls back to the deprecated "partial" option if not specified.

awaitData | bool | Use in conjunction with the "tailable" option to block a getMore operation on the cursor temporarily if at the end of data rather than returning no data. After a timeout period, the query returns as normal.
batchSize integer

The number of documents to return in the first batch. Defaults to 101. A batch size of 0 means that the cursor will be established, but no documents will be returned in the first batch.

In versions of MongoDB before 3.2, where queries use the legacy wire protocol OP_QUERY, a batch size of 1 will close the cursor irrespective of the number of matched documents.

collation array|object

» Collation permet aux utilisateurs de spécifier des règles spécifiques au langage pour la comparaison des chaînes, par exemple, des règles pour les majuscules ou les accents. Lors de la spécification d'une collation, le champ "locale" est obligatoire ; tous les autres champs de la collation sont optionnels. Pour la description de ces champs, reportez-vous au » document Collation.

Si la collation n'est pas spécifiée mais que la collection a une collation par défaut, l'opération utilisera la collation spécifiée pour la collection. Si aucune collation n'est spécifiée pour la collection ou pour l'opération, MongoDB utilisera le binaire simple de comparaison utilisé dans les versions précédentes pour les comparaisons des chaînes.

Cette option est disponible en MongoDB 3.4+ et une exception sera émise au moment de l'exécution si elle est spécifiée dans une version antérieure.

comment string

A comment to attach to the query to help interpret and trace query profile data.

Falls back to the deprecated "$comment" modifier if not specified.

exhaust bool

Stream the data down full blast in multiple "more" packages, on the assumption that the client will fully read all data queried. Faster when you are pulling a lot of data and know you want to pull it all down. Note: the client is not allowed to not read all the data unless it closes the connection.

This option is not supported by the find command in MongoDB 3.2+ and will force the driver to use the legacy wire protocol version (i.e. OP_QUERY).

explain bool

If TRUE, the returned MongoDB\Driver\Cursor will contain a single document that describes the process and indexes used to return the query.

Falls back to the deprecated "$explain" modifier if not specified.

This option is not supported by the find command in MongoDB 3.2+ and will only be respected when using the legacy wire protocol version (i.e. OP_QUERY). The » explain command should be used on MongoDB 3.0+.

hint string|array|object

Index specification. Specify either the index name as a string or the index key pattern. If specified, then the query system will only consider plans using the hinted index.

Falls back to the deprecated "hint" option if not specified.

limit integer

The maximum number of documents to return. If unspecified, then defaults to no limit. A limit of 0 is equivalent to setting no limit.

A negative limit is will be interpreted as a positive limit with the "singleBatch" option set to TRUE. This behavior is supported for backwards compatibility, but should be considered deprecated.

max array|object

The exclusive upper bound for a specific index.

Falls back to the deprecated "$max" modifier if not specified.

maxScan integer

Positive integer denoting the maximum number of documents or index keys to scan when executing the query.

Falls back to the deprecated "$maxScan" modifier if not specified.

maxTimeMS integer

The cumulative time limit in milliseconds for processing operations on the cursor. MongoDB aborts the operation at the earliest following interrupt point.

Falls back to the deprecated "$maxTimeMS" modifier if not specified.

min array|object

The inclusive lower bound for a specific index.

Falls back to the deprecated "$min" modifier if not specified.

modifiers | array | » Meta operators modifying the output or behavior of a query. Use of these operators is deprecated in favor of named options.
noCursorTimeout | bool | Prevents the server from timing out idle cursors after an inactivity period (10 minutes).
oplogReplay bool

Internal use for replica sets. To use oplogReplay, you must include the following condition in the filter:

[ 'ts' => [ '$gte' => <timestamp> ] ]
projection | array|object | The » projection specification to determine which fields to include in the returned documents.
returnKey bool

If TRUE, returns only the index keys in the resulting documents. Default value is FALSE. If TRUE and the find command does not use an index, the returned documents will be empty.

Falls back to the deprecated "$returnKey" modifier if not specified.

showRecordId bool

Determines whether to return the record identifier for each document. If TRUE, adds a top-level "$recordId" field to the returned documents.

Falls back to the deprecated "$showDiskLoc" modifier if not specified.

singleBatch | bool | Determines whether to close the cursor after the first batch. Defaults to FALSE.
readConcern MongoDB\Driver\ReadConcern

Specifies the » read concern. The default level is "local".

To use a read concern level of "majority", you must use the WiredTiger storage engine with MongoDB 3.2+ and enable the feature in the server configuration.

skip | integer | Number of documents to skip. Defaults to 0.
slaveOk | bool | Allow query of replica set secondaries
sort array|object

The sort specification for the ordering of the results.

Falls back to the deprecated "$orderby" modifier if not specified.

snapshot bool

Prevents the cursor from returning a document more than once because of an intervening write operation.

Falls back to the deprecated "$snapshot" modifier if not specified.

tailable | bool | Returns a tailable cursor for a capped collection.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Historique

Version | Description
1.2.0

Added the "allowPartialResults", "collation", "comment", "hint", "max", "maxScan", "maxTimeMS", "min", "returnKey", "showRecordId", and "snapshot" options.

Renamed the "partial" option to "allowPartialResults". For backwards compatibility, "partial" will still be read if "allowPartialResults" is not specified.

Removed the "slaveOk" option, which is obsolete. For queries using the legacy wire protocol OP_QUERY, the driver will set the slaveOk bit as needed in accordance with the » Server Selection Specification.

1.1.0 | Added the "readConcern" option.

Exemples

Exemple #1 MongoDB\Driver\Query::__construct() example

<?php
/* Select only documents authord by "bjori" with at least 100 views */
$filter = [
    'author' => 'bjori',
    'views' => [
        '$gte' => 100,
    ],
];

$options = [
    /* Only return the following fields in the matching documents */
    'projection' => [
        'title' => 1,
        'article' => 1,
    ],
    /* Return the documents in descending order of views */
    'sort' => [
        'views' => -1
    ],
);

$query = new MongoDB\Driver\Query($filter, $options);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$readPreference = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$cursor = $manager->executeQuery('databaseName.collectionName', $query, $readPreference);

foreach($cursor as $document) {
    var_dump($document);
}

?>

Voir aussi

  • MongoDB\Driver\Manager::executeQuery() - Execute a database query
  • MongoDB\Driver\Cursor


The MongoDB\Driver\BulkWrite class

(mongodb >=1.0.0)

Introduction

The MongoDB\Driver\BulkWrite collects one or more write operations that should be sent to the server. After adding any number of insert, update, and delete operations, the collection may be executed via MongoDB\Driver\Manager::executeBulkWrite().

Write operations may either be ordered (default) or unordered. Ordered write operations are sent to the server, in the order provided, for serial execution. If a write fails, any remaining operations will be aborted. Unordered operations are sent to the server in an arbitrary order where they may be executed in parallel. Any errors that occur are reported after all operations have been attempted.

Synopsis de la classe

final MongoDB\Driver\BulkWrite implements Countable {
/* Méthodes */
public __construct ([ array $options ] )
public int count ( void )
public void delete ( array|object $filter [, array $deleteOptions ] )
public mixed insert ( array|object $document )
public void update ( array|object $filter , array|object $newObj [, array $updateOptions ] )
}

Exemples

Exemple #1 Mixed write operations are grouped by type

Mixed write operations (i.e. inserts, updates, and deletes) will be assembled into typed write commands to be sent sequentially to the server.

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(['x' => 2], ['$set' => ['x' => 1]]);
$bulk->insert(['_id' => 3, 'x' => 3]);
$bulk->delete(['x' => 1]);

?>

Will result in four write commands (i.e. roundtrips) being executed. Since the operations are ordered, the third insertion cannot be sent until the preceding update is executed.

Exemple #2 Ordered write operations causing an error

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->delete([]);
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3, 'hello' => 'world']);
$bulk->update(['_id' => 3], ['$set' => ['hello' => 'earth']]);
$bulk->insert(['_id' => 4, 'hello' => 'pluto']);
$bulk->update(['_id' => 4], ['$set' => ['hello' => 'moon']]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 5]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);

try {
    $result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
    $result = $e->getWriteResult();

    // Check if the write concern could not be fulfilled
    if ($writeConcernError = $result->getWriteConcernError()) {
        printf("%s (%d): %s\n",
            $writeConcernError->getMessage(),
            $writeConcernError->getCode(),
            var_export($writeConcernError->getInfo(), true)
        );
    }

    // Check if any write operations did not complete at all
    foreach ($result->getWriteErrors() as $writeError) {
        printf("Operation#%d: %s (%d)\n",
            $writeError->getIndex(),
            $writeError->getMessage(),
            $writeError->getCode()
        );
    }
} catch (MongoDB\Driver\Exception\Exception $e) {
    printf("Other error: %s\n", $e->getMessage());
    exit;
}

printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Updated  %d document(s)\n", $result->getModifiedCount());

?>

L'exemple ci-dessus va afficher :

Operation#7: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 3 } (11000)
Inserted 4 document(s)
Updated  2 document(s)

If the write concern could not be fullfilled, the example above would output something like:

waiting for replication timed out (64): array (
  'wtimeout' => true,
)
Operation#7: E11000 duplicate key error index: databaseName.collectionName.$_id_ dup key: { : 3 } (11000)
Inserted 4 document(s)
Updated  2 document(s)

If we execute the example above, but allow for unordered writes:

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => false]);
/* ... */

?>

L'exemple ci-dessus va afficher :

Operation#7: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 3 } (11000)
Operation#8: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 4 } (11000)
Inserted 5 document(s)
Updated  2 document(s)

Voir aussi

  • MongoDB\Driver\Manager::executeBulkWrite()
  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\WriteConcernError
  • MongoDB\Driver\WriteError

Sommaire

  • MongoDB\Driver\BulkWrite::__construct — Create a new BulkWrite
  • MongoDB\Driver\BulkWrite::count — Count number of write operations in the bulk
  • MongoDB\Driver\BulkWrite::delete — Add a delete operation to the bulk
  • MongoDB\Driver\BulkWrite::insert — Add an insert operation to the bulk
  • MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk


Create a new BulkWrite

  • « MongoDB\Driver\BulkWrite
  • MongoDB\Driver\BulkWrite::count »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Create a new BulkWrite

MongoDB\Driver\BulkWrite::__construct

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::__construct — Create a new BulkWrite

Description

public MongoDB\Driver\BulkWrite::__construct ([ array $options ] )

Constructs a new ordered (default) or unordered MongoDB\Driver\BulkWrite.

Liste de paramètres

options (array)

options
Option | Type | Description | Default
ordered | bool | Ordered operations (TRUE) are executed serially on the MongoDB server, while unordered operations (FALSE) are sent to the server in an arbitrary order and may be executed in parallel. | TRUE

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\BulkWrite::__construct() example

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->delete([]);
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(
    ['x' => 2],
    ['$set' => ['x' => 1]],
    ['limit' => 1, 'upsert' => false]
);
$bulk->delete(['x' => 1], ['limit' => 1]);
$bulk->update(
    ['_id' => 3],
    ['$set' => ['x' => 3]],
    ['limit' => 1, 'upsert' => true]
);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);

try {
    $result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
    $result = $e->getWriteResult();

    // Check if the write concern could not be fulfilled
    if ($writeConcernError = $result->getWriteConcernError()) {
        printf("%s (%d): %s\n",
            $writeConcernError->getMessage(),
            $writeConcernError->getCode(),
            var_export($writeConcernError->getInfo(), true)
        );
    }

    // Check if any write operations did not complete at all
    foreach ($result->getWriteErrors() as $writeError) {
        printf("Operation#%d: %s (%d)\n",
            $writeError->getIndex(),
            $writeError->getMessage(),
            $writeError->getCode()
        );
    }
} catch (MongoDB\Driver\Exception\Exception $e) {
    printf("Other error: %s\n", $e->getMessage());
    exit;
}

printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Updated  %d document(s)\n", $result->getModifiedCount());
printf("Upserted %d document(s)\n", $result->getUpsertedCount());
printf("Deleted  %d document(s)\n", $result->getDeletedCount());

?>

L'exemple ci-dessus va afficher :

Inserted 2 document(s)
Updated  1 document(s)
Upserted 1 document(s)
Deleted  1 document(s)

Voir aussi

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult


Count number of write operations in the bulk

  • « MongoDB\Driver\BulkWrite::__construct
  • MongoDB\Driver\BulkWrite::delete »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Count number of write operations in the bulk

MongoDB\Driver\BulkWrite::count

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::count — Count number of write operations in the bulk

Description

public int MongoDB\Driver\BulkWrite::count ( void )

Returns the number of write operations added to the MongoDB\Driver\BulkWrite object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns number of write operations added to the MongoDB\Driver\BulkWrite object.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Historique

Version | Description
1.2.0 | Returns the number of write operations added to the MongoDB\Driver\BulkWrite object. Earlier versions returned the expected number of client-to-server roundtrips required to execute all write operations.

Exemples

Exemple #1 MongoDB\Driver\BulkWrite::count() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(['x' => 2], ['$set' => ['x' => 1]]);
$bulk->delete(['x' => 1]);

var_dump(count($bulk));

?>

L'exemple ci-dessus va afficher :

int(4)


Add a delete operation to the bulk

  • « MongoDB\Driver\BulkWrite::count
  • MongoDB\Driver\BulkWrite::insert »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Add a delete operation to the bulk

MongoDB\Driver\BulkWrite::delete

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::delete — Add a delete operation to the bulk

Description

public void MongoDB\Driver\BulkWrite::delete ( array|object $filter [, array $deleteOptions ] )

Adds a delete operation to the MongoDB\Driver\BulkWrite.

Liste de paramètres

filter (array|object)

L'» attribut de la requête. Un attribut vide va faire correspondre tous les documents de la collection.

deleteOptions

deleteOptions
Option | Type | Description | Default
collation array|object

» Collation permet aux utilisateurs de spécifier des règles spécifiques au langage pour la comparaison des chaînes, par exemple, des règles pour les majuscules ou les accents. Lors de la spécification d'une collation, le champ "locale" est obligatoire ; tous les autres champs de la collation sont optionnels. Pour la description de ces champs, reportez-vous au » document Collation.

Si la collation n'est pas spécifiée mais que la collection a une collation par défaut, l'opération utilisera la collation spécifiée pour la collection. Si aucune collation n'est spécifiée pour la collection ou pour l'opération, MongoDB utilisera le binaire simple de comparaison utilisé dans les versions précédentes pour les comparaisons des chaînes.

Cette option est disponible en MongoDB 3.4+ et une exception sera émise au moment de l'exécution si elle est spécifiée dans une version antérieure.

limit | bool | Delete all matching documents (FALSE), or only the first matching document (TRUE) | FALSE

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Historique

Version | Description
1.2.0 | Added the "collation" option.

Exemples

Exemple #1 MongoDB\Driver\BulkWrite::delete() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->delete(['x' => 1], ['limit' => 1]);
$bulk->delete(['x' => 2], ['limit' => 0]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);

?>

Voir aussi

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult


Add an insert operation to the bulk

  • « MongoDB\Driver\BulkWrite::delete
  • MongoDB\Driver\BulkWrite::update »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Add an insert operation to the bulk

MongoDB\Driver\BulkWrite::insert

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::insert — Add an insert operation to the bulk

Description

public mixed MongoDB\Driver\BulkWrite::insert ( array|object $document )

Adds an insert operation to the MongoDB\Driver\BulkWrite.

Liste de paramètres

document (array|object)

A document to insert.

Valeurs de retour

If the document did not have an _id, a MongoDB\BSON\ObjectID will be generated and returned; otherwise, no value is returned.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\BulkWrite::insert() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;

$document1 = ['title' => 'one'];
$document2 = ['_id' => 'custom ID', 'title' => 'two'];
$document3 = ['_id' => new MongoDB\BSON\ObjectID, 'title' => 'three'];

$_id1 = $bulk->insert($document1);
$_id2 = $bulk->insert($document2);
$_id3 = $bulk->insert($document3);

var_dump($_id1, $_id2, $_id3);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(MongoDB\BSON\ObjectID)#3 (1) {
  ["oid"]=>
  string(24) "54d51146bd21b91405401d92"
}
NULL
NULL

Voir aussi

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult
  • MongoDB\BSON\ObjectID
  • MongoDB\BSON\Persistable


Add an update operation to the bulk

  • « MongoDB\Driver\BulkWrite::insert
  • MongoDB\Driver\WriteConcern »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Add an update operation to the bulk

MongoDB\Driver\BulkWrite::update

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk

Description

public void MongoDB\Driver\BulkWrite::update ( array|object $filter , array|object $newObj [, array $updateOptions ] )

Adds an update operation to the MongoDB\Driver\BulkWrite.

Liste de paramètres

filter (array|object)

L'» attribut de la requête. Un attribut vide va faire correspondre tous les documents de la collection.

newObj (array|object)

A document containing either update operators (e.g. $set) or a replacement document (i.e. only field:value expressions).

updateOptions

updateOptions
Option | Type | Description | Default
collation array|object

» Collation permet aux utilisateurs de spécifier des règles spécifiques au langage pour la comparaison des chaînes, par exemple, des règles pour les majuscules ou les accents. Lors de la spécification d'une collation, le champ "locale" est obligatoire ; tous les autres champs de la collation sont optionnels. Pour la description de ces champs, reportez-vous au » document Collation.

Si la collation n'est pas spécifiée mais que la collection a une collation par défaut, l'opération utilisera la collation spécifiée pour la collection. Si aucune collation n'est spécifiée pour la collection ou pour l'opération, MongoDB utilisera le binaire simple de comparaison utilisé dans les versions précédentes pour les comparaisons des chaînes.

Cette option est disponible en MongoDB 3.4+ et une exception sera émise au moment de l'exécution si elle est spécifiée dans une version antérieure.

multi | bool | Update only the first matching document (multi=false), or all matching documents (multi=true). | FALSE
upsert | bool | If filter does not match an existing document, insert a single document. The document will be created from newObj if it is a replacement document (i.e. no update operators); otherwise, the operators in newObj will be applied to filter to create the new document. | FALSE

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Historique

Version | Description
1.2.0 | Added the "collation" option.

Exemples

Exemple #1 MongoDB\Driver\BulkWrite::update() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->update(
    ['x' => 2],
    ['$set' => ['y' => 3]],
    ['multi' => false, 'upsert' => false]
);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);

?>

Voir aussi

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult


La classe MongoDB\Driver\WriteConcern

(mongodb >=1.0.0)

Introduction

MongoDB\Driver\WriteConcern contrôle le comportement d'une opération d'écriture, spécifie le niveau de garantie de l'écriture pour les jeux de réplication.

Synopsis de la classe

final MongoDB\Driver\WriteConcern {
/* Constantes */
const string MAJORITY = majority ;
/* Méthodes */
final public object bsonSerialize ( void )
final public __construct ( string $wstring [, integer $wtimeout [, boolean $journal [, boolean $fsync ]]] )
final public bool|null getJournal ( void )
final public string|int|null getW ( void )
final public int getWtimeout ( void )
}

Constantes pré-définies

MongoDB\Driver\WriteConcern::MAJORITY

La majorité de tous les membres du jeux ; arbitraires, les mêmes non-votants, les membres passifs, les membres cachés, et les membres en attente sont tous inclus dans la définition d'une préoccupation d'écriture de la majorité.

Sommaire

  • MongoDB\Driver\WriteConcern::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\WriteConcern::__construct — Construit un WriteConcern immutable
  • MongoDB\Driver\WriteConcern::getJournal — Returns the WriteConcern's "journal" option
  • MongoDB\Driver\WriteConcern::getW — Returns the WriteConcern's "w" option
  • MongoDB\Driver\WriteConcern::getWtimeout — Returns the WriteConcern's "wtimeout" option


Returns an object for BSON serialization

  • « MongoDB\Driver\WriteConcern
  • MongoDB\Driver\WriteConcern::__construct »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns an object for BSON serialization

MongoDB\Driver\WriteConcern::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\WriteConcern::bsonSerialize — Returns an object for BSON serialization

Description

final public object MongoDB\Driver\WriteConcern::bsonSerialize ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an object for serializing the WriteConcern as BSON.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\WriteConcern::bsonSerialize() with majority write concern

<?php

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY);
var_dump($wc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($wc));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)#2 (1) {
  ["w"]=>
  string(8) "majority"
}

{ "w" : "majority" }

Exemple #2 MongoDB\Driver\WriteConcern::bsonSerialize() with wtimeout and journal

<?php

$wc = new MongoDB\Driver\WriteConcern(2, 1000, true);
var_dump($wc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($wc));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)#2 (3) {
  ["w"]=>
  int(2)
  ["j"]=>
  bool(true)
  ["wtimeout"]=>
  int(1000)
}

{ "w" : 2, "j" : true, "wtimeout" : 1000 }

Voir aussi

  • MongoDB\BSON\Serializable::bsonSerialize()
  • » Write Concern reference


Construit un WriteConcern immutable

  • « MongoDB\Driver\WriteConcern::bsonSerialize
  • MongoDB\Driver\WriteConcern::getJournal »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Construit un WriteConcern immutable

MongoDB\Driver\WriteConcern::__construct

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::__construct — Construit un WriteConcern immutable

Description

final public MongoDB\Driver\WriteConcern::__construct ( string $wstring [, integer $wtimeout [, boolean $journal [, boolean $fsync ]]] )

Crée un nouveau WriteConcern.

Liste de paramètres

wstring

Préoccupation d'écriture
Valeur | Description
1 integer

Fourni une reconnaissance des opérations en écriture sur un mongod autonomne ou sur le primaire d'un jeux de réplication.

C'est la valeur par défaut lorsqu'aucune préoccupation d'écriture n'est fournie.

0 | Désactive la reconnaissance basique des opérations en écriture, mais retourne les informations sur les exceptions survenues sur les sockets, ainsi que les erreurs réseaux à l'application.
<Nombre plus grand que 1> | Garantie que les opérations en écriture sont propagées avec succès vers les membres spécifiés du jeux de réplication, incluant le primaire.
MongoDB\Driver\WriteConcern::MAJORITY | Confirme que les opérations en écriture ont été propagées à la majorité du jeux de réplication configurés : une majorité des membres configurés doivent avoir la reconnaissance des opérations en écriture avant de retourner le succès de l'opération.
string | Une valeur WriteConcern sous forme de chaîne de caractères est interprétée comme une valeur TagSet. Au moins un noeud dans le TagSet doit reconnaitre l'écriture.

wtimeout

Délai d'attente maximal (en millisecondes) avant que les secondaires n'échouent.

wtimeout fera que les opérations en écriture vont retournées une erreur (WriteConcernError) après le délai spécifié. Lorsque ces opérations en écriture retournent, MongoDB ne va pas annuler les données modifiées avant que les préoccupations en écriture n'atteignent le délai limite wtimeout.

Délai d'attente maximal des préoccupations d'écriture
Valeur | Description
0 | Bloc indéfiniement. C'est le comportement par défaut.
<Plus grand que 0> | Nombre de millisecondes à attendre avant de retourner.

journal

Attente avant que mongod n'applique l'écriture au journal.

fsync

Attente avant que l'écriture ne soit appliqué au disque.

Note:

Ne peut être utilisé avec le paramètre journal.

Note:

Cette option n'est pas recommandée.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteConcern::__construct()

<?php
/* Demande une confirmation des requêtes en écriture pour la majorité des noeuds
   du jeux de réplication */
$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 500);

/* Demande une confirmation des requêtes en écriture, configurée par la balise
   "MultipleDC" */
$wc = new MongoDB\Driver\WriteConcern("MultipleDC", 500);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  •


Returns the WriteConcern's "journal" option

  • « MongoDB\Driver\WriteConcern::__construct
  • MongoDB\Driver\WriteConcern::getW »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns the WriteConcern's "journal" option

MongoDB\Driver\WriteConcern::getJournal

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getJournal — Returns the WriteConcern's "journal" option

Description

final public bool|null MongoDB\Driver\WriteConcern::getJournal ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the WriteConcern's "journal" option.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\WriteConcern::getJournal() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getJournal());

$wc = new MongoDB\Driver\WriteConcern(1, 0, true);
var_dump($wc->getJournal());

$wc = new MongoDB\Driver\WriteConcern(1, 0, false);
var_dump($wc->getJournal());

?>

L'exemple ci-dessus va afficher :

NULL
bool(true)
bool(false)

Voir aussi

  • » Write Concern reference


Returns the WriteConcern's "w" option

  • « MongoDB\Driver\WriteConcern::getJournal
  • MongoDB\Driver\WriteConcern::getWtimeout »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns the WriteConcern's "w" option

MongoDB\Driver\WriteConcern::getW

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getW — Returns the WriteConcern's "w" option

Description

final public string|int|null MongoDB\Driver\WriteConcern::getW ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the WriteConcern's "w" option.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\WriteConcern::getW() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getW());

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY);
var_dump($wc->getW());

?>

L'exemple ci-dessus va afficher :

int(1)
string(8) "majority"

Voir aussi

  • » Write Concern reference


Returns the WriteConcern's "wtimeout" option

  • « MongoDB\Driver\WriteConcern::getW
  • MongoDB\Driver\ReadPreference »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns the WriteConcern's "wtimeout" option

MongoDB\Driver\WriteConcern::getWtimeout

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getWtimeout — Returns the WriteConcern's "wtimeout" option

Description

final public int MongoDB\Driver\WriteConcern::getWtimeout ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the WriteConcern's "wtimeout" option.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\WriteConcern::getWtimeout() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getWtimeout());

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 3000);
var_dump($wc->getWtimeout());

?>

L'exemple ci-dessus va afficher :

int(0)
int(3000)

Voir aussi

  • » Write Concern reference


La classe MongoDB\Driver\ReadPreference

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

final MongoDB\Driver\ReadPreference {
/* Constantes */
const integer RP_PRIMARY = 1 ;
const integer RP_PRIMARY_PREFERRED = 5 ;
const integer RP_SECONDARY = 2 ;
const integer RP_SECONDARY_PREFERRED = 6 ;
const integer RP_NEAREST = 10 ;
/* Méthodes */
final public object bsonSerialize ( void )
final public __construct ( string $readPreference [, array $tagSets ] )
final public integer getMode ( void )
final public array getTagSets ( void )
}

Constantes pré-définies

MongoDB\Driver\ReadPreference::RP_PRIMARY

MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED

MongoDB\Driver\ReadPreference::RP_SECONDARY

MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED

MongoDB\Driver\ReadPreference::RP_NEAREST

Sommaire

  • MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\ReadPreference::__construct — Description
  • MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option
  • MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option


Returns an object for BSON serialization

  • « MongoDB\Driver\ReadPreference
  • MongoDB\Driver\ReadPreference::__construct »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns an object for BSON serialization

MongoDB\Driver\ReadPreference::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization

Description

final public object MongoDB\Driver\ReadPreference::bsonSerialize ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an object for serializing the ReadPreference as BSON.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\ReadPreference::bsonSerialize() with primary read preference

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
var_dump($rp->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)#2 (1) {
  ["mode"]=>
  string(7) "primary"
}

{ "mode" : "primary" }

Exemple #2 MongoDB\Driver\ReadPreference::bsonSerialize() with secondary read preference and tag sets

<?php

$rp = new MongoDB\Driver\ReadPreference(
    MongoDB\Driver\ReadPreference::RP_SECONDARY,
    [
        ['dc' => 'ny'],
        ['dc' => 'sf', 'use' => 'reporting'],
        []
    ]
);
var_dump($rp->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)#2 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["tags"]=>
  array(3) {
    [0]=>
    object(stdClass)#1 (1) {
      ["dc"]=>
      string(2) "ny"
    }
    [1]=>
    object(stdClass)#5 (2) {
      ["dc"]=>
      string(2) "sf"
      ["use"]=>
      string(9) "reporting"
    }
    [2]=>
    object(stdClass)#4 (0) {
    }
  }
}

{ "mode" : "secondary", "tags" : [ { "dc" : "ny" }, { "dc" : "sf", "use" : "reporting" }, {  } ] }

Voir aussi

  • MongoDB\BSON\Serializable::bsonSerialize()
  • » Read Preference reference


Description

  • « MongoDB\Driver\ReadPreference::bsonSerialize
  • MongoDB\Driver\ReadPreference::getMode »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Description

MongoDB\Driver\ReadPreference::__construct

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::__construct — Description

Description

final public MongoDB\Driver\ReadPreference::__construct ( string $readPreference [, array $tagSets ] )

Liste de paramètres

readPreference

tagSets

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\ReadPreference::__construct()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Returns the ReadPreference's "mode" option

  • « MongoDB\Driver\ReadPreference::__construct
  • MongoDB\Driver\ReadPreference::getTagSets »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "mode" option

MongoDB\Driver\ReadPreference::getMode

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option

Description

final public integer MongoDB\Driver\ReadPreference::getMode ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the ReadPreference's "mode" option.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\ReadPreference::getMode() example

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_NEAREST);
var_dump($rp->getMode());

?>

L'exemple ci-dessus va afficher :

int(1)
int(5)
int(2)
int(6)
int(10)

Voir aussi

  • » Read Preference reference


Returns the ReadPreference's "tagSets" option

  • « MongoDB\Driver\ReadPreference::getMode
  • MongoDB\Driver\ReadConcern »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "tagSets" option

MongoDB\Driver\ReadPreference::getTagSets

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option

Description

final public array MongoDB\Driver\ReadPreference::getTagSets ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the ReadPreference's "tagSets" option.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\ReadPreference::getTagSets() example

<?php

$mode = MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED);

/* Null and an empty array both denote no tag set preference. */
$rp = new MongoDB\Driver\ReadPreference($mode, null);
var_dump($rp->getTagSets());

$rp = new MongoDB\Driver\ReadPreference($mode, []);
var_dump($rp->getTagSets());

/* Prefer a node in New York, but fall back to any available node. */
$rp = new MongoDB\Driver\ReadPreference($mode, [['dc' => 'ny']]);
var_dump($rp->getTagSets());

/* Prefer a node in the New York, followed by a node in San Francisco that is
   labeled for reporting usage, and finally fall back to any available node. */
$rp = new MongoDB\Driver\ReadPreference($mode, [
  ['dc' => 'ny'],
  ['dc' => 'sf', 'use' => 'reporting'],
  [],
]);
var_dump($rp->getTagSets());

?>

L'exemple ci-dessus va afficher :

array(0) {
}
array(0) {
}
array(2) {
  [0]=>
  array(1) {
    ["dc"]=>
    string(2) "ny"
  }
  [1]=>
  array(0) {
  }
}
array(3) {
  [0]=>
  array(1) {
    ["dc"]=>
    string(2) "ny"
  }
  [1]=>
  array(2) {
    ["dc"]=>
    string(2) "sf"
    ["use"]=>
    string(9) "reporting"
  }
  [2]=>
  array(0) {
  }
}

Voir aussi

  • » Read Preference reference


The MongoDB\Driver\ReadConcern class

(mongodb >=1.1.0)

Introduction

MongoDB\Driver\ReadConcern controls the level of isolation for read operations for replica sets and replica set shards. This option requires the WiredTiger storage engine and MongoDB 3.2 or later.

Synopsis de la classe

final MongoDB\Driver\ReadConcern implements MongoDB\BSON\Serializable {
/* Constants */
const string LINEARIZABLE = linearizable ;
const string LOCAL = local ;
const string MAJORITY = majority ;
/* Méthodes */
final public object bsonSerialize ( void )
final public __construct ([ string $level ] )
final public string|null getLevel ( void )
}

Constantes pré-définies

MongoDB\Driver\ReadConcern::LINEARIZABLE

A linearizable read avoids returning reads from a stale primary (one that has already been superseded by a new primary but doesn't know it yet). It is important to note that this read concern level does not by itself produce linearizable reads; they must be issued in conjunction with MongoDB\Driver\WriteConcern::MAJORITY writes to the same document(s) in order to be linearizable.

MongoDB\Driver\ReadConcern::LOCAL

Queries using this read concern will return the node's most recent copy of the data. This provides no guarantee that the data has been written to a majority of the nodes (i.e. it may be rolled back).

This is the default read concern level.

MongoDB\Driver\ReadConcern::MAJORITY

Queries using this read concern will return the node's most recent copy of the data confirmed as having been written to a majority of the nodes (i.e. the data cannot be rolled back).

Historique

Version | Description
1.2.0 | Added the MongoDB\Driver\ReadConcern::LINEARIZABLE constant.

Sommaire

  • MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\ReadConcern::__construct — Construct immutable ReadConcern
  • MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option


Returns an object for BSON serialization

  • « MongoDB\Driver\ReadConcern
  • MongoDB\Driver\ReadConcern::__construct »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Returns an object for BSON serialization

MongoDB\Driver\ReadConcern::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization

Description

final public object MongoDB\Driver\ReadConcern::bsonSerialize ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an object for serializing the ReadConcern as BSON.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\ReadConcern::bsonSerialize() with empty read concern

<?php

$rc = new MongoDB\Driver\ReadConcern;
var_dump($rc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rc));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)#2 (0) {
}

{ }

Exemple #2 MongoDB\Driver\ReadConcern::bsonSerialize() with local read concern

<?php

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL);
var_dump($rc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rc));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)#2 (1) {
  ["level"]=>
  string(5) "local"
}

{ "level" : "local" }

Voir aussi

  • MongoDB\BSON\Serializable::bsonSerialize()
  • » Read Concern reference


Construct immutable ReadConcern

  • « MongoDB\Driver\ReadConcern::bsonSerialize
  • MongoDB\Driver\ReadConcern::getLevel »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Construct immutable ReadConcern

MongoDB\Driver\ReadConcern::__construct

(mongodb >=1.0.0)

MongoDB\Driver\ReadConcern::__construct — Construct immutable ReadConcern

Description

final public MongoDB\Driver\ReadConcern::__construct ([ string $level ] )

Creates a new ReadConcern.

Liste de paramètres

level

Read concern
Value | Description
MongoDB\Driver\ReadConcern::LOCAL | Queries using this read concern will return the node's most recent copy of the data. This provides no guarantee that the data has been written to a majority of the nodes (i.e. it may be rolled back). This is the default read concern for MongoDB.
MongoDB\Driver\ReadConcern::MAJORITY | Queries using this read concern will return the node's most recent copy of the data confirmed as having been written to a majority of the nodes (i.e. the data cannot be rolled back).

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\ReadConcern::__construct() example

<?php

/* Unspecified read isolation level (uses the server's default behavior) */
$rc = new MongoDB\Driver\ReadConcern();

/* Request read isolation from a single replica set node */
$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL);

/* Request read isolation from a majority of the replica set nodes */
$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::MAJORITY);

?>

Voir aussi

  • » Read Concern reference


Returns the ReadConcern's "level" option

  • « MongoDB\Driver\ReadConcern::__construct
  • MongoDB\Driver\Cursor »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Returns the ReadConcern's "level" option

MongoDB\Driver\ReadConcern::getLevel

(mongodb >=1.0.0)

MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option

Description

final public string|null MongoDB\Driver\ReadConcern::getLevel ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the ReadConcern's "level" option.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\ReadConcern::getLevel() example

<?php

$rc = new MongoDB\Driver\ReadConcern();
var_dump($rc->getLevel());

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL);
var_dump($rc->getLevel());

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::MAJORITY);
var_dump($rc->getLevel());

?>

L'exemple ci-dessus va afficher :

NULL
string(5) "local"
string(8) "majority"

Voir aussi

  • » Read Concern reference


La classe MongoDB\Driver\Cursor

(mongodb >=1.0.0)

Introduction

La classe MongoDB\Driver\Cursor encapsule le résultat d'une commande ou d'une requête MongoDB, pouvant être retournée par, respectivement, MongoDB\Driver\Manager::executeCommand() ou MongoDB\Driver\Manager::executeQuery().

Synopsis de la classe

MongoDB\Driver\Cursor implements Traversable {
/* Méthodes */
final public __construct ( Server $server , string $responseDocument )
final public MongoDB\Driver\CursorId getId ( void )
final public MongoDB\Driver\Server getServer ( void )
final public bool isDead ( void )
final public void setTypeMap ( array $typemap )
final public array toArray ( void )
}

Sommaire

  • MongoDB\Driver\Cursor::__construct — Description
  • MongoDB\Driver\Cursor::getId — Retourne le CursorId pour ce curseur
  • MongoDB\Driver\Cursor::getServer — Retourne l'objet Server sur lequel le curseur est attaché
  • MongoDB\Driver\Cursor::isDead — Vérifie si un curseur est toujours disponible
  • MongoDB\Driver\Cursor::setTypeMap — Défini un type de carte à utiliser pour la délinéarisation BSON
  • MongoDB\Driver\Cursor::toArray — Retourne un tableau de tous les documents résultants pour ce curseur


Description

  • « MongoDB\Driver\Cursor
  • MongoDB\Driver\Cursor::getId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Description

MongoDB\Driver\Cursor::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::__construct — Description

Description

final public MongoDB\Driver\Cursor::__construct ( Server $server , string $responseDocument )

Liste de paramètres

server

responseDocument

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Cursor::__construct()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Retourne le CursorId pour ce curseur

  • « MongoDB\Driver\Cursor::__construct
  • MongoDB\Driver\Cursor::getServer »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Retourne le CursorId pour ce curseur

MongoDB\Driver\Cursor::getId

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::getId — Retourne le CursorId pour ce curseur

Description

final public MongoDB\Driver\CursorId MongoDB\Driver\Cursor::getId ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Cursor::getId()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Retourne l'objet Server sur lequel le curseur est attaché

  • « MongoDB\Driver\Cursor::getId
  • MongoDB\Driver\Cursor::isDead »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Retourne l'objet Server sur lequel le curseur est attaché

MongoDB\Driver\Cursor::getServer

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::getServer — Retourne l'objet Server sur lequel le curseur est attaché

Description

final public MongoDB\Driver\Server MongoDB\Driver\Cursor::getServer ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Cursor::getServer()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Vérifie si un curseur est toujours disponible

  • « MongoDB\Driver\Cursor::getServer
  • MongoDB\Driver\Cursor::setTypeMap »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Vérifie si un curseur est toujours disponible

MongoDB\Driver\Cursor::isDead

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::isDead — Vérifie si un curseur est toujours disponible

Description

final public bool MongoDB\Driver\Cursor::isDead ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Cursor::isDead()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Défini un type de carte à utiliser pour la délinéarisation BSON

  • « MongoDB\Driver\Cursor::isDead
  • MongoDB\Driver\Cursor::toArray »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Défini un type de carte à utiliser pour la délinéarisation BSON

MongoDB\Driver\Cursor::setTypeMap

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::setTypeMap — Défini un type de carte à utiliser pour la délinéarisation BSON

Description

final public void MongoDB\Driver\Cursor::setTypeMap ( array $typemap )

Liste de paramètres

typemap

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Cursor::setTypeMap()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Retourne un tableau de tous les documents résultants pour ce curseur

  • « MongoDB\Driver\Cursor::setTypeMap
  • MongoDB\Driver\CursorId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Retourne un tableau de tous les documents résultants pour ce curseur

MongoDB\Driver\Cursor::toArray

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::toArray — Retourne un tableau de tous les documents résultants pour ce curseur

Description

final public array MongoDB\Driver\Cursor::toArray ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Cursor::toArray()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe MongoDB\Driver\CursorId

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

final MongoDB\Driver\CursorId {
/* Méthodes */
final public __construct ( string $id )
final public ReturnType __toString ( void )
}

Sommaire

  • MongoDB\Driver\CursorId::__construct — Description
  • MongoDB\Driver\CursorId::__toString — Description


Description

  • « MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::__toString »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Description

MongoDB\Driver\CursorId::__construct

(mongodb >=1.0.0)

MongoDB\Driver\CursorId::__construct — Description

Description

final public MongoDB\Driver\CursorId::__construct ( string $id )

Liste de paramètres

id

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\CursorId::__construct()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « MongoDB\Driver\CursorId::__construct
  • MongoDB\Driver\Server »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Description

MongoDB\Driver\CursorId::__toString

(mongodb >=1.0.0)

MongoDB\Driver\CursorId::__toString — Description

Description

final public ReturnType MongoDB\Driver\CursorId::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\CursorId::__toString()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe MongoDB\Driver\Server

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

final MongoDB\Driver\Server {
/* Constantes */
const integer TYPE_MONGOS = 1 ;
const integer TYPE_STANDALONE = 2 ;
const integer TYPE_ARBITER = 3 ;
const integer TYPE_SECONDARY = 4 ;
const integer TYPE_PRIMARY = 5 ;
/* Méthodes */
final public __construct ( string $host , string $port [, array $options [, array $driverOptions ]] )
final public MongoDB\Driver\WriteResult executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, MongoDB\Driver\WriteConcern $writeConcern ] )
final public MongoDB\Driver\Cursor executeCommand ( string $db , MongoDB\Driver\Command $command [, MongoDB\Driver\ReadPreference $readPreference ] )
final public MongoDB\Driver\Cursor executeQuery ( string $namespace , MongoDB\Driver\Query $query [, MongoDB\Driver\ReadPreference $readPreference ] )
final public string getHost ( void )
final public array getInfo ( void )
final public string getLatency ( void )
final public int getPort ( void )
final public array getTags ( void )
final public int getType ( void )
final public bool isArbiter ( void )
final public bool isHidden ( void )
final public bool isPassive ( void )
final public bool isPrimary ( void )
final public bool isSecondary ( void )
}

Constantes pré-définies

MongoDB\Driver\Server::TYPE_MONGOS

MongoDB\Driver\Server::TYPE_STANDALONE

MongoDB\Driver\Server::TYPE_ARBITER

MongoDB\Driver\Server::TYPE_SECONDARY

MongoDB\Driver\Server::TYPE_PRIMARY

Sommaire

  • MongoDB\Driver\Server::__construct — Description
  • MongoDB\Driver\Server::executeBulkWrite — Exécute une ou plusieurs opérations d'écriture sur ce serveur
  • MongoDB\Driver\Server::executeCommand — Exécute une commande de base de données sur ce serveur
  • MongoDB\Driver\Server::executeQuery — Exécute une requête de base de données sur ce serveur
  • MongoDB\Driver\Server::getHost — Retourne le nom d'hôte du serveur
  • MongoDB\Driver\Server::getInfo — Retourne un tableau d'informations sur ce serveur
  • MongoDB\Driver\Server::getLatency — Retourne la latence de ce serveur
  • MongoDB\Driver\Server::getPort — Retourne le port sur lequel le serveur écoute
  • MongoDB\Driver\Server::getTags — Returns an array of tags describing this server in a replica set
  • MongoDB\Driver\Server::getType — Retourne un entier représentant le type du serveur
  • MongoDB\Driver\Server::isArbiter — Checks if this server is an arbiter member of a replica set
  • MongoDB\Driver\Server::isHidden — Checks if this server is a hidden member of a replica set
  • MongoDB\Driver\Server::isPassive — Vérifie si le serveur est un membre passif du jeu de réplication
  • MongoDB\Driver\Server::isPrimary — Checks if this server is a primary member of a replica set
  • MongoDB\Driver\Server::isSecondary — Checks if this server is a secondary member of a replica set


Description

  • « MongoDB\Driver\Server
  • MongoDB\Driver\Server::executeBulkWrite »
  • PHP Manual
  • MongoDB\Driver\Server
  • Description

MongoDB\Driver\Server::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Server::__construct — Description

Description

final public MongoDB\Driver\Server::__construct ( string $host , string $port [, array $options [, array $driverOptions ]] )

Liste de paramètres

host

port

options

driverOptions

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Server::__construct()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Exécute une ou plusieurs opérations d'écriture sur ce serveur

  • « MongoDB\Driver\Server::__construct
  • MongoDB\Driver\Server::executeCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Exécute une ou plusieurs opérations d'écriture sur ce serveur

MongoDB\Driver\Server::executeBulkWrite

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeBulkWrite — Exécute une ou plusieurs opérations d'écriture sur ce serveur

Description

final public MongoDB\Driver\WriteResult MongoDB\Driver\Server::executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, MongoDB\Driver\WriteConcern $writeConcern ] )

Exécute une ou plusieurs opérations en écriture sur ce serveur.

Un objet MongoDB\Driver\BulkWrite peut être construit avec une ou plusieurs opérations de types différents (i.e. mise à jour, suppression, et insertion). Le driver va tenter d'envoyer les opérations de même type au serveur en un minimum de requête possible afin d'optimiser les aller/retour.

Liste de paramètres

namespace (string)

Un espace de noms totalement qualifié (e.g. "databaseName.collectionName")

bulk (MongoDB\Driver\BulkWrite)

Le MongoDB\Driver\BulkWrite à exécuter.

writeConcern (MongoDB\Driver\WriteConcern)

Optionnellement, une MongoDB\Driver\WriteConcern. Si rien n'est fourni, ce sera les préoccupations d'écriture définies par l' URI de connexion MongoDB.

Valeurs de retour

Retourne un MongoDB\Driver\WriteResult en cas de succès.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\BulkWriteException lors d'une erreur d'une opération en écriture (une erreur WriteError et WriteConcern)
  • Lance une exception MongoDB\Driver\AuthenticationException si une identification est nécessaire mais qu'elle échoue
  • Lance une exception MongoDB\Driver\ConnectionException si la connexion au serveur échoue pour une autre raison qu'en raison d'un problème d'identification
  • Lance une exception MongoDB\Driver\Exception\RuntimeException si une erreur survient.

Notes

Note:

C'est de la responsabilité de l'appelant de s'assurer que le serveur est capable d'exécuter les opérations en écriture. Par exemple, l'exécution d'une opération en écriture sur un serveur secondaire (sauf pour la base de données "local") échouera.

Voir aussi

  • MongoDB\Driver\BulkWrite
  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations


Exécute une commande de base de données sur ce serveur

  • « MongoDB\Driver\Server::executeBulkWrite
  • MongoDB\Driver\Server::executeQuery »
  • PHP Manual
  • MongoDB\Driver\Server
  • Exécute une commande de base de données sur ce serveur

MongoDB\Driver\Server::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeCommand — Exécute une commande de base de données sur ce serveur

Description

final public MongoDB\Driver\Cursor MongoDB\Driver\Server::executeCommand ( string $db , MongoDB\Driver\Command $command [, MongoDB\Driver\ReadPreference $readPreference ] )

Exécute une commande command sur ce serveur.

Note:

Le paramètre readPreference ne contrôle pas le serveur sur lequel le driver va envoyer la commande ; la commande va toujours être exécutée sur l'objet serveur. A la place, il pourra être utilisé lors de l'envoi de la commande vers un secondaire (depuis un jeu de connexion de réplication, et non sur un serveur unique) ou sur un noeud mongo pour assurer que le driver définisse le protocole wire adéquat ou ajoute les préférences de lecture à la commande du document, respectivement.

Liste de paramètres

db (string)

Le nom de la base de données sur laquelle la commande sera exécutée.

command (MongoDB\Driver\Command)

La MongoDB\Driver\Command à exécuter.

readPreference (MongoDB\Driver\ReadPreference)

Optionnellement, une MongoDB\Driver\ReadPreference vers laquelle la commande sera routée. Si rien n'est fourni, ce sera les préférences de lecture définies par l' URI de connexion MongoDB.

Valeurs de retour

Retourne un MongoDB\Driver\Cursor en cas de succès.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\AuthenticationException si une identification est nécessaire mais qu'elle échoue
  • Lance une exception MongoDB\Driver\ConnectionException si la connexion au serveur échoue pour une autre raison qu'en raison d'un problème d'identification
  • Lance une exception MongoDB\Driver\Exception\RuntimeException si une erreur survient (i.e. commande invalide, l'envoi d'une commande en écriture sur un secondaire).

Notes

Note:

Cette méthode ne prend pas de paramètre MongoDB\Driver\WriteConcern. Pour les commandes en écriture (e.g. » findAndModify en MongoDB 3.2+), la préoccupation en écriture doit être inclue dans la commande command du document.

Il est de la responsabilité de l'appelant de s'assurer que le serveur soit capable d'exécuter la commande. Par exemple, l'exécution d'une opération en écriture sur un secondaire (mis à part pour les bases de données "local") échouera.

Voir aussi

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Manager::executeCommand() - Execute a database command


Exécute une requête de base de données sur ce serveur

  • « MongoDB\Driver\Server::executeCommand
  • MongoDB\Driver\Server::getHost »
  • PHP Manual
  • MongoDB\Driver\Server
  • Exécute une requête de base de données sur ce serveur

MongoDB\Driver\Server::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeQuery — Exécute une requête de base de données sur ce serveur

Description

final public MongoDB\Driver\Cursor MongoDB\Driver\Server::executeQuery ( string $namespace , MongoDB\Driver\Query $query [, MongoDB\Driver\ReadPreference $readPreference ] )

Exécute la requête query sur ce serveur.

Note:

Le paramètre readPreference ne contrôle pas le serveur sur lequel le driver va envoyer la requête ; la requête sera toujours exécutée sur l'objet serveur. A la place, il peut être utilisé lors de l'envoi de la commande sur un secondaire (depuis un jeu de connexion de réplication, et non en serveur unique), ou un noeud mongo pour s'assurer que le driver définisse le protocole wire adéquat ou ajoute les préférences en lecture au document de requête, respectivement.

Liste de paramètres

namespace (string)

Un espace de noms totalement qualifié (e.g. "databaseName.collectionName")

query (MongoDB\Driver\Query)

La MongoDB\Driver\Query à exécuter.

readPreference (MongoDB\Driver\ReadPreference)

Optionnellement, une MongoDB\Driver\ReadPreference vers laquelle la commande sera routée. Si rien n'est fourni, ce sera les préférences de lecture définies par l' URI de connexion MongoDB.

Valeurs de retour

Retourne un MongoDB\Driver\Cursor en cas de succès.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\AuthenticationException si une identification est nécessaire mais qu'elle échoue
  • Lance une exception MongoDB\Driver\ConnectionException si la connexion au serveur échoue pour une autre raison qu'en raison d'un problème d'identification
  • Lance une exception MongoDB\Driver\Exception\RuntimeException si une erreur survient (i.e. opérateurs de requête invalide).

Voir aussi

  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Query
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Manager::executeQuery() - Execute a database query


Retourne le nom d'hôte du serveur

  • « MongoDB\Driver\Server::executeQuery
  • MongoDB\Driver\Server::getInfo »
  • PHP Manual
  • MongoDB\Driver\Server
  • Retourne le nom d'hôte du serveur

MongoDB\Driver\Server::getHost

(mongodb >=1.0.0)

MongoDB\Driver\Server::getHost — Retourne le nom d'hôte du serveur

Description

final public string MongoDB\Driver\Server::getHost ( void )

Retourne le nom d'hôte du serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom d'hôte du serveur.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Server::getHost()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getHost());

?>

L'exemple ci-dessus va afficher :

string(9) "localhost"

Voir aussi

  • MongoDB\Driver\Server::getInfo() - Retourne un tableau d'informations sur ce serveur


Retourne un tableau d'informations sur ce serveur

  • « MongoDB\Driver\Server::getHost
  • MongoDB\Driver\Server::getLatency »
  • PHP Manual
  • MongoDB\Driver\Server
  • Retourne un tableau d'informations sur ce serveur

MongoDB\Driver\Server::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\Server::getInfo — Retourne un tableau d'informations sur ce serveur

Description

final public array MongoDB\Driver\Server::getInfo ( void )

Retourne un tableau d'informations sur ce serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau d'informations sur ce serveur.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Server::getInfo()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getInfo());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(8) {
  ["ismaster"]=>
  bool(true)
  ["maxBsonObjectSize"]=>
  int(16777216)
  ["maxMessageSizeBytes"]=>
  int(48000000)
  ["maxWriteBatchSize"]=>
  int(1000)
  ["localTime"]=>
  object(MongoDB\BSON\UTCDateTime)#4 (1) {
    ["milliseconds"]=>
    int(1447276242774)
  }
  ["maxWireVersion"]=>
  int(3)
  ["minWireVersion"]=>
  int(0)
  ["ok"]=>
  float(1)
}


Retourne la latence de ce serveur

  • « MongoDB\Driver\Server::getInfo
  • MongoDB\Driver\Server::getPort »
  • PHP Manual
  • MongoDB\Driver\Server
  • Retourne la latence de ce serveur

MongoDB\Driver\Server::getLatency

(mongodb >=1.0.0)

MongoDB\Driver\Server::getLatency — Retourne la latence de ce serveur

Description

final public string MongoDB\Driver\Server::getLatency ( void )

Retourne la latence de ce serveur (i.e. la mesure cliente du temps d'un » aller/retour d'une commande ismaster).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la latence du serveur.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Server::getLatency()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getLatency());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(592)

Voir aussi

  • MongoDB\Driver\Server::getInfo() - Retourne un tableau d'informations sur ce serveur
  • » La spécification sur la découverte et la surveillance d'un serveur


Retourne le port sur lequel le serveur écoute

  • « MongoDB\Driver\Server::getLatency
  • MongoDB\Driver\Server::getTags »
  • PHP Manual
  • MongoDB\Driver\Server
  • Retourne le port sur lequel le serveur écoute

MongoDB\Driver\Server::getPort

(mongodb >=1.0.0)

MongoDB\Driver\Server::getPort — Retourne le port sur lequel le serveur écoute

Description

final public int MongoDB\Driver\Server::getPort ( void )

Retourne le port sur lequel le serveur écoute.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le port sur lequel le serveur écoute.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Server::getPort()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getPort());

?>

L'exemple ci-dessus va afficher :

int(27017)

Voir aussi

  • MongoDB\Driver\Server::getInfo() - Retourne un tableau d'informations sur ce serveur


Returns an array of tags describing this server in a replica set

  • « MongoDB\Driver\Server::getPort
  • MongoDB\Driver\Server::getType »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns an array of tags describing this server in a replica set

MongoDB\Driver\Server::getTags

(mongodb >=1.0.0)

MongoDB\Driver\Server::getTags — Returns an array of tags describing this server in a replica set

Description

final public array MongoDB\Driver\Server::getTags ( void )

Returns an array of » tags used to describe this server in a replica set. The array will contain zero or more string key and value pairs.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an array of tags used to describe this server in a replica set.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Server::getInfo() - Retourne un tableau d'informations sur ce serveur


Retourne un entier représentant le type du serveur

  • « MongoDB\Driver\Server::getTags
  • MongoDB\Driver\Server::isArbiter »
  • PHP Manual
  • MongoDB\Driver\Server
  • Retourne un entier représentant le type du serveur

MongoDB\Driver\Server::getType

(mongodb >=1.0.0)

MongoDB\Driver\Server::getType — Retourne un entier représentant le type du serveur

Description

final public int MongoDB\Driver\Server::getType ( void )

Retourne un entier représentant le type du serveur. La valeur correspondra avec une constante MongoDB\Driver\Server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier représentant le type du serveur.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Server::getInfo() - Retourne un tableau d'informations sur ce serveur


Checks if this server is an arbiter member of a replica set

  • « MongoDB\Driver\Server::getType
  • MongoDB\Driver\Server::isHidden »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is an arbiter member of a replica set

MongoDB\Driver\Server::isArbiter

(mongodb >=1.0.0)

MongoDB\Driver\Server::isArbiter — Checks if this server is an arbiter member of a replica set

Description

final public bool MongoDB\Driver\Server::isArbiter ( void )

Returns whether this server is an » arbiter member of a replica set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if this server is an arbiter member of a replica set, and FALSE otherwise.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Server::getInfo() - Retourne un tableau d'informations sur ce serveur


Checks if this server is a hidden member of a replica set

  • « MongoDB\Driver\Server::isArbiter
  • MongoDB\Driver\Server::isPassive »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a hidden member of a replica set

MongoDB\Driver\Server::isHidden

(mongodb >=1.0.0)

MongoDB\Driver\Server::isHidden — Checks if this server is a hidden member of a replica set

Description

final public bool MongoDB\Driver\Server::isHidden ( void )

Returns whether this server is a » hidden member of a replica set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if this server is a hidden member of a replica set, and FALSE otherwise.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Server::getInfo() - Retourne un tableau d'informations sur ce serveur


Vérifie si le serveur est un membre passif du jeu de réplication

  • « MongoDB\Driver\Server::isHidden
  • MongoDB\Driver\Server::isPrimary »
  • PHP Manual
  • MongoDB\Driver\Server
  • Vérifie si le serveur est un membre passif du jeu de réplication

MongoDB\Driver\Server::isPassive

(mongodb >=1.0.0)

MongoDB\Driver\Server::isPassive — Vérifie si le serveur est un membre passif du jeu de réplication

Description

final public bool MongoDB\Driver\Server::isPassive ( void )

Retourne si le serveur est un » membre passif d'un jeu de réplication (i.e. sa priorité est 0).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le serveur est un membre passif d'un jeu de réplication, et FALSE sinon.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Server::getInfo() - Retourne un tableau d'informations sur ce serveur


Checks if this server is a primary member of a replica set

  • « MongoDB\Driver\Server::isPassive
  • MongoDB\Driver\Server::isSecondary »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a primary member of a replica set

MongoDB\Driver\Server::isPrimary

(mongodb >=1.0.0)

MongoDB\Driver\Server::isPrimary — Checks if this server is a primary member of a replica set

Description

final public bool MongoDB\Driver\Server::isPrimary ( void )

Returns whether this server is a » primary member of a replica set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if this server is a primary member of a replica set, and FALSE otherwise.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Server::getInfo() - Retourne un tableau d'informations sur ce serveur


Checks if this server is a secondary member of a replica set

  • « MongoDB\Driver\Server::isPrimary
  • MongoDB\Driver\WriteConcernError »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a secondary member of a replica set

MongoDB\Driver\Server::isSecondary

(mongodb >=1.0.0)

MongoDB\Driver\Server::isSecondary — Checks if this server is a secondary member of a replica set

Description

final public bool MongoDB\Driver\Server::isSecondary ( void )

Returns whether this server is a » secondary member of a replica set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if this server is a secondary member of a replica set, and FALSE otherwise.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Server::getInfo() - Retourne un tableau d'informations sur ce serveur


La classe MongoDB\Driver\WriteConcernError

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

final MongoDB\Driver\WriteConcernError {
/* Méthodes */
final public ReturnType getCode ( void )
final public ReturnType getInfo ( void )
final public ReturnType getMessage ( void )
}

Sommaire

  • MongoDB\Driver\WriteConcernError::getCode — Description
  • MongoDB\Driver\WriteConcernError::getInfo — Description
  • MongoDB\Driver\WriteConcernError::getMessage — Description


Description

  • « MongoDB\Driver\WriteConcernError
  • MongoDB\Driver\WriteConcernError::getInfo »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Description

MongoDB\Driver\WriteConcernError::getCode

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getCode — Description

Description

final public ReturnType MongoDB\Driver\WriteConcernError::getCode ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteConcernError::getCode()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « MongoDB\Driver\WriteConcernError::getCode
  • MongoDB\Driver\WriteConcernError::getMessage »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Description

MongoDB\Driver\WriteConcernError::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getInfo — Description

Description

final public ReturnType MongoDB\Driver\WriteConcernError::getInfo ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteConcernError::getInfo()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « MongoDB\Driver\WriteConcernError::getInfo
  • MongoDB\Driver\WriteError »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Description

MongoDB\Driver\WriteConcernError::getMessage

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getMessage — Description

Description

final public ReturnType MongoDB\Driver\WriteConcernError::getMessage ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteConcernError::getMessage()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe MongoDB\Driver\WriteError

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

final MongoDB\Driver\WriteError {
/* Méthodes */
final public ReturnType getCode ( void )
final public ReturnType getIndex ( void )
final public mixed getInfo ( void )
final public ReturnType getMessage ( void )
}

Sommaire

  • MongoDB\Driver\WriteError::getCode — Description
  • MongoDB\Driver\WriteError::getIndex — Description
  • MongoDB\Driver\WriteError::getInfo — Returns additional metadata for the WriteError
  • MongoDB\Driver\WriteError::getMessage — Description


Description

  • « MongoDB\Driver\WriteError
  • MongoDB\Driver\WriteError::getIndex »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Description

MongoDB\Driver\WriteError::getCode

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getCode — Description

Description

final public ReturnType MongoDB\Driver\WriteError::getCode ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteError::getCode()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « MongoDB\Driver\WriteError::getCode
  • MongoDB\Driver\WriteError::getInfo »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Description

MongoDB\Driver\WriteError::getIndex

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getIndex — Description

Description

final public ReturnType MongoDB\Driver\WriteError::getIndex ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteError::getIndex()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Returns additional metadata for the WriteError

  • « MongoDB\Driver\WriteError::getIndex
  • MongoDB\Driver\WriteError::getMessage »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Returns additional metadata for the WriteError

MongoDB\Driver\WriteError::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getInfo — Returns additional metadata for the WriteError

Description

final public mixed MongoDB\Driver\WriteError::getInfo ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns additional metadata for the WriteError, or NULL if no metadata is available.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Description

  • « MongoDB\Driver\WriteError::getInfo
  • MongoDB\Driver\WriteResult »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Description

MongoDB\Driver\WriteError::getMessage

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getMessage — Description

Description

final public ReturnType MongoDB\Driver\WriteError::getMessage ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteError::getMessage()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe MongoDB\Driver\WriteResult

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

final MongoDB\Driver\WriteResult {
/* Méthodes */
final public ReturnType getDeletedCount ( void )
final public ReturnType getInsertedCount ( void )
final public ReturnType getMatchedCount ( void )
final public ReturnType getModifiedCount ( void )
final public ReturnType getServer ( void )
final public ReturnType getUpsertedCount ( void )
final public ReturnType getUpsertedIds ( void )
final public ReturnType getWriteConcernError ( void )
final public ReturnType getWriteErrors ( void )
final public bool isAcknowledged ( void )
}

Sommaire

  • MongoDB\Driver\WriteResult::getDeletedCount — Description
  • MongoDB\Driver\WriteResult::getInsertedCount — Description
  • MongoDB\Driver\WriteResult::getMatchedCount — Description
  • MongoDB\Driver\WriteResult::getModifiedCount — Description
  • MongoDB\Driver\WriteResult::getServer — Description
  • MongoDB\Driver\WriteResult::getUpsertedCount — Description
  • MongoDB\Driver\WriteResult::getUpsertedIds — Description
  • MongoDB\Driver\WriteResult::getWriteConcernError — Description
  • MongoDB\Driver\WriteResult::getWriteErrors — Description
  • MongoDB\Driver\WriteResult::isAcknowledged — Returns whether the write was acknowledged


Description

  • « MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteResult::getInsertedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Description

MongoDB\Driver\WriteResult::getDeletedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getDeletedCount — Description

Description

final public ReturnType MongoDB\Driver\WriteResult::getDeletedCount ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteResult::getDeletedCount()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « MongoDB\Driver\WriteResult::getDeletedCount
  • MongoDB\Driver\WriteResult::getMatchedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Description

MongoDB\Driver\WriteResult::getInsertedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getInsertedCount — Description

Description

final public ReturnType MongoDB\Driver\WriteResult::getInsertedCount ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteResult::getInsertedCount()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « MongoDB\Driver\WriteResult::getInsertedCount
  • MongoDB\Driver\WriteResult::getModifiedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Description

MongoDB\Driver\WriteResult::getMatchedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getMatchedCount — Description

Description

final public ReturnType MongoDB\Driver\WriteResult::getMatchedCount ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteResult::getMatchedCount()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « MongoDB\Driver\WriteResult::getMatchedCount
  • MongoDB\Driver\WriteResult::getServer »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Description

MongoDB\Driver\WriteResult::getModifiedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getModifiedCount — Description

Description

final public ReturnType MongoDB\Driver\WriteResult::getModifiedCount ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteResult::getModifiedCount()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « MongoDB\Driver\WriteResult::getModifiedCount
  • MongoDB\Driver\WriteResult::getUpsertedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Description

MongoDB\Driver\WriteResult::getServer

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getServer — Description

Description

final public ReturnType MongoDB\Driver\WriteResult::getServer ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteResult::getServer()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « MongoDB\Driver\WriteResult::getServer
  • MongoDB\Driver\WriteResult::getUpsertedIds »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Description

MongoDB\Driver\WriteResult::getUpsertedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getUpsertedCount — Description

Description

final public ReturnType MongoDB\Driver\WriteResult::getUpsertedCount ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteResult::getUpsertedCount()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « MongoDB\Driver\WriteResult::getUpsertedCount
  • MongoDB\Driver\WriteResult::getWriteConcernError »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Description

MongoDB\Driver\WriteResult::getUpsertedIds

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getUpsertedIds — Description

Description

final public ReturnType MongoDB\Driver\WriteResult::getUpsertedIds ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteResult::getUpsertedIds()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « MongoDB\Driver\WriteResult::getUpsertedIds
  • MongoDB\Driver\WriteResult::getWriteErrors »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Description

MongoDB\Driver\WriteResult::getWriteConcernError

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getWriteConcernError — Description

Description

final public ReturnType MongoDB\Driver\WriteResult::getWriteConcernError ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteResult::getWriteConcernError()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « MongoDB\Driver\WriteResult::getWriteConcernError
  • MongoDB\Driver\WriteResult::isAcknowledged »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Description

MongoDB\Driver\WriteResult::getWriteErrors

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getWriteErrors — Description

Description

final public ReturnType MongoDB\Driver\WriteResult::getWriteErrors ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteResult::getWriteErrors()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Returns whether the write was acknowledged

  • « MongoDB\Driver\WriteResult::getWriteErrors
  • MongoDB\BSON »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns whether the write was acknowledged

MongoDB\Driver\WriteResult::isAcknowledged

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::isAcknowledged — Returns whether the write was acknowledged

Description

final public bool MongoDB\Driver\WriteResult::isAcknowledged ( void )

If the write is acknowledged, other count fields will be available on the MongoDB\Driver\WriteResult object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if the write was acknowledged, and FALSE otherwise.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\WriteResult::isAcknowledged() with acknowledged write concern

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->isAcknowledged());

?>

L'exemple ci-dessus va afficher :

bool(true)

Exemple #2 MongoDB\Driver\WriteResult::isAcknowledged() with unacknowledged write concern

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk, new MongoDB\Driver\WriteConcern(0));

var_dump($result->isAcknowledged());

?>

L'exemple ci-dessus va afficher :

bool(false)

Voir aussi

  • MongoDB\Driver\WriteConcern
  • » Write Concern reference


BSON type classes and serialization functions

  • Fonctions
    • BSON\fromJSON — Description
    • MongoDB\BSON\fromPHP — Returns the BSON representation of a PHP value
    • BSON\toJSON — Description
    • MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value
  • MongoDB\BSON\Binary — La classe MongoDB\BSON\Binary
    • MongoDB\BSON\Binary::__construct — Construit un nouveau binaire
    • MongoDB\BSON\Binary::getData — Returns the Binary's data
    • MongoDB\BSON\Binary::getType — Returns the Binary's type
  • MongoDB\BSON\Decimal128 — The MongoDB\BSON\Decimal128 class
    • MongoDB\BSON\Decimal128::__construct — Construct a new Decimal128
    • MongoDB\BSON\Decimal128::__toString — Returns the string representation of this Decimal128
  • MongoDB\BSON\Javascript — La classe MongoDB\BSON\Javascript
    • MongoDB\BSON\Javascript::__construct — Construit un nouveau Javascript
  • MongoDB\BSON\MaxKey — La classe MongoDB\BSON\MaxKey
    • MongoDB\BSON\MaxKey::__construct — Construct a new MaxKey
  • MongoDB\BSON\MinKey — La classe MongoDB\BSON\MinKey
    • MongoDB\BSON\MinKey::__construct — Construct a new MinKey
  • MongoDB\BSON\ObjectID — La classe MongoDB\BSON\ObjectID
    • MongoDB\BSON\ObjectID::__construct — Construit un nouvel ObjectID
    • MongoDB\BSON\ObjectID::__toString — Retourne la représentation hexadécimale de cet ObjectID
  • MongoDB\BSON\Regex — La classe MongoDB\BSON\Regex
    • MongoDB\BSON\Regex::__construct — Construit une nouvelle REGEX
    • MongoDB\BSON\Regex::getFlags — Retourne les drapeux de la REGEX
    • MongoDB\BSON\Regex::getPattern — Retourne le masque du REGEX
    • MongoDB\BSON\Regex::__toString — Retourne la chaîne représentant cette REGEX
  • MongoDB\BSON\Timestamp — La classe MongoDB\BSON\Timestamp
    • BSON\Timestamp::__construct — Description
    • BSON\Timestamp::__toString — Description
  • MongoDB\BSON\UTCDatetime — La classe MongoDB\BSON\UTCDatetime
    • BSON\UTCDatetime::__construct — Description
    • BSON\UTCDatetime::toDateTime — Description
    • BSON\UTCDatetime::__toString — Description
  • MongoDB\BSON\Type — L'interface MongoDB\BSON\Type
  • MongoDB\BSON\Persistable — La classe MongoDB\BSON\Persistable
  • MongoDB\BSON\Serializable — La classe MongoDB\BSON\Serializable
    • BSON\Serializable::bsonSerialize — Description
  • MongoDB\BSON\Unserializable — L'interface MongoDB\BSON\Unserializable
    • BSON\Unserializable::bsonUnserialize — Description


Fonctions

Sommaire

  • BSON\fromJSON — Description
  • MongoDB\BSON\fromPHP — Returns the BSON representation of a PHP value
  • BSON\toJSON — Description
  • MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value


Description

  • « Fonctions
  • MongoDB\BSON\fromPHP »
  • PHP Manual
  • Fonctions
  • Description

BSON\fromJSON

(No version information available, might only be in Git)

BSON\fromJSON — Description

Description

ReturnType BSON\fromJSON ( string $json )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

json

Valeurs de retour

Exemples

Exemple #1 Exemple avec BSON\fromJSON()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Returns the BSON representation of a PHP value

  • « BSON\fromJSON
  • BSON\toJSON »
  • PHP Manual
  • Fonctions
  • Returns the BSON representation of a PHP value

MongoDB\BSON\fromPHP

(mongodb >=1.0.0)

MongoDB\BSON\fromPHP — Returns the BSON representation of a PHP value

Description

string MongoDB\BSON\fromPHP ( array|object $value )

Serializes a PHP array or object (e.g. document) to its » BSON representation. The returned binary string will describe a BSON document.

Liste de paramètres

value (array|object)

PHP value to be serialized.

Valeurs de retour

The serialized BSON document as a binary string.

Erreurs / Exceptions

Throws MongoDB\Driver\Exception\UnexpectedValueException if the PHP value cannot be converted to BSON. Possible reasons include, but are not limited to, encountering an unexpected MongoDB\BSON\Type instance or MongoDB\BSON\Serializable::bsonSerialize() failing to return an array or stdClass.

Exemples

Exemple #1 MongoDB\BSON\fromPHP() example

<?php

$bson = MongoDB\BSON\fromPHP(['foo' => 1]);
echo bin2hex($bson), "\n";

?>

L'exemple ci-dessus va afficher :

0e00000010666f6f000100000000cat

Voir aussi

  • MongoDB\BSON\toPHP() - Returns the PHP representation of a BSON value
  • » MongoDB BSON
  • Persisting Data


Description

  • « MongoDB\BSON\fromPHP
  • MongoDB\BSON\toPHP »
  • PHP Manual
  • Fonctions
  • Description

BSON\toJSON

(No version information available, might only be in Git)

BSON\toJSON — Description

Description

ReturnType BSON\toJSON ( string $bson )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

bson

Valeurs de retour

Exemples

Exemple #1 Exemple avec BSON\toJSON()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Returns the PHP representation of a BSON value

  • « BSON\toJSON
  • MongoDB\BSON\Binary »
  • PHP Manual
  • Fonctions
  • Returns the PHP representation of a BSON value

MongoDB\BSON\toPHP

(mongodb >=1.0.0)

MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value

Description

array|object MongoDB\BSON\toPHP ( string $bson [, array $typeMap = array() ] )

Unserializes a BSON document (i.e. binary string) to its PHP representation. The typeMap paramater may be used to control the PHP types used for converting BSON arrays and documents (both root and embedded).

Liste de paramètres

bson (string)

BSON value to be unserialized.

typeMap (array)

Configuration du type de carte.

Valeurs de retour

The unserialized PHP value.

Erreurs / Exceptions

Throws MongoDB\Driver\Exception\InvalidArgumentException if a class in the type map cannot be instantiated or does not implement MongoDB\BSON\Unserializable.

Throws MongoDB\Driver\Exception\UnexpectedValueException if the input did not contain exactly one BSON document. Possible reasons include, but are not limited to, invalid BSON, extra data (after reading one BSON document), or an unexpected » libbson error.

Exemples

Exemple #1 MongoDB\BSON\toPHP() example

<?php

$bson = hex2bin('0e00000010666f6f000100000000');
$value = MongoDB\BSON\toPHP($bson);
var_dump($value);

?>

L'exemple ci-dessus va afficher :

object(stdClass)#1 (1) {
  ["foo"]=>
  int(1)
}

Voir aussi

  • MongoDB\BSON\fromPHP() - Returns the BSON representation of a PHP value
  • » MongoDB BSON
  • Persisting Data


La classe MongoDB\BSON\Binary

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

MongoDB\BSON\Binary implements MongoDB\BSON\Type {
/* Constants */
const integer TYPE_GENERIC = 0 ;
const integer TYPE_FUNCTION = 1 ;
const integer TYPE_OLD_BINARY = 2 ;
const integer TYPE_OLD_UUID = 3 ;
const integer TYPE_UUID = 4 ;
const integer TYPE_MD5 = 5 ;
const integer TYPE_USER_DEFINED = 128 ;
/* Méthodes */
final public __construct ( string $data , integer $type )
final public string getData ( void )
final public integer getType ( void )
}

Constantes pré-définies

MongoDB\BSON\Binary::TYPE_GENERIC

MongoDB\BSON\Binary::TYPE_FUNCTION

MongoDB\BSON\Binary::TYPE_OLD_BINARY

MongoDB\BSON\Binary::TYPE_OLD_UUID

MongoDB\BSON\Binary::TYPE_UUID

MongoDB\BSON\Binary::TYPE_MD5

MongoDB\BSON\Binary::TYPE_USER_DEFINED

Sommaire

  • MongoDB\BSON\Binary::__construct — Construit un nouveau binaire
  • MongoDB\BSON\Binary::getData — Returns the Binary's data
  • MongoDB\BSON\Binary::getType — Returns the Binary's type


Construit un nouveau binaire

  • « MongoDB\BSON\Binary
  • MongoDB\BSON\Binary::getData »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Construit un nouveau binaire

MongoDB\BSON\Binary::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Binary::__construct — Construit un nouveau binaire

Description

final public MongoDB\BSON\Binary::__construct ( string $data , integer $type )

Liste de paramètres

data (string)

Les données binaires.

type (integer)

Le type du binaire.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 Exemple avec MongoDB\BSON\Binary::__construct()

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary);

?>

L'exemple ci-dessus va afficher :

object(MongoDB\BSON\Binary)#1 (2) {
  ["data"]=>
  string(3) "foo"
  ["type"]=>
  int(0)
}

Voir aussi

  • » Les types BSON


Returns the Binary's data

  • « MongoDB\BSON\Binary::__construct
  • MongoDB\BSON\Binary::getType »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Returns the Binary's data

MongoDB\BSON\Binary::getData

(mongodb >=1.0.0)

MongoDB\BSON\Binary::getData — Returns the Binary's data

Description

final public string MongoDB\BSON\Binary::getData ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the Binary's data

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\BSON\Binary::getData() example

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary->getData());

?>

L'exemple ci-dessus va afficher :

string(3) "foo"

Voir aussi

  • » BSON Types


Returns the Binary's type

  • « MongoDB\BSON\Binary::getData
  • MongoDB\BSON\Decimal128 »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Returns the Binary's type

MongoDB\BSON\Binary::getType

(mongodb >=1.0.0)

MongoDB\BSON\Binary::getType — Returns the Binary's type

Description

final public integer MongoDB\BSON\Binary::getType ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the Binary's type.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\BSON\Binary::getType() example

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary->getType());

?>

L'exemple ci-dessus va afficher :

int(0)

Voir aussi

  • » BSON Types


The MongoDB\BSON\Decimal128 class

(mongodb >=1.2.0)

Introduction

BSON type for the » Decimal128 floating-point format, which supports numbers with up to 34 decimal digits (i.e. significant digits) and an exponent range of -6143 to +6144.

Unlike the double BSON type (i.e. float in PHP), which only stores an approximation of the decimal values, the decimal data type stores the exact value. For example, MongoDB\BSON\Decimal128('9.99') has a precise value of 9.99 where as a double 9.99 would have an approximate value of 9.9900000000000002131628….

Note: MongoDB\BSON\Decimal128 n'est compatible qu'avec MongoDB 3.4+. Si vous tentez d'utiliser le type BSON avec une ancienne version de MongoDB, une erreur sera émise.

Synopsis de la classe

MongoDB\BSON\Decimal128 implements MongoDB\BSON\Type {
/* Méthodes */
final public __construct ([ string $value ] )
final public string __toString ( void )
}

Sommaire

  • MongoDB\BSON\Decimal128::__construct — Construct a new Decimal128
  • MongoDB\BSON\Decimal128::__toString — Returns the string representation of this Decimal128


Construct a new Decimal128

  • « MongoDB\BSON\Decimal128
  • MongoDB\BSON\Decimal128::__toString »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Construct a new Decimal128

MongoDB\BSON\Decimal128::__construct

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::__construct — Construct a new Decimal128

Description

final public MongoDB\BSON\Decimal128::__construct ([ string $value ] )

Note: MongoDB\BSON\Decimal128 n'est compatible qu'avec MongoDB 3.4+. Si vous tentez d'utiliser le type BSON avec une ancienne version de MongoDB, une erreur sera émise.

Liste de paramètres

value (string)

A decimal string.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if value is not a valid decimal string.

Exemples

Exemple #1 MongoDB\BSON\Decimal128::__construct() example

<?php

var_dump(new MongoDB\BSON\Decimal128(1234.5678));
var_dump(new MongoDB\BSON\Decimal128(NAN));
var_dump(new MongoDB\BSON\Decimal128(INF));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(MongoDB\BSON\Decimal128)#1 (1) {
  ["dec"]=>
  string(9) "1234.5678"
}
object(MongoDB\BSON\Decimal128)#1 (1) {
  ["dec"]=>
  string(3) "NaN"
}
object(MongoDB\BSON\Decimal128)#1 (1) {
  ["dec"]=>
  string(8) "Infinity"
}

Voir aussi

  • » Decimal128 floating-point format
  • » BSON Types


Returns the string representation of this Decimal128

  • « MongoDB\BSON\Decimal128::__construct
  • MongoDB\BSON\Javascript »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Returns the string representation of this Decimal128

MongoDB\BSON\Decimal128::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::__toString — Returns the string representation of this Decimal128

Description

final public string MongoDB\BSON\Decimal128::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the string representation of this Decimal128.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\BSON\Decimal128::__toString() example

<?php

var_dump((string) new MongoDB\BSON\Decimal128(1234.5678));
var_dump((string) new MongoDB\BSON\Decimal128(NAN));
var_dump((string) new MongoDB\BSON\Decimal128(INF));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(9) "1234.5678"
string(3) "NaN"
string(8) "Infinity"

Voir aussi

  • » Decimal128 floating-point format
  • » BSON Types


La classe MongoDB\BSON\Javascript

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

MongoDB\BSON\Javascript implements MongoDB\BSON\Type {
/* Méthodes */
final public __construct ( string $code [, array|object $scope ] )
}

Sommaire

  • MongoDB\BSON\Javascript::__construct — Construit un nouveau Javascript


Construit un nouveau Javascript

  • « MongoDB\BSON\Javascript
  • MongoDB\BSON\MaxKey »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Construit un nouveau Javascript

MongoDB\BSON\Javascript::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Javascript::__construct — Construit un nouveau Javascript

Description

final public MongoDB\BSON\Javascript::__construct ( string $code [, array|object $scope ] )

Liste de paramètres

code (string)

Le code Javascript.

scope (array|object)

La portée du Javascript.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\BSON\Javascript::__construct() example

<?php

$code = new MongoDB\BSON\Javascript('function() { return 1; }');
var_dump($code);

$codews = new MongoDB\BSON\Javascript('function() { return foo; }', ['foo' => 'bar']);
var_dump($codews);

?>

L'exemple ci-dessus va afficher :

object(MongoDB\BSON\Javascript)#1 (2) {
  ["javascript"]=>
  string(24) "function() { return 1; }"
  ["scope"]=>
  object(stdClass)#2 (0) {
  }
}
object(MongoDB\BSON\Javascript)#2 (2) {
  ["javascript"]=>
  string(26) "function() { return foo; }"
  ["scope"]=>
  object(stdClass)#1 (1) {
    ["foo"]=>
    string(3) "bar"
  }
}

Voir aussi

  • » Les types BSON


La classe MongoDB\BSON\MaxKey

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

MongoDB\BSON\MaxKey implements MongoDB\BSON\Type {
/* Méthodes */
final public __construct ( void )
}

Sommaire

  • MongoDB\BSON\MaxKey::__construct — Construct a new MaxKey


Construct a new MaxKey

  • « MongoDB\BSON\MaxKey
  • MongoDB\BSON\MinKey »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Construct a new MaxKey

MongoDB\BSON\MaxKey::__construct

(mongodb >=1.0.0)

MongoDB\BSON\MaxKey::__construct — Construct a new MaxKey

Description

final public MongoDB\BSON\MaxKey::__construct ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\BSON\MaxKey::__construct() example

<?php

var_dump(new MongoDB\BSON\MaxKey());

?>

L'exemple ci-dessus va afficher :

object(MongoDB\BSON\MaxKey)#1 (0) {
}

Voir aussi

  • » BSON Types


La classe MongoDB\BSON\MinKey

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

MongoDB\BSON\MinKey implements MongoDB\BSON\Type {
/* Méthodes */
final public __construct ( void )
}

Sommaire

  • MongoDB\BSON\MinKey::__construct — Construct a new MinKey


Construct a new MinKey

  • « MongoDB\BSON\MinKey
  • MongoDB\BSON\ObjectID »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Construct a new MinKey

MongoDB\BSON\MinKey::__construct

(mongodb >=1.0.0)

MongoDB\BSON\MinKey::__construct — Construct a new MinKey

Description

final public MongoDB\BSON\MinKey::__construct ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\BSON\MinKey::__construct() example

<?php

var_dump(new MongoDB\BSON\MinKey());

?>

L'exemple ci-dessus va afficher :

object(MongoDB\BSON\MinKey)#1 (0) {
}

Voir aussi

  • » BSON Types


La classe MongoDB\BSON\ObjectID

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

MongoDB\BSON\ObjectID implements MongoDB\BSON\Type {
/* Méthodes */
final public __construct ([ string $id ] )
final public string __toString ( void )
}

Sommaire

  • MongoDB\BSON\ObjectID::__construct — Construit un nouvel ObjectID
  • MongoDB\BSON\ObjectID::__toString — Retourne la représentation hexadécimale de cet ObjectID


Construit un nouvel ObjectID

  • « MongoDB\BSON\ObjectID
  • MongoDB\BSON\ObjectID::__toString »
  • PHP Manual
  • MongoDB\BSON\ObjectID
  • Construit un nouvel ObjectID

MongoDB\BSON\ObjectID::__construct

(mongodb >=1.0.0)

MongoDB\BSON\ObjectID::__construct — Construit un nouvel ObjectID

Description

final public MongoDB\BSON\ObjectID::__construct ([ string $id ] )

Liste de paramètres

id (string)

Une chaîne héxadécimale de 24 caractères. Si elle n'est pas fournie, le driver génèrera un ObjectID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Lance une exception MongoDB\Driver\Exception\InvalidArgumentException si id n'est pas une chaîne héxadécimale de 24 caractères.

Exemples

Exemple #1 Exemple avec MongoDB\BSON\ObjectID::__construct()

<?php

var_dump(new MongoDB\BSON\ObjectId());

var_dump(new MongoDB\BSON\ObjectId('000000000000000000000001'));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(MongoDB\BSON\ObjectID)#1 (1) {
  ["oid"]=>
  string(24) "56732d3dda14d81214634921"
}
object(MongoDB\BSON\ObjectID)#1 (1) {
  ["oid"]=>
  string(24) "000000000000000000000001"
}

Voir aussi

  • » La référence ObjectID
  • » Le type BSON : ObjectID


Retourne la représentation hexadécimale de cet ObjectID

  • « MongoDB\BSON\ObjectID::__construct
  • MongoDB\BSON\Regex »
  • PHP Manual
  • MongoDB\BSON\ObjectID
  • Retourne la représentation hexadécimale de cet ObjectID

MongoDB\BSON\ObjectID::__toString

(mongodb >=1.0.0)

MongoDB\BSON\ObjectID::__toString — Retourne la représentation hexadécimale de cet ObjectID

Description

final public string MongoDB\BSON\ObjectID::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation hexadécimale de cet ObjectID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 Exemple avec MongoDB\BSON\ObjectID::__toString()

<?php

var_dump((string) new MongoDB\BSON\ObjectId());
var_dump((string) new MongoDB\BSON\ObjectId('000000000000000000000001'));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(24) "56731b49da14d8747d701211"
string(24) "000000000000000000000001"

Voir aussi

  • » La référence ObjectID
  • » Le type BSON : ObjectID


La classe MongoDB\BSON\Regex

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

MongoDB\BSON\Regex implements MongoDB\BSON\Type {
/* Méthodes */
final public __construct ( string $pattern , string $flags )
final public ReturnType getFlags ( void )
final public string getPattern ( void )
final public string __toString ( void )
}

Sommaire

  • MongoDB\BSON\Regex::__construct — Construit une nouvelle REGEX
  • MongoDB\BSON\Regex::getFlags — Retourne les drapeux de la REGEX
  • MongoDB\BSON\Regex::getPattern — Retourne le masque du REGEX
  • MongoDB\BSON\Regex::__toString — Retourne la chaîne représentant cette REGEX


Construit une nouvelle REGEX

  • « MongoDB\BSON\Regex
  • MongoDB\BSON\Regex::getFlags »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Construit une nouvelle REGEX

MongoDB\BSON\Regex::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Regex::__construct — Construit une nouvelle REGEX

Description

final public MongoDB\BSON\Regex::__construct ( string $pattern , string $flags )

Liste de paramètres

pattern (string)

Le masque de l'expression régulière.

Note:

Le masque ne doit pas être entouré de caractères délimitants.

flags (string)

Les » drapeaux de l'expression régulière.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\BSON\Regex::__construct() example

<?php

$regex = new MongoDB\BSON\Regex('^foo', 'i');
var_dump($regex);

?>

L'exemple ci-dessus va afficher :

object(MongoDB\BSON\Regex)#1 (2) {
  ["pattern"]=>
  string(4) "^foo"
  ["flags"]=>
  string(1) "i"
}

Voir aussi

  • » Les types BSON
  • » Les drapeaux supportés pour les expressions régulières


Retourne les drapeux de la REGEX

  • « MongoDB\BSON\Regex::__construct
  • MongoDB\BSON\Regex::getPattern »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Retourne les drapeux de la REGEX

MongoDB\BSON\Regex::getFlags

(mongodb >=1.0.0)

MongoDB\BSON\Regex::getFlags — Retourne les drapeux de la REGEX

Description

final public ReturnType MongoDB\BSON\Regex::getFlags ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les drapeaux de la REGEX.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 Exemple avec BSON\Regex::getFlags()

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump($regex->getFlags());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "i"

Voir aussi

  • » Les types BSON
  • » Les drapeaux supportés des expressions régulières


Retourne le masque du REGEX

  • « MongoDB\BSON\Regex::getFlags
  • MongoDB\BSON\Regex::__toString »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Retourne le masque du REGEX

MongoDB\BSON\Regex::getPattern

(mongodb >=1.0.0)

MongoDB\BSON\Regex::getPattern — Retourne le masque du REGEX

Description

final public string MongoDB\BSON\Regex::getPattern ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le masque du REGEX.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 Exemple avec BSON\Regex::getPattern()

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump($regex->getPattern());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "regex"

Voir aussi

  • » Les types BSON


Retourne la chaîne représentant cette REGEX

  • « MongoDB\BSON\Regex::getPattern
  • MongoDB\BSON\Timestamp »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Retourne la chaîne représentant cette REGEX

MongoDB\BSON\Regex::__toString

(mongodb >=1.0.0)

MongoDB\BSON\Regex::__toString — Retourne la chaîne représentant cette REGEX

Description

final public string MongoDB\BSON\Regex::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la chaîne représentant cette REGEX.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 Exemple avec BSON\Regex::__toString()

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump((string) $regex);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(8) "/regex/i"

Voir aussi

  • » Les types BSON


La classe MongoDB\BSON\Timestamp

(mongodb >=1.0.0)

Introduction

Représente un » timestamp BSON, qui est un type interne MongoDB prévu pour le stockage général des dates.

Synopsis de la classe

MongoDB\BSON\Timestamp implements MongoDB\BSON\Type {
/* Méthodes */
final public BSON\Timestamp::__construct ( string $increment , string $timestamp )
final public ReturnType BSON\Timestamp::__toString ( void )
}

Sommaire

  • BSON\Timestamp::__construct — Description
  • BSON\Timestamp::__toString — Description


Description

  • « MongoDB\BSON\Timestamp
  • BSON\Timestamp::__toString »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Description

BSON\Timestamp::__construct

(No version information available, might only be in Git)

BSON\Timestamp::__construct — Description

Description

final public BSON\Timestamp::__construct ( string $increment , string $timestamp )

Liste de paramètres

increment

timestamp

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec BSON\Timestamp::__construct()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « BSON\Timestamp::__construct
  • MongoDB\BSON\UTCDatetime »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Description

BSON\Timestamp::__toString

(No version information available, might only be in Git)

BSON\Timestamp::__toString — Description

Description

final public ReturnType BSON\Timestamp::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec BSON\Timestamp::__toString()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe MongoDB\BSON\UTCDatetime

(mongodb >=1.0.0)

Introduction

Représente une » date BSON.

Synopsis de la classe

MongoDB\BSON\UTCDateTime implements MongoDB\BSON\Type {
/* Méthodes */
final public BSON\UTCDatetime::__construct ( string $milliseconds )
final public ReturnType BSON\UTCDatetime::toDateTime ( void )
final public ReturnType BSON\UTCDatetime::__toString ( void )
}

Sommaire

  • BSON\UTCDatetime::__construct — Description
  • BSON\UTCDatetime::toDateTime — Description
  • BSON\UTCDatetime::__toString — Description


Description

  • « MongoDB\BSON\UTCDatetime
  • BSON\UTCDatetime::toDateTime »
  • PHP Manual
  • MongoDB\BSON\UTCDatetime
  • Description

BSON\UTCDatetime::__construct

(No version information available, might only be in Git)

BSON\UTCDatetime::__construct — Description

Description

final public BSON\UTCDatetime::__construct ( string $milliseconds )

Liste de paramètres

milliseconds

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec BSON\UTCDatetime::__construct()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « BSON\UTCDatetime::__construct
  • BSON\UTCDatetime::__toString »
  • PHP Manual
  • MongoDB\BSON\UTCDatetime
  • Description

BSON\UTCDatetime::toDateTime

(No version information available, might only be in Git)

BSON\UTCDatetime::toDateTime — Description

Description

final public ReturnType BSON\UTCDatetime::toDateTime ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec BSON\UTCDatetime::toDateTime()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « BSON\UTCDatetime::toDateTime
  • MongoDB\BSON\Type »
  • PHP Manual
  • MongoDB\BSON\UTCDatetime
  • Description

BSON\UTCDatetime::__toString

(No version information available, might only be in Git)

BSON\UTCDatetime::__toString — Description

Description

final public ReturnType BSON\UTCDatetime::__toString ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec BSON\UTCDatetime::__toString()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


  • « BSON\UTCDatetime::__toString
  • MongoDB\BSON\Persistable »
  • PHP Manual
  • MongoDB\BSON
  • L'interface MongoDB\BSON\Type

L'interface MongoDB\BSON\Type

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

MongoDB\BSON\Type {
}


La classe MongoDB\BSON\Persistable

(mongodb >=1.0.0)

Introduction

Les classes peuvent implémenter cette interface pour avoir la possibilité d'utiliser les ODM automatique (les objets de cartographie des documents) de ce driver. Pendant la linéarisation, le driver va injecter une propriété __pclass contenant le nom de la classe PHP dans les données retournées par MongoDB\BSON\Serializable::bsonSerialize(). Pendant la dé-linéarisation, la même propriété __pclass sera utilisée pour demander à la classe PHP (indépendamment de la configuration type map) de se construire avant que MongoDB\BSON\Unserializable::bsonUnserialize() ne soit invoquée. Voir Persisting Data pour plus d'informations.

Note:

Même si MongoDB\BSON\Serializable::bsonSerialize() veut retourner un tableau séquentiel, l'injection de la propriété __pclass fera que l'objet sera linéarisé comme document BSON.

Synopsis de la classe

MongoDB\BSON\Persistable implements MongoDB\BSON\Unserializable , MongoDB\BSON\Serializable {
/* Méthodes héritées */
abstract public ReturnType BSON\Serializable::bsonSerialize ( void )
abstract public ReturnType BSON\Unserializable::bsonUnserialize ( array $data )
}


La classe MongoDB\BSON\Serializable

(mongodb >=1.0.0)

Introduction

Les classes qui implémentent cette interface peuvent retourner des données à linéariser comme un tableau BSON, ou un document comme propriétés publiques d'objets.

Synopsis de la classe

MongoDB\BSON\Serializable implements MongoDB\BSON\Type {
/* Méthodes */
abstract public ReturnType BSON\Serializable::bsonSerialize ( void )
}

Sommaire

  • BSON\Serializable::bsonSerialize — Description


Description

  • « MongoDB\BSON\Serializable
  • MongoDB\BSON\Unserializable »
  • PHP Manual
  • MongoDB\BSON\Serializable
  • Description

BSON\Serializable::bsonSerialize

(No version information available, might only be in Git)

BSON\Serializable::bsonSerialize — Description

Description

abstract public ReturnType BSON\Serializable::bsonSerialize ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec BSON\Serializable::bsonSerialize()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


L'interface MongoDB\BSON\Unserializable

(mongodb >=1.0.0)

Introduction

Les classes qui implémentent cette interface doivent être spécifiées dans une carte de type pour les tableaux et les documents BSON dé-linéarisés (à la fois racine et embarqué).

Synopsis de la classe

MongoDB\BSON\Unserializable {
/* Méthodes */
abstract public ReturnType BSON\Unserializable::bsonUnserialize ( array $data )
}

Sommaire

  • BSON\Unserializable::bsonUnserialize — Description


Description

  • « MongoDB\BSON\Unserializable
  • MongoDB\Driver\Exception »
  • PHP Manual
  • MongoDB\BSON\Unserializable
  • Description

BSON\Unserializable::bsonUnserialize

(No version information available, might only be in Git)

BSON\Unserializable::bsonUnserialize — Description

Description

abstract public ReturnType BSON\Unserializable::bsonUnserialize ( array $data )

Liste de paramètres

data

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec BSON\Unserializable::bsonUnserialize()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Exception classes

  • MongoDB\Driver\Exception\AuthenticationException — The MongoDB\Driver\Exception\AuthenticationException class
  • MongoDB\Driver\Exception\BulkWriteException — The MongoDB\Driver\Exception\BulkWriteException class
  • MongoDB\Driver\Exception\ConnectionException — The MongoDB\Driver\Exception\ConnectionException class
  • MongoDB\Driver\Exception\ConnectionTimeoutException — The MongoDB\Driver\Exception\ConnectionTimeoutException class
  • MongoDB\Driver\Exception\Exception — The MongoDB\Driver\Exception\Exception interface
  • MongoDB\Driver\Exception\ExecutionTimeoutException — The MongoDB\Driver\Exception\ExecutionTimeoutException class
  • MongoDB\Driver\Exception\InvalidArgumentException — The MongoDB\Driver\Exception\InvalidArgumentException class
  • MongoDB\Driver\Exception\LogicException — The MongoDB\Driver\Exception\LogicException class
  • MongoDB\Driver\Exception\RuntimeException — The MongoDB\Driver\Exception\RuntimeException class
  • MongoDB\Driver\Exception\SSLConnectionException — The MongoDB\Driver\Exception\SSLConnectionException class
  • MongoDB\Driver\Exception\UnexpectedValueException — The MongoDB\Driver\Exception\UnexpectedValueException class
  • MongoDB\Driver\Exception\WriteException — The MongoDB\Driver\Exception\WriteException class
    • MongoDB\Driver\Exception\WriteException::getWriteResult — Returns the WriteResult for the failed write operation


The MongoDB\Driver\Exception\AuthenticationException class

(mongodb >= 1.0.0)

Introduction

Thrown when the driver fails to authenticate with the server.

Synopsis de la classe

MongoDB\Driver\Exception\AuthenticationException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\BulkWriteException class

(mongodb >= 1.0.0)

Introduction

Thrown when a bulk write operation fails.

Synopsis de la classe

MongoDB\Driver\Exception\BulkWriteException extends MongoDB\Driver\Exception\WriteException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected MongoDB\Driver\WriteResult $writeResult ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public MongoDB\Driver\WriteResult MongoDB\Driver\Exception\WriteException::getWriteResult ( void )
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\ConnectionException class

(mongodb >= 1.0.0)

Introduction

Base class for exceptions thrown when the driver fails to establish a database connection.

Synopsis de la classe

MongoDB\Driver\Exception\ConnectionException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\ConnectionTimeoutException class

(mongodb >= 1.0.0)

Introduction

Thrown when the driver fails to establish a database connection within a specified time limit (e.g. » connectTimeoutMS).

Synopsis de la classe

MongoDB\Driver\Exception\ConnectionTimeoutException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\Exception interface

(mongodb >= 1.0.0)

Introduction

Common interface for all driver exceptions. This may be used to catch only exceptions originating from the driver itself.

Synopsis de la classe

MongoDB\Driver\Exception\Exception {
}


The MongoDB\Driver\Exception\ExecutionTimeoutException class

(mongodb >= 1.0.0)

Introduction

Thrown when a query or command fails to complete within a specified time limit (e.g. » maxTimeMS).

Synopsis de la classe

MongoDB\Driver\Exception\ExecutionTimeoutException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\InvalidArgumentException class

(mongodb >= 1.0.0)

Introduction

Thrown when a driver method is given invalid arguments (e.g. invalid option types).

Synopsis de la classe

MongoDB\Driver\Exception\InvalidArgumentException extends InvalidArgumentException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\LogicException class

(mongodb >= 1.0.0)

Introduction

Thrown when the driver is incorrectly used (e.g. rewinding a cursor).

Synopsis de la classe

MongoDB\Driver\Exception\LogicException extends LogicException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\RuntimeException class

(mongodb >= 1.0.0)

Introduction

Thrown when the driver encounters a runtime error (e.g. internal error from » libmongoc).

Synopsis de la classe

MongoDB\Driver\Exception\RuntimeException extends RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\SSLConnectionException class

(mongodb >= 1.0.0)

Introduction

Thrown when the driver fails to establish an SSL connection with the server.

Synopsis de la classe

MongoDB\Driver\Exception\SSLConnectionException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\UnexpectedValueException class

(mongodb >= 1.0.0)

Introduction

Thrown when the driver encounters an unexpected value (e.g. during BSON serialization or deserialization).

Synopsis de la classe

MongoDB\Driver\Exception\UnexpectedValueException extends UnexpectedValueException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\WriteException class

(mongodb >= 1.0.0)

Introduction

Base class for exceptions thrown by a failed write operation. The exception encapsulates a MongoDB\Driver\WriteResult object.

Synopsis de la classe

abstract MongoDB\Driver\Exception\WriteException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Propriétés */
protected MongoDB\Driver\WriteResult $writeResult ;
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes */
final public MongoDB\Driver\WriteResult getWriteResult ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

writeResult

The MongoDB\Driver\WriteResult associated with the failed write operation.

Sommaire

  • MongoDB\Driver\Exception\WriteException::getWriteResult — Returns the WriteResult for the failed write operation


Returns the WriteResult for the failed write operation

  • « MongoDB\Driver\Exception\WriteException
  • mSQL »
  • PHP Manual
  • MongoDB\Driver\Exception\WriteException
  • Returns the WriteResult for the failed write operation

MongoDB\Driver\Exception\WriteException::getWriteResult

(mongodb >= 1.0.0)

MongoDB\Driver\Exception\WriteException::getWriteResult — Returns the WriteResult for the failed write operation

Description

final public MongoDB\Driver\WriteResult MongoDB\Driver\Exception\WriteException::getWriteResult ( void )

Returns the MongoDB\Driver\WriteResult for the failed write operation. The MongoDB\Driver\WriteResult::getWriteErrors() and MongoDB\Driver\WriteResult::getWriteConcernError() methods may be used to get more details about the failure.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The MongoDB\Driver\WriteResult for the failed write operation.

Exemples

Exemple #1 MongoDB\Driver\Exception\WriteException::getWriteResult() example

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost');
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
    $manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\WriteException $e) {
    $writeResult = $e->getWriteResult();

    if ($writeConcernError = $writeResult->getWriteConcernError()) {
        var_dump($writeConcernError);
    }

    if ($writeErrors = $writeResult->getWriteErrors()) {
        var_dump($writeErrors);
    }
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  object(MongoDB\Driver\WriteError)#5 (4) {
    ["message"]=>
    string(70) "E11000 duplicate key error index: db.collection.$_id_ dup key: { : 1 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(1)
    ["info"]=>
    NULL
  }
}

Voir aussi

  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations


mSQL

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
  • Fonctions mSQL
    • msql_affected_rows — Retourne le nombre de lignes affectées
    • msql_close — Ferme une connexion mSQL
    • msql_connect — Ouvre une connexion mSQL
    • msql_create_db — Crée une base de données mSQL
    • msql_createdb — Alias de msql_create_db
    • msql_data_seek — Déplace le pointeur interne mSQL
    • msql_db_query — Soumet une requête mSQL
    • msql_dbname — Alias de msql_result
    • msql_drop_db — Efface une base de données mSQL
    • msql_error — Retourne le message d'erreur mSQL
    • msql_fetch_array — Lit une ligne sous la forme d'un tableau
    • msql_fetch_field — Lit la valeur d'un champ mSQL
    • msql_fetch_object — Lit une ligne sous la forme d'un objet
    • msql_fetch_row — Retourne une ligne sous la forme d'un tableau
    • msql_field_flags — Lit les options de champ msql
    • msql_field_len — Lit la taille du champ mSQL
    • msql_field_name — Lit le nom du champ msql
    • msql_field_seek — Fixe l'offset d'un champ mSQL
    • msql_field_table — Lit le nom de la table du champ msql
    • msql_field_type — Lit le type de champ mSQL
    • msql_fieldflags — Alias de msql_field_flags
    • msql_fieldlen — Alias de msql_field_len
    • msql_fieldname — Alias de msql_field_name
    • msql_fieldtable — Alias de msql_field_table
    • msql_fieldtype — Alias de msql_field_type
    • msql_free_result — Libère le résultat de la mémoire
    • msql_list_dbs — Liste les bases de données mSQL sur un serveur
    • msql_list_fields — Liste les champs d'une table
    • msql_list_tables — Liste les tables mSQL sur une base de données
    • msql_num_fields — Retourne le nombre de champs dans un résultat
    • msql_num_rows — Retourne le nombre de lignes dans un résultat
    • msql_numfields — Alias de msql_num_fields
    • msql_numrows — Alias de msql_num_rows
    • msql_pconnect — Ouvre une connexion persistante à un serveur mSQL
    • msql_query — Envoie une requête mSQL
    • msql_regcase — Alias de sql_regcase
    • msql_result — Retourne les données de résultat
    • msql_select_db — Sélectionne une base de données mSQL
    • msql_tablename — Alias de msql_result
    • msql — Alias de msql_db_query


Introduction

Ces fonctions vous permettent d'accéder aux bases de données mSQL. Plus d'informations sur mSQL à » http://www.hughes.com.au/.


Installation

Façon de pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support msql, en utilisant l'option --with-msql[=DIR] . DIR est le dossier d'installation de mSQL, et vaut par défaut /usr/local/msql3.

Note: Note aux utilisateurs Win32

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : msql.dll


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration MSQL
Nom | Défaut | Modifiable | Historique
msql.allow_persistent | "1" | PHP_INI_ALL |
msql.max_persistent | "-1" | PHP_INI_ALL |
msql.max_links | "-1" | PHP_INI_ALL |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

msql.allow_persistent bool

Activation ou non des connexions mSQL persistantes.

msql.max_persistent entier

Le nombre maximum de connexions mSQL persistantes par processus.

msql.max_links entier

Le nombre maximum de connexions mSQL par processus, y compris les connexions persistantes.


Types de ressources

Il y a deux types de ressources utilisées dans le module mSQL. Le premier est le lien identifiant la connexion de la base de données, le second, représente le résultat d'une requête.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MSQL_ASSOC (entier)
MSQL_NUM (entier)
MSQL_BOTH (entier)


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • mSQL
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Cet exemple simple vous présente comment vous connecter à une base mSQL pour y lire quelques lignes.

Exemple #1 Exemple d'utilisation avec mSQL

<?php
/* Connexion et sélection de la base de données */
$link = msql_connect('localhost', 'username', 'password')
    or die('Could not connect : ' . msql_error($link));

msql_select_db('database', $link)
    or die('Could not select database');

/* Soumission de la requête */
$query = 'SELECT * FROM my_table';
$result = msql_query($query, $link) or die('Échec de la requête : ' . msql_error());

/* Affichage des résultats en HTML*/
echo "<table>\n";
while ($row = msql_fetch_array($result, MSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($row as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

/* Libération des résultats */
msql_free_result($result);

/* Déconnexion */
msql_close($link);
?>


Fonctions mSQL

Sommaire

  • msql_affected_rows — Retourne le nombre de lignes affectées
  • msql_close — Ferme une connexion mSQL
  • msql_connect — Ouvre une connexion mSQL
  • msql_create_db — Crée une base de données mSQL
  • msql_createdb — Alias de msql_create_db
  • msql_data_seek — Déplace le pointeur interne mSQL
  • msql_db_query — Soumet une requête mSQL
  • msql_dbname — Alias de msql_result
  • msql_drop_db — Efface une base de données mSQL
  • msql_error — Retourne le message d'erreur mSQL
  • msql_fetch_array — Lit une ligne sous la forme d'un tableau
  • msql_fetch_field — Lit la valeur d'un champ mSQL
  • msql_fetch_object — Lit une ligne sous la forme d'un objet
  • msql_fetch_row — Retourne une ligne sous la forme d'un tableau
  • msql_field_flags — Lit les options de champ msql
  • msql_field_len — Lit la taille du champ mSQL
  • msql_field_name — Lit le nom du champ msql
  • msql_field_seek — Fixe l'offset d'un champ mSQL
  • msql_field_table — Lit le nom de la table du champ msql
  • msql_field_type — Lit le type de champ mSQL
  • msql_fieldflags — Alias de msql_field_flags
  • msql_fieldlen — Alias de msql_field_len
  • msql_fieldname — Alias de msql_field_name
  • msql_fieldtable — Alias de msql_field_table
  • msql_fieldtype — Alias de msql_field_type
  • msql_free_result — Libère le résultat de la mémoire
  • msql_list_dbs — Liste les bases de données mSQL sur un serveur
  • msql_list_fields — Liste les champs d'une table
  • msql_list_tables — Liste les tables mSQL sur une base de données
  • msql_num_fields — Retourne le nombre de champs dans un résultat
  • msql_num_rows — Retourne le nombre de lignes dans un résultat
  • msql_numfields — Alias de msql_num_fields
  • msql_numrows — Alias de msql_num_rows
  • msql_pconnect — Ouvre une connexion persistante à un serveur mSQL
  • msql_query — Envoie une requête mSQL
  • msql_regcase — Alias de sql_regcase
  • msql_result — Retourne les données de résultat
  • msql_select_db — Sélectionne une base de données mSQL
  • msql_tablename — Alias de msql_result
  • msql — Alias de msql_db_query


Retourne le nombre de lignes affectées

  • « Fonctions mSQL
  • msql_close »
  • PHP Manual
  • Fonctions mSQL
  • Retourne le nombre de lignes affectées

msql_affected_rows

(PHP 4, PHP 5, PHP 7)

msql_affected_rows — Retourne le nombre de lignes affectées

Description

int msql_affected_rows ( resource $result )

msql_affected_rows() retourne le nombre de lignes affectées par la dernière commande INSERT, UPDATE ou DELETE associé au paramètre result.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne le nombre de lignes affectées ou FALSE si une erreur survient.

Voir aussi

  • msql_query() - Envoie une requête mSQL


Ferme une connexion mSQL

  • « msql_affected_rows
  • msql_connect »
  • PHP Manual
  • Fonctions mSQL
  • Ferme une connexion mSQL

msql_close

(PHP 4, PHP 5, PHP 7)

msql_close — Ferme une connexion mSQL

Description

bool msql_close ([ resource $link_identifier ] )

msql_close() ferme la connexion non persistante au serveur de base de données mSQL associée au paramètre link_identifier.

Notez bien qu'il n'est pas toujours nécessaire d'appeler cette fonction, car les connexions non persistantes seront automatiquement fermées à la fin du script. Voir aussi la libération des ressources.

Liste de paramètres

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • msql_connect() - Ouvre une connexion mSQL
  • msql_pconnect() - Ouvre une connexion persistante à un serveur mSQL


Ouvre une connexion mSQL

  • « msql_close
  • msql_create_db »
  • PHP Manual
  • Fonctions mSQL
  • Ouvre une connexion mSQL

msql_connect

(PHP 4, PHP 5, PHP 7)

msql_connect — Ouvre une connexion mSQL

Description

resource msql_connect ([ string $hostname ] )

msql_connect() établit une connexion à un serveur mSQL.

Si un deuxième appel est fait à msql_connect(), avec les mêmes arguments, ce ne sera pas une nouvelle connexion qui va être ouverte, mais l'ancienne connexion qui sera utilisée, et son identifiant sera retourné.

Le lien au serveur sera fermé dès la fin du script, ou bien, manuellement, lors de l'appel de msql_close().

Liste de paramètres

hostname

Le nom d'hôte peut aussi inclure un numéro de port, e.g. hostname,port.

Si ce paramètre n'est pas spécifié, la connexion est établie sous la forme d'un socket de domaine Unix, qui est bien plus efficace qu'un socket TCP vers localhost.

Note:

Bien que cette fonction accepte un deux-points (:) en tant que séparateur hôte/port, l'utilisation d'une virgule (,) est préférée.

Valeurs de retour

Retourne un identifiant de connexion positif mSQL en cas de succès, FALSE sinon.

Voir aussi

  • msql_pconnect() - Ouvre une connexion persistante à un serveur mSQL
  • msql_close() - Ferme une connexion mSQL


Crée une base de données mSQL

  • « msql_connect
  • msql_createdb »
  • PHP Manual
  • Fonctions mSQL
  • Crée une base de données mSQL

msql_create_db

(PHP 4, PHP 5, PHP 7)

msql_create_db — Crée une base de données mSQL

Description

bool msql_create_db ( string $database_name [, resource $link_identifier ] )

msql_create_db() essaie de créer une nouvelle base de données nommée database_name sur le serveur référencé par l'identifiant link_identifier.

Liste de paramètres

database_name

Le nom de la base de données mSQL.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • msql_drop_db() - Efface une base de données mSQL


Alias de msql_create_db

  • « msql_create_db
  • msql_data_seek »
  • PHP Manual
  • Fonctions mSQL
  • Alias de msql_create_db

msql_createdb

(PHP 4, PHP 5, PHP 7)

msql_createdb — Alias de msql_create_db()

Description

Cette fonction est un alias de : msql_create_db().


Déplace le pointeur interne mSQL

  • « msql_createdb
  • msql_db_query »
  • PHP Manual
  • Fonctions mSQL
  • Déplace le pointeur interne mSQL

msql_data_seek

(PHP 4, PHP 5, PHP 7)

msql_data_seek — Déplace le pointeur interne mSQL

Description

bool msql_data_seek ( resource $result , int $row_number )

msql_data_seek() déplace le pointeur interne de résultat mSQL, et le place à l'offset donné. Le prochain appel à la fonction msql_fetch_row() retournera cette ligne.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

row_number

Le numéro de ligne désiré.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • msql_fetch_array() - Lit une ligne sous la forme d'un tableau
  • msql_fetch_object() - Lit une ligne sous la forme d'un objet
  • msql_fetch_row() - Retourne une ligne sous la forme d'un tableau
  • msql_result() - Retourne les données de résultat


Soumet une requête mSQL

  • « msql_data_seek
  • msql_dbname »
  • PHP Manual
  • Fonctions mSQL
  • Soumet une requête mSQL

msql_db_query

(PHP 4, PHP 5, PHP 7)

msql_db_query — Soumet une requête mSQL

Description

resource msql_db_query ( string $database , string $query [, resource $link_identifier ] )

msql_db_query() sélectionne une base de données, et exécute une requête.

Liste de paramètres

database

Le nom de la base de données mSQL.

query

La requête SQL.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un identifiant de requête mSQL positif au résultat de la requête ou FALSE si une erreur survient.

Voir aussi

  • msql_query() - Envoie une requête mSQL


Alias de msql_result

  • « msql_db_query
  • msql_drop_db »
  • PHP Manual
  • Fonctions mSQL
  • Alias de msql_result

msql_dbname

(PHP 4, PHP 5, PHP 7)

msql_dbname — Alias de msql_result()

Description

Cette fonction est un alias de : msql_result().


Efface une base de données mSQL

  • « msql_dbname
  • msql_error »
  • PHP Manual
  • Fonctions mSQL
  • Efface une base de données mSQL

msql_drop_db

(PHP 4, PHP 5, PHP 7)

msql_drop_db — Efface une base de données mSQL

Description

bool msql_drop_db ( string $database_name [, resource $link_identifier ] )

msql_drop_db() essaie d'effacer une base de données entière sur le serveur référencé par l'identifiant link_identifier.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • msql_create_db() - Crée une base de données mSQL


Retourne le message d'erreur mSQL

  • « msql_drop_db
  • msql_fetch_array »
  • PHP Manual
  • Fonctions mSQL
  • Retourne le message d'erreur mSQL

msql_error

(PHP 4, PHP 5, PHP 7)

msql_error — Retourne le message d'erreur mSQL

Description

string msql_error ( void )

msql_error() retourne la dernière erreur retournée par le serveur mSQL. Notez que seul le dernier message est retourné par la fonction msql_error().

Valeurs de retour

Le dernier message d'erreur ou une chaîne vide s'il n'y en a aucune.


Lit une ligne sous la forme d'un tableau

  • « msql_error
  • msql_fetch_field »
  • PHP Manual
  • Fonctions mSQL
  • Lit une ligne sous la forme d'un tableau

msql_fetch_array

(PHP 4, PHP 5, PHP 7)

msql_fetch_array — Lit une ligne sous la forme d'un tableau

Description

array msql_fetch_array ( resource $result [, int $result_type ] )

msql_fetch_array() est une version évoluée de msql_fetch_row(). En plus d'enregistrer les données dans un tableau à indice numérique, il enregistre aussi les données dans un tableau associatif, en utilisant les noms des champs comme clés.

Il est important de noter que msql_fetch_array() n'est PAS significativement plus lent que msql_fetch_row(), alors qu'elle apporte un confort d'utilisation appréciable.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

result_type

Une constante qui peut prendre les valeurs suivantes : MSQL_ASSOC, MSQL_NUM, et MSQL_BOTH où MSQL_BOTH est la valeur par défaut.

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

Exemples

Exemple #1 Exemple avec msql_fetch_array()

<?php
$con = msql_connect();
if (!$con) {
  die('Problème de connexion avec le serveur : ' . msql_error());
}

if (!msql_select_db('test', $con)) {
  die('Problème de connexion avec la base de données : ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
  die('Problème d\'exécution de la requête : ' . msql_error());
}

while ($row = msql_fetch_array($result, MSQL_ASSOC)) {
  echo $row['id'] . ': ' . $row['name'] . "\n";
}

msql_free_result($result);
?>

Historique

Version | Description
5.0.4 | Un bogue a été résolu lors de la récupération des données depuis des colonnes contenant les valeurs NULL. De telles colonnes n'étaient pas placées dans le tableau résultant.

Voir aussi

  • msql_fetch_row() - Retourne une ligne sous la forme d'un tableau
  • msql_fetch_object() - Lit une ligne sous la forme d'un objet
  • msql_data_seek() - Déplace le pointeur interne mSQL
  • msql_result() - Retourne les données de résultat


Lit la valeur d'un champ mSQL

  • « msql_fetch_array
  • msql_fetch_object »
  • PHP Manual
  • Fonctions mSQL
  • Lit la valeur d'un champ mSQL

msql_fetch_field

(PHP 4, PHP 5, PHP 7)

msql_fetch_field — Lit la valeur d'un champ mSQL

Description

object msql_fetch_field ( resource $result [, int $field_offset = 0 ] )

msql_fetch_field() sert à lire les informations sur les champs dans certaines requêtes.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position du champ. Si non spécifié, le prochain champ qui n'a pas encore été récupéré par la fonction msql_fetch_field() sera récupéré.

Valeurs de retour

Retourne un objet contenant les informations du champs. Les propriétés de l'objet sont :

  • name : le nom de la colonne

  • table : le nom de la table à laquelle les colonnes appartiennent

  • not_null : 1 si la colonne ne peut valoir NULL

  • unique : 1 si la colonne est une clé unique

  • type : Le type de la colonne

Voir aussi

  • msql_field_seek() - Fixe l'offset d'un champ mSQL


Lit une ligne sous la forme d'un objet

  • « msql_fetch_field
  • msql_fetch_row »
  • PHP Manual
  • Fonctions mSQL
  • Lit une ligne sous la forme d'un objet

msql_fetch_object

(PHP 4, PHP 5, PHP 7)

msql_fetch_object — Lit une ligne sous la forme d'un objet

Description

object msql_fetch_object ( resource $result )

msql_fetch_object() est identique à msql_fetch_array(), avec une différence : c'est un objet qui est retourné, à la place d'un tableau. Par conséquent, cela signifie que vous ne pouvez accéder aux valeurs que par les noms des champs, et non plus avec leur offset. (Les nombres sont interdits dans les noms de propriétés).

msql_fetch_object() est aussi rapide que
msql_fetch_array(), et marginalement plus
lente que msql_fetch_row()
(la différence n'est pas significative).

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne un objet dont les propriétés correspondent à la ligne récupérée, ou FALSE si'il n'y a plus de lignes.

Exemples

Exemple #1 Exemple avec msql_fetch_object()

<?php
$con = msql_connect();
if (!$con) {
die('Problème de connexion au serveur : ' . msql_error());
}

if (!msql_select_db('test', $con)) {
die('Problème de connexion à la base de données : ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
die('Problème lors de l\'exécution de la requête : ' . msql_error());
}

while ($row = msql_fetch_object($result, MSQL_ASSOC)) {
echo $row->id . ': ' . $row->name . "\n";
}

msql_free_result($result);
?>

Historique

Version | Description
5.0.4 | Un bogue a été résolu lors de la récupération des données depuis des colonnes contenant les valeurs NULL. De telles colonnes n'étaient pas placées dans le tableau résultant.

Voir aussi

  • msql_fetch_array() - Lit une ligne sous la forme d'un tableau
  • msql_fetch_row() - Retourne une ligne sous la forme d'un tableau
  • msql_data_seek() - Déplace le pointeur interne mSQL
  • msql_result() - Retourne les données de résultat


Retourne une ligne sous la forme d'un tableau

  • « msql_fetch_object
  • msql_field_flags »
  • PHP Manual
  • Fonctions mSQL
  • Retourne une ligne sous la forme d'un tableau

msql_fetch_row

(PHP 4, PHP 5, PHP 7)

msql_fetch_row — Retourne une ligne sous la forme d'un tableau

Description

array msql_fetch_row ( resource $result )

msql_fetch_row() récupère une ligne de données depuis le résultat associé avec l'identifiant de requête spécifié. La ligne est retourné sous la forme d'un tableau. Chaque colonne du résultat est stockée dans une ligne du tableau, en commençant à la position 0.

Les appels suivants à la fonction msql_fetch_row() retourneront les prochaines lignes du jeu de résultat, ou FALSE s'il n'y a plus de lignes de disponible.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne un tableau qui correspond à la ligne lue, ou FALSE s'il n'y a plus de lignes de disponible.

Exemples

Exemple #1 Exemple avec msql_fetch_row()

<?php
$con = msql_connect();
if (!$con) {
  die('Problème de connexion au serveur : ' . msql_error());
}

if (!msql_select_db('test', $con)) {
  die('Problème de connexion à la base de données : ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
  die('Problème lors de l\'exécution de la requête : ' . msql_error());
}

while ($row = msql_fetch_row($result)) {
  echo $row[0] . ': ' . $row[1] . "\n";
}

msql_free_result($result);
?>

Historique

Version | Description
5.0.4 | Un bogue a été résolu lors de la récupération des données depuis des colonnes contenant les valeurs NULL. De telles colonnes n'étaient pas placées dans le tableau résultant.

Voir aussi

  • msql_fetch_array() - Lit une ligne sous la forme d'un tableau
  • msql_fetch_object() - Lit une ligne sous la forme d'un objet
  • msql_data_seek() - Déplace le pointeur interne mSQL
  • msql_result() - Retourne les données de résultat


Lit les options de champ msql

  • « msql_fetch_row
  • msql_field_len »
  • PHP Manual
  • Fonctions mSQL
  • Lit les options de champ msql

msql_field_flags

(PHP 4, PHP 5, PHP 7)

msql_field_flags — Lit les options de champ msql

Description

string msql_field_flags ( resource $result , int $field_offset )

msql_field_flags() retourne les options du champ field_offset.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Retourne une chaîne contenant les options du champ correspondant à la clé spécifiée. Cela peut être : primary key not null, not null, primary key, unique not null ou unique.


Lit la taille du champ mSQL

  • « msql_field_flags
  • msql_field_name »
  • PHP Manual
  • Fonctions mSQL
  • Lit la taille du champ mSQL

msql_field_len

(PHP 4, PHP 5, PHP 7)

msql_field_len — Lit la taille du champ mSQL

Description

int msql_field_len ( resource $result , int $field_offset )

msql_field_len() retourne la taille du champ spécifié.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Retourne la taille du champ spécifié ou FALSE en cas d'erreur.


Lit le nom du champ msql

  • « msql_field_len
  • msql_field_seek »
  • PHP Manual
  • Fonctions mSQL
  • Lit le nom du champ msql

msql_field_name

(PHP 4, PHP 5, PHP 7)

msql_field_name — Lit le nom du champ msql

Description

string msql_field_name ( resource $result , int $field_offset )

msql_field_name() retourne le nom du champ de l'index spécifié.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Le nom du champ ou FALSE si une erreur survient.

Voir aussi

  • msql_field_len() - Lit la taille du champ mSQL


Fixe l'offset d'un champ mSQL

  • « msql_field_name
  • msql_field_table »
  • PHP Manual
  • Fonctions mSQL
  • Fixe l'offset d'un champ mSQL

msql_field_seek

(PHP 4, PHP 5, PHP 7)

msql_field_seek — Fixe l'offset d'un champ mSQL

Description

bool msql_field_seek ( resource $result , int $field_offset )

msql_field_seek() recherche l'offset du champ field_offset. Le prochain appel à msql_fetch_field() sans l'argument field_offset, retournera ce champ.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • msql_fetch_field() - Lit la valeur d'un champ mSQL


Lit le nom de la table du champ msql

  • « msql_field_seek
  • msql_field_type »
  • PHP Manual
  • Fonctions mSQL
  • Lit le nom de la table du champ msql

msql_field_table

(PHP 4, PHP 5, PHP 7)

msql_field_table — Lit le nom de la table du champ msql

Description

int msql_field_table ( resource $result , int $field_offset )

msql_field_table() retourne le nom de la table dans laquelle le champ field a été lu.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Le nom de la table en cas de succès ou FALSE si une erreur survient.


Lit le type de champ mSQL

  • « msql_field_table
  • msql_fieldflags »
  • PHP Manual
  • Fonctions mSQL
  • Lit le type de champ mSQL

msql_field_type

(PHP 4, PHP 5, PHP 7)

msql_field_type — Lit le type de champ mSQL

Description

string msql_field_type ( resource $result , int $field_offset )

msql_field_type() récupère le type du champ spécifié par son index.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Le type du champ. Une valeur parmi int, char, real, ident, null ou unknown. Cette fonction retourne FALSE si une erreur survient.


Alias de msql_field_flags

  • « msql_field_type
  • msql_fieldlen »
  • PHP Manual
  • Fonctions mSQL
  • Alias de msql_field_flags

msql_fieldflags

(PHP 4, PHP 5, PHP 7)

msql_fieldflags — Alias de msql_field_flags()

Description

msql_fieldflags() est un alias de la fonction msql_field_flags().


Alias de msql_field_len

  • « msql_fieldflags
  • msql_fieldname »
  • PHP Manual
  • Fonctions mSQL
  • Alias de msql_field_len

msql_fieldlen

(PHP 4, PHP 5, PHP 7)

msql_fieldlen — Alias de msql_field_len()

Description

Cette fonction est un alias de la fonction msql_field_len().


Alias de msql_field_name

  • « msql_fieldlen
  • msql_fieldtable »
  • PHP Manual
  • Fonctions mSQL
  • Alias de msql_field_name

msql_fieldname

(PHP 4, PHP 5, PHP 7)

msql_fieldname — Alias de msql_field_name()

Description

msql_fieldname() est un alias de la fonction msql_field_name().


Alias de msql_field_table

  • « msql_fieldname
  • msql_fieldtype »
  • PHP Manual
  • Fonctions mSQL
  • Alias de msql_field_table

msql_fieldtable

(PHP 4, PHP 5, PHP 7)

msql_fieldtable — Alias de msql_field_table()

Description

msql_fieldtable() est un alias de la fonction msql_field_table().


Alias de msql_field_type

  • « msql_fieldtable
  • msql_free_result »
  • PHP Manual
  • Fonctions mSQL
  • Alias de msql_field_type

msql_fieldtype

(PHP 4, PHP 5, PHP 7)

msql_fieldtype — Alias de msql_field_type()

Description

msql_fieldtype() est un alias de la fonction msql_field_type().


Libère le résultat de la mémoire

  • « msql_fieldtype
  • msql_list_dbs »
  • PHP Manual
  • Fonctions mSQL
  • Libère le résultat de la mémoire

msql_free_result

(PHP 4, PHP 5, PHP 7)

msql_free_result — Libère le résultat de la mémoire

Description

bool msql_free_result ( resource $result )

msql_free_result() libère de la mémoire le résultat associé à l'identifiant de résultat query_identifier. Lorsque PHP a terminé une requête, cette mémoire est libérée, ce qui fait que vous n'aurez pas besoin de cette fonction. Vous pouvez toujours l'utiliser pour vous assurer que vous n'utilisez pas trop de mémoire durant un script.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Liste les bases de données mSQL sur un serveur

  • « msql_free_result
  • msql_list_fields »
  • PHP Manual
  • Fonctions mSQL
  • Liste les bases de données mSQL sur un serveur

msql_list_dbs

(PHP 4, PHP 5, PHP 7)

msql_list_dbs — Liste les bases de données mSQL sur un serveur

Description

resource msql_list_dbs ([ resource $link_identifier ] )

msql_list_tables() liste tous les bases de données disponibles sur la base spécifiée par link_identifier.

Liste de paramètres

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un jeu de résultats qui peut être lu par n'importe quelle fonction capable de parcourir un tel résultat, comme msql_fetch_array(). Si une erreur survient, cette fonction retournera FALSE.

Voir aussi

  • msql_list_tables() - Liste les tables mSQL sur une base de données
  • msql_list_fields() - Liste les champs d'une table


Liste les champs d'une table

  • « msql_list_dbs
  • msql_list_tables »
  • PHP Manual
  • Fonctions mSQL
  • Liste les champs d'une table

msql_list_fields

(PHP 4, PHP 5, PHP 7)

msql_list_fields — Liste les champs d'une table

Description

resource msql_list_fields ( string $database , string $tablename [, resource $link_identifier ] )

msql_list_fields() lit les informations de la table tablename.

Liste de paramètres

database

Le nom de la base de données.

tablename

Le nom de la table.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un jeu de résultats pouvant être parcouru par n'importe quelle fonction capable, comme msql_fetch_array(). Si une erreur survient, cette fonction retournera FALSE.

Voir aussi

  • msql_list_tables() - Liste les tables mSQL sur une base de données
  • msql_list_dbs() - Liste les bases de données mSQL sur un serveur


Liste les tables mSQL sur une base de données

  • « msql_list_fields
  • msql_num_fields »
  • PHP Manual
  • Fonctions mSQL
  • Liste les tables mSQL sur une base de données

msql_list_tables

(PHP 4, PHP 5, PHP 7)

msql_list_tables — Liste les tables mSQL sur une base de données

Description

resource msql_list_tables ( string $database [, resource $link_identifier ] )

msql_list_tables() liste les tables de la base de données spécifiée par database.

Liste de paramètres

database

Le nom de la base de données.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un jeu de résultats pouvant être parcouru par n'importe quelle fonction capable, comme msql_fetch_array(). Si une erreur survient, cette fonction retournera FALSE.

Voir aussi

  • msql_list_fields() - Liste les champs d'une table
  • msql_list_dbs() - Liste les bases de données mSQL sur un serveur


Retourne le nombre de champs dans un résultat

  • « msql_list_tables
  • msql_num_rows »
  • PHP Manual
  • Fonctions mSQL
  • Retourne le nombre de champs dans un résultat

msql_num_fields

(PHP 4, PHP 5, PHP 7)

msql_num_fields — Retourne le nombre de champs dans un résultat

Description

int msql_num_fields ( resource $result )

msql_num_fields() retourne le nombre de champs du résultat associé à l'identifiant query_identifier.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne le nombre de champs dans le jeu de résultats.

Voir aussi

  • msql_query() - Envoie une requête mSQL
  • msql_fetch_field() - Lit la valeur d'un champ mSQL
  • msql_num_rows() - Retourne le nombre de lignes dans un résultat


Retourne le nombre de lignes dans un résultat

  • « msql_num_fields
  • msql_numfields »
  • PHP Manual
  • Fonctions mSQL
  • Retourne le nombre de lignes dans un résultat

msql_num_rows

(PHP 4, PHP 5, PHP 7)

msql_num_rows — Retourne le nombre de lignes dans un résultat

Description

int msql_num_rows ( resource $query_identifier )

msql_num_rows() retourne le nombre de lignes dans d'un jeu de résultat.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne le nombre de lignes dans le jeu de résultats.

Voir aussi

  • msql_num_fields() - Retourne le nombre de champs dans un résultat


Alias de msql_num_fields

  • « msql_num_rows
  • msql_numrows »
  • PHP Manual
  • Fonctions mSQL
  • Alias de msql_num_fields

msql_numfields

(PHP 4, PHP 5, PHP 7)

msql_numfields — Alias de msql_num_fields()

Description

msql_numfields() est un alias de la fonction msql_num_fields().


Alias de msql_num_rows

  • « msql_numfields
  • msql_pconnect »
  • PHP Manual
  • Fonctions mSQL
  • Alias de msql_num_rows

msql_numrows

(PHP 4, PHP 5, PHP 7)

msql_numrows — Alias de msql_num_rows()

Description

msql_numrows() est un alias de la fonction msql_num_rows().


Ouvre une connexion persistante à un serveur mSQL

  • « msql_numrows
  • msql_query »
  • PHP Manual
  • Fonctions mSQL
  • Ouvre une connexion persistante à un serveur mSQL

msql_pconnect

(PHP 4, PHP 5, PHP 7)

msql_pconnect — Ouvre une connexion persistante à un serveur mSQL

Description

resource msql_pconnect ([ string $hostname ] )

msql_pconnect() se comporte presque comme msql_connect(), mais à deux différences majeures près.

D'abord, lors de la connexion, msql_pconnect() cherche si une connexion persistante a déjà été ouverte sur le même hôte. Si une telle connexion est trouvée, elle sera utilisée.

Deuxièmement, la connexion au serveur SQL ne sera pas terminée lors de la fin de l'exécution du script. À la place, le lien restera ouvert pour d'autres connexions futures. (msql_close() ne fermera pas un lien ouvert par msql_pconnect()).

Liste de paramètres

hostname

Le nom de l'hôte peut également inclure un numéro de port. e.g. hostname,port.

Si non spécifié, la connexion est établie sous la forme d'un socket Unix, ce qui est plus efficace d'une connexion via un socket TCP.

Note: Bien que cette fonction accepte un deux-points (:) pour séparer l'hôte du port, une virgule (,) est la méthode conseillée.

Valeurs de retour

Retourne un identifiant de connexion mSQL en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • msql_connect() - Ouvre une connexion mSQL
  • msql_close() - Ferme une connexion mSQL


Envoie une requête mSQL

  • « msql_pconnect
  • msql_regcase »
  • PHP Manual
  • Fonctions mSQL
  • Envoie une requête mSQL

msql_query

(PHP 4, PHP 5, PHP 7)

msql_query — Envoie une requête mSQL

Description

resource msql_query ( string $query [, resource $link_identifier ] )

msql_query() envoie une requête à la base de données active, sur le serveur associé à l'identifiant de connexion link_identifier.

Liste de paramètres

query

La requête SQL.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un identifiant positif de connexion mSQL en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec msql_query()

<?php
$link = msql_connect("dbserver")
or die("Impossible de se connecter au serveur msql : " . msql_error());
msql_select_db("db", $link)
or die("Impossible de sélectionner la base de données 'db': " . msql_error());

$result = msql_query("SELECT * FROM table WHERE id=1", $link);
if (!$result) {
   die("Échec de la requête : " . msql_error());
}

while ($row = msql_fetch_array($result)) {
   echo $row["id"];
}
?>

Voir aussi

  • msql_db_query() - Soumet une requête mSQL
  • msql_select_db() - Sélectionne une base de données mSQL
  • msql_connect() - Ouvre une connexion mSQL


Alias de sql_regcase

  • « msql_query
  • msql_result »
  • PHP Manual
  • Fonctions mSQL
  • Alias de sql_regcase

msql_regcase

(PHP 4, PHP 5, PHP 7)

msql_regcase — Alias de sql_regcase()

Description

msql_regcase() est un alias de la fonction sql_regcase().


Retourne les données de résultat

  • « msql_regcase
  • msql_select_db »
  • PHP Manual
  • Fonctions mSQL
  • Retourne les données de résultat

msql_result

(PHP 4, PHP 5, PHP 7)

msql_result — Retourne les données de résultat

Description

string msql_result ( resource $result , int $row [, mixed $field ] )

msql_result() retourne la valeur de la cellule, à la ligne row et l'offset spécifié, field dans le résultat mSQL query_identifier.

Lorsque vous travaillez sur des résultats de grande taille, il est préférable d'utiliser les fonctions qui récupèrent toute la ligne (voir ci-dessous). Comme ces fonctions retournent plusieurs cellules en même temps, elles sont beaucoup plus rapide que msql_result().

Alternatives recommandées :
msql_fetch_row(),
msql_fetch_array() et
msql_fetch_object().

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

row

L'offset de la ligne.

field

Peut être l'offset du champ, ou le nom du champ, le nom de la table, suivi du nom du champ (tablename.fieldname.). Si le nom de la colonne est un alias ("select foo as bar from ..."), utilisez cet alias au lieu du nom de la colonne.

Note:

Le fait de spécifier l'offset numérique d'un champ est plus rapide que de spécifier le nom du champ ou bien la forme tablename.fieldname.

Valeurs de retour

Retourne le contenu de la cellule se trouvant à la ligne et à la position spécifiées dans le jeu de résultats mSQL.


Sélectionne une base de données mSQL

  • « msql_result
  • msql_tablename »
  • PHP Manual
  • Fonctions mSQL
  • Sélectionne une base de données mSQL

msql_select_db

(PHP 4, PHP 5, PHP 7)

msql_select_db — Sélectionne une base de données mSQL

Description

bool msql_select_db ( string $database_name [, resource $link_identifier ] )

msql_select_db() sélectionne la base de données active sur le serveur associé à link_identifier.

Les appels suivant à msql_query() seront effectués sur la base de données active.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • msql_connect() - Ouvre une connexion mSQL
  • msql_pconnect() - Ouvre une connexion persistante à un serveur mSQL
  • msql_query() - Envoie une requête mSQL


Alias de msql_result

  • « msql_select_db
  • msql »
  • PHP Manual
  • Fonctions mSQL
  • Alias de msql_result

msql_tablename

(PHP 4, PHP 5, PHP 7)

msql_tablename — Alias de msql_result()

Description

msql_tablename() est un alias de la fonction msql_result().


Alias de msql_db_query

  • « msql_tablename
  • Mssql »
  • PHP Manual
  • Fonctions mSQL
  • Alias de msql_db_query

msql

(PHP 4, PHP 5, PHP 7)

msql — Alias de msql_db_query()

Description

msql() est un alias de la fonction msql_db_query().


Serveur MS SQL

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Mssql
    • mssql_bind — Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante)
    • mssql_close — Ferme une connexion MS SQL Server
    • mssql_connect — Ouvre une connexion à un serveur MS SQL server
    • mssql_data_seek — Déplace le pointeur interne de ligne
    • mssql_execute — Exécute une procédure stockée sur un serveur MS SQL
    • mssql_fetch_array — Lit une ligne de résultat MS SQL dans un tableau
    • mssql_fetch_assoc — Retourne un tableau associatif pour la ligne courant de résultat MS SQL Server
    • mssql_fetch_batch — Retourne le prochain lot de lignes MS SQL Server
    • mssql_fetch_field — Lit les informations sur le champ
    • mssql_fetch_object — Retourne une ligne de résultat MS SQL Server sous la forme d'un objet
    • mssql_fetch_row — Lit une ligne de résultat MS SQL dans un tableau numérique
    • mssql_field_length — Lit la longueur d'un champ MS SQL Server
    • mssql_field_name — Lit le nom d'un champ MS SQL Server
    • mssql_field_seek — Fixe la position du pointeur de champ MS SQL Server
    • mssql_field_type — Lit le nom d'un champ MS SQL Server
    • mssql_free_result — Libère la mémoire des ressources MS SQL Server
    • mssql_free_statement — Libère une commande MS SQL Server de la mémoire
    • mssql_get_last_message — Retourne le dernier message d'erreur du serveur
    • mssql_guid_string — Convertit le GUID binaire de 16 octets en une chaîne de caractères
    • mssql_init — Initialise une procédure stockée MS SQL Server locale ou distante
    • mssql_min_error_severity — Fixe le niveau de sévérité des erreurs MS SQL Server
    • mssql_min_message_severity — Fixe le niveau de sévérité des messages d'erreur MS SQL Server
    • mssql_next_result — Déplace le pointeur interne MS SQL Server au résultat suivant
    • mssql_num_fields — Retourne le nombre de champs dans un résultat MS SQL Server
    • mssql_num_rows — Retourne le nombre de lignes dans un résultat MS SQL
    • mssql_pconnect — Ouvre une connexion persistante à un serveur MS SQL
    • mssql_query — Envoie une requête SQL au serveur MS SQL
    • mssql_result — Lit les données d'un résultat
    • mssql_rows_affected — Retourne le nombre de lignes affectées par une requête MS SQL Server
    • mssql_select_db — Sélectionne la base de données MS SQL


Introduction

Avertissement

Cette fonctionnalité a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonctionnalité incluent :

  • PDO_SQLSRV (Windows seulement)
  • PDO_ODBC
  • SQLSRV (Windows seulement)
  • ODBC API unifié

Ces fonctions vous permettent d'accéder aux serveurs de données MS SQL.

Cette extension n'est plus disponible sous Windows avec PHP 5.3 et suivant.

SQLSRV, une extension alternative pour la connectivité MS SQL est disponible chez Microsoft : » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx.


Pré-requis

Requis pour les plates-formes Windows

Vous avez besoin d'un client MS SQL Client Tools sur votre système, accessible à PHP. Les Client Tools peuvent être installés depuis le CD MS SQL Server CD ou en copiant ntwdblib.dll depuis le dossier \winnt\system32 du serveur MS SQL vers \winnt\system32 sur le serveur PHP. Copier ntwdblib.dll ne fera que fournir le moyen d'accès. La configuration du client requiert l'installation des autres outils.

Cette extension n'est plus disponible sous Windows avec PHP 5.3 et suivant.

SQLSRV, un pilote de remplacement pour MS SQL est disponible chez Microsoft : » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx.

Prérequis pour les plates-formes Unix/Linux.

Pour utiliser l'extension MS SQL sur Unix/Linux, vous devez commencer par compiler et installer la bibliothèque FreeTDS. Le code source et les instructions d'installation sont disponibles sur le site de FreeTDS : » http://www.freetds.org/

Note:

Sur Windows, la bibliothèque DBLIB de Microsoft est utilisée. Les fonctions qui retournent les noms de colonnes sont basées sur la fonction dbcolname() de DBLIB. DBLIB a été développée pour MS SQL Server 6.x où la longueur maximale de l'identifiant est 30. Pour cette raison, la longueur maximale des colonnes est 30. Sur les plates-formes où FreeTDS est utilisé (Linux), il n'y pas ce problème.

Note:

Sur Windows, si vous utilisez MSSQL 2005 ou plus récent, vous devez copier la bibliothèque ntwdblib.dll dans le dossier où vous avez installé PHP, et écraser celle qui s'y trouve. Ceci est dû à la version qui est distribuée avec PHP : elle est ancienne et obsolète. Autrement, vous pouvez utiliser » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx, ODBC, PDO_DBLIB or PDO_ODBC pour communiquer avec MSSQL.


Installation

L'extension MSSQL est activée par la ligne extension=php_mssql.dll dans le fichier php.ini.

Pour que ces fonctions fonctionnent, vous devez compiler PHP avec --with-mssql[=DIR] , où DIR est le préfixe d'installation FreeTDS. Et le FreeTDS doit être compilé en utilisant --enable-msdblib .

Avertissement

Les fonctions MS SQL sont liées aux fonctions Sybase si PHP est compilé avec l'extension Sybase et sans l'extension MS SQL.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Microsoft SQL Server
Nom | Défaut | Modifiable | Historique
mssql.allow_persistent | "1" | PHP_INI_SYSTEM |
mssql.max_persistent | "-1" | PHP_INI_SYSTEM |
mssql.max_links | "-1" | PHP_INI_SYSTEM |
mssql.min_error_severity | "10" | PHP_INI_ALL |
mssql.min_message_severity | "10" | PHP_INI_ALL |
mssql.compatability_mode | "0" | PHP_INI_ALL |
mssql.connect_timeout | "5" | PHP_INI_ALL |
mssql.timeout | "60" | PHP_INI_ALL | Disponible depuis PHP 4.1.0.
mssql.textsize | "-1" | PHP_INI_ALL |
mssql.textlimit | "-1" | PHP_INI_ALL |
mssql.batchsize | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.4.
mssql.datetimeconvert | "1" | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
mssql.secure_connection | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0.
mssql.max_procs | "-1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
mssql.charset | "" | PHP_INI_ALL | Disponible depuis PHP 5.1.2 si compilé avec FreeTDS 7.0 ou plus récent.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.


Types de ressources

mssql link

Un lien de connexion, retourné par les fonctions mssql_connect() et mssql_pconnect().

mssql result

Une ressource de résultat, retourné par mssql_query() avec une requête SELECT.

mssql statement

Une commande préparée, retournée par mssql_init().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MSSQL_ASSOC (entier)
Retourne un tableau associatif. Utilisé comme paramètre de result_type, avec la fonction mssql_fetch_array().
MSSQL_NUM (entier)
Retourne un tableau numérique. Utilisé comme paramètre de result_type, avec la fonction mssql_fetch_array().
MSSQL_BOTH (entier)
Retourne un tableau numérique et associatif. Utilisé comme paramètre de result_type, avec la fonction mssql_fetch_array(). C'est la valeur par défaut.
SQLTEXT (entier)
Représente le type 'TEXT' en MSSQL, utilisé par le paramètre de type dans la fonction mssql_bind().
SQLVARCHAR (entier)
Représente le type 'VARCHAR' en MSSQL, utilisé par le paramètre de type dans la fonction mssql_bind().
SQLCHAR (entier)
Représente le type 'CHAR' en MSSQL, utilisé par le paramètre de type dans la fonction mssql_bind().
SQLINT1 (entier)
Représente un entier d'un octet, de -128 à 127.
SQLINT2 (entier)
Représente un entier de deux octets, de -32768 à 32767.
SQLINT4 (entier)
Représente un entier de quatre octets, de -2147483648 à 2147483647.
SQLBIT (entier)
Représente le type 'BIT' en MSSQL, utilisé par le paramètre de type dans la fonction mssql_bind().
SQLFLT4 (entier)
Représente un nombre décimal de quatre octets.
SQLFLT8 (entier)
Représente un nombre décimal de huit octets.


Fonctions Mssql

Sommaire

  • mssql_bind — Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante)
  • mssql_close — Ferme une connexion MS SQL Server
  • mssql_connect — Ouvre une connexion à un serveur MS SQL server
  • mssql_data_seek — Déplace le pointeur interne de ligne
  • mssql_execute — Exécute une procédure stockée sur un serveur MS SQL
  • mssql_fetch_array — Lit une ligne de résultat MS SQL dans un tableau
  • mssql_fetch_assoc — Retourne un tableau associatif pour la ligne courant de résultat MS SQL Server
  • mssql_fetch_batch — Retourne le prochain lot de lignes MS SQL Server
  • mssql_fetch_field — Lit les informations sur le champ
  • mssql_fetch_object — Retourne une ligne de résultat MS SQL Server sous la forme d'un objet
  • mssql_fetch_row — Lit une ligne de résultat MS SQL dans un tableau numérique
  • mssql_field_length — Lit la longueur d'un champ MS SQL Server
  • mssql_field_name — Lit le nom d'un champ MS SQL Server
  • mssql_field_seek — Fixe la position du pointeur de champ MS SQL Server
  • mssql_field_type — Lit le nom d'un champ MS SQL Server
  • mssql_free_result — Libère la mémoire des ressources MS SQL Server
  • mssql_free_statement — Libère une commande MS SQL Server de la mémoire
  • mssql_get_last_message — Retourne le dernier message d'erreur du serveur
  • mssql_guid_string — Convertit le GUID binaire de 16 octets en une chaîne de caractères
  • mssql_init — Initialise une procédure stockée MS SQL Server locale ou distante
  • mssql_min_error_severity — Fixe le niveau de sévérité des erreurs MS SQL Server
  • mssql_min_message_severity — Fixe le niveau de sévérité des messages d'erreur MS SQL Server
  • mssql_next_result — Déplace le pointeur interne MS SQL Server au résultat suivant
  • mssql_num_fields — Retourne le nombre de champs dans un résultat MS SQL Server
  • mssql_num_rows — Retourne le nombre de lignes dans un résultat MS SQL
  • mssql_pconnect — Ouvre une connexion persistante à un serveur MS SQL
  • mssql_query — Envoie une requête SQL au serveur MS SQL
  • mssql_result — Lit les données d'un résultat
  • mssql_rows_affected — Retourne le nombre de lignes affectées par une requête MS SQL Server
  • mssql_select_db — Sélectionne la base de données MS SQL


Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante)

  • « Fonctions Mssql
  • mssql_close »
  • PHP Manual
  • Fonctions Mssql
  • Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante)

mssql_bind

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_bind — Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante)

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::bindParam()
  • PDOStatement::bindValue()
  • sqlsrv_prepare()
  • odbc_prepare()

Description

bool mssql_bind ( resource $stmt , string $param_name , mixed &$var , int $type [, bool $is_output = false [, bool $is_null = false [, int $maxlen = -1 ]]] )

Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante).

Liste de paramètres

stmt

Une ressource de requête, obtenue avec la fonction mssql_init().

param_name

Le nom du paramètre, sous la forme d'une chaîne de caractères.

Note:

Vous devez ajouter un caractère @, comme dans la syntaxe T-SQL. Voir l'explication dans la documentation de la fonction mssql_execute().

var

La variable PHP que vous voulez lier au paramètre MSSQL. Il faut la passer par référence pour récupérer les valeurs OUTPUT et RETVAL après l'exécution de la procédure.

type

Une constante parmi : SQLTEXT, SQLVARCHAR, SQLCHAR, SQLINT1, SQLINT2, SQLINT4, SQLBIT, SQLFLT4, SQLFLT8, SQLFLTN.

is_output

Si la valeur est un paramètre OUTPUT ou non. Si c'est un paramètre OUTPUT et que vous ne mentionnez pas, il sera traité comme un paramètre d'entrée normal et aucune erreur ne sera émise.

is_null

Si le paramètre vaut NULL ou non. Le fait de passer NULL comme valeur au paramètre var n'y fera rien.

maxlen

Utilisé avec les valeurs de type CHAR et VARCHAR. Vous devez indiquer la longueur des données, donc, si ce paramètre vaut VARCHAR(50), le type doit être SQLVARCHAR et sa valeur, 50.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_bind()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Crée une nouvelle procédure stockée
$stmt = mssql_init('NewUserRecord');

// Lie les noms de champs
mssql_bind($stmt, '@username',  'Kalle',        SQLVARCHAR,     false,  false,  60);
mssql_bind($stmt, '@name',      'Kalle',        SQLVARCHAR,     false,  false,  60);
mssql_bind($stmt, '@age',       19,             SQLINT1,        false,  false,   3);

// Exécute
mssql_execute($stmt);

// Libère les ressources
mssql_free_statement($stmt);
?>

Voir aussi

  • mssql_execute() - Exécute une procédure stockée sur un serveur MS SQL
  • mssql_free_statement() - Libère une commande MS SQL Server de la mémoire
  • mssql_init() - Initialise une procédure stockée MS SQL Server locale ou distante


Ferme une connexion MS SQL Server

  • « mssql_bind
  • mssql_connect »
  • PHP Manual
  • Fonctions Mssql
  • Ferme une connexion MS SQL Server

mssql_close

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_close — Ferme une connexion MS SQL Server

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • sqlsrv_close()
  • odbc_close()
  • odbc_close_all()

Description

bool mssql_close ([ resource $link_identifier ] )

Ferme la connexion à la base MS SQL Server, qui était associée à l'identifiant link_identifier. Si ce dernier n'est pas précisé, la dernière connexion ouverte sera fermée.

Notez qu'il n'est pas nécessaire de fermer les connexions non persistantes aux bases de données, car elles seront fermées automatiquement à la fin du script.

Liste de paramètres

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect().

Cette fonction ne ferme pas les liens persistants générés par la fonction mssql_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_close()

<?php
// Connexion à MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Quelques requêtes SQL sur le serveur ici...

// Fermeture de la connexion à MSSQL
mssql_close($link);
?>

Voir aussi

  • mssql_connect() - Ouvre une connexion à un serveur MS SQL server
  • mssql_pconnect() - Ouvre une connexion persistante à un serveur MS SQL


Ouvre une connexion à un serveur MS SQL server

  • « mssql_close
  • mssql_data_seek »
  • PHP Manual
  • Fonctions Mssql
  • Ouvre une connexion à un serveur MS SQL server

mssql_connect

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_connect — Ouvre une connexion à un serveur MS SQL server

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDO::__construct()
  • sqlsrv_connect()
  • odbc_connect()

Description

resource mssql_connect ([ string $servername [, string $username [, string $password [, bool $new_link = false ]]]] )

mssql_connect() établit une connexion à un serveur MS SQL.

Le lien avec le serveur sera fermé dès la fin du script, ce qui fait qu'on n'est pas obligé de fermer explicitement la connexion à la fin du script avec mssql_close().

Liste de paramètres

servername

Le serveur MS SQL. Il peut également contenir le numéro du port, . e.g. hostname:port (Linux), ou hostname,port (Windows).

username

Le nom d'utilisateur.

password

Le mot de passe.

new_link

Si un deuxième appel est fait à mssql_connect() avec les mêmes arguments, un nouveau lien ne sera pas retourné, mais le lien déjà ouvert sera utilisé. Ce paramètre modifie ce comportement et fait que la fonction mssql_connect() ouvre toujours un nouveau lien, même si la fonction mssql_connect() a été appelée avant, avec les mêmes paramètres.

Valeurs de retour

Retourne un identifiant de lien MS SQL en cas de succès, ou FALSE si une erreur survient.

Historique

Version | Description
5.1.0 | Le paramètre new_link a été ajouté.

Exemples

Exemple #1 Exemple avec mssql_connect()

<?php
// Le serveur est au format : <hôte>\<nom d'instance> ou
// <serveur>,<port> quand on utilise un port différent de celui par défaut
$server = 'KALLESPC\SQLEXPRESS';

// Connexion à MSSQL
$link = mssql_connect($server, 'sa', 'phpfi');

if(!$link) {
    die('Erreur de connexion à MSSQL');
}
?>

Voir aussi

  • mssql_close() - Ferme une connexion MS SQL Server
  • mssql_pconnect() - Ouvre une connexion persistante à un serveur MS SQL


Déplace le pointeur interne de ligne

  • « mssql_connect
  • mssql_execute »
  • PHP Manual
  • Fonctions Mssql
  • Déplace le pointeur interne de ligne

mssql_data_seek

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_data_seek — Déplace le pointeur interne de ligne

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • Utiliser une clause OFFSET avec une requête émise via PDO_SQLSRV, PDO_ODBC, SQLSRV, ou le driver ODBC unifié.

Description

bool mssql_data_seek ( resource $result_identifier , int $row_number )

mssql_data_seek() déplace le pointeur interne de ligne, dans le résultat result_identifier, jusqu'à la ligne row_number, la première étant numérotée 0. Le prochain appel à mssql_fetch_row() retournera cette ligne.

Liste de paramètres

result_identifier

La ressource de résultat à évaluer.

row_number

Le numéro de la ligne désiré pour le nouveau pointeur de résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_data_seek()

<?php
// Connexion à MSSQL et sélection de la base de données
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Sélection de tout le monde
$result = mssql_query('SELECT [name], [age] FROM [persons] WHERE [age] >= 13');

if (!$result) {
    die('La requête a échoué.');
}

// Sélection d'un étudiant sur quatre, dans les résultats
for ($i = mssql_num_rows($result) - 1; $i % 4; $i++) {
    if (!mssql_data_seek($result, $i)) {
        continue;
    }

    // Lecture d'une ligne...
}

// Libération du résultat
mssql_free_result($result);
?>


Exécute une procédure stockée sur un serveur MS SQL

  • « mssql_data_seek
  • mssql_fetch_array »
  • PHP Manual
  • Fonctions Mssql
  • Exécute une procédure stockée sur un serveur MS SQL

mssql_execute

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_execute — Exécute une procédure stockée sur un serveur MS SQL

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • Utiliser une requête EXEC envoyée via PDO_SQLSRV, PDO_ODBC, SQLSRV, ou le driver ODBC unifié.

Description

mixed mssql_execute ( resource $stmt [, bool $skip_results = false ] )

Exécute une procédure stockée sur un serveur MS SQL.

Liste de paramètres

stmt

Le gestionnaire de requête, obtenu avec la fonction mssql_init().

skip_results

Omettre les résultats ou non.

Exemples

Exemple #1 Exemple avec mssql_execute()

<?php
// Création d'une nouvelle commande
$stmt = mssql_init('NewBlogEntry');

// Quelques données
$title = 'Test of blogging system';
$content = 'If you can read this, then the new system is compatible with MSSQL';

// Liaison des variables
mssql_bind($stmt, '@author',    'Felipe Pena',  SQLVARCHAR,     false,  false,  60);
mssql_bind($stmt, '@date',      '08/10/2008',   SQLVARCHAR,     false,  false,  20);
mssql_bind($stmt, '@title',     $title,         SQLVARCHAR,     false,  false,  60);
mssql_bind($stmt, '@content',   $content,       SQLTEXT);

// Exécution de la commande
mssql_execute($stmt);

// Et libération des ressources :
mssql_free_statement($stmt);
?>

Notes

Note:

Si la procédure stockée retourne un paramètre ou une valeur, ils seront disponibles après l'appel à la fonction mssql_execute(), à moins que la procédure stockée ne retourne plusieurs résultats. Dans ce cas, utilisez la fonction mssql_next_result() pour passer en revue tous les résultats. Lorsque le dernier résultat aura été traité, les valeurs des paramètres de sortie et les valeurs retournées seront disponibles.

Voir aussi

  • mssql_bind() - Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante)
  • mssql_free_statement() - Libère une commande MS SQL Server de la mémoire
  • mssql_init() - Initialise une procédure stockée MS SQL Server locale ou distante


Lit une ligne de résultat MS SQL dans un tableau

  • « mssql_execute
  • mssql_fetch_assoc »
  • PHP Manual
  • Fonctions Mssql
  • Lit une ligne de résultat MS SQL dans un tableau

mssql_fetch_array

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_array — Lit une ligne de résultat MS SQL dans un tableau

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::fetch()
  • sqlsrv_fetch_array()
  • odbc_fetch_array()

Description

array mssql_fetch_array ( resource $result [, int $result_type = MSSQL_BOTH ] )

mssql_fetch_array() est une version améliorée de mssql_fetch_row(). En plus de stocker les données dans un tableau à index numérique, elle les stocke aussi dans un tableau associatif, en utilisant les noms de colonnes comme clés.

Une chose importante à noter est que mssql_fetch_array() n'est PAS significativement plus lente que mssql_fetch_row(), tandis qu'elle apporte un confort appréciable.

Liste de paramètres

result

La ressource de résultat à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

result_type

Un tableau de types qui doivent être récupérés. C'est une constante et peut prendre les valeurs suivantes : MSSQL_ASSOC, MSSQL_NUM, et MSSQL_BOTH.

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de ligne.

Exemples

Exemple #1 Exemple avec mssql_fetch_array()

<?php
// Requête de sélection à MSSQL
$query = mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Vérifie s'il y a des lignes
if (!mssql_num_rows($query)) {
    echo 'Pas de ligne trouvée';
} else {
    // Ceci est équivalent au code ci-dessous :
    //
    // while($row = mssql_fetch_row($query))

    while ($row = mssql_fetch_array($query, MSSQL_NUM)) {
        // ...
    }
}

// Libération des ressources
mssql_free_result($query);
?>

Notes

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

  • mssql_fetch_row() - Lit une ligne de résultat MS SQL dans un tableau numérique


Retourne un tableau associatif pour la ligne courant de résultat MS SQL Server

  • « mssql_fetch_array
  • mssql_fetch_batch »
  • PHP Manual
  • Fonctions Mssql
  • Retourne un tableau associatif pour la ligne courant de résultat MS SQL Server

mssql_fetch_assoc

(PHP 4 >= 4.2.0, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_assoc — Retourne un tableau associatif pour la ligne courant de résultat MS SQL Server

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::fetch()
  • sqlsrv_fetch_array()
  • odbc_fetch_array()

Description

array mssql_fetch_assoc ( resource $result_id )

Retourne un tableau associatif pour la ligne courante de résultat MS SQL Server et déplace le pointeur de données interne au début. mssql_fetch_assoc() est équivalent à mssql_fetch_array() avec le paramètre MSSQL_ASSOC.

Liste de paramètres

result_id

La ressource de résultat à lire. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne un tableau associatif qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de ligne.

Exemples

Exemple #1 Exemple avec mssql_fetch_assoc()

<?php
// Effectue une sélection sur MSSQL
$query = mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Vérifie s'il y a des résultats
if (!mssql_num_rows($query)) {
    echo 'Pas de résultats trouvés';
} else {
    // Affiche une liste d'utilisateurs au format
    // nom (login)

    echo '<ul>';

    while ($row = mssql_fetch_assoc($query)) {
        echo '<li>' . $row['name'] . ' (' . $row['username'] . ')</li>';
    }

    echo '</ul>';
}

// Libère les résultats
mssql_free_result($query);
?>


Retourne le prochain lot de lignes MS SQL Server

  • « mssql_fetch_assoc
  • mssql_fetch_field »
  • PHP Manual
  • Fonctions Mssql
  • Retourne le prochain lot de lignes MS SQL Server

mssql_fetch_batch

(PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_batch — Retourne le prochain lot de lignes MS SQL Server

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

int mssql_fetch_batch ( resource $result )

Retourne le prochain lot de lignes MS SQL Server.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne le nombre de lignes du lot retourné.

Exemples

Exemple #1 Exemple avec mssql_fetch_batch()

<?php
// Connexion à MSSQL et sélection de la base de données
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Envoi d'une requête
$result = mssql_query('SELECT * FROM [php].[dbo].[people]', $link, 100);
$records = 10;

while ($records >= 0) {
    while ($row = mssql_fetch_assoc($result))
    {
        // Traitement
    }

    --$records;
}

if ($batchsize = mssql_fetch_batch($result)) {
    // $batchsize est le nombre de ligne à lire
    // dans le résultat, mais enocre à afficher
}
?>


Lit les informations sur le champ

  • « mssql_fetch_batch
  • mssql_fetch_object »
  • PHP Manual
  • Fonctions Mssql
  • Lit les informations sur le champ

mssql_fetch_field

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_field — Lit les informations sur le champ

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::getColumnMeta()
  • sqlsrv_field_metadata()
  • Les diverses fonctions odbc_field_* du driver ODBC unifié.

Description

object mssql_fetch_field ( resource $result [, int $field_offset = -1 ] )

mssql_fetch_field() sert à lire des informations spécifiques à un champ, dans un résultat de requête.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

field_offset

La position numérique du champ. Si l'offset du champ field_offset n'est pas précisé, le prochain champ sera analysé. field_offset commence à 0.

Valeurs de retour

Retourne un objet contenant les informations du champ.

Les propriétés de l'objet sont :

  • "name" : nom de la colonne. Si la colonne est le résultat d'une fonction, le nom de la colonne sera computed#N, où #N est un numéro de série.
  • "column_source" : le nom de la table d'où la colonne est originaire.
  • "max_length" : taille maximale de la colonne.
  • "numeric" : 1 si la colonne est numérique.
  • "type" : le type de la colonne.

Exemples

Exemple #1 Exemple avec mssql_fetch_field()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Envoie une requête Select à MSSQL
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');

// Construit la table
echo '<h3>Table structure for \'persons\'</h3>';
echo '<table border="1">';

// Entête de table
echo '<thead>';
echo '<tr>';
echo '<td>Field name</td>';
echo '<td>Data type</td>';
echo '<td>Max length</td>';
echo '</tr>';
echo '</thead>';

// Champs
echo '<tbody>';

for ($i = 0; $i < mssql_num_fields($query); ++$i) {
    // Lecture des informations des champs
    $field = mssql_fetch_field($query, $i);

    // Affichage de la ligne
    echo '<tr>';
    echo '<td>' . $field->name . '</td>';
    echo '<td>' . strtoupper($field->type) . '</td>';
    echo '<td>' . $field->max_length . '</td>';
    echo '</tr>';
}

echo '</tbody>';
echo '</table>';

// Libération des ressources
mssql_free_result($query);
?>

Voir aussi

  • mssql_field_seek() - Fixe la position du pointeur de champ MS SQL Server


Retourne une ligne de résultat MS SQL Server sous la forme d'un objet

  • « mssql_fetch_field
  • mssql_fetch_row »
  • PHP Manual
  • Fonctions Mssql
  • Retourne une ligne de résultat MS SQL Server sous la forme d'un objet

mssql_fetch_object

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_object — Retourne une ligne de résultat MS SQL Server sous la forme d'un objet

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::fetchObject()
  • sqlsrv_fetch_object()
  • odbc_fetch_object()

Description

object mssql_fetch_object ( resource $result )

mssql_fetch_object() est similaire à mssql_fetch_array(), avec une différence : un objet est retourné, au lieu d'un tableau. Indirectement, cela signifie que vous ne pouvez accéder aux données que par leur nom de champ, et pas par leur offset (les nombres sont illégaux comme nom de propriété).

En terme de vitesse, cette fonction est identique à mssql_fetch_array(), quasiment aussi rapide que mssql_fetch_row() (la différence est non significative).

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne un objet dont les propriétés contiennent les valeurs de la ligne courante dans le résultat result, ou FALSE s'il n'y a plus de ligne.

Exemples

Exemple #1 Exemple avec mssql_fetch_object()

<?php
// Envoie une requête de sélection à MSSQL
$query = mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Check if there were any records
if(!mssql_num_rows($query)) {
    echo 'Aucune ligne trouvée';
} else {
    // Affiche une liste d'utilisateur au format :
    // * nom (login)

    echo '<ul>';

    while ($row = mssql_fetch_object($query)) {
        echo '<li>' . $row->name . ' (' . $row->username . ')</li>';
    }

    echo '</ul>';
}

// Libère le résultat
mssql_free_result($query);
?>

Notes

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

  • mssql_fetch_array() - Lit une ligne de résultat MS SQL dans un tableau
  • mssql_fetch_row() - Lit une ligne de résultat MS SQL dans un tableau numérique


Lit une ligne de résultat MS SQL dans un tableau numérique

  • « mssql_fetch_object
  • mssql_field_length »
  • PHP Manual
  • Fonctions Mssql
  • Lit une ligne de résultat MS SQL dans un tableau numérique

mssql_fetch_row

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_row — Lit une ligne de résultat MS SQL dans un tableau numérique

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::fetch()
  • sqlsrv_fetch_array()
  • odbc_fetch_row()

Description

array mssql_fetch_row ( resource $result )

mssql_fetch_row() lit une ligne dans le résultat result et place les valeurs dans un tableau. Chaque valeur est enregistrée dans un élément du tableau, et les indices commencent à 0.

Les appels suivants à mssql_fetch_row() retourneront la ligne suivante, ou bien FALSE s'il ne reste plus de ligne.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne un tableau qui contient les valeurs de la ligne courante du résultat result ou bien FALSE s'il n'y a plus de ligne à lire.

Exemples

Exemple #1 Exemple avec mssql_fetch_row()

<?php
// Connexion à MSSQL et sélection de la base de données
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Exécution d'une requête
$query = mssql_query('SELECT [id], [quote] FROM [quotes] WHERE [id] = \'42\'', $link);

// Est-ce que la requête a échoué?
if (!$query) {
    die('MSSQL error: ' . mssql_get_last_message());
}

// Lit la ligne
$row = mssql_fetch_row($query);

// Affiche la ligne
echo 'Quote #' . $row[0] . ': "' . $row[1] . '"';
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Quote #42: "La réponse est ..."

Notes

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

  • mssql_fetch_array() - Lit une ligne de résultat MS SQL dans un tableau
  • mssql_fetch_object() - Retourne une ligne de résultat MS SQL Server sous la forme d'un objet
  • mssql_data_seek() - Déplace le pointeur interne de ligne
  • mssql_result() - Lit les données d'un résultat


Lit la longueur d'un champ MS SQL Server

  • « mssql_fetch_row
  • mssql_field_name »
  • PHP Manual
  • Fonctions Mssql
  • Lit la longueur d'un champ MS SQL Server

mssql_field_length

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_length — Lit la longueur d'un champ MS SQL Server

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::getColumnMeta()
  • sqlsrv_field_metadata()
  • odbc_field_len()

Description

int mssql_field_length ( resource $result [, int $offset = -1 ] )

Retourne la longueur d'un champ numéro offset dans le résultat result.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient de l'appel à la fonction mssql_query().

offset

La position du champ, en commençant à 0. Si ce paramètre est omis, le champ courant sera utilisé.

Valeurs de retour

La longueur du champ spécifié en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_field_length()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Envoi d'une requête Select
$query = mssql_query('SELECT [name], [age] FROM [php].[dbo].[persons]');

// Affichage de la taille du champ et sa taille
echo 'Le champ \'age\' a la taille de ' . mssql_field_length($query, 1);

// Free the query result
mssql_free_result($query);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le champ 'age' a la taille de 4

Notes

Note: Note pour les utilisateurs Windows

À cause d'une limitation dans l'API utilisé par PHP (MS DbLib C API), la longueur des champs VARCHAR est limitée à 255. Si vous avez besoin d'enregistrer plus de données, utilisez un champ TEXT à la place.

Voir aussi

  • mssql_field_name() - Lit le nom d'un champ MS SQL Server
  • mssql_field_type() - Lit le nom d'un champ MS SQL Server


Lit le nom d'un champ MS SQL Server

  • « mssql_field_length
  • mssql_field_seek »
  • PHP Manual
  • Fonctions Mssql
  • Lit le nom d'un champ MS SQL Server

mssql_field_name

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_name — Lit le nom d'un champ MS SQL Server

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::getColumnMeta()
  • sqlsrv_field_metadata()
  • odbc_field_name()

Description

string mssql_field_name ( resource $result [, int $offset = -1 ] )

Retourne le nom du champ numéro offset du résultat result.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

offset

La position du champ, en commençant à 0. Si ce paramètre est omis, le champ courant sera utilisé.

Valeurs de retour

Le nom du champ spécifié en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_field_name()

<?php
// Envoi une requête de type SELECT à MSSQL
$query = mssql_query('SELECT [username], [name], [email] FROM [php].[dbo].[userlist]');

echo 'Le jeu de résultat contient le(s) champ(s) suivant(s) :', PHP_EOL;

// Affiche le nom de tous les champs du jeu de résultats
for ($i = 0; $i < mssql_num_fields($query); ++$i) {
    echo ' - ' . mssql_field_name($query, $i), PHP_EOL;
}

// Libère le jeu de résultats
mssql_free_result($query);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le jeu de résultat contient le(s) champ(s) suivant(s) :
 - username
 - name
 - email

Voir aussi

  • mssql_field_length() - Lit la longueur d'un champ MS SQL Server
  • mssql_field_type() - Lit le nom d'un champ MS SQL Server


Fixe la position du pointeur de champ MS SQL Server

  • « mssql_field_name
  • mssql_field_type »
  • PHP Manual
  • Fonctions Mssql
  • Fixe la position du pointeur de champ MS SQL Server

mssql_field_seek

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_seek — Fixe la position du pointeur de champ MS SQL Server

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

bool mssql_field_seek ( resource $result , int $field_offset )

Modifie la valeur du pointeur de champ. Lors du prochain appel à mssql_fetch_field() qui ne précisera pas de numéro de champ, le champ fixé par mssql_field_seek() sera retourné.

Liste de paramètres

result

La ressource du résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

field_offset

La position du champ, en commençant à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_field_seek()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Requête de sélection sur MSSQL
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');

// Construction d'une table HTML
echo '<h3>Table structure for \'persons\'</h3>';
echo '<table border="1">';

// Entête
echo '<thead>';
echo '<tr>';
echo '<td>Nom du champ</td>';
echo '<td>Type de données</td>';
echo '<td>Taille maximale</td>';
echo '</tr>';
echo '</thead>';

// Affichage de toutes les données
echo '<tbody>';

for ($i = 0; $i < mssql_num_fields($query); ++$i) {
    // Lecture du champ : notez le paramètre
    // field_offset qui n'est pas configuré. Voyez l'appel
    // à mssql_field_seek ci-dessous
    $field = mssql_fetch_field($query);

    // Affichage de la ligne
    echo '<tr>';
    echo '<td>' . $field->name . '</td>';
    echo '<td>' . strtoupper($field->type) . '</td>';
    echo '<td>' . $field->max_length . '</td>';
    echo '</tr>';

    // Déplacement du pointeur interne, jusqu'à la prochaine ligne
    // dans le résultat
    mssql_field_seek($query, $i + 1);
}

echo '</tbody>';
echo '</table>';

// Libération du résultat
mssql_free_result($query);
?>

Voir aussi

  • mssql_fetch_field() - Lit les informations sur le champ


Lit le nom d'un champ MS SQL Server

  • « mssql_field_seek
  • mssql_free_result »
  • PHP Manual
  • Fonctions Mssql
  • Lit le nom d'un champ MS SQL Server

mssql_field_type

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_type — Lit le nom d'un champ MS SQL Server

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::getColumnMeta()
  • sqlsrv_field_metadata()
  • odbc_field_type()

Description

string mssql_field_type ( resource $result [, int $offset = -1 ] )

Retourne le type du champ numéro offset dans le résultat result.

Liste de paramètres

result

La ressource du résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

offset

La position du champ, en commençant à 0. Si ce paramètre est omis, le champ courant sera utilisé.

Valeurs de retour

Le type du champ spécifié en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_field_type()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Envoi d'une requête MSSQL
$query = mssql_query('SELECT [name] FROM [php].[dbo].[persons]');

// Affiche le type de champ et sa taille
echo '\'' . mssql_field_name($query, 0) . '\' est de type ' .
     strtoupper(mssql_field_type($query, 0)) .
     '(' . mssql_field_length($query, 0) . ')';

// Libère le résultat
mssql_free_result($query);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

'name' est de type CHAR(50)

Voir aussi

  • mssql_field_length() - Lit la longueur d'un champ MS SQL Server
  • mssql_field_name() - Lit le nom d'un champ MS SQL Server


Libère la mémoire des ressources MS SQL Server

  • « mssql_field_type
  • mssql_free_statement »
  • PHP Manual
  • Fonctions Mssql
  • Libère la mémoire des ressources MS SQL Server

mssql_free_result

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_free_result — Libère la mémoire des ressources MS SQL Server

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • odbc_free_result()

Description

bool mssql_free_result ( resource $result )

mssql_free_result() n'a besoin d'être appelée que si vous vous inquiétez de l'utilisation excessive de la mémoire durant l'exécution de votre script. La mémoire sera automatiquement libérée à la fin de votre script. Vous devriez appeler mssql_free_result() avec l'identifiant de résultat en tant que paramètre et la mémoire associée sera libérée.

Liste de paramètres

result

La ressource de résultats à libérer. Ce résultat provient de l'appel à la fonction mssql_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_free_result()

<?php
// Lit des données depuis une table
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]', $link);

// Traite le résultat ici

// Quand on a fini, on libère les ressources occupées
// avec la fonction mssql_free_result
mssql_free_result($query);
?>

Voir aussi

  • mssql_free_statement() - Libère une commande MS SQL Server de la mémoire


Libère une commande MS SQL Server de la mémoire

  • « mssql_free_result
  • mssql_get_last_message »
  • PHP Manual
  • Fonctions Mssql
  • Libère une commande MS SQL Server de la mémoire

mssql_free_statement

(PHP 4 >= 4.3.2, PHP 5, PECL odbtp >= 1.1.1)

mssql_free_statement — Libère une commande MS SQL Server de la mémoire

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • sqlsrv_free_stmt()

Description

bool mssql_free_statement ( resource $stmt )

mssql_free_statement() n'est utile que si vous craignez de consommer trop de mémoire durant l'exécution de votre script. Toute la mémoire consommée par une commande sera libérée lorsque le script se termine. Avec la fonction mssql_free_statement(), la mémoire associée au résultat statement sera libérée.

Liste de paramètres

stmt

La ressource de la requête, obtenue avec la fonction mssql_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_free_statement()

<?php
// Crée une nouvelle commande
$stmt = mssql_init('test');

// Exécute la commande ici

// Une fois terminé, nous pouvons libérer les ressources
// avec mssql_free_statement, comme ceci :
mssql_free_statement($stmt);
?>

Voir aussi

  • mssql_bind() - Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante)
  • mssql_execute() - Exécute une procédure stockée sur un serveur MS SQL
  • mssql_init() - Initialise une procédure stockée MS SQL Server locale ou distante
  • mssql_free_result() - Libère la mémoire des ressources MS SQL Server


Retourne le dernier message d'erreur du serveur

  • « mssql_free_statement
  • mssql_guid_string »
  • PHP Manual
  • Fonctions Mssql
  • Retourne le dernier message d'erreur du serveur

mssql_get_last_message

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_get_last_message — Retourne le dernier message d'erreur du serveur

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::errorInfo()
  • sqlsrv_errors()
  • odbc_errormsg()

Description

string mssql_get_last_message ( void )

Lit le dernier message d'erreur du serveur MS-SQL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le dernier message d'erreur du serveur, ou une chaîne vide, si aucune message d'erreur n'a été retourné par MSSQL.

Exemples

Exemple #1 Exemple avec mssql_get_last_message()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Une requête qui échoue
$query = @mssql_query('SELECT * FROM [php].[dbo].[not-found]');

if (!$query) {
    // La requête a échoué, retourné un message d'erreur et nous
    // pouvons l'obtenir avec mssql_get_last_message()
    die('Erreur MSSQL : ' . mssql_get_last_message());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Erreur MSSQL : Invalid object name 'php.dbo.not-found'.

Voir aussi

  • mssql_min_error_severity() - Fixe le niveau de sévérité des erreurs MS SQL Server
  • mssql_min_message_severity() - Fixe le niveau de sévérité des messages d'erreur MS SQL Server


Convertit le GUID binaire de 16 octets en une chaîne de caractères

  • « mssql_get_last_message
  • mssql_init »
  • PHP Manual
  • Fonctions Mssql
  • Convertit le GUID binaire de 16 octets en une chaîne de caractères

mssql_guid_string

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_guid_string — Convertit le GUID binaire de 16 octets en une chaîne de caractères

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

string mssql_guid_string ( string $binary [, bool $short_format = false ] )

Convertit un GUID binaire de 16 octets en une chaîne de caractères.

Liste de paramètres

binary

Un GUID binaire, de 16 octets.

short_format

TRUE s'il faut utiliser le format court.

Valeurs de retour

Retourne la chaîne convertie en cas de succès.

Exemples

Exemple #1 Exemple avec mssql_guid_string()

<?php
$binary = '19555081977808608437941339997619274330352755554827939936';

var_dump(mssql_guid_string($binary));
var_dump(mssql_guid_string($binary, true));
?>

L'exemple ci-dessus va afficher :

string(36) "35353931-3035-3138-3937-373830383630"
string(32) "31393535353038313937373830383630"


Initialise une procédure stockée MS SQL Server locale ou distante

  • « mssql_guid_string
  • mssql_min_error_severity »
  • PHP Manual
  • Fonctions Mssql
  • Initialise une procédure stockée MS SQL Server locale ou distante

mssql_init

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_init — Initialise une procédure stockée MS SQL Server locale ou distante

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • Utiliser une requête EXEC émise via PDO_SQLSRV, PDO_ODBC, SQLSRV, ou le driver ODBC unifié.

Description

resource mssql_init ( string $sp_name [, resource $link_identifier ] )

Initialise une procédure stockée MS SQL Server locale ou distante.

Liste de paramètres

sp_name

Le nom d'une procédure stocké, comme ownew.sp_name ou otherdb.owner.sp_name.

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect().

Valeurs de retour

Retourne un identifiant de ressource de requête, à utiliser lors des appels aux fonctions mssql_bind() et mssql_execute(), ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_init()

<?php
// Connexion à MSSQL et sélection de la base de données
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Création d'une nouvelle commande
$stmt = mssql_init('StatementTest', $link);

// Liaisons des valeurs ici

// Une fois que les valerus sont liées, nous pouvons exécuter
// notre commande avec mssql_execute:
mssql_execute($stmt);

// Et nous pouvons tout libérer ainsi :
mssql_free_statement($stmt);
?>

Voir aussi

  • mssql_bind() - Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante)
  • mssql_execute() - Exécute une procédure stockée sur un serveur MS SQL
  • mssql_free_statement() - Libère une commande MS SQL Server de la mémoire


Fixe le niveau de sévérité des erreurs MS SQL Server

  • « mssql_init
  • mssql_min_message_severity »
  • PHP Manual
  • Fonctions Mssql
  • Fixe le niveau de sévérité des erreurs MS SQL Server

mssql_min_error_severity

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_min_error_severity — Fixe le niveau de sévérité des erreurs MS SQL Server

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

void mssql_min_error_severity ( int $severity )

Configure le minimum de sévérité.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mssql_min_error_severity()

<?php
// Connexion à MSSQL et sélection de la base de données
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Configure le minimum de sévérité pour ne pas inclure les
// erreurs de syntaxe en utilisant une valeur supérieure à 1
mssql_min_error_severity(1);

// Envoi d'une requête qui cause des erreurs SQL
$query = mssql_query('SELECT `syntax`, `error` FROM `MSSQL`');

if(!$query) {
    // Gestionnaire personnalisé d'erreurs...
}
?>


Fixe le niveau de sévérité des messages d'erreur MS SQL Server

  • « mssql_min_error_severity
  • mssql_next_result »
  • PHP Manual
  • Fonctions Mssql
  • Fixe le niveau de sévérité des messages d'erreur MS SQL Server

mssql_min_message_severity

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_min_message_severity — Fixe le niveau de sévérité des messages d'erreur MS SQL Server

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

void mssql_min_message_severity ( int $severity )

Fixe le niveau de sévérité des messages d'erreurs MS SQL Server.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mssql_min_message_severity()

<?php
// Connexion à MSSQL
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Configure la sévérité minimum des messages à 17,
// ce qui masque les messages produits par l'API sous-jacente
// API lorsqu'on sélectionne une base inexistante
mssql_min_message_severity(17);

// Sélectionne une base inexistante
mssql_select_db('THIS_DATABASE_DOES_NOT_EXISTS');
?>

L'exemple ci-dessus va afficher :

mssql_select_db(): Unable to select database:  THIS_DATABASE_DOES_NOT_EXISTS


Déplace le pointeur interne MS SQL Server au résultat suivant

  • « mssql_min_message_severity
  • mssql_num_fields »
  • PHP Manual
  • Fonctions Mssql
  • Déplace le pointeur interne MS SQL Server au résultat suivant

mssql_next_result

(PHP 4 >= 4.0.5, PHP 5, PECL odbtp >= 1.1.1)

mssql_next_result — Déplace le pointeur interne MS SQL Server au résultat suivant

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::nextRowset()
  • sqlsrv_next_result()
  • odbc_next_result()

Description

bool mssql_next_result ( resource $result_id )

Lorsque vous envoyez plus d'une commande SQL au serveur, ou que vous exécutez une procédure stockée avec de multiples résultats, cela va conduire le serveur à retourner plusieurs jeux de lignes. mssql_next_result() va vérifier l'existence de plusieurs résultats disponibles sur le serveur. Si un autre jeu de résultat existe, mssql_next_result() va détruire de résultat précédent et préparer la lecture dans les nouvelles lignes.

Liste de paramètres

result_id

Une ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne TRUE si un jeu de résultats additionnel est disponible, ou FALSE sinon.

Exemples

Exemple #1 Exemple avec mssql_next_result()

<?php
// Connexion à MSSQL et sélection de la base de données
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Envoie d'une requête à MSSQL
$sql = 'SELECT [name], [age] FROM [php].[dbo].[persons]';
$query = mssql_query($sql, $link);

// Itération dans les lignes lues
do {
    while ($row = mssql_fetch_row($query))
    {
        // Gestion des lignes
    }
} while (mssql_next_result($query));

// Nettoyage
mssql_free_result($query);
mssql_close($link);
?>


Retourne le nombre de champs dans un résultat MS SQL Server

  • « mssql_next_result
  • mssql_num_rows »
  • PHP Manual
  • Fonctions Mssql
  • Retourne le nombre de champs dans un résultat MS SQL Server

mssql_num_fields

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_num_fields — Retourne le nombre de champs dans un résultat MS SQL Server

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::columnCount()
  • sqlsrv_num_fields()
  • odbc_num_fields()

Description

int mssql_num_fields ( resource $result )

mssql_num_fields() retourne le nombre de champs dans un résultat.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne le nombre de champs, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec mssql_num_fields()

<?php
// Connexion à MSSQL et sélection de la base de données
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Sélection de données dans une table
$data = mssql_query('SELECT [name], [age] FROM [php].[dbo].[persons]');

// Construction d'une table HTML
echo '<table border="1">';

$header = false;

// Itération dans les résultats
while ($row = mssql_fetch_array($data)) {
    // Construction de l'entête
    if (!$header) {
        echo '<thead>';
        echo '<tr>';

        for ($i = 1; ($i + 1) <= mssql_num_fields($data); ++$i) {
            echo '<td>' . ucfirst($row[$i]) . '</td>';
        }

        echo '</tr>';
        echo '</thead>';
        echo '<tbody>';

        $header = true;
    }

    // Construction de la ligne
    echo '<tr>';

    foreach ($row as $value) {
        echo '<td>' . $value . '</td>';
    }

    echo '</tr>';
}

// Fermeture de la table
echo '</tbody>';
echo '</table>';

// Nettoyage
mssql_free_result($data);
mssql_close($link);
?>

Voir aussi

  • mssql_query() - Envoie une requête SQL au serveur MS SQL
  • mssql_fetch_field() - Lit les informations sur le champ
  • mssql_num_rows() - Retourne le nombre de lignes dans un résultat MS SQL


Retourne le nombre de lignes dans un résultat MS SQL

  • « mssql_num_fields
  • mssql_pconnect »
  • PHP Manual
  • Fonctions Mssql
  • Retourne le nombre de lignes dans un résultat MS SQL

mssql_num_rows

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_num_rows — Retourne le nombre de lignes dans un résultat MS SQL

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::rowCount()
  • sqlsrv_num_rows()
  • odbc_num_rows()

Description

int mssql_num_rows ( resource $result )

mssql_num_rows() retourne le nombre de lignes dans le résultat result.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec mssql_num_rows()

<?php
// Connexion à MSSQL et sélection de la base de données
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Sélections de toutes les lignes d'une table
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');

echo 'Nombre de lignes dans la table : ' . mssql_num_rows($query);

// Nettoyage
mssql_free_result($query);
?>

Voir aussi

  • mssql_query() - Envoie une requête SQL au serveur MS SQL
  • mssql_fetch_row() - Lit une ligne de résultat MS SQL dans un tableau numérique


Ouvre une connexion persistante à un serveur MS SQL

  • « mssql_num_rows
  • mssql_query »
  • PHP Manual
  • Fonctions Mssql
  • Ouvre une connexion persistante à un serveur MS SQL

mssql_pconnect

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_pconnect — Ouvre une connexion persistante à un serveur MS SQL

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDO::__construct()
  • sqlsrv_connect()
  • odbc_pconnect()

Description

resource mssql_pconnect ([ string $servername [, string $username [, string $password [, bool $new_link = false ]]]] )

mssql_pconnect() se comporte comme mssql_connect() mais avec deux différences :

Premièrement, lors de la connexion, la fonction va commencer par rechercher un lien persistant déjà ouvert avec le même hôte, le même nom d'utilisateur, username et le même mot de passe password. Si un tel lien est trouvé, cet identifiant sera retourné, au lieu d'ouvrir une autre connexion.

Deuxièmement, la connexion au serveur SQL ne sera pas fermée à la fin du script, mais restera ouverte, pour d'autres utilisations ultérieures (mssql_close() ne fermera pas un lien établi avec mssql_pconnect()).

C'est pourquoi ce type de lien est dit 'persistant'.

Liste de paramètres

servername

Le serveur MS SQL. Il peut également contenir un numéro de port, e.g. hostname:port.

username

Le nom d'utilisateur

password

Le mot de passe

new_link

Si un deuxième appel est fait à mssql_pconnect() avec les mêmes arguments, un nouveau lien ne sera pas retourné, mais le lien déjà ouvert sera utilisé. Ce paramètre modifie ce comportement et fait que la fonction mssql_pconnect() ouvre toujours un nouveau lien, même si la fonction mssql_pconnect() a été appelée avant, avec les mêmes paramètres.

Valeurs de retour

Retourne un identifiant de lien positif MS SQL en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 mssql_pconnect() et le paramètre new_link

<?php
// Connexion à MSSQL et sélection de la base de données
$link1 = mssql_pconnect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link1);

// Création d'une nouvelle connexion
$link2 = mssql_pconnect('MANGO\SQLEXPRESS', 'sa', 'phpfi', true);
mssql_select_db('random', $link2);
?>


Envoie une requête SQL au serveur MS SQL

  • « mssql_pconnect
  • mssql_result »
  • PHP Manual
  • Fonctions Mssql
  • Envoie une requête SQL au serveur MS SQL

mssql_query

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_query — Envoie une requête SQL au serveur MS SQL

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDO::query()
  • sqlsrv_query()
  • odbc_exec()

Description

mixed mssql_query ( string $query [, resource $link_identifier [, int $batch_size = 0 ]] )

mssql_query() envoie la requête au serveur courant, associé à l'identifiant link_identifier (ou la base par défaut, s'il est omis).

Liste de paramètres

query

Une requête SQL.

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect() ou mssql_pconnect().

Si l'identifiant du lien n'est pas spécifié, le dernier lien ouvert est utilisé. Si aucun lien n'est ouvert, la fonction tente d'établir un lien grâce à la fonction mssql_connect() et l'utilise.

batch_size

Le nombre d'enregistrements dans le buffer.

Valeurs de retour

Retourne une ressource de résultats MS SQL en cas de succès, TRUE si aucun ligne n'est retournée, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_query()

<?php
// Connexion à MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

if (!$link || !mssql_select_db('php', $link)) {
    die('Impossible de se connecter à la base!');
}

// Exécution d'une requête simple, pour obtenir la
// version de MSSQL et l'afficher.
$version = mssql_query('SELECT @@VERSION');
$row = mssql_fetch_array($version);

echo $row[0];

// Netoyage
mssql_free_result($version);
?>

Notes

Note:

Si la requête retourne plusieurs résultats, alors, il est nécessaire de tous les récupérer via la fonction mssql_next_result(), de libérer les résultats via la fonction mssql_free_result() avant d'exécuter la prochaine requête.

Voir aussi

  • mssql_select_db() - Sélectionne la base de données MS SQL
  • mssql_connect() - Ouvre une connexion à un serveur MS SQL server


Lit les données d'un résultat

  • « mssql_query
  • mssql_rows_affected »
  • PHP Manual
  • Fonctions Mssql
  • Lit les données d'un résultat

mssql_result

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_result — Lit les données d'un résultat

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • odbc_result()

Description

string mssql_result ( resource $result , int $row , mixed $field )

mssql_result() retourne la valeur de la colonne, à la ligne donnée, dans le résultat MS SQL.

Liste de paramètres

result

La ressource du résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

row

Le numéro de la ligne.

field

Peut être la position du champ, le nom du champ ou le nom de la table, suivi d'un point, suivi du nom du champ (tablename.fieldname). Si l'on a fourni un alias au nom de la colonne ("select foo as bar from..."), cet alias sera utilisé à la place du nom de la colonne.

Note:

Le fait de spécifier la position numérique pour l'argument field est plus rapide que de spécifier un nom de champ ou la forme tablename.fieldname.

Valeurs de retour

Retourne le contenu de la cellule spécifié.

Exemples

Exemple #1 Exemple avec mssql_result()

<?php
// Envoie une requête SELECT à MSSQL
$query = mssql_query('SELECT [username] FROM [php].[dbo].[userlist]');

// Vérifie s'il y a des résultats
if (!mssql_num_rows($query)) {
    echo 'Pas de lignes trouvées';
} else {
    for ($i = 0; $i < mssql_num_rows($query); ++$i) {
        echo mssql_result($query, $i, 'username'), PHP_EOL;
    }
}

// Libération du résultat
mssql_free_result($query);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Kalle
Felipe
Emil
Ross

Exemple #2 Autre approche, plus rapide

<?php
// Envoie une requête SELECT à MSSQL
$query = mssql_query('SELECT [username] FROM [php].[dbo].[userlist]');

// Vérifie s'il y a des résultats
if (!mssql_num_rows($query)) {
    echo 'Pas de lignes trouvées';
} else {
    while ($row = mssql_fetch_array($query)) {
        echo $row['username'], PHP_EOL;
    }
}

// Libération du résultat
mssql_free_result($query);
?>

Notes

Note:

Lorsque vous travaillez sur des résultats de grande taille, il vaut mieux utiliser les fonctions qui récupèrent toute une ligne (voir ci-après). Comme ces fonctions lisent toutes les valeurs en une passe, elles sont extrêmement plus rapide que mssql_result().

Voir aussi

Alternatives recommandées :

  • mssql_fetch_row() - Lit une ligne de résultat MS SQL dans un tableau numérique
  • mssql_fetch_array() - Lit une ligne de résultat MS SQL dans un tableau
  • mssql_fetch_assoc() - Retourne un tableau associatif pour la ligne courant de résultat MS SQL Server
  • mssql_fetch_object() - Retourne une ligne de résultat MS SQL Server sous la forme d'un objet


Retourne le nombre de lignes affectées par une requête MS SQL Server

  • « mssql_result
  • mssql_select_db »
  • PHP Manual
  • Fonctions Mssql
  • Retourne le nombre de lignes affectées par une requête MS SQL Server

mssql_rows_affected

(PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)

mssql_rows_affected — Retourne le nombre de lignes affectées par une requête MS SQL Server

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDOStatement::rowCount()
  • sqlsrv_rows_affected()

Description

int mssql_rows_affected ( resource $link_identifier )

Retourne le nombre de lignes affectées par la dernière requête en écriture.

Liste de paramètres

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect() ou mssql_pconnect().

Valeurs de retour

Retourne le nombre de lignes affectées par la dernière requête en écriture.

Exemples

Exemple #1 Exemle avec mssql_rows_affected()

<?php
// Efface toutes les lignes de la table
mssql_query('TRUNCATE TABLE [php].[dbo].[persons]');

echo 'Effacement de ' . mssql_rows_affected($link) . ' row(s)';
?>


Sélectionne la base de données MS SQL

  • « mssql_rows_affected
  • MySQL »
  • PHP Manual
  • Fonctions Mssql
  • Sélectionne la base de données MS SQL

mssql_select_db

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_select_db — Sélectionne la base de données MS SQL

Avertissement

Cette fonction a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • PDO_SQLSRV DSN
  • PDO_ODBC DSN
  • sqlsrv_connect()
  • odbc_connect()

Description

bool mssql_select_db ( string $database_name [, resource $link_identifier ] )

mssql_select_db() sélectionne la base de données active.

Tous les appels à mssql_query() seront faits dans cette base.

Liste de paramètres

database_name

Le nom de la base de données.

Pour protéger le nom de la base de données qui contient des espaces, des tirets ("-") ou tous autres caractères spéciaux, le nom de la base de données doit être entouré de crochets ([]), comme montré dans l'exemple ci-dessous. Cette technique peut également être appliquée lors de la sélection d'un nom de base de données qui est aussi un mot réservé (comme primary).

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect() ou mssql_pconnect().

Si aucun identifiant de lien n'est spécifié, le dernier lien ouvert sera utilisé. Si aucun lien n'est ouvert, la fonction tentera d'établir un lien en utilisant la fonction mssql_connect() et l'utilisera.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mssql_select_db()

<?php
// Crée une connexion à MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Selectionne la base 'php'
mssql_select_db('php', $link)
?>

Exemple #2 Echappement du nom de la base de données avec des crochets

<?php
// Création d'un lien vers MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Selectionne la base de données 'my.database-name'
mssql_select_db('[my.database-name]', $link);
?>

Voir aussi

  • mssql_connect() - Ouvre une connexion à un serveur MS SQL server
  • mssql_pconnect() - Ouvre une connexion persistante à un serveur MS SQL
  • mssql_query() - Envoie une requête SQL au serveur MS SQL


Plugins et drivers MySQL

PHP offre plusieurs drivers et plugins MySQL pour accéder et gérer MySQL.

Les différences et les fonctionnalités des extensions MySQL sont décrites dans la résumé de cette section.

  • Aperçu des drivers PHP MySQL
    • Aperçu de la terminologie
    • Choisir une API
    • Choisir une bibliothèque
    • Concepts
  • MySQL (Original) — API MySQL originale
    • Introduction
    • Installation/Configuration
    • Historique des modifications
    • Constantes pré-définies
    • Exemples
    • Fonctions MySQL
  • MySQLi — Extension mysqli
    • Introduction
    • Introduction
    • Guide de démarrage rapide
    • Installation/Configuration
    • L'extension mysqli et les connexions persistantes
    • Constantes pré-définies
    • Notes
    • Sommaire des fonctions de l'extension MySQLi
    • Exemples
    • mysqli — La classe mysqli
    • mysqli_stmt — La classe mysqli_stmt
    • mysqli_result — La classe mysqli_result
    • mysqli_driver — La classe mysqli_driver
    • mysqli_warning — La classe mysqli_warning
    • mysqli_sql_exception — La classe mysqli_sql_exception
    • Fonctions mysqli obsolètes et alias
    • Historique des modifications
  • Mysqlnd — Le pilote natif MySQL
    • Introduction
    • Introduction
    • Installation
    • Configuration à l'exécution
    • Incompatibilités
    • Les connexions persistantes
    • Statistiques
    • Notes
    • Gestion de la mémoire
    • API du plugin du driver natif MySQL
  • mysqlnd_ms — Plugin de réplication Mysqlnd et de balance de charge
    • Introduction
    • Exemples et démarrage rapide
    • Concepts
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Mysqlnd_ms
    • Change History
  • mysqlnd_qc — Plugin de cache des résultats de requêtes Mysqlnd
    • Introduction
    • Démarrage rapide et quelques exemples
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions mysqlnd_qc
    • Historique des changements
  • mysqlnd_uh — Plugin de gestion utilisateur Mysqlnd
    • Introduction
    • Démarrage rapide et exemples
    • Installation/Configuration
    • Constantes pré-définies
    • MysqlndUhConnection — La classe MysqlndUhConnection
    • MysqlndUhPreparedStatement — La classe MysqlndUhPreparedStatement
    • Fonctions Mysqlnd_uh
    • Historique des modifications
  • mysqlnd_mux — Plugin de multiplexage de connexions Mysqlnd
    • Introduction
    • Concepts
    • Installation/Configuration
    • Constantes pré-définies
    • Change History
  • mysqlnd_memcache — Plugin Mysqlnd Memcache
    • Introduction
    • Démarrage rapide et exemples
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Mysqlnd_memcache
    • Historique des modifications


Aperçu des drivers PHP MySQL

Introduction

Il existe 3 APIs PHP pour accéder aux bases de données MySQL. Ce guide explique la terminologie utilisée pour décrire chacune d'elles, fournit des informations quant aux choix de l'API à utiliser, ainsi que des informations vous permettant de vous aider à choisir la bibliothèque MySQL à utiliserlibrary to use avec l'API.

  • Aperçu de la terminologie
  • Choisir une API
  • Choisir une bibliothèque
  • Concepts
    • Requêtes mises ou non en mémoire tampon
    • Jeux de caractères


Aperçu de la terminologie

Cette section fournit une introduction aux options qui vous sont disponibles lors du développement d'une application PHP qui doit interagir avec une base de données MySQL.

Qu'est-ce qu'une API ?

Une interface de programmation d'application, ou API, définit les classes, les méthodes, les fonctions et les variables dont votre application a besoin pour réaliser les tâches désirées. Dans le cas des applications PHP qui ont besoin de communiquer avec des bases de données, les APIs nécessaires sont habituellement exposées via des extensions PHP.

Les APIs peuvent être procédurales ou orientées objet. Avec une API procédurale, vous appelez des fonctions pour réaliser vos tâches, avec une API orientée objet, vous instanciez les classes, puis vous appelez les méthodes sur les objets résultants. La seconde interface est généralement préférée car elle est plus moderne et permet de mieux organiser le code source.

Lors de l'écriture d'applications PHP qui ont besoin de se connecter à un serveur MySQL, il y a plusieurs options de l'API disponibles. Ce document va aborder ce qui est disponible, et comment choisir la meilleure solution pour votre application.

Qu'est-ce qu'un connecteur ?

Dans la documentation MySQL, le terme connecteur se réfère à la partie du programme qui autorise votre application à se connecter au serveur de base de données MySQL. MySQL fournit des connecteurs pour bons nombres de langages, incluant PHP.

Si votre application PHP a besoin de communiquer avec un serveur de base de données, vous devez écrire votre code PHP pour effectuer des tâches comme se connecter au serveur de base de données, requêter la base de données ainsi que d'autres tâches relatives à la base de données. Le programme est requis pour fournir l'API à utiliser par votre application PHP, mais aussi pour gérer la communication entre votre application et le serveur de base de données, en utilisant des bibliothèques intermédiaires au besoin. Ce programme est généralement appelé connecteur, vu qu'il autorise votre application à se connecter au serveur de base de données.

Qu'est-ce qu'un driver ?

Un driver est une partie de programme dont le but est de communiquer avec un type spécifique de serveur de base de données. Le driver peut également appeler une bibliothèque, comme la bibliothèque cliente MySQL ou le driver natif MySQL. Ces bibliothèques implémentent le protocole bas niveau utilisé pour communiquer avec le serveur de base de données MySQL.

Par le biais d'un exemple, la couche d'abstraction de base de données PHP Data Objects (PDO) peut utiliser un des drivers spécifiques au base de données. Un de ces drivers disponible est le driver PDO MYSQL, qui fournit une interface avec le serveur MySQL.

Quelques fois, des personnes utilisent les termes connecteur et driver à l'envers, ce qui peut porter à confusion. Dans la documentation MySQL, le terme "driver" est réservé au programme qui fournit la partie spécifique à la base de données d'un connecteur.

Qu'est-ce qu'une extension ?

Dans la documentation PHP, vous trouverez un autre terme - extension. Le code PHP est constitué d'un coeur, avec des extensions optionnelles permettant d'étendre les fonctionnalités du coeur. Les extensions PHP relatives aux bases de données, comme l'extension mysqli et l'extension mysql sont implémentées en utilisant le framework des extensions PHP.

Typiquement, une extension expose une API au programmeur PHP, lui permettant quelques facilités lors de la programmation. Cependant, quelques extensions qui utilisent le framework d'extension PHP n'expose aucune API au programmeur PHP.

L'extension driver PDO MySQL, par exemple, n'expose aucune API au programmeur PHP, mais fournit une interface à la couche PDO.

Les termes API et extension ne doivent pas être vus comme signifiant la même chose, car une extension n'expose pas forcément une API au programmeur.


Choisir une API

PHP offre 3 APIs différentes pour se connecter à MySQL. Ci-dessous, vous trouverez les APIs fournies par les extensions mysql, mysqli et PDO. Chaque exemple de code crée une connexion à un serveur MySQL s'exécutant sur le domaine "example.com", en utilisant le nom d'utilisateur "user", le mot de passe "password". Et une requête est exécutée pour saluer l'utilisateur.

Exemple #1 Comparaison des 3 APIs MySQL

<?php
// mysqli
$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT 'Bonjour, cher utilisateur de MySQL !' AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);

// PDO
$pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');
$statement = $pdo->query("SELECT 'Bonjour, cher utilisateur de MySQL !' AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);

// mysql
$c = mysql_connect("example.com", "user", "password");
mysql_select_db("database");
$result = mysql_query("SELECT 'Bonjour, cher utilisateur de MySQL !' AS _message FROM DUAL");
$row = mysql_fetch_assoc($result);
echo htmlentities($row['_message']);
?>

API recommandé

Il est recommandé d'utiliser soit l'extension mysqli, soit l'extension PDO_MySQL. Il n'est pas recommandé d'utiliser l'ancienne extension mysql pour de nouveaux développements sachant qu'elle est obsolète depuis PHP 5.5.0, et sera supprimée dans un futur proche. Une matrice de comparaison détaillant les fonctionnalités est fournie ci-dessous. La performance globale des 3 extensions peut être considérée comme identique. Malgré tout, la performance de l'extension constitue seulement une fraction du temps total d'exécution d'une requête web PHP. Aussi, l'impact est inférieur à 0.1%.

Comparaison des fonctionnalités

 | ext/mysqli | PDO_MySQL | ext/mysql
Introduite en PHP version | 5.0 | 5.1 | 2.0
Inclus avec PHP 5.x | Oui | Oui | Oui
Statut du développement | Active | Active | Uniquement de la maintenance
Cycle de vie | Active | Active | Obsolète
Recommandé pour de nouveaux projets | Oui | Oui | Non
Interface orientée objet | Oui | Oui | Non
Interface procédurale | Oui | Non | Oui
L'API supporte les requêtes non-bloquantes, asynchrones avec mysqlnd | Oui | Non | Non
Connexions persistentes disponibles | Oui | Oui | Oui
L'API supporte les jeux de caractères | Oui | Oui | Oui
L'API supporte les requêtes préparées côté serveur | Oui | Oui | Non
L'API supporte les requêtes préparées côté client | Non | Oui | Non
L'API supporte les procédures stockées | Oui | Oui | Non
L'API supporte les requêtes multiples | Oui | La plupart | Non
L'API supporte les transactions | Oui | Oui | Non
Les transactions peuvent être contrôlées avec SQL | Oui | Oui | Oui
Supporte toutes les fonctionnalités de MySQL 5.1+ | Oui | La plupart | Non


Choisir une bibliothèque

Les extensions mysqli, PDO_MySQL et mysql sont des wrappers légers d'une bibliothèque cliente C. Les extensions peuvent soit utiliser la bibliothèque mysqlnd, soit la bibliothèque libmysqlclient. Le choix de la bibliothèque se fait au moment de la compilation.

La bibliothèque mysqlnd fait partie de la distribution de PHP depuis la version 5.3.0. Elle offre des fonctionnalités comme les connexions paresseuses, la mise en cache de requêtes, qui ne sont pas disponibles avec libmysqlclient, aussi, nous vous recommandons d'utiliser la bibliothèque interne mysqlnd. Voir la documentation de mysqlnd pour plus d'informations,ainsi qu'une liste des fonctionnalités qu'elle offre.

Exemple #1 Commande de configuration pour l'utilisation de mysqlnd ou de libmysqlclient

// Recommandé, compilation avec mysqlnd
$ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd

// Non recommandé, compilation avec libmysqlclient
$ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config --with-mysql=/path/to/mysql_config

Comparaison des fonctionnalités des bibliothèques

Il est recommandé d'utiliser la bibliothèque mysqlnd au lieu de la bibliothèque client serveur MySQL (libmysqlclient). Les deux bibliothèques sont supportées et améliorées en permanence.

 | Driver natif MySQL (mysqlnd) | Bibliothèque client serveur MySQL (libmysqlclient)
Fait partie de la distribution de PHP | Oui | Non
Introduit en version de PHP | 5.3.0 | N/A
Licence | PHP Licence 3.01 | Double-licence
Statut de développement | Actif | Actif
Cycle de vie | Pas de fin d'annoncé | Pas de fin d'annoncé
Compilé par défaut en PHP 5.4 (pour toutes les extensions MySQL) | Oui | Non
Compilé par défaut en PHP 5.3 (pour toutes les extensions MySQL) | Non | Oui
Support du protocole de compression | Oui (5.3.1+) | Oui
Support de SSL | Oui (5.3.3+) | Oui
Support des pipes nommés | Oui (5.3.4+) | Oui
Requêtes non bloquantes, asynchrones | Oui | Non
Statistiques sur les performances | Oui | Non
LOAD LOCAL INFILE respecte la directive open_basedir | Oui | Non
Utilisation du système de gestion de la mémoire native de PHP (i.e., suit les limites mémoires de PHP) | Oui | Non
Retourne les colonnes numériques sous la forme de double (COM_QUERY) | Oui | Non
Retourne les colonnes numériques sous la forme de chaînes de caractères (COM_QUERY) | Oui | Oui
API du plugin | Oui | Limité
Séparation des lectures et des écritues pour la réplication MySQL | Oui, avec un plugin | Non
Balance de charge | Oui, avec un plugin | Non
Fail over | Oui, avec un plugin | Non
Connexions paresseuses | Oui, avec un plugin | Non
Mise en cache des requêtes | Oui, avec un plugin | Non
Manipulations transparentes des requêtes (i.e., auto-EXPLAIN ou monitorage) | Oui, avec un plugin | Non


Concepts

Sommaire

  • Requêtes mises ou non en mémoire tampon
  • Jeux de caractères

Ces concepts sont spécifiques aux drivers MySQL pour PHP.


Requêtes mises ou non en mémoire tampon

Les requêtes utilisent par défaut le mode Mémoire tampon. Cela signifie que le résultat des requêtes est immédiatement transféré du serveur MySQL à PHP et conservé dans la mémoire du processus PHP. Cela permet des opérations complémentaires comme compter le nombre de résultat, et déplacer le pointeur de résultat actuel. Il permet également d'exécuter des requêtes supplémentaires sur la même connexion tout en travaillant sur le jeu de résultats. L'inconvénient de la mise en mémoire tampon est que des jeux de résultats importants peuvent demander beaucoup plus de mémoire. La mémoire restera occupée jusqu'à ce que toutes les références sur les jeux de résultats soient désactivées ou que les jeux de résultats soient explicitement libérés, ce qui arrive de manière automatique à la fin du processus. La terminologie "store result" est également utilisée avec le mode mémoire tampon, vu que la totalité des résultats est stocké à la fois.

Note:

Lorsque vous utilisez libmysqlclient comme bibliothèque, la limite mémoire de PHP ne comptera pas la mémoire utilisée pour les jeux de résultats à moins que les données sont lues dans les variables PHP. Avec mysqlnd, la mémoire utilisée comprendra le jeu de résultats complet.

Les requêtes n'utilisant pas la mémoire tampon, les requêtes MySQL exécutent leur requête et retournent une ressource tandis que les données sont toujours en attente sur le serveur MySQL pour être récupérées. Cela utilise moins de mémoire côté PHP, mais peut augmenter la charge sur le serveur. À moins que le jeu de résultats complet ait été récupéré depuis le serveur, aucune autre requête peut être envoyée sur la même connexion. Les requêtes n'utilisant pas la mémoire tampon peuvent également faire référence à un "use result".

Suivant ces caractéristiques, les requêtes utilisant la mémoire tampon devraient être utilisées dans les cas où vous attendez seulement un jeu de résultats limité ou avez besoin de savoir la quantité de lignes retournées avant de lire toutes les lignes. Le mode sans mémoire tampon doit être utilisé lorsque vous attendez plus de résultats.

En raison du fait que les requêtes sont mises en mémoire tampon par défaut, les exemples ci-dessous vont vous montrer comment exécuter des requêtes, avec chaque API, sans mise en mémoire tampon.

Exemple #1 Exemple de requêtes n'utilisant pas la mémoire tampon : mysqli

<?php
$mysqli  = new mysqli("localhost", "my_user", "my_password", "world");
$uresult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT);

if ($uresult) {
   while ($row = $uresult->fetch_assoc()) {
       echo $row['Name'] . PHP_EOL;
   }
}
$uresult->close();
?>

Exemple #2 Exemple de requêtes n'utilisant pas la mémoire tampon : pdo_mysql

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_pass');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$uresult = $pdo->query("SELECT Name FROM City");
if ($uresult) {
   while ($row = $uresult->fetch(PDO::FETCH_ASSOC)) {
       echo $row['Name'] . PHP_EOL;
   }
}
?>

Exemple #3 Exemple de requêtes n'utilisant pas la mémoire tampon: mysql

<?php
$conn = mysql_connect("localhost", "my_user", "my_pass");
$db   = mysql_select_db("world");

$uresult = mysql_unbuffered_query("SELECT Name FROM City");
if ($uresult) {
   while ($row = mysql_fetch_assoc($uresult)) {
       echo $row['Name'] . PHP_EOL;
   }
}
?>


Jeux de caractères

Idéalement, un jeu de caractères propre doit être défini au niveau du serveur, opération décrite dans la section » Configuration du jeu de caractères du manuel MySQL Server. Alternativement, chaque API MySQL offre une méthode pour définir le jeu de caractères lors de l'exécution.

Attention

Le jeu de caractères et l'échappement des caractères

Le jeu de caractères doit être compris et défini, sachant qu'il a un effet sur chaque action, et a des implications au niveau de la sécurité. Par exemple, le mécanisme d'échappement (i.e. mysqli_real_escape_string() pour mysqli, mysql_real_escape_string() pour mysql, et PDO::quote() pour PDO_MySQL) va utiliser cette configuration. Il est important de garder en tête que ces fonctions n'utiliseront pas le jeu de caractères défini avec une requête, aussi, l'exemple suivant n'aura aucun effet sur le jeu de caractères :

Exemple #1 Problèmes lors de la définition du jeu de caractères avec SQL

<?php

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

// N'affectera pas $mysqli->real_escape_string();
$mysqli->query("SET NAMES utf8");

// N'affectera pas $mysqli->real_escape_string();
$mysqli->query("SET CHARACTER SET utf8");

// Mais, ceci va affecter $mysqli->real_escape_string();
$mysqli->set_charset('utf8');

?>

Ci-dessous les exemples qui démontrent la façon de modifier proprement le jeu de caractères lors de l'exécution en utilisant chacune des APIs.

Exemple #2 Exemple de définition du jeu de caractères : mysqli

<?php

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (!$mysqli->set_charset('utf8')) {
    printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $mysqli->error);
} else {
    printf("Jeu de caractères courant : %s\n", $mysqli->character_set_name());
}

print_r( $mysqli->get_charset() );

?>

Exemple #3 Exemple de définition du jeu de caractères : pdo_mysql

Note : Ceci ne fonctionnera qu'à partir de PHP 5.3.6.

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world;charset=utf8", 'my_user', 'my_pass');
?>

Exemple #4 Exemple de définition du jeu de caractères : mysql

<?php

$conn = mysql_connect("localhost", "my_user", "my_pass");
$db   = mysql_select_db("world");

if (!mysql_set_charset('utf8', $conn)) {
    echo "Erreur : Impossible de définir le jeu de caractères.\n";
    exit;
}

echo 'Jeu de caractères courant : ' .  mysql_client_encoding($conn);

?>


API MySQL originale

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Historique des modifications
  • Constantes pré-définies
  • Exemples
    • Exemple avec l'extension MySQL
  • Fonctions MySQL
    • mysql_affected_rows — Retourne le nombre de lignes affectées lors de la dernière opération MySQL
    • mysql_client_encoding — Retourne le nom du jeu de caractères utilisé par le client MySQL
    • mysql_close — Ferme la connexion MySQL
    • mysql_connect — Ouvre une connexion à un serveur MySQL
    • mysql_create_db — Crée une base de données MySQL
    • mysql_data_seek — Déplace le pointeur interne de résultat MySQL
    • mysql_db_name — Récupère le nom de base de données à l'appel de mysql_list_dbs
    • mysql_db_query — Sélectionne une base de données et y exécute une requête
    • mysql_drop_db — Efface une base de données MySQL
    • mysql_errno — Retourne le numéro d'erreur de la dernière commande MySQL
    • mysql_error — Retourne le texte associé avec l'erreur générée lors de la dernière requête
    • mysql_escape_string — Protège les caractères spéciaux SQL
    • mysql_fetch_array — Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
    • mysql_fetch_assoc — Lit une ligne de résultat MySQL dans un tableau associatif
    • mysql_fetch_field — Retourne les données enregistrées dans une colonne MySQL sous forme d'objet
    • mysql_fetch_lengths — Retourne la taille de chaque colonne d'une ligne de résultat MySQL
    • mysql_fetch_object — Retourne une ligne de résultat MySQL sous la forme d'un objet
    • mysql_fetch_row — Retourne une ligne de résultat MySQL sous la forme d'un tableau
    • mysql_field_flags — Retourne des détails sur une colonne MySQL
    • mysql_field_len — Retourne la taille d'un champ de résultat MySQL
    • mysql_field_name — Retourne le nom d'une colonne dans un résultat MySQL
    • mysql_field_seek — Déplace le pointeur de résultat vers une position donnée
    • mysql_field_table — Retourne le nom de la table MySQL où se trouve une colonne
    • mysql_field_type — Retourne le type d'une colonne MySQL spécifique
    • mysql_free_result — Libère le résultat de la mémoire
    • mysql_get_client_info — Lit les informations sur le client MySQL
    • mysql_get_host_info — Lit les informations sur l'hôte MySQL
    • mysql_get_proto_info — Lit les informations sur le protocole MySQL
    • mysql_get_server_info — Lit les informations sur le serveur MySQL
    • mysql_info — Lit des informations à propos de la dernière requête MySQL
    • mysql_insert_id — Retourne l'identifiant généré par la dernière requête
    • mysql_list_dbs — Liste les bases de données disponibles sur le serveur MySQL
    • mysql_list_fields — Liste les champs d'une table MySQL
    • mysql_list_processes — Liste les processus MySQL
    • mysql_list_tables — Liste les tables d'une base de données MySQL
    • mysql_num_fields — Retourne le nombre de champs d'un résultat MySQL
    • mysql_num_rows — Retourne le nombre de lignes d'un résultat MySQL
    • mysql_pconnect — Ouvre une connexion persistante à un serveur MySQL
    • mysql_ping — Vérifie la connexion au serveur MySQL, et s'y reconnecte au besoin
    • mysql_query — Envoie une requête à un serveur MySQL
    • mysql_real_escape_string — Protège une commande SQL de la présence de caractères spéciaux
    • mysql_result — Retourne un champ d'un résultat MySQL
    • mysql_select_db — Sélectionne une base de données MySQL
    • mysql_set_charset — Définit le jeu de caractères du client MySQL
    • mysql_stat — Retourne le statut courant du serveur MySQL
    • mysql_tablename — Lit le nom de la table qui contient un champ
    • mysql_thread_id — Retourne l'identifiant du thread MySQL courant
    • mysql_unbuffered_query — Exécute une requête SQL sans mobiliser les résultats MySQL


Introduction

Cette extension est obsolète depuis PHP 5.5.0 et a été supprimée depuis PHP 7.0.0. A la place, soit l'extension mysqli ou PDO_MySQL devrait être utilisée. Voir aussi la vue d'ensemble de l'API MySQL pour plus d'aide dans le choix d'une API MySQL.

Ces fonctions vous permettent d'accéder aux bases de données MySQL. Le site officiel de cette base est » http://www.mysql.com/.

La documentation de MySQL est disponible à » http://dev.mysql.com/doc/.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Afin de pouvoir les utiliser, vous devez compiler PHP avec le support MySQL.


Installation

Pour compiler, utilisez tout simplement l'option de configuration --with-mysql[=DIR] où le paramètre optionnel [DIR] pointe vers le dossier d'installation de MySQL.

Bien que cette extension MySQL soit compatible avec MySQL 4.1.0 et supérieur, elle ne supporte pas les fonctionnalités supplémentaires que cette version fournit. Pour cela, utilisez plutôt l'extension MySQLi.

Si vous voulez installer l'extension mysqli en même temps que l'extension mysql, vous devez utiliser la même bibliothèque client afin d'éviter les conflits.

Installation sur les systèmes Linux

Note : [DIR] est le chemin vers la bibliothèque cliente MySQL (en-têtes et biblitohèques), qui peut être téléchargée depuis le site de » MySQL.

Matrice du support de ext/mysql
PHP Version | Défaut | Options de configuration : mysqlnd | Options de configuration : libmysqlclient | Historique
4.x.x | libmysqlclient | Indisponible | --without-mysql pour désactiver | MySQL est actif par défaut, les bibliothèques clientes MySQL sont incluses en interne
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Indisponible | --with-mysql=[DIR] | MySQL n'est pas actif par défaut, et les bibliothèques clientes MySQL ne sont plus incluses en interne
5.3.x | libmysqlclient | --with-mysql=mysqlnd | --with-mysql=[DIR] | mysqlnd est maintenant disponible
5.4.x | mysqlnd | --with-mysql | --with-mysql=[DIR] | mysqlnd est maintenant incluse par défaut

Installation sur les systèmes Windows

PHP 4

L'extension MySQL est directement fournie dans la distribution PHP.

PHP 5.0.x, 5.1.x, 5.2.x

MySQL n'est plus activé par défaut, ainsi, la bibliothèque php_mysql.dll doit être activée dans le php.ini. De plus, PHP doit avoir accès à la bibliothèque cliente MySQL. Un fichier nommé libmysql.dll est inclus dans la distribution de PHP pour Windows et pour que PHP puisse discuter avec MySQL, ce fichier doit être disponible dans le PATH du système Windows. Lisez la FAQ intitulée "Où dois-je ajouter mon répertoire PHP à la variable PATH sous Windows ?" pour plus d'informations sur la réalisation de cela. Néanmoins, le fait de copier le fichier libmysql.dll dans le répertoire système de Windows fonctionne (car le dossier système est par défaut dans le PATH système), mais cela n'est pas du tout recommandé.

Pour activer n'importe quelle extension PHP (comme php_mysql.dll), la directive PHP extension_dir doit être définie et doit pointer vers le dossier où sont stockées les extensions PHP. Lisez également le manuel d'installation sous Windows. Par exemple, voici une valeur possible pour la directive extension_dir en PHP 5 : c:\php\ext

Note:

Si lorsque vous démarrez le serveur web une erreur similaire à ceci apparaît : "Unable to load dynamic library './php_mysql.dll'", c'est parce que php_mysql.dll et/ou libmysql.dll n'ont pû être trouvés par le système.

PHP 5.3.0+

Le driver MySQL natif est activé par défaut. Incluez php_mysql.dll, mais libmysql.dll n'est plus nécessaire, ni utilisé.

Notes sur l'installation de MySQL

Avertissement

Des crashes et des problèmes de démarrage de PHP peuvent être rencontrés lorsque vous chargez cette fonction en même temps que l'extension recode. Voyez l'extension recode pour plus de détails.

Note:

Si vous avez besoin d'autres jeux de caractères que celui par défaut (latin), vous devez installer la bibliothèque externe libmysqlclient (non fournie), compilée avec ce jeu de caractères.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration MySQL
Nom | Défaut | Modifiable | Historique
mysql.allow_local_infile | "1" | PHP_INI_SYSTEM |
mysql.allow_persistent | "1" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.trace_mode | "Off" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.1.
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_user | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
mysql.connect_timeout | "60" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP <= 4.3.2. Disponible depuis PHP 4.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysql.allow_local_infile integer

Autorise l'accès, d'un point de vue de PHP, des fichiers locaux, avec les requêtes LOAD DATA.

mysql.allow_persistent bool

Active ou désactive les connexions persistantes à la base de données MySQL.

mysql.max_persistent entier

Le nombre maximum de connexions persistantes aux bases de données MySQL, par processus.

mysql.max_links entier

Le nombre maximum de connexions aux bases de données MySQL, y compris les connexions persistantes, par processus.

mysql.trace_mode boolean

Mode trace. Lorsque mysql.trace_mode est activée, des alertes pour scans de table ou d'index, pour oubli de libération des ressources ou erreurs SQL seront affichées. Cette option a été introduite en PHP 4.3.0)

mysql.default_port string

Le numéro de port TCP par défaut, utilisé pour se connecter à la base de données, lorsque aucun port n'est spécifié. Si aucun port par défaut n'est spécifié, le port sera alors obtenu en lisant la variable d'environnement MYSQL_TCP_PORT, l'entrée mysql-tcp dans le fichier /etc/services ou encore la constante de compilation MYSQL_PORT, dans cet ordre. Windows n'utilisera aussi que la constante MYSQL_PORT.

mysql.default_socket string

Le nom par défaut du socket lorsque l'on se connecte au serveur local, si aucun autre socket n'est spécifié.

mysql.default_host string

Adresse par défaut du serveur, à utiliser lors de la connexion à un serveur MySQL, si aucun hôte n'est spécifié. Ne s'applique pas lorsque le safe mode SQL est activé.

mysql.default_user string

Utilisateur par défaut, à utiliser lors de la connexion à un serveur MySQL, si aucun utilisateur n'est spécifié. Ne s'applique pas lorsque le safe mode SQL est activé.

mysql.default_password string

Mot de passe par défaut, à utiliser lors de la connexion à un serveur MySQL, si aucun mot de passe n'est spécifié. Ne s'applique pas lorsque le safe mode SQL est activé.

mysql.connect_timeout entier

Durée maximale d'attente de la réponse d'un serveur, en secondes. Sous Linux, cette durée sert aussi lors de l'échange du premier avec le serveur.


Types de ressources

Il y a deux types de ressources utilisées par le module MySQL. Le premier est un identifiant de connexion au serveur, appelé mysql link, et le second est un identifiant de résultat de requête, appelé mysql result.


Historique des modifications

Les modifications suivantes ont été apportées aux classes/fonctions/méthodes de cette extension.

Historique des modifications général pour l'extension ext/mysql

Cet historique des modifications fait référence à l'extension ext/mysql.

Modifications globales sur ext/mysql

La liste suivante présente les modifications sur l'extension entière ext/mysql.

Version Description
7.0.0

Cette extension a été supprimée de PHP. Pour plus de détails, voir Choisir une API.

5.5.0

Cette extension est devenue obsolète. La connexion à une base de données MySQL via les fonctions mysql_connect(), mysql_pconnect() ou une connexion implicite via toute autre fonction mysql_* génèrera une alerte de niveau E_DEPRECATED.

5.5.0

Toutes les anciennes fonctions et alias obsolètes émettent maintenant une alerte de niveau E_DEPRECATED. Ces fonctions sont :

mysql(), mysql_fieldname(), mysql_fieldtable(), mysql_fieldlen(), mysql_fieldtype(), mysql_fieldflags(), mysql_selectdb(), mysql_createdb(), mysql_dropdb(), mysql_freeresult(), mysql_numfields(), mysql_numrows(), mysql_listdbs(), mysql_listtables(), mysql_listfields(), mysql_db_name(), mysql_dbname(), mysql_tablename(), et mysql_table_name().

Modification sur les fonctions existantes

La liste suivante est une compilation des modifications effectuées sur les fonctions de l'extension ext/mysql.

Version | Function | Description
5.5.0 | mysql_connect | Cette fonction va générer une alerte de niveau E_DEPRECATED.
 | mysql_db_name | La fonction mysql_list_dbs est obsolète et émet une alerte de niveau E_DEPRECATED.
 | mysql_pconnect | Cette fonction génère une alerte de niveau E_DEPRECATED.
 | mysql_tablename | La fonction mysql_tablename est obsolète, et émet une alerte de niveau E_DEPRECATED.
5.3.0 | mysql_db_query | Cette fonction lance maintenant une alerte de type E_DEPRECATED.
 | mysql_escape_string | Cette fonction lance maintenant une alerte de type E_DEPRECATED.
4.3.7 | mysql_list_tables | Cette fonction est devenue obsolète.
4.3.0 | mysql_escape_string | Cette fonction devient obsolète, ne l'utilisez pas. À la place, utilisez la fonction mysql_real_escape_string.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Depuis PHP 4.3.0, il est possible de spécifier des options de client supplémentaires pour les fonctions mysql_connect() et mysql_pconnect(). Ces constantes sont les suivantes :

Constantes client MySQL
Constante | Description
MYSQL_CLIENT_COMPRESS | Utilise le protocole avec compression
MYSQL_CLIENT_IGNORE_SPACE | Autorise les espaces après les noms de fonction
MYSQL_CLIENT_INTERACTIVE | Autorise interactive_timeout secondes d'inactivité sur la connexion (au lieu de wait_timeout ).
MYSQL_CLIENT_SSL | Utilisation du chiffrement SSL. Cette constante n'est disponible qu'à partir de la version 4.x et plus récente de la bibliothèque cliente MySQL. La version 3.23.x est fournis avec PHP 4 ainsi qu'avec les binaires pour windows de PHP 5.

La fonction mysql_fetch_array() utilise une constante pour spécifier les différents types de formats de réponse. Les constantes suivantes sont utilisées :

Constantes de mysql_fetch_array()
Constante | Description
MYSQL_ASSOC | Les colonnes sont retournées dans un tableau, dont les index sont les noms de colonnes.
MYSQL_BOTH | Les colonnes sont retournées dans un tableau ayant une indexation numérique et un système d'index correspondant au nom des colonnes.
MYSQL_NUM | Les colonnes sont retournées dans un tableau avec un index numérique. Les colonnes sont numérotées dans leur ordre d'apparition. L'index commence à zéro.


  • « Constantes pré-définies
  • Exemple avec l'extension MySQL »
  • PHP Manual
  • MySQL (Original)
  • Exemples

Exemples

Sommaire

  • Exemple avec l'extension MySQL


Exemple avec l'extension MySQL

Cet exemple simple montre comment se connecter, exécuter une requête, lire les informations obtenues et se déconnecter d'une base de données MySQL.

Exemple #1 Exemple de présentation de l'extension MySQL

<?php
// Connexion et sélection de la base
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    or die('Impossible de se connecter : ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('my_database') or die('Impossible de sélectionner la base de données');

// Exécution des requêtes SQL
$query = 'SELECT * FROM my_table';
$result = mysql_query($query) or die('Échec de la requête : ' . mysql_error());

// Affichage des résultats en HTML
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

// Libération des résultats
mysql_free_result($result);

// Fermeture de la connexion
mysql_close($link);
?>


Fonctions MySQL

Notes

Note:

La plupart des fonctions MySQL acceptent link_identifier comme le dernier paramètre optionnel. S'il n'est pas fourni, la dernière connexion ouverte est utilisée. Si elle n'existe pas, une connexion est essayée d'être établie avec les paramètres par défaut définis dans php.ini. Si les fonctions ne réussissent pas, elles retournent FALSE.

Sommaire

  • mysql_affected_rows — Retourne le nombre de lignes affectées lors de la dernière opération MySQL
  • mysql_client_encoding — Retourne le nom du jeu de caractères utilisé par le client MySQL
  • mysql_close — Ferme la connexion MySQL
  • mysql_connect — Ouvre une connexion à un serveur MySQL
  • mysql_create_db — Crée une base de données MySQL
  • mysql_data_seek — Déplace le pointeur interne de résultat MySQL
  • mysql_db_name — Récupère le nom de base de données à l'appel de mysql_list_dbs
  • mysql_db_query — Sélectionne une base de données et y exécute une requête
  • mysql_drop_db — Efface une base de données MySQL
  • mysql_errno — Retourne le numéro d'erreur de la dernière commande MySQL
  • mysql_error — Retourne le texte associé avec l'erreur générée lors de la dernière requête
  • mysql_escape_string — Protège les caractères spéciaux SQL
  • mysql_fetch_array — Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysql_fetch_assoc — Lit une ligne de résultat MySQL dans un tableau associatif
  • mysql_fetch_field — Retourne les données enregistrées dans une colonne MySQL sous forme d'objet
  • mysql_fetch_lengths — Retourne la taille de chaque colonne d'une ligne de résultat MySQL
  • mysql_fetch_object — Retourne une ligne de résultat MySQL sous la forme d'un objet
  • mysql_fetch_row — Retourne une ligne de résultat MySQL sous la forme d'un tableau
  • mysql_field_flags — Retourne des détails sur une colonne MySQL
  • mysql_field_len — Retourne la taille d'un champ de résultat MySQL
  • mysql_field_name — Retourne le nom d'une colonne dans un résultat MySQL
  • mysql_field_seek — Déplace le pointeur de résultat vers une position donnée
  • mysql_field_table — Retourne le nom de la table MySQL où se trouve une colonne
  • mysql_field_type — Retourne le type d'une colonne MySQL spécifique
  • mysql_free_result — Libère le résultat de la mémoire
  • mysql_get_client_info — Lit les informations sur le client MySQL
  • mysql_get_host_info — Lit les informations sur l'hôte MySQL
  • mysql_get_proto_info — Lit les informations sur le protocole MySQL
  • mysql_get_server_info — Lit les informations sur le serveur MySQL
  • mysql_info — Lit des informations à propos de la dernière requête MySQL
  • mysql_insert_id — Retourne l'identifiant généré par la dernière requête
  • mysql_list_dbs — Liste les bases de données disponibles sur le serveur MySQL
  • mysql_list_fields — Liste les champs d'une table MySQL
  • mysql_list_processes — Liste les processus MySQL
  • mysql_list_tables — Liste les tables d'une base de données MySQL
  • mysql_num_fields — Retourne le nombre de champs d'un résultat MySQL
  • mysql_num_rows — Retourne le nombre de lignes d'un résultat MySQL
  • mysql_pconnect — Ouvre une connexion persistante à un serveur MySQL
  • mysql_ping — Vérifie la connexion au serveur MySQL, et s'y reconnecte au besoin
  • mysql_query — Envoie une requête à un serveur MySQL
  • mysql_real_escape_string — Protège une commande SQL de la présence de caractères spéciaux
  • mysql_result — Retourne un champ d'un résultat MySQL
  • mysql_select_db — Sélectionne une base de données MySQL
  • mysql_set_charset — Définit le jeu de caractères du client MySQL
  • mysql_stat — Retourne le statut courant du serveur MySQL
  • mysql_tablename — Lit le nom de la table qui contient un champ
  • mysql_thread_id — Retourne l'identifiant du thread MySQL courant
  • mysql_unbuffered_query — Exécute une requête SQL sans mobiliser les résultats MySQL


Retourne le nombre de lignes affectées lors de la dernière opération MySQL

  • « Fonctions MySQL
  • mysql_client_encoding »
  • PHP Manual
  • Fonctions MySQL
  • Retourne le nombre de lignes affectées lors de la dernière opération MySQL

mysql_affected_rows

(PHP 4, PHP 5)

mysql_affected_rows — Retourne le nombre de lignes affectées lors de la dernière opération MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_affected_rows()
  • PDOStatement::rowCount()

Description

int mysql_affected_rows ([ resource $link_identifier = NULL ] )

Retourne le nombre de lignes affectées lors de la dernière requête INSERT, UPDATE, REPLACE ou DELETE avec link_identifier.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le nombre de lignes affectées en cas de succès et -1 si la dernière requête a échoué.

Si la dernière requête était un DELETE sans clause WHERE, tous les enregistrements ont été effacés, mais cette fonction va retourner 0 avec les versions de MySQL antérieures à 4.1.2.

Lorsque vous utilisez UPDATE, MySQL ne mettra pas à jour les colonnes si la nouvelle valeur est identique à l'ancienne. Il est donc possible que mysql_affected_rows() ne représente pas forcément le nombre de lignes correspondantes mais plutôt le nombre de lignes qui ont été réellement affectées par la requête.

La requête REPLACE commence par effacer les enregistrements possédant la même clé primaire et ensuite, insert les nouveaux enregistrements. Cette fonction retourne le nombre d'enregistrements effacés ainsi que le nombre d'enregistrements insérés.

Dans le cas d'une requête "INSERT ... ON DUPLICATE KEY UPDATE", la valeur retournée sera 1 si une insertion a été effectuée, ou 2 si une mise à jour d'une ligne existante a été réalisée.

Exemples

Exemple #1 Exemple avec mysql_affected_rows()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
     die('Impossible de se connecter : ' . mysql_error());
}
mysql_select_db('mydb');

/* Ceci devrait retourner le nombre correct de lignes effacées */
mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Lignes effacées : %d\n", mysql_affected_rows());

/* avec la clause where qui n'est jamais vraie, on devrait obtenir 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Lignes effacées : %d\n", mysql_affected_rows());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Lignes effacées : 10
Lignes effacées : 0

Exemple #2 Exemple avec mysql_affected_rows() en utilisant les transactions

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
     die('Impossible de se connecter : ' . mysql_error());
}
mysql_select_db('mydb');

/* Mise à jour des lignes */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Lignes modifiées : %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Lignes modifiées : 10

Notes

Note: Transactions

Si vous utilisez des transactions, vous devez appeler mysql_affected_rows() après votre requête INSERT, UPDATE ou DELETE et non après le COMMIT.

Note: Requêtes SELECT

Pour obtenir le nombre de lignes retournées par un SELECT, il est possible d'utiliser mysql_num_rows().

Note: Clés étrangères en cascade

mysql_affected_rows() ne compte pas les enregistrements affectés implicitement par un ON DELETE CASCADE et/ou un ON UPDATE CASCADE, concernant les clés étrangères.

Voir aussi

  • mysql_num_rows() - Retourne le nombre de lignes d'un résultat MySQL
  • mysql_info() - Lit des informations à propos de la dernière requête MySQL


Retourne le nom du jeu de caractères utilisé par le client MySQL

  • « mysql_affected_rows
  • mysql_close »
  • PHP Manual
  • Fonctions MySQL
  • Retourne le nom du jeu de caractères utilisé par le client MySQL

mysql_client_encoding

(PHP 4 >= 4.3.0, PHP 5)

mysql_client_encoding — Retourne le nom du jeu de caractères utilisé par le client MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_character_set_name()

Description

string mysql_client_encoding ([ resource $link_identifier = NULL ] )

Retourne la variable character_set de MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le nom du jeu de caractères par défaut pour la connexion courante.

Exemples

Exemple #1 Exemple avec mysql_client_encoding()

<?php
$link    = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$charset = mysql_client_encoding($link);

echo "Le jeu de caractères actuel est : $charset\n";
?>

L'exemple ci-dessus va afficher :

Le jeu de caractères actuel est : latin1.

Voir aussi

  • mysql_set_charset() - Définit le jeu de caractères du client MySQL
  • mysql_real_escape_string() - Protège une commande SQL de la présence de caractères spéciaux


Ferme la connexion MySQL

  • « mysql_client_encoding
  • mysql_connect »
  • PHP Manual
  • Fonctions MySQL
  • Ferme la connexion MySQL

mysql_close

(PHP 4, PHP 5)

mysql_close — Ferme la connexion MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_close()
  • PDO : Assigne la valeur NULL à l'objet PDO

Description

bool mysql_close ([ resource $link_identifier = NULL ] )

mysql_close() ferme la connexion non persistante au serveur MySQL associée à l'identifiant spécifié. Si link_identifier n'est pas spécifié, cette commande s'applique à la dernière connexion ouverte.

Les connexions et les jeux de résultats ouverts de facçon non persistents sont automatiquement détruits lorsqu'un script PHP termine son exécution. Aussi, le fait de fermer une connexion et libérer les résultats étant optionnel, le fait de le faire explicitement est néanmoins vivement recommandé. Ceci va retourner les ressources immédiatement à PHP et à MySQL, ce qui va améliorer les performance. Pour plus d'informations, référez-vous à la libération des ressources

Liste de paramètres

link_identifier

La connexion MySQL. Si l'identifiant du lien n'est pas spécifié, le dernier lien ouvert avec la fonction mysql_connect() sera utilisée. Si aucune connexion n'est trouvée ou n'est établie, une alerte de niveau E_WARNING sera générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_close()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Connexion impossible : ' . mysql_error());
}
echo 'Connexion réussie';
mysql_close($link);
?>

L'exemple ci-dessus va afficher :

Connexion réussie

Notes

Note:

mysql_close() ne fermera pas les connexions persistantes créées par mysql_pconnect(). Pour plus de détails, voir la page du manuel sur les connexions persistentes.

Voir aussi

  • mysql_connect() - Ouvre une connexion à un serveur MySQL
  • mysql_free_result() - Libère le résultat de la mémoire


Ouvre une connexion à un serveur MySQL

  • « mysql_close
  • mysql_create_db »
  • PHP Manual
  • Fonctions MySQL
  • Ouvre une connexion à un serveur MySQL

mysql_connect

(PHP 4, PHP 5)

mysql_connect — Ouvre une connexion à un serveur MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_connect()
  • PDO::__construct()

Description

resource mysql_connect ([ string $server = ini_get("mysql.default_host") [, string $username = ini_get("mysql.default_user") [, string $password = ini_get("mysql.default_password") [, bool $new_link = false [, int $client_flags = 0 ]]]]] )

Ouvre ou réutilise une connexion à un serveur MySQL.

Liste de paramètres

server

Le serveur MySQL. Il peut aussi inclure le numéro de port. C'est-à-dire "hostname:port" ou le chemin vers le socket local, c'est-à-dire ":/path/to/socket" pour localhost.

Si la directive PHP mysql.default_host n'est pas définie (défaut), alors la valeur par défaut est "localhost:3306". En safe mode SQL, ce paramètre est ignoré et la valeur "localhost:3306" est toujours utilisée.

username

Le nom d'utilisateur. La valeur par défaut est définie par l'option mysql.default_user. En safe mode SQL, ce paramètre est ignoré et le nom de l'utilisateur propriétaire du processus serveur est utilisé.

password

Le mot de passe. La valeur par défaut est définie par l'option mysql.default_password. En safe mode SQL, ce paramètre est ignoré et un mot de passe vide est utilisé.

new_link

Si un deuxième appel est fait à mysql_connect() avec les mêmes arguments, aucune nouvelle connexion ne sera établie, mais plutôt, l'identifiant de la connexion déjà ouverte sera retourné. Le paramètre new_link modifie ce comportement et permet à mysql_connect() de toujours ouvrir une nouvelle connexion, même si mysql_connect() a été appelée avant avec les mêmes paramètres. En safe mode SQL, ce paramètre est ignoré.

client_flags

Le paramètre client_flags peut être une combinaison des constantes suivantes : 128 (active le gestionnaire LOAD DATA LOCAL), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE ou MYSQL_CLIENT_INTERACTIVE. Lisez la section à propos de Constantes client MySQL pour plus d'informations. En safe mode SQL, ce paramètre est ignoré.

Valeurs de retour

Retourne l'identifiant de connexion MySQL en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.5.0 | Cette fonction va générer une alerte de niveau E_DEPRECATED.

Exemples

Exemple #1 Exemple avec mysql_connect()

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("Impossible de se connecter : " . mysql_error());
echo 'Connexion réussie';
mysql_close($link);
?>

Exemple #2 Exemple avec mysql_connect() en utilisant la syntaxe hostname:port

<?php
// on se connecte à example.com et au port 3307
$link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Connexion impossible : ' . mysql_error());
}
echo 'Connecté correctement';
mysql_close($link);

// on se connect à localhost au port 3307
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Connexion impossible : ' . mysql_error());
}
echo 'Connecté correctement';
mysql_close($link);
?>

Exemple #3 Exemple avec mysql_connect() en utilisant la syntaxe ":/path/to/socket"

<?php
// on se connect à localhost et à l'interface de connexion, par exemple /tmp/mysql.sock

//variante 1 : oublie de localhost
$link = mysql_connect(':/tmp/mysql', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Connexion impossible : ' . mysql_error());
}
echo 'Connecté correctement';
mysql_close($link);

// variante 2 : avec localhost
$link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Connexion impossible : ' . mysql_error());
}
echo 'Connecté correctement';
mysql_close($link);
?>

Notes

Note:

Toutes les fois que vous spécifiez "localhost" ou "localhost:port" en tant que serveur, le bibliothèque client MySQL surchargera cela et essaiera de se connecter à un socket local (nommé pipe sous Windows). Si vous souhaitez utiliser TCP/IP, utilisez "127.0.0.1" au lieu de "localhost". Si la bibliothèque client MySQL essaie de se connecter au mauvais socket local, vous devriez spécifier le chemin d'accès correct à dans votre configurations PHP et laisser le champ du serveur vide.

Note:

La connexion au serveur sera fermée aussitôt que l'exécution du script se termine, à moins qu'elle soit fermée avant en appelant explicitement mysql_close().

Note:

Vous pouvez supprimer les messages d'erreur en cas d'échec en faisant précéder le nom de la fonction par @.

Note:

L'erreur "Can't create TCP/IP socket (10106)" signifie habituellement que la directive de configuration variables_order ne contient pas le caractère E. Sous Windows, si la variable d'environnement n'est pas copiée, la variable d'environnement SYSTEMROOT ne sera pas disponible et PHP aura des problèmes pour charger Winsock.

Voir aussi

  • mysql_pconnect() - Ouvre une connexion persistante à un serveur MySQL
  • mysql_close() - Ferme la connexion MySQL


Crée une base de données MySQL

  • « mysql_connect
  • mysql_data_seek »
  • PHP Manual
  • Fonctions MySQL
  • Crée une base de données MySQL

mysql_create_db

(PHP 4, PHP 5)

mysql_create_db — Crée une base de données MySQL

Avertissement

Cette fonction était obsolète en PHP 4.3.0, et la totalité de l'extension original MySQL a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser soit l'extension MySQLi, soit l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide, et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_query()
  • PDO::query()

Description

bool mysql_create_db ( string $database_name [, resource $link_identifier = NULL ] )

mysql_create_db() tente de créer une nouvelle base de données sur le serveur associé avec l'identifiant de connexion spécifié.

Liste de paramètres

database_name

Le nom de la base de données à être créée.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple alternative avec mysql_create_db()

La fonction mysql_create_db() est obsolète. Il est préférable d'utiliser la fonction mysql_query(), avec une commande SQL "CREATE DATABASE".

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Connexion impossible : ' . mysql_error());
}

$sql = 'CREATE DATABASE my_db';
if (mysql_query($sql, $link)) {
    echo "Base de données créée correctement\n";
} else {
    echo 'Erreur lors de la création de la base de données : ' . mysql_error() . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Base de données créée correctement

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_createdb()

Note:

Cette fonction n'est pas disponible si l'extension MySQL a été compilée avec une bibliothèque client MySQL 4.x.

Voir aussi

  • mysql_query() - Envoie une requête à un serveur MySQL
  • mysql_select_db() - Sélectionne une base de données MySQL


Déplace le pointeur interne de résultat MySQL

  • « mysql_create_db
  • mysql_db_name »
  • PHP Manual
  • Fonctions MySQL
  • Déplace le pointeur interne de résultat MySQL

mysql_data_seek

(PHP 4, PHP 5)

mysql_data_seek — Déplace le pointeur interne de résultat MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_data_seek()
  • PDO::FETCH_ORI_ABS

Description

bool mysql_data_seek ( resource $result , int $row_number )

mysql_data_seek() déplace le pointeur interne de résultat, dans le résultat associé à l'identifiant de résultat result_identifier. Il le fait pointer à la ligne row_number. Le prochain appel à une fonction MySQL de récupération de données, comme la fonction mysql_fetch_assoc() retournera cette ligne.

row_number commence à 0. row_number doit être une valeur qui va de 0 à mysql_num_rows() - 1. Cependant, si le résultat est vide, un row_number de 0 échouera avec une erreur E_WARNING et mysql_data_seek() retournera FALSE.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

row_number

La position de la ligne désirée pour le nouveau pointeur de résultats.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_data_seek()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Connexion impossible : ' . mysql_error());
}
$db_selected = mysql_select_db('sample_db');
if (!$db_selected) {
    die('Sélection de base de données impossible : ' . mysql_error());
}
$query = 'SELECT nom_famille, prenom FROM amis';
$result = mysql_query($query);
if (!$result) {
    die('Requête échec : ' . mysql_error());
}
/* Récupération des lignes en ordre inverse */
for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
    if (!mysql_data_seek($result, $i)) {
        echo "Ne peut pointer vers la ligne $i : " . mysql_error() . "\n";
        continue;
    }

    if (!($row = mysql_fetch_assoc($result))) {
        continue;
    }

    echo $row['nom_famille'] . ' ' . $row['prenom'] . "<br />\n";
}

mysql_free_result($result);
?>

Notes

Note:

La fonction mysql_data_seek() peut être utilisée
en conjonction avec mysql_query(), mais pas
avec la fonction mysql_unbuffered_query().

Voir aussi

  • mysql_query() - Envoie une requête à un serveur MySQL
  • mysql_num_rows() - Retourne le nombre de lignes d'un résultat MySQL
  • mysql_fetch_row() - Retourne une ligne de résultat MySQL sous la forme d'un tableau
  • mysql_fetch_assoc() - Lit une ligne de résultat MySQL dans un tableau associatif
  • mysql_fetch_array() - Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysql_fetch_object() - Retourne une ligne de résultat MySQL sous la forme d'un objet


Récupère le nom de base de données à l'appel de mysql_list_dbs

  • « mysql_data_seek
  • mysql_db_query »
  • PHP Manual
  • Fonctions MySQL
  • Récupère le nom de base de données à l'appel de mysql_list_dbs

mysql_db_name

(PHP 4, PHP 5)

mysql_db_name — Récupère le nom de base de données à l'appel de mysql_list_dbs()

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • Requête : SELECT DATABASE()

Description

string mysql_db_name ( resource $result , int $row [, mixed $field = NULL ] )

Récupère le nom de base de données à l'appel de mysql_list_dbs().

Liste de paramètres

result

Le pointeur de résultat d'un appel de mysql_list_dbs().

row

L'index à l'intérieur du jeu de résultats.

field

Le nom du champ.

Valeurs de retour

Retourne le nom de base de données en cas de succès et FALSE en cas d'échec. Si FALSE est retourné, utilisez mysql_error() pour déterminer la nature de l'erreur.

Historique

Version | Description
5.5.0 | La fonction mysql_list_dbs() est obsolète et émet une alerte de niveau E_DEPRECATED.

Exemples

Exemple #1 Exemple mysql_db_name()

<?php
error_reporting(E_ALL);

$link = mysql_connect('dbhost', 'username', 'password');
$db_list = mysql_list_dbs($link);

$i = 0;
$cnt = mysql_num_rows($db_list);
while ($i < $cnt) {
    echo mysql_db_name($db_list, $i) . "\n";
    $i++;
}
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_dbname()

Voir aussi

  • mysql_list_dbs() - Liste les bases de données disponibles sur le serveur MySQL
  • mysql_tablename() - Lit le nom de la table qui contient un champ


Sélectionne une base de données et y exécute une requête

  • « mysql_db_name
  • mysql_drop_db »
  • PHP Manual
  • Fonctions MySQL
  • Sélectionne une base de données et y exécute une requête

mysql_db_query

(PHP 4, PHP 5)

mysql_db_query — Sélectionne une base de données et y exécute une requête

Avertissement

Cette fonction était obsolète en PHP 5.3.0, et la totalité de l'extension original MySQL a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser soit l'extension MySQLi, soit l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide, et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_select_db() puis la requête
  • PDO::__construct()

Description

resource mysql_db_query ( string $database , string $query [, resource $link_identifier = NULL ] )

mysql_db_query() sélectionne une base de données et exécute une requête sur celle-ci.

Liste de paramètres

database

Le nom de la base de données qui sera sélectionnée.

query

La requête MySQL.

Les données contenues dans la requête doivent être proprement échappées.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne une ressource de résultat positive MySQL à partir de la requête ou FALSE en cas d'erreur. Cette fonction retourne aussi TRUE/FALSE pour les requêtes INSERT/UPDATE/DELETE pour indiquer une réussite ou un échec.

Historique

Version | Description
5.3.0 | Cette fonction lance maintenant une alerte de type E_DEPRECATED.

Exemples

Exemple #1 Exemple alternatif avec mysql_db_query()

<?php

if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
    echo 'Connexion impossible à mysql';
    exit;
}

if (!mysql_select_db('mysql_dbname', $link)) {
    echo 'Sélection de base de données impossible';
    exit;
}

$sql    = 'SELECT foo FROM bar WHERE id = 42';
$result = mysql_query($sql, $link);

if (!$result) {
    echo "Erreur DB, impossible d'effectuer une requête\n";
    echo 'Erreur MySQL : ' . mysql_error();
    exit;
}

while ($row = mysql_fetch_assoc($result)) {
    echo $row['foo'];
}

mysql_free_result($result);

?>

Notes

Note:

Soyez avertis que cette fonction ne restaure pas la base de données qui était utilisée initialement. En d'autres termes, vous ne pouvez utiliser cette fonction pour exécuter temporairement une requête SQL dans une autre base de données, il vous faudra sélectionner manuellement la bonne base à nouveau. Il est fortement recommandé d'utiliser la syntaxe SQL database.table ou mysql_select_db() au lieu de cette fonction.

Voir aussi

  • mysql_query() - Envoie une requête à un serveur MySQL
  • mysql_select_db() - Sélectionne une base de données MySQL


Efface une base de données MySQL

  • « mysql_db_query
  • mysql_errno »
  • PHP Manual
  • Fonctions MySQL
  • Efface une base de données MySQL

mysql_drop_db

(PHP 4, PHP 5)

mysql_drop_db — Efface une base de données MySQL

Avertissement

Cette fonction était obsolète en PHP 4.3.0, et la totalité de l'extension original MySQL a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser soit l'extension MySQLi, soit l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide, et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • Exécute une requête DROP DATABASE

Description

bool mysql_drop_db ( string $database_name [, resource $link_identifier = NULL ] )

mysql_drop_db() essaie d'effacer la base de données database_name complète sur le serveur associé à la ressource de connexion link_identifier. La fonction mysql_drop_db() est obsolète. Il est préférable d'utiliser mysql_query() avec la requête DROP DATABASE à la place.

Liste de paramètres

database_name

Le nom de la base de données à effacer.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_drop_db()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Impossible de se connecter : ' . mysql_error());
}

$sql = 'DROP DATABASE my_db';
if (mysql_query($sql, $link)) {
echo "La base de données my_db a été effacée avec succès.\n";
} else {
echo 'Erreur lors de l\'effacement de la base : ' . mysql_error() . "\n";
}
?>

Notes

Avertissement

Cette fonction ne sera pas disponible si vous avez compilé MySQL avec la bibliothèque cliente MySQL 4.x.

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_dropdb()

Voir aussi

  • mysql_query() - Envoie une requête à un serveur MySQL


Retourne le numéro d'erreur de la dernière commande MySQL

  • « mysql_drop_db
  • mysql_error »
  • PHP Manual
  • Fonctions MySQL
  • Retourne le numéro d'erreur de la dernière commande MySQL

mysql_errno

(PHP 4, PHP 5)

mysql_errno — Retourne le numéro d'erreur de la dernière commande MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_errno()
  • PDO::errorCode()

Description

int mysql_errno ([ resource $link_identifier = NULL ] )

Retourne le numéro d'erreur de la dernière commande MySQL.

Les erreurs qui sont remontées depuis le serveur MySQL ne sont plus des alertes. À la place, il faut utiliser mysql_errno() pour obtenir le numéro d'erreur. Notez que cette fonction retourne uniquement le code erreur depuis la dernière fonction MySQL exécutée (n'incluant pas les fonctions mysql_error() et mysql_errno()), donc, si vous voulez l'utiliser, assurez-vous de récupérer la valeur avant d'appeler une autre fonction MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le numéro de l'erreur depuis la dernière fonction MySQL, ou 0 (zéro) si aucune erreur ne survient.

Exemples

Exemple #1 Exemple avec mysql_errno()

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!mysql_select_db("nonexistentdb", $link)) {
   echo mysql_errno($link) . ": " . mysql_error($link). "\n";
}

mysql_select_db("kossu", $link);
if (!mysql_query("SELECT * FROM nonexistenttable", $link)) {
   echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Voir aussi

  • mysql_error() - Retourne le texte associé avec l'erreur générée lors de la dernière requête
  • » les codes erreurs MySQL


Retourne le texte associé avec l'erreur générée lors de la dernière requête

  • « mysql_errno
  • mysql_escape_string »
  • PHP Manual
  • Fonctions MySQL
  • Retourne le texte associé avec l'erreur générée lors de la dernière requête

mysql_error

(PHP 4, PHP 5)

mysql_error — Retourne le texte associé avec l'erreur générée lors de la dernière requête

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_error()
  • PDO::errorInfo()

Description

string mysql_error ([ resource $link_identifier = NULL ] )

mysql_error() retourne le message d'erreur généré par la dernière commande MySQL. Les erreurs retournées par le serveur MySQL ne génèrent plus de message d'alerte. À la place, vous devez utiliser la fonction mysql_error() pour lire le contenu du message. Notez que cette fonction ne retourne que le texte de l'erreur la plus récente(n'incluant pas mysql_error() et mysql_errno()), ce qui fait que si vous souhaitez l'utiliser, vous devez vous assurer de sa valeur avant de lancer une autre requête.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le texte de l'erreur de la dernière fonction MySQL, ou '' (chaîne vide) si aucune erreur survient.

Exemples

Exemple #1 Exemple avec mysql_error()

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

mysql_select_db("nonexistentdb", $link);
echo mysql_errno($link) . ": " . mysql_error($link). "\n";

mysql_select_db("kossu", $link);
mysql_query("SELECT * FROM nonexistenttable", $link);
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Voir aussi

  • mysql_errno() - Retourne le numéro d'erreur de la dernière commande MySQL
  • » les codes erreurs MySQL


Protège les caractères spéciaux SQL

  • « mysql_error
  • mysql_fetch_array »
  • PHP Manual
  • Fonctions MySQL
  • Protège les caractères spéciaux SQL

mysql_escape_string

(PHP 4 >= 4.0.3, PHP 5)

mysql_escape_string — Protège les caractères spéciaux SQL

Avertissement

Cette fonction était obsolète en PHP 4.3.0, et la totalité de l'extension original MySQL a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser soit l'extension MySQLi, soit l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide, et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_escape_string()
  • PDO::quote()

Description

string mysql_escape_string ( string $unescaped_string )

mysql_escape_string() va protéger tous les caractères de la chaîne unescaped_string, pour pouvoir l'utiliser directement dans une requête mysql_query(). Cette fonction est obsolète.

mysql_escape_string() est identique à la fonction mysql_real_escape_string() hormis le fait que mysql_real_escape_string() requiert une ressource de connexion et protège la chaîne en fonction du jeu de caractères courant. mysql_escape_string() ne demande pas de connexion comme argument, et ne respecte pas le jeu de caractères courant.

Liste de paramètres

unescaped_string

La chaîne qui doit être protégée.

Valeurs de retour

Retourne la chaîne protégée.

Historique

Version | Description
5.3.0 | Cette fonction lance maintenant une alerte de type E_DEPRECATED.
4.3.0 | Cette fonction devient obsolète, ne l'utilisez pas. À la place, utilisez la fonction mysql_real_escape_string().

Exemples

Exemple #1 Exemple avec mysql_escape_string()

<?php
$item = "C'est un exemple de Zak";
$escaped_item = mysql_escape_string($item);
printf("Chaîne protégée : %s\n", $escaped_item);
?>

L'exemple ci-dessus va afficher :

Chaîne protégée : C\'est un exemple de Zak

Notes

Note:

mysql_escape_string() ne protège pas les caractères % et _.

Voir aussi

  • mysql_real_escape_string() - Protège une commande SQL de la présence de caractères spéciaux
  • addslashes() - Ajoute des antislashs dans une chaîne
  • La directive magic_quotes_gpc.


Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux

  • « mysql_escape_string
  • mysql_fetch_assoc »
  • PHP Manual
  • Fonctions MySQL
  • Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux

mysql_fetch_array

(PHP 4, PHP 5)

mysql_fetch_array — Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_fetch_array()
  • PDOStatement::fetch()

Description

array mysql_fetch_array ( resource $result [, int $result_type = MYSQL_BOTH ] )

mysql_fetch_array() retourne un tableau qui contient la ligne demandée dans le résultat result et déplace le pointeur de données interne d'un cran.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

result_type

Le type de tableau à récupérer. C'est une constante qui peut prendre les valeurs suivantes : MYSQL_ASSOC, MYSQL_NUM, et MYSQL_BOTH.

Valeurs de retour

Retourne un tableau de chaînes qui correspond à la ligne récupérée ou FALSE s'il n'y a plus de lignes. Le type de tableau retourné dépend de la définition du paramètre result_type. En utilisant MYSQL_BOTH (défaut), vous récupérerez un tableau contenant des indices associatifs et numériques. En utilisant MYSQL_ASSOC, vous ne récupérerez que les indices associatifs (comme le fonctionnement de la fonction mysql_fetch_assoc()), en utilisant MYSQL_NUM, vous ne récupérerez que les indices numériques (comme le fonctionnement de la fonctionmysql_fetch_row()).

Si plusieurs colonnes portent le même nom, la dernière colonne aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez utiliser l'index numérique, ou faire un alias pour chaque colonne. Pour les alias de colonnes, vous ne pourrez pas accéder aux contenus avec les noms originaux des colonnes.

Exemples

Exemple #1 Requête avec duplication de nom de colonnes

SELECT table1.field AS foo, table2.field AS bar FROM table1, table2

Exemple #2 mysql_fetch_array() avec MYSQL_NUM

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
   printf("ID : %s  Nom : %s", $row[0], $row[1]);
}

mysql_free_result($result);
?>

Exemple #3 mysql_fetch_array() avec MYSQL_ASSOC

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
   printf("ID : %s  Nom : %s", $row["id"], $row["name"]);
}

mysql_free_result($result);
?>

Exemple #4 mysql_fetch_array() avec MYSQL_BOTH

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
   printf ("ID : %s  Nom : %s", $row[0], $row["name"]);
}

mysql_free_result($result);
?>

Notes

Note: Performance

Une chose importante à noter est que l'utilisation de mysql_fetch_array() n'est pas significativement plus lent que l'utilisation de mysql_fetch_row(), alors qu'il fournit des valeurs significatives ajoutées.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

  • mysql_fetch_row() - Retourne une ligne de résultat MySQL sous la forme d'un tableau
  • mysql_fetch_assoc() - Lit une ligne de résultat MySQL dans un tableau associatif
  • mysql_data_seek() - Déplace le pointeur interne de résultat MySQL
  • mysql_query() - Envoie une requête à un serveur MySQL


Lit une ligne de résultat MySQL dans un tableau associatif

  • « mysql_fetch_array
  • mysql_fetch_field »
  • PHP Manual
  • Fonctions MySQL
  • Lit une ligne de résultat MySQL dans un tableau associatif

mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc — Lit une ligne de résultat MySQL dans un tableau associatif

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_fetch_assoc()
  • PDOStatement::fetch(PDO::FETCH_ASSOC)

Description

array mysql_fetch_assoc ( resource $result )

mysql_fetch_assoc() retourne un tableau associatif qui contient la ligne lue dans le résultat result et déplace le pointeur interne de données. mysql_fetch_assoc() revient à appeler la fonction mysql_fetch_array() avec MYSQL_ASSOC en tant que second paramètre. Cette fonction retourne uniquement un tableau associatif.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Retourne un tableau associatif de chaînes qui contient la ligne lue dans le résultat result, ou bien FALSE s'il ne reste plus de lignes à lire.

Si plusieurs colonnes portent le même nom, la dernière aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez utiliser la fonction mysql_fetch_row() avec les indices numériques ou utiliser les alias sur les noms. Regardez la documentation sur la fonction mysql_fetch_array() pour plus d'informations sur les alias.

Exemples

Exemple #1 Exemple avec mysql_fetch_assoc()

<?php

$conn = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!$conn) {
echo "Impossible de se connecter à la base de données : " . mysql_error();
   exit;
}

if (!mysql_select_db("mydbname")) {
   echo "Impossible de sélectionner la base mydbname : " . mysql_error();
   exit;
}

$sql = "SELECT id as userid, fullname, userstatus
FROM   sometable
WHERE  userstatus = 1";

$result = mysql_query($sql);

if (!$result) {
   echo "Impossible d'exécuter la requête ($sql) dans la base : " . mysql_error();
   exit;
}

if (mysql_num_rows($result) == 0) {
   echo "Aucune ligne trouvée, rien à afficher.";
   exit;
}

// Tant qu'une ligne existe, place cette ligne dans la variable $row
// sous la forme d'un tableau associatif.
// Note : Si vous n'attendez qu'une seule ligne, oubliez la boucle
// Note : Si vous utilisez extract($row); dans la boucle suivante
//       vous créerez $userid, $fullname et $userstatus
while ($row = mysql_fetch_assoc($result)) {
   echo $row["userid"];
   echo $row["fullname"];
   echo $row["userstatus"];
}

mysql_free_result($result);

?>

Notes

Note: Performance

Une chose importante à noter est que l'utilisation de mysql_fetch_assoc() n'est pas significativement plus lent que l'utilisation de mysql_fetch_row(), alors qu'il fournit des valeurs significatives ajoutées.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

  • mysql_fetch_row() - Retourne une ligne de résultat MySQL sous la forme d'un tableau
  • mysql_fetch_array() - Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysql_data_seek() - Déplace le pointeur interne de résultat MySQL
  • mysql_query() - Envoie une requête à un serveur MySQL
  • mysql_error() - Retourne le texte associé avec l'erreur générée lors de la dernière requête


Retourne les données enregistrées dans une colonne MySQL sous forme d'objet

  • « mysql_fetch_assoc
  • mysql_fetch_lengths »
  • PHP Manual
  • Fonctions MySQL
  • Retourne les données enregistrées dans une colonne MySQL sous forme d'objet

mysql_fetch_field

(PHP 4, PHP 5)

mysql_fetch_field — Retourne les données enregistrées dans une colonne MySQL sous forme d'objet

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_fetch_field()
  • PDOStatement::getColumnMeta()

Description

object mysql_fetch_field ( resource $result [, int $field_offset = 0 ] )

Retourne un objet contenant les informations sur les champs. Cette fonction peut être utilisée pour obtenir des informations sur les champs de la requête fournie result.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. Si la position du champ n'est pas spécifiée, le champ suivant qui n'a pas encore été récupéré par cette fonction est alors récupéré. field_offset commence à 0.

Valeurs de retour

Retourne un objet contenant les informations sur les champs. Les propriétés de l'objet sont les suivantes :

  • "name" : nom de la colonne
  • "table" : nom de la table pour la colonne, qui pourra être l'alias si un alias a été défini.
  • "max_length" : taille maximale de la colonne
  • "not_null" : 1 si la colonne ne peut pas être NULL
  • "primary_key" : 1 si la colonne est une clé primaire
  • "unique_key" : 1 si la colonne est une clé unique
  • "multiple_key" : 1 si la colonne est une clé non unique
  • "numeric" : 1 si la colonne est numérique
  • "blob" : 1 si la colonne est BLOB
  • "type" : le type de la colonne
  • "unsigned" : 1 si la colonne est non signée
  • "zerofill" : 1 si la colonne est complétée par des zéro

Exemples

Exemple #1 Exemple avec mysql_fetch_field()

<?php
$conn = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$conn) {
   die('Impossible de se connecter : ' . mysql_error());
}
mysql_select_db('database');
$result = mysql_query('select * from table');
if (!$result) {
   die('Échec de la requête : ' . mysql_error());
}
/* Lecture des méta données de la colonne */
$i = 0;
while ($i < mysql_num_fields($result)) {
   echo "Détails sur la colonne $i:<br />\n";
   $meta = mysql_fetch_field($result, $i);
   if (!$meta) {
      echo "Aucun détail disponible<br />\n";
   }
   echo "<pre>
    blob:         $meta->blob
    max_length:   $meta->max_length
    multiple_key: $meta->multiple_key
    name:         $meta->name
    not_null:     $meta->not_null
    numeric:      $meta->numeric
    primary_key:  $meta->primary_key
    table:        $meta->table
    type:         $meta->type
    unique_key:   $meta->unique_key
    unsigned:     $meta->unsigned
    zerofill:     $meta->zerofill
   </pre>";
   $i++;
}
mysql_free_result($result);
?>

Notes

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note:

Si les champs ou les noms de table utilisent un alias dans la requête SQL, le nom utilisé dans l'alias sera retourné. Le nom original peut être récupéré en utilisant la méthode mysqli_result::fetch_field().

Voir aussi

  • mysql_field_seek() - Déplace le pointeur de résultat vers une position donnée


Retourne la taille de chaque colonne d'une ligne de résultat MySQL

  • « mysql_fetch_field
  • mysql_fetch_object »
  • PHP Manual
  • Fonctions MySQL
  • Retourne la taille de chaque colonne d'une ligne de résultat MySQL

mysql_fetch_lengths

(PHP 4, PHP 5)

mysql_fetch_lengths — Retourne la taille de chaque colonne d'une ligne de résultat MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_fetch_lengths()
  • PDOStatement::getColumnMeta()

Description

array mysql_fetch_lengths ( resource $result )

mysql_fetch_lengths() retourne un tableau avec la taille de chaque colonne de la dernière ligne retournée par mysql_fetch_row().

mysql_fetch_lengths() stocke les tailles de chaque colonne de la dernière ligne retournée par mysql_fetch_row(), mysql_fetch_assoc(), mysql_fetch_array() et mysql_fetch_object() dans un tableau, en commençant à la position 0.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Un array de taille, en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_fetch_lengths()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
$row     = mysql_fetch_assoc($result);
$lengths = mysql_fetch_lengths($result);

print_r($row);
print_r($lengths);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [id] => 42
   [email] => user@example.com
)
Array
(
   [0] => 2
   [1] => 16
)

Voir aussi

  • mysql_field_len() - Retourne la taille d'un champ de résultat MySQL
  • mysql_fetch_row() - Retourne une ligne de résultat MySQL sous la forme d'un tableau
  • strlen() - Calcule la taille d'une chaîne


Retourne une ligne de résultat MySQL sous la forme d'un objet

  • « mysql_fetch_lengths
  • mysql_fetch_row »
  • PHP Manual
  • Fonctions MySQL
  • Retourne une ligne de résultat MySQL sous la forme d'un objet

mysql_fetch_object

(PHP 4, PHP 5)

mysql_fetch_object — Retourne une ligne de résultat MySQL sous la forme d'un objet

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_fetch_object()
  • PDOStatement::fetch(PDO::FETCH_OBJ)

Description

object mysql_fetch_object ( resource $result [, string $class_name [, array $params ]] )

mysql_fetch_object() retourne un tableau qui contient la ligne demandée dans le résultat result et déplace le pointeur de données interne d'un cran.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

class_name

Le nom de la classe à instancier, définit les propriétés et retourne. SI ce paramètre n'est pas spécifié, un objet stdClass sera retourné.

params

Un tableau de paramètres à passer au constructeur pour les objets class_name.

Valeurs de retour

Retourne un objet avec les propriétés qui correspondent à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

Exemples

Exemple #1 Exemple avec mysql_fetch_object()

<?php
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result = mysql_query("select * from mytable");
while ($row = mysql_fetch_object($result)) {
   echo $row->user_id;
   echo $row->fullname;
}
mysql_free_result($result);
?>

Exemple #2 Exemple avec mysql_fetch_object()

<?php
class foo {
    public $name;
}

mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");

$result = mysql_query("select name from mytable limit 1");
$obj = mysql_fetch_object($result, 'foo');
var_dump($obj);
?>

Notes

Note: Performance

Concernant la vitesse, mysql_fetch_object() est
aussi rapide que mysql_fetch_array() et presque
aussi rapide que mysql_fetch_row() (la
différence est insignifiante).

Note:

mysql_fetch_object() est identique à mysql_fetch_array(), à la différence qu'elle retourne un objet à la place d'un tableau. Vous pourrez ainsi accéder aux valeurs des champs par leur nom, mais plus par leur offset (les nombres ne sont pas des noms MySQL).

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

  • mysql_fetch_array() - Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysql_fetch_assoc() - Lit une ligne de résultat MySQL dans un tableau associatif
  • mysql_fetch_row() - Retourne une ligne de résultat MySQL sous la forme d'un tableau
  • mysql_data_seek() - Déplace le pointeur interne de résultat MySQL
  • mysql_query() - Envoie une requête à un serveur MySQL


Retourne une ligne de résultat MySQL sous la forme d'un tableau

  • « mysql_fetch_object
  • mysql_field_flags »
  • PHP Manual
  • Fonctions MySQL
  • Retourne une ligne de résultat MySQL sous la forme d'un tableau

mysql_fetch_row

(PHP 4, PHP 5)

mysql_fetch_row — Retourne une ligne de résultat MySQL sous la forme d'un tableau

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_fetch_row()
  • PDOStatement::fetch(PDO::FETCH_NUM)

Description

array mysql_fetch_row ( resource $result )

mysql_fetch_row() retourne un tableau indexé numériquement, qui correspond à la prochaine ligne du résultat MySQL result et déplace le pointeur interne de données d'un cran.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Retourne un tableau numérique de chaînes qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

mysql_fetch_row() va rechercher une ligne dans le résultat associé à l'identifiant de résultat spécifié. La ligne est retournée sous la forme d'un tableau. Chaque colonne est enregistrée sous la forme d'un tableau commençant à la position 0.

Exemples

Exemple #1 Exemple avec mysql_fetch_row()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
$row = mysql_fetch_row($result);

echo $row[0]; // 42
echo $row[1]; // la valeur du champ email
?>

Notes

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

  • mysql_fetch_array() - Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysql_fetch_assoc() - Lit une ligne de résultat MySQL dans un tableau associatif
  • mysql_fetch_object() - Retourne une ligne de résultat MySQL sous la forme d'un objet
  • mysql_data_seek() - Déplace le pointeur interne de résultat MySQL
  • mysql_fetch_lengths() - Retourne la taille de chaque colonne d'une ligne de résultat MySQL
  • mysql_result() - Retourne un champ d'un résultat MySQL


Retourne des détails sur une colonne MySQL

  • « mysql_fetch_row
  • mysql_field_len »
  • PHP Manual
  • Fonctions MySQL
  • Retourne des détails sur une colonne MySQL

mysql_field_flags

(PHP 4, PHP 5)

mysql_field_flags — Retourne des détails sur une colonne MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_fetch_field_direct() [flags]
  • PDOStatement::getColumnMeta() [flags]

Description

string mysql_field_flags ( resource $result , int $field_offset )

mysql_field_flags() retourne le sémaphore associé au champ spécifié par field_offset, dans le résultat result. Les sémaphores sont retournés comme des mots, séparés par des espaces, ce qui les rend faciles à séparer, avec la commande explode().

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Retourne les sémaphores sous la forme d'une chaîne associés avec le résultat ou FALSE si une erreur survient.

Les valeurs suivantes (pour une version suffisamment récente de MySQL) sont disponibles : "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment" et "timestamp".

Exemples

Exemple #1 Exemple avec mysql_field_flags()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
$flags = mysql_field_flags($result, 0);

echo $flags;
print_r(explode(' ', $flags));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

not_null primary_key auto_increment
Array
(
   [0] => not_null
   [1] => primary_key
   [2] => auto_increment
)

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldflags()

Voir aussi

  • mysql_field_type() - Retourne le type d'une colonne MySQL spécifique
  • mysql_field_len() - Retourne la taille d'un champ de résultat MySQL


Retourne la taille d'un champ de résultat MySQL

  • « mysql_field_flags
  • mysql_field_name »
  • PHP Manual
  • Fonctions MySQL
  • Retourne la taille d'un champ de résultat MySQL

mysql_field_len

(PHP 4, PHP 5)

mysql_field_len — Retourne la taille d'un champ de résultat MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_fetch_field_direct() [length]
  • PDOStatement::getColumnMeta() [len]

Description

int mysql_field_len ( resource $result , int $field_offset )

mysql_field_len() retourne la taille du champ spécifié.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

La taille de l'index du champ spécifié en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_field_len()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}

// Récupère la longueur du champ id dans la base de données.
$length = mysql_field_len($result, 0);
echo $length;
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldlen()

Voir aussi

  • mysql_fetch_lengths() - Retourne la taille de chaque colonne d'une ligne de résultat MySQL
  • strlen() - Calcule la taille d'une chaîne


Retourne le nom d'une colonne dans un résultat MySQL

  • « mysql_field_len
  • mysql_field_seek »
  • PHP Manual
  • Fonctions MySQL
  • Retourne le nom d'une colonne dans un résultat MySQL

mysql_field_name

(PHP 4, PHP 5)

mysql_field_name — Retourne le nom d'une colonne dans un résultat MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_fetch_field_direct() [name] ou [orgname]
  • PDOStatement::getColumnMeta() [name]

Description

string mysql_field_name ( resource $result , int $field_offset )

mysql_field_name() retourne le nom du champ de l'index spécifié.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Le nom du champ de l'index spécifié en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_field_name()

<?php
/* Supposons que la table utilisée contienne trois champs :
 *   user_id
 *   username
 *   password.
 */
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
   die('Impossible de se connecter au serveur MySQL : ' . mysql_error());
}
$dbname = 'mydb';
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
   die("Impossible de se connecter à la base $dbname: " . mysql_error());
}
$res = mysql_query('select * from users', $link);

echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);
?>

L'exemple ci-dessus va afficher :

user_id
password

Notes

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldname()

Voir aussi

  • mysql_field_type() - Retourne le type d'une colonne MySQL spécifique
  • mysql_field_len() - Retourne la taille d'un champ de résultat MySQL


Déplace le pointeur de résultat vers une position donnée

  • « mysql_field_name
  • mysql_field_table »
  • PHP Manual
  • Fonctions MySQL
  • Déplace le pointeur de résultat vers une position donnée

mysql_field_seek

(PHP 4, PHP 5)

mysql_field_seek — Déplace le pointeur de résultat vers une position donnée

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_field_seek()
  • PDOStatement::fetch() utilisant le paramètre cursor_orientation et le paramètre offset

Description

bool mysql_field_seek ( resource $result , int $field_offset )

mysql_field_seek() place le pointeur de résultat result sur le champ spécifié par sa position field_offset. Lors du prochain appel à mysql_fetch_field() qui n'aura pas d'argument d'index de champ, le champ désormais pointé sera retourné.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mysql_fetch_field() - Retourne les données enregistrées dans une colonne MySQL sous forme d'objet


Retourne le nom de la table MySQL où se trouve une colonne

  • « mysql_field_seek
  • mysql_field_type »
  • PHP Manual
  • Fonctions MySQL
  • Retourne le nom de la table MySQL où se trouve une colonne

mysql_field_table

(PHP 4, PHP 5)

mysql_field_table — Retourne le nom de la table MySQL où se trouve une colonne

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_fetch_field_direct() [table] ou [orgtable]
  • PDOStatement::getColumnMeta() [table]

Description

string mysql_field_table ( resource $result , int $field_offset )

mysql_field_table() retourne le nom de la table où se trouve la colonne d'offset field_offset, dans le résultat MySQL result.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Le nom de la table en cas de succès.

Exemples

Exemple #1 Exemple avec mysql_field_table()

<?php

$query = "SELECT account.*, country.* FROM account, country WHERE country.name = 'Portugal' AND account.country_id = country.id";

// Récupère le résultat depuis la base de données
$result = mysql_query($query);

// Liste le nom de la table et ensuite, le nom du champ
for ($i = 0; $i < mysql_num_fields($result); ++$i) {
    $table = mysql_field_table($result, $i);
    $field = mysql_field_name($result, $i);

    echo  "$table: $field\n";
}

?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldtable()

Voir aussi

  • mysql_list_tables() - Liste les tables d'une base de données MySQL


Retourne le type d'une colonne MySQL spécifique

  • « mysql_field_table
  • mysql_free_result »
  • PHP Manual
  • Fonctions MySQL
  • Retourne le type d'une colonne MySQL spécifique

mysql_field_type

(PHP 4, PHP 5)

mysql_field_type — Retourne le type d'une colonne MySQL spécifique

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_fetch_field_direct() [type]
  • PDOStatement::getColumnMeta() [driver:decl_type] ou [pdo_type]

Description

string mysql_field_type ( resource $result , int $field_offset )

mysql_field_type() est similaire à la fonction mysql_field_name(). Les arguments sont identiques mais c'est le type de la colonne qui est retourné.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Le type du champ retourné peut être : "int", "real", "string", "blob" ou d'autres, comme détaillé » dans la documentation MySQL.

Exemples

Exemple #1 Exemple avec mysql_field_type()

<?php
mysql_connect("localhost", "mysql_username", "mysql_password");
mysql_select_db("mysql");
$result = mysql_query("SELECT * FROM func");
$fields = mysql_num_fields($result);
$rows   = mysql_num_rows($result);
$table  = mysql_field_table($result, 0);
echo "Votre table '" . $table . "' dispose de " . $fields . " colonnes et " . $rows . " ligne(s)\n";
echo "Les colonnes sont les suivantes :\n";
for ($i=0; $i < $fields; $i++) {
    $type  = mysql_field_type($result, $i);
    $name  = mysql_field_name($result, $i);
    $len   = mysql_field_len($result, $i);
    $flags = mysql_field_flags($result, $i);
    echo $type . " " . $name . " " . $len . " " . $flags . "\n";
}
mysql_free_result($result);
mysql_close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Votre table 'func' dispose de 4 colonnes et 1 ligne(s)
Les colonnes sont les suivantes :
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldtype()

Voir aussi

  • mysql_field_name() - Retourne le nom d'une colonne dans un résultat MySQL
  • mysql_field_len() - Retourne la taille d'un champ de résultat MySQL


Libère le résultat de la mémoire

  • « mysql_field_type
  • mysql_get_client_info »
  • PHP Manual
  • Fonctions MySQL
  • Libère le résultat de la mémoire

mysql_free_result

(PHP 4, PHP 5)

mysql_free_result — Libère le résultat de la mémoire

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_free_result()
  • Assignez la valeur NULL à l'objet PDO, ou PDOStatement::closeCursor()

Description

bool mysql_free_result ( resource $result )

mysql_free_result() libère toute la mémoire et les ressources utilisées par la ressource de résultat result.

mysql_free_result() n'est à appeler que si vous avez peur d'utiliser trop de mémoire durant l'exécution de votre script. Toute la mémoire associée à l'identifiant de résultat sera automatiquement libérée.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si la valeur passée à l'argument result n'est pas une ressource, une erreur de niveau E_WARNING sera émise. Il est important de noter que la fonction mysql_query() retourne uniquement une ressource pour les requêtes SELECT, SHOW, EXPLAIN et DESCRIBE.

Exemples

Exemple #1 Exemple avec mysql_free_result()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
/* Utilisation du résultat */
$row = mysql_fetch_assoc($result);

/* Maintenant, nous libérons le résultat et continuons notre script */
mysql_free_result($result);

echo $row['id'];
echo $row['email'];
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_freeresult()

Voir aussi

  • mysql_query() - Envoie une requête à un serveur MySQL
  • is_resource() - Détermine si une variable est une ressource


Lit les informations sur le client MySQL

  • « mysql_free_result
  • mysql_get_host_info »
  • PHP Manual
  • Fonctions MySQL
  • Lit les informations sur le client MySQL

mysql_get_client_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_client_info — Lit les informations sur le client MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_get_client_info()
  • PDO::getAttribute(PDO::ATTR_CLIENT_VERSION)

Description

string mysql_get_client_info ( void )

mysql_get_client_info() retourne une chaîne qui représente le numéro de version du client utilisé par PHP.

Valeurs de retour

La version du client MySQL.

Exemples

Exemple #1 Exemple avec mysql_get_client_info()

<?php
printf("Détails sur le client MySQL : %s\n", mysql_get_client_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Détails sur le client MySQL : 3.23.39

Voir aussi

  • mysql_get_host_info() - Lit les informations sur l'hôte MySQL
  • mysql_get_proto_info() - Lit les informations sur le protocole MySQL
  • mysql_get_server_info() - Lit les informations sur le serveur MySQL


Lit les informations sur l'hôte MySQL

  • « mysql_get_client_info
  • mysql_get_proto_info »
  • PHP Manual
  • Fonctions MySQL
  • Lit les informations sur l'hôte MySQL

mysql_get_host_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_host_info — Lit les informations sur l'hôte MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_get_host_info()
  • PDO::getAttribute(PDO::ATTR_CONNECTION_STATUS)

Description

string mysql_get_host_info ([ resource $link_identifier = NULL ] )

mysql_get_host_info() retourne une chaîne qui représente le type de connexion utilisé avec la connexion link_identifier, y compris le nom du serveur hôte.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne une chaîne décrivant le type de connexion MySQL utilisé pour la connexion ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_get_host_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
   die('Impossible de se connecter : ' . mysql_error());
}
printf("Informations sur l'hôte MySQL : %s\n", mysql_get_host_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Informations sur l'hôte MySQL : Localhost via UNIX socket

Voir aussi

  • mysql_get_client_info() - Lit les informations sur le client MySQL
  • mysql_get_proto_info() - Lit les informations sur le protocole MySQL
  • mysql_get_server_info() - Lit les informations sur le serveur MySQL


Lit les informations sur le protocole MySQL

  • « mysql_get_host_info
  • mysql_get_server_info »
  • PHP Manual
  • Fonctions MySQL
  • Lit les informations sur le protocole MySQL

mysql_get_proto_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_proto_info — Lit les informations sur le protocole MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_get_proto_info()

Description

int mysql_get_proto_info ([ resource $link_identifier = NULL ] )

Lit les informations sur le protocole MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le protocole MySQL en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_get_proto_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
   die('Impossible de se connecter : ' . mysql_error());
}
printf("Version du protocole MySQL : %s\n", mysql_get_proto_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du protocole MySQL : 10

Voir aussi

  • mysql_get_client_info() - Lit les informations sur le client MySQL
  • mysql_get_host_info() - Lit les informations sur l'hôte MySQL
  • mysql_get_server_info() - Lit les informations sur le serveur MySQL


Lit les informations sur le serveur MySQL

  • « mysql_get_proto_info
  • mysql_info »
  • PHP Manual
  • Fonctions MySQL
  • Lit les informations sur le serveur MySQL

mysql_get_server_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_server_info — Lit les informations sur le serveur MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_get_server_info()
  • PDO::getAttribute(PDO::ATTR_SERVER_VERSION)

Description

string mysql_get_server_info ([ resource $link_identifier = NULL ] )

Lit les informations sur le serveur MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne la version du serveur MySQL en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_get_server_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Impossible de se connecter à la base : ' . mysql_error());
}
printf("Version du serveur MySQL : %s\n", mysql_get_server_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du serveur MySQL : 4.0.1-alpha

Voir aussi

  • mysql_get_client_info() - Lit les informations sur le client MySQL
  • mysql_get_host_info() - Lit les informations sur l'hôte MySQL
  • mysql_get_proto_info() - Lit les informations sur le protocole MySQL
  • phpversion() - Retourne le numéro de la version courante de PHP


Lit des informations à propos de la dernière requête MySQL

  • « mysql_get_server_info
  • mysql_insert_id »
  • PHP Manual
  • Fonctions MySQL
  • Lit des informations à propos de la dernière requête MySQL

mysql_info

(PHP 4 >= 4.3.0, PHP 5)

mysql_info — Lit des informations à propos de la dernière requête MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_info()

Description

string mysql_info ([ resource $link_identifier = NULL ] )

Lit des informations à propos de la dernière requête MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne des informations sur une requête en cas de succès, ou FALSE si une erreur survient. Regardez l'exemple ci-dessous pour savoir quelles sortes de requêtes fournissent des informations et avoir un aperçu des informations retournées. Les sortes de requêtes qui ne sont pas listées retournent FALSE.

Exemples

Exemple #1 Requêtes MySQL

Requêtes qui retournent des valeurs. Les nombres ne sont là que pour illustrer l'exemple ; ces valeurs correspondent à la requête.

INSERT INTO ... SELECT ...
String format: Records: 23 Duplicates: 0 Warnings: 0
INSERT INTO ... VALUES (...),(...),(...)...
String format: Records: 37 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ...
String format: Records: 42 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE
String format: Records: 60 Duplicates: 0 Warnings: 0
UPDATE
String format: Rows matched: 65 Changed: 65 Warnings: 0

Notes

Note:

mysql_info() retourne une valeur différente de FALSE pour les commandes INSERT ... VALUES uniquement si plusieurs jeux de valeurs à insérer ont été spécifiés dans la commande.

Voir aussi

  • mysql_affected_rows() - Retourne le nombre de lignes affectées lors de la dernière opération MySQL
  • mysql_insert_id() - Retourne l'identifiant généré par la dernière requête
  • mysql_stat() - Retourne le statut courant du serveur MySQL


Retourne l'identifiant généré par la dernière requête

  • « mysql_info
  • mysql_list_dbs »
  • PHP Manual
  • Fonctions MySQL
  • Retourne l'identifiant généré par la dernière requête

mysql_insert_id

(PHP 4, PHP 5)

mysql_insert_id — Retourne l'identifiant généré par la dernière requête

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_insert_id()
  • PDO::lastInsertId()

Description

int mysql_insert_id ([ resource $link_identifier = NULL ] )

Retourne le dernier identifiant généré par un champ de type AUTO_INCREMENT, sur la connexion MySQL courante ou sûr la connexion spécifiée par link_identifier (habituellement, une requête de type INSERT).

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

L'ID généré pour une colonne AUTO_INCREMENT par la dernière requête en cas de succès, 0 si la dernière requête n'a pas généré de valeur AUTO_INCREMENT, ou FALSE si aucune connexion MySQL n'a été établie.

Exemples

Exemple #1 Exemple avec mysql_insert_id()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Impossible de se connecter : ' . mysql_error());
}
mysql_select_db('mydb');

mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Le dernier ID inséré dans est le id %d\n", mysql_insert_id());
?>

Notes

Attention

mysql_insert_id() convertira le type retourné de la fonction native MySQL C API mysql_insert_id() en un type long (nommé int en PHP). Si votre colonne AUTO_INCREMENT a une colonne de type BIGINT (64 bits), la conversion peut résulter en une valeur incorrecte. À la place, utilisez la fonction SQL interne à MySQL LAST_INSERT_ID() dans une requête SQL. Pour plus d'informations sur les valeurs entières maximales en PHP, reportez-vous à la documentation sur les entiers.

Note:

Parce que mysql_insert_id() agit sur la dernière requête exécutée, assurez-vous d'appeler la fonction mysql_insert_id() immédiatement après l'exécution de la requête qui a générée la valeur.

Note:

La fonction MySQL LAST_INSERT_ID() contient toujours la valeur AUTO_INCREMENT la plus récente, et n'est pas remise à zéro entre deux requêtes.

Voir aussi

  • mysql_query() - Envoie une requête à un serveur MySQL
  • mysql_info() - Lit des informations à propos de la dernière requête MySQL


Liste les bases de données disponibles sur le serveur MySQL

  • « mysql_insert_id
  • mysql_list_fields »
  • PHP Manual
  • Fonctions MySQL
  • Liste les bases de données disponibles sur le serveur MySQL

mysql_list_dbs

(PHP 4, PHP 5)

mysql_list_dbs — Liste les bases de données disponibles sur le serveur MySQL

Avertissement

Cette fonction était obsolète en PHP 5.4.0, et la totalité de l'extension original MySQL a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser soit l'extension MySQLi, soit l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide, et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • Requête SQL : SHOW DATABASES

Description

resource mysql_list_dbs ([ resource $link_identifier = NULL ] )

mysql_list_dbs() retournera un identifiant de résultat, qui contiendra les noms des bases de données disponibles sur la connexion MySQL courante ou sur la connexion spécifiée par link_identifier.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne une ressource de pointeurs de résultats en cas de succès, ou FALSE si une erreur survient. Utilisez la fonction mysql_tablename() pour parcourir ce résultat ou tout autre fonction pour les résultats de table, comme la fonction mysql_fetch_array().

Exemples

Exemple #1 Exemple avec mysql_list_dbs()

<?php
// Utilisation sans mysql_list_dbs()
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$res = mysql_query("SHOW DATABASES");

while ($row = mysql_fetch_assoc($res)) {
     echo $row['Database'] . "\n";
}

// Obsolète depuis PHP 5.4.0
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
     echo $row->Database . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

database1
database2
database3

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_listdbs()

Voir aussi

  • mysql_db_name() - Récupère le nom de base de données à l'appel de mysql_list_dbs
  • mysql_select_db() - Sélectionne une base de données MySQL


Liste les champs d'une table MySQL

  • « mysql_list_dbs
  • mysql_list_processes »
  • PHP Manual
  • Fonctions MySQL
  • Liste les champs d'une table MySQL

mysql_list_fields

(PHP 4, PHP 5)

mysql_list_fields — Liste les champs d'une table MySQL

Avertissement

Cette fonction était obsolète en PHP 5.4.0, et la totalité de l'extension original MySQL a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser soit l'extension MySQLi, soit l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide, et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • Requête SQL : SHOW COLUMNS FROM sometable

Description

resource mysql_list_fields ( string $database_name , string $table_name [, resource $link_identifier = NULL ] )

Liste les champs de la table MySQL spécifiée.

La fonction mysql_list_fields() est obsolète. Il est préférable d'utiliser la fonction mysql_query() avec comme requête SHOW COLUMNS FROM table [LIKE 'name'] à la place.

Liste de paramètres

database_name

Le nom de la base de données qui va être interrogée.

table_name

Le nom de la table qui va être interrogée.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Une ressource de pointeurs de résultats en cas de succès, ou FALSE si une erreur survint.

Le résultat retourné peut être utilisé avec les fonctions
mysql_field_flags(),
mysql_field_len(),
mysql_field_name() et
mysql_field_type().

Exemples

Exemple #1 Exemple d'alternative à mysql_list_fields()

<?php
$result = mysql_query("SHOW COLUMNS FROM sometable");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
if (mysql_num_rows($result) > 0) {
   while ($row = mysql_fetch_assoc($result)) {
      print_r($row);
   }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [Field] => id
   [Type] => int(7)
   [Null] =>
   [Key] => PRI
   [Default] =>
   [Extra] => auto_increment
)
Array
(
   [Field] => email
   [Type] => varchar(100)
   [Null] =>
   [Key] =>
   [Default] =>
   [Extra] =>
)

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_listfields()

Voir aussi

  • mysql_field_flags() - Retourne des détails sur une colonne MySQL
  • mysql_info() - Lit des informations à propos de la dernière requête MySQL


Liste les processus MySQL

  • « mysql_list_fields
  • mysql_list_tables »
  • PHP Manual
  • Fonctions MySQL
  • Liste les processus MySQL

mysql_list_processes

(PHP 4 >= 4.3.0, PHP 5)

mysql_list_processes — Liste les processus MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_thread_id()

Description

resource mysql_list_processes ([ resource $link_identifier = NULL ] )

Liste les processus MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Une ressource de pointeurs de résultats en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_list_processes()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$result = mysql_list_processes($link);
while ($row = mysql_fetch_assoc($result)){
   printf("%s %s %s %s %s\n", $row["Id"], $row["Host"], $row["db"],
   $row["Command"], $row["Time"]);
}
mysql_free_result($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1 localhost test Processlist 0
4 localhost mysql sleep 5

Voir aussi

  • mysql_thread_id() - Retourne l'identifiant du thread MySQL courant
  • mysql_stat() - Retourne le statut courant du serveur MySQL


Liste les tables d'une base de données MySQL

  • « mysql_list_processes
  • mysql_num_fields »
  • PHP Manual
  • Fonctions MySQL
  • Liste les tables d'une base de données MySQL

mysql_list_tables

(PHP 4, PHP 5)

mysql_list_tables — Liste les tables d'une base de données MySQL

Avertissement

Cette fonction était obsolète en PHP 4.3.0, et la totalité de l'extension original MySQL a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser soit l'extension MySQLi, soit l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide, et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • Requête SQL : SHOW TABLES FROM dbname

Description

resource mysql_list_tables ( string $database [, resource $link_identifier = NULL ] )

Liste les tables d'une base de données MySQL spécifiée.

Cette fonction est obsolète. Il est préférable d'utiliser la fonction mysql_query() pour effectuer la requête SQL SHOW TABLES [FROM db_name] [LIKE 'pattern'] à la place.

Liste de paramètres

database

Le nom de la base de données

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Une ressource de pointeurs de résultats en cas de succès ou FALSE si une erreur survient.

Utilisez la fonction mysql_tablename() pour parcourir ce pointeur de résultats ou tout autre fonction pour les résultats de tables, comme la fonction mysql_fetch_array().

Historique

Version | Description
4.3.7 | Cette fonction est devenue obsolète.

Exemples

Exemple #1 Exemple d'alternative à mysql_list_tables()

<?php
$dbname = 'mysql_dbname';

if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
   echo 'Impossible de se connecter à MySQL';
   exit;
}

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
   echo "Erreur DB, impossible de lister les tables\n";
   echo 'Erreur MySQL : ' . mysql_error();
   exit;
}

while ($row = mysql_fetch_row($result)) {
   echo "Table : {$row[0]}\n";
}

mysql_free_result($result);
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_listtables()

Voir aussi

  • mysql_list_dbs() - Liste les bases de données disponibles sur le serveur MySQL
  • mysql_tablename() - Lit le nom de la table qui contient un champ


Retourne le nombre de champs d'un résultat MySQL

  • « mysql_list_tables
  • mysql_num_rows »
  • PHP Manual
  • Fonctions MySQL
  • Retourne le nombre de champs d'un résultat MySQL

mysql_num_fields

(PHP 4, PHP 5)

mysql_num_fields — Retourne le nombre de champs d'un résultat MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_num_fields()
  • PDOStatement::columnCount()

Description

int mysql_num_fields ( resource $result )

Retourne le nombre de champs d'une requête.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Retourne le nombre de champs d'un jeu de résultat en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_num_fields()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}

/* Retourne 2 car id,email === 2 champs */
echo mysql_num_fields($result);
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_numfields()

Voir aussi

  • mysql_select_db() - Sélectionne une base de données MySQL
  • mysql_query() - Envoie une requête à un serveur MySQL
  • mysql_fetch_field() - Retourne les données enregistrées dans une colonne MySQL sous forme d'objet
  • mysql_num_rows() - Retourne le nombre de lignes d'un résultat MySQL


Retourne le nombre de lignes d'un résultat MySQL

  • « mysql_num_fields
  • mysql_pconnect »
  • PHP Manual
  • Fonctions MySQL
  • Retourne le nombre de lignes d'un résultat MySQL

mysql_num_rows

(PHP 4, PHP 5)

mysql_num_rows — Retourne le nombre de lignes d'un résultat MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_num_rows()
  • mysqli_stmt_num_rows()
  • PDOStatement::rowCount()

Description

int mysql_num_rows ( resource $result )

Récupère le nombre de lignes d'un jeu de résultat. Cette commande n'est disponible que pour les requêtes comme SELECT ou SHOW qui retournent un jeu de résultats. Pour récupérer le nombre de lignes affectées par une requête INSERT, UPDATE, REPLACE ou DELETE, utilisez la fonction mysql_affected_rows().

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Le nombre de lignes dans un jeu de résultats en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_num_rows()

<?php

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";

?>

Notes

Note:

Si vous utilisez mysql_unbuffered_query(), mysql_num_rows() ne retournera pas une valeur correcte tant que toutes les lignes du jeu de résultats n'auront pas été récupérées.

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_numrows()

Voir aussi

  • mysql_affected_rows() - Retourne le nombre de lignes affectées lors de la dernière opération MySQL
  • mysql_connect() - Ouvre une connexion à un serveur MySQL
  • mysql_data_seek() - Déplace le pointeur interne de résultat MySQL
  • mysql_select_db() - Sélectionne une base de données MySQL
  • mysql_query() - Envoie une requête à un serveur MySQL


Ouvre une connexion persistante à un serveur MySQL

  • « mysql_num_rows
  • mysql_ping »
  • PHP Manual
  • Fonctions MySQL
  • Ouvre une connexion persistante à un serveur MySQL

mysql_pconnect

(PHP 4, PHP 5)

mysql_pconnect — Ouvre une connexion persistante à un serveur MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_connect() avec le préfixe d'hôte p:
  • PDO::__construct() avec PDO::ATTR_PERSISTENT comme option du driver

Description

resource mysql_pconnect ([ string $server = ini_get("mysql.default_host") [, string $username = ini_get("mysql.default_user") [, string $password = ini_get("mysql.default_password") [, int $client_flags = 0 ]]]] )

Ouvre une connexion persistante à un serveur MySQL.

mysql_pconnect() se comporte exactement comme mysql_connect(), mais avec deux différences majeures :

Premièrement, lors de la connexion, la fonction essaie de trouver une connexion permanente déjà ouverte sur cet hôte, avec le même nom d'utilisateur et de mot de passe. Si une telle connexion est trouvée, son identifiant est retourné, sans ouvrir de nouvelle connexion.

Deuxièmement, la connexion au serveur MySQL ne sera pas terminée avec la fin du script. Au lieu de cela, le lien sera conservé pour un prochain accès (mysql_close() ne terminera pas une connexion persistante établie par mysql_pconnect()).

C'est pourquoi ce type de connexion est dite persistante.

Liste de paramètres

server

Le serveur MySQL. Il peut également comprendre un numéro de port, e.g. "hostname:port" ou un chemin vers un socket local e.g. ":/path/to/socket".

Si la directive PHP mysql.default_host n'est pas définie (défaut), alors, la valeur par défaut est "localhost:3306".

username

Le nom de l'utilisateur. La valeur par défaut est l'utilisateur faisant fonctionner le processus serveur courant.

password

Le mot de passe. La valeur par défaut est un mot de passe vide.

client_flags

Le paramètre client_flags peut être une compilation des constantes suivantes : 128 (active le gestionnaire LOAD DATA LOCAL), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE ou MYSQL_CLIENT_INTERACTIVE.

Valeurs de retour

Retourne un identifiant de lien persistant MySQL en cas de succès, ou FALSE si une erreur survient.

Historique

Version | Description
5.5.0 | Cette fonction génère une alerte de niveau E_DEPRECATED.

Notes

Note:

Notez que les connexions persistantes ne fonctionnent que si vous utilisez PHP en version module. Lisez la section sur les connexions persistantes aux bases de données pour plus d'informations.

Avertissement

L'utilisation des connexions persistantes requiert des paramétrages d'Apache et de MySQL pour vous assurer que vous n'atteindrez pas la limite maximale de nombre de connexions simultanées autorisée par MySQL.

Note:

Vous pouvez supprimer les messages d'erreur en ajoutant un @ au nom de la fonction.

Voir aussi

  • mysql_connect() - Ouvre une connexion à un serveur MySQL
  • Les connexions persistantes aux bases de données


Vérifie la connexion au serveur MySQL, et s'y reconnecte au besoin

  • « mysql_pconnect
  • mysql_query »
  • PHP Manual
  • Fonctions MySQL
  • Vérifie la connexion au serveur MySQL, et s'y reconnecte au besoin

mysql_ping

(PHP 4 >= 4.3.0, PHP 5)

mysql_ping — Vérifie la connexion au serveur MySQL, et s'y reconnecte au besoin

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_ping()

Description

bool mysql_ping ([ resource $link_identifier = NULL ] )

mysql_ping() vérifie si la connexion au serveur link_identifier fonctionne. Si elle est tombée, une reconnexion automatique est effectuée. Cette fonction est utile pour les scripts qui restent inactifs durant un long moment. Ils peuvent ainsi vérifier si le serveur a fermé la connexion, pour cause d'inactivité.

Note:

La reconnexion automatique est désactivée par défaut depuis la version 5.0.3 et suivants de MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne TRUE si la connexion au serveur MySQL fonctionne, FALSE sinon.

Exemples

Exemple #1 Exemple avec mysql_ping()

<?php
set_time_limit(0);

$conn = mysql_connect('localhost', 'mysqluser', 'mypass');
$db   = mysql_select_db('mydb');

/* En supposant que l'exécution de la requête prend beaucoup de temps */
$result = mysql_query($sql);
if (!$result) {
   echo 'Requête #1 a échoué, sortie.';
   exit;
}

/* S'assure que la connexion est toujours active, sinon, tentative de reconnexion */
if (!mysql_ping($conn)) {
   echo 'Perte de la connexion, sortie après la requête #1';
   exit;
}
mysql_free_result($result);

/* Donc, la connexion est toujours active, exécutons une autre requête */
$result2 = mysql_query($sql2);
?>

Voir aussi

  • mysql_thread_id() - Retourne l'identifiant du thread MySQL courant
  • mysql_list_processes() - Liste les processus MySQL


Envoie une requête à un serveur MySQL

  • « mysql_ping
  • mysql_real_escape_string »
  • PHP Manual
  • Fonctions MySQL
  • Envoie une requête à un serveur MySQL

mysql_query

(PHP 4, PHP 5)

mysql_query — Envoie une requête à un serveur MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_query()
  • PDO::query()

Description

mixed mysql_query ( string $query [, resource $link_identifier = NULL ] )

mysql_query() envoie une seule requête (les requêtes multiples ne sont pas supportées) à la base de données courante sur le serveur associé avec le link_identifier spécifié.

Liste de paramètres

query

Une requête SQL

La chaîne de requête ne doit pas se terminer par un point-virgule. Les données contenues dans la requête doivent être échappées proprement.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Pour les requêtes du type SELECT, SHOW, DESCRIBE, EXPLAIN et les autres requêtes retournant un jeu de résultats, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur.

Pour les autres types de requêtes, INSERT, UPDATE, DELETE, DROP, etc., mysql_query() retourne TRUE en cas de succès ou FALSE en cas d'erreur.

La ressource de résultat retournée doit être passée à la fonction mysql_fetch_array(), et les autres fonctions permettant d'explorer le résultat des tables, pour accéder aux données retournées.

Utilisez mysql_num_rows() pour trouver le nombre de lignes retournées pour une requête du type SELECT ou mysql_affected_rows() pour trouver le nombre de lignes affectées par les requêtes du type DELETE, INSERT, REPLACE, ou UPDATE.

mysql_query() échouera et retournera FALSE si l'utilisateur n'a pas les autorisations nécessaires pour accéder à la (aux) table(s) référencée(s) par la requête.

Exemples

Exemple #1 Requête invalide

La requête suivante est syntaxiquement invalide, donc mysql_query() va échouer et retourner FALSE.

<?php
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
    die('Requête invalide : ' . mysql_error());
}

?>

Exemple #2 Requête valide

La requête suivante est valide, donc mysql_query() va retourner une ressource.

<?php
// Ceci peut être demandé par un utilisateur, par exemple :
$firstname = 'fred';
$lastname  = 'fox';

// Formulation de la requête
// C'est la meilleur façon d'exécuter une requête SQL
// Pour plus d'exemples, voir mysql_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends
    WHERE firstname='%s' AND lastname='%s'",
    mysql_real_escape_string($firstname),
    mysql_real_escape_string($lastname));

// Exécution de la requête
$result = mysql_query($query);

// Vérification du résultat
// Ceci montre la requête envoyée à MySQL ainsi que l'erreur. Utile pour déboguer.
if (!$result) {
    $message  = 'Requête invalide : ' . mysql_error() . "\n";
    $message .= 'Requête complète : ' . $query;
    die($message);
}

// Utilisation du résultat
// Tenter d'affichager $result ne vous donnera pas d'informations contenues dans la ressource
// Une des fonctions MySQL de résultat doit être utilisée
// Voir aussi mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ($row = mysql_fetch_assoc($result)) {
    echo $row['firstname'];
    echo $row['lastname'];
    echo $row['address'];
    echo $row['age'];
}

// Libération des ressources associées au jeu de résultats
// Ceci est effectué automatiquement à la fin du script
mysql_free_result($result);
?>

Voir aussi

  • mysql_connect() - Ouvre une connexion à un serveur MySQL
  • mysql_error() - Retourne le texte associé avec l'erreur générée lors de la dernière requête
  • mysql_real_escape_string() - Protège une commande SQL de la présence de caractères spéciaux
  • mysql_result() - Retourne un champ d'un résultat MySQL
  • mysql_fetch_assoc() - Lit une ligne de résultat MySQL dans un tableau associatif
  • mysql_unbuffered_query() - Exécute une requête SQL sans mobiliser les résultats MySQL


Protège une commande SQL de la présence de caractères spéciaux

  • « mysql_query
  • mysql_result »
  • PHP Manual
  • Fonctions MySQL
  • Protège une commande SQL de la présence de caractères spéciaux

mysql_real_escape_string

(PHP 4 >= 4.3.0, PHP 5)

mysql_real_escape_string — Protège une commande SQL de la présence de caractères spéciaux

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_real_escape_string()
  • PDO::quote()

Description

string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier = NULL ] )

mysql_real_escape_string() protège une commande SQL de la chaîne unescaped_string, en "échappant" les caractères spéciaux tout en prenant en compte le jeu de caractères courant de la connexion link_identifier. Le résultat peut être utilisé sans problème avec la fonction mysql_query(). Si des données binaires doivent être insérées, cette fonction doit être utilisée.

mysql_real_escape_string() appelle la fonction mysql_escape_string() de la bibliothèque MySQL qui ajoute un anti-slash aux caractères suivants : NULL, \x00, \n, \r, \, ', " et \x1a.

Cette fonction doit toujours (avec quelques exceptions) être utilisée avant d'envoyer la requête à MySQL afin de protéger vos données d'injection de caractères pouvant dévoyer cette requête.

Attention

Securité : le jeu de caractères par défaut

Le jeu de caractèrs doit être défini soit au niveau serveur, soit avec la fonction API mysql_set_charset() pour qu'il ait un effet sur la fonction mysql_real_escape_string(). Voir la section sur les concepts on des jeux de caractères pour plus d'informations.

Liste de paramètres

unescaped_string

La chaîne à échapper.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne la chaîne échappée, ou FALSE si une erreur survient.

Erreurs / Exceptions

Exécuter cette fonction sans qu'une connexion MySQL ne soit présente va également émettre une erreur PHP de niveau E_WARNING. N'exécuter cette fonction qu'avec une connexion MySQL valide.

Exemples

Exemple #1 Exemple simple avec mysql_real_escape_string()

<?php
// Connexion
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());

// Requête
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
?>

Exemple #2 Exemple avec mysql_real_escape_string() et la nécessité de la présence d'une connexion

Cet exemple démonte ce qui survient si une connexion MySQL n'est pas présente lors de l'appel à la fonction.

<?php
// Nous n'avons pas de connexion MySQL

$lastname  = "O'Reilly";
$_lastname = mysql_real_escape_string($lastname);

$query = "SELECT * FROM actors WHERE last_name = '$_lastname'";

var_dump($_lastname);
var_dump($query);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: mysql_real_escape_string(): No such file or directory in /this/test/script.php on line 5
Warning: mysql_real_escape_string(): A link to the server could not be established in /this/test/script.php on line 5

bool(false)
string(41) "SELECT * FROM actors WHERE last_name = ''"

Exemple #3 Un exemple d'attaque par injection SQL

<?php
// Nous ne vérifions pas $_POST['password'], il peut contenir ce que l'utilisateur veut ! Par exemple :
$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";

// Demande à la base de vérifier si un utilisateur correspond
$query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($query);

// Cela signifie que la requête envoyée à MySQL sera :
echo $query;
?>

La requête envoyée à MySQL :

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''

Cela permet à n'importe qui de s'identifier sans mot de passe valide.

Notes

Note:

Une connexion MySQL est nécessaire avant d'utiliser la fonction mysql_real_escape_string(), sinon, une erreur de niveau E_WARNING sera générée, et FALSE sera retourné. Si link_identifier n'est pas défini, la dernière connexion MySQL est utilisée.

Note:

Si magic_quotes_gpc est activée, appliquez d'abord la fonction stripslashes() à vos données. Utiliser cette fonction sur des données qui ont déjà été protégées, les protégera une deuxième fois.

Note:

Si cette fonction n'est pas utilisée pour protéger vos données, la requête sera vulnérable aux attaques par injection SQL.

Note: mysql_real_escape_string() n'échappe ni %, ni _. Ce sont des jokers en MySQL si combinés avec LIKE, GRANT, ou REVOKE.

Voir aussi

  • mysql_set_charset() - Définit le jeu de caractères du client MySQL
  • mysql_client_encoding() - Retourne le nom du jeu de caractères utilisé par le client MySQL
  • addslashes() - Ajoute des antislashs dans une chaîne
  • stripslashes() - Supprime les antislashs d'une chaîne
  • La directive magic_quotes_gpc
  • La directive magic_quotes_runtime


Retourne un champ d'un résultat MySQL

  • « mysql_real_escape_string
  • mysql_select_db »
  • PHP Manual
  • Fonctions MySQL
  • Retourne un champ d'un résultat MySQL

mysql_result

(PHP 4, PHP 5)

mysql_result — Retourne un champ d'un résultat MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_data_seek() en conjonction de
mysqli_field_seek() et
mysqli_fetch_field()
  • PDOStatement::fetchColumn()

Description

string mysql_result ( resource $result , int $row [, mixed $field = 0 ] )

Retourne le contenu d'un champ d'un jeu de résultats MySQL.

Lorsque vous travaillez sur des résultats de grande taille, il est conseillé d'utiliser une des fonctions qui vont rechercher une ligne entière dans un tableau. Ces fonctions sont NETTEMENT plus rapides. De plus, utiliser un offset numérique est aussi beaucoup plus rapide que spécifier un nom littéral.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

row

Le numéro de la ligne à récupérer. Les numéros de lignes commencent à 0.

field

Le nom ou la position du champ à récupérer.

Il peut être la position du champ, le nom du champ ou le nom de la table suivi d'un point, suivi du nom du champ (tablename.fieldname). Si un alias a été utilisé pour le nom de la colonne ("selected foo as bar from..."), utilisez plutôt l'alias. Si ce paramètre n'est pas défini, le premier champ sera récupéré.

Valeurs de retour

Le contenu d'un champ depuis un jeu de résultats MySQL en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_result()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
   die('Impossible de se connecter : ' . mysql_error());
}
if (!mysql_select_db('database_name')) {
    die('Impossible de sélectionner la table : ' . mysql_error());
}
$result = mysql_query('SELECT name FROM work.employee');
if (!$result) {
   die('Impossible d\'exécuter la requête :' . mysql_error());
}
echo mysql_result($result, 2); // Affiche le nom du troisième employé

mysql_close($link);
?>

Notes

Note:

Les appels mysql_result() ne devraient pas être mélangés avec d'autres fonctions qui travaillent aussi sur le résultat.

Voir aussi

  • mysql_fetch_row() - Retourne une ligne de résultat MySQL sous la forme d'un tableau
  • mysql_fetch_array() - Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysql_fetch_assoc() - Lit une ligne de résultat MySQL dans un tableau associatif
  • mysql_fetch_object() - Retourne une ligne de résultat MySQL sous la forme d'un objet


Sélectionne une base de données MySQL

  • « mysql_result
  • mysql_set_charset »
  • PHP Manual
  • Fonctions MySQL
  • Sélectionne une base de données MySQL

mysql_select_db

(PHP 4, PHP 5)

mysql_select_db — Sélectionne une base de données MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_select_db()
  • PDO::__construct() (fait parti du dsn)

Description

bool mysql_select_db ( string $database_name [, resource $link_identifier = NULL ] )

Sélectionne une base de données MySQL sur le serveur associé avec le paramètre link_identifier. Chaque appel à la fonction mysql_query() sera exécutée sur la base de données active.

Liste de paramètres

database_name

Le nom de la base de données à sélectionner.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_select_db()

<?php

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
   die('Impossible de se connecter : ' . mysql_error());
}

// Rendre la base de données foo, la base courante
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
   die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
?>

Notes

Note:

Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_selectdb()

Voir aussi

  • mysql_connect() - Ouvre une connexion à un serveur MySQL
  • mysql_pconnect() - Ouvre une connexion persistante à un serveur MySQL
  • mysql_query() - Envoie une requête à un serveur MySQL


Définit le jeu de caractères du client MySQL

  • « mysql_select_db
  • mysql_stat »
  • PHP Manual
  • Fonctions MySQL
  • Définit le jeu de caractères du client MySQL

mysql_set_charset

(PHP 5 >= 5.2.3)

mysql_set_charset — Définit le jeu de caractères du client MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_set_charset()
  • PDO: Ajoute le charset à la chaîne de connexion, par exemple charset=utf8

Description

bool mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] )

Définit le jeu de caractères par défaut pour la connexion courante.

Liste de paramètres

charset

Un nom de jeu de caractères valide.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Cette fonction requiert MySQL version 5.0.7 ou supérieure.

Note:

C'est la meilleure façon de changer le jeu de caractères. L'utilisation de la fonction mysql_query() pour le définir (avec par exemple SET NAMES utf8) n'est pas recommandée. Voir la section Concept sur les jeux de caractères en MySQL pour plus d'informations.

Voir aussi

  • Définir un jeu de caractères dans MySQL
  • La liste des » jeux de caractères supportés par MySQL
  • mysql_client_encoding() - Retourne le nom du jeu de caractères utilisé par le client MySQL


Retourne le statut courant du serveur MySQL

  • « mysql_set_charset
  • mysql_tablename »
  • PHP Manual
  • Fonctions MySQL
  • Retourne le statut courant du serveur MySQL

mysql_stat

(PHP 4 >= 4.3.0, PHP 5)

mysql_stat — Retourne le statut courant du serveur MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_stat()
  • PDO::getAttribute(PDO::ATTR_SERVER_INFO)

Description

string mysql_stat ([ resource $link_identifier = NULL ] )

mysql_stat() retourne le statut courant du serveur MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne une chaîne contenant le statut de durée de fonctionnement, les threads, les requêtes, les tables ouvertes et sur disque, et le nombre de requêtes par seconde. Pour une liste complète des autres variables de statuts, vous devez utiliser la commande SQL SHOW STATUS. Si link_identifier est invalide, NULL est retourné.

Exemples

Exemple #1 Exemple avec mysql_stat()

<?php
$link   = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$status = explode('  ', mysql_stat($link));
print_r($status);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
[0] => Uptime: 5380
[1] => Threads: 2
[2] => Questions: 1321299
[3] => Slow queries: 0
[4] => Opens: 26
[5] => Flush tables: 1
[6] => Open tables: 17
[7] => Queries per second avg: 245.595
)

Exemple #2 Exemple alternatif pour mysql_stat()

<?php
$link   = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$result = mysql_query('SHOW STATUS', $link);
while ($row = mysql_fetch_assoc($result)) {
  echo $row['Variable_name'] . ' = ' . $row['Value'] . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

back_log = 50
basedir = /usr/local/
bdb_cache_size = 8388600
bdb_log_buffer_size = 32768
bdb_home = /var/db/mysql/
bdb_max_lock = 10000
bdb_logdir =
bdb_shared_data = OFF
bdb_tmpdir = /var/tmp/
...

Voir aussi

  • mysql_get_server_info() - Lit les informations sur le serveur MySQL
  • mysql_list_processes() - Liste les processus MySQL


Lit le nom de la table qui contient un champ

  • « mysql_stat
  • mysql_thread_id »
  • PHP Manual
  • Fonctions MySQL
  • Lit le nom de la table qui contient un champ

mysql_tablename

(PHP 4, PHP 5)

mysql_tablename — Lit le nom de la table qui contient un champ

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • Requête SQL : SHOW TABLES

Description

string mysql_tablename ( resource $result , int $i )

Lit le nom de la table depuis le jeu de résultats result.

Cette fonction est obsolète. Il est préférable d'utiliser la fonction mysql_query() avec une requête SQL SHOW TABLES [FROM db_name] [LIKE 'pattern'] à la place.

Liste de paramètres

result

Un pointeur de résultats retourné par la fonction mysql_list_tables().

i

L'index (numéro ligne/table)

Valeurs de retour

Le nom de la table en cas de succès ou FALSE si une erreur survient.

Utilisez la fonction mysql_tablename() pour parcourir ce pointeur de résultats, ou n'importe quelle fonction pour les résultats de tables comme la fonction mysql_fetch_array().

Historique

Version | Description
5.5.0 | La fonction mysql_tablename() est obsolète, et émet une alerte de niveau E_DEPRECATED.

Exemples

Exemple #1 Exemple avec mysql_tablename()

<?php
mysql_connect("localhost", "mysql_user", "mysql_password");
$result = mysql_list_tables("mydb");
$num_rows = mysql_num_rows($result);
for ($i = 0; $i < $num_rows; $i++) {
   echo "Table : ", mysql_tablename($result, $i), "\n";
}

mysql_free_result($result);
?>

Notes

Note:

La fonction mysql_num_rows() peut être utilisée pour déterminer le nombre de tables dans le pointeur de résultats.

Voir aussi

  • mysql_list_tables() - Liste les tables d'une base de données MySQL
  • mysql_field_table() - Retourne le nom de la table MySQL où se trouve une colonne
  • mysql_db_name() - Récupère le nom de base de données à l'appel de mysql_list_dbs


Retourne l'identifiant du thread MySQL courant

  • « mysql_tablename
  • mysql_unbuffered_query »
  • PHP Manual
  • Fonctions MySQL
  • Retourne l'identifiant du thread MySQL courant

mysql_thread_id

(PHP 4 >= 4.3.0, PHP 5)

mysql_thread_id — Retourne l'identifiant du thread MySQL courant

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • mysqli_thread_id()

Description

int mysql_thread_id ([ resource $link_identifier = NULL ] )

mysql_thread_id() retourne l'identifiant du thread courant. Si la connexion link_identifier est perdue et que vous vous reconnectez (avec mysql_ping(), par exemple), alors l'identifiant de thread va changer. Cela signifie que vous devez le récupérer lorsque vous en avez besoin.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

L'identifiant du thread en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_thread_id()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$thread_id = mysql_thread_id($link);
if ($thread_id){
   printf("L'identifiant du thread courant est : %d\n", $thread_id);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

L'identifiant du thread courant est : 73

Voir aussi

  • mysql_ping() - Vérifie la connexion au serveur MySQL, et s'y reconnecte au besoin
  • mysql_list_processes() - Liste les processus MySQL


Exécute une requête SQL sans mobiliser les résultats MySQL

  • « mysql_thread_id
  • MySQLi »
  • PHP Manual
  • Fonctions MySQL
  • Exécute une requête SQL sans mobiliser les résultats MySQL

mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query — Exécute une requête SQL sans mobiliser les résultats MySQL

Avertissement

Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction :

  • Voir : les requêtes mises ou non en mémoire tampon

Description

resource mysql_unbuffered_query ( string $query [, resource $link_identifier = NULL ] )

mysql_unbuffered_query() envoie la requête SQL query à MySQL sans automatiquement récupérer et mettre en mémoire les lignes du résultat, comme pourrait le faire la fonction mysql_query(). Ce comportement permet d'épargner une grande quantité de mémoire lorsque les requêtes SQL produisent un gros jeu de résultats, et vous pouvez commencer à travailler sur le jeu de résultats immédiatement après que la première ligne ait été récupérée que vous n'avez pas à attendre la fin du traitement de la requête SQL. Pour utiliser la fonction mysql_unbuffered_query() lorsque plusieurs connexions à des bases de données sont ouvertes, vous devez spécifier le paramètre optionnel link_identifier pour identifier la connexion à utiliser.

Liste de paramètres

query

La requête SQL à exécuter

Les données de la requête doivent être proprement échappées.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Pour les requêtes SELECT, SHOW, DESCRIBE ou EXPLAIN, mysql_unbuffered_query() retourne une ressource en cas de succès, ou FALSE si une erreur survient.

Pour les autres types de requêtes, UPDATE, DELETE, DROP, etc, mysql_unbuffered_query() retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

L'intérêt de mysql_unbuffered_query() est tempéré par une limitation : mysql_num_rows() et mysql_data_seek() ne fonctionnent pas sur une ressource retournée par mysql_unbuffered_query(), tant que toutes les lignes sont récupérées. Vous devez aussi lire tous les résultats d'une première requête exécutée avec mysql_unbuffered_query(), avant de pouvoir en exécuter une autre en utilisant le même link_identifier.

Voir aussi

  • mysql_query() - Envoie une requête à un serveur MySQL


Extension mysqli

  • Introduction
  • Introduction
  • Guide de démarrage rapide
    • Interface procédurale et orientée objet
    • Connexions
    • Exécution des requêtes
    • Les requêtes préparées
    • Les procédures stockées
    • Requêtes multiples
    • Support API pour les transactions
    • Les méta-données
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • L'extension mysqli et les connexions persistantes
  • Constantes pré-définies
  • Notes
  • Sommaire des fonctions de l'extension MySQLi
  • Exemples
    • MySQLi extension basic examples
  • mysqli — La classe mysqli
    • mysqli::$affected_rows — Retourne le nombre de lignes affectées par la dernière opération MySQL
    • mysqli::autocommit — Active ou désactive le mode auto-commit
    • mysqli::begin_transaction — Démarre une transaction
    • mysqli::change_user — Change l'utilisateur de la connexion spécifiée
    • mysqli::character_set_name — Retourne le jeu de caractères courant pour la connexion
    • mysqli::$client_info — Récupère les informations du client MySQL
    • mysqli::$client_version — Retourne la version du client MySQL sous la forme d'une chaîne de caractères
    • mysqli::close — Ferme une connexion
    • mysqli::commit — Valide la transaction courante
    • mysqli::$connect_errno — Retourne le code d'erreur de la connexion MySQL
    • mysqli::$connect_error — Retourne le message d'erreur de connexion MySQL
    • mysqli::__construct — Ouvre une connexion à un serveur MySQL
    • mysqli::debug — Effectue des actions de déboguage
    • mysqli::dump_debug_info — Écrit les informations de déboguage dans les logs
    • mysqli::$errno — Retourne le dernier code d'erreur produit
    • mysqli::$error_list — Retourne une liste d'erreur depuis la dernière commande exécutée
    • mysqli::$error — Retourne une chaîne décrivant la dernière erreur
    • mysqli::$field_count — Retourne le nombre de colonnes pour la dernière requête
    • mysqli::get_charset — Retourne un objet représentant le jeu de caractères
    • mysqli::get_client_info — Récupère des informations sur le client MySQL
    • mysqli_get_client_stats — Retournes des statistiques sur le client, par processus
    • mysqli_get_client_version — Retourne la version du client MySQL sous forme d'un entier
    • mysqli::get_connection_stats — Retourne des statistiques sur la connexion
    • mysqli::$host_info — Retourne une chaîne contenant le type de connexion utilisée
    • mysqli::$protocol_version — Retourne la version du protocole MySQL utilisé
    • mysqli::$server_info — Retourne la version du serveur MySQL
    • mysqli::$server_version — Retourne un entier représentant la version du serveur MySQL
    • mysqli::get_warnings — Lit le résultat de SHOW WARNINGS
    • mysqli::$info — Retourne des informations à propos de la dernière requête exécutée
    • mysqli::init — Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()
    • mysqli::$insert_id — Retourne l'identifiant automatiquement généré par la dernière requête
    • mysqli::kill — Demande au serveur de terminer un thread MySQL
    • mysqli::more_results — Vérifie s'il y a d'autres jeux de résultats MySQL disponibles
    • mysqli::multi_query — Exécute une requête MySQL multiple
    • mysqli::next_result — Prépare le prochain résultat d'une requête multiple
    • mysqli::options — Définit les options
    • mysqli::ping — Ping la connexion au serveur et reconnecte si elle n'existe plus
    • mysqli::poll — Vérifie l'état de la connexion
    • mysqli::prepare — Prépare une requête SQL pour l'exécution
    • mysqli::query — Exécute une requête sur la base de données
    • mysqli::real_connect — Ouvre une connexion à un serveur MySQL
    • mysqli::real_escape_string — Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion
    • mysqli::real_query — Exécute une requête SQL
    • mysqli::reap_async_query — Lit un résultat pour une requête asynchrone
    • mysqli::refresh — Rafraîchie
    • mysqli::release_savepoint — Supprime le point de sauvegardé nommé du jeu des points de sauvegarde de la transaction courante
    • mysqli::rollback — Annule la transaction courante
    • mysqli::rpl_query_type — Retourne le type de requête RPL
    • mysqli::savepoint — Défini un point de sauvegarde nommé de la transaction
    • mysqli::select_db — Sélectionne une base de données par défaut pour les requêtes
    • mysqli::send_query — Envoie la requête et retourne
    • mysqli::set_charset — Définit le jeu de caractères par défaut du client
    • mysqli::set_local_infile_default — Rétablit le gestionnaire par défaut pour la commande LOAD LOCAL INFILE
    • mysqli::set_local_infile_handler — Définit une fonction de rappel pour la commande LOAD DATA LOCAL INFILE
    • mysqli::$sqlstate — Retourne l'erreur SQLSTATE de la dernière opération MySQL
    • mysqli::ssl_set — Utilisée pour établir une connexion sécurisée avec SSL
    • mysqli::stat — Obtient le statut courant du système
    • mysqli::stmt_init — Initialise une commande MySQL
    • mysqli::store_result — Transfère un jeu de résultats à partir de la dernière requête
    • mysqli::$thread_id — Retourne l'identifiant du thread pour la connexion courante
    • mysqli::thread_safe — Indique si le support des threads est activé ou pas
    • mysqli::use_result — Initialise la récupération d'un jeu de résultats
    • mysqli::$warning_count — Retourne le nombre d'avertissements générés par la dernière requête
  • mysqli_stmt — La classe mysqli_stmt
    • mysqli_stmt::$affected_rows — Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête
    • mysqli_stmt::attr_get — Récupère la valeur courante d'un attribut de requête
    • mysqli_stmt::attr_set — Modifie le comportement d'une requête préparée
    • mysqli_stmt::bind_param — Lie des variables à une requête MySQL
    • mysqli_stmt::bind_result — Lie des variables à un jeu de résultats
    • mysqli_stmt::close — Termine une requête préparée
    • mysqli_stmt::__construct — Construit un nouvel objet mysqli_stmt
    • mysqli_stmt::data_seek — Déplace le pointeur de résultat
    • mysqli_stmt::$errno — Retourne un code erreur pour la dernière requête
    • mysqli_stmt::$error_list — Retourne une liste d'erreurs pour la dernière requête exécutée
    • mysqli_stmt::$error — Retourne une description de la dernière erreur de traitement
    • mysqli_stmt::execute — Exécute une requête préparée
    • mysqli_stmt::fetch — Lit des résultats depuis une requête MySQL préparée dans des variables liées
    • mysqli_stmt::$field_count — Retourne le nombre de champs présent dans la requête donnée
    • mysqli_stmt::free_result — Libère le résultat MySQL de la mémoire
    • mysqli_stmt::get_result — Récupère un jeu de résultats depuis une requête préparée
    • mysqli_stmt::get_warnings — Récupère le résultat de SHOW WARNINGS
    • mysqli_stmt::$insert_id — Récupère l'ID généré par la dernière requête INSERT
    • mysqli_stmt::more_results — Vérifie s'il y a encore des résultats depuis une requête multiple
    • mysqli_stmt::next_result — Lit le résultat suivant depuis une requête multiple
    • mysqli_stmt::$num_rows — Retourne le nombre de lignes d'un résultat MySQL
    • mysqli_stmt::$param_count — Retourne le nombre de paramètre d'une commande SQL
    • mysqli_stmt::prepare — Prépare une requête SQL pour l'exécution
    • mysqli_stmt::reset — Annule une requête préparée
    • mysqli_stmt::result_metadata — Retourne les métadonnées de préparation de requête MySQL
    • mysqli_stmt::send_long_data — Envoie des données MySQL par paquets
    • mysqli_stmt::$sqlstate — Retourne le code SQLSTATE de la dernière opération MySQL
    • mysqli_stmt::store_result — Stocke un jeu de résultats depuis une requête préparée
  • mysqli_result — La classe mysqli_result
    • mysqli_result::$current_field — Récupère la position courante d'un champ dans un pointeur de résultat
    • mysqli_result::data_seek — Déplace le pointeur interne de résultat
    • mysqli_result::fetch_all — Lit toutes les lignes de résultats dans un tableau
    • mysqli_result::fetch_array — Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
    • mysqli_result::fetch_assoc — Récupère une ligne de résultat sous forme de tableau associatif
    • mysqli_result::fetch_field_direct — Récupère les métadonnées d'un champ unique
    • mysqli_result::fetch_field — Retourne le prochain champs dans le jeu de résultats
    • mysqli_result::fetch_fields — Retourne un tableau d'objets représentant les champs dans le résultat
    • mysqli_result::fetch_object — Retourne la ligne courante d'un jeu de résultat sous forme d'objet
    • mysqli_result::fetch_row — Récupère une ligne de résultat sous forme de tableau indexé
    • mysqli_result::$field_count — Récupère le nombre de champs dans un résultat
    • mysqli_result::field_seek — Déplace le pointeur de résultat sur le champ spécifié
    • mysqli_result::free — Libère la mémoire associée à un résultat
    • mysqli_result::$lengths — Retourne la longueur des colonnes de la ligne courante du jeu de résultats
    • mysqli_result::$num_rows — Retourne le nombre de lignes dans un résultat
  • mysqli_driver — La classe mysqli_driver
    • mysqli_driver::embedded_server_end — Arrête le serveur embarqué
    • mysqli_driver::embedded_server_start — Initialise et démarre le serveur embarqué
    • mysqli_driver::$report_mode — Active ou désactive les fonctions de rapport interne
  • mysqli_warning — La classe mysqli_warning
    • mysqli_warning::__construct — Le constructeur __construct
    • mysqli_warning::next — Le but de next
  • mysqli_sql_exception — La classe mysqli_sql_exception
  • Fonctions mysqli obsolètes et alias
    • mysqli_bind_param — Alias de mysqli_stmt_bind_param
    • mysqli_bind_result — Alias de mysqli_stmt_bind_result
    • mysqli_client_encoding — Alias de mysqli_character_set_name
    • mysqli_connect — Alias de mysqli::__construct
    • mysqli::disable_reads_from_master — Désactive les lectures depuis le maître
    • mysqli_disable_rpl_parse — Désactive l'analyseur RPL
    • mysqli_enable_reads_from_master — Active la lecture depuis le maître
    • mysqli_enable_rpl_parse — Active l'analyseur RPL
    • mysqli_escape_string — Alias de mysqli_real_escape_string
    • mysqli_execute — Alias de mysqli_stmt_execute
    • mysqli_fetch — Alias de mysqli_stmt_fetch
    • mysqli_get_cache_stats — Retourne les statistiques sur le cache du client Zval
    • mysqli_get_links_stats — Retourne des informations sur les liens ouverts et mis en cache
    • mysqli_get_metadata — Alias de mysqli_stmt_result_metadata
    • mysqli_master_query — Force l'exécution d'une requête sur le maître dans une configuration maître/esclave
    • mysqli_param_count — Alias de mysqli_stmt_param_count
    • mysqli_report — Alias de mysqli_driver->report_mode
    • mysqli_rpl_parse_enabled — Vérifie si l'analyseur RPL est activé
    • mysqli_rpl_probe — Sonde le RPL
    • mysqli_send_long_data — Alias de mysqli_stmt_send_long_data
    • mysqli::set_opt — Alias de mysqli_options
    • mysqli_slave_query — Force l'exécution de la requête sur un serveur esclave pour une configuration maître/esclave
  • Historique des modifications


Introduction

L'extension mysqli vous permet d'accéder aux fonctionnalités fournies par MySQL 4.1 et supérieur. Pour plus d'informations sur le serveur de base de données MySQL, veuillez-vous rendre sur » http://www.mysql.com/

Une liste des logiciels disponibles permettant d'utiliser MySQL depuis PHP peut être trouvée sur Introduction

La documentation MySQL est disponible sur » http://dev.mysql.com/doc/.

Des morceaux du manuel MySQL ont été inclues dans la documentation PHP avec la permission de Oracle Corporation.

Les exemples utilisent soit la base de données » world, soit la base de données » sakila, qui sont libres d'accès.


Introduction

Cette section fournit des informations sur les solutions qui s'offrent à vous quand vous développez une application PHP qui a besoin de s'interfacer avec une base de données MySQL.

Qu'est-ce qu'une API?

Une Interface de programmation d'application, une Application Programming Interface, ou encore API, définit les classes, méthodes, fonctions et variables dont votre application va faire usage pour exécuter différentes tâches. Dans le cas des applications PHP, les communications avec une base de données se font généralement par une API qui est exposée dans une extension PHP.

Les API peuvent être procédurales ou orientées objet. Avec une API procédurale, vous pouvez appeler les fonctions pour exécuter des commandes; avec une API orientée objet, vous devez créer des objets et appeler les méthodes de ces objets. Des deux, c'est la dernière qui est généralement préférée, car elle est plus moderne et conduit à du code plus organisé.

Lors de l'écriture d'applications PHP qui doivent se connecter à MySQL, il y a plusieurs API disponibles. Ce document présente ces API, et vous donne les informations pour choisir la meilleure solution pour votre application.

Qu'est-ce qu'un connecteur?

Dans la documentation MySQL, le terme connector fait référence à un logiciel qui permet à une application de se connecter à une base de données MySQL. MySQL fournit des connecteurs pour toute une collection de langages, y compris PHP.

Si votre application PHP a besoin de communiquer avec un serveur de base de données, vous devez écrire du code pour pouvoir vous connecter, envoyer des requêtes au serveur, etc. Un logiciel est nécessaire pour assurer l'interface que PHP va utiliser et gérer les communications entre votre application et le serveur de base de données : éventuellement, des bibliothèques intermédiaires sont nécessaires. Ces logiciels sont appelés de manière générique des connecteurs, car ils permettent de se connecter à un serveur de base de données.

Qu'est-ce qu'un pilote ?

Un pilote est un logiciel qui est conçu pour communiquer avec un type particulier de base de données. Un pilote peut aussi être appelé une bibliothèque, telle que la MySQL Client Library ou le MySQL Native Driver. Ces bibliothèques implémentent le protocole de bas niveau pour communiquer avec un serveur MySQL.

Par exemple, la couche d'abstraction de base de données PHP Data Objects (PDO) utilise un ou plusieurs pilotes de base de données. Un de ces pilotes est le pilote PDO MYSQL, qui permet de faire l'interface avec MySQL.

Parfois, les développeurs utilisent les termes de connecteur et de pilote de manière interchangeable, et cela peut être confus. Dans les documentations MySQL, le terme de "pilote" est réservé aux logiciels qui sont la face spécifique avec la base de données du paquet.

Qu'est-ce qu'une extension?

Dans la documentation PHP, vous rencontrerez un autre terme : extension. Le code PHP est constitué d'un coeur, avec des extensions optionnelles. Les extensions MySQL de PHP, telles que mysqli et mysql, sont implémentées avec le framework PHP.

Une extension expose typiquement une API à un programmeur PHP, pour lui permettre de faciliter sa programmation. Cependant, certaines extensions qui utilisent le framework PHP n'exposent pas d'API au développeur PHP.

L'extension de pilote PDO MySQL, par exemple, n'expose pas d'API au pgrammeur PHP, mais fournit une interface à la couche PDO.

Les termes API et extension ne devraient pas signifier la même chose, car une extension PHP ne fournit pas d'API particulière au pgorammeur PHP.

Quelles sont les API PHP pour MySQL ?

Il y a trois API principales pour se connecter à MySQL :

  • L'extension mysql

  • L'extension mysqli

  • PHP Data Objects (PDO)

Chacune a ses avantages et ses inconvénients. Les sections suivantes tendent à vous donner une présentation rapide de chaque API.

Qu'est-ce que l'extension mysql de PHP ?

C'est l'extension originelle, conçue pour réaliser des applications PHP qui sont en interaction avec une base MySQL. L'extension mysql fournit une interface procédurale, et est destinée à une utilisation avec les serveurs MySQL versions 4.1.3 et plus anciennes. Cette extension peut être utilisée avec les versions de MySQL 4.1.3 et plus récente, mais elle ne pourra pas tirer parti des nouvelles fonctionnalités.

Note:

Si vous utilisez MySQL versions 4.1.3 ou plus récent, il est fortement recommandé d'utiliser l'extension mysqli.

Le code source de l'extension mysql est située dans le dossier d'extension PHP ext/mysql.

Pour plus d'informations sur l'extension mysql, voyez MySQL (Original).

Qu'est-ce que l'extension mysqli de PHP ?

L'extension mysqli, ou, comme elle est parfois appelée, l'extension MySQL améliorée (i pour improved en anglais), a été développée pour tirer parti des nouvelles fonctionnalités des systèmes MySQL version 4.1.3 et plus récent. L'extension mysqli est inclue dans PHP depuis les versions 5.

L'extension mysqli a un grand nombre d'avantages et d'améliorations par rapport à l'extension mysql :

  • Interface orientée objet

  • Support des commandes préparées

  • Support des commandes multiples

  • Support des transactions

  • Capacités de déboguage avancées

  • Support du serveur embarqué

Note:

Si vous utilisez MySQL versions 4.1.3 ou plus récent, il est fortement recommandé d'utiliser cette extension.

En plus d'une interface orientée objet, l'extension propose aussi une interface procédurale.

L'extension mysqli est compilée avec le framework PHP, et son code source est rangé dans le dossier ext/mysqli.

Pour plus d'informations sur l'extension mysqli, voyez MySQLi.

Qu'est-ce que l'extension PDO de PHP ?

PHP Data Objects, ou PDO, est une couche d'abstraction de base de données, spécifique à PHP. PDO propose une API cohérente pour vos applications PHP, indépendamment du type de base de données avec laquelle vous travaillez. En théorie, si vous utilisez PDO, vous pouvez changer de base de données, disons de Firebird à MySQL, et ne faire que des changements mineurs à votre code PHP.

D'autres exemples de couches d'abstraction de base de données incluent JDBC pour Java et DBI pour Perl.

Si PDO a ses avantages, comme une API propre, simple et portable, ses inconvénients principaux sont qu'elle ne vous permet pas d'utiliser toutes les fonctionnalités avancées des dernières versions de MySQL. Par exemple, PDO ne vous permet pas de faire des requêtes multiples.

PDO est implémenté en utilisant le framework PHP, et son code source est rangé dans le dossier ext/pdo.

Pour plus d'informations sur PDO, voyez PDO.

Qu'est-ce que le pilote MySQL pour PDO ?

Le pilote PDO MYSQL n'est pas une API en tant que tel, au moins du point de vue du développeur PHP. En fait, le pilote PDO MYSQL fait partie de PDO, et fournit les fonctionnalités particulières à MySQL. Le programmeur appelle l'API PDO, mais PDO utilise le pilote PDO MYSQL pour assurer les communications avec MySQL.

Le pilote PDO MYSQL fait partie de la grande famille des pilotes PDO. Les autres pilotes disponibles assurent les communications avec Firebird et PostgreSQL, entre autres.

Le pilote PDO MYSQL est implémenté avec le framework d'extension de PHP. Son code source est situé dans le dossier ext/pdo_mysql. Il n'expose aucune API au programmeur PHP.

Pour plus de détails sur le pilote PDO de MySQL, voyez MySQL (PDO).

What is PHP's MySQL Native Driver?

Pour communiquer avec le serveur MySQL, les extensions mysql , mysqli et le pilote PDO MYSQL utilisent tous une bibliothèque bas niveau qui implémente le protocole MySQL. Par le passé, la seule bibliothèque disponible était la MySQL Client Library, aussi appelée libmysqlclient.

Cependant, l'interface présentée par libmysqlclient n'était pas optimisée pour les communications avec PHP, et libmysqlclient était conçue à l'origine en C, pour des applications de même type. Pour cette raison, le pilote MySQL natif mysqlnd a été développé comme une alternative à libmysqlclient pour les applications PHP.

Les extensions mysql, mysqli et le pilote MySQL natif peuvent chacun utiliser libmysqlclient ou mysqlnd. Comme mysqlnd a été conçu spécifiquement pour utiliser le système PHP, il propose de nombreux avantages et améliorations par rapport à libmysqlclient. Vous êtes vivement encouragés à en profiter.

Note:

Le MySQL Native Driver ne peut être utilisé qu'avec le serveur MySQL versions 4.1.3 et plus récent.

Le MySQL Native Driver est implémenté sur la base du framework d'extension PHP. Le code source est dans ext/mysqlnd. Il n'expose aucune nouvelle API au programmeur PHP.

Comparaison des fonctionnalités

La table suivante compare les fonctionnalités des trois méthodes principales pour se connecter à MySQL depuis PHP :

Comparaison des options MySQL API pour PHP
 | Extension mysqli | PDO (avec le pilote PDO MySQL Driver et MySQL Native Driver) | Extension MySQL
Version d'introduction en PHP | 5.0 | 5.0 | Avant 3.0
Inclus en PHP 5.x | Oui | Oui | Oui
Statut de développement MySQL | Développement actif | Développement actif depuis PHP 5.3 | Maintenance uniquement
Recommandée pour les nouveaux projets MySQL | Oui, et recommandée | Oui | Non
L'API supporte les jeux de caractères | Oui | Oui | Non
L'API supporte les commandes préparées | Oui | Oui | Non
L'API supporte les commandes préparées coté client | Non | Oui | Non
L'API supporte les procédures stockées | Oui | Oui | Non
L'API supporte les commandes multiples | Oui | La plupart | Non
Toutes toutes les fonctionnalités MySQL 4.1 et plus récent | Oui | La plupart | Non


Guide de démarrage rapide

Sommaire

  • Interface procédurale et orientée objet
  • Connexions
  • Exécution des requêtes
  • Les requêtes préparées
  • Les procédures stockées
  • Requêtes multiples
  • Support API pour les transactions
  • Les méta-données

Ce guide de démarrage rapide va vous aider à vous familiariser avec l'API PHP MySQL.

Il fournit une vue d'ensemble de l'extension mysqli. Des exemples de code sont fournis pour tous les aspects importants de l'API. Les concepts de base de données sont expliqués avec une finesse permettant de comprendre les spécificités des concepts de MySQL.

Requis : Vous devez être familier avec le langage de programmation PHP, le langage SQL ainsi qu'avoir quelques bases avec le serveur MySQL.


Interface procédurale et orientée objet

L'extension mysqli fournit 2 interfaces. Elle supporte la programmation procédurale mais aussi, la programmation orientée objet.

Les utilisateurs migrants depuis l'ancienne extension mysql préfèreront l'interface procédurale. Cette interface est similaire à celle utilisée par l'ancienne extension mysql. Dans la plupart des cas, les noms de fonctions ne diffèrent que par leurs préfixes. Quelques fonctions mysqli prennent un gestionnaire de connexion comme premier argument, alors que la fonction correspondante de l'ancienne interface mysql le prennait comme argument optionnel en dernière position.

Exemple #1 Migration facile depuis l'ancienne extension mysql

<?php
$mysqli = mysqli_connect("example.com", "user", "password", "database");
$res = mysqli_query($mysqli, "SELECT 'Please, do not use ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($res);
echo $row['_msg'];

$mysql = mysql_connect("example.com", "user", "password");
mysql_select_db("test");
$res = mysql_query("SELECT 'the mysql extension for new developments.' AS _msg FROM DUAL", $mysql);
$row = mysql_fetch_assoc($res);
echo $row['_msg'];
?>

L'exemple ci-dessus va afficher :

Please, do not use the mysql extension for new developments.

L'interface orientée objet

En plus de l'interface procédurale, les utilisateurs peuvent choisir d'utiliser l'interface orientée objet. La documentation est organisée en utilisant cette interface. Elle montre les fonctions groupées par leurs buts, rendant simple le démarrage de la programmation. La section référence fournit des exemples sur les deux syntaxes.

Il n'y a pas de différence significative d'un point de vue performance entre les deux interfaces. Les utilisateurs peuvent faire leur choix que d'un point de vue personnel.

Exemple #2 Interface procédurale et orientée objet

<?php
$mysqli = mysqli_connect("example.com", "user", "password", "database");
if (mysqli_connect_errno($mysqli)) {
    echo "Echec lors de la connexion à MySQL : " . mysqli_connect_error();
}

$res = mysqli_query($mysqli, "SELECT 'A world full of ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($res);
echo $row['_msg'];

$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL : " . $mysqli->connect_error;
}

$res = $mysqli->query("SELECT 'choices to please everybody.' AS _msg FROM DUAL");
$row = $res->fetch_assoc();
echo $row['_msg'];
?>

L'exemple ci-dessus va afficher :

A world full of choices to please everybody.

L'interface orientée objet est utilisée dans le démarrage rapide de la documentation en raison du fait que la section référence est organisée de cette façon.

Mixage des styles

Il est possible de passer d'un style à un autre à tout moment bien que ce ne soit pas recommandé pour des raisons de clareté et de style de codage.

Exemple #3 Mauvais style de codage

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL : " . $mysqli->connect_error;
}

$res = mysqli_query($mysqli, "SELECT 'Possible but bad style.' AS _msg FROM DUAL");
if (!$res) {
    echo "Echec lors de l'exécution de la requête : (" . $mysqli->errno . ") " . $mysqli->error;
}

if ($row = $res->fetch_assoc()) {
    echo $row['_msg'];
}
?>

L'exemple ci-dessus va afficher :

Possible but bad style.

Voir aussi

  • mysqli::__construct()
  • mysqli::query()
  • mysqli_result::fetch_assoc()
  • $mysqli::connect_errno
  • $mysqli::connect_error
  • $mysqli::errno
  • $mysqli::error
  • Le résumé des fonctions de l'extension MySQLi


Connexions

Le serveur MySQL supporte l'utilisation de différentes couches de transport pour les connexions. Les connexions peuvent utiliser TCP/IP, les sockets de domaine Unix ou les pipes nommés Windows.

Le nom d'hôte localhost a une signification particulière. Il est lié à l'utilisation des sockets de domaine Unix. Il n'est pas possible d'ouvrir une connexion TCP/IP en utilisant le nom d'hôte localhost ; vous devez utiliser 127.0.0.1 à la place.

Exemple #1 Signification spéciale de localhost

<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";

$mysqli = new mysqli("127.0.0.1", "user", "password", "database", 3306);
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

echo $mysqli->host_info . "\n";
?>

L'exemple ci-dessus va afficher :

Localhost via UNIX socket
127.0.0.1 via TCP/IP

Paramètres par défaut d'une connexion

Suivant la fonction de connexion utilisée, des paramètres peuvent être omis. Si un paramètre n'est pas fourni, alors l'extension tentera d'utiliser les valeurs par défaut définies dans le fichier de configuration de PHP.

Exemple #2 Paramètres par défaut

mysqli.default_host=192.168.2.27
mysqli.default_user=root
mysqli.default_pw=""
mysqli.default_port=3306
mysqli.default_socket=/tmp/mysql.sock

Ces valeurs de paramètres sont alors passées à la bibliothèque cliente utilisée par l'extension. Si la bibliothèque cliente détecte un paramètre vide ou non défini, alors elle utilisera les valeurs par défaut internes à la bibliothèque.

Valeurs par défaut internes à la bibliothèque pour la connexion

Si la valeur de l'hôte n'est pas définie ou est vide, alors la bibliothèque cliente utilisera par défaut une connexion de type socket Unix sur localhost. Si le socket n'est pas défini ou vide, et qu'une connexion de type socket Unix est demandée, alors une connexion au socket par défaut /tmp/mysql.sock sera tentée.

Sous les systèmes Windows, le nom d'hôte . est interprété par la bibliothèque cliente comme une tentative d'ouvrir un tube nommé Windows pour la connexion. Dans ce cas, le paramètre socket est interprété comme un tube nommé. S'il n'est pas fourni ou vide, alors le socket (tube nommé) vaudra par défaut \\.\pipe\MySQL.

Si ni un socket de domaine Unix, ni un tube nommé Windows n'est fourni, une connexion de base sera établie et si la valeur du port n'est pas défini, la bibliothèque utilisera le port 3306.

La bibliothèque mysqlnd et la bibliothèque cliente MySQL (libmysqlclient) implémentent la même logique pour déterminer les valeurs par défaut.

Options de connexion

Des options de connexion sont disponibles pour, par exemple, définir des commandes d'initialisation à exécuter lors de la connexion, ou pour démander l'utilisation d'un jeu de caractères particulier. Les options de connexion doivent être définies avant la connexion au réseau.

Pour définir une option de connexion, l'opération de connexion doit être effectuée en 3 étapes : création d'un gestionnaire de connexion avec mysqli_init(), définission des options demandées en utilisant mysqli_options(), et connexion au réseau avec mysqli_real_connect().

File d'attente de connexion

L'extension mysqli supporte les connexions persistentes au base de données, qui sont des connexions spéciales. Par défaut, chaque connexion à une base de données ouverte par un script est soit explicitement close par l'utilisateur durant l'exécution, ou soit libérée automatiquement à la fin du script. Ce n'est pas le cas d'une connexion persistente. En effet, elle sera placée dans une file d'attente pour une ré-utilisation future, si une connexion au même serveur, utilisant le même nom d'utilisateur, le même mot de passe, le même socket, le même port, ainsi que la même base de données est ouverte. Cette ré-utilisation permet d'alléger la charge indue par les connexions.

Chaque processus PHP utilise sa propre file d'attente de connexions mysqli. Suivant le modèle de déploiement du serveur web, un processus PHP peut servir une ou plusieurs requêtes. Toutefois, une connexion mise en file d'attente peut être utilisée par un ou plusieurs scripts par la suite.

Les connexions persistentes

Si une connexion persistente pour une combinaison d'hôte, de nom d'utilisateur, de mot de passe, de socket, de port et de base de données inutilisée ne peut être trouvée dans la file d'attente de connexion, alors mysqli ouvrira une nouvelle connexion. L'utilisation des connexions persistentes peut être activée ou désactivée en utilisant la directive PHP mysqli.allow_persistent. Le nombre total de connexions ouvertes par un script peut être limité avec la directive mysqli.max_links. Le nombre maximal de connexions persistentes par processus PHP peut être restreint avec la directive mysqli.max_persistent. Veuillez noter que le serveur web peut engendrer plusieurs processus PHP.

Une plainte courante contre les connexions persistentes est que leurs statuts n'est pas ré-initialisés avant la ré-utilisation. Par exemple, les transactions ouvertes et non terminées ne sont pas automatiquement annulées. Mais aussi, les modifications autorisées survenant entre le moment où la connexion est mise en file d'attente et sa ré-utilisation ne seront pas prises en compte. Ce comportement peut être vu comme un effet de bord non désiré. Au contraire, le nom persistent peut être compris comme une promesse sur le fait que le statut persiste réellement.

L'extension mysqli supporte deux interprétations d'une connexion persistente : statut persistant, et un statut réinitialisé avant ré-utilisation. Par défaut, il sera réinitialisé. Avant qu'une connexion persistente ne soit réutilisée, l'extension mysqli appelle implicitement la fonction mysqli_change_user() pour réinitialiser le statut. La connexion persistente apparaît à l'utilisateur comme si elle venait juste d'être ouverte. Aucune trace d'une utilisation précédente ne sera visible.

La fonction mysqli_change_user() est une opération couteuse. Pour de meilleures performances, les utilisateurs peuvent vouloir re-compiler l'extension avec le drapeau de compilation MYSQLI_NO_CHANGE_USER_ON_PCONNECT.

Ainsi, il sera laissé à l'utilisateur le choix entre un comportement sécurisé et une performance optimisée. Les deux ont comme but l'optimisation. Pour une utilisation plus simple, le comportement sécurisé a été placé par défaut au détriment d'une performance maximale.

Voir aussi

  • mysqli::__construct()
  • mysqli::init()
  • mysqli::options()
  • mysqli::real_connect()
  • mysqli::change_user()
  • $mysqli::host_info
  • Les options de configuration MySQLi
  • Les connexions persistentes aux bases de données


Exécution des requêtes

Les requêtes peuvent être exécutées avec les fonctions mysqli_query(), mysqli_real_query() et mysqli_multi_query(). La fonction mysqli_query() est la plus commune, et combine l'exécution de la requete avec une récupération de son jeu de résultats en mémoire tampon, s'il y en a un, en un seul appel. Appeler la fonction mysqli_query() est identique à appeler la fonction mysqli_real_query() suivie d'un appel à la fonction mysqli_store_result().

Exemple #1 Connexion à MySQL

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    echo "Echec lors de la création de la table : (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Jeux de résultats en mémoire tampon

Après exécution de la requête, les résultats peuvent être récupérés afin d'être placés en mémoire tampon par le client ou bien être lus ligne par ligne. La mise en mémoire tampon du jeu de résultats côté client autorise le serveur à libérer les ressources associées avec le résultat de la requête aussi vite que possible. De manière générale, les clients sont lents à parcourir les jeux de résultats. Toutefois, il est recommandé d'utiliser la mise en mémoire tampon des jeux de résultats. La fonction mysqli_query() combine à la fois l'exécution de la requête et la mise en mémoire tampon du jeu de résultats.

Les applications PHP peuvent naviguer librement dans les résultats mis en mémoire tampon. La navigation est rapide car les jeux de résultats sont stockés dans la mémoire client. Veuillez garder à l'esprit qu'il est souvent plus simple de réaliser cette opération par le client que par le serveur.

Exemple #2 Navigation dans des résultats mis en mémoire tampon

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)")) {
    echo "Echec lors de la création de la table : (" . $mysqli->errno . ") " . $mysqli->error;
}

$res = $mysqli->query("SELECT id FROM test ORDER BY id ASC");

echo "Ordre inversé...\n";
for ($row_no = $res->num_rows - 1; $row_no >= 0; $row_no--) {
    $res->data_seek($row_no);
    $row = $res->fetch_assoc();
    echo " id = " . $row['id'] . "\n";
}

echo "Ordre du jeu de résultats...\n";
$res->data_seek(0);
while ($row = $res->fetch_assoc()) {
    echo " id = " . $row['id'] . "\n";
}
?>

L'exemple ci-dessus va afficher :

Ordre inversé...
 id = 3
 id = 2
 id = 1
Ordre du jeu de résultats...
 id = 1
 id = 2
 id = 3

Jeux de résultats non mis en mémoire tampon

Si la mémoire client est une ressource limitée, et que la libération des ressources serveur aussi vite que possible pour conserver une charge serveur basse n'est pas nécessaire, les résultats non mis en mémoire tampon peuvent être utilisés. La navigation au travers de résultats non mis en mémoire tampon n'est pas possible tant que toutes les lignes n'ont pas été lues.

Exemple #3 Navigation dans des résultats non mis en mémoire tampon

<?php
$mysqli->real_query("SELECT id FROM test ORDER BY id ASC");
$res = $mysqli->use_result();

echo "Ordre du jeu de résultats...\n";
while ($row = $res->fetch_assoc()) {
    echo " id = " . $row['id'] . "\n";
}
?>

Types de données des valeurs du jeu de résultats

Les fonctions mysqli_query(), mysqli_real_query() et mysqli_multi_query() sont utilisées pour exécuter des requêtes non-préparées. Au niveau du protocole client-serveur MySQL, la commande COM_QUERY ainsi que le protocole texte sont utilisés pour l'exécution de la requête. Avec le protocole texte, le serveur MySQL convertit toutes les données d'un jeu de résultats en chaînes de caractères avant de les envoyer. La bibliothèque cliente mysql reçoit toutes les valeurs des colonnes sous forme de chaîne de caractères. Aucun autre transtypage côté client n'est effectué pour retrouver le type natif des colonnes. A la place de cela, toutes les valeurs sont fournis sous la forme de chaîne de caractères PHP.

Exemple #4 Le protocole texte retourne des chaînes de caractères par défaut

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL  : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

$res = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $res->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));
?>

L'exemple ci-dessus va afficher :

id = 1 (string)
label = a (string)

Il est possible de convertir des colonnes de type entières et nombres à virgule flottante en nombre PHP en définissant l'option de connexion MYSQLI_OPT_INT_AND_FLOAT_NATIVE, si vous utilisez la bibliothèque mysqlnd. Si défini, la bibliothèque mysqlnd va vérifier les méta-données des types des colonnes dans le jeu de résultats et va convertir les colonnes SQL numériques en nombres PHP, si la valeur entre dans l'intervalle autorisé de PHP. De cette façon, par exemple, les colonnes SQL INT sont retournées sous la forme d'entier.

Exemple #5 Types natifs des données avec mysqlnd et l'option de connexion

<?php
$mysqli = mysqli_init();
$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
$mysqli->real_connect("example.com", "user", "password", "database");

if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL  : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Echec lors de la création de la table : (" . $mysqli->errno . ") " . $mysqli->error;
}

$res = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $res->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));
?>

L'exemple ci-dessus va afficher :

id = 1 (integer)
label = a (string)

Voir aussi

  • mysqli::__construct()
  • mysqli::init()
  • mysqli::options()
  • mysqli::real_connect()
  • mysqli::query()
  • mysqli::multi_query()
  • mysqli::use_result()
  • mysqli::store_result()
  • mysqli_result::free()


Les requêtes préparées

La base de données MySQL supporte les requêtes préparées. Une requête préparée ou requête paramétrable est utilisée pour exécuter la même requête plusieurs fois, avec une grande efficacité.

Flux de travail de base

L'exécution d'une requête préparée se déroule en deux étapes : la préparation et l'exécution. Lors de la préparation, un template de requête est envoyé au serveur de base de données. Le serveur effectue une vérification de la syntaxe, et initialise les ressources internes du serveur pour une utilisation ultérieure.

Le serveur MySQL supporte le mode anonyme, avec des marqueurs de position utilisant le caractère ?.

Exemple #1 Première étape : la préparation

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

/* Non-prepared statement */
if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Echec lors de la création de la table : (" . $mysqli->errno . ") " . $mysqli->error;
}

/* Prepared statement, stage 1: prepare */
if (!($stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)"))) {
    echo "Echec de la préparation : (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

La préparation est suivie de l'exécution. Pendant l'exécution, le client lie les valeurs des paramètres et les envoie au serveur. Le serveur crée une requête depuis le template et y lie les valeurs pour l'exécution, en utilisant les ressources internes créées précédemment.

Exemple #2 Seconde étape : lie et exécute

<?php
/* Requête préparée, seconde étape : lie les valeurs et exécute la requête */
$id = 1;
if (!$stmt->bind_param("i", $id)) {
    echo "Echec lors du liage des paramètres : (" . $stmt->errno . ") " . $stmt->error;
}

if (!$stmt->execute()) {
    echo "Echec lors de l'exécution : (" . $stmt->errno . ") " . $stmt->error;
}
?>

Exécution répétée

Une requête préparée peut être exécutée à plusieurs reprises. A chaque exécution, la valeur courante de la variable liée est évaluée, et envoyée au serveur. La requête n'est pas analysée de nouveau. Le template de requête n'est pas une nouvelle fois envoyée au serveur non plus.

Exemple #3 Requête de type INSERT préparée une seule fois, et exécutée plusieurs fois

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

/* Requête non préparée */
if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Echec lors de la création de la table : (" . $mysqli->errno . ") " . $mysqli->error;
}

/* Requête préparée, étape 1 : la préparation */
if (!($stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)"))) {
     echo "Echec lors de la préparation : (" . $mysqli->errno . ") " . $mysqli->error;
}

/* Requête préparée, étape 2 : lie les valeurs et exécute la requête */
$id = 1;
if (!$stmt->bind_param("i", $id)) {
    echo "Echec lors du liage des paramètres : (" . $stmt->errno . ") " . $stmt->error;
}

if (!$stmt->execute()) {
    echo "Echec lors de l'exécution de la requête : (" . $stmt->errno . ") " . $stmt->error;
}

/* Requête préparée : on exécute la requête de nouveau, seules les données sont transférées depuis le client vers le serveur */
for ($id = 2; $id < 5; $id++) {
    if (!$stmt->execute()) {
        echo "Echec lors de l'exécution de la requête : (" . $stmt->errno . ") " . $stmt->error;
    }
}

/* Il est recommandé de fermer explicitement */
$stmt->close();

/* Requête non préparée */
$res = $mysqli->query("SELECT id FROM test");
var_dump($res->fetch_all());
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [3]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}

Chaque requête préparée occupe des ressources sur le serveur. Elles doivent être fermées explicitement immédiatement après utilisation. Si vous ne le faîtes pas, la requête sera fermée lorsque le gestionnaire de requête sera libéré par PHP.

L'utilisation de requête préparée n'est pas toujours la façon la plus efficace d'exécuter une requête. Une requête préparée exécutée une seule fois provoque plus d'aller-retour client-serveur qu'une requête non préparée. C'est pour cela que la requête de type SELECT n'est pas exécutée comme requête préparée dans l'exemple ci-dessus.

De plus, vous devez prendre en considération l'utilisation des syntaxes multi-INSERT MySQL pour les INSERTs. Par exemple, les multi-INSERs requièrent moins d'aller-retour client-serveur que la requête préparée vue dans l'exemple ci-dessus.

Exemple #4 Moins d'aller-retour en utilisant les multi-INSERTs SQL

<?php
if (!$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3), (4)")) {
    echo "Echec lors du Multi-INSERT : (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Types de données des valeurs du jeu de résultats

Le protocole serveur client MySQL définit un protocole de transfert des données différent pour les requêtes préparées et pour les requêtes non préparées. Les requêtes préparées utilisent un protocole appelé binaire. Le serveur MySQL envoie les données du jeu de résultats "tel que", au format binaire. Les résultats ne sont pas linéarisés en chaînes de caractères avant envoi. La bibliothèque cliente ne reçoit donc pas que des chaînes de caractères. Au lieu de cela, elle va recevoir des données binaires, et tentera de les convertir en valeurs dans un type de données PHP approprié. Par exemple, les résultats depuis une colonne INT SQL seront fournis comme variables de type entier PHP.

Exemple #5 Types de données natifs

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Echec lors de la création de la table : (" . $mysqli->errno . ") " . $mysqli->error;
}

$stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1");
$stmt->execute();
$res = $stmt->get_result();
$row = $res->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));
?>

L'exemple ci-dessus va afficher :

id = 1 (integer)
label = a (string)

Ce comportement diffère pour les requêtes non préparées. Par défaut, les requêtes non préparées retournent tous les résultats sous forme de chaînes de caractères. Ce comportement par défaut peut être modifié en utilisant une option lors de la connexion. Si cette option est utilisée, alors il n'y aura plus de différence entre une requête préparée et une requête non préparée.

Récupération des résultats en utilisant des variables liées

Les résultats depuis les requêtes préparées peuvent être récupérées en liant les variables de sortie, ou en interrogeant l'objet mysqli_result.

Les variables de sortie doivent être liées après l'exécution de la requête. Une variable doit être liée pour chaque colonne du jeu de résultats de la requête.

Exemple #6 Liage des variables de sortie

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Echec lors de la création de la table : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("SELECT id, label FROM test"))) {
    echo "Echec lors de la préparation de la requête : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
    echo "Echec lors de l'exécution de la requête : (" . $mysqli->errno . ") " . $mysqli->error;
}

$out_id    = NULL;
$out_label = NULL;
if (!$stmt->bind_result($out_id, $out_label)) {
    echo "Echec lors du liage des paramètres de sortie : (" . $stmt->errno . ") " . $stmt->error;
}

while ($stmt->fetch()) {
    printf("id = %s (%s), label = %s (%s)\n", $out_id, gettype($out_id), $out_label, gettype($out_label));
}
?>

L'exemple ci-dessus va afficher :

id = 1 (integer), label = a (string)

Les requêtes préparées retournent des jeux de résultats non mis en mémoire tampon par défaut. Les résultats de la requête ne sont pas implicitement récupérés et transférés depuis le serveur vers le client pour une mise en mémoire tampon côté client. Le jeu de résultats prend des ressources serveur tant que tous les résultats n'ont pas été récupérés par le client. Aussi, il est recommandé de les récupérer rapidement. Si un client échoue dans la récupération de tous les résultats, ou si le client ferme la requête avant d'avoir récupéré toutes les données, les données doivent être récupérées implicitement par mysqli.

Il est également possible de mettre en mémoire tampon les résultats d'une requête préparée en utilisant la fonction mysqli_stmt_store_result().

Récupération des résultats en utilisant l'interface mysqli_result

Au lieu d'utiliser des résultats liés, les résultats peuvent aussi être récupérées via l'interface mysqli_result. La fonction mysqli_stmt_get_result() retourne un jeu de résultats mis en mémoire tampon.

Exemple #7 Utilisation de mysqli_result pour récupérer les résultats

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Echec lors de la création de la table : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("SELECT id, label FROM test ORDER BY id ASC"))) {
    echo "Echec lors de la préparation de la requête : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
     echo "Echec lors de l'exécution de la requête : (" . $stmt->errno . ") " . $stmt->error;
}

if (!($res = $stmt->get_result())) {
    echo "Echec lors de la récupération du jeu de résultats : (" . $stmt->errno . ") " . $stmt->error;
}

var_dump($res->fetch_all());
?>

L'exemple ci-dessus va afficher :

array(1) {
  [0]=>
  array(2) {
    [0]=>
    int(1)
    [1]=>
    string(1) "a"
  }
}

L'utilisation de mysqli_result interface offre d'autres avantages d'un point de vue flexibilité dans la navigation dans le jeu de résultats côté client.

Exemple #8 Jeu de résultats mis en mémoire tampon pour plus de flexibilité dans la lecture

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a'), (2, 'b'), (3, 'c')")) {
    echo "Echec lors de la création de la table : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("SELECT id, label FROM test"))) {
    echo "Echec lors de la préparation de la requête : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
     echo "Echec lors de l'exécution de la requête : (" . $stmt->errno . ") " . $stmt->error;
}

if (!($res = $stmt->get_result())) {
    echo "Echec lors de la récupération du jeu de résultats : (" . $stmt->errno . ") " . $stmt->error;
}

for ($row_no = ($res->num_rows - 1); $row_no >= 0; $row_no--) {
    $res->data_seek($row_no);
    var_dump($res->fetch_assoc());
}
$res->close();
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["id"]=>
  int(3)
  ["label"]=>
  string(1) "c"
}
array(2) {
  ["id"]=>
  int(2)
  ["label"]=>
  string(1) "b"
}
array(2) {
  ["id"]=>
  int(1)
  ["label"]=>
  string(1) "a"
}

Echappement et injection SQL

Les variables liées sont envoyées au serveur séparément de la requête, ne pouvant ainsi pas interférer avec celle-ci. Le serveur utilise ces valeurs directement au moment de l'exécution, après que le template ne soit analysé. Les paramètres liés n'ont pas besoin d'être échappés sachant qu'ils ne sont jamais placés dans la chaîne de requête directement. Une astuce doit être fournie au serveur pour spécifier le type de variable liée, afin d'effectuer la conversion appropriée. Voir la fonction mysqli_stmt_bind_param() pour plus d'informations.

Une telle séparation est souvent considérée comme la seule fonctionalité pour se protéger des injections SQL, mais le même degré de sécurité peut être atteint avec les requêtes non-préparées, si toutes les valeurs sont correctement formatées. Notez qu'un formattage correct n'est pas la même chose qu'un échappement et nécessite plus de logique qu'un simple échappement. Aussi, les requêtes préparées sont simplement une méthode plus simple et moins prompte aux erreurs concernant cette approche sécuritaire.

Émulation côté client de la préparation d'une requête

L'API n'inclut pas d'émulation côté client de la préparation d'une requête.

Préparation rapide - comparaison de requêtes non préparées

Le table ci-dessous compare les requêtes préparées côté serveur et les requêtes non préparées.

Comparaison entre les requêtes préparées et non préparées
 | Requête préparée | Requête non préparée
Aller-retour client serveur, SELECT, une seule exécution | 2 | 1
Chaîne de la requête transférée depuis le client vers le serveur | 1 | 1
Aller-retour client serveur, SELECT, (n) exécution | 1 + n | n
Chaîne de la requête transférée depuis le client vers le serveur | 1 template, liage des paramètres n fois, s'il y en a | n fois avec les paramètres, s'il y en a
API de liage des paramètres d'entrée | Oui, échappement automatique des entrées | Non, échappement manuelle des entrées
API de liage des paramètres de sortie | Oui | Non
Support de l'utilisation de l'API mysqli_result | Oui, utilisation de mysqli_stmt_get_result() | Oui
Jeu de résultats mis en mémoire tampon | Oui, utilisation de mysqli_stmt_get_result() ou liage avec mysqli_stmt_store_result() | Oui, par défaut avec la fonction mysqli_query()
Jeu de résultats non mis en mémoire tampon | Oui, utiilsation de l'API liage de la sortie | Oui, utilisation de mysqli_real_query() avec mysqli_use_result()
Saveur du protocole de transfert des données client serveur MySQL | Protocole binaire | Protocole texte
Types de données des valeurs du jeu de résultats SQL | Préservé lors de la récupération | Converti en chaînes ou préservé lors de la récupération
Supporte toutes les requêtes SQL | Les versions récentes de MySQL supportent la plupart, mais pas toute | Oui

Voir aussi

  • mysqli::__construct()
  • mysqli::query()
  • mysqli::prepare()
  • mysqli_stmt::prepare()
  • mysqli_stmt::execute()
  • mysqli_stmt::bind_param()
  • mysqli_stmt::bind_result()


Les procédures stockées

La base de données MySQL supporte les procédures stockées. Une procédure stockée est une sous routine stockée dans le catalogue de la base de données. Les applications peuvent appeler et exécuter une procédure stockée. La requête SQL CALL est utilisée pour exécuter une procédure stockées.

Paramètre

Les procédures stockées peuvent avoir des paramètres IN, INOUT and OUT, suivant la version de MySQL. L'interface mysqli n'a pas de notion spécifique des différents types de paramètres.

Paramètre IN

Les paramètres d'entrée sont fournis avec la requête CALL. Assurez-vous d'échapper correctement les valeurs.

Exemple #1 Appel d'une procédure stockée

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Echec lors de la création de la table : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query("CREATE PROCEDURE p(IN id_val INT) BEGIN INSERT INTO test(id) VALUES(id_val); END;")) {
    echo "Echec lors de la création de la procédure stockée : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("CALL p(1)")) {
    echo "Echec lors de l'appel à la procédure stockée : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($res = $mysqli->query("SELECT id FROM test"))) {
    echo "Echec de la requête : (" . $mysqli->errno . ") " . $mysqli->error;
}

var_dump($res->fetch_assoc());
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["id"]=>
  string(1) "1"
}

Paramètre INOUT/OUT

Les valeurs des paramètres INOUT/OUT sont accédées en utilisant les variables de session.

Exemple #2 Utilisation des variables de session

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query('CREATE PROCEDURE p(OUT msg VARCHAR(50)) BEGIN SELECT "Hi!" INTO msg; END;')) {
    echo "Echec lors de la création de la procédure stockée : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("SET @msg = ''") || !$mysqli->query("CALL p(@msg)")) {
    echo "Echec de l'appel à la procédure stockée : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($res = $mysqli->query("SELECT @msg as _p_out"))) {
    echo "Echec lors de la récupération : (" . $mysqli->errno . ") " . $mysqli->error;
}

$row = $res->fetch_assoc();
echo $row['_p_out'];
?>

L'exemple ci-dessus va afficher :

Hi!

Les développeurs d'application et de framework peuvent fournir une API plus conviviale utilisant un mix des variables de session et une inspection du catalogue de la base de données. Cependant, veuillez garder à l'esprit l'impact sur les performances dû à une solution personnalisée basée sur l'inspection du catalogue.

Gestion des jeux de résultats

Les procédures stockées peuvent retourner des jeux de résultats. Les jeux de résultats retournés depuis une procédure stockée ne peuvent être récupérés correctement en utilisant la fonction mysqli_query(). La fonction mysqli_query() combine l'exécution de la requête et la récupération du premier jeu de résultats dans un jeu de résultats mis en mémoire tampon, s'il y en a. Cependant, il existe d'autres jeux de résultats issus de la procédure stockée qui sont cachés de l'utilisateur et qui font que la fonction mysqli_query() échoue lors de la récupération des jeux de résultats attendus de l'utilisateur.

Les jeux de résultats retournés depuis une procédure stockée sont récupérés en utilisant la fonction mysqli_real_query() ou la fonction mysqli_multi_query(). Ces deux fonctions autorisent la récupération de n'importe quel nombre de jeux de résultats retournés par une requête, comme la requête CALL. L'échec dans la récupération de tous les jeux de résultats retournés par une procédure stockée cause une erreur.

Exemple #3 Récupération des résultats issus d'une procédure stockée

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)")) {
    echo "Echec lors de la création de la table : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query('CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id FROM test; SELECT id + 1 FROM test; END;')) {
    echo "Echec lors de la création de la procédure stockée : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->multi_query("CALL p()")) {
    echo "Echec lors de l'appel à CALL : (" . $mysqli->errno . ") " . $mysqli->error;
}

do {
    if ($res = $mysqli->store_result()) {
        printf("---\n");
        var_dump($res->fetch_all());
        $res->free();
    } else {
        if ($mysqli->errno) {
            echo "Echec de STORE : (" . $mysqli->errno . ") " . $mysqli->error;
        }
    }
} while ($mysqli->more_results() && $mysqli->next_result());
?>

L'exemple ci-dessus va afficher :

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}

Utilisation des requêtes préparées

Aucune gestion spéciale n'est requise lors de l'utilisation de l'interface de préparation des requêtes pour récupérer les résultats depuis la même procédure stockée que celle ci-dessous. Les interfaces de requête préparée et non préparée sont similaires. Veuillez noter que toutes les versions du serveur MySQL ne supporte pas la préparation des requêtes SQL CALL.

Exemple #4 Procédures stockées et requête préparée

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)")) {
    echo "Echec lors de la création de la table : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query('CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id FROM test; SELECT id + 1 FROM test; END;')) {
    echo "Echec lors de la création de la procédure stockée : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("CALL p()"))) {
    echo "Echec lors de la préparation : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
    echo "Echec lors de l'exécution : (" . $stmt->errno . ") " . $stmt->error;
}

do {
    if ($res = $stmt->get_result()) {
        printf("---\n");
        var_dump(mysqli_fetch_all($res));
        mysqli_free_result($res);
    } else {
        if ($stmt->errno) {
            echo "Echec de STORE : (" . $stmt->errno . ") " . $stmt->error;
        }
    }
} while ($stmt->more_results() && $stmt->next_result());
?>

Bien sûr, l'utilisation de l'API de liage pour la récupération est également supportée.

Exemple #5 Procédures stockées et requête préparée en utilisant l'API de liage

<?php
if (!($stmt = $mysqli->prepare("CALL p()"))) {
    echo "Echec lors de la préparation : (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
    echo "Echec lors de l'exécution : (" . $stmt->errno . ") " . $stmt->error;
}

do {

    $id_out = NULL;
    if (!$stmt->bind_result($id_out)) {
        echo "Echec lors du liage : (" . $stmt->errno . ") " . $stmt->error;
    }

    while ($stmt->fetch()) {
        echo "id = $id_out\n";
    }
} while ($stmt->more_results() && $stmt->next_result());
?>

Voir aussi

  • mysqli::query()
  • mysqli::multi_query()
  • mysqli_result::next-result()
  • mysqli_result::more-results()


Requêtes multiples

MySQL autorise optionnellement le fait d'avoir plusieurs requêtes dans une seule chaîne de requête. L'envoi de requêtes multiples en une fois réduit les aller-retour client serveur mais nécessite une gestion spéciale.

Les requêtes multiples ou multi-requêtes doivent être exécutées avec la fonction mysqli_multi_query(). Les requêtes individuelles dans la chaîne de requête sont séparées par un point virgule. Ensuite, tous les jeux de résultats retournés par l'exécution des requêtes doivent être récupérés.

Le serveur MySQL autorise d'avoir des requêtes qui retournent des jeux de résultats ainsi que des requêtes qui ne retournent aucun jeu de résultats dans la même requête multiple.

Exemple #1 Requêtes multiples

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Echec lors de la création de la table : (" . $mysqli->errno . ") " . $mysqli->error;
}

$sql = "SELECT COUNT(*) AS _num FROM test; ";
$sql.= "INSERT INTO test(id) VALUES (1); ";
$sql.= "SELECT COUNT(*) AS _num FROM test; ";

if (!$mysqli->multi_query($sql)) {
    echo "Echec lors de l'exécution de la multi-requête : (" . $mysqli->errno . ") " . $mysqli->error;
}

do {
    if ($res = $mysqli->store_result()) {
        var_dump($res->fetch_all(MYSQLI_ASSOC));
        $res->free();
    }
} while ($mysqli->more_results() && $mysqli->next_result());
?>

L'exemple ci-dessus va afficher :

array(1) {
  [0]=>
  array(1) {
    ["_num"]=>
    string(1) "0"
  }
}
array(1) {
  [0]=>
  array(1) {
    ["_num"]=>
    string(1) "1"
  }
}

D'un point de vue de la sécurité

Les fonctions mysqli_query() et mysqli_real_query() de l'API ne définissent pas de drapeau de connexion nécessaire pour l'activation des multi-requêtes sur le serveur. Un appel supplémentaire à l'API est utilisé pour les multi-requêtes pour réduire la probabilité d'injection SQL accidentelle. Un attaquant peut tenter d'ajouter des requêtes comme ; DROP DATABASE mysql ou ; SELECT SLEEP(999). Si l'attaquant arrive à ajouter ce genre de SQL dans la chaîne de requête mais que mysqli_multi_query n'est pas utilisé, le serveur n'excutera que la première requête, mais pas la seconde représentant la requête SQL malicieuse.

Exemple #2 Injection SQL

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
$res    = $mysqli->query("SELECT 1; DROP TABLE mysql.user");
if (!$res) {
    echo "Erreur lors de l'exécution de la requête : (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

L'exemple ci-dessus va afficher :

Erreur lors de l'exécution de la requête : (1064) You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax
to use near 'DROP TABLE mysql.user' at line 1

Prepared statements

L'utilisation des requêtes multiples avec des requêtes préparées n'est pas supportée.

Voir aussi

  • mysqli::query()
  • mysqli::multi_query()
  • mysqli_result::next-result()
  • mysqli_result::more-results()


Support API pour les transactions

Le serveur MySQL supporte les transactions suivant le moteur de stockage utilisé. Depuis MySQL 5.5, le moteur de stockage par défaut est InnoDB. InnoDB a un support complet des transactions ACID.

Les transactions peuvent soit être contrôlées en utilisant SQL, soit par des appels API. Il est recommandé d'utiliser les appels API pour activer ou désactiver le mode auto-commit et pour valider et annuler les transactions.

Exemple #1 Définir le mode auto-commit via SQL ou via l'API

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

/* Recommandé : utilisation de l'API pour contrôler la configuration des transactions */
$mysqli->autocommit(false);

/* Ne sera pas monitoré et reconnu par le plugin de réplication et de balance de charge */
if (!$mysqli->query('SET AUTOCOMMIT = 0')) {
    echo "Echec de la requête : (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Les paquets de fonctionnalités additionnelles, comme les plugins de réplication et de balance de charge peuvent monitorer les appels API. Le plugin de réplication offre une sécurité sur les transactions lors de la balance de charge, si les transactions sont contrôlées avec des appels API. La sécurité des transactions lors de la balance de charge n'est pas disponible si les requêtes SQL sont utilisées pour définir le mode auto-commit, pour valider ou annuler une transaction.

Exemple #2 Validation et annulation d'une transaction

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
$mysqli->autocommit(false);

$mysqli->query("INSERT INTO test(id) VALUES (1)");
$mysqli->rollback();

$mysqli->query("INSERT INTO test(id) VALUES (2)");
$mysqli->commit();
?>

Veuillez noter que le serveur MySQL ne peut pas annuler toutes les requêtes. Quelques requêtes requièrent une validation implicite.

Voir aussi

  • mysqli::autocommit()
  • mysqli_result::commit()
  • mysqli_result::rollback()


Les méta-données

Un jeu de résultats MySQL contient des méta-données. Elles décrivent les colonnes trouvées dans le jeu de résultats. Toutes les méta-données envoyées par MySQL sont accessible via l'interface mysqli. L'extension n'effectue que très peu (voire, pas du tout) de modification sur les informations qu'elle reçoit. Les différences entre les versions MySQL ne sont pas identiques.

Les méta-données peuvent être consultées via l'interface mysqli_result.

Exemple #1 Accès aux méta-données du jeu de résultats

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

$res = $mysqli->query("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
var_dump($res->fetch_fields());
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  object(stdClass)#3 (13) {
    ["name"]=>
    string(4) "_one"
    ["orgname"]=>
    string(0) ""
    ["table"]=>
    string(0) ""
    ["orgtable"]=>
    string(0) ""
    ["def"]=>
    string(0) ""
    ["db"]=>
    string(0) ""
    ["catalog"]=>
    string(3) "def"
    ["max_length"]=>
    int(1)
    ["length"]=>
    int(1)
    ["charsetnr"]=>
    int(63)
    ["flags"]=>
    int(32897)
    ["type"]=>
    int(8)
    ["decimals"]=>
    int(0)
  }
  [1]=>
  object(stdClass)#4 (13) {
    ["name"]=>
    string(4) "_two"
    ["orgname"]=>
    string(0) ""
    ["table"]=>
    string(0) ""
    ["orgtable"]=>
    string(0) ""
    ["def"]=>
    string(0) ""
    ["db"]=>
    string(0) ""
    ["catalog"]=>
    string(3) "def"
    ["max_length"]=>
    int(5)
    ["length"]=>
    int(5)
    ["charsetnr"]=>
    int(8)
    ["flags"]=>
    int(1)
    ["type"]=>
    int(253)
    ["decimals"]=>
    int(31)
  }
}

Requêtes préparées

Les méta-données des jeux de résultats créés en utilisant des requêtes préparées sont accessibles de la même façon. Un gestionnaire mysqli_result utilisable est retourné par la fonction mysqli_stmt_result_metadata().

Exemple #2 Méta-données via des requêtes préparées

<?php
$stmt = $mysqli->prepare("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
$stmt->execute();
$res = $stmt->result_metadata();
var_dump($res->fetch_fields());
?>

Voir aussi

  • mysqli::query()
  • mysqli_result::fetch_fields()


Pré-requis

Pour faire fonctionner ces fonctions, vous devez compiler PHP avec le support de l'extension MySQLi.

Note:

L'extension MySQLi est conçue pour fonctionner avec la version 4.1.13 ou plus récent, et 5.0.7 et plus récent, de MySQL. Pour les versions plus anciennes, voyez la documentation de l'extension MySQL.


Installation

L'extension mysqli a été introduite dans PHP 5.0.0. Le pilote natif MySQL (MySQL Native Driver) a été introduit dans PHP 5.3.0.

Installation sur Linux

Les distributions Linux incluent des versions binaires de PHP qui peuvent être installées. Même si ces binaires sont construits avec les extensions MySQL activées, les bibliothèques clientes doivent souvent être installées au moyen d'un paquet additionnel. Voyez si c'est le cas pour votre distribution.

A moins que votre distribution Linux ne fournisse de paquet binaire pour PHP embarquant l'extension mysqli, vous allez devoir construire PHP depuis les sources. Cela permet de préciser les extensions MySQL à embarquer, mais aussi les bibliothèques clientes de chaque extension.

Le driver natif MySQL est l'option recommandé, vu qu'il apporte un gain de performance et donne l'accès à des fonctionnalités qui ne sont pas disponibles lors de l'utilisation de la bibliothèque cliente MySQL. Reportez-vous à la section Qu'est-ce que le driver natif MySQL de PHP ? pour une brève description des avantages du driver natif MySQL.

/path/to/mysql_config représente le chemin du programme mysql_config fourni avec MySQL serveur.

Matrice de support pour la compilation mysqli
Version PHP | Défaut | Options de configuration : mysqlnd | Options de configuration : libmysqlclient | Historique
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Indisponible | --with-mysqli=/path/to/mysql_config |
5.3.x | libmysqlclient | --with-mysqli=mysqlnd | --with-mysqli=/path/to/mysql_config | mysqlnd est maintenant supporté
5.4.x | mysqlnd | --with-mysqli | --with-mysqli=/path/to/mysql_config | mysqlnd est maintenant par défaut

Notez qu'il est possible de mixer les extensions MySQL ainsi que les bibliothèques clientes. Par exemple, il est possible d'activer l'extension MySQL pour utiliser la bibliothèque cliente MySQL (libmysqlclient) tout en configurant l'extension mysqli pour utiliser le driver natif MySQL. Toutes les combinaisons d'extensions et bibliothèques clientes sont possibles.

L'exemple suivant compile l'extension MySQL pour utiliser la bibliothèque cliente MySQL, et les extensions mysqli et PDO MYSQL pour utiliser le driver natif MySQL :

./configure --with-mysql=/usr/bin/mysql_config  \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd
[autres options]

Installation sur les systèmes Windows

Sur Windows, PHP est généralement installé avec un installeur binaire.

PHP 5.0, 5.1, 5.2

Une fois PHP installé, certaines configurations demanderont l'activation de mysqli et la précision de la bibliothèque cliente à utiliser avec.

L'extension mysqli n'est pas activée par défaut, donc la DLL php_mysqli.dll doit être activée dans php.ini. Pour cela, trouvez le fichier php.ini (souvent c:\php) et enlevez le caractère de commentaire (;) devant la ligne extension=php_mysqli.dll dans la section [PHP_MYSQLI].

Aussi, si vous voulez utiliser MySQL Client Library avec mysqli, vous devez vérifier que PHP a accès à ce fichier. La MySQL Client Library est incluse dans le fichier libmysql.dll de la distribution Windows de PHP. Ce fichier doit se trouver dans le PATH de Windows pour pouvoir être chargé sans problème. Voyez la FAQ intitulée "Comment puis-je ajouter mon dossier PHP au PATH de Windows" pour plus d'informations. Copier le fichier libmysql.dll dans le dossier système de Windows fonctionne aussi (souvent c:\Windows\system) car ce dossier est par défaut présent dans le PATH de Windows. Cependant, cette pratique est hautement découragée.

Pour activer une extension PHP (telle que php_mysqli.dll), la directive PHP extension_dir doit pointer vers le dossier contenant les extensions PHP. Voyez aussi Installation manuelle sous Windows . Par exemple, extension_dir pourrait valoir c:\php\ext.

Note:

Si lorsque vous démarrez le serveur web, une erreur telle que "Unable to load dynamic library './php_mysqli.dll'" se produit, c'est que php_mysqli.dll et/ou libmysql.dll ne peut être trouvée sur le système.

PHP 5.3.0+

Sur Windows, pour PHP 5.3 ou supérieur, l'extension mysqli est activée par défaut et utilise MySQL Native Driver par défaut. Ceci signifie que vous n'avez pas à vous inquiéter au sujet de libmysql.dll.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration MySQLi
Nom | Défaut | Modifiable | Historique
mysqli.allow_local_infile | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.2.4.
mysqli.allow_persistent | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
mysqli.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
mysqli.max_links | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
mysqli.default_port | "3306" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_socket | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_host | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_user | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_pw | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.reconnect | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.5.
mysqli.rollback_on_cached_plink | TRUE | PHP_INI_SYSTEM | Disponible depuis PHP 5.6.0.
mysqli.cache_size | "2000" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Pour plus de détails et de définitions concernant les constantes PHP_INI_* ci-dessus, reportez-vous au chapitre sur les modifications de configuration.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqli.allow_local_infile integer

Autorise l'accès, depuis PHP, aux fichiers locaux chargés avec LOAD DATA

mysqli.allow_persistent integer

Active la possibilité de créer des connexions persistantes en utilisant la fonction mysqli_connect().

mysqli.persistent integer

Nombre maximal de connexions persistantes pouvant être réalisé. Par défaut, vaut 0, ce qui signifie "illimité".

mysqli.max_links entier

Le nombre maximal de connexions MySQL par processus, incluant les connexions persistantes.

mysqli.default_port integer

Le numéro par défaut de port TCP à utiliser lors de la connexion au serveur si aucun autre port n'est fourni. S'il n'est pas défini, le port sera obtenu à partir de la variable d'environnement MYSQL_TCP_PORT, l'entrée mysql-tcp dans /etc/services ou la constante de compilation MYSQL_PORT, dans cet ordre. Win32 n'utilisera que la constante MYSQL_PORT.

mysqli.default_socket string

Le nom par défaut du socket à utiliser lors des connexions locales au serveur si aucun autre nom n'est fourni.

mysqli.default_host string

Le serveur par défaut à utiliser lors de la connexion à un serveur si aucun autre hôte n'est fourni. Ne s'applique pas avec le safe mode.

mysqli.default_user string

Le nom d'utilisateur par défaut à utiliser lors de la connexion à un serveur si aucun autre nom n'est fourni. Ne s'applique pas avec le safe mode.

mysqli.default_pw string

Le mot de passe par défaut à utiliser lors de la connexion à un serveur si aucun autre mot de passe n'est fourni. Ne s'applique pas avec le safe mode.

mysqli.reconnect integer

Reconnexion automatique si la connexion est interrompue.

mysqli.rollback_on_cached_plink bool

Utilisé pour annuler les connexions et les remettre dans le pool de connexions persistentes.

mysqli.cache_size integer

Disponible uniquement avec mysqlnd.

Les utilisateurs ne peuvent changer MYSQL_OPT_READ_TIMEOUT via un appel de l'API ou au runtime. Notez que même si c'est possible, il y aura des différences sur la manière dont libmysqlclient et les flux vont interpréter la valeur de MYSQL_OPT_READ_TIMEOUT.


  • « Configuration à l'exécution
  • L'extension mysqli et les connexions persistantes »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


L'extension mysqli et les connexions persistantes

Les connexions persistantes ont été ajoutés en PHP 5.3 pour l'extension mysqli. Le support est déjà présent dans PDO_MYSQL et ext/mysql. L'idée derrière les connexions persistantes est que les connexions entre les clients et la base peuvent être réutilisés par un autre processus client, au lieu d'être détruits et recréés de nombreuses fois. Cela réduit le coût de création des connexions à chaque fois que l'une d'entre elle est requise, car les connexions sont mises en cache pour être recyclées.

Contrairement à l'extension MySQL, MySQLi ne fournit pas de fonction séparée pour ouvrir des connexions persistantes. Pour ouvrir une connexion persistante, vous devez ajouter p: au nom de l'hôte lors de la connexion.

Le problème des connexions persistantes est qu'elles peuvent être laissées dans un état imprévisible, par les clients. Par exemple, un verrou de table peut avoir été posé avant que le client ne se déconnecte inopinément. Un nouveau client va alors prendre la connexion, mais "tel quel". Il faudrait alors que le nouveau venu effectue un nettoyage en profondeur de la connexion avant de pouvoir la réutiliser sans parasitage, ce qui est un inconvénient pour le programmeur.

La connexion persistante de l'extension mysqli fournit une méthode de nettoyage automatique. Le nettoyage est effectué par mysqli et inclut :

  • L'annulation des transactions actives.

  • La fermeture et destruction des tables temporaires.

  • Le déverrouillage des tables

  • La remise à la valeur par défaut les variables de sessions

  • La libération des commandes préparées (cela arrive toujours avec PHP)

  • La fermeture du gestionnaire

  • La libération des verrous posés par GET_LOCK()

Cela assure que la connexion persistante est dans une condition correcte avant d'être remise dans le groupe de connexion, et qu'un client différent la reprenne.

L'extension mysqli effectue ce nettoyage e appelant automatiquement la fonction C mysql_change_user().

Le nettoyage automatique a ses avantages et ses inconvénients. L'avantage est que le programmeurs n'a pas besoin de s'en inquiéter, car il est appelé automatiquement. Cependant, l'inconvénient est que ce code peut éventuellement être un peu plus lent, car il doit être appelé à chaque fois que la connexion est retournée dans le groupe d'attente.

Il est possible de désactiver le nettoyage du code, en compilant PHP avec l'option MYSQLI_NO_CHANGE_USER_ON_PCONNECT.

Note:

L'extension mysqli supporte les connexions persistantes avec le MySQL Native Driver et avec la bibliothèque MySQL.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MYSQLI_READ_DEFAULT_GROUP

Lit les options dans le groupe my.cnf ou dans le fichier spécifié par MYSQLI_READ_DEFAULT_FILE

MYSQLI_READ_DEFAULT_FILE

Lit les options dans le fichier spécifié, plutôt que dans my.cnf

MYSQLI_OPT_CONNECT_TIMEOUT

Durée d'expiration de la connexion, en secondes

MYSQLI_OPT_LOCAL_INFILE

Active la commande LOAD LOCAL INFILE

MYSQLI_INIT_COMMAND

Commande à exécuter lors de la connexion au serveur MySQL. Cette commande sera exécutée automatiquement lors de la reconnexion au serveur.

MYSQLI_CLIENT_SSL

Utilise le protocole SSL (chiffrement). Cette option ne doit pas être activée par un programme : elle doit être activée en interne, par la bibliothèque MySQL.

MYSQLI_CLIENT_COMPRESS

Utilise le protocole compressé

MYSQLI_CLIENT_INTERACTIVE

Permet interactive_timeout secondes (au lieu de wait_timeout secondes) d'inactivité avant de fermer la connexion. La valeur de la variable wait_timeout du client prendra la valeur de interactive_timeout.

MYSQLI_CLIENT_IGNORE_SPACE

Permet les espaces après un nom de fonction. Cela fait de tous les noms de fonctions, des mots réservés.

MYSQLI_CLIENT_NO_SCHEMA

Interdit la syntaxe db_name.tbl_name.col_name.

MYSQLI_CLIENT_MULTI_QUERIES

Permet plusieurs requêtes séparées par un point-virgule dans un seul appel à la fonction mysqli_query().

MYSQLI_STORE_RESULT

Pour les résultats mis en tampon

MYSQLI_USE_RESULT

Pour les résultats non-mis en tampon

MYSQLI_ASSOC

Les colonnes sont retournées dans le tableau, avec leurs noms comme index.

MYSQLI_NUM

Les colonnes sont retournées dans le tableau, avec leurs numéros comme index.

MYSQLI_BOTH

Les colonnes sont retournées dans le tableau, avec leurs noms et leurs numéros comme index.

MYSQLI_NOT_NULL_FLAG

Indique qu'un champ est défini comme NOT NULL

MYSQLI_PRI_KEY_FLAG

Le champ est une clé primaire

MYSQLI_UNIQUE_KEY_FLAG

Le champ est un index unique

MYSQLI_MULTIPLE_KEY_FLAG

Le champ fait partie d'un index

MYSQLI_BLOB_FLAG

Le champ est de type BLOB

MYSQLI_UNSIGNED_FLAG

Le champ est de type UNSIGNED

MYSQLI_ZEROFILL_FLAG

Le champ est de type ZEROFILL

MYSQLI_AUTO_INCREMENT_FLAG

Le champ est de type AUTO_INCREMENT

MYSQLI_TIMESTAMP_FLAG

Le champ est de type TIMESTAMP

MYSQLI_SET_FLAG

Le champ est de type SET

MYSQLI_NUM_FLAG

Le champ est de type NUMERIC

MYSQLI_PART_KEY_FLAG

Le champ fait partie d'un index multiple

MYSQLI_GROUP_FLAG

Le champ fait partie de la clause GROUP BY

MYSQLI_TYPE_DECIMAL

Le champ est de type DECIMAL

MYSQLI_TYPE_NEWDECIMAL

Le champ est de type DECIMAL ou NUMERIC (MySQL 5.0.3 et supérieur)

MYSQLI_TYPE_BIT

Le champ est de type BIT (MySQL 5.0.3 et supérieur)

MYSQLI_TYPE_TINY

Le champ est de type TINYINT

MYSQLI_TYPE_SHORT

Le champ est de type SMALLINT

MYSQLI_TYPE_LONG

Le champ est de type INT

MYSQLI_TYPE_FLOAT

Le champ est de type FLOAT

MYSQLI_TYPE_DOUBLE

Le champ est de type DOUBLE

MYSQLI_TYPE_NULL

Le champ est de type DEFAULT NULL

MYSQLI_TYPE_TIMESTAMP

Le champ est de type TIMESTAMP

MYSQLI_TYPE_LONGLONG

Le champ est de type BIGINT

MYSQLI_TYPE_INT24

Le champ est de type MEDIUMINT

MYSQLI_TYPE_DATE

Le champ est de type DATE

MYSQLI_TYPE_TIME

Le champ est de type TIME

MYSQLI_TYPE_DATETIME

Le champ est de type DATETIME

MYSQLI_TYPE_YEAR

Le champ est de type YEAR

MYSQLI_TYPE_NEWDATE

Le champ est de type DATE

MYSQLI_TYPE_INTERVAL

Le champ est de type INTERVAL

MYSQLI_TYPE_ENUM

Le champ est de type ENUM

MYSQLI_TYPE_SET

Le champ est de type SET

MYSQLI_TYPE_TINY_BLOB

Le champ est de type TINYBLOB

MYSQLI_TYPE_MEDIUM_BLOB

Le champ est de type MEDIUMBLOB

MYSQLI_TYPE_LONG_BLOB

Le champ est de type LONGBLOB

MYSQLI_TYPE_BLOB

Le champ est de type BLOB

MYSQLI_TYPE_VAR_STRING

Le champ est de type VARCHAR

MYSQLI_TYPE_STRING

Le champ est de type STRING ou BINARY

MYSQLI_TYPE_CHAR

Le champ est de type TINYINT. Pour CHAR, voir MYSQLI_TYPE_STRING

MYSQLI_TYPE_GEOMETRY

Le champ est de type GEOMETRY

MYSQLI_NEED_DATA

Il reste des variables à relier

MYSQLI_NO_DATA

Il n'y a plus de variables à relier

MYSQLI_DATA_TRUNCATED

Les données ont été tronquées. Disponible depuis PHP 5.1.0 et MySQL 5.0.5.

MYSQLI_ENUM_FLAG

Le champ est défini comme ENUM. Disponible depuis PHP 5.3.0.

MYSQLI_BINARY_FLAG

Le champ est défini comme BINARY. Disponible depuis PHP 5.3.0.

MYSQLI_CURSOR_TYPE_FOR_UPDATE

MYSQLI_CURSOR_TYPE_NO_CURSOR

MYSQLI_CURSOR_TYPE_READ_ONLY

MYSQLI_CURSOR_TYPE_SCROLLABLE

MYSQLI_STMT_ATTR_CURSOR_TYPE

MYSQLI_STMT_ATTR_PREFETCH_ROWS

MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH

MYSQLI_SET_CHARSET_NAME

MYSQLI_REPORT_INDEX

Rapporté si un mauvais index ou aucun index n'est utilisé dans une requête.

MYSQLI_REPORT_ERROR

Rapporte les erreurs depuis des appels aux fonctions mysqli.

MYSQLI_REPORT_STRICT

Lance une exception mysqli_sql_exception pour les erreurs au lieu d'alertes.

MYSQLI_REPORT_ALL

Active toutes les options.

MYSQLI_REPORT_OFF

Désactive toutes les options.

MYSQLI_DEBUG_TRACE_ENABLED

Définit à 1 si la fonctionnalité mysqli_debug() est désactivée.

MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED

MYSQLI_SERVER_QUERY_NO_INDEX_USED

MYSQLI_REFRESH_GRANT

Rafraîchie les tables GRANT.

MYSQLI_REFRESH_LOG

Vide les logs, identique à exécuter la requête SQL FLUSH LOGS.

MYSQLI_REFRESH_TABLES

Vide le cache des tables, identique à exécuter la requête SQL FLUSH TABLES.

MYSQLI_REFRESH_HOSTS

Vide le cache des hôtes, identique à exécuter la requête SQL FLUSH HOSTS.

MYSQLI_REFRESH_STATUS

Réinitialise le statut des variables, identique à exécuter la requête SQL FLUSH STATUS.

MYSQLI_REFRESH_THREADS

Vide le cache des threads.

MYSQLI_REFRESH_SLAVE

Sur un serveur esclave de réplication : réinitialise les informations du serveur maître, et redémarre l'esclave. Identique à exécuter la requête SQL RESET SLAVE.

MYSQLI_REFRESH_MASTER

Sur un serveur maître de réplication : supprime les fichiers binaires de logs listés dans l'index binaire des logs, et tronque le fichier index. Identique à exécuter la requête SQL RESET MASTER.

MYSQLI_TRANS_COR_AND_CHAIN

Ajout de "AND CHAIN" à mysqli_commit() ou mysqli_rollback().

MYSQLI_TRANS_COR_AND_NO_CHAIN

Ajout de "AND NO CHAIN" à mysqli_commit() ou mysqli_rollback().

MYSQLI_TRANS_COR_RELEASE

Ajout de "RELEASE" à mysqli_commit() ou mysqli_rollback().

MYSQLI_TRANS_COR_NO_RELEASE

Ajout de "NO RELEASE" à mysqli_commit() ou mysqli_rollback().


Notes

Quelques notes sur l'implémentation :

  1. Le support de MYSQL_TYPE_GEOMETRY a été ajouté à l'extension MySQLI en PHP 5.3.

  2. Notez qu'il y a des différences internes d'implémentations entre libmysqlclient et mysqlnd pour gérer les colonnes de type MYSQL_TYPE_GEOMETRY. D'un point de vue général, mysqlnd alloue beaucoup moins de mémoire. Par exemple, s'il y a une colonne de type POINT dans le jeu de résultats, libmysqlclient allouera environ 4GB de RAM alors qu'il ne faut que 50 octets pour gérer une colonne de type POINT en mémoire. L'allocation mémoire est encore plus faible que 50 octets lors de l'utilisation de mysqlnd.


Sommaire des fonctions de l'extension MySQLi

  • « Notes
  • Exemples »
  • PHP Manual
  • MySQLi
  • Sommaire des fonctions de l'extension MySQLi
Sommaire des fonctions de l'extension MySQLi
Classe mysqli
Interface POO | Interface procédural | Alias (Ne plus utiliser) | Description
Propriétés
$mysqli::affected_rows | mysqli_affected_rows() | N/A | Retourne le nombre de lignes affectées par la dernière opération MySQL
$mysqli::client_info | mysqli_get_client_info() | N/A | Retourne la version du client MySQL sous la forme d'une chaîne de caractères
$mysqli::client_version | mysqli_get_client_version() | N/A | Retourne l'information sur la version du client MySQL sous la forme d'un entier
$mysqli::connect_errno | mysqli_connect_errno() | N/A | Retourne le code d'erreur de la connexion MySQL
$mysqli::connect_error | mysqli_connect_error() | N/A | Retourne le message d'erreur de la connexion MySQL
$mysqli::errno | mysqli_errno() | N/A | Retourne le code d'erreur de connexion MySQL
$mysqli::error | mysqli_error() | N/A | Retourne le message d'erreur de connexion MySQL
$mysqli::field_count | mysqli_field_count() | N/A | Retourne le nombre de colonnes pour la dernière requête
$mysqli::host_info | mysqli_get_host_info() | N/A | Retourne une chaîne contenant le type de connexion utilisée
$mysqli::protocol_version | mysqli_get_proto_info() | N/A | Retourne la version du protocole MySQL utilisé
$mysqli::server_info | mysqli_get_server_info() | N/A | Retourne un entier représentant la version du serveur MySQL
$mysqli::server_version | mysqli_get_server_version() | N/A | Retourne la version du serveur MySQL
$mysqli::info | mysqli_info() | N/A | Retourne des informations à propos de la dernière requête exécutée
$mysqli::insert_id | mysqli_insert_id() | N/A | Retourne l'identifiant automatiquement généré par la dernière requête
$mysqli::sqlstate | mysqli_sqlstate() | N/A | Retourne l'erreur SQLSTATE de la dernière opération MySQL
$mysqli::warning_count | mysqli_warning_count() | N/A | Retourne le nombre d'avertissements générés par la dernière requête
Méthodes
mysqli::autocommit() | mysqli_autocommit() | N/A | Active ou désactive le mode auto-commit
mysqli::change_user() | mysqli_change_user() | N/A | Change l'utilisateur de la connexion spécifiée
mysqli::character_set_name(), mysqli->client_encoding | mysqli_character_set_name() | mysqli_client_encoding() | Retourne le jeu de caractères courant pour la connexion
mysqli::close() | mysqli_close() | N/A | Ferme une connexion
mysqli::commit() | mysqli_commit() | N/A | Valide la transaction courante
mysqli::__construct() | mysqli_connect() | N/A | Ouvre une connexion à un serveur MySQL
mysqli::debug() | mysqli_debug() | N/A | Effectue des actions de déboguage
mysqli::dump_debug_info() | mysqli_dump_debug_info() | N/A | Écrit les informations de déboguage dans les logs
mysqli::get_charset() | mysqli_get_charset() | N/A | Retourne un objet représentant le jeu de caractères
mysqli::get_connection_stats() | mysqli_get_connection_stats() | N/A | Retourne des statistiques sur la connexion du client. Disponible uniquement avec mysqlnd.
mysqli::get_client_info() | mysqli_get_client_info() | N/A | Retourne une chaîne contenant la version du client MySQL
mysqli::get_client_stats() | mysqli_get_client_stats() | N/A | Retourne les statistiques du client MySQL. Disponible uniquement avec mysqlnd.
mysqli::get_cache_stats() | mysqli_get_cache_stats() | N/A | Retourne les statistiques de cache Zval. Disponible uniquement avec mysqlnd.
mysqli::get_server_info() | mysqli_get_server_info() | N/A | Non documenté
mysqli::get_warnings() | mysqli_get_warnings() | N/A | Non documenté
mysqli::init() | mysqli_init() | N/A | Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()
mysqli::kill() | mysqli_kill() | N/A | Demande au serveur de terminer un thread MySQL
mysqli::more_results() | mysqli_more_results() | N/A | Vérifie s'il y a d'autres jeux de résultats MySQL disponibles
mysqli::multi_query() | mysqli_multi_query() | N/A | Exécute une requête MySQL multiple
mysqli::next_result() | mysqli_next_result() | N/A | Prépare le prochain résultat d'une requête multiple
mysqli::options() | mysqli_options() | mysqli_set_opt() | Définit les options
mysqli::ping() | mysqli_ping() | N/A | Ping la connexion au serveur et reconnecte si elle n'existe plus
mysqli::prepare() | mysqli_prepare() | N/A | Prépare une requête SQL pour l'exécution
mysqli::query() | mysqli_query() | N/A | Exécute une requête sur la base de données
mysqli::real_connect() | mysqli_real_connect() | N/A | Ouvre une connexion à un serveur MySQL
mysqli::real_escape_string(), mysqli::escape_string() | mysqli_real_escape_string() | mysqli_escape_string() | Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête
mysqli::real_query() | mysqli_real_query() | N/A | Exécute une requête SQL
mysqli::refresh() | mysqli_refresh() | N/A | Ré-initialise les tables ou les caches, ou ré-initialisation les informations de réplication du serveur
mysqli::rollback() | mysqli_rollback() | N/A | Annule la transaction courante
mysqli::select_db() | mysqli_select_db() | N/A | Sélectionne une base de données par défaut pour les requêtes
mysqli::set_charset() | mysqli_set_charset() | N/A | Définit le jeu de caractères par défaut du client
mysqli::set_local_infile_default() | mysqli_set_local_infile_default() | N/A | Rétablit le gestionnaire par défaut pour la commande LOAD LOCAL INFILE
mysqli::set_local_infile_handler() | mysqli_set_local_infile_handler() | N/A | Définit une fonction de rappel pour la commande LOAD DATA LOCAL INFILE
mysqli::ssl_set() | mysqli_ssl_set() | N/A | Utilisée pour établir une connexion sécurisée avec SSL
mysqli::stat() | mysqli_stat() | N/A | Obtient le statut courant du système
mysqli::stmt_init() | mysqli_stmt_init() | N/A | Initialise une commande MySQL
mysqli::store_result() | mysqli_store_result() | N/A | Transfère un jeu de résultats à partir de la dernière requête
mysqli::thread_id() | mysqli_thread_id() | N/A | Retourne l'identifiant du thread pour la connexion courante
mysqli::thread_safe() | mysqli_thread_safe() | N/A | Indique si le support des threads est activé ou pas
mysqli::use_result() | mysqli_use_result() | N/A | Initialise la récupération d'un jeu de résultats
Résumé des méthodes mysqli_stmt
MySQL_STMT
Interface POO | Interface procédural | Alias (Ne plus utiliser) | Description
Propriétés
$mysqli_stmt::affected_rows | mysqli_stmt_affected_rows() | N/A | Le nombre total de lignes modifiées, effacées ou insérées par la dernière
$mysqli_stmt::errno | mysqli_stmt_errno() | N/A | Le code erreur de la dernière requête
$mysqli_stmt::error | mysqli_stmt_error() | N/A | Le message d'erreur de la dernière requête
$mysqli_stmt::field_count | mysqli_stmt_field_count() | N/A | Le nombre de champs présent dans la requête donnée
$mysqli_stmt::insert_id | mysqli_stmt_insert_id() | N/A | L'ID généré par la dernière requête INSERT
$mysqli_stmt::num_rows | mysqli_stmt_num_rows() | N/A | Le nombre de lignes d'un résultat MySQL
$mysqli_stmt::param_count | mysqli_stmt_param_count() | mysqli_param_count() | Le nombre de paramètre d'une commande SQL
$mysqli_stmt::sqlstate | mysqli_stmt_sqlstate() | N/A | Le code SQLSTATE de la dernière opération MySQL
Méthodes
mysqli_stmt::attr_get() | mysqli_stmt_attr_get() | N/A | Récupère la valeur courante d'un attribut de requête
mysqli_stmt::attr_set() | mysqli_stmt_attr_set() | N/A | Modifie le comportement d'une requête préparée
mysqli_stmt::bind_param() | mysqli_stmt_bind_param() | mysqli_bind_param() | Lie des variables à une requête MySQL
mysqli_stmt::bind_result() | mysqli_stmt_bind_result() | mysqli_bind_result() | Lie des variables à un jeu de résultats
mysqli_stmt::close() | mysqli_stmt_close() | N/A | Termine une requête préparée
mysqli_stmt::data_seek() | mysqli_stmt_data_seek() | N/A | Déplace le pointeur de résultat
mysqli_stmt::execute() | mysqli_stmt_execute() | mysqli_execute() | Exécute une requête préparée
mysqli_stmt::fetch() | mysqli_stmt_fetch() | mysqli_fetch() | Lit des résultats depuis une requête MySQL préparée dans des variables liées
mysqli_stmt::free_result() | mysqli_stmt_free_result() | N/A | Libère le résultat MySQL de la mémoire
mysqli_stmt::get_result() | mysqli_stmt_get_result() | N/A | Récupère le jeu de résultats depuis une requête préparée. Disponible uniquement avec mysqlnd.
mysqli_stmt::get_warnings() | mysqli_stmt_get_warnings() | N/A | Non documenté
$mysqli_stmt::more_results() | mysqli_stmt_more_results() | N/A | Non documenté. Disponible uniquement avec mysqlnd.
$mysqli_stmt::next_result() | mysqli_stmt_next_result() | N/A | Non documenté. Disponible uniquement avec mysqlnd.
mysqli_stmt::num_rows() | mysqli_stmt_num_rows() | N/A | Voir aussi la propriété $mysqli_stmt->num_rows
mysqli_stmt::prepare() | mysqli_stmt_prepare() | N/A | Prépare une requête SQL pour l'exécution
mysqli_stmt::reset() | mysqli_stmt_reset() | N/A | Annule une requête préparée
mysqli_stmt::result_metadata() | mysqli_stmt_result_metadata() | mysqli_get_metadata() | Retourne les métadonnées de préparation de requête MySQL
mysqli_stmt::send_long_data() | mysqli_stmt_send_long_data() | mysqli_send_long_data() | Envoie des données MySQL par paquets
mysqli_stmt::store_result() | mysqli_stmt_store_result() | N/A | Stocke un jeu de résultats depuis une requête préparée
Résumé des méthodes mysqli_result
mysqli_result
Interface POO | Interface procédural | Alias (Ne plus utiliser) | Description
Propriétés
$mysqli_result::current_field | mysqli_field_tell() | N/A | La position courante d'un champ dans un pointeur de résultat
$mysqli_result::field_count | mysqli_num_fields() | N/A | Le nombre de champs dans un résultat
$mysqli_result::lengths | mysqli_fetch_lengths() | N/A | Les tailles des champs dans un résultat
$mysqli_result::num_rows | mysqli_num_rows() | N/A | Le nombre de lignes dans un résultat
Méthodes
mysqli_result::data_seek() | mysqli_data_seek() | N/A | Déplace le pointeur interne de résultat
mysqli_result::fetch_all() | mysqli_fetch_all() | N/A | Lit toutes les lignes de résultats dans un tableau associatif, numérique, ou les deux. Disponible uniquement avec mysqlnd.
mysqli_result::fetch_array() | mysqli_fetch_array() | N/A | Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
mysqli_result::fetch_assoc() | mysqli_fetch_assoc() | N/A | Récupère une ligne de résultat sous forme de tableau associatif
mysqli_result::fetch_field_direct() | mysqli_fetch_field_direct() | N/A | Récupère les métadonnées d'un champ unique
mysqli_result::fetch_field() | mysqli_fetch_field() | N/A | Retourne le prochain champs dans le jeu de résultats
mysqli_result::fetch_fields() | mysqli_fetch_fields() | N/A | Retourne un tableau d'objets représentant les champs dans le résultat
mysqli_result::fetch_object() | mysqli_fetch_object() | N/A | Retourne la ligne courante d'un jeu de résultat sous forme d'objet
mysqli_result::fetch_row() | mysqli_fetch_row() | N/A | Récupère une ligne de résultat sous forme de tableau indexé
mysqli_result::field_seek() | mysqli_field_seek() | N/A | Déplace le pointeur de résultat sur le champ spécifié
mysqli_result::free(), mysqli_result::close, mysqli_result::free_result | mysqli_free_result() | N/A | Libère la mémoire associée à un résultat
Résumé des méthodes mysqli_driver
MySQL_Driver
Interface POO | Interface procédural | Alias (Ne plus utiliser) | Description
Propriétés
N/A
Méthodes
mysqli_driver::embedded_server_end() | mysqli_embedded_server_end() | N/A | Non documenté
mysqli_driver::embedded_server_start() | mysqli_embedded_server_start() | N/A | Non documenté

Note:

Les alias sont fournies pour assurer la compatibilité ascendante. Ne les utilisez pas dans de nouveaux projets.


  • « Sommaire des fonctions de l'extension MySQLi
  • MySQLi extension basic examples »
  • PHP Manual
  • MySQLi
  • Exemples

Exemples

Sommaire

  • MySQLi extension basic examples


MySQLi extension basic examples

This example shows how to connect, execute a query, use basic error handling, print resulting rows, and disconnect from a MySQL database.

This example uses the freely available Sakila database that can be downloaded from » dev.mysql.com, as described here. To get this example to work, (a) install sakila and (b) modify the connection variables (host, your_user, your_pass).

Exemple #1 MySQLi extension overview example

<?php
// Let's pass in a $_GET variable to our example, in this case
// it's aid for actor_id in our Sakila database. Let's make it
// default to 1, and cast it to an integer as to avoid SQL injection
// and/or related security problems. Handling all of this goes beyond
// the scope of this simple example. Example:
//   http://example.org/script.php?aid=42
if (isset($_GET['aid']) && is_numeric($_GET['aid'])) {
    $aid = (int) $_GET['aid'];
} else {
    $aid = 1;
}

// Connecting to and selecting a MySQL database named sakila
// Hostname: 127.0.0.1, username: your_user, password: your_pass, db: sakila
$mysqli = new mysqli('127.0.0.1', 'your_user', 'your_pass', 'sakila');

// Oh no! A connect_errno exists so the connection attempt failed!
if ($mysqli->connect_errno) {
    // The connection failed. What do you want to do?
    // You could contact yourself (email?), log the error, show a nice page, etc.
    // You do not want to reveal sensitive information

    // Let's try this:
    echo "Sorry, this website is experiencing problems.";

    // Something you should not do on a public site, but this example will show you
    // anyways, is print out MySQL error related information -- you might log this
    echo "Error: Failed to make a MySQL connection, here is why: \n";
    echo "Errno: " . $mysqli->connect_errno . "\n";
    echo "Error: " . $mysqli->connect_error . "\n";

    // You might want to show them something nice, but we will simply exit
    exit;
}

// Perform an SQL query
$sql = "SELECT actor_id, first_name, last_name FROM actor WHERE actor_id = $aid";
if (!$result = $mysqli->query($sql)) {
    // Oh no! The query failed.
    echo "Sorry, the website is experiencing problems.";

    // Again, do not do this on a public site, but we'll show you how
    // to get the error information
    echo "Error: Our query failed to execute and here is why: \n";
    echo "Query: " . $sql . "\n";
    echo "Errno: " . $mysqli->errno . "\n";
    echo "Error: " . $mysqli->error . "\n";
    exit;
}

// Phew, we made it. We know our MySQL connection and query
// succeeded, but do we have a result?
if ($result->num_rows === 0) {
    // Oh, no rows! Sometimes that's expected and okay, sometimes
    // it is not. You decide. In this case, maybe actor_id was too
    // large?
    echo "We could not find a match for ID $aid, sorry about that. Please try again.";
    exit;
}

// Now, we know only one result will exist in this example so let's
// fetch it into an associated array where the array's keys are the
// table's column names
$actor = $result->fetch_assoc();
echo "Sometimes I see " . $actor['first_name'] . " " . $actor['last_name'] . " on TV.";

// Now, let's fetch five random actors and output their names to a list.
// We'll add less error handling here as you can do that on your own now
$sql = "SELECT actor_id, first_name, last_name FROM actor ORDER BY rand() LIMIT 5";
if (!$result = $mysqli->query($sql)) {
    echo "Sorry, the website is experiencing problems.";
    exit;
}

// Print our 5 random actors in a list, and link to each actor
echo "<ul>\n";
while ($actor = $result->fetch_assoc()) {
    echo "<li><a href='" . $_SERVER['SCRIPT_FILENAME'] . "?aid=" . $actor['actor_id'] . "'>\n";
    echo $actor['first_name'] . ' ' . $actor['last_name'];
    echo "</a></li>\n";
}
echo "</ul>\n";

// The script will automatically free the result and close the MySQL
// connection when it exits, but let's just do it anyways
$result->free();
$mysqli->close();
?>


La classe mysqli

(PHP 5, PHP 7)

Introduction

Représente une connexion entre PHP et une base de données MySQL.

Synopsis de la classe

mysqli {
/* Propriétés */
int $affected_rows;
string $client_info;
int $client_version;
int $connect_errno;
string $connect_error;
int $errno;
array $error_list;
string $error;
int $field_count;
int $client_version;
string $host_info;
string $protocol_version;
string $server_info;
int $server_version;
string $info;
mixed $insert_id;
string $sqlstate;
int $thread_id;
int $warning_count;
/* Méthodes */
 __construct
  ([ string $host = ini_get("mysqli.default_host")
 [, string $username = ini_get("mysqli.default_user")
 [, string $passwd = ini_get("mysqli.default_pw")
 [, string $dbname = ""
 [, int $port = ini_get("mysqli.default_port")
 [, string $socket = ini_get("mysqli.default_socket")
]]]]]] )
bool autocommit ( bool $mode )
bool change_user ( string $user , string $password , string $database )
string character_set_name ( void )
bool close ( void )
bool commit ([ int $flags [, string $name ]] )
bool debug ( string $message )
bool dump_debug_info ( void )
object get_charset ( void )
string get_client_info ( void )
bool get_connection_stats ( void )
mysqli_warning get_warnings ( void )
mysqli init ( void )
bool kill ( int $processid )
bool more_results ( void )
bool multi_query ( string $query )
bool next_result ( void )
bool options ( int $option , mixed $value )
bool ping ( void )
public static int poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] )
mysqli_stmt prepare ( string $query )
mixed query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
bool real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )
string escape_string ( string $escapestr )
bool real_query ( string $query )
public mysqli_result reap_async_query ( void )
public bool refresh ( int $options )
bool rollback ([ int $flags [, string $name ]] )
int rpl_query_type ( string $query )
bool select_db ( string $dbname )
bool send_query ( string $query )
bool set_charset ( string $charset )
bool set_local_infile_handler ( mysqli $link , callable $read_func )
bool ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher )
string stat ( void )
mysqli_stmt stmt_init ( void )
mysqli_result store_result ([ int $option ] )
mysqli_result use_result ( void )
}

Sommaire

  • mysqli::$affected_rows — Retourne le nombre de lignes affectées par la dernière opération MySQL
  • mysqli::autocommit — Active ou désactive le mode auto-commit
  • mysqli::begin_transaction — Démarre une transaction
  • mysqli::change_user — Change l'utilisateur de la connexion spécifiée
  • mysqli::character_set_name — Retourne le jeu de caractères courant pour la connexion
  • mysqli::$client_info — Récupère les informations du client MySQL
  • mysqli::$client_version — Retourne la version du client MySQL sous la forme d'une chaîne de caractères
  • mysqli::close — Ferme une connexion
  • mysqli::commit — Valide la transaction courante
  • mysqli::$connect_errno — Retourne le code d'erreur de la connexion MySQL
  • mysqli::$connect_error — Retourne le message d'erreur de connexion MySQL
  • mysqli::__construct — Ouvre une connexion à un serveur MySQL
  • mysqli::debug — Effectue des actions de déboguage
  • mysqli::dump_debug_info — Écrit les informations de déboguage dans les logs
  • mysqli::$errno — Retourne le dernier code d'erreur produit
  • mysqli::$error_list — Retourne une liste d'erreur depuis la dernière commande exécutée
  • mysqli::$error — Retourne une chaîne décrivant la dernière erreur
  • mysqli::$field_count — Retourne le nombre de colonnes pour la dernière requête
  • mysqli::get_charset — Retourne un objet représentant le jeu de caractères
  • mysqli::get_client_info — Récupère des informations sur le client MySQL
  • mysqli_get_client_stats — Retournes des statistiques sur le client, par processus
  • mysqli_get_client_version — Retourne la version du client MySQL sous forme d'un entier
  • mysqli::get_connection_stats — Retourne des statistiques sur la connexion
  • mysqli::$host_info — Retourne une chaîne contenant le type de connexion utilisée
  • mysqli::$protocol_version — Retourne la version du protocole MySQL utilisé
  • mysqli::$server_info — Retourne la version du serveur MySQL
  • mysqli::$server_version — Retourne un entier représentant la version du serveur MySQL
  • mysqli::get_warnings — Lit le résultat de SHOW WARNINGS
  • mysqli::$info — Retourne des informations à propos de la dernière requête exécutée
  • mysqli::init — Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()
  • mysqli::$insert_id — Retourne l'identifiant automatiquement généré par la dernière requête
  • mysqli::kill — Demande au serveur de terminer un thread MySQL
  • mysqli::more_results — Vérifie s'il y a d'autres jeux de résultats MySQL disponibles
  • mysqli::multi_query — Exécute une requête MySQL multiple
  • mysqli::next_result — Prépare le prochain résultat d'une requête multiple
  • mysqli::options — Définit les options
  • mysqli::ping — Ping la connexion au serveur et reconnecte si elle n'existe plus
  • mysqli::poll — Vérifie l'état de la connexion
  • mysqli::prepare — Prépare une requête SQL pour l'exécution
  • mysqli::query — Exécute une requête sur la base de données
  • mysqli::real_connect — Ouvre une connexion à un serveur MySQL
  • mysqli::real_escape_string — Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion
  • mysqli::real_query — Exécute une requête SQL
  • mysqli::reap_async_query — Lit un résultat pour une requête asynchrone
  • mysqli::refresh — Rafraîchie
  • mysqli::release_savepoint — Supprime le point de sauvegardé nommé du jeu des points de sauvegarde de la transaction courante
  • mysqli::rollback — Annule la transaction courante
  • mysqli::rpl_query_type — Retourne le type de requête RPL
  • mysqli::savepoint — Défini un point de sauvegarde nommé de la transaction
  • mysqli::select_db — Sélectionne une base de données par défaut pour les requêtes
  • mysqli::send_query — Envoie la requête et retourne
  • mysqli::set_charset — Définit le jeu de caractères par défaut du client
  • mysqli::set_local_infile_default — Rétablit le gestionnaire par défaut pour la commande LOAD LOCAL INFILE
  • mysqli::set_local_infile_handler — Définit une fonction de rappel pour la commande LOAD DATA LOCAL INFILE
  • mysqli::$sqlstate — Retourne l'erreur SQLSTATE de la dernière opération MySQL
  • mysqli::ssl_set — Utilisée pour établir une connexion sécurisée avec SSL
  • mysqli::stat — Obtient le statut courant du système
  • mysqli::stmt_init — Initialise une commande MySQL
  • mysqli::store_result — Transfère un jeu de résultats à partir de la dernière requête
  • mysqli::$thread_id — Retourne l'identifiant du thread pour la connexion courante
  • mysqli::thread_safe — Indique si le support des threads est activé ou pas
  • mysqli::use_result — Initialise la récupération d'un jeu de résultats
  • mysqli::$warning_count — Retourne le nombre d'avertissements générés par la dernière requête


Retourne le nombre de lignes affectées par la dernière opération MySQL

  • « mysqli
  • mysqli::autocommit »
  • PHP Manual
  • mysqli
  • Retourne le nombre de lignes affectées par la dernière opération MySQL

mysqli::$affected_rows

mysqli_affected_rows

(PHP 5, PHP 7)

mysqli::$affected_rows -- mysqli_affected_rows — Retourne le nombre de lignes affectées par la dernière opération MySQL

Description

Style orienté objet

int $mysqli->affected_rows;

Style procédural

int mysqli_affected_rows ( mysqli $link )

Retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE, REPLACE ou DELETE associée au paramètre link.

Pour les requêtes de sélection, la fonction mysqli_affected_rows() fonctionne de la même façon que la fonction mysqli_num_rows().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Un entier plus grand que zéro indique le nombre de lignes affectées ou recherchées. Zéro indique qu'aucun enregistrement n'a été modifié par une requête du type UPDATE, aucune ligne ne correspond à la clause WHERE dans la requête ou bien qu'aucune requête n'a été exécutée. -1 indique que la requête a retourné une erreur.

Note:

Si le nombre de lignes affectées est plus grand que la valeur maximale ( PHP_INT_MAX ) que peut prendre un entier, le nombre de lignes affectées sera retourné en tant que chaîne de caractères.

Exemples

Exemple #1 Exemple avec $mysqli->affected_rows

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Erreur de connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Insertion d'une ligne */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Nombre de lignes affectées (INSERT): %d\n", $mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0");

/* Modification d'une ligne */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Nombre de lignes affectées (UPDATE): %d\n", $mysqli->affected_rows);

/* Effacement d'une ligne */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Nombre de lignes affectées (DELETE): %d\n", $mysqli->affected_rows);

/* Sélection de toutes les lignes */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Nombre de lignes affectées (SELECT): %d\n", $mysqli->affected_rows);

$result->close();

/* Delete table Language */
$mysqli->query("DROP TABLE Language");

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Connexion impossible à localhost. Erreur : %s\n", mysqli_connect_error());
    exit();
}

/* Insertion d'une ligne */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Nombre de lignes affectées (INSERT): %d\n", mysqli_affected_rows($link));

mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");

/* Modification d'une ligne */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Nombre de lignes affectées (UPDATE): %d\n", mysqli_affected_rows($link));

/* Effacement d'une ligne */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Nombre de lignes affectées (DELETE): %d\n", mysqli_affected_rows($link));

/* Selection de toutes les lignes */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Nombre de lignes affectées (SELECT): %d\n", mysqli_affected_rows($link));

mysqli_free_result($result);

/* Effacement de la table "language" */
mysqli_query($link, "DROP TABLE Language");

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Nombre de lignes affectées (INSERT): 984
Nombre de lignes affectées (UPDATE): 168
Nombre de lignes affectées (DELETE): 815
Nombre de lignes affectées (SELECT): 169

Voir aussi

  • mysqli_num_rows() - Retourne le nombre de lignes dans un résultat
  • mysqli_info() - Retourne des informations à propos de la dernière requête exécutée


Active ou désactive le mode auto-commit

  • « mysqli::$affected_rows
  • mysqli::begin_transaction »
  • PHP Manual
  • mysqli
  • Active ou désactive le mode auto-commit

mysqli::autocommit

mysqli_autocommit

(PHP 5, PHP 7)

mysqli::autocommit -- mysqli_autocommit — Active ou désactive le mode auto-commit

Description

Style orienté objet

bool mysqli::autocommit ( bool $mode )

Style procédural

bool mysqli_autocommit ( mysqli $link , bool $mode )

Active ou désactive le mode auto-commit pour les requêtes sur la connexion.

Pour vérifier l'état de l'auto-commit, utilisez la commande SQL SELECT @@autocommit.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

mode

Si l'on doit activer ou non l'auto-commit.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Cette fonction ne fonctionne pas avec les types de tables non transactionnelles, comme MyISAM ou ISAM.

Exemples

Exemple #1 Exemple avec mysqli::autocommit()

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Échec de la connexion. Erreur : %s\n", mysqli_connect_error());
    exit();
}

/* Activation de l'autocommit */
$mysqli->autocommit(TRUE);

if ($result = $mysqli->query("SELECT @@autocommit")) {
    $row = $result->fetch_row();
    printf("L'autocommit vaut %s\n", $row[0]);
    $result->free();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Échec de la connexion. Erreur : %s\n", mysqli_connect_error());
    exit();
}

/* Activation de l'autocommit */
mysqli_autocommit($link, TRUE);

if ($result = mysqli_query($link, "SELECT @@autocommit")) {
    $row = mysqli_fetch_row($result);
    printf("L'autocommit vaut %s\n", $row[0]);
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

L'autocommit vaut 1

Voir aussi

  • mysqli_begin_transaction() - Démarre une transaction
  • mysqli_commit() - Valide la transaction courante
  • mysqli_rollback() - Annule la transaction courante


Démarre une transaction

  • « mysqli::autocommit
  • mysqli::change_user »
  • PHP Manual
  • mysqli
  • Démarre une transaction

mysqli::begin_transaction

mysqli_begin_transaction

(PHP 5 >= 5.5.0, PHP 7)

mysqli::begin_transaction -- mysqli_begin_transaction — Démarre une transaction

Description

Style orienté objet (method):

public bool mysqli::begin_transaction ([ int $flags [, string $name ]] )

Style procédural:

bool mysqli_begin_transaction ( mysqli $link [, int $flags [, string $name ]] )

Commence une transaction. Requiert MySQL 5.6 et suivants, et le moteur InnoDB (il est actif par défaut). Pour plus de détails sur le fonctionnement des transactions MySQL, voir » http://dev.mysql.com/doc/mysql/en/commit.html.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

flags

Les drapeaux valides sont :

  • MYSQLI_TRANS_START_READ_ONLY : Commence la transaction comme "START TRANSACTION READ ONLY".

  • MYSQLI_TRANS_START_READ_WRITE : Commence la transaction comme "START TRANSACTION READ WRITE".

  • MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT : Commence la transaction comme "START TRANSACTION WITH CONSISTENT SNAPSHOT".

name

Nom du point de sauvegarde pour la transaction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec $mysqli->begin_transaction()

Style orienté objet

<?php
$mysqli = new mysqli("127.0.0.1", "my_user", "my_password", "sakila");

if ($mysqli->connect_errno) {
    printf("Echec de la connexion : %s\n", $mysqli->connect_error);
    exit();
}

$mysqli->begin_transaction(MYSQLI_TRANS_START_READ_ONLY);

$mysqli->query("SELECT first_name, last_name FROM actor");
$mysqli->commit();

$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");

if (mysqli_connect_errno()) {
    printf("Echec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

mysqli_begin_transaction($link, MYSQLI_TRANS_START_READ_ONLY);

mysqli_query($link, "SELECT first_name, last_name FROM actor LIMIT 1");
mysqli_commit($link);

mysqli_close($link);
?>

Voir aussi

  • mysqli_autocommit() - Active ou désactive le mode auto-commit
  • mysqli_commit() - Valide la transaction courante
  • mysqli_rollback() - Annule la transaction courante


Change l'utilisateur de la connexion spécifiée

  • « mysqli::begin_transaction
  • mysqli::character_set_name »
  • PHP Manual
  • mysqli
  • Change l'utilisateur de la connexion spécifiée

mysqli::change_user

mysqli_change_user

(PHP 5, PHP 7)

mysqli::change_user -- mysqli_change_user — Change l'utilisateur de la connexion spécifiée

Description

Style orienté objet

bool mysqli::change_user ( string $user , string $password , string $database )

Style procédural

bool mysqli_change_user ( mysqli $link , string $user , string $password , string $database )

Change l'utilisateur de la connexion spécifiée par le paramètre link et change la base de données courante pour celle spécifiée par le paramètre database.

Pour que cette fonction réussisse, les paramètres username et password doivent être valides et l'utilisateur en question doit avoir les permissions d'accès à la base de données désirée. Si pour une raison ou une autre, l'autorisation échoue, l'utilisateur courant sera conservé.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

user

Le nom d'utilisateur MySQL.

password

Le mot de passe MySQL.

database

La base de données à utiliser.

Vous pouvez passer la valeur NULL à ce paramètre pour ne changer que l'utilisateur. Dans ce cas, vous pouvez utiliser la fonction mysqli_select_db() pour changer de base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

L'utilisation de cette commande implique toujours que la connexion soit considérée comme neuve, que la fonction réussisse ou non. Un appel à cette fonction annulera donc toutes les transactions actives, fermera les tables temporaires et déverrouillera les tables verrouillées.

Exemples

Exemple #1 Exemple avec mysqli::change_user()

Style orienté objet

<?php

/* Connexion à la base de données test */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Définition de la variable "a" */
$mysqli->query("SET @a:=1");

/* réinitialise tout et sélectionne une nouvelle base de données */
$mysqli->change_user("my_user", "my_password", "world");

if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Base de données par défaut : %s\n", $row[0]);
    $result->close();
}

if ($result = $mysqli->query("SELECT @a")) {
    $row = $result->fetch_row();
    if ($row[0] === NULL) {
        printf("La valeur de la variable a est NULL\n");
    }
    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
/* Connexion à la base de données test */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* Vérification de la connexion */
if (!$link) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Définition de la variable "a" */
mysqli_query($link, "SET @a:=1");

/* réinitialise tout et sélectionne une nouvelle base de données */
mysqli_change_user($link, "my_user", "my_password", "world");

if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Base de données par défaut : %s\n", $row[0]);
    mysqli_free_result($result);
}

if ($result = mysqli_query($link, "SELECT @a")) {
    $row = mysqli_fetch_row($result);
    if ($row[0] === NULL) {
        printf("La valeur de la variable a est NULL\n");
    }
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Base de données par défaut : world
La valeur de la variable a est NULL

Voir aussi

  • mysqli_connect() - Alias de mysqli::__construct
  • mysqli_select_db() - Sélectionne une base de données par défaut pour les requêtes


Retourne le jeu de caractères courant pour la connexion

  • « mysqli::change_user
  • mysqli::$client_info »
  • PHP Manual
  • mysqli
  • Retourne le jeu de caractères courant pour la connexion

mysqli::character_set_name

mysqli_character_set_name

(PHP 5, PHP 7)

mysqli::character_set_name -- mysqli_character_set_name — Retourne le jeu de caractères courant pour la connexion

Description

Style orienté objet

string mysqli::character_set_name ( void )

Style procédural

string mysqli_character_set_name ( mysqli $link )

Retourne le jeu de caractères courant pour la connexion spécifiée par le paramètre link.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Le jeu de caractères par défaut pour la connexion courante.

Exemples

Exemple #1 Exemple avec mysqli::character_set_name()

Style orienté objet

<?php
/* Ouvre une connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset = $mysqli->character_set_name();
printf ("Jeu de caractères courant : %s\n", $charset);

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
/* Ouvre une connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (!$link) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affiche le jeu de caractères courant */
$charset = mysqli_character_set_name($link);
printf ("Jeu de caractères courant : %s\n",$charset);

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Jeu de caractères courant : latin1_swedish_ci

Voir aussi

  • mysqli_set_charset() - Définit le jeu de caractères par défaut du client
  • mysqli_client_encoding() - Alias de mysqli_character_set_name
  • mysqli_real_escape_string() - Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion


Récupère les informations du client MySQL

  • « mysqli::character_set_name
  • mysqli::$client_version »
  • PHP Manual
  • mysqli
  • Récupère les informations du client MySQL

mysqli::$client_info

mysqli_get_client_info

(PHP 5, PHP 7)

mysqli::$client_info -- mysqli_get_client_info — Récupère les informations du client MySQL

Description

Style orienté objet

string $mysqli->client_info;

Style procédural

string mysqli_get_client_info ( mysqli $link )

Retourne une chaîne de caractères représentant la version de la bibliothèque du client MySQL.

Valeurs de retour

Une chaîne de caractères représentant la version de la bibliothèque du client MySQL.

Exemples

Exemple #1 mysqli_get_client_info

<?php

/* Nous n'avons pas besoin d'une connexion pour déterminer
   la version de la bibliothèque du client MySQL */

printf("Version de la bibliothèque du client : %s\n", mysqli_get_client_info());
?>

Voir aussi

  • mysqli_get_client_version() - Retourne la version du client MySQL sous forme d'un entier
  • mysqli_get_server_info() - Retourne la version du serveur MySQL
  • mysqli_get_server_version() - Retourne un entier représentant la version du serveur MySQL


Retourne la version du client MySQL sous la forme d'une chaîne de caractères

  • « mysqli::$client_info
  • mysqli::close »
  • PHP Manual
  • mysqli
  • Retourne la version du client MySQL sous la forme d'une chaîne de caractères

mysqli::$client_version

mysqli_get_client_version

(PHP 5, PHP 7)

mysqli::$client_version -- mysqli_get_client_version — Retourne la version du client MySQL sous la forme d'une chaîne de caractères

Description

Style orienté objet

int $mysqli->client_version;

Style procédural

int mysqli_get_client_version ( mysqli $link )

Retourne le numéro de version du client, sous la forme d'un entier.

Valeurs de retour

Un nombre qui représente la version du client MySQL, au format : main_version*10000 + minor_version *100 + sub_version. Par exemple, 4.1.0 est retourné sous la forme 40100.

Ceci est utile pour déterminer rapidement la version de la bibliothèque cliente, afin d'en connaître les capacités.

Exemples

Exemple #1 mysqli_get_client_version

<?php

/* Nous n'avons pas besoin d'une connexion pour déterminer
   la version de la bibliothèque du client MySQL */

printf("Version de la bibliothèque du client : %d\n", mysqli_get_client_version());
?>

Voir aussi

  • mysqli_get_client_info() - Récupère des informations sur le client MySQL
  • mysqli_get_server_info() - Retourne la version du serveur MySQL
  • mysqli_get_server_version() - Retourne un entier représentant la version du serveur MySQL


Ferme une connexion

  • « mysqli::$client_version
  • mysqli::commit »
  • PHP Manual
  • mysqli
  • Ferme une connexion

mysqli::close

mysqli_close

(PHP 5, PHP 7)

mysqli::close -- mysqli_close — Ferme une connexion

Description

Style orienté objet

bool mysqli::close ( void )

Style procédural

bool mysqli_close ( mysqli $link )

Ferme la connexion spécifiée par le paramètre link.

Les connexions et les jeux de résultats ouverts de facçon non persistents sont automatiquement détruits lorsqu'un script PHP termine son exécution. Aussi, le fait de fermer une connexion et libérer les résultats étant optionnel, le fait de le faire explicitement est néanmoins vivement recommandé. Ceci va retourner les ressources immédiatement à PHP et à MySQL, ce qui va améliorer les performance. Pour plus d'informations, référez-vous à la libération des ressources

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Voir mysqli_connect().

Notes

Note:

mysqli_close() ne ferme pas les connexions persistentes. Pour plus de détails, voir la page du manuel sur les connexions persistentes.

Voir aussi

  • mysqli::__construct() - Ouvre une connexion à un serveur MySQL
  • mysqli_init() - Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()
  • mysqli_real_connect() - Ouvre une connexion à un serveur MySQL
  • mysqli_free_result() - Libère la mémoire associée à un résultat


Valide la transaction courante

  • « mysqli::close
  • mysqli::$connect_errno »
  • PHP Manual
  • mysqli
  • Valide la transaction courante

mysqli::commit

mysqli_commit

(PHP 5, PHP 7)

mysqli::commit -- mysqli_commit — Valide la transaction courante

Description

Style orienté objet

bool mysqli::commit ([ int $flags [, string $name ]] )

Style procédural

bool mysqli_commit ( mysqli $link [, int $flags [, string $name ]] )

Valide la transaction courante pour la base de données spécifiée par le paramètre link.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

flags

Un masque de constantes MYSQLI_TRANS_COR_*.

name

Si fourni, alors COMMIT/*name*/ est exécuté.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.5.0 | Ajout des paramètres flags et name.

Exemples

Exemple #1 Exemple avec mysqli::commit()

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE Language LIKE CountryLanguage");

/* Désactivation de l'autocommit */
$mysqli->autocommit(FALSE);

/* Insertion de quelques valeurs */
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* Validation de la transaction */
if (!$mysqli->commit()) {
    print("Echec de la validation de la transaction\n");
    exit();
}

/* Effacement de la table */
$mysqli->query("DROP TABLE Language");

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* Vérification de la connexion */
if (!$link) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Désactivation de l'autocommit */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE Language LIKE CountryLanguage");

/* Insertion de quelques valeurs */
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* Validation de la transaction */
if (!mysqli_commit($link)) {
    print("Echec de la validation de la transaction\n");
    exit();
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Voir aussi

  • mysqli_autocommit() - Active ou désactive le mode auto-commit
  • mysqli_begin_transaction() - Démarre une transaction
  • mysqli_rollback() - Annule la transaction courante
  • mysqli_savepoint() - Défini un point de sauvegarde nommé de la transaction


Retourne le code d'erreur de la connexion MySQL

  • « mysqli::commit
  • mysqli::$connect_error »
  • PHP Manual
  • mysqli
  • Retourne le code d'erreur de la connexion MySQL

mysqli::$connect_errno

mysqli_connect_errno

(PHP 5, PHP 7)

mysqli::$connect_errno -- mysqli_connect_errno — Retourne le code d'erreur de la connexion MySQL

Description

Style orienté objet

int $mysqli->connect_errno;

Style procédural

int mysqli_connect_errno ( void )

Retourne le code d'erreur de la dernière tentative de connexion avec mysqli_connect().

Note:

Les messages d'erreur du client MySQL sont disponibles dans errmsg.h. Les messages d'erreur du serveur MySQL sont disponibles dans mysqld_error.h. Dans la distribution source de MySQL, vous pouvez trouver la liste complète des messages d'erreurs et des codes d'erreurs dans le fichier Docs/mysqld_error.txt.

Valeurs de retour

Un code d'erreur généré par le dernier appel à mysqli_connect(), si ce dernier a échoué. Zéro signifie qu'aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec $mysqli->connect_errno

Style orienté objet

<?php
$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db');

if ($mysqli->connect_errno) {
    die('Erreur de connexion : ' . $mysqli->connect_errno);
}
?>

Style procédural

<?php
$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_db');

if (!$link) {
    die('Erreur de connexion : ' . mysqli_connect_errno());
}
?>

Les exemples ci-dessus vont afficher :

Erreur de connexion : 1045

Voir aussi

  • mysqli_connect() - Alias de mysqli::__construct
  • mysqli_connect_error() - Retourne le message d'erreur de connexion MySQL
  • mysqli_errno() - Retourne le dernier code d'erreur produit
  • mysqli_error() - Retourne une chaîne décrivant la dernière erreur
  • mysqli_sqlstate() - Retourne l'erreur SQLSTATE de la dernière opération MySQL


Retourne le message d'erreur de connexion MySQL

  • « mysqli::$connect_errno
  • mysqli::__construct »
  • PHP Manual
  • mysqli
  • Retourne le message d'erreur de connexion MySQL

mysqli::$connect_error

mysqli_connect_error

(PHP 5, PHP 7)

mysqli::$connect_error -- mysqli_connect_error — Retourne le message d'erreur de connexion MySQL

Description

Style orienté objet

string $mysqli->connect_error;

Style procédural

string mysqli_connect_error ( void )

Retourne un message d'erreur, lié au dernier appel à mysqli_connect().

Valeurs de retour

Une chaîne qui décrit l'erreur ou NULL si aucune erreur ne survient.

Exemples

Exemple #1 Exemple avec $mysqli->connect_error

Style orienté objet

<?php
$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db');

// Fonctionne depuis PHP 5.2.9 et 5.3.0.
if ($mysqli->connect_error) {
    die('Erreur de connexion : ' . $mysqli->connect_error);
}
?>

Style procédural

<?php
$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_db');

if (!$link) {
    die('Erreur de connexion : ' . mysqli_connect_error());
}
?>

Les exemples ci-dessus vont afficher :

Erreur de connexion : Access denied for user 'fake_user'@'localhost' (using password: YES)

Notes

Avertissement

La propriété mysqli->connect_error ne fonctionne correctement que depuis PHP versions 5.2.9 et 5.3.0. Utilisez la fonction mysqli_connect_error() pour les versions antérieures.

Voir aussi

  • mysqli_connect() - Alias de mysqli::__construct
  • mysqli_connect_errno() - Retourne le code d'erreur de la connexion MySQL
  • mysqli_errno() - Retourne le dernier code d'erreur produit
  • mysqli_error() - Retourne une chaîne décrivant la dernière erreur
  • mysqli_sqlstate() - Retourne l'erreur SQLSTATE de la dernière opération MySQL


Ouvre une connexion à un serveur MySQL

  • « mysqli::$connect_error
  • mysqli::debug »
  • PHP Manual
  • mysqli
  • Ouvre une connexion à un serveur MySQL

mysqli::__construct

mysqli_connect

(PHP 5, PHP 7)

mysqli::__construct -- mysqli_connect — Ouvre une connexion à un serveur MySQL

Description

Style orienté objet

 mysqli::__construct
  ([ string $host = ini_get("mysqli.default_host")
 [, string $username = ini_get("mysqli.default_user")
 [, string $passwd = ini_get("mysqli.default_pw")
 [, string $dbname = ""
 [, int $port = ini_get("mysqli.default_port")
 [, string $socket = ini_get("mysqli.default_socket")
]]]]]] )

Style procédural

 mysqli mysqli_connect
  ([ string $host = ini_get("mysqli.default_host")
 [, string $username = ini_get("mysqli.default_user")
 [, string $passwd = ini_get("mysqli.default_pw")
 [, string $dbname = ""
 [, int $port = ini_get("mysqli.default_port")
 [, string $socket = ini_get("mysqli.default_socket")
]]]]]] )

Ouvre une connexion sur un serveur MySQL.

Liste de paramètres

host

Peut être un nom d'hôte ou une adresse IP. Si vous passez la valeur NULL ou la chaîne "localhost" à ce paramètre, l'hôte local est sous-entendu. Lorsque c'est possible, les sockets seront utilisées au lieu du protocole TCP/IP.

Préfixer l'hôte par p: ouvre une connexion persistante mysqli_change_user() est automatiquement appelé sur les connexions qui sont utilisées dans le pool de connexions.

username

Le nom d'utilisateur MySQL.

passwd

Si le mot de passe n'est pas indiqué (la valeur NULL est passée), le serveur MySQL essaiera d'identifier l'utilisateur en étudiant que les enregistrements où les utilisateurs n'ont pas de mot de passe. Cela permet à un utilisateur de jouir de plusieurs permissions (selon que l'on fournit le mot de passe ou non).

dbname

Si fourni, spécifiera la base de données par défaut à utiliser lors de l'exécution de requêtes.

port

Spécifie le numéro du port pour la connexion au serveur MySQL.

socket

Spécifie le socket ou le nom du tunnel à utiliser.

Note:

Spécifier le paramètre socket ne déterminera pas explicitement le type de connexion qui sera utilisé lors de la connexion au serveur MySQL. Cela est déterminé par le paramètre host.

Valeurs de retour

Retourne un objet qui représente la connexion au serveur MySQL.

Historique

Version | Description
5.3.0 | Ajout des connexions persistantes.

Exemples

Exemple #1 Exemple avec mysqli::__construct()

Style orienté objet

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

/*
 * Ceci est le style POO "officiel"
 * MAIS $connect_error était erroné jusqu'en PHP 5.2.9 et 5.3.0.
 */
if ($mysqli->connect_error) {
    die('Erreur de connexion (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}

/*
 * Utilisez cette syntaxe de $connect_error si vous devez assurer
 * la compatibilité avec les versions de PHP avant 5.2.9 et 5.3.0.
 */
if (mysqli_connect_error()) {
    die('Erreur de connexion (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Succès... ' . $mysqli->host_info . "\n";

$mysqli->close();
?>

Style orienté objet when extending mysqli class

<?php

class foo_mysqli extends mysqli {
    public function __construct($host, $user, $pass, $db) {
        parent::__construct($host, $user, $pass, $db);

        if (mysqli_connect_error()) {
            die('Erreur de connexion (' . mysqli_connect_errno() . ') '
                    . mysqli_connect_error());
        }
    }
}

$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');

echo 'Succès... ' . $db->host_info . "\n";

$db->close();
?>

Style procédural

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');

if (!$link) {
    die('Erreur de connexion (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Succès... ' . mysqli_get_host_info($link) . "\n";

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Succès... MySQL host info: localhost via TCP/IP

Notes

Note:

MySQLnd s'occupe toujours du jeu de caractères par défaut du serveur. Celui-ci est envoyé durant la négociation de la connexion ou l'authentification.

Libmysqlclient utilise le jeu de caractères par défaut de my.cnf ou via par un appel à mysqli_options() avant mysqli_real_connect(), mais après mysqli_init().

Note:

Uniquement pour la syntaxe orientée objet : pour vérifier si la connexion a échoué, utilisez la fonction mysqli_connect_error() ou la propriété mysqli->connect_error comme dans l'exemple ci-dessus.

Note:

S'il est nécessaire de configurer des options, telles que le délai de connexion, mysqli_real_connect() doit être utilisé.

Note:

Appeler le constructeur sans paramètre a le même effet qu'appeler mysqli_init().

Note:

L'erreur "Can't create TCP/IP socket (10106)" signifie à généralement que la directive de configuration variables_order ne contient pas le caractère E. Sous Windows, si l'environnement n'est pas copié, la variable d'environnement SYSTEMROOT ne sera pas disponible et PHP aura des soucis pour charger Winsock.

Voir aussi

  • mysqli_real_connect() - Ouvre une connexion à un serveur MySQL
  • mysqli_options() - Définit les options
  • mysqli_connect_errno() - Retourne le code d'erreur de la connexion MySQL
  • mysqli_connect_error() - Retourne le message d'erreur de connexion MySQL
  • mysqli_close() - Ferme une connexion


Effectue des actions de déboguage

  • « mysqli::__construct
  • mysqli::dump_debug_info »
  • PHP Manual
  • mysqli
  • Effectue des actions de déboguage

mysqli::debug

mysqli_debug

(PHP 5, PHP 7)

mysqli::debug -- mysqli_debug — Effectue des actions de déboguage

Description

Style orienté objet

bool mysqli::debug ( string $message )

Style procédural

bool mysqli_debug ( string $message )

Effectue des actions de déboguage en utilisant la bibliothèque de déboguage Fred Fish.

Liste de paramètres

message

Une chaîne de caractères représentant l'opération de déboguage à effectuer.

Valeurs de retour

Retourne TRUE.

Notes

Note:

Pour utiliser la fonction mysqli_debug(), vous devez compiler la bibliothèque cliente MySQL avec le support du déboguage.

Exemples

Exemple #1 Génération d'un fichier de "traces"

<?php

/* Génère un fichier de "trace" dans '/tmp/client.trace' sur la machine (cliente) locale : */
mysqli_debug("d:t:o,/tmp/client.trace");

?>

Voir aussi

  • mysqli_dump_debug_info() - Écrit les informations de déboguage dans les logs
  • mysqli_report() - Alias de mysqli_driver->report_mode


Écrit les informations de déboguage dans les logs

  • « mysqli::debug
  • mysqli::$errno »
  • PHP Manual
  • mysqli
  • Écrit les informations de déboguage dans les logs

mysqli::dump_debug_info

mysqli_dump_debug_info

(PHP 5, PHP 7)

mysqli::dump_debug_info -- mysqli_dump_debug_info — Écrit les informations de déboguage dans les logs

Description

Style orienté objet

bool mysqli::dump_debug_info ( void )

Style procédural

bool mysqli_dump_debug_info ( mysqli $link )

Cette fonction est à utiliser par un utilisateur possédant le privilège SUPER et est utilisée pour écrire quelques informations de déboguage dans le journal pour le serveur MySQL relatif à la connexion spécifiée par le paramètre link.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mysqli_debug() - Effectue des actions de déboguage


Retourne le dernier code d'erreur produit

  • « mysqli::dump_debug_info
  • mysqli::$error_list »
  • PHP Manual
  • mysqli
  • Retourne le dernier code d'erreur produit

mysqli::$errno

mysqli_errno

(PHP 5, PHP 7)

mysqli::$errno -- mysqli_errno — Retourne le dernier code d'erreur produit

Description

Style orienté objet

int $mysqli->errno;

Style procédural

int mysqli_errno ( mysqli $link )

Retourne le code erreur pour le dernier appel à une fonction MySQLi qui peut échouer ou réussir en respectant la connexion définie par la paramètre link.

Les numéros d'erreur client sont listés dans les en-têtes du fichier MySQL errmsg.h, les messages d'erreur du serveur sont listés dans le fichier mysqld_error.h. Dans les sources de MySQL, vous pouvez trouver une liste complète des messages d'erreur et des numéros d'erreur dans le fichier Docs/mysqld_error.txt.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

La valeur du code erreur pour le dernier appel, s'il échoue. 0 signifie qu'aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec $mysqli->errno

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if ($mysqli->connect_errno) {
    printf("Echec de la connexion: %s\n", $mysqli->connect_error);
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Code Erreur : %d\n", $mysqli->errno);
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Code Erreur : %d\n", mysqli_errno($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Code Erreur : 1193

Voir aussi

  • mysqli_connect_errno() - Retourne le code d'erreur de la connexion MySQL
  • mysqli_connect_error() - Retourne le message d'erreur de connexion MySQL
  • mysqli_error() - Retourne une chaîne décrivant la dernière erreur
  • mysqli_sqlstate() - Retourne l'erreur SQLSTATE de la dernière opération MySQL


Retourne une liste d'erreur depuis la dernière commande exécutée

  • « mysqli::$errno
  • mysqli::$error »
  • PHP Manual
  • mysqli
  • Retourne une liste d'erreur depuis la dernière commande exécutée

mysqli::$error_list

mysqli_error_list

(PHP 5 >= 5.4.0, PHP 7)

mysqli::$error_list -- mysqli_error_list — Retourne une liste d'erreur depuis la dernière commande exécutée

Description

Style orienté objet

array $mysqli->error_list;

Style procédural

array mysqli_error_list ( mysqli $link )

Retourne un tableau d'erreurs depuis l'appel le plus récent à une fonction MySQLi, qu'elle est réussi ou non.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une liste d'erreur, chacune sous la forme d'un tableau associatif contenant le numéro d'erreur (errno), le message d'erreur (error) et l'état SQL (sqlstate).

Exemples

Exemple #1 Exemple avec $mysqli->error_list

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "nobody", "");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("La connexion a échoué : %s\n", mysqli_connect_error());
    exit();
}

if (!$mysqli->query("SET a=1")) {
    print_r($mysqli->error_list);
}

/* Ferme la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("La connexion a échoué : %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    print_r(mysqli_error_list($link));
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Array
(
    [0] => Array
        (
            [errno] => 1193
            [sqlstate] => HY000
            [error] => Unknown system variable 'a'
        )

)

Voir aussi

  • mysqli_connect_errno() - Retourne le code d'erreur de la connexion MySQL
  • mysqli_connect_error() - Retourne le message d'erreur de connexion MySQL
  • mysqli_error() - Retourne une chaîne décrivant la dernière erreur
  • mysqli_sqlstate() - Retourne l'erreur SQLSTATE de la dernière opération MySQL


Retourne une chaîne décrivant la dernière erreur

  • « mysqli::$error_list
  • mysqli::$field_count »
  • PHP Manual
  • mysqli
  • Retourne une chaîne décrivant la dernière erreur

mysqli::$error

mysqli_error

(PHP 5, PHP 7)

mysqli::$error -- mysqli_error — Retourne une chaîne décrivant la dernière erreur

Description

Style orienté objet

string $mysqli->error;

Style procédural

string mysqli_error ( mysqli $link )

Retourne la chaîne de caractères décrivant l'erreur survenue lors du dernier appel à une fonction MySQLi, que cet appel ait réussi ou échoué.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères qui décrit l'erreur. Une chaîne de caractères vide si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec $mysqli->error

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if ($mysqli->connect_errno) {
    printf("Echec de la connexion: %s\n", $mysqli->connect_error);
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Message d'erreur : %s\n", $mysqli->error);
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Message d'erreur : %s\n", mysqli_error($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Message d'erreur : Unknown system variable 'a'

Voir aussi

  • mysqli_connect_errno() - Retourne le code d'erreur de la connexion MySQL
  • mysqli_connect_error() - Retourne le message d'erreur de connexion MySQL
  • mysqli_errno() - Retourne le dernier code d'erreur produit
  • mysqli_sqlstate() - Retourne l'erreur SQLSTATE de la dernière opération MySQL


Retourne le nombre de colonnes pour la dernière requête

  • « mysqli::$error
  • mysqli::get_charset »
  • PHP Manual
  • mysqli
  • Retourne le nombre de colonnes pour la dernière requête

mysqli::$field_count

mysqli_field_count

(PHP 5, PHP 7)

mysqli::$field_count -- mysqli_field_count — Retourne le nombre de colonnes pour la dernière requête

Description

Style orienté objet

int $mysqli->field_count;

Style procédural

int mysqli_field_count ( mysqli $link )

Retourne le nombre de colonnes pour la dernière requête sur la connexion spécifiée par le paramètre link. Cette fonction peut être utile lors de l'utilisation de mysqli_store_result() pour déterminer si la requête aurait du retourner un résultat vide ou non, sans en connaître la nature.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Un entier représentant le nombre de champs dans un jeu de résultats.

Exemples

Exemple #1 Exemple avec $mysqli->field_count

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query( "DROP TABLE IF EXISTS friends");
$mysqli->query( "CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query( "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$mysqli->real_query("SELECT * FROM friends");

if ($mysqli->field_count) {
    /* Une requête SELECT, SHOW ou DESCRIBE */
    $result = $mysqli->store_result();

    /* Récupération du jeu de résultats */
    $row = $result->fetch_row();

    /* Libération du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

mysqli_real_query($link, "SELECT * FROM friends");

if (mysqli_field_count($link)) {
    /* Une requête SELECT, SHOW ou DESCRIBE */
    $result = mysqli_store_result($link);

    /* Récupération du jeu de résultats */
    $row = mysqli_fetch_row($result);

    /* Libération du jeu de résultats */
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>


Retourne un objet représentant le jeu de caractères

  • « mysqli::$field_count
  • mysqli::get_client_info »
  • PHP Manual
  • mysqli
  • Retourne un objet représentant le jeu de caractères

mysqli::get_charset

mysqli_get_charset

(PHP 5 >= 5.1.0, PHP 7)

mysqli::get_charset -- mysqli_get_charset — Retourne un objet représentant le jeu de caractères

Description

Style orienté objet

object mysqli::get_charset ( void )

Style procédural

object mysqli_get_charset ( mysqli $link )

Retourne un objet représentant le jeu de caractères, fournissant différentes propriétés du jeu de caractères courant.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

La fonction retourne un jeu de caractères avec les propriétés suivantes :

charset

Nom du jeu de caractères

collation

Nom de la collation

dir

Le dossier dans lequel la description du jeu de caractères est cherchée (?) ou "" pour les jeux de caractères internes

min_length

Longueur minimum de caractères, en octets

max_length

Longueur maximal de caractères, en octets

number

Numéro du jeu de caractères interne

state

Statut du jeu de caractères (?)

Exemples

Exemple #1 Exemple avec mysqli::get_charset()

Style orienté objet

<?php
  $db = mysqli_init();
  $db->real_connect("localhost","root","","test");
  var_dump(mysqli_get_charset($db));
?>

Style procédural

<?php
  $db = mysqli_init();
  mysqli_real_connect($db, "localhost","root","","test");
  var_dump($db->get_charset());
?>

Les exemples ci-dessus vont afficher :

object(stdClass)#2 (7) {
  ["charset"]=>
  string(6) "latin1"
  ["collation"]=>
  string(17) "latin1_swedish_ci"
  ["dir"]=>
  string(0) ""
  ["min_length"]=>
  int(1)
  ["max_length"]=>
  int(1)
  ["number"]=>
  int(8)
  ["state"]=>
  int(801)
}

Voir aussi

  • mysqli_character_set_name() - Retourne le jeu de caractères courant pour la connexion
  • mysqli_set_charset() - Définit le jeu de caractères par défaut du client


Récupère des informations sur le client MySQL

  • « mysqli::get_charset
  • mysqli_get_client_stats »
  • PHP Manual
  • mysqli
  • Récupère des informations sur le client MySQL

mysqli::get_client_info

mysqli_get_client_info

(PHP 5, PHP 7)

mysqli::get_client_info -- mysqli_get_client_info — Récupère des informations sur le client MySQL

Description

Style orienté objet

string mysqli::get_client_info ( void )

Style procédural

string mysqli_get_client_info ( mysqli $link )

Retourne une chaîne de caractères qui représente la version de la librairie cliente MySQL.

Valeurs de retour

Une chaîne de caractères représentant la version du client utilisé par l'extension MySQL.

Exemples

Exemple #1 Exemple avec mysqli_get_client_info()

<?php

/* Vous n'avez pas besoin d'une connexion pour déterminer
    la version du client utilisé par l'extension MySQL */

printf("Version de la bibliothèque cliente : %s\n", mysqli_get_client_info());
?>

Voir aussi

  • mysqli_get_client_version() - Retourne la version du client MySQL sous forme d'un entier
  • mysqli_get_server_info() - Retourne la version du serveur MySQL
  • mysqli_get_server_version() - Retourne un entier représentant la version du serveur MySQL


Retournes des statistiques sur le client, par processus

  • « mysqli::get_client_info
  • mysqli_get_client_version »
  • PHP Manual
  • mysqli
  • Retournes des statistiques sur le client, par processus

mysqli_get_client_stats

(PHP 5 >= 5.3.0, PHP 7)

mysqli_get_client_stats — Retournes des statistiques sur le client, par processus

Description

array mysqli_get_client_stats ( void )

Retournes des statistiques sur le client, par processus. Disponible uniquement avec mysqlnd.

Liste de paramètres

Valeurs de retour

Retourne un tableau avec les statistiques sur le client en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec mysqli_get_client_stats()

<?php
$link = mysqli_connect();
print_r(mysqli_get_client_stats());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

Voir aussi

  • Description des statistiques


Retourne la version du client MySQL sous forme d'un entier

  • « mysqli_get_client_stats
  • mysqli::get_connection_stats »
  • PHP Manual
  • mysqli
  • Retourne la version du client MySQL sous forme d'un entier

mysqli_get_client_version

mysqli::$client_version

(PHP 5, PHP 7)

mysqli_get_client_version -- mysqli::$client_version — Retourne la version du client MySQL sous forme d'un entier

Description

Style orienté objet

int $client_version;

Style procédural

int mysqli_get_client_version ( mysqli $link )

Retourne la version du client MySQL sous la forme d'un entier.

Valeurs de retour

Un nombre qui représente la version de la bibliothèque cliente MySQL dans ce format : version_principale*10000 + version_mineure *100 + sous_version. Par exemple, la version 4.1.0 est retournée sous la forme 40100.

Cette fonction est pratique pour déterminer la version de la bibliothèque cliente, si vous recherchez des fonctionnalités spécifiques.

Exemples

Exemple #1 Exemple avec mysqli_get_client_version()

<?php

/* Nous n'avons pas besoin d'une connexion pour
   déterminer la version de la bibliothèque cliente mysql */

printf("Version de la bibliothèque cliente : %d\n", mysqli_get_client_version());
?>

Voir aussi

  • mysqli_get_client_info() - Récupère des informations sur le client MySQL
  • mysqli_get_server_info() - Retourne la version du serveur MySQL
  • mysqli_get_server_version() - Retourne un entier représentant la version du serveur MySQL


Retourne des statistiques sur la connexion

  • « mysqli_get_client_version
  • mysqli::$host_info »
  • PHP Manual
  • mysqli
  • Retourne des statistiques sur la connexion

mysqli::get_connection_stats

mysqli_get_connection_stats

(PHP 5 >= 5.3.0, PHP 7)

mysqli::get_connection_stats -- mysqli_get_connection_stats — Retourne des statistiques sur la connexion

Description

Style orienté objet

bool mysqli::get_connection_stats ( void )

Style procédural

array mysqli_get_connection_stats ( mysqli $link )

Retourne des statistiques sur la connexion du client. Disponible uniquement avec mysqlnd.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne un tableau avec les statistiques de connexion, en cas de succès, et FALSE sinon.

Exemples

Exemple #1 Exemple avec mysqli_get_connection_stats()

<?php
$link = mysqli_connect();
print_r(mysqli_get_connection_stats($link));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

Voir aussi

  • Description des statistiques


Retourne une chaîne contenant le type de connexion utilisée

  • « mysqli::get_connection_stats
  • mysqli::$protocol_version »
  • PHP Manual
  • mysqli
  • Retourne une chaîne contenant le type de connexion utilisée

mysqli::$host_info

mysqli_get_host_info

(PHP 5, PHP 7)

mysqli::$host_info -- mysqli_get_host_info — Retourne une chaîne contenant le type de connexion utilisée

Description

Style orienté objet

string $mysqli->host_info;

Style procédural

string mysqli_get_host_info ( mysqli $link )

mysqli_get_host_info() retourne une chaîne de caractères décrivant la connexion représentée par le paramètre link (incluant le nom d'hôte du serveur).

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères représentant le nom d'hôte du serveur et le type de connexion.

Exemples

Exemple #1 Exemple avec $mysqli->host_info

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage des informations sur l'hôte */
printf("Informations sur l'hôte : %s\n", $mysqli->host_info);

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage des informations sur l'hôte */
printf("Informations sur l'hôte : %s\n", mysqli_get_host_info($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Informations sur l'hôte : Localhost via UNIX socket

Voir aussi

  • mysqli_get_proto_info() - Retourne la version du protocole MySQL utilisé


Retourne la version du protocole MySQL utilisé

  • « mysqli::$host_info
  • mysqli::$server_info »
  • PHP Manual
  • mysqli
  • Retourne la version du protocole MySQL utilisé

mysqli::$protocol_version

mysqli_get_proto_info

(PHP 5, PHP 7)

mysqli::$protocol_version -- mysqli_get_proto_info — Retourne la version du protocole MySQL utilisé

Description

Style orienté objet

string $mysqli->protocol_version;

Style procédural

int mysqli_get_proto_info ( mysqli $link )

Retourne un entier représentant la version du protocole MySQL utilisé par la connexion représentée par le paramètre link.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne un entier représentant la version du protocole.

Exemples

Exemple #1 Exemple avec $mysqli->protocol_version

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage de la version du protocole */
printf("Version du protocole : %d\n", $mysqli->protocol_version);

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage de la version du protocole */
printf("Version du protocole : %d\n", mysqli_get_proto_info($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Version du protocole: 10

Voir aussi

  • mysqli_get_host_info() - Retourne une chaîne contenant le type de connexion utilisée


Retourne la version du serveur MySQL

  • « mysqli::$protocol_version
  • mysqli::$server_version »
  • PHP Manual
  • mysqli
  • Retourne la version du serveur MySQL

mysqli::$server_info

mysqli_get_server_info

(PHP 5, PHP 7)

mysqli::$server_info -- mysqli_get_server_info — Retourne la version du serveur MySQL

Description

Style orienté objet

string $mysqli->server_info;

Style procédural

string mysqli_get_server_info ( mysqli $link )

Retourne une chaîne de caractères représentant la version du serveur MySQL auquel l'extension MySQLi est connectée (représenté par le paramètre link).

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères représentant la version du serveur.

Exemples

Exemple #1 Exemple avec $mysqli->server_info

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage de la version du serveur */
printf("Version du serveur : %s\n", $mysqli->server_info);

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage de la version du serveur */
printf("Version du serveur : %s\n", mysqli_get_server_info($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Version du serveur : 4.1.2-alpha-debug

Voir aussi

  • mysqli_get_client_info() - Récupère des informations sur le client MySQL
  • mysqli_get_client_version() - Retourne la version du client MySQL sous forme d'un entier
  • mysqli_get_server_version() - Retourne un entier représentant la version du serveur MySQL


Retourne un entier représentant la version du serveur MySQL

  • « mysqli::$server_info
  • mysqli::get_warnings »
  • PHP Manual
  • mysqli
  • Retourne un entier représentant la version du serveur MySQL

mysqli::$server_version

mysqli_get_server_version

(PHP 5, PHP 7)

mysqli::$server_version -- mysqli_get_server_version — Retourne un entier représentant la version du serveur MySQL

Description

Style orienté objet

int $mysqli->server_version;

Style procédural

int mysqli_get_server_version ( mysqli $link )

La fonction mysqli_get_server_version() retourne un entier représentant la version du serveur sur lequel on est connecté (représenté par le paramètre link).

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Un entier représentant la version du serveur.

Le format de ce nombre est main_version * 10000 + minor_version * 100 + sub_version (i.e. la version 4.1.0 retournera 40100).

Exemples

Exemple #1 Exemple avec $mysqli->server_version

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage de la version du serveur */
printf("Version du serveur : %d\n", $mysqli->server_version);

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage de la version du serveur */
printf("Version du serveur : %d\n", mysqli_get_server_version($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Version du serveur : 40102

Voir aussi

  • mysqli_get_client_info() - Récupère des informations sur le client MySQL
  • mysqli_get_client_version() - Retourne la version du client MySQL sous forme d'un entier
  • mysqli_get_server_info() - Retourne la version du serveur MySQL


Lit le résultat de SHOW WARNINGS

  • « mysqli::$server_version
  • mysqli::$info »
  • PHP Manual
  • mysqli
  • Lit le résultat de SHOW WARNINGS

mysqli::get_warnings

mysqli_get_warnings

(PHP 5 >= 5.1.0, PHP 7)

mysqli::get_warnings -- mysqli_get_warnings — Lit le résultat de SHOW WARNINGS

Description

Style orienté objet

mysqli_warning mysqli::get_warnings ( void )

Style procédural

mysqli_warning mysqli_get_warnings ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne des informations à propos de la dernière requête exécutée

  • « mysqli::get_warnings
  • mysqli::init »
  • PHP Manual
  • mysqli
  • Retourne des informations à propos de la dernière requête exécutée

mysqli::$info

mysqli_info

(PHP 5, PHP 7)

mysqli::$info -- mysqli_info — Retourne des informations à propos de la dernière requête exécutée

Description

Style orienté objet

string $mysqli->info;

Style procédural

string mysqli_info ( mysqli $link )

La fonction mysqli_info() retourne une chaîne fournissant des informations à propos de la dernière requête exécutée. La nature de cette chaîne est fournie ci-dessous :

Valeurs de retour possibles pour mysqli_info()
Type de requête | Exemple de retour
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Note:

Les requêtes qui ne font pas partie de la liste précédente ne sont pas supportées. Dans cette situation, mysqli_info() retournera une chaîne de caractères vide.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères donnant des informations supplémentaires à propos de la dernière requête exécutée.

Exemples

Exemple #1 Exemple avec $mysqli->info

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
$mysqli->query("INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", $mysqli->info);

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
mysqli_query($link, "INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", mysqli_info($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Records: 150  Duplicates: 0  Warnings: 0

Voir aussi

  • mysqli_affected_rows() - Retourne le nombre de lignes affectées par la dernière opération MySQL
  • mysqli_warning_count() - Retourne le nombre d'avertissements générés par la dernière requête
  • mysqli_num_rows() - Retourne le nombre de lignes dans un résultat


Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()

  • « mysqli::$info
  • mysqli::$insert_id »
  • PHP Manual
  • mysqli
  • Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()

mysqli::init

mysqli_init

(PHP 5, PHP 7)

mysqli::init -- mysqli_init — Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()

Description

Style orienté objet

mysqli mysqli::init ( void )

Style procédural

mysqli mysqli_init ( void )

Alloue ou initialise un objet MySQL utilisable pour les fonctions mysqli_options() et mysqli_real_connect().

Note:

Tous les appels suivants à n'importe quelle fonction MySQLi (exceptée mysqli_options()) échoueront en attendant que la fonction mysqli_real_connect() soit appelée.

Valeurs de retour

Retourne un objet.

Exemples

Voir mysqli_real_connect().

Voir aussi

  • mysqli_options() - Définit les options
  • mysqli_close() - Ferme une connexion
  • mysqli_real_connect() - Ouvre une connexion à un serveur MySQL
  • mysqli_connect() - Alias de mysqli::__construct


Retourne l'identifiant automatiquement généré par la dernière requête

  • « mysqli::init
  • mysqli::kill »
  • PHP Manual
  • mysqli
  • Retourne l'identifiant automatiquement généré par la dernière requête

mysqli::$insert_id

mysqli_insert_id

(PHP 5, PHP 7)

mysqli::$insert_id -- mysqli_insert_id — Retourne l'identifiant automatiquement généré par la dernière requête

Description

Style orienté objet

mixed $mysqli->insert_id;

Style procédural

mixed mysqli_insert_id ( mysqli $link )

La fonction mysqli_insert_id() retourne l'identifiant généré par une requête sur une table avec une colonne possédant l'attribut AUTO_INCREMENT. Si la dernière requête n'était ni un INSERT, ni un UPDATE ou que la table modifiée ne possède pas de colonne avec l'attribut AUTO_INCREMENT, cette fonction retournera zéro.

Note:

Exécuter une commande INSERT ou UPDATE utilisant la fonction LAST_INSERT_ID() modifiera aussi la valeur retournée par la fonction mysqli_insert_id().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

La valeur du champ AUTO_INCREMENT modifiée par la dernière requête. Retourne zéro s'il n'y a pas eu de requête sur la connexion ou si la dernière requête n'a pas modifié la valeur de l'AUTO_INCREMENT.

Note:

Si le nombre est plus grand que la valeur maximale d'un entier, mysqli_insert_id() retournera une chaîne le représentant.

Exemples

Exemple #1 Exemple avec $mysqli->insert_id

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("Le nouvel enregistrement a l'id %d.\n", $mysqli->insert_id);

/* drop table */
$mysqli->query("DROP TABLE myCity");

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);

printf ("Le nouvel enregistrement a l'id %d.\n", mysqli_insert_id($link));

/* drop table */
mysqli_query($link, "DROP TABLE myCity");

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Le nouvel enregistrement a l'id 1.


Demande au serveur de terminer un thread MySQL

  • « mysqli::$insert_id
  • mysqli::more_results »
  • PHP Manual
  • mysqli
  • Demande au serveur de terminer un thread MySQL

mysqli::kill

mysqli_kill

(PHP 5, PHP 7)

mysqli::kill -- mysqli_kill — Demande au serveur de terminer un thread MySQL

Description

Style orienté objet

bool mysqli::kill ( int $processid )

Style procédural

bool mysqli_kill ( mysqli $link , int $processid )

mysqli_kill() est utilisée pour demander au serveur de terminer un thread MySQL spécifié par le paramètre processid. Cette valeur doit être obtenue en appelant la fonction mysqli_thread_id().

Pour arrêter une requête en cours d'exécution, utilisez la commande SQL KILL QUERY processid.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::kill()

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Détermine l'id du thread */
$thread_id = $mysqli->thread_id;

/* Termine le thread */
$mysqli->kill($thread_id);

/* Ceci devrait produire une erreur */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Erreur : %s\n", $mysqli->error);
    exit;
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Détermine l'id du thread */
$thread_id = mysqli_thread_id($link);

/* Termine le thread */
mysqli_kill($link, $thread_id);

/* Ceci devrait produire une erreur */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Erreur : %s\n", mysqli_error($link));
    exit;
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur : MySQL server has gone away

Voir aussi

  • mysqli_thread_id() - Retourne l'identifiant du thread pour la connexion courante


Vérifie s'il y a d'autres jeux de résultats MySQL disponibles

  • « mysqli::kill
  • mysqli::multi_query »
  • PHP Manual
  • mysqli
  • Vérifie s'il y a d'autres jeux de résultats MySQL disponibles

mysqli::more_results

mysqli_more_results

(PHP 5, PHP 7)

mysqli::more_results -- mysqli_more_results — Vérifie s'il y a d'autres jeux de résultats MySQL disponibles

Description

Style orienté objet

bool mysqli::more_results ( void )

Style procédural

bool mysqli_more_results ( mysqli $link )

Indique si un ou plusieurs jeux de résultats sont disponibles, générés par un appel antérieur à mysqli_multi_query().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne TRUE si un ou plusieurs jeux de résultats sont disponibles depuis un précédent appel à la fonction mysqli_multi_query(), FALSE sinon.

Exemples

Voir mysqli_multi_query().

Voir aussi

  • mysqli_multi_query() - Exécute une requête MySQL multiple
  • mysqli_next_result() - Prépare le prochain résultat d'une requête multiple
  • mysqli_store_result() - Transfère un jeu de résultats à partir de la dernière requête
  • mysqli_use_result() - Initialise la récupération d'un jeu de résultats


Exécute une requête MySQL multiple

  • « mysqli::more_results
  • mysqli::next_result »
  • PHP Manual
  • mysqli
  • Exécute une requête MySQL multiple

mysqli::multi_query

mysqli_multi_query

(PHP 5, PHP 7)

mysqli::multi_query -- mysqli_multi_query — Exécute une requête MySQL multiple

Description

Style orienté objet

bool mysqli::multi_query ( string $query )

Style procédural

bool mysqli_multi_query ( mysqli $link , string $query )

Exécute une ou plusieurs requêtes, rassemblées dans le paramètre query par des points-virgules.

Pour lire les résultats de la première requête, vous pouvez utiliser les fonctions mysqli_use_result() et mysqli_store_result(). Tous les autres résultats de requêtes peuvent être atteints avec mysqli_more_results() et mysqli_next_result().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères.

Les données contenues dans la requête doivent être échappées.

Valeurs de retour

Retourne FALSE uniquement si la première requête échoue. Pour récupérer les sous-séquences d'erreurs issues des autres requêtes, vous devez appeler d'abord la fonction mysqli_next_result().

Exemples

Exemple #1 Exemple avec mysqli::multi_query()

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* Exécution d'une requête multiple */
if ($mysqli->multi_query($query)) {
    do {
        /* Stockage du premier résultat */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->free();
        }
        /* Affichage d'une séparation */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* Exécution d'une requête multiple */
if (mysqli_multi_query($link, $query)) {
    do {
        /* sStockage du premier résultat */
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* Affichage d'une séparation */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Voir aussi

  • mysqli_query() - Exécute une requête sur la base de données
  • mysqli_use_result() - Initialise la récupération d'un jeu de résultats
  • mysqli_store_result() - Transfère un jeu de résultats à partir de la dernière requête
  • mysqli_next_result() - Prépare le prochain résultat d'une requête multiple
  • mysqli_more_results() - Vérifie s'il y a d'autres jeux de résultats MySQL disponibles


Prépare le prochain résultat d'une requête multiple

  • « mysqli::multi_query
  • mysqli::options »
  • PHP Manual
  • mysqli
  • Prépare le prochain résultat d'une requête multiple

mysqli::next_result

mysqli_next_result

(PHP 5, PHP 7)

mysqli::next_result -- mysqli_next_result — Prépare le prochain résultat d'une requête multiple

Description

Style orienté objet

bool mysqli::next_result ( void )

Style procédural

bool mysqli_next_result ( mysqli $link )

Prépare le prochain jeu de résultat, initialisé par un appel antérieur à mysqli_multi_query(), et qui peut être lu par mysqli_store_result() ou mysqli_use_result().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Voir mysqli_multi_query().

Voir aussi

  • mysqli_multi_query() - Exécute une requête MySQL multiple
  • mysqli_more_results() - Vérifie s'il y a d'autres jeux de résultats MySQL disponibles
  • mysqli_store_result() - Transfère un jeu de résultats à partir de la dernière requête
  • mysqli_use_result() - Initialise la récupération d'un jeu de résultats


Définit les options

  • « mysqli::next_result
  • mysqli::ping »
  • PHP Manual
  • mysqli
  • Définit les options

mysqli::options

mysqli_options

(PHP 5, PHP 7)

mysqli::options -- mysqli_options — Définit les options

Description

Style orienté objet

bool mysqli::options ( int $option , mixed $value )

Style procédural

bool mysqli_options ( mysqli $link , int $option , mixed $value )

Utile pour définir des options de connexion et ainsi affecter le comportement de la connexion courante.

Cette fonction peut être appelée plusieurs fois pour définir plusieurs options.

mysqli_options() doit être appelée après
mysqli_init() et avant
mysqli_real_connect().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

option

L'option que vous voulez définir. Il peut prendre une des valeurs suivantes :

Options valides
Nom | Description
MYSQLI_OPT_CONNECT_TIMEOUT | délai maximal de la connexion en secondes (supporté sous Windows avec TCP/IP depuis PHP 5.3.1)
MYSQLI_OPT_LOCAL_INFILE | active/désactive l'utilisation de LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND | commande à exécuter après la connexion au serveur MySQL
MYSQLI_READ_DEFAULT_FILE | Lit les options depuis le nom de l'option plutôt que du fichier my.cnf
MYSQLI_READ_DEFAULT_GROUP | Lit les options du groupe depuis my.cnf ou depuis le fichier spécifié avec MYSQL_READ_DEFAULT_FILE.
MYSQLI_SERVER_PUBLIC_KEY | Fichier contenant la clé publique RSA utilisée avec l'authentification basée sur SHA-256.
MYSQLI_OPT_NET_CMD_BUFFER_SIZE | La taille du buffer interne de commande/réseau. Uniquement valide pour mysqlnd.
MYSQLI_OPT_NET_READ_BUFFER_SIZE | Taille, en octets, maximal de la partie à lire lors de la lecture du corps d'un paquet de commande MySQL. Uniquement valide pour mysqlnd.
MYSQLI_OPT_INT_AND_FLOAT_NATIVE | Convertie les colonnes entières et à virgules flottantes en nombre PHP. Uniquement valide pour mysqlnd.
MYSQLI_OPT_SSL_VERIFY_SERVER_CERT

value

La valeur pour l'option.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.5.0 | Les options MYSQLI_SERVER_PUBLIC_KEY et MYSQLI_SERVER_PUBLIC_KEY ont été ajoutées.
5.3.0 | Les options MYSQLI_OPT_INT_AND_FLOAT_NATIVE, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, MYSQLI_OPT_NET_READ_BUFFER_SIZE, et MYSQLI_OPT_SSL_VERIFY_SERVER_CERT ont été ajoutées.

Exemples

Voir mysqli_real_connect().

Notes

Note:

MySQLnd s'occupe toujours du jeu de caractères par défaut du serveur. Celui-ci est envoyé durant la négociation de la connexion ou l'authentification.

Libmysqlclient utilise le jeu de caractères par défaut de my.cnf ou via par un appel à mysqli_options() avant mysqli_real_connect(), mais après mysqli_init().

Voir aussi

  • mysqli_init() - Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()
  • mysqli_real_connect() - Ouvre une connexion à un serveur MySQL


Ping la connexion au serveur et reconnecte si elle n'existe plus

  • « mysqli::options
  • mysqli::poll »
  • PHP Manual
  • mysqli
  • Ping la connexion au serveur et reconnecte si elle n'existe plus

mysqli::ping

mysqli_ping

(PHP 5, PHP 7)

mysqli::ping -- mysqli_ping — Ping la connexion au serveur et reconnecte si elle n'existe plus

Description

Style orienté objet

bool mysqli::ping ( void )

Style procédural

bool mysqli_ping ( mysqli $link )

Vérifie si la connexion au serveur fonctionne correctement. Si elle a été refermée, et que la directive mysqli.reconnect est activée, une reconnexion automatique est tentée.

Cette fonction peut être utilisée pour que les clients qui restent longtemps ouverts sans action puissent vérifier que la connexion n'a pas été refermée par le serveur, et, le cas échéant, faire une reconnexion automatique.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::ping()

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

/* Vérification si la connexion est toujours active */
if ($mysqli->ping()) {
    printf ("La connexion est Ok !\n");
} else {
    printf ("Erreur : %s\n", $mysqli->error);
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Vérification si la connexion est toujours active */
if (mysqli_ping($link)) {
    printf ("La connexion est Ok !\n");
} else {
    printf ("Erreur : %s\n", mysqli_error($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

La connexion est valide !


Vérifie l'état de la connexion

  • « mysqli::ping
  • mysqli::prepare »
  • PHP Manual
  • mysqli
  • Vérifie l'état de la connexion

mysqli::poll

mysqli_poll

(PHP 5 >= 5.3.0, PHP 7)

mysqli::poll -- mysqli_poll — Vérifie l'état de la connexion

Description

Style orienté objet

public static int mysqli::poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] )

Style procédural

int mysqli_poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] )

Vérifie l'état de la connexion. Disponible uniquement avec mysqlnd. La méthode peut être utilisée comme statique.

Liste de paramètres

read

Liste des connexions à vérifier pour les résultats exceptionnels qui peuvent être lus.

error

Liste des connexions sur lesquelles une erreur est survenue, par exemple, des échecs de requêtes, ou des pertes de connexion.

reject

Liste des connexions rejetées car des requêtes non-asynchrones y ont été exécutées et pour lesquelles la fonction pourrait sortir des résultats.

sec

Nombre de secondes d'attente, doit être positif ou nul.

usec

Nombre de secondes d'attente, doit être positif ou nul.

Valeurs de retour

Retourne le nombre de connexions disponibles en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec mysqli_poll()

<?php
$link1 = mysqli_connect();
$link1->query("SELECT 'test'", MYSQLI_ASYNC);
$all_links = array($link1);
$processed = 0;
do {
    $links = $errors = $reject = array();
    foreach ($all_links as $link) {
        $links[] = $errors[] = $reject[] = $link;
    }
    if (!mysqli_poll($links, $errors, $reject, 1)) {
        continue;
    }
    foreach ($links as $link) {
        if ($result = $link->reap_async_query()) {
            print_r($result->fetch_row());
            if (is_object($result))
                mysqli_free_result($result);
        } else die(sprintf("Erreur MySQLi : %s", mysqli_error($link)));
        $processed++;
    }
} while ($processed < count($all_links));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => test
)

Voir aussi

  • mysqli_query() - Exécute une requête sur la base de données
  • mysqli_reap_async_query() - Lit un résultat pour une requête asynchrone


Prépare une requête SQL pour l'exécution

  • « mysqli::poll
  • mysqli::query »
  • PHP Manual
  • mysqli
  • Prépare une requête SQL pour l'exécution

mysqli::prepare

mysqli_prepare

(PHP 5, PHP 7)

mysqli::prepare -- mysqli_prepare — Prépare une requête SQL pour l'exécution

Description

Style orienté objet

mysqli_stmt mysqli::prepare ( string $query )

Style procédural

mysqli_stmt mysqli_prepare ( mysqli $link , string $query )

Prépare la requête SQL et retourne un gestionnaire de requête à utiliser pour les futures opérations sur la requête. La requête doit être composée d'une seule requête SQL.

Les paramètres de marques doivent être liés à des variables utilisées dans les fonctions mysqli_stmt_bind_param() et/ou mysqli_stmt_bind_result() avant d'exécuter la requête ou de récupérer les lignes.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères.

Note:

Vous ne devez pas ajouter de point virgule ou de \g dans la requête.

Ce paramètre peut inclure un ou plusieurs paramètres de marques dans la requête SQL avec le caractère "point d'interrogation" (?) à la position appropriée.

Note:

Les marques sont autorisées uniquement dans certaines endroits des requêtes SQL. Par exemple, elles le sont dans la liste VALUES() d'une requête INSERT (pour spécifier les valeurs des colonnes pour une ligne), ou dans une comparaison d'une clause WHERE pour spécifier une valeur de comparaison.

Cependant, elles ne sont pas autorisées pour les identifiants (comme les noms de tables ou de colonnes), dans une liste de sélection où les noms des colonnes doivent être retournés par une requête SELECT, ou pour spécifier un opérateur tel que le signe égal (=). La dernière restriction est nécessaire, car il est impossible de déterminer le type de paramètre. Il n'est pas non plus autorisé de comparer les marqueurs avec NULL par ? IS NULL. En général, les paramètres ne sont autorisés que dans les requêtes DML ("Data Manipulation Language") et non dans les requêtes DDL ("Data Definition Language").

Valeurs de retour

mysqli_prepare() retourne un objet de traitement ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::prepare()

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* Crée une requête préparée */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    /* Lecture des marqueurs */
    $stmt->bind_param("s", $city);

    /* Exécution de la requête */
    $stmt->execute();

    /* Lecture des variables résultantes */
    $stmt->bind_result($district);

    /* Récupération des valeurs */
    $stmt->fetch();

    printf("%s est dans le district de %s\n", $city, $district);

    /* Fermeture du traitement */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* Crée une requête préparée */
if ($stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?")) {

    /* Lecture des marqueurs */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* Exécution de la requête */
    mysqli_stmt_execute($stmt);

    /* Lecture des variables résultantes */
    mysqli_stmt_bind_result($stmt, $district);

    /* Récupération des valeurs */
    mysqli_stmt_fetch($stmt);

    printf("%s est dans le district de %s\n", $city, $district);

    /* Fermeture du traitement */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Amersfoort est dans le district de Utrecht

Voir aussi

  • mysqli_stmt_execute() - Exécute une requête préparée
  • mysqli_stmt_fetch() - Lit des résultats depuis une requête MySQL préparée dans des variables liées
  • mysqli_stmt_bind_param() - Lie des variables à une requête MySQL
  • mysqli_stmt_bind_result() - Lie des variables à un jeu de résultats
  • mysqli_stmt_close() - Termine une requête préparée


Exécute une requête sur la base de données

  • « mysqli::prepare
  • mysqli::real_connect »
  • PHP Manual
  • mysqli
  • Exécute une requête sur la base de données

mysqli::query

mysqli_query

(PHP 5, PHP 7)

mysqli::query -- mysqli_query — Exécute une requête sur la base de données

Description

Style orienté objet

mixed mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

Style procédural

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

Exécute une requête sur la base de données.

Pour les requêtes non-DML (qui n'est pas un INSERT, un UPDATE ou un DELETE),
cette fonction est similaire à appeler à appeler
mysqli_real_query() suivie de
mysqli_use_result() ou
mysqli_store_result().

Note:

Si vous passez une requête à mysqli_query() qui est plus longue que max_allowed_packet, les codes d'erreur en retour seront différents selon si vous utilisez MySQL Native Driver (mysqlnd) ou la MySQL Client Library (libmysqlclient). Le comportement est défini comme suit:

  • mysqlnd sur Linux retourne un code d'erreur de 1153. Le message d'erreur sera "got a packet bigger than max_allowed_packet bytes".

  • mysqlnd sur Windows retourne un code d'erreur de 2006. Le message sera du type "server has gone away".

  • libmysqlclient sur toute plateforme retourne le code d'erreur 2006. Le message sera du type "server has gone away".

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères.

Les données contenues dans la requête doivent être échappées.

resultmode

Soit la constante MYSQLI_USE_RESULT, soit la constante MYSQLI_STORE_RESULT, suivant le comportement désiré. Par défaut, la constante MYSQLI_STORE_RESULT est utilisé.

Si vous utilisez la constante MYSQLI_USE_RESULT, tous les appels suivants retourneront une erreur Commands out of sync tant que vous n'aurez pas appelé la fonction mysqli_free_result().

Avec la constante MYSQLI_ASYNC (disponible avec mysqlnd), il est possible de faire des requêtes asynchrone. mysqli_poll() est alors utilisé pour lire les résultats de ce type de requêtes.

Valeurs de retour

Retourne FALSE en cas d'échec. Pour des requêtes SELECT, SHOW, DESCRIBE ou EXPLAIN réussies, mysqli_query() retournera un objet mysqli_result. Pour les autres types de requêtes ayant réussies, mysqli_query() retournera TRUE.

Historique

Version | Description
5.3.0 | Ajout des requêtes asynchrones.

Exemples

Exemple #1 Exemple avec mysqli::query()

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if ($mysqli->connect_errno) {
    printf("Échec de la connexion : %s\n", $mysqli->connect_error);
    exit();
}

/* "Create table" ne retournera aucun jeu de résultats */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity créée avec succès.\n");
}

/* Requête "Select" retourne un jeu de résultats */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select a retourné %d lignes.\n", $result->num_rows);

    /* Libération du jeu de résultats */
    $result->close();
}

/* Si nous avons à récupérer beaucoup de données, nous utilisons MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Notez que nous ne pouvons exécuter aucune fonction qui agit sur le serveur tant que
        le jeu de résultats n'est pas clos. Tous les appels retourneront un 'out of sync'
    */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Erreur : %s\n", $mysqli->error);
    }
    $result->close();
}

$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* "Create table" ne retournera aucun jeu de résultats */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity créée avec succès.\n");
}

/* Requête "Select" retourne un jeu de résultats */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select a retourné %d lignes.\n", mysqli_num_rows($result));

    /* Libération du jeu de résultats */
    mysqli_free_result($result);
}

/* Si nous avons à récupérer beaucoup de données, nous utilisons MYSQLI_USE_RESULT */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Notez que nous ne pouvons exécuter aucune fonction qui agit sur le serveur tant que
        le jeu de résultats n'est pas clos. Tous les appels retourneront un 'out of sync'
    */
    if (!mysqli_query($link, "SET @a:='this will not work'")) {
        printf("Erreur : %s\n", mysqli_error($link));
    }
    mysqli_free_result($result);
}

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Table myCity créée avec succès.
Select a retourné 10 lignes.
Erreur : Commands out of sync;  You can't run this command now

Voir aussi

  • mysqli_real_query() - Exécute une requête SQL
  • mysqli_multi_query() - Exécute une requête MySQL multiple
  • mysqli_free_result() - Libère la mémoire associée à un résultat


Ouvre une connexion à un serveur MySQL

  • « mysqli::query
  • mysqli::real_escape_string »
  • PHP Manual
  • mysqli
  • Ouvre une connexion à un serveur MySQL

mysqli::real_connect

mysqli_real_connect

(PHP 5, PHP 7)

mysqli::real_connect -- mysqli_real_connect — Ouvre une connexion à un serveur MySQL

Description

Style orienté objet

bool mysqli::real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )

Style procédural

bool mysqli_real_connect ( mysqli $link [, string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )

mysqli_real_connect() établit une connexion avec un serveur MySQL.

Cette fonction diffère de mysqli_connect() :

  • mysqli_real_connect() a besoin d'un objet créé avec mysqli_init().

  • Avec la fonction mysqli_options(), vous pouvez configurer différentes options de connexion.

  • Il y a un paramètre supplémentaire flags.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

host

Peut-être un nom d'hôte ou une adresse IP. En utilisant la valeur NULL ou la chaîne "localhost", l'hôte local est utilisé. Lorsque c'est possible, les pipes seront utilisés à la place de la pile TCP/IP.

username

Le nom d'utilisateur MySQL.

passwd

Si non fourni ou NULL, le serveur MySQL tentera de réaliser l'identification avec les utilisateurs sans mot de passe. Cela permet à un nom d'utilisateur d'être utilisé avec différentes droits, suivant que le mot de passe est fourni ou pas.

dbname

Si fourni, ce paramètre indique le nom de la base de données de travail par défaut.

port

Spécifie le numéro de port à utiliser pour se connecter au serveur MySQL.

socket

Spécifie le socket ou le pipe nommé qui doit être utilisé pour établir la connexion.

Note:

Spécifier explicitement le paramètre socket ne détermine pas le type de méthode utilisée lors de la connexion à MySQL. La méthode est déterminée par le paramètre host.

flags

Avec le paramètre flags, vous pouvez configurer différentes directives de connexion :

Options supportées
Nom | Description
MYSQLI_CLIENT_COMPRESS | Utilise le protocole compressé
MYSQLI_CLIENT_FOUND_ROWS | Retourne le nombre de ligne trouvées, pas le nombre de lignes affectées.
MYSQLI_CLIENT_IGNORE_SPACE | Autorise les espaces entre les noms de fonctions et les arguments. Cela force les noms de fonctions à être des mots réservés.
MYSQLI_CLIENT_INTERACTIVE | Autorise interactive_timeout secondes (au lieu de wait_timeout secondes) d'inactivité avant de fermer la connexion.
MYSQLI_CLIENT_SSL | Utilise le chiffrement SSL
MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT | Identique à MYSQLI_CLIENT_SSL, mais désactive la validation des certificats SSL fournis. Cette constante n'est prévue que pour les installations utilisant le driver MySQL natif et MySQL 5.6 ou supérieur.

Note:

Pour des raisons de sécurité, l'option MULTI_STATEMENT n'est pas supportée en PHP. Si vous voulez exécuter plusieurs commandes, utilisez la fonction mysqli_multi_query().

Historique

Version | Description
5.6.16 | Ajout de la constante MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT pour le driver MySQL natif

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::real_connect()

Style orienté objet

<?php

$mysqli = mysqli_init();
if (!$mysqli) {
    die('mysqli_init failed');
}

if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
    die('Setting MYSQLI_INIT_COMMAND failed');
}

if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
    die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}

if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db')) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Succès... ' . $mysqli->host_info . "\n";

$mysqli->close();
?>

Style orienté objet, avec extension de la classe mysqli

<?php

class foo_mysqli extends mysqli {
    public function __construct($host, $user, $pass, $db) {
        parent::init();

        if (!parent::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
            die('Setting MYSQLI_INIT_COMMAND failed');
        }

        if (!parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
            die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
        }

        if (!parent::real_connect($host, $user, $pass, $db)) {
            die('Connect Error (' . mysqli_connect_errno() . ') '
                    . mysqli_connect_error());
        }
    }
}

$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');

echo 'Succès... ' . $db->host_info . "\n";

$db->close();
?>

Style procédural

<?php

$link = mysqli_init();
if (!$link) {
    die('mysqli_init failed');
}

if (!mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
    die('Setting MYSQLI_INIT_COMMAND failed');
}

if (!mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
    die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}

if (!mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'my_db')) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Succès... ' . mysqli_get_host_info($link) . "\n";

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Succès... MySQL host info: localhost via TCP/IP

Notes

Note:

MySQLnd s'occupe toujours du jeu de caractères par défaut du serveur. Celui-ci est envoyé durant la négociation de la connexion ou l'authentification.

Libmysqlclient utilise le jeu de caractères par défaut de my.cnf ou via par un appel à mysqli_options() avant mysqli_real_connect(), mais après mysqli_init().

Voir aussi

  • mysqli_connect() - Alias de mysqli::__construct
  • mysqli_init() - Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()
  • mysqli_options() - Définit les options
  • mysqli_ssl_set() - Utilisée pour établir une connexion sécurisée avec SSL
  • mysqli_close() - Ferme une connexion


Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion

  • « mysqli::real_connect
  • mysqli::real_query »
  • PHP Manual
  • mysqli
  • Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion

mysqli::real_escape_string

mysqli_real_escape_string

(PHP 5, PHP 7)

mysqli::real_escape_string -- mysqli_real_escape_string — Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion

Description

Style orienté objet

string mysqli::escape_string ( string $escapestr )
string mysqli::real_escape_string ( string $escapestr )

Style procédural

string mysqli_real_escape_string ( mysqli $link , string $escapestr )

Cette fonction est utilisée pour créer une chaîne SQL valide qui pourra être utilisée dans une requête SQL. La chaîne de caractères escapestr est encodée en une chaîne SQL échappée, en tenant compte du jeu de caractères courant de la connexion.

Attention

Securité : Le jeu de caractères par défaut

Le jeu de caractères doit être défini soit au niveau serveur, soit avec la fonction API mysqli_set_charset() pour qu'il affecte la fonction mysqli_real_escape_string(). Voir la section sur les concepts on des jeux de caractères pour plus d'informations.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

escapestr

La chaîne de caractères à échapper.

Les caractères encodés sont NUL (ASCII 0), \n, \r, \, ', ", and Control-Z.

Valeurs de retour

Retourne une chaîne de caractères échappée.

Exemples

Exemple #1 Exemple avec mysqli::real_escape_string()

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* Cette requête échoue car nous n'avons pas échappé $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Erreur : %s\n", $mysqli->sqlstate);
}

$city = $mysqli->real_escape_string($city);

/* Cette requête, par contre, réussira car nous avons échappé $city */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d ligne insérée.\n", $mysqli->affected_rows);
}

$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* Cette requête échoue car nous n'avons pas échappé $city */
if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Erreur : %s\n", mysqli_sqlstate($link));
}

$city = mysqli_real_escape_string($link, $city);

/* Cette requête, par contre, réussira car nous avons échappé $city */
if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d ligne insérée.\n", mysqli_affected_rows($link));
}

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur : 42000
1 ligne insérée.

Notes

Note:

Si vous êtes habitués à utiliser la fonction mysql_real_escape_string(), notez que les arguments de la fonction mysqli_real_escape_string() ne sont pas identiques à ceux de la fonction mysql_real_escape_string(). L'identifiant link est le premier argument pour la fonction mysqli_real_escape_string(), alors que la chaîne à échapper est le premier argument pour la fonction mysql_real_escape_string().

Voir aussi

  • mysqli_set_charset() - Définit le jeu de caractères par défaut du client
  • mysqli_character_set_name() - Retourne le jeu de caractères courant pour la connexion


Exécute une requête SQL

  • « mysqli::real_escape_string
  • mysqli::reap_async_query »
  • PHP Manual
  • mysqli
  • Exécute une requête SQL

mysqli::real_query

mysqli_real_query

(PHP 5, PHP 7)

mysqli::real_query -- mysqli_real_query — Exécute une requête SQL

Description

Style orienté objet

bool mysqli::real_query ( string $query )

Style procédural

bool mysqli_real_query ( mysqli $link , string $query )

Exécute une seule requête sur la connexion à la base de données représentée par le paramètre link dont le résultat peut être récupéré ou stocké en utilisant les fonctions mysqli_store_result() ou mysqli_use_result().

Pour déterminer si une requête donnée aurait dû retourner un jeu de résultats ou non, voyez la fonction mysqli_field_count().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères.

Les données contenues dans la requête doivent être échappées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mysqli_query() - Exécute une requête sur la base de données
  • mysqli_store_result() - Transfère un jeu de résultats à partir de la dernière requête
  • mysqli_use_result() - Initialise la récupération d'un jeu de résultats


Lit un résultat pour une requête asynchrone

  • « mysqli::real_query
  • mysqli::refresh »
  • PHP Manual
  • mysqli
  • Lit un résultat pour une requête asynchrone

mysqli::reap_async_query

mysqli_reap_async_query

(PHP 5 >= 5.3.0, PHP 7)

mysqli::reap_async_query -- mysqli_reap_async_query — Lit un résultat pour une requête asynchrone

Description

Style orienté objet

public mysqli_result mysqli::reap_async_query ( void )

Style procédural

mysqli_result mysqli_reap_async_query ( mysqli $link )

Lit le résultat pour une requête asynchrone. Disponible uniquement avec mysqlnd.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne un objet mysqli_result en cas de succès, et FALSE sinon.

Voir aussi

  • mysqli_poll() - Vérifie l'état de la connexion


Rafraîchie

  • « mysqli::reap_async_query
  • mysqli::release_savepoint »
  • PHP Manual
  • mysqli
  • Rafraîchie

mysqli::refresh

mysqli_refresh

(PHP 5 <= 5.3.0)

mysqli::refresh -- mysqli_refresh — Rafraîchie

Description

Style orienté objet

public bool mysqli::refresh ( int $options )

Style procédural

int mysqli_refresh ( resource $link , int $options )

Rafraîchie les tables ou les caches, ou ré-initialise les informations du serveur de réplication.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

options

Les options de rafraîchissement, en utilisant les constantes MYSQLI_REFRESH_* telles que documentées dans la documentation sur les constantes MySQLi.

Voir aussi la documentation officielle sur » le rafraîchissement en MySQL.

Valeurs de retour

TRUE si le rafraîchissement s'est déroulé avec succès, FALSE sinon.

Voir aussi

  • mysqli_poll() - Vérifie l'état de la connexion


Supprime le point de sauvegardé nommé du jeu des points de sauvegarde de la transaction courante

  • « mysqli::refresh
  • mysqli::rollback »
  • PHP Manual
  • mysqli
  • Supprime le point de sauvegardé nommé du jeu des points de sauvegarde de la transaction courante

mysqli::release_savepoint

mysqli_release_savepoint

(PHP 5 >= 5.5.0, PHP 7)

mysqli::release_savepoint -- mysqli_release_savepoint — Supprime le point de sauvegardé nommé du jeu des points de sauvegarde de la transaction courante

Description

Style orienté objet (method):

public bool mysqli::release_savepoint ( string $name )

Style procédural:

bool mysqli_release_savepoint ( mysqli $link , string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

name

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mysqli_rollback() - Annule la transaction courante


Annule la transaction courante

  • « mysqli::release_savepoint
  • mysqli::rpl_query_type »
  • PHP Manual
  • mysqli
  • Annule la transaction courante

mysqli::rollback

mysqli_rollback

(PHP 5, PHP 7)

mysqli::rollback -- mysqli_rollback — Annule la transaction courante

Description

Style orienté objet

bool mysqli::rollback ([ int $flags [, string $name ]] )

Style procédural

bool mysqli_rollback ( mysqli $link [, int $flags [, string $name ]] )

Annule la transaction courante pour la base de données.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

flags

Un masque de constantes MYSQLI_TRANS_COR_*.

name

Si fourni, alors ROLLBACK/*name*/ est exécuté.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.5.0 | Ajout des paramètres flags et name.

Exemples

Exemple #1 Exemple avec mysqli::rollback()

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Désactive l'auto-commit */
$mysqli->autocommit(FALSE);

$mysqli->query("CREATE TABLE myCity LIKE City");
$mysqli->query("ALTER TABLE myCity Type=InnoDB");
$mysqli->query("INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* Validation */
$mysqli->commit();

/* Effacement de toutes les lignes */
$mysqli->query("DELETE FROM myCity");

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d ligne dans la table myCity.\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Rollback */
$mysqli->rollback();

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d lignes dans la table myCity (après annulation).\n", $row[0]);
    /* Libère le résultat */
    $result->close();
}

/* Effacement de la table myCity */
$mysqli->query("DROP TABLE myCity");

$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Désactive l'auto-commit */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE myCity LIKE City");
mysqli_query($link, "ALTER TABLE myCity Type=InnoDB");
mysqli_query($link, "INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* Validation */
mysqli_commit($link);

/* Effacement de toutes les lignes */
mysqli_query($link, "DELETE FROM myCity");

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d ligne dans la table myCity.\n", $row[0]);
    /* Libère le résultat */
    mysqli_free_result($result);
}

/* Rollback */
mysqli_rollback($link);

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d lignes dans la table myCity (après annulation).\n", $row[0]);
    /* Free result */
    mysqli_free_result($result);
}

/* Effacement de la table myCity */
mysqli_query($link, "DROP TABLE myCity");

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

0 ligne dans la table myCity.
50 lignes dans la table myCity (après annulation).

Voir aussi

  • mysqli_begin_transaction() - Démarre une transaction
  • mysqli_commit() - Valide la transaction courante
  • mysqli_autocommit() - Active ou désactive le mode auto-commit
  • mysqli_release_savepoint() - Supprime le point de sauvegardé nommé du jeu des points de sauvegarde de la transaction courante


Retourne le type de requête RPL

  • « mysqli::rollback
  • mysqli::savepoint »
  • PHP Manual
  • mysqli
  • Retourne le type de requête RPL

mysqli::rpl_query_type

mysqli_rpl_query_type

(PHP 5, PHP 7)

mysqli::rpl_query_type -- mysqli_rpl_query_type — Retourne le type de requête RPL

Description

Style orienté objet

int mysqli::rpl_query_type ( string $query )

Style procédural

int mysqli_rpl_query_type ( mysqli $link , string $query )

Retourne MYSQLI_RPL_MASTER, MYSQLI_RPL_SLAVE ou MYSQLI_RPL_ADMIN, en fonction du type de requête. INSERT, UPDATE et similaire sont des requêtes maîtres, SELECT est esclave, et FLUSH, REPAIR et similaire sont des requêtes d'administration.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction est obsolète et a été supprimée depuis PHP 5.3.0.


Défini un point de sauvegarde nommé de la transaction

  • « mysqli::rpl_query_type
  • mysqli::select_db »
  • PHP Manual
  • mysqli
  • Défini un point de sauvegarde nommé de la transaction

mysqli::savepoint

mysqli_savepoint

(PHP 5 >= 5.5.0, PHP 7)

mysqli::savepoint -- mysqli_savepoint — Défini un point de sauvegarde nommé de la transaction

Description

Style orienté objet (method):

public bool mysqli::savepoint ( string $name )

Style procédural:

bool mysqli_savepoint ( mysqli $link , string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

name

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mysqli_commit() - Valide la transaction courante


Sélectionne une base de données par défaut pour les requêtes

  • « mysqli::savepoint
  • mysqli::send_query »
  • PHP Manual
  • mysqli
  • Sélectionne une base de données par défaut pour les requêtes

mysqli::select_db

mysqli_select_db

(PHP 5, PHP 7)

mysqli::select_db -- mysqli_select_db — Sélectionne une base de données par défaut pour les requêtes

Description

Style orienté objet

bool mysqli::select_db ( string $dbname )

Style procédural

bool mysqli_select_db ( mysqli $link , string $dbname )

Sélectionne la base de données par défaut (spécifiée par le paramètre dbname) pour être utilisée lors de l'exécution de requêtes sur la connexion représentée par le paramètre link.

Note:

Cette fonction ne doit être utilisée que pour changer la base de données par défaut pour la connexion courante. Vous pouvez sélectionner la base de données par défaut avec le 4ème paramètre de la fonction mysqli_connect().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

dbname

Le nom de la base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::select_db()

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Retourne le nom de la base de données courante */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("La base de données courante est %s.\n", $row[0]);
    $result->close();
}

/* Change la base de données en "world" */
$mysqli->select_db("world");

/* Retourne le nom de la base de données courante */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("La base de données courante est %s.\n", $row[0]);
    $result->close();
}

$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Retourne le nom de la base de données courante */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("La base de données courante est %s.\n", $row[0]);
    mysqli_free_result($result);
}

/* Change la base de données en "world" */
mysqli_select_db($link, "world");

/* Retourne le nom de la base de données courante */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("La base de données courante est %s.\n", $row[0]);
    mysqli_free_result($result);
}

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

La base de données courante est test.
La base de données courante est world.

Voir aussi

  • mysqli_connect() - Alias de mysqli::__construct
  • mysqli_real_connect() - Ouvre une connexion à un serveur MySQL


Envoie la requête et retourne

  • « mysqli::select_db
  • mysqli::set_charset »
  • PHP Manual
  • mysqli
  • Envoie la requête et retourne

mysqli::send_query

mysqli_send_query

(PHP 5, PHP 7)

mysqli::send_query -- mysqli_send_query — Envoie la requête et retourne

Description

Style orienté objet

bool mysqli::send_query ( string $query )

Style procédural

bool mysqli_send_query ( mysqli $link , string $query )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction est obsolète et a été supprimée depuis PHP 5.3.0.


Définit le jeu de caractères par défaut du client

  • « mysqli::send_query
  • mysqli::set_local_infile_default »
  • PHP Manual
  • mysqli
  • Définit le jeu de caractères par défaut du client

mysqli::set_charset

mysqli_set_charset

(PHP 5 >= 5.0.5, PHP 7)

mysqli::set_charset -- mysqli_set_charset — Définit le jeu de caractères par défaut du client

Description

Style orienté objet

bool mysqli::set_charset ( string $charset )

Style procédural

bool mysqli_set_charset ( mysqli $link , string $charset )

Définit le jeu de caractères par défaut à utiliser lors de l'envoi de données depuis et vers le serveur de base de données.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

charset

Le jeu de caractères à définir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Pour utiliser cette fonction sur les systèmes Windows, vous devez utiliser la bibliothèque client MySQL version 4.1.11 ou suivante (pour MySQL 5.0, vous avez besoin de la version 5.0.6 ou suivante).

Note:

C'est la meilleure façon de modifier le jeu de caractères. Il n'est pas recommandé d'utiliser la fonction mysqli_query() pour le définir (comme avec la requête SET NAMES utf8). Voir la section Concepts des jeux de caractères MySQL pour plus d'informations.

Exemples

Exemple #1 Exemple avec mysqli::set_charset()

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

printf("Jeu de caractère initial : %s\n", $mysqli->character_set_name());

/* Modification du jeu de résultats en utf8 */
if (!$mysqli->set_charset("utf8")) {
    printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $mysqli->error);
    exit();
} else {
    printf("Jeu de caractères courant : %s\n", $mysqli->character_set_name());
}

$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

printf("Jeu de caractère initial : %s\n", mysqli_character_set_name($link));

/* Modification du jeu de résultats en utf8 */
if (!mysqli_set_charset($link, "utf8")) {
    printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", mysqli_error($link));
    exit();
} else {
    printf("Jeu de caractères courant : %s\n", mysqli_character_set_name($link));
}

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Jeu de caractère initial : latin1
Jeu de caractères courant : utf8

Voir aussi

  • mysqli_character_set_name() - Retourne le jeu de caractères courant pour la connexion
  • mysqli_real_escape_string() - Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion
  • Concepts des jeux de caractères MySQL
  • » Liste des jeux de caractères supportés par MySQL


Rétablit le gestionnaire par défaut pour la commande LOAD LOCAL INFILE

  • « mysqli::set_charset
  • mysqli::set_local_infile_handler »
  • PHP Manual
  • mysqli
  • Rétablit le gestionnaire par défaut pour la commande LOAD LOCAL INFILE

mysqli::set_local_infile_default

mysqli_set_local_infile_default

(PHP 5, PHP 7)

mysqli::set_local_infile_default -- mysqli_set_local_infile_default — Rétablit le gestionnaire par défaut pour la commande LOAD LOCAL INFILE

Description

void mysqli_set_local_infile_default ( mysqli $link )

Désactive un gestionnaire LOAD DATA INFILE LOCAL précédemment définit avec la fonction mysqli_set_local_infile_handler().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Voir l'exemple de la fonction mysqli_set_local_infile_handler()

Voir aussi

  • mysqli_set_local_infile_handler() - Définit une fonction de rappel pour la commande LOAD DATA LOCAL INFILE


Définit une fonction de rappel pour la commande LOAD DATA LOCAL INFILE

  • « mysqli::set_local_infile_default
  • mysqli::$sqlstate »
  • PHP Manual
  • mysqli
  • Définit une fonction de rappel pour la commande LOAD DATA LOCAL INFILE

mysqli::set_local_infile_handler

mysqli_set_local_infile_handler

(PHP 5, PHP 7)

mysqli::set_local_infile_handler -- mysqli_set_local_infile_handler — Définit une fonction de rappel pour la commande LOAD DATA LOCAL INFILE

Description

Style orienté objet

bool mysqli::set_local_infile_handler ( mysqli $link , callable $read_func )

Style procédural

bool mysqli_set_local_infile_handler ( mysqli $link , callable $read_func )

Définit une fonction de rappel pour la commande LOAD DATA LOCAL INFILE.

Le but de la fonction de rappel est de lire le fichier spécifié par LOAD DATA LOCAL INFILE et de le reformater dans un format compris par LOAD DATA INFILE.

Les données retournées doivent correspondre au format spécifié par LOAD DATA

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

read_func

Une fonction ou une méthode d'objet de rappel prend les paramètres suivants :

stream

un flux PHP associé avec les commandes SQL INFILE

&buffer

Une chaîne pour y stocker les données réécrites

buflen

Le nombre maximal de caractères à stocker dans le buffer

&errormsg

Si une erreur survient, vous pourrez stocker le message d'erreur ici

La fonction de rappel doit retourner le nombre de caractères stockés dans le buffer ou une valeur négative si une erreur survient.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::set_local_infile_handler()

Style orienté objet

<?php
  $db = mysqli_init();
  $db->real_connect("localhost","root","","test");

  function callme($stream, &$buffer, $buflen, &$errmsg)
  {
    $buffer = fgets($stream);

    echo $buffer;

    // convertit en majuscule et remplace le délimiteur "," par [TAB]
    $buffer = strtoupper(str_replace(",", "\t", $buffer));

    return strlen($buffer);
  }

  echo "Entrée :\n";

  $db->set_local_infile_handler("callme");
  $db->query("LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1");
  $db->set_local_infile_default();

  $res = $db->query("SELECT * FROM t1");

  echo "\nSortie :\n";
  while ($row = $res->fetch_assoc()) {
    echo join(",", $row)."\n";
  }
?>

Style procédural

<?php
  $db = mysqli_init();
  mysqli_real_connect($db, "localhost","root","","test");

  function callme($stream, &$buffer, $buflen, &$errmsg)
  {
    $buffer = fgets($stream);

    echo $buffer;

    // convertit en majuscule et remplace le délimiteur "," par [TAB]
    $buffer = strtoupper(str_replace(",", "\t", $buffer));

    return strlen($buffer);
  }

  echo "Entrée :\n";

  mysqli_set_local_infile_handler($db, "callme");
  mysqli_query($db, "LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1");
  mysqli_set_local_infile_default($db);

  $res = mysqli_query($db, "SELECT * FROM t1");

  echo "\nSortie :\n";
  while ($row = mysqli_fetch_assoc($res)) {
    echo join(",", $row)."\n";
  }
?>

Les exemples ci-dessus vont afficher :

Entrée :
23,foo
42,bar

Sortie :
23,FOO
42,BAR

Voir aussi

  • mysqli_set_local_infile_default() - Rétablit le gestionnaire par défaut pour la commande LOAD LOCAL INFILE


Retourne l'erreur SQLSTATE de la dernière opération MySQL

  • « mysqli::set_local_infile_handler
  • mysqli::ssl_set »
  • PHP Manual
  • mysqli
  • Retourne l'erreur SQLSTATE de la dernière opération MySQL

mysqli::$sqlstate

mysqli_sqlstate

(PHP 5, PHP 7)

mysqli::$sqlstate -- mysqli_sqlstate — Retourne l'erreur SQLSTATE de la dernière opération MySQL

Description

Style orienté objet

string $mysqli->sqlstate;

Style procédural

string mysqli_sqlstate ( mysqli $link )

Retourne une chaîne contenant le code d'erreur SQLSTATE de la dernière erreur. Le code d'erreur '00000' signifie : "pas d'erreur". Les valeurs sont spécifiées par les normes ANSI SQL et ODBC. Pour une liste des valeurs possibles, voyez : » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Note:

Notez que toutes les erreurs de MySQL n'ont pas encore de correspondance avec les erreurs SQLSTATE. La valeur HY000 (erreur générale) est utilisée pour les erreurs sans correspondance.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne une chaîne contenant le code d'erreur SQLSTATE de la dernière erreur. Le code est constitué de 5 caractères : '00000' représente l'absence d'erreurs.

Exemples

Exemple #1 Exemple avec $mysqli->sqlstate

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* La table Ville existe déjà, nous devrions avoir une erreur */
if (!$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Erreur - SQLSTATE %s.\n", $mysqli->sqlstate);
}

$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* La table Ville existe déjà, nous devrions avoir une erreur */
if (!mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Erreur - SQLSTATE %s.\n", mysqli_sqlstate($link));
}

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur - SQLSTATE 42S01.

Voir aussi

  • mysqli_errno() - Retourne le dernier code d'erreur produit
  • mysqli_error() - Retourne une chaîne décrivant la dernière erreur


Utilisée pour établir une connexion sécurisée avec SSL

  • « mysqli::$sqlstate
  • mysqli::stat »
  • PHP Manual
  • mysqli
  • Utilisée pour établir une connexion sécurisée avec SSL

mysqli::ssl_set

mysqli_ssl_set

(PHP 5, PHP 7)

mysqli::ssl_set -- mysqli_ssl_set — Utilisée pour établir une connexion sécurisée avec SSL

Description

Style orienté objet

bool mysqli::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher )

Style procédural

bool mysqli_ssl_set ( mysqli $link , string $key , string $cert , string $ca , string $capath , string $cipher )

Utilisée pour établir une connexion sécurisée avec SSL. Elle doit être appelée avant mysqli_real_connect(). Cette fonction ne fait rien du tout si le support OpenSSL n'est pas activé.

Noter que le driver natif MySQL ne supporte pas SSL avant PHP 5.3.3, aussi, l'appel à cette fonction lors de l'utilisation du driver natif MySQL retournera une erreur. Le driver natif MySQL est activé par défaut sous Microsoft Windows depuis PHP version 5.3 et suivants.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

key

Le chemin vers le fichier contenant la clé.

cert

Le chemin vers le fichier contenant le certificat.

ca

Le chemin vers le fichier contenant l'autorité du certificat.

capath

Le chemin vers le dossier contenant les certificats SSL CA au format PEM.

cipher

La liste des chiffres autorisés à être utilisés pour le chiffrage SSL.

Tous les paramètres SSL non utilisés peuvent avoir comme valeur NULL.

Valeurs de retour

Cette fonction retourne toujours TRUE. Si SSL n'est pas correctement installé, mysqli_real_connect() retournera une erreur lorsque vous tenterez une connexion.

Voir aussi

  • mysqli_options() - Définit les options
  • mysqli_real_connect() - Ouvre une connexion à un serveur MySQL


Obtient le statut courant du système

  • « mysqli::ssl_set
  • mysqli::stmt_init »
  • PHP Manual
  • mysqli
  • Obtient le statut courant du système

mysqli::stat

mysqli_stat

(PHP 5, PHP 7)

mysqli::stat -- mysqli_stat — Obtient le statut courant du système

Description

Style orienté objet

string mysqli::stat ( void )

Style procédural

string mysqli_stat ( mysqli $link )

mysqli_stat() retourne une chaîne de caractères contenant des informations similaires à la commande 'mysqladmin status'. Cela inclut le temps de fonctionnement, exprimé en secondes et le nombre de threads courant, le nombre de commandes, les tables rechargées et ouvertes.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères décrivant le statut du serveur. FALSE est retourné si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::stat()

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

printf ("Statut du système : %s\n", $mysqli->stat());

$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

printf("Statut du système : %s\n", mysqli_stat($link));

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Statut du système : Uptime: 272  Threads: 1  Questions: 5340  Slow queries: 0
Opens: 13  Flush tables: 1  Open tables: 0  Queries per second avg: 19.632
Memory in use: 8496K  Max memory used: 8560K

Voir aussi

  • mysqli_get_server_info() - Retourne la version du serveur MySQL


Initialise une commande MySQL

  • « mysqli::stat
  • mysqli::store_result »
  • PHP Manual
  • mysqli
  • Initialise une commande MySQL

mysqli::stmt_init

mysqli_stmt_init

(PHP 5, PHP 7)

mysqli::stmt_init -- mysqli_stmt_init — Initialise une commande MySQL

Description

Style orienté objet

mysqli_stmt mysqli::stmt_init ( void )

Style procédural

mysqli_stmt mysqli_stmt_init ( mysqli $link )

Alloue et initialise un objet de commande, à utiliser avec mysqli_stmt_prepare().

Note:

Tous les appels ultérieurs aux fonctions mysqli_stmt_* échoueront, si mysqli_stmt_prepare() est appelée.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne un objet.

Voir aussi

  • mysqli_stmt_prepare() - Prépare une requête SQL pour l'exécution


Transfère un jeu de résultats à partir de la dernière requête

  • « mysqli::stmt_init
  • mysqli::$thread_id »
  • PHP Manual
  • mysqli
  • Transfère un jeu de résultats à partir de la dernière requête

mysqli::store_result

mysqli_store_result

(PHP 5, PHP 7)

mysqli::store_result -- mysqli_store_result — Transfère un jeu de résultats à partir de la dernière requête

Description

Style orienté objet

mysqli_result mysqli::store_result ([ int $option ] )

Style procédural

mysqli_result mysqli_store_result ( mysqli $link [, int $option ] )

Transfère le jeu de résultats à partir de la dernière requête sur la connexion à la base de données spécifiée par le paramètre link pour une utilisation avec mysqli_data_seek().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

option

L'option que vous souhaitez définir. Elle peut prendre l'une des valeurs suivantes :

Options valides
Nom | Description
MYSQLI_STORE_RESULT_COPY_DATA | Copie les résultats récupérés d'un buffer interne mysqlnd dans des variables PHP. Par défaut, mysqlnd utilisera une référence logique pour éviter la copie et la duplications des résultats contenus en mémoire. Pour certains jeux de résultats, par exemple, les jeux de résultats avec beaucoup de petites lignes, l'approche de la copie peut réduire l'utilisation mémoire par les variables PHP contenant les résultats peuvent être libérées rapidement (disponible uniquement avec mysqlnd, depuis PHP 5.6.0)

Valeurs de retour

Retourne un résultat stocké sous la forme d'un objet ou FALSE si une erreur survient.

Note:

mysqli_store_result() retourne FALSE dans le cas où la requête ne retourne pas de jeu de résultat (si la requête est de type INSERT par exemple). Cette fonction retournera toujours FALSE si le jeu de résultats ne peut être lu. Vous pouvez savoir s'il y a une erreur en utilisant la fonction mysqli_error() et en regardant si elle renvoie une chaîne vide, ou si mysqli_errno() retourne zéro, ou bien si mysqli_field_count() retourne une valeur différente de zéro. Une autre raison pour que cette fonction retourne FALSE est que le jeu de résultats retourné après une requête réussie appelée par mysqli_query() est trop long (la mémoire pour celui-ci ne peut être allouée). Si mysqli_field_count() retourne une valeur différente de zéro, le traitement devrait produire un jeu de résultats non vide.

Notes

Note:

Il est toujours conseillé de libérer la mémoire allouée pour le résultat en utilisant la fonction mysqli_free_result(), lors du transfert de grands résultats en utilisant la fonction mysqli_store_result() cela devient particulièrement important.

Exemples

Voir la fonction mysqli_multi_query().

Voir aussi

  • mysqli_real_query() - Exécute une requête SQL
  • mysqli_use_result() - Initialise la récupération d'un jeu de résultats


Retourne l'identifiant du thread pour la connexion courante

  • « mysqli::store_result
  • mysqli::thread_safe »
  • PHP Manual
  • mysqli
  • Retourne l'identifiant du thread pour la connexion courante

mysqli::$thread_id

mysqli_thread_id

(PHP 5, PHP 7)

mysqli::$thread_id -- mysqli_thread_id — Retourne l'identifiant du thread pour la connexion courante

Description

Style orienté objet

int $mysqli->thread_id;

Style procédural

int mysqli_thread_id ( mysqli $link )

La fonction mysqli_thread_id() retourne l'identifiant du thread de la connexion courante qui peut être terminé par la suite en utilisant la fonction mysqli_kill(). Si la connexion est perdue et que vous vous reconnectez avec la fonction mysqli_ping(), l'identifiant du thread sera différent. Ainsi, vous devez récupérer l'identifiant du thread uniquement lorsque vous en avez besoin.

Note:

L'identifiant du thread est assigné sur une base de connexion par connexion. Ce qui fait que si la connexion est coupée, puis relancée, un nouvel identifiant de thread lui sera assigné.

Pour terminer une requête en cours d'exécution, vous pouvez utiliser la commande SQL KILL QUERY processid.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne l'identifiant du thread pour la connexion courante.

Exemples

Exemple #1 Exemple avec $mysqli->thread_id

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Détermine l'identifiant du thread */
$thread_id = $mysqli->thread_id;

/* Termine la connexion */
$mysqli->kill($thread_id);

/* Ceci doit produire une erreur */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Erreur : %s\n", $mysqli->error);
    exit;
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Détermine l'identifiant du thread */
$thread_id = mysqli_thread_id($link);

/* Termine la connexion */
mysqli_kill($link, $thread_id);

/* Ceci doit produire une erreur */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Erreur : %s\n", mysqli_error($link));
    exit;
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur : MySQL server has gone away

Voir aussi

  • mysqli_kill() - Demande au serveur de terminer un thread MySQL


Indique si le support des threads est activé ou pas

  • « mysqli::$thread_id
  • mysqli::use_result »
  • PHP Manual
  • mysqli
  • Indique si le support des threads est activé ou pas

mysqli::thread_safe

mysqli_thread_safe

(PHP 5, PHP 7)

mysqli::thread_safe -- mysqli_thread_safe — Indique si le support des threads est activé ou pas

Description

Style procédural

bool mysqli_thread_safe ( void )

Indique si la bibliothèque cliente est compilée avec la sécurité thread.

Valeurs de retour

TRUE si la bibliothèque cliente est thread-safe, FALSE sinon.


Initialise la récupération d'un jeu de résultats

  • « mysqli::thread_safe
  • mysqli::$warning_count »
  • PHP Manual
  • mysqli
  • Initialise la récupération d'un jeu de résultats

mysqli::use_result

mysqli_use_result

(PHP 5, PHP 7)

mysqli::use_result -- mysqli_use_result — Initialise la récupération d'un jeu de résultats

Description

Style orienté objet

mysqli_result mysqli::use_result ( void )

Style procédural

mysqli_result mysqli_use_result ( mysqli $link )

Utilisé pour initialiser la récupération d'un jeu de résultats à partir de la dernière requête exécutée en utilisant la fonction mysqli_real_query() sur la connexion spécifiée par le paramètre link.

Cette fonction ou la fonction mysqli_store_result() doivent être appelées avant que le résultat d'une requête ne puisse être récupéré, et pour éviter l'échec de la prochaine requête sur la connexion à la base de données.

Note:

La fonction mysqli_use_result() ne transfère pas le jeu de résultats en entier à partir de la base de données et on ne peut donc pas utiliser des fonctions telle mysqli_data_seek() pour se déplacer entre les enregistrements. Pour utiliser cette fonctionnalité, vous devez récupérer le jeu de résultats en utilisant mysqli_store_result().

Valeurs de retour

Retourne un objet de résultats non stockés ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqli::use_result()

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* Exécution de plusieurs requêtes */
if ($mysqli->multi_query($query)) {
    do {
        /* Stockage du premier jeu de résultats */
        if ($result = $mysqli->use_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* Affichage d'une démarcation */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* Exécution de plusieurs requêtes */
if (mysqli_multi_query($link, $query)) {
    do {
        /* Stockage du premier jeu de résultats */
        if ($result = mysqli_use_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* Affichage d'une démarcation */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Voir aussi

  • mysqli_real_query() - Exécute une requête SQL
  • mysqli_store_result() - Transfère un jeu de résultats à partir de la dernière requête


Retourne le nombre d'avertissements générés par la dernière requête

  • « mysqli::use_result
  • mysqli_stmt »
  • PHP Manual
  • mysqli
  • Retourne le nombre d'avertissements générés par la dernière requête

mysqli::$warning_count

mysqli_warning_count

(PHP 5, PHP 7)

mysqli::$warning_count -- mysqli_warning_count — Retourne le nombre d'avertissements générés par la dernière requête

Description

Style orienté objet

int $mysqli->warning_count;

Style procédural

int mysqli_warning_count ( mysqli $link )

Retourne le nombre d'avertissements générés par la dernière requête de la connexion représentée par le paramètre link.

Note:

Pour récupérer les messages d'avertissements, vous pouvez utiliser la commande SQL SHOW WARNINGS [limit row_count].

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Le nombre d'avertissements ou 0 s'il n'y en a pas.

Exemples

Exemple #1 Exemple avec $mysqli->warning_count

Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* une ville remarquable en Grande-Bretagne :-) */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

$mysqli->query($query);

if ($mysqli->warning_count) {
    if ($result = $mysqli->query("SHOW WARNINGS")) {
        $row = $result->fetch_row();
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        $result->close();
    }
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* une ville remarquable en Grande-Bretagne :-) */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

mysqli_query($link, $query);

if (mysqli_warning_count($link)) {
    if ($result = mysqli_query($link, "SHOW WARNINGS")) {
        $row = mysqli_fetch_row($result);
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        mysqli_free_result($result);
    }
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Warning (1264): Data truncated for column 'Name' at row 1

Voir aussi

  • mysqli_errno() - Retourne le dernier code d'erreur produit
  • mysqli_error() - Retourne une chaîne décrivant la dernière erreur
  • mysqli_sqlstate() - Retourne l'erreur SQLSTATE de la dernière opération MySQL


La classe mysqli_stmt

(PHP 5, PHP 7)

Introduction

Représente une requête préparée.

Synopsis de la classe

mysqli_stmt {
/* Propriétés */
int $affected_rows;
int $errno;
array $error_list;
string $error;
int $field_count;
int $insert_id;
int $num_rows;
int $param_count;
string $sqlstate;
/* Méthodes */
__construct ( mysqli $link [, string $query ] )
int attr_get ( int $attr )
bool attr_set ( int $attr , int $mode )
bool bind_param ( string $types , mixed &$var1 [, mixed &$... ] )
bool bind_result ( mixed &$var1 [, mixed &$... ] )
bool close ( void )
void data_seek ( int $offset )
bool execute ( void )
bool fetch ( void )
void free_result ( void )
mysqli_result get_result ( void )
object get_warnings ( mysqli_stmt $stmt )
mixed prepare ( string $query )
bool reset ( void )
mysqli_result result_metadata ( void )
bool send_long_data ( int $param_nr , string $data )
bool store_result ( void )
}

Sommaire

  • mysqli_stmt::$affected_rows — Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête
  • mysqli_stmt::attr_get — Récupère la valeur courante d'un attribut de requête
  • mysqli_stmt::attr_set — Modifie le comportement d'une requête préparée
  • mysqli_stmt::bind_param — Lie des variables à une requête MySQL
  • mysqli_stmt::bind_result — Lie des variables à un jeu de résultats
  • mysqli_stmt::close — Termine une requête préparée
  • mysqli_stmt::__construct — Construit un nouvel objet mysqli_stmt
  • mysqli_stmt::data_seek — Déplace le pointeur de résultat
  • mysqli_stmt::$errno — Retourne un code erreur pour la dernière requête
  • mysqli_stmt::$error_list — Retourne une liste d'erreurs pour la dernière requête exécutée
  • mysqli_stmt::$error — Retourne une description de la dernière erreur de traitement
  • mysqli_stmt::execute — Exécute une requête préparée
  • mysqli_stmt::fetch — Lit des résultats depuis une requête MySQL préparée dans des variables liées
  • mysqli_stmt::$field_count — Retourne le nombre de champs présent dans la requête donnée
  • mysqli_stmt::free_result — Libère le résultat MySQL de la mémoire
  • mysqli_stmt::get_result — Récupère un jeu de résultats depuis une requête préparée
  • mysqli_stmt::get_warnings — Récupère le résultat de SHOW WARNINGS
  • mysqli_stmt::$insert_id — Récupère l'ID généré par la dernière requête INSERT
  • mysqli_stmt::more_results — Vérifie s'il y a encore des résultats depuis une requête multiple
  • mysqli_stmt::next_result — Lit le résultat suivant depuis une requête multiple
  • mysqli_stmt::$num_rows — Retourne le nombre de lignes d'un résultat MySQL
  • mysqli_stmt::$param_count — Retourne le nombre de paramètre d'une commande SQL
  • mysqli_stmt::prepare — Prépare une requête SQL pour l'exécution
  • mysqli_stmt::reset — Annule une requête préparée
  • mysqli_stmt::result_metadata — Retourne les métadonnées de préparation de requête MySQL
  • mysqli_stmt::send_long_data — Envoie des données MySQL par paquets
  • mysqli_stmt::$sqlstate — Retourne le code SQLSTATE de la dernière opération MySQL
  • mysqli_stmt::store_result — Stocke un jeu de résultats depuis une requête préparée


Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête

  • « mysqli_stmt
  • mysqli_stmt::attr_get »
  • PHP Manual
  • mysqli_stmt
  • Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête

mysqli_stmt::$affected_rows

mysqli_stmt_affected_rows

(PHP 5, PHP 7)

mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête

Description

Style orienté objet

int $mysqli_stmt->affected_rows;

Style procédural

int mysqli_stmt_affected_rows ( mysqli_stmt $stmt )

Retourne le nombre de lignes affectées par une requête INSERT, UPDATE ou DELETE.

La fonction mysqli_stmt_affected_rows() ne fonctionne que sur les requêtes qui modifient la table. Si vous désirez récupérer le nombre de lignes retournées par une requête SELECT, utilisez plutôt la requête mysqli_stmt_num_rows().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Un entier supérieur à zéro indique le nombre de lignes affectées ou retrouvées. Zéro indique qu'aucun enregistrement n'a été modifié par une requête UPDATE/DELETE, aucune ligne ne correspond à la clause WHERE dans la requête ou bien qu'aucune requête n'a été encore exécutée. -1 indique que la dernière requête a retourné une erreur. NULL indique qu'un argument invalide a été fourni à la fonction.

Note:

Si le nombre de lignes affectées est plus grand que la valeur entière maximale de PHP, le nombre de lignes affectées sera retourné comme une chaîne de caractères.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Création d'une table temporaire */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* Préparation de la requête */
if ($stmt = $mysqli->prepare($query)) {

    /* Insertion de la variable */
    $code = 'A%';
    $stmt->bind_param("s", $code);

    /* Exécution de la requête */
    $stmt->execute();

    printf("Lignes insérées : %d\n", $stmt->affected_rows);

    /* Fermeture du traitement */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Création d'une table temporaire */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* Préparation de la requête */
if ($stmt = mysqli_prepare($link, $query)) {

    /* Insertion de la variable */
    $code = 'A%';
    mysqli_stmt_bind_param($stmt, "s", $code);

    /* Exécution de la requête */
    mysqli_stmt_execute($stmt);

    printf("Lignes insérées : %d\n", mysqli_stmt_affected_rows($stmt));

    /* Fermeture du traitement */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Lignes insérées : 17

Voir aussi

  • mysqli_stmt_num_rows() - Retourne le nombre de lignes d'un résultat MySQL
  • mysqli_prepare() - Prépare une requête SQL pour l'exécution


Récupère la valeur courante d'un attribut de requête

  • « mysqli_stmt::$affected_rows
  • mysqli_stmt::attr_set »
  • PHP Manual
  • mysqli_stmt
  • Récupère la valeur courante d'un attribut de requête

mysqli_stmt::attr_get

mysqli_stmt_attr_get

(PHP 5, PHP 7)

mysqli_stmt::attr_get -- mysqli_stmt_attr_get — Récupère la valeur courante d'un attribut de requête

Description

Style orienté objet

int mysqli_stmt::attr_get ( int $attr )

Style procédural

int mysqli_stmt_attr_get ( mysqli_stmt $stmt , int $attr )

Récupère la valeur courante d'un attribut de requête.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

attr

L'attribut que vous voulez récupérer.

Valeurs de retour

Retourne FALSE si l'attribut n'a pas été trouvé ou la valeur de l'attribut en cas de succès.


Modifie le comportement d'une requête préparée

  • « mysqli_stmt::attr_get
  • mysqli_stmt::bind_param »
  • PHP Manual
  • mysqli_stmt
  • Modifie le comportement d'une requête préparée

mysqli_stmt::attr_set

mysqli_stmt_attr_set

(PHP 5, PHP 7)

mysqli_stmt::attr_set -- mysqli_stmt_attr_set — Modifie le comportement d'une requête préparée

Description

Style orienté objet

bool mysqli_stmt::attr_set ( int $attr , int $mode )

Style procédural

bool mysqli_stmt_attr_set ( mysqli_stmt $stmt , int $attr , int $mode )

Modifie le comportement d'une requête préparée. Cette fonction peut être appelée plusieurs fois pour définir plusieurs attributs.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

attr

L'attribut que vous voulez définir. Il peut avoir une des valeurs suivantes :

Valeurs des attributs
Caractère | Description
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | Si défini à TRUE, la fonction mysqli_stmt_store_result() mettra à jour la valeur de la méta-donnée MYSQL_FIELD->max_length.
MYSQLI_STMT_ATTR_CURSOR_TYPE | Type du curseur permettant l'ouverture de la requête lorsque la fonction mysqli_stmt_execute() est appelée. mode peut valoir MYSQLI_CURSOR_TYPE_NO_CURSOR (par défaut) ou MYSQLI_CURSOR_TYPE_READ_ONLY.
MYSQLI_STMT_ATTR_PREFETCH_ROWS | Nombre de lignes à récupérer depuis le serveur en une fois lors de l'utilisation d'un curseur. mode peut être compris entre 1 et la valeur maximale d'un type long non-signé. Par défaut, vaut 1.

Si vous utilisez l'option MYSQLI_STMT_ATTR_CURSOR_TYPE avec MYSQLI_CURSOR_TYPE_READ_ONLY, un curseur sera ouvert pour la requête lors de l'appel à la fonction mysqli_stmt_execute(). S'il y a déjà un curseur d'ouvert depuis un précédent appel à la fonction mysqli_stmt_execute(), il sera fermé avant d'en ouvrir un nouveau. La fonction mysqli_stmt_reset() ferme également tous les curseurs avant de préparer la requête pour une ré-exécution. La fonction mysqli_stmt_free_result() ferme tout curseur ouvert.

Si vous ouvrez un curseur pour une requête préparée, la fonction mysqli_stmt_store_result() n'est pas nécessaire.

mode

La valeur à assigner à l'attribut.

Voir aussi

  • » Connecteur / MySQL mysql_stmt_attr_set()


Lie des variables à une requête MySQL

  • « mysqli_stmt::attr_set
  • mysqli_stmt::bind_result »
  • PHP Manual
  • mysqli_stmt
  • Lie des variables à une requête MySQL

mysqli_stmt::bind_param

mysqli_stmt_bind_param

(PHP 5, PHP 7)

mysqli_stmt::bind_param -- mysqli_stmt_bind_param — Lie des variables à une requête MySQL

Description

Style orienté objet

bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

Style procédural

bool mysqli_stmt_bind_param ( mysqli_stmt $stmt , string $types , mixed &$var1 [, mixed &$... ] )

Sert à lier des variables à une requête MySQL préparée par mysqli_prepare().

Note:

Si la taille des données dépasse la taille maximal d'un paquet, (max_allowed_packet), vous devez spécifier le caractère b dans le paramètre types et utiliser la fonction mysqli_stmt_send_long_data() pour envoyer le message par paquets.

Note:

Vous devez être prudent lors de l'utilisation de mysqli_stmt_bind_param() avec la fonction call_user_func_array(). Notez que mysqli_stmt_bind_param() nécessite que ses paramètres soient passés par référence, alors que la fonction call_user_func_array() peut accepter comme paramètre une liste de variables qui peuvent représenter des références ou des valeurs.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

types

Une chaîne de caractères qui contient un ou plusieurs caractères qui spécifient le type de la variable à lier :

Caractère de spécification des types
Caractère | Description
i | correspond à une variable de type entier
d | correspond à une variable de type nombre décimal
s | correspond à une variable de type chaîne de caractères
b | correspond à une variable de type BLOB, qui sera envoyé par paquets

var1

Le nombre de variables et la longueur de la chaîne de caractères types doivent correspondre aux paramètres de la requête.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* Exécution de la requête */
$stmt->execute();

printf("%d ligne insérée.\n", $stmt->affected_rows);

/* Fermeture du traitement */
$stmt->close();

/* Nettoyage de la table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d ligne effacée.\n", $mysqli->affected_rows);

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

/* Vérification de la connexion */
if (!$link) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$stmt = mysqli_prepare($link, "INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* Exécution de la requête */
mysqli_stmt_execute($stmt);

printf("%d ligne insérée.\n", mysqli_stmt_affected_rows($stmt));

/* Fermeture du traitement */
mysqli_stmt_close($stmt);

/* Nettoyage de la table CountryLanguage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d ligne effacée.\n", mysqli_affected_rows($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

1 ligne insérée.
1 ligne effacée.

Voir aussi

  • mysqli_stmt_bind_result() - Lie des variables à un jeu de résultats
  • mysqli_stmt_execute() - Exécute une requête préparée
  • mysqli_stmt_fetch() - Lit des résultats depuis une requête MySQL préparée dans des variables liées
  • mysqli_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_stmt_send_long_data() - Envoie des données MySQL par paquets
  • mysqli_stmt_errno() - Retourne un code erreur pour la dernière requête
  • mysqli_stmt_error() - Retourne une description de la dernière erreur de traitement


Lie des variables à un jeu de résultats

  • « mysqli_stmt::bind_param
  • mysqli_stmt::close »
  • PHP Manual
  • mysqli_stmt
  • Lie des variables à un jeu de résultats

mysqli_stmt::bind_result

mysqli_stmt_bind_result

(PHP 5, PHP 7)

mysqli_stmt::bind_result -- mysqli_stmt_bind_result — Lie des variables à un jeu de résultats

Description

Style orienté objet

bool mysqli_stmt::bind_result ( mixed &$var1 [, mixed &$... ] )

Style procédural

bool mysqli_stmt_bind_result ( mysqli_stmt $stmt , mixed &$var1 [, mixed &$... ] )

Associe des colonnes d'un résultat à des variables.

Lorsque mysqli_stmt_fetch() est appelée pour lire des valeurs, le protocole MySQL place les données dans les variables spécifiées dans le paramètre var1, ....

Note:

Notez que toutes les colonnes doivent être liées après l'exécution de la fonction mysqli_stmt_execute() et avant l'appel à la fonction mysqli_stmt_fetch(). En fonction du type de valeur de la colonne, le type de variable PHP peut être automatiquement modifié.

Une colonne peut être associée ou réassociée à tout moment, même après une lecture partielle du résultat. La nouvelle association prend effet au prochain appel de mysqli_stmt_fetch().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

var1

La variable à lier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Préparation de la requête */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    $stmt->execute();

    /* Insertion de la variable */
    $stmt->bind_result($col1, $col2);

    /* Récupération des valeurs */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

    /* Fermeture du traitement */
    $stmt->close();
}
/* Fermeture de la connexion */
$mysqli->close();

?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (!$link) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Préparation de la requête */
if ($stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    mysqli_stmt_execute($stmt);

    /* Insertion de la variable */
    mysqli_stmt_bind_result($stmt, $col1, $col2);

    /* Récupération des valeurs */
    while (mysqli_stmt_fetch($stmt)) {
        printf("%s %s\n", $col1, $col2);
    }

    /* Fermeture du traitement */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra

Voir aussi

  • mysqli_stmt_get_result() - Récupère un jeu de résultats depuis une requête préparée
  • mysqli_stmt_bind_param() - Lie des variables à une requête MySQL
  • mysqli_stmt_execute() - Exécute une requête préparée
  • mysqli_stmt_fetch() - Lit des résultats depuis une requête MySQL préparée dans des variables liées
  • mysqli_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_stmt_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_stmt_init() - Initialise une commande MySQL
  • mysqli_stmt_errno() - Retourne un code erreur pour la dernière requête
  • mysqli_stmt_error() - Retourne une description de la dernière erreur de traitement


Termine une requête préparée

  • « mysqli_stmt::bind_result
  • mysqli_stmt::__construct »
  • PHP Manual
  • mysqli_stmt
  • Termine une requête préparée

mysqli_stmt::close

mysqli_stmt_close

(PHP 5, PHP 7)

mysqli_stmt::close -- mysqli_stmt_close — Termine une requête préparée

Description

Style orienté objet

bool mysqli_stmt::close ( void )

Style procédural

bool mysqli_stmt_close ( mysqli_stmt $stmt )

Ferme une requête préparée. mysqli_stmt_close() libère le pointeur utilisé par stmt. Si la requête est en attente ou bien que les résultats ne sont pas encore lus, cette fonction les annulera et, donc, la prochaine requête pourra être exécutée.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mysqli_prepare() - Prépare une requête SQL pour l'exécution


Construit un nouvel objet mysqli_stmt

  • « mysqli_stmt::close
  • mysqli_stmt::data_seek »
  • PHP Manual
  • mysqli_stmt
  • Construit un nouvel objet mysqli_stmt

mysqli_stmt::__construct

(PHP 5, PHP 7)

mysqli_stmt::__construct — Construit un nouvel objet mysqli_stmt

Description

mysqli_stmt::__construct ( mysqli $link [, string $query ] )

Cette méthode construit un nouvel objet mysqli_stmt.

Note:

En général, vous devriez utiliser soit la fonction mysqli_prepare(), soit la fonction mysqli_stmt_init() pour créer un objet mysqli_stmt, plutôt que d'instancier directement l'objet avec new mysqli_stmt. Cette méthode (ainsi que la possibilité d'instancier directement des objets mysqli_stmt) peut devenir obsolète et être supprimée dans le futur.

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères. Si ce paramètre est omis, alors le constructeur se comporte comme la fonction mysqli_stmt_init() ; s'il est fourni, alors il se comportera comme la fonction mysqli_prepare().

Voir aussi

  • mysqli_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_stmt_init() - Initialise une commande MySQL


Déplace le pointeur de résultat

  • « mysqli_stmt::__construct
  • mysqli_stmt::$errno »
  • PHP Manual
  • mysqli_stmt
  • Déplace le pointeur de résultat

mysqli_stmt::data_seek

mysqli_stmt_data_seek

(PHP 5, PHP 7)

mysqli_stmt::data_seek -- mysqli_stmt_data_seek — Déplace le pointeur de résultat

Description

Style orienté objet

void mysqli_stmt::data_seek ( int $offset )

Style procédural

void mysqli_stmt_data_seek ( mysqli_stmt $stmt , int $offset )

Déplace le pointeur du résultat statement de offset lignes.

mysqli_stmt_store_result() doit être appelée avant la fonction mysqli_stmt_data_seek().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

offset

Doit prendre une valeur entre zéro et le nombre total de ligne moins 1 (0..mysqli_stmt_num_rows() - 1).

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* Exécute la requête */
    $stmt->execute();

    /* Lie les variables de résultat */
    $stmt->bind_result($name, $code);

    /* Stock le résultat */
    $stmt->store_result();

    /* Va à la ligne 400 */
    $stmt->data_seek(399);

    /* Lit une valeur */
    $stmt->fetch();

    printf ("Villle : %s Code Pays : %s\n", $name, $code);

    /* Ferme la commande */
    $stmt->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre la connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Exécute la requête */
    mysqli_stmt_execute($stmt);

    /* Lie les variables de résultat */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* Stock le résultat */
    mysqli_stmt_store_result($stmt);

    /* Va à la ligne 400 */
    mysqli_stmt_data_seek($stmt, 399);

    /* Lit une valeur */
    mysqli_stmt_fetch($stmt);

    printf ("Ville : %s Code Pays : %s\n", $name, $code);

    /* Ferme la commande */
    mysqli_stmt_close($stmt);
}

/* Ferme la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Ville : Benin City Code Pays : NGA

Voir aussi

  • mysqli_prepare() - Prépare une requête SQL pour l'exécution


Retourne un code erreur pour la dernière requête

  • « mysqli_stmt::data_seek
  • mysqli_stmt::$error_list »
  • PHP Manual
  • mysqli_stmt
  • Retourne un code erreur pour la dernière requête

mysqli_stmt::$errno

mysqli_stmt_errno

(PHP 5, PHP 7)

mysqli_stmt::$errno -- mysqli_stmt_errno — Retourne un code erreur pour la dernière requête

Description

Style orienté objet

int $mysqli_stmt->errno;

Style procédural

int mysqli_stmt_errno ( mysqli_stmt $stmt )

Retourne le code erreur pour la dernière requête appelée dans le traitement qui a réussi ou échoué.

La liste des codes erreur client est disponible dans l'en-tête du fichier MySQL errmsg.h ; la liste des codes erreur serveur est disponible dans le fichier MySQL mysqld_error.h. Dans les sources de MySQL, vous pouvez trouver une liste complète des messages d'erreur ainsi que des codes erreur dans le fichier Docs/mysqld_error.txt.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Une valeur représentant un code erreur. 0 signifie qu'aucune erreur n'est survenue.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* Effacement de la table */
    $mysqli->query("DROP TABLE myCountry");

    /* Exécute la requête */
    $stmt->execute();

    printf("Erreur : %d.\n", $stmt->errno);

    /* Ferme la commande */
    $stmt->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre la connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Effacement de la table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* Exécute la requête */
    mysqli_stmt_execute($stmt);

    printf("Erreur : %d.\n", mysqli_stmt_errno($stmt));

    /* Ferme la commande */
    mysqli_stmt_close($stmt);
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur : 1146.

Voir aussi

  • mysqli_stmt_error() - Retourne une description de la dernière erreur de traitement
  • mysqli_stmt_sqlstate() - Retourne le code SQLSTATE de la dernière opération MySQL


Retourne une liste d'erreurs pour la dernière requête exécutée

  • « mysqli_stmt::$errno
  • mysqli_stmt::$error »
  • PHP Manual
  • mysqli_stmt
  • Retourne une liste d'erreurs pour la dernière requête exécutée

mysqli_stmt::$error_list

mysqli_stmt_error_list

(PHP 5 >= 5.4.0, PHP 7)

mysqli_stmt::$error_list -- mysqli_stmt_error_list — Retourne une liste d'erreurs pour la dernière requête exécutée

Description

Style orienté objet

array $mysqli_stmt->error_list;

Style procédural

array mysqli_stmt_error_list ( mysqli_stmt $stmt )

Retourne un tableau d'erreurs depuis la dernière requête exécutée, qu'elle ait réussi ou non.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Une liste d'erreurs, chacune sous la forme d'un tableau associatif contenant le numéro d'erreur (errno), le message d'erreur (error) et le statut SQL (sqlstate).

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre une connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec lors de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* Supprime la table */
    $mysqli->query("DROP TABLE myCountry");

    /* Exécute la requête */
    $stmt->execute();

    echo "Erreur :\n";
    print_r($stmt->error_list);

    /* Ferme la requête */
    $stmt->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre une connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec lors de la connexion : %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Supprime la table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* Exécute la requête */
    mysqli_stmt_execute($stmt);

    echo "Erreur :\n";
    print_r(mysql_stmt_error_list($stmt));

    /* Ferme la requête */
    mysqli_stmt_close($stmt);
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Array
(
    [0] => Array
        (
            [errno] => 1146
            [sqlstate] => 42S02
            [error] => Table 'world.myCountry' doesn't exist
        )

)

Voir aussi

  • mysqli_stmt_error() - Retourne une description de la dernière erreur de traitement
  • mysqli_stmt_errno() - Retourne un code erreur pour la dernière requête
  • mysqli_stmt_sqlstate() - Retourne le code SQLSTATE de la dernière opération MySQL


Retourne une description de la dernière erreur de traitement

  • « mysqli_stmt::$error_list
  • mysqli_stmt::execute »
  • PHP Manual
  • mysqli_stmt
  • Retourne une description de la dernière erreur de traitement

mysqli_stmt::$error

mysqli_stmt_error

(PHP 5, PHP 7)

mysqli_stmt::$error -- mysqli_stmt_error — Retourne une description de la dernière erreur de traitement

Description

Style orienté objet

string $mysqli_stmt->error;

Style procédural

string mysqli_stmt_error ( mysqli_stmt $stmt )

Retourne une chaîne de caractères représentant le message d'erreur le plus récent appelé par une fonction de traitement, qu'elle ait réussi ou échoué.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Une chaîne de caractères décrivant l'erreur. Une chaîne vide si aucune erreur n'est survenue.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* Effacement de la table */
    $mysqli->query("DROP TABLE myCountry");

    /* Exécute la requête */
    $stmt->execute();

    printf("Erreur : %s.\n", $stmt->error);

    /* Ferme la commande */
    $stmt->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre la connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Effacement de la table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* Exécute la requête */
    mysqli_stmt_execute($stmt);

    printf("Erreur : %s.\n", mysqli_stmt_error($stmt));

    /* Ferme la commande */
    mysqli_stmt_close($stmt);
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur : Table 'world.myCountry' doesn't exist.

Voir aussi

  • mysqli_stmt_errno() - Retourne un code erreur pour la dernière requête
  • mysqli_stmt_sqlstate() - Retourne le code SQLSTATE de la dernière opération MySQL


Exécute une requête préparée

  • « mysqli_stmt::$error
  • mysqli_stmt::fetch »
  • PHP Manual
  • mysqli_stmt
  • Exécute une requête préparée

mysqli_stmt::execute

mysqli_stmt_execute

(PHP 5, PHP 7)

mysqli_stmt::execute -- mysqli_stmt_execute — Exécute une requête préparée

Description

Style orienté objet

bool mysqli_stmt::execute ( void )

Style procédural

bool mysqli_stmt_execute ( mysqli_stmt $stmt )

Exécute une requête qui a été préalablement préparée en utilisant la fonction mysqli_prepare(), grâce à la ressource stmt. Lors de l'exécution, toutes les variables de la requête seront remplacées par les données appropriées.

Si la requête est UPDATE, DELETE ou INSERT, le nombre total de lignes affectées est disponible via la fonction mysqli_stmt_affected_rows(). De la même façon, si la fonction génère un résultat, il sera disponible via la fonction mysqli_stmt_fetch().

Note:

Lors de l'utilisation de mysqli_stmt_execute(), mysqli_stmt_fetch() doit être utilisée pour lire les données avant de lancer une autre requête.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* Préparation de la commande d'insertion */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = $mysqli->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Exécute la requête */
$stmt->execute();

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Exécute la requête */
$stmt->execute();

/* Ferme la requête */
$stmt->close();

/* Récupère toutes les lignes de la table myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* Libère le résultat */
    $result->close();
}

/* Efface la table */
$mysqli->query("DROP TABLE myCity");

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* Préparation de la commande d'insertion */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = mysqli_prepare($link, $query);

mysqli_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Exécute la requête */
mysqli_stmt_execute($stmt);

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Exécute la requête */
mysqli_stmt_execute($stmt);

/* Ferme la requête */
mysqli_stmt_close($stmt);

/* Récupère toutes les lignes de la table myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = mysqli_query($link, $query)) {
    while ($row = mysqli_fetch_row($result)) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* Libère le résultat */
    mysqli_free_result($result);
}

/* Efface la table */
mysqli_query($link, "DROP TABLE myCity");

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

Voir aussi

  • mysqli_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_stmt_bind_param() - Lie des variables à une requête MySQL
  • mysqli_stmt_get_result() - Récupère un jeu de résultats depuis une requête préparée


Lit des résultats depuis une requête MySQL préparée dans des variables liées

  • « mysqli_stmt::execute
  • mysqli_stmt::$field_count »
  • PHP Manual
  • mysqli_stmt
  • Lit des résultats depuis une requête MySQL préparée dans des variables liées

mysqli_stmt::fetch

mysqli_stmt_fetch

(PHP 5, PHP 7)

mysqli_stmt::fetch -- mysqli_stmt_fetch — Lit des résultats depuis une requête MySQL préparée dans des variables liées

Description

Style orienté objet

bool mysqli_stmt::fetch ( void )

Style procédural

bool mysqli_stmt_fetch ( mysqli_stmt $stmt )

Retourne le résultat d'une requête préparée dans une variable, liée par mysqli_stmt_bind_result().

Note:

Notez que toutes les colonnes doivent être liées par l'application avant d'appeler mysqli_stmt_fetch().

Note:

Les données sont transférées sans être bufferisées, sans appeler la fonction mysqli_stmt_store_result(), ce qui peut avoir un impact sur les performances (mais aussi, réduire l'utilisation mémoire).

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Valeurs de retour
Value | Description
TRUE | Réussite. Les données ont été lues.
FALSE | Une erreur est survenue.
NULL | Il n'y a plus de ligne à lire ou les données ont été tronquées.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

    /* Exécution de la requête */
    $stmt->execute();

    /* Association des variables de résultat */
    $stmt->bind_result($name, $code);

    /* Lecture des valeurs */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* Fermeture de la commande */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = mysqli_prepare($link, $query)) {

    /* Exécution de la requête */
    mysqli_stmt_execute($stmt);

    /* Association des variables de résultat */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* Lecture des valeurs */
    while (mysqli_stmt_fetch($stmt)) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* Fermeture de la commande */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Rockford (USA)
Tallahassee (USA)
Salinas (USA)
Santa Clarita (USA)
Springfield (USA)

Voir aussi

  • mysqli_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_stmt_errno() - Retourne un code erreur pour la dernière requête
  • mysqli_stmt_error() - Retourne une description de la dernière erreur de traitement
  • mysqli_stmt_bind_result() - Lie des variables à un jeu de résultats


Retourne le nombre de champs présent dans la requête donnée

  • « mysqli_stmt::fetch
  • mysqli_stmt::free_result »
  • PHP Manual
  • mysqli_stmt
  • Retourne le nombre de champs présent dans la requête donnée

mysqli_stmt::$field_count

mysqli_stmt_field_count

(PHP 5, PHP 7)

mysqli_stmt::$field_count -- mysqli_stmt_field_count — Retourne le nombre de champs présent dans la requête donnée

Description

Style orienté objet

int $mysqli_stmt->field_count;

Style procédural

int mysqli_stmt_field_count ( mysqli_stmt $stmt )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Libère le résultat MySQL de la mémoire

  • « mysqli_stmt::$field_count
  • mysqli_stmt::get_result »
  • PHP Manual
  • mysqli_stmt
  • Libère le résultat MySQL de la mémoire

mysqli_stmt::free_result

mysqli_stmt_free_result

(PHP 5, PHP 7)

mysqli_stmt::free_result -- mysqli_stmt_free_result — Libère le résultat MySQL de la mémoire

Description

Style orienté objet

void mysqli_stmt::free_result ( void )

Style procédural

void mysqli_stmt_free_result ( mysqli_stmt $stmt )

Libère le résultat stmt de la mémoire. stmt a été obtenu de la fonction mysqli_stmt_store_result().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • mysqli_stmt_store_result() - Stocke un jeu de résultats depuis une requête préparée


Récupère un jeu de résultats depuis une requête préparée

  • « mysqli_stmt::free_result
  • mysqli_stmt::get_warnings »
  • PHP Manual
  • mysqli_stmt
  • Récupère un jeu de résultats depuis une requête préparée

mysqli_stmt::get_result

mysqli_stmt_get_result

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::get_result -- mysqli_stmt_get_result — Récupère un jeu de résultats depuis une requête préparée

Description

Style orienté objet

mysqli_result mysqli_stmt::get_result ( void )

Style procédural

mysqli_result mysqli_stmt_get_result ( mysqli_stmt $stmt )

Récupère un jeu de résultats depuis une requête préparée.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne un jeu de résultats ou FALSE si une erreur survient.

Driver MySQL Natif uniquement

Disponible uniquement avec mysqlnd.

Exemples

Exemple #1 Style orienté objet

<?php

$mysqli = new mysqli("127.0.0.1", "user", "password", "world");

if($mysqli->connect_error)
{
    die("$mysqli->connect_errno: $mysqli->connect_error");
}

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = $mysqli->stmt_init();
if(!$stmt->prepare($query))
{
    print "Échec lors de la préparation de la requête\n";
}
else
{
    $stmt->bind_param("s", $continent);

    $continent_array = array('Europe','Africa','Asia','North America');

    foreach($continent_array as $continent)
    {
        $stmt->execute();
        $result = $stmt->get_result();
        while ($row = $result->fetch_array(MYSQLI_NUM))
        {
            foreach ($row as $r)
            {
                print "$r ";
            }
            print "\n";
        }
    }
}

$stmt->close();
$mysqli->close();
?>

Exemple #2 Style procédural

<?php

$link = mysqli_connect("127.0.0.1", "user", "password", "world");

if (!$link)
{
    $error = mysqli_connect_error();
    $errno = mysqli_connect_errno();
    print "$errno: $error\n";
    exit();
}

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = mysqli_stmt_init($link);
if(!mysqli_stmt_prepare($stmt, $query))
{
    print "Échec lors de la préparation de la requête\n";
}
else
{
    mysqli_stmt_bind_param($stmt, "s", $continent);

    $continent_array = array('Europe','Africa','Asia','North America');

    foreach($continent_array as $continent)
    {
        mysqli_stmt_execute($stmt);
        $result = mysqli_stmt_get_result($stmt);
        while ($row = mysqli_fetch_array($result, MYSQLI_NUM))
        {
            foreach ($row as $r)
            {
                print "$r ";
            }
            print "\n";
        }
    }
}
mysqli_stmt_close($stmt);
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Albania 3401200 Europe
Algeria 31471000 Africa
Afghanistan 22720000 Asia
Anguilla 8000 North America

Voir aussi

  • mysqli_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_stmt_result_metadata() - Retourne les métadonnées de préparation de requête MySQL
  • mysqli_stmt_fetch() - Lit des résultats depuis une requête MySQL préparée dans des variables liées
  • mysqli_fetch_array() - Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysqli_stmt_store_result() - Stocke un jeu de résultats depuis une requête préparée


Récupère le résultat de SHOW WARNINGS

  • « mysqli_stmt::get_result
  • mysqli_stmt::$insert_id »
  • PHP Manual
  • mysqli_stmt
  • Récupère le résultat de SHOW WARNINGS

mysqli_stmt::get_warnings

mysqli_stmt_get_warnings

(PHP 5 >= 5.1.0, PHP 7)

mysqli_stmt::get_warnings -- mysqli_stmt_get_warnings — Récupère le résultat de SHOW WARNINGS

Description

Style orienté objet

object mysqli_stmt::get_warnings ( mysqli_stmt $stmt )

Style procédural

object mysqli_stmt_get_warnings ( mysqli_stmt $stmt )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Récupère l'ID généré par la dernière requête INSERT

  • « mysqli_stmt::get_warnings
  • mysqli_stmt::more_results »
  • PHP Manual
  • mysqli_stmt
  • Récupère l'ID généré par la dernière requête INSERT

mysqli_stmt::$insert_id

mysqli_stmt_insert_id

(PHP 5, PHP 7)

mysqli_stmt::$insert_id -- mysqli_stmt_insert_id — Récupère l'ID généré par la dernière requête INSERT

Description

Style orienté objet

int $mysqli_stmt->insert_id;

Style procédural

mixed mysqli_stmt_insert_id ( mysqli_stmt $stmt )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Vérifie s'il y a encore des résultats depuis une requête multiple

  • « mysqli_stmt::$insert_id
  • mysqli_stmt::next_result »
  • PHP Manual
  • mysqli_stmt
  • Vérifie s'il y a encore des résultats depuis une requête multiple

mysqli_stmt::more_results

mysqli_stmt_more_results

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::more_results -- mysqli_stmt_more_results — Vérifie s'il y a encore des résultats depuis une requête multiple

Description

Style orienté objet (method):

public bool mysqli_stmt::more_results ( void )

Style procédural:

bool mysqli_stmt_more_results ( mysql_stmt $stmt )

Vérifie s'il y a encore des résultats depuis une requête multiple.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne TRUE s'il y a encore des résultat, FALSE sinon.

Driver MySQL Natif uniquement

Disponible uniquement avec mysqlnd.

Voir aussi

  • mysqli_stmt::next_result() - Lit le résultat suivant depuis une requête multiple
  • mysqli::multi_query() - Exécute une requête MySQL multiple


Lit le résultat suivant depuis une requête multiple

  • « mysqli_stmt::more_results
  • mysqli_stmt::$num_rows »
  • PHP Manual
  • mysqli_stmt
  • Lit le résultat suivant depuis une requête multiple

mysqli_stmt::next_result

mysqli_stmt_next_result

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::next_result -- mysqli_stmt_next_result — Lit le résultat suivant depuis une requête multiple

Description

Style orienté objet (method):

public bool mysqli_stmt::next_result ( void )

Style procédural:

bool mysqli_stmt_next_result ( mysql_stmt $stmt )

Lit le résultat suivant depuis une requête multiple.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une alerte de niveau E_STRICT s'il n'existe pas de jeu de résultat, et suggère d'utiliser la méthode mysqli_stmt::more_results() avant d'appeler mysqli_stmt::next_result() dans ce cas là.

Driver MySQL Natif uniquement

Disponible uniquement avec mysqlnd.

Voir aussi

  • mysqli_stmt::more_results() - Vérifie s'il y a encore des résultats depuis une requête multiple
  • mysqli::multi_query() - Exécute une requête MySQL multiple


Retourne le nombre de lignes d'un résultat MySQL

  • « mysqli_stmt::next_result
  • mysqli_stmt::$param_count »
  • PHP Manual
  • mysqli_stmt
  • Retourne le nombre de lignes d'un résultat MySQL

mysqli_stmt::$num_rows

mysqli_stmt_num_rows

(PHP 5, PHP 7)

mysqli_stmt::$num_rows -- mysqli_stmt_num_rows — Retourne le nombre de lignes d'un résultat MySQL

Description

Style orienté objet

int $mysqli_stmt->num_rows;

Style procédural

int mysqli_stmt_num_rows ( mysqli_stmt $stmt )

Retourne le nombre de lignes dans le résultat stmt. L'utilisation de la fonction mysqli_stmt_num_rows() dépend de l'utilisation ou non de la fonction mysqli_stmt_store_result() pour stocker le résultat dans la ressource de commande.

Si vous utilisez mysqli_stmt_store_result(), mysqli_stmt_num_rows() peut être appelée immédiatement.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Un entier représentant le nombre de lignes dans le résultat.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* Exécution de la requête */
    $stmt->execute();

    /* Stockage du résultat */
    $stmt->store_result();

    printf("Nombre de lignes : %d.\n", $stmt->num_rows);

    /* Fermeture de la commande */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre la connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Exécution de la requête */
    mysqli_stmt_execute($stmt);

    /* Stockage du résultat */
    mysqli_stmt_store_result($stmt);

    printf("Nombre de lignes : %d.\n", mysqli_stmt_num_rows($stmt));

    /* Fermeture de la commande */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Nombre de lignes : 20.

Voir aussi

  • mysqli_stmt_affected_rows() - Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête
  • mysqli_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_stmt_store_result() - Stocke un jeu de résultats depuis une requête préparée


Retourne le nombre de paramètre d'une commande SQL

  • « mysqli_stmt::$num_rows
  • mysqli_stmt::prepare »
  • PHP Manual
  • mysqli_stmt
  • Retourne le nombre de paramètre d'une commande SQL

mysqli_stmt::$param_count

mysqli_stmt_param_count

(PHP 5, PHP 7)

mysqli_stmt::$param_count -- mysqli_stmt_param_count — Retourne le nombre de paramètre d'une commande SQL

Description

Style orienté objet

int $mysqli_stmt->param_count;

Style procédural

int mysqli_stmt_param_count ( mysqli_stmt $stmt )

Retourne le nombre de variables attendues par la commande préparée stmt.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne un entier représentant le nombre de paramètres.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = $stmt->param_count;
    printf("La requête a %d variables.\n", $marker);

    /* Fermeture de la commande */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = mysqli_prepare($link, "SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = mysqli_stmt_param_count($stmt);
    printf("La requête a %d variables.\n", $marker);

    /* Fermeture de la commande */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

La requête a 2 variables.

Voir aussi

  • mysqli_prepare() - Prépare une requête SQL pour l'exécution


Prépare une requête SQL pour l'exécution

  • « mysqli_stmt::$param_count
  • mysqli_stmt::reset »
  • PHP Manual
  • mysqli_stmt
  • Prépare une requête SQL pour l'exécution

mysqli_stmt::prepare

mysqli_stmt_prepare

(PHP 5, PHP 7)

mysqli_stmt::prepare -- mysqli_stmt_prepare — Prépare une requête SQL pour l'exécution

Description

Style orienté objet

mixed mysqli_stmt::prepare ( string $query )

Style procédural

bool mysqli_stmt_prepare ( mysqli_stmt $stmt , string $query )

Prépare la requête SQL query, pour la session de travail stmt.

Les variables SQL doivent être associées à une variable PHP à l'aide de la fonction mysqli_stmt_bind_param() et/ou mysqli_stmt_bind_result(), avant d'exécuter la requête.

Note:

Si vous passez une requête à mysqli_stmt_prepare() qui est plus longue que max_allowed_packet, les codes d'erreur en retour seront différents selon si vous utilisez MySQL Native Driver (mysqlnd) ou la MySQL Client Library (libmysqlclient). Le comportement est défini comme suit:

  • mysqlnd sur Linux retourne un code d'erreur de 1153. Le message d'erreur sera "got a packet bigger than max_allowed_packet bytes".

  • mysqlnd sur Windows retourne un code d'erreur de 2006. Le message sera du type "server has gone away".

  • libmysqlclient sur toute plateforme retourne le code d'erreur 2006. Le message sera du type "server has gone away".

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

query

La requête, sous forme de chaîne. Elle doit être constituée d'une commande SQL valide et unique.

Ce paramètre peut inclure une ou plusieurs variables SQL, en utilisant des points d'interrogation (?) aux bons endroits.

Note:

Il ne faut pas ajouter de point-virgule ou de \g à la fin de la requête.

Note:

Les variables SQL ne sont possibles que dans certaines clauses de la requête SQL. Par exemple, elles peuvent être placées dans des clause VALUES() d'une requête INSERT (pour spécifier une valeur à insérer), ou dans une clause de condition WHERE.

Cependant, elles ne sont pas autorisées pour les identifiants (de tables ou de colonnes), dans les listes de colonnes d'un SELECT, ou pour spécifier des opérateurs comme =. Cette dernière restriction est liée au fait qu'il est impossible de déterminer le type. En général, les variables SQL ne sont valides que dans les commandes de manipulation de données ("Data Manipulation Language" (DML)), et non dans les structures du langages SQL ("Data Definition Language" (DDL)).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* Création d'une requête préparée */
$stmt =  $mysqli->stmt_init();
if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) {

    /* Association des variables SQL */
    $stmt->bind_param("s", $city);

    /* Exécution de la requête */
    $stmt->execute();

    /* Association des variables de résultats */
    $stmt->bind_result($district);

    /* Lecture des valeurs */
    $stmt->fetch();

    printf("%s est dans la région de %s\n", $city, $district);

    /* Fermeture de la commande */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* Création d'une requête préparée */
$stmt = mysqli_stmt_init($link);
if (mysqli_stmt_prepare($stmt, 'SELECT District FROM City WHERE Name=?')) {

    /* Association des variables SQL */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* Exécution de la requête */
    mysqli_stmt_execute($stmt);

    /* Association des variables de résultats */
    mysqli_stmt_bind_result($stmt, $district);

    /* Lecture des valeurs */
    mysqli_stmt_fetch($stmt);

    printf("%s est dans la région de %s\n", $city, $district);

    /* Fermeture de la commande */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Amersfoort est dans la région de Utrecht

Voir aussi

  • mysqli_stmt_init() - Initialise une commande MySQL
  • mysqli_stmt_execute() - Exécute une requête préparée
  • mysqli_stmt_fetch() - Lit des résultats depuis une requête MySQL préparée dans des variables liées
  • mysqli_stmt_bind_param() - Lie des variables à une requête MySQL
  • mysqli_stmt_bind_result() - Lie des variables à un jeu de résultats
  • mysqli_stmt_get_result() - Récupère un jeu de résultats depuis une requête préparée
  • mysqli_stmt_close() - Termine une requête préparée


Annule une requête préparée

  • « mysqli_stmt::prepare
  • mysqli_stmt::result_metadata »
  • PHP Manual
  • mysqli_stmt
  • Annule une requête préparée

mysqli_stmt::reset

mysqli_stmt_reset

(PHP 5, PHP 7)

mysqli_stmt::reset -- mysqli_stmt_reset — Annule une requête préparée

Description

Style orienté objet

bool mysqli_stmt::reset ( void )

Style procédural

bool mysqli_stmt_reset ( mysqli_stmt $stmt )

Annule une requête préparée sur le client et sur le serveur après avoir été préparée.

Cette fonction annule la requête sur le serveur, annule les données envoyées en utilisant la fonction mysqli_stmt_send_long_data(), annule les jeux de résultats non mis en buffer mais aussi les erreurs courantes. Par contre, les jeux de résultats stockés ou liés ne sont pas annulés. Les jeux de résultats stockés sont effacés lors de l'exécution de la requête préparée (ou lorsuq'on les ferme).

Pour préparer de nouveau une requête, utilisez la fonction mysqli_stmt_prepare().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mysqli_prepare() - Prépare une requête SQL pour l'exécution


Retourne les métadonnées de préparation de requête MySQL

  • « mysqli_stmt::reset
  • mysqli_stmt::send_long_data »
  • PHP Manual
  • mysqli_stmt
  • Retourne les métadonnées de préparation de requête MySQL

mysqli_stmt::result_metadata

mysqli_stmt_result_metadata

(PHP 5, PHP 7)

mysqli_stmt::result_metadata -- mysqli_stmt_result_metadata — Retourne les métadonnées de préparation de requête MySQL

Description

Style orienté objet

mysqli_result mysqli_stmt::result_metadata ( void )

Style procédural

mysqli_result mysqli_stmt_result_metadata ( mysqli_stmt $stmt )

Si une commande a été préparée par mysqli_prepare(), et qu'elle produira un résultat, mysqli_stmt_result_metadata() retourne l'objet de résultat qui sera utilisée pour lire les métadonnées, comme le nombre de champs et les informations de colonnes.

Note:

Ce résultat peut être passé comme argument à toutes les fonctions qui demandent un champ, pour y lire les métadonnées :

  • mysqli_num_fields()

  • mysqli_fetch_field()

  • mysqli_fetch_field_direct()

  • mysqli_fetch_fields()

  • mysqli_field_count()

  • mysqli_field_seek()

  • mysqli_field_tell()

  • mysqli_free_result()

Il est recommandé de libérer la ressource de résultat lorsque vous avez terminé de l'utiliser, en la passant à la fonction mysqli_free_result().

Note:

Le jeu de résultat retourné par mysqli_stmt_result_metadata() ne contient que des métadonnées. Il ne contient aucune ligne de résultat. Ces lignes sont obtenues en utilisant la fonction mysqli_stmt_fetch().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne un objet de résultats, ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query("DROP TABLE IF EXISTS friends");
$mysqli->query("CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query("INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = $mysqli->prepare("SELECT id, name FROM friends");
$stmt->execute();

/* Lit les méta-données de résultat */
$result = $stmt->result_metadata();

/* Lit les informations d'un champ, depuis les méta-données */
$field = $result->fetch_field();

printf("Nom du champ : %s\n", $field->name);

/* Libération du résultat */
$result->close();

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = mysqli_prepare($link, "SELECT id, name FROM friends");
mysqli_stmt_execute($stmt);

/* Lit les méta-données de résultat */
$result = mysqli_stmt_result_metadata($stmt);

/* Lit les informations d'un champ, depuis les méta-données */
$field = mysqli_fetch_field($result);

printf("Nom du champ : %s\n", $field->name);

/* Libération du résultat */
mysqli_free_result($result);

/* Fermeture de la connexion */
mysqli_close($link);
?>

Voir aussi

  • mysqli_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_free_result() - Libère la mémoire associée à un résultat


Envoie des données MySQL par paquets

  • « mysqli_stmt::result_metadata
  • mysqli_stmt::$sqlstate »
  • PHP Manual
  • mysqli_stmt
  • Envoie des données MySQL par paquets

mysqli_stmt::send_long_data

mysqli_stmt_send_long_data

(PHP 5, PHP 7)

mysqli_stmt::send_long_data -- mysqli_stmt_send_long_data — Envoie des données MySQL par paquets

Description

Style orienté objet

bool mysqli_stmt::send_long_data ( int $param_nr , string $data )

Style procédural

bool mysqli_stmt_send_long_data ( mysqli_stmt $stmt , int $param_nr , string $data )

Envoie les données au serveur par paquets, si la taille des données excède la limite de max_allowed_packet. Cette fonction peut être appelée plusieurs fois pour envoyer les données textes ou binaires de champs comme les BLOB ou TEXT.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

param_nr

Indique quel paramètre doit être associé avec quelles données. Les paramètres sont numérotés à partir de 0.

data

Une chaîne de caractères contenant les données à envoyer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$stmt = $mysqli->prepare("INSERT INTO messages (message) VALUES (?)");
$null = NULL;
$stmt->bind_param("b", $null);
$fp = fopen("messages.txt", "r");
while (!feof($fp)) {
    $stmt->send_long_data(0, fread($fp, 8192));
}
fclose($fp);
$stmt->execute();
?>

Voir aussi

  • mysqli_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_stmt_bind_param() - Lie des variables à une requête MySQL


Retourne le code SQLSTATE de la dernière opération MySQL

  • « mysqli_stmt::send_long_data
  • mysqli_stmt::store_result »
  • PHP Manual
  • mysqli_stmt
  • Retourne le code SQLSTATE de la dernière opération MySQL

mysqli_stmt::$sqlstate

mysqli_stmt_sqlstate

(PHP 5, PHP 7)

mysqli_stmt::$sqlstate -- mysqli_stmt_sqlstate — Retourne le code SQLSTATE de la dernière opération MySQL

Description

Style orienté objet

string $mysqli_stmt->sqlstate;

Style procédural

string mysqli_stmt_sqlstate ( mysqli_stmt $stmt )

Retourne une chaîne contenant le code d'erreur SQLSTATE de la commande la plus récente qui a été préparée. Le code d'erreur est constitué de 5 caractères '00000'. Les valeurs des codes d'erreurs sont spécifiées par les normes ANSI SQL et ODBC. Pour la liste complète des valeurs, voyez le fichier » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne la chaîne contenant le code d'erreur SQLSTATE. Le code d'erreur est constitué de 5 caractères. '00000' représente l'absence d'erreur.

Notes

Note:

Notez que toutes les erreurs MySQL n'ont pas encore de correspondance en SQLSTATE. La valeur HY000 (erreur générale) est utilisée pour les erreurs sans correspondance.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* Effacement de la table */
    $mysqli->query("DROP TABLE myCountry");

    /* Exécution de la requête */
    $stmt->execute();

    printf("Erreur : %s.\n", $stmt->sqlstate);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre la connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Effacement de la table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* Exécution de la requête */
    mysqli_stmt_execute($stmt);

    printf("Erreur : %s.\n", mysqli_stmt_sqlstate($stmt));

    /* Fermeture de la requête */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Erreur : 42S02.

Voir aussi

  • mysqli_stmt_errno() - Retourne un code erreur pour la dernière requête
  • mysqli_stmt_error() - Retourne une description de la dernière erreur de traitement


Stocke un jeu de résultats depuis une requête préparée

  • « mysqli_stmt::$sqlstate
  • mysqli_result »
  • PHP Manual
  • mysqli_stmt
  • Stocke un jeu de résultats depuis une requête préparée

mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5, PHP 7)

mysqli_stmt::store_result -- mysqli_stmt_store_result — Stocke un jeu de résultats depuis une requête préparée

Description

Style orienté objet

bool mysqli_stmt::store_result ( void )

Style procédural

bool mysqli_stmt_store_result ( mysqli_stmt $stmt )

Vous devez appeler mysqli_stmt_store_result() pour toutes les requêtes qui produisent un jeu de résultats (SELECT, SHOW, DESCRIBE, EXPLAIN), et uniquement si vous voulez stocker le jeu de résultats complet par le client, et donc, les séquences mysqli_stmt_fetch() pourront retourner ces données stockées.

Note:

Il n'est pas nécessaire d'appeler mysqli_stmt_store_result() pour d'autres types de requête, mais si vous le faites, ce n'est pas grave et ne causera aucune perte notable de performance dans tous les cas. Vous pouvez détecter dans tous les cas si votre requête va produire un jeu de résultats en regardant si la fonction mysqli_stmt_result_metadata() retourne NULL.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* Exécution de la requête */
    $stmt->execute();

    /* Stocke le résultat */
    $stmt->store_result();

    printf("Nombre de lignes: %d.\n", $stmt->num_rows);

    /* Libère le résultat */
    $stmt->free_result();

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre la connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Exécution de la requête */
    mysqli_stmt_execute($stmt);

    /* Stocke le résultat */
    mysqli_stmt_store_result($stmt);

    printf("Nombre de lignes : %d.\n", mysqli_stmt_num_rows($stmt));

    /* Libère le résultat */
    mysqli_stmt_free_result($stmt);

    /* Fermeture de la requête */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Nombre de lignes : 20.

Voir aussi

  • mysqli_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_stmt_result_metadata() - Retourne les métadonnées de préparation de requête MySQL
  • mysqli_stmt_fetch() - Lit des résultats depuis une requête MySQL préparée dans des variables liées


La classe mysqli_result

(PHP 5, PHP 7)

Introduction

Représente le jeu de résultats obtenu depuis une requête.

Historique

Historique
Version | Description
5.4.0 | Le support Iterator a été ajouté, et mysqli_result implémente maintenant Traversable.

Synopsis de la classe

mysqli_result implements Traversable {
/* Propriétés */
int $current_field ;
int $field_count;
array $lengths;
int $num_rows;
/* Méthodes */
bool data_seek ( int $offset )
mixed fetch_all ([ int $resulttype = MYSQLI_NUM ] )
mixed fetch_array ([ int $resulttype = MYSQLI_BOTH ] )
array fetch_assoc ( void )
object fetch_field_direct ( int $fieldnr )
object fetch_field ( void )
array fetch_fields ( void )
object fetch_object ([ string $class_name = "stdClass" [, array $params ]] )
mixed fetch_row ( void )
bool field_seek ( int $fieldnr )
void free ( void )
}

Sommaire

  • mysqli_result::$current_field — Récupère la position courante d'un champ dans un pointeur de résultat
  • mysqli_result::data_seek — Déplace le pointeur interne de résultat
  • mysqli_result::fetch_all — Lit toutes les lignes de résultats dans un tableau
  • mysqli_result::fetch_array — Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysqli_result::fetch_assoc — Récupère une ligne de résultat sous forme de tableau associatif
  • mysqli_result::fetch_field_direct — Récupère les métadonnées d'un champ unique
  • mysqli_result::fetch_field — Retourne le prochain champs dans le jeu de résultats
  • mysqli_result::fetch_fields — Retourne un tableau d'objets représentant les champs dans le résultat
  • mysqli_result::fetch_object — Retourne la ligne courante d'un jeu de résultat sous forme d'objet
  • mysqli_result::fetch_row — Récupère une ligne de résultat sous forme de tableau indexé
  • mysqli_result::$field_count — Récupère le nombre de champs dans un résultat
  • mysqli_result::field_seek — Déplace le pointeur de résultat sur le champ spécifié
  • mysqli_result::free — Libère la mémoire associée à un résultat
  • mysqli_result::$lengths — Retourne la longueur des colonnes de la ligne courante du jeu de résultats
  • mysqli_result::$num_rows — Retourne le nombre de lignes dans un résultat


Récupère la position courante d'un champ dans un pointeur de résultat

  • « mysqli_result
  • mysqli_result::data_seek »
  • PHP Manual
  • mysqli_result
  • Récupère la position courante d'un champ dans un pointeur de résultat

mysqli_result::$current_field

mysqli_field_tell

(PHP 5, PHP 7)

mysqli_result::$current_field -- mysqli_field_tell — Récupère la position courante d'un champ dans un pointeur de résultat

Description

Style orienté objet

int $mysqli_result->current_field ;

Style procédural

int mysqli_field_tell ( mysqli_result $result )

Retourne la position du curseur de champ utilisé par le dernier appel à la fonction mysqli_fetch_field(). Cette valeur peut être utilisée comme argument de la fonction mysqli_field_seek().

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne la position courante du curseur de champ.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Récupération des informations sur le champ pour toutes les colonnes */
    while ($finfo = $result->fetch_field()) {

        /* Récupération de la position du pointeur de champ */
        $currentfield = $result->current_field;

        printf("Colonne %d :\n", $currentfield);
        printf("Nom :     %s\n", $finfo->name);
        printf("Table :    %s\n", $finfo->table);
        printf("Longueur max. : %d\n", $finfo->max_length);
        printf("Drapeaux :    %d\n", $finfo->flags);
        printf("Type :     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Récupération des informations sur le champ pour toutes les colonnes */
    while ($finfo = mysqli_fetch_field($result)) {

        /* Récupération de la position du pointeur de champ */
        $currentfield = mysqli_field_tell($result);

        printf("Colonne %d :\n", $currentfield);
        printf("Nom :     %s\n", $finfo->name);
        printf("Table :    %s\n", $finfo->table);
        printf("Longueur max. : %d\n", $finfo->max_length);
        printf("Drapeaux :    %d\n", $finfo->flags);
        printf("Type :     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Colonne 1:
Nom :           Name
Table :         Country
Longueur max. : 11
Drapeaux :      1
Type :          254

Colonne 2:
Nom :           SurfaceArea
Table      :    Country
Longueur max. : 10
Drapeaux :      32769
Type :          4

Voir aussi

  • mysqli_fetch_field() - Retourne le prochain champs dans le jeu de résultats
  • mysqli_field_seek() - Déplace le pointeur de résultat sur le champ spécifié


Déplace le pointeur interne de résultat

  • « mysqli_result::$current_field
  • mysqli_result::fetch_all »
  • PHP Manual
  • mysqli_result
  • Déplace le pointeur interne de résultat

mysqli_result::data_seek

mysqli_data_seek

(PHP 5, PHP 7)

mysqli_result::data_seek -- mysqli_data_seek — Déplace le pointeur interne de résultat

Description

Style orienté objet

bool mysqli_result::data_seek ( int $offset )

Style procédural

bool mysqli_data_seek ( mysqli_result $result , int $offset )

La fonction mysqli_data_seek() déplace le pointeur interne de résultat associé au jeu de résultat représenté par result, en le faisant pointer sur la ligne spécifiée par offset.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

offset

Le paramètre offset doit être compris entre zéro et mysqli_num_rows() - 1 (0..mysqli_num_rows() - 1).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Cette fonction ne peut être utilisée qu'avec des résultats obtenus avec la fonction mysqli_store_result() ou mysqli_query().

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($result = $mysqli->query($query)) {

    /* Déplacement du pointeur sur la ligne numéro 400 */
    $result->data_seek(399);

    /* Récupération de cette ligne */
    $row = $result->fetch_row();

    printf ("Ville : %s Code Pays : %s\n", $row[0], $row[1]);

    /* Libération des résultats */
    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (!$link) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";

if ($result = mysqli_query($link, $query)) {

    /* Déplacement du pointeur sur la ligne numéro 400 */
    mysqli_data_seek($result, 399);

    /* Récupération de cette ligne */
    $row = mysqli_fetch_row($result);

    printf ("Ville : %s Code Pays : %s\n", $row[0], $row[1]);

    /* Libération des résultats */
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Ville : Benin City Code Pays : NGA

Voir aussi

  • mysqli_store_result() - Transfère un jeu de résultats à partir de la dernière requête
  • mysqli_fetch_row() - Récupère une ligne de résultat sous forme de tableau indexé
  • mysqli_fetch_array() - Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysqli_fetch_assoc() - Récupère une ligne de résultat sous forme de tableau associatif
  • mysqli_fetch_object() - Retourne la ligne courante d'un jeu de résultat sous forme d'objet
  • mysqli_query() - Exécute une requête sur la base de données
  • mysqli_num_rows() - Retourne le nombre de lignes dans un résultat


Lit toutes les lignes de résultats dans un tableau

  • « mysqli_result::data_seek
  • mysqli_result::fetch_array »
  • PHP Manual
  • mysqli_result
  • Lit toutes les lignes de résultats dans un tableau

mysqli_result::fetch_all

mysqli_fetch_all

(PHP 5 >= 5.3.0, PHP 7)

mysqli_result::fetch_all -- mysqli_fetch_all — Lit toutes les lignes de résultats dans un tableau

Description

Style orienté objet

mixed mysqli_result::fetch_all ([ int $resulttype = MYSQLI_NUM ] )

Style procédural

mixed mysqli_fetch_all ( mysqli_result $result [, int $resulttype = MYSQLI_NUM ] )

mysqli_fetch_all() lit tous les résultats et retourne le résultat sous forme d'un tableau associatif, numérique, ou les deux.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

resulttype

Ce paramètre optionnel est une constante, qui indique le type de tableau qui doit être produit à partir du résultat. Les valeurs possibles sont les constantes MYSQLI_ASSOC, MYSQLI_NUM, ou MYSQLI_BOTH.

Valeurs de retour

Retourne un tableau associatif ou numérique contenant les lignes de résultat.

Driver MySQL Natif uniquement

Disponible uniquement avec mysqlnd.

Vu que la fonction mysqli_fetch_all() retourne toutes les lignes dans un tableau en une seule fois, elle peut consommer plus de mémoire que des fonctions comme mysqli_fetch_array(), qui ne font que récupérer une ligne à la fois depuis le jeu de résultats. Par la suite, si vous devez parcourir le jeu de résultats, vous devez construire une boucle qui aura un impact sur les performances. C'est pour cette raison que la fonction mysqli_fetch_all() ne doit être utilisée que dans ce genre de situation où le résultat récupéré doit être envoyé vers une autre interface pour être analysé.

Voir aussi

  • mysqli_fetch_array() - Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysqli_query() - Exécute une requête sur la base de données


Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux

  • « mysqli_result::fetch_all
  • mysqli_result::fetch_assoc »
  • PHP Manual
  • mysqli_result
  • Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux

mysqli_result::fetch_array

mysqli_fetch_array

(PHP 5, PHP 7)

mysqli_result::fetch_array -- mysqli_fetch_array — Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux

Description

Style orienté objet

mixed mysqli_result::fetch_array ([ int $resulttype = MYSQLI_BOTH ] )

Style procédural

mixed mysqli_fetch_array ( mysqli_result $result [, int $resulttype = MYSQLI_BOTH ] )

Retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de ligne dans le jeu de résultats result.

mysqli_fetch_array() est une version étendue de la fonction mysqli_fetch_row(). En plus d'enregistrer les données sous forme d'un tableau à indices numériques, elle peut aussi les enregistrer dans un tableau associatif, en utilisant les noms des champs comme clés.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Si plusieurs colonnes portent le même nom, la dernière colonne aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez utiliser l'index numérique, ou faire un alias pour chaque colonne.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

resulttype

Le second argument optionnel est une constante indiquant quel type de tableau doit être renvoyé à partir de la ligne de données courante. Les valeurs possibles pour ce paramètre sont les constantes MYSQLI_ASSOC, MYSQLI_NUM, et MYSQLI_BOTH.

En utilisant la constante MYSQLI_ASSOC, cette fonction se comportera comme la fonction mysqli_fetch_assoc(), tandis que MYSQLI_NUM la fera agir comme la fonction mysqli_fetch_row(). La constante MYSQLI_BOTH, créera elle un tableau qui sera à la fois associatif et indexé numériquement.

Valeurs de retour

Retourne un tableau de chaînes qui correspond à la ligne récupérée ou NULL s'il n'y a plus de ligne disponible dans le jeu de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if ($mysqli->connect_errno) {
    printf("Echec de la connexion : %s\n", $mysqli->connect_error);
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = $mysqli->query($query);

/* Tableau numérique */
$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* Tableau associatif */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* Tableau associatif et numérique */
$row = $result->fetch_array(MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* Libération des résultats */
$result->free();

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($link, $query);

/* Tableau numérique */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* Tableau associatif */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* Tableau associatif et numérique */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* Libération des résultats */
mysqli_free_result($result);

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Voir aussi

  • mysqli_fetch_assoc() - Récupère une ligne de résultat sous forme de tableau associatif
  • mysqli_fetch_row() - Récupère une ligne de résultat sous forme de tableau indexé
  • mysqli_fetch_object() - Retourne la ligne courante d'un jeu de résultat sous forme d'objet
  • mysqli_query() - Exécute une requête sur la base de données
  • mysqli_data_seek() - Déplace le pointeur interne de résultat


Récupère une ligne de résultat sous forme de tableau associatif

  • « mysqli_result::fetch_array
  • mysqli_result::fetch_field_direct »
  • PHP Manual
  • mysqli_result
  • Récupère une ligne de résultat sous forme de tableau associatif

mysqli_result::fetch_assoc

mysqli_fetch_assoc

(PHP 5, PHP 7)

mysqli_result::fetch_assoc -- mysqli_fetch_assoc — Récupère une ligne de résultat sous forme de tableau associatif

Description

Style orienté objet

array mysqli_result::fetch_assoc ( void )

Style procédural

array mysqli_fetch_assoc ( mysqli_result $result )

Retourne un tableau associatif qui correspond à la ligne récupérée ou NULL s'il n'y a plus de ligne.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne un tableau associatif de chaînes représentant la prochaine ligne dans le jeu de résultats représenté par le paramètre result, où chaque clé du tableau représente le nom d'une colonne du résultat ou NULL s'il n'y a plus de ligne dans le jeu de résultats.

Si deux ou plus colonnes dans le jeu de résultat ont le même nom, le tableau associatif retourné par la fonction mysqli_fetch_assoc() ne contiendra que la valeur de la dernière colonne de ce nom. Si vous devez travailler avec des jeux de résultats ayant cette particularité, la fonction mysqli_fetch_row() qui retourne un tableau indexé doit être utilisée à la place.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", $mysqli->connect_error);
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* Récupère un tableau associatif */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* Libération des résultats */
    $result->free();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* Récupère un tableau associatif */
    while ($row = mysqli_fetch_assoc($result)) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* Libération des résultats */
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Exemple #3 Exemple avec MySQLi_Result et l'utilisation d'un iterator

<?php
$c = mysqli_connect('127.0.0.1','user', 'pass');

// Utilisation d'itérateurs (support ajouté en PHP 5.4)
foreach ( $c->query('SELECT user,host FROM mysql.user') as $row ) {
    printf("'%s'@'%s'\n", $row['user'], $row['host']);
}

echo "\n==================\n";

// Sans utiliser les itérateurs
$result = $c->query('SELECT user,host FROM mysql.user');
while ($row = $result->fetch_assoc()) {
    printf("'%s'@'%s'\n", $row['user'], $row['host']);
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

'root'@'192.168.1.1'
'root'@'127.0.0.1'
'dude'@'localhost'
'lebowski'@'localhost'

==================

'root'@'192.168.1.1'
'root'@'127.0.0.1'
'dude'@'localhost'
'lebowski'@'localhost'

Voir aussi

  • mysqli_fetch_array() - Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysqli_fetch_row() - Récupère une ligne de résultat sous forme de tableau indexé
  • mysqli_fetch_object() - Retourne la ligne courante d'un jeu de résultat sous forme d'objet
  • mysqli_query() - Exécute une requête sur la base de données
  • mysqli_data_seek() - Déplace le pointeur interne de résultat


Récupère les métadonnées d'un champ unique

  • « mysqli_result::fetch_assoc
  • mysqli_result::fetch_field »
  • PHP Manual
  • mysqli_result
  • Récupère les métadonnées d'un champ unique

mysqli_result::fetch_field_direct

mysqli_fetch_field_direct

(PHP 5, PHP 7)

mysqli_result::fetch_field_direct -- mysqli_fetch_field_direct — Récupère les métadonnées d'un champ unique

Description

Style orienté objet

object mysqli_result::fetch_field_direct ( int $fieldnr )

Style procédural

object mysqli_fetch_field_direct ( mysqli_result $result , int $fieldnr )

Retourne un objet qui contient les métadonnées d'un champ dans le jeu de résultats spécifié.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

fieldnr

Le numéro du champ. Cette valeur doit être dans l'intervalle 0 à nombre de champs - 1.

Valeurs de retour

Retourne un objet qui contient les métadonnées d'un champ ou FALSE si aucune métadonnée n'est spécifiée pour le champ fieldnr.

Attributs de l'objet
Attribut | Description
name | Le nom de la colonne
orgname | Le nom original de la colonne si un alias a été spécifié
table | Le nom de la table à laquelle ce champ appartient (s'il n'a pas été calculé)
orgtable | Le nom original de la table si un alias a été spécifié
def | La valeur par défaut du champ, représentée par une chaîne de caractères
max_length | La longueur maximale du champ pour le jeu de résultats
length | La largeur du champ, comme spécifiée dans la définition de table
charsetnr | Le numéro du jeu de caractères pour ce champ
flags | Un entier représentant le bit-flags pour ce champ
type | Le type de données utilisées pour ce champ
decimals | Le nombre de décimales utilisées (pour les champs numériques)

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for column 'SurfaceArea' */
    $finfo = $result->fetch_field_direct(1);

    printf("Nom        : %s\n", $finfo->name);
    printf("Table      : %s\n", $finfo->table);
    printf("Taille max : %d\n", $finfo->max_length);
    printf("Flags      : %d\n", $finfo->flags);
    printf("Type       : %d\n", $finfo->type);

    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for column 'SurfaceArea' */
    $finfo = mysqli_fetch_field_direct($result, 1);

    printf("Nom        : %s\n", $finfo->name);
    printf("Table      : %s\n", $finfo->table);
    printf("Taille max : %d\n", $finfo->max_length);
    printf("Flags      : %d\n", $finfo->flags);
    printf("Type       : %d\n", $finfo->type);

    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Nom        : SurfaceArea
Table      : Country
Taille max : 10
Flags      : 32769
Type       : 4

Voir aussi

  • mysqli_num_fields() - Récupère le nombre de champs dans un résultat
  • mysqli_fetch_field() - Retourne le prochain champs dans le jeu de résultats
  • mysqli_fetch_fields() - Retourne un tableau d'objets représentant les champs dans le résultat


Retourne le prochain champs dans le jeu de résultats

  • « mysqli_result::fetch_field_direct
  • mysqli_result::fetch_fields »
  • PHP Manual
  • mysqli_result
  • Retourne le prochain champs dans le jeu de résultats

mysqli_result::fetch_field

mysqli_fetch_field

(PHP 5, PHP 7)

mysqli_result::fetch_field -- mysqli_fetch_field — Retourne le prochain champs dans le jeu de résultats

Description

Style orienté objet

object mysqli_result::fetch_field ( void )

Style procédural

object mysqli_fetch_field ( mysqli_result $result )

Retourne les attributs de la prochaine colonne dans le jeu de résultats représenté par le paramètre result en tant qu'objet. Appelez cette fonction de façon répétitive pour récupérer les informations de toutes les colonnes.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne un objet qui contient les informations d'un champ ou FALSE si aucune information n'est disponible pour ce champs.

Propriétés de l'objet
Propriété | Description
name | Le nom de la colonne
orgname | Le nom original de la colonne si un alias a été spécifié
table | Le nom de la table à laquelle ce champs appartient (s'il n'a pas été calculé)
orgtable | Le nom original de la table si un alias a été spécifié
def | Reservé pour la valeur par défaut. Actuellement toujours ""
db | Base de données (depuis PHP 5.3.6)
catalog | Nom du catalogue, toujours "def" (depuis PHP 5.3.6)
max_length | La longueur maximale du champs pour le jeu de résultats
length | La largeur du champs, comme spécifiée dans la définition de table
charsetnr | Le numéro du jeu de caractères pour ce champs
flags | Un entier représentant le bit-flags pour ce champs
type | Le type de données utilisées pour ce champs
decimals | Le nombre de décimales utilisées (pour les champs de type entier)

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Récupère les informations d'un champ pour toutes les colonnes */
    while ($finfo = $result->fetch_field()) {

        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Récupère les informations d'un champ pour toutes les colonnes */
    while ($finfo = mysqli_fetch_field($result)) {

        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Voir aussi

  • mysqli_num_fields() - Récupère le nombre de champs dans un résultat
  • mysqli_fetch_field_direct() - Récupère les métadonnées d'un champ unique
  • mysqli_fetch_fields() - Retourne un tableau d'objets représentant les champs dans le résultat
  • mysqli_field_seek() - Déplace le pointeur de résultat sur le champ spécifié


Retourne un tableau d'objets représentant les champs dans le résultat

  • « mysqli_result::fetch_field
  • mysqli_result::fetch_object »
  • PHP Manual
  • mysqli_result
  • Retourne un tableau d'objets représentant les champs dans le résultat

mysqli_result::fetch_fields

mysqli_fetch_fields

(PHP 5, PHP 7)

mysqli_result::fetch_fields -- mysqli_fetch_fields — Retourne un tableau d'objets représentant les champs dans le résultat

Description

Style orienté objet

array mysqli_result::fetch_fields ( void )

Style procédural

array mysqli_fetch_fields ( mysqli_result $result )

Cette fonction fonctionne comme mysqli_fetch_field() à la différence que, au lieu de retourner un objet à la fois pour chaque champ, les colonnes sont retournées en tant que tableau d'objets.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne un tableau d'objets qui contient les métadonnées d'un champ ou FALSE si aucune métadonnée n'est disponible pour ce champ.

Propriétés de l'objet
Propriété | Description
name | Le nom de la colonne
orgname | Le nom original de la colonne si un alias a été spécifié
table | Le nom de la table à laquelle ce champ appartient (s'il n'a pas été calculé)
orgtable | Le nom original de la table si un alias a été spécifié
max_length | La longueur maximale du champ pour le jeu de résultats
length | La largeur du champs, comme spécifiée dans la définition de table
charsetnr | Le numéro du jeu de caractères pour ce champs
flags | Un entier représentant le bit-flags pour ce champs
type | Le type de données utilisées pour ce champs
decimals | Le nombre de décimales utilisées (pour les champs de type entier)

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Récupère les informations d'un champ pour toutes les colonnes */
    $finfo = $result->fetch_fields();

    foreach ($finfo as $val) {
        printf("Name:     %s\n", $val->name);
        printf("Table:    %s\n", $val->table);
        printf("max. Len: %d\n", $val->max_length);
        printf("Flags:    %d\n", $val->flags);
        printf("Type:     %d\n\n", $val->type);
    }
    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Récupère les informations d'un champ pour toutes les colonnes */
    $finfo = mysqli_fetch_fields($result);

    foreach ($finfo as $val) {
        printf("Name:     %s\n", $val->name);
        printf("Table:    %s\n", $val->table);
        printf("max. Len: %d\n", $val->max_length);
        printf("Flags:    %d\n", $val->flags);
        printf("Type:     %d\n\n", $val->type);
    }
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Voir aussi

  • mysqli_num_fields() - Récupère le nombre de champs dans un résultat
  • mysqli_fetch_field_direct() - Récupère les métadonnées d'un champ unique
  • mysqli_fetch_field() - Retourne le prochain champs dans le jeu de résultats


Retourne la ligne courante d'un jeu de résultat sous forme d'objet

  • « mysqli_result::fetch_fields
  • mysqli_result::fetch_row »
  • PHP Manual
  • mysqli_result
  • Retourne la ligne courante d'un jeu de résultat sous forme d'objet

mysqli_result::fetch_object

mysqli_fetch_object

(PHP 5, PHP 7)

mysqli_result::fetch_object -- mysqli_fetch_object — Retourne la ligne courante d'un jeu de résultat sous forme d'objet

Description

Style orienté objet

object mysqli_result::fetch_object ([ string $class_name = "stdClass" [, array $params ]] )

Style procédural

object mysqli_fetch_object ( mysqli_result $result [, string $class_name = "stdClass" [, array $params ]] )

La fonction mysqli_fetch_object() retourne la ligne courante du jeu de résultat sous forme d'objet dont les attributs représentent les noms des champs trouvés dans le jeu de résultats.

Notez que mysqli_fetch_object() affecte les attributs de l'objet avant d'en appeler le constructeur.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

class_name

Le nom de la classe à instancier. Si non fourni, un objet stdClass sera retourné.

params

Un tableau de paramètres (optionnel) à passer au constructeur de l'objet class_name.

Valeurs de retour

Retourne un objet avec les propriétés qui correspondent à la ligne récupérée ou NULL s'il n'y a plus de ligne dans le jeu de résultat.

Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* Récupère un tableau d'objets */
    while ($obj = $result->fetch_object()) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* free result set */
    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* Récupère un tableau d'objets */
    while ($obj = mysqli_fetch_object($result)) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Voir aussi

  • mysqli_fetch_array() - Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysqli_fetch_assoc() - Récupère une ligne de résultat sous forme de tableau associatif
  • mysqli_fetch_row() - Récupère une ligne de résultat sous forme de tableau indexé
  • mysqli_query() - Exécute une requête sur la base de données
  • mysqli_data_seek() - Déplace le pointeur interne de résultat


Récupère une ligne de résultat sous forme de tableau indexé

  • « mysqli_result::fetch_object
  • mysqli_result::$field_count »
  • PHP Manual
  • mysqli_result
  • Récupère une ligne de résultat sous forme de tableau indexé

mysqli_result::fetch_row

mysqli_fetch_row

(PHP 5, PHP 7)

mysqli_result::fetch_row -- mysqli_fetch_row — Récupère une ligne de résultat sous forme de tableau indexé

Description

Style orienté objet

mixed mysqli_result::fetch_row ( void )

Style procédural

mixed mysqli_fetch_row ( mysqli_result $result )

Récupère une ligne de données à partir du jeu de résultats représenté par result et le retourne en tant que tableau indexé, où chaque colonne est une case du tableau, celui-ci commençant à 0 (zéro). Chaque nouvel appel à mysqli_fetch_row() retournera la prochaine ligne dans le jeu de résultats, ou NULL s'il n'y a plus de lignes.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

mysqli_fetch_row() retourne un tableau de chaînes correspondant à la ligne récupérée ou NULL s'il n'y a plus de ligne dans le jeu de résultats.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* Récupère un tableau associatif */
    while ($row = $result->fetch_row()) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* Libère le jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* Récupère un tableau associatif */
    while ($row = mysqli_fetch_row($result)) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* Libère le jeu de résultats */
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Voir aussi

  • mysqli_fetch_array() - Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysqli_fetch_assoc() - Récupère une ligne de résultat sous forme de tableau associatif
  • mysqli_fetch_object() - Retourne la ligne courante d'un jeu de résultat sous forme d'objet
  • mysqli_query() - Exécute une requête sur la base de données
  • mysqli_data_seek() - Déplace le pointeur interne de résultat


Récupère le nombre de champs dans un résultat

  • « mysqli_result::fetch_row
  • mysqli_result::field_seek »
  • PHP Manual
  • mysqli_result
  • Récupère le nombre de champs dans un résultat

mysqli_result::$field_count

mysqli_num_fields

(PHP 5, PHP 7)

mysqli_result::$field_count -- mysqli_num_fields — Récupère le nombre de champs dans un résultat

Description

Style orienté objet

int $mysqli_result->field_count;

Style procédural

int mysqli_num_fields ( mysqli_result $result )

Retourne le nombre de champs dans le jeu de résultats spécifié.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Le nombre de champs depuis le jeu de résultats.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* Détermine le nombre de champs dans le jeu de résultats */
    $field_cnt = $result->field_count;

    printf("Le résultat a %d champs.\n", $field_cnt);

    /* Ferme le jeu de résultats */
    $result->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* Détermine le nombre de champs dans le jeu de résultats */
    $field_cnt = mysqli_num_fields($result);

    printf("Le résultat a %d champs.\n", $field_cnt);

    /* Ferme le jeu de résultats */
    mysqli_free_result($result);
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Le résultat a 5 champs.

Voir aussi

  • mysqli_fetch_field() - Retourne le prochain champs dans le jeu de résultats


Déplace le pointeur de résultat sur le champ spécifié

  • « mysqli_result::$field_count
  • mysqli_result::free »
  • PHP Manual
  • mysqli_result
  • Déplace le pointeur de résultat sur le champ spécifié

mysqli_result::field_seek

mysqli_field_seek

(PHP 5, PHP 7)

mysqli_result::field_seek -- mysqli_field_seek — Déplace le pointeur de résultat sur le champ spécifié

Description

Style orienté objet

bool mysqli_result::field_seek ( int $fieldnr )

Style procédural

bool mysqli_field_seek ( mysqli_result $result , int $fieldnr )

Place le curseur sur le champ spécifié par le numéro fieldnr. Le prochain appel à la fonction mysqli_fetch_field() retournera la définition du champ de la colonne associée à cette position.

Note:

Pour se déplacer au début d'une ligne, passez une position ayant pour valeur zéro.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

fieldnr

Le numéro du champ. Cette valeur doit être dans l'intervalle 0 à nombre de champs - 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Récupération des informations du champ pour la 2ème colonne */
    $result->field_seek(1);
    $finfo = $result->fetch_field();

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n\n", $finfo->type);

    $result->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Récupération des informations du champ pour la 2ème colonne */
    mysqli_field_seek($result, 1);
    $finfo = mysqli_fetch_field($result);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n\n", $finfo->type);

    mysqli_free_result($result);
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Voir aussi

  • mysqli_fetch_field() - Retourne le prochain champs dans le jeu de résultats


Libère la mémoire associée à un résultat

  • « mysqli_result::field_seek
  • mysqli_result::$lengths »
  • PHP Manual
  • mysqli_result
  • Libère la mémoire associée à un résultat

mysqli_result::free

mysqli_free_result

(PHP 5, PHP 7)

mysqli_result::free -- mysqli_free_result — Libère la mémoire associée à un résultat

Description

Style orienté objet

void mysqli_result::free ( void )
void mysqli_result::close ( void )
void mysqli_result::free_result ( void )

Style procédural

void mysqli_free_result ( mysqli_result $result )

Libère la mémoire associée à un résultat.

Note:

Vous devriez toujours libérer les résultats avec mysqli_free_result(), lorsque votre objet de résultat ne vous est plus utile.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • mysqli_query() - Exécute une requête sur la base de données
  • mysqli_stmt_store_result() - Stocke un jeu de résultats depuis une requête préparée
  • mysqli_store_result() - Transfère un jeu de résultats à partir de la dernière requête
  • mysqli_use_result() - Initialise la récupération d'un jeu de résultats


Retourne la longueur des colonnes de la ligne courante du jeu de résultats

  • « mysqli_result::free
  • mysqli_result::$num_rows »
  • PHP Manual
  • mysqli_result
  • Retourne la longueur des colonnes de la ligne courante du jeu de résultats

mysqli_result::$lengths

mysqli_fetch_lengths

(PHP 5, PHP 7)

mysqli_result::$lengths -- mysqli_fetch_lengths — Retourne la longueur des colonnes de la ligne courante du jeu de résultats

Description

Style orienté objet

array $mysqli_result->lengths;

Style procédural

array mysqli_fetch_lengths ( mysqli_result $result )

La fonction mysqli_fetch_lengths() retourne un tableau contenant la longueur de chaque colonne de la ligne courante du jeu de résultats représenté par le paramètre result.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Un tableau d'entiers représentant la taille de chaque colonne (n'incluant aucun caractère null de fin). Retourne FALSE si une erreur survient.

mysqli_fetch_lengths() n'est valide que pour la ligne courant du jeu de résultats. Elle retourne FALSE si vous l'appelez avant les fonctions mysqli_fetch_row(), mysqli_fetch_array(), mysqli_fetch_object() ou après avoir récupéré toutes les lignes du résultat.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "mon_user", "mon_mot_de_passe", "la_base");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = $mysqli->query($query)) {

    $row = $result->fetch_row();

    /* Affichage de la longueur des colonnes */
    foreach ($result->lengths as $i => $val) {
        printf("Le champ n°%2d a une longueur de %2d\n", $i+1, $val);
    }
    $result->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = mysqli_query($link, $query)) {

    $row = mysqli_fetch_row($result);

    /* Affichage de la longueur des colonnes */
    foreach (mysqli_fetch_lengths($result) as $i => $val) {
        printf("Le champ n°%2d a une longueur de %2d\n", $i+1, $val);
    }
    mysqli_free_result($result);
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Le champ n° 1 a une longueur de  3
Le champ n° 2 a une longueur de  5
Le champ n° 3 a une longueur de 13
Le champ n° 4 a une longueur de  9
Le champ n° 5 a une longueur de  6
Le champ n° 6 a une longueur de  1
Le champ n° 7 a une longueur de  6
Le champ n° 8 a une longueur de  4
Le champ n° 9 a une longueur de  6
Le champ n°10 a une longueur de  6
Le champ n°11 a une longueur de  5
Le champ n°12 a une longueur de 44
Le champ n°13 a une longueur de  7
Le champ n°14 a une longueur de  3
Le champ n°15 a une longueur de  2


Retourne le nombre de lignes dans un résultat

  • « mysqli_result::$lengths
  • mysqli_driver »
  • PHP Manual
  • mysqli_result
  • Retourne le nombre de lignes dans un résultat

mysqli_result::$num_rows

mysqli_num_rows

(PHP 5, PHP 7)

mysqli_result::$num_rows -- mysqli_num_rows — Retourne le nombre de lignes dans un résultat

Description

Style orienté objet

int $mysqli_result->num_rows;

Style procédural

int mysqli_num_rows ( mysqli_result $result )

Retourne le nombre de lignes dans un jeu de résultats.

Le comportement de mysqli_num_rows() dépend de l'utilisation de jeux de résultats bufferisés ou non. Pour les jeux de résultats non bufferisés, mysqli_num_rows() ne retournera pas le nombre correct de lignes tant que toutes les lignes du jeu de résultats ne sont pas retournées.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne le nombre de lignes dans le jeu de résultats.

Note:

Si le nombre de résultats est plus grand que PHP_INT_MAX, le nombre sera retourné sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name")) {

    /* Détermine le nombre de lignes du jeu de résultats */
    $row_cnt = $result->num_rows;

    printf("Le jeu de résultats a %d lignes.\n", $row_cnt);

    /* Ferme le jeu de résultats */
    $result->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) {

    /* Détermine le nombre de lignes du jeu de résultats */
    $row_cnt = mysqli_num_rows($result);

    printf("Le jeu de résultats a %d lignes.\n", $row_cnt);

    /* Ferme le jeu de résultats */
    mysqli_free_result($result);
}

/* Ferme la connexion */
mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

Le jeu de résultats a 239 lignes.

Voir aussi

  • mysqli_affected_rows() - Retourne le nombre de lignes affectées par la dernière opération MySQL
  • mysqli_store_result() - Transfère un jeu de résultats à partir de la dernière requête
  • mysqli_use_result() - Initialise la récupération d'un jeu de résultats
  • mysqli_query() - Exécute une requête sur la base de données


La classe mysqli_driver

(PHP 5, PHP 7)

Introduction

Driver MySQLi.

Synopsis de la classe

mysqli_driver {
/* Propriétés */
public readonly string $client_info ;
public readonly string $client_version ;
public readonly string $driver_version ;
public readonly string $embedded ;
public bool $reconnect ;
public int $report_mode ;
/* Méthodes */
void embedded_server_end ( void )
bool embedded_server_start ( bool $start , array $arguments , array $groups )
}

Propriétés

client_info

La version de l'en-tête du client API

client_version

La version du client

driver_version

La version du driver MySQLi

embedded

Si le support "MySQLi Embedded" est activé

reconnect

Permet ou non la reconnexion (voir la directive INI mysqli.reconnect)

report_mode

Définit à MYSQLI_REPORT_OFF, MYSQLI_REPORT_ALL ou n'importe quelle combinaison de MYSQLI_REPORT_STRICT (lane des exceptions lors d'erreurs), MYSQLI_REPORT_ERROR (rapporte les erreurs) et MYSQLI_REPORT_INDEX (erreurs sur les indexes). Voir aussi mysqli_report().

Sommaire

  • mysqli_driver::embedded_server_end — Arrête le serveur embarqué
  • mysqli_driver::embedded_server_start — Initialise et démarre le serveur embarqué
  • mysqli_driver::$report_mode — Active ou désactive les fonctions de rapport interne


Arrête le serveur embarqué

  • « mysqli_driver
  • mysqli_driver::embedded_server_start »
  • PHP Manual
  • mysqli_driver
  • Arrête le serveur embarqué

mysqli_driver::embedded_server_end

mysqli_embedded_server_end

(PHP 5, PHP 7)

mysqli_driver::embedded_server_end -- mysqli_embedded_server_end — Arrête le serveur embarqué

Description

Style orienté objet

void mysqli_driver::embedded_server_end ( void )

Style procédural

void mysqli_embedded_server_end ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Initialise et démarre le serveur embarqué

  • « mysqli_driver::embedded_server_end
  • mysqli_driver::$report_mode »
  • PHP Manual
  • mysqli_driver
  • Initialise et démarre le serveur embarqué

mysqli_driver::embedded_server_start

mysqli_embedded_server_start

(PHP 5, PHP 7)

mysqli_driver::embedded_server_start -- mysqli_embedded_server_start — Initialise et démarre le serveur embarqué

Description

Style orienté objet

bool mysqli_driver::embedded_server_start ( bool $start , array $arguments , array $groups )

Style procédural

bool mysqli_embedded_server_start ( bool $start , array $arguments , array $groups )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Active ou désactive les fonctions de rapport interne

  • « mysqli_driver::embedded_server_start
  • mysqli_warning »
  • PHP Manual
  • mysqli_driver
  • Active ou désactive les fonctions de rapport interne

mysqli_driver::$report_mode

mysqli_report

(PHP 5, PHP 7)

mysqli_driver::$report_mode -- mysqli_report — Active ou désactive les fonctions de rapport interne

Description

Style orienté objet

int $mysqli_driver->report_mode ;

Style procédural

bool mysqli_report ( int $flags )

Fonction utile pour améliorer les requêtes durant le développement du code ainsi que lors des tests. Suivant les drapeaux fournis, elle rapporte les erreurs depuis les appels aux fonctions MySQLi, ou depuis les requêtes qui n'utilisent pas d'index (ou utilise un mauvais index).

Liste de paramètres

flags

Drapeaux supportés
Nom | Description
MYSQLI_REPORT_OFF | Désactive les rapports
MYSQLI_REPORT_ERROR | Rapporte les erreurs depuis les appels aux fonctions mysqli
MYSQLI_REPORT_STRICT | Lance une exception mysqli_sql_exception pour les erreurs, au lieu d'émettre des alertes
MYSQLI_REPORT_INDEX | Rapporte si aucun index ou un mauvais index est utilisé dans une requête
MYSQLI_REPORT_ALL | Défini toutes les options (rapporte tout)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.4 | Modification du mode de reporting : il est maintenant pour chaque requête, plutôt que pour chaque processus.
5.2.15 | Modification du mode de reporting : il est maintenant pour chaque requête, plutôt que pour chaque processus.

Exemples

Exemple #1 Style orienté objet

<?php

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Echec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Activation du reporting */
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;

try {

    /* cette requête devrait rapporter une erreur */
    $result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

    /* cette requête devrait rapporter un mauvais index */
    $result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");

    $result->close();

    $mysqli->close();

} catch (mysqli_sql_exception $e) {

    echo $e->__toString();
}
?>

Exemple #2 Style procédural

<?php
/* Activation du reporting */
mysqli_report(MYSQLI_REPORT_ALL);

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Echec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* cette requête devrait rapporter une erreur */
$result = mysqli_query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* cette requête devrait rapporter un mauvais index */
$result = mysqli_query("SELECT Name FROM City WHERE population > 50000");

mysqli_free_result($result);

mysqli_close($link);
?>

Voir aussi

  • mysqli_debug() - Effectue des actions de déboguage
  • mysqli_dump_debug_info() - Écrit les informations de déboguage dans les logs
  • mysqli_sql_exception
  • set_exception_handler() - Définit une fonction utilisateur de gestion d'exceptions
  • error_reporting() - Fixe le niveau de rapport d'erreurs PHP


La classe mysqli_warning

(PHP 5, PHP 7)

Introduction

Représente une alerte MySQL.

Synopsis de la classe

mysqli_warning {
/* Propriétés */
public $message ;
public $sqlstate ;
public $errno ;
/* Méthodes */
public __construct ( void )
public void next ( void )
}

Propriétés

message

Le message

sqlstate

Le statut SQL

errno

Le numéro de l'erreur

Sommaire

  • mysqli_warning::__construct — Le constructeur __construct
  • mysqli_warning::next — Le but de next


Le constructeur __construct

  • « mysqli_warning
  • mysqli_warning::next »
  • PHP Manual
  • mysqli_warning
  • Le constructeur __construct

mysqli_warning::__construct

(PHP 5, PHP 7)

mysqli_warning::__construct — Le constructeur __construct

Description

public mysqli_warning::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de next

  • « mysqli_warning::__construct
  • mysqli_sql_exception »
  • PHP Manual
  • mysqli_warning
  • Le but de next

mysqli_warning::next

(PHP 5, PHP 7)

mysqli_warning::next — Le but de next

Description

public void mysqli_warning::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe mysqli_sql_exception

(PHP 5, PHP 7)

Introduction

La classe de gestion des exceptions mysqli.

Synopsis de la classe

mysqli_sql_exception extends RuntimeException {
/* Propriétés */
protected string $sqlstate ;
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}

Propriétés

sqlstate

Le statut SQL avec l'erreur.


Fonctions mysqli obsolètes et alias

Sommaire

  • mysqli_bind_param — Alias de mysqli_stmt_bind_param
  • mysqli_bind_result — Alias de mysqli_stmt_bind_result
  • mysqli_client_encoding — Alias de mysqli_character_set_name
  • mysqli_connect — Alias de mysqli::__construct
  • mysqli::disable_reads_from_master — Désactive les lectures depuis le maître
  • mysqli_disable_rpl_parse — Désactive l'analyseur RPL
  • mysqli_enable_reads_from_master — Active la lecture depuis le maître
  • mysqli_enable_rpl_parse — Active l'analyseur RPL
  • mysqli_escape_string — Alias de mysqli_real_escape_string
  • mysqli_execute — Alias de mysqli_stmt_execute
  • mysqli_fetch — Alias de mysqli_stmt_fetch
  • mysqli_get_cache_stats — Retourne les statistiques sur le cache du client Zval
  • mysqli_get_links_stats — Retourne des informations sur les liens ouverts et mis en cache
  • mysqli_get_metadata — Alias de mysqli_stmt_result_metadata
  • mysqli_master_query — Force l'exécution d'une requête sur le maître dans une configuration maître/esclave
  • mysqli_param_count — Alias de mysqli_stmt_param_count
  • mysqli_report — Alias de mysqli_driver->report_mode
  • mysqli_rpl_parse_enabled — Vérifie si l'analyseur RPL est activé
  • mysqli_rpl_probe — Sonde le RPL
  • mysqli_send_long_data — Alias de mysqli_stmt_send_long_data
  • mysqli::set_opt — Alias de mysqli_options
  • mysqli_slave_query — Force l'exécution de la requête sur un serveur esclave pour une configuration maître/esclave


Alias de mysqli_stmt_bind_param

  • « Fonctions mysqli obsolètes et alias
  • mysqli_bind_result »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_stmt_bind_param

mysqli_bind_param

(PHP 5 < 5.4.0)

mysqli_bind_param — Alias de mysqli_stmt_bind_param()

Description

Cette fonction est un alias de la fonction mysqli_stmt_bind_param().

Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Voir aussi

  • mysqli_stmt_bind_param() - Lie des variables à une requête MySQL


Alias de mysqli_stmt_bind_result

  • « mysqli_bind_param
  • mysqli_client_encoding »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_stmt_bind_result

mysqli_bind_result

(PHP 5 < 5.4.0)

mysqli_bind_result — Alias de mysqli_stmt_bind_result()

Description

Cette fonction est un alias de la fonction mysqli_stmt_bind_result().

Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Voir aussi

  • mysqli_stmt_bind_result() - Lie des variables à un jeu de résultats


Alias de mysqli_character_set_name

  • « mysqli_bind_result
  • mysqli_connect »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_character_set_name

mysqli_client_encoding

(PHP 5 < 5.4.0)

mysqli_client_encoding — Alias de mysqli_character_set_name()

Description

Cette fonction est un alias de la fonction mysqli_character_set_name().

Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Voir aussi

  • mysqli_real_escape_string() - Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion


Alias de mysqli::__construct

  • « mysqli_client_encoding
  • mysqli::disable_reads_from_master »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli::__construct

mysqli_connect

(PHP 5, PHP 7)

mysqli_connect — Alias de mysqli::__construct()

Description

Cette fonction est un alias de : mysqli::__construct()


Désactive les lectures depuis le maître

  • « mysqli_connect
  • mysqli_disable_rpl_parse »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Désactive les lectures depuis le maître

mysqli::disable_reads_from_master

mysqli_disable_reads_from_master

(PHP 5 < 5.3.0)

mysqli::disable_reads_from_master -- mysqli_disable_reads_from_master — Désactive les lectures depuis le maître

Description

Style orienté objet

void mysqli::disable_reads_from_master ( void )

Style procédural

bool mysqli_disable_reads_from_master ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction est obsolète et a été supprimée depuis PHP 5.3.0.


Désactive l'analyseur RPL

  • « mysqli::disable_reads_from_master
  • mysqli_enable_reads_from_master »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Désactive l'analyseur RPL

mysqli_disable_rpl_parse

(PHP 5 < 5.3.0)

mysqli_disable_rpl_parse — Désactive l'analyseur RPL

Description

bool mysqli_disable_rpl_parse ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction est obsolète et a été supprimée depuis PHP 5.3.0.


Active la lecture depuis le maître

  • « mysqli_disable_rpl_parse
  • mysqli_enable_rpl_parse »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Active la lecture depuis le maître

mysqli_enable_reads_from_master

(PHP 5 < 5.3.0)

mysqli_enable_reads_from_master — Active la lecture depuis le maître

Description

bool mysqli_enable_reads_from_master ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction est obsolète et a été supprimée depuis PHP 5.3.0.


Active l'analyseur RPL

  • « mysqli_enable_reads_from_master
  • mysqli_escape_string »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Active l'analyseur RPL

mysqli_enable_rpl_parse

(PHP 5 < 5.3.0)

mysqli_enable_rpl_parse — Active l'analyseur RPL

Description

bool mysqli_enable_rpl_parse ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction est obsolète et a été supprimée depuis PHP 5.3.0.


Alias de mysqli_real_escape_string

  • « mysqli_enable_rpl_parse
  • mysqli_execute »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_real_escape_string

mysqli_escape_string

(PHP 5, PHP 7)

mysqli_escape_string — Alias de mysqli_real_escape_string()

Description

Cette fonction est un alias de : mysqli_real_escape_string().


Alias de mysqli_stmt_execute

  • « mysqli_escape_string
  • mysqli_fetch »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_stmt_execute

mysqli_execute

(PHP 5, PHP 7)

mysqli_execute — Alias de mysqli_stmt_execute()

Description

mysqli_execute() est un alias de la fonction mysqli_stmt_execute().

Notes

Note:

mysqli_execute() est fortement déconseillée et devrait être supprimée prochainement.

Voir aussi

  • mysqli_stmt_execute() - Exécute une requête préparée


Alias de mysqli_stmt_fetch

  • « mysqli_execute
  • mysqli_get_cache_stats »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_stmt_fetch

mysqli_fetch

(PHP 5 < 5.4.0)

mysqli_fetch — Alias de mysqli_stmt_fetch()

Description

mysqli_fetch() est un alias de la fonction mysqli_stmt_fetch().

Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Voir aussi

  • mysqli_stmt_fetch() - Lit des résultats depuis une requête MySQL préparée dans des variables liées


Retourne les statistiques sur le cache du client Zval

  • « mysqli_fetch
  • mysqli_get_links_stats »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Retourne les statistiques sur le cache du client Zval

mysqli_get_cache_stats

(PHP 5 >= 5.3.0 and < 5.4.0)

mysqli_get_cache_stats — Retourne les statistiques sur le cache du client Zval

Description

array mysqli_get_cache_stats ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne les statistiques sur le cache du client Zval. Disponible uniquement avec mysqlnd.

Liste de paramètres

Valeurs de retour

Retourne un tableau avec les statistiques sur le cache du client Zval en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec mysqli_get_cache_stats()

<?php
$link = mysqli_connect();
print_r(mysqli_get_cache_stats());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

Voir aussi

  • Description des statistiques


Retourne des informations sur les liens ouverts et mis en cache

  • « mysqli_get_cache_stats
  • mysqli_get_metadata »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Retourne des informations sur les liens ouverts et mis en cache

mysqli_get_links_stats

(PHP 5 >= 5.6.0, PHP 7)

mysqli_get_links_stats — Retourne des informations sur les liens ouverts et mis en cache

Description

array mysqli_get_links_stats ( void )

La fonction mysqli_get_links_stats() retourne des informations sur les liens MySQL ouverts et mis en cache.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La fonction mysqli_get_links_stats() retourne un tableau associatif contenant trois éléments, dont les clés sont les suivantes :

total

Un entier indiquant le nombre total de liens ouverts, quelques soient leurs statuts.

active_plinks

Un entier représentant le nombre de connexions persistantes actives.

cached_plinks

Un entier représentant le nombre de connexions persistantes inactives.


Alias de mysqli_stmt_result_metadata

  • « mysqli_get_links_stats
  • mysqli_master_query »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_stmt_result_metadata

mysqli_get_metadata

(PHP 5 < 5.4.0)

mysqli_get_metadata — Alias de mysqli_stmt_result_metadata()

Description

mysqli_get_metadata() est un alias de la fonction mysqli_stmt_result_metadata().

Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Voir aussi

  • mysqli_stmt_result_metadata() - Retourne les métadonnées de préparation de requête MySQL


Force l'exécution d'une requête sur le maître dans une configuration maître/esclave

  • « mysqli_get_metadata
  • mysqli_param_count »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Force l'exécution d'une requête sur le maître dans une configuration maître/esclave

mysqli_master_query

(PHP 5 < 5.3.0)

mysqli_master_query — Force l'exécution d'une requête sur le maître dans une configuration maître/esclave

Description

bool mysqli_master_query ( mysqli $link , string $query )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction est obsolète et a été supprimée depuis PHP 5.3.0.


Alias de mysqli_stmt_param_count

  • « mysqli_master_query
  • mysqli_report »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_stmt_param_count

mysqli_param_count

(PHP 5 < 5.4.0)

mysqli_param_count — Alias de mysqli_stmt_param_count()

Description

mysqli_param_count() est un alias de la fonction mysqli_stmt_param_count().

Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Voir aussi

  • mysqli_stmt_param_count() - Retourne le nombre de paramètre d'une commande SQL


Alias de mysqli_driver->report_mode

  • « mysqli_param_count
  • mysqli_rpl_parse_enabled »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_driver->report_mode

mysqli_report

(PHP 5, PHP 7)

mysqli_report — Alias de mysqli_driver->report_mode

Description

Cette fonction est un alias de : mysqli_driver->report_mode


Vérifie si l'analyseur RPL est activé

  • « mysqli_report
  • mysqli_rpl_probe »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Vérifie si l'analyseur RPL est activé

mysqli_rpl_parse_enabled

(PHP 5 < 5.3.0)

mysqli_rpl_parse_enabled — Vérifie si l'analyseur RPL est activé

Description

int mysqli_rpl_parse_enabled ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction est obsolète et a été supprimée depuis PHP 5.3.0.


Sonde le RPL

  • « mysqli_rpl_parse_enabled
  • mysqli_send_long_data »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Sonde le RPL

mysqli_rpl_probe

(PHP 5 < 5.3.0)

mysqli_rpl_probe — Sonde le RPL

Description

bool mysqli_rpl_probe ( mysqli $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction est obsolète et a été supprimée depuis PHP 5.3.0.


Alias de mysqli_stmt_send_long_data

  • « mysqli_rpl_probe
  • mysqli::set_opt »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_stmt_send_long_data

mysqli_send_long_data

(PHP 5 < 5.4.0)

mysqli_send_long_data — Alias de mysqli_stmt_send_long_data()

Description

mysqli_send_long_data() est un alias de la fonction mysqli_stmt_send_long_data().

Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Voir aussi

  • mysqli_stmt_send_long_data() - Envoie des données MySQL par paquets


Alias de mysqli_options

  • « mysqli_send_long_data
  • mysqli_slave_query »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_options

mysqli::set_opt

mysqli_set_opt

(PHP 5, PHP 7)

mysqli::set_opt -- mysqli_set_opt — Alias de mysqli_options()

Description

mysqli_set_opt() est un alias de la fonction mysqli_options().


Force l'exécution de la requête sur un serveur esclave pour une configuration maître/esclave

  • « mysqli::set_opt
  • Historique des modifications »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Force l'exécution de la requête sur un serveur esclave pour une configuration maître/esclave

mysqli_slave_query

(PHP 5 < 5.3.0)

mysqli_slave_query — Force l'exécution de la requête sur un serveur esclave pour une configuration maître/esclave

Description

bool mysqli_slave_query ( mysqli $link , string $query )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Avertissement

Cette fonction est obsolète et a été supprimée depuis PHP 5.3.0.


Historique des modifications

Les modifications suivantes ont été apportées aux classes/fonctions/méthodes de cette extension.

Version | Function | Description
5.6.16 | mysqli::real_connect | Ajout de la constante MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT pour le driver MySQL natif
5.5.0 | mysqli::commit | Ajout des paramètres flags et name.
 | mysqli::options | Les options MYSQLI_SERVER_PUBLIC_KEY et MYSQLI_SERVER_PUBLIC_KEY ont été ajoutées.
 | mysqli::rollback | Ajout des paramètres flags et name.
5.3.4 | mysqli_driver::$report_mode | Modification du mode de reporting : il est maintenant pour chaque requête, plutôt que pour chaque processus.
5.3.0 | mysqli::__construct | Ajout des connexions persistantes.
 | mysqli::options | Les options MYSQLI_OPT_INT_AND_FLOAT_NATIVE, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, MYSQLI_OPT_NET_READ_BUFFER_SIZE, et MYSQLI_OPT_SSL_VERIFY_SERVER_CERT ont été ajoutées.
 | mysqli::query | Ajout des requêtes asynchrones.
5.2.15 | mysqli_driver::$report_mode | Modification du mode de reporting : il est maintenant pour chaque requête, plutôt que pour chaque processus.


Le pilote natif MySQL

  • Introduction
  • Introduction
  • Installation
  • Configuration à l'exécution
  • Incompatibilités
  • Les connexions persistantes
  • Statistiques
  • Notes
  • Gestion de la mémoire
  • API du plugin du driver natif MySQL
    • Comparaison des plugins mysqlnd avec proxy MySQL
    • Obtenir l'API du plugin mysqlnd
    • Architecture du plugin du driver natif
    • L'API du plugin mysqlnd
    • Bien commencer la compilation d'un plugin mysqlnd


Introduction

Le driver natif MySQL est un remplacement pour la bibliothèque cliente MySQL (libmysqlclient). Le driver natif MySQL fait parti des sources officielles PHP depuis la version 5.3.0.

Les extensions de bases de données MySQL, mysqli et PDO MYSQL, communiquent avec le serveur MySQL. Dans le passé, ces actions étaient réalisées par l'extension, en utilisant les services fournis par la bibliothèque cliente MySQL. Les extensions étaient ainsi compilées avec la bibliothèque cliente MySQL afin de pouvoir utilisées son protocole client-serveur.

Avec le driver natif MySQL, il existe maintenant une alternative, et les extensions de bases de données MySQL peuvent désormais être compilées avec le driver natif MySQL plutôt qu'avec la bibliothèque cliente MySQL.

Le driver natif MySQL est écrit en C sous la forme d'une extension PHP.


Introduction

Ce que ce n'est pas

Bien que le pilote natif MySQL soit écrit comme une extension PHP, il est important de noter qu'il ne fournit pas une nouvelle API au programmeur PHP. Les API programmeur sont fournies par l'extension MySQL, mysqli et PDO MySQL. Ces extensions peuvent maintenant utiliser les services du pilote natif MySQL pour communiquer avec le serveur MySQL. Ainsi, vous ne devez pas considérer le pilote natif MySQL comme une API.

Pourquoi l'utiliser?

Utiliser le pilote natif MySQL offre bon nombre d'avantages par rapport à la bibliothèque MySQL cliente.

L'ancienne bibliothèque MySQL cliente a été écrite par MySQL AB (maintenant partie de Oracle Corporation) et a donc été publiée sous licence MySQL, ce qui a eu pour conséquence de désactiver le support de MySQL par défaut dans PHP? Vu que le pilote natif MySQL a été développé comme partie intégrante du projet PHP, il est publié sous licence PHP, ce qui résout les soucis de licence problématique dans le passé.

De plus, auparavant, vous deviez compiler les extensions de base de données MySQL par rapport à une copie de la bibliothèque MySQL cliente, ce qui signifie que vous deviez avoir MySQL d'installé sur la machine sur laquelle vous compiliez PHP à partir des sources. Ainsi, quand votre application PHP était exécutée, les extensions MySQL appelaient les fichiers de la bibliothèque MySQL cliente au démarrage, ceux-ci devant être obligatoirement installés sur le système. Avec le pilote natif MySQL, ce n'est plus le cas car il est inclus dans la distribution standard. Ainsi, vous n'aurez plus besoin d'avoir MySQL installé pour compiler PHP ou exécuter des applications PHP faisant appel à une base de données.

Du fait que le pilote natif MySQL soit écrit comme une extension PHP, il est intimement lié au coeur de PHP. Ceci implique une meilleure efficacité, notamment en ce qui concerne l'utilisation de la mémoire, car le pilote utilise l'allocation mémoire de PHP et par conséquent supporte les limites de mémoire. Utiliser le pilote natif MySQL aboutit à des performances égales sinon meilleurs qu'avec la bibliothèque cliente MySQL, car l'utilisation de la mémoire est beaucoup plus efficace. Le fait que lors de l'utilisation de la bibliothèque cliente MySQL, chaque enregistrement est stockée deux fois en mémoire alors que le client natif MySQL ne les stocké qu'une fois constitue un bon exemple de bonne gestion de la mémoire.

Note: Surveillance de l'utilisation mémoire

En raison du fait que le driver natif MySQL utilise le système de gestion mémoire de PHP, son utilisation mémoire peut être surveillé avec la fonction memory_get_usage(). Ceci n'est pas possible avec la bibliothèque libmysqlclient car elle utilise la fonction C malloc() à la place.

Fonctionnalités spéciales

Le pilote natif MySQL fournit aussi quelques fonctionnalités spéciales non disponibles avec la bibliothèque cliente MySQL, listées ci-dessous :

  • Des connexions persistantes améliorées

  • La fonction spéciale mysqli_fetch_all()

  • Des appels aux statistiques de performance :
mysqli_get_cache_stats(),
mysqli_get_client_stats(),
mysqli_get_connection_stats()

Les statistiques de performances peuvent s'avérer très utiles pour identifier des goulets d'étranglement de performances.

Le pilote natif MySQL fournit aussi des connexions persistantes lors de son utilisation avec l'extension mysqli.

Le support de SSL

Le pilote natif MySQL (MySQL Native Driver) supporte SSL depuis PHP 5.3.3.

Le support du protocole compressé

Depuis PHP 5.3.2, le pilote natif MySQL supporte le protocole client/serveur MySQL compressé. Il ne le supportait pas en PHP 5.3.0 ou 5.3.1. Les extensions telles que ext/mysql, ext/mysqli, PDO_MYSQL, configurées pour utiliser le pilote natif MySQL peuvent ainsi tirer parti de ce protocole. Notez que PDO_MYSQL ne supporte PAS la compression lorsqu'utilisé avec mysqlnd.

Support des pipes nommés

Le support des pipes nommés sous Windows est implémenté depuis PHP 5.4.0.


Installation

Historique

Historique
Version | Description
5.3.0 | Le driver natif MySQL a été ajouté, avec le support de toutes les extensions MySQL (i.e., mysql, mysqli et PDO_MYSQL). Le fait de passer à mysqlnd l'option de configuration appropriée active ce support.
5.4.0 | Le driver natif MySQL est maintenant actif par défaut pour toutes les extensions MySQL (i.e., mysql, mysqli et PDO_MYSQL). Le fait de passer mysqlnd lors de la configuration est maintenant optionnel.
5.5.0 | Le support du plugin d'authentification SHA-256 a été ajouté

Installation sous Unix

Les extensions de base de données MySQL doivent être configurées pour utiliser la bibliothèque cliente MySQL. Pour utiliser le pilote natif MySQL, PHP doit être compilé en spécifiant explicitement que les extensions de base de données MySQL doivent être compilées par rapport à lui. C'est fait grâce aux options de configuration précédant la compilation de PHP en elle-même.

Par exemple, pour compiler l'extension MySQL, mysqli et PDO MySQL en utilisant le pilote natif MYSQL, la commande suivante doit être passée :

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
[autres options]

Installation sous Windows

Dans les distributions officielle de PHP pour Windows à partir de la version 5.3, le pilote natif MySQL est activé par défaut et aucune configuration supplémentaire n'est nécessaire pour l'utiliser. Toutes les extensions de base de données MySQL l'utiliseront alors.

Support du plugin d'authentification SHA-256

Le driver natif MySQL requière le chargement de la fonctionalité OpenSSL de PHP, et l'activation de la connexion à MySQK via des comptes qui utilisent le plugin d'authentification MySQL SHA-256. Par exemple, PHP pourrait être configuré en utilisant la commande suivante :

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl
[autres options]


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration de MySQL Native Driver
Nom | Défaut | Modifiable | Historique
mysqlnd.collect_statistics | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
mysqlnd.collect_memory_statistics | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
mysqlnd.debug | "" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
mysqlnd.log_mask | 0 | PHP_INI_ALL | Disponible depuis PHP 5.3.0
mysqlnd.mempool_default_size | 16000 | PHP_INI_ALL | Disponible depuis PHP 5.3.3
mysqlnd.net_read_timeout | "31536000" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
mysqlnd.net_cmd_buffer_size | 5.3.0 - "2048", 5.3.1 - "4096" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
mysqlnd.net_read_buffer_size | "32768" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
mysqlnd.sha256_server_public_key | "" | PHP_INI_PERDIR | Disponible depuis PHP 5.5.0.
mysqlnd.fetch_data_copy | 0 | PHP_INI_ALL | Disponible depuis PHP 5.6.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqlnd.collect_statistics boolean

Active la collecte de différentes statistiques du client auxquelles vous
pouvez accéder via mysqli_get_client_stats(),
mysqli_get_connection_stats(),
mysqli_get_cache_stats() et qui sont aussi décrites
dans la section mysqlnd de la sortie de la fonction
phpinfo().

Ce paramètre active toutes les statistiques de MySQL Native Driver sauf celles relatives à la gestion de la mémoire.

mysqlnd.collect_memory_statistics boolean

Active la collecte de différentes statistiques concernant la mémoire qui peuvent être consultées via mysqli_get_client_stats(), mysqli_get_connection_stats(), mysqli_get_cache_stats() et qui sont aussi montrées dans la section mysqlnd de la sortie de la fonction phpinfo().

Ce paramètre active les statistiques de gestion de la mémoire parmi les statistiques fournies par MySQL Native Driver.

mysqlnd.debug string

Journalise les communications en provenance de toute extension utilisant mysqlnd.

Le format de cette directive est mysqlnd.debug = "option1[,parameter_option1][:option2[,parameter_option2]]".

Les options de formatage des chaines sont les suivantes:

  • A[,file] - Ajoute la trace à un fichier. S'assure que les données sont écrites après chaque écriture en fermant puis rouvrant le fichier de trace (lent). Ceci aide à s'assurer que le fichier de traces sera complet même si l'application crash.

  • a[,file] - Ajoute la trace à un fichier.

  • d - Active la sortie depuis les macros DBUG_<N> pour l'état actuel. Peut être suivi d'une liste de mots-clés qui selectionnent la sortie seulement pour les macros DBUG avec ce mot-clé (filtre). Une liste vide de mot-clé sélectionnera tout.

  • f[,functions] - Limite les actions du débogueur à une liste spécifique de fonctions. Une liste vide fera en sorte que toutes les fonctions seront utilisées.

  • F - Marque chaque ligne de débogage du nom du fichier source contenant la macro causant cette sortie.

  • i - Marque chaque ligne de débogage du PID.

  • L - Marque chaque ligne de débogage du nom du fichier source ainsi que de la ligne de la macro qui cause cette sortie.

  • n - Marque chaque ligne de débogage de la profondeur actuelle de la fonction.

  • o[,file] - Similaire à a[,file] mais écrase les fichiers plutôt que de les compléter.

  • O[,file] - Similaire à A[,file] mais écrase les fichiers plutôt que de les compléter.

  • t[,N] - Active le traçage du flux de contrôle des fonctions. La profondeur maximale est précisée par N, par défaut 200.

  • x - Active le profilage.

  • m - Trace les allocations et désallocations de mémoire.

Exemple:

d:t:x:O,/tmp/mysqlnd.trace

Note:

Cette caractéristique n'est disponible que pour les versions debug de PHP. Fonctionne sur Microsoft Windows si PHP est en version debug et construit avec Microsoft Visual C version 9 et supérieures.

mysqlnd.log_mask integer

Définit quelle requête sera historisée. Par défaut, vaut 0, ce qui signifie que les logs sont désactivés. Il convient de définir cette option en utilisant un entier, et non une constante PHP. Par exemple, une valeur de 48 (16 + 32) va historiser les requêtes lentes qui utilisent soit 'no good index' (SERVER_QUERY_NO_GOOD_INDEX_USED = 16) soit aucun index du tout (SERVER_QUERY_NO_INDEX_USED = 32). Une valeur de 2043 (1 + 2 + 8 + ... + 1024) historisera tout type de requêtes lentes.

Les types sont les suivants : SERVER_STATUS_IN_TRANS=1, SERVER_STATUS_AUTOCOMMIT=2,
SERVER_MORE_RESULTS_EXISTS=8, SERVER_QUERY_NO_GOOD_INDEX_USED=16, SERVER_QUERY_NO_INDEX_USED=32,
SERVER_STATUS_CURSOR_EXISTS=64, SERVER_STATUS_LAST_ROW_SENT=128, SERVER_STATUS_DB_DROPPED=256,
SERVER_STATUS_NO_BACKSLASH_ESCAPES=512, et SERVER_QUERY_WAS_SLOW=1024.

mysqlnd.mempool_default_size integer

Taille par défaut de la file d'attente mémoire mysqlnd, utilisée par les jeux de résultats.

mysqlnd.net_read_timeout integer

mysqlnd et la MySQL Client Library, libmysqlclient utilise des API réseau différentes. mysqlnd utilise les flux PHP, alors que libmysqlclient utilise sa propre implémentation basée sur le système. PHP, par défaut, utilise un timeout en lecture de 60s. Ceci en utilisant le paramètre de php.ini, default_socket_timeout. Ceci s'applique à tous les flux qui ne précisent pas de timeout par défaut. mysqlnd n'affecte aucune autre valeur et donc des requêtes longues peuvent se voir déconnectées après default_socket_timeout secondes avec comme résultat un message d'erreur "2006 - MySQL Server has gone away". La MySQL Client Library affecte un timeout par défaut de 365 * 24 * 3600 secondes (1 an) et attend les autres timeout, comme ceux de TCP/IP. mysqlnd utilise maintenant le même timeout très long. La valeur est configurable via le paramètre php.ini mysqlnd.net_read_timeout. mysqlnd.net_read_timeout est donc utilisé par toute extension (ext/mysql, ext/mysqli, PDO_MySQL) qui se repose sur mysqlnd. mysqlnd indique aux flux PHP d'utiliser mysqlnd.net_read_timeout. Notez qu'il peut y avoir des différences subtiles entre MYSQL_OPT_READ_TIMEOUT de la MySQL Client Library et les flux PHP, par exemple MYSQL_OPT_READ_TIMEOUT est dite fonctionnelle uniquement avec des connexions TCP/IP et, avant MySQL 5.1.2, seulement sous Windows. Les flux PHP, eux, n'ont pas cette limite. Voyez la documentation des flux en cas de doute.

mysqlnd.net_cmd_buffer_size long

mysqlnd alloue un buffer interne pour le réseau d'une taille de mysqlnd.net_cmd_buffer_size (dans php.ini) octets pour chaque connexion. Si une commande du protocole MySQL Client Server, par exemple, COM_QUERY (requête "normale"), ne rentre pas dans le buffer, mysqlnd va agrandir celui-ci à la taille requise. A chaque fois que le buffer est agrandi pour une connexion, command_buffer_too_small va être incrémenté de un.

Si mysqlnd doit agrandir le buffer au-delà de sa taille initiale de mysqlnd.net_cmd_buffer_size octets pour presque toutes les connexions, vous devriez alors augmenter cette taille par défaut afin d'éviter les ré-allocations.

La taille par défaut du buffer est de 2048 octets dans PHP 5.3.0. Dans les versions suivantes, 4096 octets. Cette valeur par défaut peut être modifiée soit par le paramètre de php.ini mysqlnd.net_cmd_buffer_size ou en utilisant mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE, int size).

Il est recommandé d'avoir une taille de buffer au moins égale à 4096 octets car mysqlnd l'utilise aussi lors de la lecture de certains paquets de communication avec MySQL. Dans PHP 5.3.0, mysqlnd n'augmentera pas le buffer si MySQL envoie un paquet plus grand que la taille du buffer. Ainsi, mysqlnd ne peut pas décoder le paquet et l'application cliente recevra une erreur. Il n'y a que deux situations dans lesquelles le paquet peut être plus grand que les 2048 octets par défaut de mysqlnd.net_cmd_buffer_size sous PHP 5.3.0: le paquet véhicule un message d'erreur très long, ou le paquet contient des méta données de colonnes provenant de COM_LIST_FIELD (mysql_list_fields(), méta données d'une colonne de type string avec une valeur par défaut très grande (>1900 octets).

Depuis PHP 5.3.2, mysqlnd n'autorise plus l'affectation de buffers inférieurs à 4096 octets.

La valeur peut aussi être changée au moyen de mysqli_options(link, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size).

mysqlnd.net_read_buffer_size long

Taille maximale du segment en lecture lors de la lecture du corps d'un paquet de commande MySQL. Le protocole serveur de MySQL encapsule toutes ses commandes dans des paquets. Les paquets consistent en un en-tête court suivi d'un corps contenant les infos. La taille du corps est encodée dans l'en-tête. mysqlnd lit le corps sous forme de segments de MIN(header.size, mysqlnd.net_read_buffer_size) octets. Si le corps d'un paquet est plus grand que mysqlnd.net_read_buffer_size octets, mysqlnd doit alors appeler read() plusieurs fois.

La valeur peut aussi être changée au moyen de mysqli_options(link, MYSQLI_OPT_NET_READ_BUFFER_SIZE, size).

mysqlnd.sha256_server_public_key string

En rapport avec le plugin d'authentification SHA-256. Fichier contenant la clé publique RSA sur serveur MySQL.

Les clients peuvent soit ommettre de définir une clé publique RSA et spécifier la clé via la directive de configuration PHP, ou bien, définir la clé au moment de l'exécution en utilisant la fonction mysqli_options(). Si aucun fichier de clé publique RSA n'est fourni par le client, alors la clé sera échangé conformément à la procédure du plugin d'authentification standard SHA-256.

mysqlnd.fetch_data_copy long

Impose la copie des jeux de résultats depuis les tampons internes vers des variables PHP au lieu d'utiliser le mécanisme par défaut de référence et de copie sur écriture. Veuillez vous référer aux, notes d'implémentation sur la gestion de mémoire pour plus de détails.

Copier les jeux de résultats au lieu d'avoir des variables PHP les référencant permet de libérér au plus tot la mémoire occupée par les variables PHP. En fonction du code de l'API cliente, les requêtes actuelles et de la taille de leurs jeux de résultats, ceci peut réduire l'empreinte mémoire de mysqlnd.

Ne pas activer avec PDO_MySQL. PDO_MySQL ne supporte pas encore ce mode.


Incompatibilités

MySQL Native Driver est dans la plupart des cas compatible avec MySQL Client Library (libmysql). Cette section détaille les incompatibilités.

  • Les valeurs de type bit sont retournées comme des chaines binaires (e.g. "\0" or "\x1F") avec libmysql mais comme des chaines décimales (e.g. "0" or "31") avec mysqlnd. Si vous voulez être compatible avec les deux librairies, retournez toujours les champs bit comme des nombres, avec des requêtes MySQL comme: SELECT bit + 0 FROM table.


Les connexions persistantes

Utilisation des connexions persistantes

Si mysqli est utilisé avec mysqlnd, lorsqu'une connexion persistante est créee, il génère un appel COM_CHANGE_USER (mysql_change_user()) sur le serveur. Ceci permet la re-authentification de la connexion.

Comme l'appel COM_CHANGE_USER est assez lourd, il est possible de le désactiver à la compilation. Réutiliser une connexion persistante génèrera alors un appel COM_PING (mysql_ping) pour tester simplement si la connexion est réutilisable.

L'utilisation de COM_CHANGE_USER peut être désactivée avec le drapeau de compilation MYSQLI_NO_CHANGE_USER_ON_PCONNECT. Par exemple:

shell# CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT" ./configure --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --enable-debug && make clean && make -j6

Ou encore:

shell# export CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT"
shell# configure --whatever-option
shell# make clean
shell# make

Notez que seul mysqli avec mysqlnd utilise COM_CHANGE_USER. Les autres extensions/pilotes utilisent COM_PING lors de l'utilisation de la connexion persistente.


Statistiques

Utilisation des donnés statistiques

Le pilote natif MySQL peut collecter des statistiques sur la communication entre le client et le serveur. Ces statistiques sont de trois sortes :

  • Les statistiques client

  • Les statistiques de connexion

  • Les statistiques de cache Zval

Si vous utilisez l'extension mysqli, ces statistiques sont disponibles via trois appels d'API :

  • mysqli_get_client_stats()

  • mysqli_get_connection_stats()

  • mysqli_get_cache_stats()

Note:

Les statistiques sont agrégées entre toutes les extensions qui utilisent le pilote natif MySQL. Par exemple, quand les extensions ext/mysql et ext/mysqli sont toutes deux compilées par rapport au pilote natif MySQL, les appels de fonctions de ext/mysql et ext/mysqli changeront tous les deux les statistiques. Il n'y a aucun moyen de savoir comment des appels à une certaine API compilée par rapport au pilote natif MySQL ont modifié une statistique donnée. Vous pouvez configurer le pilote PDO MySQL, ext/mysql et ext/mysqli pour éventuellement utiliser le pilote natif MySQL. Dans ce cas, les trois extensions modifieront les statistiques.

Accéder aux statistiques client

Pour accéder aux statistiques client, vous devez appeler mysqli_get_client_stats(). L'appel à la fonction ne requiert aucun paramètre.

Cette fonction retourne un tableau associatif contenant le nom de la statistique comme clé et la donnée statistiques comme valeur.

Les statistiques client peuvent aussi être accédées via la fonction phpinfo().

Accéder aux statistiques de connexion

Pour accéder aux statistiques client, vous devez appeler mysqli_get_connection_stats(). Cette fonction prend en paramètre la ressource de connexion à la base de données.

Cette fonction retourne un tableau associatif contenant le nom de la statistique comme clé et la donnée statistique comme valeur.

Accéder aux statistiques de cache Zval

Le pilote natif MySQL collecte aussi des statistiques sur son cache interne de Zval. Ces statistiques peuvent être accédées en utilisant mysqli_get_cache_stats().

Les statistiques de cache Zval obtenues peuvent permettre de régler avec précision un paramètre du php.ini relatif au cache Zval, aboutissant à de meilleures performances.

Buffered and Unbuffered Result Sets

Les jeux de résultats peuvent être mis ou non en tampon. Le paramétrage par défaut fait fonctionner ext/mysql et ext/mysqli avec des jeux de résultats en tampon pour des requêtes normales (non préparées). Les jeux de résultats sont stockés côté client. Après l'exécution de la requête, tous les résultats sont récupérés du serveur MySQL et mis en cache côté client. Le grand avantage de jeux de résultat mis en tampon est qu'ils autorisent le serveur à libérer les ressources allouées à un jeu de résultat, dès que ceux-ci ont été récupérés par le client.

D'autre part, des jeux de résultats non mis en tampon sont gardés plus longtemps sur le serveur. Si vous voulez réduire la consommation de mémoire côté client, mais en contre-partie augmenter la charge sur le serveur, ne mettez pas les résultats en tampon. Si vous avez par contre une charge serveur importante et que vos soupçons se portent sur les résultats non mis en tampon, vous devriez considérer de déplacer la charge côté client. Les clients s'adaptent généralement plus facilement que les serveurs. La charge ("Load") ne concerne pas seulement les tampons mémoire. En effet, le serveur a aussi besoin de garder d'autres ressources ouvertes, par exemple des threads ou des descripteurs de fichier, avant qu'un jeu de résultat ne soit libéré.

Les requêtes préparées ne mettent pas par défaut les résultats en tampon. Vous pouvez toujours utiliser mysqli_stmt_store_result() pour activer la mise en tampon des résultats.

Statistiques retournées par le pilote natif MySQL

Le tableau suivant présente une liste des statistiques retournées par les fonctions
mysqli_get_client_stats(),
mysqli_get_connection_stats() et
mysqli_get_cache_stats().

Statistiques retournées par mysqlnd : Réseau
Statistique | Contexte | Description | Notes
bytes_sent | Connexion | Nombre d'octets envoyés de PHP vers le serveur MySQL | Peut être utilisé pour vérifier l'efficacité du protocole compressé
bytes_received | Connexion | Nombres d'octets reçus du serveur MySQL | Peut être utilisé pour vérifier l'efficacité du protocole compressé
packets_sent | Connexion | Nombre de paquets envoyés de type client-serveur MySQL | Utilisé pour déboguer l'implémentation du protocole client-serveur
packets_received | Connexion | Nombre de paquets reçus de type client-serveur MySQL | Utilisé pour déboguer l'implémentation du protocole client-serveur
protocol_overhead_in | Connexion | Le surcoût en octets du protocole client-serveur MySQL pour le trafic entrant. Actuellement, seul l'en-tête de paquet (4 octets) est considéré comme du surcoût. protocol_overhead_in = packets_received * 4 | Utilisé pour déboguer l'implémentation du protocole client-serveur
protocol_overhead_out | Connexion | Le surcoût en octets du protocole client-serveur MySQL pour le trafic sortant. Actuellement, seul l'en-tête de paquet (4 octets) est considéré comme du surcoût. protocol_overhead_in = packets_received * 4 | Utilisé pour déboguer l'implémentation du protocole client-serveur
bytes_received_ok_packet | Connexion | Nombre total d'octets des paquets du protocole client-serveur MySQL reçus avec un statut OK. Les paquets reçus avec un statut OK peuvent contenir un message de statut. La longueur de ce message de statut peut varier, entrainant de ce fait une taille non-fixe de paquet OK. | Utilisé pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_ok | Connexion | Nombre total de paquets du protocole client-serveur MySQL reçus avec un statut OK. | Utilisé pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
bytes_received_eof_packet | Connexion | Taille totale en octets des paquets EOF reçus avec le protocole client-serveur MySQL. La taille de EOF peut varier selon la version du serveur. De plus, EOF peut contenir un message d'erreur. | Utilisé pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_eof | Connexion | Nombre total de paquets EOF reçus avec le protocole client-serveur MySQL. Comme avec d'autres statistiques sur les paquets, le nombre de paquets augmentera même si PHP ne reçoit pas le paquet attendu, mais par exemple un message d'erreur. | Utilisé pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
bytes_received_rset_header_packet | Connexion | Taille totale en octets des paquets d'en-tête de jeux de résultats reçus avec le protocole client-serveur MySQL. La taille des paquets varie selon le type de données transportées (LOAD LOCAL INFILE, INSERT, UPDATE, SELECT, messages d'erreur). | Utilisé pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_rset_header | Connexion | Nombre de paquets d'en-tête de jeux de résultats reçus avec le protocole client-serveur MySQL. | Utilisé pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
bytes_received_rset_field_meta_packet | Connexion | Taille totale en octets des paquets de méta-données (informations sur les champs) de jeux de résultats reçus avec le protocole client-serveur MySQL. Bien entendu, la taille varie selon les champs contenus dans le jeu de résultats. Le paquet peut aussi transporter une erreur ou un EOF dans le cas de COM_LIST_FIELDS. | Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_rset_field_meta | Connexion | Nombre de paquets de méta-données (informations sur les champs) de jeux de résultats reçus avec le protocole client-serveur MySQL. | Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
bytes_received_rset_row_packet | Connexion | Taille totale en octets des paquets de données pures de jeux de résultats reçus avec le protocole client-serveur MySQL. Le paquet peut aussi transporter une erreur ou un paquet EOF. Vous pouvez faire du rétro-engeneering sur le nombre de paquets d'erreurs ou de paquets EOF en soustrayant rows_fetched_from_server_normal et rows_fetched_from_server_ps de bytes_received_rset_row_packet. | Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_rset_row | Connexion | Nombre de paquets de données pures de jeux de résultats reçus avec le protocole client-serveur MySQL et leur taille totale en octets. | Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
bytes_received_prepare_response_packet | Connexion | Taille totale en octets des paquets "OK for Prepared Statement Initialization packets (paquets d'initialisation des commandes préparées). Le paquet peut aussi traporter une erreur. La taille du paquet dépend de la version de MySQL : 9 octets avec MySQL 4.1 et 12 octets à partir de MySQL 5.0. Il n'y a aucun moyen sûr de savoir combien d'erreurs sont survenues. Vous pouvez éventuellement deviner qu'une erreur est survenue si, par exemple, vous vous connectez toujours à MySQL 5.0 ou supérieur et que bytes_received_prepare_response_packet != packets_received_prepare_response * 12. Regardez aussi ps_prepared_never_executed et ps_prepared_once_executed. | Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_prepare_response | Connexion | Nombre de paquets "OK for Prepared Statement Initialization packets (paquets d'initialisation des commandes préparées). | Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
bytes_received_change_user_packet | Connexion | Taille totale en octets des paquets COM_CHANGE_USER reçus avec le protocole client-serveur MySQL. Le paquet peut aussi transporter une erreur ou un EOF. | Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_received_change_user | Connexion | Nombre de paquets COM_CHANGE_USER reçus avec le protocole client-serveur MySQL. | Utile seulement pour déboguer l'implémentation du protocole client-serveur. Notez bien que la taille totale en octets inclut la taille du paquet d'en-tête (4 octets, comme indiqué dans le surcoût du protocole).
packets_sent_command | Connexion | Nombre de paquets envoyés de PHP vers MySQL avec le protocole client-serveur MySQL. Il n'y a aucun moyen de savoir quelle commande spécifique a été envoyée et en quel quantité. Au mieux, vous pouvez vous en servir pour savoir si PHP a envoyé des commandes à MySQL et ainsi savoir si vous pouvez supprimer le support de MySQL dans votre binaire PHP. Il n'y a de même aucun moyen de faire du rétro-engeneering sur le nombre d'erreurs qui ont pu survenir lors de l'envoi de données à MySQL. La seule erreur recodée est command_buffer_too_small (voir ci-après). | Utile seulement pour déboguer l'implémentation du protocole client-serveur.
bytes_received_real_data_normal Connexion Nombre d'octets de charge récupérés par le client PHP depuis mysqlnd en utilisant le protocole de texte. C'est la taille des données actuellement contenues dans les jeux de résultats qui ne proviennent pas des commandes préparées et qui ont été récupérées par le client PHP. Notez que même si un jeu de résultat complet a pu être récupéré de MySQL par mysqlnd, cette statistique ne compte que les données actuellement récupérées depuis mysqlnd par le client PHP. Un exemple de code qui incrémentra cette valeur:
$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->fetch_assoc();
$res->close();

Chaque opération de récupération (fetch) incrémentera cette valeur.

Cette statistique ne sera pas incrémentée si le jeu de résultats est mis en tampon seulement sur le client, mais pas récupéré. Par exemple:

$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->close();

Cette statistique est disponible depuis PHP 5.3.4.

bytes_received_real_data_ps | Connexion | Nombre d'octets de charge récupérés par le client PHP depuis mysqlnd en utilisant le protocole de commande préparée. | C'est la taille des données actuellement contenues dans un jeu de résultats provenant d'une commande préparée et qui a été récupérée par le client PHP. La valeur ne sera pas incrémentée si le jeu de résultat n'est pas lu par le client PHP. Notez que même si un jeu de résultats complet a pu être récupéré depuis MySQL par mysqlnd, cette statistique ne compte que les données récupérées par le client PHP depuis mysqlnd. Voyez aussi bytes_received_real_data_normal. Cette statistique est disponible depuis PHP 5.3.4.

Jeu de résultats

Statistiques retournées par mysqlnd : Jeu de résultats
Statistique | Contexte | Description | Notes
result_set_queries | Connexion | Nombre de requêtes qui ont généré un jeu de résultats. Des exemples de requêtes qui génèrent un jeu de résultats : SELECT et SHOW. Cette statistique ne sera pas incrémentée si une erreur survient lors de la lecture du paquet d'en-tête du jeu de résultats. | Vous pouvez l'utiliser comme mesure indirecte du nombre de requêtes que PHP a envoyées à MySQL pour identifier, par exemple, un client qui provoque beaucoup de charge sur la base de données.
non_result_set_queries | Connexion | Nombre de requêtes qui n'ont pas généré de jeu de résultats. Des exemples de requêtes qui ne génèrent pas de jeu de résultats : INSERT, UPDATE, LOAD DATA et SHOW. Cette statistique ne sera pas incrémentée si une erreur survient lors de la lecture du paquet d'en-tête du jeu de résultats. | Vous pouvez l'utiliser comme mesure indirecte du nombre de requêtes que PHP a envoyées à MySQL pour identifier, par exemple, un client qui provoque beaucoup de charge sur la base de données.
no_index_used | Connexion | Nombre de requêtes qui ont généré un jeu de résultats mais qui n'ont pas utilisé d'index (voir aussi l'option de démarrage de mysqld : –log-queries-not-using-indexes). Si vous voulez que ces requêtes soient rapportées, vous pouvez utiliser mysqli_report(MYSQLI_REPORT_INDEX) pour que ext/mysqli jette une exception. Si vous préférez un avertissement plutôt qu'une exception, utilisez mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT).
bad_index_used | Connexion | Nombre de requêtes qui ont généré un jeu de résultats mais qui n'ont pas utilisé un bon index (voir aussi l'option de démarrage de mysqld : –log-slow-queries). | Si vous voulez que ces requêtes soient rapportées, vous pouvez utiliser mysqli_report(MYSQLI_REPORT_INDEX) pour que ext/mysqli jette une exception. Si vous préférez un avertissement plutôt qu'une exception, utilisez mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT).
slow_queries | Connexion | Les commandes SQL qui ont pris plus de long_query_time secondes à être exécutées et qui ont nécessité qu'au moins min_examined_row_limit enregistrements soient examinés. | Non reporté par mysqli_report()
buffered_sets | Connexion | Nombre de jeux de résultats retournés par des requêtes "normales" et qui ont été mis en tampon. "normale" signifie "commande non préparée" dans les notes qui suivent. | Des exemples d'appel à l'API, qui ne mettront pas les jeux de résultats en tampon côté client : mysql_query(), mysqli_query(), mysqli_store_result(), mysqli_stmt_get_result(). Mettre les jeux de résultat en tampon côté client assure que les ressources allouées côté serveur sont libérées dès que possible et rend la navigation dans le jeu de résultat plus aisée. L'inconvénient, c'est une consommation mémoire plus importante côté client pour mettre les jeux de résultats en tampon. Notez que mysqlnd (contrairement à la bibliothèque cliente MySQL) respecte la limite de mémoire de PHP pour l'allocation, car mysqlnd utilise les fonctions de gestion de mémoire internes de PHP. C'est aussi pourquoi memory_get_usage() rapporte une consommation mémoire plus importante quand on utilise mysqlnd plutôt que la bibliothèque cliente MySQL. memory_get_usage() ne mesure pas la consommation mémoire de la bibliothèque cliente MySQL car celle-ci n'utilise pas les fonctions de gestion de mémoire internes de PHP, mésurées par cette fonction!
unbuffered_sets | Connexion | Nombre de jeux de résultats non mis en tampon retournés par des requêtes normales (pas de commande préparée). | Des exemples d'appels à l'API qui ne mettent pas les jeux de résultats en tampon côté client : mysqli_use_result()
ps_buffered_sets | Connexion | Nombre de jeux de résultats mis en tampon retournés par des commandes préparées. Par défaut, les commandes préparées ne sont pas mises en tampon. | Des exemples d'appels à l'API qui ne mettent pas les jeux de résultats en tampon côté client : mysqli_stmt_store_result
ps_unbuffered_sets | Connexion | Nombre de jeux de résultats non mis en tampon retournés par des commandes préparées. | Par défaut, les commandes préparées ne sont pas mises en tampon.
flushed_normal_sets Connexion Nombre de jeux de résultats issus de requêtes normales (pas de commande préparée) avec des données non lues qui ont été évacuées implicitement. L'évacuation n'a lieu qu'avec les jeux de résultats non mis en tampon. Les jeux de résultats non mis en tampon doivent être récupérés en totalité avant qu'une nouvelle requête puisse être passée sur la connexion, sans quoi MySQL renverra une erreur. Si l'application ne récupère pas tous les enregistrements d'un jeu de résultats non mis en tampon, mysqlnd récupère implicitement tout le jeu afin de laisser place nette. Voir aussi rows_skipped_normal et rows_skipped_ps. Quelques causes possibles d'une évacuation implicite :

  • Une application cliente défectueuse

  • Le client a arrêté de lire après qu'il a trouvé ce qu'il cherchait met a fait considérer à MySQL davantage d'enregistrements que nécessaire

  • L'application cliente s'est arrêtée de façon inattendue

flushed_ps_sets Connexion Nombre de jeux de résultats issus de commandes préparées avec des données non lues qui ont été évacuées implicitement. L'évacuation n'a lieu qu'avec les jeux de résultats non mis en tampon. Les jeux de résultats non mis en tampon doivent être récupérés en totalité avant qu'une nouvelle requête puisse être passée sur la connexion, sans quoi MySQL renverra une erreur. Si l'application ne récupère pas tous les enregistrements d'un jeu de résultats non mis en tampon, mysqlnd récupère implicitement tout le jeu afin de laisser place nette. Voir aussi rows_skipped_normal et rows_skipped_ps. Quelques causes possibles d'une évacuation implicite :

  • Une application cliente défectueuse

  • Le client a arrêté de lire après qu'il a trouvé ce qu'il cherchait met a fait considérer à MySQL davantage d'enregistrements que nécessaire

  • L'application cliente s'est arrêtée de façon inattendue

ps_prepared_never_executed | Connexion | Nombre de commandes préparées mais jamais exécutées. | Les commandes préparées monopolisent des ressources serveur. Vous ne devriez pas préparer une commande si vous n'envisagez pas de l'exécuter.
ps_prepared_once_executed | Connexion | Nombre de commandes préparées exécutées une seule fois. | Un des principes des commandes préparées est que la même requête est exécutée encore et encore (avec des paramètres différents) de telle façon que des opérations d'analyse syntaxique et de préparation puissent être économisées si l'exécution de la commande est séparée en deux phases distinctes de préparation et d'exécution. L'idée est de préparer une fois et de mettre en "cache" les résultats pour que, par exemple, l'arbre d'analyse syntaxique puisse être réutilisé pour l'exécution de plusieurs commandes. Si vous exécutez une commande préparée uen seule fois, vous perdez tous le bénéfice des deux phases distinctes par rapport à des requêtes "normales" parce que la mise en cache représente du travail supplémentaire et monopolise des ressources (limitées) côté serveur. Par conséquent, les commandes préparées exécutées une seule fois peuvent provoquer des baisses de performance.
rows_fetched_from_server_normal, rows_fetched_from_server_ps | Connexion | Nombre total de jeux de résultats récupérés avec succès du serveur MySQL sans se soucier si l'application cliente les a utilisés ou pas. Certains des enregistrements peuvent ne pas avoir été récupérés par l'application cliente mais avoir été évacués de façon implicite. | Voir aussi packets_received_rset_row
rows_buffered_from_client_normal, rows_buffered_from_client_ps | Connexion | Nombre total d'enregistrements mis en tampon avec succès suite à une requête "normale" ou une commande préparée. C'est le nombre d'enregistrements qui ont été récupérés du serveur MySQL et mis en tampon par le client. Notez qu'il y a deux statistiques différentes : une sur les enregistrements ont été mis en tampon (de MySQL au tampon interne de mysqlnd) et l'autre sur les enregistrements mis en tampon qui ont été récupérés par l'application cliente (du tampon interne de mysqlnd vers l'application cliente). Si le nombre d'enregistrements mis en tampon est supérieur au nombre d'enregistrements récupérés, cela peut signifier que l'application cliente exécute des requêtes dont les enregistrements résultants sont plus grands que nécessaire, menant à des enregistrements non lus par le client. | Des exemples de requêtes qui mettent les résultats en tampon : mysqli_query(), mysqli_store_result()
rows_fetched_from_client_normal_buffered, rows_fetched_from_client_ps_buffered | Connexion | Nombre total d'enregistrements récupérés par le client à partir d'un jeu de résultat mis en tampon et créé à partir d'une requête "normale" ou d'une commande préparée.
rows_fetched_from_client_normal_unbuffered, rows_fetched_from_client_ps_unbuffered | Connexion | Nombre total d'enregistrements récupérés par le client à partir d'un jeu de résultat non mis en tampon et créé à partir d'une requête "normale" ou d'une commande préparée.
rows_fetched_from_client_ps_cursor | Connexion | Nombre total d'enregistrements récupérés par le client à partir d'un curseur créé par une commande préparée.
rows_skipped_normal, rows_skipped_ps | Connexion | Reservé pour une utilisation future (actuellement non supporté)
copy_on_write_saved, copy_on_write_performed | Processus | Avec mysqlnd, les variables retournées par l'extension pointent vers les tampons de résultats réseau internes à mysqlnd. Si vous en changez pas ces variables, les données récupérées seront gardées une seule fois en mémoire. Si vous changez les variables, mysqlnd doit faire une copie-avant-écriture (copy-on-write) pour protéger ces tampons de résultats réseau internes. Avec la bibliothèque cliente MySQL, vous gardez toujours les données récupérées en mémoire en deux exemplaires : un pour les tampons internes à la bibliothèque cliente MySQL et un pour les extensions. En théorie, mysqlnd peut vous faire économiser jusqu'à 40% de mémoire. Notez cependant que l'économie de mémoire ne peut pas être mésurée par memory_get_usage().
explicit_free_result, implicit_free_result | Connexion, Process (seulement pendant le ménage des commandes préparées) | Nombre total de jeux de résultats libérés. | La libération est toujours considérée comme explicite, sauf pour les jeux de résultats créés par des commandes d'initialisation, par exemple mysqli_options(MYSQLI_INIT_COMMAND , ...)
proto_text_fetched_null, proto_text_fetched_bit, proto_text_fetched_tinyint proto_text_fetched_short, proto_text_fetched_int24, proto_text_fetched_int proto_text_fetched_bigint, proto_text_fetched_decimal, proto_text_fetched_float proto_text_fetched_double, proto_text_fetched_date, proto_text_fetched_year proto_text_fetched_time, proto_text_fetched_datetime, proto_text_fetched_timestamp proto_text_fetched_string, proto_text_fetched_blob, proto_text_fetched_enum proto_text_fetched_set, proto_text_fetched_geometry, proto_text_fetched_other Connexion Nombre total de colonnes d'un certain type retournées à partir d'une requête normale (protocole texte MySQL). Correspondance entre l'API C / les types de méta-données MySQL et le nom des statistiques :

  • MYSQL_TYPE_NULL - proto_text_fetched_null

  • MYSQL_TYPE_BIT - proto_text_fetched_bit

  • MYSQL_TYPE_TINY - proto_text_fetched_tinyint

  • MYSQL_TYPE_SHORT - proto_text_fetched_short

  • MYSQL_TYPE_INT24 - proto_text_fetched_int24

  • MYSQL_TYPE_LONG - proto_text_fetched_int

  • MYSQL_TYPE_LONGLONG - proto_text_fetched_bigint

  • MYSQL_TYPE_DECIMAL, MYSQL_TYPE_NEWDECIMAL - proto_text_fetched_decimal

  • MYSQL_TYPE_FLOAT - proto_text_fetched_float

  • MYSQL_TYPE_DOUBLE - proto_text_fetched_double

  • MYSQL_TYPE_DATE, MYSQL_TYPE_NEWDATE - proto_text_fetched_date

  • MYSQL_TYPE_YEAR - proto_text_fetched_year

  • MYSQL_TYPE_TIME - proto_text_fetched_time

  • MYSQL_TYPE_DATETIME - proto_text_fetched_datetime

  • MYSQL_TYPE_TIMESTAMP - proto_text_fetched_timestamp

  • MYSQL_TYPE_STRING, MYSQL_TYPE_VARSTRING, MYSQL_TYPE_VARCHAR - proto_text_fetched_string

  • MYSQL_TYPE_TINY_BLOB, MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, MYSQL_TYPE_BLOB - proto_text_fetched_blob

  • MYSQL_TYPE_ENUM - proto_text_fetched_enum

  • MYSQL_TYPE_SET - proto_text_fetched_set

  • MYSQL_TYPE_GEOMETRY - proto_text_fetched_geometry

  • N'importe quel MYSQL_TYPE_* non encore listé (il ne doit y en avoir aucun) - proto_text_fetched_other

A noter que les constantes de type MYSQL_* peuvent ne pas être associées avec le même type de colonne SQL dans toutes les versions de MySQL.

proto_binary_fetched_null, proto_binary_fetched_bit, proto_binary_fetched_tinyint proto_binary_fetched_short, proto_binary_fetched_int24, proto_binary_fetched_int, proto_binary_fetched_bigint, proto_binary_fetched_decimal, proto_binary_fetched_float, proto_binary_fetched_double, proto_binary_fetched_date, proto_binary_fetched_year, proto_binary_fetched_time, proto_binary_fetched_datetime, proto_binary_fetched_timestamp, proto_binary_fetched_string, proto_binary_fetched_blob, proto_binary_fetched_enum, proto_binary_fetched_set, proto_binary_fetched_geometry, proto_binary_fetched_other | Connexion | Nombre total de colonnes d'un certain type retournées à partir d'une commande préparée (protocole binaire MySQL). | Pour la correspondance des types, regardez proto_text_* décrit ci-dessus.
Statistiques retournées par mysqlnd : Connexion
Statistique | Contexte | Description | Notes
connect_success, connect_failure | Connexion | Nombre total de tentatives de connexions réussies / échouées. | Les connexions réutilisées et tous les autres types de connexions sont incluses.
reconnect | Processus | Nombre total de tentatives de (real_)connect faites sur un descripteur de connexion déjà ouvert. | Le code $link = new mysqli(...); $link->real_connect(...) provoquera une reconnexion. Ce qui n'est pas le cas de $link = new mysqli(...); $link->connect(...) car $link->connect(...) fermera explicitement la connexion existante avant qu'une nouvelle connexion soit établie.
pconnect_success | Connexion | Nombre total de tentatives de connexions persistantes réussies. | Notez que connect_success contient la somme des tentatives de connexions persistantes et non-persistantes réussies. Ainsi, le nombre de tentatives de connexions non-persistantes réussies est connect_success - pconnect_success.
active_connections | Connexion | Nombre total de connexions persistantes et non-persistantes actives.
active_persistent_connections | Connexion | Nombre total de connexions persistantes actives. | Le nombre total de connexions non-persistantes actives est active_connections - active_persistent_connections.
explicit_close Connexion Nombre total de connexions fermées explicitement (seulement valable avec ext/mysqli). Des exemples de code qui ferment explicitement une connexion :
$link = new mysqli(...); $link->close(...)
$link = new mysqli(...); $link->connect(...)
implicit_close Connexion Nombre total de connexions fermées implicitement (seulement valable avec ext/mysqli). Des exemples de code qui ferment implicitement une connexion :

  • $link = new mysqli(...); $link->real_connect(...)

  • unset($link)

  • Connexions persistantes : le groupe de connexions qui ont été créées avec real_connect et où il peut y avoir des jeu d'options inconnues - ferme implicitement la connexion pour éviter de retourner une connexion avec des options inconnues

  • Connexions persistantes : ping/change_user échoue et ext/mysqli ferme la connexion

  • Fin de l'exécution d'un script : ferme la connexion qui ne l'a pas été par l'utilisateur

disconnect_close | Connexion | Echecs de connexions indiqués par l'appel à l'API C mysql_real_connect() pendant la tentative de connexion. | Elle est appelée disconnect_close parce que le descripteur de connexion passé lors de l'appel à l'API C sera fermé.
in_middle_of_command_close | Processus | Une connexion a été fermée en plein milieu de l'exécution d'une commande (excluant les jeux de résultats non récupérés, après avoir envoyé une requête et avant d'avoir la réponse, en envoyant des données, en transférant des données avec LOAD DATA). | A moins que vous n'utilisiez les requêtes asynchrones, ceci ne devrait arriver que si votre script s'arrête de façon inopinée et que PHP ferme la connexion pour vous.
init_command_executed_count | Connexion | Nombre total d'exécution de commandes d'initialisation, par exemple, mysqli_options(MYSQLI_INIT_COMMAND , ...). | Le nombre de connexions avec succès est init_command_executed_count - init_command_failed_count.
init_command_failed_count | Connexion | Nombre total d'exécution échouées de commandes d'initialisation.
Statistiques retournées par mysqlnd : Commande COM_*
Statistique Contexte Description Notes
com_quit, com_init_db, com_query, com_field_list, com_create_db, com_drop_db, com_refresh, com_shutdown, com_statistics, com_process_info, com_connect, com_process_kill, com_debug, com_ping, com_time, com_delayed_insert, com_change_user, com_binlog_dump, com_table_dump, com_connect_out, com_register_slave, com_stmt_prepare, com_stmt_execute, com_stmt_send_long_data, com_stmt_close, com_stmt_reset, com_stmt_set_option, com_stmt_fetch, com_daemon Connexion Nombre total de tentatives d'envoi d'une certaine commande COM_* command de PHP vers MySQL.

Les statistiques sont incrémentées après avoir vérifié la connexion et immédiatement avant d'envoyer le paquet correspondant du protocole client-serveur MySQL. Si mysqlnd échoue lors de l'envoi du paquet via la connexion, la statistique ne sera pas décrémentée. En cas d'échec, mysqlnd émet un avertissement PHP "Error while sending %s packet. PID=%d."

Exemples d'utilisation :

  • Vérifie si PHP envoie certaines commandes à MySQL, vérifie par exemple si un client envoie COM_PROCESS_KILL

  • Calcule le nombre moyen d'exécution de commandes préparées en comparant COM_EXECUTE et COM_PREPARE

  • Vérifie si PHP a envoyé des commandes SQL non préparées en vérifiant si COM_QUERY vaut zéro

  • Identifie si des scripts PHP utilisent un nombre excessif de requêtes SQL en vérifiant COM_QUERY et COM_EXECUTE

Divers

Statistiques retournées par mysqlnd : Divers
Statistique | Contexte | Description | Notes
explicit_stmt_close, implicit_stmt_close | Processus | Nombre total de fermetures de commandes préparées. | Une fermeture est toujours considérée comme explicite sauf dans le cas d'une préparation échouée.
mem_emalloc_count, mem_emalloc_ammount, mem_ecalloc_count, mem_ecalloc_ammount, mem_erealloc_count, mem_erealloc_ammount, mem_efree_count, mem_malloc_count, mem_malloc_ammount, mem_calloc_count, mem_calloc_ammount, mem_realloc_count, mem_realloc_ammount, mem_free_count | Processus | Appels à la gestion de la mémoire. | Seulement pour du développement.
command_buffer_too_small Connexion Nombre d'extension de tampon de commandes réseau lors de l'envoi des commandes de PHP vers MySQL.

mysqlnd alloue un tampon interne de commande/réseau de mysqlnd.net_cmd_buffer_size (php.ini) octets pour chaque connexion. Si une commande du protocole client-serveur MySQL, para exemple, COM_QUERY (requête normales), ne rentre pas dans le tampon, mysqlnd étendra le tampon de jusqu'à ce qui est nécessaire pour envoyer la commande. Quand le tampon est étendu pour une connexion, command_buffer_too_small sera incrémenté d'une unité.

Si mysqlnd doit étendre le tampon au délà de sa taille initiale de mysqlnd.net_cmd_buffer_size (php.ini) octets pour la plupart des connexions, vous devriez considérer l'augmentation de la taille par défaut pour éviter les you should consider to increase the default size to avoid re-allocations.

La taille par défaut du tampon est de 2048 octets en PHP 5.3.0. Dans les versions futures, ce sera 4ko ou plus par défaut. Cette valeur peut être changée soit via php.ini en ajustant le paramètre mysqlnd.net_cmd_buffer_size ou en utilisant mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE, int size).

Il est recommandé de ne pas ajuster la taille du tampon en dessous de 4096 octets car mysqlnd l'utilise aussi pour lire certains paquets de communication de MySQL. En PHP 5.3.0, mysqlnd n'étendra pas le tampon si MySQL envoie un paquet plus grand que la taille courante du tampon. Par conséquent, mysqlnd n'est pas capable de décoder le paquet et l'application cliente recevra une erreur. Il y a seulement deux situations où le paquet peut être plus grand que la valeur par défaut de 2048 octets de mysqlnd.net_cmd_buffer_size en PHP 5.3.0 : le paquet transporte un message d'erreur très long ou le paquet gère des méta-données de colonne de COM_LIST_FIELD (mysql_list_fields()) et les méta-données viennent d'une chaine de caractères avec une valeur par défaut importante (plus de 1900 octets). Aucun rapport de bogue n'existe sur le sujet - ça doit arriver très rarement.

Depuis PHP 5.3.2, mysqlnd n'autorise pas les tampons de moins de 4096 octets.

connection_reused


Notes

Cette section fournit une compilation de notes diverses sur l'utilisation du pilote natif MySQL.

  • Utiliser mysqlnd signifie utiliser les flux PHP pour la connexion sous-jascente. Avec mysqlnd, la documentation des flux PHP (Flux) devrait être consultée en ce qui concerne les notions comme les timeouts et non pas la documentation de la librairie cliente MySQL.


Gestion de la mémoire

Introduction

Le driver natif MySQL gère la mémoire d'une façon différente que la bibliothèque client MySQL. Les bibliothèques diffèrent dans la façon dont la mémoire est allouée et libérée, dans la façon dont la mémoire est allouée par morceau pendant la lecture des résultats depuis MySQL, quelles options de débogage et de développement existent, et comment les résultats lus depuis MySQL sont liés aux variables utilisateurs PHP.

Les notes suivantes sont une introduction et un résumé destinés aux utilisateurs intéressés par la compréhension du driver natif MySQL d'un point de vue du code C.

Fonctions utilisées dans la gestion mémoire

Toutes les allocations et les dé-allocations sont réalisées en utilisant les fonctions de gestion de la mémoire de PHP. Toutefois, la consommation mémoire de mysqlnd peut être surveillée en utilisant des appels APIs PHP, comme memory_get_usage(). En raison du fait que la mémoire est allouée et libérée en utilisant la gestion mémoire de PHP, les modifications peut ne pas être immédiatement visibles au niveau du système opérant. Le gestionnaire de mémoire PHP fonctionne comme un proxy qui peut avoir un peu de délai dans la libération mémoire du système. Aussi, la comparaison de l'utilisation mémoire du driver natif MySQL et de la bibliothèque cliente MySQL devient difficile. La bibliothèque cliente MySQL appelle directement le gestionnaire mémoire du système opérant, et donc, les effets peuvent être vus immédiatement au niveau du système opérant.

Toutes les limitations mémoire réalisées par PHP affectent également le driver natif MySQL. Ceci peut causer des erreurs de dépassement mémoire lors de la récupération de jeux de résultats trop importants, excédant la taille de la mémoire restante disponible pour PHP. En raison du fait que la bibliothèque cliente MySQL n'utilise pas les fonctions de gestion mémoire de PHP, elle ne prend en compte aucune limitation mémoire définie par PHP. Si vous utilisez la bibliothèque cliente MySQL, suivant le modèle de déploiement, l'empreinte mémoire du processus PHP peut s'accroitre et dépasser la limite mémoire imposée par PHP. De plus, les scripts PHP peuvent analyser des jeux de résultats plus importants, allouant ainsi plus de mémoire pour le jeu de résultats que le contrôle du moteur PHP ne l'autorise.

Les fonctions de gestion mémoire de PHP sont appelées par le drvier natif MySQL via un gestionnaire léger. Entre autres, ce gestionnaire rend le débogage facile.

Gestion des jeux de résultats

Les différents serveurs MySQL et les différents clients APIs se différencient suivant la mise en mémoire tampon ou non des jeux de résultats. Les jeux de résultats qui ne sont pas mis en mémoire tampon sont transférés ligne par ligne depuis MySQL vers le client, et le client va parcourir les résultats. Les résultats qui sont mis en mémoire tampon sont récupérés en entier par la bibliothèque cliente avant de les passer au client.

Le driver natif MySQL utilise des flux PHP pour la communication réseau avec le serveur MySQL. Les résultats envoyés par MySQL sont récupérés depuis la mémoire tampon des flux réseau PHP dansla mémoire tampon de résultats de mysqlnd. La mémoire tampon de résultats est composée de zvals. Dans une étape suivante, les résultats sont rendus disponibles au script PHP. Le transfert final depuis la mémoire tampon des résultats dans les variables PHP impacte la consommation mémoire et cela devient très visible lors de l'utilisation de jeux de résultats mis en mémoire tampon.

Par défaut, le driver natif MySQL tente de ne pas conserver en mémoire deux fois les résultats mis en mémoire tampon. Les résultats sont conservés qu'une seule fois dans la mémoire tampon interne de résultats, ainsi que dans leur zvals. Lorsque les résultats sont récupérés dans les variables PHP par le script PHP, les variables vont référencer la mémoire tampon interne de résultats. Les résultats de requêtes de base de données ne sont pas copiées et sont conservées en mémoire seulement une fois. Lorsqu'un utilisateur modifie le contenu d'une variable contenant un résultat de base de données, une opération de copie-sur-lecture doit être effectuée pour éviter le changer la mémoire tampon interne de résultat référencée. Le contenu de la mémoire tampon ne doit pas être modifié parce que l'utilisateur peut décider de lire le jeu de résultat une seconde fois. L'opération de copie-sur-lecture est implémentée en utilisant un gestionnaire de liste de référence additionnel, ainsi que l'utilisation des compteurs de référence zvals standart. L'opération de copie-sur-lecture doit également être effectuée si l'utilisateur lit un jeu de résultats dans les variables PHP et libère un jeu de résultat avant que les variables ne soient supprimées.

D'une manière générale, ce mécanisme fonctionne bien pour les scripts qui lisent un jeu de résultats une seule fois, et ne modifie pas les variables contenant les résultats. Son inconvénient majeur est la surcharge mémoire causée par le gestionnaire de référence additionnelle, qui vient principalement du fait que les variables utilisateurs contenant les résultats ne peuvent être entièrement libérées tant que le gestionnaire de référence mysqlnd n'arrête pas de les référencer. Le driver natif MySQL supprime la référence aux variables utilisateurs lorsque le jeu de résultat est libéré ou qu'une opération de copie-sur-lecture est effectuée. Un observateur peut voir la consommation mémoire totale croître tant que le jeu de résultat n'est pas libéré. Utilisez les statistiques pour vérifier si un script libère le jeu de résultats explicitement, ou si le driver le libère implicitement, faisant ainsi que la mémoire soit utilisée plus longtemps que nécessaire. Les statistiques peuvent aussi vous aider à voir les opérations de copie-sur-lecture.

Un script PHP lisant beaucoup de petites lignes d'un jeu de résultat mis en mémoire tampon en utilisant des lignes de code comme while ($row = $res->fetch_assoc()) { ... } peut optimiser la consommation mémoire en demandant une copie plutôt que des références. Malgré le fait que demander des copies signifie conserver deux fois le résultat en mémoire, cela autorise PHP à libérer la copie contenue dans $row sachant que le jeu de résultats est en train d'être parcouru et avant de libérer le jeu de résultats lui-même. Sur un serveur chargé, l'optimisation de l'utilisation mémoire peut améliorer la performance système globale bien que pour un script individuel, l'approche de la copie peut être plus lente en raison des opérations supplémentaires d'allocation et de copie mémoire.

Le mode copie peut être forcé en utilisant l'option de configuration mysqlnd.fetch_data_copy=1.

Surveillance et débogage

Il existe plusieurs façons de surveiller l'utilisation mémoire du driver natif MySQL. Si le but est d'obtenir une vue rapide haut niveau, ou de vérifier la mémoire efficiente des scripts PHP, alors vérifiez les statistiques collectées par la bibliothèque. Elles vous permettent, par exemple, de voir les requêtes SQL qui génèrent plus de résultats que d'analyses par un script PHP.

La trace de débogage dans l'historisation peut être configurée pour enregistrer les appels au gestionnaire mémoire. Ceci peut vous aider à voir quand la mémoire est allouée ou libérée. Cependant, la taille des morceaux mémoire demandés peut ne pas y être listée.

Les versions récentes du driver natif MySQL tentent d'émuler des situations de dépassement mémoire aléatoire. Ceci est seulement utile aux développeurs C de la bibliothèque, ou aux développeurs du plugin mysqlnd. Veuillez chercher dans le code source pour les options de configuration de PHP correspondant, ainsi que pour obtenir plus de détails sur ce mécanisme. Cette fonctionalité est considérée comme privée, et peut être modifiée à tout moment sans aucun avertissement.


API du plugin du driver natif MySQL

Sommaire

  • Comparaison des plugins mysqlnd avec proxy MySQL
  • Obtenir l'API du plugin mysqlnd
  • Architecture du plugin du driver natif
  • L'API du plugin mysqlnd
  • Bien commencer la compilation d'un plugin mysqlnd

L'API du plugin du driver natif MySQL est une fonctionnalité du driver natif MySQL, ou mysqlnd. Le plugin Mysqlnd opère sur la couche entre les applications PHP et le serveur MySQL. Il est comparable à un proxy MySQL. Un proxy MySQL opère sur une couche entre toutes les applications clientes MySQL, par exemple, une application PHP et un serveur MySQL. Le plugin Mysqlnd peut entreprendre des tâches typiques de proxy MySQL comme l'équilibrage de charge, ainsi que le suivi et l'optimisation des performances. En raison d'une architecture et d'une localisation différente, le plugin mysqlnd n'a pas tous les inconvénients d'un proxy MySQL. Par exemple, avec le plugin, il n'y a pas qu'un seul point d'échec, pas de serveur de proxy dédié à déployer, et pas de nouveau langage à apprendre (Lua).

Un plugin mysqlnd peut être exécuté comme une extension à mysqlnd. Un plugin peut intercepter la majorité des fonctions mysqlnd. Les fonctions mysqlnd sont appelées par l'extension PHP MySQL comme ext/mysql, ext/mysqli, et PDO_MYSQL. Comme résultat, il est possible pour un plugin mysqlnd d'intercepter tous les appels effectués par ces extensions depuis une application cliente.

Les appels aux fonctions internes mysqlnd peuvent également être interceptés ou remplacés. Il n'y a aucune restriction sur la manipulation des tables de fonctions internes mysqlnd. Il est possible de définir des actions pour faire que lorsque certaines fonctions mysqlnd sont appelées par l'extension qui utilise mysqlnd, l'appel est redirigé vers la fonction appropriée du plugin mysqlnd. La possibilité de manipuler les tables de fonctions internes mysqlnd dans ce sens permet un maximum de flexibilité.

Le plugin Mysqlnd est en faite, une extension PHP, écrit en C, qui utilise l'API du plugin mysqlnd (qui est compilé dans le driver natif MySQL, mysqlnd). Le plugin peut être à 100% transparent pour les applications PHP. Aucune modification aux applications n'est nécessaire car le plugin opère sur une couche différente. Le plugin mysqlnd peut être utilisé dans une couche en dessous de mysqlnd.

La liste suivante représente quelques applications possibles du plugin mysqlnd.

  • L'équilibrage de charge.

    • Séparation des lectures et des écritures. Un exemple de cette fonctionnalité est l'extension PECL/mysqlnd_ms (Maître/esclave). Cette extension sépare les requêtes de lecture et d'écriture pour une configuration de réplication.

    • Basculement

    • Round-Robin, le moins chargé

  • Surveillance

    • Journalisation des requêtes

    • Analyse de requêtes

    • Audite de requêtes. Un exemple de ceci est l'extension PECL/mysqlnd_sip (SQL Injection Protection). Cette extension inspecte les requêtes et exécute uniquement celles qui sont autorisées suivants des ensembles de règles.

  • Performance

    • La mise en cache. Un exemple de ceci est l'extension PECL/mysqlnd_qc (Query Cache).

    • Étranglement

    • Fragmentation. Un exemple de ceci est l'extension PECL/mysqlnd_mc (Multi Connect). Cette extension tente de séparer une requête SELECT en n parties, en utilisant des requêtes du type SELECT ... LIMIT part_1, SELECT LIMIT part_n. L'extension envoie les requêtes à des serveurs MySQL distincts et fusionne ensuite le résultat à destination du client.

PLugins du driver natif MySQL disponibles

Il y a déjà plusieurs plugins mysqlnd de disponible.

  • PECL/mysqlnd_mc -Plugin Multi Connexion.

  • PECL/mysqlnd_ms - Plugin Maître Esclave.

  • PECL/mysqlnd_qc - Plugin de mise en cache de requêtes.

  • PECL/mysqlnd_pscache - Plugin de mise en cache de gestionnaire de requêtes préparées.

  • PECL/mysqlnd_sip - Plugin permettant la protection contre les injections SQL.

  • PECL/mysqlnd_uh - Plugin de gestionnaire d'utilisateurs.


Comparaison des plugins mysqlnd avec proxy MySQL

Les plugins Mysqlnd et le proxy MySQL sont des technologies différentes utilisant différentes approches. Les deux sont des outils valides pour résoudre bon nombre de tâches classiques, comme l'équilibrage de charge, la surveillance, et l'amélioration des performances. Une importante différence est que le proxy MySQL fonctionne avec tous les clients MySQL alors que les plugins mysqlnd sont spécifiques aux applications PHP.

Comme une extension PHP, un plugin mysqlnd doit être installé sur le serveur d'applications PHP, en plus du reste de PHP. Un proxy MySQL peut soit fonctionner sur le serveur d'applications PHP, soit être installé sur une machine dédiée pour gérer plusieurs serveurs d'applications PHP.

Le déploiement d'un proxy MySQL sur un serveur d'applications a 2 avantages :

  1. Pas un seul point d'échec

  2. Facile à redimensionner (redimensionnement horizontal, redimensionnement par le client)

Un proxy MySQL (et les plugins mysqlnd) peut résoudre des problèmes facilement, qui sinon, auraient dû nécessiter des modifications aux applications existantes.

Cependant, un proxy MySQL a quelques désavantages :

  • Un proxy MySQL est un nouveau composant, une nouvelle technologie à appliquer au maître et à déployer.

  • Un proxy MySQL nécessite la connaissance du langage de script Lua.

Un proxy MySQL peut être personnalisé en utilisant les langages de programmation C et Lua. Lua est le langage préféré pour un proxy MySQL. Pour la plupart des experts PHP, Lua est un nouveau langage à apprendre. Un plugin mysqlnd peut être écrit en C. Il est également possible d'écrire un plugin en PHP en utilisant » PECL/mysqlnd_uh.

Un proxy MySQL fonctionne comme un démon - un processus en arrière-plan. Un proxy MySQL peut rappeler des décisions prises antérieurement, vu que tous les états peuvent être conservés. Cependant, un plugin mysqlnd est lié au cycle de vie d'une requête PHP. Un proxy MySQL peut également partager des résultats calculés une seule fois sur plusieurs serveurs d'applications. Un plugin mysqlnd peut donc avoir besoin de stocker des données dans un médium persistant. Un autre démon peut être utilisé dans ce but, comme par exemple, Memcache. Ce mécanisme donne un avantage au proxy MySQL.

Un proxy MySQL fonctionne au dessus de la couche physique. Avec un proxy MySQL, vous devez analyser et effectuer du "reverse engineering" du protocole client serveur MySQL. Les actions sont limitées à celles qui peuvent être effectuées par la manipulation du protocole de communication. Si la couche physique change (ce qui arrive très rarement), les scripts du proxy MySQL peut devoir être adaptés.

Les plugins Mysqlnd fonctionnent au dessus de l'API C, reflétant ainsi les APIs client libmysqlclient et Connecteur/C. Cette API C est essentiellement un wrapper du protocole Serveur Client MySQL, ou de la couche physique, vu qu'elle est appelée quelques fois. Vous pouvez intercepter tous les appels à l'API C. PHP utilise l'API C, toutefois, vous pouvez connecter tous les appels PHP, sans avoir besoin de programmer au niveau de la couche physique.

Mysqlnd implémente la couche physique. Les plugins peuvent toutefois analyser, effectuer un "reverse engineering", manipuler et toujours remplacer le protocole de communication. Cependant, ce n'est généralement pas nécessaire.

Vu que les plugins vous autorisent à créer des implémentations qui utilisent les 2 niveaux (API C et couche physique), ils ont plus de flexibilité que le proxy MySQL. Si un plugin mysqlnd est implémenté en utilisant l'API C, toutes les modifications ultérieures à la couche physique ne nécessiteront pas de modification au plugin en tant que tel.


Obtenir l'API du plugin mysqlnd

L'API du plugin mysqlnd est simplement une partie de l'extension du driver PHP Natif MySQL, ext/mysqlnd. Le développement de l'API du plugin mysqlnd commença en Décembre 2009. Il est développé comme une partie du dépôt source de PHP, et ainsi, est disponible depuis soit le dépôt public Git, soit depuis le téléchargement des sources.

La table suivante montre les versions PHP et la version correspondante mysqlnd embarquée.

Version mysqlnd embarquée suivant la version PHP
version PHP | Version du driver natif MySQL
5.3.0 | 5.0.5
5.3.1 | 5.0.5
5.3.2 | 5.0.7
5.3.3 | 5.0.7
5.3.4 | 5.0.7

Les développeurs de plugin peuvent déterminer la version de mysqlnd via la variable MYSQLND_VERSION, au format "mysqlnd 5.0.7-dev - 091210 - $Revision: 300535", ou via MYSQLND_VERSION_ID, qui est un entier comme par exemple 50007. Les développeurs peuvent calculer le numéro de version comme ceci :

Table de calcul des MYSQLND_VERSION_ID
Version (partie) | Exemple
Majeur*10000 | 5*10000 = 50000
Mineur*100 | 0*100 = 0
Patch | 7 = 7
MYSQLND_VERSION_ID | 50007

Lors du développement, les développeurs doivent se référer au numéro de version mysqlnd pour des tests de compatibilité et de version, sachant que plusieurs versions de mysqlnd peuvent survenir durant un cycle de vie de la branche de développement de PHP.


Architecture du plugin du driver natif

Cette section fournit un aperçu de l'architecture du plugin mysqlnd.

Aperçu du driver natif MySQL

Avant de développer des plugins mysqlnd, il est utile d'avoir une connaissance minimale sur l'organisation de mysqlnd. Mysqlnd est composé des modules suivants :

Graphique de l'organisation mysqlnd, par module
Modules de statistiques | mysqlnd_statistics.c
Connexion | mysqlnd.c
Jeu de résultats | mysqlnd_result.c
Données méta du jeu de résultats | mysqlnd_result_meta.c
Requête | mysqlnd_ps.c
Réseau | mysqlnd_net.c
Couche physique | mysqlnd_wireprotocol.c

Objet C orienté paradigme

Au niveau du code, mysqlnd utilise un masque C pour implémenter l'orientation de l'objet.

En C, vous utilisez une structure (struct) pour représenter un objet. Les membres de cette structure représentent les propriétés de l'objet. Les membres de la structure pointant vers des fonctions représentent les méthodes.

Contrairement aux autres langages comme C++ ou Java, il n'y a pas de règles fixes sur l'héritage dans les objets C orientés paradigme. Cependant, il y a quelques conventions qui doivent être suivies qui seront abordées ultérieurement.

Le cycle de vie PHP

Le cycle de vie de PHP comporte 2 cycles basiques :

  • Le cycle de démarrage et d'arrêt du moteur PHP

  • Le cycle d'une demande

Lorsque le moteur PHP démarre, il appelle la fonction d'initialisation du module (MINIT) de chaque extension enregistrée. Ceci permet à chaque module de définir les variables et d'allouer les ressources qui doivent exister pour la durée de vie du processus correspondant au moteur PHP. Lorsque le moteur PHP s'arrête, il appelle la fonction d'arrêt du module (MSHUTDOWN) pour chaque extension.

Pendant la durée de vie du moteur PHP, il recevra des demandes. Chaque demande constitue un autre cycle de vie. Pour chaque requête, le moteur PHP appellera la fonction d'initialisation de chaque extension. L'extension peut effectuer toutes les définitions de variables ainsi que les allocations de ressources nécessaires pour traiter la demande. Lorsque le cycle de la demande se termine, le moteur appelle la fonction d'arrêt (RSHUTDOWN) pour chaque extension, ainsi, l'extension peut lancer tout le nettoyage nécessaire.

Comment fonctionne un plugin

Un plugin mysqlnd fonctionne en interceptant les appels effectués à mysqlnd par les extensions qui utilisent mysqlnd. Ceci est possible en obtenant la table de fonction mysqlnd, en la sauvegardant, et en la remplaçant par une table de fonction personnalisé, qui appelle les fonctions du plugin.

Le code suivant montre la façon dont la table de fonction mysqlnd est remplacée :

/* un endroit pour stocker la table de fonction originale */
struct st_mysqlnd_conn_methods org_methods;

void minit_register_hooks(TSRMLS_D) {
  /* table de fonction active */
  struct st_mysqlnd_conn_methods * current_methods
    = mysqlnd_conn_get_methods();

  /* sauvegarde de la table de fonction originale */
  memcpy(&org_methods, current_methods,
    sizeof(struct st_mysqlnd_conn_methods);

  /* installation des nouvelles méthodes */
  current_methods->query = MYSQLND_METHOD(my_conn_class, query);
}

Les manipulations de la table de fonction de connexion doivent être effectuées lors de l'initialisation du module (MINIT). La table de fonction est une ressource globale partagée. Dans un environnement multi-thread, avec une compilation TSRM, la manipulation d'une ressource globale partagée lors d'un processus de demande entraînera la plupart du temps des conflits.

Note:

N'utilisez aucune logique de taille fixe lors de la manipulation de la table de fonction mysqlnd : les nouvelles méthodes peuvent être ajoutées à la fin de la table de fonction. La table de fonction peut être modifiée à tout moment par la suite.

Appel des méthodes parents

Si la table de fonction originale est sauvegardée, il est toujours possible d'appeler les entrées de la table de fonction originale - les méthodes parents.

Dans ce cas, tout comme pour Connection::stmt_init(), il est vital d'appeler la méthode parent avant toute autre activité dans la méthode dérivée.

MYSQLND_METHOD(my_conn_class, query)(MYSQLND *conn,
  const char *query, unsigned int query_len TSRMLS_DC) {

  php_printf("my_conn_class::query(query = %s)\n", query);

  query = "SELECT 'query rewritten' FROM DUAL";
  query_len = strlen(query);

  return org_methods.query(conn, query, query_len); /* retour avec appel du parent */
}

Étendre des propriétés

Un objet mysqlnd est représenté par une structure C. Il n'est pas possible d'ajouter un membre à une structure C au moment de l'exécution. Les utilisateurs d'objets mysqlnd ne peuvent pas ajouter simplement des propriétés aux objets.

Les données arbitraires (propriétés) peuvent être ajoutées aux objets mysqlnd en utilisant une fonction appropriée de la famille mysqlnd_plugin_get_plugin_<object>_data(). Lors de l'allocation d'un objet, mysqlnd réserve un espace à la fin de l'objet pour accueillir un pointeur void * vers des données arbitraires. mysqlnd réserve un espace pour un pointeur void * par plugin.

La table suivante montre comment calculer la position d'un pointeur pour un plugin spécifique :

Calcul des pointeurs pour mysqlnd
Adresse mémoire | Contenus
0 | Début de la structure C de l'objet mysqlnd
n | Fin de la structure C de l'objet mysqlnd
n + (m x sizeof(void*)) | void* vers les données de l'objet du m-ème plugin

Si vous prévoyez de faire des sous-classes des constructeurs des objets mysqlnd, ce qui est autorisé, vous devez conserver ceci en mémoire !

Le code suivant montre la façon dont on étend des propriétés :

/* toutes les données que nous voulons associer */
typedef struct my_conn_properties {
  unsigned long query_counter;
} MY_CONN_PROPERTIES;

/* id du plugin */
unsigned int my_plugin_id;

void minit_register_hooks(TSRMLS_D) {
  /* on obtient un ID unique pour le plugin */
  my_plugin_id = mysqlnd_plugin_register();
  /* snip - voir l'extension de la connexion : méthodes */
}

static MY_CONN_PROPERTIES** get_conn_properties(const MYSQLND *conn TSRMLS_DC) {
  MY_CONN_PROPERTIES** props;
  props = (MY_CONN_PROPERTIES**)mysqlnd_plugin_get_plugin_connection_data(
    conn, my_plugin_id);
  if (!props || !(*props)) {
    *props = mnd_pecalloc(1, sizeof(MY_CONN_PROPERTIES), conn->persistent);
    (*props)->query_counter = 0;
  }
  return props;
}

Le développeur du plugin est responsable de la gestion de la mémoire associée aux données du plugin.

L'utilisation de l'allocateur de mémoire mysqlnd est recommandée pour les données du plugin. Ces fonctions sont nommées en utilisant la convention suivante : mnd_*loc(). L'allocateur mysqlnd a quelques fonctionnalités bien utiles, comme la possibilité d'utiliser un allocateur de débogage dans une compilation non-débogue.

Quand et comment faire une sous-classe
 | Quand faire une sous-classe ? | Est-ce que chaque instance a sa table de fonction privée ? | Comment faire une sous-classe ?
Connexion (MYSQLND) | MINIT | Non | mysqlnd_conn_get_methods()
Jeu de résultats (MYSQLND_RES) | MINIT ou après | Oui | mysqlnd_result_get_methods() ou méthode de l'objet de manipulation de la table de fonction
Méta du jeu de résultats (MYSQLND_RES_METADATA) | MINIT | Non | mysqlnd_result_metadata_get_methods()
Requête (MYSQLND_STMT) | MINIT | Non | mysqlnd_stmt_get_methods()
Réseau (MYSQLND_NET) | MINIT ou après | Oui | mysqlnd_net_get_methods() ou méthode de l'objet de manipulation de la table de fonction
Couche physique (MYSQLND_PROTOCOL) | MINIT ou après | Oui | mysqlnd_protocol_get_methods() ou méthode de l'objet de manipulation de la table de fonction

Vous ne devez pas manipuler les tables de fonction après MINIT si ce n'est pas autorisé suivant la table ci-dessus.

Quelques classes contiennent un point vers une méthode de la table de fonction. Toutes les instances d'une telle classe partageront la même table de fonction. Pour éviter le chaos, en particulier dans les environnements threadés, ce genre de tables de fonction ne doit être manipulé que lors du MINIT.

Les autres classes utilisent une copie de la table de fonction globale partagée. Cette copie est créée en même temps que l'objet. Chaque objet utilise sa propre table de fonction. Ceci vous donne 2 options : vous pouvez manipuler la table de fonction par défaut d'un objet au moment du MINIT, et vous pouvez aussi affiner des méthodes d'un objet sans impacter les autres instances de la même classe.

L'avantage de l'approche avec une table de fonction partagée est la performance. Il n'est pas nécessaire de copier une table de fonction pour chaque objet.

Statut du constructeur
Allocation, construction, réinitialisation | Peut-être modifié ? | Appelant
Connexion (MYSQLND) | mysqlnd_init() | Non | mysqlnd_connect()
Jeu de résultats(MYSQLND_RES)

Allocation :

  • Connection::result_init()

Reset et ré-initialisation lors de :

  • Result::use_result()

  • Result::store_result

Oui, mais appel du parent !

  • Connection::list_fields()

  • Statement::get_result()

  • Statement::prepare() (Méta-données uniquement)

  • Statement::resultMetaData()

Méta du jeu de résultats (MYSQLND_RES_METADATA) | Connection::result_meta_init() | Oui, mais appel du parent ! | Result::read_result_metadata()
Statement (MYSQLND_STMT) | Connection::stmt_init() | Oui, mais appel du parent ! | Connection::stmt_init()
Réseau (MYSQLND_NET) | mysqlnd_net_init() | Non | Connection::init()
Couche physique (MYSQLND_PROTOCOL) | mysqlnd_protocol_init() | Non | Connection::init()

Il est vivement recommandé de ne pas remplacer entièrement un constructeur. Les constructeurs effectuent les allocations mémoires. Les allocations mémoires sont vitales pour l'API du plugin mysqlnd ainsi que pour la logique de l'objet mysqlnd. Si vous ne vous souciez pas des alertes et que vous insistez pour remplacer les constructeurs, vous devriez au moins appeler le constructeur parent avant de faire quoi que ce soit dans votre constructeur.

Au niveau de toutes les alertes, il peut être utile de faire des sous-classes des constructeurs. Les constructeurs sont les endroits parfaits pour modifier les tables de fonction des objets avec les tables d'objets non partagés, comme les jeux de résultats, le réseau ou encore la couche phyique.

Statut du destructeur
 | La méthode dérivée doit appeler le parent ? | Destructeur
Connexion | oui, après l'exécution de la méthode | free_contents(), end_psession()
Jeu de résultats | oui, après l'exécution de la méthode | free_result()
Méta du jeu de résultats | oui, après l'exécution de la méthode | free()
Requête | oui, après l'exécution de la méthode | dtor(), free_stmt_content()
Réseau | oui, après l'exécution de la méthode | free()
Couche physique | oui, après l'exécution de la méthode | free()

Les destructeurs sont les endroits parfaits pour libérer les propriétés, mysqlnd_plugin_get_plugin_<object>_data().

Les destructeurs listés peuvent ne pas être les équivalents aux méthodes actuelles mysqlnd libérant l'objet lui-même. Cependant, ils sont les meilleurs endroits pour vous pour libérer les données de votre plugin. Tout comme les constructeurs, vous pouvez remplacer les méthodes entières mais ce n'est pas recommandé. Si plusieurs méthodes sont listées dans la table ci-dessus, vous devez modifier toutes les méthodes listées et libérer les données de votre plugin dans la méthode appelée en premier par mysqlnd.

La méthode recommandée pour les plugins est de modifier simplement les méthodes, libérer votre mémoire et appeler l'implémentation du parent immédiatement après.

Attention

En raison d'un bogue dans les versions PHP 5.3.0 à 5.3.3, les plugins n'associent pas les données du plugin avec une connexion persistante. Ceci est dû au fait que ext/mysql et ext/mysqli ne lancent pas tous les appels à la méthode mysqlnd end_psession() et le plugin peut subir une fuite mémoire. Ce bogue est corrigé en PHP 5.3.4.


L'API du plugin mysqlnd

Voici la liste des fonctions fournies dans l'API plugin mysqlnd :

  • mysqlnd_plugin_register()

  • mysqlnd_plugin_count()

  • mysqlnd_plugin_get_plugin_connection_data()

  • mysqlnd_plugin_get_plugin_result_data()

  • mysqlnd_plugin_get_plugin_stmt_data()

  • mysqlnd_plugin_get_plugin_net_data()

  • mysqlnd_plugin_get_plugin_protocol_data()

  • mysqlnd_conn_get_methods()

  • mysqlnd_result_get_methods()

  • mysqlnd_result_meta_get_methods()

  • mysqlnd_stmt_get_methods()

  • mysqlnd_net_get_methods()

  • mysqlnd_protocol_get_methods()

Il n'y a pas de définition formelle de ce qu'est un plugin ainsi de la façon dont fonctionne un plugin.

Les composants les plus souvent trouvés dans les mécanismes de plugin sont :

  • Un gestionnaire de plugin

  • Une API du plugin

  • Les services applicatifs (ou modules)

  • Les APIs des services applicatifs (ou APIs du module)

Le concept d'un plugin mysqlnd utilise ces fonctionnalités, ainsi que d'autres joyeusetés d'architecture ouverte.

Aucune restriction

Un plugin a un accès total aux travaux internes de mysqlnd. Il n'y a aucune limite de sécurité ou de restrictions. Tout peut être écrasé pour implémenter des algorithmes utiles ou hostiles. Il est recommandé de ne déployer que des plugins depuis des sources de confiance.

Tel que discuté précédemment, les plugins peuvent utiliser librement des pointeurs. Ces pointeurs ne sont restreints en aucune manière, aussi, vous pouvez pointer vers les données d'un autre plugin. Une simple position arithmétique peut être utilisée pour lire les données d'un autre plugin.

Il est recommandé d'écrire des plugins coopératifs, et ainsi, appeler toujours la méthode parent. Les plugins devraient toujours coopérer avec mysqlnd.

Enjeux : un exemple de chaînage et de coopération
Extension | Pointeur mysqlnd.query() | Pile d'appel si on appelle le parent
ext/mysqlnd | mysqlnd.query() | mysqlnd.query
ext/mysqlnd_cache mysqlnd_cache.query()

  1. mysqlnd_cache.query()

  2. mysqlnd.query

ext/mysqlnd_monitor mysqlnd_monitor.query()

  1. mysqlnd_monitor.query()

  2. mysqlnd_cache.query()

  3. mysqlnd.query

Dans ce scénario, un plugin cache (ext/mysqlnd_cache) et un plugin de surveillance (ext/mysqlnd_monitor) sont chargés. Les 2 ont une sous-classe de Connection::query(). L'enregistrement du plugin survient lors du MINIT en utilisant la logique évoquée précédemment. PHP appelle les extensions dans un ordre alphabétique par défaut. Les plugins ne sont pas au courant les uns les autres et ne peuvent fixer de dépendances.

Par défaut, les plugins appellent l'implémentation du parent de la méthode de requête dans leur version de la méthode dérivée.

Récapitulatif de l'extension PHP

Voici un récapitulatif de ce qui survient lors de l'utilisation d'un plugin d'exemple, ext/mysqlnd_plugin, qui expose l'API C du plugin mysqlnd à PHP :

  • Toutes les applications PHP MySQL tente d'établir une connexion à l'adresse 192.168.2.29

  • L'application PHP utilisera ext/mysql, ext/mysqli ou PDO_MYSQL. Ces 3 extensions PHP MySQL utilisent mysqlnd pour établir la connexion à l'adresse 192.168.2.29.

  • Mysqlnd appelle sa méthode de connexion, qui a été sous-classé par ext/mysqlnd_plugin.

  • ext/mysqlnd_plugin appelle la méthode de l'espace utilisateur proxy::connect() enregistrée par l'utilisateur.

  • L'espace utilisateur modifie l'hôte de connexion de 192.168.2.29 à 127.0.0.1 et retourne la connexion établie par parent::connect().

  • ext/mysqlnd_plugin exécute l'équivalent de parent::connect(127.0.0.1) en appelant la méthode originale de mysqlnd pour établir une connexion.

  • ext/mysqlnd établit une connexion et redonne la main à ext/mysqlnd_plugin. ext/mysqlnd_plugin retourne également.

  • Quelque soit l'extension PHP MySQL utilisée par l'application, elle reçoit une connexion à 127.0.0.1. L'extension PHP MySQL redonne la main à l'application PHP. Le cycle est clos.


Bien commencer la compilation d'un plugin mysqlnd

Il est important de se souvenir qu'un plugin mysqlnd est lui-même une extension PHP.

Le code suivant montre la structure basique d'une fonction MINIT utilisée dans un plugin typique mysqlnd :

/* my_php_mysqlnd_plugin.c */

 static PHP_MINIT_FUNCTION(mysqlnd_plugin) {
  /* globales, entrées ini, ressources, classes */

  /* enregistrement du plugin mysqlnd */
  mysqlnd_plugin_id = mysqlnd_plugin_register();

  conn_m = mysqlnd_get_conn_methods();
  memcpy(org_conn_m, conn_m,
    sizeof(struct st_mysqlnd_conn_methods));

  conn_m->query = MYSQLND_METHOD(mysqlnd_plugin_conn, query);
  conn_m->connect = MYSQLND_METHOD(mysqlnd_plugin_conn, connect);
}

/* my_mysqlnd_plugin.c */

 enum_func_status MYSQLND_METHOD(mysqlnd_plugin_conn, query)(/* ... */) {
  /* ... */
}
enum_func_status MYSQLND_METHOD(mysqlnd_plugin_conn, connect)(/* ... */) {
  /* ... */
}

Tâche d'analyse : depuis C vers l'espace utilisateur

 class proxy extends mysqlnd_plugin_connection {
  public function connect($host, ...) { .. }
}
mysqlnd_plugin_set_conn_proxy(new proxy());

Process:

  1. PHP : l'utilisateur enregistre une fonction de rappel pour le plugin

  2. PHP : l'utilisateur appelle une méthode de l'API PHP MySQL pour se connecter à MySQL

  3. C : ext/*mysql* appelle la méthode mysqlnd

  4. C : mysqlnd se termine dans ext/mysqlnd_plugin

  5. C : ext/mysqlnd_plugin

    1. Appel de la fonction de rappel de l'espace utilisateur

    2. Ou la méthode originale mysqlnd, si l'espace utilisateur n'a pas défini de fonction de rappel

Vous devez effectuer les opérations suivantes :

  1. Écrire une classe "mysqlnd_plugin_connection" en C

  2. Accepter et enregistrer l'objet proxy via "mysqlnd_plugin_set_conn_proxy()"

  3. Appeler les méthodes de proxy de l'espace utilisateur depuis C (optimisation - zend_interfaces.h)

Les méthodes de l'objet de l'espace utilisateur peuvent soit être appelées en utilisant call_user_function(), soit vous pouvez opérer à un niveau en dessous du moteur Zend et utiliser zend_call_method().

Optimisation : appel des méthodes depuis C en utilisant zend_call_method

Le code suivant montre un prototype pour la fonction zend_call_method, issue de zend_interfaces.h.

 ZEND_API zval* zend_call_method(
  zval **object_pp, zend_class_entry *obj_ce,
  zend_function **fn_proxy, char *function_name,
  int function_name_len, zval **retval_ptr_ptr,
  int param_count, zval* arg1, zval* arg2 TSRMLS_DC
);

L'API Zend supporte 2 arguments. Vous pouvez en avoir besoin de plus, par exemple :

 enum_func_status (*func_mysqlnd_conn__connect)(
  MYSQLND *conn, const char *host,
  const char * user, const char * passwd,
  unsigned int passwd_len, const char * db,
  unsigned int db_len, unsigned int port,
  const char * socket, unsigned int mysql_flags TSRMLS_DC
);

Pour contourner ce problème, vous devrez faire une copie de zend_call_method() et ajouter une fonctionnalité pour ajouter des paramètres. Vous pouvez réaliser ceci en créant un jeu de macros MY_ZEND_CALL_METHOD_WRAPPER.

Appel de l'espace utilisateur PHP

Le code ci-dessous montre la méthode optimisée pour effectuer un appel à une fonction de l'espace utilisateur depuis C :

/* my_mysqlnd_plugin.c */

MYSQLND_METHOD(my_conn_class,connect)(
  MYSQLND *conn, const char *host /* ... */ TSRMLS_DC) {
  enum_func_status ret = FAIL;
  zval * global_user_conn_proxy = fetch_userspace_proxy();
  if (global_user_conn_proxy) {
    /* appel du proxy de l'espace utilisateur */
    ret = MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, host, /*...*/);
  } else {
    /* ou la méthode originale mysqlnd = ne rien faire, être transparent */
    ret = org_methods.connect(conn, host, user, passwd,
          passwd_len, db, db_len, port,
          socket, mysql_flags TSRMLS_CC);
  }
  return ret;
}

Appel de l'espace utilisateur: arguments simples

/* my_mysqlnd_plugin.c */

 MYSQLND_METHOD(my_conn_class,connect)(
  /* ... */, const char *host, /* ...*/) {
  /* ... */
  if (global_user_conn_proxy) {
    /* ... */
    zval* zv_host;
    MAKE_STD_ZVAL(zv_host);
    ZVAL_STRING(zv_host, host, 1);
    MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, zv_retval, zv_host /*, ...*/);
    zval_ptr_dtor(&zv_host);
    /* ... */
  }
  /* ... */
}

Appel de l'espace utilisateur : structures comme arguments

/* my_mysqlnd_plugin.c */

MYSQLND_METHOD(my_conn_class, connect)(
  MYSQLND *conn, /* ...*/) {
  /* ... */
  if (global_user_conn_proxy) {
    /* ... */
    zval* zv_conn;
    ZEND_REGISTER_RESOURCE(zv_conn, (void *)conn, le_mysqlnd_plugin_conn);
    MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, zv_retval, zv_conn, zv_host /*, ...*/);
    zval_ptr_dtor(&zv_conn);
    /* ... */
  }
  /* ... */
}

Le premier argument de toutes les méthodes mysqlnd est un objet C. Par exemple, le premier argument de la méthode connect() est un pointeur vers MYSQLND. La structure MYSQLND représente un objet de connexion mysqlnd.

Le pointeur de l'objet de connexion mysqlnd peut être comparé à un pointeur de fichier standard I/O. Tout comme un pointeur de fichier standard I/O, un objet de connexion mysqlnd doit être lié à l'espace utilisateur en utilisant une variable PHP de type ressource.

Depuis C vers l'espace utilisateur, puis, retour

 class proxy extends mysqlnd_plugin_connection {
  public function connect($conn, $host, ...) {
    /* "pre" hook */
    printf("Connexion à l'hôte = '%s'\n", $host);
    debug_print_backtrace();
    return parent::connect($conn);
  }

  public function query($conn, $query) {
    /* "post" hook */
    $ret = parent::query($conn, $query);
    printf("Requête = '%s'\n", $query);
    return $ret;
  }
}
mysqlnd_plugin_set_conn_proxy(new proxy());

Les utilisateurs PHP doivent pouvoir appeler l'implémentation du parent d'une méthode écrasée.

Comme résultat d'un sous-classement, il est possible de redéfinir uniquement les méthodes sélectionnées, et vous pouvez choisir d'avoir des actions "pre" ou "post".

Construction d'une classe : mysqlnd_plugin_connection::connect()

/*  my_mysqlnd_plugin_classes.c */

 PHP_METHOD("mysqlnd_plugin_connection", connect) {
  /* ... simplifié ! ... */
  zval* mysqlnd_rsrc;
  MYSQLND* conn;
  char* host; int host_len;
  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs",
    &mysqlnd_rsrc, &host, &host_len) == FAILURE) {
    RETURN_NULL();
  }
  ZEND_FETCH_RESOURCE(conn, MYSQLND* conn, &mysqlnd_rsrc, -1,
    "Mysqlnd Connection", le_mysqlnd_plugin_conn);
  if (PASS == org_methods.connect(conn, host, /* simplifié! */ TSRMLS_CC))
    RETVAL_TRUE;
  else
    RETVAL_FALSE;
}


Plugin de réplication Mysqlnd et de balance de charge

  • Introduction
  • Exemples et démarrage rapide
    • Configuration
    • Exécuter des requêtes
    • État de la connexion
    • Astuces SQL
    • Transactions locales
    • Transactions distribuées / XA
    • Niveau de service et consistence
    • ID de transaction globale
    • Intégration du cache
    • Failover
    • Partitionnement et fragmentation
    • MySQL Fabric
  • Concepts
    • Architecture
    • Groupe de connexions et bascule entre les connexions
    • Gestion des transactions locales
    • Gestion des erreurs
    • Les erreurs passagères
    • Gestion des incidents (Failover)
    • Répartition de charge
    • Séparation des lectures et écritures
    • Les filtres
    • Niveaux de service et consistence
    • Identifiants de transaction
    • Intégration du cache
    • Clusters supportés
    • XA/Distributed transactions
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Fichier de configuration du plugin (>=1.1.x)
  • Constantes pré-définies
  • Fonctions Mysqlnd_ms
    • mysqlnd_ms_dump_servers — Retourne une liste des serveurs actuellement configurés
    • mysqlnd_ms_fabric_select_global — Passe en serveur globale partagé pour une table donnée
    • mysqlnd_ms_fabric_select_shard — Passe en mode partagé
    • mysqlnd_ms_get_last_gtid — Retourne le dernier identifiant de transaction globale
    • mysqlnd_ms_get_last_used_connection — Retourne un tableau qui récrit la dernière connexion utilisée
    • mysqlnd_ms_get_stats — Retourne des statistiques quant à la distribution et la connexion de requêtes
    • mysqlnd_ms_match_wild — Cherche si un nom de table correspond ou non à un joker d'un masque
    • mysqlnd_ms_query_is_select — Vérifie quel serveur est sélectionné pour l'envoi de la requête
    • mysqlnd_ms_set_qos — Définit la qualité de service désirée pour le cluster
    • mysqlnd_ms_set_user_pick_server — Définit une fonction de rappel utilisateur pour la séparation lecture/écriture
    • mysqlnd_ms_xa_begin — Démarre une transaction distribuée/XA sur les serveurs MySQL particpants
    • mysqlnd_ms_xa_commit — Valide une transaction distribuée/XA sur les serveurs MySQL participants
    • mysqlnd_ms_xa_gc — Collecte les données incorrectes issues des transactions XA non terminées en raison d'erreurs sébères
    • mysqlnd_ms_xa_rollback — Annule une transaction distribuée/XA sur les serveurs MySQL
  • Change History
    • Séries 1.6 PECL/mysqlnd_ms
    • Séries 1.5 PECL/mysqlnd_ms
    • Séries 1.4 PECL/mysqlnd_ms
    • Séries 1.3 PECL/mysqlnd_ms
    • Séries 1.2 PECL/mysqlnd_ms
    • Séries 1.1 PECL/mysqlnd_ms
    • Séries 1.0 PECL/mysqlnd_ms


Introduction

Le plugin de réplication mysqlnd et de balance de charge mysqlnd (mysqlnd_ms) ajoute la possibilité d'utiliser facilement la réplication MySQL pour toutes les extensions PHP MySQL qui utilisent mysqlnd.

Depuis la version 5.3.3 de PHP, le driver natif MySQL pour PHP (mysqlnd) utilise un plugin interne C API. Les plugins C, comme le plugin de réplication et de balance de charge, peuvent étendre la fonctionnalité de mysqlnd.

Le driver MySQL natif de PHP est une bibliothèque C qui est livré avec PHP depuis la version 5.3.0. Il agit en remplacement de la bibliothèque cliente MySQL (libmysqlclient). L'utilisation de mysqlnd a plusieurs avantages : aucun téléchargement supplémentaire n'est nécessaire car elle est fournie avec PHP, elle est sous licence PHP, elle consomme moins de mémoire dans certains cas, et elle fournie de nouvelles fonctionnalités comme les requêtes asynchrones.

Les plugins mysqlnd comme mysqlnd_ms opère la plupart du temps de façon transparente d'un point de vue utilisateur. Il supporte toutes les applications PHP et toutes les extensions PHP MySQL. Il ne modifie pas les APIs existantes. Toutefois, il peut être utilisé très facilement avec les applications PHP existantes.

Fonctionnalités clés

Les fonctionnalités clés de PECL/mysqlnd_ms sont les suivantes.

  • Transparent et facile d'utilisation.

    • supporte toutes les extensions PHP MySQL.

    • Support de SSL.

    • Une API cohérente.

    • très légère (voire aucun) modification de l'application nécessaire, suivant le scénario d'utilisation.

    • Connexions paresseuses : les connexions entre le maître et les esclaves ne sont pas ouvertes avant qu'une requête SQL n'est exécutée.

    • Optionnel : utilisation automatique du maître après la première écriture dans une requête web, afin de réduire tant que possible l'impact du lag de la réplication.

  • Peut être utilisé avec n'importe quelle solution de cluster MySQL.

    • Réplication MySQL : La séparation des lectures/écritures est faîte par le plugin. Focus en premier lieu sur le plugin.

    • Cluster MySQL : La séparation des lectures/écritures peut être désactivée. Configuration de plusieurs maîtres possibles.

    • Solutions tierces : le plugin est optimisé pour la réplication MySQL mais peut être utilisé avec tout autre type de solution de cluster MySQL.

  • Stratégies de séparation de la lecture et de l'écriture

    • Détection automatique des SELECT.

    • Support des astuces SQL permettant d'écraser le comportement courant.

    • Définie par l'utilisateur.

    • Peut être désactivé, par exemple, lors de l'utilisation de clusters synchrones comme MySQL Cluster.

  • Stratégies de balance de charge

    • Round Robin : choisit un esclave différent à la façon round robin pour chaque sélection d'esclave.

    • Aléatoire : choisit de façon aléatoire un esclave pour chaque requête dirigée vers un esclave.

    • Aléatoire unitaire : choisit un esclave aléatoirement, une seule fois pour toutes les requêtes dirigées vers un esclave le temps de la requête web.

    • Définit par l'utilisateur. L'application peut enregistrer des fonctions de rappel avec mysqlnd_ms.

    • PHP 5.4.0 ou supérieur : Consistence des transactions lors de l'utilisation d'appel API pour uniquement contrôler les transactions.

    • Equilibrage de charge pondéré : les serveurs peuvent se voir assigner différentes priorités, par exemple, pour diriger plusieurs requêtes vers une machine plus performante au lieu de les diriger vers une machine moins performante ; ou bien pour préférer les machines les plus proches afin de réduire la latence.

  • ID de transaction global

    • Émulation côté client. Rends la gestion manuelle d'un serveur maître qui tombe, et la promotion d'un esclave plus simple avec les clusters asynchrones, comme par exemple avec MySQL Replication.

    • Support des identifiants de transaction globale interne de MySQL 5.6.5 ou supérieure.

    • Support de l'utilisation des identifiants de transaction pour identifier les esclaves asynchrones à jour pour la lecture lorsque la consistence de la session est requis. Veillez à prendre connaissance des restrictions mentionnées dans ce manuel.

    • Etranglement : optionnellement, le plugin peut attendre qu'un esclave devienne "synchrone" avant de continuer.

  • Niveaux de service et de consistences

    • Les applications peuvent éventuellement demandées de forts niveaux de consistence pour les services et les session pour les connexions. Les noeuds du cluster appropriés seront recherchés automatiquement.

    • L'accès à la consistente éventuelle d'un esclave de réplication MySQL peut être remplacé par un accès transparent au cache local rapide, et ce, afin de réduite la charge du serveur.

  • Partitionnement et fragmentation

    • Les serveurs d'un cluster de réplication peuvent être organisés en groupes. Les astuces SQL peuvent être utilisées manuellement pour diriger les requêtes vers un groupe spécifique. Le groupage peut être utilisé pour partitionner les données, ou pour résoudre les problèmes des hotspots avec des mises à jour.

    • Les filtres de réplication MySQL sont supportés via la table de filtrage.

  • MySQL Fabric

    • Un support expérimental de MySQL Fabric est inclus.

Limitations

Le mécanisme interne de séparation lecture/écriture est très basique. Chaque requête qui commence par SELECT est considérée comme une requête en lecture à envoyer à un serveur esclave MySQL. Toutes les autres requêtes (y compris les requêtes de type SHOW) sont considérées comme des requêtes en écriture à envoyer vers le serveur maître MySQL. Le comportement interne peut être écraser en utilisant les astuces SQL ou une fonction de rappel définie par l'utilisateur.

La séparation lecture/écriture ne prend pas en considération les requêtes multiples. Elles sont considérées comme une seule et unique requête. La décision de l'endroit où doit être exécutée la requête sera prise suivant le début de la chaîne de requête. Par exemple, si mysqli_multi_query() est utilisé pour exécuter une requête multiple comme SELECT id FROM test ; INSERT INTO test(id) VALUES (1), la requête sera redirigée vers un serveur esclave car elle commence par SELECT. La requête INSERT, qui fait également partie de la requête multiple, ne sera pas redirigée vers le serveur maître.

Note:

Les applications doivent tenir compte des conséquences des commutations de connexion effectuées pour la balance de charge. Veuillez vous rapporter à la documentation sur la file de connexion et la commutation, la gestion des transactions, la bascule, la balance de charge et la séparation lecture/écriture avec attention.

A propos du nom

Le raccourci mysqlnd_ms provient de mysqlnd master slave plugin. Le nom a été choisi pour une démonstration rapide du concept. Au début, les développeurs n'avaient pas prévus de continuer à utiliser le code de base.


Exemples et démarrage rapide

Sommaire

  • Configuration
  • Exécuter des requêtes
  • État de la connexion
  • Astuces SQL
  • Transactions locales
  • Transactions distribuées / XA
  • Niveau de service et consistence
  • ID de transaction globale
  • Intégration du cache
  • Failover
  • Partitionnement et fragmentation
  • MySQL Fabric

Le plugin d'équilibrage de charge mysqlnd est simple d'utilisation. Le guide de démarrage rapide va présenter des cas d'utilisation classiques et donner des exemples pratiques.

Il est fortement recommandé de lire le manuel de référence en plus du guide de démarrage rapide. Le guide évite de parler des limites et des aspects théoriques. Avant d'utiliser le plugin dans des cas critiques, veillez à bien lire les autres sections.

Le but ici est d'expliquer l'utilisation de mysqlnd_ms avec un cluster MySQL asynchrone, aussi appelé réplication MySQL. En règle général, un cluster asynchrone est plus complexe qu'un cluster synchrone, ainsi, les utilisateurs de MySQL Cluster par exemple, trouveront ici plus d'informations que nécessaire.


Configuration

Le plugin est une extension PHP. Veuillez lire les instructions d'installation pour installer l'extension » PECL/mysqlnd_ms.

Configurez une extension PHP pour MySQL (mysqli, PDO_MYSQL, mysql) au choix pour profiter du support de mysqlnd. PECL/mysqlnd_ms est un plugin pour mysqlnd. Pour l'utiliser avec une extension PHP pour MySQL, celle-ci devra faire usage de mysqlnd.

Ensuite, chargez l'extension dans PHP et activez le plugin en utilisant la directive de configuration mysqlnd_ms.enable.

Exemple #1 Activer le plugin (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini

Le plugin utilise son propre fichier de configuration. Utilisez la directive mysqlnd_ms.config_file pour indiquer le chemin complet vers le fichier de configuration du plugin. Ce fichier doit être accessible en lecture à PHP (e.g. l'utilisateur exécutant le serveur web). Veuillez noter que la directive de configuration mysqlnd_ms.config_file annule et remplace la directive mysqlnd_ms.ini_file depuis la version 1.4.0. C'est une erreur courante que d'utiliser l'ancienne, alors qu'elle n'est plus disponible comme directive de configuration.

Créez un fichier de configuration pour le plugin. Indiquez son chemin complet dans mysqlnd_ms.config_file.

Les fichiers de configuration sont décrits en JSON. Il existe dedans une ou plusieurs sections. Chaque section a un nom, par exemple, myapp. Chaque section comporte ses directives.

Une section doit au minimum indiquer le serveur maitre de réplication MySQL et une liste d'esclaves. Le plugin ne supporte qu'un seul maitre par section. Le multi-maitre n'est pas encore pleinement supporté. Utilisez la directive master pour indiquer l'hote et le port ou le socket du serveur MySQL maitre. Les escalves MySQL sont indiqués via la directive slave.

Exemple #2 Configuration minimale du plugin (mysqlnd_ms_plugin.ini)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": [

        ]
    }
}

Une liste d'esclaves MySQL est obligatoire, même si celle-ci est vide. Il est recommandé de toujours posséder au moins un esclave.

Les listes de serveurs peuvent utiliser les syntaxes anonyme ou non-anonyme. Les listes non-anonymes incluent un alias pour le nom du serveur, comme master_0 pour un maitre. Le guide de démarrage rapide utilise la syntaxe non-anonyme.

Exemple #3 Configuration minimale recommandée pour le plugin (mysqlnd_ms_plugin.ini)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

S'il existe au moins deux serveurs déclarés en configuration, le plugin peut commencer à équilibrer la charge entre les connexions. La bascule entre les connexions n'est pas tout le temps transparente et peut générer des problèmes. Voyez les références sur les pools de connexions et les bascules, la gestion des transactions, la reprise sur incident l'équilibre de la charge et la découpe des lectures-écritures pour les détails. Vous pouvez désormais continuer de lire ce guide de démarrage. Les astuces et problèmes éventuels du plugin vont être détaillées par la suite.

Il est de la responsabilité de l'application de gérer les éventuels problèmes dûs à la bascule entre les connexions. En configurant au moins un maitre et un esclave, vous vous assurez que le plugin basculera les connexions, et vous détecterez les problèmes plus tôt.

Les serveurs maitre et esclave que vous configurez peuvent être la même machine. Cela peut aider à détecter les erreurs dûes à la bascule entre les connexions, mais pas les erreurs dûes à la latence de la réplication.

Exemple #4 Utiliser un seul serveur comme maitre et esclave (test seulement!)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        }
    }
}

Le plugin tente de vous notifier des configurations invalides. Depuis la version 1.5.0, il va émettre une alerte lors du démarrage de PHP si le fichier de configuration ne peut être lu, s'il est vide, ou si l'analyse JSON échoue. Suivant votre configuration de PHP, ces erreurs peuvent apparaître seulement dans des fichiers de log. Une autre validation est effectuée lorsqu'une connexion est établie et que le fichier de configuration est analysé pour y rechercher des sections valides. Le fait de définir la directive mysqlnd_ms.force_config_usage peut vous aider à déboguer une configuration erronée. Voir aussi les notes relatives au débogage du fichier de configuration.


Exécuter des requêtes

Le plugin peut être utilisé avec n'importe quelle extension PHP pour MySQL (mysqli, mysql et PDO_MYSQL) compilée avec le support mysqlnd. PECL/mysqlnd_ms se branche sur la bibliothèque mysqlnd. Ceci ne change pas les API des extensions de PHP pour MySQL.

Dès lors qu'une connexion à MySQL est ouverte, le plugin compare l'hôte aux sections déclarées dans le fichier de configuration. Par exemple une section myapp sera chargée si une connexion MySQL à l'hôte myapp est effectuée.

Exemple #1 Fichier de configuration du plugin (mysqlnd_ms_plugin.ini)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Exemple #2 Ouvrir une connexion sujette à équilibrage

<?php
/* La section "myapp" du fichier de configuration du plugin sera chargée */
$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");
?>

Les connexions ouvertes dans l'exemple ci-dessus seront équilibrées en charge. Le plugin enverra les requêtes en lecture au serveur ayant l'IP 192.168.2.27 sur le port3306. Toutes les autres requêtes seront dirigées vers l'hôte maitre à localhost sur son socket /tmp/mysql.sock. Le plugin utilisera le nom username et le mot de passe password pour se connecter à tout hôte déclaré dans la section myapp. Une fois connecté, le plugin va sélectionner database comme nom de base de données.

Les nom d'utilisateur, mot de passe et nom de base sont issus des appels à l'API pour la connexion et sont utilisés pour tous les serveurs. En d'autres termes, vous devez utiliser les mêmes nom d'utilisateur et mot de passe pour tous les serveurs listés dans une section de configuration. Ce n'est pas une limite globale. Depuis PECL/mysqlnd_ms 1.1.0, il est possible d'utiliser un nom d'utilisateur et un mot de passe pour chaque serveur listé dans le fichier de configuration.

Le plugin ne change pas l'API pour les requêtes en cours. la découpe des lectures-écritures fonctionne par défaut. L'exemple suivant suppose qu'il y a peu de latence entre le maitre et l'esclave.

Exemple #3 Exécuter des requêtes

<?php
/* Equilibré selon la section "myapp" du fichier de configuration du plugin */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno()) {
    /* Evidemment, votre propre gestion des erreurs serait meilleure... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Requêtes lancées sur le maitre */
if (!$mysqli->query("DROP TABLE IF EXISTS test")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
if (!$mysqli->query("CREATE TABLE test(id INT)")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
if (!$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* lecture seule: requêtes lancées sur un esclave */
if (!($res = $mysqli->query("SELECT id FROM test")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
    $row = $res->fetch_assoc();
    $res->close();
    printf("Slave returns id = '%s'\n", $row['id']);
}
$mysqli->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Slave returns id = '1'


État de la connexion

Le plugin change la sémantique d'une connexion MySQL pour PHP. Une connexion n'est plus liée à un serveur MySQL unique, mais à un pool de connexions. Le pool est représenté par au moins une connexion maitre et zéro ou plusieurs connexions esclaves.

Chaque connexion dans le pool possède son propre état.Par exemple, les variables SQL utilisateurs, les tables temporaires et les transactions font partie de l'état. Voyez la liste complète dans pools de connexions et bascule. Si le plugin décide de basculer de connexion pour l'équilibre de la charge, l'application pourrait se retrouver avec des connexions d'états différents. Les applications doivent faire attention à ce point.

Exemple #1 Config du plugin avec un maitre et un esclave

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Exemple #2 Problème possible : État de la connexion et variables SQL utilisateurs

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Evidemment, votre propre gestion des erreurs serait meilleure... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Connexion 1, la connexion a utilisé des variables SQL, pas de SELECT, donc maitre utilisé */
if (!$mysqli->query("SET @myrole='master'")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connexion 2, sur un esclave car de type SELECT */
if (!($res = $mysqli->query("SELECT @myrole AS _role"))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
    $row = $res->fetch_assoc();
    $res->close();
    printf("@myrole = '%s'\n", $row['_role']);
}
$mysqli->close();
?>

L'exemple ci-dessus va afficher :

@myrole = ''

L'exemple ouvre une conneXion équilibrée et exécute deux requêtes. La première SET @myrole='master' n'est pas de type SELECT, elle est donc exécutée sur une connexion à un maitre (ici il n'y en a qu'un seul). La requête change une variable SQL qui est donc liée à la connexion. L'état de la connexion au maitre vient donc de changer.

La requête suivante, SELECT @myrole AS _role est lancée sur un esclave car elle est de type lecture seule (select). La connexion à l'esclave ne possède elle, aucune variable SQL affectée, son état est donc différent de celui de la connexion au maitre. Le script affiche donc en réponse @myrole = ''.

Il est de la responsabilité du développeur de l'application de prendre garde aux états des connexions balancées. Le plugin ne surveille pas toutes les activités des connexions, ceci serait beaucoup trop couteux en temps CPU.

Ces problèmes peuvent être contournés grâce aux astuces SQL.


Astuces SQL

Les astuces SQL peuvent être utilisées pour forcer le plugin à choisir un serveur particulier dans le pool. Ceci peut aider à palier aux problèmes de bascule entre les connexions oude changement d'état des connexions.

Les astuces SQL sont des commentaires de la syntaxe SQL. Comme ils sont supposés être ignorés, ils n'interfèrent pas avec les serveurs MySQL, le proxy MySQL ou même un pare-feu.

Trois astuces SQL sont supportées par le plugin : MYSQLND_MS_MASTER_SWITCH indique au plugin d'exécuter une requête sur le maitre, MYSQLND_MS_SLAVE_SWITCH force l'utilisation de l'esclave et MYSQLND_MS_LAST_USED_SWITCH exécutera la requête sur le même serveur que celui utilisé pour exécuter la requête précédente.

Le plugin scanne le début de la requête pour rechercher une astuce SQL en commentaires. Les astuces SQL ne doivent être écrites qu'au début d'une requête pour être reconnues.

Exemple #1 Configuration du plugin avec un esclave et un maitre

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Exemple #2 Astuces SQL pour éviter les bascules de connexion

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno()) {
    /* Evidemment, votre propre gestion des erreurs serait meilleure... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Connexion 1, la connexion a utilisé des variables SQL, pas de SELECT, donc maitre utilisé */
if (!$mysqli->query("SET @myrole='master'")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connexion 1, exécutée sur le maitre à cause de l'astuce SQL présente */
if (!($res = $mysqli->query(sprintf("/*%s*/SELECT @myrole AS _role", MYSQLND_MS_LAST_USED_SWITCH)))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
    $row = $res->fetch_assoc();
    $res->close();
    printf("@myrole = '%s'\n", $row['_role']);
}
$mysqli->close();
?>

L'exemple ci-dessus va afficher :

@myrole = 'master'

Dans l'exemple ci-dessus, MYSQLND_MS_LAST_USED_SWITCH est utilisée pour éviter la bascule du maitre vers un esclave lors de l'exécution de la requête SELECT.

Les astuces SQL peuvent aussi être utilisée pour lancer une requête SELECT sur le maitre. Par exemple, lorsque les esclaves sont derrière le maitre et que vous voulez selectionner des données fraiches.

En version 1.2.0 le concept d'un niveau de service a été ajouté pour faire face aux cas où les données courantes sont demandées. Utiliser un niveau de service requiert moins d'attention et les astuce SQL ne sont plus obligatoires. Voyez les sections plus bas pour plus d'informations.

Exemple #3 Latence de réplication

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Evidemment, votre propre gestion des erreurs serait meilleure... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Force l'utilisation du maitre, le maitre a toujours des données fraiches */
if (!$mysqli->query(sprintf("/*%s*/SELECT critical_data FROM important_table", MYSQLND_MS_MASTER_SWITCH))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
?>

Autre exemple concrêt : créer des tables sur un esclave. Si aucune astuce SQL n'est fournie, le plugin va envoyer les CREATE et INSERT vers le maitre. L'astuce MYSQLND_MS_SLAVE_SWITCH peut alors être utilisée pour forcer l'utilisation d'un esclave.

Exemple #4 Création de table sur un esclave

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Evidemment, votre propre gestion des erreurs serait meilleure... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Force l'utilisation d'un esclave */
if (!$mysqli->query(sprintf("/*%s*/CREATE TABLE slave_reporting(id INT)", MYSQLND_MS_SLAVE_SWITCH))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
/* Continue en utilisant cette connexion à l'esclave */
if (!$mysqli->query(sprintf("/*%s*/INSERT INTO slave_reporting(id) VALUES (1), (2), (3)", MYSQLND_MS_LAST_USED_SWITCH))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
/* N'utilisez pas MYSQLND_MS_SLAVE_SWITCH qui autoriserait la bascule vers un autre esclave ! */
if ($res = $mysqli->query(sprintf("/*%s*/SELECT COUNT(*) AS _num FROM slave_reporting", MYSQLND_MS_LAST_USED_SWITCH))) {
    $row = $res->fetch_assoc();
    $res->close();
    printf("There are %d rows in the table 'slave_reporting'", $row['_num']);
} else {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
$mysqli->close();
?>

L'astuce SQL MYSQLND_MS_LAST_USED interdit la bascule de connexion et force l'utilisation de la connexion de la requête précédente.


Transactions locales

La version actuelle du plugin ne gère pas les transactions de façon sûre par défaut, car il n'est pas sûre d'exécuter des transactions dans tous les cas. Les transactions SQL sont des opérations atomiques exécutées sur un seul et même serveur. Le plugin ne sait pas toujours quand l'opération atomique commence et quand elle prend fin. Ainsi, il peut décider de basculer de connexion au milieu d'une transaction.

Aucun type de balance de charge MySQL peut détecter les limites d'une transaction sans avoir d'astuce au sein de l'application.

Vous devez utiliser des astuces SQL pour éviter un tel comportement, ou activer la surveillance des appels de transaction à l'API. Dans ce cas, vous devez utiliser des appels à l'API pour contrôler les transactions, voyez ci-après.

Exemple #1 Configuration du plugin avec un esclave et un maitre

[myapp]
{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Exemple #2 Utilisation des astuces SQL pour les transactions

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Evidemment, votre propre gestion des erreurs serait meilleure... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Pas un SELECT, utilisera le maitre */
if (!$mysqli->query("START TRANSACTION")) {
    /* Evidemment, votre propre gestion des erreurs serait meilleure */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Empêche le changement de connexion! */
if (!$mysqli->query(sprintf("/*%s*/INSERT INTO test(id) VALUES (1)", MYSQLND_MS_LAST_USED_SWITCH)))) {
    /* Utilisez un ROLLBACK dans votre code, pas juste un die() */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if ($res = $mysqli->query(sprintf("/*%s*/SELECT COUNT(*) AS _num FROM test", MYSQLND_MS_LAST_USED_SWITCH)))) {
    $row = $res->fetch_assoc();
    $res->close();
    if ($row['_num'] > 1000) {
        if (!$mysqli->query(sprintf("/*%s*/INSERT INTO events(task) VALUES ('cleanup')", MYSQLND_MS_LAST_USED_SWITCH))) {
            die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
        }
    }
} else {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->query(sprintf("/*%s*/UPDATE log SET last_update = NOW()", MYSQLND_MS_LAST_USED_SWITCH)))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->query(sprintf("/*%s*/COMMIT", MYSQLND_MS_LAST_USED_SWITCH)))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

$mysqli->close();
?>

Depuis PHP 5.4.0 la bibliothèque mysqlnd permet au plugin de surveiller le statut de l'autocommit, si celui-ci est utilisé via des appels à l'API plutot que via une requête du type SET AUTOCOMMIT=0. Ceci rend le plugin sensible et réactif aux transactions. Dans ce cas, vous n'avez pas besoin d'utiliser d'astuces SQL.

Si vous utilisez PHP 5.4.0, les appels de l'API pour gérer l'autocommit et le paramètre trx_stickiness=master permettent au plugin de désactiver l'équilibrage de charge et la bascule entre les connexions si autocommit est désactivé, et de diriger les requêtes vers le maitre. Ceci évite la bascule de connexion au milieu d'une transaction. Une fois que autocommit est réactivé, le plugin reprend l'équilibrage de charge.

La détecttion des limites d'une transaction en se basant que l'API a été améliorée avec PHP 5.5.0 et PECL/mysqlnd_ms 1.5.0 pour couvrir non seulement les appels à mysqli_autocommit() mais aussi à mysqli_begin(), mysqli_commit() et mysqli_rollback().

Exemple #3 Le paramètre trx_stickiness

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "trx_stickiness": "master"
    }
}

Exemple #4 Gestion propre des transactions

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Evidemment, votre propre gestion des erreurs serait meilleure... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Désactive autocommit, le plugin utilisera le maitre pour toutes les requêtes */
$mysqli->autocommit(FALSE);

if (!$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    /* Utilisez un ROLLBACK dans votre code, pas juste un die() */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if ($res = $mysqli->query("SELECT COUNT(*) AS _num FROM test")) {
    $row = $res->fetch_assoc();
    $res->close();
    if ($row['_num'] > 1000) {
        if (!$mysqli->query("INSERT INTO events(task) VALUES ('cleanup')")) {
            die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
        }
    }
} else {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->query("UPDATE log SET last_update = NOW()")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->commit()) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Le plugin sait que la trasaction est terminée, il reprend l'équilibrage de charge */
$mysqli->autocommit(TRUE);
$mysqli->close();
?>

Note: Versions requises

La directive de configuration du plugin trx_stickiness=master requiert PHP 5.4.0 ou plus récent.

Veuillez également prendre en compte les restrictions abordées dans la section sur les concepts de gestion des transactions.


Transactions distribuées / XA

Note: Requis pour la version

Les fonctions relatives à XA ont été introduites en PECL mysqlnd_ms version 1.6.0-alpha.

Note: Béta-testeur

Cette fonctionnalité est actuellement en cours de développement. Il peut y avoir des bogues ou des limitations dans les fonctionnalités. Ne pas utiliser en environnement de production, malgré tout, les premiers tests indiquent une qualité raisonnable.

Veuillez contacter le groupe de développement si vous êtes intéressé par cette fonctionnalité. Nous sommes à la recherche de retour de véritables environnements pour compléter cette fonctionnalité.

Les transactions XA sont des méthodes standardisées pour l'exécution de transactions via plusieurs ressources. Ces ressources peuvent êre des bases de données ou tout autre système transactionnel. Le serveur MySQL supporte les requêtes SQL XA qui permettent aux utilisateurs de mener à bien une transaction distribuée SQL qui touchent plusieurs serveurs de base de données ou tout autre système supportant les requêtes SQL. Dans un tel cas, il en est de la responsabilité de l'utilisateur de coordonner les serveurs participants.

PECL/mysqlnd_ms peut agir comme un coordinateur de transaction pour une transaction global (distribuée, XA) menée sur des serveurs MySQL seulement. Comme coordinateur de transaction, le plugin surveille tous les serveurs participants à la transaction globale, et envoie les requêtes SQL appropriées en toute transparence aux participants. Les transactions globales sont contrôlées avec mysqlnd_ms_xa_begin(), mysqlnd_ms_xa_commit() et mysqlnd_ms_xa_rollback(). Les détails SQL sont cachées de l'application ainsi que la nécessité de suivre et coordonner les participants.

Exemple #1 Masque général pour les transactions XA

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Bien évidemment, votre gestionnaire d'erreurs est bien meilleur... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Démarre une transaction globale */
$gtrid_id = "12345";
if (!mysqlnd_ms_xa_begin($mysqli, $gtrid_id)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Exécute les requêtes comme d'habitude : XA BEGIN sera injecté lors de l'exécution de la requête */
if (!$mysqli->query("INSERT INTO orders(order_id, item) VALUES (1, 'christmas tree, 1.8m')")) {
    /* Soit l'INSERT échoue, soit l'injection de XA BEGIN échoue */
    if ('XA' == substr($mysqli->sqlstate, 0, 2)) {
        printf("Global transaction/XA related failure, [%d] %s\n", $mysqli->errno, $mysqli->error);
    } else {
        printf("INSERT failed, [%d] %s\n", $mysqli->errno, $mysqli->error);
    }
    /* Annulation de la transaction globale */
    mysqlnd_ms_xa_rollback($mysqli, $xid);
    die("Stopping.");
}

/* Continue de mener à bien les requêtes sur les autres serveurs, i.e. les autres serveurs partagés */

/* commit the global transaction */
if (!mysqlnd_ms_xa_commit($mysqli, $xa_id)) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
?>

Contrairement aux transactions locales, qui sont envoyées à un seul serveur, les transactions XA ont un identifiant (xid) associé. L'identifiant de transaction XA est composé d'un identifiant de transaction globale (gtrid), un qualificatif de branche (bqual), ainsi qu'un identifiant de format (formatID). Seul l'identifiant de transaction globale peut et doit être fourni lors de l'appel à n'importe laquelle des fonctions XA du plugin.

Une fois qu'une transaction globale a commencé, le plugin commence à surveiller les serveurs tant que la transaction globale n'est pas terminée. Lorsqu'un serveur est sélectionné pour l'exécution de la requête, le plugin injecte la requête SQL XA BEGIN avant d'exécuter la requête SQL sur le serveur. XA BEGIN rend le serveur participant à la transaction globale. Si la requête SQL injectée échoue, le plugin va rapporter l'erreur dans la réponse à la fonction utilisée pour l'exécution de la requête. Dans l'exemple ci-dessus, $mysqli->query("INSERT INTO orders(order_id, item) VALUES (1, 'christmas tree, 1.8m')") va indiquer une telle erreur. Vous pouvez vouloir vérifier le code statut des erreurs SQL pour déterminer si la requête actuelle a échoué (ici : INSERT) ou si l'erreur est en relation avec la transaction globale. Il vous appartient de choisir d'ignorer l'erreur pour commencer la transaction globale sur un serveur et continuer l'exécution sans que le serveur ne participe à la transaction globale.

Exemple #2 Les transactions locales et globales sont mutuellement exclusives

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Bien évidemment, votre gestionnaire d'erreurs est bien mieux... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Démarre une transaction locale */
if (!$mysqli->begin_transaction()) {
    die(sprintf("[%d/%s] %s\n", $mysqli->errno, $mysqli->sqlstate, $mysqli->error));
}

/* Impossible de commencer la transaction globale maintenant - on doit terminer la transaction locale d'abord */
$gtrid_id = "12345";
if (!mysqlnd_ms_xa_begin($mysqli, $gtrid_id)) {
    die(sprintf("[%d/%s] %s\n", $mysqli->errno, $mysqli->sqlstate, $mysqli->error));
}
?>

L'exemple ci-dessus va afficher :

Warning: mysqlnd_ms_xa_begin(): (mysqlnd_ms) Some work is done outside global transaction. You must end the active local transaction first in ... on line ...
[1400/XAE09] (mysqlnd_ms) Some work is done outside global transaction. You must end the active local transaction first

Une transaction globale ne peut être démarrée lorsqu'une transaction locale est active. Le plugin tente de détecter cette situation au plus tôt, i.e. lors de l'appel à la fonction mysqlnd_ms_xa_begin(). Si vous utilisez uniquement des appels API pour contrôler les transactions, le plugin va savoir qu'une transaction locale est ouverte, et va retourner une erreur pour mysqlnd_ms_xa_begin(). Cependant, notez les limitations sur les limites des transactions. Dans le pire des cas, si vous utilisez des requêtes SQL directes pour les transactions locales (BEGIN, COMMIT, ...), il se peut qu'une erreur ne soit relayée pendant que des requêtes SQL soient exécutées sur un serveur.

Pour terminer une transaction globale, appelez la fonction mysqlnd_ms_xa_commit() ou mysqlnd_ms_xa_rollback(). Lorsqu'une transaction globale se termine, tous les participants doivent être informés de cette fin. Toutefois, PECL/mysqlnd_ms va envoyer les requêtes SQL XA appropriées sur une partie ou la totalité des participants. Toute erreur pendant cette phase va engendrer une annulation implicite. L'API relative à XA est intentionnellement simple ici. Une API plus complexe, qui donne plus de contrôle, aurait peu d'avantage par rapport à une implémentation utilisateur qui se charge lui même des requêtes SQL XA bas niveaux.

Les transactions XA utilisent un protocole de validation en deux phases. Le protocole de validation en deux phases est un protocole bloquant. Il y a des cas où aucune progression ne peut avoir lieu, y compris en utilisant des délais maximals d'attente. Les coordinateurs de transaction doivent survivre à leur propre échec, être capable de détecter les blocages et de rompre des liens. PECL/mysqlnd_ms prend le rôle de coordinateur de transaction et peut être configuré pour survivre à son propre échec pour éviter des soucis avec les serveurs MySQL bloqués. Toutefois, le plugin peut et doit être configuré pour utiliser un statut persistent et résistant au crash pour permettre la collection des données incorrectes, et stopper les transactions globales. Une transaction globale peut être stoppée dans un statut ouvert si, soit le plugin échoue (crash), soit une connexion depuis le plugin vers un participant de la transaction globale échoue.

Exemple #3 Stockage du statut du coordinateur de transaction

{
    "myapp": {
        "xa": {
            "state_store": {
                "participant_localhost_ip": "192.168.2.12",
                "mysql": {
                    "host": "192.168.2.13",
                    "user": "root",
                    "password": "",
                    "db": "test",
                    "port": "3312",
                    "socket": null
                }
            }
        },
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.14",
                "port": "3306"
            }
        }
    }
}

Actuellement, PECL/mysqlnd_ms supporte uniquement les tables de base de données MySQL comme espace de stockage de statut. Les définitions des tables SQL sont fournies dans la section de configuration du plugin. Assurez-vous d'utiliser un moteur transactionel et résistant au crash pour les tables, comme InnoDB. InnoDB est le moteur de table par défaut dans les versions récentes du serveur MySQL. Assurez-vous également que le serveur de base de données lui-même a une haute disponibilité.

Si un stockage de statut a été configuré, le plugin peut effectuer une collection des données incorrectes. Pendant la collection de données incorrectes, il peut être nécessaire de se connecter à un participant à une transaction globale qui a échouée. Aussi, le stockage de staut accueille une liste des participants et, entre autres, leurs noms d'hôte. Si la collection de données incorrectes est exécutée sur un autre hôte que celui qui a été noté comme participant avec le nom d'hôte localhost, alors localhost va résoudre différentes machines. Il y a deux solutions à ce problème. Soit vous ne configurez aucun serveur avec le nom d'hôte localhost mais configurez une adresse IP (et un port), ou, vous utilisez la collection de données incorrectes. Dans l'exemple ci-dessus, localhost est utilisé pour master_0, et va résourdre le mauvais hôte durant la collection des données incorrectes. Cependant, participant_localhost_ip est également défini pour utiliser la collection de données incorrectes où localhost correspond à l'IP 192.168.2.12.


Niveau de service et consistence

Note: Versions requises

Les niveaux de services ont été ajoutés dans mysqlnd_ms version 1.2.0-alpha. mysqlnd_ms_set_qos() est disponible pour PHP 5.4.0 ou plus récent.

Differents types de solutions de cluster MySQL offrent différents niveaux de consistence des données à leurs utilisateurs. Un cluster asynchrone offre une consistence éventuelle par défaut. Une lecture exécutée sur un esclave peut retourner une donnée fraiche, dépassée, ou pas de donnée du tout en fonction de l'état d'avancement de la réplication de l'esclave sur le maitre.

Les applications utilisant le cluster de replication MySQL doivent être conçues pour fonctionner avec une consistence éventuelle des données. Dans certains cas, des données non fraiches ne sont pas acceptables. Dans ces cas-là, seuls certains esclaves voire même uniquement le maitre sont autorisés pour atteindre la qualité de service nécessaire.

Depuis mysqlnd_ms 1.2.0, le plugin peut sélectionner un noeud automatiquement pour assurer une consistence de session ou une consistence forte. La consistence de session implique qu'un client peut lire ses écritures, les autres clients peuvent voir ou non les écritures. La consistence forte assure que tous les autres clients verront les écritures.

Exemple #1 Consistence de session: lire ses écritures

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        }
    }
}

Exemple #2 Requêtage en consistence de session

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Utilisez ici votre propre gestion des erreurs... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Séparation des lectures/écritures: maitre utilisé */
if (!$mysqli->query("INSERT INTO orders(order_id, item) VALUES (1, 'christmas tree, 1.8m')")) {
     /* Utlisez ici votre propre gestion des erreurs... */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Activation de la consistence de session */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Le plugin sélectionne un noeud qui possède le changement, ici : le maitre */
if (!$res = $mysqli->query("SELECT item FROM orders WHERE order_id = 1")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

var_dump($res->fetch_assoc());

/* Retour à la consistence éventuelle : des données non fraiches sont tolérées */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Le plugin choisit un esclave, des données non fraiches peuvent être retournées */
if (!$res = $mysqli->query("SELECT item, price FROM specials")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

Les niveaux de service peuvent être indiqués dans le fichier de configuration et durant l'exécution via mysqlnd_ms_set_qos(). Dans l'exemple la fonction est utilisée pour forcer la consistence de session pour toutes les requêtes futures jusqu'à nouvel ordre. La requête SELECT sur la table orders est lancée sur le maitre pour s'assurer que l'écriture précédente peut être vue par le client. La logique de spération des lectures/écritures a donc été adaptée pour satisfaire le niveau de service demandé.

Après que l'application n'ait lue ses changements depuis la table orders elle retourne dans le niveau de service par défaut, c'est-à-dire la consistence éventuelle. Celle-ci ne propose aucune restriction quant au choix du noeud, ainsi, la requête SELECT sur la table specials est exécutée sur l'esclave.

Cette fonctionnalité est supérieure aux astices SQL et à l'option de configuration master_on_write. Dans beaucoup de cas, mysqlnd_ms_set_qos() est plus facile à utiliser, plus puissante et plus portable.

Exemple #3 Age maximum / retard de l'esclave

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "failover" : "master"
    }
}

Exemple #4 Limiter le retard de l'esclave

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Utilisez ici votre propre gestion des erreurs... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Lit depuis des esclaves ayant un retard de 4 secondes maximum */
$ret = mysqlnd_ms_set_qos(
    $mysqli,
    MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL,
    MYSQLND_MS_QOS_OPTION_AGE,
    4
);

if (!$ret) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Le plugin sélectionne un des esclaves, qui a ou pas la donnée */
if (!$res = $mysqli->query("SELECT item, price FROM daytrade")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Retour au comportement par défaut : utilisation de tous les esclaves et du maitre */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

Le niveau de consistence éventuelle peut utiliser un paramètre optionnel permettant d'indiquer l'âge maximum de retard des esclaves pour leur sélection. Ainsi, le plugin vérifiera SHOW SLAVE STATUS pour tous les esclaves configurés. Dans notre exemple, seuls les esclaves pour qui Slave_IO_Running=Yes, Slave_SQL_Running=Yes et Seconds_Behind_Master <= 4 est vrai sont considérés dans le choix pour l'éxecution de SELECT item, price FROM daytrade.

La vérification SHOW SLAVE STATUS est transparente coté application. Si des erreurs surviennent, elles seront reportées sous forme de Warning. Aucune erreur ne sera émise sur la connexion. Même si tous les SHOW SLAVE STATUS échouent, l'éxecution de la requête de l'utilisateur aura quand même lieu si la reprise sur incident du maitre est activée. Ainsi, aucun changement côté applicatif n'est nécessaire.

Note: Opérations couteuses et lentes

Vérifier SHOW SLAVE STATUS pour tous les esclaves ajoute de la charge. C'est une opération couteuse. Malheureusement, le cluster de réplication MySQL n'offre pas d'autre moyen de procéder pour vérifier le retard d'un esclave.

Notez les limites et les propriétés de SHOW SLAVE STATUS en lisant le manuel de référence de MySQL.

Pour évoter que le plugin ne génère un Warning si aucun esclave satisfaisant le critère de retard ne peut être trouvé, il est nécessaire d'activer la reprise sur incident du maitre dans le fichier de configuration. Dans ce cas, le plugin sélectionnera un maitre.

Si aucun esclave n'est trouvé et que la reprise sur incident est désactivée, le plugin génèrera un Warning, il n'exécutera pas la requête et placera la connexion en erreur.

Exemple #5 Reprise sur incident non activée

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        }
    }
}

Exemple #6 Pas d'esclave avec le critère de retard

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Utilisez ici votre propre gestion des erreurs... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Lit depuis les esclaves dont le retard n'est pas supérieur à 4 secondes */
$ret = mysqlnd_ms_set_qos(
    $mysqli,
    MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL,
    MYSQLND_MS_QOS_OPTION_AGE,
    4
);

if (!$ret) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Le plugin choisit un esclave au hasard, il peut avoir une donnée non fraiche */
if (!$res = $mysqli->query("SELECT item, price FROM daytrade")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Cas par défaut: utilisation de tous les esclaves et maitres */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

L'exemple ci-dessus va afficher :

PHP Warning:  mysqli::query(): (mysqlnd_ms) Couldn't find the appropriate slave connection. 0 slaves to choose from. Something is wrong in %s on line %d
PHP Warning:  mysqli::query(): (mysqlnd_ms) No connection selected by the last filter in %s on line %d
[2000] (mysqlnd_ms) No connection selected by the last filter


ID de transaction globale

Note: Version requise

L'injection d'identifiant de transaction globale côté client a été ajoutée avec mysqlnd_ms version 1.2.0-alpha. Ce n'est pas requis pour les clusters synchrones, comme MySQL Cluster. Utilisez le avec des clusters asynchrones, comme la réplication MySQL.

Depuis la version admissible MySQL 5.6.5-m8, le serveur MySQL fournit des identifiants de transaction globale. Cette fonctionnalité est supportée par PECL/mysqlnd_ms 1.3.0-alpha ou supérieure. Toutefois, le jeu de fonctionnalités inclus dans la version finale de MySQL 5.6 est insuffisant pour supporter toutes les idées discutées ici. Veuillez vous référer à la section sur les concepts pour plus de détails.

PECL/mysqlnd_ms peut soit utiliser sa propre émulation des identifiants de transaction globale, soit la fonctionnalité interne du serveur MySQL 5.6.5-m8 ou supérieure. D'un point de vue développeur, ces différentes approches offrent les mêmes fonctionnalités au niveau des niveaux de service fournis par PECL/mysqlnd_ms. Leurs différences sont abordées dans la section sur les concepts.

La section sur le démarrage rapide montre l'utilisation de l'émulation de l'identifiant de transaction globale côté client interne à PECL/mysqlnd_ms avant de montrer son homologue côté serveur. Cet ordre assure que l'idée originelle soit abordée en premier lieu.

Idée et émulation côté client

Dans sa forme de base, un identifiant de transaction globale (GTID) est un compteur dans une table sur le maitre. Le compteur est incrémenté chaque fois qu'une transaction est commitée sur le maitre. Les esclaves répliquent la table. Le compteur a deux rôles. Dans le cas d'un échec du maitre, il aide l'administrateur à identifier l'esclave le plus récent pour le promouvoir nouveau maitre. L'esclave le plus récent est celui qui possède la plus grande valeur de l'identifiant. L'application peut utiliser le GTID pour chercher les esclaves ayant répliqué une certaine écriture identifiée par le GTID.

PECL/mysqlnd_ms peut injecter du SQL pour toute transaction comitée afin d'incrémenter le GTID. Le GTID est accessible par l'application pour identifier une opération d'écriture. Ceci permet au plugin d'assurer le niveau de service consistence de session en requêtant les esclaves qui ont répliqué la donnée. La charge de lecture est donc supprimée du maitre.

l'émulation GTID coté client a quelques limites, lisez attentivement la section sur les concepts pour bien comprendre les principes et les idées avant de l'utiliser en production.

D'abord, créez une table compteur sur votre maitre et insérez-y un enregistrement. Le plugin ne créer pas la table. Les administrateurs doivent s'assurer qu'elle existe. En fonction du mode de rapport d'erreur, le plugin ignorera éventuellement silencieusement l'absence de table, ou s'arrêtera brusquement.

Exemple #1 Creation de la table de compteur sur le maitre

CREATE TABLE `trx` (
  `trx_id` int(11) DEFAULT NULL,
  `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1
INSERT INTO `trx`(`trx_id`) VALUES (1);

Dans le fichier de configuration, utilisez on_commit pour insérer le SQL qui mettra à jour le GTID, section global_transaction_id_injection. Assurez vous que le nom de table pour la commande UPDATE est pleinement qualifié. Dans l'exemple, test.trx est utilisé pour faire référence à la table trx dans la base test. Le nom pleinement qualifié est important car la connexion sur laquelle la requête sera éxecutée peut changer et représenter une base différente. Assuez-vous aussi des droits de l'utilisateur qui ouvre la connexion pour l'éxecution de commandes UPDATE.

Activez le rapport d'erreurs concernant l'injection de GTID.

Exemple #2 Plugin config: SQL pour l'injection GTID coté client

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "on_commit":"UPDATE test.trx SET trx_id = trx_id + 1",
            "report_error":true
        }
    }
}

Exemple #3 Injection GTID transparente

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Utilisez ici votre propre gestion des erreurs... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* auto commit mode, transaction sur le maitre, GTID doit être incrémenté */
if (!$mysqli->query("DROP TABLE IF EXISTS test")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* auto commit mode, transaction sur le maitre, GTID doit être incrémenté */
if (!$mysqli->query("CREATE TABLE test(id INT)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* auto commit mode, transaction sur le maitre, GTID doit être incrémenté */
if (!$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* auto commit mode, lecture sur esclave, pas d'incrémentation */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

var_dump($res->fetch_assoc());
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["id"]=>
  string(1) "1"
}

L'exemple lance 3 requêtes en mode autocommit sur le maitre, causant 3 transactions sur le maitre. Pour châque requête, le plugin injectera l'UPDATE configuré de manière transparente avant d'exécuter la requête utilisateur. Lorsque le script se termine, le GTID a été incrémenté de 3 sur le maitre.

La 4ème requête exécutée dans l'exemple, un SELECT, ne déclenche pas l'incrémentation. Seules les écritures sur le maitre déclenchent l'incrémentation.

Note: SQL pour GTID: Solution efficace demandée!

Le SQL utilisé pour le GTID n'est pas efficace. Il est conçu pour être lisible, pas performant. Considérez une solution plus robuste et reportez-la, nous l'incluerons dans le manuel.

Exemple #4 Plugin config: SQL pour récupérer le GTID

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "on_commit":"UPDATE test.trx SET trx_id = trx_id + 1",
            "fetch_last_gtid" : "SELECT MAX(trx_id) FROM test.trx",
            "report_error":true
        }
    }
}

Exemple #5 Obtenir le GTID après l'injection

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Utilisez ici votre propre gestion des erreurs... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* auto commit mode, transaction sur le maitre, GTID doit être incrémenté */
if (!$mysqli->query("DROP TABLE IF EXISTS test")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));

/* auto commit mode, transaction sur le maitre, GTID doit être incrémenté */
if (!$mysqli->query("CREATE TABLE test(id INT)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

printf("GTID après transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));
?>

L'exemple ci-dessus va afficher :

GTID après transaction 7
GTID après transaction 8

Les applications peuvent demander à mysqlnd_ms le GTID correspondant à la dernière écriture. La fonction mysqlnd_ms_get_last_gtid() retourne le GTID obtenu lors de l'éxecution d'une requête SQL depuis l'entrée fetch_last_gtid de la section global_transaction_id_injection du fichier de configuration. La fonction doit être appelée après que le GTIF ait été incrémenté.

Les applications ne doivent pas exécuter le SQL elles-mêmes car elles risquent alors de causer une incrémentation accidentelle du GTID. Aussi, si la fonction est utilisée, il est plus simple de migrer une application.

Le guide de démarrage rapide montre une requête SQL qui retourne un GTID supérieur ou égal à celui crée pour la requête précédente. Il s'agit du GTID de la requête précédente si aucun client ne l'ont incrémenté entre temps jusqu'au SELECT le récupérant, sinon, il est plus élevé.

Exemple #6 Plugin config: Vérifier un certain GTID

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "on_commit":"UPDATE test.trx SET trx_id = trx_id + 1",
            "fetch_last_gtid" : "SELECT MAX(trx_id) FROM test.trx",
            "check_for_gtid" : "SELECT trx_id FROM test.trx WHERE trx_id >= #GTID",
            "report_error":true
        }
    }
}

Exemple #7 Consistence de session et GTID combinés

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Utilisez ici votre propre gestion des erreurs... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* auto commit mode, transaction sur le maitre, GTID doit être incrémenté */
if (   !$mysqli->query("DROP TABLE IF EXISTS test")
    || !$mysqli->query("CREATE TABLE test(id INT)")
    || !$mysqli->query("INSERT INTO test(id) VALUES (1)")
) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* GTID comme identifiant pour la dernière écriture */
$gtid = mysqlnd_ms_get_last_gtid($mysqli);

/* Consistence de session ("lit tes écritures"): essaye de lire depuis les esclaves, pas seulement le maitre */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION, MYSQLND_MS_QOS_OPTION_GTID, $gtid)) {
    die(sprintf("[006] [%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Exécute sur le maitre ou un des esclaves ayant la donnée */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

var_dump($res->fetch_assoc());
?>

Un GTID retourné par mysqlnd_ms_get_last_gtid() peut être utilisé comme option dans le niveau de service consistence de session, indiqué au moyen de mysqlnd_ms_set_qos(). Dans l'exemple, le plugin exécute la requête SELECT soit sur le maitre, soit sur l'esclave qui possède la donnée répliquée.

PECL mysqlnd_ms va vérifier de manière transparente chaque esclave configuré pour savoir s'il possède la donnée répliquée de l'INSERT au moyen de la table des GTID. La vérification utilise la requête SQL indiquée par l'option check_for_gtid de la section global_transaction_id_injection du fichier de configuration. Notez qu'il s'agit s'une opération lente et couteuse, les applications doivent l'utiliser à bon escient si la charge en lecture sur le maitre devient trop importante.

Utilisation de la fonctionalité d'identifiant de transaction globale côté serveur

Note: Support serveur insuffisant dans MySQL 5.6

Le greffon a été développé sur la base d'une version de pre-production de MySQL 5.6. Or il s'avère que les versions MySQL 5.6 publiées finalement ne fournissent pas des clients avec assez d'informations pour imposer la consistence des sessions basés sur les GTIDs. Veuillez vous référer à la section sur les concepts pour plus de détails.

Depuis MySQL 5.6.5-m8, le système de réplication MySQL utilise des identifiants globaux de transaction côté serveur. Ces identifiants de transaction sont automatiquement générés et maintenus par le serveur. Les utilisateurs n'ont pas à s'inquiéter de les maintenir. Il n'y a besoin d'avoir des tables de disponible à l'avance, ou de configuration sur le on_commit. L'émulation côté client n'est plus nécessaire non plus.

Les clients peuvent continuer d'utiliser l'identifiant de transaction globale dans un but de consistence des sessions lors des opérations de lecture sur les esclaves de réplication MySQL dans certains cas mais pas dans tous! L'algorithme fonctionne tel que décrit ci-après. Des requêtes SQL différentes doivent être configurées pour fetch_last_gtid et check_for_gtid. Ces requêtes sont fournies ci-dessous. Notez que MySQL 5.6.5-m8 est une version de développement. Les détails sur l'implémentation serveur peuvent changer dans le futur et nécessite une adoption des requêtes SQL utilisées.

En utilisant la configuration suivante, n'importe quelle fonctionalité décrite ci-dessous peut être utilisée en plus de la fonctionalité des identifiants de transaction globale côté serveur. mysqlnd_ms_get_last_gtid() et mysqlnd_ms_set_qos() continuent de fonctionner tel que décrit. La seule différente est que le serveur n'utilise plus qu'une simple séquence de numéro mais une chaîne contenant un identifiant de serveur et une séquence de numéro. Aussi, les utilisateurs ne peuvent plus déduire un ordre depuis les GTIDs retournés par la fonction mysqlnd_ms_get_last_gtid().

Exemple #8 Configuration du plugin : utilisation de la fonctionalité GTID interne à MySQL 5.6.5-m8

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "fetch_last_gtid" : "SELECT @@GLOBAL.GTID_DONE AS trx_id FROM DUAL",
            "check_for_gtid" : "SELECT GTID_SUBSET('#GTID', @@GLOBAL.GTID_DONE) AS trx_id FROM DUAL",
            "report_error":true
        }
    }
}


Intégration du cache

Note: Version requise, dépendances et statuts

Vous trouverez plus d'informations quant aux versions requises, à l'ordre de chargement de l'extension, et aux statuts courants dans la section relatif aux concepts !

Les clusters de base de données peuvent délivrer différents niveaux de consistences. Depuis PECL/mysqlnd_ms 1.2.0, il est possible de demander au plugin de considérer uniquement les noeuds de clusters qui peuvent délivrer le niveau de consistance requis. Par exemple, si vous utilisez un serveur de réplication MySQL asynchrone avec une échelle de cluster éventuellement consistent, il est possible de demander une session de consistence (lecture de vos écritures) à n'importe quel moment en utilisant la fonction mysqlnd_ms_set_quos(). Veuillez également vous reportez à la section de la documentation sur les niveaux de service et de consistence.

Exemple #1 Récapitulatif : qualité de service demandant de lire vos écritures

/* Demande d'une session de consistence : lecture de vos écritures */
     if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION))
     die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

Supposons que PECL/mysqlnd a été explicitement configuré pour délivrer aucun niveau de consistence plus élevé que la consistence éventuelle, il est possible de remplacer un noeud de base de données accessible en lecture avec un cache côté client utilisant time-to-live (TTL), en invalidant ainsi la statégie. Ainsi, à la fois le noeud de base de données et le cache peuvent ou non servir les données courantes, sachant que c'est ce que définit la consistence éventuelle.

Remplacer l'accès en lecture d'un noeud de base de données avec un accès au cache local peut améliorer les performances globales et baisser la charge de la base de données. Si l'entrée du cache est souvent réutilisée par d'autres clients que celui ayant créée l'entrée dans le cache, un accès base de données est sauvé et ainsi, la charge de la base de données baisse. De plus, les performances du système peuvent devenir meilleures sachant que le calcul et la délivrance d'une requête de base de données est plus lente que l'accès à un cache local.

Exemple #2 Configuration du plugin : aucune entrée spéciale pour la mise en cache

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
    }
}

Exemple #3 Mise en cache d'une requête esclave

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Bien évidemment, votre gestionnaire d'erreur est meilleur... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

if (   !$mysqli->query("DROP TABLE IF EXISTS test")
    || !$mysqli->query("CREATE TABLE test(id INT)")
    || !$mysqli->query("INSERT INTO test(id) VALUES (1)")
) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Autorise explicitement la consistence éventuelle et la mise en cache (TTL <= 60 secondes) */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL, MYSQLND_MS_QOS_OPTION_CACHE, 60)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Pour que ceci fonctionne, nous devons juste attendre d'atteindre un esclave.
Forçons le. */

$attempts = 0;
do {
    /* Vérifie si l'esclave a la table */
    if ($res = $mysqli->query("SELECT id FROM test")) {
        break;
    } else if ($mysqli->errno) {
        die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
    }
    /* Attente d'un esclave */
    usleep(200000);
} while ($attempts++ < 10);

/* La requête va être exécutée sur un esclave, le résultat est dans le cache */
assert($res);
var_dump($res->fetch_assoc());

/* Servi depuis le cache */
$res = $mysqli->query("SELECT id FROM test");
?>

Cet exemple montre la façon dont on doit utiliser la fonctionalité du cache. Tout d'abord, vous devez définir la qualité de service à une consistence éventuelle et explicitement autoriser la mise en cache. Ceci est fait en appelant la fonction mysqlnd_ms_set_qos(). Puis, le jeu de résultats de chaque requête en lecture seule est mis en cache pour plus de quelques secondes, tel qu'autorisé avec la fonction mysqlnd_ms_set_qos().

Le TTL actuel est inférieur ou égal à la valeur définie avec la fonction mysqlnd_ms_set_qos(). La valeur passée à la fonction définit l'âge maximal (en secondes) des données délivrées. Pour calculer la valeur actuelle du TTL, la latence du serveur de réplication est vérifiée et soustrait à la valeur fournie. Si, par exemple, l'âge maximal est défini à 60 secondes, et l'esclave rapporte une latence de 10 secondes, le TTL résultant sera de 50 secondes. Le TTL est calculé de façon individuelle pour chaque requête mise en cache.

Exemple #4 Lecture de vos écritures et mise en cache

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
  /* Bien évidemment, votre gestionnaire d'erreur est meilleur... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

if (   !$mysqli->query("DROP TABLE IF EXISTS test")
    || !$mysqli->query("CREATE TABLE test(id INT)")
    || !$mysqli->query("INSERT INTO test(id) VALUES (1)")
) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Autorise explicitement la consistence éventuelle et la mise en cache (TTL <= 60 secondes) */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL, MYSQLND_MS_QOS_OPTION_CACHE, 60)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Pour que ceci fonctionne, nous devons juste attendre d'atteindre un esclave.
Forçons le. */
$attempts = 0;
do {
    /* Vérifie si l'esclave a la table */
    if ($res = $mysqli->query("SELECT id FROM test")) {
        break;
    } else if ($mysqli->errno) {
        die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
    }
    /* Attente d'un esclave */
    usleep(200000);
} while ($attempts++ < 10);

assert($res);

/* La requête va être exécutée sur un esclave, le résultat est dans le cache */
var_dump($res->fetch_assoc());

/* Servi depuis le cache */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
var_dump($res->fetch_assoc());

/* Mise à jour sur le maître */
if (!$mysqli->query("UPDATE test SET id = 2")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Lecture de vos écritures */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Récupération des dernières données */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
var_dump($res->fetch_assoc());
?>

La qualité de service peut être modifiée à n'importe quel moment pour supprimer l'utilisation du cache. Si nécessaire, vous pouvez le modifier pour lire vos écritures (session de consistence). Dans ce cas, le cache ne sera pas utilisé et les dernières données seront lues.


Failover

Par défaut, le plugin ne tente pas de failover si la connexion vers un hôte échoue. Ce comportement évite des erreurs en relation avec le statut de la connexion. Il est recommandé de gérer manuellement les erreurs de connexion d'une façon similaire à un échec d'une transaction. Vous devez capturer l'erreur, re-construire le statut de la connexion, et exécuter votre requête comme ci-dessous.

Si le statut de connexion n'est pas important pour vous, vous pouvez activer le failover automatique et silencieux. Suivant la configuration, le failover automatique et silencieux va soit tenter, en cas d'échec de basculer vers le maître au lieu d'émettre une erreur, soit tenter une connexion avec un autre esclave, suivant si la requête l'autorise, avant de tenter une connexion vers le maître. En raison du fait que le failover automatique n'est pas encore totalement robuste, ce sujet n'est pas abordé dans le démarrage rapide. Au lieu de cela, les détails sont fournis dans la section de concepts ci-dessous. is not fool-proof, it is not discussed in the quickstart. Instead, details are given in the concepts section below.

Exemple #1 Failover manuel, optionnellement, automatique

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "simulate_slave_failure",
                "port": "0"
            },
            "slave_1": {
                "host": "127.0.0.1",
                "port": 3311
            }
        },
       "filters": { "roundrobin": [] }
    }
 }

Exemple #2 Failover manuel

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Bien évidemment, votre gestionnaire d'erreur est meilleur... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

$sql = "SELECT 1 FROM DUAL";

/* Gestionnaire d'erreur tel qu'il doit être suivant le plugin */
if (!($res = $link->query($sql))) {
    /* spécifique au plugin : vérification d'une erreur de connexion */
    switch ($link->errno) {
    case 2002:
    case 2003:
    case 2005:
        printf("Erreur de connexion - Tentative sur le prochain esclave !\n");
        /* Le répartiteur de charge va prendre le prochain esclave */
        $res = $link->query($sql);
        break;
    default:
        /* Aucune erreur de connexion, failover ne va probablement pas être utile */
        die(sprintf("Erreur SQL : [%d] %s", $link->errno, $link->error));
        break;
  }
}
if ($res) {
    var_dump($res->fetch_assoc());
}
?>


Partitionnement et fragmentation

Les clusters de base de données sont mis en place pour plusieurs raisons. Les clusters peuvent améliorer la disponibilité, la tolérance aux pannes mais aussi améliorer les performances en suivant une approche du type "diviser pour mieux reigner", sachant que le travail est distribué sur plusieurs machines. Le clustering est quelques fois combiné avec le partitionnement et la fragmentation pour ensuite diviser une énorme tâche complexe en des tâches plus petites et donc plus gérables.

Le plugin mysqlnd_ms a été conçu pour supporter une grande variété de clusters de base de données MySQL. Certaines sortes de clusters de bases de données ont des méthodes internes pour le partitionnement et la fragmentation, les rendant ainsi transparentes à l'utilisation : le filtrage sur les tables de réplication MySQL, et la fragmentation (application basée sur le partitionnement).

La réplication MySQL supporte le partitionnement sous la forme de filtres qui vous permettent de créer des esclaves qui répliquent toutes les bases de données ou une seule base de données (ou des tables) du maîtres. Il est ensuite de la responsabilité de l'application de choisir un esclabe suivant les règles du filtre. Vous pouvez utiliser soit le filtre mysqlnd_ms node_groups pour supporter manuellement ce comportement, ou utiliser le filtre de table expérimental.

Le partitionnement ou la fragmentation manuelle est supporté via le filtre de groupage des noeuds, ainsi qu'avec les astuces SQL depuis la version 1.5.0. Le filtre node_groups vous permet d'assigner un nom symbolique à un groupe de serveurs maîtres ou esclabes. Dans l'exemple, le maître master_0 et slave_0 forment un groupe dont le nom est Partition_A. Il est ensuite entièrement de votre responsabilité que de décider le contenu du groupe. Par exemple, vous pouvez utiliser des groupes de noeuds pour la fragmentation, et utiliser les noms des groupes pour adresse une fragmentation comme like Shard_A_Range_0_100.

Exemple #1 Cluster de groupes de noeuds

{
  "myapp": {
       "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "simulate_slave_failure",
                "port": "0"
            },
            "slave_1": {
                "host": "127.0.0.1",
                "port": 3311
            }
        },
        "filters": {
            "node_groups": {
                "Partition_A" : {
                    "master": ["master_0"],
                    "slave": ["slave_0"]
                }
            },
           "roundrobin": []
        }
    }
}

Exemple #2 Partitionnement manuelle en utilisant des astuces SQL

<?php
function select($mysqli, $msg, $hint = '')
{
    /* Note : test faible, deux connexions vers deux serveurs peuvent avoir le même identifiant de thread */
    $sql = sprintf("SELECT CONNECTION_ID() AS _thread, '%s' AS _hint FROM DUAL", $msg);
    if ($hint) {
        $sql = $hint . $sql;
    }
    if (!($res = $mysqli->query($sql))) {
        printf("[%d] %s", $mysqli->errno, $mysqli->error);
        return false;
    }
    $row =  $res->fetch_assoc();
    printf("%d - %s - %s\n", $row['_thread'], $row['_hint'], $sql);
    return true;
}

$mysqli = new mysqli("myapp", "user", "password", "database");
if (!$mysqli) {
  /* Bien évidemment, votre gestionnaire d'erreurs est meilleur... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Tous les esclaves sont autorisés */
select($mysqli, "slave_0");
select($mysqli, "slave_1");

/* seuls les serveurs du groupe de noeuds "Partition_A" sont autorisés */
select($mysqli, "slave_1", "/*Partition_A*/");
select($mysqli, "slave_1", "/*Partition_A*/");
?>
6804 - slave_0 - SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL
2442 - slave_1 - SELECT CONNECTION_ID() AS _thread, 'slave2' AS _hint FROM DUAL
6804 - slave_0 - /*Partition_A*/SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL
6804 - slave_0 - /*Partition_A*/SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL

Par défaut, le plugin utilisera tous les serveurs maîtres et esclaves configurés pour l'exécution de la requête. Mais si une requête commence avec une astuce SQL comme /*node_group*/, le plugin ne va considérer que les serveurs listés dans le node_group lors de l'exécution de la requête. Aussi, les requêtes de type SELECT préfixées avec /*Partition_A*/ seront exécutées uniquement sur slave_0.


MySQL Fabric

Note: Version nécessaire et statut

Le support de MySQL Fabric a commencé avec la version 1.6. Veuillez considérer l'implémentation actuelle comme une pré-alpha. La documentation est susceptible de ne pas lister toutes les fonctionnalités ou limitations. Le travail est en cours.

Le sharding est le seul cas actuelement supporté par le greffon.

Note: Les concepts de MySQL Fabric

Veuillez vous référer au manuel de référence MySQL pour plus d'informations sur MySQL Fabric et comment le mettre en place. La documentation PHP suppose que vous êtes familier avec les concepts de bases et les idées derrière MySQL Fabric.

MySQL Fabric est un système pour gérer des fermes de serveurs MySQL afin d'obtenir de la haute disponibilité et optionnellement supporter le sharding. Techniquement, c'est un intergiciel de gestion et de monitoring de serveurs MySQL.

Les clients interrogent MySQL Fabric afin d'obtenir des listes de serveurs MySQL, leurs états et leurs rôles. Par exemple, les clients peuvent demander une liste des esclaves d'un groupe de réplication MySQL et savoir s'ils sont prêts pour gérer des requêtes. Un autre exemple est un cluster de serveurs MySQL shardés ou le client désire savoir quel shard interroger pour une table et une clé de shard donnée. Si configuré pour utiliser MySQL Fabric, le greffon utilise XML RPC au dessus de HTTP pour obtenir la liste à l'exécution depuis le hôte MySQL Fabric. L'appel de procédures à distance XML est fait en arrière plan et est transparent du point de vue du développeur.

Au lieu de lister les serveurs MySQL directement dans les fichiers de configuration des greffons, cela contient juste la liste d'un ou plusieurs hôtes MySQL Fabric.

Exemple #1 Configuration du greffon: Des hôtes Fabric au lieu des serveurs MySQL

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ]
        }
    }
}

Les utilisateurs utilisent les nouvelles fonctions mysqlnd_ms_fabric_select_shard() et mysqlnd_ms_fabric_select_global() pour basculer vers l'ensemble des serveurs responsables d'une clé de shard donné. Ensuite, le greffon choisit le serveur approprié pour exécuter les requêtes. Ce faisant, le greffon tient compte des règles de loadbalancing.

L'exemple suivant suppose que MySQL Fabric a été configuré pour sharder la table test.fabrictest en utilisant la colonne id comme clé de shard.

Exemple #2 Partitionnement manuel en utilisant les SQL hints

<?php
$mysqli = new mysqli("myapp", "user", "password", "database");
if (!$mysqli) {
    /* Bien sur, votre gestionnaire d'erreurs est meilleur... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Créer une table globale (disponible sur tous les shards) */
mysqlnd_ms_fabric_select_global($mysqli, "test.fabrictest");
if (!$mysqli->query("CREATE TABLE test.fabrictest(id INT NOT NULL PRIMARY KEY)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Basculer la connexion sur le bon shard et insérer un enregistrement */
mysqlnd_ms_fabric_select_shard($mysqli, "test.fabrictest", 10);
if (!($res = $mysqli->query("INSERT INTO fabrictest(id) VALUES (10)"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Tenter de lire l'enregistrement nouvellement inséré */
mysqlnd_ms_fabric_select_shard($mysqli, "test.fabrictest", 10);
if (!($res = $mysqli->query("SELECT id FROM test WHERE id = 10"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

L'exemple précédent, une table shardé est créée, un enregistrement inséré et récupérer par la suite. Toutes les opérations en langage de définition de données SQL (DDL) sur une table shardé doivent être appliqués au groupe de serveur global. Avant de créer ou modifier une table shardé, mysqlnd_ms_fabric_select_global() est appelé pour basculer la connexion donnée vers les serveurs, du groupe global, correspondant. Les requêtes SQL de manipulation de données (DML) doivent être envoyés aux shards directement. La fonction mysqlnd_ms_fabric_select_shard() permet de basculer la connexion vers les shards gérant la clé donnée.


Concepts

Sommaire

  • Architecture
  • Groupe de connexions et bascule entre les connexions
  • Gestion des transactions locales
  • Gestion des erreurs
  • Les erreurs passagères
  • Gestion des incidents (Failover)
  • Répartition de charge
  • Séparation des lectures et écritures
  • Les filtres
  • Niveaux de service et consistence
  • Identifiants de transaction
  • Intégration du cache
  • Clusters supportés
  • XA/Distributed transactions

Cette section détaille l'architecture et les concepts associés au plugin, puis décrit l'impact de la réplication MySQL et du plugin sur la tâche de développement. Comprendre ces concepts est nécessaire pour bien utiliser le plugin.


Architecture

Le plugin mysqlnd de réplication et de répartition de charge est implémenté sous forme d'extension PHP. Il est écrit en C et agit sous PHP et durant la phase de démarrage de l'interpréteur PHP (phase d'initialisation des modules) il est enregistré comme plugin mysqlnd pour remplacer des fonctions C spécifiques.

Au déroulement de PHP, il inspecte les requêtes envoyées depuis mysqlnd(PHP) au serveur MySQL. Si une requête est reconnue comme étant de type lecture seule, elle sera aiguillée vers un des serveurs esclaves configurés. Ceci est le cas pour les requêtes commençant par SELECT, au moyen de l'astuce SQL /*ms=slave*/ ou alors si un esclave a été choisi pour exécuter la requête précédente et qu'elle utilisait l'astuce SQL /*ms=last_used*/. Dans tous les autres cas, la requête sera envoyée au serveur maitre.

Les applications doivent utiliser les constantes prédéfinies MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH et MYSQLND_MS_LAST_USED_SWITCH au lieu de leurs valeurs littérales, comme /*ms=slave*/, et ce, dans un souci de portabilité.

Le plugin se charge en interne d'ouvrir et fermer des connexions au maitre et aux esclaves. Du point de vue de l'application, il n'y a qu'une seule connexion visible. Cependant, en interne, cette connexion est représentée par un groupe de connexions réseaux gérées par le plugin. Le plugin aiguille les requêtes vers le maitre ou les esclaves en utilisant de multiples connexions.

Les connexions aux bases de données ont des états, par exemple, le statut des transactions, lejeu de caractères, les tables temporaires. Le plugin va tenter de garder les états des connexions de manière transparente pour les requêtes qu'il traite, lorsque cela lui est possible. Dans les cas contraires, comme par exemple via l'utilisation de BEGIN TRANSACTION, le plugin laisse l'utilisateur gérer les connexions.


Groupe de connexions et bascule entre les connexions

Le plugin de réplication et répartition de charge change la sémantique d'une connexion MySQL de PHP. Les API existantes des extensions PHP pour MySQL (mysqli, mysql et PDO_MYSQL) sont inchangées, mais leur comportement est modifié lorsque le plugin est utilisé. Les applications existantes n'ont pas de changement à opérer pour utiliser la nouvelle API, mais elles devront peut-être être modifiées en ce qui concerne le comportement du plugin.

Le plugin casse la relation un-à-un entre une connexion mysqli, mysql et PDO_MYSQL et la connexion réseau à MySQL. Lorsque le plugin est utilisé, la connexion de mysqli, mysql, PDO_MYSQL représente en fait un groupe de connexions vers un serveur maitre MySQL et des serveurs esclaves. Le plugin aiguille les requêtes vers le serveur maitre ou un des esclaves. A un moment donné, une connexion vue depuis PHP peut pointer vers le maitre et juste après vers un esclave, ou alors toujours le maitre. La manipulation et le remplacement d'une connexion réseau référencée par un gestionnaire de connexion PHP MySQL n'est pas une opération transparente.

Chaque connexion MySQL possède un état, et les différentes connexions, gérées dans un groupe par le plugin, peuvent avoir chacune des états différents. Lorsque le plugin bascule d'une connexion à une autre, l'état est susceptible de changer. L'application doit prendre cela en compte.

La liste suivante indique ce qui est caractérisé par un état de connexion. Cette liste peut ne pas être totalement complète.

  • Les statuts des transactions
  • Les tables temporaires
  • Les verrous des tables
  • Les variables de session système ou utilisateur
  • Le jeu de bases de données courantes, utilisant USE ainsi que d'autres commandes de statut SQL
  • Les requêtes préparées
  • Les variables HANDLER
  • Les verrous retournés par GET_LOCK()

Le changement de connexions intervient juste avant l'exécution de la requête. Le plugin ne change la connexion courante qu'au moment où la prochaine requête est exécutée.

Note: Problèmes liés à la réplication

Voyez aussi le manuel de référence de MySQL concernant » la réplication et ses problématiques. Certaines restrictions ne sont pas dûes au plugin PHP mais sont des caractéristiques du mécanisme de réplication de MySQL.

Messages diffusés

La philosophie du plugin est d'aligner le statut des connexions dans la file d'attente uniquement si le statut est sous le contrôle total du plugin, ou si c'est nécessaire d'un point de vue de la sécurité. Seulement quelques actions modifiants le statut de la connexion rentrent dans cette catégorie.

Voici la liste des appels diffusés de la bibliothèques clientes qui modifient le statut de toutes les connexions contenus dans la file d'attente.

Si un des appels listés ci-dessous est exécuté, le plugin parcourt toutes les connexions actuellement ouvertes vers le maître et les esclaves. Le parcourt continue tant que tous les serveurs n'ont pas été contactés. Le parcourt ne s'interrompt pas lorsqu'un des serveurs indique une erreur. Si possible, l'erreur sera propagée pour appeler la fonction de l'API utilisateur. Suivant cette fonction, qui a été lancée par la fonction de la bibliothèque sous-jacente, l'utilisateur peut être capable de détecter l'erreur.

Appel de la bibliothèque | Notes | Version
change_user() | Appelé par l'appel de l'API utilisateur mysqli_change_user(). Également émise lors de la réutilisation d'une connexion mysqli persistante. | Depuis la version 1.0.0.
select_db | Appelé par les appels de l'API utilisateur suivants : mysql_select_db(), mysql_list_tables(), mysql_db_query(), mysql_list_fields(), mysqli_select_db(). Notez que USE n'est pas surveillé. | Depuis la version 1.0.0.
set_charset() | Appelé par les appels de l'API utilisateur suivants : mysql_set_charset(). mysqli_set_charset(). Notez que SET NAMES n'est pas surveillé. | Depuis la version 1.0.0.
set_server_option() | Appelé par les appels de l'API utilisateur suivants : mysqli_multi_query(), mysqli_real_query(), mysqli_query(), mysql_query(). | Depuis la version 1.0.0.
set_client_option() | Appelé par les appels de l'API utilisateur suivants : mysqli_options(), mysqli_ssl_set(), mysqli_connect(), mysql_connect(), mysql_pconnect(). | Depuis la version 1.0.0.
set_autocommit() | Appelé par les appels de l'API utilisateur suivants : mysqli_autocommit(), PDO::setAttribute(PDO::ATTR_AUTOCOMMIT). | Depuis la version 1.0.0. PHP >= 5.4.0.
ssl_set() | Appelé par les appels de l'API utilisateur suivants : mysqli_ssl_set(). | Depuis la version 1.1.0.

Les connexions diffusées et paresseuses

Le plugin n'utilise pas de proxy ou bien ne se "souvient" pas de toutes les configurations à appliquer aux futures connexions. Il est important de se rappeler de cela lors de l'utilisation des connexions paresseuses. Les connexions paresseuses sont des connexions qui ne sont pas ouvertes tant que le client n'envoie pas la première connexion. Le plugin utilise par défaut de telles connexions.

Les appels de la bibliothèque modifiant la configuration et le statut des connexions ci-après sont enregistrés pour être utilisés lors de l'ouverture d'une connexion paresseuse afin de s'assurer que le statut de cette connexion est comparable avec le statut de toutes les connexions de la file d'attente.

Appel de la bibliothèque | Notes | Version
change_user() | Utilisateur, mot de passe et base de données sont enregistrés pour une utilisation ultérieure. | Depuis la version 1.1.0.
select_db | Base de données enregistré pour utilisation ultérieure. | Depuis la version 1.1.0.
set_charset() | Appel set_client_option(MYSQL_SET_CHARSET_NAME, charset) sur les connexions paresseuses pour s'assurer que charset sera utilisé lors de l'ouverture d'une connexion paresseuse. | Depuis la version 1.1.0.
set_autocommit() | Ajoute SET AUTOCOMMIT=0|1 à la liste des commandes d'initialisation pour une connexion paresseuse utilisant set_client_option(MYSQL_INIT_COMMAND, "SET AUTOCOMMIT=...%quot;). | Depuis la version 1.1.0. PHP >= 5.4.0.
Attention

Statut de connexion

Notez que le statut de la connexion n'est pas changé que par des appels API. Aussi, même si PECL mysqlnd_ms surveille tous les appels API, l'application a toujours besoin de maintenir le statut de la connexion, si besoin.

Jeux de caractères et échappement des chaînes

En raison de l'utilisation des connexions paresseuses, qui sont actives par défaut, il peut survenir qu'une application tente d'échapper une chaîne pour une utilisation dans une requête SQL avant qu'une connexion ne soit établie. Dans ce cas, l'échappement de la chaîne n'est pas possible. La fonction d'échappement de chaînes ne connait pas le jeu de caractères à utiliser avant qu'une connexion ne soit établie.

Pour éviter ce problème, une nouvelle option de configuration server_charset a été introduite en version 1.4.0.

Une attention particulière doit être portée lors de l'échappement de chaînes avec un certain jeu de caractères, mais utilisant le résultat sur une connexion qui utilise un jeu de caractères différent. Notez que PECL/mysqlnd_ms manipule les connexions et qu'une connexion au niveau applicatif représente une file de plusieurs connexions qui peuvent avoir différents jeux de caractères par défaut. Il est recommandé de configurer le serveur pour utiliser le même jeu de caractères par défaut. L'option de configuration server_charset va être utile dans cette situation. Si vous utilisez l'option server_charset, le plugin va définir le jeu de caractères fourni sur toutes les nouvelles connexions ouvertes.


Gestion des transactions locales

La gestion des transactions est impactée en profondeur. Une transaction est une unité logique lancée par le serveur. Cette unité peut se composer d'une ou plusieurs requêtes.

Par défaut, le plugin ne se soucie pas des transactions SQL. Il est donc possible qu'il décide de basculer de connexions dans le cadre de la répartition de charge, et ceci peut arriver au milieu d'une transaction. C'est contre la nature même d'une transaction SQL, le plugin n'est donc, par défaut, pas au courant des transactions.

Toute type de balance de charge MySQL peut être touché entre le début et la fin d'une transaction. Ce peut être de façon explicitie en monitorant les appels API ou en utilisant des astuces SQL. L'API de monitorage nécessite PHP 5.4.0 ou supérieur. Le plugin, tout comme n'importe quel répartiteur de charge MySQL, ne peut pas détecter les limites d'une transaction en se basant sur le protocole client serveur de MySQL. Aussi, une transparence totale d'une transaction avec un répartiteur de charge n'est pas possible. L'option la moins intrusive est l'API de monitorage, qui nécessite très peu de modifications de l'application.

Vous trouverez des exemples d'utilisation d'astuces SQL ou de l'API de monitorage dans la section des exemples. Les détails de l'API de monitorage, qui rend les transactions au niveau du plugin sûres, sont décrits ci-dessous.

Depuis PHP 5.4.0, la bibliothèque mysqlnd autorise ce plugin à surcharger l'appel API C set_autocommit(), afin de détecter le statut du mode autocommit.

Les extensions PHP pour MySQL effectuent une requête (comme SET AUTOCOMMIT=0|1), ou utilisent l'appel mysqlnd set_autocommit() pour contrôler le statut de l'autocommit. Si une extension utilise set_autocommit(), le plugin sera au courant des transactions, ce n'est pas le cas si du SQL est utilisé. L'appel set_autocommit() est utilisé par mysqli_autocommit() et PDO::setAttribute(PDO::ATTR_AUTOCOMMIT).

L'option de configuration du plugin trx_stickiness=master peut être utilisée pour rendre le plugin sensible aux transactions. Grâce à ça, le plugin arrête la répartition de charge si l'autocommit est désactivé, et la réactive dans le cas contraire.

Une application qui ne veut pas utiliser les astuces SQL pour les transactions mais souhaite utiliser l'API de monitorage pour éviter les modifications applicatifs doit s'assurer que la configuration autocommit est bien modifiée que via les appels API listés.

La détection des limites d'une transaction en se basant que l'API a été améliorée avec PHP 5.5.0 et PECL/mysqlnd_ms 1.5.0 pour couvrir non seulement les appels à mysqli_autocommit() mais aussi à mysqli_begin(), mysqli_commit() et mysqli_rollback().


Gestion des erreurs

Les applications utilisant PECL/mysqlnd_ms doivent gérer proprement les erreurs pouvant survenir de tous les appels API utilisateur. En raison du fait que le plugin modifie la sémantique d'un gestionnaire de connexion, les appels API peuvent retourner des erreurs inattendues. Si vous utilisez le plugin, un gestionnaire de connexion ne représente plus une connexion réseau individuelle mais un groupe de connexions. Un code erreur et un message d'erreur peuvent être définis sur le gestionnaire de connexion, que l'erreur survienne sur n'importe quelle connexion réseau du groupe.

Si vous utilisez les connexions paresseuses, (ce qui est le comportement par défaut), les connexions ne sont pas ouvertes tant qu'elle n'est pas nécessaire pour l'exécution d'une requête. Toutefois, il peut survenir qu'un appel API pour l'exécution d'une requête retourne une erreur de connexion. Dans l'exemple suivant, une erreur est provoquée lorsque l'on tente d'exécuter une requête sur un esclave. L'ouverture de la connexion esclave échoue car le fichier de configuration du plugin liste un nom d'hôte invalide pour l'esclave.

Exemple #1 On provoque une erreur de connexion

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "invalid_host_name",
            }
        },
        "lazy_connections": 1
    }
}

L'activation explicite des connexions paresseuses est effectuée ici que dans un but de démonstration.

Exemple #2 Erreur de connexion sur l'exécution d'une requête

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Bien sûr, votre gestion des erreurs est bien meilleure... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* Connexion 1, la connexion lie la variable SQL ; ce n'est pas un SELECT, la requête sera donc exécuté sur le maître */
if (!$mysqli->query("SET @myrole='master'")) {
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connexion 2, exécution sur l'esclave car SELECT provoque une erreur de connexion */
if (!($res = $mysqli->query("SELECT @myrole AS _role"))) {
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
 $row = $res->fetch_assoc();
 $res->close();
 printf("@myrole = '%s'\n", $row['_role']);
}
$mysqli->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Warning:  mysqli::query(): php_network_getaddresses: getaddrinfo failed: Name or service not known in %s on line %d
PHP Warning:  mysqli::query(): [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (trying to connect via tcp://invalid_host_name:3306) in %s on line %d
[2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

Les applications doivent être capables de gérer les erreurs de connexions. au moyen d'un gestionnaire d'erreurs correct.

Suivant le cas rencontré, les applications peuvent vouloir gérer les erreurs de connexions différemment des autres erreurs. Typiquement, les erreurs de connexions sont 2002 (CR_CONNECTION_ERROR) - Can't connect to local MySQL server through socket '%s' (%d), 2003 (CR_CONN_HOST_ERROR) - Can't connect to MySQL server on '%s' (%d) et 2005 (CR_UNKNOWN_HOST) - Unknown MySQL server host '%s' (%d). Par exemple, l'application doit tester les codes erreurs et manuellement exécuter une fonction appropriée. La philosophie du plugin n'est pas d'offrir de fonction adéquate lors d'un échec du maître, car ces échecs ne sont pas des opérations transparentes.

Exemple #3 On provoque une erreur de connexion

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "invalid_host_name"
            },
            "slave_1": {
                "host": "192.168.78.136"
            }
        },
        "lazy_connections": 1,
        "filters": {
            "roundrobin": [

            ]
        }
    }
}

L'activation explicite des connexions paresseuses est effectuée ici uniquement dans un but démonstratif. Notez que la balance de charge round robin est utilisée en lieu et place de la méthode par défaut random once

Exemple #4 Échec les plus courants

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Évidemment, votre gestionnaire d'erreur est bien meilleur... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* Connexion 1, la connexion lie la variable SQL user ; pas de SELECT, la requête peut se faire sur le maître */
if (!$mysqli->query("SET @myrole='master'")) {
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connexion 2, d'abord, sur l'esclave */
$res = $mysqli->query("SELECT VERSION() AS _version");
/* Échec manuel */
if (2002 == $mysqli->errno || 2003 == $mysqli->errno || 2004 == $mysqli->errno) {
  /* Connexion 3, la première connexion à l'esclave échoue, tentative du prochain esclave */
  $res = $mysqli->query("SELECT VERSION() AS _version");
}

if (!$res) {
  printf("ERROR, [%d] '%s'\n", $mysqli->errno, $mysqli->error);
} else {
 /* Les messages d'erreur sont récupérés de la connexion 3, et donc, aucune erreur */
 printf("SUCCESS, [%d] '%s'\n", $mysqli->errno, $mysqli->error);
 $row = $res->fetch_assoc();
 $res->close();
 printf("version = %s\n", $row['_version']);
}
$mysqli->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

[1045] Access denied for user 'username'@'localhost' (using password: YES)
PHP Warning:  mysqli::query(): php_network_getaddresses: getaddrinfo failed: Name or service not known in %s on line %d
PHP Warning:  mysqli::query(): [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (trying to connect via tcp://invalid_host_name:3306) in %s on line %d
SUCCESS, [0] ''
version = 5.6.2-m5-log

Dans quelques cas, il n'est pas possible facilement de récupérer toutes les erreurs qui surviennent sur toutes les connexions réseaux via le gestionnaire de connexions. Supposons qu'un groupe de connexions contient 3 connexions ; une vers le maître et deux autres vers des esclaves. L'application modifie la base de données courante en utilisant l'appel API mysqli_select_db(), qui appelle la fonction de la bibliothèque mysqlnd pour modifier le schéma. mysqlnd_ms surveille la fonction et tente de changer la base de données courante sur toutes les connexions afin d'harmoniser leurs statuts. Supposons que le maître arrive à changer la base de données, mais que les esclaves échouent. Lors de la première erreur depuis le premier esclave, le plugin définira une erreur appropriée sur le gestionnaire de connexions. La même chose est effectuée lorsque le second esclave échoue. Le message d'erreur depuis le premier esclave est alors perdu.

Un tel cas peut être débogué soit en vérifiant les erreurs de type E_WARNING (voir ci-dessus), ou soit, s'il n'y a pas d'autres options, en investiguant les traces et l'historique de déboguage mysqlnd_ms.


Les erreurs passagères

Quelques clusters de bases de données utilisent les erreurs passagères. Une erreur passagère est une erreur temporaire qui normalement doit disparaître rapidement. Par définition, il est sécurisé pour un client d'ignorer une erreur passagère et de re-tenter l'opération en échec sur le même serveur de base de données. La nouvelle tentative n'a aucun effet secondaire. Les clients ne sont pas obligés de stopper leurs travaux ou de basculer sur un autre serveur de base de données immédiatement. Ils doivent plutôt entrer dans une boucle de tentatives pour attendre que l'erreur disparaisse avant d'abandonner le serveur de base de données au profit d'un autre. Les erreurs passagères peuvent être observées, par exemple, lors de l'utilisation d'un cluster MySQL. Mais elles ne sont pas liées à une solution de clusters spécifique.

PECL/mysqlnd_ms peut lancer une boucle de tentatives automatiquement dans le cas d'erreurs passagères. Ce mécanisme permet de rendre encore plus transparent la distribution, et ainsi, rend simple la migration d'une application fonctionnant sur un seul serveur de base de données sur un cluster de serveurs de bases de données sans avoir à changer le source de l'application.

La boucle de tentatives automatique va répéter l'opération demandée autant de fois que le nombre configuré, et effectuera une pause entre les tentatives pendant une durée configurée. Si l'erreur disparaît pendant la boucle, l'application ne la verra jamais. Sinon, l'erreur sera envoyée à l'application afin qu'elle la gère.

Dans l'exemple ci-dessous, une erreur concernant une clé dupliquée est provoquée pour que le plugin entre dans un cycle de deux nouvelles tentatives avant de passer l'erreur à l'application. Entre les deux tentatives, le plugin va attendre 100 millisecondes.

Exemple #1 Provoque une erreur passagère

mysqlnd_ms.enable=1
mysqlnd_ms.collect_statistics=1
{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
       },
       "transient_error": {
          "mysql_error_codes": [
            1062
          ],
          "max_retries": 2,
          "usleep_retry": 100
       }
    }
}

Exemple #2 Boucle de tentative pour une erreur passagère

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Bien évidemment, votre gestionnaire d'erreurs est bien meilleur... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT PRIMARY KEY)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1))")) {
  printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* La boucle de tentatives est totalement transparente.
   La vérification des statistiques est la seule façon de
   voir les tentatives implicites */
$stats = mysqlnd_ms_get_stats();
printf("Tentatives sur l'erreur passagère avant de lancer l'erreur : %d\n", $stats['transient_error_retries']);

/* Provoque une erreur concernant une clé dupliquée pour voir les statistiques changer */
if (!$mysqli->query("INSERT INTO test(id) VALUES (1))")) {
  printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

$stats = mysqlnd_ms_get_stats();
printf("Tentatives sur l'erreur passagère après le lancement de l'erreur : %d\n", $stats['transient_error_retries']);

$mysqli->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Tentatives sur l'erreur passagère avant de lancer l'erreur : 0
[1062] Duplicate entry '1' for key 'PRIMARY'
Tentatives sur l'erreur passagère après le lancement de l'erreur : 2

En raison du fait de l'exécution transparente d'un point de vue utilisateur de la boucle de tentatives, l'exemple vérifie les statistiques fournies par le plugin pour en savoir plus.

Comme l'exemple le montre, le plugin peut considérer toutes les erreurs comme passagères au regard de la sémantique des erreurs des serveurs de base de données. La seule erreur que le serveur MySQL considère comme temporaire est l'erreur code 1297. Lorsque vous configurez d'autres codes erreurs autre que la 1297, assurez-vous que votre configuration reflète la sémantique des codes erreurs de votre cluster.

Les appels mysqlnd C API suivants sont surveillés par le plugin pour vérifier
les erreurs passagères : query(),
change_user(), select_db(),
set_charset(), set_server_option()
prepare(), execute(),
set_autocommit(),
tx_begin(), tx_commit(),
tx_rollback(), tx_commit_or_rollback().
Les appels API utilisateur ont des noms similaires.

La durée d'attente du plugin entre plusieurs tentatives dans la boucle dépend de la fonction en question. Dans une boucle de tentative pour query(), prepare() ou execute(), la durée d'attente sera max_retries * usleep_retry millisecondes.

Cependant, les fonctions qui contrôle le statut de la connexion sont dispatchées pour toutes les connexions. La configuration de la boucle de tentative est appliquée à chaque connexion sur laquelle la commande est exécutée. Aussi, une fonction peut interrompre l'exécution du programme plus longtemps qu'une fonction qui est exécutée sur un seul serveur. Par exemple, set_autocommit() est dispatché sur l'ensemble des connexions, et peut attendre (max_retries * usleep_retry) * nombre_de_connexions_ouvertes) millisecondes. Veuillez garder cela à l'esprit lorsque vous définissez une durée élevée ainsi qu'un grand nombre de tentatives. L'utilisation de la configuration par défaut (max_retries=1, usleep_retry=100 et lazy_connections=1) est vivement conseillé, car vous n'aurez jamais de délai supérieur à 1 seconde.


Gestion des incidents (Failover)

Par défaut, la gestion des incidents de connexion est laissée à l'utilisateur. L'application est responsable de la vérification des valeurs de retour des fonctions concernant les bases de données, et doit réagir en cas de detection d'erreur. Par exemple, si le plugin reconnait une requête de type lecture-seule et l'aiguille vers un serveur esclave dont la connexion n'est pas disponible, il renverra une erreur.

Défaut : failover manuel

C'est à l'application de gérer l'erreur, et, si besoin, de re-présenter la requête afin qu'elle soit re-prise en charge par le plugin et aiguillée vers un autre serveur. Le plugin ne se charge pas de ça lui-même, car il pourrait risquer d'impacter l'état des connexions, ce qui n'est pas du tout désirable. Par exemple, l'application peut avoir envoyé une requête comportant des variables de session MySQL, celles-ci sont dépendantes de la connexion utilisée. Une telle requête ne pourrait donc être prise en charge par un mécanisme automatique implémenté dans le plugin. L'application doit donc gérer ces cas-là, et aucune gestion des incidents de connexion n'est implémentée à l'intérieur du plugin.

Un utilisateur ne changeant pas le statut d'une connexion après l'avoir ouverte peut activer la gestion des incidents. Notez que la logique de failover automatique n'est pas utilisée pour les connexions déjà ouvertes. Il n'y a aucune façon pour indiquer au plugin de tenter un failover sur une connexion qui a été déjà connectée à MySQL dans le passé.

Failover automatique

Cette gestion des incidents se configure dans le fichier de configuration du plugin au moyen de la directive failover.

Le failover automatique et silencieux peut être activé via la directive de configuration failover. Le failover automatique peut être configuré soit pour essayer exactement un maître après l'échec d'un esclave ou bien, pour parcourir tous les esclaves et tous les maîtres avant de retourner une erreur à l'utilisateur. Le nombre de tentative de connexion peut être limité et les hôtes en échec peuvent être exclus des futurs tentatives de balance de charge. Liimiter le nombre de tentatives et le fait de retenir les hôtes en échec sont considérés comme des fonctionalités expérimentales malgré le fait qu'elles sont relativement stables. Leur syntaxe et leur signification peuvent être modifiées dans les futures versions.

Notez que depuis la version 1.5.0, le failover automatique est désactivé pour la durée d'une transaction si les transactions gluantes sont actives, et que les limites de transaction ont été détectées. Le plugin ne va pas changer de connexions durant une transaction. De même, il ne va pas faire de failover automatique et silencieux. A la place, une erreur sera émise. Il est alors du ressort de l'utilisateur de gérer l'échec de la transaction. Veuillez vous raporter à la documentation de trx_stickiness sur la façon de réaliser ceci.

Un exemple d'échec manuel est fourni dans la section sur les gestionnaires d'erreurs.

Serveurs de secours

En utilisant la balance de charge pondérée, introduite en PECL/mysqlnd 1.4.0, il est possible de configurer des serveurs de secours qui sont peu utilisés lors d'opérations normales. Un server de secours qui est utilisé comme cible en failover peut se voir assigner une priorité/un poids faible par rapport aux autres serveurs. Tant que tous les serveurs sont prêts et fonctionnels, la mageur partie de la charge est assignée aux serveurs qui ont un poids élevé. Une petite partie des requêtes sera redirigée vers le système de secours qui possède un poids faible.

Lors d'un échec d'un serveur possédant une priorité élevée, vous pouvez toujours basculer vers le secours, qui s'est vu attribué une priorité de balance de charge faible en y assignant un poids faible. Le failover peut être manuel ou automatique. S'il est automatique, vous pouvez vouloir le combiner avec l'option remember_failed.

A ce moment là, il n'est pas possible d'indiquer à la balance de charge de ne rediriger aucune requête au secours. Ceci ne peut être considéré comme une limitation sachant que le poids le plus élevé pouvant être assigné à un serveur est 65535. Si l'on prend deux esclaves, dont un va servir de secours avec un poids de 1, le secours devra gérer moins de un pourcent de la charge totale.

Failover et copie primaire

Veuillez noter que si vous utilisez une copie de cluster primaire, comme une réplication MySQL, il est difficile de faire un failover de connexion dans le cas où la connexion au maître échoue. A tout moment, il n'y a qu'un seul maître dans le cluster pour un jeu de données. Le maître représent un seul point. Si il échoue, les clients n'ont plus de cible à utiliser pour effectuer les requêtes en écriture. Dans le cas où le maître tombe en panne, l'administrateur de base de données doit prendre en compte la situation et mettre à jour les configurations des clients.


Répartition de charge

Il existe quatre stratégies pour distribuer les requêtes sur les esclaves configurés :

random

Choix effectué au hasard, à chaque requête.

random once (défaut)

Choix effectué au hasard à la première requête, puis garde ce serveur pour les requêtes suivantes.

C'est le choix par défaut et le moins impactant concernant l'état des connexions.

round robin

Itère sur la liste des serveurs déclarés.

Utilisateur : via une callback

Utilisé pour implémenté une stratégie personnalisée.

L'équilibrage de charge est configuré via les fichiers de configuration au moyen des valeurs random, roundrobin, and user filters.

Les serveurs peuvent être priorisés en leur assignant un poids. Un serveur dont le poids est de 2 recevra deux fois plus de requêtes qu'un serveur dont le poids est de 1 (poids par défaut). La priorisation peut être utile en environnement hétérogène. Par exemple, vous pouvez vouloir assigner plus de requêtes à une machine puissante plutôt qu'à une autre qui l'est moins. Ou bien, vous pouvez configurer différemment des serveurs qui sont plus ou moins éloignés du client, réduisant ainsi les latences.


Séparation des lectures et écritures

Le plugin envoie les requêtes de type lecture seule sur un des esclaves de réplication configurés, et les autres requêtes sur le maitre. Les requêtes sont considérées de type lecture seule si elle commencent par SELECT, si elles comportent l'astuce SQL /*ms=slave*/ ou si un esclave a été choisi lors de la dernière requête et que l'astuce SQL /*ms=last_used*/ est employée. Dans tous les autres cas, la requête sera aiguillée vers le serveur maitre. Il est recommandé d'utiliser les constantes MYSQLND_MS_SLAVE_SWITCH, MYSQLND_MS_MASTER_SWITCH et MYSQLND_MS_LAST_USED_SWITCH au lieu de /*ms=slave*/. Reportez-vous à la liste des constantes mysqlnd_ms.

Les astuces SQL représentent des commentaires SQL spéciaux. Le plugin vérifie toutes les requêtes à la recherche de telles astuces. Les astuces SQL sont décrites dans les constantes mysqlnd_ms exportées par l'extension. Les autres organes éventuellement présents dans le mécanisme de réplication (serveur MySQL, firewalls SQL ou proxies SQL) ne sont pas affectés par les astuces SQL car ils sont sensés ignorer les commentaires SQL.

L'implémentation interne du séparateur de requêtes lecture/écriture peut être remplacée par un filtre utilisateur, voyez le filtre user.

Une implémentation personnalisée du séparateur de requêtes lecture/écriture peut demander au plugin où envoyer la requête, en appelant mysqlnd_ms_is_select().

Note:

Le séparateur de requêtes lecture/écriture interne ne gère pas les requêtes multiples qui sont vues comme une seule requête. Le séparateur va vérifier le début de la requête pour savoir vers quel serveur l'envoyer. Si, par exemple, une requête multiple commence par SELECT 1 FROM DUAL; INSERT INTO test(id) VALUES (1); ... le plugin l'enverra vers un esclave, alors que cette requête n'est pas de type lecture seule.


Les filtres

Note: Version requise

Les filtres existent depuis mysqlnd_ms version 1.1.0-beta.

Filtres. Toutes les applications PHP utilisant un type de cluster de réplication MySQL ont besoin d'abord d'identifier un groupe de serveurs dans le cluster qui pourront exécuter une requête donnée avant que la requête ne soit exécutée sur un des candidats. En d'autres termes, une liste donnée de serveurs doit être filtrée pour n'en faire sortir qu'un.

Le processus de filtrage peut inclure l'utilisation d'un ou plusieurs filtres. Les filtres peuvent être chaînés. Ils sont exécutés dans l'ordre de leurs apparitions dans le fichier de configuration du plugin.

Note: Comparaison du chainage des filtres avec les tubes (pipes)

Le concept de chaînage des filtres peut être comparé à l'utilisation des tubes des utilitaires de ligne de commande d'un shell d'un système d'exploitation : un flux entrant est passé au processus, et transféré à la sortie. Puis, la sortie est passé comme entrée à la prochaine commande qui est connectée à la précédente en utilisant un opérateur pipe.

Les filtres suivants sont disponibles

  • Filtre de balance de charge : random, roundrobin.
  • Filtre de sélection : user, user_multi, quality_of_service.

Le filtre random implémente les stratégies random et random once. Round robin peut être configuré via le filtre roundrobin. La définition d'une fonction de rappel utilisateur peut être utilisée pour la sélection des serveurs avec le filtre user.Le filtre quality_of_service trouve des noeuds capables de répondre à un certain service, par exemple, "lit tes écritures" ou encore ne pas avoir plus de X secondes de retard sur le maitre.

Les filtres peuvent accepter des paramètres pour changer leurs comportements. Le filtre random accepte un paramètre optionnel sticky. Si définit à TRUE, le filtre modifie la balance de charge de random à random once. Random sélectionne un serveur aléatoirement à chaque fois qu'une requête est exécutée. Random once sélectionne un serveur aléatoirement lors de la première requête et le ré-utilise pour toutes les autres requêtes PHP.

Une des plus grosses particularités des filtres est la possibilité de les chaîner. La puissance de ce concept n'est pas immédiatement visible car les filtres random, roundrobin et user ne sont supposés sortir pas plus d'un serveur. Si un filtre réduit la liste des candidats pour l'exécution d'une requête sur un seul serveur, il prend un sens limité en utilisant un serveur comme sortie pour les autres filtres pour une réduction future de la liste des candidats.

Un exemple d'une séquence de filtre qui va échouer:

  • Requête à exécuter : SELECT 1 FROM DUAL. Passé à tous les filtres.
  • Tous les noeuds configurés sont passés comme entrée au premier filtre. Nœuds maîtres : master_0. Nœuds esclaves : slave_0, slave_1
  • Filtre : random, argument sticky=1. Sélectionne un esclave aléatoire à utiliser pour le reste des requêtes PHP. Sortie : slave_0.
  • Sortie de slave_0 et la requête à exécuter est passée comme entrée pour le prochain filtre. Ici : roundrobin, liste de serveurs passé au filtre est : slave_0.
  • Filtre : roundrobin. La liste des serveurs consiste en un seul serveur, round robin retourne toujours le même serveur.
Si vous tentez d'utiliser de telles séquences de filtres, le plugin peut émettre une alerte comme (mysqlnd_ms) Error while creating filter '%s' . Non-multi filter '%s' already created. Stopping in %s on line %d. Par la suite, une erreur appropriée sur le gestionnaire de connexion devrait être définie.

Il existe un second type de filtre : le multi filtre. Ce type ressort zéro, un ou plusieurs serveurs. Le filtre quality_of_service en est un exemple. Si la qualité de service est réglée avec une limite de retard des esclaves et que plus d'un esclave est victime de retard dans la limite, le filtre retourne alors plus d'un noeud. Un filtre multi doit être chainé avec un autre pour réduire la liste.

Voici une séquence de filtres avec quality_of_service suivi d'un filtre d'équilibre de charge.

  • Requête à exécuter: SELECT sum(price) FROM orders WHERE order_id = 1. Passée à tous les filtres.
  • Tous les noeuds configurés sont passés en entrée du premier filtre. Noeuds maitres: master_0. Noeuds esclaves: slave_0, slave_1, slave_2, slave_3
  • Filtre: quality_of_service, règle: session_consistency ("lit tes écritures") Sortie: master_0
  • Sortie master_0 et la requête à exécuter est passée en entrée du filtre suivant, un filtre roundrobin.
  • Filtre: roundrobin. La liste des serveurs ne contient qu'un seul serveur. Round robin selectionne master_0.

Une séquence de filtres ne doit pas se terminer sur un filtre multi, sinon le plugin risque d'envoyer un avertissement du type (mysqlnd_ms) Error in configuration. Last filter is multi filter. Needs to be non-multi one. Stopping in %s on line %d. Aussi, une erreur sur la connexion risque d'arriver.

Note: Spéculation sur le futur: Filtres de réplication MySQL

Dans les futures versions, il devrait y avoir plus de filtres multi. Par exemple, il devrait exister un filtre table pour supporter le filtrage de réplication MySQL. Le filtre de réplication MySQL vous autorise de définir des règles où la base de données ou la table sera répliquée vers un noeud précis d'un cluster de réplication. Supposons que votre cluster de réplication consiste en 4 esclaves (slave_0, slave_1, slave_2, slave_3), 2 d'entre eux répliquent une base de données nommée sales (slave_0, slave_1). Si l'application requête la base de données slaves, l'hypothétique filtre table réduit la liste des serveurs possibles à slave_0, slave_1. En raison du fait que la sortie et que la liste des serveurs candidats contient plus d'un serveur, il est nécessaire et possible aux futures filtres de filtrer la liste des candidats, par exemple, en utilisant le filtre de balance de charge pour identifier un serveur pour l'exécution de la requête.


Niveaux de service et consistence

Note: Version requise

Les niveaux de service ont été ajoutés dans mysqlnd_ms version 1.2.0-alpha. mysqlnd_ms_set_qos() requiert PHP 5.4.0 ou plus récent.

Le plugin peut être utilisé avec différents types de clusters MySQL. Différents clusters vont délivrer différents niveaux de service à l'application. Les niveaux de services peuvent être classés par niveau de concistence des données qu'ils proposent. Le plugin reconnait:

  • eventual consistency
  • session consistency
  • strong consistency

En fonction de la manière dont le cluster est utilisé, il est possible d'avoir des niveaux de service plus hauts que celui par défaut. Par exemple, une lecture depuis un esclave MySQL asynchrone est éventuellement consistente. Ainsi, on peut dire que le niveau de consistence d'un cluster de réplication MySQL est éventuelle, cependant, si le maitre est seulement utilisé pour lire et écrire durant une session, on a une consistence de session ("lit tes écritures"). PECL mysqlnd 1.2.0 abstrait les détails concernant le choix d'un noeud approprié de la couche de service sur-jascente de l'utilisateur.

Les niveaux de service peuvent être ajoutés via le filtre qualify-of-service dans le fichier de configuration des plugins et pendant l'exécution au moyen de la fonction mysqlnd_ms_set_qos().

Les différents niveaux de service sont définis comme suit.

La consistence éventuelle est le niveau de service par défaut proposé par un cluster asynchrone comme la réplication MySQL classique. Une opération de lecture sur un noeud peut éventuellement retourner une données à jour, ou pas. La consistence est éventuelle.

La consistence de session est proposée lorsque le client peut toujours lire ses écritures. Un cluster de réplication MySQL asynchrone peut fournir la consistence de session si les clients utilisent toujours le maitre après la première écriture ou n'interrogent jamais un esclave qui n'a pas encore répliqué la donnée écrite.

Le plugin voit la consistence forte comme le fait que tout client puisse toujours voir des données écrites des autres clients. C'est le cas par défaut avec le cluster MySQL ou tout autre type de cluster proposant une distribution synchrone des données.

Paramètres des niveaux de service

Les consistences éventuelle et de session acceptent des paramètres.

La consistence éventuelle est le service proposé par la réplication classique MySQL. Par défaut, tous les noeuds peuvent être éligibles à la lecture. Un paramètre optionnel age peut être utilisé pour filtrer les noeuds qui ont un certain retard en secondes sur le maitre. Le plugin utilise SHOW SLAVE STATUS pour mesurer le retard. Voyez le manuel de référence de MySQL pour plus d'informations sur la précision et la fiabilité de la commande SHOW SLAVE STATUS.

La consistence de session ("lit tes écritures") accepte un paramètre optionnel GTID permettant d'autoriser la lecture pas seulement sur le maitre, mais aussi sur un esclave qui a répliqué la donnée, par son identifiant de transaction. Ainsi, dans la réplication asynchrone, les lectures peuvent être équilibrées sur des esclaves tout en assurant une consistence au niveau session.

Vous devez utiliser pour cela L'injection d'identifiant de transaction coté client.

Avantages de la nouvelle approche

La nouvelle approche dépasse l'utilisation d'astuces SQL et l'option master_on_write sur certains axes. Si une application qui tourne avec une réplication MySQL asynchrone ne peut accepter de données non fraiches sur certaines lectures, il est plus simple de laisser le plugin choisir le noeud approprié que de préfixer toutes ses requêtes d'astuces SQL pour forcer l'utilisation du maitre. Aussi, le plugin peut selectionner des esclaves dans ce cas.

L'option master_on_write fait en sorte que le plugin choisisse le maitre après la première écriture (consistence de session). Dans certains cas, la consistence de session pourrait n'être utile que pour certaines lectures, et non toute la session courante. De ce fait, master_on_write pourrait engendrer plus de lectures sur le maitre que nécessaire. Dans de tels cas, il est mieux de vouloir un niveau de consistence plus haut que celui par défaut, juste pour certaines lectures le nécessitant. Une fois les lectures passées, le niveau de consistence peut retomber à la normale. Changer de niveau de service n'est possible qu'avec mysqlnd_ms_set_qos().

Considerations de performance

Une réplication MySQL ne peut indiquer aux clients quels esclaves sont capables de délivrer tel ou tel niveau de consistence. Ainsi, dans certains cas, les clients doivent requêter les esclaves pour connaitre leur statut. PECL mysqlnd_ms exécute de manière transparente les requêtes necéssaires, mais cette opération est lourde, elle est exécutée si la consistence éventuelle est combinée avec une limite d'âge (retard de l'esclave), ou si la consistence de session est combinée avec un identifiant de transaction.

Si la concistence éventuelle est combinée avec une limite d'âge, le plugin selectionne le noeud pour chaque requête. Si c'est une écriture, tous les maitres sont candidats, les esclaves ne sont pas vérifiés. Si c'est une lecture, le plugin exécute SHOW SLAVE STATUS sur tous les esclaves, les candidats sont ceux qui répondent Slave_IO_Running=Yes, Slave_SQL_Running=Yes et qui ont Seconds_Behind_Master inférieur ou égal à l'âge maximum demandé. Dans le cas d'une erreur SQL, le plugin envoie un message d'erreur mais ne considère pas la connexion comme mauvaise, l'erreur ne permet pas au plugin d'écarter tel ou tel noeud.

Si la consistence de session est combinée à un identifiant de transaction global, le plugin exécute la requête SQL avec fetch_last_gtid équivalant à la section global_transaction_id_injection du fichier de configuration du plugin.

En version 1.2.0, aucune optimisation supplémentaire n'est effectuée concernant les requêtes en arrière plan. Les versions futures pourraient embarquer de telles optimisation, en fonction des demandes utilisateur.

Si aucun paramètre ou option n'est précisé, aucun SQL n'est nécessaire. Dans ce cas, le plugin considère tous les noeuds comme suit.

  • Consistence éventuelle, pas d'option passée: tous les maitres, tous les esclaves
  • Consistence de session, pas d'options passée: tous les maitres
  • Consistence forte (pas d'option possible): tous les maitres

Etranglement

La qualité d'un filtre de service peut être combinée avec les identifiants globaux de transaction pour limiter les clients. L'étranglement va réduire la charge en écriture sur le maître en ralentissant les clients. Si une consistence de session est demandée, et que les identifiants globaux de session sont utilisés pour vérifier le statut d'un esclave, la vérification peut être effectuée de deux façons différentes. Par défaut, un esclave est vérifiée et écartée immédiatement s'il ne correspond pas aux critères d'une consistence de session. Alternativement, le plugin peut attendre pour attrapper un esclave pour le maître qu'une consistence de session soit possible. Pour activer l'étranglement, vous devez définir l'option de configuration wait_for_gtid_timeout.


Identifiants de transaction

Note: Version requise

L'injection d'identifiant de transaction coté client existe depuis mysqlnd_ms version 1.2.0-alpha. Les identifiants de transaction sont détectés en scrutant les appels API. C'est possible depuis PHP 5.4.0. Voyez aussi la gestion des transactions.

Depuis MySQL 5.6.5-m8, le serveur MySQL fournit des identifiants de transaction globaux. Cette nouvelle fonctionnalité est supportée par PECL/mysqlnd_ms 1.3.0-alpha et suivant. Aucune configuration n'est requise si vous choisissez d'utiliser la fonctionnalité interne du serveur.

Veuillez noter que toutes les versions de production de MySQL 5.6 ne fournissent pas de clients avec suffisamment d'informations pour utiliser les GTIDs pour renforcer la consistence de sessions. Dans ce cas, le plugin choisira seulement le maître.

Idées et émulation côté client

PECL/mysqlnd_ms peut effectuer de l'injection d'identifiant de transaction coté client, de manière transparente. Dans sa forme la plus basique, un identifiant de transaction est un compteur incrémenté à chaque transaction exécutée sur le maitre. Le compteur est sauvé dans une table sur le maitre. Les esclaves répliquent cette table.

Dans le cas d'un problème sur le maitre, un administrateur peut identifier facilement l'esclave le plus récent pour le passer en maitre. L'esclave le plus récent possède l'identifiant de transaction le plus élevé.

Les développeurs coté application peuvent demander au plugin l'identifiant de transaction (GTID) pour leur dernière opération d'écriture. Il peut alors être passé comme paramètre au filtre QoS dans le cadre de la consistence de session ("lit tes écritures"). Le filtre s'assure que toutes les lectures sont dirigées vers un hôte (maitre ou esclave) ayant répliqué la transaction référencée par le GTID.

Lorsque l'injection a été effectuée

Le plugin maintient la table GTID sur le maitre, de manière transparente. En mode autocommit, le plugin injecte un UPDATE avant d'exécuter les requêtes de l'utilisateur, pour chaque utilisation du maitre. EN mode transactionnel manuel, l'injection est effectuée avant l'appel à commit(). L'option de configuration report_error de la section GTID permet de contrôler si une transaction échouée doit annuler l'opération ou être ignorée silencieusement (cas par défaut).

Veuillez noter les versions de PHP requises pour la surveillance des transactions ainsi que leurs limites.

Limites

Les problèmes éventuels de l'injection d'identifiant de transaction ont des limites qui ne sont pas propres à PECL/mysqlnd_ms.

  • Les tables d'identifiants de transaction globale doivent être déployées sur tous les maîtres et les réplications.
  • Le GTID peut avoir des trous, seuls les clients PHP utilisant le plugin vont maintenir la table, pas les autres clients.
  • La détection des transactions n'est basée que sur les appels à l'API.
  • La détection des transactions coté client ne prend pas en compte les commits implicites. Certaines requêtes de MySQL causent un commit implicite.

Utilisation côté serveur de l'identifiant de transaction globale

Depuis PECL/mysqlnd_ms 1.3.0-alpha, les identifiants de transaction globale apportés par MySQL 5.6.5-m8 ou supérieure sont supportés. L'utilisation de cette fonctionnalité serveur supprime toutes les limitations vues précédemment. Reportez-vous au manuel de référence MySQL pour les limitations ainsi que les préconditions concernant l'utilisation des identifiants de transaction globale internes.

Choisir entre l'utilisation de l'émulation côté client ou la fonctionnalité interne du serveur est une question qui n'est pas en relation directe avec le plugin, aussi, la discussion restera superficielle. Il n'est pas actuellement prévu de supprimer l'émulation côté client et vous pouvez continuer de l'utiliser, si la solution interne du serveur n'est pas une option pour vous. Ce peut être le cas en environnement hétérogène comprenant de vieux serveurs MySQL ou, si une des limitations des solutions côté serveur n'est pas acceptable.

D'un point de vue applicatif, il y a une énorme différent dans l'utilisation de l'une ou l'autre des approches. Les propriétés suivantes diffèrent :

  • L'émulation côté client, comme vu dans le manuel, fournie une solution simple pour comparer un numéro de séquence pour les transactions globales. Les multi-maîtres ne sont pas traités pour conserver les exemples du manuel simples. La fonctionnalité côté serveur utilise une combinaison d'un identifiant de serveur et d'un numéro de séquence comme identifiant de transaction globale. La comparaison ne peut utiliser l'algèbre. A la place de cela, une fonction SQL doit être utilisé. Reportez-vous au manuel de référence MySQL pour plus de détails. Les fonctionnalités internes côté serveur de MySQL 5.6 ne peuvent être utilisées pour assurer la consistence de sessions dans toutes les circonstances. Ne les utilisez donc pas dans le cas de la qualité de service. Voici un exemple simple montrant des résultats non fiables. Il y a plusieurs cas non pris en charge en raison des fonctionnalités limitées proposées par le serveur. Actuellement, les clients peuvent demander au service maître de réplication MySQL la liste de toutes les IDs de transactions globaux exécutées. Si un esclave est configuré pour ne pas répliquer toutes les transactions, par exemple, en raison de la définition de certains filtres, alors l'esclave ne montrera jamais le même jeu d'IDs de transactions globaux exécutées. Malgré le fait que l'esclave peut avoir répliqué les écritures des clients, et qu'il peut être candidat pour une lecture consistente, il ne sera jamais retenu par le plugin. Pendant l'écriture, le plugin apprend du maître que l'historique des transactions terminées des serveurs est GTID=1..3. Il n'y a aucun moyen pour le plugin de demander le GTID de la transaction d'écriture, soit GTID=3. Imaginez qu'un esclave ne réplique pas les transactions GTID=1..2 mais seulement GTID=3 en raison d'une fonctionnalité de la réplication. Alors, l'historique de transaction de l'esclave sera GTID=3. Cependant, le plugin tente de trouver un noeud qui a un historique de transactions de GITD=1...3. Malgré le fait que l'esclave a répliqué les écritures des clients et que la consistence de session a été réalisée pendant la lecture depuis l'esclave, il ne sera pas considéré par le plugin. Ceci n'est pas la faute de l'implémentation du plugin, mais d'une fonctionnalité côté serveur. Notez que cet exemple est trivial, et ne permet que d'illustrer le propos, mais il y a d'autres cas. En résumé, vous ne devriez pas utiliser les GTIDs internes à MySQL 5.6 pour renforcer la consistence de session. Tôt ou tard, la balance de charge arrêtera de fonctionner normalement, et le plugin va diriger toutes les requêtes de consistence de sessions vers le maître.
  • Les statistiques du plugin concernant l'identifiant de transaction globale ne sont disponibles qu'avec l'émulation côté client car elles surveillent l'émulation.

Note: Les identifiants de transaction globale dans les systèmes distribués

Les identifiants de transaction globale peuvent servir de différentes façon dans un contexte de systèmes distribués, comme un cluster de base de données. Les identifiants de transaction globale peuvent être utilisés, par exemple, comme identification système des transactions, comme tri global des transaction, comme mécanisme permettant de savoir si le serveur est toujours disponible, et pour vérifier le statut de réplication pour les serveurs de réplication. PECL/mysqlnd_ms, un driver côté client basé sur un sofware, ne focalise sur l'utilisation des GTIDs pour les tâches qui peuvent être gérées par le client, comme la vérification du statut de réplication des serveurs de réplication pour les configurations asynchrones de réplication.


Intégration du cache

Note: Version requise

Cette fonctionnalité requière l'utilisation de PECL/mysqlnd_ms 1.3.0-beta ou supérieure et de PECL/mysqlnd_qc 1.1.0-alpha ou supérieure. PECL/mysqlnd_ms doit être compilé pour supporter cette fonctionnalité. PHP 5.4.0 ou supérieure est requise.

Note: Configuration : ordre de chargement de l'extension

PECL/mysqlnd_ms doit être chargé avant PECL/mysqlnd_qc, lors de l'utilisation des extensions partagées.

Note: Stabilité des fonctionalités

L'intégration du cache est en qualité béta.

Note: Clusters MySQL appropriés

Cette fonctionnalité est prévue pour une utilisation avec un serveur de réplication MySQL (copie primaire). Actuellement, aucun autre type de cluster MySQL n'est supporté. Les utilisateurs d'un tel cluster doivent contrôler PECL/mysqlnd_qc manuellement s'ils sont intéressés dans la mise en cache de requête côté client.

Le support des clusters de réplication MySQL (copie primaire asynchrone) est le principal but de PECL/mysqlnd_ms. Les esclaves d'un cluster de réplication MySQL peuvent ou non refléter les dernières mises à jour depuis le maître. Les esclaves sont asynchrones, et peuvent lagger derrière le maître. Une lecture depuis un esclave a une consistence éventuelle depuis une perspective cluster.

Le même niveau de consistence est offert par un cache local en utilisant une stratégie d'invalidation time-to-live (TTL). Des données courantes ou des données non mises à jour peuvent être servies. Eventuellement, les données recherchées depuis le cache peuvent ne pas être disponibles et la source du cache peut devoir être accédé.

En fournissant à la fois un esclage de réplication MySQL (secondaire asynchrone) et un cache local TTL, un niveau de service identique est fourni, et il est possible de remplacer de façon transparente un accès à une base de données distante par un accès au cache local afin d'améliorer les possibilités.

Depuis PECL/mysqlnd_ms 1.3.0-beta, le plugin est capable de contrôler de façon transparente PECL/mysqlnd_ms 1.1.0-alpha ou supérieure pour mettre en cache une requête en lecture seule si c'est explicitement autorisé via la configuration d'une qualité de service appropriée en utilisant la fonction mysqlnd_ms_set_qos(). Reportez-vous à la section Démarrage rapide pour un exemple de code. Les deux plugins doivent être installés, et PECL/mysqlnd_ms doit avoir été compilé pour supporter la fonctionnalité de cache, et enfin, PHP 5.4.0 ou supérieure doit être utilisé.

Les applications ont un contrôle total de l'utilisation du cache et peuvent demander la mise à jour des données à n'importe quel moment, si besoin. L'utilisation du cache peut être activée et désactivé lors de l'exécution du script. Le cache sera utilisé si la fonction mysqlnd_ms_set_qos() définit la qualité de service à une consistence éventuelle, et active l'utilisation du cache. L'utilisation du cache est désactivé en demandant un niveau de consistence supérieur, par exemple, une consistence de session (lecture de vos écritures). Une fois que la qualité de service revient à une consistence éventuelle, le cache peut de nouveau être activé.

Si la mise en cache est active pour une requête en lecture seule, PECL/mysqlnd_ms peut injecter une astuce SQL pour contrôler la mise en cache via PECL/mysqlnd_qc. Cela va modifier la requête SQL récupérée depuis l'application. Les processeurs SQL suivants sont supposés ignorer les astuces SQL. Une astuce SQL est un commentaire SQL. Les commentaires ne doivent pas être ignorés, par exemple, par le serveur de base de données.

Le TTL d'une entrée du cache est calculé pour chaque requête. Les applications définissent l'âge maximal des données qu'elles souhaitent récupérer en utilisant la fonction mysqlnd_ms_set_qos(). L'âge définit une limite supérieure approximative en secondes des données pouvant être retournées depuis le maître en tenant compte du lag.

La logique suivante est utilisée pour calculer le TTL courant si le cache est actif. La logique prend en compte le lag estimé de l'esclave pour choisir un TTL. Si, par exemple, il y a deux esclaves qui laguent de 5 et 10 secondes et que l'âge maximal autorisé est de 60 secondes, le TTL sera défini à 50 secondes. Notez également que la définission de l'âge ne dépassera pas le calcul estimé.

  • Vérifie si la requête est une requête en lecture seule. Si ce n'est pas le cas, aucune mise en cache ne sera demandée.
  • Si le cache est actif, vérifie si le lag de tous les serveurs esclaves configurés. Etablissement des connexions aux esclaves si aucune n'existe et que les connexions paresseuses sont utilisées.
  • Envoi SHOW SLAVE STATUS à tous les esclaves. N'attends pas que le premier esclave réponde avant d'envoyer la demande au second. Les clients attendent souvent longtemps, aussi, tout est envoyé en même temps et l'analyse se fera dans un second temps.
  • On parcourt tous les esclaves. Pour chaque esclave, on attend sa réponse. On ne commence pas l'analyse du prochain esclave avant que le courant n'ait répondu. On vérifie Slave_IO_Running=Yes et Slave_SQL_Running=Yes. Si les deux conditions sont vraies, on récupère la valeur de Seconds_Behind_Master. Dans le cas d'une erreur, ou d'un échec sur l'une des conditions, on définit une erreur sur la connexion de l'esclave. Cela permet d'ignorer ces connexions pour le reste du filtrage de connexion.
  • Recherche de la valeur maximale de Seconds_Behind_Master depuis tous les esclaves qui ont passés les conditions précédentes. On soustrait la valeur depuis l'âge maximal fourni par l'utilisateur avec la fonction mysqlnd_ms_set_qos(). Le reste de cette soustraction sera utilisé comme TTL.
  • Ce filtrage va trier tous les esclaves. Ainsi, l'âge maximal est utilisé comme TTL, car le lag maximal trouvé vaut zéro. Il est tout à fait valide de trier tous les esclaves. Le filtre de balance de charge interne prendra le maître.
  • Injection des astuces SQL appropriées pour activer la mise en cache par PECL/mysqlnd_qc.
  • Traitement avec la connexion filtrée, i.e. applique les règles de balance de charge pour récupérer un esclave.
  • PECL/mysqlnd_qc est chargé après PECL/mysqlnd_ms par PHP. Aussi, il verra toutes les modifications de requêtes de PECL/mysqlnd_ms et mettra en cache la requête s'il en a reçu l'instruction.

L'algorithme peut paraître impressionnant. SHOW SLAVE STATUS est une opération très rapide.En considérant un nombre de requêtes suffisants et les accès au cache par seconde, le coût de la vérification du lag des esclaves est largement inférieur au coût d'une décision du cache.

Les suggestions sur un meilleur algorithme sont bien entendues les bienvenues.


Clusters supportés

Toute application utilisant n'importe quel cluster MySQL est soumises aux mêmes tâches:

  • Identifier les noeuds capables d'exécuter une requête avec un niveau de service requis.
  • Equilibrer et distribuer la requête parmi les candidats.
  • Gestion automatique des pannes parmi les candidats, si nécessaire.

Le plugin est optimisé pour gérer ces tâches dans un contexte de réplication MySQL asynchrone classique, à savoir un seul maitre et plusieurs esclaves (copie primaire). Dans ce cas, toutes les tâches listées plus haut doivent être gérées coté client.

D'autres types de clusters MySQL ont moins d'implication coté client. Par exemple, si tous les noeuds du cluster peuvent répondre aux lectures et aux écritures, aucune séparation ne sera nécessaire (plusieurs maîtres, mise à jour total). Si tous les noeuds sont synchrones, ils sont tous éligibles avec le même poids, ce qui simplifie la tâche de selection. Dans de tels cas, le plugin doit être reconfiguré pour désactiver certaines logiques, comme la séparation des lectures/écritures.

Note: But de la documentation

La documentation décrit l'utilisation du plugin dans un cas classique de réplication asynchrone (copie primaire). C'est le cas de base, qui a inspiré l'écriture du plugin. D'autres types de clusters sont décrits brièvement ci-dessous, nous continuons à travailler dessus actuellement.

Copie primaire (Réplication MySQL)

C'est le but primaire de ce plugin. Suivez les astuces fournies dans les descriptions de chacune des fonctionalités.

  • Configure un maître et un ou plusieurs esclaves. Les détails de la configuration du serveur sont fournis dans la section sur l'installation.
  • Utilisez la politique de balance de charge aléatoire avec le flag sticky.
  • Si vous ne prévoyez pas d'utiliser les appels API du niveau de service, ajoutez le flag d'écriture sur le maître.
  • Soyez prudent sur les propriétés du failover automatique avant d'ajouter la directive failover.
  • Vous devriez considérer l'utilisation du flag trx_stickiness pour exécuter les transactions uniquement sur le primaire. Veuillez lire attentivement son mode de fonctionnement avant de l'utiliser.

Exemple #1 Activation du plugin (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini

Exemple #2 Configuration simple du plugin (mysqlnd_ms_plugin.ini) pour une réplication MySQL

{
  "myapp": {
    "master": {
      "master_1": {
        "host": "localhost",
        "socket": "\/tmp\/mysql57.sock"
      }
    },
    "slave": {
      "slave_0": {
        "host": "127.0.0.1",
        "port": 3308
      },
      "slave_1": {
        "host": "192.168.2.28",
        "port": 3306
      }
    },
    "filters": {
      "random": {
        "sticky": "1"
      }
    }
  }
}

Copie primaire avec plusieurs primaires (MMM - MySQL Multi Master)

La réplication MySQL vous permet de créer des topologies de cluster avec plusieurs maîtres (primaires). Les conflits d'écriture ne sont pas gérées par le système de réplication. Aussi, les données doivent être partitionnées manuellement et les clients doivent être redirigés suivant les règles de partitionnement. La configuration recommandée est identique à la configuration de fragmentation ci-dessous.

Fragmentation manuelle, combinée éventuellement avec une copie primaire et plusieurs primaires

Utilisez les astuces SQL et le filtre de groupe du noeud pour les clusters qui utilisent le partitionnement des données, mais laissez au client la redirection de la requête. L'exemple de configuration montre une configuration de plusieurs maîtres avec deux fragmentations.

Exemple #3 Plusieurs primaires - plusieurs maîtres (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini
mysqlnd_ms.multi_master=1

Exemple #4 Copie primaire avec plusieurs primaires et le partitionnement

{
  "myapp": {
    "master": {
      "master_1": {
        "host": "localhost",
        "socket": "\/tmp\/mysql57.sock"
      }
      "master_2": {
        "host": "192.168.2.27",
        "socket": "3306"
      }
    },
    "slave": {
      "slave_1": {
        "host": "127.0.0.1",
        "port": 3308
      },
      "slave_2": {
        "host": "192.168.2.28",
        "port": 3306
      }
    },
    "filters": {
      "node_groups": {
        "Partition_A" : {
          "master": ["master_1"],
          "slave": ["slave_1"]
        },
        "Partition_B" : {
          "master": ["master_2"],
          "slave": ["slave_2"]
        }
      },
      "roundrobin": []
    }
  }
}

Le plugin peut également être utilisé avec une collection mouvante de morceaux indépendants. Pour un tel cluster, configurez les maîtres uniquement et désactivez la séparation des lectures/écritures. Les noeuds d'un tel cluster sont appelés maîtres dans la configuration du plugin vu qu'ils acceptent à la fois les lectures et les écritures pour leur partition.

Using synchronous update everywhere clusters such as MySQL Cluster

MySQL Cluster est une solution de cluster synchrone. Tous les noeuds acceptent des lectures et des écritures. D'un point de vue du plugin, tous les noeuds devraient alors être considérés comme des maitres.

Utilisez les fonctionnalités d'équilibre de charge et de reprise sur panne seulement.

  • Désactivez le support de la séparation des lectures et écritures.
  • Ne configurez que les maitres.
  • Considerant la strategy "random once" (cas par défaut), seuls les maitres sont configurés et aucune astuce SQL n'est requise, aucune bascule de connexion n'arrivera durant la requête web. Ainsi, aucune directive particulière n'est requise en ce qui concerne les transactions, le plugin selectionnera un maitre au début du script PHP et l'utilisera jusqu'à la fin.
  • Ne précisez pas la qualité de service. Tous les noeuds possèdent toutes les données. Ceci vous fournit la consistence maximale (consistence forte).
  • N'activez pas l'injection d'identifiant de transaction coté client. Ceci ne sera d'aucune aide.

Désactiver la répartition des lectures/écritures.

  • Mettez mysqlnd_ms.disable_rw_split=1
  • N'utilisez pas d'astuces SQL pour forcer l'utilisation d'un noeud.

Ne configurez que les maitres.

  • Mettez mysqlnd_ms.multi_master=1.
  • Ne configurez aucun esclave.
  • Mettez failover=loop_before_master dans le fichier de configuration du plugin, pour éviter les messages d'avertissement concernant une liste d'esclave vide et pour permettre à la logique de boucle du failover de parcourir tous les maîtres configurés avant d'émettre une erreur. Notez les alertes fournies à propos du failover automatique dans les précédentes sections.

Exemple #5 Plusieurs primaires - plusieurs maîtres (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini
mysqlnd_ms.multi_master=1
mysqlnd_ms.disable_rw_split=1

Exemple #6 Mise à jour synchrone dans n'importe quel cluster

"myapp": {
    "master": {
      "master_1": {
        "host": "localhost",
        "socket": "\/tmp\/mysql57.sock"
      },
      "master_2": {
        "host": "192.168.2.28",
        "port": 3306
      }
    },
    "slave": {
    },
    "filters": {
      "roundrobin": {
      }
    },
    "failover": {
      "strategy": "loop_before_master",
      "remember_failed": true
    }
  }
}

Si vous exécutez une mise à jour dans n'importe quel cluster qui ne supporte pas le partitionnement afin d'éviter les points chauds et les collisions, vous devriez considérer l'utilisation du filtre sur les groupes de noeuds pour conserver les mises à jour sur les tables fréquemment utilisées sur un de ces noeuds. Ceci peut aider à réduire les collisions, et donc, améliorer les performances.


XA/Distributed transactions

Note: Nécessité de version

Les fonctions relatives à XA ont été introduites en PECL/mysqlnd_ms version 1.6.0-alpha.

Note: Ce que les premiers adaptateurs voulaient

Cette fonctionalité est actuellement en cours de développement. Il peut y avoir des problèmes et/ou des limitations dans la fonctionalité. Ne pas utiliser en environnement de production, malgré le fait que les premiers tests indiquent une qualité satisfaisante.

Merci de contacter l'équipe de développement si vous êtes intéressé par cette fonctionalité. Nous sommes à la recherche de retours utilisateurs pour compléter la fonctionalité.

Voici une liste des restrictions actuelles de la fonctionalité.

  • Cette fonctionalité n'est pour l'instant pas compatible avec le support MySQL Fabric. Ceci devrait s'arranger d'ici peu.

    Les identifiants de transaction XA sont actuellement restreints à des nombres. Cette limitation devrait bientôt disparaître ; ce n'est qu'une simplification induite lors de l'implémentation initiale.

Note: Restrictions du serveur MySQL

Le support XA par le serveur MySQL a quelques limitations. La plus notable est que le binaire d'historisation du serveur peut rater des modifications effectuées par les transactions XA en cas de certaines erreurs. Veuillez vous rapporter au manuel de MySQL pour plus de détails.

Les transactions distribuées/XA peuvent impliquer plusieurs serveurs MySQL. Aussi, elles peuvent paraître comme un outil parfait pour les clusters partagés MySQL, par exemple, les clusters gérés avec MySQL Fabric. PECL/mysqlnd_ms cache la plupart des commandes SQL qui contrôlent les transactions XA, et réalise automatiquement des tâches administratives en cas d'erreur, pour fournir à l'utilisateur une API compréhensive. Les utilisateurs doivent configurer le plugin avec prudence, et faire attention aux restrictions des serveurs avant d'utiliser cette fonctionalité.

Exemple #1 Masque général pour les transactions XA

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");

/* On commence ! */
mysqlnd_ms_xa_begin($mysqli, 1 /* xa id */);

/* Exécution de plusieurs requêtes sur divers serveurs */
$mysqli->query("UPDATE some_table SET col_a = 1");
...

/* Validaiton ! */
mysqlnd_ms_xa_commit($link, 1);
?>

Les transactions XA utilisent un protocole de validation en deux phases. Ce protocole est bloquant. Pendant la première phase, les serveurs participants commencent une transaction et le client réalise son travail. Cette phase est suivie par une seconde phase de vote. Pendant le vote, les serveurs font d'abord la promesse ferme qu'ils sont prêts à réaliser le travail y compris s'il survient une erreur innatendue. Si un serveur crash pendant cette phase, il va appeler de nouveau la transaction interrompue après son redémarrage, et va attendre que le client décide si la transaction doit être validée ou annulée.

Si un client qui a initié une transaction globale crash après que l'appel aux serveurs participants demandant leurs promesses de validation ne soit réalisé, alors les serveurs doivent attendre une décision. Les serveurs ne sont pas autorisés à prendre de façon unilatérale une décision sur la transaction.

Un crash du client, une déconnection d'un participant, un crash serveur ou une erreur serveur durant la première phase n'est pas critique. Dans la plupart des cas, le serveur va oublier la transaction XA et réaliser une annulation. De plus, le plugin va tenter de contacter un maximum de participants pour les informer d'annuler immédiatement le travail. Il n'est pas possible de désactiver cette annulation implicite réalisée par PECL/mysqlnd_ms dans le cas d'erreurs survenues pendant la première phase du protocole. Ce comportement a été décidé afin de conserver une implémentation simple.

Une erreur pendant la seconde phase du protocole de validation peut engendrer une situation plus sévère. Dans tous les cas, les serveurs ne vont pas oublier la transactions en cours (mais pas terminées). Le plugin ne va pas tenter de résoudre ce problème immédiatement, mais va attendre le passage en arrière plan du collecteur de données incorrectes pour s'assurer de la progression du protocole de validation. Il est supposé que cette solution prend un temps signification, car il inclue le temps d'attente d'un serveur participant pour redémarrer après un crash. Cette durée passée peut être plus longue qu'un développeur et un utilisateur peuvent prétendre lors d'une tentative de validation d'une transaction globale avec la fonction mysqlnd_ms_xa_commit(). Aussi, la fonction va retourner avec une transation globale non terminée qui va continuer de demander toute l'attention. Faites attention à ce moment précis, tout n'est pas propre, sachant que la transaction globale peut toujours être validée ou annulée plus tard.

Les erreurs pendant la seconde phase peuvent être annulées, gérées par vous même, ou résolues par la logique du collecteur de données incorrectes. Les ignorer n'est pas recommandé, sachant que vous pouvez avoir des transactions globales non terminées sur vos serveurs qui bloquent les ressources indéfiniement. La gestion de ces erreurs nécessite de connaître les participants, vérifier leurs statuts, et leur envoyer les requêtes SQL appropriées. Il n'existe pas d'appel API permettant de retrouver ces informations. Vous devez configurer un stockage de statuts et y enregistrer les actions du plugin pour retrouver l'information.

Veuillez lire la section de démarrage rapide ainsi que les options du fichier de configuration pour un exemple de configuration d'un stockage de statuts. En plus de configurer un stockage de statuts, vous devez configurer quelques tables SQL. Les définitions de ces tables sont fournies dans la description des options de configuration du plugin.

La mise en place et la configuration d'un stockage de statut est également un prérequis à l'utilisation du collecteur de données incorrectes interne pour les transactions XA qui échoue pendant la seconde phase de la validation. L'enregistrement des informations sur les transactions XA entrantes est une tâche supplémentaire inévitable. Cette tâche consiste à mettre à jour le stockage de statuts après chaque opération qui modifie le statut de la transaction globale (démarrage, validation, annulation, erreurs et arrêt), après chaque ajout de participants (hôte, optionnellement, nom d'utilisateur et mot de passe de connexion) ainsi que toutes modifications de statuts des participants. Notez que, suivant la configuration, et votre politique de sécurité, ces enregistrements peuvent être très sensibles. Il est recommandé de restreindre l'accès au stockage de statuts. A moins que le stockage de statuts devienne surchargé, l'enregistrement des informations de statut contribue à la charge globale mais son impact reste très limité.

Il est possible que les efforts que vous prendrez pour implémenter vos propres routines pour gérer les transactions XA en échec pendant la seconde phase de validation excèdent les bénéfices de l'utilisation de la fonctionalité XA de PECL/mysqlnd_ms. Aussi, le manuel n'abordera que l'utilisation du collecteur de données incorrectes interne.

Le collecteur de données incorrectes peut être lancé manuellement et automatiquement en arrière plan. Vous pouvez vouloir utiliser la fonction mysqlnd_ms_xa_gc() immédiatement après un échec de validation pour tenter de résoudre le souci, mais réouvrir les transactions globales aussi tôt que possible. Vous pouvez aussi décider de désactiver le collecteur de données incorrectes automatique d'arrière plan, implémenter vos propres règles d'appel au collecteur de données incorrectes interne, et l'appeler lorsque vous le souhaitez.

Par défaut, le plugin va démarrer le collecteur de données incorrectes en suivant une probabilité définie par la méthode RSHUTDOWN interne à l'extension. Le requête d'arrêt est appelé après la fin de votre script. Le moment du démarrage du collecteur de données incorrectes est déterminé en calculant une valeur aléatoire comprise dans l'intervalle 1...1000 et en la comparant avec l'option de configuration probability (défaut : 5). Si l'option de configuration est supérieure ou égale à la valeur aléatoire, le collecteur de données incorrectes sera lancé.

Une fois démarré, le collecteur de données incorrectes agira jusqu'à max_transactions_per_run (défaut : 100) enregistrements de transactions globales. Les enregistrements incluent les transactions terminées avec succès, mais aussi, les transactions XA non terminées. Les enregistrements pour les transactions terminées avec succès sont supprimés, et on tente de résoudre les transactions non terminées. Il n'y a aucune statistique permettant de trouver la balance juste entre la conservation de l'exécution courte du collecteur de données incorrectes en limitant le nombre de transactions considérées par exécution, et le fait d'éviter l'échec du collecteur de données incorrectes faisant qu'un grand nombre d'enregistrements ne soit réalisé.

Pour chaque transaction XA en échec, le collecteur de données incorrectes va tenter max_retries (défaut : 5) fois de la terminer. Après cela, PECL/mysqlnd_ms va rendre la main. Il y a deux raisons à cela. Soit un serveur participant a crashé, et est devenu inaccessible pendant les max_retries invocations du collecteur de données incorrectes, ou bien, il y a un cas où le collecteur de données incorrectes internes ne peut pas faire face. Le dernier cas peut être considéré comme un bogue. Cependant, vous pouvez forcer manuellement plusieurs exécutions du collecteur de données incorrectes en appelant la fonction mysqlnd_ms_xa_gc() avec le jeu de paramètres approprié. Si l'exécution de ces fonctions échoue dans la résolution de la situation, alors le problème doit être réglé par un opérateur.

La fonction mysqlnd_ms_get_stats() fournit quelques statistiques sur le nombre de transactions XA qui ont été démarrées, validées, échouées ou annulées.


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Configuration à l'exécution
  • Fichier de configuration du plugin (>=1.1.x)


Pré-requis

PHP 5.3.6 ou plus récent. Quelques fonctions avancées nécessitent PHP 5.4.0 ou supérieur.

Le plugin de balance de charge et réplication mysqlnd_ms est compatible avec toutes les applications PHP et toutes les extensions PHP pour MySQL (mysqli, mysql, PDO_MYSQL). L'extension PHP pour MySQL doit être configurée pour utiliser la couche mysqlnd afin de pouvoir utiliser le plugin mysqlnd_ms de mysqlnd.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mysqlnd_ms

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Mysqlnd_ms
Nom | Défaut | Modifiable | Historique
mysqlnd_ms.enable | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.force_config_usage | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.ini_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.config_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.collect_statistics | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.multi_master | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.disable_rw_split | 0 | PHP_INI_SYSTEM |

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqlnd_ms.enable integer

Active ou désactive le plugin. Si désactivé, l'extension ne se branchera pas sur mysqlnd au proxy interne des appels API C mysqlnd.

mysqlnd_ms.force_config_usage integer

Si activé, le plugin vérifiera si la valeur du paramètre de l'hôte (serveur) de chaque tentative de connexion correspond à un nom de section du fichier de configuration du plugin. Sinon, la tentative de connexion échouera.

Cette option n'est pas seulement utile pour restreindre PHP sur certains serveurs mais aussi pour déboger les problèmes de fichier de configuration. La validité du fichier de configuration est vérifiée à deux niveaux différents. La première vérification est effectuée lorsque PHP commence à gérer une requête web. A ce moment là, le plugin lit et décode le fichier de configuration. Les erreurs envoyées à ce stade du cycle de vie du plugin ne seront pas montrées proprement à l'utilisateur. Aussi, le plugin met en attente les erreurs s'il y en a, et ensuite, les affiche lorsque la connexion à MySQL est établie. Par défaut, une erreur de démarrage mise en attente va émettre une erreur de type E_WARNING. Si force_config_usage est défini, le type d'erreur utilisé sera E_RECOVERABLE_ERROR.

Voir aussi les notes de débogage du fichier de configuration.

mysqlnd_ms.ini_file string

Fichier de configuration spécifique au plugin. Ce paramètre a été renommé en mysqlnd_ms.config_file en version 1.4.0.

mysqlnd_ms.config_file string

Fichier de configuration spécifique au plugin. Ce paramètre prévaut par rapport au paramètre mysqlnd_ms.ini_file depuis la version 1.4.0.

mysqlnd_ms.collect_statistics integer

Active ou désactive la collecte de statistiques. La collecte de statistiques est désactivé par défaut pour des raisons de performance. Les statistiques sont retournées avec la fonction mysqlnd_ms_get_stats().

mysqlnd_ms.multi_master integer

Active ou désactive le support de configuration de plusieurs maîtres de réplication MySQL. Voir aussi les clusters supportés.

mysqlnd_ms.disable_rw_split integer

Active ou désactive la séparation des lectures et des écritures internes.

Contrôle la façon dont la balance de charge et les connexions paresseuses peuvent être utilisés indépendamment de la séparation des lectures et des écritures. Si cette séparation est désactivée, seuls les serveurs depuis la liste des maîtres seront utilisés pour l'exécution de la requête. Tous les serveurs esclaves seront ignorés.

L'astuce SQL MYSQLND_MS_USE_SLAVE ne sera pas reconnu. Si elle est trouvée, la requête sera redirigée vers un maître.

Le fait de désactiver la séparation des lectures et des écritures impacte la valeur retournée de la fonction mysqlnd_ms_query_is_select(). La fonction ne proposera plus l'exécution de la requête sur des serveurs esclaves.

Note: Plusieurs serveurs maîtres

Veuillez noter que vous devez définir mysqlnd_ms.multi_master=1 pour faire que le plugin considère plus d'un seul maître, premier de la liste des maîtres.

Veuillez voir aussi les clusters supportés.


Fichier de configuration du plugin (>=1.1.x)

La documentation suivantes s'applique à PECL/mysqlnd_ms >= 1.1.0-beta. Elle n'est pas valide pour les versions antérieures. Pour une documentation qui couvre les anciennes versions, raportez-vous à la documentation de la configuration pour mysqlnd_ms 1.0.x et antérieures.

Introduction

Note: Historique : Fonctionnalités ajoutées en PECL/mysqlnd_ms 1.1.0-beta

La description ci-dessous s'applique à PECL/mysqlnd_ms >= 1.1.0-beta. Elle n'est pas valide pour les versions plus anciennes.

Le plugin utilise un fichier de configuration propre, qui contient les informations sur le maitre de réplication MySQL, les escalves, la politique de bascule et la stratégie de failover et l'utilisation de connexions paresseuses (lazy).

Le plugin charge son fichier de configuration au début de la requête web. Il est ensuite mis en cache mémoire et utilisé pour toute la durée de la requête web. De cette façon, il n'est pas nécessaire de redémarrer PHP après avoir déployé le fichier de configuration. Les modifications du fichier de configuration devient ainsi actives en seulement quelques minutes.

La directive de configuration PHP mysqlnd_ms.config_file est utilisée pour indiquer le fichier de configuration des plugins. Notez que la directive de configuration PHP ne sera pas évaluée pour chaque requête web. Toutefois, la modification du nom du fichier de configuration ou son lieu de stockage nécessite un redémarrage de PHP. Cependant, aucun redémarrage n'est nécessaire pour lire les modifications d'un fichier de configuration déjà en place.

L'utilisation et l'analyse JSON est rapide, et l'utilisation de JSON rend simple les structures hiérarchiques par rapport au format standard php.ini.

Exemple #1 Conversion d'un hash PHP en frmat JSON

Ou sinon, un développeur peut être plus familier avec la syntaxe PHP array et ainsi, le préférer. Cet exemple montre la façon dont un développeur peut convertir un tableau PHP en JSON.

<?php
$config = array(
  "myapp" => array(
    "master" => array(
      "master_0" => array(
        "host"   => "localhost",
        "socket" => "/tmp/mysql.sock",
      ),
    ),
    "slave" => array(),
  ),
);

file_put_contents("mysqlnd_ms.ini", json_encode($config, JSON_PRETTY_PRINT));
printf("Fichier mysqlnd_ms.ini créé...\n");
printf("Affichage du contenu...\n");
printf("%s\n", str_repeat("-", 80));
echo file_get_contents("mysqlnd_ms.ini");
printf("\n%s\n", str_repeat("-", 80));
?>

L'exemple ci-dessus va afficher :

Fichier mysqlnd_ms.ini créé...
Affichage du contenu...
--------------------------------------------------------------------------------
{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": [

        ]
    }
}
--------------------------------------------------------------------------------

Un fichier de configuration de plugin consiste en une ou plusieurs sections. Les sections sont représentées par des propriétés d'objet haut-niveau de l'objet encodé dans le fichier JSON. Les sections peuvent aussi être appelées des noms de configuration.

Les applications font références aux sections par leurs noms. Les applications utilisent les noms de sections comme paramètre hôte (serveur) dans les méthodes de connexions des extensions mysqli, mysql et PDO_MYSQL. Une fois connectée, le plugin mysqlnd compare le nom de l'hôte avec tous les noms de sections du fichier de configuration du plugin. Si le nom d'hôte et le nom de la section correspondent, le plugin chargera les paramètres de cette section.

Exemple #2 Exemple d'utilisation des noms de section

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27"
            },
            "slave_1": {
                "host": "192.168.2.27",
                "port": 3306
            }
        }
    },
    "localhost": {
        "master": [
            {
                "host": "localhost",
                "socket": "\/path\/to\/mysql.sock"
            }
        ],
        "slave": [
            {
                "host": "192.168.3.24",
                "port": "3305"
            },
            {
                "host": "192.168.3.65",
                "port": "3309"
            }
        ]
    }
}
<?php
/* Toutes les connexions suivantes seront en balance de charge */
$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");

$mysqli = new mysqli("localhost", "username", "password", "database");
?>

Les noms de section sont des chaînes de caractères. Il est valide d'utiliser un nom de section comme 192.168.2.1, 127.0.0.1 ou localhost. Si, par exemple, une application se connecte à localhost et que la section de configuration localhost existe pour ce plugin, la sémantique de l'opération de connexion change. L'application n'utilise plus que le serveur MySQL sur l'hôte localhost mais le plugin commence à effectuer un balance de charge en suivant les règles issues de la section de configuration localhost. De cette façon, vous pouvez effectuer de la balance de charge des requêtes depuis l'application sans aucune modification du code source de l'application. Garder à l'esprit qu'une telle configuration ne contribue pas à une meilleure lisibilité de votre code source. L'utilisation de noms de section qui peuvent être utilisés comme noms d'hôte doit être de dernier recours.

Chaque section de configuration contient au moins une liste de serveurs maîtres, et une liste de serveurs esclaves. La liste des maîtres est configurée avec le mot clé master, alors que la liste des esclaves est configurée avec le mot clé slave. Le fait de ne pas fournir de liste d'esclaves produit une erreur de type E_ERROR (erreur fatale). Malgré le fait que vous ne pouvez pas omettre de liste d'esclaves, elle peut être vide. Il est possible de n'autoriser aucun esclave. Cependant, ce n'est recommandé que pour les clusters synchrones (lire la documentation sur les clusters supportés). La majeure partie de la documentation parle que des clusters de réplication MySQL asynchrones.

Les listes de maîtres et d'esclaves peuvent être optionnellement indexées par le nom symbolique du serveur qu'elles décrivent.

Exemple #3 Liste des esclaves anonymes

"slave": [
    {
        "host": "192.168.3.24",
        "port": "3305"
    },
    {
        "host": "192.168.3.65",
        "port": "3309"
    }
]

Une liste de serveurs anonymes est encodée en JSON array. Vous pouvez optionnellement utiliser les noms symboliques pour indexer les serveurs esclaves ou maîtres de la liste des serveurs. Dans un dernier ressort, vous pouvez utiliser le type JSON object.

Exemple #4 Liste Maître en utilisant les noms symboliques

"master": {
    "master_0": {
        "host": "localhost"
    }
}

Il est recommandé d'indexer la liste des serveurs avec les noms symboliques des serveurs. Les noms d'alias seront affichés dans les messages d'erreur.

L'ordre des serveurs est préservé et pris en compte par mysqlnd_ms. Si, par exemple, vous configurez la stratégie de balance de charge round robin, la première requête SELECT sera exécutée sur l'esclave qui apparaît en premier dans la liste des serveurs esclaves.

Un serveur configuré peut être décrit avec les paramètres host, port, socket, db, user, password et connect_flags. Il est obligatoire de définir l'hôte du serveur de base de données en utilisant le mot clé host. Tous les autres paramètres de configuration sont optionnels.

Exemple #5 Mot clé pour configurer un serveur

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "db_server_host",
                "port": "db_server_port",
                "socket": "db_server_socket",
                "db": "database_resp_schema",
                "user": "user",
                "password": "password",
                "connect_flags": 0
            }
        },
        "slave": {
            "slave_0": {
                "host": "db_server_host",
                "port": "db_server_port",
                "socket": "db_server_socket"
            }
        }
    }
}

Si une configuration est omise, le plugin utilisera la valeur fournie par l'appel API de l'utilisateur pour ouvrir la connexion. Reportez-vous à l'exemple ci-dessus sur l'utilisation des noms de section.

Le format du fichier de configuration a été modifié en version 1.1.0-beta pour permettre les filtres chaînés. Les filtres sont responsables du filtrage de la liste de serveurs configurés afin d'identifier un serveur pour l'exécution de la requête donnée. Les filtres sont configurés avec le mot clé filter. Les filtres sont exécutés par mysqlnd_ms dans l'ordre de leur apparence. La définition de filtres est optionnel. Une section de configuration dans le fichier de configuration du plugin n'a pas besoin d'avoir d'entrée filters.

Les filtres remplacent la configuration pick[] des précédentes versions. random et roundrobin fournissent la même fonctionnalité.

Exemple #6 Nouveau filtre roundrobin, ancienne fonctionnalité

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.137",
                "port": "3306"
            }
        },
        "filters": {
            "roundrobin": [

            ]
        }
    }
}

La fonction mysqlnd_ms_set_user_pick_server() a été supprimée. La définition d'une fonction de rappel est maintenant possible avec le filtre user. Quelques filtres acceptent des paramètres. Le filtre user requière et accepte obligatoirement le paramètre callback pour définir la fonction de rappel précédemment définie via la fonction mysqlnd_ms_set_user_pick_server().

Exemple #7 Le filtre user remplace la fonction mysqlnd_ms_set_user_pick_server()

"filters": {
    "user": {
        "callback": "pick_server"
    }
}

La validité du fichier de configuration est vérifiée à la fois lors de la lecture du fichier de configuration mais aussi plus tard, lors de l'établissement d'une connexion. Le fichier de configuration est lu durant le démarrage de PHP. A ce stade là, une extension PHP ne peut afficher les messages d'erreurs proprement. Dans la plupart des cas, aucune erreur n'est montrée, et une connexion peut échouer sans pour autant avoir un message d'erreur adéquate. Ce problème a été résolu en version 1.5.0.

Exemple #8 Message d'erreur commun dans le cas d'une erreur dans le fichier de configuration (à partir de la version 1.5.0)

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
?>

L'exemple ci-dessus va afficher :

Warning: mysqli::mysqli(): (mysqlnd_ms) (mysqlnd_ms) Failed to parse config file [s1.json]. Please, verify the JSON in Command line code

Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in Command line code on line 1

Warning: mysqli::query(): Couldn't fetch mysqli in Command line code on line 1

Fatal error: Call to a member function fetch_assoc() on a non-object in Command line code on line 1

Depuis la version 1.5.0, les erreurs au démarrage sont mises en mémoire tampon, et émises lorsqu'une tentative de connexion est réalisée. Utilisez la directive de configuration mysqlnd_ms.force_config_usage pour définir le type d'erreyr à utiliser pour afficher les erreurs de la mémoire tampon. Par défaut, une erreur de type E_WARNING sera émise.

Exemple #9 Validation renforcée du fichier de configuration depuis la version 1.5.0

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
?>

L'exemple ci-dessus va afficher :

Warning: mysqli::mysqli(): (mysqlnd_ms) (mysqlnd_ms) Failed to parse config file [s1.json]. Please, verify the JSON in Command line code on line 1

Il peut être utile de définir mysqlnd_ms.force_config_usage = 1 lors du débogage des erreurs du fichier de configuration. Ceci ne va pas seulement définir le type d'erreurs de démarrage mises en mémoire tampon à E_RECOVERABLE_ERROR mais aussi va vous aider à détecter les noms de section erronés.

Exemple #10 Erreur plus précise grâce à l'utilisation de mysqlnd_ms.force_config_usage=1

mysqlnd_ms.force_config_usage=1
<?php
$mysqli = new mysqli("invalid_section", "username", "password", "database");
?>

L'exemple ci-dessus va afficher :

Warning: mysqli::mysqli(): (mysqlnd_ms) Exclusive usage of configuration enforced but did not find the correct INI file section (invalid_section) in Command line code on line 1 line 1

Directives de configuration

Voici une explication rapide des directives de configuration qui peuvent être utilisées.

master tableau ou object

Liste de serveurs maîtres de réplication MySQL. La liste est au format JSON type array pour déclarer une liste anonyme de serveurs ou au format JSON type object. Reportez-vous aux exemples ci-dessous.

La définition d'au moins un serveur maître est obligatoire. Le plugin émettra une erreur de type E_ERROR si l'utilisateur n'a pas fourni de liste de serveurs maîtres dans une section de configuration. L'erreur fatale ressemble à ceci : (mysqlnd_ms) Section [master] doesn't exist for host [name_of_a_config_section] in %s on line %d.

Un serveur est décrit avec les paramètres host, port, socket, db, user, password et connect_flags. Il est obligatoire de fournir une valeur pour le paramètre host. Si n'importe quel autre paramètre n'est pas fourni, il sera récupéré depuis l'appel API de connexion. Reportez-vous aux exemples d'utilisation des noms de section.

Tableau de mot clé pour les serveurs dans la configuration.

Mot clé Description Version
host

Hôte du serveur de base de données. Cette donnée est obligatoire. Le fait de ne pas le fournir émettra une erreur de type E_RECOVERABLE_ERROR lorsque le plugin tentera de se connecter au serveur. Le message d'erreur ressemblera à ceci : (mysqlnd_ms) Cannot find [host] in [%s] section in config in %s on line %d.

Depuis la version 1.1.0.
port

Port TCP/IP du serveur de base de données.

Depuis la version 1.1.0.
socket

Socket du domaine Unix du serveur de base de données.

Depuis la version 1.1.0.
db

Base de données (schemata).

Depuis la version 1.1.0.
user

Utilisateur de la base de données MySQL.

Depuis la version 1.1.0.
password

Mot de passe pour l'utilisateur de la base de données MySQL.

Depuis la version 1.1.0.
connect_flags

Drapeaux de connexion.

Depuis la version 1.1.0.

Le plugin supporte l'utilisation d'un seul serveur maître. Une configuration expérimentale existe pour activer le support multi-maître. Les détails ne sont pas actuellement documentés.

slave tableau ou object

Liste un ou plusieurs serveurs esclaves de réplication MySQL. La syntaxe est identique à la configuration des serveurs maîtres. Reportez-vous au master ci-dessus pour plus de détails.

Le plugin supporte l'utilisation d'un ou plusieurs esclaves.

Le fait de définit une liste de serveurs esclaves est obligatoire. Le plugin émettra une erreur de type E_ERROR si slave n'est pas fourni dans une section de configuration. Le message d'erreur fatale devrait afficher quelque chose comme (mysqlnd_ms) Section [slave] doesn't exist for host [%s] in %s on line %d. Notez qu'il est valide d'utiliser une liste de serveur esclave vide. L'erreur a été introduite pour prévenir une configuration accidentelle des esclaves en oubliant la configuration slave setting. Une configuration de maîtres uniquement est toujours possible en utilisant une liste d'esclave vide.

Si une liste d'esclave vide est configuré et une tentative est faîte d'exécuter une requête sur un esclave, le plugin émettra une alerte du type mysqlnd_ms) Couldn't find the appropriate slave connection. 0 slaves to choose from. lors de l'exécution. Il est possible qu'une autre alerte suive, comme ceci (mysqlnd_ms) No connection selected by the last filter.

global_transaction_id_injection array ou objet

Configuration de GTID dans le cas de l'inclusion directe dans le serveur, et l'émulation coté client.

Mot-clé Description Version
fetch_last_gtid

Requête SQL pour recupérer le dernier GTID. La requête est lancée si le plugin a besoin de connaitre le dernier GTID. Ce peut être le cas, par exemple, pour vérifier le statut de réplication d'un esclave MySQL. Aussi utilisé avec mysqlnd_ms_get_last_gtid().

Depuis 1.2.0.
check_for_gtid

Requête SQL pour vérifier sur un réplica a répliqué toutes les transactions jusqu'à une certaine, recherchée. La requête est jouée lorsqu'une recherche de réplica pouvant offrir un niveau de consistence supérieur est lancée. La requête doit comporter un jocker #GTID qui sera remplacé par le GTID recherché par le plugin. Voyez le quickstart pour les exemples.

Depuis 1.2.0.
report_errors

Si oui ou non une erreur de type warning doit être levée dans le cas où une requête SQL configurée provoque une erreur.

Depuis 1.2.0.
on_commit

Emulation GTID coté client uniquement. Requête SQL a exécuter lorsqu'une transaction a fini de mettre à jour le GTID sur le maitre. Voyez quickstart pour les exemples.

Depuis 1.2.0.
wait_for_gtid_timeout

Indique au plugin d'attendre wait_for_gtid_timeout secondes pour attraper un esclave lors d'une recherche d'esclaves qui peuvent délivrer une consistence de session. Cette option limite le temps consacré pour interroger le statut de l'esclave. Si cette interrogation prend trop de temps, le temps passé au total peut dépasser la valeur de l'option wait_for_gtid_timeout. Le plugin appel sleep(1) pour attendre une seconde entre deux demandes.

L'option peut être utilisée avec l'émulation côté client mais aussi avec la fonctionalité des identifiants globaux de transaction de MySQL 5.6.

L'attente d'un esclave pour répliquer un certain GTID nécessaire pour une consistence de session signifie également l'étranglement du client. En étranglant le client, le charge en écriture du maître est indirectement réduite. Une copie primaire basé sur le système de réplication, comme une réplication MySQL, prend plus de temps pour atteindre un statut de consistence. Ce comportement peut être désiré, par exemple, pour accroitre le nombre de copies de données pour des considérations de haute disponibilité, ou pour prévenir la surcharge du maître.

Depuis 1.4.0.
fabric object

La configuration relative à MySQL Fabric. Si le plugin est utilisé avec MySQL Fabric, alors le fichier de configuration du plugin ne contiendra plus la liste des serveurs MySQL. A la place, le plugin demandera à MySQL Fabric la liste des serveurs à utiliser pour effectuer certaines tâches.

Au minimum, le fichier de configuration du plugin à utiliser avec MySQL Fabric contiendra un ou plusieurs hôtes MySQL Fabric que le plugin peut interroger. Si plus d'un hôte MySQL Fabric est configuré, le plugin utilisera la stratégie roundrobin pour effectuer son choix. Les autres stratégies ne sont actuellement pas disponible.

Exemple #11 Configuration minimale du plugin pour son utilisation avec MySQL Fabric

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ]
        }
    }
}

Chaque hôte MySQL Fabric est décrit en utilisant un objet JSON contenant les membres suivants.

Mot clé Description Version
host

Nom de l'hôte du serveur MySQL Fabric.

Depuis 1.6.0.
port

Le port TCP/IP sur lequel écoute le serveur MySQL Fabric pour les appels aux procédures distantes envoyées par les clients comme le plugin.

Depuis 1.6.0.

Le plugin utilise les flux PHP pour communiquer avec MySQL Fabric via XML RPC sur HTTP. Par défaut, aucun délai maximal d'attente n'est défini pour les communications réseaux. Aussi, le plugin utilisera les délais d'attente maximale par défaut des flux PHP. Ces valeurs ne sont pas contrôlées par le plugin lui même.

Une valeur optionnelle du délai d'attente maximale peut être définie en écrasant la valeur par défaut des flux PHP. Le fait de définir la valeur du délai d'attente maximale dans le fichier de configuration du plugin a le même effet que de définir un délai d'attente dans l'espace utilisateur PHP des connexions HTTP établies via les flux PHP.

L'unité de la valeur du délai d'attente maximale de Fabric est la seconde. L'intervalle de valeur autorisée est 0 - 65535. Cette configuration existe depuis la version 1.6.

Exemple #12 Délai d'attente maximale optionnelle pour les communications avec Fabric

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ],
            "timeout": 2
        }
    }
}

Les transactions stickiness et la logique MySQL Fabric peuvent cohabiter. L'option stickiness désactive le chagement de serveur pendant la durée d'une transaction. Lors de l'utilisation de Fabric ainsi que du partage, l'utilisateur peut (par erreur) commencer une transaction locale sur un serveur partagé, puis, tenter de changer de serveur en utilisant soit la fonction mysqlnd_ms_fabric_select_shard(), soit la fonction mysqlnd_ms_fabric_select_global(). Dans ce cas, le plugin ne va pas rejeter la requête de changement de serveur au milieu d'une transaction, mais autoriser l'utilisateur à changer de serveur suivant la configuration stickiness de la transaction utilisée. Ceci est clairement une erreur de l'utilisation d'écrire ce genre de code.

Si les transactions stickiness sont actives, et que vous souhaitez récupérer une alerte lors de l'appel à la fonction mysqlnd_ms_fabric_select_shard() ou mysqlnd_ms_fabric_select_global(), définissez le booléen trx_warn_server_list_changes.

Exemple #13 Alerte lors de la violation des limitations des transactions

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ],
            "trx_warn_serverlist_changes": 1
        },
        "trx_stickiness": "on"
    }
}
<?php
$link = new mysqli("myapp", "root", "", "test");
/*
  Pour la démo, l'appel doit échouer.
  Echec ou non, nous arrivons dans un cas souhaité pour l'exemple.
*/
@mysqlnd_ms_fabric_select_global($link, 1);
$link->begin_transaction();
@$link->query("DROP TABLE IF EXISTS test");
/*
  Le changement de serveurs est une erreur en raison
  de l'ouverture d'une transaction locale !
*/
mysqlnd_ms_select_global($link, 1);
?>

L'exemple ci-dessus va afficher :

PHP Warning: mysqlnd_ms_fabric_select_global(): (mysqlnd_ms) Fabric server exchange in the middle of a transaction in %s on line %d

Veuillez considérer cette fonctionalité comme expérimentale. Une modification de la syntaxe ou de la sémantique peut intervenir à tout moment.

filters object

Liste des filtres. Un filtre est prévu pour filtrer la liste des serveurs disponibles pour l'exécution d'une requête donnée. Ils peuvent être chaînés. Le filtre random et le filtre roundrobin remplacent la directive pick[] utilisée dans les versions précédantes pour sélectionner une politique de balance de charge. le filtre user remplace la fonction mysqlnd_ms_set_user_pick_server().

Les filtres peuvent accepter des paramètres pour redéfinir leurs actions.

Si aucune politique de balance de charge n'est définie, le plugin prendra par défaut le filtre random_once. Le filtre random_once sélectionne un serveur esclave aléatoire lors de l'exécution de la première requête de lecture. Le serveur esclave sera ensuite utilisé pour exécuter toutes les requêtes de lecture seule jusqu'à la fin du script PHP. Aucune politique de balance de charge n'est définie et ainsi, le mode par défaut prend place si ni le filtre random, ni le filtre roundrobin n'est présent dans une section de configuration.

Si un filtre chaîné est configuré de tel façon qu'un filtre qui affiche en sortie pas plus d'un serveur utilisé comme entrée pour un filtre dont on doit passer plus d'un serveur en entrée, le plugin peut émettre une alerte lors de l'ouverture de la connexion. L'alerte ressemblera à quelque chose comme : (mysqlnd_ms) Error while creating filter '%s' . Non-multi filter '%s' already created. Stopping in %s on line %d. En plus une erreur de code 2000, un statut sql HY000 et un message d'erreur similaire à l'alerte peuvent être définis sur le gestionnaire de connexion.

Exemple #14 Séquence de filtres invalide

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": [
            "roundrobin",
            "random"
        ]
    }
}
<?php
$link = new mysqli("myapp", "root", "", "test");
printf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
$link->query("SELECT 1 FROM DUAL");
?>

L'exemple ci-dessus va afficher :

PHP Warning:  mysqli::mysqli(): (HY000/2000): (mysqlnd_ms) Error while creating filter 'random' . Non-multi filter 'roundrobin' already created. Stopping in filter_warning.php on line 1
[2000] (mysqlnd_ms) Error while creating filter 'random' . Non-multi filter 'roundrobin' already created. Stopping
PHP Warning:  mysqli::query(): Couldn't fetch mysqli in filter_warning.php on line 3

Filtre : random object

Le filtre random fournit les fonctionnalités de sélection aléatoire et de sélection aléatoire unique pour la politique de balance de charge, équivalent à la directive pick[] dans les précédentes versions.

La politique de sélection aléatoire va prendre un serveur aléatoirement lorsqu'une requête en lecture seule est exécutée. La stratégie de sélection aléatoire unique va sélectionner un serveur esclave aléatoirement et va continuer de l'utiliser pour le reste des requêtes PHP. La sélection aléatoire unique est le mode par défaut, si la balance de charge n'est pas configurée via un filtre.

Si le filtre random ne fournit aucun argument, la politique de balance de charge sera la sélection aléatoire.

Exemple #15 Balance de charge aléatoire avec le filtre random

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.137",
                "port": "3306"
            }
        },
        "filters": [
            "random"
        ]
    }
}

Optionnellement, l'argument sticky peut être passé au filtre. Si l'argument sticky est défini en la chaîne de caractère 1, le filtre suit la stratégie de sélection aléatoire unique.

Exemple #16 Balance de charge avec sélection aléatoire unique avec le filtre random

{
    "filters": {
        "random": {
            "sticky": "1"
        }
    }
}

A la fois le filtre random et le filtre roundrobin supportent la définition d'une priorité, un poids pour un serveur, et ce, depuis PECL/mysqlnd_ms 1.4.0. Si l'argument weight est passé au filtre, il doit assigner un poids à tous les serveurs. Les serveurs doivent donner un alias dans la liste des serveurs slave et master. L'alias doit être utilisé pour référencer les serveurs pour l'assignement d'une priorité avec l'argument weight.

Exemple #17 Erreur de référencement

[E_RECOVERABLE_ERROR] mysqli_real_connect(): (mysqlnd_ms) Unknown server 'slave3' in 'random' filter configuration. Stopping in %s on line %d

L'utilisation d'un mauvais alias avec l'argument weight peut conduire à une erreur similaire à celle de l'exemple ci-dessus.

Si weight est omis, le poids par défaut de tous les serveurs sera de un.

Exemple #18 Assignement d'un argument weight pour la balance de charge

{
   "myapp": {
       "master": {
           "master1":{
               "host":"localhost",
               "socket":"\/var\/run\/mysql\/mysql.sock"
           }
       },
       "slave": {
           "slave1": {
               "host":"192.168.2.28",
               "port":3306
           },
           "slave2": {
               "host":"192.168.2.29",
               "port":3306
           },
           "slave3": {
               "host":"192.0.43.10",
               "port":3306
           },
       },
       "filters": {
           "random": {
               "weights": {
                   "slave1":8,
                   "slave2":4,
                   "slave3":1,
                   "master1":1
               }
           }
       }
   }
}

En moyenne, un serveur dont le poids est de deux sera sélectionné de fois plus qu'un serveur dont le poids est de un. Différents poids peuvent être assignés pour refléter différentes tailles de machine, pour préférer des esclaves proches qui ont une latence réseau faible, ou pour configurer un serveur de secours en cas d'échec. Dans ce dernier cas, vous pouvez vouloir assigner au serveur de secours un poids très faible par rapport aux autres serveurs. Par exemple, si l'on reprend la configuration ci-dessus, slave3 ne recevra qu'en moyenne huit pourcent des requêtes. Tant que les esclaves slave1 et slave2 fonctionnent, il sera utilisé rarement, un peu à la façon d'un serveur de secours. En cas d'erreur sur l'esclave slave1 et l'esclave slave2, l'utilisation de l'esclave slave3 augmentera. Veuillez lire les notes relative au failover avant d'utiliser l'argument weight dans ce but.

L'intervalle de valeurs valides pour le poids est de 1 à 65535.

Les arguments inconnus sont ignorés par le filtre. Aucune alerte ni erreur n'est fourni.

Le filtre attente un ou plusieurs serveurs en entrée et ne sort qu'un seul serveur. Une séquence de filtre comme random, roundrobin peut émettre une alerte et un message d'erreur définis sur le gestionnaire de connexion lors de l'exécution d'une requête.

Liste des arguments du filtre.

Mot clé Description Version
sticky

Active ou désactive la politique de balance de charge "random once". Voir ci-dessus.

Depuis 1.2.0.
weight

Assigne une priorité/un poids de balance de charge à un serveur. Voir ci-dessus pour une description.

Depuis 1.4.0.
Filtre : roundrobin object

Lors de l'utilisation du filtre roundrobin, le plugin parcourt la liste des serveurs esclaves configurés pour y sélectionner un serveur à utiliser pour l'exécution d'une requête. Si le plugin atteint la fin de la liste, il se replace au début et prend le premier serveur esclave configuré.

Exemple #19 Filtre roundrobin

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": [
            "roundrobin"
        ]
    }
}

Attends un ou plusieurs serveurs en entrée. Sort un seul serveur. Une séquence de filtres comme roundrobin, random peut émettre une alerte et un message d'erreur définis sur le gestionnaire de connexion lors de l'exécution d'une requête.

Liste des arguments du filtre.

Mot clé Description Version
weight

Assigne une priorité/un poids à un serveur. Repportez-vous à la section ci-dessus pour plus de détails.

Depuis 1.4.0.
Filtre : user object

Le filtre user remplace la fonction mysqlnd_ms_set_user_pick_server(), qui a été supprimée en version 1.1.0-beta. Le filtre définit une fonction de rappel pour la séparation définie par l'utilisateur des lectures et des écritures ainsi que la sélection de serveurs.

Le mécanisme interne du plugin de décisions de séparation des lectures et des écritures peut être surchargé de deux façons. La façon la plus simple est d'ajouter en début de requête l'astuce SQL MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH ou MYSQLND_MS_LAST_USED_SWITCH. L'utilisation des astuces SQL permet de contrôler, par exemple, si une requête doit être envoyée au serveur maître de réplication SQL ou à un des serveurs esclaves. Avec les astuces SQL, il n'est pas possible de sélectionner un serveur esclave en particulier pour l'exécution d'une requête.

Le contrôle total de la sélection des serveurs peut être atteint en utilisant une fonction de rappel. Son utilisation est recommandée aux utilisateurs experts uniquement, tout simplement par la fonction de rappel doit couvrir tous les cas que doit normalement gérer le plugin.

Le plugin invoquera la fonction de rappel pour la sélection d'un serveur depuis la liste des serveurs maîtres et esclaves configurés. La fonction de rappel inspecte la requête à exécuter, sélectionne un serveur pour son exécution en retourner l'URI de l'hôte, tel que trouvé dans la liste des serveurs maîtres et esclaves.

Si les connexions paresseuses sont actives et que la fonction de rappel choisit un serveur esclave dont aucune connexion n'a été établie, et que la connexion échoue, le plugin retournera une erreur lors de la prochaine action sur la connexion échouée, par exemple, lors de l'exécution d'une requête. Il en est de la responsabilité du développeur de l'application de gérer cette erreur. Par exemple, l'application peut ré-exécuter la requête pour lancer la sélection d'un nouveau serveur et invoquer à nouveau la fonction de rappel. Ainsi, la fonction de rappel doit s'assurer de sélectionner un serveur différent, ou de vérifier la disponibilité de l'esclave, avant de retourner au plugin et ce, afin de ne pas entrer dans une boucle infinie.

Exemple #20 Définition d'une fonction de rappel

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": {
            "user": {
                "callback": "pick_server"
            }
        }
    }
}

La fonction de rappel est supposée retourner un hôte sur lequel la requête sera exécutée. L'URI de l'hôte doit être récupérée depuis la liste des connexions aux serveurs maîtres et esclaves. Si la fonction de rappel retourne une valeur ni trouvée dans la liste des connexions aux serveurs maîtres, ni trouvée dans la liste des connexions esclaves, le plugin émettra une erreur de type E_RECOVERABLE_ERROR. L'erreur sera quelque chose comme : (mysqlnd_ms) User filter callback has returned an unknown server. The server 'server that is not in master or slave list' can neither be found in the master list nor in the slave list. Si l'application attrape l'erreur afin de l'ignirer, les erreurs suivantes seront définies sur le gestionnaire de connexion, par exemple, (mysqlnd_ms) No connection selected by the last filter avec le code erreur 2000 ainsi que le statut sql HY000. Et enfin, une alerte peut être émise.

Le fait de référencer une fonction inexistante comme fonction de rappel résultera en une erreur de type E_RECOVERABLE_ERROR lorsque le plugin tentera d'utiliser la fonction de rappel. Le message d'erreur sera quelque chose comme : (mysqlnd_ms) Specified callback (pick_server) is not a valid callback. Si l'application attrape l'erreur afin de l'ignorer, les erreurs peuvent être définies sur le gestionnaire de connexion, par exemple, (mysqlnd_ms) Specified callback (pick_server) is not a valid callback avec le code erreur 2000 ainsi que le statut sql HY000. De plus, une alerte sera émise.

Les paramètres suivants sont passés depuiq le plugin à la fonction de rappel.

Paramètre Description Version
connected_host

URI du serveur de base de données actuellement connecté.

Depuis la version 1.1.0.
query

La requête pour laquelle un serveur doit être sélectionné.

Depuis la version 1.1.0.
masters

Liste des serveurs maîtres depuis lequel le choix sera fait. Notez que la liste des serveurs maîtres peut ne pas être identiques à la liste des serveurs maîtres configurés, si le filte n'est pas le premier dans la chaîne des filtres. Les filtres précédemment configurés peuvent avoir réduit cette liste.

Depuis la version 1.1.0.
slaves

Liste des serveurs esclaves depuis lequel le choix sera fait. Notez que la liste des serveurs esclaves peut ne pas être identiques à la liste des serveurs esclaves configurés, si le filte n'est pas le premier dans la chaîne des filtres. Les filtres précédemment configurés peuvent avoir réduit cette liste.

Depuis la version 1.1.0.
last_used_connection

URI du serveur de la connexion utilisée pour exécuter la précédente requête.

Depuis la version 1.1.0.
in_transaction

Drapeau booléen indiquant si la requête fait partie d'une transaction ouverte. Si le mode autocommit est désactivé, il sera définit à TRUE, FALSE sinon.

La détection de la transaction est basée sur la surveillance de l'appel de set_autocommit sur la bibliothèque mysqlnd. La surveillance n'est pas possible avant PHP 5.4.0. Reportez-vous à la pile et au changement de connexion pour plus de détails.

Depuis la version 1.1.0.

Exemple #21 Utilisation d'une fonction de rappel

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": {
            "user": {
                "callback": "pick_server"
            }
        }
    }
}
<?php
function pick_server($connected, $query, $masters, $slaves, $last_used_connection, $in_transaction)
{
 static $slave_idx = 0;
 static $num_slaves = NULL;
 if (is_null($num_slaves))
  $num_slaves = count($slaves);

 /* défaut : retour à la logique interne du plugin */
 $ret = NULL;

 printf("L'utilisation s'est connecté sur '%s'...\n", $connected);
 printf("... décision du serveur pour exécuter '%s'\n", $query);

 $where = mysqlnd_ms_query_is_select($query);
 switch ($where)
 {
  case MYSQLND_MS_QUERY_USE_MASTER:
   printf("... utilisation du maître\n");
   $ret = $masters[0];
   break;
  case MYSQLND_MS_QUERY_USE_SLAVE:
   /* SELECT ou astuce SQL pour l'utilisation d'un esclave */
   if (stristr($query, "FROM table_on_slave_a_only"))
   {
    /* une table qui est uniquement sur le premier esclave configuré  */
    printf("... accès à la table disponible uniquement sur l'esclave A détectée\n");
    $ret = $slaves[0];
   }
   else
   {
    /* round robin */
    printf("... quelques requêtes en lecture seul pour un esclave\n");
    $ret = $slaves[$slave_idx++ % $num_slaves];
   }
   break;
  case MYSQLND_MS_QUERY_LAST_USED:
   printf("... utilisation du dernier serveur utilisé\n");
   $ret = $last_used_connection;
   break;
 }

 printf("... ret = '%s'\n", $ret);
 return $ret;
}

$mysqli = new mysqli("myapp", "root", "", "test");

if (!($res = $mysqli->query("SELECT 1 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT 2 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT * FROM table_on_slave_a_only")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

$mysqli->close();
?>

L'exemple ci-dessus va afficher :

L'utilisation s'est connecté sur 'myapp'...
... décision du serveur pour exécuter 'SELECT 1 FROM DUAL'
... quelques requêtes en lecture seul pour un esclave
... ret = 'tcp://192.168.2.27:3306'
L'utilisation s'est connecté sur 'myapp'...
... décision du serveur pour exécuter 'SELECT 2 FROM DUAL'
... quelques requêtes en lecture seul pour un esclave
... ret = 'tcp://192.168.78.136:3306'
L'utilisation s'est connecté sur 'myapp'...
... décision du serveur pour exécuter 'SELECT * FROM table_on_slave_a_only'
... accès à la table disponible uniquement sur l'esclave A détectée
... ret = 'tcp://192.168.2.27:3306'

Filtre : user_multi object

Le filtre user_multi diffère du filtre user sur un seul aspect. Sinon, leur syntaxe est identique. Le filtre user doit prendre et retourner exactement un noeud pour une exécution de requête. Un filtre chaîné se termine habituellement avec un filtre qui émet seulement un noeud. Le filtre chaîné doit réduire la liste des candidats pour exécution de la requête à un seul résultat. Ainsi, un seul noeud reste après l'exécution du filtre user.

Le filtre user_multi est un filtre multiple. Il retourne une liste de serveurs esclaves et maîtres. Cette liste doit ensuite être filtrée pour identifier exactement un noeud pour l'exécution de la requête. Un filtre multiple est habituellement placé au haut de la chaîne de filtrage. Le filtre quality_of_service est un autre exemple d'un filtre multiple.

La valeur retournée par un fonction de rappel pour le filtre user_multi doit être un tableau contenant 2 éléments. Le premier élément contient une liste de serveurs maîtres sélectionnés. Le second élément contient une liste de serveurs maîtres sélectionnés. Ces listes doivent contenir les clés des serveurs esclaves et maîtres telles que trouvées dans les listes d'esclave et de maître passées à la fonction de rappel. L'exemple ci-dessous retourne des listes aléatoires de serveurs maîtres et esclaves extraites depuis les fonctions d'entrée.

Exemple #22 Retourne des esclaves et des maîtres aléatoirement

<?php
function pick_server($connected, $query, $masters, $slaves, $last_used_connection, $in_transaction)
{
  $picked_masters = array()
  foreach ($masters as $key => $value) {
    if (mt_rand(0, 2) > 1)
      $picked_masters[] = $key;
  }
  $picked_slaves = array()
  foreach ($slaves as $key => $value) {
    if (mt_rand(0, 2) > 1)
      $picked_slaves[] = $key;
  }
  return array($picked_masters, $picked_slaves);
}
?>

Le plugin émettra une erreur de type E_RECOVERABLE si la fonction de rappel échoue à retourner une liste de serveurs. L'erreur contiendra ceci : (mysqlnd_ms) User multi filter callback has not returned a list of servers to use. The callback must return an array in %s on line %d. Dans le cas où la liste de serveurs n'est pas vide mais contient des identifiants/clés de serveurs invalides, une erreur de type E_RECOVERABLE sera émise avec un message d'erreur du type : (mysqlnd_ms) User multi filter callback has returned an invalid list of servers to use. Server id is negative in %s on line %d, ou similaire.

Une erreur est émise concernant une liste d'esclave ou de maître vide suivant la configuration. Si une liste de maître vide est retournée pour une opération en écriture, le plugin émettra une alerte dont le message sera : (mysqlnd_ms) Couldn't find the appropriate master connection. 0 masters to choose from. Something is wrong in %s on line %d. Typiquement, cette alerte sera suivit d'une erreur de type E_ERROR. Dans le cas d'une opération en lecture et une liste d'esclave vide, le comportement dépendra de la configuration du fail over. Si le fail over du maître est désactivé, le plugin émettra une alerte dont le message sera (mysqlnd_ms) Couldn't find the appropriate slave connection. 0 slaves to choose from. Something is wrong in %s on line %d.

Filtre : node_groups object

Le filtre node_groups vous permet de grouper les noeuds de cluster et requêter les groupes sélectionnés, par exemple, pour supporter le partitionnement de données. Le partitionnement de données peut être requis pour la fragmentation manuelle, la copie primaire basée sur les clusters fonctionnant avec plusieurs maîtres, ou pour éviter les points chauds lors des mises à jour sur les clusters dépourvus en interne de partitionnement. Le filtre est un filtre multiple qui retourne zéro, un ou plusieurs serveurs. Ainsi, il doit être suivi d'autres filtres pour réduire le nombre de candidats à un seul, pour l'exécution de la requête.

Mot clé Description Version
user defined node group name

Un ou plusieurs groupes de noeuds doivent être définis. Un groupe de noeuds peut avoir un nom arbitraire, défini par l'utilisateur. Le nom est utilisé en combinaison d'une astuce SQL pour restreindre l'exécution de la requête aux noeuds listés par le groupe de noeuds. Pour exécuter une requête sur un des serveurs d'un groupe de noeuds, la requête doit commencer avec l'astuce SQL /*user defined node group name*/. Veuillez noter qu'aucun espace n'est autorisé autour de user defined node group name. En raison du fait que user defined node group name est utilisé tel que comme partie d'une astuce SQL, vous devez choisir le nom valide avec le langage SQL.

Chaque entré du groupe de noeuds doit contenir une liste de serveurs master. Les serveurs slave sont également autorisés. Le fait de ne pas fournir de liste de master pour un groupe de noeuds name_of_group va émettre une erreur de type E_RECOVERABLE_ERROR comme celle-ci (mysqlnd_ms) No masters configured in node group 'name_of_group' for 'node_groups' filter.

La liste des serveurs maîtres et esclaves doit correspondre, respectivement, aux entrées de la liste des serveurs global master et de slave. Le fait de référencer un serveur inconnu d'une de ces listes va émettre une erreur de type E_RECOVERABLE_ERROR comme celle-ci (mysqlnd_ms) Unknown master 'server_alias_name' (section 'name_of_group') in 'node_groups' filter configuration.

Exemple #23 Partitionnement manuel

{
  "myapp": {
       "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.28",
                "port": 3306
            },
            "slave_1": {
                "host": "127.0.0.1",
                "port": 3311
            }
        },
        "filters": {
            "node_groups": {
                "Partition_A" : {
                    "master": ["master_0"],
                    "slave": ["slave_0"]
                }
            },
           "roundrobin": []
        }
    }
}

Veuillez noter que si un filtre chaîné génère une liste d'esclave vide, et que la directive de configuration PHP mysqlnd_ms.multi_master=0 est utilisé, le plugin peut émettre une alerte.

Depuis 1.5.0.
Filtre : quality_of_service object

Le filtre quality_of_service identifie les noeuds du cluster capable de délivrer une certaine qualité de service. C'est un filtre multiple qui retourne zéro, un ou plusieurs serveurs d'entrées. Aussi, Il doit être suivi par d'autres filtres pour réduire le nombre de candidats à un seul pour l'exécution de la requête.

Le filtre quality_of_service a été introduit en version 1.2.0-alpha. Dans les séries 1.2, le but de ces filtres était sur l'aspect de la qualité du service. Différents types de clusters offrent des consistences de données par défaut différentes. Par exemple, un serveur esclave de réplication MySQL asynchrones offre éventuellement une consistence. L'esclave ne devrait pas être capable de délivrer les données demandées car il n'a pas répliqué l'écriture, il peut délivrer une base de données non à jour en raison des lags, ou bien des données à jour. Souvent, c'est acceptable. Dans quelques cas, des niveaux de consistence élevés sont nécessaire pour que l'application fonctionne correctement. Dans ces cas là, le filtre quality_of_service peut filtrer les noeuds du cluster ne pouvant pas délivrer la qualité de service nécessaire.

Le filtre quality_of_service peut être remplacé ou créé au moment de l'exécution. Un appel réussi à la fonction mysqlnd_ms_set_qos() supprime toutes les entrées pour le filtre qos depuis la liste des filtres, et en installe un nouveau au tout début. Toutes les configurations peuvant être effectuées via la fonction mysqlnd_ms_set_qos() peuvent aussi être faîtes au niveau du fichier de configuration. Cependant, l'utilisation de la fonction est générallement privilégiée dans ce cas. Au lieu de configurer la consistence de la session ainsi que les niveaux hauts de consistence du service dans le fichier de configuration du plugin, il est recommandé de définir uniquement des maîtres, et aucun esclave. Les niveaux du service forceront l'utilisation des maîtres uniquement. L'utilisation d'une liste d'esclave vide allège le fichier de configuration et ainsi, en améliore la lisibilité. Le seul niveau de service pour lequel il convient d'utiliser le fichier de configuration est la combinaison d'une consistence éventuelle et d'un maximum d'esclaves.

Mot clé Description Version
eventual_consistency

Demande une consistence éventuelle. Autorise l'utilisation de tous les serveurs maîtres et de tous les serveurs esclaves. Les données retournées peuvent (ou pas) être des données à jour.

La consistence éventuelle accepte un paramètre optionnel age. Si le paramètre age est fourni, le plugin considère seulement les esclaves pour la lecture pour lesquels la réplication MySQL rapporte d'un lag serveur inférieur ou égal à la valeur du paramètre age. Le lag de réplication est mesuré en utilisant SHOW SLAVE STATUS. Si le plugin échoue dans la récupération du lag de réplication, l'esclave testé sera ignoré. Des détails ainsi que des astuces de l'implémentation sont fournis dans la section sur la qualité de service.

Veuillez noter que si une chaîne de filtres génère une liste vide d'esclave, et que la directive de configuration PHP mysqlnd_ms.multi_master=0 est utilisée, le plugin peut émettre une alerte.

Exemple #24 Limitation globale du lag d'un esclave

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": {
            "quality_of_service": {
                "eventual_consistency": {
                    "age":123
                }
            }
        }
    }
}

 Depuis 1.2.0.
session_consistency

Demande une consistence de session (lecture de vos écritures). Autorise l'utilisation de tous les maîtres et de tous les esclaves qui sont synchronisés avec le maître. Si aucun paramètre supplémentaire n'est fourni, les esclaves filtrés seront ceux pour lesquels il n'a pas été possible de tester leur consistence ou bien parce qu'ils lagguent. Notez que si un chaîne de filtres génère une liste d'esclave vide, et que la directive de configuration PHP mysqlnd_ms.multi_master=0 est utilisé, le plugin peut émettre une alerte.

Les demandes temporaires de consistence de session utilisant la fonction mysqlnd_ms_set_qos() est une alternative à l'utilisation de master_on_write. master_on_write est plutôt utilisé pour envoyer plus de requêtes au maître que nécessaires. L'application devrait être capable de continuer l'opération à un niveau de consistence moindre après avoir subit des lectures critiques.

Depuis 1.1.0.
strong_consistency

Demande une consistence forte. Seuls les maîtres seront utilisés.

Depuis 1.2.0.
failover A partir de 1.3.x : string. Depuis 1.4.0 : object.

Politique de basculement. Politiques supportées : disabled (défaut), master, loop_before_master (depuis 1.4.0).

Si aucune politique de basculement n'est définie, le plugin ne procèdera à aucun basculement automatique (failover=disabled). À chaque fois que le plugin échoue lors de la connexion à un serveur, il émettra une alerte et définira le code et le message d'erreur sur la connexion. Par la suite, c'est à l'application de gérer l'erreur et, par exemple, relancera la dernière requête afin de déclencher la sélection d'un autre serveur.

A noter : la logique de basculement automatique est appliqué seulement lors de l'ouverture des connexions. Une fois la connexion ouverte, aucune tentative automatique n'est effectuée pour la ré-ouvrir lorsqu'une erreur survient. Si, par exemple, la connexion vers le serveur est fermée, et que l'utilisateur tente d'y exécuter une requête, aucun basculement automatique ne sera tenté. En lieu et place, une erreur sera rapportée.

Lors de l'utilisation de failover=master, le plugin basculera implicitement vers un maître, si disponible. Reportez-vous à la documentation de ce concept pour en apprendre plus sur les risques de l'utilisation de failover=master.

Exemple #25 Basculement optionnel vers un maître lors d'un échec de connexion sur un esclave (PECL/mysqlnd_ms < 1.4.0)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "failover": "master"
    }
}

Depuis PECL/mysqlnd_ms 1.4.0, le mot clé de configuration du basculement se réfère à un objet.

Exemple #26 Nouvelle syntaxe depuis 1.4.0

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "failover": {"strategy": "master" }
    }
}

Mot clé Description Version
strategy

Politique de basculement. Les valeurs possibles sont : disabled (par défaut), master, loop_before_master

Une valeur à disabled désactivera le basculement automatique.

Le fait de définir le master indique au plugin de tenter une connexion vers ce maître lors d'une erreur de connexion vers l'esclave. Si la connexion au maître échoue, le plugin sortira de la boucle de basculement et une erreur sera retournée à l'utilisateur.

Lors de l'utilisation de loop_before_master et qu'une requête esclave est faîte, le plugin tentera une connexion aux autres esclabes avant de basculer vers le maître. Si plusieurs maîtres sont fournis, et que la gestion des multi-maîtres est activée, le plugin parcourra la liste des maîtres et tentera de s'y connecter avant de retourner une erreur à l'utilisateur.

Depuis 1.4.0.
remember_failed

Se souvenir des échecs pendant la durée d'une requête web. Par défaut, vaut false.

Si défini à true, le plugin va se souvenir des hôtes ayant échoués, et les écartera dans toutes les balances de charge réalisées pendant la durée de la requête web courante.

Depuis 1.4.0. Cette fonctionalité n'est disponible qu'avec les filtres random et roundrobin de balance de charge. L'utilisation de cette fonctionalité est recommandée.
max_retries

Nombre maximal de tentative de reconnexion avant d'écarter un hôte. Défaut : 0 (aucune limite).

Cette configuration est utilisée pour éviter qu'un hôte soit écarté de la liste des hôtes dès le premier échec. Si défini à n > 0, le pluginva conserver le noeud dans la liste des noeuds y compris après une tentative de connexion échouée. Le noeud ne sera pas supprimé immédiatement de la liste des esclaves et de la liste des maîtres après le premier échec de connexion, mais n tentatives suivantes seront réalisées dans les futures balances de charge avant d'être réellement écarté.

Depuis 1.4.0. Cette fonctionalité n'est disponible qu'avec les filtres random et roundrobin de balance de charge.

Le fait de définir failover à une valeur autre que disabled, master ou loop_before_master n'émettra aucune alerte ni erreur.

lazy_connections bool

Contrôle l'utilisation des connexions paresseuses. Les connexions paresseuses sont des connexions qui ne sont pas ouvertes tant que le client n'envoie pas la première connexion. Les connexions paresseuses sont activées par défaut.

Il est vivement recommandé d'utiliser les connexions paresseuses. Elles vous aident à conserver un nombre très faible de connexions ouvertes. Si vous les désactivez, et, par exemple, vous configurez un serveur MySQL maître de réplication et 2 serveurs MySQL esclaves de réplication, le plugin ouvrira trois connexions lors du premier appel à la fonction de connexion, malgré le fait que l'application n'utilise que la connexion maître.

Les connexions paresseuses représentent un risque si vous réalisez des actions qui changent le statut d'une connexion. Le plugin ne répercutera pas toutes les actions de modification du statut à toutes les connexions de la pile de connexions. Les actions répercutées seront appliquées seulement à toutes les connexions ouvertes. Les connexions paresseuses ouvertes dans le futur ne seront pas affectées. Seules quelques configurations seront "retenues" et appliquées lorsqu'une connexion paresseuse sera ouverte.

Exemple #27 Désactivation des connexions paresseuses

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "lazy_connections": 0
    }
}

Voir aussi server_charset afin de prévenir de possibles problèmes avec les chaînes échappées et des serveurs utilisant des jeux de caractères différents.

server_charset string

Ce paramètre a été introduit en 1.4.0. Il est recommandé de le définir lors de l'utilisation des connexions paresseuses.

L'option server_charset a deux buts. Il agit comme un jeu de caractères de secours à utiliser lors de l'échappement des chaînes avant qu'une connexion ne soit établie, et il aide à éviter les erreurs lors de l'échappement en environnements hétérogènes avec des serveurs utilisant des jeux de caractères différents.

L'échappement des chaînes prend en compte le jeu de caractères de la connexion. L'échappement des chaînes n'est pas possible avant qu'une connexion ne soit ouverte, et que le jeu de caractères de la connexion ne soit connu. L'utilisation des connexions paresseuses retarde l'ouverture de la connexion, attendant qu'une requête ne soit envoyée.

Une application utilisant les connexions paresseuses peut tenter d'échapper une chaîne avant d'envoyer une requête. En fait, c'est un cas commun sachant que la chaîne de requête peut contenir la chaîne à échapper. Cependant, en raison de l'utilisation des connexions paresseuses, aucune connexion n'a été ouverte et l'échappement échoue. Le plugin peut rapporter une erreur de type E_WARNING ainsi qu'un message de ce type : (mysqlnd_ms) string escaping doesn't work without established connection. Possible solution is to add server_charset to your configuration afin de vous informer de cet échec.

Le fait de définir server_charset fera que le plugin utilisera le jeu de caractères fourni lors de l'échappement des chaînes effectué sur des connexions paresseuses avant d'établir une connexion réseau vers MySQL. De plus, le plugin va forcer l'utilisation de ce jeu de caractères lorsque la connexion est établie.

Le forcage de l'utilisation du jeu de caractères configuré pour l'échappement est réalisé pour éviter d'avoir des erreurs en utilisant un jeu de caractères pour l'échappement différent de celui utilisé ensuite pour la connexion. Cela apporte également l'avantage de ne pas avoir à aligner la configuration du jeu de caractères pour tous les serveurs utilisés. Inutile de savoir le jeu de caractères par défaut des serveurs, le plugin définiera celui configuré par défaut.

Le plugin n'empêchera pas l'utilisateur de changer le jeu de caractères à tout moment, en utilisant la fonction set_charset() ou une requête SQL équivalente. Veuillez noter que l'utilisation de SQL n'est pas recommandé car il ne pourra pas être surveiller par le plugin. L'utilisateur peut, par exemple, modifier le jeu de caractères sur un gestionnaire de connexions paresseuses après l'échappement d'une chaîne et avant que la connexion actuelle ne soit ouverte. Le jeu de caractères définit par l'utilisateur sera utilisé pour tous les échappements avant que la connexion ne soit établie. La connexion sera établie en utilisant le jeu de caractères configuré, peu importe le jeu de caractères du serveur, et peu importe le jeu de caractères défini par l'utilisateur auparavant. Une fois une connexion ouverte, set_charset n'a plus de sens.

Exemple #28 Echappement d'une chaîne sur une connexion paresseuse

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "lazy_connections": 1,
        "server_charset" : "utf8"
    }
}
<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
$mysqli->real_escape("this will be escaped using the server_charset setting - utf8");
$mysqli->set_charset("latin1");
$mysqli->real_escape("this will be escaped using latin1");
/* server_charset définit implicitement une connexion utf8 */
$mysqli->query("SELECT 'This connection will be set to server_charset upon establishing' AS _msg FROM DUAL");
/* latin1 sera maintenant utilisé */
$mysqli->set_charset("latin1");
?>

master_on_write bool

Si définit, le plugin utilisera le serveur maître uniquement après que la première requête ait été exécutée sur le maître. Les applications peuvent toujours envoyer les requêtes aux esclaves en utilisant les astuces SQL pour écraser la décision automatique.

Cette configuration permet de corriger le lag dans la réplication. Si une application exécute une requête INSERT, le plugin utilisera, par défaut, le maître pour exécuter les requêtes suivantes, y compris les requêtes SELECT. Ceci permet d'éviter les problèmes de lecture depuis les esclaves qui n'ont pas encore répliqués les requêtes INSERT.

Exemple #29 Utilisation du maître lors d'une écriture pour consolider les lectures

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "master_on_write": 1
    }
}

Veuillez noter que le filtre quality_of_service a été introduit en version 1.2.0-alpha. Il fournit un contrôle plus fin, par exemple, pour effectuer une lecture de vos écritures, et, il offre des fonctionnalités supplémentaires en introduisant les niveaux de service.

Toutes les configurations de transaction rigide, incluant trx_stickiness=on, seront écrasées par master_on_write=1.

trx_stickiness string

Politique des transactions colantes. Les politiques supportées sont disabled (défaut), master.

Cette configuration nécessite PHP 5.4.0 ou supérieure. Si utilisée sur des versions de PHP plus anciennes, le plugin émettra une alerte de type (mysqlnd_ms) trx_stickiness strategy is not supported before PHP 5.3.99.

Si aucune politique de transaction colante n'est défini, ou bien si la configuration trx_stickiness=disabled est utilisée, le plugin ne tiendra pas compte des transactions. Ainsi, le plugin peut effectuer un balance de charge des connexions, et changer de connexions en plein milieu d'une transaction. Le plugin n'est ainsi pas sécurisé sur les transactions. Les astuces SQL peuvent être utilisées pour empécher les changements de connexions durant une transaction.

Depuis PHP 5.4.0, la bibliothèque mysqlnd autorise le plugin à surveiller la définition du mode autocommit par appel à la fonction set_autocommit() de la bibliothèque. Si set_stickiness=master et autocommit a été désactivé par une extension PHP MySQL en invoquant la fonction set_autocommit() de la bibliothèque interne mysqlnd, le plugin tiendra compte d'un début de transaction. Ainsi, le plugin arrêtera les balances de charge et dirigera toutes les requêtes vers le maître tant que autocommit est actif. Dans ce cas, aucune astuce SQL n'est nécessaire.

Un exemple de fonction de l'API PHP MySQL appelant la fonction interne set_autocommit() de la bibliothèque mysqlnd est la fonction mysqli_autocommit().

Malgré la configuration trx_stickiness=master, le plugin ne tiendra pas compte d'une modification du mode autocommit réalisée par une requête SQL comme SET AUTOCOMMIT=0 ou BEGIN.

Depuis PHP 5.5.0, de nouvelles fonctionalités de la bibliothèque mysqlnd permettent de contrôler les transactions. Le niveau de contrôle correspond à celui fourni par la requête SQL. L'API mysqli a été modifiée pour utiliser ces appels. Depuis la version 1.5.0, PECL/mysqlnd_ms peut surveiller non seulement mysqli_autocommit() mais aussi mysqli_begin(), mysqli_commit() et mysqli_rollback() pour détecter les limites de la transaction et arrêter la balance de charge durant une transaction.

Exemple #30 Utilisation du maître pour l'exécution des transactions

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "trx_stickiness": "master"
    }
}

Depuis la version 1.5.0, le failover automatique ou silencieux est désactivé pour la durée d'une transaction. Si les limites d'une transaction ont été détectées proprement, la rigidité de la transaction est activé et un serveur échoue, alors le plugin ne va pas tenter d'utiliser le prochain serveur, s'il existe, suivant la politique de failover configurée. L'utilisation doit gérer cette erreur manuellement. Suivant la configuration, le plugin peut émettre une erreur de type E_WARNING comme celle-ci (mysqlnd_ms) Automatic failover is not permitted in the middle of a transaction. Cette erreur peut ensuite être écrasée par un suivi des erreurs comme (mysqlnd_ms) No connection selected by the last filter. Ces erreurs seront générées par la fonction exécutant la requête qui a échouée.

Exemple #31 Aucun failover automatique, utilisation d'un gestionnaire d'erreurs

<?php
/* On suppose que le failover automatique est configuré */
$mysqli = new mysqli("myapp", "username", "password", "database");

/* Défini le statut interne du plugin à in_trx = 1 */
$mysqli->autocommit(false);

/* On suppose que le serveur échoue */
if (!($res = $mysqli->query("SELECT 'Assume this query fails' AS _msg FROM DUAL"))) {
 /* Gestion de l'échec de la transaction, le statut interne du plugin est toujours in_trx = 1 */
 printf("[%d] %s", $mysqli->errno, $mysqli->error);
 /*
  Si vous utilisez l'autocommit() pour les transactions, il est préférable
  de l'appeler comme ceci : autocommit(true). Sinon, le plugin pensera
  que la transaction courante continue, et ainsi, toute modification
  de connexion sera interdite.
 */
 $mysqli->autocommit(true);
 /* De plus, vous pouvez vouloir démarrer une nouvelle transaction */
 $mysqli->autocommit(false);
}
/* Maintenant, utilisation du latin1 */
$mysqli->set_charset("latin1");
?>

Si un serveur échoue au milieu d'une transaction, le plugin continue à refuser le changement de connexions tant que la transaction courante n'est pas terminée. Souvenez-vous que le plugin surveille les appels API pour détecter les limites de la transaction. Aussi, vous devez, par exemple, activer le mode autocommit pour finir la transaction courante avant que le plugin ne continue à faire du balance de charge et ainsi, ne change de serveur. De plus, vous voudriez vouloir démarrer une nouvelle transaction immédiatement après, et désactiver l'autocommit.

Le fait de ne pas gérer les requêtes qui échouent, et de ne pas terminer une transaction en échec utilisant des appels API, peuvent causer des erreurs de ce type : Commands out of sync; you can't run this command now. Aussi, il est important de gérer toutes les erreurs.

transient_error object

Cette option a été introduite en version 1.6.0.

Un noeud de cluster de bases de données peut émettre une erreur passagère au client. Le client peut alors répéter l'opération sur le même noeud, peut changer de noeud, ou peut annuler l'opération. Par définition, il est résonnable pour un client de re-tenter la même opération sur le même noeud avant de continuer.

PECL/mysqlnd_ms peut entrer dans une boucle de tentatives à la place de l'application. En configuration l'option transient_error, le plugin peut répéter l'opération ayant échouée avec un code erreur spécifique pendant un certain nombre de fois, avec une pause entre chaque tentative. Si l'erreur passagère disparaît pendant l'exécution de la boucle, elle ne sera pas vue de l'application. Sinon, l'erreur sera transmise à l'application à la fin de la boucle.

Exemple #32 Boucle de tentative pour les erreurs passagères

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
       },
       "transient_error": {
          "mysql_error_codes": [
            1297
          ],
          "max_retries": 2,
          "usleep_retry": 100
       }
    }
}

Clé Description Version
mysql_error_codes

Liste des codes erreurs passagères. Vous pouvez y inclure n'importe quel code erreur MySQL. Il est possible de considérer n'importe quelle erreur comme passagère, et pas seulement l'erreur 1297 (HY000 (ER_GET_TEMPORARY_ERRMSG), Message: Got temporary error %d '%s' from %s). Avant d'ajouter d'autres codes erreurs, autre que 1297, à cette liste, assurez-vous que votre cluster supporte une nouvelle tentative sans impacter le statut de votre application.

Depuis 1.6.0.
max_retries

Le nombre de tentatives d'une opération échouant avec une erreur passagère avant d'envoyer l'erreur à l'utilisateur.

Par défaut : 1

Depuis 1.6.0.
usleep_retry

Durée en millisecondes d'attente entre deux tentatives. La valeur est passée à la fonction C usleep().

Par défaut : 100

Depuis 1.6.0.
xa object

Cette option a été introduite en 1.6.0.

Note: Expérimental

Cette fonctionnalité est actuellement en cours de développement. Il peut y avoir des bogues ou des limitations dans la fonctionnalité. Ne pas utiliser en environnement de production.

state_store
record_participant_credentials

Si l'on doit stocker le nom d'utilisateur et le mot de passe d'un participant à une transaction globale dans la table des participants. Si désactivé, la collection des données incorrectes va utiliser le nom d'utilisateur et le mot de passe par défaut lors de la connexion aux participants. Tant que vous n'utilisez pas de nom d'utilisateur et de mot de passe différents pour chaque serveur MySQL, vous pouvez utiliser la configuration par défaut, faisant ainsi que vous ne stockerez pas d'informations sensibles dans le stockage de statut.

Veuillez noter que le nom d'utilisateur et le mot de passe sont stockés en clear lors de l'utilisation du stockage de statut MySQL, qui est le seul moyen de stockage actuellement. Il en est de votre responsabilité de protéger cette information sensible.

Par défaut : false

participant_localhost_ip

Durant la collection des données incorrectes XA, le plugin peut trouver un serveur participant avec l'hôte localhost enregistré. Si la collection de données incorrectes prend place sur un autre hôte que celui enregistré pour le participant, alors le nom d'hôte localhost doit résoudre un hôte différent. Toutefois, lors de l'enregistrement de nom d'hôte de serveur participant dans le stockage de statut, au lieu d'utiliser la valeur localhost, vous pouvez utiliser l'adresse IP actuelle de localhost.

La définition de participant_localhost_ip ne doit être considérée que si localhost ne peut être utilisé. D'un point de vue de la collection des données incorrectes uniquement, il est préférable de ne pas configurer de socket de connexion mais plutôt de fournir un adresse IP et un port pour un noeud.

mysql

Le stockage de statut MySQL est le seul stockage de statut disponible.

global_trx_table

Nom de la table MySQL utilisé pour stocker le statut d'une transaction globale entrant ou stoppée. Utilisez la requête SQL ci-dessous pour créer la table. Assurez-vous d'éditer le nom de la table pour la faire correspondre à votre configuration.

Par défaut : mysqlnd_ms_xa_trx

Exemple #33 Définition SQL pour la table de stockage MySQL de statut des transactions

CREATE TABLE mysqlnd_ms_xa_trx (
  store_trx_id int(11) NOT NULL AUTO_INCREMENT,
  gtrid int(11) NOT NULL,
  format_id int(10) unsigned NOT NULL DEFAULT '1',
  state enum('XA_NON_EXISTING','XA_ACTIVE','XA_IDLE','XA_PREPARED','XA_COMMIT','XA_ROLLBACK') NOT NULL DEFAULT 'XA_NON_EXISTING',
  intend enum('XA_NON_EXISTING','XA_ACTIVE','XA_IDLE','XA_PREPARED','XA_COMMIT','XA_ROLLBACK') DEFAULT 'XA_NON_EXISTING',
  finished enum('NO','SUCCESS','FAILURE') NOT NULL DEFAULT 'NO',
  modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  started datetime DEFAULT NULL,
  timeout datetime DEFAULT NULL,
  PRIMARY KEY (store_trx_id),
  KEY idx_xa_id (gtrid,format_id,finished),
  KEY idx_state (state)
) ENGINE=InnoDB

participant_table

Nom de la table MySQL utilisé pour stocker les participants à une transaction globale entrante ou stoppée. Utilisez la requête SQL ci-dessous pour créer la table. Assurez-vous d'éditer le nom de la table pour la faire correspondre à votre configuration.

Le stockage des informations de connexion peut être activé ou désactivé en utilisant record_participant_credentials

Par défaut : mysqlnd_ms_xa_participants

Exemple #34 Définition SQL de la table de stockage MySQL de statut des transactions

CREATE TABLE mysqlnd_ms_xa_participants (
  fk_store_trx_id int(11) NOT NULL,
  bqual varbinary(64) NOT NULL DEFAULT '',
  participant_id int(10) unsigned NOT NULL AUTO_INCREMENT,
  server_uuid varchar(127) DEFAULT NULL,
  scheme varchar(1024) NOT NULL,
  host varchar(127) DEFAULT NULL,
  port smallint(5) unsigned DEFAULT NULL,
  socket varchar(127) DEFAULT NULL,
  user varchar(127) DEFAULT NULL,
  password varchar(127) DEFAULT NULL,
  state enum('XA_NON_EXISTING','XA_ACTIVE','XA_IDLE','XA_PREPARED','XA_COMMIT','XA_ROLLBACK')
   NOT NULL DEFAULT 'XA_NON_EXISTING',
  health enum('OK','GC_DONE','CLIENT ERROR','SERVER ERROR') NOT NULL DEFAULT 'OK',
  connection_id int(10) unsigned DEFAULT NULL,
  client_errno smallint(5) unsigned DEFAULT NULL,
  client_error varchar(1024) DEFAULT NULL,
  modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (participant_id),
  KEY idx_xa_bqual (bqual),
  KEY idx_store_trx (fk_store_trx_id),
  CONSTRAINT mysqlnd_ms_xa_participants_ibfk_1 FOREIGN KEY (fk_store_trx_id)
    REFERENCES mysqlnd_ms_xa_trx (store_trx_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB
garbage_collection_table

Nom de la table MySQL utilisé pour surveiller et synchroniser les exécutions de la collection des données incorrectes. Utilisez la requête SQL ci-dessous pour créer la table. Assurez-vous d'éditer le nom de la table pour la faire correspondre à votre configuration.

Par défaut : mysqlnd_ms_xa_gc

Exemple #35 Définition SQL pour la table MySQL de stockage de statut de la collection des données incorrectes

CREATE TABLE mysqlnd_ms_xa_gc (
  gc_id int(10) unsigned NOT NULL AUTO_INCREMENT,
  gtrid int(11) NOT NULL,
  format_id int(10) unsigned NOT NULL DEFAULT '1',
  fk_store_trx_id int(11) DEFAULT NULL,
  modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  attempts smallint(5) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (gc_id),
  KEY idx_store_trx (gtrid,format_id,fk_store_trx_id)
) ENGINE=InnoDB
host

Nom d'hôte du serveur MySQL.

user

Nom de l'utilisateur à utiliser pour la connexion au serveur MySQL.

password

Mot de passe à utiliser pour le serveur MySQL.

db

Base de données qui contiendra les tables de collection des données incorrectes. Notez que vous devez d'abord créer les tables avant d'utiliser le plugin. Les tables ne seront pas créées pendant l'exécution et la collection des données incorrectes va échouer si les tables n'existent pas.

port

Port du serveur MySQL.

socket

Socket de domaine Unix pour le serveur MySQL. Notez que si vous avez plusieurs serveurs PHP, chacun d'eux va tenter de s'occuper de la collection des données incorrectes, et doit pouvoir se connecter au stockage de statut. Dans ce cas, vous devriez configurer l'adresse IP et le port pour le serveur de stockage de statut MySQL pour vous assurer que tous les serveurs PHP arrivent à le trouver.

rollback_on_close

Si l'on doit automatiquement annuler une transaction globale ouverte lorsqu'une connexion se ferme. Si actif, le comportement par défaut des transactions locales sera imité. Si un client se déconnecte, le serveur annulera toute transaction ouverte et non terminée.

Par défaut : true

garbage_collection
max_retries

Nombre maximal de collection de données incorrectes à tenter. Les valeurs autorisées vont de 0 à 100. Une configuration à 0 signifie aucune limite, tant que le stockage de statut ne force une limite. Si le stockage de statut force une limite, on peut supposer que ce sera une valeur supérieure à 100. Disponible depuis 1.6.0.

Veuillez noter qu'il est très important de terminer les transactions XA en échec dans un délai raisonnable afin de permettre aux serveurs participants de libérer les ressources associées à la transaction. Le collecteur de données incorrectes embarqué n'est pas prévu pour être en échec pendant une longue période, au moins tant que les serveurs en échec redeviennent disponibles. Aussi, il peut arriver dans quelques situations qu'une action humaine soit nécessaire à cause du fait que le collecteur de données incorrectes soit stoppé ou en échec. Dans ce cas, vous devriez vouloir d'abord vérifier si la transaction ne peut pas être réparée en forçant la fonction mysqlnd_ms_xa_gc() à ignorer cette configuration, avant de gérer le problème manuellement.

Par défaut : 5

probability

Probabiblité de la collecte des données incorrectes. Les valeurs autorisées sont dans l'intervalle 0 à 1000. Une valeur de 0 désactive la collecte des données incorrectes en arrière-plan. Malgré une valeur de 0, il est toujours possible de lancer une collecte de données incorrectes en appelant la fonction mysqlnd_ms_gc(). Disponible depuis la version 1.6.0.

La collection automatique de données incorrectes d'une transaction XA dans un statut incorrect est uniquement disponible si un stockage de statut a été configuré. Suivant ces enregistrements, il peut trouver des transactions XA bloquées où le client est en erreur, se connecter aux participants, et annuler les transactions non terminées.

La collecte des données incorrectes est lancée comme étant une partie d'une demande de procédure d'arrêt PHP à la fin d'une requête web. Suivant le moment où on décide de lancer la collecte des données incorrectes, une valeur aléatoire entre 0 et 1000 est calculée. Si la valeur probability est supérieure ou égale à la valeur aléatoire, les routines du stockage de statut du collecteur de données incorrectes sont appelées..

Par défaut : 5

max_transactions_per_run

Nombre maximal de transactions XA non terminées considérées par la collecte des données incorrectes pendant une exécution. Les valeurs autorisées doivent être dans l'intervalle 1 à 32768. Disponible depuis la version 1.6.0.

Le nettoyage d'une transaction XA non terminée prend beaucoup de temps et de ressource. La routine de collecte des données incorrectes doit se connecter à plusieurs participants d'une transaction globale en échec pour y émettre des commandes SQL pour annuler la transaction non terminée.

Par défaut : 100

Fichier de configuration du plugin (<= 1.0.x)

Note:

La description suivante s'applique à PECL/mysqlnd_ms < 1.1.0-beta. Elle n'est pas valide pour les versions supérieures.

Le plugin utilise son propre fichier de configuration. Ce fichier contient les informations sur les serveurs maîtres de réplication MySQL, les serveurs esclaves de réplication MySQL, la politique de sélection de serveur (balance de charge), la stratégie de basculement ainsi que l'utilisation des connexions paresseuses.

La directive de configuration PHP mysqlnd_ms.ini_file est utilisée pou définir le fichier de configuration du plugin.

Le fichier de configuration reprend le standard du format php.ini. Il contient un ou plusieurs sections. Chaque section définit sa propre unité de configuration. Il n'y a pas de section globale pour la configuration par défaut.

Les applications se réfèrent aux sections par leurs noms. Les applications utilisent les noms de section comme paramètre de l'hôte (serveur) dans les différentes méthodes de connexion des extensions comme mysqli, mysql et PDO_MYSQL. Lors de la connexion, le plugin mysqlnd compare le nom de l'hôte avec tous les noms de section depuis le fichier de configuration du plugin. Si le nom d'hôte et le nom de section correspondent, le plugin chargera la configuration depuis cette section.

Exemple #36 Exemple d'utilisation des noms de section

[myapp]
master[] = localhost
slave[] = 192.168.2.27
slave[] = 192.168.2.28:3306
[localhost]
master[] = localhost:/tmp/mysql/mysql.sock
slave[] = 192.168.3.24:3305
slave[] = 192.168.3.65:3309
<?php
/* Toutes les sections suivantes seront soumises à la balance de charge */
$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");

$mysqli = new mysqli("localhost", "username", "password", "database");
?>

Les noms de section sont des chaînes de caractères. Il est valide d'utiliser un nom de section comme 192.168.2.1, 127.0.0.1 ou localhost. Si, par exemple, une application se connecte à localhost et une section de configuration du plugin [localhost] existe, la sémantique de l'opération de connexion change. L'application n'utilisera plus seulement le serveur MySQL fonctionnant sur l'hôte localhost, mais le plugin commencera à balancer la charge des requêtes MySQL en suivant les règles depuis la section de configuration [localhost]. De cette façon, vous pouvez effectuer un balance de charge depuis une application sans aucune modification du code source de l'application.

Les directives de configuration master[], slave[] et pick[] utilisent une syntaxe sous forme de liste. Ces directives peuvent apparaître à plusieurs reprises dans une section de configuration. Le plugin maintient l'ordre dans laquelle les entrées apparaîssent au moment de leurs interprétations. Par exemple, l'exemple ci-dessous montre les directives de configuration pour 2 slave[] dans la section de configuration [myapp]. Si vous utilisez la balance de charge round-robin pour les requêtes en lecture seule, le plugin enverra la premère requête en lecture seule au serveur MySQLL mysql_slave_1 parce qu'il est premier dans la liste. La seconde requête en lecture seule sera envoyée au serveur MySQL mysql_slave_2 parce qu'il est second sur la liste. Les directives de configuration supportant la syntaxe sous forme de liste sont ordonnées depuis le haut vers le bas, dans l'ordre de leurs apparissions dans la section de configuration.

Exemple #37 Syntaxe sous forme de liste

[myapp]
master[] = mysql_master_server
slave[] = mysql_slave_1
slave[] = mysql_slave_2

Voici une explication brève sur les directives de configuration pouvant être utilisées.

master[] string

URI d'un serveur de réplication MySQL maitres. L'URI est de la forme hostname[:port|unix_domain_socket].

Le plugin ne supporte que l'utilisation d'un seul maitre à la fois.

Déclarer un maitre est obligatoire. Le plugin renverra une alerte à la connexion si il ne trouve pas de maitre dans la configuration. Ce message d'alerte peut ressembler à (mysqlnd_ms) Cannot find master section in config. Aussi, le plugin renseignera sur un code d'erreur pour la connexion HY000/2000 (CR_UNKNOWN_ERROR). Le message dépend de la langue considérée.

slave[] string

URI d'un ou plusieurs serveurs de réplication MySQL esclaves. L'URI est de la forme hostname[:port|unix_domain_socket].

Le plugin supporte l'utilisation d'un ou plusieurs esclaves.

Déclarer au moins un esclave est obligatoire. Le plugin renverra une alerte à la connexion s'il ne trouve pas au moins un esclave dans la configuration. Ce message d'alerte peut ressembler à (mysqlnd_ms) Cannot find slaves section in config. Aussi, le plugin renseignera sur un code d'erreur pour la connexion HY000/2000 (CR_UNKNOWN_ERROR).Le message dépend de la langue considérée.

pick[] string

Politique de balance de charge (choix du serveur). Sont supportées : random, random_once (defaut), roundrobin, user.

Si aucune politique n'est précisée, random_once sera utilisée. La politique random_once choisit un serveur esclave au hasard lors de la première requête en lecture. Le serveur esclave sera alors utilisé pour toutes les requêtes en lecture jusqu'à l'extinction de PHP.

La politique random choisira un serveur esclave au hasard pour chaque requête de lecture.

Avec roundrobin le plugin parcourt la liste des esclaves déclarés et les choisit un-à-un pour chaque requête. Si le plugin atteint la fin de la liste, il prendra le premier serveur esclave configuré.

Utiliser plus d'une politique d'équilibrage par section de configuration n'est effectif qu'avec la politique user et avec mysqlnd_ms_set_user_pick_server(). Si la fonction utilisateur échoue à la selection d'un serveur, le plugin se rabat sur le second choix de politique d'équilibrage.

failover string

Politique de gestion des incidents (failover). Sont supportées : disabled (défaut), master.

Si aucune politique de gestion d'incident (failover) n'est utilisée, le plugin n'effectuera aucun failover automatique (failover=disabled). Dès lors que le plugin échoue à la connexion sur un serveur, il émet un warning et change le code d'erreur et le message d'erreur de la connexion. Après, c'est à l'application de gérer l'erreur et d'éventuellement relancer la requête pour déclencher la selection d'un autre serveur.

Si vous utilisez failover=master, le plugin changera vers un esclave automatiquement en failover, si possible. Veuillez lire la documentation dans le cas de l'utilisation de failover=master, cela comporte des risques à connaitre.

lazy_connections bool

Utilise ou non des connexions paresseuses. Ce sont des connexions qui ne sont pas établies tant que le client n'envoie pas d'informations vers celle-ci.

Il est fortement recommandé d'utiliser les connexions paresseuses, car elles aident à réduire le nombre de connexions simultanées ouvertes. Si vous les désactivez, et que par exemple, vous configurez un maitre de réplication et deux esclaves, le plugin ouvrira alors 3 connexions dès le premier appel alors que l'application pourrait ne vouloir utiliser que le maitre.

Les connexions parresseuses représentent par contre un problème si vous changez souvent le statut de vos connexions. En effet, le plugin ne fait suivre les ordres de changement de statut qu'aux connexions effectivement déja ouvertes, et non à celles qui sont configurées, mais pas encore ouvertes. Par exemple, si le jeu de caractères devait être changé en utilisant un appel PHP vers l'API MySQL, le plugin ne changera que pour les connexions ouvertes. Il ne se souviendra pas du jeu de caractères à appliquer aux futures connexions à établir, elles supporteront alors un autre jeu de caractères, ce qui n'est pas très intelligent, étant donné que les jeux de caractères sont utilisés dans l'échappement.

master_on_write bool

Si utilisé, le plugin utilisera le maitre immédiatement après le premier appel à celui-ci. Les applications pourront toujours utiliser les astuces SQL pour discuter avec les esclaves.

Ce paramètre peut aider à réduire la latence de la réplication. Si une application lance un INSERT le plugin selectionnera par défaut le maitre pour toutes les requêtes futures, y compris les SELECT. Ceci aide à éviter les problèmes de lectures sur des esclaves qui n'ont pas encore répliqué le INSERT précédent.

trx_stickiness string

Politique d'accrochage des transactions. Sont supportées : disabled (défaut), master.

Fonctionnalité expérimentale.

Cette fonctionnalité requiert 5.4.0 ou plus récent. Si vous utilisez PHP avant 5.4.0, le plugin va emettre un warning comme (mysqlnd_ms) trx_stickiness strategy is not supported before PHP 5.3.99.

Si aucune politique d'accrochage des transactions n'est utilisée ou si trx_stickiness=disabled, le plugin n'est pas relatif aux transactions. Ainsi, le plugin pourrait équilibrer les connexions et basculer d'une à l'autre en plein milieu d'une transaction. Le plugin n'est pas sûr pour les transactions. Des astuces SQL devraient être utilisées pour éviter de tels cas.

Depuis PHP 5.4.0, la bibliothèque mysqlnd permet au plugin de surveiller le mode autocommit en appelant la fonction trx_autocommit(). Si trx_stickiness=master et autocommit que les transactions sont désactivées suite à un appel de mysqlnd à trx_autocommit(), le plugin devient sensible au début de la transaction. Il arrête alors l'équilibrage de charge automatique et dirige les requêtes vers le maitre jusqu'à ce que autocommit soit activé. Ainsi, aucune astuce SQL n'est requise.

Un exemple d'une fonction PHP déclenchant un appel de mysqlnd à trx_autocommit() est mysqli_autocommit().

Même si trx_stickiness=master, le plugin ne peut être mis au courant des changements du mode autocommit causés par des requêtes SQL comme SET AUTOCOMMIT=0.

Testing

Note:

Cette section s'applique pour myslqnd_ms 1.1.0 ou supérieure, et non pour la série 1.0.

La suite de test PECL/mysqlnd_ms se trouve dans le dossier tests/ des sources de la distribution. La suite de test consiste en des tests standards phpt, qui sont décrits sur le site d'assurance qualité de PHP.

L'exécution des tests nécessite la configuration d'un à 4 serveurs MySQL. Quelques tests ne se connectent pas du tout à MySQL. D'autres ne nécessitent qu'un seul serveur. D'autres, deux. Dans la plupart des cas, deux serveurs sont utilisés pour émuler la configuration d'une réplication. Dans d'autres cas, un maître et un esclave d'une configuration de réplication MySQL existante est nécessaire pour les tests. Les tests vont tenter de détecter le nombre de serveurs et le type de serveurs fournis. Si les serveurs requis ne sont pas trouvés, le test ne sera pas effecté, automatiquement.

Avant d'effectuer ces tests, éditez le fichier tests/config.inc pour configurer les serveurs MySQL à utiliser lors des tests.

Voici la configuration habituellement utilisée :

 putenv("MYSQL_TEST_HOST=localhost");
 putenv("MYSQL_TEST_PORT=3306");
 putenv("MYSQL_TEST_USER=root");
 putenv("MYSQL_TEST_PASSWD=");
 putenv("MYSQL_TEST_DB=test");
 putenv("MYSQL_TEST_ENGINE=MyISAM");
 putenv("MYSQL_TEST_SOCKET=");

 putenv("MYSQL_TEST_SKIP_CONNECT_FAILURE=1");
 putenv("MYSQL_TEST_CONNECT_FLAGS=0");
 putenv("MYSQL_TEST_EXPERIMENTAL=0");

 /* émulation d'un cluster de réplication */
 putenv("MYSQL_TEST_EMULATED_MASTER_HOST=". getenv("MYSQL_TEST_HOST"));
 putenv("MYSQL_TEST_EMULATED_SLAVE_HOST=". getenv("MYSQL_TEST_HOST"));

 /* cluster de réplication réel */
 putenv("MYSQL_TEST_MASTER_HOST=". getenv("MYSQL_TEST_EMULATED_MASTER_HOST"));
 putenv("MYSQL_TEST_SLAVE_HOST=". getenv("MYSQL_TEST_EMULATED_SLAVE_HOST"));

MYSQL_TEST_HOST, MYSQL_TEST_PORT et MYSQL_TEST_SOCKET définissent le nom de l'hôte, le port TCP/IP et le socket du domaine Unix pour le serveur de base de données par défaut. MYSQL_TEST_USER et MYSQL_TEST_PASSWD contiennent le nom de l'utilisateur et le mot de passe nécessaires pour la connexion à la base de données/schéma configurée avec MYSQL_TEST_DB. Tous les serveurs doivent avoir le même utilisateur de base de données de configuré pour donner l'accès à la base de données de test.

L'utilisation de la syntaxe host, host:port ou host:/path/to/socket pour MYSQL_TEST_SLAVE_HOST permet de définir un hôte, un port et un hôte, et un socket différent pour le serveur esclave logique.

putenv("MYSQL_TEST_SLAVE_HOST=192.168.78.136:3307"));
putenv("MYSQL_TEST_MASTER_HOST=myserver_hostname:/path/to/socket"));

Débogage et surveillance

Les logs de débogage mysqlnd peuvent être utilisées pour le débogage et la surveillance de l'activité de PECL/mysqlnd_ms, vu que mysqlnd PECL/mysqlnd_ms ajoute des informations de surveillance dans le fichier de débogage de la bibliothèque mysqlnd. Reportez-vous à la documentation sur la directive de configuration PHP mysqlnd.debug pour plus d'informations détaillées sur la façon dont doit être configurer les logs de débogage.

Exemple de configuration de cette directive pour activer les logs de débogage :

mysqlnd.debug=d:t:x:O,/tmp/mysqlnd.trace

Note:

Cette fonctionnalité n'est disponible qu'avec une compilation de PHP en mode débogage. Elle fonctionne sous Microsoft Windows si l'on utilise PHP en mode débogage et que PHP a été compilé en utilisant Microsoft Visual C version 9 et supérieure.

Les logs de débogage montrent les appels fonctions à la bibliothèque mysqlnd et PECL/mysqlnd_ms. Les appels à mysqlnd sont habituellement préfixés avec mysqlnd_. Les appels internes PECL/mysqlnd commencent avec mysqlnd_ms.

Exemple attendu depuis les logs de débogage (connexion) :

[...]
>mysqlnd_connect
| info : host=myapp user=root db=test port=3306 flags=131072
| >mysqlnd_ms::connect
| | >mysqlnd_ms_config_json_section_exists
| | | info : section=[myapp] len=[5]
| | | >mysqlnd_ms_config_json_sub_section_exists
| | | | info : section=[myapp] len=[5]
| | | | info : ret=1
| | | <mysqlnd_ms_config_json_sub_section_exists
| | | info : ret=1
| | <mysqlnd_ms_config_json_section_exists
[...]

Les logs de débogage ne sont pas uniquement utiles pour les développeurs du plugin, mais aussi pour trouver la cause d'erreurs utilisateurs. Par exemple, si votre application ne gère pas correctement les erreurs, et échoue dans l'enregistrement des messages d'erreur, le fait de vérifier les logs de débogage et de surveillance peut aider dans la recherche de la cause. L'utilisation des logs de débogage pour déboguer l'application ne doit être considérée que si aucune autre option n'est disponible. Le fait d'écrire les logs de débogage sur le disque est une opération lente et peut avoir des impacts négatifs dans les performances de l'application.

Exemple attendu depuis les logs de débogage (échec de connexion) :

[...]
| | | | | | | info : adding error [Access denied for user 'root'@'localhost' (using password: YES)] to the list
| | | | | | | info : PACKET_FREE(0)
| | | | | | | info : PACKET_FREE(0x7f3ef6323f50)
| | | | | | | info : PACKET_FREE(0x7f3ef6324080)
| | | | | | <mysqlnd_auth_handshake
| | | | | | info : switch_to_auth_protocol=n/a
| | | | | | info : conn->error_info.error_no = 1045
| | | | | <mysqlnd_connect_run_authentication
| | | | | info : PACKET_FREE(0x7f3ef63236d8)
| | | | | >mysqlnd_conn::free_contents
| | | | | | >mysqlnd_net::free_contents
| | | | | | <mysqlnd_net::free_contents
| | | | | | info : Freeing memory of members
| | | | | | info : scheme=unix:///tmp/mysql.sock
| | | | | | >mysqlnd_error_list_pdtor
| | | | | | <mysqlnd_error_list_pdtor
| | | | | <mysqlnd_conn::free_contents
| | | | <mysqlnd_conn::connect
[...]

Les logs de surveillance peuvent également être utilisés pour vérifier le comportement correct de PECL/mysqlnd_ms, par exemple, pour vérifier quel serveur a été sélectionné pour l'exécution de la requête et pourquoi celui-là.

Exemple attendu depuis les logs de débogage (décision du plugin) :

[...]
>mysqlnd_ms::query
| info : query=DROP TABLE IF EXISTS test
| >_mysqlnd_plugin_get_plugin_connection_data
| | info : plugin_id=5
| <_mysqlnd_plugin_get_plugin_connection_data
| >mysqlnd_ms_pick_server_ex
| | info : conn_data=0x7fb6a7d3e5a0 *conn_data=0x7fb6a7d410d0
| | >mysqlnd_ms_select_servers_all
| | <mysqlnd_ms_select_servers_all
| | >mysqlnd_ms_choose_connection_rr
| | | >mysqlnd_ms_query_is_select
[...]
| | | <mysqlnd_ms_query_is_select
[...]
| | | info : Init the master context
| | | info : list(0x7fb6a7d3f598) has 1
| | | info : Using master connection
| | | >mysqlnd_ms_advanced_connect
| | | | >mysqlnd_conn::connect
| | | | | info : host=localhost user=root db=test port=3306 flags=131072 persistent=0 state=0

Dans ce cas, la requête DROP TABLE IF EXISTS test a été exécutée. Notez que la chaîne de requête est affichée directement dans le fichier de logs. Aussi, vous devriez restreindre l'accès à ce fichier suivant vos contraintes de sécurité.

La requête a été soumis à la balance de charge en utilisant la politique round robin, comme vous pouvez facilement le deviner depuis le nom de la fonction mysqlnd_ms_choose_connection_rr. Elle a été envoyée au serveur maître s'exécutant sur host=localhost user=root db=test port=3306 flags=131072 persistent=0 state=0.

Monitoring

L'activité du plugin peut être surveillée en utilisant les logs de trace mysqlnd, les statistiques mysqlnd, les statistiques du plugin mysqlnd_ms, ainsi que des outils de déboggage PHP externes. L'utilisation des logs de trace devrait être limitée au débogage. Il est recommandé d'utiliser les statistiques du plugin pour la surveillance.

L'écriture d'une trace dans un log est une opération lente. Si vous utilisez un outil de débogage externe PHP, référez-vous au manuel utilisateur de ce dernier concernant les impacts sur les performances ainsi que le type d'informations collectées. Dans la plupart des cas, les outils de débogage externe PHP font des appels à la pile. Un appel à la pile, ou une trace dans les logs sont souvent plus difficiles à interpréter que les statistiques fournies par le plugin.

Les statistiques du plugin indiquent la fréquence d'utilisation d'un noeud du cluster (esclave ou maître), pourquoi le noeud a été utilisé, si les connexions paresseuses ont été utilisées et si l'injection d'un identifiant global de transaction a été effectuée. Les informations de surveillance fournies permettent à l'utilisateur de vérifier les décisions du plugin et de prévoir les ressources de son cluster suivant leur utilisation. La fonction mysqlnd_ms_get_stats() est utilisée pour accéder aux statistiques. Reportez-vous aux descriptions des fonctions pour une liste des statistiques disponibles.

Les statistiques sont collectées pour chaque processus PHP. Leur scope se limite à un processus PHP. Suivant le modèle de déploiement PHP, un processus peut servir une ou plusieurs requêtes web. Si le modèle CGI est utilisé, un processus PHP ne sert qu'une requête web. Si le modèle FastCGI ou pre-fork serveur web est utilisé, un processus PHP sert habituellement plusieurs requêtes web ; idem dans le cas d'un serveur web threadé. Notez que les threads fonctionnant en parallèle peuvent mettre à jour les statistiques en parallèle. Aussi, si un modèle de déploiement PHP threadé est utilisé, les statistiques peuvent être modifiées par plus d'un script à la fois. Un script ne peut pas être sûr de ne voir que ces propres modifications sur les statistiques.

Exemple #38 Vérification de l'activité du plugin sur un modèle de déploiement non-threadé

mysqlnd_ms.enable=1
mysqlnd_ms.collect_statistics=1
<?php
/* La balance de charge suit les règles de la section "myapp" du fichier de configuration du plugin */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Bien évidemment, votre gestionnaire d'erreur est meilleur... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

$stats_before = mysqlnd_ms_get_stats();
if ($res = $mysqli->query("SELECT 'Read request' FROM DUAL")) {
  var_dump($res->fetch_all());
}
$stats_after = mysqlnd_ms_get_stats();
if ($stats_after['use_slave'] <= $stats_before['use_slave']) {
  echo "Suivant les statistiques, la requête en lecture n'a pas été exécutée sur un esclave !";
}
?>

Les statistiques sont aggrégées pour les activités de tous les plugins, et toutes les connexions gérées par le plugin. Il n'est pas possible de savoir le nombre de contribution aux statistiques d'un gestionnaire de connexion en particulier.

L'utilisation de la fonction register_shutdown_function() ou de la directive de configuration auto_append_file de PHP est une façon simple de copier les statistiques dans, par exemple, un fichier de logs, lorsque le script se termine. Au lieu d'utiliser un fichier de logs, il est également possible d'envoyer les statistiques vers un outil de surveillance externe pour l'enregistrement et le rendu.

Exemple #39 Enregistrement des statistiques lorsque le script se termine

mysqlnd_ms.enable=1
mysqlnd_ms.collect_statistics=1
error_log=/tmp/php_errors.log
<?php
function check_stats() {
  $msg = str_repeat("-", 80) . "\n";
  $msg .= var_export(mysqlnd_ms_get_stats(), true) . "\n";
  $msg .= str_repeat("-", 80) . "\n";
  error_log($msg);
}
register_shutdown_function("check_stats");
?>


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Astuces SQL concernées

Exemple #1 Exemple montrant l'utilisation des constantes mysqlnd_ms

Le plugin de réplication et de balance de charge (mysqlnd_ms) effectue une séparation des lectures et des écritures pour diriger les requêtes d'écriture vers un serveur MySQL maître, et les requêtes de lecture vers un serveur MySQL esclave. Le plugin a une logique interne de séparation lecture/écriture. Elle est relativement basique. Toutes les requêtes qui commencent par SELECT sont considérées comme des requêtes en lecture qui sont envoyées vers un serveur MySQL esclave listé dans le fichier de configuration du plugin. Toutes les autres requêtes sont redirigées vers le serveur MySQL maître spécifié dans le fichier de configuration du plugin.

Les astuces SQL fournies par l'utilisateur peuvent être utilisées pour écraser ce comportement, afin d'en maîtriser totalement le processus. Les astuces SQL sont des commentaires standards SQL. Le plugin analysera le début de la chaîne de requête pour y trouver un commentaire SQL avec des commandes spécifiques, qui contrôlera la redirection de la requête. Les autres systèmes intervenant dans le processus de la requête ne sont pas affectés par les astuces SQL, tout simplement parcequ'ils les ignoreront.

Le plugin supporte 3 astuces SQL pour diriger les requêtes vers un des serveurs MySQL esclaves, le serveur MySQL maître, ou vers le dernier serveur MySQL utilisé. Les astuces SQL doivent être placées en début de requête pour être reconnues par le plugin.

Pour des raisons de portabilité, il est recommandé d'utiliser les constantes MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH et MYSQLND_MS_LAST_USED_SWITCH au lieu de leurs valeurs littérales.

<?php
/* utilisation des constantes pour une portabilité maximale */
$master_query = "/*" . MYSQLND_MS_MASTER_SWITCH . "*/SELECT id FROM test";

/* Valide, mais moins portable : utilisation littérale au lieu des constantes */
$slave_query = "/*ms=slave*/SHOW TABLES";

printf("master_query = '%s'\n", $master_query);
printf("slave_query = '%s'\n", $slave_query);
?>

Les exemples ci-dessus vont afficher :

master_query = /*ms=master*/SELECT id FROM test
slave_query = /*ms=slave*/SHOW TABLES

MYSQLND_MS_MASTER_SWITCH (chaîne de caractères)
Astuce SQL utilisée pour envoyer une requête au serveur MySQL maître de réplication.
MYSQLND_MS_SLAVE_SWITCH (chaîne de caractères)
Astuce SQL utilisé pour envoyer une requête à un des serveurs MySQL esclaves de réplication.
MYSQLND_MS_LAST_USED_SWITCH (chaîne de caractères)
Astuce SQL utilisé pour envoyer une requête au dernier serveur MySQL utilisé. Ce peut être soit un maître, soit un esclave.

En rapport avec la fonction mysqlnd_ms_query_is_select()

MYSQLND_MS_QUERY_USE_MASTER (entier)
Si la fonction mysqlnd_ms_is_select() retourne MYSQLND_MS_QUERY_USE_MASTER pour une requête donnée, le mécanisme interne de séparation des lectures/écritures recommande d'envoyer la requête vers un serveur MySQL maître de réplication.
MYSQLND_MS_QUERY_USE_SLAVE (entier)
Si la fonction mysqlnd_ms_is_select() retourne MYSQLND_MS_QUERY_USE_SLAVE pour une requête donnée, le mécanisme interne de séparation des lectures/écritures recommande d'envoyer la requête vers un serveur MySQL esclave de réplication.
MYSQLND_MS_QUERY_USE_LAST_USED (entier)
Si la fonction mysqlnd_ms_is_select() retourne MYSQLND_MS_QUERY_USE_LAST_USED pour une requête donnée, le mécanisme de séparation des lectures/écritures recommande d'envoyer la requête vers le dernier serveur utilisé.

mysqlnd_ms_set_qos(), en rapport avec la qualité du service des filtres et des niveaux de services

MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL (entier)
Utilisé pour demander une éventuelle consistence du niveau de service depuis la fonction mysqlnd_ms_set_qos(). Une consistence éventuelle est la qualité par défaut du service lors d'une lecture depuis un esclave de réplication asynchrone MySQL. Les données retournées dans ce niveau de service peuvent ou pas être non à jour, suivant si l'esclave sélectionné a déjà répliqué les dernières modifications survenues sur le serveur maître de réplication MySQL.
MYSQLND_MS_QOS_CONSISTENCY_SESSION (entier)
Utilisé pour demander une consistence de session du niveau de service depuis la fonction mysqlnd_ms_set_qos(). Une consistence de session est défini pour lire vos écritures. Le client est garanti de voir ces propres dernières modifications.
MYSQLND_MS_QOS_CONSISTENCY_STRONG (entier)
Utilisé pour demander une consistence forte du niveau de service depuis la fonction mysqlnd_ms_set_qos(). Une consistence forte est utilisée pour assurer à tous les clients de voir chaque modification effectuée par les autres.
MYSQLND_MS_QOS_OPTION_GTID (entier)
Utilisé comme une option du niveau de service avec la fonction mysqlnd_ms_set_qos() pour paramétrer la consistence de session.
MYSQLND_MS_QOS_OPTION_AGE (entier)
Utilisé comme une option du niveau de service avec la fonction mysqlnd_ms_set_qos() pour paramétrer une consistence éventuelle.

Autre

Le numéro de version du plugin peut être obtenu en utilisant la constante MYSQLND_MS_VERSION ou la constante MYSQLND_MS_VERSION_ID. La constante MYSQLND_MS_VERSION est une représentation sous forme de chaîne de caractères du numéro de version numérique de la constante MYSQLND_MS_VERSION_ID, qui est un entier, comme 10000. Les développeurs peuvent calculer le numéro de version comme ceci :

Version (partie) | Exemple
Majeur*10000 | 1*10000 = 10000
Mineur*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_MS_VERSION_ID | 10000

MYSQLND_MS_VERSION (chaîne de caractères)
La chaîne représentant la version du plugin, par exemple, "1.0.0-prototype".
MYSQLND_MS_VERSION_ID (entier)
Le numéro de version du plugin, par exemple, 10000.


Fonctions Mysqlnd_ms

Sommaire

  • mysqlnd_ms_dump_servers — Retourne une liste des serveurs actuellement configurés
  • mysqlnd_ms_fabric_select_global — Passe en serveur globale partagé pour une table donnée
  • mysqlnd_ms_fabric_select_shard — Passe en mode partagé
  • mysqlnd_ms_get_last_gtid — Retourne le dernier identifiant de transaction globale
  • mysqlnd_ms_get_last_used_connection — Retourne un tableau qui récrit la dernière connexion utilisée
  • mysqlnd_ms_get_stats — Retourne des statistiques quant à la distribution et la connexion de requêtes
  • mysqlnd_ms_match_wild — Cherche si un nom de table correspond ou non à un joker d'un masque
  • mysqlnd_ms_query_is_select — Vérifie quel serveur est sélectionné pour l'envoi de la requête
  • mysqlnd_ms_set_qos — Définit la qualité de service désirée pour le cluster
  • mysqlnd_ms_set_user_pick_server — Définit une fonction de rappel utilisateur pour la séparation lecture/écriture
  • mysqlnd_ms_xa_begin — Démarre une transaction distribuée/XA sur les serveurs MySQL particpants
  • mysqlnd_ms_xa_commit — Valide une transaction distribuée/XA sur les serveurs MySQL participants
  • mysqlnd_ms_xa_gc — Collecte les données incorrectes issues des transactions XA non terminées en raison d'erreurs sébères
  • mysqlnd_ms_xa_rollback — Annule une transaction distribuée/XA sur les serveurs MySQL


Retourne une liste des serveurs actuellement configurés

  • « Fonctions Mysqlnd_ms
  • mysqlnd_ms_fabric_select_global »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Retourne une liste des serveurs actuellement configurés

mysqlnd_ms_dump_servers

(No version information available, might only be in Git)

mysqlnd_ms_dump_servers — Retourne une liste des serveurs actuellement configurés

Description

array mysqlnd_ms_dump_servers ( mixed $connection )

Retourne une liste des serveurs actuellement configurés.

Liste de paramètres

connection

Un gestionnaire de connexion MySQL obtenu avec une des fonctions de connexion des extensions mysqli, mysql ou PDO_MYSQL.

Valeurs de retour

FALSE si une erreur survient. Sinon, retourne un tableau contenant deux entrées : masters et slaves Chacune de ces entrées contiennent un tbaleau listant tous les serveurs configurés.

Cette fonction peut être utile pour vérifier et déboger la liste des serveurs actuellement utilisés par le plugin. Elle est particulièrement utile lorsque la liste des serveurs change au cours de l'exécution, par exemple, lors de l'utilisation de MySQL Fabric.

Entrées des serveurs masters et slaves

Clé | Description | Version
name_from_config | Nom de l'entrée du serveur dans la configuration, si possible. NULL si aucun nom de configuration n'est disponible. | Depuis 1.6.0.
hostname | Nom d'hôte du serveur. | Depuis 1.6.0.
user | Nom d'utilisateur de la bas de données utilisé pour s'authentifier sur le serveur. | Depuis 1.6.0.
port | Port TCP/IP du serveur. | Depuis 1.6.0.
socket | Socket de domaine Unix du serveur. | Depuis 1.6.0.

Notes

Note:

mysqlnd_ms_dump_servers() requiert PECL mysqlnd_ms >> 1.6.0.

Exemples

Exemple #1 Exemple avec mysqlnd_ms_dump_servers()

{
    "myapp": {
        "master": {
            "master1": {
                "host":"master1_host",
                "port":"master1_port",
                "socket":"master1_socket",
                "db":"master1_db",
                "user":"master1_user",
                "password":"master1_pw"
            }
        },
        "slave": {
             "slave_0": {
                 "host":"slave0_host",
                 "port":"slave0_port",
                 "socket":"slave0_socket",
                 "db":"slave0_db",
                 "user":"slave0_user",
                 "password":"slave0_pw"
             },
             "slave_1": {
                 "host":"slave1_host"
             }
        }
    }
}
<?php
$link = mysqli_connect("myapp", "global_user", "global_pass", "global_db", 1234, "global_socket");
var_dump(mysqlnd_ms_dump_servers($link);
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["masters"]=>
  array(1) {
    [0]=>
    array(5) {
      ["name_from_config"]=>
      string(7) "master1"
      ["hostname"]=>
      string(12) "master1_host"
      ["user"]=>
      string(12) "master1_user"
      ["port"]=>
      int(3306)
      ["socket"]=>
      string(14) "master1_socket"
    }
  }
  ["slaves"]=>
  array(2) {
    [0]=>
    array(5) {
      ["name_from_config"]=>
      string(7) "slave_0"
      ["hostname"]=>
      string(11) "slave0_host"
      ["user"]=>
      string(11) "slave0_user"
      ["port"]=>
      int(3306)
      ["socket"]=>
      string(13) "slave0_socket"
    }
    [1]=>
    array(5) {
      ["name_from_config"]=>
      string(7) "slave_1"
      ["hostname"]=>
      string(11) "slave1_host"
      ["user"]=>
      string(12) "gloabal_user"
      ["port"]=>
      int(1234)
      ["socket"]=>
      string(13) "global_socket"
    }
  }
}


Passe en serveur globale partagé pour une table donnée

  • « mysqlnd_ms_dump_servers
  • mysqlnd_ms_fabric_select_shard »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Passe en serveur globale partagé pour une table donnée

mysqlnd_ms_fabric_select_global

(No version information available, might only be in Git)

mysqlnd_ms_fabric_select_global — Passe en serveur globale partagé pour une table donnée

Description

array mysqlnd_ms_fabric_select_global ( mixed $connection , mixed $table_name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Relatif à MySQL Fabric.

Passe la connexion en gestionnaire de requêtes partagées globales pour le nom de table donné.

Liste de paramètres

connection

Un gestionnaire de connexion MySQL obtenu depuis une des fonctions de connexion des extensions mysqli, mysql ou PDO_MYSQL.

table_name

Le nom de table à demander à Fabric.

Valeurs de retour

FALSE en cas d'échec. Sinon, TRUE

Notes

Note:

mysqlnd_ms_fabric_select_global() requiert PECL mysqlnd_ms >> 1.6.0.


Passe en mode partagé

  • « mysqlnd_ms_fabric_select_global
  • mysqlnd_ms_get_last_gtid »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Passe en mode partagé

mysqlnd_ms_fabric_select_shard

(No version information available, might only be in Git)

mysqlnd_ms_fabric_select_shard — Passe en mode partagé

Description

array mysqlnd_ms_fabric_select_shard ( mixed $connection , mixed $table_name , mixed $shard_key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Relatif à MySQL Fabric.

Passe la connexion en mode partagé pour le nom de table fourni, et la clé partagée.

Liste de paramètres

connection

Un gestionnaire de connexion MySQL obtenu depuis n'importe quelles fonctions de connexion des extensions mysqli, mysql ou PDO_MYSQL.

table_name

Le nom de la table à demander à Fabric.

shard_key

La clé partagée à demander à Fabric.

Valeurs de retour

FALSE en cas d'erreur. Sinon, TRUE

Notes

Note:

mysqlnd_ms_fabric_select_shard() requiert PECL mysqlnd_ms >> 1.6.0.


Retourne le dernier identifiant de transaction globale

  • « mysqlnd_ms_fabric_select_shard
  • mysqlnd_ms_get_last_used_connection »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Retourne le dernier identifiant de transaction globale

mysqlnd_ms_get_last_gtid

(PECL mysqlnd_ms >= 1.2.0)

mysqlnd_ms_get_last_gtid — Retourne le dernier identifiant de transaction globale

Description

string mysqlnd_ms_get_last_gtid ( mixed $connection )

Retourne un identifiant de transaction globale qui appartient à une opération en écriture plus récente que la dernière opération en écriture effectuée par le client. Il n'est pas garanti que l'identifiant de transaction globale est identique à celui créée pour la dernière transaction en écriture effectuée par le client.

Liste de paramètres

connection

Un gestionnaire de connexion PECL/mysqlnd_ms vers un serveur MySQL de type PDO_MYSQL, mysqli ou ext/mysql. Le gestionnaire de connexion est obtenu lors de l'ouverture d'une connexion avec le nom d'hôte qui correspond à l'entrée du fichier de configuration mysqlnd_ms utilisant n'importe laquelle des extensions MySQL listées ci-dessus.

Valeurs de retour

Retourne un identifiant de transaction globale (GTID) en cas de succès, FALSE sinon.

La fonction mysqlnd_ms_get_last_gtid() retourne le GTID obtenu en exécutant la requête SQL depuis l'entrée fetch_last_gtid de la section global_transaction_id_injection depuis le fichier de configuration du plugin.

La fonction peut être appelée après que GTID ait été incrémenté.

Notes

Note:

mysqlnd_ms_get_last_gtid() requière PHP >= 5.4.0 et PECL mysqlnd_ms >= 1.2.0. En interne, elle utilise une fonctionnalité de la bibliothèque C de mysqlnd qui n'est pas disponible avec PHP 5.3.

Veuillez noter que toutes les versions en production de MySQL 5.6 ne fournissent pas aux clients les informations suffisantes pour l'utilisation des GTIDs permettant de renforcer la consistence des sessions. Dans un tel cas, le plugin choisira uniquement le maître.

Exemples

Exemple #1 Exemple avec mysqlnd_ms_get_last_gtid()

<?php
/* On ouvre une connexion mysqlnd_ms en utilisant l'extension mysqli, PDO_MySQL ou mysql */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli)
  /* Bien évidemment, votre gestionnaire d'erreurs est meilleur... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* mode auto_commit, transaction sur le maître, le GTID doit être incrémenté */
if (!$mysqli->query("DROP TABLE IF EXISTS test"))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

printf("GTID après la transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));

/* mode auto_commit, transaction sur le maître, le GTID doit être incrémenté */
if (!$mysqli->query("CREATE TABLE test(id INT)"))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

printf("GTID après la transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));
?>

Voir aussi

  • Les identifiants de transaction globale


Retourne un tableau qui récrit la dernière connexion utilisée

  • « mysqlnd_ms_get_last_gtid
  • mysqlnd_ms_get_stats »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Retourne un tableau qui récrit la dernière connexion utilisée

mysqlnd_ms_get_last_used_connection

(PECL mysqlnd_ms >= 1.1.0)

mysqlnd_ms_get_last_used_connection — Retourne un tableau qui récrit la dernière connexion utilisée

Description

array mysqlnd_ms_get_last_used_connection ( mixed $connection )

Retourne un tableau qui décrit la dernière connexion utilisée depuis la file d'attente de connexions actuellement pointée par le gestionnaire de connexion utilisateur. Si vous utilisez le plugin, un gestionnaire de connexion utilisateur représente une file d'attente de connexions à la base de données. Il n'est pas possible de dire depuis la connexion utilisateur qui gère les propriétés quel serveur de base de données depuis la file d'attente le gestionnaire de connexions utilisateur pointe.

La fonction peut être utilisée pour déboguer ou monitorer PECL mysqlnd_ms.

Liste de paramètres

connection

Un gestionnaire de connexion MySQL obtenu depuis n'importe quelle fonction de connexion des extensions mysqli, mysql ou PDO_MYSQL.

Valeurs de retour

FALSE en cas d'erreur. Sinon, un tableau décrivant la connexion utilisée pour exécuter la dernière requête.

Tableau décrivant la connexion.

Propriété | Description | Version
scheme | Shéma de connexion. Soit tcp://host:port ou unix://host:socket. Si vous voulez distinguer les connexions les unes des autres, utilisez une combinaison de scheme et de thread_id comme clé unique. Ni scheme, ni thread_id seul ne sont suffisants pour distinguer deux connexions. Deux serveurs peuvent assigner le même thread_id à deux connexions différentes. Aussi, les connexions dans la file d'attente peuvent avoir le même thread_id. Deplus, ne pariez pas sur l'unicité de scheme dans une file d'attente. Votre ingénieur QA peut utiliser la même instance de serveur MySQL pour deux rôles logiques distinctes, et l'ajouter plusieurs fois dans la file d'attente. Ce hack est utilisé, par exemple, dans la suite de test. | Depuis 1.1.0.
host | Hôte du serveur de base de données utilisé avec la connexion. L'hôte est uniquement défini avec des connexions TCP/IP. Il sera vide avec un domaine Unix ou Windows, nommé avec des connexions pipes. | Depuis 1.1.0.
host_info | Une chaîne de caractères représentant le nom d'hôte du serveur et le type de connexion. | Depuis 1.1.2.
port | Le port du serveur de base de données utilisé avec la connexion. | Depuis 1.1.0.
socket_or_pipe | Socket de domaine Unix ou Windows nommé pipe, utilisé avec la connexion. La valeur est vide pour les connexions TCP/IP. | Depuis 1.1.2.
thread_id | Identifiant du thread de connexion. | Depuis 1.1.0.
last_message | Message d'information obtenu depuis la fonction mysql_info() MySQL C API. Reportez-vous à la fonction mysqli_info() pour une description détaillée. | Depuis 1.1.0.
errno | Le code erreur. | Depuis 1.1.0.
error | Le message d'erreur. | Depuis 1.1.0.
sqlstate | Le code erreur SQLstate. | Depuis 1.1.0.

Notes

Note:

mysqlnd_ms_get_last_used_connection() requière PHP >= 5.4.0 et PECL mysqlnd_ms >> 1.1.0. En interne, cette fonction utilise un appel à la bibliothèque C mysqlnd qui n'est pas disponible avec PHP 5.3.

Exemples

Cet exemple suppose que myapp se réfère une section du fichier de configuration du plugin et représente une file d'attente de connexions.

Exemple #1 Exemple avec mysqlnd_ms_get_last_used_connection()

<?php
$link = new mysqli("myapp", "user", "password", "database");
$res = $link->query("SELECT 1 FROM DUAL");
var_dump(mysqlnd_ms_get_last_used_connection($link));
?>

L'exemple ci-dessus va afficher :

array(10) {
  ["scheme"]=>
  string(22) "unix:///tmp/mysql.sock"
  ["host_info"]=>
  string(25) "Localhost via UNIX socket"
  ["host"]=>
  string(0) ""
  ["port"]=>
  int(3306)
  ["socket_or_pipe"]=>
  string(15) "/tmp/mysql.sock"
  ["thread_id"]=>
  int(46253)
  ["last_message"]=>
  string(0) ""
  ["errno"]=>
  int(0)
  ["error"]=>
  string(0) ""
  ["sqlstate"]=>
  string(5) "00000"
}


Retourne des statistiques quant à la distribution et la connexion de requêtes

  • « mysqlnd_ms_get_last_used_connection
  • mysqlnd_ms_match_wild »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Retourne des statistiques quant à la distribution et la connexion de requêtes

mysqlnd_ms_get_stats

(PECL mysqlnd_ms >= 1.0.0)

mysqlnd_ms_get_stats — Retourne des statistiques quant à la distribution et la connexion de requêtes

Description

array mysqlnd_ms_get_stats ( void )

Retourne un tableau de statistiques collectées par le plugin de réplication et d'équilibrage de charge.

La directive de configuration PHP mysqlnd_ms.collect_statistics contrôle la collection des statistiques. Elle est désactivée par défaut pour des raisons de performance.

Le scope des statistiques est le processus PHP. Suivant votre modèle de déploiement, un processus PHP peut gérer une ou plusieurs demandes.

Les statistiques sont agrégées pour toutes les connexions et tous les gestionnaires de stockage. Il n'est pas possible de demander le nombre de requêtes émanant d'appels API mysqli, PDO_MySQL ou mysql utilisées pour les valeurs agrégées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne NULL si la directive de configuration PHP mysqlnd_ms.enable a désactivé le plugin. Sinon, la fonction retourne un tableau de statistiques.

Tableau de statistiques

Statistique | Description | Version
use_slave

La sémantique de cette statistique a changé entre les versions 1.0.1 et 1.1.0.

La signification pour la version 1.0.1 est la suivante. Nombre de requêtes considérées comme en lecture seule par l'analyseur de requête interne. Ni les requêtes commençant par une astuce SQL pour forcer l'utilisation d'un esclave, ni les requêtes dirigées vers un esclave par une fonction de rappel définie par les utilisateurs ne sont inclus dans ce chiffre. Le nombre total de requêtes envoyées aux esclaves correspond à use_slave + use_slave_sql_hint + use_slave_callback.

PECL/mysqlnd_ms 1.1.0 introduit un nouveau concept de filtres chaînés. Le statistique est maintenant définie par le filtre interne de balance de charge. Avec la version 1.1.0, le filtre de balance de charge est toujours le dernier dans un filtre chaîné, si utilisé. Dans les versions futures, un filtre de balance de charge pourra être suivi d'autres filtres, faisant ainsi une nouvelle fois évoluée la signification de cette statistique. Si, dans le futur, un filtre de balance de charge est suivi par un autre filtre, il ne sera plus garanti que la requête, qui incrémente use_slave, sera belle et bien exécutée sur un esclave.

La signification pour la version 1.1.0 est la suivante. Nombre de requêtes envoyées aux esclabes. Les requêtes dirigées vers un esclave par un filtre utilisateur (une fonction de rappel définie par l'utilisateur) ne sont pas incluses. Elles le seront par la statistique use_slave_callback.

Depuis la version 1.0.0.
use_master

La sémantique de cette statistique a changée entre les versions 1.0.1 et 1.1.0.

La signification pour la version 1.0.1 est la suivante. Nombre de requêtes considérées comme n'étant pas en lecture seule par l'analyseur interne de requêtes. Ni les requêtes commençant par une astuce SQL pour forcer l'utilisation d'un maître, ni les requêtes redirigées vers un maître par une fonction de rappel définie par l'utilisateur ne sont incluses dans cette statistique. Le nombre total de requêtes envoyées vers le maître correspond à use_master + use_master_sql_hint + use_master_callback.

PECL/mysqlnd_ms 1.1.0 introduit un nouveau concept de filtres chaînés. La statistique est maintenant défini par le filtre de balance de charge interne. Avec la version 1.1.0, le filtre de balance de charge est toujours le dernier filtre d'un filtre chaîné, si utilisé. Dans les versions futures, un filtre de balance de charge pourra être suivi par d'autres filtres, faisant ainsi une nouvelle modification dans la signification de cette statistique. Si, dans le futur, un filtre de balance de charge est suivi par un autre filtre, il ne sera plus garanti que la requête, qui incrémente use_master, sera belle et bien exécutée sur un esclave.

La signification pour la version 1.1.0 est la suivante. Nombre de requêtes envoyées aux maîtres. Les requêtes dirigées vers un maître par un filtre utilisateur (une fonction de rappel définie par l'utilisateur) ne sont pas incluses. Mais elles le seront dans la statistique use_master_callback.

Depuis la version 1.0.0.
use_slave_guess | Nombre de requêtes dont l'analyseur de requêtes recommande d'envoyer vers un esclave car la requête ne contient aucune astuce SQL pour forcer l'utilisation d'un serveur en particulier. Cette recommandation peut être modifiée par la suite. Il n'est pas garanti que la requête soit bien exécutée sur un esclave. Cela signifie juste que la fonction is_select interne a indiqué qu'un esclave devrait être utilisé. Rapportez-vous à la fonction mysqlnd_ms_query_is_select() de l'espace utilisateur. | Depuis la version 1.1.0.
use_master_guess | Nombre de requêtes dont l'analyseur interne recommande d'envoyer vers un maître car la requête ne contient aucune astuce SQL pour forcer l'utilisation d'un serveur en particulier. Cette recommandation peut être modifiée par la suite. Il n'est pas garanti que la requête soit bien exécutée sur un esclave. Cela signifie juste que la fonction is_select interne a indiqué qu'un maître devrait être utilisé. Rapportez-vous à la fonction mysqlnd_ms_query_is_select() de l'espace utilisateur. | Depuis la version 1.1.0.
use_slave_sql_hint | Nombre de requêtes envoyées à un esclave par le fait que la requête commence par une astuce SQL pour forcer l'utilisation d'un esclave. | Depuis la version 1.0.0.
use_master_sql_hint | Nombre de requêtes envoyées au maître par le fait que la requête commence par une astuce SQL pour forcer l'utilisation du maître. | Depuis la version 1.0.0.
use_last_used_sql_hint | Nombre de requêtes envoyées au serveur qui a exécuté les précédentes requêtes, par le fait que la requête commence par une astuce SQL pour forcer l'utilisation du serveur précédemment utilisé. | Depuis 1.0.0.
use_slave_callback | Nombre de requêtes envoyées à l'esclave en raison d'une fonction de rappel utilisateur choisissant un serveur esclave pour l'exécution des requêtes. | Depuis 1.0.0.
use_master_callback | Nombre de requêtes envoyées au maître en raison d'une fonction de rappel utilisateur choisissant un serveur esclave pour l'exécution des requêtes. | Depuis 1.0.0.
non_lazy_connections_slave_success | Nombre de connexions ouvertes avec succès vers un esclave avec une configuration n'utilisant pas les lazy connections. Le nombre total de connexions ouvertes avec succès vers un esclave correspond à non_lazy_connections_slave_success + lazy_connections_slave_success | Depuis 1.0.0.
non_lazy_connections_slave_failure | Nombre de connexions échouées vers un esclave avec une configuration n'utilisant pas les lazy connections. Le nombre total de connexions échouées vers un esclave correspond à non_lazy_connections_slave_failure + lazy_connections_slave_failure | Depuis 1.0.0.
non_lazy_connections_master_success | Nombre de connexions ouvertes avec succès vers un maître avec une configuration n'utilisant pas les lazy connections. Le nombre total de connexions ouvertes avec succès vers un maître correspond à non_lazy_connections_master_success + lazy_connections_master_success | Depuis 1.0.0.
non_lazy_connections_master_failure | Nombre de connexions échouées vers un maître avec une configuration n'utilisant pas les lazy connections. Le nombre total de connexions échouées vers un maître correspond à non_lazy_connections_master_failure + lazy_connections_master_failure | Depuis 1.0.0.
lazy_connections_slave_success | Nombre de connexions ouvertes avec succès vers un esclave avec une configuration utilisant les lazy connections. | Depuis 1.0.0.
lazy_connections_slave_failure | Nombre de connexions échouées vers un esclave avec une configuration utilisant les lazy connections. | Depuis 1.0.0.
lazy_connections_master_success | Nombre de connexions ouvertes avec succès vers un maître avec une configuration utilisant les lazy connections. | Depuis 1.0.0.
lazy_connections_master_failure | Nombre de connexions échouées vers un maître avec une configuration utilisant les lazy connections. | Depuis 1.0.0.
trx_autocommit_on | Nombre d'activations du mode autocommit via des appels à l'API. Peut être utilisé pour surveiller l'activité relative à la configuration trx_stickiness du plugin. Si, par exemple, vous souhaitez savoir si un appel particulier à l'API invoque la fonction trx_autocommit() de la bibliothèque mysqlnd, ce qui est une nécessité pour trx_stickiness, vous pouvez appeler la fonction utilisation de l'API en question, et vérifier si les statistiques ont été modifiées. Les statistiques sont modifiées uniquement par la méthode trx_autocommit() interne du plugin. | Depuis 1.0.0.
trx_autocommit_off | Nombre de désactivations du mode autocommit via des appels à l'API. | Depuis 1.0.0.
trx_master_forced | Nombre de requêtes redirigées vers le maître alors que trx_stickiness=master et le mode autocommit sont désactivés. | Depuis 1.0.0.
gtid_autocommit_injections_success | Noombre d'injections SQL avec succès en mode autocommit, faisant parti du plugin côté client de l'émulation de l'ID de transaction globale. | Depuis 1.2.0.
gtid_autocommit_injections_failure | Nombre d'injections SQL échouées en mode autocommit, faisant parti du plugin côté client de l'émulation de l'ID de transaction globale. | Depuis 1.2.0.
gtid_commit_injections_success | Nombre d'injections SQL avec succès en mode commit, faisant parti du plugin côté client de l'émulation de l'ID de transaction globale. | Depuis 1.2.0.
gtid_commit_injections_failure | Nombre d'injections SQL échouées en mode commit, faisant parti du plugin côté client de l'émulation de l'ID de transaction globale. | Depuis 1.2.0.
gtid_implicit_commit_injections_success | Nombre d'injections SQL avec succès lorsqu'un commit implicite est détecté, faisant parti du plugins côté client de l'émulation de l'ID de transaction globale. Les commits implicites surviennent, par exemple, lorsque l'autocommit a été désactivé, une requête est exécutée, puis, l'autocommit ré-activé. Dans ce cas, la requête sera commité par le serveur et le SQL sera injecté avant la ré-activation de l'autocommit. Voici d'autres séquences pour lesquelles le commit est implicite : begin(), query(), begin(). Un second appel à begin() va implicitement valider la transaction commencée par le premier appel à begin(). begin() correspond à des appels de la bibliothèques internes, et non des appels de l'API utilisateur de PHP. | Depuis 1.2.0.
gtid_implicit_commit_injections_failure | Nombre d'injections SQL échouées lorsque le commit implicite est détecté, faisant parti du plugins côté client de l'émulation de l'ID de transaction globale. Les commits implicites surviennent, par exemple, lorsque l'autocommit a été désactivé, une requête est exécutée, puis, l'autocommit ré-activé. Dans ce cas, la requête sera commité par le serveur et le SQL sera injecté avant la ré-activation de l'autocommit. | Depuis 1.2.0.
transient_error_retries | Le nombre de tentative de l'opération avant qu'une erreur passagère ne soit détectée. Voir aussi le fichier de configuration du plugin transient_error. | Depuis 1.6.0.
fabric_sharding_lookup_servers_success | Le nombre d'appels réussis à la procédure distante sharding.lookup_servers à MySQL Fabric. Un appel est considéré comme réussi si le plugin peut atteindre MySQL Fabric et récupérer une réponse. La réponse en elle même peut ou non être comprise par le plugin. Le succès correspond seulement au transport réseau. Si la réponse n'a pas été comprise ou indique une erreur valide, fabric_sharding_lookup_servers_xml_failure sera incrémenté. | Depuis 1.6.0.
fabric_sharding_lookup_servers_failure | Le nombre d'échec suite aux appels à la procédure distante sharding.lookup_servers de MySQL Fabric. Un appel à une procédure distante est considéré en échec s'il y a une erreur réseau lors d'une connexion, d'une écriture ou d'une lecture depuis MySQL Fabric. | Depuis 1.6.0.
fabric_sharding_lookup_servers_time_total | Temps passé à se connecter, à écrire ou à lire depuis MySQL Fabrich pendant l'appel à la procédure distante sharding.lookup_servers. La valeur est agrégée pour tous les appels. Le temps est mesuré en microsecondes. | Depuis 1.6.0.
fabric_sharding_lookup_servers_bytes_total | Nombre total d'octets reçus depuis MySQL Fabric en réponse aux appels à sharding.lookup_servers calls. | Depuis 1.6.0.
fabric_sharding_lookup_servers_xml_failure | Le nombre de fois d'une réponse depuis MySQL Fabric aux appels à sharding.lookup_servers n'a pas été compris. Veuillez noter que l'implémentation expérimentale courrante ne distingue pas les erreurs valides retournées, et les réponses mal formées. | Depuis 1.6.0.
xa_begin | Le nombre de transactions distribuées/XA qui ont été démarrées en utilisant la fonction mysqlnd_ms_xa_begin(). | Depuis 1.6.0.
xa_commit_success | Le nombre de transactions distribuées/XA qui ont été validées avec succès en utilisant la fonction mysqlnd_ms_xa_commit(). | Depuis 1.6.0.
xa_commit_failure | Le nombre de transactions distribuées/XA qui ont échoué lors d'une tentative de validation en utilisant la fonction mysqlnd_ms_xa_commit(). | Depuis 1.6.0.
xa_rollback_success | Le nombre de transactions distribuées/XA qui ont été annulées avec succès en utilisant la fonction mysqlnd_ms_xa_rollback(). Ceci n'inclue pas les annulations implicites effectuées comme conséquence d'un échec lors de l'appel à la fonction mysqlnd_ms_xa_commit(). | Depuis 1.6.0.
xa_rollback_failure | Le nombre de transactions distribuées/XA qui n'ont pas pu être annulées. Ceci inclue les échecs de la fonction mysqlnd_ms_xa_rollback() mais aussi, les échecs d'annulation lors de la fermeture d'une connexion, si l'option rollback_on_close est définie. Voir aussi l'option xa_rollback_on_close ci-dessous. | Depuis 1.6.0.
xa_participants | Le nombre total de participants dans toutes les transactions XA commencées avec la fonction mysqlnd_ms_xa_begin(). | Depuis 1.6.0.
xa_rollback_on_close | Le nombre de transactions XA qui ont été annulées implicitement lorsqu'une connexion est fermée et que l'option rollback_on_close est définie. Suivant l'implémentation de votre code, ceci peut représenter une faille sachant que vous devriez préférer nettoyer les ressources explicitement. | Depuis 1.6.0.
pool_masters_total | Nombre de serveurs maîtres (connexions) dans le pool de connexion interne. | Depuis 1.6.0.
pool_slaves_total | Nombre de serveurs esclaves (connexions) dans le pool de connexion interne. | Depuis 1.6.0.
pool_masters_active | Nombre de serveurs maîtres (connexions) depuis le pool de connexion interne qui sont actuellement en cours d'utilisation pour prendre une connexion. | Depuis 1.6.0.
pool_slaves_active | Nombre de serveurs esclaves (connexions) depuis le pool de connexion interne qui sont actuellement en cours d'utilisation pour prendre une connexion. | Depuis 1.6.0.
pool_updates | Le nombre de fois que la liste des connexions actives a été remplacée et qu'un nouveau jeu de maître et d'esclaves a été installé. | Depuis 1.6.0.
pool_master_reactivated | Le nombre de ré-utilisation d'une connexion maître après avoir été ajoutée à la liste active. | Depuis 1.6.0.
pool_slave_reactivated | Le nombre de ré-utilisation d'une connexion esclave après avoir été ajoutée à la liste active. | Depuis 1.6.0.

Exemples

Exemple #1 Exemple avec mysqlnd_ms_get_stats()

<?php
printf("mysqlnd_ms.enable = %d\n", ini_get("mysqlnd_ms.enable"));
printf("mysqlnd_ms.collect_statistics = %d\n", ini_get("mysqlnd_ms.collect_statistics"));
var_dump(mysqlnd_ms_get_stats());
?>

L'exemple ci-dessus va afficher :

mysqlnd_ms.enable = 1
mysqlnd_ms.collect_statistics = 1
array(26) {
  ["use_slave"]=>
  string(1) "0"
  ["use_master"]=>
  string(1) "0"
  ["use_slave_guess"]=>
  string(1) "0"
  ["use_master_guess"]=>
  string(1) "0"
  ["use_slave_sql_hint"]=>
  string(1) "0"
  ["use_master_sql_hint"]=>
  string(1) "0"
  ["use_last_used_sql_hint"]=>
  string(1) "0"
  ["use_slave_callback"]=>
  string(1) "0"
  ["use_master_callback"]=>
  string(1) "0"
  ["non_lazy_connections_slave_success"]=>
  string(1) "0"
  ["non_lazy_connections_slave_failure"]=>
  string(1) "0"
  ["non_lazy_connections_master_success"]=>
  string(1) "0"
  ["non_lazy_connections_master_failure"]=>
  string(1) "0"
  ["lazy_connections_slave_success"]=>
  string(1) "0"
  ["lazy_connections_slave_failure"]=>
  string(1) "0"
  ["lazy_connections_master_success"]=>
  string(1) "0"
  ["lazy_connections_master_failure"]=>
  string(1) "0"
  ["trx_autocommit_on"]=>
  string(1) "0"
  ["trx_autocommit_off"]=>
  string(1) "0"
  ["trx_master_forced"]=>
  string(1) "0"
  ["gtid_autocommit_injections_success"]=>
  string(1) "0"
  ["gtid_autocommit_injections_failure"]=>
  string(1) "0"
  ["gtid_commit_injections_success"]=>
  string(1) "0"
  ["gtid_commit_injections_failure"]=>
  string(1) "0"
  ["gtid_implicit_commit_injections_success"]=>
  string(1) "0"
  ["gtid_implicit_commit_injections_failure"]=>
  string(1) "0"
  ["transient_error_retries"]=>
  string(1) "0"
}

Voir aussi

  • Configuration à l'exécution
  • mysqlnd_ms.collect_statistics
  • mysqlnd_ms.enable
  • La surveillance


Cherche si un nom de table correspond ou non à un joker d'un masque

  • « mysqlnd_ms_get_stats
  • mysqlnd_ms_query_is_select »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Cherche si un nom de table correspond ou non à un joker d'un masque

mysqlnd_ms_match_wild

(PECL mysqlnd_ms >= 1.1.0)

mysqlnd_ms_match_wild — Cherche si un nom de table correspond ou non à un joker d'un masque

Description

bool mysqlnd_ms_match_wild ( string $table_name , string $wildcard )

Cherche si un nom de table correspond ou non à un joker d'un masque.

Cette fonction n'est pas utile avec PECL mysqlnd_ms 1.1.0 car le plugin ne suppose pas encore le filtrage des tables de réplication MySQL.

Liste de paramètres

table_name

Le nom de la table à vérifier si elle correspond au joker.

wildcard

Le masque contenant le joker à vérifier par rapport au nom de la table. Il supporte les mêmes espaces réservés que les filtres de réplication MySQL.

Les filtres de réplication MySQL peuvent être configurés en utilisant l'option de configuration MySQL Server --replicate-wild-do-table et --replicate-wild-do-db. Veuillez consulter le manuel de référence MySQL pour plus de détails sur cette fonctionnalité du MySQL Server.

Les espaces réservés suivants sont supportés :

  • % - Zéro ou N caractères
  • _ - un seul caractère

Les espaces réservés peuvent être échappés en utilisant le caractères \.

Valeurs de retour

Retourne TRUE si table_name correspond au joker wildcard, FALSE sinon.

Exemples

Exemple #1 Exemple avec mysqlnd_ms_match_wild()

<?php
var_dump(mysqlnd_ms_match_wild("schema_name.table_name", "schema%"));
var_dump(mysqlnd_ms_match_wild("abc", "_"));
var_dump(mysqlnd_ms_match_wild("table1", "table_"));
var_dump(mysqlnd_ms_match_wild("asia_customers", "%customers"));
var_dump(mysqlnd_ms_match_wild("funny%table","funny\%table"));
var_dump(mysqlnd_ms_match_wild("funnytable", "funny%table"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)


Vérifie quel serveur est sélectionné pour l'envoi de la requête

  • « mysqlnd_ms_match_wild
  • mysqlnd_ms_set_qos »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Vérifie quel serveur est sélectionné pour l'envoi de la requête

mysqlnd_ms_query_is_select

(PECL mysqlnd_ms >= 1.0.0)

mysqlnd_ms_query_is_select — Vérifie quel serveur est sélectionné pour l'envoi de la requête

Description

int mysqlnd_ms_query_is_select ( string $query )

Vérifie si l'on doit envoyer la requête au maître, à l'esclave ou bien au dernier serveur MySQL utilisé.

Les plugins internes de lectures/écritures seront utilisés pour analyser la requête afin de rendre une recommandation quant à la destination de la requête. Ce mécanisme est très simple. Le plugin recommandera d'envoyer toutes les requêtes au serveur MySQL maître de réplication sauf les requêtes qui commencent par SELECT, ou commencent avec une astuce SQL qui force l'envoie vers un serveur esclave. En raison de ce mécanisme simple mais rapide, le plugin peut proposer d'exécuter des requêtes en lecture seule comme SHOW TABLES sur le serveur de réplication.

Liste de paramètres

query

La requête à tester.

Valeurs de retour

Une valeur de retour MYSQLND_MS_QUERY_USE_MASTER indique que la requête doit être envoyée au serveur MySQL maître de réplication. La fonction retournera une valeur de MYSQLND_MS_QUERY_USE_SLAVE si la requête peut être exécutée sur un esclave en raison du fait qu'elle ait été considérée comme exécutable en lecture seule. Une valeur de MYSQLND_MS_QUERY_USE_LAST_USED est retournée pour recommander d'exécuter la requête sur le dernier serveur utilisé. Ce peut être soit le serveur MySQL maître de réplication, soit un serveur MySQL esclave de réplication.

Si la séparation des lectures et des écritures a été désactivée avec l'option de configuration mysqlnd_ms.disable_rw_split, la fonction retournera toujours MYSQLND_MS_QUERY_USE_MASTER ou MYSQLND_MS_QUERY_USE_LAST_USED.

Exemples

Exemple #1 Exemple avec mysqlnd_ms_query_is_select()

<?php
function is_select($query)
{
 switch (mysqlnd_ms_query_is_select($query))
 {
  case MYSQLND_MS_QUERY_USE_MASTER:
   printf("'%s' devrait être exécutée sur le maître.\n", $query);
   break;
  case MYSQLND_MS_QUERY_USE_SLAVE:
   printf("'%s' devrait être exécutée sur un esclabe.\n", $query);
   break;
  case MYSQLND_MS_QUERY_USE_LAST_USED:
   printf("'%s' devrait être exécutée sur le serveur qui a exécuté la précédente requête.\n", $query);
   break;
  default:
   printf("Aucune suggestion d'exécution de '%s', par défaut, le maître est recommandé.\n", $query);
   break;
 }
}

is_select("INSERT INTO test(id) VALUES (1)");
is_select("SELECT 1 FROM DUAL");
is_select("/*" . MYSQLND_MS_LAST_USED_SWITCH . "*/SELECT 2 FROM DUAL");
?>

L'exemple ci-dessus va afficher :

INSERT INTO test(id) VALUES (1) devrait être exécutée sur le maître.
SELECT 1 FROM DUAL should be run on a slave.
/*ms=last_used*/SELECT 2 FROM DUAL devrait être exécutée sur le serveur qui a exécuté la précédente requête.

Voir aussi

  • Les constantes prédéfinies
  • Les filtres utilisateurs
  • La configuration à l'exécution
  • mysqlnd_ms.disable_rw_split
  • mysqlnd_ms.enable


Définit la qualité de service désirée pour le cluster

  • « mysqlnd_ms_query_is_select
  • mysqlnd_ms_set_user_pick_server »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Définit la qualité de service désirée pour le cluster

mysqlnd_ms_set_qos

(PECL mysqlnd_ms < 1.2.0)

mysqlnd_ms_set_qos — Définit la qualité de service désirée pour le cluster

Description

bool mysqlnd_ms_set_qos ( mixed $connection , int $service_level [, int $service_level_option [, mixed $option_value ]] )

Définit la qualité de service désirée pour le cluster. Un cluster de base de données délivre une certaine qualité de service à l'utilisateur suivant son architecture. Un aspect majeur de la qualité de service est le niveau de consistence pouvant être offert par le cluster. Un cluster de réplication MySQL asynchrone a, par défaut, une consistence éventuelle pour les esclaves en lecture : un esclave peut servir des données non-mises à jour, des données courantes, ou il peut ne pas avoir du tout les données, car il n'est pas synchrone avec le maître. Dans un cluster de réplication MySQL, seul le maître peut fournir une consistence forte, garantissant à tous les clients de voir les modifications.

PECL/mysqlnd_ms cache le choix des noeuds appropriés pour arriver à un certain niveau de service depuis le cluster. Le filtre "Quality of Service" implémente la logique nécessaire. Ce filtre peut être soit configuré dans le fichier de configuration du plugin, soit au moment de l'exécution en utilisant la fonction mysqlnd_ms_set_qos().

Des résultats similaires peuvent être obtenus avec PECL mysqlnd_ms < 1.2.0, en utilisant des astuces SQL pour forcer l'utilisation d'un certain noeud, ou en utilisant l'option de configuration master_on_write du plugin. La première nécessite plus de code et plus de travaux côté applicatif. La dernière est moins raffinée que d'utiliser le filtre de qualité de service. La configuration via l'appel à la fonction peut être réservée, comme dans l'exemple ci-dessous. L'exemple switche temporairement vers un niveau de service supérieur (consistence de session, lecture de vos écritures) et retourne vers le cluster par défaut après avoir effectué toutes les opérations nécessitant un service meilleur. De cette façon, la charge en lecture sur le maître peut être optimisée par rapport à l'utilisation de master_on_write, qui fait que le maître continue d'être utilisé après la première écriture.

Depuis 1.5.0, les appels échoueront lorsqu'éffectués au milieu d'une transaction si la direction de configuration sur la rigidité des transactions est activée et que les limites de la transaction ont été détectées. properly.

Liste de paramètres

connection

Un gestionnaire de connexion PECL/mysqlnd_ms vers un serveur MySQL de type PDO_MYSQL, mysqli ou ext/mysql pour lequel un niveau de service doit être défini. Le gestionnaire de connexion est obtenu lors de l'ouverture d'une connexion avec un nom d'hôte qui correspond à l'entrée du fichier de configuration mysqlnd_ms, en utilisant n'importe laquelle des extensions MySQL ci-dessus.

service_level

Le niveau de service demandé : MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL, MYSQLND_MS_QOS_CONSISTENCY_SESSION ou MYSQLND_MS_QOS_CONSISTENCY_STRONG.

service_level_option

Une option pour paramétrer le niveau de service demdandé. Cette option peut être MYSQLND_MS_QOS_OPTION_GTID ou MYSQLND_MS_QOS_OPTION_AGE.

L'option MYSQLND_MS_QOS_OPTION_GTID peut être utilisé pour définir le niveau de service MYSQLND_MS_QOS_CONSISTENCY_SESSION. Il doit être combiné avec un 4ème paramètre, option_value. Le paramètre option_value doit être un identifiant de transaction globale obtenu depuis la fonction mysqlnd_ms_get_last_gtid(). Si défini, le plugin considère qu'à la fois les serveurs maîtres et les esclaves asynchrones utiliseront une consistence de session (lecture de vos écritures). Sinon, seuls les maîtres seront utilisés pour la consistence de session. Un esclave est considéré à jour et il sera vérifié si il a déjà répliqué l'identifiant de transaction globale issu du paramètre option_value. Veuillez noter que la recherche d'esclaves appropriés est une opération couteuse et lente. Elle est donc à utiliser avec précaution, surtout si le maître ne peut pas gérer seul la charge des lectures.

L'option MYSQLND_MS_QOS_OPTION_AGE peut être combinée avec le niveau de service MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL pour filtrer les esclaves asynchrones qui lag pendant plus de option_value secondes derrières le maître. Si défini, le plugin ne considèrera que les esclaves pour les lectures si SHOW SLAVE STATUS rapporte Slave_IO_Running=Yes, Slave_SQL_Running=Yes et Seconds_Behind_Master <= option_value. Veuillez noter que la recherche d'esclaves appropriés est une opération couteuse et lente. Elle est donc à utiliser avec précaution en version 1.2.0. Les futures versions devraient améliorer l'algorithme utilisé pour identifier les candidats. Reportez-vous au manuel de référence MySQL sur la précision, l'exactitude, et les limitations de la commande administrative MySQL SHOW SLAVE STATUS.

option_value

La valeur optionnelle du niveau de service. Reportez-vous au paramètre service_level_option pour plus de détails.

Valeurs de retour

Retourne TRUE si le niveau de service des connexions a pû être atteint, FALSE sinon.

Notes

Note:

mysqlnd_ms_set_qos() requière PHP >= 5.4.0 and PECL mysqlnd_ms >= 1.2.0. En interne, elle utilise une fonctionnalité de la bibliothèque C mysqlnd qui n'est pas disponible en PHP 5.3.

Veuillez noter que toues les versions de production de MySQL 5.6 ne fournissent pas aux clients des informations suffisantes pour l'utilisation des GTIDs permettant de renforcer la consistence des sessions. Dans un tel cas, le plugin choisira uniquement le maître.

Exemples

Exemple #1 Exemple avec mysqlnd_ms_set_qos()

<?php
/* Ouvre une connexion mysqlnd_ms en utilisant l'extension mysqli, PDO_MySQL ou mysql */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli)
  /* Bien évidemment, votre gestionnaire d'erreur est meilleur... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* Consistence de session : lecture de vos écritures */
$ret = mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION);
if (!$ret)
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

/* Va utiliser le maître et retourner des données récentes, le client pourra voir ces dernières écritures */
if (!$res = $mysqli->query("SELECT item, price FROM orders WHERE order_id = 1"))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

/* Retour vers le comportement par défaut : utilisation de tous les esclaves et maîtres
autorisés, des données non-à-jour peuvent survenir */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
?>

Voir aussi

  • mysqlnd_ms_get_last_gtid() - Retourne le dernier identifiant de transaction globale
  • Concepte sur le niveau de service et la consistence
  • Concepte sur les filtres


Définit une fonction de rappel utilisateur pour la séparation lecture/écriture

  • « mysqlnd_ms_set_qos
  • mysqlnd_ms_xa_begin »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Définit une fonction de rappel utilisateur pour la séparation lecture/écriture

mysqlnd_ms_set_user_pick_server

(PECL mysqlnd_ms < 1.1.0)

mysqlnd_ms_set_user_pick_server — Définit une fonction de rappel utilisateur pour la séparation lecture/écriture

Description

bool mysqlnd_ms_set_user_pick_server ( string $function )

Définit une fonction de rappel utilisateur pour la séparation lecture/écriture. Le plugin appellera cette fonction uniquement si pick[]=user est la règle par défaut pour la sélection de serveur dans la section révélante du fichier de configuration du plugins.

Le mécanisme interne de décision sur la séparation lecture/écriture du plugin peut être écrasé de 2 façons. La plus simple est d'ajouter en début de requête SQL l'astuce MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH ou MYSQLND_MS_LAST_USED_SWITCH. L'utilisation d'astuces SQL permet de contrôler, par exemple, si la requête doit être envoyée au serveur MySQL maître de réplication ou à un des serveurs esclaves. Avec l'aide des astuces SQL, il n'est pas possible de sélectionner un serveur esclave particulier pour l'exécution de la requête.

Le contrôle total sur la sélection de serveur peut être atteint en utilisant une fonction de rappel. Son utilisation est recommandée par les utilisateurs expérimentés uniquement par le fait que la fonction de rappel couvre tous les cas pouvant être gérés par le plugin.

Le plugin invoquera la fonction de rappel pour sélectionner un serveur depuis la liste des serveurs maîtres et esclaves configurés. La fonction de rappel inspecte la requête à exécuter, et sélectionne un serveur utilisé pour l'exécution de la requête en retournant l'URI de l'hôte, tel que trouvé dans la liste des serveurs maîtres et esclaves.

Si les connexions paresseuses sont activées, si la fonction de rappel choisit un serveur esclave pour lequel aucune connexion n'a été établie, et que la connexion échoue, le plugin retournera une erreur lors de la prochaine action sur la connexion ayant échouée, par exemple, lors de l'exécution d'une requête.. Il en est de la responsabilité de l'application de gérer cette erreur. Par exemple, l'application peut ré-exécuter la requête pour forcer la sélection d'un nouveau serveur et ainsi provoquer l'invocation de la fonction de rappel. Si c'est le cas, la fonction de rappel doit s'assurer de sélectionner un esclave différent, ou vérifier la disponibilité de l'esclave choisi, avant de retourner le résultat au plugin, et ce, afin d'éviter une boucle infinie.

Liste de paramètres

function

La fonction à appeler. Les méthodes de la classe peuvent aussi être invoquées statiquement en utilisant cette fonction en passant array($classname, $methodname) dans ce paramètre. De plus, les méthodes de la classe d'une instance d'objet peuvent être appelées en passant array($objectinstance, $methodname) dans ce paramètre.

Valeurs de retour

Hôte sur lequel la requête sera exécutée. L'URI de l'hôte sera issue de la liste des connexions maîtres et esclaves passée à la fonction de rappel. Si la fonction de rappel retourne une valeur ni trouvée dans le maître, ni dans les esclaves de la liste, le plugin se retournera sur la seconde méthode de sélection configurée via la configuration pick[] du fichier de configuration du plugin. Si aucune seconde méthode de sélection n'est fournie, le plugin se retournera alors vers la méthode de sélection interne.

Notes

Note:

mysqlnd_ms_set_user_pick_server() est disponible avec PECL mysqlnd_ms < 1.1.0. La fonction a été remplacée par un filtre utilisateur. Reportez-vous aux modifications de versions.

Exemples

Exemple #1 Exemple avec mysqlnd_ms_set_user_pick_server()

[myapp]
master[] = localhost
slave[] = 192.168.2.27:3306
slave[] = 192.168.78.136:3306
pick[] = user
<?php

function pick_server($connected, $query, $master, $slaves, $last_used)
{
 static $slave_idx = 0;
 static $num_slaves = NULL;
 if (is_null($num_slaves))
  $num_slaves = count($slaves);

 /* défaut : retour à la logique interne du plugin */
 $ret = NULL;

 printf("L'utilisateur est connecté sur '%s'...\n", $connected);
 printf("... décision du serveur pour l'exécution de la requête '%s'\n", $query);

 $where = mysqlnd_ms_query_is_select($query);
 switch ($where)
 {
  case MYSQLND_MS_QUERY_USE_MASTER:
   printf("... utilisation du maître\n");
   $ret = $master[0];
   break;
  case MYSQLND_MS_QUERY_USE_SLAVE:
   /* SELECT ou astuce SQL pour l'utilisation d'un esclave */
   if (stristr($query, "FROM table_on_slave_a_only"))
   {
    /* une table qui n'est configuré que sur le premier esclave configuré */
    printf("... accès à une table disponible que sur l'esclave A détecté\n");
    $ret = $slaves[0];
   }
   else
   {
    /* tentative */
    printf("... quelques requêtes en lectures seules pour un esclave\n");
    $ret = $slaves[$slave_idx++ % $num_slaves];
   }
   break;
  case MYSQLND_MS_QUERY_LAST_USED:
   printf("... utilisation du dernier serveur utilisé\n");
   $ret = $last_used;
   break;
 }

 printf("... ret = '%s'\n", $ret);
 return $ret;
}

mysqlnd_ms_set_user_pick_server("pick_server");

$mysqli = new mysqli("myapp", "root", "root", "test");

if (!($res = $mysqli->query("SELECT 1 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT 2 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT * FROM table_on_slave_a_only")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

$mysqli->close();
?>

L'exemple ci-dessus va afficher :

L'utilisateur est connecté sur 'myapp'...
... décision du serveur pour l'exécution de la requête 'SELECT 1 FROM DUAL'
... quelques requêtes en lectures seules pour un esclave
... ret = 'tcp://192.168.2.27:3306'
L'utilisateur est connecté sur 'myapp'...
... décision du serveur pour l'exécution de la requête 'SELECT 2 FROM DUAL'
... quelques requêtes en lectures seules pour un esclave
... ret = 'tcp://192.168.78.136:3306'
L'utilisateur est connecté sur 'myapp'...
... décision du serveur pour l'exécution de la requête 'SELECT * FROM table_on_slave_a_only'
... accès à une table disponible que sur l'esclave A détecté
... ret = 'tcp://192.168.2.27:3306'

Voir aussi

  • mysqlnd_ms_query_is_select() - Vérifie quel serveur est sélectionné pour l'envoi de la requête
  • Notion sur les filtres
  • Les filtres utilisateurs


Démarre une transaction distribuée/XA sur les serveurs MySQL particpants

  • « mysqlnd_ms_set_user_pick_server
  • mysqlnd_ms_xa_commit »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Démarre une transaction distribuée/XA sur les serveurs MySQL particpants

mysqlnd_ms_xa_begin

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_begin — Démarre une transaction distribuée/XA sur les serveurs MySQL particpants

Description

int mysqlnd_ms_xa_begin ( mixed $connection , string $gtrid [, int $timeout ] )

Démarre une transaction distribuée/XA sur les serveurs MySQL particpants. PECL/mysqlnd_ms agit comme un coordinateur de la transaction distribuée.

Une fois qu'une transaction globale a commencé, le plugin injecte les requêtes SQL XA BEGIN appropriées sur tous les serveurs MySQL particpants. La transaction globale est soit terminée par un appel à la fonction mysqlnd_ms_xa_commit(), ou la fonction mysqlnd_ms_xa_rollback() soit, par une annulation implicite lorsqu'une erreur survient.

Pendant une transaction globale, le plugin surveille tous les changements de serveurs, par exemple, lorsque l'on passe d'un serveur MySQL partagé à un autre. Si une requête est émise vers un serveur qui ne participe pas à la transaction globale, une requête XA BEGIN y sera exécutée avant la requête demandée. D'un point de vue utilisateur, l'injection intervient pendant un appel à une fonction d'exécution de requête, comme mysqli_query(). Si l'injection échoue, l'erreur sera rapportée à l'appelant, soit la fonction d'exécution de la requête. Le serveur défaillant ne devient pas un participant de la transaction globale. L'utilisateur doit re-tenter la requête sur le serveur, et ainsi, re-tenter l'injection XA BEGIN, soit stopper la transaction globale car tous les serveurs voulus ne peuvent participer, soit ignorer et continuer l'action globale sans le serveur défaillant.

Il existe plusieurs raisons dans l'échec d'une injection XA BEGIN comme un serveur qui ne peut être atteint, ou un serveur qui a une transaction XA concurrente qui utilise le même xid.

Notez que les transactions globales et locales sont mutuellement exclusives. Vous ne pouvez pas démarrer une transaction XA lorsque vous avez une transaction locale en cours. La transaction locale doit d'abord être fermée. Le plugin tente de détecter ce conflit aussi vite que possible. Il va surveiller les appels APIs de contrôler des transactions locales afin d'en vérifier le statut. Cependant, si des requêtes SQL sont utilisées pour les transactions locales, comme BEGIN, le plugin peut ne pas connaître le statut courant et le conflit n'est pas détecté avant que l'injection XA BEGIN ne soit effectuée.

L'utilisation de ressources XA différents des serveurs MySQL n'est pas supportée par cette fonction. Pour mener à bien une transaction globale entre, par exemple, un serveur MySQL et un autre système de base de données, vous devez réaliser vous même les commandates systèmes SQL.

Note: Expérimental

Cette fonctionalité est actuellement en cours de développement. Il peut y avoir des bogues ou des limitations dans la fonctionalité. Ne pas utiliser en environnement de production.

Liste de paramètres

connection

Un gestion de connexion MySQL obtenu depuis une des fonctions de connexion des extensions mysqli, mysql ou PDO_MYSQL.

gtrid

Identifiant de transaction globale (gtrid). Le gtrid est une chaîne binaire d'une longueur maximale de 64 octets. Notez que suivant le jeu de caractères que vous utilisez, 64 caractères peuvent nécessiter plus de 64 octets à stocker.

Suivant la syntaxe MySQL SQL, les transactions XA utilisent des identifiants comportant 3 parties. Un xid est composé d'un identifiant de transaction globale (gtrid), un qualifieur de branche (bqual), et un identifiant de format (formatID). Seul l'identifiant de transaction globale peut et doit être défini.

Le qualifieur de branche et l'identifiant de format sont définis automatiquement. Le détail dépend de l'implémentation choisie, et peut changer sans aucun avertissement. En version 1.6, le qualifieur de branche est un nombre consécutif, qui est incrémenté lorsqu'un participant rejoint la transaction globale.

timeout

Délai maximal d'attente, en secondes. La valeur par défaut est de 60 secondes.

Ce délai maximal d'attente est le point final du début du collecteur de données incorrectes. Si une transaction prend plus de temps que prévu, le collecteur de données incorrectes commence à vérifier le statut des transactions.

Le fait de définir une valeur trop basse rend les vérifications du collecteur de données incorrectes trop fréquentes. Notez que la vérification des statuts d'une transaction globale signifie une connexion vers tous les participants enregistrés, et éventuellement, leur envoyer des requêtes.

Valeurs de retour

Retourne TRUE s'il n'y a aucune transaction globale ou locale, et une nouvelle transaction globale peut être démarrée. Sinon, retourne FALSE.

Voir aussi

  • Démarrage rapide avec les transactions distribuées/XA
  • La configuration à l'exécution
  • mysqlnd_ms_get_stats() - Retourne des statistiques quant à la distribution et la connexion de requêtes


Valide une transaction distribuée/XA sur les serveurs MySQL participants

  • « mysqlnd_ms_xa_begin
  • mysqlnd_ms_xa_gc »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Valide une transaction distribuée/XA sur les serveurs MySQL participants

mysqlnd_ms_xa_commit

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_commit — Valide une transaction distribuée/XA sur les serveurs MySQL participants

Description

int mysqlnd_ms_xa_commit ( mixed $connection , string $gtrid )

Valide une transaction globale sur les serveurs MySQL participants, commencée via la fonction mysqlnd_ms_xa_begin().

Si un des participants à la transaction globale échoue à valider, une annulation implicite est effectuée. Il se peut que tous les cas ne soient pas gérer pendant l'annulation. Par exemple, aucune tentative de reconnexion à un participant ne sera réalisée après une perte de connexion. La résolution des cas qui ne peuvent être gérés par l'annulation est laissée à l'attention du collecteur des données incorrectes.

Note: Expérimental

Cette fonctionalité est actuellement en cours de développement. Il peut y avoir des bogues ou des limitations dans la fonctionalité. Ne pas utiliser en environnement de production.

Liste de paramètres

connection

Un gestion de connexion MySQL obtenu depuis une des fonctions de connexion des extensions mysqli, mysql ou PDO_MYSQL.

gtrid

Un identifiant de transaction globale (gtrid).

Valeurs de retour

Retourne TRUE si la transaction globale a été validée. Sinon, retourne FALSE.

Voir aussi

  • Démarrage rapide avec les transactions distribuées/XA
  • La configuration à l'exécution
  • mysqlnd_ms_get_stats() - Retourne des statistiques quant à la distribution et la connexion de requêtes


Collecte les données incorrectes issues des transactions XA non terminées en raison d'erreurs sébères

  • « mysqlnd_ms_xa_commit
  • mysqlnd_ms_xa_rollback »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Collecte les données incorrectes issues des transactions XA non terminées en raison d'erreurs sébères

mysqlnd_ms_xa_gc

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_gc — Collecte les données incorrectes issues des transactions XA non terminées en raison d'erreurs sébères

Description

int mysqlnd_ms_xa_gc ( mixed $connection [, string $gtrid [, boolean $ignore_max_retries ]] )

Collecte les données incorrectes issues de transactions XA non terminées.

Le protocole XA est un protocole bloquant. Il existe des cas où les serveurs participants à une transaction globale ne peuvent réaliser les opérations, par exemple, lorsque le coordinateur de transaction s'interrompt de façon innatendu ou se déconnecte. Dans de tel cas, les serveurs MySQL restent en attente d'instruction pour finir la transaction XA en question. En raison du fait que les transactions occupent des ressources, elles doivent toujours être terminées proprement.

Le collecteur de données incorrectes requiert le stockage d'un statut pour tracker les transactions globales. Lorsqu'un client PHP se termine de façon innatendue au milieu d'une transaction, et qu'un nouveau client PHP démarre, alors le collecteur de données incorrectes peut connaître la transaction globale interrompue et la terminer. Si vous ne configurez pas de stockage de statut, le collecteur de données incorrectes ne peut effectuer aucune tâche de nettoyage.

Le stockage de statut doit être sécurisé contre les crash, avoir une haute disponibilité pour survivre à son propre crash. Actuellement, seul MySQL est supporté comme stockage de statut.

Le collecteur de données incorrectes peut aussi être exécuté automatiquement en tâche de fond. Voir la directive de configuration du plugin garbage_collection pour plus de détails.

Note: Expérimental

Cette fonctionalité est actuellement en cours de développement. Il peut y avoir des bogues et/ou des limitations dans les fonctionalités. Ne pas utiliser en environnement de production.

Liste de paramètres

connection

Un gestionnaire de connexion MySQL obtenu depuis une des fonctions de connexion des extensions mysqli, mysql ou PDO_MYSQL.

gtrid

L'identifiant de transaction globale (gtrid). Si fourni, le collecteur de données incorrectes ne considérera que la transaction. Sinon, le stockage de statut sera analysé à la recherche d'une transaction non terminée.

ignore_max_retries

Si l'on doit ignorer ou non la configuration max_retries du plugin. Si le collecteur de données incorrectes échoue, et que la limite max_retries est atteinte avant de terminer la transaction globale en échec, vous pouvez tenter des exécutions avant de chercher la cause et résoudre le problème manuellement en envoyer des requêtes SQL appropriées aux participants. Le fait de définir ce paramètre a le même effet que de définir temporairement la configuration max_retries = 0.

Valeurs de retour

Retourne TRUE si la transaction globale a été annulée avec succès, FALSE sinon.

Voir aussi

  • Démarrage rapide avec les transactions distribuées/XA
  • La configuration à l'exécution
  • La configuration du stockage des statuts
  • mysqlnd_ms_get_stats() - Retourne des statistiques quant à la distribution et la connexion de requêtes


Annule une transaction distribuée/XA sur les serveurs MySQL

  • « mysqlnd_ms_xa_gc
  • Change History »
  • PHP Manual
  • Fonctions Mysqlnd_ms
  • Annule une transaction distribuée/XA sur les serveurs MySQL

mysqlnd_ms_xa_rollback

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_rollback — Annule une transaction distribuée/XA sur les serveurs MySQL

Description

int mysqlnd_ms_xa_rollback ( mixed $connection , string $gtrid )

Annule une transaction globale sur les serveurs MySQL, commencée par la fonction mysqlnd_ms_xa_begin().

Si l'un des participants à la transaction globale échoue, la situation est confiée au gestionnaire des données incorrectes pour être résolue.

Note: Expérimental

Cette fonctionalité est actuellement en cours de développement. Il peut y avoir des bogues ou des limitations dans la fonctionalité. Ne pas utiliser en environnement de production.

Liste de paramètres

connection

Un gestionnaire de connexion MySQL obtenu depuis une des fonctions de connexion des extensions mysqli, mysql ou PDO_MYSQL.

gtrid

Identifiant de transaction globale (gtrid).

Valeurs de retour

Retourne TRUE si la transaction globale a été annulée avec succès, FALSE sinon.

Voir aussi

  • Le démarrage rapide avec les transactions distribuées/XA
  • La configuration à l'exécution
  • mysqlnd_ms_get_stats() - Retourne des statistiques quant à la distribution et la connexion de requêtes


Change History

Sommaire

  • Séries 1.6 PECL/mysqlnd_ms
  • Séries 1.5 PECL/mysqlnd_ms
  • Séries 1.4 PECL/mysqlnd_ms
  • Séries 1.3 PECL/mysqlnd_ms
  • Séries 1.2 PECL/mysqlnd_ms
  • Séries 1.1 PECL/mysqlnd_ms
  • Séries 1.0 PECL/mysqlnd_ms

Cette historique des modifications est un résumé haut niveau de toutes les modifications qui peuvent impacter les applications et/ou rompre une compatibilité ascendante.

Voir aussi le fichier CHANGES dans les sources de la distribution pour une liste complète des modifications.


Séries 1.6 PECL/mysqlnd_ms

1.6.0-alpha

  • Date de sortie : TBD
  • Motto/thème : Maintenance et support initial de MySQL Fabric

Note:

C'est la série courante de développement. Toutes les fonctionalités sont encore à un stade précoce. Les modifications peuvent survenir à n'importe quel moment sans aucun avertissement. Veuillez ne pas utiliser cette version dans un environnement de production.

La documentation peut ne pas refléter pour l'instant l'ensemble des modifications.

Correction de bogues

  • Modification refusée : #66616 R/W split fails : QOS with mysqlnd_get_last_gtid with built-in MySQL GTID

    Ceci n'est pas un bogue dans l'implémentation du plugin, mais une limitation de la fonctionalité côté serveur non considérée ni documentée auparavant. MySQL 5.6 built-in GTIDs ne peut être utilisé pour assurer la consistence de la session lors de la lecture depuis des esclaves, dans tous les cas. Dans le pire des cas, le plugin ne va pas considérer l'utilisation des esclaves et se retournera vers le maître. Il n'y aura aucun résultat incorrect, mais il n'y aura, non plus, aucun bénéfice de faire des vérification GTID.

  • Correction du bogue #66064 - la balance de charge aléatoire ingore le poids

    En raison d'un bogue sur l'analyseur de configuration de la balance de charge aléatoire, le poids du noeud était ignoré, si et seulement si le drapeau sticky était défini.

  • Correction du bogue #65496 - Vérification incorrecte du délai de l'esclave

    Le filtre de qualité de service ignorait les esclaves pour lesquels le lag était de 0 seconde si un lag maximum était défini. Malgré le fait qu'un esclave ne lag pas du tout, il était exclus de la liste de la balance de charge si un âge maximal était défini par le filtre QoS. Ceci était du à l'utilisation d'un opérateur de comparaison incorrect dans les sources du filtre.

  • Correction du bogue #65408 - Echéc de la compilation avec -Werror=format-security

Modification de fonctionalités

  • Introduction d'un pool de connexion interne. Lors de l'utilisation de Fabric, et du passage du groupe partagé A vers le groupe partagé B, nous remplaçons la liste entière des maîtres et des esclaves. Ceci va perturber la logique d'alignement des status de connexions ainsi que quelques filtres et leurs informations en cache sur la liste des maîtres et des esclaves. La nouvelle abstraction du pool de connexion interne permet d'informer les filtres des modifications, leur permettant ainsi de mettre à jour leurs caches.

    Par la suite, le pool peut également être utilisé pour réduire la charge des connexions. Supposons que vous passez d'un groupe partagé à un autre, et que vous revenez par la suite à la situation de départ. Chaque fois que la bascule survient, la liste du pool de serveurs actifs (et de connexions) est remplacée. Cependant, les connexions qui ne sont plus utilisées ne sont pas nécessairement fermées immédiatement, mais conservées dans le pool pour une utilisation ultérieure.

    Notez que le pool de connexion est interne à ce moment là. Il existe quelques nouvelles statistiques permettant de le surveiller. Cependant, vous ne pouvez pas pour l'instant configurer la taille de ce pool.

  • Ajout d'une abstraction padique des transactions distribuées. Les transactions XA sont supportées en utilisant des appels SQL standarts. Ceci est un inconvénient car les participans XA doivent être gérés manuellement. PECL/mysqlnd_ms introduit des appels API pour contrôler les transactions XA sur les serveurs MySQL. Lors de l'utilisation de nouvelles fonctions, PECL/mysqlnd_ms agit comme un coordinateur de transaction. Après le début d'une transaction distribuée, le plugin surveille tous les serveurs concernés tant que la transaction ne s'est pas terminée, et envoie les requêtes SQL appropriées sur les participants XA.

    Ceci est utile, par exemple, lors de l'utilisation de Fabric et du partage. Lors de l'utilisation de Fabric, les serveurs partagés concernés dans une transaction peuvent ne pas être connus par avance. Aussi, le contrôle manuelle d'une transaction qui touchent plusieurs serveurs partagés devient difficile. Soyez attentif aux limitations courantes.

  • Introduction d'une boucle de tentatives automatique pour les erreurs passagères et les statistiques correspondantes pour compter le nombre de tentatives implicites. Quelques clusters de bases de données distribuées utilisent les erreurs passagères pour avertir le client de re-tenter son opération dans un moment. Le plus souvent, le client est alors supposé stopper l'exécution (sleep) pendant un court instant avant de re-tenter l'opération désirée. Le fait de passer immédiatement à un autre noeud n'est pas nécessaire comme réponse à ces erreurs. Il convient plutôt de lancer une boucle de tentative. C'est une situation commune lors de l'utilisation d'un cluster MySQL.

  • Introduit une boucle de re-tentative automatique pour les erreurs transitoires et les statistiques correspondantes pour compter le nombre de re-tentatives implicites. Quelques grappes de bases de données distribuées utilisent les erreurs transitoires pour toucher un client afin qu'il re-tente ses opérations un peu plus tard. La plupart du temps, le client est alors supposé mettre en pause l'exécution pendant une court instant avant de tenter de nouveau l'opération. Le passage immédiat au noeud suivant n'est pas nécessaire en réponse à cette erreur. Au lieu de cela, une boucle de re-tentative peut être mise en place. Ceci est une situation commune lors de l'utilisation de grappe MySQL.

  • Introduction d'un support basic le framework d'haute disponibilité et de fragmentation MySQL Fabric.

    Attention, ce support est au stade pré-alpha. A la fois le framework côté serveur et côté client sont supposés fonctionner normalement ; toutefois, les tests n'ont pas été effectués avant la mise à disposition de la version alpha du plugin. De plus, l'API peut être modifié sans aucune alerte préalable.

    Sachant que c'est un travail en cours, le manuel peut ne pas refléter toutes les limitations des fonctionalités, ainsi que les bogues connus.

  • Les statistiques pour surveiller Fabric XML RPC appellant sharding.lookup_servers : fabric_sharding_lookup_servers_success, fabric_sharding_lookup_servers_failure, fabric_sharding_lookup_servers_time_total, fabric_sharding_lookup_servers_bytes_total, fabric_sharding_lookup_servers_xml_failure.

  • Nouvelles fonctions en relation avec MySQL Fabric :
mysqlnd_ms_fabric_select_shard(),
mysqlnd_ms_fabric_select_global(),
mysqlnd_ms_dump_servers().


Séries 1.5 PECL/mysqlnd_ms

1.5.0-stable

  • Date de sortie : 06/2013
  • Motto/thème : Support de la fragmentation, amélioration du support des transactions

Note:

C'est la série actuellement stable. Veuillez l'utiliser en environnement de production.

La documentation est complète.

1.5.0-alpha

  • Date de sortie : 03/2013
  • Motto/thème : Support de la fragmentation, amélioration du support des transactions

Correction de bogues

  • Correction du bogue #60605 relatif à une erreur de segmentation lorsque mysqlnd_ms est activé.

  • Le fait des définir les transactions gluantes désactive toutes les balances de charge, incluant le failover automatique, pour la durée d'une transaction. Jusqu'alors, les switches de connexion peuvaient survenir au milieu d'une transaction en configuration multi-maîtres ainsi que durant le failover automatique bien que la surveillance des transactions avait détectée correctement les limites de la transaction.

  • Compatibilité ascendante rompue, et corrections de bogues. Les astuces SQL permettant de forcer l'utilisation d'une sorte de serveur (MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH, MYSQLND_MS_LAST_USED_SWITCH) étaient ignorées pour la durée d'une transaction (gluante) alors que les limites de la transaction avait été détectée correctement.

    Ceci est une modification dans le comportement. Cependant, c'est également une correction de bogue, et une étape nécessaire pour rendre cohérent le comportement. Si, dans les précédentes versions, dans un contexte de transaction gluante, une de ces astuces SQL ainsi qu'une qualité de service se basant sur le filtrage étaient combinées, il pouvait arriver que les astuces SQL étaient ignorées. Dans quelques cas, les astuces SQL fonctionnaient normalement, dans d'autres, elles ne fonctionnaient pas. Ce nouveau comportement est plus cohérent. Les astuces SQL seront toujours ignorées pour la durée de la transaction, si les transactions gluantes sont actives.

    Notez que la détection des limites des transactions continue d'être basée sur des appels de l'API de surveillance. Les commandes SQL contrôlant les transactions ne sont pas surveillées.

  • Compatibilité ascendante rompue, et corrections de bogues. Les appels à la fonction mysqlnd_ms_set_qos() échoueront lorsqu'effectués au milieu d'une transaction si les transactions gluantes sont actives. Les swtiches de connexion ne sont pas autorisées pour la durée d'une transaction. Le changement de qualité de service revient à qualifier un jeu de serveurs différent pour l'exécution de la requête, et donc, il se peut qu'il soit nécessaire de changer de connexions. Aussi, l'appel n'est pas autorisé durant une transaction. La qualité de service peut, cependant, être changée entre les transactions.

Modification de fonctionalités

  • Introduction du filtre node_group. Le filtre vous permet d'organiser les serveurs (maîtres et esclaves) dans des groupes. Les requêtes peuvent être dirigées vers un certain groupe de serveurs en préfixant la requête avec une astuce/commentaire SQL qui contient le nom de configuration du groupe. Les groupes peuvent être utilisés pour le partionnement et le partage, mais aussi pour optimiser localement le cache. Dans le cas du partage, le nom du groupe sera la clé du partage. Toutes les requêtes pour une clé de partage donnée seront exécutées sur le partage configuré. Notez qu'il est nécessaire qu'à la fois le client et le serveur supportent le partage pour être utilisé avec mysqlnd_ms.

  • Validation étendue du fichier de configuration lors du démarrage de PHP (RINIT). Une erreur de niveau E_WARNING sera émise si le fichier de configuration ne peut pas être lu (en raison d'un problème de permissions par exemple), s'il est vide, ou si le fichier (JSON) ne peut être analysé. Ces alertes peuvent apparaître dans les fichiers de log, suivant la configuration de PHP.

    Les distributions qui fournissent une installation pré-configurée, incluant un exemple de fichier de configuration, doivent placer des {} dans le fichier de configuration pour éviter ces alertes à propos d'un fichier de configuration invalide.

    Les prochaines validations du fichier de configuration seront effectuées lors de l'analyse des sections sur l'ouverture d'une connexion. Notez qu'il peut y avoir des situations où un fichier invalide de configuration d'un plugin n'émette pas la bonne alerte mais résulte en une erreur de connexion.

  • Depuis PHP 5.5.0, amélioration de la détection des limites d'une transaction pour mysqli. L'extension mysqli a été modifiée pour utiliser les nouveaux appels C API de la bibliothèque mysqlnd pour commencer, valider ou annuler une transaction ou un point de sauvegarde. Si le paramètre trx_stickiness est utilisé pour activer la balance de charge des transactions, les appels aux fonctions mysqli_begin(), mysqli_commit() et mysqli_rollback() seront maintenant surveillés par le plugin, en plus de la fonction mysqli_autocommit() qui l'était déjà. Toutes les fonctionalités SQL pour contrôler les transactions sont aussi disponibles via les fonctions de contrôles des transactions mysqli associées. Cela signifie qu'il n'est pas nécessaire d'utiliser des requêtes SQL à la place d'appels API. Les applications utilisant uniquement des appels API appropriés peuvent faire de la balance de charge avec PECL/mysqlnd_ms d'une façon totalement sécurisée pour les transactions.

    Notez que PDO_MySQL n'a pas été mis à jour pour utiliser les nouveaux appels API de mysqlnd. Aussi, la détection des limites d'une transaction avec PDO_MySQL continue d'être limitée à la surveillance en utilisant la constante PDO::ATTR_AUTOCOMMIT à la méthode PDO::setAttribute().

  • Introduction de trx_stickiness=on. Cette option trx_stickiness diffère de trx_stickiness=master car elle tente d'exécuter une transaction uniquement en lecture sur un esclave, si la qualité de service (niveau de consistence) autorise d'utiliser un esclave. Les transactions uniquement en lecture ont été introduites en MySQL 5.6, offrant un gain important en terme de performance.

  • Le support du cache des requêtes est considéré comme béta si vous l'utilisez avec l'API mysqli. Il devrait fonctionner parfaitement avec des clusters basés sur une copie primaire. Pour toutes les autres APIs, cette fonctionalité est toujours expérimentale.

  • Les exemples de code dans les sources de mysqlnd_ms ont été mis à jour.


Séries 1.4 PECL/mysqlnd_ms

1.4.2-stable

  • Date de sortie : 08/2012
  • Motto/thème : Amélioration suite aux retours utilisateurs

1.4.0-beta

  • Date de sortie : 08/2012
  • Motto/thème : Optimisations basées sur les retours utilisateurs

Correction de bogues

  • Correction de la construction avec PHP 5.5

1.4.0-alpha

  • Release date: 07/2012
  • Motto/theme: Adapté en fonction du retour des utilisateurs

Modifications des fonctionnalités

  • Compatibilité ascendante rompue : Renommage de l'option de configuration du plugin ini_file en config_file. Dans les versions précédentes, le fichier de configuration du plugin utilisait un style ini. A ce moment là, l'option de configuration était nommé en conséquent. Il a donc été renommé pour refléter le nouveau format de fichier et pour le distinguer depuis le fichier ini propre à PHP (fichier de configuration des directives).

  • Introduction de l'option de configuration du jeu de caractères par défaut server_charset pour permettre une échappement propre avant qu'une connexion ne soit ouverte. Ceci est pratique lors de l'utilisation des connexions paraisseuses, qui sont utilisées par défaut.

  • Introduction de l'option wait_for_gtid_timeout pour limiter les lectures d'un esclave qui a besoin d'une consistence de session. Si un identifiant de transaction globale est utilisé, et que le niveau de service est défini à une consistence de session, alors le plugin tentera de trouver des esclaves à jour. La vérification du statut de l'esclave est effectuée via une requête SQL. Si rien d'autre n'est défini, le statut de l'esclave est vérifié une seule fois, puis la recherche d'un esclave à jour continue immédiatement après. Le fait de définir l'option wait_for_gtid_timeout indique au plugin d'interroger le statut des esclaves pendant wait_for_gtid_timeout secondes si la première exécution de la requête SQL montre que l'esclave n'est pas encore à jour. L'interrogation sera effectuée une fois par seconde. De cette façon, le plugin va attendre d'attraper les esclaves et d'étrangler le client.

  • Nouvelle stratégie de failover loop_before_master. Par défaut, le plugin ne fait pas de failover. Il est possible d'activer un failover automatique si une tentative de connexion échoue. A partir de la version 1.3, seule la stratégie master existe pour le failover vers un maître si la connexion vers un esclave échoue. loop_before_master est similaire mais effectue une tentative sur tous les autres esclaves avant de tenter une connexion vers le maître si une connexion vers un esclave échoue.

    Le nombre de tentative peut être limité en utilisant l'option max_retries. Les hôtes en échec peuvent être listés et ainsi, évités lors de la balance de charge pour le reste de la requête web. Les options max_retries et remember_failed sont considérées comme expérimentales tant qu'une certaine stabilité n'est pas atteinte. La syntaxe et leur signification peuvent changer dans le futur sans avertissement préalable.


Séries 1.3 PECL/mysqlnd_ms

1.3.2-stable

  • Date de sortie : 04/2012
  • Motto/thème : voir 1.3.0-alpha

Corrections de bogues

  • Correction d'un problème avec le multi-maître où, malgré une transaction, les requêtes vers un maître n'étaient pas collantes et étaient réparties dans tous les maîtres (RR). Elles ne sont toujours pas collantes avec Random. Random_once n'est pas affecté.

1.3.1-beta

  • Date de sortie : 04/2012
  • Motto/thème : voir 1.3.0-alpha

Corrections de bogues

  • Correction d'un problème lors de la compilation avec QC.

1.3.0-alpha

  • Date de sortie : 04/2012
  • Motto/thème : Mise en cache de requête via le concepte de qualité de service

La série 1.3 a pour but d'améliorer la performance des applications, et la charge globale d'un cluster asynchrone MySQL, par exemple, un cluster MySQL utilisant la réplication MySQL. Ceci est fait en remplaçant de façon transparente les accès à un esclave avec un accès au cache local, si l'application l'autorise en utilisant un drapeau de qualité de service approprié. Lors de l'utilisation d'une réplication MySQL, un esclave peut servir des données non mises à jour. Une application utilisant une réplication MySQL doit continuer de travailler correctement avec des données non mises à jour. Partant de ce principe, l'application sait qu'elle fonctionne avec des données non mises à jour, l'accès au esclave peut être remplacé de façon transparente avec un accès au cache local.

PECL/mysqlnd_qc sert comme un gestionnaire de cache. PECL/mysqlnd_qc supporte l'utilisation de plusieurs lieux de stockage, comme le stockage en mémoire vive, le stockage avec APC ou bien MEMCACHE.

Modifications des fonctionnalités

  • Ajout d'une option de cache au filtre de qualité de service (QoS).

    • Nouvelle option de configuration : enable-mysqlnd-ms-cache-support
    • Nouvelle constante : MYSQLND_MS_HAVE_CACHE_SUPPORT.
    • Nouvelle constante : MYSQLND_MS_QOS_OPTION_CACHE à utiliser avec la fonction mysqlnd_ms_set_qos().

  • Support de l'identifiant de transaction globale interne de MySQL 5.6.5-m8 ou supérieure.


Séries 1.2 PECL/mysqlnd_ms

1.2.1-beta

  • Date de sortie : 01/2012
  • Motto/thème : voir 1.2.0-alpha

Modifications mineures.

1.2.0-alpha

  • Date de sortie : 11/2011
  • Motto/thème : Injection de l'identifiant de transaction globale et concepte de la qualité de service

En version 1.2, le focus continue d'être sur le support des clusters de base de données MySQL avec la réplication asynchrone. Le plugin tente de rendre utilisable le cluster en introduisant un filtre de qualité de service, utilisable par les applications pour définir la qualité de service requise depuis le cluster. Les niveaux de service fournis sont la consistence éventuelle en tenant compte d'un âge maximal et du lag des esclaves, la consistence de session, et la consistence forte.

De plus, le plugin peut injecter l'identifiant de transaction globale côté client pour rendre plus simple le retour manuel vers le maître.

Modifications des fonctionnalités

  • Introduction du filtre de qualité de service (QoS). Les niveaux de service fournis par le filtre QoS sont :

    • consistence éventuelle, lag de l'esclave en option
    • consistence de session, GTID en option
    • consistence forte

  • Ajout de la fonction mysqlnd_ms_set_qos() pour définir la qualité de service requise lors de l'exécution. Les nouvelles constantes relatives à la fonction mysqlnd_ms_set_qos() sont :

    • MYSQLND_MS_QOS_CONSISTENCY_STRONG
    • MYSQLND_MS_QOS_CONSISTENCY_SESSION
    • MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL
    • MYSQLND_MS_QOS_OPTION_GTID
    • MYSQLND_MS_QOS_OPTION_AGE

  • Ajout de l'injection de l'identifiant de transaction globale côté client (GTID).

  • Nouvelles statistiques relatives au GTID :

    • gtid_autocommit_injections_success
    • gtid_autocommit_injections_failure
    • gtid_commit_injections_success
    • gtid_commit_injections_failure
    • gtid_implicit_commit_injections_success
    • gtid_implicit_commit_injections_failure

  • Ajout de la fonction mysqlnd_ms_get_last_gtid() pour récupérer le dernier identifiant de transaction globale.

  • Activation du support de plusieurs maîtres, sans aucun esclave.


Séries 1.1 PECL/mysqlnd_ms

1.1.0

  • Date de sortie : 09/2011
  • Motto/thème : Couvre les bases de la réplication avec une qualité de production

Les séries 1.1 et 1.0 exposent un jeu de fonctionnalités similaire. En interne, la série 1.1 a été refactorisée pour accepter des fonctionnalités futures. Un nouveau format de fichier de configuration a été introduit, et les limitations ont été écartées. La qualité du code ainsi que l'assurance qualité ont été améliorées.

Modifications des fonctionnalités

  • Ajout du concepte de filtre (chaîné) :

    • Compatibilité ascendante rompue : La fonction mysqlnd_ms_set_user_pick_server() a été supprimée. Le filtre user a été ajouté pour remplacer cette fonction. Ce filtre offre des fonctionnalités similaires (voir ci-dessous pour une explication des différences).

  • Nouvelle syntaxe de configuration basée sur le pluissant JSON.
  • Amélioration des connexions paraisseuses : les commandes relatives à la sécurité et la modification de statut sont couvertes.
  • Support (natif) pour les requêtes préparées.

  • Nouvelles statistiques : use_master_guess, use_slave_guess.

    • Compatibilité ascendante rompue : La sémantiques des statistiques a été modifiée pour use_slave et use_master. De futures modifications sont possibles. Voir la fonction mysqlnd_ms_get_stats().

  • Liste des messages diffusés étendue par ssl_set.
  • Les appels à la bibliothèque sont maintenant monitorés afin de se souvenir de la configuration pour les connexions paraisseuses : change_user, select_db, set_charset, set_autocommit.
  • Introduction de mysqlnd_ms.disable_rw_split. L'option de configuration permet la balance de charge et les connexions paraisseuses indépendamment de la séparation des lectures et des écritures.

Corrections de bogues

  • Résolution de PECL #22724 - Switch de serveur (mysqlnd_ms_query_is_select(), sensible à la casse)
  • Résolution de PECL #22784 - L'utilisation de mysql_connect et mysql_select_db ne fonctionne pas
  • Résolution de PECL #59982 - Extension inutilisable avec --enable-mysqlnd-ms-table-filter. L'utilisation de l'option n'estpas supporté. Vous ne devez pas l'utiliser. Ajout de la note au m4.
  • Résolution de Bug #60119 - host="localhost" perdu lors de l'utilisation de la fonction mysqlnd_ms_get_last_used_connection()

La fonction mysqlnd_ms_set_user_pick_server() a été supprimée et remplacée par un nouveau filtre user. Vous ne pouvez plus définir de fonction de rappel en utilisant la fonction mysqlnd_ms_set_user_pick_server() au moment de l'exécution, mais plutôt, devez le configurer dans le fichier de configuration du plugin. Le filtre user passe les mêmes arguments à la fonction de rappel qu'auparavant. Toutefois, vous pouvez continuer d'utiliser la même fonction procédurale comme fonction de rappel. Il n'est plus possible d'utiliser les méthodes de classe statiques, ou méthodes de classe d'une instance d'objet, comme fonction de rappel. Si vous le faîtes, la fonction exécutant une requête gérée par le plugin émettra une alerte de niveau E_RECOVERABLE_ERROR, qui devrait ressembler à ceci : "(mysqlnd_ms) Specified callback (picker) is not a valid callback." Note : ceci peut interrompre votre application.


Séries 1.0 PECL/mysqlnd_ms

1.0.1-alpha

  • Date de sortie : 04/2011
  • Motto/thème : contient essentiellement des corrections de bogues

1.0.0-alpha

  • Date de sortie : 04/2011
  • Motto/thème : Couvre les bases de la réplication afin de reccueillir les retours des utilisateurs

La première version d'utilisation pratique ! Elle fournit un mécanisme de séparation des lectures et des écritures basique, les astuces SQL pour automatiser les redirections, la balance de charge des requêtes sur les esclaves, les connexions paraisseuses, et optionnellement, l'utilisation automatique du maître après la première écriture.

Le jeu de fonctionnalité public est fermé à la version 1.1.

1.0.0-pre-alpha

  • Date de sortie : 09/2010
  • Motto/thème : Preuve du concepte

Mise à disposition initiale. Essentiellement une démonstration de l'API du plugin mysqlnd.


Plugin de cache des résultats de requêtes Mysqlnd

  • Introduction
  • Démarrage rapide et quelques exemples
    • Architecture et conceptes
    • Configuration
    • Mise en cache des requêtes
    • Définission du TTL
    • Mise en cache basée sur un masque
    • Défense de type slam
    • Trouver des candidats à la mise en cache
    • Mesure de l'efficacité du cache
    • Au-dela du TTL : gestionnaire de stockage défini par l'utilisateur
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
  • Constantes pré-définies
  • Fonctions mysqlnd_qc
    • mysqlnd_qc_clear_cache — Force l'affichage complet du contenu du cache
    • mysqlnd_qc_get_available_handlers — Retourne la liste des gestionnaires de stockage disponibles
    • mysqlnd_qc_get_cache_info — Retourne des informations sur le gestionnaire courant
    • mysqlnd_qc_get_core_stats — Statistiques collectées par le cœur du cache des requêtes
    • mysqlnd_qc_get_normalized_query_trace_log — Retourne une trace dans les logs d'une requête normalisée pour chaque requête inspectée par le cache de requêtes
    • mysqlnd_qc_get_query_trace_log — Retourne une trace pour chaque requête inspectée par la mise en cache de requêtes
    • mysqlnd_qc_set_cache_condition — Définit les conditions pour une mise en cache automatique
    • mysqlnd_qc_set_is_select — Installe une fonction de rappel qui décide si une requête doit être mise en cache
    • mysqlnd_qc_set_storage_handler — Modifie le gestionnaire de stockage courante
    • mysqlnd_qc_set_user_handlers — Définit les fonctions de rappel pour un gestionnaire de stockage procédural défini par l'utilisateur
  • Historique des changements
    • Séries PECL/mysqlnd_qc 1.2
    • PECL/mysqlnd_qc 1.1
    • PECL/mysqlnd_qc 1.0


Introduction

Le plugin de cache des résultats de requêtes Mysqlnd ajoute la possibilité de mettre en cache les requêtes côté client pour toutes les extensions PHP MySQL en utilisant mysqlnd.

Depuis la version PHP 5.3.3, le driver natif MySQL pour PHP ( mysqlnd) dispose d'un plugin interne de l'API C. Les plugins C, comme le plugin de mise en cache des requêtes, peuvent étendre les fonctionnalités de mysqlnd.

Les plugins Mysqlnd comme le plugin de mise en cache des requêtes opère de façon transparente d'un point de vue utilisateur. Le plugin de cache supporte toutes les applications PHP ainsi que toutes les extensions PHP MySQL (mysqli, mysql, PDO_MYSQL). Il ne modifie pas les APIs existantes.

Aucun modification significative n'est nécessaire pour mettre en cache une requête. Le cache a 2 modes de fonctionnement. Il peut soit mettre en cache toutes les requêtes (non recommandé), soit uniquement celles marquées avec une certaine astuce SQL (recommandé).

Principales caractéristiques

  • Transparent et facile d'utilisation.

    • supporte toutes les extensions PHP MySQL

    • aucune modification d'API

    • de très simples modifications des applications sont nécessaires

  • Stratégie d'invalidation flexible

    • Time-to-Live (TTL)

    • défini par l'utilisation

  • Stockage avec différents scopes et durée de vie

    • Défaut (Hash, processus mémoire)

    • APC

    • MEMCACHE

    • sqlite

    • défini par l'utilisateur

  • Défense slam interne pour prévenir les débordements du cache.

Limitations

La version courante 1.0.1 de PECL mysqlnd_qc ne supporte pas PHP 5.4. La version 1.1.0-alpha supprime cette limitation.

Les requêtes préparées et bufferisées sont totalement supportées. Ansi, le plugin est capable de mettre en cache toutes les requêtes issues des extensions mysqli et PDO_MySQL, qui sont les deux seules API PHP MySQL à offrir le support des requêtes préparées.

Sur le nom

Le raccourci mysqlnd_qc signifie mysqlnd query cache plugin. Le nom a été choisi pour une démonstration technologique. Au début, les développeurs n'avaient pas prévu de continuer d'utiliser le code de base. Quelques fois, PECL/mysqlnd_qc était aussi appelé client-side query result set cache.


Démarrage rapide et quelques exemples

Sommaire

  • Architecture et conceptes
  • Configuration
  • Mise en cache des requêtes
  • Définission du TTL
  • Mise en cache basée sur un masque
  • Défense de type slam
  • Trouver des candidats à la mise en cache
  • Mesure de l'efficacité du cache
  • Au-dela du TTL : gestionnaire de stockage défini par l'utilisateur

Le plugin de mise en cache de requêtes mysqlnd est très simple d'utilisation. Cette section de la documentation va vous montrer les cas typiques d'utilisation, et va vous fournir des conseils d'utilisation à prendre en compte lors du démarrage de son utilisation.

Il est fortement recommandé de lire la section de référence en plus de cette section de la documentation. Il est plus sûr de commencer avec le guide de démarrage rapide. Cependant, avant d'utiliser ce plugin en environnement critique, nous vous recommandons vivement de lire les informations contenues dans les sections de référence.

La plupart des exemples utilise l'extension mysqli car c'est l'extension la plus complète PHP MySQL. Cependant, le plugin peut aussi être utilisé avec n'importe quelle extension PHP MySQL qui utilise la bibliothèque mysqlnd.


Architecture et conceptes

Le plugin de mise en cache de requêtes est implémenté comme une extension PHP. Il est écrit en C et opère en dessous de PHP. Lors du démarrage de l'interpréteur PHP, il est enregistré comme un plugin mysqlnd pour remplacer les méthodes sélectionnées de mysqlnd C. Ainsi, il peut modifier le comportement de n'importe quelle extension PHP MySQL (mysqli, PDO_MYSQL, mysql) compilée pour utiliser la bibliothèque mysqlnd sans modification de l'API de l'extension. Ceci rend le plugin compatible avec toutes les applications PHP MySQL. En raison du fait que l'API n'est pas modifiée, son utilisation est totalement transparente. Reportez-vous à la description de l'API plugin de mysqlnd pour plus de détails sur les avantages de l'architecture plugin et une comparaison avec les solutions basées sur les proxy.

Utilisation transparente

Lors de l'exécution de PHP, PECL/mysqlnd_qc peut réagir comme un proxy pour les requêtes émises depuis PHP (mysqlnd) vers le serveur MySQL. Il inspecte la chaîne de requête pour décider si les résultats doivent être mis en cache ou non. Si c'est le cas, le jeu de résultats est mis en cache en utilisant un gestionnaire de stockage et les futures exécutions de cette requête seront servies depuis le cache pour une période définie par l'utilisateur. La durée de vie, ou TTL de l'entrée du cache peut être soit déterminée de façon globale, soit pour chaque requête.

Une requête est soit mise en cache si il est demandé au plugin de mettre en cache de façon globale toutes les requêtes, soit si la chaîne de requête comme avec une astuce SQL (/*qc=on*/). Le plugin est capable de mettre en cache n'importe quelle requête soumise par un appel approprié de l'API depuis n'importe quelle extension PHP MySQL.

Stockage flexible : divers gestionnaires de stockage

Divers gestionnaires de stockage sont supportés pour offrir différents scopes pour les entrées du cache. Les différents scopes autorisent différents degrés dans le partage des entrées du cache entre les clients.

  • default (interne) : processus mémoire, scope : une ou plusieurs requêtes suivant le modèle de déployement de PHP utilisé

  • APC : mémoire partagée, scope : un seul serveur, plusieurs requêtes web

  • SQLite : en mémoire ou dans un fichier, scope : un seul serveur, plusieurs requêtes web

  • MEMCACHE : mémoire principale, scope : un ou plusieurs serveurs, plusieurs requêtes web

  • user (interne) : défini par l'utilisateur, scope : défini par l'utilisateur

Le support des gestionnaires de stockage APC, SQLite et MEMCACHE doit être activé lors de la compilation. Le gestionnaire default et user sont internes. Il est possible de passer d'un gestionnaire compilé de stockage à l'autre à chaque requête lors de l'exécution. Cependant, il est recommandé de prendre un gestionnaire de stockage et de l'utiliser pour toutes les entrées du cache.

Défense de type slam interne afin de prévenir une surcharge

Pour prévenir des situations de surcharge, le plugin de mise en cache a un mécanisme de défense de type slam en interne. Si une entrée populaire du cache expire, plusieurs clients utilisant les entrées du cache tenteront de mettre à jour l'entrée du cache. Pendant la durée de se rafraîchissement, plusieurs clients peuvent accéder au serveur de base de données de façon concurrente. Dans la plupart des cas, le serveur de base de données devient surchargé et il prendra de plus en plus de temps à mettre à jour l'entrée du cache, car il recevra de plus en plus de clients qui tenteront de mettre à jour l'entrée du cache. Pour prévenir ce comportement, le plugin a un mécanisme de défense de type slam. Si il est activé et que le plugin détecte l'expiration d'une entrée du cache, il va étendre la durée de vie de cette entrée avant de la mettre à jour. De cette façon, les autres accès concurrents à cette entrée du cache seront toujours servis depuis le cache pour un certain temps. Ainsi, les accès concurrents ne vont pas tous provoquer des mises à jour concurrentes. Idéalement, l'entrée du cache sera mise à jour par le client en étendant sa durée de vie avant que d'autres clients ne tentent de mettre à jour le cache, et potentiellement, éviter ainsi une situation de surcharge.

Approche unique dans la mise en cache

PECL/mysqlnd_qc a une approche unique dans la mise en cache des jeux de résultats qui est supérieure aux solutions de mise en cache des applications. Les solutions applicatives commencent par récupérer un jeu de résultats dans des variables PHP. Puis, les variables PHP sont linéarisées pour stockage dans un cache persistent et délinéarisées lors de la récupération. La mise en cache de requête mysqlnd stocke les données brutes du protocole envoyées depuis MySQl vers PHP dans son cache, et les retournent, si elles sont toujours valides, lors d'une demande d'accès. De cette façon, elle échappe à une étape de linéarisation pour une mise en cache que toutes les solutions applicatives doivent réaliser. Le plugin peut stocker les données brutes du protocole en cache sans avoir à les linéariser en variable PHP dans un premier temps, et de les délinéariser en variable PHP pour le stockage en cache une nouvelle fois.


Configuration

Le plugin est implémenté comme une extension PHP. Voir aussi les instructions d'installation pour installer l'extension » PECL/mysqlnd_qc.

Vous devez compiler ou configurer l'extension PHP MySQL (mysqli, PDO_MYSQL, mysql) que vous prévoyez d'utiliser avec le support de la bibliothèque mysqlnd. PECL/mysqlnd_qc est un plugin pour la bibliothèque mysqlnd. Pour utiliser le plugin avec n'importe laquelle des extensions PHP MySQL (APIs), l'extension doit utiliser la bibliothèque mysqlnd.

Puis, vous devez charger l'extension dans PHP, et activer le plugin dans le fichier de configuration de PHP en utilisant la directive de configuration PHP nommée mysqlnd_qc.enable_qc.

Exemple #1 Activation du plugin (php.ini)

mysqlnd_qc.enable_qc=1


Mise en cache des requêtes

Il y a 4 façons de mettre en cache une requête.

  • Utiliser une astuce SQL pour chaque requête
  • L'utilisation fourni une fonction de rappel pour prise de décision pour chaque requête, par exemple, en utilisant la fonction mysqlnd_qc_is_select()
  • Utilisation de la fonction mysqlnd_set_cache_condition() pour des règles automatiques pour chaque requête
  • Utilisation de la directive mysqlnd_qc.cache_by_default = 1 pour mettre en cache toutes les requêtes aveuglément

L'utilisation d'astuce SQL et de la directive de configuration mysqlnd_qc.cache_by_default = 1 sont expliquées ci-dessous. Reportez-vous à la documentation sur la fonction mysqlnd_qc_is_select() pour une description de l'utilisation d'une fonction de rappel et à la documentation sur la fonction mysqlnd_qc_set_cache_condition() sur la façon pour définir des règles automatiques pour la mise en cache.

Une astuce SQL est un commentaire standard SQL. Comme tout commentaire SQL, il sera ignoré par la base de données. Une requête est considérée éligible à la mise en cache si elle commence par une astuce SQL activant la mise en cache, ou si c'est une requête de type SELECT.

Une requête individuelle qui doit être mise en cache doit commencer avec l'astuce SQL /*qc=on*/. Il est recommandé d'utiliser la constante PHP MYSQLND_QC_ENABLE_SWITCH au lieu d'utiliser la chaîne ci-dessus.

  • non éligible pour la mise en cache, et non mise en cache : INSERT INTO test(id) VALUES (1)

  • non éligible à la mise en cache et non mise en cache : SHOW ENGINES

  • éligible à la mise en cache, mais non mise en cache : SELECT id FROM test

  • éligible à la mise en cache et mise en cache : /*qc=on*/SELECT id FROM test

L'exemple avec la chaîne de requête SELECT est préfixé avec l'astuce SQL MYSQLND_QC_ENABLE_SWITCH pour active la mise en cache de la requête. L'astuce SQL doit être fournie au tout début de la chaîne de requête pour activer la mise en cache.

Exemple #1 Utilisation de l'astuce SQL MYSQLND_QC_ENABLE_SWITCH

mysqlnd_qc.enable_qc=1
<?php
/* Connexion, création et peuplement de la table test */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* Sera mis en cache en raison de la présence de l'astuce SQL */
$start = microtime(true);
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();
printf("Durée de la requête non mise en cache : %.6fs\n", microtime(true) - $start);

/* Récupération depuis le cache */
$start = microtime(true);
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();
printf("Durée de la requête mise en cache : %.6fs\n", microtime(true) - $start);
?>

Les exemples ci-dessus vont afficher :

array(1) {
  ["id"]=>
  string(1) "1"
}
Durée de la requête non mise en cache : 0.000740s
array(1) {
  ["id"]=>
  string(1) "1"
}
Durée de la requête mise en cache : 0.000098s

Si rien de plus n'est configuré, comme c'est le cas dans l'exemple de démarrage rapide, le plugin utilisera le gestionnaire de stockage interne default. Le gestionnaire de stockage default utilise un processus mémoire pour stocker une entrée du cache. Suivant le modèle de déployement PHP, un processus PHP peut servir une ou plusieurs requêtes web. Veuillez consulter le manuel de votre serveur web pour plus de détails. Ces détails ne feront aucune différence dans les exemples de cette section.

Le plugin de mise en cache de requêtes va mettre en cache toutes les requêtes si la chaîne commence par une astuce SQL qui active ou non la mise en cache, si la directive de configuration PHP mysqlnd_qc.cache_by_default vaut 1. La configuration mysqlnd_qc.cache_by_default est évaluée par le coeur du plugin de mise en cache de requêtes. Aussi, ni le coeur du plugin, ni un gestionnaire de stockage défini par l'utilisateur ne peuvent écraser cette configuration.

L'astuce SQL /*qc=off*/ peut être utilisée pour désactiver la mise en cache d'une requête si mysqlnd_qc.cache_by_default = 1. Il est recommandé d'utiliser la constante PHP MYSQLND_QC_DISABLE_SWITCH au lieu de la valeur litérale.

Exemple #2 Utilisation de l'astuce SQL MYSQLND_QC_DISABLE_SWITCH

mysqlnd_qc.enable_qc=1
mysqlnd_qc.cache_by_default=1
<?php
/* Connexion, création et peuplement de la table test */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* Sera mise en cache malgré le fait qu'aucune astuce SQL ne soit présente,
car mysqlnd_qc.cache_by_default = 1*/
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

$mysqli->query("DELETE FROM test WHERE id = 1");

/* Récupération depuis le cache - aucune invalidation automatique, et donc, toujours valide ! */
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* Non présente dans le cache - la requête ne doit pas être mise en cache en raison de
la présence de l'astuce SQL */
$res = $mysqli->query("/*" . MYSQLND_QC_DISABLE_SWITCH . "*/SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();
?>

Les exemples ci-dessus vont afficher :

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "1"
}
NULL

PECL/mysqlnd_qc ne mettra pas en cache les requêtes pour lesquelles au moins une colonne du jeu de résultats ne contient pas le nom de la table dans ses méta-données par défaut. C'est habituellement le cas pour les colonnes provenant de fonctions SQL comme NOW() ou LAST_INSERT_ID(). La politique vise à éviter les pièges, si la mise en cache est utilisée par défaut.

Exemple #3 Exemple montrant les types de requêtes non mis en cache

mysqlnd_qc.enable_qc=1
mysqlnd_qc.cache_by_default=1
<?php
/* Connexion, création et peuplement de la table test */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1)");

for ($i = 0; $i < 3; $i++) {

  $start = microtime(true);

  /* Note : la requête ne sera pas mise en cache car NOW() est utilisé */
  $res = $mysqli->query("SELECT id, NOW() AS _time FROM test");
  $row = $res->fetch_assoc();

  /* Affichage des résultats */
  var_dump($row);

  printf("Durée d'exécution : %.6fs\n", microtime(true) - $start);

  /* On attend une seconde */
  sleep(1);
}
?>

Les exemples ci-dessus vont afficher :

array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:43:10"
}
Durée d'exécution : 0.000540s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:43:11"
}
Durée d'exécution : 0.000555s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:43:12"
}
Durée d'exécution : 0.000549s

Il est possible d'activer la mise en cache pour toutes les requêtes, y compris celles qui contiennent des colonnes dans leur jeu de résultats pour lesquelles MySQL rapporte aucune table, comme la requête de l'exemple ci-dessus. Définissez la directive de configuration comme ceci mysqlnd_qc.cache_no_table = 1 pour activer la mise en cache de telle requête. Notez la différence dans les durées mesurées de l'exemple ci-dessus et de l'exemple ci-dessous.

Exemple #4 Activation du cache pour toutes les requêtes en utilisant l'option de configuration ini mysqlnd_qc.cache_no_table

mysqlnd_qc.enable_qc=1
mysqlnd_qc.cache_by_default=1
mysqlnd_qc.cache_no_table=1
<?php
/* Connexion, création et peuplement de la table test */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1)");

for ($i = 0; $i < 3; $i++) {

  $start = microtime(true);

  /* Note : la requête ne sera pas mise en cache car NOW() est utilisé */
  $res = $mysqli->query("SELECT id, NOW() AS _time FROM test");
  $row = $res->fetch_assoc();

  /* Affichage des résultats */
  var_dump($row);

  printf("Durée d'exécution : %.6fs\n", microtime(true) - $start);

  /* On attend une seconde */
  sleep(1);
}
?>

Les exemples ci-dessus vont afficher :

array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:47:45"
}
Total time: 0.000546s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:47:45"
}
Durée d'exécution : 0.000187s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:47:45"
}
Durée d'exécution : 0.000167s

Note:

Bien que mysqlnd_qc.cache_no_table = 1 a été créé pour une utilisation avec mysqlnd_qc.cache_by_default = 1, il y est lié. Le plugin va évaluer la directive mysqlnd_qc.cache_no_table à chaque fois qu'une requête est prête à être mise en cache, sans tenir compte de l'activation du cache en utilisant une astuce SQL ou toute autre mesure.


Définission du TTL

La stratégie d'invalidation par défaut du plugin d'une requête du cache est Time to Live (TTL). Le gestionnaire de stockage interne utilisera le TTL par défaut, défini par la valeur de la directive de configuration mysqlnd_qc.ttl à moins qu'une chaîne de requête ne contienne une astuce pour configurer un TTL différent. Le TTL est spécifié en seconde. Par défaut, une entrée du cache expire après 30 secondes.

L'exemple définit mysqlnd_qc.ttl=3 pour mettre en cache les requêtes pour 3 secondes par défaut. Chaque seconde, il met à jour un enregistrement d'une table de la base de données pour enregistrer l'heure courant et exécute une requête de type SELECT pour récupérer l'enregistrement depuis la base de données. La requête SELECT est mise en cache pour 3 secondes, car elle est préfixée d'une astuce SQL activant la mise en cache. La sortie vérifie que les résultats de la requête sont prises depuis le cache pour la durée de ces 3 secondes avant d'être mis à jour.

Exemple #1 Définir un TTL avec l'option de configuration ini mysqlnd_qc.ttl

mysqlnd_qc.enable_qc=1
mysqlnd_qc.ttl=3
<?php
/* Connexion, création et peuplement de la table test */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id VARCHAR(255))");

for ($i = 0; $i < 7; $i++) {

  /* Mise à jour de la ligne de la base de données  */
  if (!$mysqli->query("DELETE FROM test") ||
      !$mysqli->query("INSERT INTO test(id) VALUES (NOW())"))

    /* Bien sûr, un vrai script devrait avoir un gestionnaire d'erreurs meileur */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

  /* Sélection de la dernière ligne mais met en cache les résultats */
  $query  = "/*" . MYSQLND_QC_ENABLE_SWITCH . "*/";
  $query .= "SELECT id AS _time FROM test";
  if (!($res = $mysqli->query($query)) ||
      !($row = $res->fetch_assoc()))
  {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
  }
  $res->free();
  printf("Heure : %s - Heure de la ligne dans la base de données : %s\n", date("H:i:s"), $row['_time']);

  /* Pause d'une seconde */
  sleep(1);
}
?>

Les exemples ci-dessus vont afficher :

Heure : 14:55:59 - Heure de la ligne dans la base de données : 2012-01-11 14:55:59
Heure : 14:56:00 - Heure de la ligne dans la base de données : 2012-01-11 14:55:59
Heure : 14:56:01 - Heure de la ligne dans la base de données : 2012-01-11 14:55:59
Heure : 14:56:02 - Heure de la ligne dans la base de données : 2012-01-11 14:56:02
Heure : 14:56:03 - Heure de la ligne dans la base de données : 2012-01-11 14:56:02
Heure : 14:56:04 - Heure de la ligne dans la base de données : 2012-01-11 14:56:02
Heure : 14:56:05 - Heure de la ligne dans la base de données : 2012-01-11 14:56:05

Comme vous pouvez le voir dans cet exemple, n'importe quelle entrée du cache basée sur un TTL peut servir des données non mises à jour. Les entrées du cache ne sont pas automatiquement invalidées si les données ont été modifiées. Les applications utilisant la stratégie TTL par défaut d'invalidation doivent être capables de fonctionner correctement avec des données non mises à jour.

Un gestionnaire de stockage défini par l'utilisateur peut implémenter n'importe quelle stratégie d'invalidation pour permettre de s'affranchir de cette limitation.

Le TTL par défaut peut être écrasé en utilisant l'astuce SQL /*qc_tt=seconds*/. L'astuce SQL doit apparaître immédiatement après l'astuce SQL qui active la mise en cache. Il est recommandé d'utiliser la constante PHP MYSQLND_QC_TTL_SWITCH au lieu d'utiliser la valeur litérale.

Exemple #2 Définir un TTL avec des astuces SQL

<?php
$start = microtime(true);

/* Connexion, création et peuplement de la table test */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

printf("TTL par défaut \t: %d seconds\n", ini_get("mysqlnd_qc.ttl"));

/* Sera mise en cache pendant 2 secondes */
$sql = sprintf("/*%s*//*%s%d*/SELECT id FROM test WHERE id = 1",
 MYSQLND_QC_ENABLE_SWITCH,
 MYSQLND_QC_TTL_SWITCH,
 2);
$res = $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();

$mysqli->query("DELETE FROM test WHERE id = 1");
sleep(1);

/* Récupération depuis le cache - aucune invalidation automatique et donc, toujours valide ! */
$res = $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();

sleep(2);

/* Non présente en cache - l'entrée du cache a expiré */
$res = $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();

printf("Temps d'exécution du script\t: %d seconds\n", microtime(true) - $start);
?>

Les exemples ci-dessus vont afficher :

TTL par défaut     : 30 seconds
array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "1"
}
NULL
Temps d'exécution du script  : 3 seconds


Mise en cache basée sur un masque

Une application a 3 options pour demander à PECL/mysqlnd_qc si une requête doit être mise en cache ou non. L'approche la plus basique est de mettre en cache toutes les requêtes en définissant mysqlnd_qc.cache_by_default = 1. Cette approche est souvent peu pratique. Mais elle permet aux utilisateurs de prendre conscience rapidement des gains de performance de la mise en cache. Une application prévue pour utiliser un cache doit être capable de préfixer les requêtes sélectionnées avec l'astuce SQL appropriée. Cependant, le fait de modifier le code source d'une application peut ne pas toujours être possible ou désiré, par exemple, pour éviter des problèmes lors des mises à jour logicielles. Aussi, PECL/mysqlnd_qc autorise la définition d'une fonction de rappel qui décide si une requête doit être mise en cache ou non.

La fonction de rappel est installée avec la fonction mysqlnd_qc_set_is_select(). La fonction de rappel fournit la chaîne de requête pour chaque requête inspectée par le plugin. Alors, la fonction de rappel décide de la mise en cache ou non. La fonction de rappel est supposée retourner FALSE si la requête ne doit pas être mise en cache. Si la valeur TRUE est retournée, le plugin tentera d'ajouter la requête au cache. L'entrée du cache prendra le TTL par défaut ( mysqlnd_qc.ttl). Si la fonction de rappel retourne une valeur numérique, elle sera utilisée comme TTL au lieu de la valeur par défaut.

Exemple #1 Définir une fonction de rappel avec mysqlnd_qc_set_is_select()

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_statistics=1
<?php
/* fonction de rappel qui va décider si la requête doit être mise en cache ou non */
function is_select($query) {
  static $patterns = array(
   /* true - utilisation du TTL par défaut depuis mysqlnd_qc.ttl */
   "@SELECT\s+.*\s+FROM\s+test@ismU" => true,
   /* 3 - utilisation d'un TTL = 3 secondes */
   "@SELECT\s+.*\s+FROM\s+news@ismU" => 3
  );

  /* vérifie si la requête correspond au masque */
  foreach ($patterns as $pattern => $ttl) {
    if (preg_match($pattern, $query)) {
      printf("is_select(%45s): mise en cache\n", $query);
      return $ttl;
    }
  }
  printf("is_select(%45s): pas de mise en cache\n", $query);
  return false;
}
/* Installation de la fonction de rappel */
mysqlnd_qc_set_is_select("is_select");

/* Connexion, création et peuplement de la table test */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* Mise en cache */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* Récupération depuis le cache */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* Mise en cache */
$mysqli->query("SELECT * FROM test");

$stats = mysqlnd_qc_get_core_stats();
printf("Mise en cache : %d\n", $stats['cache_put']);
printf("Récupération depuis le cache : %d\n", $stats['cache_hit']);
?>

Les exemples ci-dessus vont afficher :

is_select(                    DROP TABLE IF EXISTS test): pas de mise en cache
is_select(                    CREATE TABLE test(id INT)): pas de mise en cache
is_select(    INSERT INTO test(id) VALUES (1), (2), (3)): pas de mise en cache
is_select(             SELECT id FROM test WHERE id = 1): mise en cache
is_select(             SELECT id FROM test WHERE id = 1): mise en cache
is_select(                           SELECT * FROM test): mise en cache
Mise en cache : 2
Récupération depuis le cache : 1

La fonction de rappel de cet exemple teste si une chaîne de requête correspond au masque. Si c'est le cas, elle retournera soit TRUE pour mettre en cache la requête en utilisant le TTL par défaut, soit un TTL alternatif.

Pour minimiser les modifications de l'application, la fonction de rappel peut être mise dans un fichier qui sera par la suite inclut dans le script.


Défense de type slam

Un cache mal structuré peut faire plus de mal que de bien. Dans le pire des cas, un cache peut accroître la charge du serveur de base de données au lieu de la diminuer. Une situation de surcharge peut survenir si un grand nombre d'entrées partagées du cache expirent (débandade du cache).

Les entrées du cache sont partagées et réutilisées à différents degrés suivant le mode de stockage utilisé. Le gestionnaire de stockage par défaut stocke les entrées en mémoire. Ainsi, une entrée du cache peut être réutilisée pendant la durée de vie du processus. Les autres processus PHP ne peuvent pas y accéder. Si Memcache est utilisé, une entrée du cache peut être partagée pour plusieurs processus PHP, sur différentes machaines, suivant la configuration utilisée.

Si un grand nombre d'entrées partagées du cache stockées par exemple dans Memcache expirent, plusieurs clients se verront informés de l'absence de l'entrée dans le cache. A ce moment, vu que ces clients ne peuvent récupérer les données depuis le cache, ils tentent de les récupérer depuis le serveur de base de données. Tant que l'entrée du cache n'est pas mise à jour, de plus en plus de clients contacteront le serveur de base de données. Dans le pire des cas, cela peut conduire à une perte totale du service.

La surcharge peut être évitée en utilisant un gestionnaire de stockage qui limite la réutilisation d'une entrée du cache à un nombre limité de clients. Alors, si le cas extrême est rencontré, ce ne sera qu'un nombre limité de clients qui tenteront de mettre à jour l'entrée du cache en même temps.

De plus, le mécanisme de défense interne de type slam peut et doit être utilisé. Si cette défense est activée, une entrée du cache expirée reçoit une extension de durée de vie. Le premier client qui récupère une entrée manquante car expirée tentera de la mettre à jour pendant la durée de cette extension. Tous les autres clients demandant cette entrée sont temporairement servis depuis le cache malgré le fait que le TTL original de cette entrée a expiré. Les autres clients ne recevront pas comme réponse le fait que l'entrée n'est pas présente dans le cache tant que cette extension de vie ne sera pas atteinte.

mysqlnd_qc.slam_defense=1
mysqlnd_qc.slam_defense_ttl=1

Le mécanisme de défense de type slam est activé avec la direction de configuration PHP mysqlnd_qc.slam_defense. L'extension de durée de vie d'une entrée du cache est définie avec la directive mysqlnd_qc.slam_defense_ttl.

La fonction mysqlnd_qc_get_core_stats() retourne un tableau de statistiques. Les statistiques slam_stale_refresh et slam_stale_hit sont incrémentées si une défense de type slam est mise en place.

Il n'est pas possible de fournir une recommandation générale concernant la configuration de la défense de type slam. Les utilisateurs sont encouragés à surveiller et tester leur configuration et d'ajuster leur configuration en conséquent.


Trouver des candidats à la mise en cache

Une requête doit être considérée comme pouvant être mise en cache si elle est souvent exécutée et qu'elle a un temps d'exécution élevé. Les candidats sont trouvés en créant une liste de requêtes triées par le produit du nombre d'exécutions, multiplié par le temps d'exécution de la requête. La fonction mysqlnd_qc_get_query_trace_log() retourne une trace permettant d'aider dans cette tâche.

La collecte d'une trace de requête est une opération lente. Aussi, cette opération est désactivée par défaut. La directive de configuration PHP mysqlnd_qc.collect_query_trace est utilisée pour l'activer. Les traces des fonctions contiennent une entrée pour chaque requête émise avant l'appel à la fonction.

Exemple #1 Collecte d'une requête de traçage

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_query_trace=1
<?php
/* connexion à MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");

/* quelques requêtes pour remplir les traces de requêtes */
for ($i = 0; $i < 2; $i++) {
  $res = $mysqli->query("SELECT 1 AS _one FROM DUAL");
  $res->free();
}

/* Affichage des traces */
var_dump(mysqlnd_qc_get_query_trace_log());
?>

Les exemples ci-dessus vont afficher :

array(2) {
  [0]=>
  array(8) {
    ["query"]=>
    string(26) "SELECT 1 AS _one FROM DUAL"
    ["origin"]=>
    string(102) "#0 qc.php(7): mysqli->query('SELECT 1 AS _on...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(25)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [1]=>
  array(8) {
    ["query"]=>
    string(26) "SELECT 1 AS _one FROM DUAL"
    ["origin"]=>
    string(102) "#0 qc.php(7): mysqli->query('SELECT 1 AS _on...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(8)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
}

D'autres informations sont fournies dans les trâces. Parmi elles, les horaires et l'origine de l'appel à la requête. La propriété origin contient une trace du code pour identifier la source de la requête. La profondeur de la trace du code peut être limitée avec la directive de configuration PHP mysqlnd_qc.query_trace_bt_depth. La profondeur par défaut est 3.

Exemple #2 Définir la profondeur des traces avec l'option de configuration ini mysqlnd_qc.query_trace_bt_depth

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_query_trace=1
<?php
/* connexion à MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* quelques requêtes pour remplir les traces */
for ($i = 0; $i < 3; $i++) {
  $res = $mysqli->query("SELECT id FROM test WHERE id = " . $mysqli->real_escape_string($i));
  $res->free();
}

$trace = mysqlnd_qc_get_query_trace_log();
$summary = array();
foreach ($trace as $entry) {
  if (!isset($summary[$entry['query']])) {
    $summary[$entry['query']] = array(
      "executions" => 1,
      "time"       => $entry['run_time'] + $entry['store_time'],
    );
  } else {
    $summary[$entry['query']]['executions']++;
    $summary[$entry['query']]['time'] += $entry['run_time'] + $entry['store_time'];
 }
}
foreach ($summary as $query => $details) {
  printf("%45s: %5dms (%dx)\n",
   $query, $details['time'], $details['executions']);
}
?>

Les exemples ci-dessus vont afficher :

                    DROP TABLE IF EXISTS test:     0ms (1x)
                    CREATE TABLE test(id INT):     0ms (1x)
    INSERT INTO test(id) VALUES (1), (2), (3):     0ms (1x)
             SELECT id FROM test WHERE id = 0:    25ms (1x)
             SELECT id FROM test WHERE id = 1:    10ms (1x)
             SELECT id FROM test WHERE id = 2:     9ms (1x)


Mesure de l'efficacité du cache

PECL/mysqlnd_qc fournit 3 façons de mesurer l'efficacité du cache. La fonction mysqlnd_qc_get_normalized_query_trace_log() retourne des statistiques aggrégées par la normalisation d'une chaîne de requête, la fonction mysqlnd_qc_get_cache_info() fournit des informations spécifiques au gestionnaire de stockage qui incluent une liste de tous les éléments mis en cache, suivant le gestionnaire de stockage. De plus, le cooeur de PECL/mysqlnd_qc collecte un résumé haut niveau des statistiques aggrégées par processus PHP. Les statistiques haut niveau sont retournées par la fonction mysqlnd_qc_get_core_stats().

Les fonctions mysqlnd_qc_get_normalized_query_trace_log() et mysqlnd_qc_get_core_stats() ne collecteront pas de données tant que leurs directives de configuration PHP correspondantes ne sont pas activées. Veuillez vous reporter aux différents exemples pour récupérer les noms de ces directives de configuration. La collecte de données est désactivée par défaut et ce, en raison des impacts sur la performances. Elle est configurable via la directive de configuration mysqlnd_qc.time_statistics. La collecte de statistiques quant au durée est activée par défaut mais uniquement effectuée si la collecte de données a été activée. Le fait d'enregistrer des statistiques quant au durée cause beaucoup d'appels système. Dans la plupart des cas, le bénéfice d'une surveillance l'emporte sur la perte de performance dûe aux appels système additionnelles.

Exemple #1 Collecte de données statistiques avec la configuration ini mysqlnd_qc.time_statistics

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_statistics=1
<?php
/* connexion à MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* quelques requêtes */
for ($i = 1; $i <= 4; $i++) {
  $query = sprintf("/*%s*/SELECT id FROM test WHERE id = %d",
     MYSQLND_QC_ENABLE_SWITCH,
     $i % 2);
  $res = $mysqli->query($query);
  $res->free();
}

var_dump(mysqlnd_qc_get_core_stats());
?>

Les exemples ci-dessus vont afficher :

array(26) {
  ["cache_hit"]=>
  string(1) "2"
  ["cache_miss"]=>
  string(1) "2"
  ["cache_put"]=>
  string(1) "2"
  ["query_should_cache"]=>
  string(1) "4"
  ["query_should_not_cache"]=>
  string(1) "3"
  ["query_not_cached"]=>
  string(1) "3"
  ["query_could_cache"]=>
  string(1) "4"
  ["query_found_in_cache"]=>
  string(1) "2"
  ["query_uncached_other"]=>
  string(1) "0"
  ["query_uncached_no_table"]=>
  string(1) "0"
  ["query_uncached_no_result"]=>
  string(1) "0"
  ["query_uncached_use_result"]=>
  string(1) "0"
  ["query_aggr_run_time_cache_hit"]=>
  string(2) "28"
  ["query_aggr_run_time_cache_put"]=>
  string(3) "900"
  ["query_aggr_run_time_total"]=>
  string(3) "928"
  ["query_aggr_store_time_cache_hit"]=>
  string(2) "14"
  ["query_aggr_store_time_cache_put"]=>
  string(2) "40"
  ["query_aggr_store_time_total"]=>
  string(2) "54"
  ["receive_bytes_recorded"]=>
  string(3) "136"
  ["receive_bytes_replayed"]=>
  string(3) "136"
  ["send_bytes_recorded"]=>
  string(2) "84"
  ["send_bytes_replayed"]=>
  string(2) "84"
  ["slam_stale_refresh"]=>
  string(1) "0"
  ["slam_stale_hit"]=>
  string(1) "0"
  ["request_counter"]=>
  int(1)
  ["process_hash"]=>
  int(1929695233)
}

Pour une vue rapide, appelez la fonction mysqlnd_qc_get_core_stats(). Elle délivre l'utilisation du cache, les durées du cache, ainsi que les statistiques relatives au trafic. Les valeurs sont aggrégées pour chaque processus pour toutes les requêtes émises par n'importe quel appel API à PHP MySQL.

Quelques gestionnaires de stockage, comme le gestionnaire par défaut, peuvent signaler les entrées du cache, les statistiques relatives aux entrées et aux méta-données pour la requête sous-jacente via la fonction mysqlnd_qc_get_cache_info(). Notez que les informations retournées dépendant du gestionnaire de stockage. Les valeurs sont aggrégées pour chaque processus.

Exemple #2 Exemple avec mysqlnd_qc_get_cache_info()

mysqlnd_qc.enable_qc=1
<?php
/* connexion à MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* quelques requêtes pour remplir les traces */
for ($i = 1; $i <= 4; $i++) {
  $query = sprintf("/*%s*/SELECT id FROM test WHERE id = %d",
     MYSQLND_QC_ENABLE_SWITCH,
     $i % 2);
  $res = $mysqli->query($query);
  $res->free();
}
var_dump(mysqlnd_qc_get_cache_info());
?>

Les exemples ci-dessus vont afficher :

array(4) {
  ["num_entries"]=>
  int(2)
  ["handler"]=>
  string(7) "default"
  ["handler_version"]=>
  string(5) "1.0.0"
  ["data"]=>
  array(2) {
    ["Localhost via UNIX socket
3306
root
test|/*qc=on*/SELECT id FROM test WHERE id = 1"]=>
    array(2) {
      ["statistics"]=>
      array(11) {
        ["rows"]=>
        int(1)
        ["stored_size"]=>
        int(71)
        ["cache_hits"]=>
        int(1)
        ["run_time"]=>
        int(391)
        ["store_time"]=>
        int(27)
        ["min_run_time"]=>
        int(16)
        ["max_run_time"]=>
        int(16)
        ["min_store_time"]=>
        int(8)
        ["max_store_time"]=>
        int(8)
        ["avg_run_time"]=>
        int(8)
        ["avg_store_time"]=>
        int(4)
      }
      ["metadata"]=>
      array(1) {
        [0]=>
        array(8) {
          ["name"]=>
          string(2) "id"
          ["orig_name"]=>
          string(2) "id"
          ["table"]=>
          string(4) "test"
          ["orig_table"]=>
          string(4) "test"
          ["db"]=>
          string(4) "test"
          ["max_length"]=>
          int(1)
          ["length"]=>
          int(11)
          ["type"]=>
          int(3)
        }
      }
    }
    ["Localhost via UNIX socket
3306
root
test|/*qc=on*/SELECT id FROM test WHERE id = 0"]=>
    array(2) {
      ["statistics"]=>
      array(11) {
        ["rows"]=>
        int(0)
        ["stored_size"]=>
        int(65)
        ["cache_hits"]=>
        int(1)
        ["run_time"]=>
        int(299)
        ["store_time"]=>
        int(13)
        ["min_run_time"]=>
        int(11)
        ["max_run_time"]=>
        int(11)
        ["min_store_time"]=>
        int(6)
        ["max_store_time"]=>
        int(6)
        ["avg_run_time"]=>
        int(5)
        ["avg_store_time"]=>
        int(3)
      }
      ["metadata"]=>
      array(1) {
        [0]=>
        array(8) {
          ["name"]=>
          string(2) "id"
          ["orig_name"]=>
          string(2) "id"
          ["table"]=>
          string(4) "test"
          ["orig_table"]=>
          string(4) "test"
          ["db"]=>
          string(4) "test"
          ["max_length"]=>
          int(0)
          ["length"]=>
          int(11)
          ["type"]=>
          int(3)
        }
      }
    }
  }
}

Il est possible de décomposer davantage le niveau de granularité des statistiques au niveau de la chaîne de requête normalisée. La chaîne de requête normalisée correspond à la chaîne de requête avec tous les paramètres remplacés avec les marqueurs. Par exemple, les deux requêtes SELECT id FROM test WHERE id = 0 et SELECT id FROM test WHERE id = 1 sont normalisées en SELECT id FROM test WHERE id = ?. Les statistiques pour ces deux requêtes sont aggrégées en une seule entrée pour SELECT id FROM test WHERE id = ?.

Exemple #3 Exemple avec mysqlnd_qc_get_normalized_query_trace_log()

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_normalized_query_trace=1
<?php
/* connexion à MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* quelques requêtes pour remplir les traces */
for ($i = 1; $i <= 4; $i++) {
  $query = sprintf("/*%s*/SELECT id FROM test WHERE id = %d",
     MYSQLND_QC_ENABLE_SWITCH,
     $i % 2);
  $res = $mysqli->query($query);
  $res->free();
}
var_dump(mysqlnd_qc_get_normalized_query_trace_log());
?>

Les exemples ci-dessus vont afficher :

array(4) {
  [0]=>
  array(9) {
    ["query"]=>
    string(25) "DROP TABLE IF EXISTS test"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [1]=>
  array(9) {
    ["query"]=>
    string(27) "CREATE TABLE test (id INT )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [2]=>
  array(9) {
    ["query"]=>
    string(46) "INSERT INTO test (id ) VALUES (? ), (? ), (? )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [3]=>
  array(9) {
    ["query"]=>
    string(31) "SELECT id FROM test WHERE id =?"
    ["occurences"]=>
    int(4)
    ["eligible_for_caching"]=>
    bool(true)
    ["avg_run_time"]=>
    int(179)
    ["min_run_time"]=>
    int(11)
    ["max_run_time"]=>
    int(393)
    ["avg_store_time"]=>
    int(12)
    ["min_store_time"]=>
    int(7)
    ["max_store_time"]=>
    int(25)
  }
}

Les sources de la distribution de PECL/mysqlnd_qc contiennent un dossier web/ dans lequel se trouve un script fournissant un exemple de surveillance du cache. Veuillez suivre les instructions se trouvant dans cette source.

Depuis PECL/mysqlnd_qc 1.1.0, il est possible d'écrire les statistiques dans un fichier de log. Voir la directive de configuration log file. Please, see mysqlnd_qc.collect_statistics_log_file pour plus d'informations.


Au-dela du TTL : gestionnaire de stockage défini par l'utilisateur

Le plugin de mise en cache de requête supporte l'utilisation d'un gestionnaire de stockage défini par l'utilisateur. Ce type de gestionnaire peut utilisé arbitrairement un algorithme complexe d'invalidation, et supporte le stockage sur divers médias.

Tous les gestionnaires de stockage définis par l'utilisateur doivent fournie une certaine interface. Les fonctions du gestionnaire de stocké défini par l'utilisateur seront appelées par le coeur du plugin de mise en cache. L'interface nécessaire consiste en 7 fonctions publiques. Le gestionnaire de stockage défini par l'utilisateur peut être écrit de façon procédurale ou orientée objet.

Exemple #1 Utilisation d'un gestionnaire de stockage défini par l'utilisateur

<?php
/* Activation de la mise en cache de toutes les requêtes par défaut */
ini_set("mysqlnd_qc.cache_by_default", 1);

/* Fonctions composant le gestionnaire de stockage défini par l'utilisateur, de façon procédurale */

$__cache = array();

function get_hash($host_info, $port, $user, $db, $query) {
  global $__cache;
  printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

  return md5(sprintf("%s%s%s%s%s", $host_info, $port, $user, $db, $query));
}

function find_query_in_cache($key) {
  global $__cache;
  printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

  if (isset($__cache[$key])) {
    $tmp = $__cache[$key];
    if ($tmp["valid_until"] < time()) {
      unset($__cache[$key]);
      $ret = NULL;
    } else {
      $ret = $__cache[$key]["data"];
    }
  } else {
    $ret = NULL;
  }

  return $ret;
}

function return_to_cache($key) {
  /*
     Appelé lors de la récupération d'une entrée du cache après que les données mises en
     cache ne soient traitées ; peut être utilisé pour le comptage des références
  */
  printf("\t%s(%d)\n", __FUNCTION__, func_num_args());
}

function add_query_to_cache_if_not_exists($key, $data, $ttl, $run_time, $store_time, $row_count) {
  global $__cache;
  printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

  $__cache[$key] = array(
    "data"               => $data,
    "row_count"          => $row_count,
    "valid_until"        => time() + $ttl,
    "hits"               => 0,
    "run_time"           => $run_time,
    "store_time"         => $store_time,
    "cached_run_times"   => array(),
    "cached_store_times" => array(),
  );

  return TRUE;
}

function query_is_select($query) {
  printf("\t%s('%s'): ", __FUNCTION__, $query);

  $ret = FALSE;
  if (stristr($query, "SELECT") !== FALSE) {
    /* Mise en cache pour 5 secondes */
    $ret = 5;
  }

  printf("%s\n", (FALSE === $ret) ? "FALSE" : $ret);
  return $ret;
}

function update_query_run_time_stats($key, $run_time, $store_time) {
  global $__cache;
  printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

  if (isset($__cache[$key])) {
    $__cache[$key]['hits']++;
    $__cache[$key]["cached_run_times"][] = $run_time;
    $__cache[$key]["cached_store_times"][] = $store_time;
  }
}

function get_stats($key = NULL) {
  global $__cache;
  printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

  if ($key && isset($__cache[$key])) {
    $stats = $__cache[$key];
  } else {
    $stats = array();
    foreach ($__cache as $key => $details) {
      $stats[$key] = array(
        'hits'              => $details['hits'],
        'bytes'             => strlen($details['data']),
        'uncached_run_time' => $details['run_time'],
        'cached_run_time'   => (count($details['cached_run_times']))
                                  ? array_sum($details['cached_run_times']) / count($details['cached_run_times'])
                                  : 0,
      );
    }
  }

  return $stats;
}

function clear_cache() {
  global $__cache;
  printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

  $__cache = array();
  return TRUE;
}

/* Installation du gestionnaire procédural de stockage défini par l'utilisateur */
if (!mysqlnd_qc_set_user_handlers("get_hash", "find_query_in_cache",
      "return_to_cache", "add_query_to_cache_if_not_exists",
      "query_is_select", "update_query_run_time_stats",
       "get_stats", "clear_cache")) {
  printf("Echec lors de l'installation du gestionnaire de stockage défini par l'utilisateur\n");
}

/* Connexion, création et peuplement de la table test */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

printf("\nMise en cache/Absence du cache\n");

$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* Suppression de l'enregistrement pour vérifier que nous récupérons bien nos
données depuis le cache */
$mysqli->query("DELETE FROM test WHERE id = 1");

printf("\nRécupération depuis le cache\n");

$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

printf("\nAffichage des statistiques relatives au cache\n");
var_dump(mysqlnd_qc_get_cache_info());

printf("\nRé-initialisation du cache, mise en cache/absence du cache");
var_dump(mysqlnd_qc_clear_cache());

$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();
?>

Les exemples ci-dessus vont afficher :

        query_is_select('DROP TABLE IF EXISTS test'): FALSE
        query_is_select('CREATE TABLE test(id INT)'): FALSE
        query_is_select('INSERT INTO test(id) VALUES (1), (2)'): FALSE

Mise en cache/Absence du cache
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        add_query_to_cache_if_not_exists(6)
array(1) {
  ["id"]=>
  string(1) "1"
}
        query_is_select('DELETE FROM test WHERE id = 1'): FALSE

Récupération depuis le cache
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        return_to_cache(1)
        update_query_run_time_stats(3)
array(1) {
  ["id"]=>
  string(1) "1"
}

Affichage des statistiques relatives au cache
        get_stats(0)
array(4) {
  ["num_entries"]=>
  int(1)
  ["handler"]=>
  string(4) "user"
  ["handler_version"]=>
  string(5) "1.0.0"
  ["data"]=>
  array(1) {
    ["18683c177dc89bb352b29965d112fdaa"]=>
    array(4) {
      ["hits"]=>
      int(1)
      ["bytes"]=>
      int(71)
      ["uncached_run_time"]=>
      int(398)
      ["cached_run_time"]=>
      int(4)
    }
  }
}

Ré-initialisation du cache, mise en cache/absence du cache    clear_cache(0)
bool(true)
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        add_query_to_cache_if_not_exists(6)
NULL


  • « Au-dela du TTL : gestionnaire de stockage défini par l'utilisateur
  • Pré-requis »
  • PHP Manual
  • mysqlnd_qc
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Configuration à l'exécution


Pré-requis

PHP 5.3.3 ou une versions plus récentes de PHP.

PECL/mysqlnd_qc est un plugin mysqlnd. Il se connecte directement à la bibliothèque mysqlnd. Pour utiliser ce plugin avec une extension PHP MySQL, l'extension (mysqli, mysql, ou PDO_MYSQL) doit être activée dans la bibliothèque mysqlnd.

Pour l'utilisation du gestionnaire de stockage APC avec PECL/mysqlnd_qc 1.0 APC 3.1.3p1-beta ou supérieur. PECL/mysqlnd_qc 1.2 a été testé avec APC 3.1.13-beta. Le gestionnaire de stockage APC ne peut être utilisé avec une compilation partagée. Vous ne pouvez pas utiliser la directive de configuration PHP extension pour charger les extensions APC et PECL/mysqlnd_qc si PECL/mysqlnd_qc utilise APC comme gestionnaire de stockage. Pour utiliser le gestionnaire de stockage APC, vous devez compiler statiquement PHP avec le support APC et PECL/mysqlnd_qc dans PHP.

Pour l'utilisation du gestionnaire de stockage MEMCACHE : Utilisez libmemcache 0.38 ou suivants. PECL/mysqlnd_qc 1.2 a été testé avec libmemcache 1.4.0.

Pour l'utilisation du gestionnaire de stockage sqlite : Utilisez l'extension sqlite3 fourni avec PHP.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mysqlnd_qc

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

mysqlnd_qc Options de configuration
Nom | Défaut | Modifiable | Historique
mysqlnd_qc.enable_qc | 1 | PHP_INI_SYSTEM |
mysqlnd_qc.ttl | 30 | PHP_INI_ALL |
mysqlnd_qc.cache_by_default | 0 | PHP_INI_ALL |
mysqlnd_qc.cache_no_table | 0 | PHP_INI_ALL |
mysqlnd_qc.use_request_time | 0 | PHP_INI_ALL |
mysqlnd_qc.time_statistics | 1 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics | 0 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics_log_file | /tmp/mysqlnd_qc.stats | PHP_INI_SYSTEM |
mysqlnd_qc.collect_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.query_trace_bt_depth | 3 | PHP_INI_SYSTEM |
mysqlnd_qc.collect_normalized_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.ignore_sql_comments | 1 | PHP_INI_ALL |
mysqlnd_qc.slam_defense | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.slam_defense_ttl | 30 | PHP_INI_SYSTEM |
mysqlnd_qc.std_data_copy | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.apc_prefix | qc_ | PHP_INI_ALL |
mysqlnd_qc.memc_server | 127.0.0.1 | PHP_INI_ALL |
mysqlnd_qc.memc_port | 11211 | PHP_INI_ALL |
mysqlnd_qc.sqlite_data_file | :memory: | PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqlnd_qc.enable_qc integer

Active ou désactive le plugin. Si désactivé, l'extension ne se branchera pas dans mysqlnd pour proxize les appels C internes de l'API mysqlnd.

mysqlnd_qc.ttl integer

Time-to-Live (TTL) par défaut des entrées du cache, en secondes.

mysqlnd_qc.cache_by_default integer

Met en cache toutes les requêtes qu'elles commencent par le joker SQL activant le cache ou non. Les gestionnaires de stockage ne peuvent écraser ce paramètre qui est évalué par le core du plugin.

mysqlnd_qc.cache_no_table integer

Si l'on doit mettre en cache les requêtes sans nom de table dans n'importe quelle colonne de méta donnée de leur résultat, par exemple SELECT SLEEP(1), SELECT NOW(), SELECT SUBSTRING().

mysqlnd_qc.use_request_time integer

Utilise le temps de la requête PHP pour éviter les appels systèmes gettimeofday()? Si vous utilisez le gestionnaire de stockage APC , ce devrait être positionné à la valeur de apc.use_request_time , sinon des warnings seront générés.

mysqlnd_qc.time_statistics integer

Collecte des statistiques d'exécution et de stockage en utilisant l'appel système gettimeofday(). Les données ne seront collectées que si vous utilisez aussi mysqlnd_qc.collect_statistics = 1,

mysqlnd_qc.collect_statistics integer

Collecte des statistiques pour mysqlnd_qc_get_core_stats(). N'influence pas les statistiques des gestionnaires de stockage. Celles-ci peuvent faire partie intégrale du format de stockage du gestionnaire. Ainsi, la collecte de certaines statistiques concernant les gestionnaires de stockage ne peut être désactivée.

mysqlnd_qc.collect_statistics-log-file integer

Si mysqlnd_qc.collect_statistics et mysqlnd_qc.collect_statistics_log_file sont affectés, le plugin récupèrera des statistiques dans le fichier précisé toutes les 10 requêtes web lors de la fermeture de celle-ci par PHP (PHP request shutdown). Le fichier de journal doit être accessible en écriture par l'utilisateur du serveur web.

Depuis 1.1.0.

mysqlnd_qc.collect_query_trace integer

Collecte les backtraces des requêtes.

mysqlnd_qc.query_trace_bt_depth integer

Profondeur/niveau maximal des backtraces des requêtes.

mysqlnd_qc.ignore_sql_comments integer

Si l'on doit supprimer les commentaires SQL de la chaîne de requête avant le hachage pour générer une clé du cache. A désactiver si vous ne voulez pas deux requêtes comme SELECT /*my_source_ip=123*/ id FROM test et SELECT /*my_source_ip=456*/ id FROM test se référer à la même entrée du cache.

Depuis 1.1.0.

mysqlnd_qc.slam_defense integer

Active la slam defense du gestionnaire si disponible (protection contre le débordement du cache). Supporté par les gestionnaires Default et APC.

mysqlnd_qc.slam_defense_ttl integer

TTL pour les entrées de caches périmées qui sont servies alors qu'un autre client met à jour l'entrée. Supporté par le gestionnaire APC.

mysqlnd_qc.collect_normalized_query_trace integer

Collecte des traces de requêtes agrégées normalisées. Il faut compiler l'extension avec NORM_QUERY_TRACE_LOG pour utiliser ce paramètre.

mysqlnd_qc.std_data_copy integer

Gestionnaire de stockage par défaut. EXPERIMENTAL – utilisez le paramètre par défaut.

mysqlnd_qc.apc_prefix string

Le gestionnaire de stockage APC enregistre les données dans le cache utilisateur APC. Ce paramètre permet de préciser un préfixe à utiliser lors de l'enregistrement.

mysqlnd_qc.memc_server string

Gestionnaire de stockage MEMCACHE: Hôte memcache.

mysqlnd_qc.memc_port integer

Gestionnaire de stockage MEMCACHE: Port memcache.

mysqlnd_qc.sqlite_data_file string

Gestionnaire de sockage sqlite: Fichier de données. Tout paramètre sauf :memory: en pratique.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Astuces SQL

Exemple #1 Utilisation des constantes d'astuces SQL

La mise en cache de requêtes est contrôlée par les astuces SQL. Les astuces SQL sont utilisées pour activer et désactiver la mise en cache des requêtes. Elles peuvent être utilisées pour définir le TTL (la durée de vie dans le cache) d'une requête.

Les astuces SQL reconnues par la mise en cache de requêtes peuvent être manuellement modifiées au moment de la compilation. Ceci permet d'utiliser mysqlnd_qc dans les environnements pour lesquels les astuces SQL par défaut sont déjà utilisées et interprétées par d'autres systèmes. Toutefois, il est recommandé d'utiliser les constantes relatives aux astuces SQL au lieu d'ajouter manuellement les astuces SQL dans la chaîne de la requête.

<?php
/* Utilisation des constantes pour une portabilité maximale */
$query = "/*" . MYSQLND_QC_ENABLE_SWITCH . "*/SELECT id FROM test";

/* Valide mais moins portable : TTL par défaut */
$query = "/*qc=on*/SELECT id FROM test";

/* Valide mais moins portable : TTL par requête */
$query = "/*qc=on*//*qc_ttl=5*/SELECT id FROM test";

printf("MYSQLND_QC_ENABLE_SWITCH: %s\n", MYSQLND_QC_ENABLE_SWITCH);
printf("MYSQLND_QC_DISABLE_SWITCH: %s\n", MYSQLND_QC_DISABLE_SWITCH);
printf("MYSQLND_QC_TTL_SWITCH: %s\n", MYSQLND_QC_TTL_SWITCH);
?>

Les exemples ci-dessus vont afficher :

MYSQLND_QC_ENABLE_SWITCH: qc=on
MYSQLND_QC_DISABLE_SWITCH: qc=off
MYSQLND_QC_TTL_SWITCH: qc_ttl=

MYSQLND_QC_ENABLE_SWITCH (chaîne de caractères)
Astuce SQL utilisée pour activer la mise en cache d'une requête.
MYSQLND_QC_DISABLE_SWITCH (chaîne de caractères)
Astuce SQL utilisée pour désactiver la mise en cache d'une requête si mysqlnd_qc.cache_by_default = 1.
MYSQLND_QC_TTL_SWITCH (chaîne de caractères)
Astuce SQL utilisée pour définir le TTL (la durée de vie dans le cache) d'un jeu de résultats.
MYSQLND_QC_SERVER_ID_SWITCH (chaîne de caractères)
Cette astuce SQL ne doit en généralement pas être utilisée. Elle est nécessaire à PECL/mysqlnd_ms pour grouper les entrées du cache pour une seule requête et provient de différentes connexions physiques. Si l'astuce est utilisée, la configuration de la connexion comme l'utilisateur, le nom d'hôte et le jeu de caractères ne sera pas prise en considération pour générer la clé du cache de la requête. A la place de cela, la valeur fournie et la chaîne de requête seront utilisées comme entrée dans la fonction de hachage qui génère la clé. PECL/mysqlnd_ms peut, si demandé, mettre en cache les résultats depuis des serveurs esclaves de réplication MySQL. En raison du fait que le cache peut contenir plusieurs connexions à l'esclave, la clé du cache ne doit pas être formée en utilisant le nom de l'utilisateur, le nom d'hôte ou tout autre configuration qui peuvent varier entre les connexions aux esclaves. Au lieu de ça, PECL/mysqlnd_ms fournit un identifiant qui se réfère au groupe de connexions esclaves qui doivent être activées pour partager les entrées du cache, peu importe la connexion esclave physique utilisée pour générer l'entrée du cache. L'utilisation de cette fonctionnalité en dehors de PECL/mysqlnd_ms n'est pas recommandée.

En relation avec mysqlnd_qc_set_cache_condition()

Exemple #2 Exemple avec mysqlnd_qc_set_cache_condition()

La fonction mysqlnd_qc_set_cache_condition() autorise la définition de condition pour la mise en cache automatique des requêtes qui ne commencent pas par des astuces SQL, nécessaire pour l'activation manuelle de la mise en cache.

<?php
/* Met en cache tous les accès aux tables avec le "new%" dans le schéma/base de données "db_example" pour 1 seconde */
if (!mysqlnd_qc_set_cache_condition(MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, "db_example.new%", 1)) {
  die("Échec de la définition de la condition de mise en cache !");
}

$mysqli = new mysqli("host", "user", "password", "db_example", "port");
/* Mise en cache alors qu'aucune astuce SQL n'est fournie */
$mysqli->query("SELECT id, title FROM news");

$pdo_mysql = new PDO("mysql:host=host;dbname=db_example;port=port", "user", "password");
/* Non mise en cache : aucune astuce SQL, et le masque ne correspond pas */
$pdo_mysql->query("SELECT id, title FROM latest_news");
/* Mise en cache : TTL de 1 seconde, le masque correspond */
$pdo_mysql->query("SELECT id, title FROM news");
?>

MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN (entier)
Utilisé comme paramètre de la fonction mysqlnd_qc_set_cache_condition() pour définir les conditions pour le schéma de mise en cache automatique.

Autres

Le numéro de version du plugin peut être obtenu en utilisant soit la constante MYSQLND_QC_VERSION, qui est une représentation sous forme de chaînes de caractères du numéro de version numérique, ou la constante MYSQLND_QC_VERSION_ID, qui est un entier comme par exemple, 10000. Les développeurs peuvent calculer le numéro de bersion comme ceci :

Version (partie) | Exemple
Majeur*10000 | 1*10000 = 10000
Mineur*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_QC_VERSION_ID | 10000

MYSQLND_QC_VERSION (chaîne de caractères)
Chaîne de caractères représentant la version du plugin, par exemple, "1.0.0-prototype".

MYSQLND_QC_VERSION_ID (entier)
Numéro de version du plugin, par exemple, 10000.


Fonctions mysqlnd_qc

Sommaire

  • mysqlnd_qc_clear_cache — Force l'affichage complet du contenu du cache
  • mysqlnd_qc_get_available_handlers — Retourne la liste des gestionnaires de stockage disponibles
  • mysqlnd_qc_get_cache_info — Retourne des informations sur le gestionnaire courant
  • mysqlnd_qc_get_core_stats — Statistiques collectées par le cœur du cache des requêtes
  • mysqlnd_qc_get_normalized_query_trace_log — Retourne une trace dans les logs d'une requête normalisée pour chaque requête inspectée par le cache de requêtes
  • mysqlnd_qc_get_query_trace_log — Retourne une trace pour chaque requête inspectée par la mise en cache de requêtes
  • mysqlnd_qc_set_cache_condition — Définit les conditions pour une mise en cache automatique
  • mysqlnd_qc_set_is_select — Installe une fonction de rappel qui décide si une requête doit être mise en cache
  • mysqlnd_qc_set_storage_handler — Modifie le gestionnaire de stockage courante
  • mysqlnd_qc_set_user_handlers — Définit les fonctions de rappel pour un gestionnaire de stockage procédural défini par l'utilisateur


Force l'affichage complet du contenu du cache

  • « Fonctions mysqlnd_qc
  • mysqlnd_qc_get_available_handlers »
  • PHP Manual
  • Fonctions mysqlnd_qc
  • Force l'affichage complet du contenu du cache

mysqlnd_qc_clear_cache

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_clear_cache — Force l'affichage complet du contenu du cache

Description

bool mysqlnd_qc_clear_cache ( void )

Force l'affichage complet du contenu du cache.

Le forçage du cache est de la responsabilité du gestionnaire de stockage. Tous les gestionnaires de stockage internes, sauf le gestionnaire memcache, supportent le forçage de l'affichage du cache. Le gestionnaire de stockage memcache ne peut pas forcer l'affichage de son cache.

Un gestionnaire de stockage défini par l'utilisateur peut ou no supporter l'opération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si la valeur FALSE est retournée, cela signifie que le forçage du contenu du cache a échoué, ou que l'opération n'est pas supportée par le gestionnaire de stockage courant. Les applications ne doivent pas s'attendre à ce que l'appel à cette fonction force toujours l'affichage du cache.


Retourne la liste des gestionnaires de stockage disponibles

  • « mysqlnd_qc_clear_cache
  • mysqlnd_qc_get_cache_info »
  • PHP Manual
  • Fonctions mysqlnd_qc
  • Retourne la liste des gestionnaires de stockage disponibles

mysqlnd_qc_get_available_handlers

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_available_handlers — Retourne la liste des gestionnaires de stockage disponibles

Description

array mysqlnd_qc_get_available_handlers ( void )

La liste des gestionnaires de stockage disponibles dépend de la configuration lors de la compilation du plugin du cache de requêtes. Le gestionnaire de stockage default est toujours disponible. Tous les autres gestionnaires de stockage doivent être activés explicitement lors de la compilation de l'extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau de gestionnaires de stockage internes. Pour chaque gestionnaire de stockage, le numéro de version ainsi que la chaîne représentant la version sont fournis.

Exemples

<?php
var_dump(mysqlnd_qc_get_available_handlers());
?>

Les exemples ci-dessus vont afficher :

array(5) {
  ["default"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["user"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["APC"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["MEMCACHE"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["sqlite"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
}

Voir aussi

  • Installation
  • mysqlnd_qc_set_storage_handler() - Modifie le gestionnaire de stockage courante


Retourne des informations sur le gestionnaire courant

  • « mysqlnd_qc_get_available_handlers
  • mysqlnd_qc_get_core_stats »
  • PHP Manual
  • Fonctions mysqlnd_qc
  • Retourne des informations sur le gestionnaire courant

mysqlnd_qc_get_cache_info

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_cache_info — Retourne des informations sur le gestionnaire courant

Description

array mysqlnd_qc_get_cache_info ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des informations sur le gestionnaire courant, le nombre d'entrées du cache ainsi que les entrées du cache, si disponible. Les données retournées depuis les entrées du cache dépendent du gestionnaire de stockage actif. Le gestionnaire de stockage est libre de retourner n'importe quelle donnée. Les gestionnaires de stockage sont invités à retourner au moins les données fournies par le gestionnaire par défaut, si c'est techniquement possible.

Le scope de l'information est le processus PHP. Suivant le modèle de déploiement PHP, un processus peut servir une ou plusieurs requêtes web.

Les valeurs sont aggrégées pour toutes les activités du cach par gestionnaire de stockage. Il n'est pas possible de dire le nombre de requêtes provenant de mysqli, PDO_MySQL ou mysql. Les appels API ont contribués aux valeurs des données aggrégées. Utilisez la fonction mysqlnd_qc_get_core_stats() pour récupérer les données aggrégées pour tous les gestionnaires de stockage.

Tableau des informations du cache

handler string

Le gestionnaire de stockage actif.

Tout gestionnaire de stockage. Depuis 1.0.0.

handler_version string

La version du gestionnaire de stockage actif.

Tout gestionnaire de stockage. Depuis 1.0.0.

num_entries int

Le nombre d'entrées dans le cache. La valeur dépend du gestionnaire de stockage utilisé.

Par défaut, les gestionnaires de stockage APC et SQLite fournissent le nombre actuel d'entrées dans le cache.

Le gestionnaire de stockage MEMCACHE retourne toujours 0. MEMCACHE ne suppose pas le comptage du nombre d'entrées dans le cache.

Si un gestionnaire de stockage défini par l'utilisateur est utilisé, le nombre d'entrées de la propriété data sera retourné.

Depuis 1.0.0.

data array

La version du gestionnaire de stockage actif.

Certains gestionnaires de stockage dépendant des données contenues dans les entrées du cache. Le gestionnaire de stockage est sollicité pour fournir des informations similaires et comparables. Un gestionnaire de stockage défini par l'utilisateur est libre de retourner n'importe quelle donnée.

Depuis 1.0.0.

Les informations suivantes sont fournies par le gestionnaire de stockage par défaut pour la propriété data.

La proriété data contient un hashage. Ce hashage est indexé par l'identifiant de l'entrée du cache interne du gestionnaire de stockage. L'identifiant de l'entrée du cache est humainement lisible et contient la chaîne de requête correspondante à l'entrée du cache. Reportez-vous à l'exemple ci-dessous. Les données suivantes sont fournies pour chaque entrée du cache.

statistics array

Statistiques de l'entrée du cache.

Depuis 1.0.0.

Propriété | Description | Version
rows | Nombre de lignes contenues dans le jeu de résultats mis en cache. | Depuis 1.0.0.
stored_size | La taille du jeu de résultats mis en cache, en octets. C'est la taille occupée en charge. Cette valeur n'est pas pertinante pour calculer le nombre total de mémoires consommées par toutes les entrées du cache, incluant les données administratives des entrées de cache. | Depuis 1.0.0.
cache_hits | Le nombre de fois que l'entrée du cache a été servie. | Depuis 1.0.0.
run_time | Durée d'exécution de la requête pour cette entrée du cache. C'est la durée d'exécution de la requête non mise en cache. C'est le temps entre l'envoi de la requête MySQL et la réponse de MySQL. Le temps gagné en utilisant le plugin de mise en cache de requêtes peut être calculé ainsi : cache_hits * ((run_time - avg_run_time) + (store_time - avg_store_time)). | Depuis 1.0.0.
store_time | Durée de stockage du jeu de résultats des requêtes appartenant à l'entrée du cache. C'est la durée de récupération et de stockage des résultats de requêtes non mises en cache. | Depuis 1.0.0.
min_run_time | Temps minimal d'exécution des requêtes mises en cache. C'est le temps de recherche de la requête dans le cache. | Depuis 1.0.0.
min_store_time | Temps minimal de stockage des requêtes mises en cache. Le temps prit pour récupérer le jeu de résultats du cache depuis le médium de stockage et de le décoder. | Depuis 1.0.0.
avg_run_time | Temps d'exécution moyen de la requête mise en cache. | Depuis 1.0.0.
avg_store_time | Temps de stockage moyen de la requête mise en cache. | Depuis 1.0.0.
max_run_time | Temps d'exécution moyen de la requête mise en cache. | Depuis 1.0.0.
max_store_time | Temps de stockage moyen de la requête mise en cache. | Depuis 1.0.0.
valid_until | Timestamp lorsque l'entrée du cache expire. | Depuis 1.1.0.
metadata array

Les méta-données de l'entrée du cache. Ce sont les méta-données fournies par MySQL en plus du jeu de résultats de la requête en question. Des versions différentes du serveur MySQL peuvent retourner des méta-données différentes. Contrairement à d'autres extensions PHP MySQL, aucune tentative n'est effectuée pour cacher à l'appelant des informations quant à la version du serveur MySQL ainsi qu'à ces détails. Reportez-vous à la documentation de l'API C MySQL appartenant au serveur MySQL utilisé pour plus de détails.

La liste des méta-données contient une entrée pour chaque colonne.

Depuis 1.0.0.

Propriété | Description | Version
name | LLe nom du champ. Suivant la version MySQL, ce peut être l'alias du nom du champ. | Depuis 1.0.0.
org_name | Le nom du champ. | Depuis 1.0.0.
table | Le nom de la table. Si un alias du nom est utilisé pour la table, ce champ contiendra le nom de l'alias. | Depuis 1.0.0.
org_table | Le nom de la table. | Depuis 1.0.0.
db | Le nom de la base de données/du shéma. | Depuis 1.0.0.
max_length | La taille maximale du champ. Les détails peuvent varier suivant les versions du serveur MySQL. | Depuis 1.0.0.
length | La taille du champ. Les détails peuvent varier suivant les versions du serveur MySQL. | Depuis 1.0.0.
type | Le type de données du champ. Les détails peuvent varier suivant les versions du serveur MySQL utilisé. C'est la valeur de la constante type de l'API C MySQL. Il est recommandé d'utiliser les variables type fournies par l'extension mysqli aux fins de test pour en connaitre la signification. Vous ne devriez pas tester les valeurs de certain type en les comparant avec certains nombres. | Depuis 1.0.0.

Le gestionnaire de stockage APC retourne la même information pour la propriété data mais pas pour la propriété metadata. Les metadata d'une entrée du cache est défini à NULL.

Le gestionnaire de stockage MEMCACHE ne renseigne pas la propriété data. Les statistiques ne sont pas disponibles pour chaque entrée du cache avec ce gestionnaire de stockage.

Un gestionnaire de stockage défini par l'utilisateur est libre de fournir toute sorte de données.

Exemples

Exemple #1 Exemple avec mysqlnd_qc_get_cache_info()

L'exemple ci-dessous montre l'affiche depuis le gestionnaire de stockage interne par défaut. Les autres gestionnaires de stockage peuvent retourner des données différentes.

<?php
/* Peuple le cache, i.e. en utilisant mysqli */
$mysqli = new mysqli("host", "user", "password", "schema");
$mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/SELECT id FROM test");

/* Affiche les informations du cache */
var_dump(mysqlnd_qc_get_cache_info());
?>

Les exemples ci-dessus vont afficher :

array(4) {
 ["num_entries"]=>
 int(1)
 ["handler"]=>
 string(7) "default"
 ["handler_version"]=>
 string(5) "1.0.0"
 ["data"]=>
 array(1) {
   ["Localhost via UNIX socket 3306 user schema|/*qc=on*/SELECT id FROM test"]=>
   array(2) {
     ["statistics"]=>
     array(11) {
       ["rows"]=>
       int(6)
       ["stored_size"]=>
       int(101)
       ["cache_hits"]=>
       int(0)
       ["run_time"]=>
       int(471)
       ["store_time"]=>
       int(27)
       ["min_run_time"]=>
       int(0)
       ["max_run_time"]=>
       int(0)
       ["min_store_time"]=>
       int(0)
       ["max_store_time"]=>
       int(0)
       ["avg_run_time"]=>
       int(0)
       ["avg_store_time"]=>
       int(0)
     }
     ["metadata"]=>
     array(1) {
       [0]=>
       array(8) {
         ["name"]=>
         string(2) "id"
         ["orig_name"]=>
         string(2) "id"
         ["table"]=>
         string(4) "test"
         ["orig_table"]=>
         string(4) "test"
         ["db"]=>
         string(4) "schema"
         ["max_length"]=>
         int(1)
         ["length"]=>
         int(11)
         ["type"]=>
         int(3)
       }
     }
   }
 }
}

Voir aussi

  • mysqlnd_qc_get_core_stats() - Statistiques collectées par le cœur du cache des requêtes


Statistiques collectées par le cœur du cache des requêtes

  • « mysqlnd_qc_get_cache_info
  • mysqlnd_qc_get_normalized_query_trace_log »
  • PHP Manual
  • Fonctions mysqlnd_qc
  • Statistiques collectées par le cœur du cache des requêtes

mysqlnd_qc_get_core_stats

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_core_stats — Statistiques collectées par le cœur du cache des requêtes

Description

array mysqlnd_qc_get_core_stats ( void )

Retourne un tableau de statistiques collectées par le cœur du plugin de mise en cache. Des champs identiques de données seront rapportés pour tous les gestionnaires de stockage, les données étant collectées par le cœur.

La directive de configuration PHP mysqlnd_qc.collect_statistics contrôle la collection de statistiques. La collection de statistiques est désactivée par défaut pour des raisons de performance. La désactivation de la collection de statistiques désactive également la collection des temps relatifs aux statistiques.

La direction de configuration PHP mysqlnd_qc.collect_time_statistics contrôle la collection des temps relatifs aux statistiques.

Le scope des statistiques issues du cœur est le processus PHP. Suivant votre modèle de déploiement, un processus PHP peut gérer une ou plusieurs requêtes.

Les statistiques sont agrégées pour toutes les entrées du cache et tous les gestionnaires de stockage. Il n'est pas possible de demander le nombre de requêtes issues depuis des appels à l'API mysqli, PDO_MySQL ou mysql.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Tableau de statistiques issues du cœur.

Statistique | Description | Version
cache_hit | La requête est considérée comme pouvant être mise en cache et les données mises en cache ont été réutilisées. La requête est considérée comme pouvant être mise en cache et un "cache miss" est survenu mais la requête a été mise en cache par un autre processus alors que nous la traitions, et ainsi, nous avons pû récupérer le résultat depuis cette nouvelle mise en cache. | Depuis 1.0.0.
cache_miss La requête est considérée comme pouvant être mise en cache...

  • ... et a été ajoutée au cache

  • ... mais la directive de configuration PHP mysqlnd_qc.cache_no_table = 1 n'a pas autorisé la mise en cache.

  • ... mais un jeu de résultats non mis en mémoire tampon est demandé.

  • ... mais un jeu de résultats mis en mémoire tampon est vide.

Depuis 1.0.0.
cache_put | La requête est considérée comme pouvant être mise en cache et a été ajoutée au cache. Faîtes attention lors d'un calcul de statistiques dérivées. Le gestionnaire de stockage dont la durée de stockage est au-delà du scope du processus peut rapporter à la fois cache_put = 0 et cache_hit > 0, si un autre processus a rempli le cache. Vous pouvez vouloir utiliser num_entries depuis mysqlnd_qc_get_cache_info() si le gestionnaire le supporte ( default, APC). | Depuis 1.0.0.
query_should_cache | La requête est considérée comme pouvant être mise en cache uniquement au vue de l'analyse de la requête. La requête peut (ou pas) être ajoutée au cache. Voir aussi cache_put. | Depuis 1.0.0.
query_should_not_cache | La requête est considérée comme ne pouvant pas être mise en cache uniquement au vue de l'analyse de la requête. | Depuis 1.0.0.
query_not_cached | La requête est considérée comme ne pouvant pas être mise en cache ou elle est considérée comme pouvant être mise en cache mais le gestionnaire de stockage n'a pas retourné de clé pour cette requête. | Depuis 1.0.0.
query_could_cache La requête est considérée comme pouvant être mise en cache...

  • ... et la requête a été exécutée sans erreur

  • ... et les données méta montrent au moins une colonne dans le jeu de résultats

La requête peut (ou pas) être déjà présente dans le cache. Elle peut (ou pas) être ajoutée au cache plus tard. 		Depuis 1.0.0.
query_found_in_cache | La requête est considérée comme pouvant être mise en cache et nous l'avons trouvée dans le cache mais nous n'avons pas encore rejoué les données du cache et nous n'avons pas encore envoyé le jeu de résultats au client. Ce n'est pas considéré comme un accès au cache, car le client peut ne pas récupérer le résultat ou les données mises en cache peuvent être défectueuses. | Depuis 1.0.0.
query_uncached_other | La requête est considérée comme pouvant être mise en cache et elle peut (ou pas) être déjà dans le cache, mais soit l'accès à ces données du cache a échoué, soit le jeu de résultats n'est pas disponible, ou soit, une autre erreur est survenue.
query_uncached_no_table | La requête n'a pas été mise en cache car le jeu de résultat a au moins une colonne qui n'a pas de nom de table dans ses méta-données. Un exemple d'une telle requête est SELECT SLEEP(1). Pour mettre en cache ce genre de requêtes, vous devez modifier la valeur par défaut de la directive de configuration PHP mysqlnd_qc.cache_no_table et définir mysqlnd_qc.cache_no_table = 1. Malgré tout, il n'est pas conseillé de mettre en cache ce genre de requêtes. | Depuis 1.0.0.
query_uncached_use_result | La requête aurait été mise en cache si le jeu de résultats de la mémoire tampon avait été utilisé. Cette situation est également considérée comme une absence de cache et cache_miss sera incrémenté. | Depuis 1.0.0.
query_aggr_run_time_cache_hit | Temps d'exécution agrégé (ms) de toutes les requêtes du cache. Les requêtes du cache sont celles qui ont incrémentées cache_hit. | Depuis 1.0.0.
query_aggr_run_time_cache_put | Temps d'exécution agrégé (ms) de toutes les requêtes non mises en cache qui ont été ajoutées dans le cache. Voir aussi cache_put. | Depuis 1.0.0.
query_aggr_run_time_total | Temps d'exécution agrégé (ms) de toutes les requêtes du cache ainsi que celles non mises en cache qui ont été inspectées et exécutées par le cache de requêtes. | Depuis 1.0.0.
query_aggr_store_time_cache_hit | Temps de stockage agrégé (ms) de toutes les requêtes du cache. Les requêtes du cache sont celles qui ont incrémentées cache_hit. | Depuis 1.0.0.
query_aggr_store_time_cache_put | Temps de stockage agrégé (ms) de toutes les requêtes non mises en cache qui ont été ajoutées dans le cache. Voir aussi cache_put. | Depuis 1.0.0.
query_aggr_store_time_total | Temps de stockage agrégé (ms) de toutes les requêtes mises en cache ainsi que celles non mises en cache qui ont été inspectées et exécutées par le cache de requêtes. | Depuis 1.0.0.
receive_bytes_recorded | Trafic réseau entrant enregistré (bytes) envoyé depuis MySQL vers PHP. Le trafic peut (ou pas) avoir été ajouté au cache. Le trafic est le total pour toutes les requêtes, qu'elles soient en cache ou non. | Depuis 1.0.0.
receive_bytes_replayed | Le trafic réseau rejoué pendant le cache. C'est la quantité totale de trafic entrant sauvegardée en raison de l'utilisation du plugin de mise en cache de requêtes. | Depuis 1.0.0.
send_bytes_recorded | Trafic réseau sortant enregistré ( bytes) envoyé depuis MySQL vers PHP. Le trafic peut (ou pas) avoir été ajouté au cache. Le trafic est le total pour toutes les requêtes, qu'elles soient en cache ou non. | Depuis 1.0.0.
send_bytes_replayed | Le trafic réseau rejoué pendant le cache. C'est la quantité totale de trafic sortant sauvegardé en raison de l'utilisation du plugin de mise en cache de requêtes. | Depuis 1.0.0.
slam_stale_refresh | Nombre d'absence du cache qui a été émis lors d'un accès à des données périmées, jusqu'à ce que le client qui a causé l'absence du cache ne rafraichisse l'entrée du cache. | Depuis 1.0.0.
slam_stale_hit | Nombre d'accès au cache avant qu'une entrée du cache périmé ne rafraichisse les données. | Depuis 1.0.0.

Exemples

Exemple #1 Exemple avec mysqlnd_qc_get_core_stats()

<?php
/* Activation de la collection des statistiques - par défaut : désactivé */
ini_set("mysqlnd_qc.collect_statistics", 1);

/* Activation de la collection de toutes les durées relatives aux statistiques -
par défaut : activé mais écrasé par la directive mysqlnd_qc.collect_statistics = 0 */
ini_set("mysqlnd_qc.collect_time_statistics", 1);

/* Population du cache, e.g. en utilisant mysqli */
$mysqli = new mysqli('host', 'user', 'password', 'schema');

/* Cache miss et cache put */
$mysqli->query("/*qc=on*/SELECT id FROM test");
/* Accès au cache */
$mysqli->query("/*qc=on*/SELECT id FROM test");

/* Affichage des statistiques du cœur */
var_dump(mysqlnd_qc_get_core_stats());
?>

Les exemples ci-dessus vont afficher :

array(26) {
  ["cache_hit"]=>
  string(1) "1"
  ["cache_miss"]=>
  string(1) "1"
  ["cache_put"]=>
  string(1) "1"
  ["query_should_cache"]=>
  string(1) "2"
  ["query_should_not_cache"]=>
  string(1) "0"
  ["query_not_cached"]=>
  string(1) "0"
  ["query_could_cache"]=>
  string(1) "2"
  ["query_found_in_cache"]=>
  string(1) "1"
  ["query_uncached_other"]=>
  string(1) "0"
  ["query_uncached_no_table"]=>
  string(1) "0"
  ["query_uncached_no_result"]=>
  string(1) "0"
  ["query_uncached_use_result"]=>
  string(1) "0"
  ["query_aggr_run_time_cache_hit"]=>
  string(1) "4"
  ["query_aggr_run_time_cache_put"]=>
  string(3) "395"
  ["query_aggr_run_time_total"]=>
  string(3) "399"
  ["query_aggr_store_time_cache_hit"]=>
  string(1) "2"
  ["query_aggr_store_time_cache_put"]=>
  string(1) "8"
  ["query_aggr_store_time_total"]=>
  string(2) "10"
  ["receive_bytes_recorded"]=>
  string(2) "65"
  ["receive_bytes_replayed"]=>
  string(2) "65"
  ["send_bytes_recorded"]=>
  string(2) "29"
  ["send_bytes_replayed"]=>
  string(2) "29"
  ["slam_stale_refresh"]=>
  string(1) "0"
  ["slam_stale_hit"]=>
  string(1) "0"
  ["request_counter"]=>
  int(1)
  ["process_hash"]=>
  int(3547549858)
}

Voir aussi

  • Configuration à l'exécution
  • mysqlnd_qc.collect_statistics
  • mysqlnd_qc.time_statistics
  • mysqlnd_qc_get_cache_info() - Retourne des informations sur le gestionnaire courant


Retourne une trace dans les logs d'une requête normalisée pour chaque requête inspectée par le cache de requêtes

  • « mysqlnd_qc_get_core_stats
  • mysqlnd_qc_get_query_trace_log »
  • PHP Manual
  • Fonctions mysqlnd_qc
  • Retourne une trace dans les logs d'une requête normalisée pour chaque requête inspectée par le cache de requêtes

mysqlnd_qc_get_normalized_query_trace_log

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_normalized_query_trace_log — Retourne une trace dans les logs d'une requête normalisée pour chaque requête inspectée par le cache de requêtes

Description

array mysqlnd_qc_get_normalized_query_trace_log ( void )

Retourne une trace dans les logs d'une requête normalisée pour chaque requête inspectée par le cache de requêtes. La collection de trace de logs est désactivée par défaut. Pour collecter les traces de log, vous devez définir la directive de configuration PHP mysqlnd_qc.collect_normalized_query_trace à 1.

Les entrées de trace de logs sont groupées par requête normalisée. La requête normalisée est la requête avec toutes les valeurs de paramètres de requête remplacées par un marqueur. Par exemple, les deux requêtes SELECT id FROM test WHERE id = 1 et SELECT id FROM test WHERE id = 2 sont normalisées en SELECT id FROM test WHERE id = ?. Chaque fois qu'une requête est inspectée par le cache de requête qui correspond au masque de requête normalisée, ses statistiques sont groupées par la chaîne de requête normalisée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de log de requêtes. Chaque entrée contient la chaîne de requête normalisée en plus d'autres informations.

Clé | Description
query | Chaîne de requête normalisée.
occurences | Le nombre de requêtes qui ont correspondu à la chaîne de requête normalisée en plus de celle qui a créée l'entrée du log. La valeur est zéro si une requête a été normalisée, sa représentation normalisée a été ajoutée au log mais qu'aucune autre requête inspectée par PECL/mysqlnd_qc n'avait la même chaîne de requête normalisée.
eligible_for_caching | Si la requête doit être mise en cache ou non. Une requête éligible pour la mise en cache ne sera pas nécessairement mise en cache. Il n'est pas possible de dire avec certitude si et combien de requêtes mises en cache a contribué à l'aggrégation de l'entrée du log de requête normalisée. Cependant, la comparaison du temps minimum d'exécution et du temps moyenne d'exécution permet de faire une supposition relativement juste.
avg_run_time | La durée d'exécution moyen de toutes les requêtes ayant contribuées à l'entrée du log. La durée d'exécution est le temps entre l'envoi de la requête à MySQL et la réception de la réponse depuis MySQL.
avg_store_time | La durée moyenne de stockage de toutes les requêtes ayant contribuées à l'entrée du log. La durée de stockage est le temps nécessaire pour récupérer un jeu de résultats d'une requête depuis le serveur vers le client, et le stocker sur le client.
min_run_time | La durée minimale d'exécution de toutes les requêtes ayant contribuées à l'entrée du log.
min_store_time | La durée minimale de stockage de toutes les requêtes ayant contribuées à l'entrée du log.
max_run_time | La durée maximale d'exécution de toutes les requêtes ayant contribuées à l'entrée du log.
max_store_time | La durée maximale de stockage de toutes les requêtes ayant contribuées à l'entrée du log.

Exemples

mysqlnd_qc.collect_normalized_query_trace=1
<?php
/* Connexion, création et peuplement de la table test */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* Non mise en cache */
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* Mise en cache */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

/* Récupération depuis le cache */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

var_dump(mysqlnd_qc_get_normalized_query_trace_log());
?>

Les exemples ci-dessus vont afficher :

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(4) {
  [0]=>
  array(9) {
    ["query"]=>
    string(25) "DROP TABLE IF EXISTS test"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [1]=>
  array(9) {
    ["query"]=>
    string(27) "CREATE TABLE test (id INT )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [2]=>
  array(9) {
    ["query"]=>
    string(40) "INSERT INTO test (id ) VALUES (? ), (? )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [3]=>
  array(9) {
    ["query"]=>
    string(31) "SELECT id FROM test WHERE id =?"
    ["occurences"]=>
    int(2)
    ["eligible_for_caching"]=>
    bool(true)
    ["avg_run_time"]=>
    int(159)
    ["min_run_time"]=>
    int(12)
    ["max_run_time"]=>
    int(307)
    ["avg_store_time"]=>
    int(10)
    ["min_store_time"]=>
    int(8)
    ["max_store_time"]=>
    int(13)
  }
}

Voir aussi

  • Configuration de l'exécution
  • mysqlnd_qc.collect_normalized_query_trace
  • mysqlnd_qc.time_statistics
  • mysqlnd_qc_get_query_trace_log() - Retourne une trace pour chaque requête inspectée par la mise en cache de requêtes


Retourne une trace pour chaque requête inspectée par la mise en cache de requêtes

  • « mysqlnd_qc_get_normalized_query_trace_log
  • mysqlnd_qc_set_cache_condition »
  • PHP Manual
  • Fonctions mysqlnd_qc
  • Retourne une trace pour chaque requête inspectée par la mise en cache de requêtes

mysqlnd_qc_get_query_trace_log

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_query_trace_log — Retourne une trace pour chaque requête inspectée par la mise en cache de requêtes

Description

array mysqlnd_qc_get_query_trace_log ( void )

Retourne une trace pour chaque requête inspectée par la mise en cache de requêtes. La collection de traces est désactivée par défaut. Pour collecter des traces, vous devez définir la directive de configuration PHP mysqlnd_qc.collect_query_trace à 1

La profondeur maximale des traces est limitée à la profondeur définie par la directive de configuration PHP mysqlnd_qc.query_trace_bt_depth.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de traces des requêtes. Chaque entrée de la liste contient la chaîne de requête, une trace ainsi que quelques informations détaillées.

Clé | Description
query | La chaîne représentant la requête.
origin | Le code de la trace.
run_time | Durée d'exécution de la requête, en millisecondes. La collection de toutes les durées ainsi que les appels nécessaires à la fonction système gettimeofday peuvent être désactivés en définissant la directive de configuration PHP mysqlnd_qc.time_statistics à 0.
store_time | Durée de stockage du jeu de résultats de la requêtes, en millisecondes. La collection de toutes les durées ainsi que les appels nécessaires à la fonction système gettimeofday peuvent être désactivés en définissant la directive de configuration PHP mysqlnd_qc.time_statistics à 0.
eligible_for_caching | TRUE si la requête est éligible à la mise en cache, FALSE sinon.
no_table | TRUE si la requête a généré un jeu de résultats et au moins, une colonne du jeu de résultats n'a pas de nom de table de défini dans ces méta-données. C'est généralement le cas avec les requêtes qui ne doivent pas être mises en cache, comme SELECT SLEEP(1). Par défaut, ce genre de requêtes ne sera pas ajouté au cache. Voir aussi la directive de configuration PHP mysqlnd_qc.cache_no_table.
was_added | TRUE si le résultat de la requête a été ajouté au cache, FALSE sinon.
was_already_in_cache | TRUE si le résultat de la requête aurait été mise en cache si elle n'y était pas déjà présente, FALSE sinon.

Exemples

Exemple #1 Exemple avec mysqlnd_qc_get_query_trace_log()

mysqlnd_qc.collect_query_trace=1
<?php
/* Connexion, création et population de la table test */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* non mis en cache */
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* Mis en cache */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

/* Récupéré depuis le cache */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

var_dump(mysqlnd_qc_get_query_trace_log());
?>

Les exemples ci-dessus vont afficher :

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(6) {
  [0]=>
  array(8) {
    ["query"]=>
    string(25) "DROP TABLE IF EXISTS test"
    ["origin"]=>
    string(102) "#0 qc.php(4): mysqli->query('DROP TABLE IF E...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [1]=>
  array(8) {
    ["query"]=>
    string(25) "CREATE TABLE test(id INT)"
    ["origin"]=>
    string(102) "#0 qc.php(5): mysqli->query('CREATE TABLE te...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [2]=>
  array(8) {
    ["query"]=>
    string(36) "INSERT INTO test(id) VALUES (1), (2)"
    ["origin"]=>
    string(102) "#0 qc.php(6): mysqli->query('INSERT INTO tes...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [3]=>
  array(8) {
    ["query"]=>
    string(32) "SELECT id FROM test WHERE id = 1"
    ["origin"]=>
    string(102) "#0 qc.php(9): mysqli->query('SELECT id FROM ...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(25)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [4]=>
  array(8) {
    ["query"]=>
    string(41) "/*qc=on*/SELECT id FROM test WHERE id = 2"
    ["origin"]=>
    string(103) "#0 qc.php(14): mysqli->query('/*qc=on*/SELECT...')
#1 {main}"
    ["run_time"]=>
    int(311)
    ["store_time"]=>
    int(13)
    ["eligible_for_caching"]=>
    bool(true)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(true)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [5]=>
  array(8) {
    ["query"]=>
    string(41) "/*qc=on*/SELECT id FROM test WHERE id = 2"
    ["origin"]=>
    string(103) "#0 qc.php(19): mysqli->query('/*qc=on*/SELECT...')
#1 {main}"
    ["run_time"]=>
    int(13)
    ["store_time"]=>
    int(8)
    ["eligible_for_caching"]=>
    bool(true)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(true)
  }
}

Voir aussi

  • Configuration à l'exécution
  • mysqlnd_qc.collect_query_trace
  • mysqlnd_qc.query_trace_bt_depth
  • mysqlnd_qc.time_statistics
  • mysqlnd_qc.cache_no_table
  • mysqlnd_qc_get_normalized_query_trace_log() - Retourne une trace dans les logs d'une requête normalisée pour chaque requête inspectée par le cache de requêtes


Définit les conditions pour une mise en cache automatique

  • « mysqlnd_qc_get_query_trace_log
  • mysqlnd_qc_set_is_select »
  • PHP Manual
  • Fonctions mysqlnd_qc
  • Définit les conditions pour une mise en cache automatique

mysqlnd_qc_set_cache_condition

(PECL mysqlnd_qc >= 1.1.0)

mysqlnd_qc_set_cache_condition — Définit les conditions pour une mise en cache automatique

Description

bool mysqlnd_qc_set_cache_condition ( int $condition_type , mixed $condition , mixed $condition_option )

Définit une condition pour une mise en cache automatique de requêtes qui ne contiennent pas nécessairement d'astuces SQL pour l'activation de la mise en cache.

Liste de paramètres

condition_type

Type de condition. La seule valeur autorisée est MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN.

condition

Paramètre pour la condition définie avec condition_type. Le type et la structure du paramètre dépendent de condition_type

Si condition_type vaut MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, condition doit être une chaîne. La chaîne définit un masque. Les requêtes sont mises en cache si l'entrée des méta-données table et base de données de leurs jeux de résultats correspond au masque. Le masque est vérifiée pour une correspondance avec les entrées méta-données db et org_table fournis par la bibliothèque MySQL client serveur sous-jacente. Reportez-vous au manuel de référence MySQL pour plus de détails sur ces deux entrées. Les valeurs db et org_table sont concaténées avec un point (.) avant de tenter une équivalence avec la condition. La recherche de correspondance supporte les jokers % et _. Le joker % va faire correspondre un ou plusieurs caractères arbitraires. Le joker _ va faire correspondre une seule caractère arbitraire. Le caractère d'échappement est l'anti-slashes (\).

condition_option

Option pour la conditionLe type et la structure dépendent de condition_type.

Si condition_type vaut MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, condition_options sera le TTL à utiliser.

Exemples

Exemple #1 Exemple avec mysqlnd_qc_set_cache_condition()

<?php
/* Met en cache tous les accès aux tables dont le nom est "new%" dans le schéma/base de données "db_example"
pendant une seconde */
if (!mysqlnd_qc_set_cache_condition(MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, "db_example.new%", 1)) {
  die("Echec lors de la définition d'une condition de mise en cache !");
}

$mysqli = new mysqli("host", "user", "password", "db_example", "port");
/* Mise en cache, malgré l'absence d'astuce SQL */
$mysqli->query("SELECT id, title FROM news");

$pdo_mysql = new PDO("mysql:host=host;dbname=db_example;port=port", "user", "password");
/* Non mise en cache : aucune astuce SQL, aucun masque ne correspond */
$pdo_mysql->query("SELECT id, title FROM latest_news");
/* Mise en cache : TTL d'une seconde, masque trouvé */
$pdo_mysql->query("SELECT id, title FROM news");
?>

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • Démarrage rapide : mise en cache basée sur un masque


Installe une fonction de rappel qui décide si une requête doit être mise en cache

  • « mysqlnd_qc_set_cache_condition
  • mysqlnd_qc_set_storage_handler »
  • PHP Manual
  • Fonctions mysqlnd_qc
  • Installe une fonction de rappel qui décide si une requête doit être mise en cache

mysqlnd_qc_set_is_select

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_set_is_select — Installe une fonction de rappel qui décide si une requête doit être mise en cache

Description

mixed mysqlnd_qc_set_is_select ( string $callback )

Installe une fonction de rappel qui décide si une requête doit être mise en cache.

Il y a plusieurs façons de demander à PELC/mysqlnd_qc de mettre en cache une requête. Par défaut, PECL/mysqlnd_qc tente de mettre en cache une requête si la mise en cache de toutes les requêtes est activée ou si la chaîne de requête commence avec une astuce SQL. Le plugin, en interne, appèle une fonction nommée is_select(). Cette fonction interne peut être remplacée avec une fonction de rappel définie par l'utilisateur. Ainsi, la fonction de rappel définie par l'utilisateur est responsable de décider si le plugin tente une mise en cache ou non de la requête. En raison du fait que la fonction interne est remplacée par la fonction de rappel, la fonction de rappel a un contrôle total. La fonction de rappel est libre d'ignorer la directive de configuration mysqlnd_qc.cache_by_default ainsi que les astuces SQL.

La fonction de rappel est invoquée pour chaque requête inspectée par le plugin. Elle prend la chaîne de requête comme paramètre. La fonction de rappel retourne FALSE si la requête ne doit pas être mise en cache. Elle retourne TRUE pour demander au plugin de tenter de mettre en cache le jeu de résultats, s'il y en a un. Une entrée du cache est ainsi créée en utilisant le TTL par défaut défini par la directive de configuration PHP mysqlnd_qc.ttl. Si un TTL différent doit être utilisé, la fonction de rappel doit retourner une valeur numérique qui sera utilisée comme TTL.

La fonction interne is_select fait partie de l'interface interne de gestion de stockage du cache. Aussi, un gestionnaire de stockage défini par l'utilisateur offre les mêmes possibilités.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqlnd_qc_set_is_select()

<?php
/* fonction de rappel qui va décider si la requête doit être mise en cache ou non */
function is_select($query) {
  static $patterns = array(
   /* true - utilisation de la valeur par défaut depuis mysqlnd_qc.ttl */
   "@SELECT\s+.*\s+FROM\s+test@ismU" => true,
   /* 3 - utilisation d'un TTL = 3 secondes */
   "@SELECT\s+.*\s+FROM\s+news@ismU" => 3
  );
  /* vérifie si la requête correspond au masque */
  foreach ($patterns as $pattern => $ttl) {
    if (preg_match($pattern, $query)) {
      printf("is_select(%45s): mise en cache\n", $query);
      return $ttl;
    }
  }
  printf("is_select(%45s): pas de mise en cache\n", $query);
  return false;
}
mysqlnd_qc_set_is_select("is_select");

/* Connexion, création et peuplement de la table test */
$mysqli = new mysqli("host", "user", "password", "schema");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* Mise en cache */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* Récupération depuis le cache */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* Mise en cache */
$mysqli->query("SELECT * FROM test");
?>

Les exemples ci-dessus vont afficher :

is_select(                    DROP TABLE IF EXISTS test): pas de mise en cache
is_select(                    CREATE TABLE test(id INT)): pas de mise en cache
is_select(    INSERT INTO test(id) VALUES (1), (2), (3)): pas de mise en cache
is_select(             SELECT id FROM test WHERE id = 1): mise en cache
is_select(             SELECT id FROM test WHERE id = 1): mise en cache
is_select(                           SELECT * FROM test): mise en cache

Voir aussi

  • Configuration de l'exécution
  • mysqlnd_qc.ttl
  • mysqlnd_qc.cache_by_default
  • mysqlnd_qc_set_user_handlers() - Définit les fonctions de rappel pour un gestionnaire de stockage procédural défini par l'utilisateur


Modifie le gestionnaire de stockage courante

  • « mysqlnd_qc_set_is_select
  • mysqlnd_qc_set_user_handlers »
  • PHP Manual
  • Fonctions mysqlnd_qc
  • Modifie le gestionnaire de stockage courante

mysqlnd_qc_set_storage_handler

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_set_storage_handler — Modifie le gestionnaire de stockage courante

Description

bool mysqlnd_qc_set_storage_handler ( string $handler )

Définit le gestionnaire de stockage utilisé par le cache de requêtes. Une liste de gestionnaires de stockage disponibles peut être obtenu via la fonction mysqlnd_qc_get_available_handlers(). Cette liste dépend de la configuration au moment de la compilation du plugin de cache de requêtes. Le gestionnaire de stockage default est toujours disponible. Tous les autres gestionnaires de stockage doivent être activés explicitement lors de la compilation de l'extension.

Liste de paramètres

handler

Peut être une chaîne de caractères représentant le nom du gestionnaire de stockage interne ou un objet de type mysqlnd_qc_handler_default. Les noms des gestionnaires de stockage internes sont default, APC, MEMCACHE, sqlite.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si la modification du gestionnaire de stockage échoue, une erreur fatale interceptable est émise. Le cache de requêtes ne peut pas fonctionner si le précédent gestionnaire de stockage a été interrompu et qu'aucun nouveau gestionnaire n'a été installé.

Exemples

L'exemple ci-dessous montre l'affiche depuis le gestionnaire de stockage interne par défaut. Les autres gestionnaires de stockage peuvent rapporter des données différentes.

<?php
var_dump(mysqlnd_qc_set_storage_handler("memcache"));

if (true === mysqlnd_qc_set_storage_handler("default"))
  printf("Gestionnaire de stockage par défaut activé");

/* Erreur fatale interceptable */
var_dump(mysqlnd_qc_change_handler("inconnu"));
?>

Les exemples ci-dessus vont afficher :

bool(true)
Gestionnaire de stockage par défaut activé
Erreur fatale interceptable : mysqlnd_qc_set_storage_handler(): Unknown handler 'inconnu' in (file) on line (line)

Voir aussi

  • Installation
  • mysqlnd_qc_get_available_handlers() - Retourne la liste des gestionnaires de stockage disponibles


Définit les fonctions de rappel pour un gestionnaire de stockage procédural défini par l'utilisateur

  • « mysqlnd_qc_set_storage_handler
  • Historique des changements »
  • PHP Manual
  • Fonctions mysqlnd_qc
  • Définit les fonctions de rappel pour un gestionnaire de stockage procédural défini par l'utilisateur

mysqlnd_qc_set_user_handlers

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_set_user_handlers — Définit les fonctions de rappel pour un gestionnaire de stockage procédural défini par l'utilisateur

Description

bool mysqlnd_qc_set_user_handlers ( string $get_hash , string $find_query_in_cache , string $return_to_cache , string $add_query_to_cache_if_not_exists , string $query_is_select , string $update_query_run_time_stats , string $get_stats , string $clear_cache )

Définit les fonctions de rappel pour un gestionnaire de stockage procédural défini par l'utilisateur.

Liste de paramètres

get_hash

Nom de la fonction utilisateur implémentant la fonctionnalité get_hash du gestionnaire de stockage.

find_query_in_cache

Nom de la fonction utilisateur implémentant la fonctionnalité find_in_cache du gestionnaire de stockage.

return_to_cache

Nom de la fonction utilisateur implémentant la fonctionnalité return_to_cache du gestionnaire de stockage.

add_query_to_cache_if_not_exists

Nom de la fonction utilisateur implémentant la fonctionnalité add_query_to_cache_if_not_exists du gestionnaire de stockage.

query_is_select

Nom de la fonction utilisateur implémentant la fonctionnalité query_is_select du gestionnaire de stockage.

update_query_run_time_stats

Nom de la fonction utilisateur implémentant la fonctionnalité update_query_run_time_stats du gestionnaire de stockage.

get_stats

Nom de la fonction utilisateur implémentant la fonctionnalité get_stats du gestionnaire de stockage.

clear_cache

Nom de la fonction utilisateur implémentant la fonctionnalité clear_cache du gestionnaire de stockage.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si une erreur survient.

Voir aussi

  • Exemple de gestionnaire de stockage procédural défini par l'utilisateur


Historique des changements

Sommaire

  • Séries PECL/mysqlnd_qc 1.2
  • PECL/mysqlnd_qc 1.1
  • PECL/mysqlnd_qc 1.0

Cet historique est un résumé des changements qui peuvent impacter les applications et/ou casser la compatibilité.

Voyez aussi le fichier CHANGES dans la source, pour la liste complète des changements.


Séries PECL/mysqlnd_qc 1.2

1.2.0 - alpha

  • Date de sortie : 03/2013
  • Motto/thème : Compatibilité PHP 5.5

Modifications des fonctionalités

  • Mise à jour de la construction pour PHP 5.5 (Crédits : Remi Collet)

  • Mise à jour du gestionnaire de stockage APC

    • Correction de la construction pour APC 3.1.13-beta et trunk

  • Introduction des constantes MYSQLND_QC_VERSION et MYSQLND_QC_VERSION_ID.


PECL/mysqlnd_qc 1.1

1.1.0 - stable

  • Date de sortie : 04/2012
  • Motto/thème : Compatibilité PHP 5.4, mise en cache basé sur les masques de shéma et support de and mysqlnd_ms

1.1.0 - béta

  • Date de sortie : 04/2012
  • Motto/thème : compatibilité PHP 5.4, mise en cache basé sur les masques de shéma et support de and mysqlnd_ms

1.1.0 - alpha

  • Date de sortie : 04/2012
  • Motto/thème : Compatibilité PHP 5.4, mise en cache basé sur les masques de shéma et support de and mysqlnd_ms

Changements

  • Mise à jour du stockage APC

    • Correction de la compilation pour APC 3.1.9+
    • Note: Utiliser le gestionnaire de stockage APC n'est actuellement pas recommandé en raisons de problèmes de stabilité avec APC lui-même.

  • Nouvelles directives de configuration PHP

    • mysqlnd_qc.collect_statistics_log_file. Écriture du fichier de log des statistiques aggrégées de la mise en cache toutes les 10 requêtes servies par le processus PHP.
    • mysqlnd_qc.ignore_sql_comments. Contrôle si les commentaires SQL sont ignorés pour la génération de clé de hachage pour la mise en cache.

  • Nouvelles constantes et astuces SQL

    • MYSQLND_QC_SERVER_ID_SWITCH autorise le groupage des entrées de cache depuis différentes connexions physiques. Ceci est nécessaire pour PECL/mysqlnd_ms.
    • MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN est à utiliser avec mysqlnd_qc_set_cache_condition().

  • La nouvelle fonction mysqlnd_qc_set_cache_condition() permet de construire une mise en cache basé sur un masque de shéma. Elle devrait supporter un grand nombre de conditions dans le futur.

  • Rapporte un timestamp valid_until pour les entrées du cache du gestionnaire par défaut via la fonction mysqlnd_qc_get_cache_info().

  • Inclut le nombre du jeu de caractères pour le hachage de l'entrée du cache. Ceci permet d'éviter de servir des jeux de résultats qui ont un jeu de caractères incorrect.

    Modification de l'API : get_hash_key attent le nouveau paramètre "charsetnr" (int) après le paramètre "port".

  • Modification de l'API : modification de la signature de is_select(), passant d'un booléen à une valeur de type variée. Cette valeur peut être un booléen ou un tableau (long ttl, string server_id). Ceci est nécessaire pour PECL/mysqlnd_ms.

Autre

  • Support de PECL/mysqlnd_ms 1.3.0-beta ou supérieure comme gestionnaire de cache pour remplacer de façon transparente les lectures sur un esclave de réplication MySQL avec un accès au cache, si l'utilisateur l'autorise explicitement.

Diverses corrections

  • Correction du bogue #59959 (config.m4, wrong library - 64bit memcached handler builds) (Crédits : Remi Collet)


PECL/mysqlnd_qc 1.0

1.0.1-stable

  • Date de sortie: 12/2010
  • Motto/theme: Support des requêtes préparées

Ajout du support des requêtes préparées et des requêtes non bufferisées.

1.0.0-beta

  • Date de sortie: 07/2010
  • Motto/theme: Cache basé sur le TTL avec diverses options pour le stockage (Memcache, APC, SQLite, utilisateur)

Sortie initiale du cache de résultats de requêtes basé sur TTL. Stockage flexible des résultats de cache.


Plugin de gestion utilisateur Mysqlnd

  • Introduction
  • Démarrage rapide et exemples
    • Configuration
    • Comment fonctionne-t-il ?
    • Installation d'un proxy
    • Surveillance de base des requête
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • MysqlndUhConnection — La classe MysqlndUhConnection
    • MysqlndUhConnection::changeUser — Change l'utilisateur de la connexion à la base de données mysqlnd spécifié
    • MysqlndUhConnection::charsetName — Récupère le jeu de caractères par défaut pour la connexion à la base de données
    • MysqlndUhConnection::close — Ferme une connexion existante à la base de données
    • MysqlndUhConnection::connect — Ouvre une nouvelle connexion vers le serveur MySQL
    • MysqlndUhConnection::__construct — Le but de __construct
    • MysqlndUhConnection::endPSession — Ferme une connexion persistante
    • MysqlndUhConnection::escapeString — Échappe les caractères spéciaux d'une chaîne dans le but d'être utilisée dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion
    • MysqlndUhConnection::getAffectedRows — Récupère le nombre de lignes affectées par la précédente opération MySQL
    • MysqlndUhConnection::getErrorNumber — Retourne le code erreur du plus récent appel à une fonction
    • MysqlndUhConnection::getErrorString — Retourne une description textuelle de la dernière erreur
    • MysqlndUhConnection::getFieldCount — Retourne le nombre de colonnes contenu dans la dernière requête
    • MysqlndUhConnection::getHostInformation — Retourne une chaîne représentant le type de connexion utilisé
    • MysqlndUhConnection::getLastInsertId — Retourne l'identifiant auto-généré utilisé dans la dernière requête
    • MysqlndUhConnection::getLastMessage — Récupère les informations concernant la dernière requête exécutée
    • MysqlndUhConnection::getProtocolInformation — Retourne la version du protocole MySQL utilisé
    • MysqlndUhConnection::getServerInformation — Retourne la version du serveur MySQL
    • MysqlndUhConnection::getServerStatistics — Récupère le statut du système courant
    • MysqlndUhConnection::getServerVersion — Retourne la version du serveur MySQL sous la forme d'un entier
    • MysqlndUhConnection::getSqlstate — Retourne l'erreur SQLSTATE depuis la dernière opération MySQL
    • MysqlndUhConnection::getStatistics — Retourne les statistiques sur la connexion cliente
    • MysqlndUhConnection::getThreadId — Retourne l'identifiant du thread pour la connexion courante
    • MysqlndUhConnection::getWarningCount — Retourne le nombre d'alertes depuis la dernière requête
    • MysqlndUhConnection::init — Initialise une connexion Mysqlnd
    • MysqlndUhConnection::killConnection — Demande au serveur de tuer un thread MySQL
    • MysqlndUhConnection::listFields — Liste les champs d'une table MySQL
    • MysqlndUhConnection::listMethod — Gestionnaire pour des commandes
    • MysqlndUhConnection::moreResults — Vérifie s'il y a encore des résultats depuis une requête multiple
    • MysqlndUhConnection::nextResult — Prépare le prochain résultat depuis multi_query
    • MysqlndUhConnection::ping — Ping une connexion de serveur ou tente de se reconnecter si la connexion n'est plus disponible
    • MysqlndUhConnection::query — Exécute une requête sur la base de données
    • MysqlndUhConnection::queryReadResultsetHeader — Lit un en-tête de jeu de résultats
    • MysqlndUhConnection::reapQuery — Récupère le résultat depuis une requête asynchrone
    • MysqlndUhConnection::refreshServer — Rafraîchie ou réinitialise les tables et les caches
    • MysqlndUhConnection::restartPSession — Redémarre une connexion mysqlnd persistante
    • MysqlndUhConnection::selectDb — Sélectionne la base de données par défaut pour l'exécution des requêtes
    • MysqlndUhConnection::sendClose — Envoi une commande de fermeture à MySQL
    • MysqlndUhConnection::sendQuery — Envoi une requête à MySQL
    • MysqlndUhConnection::serverDumpDebugInformation — Extrait les informations de débogage dans les logs pour le serveur MySQL
    • MysqlndUhConnection::setAutocommit — Active ou désactive l'auto-commit de la base de données
    • MysqlndUhConnection::setCharset — Définit le jeu de caractères par défaut du client
    • MysqlndUhConnection::setClientOption — Définit une option du client
    • MysqlndUhConnection::setServerOption — Définit une option serveur
    • MysqlndUhConnection::shutdownServer — Le but de shutdownServer
    • MysqlndUhConnection::simpleCommand — Envoi une commande COM_*
    • MysqlndUhConnection::simpleCommandHandleResponse — Analyse une réponse d'une commande COM_* envoyée au client
    • MysqlndUhConnection::sslSet — Utilisé pour établir des connexions sécurisées utilisant SSL
    • MysqlndUhConnection::stmtInit — Initialise une requête et retourne une ressource à utiliser avec mysqli_statement::prepare
    • MysqlndUhConnection::storeResult — Transfère un jeu de résultats depuis la dernière requête
    • MysqlndUhConnection::txCommit — Valide la transaction courante
    • MysqlndUhConnection::txRollback — Annule la transaction courante
    • MysqlndUhConnection::useResult — Initialise un jeu de résultats récupéré
  • MysqlndUhPreparedStatement — La classe MysqlndUhPreparedStatement
    • MysqlndUhPreparedStatement::__construct — Le but de __construct
    • MysqlndUhPreparedStatement::execute — Exécute une requête préparée
    • MysqlndUhPreparedStatement::prepare — Prépare une requête SQL pour exécution
  • Fonctions Mysqlnd_uh
    • mysqlnd_uh_convert_to_mysqlnd — Convertit un gestionnaire de connexion MySQL en un gestionnaire de connexion mysqlnd
    • mysqlnd_uh_set_connection_proxy — Installe un proxy pour les connexions mysqlnd
    • mysqlnd_uh_set_statement_proxy — Installe un proxy pour les requêtes mysqlnd
  • Historique des modifications
    • Séries PECL/mysqlnd_uh 1.0


Introduction

Le plugin de gestion utilisateur mysqlnd (mysqlnd_uh) permet aux utilisateurs de définir des alternatives à la plupart des appels internes du driver MySQL natif pour PHP (mysqlnd). Mysqlnd et ses plugins, incluant PECL/mysqlnd_uh, opère sur une couche se situant en dessous des extensions PHP MySQL. Un plugin mysqlnd peut être considéré comme un proxy entre les extensions PHP MySQL et le serveur MySQL, comme un exécutable PHP côté client. En raison du fait que les plugins opèrent sur leurs propres couches en dessous des extensions PHP, ils peuvent surveiller et modifier les actions de l'application sans avoir à modifier l'application. Si les extensions MySQL PHP (mysqli, mysql, PDO_MYSQL) sont compilées pour utiliser mysqlnd, les plugins peuvent être utilisés pour :

  • La surveillance...

    • ... des requêtes exécutées par n'importe quelle extension PHP MySQL

    • ... des requêtes préparées exécutées par n'importe quelle extension PHP MySQL

  • L'audite sur...

    • ... de la détection des utilisations de la base de données

    • ... la protection contre les injections SQL en utilisant des listes blanches et noires

  • Mais aussi...

    • ... à la balance de charge des connexions

Le driver natif MySQL pour PHP (mysqlnd) fournit une API C interne. Les plugins C, comme le plugin de gestion utilisateur mysqlnd, peuvent étendre les fonctionnalités de mysqlnd. PECL/mysqlnd_uh fait parti de l'API C interne disponible à l'utilisateur PHP pour le développement de plugin avec PHP.

Note: Statut

Le plugin de gestion utilisateur mysqlnd est au statut alpha. Prenez les précautions nécessaires avant de l'utiliser en environnement de production.

Considérations relatives à la sécurité

PECL/mysqlnd_uh fournit un accès utilisateur aux utilisateurs MySQL, aux mots de passe MySQL utilisés par n'importe quelle extension PHP MySQL pour se connecter à MySQL. Il permet la surveillance de toutes les requêtes et requêtes préparées, exposant ainsi la chaîne de requête à l'utilisateur. Aussi, l'extension doit être installée avec beaucoup de prudence. L'option de configuration PHP_INI_SYSTEM mysqlnd_uh.enable peut être utilisée pour interdire aux utilisateurs l'interception des appels mysqlnd.

L'obfuscateur de code et les technologies similaires ne sont pas suffisant pour prévenir la surveillance des activités de la bibliothèque mysqlnd ; si PECL/mysqlnd_uh est disponible, l'utilisateur peut installer un proxy, par exemple, en utilisant auto_prepend_file.

Note sur la documentation

La plupart des fonctions mysqlnd_uh sont décrites brièvement car l'extension mysqli n'est qu'une couche d'abstraction fine au dessus de l'API C MySQL, fourni par la bibliothèque mysqlnd. Aussi, la documentation correspondante à mysqli (ainsi que le manuel de référence MySQL) peut être consultée pour y récupérer plus d'informations sur une fonction particulière.

Sur le nom

Le raccourci mysqlnd_uh signifie mysqlnd user handler et a été le nom choisi depuis le début du développement.


Démarrage rapide et exemples

Sommaire

  • Configuration
  • Comment fonctionne-t-il ?
  • Installation d'un proxy
  • Surveillance de base des requête

Le plugin de gestion utilisateur mysqlnd peut être compris comme un proxy client-serveur pour toutes les extensions PHP MySQL (mysqli, mysql, PDO_MYSQL), si elles ont été compilées pour utiliser la bibliothèque mysqlnd. Les extensions utilisent la bibliothèque mysqlnd en interne, au niveau du langage C, pour communiquer avec le serveur MySQL. PECL/mysqlnd_uh permet d'intercepter beaucoup d'appels mysqlnd. De plus, la plupart des activités des extensions PHP MySQL peuvent être monitorées.

En raison du fait que la surveillance survient au niveau de la bibliothèque, à une couche en dessous de l'application, il est possible de surveiller les applications sans avoir à les modifier.

Au niveau C, la bibliothèque mysqlnd est structurée en modules ou en classes. L'extension accroche toutes les méthodes de la classe connection interne à mysqlnd et les expose via la classe MysqlndUhConnection de l'espace utilisateur. Quelques méthodes de la classe statement interne à mysqlnd sont disponibles aux utilisateurs PHP avec la classe MysqlndUhPreparedStatement. En surchargeant les classes MysqlndUhConnection et MysqlndUhPreparedStatement, les utilisateurs peuvent avoir accès aux appels fonctions interne à mysqlnd.

Note:

Les appels aux fonctions internes à mysqlnd n'ont pas pour but d'être exposées aux utilisateurs PHP. Une manipulation de leurs activités peut conduire à un crash de PHP ou à une fuite mémore. Aussi, ceci ne saurait être considéré comme un bogue. Veuillez garder à l'esprit que vous accédez à des fonctions de la bibliothèque C via PHP qui sont attendus à effectuer certaines actions, qui peuvent ou non être émulées dans l'espace utilisateur. Aussi, il est fortement recommandé de toujours appeler la méthode implémentée parente lors d'une surcharge de la classe MysqlndUhConnection ou de la classe MysqlndUhPreparedStatement. Pour éviter le pire, l'extension effectue quelques contrôles. Voir aussi les Options de configuration Mysqlnd_uh.


Configuration

Le plugin est implémenté comme une extension PHP. Voir aussi les instructions d'installation pour installer l'extension » PECL/mysqlnd_uh. Puis, chargez l'extension dans PHP et activez le plugin dans le fichier de configuration de PHP en utilisant la directive de configuration PHP mysqlnd_uh.enable. L'exemple ci-dessous montre les configurations par défaut de l'extension.

Exemple #1 Activation du plugin (php.ini)

mysqlnd_uh.enable=1
mysqlnd_uh.report_wrong_types=1


Comment fonctionne-t-il ?

Cette section décrit le contexte et les rouages de l'extension mysqlnd_uh.

Deux classes sont fournies par l'extension : MysqlndUhConnection et MysqlndUhPreparedStatement. MysqlndUhConnection vous permet d'accéder à la plupart des méthodes de la classe interne connection de mysqlnd. La seconde expose quelques méthodes sélectionnées de la classe statement interne à mysqlnd. Par exemple, la méthode MysqlndUhConnection::connect() est liée à la fonction C mysqlnd_conn__connect de la bibliothèque mysqlnd.

Comme plugin mysqlnd, l'extension PECL/mysqlnd_uh remplace les fonctions de la bibliothèque C mysqlnd avec ces propres fonctions. A chaque fois qu'une extension PHP MySQL est compilée pour une utilisation de mysqlnd, qu'un appel à une fonction mysqlnd est réalisée, la fonction installée par le plugin est exécutée au lieu de la fonction originale mysqlnd. Si, par exemple, la fonction mysqli_connect() appèle mysqlnd_conn__connect, la fonction de connexion installée par PECL/mysqlnd_uh sera appelée. Les fonctions installées par PECL/mysqlnd_uh sont les méthodes des classes internes.

Les classes internes PHP et leurs méthodes ne font rien, mais un appel à leurs homologues de la bibliothèque C mysqlnd permet d'obtenir un comportement identique à la fonction originale mysqlnd qu'elles remplacent. Le code ci-dessous illustre rapidement ce que la classe fait.

Exemple #1 Ce que fait une classe interne

class MysqlndUhConnection {
  public function connect(($conn, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
    MYSQLND* c_mysqlnd_connection = convert_from_php_to_c($conn);
    ...
    return call_c_function(mysqlnd_conn__connect(c_mysqlnd_connection, ...));
  }
}

Les classes internes fonctionnent comme un proxy transparent. Il vous est possible de remplacer le proxy par le votre, en surchargeant la classe MysqlndUhConnection ou la classe MysqlndUhPreparedStatement pour étendre les fonctionnalités du proxy, suivi de l'enregistrement du nouvel objet proxy. Les objets proxy sont installés en utilisant les fonctions mysqlnd_uh_set_connection_proxy() et mysqlnd_uh_set_statement_proxy().

Exemple #2 Installation d'un proxy

<?php
class proxy extends MysqlndUhConnection {
 public function connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
?>

L'exemple ci-dessus va afficher :

proxy::connect(array (
  0 => NULL,
  1 => 'localhost',
  2 => 'root',
  3 => '',
  4 => 'test',
  5 => 3306,
  6 => NULL,
  7 => 131072,
))
proxy::connect retourne true


Installation d'un proxy

L'extension fournit 2 classes internes : MysqlndUhConnection et MysqlndUhPreparedStatement. Les classes sont utilisées pour intercepter les appels à la bibliothèque mysqlnd. Leurs méthodes correspondent aux fonctions internes de mysqlnd. Par défaut, elles fonnctionnent comme un pproxy transparent et ne font rien mise à part appeler les homologues mysqlnd. En surchargeant les classes, vous pouvez installer votre propre proxy pour surveiller mysqlnd.

Voir aussi le guide sur le fonctionnement interne de cette extension.

Les proxies de connexions sont des objets de type MysqlndUhConnection. Les objets de proxy de connexion sont installés avec la fonction mysqlnd_uh_set_connection_proxy(). Si vous installez la classe interne MysqlndUhConnection comme proxy, rien ne surviendra. Elle fonctionne comme un proxy transparent.

Exemple #1 Enregistration du proxy, mysqlnd_uh.enable=1

<?php
mysqlnd_uh_set_connection_proxy(new MysqlndUhConnection());
$mysqli = new mysqli("localhost", "root", "", "test");
?>

La directive de configuration PHP_INI_SYSTEM mysqlnd_uh.enable contrôle si un proxy doit être défini. Si désactivé, l'extension va émettre une erreur de niveau E_WARNING.

Exemple #2 Installation d'un proxy désactivée

mysqlnd_uh.enable=0
<?php
mysqlnd_uh_set_connection_proxy(new MysqlndUhConnection());
$mysqli = new mysqli("localhost", "root", "", "test");
?>

L'exemple ci-dessus va afficher :

PHP Warning:  MysqlndUhConnection::__construct(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enabled = false.  You must not use any of the base classes in %s on line %d
PHP Warning:  mysqlnd_uh_set_connection_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed  in %s on line %d

Pour monitorer mysqlnd, vous devez écrire votre propre objet proxy en surchargeant la classe MysqlndUhConnection. Reportez-vous à la section référence des fonctions pour une liste de toutes les méthodes qui peuvent être surchargées. Sinon, vous pouvez utiliser la réflection pour inspecter la classe interne MysqlndUhConnection.

Crée une nouvelle classe proxy. Dérivez-la depuis la classe interne MysqlndUhConnection. Remplacez la méthode MysqlndUhConnection::connect(). Affichez la valeur du paramètre hôte passée à la méthode. Assurez-vous que vous appelez l'implémentation parente de la méthode connect. Si vous ne le faîtes pas, vous obtiendrez des résultats non prévisibles et surtout non désirés, incluant un crash mémoire ou une fuite mémoire.

Enregistrez votre proxy et ouvrez trois connexions en utilisant les extensions PHP MySQL mysqli, mysql, et PDO_MYSQL. Si ces extensions ont été compilées pour utiliser la bibliothèque mysqlnd, la méthode proxy::connect sera appelée trois fois, une fois par connexion ouverte.

Exemple #3 Proxy de connexion

<?php
class proxy extends MysqlndUhConnection {
  public function connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
   printf("Connexion ouverte vers '%s'\n", $host);
   /* Appelez toujours l'implémentation parente ! */
   return parent::connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags);
  }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysql = mysql_connect("localhost", "root", "");
$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
?>

L'exemple ci-dessus va afficher :

Connexion ouverte vers 'localhost'
Connexion ouverte vers 'localhost'
Connexion ouverte vers 'localhost'

L'utilisation de proxies de requête préparée suit le même masque : créez un objet proxy de type MysqlndUhPreparedStatement et installez le proxy en utilisant la fonction mysqlnd_uh_set_statement_proxy().

Exemple #4 Proxy de requête préparée

<?php
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function prepare($res, $query) {
  printf("%s(%s)\n", __METHOD__, $query);
  return parent::prepare($res, $query);
 }
}
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 'mysqlnd hacking made easy' AS _msg FROM DUAL");
?>

L'exemple ci-dessus va afficher :

stmt_proxy::prepare(SELECT 'mysqlnd hacking made easy' AS _msg FROM DUAL)


Surveillance de base des requête

La surveillance de base d'une requête est simple avec PECL/mysqlnd_uh. Combiné avec la fonction debug_print_backtrace(), ça peut devenir un outil très puissant, par exemple, pour trouver l'origine d'une requête. Ceci peut être nécessaire lors de la recherche de requêtes lentes, mais aussi après une re-factorisation de la base de données pour trouver le code continuant à accéder à une ancienne table ou base de données. Ce genre de recherche peut devenir vite compliqué en l'absence de ce genre d'outils, surtout si vous utilisez une application qui auto-génère des requêtes.

Exemple #1 Surveillance de base

<?php
class conn_proxy extends MysqlndUhConnection {
 public function query($res, $query) {
  debug_print_backtrace();
  return parent::query($res, $query);
 }
}
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function prepare($res, $query) {
  debug_print_backtrace();
  return parent::prepare($res, $query);
 }
}
mysqlnd_uh_set_connection_proxy(new conn_proxy());
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

printf("Proxies installed...\n");
$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
var_dump($pdo->query("SELECT 1 AS _one FROM DUAL")->fetchAll(PDO::FETCH_ASSOC));

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->prepare("SELECT 1 AS _two FROM DUAL");
?>

L'exemple ci-dessus va afficher :

#0  conn_proxy->query(Resource id #19, SELECT 1 AS _one FROM DUAL)
#1  PDO->query(SELECT 1 AS _one FROM DUAL) called at [example.php:19]
array(1) {
  [0]=>
  array(1) {
    ["_one"]=>
    string(1) "1"
  }
}
#0  stmt_proxy->prepare(Resource id #753, SELECT 1 AS _two FROM DUAL)
#1  mysqli->prepare(SELECT 1 AS _two FROM DUAL) called at [example.php:22]

Pour une surveillance de base des requêtes, vous devriez installer une connexion et un proxy de requête préparée. Le proxy de connexion doit surcharger la classe MysqlndUhConnection::query(). Toutes les requêtes de base de données qui n'utilisent pas des requêtes préparées nativement devront appeler cette méthode. Dans l'exemple ci-dessus, la fonction query est invoquée par un appel PDO. Par défaut, PDO_MySQL utilise une émulation de requête préparée.

Toutes les requêtes préparées natives sont préparées avec la méthode prepare de mysqlnd exportée via MysqlndUhPreparedStatement::prepare(). Surchargez la classe MysqlndUhPreparedStatement et écrasez la fonction prepare pour une surveillance des requêtes préparées natives.


Pré-requis

PHP 5.3.3 ou supérieure. Il est recommandé d'utiliser PHP 5.4.0 ou supérieure pour avoir accès aux dernières fonctionnalités de mysqlnd.

Le plugin de gestion des utilisateurs mysqlnd_uh supporte toutes les applications PHP et toutes les extensions PHP MySQL disponibles (mysqli, mysql, PDO_MYSQL). L'extension MySQL doit avoir été configuré pour utiliser mysqlnd afin d'être capable d'utiliser le plugin mysqlnd_uh pour mysqlnd.

Les versions alpha utilise quelques fonctionnalités de mysqli. Vous devez activer mysqli pour compiler le plugin. Cette nécessité sera probablement supprimée dans le futur. Notez que cette nécessité ne vous restreint pas à utiliser le plugin uniquement avec mysqli. Vous pouvez l'utiliser pour surveiller mysql, mysqli et PDO_MYSQL.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mysqlnd-uh

PECL/mysqlnd_uh n'est actuellement pas disponible sous Windows. Le code source de l'extension utilise les constructions C99 non autorisées avec les compilations Windows


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Mysqlnd_uh
Nom | Défaut | Modifiable | Historique
mysqlnd_uh.enable | 1 | PHP_INI_SYSTEM |
mysqlnd_uh.report_wrong_types | 1 | PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqlnd_uh.enable integer

Active ou désactive le plugin. Si désactivé, l'extension ne va pas autoriser les utilisateurs à le connexer à mysqlnd pour interception les appels à mysqlnd.

mysqlnd_uh.report_wrong_types integer

Si l'on doit rapporter des types de valeurs retournées erronées comme des erreurs de niveau E_WARNING. Il est vivement recommandé d'utiliser cette configuration pour détecter les erreurs.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

La plupart des constantes se réfère au protocole MySQL Client Serveur. Reportez-vous au manuel de référence MySQL pour en apprendre plus quant à leur signification. Afin d'éviter de dupliquer du contenu, seule une courte description est donnée ici.

En relation avec MysqlndUhConnection::simpleCommand()

Les constantes suivantes peuvent être utilisées pour détecter la commande à envoyer via MysqlndUhConnection::simpleCommand().

MYSQLND_UH_MYSQLND_COM_SLEEP (entier)
Commande du protocole MySQL Client Serveur : COM_SLEEP.
MYSQLND_UH_MYSQLND_COM_QUIT (entier)
Commande du protocole MySQL Client Serveur : COM_QUIT.
MYSQLND_UH_MYSQLND_COM_INIT_DB (entier)
Commande du protocole MySQL Client Serveur : COM_INIT_DB.
MYSQLND_UH_MYSQLND_COM_QUERY (entier)
Commande du protocole MySQL Client Serveur : COM_QUERY.
MYSQLND_UH_MYSQLND_COM_FIELD_LIST (entier)
Commande du protocole MySQL Client Serveur : COM_FIELD_LIST.
MYSQLND_UH_MYSQLND_COM_CREATE_DB (entier)
Commande du protocole MySQL Client Serveur : COM_CREATE_DB.
MYSQLND_UH_MYSQLND_COM_DROP_DB (entier)
Commande du protocole MySQL Client Serveur : COM_DROP_DB.
MYSQLND_UH_MYSQLND_COM_REFRESH (entier)
Commande du protocole MySQL Client Serveur : COM_REFRESH.
MYSQLND_UH_MYSQLND_COM_SHUTDOWN (entier)
Commande du protocole MySQL Client Serveur : COM_SHUTDOWN.
MYSQLND_UH_MYSQLND_COM_STATISTICS (entier)
Commande du protocole MySQL Client Serveur : COM_STATISTICS.
MYSQLND_UH_MYSQLND_COM_PROCESS_INFO (entier)
Commande du protocole MySQL Client Serveur : COM_PROCESS_INFO.
MYSQLND_UH_MYSQLND_COM_CONNECT (entier)
Commande du protocole MySQL Client Serveur : COM_CONNECT.
MYSQLND_UH_MYSQLND_COM_PROCESS_KILL (entier)
Commande du protocole MySQL Client Serveur : COM_PROCESS_KILL.
MYSQLND_UH_MYSQLND_COM_DEBUG (entier)
Commande du protocole MySQL Client Serveur : COM_DEBUG.
MYSQLND_UH_MYSQLND_COM_PING (entier)
Commande du protocole MySQL Client Serveur : COM_PING.
MYSQLND_UH_MYSQLND_COM_TIME (entier)
Commande du protocole MySQL Client Serveur : COM_TIME.
MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT (entier)
Commande du protocole MySQL Client Serveur : COM_DELAYED_INSERT.
MYSQLND_UH_MYSQLND_COM_CHANGE_USER (entier)
Commande du protocole MySQL Client Serveur : COM_CHANGE_USER.
MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP (entier)
Commande du protocole MySQL Client Serveur : COM_BINLOG_DUMP.
MYSQLND_UH_MYSQLND_COM_TABLE_DUMP (entier)
Commande du protocole MySQL Client Serveur : COM_TABLE_DUMP.
MYSQLND_UH_MYSQLND_COM_CONNECT_OUT (entier)
Commande du protocole MySQL Client Serveur : COM_CONNECT_OUT.
MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED (entier)
Commande du protocole MySQL Client Serveur : COM_REGISTER_SLAVED.
MYSQLND_UH_MYSQLND_COM_STMT_PREPARE (entier)
Commande du protocole MySQL Client Serveur : COM_STMT_PREPARE.
MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE (entier)
Commande du protocole MySQL Client Serveur : COM_STMT_EXECUTE.
MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA (entier)
Commande du protocole MySQL Client Serveur : COM_STMT_SEND_LONG_DATA.
MYSQLND_UH_MYSQLND_COM_STMT_CLOSE (entier)
Commande du protocole MySQL Client Serveur : COM_STMT_CLOSE.
MYSQLND_UH_MYSQLND_COM_STMT_RESET (entier)
Commande du protocole MySQL Client Serveur : COM_STMT_RESET.
MYSQLND_UH_MYSQLND_COM_SET_OPTION (entier)
Commande du protocole MySQL Client Serveur : COM_SET_OPTION.
MYSQLND_UH_MYSQLND_COM_STMT_FETCH (entier)
Commande du protocole MySQL Client Serveur : COM_STMT_FETCH.
MYSQLND_UH_MYSQLND_COM_DAEMON (entier)
Commande du protocole MySQL Client Serveur : COM_DAEMON.
MYSQLND_UH_MYSQLND_COM_END (entier)
Commande du protocole MySQL Client Serveur : COM_END.

Les constantes suivantes peuvent être utilisées pour analyser l'argument ok_packet de MysqlndUhConnection::simpleCommand().

MYSQLND_UH_MYSQLND_PROT_GREET_PACKET (entier)
Paquet du protocole MySQL Client Serveur : greeting.
MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET (entier)
Paquet du protocole MySQL Client Serveur : authentification.
MYSQLND_UH_MYSQLND_PROT_OK_PACKET (entier)
Paquet du protocole MySQL Client Serveur : OK.
MYSQLND_UH_MYSQLND_PROT_EOF_PACKET (entier)
Paquet du protocole MySQL Client Serveur : EOF.
MYSQLND_UH_MYSQLND_PROT_CMD_PACKET (entier)
Paquet du protocole MySQL Client Serveur : command.
MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET (entier)
Paquet du protocole MySQL Client Serveur : result set header.
MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET (entier)
Paquet du protocole MySQL Client Serveur : resultset field.
MYSQLND_UH_MYSQLND_PROT_ROW_PACKET (entier)
Paquet du protocole MySQL Client Serveur : row.
MYSQLND_UH_MYSQLND_PROT_STATS_PACKET (entier)
Paquet du protocole MySQL Client Serveur : stats.
MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET (entier)
Paquet du protocole MySQL Client Serveur : prepare response.
MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET (entier)
Paquet du protocole MySQL Client Serveur : change user response.
MYSQLND_UH_MYSQLND_PROT_LAST (entier)
Aucune sens pratique. Le dernier marqueur de l'entrée de la liste des structures de données interne C.

En relation avec MMysqlndUhConnection::close()

Les constantes suivantes peuvent être utilisées pour détecter la raison pour laquelle une connexion a été fermée via MysqlndUhConnection::close().

MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT (entier)
L'utilisateur a appelé mysqlnd pour fermer la connexion.
MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT (entier)
Fermée implicitement, par exemple, pendant le nettoyage de la connexion.
MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED (entier)
Erreur de la connexion.
MYSQLND_UH_MYSQLND_CLOSE_LAST (entier)
Aucun sens pratique. Le dernier marqueur de l'entrée de la liste des structures de données interne C.

En relation avec MysqlndUhConnection::setServerOption()

Les constantes suivantes peuvent être utilisées pour détecter qu'elle est l'option définie via MysqlndUhConnection::setServerOption().

MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON (entier)
Option : active le support des multi-requêtes.
MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_OFF (entier)
Option : désactive le support des multi-requêtes.

En relation avec MysqlndUhConnection::setClientOption()

Les constantes suivantes peuvent être utilisées pour détecter qu'elle est l'option définie via MysqlndUhConnection::setClientOption().

MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT (entier)
Option : le délai maximal d'attente pour la connexion.
MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS (entier)
Option : si le protocole compressé MySQL doit être utilisé.
MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE (entier)
Option : pipe nommé à utiliser pour la connexion (Windows).
MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND (entier)
Option : commande d'initialisation à exécuter lors de la connexion.
MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE (entier)
Option : fichier par défaut du serveur MySQL à lire lors de la connexion.
MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP (entier)
Option : fichier par défaut du serveur MySQL contenant les groupes à lire lors de la connexion.
MYSQLND_UH_MYSQLND_SET_CHARSET_DIR (entier)
Option : description du jeu de caractères utilisé pour les dossiers.
MYSQLND_UH_MYSQLND_SET_CHARSET_NAME (entier)
Option : nom du jeu de caractères.
MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE (entier)
Option : Si l'on autorise l'utilisation de LOAD DATA LOCAL INFILE.
MYSQLND_UH_MYSQLND_OPT_PROTOCOL (entier)
Option : version du protocole supportée.
MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME (entier)
Option : nom de base de la mémoire partagée pour les connexions en mémoire partagées.
MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT (entier)
Option : délai maximal d'attente pour la lecture de la connexion.
MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT (entier)
Option : délai maximal d'attente pour l'écriture sur la connexion.
MYSQLND_UH_MYSQLND_OPT_USE_RESULT (entier)
Option : jeux de résultats mis en mémoire tampon.
MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION (entier)
En relation avec le serveur embarqué.
MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION (entier)
En relation avec le serveur embarqué.
MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION (entier)
A faire
MYSQLND_UH_MYSQLND_SET_CLIENT_IP (entier)
A faire
MYSQLND_UH_MYSQLND_SECURE_AUTH (entier)
A faire
MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION (entier)
Option : Si l'on doit rapporter la troncation des données.
MYSQLND_UH_MYSQLND_OPT_RECONNECT (entier)
Option : Si l'on doit se reconnecter automatiquement.
MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT (entier)
Option : A faire
MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE (entier)
Option : Taille du buffer réseau mysqlnd pour les commandes.
MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE (entier)
Option : Taille du buffer réseau mysqlnd pour les lectures depuis le serveur.
MYSQLND_UH_MYSQLND_OPT_SSL_KEY (entier)
Option : clé SSL.
MYSQLND_UH_MYSQLND_OPT_SSL_CERT (entier)
Option : Certificat SSL.
MYSQLND_UH_MYSQLND_OPT_SSL_CA (entier)
Option : CA SSL.
MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH (entier)
Option: Chemin vers le CA SSL.
MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER (entier)
Option : cipher SSL.
MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE (entier)
Option : passphrase SSL.
MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR (entier)
Option : dossier contenant les plugins serveur.
MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH (entier)
Option : méthode d'authentification par défaut.
MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP (entier)
A faire
MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET (entier)
Option : Taille maximale des paquets. Disponible depuis PHP 5.4.0.
MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL (entier)
Option : A faire. Disponible depuis PHP 5.4.0.
MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE (entier)
Option : demande à mysqlnd de retourner des colonnes entières et à virgules flottantes, même si le protocole texte MySQL Client est utilisé. Uniquement disponible avec une compilation personnalisée de mysqlnd.

Autres

Les numéros de version des plugins peuvent être obtenus en utilisant MYSQLND_UH_VERSION ou MYSQLND_UH_VERSION_ID. MYSQLND_UH_VERSION est la représentation sous forme de chaîne de caractères du numéro de version numérique MYSQLND_UH_VERSION_ID, qui est un entier comme 10000. Les développeurs peuvent calculer le numéro de version comme ceci.

Version (partie) | Exemple
Majeur*10000 | 1*10000 = 10000
Mineur*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_UH_VERSION_ID | 10000

MYSQLND_UH_VERSION (chaîne de caractères)
Chaine contenant la version du plugin, par exemple, "1.0.0-alpha".
MYSQLND_UH_VERSION_ID (entier)
Numéro de version du plugin, par exemple, 10000.


La classe MysqlndUhConnection

(PECL mysqlnd-uh >= 1.0.0-alpha)

Introduction

Synopsis de la classe

MysqlndUhConnection {
/* Méthodes */
public bool changeUser ( mysqlnd_connection $connection , string $user , string $password , string $database , bool $silent , int $passwd_len )
public string charsetName ( mysqlnd_connection $connection )
public bool close ( mysqlnd_connection $connection , int $close_type )
public bool connect ( mysqlnd_connection $connection , string $host , string $use" , string $password , string $database , int $port , string $socket , int $mysql_flags )
public __construct ( void )
public bool endPSession ( mysqlnd_connection $connection )
public string escapeString ( mysqlnd_connection $connection , string $escape_string )
public int getAffectedRows ( mysqlnd_connection $connection )
public int getErrorNumber ( mysqlnd_connection $connection )
public string getErrorString ( mysqlnd_connection $connection )
public int getFieldCount ( mysqlnd_connection $connection )
public string getHostInformation ( mysqlnd_connection $connection )
public int getLastInsertId ( mysqlnd_connection $connection )
public void getLastMessage ( mysqlnd_connection $connection )
public string getProtocolInformation ( mysqlnd_connection $connection )
public string getServerInformation ( mysqlnd_connection $connection )
public string getServerStatistics ( mysqlnd_connection $connection )
public int getServerVersion ( mysqlnd_connection $connection )
public string getSqlstate ( mysqlnd_connection $connection )
public array getStatistics ( mysqlnd_connection $connection )
public int getThreadId ( mysqlnd_connection $connection )
public int getWarningCount ( mysqlnd_connection $connection )
public bool init ( mysqlnd_connection $connection )
public bool killConnection ( mysqlnd_connection $connection , int $pid )
public array listFields ( mysqlnd_connection $connection , string $table , string $achtung_wild )
public void listMethod ( mysqlnd_connection $connection , string $query , string $achtung_wild , string $par1 )
public bool moreResults ( mysqlnd_connection $connection )
public bool nextResult ( mysqlnd_connection $connection )
public bool ping ( mysqlnd_connection $connection )
public bool query ( mysqlnd_connection $connection , string $query )
public bool queryReadResultsetHeader ( mysqlnd_connection $connection , mysqlnd_statement $mysqlnd_stmt )
public bool reapQuery ( mysqlnd_connection $connection )
public bool refreshServer ( mysqlnd_connection $connection , int $options )
public bool restartPSession ( mysqlnd_connection $connection )
public bool selectDb ( mysqlnd_connection $connection , string $database )
public bool sendClose ( mysqlnd_connection $connection )
public bool sendQuery ( mysqlnd_connection $connection , string $query )
public bool serverDumpDebugInformation ( mysqlnd_connection $connection )
public bool setAutocommit ( mysqlnd_connection $connection , int $mode )
public bool setCharset ( mysqlnd_connection $connection , string $charset )
public bool setClientOption ( mysqlnd_connection $connection , int $option , int $value )
public void setServerOption ( mysqlnd_connection $connection , int $option )
public void shutdownServer ( string $MYSQLND_UH_RES_MYSQLND_NAME , string $"level" )
public bool simpleCommand ( mysqlnd_connection $connection , int $command , string $arg , int $ok_packet , bool $silent , bool $ignore_upsert_status )
public bool simpleCommandHandleResponse ( mysqlnd_connection $connection , int $ok_packet , bool $silent , int $command , bool $ignore_upsert_status )
public bool sslSet ( mysqlnd_connection $connection , string $key , string $cert , string $ca , string $capath , string $cipher )
public resource stmtInit ( mysqlnd_connection $connection )
public resource storeResult ( mysqlnd_connection $connection )
public bool txCommit ( mysqlnd_connection $connection )
public bool txRollback ( mysqlnd_connection $connection )
public resource useResult ( mysqlnd_connection $connection )
}

Sommaire

  • MysqlndUhConnection::changeUser — Change l'utilisateur de la connexion à la base de données mysqlnd spécifié
  • MysqlndUhConnection::charsetName — Récupère le jeu de caractères par défaut pour la connexion à la base de données
  • MysqlndUhConnection::close — Ferme une connexion existante à la base de données
  • MysqlndUhConnection::connect — Ouvre une nouvelle connexion vers le serveur MySQL
  • MysqlndUhConnection::__construct — Le but de __construct
  • MysqlndUhConnection::endPSession — Ferme une connexion persistante
  • MysqlndUhConnection::escapeString — Échappe les caractères spéciaux d'une chaîne dans le but d'être utilisée dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion
  • MysqlndUhConnection::getAffectedRows — Récupère le nombre de lignes affectées par la précédente opération MySQL
  • MysqlndUhConnection::getErrorNumber — Retourne le code erreur du plus récent appel à une fonction
  • MysqlndUhConnection::getErrorString — Retourne une description textuelle de la dernière erreur
  • MysqlndUhConnection::getFieldCount — Retourne le nombre de colonnes contenu dans la dernière requête
  • MysqlndUhConnection::getHostInformation — Retourne une chaîne représentant le type de connexion utilisé
  • MysqlndUhConnection::getLastInsertId — Retourne l'identifiant auto-généré utilisé dans la dernière requête
  • MysqlndUhConnection::getLastMessage — Récupère les informations concernant la dernière requête exécutée
  • MysqlndUhConnection::getProtocolInformation — Retourne la version du protocole MySQL utilisé
  • MysqlndUhConnection::getServerInformation — Retourne la version du serveur MySQL
  • MysqlndUhConnection::getServerStatistics — Récupère le statut du système courant
  • MysqlndUhConnection::getServerVersion — Retourne la version du serveur MySQL sous la forme d'un entier
  • MysqlndUhConnection::getSqlstate — Retourne l'erreur SQLSTATE depuis la dernière opération MySQL
  • MysqlndUhConnection::getStatistics — Retourne les statistiques sur la connexion cliente
  • MysqlndUhConnection::getThreadId — Retourne l'identifiant du thread pour la connexion courante
  • MysqlndUhConnection::getWarningCount — Retourne le nombre d'alertes depuis la dernière requête
  • MysqlndUhConnection::init — Initialise une connexion Mysqlnd
  • MysqlndUhConnection::killConnection — Demande au serveur de tuer un thread MySQL
  • MysqlndUhConnection::listFields — Liste les champs d'une table MySQL
  • MysqlndUhConnection::listMethod — Gestionnaire pour des commandes
  • MysqlndUhConnection::moreResults — Vérifie s'il y a encore des résultats depuis une requête multiple
  • MysqlndUhConnection::nextResult — Prépare le prochain résultat depuis multi_query
  • MysqlndUhConnection::ping — Ping une connexion de serveur ou tente de se reconnecter si la connexion n'est plus disponible
  • MysqlndUhConnection::query — Exécute une requête sur la base de données
  • MysqlndUhConnection::queryReadResultsetHeader — Lit un en-tête de jeu de résultats
  • MysqlndUhConnection::reapQuery — Récupère le résultat depuis une requête asynchrone
  • MysqlndUhConnection::refreshServer — Rafraîchie ou réinitialise les tables et les caches
  • MysqlndUhConnection::restartPSession — Redémarre une connexion mysqlnd persistante
  • MysqlndUhConnection::selectDb — Sélectionne la base de données par défaut pour l'exécution des requêtes
  • MysqlndUhConnection::sendClose — Envoi une commande de fermeture à MySQL
  • MysqlndUhConnection::sendQuery — Envoi une requête à MySQL
  • MysqlndUhConnection::serverDumpDebugInformation — Extrait les informations de débogage dans les logs pour le serveur MySQL
  • MysqlndUhConnection::setAutocommit — Active ou désactive l'auto-commit de la base de données
  • MysqlndUhConnection::setCharset — Définit le jeu de caractères par défaut du client
  • MysqlndUhConnection::setClientOption — Définit une option du client
  • MysqlndUhConnection::setServerOption — Définit une option serveur
  • MysqlndUhConnection::shutdownServer — Le but de shutdownServer
  • MysqlndUhConnection::simpleCommand — Envoi une commande COM_*
  • MysqlndUhConnection::simpleCommandHandleResponse — Analyse une réponse d'une commande COM_* envoyée au client
  • MysqlndUhConnection::sslSet — Utilisé pour établir des connexions sécurisées utilisant SSL
  • MysqlndUhConnection::stmtInit — Initialise une requête et retourne une ressource à utiliser avec mysqli_statement::prepare
  • MysqlndUhConnection::storeResult — Transfère un jeu de résultats depuis la dernière requête
  • MysqlndUhConnection::txCommit — Valide la transaction courante
  • MysqlndUhConnection::txRollback — Annule la transaction courante
  • MysqlndUhConnection::useResult — Initialise un jeu de résultats récupéré


Change l'utilisateur de la connexion à la base de données mysqlnd spécifié

  • « MysqlndUhConnection
  • MysqlndUhConnection::charsetName »
  • PHP Manual
  • MysqlndUhConnection
  • Change l'utilisateur de la connexion à la base de données mysqlnd spécifié

MysqlndUhConnection::changeUser

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::changeUser — Change l'utilisateur de la connexion à la base de données mysqlnd spécifié

Description

public bool MysqlndUhConnection::changeUser ( mysqlnd_connection $connection , string $user , string $password , string $database , bool $silent , int $passwd_len )

Change l'utilisateur de la connexion à la base de données mysqlnd spécifié.

Liste de paramètres

connection

Gestionnaire de connexion mysqlnd. Ne pas modifier !

user

Le nom de l'utilisateur MySQL.

password

Le mot de passe MySQL.

database

La base de données MySQL à modifier.

silent

Contrôle si mysqlnd est autorisé à émettre des erreurs ou non.

passwd_len

Longueur du mot de passe MySQL.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::changeUser()

<?php
class proxy extends MysqlndUhConnection {
 /* Appel à connection::change_user */
 public function changeUser($res, $user, $passwd, $db, $silent, $passwd_len) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::changeUser($res, $user, $passwd, $db, $silent, $passwd_len);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
/* Installe le proxy/hooks à utiliser pour toutes les connexions mysqlnd futures */
mysqlnd_uh_set_connection_proxy(new proxy());

/* Crée une connexion mysqli en utilisant la bibliothèque mysqlnd */
$mysqli = new mysqli("localhost", "root", "", "test");

/* Exemple d'un appel API utilisateur qui utilise l'appel mysqlnd */
var_dump($mysqli->change_user("root", "bar", "test"));
?>

L'exemple ci-dessus va afficher :

proxy::changeUser(array (
  0 => NULL,
  1 => 'root',
  2 => 'bar',
  3 => 'test',
  4 => false,
  5 => 3,
))
proxy::changeUser returns false
bool(false)

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_change_user() - Change l'utilisateur de la connexion spécifiée


Récupère le jeu de caractères par défaut pour la connexion à la base de données

  • « MysqlndUhConnection::changeUser
  • MysqlndUhConnection::close »
  • PHP Manual
  • MysqlndUhConnection
  • Récupère le jeu de caractères par défaut pour la connexion à la base de données

MysqlndUhConnection::charsetName

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::charsetName — Récupère le jeu de caractères par défaut pour la connexion à la base de données

Description

public string MysqlndUhConnection::charsetName ( mysqlnd_connection $connection )

Récupère le jeu de caractères par défaut pour la connexion à la base de données.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Le jeu de caractères par défaut.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::charsetName()

<?php
class proxy extends MysqlndUhConnection {
  public function charsetName($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::charsetName($res);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump(mysqli_character_set_name($mysqli));
?>

L'exemple ci-dessus va afficher :

proxy::charsetName(array (
  0 => NULL,
))
proxy::charsetName retourne 'latin1'
string(6) "latin1"

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_character_set_name() - Retourne le jeu de caractères courant pour la connexion


Ferme une connexion existante à la base de données

  • « MysqlndUhConnection::charsetName
  • MysqlndUhConnection::connect »
  • PHP Manual
  • MysqlndUhConnection
  • Ferme une connexion existante à la base de données

MysqlndUhConnection::close

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::close — Ferme une connexion existante à la base de données

Description

public bool MysqlndUhConnection::close ( mysqlnd_connection $connection , int $close_type )

Ferme une connexion existante à la base de données.

Note:

L'échec lors de l'appel de l'implémentation du parent peut causer une fuite mémoire, voire un crash de PHP. Ce comportement n'est pas à considérer comme un bogue. Gardez à l'esprit que les fonctions de la bibliothèque mysqlnd n'ont jamais été conçues pour être exposées à l'espace utilisateur.

Liste de paramètres

connection

La connexion à fermer. Ne pas modifier !

close_type

La raison pour laquelle la connexion doit être fermée. La valeur de close_type est une constante parmi MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT, MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT, MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED ou MYSQLND_UH_MYSQLND_CLOSE_LAST. La dernière ne devrait jamais survenir, tant que le comportement par défaut de la bibliothèque mysqlnd n'a pas été changé par le plugin.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::close()

<?php
function close_type_to_string($close_type) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED => "MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED",
  MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT => "MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT",
  MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT => "MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT",
  MYSQLND_UH_MYSQLND_CLOSE_LAST => "MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT"
 );
 return (isset($mapping[$close_type])) ? $mapping[$close_type] : 'unknown';
}

class proxy extends MysqlndUhConnection {
  public function close($res, $close_type) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   printf("close_type = %s\n", close_type_to_string($close_type));
   /* ALERTE : vous devez appeler le parent */
   $ret = parent::close($res, $close_type);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->close();
?>

L'exemple ci-dessus va afficher :

proxy::close(array (
  0 => NULL,
  1 => 0,
))
close_type = MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT
proxy::close retourne true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_close() - Ferme une connexion
  • mysql_close() - Ferme la connexion MySQL


Ouvre une nouvelle connexion vers le serveur MySQL

  • « MysqlndUhConnection::close
  • MysqlndUhConnection::__construct »
  • PHP Manual
  • MysqlndUhConnection
  • Ouvre une nouvelle connexion vers le serveur MySQL

MysqlndUhConnection::connect

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::connect — Ouvre une nouvelle connexion vers le serveur MySQL

Description

public bool MysqlndUhConnection::connect ( mysqlnd_connection $connection , string $host , string $use" , string $password , string $database , int $port , string $socket , int $mysql_flags )

Ouvre une nouvelle connexion vers le serveur MySQL.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

host

Peut être soit le nom de l'hôte, ou l'adresse IP. Le fait de passer la valeur NULL ou la chaîne "localhost" à ce paramètre fera que l'hôte local sera supposé. Si possible, les pipes seront utilisés au lieu du protocole TCP/IP.

user

Le nom d'utilisateur MySQL.

password

Si non fourni ou vaut NULL, le serveur MySQL tentera d'authentifier l'utilisateur avec les utilisateurs ne possédant pas de mot de passe uniquement. Ceci permet à un seul utilisateur d'être utilisé avec différentes permissions (suivant si le mot de passe est fourni ou pas).

database

Si fourni, spécifie la base de données par défaut à utiliser pour l'exécution des requêtes.

port

Spécifie le numéro du port sur lequel la connexion doit s'effectuer sur le serveur MySQL.

socket

Spécifie le socket ou le pipe nommé à utiliser. Si vaut NULL, mysqlnd utilisera par défaut /tmp/mysql.sock.

mysql_flags

Options de connexion.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::connect()

<?php
class proxy extends MysqlndUhConnection {
 public function connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
?>

L'exemple ci-dessus va afficher :

proxy::connect(array (
  0 => NULL,
  1 => 'localhost',
  2 => 'root',
  3 => '',
  4 => 'test',
  5 => 3306,
  6 => NULL,
  7 => 131072,
))
proxy::connect retourne true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_connect() - Alias de mysqli::__construct
  • mysql_connect() - Ouvre une connexion à un serveur MySQL


Le but de __construct

  • « MysqlndUhConnection::connect
  • MysqlndUhConnection::endPSession »
  • PHP Manual
  • MysqlndUhConnection
  • Le but de __construct

MysqlndUhConnection::__construct

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::__construct — Le but de __construct

Description

public MysqlndUhConnection::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Ferme une connexion persistante

  • « MysqlndUhConnection::__construct
  • MysqlndUhConnection::escapeString »
  • PHP Manual
  • MysqlndUhConnection
  • Ferme une connexion persistante

MysqlndUhConnection::endPSession

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::endPSession — Ferme une connexion persistante

Description

public bool MysqlndUhConnection::endPSession ( mysqlnd_connection $connection )

Ferme une connexion persistante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::endPSession()

<?php
class proxy extends MysqlndUhConnection {
 public function endPSession($conn) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::endPSession($conn);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("p:localhost", "root", "", "test");
$mysqli->close();
?>

L'exemple ci-dessus va afficher :

proxy::endPSession(array (
  0 => NULL,
))
proxy::endPSession retourne true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd


Échappe les caractères spéciaux d'une chaîne dans le but d'être utilisée dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion

  • « MysqlndUhConnection::endPSession
  • MysqlndUhConnection::getAffectedRows »
  • PHP Manual
  • MysqlndUhConnection
  • Échappe les caractères spéciaux d'une chaîne dans le but d'être utilisée dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion

MysqlndUhConnection::escapeString

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::escapeString — Échappe les caractères spéciaux d'une chaîne dans le but d'être utilisée dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion

Description

public string MysqlndUhConnection::escapeString ( mysqlnd_connection $connection , string $escape_string )

Échappe les caractères spéciaux d'une chaîne dans le but d'être utilisée dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion.

Liste de paramètres

MYSQLND_UH_RES_MYSQLND_NAME

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

escape_string

La chaîne de caractères à échapper.

Valeurs de retour

La chaîne de caractères échappée.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::escapeString()

<?php
class proxy extends MysqlndUhConnection {
 public function escapeString($res, $string) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::escapeString($res, $string);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->set_charset("latin1");
$mysqli->real_escape_string("test0'test");
?>

L'exemple ci-dessus va afficher :

proxy::escapeString(array (
  0 => NULL,
  1 => 'test0\'test',
))
proxy::escapeString retourne 'test0\\\'test'

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_real_escape_string() - Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion
  • mysql_real_escape_string() - Protège une commande SQL de la présence de caractères spéciaux


Récupère le nombre de lignes affectées par la précédente opération MySQL

  • « MysqlndUhConnection::escapeString
  • MysqlndUhConnection::getErrorNumber »
  • PHP Manual
  • MysqlndUhConnection
  • Récupère le nombre de lignes affectées par la précédente opération MySQL

MysqlndUhConnection::getAffectedRows

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getAffectedRows — Récupère le nombre de lignes affectées par la précédente opération MySQL

Description

public int MysqlndUhConnection::getAffectedRows ( mysqlnd_connection $connection )

Récupère le nombre de lignes affectées par la précédente opération MySQL.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Le nombre de lignes affectées.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::getAffectedRows()

<?php
class proxy extends MysqlndUhConnection {
 public function getAffectedRows($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getAffectedRows($res);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1)");
var_dump($mysqli->affected_rows);
?>

L'exemple ci-dessus va afficher :

proxy::getAffectedRows(array (
  0 => NULL,
))
proxy::getAffectedRows retourne 1
int(1)

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_affected_rows() - Retourne le nombre de lignes affectées par la dernière opération MySQL
  • mysql_affected_rows() - Retourne le nombre de lignes affectées lors de la dernière opération MySQL


Retourne le code erreur du plus récent appel à une fonction

  • « MysqlndUhConnection::getAffectedRows
  • MysqlndUhConnection::getErrorString »
  • PHP Manual
  • MysqlndUhConnection
  • Retourne le code erreur du plus récent appel à une fonction

MysqlndUhConnection::getErrorNumber

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getErrorNumber — Retourne le code erreur du plus récent appel à une fonction

Description

public int MysqlndUhConnection::getErrorNumber ( mysqlnd_connection $connection )

Retourne le code erreur du plus récent appel à une fonction.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Le code erreur du plus récent appel à une fonction.

Exemples

MysqlndUhConnection::getErrorNumber() n'est pas seulement exécuter après l'invocation d'un appel API de l'espace utilisateur, mais peut aussi être appelé en interne.

Exemple #1 Exemple avec MysqlndUhConnection::getErrorNumber()

<?php
class proxy extends MysqlndUhConnection {
 public function getErrorNumber($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getErrorNumber($res);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

printf("connexion...\n");
$mysqli = new mysqli("localhost", "root", "", "test");
printf("requête...\n");
$mysqli->query("PLEASE_LET_THIS_BE_INVALID_SQL");
printf("code erreur...\n");
var_dump($mysqli->errno);
printf("fermeture...\n");
$mysqli->close();
?>

L'exemple ci-dessus va afficher :

connexion...
proxy::getErrorNumber(array (
  0 => NULL,
))
proxy::getErrorNumber returns 0
requête...
code erreur...
proxy::getErrorNumber(array (
  0 => NULL,
))
proxy::getErrorNumber retourne 1064
int(1064)
fermeture...

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • MysqlndUhConnection::getErrorString() - Retourne une description textuelle de la dernière erreur
  • mysqli_errno() - Retourne le dernier code d'erreur produit
  • mysql_errno() - Retourne le numéro d'erreur de la dernière commande MySQL


Retourne une description textuelle de la dernière erreur

  • « MysqlndUhConnection::getErrorNumber
  • MysqlndUhConnection::getFieldCount »
  • PHP Manual
  • MysqlndUhConnection
  • Retourne une description textuelle de la dernière erreur

MysqlndUhConnection::getErrorString

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getErrorString — Retourne une description textuelle de la dernière erreur

Description

public string MysqlndUhConnection::getErrorString ( mysqlnd_connection $connection )

Retourne une description textuelle de la dernière erreur.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

La description textuelle de l'erreur du dernier appel à une fonction.

Exemples

MysqlndUhConnection::getErrorString() n'est pas seulement exécuté par un appel API de l'espace utilisateur, mais aussi en interne.

Exemple #1 Exemple avec MysqlndUhConnection::getErrorString()

<?php
class proxy extends MysqlndUhConnection {
 public function getErrorString($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getErrorString($res);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

printf("connexion...\n");
$mysqli = new mysqli("localhost", "root", "", "test");
printf("requête...\n");
$mysqli->query("WILL_I_EVER_LEARN_SQL?");
printf("Message d'erreur...\n");
var_dump($mysqli->error);
printf("fermeture...\n");
$mysqli->close();
?>

L'exemple ci-dessus va afficher :

connexion...
proxy::getErrorString(array (
  0 => NULL,
))
proxy::getErrorString returns ''
requête...
Message d'erreur...
proxy::getErrorString(array (
  0 => NULL,
))
proxy::getErrorString retourne 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'WILL_I_EVER_LEARN_SQL?\' at line 1'
string(168) "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WILL_I_EVER_LEARN_SQL?' at line 1"
close...

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • MysqlndUhConnection::getErrorNumber() - Retourne le code erreur du plus récent appel à une fonction
  • mysqli_error() - Retourne une chaîne décrivant la dernière erreur
  • mysql_error() - Retourne le texte associé avec l'erreur générée lors de la dernière requête


Retourne le nombre de colonnes contenu dans la dernière requête

  • « MysqlndUhConnection::getErrorString
  • MysqlndUhConnection::getHostInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Retourne le nombre de colonnes contenu dans la dernière requête

MysqlndUhConnection::getFieldCount

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getFieldCount — Retourne le nombre de colonnes contenu dans la dernière requête

Description

public int MysqlndUhConnection::getFieldCount ( mysqlnd_connection $connection )

Retourne le nombre de colonnes contenu dans la dernière requête.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Le nombre de colonnes.

Exemples

MysqlndUhConnection::getFieldCount() n'est pas seulement exécuté après un appel API de l'espace utilisateur, mais aussi en interne.

Exemple #1 Exemple avec MysqlndUhConnection::getFieldCount()

<?php
class proxy extends MysqlndUhConnection {
 public function getFieldCount($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getFieldCount($res);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("WILL_I_EVER_LEARN_SQL?");
var_dump($mysqli->field_count);
$mysqli->query("SELECT 1, 2, 3 FROM DUAL");
var_dump($mysqli->field_count);
?>

L'exemple ci-dessus va afficher :

proxy::getFieldCount(array (
  0 => NULL,
))
proxy::getFieldCount retourne 0
int(0)
proxy::getFieldCount(array (
  0 => NULL,
))
proxy::getFieldCount retourne 3
proxy::getFieldCount(array (
  0 => NULL,
))
proxy::getFieldCount retourne 3
int(3)

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_field_count() - Retourne le nombre de colonnes pour la dernière requête


Retourne une chaîne représentant le type de connexion utilisé

  • « MysqlndUhConnection::getFieldCount
  • MysqlndUhConnection::getLastInsertId »
  • PHP Manual
  • MysqlndUhConnection
  • Retourne une chaîne représentant le type de connexion utilisé

MysqlndUhConnection::getHostInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getHostInformation — Retourne une chaîne représentant le type de connexion utilisé

Description

public string MysqlndUhConnection::getHostInformation ( mysqlnd_connection $connection )

Retourne une chaîne représentant le type de connexion utilisé.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

La description de la connexion.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::getHostInformation()

<?php
class proxy extends MysqlndUhConnection {
 public function getHostInformation($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getHostInformation($res);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->host_info);
?>

L'exemple ci-dessus va afficher :

proxy::getHostInformation(array (
  0 => NULL,
))
proxy::getHostInformation retourne 'Localhost via UNIX socket'
string(25) "Localhost via UNIX socket"

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_get_host_info() - Retourne une chaîne contenant le type de connexion utilisée
  • mysql_get_host_info() - Lit les informations sur l'hôte MySQL


Retourne l'identifiant auto-généré utilisé dans la dernière requête

  • « MysqlndUhConnection::getHostInformation
  • MysqlndUhConnection::getLastMessage »
  • PHP Manual
  • MysqlndUhConnection
  • Retourne l'identifiant auto-généré utilisé dans la dernière requête

MysqlndUhConnection::getLastInsertId

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getLastInsertId — Retourne l'identifiant auto-généré utilisé dans la dernière requête

Description

public int MysqlndUhConnection::getLastInsertId ( mysqlnd_connection $connection )

Retourne l'identifiant auto-généré utilisé dans la dernière requête.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

L'identifiant de la dernière insertion.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::getLastInsertId()

<?php
class proxy extends MysqlndUhConnection {
 public function getLastInsertId($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getLastInsertId($res);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT AUTO_INCREMENT PRIMARY KEY, col VARCHAR(255))");
$mysqli->query("INSERT INTO test(col) VALUES ('a')");
var_dump($mysqli->insert_id);
?>

L'exemple ci-dessus va afficher :

proxy::getLastInsertId(array (
  0 => NULL,
))
proxy::getLastInsertId retourne 1
int(1)

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_insert_id() - Retourne l'identifiant automatiquement généré par la dernière requête
  • mysql_insert_id() - Retourne l'identifiant généré par la dernière requête


Récupère les informations concernant la dernière requête exécutée

  • « MysqlndUhConnection::getLastInsertId
  • MysqlndUhConnection::getProtocolInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Récupère les informations concernant la dernière requête exécutée

MysqlndUhConnection::getLastMessage

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getLastMessage — Récupère les informations concernant la dernière requête exécutée

Description

public void MysqlndUhConnection::getLastMessage ( mysqlnd_connection $connection )

Récupère les informations concernant la dernière requête exécutée.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Le dernier message. La tentative de retourner une chaîne plus longue que 511 octets produira une erreur de type E_WARNING et le résultat sera tronqué.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::getLastMessage()

<?php
class proxy extends MysqlndUhConnection {
 public function getLastMessage($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getLastMessage($res);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->info);
$mysqli->query("DROP TABLE IF EXISTS test");
var_dump($mysqli->info);
?>

L'exemple ci-dessus va afficher :

proxy::getLastMessage(array (
  0 => NULL,
))
proxy::getLastMessage retourne ''
string(0) ""
proxy::getLastMessage(array (
  0 => NULL,
))
proxy::getLastMessage retourne ''
string(0) ""

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_info() - Retourne des informations à propos de la dernière requête exécutée
  • mysql_info() - Lit des informations à propos de la dernière requête MySQL


Retourne la version du protocole MySQL utilisé

  • « MysqlndUhConnection::getLastMessage
  • MysqlndUhConnection::getServerInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Retourne la version du protocole MySQL utilisé

MysqlndUhConnection::getProtocolInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getProtocolInformation — Retourne la version du protocole MySQL utilisé

Description

public string MysqlndUhConnection::getProtocolInformation ( mysqlnd_connection $connection )

Retourne la version du protocole MySQL utilisé.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

La version du protocole.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::getProtocolInformation()

<?php
class proxy extends MysqlndUhConnection {
 public function getProtocolInformation($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getProtocolInformation($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->protocol_version);
?>

L'exemple ci-dessus va afficher :

proxy::getProtocolInformation(array (
  0 => NULL,
))
proxy::getProtocolInformation retourne 10
int(10)

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_get_proto_info() - Retourne la version du protocole MySQL utilisé
  • mysql_get_proto_info() - Lit les informations sur le protocole MySQL


Retourne la version du serveur MySQL

  • « MysqlndUhConnection::getProtocolInformation
  • MysqlndUhConnection::getServerStatistics »
  • PHP Manual
  • MysqlndUhConnection
  • Retourne la version du serveur MySQL

MysqlndUhConnection::getServerInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getServerInformation — Retourne la version du serveur MySQL

Description

public string MysqlndUhConnection::getServerInformation ( mysqlnd_connection $connection )

Retourne la version du serveur MySQL.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

La version du serveur.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::getServerInformation()

<?php
class proxy extends MysqlndUhConnection {
 public function getServerInformation($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getServerInformation($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->server_info);
?>

L'exemple ci-dessus va afficher :

proxy::getServerInformation(array (
  0 => NULL,
))
proxy::getServerInformation retourne '5.1.45-debug-log'
string(16) "5.1.45-debug-log"

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_get_server_info() - Retourne la version du serveur MySQL
  • mysql_get_server_info() - Lit les informations sur le serveur MySQL


Récupère le statut du système courant

  • « MysqlndUhConnection::getServerInformation
  • MysqlndUhConnection::getServerVersion »
  • PHP Manual
  • MysqlndUhConnection
  • Récupère le statut du système courant

MysqlndUhConnection::getServerStatistics

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getServerStatistics — Récupère le statut du système courant

Description

public string MysqlndUhConnection::getServerStatistics ( mysqlnd_connection $connection )

Récupère le statut du système courant.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Le message décrivant le statut du système.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::getServerStatistics()

<?php
class proxy extends MysqlndUhConnection {
 public function getServerStatistics($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getServerStatistics($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump(mysqli_stat($mysqli));
?>

L'exemple ci-dessus va afficher :

proxy::getServerStatistics(array (
  0 => NULL,
))
proxy::getServerStatistics retourne 'Uptime: 2059995  Threads: 1  Questions: 126157  Slow queries: 0  Opens: 6377  Flush tables: 1  Open tables: 18  Queries per second avg: 0.61'
string(140) "Uptime: 2059995  Threads: 1  Questions: 126157  Slow queries: 0  Opens: 6377  Flush tables: 1  Open tables: 18  Queries per second avg: 0.61"

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_stat() - Obtient le statut courant du système
  • mysql_stat() - Retourne le statut courant du serveur MySQL


Retourne la version du serveur MySQL sous la forme d'un entier

  • « MysqlndUhConnection::getServerStatistics
  • MysqlndUhConnection::getSqlstate »
  • PHP Manual
  • MysqlndUhConnection
  • Retourne la version du serveur MySQL sous la forme d'un entier

MysqlndUhConnection::getServerVersion

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getServerVersion — Retourne la version du serveur MySQL sous la forme d'un entier

Description

public int MysqlndUhConnection::getServerVersion ( mysqlnd_connection $connection )

Retourne la version du serveur MySQL sous la forme d'un entier.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

La version MySQL.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::getServerVersion()

<?php
class proxy extends MysqlndUhConnection {
 public function getServerVersion($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getServerVersion($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->server_version);
?>

L'exemple ci-dessus va afficher :

proxy::getServerVersion(array (
  0 => NULL,
))
proxy::getServerVersion retourne 50145
int(50145)

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_get_server_version() - Retourne un entier représentant la version du serveur MySQL
  • mysql_get_server_version()


Retourne l'erreur SQLSTATE depuis la dernière opération MySQL

  • « MysqlndUhConnection::getServerVersion
  • MysqlndUhConnection::getStatistics »
  • PHP Manual
  • MysqlndUhConnection
  • Retourne l'erreur SQLSTATE depuis la dernière opération MySQL

MysqlndUhConnection::getSqlstate

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getSqlstate — Retourne l'erreur SQLSTATE depuis la dernière opération MySQL

Description

public string MysqlndUhConnection::getSqlstate ( mysqlnd_connection $connection )

Retourne l'erreur SQLSTATE depuis la dernière opération MySQL.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Le code SQLSTATE.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::getSqlstate()

<?php
class proxy extends MysqlndUhConnection {
 public function getSqlstate($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getSqlstate($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->sqlstate);
$mysqli->query("AN_INVALID_REQUEST_TO_PROVOKE_AN_ERROR");
var_dump($mysqli->sqlstate);
?>

L'exemple ci-dessus va afficher :

proxy::getSqlstate(array (
  0 => NULL,
))
proxy::getSqlstate retourne '00000'
string(5) "00000"
proxy::getSqlstate(array (
  0 => NULL,
))
proxy::getSqlstate retourne '42000'
string(5) "42000"

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_sql_state()


Retourne les statistiques sur la connexion cliente

  • « MysqlndUhConnection::getSqlstate
  • MysqlndUhConnection::getThreadId »
  • PHP Manual
  • MysqlndUhConnection
  • Retourne les statistiques sur la connexion cliente

MysqlndUhConnection::getStatistics

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getStatistics — Retourne les statistiques sur la connexion cliente

Description

public array MysqlndUhConnection::getStatistics ( mysqlnd_connection $connection )

Retourne les statistiques sur la connexion cliente.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

connection

Le gestionnaire de connexion MySQL. Ne pas modifier !

Valeurs de retour

Les statistiques de connexion collectées par mysqlnd.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::getStatistics()

<?php
class proxy extends MysqlndUhConnection {
 public function getStatistics($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getStatistics($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->get_connection_stats());
?>

L'exemple ci-dessus va afficher :

proxy::getStatistics(array (
  0 => NULL,
))
proxy::getStatistics retourne array (
  'bytes_sent' => '73',
  'bytes_received' => '77',
  'packets_sent' => '2',
  'packets_received' => '2',
  'protocol_overhead_in' => '8',
  'protocol_overhead_out' => '8',
  'bytes_received_ok_packet' => '0',
  'bytes_received_eof_packet' => '0',
  'bytes_received_rset_header_packet' => '0',
  'bytes_received_rset_field_meta_packet' => '0',
  'bytes_received_rset_row_packet' => '0',
  'bytes_received_prepare_response_packet' => '0',
  'bytes_received_change_user_packet' => '0',
  'packets_sent_command' => '0',
  'packets_received_ok' => '0',
  'packets_received_eof' => '0',
  'packets_received_rset_header' => '0',
  'packets_received_rset_field_meta' => '0',
  'packets_received_rset_row' => '0',
  'packets_received_prepare_response' => '0',
  'packets_received_change_user' => '0',
  'result_set_queries' => '0',
  'non_result_set_queries' => '0',
  'no_index_used' => '0',
  'bad_index_used' => '0',
  'slow_queries' => '0',
  'buffered_sets' => '0',
  'unbuffered_sets' => '0',
  'ps_buffered_sets' => '0',
  'ps_unbuffered_sets' => '0',
  'flushed_normal_sets' => '0',
  'flushed_ps_sets' => '0',
  'ps_prepared_never_executed' => '0',
  'ps_prepared_once_executed' => '0',
  'rows_fetched_from_server_normal' => '0',
  'rows_fetched_from_server_ps' => '0',
  'rows_buffered_from_client_normal' => '0',
  'rows_buffered_from_client_ps' => '0',
  'rows_fetched_from_client_normal_buffered' => '0',
  'rows_fetched_from_client_normal_unbuffered' => '0',
  'rows_fetched_from_client_ps_buffered' => '0',
  'rows_fetched_from_client_ps_unbuffered' => '0',
  'rows_fetched_from_client_ps_cursor' => '0',
  'rows_affected_normal' => '0',
  'rows_affected_ps' => '0',
  'rows_skipped_normal' => '0',
  'rows_skipped_ps' => '0',
  'copy_on_write_saved' => '0',
  'copy_on_write_performed' => '0',
  'command_buffer_too_small' => '0',
  'connect_success' => '1',
  'connect_failure' => '0',
  'connection_reused' => '0',
  'reconnect' => '0',
  'pconnect_success' => '0',
  'active_connections' => '1',
  'active_persistent_connections' => '0',
  'explicit_close' => '0',
  'implicit_close' => '0',
  'disconnect_close' => '0',
  'in_middle_of_command_close' => '0',
  'explicit_free_result' => '0',
  'implicit_free_result' => '0',
  'explicit_stmt_close' => '0',
  'implicit_stmt_close' => '0',
  'mem_emalloc_count' => '0',
  'mem_emalloc_amount' => '0',
  'mem_ecalloc_count' => '0',
  'mem_ecalloc_amount' => '0',
  'mem_erealloc_count' => '0',
  'mem_erealloc_amount' => '0',
  'mem_efree_count' => '0',
  'mem_efree_amount' => '0',
  'mem_malloc_count' => '0',
  'mem_malloc_amount' => '0',
  'mem_calloc_count' => '0',
  'mem_calloc_amount' => '0',
  'mem_realloc_count' => '0',
  'mem_realloc_amount' => '0',
  'mem_free_count' => '0',
  'mem_free_amount' => '0',
  'mem_estrndup_count' => '0',
  'mem_strndup_count' => '0',
  'mem_estndup_count' => '0',
  'mem_strdup_count' => '0',
  'proto_text_fetched_null' => '0',
  'proto_text_fetched_bit' => '0',
  'proto_text_fetched_tinyint' => '0',
  'proto_text_fetched_short' => '0',
  'proto_text_fetched_int24' => '0',
  'proto_text_fetched_int' => '0',
  'proto_text_fetched_bigint' => '0',
  'proto_text_fetched_decimal' => '0',
  'proto_text_fetched_float' => '0',
  'proto_text_fetched_double' => '0',
  'proto_text_fetched_date' => '0',
  'proto_text_fetched_year' => '0',
  'proto_text_fetched_time' => '0',
  'proto_text_fetched_datetime' => '0',
  'proto_text_fetched_timestamp' => '0',
  'proto_text_fetched_string' => '0',
  'proto_text_fetched_blob' => '0',
  'proto_text_fetched_enum' => '0',
  'proto_text_fetched_set' => '0',
  'proto_text_fetched_geometry' => '0',
  'proto_text_fetched_other' => '0',
  'proto_binary_fetched_null' => '0',
  'proto_binary_fetched_bit' => '0',
  'proto_binary_fetched_tinyint' => '0',
  'proto_binary_fetched_short' => '0',
  'proto_binary_fetched_int24' => '0',
  'proto_binary_fetched_int' => '0',
  'proto_binary_fetched_bigint' => '0',
  'proto_binary_fetched_decimal' => '0',
  'proto_binary_fetched_float' => '0',
  'proto_binary_fetched_double' => '0',
  'proto_binary_fetched_date' => '0',
  'proto_binary_fetched_year' => '0',
  'proto_binary_fetched_time' => '0',
  'proto_binary_fetched_datetime' => '0',
  'proto_binary_fetched_timestamp' => '0',
  'proto_binary_fetched_string' => '0',
  'proto_binary_fetched_blob' => '0',
  'proto_binary_fetched_enum' => '0',
  'proto_binary_fetched_set' => '0',
  'proto_binary_fetched_geometry' => '0',
  'proto_binary_fetched_other' => '0',
  'init_command_executed_count' => '0',
  'init_command_failed_count' => '0',
  'com_quit' => '0',
  'com_init_db' => '0',
  'com_query' => '0',
  'com_field_list' => '0',
  'com_create_db' => '0',
  'com_drop_db' => '0',
  'com_refresh' => '0',
  'com_shutdown' => '0',
  'com_statistics' => '0',
  'com_process_info' => '0',
  'com_connect' => '0',
  'com_process_kill' => '0',
  'com_debug' => '0',
  'com_ping' => '0',
  'com_time' => '0',
  'com_delayed_insert' => '0',
  'com_change_user' => '0',
  'com_binlog_dump' => '0',
  'com_table_dump' => '0',
  'com_connect_out' => '0',
  'com_register_slave' => '0',
  'com_stmt_prepare' => '0',
  'com_stmt_execute' => '0',
  'com_stmt_send_long_data' => '0',
  'com_stmt_close' => '0',
  'com_stmt_reset' => '0',
  'com_stmt_set_option' => '0',
  'com_stmt_fetch' => '0',
  'com_deamon' => '0',
  'bytes_received_real_data_normal' => '0',
  'bytes_received_real_data_ps' => '0',
)
array(160) {
  ["bytes_sent"]=>
  string(2) "73"
  ["bytes_received"]=>
  string(2) "77"
  ["packets_sent"]=>
  string(1) "2"
  ["packets_received"]=>
  string(1) "2"
  ["protocol_overhead_in"]=>
  string(1) "8"
  ["protocol_overhead_out"]=>
  string(1) "8"
  ["bytes_received_ok_packet"]=>
  string(1) "0"
  ["bytes_received_eof_packet"]=>
  string(1) "0"
  ["bytes_received_rset_header_packet"]=>
  string(1) "0"
  ["bytes_received_rset_field_meta_packet"]=>
  string(1) "0"
  ["bytes_received_rset_row_packet"]=>
  string(1) "0"
  ["bytes_received_prepare_response_packet"]=>
  string(1) "0"
  ["bytes_received_change_user_packet"]=>
  string(1) "0"
  ["packets_sent_command"]=>
  string(1) "0"
  ["packets_received_ok"]=>
  string(1) "0"
  ["packets_received_eof"]=>
  string(1) "0"
  ["packets_received_rset_header"]=>
  string(1) "0"
  ["packets_received_rset_field_meta"]=>
  string(1) "0"
  ["packets_received_rset_row"]=>
  string(1) "0"
  ["packets_received_prepare_response"]=>
  string(1) "0"
  ["packets_received_change_user"]=>
  string(1) "0"
  ["result_set_queries"]=>
  string(1) "0"
  ["non_result_set_queries"]=>
  string(1) "0"
  ["no_index_used"]=>
  string(1) "0"
  ["bad_index_used"]=>
  string(1) "0"
  ["slow_queries"]=>
  string(1) "0"
  ["buffered_sets"]=>
  string(1) "0"
  ["unbuffered_sets"]=>
  string(1) "0"
  ["ps_buffered_sets"]=>
  string(1) "0"
  ["ps_unbuffered_sets"]=>
  string(1) "0"
  ["flushed_normal_sets"]=>
  string(1) "0"
  ["flushed_ps_sets"]=>
  string(1) "0"
  ["ps_prepared_never_executed"]=>
  string(1) "0"
  ["ps_prepared_once_executed"]=>
  string(1) "0"
  ["rows_fetched_from_server_normal"]=>
  string(1) "0"
  ["rows_fetched_from_server_ps"]=>
  string(1) "0"
  ["rows_buffered_from_client_normal"]=>
  string(1) "0"
  ["rows_buffered_from_client_ps"]=>
  string(1) "0"
  ["rows_fetched_from_client_normal_buffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_normal_unbuffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_ps_buffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_ps_unbuffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_ps_cursor"]=>
  string(1) "0"
  ["rows_affected_normal"]=>
  string(1) "0"
  ["rows_affected_ps"]=>
  string(1) "0"
  ["rows_skipped_normal"]=>
  string(1) "0"
  ["rows_skipped_ps"]=>
  string(1) "0"
  ["copy_on_write_saved"]=>
  string(1) "0"
  ["copy_on_write_performed"]=>
  string(1) "0"
  ["command_buffer_too_small"]=>
  string(1) "0"
  ["connect_success"]=>
  string(1) "1"
  ["connect_failure"]=>
  string(1) "0"
  ["connection_reused"]=>
  string(1) "0"
  ["reconnect"]=>
  string(1) "0"
  ["pconnect_success"]=>
  string(1) "0"
  ["active_connections"]=>
  string(1) "1"
  ["active_persistent_connections"]=>
  string(1) "0"
  ["explicit_close"]=>
  string(1) "0"
  ["implicit_close"]=>
  string(1) "0"
  ["disconnect_close"]=>
  string(1) "0"
  ["in_middle_of_command_close"]=>
  string(1) "0"
  ["explicit_free_result"]=>
  string(1) "0"
  ["implicit_free_result"]=>
  string(1) "0"
  ["explicit_stmt_close"]=>
  string(1) "0"
  ["implicit_stmt_close"]=>
  string(1) "0"
  ["mem_emalloc_count"]=>
  string(1) "0"
  ["mem_emalloc_amount"]=>
  string(1) "0"
  ["mem_ecalloc_count"]=>
  string(1) "0"
  ["mem_ecalloc_amount"]=>
  string(1) "0"
  ["mem_erealloc_count"]=>
  string(1) "0"
  ["mem_erealloc_amount"]=>
  string(1) "0"
  ["mem_efree_count"]=>
  string(1) "0"
  ["mem_efree_amount"]=>
  string(1) "0"
  ["mem_malloc_count"]=>
  string(1) "0"
  ["mem_malloc_amount"]=>
  string(1) "0"
  ["mem_calloc_count"]=>
  string(1) "0"
  ["mem_calloc_amount"]=>
  string(1) "0"
  ["mem_realloc_count"]=>
  string(1) "0"
  ["mem_realloc_amount"]=>
  string(1) "0"
  ["mem_free_count"]=>
  string(1) "0"
  ["mem_free_amount"]=>
  string(1) "0"
  ["mem_estrndup_count"]=>
  string(1) "0"
  ["mem_strndup_count"]=>
  string(1) "0"
  ["mem_estndup_count"]=>
  string(1) "0"
  ["mem_strdup_count"]=>
  string(1) "0"
  ["proto_text_fetched_null"]=>
  string(1) "0"
  ["proto_text_fetched_bit"]=>
  string(1) "0"
  ["proto_text_fetched_tinyint"]=>
  string(1) "0"
  ["proto_text_fetched_short"]=>
  string(1) "0"
  ["proto_text_fetched_int24"]=>
  string(1) "0"
  ["proto_text_fetched_int"]=>
  string(1) "0"
  ["proto_text_fetched_bigint"]=>
  string(1) "0"
  ["proto_text_fetched_decimal"]=>
  string(1) "0"
  ["proto_text_fetched_float"]=>
  string(1) "0"
  ["proto_text_fetched_double"]=>
  string(1) "0"
  ["proto_text_fetched_date"]=>
  string(1) "0"
  ["proto_text_fetched_year"]=>
  string(1) "0"
  ["proto_text_fetched_time"]=>
  string(1) "0"
  ["proto_text_fetched_datetime"]=>
  string(1) "0"
  ["proto_text_fetched_timestamp"]=>
  string(1) "0"
  ["proto_text_fetched_string"]=>
  string(1) "0"
  ["proto_text_fetched_blob"]=>
  string(1) "0"
  ["proto_text_fetched_enum"]=>
  string(1) "0"
  ["proto_text_fetched_set"]=>
  string(1) "0"
  ["proto_text_fetched_geometry"]=>
  string(1) "0"
  ["proto_text_fetched_other"]=>
  string(1) "0"
  ["proto_binary_fetched_null"]=>
  string(1) "0"
  ["proto_binary_fetched_bit"]=>
  string(1) "0"
  ["proto_binary_fetched_tinyint"]=>
  string(1) "0"
  ["proto_binary_fetched_short"]=>
  string(1) "0"
  ["proto_binary_fetched_int24"]=>
  string(1) "0"
  ["proto_binary_fetched_int"]=>
  string(1) "0"
  ["proto_binary_fetched_bigint"]=>
  string(1) "0"
  ["proto_binary_fetched_decimal"]=>
  string(1) "0"
  ["proto_binary_fetched_float"]=>
  string(1) "0"
  ["proto_binary_fetched_double"]=>
  string(1) "0"
  ["proto_binary_fetched_date"]=>
  string(1) "0"
  ["proto_binary_fetched_year"]=>
  string(1) "0"
  ["proto_binary_fetched_time"]=>
  string(1) "0"
  ["proto_binary_fetched_datetime"]=>
  string(1) "0"
  ["proto_binary_fetched_timestamp"]=>
  string(1) "0"
  ["proto_binary_fetched_string"]=>
  string(1) "0"
  ["proto_binary_fetched_blob"]=>
  string(1) "0"
  ["proto_binary_fetched_enum"]=>
  string(1) "0"
  ["proto_binary_fetched_set"]=>
  string(1) "0"
  ["proto_binary_fetched_geometry"]=>
  string(1) "0"
  ["proto_binary_fetched_other"]=>
  string(1) "0"
  ["init_command_executed_count"]=>
  string(1) "0"
  ["init_command_failed_count"]=>
  string(1) "0"
  ["com_quit"]=>
  string(1) "0"
  ["com_init_db"]=>
  string(1) "0"
  ["com_query"]=>
  string(1) "0"
  ["com_field_list"]=>
  string(1) "0"
  ["com_create_db"]=>
  string(1) "0"
  ["com_drop_db"]=>
  string(1) "0"
  ["com_refresh"]=>
  string(1) "0"
  ["com_shutdown"]=>
  string(1) "0"
  ["com_statistics"]=>
  string(1) "0"
  ["com_process_info"]=>
  string(1) "0"
  ["com_connect"]=>
  string(1) "0"
  ["com_process_kill"]=>
  string(1) "0"
  ["com_debug"]=>
  string(1) "0"
  ["com_ping"]=>
  string(1) "0"
  ["com_time"]=>
  string(1) "0"
  ["com_delayed_insert"]=>
  string(1) "0"
  ["com_change_user"]=>
  string(1) "0"
  ["com_binlog_dump"]=>
  string(1) "0"
  ["com_table_dump"]=>
  string(1) "0"
  ["com_connect_out"]=>
  string(1) "0"
  ["com_register_slave"]=>
  string(1) "0"
  ["com_stmt_prepare"]=>
  string(1) "0"
  ["com_stmt_execute"]=>
  string(1) "0"
  ["com_stmt_send_long_data"]=>
  string(1) "0"
  ["com_stmt_close"]=>
  string(1) "0"
  ["com_stmt_reset"]=>
  string(1) "0"
  ["com_stmt_set_option"]=>
  string(1) "0"
  ["com_stmt_fetch"]=>
  string(1) "0"
  ["com_deamon"]=>
  string(1) "0"
  ["bytes_received_real_data_normal"]=>
  string(1) "0"
  ["bytes_received_real_data_ps"]=>
  string(1) "0"
}

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_get_connection_stats() - Retourne des statistiques sur la connexion


Retourne l'identifiant du thread pour la connexion courante

  • « MysqlndUhConnection::getStatistics
  • MysqlndUhConnection::getWarningCount »
  • PHP Manual
  • MysqlndUhConnection
  • Retourne l'identifiant du thread pour la connexion courante

MysqlndUhConnection::getThreadId

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getThreadId — Retourne l'identifiant du thread pour la connexion courante

Description

public int MysqlndUhConnection::getThreadId ( mysqlnd_connection $connection )

Retourne l'identifiant du thread de la connexion courante.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

L'identifiant du thread de la connexion.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::getThreadId()

<?php
class proxy extends MysqlndUhConnection {
 public function getThreadId($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getThreadId($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->thread_id);
?>

L'exemple ci-dessus va afficher :

proxy::getThreadId(array (
  0 => NULL,
))
proxy::getThreadId retourne 27646
int(27646)

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_thread_id() - Retourne l'identifiant du thread pour la connexion courante
  • mysql_thread_id() - Retourne l'identifiant du thread MySQL courant


Retourne le nombre d'alertes depuis la dernière requête

  • « MysqlndUhConnection::getThreadId
  • MysqlndUhConnection::init »
  • PHP Manual
  • MysqlndUhConnection
  • Retourne le nombre d'alertes depuis la dernière requête

MysqlndUhConnection::getWarningCount

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getWarningCount — Retourne le nombre d'alertes depuis la dernière requête

Description

public int MysqlndUhConnection::getWarningCount ( mysqlnd_connection $connection )

Retourne le nombre d'alertes depuis la dernière requête.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Le nombre d'alertes.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::getWarningCount()

<?php
class proxy extends MysqlndUhConnection {
 public function getWarningCount($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getWarningCount($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->warning_count);
?>

L'exemple ci-dessus va afficher :

proxy::getWarningCount(array (
  0 => NULL,
))
proxy::getWarningCount retourne 0
int(0)

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_warning_count() - Retourne le nombre d'avertissements générés par la dernière requête


Initialise une connexion Mysqlnd

  • « MysqlndUhConnection::getWarningCount
  • MysqlndUhConnection::killConnection »
  • PHP Manual
  • MysqlndUhConnection
  • Initialise une connexion Mysqlnd

MysqlndUhConnection::init

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::init — Initialise une connexion Mysqlnd

Description

public bool MysqlndUhConnection::init ( mysqlnd_connection $connection )

Initialise une connexion Mysqlnd. C'est un appel interne à Mysqlnd pour initialiser l'objet de connexion.

Note:

L'échec dans l'appel de l'implémentation parent peut cause une fuite mémoire ou un crash de PHP. C'est n'est pas considéré comme un bogue. Gardez à l'esprit que les fonctions de la bibliothèque mysqlnd n'ont jamais été prévu à être exposées à l'espace utilisateur.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::init()

<?php
class proxy extends MysqlndUhConnection {
 public function init($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::init($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
?>

L'exemple ci-dessus va afficher :

proxy::init(array (
  0 => NULL,
))
proxy::init retourne true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd


Demande au serveur de tuer un thread MySQL

  • « MysqlndUhConnection::init
  • MysqlndUhConnection::listFields »
  • PHP Manual
  • MysqlndUhConnection
  • Demande au serveur de tuer un thread MySQL

MysqlndUhConnection::killConnection

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::killConnection — Demande au serveur de tuer un thread MySQL

Description

public bool MysqlndUhConnection::killConnection ( mysqlnd_connection $connection , int $pid )

Demande au serveur de tuer un thread MySQL.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

pid

L'identifiant du thread de connexion à tuer.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::kill()

<?php
class proxy extends MysqlndUhConnection {
 public function killConnection($res, $pid) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::killConnection($res, $pid);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->kill($mysqli->thread_id);
?>

L'exemple ci-dessus va afficher :

proxy::killConnection(array (
  0 => NULL,
  1 => 27650,
))
proxy::killConnection retourne true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_kill() - Demande au serveur de terminer un thread MySQL


Liste les champs d'une table MySQL

  • « MysqlndUhConnection::killConnection
  • MysqlndUhConnection::listMethod »
  • PHP Manual
  • MysqlndUhConnection
  • Liste les champs d'une table MySQL

MysqlndUhConnection::listFields

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::listFields — Liste les champs d'une table MySQL

Description

public array MysqlndUhConnection::listFields ( mysqlnd_connection $connection , string $table , string $achtung_wild )

Liste les champs d'une table MySQL.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

connection

Le gestionnaire de connexion Mysqlnd. Ne pas modifier !

table

Le nom de la table à requêter.

pattern

Masque pour le nom.

Valeurs de retour

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::listFields()

<?php
class proxy extends MysqlndUhConnection {
 public function listFields($res, $table, $pattern) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::listFields($res, $table, $pattern);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysql = mysql_connect("localhost", "root", "");
mysql_select_db("test", $mysql);
mysql_query("DROP TABLE IF EXISTS test_a", $mysql);
mysql_query("CREATE TABLE test_a(id INT, col1 VARCHAR(255))", $mysql);
$res = mysql_list_fields("test", "test_a", $mysql);
printf("num_rows = %d\n", mysql_num_rows($res));
while ($row = mysql_fetch_assoc($res))
 var_dump($row);
?>

L'exemple ci-dessus va afficher :

proxy::listFields(array (
  0 => NULL,
  1 => 'test_a',
  2 => '',
))
proxy::listFields retourne NULL
num_rows = 0

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysql_list_fields() - Liste les champs d'une table MySQL


Gestionnaire pour des commandes

  • « MysqlndUhConnection::listFields
  • MysqlndUhConnection::moreResults »
  • PHP Manual
  • MysqlndUhConnection
  • Gestionnaire pour des commandes

MysqlndUhConnection::listMethod

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::listMethod — Gestionnaire pour des commandes

Description

public void MysqlndUhConnection::listMethod ( mysqlnd_connection $connection , string $query , string $achtung_wild , string $par1 )

Gestionnaire pour des commandes.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

query

Commande SHOW à exécuter.

achtung_wild

par1

Valeurs de retour

Valeurs de retour

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::listMethod()

<?php
class proxy extends MysqlndUhConnection {
 public function listMethod($res, $query, $pattern, $par1) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::listMethod($res, $query, $pattern, $par1);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysql = mysql_connect("localhost", "root", "");
$res = mysql_list_dbs($mysql);
printf("num_rows = %d\n", mysql_num_rows($res));
while ($row = mysql_fetch_assoc($res))
 var_dump($row);
?>

L'exemple ci-dessus va afficher :

proxy::listMethod(array (
  0 => NULL,
  1 => 'SHOW DATABASES',
  2 => '',
  3 => '',
))
proxy::listMethod retourne NULL
num_rows = 6
array(1) {
  ["Database"]=>
  string(18) "information_schema"
}
array(1) {
  ["Database"]=>
  string(5) "mysql"
}
array(1) {
  ["Database"]=>
  string(8) "oxid_new"
}
array(1) {
  ["Database"]=>
  string(7) "phptest"
}
array(1) {
  ["Database"]=>
  string(7) "pushphp"
}
array(1) {
  ["Database"]=>
  string(4) "test"
}

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysql_list_dbs() - Liste les bases de données disponibles sur le serveur MySQL


Vérifie s'il y a encore des résultats depuis une requête multiple

  • « MysqlndUhConnection::listMethod
  • MysqlndUhConnection::nextResult »
  • PHP Manual
  • MysqlndUhConnection
  • Vérifie s'il y a encore des résultats depuis une requête multiple

MysqlndUhConnection::moreResults

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::moreResults — Vérifie s'il y a encore des résultats depuis une requête multiple

Description

public bool MysqlndUhConnection::moreResults ( mysqlnd_connection $connection )

Vérifie s'il y a encore des résultats depuis une requête multiple.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::moreResults()

<?php
class proxy extends MysqlndUhConnection {
 public function moreResults($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::moreResults($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->multi_query("SELECT 1 AS _one; SELECT 2 AS _two");
do {
  $res = $mysqli->store_result();
  var_dump($res->fetch_assoc());
  printf("%s\n", str_repeat("-", 40));
} while ($mysqli->more_results() && $mysqli->next_result());
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["_one"]=>
  string(1) "1"
}
----------------------------------------
proxy::moreResults(array (
  0 => NULL,
))
proxy::moreResults retourne true
proxy::moreResults(array (
  0 => NULL,
))
proxy::moreResults retourne true
array(1) {
  ["_two"]=>
  string(1) "2"
}
----------------------------------------
proxy::moreResults(array (
  0 => NULL,
))
proxy::moreResults retourne false

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_more_results() - Vérifie s'il y a d'autres jeux de résultats MySQL disponibles


Prépare le prochain résultat depuis multi_query

  • « MysqlndUhConnection::moreResults
  • MysqlndUhConnection::ping »
  • PHP Manual
  • MysqlndUhConnection
  • Prépare le prochain résultat depuis multi_query

MysqlndUhConnection::nextResult

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::nextResult — Prépare le prochain résultat depuis multi_query

Description

public bool MysqlndUhConnection::nextResult ( mysqlnd_connection $connection )

Prépare le prochain résultat depuis multi_query.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::nextResult()

<?php
class proxy extends MysqlndUhConnection {
 public function nextResult($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::nextResult($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->multi_query("SELECT 1 AS _one; SELECT 2 AS _two");
do {
  $res = $mysqli->store_result();
  var_dump($res->fetch_assoc());
  printf("%s\n", str_repeat("-", 40));
} while ($mysqli->more_results() && $mysqli->next_result());
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["_one"]=>
  string(1) "1"
}
----------------------------------------
proxy::nextResult(array (
  0 => NULL,
))
proxy::nextResult retourne true
array(1) {
  ["_two"]=>
  string(1) "2"
}
----------------------------------------

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_next_result() - Prépare le prochain résultat d'une requête multiple


Ping une connexion de serveur ou tente de se reconnecter si la connexion n'est plus disponible

  • « MysqlndUhConnection::nextResult
  • MysqlndUhConnection::query »
  • PHP Manual
  • MysqlndUhConnection
  • Ping une connexion de serveur ou tente de se reconnecter si la connexion n'est plus disponible

MysqlndUhConnection::ping

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::ping — Ping une connexion de serveur ou tente de se reconnecter si la connexion n'est plus disponible

Description

public bool MysqlndUhConnection::ping ( mysqlnd_connection $connection )

Ping une connexion de serveur ou tente de se reconnecter si la connexion n'est plus disponible.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::ping()

<?php
class proxy extends MysqlndUhConnection {
 public function ping($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::ping($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->ping();
?>

L'exemple ci-dessus va afficher :

proxy::ping(array (
  0 => NULL,
))
proxy::ping retourne true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_ping() - Ping la connexion au serveur et reconnecte si elle n'existe plus
  • mysql_ping() - Vérifie la connexion au serveur MySQL, et s'y reconnecte au besoin


Exécute une requête sur la base de données

  • « MysqlndUhConnection::ping
  • MysqlndUhConnection::queryReadResultsetHeader »
  • PHP Manual
  • MysqlndUhConnection
  • Exécute une requête sur la base de données

MysqlndUhConnection::query

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::query — Exécute une requête sur la base de données

Description

public bool MysqlndUhConnection::query ( mysqlnd_connection $connection , string $query )

Exécute une requête sur la base de données (COM_QUERY).

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

query

La requête.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::query()

<?php
class proxy extends MysqlndUhConnection {
 public function query($res, $query) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $query = "SELECT 'How about query rewriting?'";
  $ret = parent::query($res, $query);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$res = $mysqli->query("SELECT 'Welcome mysqlnd_uh!' FROM DUAL");
var_dump($res->fetch_assoc());
?>

L'exemple ci-dessus va afficher :

proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Welcome mysqlnd_uh!\' FROM DUAL',
))
proxy::query retourne true
array(1) {
  ["How about query rewriting?"]=>
  string(26) "How about query rewriting?"
}

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_query() - Exécute une requête sur la base de données
  • mysql_query() - Envoie une requête à un serveur MySQL


Lit un en-tête de jeu de résultats

  • « MysqlndUhConnection::query
  • MysqlndUhConnection::reapQuery »
  • PHP Manual
  • MysqlndUhConnection
  • Lit un en-tête de jeu de résultats

MysqlndUhConnection::queryReadResultsetHeader

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::queryReadResultsetHeader — Lit un en-tête de jeu de résultats

Description

public bool MysqlndUhConnection::queryReadResultsetHeader ( mysqlnd_connection $connection , mysqlnd_statement $mysqlnd_stmt )

Lit un en-tête de jeu de résultats.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

mysqlnd_stmt

Gestionnaire de requête Mysqlnd. Ne pas modifier ! Définissez le à NULL si la fonction n'est pas utilisée dans le contexte d'une requête préparée.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::queryReadResultsetHeader()

<?php
class proxy extends MysqlndUhConnection {
 public function queryReadResultsetHeader($res, $stmt) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::queryReadResultsetHeader($res, $stmt);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$res = $mysqli->query("SELECT 'Welcome mysqlnd_uh!' FROM DUAL");
var_dump($res->fetch_assoc());
?>

L'exemple ci-dessus va afficher :

proxy::queryReadResultsetHeader(array (
  0 => NULL,
  1 => NULL,
))
proxy::queryReadResultsetHeader retourne true
array(1) {
  ["Welcome mysqlnd_uh!"]=>
  string(19) "Welcome mysqlnd_uh!"
}

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd


Récupère le résultat depuis une requête asynchrone

  • « MysqlndUhConnection::queryReadResultsetHeader
  • MysqlndUhConnection::refreshServer »
  • PHP Manual
  • MysqlndUhConnection
  • Récupère le résultat depuis une requête asynchrone

MysqlndUhConnection::reapQuery

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::reapQuery — Récupère le résultat depuis une requête asynchrone

Description

public bool MysqlndUhConnection::reapQuery ( mysqlnd_connection $connection )

Récupère le résultat depuis une requête asynchrone.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::reapQuery()

<?php
class proxy extends MysqlndUhConnection {
 public function reapQuery($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::reapQuery($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$conn1 = new mysqli("localhost", "root", "", "test");
$conn2 = new mysqli("localhost", "root", "", "test");

$conn1->query("SELECT 1 as 'one', SLEEP(1) AS _sleep FROM DUAL", MYSQLI_ASYNC |  MYSQLI_USE_RESULT);
$conn2->query("SELECT 1.1 as 'one dot one' FROM DUAL", MYSQLI_ASYNC |  MYSQLI_USE_RESULT);

$links = array(
 $conn1->thread_id => array('link' => $conn1, 'processed' => false),
 $conn2->thread_id => array('link' => $conn2, 'processed' => false)
);

$saved_errors = array();
do {
 $poll_links = $poll_errors = $poll_reject = array();
 foreach ($links as $thread_id => $link) {
  if (!$link['processed']) {
   $poll_links[] = $link['link'];
   $poll_errors[] = $link['link'];
   $poll_reject[] = $link['link'];
  }
 }
 if (0 == count($poll_links))
  break;

 if (0 == ($num_ready = mysqli_poll($poll_links, $poll_errors, $poll_reject, 0, 200000)))
  continue;

 if (!empty($poll_errors)) {
  die(var_dump($poll_errors));
 }

 foreach ($poll_links as $link) {
  $thread_id = mysqli_thread_id($link);
  $links[$thread_id]['processed'] = true;

  if (is_object($res = mysqli_reap_async_query($link))) {
   // result set object
   while ($row = mysqli_fetch_assoc($res)) {
    // eat up all results
    var_dump($row);
   }
   mysqli_free_result($res);
  } else {
   // either there is no result (no SELECT) or there is an error
   if (mysqli_errno($link) > 0) {
    $saved_errors[$thread_id] = mysqli_errno($link);
    printf("'%s' caused %d\n", $links[$thread_id]['query'],     mysqli_errno($link));
   }
  }
 }
} while (true);
?>

L'exemple ci-dessus va afficher :

proxy::reapQuery(array (
  0 => NULL,
))
proxy::reapQuery retourne true
array(1) {
  ["one dot one"]=>
  string(3) "1.1"
}
proxy::reapQuery(array (
  0 => NULL,
))
proxy::reapQuery retourne true
array(2) {
  ["one"]=>
  string(1) "1"
  ["_sleep"]=>
  string(1) "0"
}

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_real_async_query()


Rafraîchie ou réinitialise les tables et les caches

  • « MysqlndUhConnection::reapQuery
  • MysqlndUhConnection::restartPSession »
  • PHP Manual
  • MysqlndUhConnection
  • Rafraîchie ou réinitialise les tables et les caches

MysqlndUhConnection::refreshServer

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::refreshServer — Rafraîchie ou réinitialise les tables et les caches

Description

public bool MysqlndUhConnection::refreshServer ( mysqlnd_connection $connection , int $options )

Rafraîchie ou réinitialise les tables et les caches.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

options

Ce que l'on souhaite rafraîchir.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exempe avec MysqlndUhConnection::refreshServer()

<?php
class proxy extends MysqlndUhConnection {
 public function refreshServer($res, $option) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::refreshServer($res, $option);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
mysqli_refresh($mysqli, 1);
?>

L'exemple ci-dessus va afficher :

proxy::refreshServer(array (
  0 => NULL,
  1 => 1,
))
proxy::refreshServer retourne false

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd


Redémarre une connexion mysqlnd persistante

  • « MysqlndUhConnection::refreshServer
  • MysqlndUhConnection::selectDb »
  • PHP Manual
  • MysqlndUhConnection
  • Redémarre une connexion mysqlnd persistante

MysqlndUhConnection::restartPSession

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::restartPSession — Redémarre une connexion mysqlnd persistante

Description

public bool MysqlndUhConnection::restartPSession ( mysqlnd_connection $connection )

Redémarre une connexion mysqlnd persistante.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::restartPSession()

<?php
class proxy extends MysqlndUhConnection {
 public function ping($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::ping($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->ping();
?>

L'exemple ci-dessus va afficher :

proxy::restartPSession(array (
  0 => NULL,
))
proxy::restartPSession retourne true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd


Sélectionne la base de données par défaut pour l'exécution des requêtes

  • « MysqlndUhConnection::restartPSession
  • MysqlndUhConnection::sendClose »
  • PHP Manual
  • MysqlndUhConnection
  • Sélectionne la base de données par défaut pour l'exécution des requêtes

MysqlndUhConnection::selectDb

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::selectDb — Sélectionne la base de données par défaut pour l'exécution des requêtes

Description

public bool MysqlndUhConnection::selectDb ( mysqlnd_connection $connection , string $database )

Sélectionne la base de données par défaut pour l'exécution des requêtes.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

database

Le nom de la base de données.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::selectDb()

<?php
class proxy extends MysqlndUhConnection {
 public function selectDb($res, $database) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::selectDb($res, $database);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->select_db("mysql");
?>

L'exemple ci-dessus va afficher :

proxy::selectDb(array (
  0 => NULL,
  1 => 'mysql',
))
proxy::selectDb retourne true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_select_db() - Sélectionne une base de données par défaut pour les requêtes
  • mysql_select_db() - Sélectionne une base de données MySQL


Envoi une commande de fermeture à MySQL

  • « MysqlndUhConnection::selectDb
  • MysqlndUhConnection::sendQuery »
  • PHP Manual
  • MysqlndUhConnection
  • Envoi une commande de fermeture à MySQL

MysqlndUhConnection::sendClose

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::sendClose — Envoi une commande de fermeture à MySQL

Description

public bool MysqlndUhConnection::sendClose ( mysqlnd_connection $connection )

Envoi une commande de fermeture à MySQL.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::sendClose()

<?php
class proxy extends MysqlndUhConnection {
 public function sendClose($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::sendClose($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->close();
?>

L'exemple ci-dessus va afficher :

proxy::sendClose(array (
  0 => NULL,
))
proxy::sendClose returns true
proxy::sendClose(array (
  0 => NULL,
))
proxy::sendClose returns true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd


Envoi une requête à MySQL

  • « MysqlndUhConnection::sendClose
  • MysqlndUhConnection::serverDumpDebugInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Envoi une requête à MySQL

MysqlndUhConnection::sendQuery

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::sendQuery — Envoi une requête à MySQL

Description

public bool MysqlndUhConnection::sendQuery ( mysqlnd_connection $connection , string $query )

Envoi une requête à MySQL.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

query

La requête.

Valeurs de retour

Returns TRUE on success. Otherwise, returns FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::sendQuery()

<?php
class proxy extends MysqlndUhConnection {
 public function sendQuery($res, $query) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::sendQuery($res, $query);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("SELECT 1");
?>

L'exemple ci-dessus va afficher :

proxy::sendQuery(array (
  0 => NULL,
  1 => 'SELECT 1',
))
proxy::sendQuery returns true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd


Extrait les informations de débogage dans les logs pour le serveur MySQL

  • « MysqlndUhConnection::sendQuery
  • MysqlndUhConnection::setAutocommit »
  • PHP Manual
  • MysqlndUhConnection
  • Extrait les informations de débogage dans les logs pour le serveur MySQL

MysqlndUhConnection::serverDumpDebugInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::serverDumpDebugInformation — Extrait les informations de débogage dans les logs pour le serveur MySQL

Description

public bool MysqlndUhConnection::serverDumpDebugInformation ( mysqlnd_connection $connection )

Extrait les informations de débogage dans les logs pour le serveur MySQL.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::serverDumpDebugInformation()

<?php
class proxy extends MysqlndUhConnection {
 public function serverDumpDebugInformation($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::serverDumpDebugInformation($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->dump_debug_info();
?>

L'exemple ci-dessus va afficher :

proxy::serverDumpDebugInformation(array (
  0 => NULL,
))
proxy::serverDumpDebugInformation returns true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_dump_debug_info() - Écrit les informations de déboguage dans les logs


Active ou désactive l'auto-commit de la base de données

  • « MysqlndUhConnection::serverDumpDebugInformation
  • MysqlndUhConnection::setCharset »
  • PHP Manual
  • MysqlndUhConnection
  • Active ou désactive l'auto-commit de la base de données

MysqlndUhConnection::setAutocommit

(PECL mysqlnd-uh >= 1.0.1-alpha, PHP >= 5.4.0)

MysqlndUhConnection::setAutocommit — Active ou désactive l'auto-commit de la base de données

Description

public bool MysqlndUhConnection::setAutocommit ( mysqlnd_connection $connection , int $mode )

Active ou désactive l'auto-commit de la base de données.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

mode

Si l'on doit activer ou désactiver l'auto-commit.

Valeurs de retour

Returns TRUE on success. Otherwise, returns FALSE

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::setAutocommit()

<?php
class proxy extends MysqlndUhConnection {
 public function setAutocommit($res, $mode) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::setAutocommit($res, $mode);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->autocommit(false);
$mysqli->autocommit(true);
?>

L'exemple ci-dessus va afficher :

proxy::setAutocommit(array (
  0 => NULL,
  1 => 0,
))
proxy::setAutocommit returns true
proxy::setAutocommit(array (
  0 => NULL,
  1 => 1,
))
proxy::setAutocommit returns true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_autocommit() - Active ou désactive le mode auto-commit


Définit le jeu de caractères par défaut du client

  • « MysqlndUhConnection::setAutocommit
  • MysqlndUhConnection::setClientOption »
  • PHP Manual
  • MysqlndUhConnection
  • Définit le jeu de caractères par défaut du client

MysqlndUhConnection::setCharset

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::setCharset — Définit le jeu de caractères par défaut du client

Description

public bool MysqlndUhConnection::setCharset ( mysqlnd_connection $connection , string $charset )

Définit le jeu de caractères par défaut du client.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

charset

Le jeu de caractères à définir.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::setCharset()

<?php
class proxy extends MysqlndUhConnection {
 public function setCharset($res, $charset) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::setCharset($res, $charset);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->set_charset("latin1");
?>

L'exemple ci-dessus va afficher :

proxy::setCharset(array (
  0 => NULL,
  1 => 'latin1',
))
proxy::setCharset returns true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_set_charset() - Définit le jeu de caractères par défaut du client


Définit une option du client

  • « MysqlndUhConnection::setCharset
  • MysqlndUhConnection::setServerOption »
  • PHP Manual
  • MysqlndUhConnection
  • Définit une option du client

MysqlndUhConnection::setClientOption

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::setClientOption — Définit une option du client

Description

public bool MysqlndUhConnection::setClientOption ( mysqlnd_connection $connection , int $option , int $value )

Définit une option du client.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

option

L'option à définir.

value

Valeur de l'option (optionnelle), si requise.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::setClientOption()

<?php
function client_option_to_string($option) {
 static $mapping = array(
  MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT => "MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT",
  MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS => "MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS",
  MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE => "MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE",
  MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND => "MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND",
  MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE => "MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE",
  MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP => "MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP",
  MYSQLND_UH_MYSQLND_SET_CHARSET_DIR => "MYSQLND_UH_MYSQLND_SET_CHARSET_DIR",
  MYSQLND_UH_MYSQLND_SET_CHARSET_NAME => "MYSQLND_UH_MYSQLND_SET_CHARSET_NAME",
  MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE => "MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE",
  MYSQLND_UH_MYSQLND_OPT_PROTOCOL => "MYSQLND_UH_MYSQLND_OPT_PROTOCOL",
  MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME => "MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME",
  MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT => "MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT",
  MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT => "MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT",
  MYSQLND_UH_MYSQLND_OPT_USE_RESULT => "MYSQLND_UH_MYSQLND_OPT_USE_RESULT",
  MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION => "MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION",
  MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION => "MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION",
  MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION => "MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION",
  MYSQLND_UH_MYSQLND_SET_CLIENT_IP => "MYSQLND_UH_MYSQLND_SET_CLIENT_IP",
  MYSQLND_UH_MYSQLND_SECURE_AUTH => "MYSQLND_UH_MYSQLND_SECURE_AUTH",
  MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION => "MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION",
  MYSQLND_UH_MYSQLND_OPT_RECONNECT => "MYSQLND_UH_MYSQLND_OPT_RECONNECT",
  MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT => "MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT",
  MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE => "MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE",
  MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE => "MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE",
  MYSQLND_UH_MYSQLND_OPT_SSL_KEY => "MYSQLND_UH_MYSQLND_OPT_SSL_KEY",
  MYSQLND_UH_MYSQLND_OPT_SSL_CERT => "MYSQLND_UH_MYSQLND_OPT_SSL_CERT",
  MYSQLND_UH_MYSQLND_OPT_SSL_CA => "MYSQLND_UH_MYSQLND_OPT_SSL_CA",
  MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH => "MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH",
  MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER => "MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER",
  MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE => "MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE",
  MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR => "MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR",
  MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH => "MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH",
  MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP => "MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP"
 );
 if (version_compare(PHP_VERSION, '5.3.99-dev', '>')) {
  $mapping[MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET] = "MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET";
  $mapping[MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL] = "MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL";
 }
 if (defined("MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE")) {
  /* special mysqlnd build */
  $mapping["MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE"] = "MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE";
 }
 return (isset($mapping[$option])) ? $mapping[$option] : 'unknown';
}

class proxy extends MysqlndUhConnection {
 public function setClientOption($res, $option, $value) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Option '%s' set to %s\n", client_option_to_string($option), var_export($value, true));
  $ret = parent::setClientOption($res, $option, $value);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
?>

L'exemple ci-dessus va afficher :

proxy::setClientOption(array (
  0 => NULL,
  1 => 210,
  2 => 3221225472,
))
Option 'MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET' set to 3221225472
proxy::setClientOption returns true
proxy::setClientOption(array (
  0 => NULL,
  1 => 211,
  2 => 'mysql_native_password',
))
Option 'MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL' set to 'mysql_native_password'
proxy::setClientOption returns true
proxy::setClientOption(array (
  0 => NULL,
  1 => 8,
  2 => 1,
))
Option 'MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE' set to 1
proxy::setClientOption returns true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_real_connect() - Ouvre une connexion à un serveur MySQL
  • mysqli_options() - Définit les options


Définit une option serveur

  • « MysqlndUhConnection::setClientOption
  • MysqlndUhConnection::shutdownServer »
  • PHP Manual
  • MysqlndUhConnection
  • Définit une option serveur

MysqlndUhConnection::setServerOption

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::setServerOption — Définit une option serveur

Description

public void MysqlndUhConnection::setServerOption ( mysqlnd_connection $connection , int $option )

Définit une option serveur.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

option

L'option à définir.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, retourne FALSE.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::setServerOption()

<?php
function server_option_to_string($option) {
 $ret = 'unknown';
 switch ($option) {
  case MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON:
   $ret = 'MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON';
   break;
  case MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_OFF:
   $ret = 'MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON';
   break;
 }
 return $ret;
}

class proxy extends MysqlndUhConnection {
 public function setServerOption($res, $option) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Option '%s' set\n", server_option_to_string($option));
  $ret = parent::setServerOption($res, $option);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->multi_query("SELECT 1; SELECT 2");
?>

L'exemple ci-dessus va afficher :

proxy::setServerOption(array (
  0 => NULL,
  1 => 0,
))
Option 'MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON' set
proxy::setServerOption returns true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_real_connect() - Ouvre une connexion à un serveur MySQL
  • mysqli_options() - Définit les options
  • mysqli_multi_query() - Exécute une requête MySQL multiple


Le but de shutdownServer

  • « MysqlndUhConnection::setServerOption
  • MysqlndUhConnection::simpleCommand »
  • PHP Manual
  • MysqlndUhConnection
  • Le but de shutdownServer

MysqlndUhConnection::shutdownServer

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::shutdownServer — Le but de shutdownServer

Description

public void MysqlndUhConnection::shutdownServer ( string $MYSQLND_UH_RES_MYSQLND_NAME , string $"level" )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

MYSQLND_UH_RES_MYSQLND_NAME

"level"

Valeurs de retour


Envoi une commande COM_*

  • « MysqlndUhConnection::shutdownServer
  • MysqlndUhConnection::simpleCommandHandleResponse »
  • PHP Manual
  • MysqlndUhConnection
  • Envoi une commande COM_*

MysqlndUhConnection::simpleCommand

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::simpleCommand — Envoi une commande COM_*

Description

public bool MysqlndUhConnection::simpleCommand ( mysqlnd_connection $connection , int $command , string $arg , int $ok_packet , bool $silent , bool $ignore_upsert_status )

Envoi une commande COM_* à MySQL.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

command

La commande COM à envoyer.

arg

Arguments optionnels de la commande COM.

ok_packet

Le type du paquet OK.

silent

Si mysqlnd doit émettre des erreurs ou non.

ignore_upsert_status

Si les statuts UPDATE/INSERT doivent être ignorés ou non.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::simpleCommand()

<?php
function server_cmd_2_string($command) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_COM_SLEEP => "MYSQLND_UH_MYSQLND_COM_SLEEP",
  MYSQLND_UH_MYSQLND_COM_QUIT => "MYSQLND_UH_MYSQLND_COM_QUIT",
  MYSQLND_UH_MYSQLND_COM_INIT_DB => "MYSQLND_UH_MYSQLND_COM_INIT_DB",
  MYSQLND_UH_MYSQLND_COM_QUERY => "MYSQLND_UH_MYSQLND_COM_QUERY",
  MYSQLND_UH_MYSQLND_COM_FIELD_LIST => "MYSQLND_UH_MYSQLND_COM_FIELD_LIST",
  MYSQLND_UH_MYSQLND_COM_CREATE_DB => "MYSQLND_UH_MYSQLND_COM_CREATE_DB",
  MYSQLND_UH_MYSQLND_COM_DROP_DB => "MYSQLND_UH_MYSQLND_COM_DROP_DB",
  MYSQLND_UH_MYSQLND_COM_REFRESH => "MYSQLND_UH_MYSQLND_COM_REFRESH",
  MYSQLND_UH_MYSQLND_COM_SHUTDOWN => "MYSQLND_UH_MYSQLND_COM_SHUTDOWN",
  MYSQLND_UH_MYSQLND_COM_STATISTICS => "MYSQLND_UH_MYSQLND_COM_STATISTICS",
  MYSQLND_UH_MYSQLND_COM_PROCESS_INFO => "MYSQLND_UH_MYSQLND_COM_PROCESS_INFO",
  MYSQLND_UH_MYSQLND_COM_CONNECT => "MYSQLND_UH_MYSQLND_COM_CONNECT",
  MYSQLND_UH_MYSQLND_COM_PROCESS_KILL => "MYSQLND_UH_MYSQLND_COM_PROCESS_KILL",
  MYSQLND_UH_MYSQLND_COM_DEBUG => "MYSQLND_UH_MYSQLND_COM_DEBUG",
  MYSQLND_UH_MYSQLND_COM_PING => "MYSQLND_UH_MYSQLND_COM_PING",
  MYSQLND_UH_MYSQLND_COM_TIME => "MYSQLND_UH_MYSQLND_COM_TIME",
  MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT => "MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT",
  MYSQLND_UH_MYSQLND_COM_CHANGE_USER => "MYSQLND_UH_MYSQLND_COM_CHANGE_USER",
  MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP => "MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP",
  MYSQLND_UH_MYSQLND_COM_TABLE_DUMP => "MYSQLND_UH_MYSQLND_COM_TABLE_DUMP",
  MYSQLND_UH_MYSQLND_COM_CONNECT_OUT => "MYSQLND_UH_MYSQLND_COM_CONNECT_OUT",
  MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED => "MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED",
  MYSQLND_UH_MYSQLND_COM_STMT_PREPARE => "MYSQLND_UH_MYSQLND_COM_STMT_PREPARE",
  MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE => "MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE",
  MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA => "MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA",
  MYSQLND_UH_MYSQLND_COM_STMT_CLOSE => "MYSQLND_UH_MYSQLND_COM_STMT_CLOSE",
  MYSQLND_UH_MYSQLND_COM_STMT_RESET => "MYSQLND_UH_MYSQLND_COM_STMT_RESET",
  MYSQLND_UH_MYSQLND_COM_SET_OPTION => "MYSQLND_UH_MYSQLND_COM_SET_OPTION",
  MYSQLND_UH_MYSQLND_COM_STMT_FETCH => "MYSQLND_UH_MYSQLND_COM_STMT_FETCH",
  MYSQLND_UH_MYSQLND_COM_DAEMON => "MYSQLND_UH_MYSQLND_COM_DAEMON",
  MYSQLND_UH_MYSQLND_COM_END => "MYSQLND_UH_MYSQLND_COM_END",
 );
 return (isset($mapping[$command])) ? $mapping[$command] : 'unknown';
}

function ok_packet_2_string($ok_packet) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_PROT_GREET_PACKET => "MYSQLND_UH_MYSQLND_PROT_GREET_PACKET",
  MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET => "MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET",
  MYSQLND_UH_MYSQLND_PROT_OK_PACKET => "MYSQLND_UH_MYSQLND_PROT_OK_PACKET",
  MYSQLND_UH_MYSQLND_PROT_EOF_PACKET => "MYSQLND_UH_MYSQLND_PROT_EOF_PACKET",
  MYSQLND_UH_MYSQLND_PROT_CMD_PACKET => "MYSQLND_UH_MYSQLND_PROT_CMD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_ROW_PACKET => "MYSQLND_UH_MYSQLND_PROT_ROW_PACKET",
  MYSQLND_UH_MYSQLND_PROT_STATS_PACKET => "MYSQLND_UH_MYSQLND_PROT_STATS_PACKET",
  MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET => "MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET",
  MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET => "MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET",
  MYSQLND_UH_MYSQLND_PROT_LAST => "MYSQLND_UH_MYSQLND_PROT_LAST",
 );
 return (isset($mapping[$ok_packet])) ? $mapping[$ok_packet] : 'unknown';
}

class proxy extends MysqlndUhConnection {
 public function simpleCommand($conn, $command, $arg, $ok_packet, $silent, $ignore_upsert_status) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Command '%s'\n", server_cmd_2_string($command));
  printf("OK packet '%s'\n",  ok_packet_2_string($ok_packet));
  $ret = parent::simpleCommand($conn, $command, $arg, $ok_packet, $silent, $ignore_upsert_status);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("SELECT 1");
?>

L'exemple ci-dessus va afficher :

proxy::simpleCommand(array (
  0 => NULL,
  1 => 3,
  2 => 'SELECT 1',
  3 => 13,
  4 => false,
  5 => false,
))
Command 'MYSQLND_UH_MYSQLND_COM_QUERY'
OK packet 'MYSQLND_UH_MYSQLND_PROT_LAST'
proxy::simpleCommand returns true
:)proxy::simpleCommand(array (
  0 => NULL,
  1 => 1,
  2 => '',
  3 => 13,
  4 => true,
  5 => true,
))
Command 'MYSQLND_UH_MYSQLND_COM_QUIT'
OK packet 'MYSQLND_UH_MYSQLND_PROT_LAST'
proxy::simpleCommand returns true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd


Analyse une réponse d'une commande COM_* envoyée au client

  • « MysqlndUhConnection::simpleCommand
  • MysqlndUhConnection::sslSet »
  • PHP Manual
  • MysqlndUhConnection
  • Analyse une réponse d'une commande COM_* envoyée au client

MysqlndUhConnection::simpleCommandHandleResponse

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::simpleCommandHandleResponse — Analyse une réponse d'une commande COM_* envoyée au client

Description

public bool MysqlndUhConnection::simpleCommandHandleResponse ( mysqlnd_connection $connection , int $ok_packet , bool $silent , int $command , bool $ignore_upsert_status )

Analyse une réponse d'une commande COM_* envoyée au client.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

ok_packet

Le type de paquet OK.

silent

Si mysqlnd doit émettre des erreurs ou non.

command

La commande COM dont on doit analyser les résultats.

ignore_upsert_status

Si l'on doit ignorer ou non les status UPDATE/INSERT.

Valeurs de retour

Retorne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::simpleCommandHandleResponse()

<?php
function server_cmd_2_string($command) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_COM_SLEEP => "MYSQLND_UH_MYSQLND_COM_SLEEP",
  MYSQLND_UH_MYSQLND_COM_QUIT => "MYSQLND_UH_MYSQLND_COM_QUIT",
  MYSQLND_UH_MYSQLND_COM_INIT_DB => "MYSQLND_UH_MYSQLND_COM_INIT_DB",
  MYSQLND_UH_MYSQLND_COM_QUERY => "MYSQLND_UH_MYSQLND_COM_QUERY",
  MYSQLND_UH_MYSQLND_COM_FIELD_LIST => "MYSQLND_UH_MYSQLND_COM_FIELD_LIST",
  MYSQLND_UH_MYSQLND_COM_CREATE_DB => "MYSQLND_UH_MYSQLND_COM_CREATE_DB",
  MYSQLND_UH_MYSQLND_COM_DROP_DB => "MYSQLND_UH_MYSQLND_COM_DROP_DB",
  MYSQLND_UH_MYSQLND_COM_REFRESH => "MYSQLND_UH_MYSQLND_COM_REFRESH",
  MYSQLND_UH_MYSQLND_COM_SHUTDOWN => "MYSQLND_UH_MYSQLND_COM_SHUTDOWN",
  MYSQLND_UH_MYSQLND_COM_STATISTICS => "MYSQLND_UH_MYSQLND_COM_STATISTICS",
  MYSQLND_UH_MYSQLND_COM_PROCESS_INFO => "MYSQLND_UH_MYSQLND_COM_PROCESS_INFO",
  MYSQLND_UH_MYSQLND_COM_CONNECT => "MYSQLND_UH_MYSQLND_COM_CONNECT",
  MYSQLND_UH_MYSQLND_COM_PROCESS_KILL => "MYSQLND_UH_MYSQLND_COM_PROCESS_KILL",
  MYSQLND_UH_MYSQLND_COM_DEBUG => "MYSQLND_UH_MYSQLND_COM_DEBUG",
  MYSQLND_UH_MYSQLND_COM_PING => "MYSQLND_UH_MYSQLND_COM_PING",
  MYSQLND_UH_MYSQLND_COM_TIME => "MYSQLND_UH_MYSQLND_COM_TIME",
  MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT => "MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT",
  MYSQLND_UH_MYSQLND_COM_CHANGE_USER => "MYSQLND_UH_MYSQLND_COM_CHANGE_USER",
  MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP => "MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP",
  MYSQLND_UH_MYSQLND_COM_TABLE_DUMP => "MYSQLND_UH_MYSQLND_COM_TABLE_DUMP",
  MYSQLND_UH_MYSQLND_COM_CONNECT_OUT => "MYSQLND_UH_MYSQLND_COM_CONNECT_OUT",
  MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED => "MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED",
  MYSQLND_UH_MYSQLND_COM_STMT_PREPARE => "MYSQLND_UH_MYSQLND_COM_STMT_PREPARE",
  MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE => "MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE",
  MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA => "MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA",
  MYSQLND_UH_MYSQLND_COM_STMT_CLOSE => "MYSQLND_UH_MYSQLND_COM_STMT_CLOSE",
  MYSQLND_UH_MYSQLND_COM_STMT_RESET => "MYSQLND_UH_MYSQLND_COM_STMT_RESET",
  MYSQLND_UH_MYSQLND_COM_SET_OPTION => "MYSQLND_UH_MYSQLND_COM_SET_OPTION",
  MYSQLND_UH_MYSQLND_COM_STMT_FETCH => "MYSQLND_UH_MYSQLND_COM_STMT_FETCH",
  MYSQLND_UH_MYSQLND_COM_DAEMON => "MYSQLND_UH_MYSQLND_COM_DAEMON",
  MYSQLND_UH_MYSQLND_COM_END => "MYSQLND_UH_MYSQLND_COM_END",
 );
 return (isset($mapping[$command])) ? $mapping[$command] : 'unknown';
}

function ok_packet_2_string($ok_packet) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_PROT_GREET_PACKET => "MYSQLND_UH_MYSQLND_PROT_GREET_PACKET",
  MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET => "MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET",
  MYSQLND_UH_MYSQLND_PROT_OK_PACKET => "MYSQLND_UH_MYSQLND_PROT_OK_PACKET",
  MYSQLND_UH_MYSQLND_PROT_EOF_PACKET => "MYSQLND_UH_MYSQLND_PROT_EOF_PACKET",
  MYSQLND_UH_MYSQLND_PROT_CMD_PACKET => "MYSQLND_UH_MYSQLND_PROT_CMD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_ROW_PACKET => "MYSQLND_UH_MYSQLND_PROT_ROW_PACKET",
  MYSQLND_UH_MYSQLND_PROT_STATS_PACKET => "MYSQLND_UH_MYSQLND_PROT_STATS_PACKET",
  MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET => "MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET",
  MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET => "MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET",
  MYSQLND_UH_MYSQLND_PROT_LAST => "MYSQLND_UH_MYSQLND_PROT_LAST",
 );
 return (isset($mapping[$ok_packet])) ? $mapping[$ok_packet] : 'unknown';
}

class proxy extends MysqlndUhConnection {
 public function simpleCommandHandleResponse($conn, $ok_packet, $silent, $command, $ignore_upsert_status) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Command '%s'\n", server_cmd_2_string($command));
  printf("OK packet '%s'\n",  ok_packet_2_string($ok_packet));
  $ret = parent::simpleCommandHandleResponse($conn, $ok_packet, $silent, $command, $ignore_upsert_status);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysql = mysql_connect("localhost", "root", "");
mysql_query("SELECT 1 FROM DUAL", $mysql);
?>

L'exemple ci-dessus va afficher :

proxy::simpleCommandHandleResponse(array (
  0 => NULL,
  1 => 5,
  2 => false,
  3 => 27,
  4 => true,
))
Command 'MYSQLND_UH_MYSQLND_COM_SET_OPTION'
OK packet 'MYSQLND_UH_MYSQLND_PROT_EOF_PACKET'
proxy::simpleCommandHandleResponse returns true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd


Utilisé pour établir des connexions sécurisées utilisant SSL

  • « MysqlndUhConnection::simpleCommandHandleResponse
  • MysqlndUhConnection::stmtInit »
  • PHP Manual
  • MysqlndUhConnection
  • Utilisé pour établir des connexions sécurisées utilisant SSL

MysqlndUhConnection::sslSet

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::sslSet — Utilisé pour établir des connexions sécurisées utilisant SSL

Description

public bool MysqlndUhConnection::sslSet ( mysqlnd_connection $connection , string $key , string $cert , string $ca , string $capath , string $cipher )

Utilisé pour établir des connexions sécurisées utilisant SSL.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

key

Le nom du chemin vers le fichier de la clé.

cert

Le nom du chemin vers le fichier du certificat.

ca

Le nom du chemin vers le fichier du certificat de l'autorité.

capath

Le nom du chemin vers le dossier contenant les certificats SSL CA au format PEM.

cipher

Une liste de ciphers autorisés à utiliser le cryptage SSL.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::sslSet()

<?php
class proxy extends MysqlndUhConnection {
 public function sslSet($conn, $key, $cert, $ca, $capath, $cipher) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::sslSet($conn, $key, $cert, $ca, $capath, $cipher);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->ssl_set("key", "cert", "ca", "capath", "cipher");
?>

L'exemple ci-dessus va afficher :

proxy::sslSet(array (
  0 => NULL,
  1 => 'key',
  2 => 'cert',
  3 => 'ca',
  4 => 'capath',
  5 => 'cipher',
))
proxy::sslSet returns true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_ssl_set() - Utilisée pour établir une connexion sécurisée avec SSL


Initialise une requête et retourne une ressource à utiliser avec mysqli_statement::prepare

  • « MysqlndUhConnection::sslSet
  • MysqlndUhConnection::storeResult »
  • PHP Manual
  • MysqlndUhConnection
  • Initialise une requête et retourne une ressource à utiliser avec mysqli_statement::prepare

MysqlndUhConnection::stmtInit

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::stmtInit — Initialise une requête et retourne une ressource à utiliser avec mysqli_statement::prepare

Description

public resource MysqlndUhConnection::stmtInit ( mysqlnd_connection $connection )

Initialise une requête et retourne une ressource à utiliser avec mysqli_statement::prepare.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Une ressource de type Mysqlnd Prepared Statement (internal only - you must not modify it!). La documentation peut aussi se référer à ce type de ressource en utilisant l'alias mysqlnd_prepared_statement.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::stmtInit()

<?php
class proxy extends MysqlndUhConnection {
 public function stmtInit($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  var_dump($res);
  $ret = parent::stmtInit($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 1 AS _one FROM DUAL");
$stmt->execute();
$one = NULL;
$stmt->bind_result($one);
$stmt->fetch();
var_dump($one);
?>

L'exemple ci-dessus va afficher :

proxy::stmtInit(array (
  0 => NULL,
))
resource(19) of type (Mysqlnd Connection)
proxy::stmtInit returns NULL
resource(246) of type (Mysqlnd Prepared Statement (internal only - you must not modify it!))
int(1)

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_stmt_init() - Initialise une commande MySQL


Transfère un jeu de résultats depuis la dernière requête

  • « MysqlndUhConnection::stmtInit
  • MysqlndUhConnection::txCommit »
  • PHP Manual
  • MysqlndUhConnection
  • Transfère un jeu de résultats depuis la dernière requête

MysqlndUhConnection::storeResult

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::storeResult — Transfère un jeu de résultats depuis la dernière requête

Description

public resource MysqlndUhConnection::storeResult ( mysqlnd_connection $connection )

Transfère un jeu de résultats depuis la dernière requête.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Une ressource de type Mysqlnd Resultset (internal only - you must not modify it!). La documentation peut aussi de référer à ce type de ressource sous l'alias mysqlnd_resultset.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::storeResult()

<?php
class proxy extends MysqlndUhConnection {
 public function storeResult($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::storeResult($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$res = $mysqli->query("SELECT 'Also called buffered result' AS _msg FROM DUAL");
var_dump($res->fetch_assoc());

$mysqli->real_query("SELECT 'Good morning!' AS _msg FROM DUAL");
$res = $mysqli->store_result();
var_dump($res->fetch_assoc());
?>

L'exemple ci-dessus va afficher :

proxy::storeResult(array (
  0 => NULL,
))
proxy::storeResult returns NULL
resource(475) of type (Mysqlnd Resultset (internal only - you must not modify it!))
array(1) {
  ["_msg"]=>
  string(27) "Also called buffered result"
}
proxy::storeResult(array (
  0 => NULL,
))
proxy::storeResult returns NULL
resource(730) of type (Mysqlnd Resultset (internal only - you must not modify it!))
array(1) {
  ["_msg"]=>
  string(13) "Good morning!"
}

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_store_result() - Transfère un jeu de résultats à partir de la dernière requête
  • mysqli_real_query() - Exécute une requête SQL


Valide la transaction courante

  • « MysqlndUhConnection::storeResult
  • MysqlndUhConnection::txRollback »
  • PHP Manual
  • MysqlndUhConnection
  • Valide la transaction courante

MysqlndUhConnection::txCommit

(PECL mysqlnd-uh >= 1.0.1-alpha, PHP >= 5.4.0)

MysqlndUhConnection::txCommit — Valide la transaction courante

Description

public bool MysqlndUhConnection::txCommit ( mysqlnd_connection $connection )

Valide la transaction courante.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::txCommit()

<?php
class proxy extends MysqlndUhConnection {
 public function txCommit($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::txCommit($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->commit();
?>

L'exemple ci-dessus va afficher :

proxy::txCommit(array (
  0 => NULL,
))
proxy::txCommit retourne true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_commit() - Valide la transaction courante


Annule la transaction courante

  • « MysqlndUhConnection::txCommit
  • MysqlndUhConnection::useResult »
  • PHP Manual
  • MysqlndUhConnection
  • Annule la transaction courante

MysqlndUhConnection::txRollback

(PECL mysqlnd-uh >= 1.0.1-alpha, PHP >= 5.4.0)

MysqlndUhConnection::txRollback — Annule la transaction courante

Description

public bool MysqlndUhConnection::txRollback ( mysqlnd_connection $connection )

Annule la transaction courante.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::txRollback()

<?php
class proxy extends MysqlndUhConnection {
 public function txRollback($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::txRollback($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->rollback();
?>

L'exemple ci-dessus va afficher :

proxy::txRollback(array (
  0 => NULL,
))
proxy::txRollback retourne true

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_commit() - Valide la transaction courante


Initialise un jeu de résultats récupéré

  • « MysqlndUhConnection::txRollback
  • MysqlndUhPreparedStatement »
  • PHP Manual
  • MysqlndUhConnection
  • Initialise un jeu de résultats récupéré

MysqlndUhConnection::useResult

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::useResult — Initialise un jeu de résultats récupéré

Description

public resource MysqlndUhConnection::useResult ( mysqlnd_connection $connection )

Initialise un jeu de résultats récupéré.

Liste de paramètres

connection

Gestionnaire de connexion Mysqlnd. Ne pas modifier !

Valeurs de retour

Une ressource de type Mysqlnd Resultset (internal only - you must not modify it!). La documentation peut aussi se référer à ce type de ressource en utilisant le nom en alias mysqlnd_resultset.

Exemples

Exemple #1 Exemple avec MysqlndUhConnection::useResult()

<?php
class proxy extends MysqlndUhConnection {
 public function useResult($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::useResult($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->real_query("SELECT 'Good morning!' AS _msg FROM DUAL");
$res = $mysqli->use_result();
var_dump($res->fetch_assoc());
?>

L'exemple ci-dessus va afficher :

proxy::useResult(array (
  0 => NULL,
))
proxy::useResult returns NULL
resource(425) of type (Mysqlnd Resultset (internal only - you must not modify it!))
array(1) {
  ["_msg"]=>
  string(13) "Good morning!"
}

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqli_use_result() - Initialise la récupération d'un jeu de résultats
  • mysqli_real_query() - Exécute une requête SQL


La classe MysqlndUhPreparedStatement

(PECL mysqlnd-uh >= 1.0.0-alpha)

Introduction

Synopsis de la classe

MysqlndUhPreparedStatement {
/* Méthodes */
public __construct ( void )
public bool execute ( mysqlnd_prepared_statement $statement )
public bool prepare ( mysqlnd_prepared_statement $statement , string $query )
}

Sommaire

  • MysqlndUhPreparedStatement::__construct — Le but de __construct
  • MysqlndUhPreparedStatement::execute — Exécute une requête préparée
  • MysqlndUhPreparedStatement::prepare — Prépare une requête SQL pour exécution


Le but de __construct

  • « MysqlndUhPreparedStatement
  • MysqlndUhPreparedStatement::execute »
  • PHP Manual
  • MysqlndUhPreparedStatement
  • Le but de __construct

MysqlndUhPreparedStatement::__construct

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhPreparedStatement::__construct — Le but de __construct

Description

public MysqlndUhPreparedStatement::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Exécute une requête préparée

  • « MysqlndUhPreparedStatement::__construct
  • MysqlndUhPreparedStatement::prepare »
  • PHP Manual
  • MysqlndUhPreparedStatement
  • Exécute une requête préparée

MysqlndUhPreparedStatement::execute

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhPreparedStatement::execute — Exécute une requête préparée

Description

public bool MysqlndUhPreparedStatement::execute ( mysqlnd_prepared_statement $statement )

Exécute une requête préparée.

Liste de paramètres

statement

Gestionnaire de requête préparée Mysqlnd. Ne pas modifier ! Ressource de type Mysqlnd Prepared Statement (internal only - you must not modify it!).

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec MysqlndUhPreparedStatement::execute()

<?php
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function execute($res) {
  printf("%s(", __METHOD__);
  var_dump($res);
  printf(")\n");
  $ret = parent::execute($res);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 'Labskaus' AS _msg FROM DUAL");
$stmt->execute();
$msg = NULL;
$stmt->bind_result($msg);
$stmt->fetch();
var_dump($msg);
?>

L'exemple ci-dessus va afficher :

stmt_proxy::execute(resource(256) of type (Mysqlnd Prepared Statement (internal only - you must not modify it!))
)
stmt_proxy::execute retourne true
bool(true)
string(8) "Labskaus"

Voir aussi

  • mysqlnd_uh_set_statement_proxy() - Installe un proxy pour les requêtes mysqlnd
  • mysqli_stmt_execute() - Exécute une requête préparée


Prépare une requête SQL pour exécution

  • « MysqlndUhPreparedStatement::execute
  • Fonctions Mysqlnd_uh »
  • PHP Manual
  • MysqlndUhPreparedStatement
  • Prépare une requête SQL pour exécution

MysqlndUhPreparedStatement::prepare

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhPreparedStatement::prepare — Prépare une requête SQL pour exécution

Description

public bool MysqlndUhPreparedStatement::prepare ( mysqlnd_prepared_statement $statement , string $query )

Prépare une requête SQL pour exécution.

Liste de paramètres

statement

Gestionnaire de requête préparée Mysqlnd. Ne pas modifier ! Ressource de type Mysqlnd Prepared Statement (internal only - you must not modify it!).

query

La requête à préparer.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec MysqlndUhPreparedStatement::prepare()

<?php
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function prepare($res, $query) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $query = "SELECT 'No more you-know-what-I-mean for lunch, please' AS _msg FROM DUAL";
  $ret = parent::prepare($res, $query);
  printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 'Labskaus' AS _msg FROM DUAL");
$stmt->execute();
$msg = NULL;
$stmt->bind_result($msg);
$stmt->fetch();
var_dump($msg);
?>

L'exemple ci-dessus va afficher :

stmt_proxy::prepare(array (
  0 => NULL,
  1 => 'SELECT \'Labskaus\' AS _msg FROM DUAL',
))
stmt_proxy::prepare retourne true
bool(true)
string(46) "No more you-know-what-I-mean for lunch, please"

Voir aussi

  • mysqlnd_uh_set_statement_proxy() - Installe un proxy pour les requêtes mysqlnd
  • mysqli_stmt_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_prepare() - Prépare une requête SQL pour l'exécution


Fonctions Mysqlnd_uh

Sommaire

  • mysqlnd_uh_convert_to_mysqlnd — Convertit un gestionnaire de connexion MySQL en un gestionnaire de connexion mysqlnd
  • mysqlnd_uh_set_connection_proxy — Installe un proxy pour les connexions mysqlnd
  • mysqlnd_uh_set_statement_proxy — Installe un proxy pour les requêtes mysqlnd


Convertit un gestionnaire de connexion MySQL en un gestionnaire de connexion mysqlnd

  • « Fonctions Mysqlnd_uh
  • mysqlnd_uh_set_connection_proxy »
  • PHP Manual
  • Fonctions Mysqlnd_uh
  • Convertit un gestionnaire de connexion MySQL en un gestionnaire de connexion mysqlnd

mysqlnd_uh_convert_to_mysqlnd

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_convert_to_mysqlnd — Convertit un gestionnaire de connexion MySQL en un gestionnaire de connexion mysqlnd

Description

resource mysqlnd_uh_convert_to_mysqlnd ( mysqli &$mysql_connection )

Convertit un gestionnaire de connexion MySQL en un gestionnaire de connexion mysqlnd. Après convertion, vous pouvez exécuter des appels à la bibliothèque cliente mysqlnd sur le gestionnaire de connexion. Ceci peut être utile pour accéder à des fonctionnalités mysqlnd non disponibles depuis les appels API C de l'espace utilisateur.

La fonction peut être désactivée avec l'option mysqlnd_uh.enable. Si mysqlnd_uh.enable est défini à FALSE, la fonction n'installera pas le proxy et retournera toujours TRUE. De plus, une alerte de niveau E_WARNING peut être émise. Le message d'erreur ressemblera à PHP Warning: mysqlnd_uh_convert_to_mysqlnd(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. You are not allowed to call this function [...].

Liste de paramètres

Gestionnaire de connexion MySQL

Un gestionnaire de connexion MySQL de type mysql, mysqli ou PDO_MySQL.

Valeurs de retour

Un gestionnaire de connexion mysqlnd.

Historique

Version | Description
5.4.0 | Le paramètre mysql_connection peut maintenant être de type mysql, PDO_MySQL, ou mysqli. Avant cette version, seul le type mysqli était autorisé.

Exemples

Exemple #1 Exemple avec mysqlnd_uh_convert_to_mysqlnd()

<?php
/* L'API utilisateur de PDO ne donne pas accès à l'identifiant du thread de connexion */
$mysql_connection = new PDO("mysql:host=localhost;dbname=test", "root", "");

/* Convertit un gestionnaire PDO MySQL en un gestionnaire mysqlnd */
$mysqlnd = mysqlnd_uh_convert_to_mysqlnd($mysql_connection);

/* Crée un proxy pour appeler les méthodes de classe de connexion mysqlnd */
$obj = new MySQLndUHConnection();
/* Appel à mysqlnd_conn::get_thread_id */
var_dump($obj->getThreadId($mysqlnd));

/* Utilisation de SQL pour récupérer l'iID du thread de connexion */
var_dump($mysql_connection->query("SELECT CONNECTION_ID()")->fetchAll());
?>

L'exemple ci-dessus va afficher :

int(27054)
array(1) {
  [0]=>
  array(2) {
    ["CONNECTION_ID()"]=>
    string(5) "27054"
    [0]=>
    string(5) "27054"
  }
}

Voir aussi

  • mysqlnd_uh.enable


Installe un proxy pour les connexions mysqlnd

  • « mysqlnd_uh_convert_to_mysqlnd
  • mysqlnd_uh_set_statement_proxy »
  • PHP Manual
  • Fonctions Mysqlnd_uh
  • Installe un proxy pour les connexions mysqlnd

mysqlnd_uh_set_connection_proxy

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_set_connection_proxy — Installe un proxy pour les connexions mysqlnd

Description

bool mysqlnd_uh_set_connection_proxy ( MysqlndUhConnection &$connection_proxy [, mysqli &$mysqli_connection ] )

Installe un objet proxy pour intercepter les méthodes des objets de connexion mysqlnd. Une fois installée, le proxy sera utilisé pour toutes les connexions MySQL ouvertes avec mysqli, mysql ou PDO_MYSQL, en supposant que ces extensions sont compilés pour utiliser la bibliothèque mysqlnd.

La fonction peut être désactivée avec l'option mysqlnd_uh.enable. Si mysqlnd_uh.enable vaut FALSE, la fonction n'installera pas le proxy et retournera toujours TRUE. De plus, une alerte de niveau E_WARNING pourra être émise. Le message d'erreur sera PHP Warning: mysqlnd_uh_set_connection_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed [...].

Liste de paramètres

connection_proxy

Un objet proxy de type MysqlndUhConnection.

mysqli_connection

Objet de type mysqli. Si fourni, le proxy ne sera défini que pour cette connexion.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec mysqlnd_uh_set_connection_proxy()

<?php
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("SELECT 'No proxy installed, yet'");

class proxy extends MysqlndUhConnection {
 public function query($res, $query) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::query($res, $query);
   printf("%s retourne %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli->query("SELECT 'mysqlnd rocks!'");

$mysql = mysql_connect("localhost", "root", "", "test");
mysql_query("SELECT 'Ahoy Andrey!'", $mysql);

$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
$pdo->query("SELECT 'Moin Johannes!'");
?>

L'exemple ci-dessus va afficher :

proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'mysqlnd rocks!\'',
))
proxy::query retourne true
proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Ahoy Andrey!\'',
))
proxy::query retourne true
proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Moin Johannes!\'',
))
proxy::query retourne true

Voir aussi

  • mysqlnd_uh_set_statement_proxy() - Installe un proxy pour les requêtes mysqlnd
  • mysqlnd_uh.enable


Installe un proxy pour les requêtes mysqlnd

  • « mysqlnd_uh_set_connection_proxy
  • Historique des modifications »
  • PHP Manual
  • Fonctions Mysqlnd_uh
  • Installe un proxy pour les requêtes mysqlnd

mysqlnd_uh_set_statement_proxy

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_set_statement_proxy — Installe un proxy pour les requêtes mysqlnd

Description

bool mysqlnd_uh_set_statement_proxy ( MysqlndUhStatement &$statement_proxy )

Installe un proxy pour les requêtes mysqlnd. L'objet proxy sera utilisé pour tous les objets de requêtes préparées mysqlnd, peu importe quelle extension PHP MySQL (mysqli, mysql, PDO_MYSQL) a préparé la requête à partir du moment que l'extension a été compilée pour utiliser la bibliothèque mysqlnd.

La fonction peut être désactivée avec l'option de configuration mysqlnd_uh.enable. Si mysqlnd_uh.enable vaut FALSE, la fonction n'installera pas le proxy et retournera toujours TRUE. De plus, une alerte de niveau E_WARNING pourra être émise. Le message d'erreur sera : PHP Warning: mysqlnd_uh_set_statement_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed [...].

Liste de paramètres

statement_proxy

L'objet proxy de requête mysqlnd de type MysqlndUhStatement

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • mysqlnd_uh_set_connection_proxy() - Installe un proxy pour les connexions mysqlnd
  • mysqlnd_uh.enable


Historique des modifications

Sommaire

  • Séries PECL/mysqlnd_uh 1.0

L'historique des modifications liste les modifications majeures que les utilisateurs doivent prendre en compte lors d'une mise à niveau d'une version à l'autre. C'est un résumé haut niveau de modifications sélectionnées qui peuvent impacter les applications et introduisent des cassures de compatibilité ascendantes. Voir aussi le fichier CHANGES présent dans les sources pour plus d'informations quant aux modifications.


Séries PECL/mysqlnd_uh 1.0

1.0.1-alpha

  • Date de sortie : TBD
  • Motto/thème : correction de bogues

Modifications des fonctionnalités

  • Support de PHP 5.4.0 et supérieure.
  • Cassure de compatiblité : MysqlndUhConnection::changeUser() requière un paramètre passwd_len additionnel.
  • Cassure de compatiblité : MYSQLND_UH_VERSION_STR a été renommé en MYSQLND_UH_VERSION. MYSQLND_UH_VERSION a été renommé en MYSQLND_UH_VERSION_ID.
  • Cassure de compatiblité : L'option de configuration mysqlnd_uh.enabled a été renommée en mysqlnd_uh.enable.

1.0.0-alpha

  • Date de sortie : 08/2010
  • Motto/thème : Version initiale


Plugin de multiplexage de connexions Mysqlnd

  • Introduction
  • Concepts
    • Architecture
    • File d'attente de connexions
    • Connexions partagées
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
  • Constantes pré-définies
  • Change History
    • Séries PECL/mysqlnd_mux 1.0


Introduction

Le plugin de multiplexage mysqlnd (mysqlnd_mux) multiplexe les connexions MySQL établies par toutes les extensions PHP MySQL qui utilisent le driver natif MySQL (mysqlnd) for PHP.

Le driver natif MySQL pour PHP fournit une API C interne pour les plugins, comme le plugin de multiplexage de connexions, qui peut étendre les fonctionalités de mysqlnd. Reportez-vous à la section sur mysqlnd pour plus de détails sur ces bénéfices par rapport à la bibliothèque client MySQL libmysqlclient.

Les plugins Mysqlnd comme mysqlnd_mux opèrent, pour la plupart, de façon transparente d'une point de vue utilisateur. Le plugin de multiplexage de connexions supporte toutes les applications PHP, et toutes les extensions MySQL de PHP. Il ne modifie en rien les APIs existantes. Aussi, il peut être utilisé facilement avec les applications PHP existantes.

Note:

Ceci est une preuve de concept. Toutes les fonctionalités sont à un stade précoce. Toutes les requêtes ne sont pas encore gérées par le plugin. Aussi, il ne peut pas être utilisé tel que pour le moment.

Veuillez ne pas utiliser cette version en environnement de production.

Fonctionalités clés

Les fonctionalités clés de mysqlnd_mux sont les suivantes :

  • Transparent, et donc, facile à utiliser :

    • Supporte toutes les extensions PHP MySQL.

    • Peu, voire aucune modification de l'application n'est nécessaire, suivant le scénario d'utilisation adopté.

  • Réduit la charge serveur et les latences de connexion :

    • Ouvre moins de connexions au serveur MySQL.

    • Moins de connexions à MySQL signifie moins de travail pour le serveur MySQL. Dans un environnement client-serveur, il est plus souvent difficile de tuner le serveur que le client. Le multiplexage va vous aider avec une optimisation horizontale.

    • La mise en file d'attente fait gagner du temps dans le durée de la connexion.

    • Le ultiplexage de connexions : les gestionnaires de plusieurs utilisateurs partagent la même connexion réseau. Une fois ouverte, une connexion réseau est mise en cache et partagée par plusieurs gestionnaires utilisateurs. Il y a une relation 1:n entre le connexion réseau interne et les gestionnaires de connexions utilisateurs.

    • Les connexions persistentes : une connexion réseau est conservée ouverte à la fin de la requête web, si le modèle de déploiement PHP l'autorise. Aussi, les requêtes web suivantes peuvent ré-utiliser une connexion ouverte précédemment. Tout comme les autres ressources, les connexions réseau sont liées au scope du processus. Aussi, elles peuvent être réutilisées pour toutes les requêtes web servies par un processus.

Limitations

La preuve de concept ne supporte pas les requêtes non mises en mémoire tampon, les requêtes préparées, et les requêtes asynchrones.

La file d'attente de connexions utilise une combinaison de la méthode de transport et du nom d'hôte comme clé. Aussi, deux connexions au même hôte, utilisant la même méthode de transport (TCP/IP, Unix socket, pipe nommé Windows) seront liées à la même connexion de la file d'attente, y compris si le nom de l'utilisateur et le mot de passe diffèrent. Soyez attentif aux implications possible en terme de sécurité.

La preuve de concept est une transaction agnostique ; aucun rapport avec les transactions SQL.

Note:

Les applications doivent être attentives aux conséquences liées aux partages de connexions.

A propos de mysqlnd_mux

Le raccourci mysqlnd_mux signifie mysqlnd connection multiplexing plugin.


Concepts

Sommaire

  • Architecture
  • File d'attente de connexions
  • Connexions partagées

Ce document explique l'architecture et les concepts relatifs de ce plugin. La lecture et la compréhension de ces concepts sont nécessaire afin d'utiliser ce plugin avec succès.


Architecture

Le plugin de multiplexage des connexions mysqlnd est implémenté sous la forme d'une extension PHP. Il est écrit en C et opère sous PHP. Lors du démarrage de l'interpréteur PHP, dans la phase d'initialisation des modules du moteur PHP, il sera enregistré comme un plugin mysqlnd pour remplacer des méthodes mysqlnd C spécifiques.

La bibliothèque mysqlnd utilise des flux PHP pour communiquer avec le serveur MySQL. Les flux PHP sont accédés par la bibliothèque mysqlnd via le module net. Le plugin de multiplexage de connexions mysqlnd agit comme un proxy pour les méthodes de la bibliothèque mysqlnd du module net pour contrôler, ouvrir et fermer les flux réseaux.

Avant d'ouvrir une connexion utilisateur à MySQL via les fonctions appropriées (mysqli, PDO_MYSQL ou ext/mysql), le plugin va rechercher une connexion réseau ouverte dans la file d'attente des connexions. Si la file d'attente contient une connexion réseau vers l'hôte spécifié par la fonction de connexion, utilisant la méthode de transport demandée (TCP/IP, Socket de domaine Unix, pipe nommé Windows), la connexion de la file est liée au gestionnaire utilisateur. Sinon, une nouvelle connexion réseau est ouverte, mise dans la file d'attente, et associée avec le gestionnaire de connexion utilisateur. De cette façon, de multiples gestionnaires utilisateurs peuvent être liés à la même connexion réseau.


File d'attente de connexions

Le plugin de mise en file d'attente de connexion est créé lorsque PHP initialise ces modules (MINIT) et libéré lorsque PHP éteint les modules (MSHUTDOWN). Ce mécanisme est identique aux connexions persistentes MySQL.

Suivant le modèle de déploiement, la file d'attente est utilisée pour la durée d'une ou plusieurs demandes web. Les connexions réseau sont liés à la durée de vie d'un processus au niveau du système d'exploitation. Si le processus PHP sert plusieurs demandes web comme c'est le cas pour des déploiements Fast-CGI ou des serveurs web threadés, alors les connexions de la file d'attente peuvent être ré-utilisées pour plusieurs connexions. Parce que le multiplexage signifie connexions partagées, il peut également être utilisé avec un déploiement threadé où deux threads ou deux demandes web distinctes sont liés à une connexion réseau de la file d'attente.

Une connexion de dile d'attente est explicitement fermée une fois que la dernière référence à cette dernière est libérée. Une fermeture implicite survient lorsque PHP éteint ses modules.


Connexions partagées

Le plugin de multiplexage de connexions mysqlnd PHP modifie la relation entre le gestionnaire de connexion utilisateur et la connexion sous jacente MySQL. Sans ce plugin, chaque connexion MySQL appartienne à seulement une connexion utilisateur à la fois. Le plugin de multiplexage modifie ce comportement. Une connexion MySQL est partagée pour plusieurs gestionnaires utilisateurs. Il n'y a plus de relation un-pour-un lors de l'utilisation de ce plugin.

Le partage de connexions de la file d'attente a un impact sur le statut de la connexion. Les opérations changeant le statut depuis de multiples gestionnaires utilisateurs pointant vers une connexion MySQL ne sont pas isolées les unes des autres. Si, par exemple, une variable de session est définie via un gestionnaire de connexion utilisateur, la variable de session devient visible de tous les autres gestionnaires utilisateurs qui utilisent la même connexion MySQL sous jacente.

Ce comportement est similaire au concept des statuts de connexion décrit dans le plugin de réplication et de balance de charge PHP mysqlnd. Veuillez vous reportez à la documentation PECL/mysqlnd_ms pour plus de détails sur les statuts d'une connexion.

La preuve de concept ne prend aucune mesure pour isoler les connexions multiplexées les unes des autres.


  • « Connexions partagées
  • Pré-requis »
  • PHP Manual
  • mysqlnd_mux
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Configuration à l'exécution


Pré-requis

PHP 5.5.0 ou supérieur. Quelques fonctionalités avancées nécessitent PHP 5.5.0 ou supérieur.

Le plugin de multiplexage mysqlnd_mux supporte toutes les applications PHP et toutes les extensions PHP MySQL (mysqli, mysql, PDO_MYSQL). L'extension PHP MySQL doit être configurée pour utiliser mysqlnd afin de pouvoir utiliser le plugin mysqlnd_mux pour mysqlnd.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mysqlnd_mux


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Mysqlnd_mux
Nom | Défaut | Modifiable | Historique
mysqlnd_mux.enable | 0 | PHP_INI_SYSTEM |

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqlnd_mux.enable integer

Active ou désactive le plugin. Si désactivé, l'extension ne se raccordera pas à mysqlnd pour se comporter comme proxy des appels API C mysqlnd.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Other

Le numéro de version du plugin peut être obtenu en utilisant la constante MYSQLND_MUX_VERSION ou la constante MYSQLND_MUX_VERSION_ID. La constante MYSQLND_MUX_VERSION est la représentation sous forme de chaîne de caractères du numéro de version numérique MYSQLND_MUX_VERSION_ID, qui est un entier comme par exemple, 10000. Les développeurs peuvent calculer le numéro de version comme ceci.

Version (partie) | Exemple
Majeur*10000 | 1*10000 = 10000
Mineur*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_MUX_VERSION_ID | 10000

MYSQLND_MUX_VERSION (chaîne de caractères)
Chaîne de caractère représentant la version du plugin, par exemple "1.0.0-prototype".
MYSQLND_MUX_VERSION_ID (entier)
Numéro de version du plugin, par exemple, 10000.


Change History

Sommaire

  • Séries PECL/mysqlnd_mux 1.0

Cette historique de modifications est un résumé haut niveau de modifications sélectionnées qui peuvent impacter les applications et/ou la compatibilité ascendante.

Voir aussi le fichier CHANGES dans les sources de la distribution pour une liste complète des modifications.


Séries PECL/mysqlnd_mux 1.0

1.0.0-pre-alpha

  • Date de mise à disposition : aucun paquet sorti, mise à disposition initial en Septembre 2012.
  • Motto/thème : Preuve de concept.

Mise à disposition initiale. Essentiellement une démonstration de l'API plugin de mysqlnd.

Note:

C'est la série courante de développement. Toutes les fonctionalités sont à un stage précoce. Des modificiations peuvent survenir à tout moment sans aucune annonce préalable. Veuillez ne pas utiliser cette version dans un environnement de production.

La documentation peut ne pas refléter actuellement toutes les modifications.


Plugin Mysqlnd Memcache

  • Introduction
  • Démarrage rapide et exemples
    • Mise en place
    • Utilisation
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
  • Constantes pré-définies
  • Fonctions Mysqlnd_memcache
    • mysqlnd_memcache_get_config — Retourne les informations concernant la configuration du plugin
    • mysqlnd_memcache_set — Associe une connexion MySQL avec une connexion Memcache
  • Historique des modifications
    • Séries PECL/mysqlnd_memcache 1.0


Introduction

Le plugin mysqlnd memcache (mysqlnd_memcache) est une extension PHP pour traduire de façon transparente le SQL en requêtes pour le plugin MySQL InnoDB Memcached Daemon (plugin côté serveur). Il inclut un support expérimental pour le Daémon MySQL Cluster Memcached. Le plugin côté serveur fournit un accès aux données stockées dans des tables MySQL InnoDB (respectivement MySQL Cluster NDB) en utilisant le protocole Memcache. Cette extension PHP, qui supporte toutes les extensions PHP MySQL qui utilisent mysqlnd, va identifier les tables exportées de cette façon, et va traduire les requêtes SELECT en requêtes Memcache.

Flux de données mysqlnd_memcache

Note:

Ce plugin dépend du plugin MySQL InnoDB Memcached Daemon. Il n'est pas fourni pour être utilisé avec un Memcache seul. Pour un gestionnaire de cache générique utilisant Memcache, utilisez plutôt le plugin de mise en cache de requête mysqlnd. Pour un accès direct à Memcache, tournez-vous du côté des extensions memcache et memcached.

Le driver natif MySQL pour PHP est une bibliothèque C qui fonctionne avec PHP depuis PHP 5.3.0. Il agit comme remplaçant de la bibliothèque cliente MySQL (libmysqlclient). L'utilisation de mysqlnd a plusieurs avantages : aucune extension à télépharger n'est nécessaire, car il est fourni avec PHP, il est sous licence PHP, il consomme moins de mémoire dans certain cas, et il contient de nouvelles fonctionalités comme les requêtes asynchrones.

mysqlnd_mmemcache opère, dans la plupart des cas, de façon transparente d'un point de vue utilisateur. Le plugin mysqlnd memcache supporte toutes les applications PHP, et toutes les extensions MySQL de PHP. Il ne modifie en rien les APIs existantes. Aussi, il peut être utilisé très facilement avec toutes les applications PHP existantes.

Le plugin MySQL Memcache ajoute des méthodes d'accès de type clé-valeur pour les données stockées dans des tables InnoDB resp. NDB (MySQL Cluster) SQL via le protocole Memcache. Ce type d'accès est bien plus rapide que d'utiliser SQL.

Fonctionalités clés

Voici les fonctionalités clés de PECL/mysqlnd_memcache :

  • De possible bénéfice en terme de performance

    • Côté client : protocole léger.

    • Côté serveur : aucune analyse SQL, accès direct au stockage.

    • Vous pouvez utiliser nos propres tests de performance ! Les résultats de ces tests sont hautement dépendants de la configuration et du matériel utilisés.

Limitations

La version initiale n'est pas sécurisé niveau binaire. En raison de la façon dont le plugin MySQL Memcache fonctionne, il y a des restrictions au niveau des séparateurs.

Les requêtes préparées et asynchrones ne sont pas supportées. Le support des méta-données du jeu de résultats est limité.

Les informations de mappage des tables accessibles via Memcache ne sont pas mises en cache dans le plugin entre les requêtes, mais récupérées depuis le serveur MySQL à chaque fois qu'une connexion MySQL est associée avec une connexion Memcache. Voir la fonction mysqlnd_memcache_set() pour plus de détails.

A propos du nom

Le raccourci mysqlnd_memcache signifie mysqlnd memcache plugin. Memcache se repose sur le plugin MySQL Memcache pour InnoDB et NDB (MySQL Cluster). Le plugin n'est pas lié au serveur de cache Memcache.


Démarrage rapide et exemples

Sommaire

  • Mise en place
  • Utilisation

Le plugin mysqlnd memcache est très simple d'utilisation. Ce démarrage rapide va vous présenter quelques utilisations typiques, et vous fournir également quelques avertissements.

Il est vivement recommandé de lire les sections de référence en plus de ce document. Le démarrage rapide ne va pas aborder les concepts théoriques ainsi que les limitations. Au lieu de cela, il vous renverra vers les sections de référence. Il est plus prudent de commencer par le démarrage rapide. Cependant, avant l'utilisation de ce plugin dans des environnements cruciaux, nous vous recommandons vivement de lire d'autres informations internes que vous trouverez dans les sections de référence.


Mise en place

Le plugin est implémenté sous la forme d'une extension PHP. Voir aussi les instructions d'installation pour installer cette extension.

Compilez ou configurez l'extension PHP MySQL (API) (mysqli, PDO_MYSQL, ou mysql). Cette extension doit utiliser la bibliothèque mysqlnd car mysqlnd_memcache est un plugin pour la bibliothèque mysqlnd. Pour plus d'informations, référez-vous aux instructions d'installation mysqlnd_memcache.

Ensuite, chargez cette extension dans PHP, et activez le plugin dans le fichier de configuration PHP, en utilisant la directive de configuration mysqlnd_memcache.enable.

Exemple #1 Activation du plugin (php.ini)

; Sous Windows, le nom du fichier est php_mysqnd_memcache.dll
; Charge l'extension
extension=mysqlnd_memcache.so
; L'active
mysqlnd_memcache.enable=1

Suivez les instructions fournies dans le » manuel de référence MySQL sur l'installation des plugins Memcache pour le serveur MySQL. Activez le plugin et configure l'accès Memcache aux tables SQL.

Les exemples dans le guide de démarrage rapide assume que les tables suivantes existent, et que Memcache est configuré pour y accéder.

Exemple #2 Table SQL utilisée dans le démarrage rapide

CREATE TABLE test(
  id CHAR(16),
  f1 VARCHAR(255),
  f2 VARCHAR(255),
  f3 VARCHAR(255),
  flags INT NOT NULL,
  cas_column INT,
  expire_time_column INT,
  PRIMARY KEY(id)
  ) ENGINE=InnoDB;

INSERT INTO test (id, f1, f2, f3) VALUES (1, 'Hello', 'World', '!');
INSERT INTO test (id, f1, f2, f3) VALUES (2, 'Lady', 'and', 'the tramp');

INSERT INTO innodb_memcache.containers(
  name, db_schema, db_table, key_columns, value_columns,
  flags, cas_column, expire_time_column, unique_idx_name_on_key)
VALUES (
  'plugin_test', 'test', 'test', 'id', 'f1,f2,f3',
  'flags', 'cas_column', 'expire_time_column', 'PRIMARY KEY');


Utilisation

Après association d'une connexion MySQL avec une connexion Memcache en utilisant la fonction mysqnd_memcache_set(), le plugin tente de remplacer de façon transparente les requêtes SQL de type SELECT par un accès memcache. Dans ce but, le plugin surveille toutes les requêtes SQL exécutées et tente de faire correspondre chaque chaîne de requête avec l'expression rationnelle MYSQLND_MEMCACHE_DEFAULT_REGEXP. Dans le cas d'une correspondance, le plugin mysqlnd memcache vérifie si la requête SELECT tente d'accéder qu'à des colonnes d'une table mappée et la clause WHERE se limite à une seule clé de recherche.

Dans le cas de la table SQL d'exemple, le plugin utilisera l'interface Memcache du serveur MySQL pour récupérer les résultats pour une requête SQL comme : SELECT f1, f2, f3 WHERE id = n.

Exemple #1 Exemple simple

<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc);

/* Requête de la table test en utilisant l'ID comme clé dans la clause
   WHERE et accès des champs f1, f2 et f3. Toutefois, mysqlnd_memcache
   va l'intercepter et l'envoyer via memcache.
*/
$result = $mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");
while ($row = $result->fetch_row()) {
    print_r($row);
}
/* Requête de la table test mais en utilisant f1 dans la clause WHERE.
   Toutefois, mysqlnd_memcache ne peut pas l'intercepter. Elle sera exécutée
   en utilisant le protocole MySQL
*/
$mysqli->query("SELECT id FROM test WHERE f1 = 'Lady'");
while ($row = $result->fetch_row()) {
    print_r($row);
}
?>

L'exemple ci-dessus va afficher :

array(
    [f1] => Hello
    [f2] => World
    [f3] => !
)
array(
    [id] => 2
)


  • « Utilisation
  • Pré-requis »
  • PHP Manual
  • mysqlnd_memcache
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Configuration à l'exécution


Pré-requis

PHP : cette extension requiert PHP 5.4+, version 5.4.4 ou supérieure. Les extenions PHP requises sont PCRE (activée par défaut) et l'extension memcached version 2.0.x

Le plugin mysqlnd_memcache Memcache est compatible avec toutes les applications PHP et toutes les extensions PHP MySQL disponibles (mysqli, mysql, PDO_MYSQL). L'extension PHP MySQL doit être configurée avec le support de mysqlnd.

Pour accéder à des tables InnoDB, cette extension PHP requiert MySQL Server 5.6.6 ou une version plus récente avec le plugin InnoDB Memcache Daemon activé.

Pour accéder à des tables MySQL Cluster NDB, cette extension PHP requiert MySQL Cluster 7.2 ou une version plus récente avec NDB Memcache API nodes activé.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mysqlnd_memcache

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Mysqlnd_memcache
Nom | Défaut | Modifiable | Historique
mysqlnd_memcache.enable | 1 | PHP_INI_SYSTEM | Disponible depuis la version 1.0.0

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqlnd_memcache.enable integer

Active ou désactive le plugin. Si désactivé, l'extension ne se raccordera pas à mysqlnd pour se comporter comme proxy des appels API C mysqlnd.

Note:

Cette option est principalement utilisée par les développeurs pour intégrer cette extension statiquement dans PHP. Les utilisateurs sont encouragés à utiliser cette extension comme un objet partagé et de le décharger complètement quand elle n'est pas nécessaire.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

En relation avec le plugin MySQL Memcache

MYSQLND_MEMCACHE_DEFAULT_REGEXP (chaîne de caractères)
Expression rationnelle par défaut (style PCRE) utilisée pour trouver les requêtes SELECT à mapper dans le point d'accès du plugin MySQL Memcache, si possible. Il est également possible d'utiliser la fonction mysqlnd_memcache_set(), mais l'approche par défaut est l'utilisation d'une expression rationnelle pour trouver le masque.

Assorted

Le numéro de version de ce plugin peut être obtenu en utilisant les constantes MYSQLND_MEMCACHE_VERSION ou MYSQLND_MEMCACHE_VERSION_ID. La constante MYSQLND_MEMCACHE_VERSION est une représentation sous forme de chaîne de caractères du numéro de version numérique contenu dans la constante MYSQLND_MEMCACHE_VERSION_ID, qui est un entier comme 10000. Les développeurs peuvent calculer le numéro de version comme ceci :

Version (partie) | Exemple
Majeur*10000 | 1*10000 = 10000
Mineur*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_MEMCACHE_VERSION_ID | 10000

MYSQLND_MEMCACHE_VERSION (chaîne de caractères)
Chaîne de caractères représentant la version du plugin, par exemple, "1.0.0-alpha".
MYSQLND_MEMCACHE_VERSION_ID (entier)
Numéro de version du plugin, par exemple, 10000.


Fonctions Mysqlnd_memcache

Sommaire

  • mysqlnd_memcache_get_config — Retourne les informations concernant la configuration du plugin
  • mysqlnd_memcache_set — Associe une connexion MySQL avec une connexion Memcache


Retourne les informations concernant la configuration du plugin

  • « Fonctions Mysqlnd_memcache
  • mysqlnd_memcache_set »
  • PHP Manual
  • Fonctions Mysqlnd_memcache
  • Retourne les informations concernant la configuration du plugin

mysqlnd_memcache_get_config

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_get_config — Retourne les informations concernant la configuration du plugin

Description

array mysqlnd_memcache_get_config ( mixed $connection )

Cette fonction retourne un tableau contenant les informations relatives à mysqlnd_memcache attaché à la connexion MySQL. Ceci inclut MySQL, l'objet Memcache fourni via la fonction mysqlnd_memcache_set(), et la configuration de la table de mapping qui a été collectée automatiquement depuis le serveur MySQL.

Liste de paramètres

connection

Un gestionnaire de connexion au serveur MySQL, utilisant une des extensions MySQL API de PHP, pouvant être PDO_MYSQL, mysqli ou ext/mysql.

Valeurs de retour

Un tableau contenant les informations de configuration mysqlnd_memcache en cas de succès, ou FALSE sinon.

Le tableau retourné contient trois éléments :

Structure du tableau retourné par mysqlnd_memcache_get_config()
Clé du tableau | Description
memcached | Une instance Memcache associée à la connexion MySQL par mysqlnd_memcache_set(). Vous pouvez l'utiliser pour modifier la configuration de la connexion Memcache, ou directement, en requétant le serveur sur cette connexion.
pattern | L'expression rationnelle PCRE utilisée pour faire correspondre la requête SQL envoyée au serveur. Les requêtes correspondantes à ce masque seront par la suite analysées afin de décider si la requête doit être interceptée et envoyée via l'interface memcache ou si elle doit être envoyée en utilisant le protocole général MySQL au serveur. Le masque est soit le masque par défaut (MYSQLND_MEMCACHE_DEFAULT_REGEXP) ou celui définit via la fonction mysqlnd_memcache_set().
mappings | Un tableau associatif contenant une liste de tous les conteneurs configurés, tels qu'ils sont découverts par ce plugin. La clé pour ces éléments sera le nom du conteneur tel que présent dans la configuration MySQL. La valeur est décrite ci-dessous. Le contenu de ce champ est créé en interrogeant le serveur MySQL lors de l'association de la connexion MySQL et de la connexion Memcache, en utilisant la fonction mysqlnd_memcache_set().
mapping_query | Une requête SQL utilisée lors de l'appel à la fonction mysqlnd_memcache_set() pour identifier les conteneurs et les mappings disponibles. Le résultat de cette requête est fournie dans l'élément de mappings.
Mappage de la structure d'entrée
Clé du tableau | Description
prefix | Un préfixe utilisé lors de l'accès aux données via memcache. Avec le plugin MySQL InnoDB Memcache Deamon, il commence habituellement par @@ et termine avec un séparateur configurable. Le préfixe est placé au début de la valeur de la clé lors de l'utilisation du protocole memcache.
schema_name | Nom du shéma (base de données) qui contient la table à accéder.
table_name | Nom de la table qui contient les données accessibles via le protocole memcache.
id_field_name | Nom du champ de la base de données (colonne) avec l'ID utilisé comme clé lors de l'accès à la table via memcache. Y compris si le champ de la base de données a une clé primaire.
separator Le séparateur utilisé pour couper les différentes valeurs du champ. Il est nécessaire sachant que memcache ne permet l'accès qu'à une seule donnée, alors que MySQL peut mapper plusieurs colonnes à cette valeur.

Note:

Le séparateur, qui peut être défini dans la configuration du serveur MySQL, ne doit faire parti d'aucune valeur récupérée via memcache, sinon un mappage correct ne peut être garanti.

fields | Un tableau avec le nom de tous les champs disponibles pour ce mappage.

Exemples

Exemple #1 Exemple avec mysqlnd_memcache_get_config()

<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc);

var_dump(mysqlnd_memcache_get_config($mysqli));
?>

L'exemple ci-dessus va afficher :

array(4) {
  ["memcached"]=>
  object(Memcached)#2 (0) {
  }
  ["pattern"]=>
  string(125) "/^\s*SELECT\s*(.+?)\s*FROM\s*`?([a-z0-9_]+)`?\s*WHERE\s*`?([a-z0-9_]+)`?\s*=\s*(?(?=["'])["']([^"']*)["']|([0-9e\.]*))\s*$/is"
  ["mappings"]=>
  array(1) {
    ["mymem_test"]=>
    array(6) {
      ["prefix"]=>
      string(13) "@@mymem_test."
      ["schema_name"]=>
      string(4) "test"
      ["table_name"]=>
      string(10) "mymem_test"
      ["id_field_name"]=>
      string(2) "id"
      ["separator"]=>
      string(1) "|"
      ["fields"]=>
      array(3) {
        [0]=>
        string(2) "f1"
        [1]=>
        string(2) "f2"
        [2]=>
        string(2) "f3"
      }
    }
  }
  ["mapping_query"]=>
  string(209) "    SELECT c.name,
                          CONCAT('@@', c.name, (SELECT value FROM innodb_memcache.config_options WHERE name = 'table_map_delimiter')) AS key_prefix,
                          c.db_schema,
                          c.db_table,
                          c.key_columns,
                          c.value_columns,
                          (SELECT value FROM innodb_memcache.config_options WHERE name = 'separator') AS sep
                     FROM innodb_memcache.containers c"
}

Voir aussi

  • mysqlnd_memcache_set() - Associe une connexion MySQL avec une connexion Memcache


Associe une connexion MySQL avec une connexion Memcache

  • « mysqlnd_memcache_get_config
  • Historique des modifications »
  • PHP Manual
  • Fonctions Mysqlnd_memcache
  • Associe une connexion MySQL avec une connexion Memcache

mysqlnd_memcache_set

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_set — Associe une connexion MySQL avec une connexion Memcache

Description

bool mysqlnd_memcache_set ( mixed $mysql_connection [, Memcached $memcache_connection [, string $pattern [, callback $callback ]]] )

Associe une connexion mysql_connection avec une connexion memcache_connection en utilisant le paramètre pattern comme expression rationnelle PCRE, et le paramètre callback comme notification de rappel, ou pour réinitialiser l'association de la connexion mysql_connection.

Lors de l'association d'une connexion MySQL avec une connexion Memcache, cette fonction va interroger le serveur MySQL pour en connaître sa configuration. Elle va ainsi automatiquement détecter si le serveur est configuré pour utiliser le plugin InnoDB Memcache Daemon, ou le support MySQL Cluster NDB Memcache. Elle va également interroger le serveur afin d'identifier automatiquement les tables exportées, ainsi que d'autres options de configuration. Le résultat de cette configuration automatique peut être récupéré en utilisant la fonction mysqlnd_memcache_get_config().

Liste de paramètres

mysql_connection

Un gestionnaire de serveur MySQL, en utilisant une des extensions API MySQL de PHP, qui sont PDO_MYSQL, mysqli ou ext/mysql.

memcache_connection

Une instance Memcached avec une connexion au plugin MySQL Memcache Daemon. Si ce paramètre est omis, alors mysql_connection sera dé-associée de toute connexion memcache. Et si une précédente association existait, alors elle sera remplacée.

pattern

Une expression rationnelle au format PCRE pour identifier les requêtes potentielles Memcache. La requête doit avoir trois sous-masques. Le premier contient la liste des champs demandés, le second, le nom de la colonne ID depuis la requête, et le troisième, la valeur demandée. Si ce paramètre est omis, ou défini à NULL, alors un masque par défaut sera utilisé.

callback

Une fonction de rappel qui sera utilisée à chaque fois que la requête est envoyée à MySQL. Elle ne reçoit qu'un seul paramètre, un booléen, indiquant si la requête a été envoyée via Memcache.

Valeurs de retour

TRUE si l'association ou la dé-association a été un succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysqlnd_memcache_set() et var_dump() comme fonction de rappel de déboguage.

<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc, NULL, 'var_dump');

/* Cette requête sera interceptée et exécutée via le protocole Memcache */
echo "Envoi de la requête pour l'ID via Memcache : ";
$mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");

/* f1 n'est pas configuré comme une clé de champ valide, cette requête ne sera pas envoyée via Memcache */
echo "Envoi de la requête pour f1 via Memcache : ";
$mysqli->query("SELECT id FROM test WHERE f1 = 1");

mysqlnd_memcache_set($mysqli);

/* Maintenant, le protocole régulier MySQL sera utilisé */
echo "var_dump ne sera pas appelé : ";
$mysqli->query("SELECT f1, f2, f3 WHERE id = 1");

?>

L'exemple ci-dessus va afficher :

Envoi de la requête pour l'ID via Memcache: bool(true)
Envoi de la requête pour f1 via Memcache: bool(false)
var_dump ne sera pas appelé :

Voir aussi

  • mysqlnd_memcache_get_config() - Retourne les informations concernant la configuration du plugin


Historique des modifications

Sommaire

  • Séries PECL/mysqlnd_memcache 1.0

L'historique des modifications liste les modifications majeures que les utilisateurs doivent prendre en compte lors d'une mise à niveau d'une version à l'autre. C'est un résumé haut niveau de modifications sélectionnées qui peuvent impacter les applications et introduisent des cassures de compatibilité ascendantes.

Voir aussi le fichier CHANGES présent dans les sources pour plus d'informations quant aux modifications.


Séries PECL/mysqlnd_memcache 1.0

1.0.0-alpha

  • Date de sortie : TBD
  • Motto/thème : Mappage simple de SELECT SQL vers l'accès au plugin MySQL Memcache plugin access.

La version initiale fournit un mappage simple des requêtes SELECT SQL vers l'accès au plugin MySQL Memcache. Ceci a un bénéfice certain, sachant que l'accès direct clé-valeur au stockage MySQL en utilisant le protocole Memcache est plus rapide que l'utilisation SQL classique.


Oracle OCI8

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Test
    • Configuration à l'exécution
  • Constantes pré-définies
  • Exemples
  • Gestion de la connexion OCI8 et de la mise en file d'attente
  • Support de FAN (Fast Application Notification : Application de notification Rapide) OCI8
  • OCI8 et le suivi dynamique DTrace
  • Types de données supportées par le driver
  • Fonctions OCI8
    • oci_bind_array_by_name — Lie un tableau PHP à un paramètre de tableau Oracle PL/SQL
    • oci_bind_by_name — Associe une variable PHP à un marqueur Oracle
    • oci_cancel — Termine la lecture de curseurs Oracle
    • oci_client_version — Retourne la version de la bibliothèque cliente Oracle
    • oci_close — Ferme une connexion Oracle
    • oci_commit — Valide les transactions Oracle en cours
    • oci_connect — Établit une connexion avec un serveur Oracle
    • oci_define_by_name — Associe une variable PHP avec une colonne pour une requête de récupération de données
    • oci_error — Retourne la dernière erreur Oracle
    • oci_execute — Exécute une commande SQL Oracle
    • oci_fetch_all — Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
    • oci_fetch_array — Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
    • oci_fetch_assoc — Lit une ligne d'un résultat sous forme de tableau associatif
    • oci_fetch_object — Lit une ligne d'un résultat sous forme d'objet
    • oci_fetch_row — Lit la prochaine ligne d'une requête sous forme de tableau numérique
    • oci_fetch — Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
    • oci_field_is_null — Test si un champ de la ligne récupérée vaut NULL
    • oci_field_name — Retourne le nom d'un champ Oracle
    • oci_field_precision — Lit la précision d'un champ Oracle
    • oci_field_scale — Lit l'échelle d'une colonne Oracle
    • oci_field_size — Retourne la taille d'un champ Oracle
    • oci_field_type_raw — Lit les données brutes du type d'un champ
    • oci_field_type — Retourne le type de données d'un champ Oracle
    • oci_free_descriptor — Libère un descripteur
    • oci_free_statement — Libère toutes les ressources réservées par un résultat Oracle
    • oci_get_implicit_resultset — Retourne le fils suivant d'une ressource de requête depuis une ressource de requête parent qui a un jeu de résultat implicite Oracle Database 12c
    • oci_internal_debug — Active ou désactive l'affichage des données de déboguage Oracle
    • oci_lob_copy — Copie un LOB Oracle
    • oci_lob_is_equal — Compare deux LOB/FILE Oracle
    • oci_new_collection — Initialise une nouvelle collection Oracle
    • oci_new_connect — Connexion au serveur Oracle en utilisant une seule connexion
    • oci_new_cursor — Alloue et retourne un nouveau curseur Oracle
    • oci_new_descriptor — Initialise un nouveau pointeur vide de LOB/FILE Oracle
    • oci_num_fields — Retourne le nombre de colonnes dans un résultat Oracle
    • oci_num_rows — Retourne le nombre de lignes affectées durant la dernière commande Oracle
    • oci_parse — Prépare une requête SQL avec Oracle
    • oci_password_change — Modifie le mot de passe d'un utilisateur Oracle
    • oci_pconnect — Ouvre une connexion persistante à un serveur Oracle
    • oci_result — Retourne la valeur d'une colonne dans un résultat Oracle
    • oci_rollback — Annule les transactions Oracle en cours
    • oci_server_version — Retourne la version du serveur Oracle
    • oci_set_action — Définit le nom de l'action
    • oci_set_client_identifier — Définit l'identifiant du client
    • oci_set_client_info — Définit l'information concernant le client
    • oci_set_edition — Définit l'édition de la base de données
    • oci_set_module_name — Définit le nom du module
    • oci_set_prefetch — Indique le nombre de lignes qui doivent être lues à l'avance par Oracle
    • oci_statement_type — Retourne le type de la requête Oracle
  • OCI-Collection — La classe OCI-Collection
    • OCI-Collection::append — Ajoute un élément à une collection Oracle
    • OCI-Collection::assign — Assigne une valeur à une collection depuis une autre collection Oracle
    • OCI-Collection::assignElem — Assigne une valeur à un élément d'une collection Oracle
    • OCI-Collection::free — Libère les ressources associées avec un objet de collection
    • OCI-Collection::getElem — Retourne la valeur d'un élément d'une collection Oracle
    • OCI-Collection::max — Retourne le nombre maximal de valeurs d'une collection Oracle
    • OCI-Collection::size — Retourne la taille d'une collection Oracle
    • OCI-Collection::trim — Supprime les derniers éléments d'une collection Oracle
  • OCI-Lob — La classe OCI-Lob
    • OCI-Lob::append — Ajoute des données à un LOB Oracle
    • OCI-Lob::close — Ferme un LOB Oracle
    • OCI-Lob::eof — Test la fin du LOB Oracle
    • OCI-Lob::erase — Écrase une partie d'un LOB Oracle
    • OCI-Lob::export — Exporte un LOB Oracle dans un fichier
    • OCI-Lob::flush — Écrit les LOB Oracle sur le disque
    • OCI-Lob::free — Détruit un pointeur de LOB Oracle
    • OCI-Lob::getBuffering — Retourne l'état de bufferisation LOB d'Oracle
    • OCI-Lob::import — Importe un fichier dans LOB Oracle
    • OCI-Lob::load — Retourne le contenu d'un LOB
    • OCI-Lob::read — Lit une partie d'un LOB Oracle
    • OCI-Lob::rewind — Ramène le pointeur interne d'un LOB Oracle au début
    • OCI-Lob::save — Sauvegarde des données dans un LOB Oracle
    • OCI-Lob::saveFile — Alias de OCI-Lob::import
    • OCI-Lob::seek — Déplace le pointeur interne d'un LOB Oracle
    • OCI-Lob::setBuffering — Active/désactive la bufferisation des LOB Oracle
    • OCI-Lob::size — Retourne la taille d'un LOB Oracle
    • OCI-Lob::tell — Retourne la position courante du pointeur de LOB
    • OCI-Lob::truncate — Tronque un LOB Oracle
    • OCI-Lob::write — Écrit des données dans un LOB Oracle
    • OCI-Lob::writeTemporary — Écrit un LOB Oracle temporaire
    • OCI-Lob::writeToFile — Alias de OCI-Lob::export
  • Fonctions et alias OCI8 obsolètes
    • ocibindbyname — Alias de oci_bind_by_name
    • ocicancel — Alias de oci_cancel
    • ocicloselob — Alias de OCI-Lob::close
    • ocicollappend — Alias de OCI-Collection::append
    • ocicollassign — Alias de OCI-Collection::assign
    • ocicollassignelem — Alias de OCI-Collection::assignElem
    • ocicollgetelem — Alias de OCI-Collection::getElem
    • ocicollmax — Alias de OCI-Collection::max
    • ocicollsize — Alias de OCI-Collection::size
    • ocicolltrim — Alias de OCI-Collection::trim
    • ocicolumnisnull — Alias de oci_field_is_null
    • ocicolumnname — Alias de oci_field_name
    • ocicolumnprecision — Alias de oci_field_precision
    • ocicolumnscale — Alias de oci_field_scale
    • ocicolumnsize — Alias de oci_field_size
    • ocicolumntype — Alias de oci_field_type
    • ocicolumntyperaw — Alias de oci_field_type_raw
    • ocicommit — Alias de oci_commit
    • ocidefinebyname — Alias de oci_define_by_name
    • ocierror — Alias de oci_error
    • ociexecute — Alias de oci_execute
    • ocifetch — Alias de oci_fetch
    • ocifetchinto — Variante obsolète de la fonction oci_fetch_array, oci_fetch_object, oci_fetch_assoc and oci_fetch_row
    • ocifetchstatement — Alias de oci_fetch_all
    • ocifreecollection — Alias de OCI-Collection::free
    • ocifreecursor — Alias de oci_free_statement
    • ocifreedesc — Alias de OCI-Lob::free
    • ocifreestatement — Alias de oci_free_statement
    • ociinternaldebug — Alias de oci_internal_debug
    • ociloadlob — Alias de OCI-Lob::load
    • ocilogoff — Alias de oci_close
    • ocilogon — Alias de oci_connect
    • ocinewcollection — Alias de oci_new_collection
    • ocinewcursor — Alias de oci_new_cursor
    • ocinewdescriptor — Alias de oci_new_descriptor
    • ocinlogon — Alias de oci_new_connect
    • ocinumcols — Alias de oci_num_fields
    • ociparse — Alias de oci_parse
    • ociplogon — Alias de oci_pconnect
    • ociresult — Alias de oci_result
    • ocirollback — Alias de oci_rollback
    • ocirowcount — Alias de oci_num_rows
    • ocisavelob — Alias de OCI-Lob::save
    • ocisavelobfile — Alias de OCI-Lob::import
    • ociserverversion — Alias de oci_server_version
    • ocisetprefetch — Alias de oci_set_prefetch
    • ocistatementtype — Alias de oci_statement_type
    • ociwritelobtofile — Alias de OCI-Lob::export
    • ociwritetemporarylob — Alias de OCI-Lob::writeTemporary


Introduction

Ces fonctions vous permettent d'accéder aux serveurs Oracle 12c, 11g, 10g, 9i et 8i. Elles supportent les commandes SQL et PL/SQL. Les fonctions de base incluent le contrôle de transaction, la liaison de variables PHP avec des conteneurs Oracle, le support des types de grands objets (LOB) et des collections. Les fonctions d'extensibilité de Oracle, telles que de Database Resident Connection Pooling (DRCP) et le cache de résultats sont aussi supportés.


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Test
  • Configuration à l'exécution


Pré-requis

L'extension OCI8 1.4 est incluse avec PHP 5.3, PHP 5.4 et PHP 5.5. Elle est également disponible depuis » PECL. Une version OCI8 2.0 plus récente est disponible uniquement depuis » PECL. OCI8 1.4 requiert les bibliothèques clientes Oracle 12c, 11g, 10g ou 9iR2 et peut s'installer sur PHP 4.3.9 et suivants. OCI8 2.0 requiert les bibliothèques clientes Oracle 12c, 11g ou 10g et peut s'installer sur PHP 5.2 et suivants.

Si la base de données Oracle est sur la même machine que PHP, le logiciel de base de données contient déjà les bibliothèques nécessaires. Lorsque PHP est sur une machine différente, utilisez les bibliothèques gratuites » Oracle Instant Client.

Pour utiliser Oracle Instant Client, installez le fichier compressé basic ou basiclite de Oracle Instant Client ou le paquet RPM. Lorsque vous compilez PHP depuis ces sources, installez également le fichier compressé sdk ou le paquet RPM devel.

Vous devez exécuter PHP avec la même version ou une version plus récente des bibliothèques clients Oracle utilisées pour construire OCI8.

Sous Windows, la bibliothèque DLL php_oci8 requiert les bibliothèques clientes depuis la version 10gR2 ou supérieure. En PHP 5.3, incluant PHP 5.3.5, la bibliothèque DLL php_oci8_11g requiert les bibliothèques clientes Oracle 11gR1 ou supérieur. A partir de PHP 5.3.6, la bibliothèque DLL php_oci8_11g requiert les bibliothèques clientes Oracle 11gR2 ou supérieur. Depuis PHP 5.3.6, la bibliothèque DLL php_oci8_11g requiert les bibliothèques clientes Oracle 11gR2 ou supérieures. La bibliothèque DLL php_oci8_12c depuis PECL requiert les bibliothèques clientes Oracle 12cR1. Suivant la version du client Instant, vous pourriez également avoir besoin des bibliothèques mfc71.dll et msvcr71.dll.

Note:

Si OCI8 utilise les bibliothèques clientes 9iR2, alors PHP peut se connecter aux bases de données Oracle 8i, 9iR2, 10g ou 11g. Si OCI8 utilise les bibliothèques clientes 10gR2, la base de données peut être 9iR2, 10g, 11g ou 12c. Si OCI8 utilise les bibliothèques clientes 11g, la base de données peut être 9iR2, 10g, 11g ou 12c. Si OCI8 utilise les bibliothèques clientes 12c, la base de données peut être 10gR2, 11g ou 12c.

Note:

Le support de toutes les fonctionnalités OCI8 n'est disponible que lors de l'utilisation des versions les plus récentes des bibliothèques clientes Oracle mais aussi de la base de données la plus récente.


Installation

Configuration de PHP avec OCI8

Relisez la section précédente sur les Pré-requis avant de configurer OCI8.

Pour activer l'extension OCI8, configurez PHP avec l'option --with-oci8 .

Avant de démarrer le serveur web, OCI8, typiquement, nécessite plusieurs variables d'environnement (voir ci-dessous) pour localiser les bibliothèques, pour pointer vers des fichiers de configuration, et pour définir quelques propriétés basiques comme le jeu de caractères utilisé par les bibliothèques OCI8. Les variables doivent être définies avant le démarrage d'un quelconque processus PHP.

Le binaire PHP doit être lié avec les mêmes (ou plus récentes) versions majeures des bibliothèques Oracle pour lesquelles il a été configuré. Par exemple, si vous compilez OCI8 avec les bibliothèques Oracle 11.2, alors PHP doit aussi être déployé et exécuté avec les bibliothèques Oracle 11.2. Les applications PHP peuvent se connecter à d'autres versions de base de données Oracle, sachant qu'Oracle contient des compatibilités de versions des différents clients - serveurs.

Installation OCI8 comme extension partagée

L'option de configuration shared permet de construire OCI8 comme bibliothèque partagée qui pourra être chargée dynamiquement dans PHP. Le fait de construire une extension partagée permet à OCI8 d'être mis à jour plus facilement sans pour autant impacter le reste de PHP.

Configure OCI8 en utilisant une des options de configuration suivantes :

  • Si vous utilisez les bibliothèques gratuites » Oracle Instant Client, alors vous pouvez faire :

    ./configure --with-oci8=shared,instantclient,/path/to/instant/client/lib

    Si le client Oracle Instant est installé depuis des fichiers compressées, assurez-vous de créer d'abord le lien symbolique vers la bibliothèque, par exemple, ln -s libclntsh.so.12.1 libclntsh.so.

    Si vous utilisez une installation du client Oracle Instant à base de paquets RPM, la ligne de configuration ressemblera à ceci :

    ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/<version>/client/lib

    Par exemple, --with-oci8=shared,instantclient,/usr/lib/oracle/12.1/client/lib .

    Notez que le support du client Oracle Instant est apparu pour la première fois en PHP 4.3.11 et 5.0.4, et utilisait à l'époque l'option de configuration PHP --with-oci8-instant-client .

  • Si vous utilisez une base de données oracle ou une installation Oracle client complète, alors faîtes :

    ./configure --with-oci8=shared,$ORACLE_HOME

    Assurez-vous que l'utilisateur du serveur web (nobody, www) a accès aux bibliothèques, aux fichiers d'initialisation, et au fichier tnsnames.ora (si utilisé) dans le dossier $ORACLE_HOME. Avec Oracle 10gR2, vous devez avoir besoin d'exécuter l'utilitaire $ORACLE_HOME/install/changePerm.sh pour donner accès à ce dossier.

Après la configuration, suivez la procédure de compilation habituelle pour PHP, i.e. make install. L'extension partagée OCI8 oci8.sosera ainsi créée. Il se peut que vous ayez besoin de la déplacer manuellement dans le dossier d'extensions PHP, spécifié par l'option extension_dir de votre fichier php.ini.

Pour compléter l'installation d'OCI8, éditez votre fichier php.ini et ajoutez-y cette ligne :

extension=oci8.so

Installation d'OCI8 comme extension compilée statiquement

Configurez PHP pour inclure OCI8 en utilisant une des options de configuration suivante :

  • Si vous utilisez le client Oracle Instant, faîtes ceci :

    ./configure --with-oci8=instantclient,/path/to/instant/client/lib

  • Si vous utilisez une base de données Oracle ou une installation client complète d'Oracle, alors faîtes ceci :

    ./configure --with-oci8=$ORACLE_HOME

Après configuration, suivez la procédure de compilation habituelle de PHP, i.e. make install. Après une compilation réussie, vous n'avez pas besoin d'ajouter le fichier oci8.so à votre fichier php.ini. Aucune autre étape de compilation n'est nécessaire.

Installation d'OCI8 depuis PECL

L'extension OCI8 peut être ajoutée à une installation PHP existante soit automatiquement, soit manuellement depuis » PECL.

Pour une installation automatique, suivez les étapes suivantes :

  • Si vous être derrière un part-feu, définissez le proxy PEAR, par exemple :

    pear config-set http_proxy http://my-proxy.example.com:80/

  • Exécutez :

    pecl install oci8

    Lorsque vous avez de nouveau la main, entrez soit la valeur de la variable $ORACLE_HOME, soit instantclient,/path/to/instant/client/lib.

    Note : N'entrez pas la variable $ORACLE_HOME car elle ne sera pas analysée. A la place, entrez le chemin actuel du dossier principal d'Oracle.

Pour une installation manuelle (lorsque la commande pecl n'est pas disponible), téléchargez le paquet PECL OCI8, i.e. oci8-1.4.10.tgz.

  • Extraire le paquet :

    tar -zxf oci8-1.4.10.tgz
cd oci8-1.4.10

  • Préparez le paquet :

    phpize

  • Configurez le paquet, soit en utilisant $ORACLE_HOME, soit en utilisant le client Oracle Instant

    ./configure -with-oci8=shared,$ORACLE_HOME

    or

    ./configure -with-oci8=shared,instantclient,/path/to/instant/client/lib

  • Installez le paquet :

    make install

Après une installation automatique ou manuelle, éditez votre fichier php.ini et ajoutez la ligne :

extension=oci8.so

Assurez-vous que la directive extension_dir de votre php.ini est définie au dossier dans lequel oci8.so a été installé.

Installation d'OCI8 sous Windows

Lors de l'utilisation des bibliothèques clientes Oracle Oracle 10gR2 sous Windows, dé-commentez la ligne extension=php_oci8.dll de votre fichier php.ini. Lors de l'utilisation des bibliothèques clientes Oracle 11gR2 ou supérieurs, dé-commentez la ligne extension=php_oci8_11g.dll ou la ligne extension=php_oci8.dll. Avec les bibliothèques clientes Oracle 12c, utilisez extension=php_oci8_12c.dll ou extension=php_oci8_11g.dll, ou bien extension=php_oci8.dll. Seule une de ces DLLs doivt être active au même moment. Les DLLs avec des versions supérieures peuvent contenir plus de fonctionalités. Toutes les DLLs peuvent ne pas être disponibles pour toutes les versions de PHP. Assurez-vous que l'option extension_dir est définie sur le dossier contenant les extensions DLLs de PHP.

Si vous utilisez le client Oracle Instant, définissez la variable d'environnement PATH du système au dossier contenant les bibliothèques Oracle.

Définition de l'environnement Oracle

Avant d'utiliser cette extension, assurez-vous que les variables d'environnement Oracle sont correctement définies pour l'utilisateur exécutant le serveur Web. Si votre serveur Web est automatiquement démarré au démarrage de votre serveur, alors assurez-vous également de la bonne configuration de la variable d'environnement utilisé à ce moment ci.

Note:

Ne définissez pas les variables d'environnement Oracle en utilisant la fonction putenv() dans vos scripts PHP, car les bibliothèques Oracle sont chargées et initialisées avant l'exécution de votre script. Les variables définies avec putenv() pourraient ainsi entrer en conflit et provoquer aussi bien des crashs que des comportements totalement inattendu. Des fonctions peuvent réagir normalement, d'autres peuvent provoquer des erreurs. Les variables doivent être définies avant le démarrage du serveur.

Sous les systèmes Red Hat Linux et ces variantes, vous devez exporter les variables à la fin du fichier /etc/sysconfig/httpd. Sous les autres systèmes utilisant Apache 2, vous devez utiliser le script envvars que vous trouverez dans le dossier bin d'Apache. Une autre option consiste à utiliser la directive SetEnv du fichier httpd.conf, mais ceci peut ne pas être suffisant sur quelques systèmes.

Pour vérifier si les variables d'environnement ont été définies correctement, utilisez la fonction phpinfo() et attardez-vous sur la section Environment (et non la section Apache Environment) ; elle doit contenir toutes les variables définies.

Les variables qui doivent vous êtes nécessaires sont inclues dans la table suivante. Reportez-vous à la documentation Oracle pour plus d'informations sur toutes les variables.

Variables d'environnement Oracle communes
Nom | But
ORACLE_HOME | Chemin vers le dossier contenant le logiciel de base de données Oracle. Ne définissez pas cette variable si vous utilisez le client Oracle Instant. En effet, elle n'est pas nécessaire mais peu causer des problèmes lors de l'installation.
ORACLE_SID | Le nom de la base de données sur la machine locale. Il n'est pas nécessaire de la définir si vous utilisez le client Oracle Instant, ou alors, passez la toujours comme paramètre de connexion à la fonction oci_connect().
LD_LIBRARY_PATH | Définissez cette variable (ou son équivalent sur la plateforme courante, comme DYLD_LIBRARY_PATH, LIBPATH, ou SHLIB_PATH) comme le chemin vers les bibliothèques Oracle, par exemple $ORACLE_HOME/lib ou /usr/lib/oracle/11.1/client/lib. Cette variable n'est pas nécessaire si les bibliothèques sont localisées par un mécanisme de recherche différent, comme avec ldconfig ou avec LD_PRELOAD.
NLS_LANG | C'est la variable principale pour définir le jeu de caractères et les informations de globalisation utilisés par les bibliothèques Oracle.
ORA_SDTZ | Définit le décalage horaire à utiliser par les sessions Oracle.
TNS_ADMIN | Chemin vers le dossier contenant les fichiers de configuration Oracle Net Services (tnsnames.ora et sqlnet.ora). Inutile si la chaîne de connexion utilisée par la fonction oci_connect() est au format de connexion facile comme localhost/XE. Inutile également si les fichiers de configuration du réseau sont à des endroits par défaut comme $ORACLE_HOME/network/admin ou /etc.
Il existe d'autres variables d'environnement Oracle moins souvent utilisées, comme TWO_TASK, ORA_TZFILE, ainsi que les diverses variables de globalisation comme NLS* et ORA_NLS_*.

En cas de problème

Le problème le plus courant lors de l'installation d'OCI8 est d'avoir mal configuré le jeu de variables d'environnement correctement. C'est un problème typique lorsque vous recevez un message d'erreur lors de l'utilisation des fonctions oci_connect() ou oci_pconnect(). L'erreur peut être une erreur purement PHP comme Call to undefined function oci_connect(), une erreur Oracle comme ORA-12705 ou encore un arrêt brutal d'Apache. Vérifiez le contenu des fichiers de log d'Apache lors de son démarrage et reportez-vous aux sections ci-dessus pour résoudre le problème.

Alors que les erreurs réseaux comme ORA-12154 ou ORA-12514 indiquent un problème quant au nommage du réseau ou un problème de configuration, bien souvent, la cause première est que l'environnement PHP n'est pas correctement défini et que les bibliothèques Oracle sont incapables de trouver le fichier de configuration tnsnames.ora.

Sous Windows, le fait d'avoir plusieurs versions d'Oracle sur la même machine peut facilement faire crasher l'installation tant que vous ne vous êtes pas assuré que PHP n'utilise pas uniquement la bonne version d'Oracle.

Un utilitaire permettent d'examiner les bibliothèques recherchées et chargées peut vous aider quant à la résolution de ce genre de problème, tout particulièrement sous Windows.

Note: Si le serveur Web ne démarre pas ou échoue au démarrage

Vérifiez qu'Apache est lié avec la bibliothèque pthread :

# ldd /www/apache/bin/httpd
  libpthread.so.0 => /lib/libpthread.so.0 (0x4001c000)
  libm.so.6 => /lib/libm.so.6 (0x4002f000)
  libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004c000)
  libdl.so.2 => /lib/libdl.so.2 (0x4007a000)
  libc.so.6 => /lib/libc.so.6 (0x4007e000)
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Si la bibliothèque libpthread n'est pas listé, réinstallez Apache :

# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install

Notez que sous des systèmes comme UnixWare, la bibliothèque s'appelle libthread au lieu de libpthread. PHP et Apache doivent être configurés avec EXTRA_LIBS=-lthread.


Test

La suite permettant de tester OCI8 se trouve dans le dossier ext/oci8/tests. Après avoir effectué les tests OCI8, ce dossier contiendra, en plus, les fichiers de journalisation permettant de tracer l'ensemble des erreurs produites.

Avant d'effectuer les tests PHP, éditez le fichier details.inc et définissez les variables de connexion $user, $password et $dbase. La suite de test OCI8 a été developpé en utilisant le compte SYSTEM. Quelques tests échoueront si l'utilisateur choisi pour effectuer le test n'a pas des permissions équivalentes à ce compte.

Si la file d'attente de connexion de la base de données Oracle est testée, définissez la variable $test_drcp à TRUE et assurez-vous que la chaîne de connexion utilise un serveur de file d'attente DRCP approprié.

Une alternative à l'édition du fichier details.inc est de définir les variables d'environnement, par exemple :

    $ export PHP_OCI8_TEST_USER=system
    $ export PHP_OCI8_TEST_PASS=oracle
    $ export PHP_OCI8_TEST_DB=localhost/XE
    $ export PHP_OCI8_TEST_DRCP=FALSE
Notez que suivant les shells utilisés, ces variables ne seront pas forcément propagées jusqu'au processus PHP et le test échouera au niveau de la connexion si cette méthode est utilisée.

Puis, définissez tous les environnements nécessaires à la base de données Oracle. Avec Oracle 10gR2 XE, faîtes :

    $ . /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh

Avec Oracle 11gR2 XE, faîtes :

    $ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

Pour les autres versions de la base de données Oracle, faîtes :

    $ . /usr/local/bin/oraenv

Quelques shells nécessitent que le fichier php.ini ait un E dans le paramètre variables_order, par exemple :

    variables_order = "EGPCS"

Exécutez tous les tests PHP avec la commande :

    $ cd your_php_src_directory
    $ make test
ou exécutez uniquement les tests OCI8 avec la commande :
    $ cd your_php_src_directory
    $ make test TESTS=ext/oci8

Lorsque les tests sont terminés, vous pouvez alors investiguer sur les erreurs rencontrées. Sur les systèmes lents, quelques tests peuvent prendre plus de temps que le délai maximal d'exécution défini dans le fichier run-tests.php. Pour corriger ceci, définissez la variable d'environnement TEST_TIMEOUT à une valeur plus grande.

Sur les machines rapides dont la base de données locale est configurée pour une charge minimale (i.e. Oracle 10gR2 XE), quelques tests peuvent échouer avec des erreurs ORA-12516 ou ORA-12520. Pour prévenir ce comportement, augmentez le paramètre PROCESSES de la base de données en utilisant les étapes suivantes :

Connexion avec l'utilisateur oracle :

    $ su - oracle

Définissez l'environnement nécessaire à Oracle grâce au fichier oracle_env.sh ou oraenv, tel que définit ci-dessus.

Démarrez l'utilitaire en ligne de commande SQL*Plus et augmentez la valeur du paramètre PROCESSES

    $ sqlplus / as sysdba
    SQL> alter system set processes=100 scope=spfile

Redémarrez la base de données :

    SQL> startup force


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Oracle
Nom | Défaut | Modifiable | Historique
oci8.connection_class | "" | PHP_INI_ALL | Disponible depuis PHP 5.3 (PECL OCI8 1.3).
oci8.default_prefetch | "100" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).
oci8.events | Off | PHP_INI_SYSTEM | Disponible depuis PHP 5.3 (PECL OCI8 1.3).
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).
oci8.old_oci_close_semantics | Off | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).
oci8.ping_interval | "60" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).
oci8.privileged_connect | Off | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2 (PECL OCI8 1.1).

Voici un éclaircissement sur l'utilisation des directives de configuration.

oci8.connection_class string

Le texte défini par l'utilisateur est utilisé par les connexions du pool de connexions résidantes de la base de données Oracle 11g pour partitionner le pool. Cela permet aux connexions persistantes OCI8 d'une application de réutiliser les sessions à la base de données depuis un script précédent, permettant ainsi une meilleure efficacité. Lorsqu'une application utilise un processus de base de données précédemment utilisé avec une classe de connexion différente, les configurations de la session, comme le format de la date par défaut d'Oracle, seront réinitialisées. Ce comportement permet d'éviter de partager accidentellement des informations entre les différentes applications.

La valeur peut être définie au moment de l'exécution grâce à la fonction ini_set(), appelée avant la connexion.

Pour utiliser DRCP, OCI8 doit être lié avec les bibliothèques Oracle 11g et la base de données doit être Oracle 11g. Le pool de connexion doit être activé dans la base de données, l'option de configuration oci8.connection_class doit valoir la même chaîne pour tous les serveurs web utilisant la même application, et la chaîne de connexion OCI8 doit spécifier d'utiliser un serveur utilisant un pool.

oci8.default_prefetch int

Cette option définit le numbre par défaut de lignes supplémentaires qui seront récupérées et mises en cache automatiquement chaque fois qu'une requête de bas niveau récupérant des données depuis la base de données sera effectuée. Le fait de définir une valeur de 0 permet de désactiver cette fonctionnalité.

La valeur de pré-chargement n'altère pas le nombre de lignes que des fonctions comme oci_fetch_array() retourneront à l'utilisateur ; le pré-chargement et la mise en cache de lignes est géré en interne par OCI8.

La valeur peut être définie pour chaque requête, en exécutant la fonction oci_set_prefetch() avant l'exécution de la requête.

En PHP 5.3 (PECL OCI8 1.3.4), la valeur par défaut est passée de 10 à 100.

En PHP 5.3.2 (PECL OCI8 1.4), la valeur minimale autorisée a été réduite de 1 à 0, permettant ainsi la désactivation du pré-chargement.

Lors de l'utilisation de Orable 12c, la valeur de pré-chargement définie par PHP peut être suchargée par le fichier de configuration du client oracle : oraaccess.xml. Consulter la documentation d'Oracle pour plus d'informations.

Note: Si vous entrez une valeur trop important, cela peut conduire à une amélioration des performances, au détriment de l'utilisation mémoire. Pour des requêtes qui retournent un grand nombre de données, le gain de performance peut être vraiment significatif.

oci8.events boolean

Définir à On cette option permet à PHP d'être notifié des événements de base de données FAN (Fast Application Notification).

Sans FAN, lorsqu'une instance de la base de données ou bien un noeud de machines échoue brutalement, les applications PHP peuvent se bloquer en attendant une réponse de la base de données, jusqu'au bout du délai d'expiration TCP. Avec les événements FAN, les applications PHP sont notifiées rapidement des erreurs qui affectent les connexions à la base de données. L'extension OCI8 nettoiera les connexions inutilisables dans le cache des connexions persistantes.

Lorsque vous utilisez On comme valeur, la base de données doit également être configurée pour émettre les événements FAN.

Le support de FAN est disponible lorsque OCI8 est lié à des bibliothèques Oracle 10gR2 (et suivants) et connecté à une base de données Oracle 10gR2 (et suivants).

oci8.max_persistent int

Le nombre maximal de connexions persistantes OCI8 par processus PHP. Le fait de définir cette option à -1 signifie qu'il n'y a aucune limite.

oci8.old_oci_close_semantics boolean

Cette option contrôle le comportement de la fonction oci_close(). Activer cette option signifie que oci_close() ne fera rien du tout ; la connexion ne sera pas fermée tant que la fin du script ne sera pas atteinte. Ceci est uniquement pour assurer une compatibilité ascendante. Si vous pensez que vous devez activer cette option, vous êtes vivement encouragé à effacer les appels à la fonction oci_close() de votre application au lieu d'activer cette option.

oci8.persistent_timeout int

Le délai maximal (en secondes) q'un processus PHP donné est autorisé à maintenir une connexion persistante. Le fait de définir cette option à -1 signifie que les connexions persistantes seront toujours maintenues tant que le processus PHP ne se termine ou bien que la connexion est explicitement fermée à l'aide de la fonction oci_close().

Note: En PHP, l'expiration des ressources persistantes ne produit aucune alerte. Elle survient lorsque PHP termine un script et vérifie le timestamp de la dernière utilisation de la ressource. Aussi, le paradoxe veut que les connexions persistantes ne peuvent être closes que lors d'une quelconque activité (non nécessaire en OCI8) dans le processus PHP. S'il y a plus d'un processus PHP, alors chacun d'eux doivent être activés manuellement afin de lancer l'expiration de leurs propres ressources. L'introduction du pool de connexions persistantes (DRCP) en Oracle 11g résolve les problèmes de mémoire et de ressources, que les options oci8.max_persistent et oci8.persistent_timeout ont tenté précédemment de résoudre.

Note: En PHP 5.3 (PECL OCI8 1.3), les connexions persistantes peuvent être fermées avec la fonction oci_close().

oci8.ping_interval int

Le délai maximal (en secondes) à attendre avant d'envoyer un ping durant oci_pconnect(). Lorsque définie à 0, les connexions persistantes seront vérifiées à chaque réutilisation. Pour désactiver complètement les ping, définissez cette option à -1.

Note: Le fait de désactiver les pings rend les appels à oci_pconnect() hautement rentables, mais cela empêche PHP de détecter les problèmes de connexion, comme les problèmes de réseau, ou si le serveur Oracle a été éteint depuis la connexion de PHP, tant que la connexion n'est pas utilisée plus tard dans le script. Consultez la documentation de la fonction oci_pconnect() pour plus d'informations.

oci8.privileged_connect boolean

Cette option active les connexions privilégiées en utilisant les droits externes (OCI_SYSOPER, OCI_SYSDBA).

Note: Le fait de définir cette valeur à On permet aux scripts du serveur web exécutant les privilèges utilisateurs systèmes appropriés de se connecter à la base de données en utilisant ces privilèges, sans avoir besoin de fournir un mot de passe à la base de données. Ceci peut avoir des conséquences au niveau de la sécurité.

oci8.statement_cache_size int

Cette option active la mise en cache des requêtes, et spécifie le nombre de requêtes à mettre en cache. Pour désactiver la mise en cache des requêtes, définissez cette option à 0.

La mise en cache des requêtes permet de ne plus avoir besoin de transmettre le texte de la requête à la base de données, mais aussi, de ne plus avoir besoin de transmettre de méta-données sur la requête à PHP. Ceci permet d'accroître significativement les performances systèmes dans les applications, en ré-utilisant les requêtes durant toute la vie de la connexion. Des "curseurs" de base de données peuvent également aider si l'on part du principe que des requêtes seront ré-utilisées.

Définissez cette valeur à la taille de votre jeux de requêtes courantes utilisées par votre application. Le fait de définir une valeur trop petite peut faire que vos requêtes seront supprimées du cache avant qu'elles ne soient utilisées.

Cette option est la plus utilisée avec les connexions persistantes.

Avec la base de données Oracle 12c, cette valeur peut être surchargée et automatiquement ajustée par le fichier oraaccess.xml du client Oracle. Voir la documentation d'Oracle pour plus d'explications.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Méthodes et fonctions OCI8
Constante | Description
OCI_ASSOC | Utilisé avec oci_fetch_all() et oci_fetch_array() pour récupérer les résultats dans un tableau associatif.
OCI_BOTH | Utilisé avec oci_fetch_all() et oci_fetch_array() pour récupérer les résultats dans un tableau associatif et indexé numériquement.
OCI_COMMIT_ON_SUCCESS | Mode d'exécution des commandes pour oci_execute(). La commande est automatiquement validée après réussite de la requête.
OCI_CRED_EXT | Utilisé avec oci_connect() pour identification sur un serveur Oracle externe ou sur le système d'exploitation. Introduit en PHP 5.3 et PECL OCI8 1.3.4.
OCI_DEFAULT | Voir la constante OCI_NO_AUTO_COMMIT.
OCI_DESCRIBE_ONLY | Mode d'exécution des commandes pour oci_execute(). Utilisez ce mode si vous ne souhaitez pas exécuter la commande, mais obtenir des descriptions.
OCI_EXACT_FETCH | Obsolète. Mode de lecture de résultats. Utilisé lorsque les applications savent à l'avance le nombre de ligne qu'il faudra lire. Ce mode désactive la lecture anticipée d'Oracle version 8 et plus récente. Le curseur est annulé une fois que le nombre de lignes à lire a été atteint, et cela réduit les ressources consommées côté serveur.
OCI_FETCHSTATEMENT_BY_COLUMN | Mode par défaut de oci_fetch_all().
OCI_FETCHSTATEMENT_BY_ROW | Mode alternatif pour oci_fetch_all().
OCI_LOB_BUFFER_FREE | Utilisé avec OCI-Lob::flush pour libérer les buffers utilisés.
OCI_NO_AUTO_COMMIT | Mode d'exécution de la requête pour oci_execute(). La transaction n'est pas automatiquement validée lors de l'utilisation de ce mode. Pour plus de lisibilité dans votre code, utilisez cette valeur plutôt que l'ancienne valeur OCI_DEFAULT. Introduit en PHP 5.3.2 (PECL OCI8 1.4).
OCI_NUM | Utilisé avec oci_fetch_all() et oci_fetch_array() pour lire un tableau énuméré.
OCI_RETURN_LOBS | Utilisé avec oci_fetch_array() pour obtenir la valeur du LOB au lieu du pointeur.
OCI_RETURN_NULLS | Utilisé avec oci_fetch_array() pour obtenir des éléments vides, si la valeur du champ est NULL.
OCI_SEEK_CUR | Utilisé avec OCI-Lob::seek pour définir la position.
OCI_SEEK_END | Utilisé avec OCI-Lob::seek pour définir la position.
OCI_SEEK_SET | Utilisé avec OCI-Lob::seek pour définir la position.
OCI_SYSDATE | Obsolète.
OCI_SYSDBA | Utilisé avec oci_connect() pour se connecter comme SYSDBA utilisant des créances externes (oci8.privileged_connect doit être activé pour utiliser cette constante).
OCI_SYSOPER | Utilisé avec oci_connect() pour se connecter comme SYSOPER utilisant des créances externes (oci8.privileged_connect doit être activé pour utiliser cette constante).
OCI_TEMP_BLOB | Utilisé avec OCI-Lob::writeTemporary pour indiquer explicitement qu'un BLOB temporaire doit être créé.
OCI_TEMP_CLOB | Utilisé avec OCI-Lob::writeTemporary pour indiquer explicitement qu'un CLOB temporaire doit être créé.
Types définis et liés OCI8
Constante | Description
OCI_B_BFILE | Utilisé avec oci_bind_by_name() pour relier des BFILEs.
OCI_B_BIN | Utilisé avec oci_bind_by_name() pour relier les valeurs brutes (RAW).
OCI_B_BLOB | Utilisé avec oci_bind_by_name() pour relier des BLOB.
OCI_B_BOL | Utilisé avec oci_bind_by_name() pour lier une variable booléenne PL/SQL.
OCI_B_CFILEE | Utilisé avec oci_bind_by_name() pour relier des CFILEs.
OCI_B_CLOB | Utilisé avec oci_bind_by_name() pour relier des CLOB.
OCI_B_CURSOR | Utilisé avec oci_bind_by_name() pour relier des curseurs, précédemment alloués avec oci_new_descriptor().
OCI_B_INT | Utilisé avec oci_bind_array_by_name() pour relier des tableaux d'entiers.
OCI_B_NTY | Utilisé avec oci_bind_by_name() pour relier des noms de types de données. Note : En PHP < 5.0, il était nommé OCI_B_SQLT_NTY.
OCI_B_NUM | Utilisé avec oci_bind_array_by_name() pour relier des tableaux de nombres.
OCI_B_ROWID | Utilisé avec oci_bind_by_name() pour relier des ROWID.
SQLT_AFC | Utilisé avec oci_bind_array_by_name() pour lier les tableaux de CHAR.
SQLT_AVC | Utilisé avec oci_bind_array_by_name() pour lier les tableaux de VARCHAR2.
SQLT_BDOUBLE | Non supporté.
SQLT_BFILEE | Identique à OCI_B_BFILE.
SQLT_BFLOAT | Non supporté.
SQLT_BIN | Identique à OCI_B_BIN.
SQLT_BLOB | Identique à OCI_B_BLOB.
SQLT_BOL | Identique à OCI_B_BOL.
SQLT_CFILEE | Identique à OCI_B_CFILEE.
SQLT_CHR | Utilisé avec oci_bind_array_by_name() pour lier les tableaux de VARCHAR2. Utilisé également avec oci_bind_by_name().
SQLT_CLOB | Identique à OCI_B_CLOB.
SQLT_FLT | Utilisé avec oci_bind_array_by_name() pour lier les tableaux de FLOAT.
SQLT_INT | Identique à OCI_B_INT.
SQLT_LBI | Utilisé avec oci_bind_by_name() pour lier les valeurs LONG RAW.
SQLT_LNG | Utilisé avec oci_bind_by_name() pour lier les valeurs LONG.
SQLT_LVC | Utilisé avec oci_bind_array_by_name() pour lier les tableaux de LONG VARCHAR.
SQLT_NTY | Identique à OCI_B_NTY.
SQLT_NUM | Identique à OCI_B_NUM.
SQLT_ODT | Utilisé avec oci_bind_array_by_name() pour lier les tableaux de LONG.
SQLT_RDD | Identique à OCI_B_ROWID.
SQLT_RSET | Identique à OCI_B_CURSOR.
SQLT_STR | Utilisé avec oci_bind_array_by_name() pour lier les tableaux de STRING.
SQLT_UIN | Non supporté.
SQLT_VCS | Utilisé avec oci_bind_array_by_name() pour lier les tableaux de VARCHAR.
Types des descripteurs OCI8
Constante | Description
OCI_DTYPE_FILEE | Cette option indique à oci_new_descriptor() d'initialiser un nouveau pointeur FILE.
OCI_DTYPE_LOB | This flag tells oci_new_descriptor() to initialize a new LOB descriptor.
OCI_DTYPE_ROWID | Cette option indique à oci_new_descriptor() d'initialiser un nouveau pointeur LOB.
OCI_D_FILE | Identique à OCI_DTYPE_FILE.
OCI_D_LOB | Identique à OCI_DTYPE_LOB.
OCI_D_ROWID | Identique à OCI_DTYPE_ROWID.


Exemples

Ces exemples utilisent, pour se connecter à la base de données, l'utilisateur HR qui est le schéma "Human Resources" fourni par la base de données Oracle. Ce compte doit avoir été déverrouillé et le mot de passe réinitialisé avant de pouvoir l'utiliser.

Ces exemples se connectent à la base de données XE de votre machine. Modifiez la chaîne de connexion afin de correspondre à votre base de données avant d'exécuter les exemples de cette documentation.

Exemple #1 Requête simple

Cet exemple montre l'exécution d'une requête et l'affiche des résultats. Les requêtes OCI8 utilisent les étapes préparation/exécution/récupération des données.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Préparation de la requête
$stid = oci_parse($conn, 'SELECT * FROM departments');
if (!$stid) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Exécution de la logique de la requête
$r = oci_execute($stid);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Récupération des résultats de la requête
print "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    print "<tr>\n";
    foreach ($row as $item) {
        print "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    print "</tr>\n";
}
print "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Insertion de données en utilisant des variables liées

Les variables liées augmentent les performances en permettant la réutilisation du cache et du contexte d'exécution. Les variables liées augmentent également la sécurité en prévenant bons nombres d'injection SQL.

<?php

// Avant l'exécution, créez la table suivante :
//   CREATE TABLE MYTABLE (mid NUMBER, myd VARCHAR2(20));

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO MYTABLE (mid, myd) VALUES(:myid, :mydata)');

$id = 60;
$data = 'Some data';

oci_bind_by_name($stid, ':myid', $id);
oci_bind_by_name($stid, ':mydata', $data);

$r = oci_execute($stid);  // exécution et validation

if ($r) {
    print "Une ligne insérée";
}

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #3 Liage d'une clause WHERE d'une requête

Ceci montre le liage simple.

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE department_id = :didbv ORDER BY last_name';
$stid = oci_parse($conn, $sql);
$didbv = 60;
oci_bind_by_name($stid, ':didbv', $didbv);
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
    echo $row['LAST_NAME'] ."<br>\n";
}

// Affiche :
//    Austin
//    Ernst
//    Hunold
//    Lorentz
//    Pataballa

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #4 Insertion de données dans une colonne CLOB

Pour de lourdes données, utilisez un objet binaire long (BLOB) ou un objet de caractères long (CLOB). Cet exemple utilise les CLOB.

<?php

// Avant l'exécution, créez la table suivante :
//     CREATE TABLE MYTABLE (mykey NUMBER, myclob CLOB);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$mykey = 12343;  // clé arbitraire pour l'exemple

$sql = "INSERT INTO mytable (mykey, myclob)
        VALUES (:mykey, EMPTY_CLOB())
        RETURNING myclob INTO :myclob";

$stid = oci_parse($conn, $sql);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
oci_execute($stid, OCI_NO_AUTO_COMMIT); // use OCI_DEFAULT for PHP <= 5.3.1
$clob->save("Une chaîne vraiment très longue");

oci_commit($conn);

// Récupération de données CLOB

$query = 'SELECT myclob FROM mytable WHERE mykey = :mykey';

$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid);

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) {
    print '<tr><td>'.$row['MYCLOB'].'</td></tr>';
    // Dans une boucle, le fait de libérer la variable avantde récupérer la
    // seconde ligne permet de réduire l'utilisation mémoire de PHP
    unset($row);
}
print '</table>';

?>

Exemple #5 Utilisation d'une procédure stockée PL/SQL

Vous devez lier une variable pour la valeur retournée et, optionnellement, pour tous les arguments de la fonction PL/SQL.

<?php

/*
  Avant d'exécuter le programme PHP, créez une fonction stockée
  en langage SQL*Plus ou SQL Developer :

  CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
  BEGIN
      RETURN p * 3;
  END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p = 8;

$stid = oci_parse($conn, 'begin :r := myfunc(:p); end;');
oci_bind_by_name($stid, ':p', $p);
oci_bind_by_name($stid, ':r', $r, 40);

oci_execute($stid);

print "$r\n";   // Affiche 24

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #6 Utilisation d'une procédure stockée PL/SQL

Avec les procédures stockées, vous devez lier les variables pour tous les arguments.

<?php

/*
  Avant d'exécuter le programme PHP, créez une procédure stockée en
  langage SQL*Plus ou SQL Developer :

  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
  BEGIN
      p2 := p1 * 2;
  END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p1 = 8;

$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n";   // affiche 16

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #7 Appel d'une fonction PL/SQL qui retourne un REF CURSOR

Chaque valeur retournée par la requête est un REF CURSOR à utiliser pour récupérer les données.

<?php
/*
  Créez une fonction stockée PL/SQL comme ceci :

  CREATE OR REPLACE FUNCTION myfunc(p1 IN NUMBER) RETURN SYS_REFCURSOR AS
      rc SYS_REFCURSOR;
  BEGIN
      OPEN rc FOR SELECT city FROM locations WHERE ROWNUM < p1;
      RETURN rc;
  END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT myfunc(5) AS mfrc FROM dual');
oci_execute($stid);

echo "<table border='1'>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC))) {
    echo "<tr>\n";
    $rc = $row['MFRC'];
    oci_execute($rc);  // La valeur de la colonne retournée depuis la requête est une référence de curseur
    while (($rc_row = oci_fetch_array($rc, OCI_ASSOC))) {
        echo "    <td>" . $rc_row['CITY'] . "</td>\n";
    }
    oci_free_statement($rc);
    echo "</tr>\n";
}
echo "</table>\n";

// Affiche :
//   Beijing
//   Bern
//   Bombay
//   Geneva

oci_free_statement($stid);
oci_close($conn);

?>


Gestion de la connexion OCI8 et de la mise en file d'attente

Fonctions de connexion

L'extension oci8 fournit trois fonctions différentes pour se connecter à Oracle. La fonction de connexion standard est la fonction oci_connect(). Cette fonction crée une connexion à la base de données Oracle et retourne une ressource utilisée par les futurs appels à la base de données.

La connexion à un serveur Oracle est une opération raisonnablement coûteuse en terme de temps que cela nécessite. La fonction oci_pconnect() utilise un cache persistant de connexions qui peut être réutilisé à travers différents scripts. Cela signifie qu'une seule connexion sera utilisée par processus PHP (ou un fils Apache).

Si votre application se connecte à Oracle en utilisant un jeu différent de droits pour chaque utilisateur web, le cache persistant utilisé par la fonction oci_pconnect() devient moins approprié car l'augmentation du nombre d'utilisateurs concurrents va affecter les performances de votre serveur Oracle, car il devra maintenir trop de connexions en cache. Si votre application est de ce type, il est recommandé d'optimiser votre application en utilisant les options de configuration oci8.max_persistent et oci8.persistent_timeout (elles vous donnent le contrôle sur la taille et la durée de vie du cache de connexions persistantes) ou utilisez le pool de connexions résidentes d'Oracle (pour les bases de données Oracle 11g et suivants), ou encore, utilisez plutôt la fonctionoci_connect().

Les fonctions oci_connect() et oci_pconnect() emploient un cache de connexions ; si vous faites des appels multiples à oci_connect(), en utilisant les mêmes paramètres dans un script donné, le second appel ainsi que les suivants retourneront le gestionnaire de connexion existant. Le cache utilisé par la fonction oci_connect() est nettoyé à la fin de l'exécution du script ou lorsque vous fermez explicitement le gestionnaire de connexion. oci_pconnect() a un comportement sensiblement identique, à la différence que le cache est maintenu séparément et est conservé entre les requêtes HTTP.

Il est important de se souvenir de cette fonctionnalité de cache, car il donne l'apparence que les deux gestionnaires ne sont pas isolés au niveau des transactions, (ils représentent en fait le même gestionnaire de connexion, ils ne sont donc absolument pas isolés). Si votre connexion a besoin de deux connexions séparées, isolées au niveau des transactions, vous devez utiliser la fonction oci_new_connect().

Le cache de la fonction oci_pconnect() est effacé et toutes les connexions à la base de données sont closes lorsque le processus PHP se termine, aussi, les connexions persistantes n'ont d'intérêts que lors de l'utilisation de PHP comme module Apache ou utilisé avec FGCI ou similaire. Les connexions persistantes n'ont aucun intérêts via oci_connect() lorsque PHP est utilisé comme CGI ou en ligne de commande.

oci_new_connect() crée toujours une nouvelle connexion au serveur Oracle, indépendamment de l'existence d'autres connexions. Les applications web à fort trafic doivent éviter d'utiliser oci_new_connect(), particulièrement dans les sections les plus chargées de l'application.

Pool de connexion DRCP

PHP, depuis la version 5.3, (PECL OCI8 1.3) supporte le pool de connexion résidentes Oracle (DRCP). DRCP permet d'utiliser plus efficacement la mémoire de la base de données et permet une meilleure évolution. Peu ou pas de modifications sont nécessaires afin de profiter de DRCP.

DRCP est prévu pour les applications qui se connecte en utilisant peu de schéma de base de données, et qui conserve les connexions ouvertes sur une courte période de temps. Les autres applications doivent utiliser le processus dédié à la base de données Oracle, ou utiliser les serveurs partagés.

DRCP bénéfice des 3 fonctions de connexion, mais seule la fonction oci_pconnect() offre le plus de performance.

Pour rendre DRCP disponible avec OCI8, la version des bibliothèques clientes Oracle utilisées par PHP ainsi que la version de la base de données Oracle doivent être 11g ou supérieure.

La documentation sur DRCP peut être trouvé dans les différents manuels Oracle. Par exemple, reportez-vous à la » configuration du pool de connexions résidentes à la base de données de la documentation Oracle pour un exemple d'utilisation. Un » livre blanc sur DRCP contient plusieurs informations internes sur DRCP.

Pour utiliser DRCP, vous devez construire PHP avec l'extension OCI8 1.3 (ou supérieur) et les bibliothèques Oracle 11g (ou supérieur), puis, suivre ces étapes :

  • En utilisant les privilèges d'administrateur de la base de données, utilisez un programme comme SQL*Plus pour commencer un pool de connexion à la base de données :

        SQL> execute dbms_connection_pool.start_pool;

  • Optionnellement, utilisez dbms_connection_pool.alter_param() pour configurer les options DRCP. Les options courantes du pool peuvent être trouvées en utilisant la vue DBA_CPOOL_INFO.

  • Mettre à jour les chaînes de connexion utilisées. Pour les applications PHP qui se connecte actuellement via un nom de connexion réseau comme MYDB:

        $c = oci_pconnect("myuser", "mypassword", "MYDB");

    modifiez le fichier tnsnames.ora file et ajoutez une clause (SERVER=POOLED), par exemple :

        MYDB = (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=myhost.dom.com)
           (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales)
           (SERVER=POOLED)))

    Sinon, vous pouvez modifier la syntaxe de connexion facile en PHP et ajouter :POOLED après le nom du service :

        $c = oci_pconnect("myuser", "mypassword", "myhost.dom.com:1521/sales:POOLED");

  • Éditez php.ini et choisissez le nom de la classe de connexion. Ce nom indique une division logique du pool de connexion et peut être utilisé pour isoler le pool des différentes applications. Toutes applications PHP utilisant le même utilisateur ainsi que la même valeur de classe de connexion pourront se partager le pool de connexions, permettant ainsi d'obtenir une plus grande disponibilité.

        oci8.connection_class = "MY_APPLICATION_NAME"

  • Exécutez votre application, connectez-vous à la base de données 11g (ou supérieur).

Note:

Les applications utilisant Oracle 10g qui ont besoin de la performance des connexions persistantes, peuvent réduire la quantité de mémoire allouée au serveur de la base de données en utilisant les serveurs partagés Oracle (connu auparavant comme serveurs multi-threadés). Reportez-vous à la documentation Oracle pour plus d'informations.

Recommandatation DRCP et limites connues

La modification d'un mot de passe lors de connexions DRCP échouera avec l'erreur "ORA-56609: Usage not supported with DRCP". Ceci est une restriction documentée de la base de données Oracle 11g.

Depuis OCI8 1.3, les connexions persistantes peuvent désormais être fermées par l'utilisateur, permettant ainsi un meilleur contrôle des ressources de connexion. Les connexions persistantes peuvent maintenant être fermées automatiquement lorsqu'aucune variable PHP ne les références, comme ce pourrait être le cas à la fin d'un contexte d'une fonction utilisateur PHP. Ceci annulera toutes les transactions non validées. Ces changements dans les connexions persistantes font qu'elles fonctionnent comme les fonctions non-persistantes, simplifiant l'interface, permettant une plus grande cohérence de l'application et de prévisibilité. Définissez la directive oci8.old_oci_close_semantics à On pour retrouver l'ancien comportement.

Si la base de données Oracle est à la version 11.1.0.6, le patch 6474441 doit être appliqué à la base de données afin de pouvoir utiliser DRCP. Sans ce patch, les erreurs comme ORA-01000: maximum open cursors exceeded, ORA-01001 invalid cursor ou ORA-01002 fetch out of sequence peuvent survenir. Ce bogue a été corrigé à partir des versions 11.1.0.7.

Si ce patch ne peut être appliqué à votre base de données Oracle version 11.1.0.6, voici 3 façons de contourner ces problèmes :

  • Connexion en utilisant des serveurs dédiés ou partagés au lieu d'utiliser DRCP.
  • Définir la directive PHP oci8.statement_cache_size à 0.
  • Définir un événement dans le fichier des paramètres d'initialisation à la base de données : event="56699 trace name context forever, level 128".

Les bases de données Oracle 11.1.0.7 et 11.1.0.6 patché pour le bogue 6474441 permettent aux applications PHP utilisant les connexions DRCP d'utiliser un trigger LOGON pour définir les propriétés de session au moment de la création de la session, comme définir la langue ou le format de la date.

Si le patch à la base de données 11.1.0.6 n'a pu être appliqué, un des contournements suivants peut être utilisé à la place des triggers LOGON :

  • Après l'authentification, définissez explicitement les propriétés de session en utilisant du code PHP dans votre application.
  • Connexion en utilisant des serveurs dédiés ou partagés à la place de DRCP.

Le ré-établissement automatique des connexions persistantes PHP après une rupture des processus Apache ou FGCI fait que les triggers LOGON en PHP ne sont recommandés que pour définir les attributs de session et non les requêtes de connexions utilisateurs par applications. Ceci est d'autant plus vrai avec DRCP vu la taille automatique du pool ainsi que la façon dont les triggers LOGON sont émis avec l'authentification DRCP.


Support de FAN (Fast Application Notification : Application de notification Rapide) OCI8

Le support de FAN fournit un basculement de connexion rapide, une fonctionnalité de haute disponibilité pour la base de données Oracle. Il permet aux scripts PHP OCI8 d'être notifiés lorsqu'une machine de base de données ou une instance de base de données devient non disponible. Sans FAN, OCI8 peut se figer en cas d'atteinte du délai maximal TCP, et une erreur est retournée, ce qui peut prendre plusieurs minutes. L'activation de FAN en OCI8 permet aux applications de détecter les erreurs et de se re-connecter à une instance de connexion disponible sans que le serveur Web n'est besoin d'en connaître.

Le support de FAN est disponible lorsque les bibliothèques clientes Oracle liées à PHP et la base de données Oracle sont en version 10gR2 ou supérieures.

FAN fait bénéficier aux utilisateurs de la technologie de cluster Oracle (RAC) car les connexions survivantes aux instances de base de données peuvent être effectuées immédiatement. Les utilisateurs de Data Guard Oracle avec un broker, vont voir les événements FAN générés lorsqu'une base de données passe en ligne. Les bases de données qui ne font pas parties de cluster vont envoyer des événements FAN lorsque la base de données redémarre.

Pour les connexions actives, lorsqu'une machine ou une instance de base de données devient indisponibles, une erreur de connexion sera retournée par la fonction de l'extension OCI8 appelée. Lors d'une reconnexion d'un script sous-jacent PHP, une connexion à une instance de base de données survivantes sera établie. L'extension OCI8 va également, de façon transparente, nettoyer toutes les connexions inactives affectées par une machine de base de données ou une instance en échec, aussi, les appels de connexion PHP vont établir une nouvelle connexion sans que le script n'en connaisse, faisant ainsi aucune interruption de service.

Lorsque oci8.events vaut On, il est suggéré de définir oci8.ping_interval à -1 pour désactiver le ping, sachant que l'activation des événements FAN fournit un gestionnaire de connexions pro-actif des connexions inactives devenues invalides par une interruption de service.

Pour activer le support FAN en PHP OCI8, compilez PHP OCI8 avec les bibliothèques Oracle 10gR2 ou supérieures, puis, suivez ces étapes :

  • Avec les privilèges d'administrateur de la base de données, utilisez un programme comme SQL*Plus pour activer le service de base de données pour poster les événements FAN ; par exemple :

        SQL> execute dbms_service.modify_service(
                   SERVICE_NAME        => 'sales',
                   AQ_HA_NOTIFICATIONS => TRUE);

  • Editez le fichier php.ini et ajoutez :

        oci8.events = On

  • Si l'application ne gère toujours pas les conditions d'erreur OCI8, modifiez le pour détecter les échecs. Ceci peut nécessité la re-connexion et la ré-exécution des requêtes.
  • Exécutez l'application, connectez-vous à la base de données Oracle 10gR2 ou supérieures.


OCI8 et le suivi dynamique DTrace

OCI8 2.0 introduit DTrace qui peut être utilisé sur les systèles qui supporte DTrace. Voir le suivi dynamique DTrace pour un aperçu de PHP et DTrace.

Installation d'OCI8 avec le support DTrace

Pour activer le support DTrace en PHP OCI8, vous devez compiler OCI8 comme extension partagée, avec avoir configuré PHP_DTRACE.

$ export PHP_DTRACE=yes
$ pecl install oci8

Editez votre fichier php.ini, définissez l'option extension_dir pour correspondre au dossier contenant le fichier oci8.so créé, et activez l'extension en ajoutant :

extension=oci8.so

Si vous installez PHP OCI8 2.0 depuis PECL en utilisant phpize et configure (au lieu de pecl), vous devez définir PHP_DTRACE=yes. Ceci en raison du fait que l'option --enable-dtrace sera ignoré par une limitation du script configure du paquet PECL.

Voir l'installation d'une extension PECL pour les instructions générales d'installation PECL.

Découverte statique DTrace en PHP OCI8

Les découvertes statiques suivantes sont disponibles en PHP OCI8
Nom de la découverte | Description de la découverte | Arguments de la découverte
oci8-connect-entry | Initialisé par oci_connect(), oci_pconnect() et oci_new_connect(). Lancé avant que la connexion à la base de données ne soit établie. | char *username, char *dbname, char *charset, long session_mode, int persistent, int exclusive
oci8-connect-return | Lancé à la fin de la connexion. | void *connection
oci8-check-connection | Lancé si une erreur Oracle a fait que la connexion est devenue invalide. | void *connection, char *client_id, int is_open, long errcode, unsigned long server_status
oci8-sqltext | Lancé lorsque oci_parse() est exécuté. | void *connection, char *client_id, void *statement, char *sql
oci8-connection-close | Lancé lorsque la connexion à la base de données est totalement détruite. | void *connection
oci8-error | Lancé si une erreur Oracle survient. | int status, long errcode
oci8-execute-mode | Lancé lors d'un appel à oci_execute() pour afficher le mode d'exécution. | void *connection, char *client_id, void *statement, unsigned int mode

Ces découvertes sont utiles pour suivre les scripts OCI8.

Les variables connection et statement sont des pointeurs vers les structures internes utilisées pour suivre les connexions PHP et les requêtes exécutées.

La variable client_id est la valeur définie par oci_set_client_identifier().

Le coeur de PHP a aussi des découvertes statiques. Voir les découvertes statiques DTrace dans le coeur PHP.

Découvertes DTrace pour le débogage interne en OCI8
Nom de la découverte
oci8-connect-expiry
oci8-connect-lookup
oci8-connect-p-dtor-close
oci8-connect-p-dtor-release
oci8-connect-type
oci8-sesspool-create
oci8-sesspool-stats
oci8-sesspool-type

Ces découvertes sont utiles pour les mainteneurs OCI8. Référez-vous au code source d'OCI8 pour les arguments et pour voir quand elles sont lancées.

Liste des découvertes statiques DTraceen PHP OCI8

Pour lister toutes les découvertes disponibles, démarrez un processus PHP et exécutez :

# dtrace -l

L'affiche sera similaire à :

   ID   PROVIDER            MODULE                          FUNCTION NAME
   [ . . . ]
   17 phpoci22116           oci8.so   php_oci_dtrace_check_connection oci8-check-connection
   18 phpoci22116           oci8.so                php_oci_do_connect oci8-connect-entry
   19 phpoci22116           oci8.so         php_oci_persistent_helper oci8-connect-expiry
   20 phpoci22116           oci8.so             php_oci_do_connect_ex oci8-connect-lookup
   21 phpoci22116           oci8.so  php_oci_pconnection_list_np_dtor oci8-connect-p-dtor-close
   22 phpoci22116           oci8.so  php_oci_pconnection_list_np_dtor oci8-connect-p-dtor-release
   23 phpoci22116           oci8.so                php_oci_do_connect oci8-connect-return
   24 phpoci22116           oci8.so             php_oci_do_connect_ex oci8-connect-type
   25 phpoci22116           oci8.so          php_oci_connection_close oci8-connection-close
   26 phpoci22116           oci8.so                     php_oci_error oci8-error
   27 phpoci22116           oci8.so         php_oci_statement_execute oci8-execute-mode
   28 phpoci22116           oci8.so              php_oci_create_spool oci8-sesspool-create
   29 phpoci22116           oci8.so            php_oci_create_session oci8-sesspool-stats
   30 phpoci22116           oci8.so            php_oci_create_session oci8-sesspool-type
   31 phpoci22116           oci8.so          php_oci_statement_create oci8-sqltext

Les valeurs de la colonne "Provider" affichent phpoci suivi de l'identifiant du processus actuellement exécuté par PHP.

La colonne "Function" affiche les noms des fonctions C interne à PHP où chaque fournisseur est situé.

Si un processus PHP n'est pas en cours d'exécution, alors aucune découverte PHP ne sera affichée.

Exemple de DTrace avec PHP OCI8

Cet exemple montre les bases du langue de script DTrace D.

Exemple #1 user_oci8_probes.d pour suivre toutes les découvertes statiques au niveau utilisation PHP OCI8 avec DTrace

#!/usr/sbin/dtrace -Zs

#pragma D option quiet

php*:::oci8-connect-entry
{
    printf("%lld: PHP connect-entry\n", walltimestamp);
    printf("  credentials=\"%s@%s\"\n", arg0 ? copyinstr(arg0) : "", arg1 ? copyinstr(arg1) : "");
    printf("  charset=\"%s\"\n", arg2 ? copyinstr(arg2) : "");
    printf("  session_mode=%ld\n", (long)arg3);
    printf("  persistent=%d\n", (int)arg4);
    printf("  exclusive=%d\n", (int)arg5);
}

php*:::oci8-connect-return
{
    printf("%lld: PHP oci8-connect-return\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
}

php*:::oci8-connection-close
{
    printf("%lld: PHP oci8-connect-close\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
}

php*:::oci8-error
{
    printf("%lld: PHP oci8-error\n", walltimestamp);
    printf("  status=%d\n", (int)arg0);
    printf("  errcode=%ld\n", (long)arg1);
}

php*:::oci8-check-connection
{
    printf("%lld: PHP oci8-check-connection\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
    printf("  client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
    printf("  is_open=%d\n", arg2);
    printf("  errcode=%ld\n", (long)arg3);
    printf("  server_status=%lu\n", (unsigned long)arg4);
}

php*:::oci8-sqltext
{
    printf("%lld: PHP oci8-sqltext\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
    printf("  client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
    printf("  statement=0x%p\n", (void *)arg2);
    printf("  sql=\"%s\"\n", arg3 ? copyinstr(arg3) : "");
}

php*:::oci8-execute-mode
{
    printf("%lld: PHP oci8-execute-mode\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
    printf("  client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
    printf("  statement=0x%p\n", (void *)arg2);
    printf("  mode=0x%x\n", arg3);
}

Ce script utilise l'option -Z de dtrace, lui permettant d'être exécutée lorsqu'il n'y a aucun processus PHP en cours d'exécution. Si cette option est omis, le script va vouloir se terminer immédiatement lorsqu'aucun exécutable PHP n'est en cours de fonctionnement.

Sur les machines avec plusieurs CPU, l'ordre des découvertes semble ne pas être séquentiel. Ceci dépend du CPU qui exécute les découvertes, et le nombre de threads qui migrent des CPUs. L'affichage des timestamps des découvertes peut aider à éviter toute confusion.

Le script suit tous les points de découvertes statiques niveau utilisateur PHP OCI8 pendant la durée de l'exécution du script PHP. Exécution du script D :

# ./user_oci8_probes.d

Exécutez un script PHP ou une application. Le script de surveillance D affiche chaque argument de découvertes lancé. Par exemple, un simple script PHP qui requête une table va produire les traces suivantes :

1381794982092854582: PHP connect-entry
  credentials="hr@localhost/pdborcl"
  charset=""
  session_mode=0
  persistent=0
  exclusive=0
1381794982183158766: PHP oci8-connect-return
  connection=0x7f4a7907bfb8
1381794982183594576: PHP oci8-sqltext
  connection=0x7f4a7907bfb8
  client_id="Chris"
  statement=0x7f4a7907c2a0
  sql="select * from employees"
1381794982183783706: PHP oci8-execute-mode
  connection=0x7f4a7907bfb8
  client_id="Chris"
  statement=0x7f4a7907c2a0
  mode=0x20
1381794982444344390: PHP oci8-connect-close
  connection=0x7f4a7907bfb8

Lorsque la surveillance se termine, le script D peut s'arrêter avec la combinaison ^C.

Voir aussi

  • Le suivi dynamique DTrace


Types de données supportées par le driver

Le driver supporte les types suivants lors du liage de paramètres en utilisant la fonction oci_bind_by_name() :
Type | Liage
SQLT_NTY | Lie une collection de types natifs depuis un objet de collection PHP comme ceux créés par oci_new_collection().
SQLT_BFILEE | Lie une ressource native, telle que celles créées par la fonction oci_new_descriptor().
SQLT_CFILEE | Lie une ressource native, telle que celles créées par la fonction oci_new_descriptor().
SQLT_CLOB | Lie une ressource native, telle que celles créées par la fonction oci_new_descriptor().
SQLT_BLOB | Lie une ressource native, comme celles créées par la fonction oci_new_descriptor().
SQLT_RDD | Lie une ressource native, comme celles créées par la fonction oci_new_descriptor().
SQLT_NUM | Convertit un paramètre PHP en un type long 'C', et le lie à cette valeur.
SQLT_RSET | Lie un gestionnaire de requête natif, comme ceux créés par la fonction oci_parse() ou ceux récupérés depuis d'autres requêtes OCI.
SQLT_BOL | Lie le paramètre PHP au booléen PL/SQL
SQLT_CHR et les autres types | Convertit le paramètre PHP en un type chaîne de caractères et le lie en tant que chaîne de caractères.
Les types suivants sont supportés lors de la récupération de colonnes depuis un jeu de résultats :
Type | Liage
SQLT_RSET | Crée une ressource de requêtes OCI pour représenter le curseur.
SQLT_RDD | Crée un objet ROWID.
SQLT_BLOB | Crée un objet LOB.
SQLT_CLOB | Crée un objet LOB.
SQLT_BFILE | Crée un objet LOB.
SQLT_LNG | Limite à SQLT_CHR, retourné sous la forme d'une chaîne de caractères
SQLT_LBI | Limite à SQLT_BIN, retourné sous la forme d'une chaîne de caractères
Tous les autres types | Limite à SQLT_CHR, retourné sous la forme d'une chaîne de caractères


Fonctions OCI8

Sommaire

  • oci_bind_array_by_name — Lie un tableau PHP à un paramètre de tableau Oracle PL/SQL
  • oci_bind_by_name — Associe une variable PHP à un marqueur Oracle
  • oci_cancel — Termine la lecture de curseurs Oracle
  • oci_client_version — Retourne la version de la bibliothèque cliente Oracle
  • oci_close — Ferme une connexion Oracle
  • oci_commit — Valide les transactions Oracle en cours
  • oci_connect — Établit une connexion avec un serveur Oracle
  • oci_define_by_name — Associe une variable PHP avec une colonne pour une requête de récupération de données
  • oci_error — Retourne la dernière erreur Oracle
  • oci_execute — Exécute une commande SQL Oracle
  • oci_fetch_all — Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
  • oci_fetch_array — Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
  • oci_fetch_assoc — Lit une ligne d'un résultat sous forme de tableau associatif
  • oci_fetch_object — Lit une ligne d'un résultat sous forme d'objet
  • oci_fetch_row — Lit la prochaine ligne d'une requête sous forme de tableau numérique
  • oci_fetch — Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
  • oci_field_is_null — Test si un champ de la ligne récupérée vaut NULL
  • oci_field_name — Retourne le nom d'un champ Oracle
  • oci_field_precision — Lit la précision d'un champ Oracle
  • oci_field_scale — Lit l'échelle d'une colonne Oracle
  • oci_field_size — Retourne la taille d'un champ Oracle
  • oci_field_type_raw — Lit les données brutes du type d'un champ
  • oci_field_type — Retourne le type de données d'un champ Oracle
  • oci_free_descriptor — Libère un descripteur
  • oci_free_statement — Libère toutes les ressources réservées par un résultat Oracle
  • oci_get_implicit_resultset — Retourne le fils suivant d'une ressource de requête depuis une ressource de requête parent qui a un jeu de résultat implicite Oracle Database 12c
  • oci_internal_debug — Active ou désactive l'affichage des données de déboguage Oracle
  • oci_lob_copy — Copie un LOB Oracle
  • oci_lob_is_equal — Compare deux LOB/FILE Oracle
  • oci_new_collection — Initialise une nouvelle collection Oracle
  • oci_new_connect — Connexion au serveur Oracle en utilisant une seule connexion
  • oci_new_cursor — Alloue et retourne un nouveau curseur Oracle
  • oci_new_descriptor — Initialise un nouveau pointeur vide de LOB/FILE Oracle
  • oci_num_fields — Retourne le nombre de colonnes dans un résultat Oracle
  • oci_num_rows — Retourne le nombre de lignes affectées durant la dernière commande Oracle
  • oci_parse — Prépare une requête SQL avec Oracle
  • oci_password_change — Modifie le mot de passe d'un utilisateur Oracle
  • oci_pconnect — Ouvre une connexion persistante à un serveur Oracle
  • oci_result — Retourne la valeur d'une colonne dans un résultat Oracle
  • oci_rollback — Annule les transactions Oracle en cours
  • oci_server_version — Retourne la version du serveur Oracle
  • oci_set_action — Définit le nom de l'action
  • oci_set_client_identifier — Définit l'identifiant du client
  • oci_set_client_info — Définit l'information concernant le client
  • oci_set_edition — Définit l'édition de la base de données
  • oci_set_module_name — Définit le nom du module
  • oci_set_prefetch — Indique le nombre de lignes qui doivent être lues à l'avance par Oracle
  • oci_statement_type — Retourne le type de la requête Oracle


Lie un tableau PHP à un paramètre de tableau Oracle PL/SQL

  • « Fonctions OCI8
  • oci_bind_by_name »
  • PHP Manual
  • Fonctions OCI8
  • Lie un tableau PHP à un paramètre de tableau Oracle PL/SQL

oci_bind_array_by_name

(PHP 5 >= 5.1.2, PHP 7, PECL OCI8 >= 1.2.0)

oci_bind_array_by_name — Lie un tableau PHP à un paramètre de tableau Oracle PL/SQL

Description

bool oci_bind_array_by_name ( resource $statement , string $name , array &$var_array , int $max_table_length [, int $max_item_length = -1 [, int $type = SQLT_AFC ]] )

Lie un tableau PHP var_array à un marqueur Oracle name, qui pointe vers un tableau PL/SQL. Il peut être utilisé pour l'entrée ou la sortie, suivant la configuration à l'exécution.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

name

Le marqueur Oracle.

var_array

Un tableau.

max_table_length

Spécifie la longueur maximale des tableaux d'entrées et de résultats.

max_item_length

Définit la longueur maximale pour les éléments du tableau. Si max_item_length n'est pas fourni ou s'il vaut -1, oci_bind_array_by_name() cherchera l'élément le plus long dans le tableau d'entrée et l'utilisera en tant que longueur maximale.

type

Devrait être utilisé pour définir le type des éléments PL/SQL. Voir la liste des types disponibles ci-dessous :

  • SQLT_NUM - pour les tableaux de NUMBER.

  • SQLT_INT - pour les tableaux INTEGER (Note : INTEGER c'est actuellement un synonyme pour NUMBER(38), mais le type SQLT_NUM ne fonctionnera pas dans ce cas même s'ils sont synonymes).

  • SQLT_FLT - pour les tableaux de FLOAT.

  • SQLT_AFC - pour les tableaux de CHAR.

  • SQLT_CHR - pour les tableaux de VARCHAR2.

  • SQLT_VCS - pour les tableaux de VARCHAR.

  • SQLT_AVC - pour les tableaux de CHARZ.

  • SQLT_STR - pour les tableaux de STRING.

  • SQLT_LVC - pour les tableaux de LONG VARCHAR.

  • SQLT_ODT - pour les tableaux de DATE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_bind_array_by_name()

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$create = "CREATE TABLE bind_example(name VARCHAR(20))";
$stid = oci_parse($conn, $create);
oci_execute($stid);

$create_pkg = "
CREATE OR REPLACE PACKAGE ARRAYBINDPKG1 AS
  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
  PROCEDURE iobind(c1 IN OUT ARRTYPE);
END ARRAYBINDPKG1;";
$stid = oci_parse($conn, $create_pkg);
oci_execute($stid);

$create_pkg_body = "
CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS
  CURSOR CUR IS SELECT name FROM bind_example;
  PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
    BEGIN
    -- Bulk Insert
    FORALL i IN INDICES OF c1
      INSERT INTO bind_example VALUES (c1(i));

    -- Fetch and reverse;
    IF NOT CUR%ISOPEN THEN
      OPEN CUR;
    END IF;
    FOR i IN REVERSE 1..5 LOOP
      FETCH CUR INTO c1(i);
      IF CUR%NOTFOUND THEN
        CLOSE CUR;
        EXIT;
      END IF;
    END LOOP;
  END iobind;
END ARRAYBINDPKG1;";
$stid = oci_parse($conn, $create_pkg_body);
oci_execute($stid);

$stid = oci_parse($conn, "BEGIN arraybindpkg1.iobind(:c1); END;");
$array = array("one", "two", "three", "four", "five");
oci_bind_array_by_name($stid, ":c1", $array, 5, -1, SQLT_CHR);
oci_execute($stid);

var_dump($array);

?>


Associe une variable PHP à un marqueur Oracle

  • « oci_bind_array_by_name
  • oci_cancel »
  • PHP Manual
  • Fonctions OCI8
  • Associe une variable PHP à un marqueur Oracle

oci_bind_by_name

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_bind_by_name — Associe une variable PHP à un marqueur Oracle

Description

bool oci_bind_by_name ( resource $statement , string $bv_name , mixed &$variable [, int $maxlength = -1 [, int $type = SQLT_CHR ]] )

Lie une variable PHP variable au marqueur Oracle bv_name. Le fait de lier une variable est important en terme de performance de la base de données Oracle, mais aussi en terme de sécurité relative aux injections SQL.

Le liage permet aux bases de données de réutiliser le contexte d'exécution de la requête ainsi que le cache associé, y compris lorsqu'un autre utilisateur ou processus l'exécute. Le liage réduit le risque d'injection SQL car les données associées à une variable liée ne sont jamais traitées comme faisant partie de la requête SQL. Inutile donc d'ajouter des quotes ou d'échapper ces données.

Les variables PHP liées peuvent changées et la requête ré-exécutée sans avoir besoin d'analyser de nouveau la requête ou de lier de nouveau les variables.

Avec Oracle, les variables liées sont habituellement divisées en lien IN pour les valeurs passées à la base de données, et en lien OUT pour les valeurs à retourner à PHP. Une variable liée peut être à la fois en lien IN et OUT. Dans ce cas, le fait de savoir si la variable liée doit être utilisée pour l'entrée ou la sortie sera déterminé au moment de l'exécution.

Vous devez spécifier le paramètre maxlength lors de l'utilisation du lien OUT afin que PHP alloue assez de mémoire pour contenir la valeur de retour.

Pour les liens IN, il est recommandé de définir le paramètre maxlength si la requête est exécutée plusieurs fois avec des valeurs différentes pour les variables PHP. Sinon, Oracle peut tronquer les données à la longueur de la valeur initiale de la variable PHP. Si vous ne connaissez pas la valeur maximale dont vous avez besoin, alors appelez de nouveau la fonction oci_bind_by_name() avec les données courantes, avant chaque appel à la fonction oci_execute(). Le fait de l'associer une taille supérieure à ce dont vous avez besoin a un impact sur la mémoire associée au processus pour la base de données.

Un appel à la fonctionnalité d'association de variables donne à Oracle l'adresse mémoire à utiliser pour lire les données. Pour les liens IN, cette adresse doit contenir des données valides lors de l'appel à la fonction oci_execute(). Ceci signifie que la variable liée doit rester dans le contexte jusqu'à l'exécution. Si ce n'est pas le cas, des résultats non attendus peuvent survenir, ainsi que des erreurs de type "ORA-01460: unimplemented or unreasonable conversion requested". Pour les liens OUT, un symptôme peut être qu'aucune valeur n'a été définie dans la variable PHP.

Pour une requête qui est exécutée à plusieurs reprises, les valeurs liées qui ne changent jamais peuvent réduire la capacité de l'optimisateur d'Oracle à choisir le meilleur plan d'exécution. Pour les requêtes prenant du temps, qui sont rarement appelées plusieurs fois, l'association de variables n'apporte aucun bénéfice. Cependant, dans les 2 cas, l'association est plus sécurisée que de placer directement les chaînes de caractères dans la requête SQL, sachant qu'il y a un risque de mauvais filtrage de l'entrée utilisateur.

Liste de paramètres

statement

Un identifiant de requête OCI8 valide.

bv_name

Le marqueur, préfixé par une virgule, utilisé dans la requête. La virgule est optionnelle dans le paramètre bv_name.

variable

La variable PHP à associer avec le marqueur du paramètre bv_name.

maxlength

Spécifie la taille maximale pour les données. Si la valeur est -1, la fonction utilisera la longueur courante des données du paramètre variable pour définir la longueur maximale. Dans ce cas, le paramètre variable doit exister et contenir des données lors de l'appel à la fonction oci_bind_by_name().

type

Le type de données à utiliser par Oracle pour traiter les données. Par défaut, vaut SQLT_CHR. Oracle convertira les données entre ce type et la colonne de la base de données (ou des variables de type PL/SQL), lorsque c'est possible.

Si vous devez lier des types abstraits de données (LOB/ROWID/BFILE), vous devrez l'allouer dans un premier temps, avec oci_new_descriptor(). La longueur length ne sert pas pour ces types et devrait être fixée à -1.

Les valeurs possibles pour le paramètre type sont :

  • SQLT_FILE ou OCI_B_BFILE - pour les BFILEs ;

  • SQLT_CFILE ou OCI_B_CFILEE - pour les CFILEs ;

  • SQLT_CLOB ou OCI_B_CLOB - pour les CLOBs ;

  • SQLT_BLOB ou OCI_B_BLOB - pour les BLOBs ;

  • SQLT_RDD ou OCI_B_ROWID - pour les ROWIDs ;

  • SQLT_NTY ou OCI_B_NTY - pour les types de données nommés ;

  • SQLT_INT ou OCI_B_INT - pour les entiers ;

  • SQLT_CHR - pour les VARCHAR ;

  • SQLT_BIN ou OCI_B_BIN - pour les colonnes RAW ;

  • SQLT_LNG - pour les colonnes LONG ;

  • SQLT_LBI - pour les colonnes LONG RAW ;

  • SQLT_RSET - pour les curseurs créés avec la fonction oci_new_cursor();

  • SQLT_BOL ou OCI_B_BOL - pour les booléens (requiert OCI8 2.0.7 et Oracle Database 12c)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Insertion de données avec la fonction oci_bind_by_name()

<?php

// Création de la table avec :
//   CREATE TABLE mytab (id NUMBER, text VARCHAR2(40));

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn,"INSERT INTO mytab (id, text) VALUES(:id_bv, :text_bv)");

$id = 1;
$text = "Données à insérer     ";
oci_bind_by_name($stid, ":id_bv", $id);
oci_bind_by_name($stid, ":text_bv", $text);
oci_execute($stid);

// La table contient maintenant : 1, 'Données à insérer

?>

Exemple #2 Une association avec de multiples appels

<?php

// Création de la table avec :
//   CREATE TABLE mytab (id NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$a = array(1,3,5,7,11);  // Données à insérer

$stid = oci_parse($conn, 'INSERT INTO mytab (id) VALUES (:bv)');
oci_bind_by_name($stid, ':bv', $v, 20);
foreach ($a as $v) {
    $r = oci_execute($stid, OCI_DEFAULT);  // Ne pas valider automatiquement
}
oci_commit($conn); // Une seule validation

// La table contient maintenant 5 lignes : 1, 3, 5, 7, 11

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #3 Association avec une boucle foreach()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT * FROM departments WHERE department_name = :dname AND location_id = :loc';
$stid = oci_parse($conn, $sql);

$ba = array(':dname' => 'IT Support', ':loc' => 1700);

foreach ($ba as $key => $val) {

    // oci_bind_by_name($stid, $key, $val) ne fonctionne pas car
    // elle associe chaque marqueur au même endroit : $val
    // au lieu d'utiliser l'endroit actuel de la donnée $ba[$key]
    oci_bind_by_name($stid, $key, $ba[$key]);
}

oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
foreach ($row as $item) {
    print $item."<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #4 Association dans une clause WHERE

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE department_id = :didbv ORDER BY last_name';
$stid = oci_parse($conn, $sql);
$didbv = 60;
oci_bind_by_name($stid, ':didbv', $didbv);
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
    echo $row['LAST_NAME'] ."<br>\n";
}

// Affiche :
//    Austin
//    Ernst
//    Hunold
//    Lorentz
//    Pataballa

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #5 Association avec une clause LIKE

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

// Trouve tous les critères qui commencent par 'South'
$stid = oci_parse($conn, "SELECT city FROM locations WHERE city LIKE :bv");
$city = 'South%';  // '%' is a wildcard in SQL
oci_bind_by_name($stid, ":bv", $city);
oci_execute($stid);
oci_fetch_all($stid, $res);

foreach ($res['CITY'] as $c) {
    print $c . "<br>\n";
}
// Affiche :
//   South Brunswick
//   South San Francisco
//   Southlake

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #6 Association avec REGEXP_LIKE

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

// Trouve tous les critères qui contiennent 'ing'
$stid = oci_parse($conn, "SELECT city FROM locations WHERE REGEXP_LIKE(city, :bv)");
$city = '.*ing.*';
oci_bind_by_name($stid, ":bv", $city);
oci_execute($stid);
oci_fetch_all($stid, $res);

foreach ($res['CITY'] as $c) {
    print $c . "<br>\n";
}
// Affiche :
//   Beijing
//   Singapore

oci_free_statement($stid);
oci_close($conn);

?>

Pour quelques conditions utilisées dans les clauses IN, utilisez des variables liées individuelles. Les valeurs inconnues au moment de l'exécution pourront être définies à NULL. Ceci permet d'utiliser une seule requête pour l'ensemble des utilisateurs de l'application, maximisant ainsi l'efficacité du cache Oracle DB.

Exemple #7 Association de plusieurs valeurs dans une clause IN

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE employee_id in (:e1, :e2, :e3)';
$stid = oci_parse($conn, $sql);
$mye1 = 103;
$mye2 = 104;
$mye3 = NULL; // pretend we were not given this value
oci_bind_by_name($stid, ':e1', $mye1);
oci_bind_by_name($stid, ':e2', $mye2);
oci_bind_by_name($stid, ':e3', $mye3);
oci_execute($stid);
oci_fetch_all($stid, $res);
foreach ($res['LAST_NAME'] as $name) {
    print $name ."<br>\n";
}

// Affiche :
//   Ernst
//   Hunold

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #8 Association d'un ROWID retourné par une requête

<?php

// Création de la table avec :
//   CREATE TABLE mytab (id NUMBER, salary NUMBER, name VARCHAR2(40));
//   INSERT INTO mytab (id, salary, name) VALUES (1, 100, 'Chris');
//   COMMIT;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT ROWID, name FROM mytab WHERE id = :id_bv FOR UPDATE');
$id = 1;
oci_bind_by_name($stid, ':id_bv', $id);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
$rid = $row['ROWID'];
$name = $row['NAME'];

// Modification du nom en lettre majuscule & sauvegarde de cette modification
$name = strtoupper($name);
$stid = oci_parse($conn, 'UPDATE mytab SET name = :n_bv WHERE ROWID = :r_bv');
oci_bind_by_name($stid, ':n_bv', $name);
oci_bind_by_name($stid, ':r_bv', $rid, -1, OCI_B_ROWID);
oci_execute($stid);

// La table contient maintenant 1, 100, CHRIS

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #9 Association d'un ROWID dans un INSERT

<?php

// Cet exemple insère un id & un nom, puis, met à jour le salaire
// Création de la table avec :
//   CREATE TABLE mytab (id NUMBER, salary NUMBER, name VARCHAR2(40));
//
// Basé sur l'exemple original de ROWID, fourni par thies at thieso dot net (980221)

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = "INSERT INTO mytab (id, name) VALUES(:id_bv, :name_bv)
        RETURNING ROWID INTO :rid";

$ins_stid = oci_parse($conn, $sql);

$rowid = oci_new_descriptor($conn, OCI_D_ROWID);
oci_bind_by_name($ins_stid, ":id_bv",   $id,    10);
oci_bind_by_name($ins_stid, ":name_bv", $name,  32);
oci_bind_by_name($ins_stid, ":rid",     $rowid, -1, OCI_B_ROWID);

$sql = "UPDATE mytab SET salary = :salary WHERE ROWID = :rid";
$upd_stid = oci_parse($conn, $sql);
oci_bind_by_name($upd_stid, ":rid", $rowid, -1, OCI_B_ROWID);
oci_bind_by_name($upd_stid, ":salary", $salary,   32);

// ids et noms à insérer
$data = array(1111 => "Larry",
              2222 => "Bill",
              3333 => "Jim");

// Salaire de chaque personne
$salary = 10000;

// Insertion et mise à jour immédiate de chaque ligne
foreach ($data as $id => $name) {
    oci_execute($ins_stid);
    oci_execute($upd_stid);
}

$rowid->free();
oci_free_statement($upd_stid);
oci_free_statement($ins_stid);

// Affichage des nouvelles lignes
$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid);
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    var_dump($row);
}

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #10 Association pour une fonction stockée PL/SQL

<?php

// Avant d'exécuter le programme PHP, une fonction stockée doit être créée
// au format SQL*Plus ou SQL Developer :
//
//  CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
//  BEGIN
//      RETURN p * 3;
//  END;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$p = 8;

$stid = oci_parse($conn, 'begin :r := myfunc(:p); end;');
oci_bind_by_name($stid, ':p', $p);

// La valeur retournée est un lien OUT. Le type par défaut devra être
// de type string, aussi, l'association sur une longueur de 40 signifie
// que la chaîne retournée fera au maximum 40 caractères.
oci_bind_by_name($stid, ':r', $r, 40);

oci_execute($stid);

print "$r\n";   // Affiche 24

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #11 Association de paramètres à une procédure stockée PL/SQL

<?php

// Avant d'exécuter le programme PHP, une procédure stockée doit être créée
// au format SQL*Plus ou SQL Developer :
//
//  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
//  BEGIN
//      p2 := p1 * 2;
//  END;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$p1 = 8;

$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);

// Le second paramètre de la procédure stockée est un lien OUT.
// Le type par défaut devra être de type string, aussi,
// l'association sur une longueur de 40 signifie
// que la chaîne retournée fera au maximum 40 caractères.

oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n";   // Affiche 16

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #12 Association sur une colonne CLOB

<?php

// Avant l'exécution, il est nécessaire de créer la table :
//     CREATE TABLE mytab (mykey NUMBER, myclob CLOB);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$mykey = 12343;  // Clé arbitraire pour l'exemple ;

$sql = "INSERT INTO mytab (mykey, myclob)
        VALUES (:mykey, EMPTY_CLOB())
        RETURNING myclob INTO :myclob";

$stid = oci_parse($conn, $sql);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
oci_execute($stid, OCI_DEFAULT);
$clob->save("A very long string");

oci_commit($conn);

// Récupération des données CLOB

$query = 'SELECT myclob FROM mytab WHERE mykey = :mykey';

$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid);

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) {
    print '<tr><td>'.$row['MYCLOB'].'</td></tr>';
    // Dans une boucle, le fait de libérer la variable avant la récupèration de
    // la ligne suivante réduit l'utilisation mémoire de PHP
    unset($row);
}
print '</table>';

?>

Exemple #13 Association sur un booléen dans un script PL/SQL

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$plsql =
  "begin
    :output1 := true;
    :output2 := false;
   end;";

$s = oci_parse($c, $plsql);
oci_bind_by_name($s, ':output1', $output1, -1, OCI_B_BOL);
oci_bind_by_name($s, ':output2', $output2, -1, OCI_B_BOL);
oci_execute($s);
var_dump($output1);  // true
var_dump($output2);  // false

?>

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

N'utilisez pas la directive magic_quotes_gpc ou la fonction addslashes() associé à la fonction oci_bind_by_name() simultanément, car aucun ajout de guillemets n'est nécessaire. Si c'est le cas, alors les guillemets ajoutés seront écrits dans la base de données ; en effet, la fonction oci_bind_by_name() insère les données brutes et ne supprime ni les guillemets ajoutés, ni les caractères d'échappement.

Note:

Si vous associez une chaîne de caractères à une colonne de type CHAR dans une clause WHERE, souvenez-vous qu'Oracle utilise une comparaison en ajoutant des caractères vides pour les colonnes de type CHAR. Aussi, votre variable PHP doit être compléter par des caractères vides afin d'atteindre la même taille que la colonne pour que la clause WHERE fonctionne.

Note:

L'argument PHP variable est une référence. Aussi, quelques formats de boucle peuvent ne pas fonctionner comme prévu :

<?php
foreach ($myarray as $key => $value)  {
    oci_bind_by_name($stid, $key, $value);
}
?>

Ceci associe chaque clé à la valeur pointée par $value, aussi, toutes les variables associées pointent vers la valeur de la dernière itération de la boucle. A la place, utilisez ceci :

<?php
foreach ($myarray as $key => $value) {
    oci_bind_by_name($stid, $key, $myarray[$key]);
}
?>

Voir aussi

  • oci_bind_array_by_name() - Lie un tableau PHP à un paramètre de tableau Oracle PL/SQL
  • oci_parse() - Prépare une requête SQL avec Oracle


Termine la lecture de curseurs Oracle

  • « oci_bind_by_name
  • oci_client_version »
  • PHP Manual
  • Fonctions OCI8
  • Termine la lecture de curseurs Oracle

oci_cancel

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_cancel — Termine la lecture de curseurs Oracle

Description

bool oci_cancel ( resource $statement )

Invalide un curseur, libère toutes les ressources associées et annule la possibilité de lecture depuis la ressource.

Liste de paramètres

statement

Une requête OCI.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne la version de la bibliothèque cliente Oracle

  • « oci_cancel
  • oci_close »
  • PHP Manual
  • Fonctions OCI8
  • Retourne la version de la bibliothèque cliente Oracle

oci_client_version

(PHP 5.3.7, PHP 7, PECL OCI8 >= 1.4.6)

oci_client_version — Retourne la version de la bibliothèque cliente Oracle

Description

string oci_client_version ( void )

Retourne une chaîne de caractères contenant le numéro de la version de la bibliothèque cliente Oracle C, à laquelle PHP est liée.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le numéro de version, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec oci_client_version()

<?php
    echo "Client Version: " . oci_client_version(); // Version du client : 11.2.0.2
?>

Notes

Note:

Les bibliothèques Oracle avant la 10gR2 ne possédaient pas de fonctionnalité interne permettant de récupérer le numéro de version de la bibliothèque. La chaîne "Unknow" sera retournée dans ce cas.

Voir aussi

  • oci_server_version() - Retourne la version du serveur Oracle


Ferme une connexion Oracle

  • « oci_client_version
  • oci_commit »
  • PHP Manual
  • Fonctions OCI8
  • Ferme une connexion Oracle

oci_close

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_close — Ferme une connexion Oracle

Description

bool oci_close ( resource $connection )

Ferme une connexion connection Oracle. La connexion sera fermée si aucune ressource ne l'utilise et si elle a été créée avec la fonction oci_connect() ou la fonction oci_new_connect().

Il est recommandé de fermer les connexions qui ne vous sont plus nécessaires, rendant ainsi plus de ressources de disponible pour les autres utilisateurs.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect(), ou oci_new_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fermeture d'une connexion

Les ressources associées avec une connexion doivent être fermée afin d'assurer à la base de données sous sous-jacente la fin des opération et ainsi, y libérer les ressources.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM departments');
$r = oci_execute($stid);
oci_fetch_all($stid, $res);
var_dump($res);

// Libération de l'identifiant de requête lors de la fermeture de la connexion
oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Les connexions à la base de données sont fermées à partir du moment où les références le sont

L'identifiant interne comptant les connexions doit valoir zéro pour pouvoir fermer la connexion.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM departments');  // ceci incrémente le compteur interne $conn
oci_execute($stid);
oci_fetch_all($stid, $res);
var_dump($res);

oci_close($conn);

// $conn n'est plus utilisable dans le script mais la connexion sous-jacente à
// la base de données est toujours ouverte tant que $stid n'est pas libéré.
var_dump($conn);  // affiche NULL

// Pendant que PHP attend, le fait d'interroger la vue V$SESSION d'Oracle
// dans un terminal montrera qu'un utilisateur est toujours connecté.
sleep(10);

// Lorsque $stid est libéré, la connexion à la base de données sera physiquement fermée
oci_free_statement($stid);

// Pendant que PHP attend, le fait d'interroger la vue V$SESSION d'Oracle
// dans un terminal montrera que l'utilisateur s'est déconnecté.
sleep(10);

?>

Exemple #3 Fermeture d'un connexion ouverte plus d'une fois

Lorsque des identifiants de base de données sont réutilisés, toutes les connexions doivent être fermées avant que la connexion à la base de données sous-jacente le soit réellement.

<?php

$conn1 = oci_connect('hr', 'welcome', 'localhost/XE');

// L'utilisation des mêmes identifiants réutilise la même connexion à la base de données sous-jacente.
// Toutes les modifications non validées effectuées sur $conn1 seront visibles sur $conn2.
$conn2 = oci_connect('hr', 'welcome', 'localhost/XE');

// Pendant que PHP attend, le fait d'interroger la vue V$SESSION d'Oracle
// dans un terminal montrera qu'un seul utilisateur est connecté.
sleep(10);

oci_close($conn1); // ne ferme pas la connexion à la base de données sous-jacente
var_dump($conn1);  // affiche NULL car la variable $conn1 n'est plus utilisable
var_dump($conn2);  // affiche que $conn2 est toujours une ressource de connexion valide

?>

Exemple #4 Les connexions sont fermées lorsque les variables sortent du contexte

Lorsque toutes les variables référençant une connexion sortent du contexte et sont libérées par PHP, une annulation survient (si nécessaire) et la connexion sous-jacente à la base de données est fermée.

<?php

function myfunc() {
    $conn = oci_connect('hr', 'hrpwd', 'localhost/XE');
    if (!$conn) {
        $e = oci_error();
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    }

    $stid = oci_parse($conn, 'UPDATE mytab SET id = 100');
    oci_execute($stid, OCI_NO_AUTO_COMMIT);
    return "Finished";
}

$r = myfunc();
// À ce moment, une annulation survient et la connexion sous-jacente à la base de données est fermée.

print $r;  // affiche la valeur de retour de la fonction "Finished"

?>

Notes

Note:

Les variables ayant une dépendance à l'identifiant de connexion, comme les identifiants de requêtes retournés par la fonction oci_parse(), doivent être libérées avant de tenter de fermer la connexion sous-jacente à la base de données.

Note:

Avant la version PHP 5.1.2 (PECL OCI8 1.1) oci_close() ne fermait pas réellement la connexion Oracle. Dans les versions plus récentes, cette fonction ferme correctement la connexion Oracle. Utilisez l'option oci8.old_oci_close_semantics pour revenir à l'ancien comportement de cette fonction.

Note:

La fonction oci_close() ne ferme pas les connexions sous-jacentes à la base de données créées par la fonction oci_pconnect().

Voir aussi

  • oci_connect() - Établit une connexion avec un serveur Oracle
  • oci_free_statement() - Libère toutes les ressources réservées par un résultat Oracle


Valide les transactions Oracle en cours

  • « oci_close
  • oci_connect »
  • PHP Manual
  • Fonctions OCI8
  • Valide les transactions Oracle en cours

oci_commit

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_commit — Valide les transactions Oracle en cours

Description

bool oci_commit ( resource $connection )

Valide toutes les transactions en cours sur la connexion Oracle connection. Une validation rend permanentes toutes les modifications, en libérant tous les verrous.

Une transaction commence lorsque la première requête SQL qui modifie des données est exécutée avec la fonction oci_execute() en utilisant le drapeau OCI_NO_AUTO_COMMIT. Les modifications suivantes faîtes par d'autres requêtes deviennent parties intégrantes de la même transaction. Les données modifiées par une transaction sont temporaires tant que la transaction n'est pas validée ou annulée. Les autres utilisateurs de la base de données ne verront ces modifications qu'une fois la transaction validée.

Lors de l'insertion ou de la mise à jour de données, l'utilisation des transactions est recommandée afin de garantir la consistance relationnelle des données, mais aussi afin d'augmenter les performances.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect(), ou oci_new_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_commit()

<?php

// Insertion dans plusieurs tables, avec une annulation des modifications si des erreurs surviennent

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");

// Le drapeau OCI_NO_AUTO_COMMIT indique à Oracle de ne pas valider les insertions automatiquement.
/// Utilisez le drapeau OCI_DEFAULT pour PHP <= 5.3.1. Les 2 sont équivalents
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    oci_rollback($conn);  // Annulation des modifications sur les 2 tables
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// Valide les modifications sur les 2 tables
$r = oci_commit($conn);
if (!$r) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

?>

Notes

Note:

Les transactions sont automatiquement annulées lorsque vous fermez la connexion, ou lorsque le script se termine, un des deux arrivant le premier. Vous devez explicitement appeler la fonction oci_commit() pour valider la transaction.

Chaque appel à la fonction oci_execute() qui utilise le mode OCI_COMMIT_ON_SUCCESS explicitement ou par défaut, validera toutes les transactions précédentes non validées à ce stade.

Toutes les requêtes Oracle comme CREATE ou DROP validera également toutes les transactions non validées.

Voir aussi

  • oci_execute() - Exécute une commande SQL Oracle
  • oci_rollback() - Annule les transactions Oracle en cours


Établit une connexion avec un serveur Oracle

  • « oci_commit
  • oci_define_by_name »
  • PHP Manual
  • Fonctions OCI8
  • Établit une connexion avec un serveur Oracle

oci_connect

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_connect — Établit une connexion avec un serveur Oracle

Description

resource oci_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] )

Retourne un identifiant de connexion, nécessaire à la plupart des appels OCI8.

Voir la section sur la gestion des connexions pour des informations générales sur la façon dont sont gérées les connexions avec un serveur Oracle.

Depuis PHP 5.1.2 (PECL OCI8 1.1), la fonction oci_close() peut être utilisée pour fermer une connexion.

Les appels suivants (suivant un premier) à la fonction oci_connect() avec les mêmes paramètres retourneront le gestionnaire de connexion retourné lors du premier appel. Cela signifie que les transactions effectuées sur un gestionnaire seront actives sur les autres, sachant qu'elles utilisent la même connexion sous-jacente. Si 2 gestionnaires doivent avoir des transactions isolées, utilisez à la place la fonction oci_new_connect().

Liste de paramètres

username

Le nom d'utilisateur Oracle.

password

Le mot de passe de l'utilisateur.

connection_string

Contient l'instance Oracle sur laquelle nous devons nous connecter. Ce peut être une » chaîne de connexion rapide, un nom de connexion issue du fichier tnsnames.ora, ou le nom d'une instance locale Oracle.

Si non spécifié, PHP utilise des variables d'environnement comme TWO_TASK (sous Linux) ou LOCAL (sous Windows) et ORACLE_SID pour déterminer l'instance Oracle sur laquelle nous devons nous connecter.

Pour utiliser la méthode de connexion rapide, PHP doit être lié avec la bibliothèque cliente Oracle 10g ou supérieur. La chaîne de connexion rapide pour Oracle 10g ou supérieur est de la forme : [//]host_name[:port][/service_name]. Depuis Oracle 11g, la syntaxe est : [//]host_name[:port][/service_name][:server_type][/instance_name]. Les noms des services peuvent être trouvés en exécutant l'utilitaire Oracle lsnrctl status sur la machine exécutant la base de données.

Le fichier tnsnames.ora peut être dans le chemin de recherche d'Oracle Net, qui inclut $ORACLE_HOME/network/admin et /etc. Une solution alternative serait de définit TNS_ADMIN afin que le fichier $TNS_ADMIN/tnsnames.ora soit lu. Assurez-vous que le daemon exécutant le serveur web a accès en lecture à ce fichier.

character_set

Détermine le jeu de caractères utilisé par la bibliothèque cliente Oracle. Le jeu de caractères n'a pas besoin d'être identique à celui utilisé par la base de données. S'il ne correspond pas, Oracle ferait de son mieux pour convertir les données depuis le jeu de caractères de la base de données. Suivant les jeux de caractères, il se peut que le résultat ne soit pas parfait. De plus, cette conversion nécessite un peu de temps système.

Si non spécifié, la bibliothèque cliente Oracle déterminera un jeu de caractères depuis la variable d'environnement NLS_LANG.

Le fait de passer ce paramètre peut réduire la durée de connexion.

session_mode

Ce paramètre est disponible depuis PHP 5 (PECL OCI8 1.1) et accepte les valeurs suivantes : OCI_DEFAULT, OCI_SYSOPER et OCI_SYSDBA. Si soit la constante OCI_SYSOPER, soit la constante OCI_SYSDBA est spécifiée, cette fonction tentera d'établir une connexion privilégiée en utilisant des identifiants externes. Les connexions privilégiées sont désactivées par défault. Pour les activer, vous devez définir l'option oci8.privileged_connect à On.

PHP 5.3 (PECL OCI8 1.3.4) introduisent la valeur de mode OCI_CRED_EXT. Ce mode demande à Oracle d'utiliser une identification externe ou bien issue du système d'exploitation, qui doit être configurée dans la base de données. Le drapeau OCI_CRED_EXT ne peut être utilisé qu'avec le nom d'utilisateur "/" associé à un mot de passe vide. L'option oci8.privileged_connect peut être définie à On ou Off.

OCI_CRED_EXT peut être combiné avec le mode OCI_SYSOPER ou le mode OCI_SYSDBA.

OCI_CRED_EXT n'est pas supporté sous Windows pour des raisons de sécurité.

Valeurs de retour

Retourne un identifiant de connexion ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_connect() en utilisant la syntaxe simplifiée

<?php

// Connexion au service XE (i.e. la base de données) sur la machine "localhost"
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Exemple #2 Exemple avec oci_connect() en utilisant un nom de connexion réseau

<?php

// Connexion à la base de données MYDB décrite dans le fichier tnsnames.ora,
// Un exemple d'entrée tnsnames.ora pour MYDB pourraît être :
//   MYDB =
//     (DESCRIPTION =
//       (ADDRESS = (PROTOCOL = TCP)(HOST = mymachine.oracle.com)(PORT = 1521))
//       (CONNECT_DATA =
//         (SERVER = DEDICATED)
//         (SERVICE_NAME = XE)
//       )
//     )

$conn = oci_connect('hr', 'welcome', 'MYDB');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Exemple #3 Exemple avec oci_connect() en utilisant un jeu de caractère spécifique

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE', 'AL32UTF8');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Exemple #4 Exemple avec plusieurs appels à la fonction oci_connect()

<?php

$c1 = oci_connect("hr", "welcome", 'localhost/XE');
$c2 = oci_connect("hr", "welcome", 'localhost/XE');

// À la fois $c1 et $c2 affichent le même identifiant de ressources PHP, ce qui signifie
// qu'il s'agit de la même connexion à la base de données
echo "c1 is $c1<br>\n";
echo "c2 is $c2<br>\n";

function create_table($conn)
{
    $stmt = oci_parse($conn, "create table hallo (test varchar2(64))");
    oci_execute($stmt);
    echo "Created table<br>\n";
}

function drop_table($conn)
{
    $stmt = oci_parse($conn, "drop table hallo");
    oci_execute($stmt);
    echo "Dropped table<br>\n";
}

function insert_data($connname, $conn)
{
    $stmt = oci_parse($conn, "insert into hallo
              values(to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
    oci_execute($stmt, OCI_DEFAULT);
    echo "$connname inserted row without committing<br>\n";
}

function rollback($connname, $conn)
{
    oci_rollback($conn);
    echo "$connname rollback<br>\n";
}

function select_data($connname, $conn)
{
    $stmt = oci_parse($conn, "select * from hallo");
    oci_execute($stmt, OCI_DEFAULT);
    echo "$connname ----selecting<br>\n";
    while (oci_fetch($stmt)) {
        echo "    " . oci_result($stmt, "TEST") . "<br>\n";
    }
    echo "$connname ----done<br>\n";
}

create_table($c1);

insert_data('c1', $c1);   // Insère une ligne en utilisant c1
sleep(2);                 // On attend afin de voir un timestamp différent pour la seconde ligne
insert_data('c2', $c2);   // Insère une ligne en utilisant c2

select_data('c1', $c1);   // Les résultats des 2 insertions sont retournés
select_data('c2', $c2);   // Les résultats des 2 insertions sont retournés

rollback('c1', $c1);      // Annulation de la transaction en utilisant c1

select_data('c1', $c1);   // Les 2 insertions ont été annulées
select_data('c2', $c2);

drop_table($c1);

// La fermeture d'une connexion rend les variables PHP indisponibles, mais les autres
// peuvent être toujours utilisées
oci_close($c1);
echo "c1 is $c1<br>\n";
echo "c2 is $c2<br>\n";

// Affichage :
//    c1 is Resource id #5
//    c2 is Resource id #5
//    Created table
//    c1 inserted row without committing
//    c2 inserted row without committing
//    c1 ----selecting
//        09-DEC-09 12:14:43
//        09-DEC-09 12:14:45
//    c1 ----done
//    c2 ----selecting
//        09-DEC-09 12:14:43
//        09-DEC-09 12:14:45
//    c2 ----done
//    c1 rollback
//    c1 ----selecting
//    c1 ----done
//    c2 ----selecting
//    c2 ----done
//    Dropped table
//    c1 is
//    c2 is Resource id #5

?>

Notes

Note:

Si un problème est survenu lors de l'installation de l'extension OCI8, une des manifestations sera un problème lors de la connexion. Reportez-vous à la section Installation/Configuration pour plus d'informations en cas d'erreurs.

Voir aussi

  • oci_pconnect() - Ouvre une connexion persistante à un serveur Oracle
  • oci_new_connect() - Connexion au serveur Oracle en utilisant une seule connexion
  • oci_close() - Ferme une connexion Oracle


Associe une variable PHP avec une colonne pour une requête de récupération de données

  • « oci_connect
  • oci_error »
  • PHP Manual
  • Fonctions OCI8
  • Associe une variable PHP avec une colonne pour une requête de récupération de données

oci_define_by_name

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_define_by_name — Associe une variable PHP avec une colonne pour une requête de récupération de données

Description

bool oci_define_by_name ( resource $statement , string $column_name , mixed &$variable [, int $type = SQLT_CHR ] )

Associe une variable PHP avec une colonne pour une requête de récupération de données utilisant la fonction oci_fetch().

L'appel à la fonction oci_define_by_name() doit s'effectuer avant l'exécution de la fonction oci_execute().

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

column_name

Le nom de la colonne utilisé dans la requête.

Utilisez un nom en majuscule, pour les noms de colonne non sensibles à la casse (par défaut sous Oracle). Utilisez la casse exacte du nom de la colonne pour les noms de colonne sensibles à la casse.

variable

La variable PHP qui contiendra la valeur retournée par la colonne.

type

Le type de données à retourner. En général, ce paramètre n'est pas nécessaire. Notez que le style Oracle de conversion de données n'est pas appliqué ici. Par exemple, SQLT_INT sera ignoré et le type de données retourné sera SQLT_CHR.

Vous pouvez utiliser, optionnellement, la fonction oci_new_descriptor() pour allouer des descripteurs LOB/ROWID/BFILE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_define_by_name()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);

// Les définitions DOIVENT être faîtes avant l'exécution de la requête
oci_define_by_name($stid, 'LOCATION_ID', $locid);
oci_define_by_name($stid, 'CITY', $city);

oci_execute($stid);

// Chaque récupération peuple les variables précédemment définies avec les données de la prochaine ligne
while (oci_fetch($stid)) {
    echo "Location id $locid is $city<br>\n";
}

// Affiche :
//   Location id 1000 is Roma
//   Location id 1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Exemple avec oci_define_by_name() et des noms de colonne sensibles à la casse

<?php

/*
  Avant exécution, créez la table suivant avec un nom de colonne sensible à la casse :
    CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
    INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// Utilisez des majuscules pour les noms de colonne insensibles à la casse
oci_define_by_name($stid, 'ID', $id);

// Utilisez la casse exacte pour les noms de colonnes sensibles à la casse
oci_define_by_name($stid, 'MyDescription', $mydesc);

oci_execute($stid);

while (oci_fetch($stid)) {
    echo "id $id is $mydesc<br>\n";
}

// Affiche :
//   id 1 is Iced Coffee

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #3 Exemple avec oci_define_by_name() et des colonnes de type LOB

<?php

/*
  Avant exécution, créez la table suivante :
    CREATE TABLE mytab (id NUMBER, fruit CLOB);
    INSERT INTO mytab (id, fruit) values (1, 'apple');
    INSERT INTO mytab (id, fruit) values (2, 'orange');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// Les définitions DOIVENT être effectuées avant l'exécution
oci_define_by_name($stid, 'ID', $id);
oci_define_by_name($stid, 'FRUIT', $fruit);  // $fruit will become a LOB descriptor

oci_execute($stid);

while (oci_fetch($stid)) {
    echo $id . " is " . $fruit->load(100) . "<br>\n";
}

// Affiche :
//   1 is apple
//   2 is orange

$fruit->free();
oci_free_statement($stid);
oci_close($conn);

?>

Exemple #4 Exemple avec oci_define_by_name() et un type explicite

<?php

/*
  Avant exécution, créez la table suivante :
    CREATE TABLE mytab (id NUMBER, fruit CLOB);
    INSERT INTO mytab (id, fruit) values (1, 'apple');
    INSERT INTO mytab (id, fruit) values (2, 'orange');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// Les définitions DOIVENT être faîtes avant exécution
oci_define_by_name($stid, 'ID', $id);

$fruit = oci_new_descriptor($conn, OCI_D_LOB);
oci_define_by_name($stid, 'FRUIT', $fruit, OCI_D_CLOB);

oci_execute($stid);

while (oci_fetch($stid)) {
    echo $id . " is " . $fruit->load(100) . "<br>\n";
}

// Affiche :
//   1 is apple
//   2 is orange

$fruit->free();
oci_free_statement($stid);
oci_close($conn);

?>

Voir aussi

  • oci_fetch() - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
  • oci_new_descriptor() - Initialise un nouveau pointeur vide de LOB/FILE Oracle


Retourne la dernière erreur Oracle

  • « oci_define_by_name
  • oci_execute »
  • PHP Manual
  • Fonctions OCI8
  • Retourne la dernière erreur Oracle

oci_error

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_error — Retourne la dernière erreur Oracle

Description

array oci_error ([ resource $resource ] )

Retourne la dernière erreur Oracle.

La fonction doit être appelée immédiatement après qu'une erreur survient. Les erreurs sont réinitialisées après une requête réussie.

Liste de paramètres

resource

Pour la plupart des erreurs, le paramètre resource représente une ressource de connexion. Pour les erreurs de connexion avec les fonctions oci_connect(), oci_new_connect() ou oci_pconnect(), ne passez aucun paramètre.

Valeurs de retour

Si aucune erreur n'est trouvée, oci_error() retourne FALSE. Sinon, oci_error() retourne l'information concernant l'erreur sous la forme d'un tableau associatif.

Description du tableau retourné par oci_error()
Clé du tableau | Type | Description
code | integer | Le numéro d'erreur Oracle.
message | string | Le texte de l'erreur Oracle.
offset | integer | L'octet de position de l'erreur dans la requête SQL. S'il n'y a pas de requête, 0 sera placé comme valeur.
sqltext | string | Le texte de la requête SQL. S'il n'y a pas de requête, ce sera une chaîne vide.

Exemples

Exemple #1 Exemple d'affichage d'un message d'erreur Oracle après une erreur de connexion

<?php
$conn = oci_connect("hr", "welcome", "localhost/XE");
if (!$conn) {
    $e = oci_error();   // Pour les erreurs oci_connect, ne passez pas de gestionnaire de connexion
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Exemple #2 Exemple d'affichage d'un message d'erreur Oracle après une erreur d'analyse

<?php
$stid = oci_parse($conn, "select ' from dual");  // Notez l'erreur avec les guillemets
if (!$stid) {
    $e = oci_error($conn);  // Pour les erreurs oci_parse, passez le gestionnaire de connexion
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Exemple #3 Exemple d'affichage d'un message d'erreur Oracle après une erreur d'exécution rencontré dans une requête SQL

<?php
$stid = oci_parse($conn, "select does_not_exist from dual");
$r = oci_execute($stid);
if (!$r) {
    $e = oci_error($stid);  // Pour les erreurs oci_execute, passez le gestionnaire de connexion
    print htmlentities($e['message']);
    print "\n<pre>\n";
    print htmlentities($e['sqltext']);
    printf("\n%".($e['offset']+1)."s", "^");
    print  "\n</pre>\n";
}
?>


Exécute une commande SQL Oracle

  • « oci_error
  • oci_fetch_all »
  • PHP Manual
  • Fonctions OCI8
  • Exécute une commande SQL Oracle

oci_execute

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_execute — Exécute une commande SQL Oracle

Description

bool oci_execute ( resource $statement [, int $mode = OCI_COMMIT_ON_SUCCESS ] )

Exécute une requête statement précédemment retournée par la fonction oci_parse().

Après exécution, les requêtes comme INSERT auront par défaut les données validées (commitées) sur la base de données. Pour les requêtes comme SELECT, l'exécution effectue la logique de la requête. Les résultats de la requête peuvent être récupérés par PHP avec des fonctions comme oci_fetch_array().

Chaque requête analysé peut être exécutée plusieurs fois, inutile donc de les analyser de nouveau. Ceci est pratique pour des requêtes de type INSERT lorsque des données y sont liées grâce à la fonction oci_bind_by_name().

Liste de paramètres

statement

Un identifiant de requête OCI valide.

mode

Un second paramètre optionnel peut prendre une des constantes suivantes :

Modes d'exécution
Constante | Description
OCI_COMMIT_ON_SUCCESS | Validation automatique sur la connexion lorsque la requête a été exécutée avec succès. C'est le comportement par défaut.
OCI_DESCRIBE_ONLY | Rend les méta-donnes de la requête disponible aux fonctions comme oci_field_name() mais ne crée pas de jeu de résultats. Tout appel à des fonctions de récupération comme oci_fetch_array() échouera.
OCI_NO_AUTO_COMMIT | Ne valide pas automatiquement les modifications. Avant PHP 5.3.2 (PECL OCI8 1.4), utilisez la constante OCI_DEFAULT qui est un équivalent de la constante OCI_NO_AUTO_COMMIT.

L'utilisation du mode OCI_NO_AUTO_COMMIT démarre ou continue une transaction. Les transactions sont automatiquement annulées lorsque la connexion est fermée ou lorsque le script se termine. Appelez explicitement la fonction oci_commit() pour valider la transaction ou la fonction oci_rollback() pour l'annuler.

Lors de l'insertion ou de la mise à jour de données, l'utilisation de transactions est fortement recommandée pour garantir la consistance relationnelle des données, mais aussi en raison d'un gain non négligeable de performance.

Si le mode OCI_NO_AUTO_COMMIT est utilisé pour toutes opérations y compris les requêtes, et que les fonctions oci_commit() et oci_rollback() ne sont jamais appelées, OCI8 effectuera une annulation à la fin du script même si les données ont changées. Pour éviter ce comportement, la plupart des scripts n'utilise pas le mode OCI_NO_AUTO_COMMIT pour les requêtes ou les procédures stockées PL/SQL. Assurez-vous de la consistance transactionnelle appropriée de vos applications lors de l'utilisation de la fonction oci_execute() avec différents modes dans le même script.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_execute() pour des requêtes

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Exemple #2 Exemple avec oci_execute() sans spécifier de mode

<?php

// Avant exécution, créez la table :
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');

oci_execute($stid); // La ligne est validée et est immédiatement visible par les autres utilisateurs

?>

Exemple #3 Exemple avec oci_execute() et OCI_NO_AUTO_COMMIT

<?php

// Avant exécution, créez la table :
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (:bv)');
oci_bind_by_name($stid, ':bv', $i, 10);
for ($i = 1; $i <= 5; ++$i) {
    oci_execute($stid, OCI_NO_AUTO_COMMIT);  // utilisez OCI_DEFAULT pour PHP <= 5.3.1
}
oci_commit($conn);  // valide toutes les nouvelles valeurs : 1, 2, 3, 4, 5

?>

Exemple #4 Exemple avec oci_execute() et différents modes dans le même script

<?php

// Avant exécution, créez la table :
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');
oci_execute($stid, OCI_NO_AUTO_COMMIT);  // data not committed

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (456)');
oci_execute($stid);  // valide à la fois les valeurs 123 et 456

?>

Exemple #5 Exemple avec oci_execute() et OCI_DESCRIBE_ONLY

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM locations');
oci_execute($s, OCI_DESCRIBE_ONLY);
for ($i = 1; $i <= oci_num_fields($stid); ++$i) {
    echo oci_field_name($stid, $i) . "<br>\n";
}

?>

Notes

Note:

Les transactions sont automatiquement annulées lorsque les connexions sont fermées, ou lorsque le script se termine, suivant ce qui arrive en premier. Appelez explicitement la fonction oci_commit() pour valider une transaction.

Tout appel à la fonction oci_execute() qui utilise le mode OCI_COMMIT_ON_SUCCESS explicitement ou par défaut validera toutes les transactions en cours.

Toutes les requêtes Oracle DDL comme CREATE ou DROP valideront toutes les transactions en cours.

Note:

À cause du fait que la fonction oci_execute() envoie généralement la requête à la base de données, la fonction oci_execute() peut identifier les erreurs de syntaxe de la requête que la fonction oci_parse() aurait pû ne pas détecter.

Voir aussi

  • oci_parse() - Prépare une requête SQL avec Oracle


Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel

  • « oci_execute
  • oci_fetch_array »
  • PHP Manual
  • Fonctions OCI8
  • Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel

oci_fetch_all

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_all — Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel

Description

int oci_fetch_all ( resource $statement , array &$output [, int $skip = 0 [, int $maxrows = -1 [, int $flags = OCI_FETCHSTATEMENT_BY_COLUMN + OCI_ASSOC ]]] )

Lit toutes les lignes d'un résultat Oracle dans un tableau à 2 dimensions. Par défaut, toutes les lignes sont retournées.

Cette fonction peut être appelée une seule fois pour chaque requête exécutée via la fonction oci_execute().

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

output

La variable qui va contenir les lignes retournées.

Les colonnes LOB sont retournées sous la forme d'une chaîne lorsqu'Oracle supporte la conversion.

Voir la fonction oci_fetch_array() pour plus d'informations sur la façon dont les données et leurs types sont récupérés.

skip

Nombre de lignes initiales à ignorer lors de la lecture du résultat. Par défaut, ce paramètre vaut 0, pour commencer la lecture à la première ligne.

maxrows

Nombre de lignes maximal à retourner. Par défaut, vaut -1, ce qui signifie que toutes les lignes disponibles seront retournées depuis le paramètre skip + 1.

flags

Le paramètre flags indique la structure du tableau mais aussi si des tableaux associatifs doivent être utilisés.

Modes de structure des tableaux pour la fonction oci_fetch_all()
Constante | Description
OCI_FETCHSTATEMENT_BY_ROW | Le tableau retourné contiendra un seul sous tableau par lignes.
OCI_FETCHSTATEMENT_BY_COLUMN | Le tableau retourné contiendra un seul sous tableau par colonnes. C'est le comportement par défaut.

Les tableaux peuvent être indexés soit par l'en-tête de colonne, soit numériquement.

Modes d'index des tableaux pour la fonction oci_fetch_all()
Constante | Description
OCI_NUM | Des indexes numériques sont utilisés pour chaque tableau de colonnes.
OCI_ASSOC | Des indexes associatifs sont utilisés pour chaque tableau de colonnes. C'est le comportement par défaut.

Utilisez l'opérateur d'addition "+" pour choisir une combinaison de structures de tableaux et de modes d'index.

Les noms de colonnes qui ne sont pas sensibles à la casse (par défaut sous Oracle), auront des noms d'attributs en majuscule. Les noms de colonnes qui sont sensibles à la casse, auront des noms d'attributs utilisant exactement la même casse de la colonne. Utilisez la fonction var_dump() sur l'objet de résultat pour vérifier la casse appropriée à utiliser pour chaque requête.

Les requêtes qui possèdent plus d'une colonne dont le nom est identique doivent utiliser des alias. Sinon, seulement une des colonnes apparaîtra dans le tableau associatif.

Valeurs de retour

Retourne le nombre de lignes récupérées dans le paramètre output qui peut être de 0 ou plus, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_fetch_all()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res);

echo "$nrows rows fetched<br>\n";
var_dump($res);

// var_dump affichera :
//    2 rows fetched
//    array(2) {
//      ["POSTAL_CODE"]=>
//      array(2) {
//        [0]=>
//        string(6) "00989x"
//        [1]=>
//        string(6) "10934x"
//      }
//      ["CITY"]=>
//      array(2) {
//        [0]=>
//        string(4) "Roma"
//        [1]=>
//        string(6) "Venice"
//      }
//    }

// Affichage des résultats
echo "<table border='1'>\n";
foreach ($res as $col) {
    echo "<tr>\n";
    foreach ($col as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Exemple avec oci_fetch_all() et OCI_FETCHSTATEMENT_BY_ROW

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW);

echo "$nrows lignes récupérées<br>\n";
var_dump($res);

// Affiche :
//    2 lignes récupérées
//    array(2) {
//      [0]=>
//      array(2) {
//        ["POSTAL_CODE"]=>
//        string(6) "00989x"
//        ["CITY"]=>
//        string(4) "Roma"
//      }
//      [1]=>
//      array(2) {
//        ["POSTAL_CODE"]=>
//        string(6) "10934x"
//        ["CITY"]=>
//        string(6) "Venice"
//      }
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #3 Exemple avec oci_fetch_all() et OCI_NUM

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW + OCI_NUM);

echo "$nrows lignes récupérées<br>\n";
var_dump($res);

// Affiche :
//    2 lignes récupérées
//    array(2) {
//      [0]=>
//      array(2) {
//        [0]=>
//        string(6) "00989x"
//        [1]=>
//        string(4) "Roma"
//      }
//      [1]=>
//      array(2) {
//        [0]=>
//        string(6) "10934x"
//        [1]=>
//        string(6) "Venice"
//      }
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

L'utilisation du paramètre skip est vraiment inefficace. Toutes les lignes à éviter sont comprises dans le jeu de résultats retourné par la base de données à PHP. Puis, elles sont écartées. Il est plus efficace d'utiliser une requête SQL pour restreindre le champ des lignes désirées. Voir la fonction oci_fetch_array() pour un exemple concrêt.

Note:

Les requêtes qui retournent un très grand nombre de lignes peuvent gagner en économie de mémoire lors de l'utilisation de fonctions récupérant une seule ligne, comme le fait la fonction oci_fetch_array().

Note:

Pour les requêtes retournant un très grand nombre de lignes, les performances peuvent être très grandement accrues en augmentant la valeur de l'option oci8.default_prefetch ou en utilisant la fonction oci_set_prefetch().

Note:

Cette fonction ne retournera pas de lignes depuis un jeu de résultats implicite d'une base de données Oracle 12c. Utilisez pluotôt la fonction oci_fetch_array().

Voir aussi

  • oci_fetch() - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
  • oci_fetch_array() - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
  • oci_fetch_assoc() - Lit une ligne d'un résultat sous forme de tableau associatif
  • oci_fetch_object() - Lit une ligne d'un résultat sous forme d'objet
  • oci_fetch_row() - Lit la prochaine ligne d'une requête sous forme de tableau numérique
  • oci_set_prefetch() - Indique le nombre de lignes qui doivent être lues à l'avance par Oracle


Lit une ligne d'un résultat sous forme de tableau associatif ou numérique

  • « oci_fetch_all
  • oci_fetch_assoc »
  • PHP Manual
  • Fonctions OCI8
  • Lit une ligne d'un résultat sous forme de tableau associatif ou numérique

oci_fetch_array

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_array — Lit une ligne d'un résultat sous forme de tableau associatif ou numérique

Description

array oci_fetch_array ( resource $statement [, int $mode ] )

Retourne un tableau contenant la prochaine ligne d'une requête. Chaque entrée de ce tableau correspond à une colonne de la ligne. Cette fonction est appelée typiquement dans une boucle qui retourne FALSE lorsqu'il n'y a plus de ligne de disponible.

Si le paramètre statement correspond à un bloc PL/SQL retourné par des jeux de résultats implicites Oracle Database 12c, alors les lignes depuis tous les jeux de résultats seront récupérées consécutivement. Si statement est retourné par la fonction oci_get_implicit_resultset(), alors seul le sous-jeu de lignes d'une seule requête enfant sera retourné.

Pour plus de détails sur le mapping des types de données effectué par l'extension OCI8, lisez les types de données supportés par le driver.

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

Peut également être un identifiant de requête retourné par la fonction oci_get_implicit_resultset().

mode

Le paramètre optionnel mode peut être la combinaison des constantes suivantes :

Modes pour oci_fetch_array()
Constante | Description
OCI_BOTH | Retourne une tableau, indexé numériquement et avec les noms de colonnes. Identique à OCI_ASSOC + OCI_NUM). C'est le comportement par défaut.
OCI_ASSOC | Retourne un tableau associatif.
OCI_NUM | Retourne un tableau indexé numériquement.
OCI_RETURN_NULLS | Crée des éléments vides pour les valeurs NULL. La valeur des éléments sera la valeur NULL PHP.
OCI_RETURN_LOBS | Retourne le contenu du LOB au lieu de leur descripteur.

Le mode par défaut est OCI_BOTH.

Utilisez l'opérateur d'addition "+" pour spécifier plus d'un mode à la fois.

Valeurs de retour

Retourne un tableau avec des indices numériques ou associatifs. S'il n'y a plus de ligne de disponible pour la requête statement alors FALSE sera retourné.

Par défaut, les colonnes LOB sont retournées sous la forme de descripteurs LOB.

Les colonnes DATE sont retournées sous la forme d'une chaîne formatée avec le format de date courante. Le format par défaut peut être modifié grâce aux variables d'environnement Oracle, comme NLS_LANG ou par l'exécution de la commande ALTER SESSION SET NLS_DATE_FORMAT.

Les noms de colonnes qui ne sont pas sensibles à la casse (par défaut sous Oracle), auront des noms d'attributs en majuscule. Les noms de colonnes qui sont sensibles à la casse, auront des noms d'attributs utilisant exactement la même casse de la colonne. Utilisez la fonction var_dump() sur l'objet de résultat pour vérifier la casse appropriée à utiliser pour chaque requête.

Le nom de la table n'est pas inclus dans l'index du tableau. Si votre requête contient deux colonnes différentes avec le même nom, utilisez la constante OCI_NUM ou ajoutez un alias à la colonne à la requête pour s'assurer l'unicité du nom ; voir l'exemple #7. Sinon, seulement une colonne sera retournée via PHP.

Exemples

Exemple #1 Exemple avec oci_fetch_array() avec OCI_BOTH

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_BOTH)) != false) {
    // Utilisez des noms de colonne en majuscule pour les indices des tableau associatif
    echo $row[0] . " and " . $row['DEPARTMENT_ID']   . " are the same<br>\n";
    echo $row[1] . " and " . $row['DEPARTMENT_NAME'] . " are the same<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Exemple avec oci_fetch_array() avec OCI_NUM

<?php

/*
  Avant l'exécution, créez la table :
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'A very long string');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_NUM)) != false) {
    echo $row[0] . "<br>\n";
    echo $row[1]->read(11) . "<br>\n"; // ceci affichera les 11 premiers octets depuis DESCRIPTION
}

// Affiche :
//    1
//    A very long

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #3 Exemple avec oci_fetch_array() avec OCI_ASSOC

<?php

/*
  Avant l'exécution, créez la table :
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'A very long string');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
    echo $row['ID'] . "<br>\n";
    echo $row['DESCRIPTION']->read(11) . "<br>\n"; // ceci affichera les 11 premiers octets depuis DESCRIPTION
}

// Affiche :
//    1
//    A very long

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #4 Exemple avec oci_fetch_array() avec OCI_RETURN_NULLS

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT 1, null FROM dual');
oci_execute($stid);
while (($row = oci_fetch_array ($stid, OCI_ASSOC)) != false) { // Ignore NULLs
    var_dump($row);
}

/*
Le code ci-dessus affiche :
  array(1) {
    [1]=>
    string(1) "1"
  }
*/

$stid = oci_parse($conn, 'SELECT 1, null FROM dual');
oci_execute($stid);
while (($row = oci_fetch_array ($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) { // Récupère NULLs
    var_dump($row);
}

/*
Le code ci-dessus affiche :
  array(2) {
    [1]=>
    string(1) "1"
    ["NULL"]=>
    NULL
  }
*/

?>

Exemple #5 oci_fetch_array() with OCI_RETURN_LOBS

<?php

/*
  Avant l'exécution, créez la table :
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'A very long string');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) != false) {
    echo $row['ID'] . "<br>\n";
    echo $row['DESCRIPTION'] . "<br>\n"; // contient la totalité de DESCRIPTION

    // Dans une boucle, le fait de libérer la variable avant de récupérer une seconde
    // ligne permet de réduire l'utilisation mémoire de PHP
    unset($row);
}

// Affiche :
//    1
//    A very long string

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #6 Exemple avec oci_fetch_array() avec des noms de colonnes sensibles à la casse

<?php

/*
   Avant l'exécution, créez la table :
      CREATE TABLE mytab ("Name" VARCHAR2(20), city VARCHAR2(20));
      INSERT INTO mytab ("Name", city) values ('Chris', 'Melbourne');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'select * from mytab');
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);

// Vu que 'Name' a été créé comme une colonne sensible à la casse, la même casse
// est utilisé pour les index du tableau. Cependant, 'CITY' doit être utilisé
// pour les index de colonne non sensible à la casse
print $row['Name'] . "<br>\n";   //  affiche Chris
print $row['CITY'] . "<br>\n";   //  affiche Melbourne

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #7 Exemple avec oci_fetch_array() avec des colonnes possédant des noms dupliqués

<?php

/*
  Avant l'exécution, créez la table :
      CREATE TABLE mycity (id NUMBER, name VARCHAR2(20));
      INSERT INTO mycity (id, name) values (1, 'Melbourne');
      CREATE TABLE mycountry (id NUMBER, name VARCHAR2(20));
      INSERT INTO mycountry (id, name) values (1, 'Australia');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT mycity.name, mycountry.name
        FROM mycity, mycountry
        WHERE mycity.id = mycountry.id';
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
var_dump($row);

// L'affiche ne contient que UNE entrée "NAME" :
//    array(1) {
//      ["NAME"]=>
//      string(9) "Australia"
//    }

// Pour interroger un nom de colonne dupliqué, utilisez un alias de colonne SQL
// comme "AS ctnm":
$sql = 'SELECT mycity.name AS ctnm, mycountry.name
        FROM mycity, mycountry
        WHERE mycity.id = mycountry.id';
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
var_dump($row);

// L'affichage contient maintenant 2 colonnes :
//    array(2) {
//      ["CTNM"]=>
//      string(9) "Melbourne"
//      ["NAME"]=>
//      string(9) "Australia"
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #8 Exemple avec oci_fetch_array() et des colonnes DATE

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Définit le format utilisé pour les dates sur cette connexion.
// Pour des raisons de performance, vous devriez modifier le format via un trigger ou
// en utilisant les variables d'environnement
$stid = oci_parse($conn, "ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'");
oci_execute($stid);

$stid = oci_parse($conn, 'SELECT hire_date FROM employees WHERE employee_id = 188');
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
echo $row['HIRE_DATE'] . "<br>\n";  // Affiche 1997-06-14

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #9 Exemple avec oci_fetch_array() et REF CURSOR

<?php
/*
  Créez la procédure stockée PL/SQL suivante avant l'exécution :

  CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
  BEGIN
    OPEN p1 FOR SELECT * FROM all_objects WHERE ROWNUM < 5000;
  END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'BEGIN myproc(:rc); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Exécute le REF CURSOR retourné et y récupère un identifiant de requête
oci_execute($refcur);
echo "<table border='1'>\n";
while (($row = oci_fetch_array($refcur, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);

?>

Exemple #10 Pagination avec oci_fetch_array() en utilisant une requête utilisant le paramètre LIMIT

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Retrouve la version de la base de données
preg_match('/Release ([0-9]+)\./', oci_server_version($conn), $matches);
$oracleversion = $matches[1];

// Requête pour la pagination
$sql = 'SELECT city, postal_code FROM locations ORDER BY city';

if ($oracleversion >= 12) {
    // Utilisation de la syntaxe Oracle 12c OFFSET / FETCH NEXT
    $sql = $sql . ' OFFSET :offset ROWS FETCH NEXT :numrows ROWS ONLY';
} else {
    // Les versions anciennes d'Oracle ont besoin d'une requête imbriquée
    // pour sélectionner un sous-jeu depuis $sql. Ou, si la requête SQL
    // est connue au moment du développement, utilisez plutôt une fonction
    // row_number() au lieu de cette solution d'imbrication. Dans les
    // environnements de production, assurez-vous d'éviter les injections
    // SQL avec la concaténation.
    $sql = "SELECT * FROM (SELECT a.*, ROWNUM AS my_rnum
                           FROM ($sql) a
                           WHERE ROWNUM <= :offset + :numrows)
            WHERE my_rnum > :offset";
}

$offset  = 0;  // Ne pas traiter les premières lignes
$numrows = 5;  // Retourne 5 lignes
$stid = oci_parse($conn, $sql);
oci_bind_by_name($stid, ':numrows', $numrows);
oci_bind_by_name($stid, ':offset', $offset);
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS)) != false) {
    echo $row['CITY'] . " " . $row['POSTAL_CODE'] . "<br>\n";
}

// Affiche :
//    Beijing 190518
//    Bern 3095
//    Bombay 490231
//    Geneva 1730
//    Hiroshima 6823

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #11 Exemple avec oci_fetch_array() avec Oracle Database 12c

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Requiert OCI8 2.0 et Oracle Database 12c
// Voir aussi oci_get_implicit_resultset()
$sql = 'DECLARE
           c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
           OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

// Note : oci_fetch_all et oci_fetch() ne peuvent être utilisées de cette façon
echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

// Affiche :
//    Beijing 190518
//    Bern    3095
//    Bombay  490231
//    CN
//    CH
//    IN

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Les indices des tableaux associatifs doivent être en majuscule pour les colonnes standards Oracle qui ont été créée avec des noms sensibles à la casse.

Note:

Pour les requêtes retournant un très grand nombre de lignes, les performances peuvent être très grandement accrues en augmentant la valeur de l'option oci8.default_prefetch ou en utilisant la fonction oci_set_prefetch().

Note:

La fonction oci_fetch_array() est significativement plus lente que la fonction oci_fetch_assoc() ou oci_fetch_row(), mais est plus flexible.

Voir aussi

  • oci_fetch() - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
  • oci_fetch_all() - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
  • oci_fetch_assoc() - Lit une ligne d'un résultat sous forme de tableau associatif
  • oci_fetch_object() - Lit une ligne d'un résultat sous forme d'objet
  • oci_fetch_row() - Lit la prochaine ligne d'une requête sous forme de tableau numérique
  • oci_set_prefetch() - Indique le nombre de lignes qui doivent être lues à l'avance par Oracle


Lit une ligne d'un résultat sous forme de tableau associatif

  • « oci_fetch_array
  • oci_fetch_object »
  • PHP Manual
  • Fonctions OCI8
  • Lit une ligne d'un résultat sous forme de tableau associatif

oci_fetch_assoc

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_assoc — Lit une ligne d'un résultat sous forme de tableau associatif

Description

array oci_fetch_assoc ( resource $statement )

Retourne un tableau associatif contenant la prochaine ligne de résultat d'une requête. Chaque élément du tableau correspond à une colonne de la ligne. Cette fonction est appelé typiquement dans une boucle tant qu'elle ne retourne pas FALSE, indiquant qu'il n'y a plus de ligne de disponible.

oci_fetch_assoc() est identique à la fonction oci_fetch_array() et le mode OCI_ASSOC + OCI_RETURN_NULLS.

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

Valeurs de retour

Retourne un tableau associatif ou FALSE s'il n'y a plus de ligne de diponible pour la requête statement.

Exemples

Exemple #1 Exemple avec oci_fetch_assoc()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_assoc($stid)) != false) {
    echo $row['DEPARTMENT_ID'] . " " . $row['DEPARTMENT_NAME'] . "<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Voir oci_fetch_array() pour plus d'exemples sur la récupération de lignes.

Voir aussi

  • oci_fetch() - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
  • oci_fetch_all() - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
  • oci_fetch_array() - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
  • oci_fetch_object() - Lit une ligne d'un résultat sous forme d'objet
  • oci_fetch_row() - Lit la prochaine ligne d'une requête sous forme de tableau numérique


Lit une ligne d'un résultat sous forme d'objet

  • « oci_fetch_assoc
  • oci_fetch_row »
  • PHP Manual
  • Fonctions OCI8
  • Lit une ligne d'un résultat sous forme d'objet

oci_fetch_object

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_object — Lit une ligne d'un résultat sous forme d'objet

Description

object oci_fetch_object ( resource $statement )

Retourne un objet contenant la prochaine ligne de résultat d'une requête. Chaque attribut de cet objet correspond à une colonne de la ligne. Cette fonction est appelé typiquement dans une boucle tant qu'elle ne retourne pas FALSE, indiquant qu'il n'y a plus de lignes de disponible.

Pour plus de détails sur le mapping des types de données effectué par l'extension OCI8, lisez les types de données supportés par le driver.

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

Valeurs de retour

Retourne un objet. Chaque attribut de cet objet correspond à une colonne de la ligne. Si'il n'y a plus de lignes de disponible dans la requête statement alors FALSE est retourné.

Toutes les colonnes LOB sont retournées sous la forme de descripteurs LOB.

Les colonnes DATE sont retournées sous forme de chaînes formatées avec le format de date courante. Le format par défaut peut être changé à l'aide des variables d'environnement Oracle, comme NLS_LANG ou en exécutant la commande ALTER SESSION SET NLS_DATE_FORMAT.

Les noms de colonnes qui ne sont pas sensibles à la casse (par défaut sous Oracle), auront des noms d'attributs en majuscule. Les noms de colonnes qui sont sensibles à la casse, auront des noms d'attributs utilisant exactement la même casse de la colonne. Utilisez la fonction var_dump() sur l'objet de résultat pour vérifier la casse appropriée pour l'accès aux attributs.

Les valeurs d'attribut seront NULL pour chaque champ de données NULL.

Exemples

Exemple #1 Exemple avec oci_fetch_object()

<?php

/*
  Avant l'exécution, créez la table :
    CREATE TABLE mytab (id NUMBER, description VARCHAR2(30));
    INSERT INTO mytab (id, description) values (1, 'Fish and Chips');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
    // Utilisez des noms d'attributs sensibles à la casse pour chaque colonne standard Oracle
    echo $row->ID . "<br>\n";
    echo $row->DESCRIPTION . "<br>\n";
}

// Affiche :
//    1
//    Fish and Chips

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Exemple avec oci_fetch_object() avec des noms de colonne sensibles à la casse

<?php

/*
  Avant l'exécution, créez la tableau avec une colonne dont le nom est sensible à la casse :
    CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
    INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, "MyDescription" FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
    // Utilisez des noms d'attributs en majuscule pour chaque colonne Oracle standard
    echo $row->ID . "<br>\n";
    // Utilisez la casse exacte pour les noms de colonnes sensibles à la casse
    echo $row->MyDescription . "<br>\n";
}

// Affiche :
//    1
//    Iced Coffee

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #3 Exemple avec oci_fetch_object() avec des LOBs

<?php

/*
  Avant l'exécution, créez la table :
    CREATE TABLE mytab (id NUMBER, description CLOB);
    INSERT INTO mytab (id, description) values (1, 'A very long string');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
    echo $row->ID . "<br>\n";
    // Ce qui suit affichera les 11 premiers octets depuis DESCRIPTION
    echo $row->DESCRIPTION->read(11) . "<br>\n";
}

// Affiche :
//    1
//    A very long

oci_free_statement($stid);
oci_close($conn);

?>

Voir aussi

  • oci_fetch() - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
  • oci_fetch_all() - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
  • oci_fetch_assoc() - Lit une ligne d'un résultat sous forme de tableau associatif
  • oci_fetch_array() - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
  • oci_fetch_row() - Lit la prochaine ligne d'une requête sous forme de tableau numérique


Lit la prochaine ligne d'une requête sous forme de tableau numérique

  • « oci_fetch_object
  • oci_fetch »
  • PHP Manual
  • Fonctions OCI8
  • Lit la prochaine ligne d'une requête sous forme de tableau numérique

oci_fetch_row

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_row — Lit la prochaine ligne d'une requête sous forme de tableau numérique

Description

array oci_fetch_row ( resource $statement )

Retourne un tableau indexé numériquement contenant la prochaine ligne d'une requête. Chaque élément de ce tableau correspond à une colonne de la ligne. Cette fonction est appelé typiquement dans une boucle tant qu'elle ne retourne pas FALSE, indiquant qu'il n'y a plus de lignes de disponible.

oci_fetch_row() est identique à la fonction oci_fetch_array() et le mode OCI_NUM + OCI_RETURN_NULLS.

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

Valeurs de retour

Retourne un tableau indexé numériquement. S'il n'y a plus de lignes de disponible pour la requête statement alors FALSE sera retourné.

Exemples

Exemple #1 Exemple avec oci_fetch_row()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_row($stid)) != false) {
    echo $row[0] . " " . $row[1] . "<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Voir oci_fetch_array() pour plus d'exemples sur la récupération de lignes.

Voir aussi

  • oci_fetch() - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
  • oci_fetch_all() - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
  • oci_fetch_array() - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
  • oci_fetch_assoc() - Lit une ligne d'un résultat sous forme de tableau associatif
  • oci_fetch_object() - Lit une ligne d'un résultat sous forme d'objet


Lit la prochaine ligne d'un résultat Oracle dans un buffer interne

  • « oci_fetch_row
  • oci_field_is_null »
  • PHP Manual
  • Fonctions OCI8
  • Lit la prochaine ligne d'un résultat Oracle dans un buffer interne

oci_fetch

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch — Lit la prochaine ligne d'un résultat Oracle dans un buffer interne

Description

bool oci_fetch ( resource $statement )

Lit la prochaine ligne d'une requête dans un buffer interne accessible soit via la fonction oci_result(), soit en utilisant les variables précédemment définies avec la fonction oci_define_by_name().

Voir la fonction oci_fetch_array() pour des informations génériques sur la récupération de données.

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE s'il n'y a plus de lignes de disponible pour la requête statement.

Exemples

Exemple #1 Exemple avec oci_fetch() avec des variables définies

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);

// La définition doit s'effectuer AVANT l'exécution
oci_define_by_name($stid, 'LOCATION_ID', $locid);
oci_define_by_name($stid, 'CITY', $city);

oci_execute($stid);

// Chaque récupération utilise les variables précédemment définies avec les données de la prochaine ligne
while (oci_fetch($stid)) {
    echo "Location id $locid is $city<br>\n";
}

// Affiche :
//   Location id 1000 is Roma
//   Location id 1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Exemple avec oci_fetch() et oci_result()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);
oci_execute($stid);

while (oci_fetch($stid)) {
    echo oci_result($stid, 'LOCATION_ID') . " is ";
    echo oci_result($stid, 'CITY') . "<br>\n";
}

// Affiche :
//   1000 is Roma
//   1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Cette fonction ne retournera pas de lignes depuis le jeu de résultats implicite depuis une base de données Oracle 12c. Utilisez plutôt la fonction oci_fetch_array().

Voir aussi

  • oci_define_by_name() - Associe une variable PHP avec une colonne pour une requête de récupération de données
  • oci_fetch_all() - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
  • oci_fetch_array() - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
  • oci_fetch_assoc() - Lit une ligne d'un résultat sous forme de tableau associatif
  • oci_fetch_object() - Lit une ligne d'un résultat sous forme d'objet
  • oci_fetch_row() - Lit la prochaine ligne d'une requête sous forme de tableau numérique
  • oci_result() - Retourne la valeur d'une colonne dans un résultat Oracle


Test si un champ de la ligne récupérée vaut NULL

  • « oci_fetch
  • oci_field_name »
  • PHP Manual
  • Fonctions OCI8
  • Test si un champ de la ligne récupérée vaut NULL

oci_field_is_null

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_is_null — Test si un champ de la ligne récupérée vaut NULL

Description

bool oci_field_is_null ( resource $statement , mixed $field )

Vérifie si le champ field donné de la ligne courante de la requête statement vaut NULL.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être l'index du champ (en base 1) ou son nom.

Valeurs de retour

Retourne TRUE si field vaut NULL, FALSE sinon.

Exemples

Exemple #1 Exemple avec oci_field_name()

<?php

// Création de la table avec :
//   CREATE TABLE mytab (c1 NUMBER);
//   INSERT INTO mytab VALUES (1);
//   INSERT INTO mytab VALUES (NULL);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) != false) {
    $ncols = oci_num_fields($stid);
    for ($col = 1; $col <= $ncols; $col++) {
        var_dump(oci_field_is_null($stid, $col));
    }
}

// Affiche :
//    bool(false)
//    bool(true)

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnisnull(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_is_null(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.


Retourne le nom d'un champ Oracle

  • « oci_field_is_null
  • oci_field_precision »
  • PHP Manual
  • Fonctions OCI8
  • Retourne le nom d'un champ Oracle

oci_field_name

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_name — Retourne le nom d'un champ Oracle

Description

string oci_field_name ( resource $statement , mixed $field )

Retourne le nom du champ field.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être un index de champ (en commençant à 1) ou un nom de champ.

Valeurs de retour

Retourne le nom, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_field_name()

<?php

// Création de la table avec :
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
//                       clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Utilisation de OCI_DESCRIBE_ONLY si aucune ligne n'est récupérée if not fetching rows

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stid, $i);
    $column_type  = oci_field_type($stid, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "</tr>\n";
}

echo "</table>\n";

// Affiche :
//    Name           Type
//    NUMBER_COL    NUMBER
//    VARCHAR2_COL  VARCHAR2
//    CLOB_COL      CLOB
//    DATE_COL      DATE

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnname(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_name(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

  • oci_num_fields() - Retourne le nombre de colonnes dans un résultat Oracle
  • oci_field_type() - Retourne le type de données d'un champ Oracle
  • oci_field_size() - Retourne la taille d'un champ Oracle


Lit la précision d'un champ Oracle

  • « oci_field_name
  • oci_field_scale »
  • PHP Manual
  • Fonctions OCI8
  • Lit la précision d'un champ Oracle

oci_field_precision

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_precision — Lit la précision d'un champ Oracle

Description

int oci_field_precision ( resource $statement , mixed $field )

Retourne la précision du champ field.

Pour les colonnes de type FLOAT, la précision et non nulle, et l'échelle est de -127. Si la précision est 0, alors la colonne est de type NUMBER. Sinon, elle est de type NUMBER(precision, scale).

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être un index de champ (en commençant à 1) ou un nom de champ.

Valeurs de retour

Retourne la précision, sous la forme d'un entier, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_field_precision()

<?php

// Création de la table avec :
//   CREATE TABLE mytab (c1 NUMBER, c2 FLOAT, c3 NUMBER(4), c4 NUMBER(5,3));

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Utilisation de  OCI_DESCRIBE_ONLY si aucune ligne n'est récupérée

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
    echo oci_field_name($stid, $i) . " "
        . oci_field_precision($stid, $i) . " "
        . oci_field_scale($stid, $i) . "<br>\n";
}

// Affiche :
//   C1    0 -127
//   C2  126 -127
//   C3    4    0
//   C4    5    3

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnprecision(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_precision(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

  • oci_field_scale() - Lit l'échelle d'une colonne Oracle
  • oci_field_type() - Retourne le type de données d'un champ Oracle


Lit l'échelle d'une colonne Oracle

  • « oci_field_precision
  • oci_field_size »
  • PHP Manual
  • Fonctions OCI8
  • Lit l'échelle d'une colonne Oracle

oci_field_scale

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_scale — Lit l'échelle d'une colonne Oracle

Description

int oci_field_scale ( resource $statement , mixed $field )

Lit l'échelle d'une colonne Oracle.

Pour les colonnes de type FLOAT, la précision et non nulle, et l'échelle est de -127. Si la précision est 0, alors la colonne est de type NUMBER. Sinon, elle est de type NUMBER(precision, scale).

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être un index de champ (en commençant à 1) ou le nom d'un champ.

Valeurs de retour

Retourne l'échelle, sous la forme d'un entier, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_field_scale()

<?php

// Création de la table avec :
//   CREATE TABLE mytab (c1 NUMBER, c2 FLOAT, c3 NUMBER(4), c4 NUMBER(5,3));

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Utilisation de OCI_DESCRIBE_ONLY si aucune ligne n'est récupérée

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
    echo oci_field_name($stid, $i) . " "
        . oci_field_precision($stid, $i) . " "
        . oci_field_scale($stid, $i) . "<br>\n";
}

// Affiche :
//   C1    0 -127
//   C2  126 -127
//   C3    4    0
//   C4    5    3

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnscale(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_scale(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

  • oci_field_precision() - Lit la précision d'un champ Oracle
  • oci_field_type() - Retourne le type de données d'un champ Oracle


Retourne la taille d'un champ Oracle

  • « oci_field_scale
  • oci_field_type_raw »
  • PHP Manual
  • Fonctions OCI8
  • Retourne la taille d'un champ Oracle

oci_field_size

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_size — Retourne la taille d'un champ Oracle

Description

int oci_field_size ( resource $statement , mixed $field )

Retourne la taille du champ field Oracle .

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être l'index du champ (l'indexation commence à 1) ou le nom du champ.

Valeurs de retour

Retourne la taille du champ field en octets, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_field_size()

<?php

// Création de la table avec :
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
//                       clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Utilisation de OCI_DESCRIBE_ONLY si aucune ligne n'est récupérée

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stid, $i);
    $column_type  = oci_field_type($stid, $i);
    $column_size  = oci_field_size($stid, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "<td>$column_size</td>";
    echo "</tr>\n";
}

echo "</table>\n";

// Affiche :
//    Name           Type       Length
//    NUMBER_COL    NUMBER        22
//    VARCHAR2_COL  VARCHAR2       1
//    CLOB_COL      CLOB        4000
//    DATE_COL      DATE           7

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnprecision(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_precision(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

  • oci_num_fields() - Retourne le nombre de colonnes dans un résultat Oracle
  • oci_field_name() - Retourne le nom d'un champ Oracle


Lit les données brutes du type d'un champ

  • « oci_field_size
  • oci_field_type »
  • PHP Manual
  • Fonctions OCI8
  • Lit les données brutes du type d'un champ

oci_field_type_raw

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_type_raw — Lit les données brutes du type d'un champ

Description

int oci_field_type_raw ( resource $statement , mixed $field )

Lit les données brutes "SQLT" du type du champ field.

Si vous souhaitez avoir le nom du type du champ, utilisez la fonction oci_field_type().

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être l'index d'un champ (en commençant à 1) ou le nom d'un champ.

Valeurs de retour

Retourne le type brut de données Oracle, pour le champ, sous la forme d'un nombre, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_field_type_raw()

<?php

// Création de la table avec :
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1), clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'select * from mytab');
oci_execute($stid, OCI_DESCRIBE_ONLY);  // Utilisation de OCI_DESCRIBE_ONLY si aucune ligne n'est récupérée

$n = oci_num_fields($stid);
for ($i = 1; $i <= $n; ++$i) {
    echo oci_field_name($stid, $i) . " is raw type: " . oci_field_type_raw($stid, $i) . "<br>\n";
}

// Affiche :
//    NUMBER_COL is raw type: 2
//    VARCHAR2_COL is raw type: 1
//    CLOB_COL is raw type: 112
//    DATE_COL is raw type: 12

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumntyperaw(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_type_raw(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.


Retourne le type de données d'un champ Oracle

  • « oci_field_type_raw
  • oci_free_descriptor »
  • PHP Manual
  • Fonctions OCI8
  • Retourne le type de données d'un champ Oracle

oci_field_type

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_type — Retourne le type de données d'un champ Oracle

Description

mixed oci_field_type ( resource $statement , mixed $field )

Retourne le nom du type de données d'un champ.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être l'index du champ (l'indexation commence à 1) ou le nom.

Valeurs de retour

Retourne le type de données d'un champ, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_field_type()

// Création de la table avec :
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
//                       clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Utilisation de OCI_DESCRIBE_ONLY si aucune ligne n'est récupérée

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stid, $i);
    $column_type  = oci_field_type($stid, $i);
    $column_size  = oci_field_size($stid, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "<td>$column_size</td>";
    echo "</tr>\n";
}

echo "</table>\n";

// Affiche :
//    Name           Type       Length
//    NUMBER_COL    NUMBER        22
//    VARCHAR2_COL  VARCHAR2       1
//    CLOB_COL      CLOB        4000
//    DATE_COL      DATE           7

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumntype(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_type(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

  • oci_num_fields() - Retourne le nombre de colonnes dans un résultat Oracle
  • oci_field_name() - Retourne le nom d'un champ Oracle
  • oci_field_size() - Retourne la taille d'un champ Oracle


Libère un descripteur

  • « oci_field_type
  • oci_free_statement »
  • PHP Manual
  • Fonctions OCI8
  • Libère un descripteur

oci_free_descriptor

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_free_descriptor — Libère un descripteur

Description

bool oci_free_descriptor ( resource $descriptor )

Libère un descripteur alloué par la fonction oci_new_descriptor().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Cette fonction est habituellement utilisée comme méthode OCI-LOB::free.

Voir aussi

  • OCI-LOB::free


Libère toutes les ressources réservées par un résultat Oracle

  • « oci_free_descriptor
  • oci_get_implicit_resultset »
  • PHP Manual
  • Fonctions OCI8
  • Libère toutes les ressources réservées par un résultat Oracle

oci_free_statement

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_free_statement — Libère toutes les ressources réservées par un résultat Oracle

Description

bool oci_free_statement ( resource $statement )

Libère toutes les ressources réservées par le résultat ou curseur Oracle statement. Ce dernier a été obtenu de la fonction oci_parse(), ou directement de Oracle.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne le fils suivant d'une ressource de requête depuis une ressource de requête parent qui a un jeu de résultat implicite Oracle Database 12c

  • « oci_free_statement
  • oci_internal_debug »
  • PHP Manual
  • Fonctions OCI8
  • Retourne le fils suivant d'une ressource de requête depuis une ressource de requête parent qui a un jeu de résultat implicite Oracle Database 12c

oci_get_implicit_resultset

(PECL OCI8 >= 2.0.0)

oci_get_implicit_resultset — Retourne le fils suivant d'une ressource de requête depuis une ressource de requête parent qui a un jeu de résultat implicite Oracle Database 12c

Description

resource oci_get_implicit_resultset ( resource $statement )

Utilisé pour récupérer des jeux récursifs de résultats de requêtes après l'exécution d'un bloc stocké ou anonyme Oracle PL/SQL où ce bloc retourne des résultats de requêtes avec la fonction DBMS_SQL.RETURN_RESULT Oracle PL/SQL. Ceci permet aux blocs PL/SQL de retourner facilement des résultats de requêtes.

La requête fils peut être utilisée avec n'importe laquelle des fonctions
de récupération OCI8 : oci_fetch(), oci_fetch_all(),
 oci_fetch_array(), oci_fetch_object(),
 oci_fetch_assoc() ou oci_fetch_row()

Les requêtes fils héritent des valeurs pré-récupérées de leurs parents, ou elles peuvent être explicitement définies avec la fonction oci_set_prefetch().

Liste de paramètres

statement

Un identifiant de requête OCI8 valide créé par la fonction oci_parse() et exécutée par la fonction oci_execute(). L'identifiant de requête peut ou non être associé avec une requête OCI8 qui retourne des jeux de résultats implicites.

Valeurs de retour

Retourne un gestionnaire de requête pour la prochaine requête fils disponible sur statement. Retourne FALSE lorsque la requête fils n'existe pas, ou que toutes les requêtes fils ont été retournées par de précédents appels à la fonction oci_get_implicit_resultset().

Exemples

Exemple #1 Récupèration des jeux de résultats implicites via une boucle

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
            c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
           OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

while (($stid_c = oci_get_implicit_resultset($stid))) {
    echo "<h2>Nouveau jeu de résultats implicite :</h2>\n";
    echo "<table>\n";
    while (($row = oci_fetch_array($stid_c, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
        echo "<tr>\n";
        foreach ($row as $item) {
            echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"")."</td>\n";
        }
        echo "</tr>\n";
    }
    echo "</table>\n";
}

// Affiche :
//    Nouveau jeu de résultats implicite :
//     Beijing 190518
//     Bern    3095
//     Bombay  490231
//    Nouveau jeu de résultats implicite :
//     CN
//     CH
//     IN

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Récupère individuellement les gestionnaires de requêtes fils

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
            c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
           OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

$stid_1 = oci_get_implicit_resultset($stid);
$stid_2 = oci_get_implicit_resultset($stid);

$row = oci_fetch_array($stid_1, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);
$row = oci_fetch_array($stid_2, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);
$row = oci_fetch_array($stid_1, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);
$row = oci_fetch_array($stid_2, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);

// Affichage :
//    array(2) {
//      ["CITY"]=>
//      string(7) "Beijing"
//      ["POSTAL_CODE"]=>
//      string(6) "190518"
//    }
//    array(1) {
//      ["COUNTRY_ID"]=>
//      string(2) "CN"
//    }
//    array(2) {
//      ["CITY"]=>
//      string(4) "Bern"
//      ["POSTAL_CODE"]=>
//      string(4) "3095"
//    }
//    array(1) {
//      ["COUNTRY_ID"]=>
//      string(2) "CH"
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #3 Définission explicite du compteur de pré-récupération

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
            c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

$stid_c = oci_get_implicit_resultset($stid);
oci_set_prefetch($stid_c, 200);   // Set the prefetch before fetching from the child statement
echo "<table>\n";
while (($row = oci_fetch_array($stid_c, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #4 Exemple de jeu de résultats implicite sans utiliser la fonction oci_get_implicit_resultset()

Tous les résultats de toutes les requêtes sont retournés consécutivement.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
            c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
           OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

// Note: oci_fetch_all and oci_fetch() cannot be used in this manner
echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

// Affichage :
//    Beijing 190518
//    Bern 3095
//    Bombay 490231
//    CN
//    CH
//    IN

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Pour les requêtes retournant un très grand nombre de lignes, les performances peuvent être très grandement accrues en augmentant la valeur de l'option oci8.default_prefetch ou en utilisant la fonction oci_set_prefetch().


Active ou désactive l'affichage des données de déboguage Oracle

  • « oci_get_implicit_resultset
  • oci_lob_copy »
  • PHP Manual
  • Fonctions OCI8
  • Active ou désactive l'affichage des données de déboguage Oracle

oci_internal_debug

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_internal_debug — Active ou désactive l'affichage des données de déboguage Oracle

Description

void oci_internal_debug ( bool $onoff )

Active ou désactive l'affichage des données de déboguage Oracle.

Liste de paramètres

onoff

Définissez ce paramètre à 0 pour désactiver l'affichage, ou à 1 pour l'activer.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociinternaldebug(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_internal_debug(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.


Copie un LOB Oracle

  • « oci_internal_debug
  • oci_lob_is_equal »
  • PHP Manual
  • Fonctions OCI8
  • Copie un LOB Oracle

oci_lob_copy

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_lob_copy — Copie un LOB Oracle

Description

bool oci_lob_copy ( OCI-Lob $lob_to , OCI-Lob $lob_from [, int $length = 0 ] )

Copie un LOB ou une partie d'un LOB vers un autre LOB. Les anciennes données du LOB de destination seront écrasées par les nouvelles.

Si vous devez copier une partie spécifique d'un LOB vers une position particulière d'un LOB, utilisez la fonction OCI-Lob::seek() pour déplacer le pointeur interne de LOB.

Liste de paramètres

lob_to

Le LOB de destination.

lob_from

Le LOB copié.

length

Indique la taille des données à copier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Compare deux LOB/FILE Oracle

  • « oci_lob_copy
  • oci_new_collection »
  • PHP Manual
  • Fonctions OCI8
  • Compare deux LOB/FILE Oracle

oci_lob_is_equal

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_lob_is_equal — Compare deux LOB/FILE Oracle

Description

bool oci_lob_is_equal ( OCI-Lob $lob1 , OCI-Lob $lob2 )

Compare deux LOB/FILE Oracle.

Liste de paramètres

lob1

Un identifiant LOB.

lob2

Un identifiant LOB.

Valeurs de retour

Retourne TRUE si ces objets sont égaux, FALSE sinon.


Initialise une nouvelle collection Oracle

  • « oci_lob_is_equal
  • oci_new_connect »
  • PHP Manual
  • Fonctions OCI8
  • Initialise une nouvelle collection Oracle

oci_new_collection

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_collection — Initialise une nouvelle collection Oracle

Description

OCI-Collection oci_new_collection ( resource $connection , string $tdo [, string $schema = NULL ] )

Initialise une nouvelle collection Oracle.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

tdo

Doit être un type nommé valide (en majuscule).

schema

Doit pointer sur le schéma de base de données, où le type a été créé. Le nom de l'utilisateur courant est la valeur par défaut.

Valeurs de retour

Retourne un nouvel objet OCICollection, ou FALSE si une erreur survient. error.

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinewcollection(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_new_collection(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.


Connexion au serveur Oracle en utilisant une seule connexion

  • « oci_new_collection
  • oci_new_cursor »
  • PHP Manual
  • Fonctions OCI8
  • Connexion au serveur Oracle en utilisant une seule connexion

oci_new_connect

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_connect — Connexion au serveur Oracle en utilisant une seule connexion

Description

resource oci_new_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] )

Établit une nouvelle connexion au serveur Oracle et s'identifie.

Contrairement aux fonctions oci_connect() et oci_pconnect(), oci_new_connect() ne met pas en cache les connexions et retourne toujours un gestionnaire de connexion nouvellement ouvert. Ceci est très utile si votre application a besoin d'une isolation transactionnelle entre deux jeux de requêtes.

Liste de paramètres

username

Le nom d'utilisateur Oracle.

password

Le mot de passe pour l'utilisateur.

connection_string

Contient l'instance Oracle sur laquelle nous devons nous connecter. Ce peut être une » chaîne de connexion rapide, un nom de connexion issue du fichier tnsnames.ora, ou le nom d'une instance locale Oracle.

Si non spécifié, PHP utilise des variables d'environnement comme TWO_TASK (sous Linux) ou LOCAL (sous Windows) et ORACLE_SID pour déterminer l'instance Oracle sur laquelle nous devons nous connecter.

Pour utiliser la méthode de connexion rapide, PHP doit être lié avec la bibliothèque cliente Oracle 10g ou supérieur. La chaîne de connexion rapide pour Oracle 10g ou supérieur est de la forme : [//]host_name[:port][/service_name]. Depuis Oracle 11g, la syntaxe est : [//]host_name[:port][/service_name][:server_type][/instance_name]. Les noms des services peuvent être trouvés en exécutant l'utilitaire Oracle lsnrctl status sur la machine exécutant la base de données.

Le fichier tnsnames.ora peut être dans le chemin de recherche d'Oracle Net, qui inclut $ORACLE_HOME/network/admin et /etc. Une solution alternative serait de définit TNS_ADMIN afin que le fichier $TNS_ADMIN/tnsnames.ora soit lu. Assurez-vous que le daemon exécutant le serveur web a accès en lecture à ce fichier.

character_set

Détermine le jeu de caractères utilisé par la bibliothèque cliente Oracle. Le jeu de caractères n'a pas besoin d'être identique à celui utilisé par la base de données. S'il ne correspond pas, Oracle ferait de son mieux pour convertir les données depuis le jeu de caractères de la base de données. Suivant les jeux de caractères, il se peut que le résultat ne soit pas parfait. De plus, cette conversion nécessite un peu de temps système.

Si non spécifié, la bibliothèque cliente Oracle déterminera un jeu de caractères depuis la variable d'environnement NLS_LANG.

Le fait de passer ce paramètre peut réduire la durée de connexion.

session_mode

Ce paramètre est disponible depuis PHP 5 (PECL OCI8 1.1) et accepte les valeurs suivantes : OCI_DEFAULT, OCI_SYSOPER et OCI_SYSDBA. Si soit la constante OCI_SYSOPER, soit la constante OCI_SYSDBA est spécifiée, cette fonction tentera d'établir une connexion privilégiée en utilisant des identifiants externes. Les connexions privilégiées sont désactivées par défault. Pour les activer, vous devez définir l'option oci8.privileged_connect à On.

PHP 5.3 (PECL OCI8 1.3.4) introduisent la valeur de mode OCI_CRED_EXT. Ce mode demande à Oracle d'utiliser une identification externe ou bien issue du système d'exploitation, qui doit être configurée dans la base de données. Le drapeau OCI_CRED_EXT ne peut être utilisé qu'avec le nom d'utilisateur "/" associé à un mot de passe vide. L'option oci8.privileged_connect peut être définie à On ou Off.

OCI_CRED_EXT peut être combiné avec le mode OCI_SYSOPER ou le mode OCI_SYSDBA.

OCI_CRED_EXT n'est pas supporté sous Windows pour des raisons de sécurité.

Valeurs de retour

Retourne un identifiant de connexion, ou FALSE si une erreur survient.

Exemples

Voici comment séparer des transactions.

Exemple #1 Exemple avec oci_new_connect()

<?php

// Création de la table mytab (mycol number);

function query($name, $c)
{
    echo "Querying $name\n";
    $s = oci_parse($c, "select * from mytab");
    oci_execute($s, OCI_NO_AUTO_COMMIT);
    $row = oci_fetch_array($s, OCI_ASSOC);
    if (!$row) {
        echo "No rows\n";
    } else {
        do {
            foreach ($row as $item)
                echo $item . " ";
            echo "\n";
        } while (($row = oci_fetch_array($s, OCI_ASSOC)) != false);
    }
}

$c1 = oci_connect("hr", "welcome", "localhost/orcl");
$c2 = oci_new_connect("hr", "welcome", "localhost/orcl");

$s = oci_parse($c1, "insert into mytab values(1234)");
oci_execute($s, OCI_NO_AUTO_COMMIT);

query("basic connection", $c1);
query("new connection", $c2);
oci_commit($c1);
query("new connection after commit", $c2);

// Affiche :
//   Querying basic connection
//   1234
//   Querying new connection
//   No rows
//   Querying new connection after commit
//   1234

?>

Voir la fonction oci_connect() pour plus d'exemples sur l'utilisation de ce paramètre.

Voir aussi

  • oci_connect() - Établit une connexion avec un serveur Oracle
  • oci_pconnect() - Ouvre une connexion persistante à un serveur Oracle


Alloue et retourne un nouveau curseur Oracle

  • « oci_new_connect
  • oci_new_descriptor »
  • PHP Manual
  • Fonctions OCI8
  • Alloue et retourne un nouveau curseur Oracle

oci_new_cursor

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_cursor — Alloue et retourne un nouveau curseur Oracle

Description

resource oci_new_cursor ( resource $connection )

Alloue un nouveau curseur Oracle sur la connexion spécifiée.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

Valeurs de retour

Retourne un nouveau gestionnaire de connexion, ou FALSE si une erreur survient.

Exemples

Exemple #1 Utiliser un REF CURSOR issu d'une procédure enregistrée

<?php
// Prérequis :
//   crée ou remplace la procédure myproc(myrc out sys_refcursor) comme ceci
//   begin
//     open myrc for select first_name from employees;
//   end;

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$curs = oci_new_cursor($conn);
$stid = oci_parse($conn, "begin myproc(:cursbv); end;");
oci_bind_by_name($stid, ":cursbv", $curs, -1, OCI_B_CURSOR);
oci_execute($stid);

oci_execute($curs);  // Execute the REF CURSOR like a normal statement id
while (($row = oci_fetch_array($curs, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo $row['FIRST_NAME'] . "<br />\n";
}

oci_free_statement($stid);
oci_free_statement($curs);
oci_close($conn);
?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinewcursor(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_new_collection(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.


Initialise un nouveau pointeur vide de LOB/FILE Oracle

  • « oci_new_cursor
  • oci_num_fields »
  • PHP Manual
  • Fonctions OCI8
  • Initialise un nouveau pointeur vide de LOB/FILE Oracle

oci_new_descriptor

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_descriptor — Initialise un nouveau pointeur vide de LOB/FILE Oracle

Description

OCI-Lob oci_new_descriptor ( resource $connection [, int $type = OCI_DTYPE_LOB ] )

Initialise un nouveau pointeur vide de LOB/FILE Oracle.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

type

Les valeurs acceptées pour type sont : OCI_D_FILE, OCI_D_LOB et OCI_D_ROWID.

Valeurs de retour

Retourne une nouvelle ressource LOB ou FILE en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_new_descriptor()

<?php
/* Ce script est fait pour être appelé dans un formulaire HTML
 * Il attend les variables $user, $password, $table, $where, et $commitsize
 * Le script efface alors les lignes sélectionnées avec ROWID et valide
 * l'effacement après chaque groupe de $commitsize lignes.
 * (Utilisez avec prudence, car il n'y a pas d'annulation possible).
 */
$conn = oci_connect($user, $password);
$stmt = oci_parse($conn, "select rowid from $table $where");
$rowid = oci_new_descriptor($conn, OCI_D_ROWID);
oci_define_by_name($stmt, "ROWID", $rowid);
oci_execute($stmt);
while (oci_fetch($stmt)) {
    $nrows = oci_num_rows($stmt);
    $delete = oci_parse($conn, "delete from $table where ROWID = :rid");
    oci_bind_by_name($delete, ":rid", $rowid, -1, OCI_B_ROWID);
    oci_execute($delete);
    echo "$nrows\n";
    if (($nrows % $commitsize) == 0) {
        oci_commit($conn);
    }
}
$nrows = oci_num_rows($stmt);
echo "$nrows deleted...\n";
oci_free_statement($stmt);
oci_close($conn);
?>
<?php
/* Ce script illustre le chargement de colonnes de type LOB
 * Le formulaire utilisé dans cet exemple ressemble à ceci :
 * <form action="upload.php" method="post" enctype="multipart/form-data">
 * <input type="file" name="lob_upload" />
 * ...
 */
  if (!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload" /><br />
<input type="submit" value="Upload" /> - <input type="reset" value="Reset" />
</form>
<?php
  } else {

     // $lob_upload contient le fichier temporaire

     // Reportez-vous à la section sur le téléchargement de fichiers
     // pour sécuriser vos téléchargements

     $conn = oci_connect($user, $password);
     $lob = oci_new_descriptor($conn, OCI_D_LOB);
     $stmt = oci_parse($conn, "insert into $table (id, the_blob)
               values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
     oci_bind_by_name($stmt, ':the_blob', $lob, -1, OCI_B_BLOB);
     oci_execute($stmt, OCI_DEFAULT);
     if ($lob->savefile($lob_upload)){
        oci_commit($conn);
        echo "BLOB chargé !\n";
     }else{
        echo "Impossible de charger le BLOB\n";
     }
     $lob->free();
     oci_free_statement($stmt);
     oci_close($conn);
  }
?>

Exemple #2 Exemple avec oci_new_descriptor()

<?php
/* Appel d'une procédure PL/SQL stockée qui prend un clob
 * en entrée (PHP 4 >= 4.0.6).
 * Exemple de signateure de procédure stockée PL/SQL :
 *
 * PROCEDURE save_data
 *   Argument Name                  Type                    In/Out Default?
 *   ------------------------------ ----------------------- ------ --------
 *   KEY                            NUMBER(38)              IN
 *   DATA                           CLOB                    IN
 *
 */

$conn = oci_connect($user, $password);
$stmt = oci_parse($conn, "begin save_data(:key, :data); end;");
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stmt, ':key', $key);
oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
$clob->write($data);
oci_execute($stmt, OCI_DEFAULT);
oci_commit($conn);
$clob->free();
oci_free_statement($stmt);
?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinewdescriptor(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_new_descriptor(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

  • oci_bind_by_name() - Associe une variable PHP à un marqueur Oracle


Retourne le nombre de colonnes dans un résultat Oracle

  • « oci_new_descriptor
  • oci_num_rows »
  • PHP Manual
  • Fonctions OCI8
  • Retourne le nombre de colonnes dans un résultat Oracle

oci_num_fields

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_num_fields — Retourne le nombre de colonnes dans un résultat Oracle

Description

int oci_num_fields ( resource $statement )

Retourne le nombre de colonnes dans le résultat Oracle statement.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Retourne le nombre de colonnes, sous la forme d'un entier, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_num_fields()

<?php

// Création de la table avec :
//   CREATE TABLE mytab (id NUMBER, quantity NUMBER);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Utilisation de OCI_DESCRIBE_ONLY si aucune ligne n'est récupérée

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
    echo oci_field_name($stid, $i) . " " . oci_field_type($stid, $i) . "<br>\n";
}

// Affiche :
//    ID NUMBER
//    QUANTITY NUMBER

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinumcols(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_num_fields(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.


Retourne le nombre de lignes affectées durant la dernière commande Oracle

  • « oci_num_fields
  • oci_parse »
  • PHP Manual
  • Fonctions OCI8
  • Retourne le nombre de lignes affectées durant la dernière commande Oracle

oci_num_rows

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_num_rows — Retourne le nombre de lignes affectées durant la dernière commande Oracle

Description

int oci_num_rows ( resource $statement )

Retourne le nombre de lignes affectées durant la dernière commande Oracle.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Retourne le nombre de lignes affectées, sous la forme d'un entier, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_num_rows()

<?php
$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "create table emp2 as select * from employees");
oci_execute($stid);
echo oci_num_rows($stid) . " lignes insérées.<br />\n";
oci_free_statement($stid);

$stid = oci_parse($conn, "delete from emp2");
oci_execute($stid, OCI_DEFAULT);
echo oci_num_rows($stid) . " lignes effacées.<br />\n";
oci_commit($conn);
oci_free_statement($stid);

$stid = oci_parse($conn, "drop table emp2");
oci_execute($stid);
oci_free_statement($stid);

oci_close($conn);
?>

Notes

Note:

Cette fonction ne retourne pas le nombre de lignes sélectionnées. Pour les commandes de type SELECT, cette fonction va retourner le nombre de ligne qui ont été lues dans le buffer avec oci_fetch*().

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocirowcount(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_num_rows(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.


Prépare une requête SQL avec Oracle

  • « oci_num_rows
  • oci_password_change »
  • PHP Manual
  • Fonctions OCI8
  • Prépare une requête SQL avec Oracle

oci_parse

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_parse — Prépare une requête SQL avec Oracle

Description

resource oci_parse ( resource $connection , string $sql_text )

Prépare la requête sql_text en utilisant la connexion connection et retourne l'identifiant de requête qui pourra être utilisé avec les fonctions oci_bind_by_name(), oci_execute(), etc..

Les identifiants de requête peuvent être libérés en utilisant la fonction oci_free_statement() ou en définissant la variable correspondante à la valeur NULL.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction
oci_connect(),
oci_pconnect() ou
oci_new_connect().

sql_text

La requête SQL ou PL/SQL.

Les requêtes SQL ne doivent pas se terminer par un point-virgule (";"). Les requêtes PL/SQL doivent se terminer par un point-virgule (";").

Valeurs de retour

Retourne un gestionnaire de requête en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_parse()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

// Analyse de la requête. Notez qu'il n'y a pas de point-virgule à la fin de la requête SQL
$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Exemple #2 Exemple avec oci_parse() et une requête PL/SQL

<?php

/*
  Avant d'exécuter ce code PHP, vous devez créer une procédure stockée en
  SQL*Plus ou SQL Developer:

  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
  BEGIN
      p2 := p1 * 2;
  END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p1 = 8;

// Lors de l'analyse PL/SQL, il doit y avoir un point-virgule à la fin de la chaîne
$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n";   // affiche 16

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Cette fonction ne valide pas la requête sql_text. La seule façon de savoir si la requête sql_text est valide est de l'exécuter.

Voir aussi

  • oci_execute() - Exécute une commande SQL Oracle
  • oci_free_statement() - Libère toutes les ressources réservées par un résultat Oracle


Modifie le mot de passe d'un utilisateur Oracle

  • « oci_parse
  • oci_pconnect »
  • PHP Manual
  • Fonctions OCI8
  • Modifie le mot de passe d'un utilisateur Oracle

oci_password_change

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_password_change — Modifie le mot de passe d'un utilisateur Oracle

Description

bool oci_password_change ( resource $connection , string $username , string $old_password , string $new_password )
resource oci_password_change ( string $dbname , string $username , string $old_password , string $new_password )

Modifie le mot de passe de l'utilisateur username.

La fonction oci_password_change() est plus utile avec des scripts PHP en ligne de commandes, ou lorsque des connexions non persistantes sont utilisées dans l'application PHP.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

username

Le nom d'utilisateur Oracle.

old_password

L'ancien mot de passe.

new_password

Le nouveau mot de passe à définir.

dbname

Le nom de la base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_password_change() pour changer le mot de passe d'un utilisateur déjà connecté

<?php

$dbase      = 'localhost/orcl';
$user       = 'cj';
$current_pw = 'welcome';
$new_pw     = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
oci_password_change($c, $user, $current_pw, $new_pw);
echo "Le nouveau mot de passe est : " . $new_pw . "\n";

?>

Exemple #2 Exemple avec oci_password_change() pour se connecter et changer le mot de passe en une seule étape

<?php

$dbase      = 'localhost/orcl';
$user       = 'cj';
$current_pw = 'welcome';
$new_pw     = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
if (!$c) {
    $m = oci_error();
    if ($m['code'] == 28001) { // "ORA-28001: Le mot de passe a expiré"
        // Connexion et changement du mot de passe en une étape
        $c = oci_password_change($dbase, $user, $current_pw, $new_pw);
        if ($c) {
            echo "Le nouveau mot de passe est : " . $new_pw . "\n";
        }
    }
}

if (!$c) {  // L'erreur originale n'était pas 28001, ou la modification du mot de passe a échoué
    $m = oci_error();
    trigger_error('Impossible de se connecter à la base de données : '. $m['message'], E_USER_ERROR);
}

// Utilisation de la connexion $c
...

?>

Notes

Note:

Changer le mot de passe, avec cette fonction, ou directement dans Oracle devrait être fait avec précaution. Ceci car les applications PHP pourraient continuer d'utiliser des connexions persistantes avec l'ancien mot de passe. La meilleure pratique est de redémarrer tous les serveurs webs dès lors que le mot de passe a été changé.

Note:

Si vous mettez à jour les bibliothèques clients ou la base de données Oracle depuis une version antérieure à 11.2.0.3 vers une version 11.2.0.3 ou supérieure, la fonction oci_password_change() peut retourner l'erreur "ORA-1017: invalid username/password" tant que les versions du client et du serveur ne seront pas identiques.

Note:

La seconde syntaxe de oci_password_change() est disponible depuis la version de OCI8 1.1.

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocipasswordchange(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_password_change(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.


Ouvre une connexion persistante à un serveur Oracle

  • « oci_password_change
  • oci_result »
  • PHP Manual
  • Fonctions OCI8
  • Ouvre une connexion persistante à un serveur Oracle

oci_pconnect

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_pconnect — Ouvre une connexion persistante à un serveur Oracle

Description

resource oci_pconnect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] )

Ouvre une connexion persistante à un serveur Oracle et s'identifie.

Les connexions persistantes sont mises en cache et sont réutilisées entre les requêtes, réduisant ainsi la charge à chaque chargement de la page ; une application PHP typique a une seule connexion persistante à un serveur Oracle par processus enfant Apache (ou processus PHP FastCGI/CGI). Voir la section sur les connexions persistantes aux bases de données pour plus d'informations.

Liste de paramètres

username

Le nom d'utilisateur Oracle.

password

Le mot de passe de l'utilisateur.

connection_string

Contient l'instance Oracle sur laquelle nous devons nous connecter. Ce peut être une » chaîne de connexion rapide, un nom de connexion issue du fichier tnsnames.ora, ou le nom d'une instance locale Oracle.

Si non spécifié, PHP utilise des variables d'environnement comme TWO_TASK (sous Linux) ou LOCAL (sous Windows) et ORACLE_SID pour déterminer l'instance Oracle sur laquelle nous devons nous connecter.

Pour utiliser la méthode de connexion rapide, PHP doit être lié avec la bibliothèque cliente Oracle 10g ou supérieur. La chaîne de connexion rapide pour Oracle 10g ou supérieur est de la forme : [//]host_name[:port][/service_name]. Depuis Oracle 11g, la syntaxe est : [//]host_name[:port][/service_name][:server_type][/instance_name]. Les noms des services peuvent être trouvés en exécutant l'utilitaire Oracle lsnrctl status sur la machine exécutant la base de données.

Le fichier tnsnames.ora peut être dans le chemin de recherche d'Oracle Net, qui inclut $ORACLE_HOME/network/admin et /etc. Une solution alternative serait de définit TNS_ADMIN afin que le fichier $TNS_ADMIN/tnsnames.ora soit lu. Assurez-vous que le daemon exécutant le serveur web a accès en lecture à ce fichier.

character_set

Détermine le jeu de caractères utilisé par la bibliothèque cliente Oracle. Le jeu de caractères n'a pas besoin d'être identique à celui utilisé par la base de données. S'il ne correspond pas, Oracle ferait de son mieux pour convertir les données depuis le jeu de caractères de la base de données. Suivant les jeux de caractères, il se peut que le résultat ne soit pas parfait. De plus, cette conversion nécessite un peu de temps système.

Si non spécifié, la bibliothèque cliente Oracle déterminera un jeu de caractères depuis la variable d'environnement NLS_LANG.

Le fait de passer ce paramètre peut réduire la durée de connexion.

session_mode

Ce paramètre est disponible depuis PHP 5 (PECL OCI8 1.1) et accepte les valeurs suivantes : OCI_DEFAULT, OCI_SYSOPER et OCI_SYSDBA. Si soit la constante OCI_SYSOPER, soit la constante OCI_SYSDBA est spécifiée, cette fonction tentera d'établir une connexion privilégiée en utilisant des identifiants externes. Les connexions privilégiées sont désactivées par défault. Pour les activer, vous devez définir l'option oci8.privileged_connect à On.

PHP 5.3 (PECL OCI8 1.3.4) introduisent la valeur de mode OCI_CRED_EXT. Ce mode demande à Oracle d'utiliser une identification externe ou bien issue du système d'exploitation, qui doit être configurée dans la base de données. Le drapeau OCI_CRED_EXT ne peut être utilisé qu'avec le nom d'utilisateur "/" associé à un mot de passe vide. L'option oci8.privileged_connect peut être définie à On ou Off.

OCI_CRED_EXT peut être combiné avec le mode OCI_SYSOPER ou le mode OCI_SYSDBA.

OCI_CRED_EXT n'est pas supporté sous Windows pour des raisons de sécurité.

Valeurs de retour

Retourne un identifiant de connexion, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_pconnect()

<?php

// Connexin au service XE (i.e. base de données) sur la machine "localhost"
$conn = oci_pconnect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Voir la fonction oci_connect()pour plus d'exemples sur l'utilisation de ce paramètre.

Notes

Note: Depuis PHP 5.1.2 et PECL OCI8 1.1, la durée de vie ainsi que le nombre maximal de connexions persistantes Oracle par processus PHP peuvent être affinés en définissant les valeurs de configuration suivantes : oci8.persistent_timeout, oci8.ping_interval et oci8.max_persistent.

Voir aussi

  • oci_connect() - Établit une connexion avec un serveur Oracle
  • oci_new_connect() - Connexion au serveur Oracle en utilisant une seule connexion


Retourne la valeur d'une colonne dans un résultat Oracle

  • « oci_pconnect
  • oci_rollback »
  • PHP Manual
  • Fonctions OCI8
  • Retourne la valeur d'une colonne dans un résultat Oracle

oci_result

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_result — Retourne la valeur d'une colonne dans un résultat Oracle

Description

mixed oci_result ( resource $statement , mixed $field )

Retourne les données de la colonne field dans la ligne courante du résultat statement.

Pour plus de détails sur le mapping des types de données effectué par l'extension OCI8, lisez les types de données supportés par le driver.

Liste de paramètres

statement

field

Peut être soit le numéro de la colonne (en commençant à 1), soit le nom de la colonne. Si c'est le nom de la colonne, c'est parceque les métadonnées Oracle le présente comme tel, et sera en majuscule pour les colonnes créées en ne tenant pas compte de la casse.

Valeurs de retour

Retourne tout les types, sauf les types abstraits (ROWIDs, LOBs et FILEs). Retourne FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec oci_fetch() et oci_result()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);
oci_execute($stid);

while (oci_fetch($stid)) {
    echo oci_result($stid, 'LOCATION_ID') . " is ";
    echo oci_result($stid, 'CITY') . "<br>\n";
}

// Affiche :
//   1000 is Roma
//   1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociresult(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_result(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

  • oci_fetch_array() - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
  • oci_fetch_assoc() - Lit une ligne d'un résultat sous forme de tableau associatif
  • oci_fetch_object() - Lit une ligne d'un résultat sous forme d'objet
  • oci_fetch_row() - Lit la prochaine ligne d'une requête sous forme de tableau numérique
  • oci_fetch_all() - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel


Annule les transactions Oracle en cours

  • « oci_result
  • oci_server_version »
  • PHP Manual
  • Fonctions OCI8
  • Annule les transactions Oracle en cours

oci_rollback

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_rollback — Annule les transactions Oracle en cours

Description

bool oci_rollback ( resource $connection )

Annule toutes les modifications non validées pour une connexion connection Oracle et met fin à la transaction courante. Tous les verrous seront également libérés. Tous les points de sauvegarde Oracle (SAVEPOINTS) seront supprimés.

Une transaction commence lorsque la première requête SQL qui modifie des données est exécuté avec la fonction oci_execute() en utilisant le drapeau OCI_NO_AUTO_COMMIT. Les modifications suivantes effectuées par d'autres requêtes deviennent partie intégrante de la même transaction. Les modifications effectuées lors d'une transaction sont temporaires tant que la transaction n'a pas été validée ou annulée. Les autres utilisateurs de la base de données ne verront ces modifications que lors de la validation de la transaction.

Lors de l'insertion ou de la mise à jour de données, l'utilisation des transactions est fortement recommandée afin de garantir la consistence relationnelle des données, mais aussi pour des raisons de performance.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou oci_new_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_rollback()

<?php

// Insertion dans plusieurs tables, puis, annulation des modifications si des erreurs surviennent

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");

// Le drapeau OCI_NO_AUTO_COMMIT indique à Oracle de ne pas valider l'insertion immédiatement.
// Utilisez le drapeau OCI_DEFAULT en PHP <= 5.3.1. Les 2 sont identiques.
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    oci_rollback($conn);  // Annulation des modifications sur les 2 tables
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// Validation des modifications sur les 2 tables
$r = oci_commit($conn);
if (!r) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

?>

Exemple #2 Exemple de retour à un point de sauvegarde (SAVEPOINT)

<?php
$stid = oci_parse($conn, 'UPDATE mytab SET id = 1111');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

// création du point de sauvegarde
$stid = oci_parse($conn, 'SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

$stid = oci_parse($conn, 'UPDATE mytab SET id = 2222');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

// utilise une requête SQL explicite pour effectuer le retour au point de sauvegarde
$stid = oci_parse($conn, 'ROLLBACK TO SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

oci_commit($conn);  // mytab a maintenant un id de 1111
?>

Notes

Note:

Les transactions sont automatiquement annulées lorsque vous fermez la connexion, ou lorsque le script se termine, un des deux arrivant le premier. Vous devez explicitement appeler la fonction oci_commit() pour valider la connexion.

Tous les appels à la fonction oci_execute() qui utilisent le mode OCI_COMMIT_ON_SUCCESS, qui se soit par défaut ou de façon explicite, valideront toutes les transactions en attente.

Toutes les requêtes Oracle comme CREATE ou DROP valideront également, automatiquement, toutes les transactions en attente.

Voir aussi

  • oci_commit() - Valide les transactions Oracle en cours
  • oci_execute() - Exécute une commande SQL Oracle


Retourne la version du serveur Oracle

  • « oci_rollback
  • oci_set_action »
  • PHP Manual
  • Fonctions OCI8
  • Retourne la version du serveur Oracle

oci_server_version

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_server_version — Retourne la version du serveur Oracle

Description

string oci_server_version ( resource $connection )

Retourne une chaîne contenant la version du serveur Oracle ainsi que les options disponibles.

Liste de paramètres

connection

Valeurs de retour

Retourne les informations sur la version, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_server_version()

<?php
$conn = oci_connect("hr", "hrpwd", "localhost/XE");
echo "Version du serveur : " . oci_server_version($conn);

// Affiche :
// Version du serveur : Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
// With the Partitioning, OLAP, Data Mining and Real Application Testing option

oci_close($conn);
?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociserverversion(). Cet ancien nom est toujours utilisable. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

  • oci_client_version() - Retourne la version de la bibliothèque cliente Oracle


Définit le nom de l'action

  • « oci_server_version
  • oci_set_client_identifier »
  • PHP Manual
  • Fonctions OCI8
  • Définit le nom de l'action

oci_set_action

(PHP 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_action — Définit le nom de l'action

Description

bool oci_set_action ( resource $connection , string $action_name )

Définit le nom de l'action pour un traçage Oracle.

Le nom de l'action est enregistré avec la base de données lors du prochain 'roundtrip' depuis PHP vers la base de données ; typiquement, lorsqu'une requête SQL est exécutée.

Le nom de l'action peut être interrogé par la suite depuis la vue d'administration de la base de données V$SESSION. Il peut être utilisé pour tracer et surveiller d'autres vues comme V$SQLAREA et DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.

La valeur peut être conservée au travers des connexions persistantes.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou la fonction oci_new_connect().

action_name

Chaîne choisie par l'utilisateur jusqu'à 32 octets de long.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Définition d'une action

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Enregistre l'action
oci_set_action($c, 'Friend Lookup');

// Code générant un roundtrip, par exemple, une requête :
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// Pendant l'exécution du script, l'administrateur peut voir les actions
// en cours d'exécution :

sqlplus system/welcome
SQL> select action from v$session;

Notes

Note: Requis par la version Oracle

Cette fonction est disponible si PHP est lié à partir de la version 10g de la bibliothèque de la base de données Oracle .

Astuce

Performance

Avec les anciennes version OCI8 ou les anciennes bases de données Oracle, l'information quant au client peut être défini en utilisant le paquet Oracle DBMS_APPLICATION_INFO. Ceci est moins efficace que d'utiliser la fonction oci_set_client_info().

Attention

Allé-Retour

Quelques fonctions OCI8 nécessitent des allé-retours avec la base de données. Ces allé-retours peuvent être évités lors de l'utilisation de requêtes dont le résultat est mis en cache.

Voir aussi

  • oci_set_module_name() - Définit le nom du module
  • oci_set_client_info() - Définit l'information concernant le client
  • oci_set_client_identifier() - Définit l'identifiant du client


Définit l'identifiant du client

  • « oci_set_action
  • oci_set_client_info »
  • PHP Manual
  • Fonctions OCI8
  • Définit l'identifiant du client

oci_set_client_identifier

(PHP 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_client_identifier — Définit l'identifiant du client

Description

bool oci_set_client_identifier ( resource $connection , string $client_identifier )

Définit l'identifiant du client, utilisé par de nombreux composants de la base de données pour identifier les utilisateurs de l'application qui s'authentifie avec le même nom d'utilisateur de base de données.

L'identifiant du client est enregistré avec la base de données lorsque le prochain 'roundtrip' depuis PHP vers la base de données est effectué ; typiquement, l'exécution d'une requête SQL.

L'identifiant peut par la suite être interrogé, par exemple, avec la requête SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER') FROM DUAL. Une vue de l'administration de la base de données, comme la vue V$SESSION contient également la valeur. Il peut être utilisé avec DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE dans le cadrage d'un tracage. Il peut également être utilisé dans le cadre d'un audit.

La valeur peut être conservée suivants les différentes requêtes des pages qui utilisent la même connexion persistante.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou la fonction oci_new_connect().

client_identifier

Chaîne choisie par l'utilisateur jusqu'à 64 octets de long.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Définit l'identifiant du client comme l'utilisateur de l'application

<?php

// Retrouve le nom utilisé pour l'identification de l'utilisateur de l'application
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');

// Informe Oracle sur cet utilisateur
oci_set_client_identifier($c, $un);

// Le prochain roundtrip vers la base de données validera cet identifiant
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);

// ...

?>

Notes

Attention

Allé-Retour

Quelques fonctions OCI8 nécessitent des allé-retours avec la base de données. Ces allé-retours peuvent être évités lors de l'utilisation de requêtes dont le résultat est mis en cache.

Voir aussi

  • oci_set_module_name() - Définit le nom du module
  • oci_set_action() - Définit le nom de l'action
  • oci_set_client_info() - Définit l'information concernant le client


Définit l'information concernant le client

  • « oci_set_client_identifier
  • oci_set_edition »
  • PHP Manual
  • Fonctions OCI8
  • Définit l'information concernant le client

oci_set_client_info

(PHP 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_client_info — Définit l'information concernant le client

Description

bool oci_set_client_info ( resource $connection , string $client_info )

Définit l'information concernant le client pour un traçage Oracle.

L'information du client est enregistré avec la base de données lorsque le prochain 'roundtrip' depuis PHP vers la base de données survient ; typiquement, lorsqu'une requête SQL est exécutée.

L'information du client peut par la suite être interrogée depuis la vue d'administration de la base de données V$SESSION.

La valeur sera conservée via le mécanisme des connexions persistantes.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou la fonction oci_new_connect().

client_info

Chaîne utilisateur jusqu'à 64 octets de long.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Définit l'information sur le client

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Enregistre l'information sur le client
oci_set_client_info($c, 'My Application Version 2');

// On exécute un code permettant un aller-retour vers la base de données,
// par exemple, une requête :
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// Pendant l'exécution de ce script, l'administrateur peut voir les informations
// du client :

sqlplus system/welcome
SQL> select client_info from v$session;

Notes

Note: Requis par la version Oracle

Cette fonction est disponible si PHP est lié à partir de la version 10g de la bibliothèque de la base de données Oracle .

Astuce

Performance

Avec les anciennes version OCI8 ou les anciennes bases de données Oracle, l'information quant au client peut être défini en utilisant le paquet Oracle DBMS_APPLICATION_INFO. Ceci est moins efficace que d'utiliser la fonction oci_set_client_info().

Attention

Allé-Retour

Quelques fonctions OCI8 nécessitent des allé-retours avec la base de données. Ces allé-retours peuvent être évités lors de l'utilisation de requêtes dont le résultat est mis en cache.

Voir aussi

  • oci_set_module_name() - Définit le nom du module
  • oci_set_action() - Définit le nom de l'action
  • oci_set_client_identifier() - Définit l'identifiant du client


Définit l'édition de la base de données

  • « oci_set_client_info
  • oci_set_module_name »
  • PHP Manual
  • Fonctions OCI8
  • Définit l'édition de la base de données

oci_set_edition

(PHP 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_edition — Définit l'édition de la base de données

Description

bool oci_set_edition ( string $edition )

Définit l'édition des objets de la base de données à utiliser par les connexions.

L'édition Oracle permet à des versions concurrentes des applications d'être exécutées en utilisant le même nom de schéma et d'objets. Ceci est pratique pour mettre à jour en direct les systèmes.

Appelez la fonction oci_set_edition() avant d'appeler
une fonction comme oci_connect(), oci_pconnect()
ou oci_new_connect().

Si une édition est définie mais n'est pas valide sur la base de données, toute tentative de connexion échouera même si la fonction oci_set_edition() retourne un statut de réussite.

Lors de l'utilisation des connexions persistantes, si une connexion avec l'édition demandée existe déjà, elle sera ré-utilisée. Sinon, une connexion persistante différente sera créée.

Liste de paramètres

edition

Nom de l'édition Oracle, précédemment créé avec la commande SQL "CREATE EDITION".

Notes

Note: Exigence de la version Oracle

Cette fonction est disponible pour Oracle 11gR2 et suivants.

Attention

Connexions persistantes

Pour éviter les inconsistances de données ou des erreurs inattendues, n'utilisez pas la requête ALTER SESSION SET EDITION pour changer une édition sur les connexions persistantes.

Attention

File d'attente de connexions DRCP

Pour éviter les inconsistances de données ou des erreurs inattendues lors de l'utilisation des éditions et de DRCP avec Oracle 11.2.0.1, conservez une correspondance un-à-un entre oci8.connection_class et le nom de l'édition utilisé par vos applications. Chaque serveur pour une classe de connexion donnée doit être utilisé avec une seule édition. Cette restriction a été supprimée dans Oracle 11.2.0.2.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 2 scripts peuvent utiliser différentes versions de myfunc() au même moment

<?php

// Fichier 1

echo "Version 1 de l'application\n";

oci_set_edition('ORA$BASE');
$c = oci_connect('hr', 'welcome', 'localhost/XE');

$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "Le résultat est $r\n";

?>
<?php

// Fichier 2

echo "Version 2 de l'application\n";

oci_set_edition('E1');
$c = oci_connect('hr', 'welcome', 'localhost/XE');

$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "Le résultat est $r\n";

?>


Définit le nom du module

  • « oci_set_edition
  • oci_set_prefetch »
  • PHP Manual
  • Fonctions OCI8
  • Définit le nom du module

oci_set_module_name

(PHP 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_module_name — Définit le nom du module

Description

bool oci_set_module_name ( resource $connection , string $module_name )

Définit le nom du module pour le tracage Oracle.

Le nom du module est enregistré avec la base de données lorsque le prochain 'roundtrip' depuis PHP vers la base de données survient ; typiquement, lorsqu'une requête SQL est exécutée.

Le nom pourra être ensuite interrogé depuis la vue d'administration de la base de données comme V$SESSION. Il pourra être également utilisé pour du traçage et de la surveillance, comme avec V$SQLAREA et DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.

La valeur sera retenue via le mécanisme des connexions persistantes.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou la fonction oci_new_connect().

module_name

Chaîne choisie par l'utilisateur jusqu'à 48 octets de long.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Requis par la version Oracle

Cette fonction est disponible si PHP est lié à partir de la version 10g de la bibliothèque de la base de données Oracle .

Astuce

Performance

Avec les anciennes version OCI8 ou les anciennes bases de données Oracle, l'information quant au client peut être défini en utilisant le paquet Oracle DBMS_APPLICATION_INFO. Ceci est moins efficace que d'utiliser la fonction oci_set_client_info().

Attention

Allé-Retour

Quelques fonctions OCI8 nécessitent des allé-retours avec la base de données. Ces allé-retours peuvent être évités lors de l'utilisation de requêtes dont le résultat est mis en cache.

Exemples

Exemple #1 Définition du nom du module

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Enregistrement du module
oci_set_module_name($c, 'Home Page');

// Code générant un roundtrip, par exemple, une requête :
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);
?>
// Pendant l'exécution du script, l'administrateur peut voir les
// modules enn utilisation :

sqlplus system/welcome
SQL> select module from v$session;

Voir aussi

  • oci_set_action() - Définit le nom de l'action
  • oci_set_client_info() - Définit l'information concernant le client
  • oci_set_client_identifier() - Définit l'identifiant du client


Indique le nombre de lignes qui doivent être lues à l'avance par Oracle

  • « oci_set_module_name
  • oci_statement_type »
  • PHP Manual
  • Fonctions OCI8
  • Indique le nombre de lignes qui doivent être lues à l'avance par Oracle

oci_set_prefetch

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_set_prefetch — Indique le nombre de lignes qui doivent être lues à l'avance par Oracle

Description

bool oci_set_prefetch ( resource $statement , int $rows )

Définit le nombre de lignes à précharger par les bibliothèques clientes Oracle après un appel réussi à la fonction oci_execute() mais aussi pour chaque appel aux fonctions internes de récupération de lignes à la base de données. Pour les requêtes retournant un grand nombre de lignes, les performances peuvent être significativement améliorées en augmentant le nombre de lignes à précharger par rapport à la valeur par défaut définie par l'option de configuration oci8.default_prefetch.

Le préchargement est une façon efficace de retourner plus d'une ligne de données depuis la base de données pour chaque envoi réseau. Il en retourne une meilleure utilisation du réseau mais aussi une meilleure utilisation du CPU. Le préchargement de lignes est interne à OCI8 et le comportement des fonctions de récupération de données reste inchangé suivant la valeur du compteur de préchargement. Par exemple, la fonction oci_fetch_row() retournera toujours une ligne. Le buffer de préchargement est propre à chaque requête et ne sera pas utilisé pour ré-exécuter des requêtes ou par les autres connexions.

Il convient d'appeler la fonction oci_set_prefetch() avant la fonction oci_execute().

Un des moyens de gagner en efficacité est de définir la valeur de préchargement à une valeur raisonnable en fonction du réseau et de la base de données à gérer. Pour les requêtes retournant un très grand nombre de lignes, il convient de récupérer l'ensemble des lignes par morceaux (i.e. définit la valeur de préchargement à une valeur en dessous du nombre total de lignes). Ceci permet à la base de données de gérer les requêtes des autres utilisateurs pendant que le script PHP gère le jeu de lignes courant.

Le préchargement a été introduit en Oracle 8i. Le préchargement REF CURSOR a été introduit en Oracle 11gR2 et est disponible lorsque PHP est lié avec les bibliothèques clientes Oracle 11gR2 (ou supérieur). Les curseurs imbriqués de préchargement ont été introduits en Oracle 11gR2 et nécessitent à la fois les bibliothèques clientes Oracle, et une base de données en version 11gR2 (ou supérieur).

Le préchargement n'est pas supporté lorsque les requêtes contiennent des colonnes de type LONG ou LOB. La valeur de préchargement sera utilisé dans toutes les situations où le préchargement est supporté.

Lors de l'utilisation de la base de données Oracle 12c, le jeu de valeurs préchargées par PHP peut être écrasé par le fichier de configuration client d'Oracle oraaccess.xml. Référez-vous à la documentation d'Oracle pour plus de détails.

Liste de paramètres

statement

Un identifiant de requête OCI8 créé par la fonction oci_parse() et exécuté par la fonction oci_execute(), ou un identifiant de requête REF CURSOR.

rows

Le nombre de lignes à précharger, >=0

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.2 (PECL OCI8 1.4) | Avant cette version, rows doit être >= 1.
5.3 (PECL OCI8 1.3.4) | Avant cette version, le préchargement était limité et devait être inférieur aux nombres de lignes définies par le paramètre rows ainsi qu'à 1024 * rows octets. La restriction sur la taille en octets a maintenant disparu.

Exemples

Exemple #1 Modification de la valeur de préchargement pour une requête

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM myverybigtable');
oci_set_prefetch($stid, 300);  // A définir avant l'appel à la fonction oci_execute()
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Exemple #2 Modification de la valeur de préchargement pour une récupération REF CURSOR

<?php
/*
  Création de la procédure stockée PL/SQL suivante :

  CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
  BEGIN
    OPEN p1 FOR SELECT * FROM all_objects WHERE ROWNUM < 5000;
  END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'BEGIN myproc(:rc); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Modification de la valeur de préchargement avant l'exécution du curseur.
// Le préchargement REF CURSOR fonctionne lorsque PHP est lié avec les bibliothèques clientes
// Oracle 11gR2 (ou supérieur)
oci_set_prefetch($refcur, 200);
oci_execute($refcur);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($refcur, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);

?>

Si PHP OCI8 récupère des données depuis un curseur REF CURSOR puis, retourne le curseur REF CURSOR à une seconde procédure stockée pour traitement, alors il convient de définir le préchargement de REF CURSOR à 0 afin d'éviter de perdre des lignes du jeu de résultats. La valeur de préchargement est le nombre de lignes supplémentaire à récupérer pour chaque requête interne OCI8 à la base de données, aussi, le fait de la définir à 0 signifie uniquement que nous souhaitons récupérer une seule ligne à la fois.

Exemple #3 Définition de la valeur de préchargement lorsque l'on retourne un curseur REF CURSOR à Oracle

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/orcl');

// Récupération du curseur REF CURSOR
$stid = oci_parse($conn, 'BEGIN myproc(:rc_out); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc_out', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Affiche 2 lignes, mais ne précharge pas de lignes supplémentaires
// sinon, ces lignes supplémentaires ne seront pas passées à myproc_use_rc().
// La valeur de préchargement à 0 est autorisée en PHP 5.3.2 et PECL OCI8 1.4
oci_set_prefetch($refcur, 0);
oci_execute($refcur);
$row = oci_fetch_array($refcur);
var_dump($row);
$row = oci_fetch_array($refcur);
var_dump($row);

// passe le curseur REF CURSOR à myproc_use_rc() afin d'effectuer d'autres
// traitement sur le jeu de résultats
$stid = oci_parse($conn, 'begin myproc_use_rc(:rc_in); end;');
oci_bind_by_name($stid, ':rc_in', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

?>

Voir aussi

  • l'option de configuration oci8.default_prefetch


Retourne le type de la requête Oracle

  • « oci_set_prefetch
  • OCI-Collection »
  • PHP Manual
  • Fonctions OCI8
  • Retourne le type de la requête Oracle

oci_statement_type

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_statement_type — Retourne le type de la requête Oracle

Description

string oci_statement_type ( resource $statement )

Retourne un mot clé identifiant le type de la requête statement OCI8.

Liste de paramètres

statement

Un identifiant de requête OCI valide, retourné par la fonction oci_parse().

Valeurs de retour

Retourne le type de requête statement sous la forme d'une des chaînes suivantes.

Type de requête
Chaîne retournée | Notes
ALTER |
BEGIN |
CALL | Introduit en PHP 5.2.1 (PECL OCI8 1.2.3)
CREATE |
DECLARE |
DELETE |
DROP |
INSERT |
SELECT |
UPDATE |
UNKNOWN |

Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_statement_type()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'DELETE FROM departments WHERE department_id = 130;');
if (oci_statement_type($stid) == "DELETE") {
    trigger_error('Vous n\'êtes pas autorisé à effacer des lignes dans cette table', E_USER_ERROR);
}
else {
    oci_execute($stid);  // efface la ligne
}

oci_free_statement($stid);
oci_close($conn);

?>


La classe OCI-Collection

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

Introduction

OCI8 Collection functionality.

Synopsis de la classe

OCI-Collection {
/* Méthodes */
bool append ( mixed $value )
bool assign ( OCI-Collection $from )
bool assignElem ( int $index , mixed $value )
bool free ( void )
mixed getElem ( int $index )
int max ( void )
int size ( void )
bool trim ( int $num )
}

Sommaire

  • OCI-Collection::append — Ajoute un élément à une collection Oracle
  • OCI-Collection::assign — Assigne une valeur à une collection depuis une autre collection Oracle
  • OCI-Collection::assignElem — Assigne une valeur à un élément d'une collection Oracle
  • OCI-Collection::free — Libère les ressources associées avec un objet de collection
  • OCI-Collection::getElem — Retourne la valeur d'un élément d'une collection Oracle
  • OCI-Collection::max — Retourne le nombre maximal de valeurs d'une collection Oracle
  • OCI-Collection::size — Retourne la taille d'une collection Oracle
  • OCI-Collection::trim — Supprime les derniers éléments d'une collection Oracle


Ajoute un élément à une collection Oracle

  • « OCI-Collection
  • OCI-Collection::assign »
  • PHP Manual
  • OCI-Collection
  • Ajoute un élément à une collection Oracle

OCI-Collection::append

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::append — Ajoute un élément à une collection Oracle

Description

bool OCI-Collection::append ( mixed $value )

Ajoute un élément à la fin d'une collection Oracle.

Liste de paramètres

value

La valeur à ajouter à la collection. Peut être une chaîne de caractères ou un nombre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OCI-Collection::assign


Assigne une valeur à une collection depuis une autre collection Oracle

  • « OCI-Collection::append
  • OCI-Collection::assignElem »
  • PHP Manual
  • OCI-Collection
  • Assigne une valeur à une collection depuis une autre collection Oracle

OCI-Collection::assign

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::assign — Assigne une valeur à une collection depuis une autre collection Oracle

Description

bool OCI-Collection::assign ( OCI-Collection $from )

Assigne une valeur à une collection, à partir de la collection from. Les deux collections doivent avoir été créées avec oci_new_collection() avant d'utiliser cette fonction.

Liste de paramètres

from

Une instance OCI-Collection.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OCI-Collection::append


Assigne une valeur à un élément d'une collection Oracle

  • « OCI-Collection::assign
  • OCI-Collection::free »
  • PHP Manual
  • OCI-Collection
  • Assigne une valeur à un élément d'une collection Oracle

OCI-Collection::assignElem

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::assignElem — Assigne une valeur à un élément d'une collection Oracle

Description

bool OCI-Collection::assignElem ( int $index , mixed $value )

Assigne une valeur à l'élément dont l'index est index.

Liste de paramètres

index

L'index de l'élément. Le premier vaut 0.

value

Peut être soit une chaîne de caractères, soit un nombre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OCI-Collection::getElem


Libère les ressources associées avec un objet de collection

  • « OCI-Collection::assignElem
  • OCI-Collection::getElem »
  • PHP Manual
  • OCI-Collection
  • Libère les ressources associées avec un objet de collection

OCI-Collection::free

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::free — Libère les ressources associées avec un objet de collection

Description

bool OCI-Collection::free ( void )

Libère les ressources associées avec un objet de collection.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • oci_new_collection


Retourne la valeur d'un élément d'une collection Oracle

  • « OCI-Collection::free
  • OCI-Collection::max »
  • PHP Manual
  • OCI-Collection
  • Retourne la valeur d'un élément d'une collection Oracle

OCI-Collection::getElem

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::getElem — Retourne la valeur d'un élément d'une collection Oracle

Description

mixed OCI-Collection::getElem ( int $index )

Retourne la valeur de l'élément à l'index index (en commençant à 0).

Liste de paramètres

index

L'index de l'élément. Le premier vaut 1.

Valeurs de retour

Retournera FALSE si cet élément n'existe pas; NULL, si l'élément est NULL chaîne si la colonne est de type chaîne, et nombre si c'est un champs numérique.

Voir aussi

  • OCI-Collection::assignElem


Retourne le nombre maximal de valeurs d'une collection Oracle

  • « OCI-Collection::getElem
  • OCI-Collection::size »
  • PHP Manual
  • OCI-Collection
  • Retourne le nombre maximal de valeurs d'une collection Oracle

OCI-Collection::max

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::max — Retourne le nombre maximal de valeurs d'une collection Oracle

Description

int OCI-Collection::max ( void )

Retourne le nombre maximal de valeurs d'une collection Oracle.

Valeurs de retour

Retourne le nombre maximal, sous la forme d'un entier, ou FALSE si une erreur survient.

Si la valeur retournée vaut 0, alors le nombre d'éléments n'est pas limité.

Voir aussi

  • OCI-Collection::size


Retourne la taille d'une collection Oracle

  • « OCI-Collection::max
  • OCI-Collection::trim »
  • PHP Manual
  • OCI-Collection
  • Retourne la taille d'une collection Oracle

OCI-Collection::size

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::size — Retourne la taille d'une collection Oracle

Description

int OCI-Collection::size ( void )

Retourne la taille d'une collection Oracle.

Valeurs de retour

Retourne le nombre d'éléments de la collection, ou FALSE si une erreur survient.

Voir aussi

  • OCI-Collection::max


Supprime les derniers éléments d'une collection Oracle

  • « OCI-Collection::size
  • OCI-Lob »
  • PHP Manual
  • OCI-Collection
  • Supprime les derniers éléments d'une collection Oracle

OCI-Collection::trim

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::trim — Supprime les derniers éléments d'une collection Oracle

Description

bool OCI-Collection::trim ( int $num )

Supprime les num derniers éléments d'une collection.

Liste de paramètres

num

Le nombre d'éléments à supprimer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OCI-Collection::size


La classe OCI-Lob

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

Introduction

OCI8 LOB functionality for large binary (BLOB) and character (CLOB) objects.

Synopsis de la classe

OCI-Lob {
/* Méthodes */
bool append ( OCI-Lob $lob_from )
bool close ( void )
bool eof ( void )
int erase ([ int $offset [, int $length ]] )
bool export ( string $filename [, int $start [, int $length ]] )
bool flush ([ int $flag ] )
bool free ( void )
bool getBuffering ( void )
bool import ( string $filename )
string load ( void )
string read ( int $length )
bool rewind ( void )
bool save ( string $data [, int $offset ] )
bool seek ( int $offset [, int $whence = OCI_SEEK_SET ] )
bool setBuffering ( bool $on_off )
int size ( void )
int tell ( void )
bool truncate ([ int $length = 0 ] )
int write ( string $data [, int $length ] )
bool writeTemporary ( string $data [, int $lob_type = OCI_TEMP_CLOB ] )
}

Sommaire

  • OCI-Lob::append — Ajoute des données à un LOB Oracle
  • OCI-Lob::close — Ferme un LOB Oracle
  • OCI-Lob::eof — Test la fin du LOB Oracle
  • OCI-Lob::erase — Écrase une partie d'un LOB Oracle
  • OCI-Lob::export — Exporte un LOB Oracle dans un fichier
  • OCI-Lob::flush — Écrit les LOB Oracle sur le disque
  • OCI-Lob::free — Détruit un pointeur de LOB Oracle
  • OCI-Lob::getBuffering — Retourne l'état de bufferisation LOB d'Oracle
  • OCI-Lob::import — Importe un fichier dans LOB Oracle
  • OCI-Lob::load — Retourne le contenu d'un LOB
  • OCI-Lob::read — Lit une partie d'un LOB Oracle
  • OCI-Lob::rewind — Ramène le pointeur interne d'un LOB Oracle au début
  • OCI-Lob::save — Sauvegarde des données dans un LOB Oracle
  • OCI-Lob::saveFile — Alias de OCI-Lob::import
  • OCI-Lob::seek — Déplace le pointeur interne d'un LOB Oracle
  • OCI-Lob::setBuffering — Active/désactive la bufferisation des LOB Oracle
  • OCI-Lob::size — Retourne la taille d'un LOB Oracle
  • OCI-Lob::tell — Retourne la position courante du pointeur de LOB
  • OCI-Lob::truncate — Tronque un LOB Oracle
  • OCI-Lob::write — Écrit des données dans un LOB Oracle
  • OCI-Lob::writeTemporary — Écrit un LOB Oracle temporaire
  • OCI-Lob::writeToFile — Alias de OCI-Lob::export


Ajoute des données à un LOB Oracle

  • « OCI-Lob
  • OCI-Lob::close »
  • PHP Manual
  • OCI-Lob
  • Ajoute des données à un LOB Oracle

OCI-Lob::append

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::append — Ajoute des données à un LOB Oracle

Description

bool OCI-Lob::append ( OCI-Lob $lob_from )

Ajoute des données à un LOB Oracle.

L'écriture dans un LOB avec OCI-Lob->append() échouera si la bufferisation a été préalablement activée. Vous devez désactiver la bufferisation avant d'ajouter des données. Vous aurez peut être à vider les buffers avec la fonction OCI-Lob::flush avant de la désactiver.

Liste de paramètres

lob_from

Le LOB copié.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::flush
  • OCI-Lob::setBuffering
  • OCI-Lob::getBuffering


Ferme un LOB Oracle

  • « OCI-Lob::append
  • OCI-Lob::eof »
  • PHP Manual
  • OCI-Lob
  • Ferme un LOB Oracle

OCI-Lob::close

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::close — Ferme un LOB Oracle

Description

bool OCI-Lob::close ( void )

Ferme un LOB Oracle. Cette fonction doit être utilisée uniquement avec OCI-Lob::writeTemporary.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::writeTemporary


Test la fin du LOB Oracle

  • « OCI-Lob::close
  • OCI-Lob::erase »
  • PHP Manual
  • OCI-Lob
  • Test la fin du LOB Oracle

OCI-Lob::eof

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::eof — Test la fin du LOB Oracle

Description

bool OCI-Lob::eof ( void )

Vérifie si le pointeur interne d'un LOB est à la fin.

Valeurs de retour

Retourne TRUE si le pointeur interne de LOB a atteint la fin du LOB, et FALSE sinon.

Notes

Note:

Cette fonction retournera une erreur Oracle si OCI-Lob::setBuffering est actif sur le LOB.

Voir aussi

  • OCI-Lob::size


Écrase une partie d'un LOB Oracle

  • « OCI-Lob::eof
  • OCI-Lob::export »
  • PHP Manual
  • OCI-Lob
  • Écrase une partie d'un LOB Oracle

OCI-Lob::erase

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::erase — Écrase une partie d'un LOB Oracle

Description

int OCI-Lob::erase ([ int $offset [, int $length ]] )

Écrase la partie du LOB Oracle commençant à l'offset offset, sur la longueur de length octets.

Pour les BLOB, l'effacement signifie que la valeur existante du LOB est remplacée par le caractère 0. Pour les CLOB, ce sont des espaces.

Liste de paramètres

offset

length

Valeurs de retour

Retourne le nombre de caractères/octets effacés ou FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::truncate


Exporte un LOB Oracle dans un fichier

  • « OCI-Lob::erase
  • OCI-Lob::flush »
  • PHP Manual
  • OCI-Lob
  • Exporte un LOB Oracle dans un fichier

OCI-Lob::export

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::export — Exporte un LOB Oracle dans un fichier

Description

bool OCI-Lob::export ( string $filename [, int $start [, int $length ]] )

Exporte un LOB Oracle dans un fichier.

Liste de paramètres

filename

Le chemin vers le fichier.

start

Indique la position à partir de laquelle l'on doit commencer à exporter.

length

Indique la taille des données à exporter.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::import


Écrit les LOB Oracle sur le disque

  • « OCI-Lob::export
  • OCI-Lob::free »
  • PHP Manual
  • OCI-Lob
  • Écrit les LOB Oracle sur le disque

OCI-Lob::flush

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::flush — Écrit les LOB Oracle sur le disque

Description

bool OCI-Lob::flush ([ int $flag ] )

Écrit les LOB Oracle sur le disque.

Liste de paramètres

flag

Par défaut, les ressources ne sont pas libérées, mais en utilisant l'option flag avec la valeur OCI_LOB_BUFFER_FREE, vous pouvez le faire explicitement. Assurez-vous de bien savoir ce que vous faites : la prochaine lecture ou écriture dans le même LOB demandera alors une requête au serveur, et la réinitialisation des ressources. Il est recommandé d'utiliser l'option OCI_LOB_BUFFER_FREE uniquement si vous n'avez plus besoin du LOB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Retourne FALSE si la bufferisation n'a pas été activée, ou si une erreur est survenue.

Voir aussi

  • OCI-Lob::getBuffering
  • OCI-Lob::setBuffering


Détruit un pointeur de LOB Oracle

  • « OCI-Lob::flush
  • OCI-Lob::getBuffering »
  • PHP Manual
  • OCI-Lob
  • Détruit un pointeur de LOB Oracle

OCI-Lob::free

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::free — Détruit un pointeur de LOB Oracle

Description

bool OCI-Lob::free ( void )

Libère les ressources associées avec la ressource, précédemment alloué avec oci_new_descriptor().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne l'état de bufferisation LOB d'Oracle

  • « OCI-Lob::free
  • OCI-Lob::import »
  • PHP Manual
  • OCI-Lob
  • Retourne l'état de bufferisation LOB d'Oracle

OCI-Lob::getBuffering

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::getBuffering — Retourne l'état de bufferisation LOB d'Oracle

Description

bool OCI-Lob::getBuffering ( void )

Retourne l'état de bufferisation LOB d'Oracle.

Valeurs de retour

Retourne FALSE si la bufferisation des LOB est désactivée, et TRUE si elle l'est.

Voir aussi

  • OCI-Lob::setBuffering


Importe un fichier dans LOB Oracle

  • « OCI-Lob::getBuffering
  • OCI-Lob::load »
  • PHP Manual
  • OCI-Lob
  • Importe un fichier dans LOB Oracle

OCI-Lob::import

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::import — Importe un fichier dans LOB Oracle

Description

bool OCI-Lob::import ( string $filename )

Écrit les données du fichier filename dans le LOB, à partir de la position courante.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::export
  • OCI-Lob::write


Retourne le contenu d'un LOB

  • « OCI-Lob::import
  • OCI-Lob::read »
  • PHP Manual
  • OCI-Lob
  • Retourne le contenu d'un LOB

OCI-Lob::load

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::load — Retourne le contenu d'un LOB

Description

string OCI-Lob::load ( void )

Lit le contenu d'un LOB Oracle. Le script peut être interrompu à cause de memory_limit, si ce dernier dépasse la limite. Dans la plupart des cas, il est recommandé d'utiliser la fonction OCI-Lob::read à la place. En cas d'erreur, OCI-Lob->load() retourne FALSE.

Valeurs de retour

Retourne le contenu de l'objet, ou FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::read


Lit une partie d'un LOB Oracle

  • « OCI-Lob::load
  • OCI-Lob::rewind »
  • PHP Manual
  • OCI-Lob
  • Lit une partie d'un LOB Oracle

OCI-Lob::read

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::read — Lit une partie d'un LOB Oracle

Description

string OCI-Lob::read ( int $length )

Lit length octets à partir de la position courante du LOB.

La lecture stoppe lorsque length ont été lus, ou que la fin du LOB a été atteinte. Le pointeur de LOB sera déplacé par cette lecture.

Liste de paramètres

length

La taille des données à lire, en octets. Les grosses valeurs seront arrondies au MB inférieur.

Valeurs de retour

Retourne le contenu, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::load
  • OCI-Lob::write


Ramène le pointeur interne d'un LOB Oracle au début

  • « OCI-Lob::read
  • OCI-Lob::save »
  • PHP Manual
  • OCI-Lob
  • Ramène le pointeur interne d'un LOB Oracle au début

OCI-Lob::rewind

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::rewind — Ramène le pointeur interne d'un LOB Oracle au début

Description

bool OCI-Lob::rewind ( void )

Ramène le pointeur interne d'un LOB Oracle au début.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::seek
  • OCI-Lob::tell


Sauvegarde des données dans un LOB Oracle

  • « OCI-Lob::rewind
  • OCI-Lob::saveFile »
  • PHP Manual
  • OCI-Lob
  • Sauvegarde des données dans un LOB Oracle

OCI-Lob::save

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::save — Sauvegarde des données dans un LOB Oracle

Description

bool OCI-Lob::save ( string $data [, int $offset ] )

Sauvegarde des données dans un LOB Oracle.

Liste de paramètres

data

Les données à sauvegarder.

offset

Peut être utilisé pour indiquer la position depuis le début du LOB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::write
  • OCI-Lob::import


Alias de OCI-Lob::import

  • « OCI-Lob::save
  • OCI-Lob::seek »
  • PHP Manual
  • OCI-Lob
  • Alias de OCI-Lob::import

OCI-Lob::saveFile

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::saveFile — Alias de OCI-Lob::import()

Description

Cette fonction est un alias de : OCI-Lob::import().


Déplace le pointeur interne d'un LOB Oracle

  • « OCI-Lob::saveFile
  • OCI-Lob::setBuffering »
  • PHP Manual
  • OCI-Lob
  • Déplace le pointeur interne d'un LOB Oracle

OCI-Lob::seek

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::seek — Déplace le pointeur interne d'un LOB Oracle

Description

bool OCI-Lob::seek ( int $offset [, int $whence = OCI_SEEK_SET ] )

Déplace le pointeur interne d'un LOB Oracle.

Liste de paramètres

offset

Indique la distance de déplacement. Le type de déplacement est spécifié avec whence.

whence

Peut être une constante parmi :

  • OCI_SEEK_SET - déplace le pointeur à la position offset.
  • OCI_SEEK_CUR - ajoute offset octets à la position courante.
  • OCI_SEEK_END - ajoute offset octets à la fin du LOB (utilisez une valeur négative pour obtenir une position avant la fin du LOB).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::rewind
  • OCI-Lob::tell
  • OCI-Lob::eof


Active/désactive la bufferisation des LOB Oracle

  • « OCI-Lob::seek
  • OCI-Lob::size »
  • PHP Manual
  • OCI-Lob
  • Active/désactive la bufferisation des LOB Oracle

OCI-Lob::setBuffering

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::setBuffering — Active/désactive la bufferisation des LOB Oracle

Description

bool OCI-Lob::setBuffering ( bool $on_off )

Active ou désactive la bufferisation des LOB Oracle, en fonction du paramètre on_off.

Utiliser cette fonction apporte des améliorations de performances par bufferisation des petites lectures et écritures de LOB : le buffer limite les allers/retours avec le serveur. OCI-Lob::flush() doit être utilisé pour vider les buffers une fois que vous avez fini de travailler avec le LOB.

Liste de paramètres

on_off

TRUE pour l'activer, et FALSE pour le désactiver.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Des appels répétés à lob->setbuffering() avec la même valeur de paramètre renverra toujours TRUE.

Voir aussi

  • OCI-Lob::getBuffering


Retourne la taille d'un LOB Oracle

  • « OCI-Lob::setBuffering
  • OCI-Lob::tell »
  • PHP Manual
  • OCI-Lob
  • Retourne la taille d'un LOB Oracle

OCI-Lob::size

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::size — Retourne la taille d'un LOB Oracle

Description

int OCI-Lob::size ( void )

Retourne la taille d'un LOB Oracle.

Valeurs de retour

Retourne la taille du LOB ou FALSE si une erreur survient. Les objets vides ont une taille de 0.


Retourne la position courante du pointeur de LOB

  • « OCI-Lob::size
  • OCI-Lob::truncate »
  • PHP Manual
  • OCI-Lob
  • Retourne la position courante du pointeur de LOB

OCI-Lob::tell

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::tell — Retourne la position courante du pointeur de LOB

Description

int OCI-Lob::tell ( void )

Retourne la position courante du pointeur de LOB.

Valeurs de retour

Retourne la position courante du pointeur interne du LOB, ou bien FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::rewind
  • OCI-Lob::size
  • OCI-Lob::eof


Tronque un LOB Oracle

  • « OCI-Lob::tell
  • OCI-Lob::write »
  • PHP Manual
  • OCI-Lob
  • Tronque un LOB Oracle

OCI-Lob::truncate

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::truncate — Tronque un LOB Oracle

Description

bool OCI-Lob::truncate ([ int $length = 0 ] )

Tronque un LOB Oracle.

Liste de paramètres

length

Si length est fourni, OCI-Lob->truncate() tronque le LOB à length octets. Sinon, OCI-Lob->truncate() va purger complètement le LOB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::erase


Écrit des données dans un LOB Oracle

  • « OCI-Lob::truncate
  • OCI-Lob::writeTemporary »
  • PHP Manual
  • OCI-Lob
  • Écrit des données dans un LOB Oracle

OCI-Lob::write

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::write — Écrit des données dans un LOB Oracle

Description

int OCI-Lob::write ( string $data [, int $length ] )

Écrit les données de la variable data à la position courante du LOB.

Liste de paramètres

data

Les données à écrire dans le LOB.

length

Si ce paramètre est fourni, l'écriture s'arrêtera après length octets, ou à la fin de la variable data.

Valeurs de retour

Retourne le nombre d'octets écrits ou FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::read


Écrit un LOB Oracle temporaire

  • « OCI-Lob::write
  • OCI-Lob::writeToFile »
  • PHP Manual
  • OCI-Lob
  • Écrit un LOB Oracle temporaire

OCI-Lob::writeTemporary

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::writeTemporary — Écrit un LOB Oracle temporaire

Description

bool OCI-Lob::writeTemporary ( string $data [, int $lob_type = OCI_TEMP_CLOB ] )

Crée un LOB temporaire et y écrit les données data.

Il faut utiliser la fonction OCI-Lob::close lorsque vous avez fini de travailler avec le LOB.

Liste de paramètres

data

Les données à écrire.

lob_type

Peut prendre l'une des valeurs suivantes :

  • OCI_TEMP_BLOB sert à créer un BLOB temporaire.
  • OCI_TEMP_CLOB sert à créer un CLOB temporaire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OCI-Lob::close


Alias de OCI-Lob::export

  • « OCI-Lob::writeTemporary
  • Fonctions et alias OCI8 obsolètes »
  • PHP Manual
  • OCI-Lob
  • Alias de OCI-Lob::export

OCI-Lob::writeToFile

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::writeToFile — Alias de OCI-Lob::export()

Description

Cette fonction est un alias de : OCI-Lob::export().


Fonctions et alias OCI8 obsolètes

Sommaire

  • ocibindbyname — Alias de oci_bind_by_name
  • ocicancel — Alias de oci_cancel
  • ocicloselob — Alias de OCI-Lob::close
  • ocicollappend — Alias de OCI-Collection::append
  • ocicollassign — Alias de OCI-Collection::assign
  • ocicollassignelem — Alias de OCI-Collection::assignElem
  • ocicollgetelem — Alias de OCI-Collection::getElem
  • ocicollmax — Alias de OCI-Collection::max
  • ocicollsize — Alias de OCI-Collection::size
  • ocicolltrim — Alias de OCI-Collection::trim
  • ocicolumnisnull — Alias de oci_field_is_null
  • ocicolumnname — Alias de oci_field_name
  • ocicolumnprecision — Alias de oci_field_precision
  • ocicolumnscale — Alias de oci_field_scale
  • ocicolumnsize — Alias de oci_field_size
  • ocicolumntype — Alias de oci_field_type
  • ocicolumntyperaw — Alias de oci_field_type_raw
  • ocicommit — Alias de oci_commit
  • ocidefinebyname — Alias de oci_define_by_name
  • ocierror — Alias de oci_error
  • ociexecute — Alias de oci_execute
  • ocifetch — Alias de oci_fetch
  • ocifetchinto — Variante obsolète de la fonction oci_fetch_array, oci_fetch_object, oci_fetch_assoc and oci_fetch_row
  • ocifetchstatement — Alias de oci_fetch_all
  • ocifreecollection — Alias de OCI-Collection::free
  • ocifreecursor — Alias de oci_free_statement
  • ocifreedesc — Alias de OCI-Lob::free
  • ocifreestatement — Alias de oci_free_statement
  • ociinternaldebug — Alias de oci_internal_debug
  • ociloadlob — Alias de OCI-Lob::load
  • ocilogoff — Alias de oci_close
  • ocilogon — Alias de oci_connect
  • ocinewcollection — Alias de oci_new_collection
  • ocinewcursor — Alias de oci_new_cursor
  • ocinewdescriptor — Alias de oci_new_descriptor
  • ocinlogon — Alias de oci_new_connect
  • ocinumcols — Alias de oci_num_fields
  • ociparse — Alias de oci_parse
  • ociplogon — Alias de oci_pconnect
  • ociresult — Alias de oci_result
  • ocirollback — Alias de oci_rollback
  • ocirowcount — Alias de oci_num_rows
  • ocisavelob — Alias de OCI-Lob::save
  • ocisavelobfile — Alias de OCI-Lob::import
  • ociserverversion — Alias de oci_server_version
  • ocisetprefetch — Alias de oci_set_prefetch
  • ocistatementtype — Alias de oci_statement_type
  • ociwritelobtofile — Alias de OCI-Lob::export
  • ociwritetemporarylob — Alias de OCI-Lob::writeTemporary


Alias de oci_bind_by_name

  • « Fonctions et alias OCI8 obsolètes
  • ocicancel »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_bind_by_name

ocibindbyname

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocibindbyname — Alias de oci_bind_by_name()

Description

Alias de oci_bind_by_name()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_cancel

  • « ocibindbyname
  • ocicloselob »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_cancel

ocicancel

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicancel — Alias de oci_cancel()

Description

Alias de oci_cancel()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Lob::close

  • « ocicancel
  • ocicollappend »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Lob::close

ocicloselob

(PHP 4 >= 4.0.6, PECL OCI8 1.0)

ocicloselob — Alias de OCI-Lob::close()

Description

Alias de OCI-Lob::close()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Collection::append

  • « ocicloselob
  • ocicollassign »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Collection::append

ocicollappend

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollappend — Alias de OCI-Collection::append()

Description

Alias de OCI-Collection::append()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Collection::assign

  • « ocicollappend
  • ocicollassignelem »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Collection::assign

ocicollassign

(PHP 4 >= 4.0.6, PECL OCI8 1.0)

ocicollassign — Alias de OCI-Collection::assign()

Description

Alias de OCI-Collection::assign()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Collection::assignElem

  • « ocicollassign
  • ocicollgetelem »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Collection::assignElem

ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollassignelem — Alias de OCI-Collection::assignElem()

Description

Alias de OCI-Collection::assignElem()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Collection::getElem

  • « ocicollassignelem
  • ocicollmax »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Collection::getElem

ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollgetelem — Alias de OCI-Collection::getElem()

Description

Alias de OCI-Collection::getElem()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Collection::max

  • « ocicollgetelem
  • ocicollsize »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Collection::max

ocicollmax

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollmax — Alias de OCI-Collection::max()

Description

Alias de OCI-Collection::max()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Collection::size

  • « ocicollmax
  • ocicolltrim »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Collection::size

ocicollsize

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollsize — Alias de OCI-Collection::size()

Description

Alias de OCI-Collection::size()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Collection::trim

  • « ocicollsize
  • ocicolumnisnull »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Collection::trim

ocicolltrim

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolltrim — Alias de OCI-Collection::trim()

Description

Alias de OCI-Collection::trim()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_field_is_null

  • « ocicolltrim
  • ocicolumnname »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_field_is_null

ocicolumnisnull

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnisnull — Alias de oci_field_is_null()

Description

Alias de oci_field_is_null()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_field_name

  • « ocicolumnisnull
  • ocicolumnprecision »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_field_name

ocicolumnname

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnname — Alias de oci_field_name()

Description

Alias de oci_field_name()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_field_precision

  • « ocicolumnname
  • ocicolumnscale »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_field_precision

ocicolumnprecision

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnprecision — Alias de oci_field_precision()

Description

Alias de oci_field_precision()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_field_scale

  • « ocicolumnprecision
  • ocicolumnsize »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_field_scale

ocicolumnscale

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnscale — Alias de oci_field_scale()

Description

Alias de oci_field_scale()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_field_size

  • « ocicolumnscale
  • ocicolumntype »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_field_size

ocicolumnsize

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnsize — Alias de oci_field_size()

Description

Alias de oci_field_size()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_field_type

  • « ocicolumnsize
  • ocicolumntyperaw »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_field_type

ocicolumntype

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumntype — Alias de oci_field_type()

Description

Alias de oci_field_type()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_field_type_raw

  • « ocicolumntype
  • ocicommit »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_field_type_raw

ocicolumntyperaw

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumntyperaw — Alias de oci_field_type_raw()

Description

Alias de oci_field_type_raw()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_commit

  • « ocicolumntyperaw
  • ocidefinebyname »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_commit

ocicommit

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicommit — Alias de oci_commit()

Description

Alias de oci_commit()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_define_by_name

  • « ocicommit
  • ocierror »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_define_by_name

ocidefinebyname

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocidefinebyname — Alias de oci_define_by_name()

Description

Alias de oci_define_by_name()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_error

  • « ocidefinebyname
  • ociexecute »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_error

ocierror

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocierror — Alias de oci_error()

Description

Alias de oci_error()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_execute

  • « ocierror
  • ocifetch »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_execute

ociexecute

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociexecute — Alias de oci_execute()

Description

Alias de oci_execute()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_fetch

  • « ociexecute
  • ocifetchinto »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_fetch

ocifetch

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifetch — Alias de oci_fetch()

Description

Alias de oci_fetch()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Variante obsolète de la fonction oci_fetch_array, oci_fetch_object, oci_fetch_assoc and oci_fetch_row

  • « ocifetch
  • ocifetchstatement »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Variante obsolète de la fonction oci_fetch_array, oci_fetch_object, oci_fetch_assoc and oci_fetch_row

ocifetchinto

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifetchinto — Variante obsolète de la fonction oci_fetch_array(), oci_fetch_object(), oci_fetch_assoc() and oci_fetch_row()

Description

Variante obsolète de oci_fetch_array(),
   oci_fetch_object(),
  oci_fetch_assoc() et
  oci_fetch_row()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_fetch_all

  • « ocifetchinto
  • ocifreecollection »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_fetch_all

ocifetchstatement

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifetchstatement — Alias de oci_fetch_all()

Description

Alias de oci_fetch_all()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Collection::free

  • « ocifetchstatement
  • ocifreecursor »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Collection::free

ocifreecollection

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifreecollection — Alias de OCI-Collection::free()

Description

Alias de OCI-Collection::free()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_free_statement

  • « ocifreecollection
  • ocifreedesc »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_free_statement

ocifreecursor

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifreecursor — Alias de oci_free_statement()

Description

Alias de oci_free_statement()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Lob::free

  • « ocifreecursor
  • ocifreestatement »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Lob::free

ocifreedesc

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifreedesc — Alias de OCI-Lob::free()

Description

Alias de OCI-Lob::free()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_free_statement

  • « ocifreedesc
  • ociinternaldebug »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_free_statement

ocifreestatement

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifreestatement — Alias de oci_free_statement()

Description

Alias de oci_free_statement()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_internal_debug

  • « ocifreestatement
  • ociloadlob »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_internal_debug

ociinternaldebug

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociinternaldebug — Alias de oci_internal_debug()

Description

Alias de oci_internal_debug()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Lob::load

  • « ociinternaldebug
  • ocilogoff »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Lob::load

ociloadlob

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociloadlob — Alias de OCI-Lob::load()

Description

Alias de OCI-Lob::load()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_close

  • « ociloadlob
  • ocilogon »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_close

ocilogoff

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocilogoff — Alias de oci_close()

Description

Alias de oci_close()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_connect

  • « ocilogoff
  • ocinewcollection »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_connect

ocilogon

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocilogon — Alias de oci_connect()

Description

Alias de oci_connect()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_new_collection

  • « ocilogon
  • ocinewcursor »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_new_collection

ocinewcollection

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinewcollection — Alias de oci_new_collection()

Description

Alias de oci_new_collection()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_new_cursor

  • « ocinewcollection
  • ocinewdescriptor »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_new_cursor

ocinewcursor

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinewcursor — Alias de oci_new_cursor()

Description

Alias de oci_new_cursor()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_new_descriptor

  • « ocinewcursor
  • ocinlogon »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_new_descriptor

ocinewdescriptor

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinewdescriptor — Alias de oci_new_descriptor()

Description

Alias de oci_new_descriptor()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_new_connect

  • « ocinewdescriptor
  • ocinumcols »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_new_connect

ocinlogon

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinlogon — Alias de oci_new_connect()

Description

Alias de oci_new_connect()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_num_fields

  • « ocinlogon
  • ociparse »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_num_fields

ocinumcols

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinumcols — Alias de oci_num_fields()

Description

Alias de oci_num_fields()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_parse

  • « ocinumcols
  • ociplogon »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_parse

ociparse

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociparse — Alias de oci_parse()

Description

Alias de oci_parse()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_pconnect

  • « ociparse
  • ociresult »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_pconnect

ociplogon

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociplogon — Alias de oci_pconnect()

Description

Alias de oci_pconnect()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_result

  • « ociplogon
  • ocirollback »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_result

ociresult

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociresult — Alias de oci_result()

Description

Alias de oci_result()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_rollback

  • « ociresult
  • ocirowcount »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_rollback

ocirollback

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocirollback — Alias de oci_rollback()

Description

Alias de oci_rollback()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_num_rows

  • « ocirollback
  • ocisavelob »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_num_rows

ocirowcount

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocirowcount — Alias de oci_num_rows()

Description

Alias de oci_num_rows()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Lob::save

  • « ocirowcount
  • ocisavelobfile »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Lob::save

ocisavelob

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocisavelob — Alias de OCI-Lob::save()

Description

Alias de OCI-Lob::save()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Lob::import

  • « ocisavelob
  • ociserverversion »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Lob::import

ocisavelobfile

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocisavelobfile — Alias de OCI-Lob::import()

Description

Alias de OCI-Lob::import()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_server_version

  • « ocisavelobfile
  • ocisetprefetch »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_server_version

ociserverversion

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociserverversion — Alias de oci_server_version()

Description

Alias de oci_server_version()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_set_prefetch

  • « ociserverversion
  • ocistatementtype »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_set_prefetch

ocisetprefetch

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocisetprefetch — Alias de oci_set_prefetch()

Description

Alias de oci_set_prefetch()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de oci_statement_type

  • « ocisetprefetch
  • ociwritelobtofile »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_statement_type

ocistatementtype

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocistatementtype — Alias de oci_statement_type()

Description

Alias de oci_statement_type()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Lob::export

  • « ocistatementtype
  • ociwritetemporarylob »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Lob::export

ociwritelobtofile

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociwritelobtofile — Alias de OCI-Lob::export()

Description

Alias de OCI-Lob::export()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Alias de OCI-Lob::writeTemporary

  • « ociwritelobtofile
  • Paradox »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCI-Lob::writeTemporary

ociwritetemporarylob

(PHP 4 >= 4.0.6, PECL OCI8 1.0)

ociwritetemporarylob — Alias de OCI-Lob::writeTemporary()

Description

Alias de OCI-Lob::writeTemporary()

Avertissement

Cet alias est devenu obsolète depuis PHP 5.4.0. Son utilisation est fortement déconseillée.


Paradox

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Paradox
    • px_close — Ferme une base de données Paradox
    • px_create_fp — Crée une nouvelle base de données Paradox
    • px_date2string — Convertit une date en une chaîne de caractères
    • px_delete_record — Efface une enregistrement depuis une base de données Paradox
    • px_delete — Efface la ressource d'une base de données Paradox
    • px_get_field — Retourne les spécifications d'un champ
    • px_get_info — Retourne des informations sur un fichier Paradox
    • px_get_parameter — Récupère un paramètre
    • px_get_record — Retourne un enregistrement d'une base de données Paradox
    • px_get_schema — Retourne le schéma de la base de données
    • px_get_value — Récupère une valeur
    • px_insert_record — Insère un enregistrement dans une base de données Paradox
    • px_new — Crée un nouvel objet Paradox
    • px_numfields — Retourne le nombre de champs d'une base de données Paradox
    • px_numrecords — Retourne le nombre d'enregistrements d'une base de données Paradox
    • px_open_fp — Ouvre une base de données Paradox
    • px_put_record — Stocke un enregistrement dans une base de données Paradox
    • px_retrieve_record — Retourne un enregistrement depuis une base de données Paradox
    • px_set_blob_file — Définit le fichier depuis lequel les blobs seront lus
    • px_set_parameter — Définit un paramètre
    • px_set_tablename — Définit le nom de la table (obsolète)
    • px_set_targetencoding — Définit l'encodage pour les caractères des champs (obsolète)
    • px_set_value — Définit une valeur
    • px_timestamp2string — Convertit un timestamp en une chaîne de caractères
    • px_update_record — Met à jour les enregistrements dans une base de données Paradox


Introduction

Ce module vous permet de lire des bases de données Paradox ainsi que des fichiers d'index primaires et des fichiers Blob. Il peut également créer des bases de données Paradox mais dû au manque de documentation sur le format des fichiers Paradox, il se peut que les bases créées ne soient pas lisibles avec toutes les autres applications. Les bases de données cryptées peuvent être lues sans pour autant spécifier de mot de passe si pxlib >= 0.5.0 est utilisé.

Note:

Ce module est toujours en cours de développement et peut changer, même si l'API ne sera sûrement pas modifié en profondeur.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.


Pré-requis

Vous devez avoir au minimum PHP 5.0.0 et libpx >= 0.4.4 pour la plupart des fonctions. Quelques nouvelles fonctions ne sont disponibles que si pxlib >= 0.6.0 est utilisé. L'écriture et la lecture des bases de données cryptées nécessitent pxlib >= 0.5.0. La bibliothèque Paradox (libpx) est disponible sur » http://pxlib.sourceforge.net.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/paradox

Assurez-vous d'avoir installé pxlib avant. Si vous avez installé pxlib via rpm ou via un paquet Debian, n'oubliez pas d'installer également le paquet de développement.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

px_new() crée un nouvel objet Paradox, nécessaire à toutes les fonctions Paradox.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les deux tables suivantes listent toutes les constantes définies par l'extension Paradox.

Constantes pour les types de champs
Nom | Signification
PX_FIELD_ALPHA | Données sous forme de caractères avec une longueur fixe
PX_FIELD_DATE | Date, nombre de jours depuis le 1.1.0000
PX_FIELD_SHORT | Entier court (2 octets)
PX_FIELD_LONG | Entier long (4 octets)
PX_FIELD_CURRENCY | Identique à PX_FIELD_NUMBER
PX_FIELD_NUMBER | Double
PX_FIELD_LOGICAL | Booléen
PX_FIELD_MEMOBLOB | Objet binaire large
PX_FIELD_BLOB | Objet binaire large (non supporté)
PX_FIELD_FMTMEMOBLOB | Objet binaire large
PX_FIELD_OLE | Objet OLE (en fait un blob, non supporté)
PX_FIELD_GRAPHIC | Graphique (en fait, un BLOB, non supporté)
PX_FIELD_TIME | heure, nombre de millisecondes depuis le 1.1.0000
PX_FIELD_TIMESTAMP | timestamp, nombre de millisecondes depuis le 1.1.0000
PX_FIELD_AUTOINC | Entier auto-incrémenté (comme PX_FIELD_LONG)
PX_FIELD_BCD | Nombre décimal stocké en format bcd (non supporté)
PX_FIELD_BYTES | Tableau d'octets d'une longueur maximale de 255 octets (non supporté)
PX_KEYTOLOWER | Convertit tous les noms de champs en minuscule
PX_KEYTOUPPER | Convertit tous les noms de champs en majuscule
Constantes pour les types de fichiers
Nom | Signification
PX_FILE_INDEX_DB | Base de données indexée
PX_FILE_PRIM_INDEX | Index primaire
PX_FILE_NON_INDEX_DB | Base de données non indexée
PX_FILE_NON_INC_SEC_INDEX | Non-indexé incrémentalement secondaire
PX_FILE_SEC_INDEX | Index secondaire
PX_FILE_INC_SEC_INDEX | Index secondaire incrémental
PX_FILE_NON_INC_SEC_INDEX_G | Index secondaire non-incrémental
PX_FILE_SEC_INDEX_G | Index secondaire
PX_FILE_INC_SEC_INDEX_G | Index secondaire non-incrémental


Fonctions Paradox

API orientée objet

L'extension Paradox fournit également une API orientée objet. Elle consiste en une seule classe nommée paradox_db. Ses méthodes diffèrent uniquement des fonctions par leurs noms et, bien sûr, le premier paramètre. La table suivante liste toutes les méthodes avec les fonctions équivalentes.

Méthodes pour class paradox_db
Nom de la méthode | Fonction équivalente
Constructeur | px_new()
Destructeur | px_delete()
open_fp() | px_open_fp()
create_fp() | px_create_fp()
close() | px_close()
numrecords() | px_numrecords()
numfields() | px_numfields()
get_record() | px_get_record()
put_record() | px_put_record()
retrieve_record() | px_retrieve_record()
delete_record() | px_delete_record()
insert_record() | px_insert_record()
update_record() | px_update_record()
get_field() | px_get_field()
get_schema() | px_get_schema()
get_info() | px_get_info()
set_parameter() | px_set_parameter()
get_parameter() | px_get_parameter()
set_value() | px_set_value()
get_value() | px_get_value()
get_info() | px_get_info()
set_targetencoding() | px_set_targetencoding()
set_tablename() | px_set_tablename()
set_blob_file() | px_set_blob_file()
date2string() | px_date2string()
timestamp2string() | px_timestamp2string()

Sommaire

  • px_close — Ferme une base de données Paradox
  • px_create_fp — Crée une nouvelle base de données Paradox
  • px_date2string — Convertit une date en une chaîne de caractères
  • px_delete_record — Efface une enregistrement depuis une base de données Paradox
  • px_delete — Efface la ressource d'une base de données Paradox
  • px_get_field — Retourne les spécifications d'un champ
  • px_get_info — Retourne des informations sur un fichier Paradox
  • px_get_parameter — Récupère un paramètre
  • px_get_record — Retourne un enregistrement d'une base de données Paradox
  • px_get_schema — Retourne le schéma de la base de données
  • px_get_value — Récupère une valeur
  • px_insert_record — Insère un enregistrement dans une base de données Paradox
  • px_new — Crée un nouvel objet Paradox
  • px_numfields — Retourne le nombre de champs d'une base de données Paradox
  • px_numrecords — Retourne le nombre d'enregistrements d'une base de données Paradox
  • px_open_fp — Ouvre une base de données Paradox
  • px_put_record — Stocke un enregistrement dans une base de données Paradox
  • px_retrieve_record — Retourne un enregistrement depuis une base de données Paradox
  • px_set_blob_file — Définit le fichier depuis lequel les blobs seront lus
  • px_set_parameter — Définit un paramètre
  • px_set_tablename — Définit le nom de la table (obsolète)
  • px_set_targetencoding — Définit l'encodage pour les caractères des champs (obsolète)
  • px_set_value — Définit une valeur
  • px_timestamp2string — Convertit un timestamp en une chaîne de caractères
  • px_update_record — Met à jour les enregistrements dans une base de données Paradox


Ferme une base de données Paradox

  • « Fonctions Paradox
  • px_create_fp »
  • PHP Manual
  • Fonctions Paradox
  • Ferme une base de données Paradox

px_close

(PECL paradox >= 1.0.0)

px_close — Ferme une base de données Paradox

Description

bool px_close ( resource $pxdoc )

Ferme une base de données Paradox. Cette fonction ne ferme pas le fichier. Vous devez ensuite appeler la fonction fclose().

Liste de paramètres

pxdoc

Ressource identifiant la base de données Paradox telle que retournée par la fonction px_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • px_open_fp() - Ouvre une base de données Paradox
  • L'exemple de la fonction px_new() - Crée un nouvel objet Paradox


Crée une nouvelle base de données Paradox

  • « px_close
  • px_date2string »
  • PHP Manual
  • Fonctions Paradox
  • Crée une nouvelle base de données Paradox

px_create_fp

(PECL paradox >= 1.0.0)

px_create_fp — Crée une nouvelle base de données Paradox

Description

bool px_create_fp ( resource $pxdoc , resource $file , array $fielddesc )

Crée un nouveau fichier de base de données Paradox. Le fichier actuel doit avoir été ouvert avec la fonction fopen(). Assurez-vous que ce fichier est accessible en écriture.

Note:

L'appel à cette fonction émet une alerte à propos d'un nom de table vide qui peut être ignorée en toute sécurité. Définissez juste le nom de la table en suivant avec la fonction px_set_parameter().

Note:

Cette fonction est hautement expérimentale, à cause du manque de documentation du format de fichier Paradox. Les fichiers de base de données créés avec cette fonction peuvent être ouvert avec la fonction px_open_fp() et devraient s'ouvrir sans problème avec les logiciels Paradox.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

file

Ressource de fichier telle que retournée par la fonction fopen().

fielddesc

fielddesc est un tableau comprenant un élément pour chaque champ contenant ses spécifications. Une spécification de champ est un tableau avec deux ou trois éléments. Le premier élément est toujours une chaîne de caractères représentant le nom du champ. Il ne peut être plus grand que dix caractères. Le deuxième élément contient le type du champ qui peut être une des constantes listées dans la table "Constantes pour les types de champ". Dans le cas d'un champ sous la forme de caractères ou de bcd, vous devez fournir un troisième élément spécifiant la longueur du champ. Si votre spécification de champ contient des champs Blob, vous devez vous assurer de rendre le champ assez grand pour toutes les valeurs des champs ou bien spécifier un fichier Blob avec la fonction px_blob_file() pour y stocker les Blobs. Si vous ne faîtes pas cela, les données du champ seront tronquées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'une base de données Paradox avec deux champs

<?php
if(!$pxdoc = px_new()) {
  /* Gestion d'erreurs */
}
$fp = fopen("test.db", "w+");
$fields = array(array("col1", "S"), array("col2", "I"));
if(!px_create_fp($pxdoc, $fp, $fields)) {
  /* Gestion d'erreurs */
}
px_set_parameter($pxdoc, "tablename", "testtable");
for($i=-50; $i<50; $i++) {
  $rec = array($i, -$i);
  px_put_record($pxdoc, $rec);
}
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

Voir aussi

  • px_new() - Crée un nouvel objet Paradox
  • px_put_record() - Stocke un enregistrement dans une base de données Paradox
  • fopen() - Ouvre un fichier ou une URL


Convertit une date en une chaîne de caractères

  • « px_create_fp
  • px_delete_record »
  • PHP Manual
  • Fonctions Paradox
  • Convertit une date en une chaîne de caractères

px_date2string

(PECL paradox >= 1.4.0)

px_date2string — Convertit une date en une chaîne de caractères

Description

string px_date2string ( resource $pxdoc , int $value , string $format )

Convertit une date stockée dans un fichier Paradox en un format humainement lisible. Les dates Paradox représentent le nombre de jours depuis le 1.1.0000. Cette fonction existe que pour une convenance technique. Elle peut être facilement remplacée par des fonctions mathématiques et relatives aux calendriers tel que montré dans l'exemple ci-dessous.

Liste de paramètres

pxdoc

Identifiant de ressource de la base de données Paradox tel que retourné par la fonction px_new().

value

Valeur comme stockée dans le champ de la base de données Paradox d'un type PX_FIELD_DATE.

format

Format similaire au format utilisé par la fonction date(). Les caractères spéciaux supportés par cette fonction est une partie de ceux utilisés par la fonction date() (Y, y, m, n, d, j, L).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Convertit une date Paradox en un format humainement lisible

<?php
$px = px_new();

/* définition d'une date telle qu'elle peut être stockée dans */
/* un champ date dans une base de données Paradox. */
/* 700000 jours depuis le 1.1.0000. */
$days = 700000;

/* Utilisation des fonctions de calendriers pour afficher */
/* la date en un format humainement lisible */
echo jdtogregorian($days+1721425)."\n";
/* px_date2string() affiche la même chose */
echo px_date2string($px, $days, "n/d/Y")."\n";

px_delete($px);
?>

L'exemple ci-dessus va afficher :

7/15/1917
7/15/1917

Voir aussi

  • px_timestamp2string() - Convertit un timestamp en une chaîne de caractères
  • jdtogregorian() - Convertit le nombre de jours du calendrier Julien en date grégorienne


Efface une enregistrement depuis une base de données Paradox

  • « px_date2string
  • px_delete »
  • PHP Manual
  • Fonctions Paradox
  • Efface une enregistrement depuis une base de données Paradox

px_delete_record

(PECL paradox >= 1.4.0)

px_delete_record — Efface une enregistrement depuis une base de données Paradox

Description

bool px_delete_record ( resource $pxdoc , int $num )

px_delete_record() efface un enregistrement dans une base de données Paradox. Elle ne libère pas l'espace dans la base de données, mais le marque comme effacé. L'insertion d'un nouvel enregistrement écrasera cet espace.

Note:

Cette fonction est uniquement disponible si pxlib >= 0.6.0 est utilisé.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

num

Le numéro de l'enregistrement est un numéro artificiel comptant les enregistrements dans l'ordre dans les lesquels ils sont stockés en base de données. Le premier enregistrement a le numéro 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Efface la ressource d'une base de données Paradox

  • « px_delete_record
  • px_get_field »
  • PHP Manual
  • Fonctions Paradox
  • Efface la ressource d'une base de données Paradox

px_delete

(PECL paradox >= 1.0.0)

px_delete — Efface la ressource d'une base de données Paradox

Description

bool px_delete ( resource $pxdoc )

Efface la ressource d'une base de données Paradox et libère toute la mémoire.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne les spécifications d'un champ

  • « px_delete
  • px_get_info »
  • PHP Manual
  • Fonctions Paradox
  • Retourne les spécifications d'un champ

px_get_field

(PECL paradox >= 1.0.0)

px_get_field — Retourne les spécifications d'un champ

Description

array px_get_field ( resource $pxdoc , int $fieldno )

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

fieldno

Numéro du champ. Le premier champ a le numéro 0. Spécifier un numéro de champ inférieur à 0 ou plus grand ou égal au nombre de champs lancera une erreur.

Valeurs de retour

Retourne les spécifications du champ numéro fieldno de la base de données en tant que tableau associatif. Le tableau contient trois éléments nommés name, type et size.


Retourne des informations sur un fichier Paradox

  • « px_get_field
  • px_get_parameter »
  • PHP Manual
  • Fonctions Paradox
  • Retourne des informations sur un fichier Paradox

px_get_info

(PECL paradox >= 1.0.0)

px_get_info — Retourne des informations sur un fichier Paradox

Description

array px_get_info ( resource $pxdoc )

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

Valeurs de retour

Retourne un tableau associatif contenant des informations sur un fichier Paradox. Ce tableau est appelé à évoluer dans le futur.

fileversion

Version du fichier, multiplié par 10, e.g. 70.

tablename

Nom de la table stocké dans le fichier. Si la base de données a été créée par pxlib, alors ce sera la même chose que le nom du fichier sans l'extension.

numrecords

Nombre d'enregistrements dans cette table.

numfields

Nombre de champs dans cette table.

headersize

Nombre d'octets utilisés pour l'en-tête. Vaut habituellement 0x800.

recordsize

Nombre d'octets utilisés par chaque enregistrement. C'est la somme de la taille de tous les champs (disponible depuis la version 1.4.2).

maxtablesize

Cette valeur, multipliée par 0x400, est la taille du bloc de données en octets. Le nombre maximal d'enregistrements dans un bloc de données est un entier de l'intervalle (maxtablesize * 0x400 - 8) / taille de l'enregistrements.

numdatablocks

Le nombre de blocs de données dans le fichier. Chaque bloc de données contient un certain nombre d'enregistrements qui dépend de la taille de l'enregistrement et de la taille du bloc de données (maxtablesize). Les blocs de données ne doivent pas nécessairement être complètement remplis.

numindexfields

Nombre de champs utilisés pour l'index primaire. Le champ commence toujours au numéro 1.

codepage

La page de code DOS qui sera utilisé pour encoder les champs contenant des données sous forme de caractères. Si la cible d'encodage n'est pas définie avec la fonction px_set_targetencoding(), ceci sera l'encodage pour les champs sous forme de caractères lorsque les enregistrements seront récupérés avec la fonction px_get_record() ou px_retrieve_record().

Voir aussi

  • px_numfields() - Retourne le nombre de champs d'une base de données Paradox
  • px_numrecords() - Retourne le nombre d'enregistrements d'une base de données Paradox


Récupère un paramètre

  • « px_get_info
  • px_get_record »
  • PHP Manual
  • Fonctions Paradox
  • Récupère un paramètre

px_get_parameter

(PECL paradox >= 1.1.0)

px_get_parameter — Récupère un paramètre

Description

string px_get_parameter ( resource $pxdoc , string $name )

Récupère divers paramètres.

Liste de paramètres

pxdoc

Identifiant de ressource de la base de données Paradox tel que retourné par la fonction px_new().

name

Le nom name peut être un parmi la liste suivante :

tablename

Le nom de la table comme stocké dans l'en-tête de la base de données.

targetencoding

L'encodage pour la sortie. Les données qui seront lues depuis le champ de caractères avec la fonction px_get_record() ou la fonction px_retrieve_record() seront réencodées en utilisant l'encodage de sortie. S'il n'est pas défini, alors les données seront transmises tel que stockées dans la base de données.

inputencoding

L'encodage pour les données d'entrées qui seront stockées dans la base de données. Lors du stockage de données dans un champ de type chaîne de caractères, les données sont attendues dans cette encodage.

Valeurs de retour

Retourne la valeur du paramètre ou FALSE si une erreur survient.


Retourne un enregistrement d'une base de données Paradox

  • « px_get_parameter
  • px_get_schema »
  • PHP Manual
  • Fonctions Paradox
  • Retourne un enregistrement d'une base de données Paradox

px_get_record

(PECL paradox >= 1.0.0)

px_get_record — Retourne un enregistrement d'une base de données Paradox

Description

array px_get_record ( resource $pxdoc , int $num [, int $mode = 0 ] )

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

num

Le numéro de l'enregistrement est un numéro artificiel comptant les enregistrements dans le même ordre que celui de la base de données. Le premier enregistrement a le numéro 0.

mode

Le paramètre optionnel mode peut être PX_KEYTOLOWER ou PX_KEYTOUPPER pour convertir les clés du tableau retourné, en minuscule ou majuscule. Si mode n'est pas spécifié ou vaut 0, alors les clés seront exactement pareil que les noms des champs. Les valeurs des éléments seront les valeurs des champs. Les valeurs NULL seront maintenues et seront différentes de 0.0, 0 ou chaîne vide. Le type de champ PX_FIELD_TIME sera retourné en tant qu'entier contenant le nombre de millisecondes depuis minuit. Les timestamp (PX_FIELD_TIMESTAMP) et les dates (PX_FIELD_DATE) sont des entiers représentants respectivement les millisecondes et les jours depuis le début du calendrier Julien. Utilisez les fonctions px-timestamp2string() et px-date2string() pour les convertir en un format lisible.

Valeurs de retour

Retourne le numéro de l'enregistrement num depuis la base de données Paradox. L'enregistrement est retourné sous la forme d'un tableau associatif dont les clés représentent les noms de champs.

Voir aussi

  • px_retrieve_record() - Retourne un enregistrement depuis une base de données Paradox


Retourne le schéma de la base de données

  • « px_get_record
  • px_get_value »
  • PHP Manual
  • Fonctions Paradox
  • Retourne le schéma de la base de données

px_get_schema

(PECL paradox >= 1.0.0)

px_get_schema — Retourne le schéma de la base de données

Description

array px_get_schema ( resource $pxdoc [, int $mode = 0 ] )

px_get_schema() retourne le schéma de la base de données.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

mode

Si le paramètre optionnel mode vaut PX_KEYTOLOWER ou PX_KEYTOUPPER, les clés du tableau retourné seront converties en minuscule ou en majuscule. Si mode n'est pas fourni ou s'il vaut 0, alors le nom de la clé sera identique au nom du champ.

Valeurs de retour

Retourne le schéma du fichier de base de données en tant que tableau associatif. Le nom de la clé sera le nom du champ. Chaque élément du tableau est lui-même un tableau associatif contenant deux champs : type et size. type est une des constantes listées dans la table "Les constants pour les types de champs". size est le nombre d'octets que ce champ représente dans l'enregistrement. Le total de toutes les tailles des champs est égal à la taille de l'enregistrement tel qu'elle peut être récupérée avec la fonction px-get-info().


Récupère une valeur

  • « px_get_schema
  • px_insert_record »
  • PHP Manual
  • Fonctions Paradox
  • Récupère une valeur

px_get_value

(PECL paradox >= 1.1.0)

px_get_value — Récupère une valeur

Description

float px_get_value ( resource $pxdoc , string $name )

Récupère diverses valeurs.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

name

name peut être un parmi les suivants :

numprimkeys

Le nombre de clés primaires. Les bases de données Paradox utilisent toujours les champs numprimkeys pour les index primaires.

Valeurs de retour

Retourne la valeur du paramètre ou FALSE si une erreur survient.


Insère un enregistrement dans une base de données Paradox

  • « px_get_value
  • px_new »
  • PHP Manual
  • Fonctions Paradox
  • Insère un enregistrement dans une base de données Paradox

px_insert_record

(PECL paradox >= 1.4.0)

px_insert_record — Insère un enregistrement dans une base de données Paradox

Description

int px_insert_record ( resource $pxdoc , array $data )

Insère un nouvel enregistrement dans une base de données. L'enregistrement n'est pas nécessairement inséré à la fin de la base de données mais peut être inséré à n'importe quelle position libre trouvée.

Les données à enregistrer sont passées via un tableau de valeurs. Les éléments du tableau doivent correspondre aux champs de la base de données. Si le tableau a moins d'éléments que de champs dans la base de données, les champs restants seront définis à NULL.

La plupart des valeurs des champs peut être passée en tant que leurs équivalents PHP, e.g. une valeur longue est utilisée pour les champs de type PX_FIELD_LONG, PX_FIELD_SHORT et PX_FIELD_AUTOINC, une valeur double est utilisée pour les champs de type PX_FIELD_CURRENCY et PX_FIELD_NUMBER. Les valeurs de champs Blob et alpha sont passées en tant que chaînes de caractères.

Les champs de type PX_FIELD_TIME et PX_FIELD_DATE nécessitent une valeur longue. Dans le premier cas, ce sera le nombre de millisecondes depuis minuit. Dans le second cas, ce sera le nombre de jours depuis le 1.1.0000. Ci-dessous, deux exemples pour convertir la date courante ou le timestamp en une valeur compréhensible par les champs Paradox date/heure.

Note:

Cette fonction est uniquement disponible si pxlib >= 0.6.0 est utilisé..

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

data

Un tableau associatif ou indexé contenant les valeurs des champs comme retournées par la fonction px_retrieve_record().

Valeurs de retour

Retourne le numéro de l'enregistrement inséré ou FALSE en cas d'erreur.

Exemples

Exemple #1 Définit les champs date/heure dans une base de données Paradox à la date/heure courant

<?php
$px = px_new();
$fp = fopen("test.db", "w+");
px_create_fp($px, $fp, array(array("timestamp", "@"), array("time", "T"), array("date", "D")));

$curdate = getdate();
$jd = gregoriantojd($curdate["mon"], $curdate["mday"], $curdate["year"]);
$days = $jd - 1721425; /* Number of days between 1.1.4714 b.c. and 1.1.0000 */
$secs = $curdate["hours"]*3600 + $curdate["minutes"]*60 + $curdate["seconds"];
px_insert_record($px, array($days*86400000.0 + $secs*1000.0, $secs*1000.0, $days));

$curtimestamp = microtime(true);
$days = (int) ($curtimestamp/86400);
$secs = $curtimestamp - ($days * 86400.0);
$days += 2440588; /* Number of days between 1.1.4714 b.c. and 1.1.1970 */
$days -= 1721425; /* Number of days between 1.1.4714 b.c. and 1.1.0000 */
px_insert_record($px, array($days*86400000.0 + $secs*1000.0, $secs*1000.0, $days));
for($i=0; $i<2; $i++) {
   $rec = px_retrieve_record($px, $i);
   echo px_timestamp2string($px, $rec["timestamp"], "n/d/Y H:i:s")."\n";
   echo px_date2string($px, $rec["date"], "n/d/Y")."\n";
}
px_close($px);
px_delete($px);
?>

L'exemple ci-dessus va afficher :

2/21/2006 21:42:30
2/21/2006
2/21/2006 20:42:30
2/21/2006

Le nombre de jours Julien tel que passé à la fonction jdtogregorian() a une base différente de 1.1.4714 b.c. et doit être calculé en ajoutant 1721425 au nombre de jours utilisé dans le fichier Paradox. Le fait de convertir le nombre de jours en timestamp est facile ; il suffit de multiplier ce nombre par 86400000.0 pour obtenir des millisecondes.

Voir aussi

px_update_record() - Met à jour les enregistrements dans une base de données Paradox


Crée un nouvel objet Paradox

  • « px_insert_record
  • px_numfields »
  • PHP Manual
  • Fonctions Paradox
  • Crée un nouvel objet Paradox

px_new

(PECL paradox >= 1.0.0)

px_new — Crée un nouvel objet Paradox

Description

resource px_new ( void )

Crée un nouvel objet Paradox. Vous devez appeler cette fonction avant toute autre fonction. px_new() ne crée aucun fichier sur le disque, il crée juste une instance d'un objet Paradox. Cette fonction doit être appelée si l'interface orientée objet est utilisée. Utilisez new paradox_db() à la place.

Valeurs de retour

Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Ouverture d'une base de données Paradox

<?php
if(!$pxdoc = px_new()) {
  /* Gestionnaire d'erreurs */
}
$fp = fopen("test.db", "r");
if(!px_open_fp($pxdoc, $fp)) {
  /* Gestionnaire d'erreurs */
}
// ...
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

Si vous préférez l'API orientée objet, alors, l'exemple précédent ressemblera à ceci :

Exemple #2 Ouverture d'une base de données Paradox

<?php
$fp = fopen("test.db", "r");
$pxdoc = new paradox_db();
if(!$pxdoc->open_fp($fp)) {
  /*  Gestionnaire d'erreurs */
}
// ...
$pxdoc->close();
fclose($fp);
?>

Voir aussi

  • px_delete() - Efface la ressource d'une base de données Paradox
  • px_open_fp() - Ouvre une base de données Paradox


Retourne le nombre de champs d'une base de données Paradox

  • « px_new
  • px_numrecords »
  • PHP Manual
  • Fonctions Paradox
  • Retourne le nombre de champs d'une base de données Paradox

px_numfields

(PECL paradox >= 1.0.0)

px_numfields — Retourne le nombre de champs d'une base de données Paradox

Description

int px_numfields ( resource $pxdoc )

Récupère le nombre de champs dans un fichier de base de données Paradox.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

Valeurs de retour

Retourne le nombre de champs d'un fichier de base de données Paradox. La valeur retournée par cette fonction est identique à la valeur de l'élément numfields du tableau associatif retourné par la fonction px_get_info().


Retourne le nombre d'enregistrements d'une base de données Paradox

  • « px_numfields
  • px_open_fp »
  • PHP Manual
  • Fonctions Paradox
  • Retourne le nombre d'enregistrements d'une base de données Paradox

px_numrecords

(PECL paradox >= 1.0.0)

px_numrecords — Retourne le nombre d'enregistrements d'une base de données Paradox

Description

int px_numrecords ( resource $pxdoc )

Retourne le nombre d'enregistrements d'un fichier de base de données Paradox.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

Valeurs de retour

Retourne le nombre d'enregistrements d'un fichier de base de données Paradox. La valeur retournée par cette fonction est identique à la valeur de l'élément numrecords du tableau retourné par la fonction px_get_info().


Ouvre une base de données Paradox

  • « px_numrecords
  • px_put_record »
  • PHP Manual
  • Fonctions Paradox
  • Ouvre une base de données Paradox

px_open_fp

(PECL paradox >= 1.0.0)

px_open_fp — Ouvre une base de données Paradox

Description

bool px_open_fp ( resource $pxdoc , resource $file )

Ouvre un fichier de base de données Paradox existant. Le fichier actuel doit avoir été ouvert avant par la fonction fopen(). Cette fonction peut également être utilisée pour ouvrir les fichiers d'index primaires et les traiter comme des bases de données Paradox. Ceci est supporté pour ceux qui veulent investisseur un index primaire. Il ne peut être utilisé pour accélérer l'accès à un fichier de base de données.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

file

file est la valeur retournée par la fonction fopen() avec le fichier de base de données actuelle en tant que paramètre. Assurez-vous que la base de données est accessible en écriture si vous devez mettre à jour des enregistrements ou en insérer de nouveaux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • L'exemple de la fonction px_new() - Crée un nouvel objet Paradox


Stocke un enregistrement dans une base de données Paradox

  • « px_open_fp
  • px_retrieve_record »
  • PHP Manual
  • Fonctions Paradox
  • Stocke un enregistrement dans une base de données Paradox

px_put_record

(PECL paradox >= 1.0.0)

px_put_record — Stocke un enregistrement dans une base de données Paradox

Description

bool px_put_record ( resource $pxdoc , array $record [, int $recpos = -1 ] )

Stocke un enregistrement dans une base de données Paradox. L'enregistrement sera toujours ajouté à la fin de la base de données, indépendamment des slots libres. Utilisez la fonction px_insert_record() pour ajouter un nouvel enregistrement dans le premier slot libre trouvé dans la base de données.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

record

Tableau associatif ou indexé contenant les valeurs des champs tel que retourné par la fonction px_retrieve_record().

recpos

Ce paramètre optionnel peut être utilisé pour spécifier un nombre d'enregistrements supérieurs au nombre d'enregistrements actuellement en base de données. La fonction ajoutera autant d'enregistrements vides que nécessaires. Ce paramètre est inutile dans la plupart des cas.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne un enregistrement depuis une base de données Paradox

  • « px_put_record
  • px_set_blob_file »
  • PHP Manual
  • Fonctions Paradox
  • Retourne un enregistrement depuis une base de données Paradox

px_retrieve_record

(PECL paradox >= 1.4.0)

px_retrieve_record — Retourne un enregistrement depuis une base de données Paradox

Description

array px_retrieve_record ( resource $pxdoc , int $num [, int $mode = 0 ] )

Cette fonction est très similaire à la fonction px_get_record() mais utilise en interne une approche différente pour récupérer les données. Elle utilise pxlib pour lire la valeur de chaque champ, permettant ainsi le support de plus de types de champs.

Note:

Cette fonction est uniquement disponible si pxlib >= 0.6.0 est utilisé.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox comme retourné par la fonction px_new().

num

Le numéro de l'enregistrement est un numéro artificiel comptant les enregistrements dans l'ordre dans les lesquels ils sont stockés en base de données. Le premier enregistrement a le numéro 0.

mode

Le paramètre optionnel mode peut être PX_KEYTOLOWER ou PX_KEYTOUPPER afin de convertir les clés en majuscules ou en minuscules. Si mode n'est pas fournie ou vaut 0, alors la clé sera exactement le nom du champ. Les valeurs des éléments contiendront les valeurs des champs. les valeurs NULL seront retenues et sont différentes de 0.0, 0 ou une chaîne vide. Les champs de type PX_FIELD_TIME seront retournés en tant qu'entiers représentant le nombre de secondes depuis minuit. Un timestamp est une valeur flottante comptant également les millisecondes depuis le début du calendrier julien.

Valeurs de retour

Retourne l'enregistrement numéro num depuis une base de données Paradox. L'enregistrement est retourné en tant que tableau associatif dont les clés sont les noms des champs.

Voir aussi

  • px_get_record() - Retourne un enregistrement d'une base de données Paradox


Définit le fichier depuis lequel les blobs seront lus

  • « px_retrieve_record
  • px_set_parameter »
  • PHP Manual
  • Fonctions Paradox
  • Définit le fichier depuis lequel les blobs seront lus

px_set_blob_file

(PECL paradox >= 1.3.0)

px_set_blob_file — Définit le fichier depuis lequel les blobs seront lus

Description

bool px_set_blob_file ( resource $pxdoc , string $filename )

Définit le nom du fichier depuis lequel les blobs seront lus. Sans l'appel à cette fonction, px_get_record() ou px_retrieve_record() retournera uniquement les données des champs blob si les données sont des parties des enregistrements et ne sont pas stockées dans un fichier blob. Les données blob sont stockées dans un enregistrement si elles sont suffisamment petites pour correspondre à la taille du champ blob.

L'appel aux fonctions px_put_record(),
px_insert_record() ou
px_update_record() sans appeler la fonction
px_set_blob_file() fera que les champs Blobs seront
tronqués à moins que les données rentrent juste dans le fichier de base de données.

Deux appels à cette fonction fermera le premier fichier blob et ouvrira le nouveau.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

filename

Le nom du fichier. Son extension doit être .MB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Définit un paramètre

  • « px_set_blob_file
  • px_set_tablename »
  • PHP Manual
  • Fonctions Paradox
  • Définit un paramètre

px_set_parameter

(PECL paradox >= 1.1.0)

px_set_parameter — Définit un paramètre

Description

bool px_set_parameter ( resource $pxdoc , string $name , string $value )

Définit divers paramètres.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

name

Suivant le paramètre que vous voulez définir, name peut prendre une des valeurs suivantes :

tablename

Le nom de la table comme il est stocké dans l'en-tête de la base de données.

targetencoding

L'encodage pour la sortie. Les données lues depuis les champs seront encodées avec ce paramètre.

inputencoding

L'encodage des données d'entrées qui seront stockées dans la base de données.

value

La valeur du paramètre à définir. Pour l'encodage de l'entrée et l'encodage de la sortie, cette valeur doit être le nom de l'encodage tel que reconnu par iconv ou recode, e.g. iso-8859-1, utf-8, cp850.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • px_get_info() - Retourne des informations sur un fichier Paradox pour déterminer le code de page DOS.


Définit le nom de la table (obsolète)

  • « px_set_parameter
  • px_set_targetencoding »
  • PHP Manual
  • Fonctions Paradox
  • Définit le nom de la table (obsolète)

px_set_tablename

(PECL paradox >= 1.0.0)

px_set_tablename — Définit le nom de la table (obsolète)

Description

void px_set_tablename ( resource $pxdoc , string $name )

Définit le nom de la table d'une base de données Paradox, qui a été créé avec la fonction px_create_fp(). Cette fonction est obsolète, utilisez la fonction px_set_parameter() à la place.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

tablename

Le nom de la table. Si elle n'est pas nommée explicitement, le nom de la table correspondra au nom du fichier de base de données.

Valeurs de retour

Retourne NULL en cas de succès ou FALSE si une erreur survient.

Voir aussi

px_set_parameter() - Définit un paramètre


Définit l'encodage pour les caractères des champs (obsolète)

  • « px_set_tablename
  • px_set_value »
  • PHP Manual
  • Fonctions Paradox
  • Définit l'encodage pour les caractères des champs (obsolète)

px_set_targetencoding

(PECL paradox >= 1.0.0)

px_set_targetencoding — Définit l'encodage pour les caractères des champs (obsolète)

Description

bool px_set_targetencoding ( resource $pxdoc , string $encoding )

Définit l'encodage pour les données récupérées depuis les champs. Tous les caractères des champs seront réencodés par cette fonction. Si l'encodage n'est pas défini, les caractères des données seront retournés en utilisant l'encodage de page DOS comme spécifié dans la base de données. Le paramètre encoding peut être n'importe quel identifiant connu par iconv ou recode. Sous les systèmes Unix, exécutez la commande iconv -l pour obtenir une liste des encodages disponibles.

Cette fonction est obsolète et devrait être remplacée par la fonction px_set_parameter().

Voir aussi la fonction px_get_info() pour déterminer le code page DOS tel que stocké dans le fichier de base de données.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

encoding

L'encodage pour la sortie. Les données lues depuis des champs caractères seront encodées avec cet encodage.

Valeurs de retour

Retourne FALSE si l'encodage n'a pû être définie, e.g. l'encodage est inconnu ou pxlib ne supporte pas du tout le réencodage. Dans le deuxième cas, une alerte sera émise.

Voir aussi

px_set_parameter() - Définit un paramètre


Définit une valeur

  • « px_set_targetencoding
  • px_timestamp2string »
  • PHP Manual
  • Fonctions Paradox
  • Définit une valeur

px_set_value

(PECL paradox >= 1.1.0)

px_set_value — Définit une valeur

Description

bool px_set_value ( resource $pxdoc , string $name , float $value )

Définit diverses valeurs.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données comme retourné par la fonction px_new().

name

name peut être un des suivants :

numprimkeys

Le nombre de clés primaires. Les bases de données Paradox utilisent toujours le premier champ numprimkeys pour l'index primaire.

value

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

px_set_parameter() - Définit un paramètre


Convertit un timestamp en une chaîne de caractères

  • « px_set_value
  • px_update_record »
  • PHP Manual
  • Fonctions Paradox
  • Convertit un timestamp en une chaîne de caractères

px_timestamp2string

(PECL paradox >= 1.4.0)

px_timestamp2string — Convertit un timestamp en une chaîne de caractères

Description

string px_timestamp2string ( resource $pxdoc , float $value , string $format )

Convertit un timestamp tel que stocké dans un fichier Paradox en un format humainement lisible. Les timestamps Paradox sont le nombre de millisecondes depuis le 0001-01-02. Cette fonction peut facilement être remplacée par des fonctions mathématiques et de calendriers tel qu'utilisées dans l'exemple ci-dessous.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données.

value

Valeur comme stockée dans un champ de base de données Paradox de type PX_FIELD_TIME ou PX_FIELD_TIMESTAMP.

format

Format similaire au format utilisé par la fonction date(). Les caractères spéciaux supportés par cette fonction sont une partie de ceux supportés par la fonction date() (Y, y, m, n, d, j, H, h, G, g, i, s, A, a, L).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Convertit un timestamp Paradox en un format humainement lisible

<?php
$px = px_new();

/* assignement d'une date telle qu'elle peut être stockée dans */
/* un champ date d'une base de données Paradox. */
/* 700000 jours depuis le 1.1.0000. */
$days = 700000;

/* Utilisation des fonctions de calendriers pour afficher */
/* un format humainement lisible de la date */
echo jdtogregorian($days+1721425)."\n";

/* Convertit en un timestamp tel que stocké dans une base de données Paradox */
/* Timestamps sont stockés en millisecondes depuis le 0001-01-02 */
$stamp = $days * 86400.0 * 1000.0;
/* Ajout d'une heure */
$stamp += 3600000.0;
/* Affichera : '7/15/1917 01:00:00'. */
echo px_timestamp2string($px, $stamp, "n/d/Y H:i:s")."\n";

px_delete($px);
?>

L'exemple ci-dessus va afficher :

7/15/1917
7/15/1917 01:00:00

Le nombre de jours Julien tel que passé à la fonction jdtogregorian() a une base différente de 1.1.4714 b.c. et doit être calculé en ajoutant 1721425 au nombre de jours utilisé dans le fichier Paradox. Le fait de convertir un nombre de jours en un timestamp est facile ; il suffit de le multiplier par 86400000.0 pour obtenir des millisecondes.

Voir aussi

  • px_date2string() - Convertit une date en une chaîne de caractères
  • jdtogregorian() - Convertit le nombre de jours du calendrier Julien en date grégorienne


Met à jour les enregistrements dans une base de données Paradox

  • « px_timestamp2string
  • PostgreSQL »
  • PHP Manual
  • Fonctions Paradox
  • Met à jour les enregistrements dans une base de données Paradox

px_update_record

(PECL paradox >= 1.4.0)

px_update_record — Met à jour les enregistrements dans une base de données Paradox

Description

bool px_update_record ( resource $pxdoc , array $data , int $num )

Cette fonction met à jour un enregistrement dans la base de données. L'enregistrement commence à 0.

Les données de l'enregistrement sont passées en tant que tableau de valeurs. Les éléments du tableau doivent correspondre aux champs de la base de données. Si le tableau a moins d'éléments que la base de données n'a de champs, les champs restants seront définis à NULL.

Note:

Cette fonction est uniquement disponible si pxlib >= 0.6.0 est utilisé.

Liste de paramètres

pxdoc

Identifiant de ressource de la base de données Paradox comme retourné par la fonction px_new().

data

Tableau associatif contenant les valeurs des champs comme retournées par la fonction px_retrieve_record().

num

Le numéro de l'enregistrement est un numéro artificiel comptant les enregistrements dans l'ordre dans les lesquels ils sont stockés en base de données. Le premier enregistrement a le numéro 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

px_insert_record() - Insère un enregistrement dans une base de données Paradox


PostgreSQL

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
  • Fonctions PostgreSQL
    • pg_affected_rows — Retourne le nombre de lignes affectées
    • pg_cancel_query — Annule une requête asynchrone
    • pg_client_encoding — Lit l'encodage du client
    • pg_close — Termine une connexion PostgreSQL
    • pg_connect_poll — Test le statut d'une tentative de connexion asynchrone PostgreSQL en cours
    • pg_connect — Établit une connexion PostgreSQL
    • pg_connection_busy — Vérifie si la connexion PostgreSQL est occupée
    • pg_connection_reset — Relance la connexion au serveur PostgreSQL
    • pg_connection_status — Lit le statut de la connexion PostgreSQL
    • pg_consume_input — Lit l'entrée de la connexion
    • pg_convert — Convertit des tableaux associatifs en une commande PostgreSQL
    • pg_copy_from — Insère des lignes dans une table à partir d'un tableau
    • pg_copy_to — Copie une table dans un tableau
    • pg_dbname — Retourne le nom de la base de données PostgreSQL
    • pg_delete — Efface des lignes PostgreSQL
    • pg_end_copy — Synchronise avec le serveur PostgreSQL
    • pg_escape_bytea — Protège une chaîne pour insertion dans un champ bytea
    • pg_escape_identifier — Protège un identifiant pour l'insertion dans un champ texte.
    • pg_escape_literal — Protège une requête SQL littérale à insérer dans un champ texte
    • pg_escape_string — Protège une chaîne de caractères pour une requête SQL
    • pg_execute — Exécute une requête préparée PostGreSQL
    • pg_fetch_all_columns — Récupère toutes les lignes d'une colonne de résultats particulière en tant que tableau
    • pg_fetch_all — Lit toutes les lignes d'un résultat
    • pg_fetch_array — Lit une ligne de résultat PostgreSQL dans un tableau
    • pg_fetch_assoc — Lit une ligne de résultat PostgreSQL sous forme de tableau associatif
    • pg_fetch_object — Lit une ligne de résultat PostgreSQL dans un objet
    • pg_fetch_result — Retourne les valeurs d'un résultat
    • pg_fetch_row — Lit une ligne dans un tableau
    • pg_field_is_null — Teste si un champ PostgreSQL est à NULL
    • pg_field_name — Retourne le nom d'un champ PostgreSQL
    • pg_field_num — Retourne le numéro d'une colonne
    • pg_field_prtlen — Retourne la taille imprimée
    • pg_field_size — Retourne la taille interne de stockage d'un champ donné
    • pg_field_table — Retourne le nom ou l'oid d'une table
    • pg_field_type_oid — Retourne le type ID (OID) pour le numéro du champ correspondant
    • pg_field_type — Retourne le type d'un champ PostgreSQL donné par index
    • pg_flush — Envoi les données de requête sortante sur la connexion
    • pg_free_result — Libère la mémoire
    • pg_get_notify — Lit le message SQL NOTIFY
    • pg_get_pid — Lit l'identifiant de processus du serveur PostgreSQL
    • pg_get_result — Lit un résultat PostgreSQL asynchrone
    • pg_host — Retourne le nom d'hôte
    • pg_insert — Insère un tableau dans une table
    • pg_last_error — Lit le dernier message d'erreur sur la connexion
    • pg_last_notice — Retourne la dernière note du serveur PostgreSQL
    • pg_last_oid — Retourne l'identifiant de la dernière ligne
    • pg_lo_close — Ferme un objet de grande taille PostgreSQL
    • pg_lo_create — Crée un objet de grande taille PostgreSQL
    • pg_lo_export — Exporte un objet de grande taille vers un fichier
    • pg_lo_import — Importe un objet de grande taille depuis un fichier
    • pg_lo_open — Ouvre un objet de grande taille PostgreSQL
    • pg_lo_read_all — Lit un objet de grande taille en totalité
    • pg_lo_read — Lit un objet de grande taille
    • pg_lo_seek — Modifie la position dans un objet de grande taille
    • pg_lo_tell — Retourne la position courante dans un objet de grande taille PostgreSQL
    • pg_lo_truncate — Tronque un objet large
    • pg_lo_unlink — Efface un objet de grande taille PostgreSQL
    • pg_lo_write — Écrit un objet de grande taille PostgreSQL
    • pg_meta_data — Lit les métadonnées de la table PostgreSQL
    • pg_num_fields — Retourne le nombre de champ
    • pg_num_rows — Retourne le nombre de lignes PostgreSQL
    • pg_options — Retourne les options PostgreSQL
    • pg_parameter_status — Consulte un paramètre de configuration courant du serveur
    • pg_pconnect — Établit une connexion PostgreSQL persistante
    • pg_ping — Ping la connexion à la base
    • pg_port — Retourne le numéro de port
    • pg_prepare — Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution
    • pg_put_line — Envoie une chaîne au serveur PostgreSQL
    • pg_query_params — Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL
    • pg_query — Exécute une requête PostgreSQL
    • pg_result_error_field — Retourne un champ individuel d'un rapport d'erreur
    • pg_result_error — Lit le message d'erreur associé à un résultat
    • pg_result_seek — Modifie la ligne courant dans un résultat
    • pg_result_status — Lit le statut du résultat
    • pg_select — Effectue une sélection PostgreSQL
    • pg_send_execute — Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)
    • pg_send_prepare — Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution
    • pg_send_query_params — Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s)
    • pg_send_query — Exécute une requête PostgreSQL asynchrone
    • pg_set_client_encoding — Choisit l'encodage du client PostgreSQL
    • pg_set_error_verbosity — Détermine la le degré des messages retournés par pg_last_error et pg_result_error
    • pg_socket — Récupère un gestionnaire de lecture seul sur le socket sous-jacent d'une connexion PostgreSQL
    • pg_trace — Active le suivi d'une connexion PostgreSQL
    • pg_transaction_status — Retourne le statut de la transaction en cours du serveur
    • pg_tty — Retourne le nom de TTY associé à la connexion
    • pg_unescape_bytea — Supprime la protection d'une chaîne de type bytea
    • pg_untrace — Termine le suivi d'une connexion PostgreSQL
    • pg_update — Modifie les lignes d'une table
    • pg_version — Retourne un tableau avec les versions du client, du protocole et du serveur (si disponible)


Introduction

La base de données PostgreSQL est un produit Open Source, disponible sans frais. PostgreSQL, développé au département de Science informatique, à UC Berkeley, met en place la majorité des concepts des bases relationnelles actuellement disponibles sur le marché. PostgreSQL accepte le langage SQL92/SQL3, assure l'intégrité transactionnelle et l'extension de type. PostgreSQL est une évolution du code original de Berkeley.


Pré-requis

Pour accéder au support PostgreSQL, vous avez besoin de PostgreSQL 6.5 ou plus récent ; PostgreSQL 7.0 ou plus récent pour activer toutes les fonctionnalités du module PostgreSQL. PostgreSQL supporte de nombreux jeux de caractères, y compris les jeux multioctets asiatiques. La version courante et plus de détails sur PostgreSQL sont accessibles sur le site » http://www.postgresql.org/ et la » Documentation PostgreSQL.


Installation

Afin d'activer le support PostgreSQL, l'option --with-pgsql[=DIR] est nécessaire lors de la compilation de PHP. DIR est le chemin du dossier d'installation de PostgreSQL, et par défaut il vaut /usr/local/pgsql. Si le module de chargement dynamique est disponible, le module PostgreSQL peut être chargé avec la directive extension du fichier php.ini ou via la fonction dl().


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration PostGreSQL
Nom | Défaut | Modifiable | Historique
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM |
pgsql.max_links | "-1" | PHP_INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.2.0.
pgsql.ignore_notice | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
pgsql.log_notice | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

pgsql.allow_persistent booléen

Autorise ou non les connexions persistantes Postgre.

pgsql.max_persistent entier

Le nombre maximum de connexions persistantes Postgre par processus.

pgsql.max_links entier

Le nombre maximum de connexions Postgre par processus, y compris les connexions persistantes.

pgsql.auto_reset_persistent entier

Détecte les connexions persistantes (ouvertes avec pg_pconnect()) rompues.

pgsql.ignore_notice entier

Active ou non l'affichage des notices PostgreSQL.

pgsql.log_notice entier

Active ou non l'enregistrement en fichier log des messages notices PostgreSQL. La directive PHP pgsql.ignore_notice doit être désactivée pour pouvoir enregistrer les messages de notices en fichier log.


Types de ressources

Il y a deux types de ressource utilisé dans le module PostgreSQL. La première est l'identifiant pour la connexion à la base de données et le second est une ressource qui contient le résultat d'une requête.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

PGSQL_LIBPQ_VERSION (string)
Version courte de libpq qui ne contient que des nombres et des points.
PGSQL_LIBPQ_VERSION_STR (string)
Version longue de libpq qui inclue les informations du compilateur.
PGSQL_ASSOC (entier)
Passée à pg_fetch_array(). Retourne un tableau associatif des noms et valeurs des champs.
PGSQL_NUM (entier)
Passée à pg_fetch_array(). Retourne un tableau à index numérique des numéros et valeurs des champs.
PGSQL_BOTH (entier)
Passée à pg_fetch_array(). Retourne un tableau des valeurs des champs qui est indexés numériquement (par le numéro des champs) et indexés littéralement (par le nom des champs).
PGSQL_CONNECT_FORCE_NEW (entier)
Passée à pg_connect() pour forcer la création d'une nouvelle connexion, plutôt que de réutiliser une connexion identique existante.
PGSQL_CONNECT_ASYNC (integer)
Passé à la fonction pg_connect() pour créer une connexion asynchrone. Ajouté en PHP 5.6.0.
PGSQL_CONNECTION_BAD (entier)
Retournée par pg_connection_status() indiquant que la connexion à la base de données est invalide.
PGSQL_CONNECTION_OK (entier)
Retournée par pg_connection_status() indiquant que la connexion à la base de données est valide.
PGSQL_SEEK_SET (entier)
Passée à pg_lo_seek(). Le positionnement commencera au début de l'objet.
PGSQL_SEEK_CUR (entier)
Passée à pg_lo_seek(). Le positionnement commencera à la position courante.
PGSQL_SEEK_END (entier)
Passée à pg_lo_seek(). Le positionnement commencera à la fin de l'objet.
PGSQL_EMPTY_QUERY (entier)
Retournée par pg_result_status(). La chaîne de caractères envoyée au serveur était vide.
PGSQL_COMMAND_OK (entier)
Retournée par pg_result_status(). Commande correctement complétée ne retournant aucune donnée.
PGSQL_TUPLES_OK (entier)
Retournée par pg_result_status(). Commande correctement complétée retournant des données (comme SELECT ou SHOW).
PGSQL_COPY_OUT (entier)
Retournée par pg_result_status(). Copie (à partir du serveur) de transfert de données commencée.
PGSQL_COPY_IN (entier)
Retournée par pg_result_status(). Copie (vers le serveur) de transfert de données commencée.
PGSQL_BAD_RESPONSE (entier)
Retournée par pg_result_status(). La réponse du serveur n'a pas été comprise.
PGSQL_NONFATAL_ERROR (entier)
Retournée par pg_result_status(). Une erreur non fatale (de niveau notice ou warning) s'est produite.
PGSQL_FATAL_ERROR (entier)
Retournée par pg_result_status(). Une erreur fatale s'est produite.
PGSQL_TRANSACTION_IDLE (entier)
Retournée par pg_transaction_Status(). La connexion est actuellement libre, aucune transaction en cours.
PGSQL_TRANSACTION_ACTIVE (entier)
Retournée par pg_transaction_status(). Une commande est en cours sur la connexion. Une requête a été envoyée sur la connexion et n'a toujours pas été complétée.
PGSQL_TRANSACTION_INTRANS (entier)
Retournée par pg_transaction_status(). La connexion est libre, dans un bloc de transaction.
PGSQL_TRANSACTION_INERROR (entier)
Retournée par pg_transaction_status(). La connexion est libre, dans un bloc de transaction échoué.
PGSQL_TRANSACTION_UNKNOWN (entier)
Retournée par pg_transaction_status(). La connexion est mauvaise.
PGSQL_DIAG_SEVERITY (entier)
Passée à pg_result_error_field(). La sévérité; le contenu du champ est ERROR, FATAL ou PANIC (dans un message d'erreur) ou WARNING, NOTICE, DEBUG, INFO ou LOG (dans un message d'avertissement) ou une traduction localisée parmi celles-ci. Toujours présent.
PGSQL_DIAG_SQLSTATE (entier)
Passée à pg_result_error_field(). Le code SQLSTATE pour cette erreur. Le code SQLSTATE identifie le type d'erreur qui s'est produite; cela peut être utilisé par des applications d'entrée pour effectuer des opérations spécifiques (comme la gestion d'erreur) en réponse à une erreur de base de données particulière. Ce champ ne peut être localisé et est toujours présent.
PGSQL_DIAG_MESSAGE_PRIMARY (entier)
Passée à pg_result_error_field(). Le champ d'erreur primaire interprétable pour l'utilisateur (normalement une ligne). Toujours présent.
PGSQL_DIAG_MESSAGE_DETAIL (entier)
Passée à pg_result_error_field(). Détail : un second optionnel message d'erreur apportant plus de détails à propos du problème. Peut être sur plusieurs lignes.
PGSQL_DIAG_MESSAGE_HINT (entier)
Passée à pg_result_error_field(). Conseil : une suggestion optionnelle qui indique que faire à propos du problème. Ceci est prévu d'être différent de l'erreur puisqu'elle offre un conseil (potentiellement inadéquat) plutôt que les faits véridiques. Peut être sur plusieurs lignes.
PGSQL_DIAG_STATEMENT_POSITION (entier)
Passée à pg_result_error_field(). Une chaîne de caractères contenant une valeur entière décimale indiquant une erreur de position du curseur en tant qu'index dans la requête originale. Le premier caractère a l'index 1 et les positions sont mesurées en caractères, non en octets.
PGSQL_DIAG_INTERNAL_POSITION (entier)
Passée à pg_result_error_field(). Ceci est défini étant la même chose que le champ PG_DIAG_STATEMENT_POSITION, mais cela est utilisé lorsque la position du curseur réfère à une commande générée internement plutôt que d'une envoyée par le client. Le champ PG_DIAG_INTERNAL_QUERY apparaîtra toujours lorsque ce champ apparaît.
PGSQL_DIAG_INTERNAL_QUERY (entier)
Passée à pg_result_error_field(). Le texte d'une commande générée internement échouée. Cela peut être, par exemple, une requête SQL envoyée par une fonction PL/pgSQL.
PGSQL_DIAG_CONTEXT (entier)
Passée à pg_result_error_field(). Une indication du contexte dans lequel l'erreur s'est produit. Présentement, ceci inclut une pile d'appel des traceback des fonctions procédurales actives ainsi que des requête générées à l'interne. Le traçage est une entrée par ligne, les plus récentes en premier.
PGSQL_DIAG_SOURCE_FILE (entier)
Passée à pg_result_error_field(). Le nom du fichier de l'emplacement du code source PostgreSQL où l'erreur a été reportée.
PGSQL_DIAG_SOURCE_LINE (entier)
Passée à pg_result_error_field(). Le nombre de ligne de l'emplacement du code source PostgreSQL où l'erreur a été reportée.
PGSQL_DIAG_SOURCE_FUNCTION (entier)
Passée à pg_result_error_field(). Le nom de la fonction de source code PostgreSQL reportant l'erreur.
PGSQL_ERRORS_TERSE (entier)
Passée à pg_set_error_verbosity(). Spécifie que les messages retournés incluent la sévérité, le texte primaire ainsi que la position seulement; ceci devrait entrer sur une seule ligne.
PGSQL_ERRORS_DEFAULT (entier)
Passée à pg_set_error_verbosity(). Le mode par défaut produit des messages qui incluent ce qui est plus haut et des détails en plus, conseil ou des champs contextes (ceci peut être sur plusieurs lignes).
PGSQL_ERRORS_VERBOSE (entier)
Passée à pg_set_error_verbosity(). Le mode verbeux inclut tous les champs disponibles.
PGSQL_STATUS_LONG (entier)
Passée à pg_result_status(). Indique que le code résultat est désiré numérique.
PGSQL_STATUS_STRING (entier)
Passée à pg_result_status(). Indique que le tag de résultat de commande est désiré textuel.
PGSQL_CONV_IGNORE_DEFAULT (entier)
Passée à pg_convert(). Ignore les valeurs par défaut dans la table pendant la conversion.
PGSQL_CONV_FORCE_NULL (entier)
Passée à pg_convert(). Utilise NULL à la place d'une chaîne de caractères vide.
PGSQL_CONV_IGNORE_NOT_NULL (entier)
Passée à pg_convert(). Ignore la conversion de NULL à l'intérieur des colonnes NOT NULL.
PGSQL_DML_NO_CONV (integer)
Passée aux fonctions pg_insert(), pg_select(), pg_update() et pg_delete(). Tous les paramètres passés tel que. Un échappement manuel est nécessaire si les paramètres contiennent des données fournies par l'utilisateur. Utilisez la fonction pg_escape_string() pour cela.
PGSQL_DML_EXEC (integer)
Passée aux fonction pg_insert(), pg_select(), pg_update() et pg_delete(). Exécution de la requête par ces fonctions.
PGSQL_DML_ASYNC (integer)
Passée aux fonctions pg_insert(), pg_select(), pg_update() et pg_delete(). Exécution asynchrone de la requête par ces fonctions.
PGSQL_DML_STRING (integer)
Passée aux fonctions pg_insert(), pg_select(), pg_update() et pg_delete(). Retourne la chaîne de requête exécutée.
PGSQL_DML_ESCAPE (integer)
Passée aux fonctions pg_insert(), pg_select(), pg_update() et pg_delete(). Applique un échappement interne à tous les paramètres plutôt que d'appeler la fonction pg_convert(). Cette option ne gère pas les méta-données. La requête doit être aussi rapide qu'avec les fonctions pg_query() et pg_send_query().
PGSQL_POLLING_FAILED (integer)
Retournée par la fonction pg_connect_poll() pour indiquer que la tentative de connexion a échoué.
PGSQL_POLLING_READING (integer)
Retournée par la fonction pg_connect_poll() pour indiquer que la connexion attend que le socket PostgreSQL ne soit accessible en lecture.
PGSQL_POLLING_WRITING (integer)
Retournée par la fonction pg_connect_poll() pour indiquer que la connexion attend que le socket PostgreSQL ne soit accessible en écriture.
PGSQL_POLLING_OK (integer)
Retournée par la fonction pg_connect_poll() pour indiquer que la connexion est prête à être utilisée.
PGSQL_POLLING_ACTIVE (integer)
Retournée par la fonction pg_connect_poll() pour indiquer que la connexion est actuellement active.


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • PostgreSQL
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Ce simple exemple montre comment se connecter, exécuter une requête et afficher les lignes résultantes et se déconnecter d'une base de données PostgreSQL.

Exemple #1 Exemple général de l'extension PostgreSQL

<?php
// Connexion, sélection de la base de données
$dbconn = pg_connect("host=localhost dbname=publishing user=www password=foo")
    or die('Connexion impossible : ' . pg_last_error());

// Exécution de la requête SQL
$query = 'SELECT * FROM authors';
$result = pg_query($query) or die('Échec de la requête : ' . pg_last_error());

// Affichage des résultats en HTML
echo "<table>\n";
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

// Libère le résultat
pg_free_result($result);

// Ferme la connexion
pg_close($dbconn);
?>


Fonctions PostgreSQL

Notes

Note:

Les fonctions ne sont pas toutes supportées par toutes les versions. Cela dépend de votre version de libpq (la bibliothèque cliente de PostgreSQL C) et comment libpq est compilée. Si les extensions PHP PostGreSQL sont manquantes, alors c'est parce que votre version de libpq ne les supporte pas.

Note:

La plupart des fonctions PostgreSQL acceptent le paramètre connection comme premier paramètre optionnel. S'il n'est pas fourni, la dernière connexion ouverte est utilisée. Si elle n'existe pas, les fonctions retournent FALSE.

Note:

PostgreSQL transforme automatiquement tous les identifiants (par exemple, les noms de tables/colonnes) en minuscule à la création d'objet et lors de la requête. Pour forcer l'utilisation des caractères majuscules ou minuscules et majuscules des identifiants, vous devez échapper l'identifiant en utilisant des guillemets ("").

Note:

PostgreSQL n'a pas de commande spéciale pour récupérer les schémas des bases de données (par exemple, toutes les tables dans la base de données). À la place, il y a un schéma standard nommé information_schema dans PostgreSQL 7.4 et supérieure contenant les vues du système avec toutes les informations nécessaires, dans un format de requête facile. Voyez la » Documentation PostgreSQL pour tous les détails.

Sommaire

  • pg_affected_rows — Retourne le nombre de lignes affectées
  • pg_cancel_query — Annule une requête asynchrone
  • pg_client_encoding — Lit l'encodage du client
  • pg_close — Termine une connexion PostgreSQL
  • pg_connect_poll — Test le statut d'une tentative de connexion asynchrone PostgreSQL en cours
  • pg_connect — Établit une connexion PostgreSQL
  • pg_connection_busy — Vérifie si la connexion PostgreSQL est occupée
  • pg_connection_reset — Relance la connexion au serveur PostgreSQL
  • pg_connection_status — Lit le statut de la connexion PostgreSQL
  • pg_consume_input — Lit l'entrée de la connexion
  • pg_convert — Convertit des tableaux associatifs en une commande PostgreSQL
  • pg_copy_from — Insère des lignes dans une table à partir d'un tableau
  • pg_copy_to — Copie une table dans un tableau
  • pg_dbname — Retourne le nom de la base de données PostgreSQL
  • pg_delete — Efface des lignes PostgreSQL
  • pg_end_copy — Synchronise avec le serveur PostgreSQL
  • pg_escape_bytea — Protège une chaîne pour insertion dans un champ bytea
  • pg_escape_identifier — Protège un identifiant pour l'insertion dans un champ texte.
  • pg_escape_literal — Protège une requête SQL littérale à insérer dans un champ texte
  • pg_escape_string — Protège une chaîne de caractères pour une requête SQL
  • pg_execute — Exécute une requête préparée PostGreSQL
  • pg_fetch_all_columns — Récupère toutes les lignes d'une colonne de résultats particulière en tant que tableau
  • pg_fetch_all — Lit toutes les lignes d'un résultat
  • pg_fetch_array — Lit une ligne de résultat PostgreSQL dans un tableau
  • pg_fetch_assoc — Lit une ligne de résultat PostgreSQL sous forme de tableau associatif
  • pg_fetch_object — Lit une ligne de résultat PostgreSQL dans un objet
  • pg_fetch_result — Retourne les valeurs d'un résultat
  • pg_fetch_row — Lit une ligne dans un tableau
  • pg_field_is_null — Teste si un champ PostgreSQL est à NULL
  • pg_field_name — Retourne le nom d'un champ PostgreSQL
  • pg_field_num — Retourne le numéro d'une colonne
  • pg_field_prtlen — Retourne la taille imprimée
  • pg_field_size — Retourne la taille interne de stockage d'un champ donné
  • pg_field_table — Retourne le nom ou l'oid d'une table
  • pg_field_type_oid — Retourne le type ID (OID) pour le numéro du champ correspondant
  • pg_field_type — Retourne le type d'un champ PostgreSQL donné par index
  • pg_flush — Envoi les données de requête sortante sur la connexion
  • pg_free_result — Libère la mémoire
  • pg_get_notify — Lit le message SQL NOTIFY
  • pg_get_pid — Lit l'identifiant de processus du serveur PostgreSQL
  • pg_get_result — Lit un résultat PostgreSQL asynchrone
  • pg_host — Retourne le nom d'hôte
  • pg_insert — Insère un tableau dans une table
  • pg_last_error — Lit le dernier message d'erreur sur la connexion
  • pg_last_notice — Retourne la dernière note du serveur PostgreSQL
  • pg_last_oid — Retourne l'identifiant de la dernière ligne
  • pg_lo_close — Ferme un objet de grande taille PostgreSQL
  • pg_lo_create — Crée un objet de grande taille PostgreSQL
  • pg_lo_export — Exporte un objet de grande taille vers un fichier
  • pg_lo_import — Importe un objet de grande taille depuis un fichier
  • pg_lo_open — Ouvre un objet de grande taille PostgreSQL
  • pg_lo_read_all — Lit un objet de grande taille en totalité
  • pg_lo_read — Lit un objet de grande taille
  • pg_lo_seek — Modifie la position dans un objet de grande taille
  • pg_lo_tell — Retourne la position courante dans un objet de grande taille PostgreSQL
  • pg_lo_truncate — Tronque un objet large
  • pg_lo_unlink — Efface un objet de grande taille PostgreSQL
  • pg_lo_write — Écrit un objet de grande taille PostgreSQL
  • pg_meta_data — Lit les métadonnées de la table PostgreSQL
  • pg_num_fields — Retourne le nombre de champ
  • pg_num_rows — Retourne le nombre de lignes PostgreSQL
  • pg_options — Retourne les options PostgreSQL
  • pg_parameter_status — Consulte un paramètre de configuration courant du serveur
  • pg_pconnect — Établit une connexion PostgreSQL persistante
  • pg_ping — Ping la connexion à la base
  • pg_port — Retourne le numéro de port
  • pg_prepare — Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution
  • pg_put_line — Envoie une chaîne au serveur PostgreSQL
  • pg_query_params — Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL
  • pg_query — Exécute une requête PostgreSQL
  • pg_result_error_field — Retourne un champ individuel d'un rapport d'erreur
  • pg_result_error — Lit le message d'erreur associé à un résultat
  • pg_result_seek — Modifie la ligne courant dans un résultat
  • pg_result_status — Lit le statut du résultat
  • pg_select — Effectue une sélection PostgreSQL
  • pg_send_execute — Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)
  • pg_send_prepare — Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution
  • pg_send_query_params — Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s)
  • pg_send_query — Exécute une requête PostgreSQL asynchrone
  • pg_set_client_encoding — Choisit l'encodage du client PostgreSQL
  • pg_set_error_verbosity — Détermine la le degré des messages retournés par pg_last_error et pg_result_error
  • pg_socket — Récupère un gestionnaire de lecture seul sur le socket sous-jacent d'une connexion PostgreSQL
  • pg_trace — Active le suivi d'une connexion PostgreSQL
  • pg_transaction_status — Retourne le statut de la transaction en cours du serveur
  • pg_tty — Retourne le nom de TTY associé à la connexion
  • pg_unescape_bytea — Supprime la protection d'une chaîne de type bytea
  • pg_untrace — Termine le suivi d'une connexion PostgreSQL
  • pg_update — Modifie les lignes d'une table
  • pg_version — Retourne un tableau avec les versions du client, du protocole et du serveur (si disponible)


Retourne le nombre de lignes affectées

  • « Fonctions PostgreSQL
  • pg_cancel_query »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne le nombre de lignes affectées

pg_affected_rows

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_affected_rows — Retourne le nombre de lignes affectées

Description

int pg_affected_rows ( resource $result )

pg_affected_rows() retourne le nombre de lignes affectées par les requêtes de type INSERT, UPDATE et DELETE.

Depuis PostgreSQL 9.0 et suivants, le serveur retourne le nombre de lignes sélectionnées. Pour les versions antérieures, PostgreSQL retourne 0 pour les SELECT.

Note:

Auparavant, cette fonction s'appelait pg_cmdtuples().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Le nombre de lignes affectées par la requête. S'il n'y a pas de ligne affecté, la fonction retournera 0.

Exemples

Exemple #1 Exemple avec pg_affected_rows()

<?php
$result = pg_query($conn, "INSERT INTO editeur VALUES ('Auteur')");

$cmdtuples = pg_affected_rows($result);

echo $cmdtuples . " lignes ont été affectées.\n";
?>

L'exemple ci-dessus va afficher :

1 lignes ont été affectées.

Voir aussi

  • pg_query() - Exécute une requête PostgreSQL
  • pg_query_params() - Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL
  • pg_execute() - Exécute une requête préparée PostGreSQL
  • pg_num_rows() - Retourne le nombre de lignes PostgreSQL


Annule une requête asynchrone

  • « pg_affected_rows
  • pg_client_encoding »
  • PHP Manual
  • Fonctions PostgreSQL
  • Annule une requête asynchrone

pg_cancel_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_cancel_query — Annule une requête asynchrone

Description

bool pg_cancel_query ( resource $connection )

pg_cancel_query() annule la requête asynchrone, démarrée avec
pg_send_query(),
pg_send_query_params() ou
pg_send_execute().
Vous ne pouvez pas annuler une requête démarrée avec pg_query().

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_cancel_query()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from auteurs; select count(*) from auteurs;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Premier appel de pg_get_result() : $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 a $rows1 enregistrements\n\n";

  // Annule la requête en cours de fonctionnement. Ce sera la deuxième requête
  // elle fonctionne encore.
  pg_cancel_query($dbconn);
?>

L'exemple ci-dessus va afficher :

Premier appel de pg_get_result() : Resource id #3
Resource id #3 a 3 enregistrements

Voir aussi

  • pg_send_query() - Exécute une requête PostgreSQL asynchrone
  • pg_connection_busy() - Vérifie si la connexion PostgreSQL est occupée


Lit l'encodage du client

  • « pg_cancel_query
  • pg_close »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit l'encodage du client

pg_client_encoding

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pg_client_encoding — Lit l'encodage du client

Description

string pg_client_encoding ([ resource $connection ] )

PostgreSQL supporte la conversion automatique entre le serveur et le client pour certains jeux de caractères. pg_client_encoding() retourne l'encodage du client. La chaîne de retour sera un des encodages standards de PostgreSQL.

Note:

Cette fonction requiert PHP 4.0.3 ou plus récent et PostgreSQL version 7.0 ou plus récent. Si la bibliothèque libpq est compilée sans le support de l'encodage multioctets, pg_client_encoding() retournera toujours SQL_ASCII. Le support de l'encodage dépend de la version de PostgreSQL. Référez-vous à la documentation de PostgreSQL sur les encodages supportés.

Auparavant, cette fonction s'appelait pg_clientencoding().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

L'encodage du client ou FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec pg_client_encoding()

<?php
// Assume $conn étant une connexion à une base de données ISO-8859-1
$encoding = pg_client_encoding($conn);

echo "L'encodage du client est : ", $encoding, "\n";
?>

L'exemple ci-dessus va afficher :

L'encodage du client est : ISO-8859-1

Voir aussi

  • pg_set_client_encoding() - Choisit l'encodage du client PostgreSQL


Termine une connexion PostgreSQL

  • « pg_client_encoding
  • pg_connect_poll »
  • PHP Manual
  • Fonctions PostgreSQL
  • Termine une connexion PostgreSQL

pg_close

(PHP 4, PHP 5, PHP 7)

pg_close — Termine une connexion PostgreSQL

Description

bool pg_close ([ resource $connection ] )

pg_close() ferme la connexion au serveur PostgreSQL associé à connection.

Note:

Il n'est généralement pas nécessaire de fermer une connexion non persistante, car elles sont automatiquement fermées à la fin d'un script.

Si des objets de grande taille ont été ouverts avec cette connexion, ne fermez pas la connexion avant d'avoir refermé les objets.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_close()

<?php
$dbconn = pg_connect("host=localhost port=5432 dbname=marie")
      or die("Connexion impossible");
echo 'Connexion réussie';
pg_close($dbconn);
?>

L'exemple ci-dessus va afficher :

Connexion réussie

Voir aussi

  • pg_connect() - Établit une connexion PostgreSQL


Test le statut d'une tentative de connexion asynchrone PostgreSQL en cours

  • « pg_close
  • pg_connect »
  • PHP Manual
  • Fonctions PostgreSQL
  • Test le statut d'une tentative de connexion asynchrone PostgreSQL en cours

pg_connect_poll

(PHP 5 >= 5.6.0, PHP 7)

pg_connect_poll — Test le statut d'une tentative de connexion asynchrone PostgreSQL en cours

Description

int pg_connect_poll ([ resource $connection ] )

La fonction pg_connect_poll() teste le statut d'une connexion PostgreSQL créée en appelant la fonction pg_connect() avec l'option PGSQL_CONNECT_ASYNC.

Liste de paramètres

connection

Ressource de connexion à la base de données PostgreSQL.

Valeurs de retour

Retourne la constante PGSQL_POLLING_FAILED, PGSQL_POLLING_READING, PGSQL_POLLING_WRITING, PGSQL_POLLING_OK, ou la constante PGSQL_POLLING_ACTIVE.


Établit une connexion PostgreSQL

  • « pg_connect_poll
  • pg_connection_busy »
  • PHP Manual
  • Fonctions PostgreSQL
  • Établit une connexion PostgreSQL

pg_connect

(PHP 4, PHP 5, PHP 7)

pg_connect — Établit une connexion PostgreSQL

Description

resource pg_connect ( string $connection_string [, int $connect_type ] )

pg_connect() ouvre une connexion à une base de données PostgreSQL grâce à la chaîne de connexion connection_string.

Si un deuxième appel à pg_connect() est fait avec les mêmes arguments, aucune nouvelle connexion ne sera établie à moins que vous ne passiez PGSQL_CONNECT_FORCE_NEW à connect_type, mais la connexion précédente sera retournée.

L'ancienne syntaxe $conn = pg_connect("host", "port", "options", "tty", "dbname") est obsolète.

Liste de paramètres

connection_string

La chaîne connection_string peut être vide pour utiliser tous les paramètres par défaut ou elle peut contenir un ou plusieurs paramètres de configuration séparés par des espaces. Chaque paramètre de configuration est sous la forme code = valeur. Les espaces autour du signe égal sont optionnels. Pour écrire une valeur vide ou une valeur contenant des espaces, entourez cette valeur avec des apostrophes, par exemple : code = 'une valeur'. Les apostrophes et les antislashs à l'intérieur de la valeur doivent être échappés par un antislash, c'est-à-dire \' et \\.

Les mots-clé actuellement reconnus sont : host, hostaddr, port, dbname (valeur par défaut: user), user, password, connect_timeout, options, tty (ignoré), sslmode, requiressl (obsolète, utilisez sslmode) et service. La liste de ces arguments dépend de la version de votre serveur PostgreSQL.

Le paramètre options peut être utilisé pour passer des paramètres pour la ligne de commande invoquant le serveur.

connect_type

Si PGSQL_CONNECT_FORCE_NEW est passé en argument, alors une nouvelle connexion sera créée, même si la chaîne connection_string est identique à celle de la connexion existante.

Si PGSQL_CONNECT_ASYNC est fourni, la connexion sera établie de façon asynchrone. Le statut de la connexion peut être vérifié via la fonction pg_connect_poll() ou via la fonction pg_connection_status().

Valeurs de retour

Ressource de connexion PostgreSQL en cas de succès, FALSE en cas d'échec.

Historique

Version | Description
5.6.0 | Le support de la constante PGSQL_CONNECT_ASYNC pour le paramètre connect_type a été ajouté.

Exemples

Exemple #1 Exemple avec pg_connect()

<?php
$dbconn = pg_connect("dbname=marie");
// connexion à une base de données nommée "marie"

$dbconn2 = pg_connect("host=localhost port=5432 dbname=marie");
// connexion à une base de données nommée "marie" sur l'hôte "localhost" sur le port "5432"

$dbconn3 = pg_connect("host=mouton port=5432 dbname=marie user=agneau password=foo");
// connexion à une base de données nommée "marie" sur l'hôte "mouton" avec un
// nom d'utilisateur et un mot de passe

$conn_string = "host=mouton port=5432 dbname=test user=agneau password=bar";
$dbconn4 = pg_connect($conn_string);
// connexion à une base de données nommée "test" sur l'hôte "mouton" avec un
// nom d'utilisateur et un mot de passe

$dbconn5 = pg_connect("host=localhost options='--client_encoding=UTF8'");
//connexion à la base sur "localhost" et passage d'un paramètre de la ligne de
// commande concernant l'encodage UTF-8
?>

Voir aussi

  • pg_pconnect() - Établit une connexion PostgreSQL persistante
  • pg_close() - Termine une connexion PostgreSQL
  • pg_host() - Retourne le nom d'hôte
  • pg_port() - Retourne le numéro de port
  • pg_tty() - Retourne le nom de TTY associé à la connexion
  • pg_options() - Retourne les options PostgreSQL
  • pg_dbname() - Retourne le nom de la base de données PostgreSQL


Vérifie si la connexion PostgreSQL est occupée

  • « pg_connect
  • pg_connection_reset »
  • PHP Manual
  • Fonctions PostgreSQL
  • Vérifie si la connexion PostgreSQL est occupée

pg_connection_busy

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_connection_busy — Vérifie si la connexion PostgreSQL est occupée

Description

bool pg_connection_busy ( resource $connection )

pg_connection_busy() détermine si la connexion est occupée. Si elle est occupée, une requête a déjà été lancée, et est en cours. Si pg_get_result() est utilisée, elle sera alors bloquée.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Retourne TRUE si la connexion est occupée, sinon FALSE.

Exemples

Exemple #1 Exemple avec pg_connection_busy()

<?php
 $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");
 $bs = pg_connection_busy($dbconn);
 if ($bs) {
     echo 'La connexion est occupée';
 } else {
     echo 'La connexion est libre';
 }
?>

Voir aussi

  • pg_connection_status() - Lit le statut de la connexion PostgreSQL
  • pg_get_result() - Lit un résultat PostgreSQL asynchrone


Relance la connexion au serveur PostgreSQL

  • « pg_connection_busy
  • pg_connection_status »
  • PHP Manual
  • Fonctions PostgreSQL
  • Relance la connexion au serveur PostgreSQL

pg_connection_reset

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_connection_reset — Relance la connexion au serveur PostgreSQL

Description

bool pg_connection_reset ( resource $connection )

pg_connection_reset() effectue une reconnexion au serveur, avec les mêmes paramètres que lors de la connexion précédente avec connection. Cette fonction est pratique pour le traitement des erreurs.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_connection_reset()

<?php
 $dbconn = pg_connect("dbname=publisher") or die ("Connexion impossible");
 $dbconn2 = pg_connection_reset($dbconn);
 if ($dbconn2) {
     echo 'Redémarrage réussi';
 } else {
     echo 'Redémarrage échoué';
 }
?>

Voir aussi

  • pg_connect() - Établit une connexion PostgreSQL
  • pg_pconnect() - Établit une connexion PostgreSQL persistante
  • pg_connection_status() - Lit le statut de la connexion PostgreSQL


Lit le statut de la connexion PostgreSQL

  • « pg_connection_reset
  • pg_consume_input »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit le statut de la connexion PostgreSQL

pg_connection_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_connection_status — Lit le statut de la connexion PostgreSQL

Description

int pg_connection_status ( resource $connection )

pg_connection_status() retourne le statut de la connexion connection.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

PGSQL_CONNECTION_OK ou PGSQL_CONNECTION_BAD.

Exemples

Exemple #1 Exemple avec pg_connection_status()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");
  $stat = pg_connection_status($dbconn);
  if ($stat === PGSQL_CONNECTION_OK) {
      echo 'Connexion ok';
  } else {
      echo 'Connexion erronée';
  }
?>

Voir aussi

  • pg_connection_busy() - Vérifie si la connexion PostgreSQL est occupée


Lit l'entrée de la connexion

  • « pg_connection_status
  • pg_convert »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit l'entrée de la connexion

pg_consume_input

(PHP 5 >= 5.6.0, PHP 7)

pg_consume_input — Lit l'entrée de la connexion

Description

bool pg_consume_input ( resource $connection )

La fonction pg_consume_input() lit toutes les entrées en attente d'être lues depuis le serveur de base de données.

Liste de paramètres

connection

Ressource de connexion à la base de données PostgreSQL.

Valeurs de retour

TRUE en cas de succès, ou FALSE si une erreur survient. Notez que TRUE n'indique pas forcément que l'entrée est en attente d'être lue.


Convertit des tableaux associatifs en une commande PostgreSQL

  • « pg_consume_input
  • pg_copy_from »
  • PHP Manual
  • Fonctions PostgreSQL
  • Convertit des tableaux associatifs en une commande PostgreSQL

pg_convert

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_convert — Convertit des tableaux associatifs en une commande PostgreSQL

Description

array pg_convert ( resource $connection , string $table_name , array $assoc_array [, int $options = 0 ] )

pg_convert() vérifie et convertit le tableau associatif assoc_array en une requête SQL valide. Pour que pg_convert() fonctionne, il faut que la table table_name existe, et contienne au moins autant de colonnes que le tableau assoc_array a d'éléments. Les noms des champs de table_name doivent correspondre aux index du tableau dans assoc_array. Retourne un tableau avec les valeurs converties en cas de succès, et sinon, FALSE.

Note:

Depuis PHP 5.6.0, la fonction accepte des valeurs booléennes. Ces valeurs seront converties en booléen PostgreSQL. Les représentations sous forme de chaînes de caractères d'une valeur booléenne sont également supportées. NULL sera converti en NULL PostgreSQL.

Avant PHP 5.6.0, s'il y a des champs de type booléen danstable_name, n'utilisez pas la constante TRUE dans assoc_array. Elle sera convertie en chaîne de caractères "TRUE" qui ne sera pas une entrée valide pour un champ booléen en PostgreSQL. Utilisez une de ces valeurs à la place : "t", "true", "1", "y", "yes".

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Nom de la table sur pour laquelle les types seront convertis.

assoc_array

Données à être converties.

options

Un nombre de PGSQL_CONV_IGNORE_DEFAULT, PGSQL_CONV_FORCE_NULL ou PGSQL_CONV_IGNORE_NOT_NULL, combiné.

Valeurs de retour

Un tableau des valeurs converties ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_convert()

<?php
  $dbconn = pg_connect('dbname=foo');

  $tmp = array(
      'auteur' => 'Joe Thackery',
      'annee' => 2005,
      'titre' => 'Ma Vie, par Joe Thackery'
  );

  $vals = pg_convert($dbconn, 'auteurs', $tmp);
?>

Historique

Version | Description
5.6.0 | La fonction n'est plus expérimentale. Les types de données booléen/NULL sont supportés. Les types de données inconnus/non supportés sont échappés dans validation. La fonction pg_convert() doit être utilisée pour tous les types de données.

Voir aussi

  • pg_meta_data() - Lit les métadonnées de la table PostgreSQL
  • pg_insert() - Insère un tableau dans une table
  • pg_select() - Effectue une sélection PostgreSQL
  • pg_update() - Modifie les lignes d'une table
  • pg_delete() - Efface des lignes PostgreSQL


Insère des lignes dans une table à partir d'un tableau

  • « pg_convert
  • pg_copy_to »
  • PHP Manual
  • Fonctions PostgreSQL
  • Insère des lignes dans une table à partir d'un tableau

pg_copy_from

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_copy_from — Insère des lignes dans une table à partir d'un tableau

Description

bool pg_copy_from ( resource $connection , string $table_name , array $rows [, string $delimiter [, string $null_as ]] )

pg_copy_from() insère les éléments du tableau rows dans une table. Cette fonction utilise la commande SQL interne COPY FROM.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Nom de la table dans laquelle rows sera copié.

rows

Un tableau de données à être copié à l'intérieur de table_name. Chaque valeur dans rows devient une ligne dans table_name. Chaque valeur dans rows devrait être une chaîne délimitée par des valeurs à insérer à l'intérieur de chaque champ. Les valeurs doivent être terminées par un saut à la ligne.

delimiter

Le marqueur qui sépare les valeurs pour chaque champ dans chaque élément de rows. La valeur par défaut est TAB.

null_as

Comment les valeurs NULL de SQL sont représentées dans rows. La valeur par défaut est \N ("\\N").

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_copy_from()

<?php
   $db = pg_connect("dbname=publisher") or die("Connexion impossible");

   $rows = pg_copy_to($db, $table_name);

   pg_query($db, "DELETE FROM $table_name");

   pg_copy_from($db, $table_name, $rows);
?>

Voir aussi

  • pg_copy_to() - Copie une table dans un tableau


Copie une table dans un tableau

  • « pg_copy_from
  • pg_dbname »
  • PHP Manual
  • Fonctions PostgreSQL
  • Copie une table dans un tableau

pg_copy_to

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_copy_to — Copie une table dans un tableau

Description

array pg_copy_to ( resource $connection , string $table_name [, string $delimiter [, string $null_as ]] )

pg_copy_to() copie la table table_name dans un tableau. Cette fonction utilise la commande interne SQL COPY TO pour insérer les tableaux.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Nom de la table à partir de laquelle les données dans rows seront copiées.

delimiter

Le marqueur qui sépare les valeurs pour chaque champ dans chaque élément de rows. La valeur par défaut est TAB.

null_as

Comment les valeurs NULL de SQL sont représentées dans rows. La valeur par défaut est \N ("\\N").

Valeurs de retour

Un tableau avec un élément pour chaque ligne de données COPY. La fonction retourne FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec pg_copy_to()

<?php
   $db = pg_connect("dbname=publisher") or die("Connexion impossible");

   $rows = pg_copy_to($db, $table_name);

   pg_query($db, "DELETE FROM $table_name");

   pg_copy_from($db, $table_name, $rows);
?>

Voir aussi

  • pg_copy_from() - Insère des lignes dans une table à partir d'un tableau


Retourne le nom de la base de données PostgreSQL

  • « pg_copy_to
  • pg_delete »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne le nom de la base de données PostgreSQL

pg_dbname

(PHP 4, PHP 5, PHP 7)

pg_dbname — Retourne le nom de la base de données PostgreSQL

Description

string pg_dbname ([ resource $connection ] )

pg_dbname() retourne le nom de la base de données PostgreSQL associée à l'index de connexion connection.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne de type string contenant le nom de la base de données associée à la connexion connection ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_dbname()

<?php
 error_reporting(E_ALL);

 pg_connect ("host=localhost port=5432 dbname=marie");
 echo pg_dbname(); // affiche marie
?>


Efface des lignes PostgreSQL

  • « pg_dbname
  • pg_end_copy »
  • PHP Manual
  • Fonctions PostgreSQL
  • Efface des lignes PostgreSQL

pg_delete

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_delete — Efface des lignes PostgreSQL

Description

mixed pg_delete ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC ] )

pg_delete() efface les lignes de la table table_name, spécifiées par le tableau associatif assoc_array. Si option est spécifié, pg_convert() est appliqué à assoc_array avec cette option.

Liste de paramètres

connection

Ressource de connexion PostgreSQL.

table_name

Nom de la table depuis laquelle les lignes seront effacées.

assoc_array

Un tableau où les clés sont les noms des champs de la table table_name et où les valeurs sont les valeurs de ces champs qui sont à effacés.

options

Toute combinaison des valeurs suivantes : PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC ou PGSQL_DML_STRING. Si PGSQL_DML_STRING fait partie du paramètre options alors, la requête sera retournée. Lorsque la constante PGSQL_DML_NO_CONV ou la constante PGSQL_DML_ESCAPE est définie,aucun appel à la fonction pg_convert() ne sera faite en interne.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Retourne une chaîne de caractères si PGSQL_DML_STRING est passé dans le paramètre options.

Exemples

Exemple #1 Exemple avec pg_delete()

<?php
 $db = pg_connect ('dbname=foo');
 // C'est sans problème, car $_POST est converti automatiquement
 $res = pg_delete($db, 'post_log', $_POST);
 if ($res) {
     echo "Les données POSTées ont été effacées : $res\n";
 } else {
     echo "Les données d'entrées sont erronées.\n";
 }
?>

Historique

Version | Description
5.6.0 | La fonction n'est plus expérimentale. Ajout de la constante PGSQL_DML_ESCAPE ainsi que du support des types de données TRUE/FALSE et NULL.
5.5.3/5.4.19 | Les injections SQL directes dans table_name et les injections SQL indirectes via les identifiants ont été résolues.

Voir aussi

  • pg_convert() - Convertit des tableaux associatifs en une commande PostgreSQL


Synchronise avec le serveur PostgreSQL

  • « pg_delete
  • pg_escape_bytea »
  • PHP Manual
  • Fonctions PostgreSQL
  • Synchronise avec le serveur PostgreSQL

pg_end_copy

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pg_end_copy — Synchronise avec le serveur PostgreSQL

Description

bool pg_end_copy ([ resource $connection ] )

pg_end_copy() synchronise le client PostgreSQL (normalement un processus serveur web) avec le serveur PostgreSQL, après une opération de copie faite par pg_put_line(). pg_end_copy() doit être utilisé, autrement le serveur PostgreSQL ne sera plus synchronisé avec le client et émettra une erreur.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_end_copy()

<?php
  $conn = pg_pconnect("dbname=foo");
  pg_query($conn, "create table bar (a int4, b char(16), d float8)");
  pg_query($conn, "copy bar from stdin");
  pg_put_line($conn, "3\tBonjour le monde\t4.5\n");
  pg_put_line($conn, "4\tAurevoir le monde\t7.11\n");
  pg_put_line($conn, "\\.\n");
  pg_end_copy($conn);
?>

Voir aussi

  • pg_put_line() - Envoie une chaîne au serveur PostgreSQL


Protège une chaîne pour insertion dans un champ bytea

  • « pg_end_copy
  • pg_escape_identifier »
  • PHP Manual
  • Fonctions PostgreSQL
  • Protège une chaîne pour insertion dans un champ bytea

pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_escape_bytea — Protège une chaîne pour insertion dans un champ bytea

Description

string pg_escape_bytea ([ resource $connection ], string $data )

pg_escape_bytea() protège les caractères de la chaîne data avec le mode bytea. La chaîne protégée est retournée.

Note:

Lorsque vous utilisez une commande SELECT avec des données de type bytea, PostgreSQL retourne des valeurs octales, préfixées avec des antislashs '\' (par exemple \032). Les utilisateurs doivent effectuer la conversion en format binaire manuellement.

pg_escape_bytea() requiert PostgreSQL 7.2 ou plus récent. Avec PostgreSQL 7.2.0 et 7.2.1, les données bytea doivent être transtypée lorsque vous activez le support des chaînes de caractères multioctets. C'est-à-dire INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea);. PostgreSQL 7.2.2 ou plus récent ne requiert pas cette manipulation. Toutefois, si le client et le serveur n'utilisent pas le même jeu de caractères, il peut arriver des erreurs. Il faut alors forcer le transtypage manuellement.

Liste de paramètres

connection

Ressource de connexion à une base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion créée par la fonction pg_connect() ou la fonction pg_pconnect().

data

Une chaîne de caractères contenant du texte ou des données binaires qui seront insérées dans la colonne bytea.

Valeurs de retour

Une chaîne de caractères contenant les données échappées.

Historique

Version | Description
5.2.0 | Le paramètre connection a été ajouté.

Exemples

Exemple #1 Exemple avec pg_escape_bytea()

<?php
// Connexion à la base de données
$dbconn = pg_connect('dbname=foo');

// Lecture d'un fichier binaire
$data = file_get_contents('image1.jpg');

// Échappement des données binaires
$escaped = pg_escape_bytea($data);

// Insertion dans la base de données
pg_query("INSERT INTO gallery (name, data) VALUES ('Pine trees', '{$escaped}')");
?>

Voir aussi

  • pg_unescape_bytea() - Supprime la protection d'une chaîne de type bytea
  • pg_escape_string() - Protège une chaîne de caractères pour une requête SQL


Protège un identifiant pour l'insertion dans un champ texte.

  • « pg_escape_bytea
  • pg_escape_literal »
  • PHP Manual
  • Fonctions PostgreSQL
  • Protège un identifiant pour l'insertion dans un champ texte.

pg_escape_identifier

(PHP 5 >= 5.4.4, PHP 7)

pg_escape_identifier — Protège un identifiant pour l'insertion dans un champ texte.

Description

string pg_escape_identifier ([ resource $connection ], string $data )

pg_escape_identifier() protège un identifiant (exemple: table, nom de champ) pour une requête en base de données. Le résultat est une chaîne de caractère protégée pour PostgreSQL. pg_escape_identifier() ajoute des guillemets avant et après les données. Les utilisateurs ne doivent donc pas ajouter de guillemets. L'utilisation de cette fonction est recommandée pour les les identifiants des requêtes. Pour les données brutes SQL (c'est à dire les paramètres, excepté de type bytea), pg_escape_literal() ou pg_escape_string() doit être utilisé. Pour les champs de type bytea il est nécessaire d'utiliser pg_escape_bytea().

Note:

Cette fonction a une protection de code interne et peut être utilisée pour PostgreSQL 8.4 ou moins récent.

Liste de paramètres

connection

Ressource de connexion à une base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion créée par la fonction pg_connect() ou la fonction pg_pconnect().

data

Une chaîne de caractères contenant du texte à protéger.

Valeurs de retour

Une chaîne de caractères contenant les données protégées.

Exemples

Exemple #1 Exemple avec pg_escape_identifier()

<?php
  // Connexion à la base de données
  $dbconn = pg_connect('dbname=foo');

  // Protection du nom de la table
  $escaped = pg_escape_identifier($table_name);

  // Sélection des lignes de la table $table_name
  pg_query("SELECT * FROM {$escaped};");
?>

Voir aussi

  • pg_escape_literal() - Protège une requête SQL littérale à insérer dans un champ texte
  • pg_escape_bytea() - Protège une chaîne pour insertion dans un champ bytea
  • pg_escape_string() - Protège une chaîne de caractères pour une requête SQL


Protège une requête SQL littérale à insérer dans un champ texte

  • « pg_escape_identifier
  • pg_escape_string »
  • PHP Manual
  • Fonctions PostgreSQL
  • Protège une requête SQL littérale à insérer dans un champ texte

pg_escape_literal

(PHP 5 >= 5.4.4, PHP 7)

pg_escape_literal — Protège une requête SQL littérale à insérer dans un champ texte

Description

string pg_escape_literal ([ resource $connection ], string $data )

pg_escape_literal() protège une requête SQL littérale pour le requêtage à la base de données PostgreSQL. Le résultats retournée est une chaîne de caractère protégé au format PostgreSQL. pg_escape_literal() ajoute des simples quotes avant et après les données. Les utilisateurs ne doivent donc pas ajouter des simples quotes. L'utilisation de cette fonction est recommandée à la place de pg_escape_string(). Si la colonne est de type bytea, il convient d'utiliser à la place la fonctionpg_escape_bytea(). Pour protéger les identifiants (par exemple les noms de table, nom de champs), il convient d'utiliser la fonction pg_escape_identifier().

Note:

Cette fonction a une protection de code interne et peut être utilisée pour PostgreSQL 8.4 ou moins récent.

Liste de paramètres

connection

Ressource de connexion à une base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion créée par la fonction pg_connect() ou la fonction pg_pconnect().

data

Une chaîne de caractères contenant du texte à protéger.

Valeurs de retour

Une chaîne de caractères contenant les données protégées.

Exemples

Exemple #1 Exemple avec pg_escape_literal()

<?php
  // Connexion à la base de données
  $dbconn = pg_connect('dbname=foo');

  // Lecture d'un fichier (contenant apostrophes et anti-slashes)
  $data = file_get_contents('letter.txt');

  // Protection des données
  $escaped = pg_escape_literal($data);

  // Insertion en base de données. Notez qu'il n'y a pas de simple quotes autour de {$escaped}
  pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', {$escaped})");
?>

Voir aussi

  • pg_escape_identifier() - Protège un identifiant pour l'insertion dans un champ texte.
  • pg_escape_bytea() - Protège une chaîne pour insertion dans un champ bytea
  • pg_escape_string() - Protège une chaîne de caractères pour une requête SQL


Protège une chaîne de caractères pour une requête SQL

  • « pg_escape_literal
  • pg_execute »
  • PHP Manual
  • Fonctions PostgreSQL
  • Protège une chaîne de caractères pour une requête SQL

pg_escape_string

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_escape_string — Protège une chaîne de caractères pour une requête SQL

Description

string pg_escape_string ([ resource $connection ], string $data )

pg_escape_string() protège une chaîne de caractères pour l'insérer dans la base de données. Elle retourne la chaîne ainsi protégée au format PostgreSQL. L'utilisation de cette fonction est recommandée, à la place de addslashes(). Si le type de la colonne est bytea, pg_escape_bytea() doit plutôt être utilisée. La fonction pg_escape_identifier() doit être utilisée pour échapper les identifiants (i.e. noms de tables, noms de champs).

Note:

Cette fonction requiert PostgreSQL 7.2 ou plus récent.

Liste de paramètres

connection

Ressource de connexion à une base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion créée par la fonction pg_connect() ou la fonction pg_pconnect().

data

Une chaîne de caractères contenant le texte à échapper.

Valeurs de retour

Une chaîne de caractères contenant les données échappées.

Historique

Version | Description
5.2.0 | Le paramètre connection a été ajouté.

Exemples

Exemple #1 Exemple avec pg_escape_string()

<?php
// Connexion à la base de données
$dbconn = pg_connect('dbname=foo');

// Lecture d'un fichier texte (contenant des apostrophes et des antislashs)
$data = file_get_contents('letter.txt');

// Protection des données
$escaped = pg_escape_string($data);

// Insertion dans la base de données
pg_query("INSERT INTO correspondence (name, data) VALUES ('Ma lettre', '{$escaped}')");
?>

Voir aussi

  • pg_escape_bytea() - Protège une chaîne pour insertion dans un champ bytea


Exécute une requête préparée PostGreSQL

  • « pg_escape_string
  • pg_fetch_all_columns »
  • PHP Manual
  • Fonctions PostgreSQL
  • Exécute une requête préparée PostGreSQL

pg_execute

(PHP 5 >= 5.1.0, PHP 7)

pg_execute — Exécute une requête préparée PostGreSQL

Description

resource pg_execute ([ resource $connection ], string $stmtname , array $params )

Envoie une requête pour exécuter une requête préparée avec les paramètres donnés et attend le résultat.

pg_execute() est comme pg_query_params(), mais la commande qui sera exécutée est spécifiée en nommant une requête préalablement préparée, au lieu de donner une chaîne en tant que requête. Cette caractéristique permet aux commandes qui seront utilisées à plusieurs reprises d'être analysées et planifiées qu'une seule fois, plutôt que d'être exécutées chaque fois. La requête doit avoir été préalablement préparée dans la session courante. pg_execute() est supportée seulement avec les versions PostgreSQL 7.4 ou plus récentes; la commande échouera si vous l'utilisez avec des versions antérieures.

Les paramètres sont identiques à la fonction pg_query_params() à l'exception du nom de la requête préparée qui est donnée à la place de la requête sous forme de chaîne.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

stmtname

Le nom de la requête préparée à exécuter. Si une chaîne vide est spécifiée (""), alors la requête qui n'est pas nommée est exécutée. Le nom doit avoir été précédemment préparé en utilisant pg_prepare(), pg_send_prepare() ou une commande SQL PREPARE.

params

Un tableau de valeurs de paramètres pour substituer les variables $1, $2, etc. dans la requête préparée originale. Le nombre d'éléments présents dans le tableau doit concorder avec le nombre de variables à remplacer.

Avertissement

Les éléments sont convertis en chaînes de caractères en appelant cette fonction.

Valeurs de retour

Une ressource de résultats en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_execute()

<?php
// Connexion à une base de données nommée "marie"
$dbconn = pg_connect("dbname=marie");

// Prépare une requête pour l'exécution
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM magasins WHERE nom = $1');

// Exécute la requête préparée. Notez qu'il n'est pas nécessaire d'échapper
// la chaîne "Joe's Widgets"
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Exécute la même requête préparée, cette fois avec un paramètre différent
$result = pg_execute($dbconn, "my_query", array("Vêtements Vêtements Vêtements"));

?>

Voir aussi

  • pg_prepare() - Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution
  • pg_send_prepare() - Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution
  • pg_query_params() - Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL


Récupère toutes les lignes d'une colonne de résultats particulière en tant que tableau

  • « pg_execute
  • pg_fetch_all »
  • PHP Manual
  • Fonctions PostgreSQL
  • Récupère toutes les lignes d'une colonne de résultats particulière en tant que tableau

pg_fetch_all_columns

(PHP 5 >= 5.1.0, PHP 7)

pg_fetch_all_columns — Récupère toutes les lignes d'une colonne de résultats particulière en tant que tableau

Description

array pg_fetch_all_columns ( resource $result [, int $column = 0 ] )

pg_fetch_all_columns() retourne un tableau qui contient toutes les lignes (enregistrements) d'une colonne particulière d'une ressource de résultats.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Liste de paramètres

result

Ressource de résultats d'une requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

column

Numéro de la colonne, commençant à 0, à récupérer depuis la ressource de résultats. Par défaut, la première colonne si ce paramètre n'est pas spécifié.

Valeurs de retour

Un tableau contenant toutes les valeurs d'une colonne du résultat.

FALSE est retourné si column est plus grand que le nombre de colonnes du résultat ou si toutes autres erreurs surviennent.

Exemples

Exemple #1 Exemple avec pg_fetch_all_columns()

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Une erreur est survenue.\n";
  exit;
}

$result = pg_query($conn, "SELECT title, name, address FROM authors");
if (!$result) {
  echo "Une erreur est survenue.\n";
  exit;
}

// Récupère un tableau contenant tous les noms d'auteurs
$arr = pg_fetch_all_columns($result, 1);

var_dump($arr);

?>

Voir aussi

  • pg_fetch_all() - Lit toutes les lignes d'un résultat


Lit toutes les lignes d'un résultat

  • « pg_fetch_all_columns
  • pg_fetch_array »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit toutes les lignes d'un résultat

pg_fetch_all

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_fetch_all — Lit toutes les lignes d'un résultat

Description

array pg_fetch_all ( resource $result )

pg_fetch_all() retourne un tableau qui contient toutes les lignes du résultat result.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Un tableau array de toutes les lignes dans le jeu de résultats. Chaque ligne est un tableau de valeurs des champs indexée par le nom des champs.

FALSE est retournée s'il n'y a pas de lignes dans le jeu de résultats ou si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_fetch_all()

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Une erreur est survenue.\n";
  exit;
}

$result = pg_query($conn, "SELECT * FROM auteurs");
if (!$result) {
  echo "Une erreur est survenue.\n";
  exit;
}

$arr = pg_fetch_all($result);

print_r($arr);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Fred
        )

    [1] => Array
        (
            [id] => 2
            [name] => Bob
        )

)

Voir aussi

  • pg_fetch_row() - Lit une ligne dans un tableau
  • pg_fetch_array() - Lit une ligne de résultat PostgreSQL dans un tableau
  • pg_fetch_object() - Lit une ligne de résultat PostgreSQL dans un objet
  • pg_fetch_result() - Retourne les valeurs d'un résultat


Lit une ligne de résultat PostgreSQL dans un tableau

  • « pg_fetch_all
  • pg_fetch_assoc »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit une ligne de résultat PostgreSQL dans un tableau

pg_fetch_array

(PHP 4, PHP 5, PHP 7)

pg_fetch_array — Lit une ligne de résultat PostgreSQL dans un tableau

Description

array pg_fetch_array ( resource $result [, int $row [, int $result_type = PGSQL_BOTH ]] )

pg_fetch_array() retourne un tableau qui contient la ligne demandée.

pg_fetch_array() est une version évoluée de pg_fetch_row(). En plus de proposer un tableau à indice numérique, elle peut aussi enregistrer les données dans un tableau associatif, en utilisant les noms des champs comme clés. Ces deux fonctions utilisent le tableau associatif par défaut.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

pg_fetch_array() n'est pas significativement plus lente que pg_fetch_row() et elle apporte un confort d'utilisation appréciable.

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre d'autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées en commençant à 0. Si l'argument est omis ou s'il vaut NULL, la ligne suivante est récupérée.

result_type

Paramètre optionnel qui contrôle comment sera indexé le array retourné. pg_fetch_array() est une constante, qui peut prendre les valeurs suivantes : PGSQL_ASSOC, PGSQL_NUM et PGSQL_BOTH. En utilisant PGSQL_NUM, pg_fetch_array() retourne un tableau avec des indices numériques, en utilisant PGSQL_ASSOC retourne uniquement des indices associatifs alors que, PGSQL_BOTH, la valeur par défaut, retourne à la fois des indices numériques et associatifs.

Valeurs de retour

Un tableau à indice numérique (commençant à 0), associatif (indexé avec le nom des champs) ou les deux. Chaque valeur dans le tableau est représentée comme une chaîne (chaîne de caractères). Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Exemples

Exemple #1 Exemple avec pg_fetch_array()

<?php

$conn = pg_pconnect ("dbname=publisher");
if (!$conn) {
  echo "Erreur de connexion.\n";
  exit;
}

$result = pg_query ($conn, "SELECT auteur, email FROM auteurs");
if (!$result) {
  echo "Erreur durant la requête.\n";
  exit;
}

$arr = pg_fetch_array ($result, 0, PGSQL_NUM);
echo $arr[0] . " <- Ligne 1 Auteurs\n";
echo $arr[1] . " <- Ligne 1 E-mail\n";

// Depuis PHP 4.1.0, le paramètre row est optionnel ; NULL peut être passé à la place,
// pour passer un result_type. Les appels successifs à pg_fetch_array
// retournera la ligne suivante.
$arr = pg_fetch_array($result, NULL, PGSQL_ASSOC);
echo $arr["auteur"] . " <- Ligne 2 Auteur\n";
echo $arr["email"] . " <- Ligne 2 E-mail\n";

$arr = pg_fetch_array($result);
echo $arr["auteur"] . " <- Ligne 3 Auteur\n";
echo $arr[1] . " <- Ligne 3 E-mail\n";

?>

Voir aussi

  • pg_fetch_row() - Lit une ligne dans un tableau
  • pg_fetch_object() - Lit une ligne de résultat PostgreSQL dans un objet
  • pg_fetch_result() - Retourne les valeurs d'un résultat


Lit une ligne de résultat PostgreSQL sous forme de tableau associatif

  • « pg_fetch_array
  • pg_fetch_object »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit une ligne de résultat PostgreSQL sous forme de tableau associatif

pg_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_fetch_assoc — Lit une ligne de résultat PostgreSQL sous forme de tableau associatif

Description

array pg_fetch_assoc ( resource $result [, int $row ] )

pg_fetch_assoc() retourne un tableau associatif qui contient la ligne en cours dans le résultat result.

pg_fetch_assoc() est équivalent d'appeler pg_fetch_row() avec PGSQL_ASSOC comme troisième paramètre (qui est optionnel). Cela retournera seulement un tableau associatif. Si vous avez besoin d'indices numériques, utilisez pg_fetch_row().

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

pg_fetch_assoc() n'est pas significativement plus lente que pg_fetch_row() et elle apporte un confort d'utilisation appréciable.

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées en commençant à 0. Si l'argument est omis ou s'il vaut NULL, la ligne suivante est récupérée.

Valeurs de retour

Un tableau à indice associatif (par nom de champ). Chaque valeur dans le tableau est représentée comme une chaîne (chaîne de caractères). Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Exemples

Exemple #1 Exemple avec pg_fetch_assoc()

<?php
$conn = pg_pconnect ("dbname=publisher");
if (!$conn) {
  echo "Une erreur est survenue.\n";
  exit;
}

$result = pg_query ($conn, "SELECT id, auteur, email FROM auteurs");
if (!$result) {
  echo "Une erreur est survenue.\n";
  exit;
}

while ($row = pg_fetch_assoc($result)) {
  echo $row['id'];
  echo $row['auteur'];
  echo $row['email'];
}
?>

Voir aussi

  • pg_fetch_row() - Lit une ligne dans un tableau
  • pg_fetch_array() - Lit une ligne de résultat PostgreSQL dans un tableau
  • pg_fetch_object() - Lit une ligne de résultat PostgreSQL dans un objet
  • pg_fetch_result() - Retourne les valeurs d'un résultat


Lit une ligne de résultat PostgreSQL dans un objet

  • « pg_fetch_assoc
  • pg_fetch_result »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit une ligne de résultat PostgreSQL dans un objet

pg_fetch_object

(PHP 4, PHP 5, PHP 7)

pg_fetch_object — Lit une ligne de résultat PostgreSQL dans un objet

Description

object pg_fetch_object ( resource $result [, int $row [, int $result_type = PGSQL_ASSOC ]] )
object pg_fetch_object ( resource $result [, int $row [, string $class_name [, array $params ]]] )

pg_fetch_object() retourne un objet ainsi que ses propriétés qui correspond aux noms des champs de la ligne. La fonction peut optionnellement instancier un objet d'une classe spécifique et passer les paramètres au constructeur de cette classe.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Du point de vue vitesse, la fonction est identique à pg_fetch_array() et est presque aussi rapide que pg_fetch_row() (la différence est insignifiante).

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées en commençant à 0. Si l'argument est omis ou s'il vaut NULL, la ligne suivante est récupérée.

result_type

Ignoré et obsolète.

class_name

Le nom de la classe à instancier, fixe les propriétés de celles-ci et ses valeurs de retour. Si rien n'est spécifié, un objet de style stdClass est retourné.

params

Paramètre optionnel de type array pour passer des arguments au constructeur de la classe class_name.

Valeurs de retour

Un objet de type object avec les attributs pour chaque champ dans le jeu de résultats. Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Exemples

Exemple #1 Exemple avec pg_fetch_object()

<?php

$database = 'store';

$db_conn = pg_connect("host=localhost port=5432 dbname=$database");
if (!$db_conn) {
  echo "La connexion a la base $database a échouée\n";
  exit;
}

$qu = pg_query($db_conn, "SELECT * FROM livres ORDER BY auteur");

while ($data = pg_fetch_object($qu)) {
  echo $data->auteur . " (";
  echo $data->annee . "): ";
  echo $data->titre . "<br />";
}

pg_free_result($qu);
pg_close($db_conn);

?>

Voir aussi

  • pg_query() - Exécute une requête PostgreSQL
  • pg_fetch_array() - Lit une ligne de résultat PostgreSQL dans un tableau
  • pg_fetch_assoc() - Lit une ligne de résultat PostgreSQL sous forme de tableau associatif
  • pg_fetch_row() - Lit une ligne dans un tableau
  • pg_fetch_result() - Retourne les valeurs d'un résultat


Retourne les valeurs d'un résultat

  • « pg_fetch_object
  • pg_fetch_row »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne les valeurs d'un résultat

pg_fetch_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_fetch_result — Retourne les valeurs d'un résultat

Description

string pg_fetch_result ( resource $result , int $row , mixed $field )
string pg_fetch_result ( resource $result , mixed $field )

pg_fetch_result() retourne la valeur d'une ligne et d'un champ (colonne) en particulier à partir d'un ressource de résultat PostgreSQL.

Note:

Cette fonction peut s'appeler pg_result().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées de 0 en montant. Si l'argument est omis, la ligne suivante est récupérée.

field

Une chaîne de type string représentant le nom du champ (colonne) à récupérer, sinon un entier de type int représentant le numéro du champ à récupérer. Les champs sont numérotés de 0 en montant.

Valeurs de retour

Les booléens sont retournés comme des "t" ou "f". Tous les autres types, y compris les tableaux, sont retournés sous forme de chaînes formatées, de la même manière que PostgreSQL vous les afficherait dans le client psql. Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Exemples

Exemple #1 Exemple avec pg_fetch_result()

<?php
$db = pg_connect("dbname=users user=me") || die();

$res = pg_query($db, "SELECT 1 UNION ALL SELECT 2");

$val = pg_fetch_result($res, 1, 0);

echo "Premier champ dans la deuxième ligne est : ", $val, "\n";
?>

L'exemple ci-dessus va afficher :

Premier champ dans la deuxième ligne est : 2

Voir aussi

  • pg_query() - Exécute une requête PostgreSQL
  • pg_fetch_array() - Lit une ligne de résultat PostgreSQL dans un tableau


Lit une ligne dans un tableau

  • « pg_fetch_result
  • pg_field_is_null »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit une ligne dans un tableau

pg_fetch_row

(PHP 4, PHP 5, PHP 7)

pg_fetch_row — Lit une ligne dans un tableau

Description

array pg_fetch_row ( resource $result [, int $row ] )

pg_fetch_row() lit une ligne dans le résultat associé à l'index result.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées en commençant à 0. Si l'argument est omis ou s'il vaut NULL, la ligne suivante est récupérée.

Valeurs de retour

Un tableau de type array, indexé de 0 en montant, avec chaque valeur représentée comme une chaîne (chaîne de caractères). Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Exemples

Exemple #1 Exemple avec pg_fetch_row()

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Une erreur est survenue.\n";
  exit;
}

$result = pg_query($conn, "SELECT auteur, email FROM auteurs");
if (!$result) {
  echo "Une erreur est survenue.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Auteur : $row[0]  E-mail : $row[1]";
  echo "<br />\n";
}

?>

Voir aussi

  • pg_query() - Exécute une requête PostgreSQL
  • pg_fetch_array() - Lit une ligne de résultat PostgreSQL dans un tableau
  • pg_fetch_object() - Lit une ligne de résultat PostgreSQL dans un objet
  • pg_fetch_result() - Retourne les valeurs d'un résultat


Teste si un champ PostgreSQL est à NULL

  • « pg_fetch_row
  • pg_field_name »
  • PHP Manual
  • Fonctions PostgreSQL
  • Teste si un champ PostgreSQL est à NULL

pg_field_is_null

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_is_null — Teste si un champ PostgreSQL est à NULL

Description

int pg_field_is_null ( resource $result , int $row , mixed $field )
int pg_field_is_null ( resource $result , mixed $field )

pg_field_is_null() teste si un champ dans une ressource de résultat est NULL.

Note:

Auparavant, cette fonction s'appelait pg_fieldisnull().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées de 0 en montant. Si l'argument est omis, la ligne suivante est récupérée.

field

Numéro du champ (commençant à 0) de type int ou le nom du champ de type string.

Valeurs de retour

Retourne 1 si le champ de la ligne donnée est NULL, 0 s'il n'est pas NULL. FALSE est retournée si la ligne n'est pas dans le tableau ou tout autre erreur.

Exemples

Exemple #1 Exemple avec pg_field_is_null()

<?php
    $dbconn = pg_connect("dbname=publisher") or die ("Connexion impossible");
    $res = pg_query($dbconn, "select * from auteurs where auteur = 'Orwell'");
    if ($res) {
        if (pg_field_is_null($res, 0, "annee") == 1) {
            echo "La valeur du champ \"annee\" est null.\n";
        }
        if (pg_field_is_null($res, 0, "annee") == 0) {
            echo "La valeur du champ \"annee\" n'est pas null.\n";
        }
    }
?>


Retourne le nom d'un champ PostgreSQL

  • « pg_field_is_null
  • pg_field_num »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne le nom d'un champ PostgreSQL

pg_field_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_name — Retourne le nom d'un champ PostgreSQL

Description

string pg_field_name ( resource $result , int $field_number )

pg_field_name() retourne le nom du champ qui occupe la colonne numéro field_number dans le résultat result. La numérotation des champs commence à 0.

Note:

Auparavant, cette fonction s'appelait pg_fieldname().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_number

Numéro du champ, commençant à 0.

Valeurs de retour

Le nom du champ ou FALSE en cas d'erreur.

Exemples

Exemple #1 Récupération d'informations des champs

<?php
 $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

 $res = pg_query($dbconn, "select * from auteurs where auteur = 'Orwell'");
 $i = pg_num_fields($res);
 for ($j = 0; $j < $i; $j++) {
     echo "colonne $j\n";
     $fieldname = pg_field_name($res, $j);
     echo "Champ : $fieldname\n";
     echo "Taille affichée : ".pg_field_prtlen($res, $fieldname)." caractères\n";
     echo "Taille de stockage : ".pg_field_size($res, $j)." octets\n";
     echo "Type de champ : ".pg_field_type($res, $j)." \n\n";
 }
?>

L'exemple ci-dessus va afficher :

colonne 0
Champ : auteur
Taille affichée : 6 caractères
Taille de stockage : -1 octets
Type de champ : varchar

colonne 1
Champ : annee
Taille affichée : 4 caractère
Taille de stockage : 2 octets
Type de champ : int2

colonne 2
Champ : titre
Taille affichée : 24 caractères
Taille de stockage : -1 octets
Type de champ : varchar

Voir aussi

  • pg_field_num() - Retourne le numéro d'une colonne


Retourne le numéro d'une colonne

  • « pg_field_name
  • pg_field_prtlen »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne le numéro d'une colonne

pg_field_num

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_num — Retourne le numéro d'une colonne

Description

int pg_field_num ( resource $result , string $field_name )

pg_field_num() retourne le numéro de la colonne, dont le nom est field_name, dans le résultat result.

Note:

Auparavant, cette fonction s'appelait pg_fieldnum().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_name

Le nom du champ.

Valeurs de retour

Le numéro du champ (commençant à 0) ou -1 en cas d'erreur.

Exemples

Exemple #1 Récupération d'informations des champs

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  $res = pg_query($dbconn, "select auteur, annee, titre from auteurs where auteur = 'Orwell'");

  echo "Le numéro de la colonne 'titre' est : ", pg_field_num($res, 'titre');
?>

L'exemple ci-dessus va afficher :

Le numéro de la colonne 'titre' est : 2

Voir aussi

  • pg_field_name() - Retourne le nom d'un champ PostgreSQL


Retourne la taille imprimée

  • « pg_field_num
  • pg_field_size »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne la taille imprimée

pg_field_prtlen

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_prtlen — Retourne la taille imprimée

Description

int pg_field_prtlen ( resource $result , int $row_number , mixed $field_name_or_number )
int pg_field_prtlen ( resource $result , mixed $field_name_or_number )

pg_field_prtlen() retourne la taille imprimée (nombre de caractères) d'une valeur donnée dans un résultat PostgreSQL. La numérotation des lignes commence à 0. pg_field_prtlen() retourne FALSE en cas d'erreur.

Le paramètre field_name_or_number peut être passé soit en tant qu'entier, soit en tant que chaîne de caractères. S'il est passé en tant qu'entier, PHP l'identifie comme le numéro d'un champ, sinon, comme le nom d'un champ.

Voir l'exemple donné à la page de la documentation de la fonction pg_field_name().

Note:

Auparavant, cette fonction s'appelait pg_fieldprtlen().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne dans le résultat. Les lignes sont numérotées à partir de 0 en montant. Si ce paramètre n'est pas fourni, la ligne en cours est récupérée.

Valeurs de retour

Le nombre de caractères imprimés ou FALSE en cas d'erreur.

Exemples

Exemple #1 Récupération d'informations à propos des champs

<?php
  $dbconn = pg_connect("dbname=editeur") or die("Connexion impossible");

  $res = pg_query($dbconn, "select * from auteurs where auteur = 'Orwell'");
  $i = pg_num_fields($res);
  for ($j = 0; $j < $i; $j++) {
      echo "colonne $j\n";
      $fieldname = pg_field_name($res, $j);
      echo "nom champ : $fieldname\n";
      echo "taille affichage : " . pg_field_prtlen($res, $fieldname) . " caractères\n";
      echo "taille enregistrement : " . pg_field_size($res, $j) . " octets\n";
      echo "type champ : " . pg_field_type($res, $j) . " \n\n";
  }
?>

L'exemple ci-dessus va afficher :

colonne 0
nom champ : auteur
taille affichage : 6 caractères
taille enregistrement : -1 octets
type champ : varchar

colonne 1
nom champ : annee
taille affichage : 4 caractères
taille enregistrement : 2 octets
type champ : int2

colonne 2
nom champ : titre
taille affichage : 24 caractères
taille enregistrement : -1 octets
type champ : varchar

Voir aussi

  • pg_field_size() - Retourne la taille interne de stockage d'un champ donné


Retourne la taille interne de stockage d'un champ donné

  • « pg_field_prtlen
  • pg_field_table »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne la taille interne de stockage d'un champ donné

pg_field_size

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_size — Retourne la taille interne de stockage d'un champ donné

Description

int pg_field_size ( resource $result , int $field_number )

pg_field_size() retourne la taille interne de stockage d'un champ donné, en octets.

Note:

Auparavant, cette fonction s'appelait pg_fieldsize().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_number

Numéro du champ, commençant à 0.

Valeurs de retour

La taille du stockage interne d'un champ (en octets). -1 signifie un champ à grandeur variable. FALSE est retourné en cas d'erreur.

Exemples

Exemple #1 Récupération d'informations des champs

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  $res = pg_query($dbconn, "select * from auteurs where auteur = 'Orwell'");
  $i = pg_num_fields($res);
  for ($j = 0; $j < $i; $j++) {
      echo "colonne $j\n";
      $fieldname = pg_field_name($res, $j);
      echo "Nom du champ : $fieldname\n";
      echo "Taille pour l'affichage : " . pg_field_prtlen($res, $fieldname) . " caractères\n";
      echo "Taille pour le stockage : " . pg_field_size($res, $j) . " octets\n";
      echo "Type du champ : " . pg_field_type($res, $j) . " \n\n";
  }
?>

L'exemple ci-dessus va afficher :

colonne 0
Nom du champ : auteur
Taille pour l'affichage : 6 caractères
Taille pour le stockage : -1 octets
Type du champ : varchar

colonne 1
Nom du champ : annee
Taille pour l'affichage : 4 caractères
Taille pour le stockage : 2 octets
Type du champ : int2

colonne 2
Nom du champ : titre
Taille pour l'affichage : 24 caractères
Taille pour le stockage : -1 octets
Type du champ : varchar

Voir aussi

  • pg_field_prtlen() - Retourne la taille imprimée
  • pg_field_type() - Retourne le type d'un champ PostgreSQL donné par index


Retourne le nom ou l'oid d'une table

  • « pg_field_size
  • pg_field_type_oid »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne le nom ou l'oid d'une table

pg_field_table

(PHP 5 >= 5.2.0, PHP 7)

pg_field_table — Retourne le nom ou l'oid d'une table

Description

mixed pg_field_table ( resource $result , int $field_number [, bool $oid_only = false ] )

pg_field_table() retourne le nom de la table à laquelle le champ appartient ou l'oid de la table si le paramètre oid_only vaut TRUE.

Liste de paramètres

result

Ressource du résultat d'une requête PostgreSQL, retournée par la fonction pg_query(), pg_query_params() ou pg_execute() (et d'autres).

field_number

Numéro du champ, commençant à 0.

oid_only

Par défaut, le nom de la table à laquelle le champ appartient est retourné mais si le paramètre oid_only est défini à TRUE, alors, ce sera l'oid qui sera retourné.

Valeurs de retour

En cas de succès, le nom de la table ou l'oid, FALSE en cas d'échec.

Exemples

Exemple #1 Récupération des informations d'une table à partir d'un champ

<?php
$dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

$res = pg_query($dbconn, "SELECT bar FROM foo");

echo pg_field_table($res, 0);
echo pg_field_table($res, 0, true);

$res = pg_query($dbconn, "SELECT version()");
var_dump(pg_field_table($res, 0));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

foo
14379580

bool(false)

Notes

Note:

Retourner l'oid est plus rapide que de retourner le nom de la table, car la récupération du nom de la table nécessite une requête sur la table système de la base de données.

Voir aussi

  • pg_field_name() - Retourne le nom d'un champ PostgreSQL
  • pg_field_type() - Retourne le type d'un champ PostgreSQL donné par index


Retourne le type ID (OID) pour le numéro du champ correspondant

  • « pg_field_table
  • pg_field_type »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne le type ID (OID) pour le numéro du champ correspondant

pg_field_type_oid

(PHP 5 >= 5.1.0, PHP 7)

pg_field_type_oid — Retourne le type ID (OID) pour le numéro du champ correspondant

Description

int pg_field_type_oid ( resource $result , int $field_number )

pg_field_type_oid() retourne un entier contenant le OID du type de base du champ field_number donné dans la ressource PostgreSQL result.

Vous pouvez obtenir plus d'informations à propos du type de champ en interrogeant la table système de PostgreSQL pg_type() avec le OID obtenu par cette fonction.

Note:

Si le champ utilise un domaine PostgreSQL (plutôt que d'un type basic), c'est le OID du domaine sous-jacent qui est retourné, plutôt que le OID du domaine en tant que tel.

Liste de paramètres

result

Ressource de résultats de PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_number

Numéro du champ, commençant à 0.

Valeurs de retour

Le OID du type de base du champ ou FALSE est retourné en cas d'erreur.

Exemples

Exemple #1 Récupération d'informations des champs

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  // On assume que 'titre' est un type varchar
  $res = pg_query($dbconn, "select titre from auteurs where auteur = 'Orwell'");

  echo "Type du champ titre OID : ", pg_field_type_oid($res, 0);
?>

L'exemple ci-dessus va afficher :

Type du champ titre OID : 1043

Voir aussi

  • pg_field_type() - Retourne le type d'un champ PostgreSQL donné par index
  • pg_field_prtlen() - Retourne la taille imprimée
  • pg_field_name() - Retourne le nom d'un champ PostgreSQL


Retourne le type d'un champ PostgreSQL donné par index

  • « pg_field_type_oid
  • pg_flush »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne le type d'un champ PostgreSQL donné par index

pg_field_type

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_type — Retourne le type d'un champ PostgreSQL donné par index

Description

string pg_field_type ( resource $result , int $field_number )

pg_field_type() retourne une chaîne contenant le type de base du champ donné par son index field_number.

Note:

Si le champ utilise un domaine PostgreSQL (plutôt que d'un type basic), c'est le nom du domaine sous-jacent qui est retourné, plutôt que le nom du domaine en tant que tel.

Note:

Auparavant, cette fonction s'appelait pg_fieldtype().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_number

Numéro du champ, commençant à 0.

Valeurs de retour

Une chaîne de type string contenant le nom de base du type de champ ou FALSE en cas d'erreur.

Exemples

Exemple #1 Récupération d'informations des champs

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  // On assume que 'titre' est un type varchar
  $res = pg_query($dbconn, "select titre from auteurs where auteur = 'Orwell'");

  echo "Type du champ titre : ", pg_field_type($res, 0);
?>

L'exemple ci-dessus va afficher :

Type du champ titre : varchar

Voir aussi

  • pg_field_prtlen() - Retourne la taille imprimée
  • pg_field_name() - Retourne le nom d'un champ PostgreSQL
  • pg_field_type_oid() - Retourne le type ID (OID) pour le numéro du champ correspondant


Envoi les données de requête sortante sur la connexion

  • « pg_field_type
  • pg_free_result »
  • PHP Manual
  • Fonctions PostgreSQL
  • Envoi les données de requête sortante sur la connexion

pg_flush

(PHP 5 >= 5.6.0, PHP 7)

pg_flush — Envoi les données de requête sortante sur la connexion

Description

mixed pg_flush ( resource $connection )

La fonction pg_flush() envoie toutes les données sortantes de requête en attente d'être envoyées sur la connexion.

Liste de paramètres

connection

Ressource de connexion à la base de données PostgreSQL.

Valeurs de retour

Retourne TRUE si l'envoi a réussi, ou si aucune donnée n'est en attente d'envoi, 0 si une partie des données en attente ont été envoyées mais qu'il en reste encore ou FALSE si une erreur survient.


Libère la mémoire

  • « pg_flush
  • pg_get_notify »
  • PHP Manual
  • Fonctions PostgreSQL
  • Libère la mémoire

pg_free_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_free_result — Libère la mémoire

Description

bool pg_free_result ( resource $result )

pg_free_result() libère la mémoire et les données associées avec le jeu de résultats PostgreSQL associé.

pg_free_result() n'est vraiment utile que si vous risquez d'utiliser trop de mémoire durant votre script. La mémoire occupée par les résultats est automatiquement libérée à la fin du script.

Note:

Auparavant, cette fonction s'appelait pg_freeresult().

Liste de paramètres

result

Ressource de résultats PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (et quelques autres).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_free_result()

<?php
$db = pg_connect("dbname=users user=me") || die();

$res = pg_query($db, "SELECT 1 UNION ALL SELECT 2");

$val = pg_fetch_result($res, 1, 0);

echo "Le premier champ de la seconde ligne est : ", $val, "\n";

pg_free_result($res);
?>

L'exemple ci-dessus va afficher :

Le premier champ de la seconde ligne est : 2

Voir aussi

  • pg_query() - Exécute une requête PostgreSQL
  • pg_query_params() - Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL
  • pg_execute() - Exécute une requête préparée PostGreSQL


Lit le message SQL NOTIFY

  • « pg_free_result
  • pg_get_pid »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit le message SQL NOTIFY

pg_get_notify

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_get_notify — Lit le message SQL NOTIFY

Description

array pg_get_notify ( resource $connection [, int $result_type ] )

pg_get_notify() reçoit le message de NOTIFY envoyé par une commande SQL NOTIFY. Pour lire le message associé, utilisez la commande LISTEN.

Liste de paramètres

connection

Ressource de connexion PostgreSQL.

result_type

Un paramètre optionnel qui contrôle la façon dont le tableau sera indexé. result_type est une constante et peut prendre les valeurs suivantes : PGSQL_ASSOC, PGSQL_NUM et PGSQL_BOTH. L'utilisation de PGSQL_NUM, pg_get_notify() retournera un tableau avec des indices numériques, l'utilisation de PGSQL_ASSOC retournera un tableau associatif tandis que PGSQL_BOTH, la valeur par défaut, retournera des indices numériques et associatifs.

Valeurs de retour

Un tableau contenant le nom du message NOTIFY. Sinon, si aucun NOTIFY n'est en attente, alors FALSE sera retourné.

Exemples

Exemple #1 Exemple avec pg_get_notify()

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Une erreur est survenue.\n";
  exit;
}

// ecoute le message 'author_updated' des autres processus
pg_query($conn, 'LISTEN author_updated;');
$notify = pg_get_notify($conn);
if (!$notify) {
  echo "Aucun message\n";
} else {
  print_r($notify);
}
?>

Voir aussi

  • pg_get_pid() - Lit l'identifiant de processus du serveur PostgreSQL


Lit l'identifiant de processus du serveur PostgreSQL

  • « pg_get_notify
  • pg_get_result »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit l'identifiant de processus du serveur PostgreSQL

pg_get_pid

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_get_pid — Lit l'identifiant de processus du serveur PostgreSQL

Description

int pg_get_pid ( resource $connection )

pg_get_pid() lit l'identifiant de processus du serveur PostgreSQL. L'identifiant de processus est pratique pour vérifier si un message de NOTIFY a été envoyé via pg_get_notify() par un autre processus ou pas.

Liste de paramètres

connection

Une ressource de connexion PostgreSQL

Valeurs de retour

L'identifiant du processus du serveur.

Exemples

Exemple #1 Exemple avec pg_get_pid()

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Une erreur est survenue.\n";
  exit;
}

// PID du serveur. Utilisez alors le PID avec pg_get_notify()
$pid = pg_get_pid($conn);
?>

Voir aussi

  • pg_get_notify() - Lit le message SQL NOTIFY


Lit un résultat PostgreSQL asynchrone

  • « pg_get_pid
  • pg_host »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit un résultat PostgreSQL asynchrone

pg_get_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_get_result — Lit un résultat PostgreSQL asynchrone

Description

resource pg_get_result ([ resource $connection ] )

pg_get_result() lit la ressource de résultat d'une
requête asynchrone exécutée par pg_send_query(),
pg_send_query_params() ou
pg_send_execute().

pg_send_query() et les autres fonctions de requête asynchrone peuvent envoyer plusieurs requêtes à un serveur PostgreSQL et pg_get_result() est utilisé pour obtenir chaque résultat de requête, un par un.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

La resource de résultat ou FALSE s'il n'y a plus de résultat disponible.

Exemples

Exemple #1 Exemple avec pg_get_result()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from auteurs; select count(*) from auteurs;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Premier appel à pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 a $rows1 enregistrements\n\n";

  $res2 = pg_get_result($dbconn);
  echo "Second appel à pg_get_result(): $res2\n";
  $rows2 = pg_num_rows($res2);
  echo "$res2 a $rows2 enregistrements\n";
?>

L'exemple ci-dessus va afficher :

Premier appel à pg_get_result(): Resource id #3
Resource id #3 a 3 enregistrements

Second appel à pg_get_result(): Resource id #4
Resource id #4 a 1 enregistrements

Voir aussi

  • pg_send_query() - Exécute une requête PostgreSQL asynchrone


Retourne le nom d'hôte

  • « pg_get_result
  • pg_insert »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne le nom d'hôte

pg_host

(PHP 4, PHP 5, PHP 7)

pg_host — Retourne le nom d'hôte

Description

string pg_host ([ resource $connection ] )

pg_host() retourne le nom d'hôte associé à l'index de connexion PostgreSQL.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne contenant le nom de l'ordinateur hôte de connection ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_host()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Correctement connecté à : " . pg_host($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Voir aussi

  • pg_connect() - Établit une connexion PostgreSQL
  • pg_pconnect() - Établit une connexion PostgreSQL persistante


Insère un tableau dans une table

  • « pg_host
  • pg_last_error »
  • PHP Manual
  • Fonctions PostgreSQL
  • Insère un tableau dans une table

pg_insert

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_insert — Insère un tableau dans une table

Description

mixed pg_insert ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC ] )

pg_insert() insère le tableau assoc_array dans la table table_name. Si options est spécifiée, pg_convert() s'applique à assoc_array avec l'option spécifiée.

Liste de paramètres

connection

Une ressource de connexion PostgreSQL.

table_name

Nom de la table dans laquelle les lignes seront insérées. La table table_name doit avoir au moins autant de colonnes que assoc_array a d'éléments.

assoc_array

Un tableau dont les clés sont les noms des champs dans la table table_name, et où les valeurs sont les valeurs de ces champs qui seront insérés.

options

Toutes combinaisons de constantes parmi PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC ou PGSQL_DML_STRING. Si PGSQL_DML_STRING fait partie du paramètre options, alors la requête sera retournée. Lorsque la constante PGSQL_DML_NO_CONV ou la constante PGSQL_DML_ESCAPE est définie, aucun appel à la fonction pg_convert() ne sera effectuée en interne.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Retourne une chaîne de caractères si PGSQL_DML_STRING est passé via le paramètre options.

Exemples

Exemple #1 Exemple avec pg_insert()

<?php
  $db = pg_connect ('dbname=foo');
  // C'est sécuritaire, car $_POST est converti automatiquement
  $res = pg_insert($db, 'post_log', $_POST);
  if ($res) {
      echo "Les données POSTées ont pu être enregistrées avec succès.\n";
  } else {
      echo "Il y a un problème avec les données.\n";
  }
?>

Historique

Version | Description
5.6.0 | La fonction n'est plus expérimentale. Ajout de la constante PGSQL_DML_ESCAPE ainsi que du support des données de type TRUE/FALSE et NULL.
5.5.3/5.4.19 | Les injections SQL directes dans table_name et les injections SQL indirectes via les identifiants ont été résolues.

Voir aussi

  • pg_convert() - Convertit des tableaux associatifs en une commande PostgreSQL


Lit le dernier message d'erreur sur la connexion

  • « pg_insert
  • pg_last_notice »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit le dernier message d'erreur sur la connexion

pg_last_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_last_error — Lit le dernier message d'erreur sur la connexion

Description

string pg_last_error ([ resource $connection ] )

pg_last_error() retourne le dernier message d'erreur pour une connexion connection.

Les messages d'erreur peuvent être écrasés par des appels internes à l'extension PostgreSQL (libpq) : il se peut que le message retourné ne soit pas approprié, notamment si plusieurs erreurs ont eu lieu dans le module.

Utilisez pg_result_error(),
pg_result_error_field(),
pg_result_status() et
pg_connection_status() pour améliorer la gestion
des erreurs.

Note:

Auparavant, cette fonction s'appelait pg_errormessage().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne de caractères contenant le dernier message d'erreur sur la connexion connection ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_last_error()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  // Requête qui échoue
  $res = pg_query($dbconn, "select * from doesnotexist");

  echo pg_last_error($dbconn);
?>

Voir aussi

  • pg_result_error() - Lit le message d'erreur associé à un résultat
  • pg_result_error_field() - Retourne un champ individuel d'un rapport d'erreur


Retourne la dernière note du serveur PostgreSQL

  • « pg_last_error
  • pg_last_oid »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne la dernière note du serveur PostgreSQL

pg_last_notice

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

pg_last_notice — Retourne la dernière note du serveur PostgreSQL

Description

string pg_last_notice ( resource $connection )

pg_last_notice() retourne la dernière note du serveur PostgreSQL sur la connexion connection spécifiée. Le serveur PostgreSQL envoie des notes dans plusieurs cas, par exemple lors de création d'une colonne SERIAL dans une table.

Avec pg_last_notice(), vous pouvez éviter des requêtes inutiles en vérifiant si des notes sont liées ou pas à votre transaction.

Le suivi des notes peut être rendu optionnel en mettant à 1 la directive de configuration pgsql.ignore_notice du fichier php.ini.

L'enregistrement des notes peut être rendu optionnel en mettant la directive de configuration pgsql.log_notice du php.ini à 0. À moins que pgsql.ignore_notice ne soit à 0, les notes ne seront pas enregistrées.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Une chaîne de caractères contenant la dernière note sur la connexion connection ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_last_notice()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

$res = pg_query("CREATE TABLE test (id SERIAL)");

$notice = pg_last_notice($pgsql_conn);

echo $notice;
?>

L'exemple ci-dessus va afficher :

CREATE TABLE will create implicit sequence "test_id_seq" for "serial" column "test.id"

Voir aussi

  • pg_query() - Exécute une requête PostgreSQL
  • pg_last_error() - Lit le dernier message d'erreur sur la connexion


Retourne l'identifiant de la dernière ligne

  • « pg_last_notice
  • pg_lo_close »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne l'identifiant de la dernière ligne

pg_last_oid

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_last_oid — Retourne l'identifiant de la dernière ligne

Description

string pg_last_oid ( resource $result )

pg_last_oid() sert à récupérer le OID assigné à une ligne insérée.

Le champ OID est devenu optionnel depuis PostgreSQL 7.2 et ne sera plus présent par défaut dans PostgreSQL 8.1. Lorsque le champ OID n'est pas présent dans la table, le programmeur doit utiliser pg_result_status() pour vérifier si la ligne a été correctement insérée.

Pour obtenir la valeur d'un champ SERIAL dans une ligne insérée, il est nécessaire d'utiliser la fonction CURRVAL de PostgreSQL en nommant la séquence à qui la dernière valeur est requise. Si le nom de la séquence est inconnu, la fonction PostgreSQL 8.0 pg_get_serial_sequence est nécessaire.

PostgreSQL 8.1 a une fonction LASTVAL qui retourne la valeur de la séquence la plus récemment utilisée de la session. Ceci permet d'éviter de nommer la séquence, la table ou la colonne.

Note:

Auparavant, cette fonction s'appelait pg_getlastoid().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Une chaîne de caractères contenant le OID assigné à la plus récente ligne insérée dans la connexion connection spécifiée ou FALSE en cas d'erreur ou de OID indisponible.

Exemples

Exemple #1 Exemple avec pg_last_oid()

<?php
  // Connect to the database
  pg_connect("dbname=mark host=localhost");

  // Create a sample table
  pg_query("CREATE TABLE test (a INTEGER) WITH OIDS");

  // Insert some data into it
  $res = pg_query("INSERT INTO test VALUES (1)");

  $oid = pg_last_oid($res);
?>

Voir aussi

  • pg_query() - Exécute une requête PostgreSQL
  • pg_result_status() - Lit le statut du résultat


Ferme un objet de grande taille PostgreSQL

  • « pg_last_oid
  • pg_lo_create »
  • PHP Manual
  • Fonctions PostgreSQL
  • Ferme un objet de grande taille PostgreSQL

pg_lo_close

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_close — Ferme un objet de grande taille PostgreSQL

Description

bool pg_lo_close ( resource $large_object )

pg_lo_close() ferme un objet de type Inversion Large Object. large_object est un pointeur de fichier, obtenu avec pg_lo_open().

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note:

Auparavant, cette fonction s'appelait pg_loclose().

Liste de paramètres

result

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_lo_close()

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "données objet de grande taille");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>

Voir aussi

  • pg_lo_open() - Ouvre un objet de grande taille PostgreSQL
  • pg_lo_create() - Crée un objet de grande taille PostgreSQL
  • pg_lo_import() - Importe un objet de grande taille depuis un fichier


Crée un objet de grande taille PostgreSQL

  • « pg_lo_close
  • pg_lo_export »
  • PHP Manual
  • Fonctions PostgreSQL
  • Crée un objet de grande taille PostgreSQL

pg_lo_create

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_create — Crée un objet de grande taille PostgreSQL

Description

int pg_lo_create ([ resource $connection [, mixed $object_id ]] )
int pg_lo_create ( mixed $object_id )

pg_lo_create() crée un objet de grande taille et retourne son OID. Les modes d'accès PostgreSQL INV_READ, INV_WRITE et INV_ARCHIVE ne sont pas supportés : l'objet peut toujours être créé avec des droits d'accès en lecture et écriture. Le mode INV_ARCHIVE a été supprimé des bases PostgreSQL (version 6.3 et ultérieur).

Pour utiliser un objet de grande taille, il est nécessaire de le faire dans une transaction.

Au lieu d'utiliser l'interface d'objet de grande taille ((qui n'a aucun contrôle d'accès et qui est encombrant à utiliser), essayez la colonne de type bytea de PostgreSQL et pg_escape_bytea().

Note:

Auparavant, cette fonction s'appelait pg_locreate().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

object_id

Si le paramètre object_id est fourni, la fonction essayera de créer un objet large avec cet identifiant, sinon, un identifiant d'objet disponible sera assigné par le serveur. Ce paramètre a été ajouté en PHP 5.3 et cette fonctionnalité est apparue avec PostgreSQL 8.1.

Valeurs de retour

Un objet large OID ou FALSE en cas d'erreur.

Historique

Version | Description
5.3.0 | Le paramètre optionnel object_id a été ajouté.

Exemples

Exemple #1 Exemple avec pg_lo_create()

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "données objet de grande taille");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>


Exporte un objet de grande taille vers un fichier

  • « pg_lo_create
  • pg_lo_import »
  • PHP Manual
  • Fonctions PostgreSQL
  • Exporte un objet de grande taille vers un fichier

pg_lo_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_export — Exporte un objet de grande taille vers un fichier

Description

bool pg_lo_export ([ resource $connection ], int $oid , string $pathname )

pg_lo_export() prend un objet de grande taille de la base de données PostgreSQL et sauvegarde son contenu dans un fichier local au système.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note:

Auparavant, cette fonction s'appelait pg_loexport().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

oid

Le OID de l'objet de grande taille dans la base de données.

pathname

Le chemin d'accès complet ainsi que le fichier dans lequel il sera écrit l'objet de grande taille sur le système du client.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_lo_export()

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   $handle = pg_lo_open($database, $oid, "w");
   pg_lo_write($handle, "données objet de grande taille");
   pg_lo_close($handle);
   pg_lo_export($database, $oid, '/tmp/lob.dat');
   pg_query($database, "commit");
?>

Voir aussi

  • pg_lo_import() - Importe un objet de grande taille depuis un fichier


Importe un objet de grande taille depuis un fichier

  • « pg_lo_export
  • pg_lo_open »
  • PHP Manual
  • Fonctions PostgreSQL
  • Importe un objet de grande taille depuis un fichier

pg_lo_import

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_import — Importe un objet de grande taille depuis un fichier

Description

int pg_lo_import ([ resource $connection ], string $pathname [, mixed $object_id ] )

pg_lo_import() crée un nouvel objet de grande taille dans la base de données en utilisant un fichier dans le système de fichiers en tant que données sources.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note:

Auparavant, cette fonction s'appelait pg_loimport().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

pathname

Le chemin d'accès complet ainsi que le fichier dans lequel il sera lu l'objet de grande taille sur le système du client.

object_id

Si le paramètre object_id est fourni, la fonction essayera de créer un objet large avec cette identifiant, sinon, un identifiant d'objet disponible sera assigné par le serveur. Ce paramètre a été ajouté en PHP 5.3 et cette fonctionnalité est apparue avec PostgreSQL 8.1.

Valeurs de retour

Le OID du nouvel objet de grande taille créé ou FALSE en cas d'échec.

Historique

Version | Description
5.3.0 | Le paramètre optionnel object_id a été ajouté.

Exemples

Exemple #1 Exemple avec pg_lo_import()

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_import($database, '/tmp/lob.dat');
   pg_query($database, "commit");
?>

Voir aussi

  • pg_lo_export() - Exporte un objet de grande taille vers un fichier
  • pg_lo_open() - Ouvre un objet de grande taille PostgreSQL


Ouvre un objet de grande taille PostgreSQL

  • « pg_lo_import
  • pg_lo_read_all »
  • PHP Manual
  • Fonctions PostgreSQL
  • Ouvre un objet de grande taille PostgreSQL

pg_lo_open

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_open — Ouvre un objet de grande taille PostgreSQL

Description

resource pg_lo_open ( resource $connection , int $oid , string $mode )

pg_lo_open() ouvre un objet de type Inversion Large Object et retourne un pointeur de fichier pour cet objet permettant ainsi d'être manipulé.

Avertissement

Ne fermer pas la connexion à la base de données avant de fermer la ressource de l'objet de grande taille.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note:

Auparavant, cette fonction s'appelait pg_loopen().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

oid

Le OID de l'objet de grande taille dans la base de données.

mode

Peut être "r" pour lecture seule, "w" pour écriture seule ou "rw" pour lecture et écriture.

Valeurs de retour

Une ressource d'objet de grande taille ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_lo_open()

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "données objet de grande taille");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>

Voir aussi

  • pg_lo_close() - Ferme un objet de grande taille PostgreSQL
  • pg_lo_create() - Crée un objet de grande taille PostgreSQL


Lit un objet de grande taille en totalité

  • « pg_lo_open
  • pg_lo_read »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit un objet de grande taille en totalité

pg_lo_read_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_read_all — Lit un objet de grande taille en totalité

Description

int pg_lo_read_all ( resource $large_object )

pg_lo_read_all() lit un objet de grande taille en totalité et le passe directement au client, après les en-têtes adéquates. Cette fonction est prévue pour transmettre des sons ou des images.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note:

Auparavant, cette fonction s'appelait pg_loreadall().

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

Valeurs de retour

Nombre d'octets lu ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_lo_read_all()

<?php
   header('Content-type: image/jpeg');
   $image_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $image_oid, "r");
   pg_lo_read_all($handle);
   pg_query($database, "commit");
?>

Voir aussi

  • pg_lo_read() - Lit un objet de grande taille


Lit un objet de grande taille

  • « pg_lo_read_all
  • pg_lo_seek »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit un objet de grande taille

pg_lo_read

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_read — Lit un objet de grande taille

Description

string pg_lo_read ( resource $large_object [, int $len = 8192 ] )

pg_lo_read() lit au plus len octets d'un objet de grande taille, et retourne les données sous la forme d'une chaîne.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note:

Auparavant, cette fonction s'appelait pg_loread().

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

len

Un nombre maximal d'octets à retourner. Cet argument est optionnel.

Valeurs de retour

Une chaîne contenant len octets de l'objet de grande taille ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_lo_read()

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   $data = pg_lo_read($handle, 50000);
   pg_query($database, "commit");
   echo $data;
?>

Voir aussi

  • pg_lo_read_all() - Lit un objet de grande taille en totalité


Modifie la position dans un objet de grande taille

  • « pg_lo_read
  • pg_lo_tell »
  • PHP Manual
  • Fonctions PostgreSQL
  • Modifie la position dans un objet de grande taille

pg_lo_seek

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_seek — Modifie la position dans un objet de grande taille

Description

bool pg_lo_seek ( resource $large_object , int $offset [, int $whence = PGSQL_SEEK_CUR ] )

pg_lo_seek() modifie la position du pointeur dans l'objet de grande taille large_object.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

offset

Le nombre d'octets de déplacement.

whence

Une de ces constantes PGSQL_SEEK_SET (positionne à partir du début de l'objet), PGSQL_SEEK_CUR (positionne à partir de la position courante) ou PGSQL_SEEK_END (positionne à partir de la fin de l'objet).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_lo_seek()

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Saute les 50000 premiers octets
   pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
   // Lit les prochains 10000 octetss
   $data = pg_lo_read($handle, 10000);
   pg_query($database, "commit");
   echo $data;
?>

Historique

Version | Description
5.6.0 | Ajoute le support des objetslarges 64 bit en PostgreSQL 9.3. À la fois le client et le serveur doivent supporter PostgreSQL 9.3 et PHP doit avoir été compilé en 64 bit pour utiliser les objets larges 64 bit.

Voir aussi

  • pg_lo_tell() - Retourne la position courante dans un objet de grande taille PostgreSQL


Retourne la position courante dans un objet de grande taille PostgreSQL

  • « pg_lo_seek
  • pg_lo_truncate »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne la position courante dans un objet de grande taille PostgreSQL

pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_tell — Retourne la position courante dans un objet de grande taille PostgreSQL

Description

int pg_lo_tell ( resource $large_object )

pg_lo_tell() retourne la position courante (à partir du début) du pointeur de lecture sur l'objet de grande taille large_object.

Pour utiliser une interface avec un objet de grande taille, il est nécessaire de l'inclure dans un bloc de transaction.

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

Valeurs de retour

La position courante du pointeur (en nombre d'octets) à partir du début de l'objet de grande taille. S'il y a une erreur, la valeur retournée sera négative.

Exemples

Exemple #1 Exemple avec pg_lo_tell()

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Saute les 50000 premiers octets
   pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
   // On vérifie combien d'octets nous avons sauté
   $offset = pg_lo_tell($handle);
   echo "Position du pointeur est : $offset";
   pg_query($database, "commit");
?>

L'exemple ci-dessus va afficher :

Position du pointeur est : 50000

Historique

Version | Description
5.6.0 | Ajoute le support des objetslarges 64 bit en PostgreSQL 9.3. À la fois le client et le serveur doivent supporter PostgreSQL 9.3 et PHP doit avoir été compilé en 64 bit pour utiliser les objets larges 64 bit.

Voir aussi

  • pg_lo_seek() - Modifie la position dans un objet de grande taille


Tronque un objet large

  • « pg_lo_tell
  • pg_lo_unlink »
  • PHP Manual
  • Fonctions PostgreSQL
  • Tronque un objet large

pg_lo_truncate

(No version information available, might only be in Git)

pg_lo_truncate — Tronque un objet large

Description

bool pg_lo_truncate ( resource $large_object , int $size )

pg_lo_truncate() tronque une ressource d'objet large.

Pour utiliser l'interface des objets larges, il est nécessaire de l'enfermer dans un verrou de transaction.

Liste de paramètres

large_object

Ressource d'objet large PostgreSQL (LOB), retourné par pg_lo_open().

size

Le nombre d'octets à tronquer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_lo_truncate()

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Tronque à 0
   pg_lo_truncate($handle, 0);
   pg_query($database, "commit");
   echo $data;
?>

Historique

Version | Description
5.6.0 | Ajout de la fonction de troncage. Elle supporte les objets larges 64 bits PostgreSQL 9.3. Le client et le serveur doivent avoir le support de PostgreSQL 9.3 et PHP doit avoir été compilé en 64 bits.

Voir aussi

  • pg_lo_tell() - Retourne la position courante dans un objet de grande taille PostgreSQL


Efface un objet de grande taille PostgreSQL

  • « pg_lo_truncate
  • pg_lo_write »
  • PHP Manual
  • Fonctions PostgreSQL
  • Efface un objet de grande taille PostgreSQL

pg_lo_unlink

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_unlink — Efface un objet de grande taille PostgreSQL

Description

bool pg_lo_unlink ( resource $connection , int $oid )

pg_lo_unlink() efface l'objet de grande taille dont l'identifiant est oid, pour la connexion connection. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note:

Auparavant, cette fonction s'appelait pg_lounlink().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

oid

Le OID de l'objet de grande taille dans la base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_lo_unlink()

<?php
   // OID de l'objet de grande taille à supprimer
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   pg_lo_unlink($database, $doc_oid);
   pg_query($database, "commit");
?>

Voir aussi

  • pg_lo_create() - Crée un objet de grande taille PostgreSQL
  • pg_lo_import() - Importe un objet de grande taille depuis un fichier


Écrit un objet de grande taille PostgreSQL

  • « pg_lo_unlink
  • pg_meta_data »
  • PHP Manual
  • Fonctions PostgreSQL
  • Écrit un objet de grande taille PostgreSQL

pg_lo_write

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_write — Écrit un objet de grande taille PostgreSQL

Description

int pg_lo_write ( resource $large_object , string $data [, int $len ] )

pg_lo_write() écrit des données à l'intérieur d'un objet de grande taille à la position courante.

Pour manipuler un objet de grande taille (lo), il est nécessaire de placer les opérations dans un bloc de transaction.

Note:

Auparavant, cette fonction s'appelait pg_lowrite().

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

data

Les données à être écrites dans l'objet de grande taille. Si len est spécifié et est inférieur à la grandeur de data, seul les len octets y seront écrits.

len

Un nombre maximal d'octets à écrire. Il doit être supérieur à zéro et inférieur à la grandeur de data. Cet argument est optionnel, s'il est omis, il prendra par défaut la grandeur de data.

Valeurs de retour

Le nombre d'octets écrit dans l'objet de grande taille ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_lo_write()

<?php
   $doc_oid = 189762345;
   $data = "Ceci écrasera le début de l'objet de grande taille.";
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "w");
   $data = pg_lo_write($handle, $data);
   pg_query($database, "commit");
?>

Voir aussi

  • pg_lo_create() - Crée un objet de grande taille PostgreSQL
  • pg_lo_open() - Ouvre un objet de grande taille PostgreSQL


Lit les métadonnées de la table PostgreSQL

  • « pg_lo_write
  • pg_num_fields »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit les métadonnées de la table PostgreSQL

pg_meta_data

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_meta_data — Lit les métadonnées de la table PostgreSQL

Description

array pg_meta_data ( resource $connection , string $table_name [, bool $extended ] )

pg_meta_data() retourne la définition de la table table_name sous forme de tableau.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Le nom de la table.

extended

Drapeau pour retourner les méta-données étendus. Par défaut, vaut FALSE.

Valeurs de retour

Un tableau de la table de définition ou FALSE en cas d'erreur.

Exemples

Exemple #1 Récupération des métadonnées d'une table

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  $meta = pg_meta_data($dbconn,'auteurs');
  if (is_array ($meta)) {
       echo '<pre>';
       var_dump ($meta);
       echo '</pre>';
  }
?>

L'exemple ci-dessus va afficher :

array(3) {
["auteur"]=>
array(5) {
  ["num"]=>
  int(1)
  ["type"]=>
  string(7) "varchar"
  ["len"]=>
  int(-1)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
["annee"]=>
array(5) {
  ["num"]=>
  int(2)
  ["type"]=>
  string(4) "int2"
  ["len"]=>
  int(2)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
["titre"]=>
array(5) {
  ["num"]=>
  int(3)
  ["type"]=>
  string(7) "varchar"
  ["len"]=>
  int(-1)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
}

Historique

Version | Description
5.6.0 | La fonction n'est plus expérimentale. Ajout de l'attribut par défaut "is enum". Le drapeau extended a été ajouté.

Voir aussi

  • pg_convert() - Convertit des tableaux associatifs en une commande PostgreSQL


Retourne le nombre de champ

  • « pg_meta_data
  • pg_num_rows »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne le nombre de champ

pg_num_fields

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_num_fields — Retourne le nombre de champ

Description

int pg_num_fields ( resource $result )

pg_num_fields() retourne le nombre de champs (ou colonnes) d'un résultat PostgreSQL.

Note:

Auparavant, cette fonction s'appelait pg_numfields().

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Le nombre de champs (ou colonne) dans le jeu de résultats. En cas d'erreur, -1 est retourné.

Exemples

Exemple #1 Exemple avec pg_num_fields()

<?php
$result = pg_query($conn, "SELECT 1, 2");

$num = pg_num_fields($result);

echo $num . " champ(s) retourné(s).\n";
?>

L'exemple ci-dessus va afficher :

2 champ(s) retourné(s).

Voir aussi

  • pg_num_rows() - Retourne le nombre de lignes PostgreSQL
  • pg_affected_rows() - Retourne le nombre de lignes affectées


Retourne le nombre de lignes PostgreSQL

  • « pg_num_fields
  • pg_options »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne le nombre de lignes PostgreSQL

pg_num_rows

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_num_rows — Retourne le nombre de lignes PostgreSQL

Description

int pg_num_rows ( resource $result )

pg_num_rows() retourne le nombre de lignes d'un résultat PostgreSQL.

Note:

Auparavant, cette fonction s'appelait pg_numrows().

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Le nombre de lignes dans le jeu de résultats. En cas d'erreur, -1 est retourné.

Exemples

Exemple #1 Exemple avec pg_num_rows()

<?php
$result = pg_query($conn, "SELECT 1");

$rows = pg_num_rows($result);

echo $rows . " ligne(s) retournée(s).\n";
?>

L'exemple ci-dessus va afficher :

1 ligne(s) retournée(s).

Voir aussi

  • pg_num_fields() - Retourne le nombre de champ
  • pg_affected_rows() - Retourne le nombre de lignes affectées


Retourne les options PostgreSQL

  • « pg_num_rows
  • pg_parameter_status »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne les options PostgreSQL

pg_options

(PHP 4, PHP 5, PHP 7)

pg_options — Retourne les options PostgreSQL

Description

string pg_options ([ resource $connection ] )

pg_options() retourne une chaîne contenant les options de la connexion PostgreSQL connection.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne contenant les options de connection ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_options()

<?php
   $pgsql_conn = pg_connect("dbname=mark host=localhost");
   echo pg_options($pgsql_conn);
?>

Voir aussi

  • pg_connect() - Établit une connexion PostgreSQL


Consulte un paramètre de configuration courant du serveur

  • « pg_options
  • pg_pconnect »
  • PHP Manual
  • Fonctions PostgreSQL
  • Consulte un paramètre de configuration courant du serveur

pg_parameter_status

(PHP 5, PHP 7)

pg_parameter_status — Consulte un paramètre de configuration courant du serveur

Description

string pg_parameter_status ([ resource $connection ], string $param_name )

Consulte un paramètre de configuration courant du serveur.

Certaines valeurs de paramètres sont retournées par le serveur automatiquement lors du démarrage de la connexion ou lorsqu'une valeur change. pg_parameter_status() peut être utilisée pour interroger ces configurations. La fonction retourne la valeur courante du paramètre s'il et connu ou FALSE si le paramètre est inconnu.

Les paramètres retournés par PostgreSQL 8.0 sont server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone et integer_datetimes. (server_encoding, TimeZone et integer_datetimes n'étaient pas retournés dans les versions antérieures à 8.0.) Notez que server_version, server_encoding et integer_datetimes ne peuvent changer après le démarrage de PostgreSQL.

Les serveurs PostgreSQL 7.3 ou de versions inférieures ne retournent pas de paramètres de configurations, pg_parameter_status() inclut une logique pour obtenir des valeurs pour server_version et client_encoding quand même. Les applications devraient utiliser pg_parameter_status() au lieu du code ad hoc pour déterminer ces valeurs.

Attention

Sur les versions des serveurs PostgreSQL 7.4 et antérieures, le changement de client_encoding avec SET après le démarrage de la connexion ne sera pas réfléchie par pg_parameter_status().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

param_name

Les valeurs possibles de param_name sont server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone et integer_datetimes.

Valeurs de retour

Une chaîne contenant la valeur du paramètre, FALSE en cas d'échec ou du paramètre param_name invalide.

Exemples

Exemple #1 Exemple avec pg_parameter_status()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  echo "Encodage du serveur : ", pg_parameter_status($dbconn, "server_encoding");
?>

L'exemple ci-dessus va afficher :

Encodage du serveur : SQL_ASCII


Établit une connexion PostgreSQL persistante

  • « pg_parameter_status
  • pg_ping »
  • PHP Manual
  • Fonctions PostgreSQL
  • Établit une connexion PostgreSQL persistante

pg_pconnect

(PHP 4, PHP 5, PHP 7)

pg_pconnect — Établit une connexion PostgreSQL persistante

Description

resource pg_pconnect ( string $connection_string [, int $connect_type ] )

pg_pconnect() retourne une ressource de connexion persistante en cas de succès, ou FALSE en cas d'erreur.

Si un second appel est fait à pg_pconnect() avec le même connection_string comme étant une connexion existante, la connexion existante sera retournée à moins que vous ne passez PGSQL_CONNECT_FORCE_NEW à connect_type.

Pour activer les connexions persistantes, la directive de configuration pgsql.allow_persistent du php.ini doit être mise à "On" (ce qui est sa valeur par défaut). Le nombre maximal de connexions peut être limité grâce à la directive de configuration pgsql.max_persistent dans le fichier php.ini (par défaut, elle vaut -1, c'est à dire pas de limite). Le nombre total de connexions peut être configuré avec la directive pgsql.max_links du fichier php.ini.

pg_close() ne refermera pas les connexions persistantes générées par pg_pconnect().

Liste de paramètres

connection_string

La chaîne connection_string peut être vide pour utiliser tous les paramètres par défaut ou elle peut contenir un ou plusieurs paramètres de configuration séparés par des espaces. Chaque paramètre de configuration est sous la forme code = valeur. Les espaces autour du signe égal sont optionnels. Pour écrire une valeur vide ou une valeur contenant des espaces, entourez cette valeur avec des apostrophes, par exemple : code = 'une valeur'. Les apostrophes et les antislashs à l'intérieur de la valeur doivent être échappés par un antislash, c'est-à-dire \' et \\.

Les mots-clé actuellement reconnus sont : host, hostaddr, port, dbname, user, password, connect_timeout, options, tty (ignoré), sslmode, requiressl (obsolète, utilisez sslmode) et service. La liste de ces arguments dépend de la version de votre serveur PostgreSQL.

connect_type

Si PGSQL_CONNECT_FORCE_NEW est passé en argument, alors une nouvelle connexion sera créée, même si la chaîne connection_string est identique à celle de la connexion existante.

Valeurs de retour

Ressource de connexion PostgreSQL en cas de succès, FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec pg_pconnect()

<?php
$dbconn = pg_pconnect("dbname=marie");
// connexion à une base de données nommée "marie"

$dbconn2 = pg_pconnect("host=localhost port=5432 dbname=marie");
// connexion à une base de données nommée "marie" sur l'hôte "localhost" sur le port "5432"

$dbconn3 = pg_pconnect("host=mouton port=5432 dbname=marie user=agneau password=foo");
// connexion à une base de données nommée "marie" sur l'hôte "mouton" avec un
// nom d'utilisateur et un mot de passe

$conn_string = "host=mouton port=5432 dbname=test user=agneau password=bar";
$dbconn4 = pg_pconnect($conn_string);
// connexion à une base de données nommée "test" sur l'hôte "mouton" avec un
// nom d'utilisateur et un mot de passe
?>

Voir aussi

  • pg_connect() - Établit une connexion PostgreSQL
  • Connexions Persistantes


Ping la connexion à la base

  • « pg_pconnect
  • pg_port »
  • PHP Manual
  • Fonctions PostgreSQL
  • Ping la connexion à la base

pg_ping

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_ping — Ping la connexion à la base

Description

bool pg_ping ([ resource $connection ] )

pg_ping() ping la connexion à la base de données et essaie de se reconnecter si la connexion est perdue.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_ping()

<?php
$conn = pg_pconnect ("dbname=publisher");
if (!$conn) {
  echo "Une erreur est survenue.\n";
  exit;
}

if (!pg_ping($conn))
  die("La connexion est perdue\n");
?>

Voir aussi

  • pg_connection_status() - Lit le statut de la connexion PostgreSQL
  • pg_connection_reset() - Relance la connexion au serveur PostgreSQL


Retourne le numéro de port

  • « pg_ping
  • pg_prepare »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne le numéro de port

pg_port

(PHP 4, PHP 5, PHP 7)

pg_port — Retourne le numéro de port

Description

int pg_port ([ resource $connection ] )

pg_port() retourne le numéro de port de la connexion identifiée connection.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Un entier contenant le numéro du port du serveur de base de données identifié par connection ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_port()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Connecté correctement au port : " . pg_port($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>


Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution

  • « pg_port
  • pg_put_line »
  • PHP Manual
  • Fonctions PostgreSQL
  • Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution

pg_prepare

(PHP 5 >= 5.1.0, PHP 7)

pg_prepare — Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution

Description

resource pg_prepare ([ resource $connection ], string $stmtname , string $query )

pg_prepare() crée une requête préparée pour une exécution ultérieure avec pg_execute() ou pg_send_execute(). Cette caractéristique permet aux commandes qui seront utilisées à plusieurs reprises d'être analysées et planifiées qu'une seule fois, plutôt que d'être exécutées chaque fois. pg_prepare() est supportée seulement avec les versions PostgreSQL 7.4 ou plus récentes; la commande échouera si vous l'utilisez avec des versions antérieures.

La fonction crée une requête préparée nommée stmtname à partir de la chaîne query, celle-ci doit contenir qu'une seule commande SQL. stmtname peut être vide ("") pour créer une requête qui n'est pas nommée. Dans ce cas, les requêtes qui existaient et qui se trouvaient sans noms sont automatiquement remplacées; autrement, il y aura une erreur si le nom de la requête est déjà défini dans la session courante. Si des paramètres sont utilisés, ils sont référés à $1, $2, etc. dans query.

Des requêtes préparées à utiliser avec pg_prepare() peuvent être aussi créées en exécutant la requête SQL PREPARE. (Par contre, pg_prepare() est plus flexible puisqu'elle ne nécessite pas que les types des paramètres soit préspécifiés.) De plus, bien qu'il n'y a pas de fonction PHP pour supprimer une requête préparée, la requête SQL DEALLOCATE peut être utilisé pour ce motif.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

stmtname

Le nom à donner à la requête préparée. Il doit être unique à chaque session. Si une chaîne vide est spécifiée ("") alors une requête sans nom est créée, écrasant les requêtes sans noms précédemment définies.

query

La requête SQL avec ses paramètres. Elle doit contenir seulement une seule requête. Plusieurs requêtes séparées par des points-virgules ne sont pas autorisées. Si des paramètres sont utilisés, ils sont référés à $1, $2, etc.

Valeurs de retour

Une ressource de résultats en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_prepare()

<?php
// Connexion à une base de données nommée "marie"
$dbconn = pg_connect("dbname=marie");

// Prépare une requête pour l'exécution
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM magasins WHERE nom = $1');

// Exécute la requête préparée. Notez qu'il n'est pas nécessaire d'échapper
// la chaîne "Joe's Widgets"
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Exécute la même requête préparée, cette fois avec un paramètre différent
$result = pg_execute($dbconn, "my_query", array("Vêtements Vêtements Vêtements"));

?>

Voir aussi

  • pg_execute() - Exécute une requête préparée PostGreSQL
  • pg_send_execute() - Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)


Envoie une chaîne au serveur PostgreSQL

  • « pg_prepare
  • pg_query_params »
  • PHP Manual
  • Fonctions PostgreSQL
  • Envoie une chaîne au serveur PostgreSQL

pg_put_line

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pg_put_line — Envoie une chaîne au serveur PostgreSQL

Description

bool pg_put_line ([ resource $connection ], string $data )

pg_put_line() envoie une chaîne (terminée par NULL) au serveur PostgreSQL. Ceci est nécessaire en conjonction avec une commande COPY FROM PostgreSQL.

COPY est un chargement très rapide des données supporté par PostgreSQL. Les données sont passées sans être analysées et dans une simple transaction.

Une alternative plutôt que d'utiliser la commande brute pg_put_line() est d'utiliser pg_copy_from(). C'est une interface bien plus simple.

Note:

Notez que l'application doit explicitement ajouter les deux caractères "\." à la fin de la chaîne pour indiquer au serveur qu'elle a finit d'envoyer des données, avant d'appeler pg_end_copy().

Avertissement

L'utilisation de pg_put_line() cause sur la plupart des objets de grande taille à échouer, incluant pg_lo_read() et pg_lo_tell(). Vous pouvez utiliser pg_copy_from() et pg_copy_to() à la place.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

data

Une ligne de texte à envoyer directement au serveur PostgreSQL. Un caractère d'arrêt NULL est automatiquement ajouté.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_put_line()

<?php
  $conn = pg_pconnect("dbname=foo");
  pg_query($conn, "create table bar (a int4, b char(16), d float8)");
  pg_query($conn, "copy bar from stdin");
  pg_put_line($conn, "3\tBonjour le monde\t4.5\n");
  pg_put_line($conn, "4\tAurevoir le monde\t7.11\n");
  pg_put_line($conn, "\\.\n");
  pg_end_copy($conn);
?>

Voir aussi

  • pg_end_copy() - Synchronise avec le serveur PostgreSQL


Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL

  • « pg_put_line
  • pg_query »
  • PHP Manual
  • Fonctions PostgreSQL
  • Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL

pg_query_params

(PHP 5 >= 5.1.0, PHP 7)

pg_query_params — Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL

Description

resource pg_query_params ([ resource $connection ], string $query , array $params )

Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL.

pg_query_params() est comme pg_query(), mais offre des fonctionnalités additionnelles : les valeurs des paramètres peuvent être spécifiées séparément de la ligne de commande propre. pg_query_params() est supportée seulement avec les versions PostgreSQL 7.4 ou plus récentes; la commande échouera si vous l'utilisez avec des versions antérieures.

Si des paramètres sont utilisés, ils sont référés à $1, $2, etc. dans query. Le même paramètre peut survenir plus d'une fois dans la requête query ; la même valeur sera utilisée dans ce cas. params spécifie les valeurs actuelles des paramètres. Une valeur NULL dans ce tableau signifie que le paramètre correspondant est SQL NULL.

Le principal avantage de pg_query_params() sur pg_query() est que les valeurs des paramètres peuvent être séparées de la requête query, par conséquent, on invite les échappements de caractères ennuyeux et source d'erreurs. Contrairement à pg_query(), pg_query_params() permet seulement une seule commande SQL dans la chaîne donnée. (Il peut y avoir des points-virgules à l'intérieur mais pas plus d'une seule commande.)

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

query

La requête SQL avec ses paramètres. Elle doit contenir seulement une seule requête. Plusieurs requêtes séparées par des points-virgules ne sont pas autorisées. Si des paramètres sont utilisés, ils sont référés à $1, $2, etc.

Les valeurs fournies par l'utilisateur doivent toujours être passées comme paramètres, et non interpolées dans la chaîne de requête, où elles peuvent potentiellement former des injections SQL et introduire des bogues lorsque ces données contiennent des guillemets. Si pour une raison quelconque vous ne pouvez pas utiliser de paramètres, assurez-vous que les valeurs interpolées sont proprement échappées.

params

Un tableau de valeurs de paramètres pour substituer les variables $1, $2, etc. dans la requête préparée originale. Le nombre d'éléments présents dans le tableau doit concorder avec le nombre de variables à remplacer.

Les valeurs attendues pour les champs bytea ne sont pas supportées comme paramètres. Utilisez plutôt la fonction pg_escape_bytea() ou utilisez les fonctions sur les objets larges.

Valeurs de retour

Une ressource de résultats en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_query_params()

<?php
// Connexion à une base de données nommée "marie"
$dbconn = pg_connect("dbname=marie");

// Cherche tous les magasins nommés Joe's Widgets. Notez qu'il n'est pas
// nécessaire d'échapper la chaîne "Joe's Widgets"
$result = pg_query_params($dbconn, 'SELECT * FROM magasins WHERE nom = $1', array("Joe's Widgets"));

// Compare en utilisant pg_query
$str = pg_escape_string("Joe's Widgets");
$result = pg_query($dbconn, "SELECT * FROM magasins WHERE nom = '{$str}'");

?>

Voir aussi

  • pg_query() - Exécute une requête PostgreSQL


Exécute une requête PostgreSQL

  • « pg_query_params
  • pg_result_error_field »
  • PHP Manual
  • Fonctions PostgreSQL
  • Exécute une requête PostgreSQL

pg_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_query — Exécute une requête PostgreSQL

Description

resource pg_query ([ resource $connection ], string $query )

pg_query() exécute la requête query sur la base de données spécifiée connection. pg_query_params() doit être préféré dans la plupart des cas.

Si une erreur se produit et FALSE est retourné, les détails de l'erreur peuvent être récupérés en utilisant la fonction pg_last_error() si la connexion est valide.

Note: Bien que connection puisse être omis, il n'est pas recommandé de le faire, car il peut se révéler difficile de retrouver les bogues dans les scripts.

Note:

Auparavant, cette fonction s'appelait pg_exec(). pg_exec() est toujours disponible pour des raisons de compatibilité, mais les utilisateurs sont encouragés à utiliser le nouveau nom.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

query

La requête ou les requêtes SQL à être exécutées. Lorsque plusieurs requêtes sont passées à la fonction, elles sont automatiquement exécutées comme étant une transaction, à moins qu'il y aille les commandes BEGIN/COMMIT incluses dans la requête. Cependant, l'utilisation de transactions multiples dans un seul appel de fonction n'est pas recommandée.

Avertissement

L'inperpolation des chaînes de caractères fournies par l'utilisateur est extrèmement dangereux et vous devez garder en tête l'ensemble des vulnérabilités concernant les injections SQL. Dans la plupart des cas, la fonction pg_query_params() doit être préférée ; il est préférable de passer les valeurs fournies par l'utilisateur comme paramètres, plutôt que de les substituer dans la requête.

Toutes données utilisateur substituées directement dans la chaîne de la requête doivent être proprement échappées.

Valeurs de retour

Une ressource de résultats en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_query()

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Une erreur s'est produite.\n";
  exit;
}

$result = pg_query($conn, "SELECT auteur, email FROM auteurs");
if (!$result) {
  echo "Une erreur s'est produite.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Auteur: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Exemple #2 Utilisation de pg_query() avec plusieurs requêtes

<?php

$conn = pg_pconnect("dbname=publisher");

// ces requêtes seront exécutées en tant qu'une seule transaction

$query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
$query .= "UPDATE authors SET author=NULL WHERE id=3;";

pg_query($conn, $query);

?>

Voir aussi

  • pg_connect() - Établit une connexion PostgreSQL
  • pg_pconnect() - Établit une connexion PostgreSQL persistante
  • pg_fetch_array() - Lit une ligne de résultat PostgreSQL dans un tableau
  • pg_fetch_object() - Lit une ligne de résultat PostgreSQL dans un objet
  • pg_num_rows() - Retourne le nombre de lignes PostgreSQL
  • pg_affected_rows() - Retourne le nombre de lignes affectées


Retourne un champ individuel d'un rapport d'erreur

  • « pg_query
  • pg_result_error »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne un champ individuel d'un rapport d'erreur

pg_result_error_field

(PHP 5 >= 5.1.0, PHP 7)

pg_result_error_field — Retourne un champ individuel d'un rapport d'erreur

Description

string pg_result_error_field ( resource $result , int $fieldcode )

pg_result_error_field() retourne un des champs détaillés de message d'erreur qui sont associés à la ressource result. Cette fonction est disponible seulement sur les serveurs PostgreSQL 7.4 ou supérieurs. Le champ d'erreur est spécifié par fieldcode.

Puisque pg_query() et pg_query_params() retourne FALSE si la requête échoue, vous devez utiliser pg_send_query() et pg_get_result() pour obtenir le jeu de résultats.

Si vous avez besoin d'obtenir plus d'informations sur l'erreur lors de
l'échec des requêtes avec pg_query(), utilisez
pg_set_error_verbosity() et
pg_last_error() et analyser ensuite le résultat.

Liste de paramètres

result

Une ressource requête PostgreSQL provenant d'une requête précédemment exécutée.

fieldcode

Les valeurs possibles de fieldcode sont : PGSQL_DIAG_SEVERITY, PGSQL_DIAG_SQLSTATE, PGSQL_DIAG_MESSAGE_PRIMARY, PGSQL_DIAG_MESSAGE_DETAIL, PGSQL_DIAG_MESSAGE_HINT, PGSQL_DIAG_STATEMENT_POSITION, PGSQL_DIAG_INTERNAL_POSITION (PostgreSQL 8.0+ seulement), PGSQL_DIAG_INTERNAL_QUERY (PostgreSQL 8.0+ seulement), PGSQL_DIAG_CONTEXT, PGSQL_DIAG_SOURCE_FILE, PGSQL_DIAG_SOURCE_LINE ou PGSQL_DIAG_SOURCE_FUNCTION.

Valeurs de retour

Retourne une chaîne contenant le contenu du champ d'erreur, NULL si le champ n'existe pas ou FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec pg_result_error_field()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from nexistepas;");
  }

  $res1 = pg_get_result($dbconn);
  echo pg_result_error_field($res1, PGSQL_DIAG_SQLSTATE);
?>

Voir aussi

  • pg_result_error() - Lit le message d'erreur associé à un résultat


Lit le message d'erreur associé à un résultat

  • « pg_result_error_field
  • pg_result_seek »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit le message d'erreur associé à un résultat

pg_result_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_result_error — Lit le message d'erreur associé à un résultat

Description

string pg_result_error ( resource $result )

pg_result_error() retourne le message d'erreur associé au résultat result. Par conséquent, l'utilisateur a des chances d'obtenir un message d'erreur plus approprié que via pg_last_error().

La fonction pg_result_error_field() peut donner bien plus de détails sur les erreurs que pg_result_error().

Comme pg_query() retourne FALSE si la requête échoue, vous devez utiliser pg_send_query() et pg_get_result() pour récupérer la ressource de résultat.

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Retourne une chaîne de caractères. Retourne une chaîne vide s'il n'y a aucune erreur. S'il y a une erreur associée avec le paramètre result, FALSE sera retourné.

Exemples

Exemple #1 Exemple avec pg_result_error()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from nexistepas;");
  }

  $res1 = pg_get_result($dbconn);
  echo pg_result_error($res1);
?>

Voir aussi

  • pg_result_error_field() - Retourne un champ individuel d'un rapport d'erreur
  • pg_query() - Exécute une requête PostgreSQL
  • pg_send_query() - Exécute une requête PostgreSQL asynchrone
  • pg_get_result() - Lit un résultat PostgreSQL asynchrone
  • pg_last_error() - Lit le dernier message d'erreur sur la connexion
  • pg_last_notice() - Retourne la dernière note du serveur PostgreSQL


Modifie la ligne courant dans un résultat

  • « pg_result_error
  • pg_result_status »
  • PHP Manual
  • Fonctions PostgreSQL
  • Modifie la ligne courant dans un résultat

pg_result_seek

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_result_seek — Modifie la ligne courant dans un résultat

Description

bool pg_result_seek ( resource $result , int $offset )

pg_result_seek() choisit la ligne offset comme ligne courante dans le résultat result.

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

offset

Ligne à déplacer la position interne dans le jeu de résultats result. Les lignes sont numérotées à partir de zéro.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_result_seek()

<?php

// Connexion à la base de données
$conn = pg_pconnect("dbname=publisher");

// Exécution de la requête
$result = pg_query($conn, "SELECT auteur, email FROM auteurs");

// Déplacement à la troisième ligne (on assume qu'il y a 3 lignes)
pg_result_seek($result, 2);

// Récupération de la troisième ligne
$row = pg_fetch_row($result);

?>

Voir aussi

  • pg_fetch_row() - Lit une ligne dans un tableau
  • pg_fetch_assoc() - Lit une ligne de résultat PostgreSQL sous forme de tableau associatif
  • pg_fetch_array() - Lit une ligne de résultat PostgreSQL dans un tableau
  • pg_fetch_object() - Lit une ligne de résultat PostgreSQL dans un objet
  • pg_fetch_result() - Retourne les valeurs d'un résultat


Lit le statut du résultat

  • « pg_result_seek
  • pg_select »
  • PHP Manual
  • Fonctions PostgreSQL
  • Lit le statut du résultat

pg_result_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_result_status — Lit le statut du résultat

Description

mixed pg_result_status ( resource $result [, int $type = PGSQL_STATUS_LONG ] )

pg_result_status() retourne le statut du résultat result ou la commande d'exécution de PostgreSQL associée au résultat.

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

type

Soit PGSQL_STATUS_LONG pour retourner un statut numérique de result ou PGSQL_STATUS_STRING pour retourner le tag de la commande de result. Si l'argument n'est pas spécifié, PGSQL_STATUS_LONG est la valeur par défaut.

Valeurs de retour

Les valeurs de retour possibles sont PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_OUT, PGSQL_COPY_IN, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR et PGSQL_FATAL_ERROR si PGSQL_STATUS_LONG est spécifié. Autrement, une chaîne contenant le tag de la commande PostgreSQL est retourné.

Exemples

Exemple #1 Exemple avec pg_result_status()

<?php

// Connexion à la base de données
$conn = pg_pconnect("dbname=publisher");

// Exécution de COPY
$result = pg_query($conn, "COPY auteurs FROM STDIN;");

// Récupération du statut
$status = pg_result_status($result);

// Détermination du statut
if ($status == PGSQL_COPY_IN)
   echo "Le copiage a eu lieu.";
else
   echo "Le copiage a échoué.";

?>

L'exemple ci-dessus va afficher :

Le copiage a eu lieu.

Voir aussi

  • pg_connection_status() - Lit le statut de la connexion PostgreSQL


Effectue une sélection PostgreSQL

  • « pg_result_status
  • pg_send_execute »
  • PHP Manual
  • Fonctions PostgreSQL
  • Effectue une sélection PostgreSQL

pg_select

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_select — Effectue une sélection PostgreSQL

Description

mixed pg_select ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC ] )

pg_select() sélectionne les enregistrements par assoc_array qui est au format champ=>valeur. Lorsque la requête réussit, elle retourne un tableau contenant tous les enregistrements et champs qui vérifient la condition spécifiée par assoc_array.

Si options est spécifiée, pg_convert() est appliquée à assoc_array avec les drapeaux spécifiés.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Nom de la table dans laquelle on sélectionne les lignes.

assoc_array

Un tableau à qui les clés sont les noms des champs dans la table table_name et à qui les valeurs sont les conditions que la ligne doit vérifier pour être récupérée.

options

N'importe quelle de PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC ou PGSQL_DML_STRING combinée. Si PGSQL_DML_STRING fait partie de options alors la requête est retournée sous forme de chaîne de caractères. Lorsque la constante PGSQL_DML_NO_CONV ou la constante PGSQL_DML_ESCAPE est définie, aucun appel à la fonction pg_convert() ne sera effectué en interne.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Retourne une chaîne de caractères si PGSQL_DML_STRING est passé via options.

Exemples

Exemple #1 Exemple avec pg_select()

<?php
  $db = pg_connect ('dbname=foo');
  // C'est sécuritaire, car $_POST est converti automatiquement
  $rec = pg_select($db, 'post_log', $_POST);
  if ($rec) {
    echo "Lignes lues\n";
    var_dump($rec);
  } else {
    echo "Problème dans les données utilisateur\n";
  }
?>

Historique

Version | Description
5.6.0 | La fonction n'est plus expérimentale. Ajout de la constante PGSQL_DML_ESCAPE ainsi que du support des données de type TRUE/FALSE et NULL.
5.5.3/5.4.19 | Les injections SQL directes dans table_name et les injections SQL indirectes via les identifiants ont été résolues.

Voir aussi

  • pg_convert() - Convertit des tableaux associatifs en une commande PostgreSQL


Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)

  • « pg_select
  • pg_send_prepare »
  • PHP Manual
  • Fonctions PostgreSQL
  • Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)

pg_send_execute

(PHP 5 >= 5.1.0, PHP 7)

pg_send_execute — Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)

Description

bool pg_send_execute ( resource $connection , string $stmtname , array $params )

Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s).

Cette fonction est similaire à pg_send_query_params(), mais la commande qui sera exécutée est spécifiée en nommant une requête préalablement préparée, au lieu de donner une chaîne en tant que requête. Les paramètres de la fonctions sont gérés de la même manière que pg_execute(). Comme pg_execute(), la fonction ne fonctionnera pas sur les versions antérieures à PostgreSQL 7.4.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

stmtname

Le nom de la requête préparée à exécuter. Si une chaîne vide est spécifiée (""), alors la requête qui n'est pas nommée est exécutée. Le nom doit avoir été précédemment préparé en utilisant pg_prepare(), pg_send_prepare() ou une commande SQL PREPARE.

params

Un tableau de valeurs de paramètres pour substituer les variables $1, $2, etc. dans la requête préparée originale. Le nombre d'éléments présents dans le tableau doit concorder avec le nombre de variables à remplacer.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE en cas d'échec. Utilisez pg_get_result() pour déterminer le résultat de la requête.

Exemples

Exemple #1 Exemple avec pg_send_execute()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  // Prépare une requête pour l'exécution
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM magasins WHERE nom = $1');
    $res1 = pg_get_result($dbconn);
  }

  // Exécute la requête préparée. Notez qu'il n'est pas nécessaire d'échapper
  // la chaîne "Joe's Widgets"
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Exécute la même requête préparée, cette fois avec un paramètre différent
  if (!pg_connection_busy($dbconn)) {
    pg_execute($dbconn, "my_query", array("Vêtements Vêtements Vêtements"));
    $res3 = pg_get_result($dbconn);
  }

?>

Voir aussi

  • pg_prepare() - Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution
  • pg_send_prepare() - Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution
  • pg_execute() - Exécute une requête préparée PostGreSQL


Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution

  • « pg_send_execute
  • pg_send_query_params »
  • PHP Manual
  • Fonctions PostgreSQL
  • Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution

pg_send_prepare

(PHP 5 >= 5.1.0, PHP 7)

pg_send_prepare — Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution

Description

bool pg_send_prepare ( resource $connection , string $stmtname , string $query )

Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution.

Cette fonction est la version asynchrone de pg_prepare() : elle retourne TRUE si elle a été capable de répartir la requête et FALSE si elle n'a pas été capable. Après un appel réussi, appelez pg_get_result() pour déterminer si le serveur a créé correctement la requête préparée. Les paramètres de la fonctions sont gérés de la même manière que pg_execute(). Comme pg_execute(), la fonction ne fonctionnera pas sur les versions antérieures à PostgreSQL 7.4.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

stmtname

Le nom à donner à la requête préparée. Il doit être unique à chaque session. Si une chaîne vide est spécifiée ("") alors une requête sans nom est créée, écrasant les requêtes sans nom précédemment définies.

query

La requête SQL avec ses paramètres. Elle doit contenir seulement une seule requête. Plusieurs requêtes séparées par des points-virgules ne sont pas autorisées. Si des paramètres sont utilisés, ils sont référés à $1, $2, etc.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE en cas d'échec. Utilisez pg_get_result() pour déterminer le résultat de la requête.

Exemples

Exemple #1 Exemple pg_send_prepare()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  // Prépare une requête pour l'exécution
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM magasins WHERE nom = $1');
    $res1 = pg_get_result($dbconn);
  }

  // Exécute la requête préparée. Notez qu'il n'est pas nécessaire d'échapper
  // la chaîne "Joe's Widgets"
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Exécute la même requête préparée, cette fois avec un paramètre différent
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Vêtements Vêtements Vêtements"));
    $res3 = pg_get_result($dbconn);
  }

?>

Voir aussi

  • pg_connect() - Établit une connexion PostgreSQL
  • pg_pconnect() - Établit une connexion PostgreSQL persistante
  • pg_execute() - Exécute une requête préparée PostGreSQL
  • pg_send_execute() - Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)
  • pg_send_query_params() - Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s)


Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s)

  • « pg_send_prepare
  • pg_send_query »
  • PHP Manual
  • Fonctions PostgreSQL
  • Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s)

pg_send_query_params

(PHP 5 >= 5.1.0, PHP 7)

pg_send_query_params — Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s)

Description

bool pg_send_query_params ( resource $connection , string $query , array $params )

Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s).

Cette fonction est équivalente à pg_send_query() à l'exception que les paramètres de la requête peuvent être spécifiés séparément de la chaîne de requête query. Les paramètres de la fonctions sont gérés de la même manière que pg_execute(). Comme pg_execute(), la fonction ne fonctionnera pas sur les versions antérieures à PostgreSQL 7.4 et elle n'autorise qu'une seule commande par requête.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

query

La requête SQL avec ses paramètres. Elle doit contenir seulement une seule requête. Plusieurs requêtes séparées par des points-virgules ne sont pas autorisées. Si des paramètres sont utilisés, ils sont référés à $1, $2, etc.

params

Un tableau de valeurs de paramètres pour substituer les variables $1, $2, etc. dans la requête préparée originale. Le nombre d'éléments présents dans le tableau doit concorder avec le nombre de variables à remplacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Utilisez pg_get_result() pour déterminer le résultat de la requête.

Exemples

Exemple #1 Exemple avec pg_send_query_params()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  // Avec les paramètres. Notez qu'il n'est pas nécessaire d'échapper la
  // chaîne du paramètre.
  pg_send_query_params($dbconn, 'select count(*) from auteurs where ville = $1', array('Perth'));

  // Compare avec l'utilisation basique de pg_send_query
  $str = pg_escape_string('Perth');
  pg_send_query($dbconn, "select count(*) from auteurs where ville = '${str}'");
?>

Voir aussi

  • pg_send_query() - Exécute une requête PostgreSQL asynchrone


Exécute une requête PostgreSQL asynchrone

  • « pg_send_query_params
  • pg_set_client_encoding »
  • PHP Manual
  • Fonctions PostgreSQL
  • Exécute une requête PostgreSQL asynchrone

pg_send_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_send_query — Exécute une requête PostgreSQL asynchrone

Description

bool pg_send_query ( resource $connection , string $query )

pg_send_query() envoie une requête ou des requêtes de manière asynchrone à la connexion connection. Contrairement à pg_query(), elle peut envoyer plusieurs requêtes à la fois au serveur PostgreSQL et obtenir les résultats un par un en utilisant pg_get_result().

L'exécution du script n'est pas bloquée durant l'exécution des requêtes. Utilisez pg_connection_busy() pour vérifier si la connexion est occupée (c'est-à-dire la requête est en train d'être exécutée). Les requêtes peuvent être annulées avec pg_cancel_query().

Bien que l'on puisse envoyer plusieurs requêtes en même temps, il n'est pas possible d'envoyer plusieurs requêtes sur une connexion occupée. Si une requête est envoyée alors que la connexion est occupée, elle attendra que la requête précédente soit terminée et perdra tous ses résultats.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL.

query

La requête ou les requêtes SQL à être exécutées.

Les données contenues dans la requête doivent être échappées proprement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Utilisez pg_get_result() pour déterminer les résultats de requête.

Exemples

Exemple #1 Exemple avec pg_send_query()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn,"select * from auteurs; select count(*) from auteurs;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Premier appel de pg_get_result() : $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 a $rows1 enregistrements\n\n";

  $res2 = pg_get_result($dbconn);
  echo "Second appel de pg_get_result() : $res2\n";
  $rows2 = pg_num_rows($res2);
  echo "$res2 a $rows2 enregistrements\n";
?>

L'exemple ci-dessus va afficher :

Premier appel de pg_get_result() : Resource id #3
Resource id #3 a 3 enregistrements

Second appel de pg_get_result() : Resource id #4
Resource id #4 a 1 enregistrements

Voir aussi

  • pg_query() - Exécute une requête PostgreSQL
  • pg_cancel_query() - Annule une requête asynchrone
  • pg_get_result() - Lit un résultat PostgreSQL asynchrone
  • pg_connection_busy() - Vérifie si la connexion PostgreSQL est occupée


Choisit l'encodage du client PostgreSQL

  • « pg_send_query
  • pg_set_error_verbosity »
  • PHP Manual
  • Fonctions PostgreSQL
  • Choisit l'encodage du client PostgreSQL

pg_set_client_encoding

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pg_set_client_encoding — Choisit l'encodage du client PostgreSQL

Description

int pg_set_client_encoding ([ resource $connection ], string $encoding )

pg_set_client_encoding() fixe l'encodage du client. Elle retourne 0 en cas de succès et -1 en cas d'erreur.

PostgreSQL convertira automatiquement les données dans l'encodage de la base de données vers l'encodage du client.

Note:

Auparavant, cette fonction s'appelait pg_setclientencoding().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

encoding

L'encodage client demandé. Un de ces constantes : SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5 ou WIN1250.

La liste exacte des encodages disponibles dépend de votre version PostgreSQL, alors vérifiez votre manuel PostgreSQL pour une liste plus spécifique.

Valeurs de retour

Retourne 0 en cas de succès ou -1 en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_set_client_encoding()

<?php

$conn = pg_pconnect("dbname=editeur");
if (!$conn) {
  echo "Une erreur s'est produite.\n";
  exit;
}

// Fixe l'encodage du client à UNICODE. Les données seront automatiquement
// converties de l'encodage serveur à l'encodage client.
pg_set_client_encoding($conn, "UNICODE");

$result = pg_query($conn, "SELECT auteur, email FROM auteurs");
if (!$result) {
  echo "Une erreur s'est produite.\n";
  exit;
}

// Écriture de données UTF-8
while ($row = pg_fetch_row($result)) {
  echo "Auteur: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Voir aussi

  • pg_client_encoding() - Lit l'encodage du client


Détermine la le degré des messages retournés par pg_last_error et pg_result_error

  • « pg_set_client_encoding
  • pg_socket »
  • PHP Manual
  • Fonctions PostgreSQL
  • Détermine la le degré des messages retournés par pg_last_error et pg_result_error

pg_set_error_verbosity

(PHP 5 >= 5.1.0, PHP 7)

pg_set_error_verbosity — Détermine la le degré des messages retournés par pg_last_error() et pg_result_error()

Description

int pg_set_error_verbosity ([ resource $connection ], int $verbosity )

Détermine la le degré des messages retournés par pg_last_error() et pg_result_error().

pg_set_error_verbosity() fixe le degré d'erreur et retourne le paramètre précédant de la connexion. Avec le mode PGSQL_ERRORS_TERSE, les messages retournés inclus la sévérité, le texte primaire et la position seulement; normalement, cela va entrer sur une seule ligne. Le mode par défaut (PGSQL_ERRORS_DEFAULT) produit des messages qui incluent les messages ci-dessus et des détails, des astuces ou les champs en contexte (ces messages peuvent être étendus sur plusieurs lignes). Le mode PGSQL_ERRORS_VERBOSE tous les champs disponibles. Le changement du degré des messages n'affecte pas les messages disponibles qui proviennent des résultats déjà existants, mais seulement les messages des résultats créés par la suite.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

verbosity

Le degré de message d'erreur : PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT ou PGSQL_ERRORS_VERBOSE.

Valeurs de retour

Le degré de message d'erreur précédant : PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT ou PGSQL_ERRORS_VERBOSE.

Exemples

Exemple #1 Exemple avec pg_set_error_verbosity()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from nexistepas;");
  }

  pg_set_error_verbosity($dbconn, PGSQL_ERRORS_VERBOSE);
  $res1 = pg_get_result($dbconn);
  echo pg_result_error($res1);
?>

Voir aussi

  • pg_last_error() - Lit le dernier message d'erreur sur la connexion
  • pg_result_error() - Lit le message d'erreur associé à un résultat


Récupère un gestionnaire de lecture seul sur le socket sous-jacent d'une connexion PostgreSQL

  • « pg_set_error_verbosity
  • pg_trace »
  • PHP Manual
  • Fonctions PostgreSQL
  • Récupère un gestionnaire de lecture seul sur le socket sous-jacent d'une connexion PostgreSQL

pg_socket

(PHP 5 >= 5.6.0, PHP 7)

pg_socket — Récupère un gestionnaire de lecture seul sur le socket sous-jacent d'une connexion PostgreSQL

Description

resource pg_socket ( resource $connection )

La fonction pg_socket() retourne une ressource en lecture seule correspondant au socket sous-jacent de la connexion PostgreSQL fournie.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

connection

Ressource de connexion à la base de données PostgreSQL.

Valeurs de retour

Une ressource de socket en cas de succès ou FALSE si une erreur survient.


Active le suivi d'une connexion PostgreSQL

  • « pg_socket
  • pg_transaction_status »
  • PHP Manual
  • Fonctions PostgreSQL
  • Active le suivi d'une connexion PostgreSQL

pg_trace

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

pg_trace — Active le suivi d'une connexion PostgreSQL

Description

bool pg_trace ( string $pathname [, string $mode = "w" [, resource $connection ]] )

pg_trace() active le suivi des communications entre PHP et le serveur PostgreSQL. Cet historique sera enregistré dans un fichier. Pour comprendre ces lignes, il faut être familier avec le protocole de communication interne à PostgreSQL.

Pour ceux qui le ne sont pas, elles peuvent être utiles pour suivre les requêtes et les erreurs : avec la commande grep '^To backend' trace.log, vous pourrez voir les requêtes réellement envoyées au serveur PostgreSQL. Pour plus d'informations, référez-vous à la » Documentation PostgreSQL.

Liste de paramètres

pathname

Le chemin complet et le nom du fichier dans lequel le suivi sera enregistré. Comme fopen().

mode

Le mode d'accès optionnel, comme fopen().

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pg_trace()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   pg_trace('/tmp/trace.log', 'w', $pgsql_conn);
   pg_query("SELECT 1");
   pg_untrace($pgsql_conn);
   // Maintenant /tmp/trace.log contiendra le suivi des communications
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • pg_untrace() - Termine le suivi d'une connexion PostgreSQL


Retourne le statut de la transaction en cours du serveur

  • « pg_trace
  • pg_tty »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne le statut de la transaction en cours du serveur

pg_transaction_status

(PHP 5 >= 5.1.0, PHP 7)

pg_transaction_status — Retourne le statut de la transaction en cours du serveur

Description

int pg_transaction_status ( resource $connection )

Retourne le statut de la transaction en cours du serveur.

Attention

pg_transaction_status() donnera de mauvais résultats lorsque vous l'utiliserez avec un serveur PostgreSQL 7.3 qui a le paramètre autocommit désactivé. La fonctionnalité de autocommit est obsolète et n'existe plus dans les versions de serveur plus récentes.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Le statut peut être PGSQL_TRANSACTION_IDLE (actuellement inactif), PGSQL_TRANSACTION_ACTIVE (une commande est en cours), PGSQL_TRANSACTION_INTRANS (inactif, dans un bloc de transaction valide), ou PGSQL_TRANSACTION_INERROR (inactif, dans un bloc de transaction en échec). PGSQL_TRANSACTION_UNKNOWN est retourné si la connexion est mauvaise. PGSQL_TRANSACTION_ACTIVE est retourné seulement si la requête a été envoyée au serveur et que celle-ci n'a pas été encore complétée.

Exemples

Exemple #1 Exemple avec pg_transaction_status()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");
  $stat = pg_transaction_status($dbconn);
  if ($stat === PGSQL_TRANSACTION_UNKNOWN) {
      echo 'Connexion mauvaise';
  } else if ($stat === PGSQL_TRANSACTION_IDLE) {
      echo 'Connexion actuellement inactive';
  } else {
      echo 'Connexion est en cours de transaction';
  }
?>


Retourne le nom de TTY associé à la connexion

  • « pg_transaction_status
  • pg_unescape_bytea »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne le nom de TTY associé à la connexion

pg_tty

(PHP 4, PHP 5, PHP 7)

pg_tty — Retourne le nom de TTY associé à la connexion

Description

string pg_tty ([ resource $connection ] )

pg_tty() retourne le nom de TTY de la connexion associée à connection.

Note:

pg_tty() est obsolète, depuis le serveur ne fait plus attention à la configuration TTY, mais demeure pour des raisons de compatibilités.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne contenant le débogue TTY de la connexion connection ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec pg_tty()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Débogue TTY serveur est : " . pg_tty($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>


Supprime la protection d'une chaîne de type bytea

  • « pg_tty
  • pg_untrace »
  • PHP Manual
  • Fonctions PostgreSQL
  • Supprime la protection d'une chaîne de type bytea

pg_unescape_bytea

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_unescape_bytea — Supprime la protection d'une chaîne de type bytea

Description

string pg_unescape_bytea ( string $data )

pg_unescape_bytea() supprime la protection des caractères de type bytea. Elle retourne la chaîne de caractères protégée, pouvant contenir des données binaires.

Note:

Lorsque vous utilisez une commande SELECT avec des données de type bytea, PostgreSQL retourne des valeurs octales, préfixées avec des antislashs \ (e.g. \032). Les utilisateurs doivent effectuer la conversion en format binaire eux-mêmes.

pg_escape_bytea() requiert PostgreSQL 7.2 ou plus récent. Avec PostgreSQL 7.2.0 et 7.2.1, les données de type bytea doivent être transtypée lorsque vous activez le support des chaînes de caractères multioctets. i.e. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea);. PostgreSQL 7.2.2 ou plus récent ne requiert pas cette manipulation. Toutefois, si le client et le serveur n'utilisent pas le même jeu de caractères, il peut arriver des erreurs. Il faut alors forcer le transtypage manuellement pour éviter cette erreur.

Liste de paramètres

data

Une chaîne de caractères contenant les données bytea PostgreSQL à être converties en chaîne de caractères binaire PHP.

Valeurs de retour

Une chaîne de caractères contenant les données protégées.

Exemples

Exemple #1 Exemple avec pg_unescape_bytea()

<?php
  // Connexion à la base de données
  $dbconn = pg_connect('dbname=foo');

  // Récupération des données bytea
  $res = pg_query("SELECT data FROM galerie WHERE nom='Arbres Pin'");
  $raw = pg_fetch_result($res, 'data');

  // Convertit en binaire et envoie au navigateur
  header('Content-type: image/jpeg');
  echo pg_unescape_bytea($raw);
?>

Historique

Version | Description
5.5.1 | Une alerte est émise si la chaîne d'entrée n'est pas valide.

Voir aussi

  • pg_escape_bytea() - Protège une chaîne pour insertion dans un champ bytea
  • pg_escape_string() - Protège une chaîne de caractères pour une requête SQL


Termine le suivi d'une connexion PostgreSQL

  • « pg_unescape_bytea
  • pg_update »
  • PHP Manual
  • Fonctions PostgreSQL
  • Termine le suivi d'une connexion PostgreSQL

pg_untrace

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

pg_untrace — Termine le suivi d'une connexion PostgreSQL

Description

bool pg_untrace ([ resource $connection ] )

pg_untrace() termine le suivi d'une connexion PostgreSQL, initiée avec pg_trace().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Retourne toujours TRUE.

Exemples

Exemple #1 Exemple avec pg_untrace()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   pg_trace('/tmp/trace.log', 'w', $pgsql_conn);
   pg_query("SELECT 1");
   pg_untrace($pgsql_conn);
   // Maintenant le suivi des communications est désactivé
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Voir aussi

  • pg_trace() - Active le suivi d'une connexion PostgreSQL


Modifie les lignes d'une table

  • « pg_untrace
  • pg_version »
  • PHP Manual
  • Fonctions PostgreSQL
  • Modifie les lignes d'une table

pg_update

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_update — Modifie les lignes d'une table

Description

mixed pg_update ( resource $connection , string $table_name , array $data , array $condition [, int $options = PGSQL_DML_EXEC ] )

pg_update() modifie les lignes de la table table_name, qui vérifient la condition condition, et leur donne la valeur de data. Si options est spécifié, pg_convert() est appliqué à data avec les options spécifiées.

Liste de paramètres

connection

Une ressource de connexion PostgreSQL.

table_name

Le nom de la table dans laquelle les lignes seront mises à jour.

data

Un tableau dont les clés sont les noms des champs dans la table table_name, et où les valeurs sont les lignes correspondantes qui seront mises à jour.

condition

Un tableau dont les clés sont les noms des champs dans la table table_name, et où les valeurs sont les conditions à remplir par les lignes pour être mises à jour.

options

Toutes combinaisons de constantes parmi PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC ou PGSQL_DML_STRING. Si PGSQL_DML_STRING fait partie du paramètre options, alors la requête sera retournée. Lorsque la constante PGSQL_DML_NO_CONV ou la constante PGSQL_DML_ESCAPE est définie, aucun appel à la fonction pg_convert() ne sera réalisé en interne.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Retourne une chaîne de caractères si PGSQL_DML_STRING est passé via le paramètre options.

Exemples

Exemple #1 Exemple avec pg_update()

<?php
  $db = pg_connect ('dbname=foo');
  $data = array('field1'=>'AA', 'field2'=>'BB');

  // C'est sécuritaire, car $_POST est converti automatiquement
  $res = pg_update($db, 'post_log', $_POST, $data);
  if ($res) {
      echo "Les données ont été modifiées : $res\n";
  } else {
      echo "Problème dans les données utilisateur\n";
  }
?>

Historique

Version | Description
5.6.0 | La fonction n'est plus expérimentale. Ajout de la constante PGSQL_DML_ESCAPE ainsi que du support des données de type TRUE/FALSE et NULL.
5.5.3/5.4.19 | Les injections SQL directes dans table_name et les injections SQL indirectes via les identifiants ont été résolues.

Voir aussi

  • pg_convert() - Convertit des tableaux associatifs en une commande PostgreSQL


Retourne un tableau avec les versions du client, du protocole et du serveur (si disponible)

  • « pg_update
  • SQLite »
  • PHP Manual
  • Fonctions PostgreSQL
  • Retourne un tableau avec les versions du client, du protocole et du serveur (si disponible)

pg_version

(PHP 5, PHP 7)

pg_version — Retourne un tableau avec les versions du client, du protocole et du serveur (si disponible)

Description

array pg_version ([ resource $connection ] )

pg_version() retourne un tableau avec les versions du client, du protocole et du serveur. Les versions du protocole et du serveur ne sont disponibles que si PHP a été compilé avec PostgreSQL 7.4 ou supérieur.

Pour plus d'informations sur le serveur, utilisez pg_parameter_status().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Retourne un tableau avec les clés client, protocol et server et valeurs (si disponibles). Retourne FALSE en cas d'erreur ou de connexion invalide.

Exemples

Exemple #1 Exemple avec pg_version()

<?php
$dbconn = pg_connect("host=localhost port=5432 dbname=marie")
   or die("Connexion impossible");

$v = pg_version($dbconn);

echo $v['client'];
?>

L'exemple ci-dessus va afficher :

7.4

Voir aussi

  • pg_parameter_status() - Consulte un paramètre de configuration courant du serveur


SQLite

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions SQLite
    • sqlite_array_query — Exécute une requête SQL avec SQLite et retourne un tableau
    • sqlite_busy_timeout — Configure le délai d'attente d'une base SQLite occupée
    • sqlite_changes — Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite
    • sqlite_close — Ferme la connexion à SQLite
    • sqlite_column — Lit la valeur d'une colonne dans un résultat SQLite
    • sqlite_create_aggregate — Enregistre une UDF agrégeante pour les requêtes SQLite
    • sqlite_create_function — Enregistre une fonction utilisateur "classique" UDF pour SQLite
    • sqlite_current — Lit une ligne de résultat SQLite dans un tableau
    • sqlite_error_string — Retourne le message d'erreur SQLite
    • sqlite_escape_string — Protège une chaîne de caractères pour utilisation avec SQLite
    • sqlite_exec — Exécute une requête sans résultats sur une base de données
    • sqlite_factory — Ouvre une base SQLite et crée un objet pour elle
    • sqlite_fetch_all — Retourne toutes les lignes d'un jeu de résultats en tant que tableau de tableaux
    • sqlite_fetch_array — Lit la prochaine ligne de résultat SQLite dans un tableau
    • sqlite_fetch_column_types — Retourne un tableau des types de colonnes d'une certaine table
    • sqlite_fetch_object — Retourne la ligne suivante du jeu de résultats en tant qu'objet
    • sqlite_fetch_single — Lit la première ligne d'un résultat SQLite sous forme de chaîne
    • sqlite_fetch_string — Alias de sqlite_fetch_single
    • sqlite_field_name — Retourne le nom du champ SQLite
    • sqlite_has_more — Indique s'il reste des lignes SQLite à lire
    • sqlite_has_prev — Retourne si oui ou non une ligne précédente est disponible
    • sqlite_key — Retourne l'index de la ligne courante
    • sqlite_last_error — Retourne le dernier code d'erreur SQLite
    • sqlite_last_insert_rowid — Retourne le numéro de ligne de la dernière ligne insérée
    • sqlite_libencoding — Retourne l'encodage utilisé par la bibliothèque SQLite
    • sqlite_libversion — Retourne la version de la bibliothèque SQLite
    • sqlite_next — Déplace le pointeur SQLite vers la prochaine ligne
    • sqlite_num_fields — Retourne le nombre de champs dans un résultat SQLite
    • sqlite_num_rows — Retourne le nombre de lignes d'un résultat SQLite
    • sqlite_open — Ouvre une base SQLite et la crée si elle n'existe pas
    • sqlite_popen — Ouvre une connexion SQLite persistante et crée la base si elle n'existe pas
    • sqlite_prev — Se positionne sur le numéro de ligne précédent du jeu de résultats
    • sqlite_query — Exécute une requête SQLite et lit le résultat
    • sqlite_rewind — Place le pointeur de résultat SQLite au début
    • sqlite_seek — Déplace le pointeur de résultat SQLite vers une ligne
    • sqlite_single_query — Exécute une requête et retourne soit un tableau pour une colonne unique, soit la valeur de la première ligne
    • sqlite_udf_decode_binary — Décode des données binaires, passées à une UDF SQLite
    • sqlite_udf_encode_binary — Encode les données binaires d'une UDF SQLite avant de les retourner
    • sqlite_unbuffered_query — Exécute une requête SQLite non bufferisée
    • sqlite_valid — Retourne si oui ou non il reste des lignes disponibles


Introduction

SQLite est une bibliothèque C qui implémente un moteur de base de données embarqué. Les programmes qui utilisent la bibliothèque SQLite peuvent avoir accès à une base de données SQL sans avoir de processus RDBMS séparé.

SQLite n'est pas une bibliothèque cliente permettant de se connecter à un gros serveur de base de données. La bibliothèque SQLite lit et écrit directement dans les fichiers de la base de données sur le disque.

Note:

Pour plus d'informations, voir le site web de SQLite sur : (» http://sqlite.org/).


Pré-requis

L'extension SQLite est activée par défaut depuis PHP 5.0. Depuis la version PHP 5.4, l'extension SQLite n'est plus disponible que via PECL.


Installation

Depuis PHP 5.0, cette extension est fournie avec PHP. À partir de PHP 5.4, cette extension n'est disponible que via PECL.

Les utilisateurs de Windows doivent activer la bibliothèque php_sqlite.dll dans le fichier php.ini afin d'utiliser ces fonctions. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Les versions Windows doivent aussi activer PDO car depuis PHP 5.1.0, il en dépend. Ainsi, le php.ini doit ressembler à ceci :

extension=php_pdo.dll
extension=php_sqlite.dll
Sur les systèmes Unix ou Linux, si vous compilez PDO en tant qu'extension partagée, vous devez compiler également SQLite comme extension partagée, en utilisant l'option de configuration --with-sqlite=shared.

La série PHP 5.0.x pour Windows activait cette extension par défaut, et il n'y avait pas de DLL nécessaire.

SQLite 3 est supporté via PDO SQLite.

Note: Installation sous Windows pour les comptes sans privilèges

Sur les systèmes Windows, les comptes sans privilèges n'ont pas de variable d'environnement TMP de définie par défaut. Ceci aura pour effet que sqlite créera des fichiers temporaires dans le dossier Windows, ce qui n'est pas un bon comportement. Donc, vous devriez définir la variable d'environnement TMP pour le serveur Web ou le compte utilisateur, utilisé par le serveur Web. Si Apache est votre serveur Web, vous pouvez réaliser cela via la directive SetEnv de votre fichier httpd.conf. Par exemple :

SetEnv TMP c:/temp
Si vous n'arrivez pas à établir cette configuration au niveau de votre serveur, vous pouvez l'implémenter directement dans votre script, comme ceci :
<?php
putenv('TMP=C:/temp');
?>
Cette configuration doit pointer vers un dossier dont le serveur Web a les permissions nécessaire à la création de fichiers, mais aussi à l'écriture et à l'effacement. Sinon, vous recevrez le message suivant : malformed database schema - unable to open a temporary database file for storing temporary tables


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Sqlite
Nom | Défaut | Modifiable | Historique
sqlite.assoc_case | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

sqlite.assoc_case int

Utilise des index à casse libre (0), majuscule (1) ou minuscule (2).

Cette option sert principalement lorsque vous avez besoin de la compatibilité avec d'autres systèmes de bases de données, où les noms des colonnes sont toujours retournés en majuscule ou en minuscule, indépendamment de la casse réelle de la colonne dans la base.

La bibliothèque SQLite retourne le nom de la colonne sans y toucher (c'est la casse qui sera utilisée dans votre base). Lorsque sqlite.assoc_case vaut 0 cette casse sera conservée. Lorsque cette option vaut 1 ou 2, PHP va modifier la casse des noms, et mettre le nom de la colonne respectivement en majuscules ou minuscules.

Utiliser cette option implique une légère perte de performances, mais c'est BEAUCOUP plus rapide que de faire la gestion des caractères vous-même.


Types de ressources

Il y a deux ressources utilisées par l'interface SQLite. La première est la connexion à la base de données, et la seconde, le jeu de résultats.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les fonctions sqlite_fetch_array() et sqlite_current() utilisent des constantes pour spécifier les différents types de résultats. Les constantes sont les suivantes :

Constantes de résultats SQLite
SQLITE_ASSOC (entier)
Les colonnes sont retournées dans le tableau, en utilisant le nom de la colonne comme nom d'index.
SQLITE_BOTH (entier)
Les colonnes sont retournées dans le tableau, en utilisant simultanément le nom de la colonne comme nom d'index et un index numérique.
SQLITE_NUM (entier)
Les colonnes sont retournées dans le tableau, en utilisant une indexation numérique. L'index commence à 0, pour identifier le premier champ.

Un certain nombre de fonctions peuvent retourner des codes d'état. Les constantes suivantes sont définies :

Constantes codes d'état SQLite
SQLITE_OK (entier)
Résultat réussi.
SQLITE_ERROR (entier)
Erreur SQL ou base de données manquante.
SQLITE_INTERNAL (entier)
Une erreur interne de logique dans SQLite.
SQLITE_PERM (entier)
Permission d'accès refusée.
SQLITE_ABORT (entier)
Routine de procédure de rappel a demandé un abandon.
SQLITE_BUSY (entier)
Le fichier de base de données est verrouillé.
SQLITE_LOCKED (entier)
Une table dans la base de données est verrouillée.
SQLITE_NOMEM (entier)
Allocation de mémoire échouée.
SQLITE_READONLY (entier)
Essai d'écrire dans une base de données en lecture seule.
SQLITE_INTERRUPT (entier)
Opération terminée de manière interne.
SQLITE_IOERR (entier)
Erreur disque I/O s'est produite.
SQLITE_NOTADB (entier)
Le fichier ouvert n'est pas une base de données.
SQLITE_CORRUPT (entier)
L'image disque de la base de données est malformée.
SQLITE_FORMAT (entier)
Erreur auxiliaire de format de base de données.
SQLITE_NOTFOUND (entier)
(Interne) Table ou enregistrement non trouvé.
SQLITE_FULL (entier)
Insertion échouée car la base de données est pleine.
SQLITE_CANTOPEN (entier)
Impossible d'ouvrir le fichier de base de données.
SQLITE_PROTOCOL (entier)
Erreur du protocole de verrou de base de données.
SQLITE_EMPTY (entier)
(Interne) Une table de la base de données est vide.
SQLITE_SCHEMA (entier)
Le schéma de base de données a changé.
SQLITE_TOOBIG (entier)
Trop de données pour une ligne de la table.
SQLITE_CONSTRAINT (entier)
Arrêt dû à une violation de contrainte.
SQLITE_MISMATCH (entier)
Type de données incorrect.
SQLITE_MISUSE (entier)
Bibliothèque utilisée incorrectement.
SQLITE_NOLFS (entier)
Utilisation de fonctionnalités de l'OS non supportées sur l'hôte.
SQLITE_AUTH (entier)
Autorisation échouée.
SQLITE_ROW (entier)
Processus interne a une autre ligne prête.
SQLITE_DONE (entier)
Processus interne a terminé l'exécution.


Fonctions SQLite

Classes pré-définies

SQLiteDatabase

Représente une base de données SQLite ouverte.

Constructeur

  • __construct : construit un nouvel objet SQLiteDatabase

Méthodes

  • query : exécute une requête
  • queryExec : exécute une requête de résultat
  • arrayQuery : exécute une requête et retourne les résultats dans un tableau
  • singleQuery : exécute une requête et retourne soit un tableau pour une seule colonne, soit la valeur de la première ligne
  • unbufferedQuery : exécute une requête non bufferisée
  • lastInsertRowid : retourne l'identifiant de la dernière ligne insérée
  • changes : retourne le nombre de lignes modifiées par la dernière requête
  • createAggregate : enregistre une UDF de groupement pour les requêtes SQLite
  • createFunction : enregistre une fonction utilisateur "classique" UDF pour SQLite
  • busyTimeout : configure ou désactive le délai d'attente d'une base SQLite occupée
  • lastErorr : retourne le dernier code erreur de la dernière erreur rencontrée
  • fetchColumnTypes : retourne un tableau de types de colonnes depuis une table particulière

SQLiteResult

Représente un jeu de résultats SQLite bufferisé.

Méthodes

  • fetch : récupère la ligne suivante depuis un jeu de résultats en tant que tableau
  • fetchObject : récupère la ligne suivante depuis un jeu de résultats en tant qu'objet
  • fetchSingle : récupère la première ligne depuis le jeu de résultats en tant que chaîne de caractères
  • fetchAll : récupère toutes les lignes depuis le jeu de résultats en tant que tableau de tableaux
  • column : récupère une colonne depuis la ligne courante du jeu de résultats
  • numFields : retourne le numéro du champ depuis un jeu de résultats
  • fieldName : retourne le nom d'un champ particulier depuis le jeu de résultats
  • current : récupère la ligne courante depuis le jeu de résultat en tant que tableau
  • key : retourne l'index de la ligne courante
  • next : déplace le pointeur sur le numéro de ligne suivante
  • valid : retourne si oui ou non il reste des lignes de disponibles
  • rewind : déplace le pointeur sur le numéro de la première ligne d'un jeu de résultats
  • prev : déplace le pointeur sur le numéro de ligne précédent du jeu de résultats
  • hasPrev : retourne si oui ou non une ligne précédente est disponible
  • numRows : retourne le nombre de lignes dans le jeu de résultats
  • seek : déplace le pointeur vers un numéro de ligne précis

SQLiteUnbuffered

Représente un jeu de résultats SQLite non-bufferisé. Les jeux de résultats non-bufferisés sont séquentiels, déplacement du pointeur uniquement vers le numéro suivant.

Méthodes

  • fetch : récupère la ligne suivante depuis un jeu de résultats en tant que tableau
  • fetchObject : récupère la ligne suivante depuis un jeu de résultats en tant qu'objet
  • fetchSingle : récupère la première colonne depuis un jeu de résultats en tant que chaîne de caractères
  • fetchAll : récupère toutes les lignes depuis le jeu de résultats en tant que tableau de tableaux
  • column : récupère une colonne depuis la ligne courante d'un jeu de résultats
  • numFields : retourne le nombre de champs dans le jeu de résultats
  • fieldName : retourne le nom d'un champ en particulier depuis le jeu de résultats
  • current : récupère la ligne courante depuis le jeu de résultats en tant que tableau
  • next: déplace le pointeur vers un numéro de ligne suivant
  • valid : retourne si oui ou non il reste des lignes de disponibles

Sommaire

  • sqlite_array_query — Exécute une requête SQL avec SQLite et retourne un tableau
  • sqlite_busy_timeout — Configure le délai d'attente d'une base SQLite occupée
  • sqlite_changes — Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite
  • sqlite_close — Ferme la connexion à SQLite
  • sqlite_column — Lit la valeur d'une colonne dans un résultat SQLite
  • sqlite_create_aggregate — Enregistre une UDF agrégeante pour les requêtes SQLite
  • sqlite_create_function — Enregistre une fonction utilisateur "classique" UDF pour SQLite
  • sqlite_current — Lit une ligne de résultat SQLite dans un tableau
  • sqlite_error_string — Retourne le message d'erreur SQLite
  • sqlite_escape_string — Protège une chaîne de caractères pour utilisation avec SQLite
  • sqlite_exec — Exécute une requête sans résultats sur une base de données
  • sqlite_factory — Ouvre une base SQLite et crée un objet pour elle
  • sqlite_fetch_all — Retourne toutes les lignes d'un jeu de résultats en tant que tableau de tableaux
  • sqlite_fetch_array — Lit la prochaine ligne de résultat SQLite dans un tableau
  • sqlite_fetch_column_types — Retourne un tableau des types de colonnes d'une certaine table
  • sqlite_fetch_object — Retourne la ligne suivante du jeu de résultats en tant qu'objet
  • sqlite_fetch_single — Lit la première ligne d'un résultat SQLite sous forme de chaîne
  • sqlite_fetch_string — Alias de sqlite_fetch_single
  • sqlite_field_name — Retourne le nom du champ SQLite
  • sqlite_has_more — Indique s'il reste des lignes SQLite à lire
  • sqlite_has_prev — Retourne si oui ou non une ligne précédente est disponible
  • sqlite_key — Retourne l'index de la ligne courante
  • sqlite_last_error — Retourne le dernier code d'erreur SQLite
  • sqlite_last_insert_rowid — Retourne le numéro de ligne de la dernière ligne insérée
  • sqlite_libencoding — Retourne l'encodage utilisé par la bibliothèque SQLite
  • sqlite_libversion — Retourne la version de la bibliothèque SQLite
  • sqlite_next — Déplace le pointeur SQLite vers la prochaine ligne
  • sqlite_num_fields — Retourne le nombre de champs dans un résultat SQLite
  • sqlite_num_rows — Retourne le nombre de lignes d'un résultat SQLite
  • sqlite_open — Ouvre une base SQLite et la crée si elle n'existe pas
  • sqlite_popen — Ouvre une connexion SQLite persistante et crée la base si elle n'existe pas
  • sqlite_prev — Se positionne sur le numéro de ligne précédent du jeu de résultats
  • sqlite_query — Exécute une requête SQLite et lit le résultat
  • sqlite_rewind — Place le pointeur de résultat SQLite au début
  • sqlite_seek — Déplace le pointeur de résultat SQLite vers une ligne
  • sqlite_single_query — Exécute une requête et retourne soit un tableau pour une colonne unique, soit la valeur de la première ligne
  • sqlite_udf_decode_binary — Décode des données binaires, passées à une UDF SQLite
  • sqlite_udf_encode_binary — Encode les données binaires d'une UDF SQLite avant de les retourner
  • sqlite_unbuffered_query — Exécute une requête SQLite non bufferisée
  • sqlite_valid — Retourne si oui ou non il reste des lignes disponibles


Exécute une requête SQL avec SQLite et retourne un tableau

  • « Fonctions SQLite
  • sqlite_busy_timeout »
  • PHP Manual
  • Fonctions SQLite
  • Exécute une requête SQL avec SQLite et retourne un tableau

sqlite_array_query

SQLiteDatabase::arrayQuery

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_array_query -- SQLiteDatabase::arrayQuery — Exécute une requête SQL avec SQLite et retourne un tableau

Description

array sqlite_array_query ( resource $dbhandle , string $query [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array sqlite_array_query ( string $query , resource $dbhandle [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Style orienté objet (méthode) :

public array SQLiteDatabase::arrayQuery ( string $query [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

sqlite_array_query() exécute la requête donnée et retourne un tableau du jeu de résultats entier. Il est équivalent d'appeler sqlite_query() et ensuite sqlite_fetch_array() pour chaque ligne dans le jeu de résultats. sqlite_array_query() est de manière significative plus rapide que les fonctions mentionnées ci-dessus.

Astuce

sqlite_array_query() est plus convenable pour les requêtes retournant 45 lignes ou moins. Si vous attendez plus de données que cela, il est recommandé d'écrire les scripts avec la fonction sqlite_unbuffered_query() pour des performances optimales.

Liste de paramètres

query

La requête qui sera exécutée.

Les données contenues dans la requête doivent être échappées.

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Note: Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Retourne un tableau du jeu de résultats entier; sinon FALSE

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Exemples

Exemple #1 Style procédural

<?php
$dbhandle = sqlite_open('sqlitedb');
$result = sqlite_array_query($dbhandle, 'SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Exemple #2 Style orienté objet

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$result = $dbhandle->arrayQuery('SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Nom : ' . $entry['name'] . '  E-mail : ' . $entry['email'];
}
?>

Voir aussi

  • sqlite_query() - Exécute une requête SQLite et lit le résultat
  • sqlite_fetch_array() - Lit la prochaine ligne de résultat SQLite dans un tableau
  • sqlite_fetch_string() - Alias de sqlite_fetch_single


Configure le délai d'attente d'une base SQLite occupée

  • « sqlite_array_query
  • sqlite_changes »
  • PHP Manual
  • Fonctions SQLite
  • Configure le délai d'attente d'une base SQLite occupée

sqlite_busy_timeout

SQLiteDatabase::busyTimeout

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_busy_timeout -- SQLiteDatabase::busyTimeout — Configure le délai d'attente d'une base SQLite occupée

Description

void sqlite_busy_timeout ( resource $dbhandle , int $milliseconds )

Style orienté objet (method):

public void SQLiteDatabase::busyTimeout ( int $milliseconds )

Spécifie la durée maximale, en millisecondes, que SQLite attendra pour qu'une base de données dbhandle soit utilisable.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

milliseconds

Le nombre de millisecondes. Lorsque mis à 0, les gestionnaires d'occupation seront désactivés et SQLite retournera immédiatement un code d'état SQLITE_BUSY si un autre processus/thread a verrouillé la base de données pour une mise à jour.

PHP initialise la durée maximale d'utilisation à 60 secondes lorsque la base de données est ouverte.

Note:

Il y a mille (1000) millisecondes dans une seconde.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style procédural

<?php
$dbhandle = sqlite_open('sqlitedb');
sqlite_busy_timeout($dbhandle, 10000); // fixe le timeout à 10 secondes
sqlite_busy_timeout($dbhandle, 0); // désactive le gestionnaire
?>

Exemple #2 Style orienté objet

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$dbhandle->busyTimeout(10000); // 10 secondes
$dbhandle->busyTimeout(0); // désactive
?>

Voir aussi

  • sqlite_open() - Ouvre une base SQLite et la crée si elle n'existe pas


Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite

  • « sqlite_busy_timeout
  • sqlite_close »
  • PHP Manual
  • Fonctions SQLite
  • Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite

sqlite_changes

SQLiteDatabase::changes

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_changes -- SQLiteDatabase::changes — Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite

Description

int sqlite_changes ( resource $dbhandle )

Style orienté objet (méthode) :

public int SQLiteDatabase::changes ( void )

sqlite_changes() retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite, exécutée dans la base db.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

Valeurs de retour

Retourne le nombre de lignes modifiées.

Exemples

Exemple #1 Style procédural

<?php
$dbhandle = sqlite_open('mysqlitedb');
$query = sqlite_query($dbhandle, "UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!$query) {
    exit('Erreur dans la requête.');
} else {
    echo 'Nombre de lignes modifiées : ', sqlite_changes($dbhandle);
}
?>

Exemple #2 Style orienté objet

<?php
$dbhandle = new SQLiteDatabase('mysqlitedb');
$query = $dbhandle->query("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!$query) {
    exit('Erreur dans la requête.');
} else {
    echo 'Nombre de lignes modifiées : ', $dbhandle->changes();
}
?>

Voir aussi

  • sqlite_open() - Ouvre une base SQLite et la crée si elle n'existe pas


Ferme la connexion à SQLite

  • « sqlite_changes
  • sqlite_column »
  • PHP Manual
  • Fonctions SQLite
  • Ferme la connexion à SQLite

sqlite_close

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_close — Ferme la connexion à SQLite

Description

void sqlite_close ( resource $dbhandle )

sqlite_close() referme la connexion à la base SQLite, identifiée par la ressource db_handle. Si la connexion à la base était persistante, elle sera fermée et supprimée de la liste des connexions persistantes.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec sqlite_close()

<?php
$dbhandle = sqlite_open('sqlitedb');
sqlite_close($dbhandle);
?>

Voir aussi

  • sqlite_open() - Ouvre une base SQLite et la crée si elle n'existe pas
  • sqlite_popen() - Ouvre une connexion SQLite persistante et crée la base si elle n'existe pas


Lit la valeur d'une colonne dans un résultat SQLite

  • « sqlite_close
  • sqlite_create_aggregate »
  • PHP Manual
  • Fonctions SQLite
  • Lit la valeur d'une colonne dans un résultat SQLite

sqlite_column

SQLiteResult::column

SQLiteUnbuffered::column

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_column -- SQLiteResult::column -- SQLiteUnbuffered::column — Lit la valeur d'une colonne dans un résultat SQLite

Description

mixed sqlite_column ( resource $result , mixed $index_or_name [, bool $decode_binary = true ] )
mixed SQLiteResult::column ( mixed $index_or_name [, bool $decode_binary = true ] )
mixed SQLiteUnbuffered::column ( mixed $index_or_name [, bool $decode_binary = true ] )

sqlite_column() lit la valeur de la colonne nommée index_or_name (si c'est une chaîne), ou d'index index_or_name (si c'est un entier), dans le résultat SQLite result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

index_or_name

L'index de la colonne ou le nom à récupérer.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Valeurs de retour

Retourne la valeur de la colonne.

Notes

Note:

Utilisez cette fonction lorsque vous manipulez un grand résultat avec de nombreuses colonnes, ou des colonnes qui contiennent de grandes quantités de données.

Voir aussi

  • sqlite_fetch_string() - Alias de sqlite_fetch_single


Enregistre une UDF agrégeante pour les requêtes SQLite

  • « sqlite_column
  • sqlite_create_function »
  • PHP Manual
  • Fonctions SQLite
  • Enregistre une UDF agrégeante pour les requêtes SQLite

sqlite_create_aggregate

SQLiteDatabase::createAggregate

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_create_aggregate -- SQLiteDatabase::createAggregate — Enregistre une UDF agrégeante pour les requêtes SQLite

Description

void sqlite_create_aggregate ( resource $dbhandle , string $function_name , callable $step_func , callable $finalize_func [, int $num_args = -1 ] )

Style orienté objet (méthode) :

public void SQLiteDatabase::createAggregate ( string $function_name , callable $step_func , callable $finalize_func [, int $num_args = -1 ] )

sqlite_create_aggregate() est similaire à sqlite_create_function(), car elle enregistre une fonction qui sera utilisée pour calculer un résultat agrégé sur plusieurs lignes d'une requête.

La différence principale entre cette fonction et sqlite_create_function() est que deux fonctions sont nécessaires pour gérer les agrégations : step_func est appelée pour chaque ligne du résultat. Votre fonction PHP doit accumuler le résultat, et le stocker dans le contexte d'agrégation. Une fois que toutes les lignes ont été appelées, finalize_func sera appelée, et elle doit alors lire les données dans ce contexte d'agrégation, et en retourner le résultat. Les fonctions de rappel doivent retourner un type compréhensible par SQLite (i.e. type scalaire).

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

function_name

Le nom de la fonction utilisée dans les requêtes SQL.

step_func

Fonction de procédure de rappel appelée pour chaque ligne du jeu de résultats. Les paramètres de la fonction sont &$context, $value, ....

finalize_func

Fonction de procédure de rappel pour le contexte d'agrégation des données de chaque ligne. Le paramètre de la fonction est &$context et la fonction doit renvoyer le résultat final de l'agrégation.

num_args

Conseil à l'analyseur SQLite si la fonction de procédure de rappel accepte un nombre prédéterminé d'arguments.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple d'UDF SQLite : taille maximale de chaîne

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten'
   );
$db = sqlite_open(':memory:');
sqlite_query($db, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($db, "INSERT INTO strings VALUES('$str')");
}

function max_len_step(&$context, $string)
{
  if (strlen($string) > $context) {
    $context = strlen($string);
  }
}

function max_len_finalize(&$context)
{
  return $context;
}

sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));

?>

Dans cet exemple, nous créons une fonction d'agrégation qui va calculer la taille de la plus longue chaîne dans l'une des colonnes de la table. Pour chaque ligne, la fonction max_len_step est appelée, et reçoit le paramètre context. Le contexte est une autre variable PHP, et il peut contenir un tableau ou même un objet. Dans notre exemple, nous l'utilisons pour stocker la taille maximale de la colonne courante. Si string est plus grand que la valeur maximale que nous avons enregistrée, nous modifions notre contexte en conséquence.

Une fois que toutes les lignes ont été traitées, SQLite appelle la fonction max_len_finalize pour déterminer le résultat de l'agrégation. Nous pourrions alors effectuer plusieurs calculs en fonction des données que nous avons récoltées dans context. Dans notre exemple simple, nous avons calculé le résultat au fur et à mesure de la progression de la requête, ce qui nous permet de n'avoir qu'à retourner la valeur de notre contexte.

Note:

L'exemple ci-dessus ne fonctionnera pas correctement si une colonne contient une donnée binaire. Reportez-vous à la fonction sqlite_udf_decode_binary() pour plus de détails, et d'un exemple pour travailler avec des chaînes binaires.

Astuce

Il n'est pas recommandé de stocker une copie des valeurs dans le contexte, puis de les traiter à la fin, car cela conduirait SQLite à consommer beaucoup de mémoire : imaginez simplement la quantité de mémoire que prendrons vos millions de lignes de 32 caractères en fin de requête.

Astuce

Vous pouvez utiliser sqlite_create_function() et sqlite_create_aggregate() pour remplacer des fonctions natives SQLite.

Voir aussi

  • sqlite_create_function() - Enregistre une fonction utilisateur "classique" UDF pour SQLite
  • sqlite_udf_encode_binary() - Encode les données binaires d'une UDF SQLite avant de les retourner
  • sqlite_udf_decode_binary() - Décode des données binaires, passées à une UDF SQLite


Enregistre une fonction utilisateur "classique" UDF pour SQLite

  • « sqlite_create_aggregate
  • sqlite_current »
  • PHP Manual
  • Fonctions SQLite
  • Enregistre une fonction utilisateur "classique" UDF pour SQLite

sqlite_create_function

SQLiteDatabase::createFunction

(PHP 5 < 5.4.0, sqlite >= 1.0.0)

sqlite_create_function -- SQLiteDatabase::createFunction — Enregistre une fonction utilisateur "classique" UDF pour SQLite

Description

void sqlite_create_function ( resource $dbhandle , string $function_name , callable $callback [, int $num_args = -1 ] )

Style orienté objet (méthode) :

public void SQLiteDatabase::createFunction ( string $function_name , callable $callback [, int $num_args = -1 ] )

sqlite_create_function() vous permet d'enregistrer une fonction PHP dans SQLite comme UDF (Fonction Définie par l'Utilisateur, User Defined Function), pour qu'elle soit accessible depuis les requêtes SQL.

Les UDF peuvent être utilisées dans n'importe quelle requête SQL qui peut appeler des fonctions, telles que SELECT et UPDATE, ou même des déclencheurs.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

function_name

Le nom de la fonction utilisée dans les requêtes SQL.

callback

Fonction de procédure de rappel pour gérer les fonctions SQL définies.

Note: Les fonctions de procédure de rappel devraient retourner un type compris par SQLite (c'est-à-dire, voir type scalaire).

num_args

Conseil à l'analyseur SQLite si la fonction de procédure de rappel accepte un nombre prédéterminé d'arguments.

Note: Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec sqlite_create_function()

<?php
function md5_and_reverse($string)
{
    return strrev(md5($string));
}

if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    sqlite_create_function($dbhandle, 'md5rev', 'md5_and_reverse', 1);

    $sql  = 'SELECT md5rev(filename) FROM files';
    $rows = sqlite_array_query($dbhandle, $sql);
} else {
    echo 'Erreur pendant l\'ouverture de la base db : ' . $sqliteerror;
    exit;
}
?>

Dans cet exemple, nous avons une fonction qui calcule la somme de contrôle MD5 d'une chaîne, et l'inverse. Lorsque la requête SQL s'exécute, elle retourne le nom du fichier, transformé par cette opération. Les données retournées dans $rows contiennent le résultat.

La beauté de cette technique est que vous n'avez pas à traiter vous-même les données avec une boucle, une fois que vous avez lu les données.

PHP enregistre une fonction spéciale appelée PHP lorsque la base est ouverte. Cette fonction est utilisée pour appeler toute fonction PHP sans avoir à l'enregistrer au préalable.

Exemple #2 Exemple d'utilisation d'une fonction PHP dans SQLite

<?php
$rows = sqlite_array_query($db, "SELECT php('md5', filename) from files");
?>

Cet exemple va appeler la fonction md5() sur chaque colonne filename dans la base, et retourner le contenu dans le tableau $rows.

Note:

Pour des raisons de performances, PHP ne va pas automatiquement coder ou décoder les données binaires passées à votre UDF. Vous devez le faire manuellement. Voyez les fonctions sqlite_udf_encode_binary() et sqlite_udf_decode_binary() pour plus de détails.

Astuce

Il n'est pas recommandé d'utiliser des UDF pour traiter des données binaires, à moins que les performances ne soient pas un problème pour votre application.

Astuce

Vous pouvez utiliser sqlite_create_function() et sqlite_create_aggregate() pour remplacer des fonctions natives SQLite.

Voir aussi

  • sqlite_create_aggregate() - Enregistre une UDF agrégeante pour les requêtes SQLite


Lit une ligne de résultat SQLite dans un tableau

  • « sqlite_create_function
  • sqlite_error_string »
  • PHP Manual
  • Fonctions SQLite
  • Lit une ligne de résultat SQLite dans un tableau

sqlite_current

SQLiteResult::current

SQLiteUnbuffered::current

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_current -- SQLiteResult::current -- SQLiteUnbuffered::current — Lit une ligne de résultat SQLite dans un tableau

Description

array sqlite_current ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Style orienté objet (méthode) :

array SQLiteResult::current ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array SQLiteUnbuffered::current ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

sqlite_current() est identique à sqlite_fetch_array() hormis le fait qu'elle ne fait pas progresser le pointeur de résultat avant de lire des données. Elle ne fait que retourner les données qui sont disponibles à la position courante.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Valeurs de retour

Retourne un tableau de la ligne courante du jeu de résultats: FALSE si la position courante est au-delà de la dernière ligne.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Voir aussi

  • sqlite_seek() - Déplace le pointeur de résultat SQLite vers une ligne
  • sqlite_next() - Déplace le pointeur SQLite vers la prochaine ligne
  • sqlite_fetch_array() - Lit la prochaine ligne de résultat SQLite dans un tableau


Retourne le message d'erreur SQLite

  • « sqlite_current
  • sqlite_escape_string »
  • PHP Manual
  • Fonctions SQLite
  • Retourne le message d'erreur SQLite

sqlite_error_string

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_error_string — Retourne le message d'erreur SQLite

Description

string sqlite_error_string ( int $error_code )

sqlite_error_string() retourne un message d'erreur lisible, pour le numéro d'erreur error_code, retourné par sqlite_last_error().

Liste de paramètres

error_code

Le code erreur à utiliser, qui peut être passé depuis la fonction sqlite_last_error().

Valeurs de retour

Retourne une description du code erreur error_code, sous la forme d'une chaîne de caractères.

Voir aussi

  • sqlite_last_error() - Retourne le dernier code d'erreur SQLite


Protège une chaîne de caractères pour utilisation avec SQLite

  • « sqlite_error_string
  • sqlite_exec »
  • PHP Manual
  • Fonctions SQLite
  • Protège une chaîne de caractères pour utilisation avec SQLite

sqlite_escape_string

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_escape_string — Protège une chaîne de caractères pour utilisation avec SQLite

Description

string sqlite_escape_string ( string $item )

sqlite_escape_string() va ajouter des guillemets dans la chaîne item, pour qu'elle puisse être utilisée correctement dans une requête SQL. Cela inclut notamment le doublement des guillemets simples ('), et la vérification des caractères binaires non sécuritaires, de la chaîne de requête.

Bien que ce codage sécurise l'insertion des données, il va rendre la recherche de texte par simple comparaison, ou en utilisant la clause LIKE, inutilisable dans vos requêtes pour les colonnes qui contiennent ces données binaires. En pratique, cela ne devrait pas être un problème, car votre utilisation de la base devrait faire que vous n'utiliserez pas ces colonnes (en fait, il est mieux de stocker des données binaires dans d'autres systèmes, comme des fichiers).

Liste de paramètres

item

La chaîne de caractères à échapper.

Si item contient le caractère NUL et qu'il commence avec un caractère dont la valeur ordinale est 0x01, PHP va appliquer un schéma de codage, pour que vous puissiez stocker puis relire correctement ces données.

Valeurs de retour

Retourne une chaîne de caractères échappée afin de l'utiliser dans des requêtes SQLite SQL.

Notes

Note: N'utilisez pas cette fonction pour coder les valeurs retournées par des fonctions utilisateurs, créées avec les fonctions sqlite_create_function() ou sqlite_create_aggregate() : utilisez plutôt sqlite_udf_encode_binary().

Avertissement

addslashes() NE doit PAS être utilisée pour protéger vos requêtes dans SQLite. Cela va conduire à d'étranges résultats lors de la lecture de vos données.

Voir aussi

  • sqlite_udf_encode_binary() - Encode les données binaires d'une UDF SQLite avant de les retourner


Exécute une requête sans résultats sur une base de données

  • « sqlite_escape_string
  • sqlite_factory »
  • PHP Manual
  • Fonctions SQLite
  • Exécute une requête sans résultats sur une base de données

sqlite_exec

SQLiteDatabase::exec

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.3)

sqlite_exec -- SQLiteDatabase::exec — Exécute une requête sans résultats sur une base de données

Description

bool sqlite_exec ( resource $dbhandle , string $query [, string &$error_msg ] )
bool sqlite_exec ( string $query , resource $dbhandle )

Style orienté objet (méthode) :

public bool SQLiteDatabase::queryExec ( string $query [, string &$error_msg ] )

sqlite_exec() exécute une requête SQL query sur une base de données spécifiée par la ressource dbhandle.

Avertissement

SQLite doit exécuter de multiples requêtes séparées par des points-virgules ; vous pouvez donc l'utiliser pour exécuter un script SQL que vous avez chargé depuis un fichier ou que vous avez intégré dans un script.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsque utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

query

La requête à être exécutée.

Les données contenues dans la requête doivent être échappées.

error_msg

La variable spécifiée sera remplie si une erreur se produit. Ceci est important car les erreurs de syntaxes SQL ne peuvent être récupérées en utilisant la fonction sqlite_last_error().

Note: Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Cette fonction retourne un résultat booléen; TRUE en cas de succès, FALSE en cas d'erreur. Si vous avez besoin d'exécuter une requête qui doit retourner des lignes, reportez-vous à la fonction sqlite_query().

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Historique

Version | Description
5.1.0 | Ajout du paramètre error_msg

Exemples

Exemple #1 Style procédural

<?php
$dbhandle = sqlite_open('mysqlitedb');
$query = sqlite_exec($dbhandle, "UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'", $error);
if (!$query) {
    exit("Erreur dans la requête : '$error'");
} else {
    echo 'Nombre de lignes modifiées : ', sqlite_changes($dbhandle);
}
?>

Exemple #2 Style orienté objet

<?php
$dbhandle = new SQLiteDatabase('mysqlitedb');
$query = $dbhandle->exec("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'", $error);
if (!$query) {
    exit("Erreur dans la requête : '$error'");
} else {
    echo 'Nombre de lignes modifiées : ', $dbhandle->changes();
}
?>

Voir aussi

  • sqlite_query() - Exécute une requête SQLite et lit le résultat
  • sqlite_unbuffered_query() - Exécute une requête SQLite non bufferisée
  • sqlite_array_query() - Exécute une requête SQL avec SQLite et retourne un tableau


Ouvre une base SQLite et crée un objet pour elle

  • « sqlite_exec
  • sqlite_fetch_all »
  • PHP Manual
  • Fonctions SQLite
  • Ouvre une base SQLite et crée un objet pour elle

sqlite_factory

(PHP 5 < 5.4.0)

sqlite_factory — Ouvre une base SQLite et crée un objet pour elle

Description

SQLiteDatabase sqlite_factory ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

sqlite_factory() fonctionne de la même façon que sqlite_open() dans le fait qu'il ouvre une base de données SQLite ou tente de la créer si elle n'existe pas. Cependant, un objet SQLiteDatabase est retourné plutôt qu'une ressource. Lisez la page de référence sur sqlite_open() pour son utilisation.

Liste de paramètres

filename

Le nom du fichier de la base de données SQLite.

mode

Le mode du fichier. Devrait être utilisé pour ouvrir une base de données en mode lecture seule. Actuellement, ce paramètre est ignoré par la bibliothèque sqlite. La valeur par défaut pour le mode est 0666 en octal et cela est la valeur recommandée.

error_message

Passée par référence et est affectée afin de contenir la description du message d'erreur qui explique pourquoi la base de données ne pouvait pas être ouverte s'il y avait une erreur.

Valeurs de retour

Retourne un objet SQLiteDatabase en cas de succès, NULL en cas d'erreur.

Exemples

Exemple #1 Exemple avec sqlite_factory()

<?php
$dbhandle = sqlite_factory('sqlitedb');
$dbhandle->query('SELECT user_id, username FROM users');

/* équivalent dans les fonctionnalités à : */

$dbhandle = new SQLiteDatabase('sqlitedb');
$dbhandle->query('SELECT user_id, username FROM users');

?>

Voir aussi

  • sqlite_open() - Ouvre une base SQLite et la crée si elle n'existe pas
  • sqlite_popen() - Ouvre une connexion SQLite persistante et crée la base si elle n'existe pas


Retourne toutes les lignes d'un jeu de résultats en tant que tableau de tableaux

  • « sqlite_factory
  • sqlite_fetch_array »
  • PHP Manual
  • Fonctions SQLite
  • Retourne toutes les lignes d'un jeu de résultats en tant que tableau de tableaux

sqlite_fetch_all

SQLiteResult::fetchAll

SQLiteUnbuffered::fetchAll

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_fetch_all -- SQLiteResult::fetchAll -- SQLiteUnbuffered::fetchAll — Retourne toutes les lignes d'un jeu de résultats en tant que tableau de tableaux

Description

array sqlite_fetch_all ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Style orienté objet (méthode) :

array SQLiteResult::fetchAll ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array SQLiteUnbuffered::fetchAll ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Retourne un tableau des lignes restantes dans le jeu de résultats. Si appelée juste après sqlite_query(), elle retourne toutes les lignes. Si appelée après sqlite_fetch_array(), elle retourne le reste. S'il n'y a plus de lignes disponibles dans le jeu de résultats, elle retourne un tableau vide.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Valeurs de retour

Retourne un tableau de la ligne courante du jeu de résultats : FALSE si la position courante est au-delà de la dernière ligne.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Exemples

Exemple #1 Style procédural

<?php
$dbhandle = sqlite_open('sqlitedb');
$query = sqlite_query($dbhandle, 'SELECT name, email FROM users LIMIT 25');
$result = sqlite_fetch_all($query, SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Nom : ' . $entry['name'] . '  E-mail : ' . $entry['email'];
}
?>

Exemple #2 Style orienté objet

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');

$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // jeu de résultats bufférisé
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // jeu de résultats non bufférisé

$result = $query->fetchAll(SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Nom : ' . $entry['name'] . '  E-mail : ' . $entry['email'];
}
?>

Voir aussi

  • sqlite_fetch_array() - Lit la prochaine ligne de résultat SQLite dans un tableau


Lit la prochaine ligne de résultat SQLite dans un tableau

  • « sqlite_fetch_all
  • sqlite_fetch_column_types »
  • PHP Manual
  • Fonctions SQLite
  • Lit la prochaine ligne de résultat SQLite dans un tableau

sqlite_fetch_array

SQLiteResult::fetch

SQLiteUnbuffered::fetch

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_fetch_array -- SQLiteResult::fetch -- SQLiteUnbuffered::fetch — Lit la prochaine ligne de résultat SQLite dans un tableau

Description

array sqlite_fetch_array ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Style orienté objet (méthode) :

array SQLiteResult::fetch ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array SQLiteUnbuffered::fetch ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

sqlite_fetch_array() lit la prochaine ligne dans le résultat result. S'il n'y a pas d'autres lignes, sqlite_fetch_array() retourne FALSE et, sinon, elle retourne un tableau représentant les données lues.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Valeurs de retour

Retourne un tableau de la ligne suivante du jeu de résultats: FALSE si la position suivante est au-delà de la dernière ligne.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Exemples

Exemple #1 Style procédural

<?php
$dbhandle = sqlite_open('sqlitedb');
$query = sqlite_query($dbhandle, 'SELECT name, email FROM users LIMIT 25');
while ($entry = sqlite_fetch_array($query, SQLITE_ASSOC)) {
    echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Exemple #2 Style orienté objet

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');

$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // jeu de résultat bufférisé
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // jeu de résultat non bufférisé

while ($entry = $query->fetch(SQLITE_ASSOC)) {
    echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Voir aussi

  • sqlite_array_query() - Exécute une requête SQL avec SQLite et retourne un tableau
  • sqlite_fetch_string() - Alias de sqlite_fetch_single


Retourne un tableau des types de colonnes d'une certaine table

  • « sqlite_fetch_array
  • sqlite_fetch_object »
  • PHP Manual
  • Fonctions SQLite
  • Retourne un tableau des types de colonnes d'une certaine table

sqlite_fetch_column_types

SQLiteDatabase::fetchColumnTypes

(PHP 5 < 5.4.0)

sqlite_fetch_column_types -- SQLiteDatabase::fetchColumnTypes — Retourne un tableau des types de colonnes d'une certaine table

Description

array sqlite_fetch_column_types ( string $table_name , resource $dbhandle [, int $result_type = SQLITE_ASSOC ] )

Style orienté objet (méthode) :

public array SQLiteDatabase::fetchColumnTypes ( string $table_name [, int $result_type = SQLITE_ASSOC ] )

sqlite_fetch_column_types() retourne un tableau de types de colonnes depuis la table table_name spécifiée.

Liste de paramètres

table_name

Le nom de la table à interroger.

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_ASSOC est la valeur par défaut pour cette fonction.

Valeurs de retour

Retourne un tableau des types de données des colonnes; FALSE en cas d'erreur.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Historique

Version | Description
5.1.0 | Ajout de result_type

Exemples

Exemple #1 Style procédural

<?php
$db = sqlite_open('mysqlitedb');
sqlite_query($db, 'CREATE TABLE foo (bar varchar(10), arf text)');
$cols = sqlite_fetch_column_types('foo', $db, SQLITE_ASSOC);

foreach ($cols as $column => $type) {
    echo "Colonne : $column  Type : $type\n";
}
?>

Exemple #2 Style orienté objet

<?php
$db = new SQLiteDatabase('mysqlitedb');
$db->query('CREATE TABLE foo (bar varchar(10), arf text)');
$cols = $db->fetchColumnTypes('foo', SQLITE_ASSOC);

foreach ($cols as $column => $type) {
    echo "Colonne : $column  Type : $type\n";
}
?>

L'exemple ci-dessus va afficher :

Colonne : bar  Type : VARCHAR
Colonne : arf  Type : TEXT


Retourne la ligne suivante du jeu de résultats en tant qu'objet

  • « sqlite_fetch_column_types
  • sqlite_fetch_single »
  • PHP Manual
  • Fonctions SQLite
  • Retourne la ligne suivante du jeu de résultats en tant qu'objet

sqlite_fetch_object

SQLiteResult::fetchObject

SQLiteUnbuffered::fetchObject

(PHP 5 < 5.4.0)

sqlite_fetch_object -- SQLiteResult::fetchObject -- SQLiteUnbuffered::fetchObject — Retourne la ligne suivante du jeu de résultats en tant qu'objet

Description

object sqlite_fetch_object ( resource $result [, string $class_name [, array $ctor_params [, bool $decode_binary = true ]]] )

Style orienté objet (méthode) :

object SQLiteResult::fetchObject ([ string $class_name [, array $ctor_params [, bool $decode_binary = true ]]] )
object SQLiteUnbuffered::fetchObject ([ string $class_name [, array $ctor_params [, bool $decode_binary = true ]]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Lit la première ligne d'un résultat SQLite sous forme de chaîne

  • « sqlite_fetch_object
  • sqlite_fetch_string »
  • PHP Manual
  • Fonctions SQLite
  • Lit la première ligne d'un résultat SQLite sous forme de chaîne

sqlite_fetch_single

SQLiteResult::fetchSingle

SQLiteUnbuffered::fetchSingle

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.1)

sqlite_fetch_single -- SQLiteResult::fetchSingle -- SQLiteUnbuffered::fetchSingle — Lit la première ligne d'un résultat SQLite sous forme de chaîne

Description

string sqlite_fetch_single ( resource $result [, bool $decode_binary = true ] )

Style orienté objet (method):

string SQLiteResult::fetchSingle ([ bool $decode_binary = true ] )
string SQLiteUnbuffered::fetchSingle ([ bool $decode_binary = true ] )

sqlite_fetch_single() est identique à sqlite_fetch_array() hormis le fait qu'elle retourne uniquement la valeur de la première colonne du résultat.

C'est la méthode optimale pour lire des données, si vous n'êtes intéressé que par les valeurs de la première colonne.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Valeurs de retour

Retourne la valeur de la première colonne, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec sqlite_fetch_single()

<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    $sql = 'SELECT id FROM sometable WHERE id = 42';
    $res = sqlite_query($db, $sql);

    if (sqlite_num_rows($res) > 0) {
        echo sqlite_fetch_single($res); // 42
    }

    sqlite_close($db);
}
?>

Voir aussi

  • sqlite_fetch_array() - Lit la prochaine ligne de résultat SQLite dans un tableau


Alias de sqlite_fetch_single

  • « sqlite_fetch_single
  • sqlite_field_name »
  • PHP Manual
  • Fonctions SQLite
  • Alias de sqlite_fetch_single

sqlite_fetch_string

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_fetch_string — Alias de sqlite_fetch_single()

Description

Cette fonction est un alias de : sqlite_fetch_single().


Retourne le nom du champ SQLite

  • « sqlite_fetch_string
  • sqlite_has_more »
  • PHP Manual
  • Fonctions SQLite
  • Retourne le nom du champ SQLite

sqlite_field_name

SQLiteResult::fieldName

SQLiteUnbuffered::fieldName

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_field_name -- SQLiteResult::fieldName -- SQLiteUnbuffered::fieldName — Retourne le nom du champ SQLite

Description

string sqlite_field_name ( resource $result , int $field_index )

Style orienté objet (méthode) :

string SQLiteResult::fieldName ( int $field_index )
string SQLiteUnbuffered::fieldName ( int $field_index )

sqlite_field_name() retourne le nom du champ identifié par son index numérique field_index, dans le résultat result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

field_index

Nombre ordinal de la colonne dans le jeu de résultats.

Valeurs de retour

Retourne le nom du champ dans un jeu de résultats SQLite, donné par le nombre ordinal de la colonne; FALSE en cas d'erreur.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.


Indique s'il reste des lignes SQLite à lire

  • « sqlite_field_name
  • sqlite_has_prev »
  • PHP Manual
  • Fonctions SQLite
  • Indique s'il reste des lignes SQLite à lire

sqlite_has_more

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_has_more — Indique s'il reste des lignes SQLite à lire

Description

bool sqlite_has_more ( resource $result )

Recherche si d'autres lignes sont disponibles dans le jeu de résultats donné.

Liste de paramètres

result

La ressource de résultat SQLite.

Valeurs de retour

Retourne TRUE s'il y a d'autres lignes de résultat à lire dans la ressource result ou FALSE sinon.

Voir aussi

  • sqlite_num_rows() - Retourne le nombre de lignes d'un résultat SQLite
  • sqlite_changes() - Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite


Retourne si oui ou non une ligne précédente est disponible

  • « sqlite_has_more
  • sqlite_key »
  • PHP Manual
  • Fonctions SQLite
  • Retourne si oui ou non une ligne précédente est disponible

sqlite_has_prev

SQLiteResult::hasPrev

(PHP 5 < 5.4.0)

sqlite_has_prev -- SQLiteResult::hasPrev — Retourne si oui ou non une ligne précédente est disponible

Description

bool sqlite_has_prev ( resource $result )

Style orienté objet (méthode) :

bool SQLiteResult::hasPrev ( void )

Recherche si d'autres lignes précédentes sont disponibles dans le jeu de résultats donné.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne TRUE s'il y a d'autres lignes précédentes de résultat à lire dans la ressource result ou FALSE sinon.

Voir aussi

  • sqlite_prev() - Se positionne sur le numéro de ligne précédent du jeu de résultats
  • sqlite_has_more() - Indique s'il reste des lignes SQLite à lire
  • sqlite_num_rows() - Retourne le nombre de lignes d'un résultat SQLite


Retourne l'index de la ligne courante

  • « sqlite_has_prev
  • sqlite_last_error »
  • PHP Manual
  • Fonctions SQLite
  • Retourne l'index de la ligne courante

sqlite_key

SQLiteResult::key

(PHP 5 >= 5.1.0 and < 5.4.0)

sqlite_key -- SQLiteResult::key — Retourne l'index de la ligne courante

Description

Style orienté objet (méthode) :

int SQLiteResult::key ( void )

La méthode SQLiteResult::key() retourne l'index de la ligne courante d'un jeu de résultats bufferisé result.

Contrairement à toutes les autres fonctions SQLite, cette méthode n'a pas de version procédurale, et ne peut être appelée que sous la forme d'une méthode sur un objet SQLiteResult.

Valeurs de retour

Retourne l'index de la ligne courante du jeu de résultats bufferisé result.

Voir aussi

  • sqlite_next() - Déplace le pointeur SQLite vers la prochaine ligne
  • sqlite_current() - Lit une ligne de résultat SQLite dans un tableau
  • sqlite_rewind() - Place le pointeur de résultat SQLite au début


Retourne le dernier code d'erreur SQLite

  • « sqlite_key
  • sqlite_last_insert_rowid »
  • PHP Manual
  • Fonctions SQLite
  • Retourne le dernier code d'erreur SQLite

sqlite_last_error

SQLiteDatabase::lastError

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_last_error -- SQLiteDatabase::lastError — Retourne le dernier code d'erreur SQLite

Description

int sqlite_last_error ( resource $dbhandle )

Style orienté objet (méthode) :

public int SQLiteDatabase::lastError ( void )

Retourne le code d'erreur de la dernière opération SQL effectuée sur la base dbhandle (l'identifiant de base de données) ou 0 lorsque aucune erreur n'est survenue. Une description lisible de cette erreur peut être obtenue avec la fonction sqlite_error_string().

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

Valeurs de retour

Retourne le code erreur, ou 0 si une erreur survient.

Voir aussi

  • sqlite_error_string() - Retourne le message d'erreur SQLite


Retourne le numéro de ligne de la dernière ligne insérée

  • « sqlite_last_error
  • sqlite_libencoding »
  • PHP Manual
  • Fonctions SQLite
  • Retourne le numéro de ligne de la dernière ligne insérée

sqlite_last_insert_rowid

SQLiteDatabase::lastInsertRowid

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_last_insert_rowid -- SQLiteDatabase::lastInsertRowid — Retourne le numéro de ligne de la dernière ligne insérée

Description

int sqlite_last_insert_rowid ( resource $dbhandle )

Style orienté objet (méthode) :

public int SQLiteDatabase::lastInsertRowid ( void )

sqlite_last_insert_rowid() retourne le numéro de ligne inséré dans la base dbhandle, si elle a été créée avec un champ auto-incrémenté.

Astuce

Vous pouvez créer des champs auto-incrémentés en SQLite, en utilisant l'attribut INTEGER PRIMARY KEY dans vos tables.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

Valeurs de retour

Retourne l'identifiant de la ligne, sous la forme d'un entier.


Retourne l'encodage utilisé par la bibliothèque SQLite

  • « sqlite_last_insert_rowid
  • sqlite_libversion »
  • PHP Manual
  • Fonctions SQLite
  • Retourne l'encodage utilisé par la bibliothèque SQLite

sqlite_libencoding

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_libencoding — Retourne l'encodage utilisé par la bibliothèque SQLite

Description

string sqlite_libencoding ( void )

La libraire SQLite peut être compilée avec le support de ISO-8859-1 ou UTF-8. sqlite_libencoding() vous permet de savoir quel encodage est utilisé.

Avertissement

La distribution par défaut de PHP compile libsqlite avec l'encodage ISO-8859-1. Cependant, c'est un leurre. Au lieu d'utiliser ISO-8859-1, elle va utiliser votre configuration locale pour les comparaisons et les tris. Il vaut donc mieux penser que ce n'est pas ISO-8859-1, mais plutôt '8-bit'.

Lorsqu'elle est compilée avec le support UTF-8, SQLite gère le codage et l'encodage des séquences multioctets UTF-8, mais ne fait pas totalement le travail lorsqu'elle opère avec les données (aucune normalisation n'est faite, par exemple), et certaines comparaisons peuvent être erronées.

Avertissement

Il n'est pas recommandé d'utiliser PHP en configuration de serveur web avec une version de SQLite qui utilise l'encodage UTF-8, car libsqlite va interrompre le processus si elle détecte un problème avec l'encodage UTF-8.

Valeurs de retour

Retourne l'encodage de la bibliothèque.

Voir aussi

  • sqlite_lib_version()


Retourne la version de la bibliothèque SQLite

  • « sqlite_libencoding
  • sqlite_next »
  • PHP Manual
  • Fonctions SQLite
  • Retourne la version de la bibliothèque SQLite

sqlite_libversion

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_libversion — Retourne la version de la bibliothèque SQLite

Description

string sqlite_libversion ( void )

Retourne la version de la bibliothèque SQLite.

Valeurs de retour

Retourne la version de la bibliothèque, sous la forme d'une chaîne de caractères.

Voir aussi

  • sqlite_libencoding() - Retourne l'encodage utilisé par la bibliothèque SQLite


Déplace le pointeur SQLite vers la prochaine ligne

  • « sqlite_libversion
  • sqlite_num_fields »
  • PHP Manual
  • Fonctions SQLite
  • Déplace le pointeur SQLite vers la prochaine ligne

sqlite_next

SQLiteResult::next

SQLiteUnbuffered::next

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_next -- SQLiteResult::next -- SQLiteUnbuffered::next — Déplace le pointeur SQLite vers la prochaine ligne

Description

bool sqlite_next ( resource $result )

Style orienté objet (méthode) :

bool SQLiteResult::next ( void )
bool SQLiteUnbuffered::next ( void )

sqlite_next() avance le pointeur de résultat à la prochaine ligne du résultat result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Valeurs de retour

Retourne TRUE en cas de succès ou FALSE s'il n'y a plus de lignes.

Voir aussi

  • sqlite_seek() - Déplace le pointeur de résultat SQLite vers une ligne
  • sqlite_current() - Lit une ligne de résultat SQLite dans un tableau
  • sqlite_rewind() - Place le pointeur de résultat SQLite au début


Retourne le nombre de champs dans un résultat SQLite

  • « sqlite_next
  • sqlite_num_rows »
  • PHP Manual
  • Fonctions SQLite
  • Retourne le nombre de champs dans un résultat SQLite

sqlite_num_fields

SQLiteResult::numFields

SQLiteUnbuffered::numFields

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_num_fields -- SQLiteResult::numFields -- SQLiteUnbuffered::numFields — Retourne le nombre de champs dans un résultat SQLite

Description

int sqlite_num_fields ( resource $result )

Style orienté objet (méthode) :

int SQLiteResult::numFields ( void )
int SQLiteUnbuffered::numFields ( void )

Retourne le nombre de champs dans le résultat SQLite result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Valeurs de retour

Retourne le nombre de champs, sous la forme d'un entier.

Voir aussi

  • sqlite_changes() - Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite
  • sqlite_num_rows() - Retourne le nombre de lignes d'un résultat SQLite


Retourne le nombre de lignes d'un résultat SQLite

  • « sqlite_num_fields
  • sqlite_open »
  • PHP Manual
  • Fonctions SQLite
  • Retourne le nombre de lignes d'un résultat SQLite

sqlite_num_rows

SQLiteResult::numRows

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_num_rows -- SQLiteResult::numRows — Retourne le nombre de lignes d'un résultat SQLite

Description

int sqlite_num_rows ( resource $result )

Style orienté objet (méthode) :

int SQLiteResult::numRows ( void )

sqlite_num_rows() retourne le nombre de lignes dans le résultat SQLite result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.

Exemples

Exemple #1 Style procédural

<?php
$db = sqlite_open('mysqlitedb');
$result = sqlite_query($db, "SELECT * FROM mytable WHERE name='John Doe'");
$rows = sqlite_num_rows($result);

echo "Nombre de lignes : $rows";
?>

Exemple #2 Style orienté objet

<?php
$db = new SQLiteDatabase('mysqlitedb');
$result = $db->query("SELECT * FROM mytable WHERE name='John Doe'");
$rows = $result->numRows();

echo "Nombre de lignes : $rows";
?>

Voir aussi

  • sqlite_changes() - Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite
  • sqlite_query() - Exécute une requête SQLite et lit le résultat
  • sqlite_num_fields() - Retourne le nombre de champs dans un résultat SQLite


Ouvre une base SQLite et la crée si elle n'existe pas

  • « sqlite_num_rows
  • sqlite_popen »
  • PHP Manual
  • Fonctions SQLite
  • Ouvre une base SQLite et la crée si elle n'existe pas

sqlite_open

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_open — Ouvre une base SQLite et la crée si elle n'existe pas

Description

resource sqlite_open ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

Style orienté objet (constructeur) :

final public SQLiteDatabase::__construct ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

Ouvre une base de données SQLite ou crée la base de données si elle n'existe pas.

Liste de paramètres

filename

Le nom du fichier de la base de données SQLite. Si le fichier n'existe pas, SQLite tentera de le créer. PHP doit avoir les permissions d'écriture du fichier si des données y sont insérées, le schéma de la base de données est modifié ou pour créer une base de données si elle n'existe pas.

mode

Le mode du fichier. Devrait être utilisé pour ouvrir une base de données en mode lecture seule. Actuellement, ce paramètre est ignoré par la bibliothèque sqlite. La valeur par défaut pour le mode est 0666 en octal et cela est la valeur recommandée.

error_message

Passée par référence et est affectée afin de contenir la description du message d'erreur qui explique pourquoi la base de données ne pouvait pas être ouverte s'il y avait une erreur.

Valeurs de retour

Retourne une ressource (de base de données) en cas de succès, FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec sqlite_open()

<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
  sqlite_query($db,'CREATE TABLE foo (bar varchar(10))');
  sqlite_query($db,"INSERT INTO foo VALUES ('fnord')");
  $result = sqlite_query($db,'select bar from foo');
  var_dump(sqlite_fetch_array($result));
} else {
  die ($sqliteerror);
}
?>

Notes

Astuce

Sur les plates-formes Unix, SQLite est sensible aux scripts qui utilisent la fonction système fork(). Si vous avez un tel script, il est recommandé que vous refermiez la ressource avant de faire le fork, et de l'ouvrir à nouveau dans le processus fils. Pour plus d'informations sur ce problème, voyez » The C language interface to the SQLite library dans la section intitulée Multi-Threading And SQLite (en anglais).

Astuce

Il n'est pas recommandé d'utiliser des bases de données SQLite montées sur des partitions NFS. Comme NFS est très mauvais pour assurer le verrouillage des fichiers, vous pourriez ne pas ouvrir les bases, et, si vous réussissez, le verrouillage de la base sera indéfini.

Note: Depuis SQLite version 2.8.2, vous pouvez spécifier :memory: comme valeur de filename pour créer une base qui sera installée en mémoire vive, sur le serveur. C'est très pratique pour des traitements temporaires, car la base en mémoire sera détruire dès que le script sera terminé. Cela peut aussi être utile, lorsqu'utilisé conjointement avec la commande SQL ATTACH DATABASE, pour charger d'autres bases, et faire des requêtes liées.

Note: SQLite prend en compte le safe mode et l'option open_basedir.

Voir aussi

  • sqlite_popen() - Ouvre une connexion SQLite persistante et crée la base si elle n'existe pas
  • sqlite_close() - Ferme la connexion à SQLite
  • sqlite_factory() - Ouvre une base SQLite et crée un objet pour elle


Ouvre une connexion SQLite persistante et crée la base si elle n'existe pas

  • « sqlite_open
  • sqlite_prev »
  • PHP Manual
  • Fonctions SQLite
  • Ouvre une connexion SQLite persistante et crée la base si elle n'existe pas

sqlite_popen

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_popen — Ouvre une connexion SQLite persistante et crée la base si elle n'existe pas

Description

resource sqlite_popen ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

sqlite_popen() fonctionne exactement comme sqlite_open(), hormis le fait qu'elle utilise le mécanisme de ressources persistantes de PHP. Pour des détails sur la signification des paramètres, voyez la fonction sqlite_open().

sqlite_popen() va d'abord vérifier qu'il reste une connexion persistante déjà ouverte pour le fichier filename. Si elle peut en trouver une, elle l'utilisera et, sinon, elle ouvrira une nouvelle connexion.

L'intérêt de cette méthode est que vous évitez de relire la base, les schémas de tables et d'index, pour chaque page exécutée par un serveur web SAPI persistant (tous les SAPI, sauf les CGI et CLI).

Note: Si vous utilisez une connexion persistante et que la base de données est modifiée par un autre processus (via une table de cron, par exemple), et que le processus recrée la base en l'écrasant, soit par effacement et reconstruction, ou par déplacement d'une nouvelle version à la place de l'ancienne, vous pourriez obtenir des comportements inattendus lorsque vous utiliserez une vielle connexion persistante sur une nouvelle base. Pour éviter cette situation, faites en sorte que vos processus parallèles ouvrent les bases et fassent leurs modifications dans une transaction.

Liste de paramètres

filename

Le nom du fichier de la base de données SQLite. Si le fichier n'existe pas, SQLite tentera de le créer. PHP doit avoir les permissions d'écriture du fichier si des données y sont insérées, le schéma de la base de données est modifié, ou pour créer une base de données si elle n'existe pas.

mode

Le mode du fichier. Devrait être utilisé pour ouvrir une base de données en mode lecture seule. Actuellement, ce paramètre est ignoré par la bibliothèque sqlite. La valeur par défaut pour le mode est 0666 en octal : c'est la valeur recommandée.

error_message

Passée par référence et est affectée afin de contenir la description du message d'erreur qui explique pourquoi la base de données ne pouvait pas être ouverte s'il y avait une erreur.

Valeurs de retour

Retourne une ressource (de base de données) en cas de succès, FALSE en cas d'erreur.

Voir aussi

  • sqlite_open() - Ouvre une base SQLite et la crée si elle n'existe pas
  • sqlite_close() - Ferme la connexion à SQLite
  • sqlite_factory() - Ouvre une base SQLite et crée un objet pour elle


Se positionne sur le numéro de ligne précédent du jeu de résultats

  • « sqlite_popen
  • sqlite_query »
  • PHP Manual
  • Fonctions SQLite
  • Se positionne sur le numéro de ligne précédent du jeu de résultats

sqlite_prev

SQLiteResult::prev

(PHP 5 < 5.4.0)

sqlite_prev -- SQLiteResult::prev — Se positionne sur le numéro de ligne précédent du jeu de résultats

Description

bool sqlite_prev ( resource $result )

Style orienté objet (méthode) :

bool SQLiteResult::prev ( void )

sqlite_prev() se positionne sur la ligne précédente du jeu de résultats result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne TRUE en cas de succès ou FALSE s'il n'y a plus de ligne précédente.

Voir aussi

  • sqlite_has_prev() - Retourne si oui ou non une ligne précédente est disponible
  • sqlite_rewind() - Place le pointeur de résultat SQLite au début
  • sqlite_next() - Déplace le pointeur SQLite vers la prochaine ligne


Exécute une requête SQLite et lit le résultat

  • « sqlite_prev
  • sqlite_rewind »
  • PHP Manual
  • Fonctions SQLite
  • Exécute une requête SQLite et lit le résultat

sqlite_query

SQLiteDatabase::query

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_query -- SQLiteDatabase::query — Exécute une requête SQLite et lit le résultat

Description

resource sqlite_query ( resource $dbhandle , string $query [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] )
resource sqlite_query ( string $query , resource $dbhandle [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] )

Style orienté objet (méthode) :

public SQLiteResult SQLiteDatabase::query ( string $query [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] )

Exécute la requête SQL query dans une base SQLite.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

query

La requête à être exécutée.

Les données contenues dans la requête doivent être échappées.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

error_msg

La variable spécifiée sera remplie si une erreur se produit. Ceci est important car les erreurs de syntaxes SQL ne peuvent être récupérées en utilisant la fonction sqlite_last_error().

Note: Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Retourne une ressource de résultat ou FALSE si une erreur survient. Pour les requêtes qui retournent des lignes, la ressource de résultat peut être utilisée avec les fonctions comme sqlite_fetch_array() et sqlite_seek().

Indépendamment du type, cette fonction retournera FALSE si la requête échoue.

sqlite_query() retourne un résultat bufferisé. C'est très pratique pour des résultats de petite taille, où vous aurez besoin d'accéder aléatoirement aux lignes. Les résultats bufferisés allouent la mémoire nécessaire pour stocker tout le résultat, et ne se termineront qu'une fois toutes ces données lues. Si vous n'avez besoin que d'un accès séquentiel aux données, il est recommandé d'utiliser sqlite_unbuffered_query().

Historique

Version | Description
5.1.0 | Ajout du paramètre error_msg

Notes

Avertissement

SQLite va exécute les requêtes multiples, séparées par des points-virgules, ce qui vous permet d'exécuter plusieurs requêtes SQL en une seule fois.

Lorsque vous exécutez des requêtes multiples, la valeur retournée par cette fonction sera FALSE si une erreur s'est produite, mais indéfini dans les autres cas (cela peut être TRUE en cas de succès, ou bien elle peut retourner un résultat).

Voir aussi

  • sqlite_unbuffered_query() - Exécute une requête SQLite non bufferisée
  • sqlite_array_query() - Exécute une requête SQL avec SQLite et retourne un tableau


Place le pointeur de résultat SQLite au début

  • « sqlite_query
  • sqlite_seek »
  • PHP Manual
  • Fonctions SQLite
  • Place le pointeur de résultat SQLite au début

sqlite_rewind

SQLiteResult::rewind

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_rewind -- SQLiteResult::rewind — Place le pointeur de résultat SQLite au début

Description

bool sqlite_rewind ( resource $result )

Style orienté objet (méthode) :

bool SQLiteResult::rewind ( void )

sqlite_rewind() replace le pointeur à la première ligne du jeu de résultats donné.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne FALSE s'il n'y a plus de ligne dans le jeu de résultats, TRUE sinon.

Voir aussi

  • sqlite_next() - Déplace le pointeur SQLite vers la prochaine ligne
  • sqlite_current() - Lit une ligne de résultat SQLite dans un tableau
  • sqlite_seek() - Déplace le pointeur de résultat SQLite vers une ligne


Déplace le pointeur de résultat SQLite vers une ligne

  • « sqlite_rewind
  • sqlite_single_query »
  • PHP Manual
  • Fonctions SQLite
  • Déplace le pointeur de résultat SQLite vers une ligne

sqlite_seek

SQLiteResult::seek

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_seek -- SQLiteResult::seek — Déplace le pointeur de résultat SQLite vers une ligne

Description

bool sqlite_seek ( resource $result , int $rownum )

Style orienté objet (méthode) :

bool SQLiteResult::seek ( int $rownum )

sqlite_seek() déplace le pointeur de résultat à la ligne rownum.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

rownum

Nombre ordinal de la ligne où se déplacer. Le numéro de la première ligne est 0

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne FALSE si la ligne n'existe pas, TRUE sinon.

Voir aussi

  • sqlite_next() - Déplace le pointeur SQLite vers la prochaine ligne
  • sqlite_current() - Lit une ligne de résultat SQLite dans un tableau
  • sqlite_rewind() - Place le pointeur de résultat SQLite au début


Exécute une requête et retourne soit un tableau pour une colonne unique, soit la valeur de la première ligne

  • « sqlite_seek
  • sqlite_udf_decode_binary »
  • PHP Manual
  • Fonctions SQLite
  • Exécute une requête et retourne soit un tableau pour une colonne unique, soit la valeur de la première ligne

sqlite_single_query

SQLiteDatabase::singleQuery

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.1)

sqlite_single_query -- SQLiteDatabase::singleQuery — Exécute une requête et retourne soit un tableau pour une colonne unique, soit la valeur de la première ligne

Description

array sqlite_single_query ( resource $db , string $query [, bool $first_row_only [, bool $decode_binary ]] )

Style orienté objet (méthode) :

public array SQLiteDatabase::singleQuery ( string $query [, bool $first_row_only [, bool $decode_binary ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Décode des données binaires, passées à une UDF SQLite

  • « sqlite_single_query
  • sqlite_udf_encode_binary »
  • PHP Manual
  • Fonctions SQLite
  • Décode des données binaires, passées à une UDF SQLite

sqlite_udf_decode_binary

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_udf_decode_binary — Décode des données binaires, passées à une UDF SQLite

Description

string sqlite_udf_decode_binary ( string $data )

Décode des données binaires.

Vous devez appeler cette fonction sur les paramètres passés à votre UDF, si vous devez manipuler des données binaires, car le codage binaire de PHP va masquer le contenu original de la donnée.

PHP ne fait pas cette opération de codage/décodage automatiquement, car cela réduirait considérablement les performances.

Liste de paramètres

data

Les données encodées avec les fonctions sqlite_udf_encode_binary() ou sqlite_escape_string() et qui doivent être décodées

Valeurs de retour

La chaîne de caractères décodée.

Exemples

Exemple #1 Exemple de fonction d'agrégation SQLite, compatible avec les données binaires

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten'
   );
$db = sqlite_open(':memory:');
sqlite_query($db, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($db, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string)
{
  $string = sqlite_udf_decode_binary($string);
  if (strlen($string) > $context) {
    $context = strlen($string);
  }
}

function max_len_finalize(&$context)
{
  return $context;
}

sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));

?>

Voir aussi

  • sqlite_udf_encode_binary() - Encode les données binaires d'une UDF SQLite avant de les retourner
  • sqlite_create_function() - Enregistre une fonction utilisateur "classique" UDF pour SQLite
  • sqlite_create_aggregate() - Enregistre une UDF agrégeante pour les requêtes SQLite


Encode les données binaires d'une UDF SQLite avant de les retourner

  • « sqlite_udf_decode_binary
  • sqlite_unbuffered_query »
  • PHP Manual
  • Fonctions SQLite
  • Encode les données binaires d'une UDF SQLite avant de les retourner

sqlite_udf_encode_binary

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_udf_encode_binary — Encode les données binaires d'une UDF SQLite avant de les retourner

Description

string sqlite_udf_encode_binary ( string $data )

sqlite_udf_encode_binary() applique le codage aux données binaires data pour qu'elles puissent être correctement retournées depuis la requête (car la bibliothèque libsqlite n'est pas compatible avec les données binaires).

S'il y a des chances que vos données ne soient pas compatibles, (par exemple, si elles contiennent le caractère NUL au milieu de la chaîne, et non pas seulement à la fin, ou si le premier caractère est un caractère 0x01) alors vous devrez appeler cette fonction pour protéger vos données.

PHP ne fait pas cette opération de codage/décodage automatiquement, pour des raisons de performances.

Note:

N'utilisez pas la fonction sqlite_escape_string() pour protéger les données dans vos UDF, car cela conduira à doubler la protection. Utilisez plutôt cette fonction à la place.

Liste de paramètres

data

La chaîne de caractères à encoder.

Valeurs de retour

La chaîne de caractères encodée.

Voir aussi

  • sqlite_udf_decode_binary() - Décode des données binaires, passées à une UDF SQLite
  • sqlite_escape_string() - Protège une chaîne de caractères pour utilisation avec SQLite
  • sqlite_create_function() - Enregistre une fonction utilisateur "classique" UDF pour SQLite
  • sqlite_create_aggregate() - Enregistre une UDF agrégeante pour les requêtes SQLite


Exécute une requête SQLite non bufferisée

  • « sqlite_udf_encode_binary
  • sqlite_valid »
  • PHP Manual
  • Fonctions SQLite
  • Exécute une requête SQLite non bufferisée

sqlite_unbuffered_query

SQLiteDatabase::unbufferedQuery

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_unbuffered_query -- SQLiteDatabase::unbufferedQuery — Exécute une requête SQLite non bufferisée

Description

resource sqlite_unbuffered_query ( resource $dbhandle , string $query [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] )
resource sqlite_unbuffered_query ( string $query , resource $dbhandle [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] )

Style orienté objet (méthode) :

public SQLiteUnbuffered SQLiteDatabase::unbufferedQuery ( string $query [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] )

sqlite_unbuffered_query() est identique à sqlite_query() hormis le fait que le résultat retourné est une séquence croissante, qui ne peut être lue que dans un seul sens.

Cette fonction est idéale pour générer des tables HTML, où vous n'avez besoin que d'une ligne en même temps, et que vous n'avez pas à faire d'accès aléatoire aux lignes.

Note:

Les fonctions telles que sqlite_seek() et sqlite_rewind() ne fonctionnent pas avec les résultats non bufferisés de cette fonction.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

query

La requête à être exécutée.

Les données contenues dans la requête doivent être échappées.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

error_msg

La variable spécifiée sera remplie si une erreur se produit. Ceci est important car les erreurs de syntaxes SQL ne peuvent être récupérées en utilisant la fonction sqlite_last_error().

Note: Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Retourne une ressource de résultat ou FALSE si une erreur survient.

sqlite_unbuffered_query() retourne un jeu de résultats séquentiel d'avancement seul qui ne peut être utilisé que pour lire chaque ligne, l'une après l'autre.

Historique

Version | Description
5.1.0 | Ajout du paramètre error_msg

Voir aussi

  • sqlite_query() - Exécute une requête SQLite et lit le résultat


Retourne si oui ou non il reste des lignes disponibles

  • « sqlite_unbuffered_query
  • SQLite3 »
  • PHP Manual
  • Fonctions SQLite
  • Retourne si oui ou non il reste des lignes disponibles

sqlite_valid

SQLiteResult::valid

SQLiteUnbuffered::valid

(PHP 5 < 5.4.0)

sqlite_valid -- SQLiteResult::valid -- SQLiteUnbuffered::valid — Retourne si oui ou non il reste des lignes disponibles

Description

bool sqlite_valid ( resource $result )

Style orienté objet (méthode) :

bool SQLiteResult::valid ( void )
bool SQLiteUnbuffered::valid ( void )

Recherche si d'autres lignes sont disponibles à partir de la ressource de résultat donnée.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note:

Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne TRUE s'il y a encore des lignes disponibles de la ressource result ou FALSE autrement.

Voir aussi

  • sqlite_num_rows() - Retourne le nombre de lignes d'un résultat SQLite
  • sqlite_changes() - Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite


SQLite3

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • SQLite3 — La classe SQLite3
    • SQLite3::busyTimeout — Définit le gestionnaire d'attente de la connexion
    • SQLite3::changes — Retourne le nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL
    • SQLite3::close — Ferme la connexion avec la base de données
    • SQLite3::__construct — Instantie un objet SQLite3 et ouvre la base de données SQLite 3
    • SQLite3::createAggregate — Enregistre une fonction PHP à utiliser comme fonction d'aggrégation SQLite
    • SQLite3::createCollation — Enregistre une fonction PHP pour l'utiliser comme fonction de classement SQL
    • SQLite3::createFunction — Enregistre une fonction PHP à utiliser comme function scalaire SQL
    • SQLite3::enableExceptions — Enable throwing exceptions
    • SQLite3::escapeString — Retourne une chaîne nettoyée
    • SQLite3::exec — Exécute une requête sur une base de données
    • SQLite3::lastErrorCode — Retourne le code erreur de la dernière requête SQL ayant échouée
    • SQLite3::lastErrorMsg — Retourne le message d'erreur, en anglais, de la dernière requête ayant échouée
    • SQLite3::lastInsertRowID — Retourne l'identifiant de la ligne corrspondant à la dernière requête de type INSERT
    • SQLite3::loadExtension — Tente de charger une extension de la bibliothèque SQLite
    • SQLite3::open — Ouvre une base de données SQLite
    • SQLite3::openBlob — Opens a stream resource to read a BLOB
    • SQLite3::prepare — Prépare une requête SQL pour exécution
    • SQLite3::query — Exécute une requête SQL
    • SQLite3::querySingle — Exécute une requête et retourne un seul résultat
    • SQLite3::version — Retourne la version de la bibliothèque SQLite3
  • SQLite3Stmt — La classe SQLite3Stmt
    • SQLite3Stmt::bindParam — Lie un paramètre à une variable de requête
    • SQLite3Stmt::bindValue — Lie la valeur d'un paramètre à une variable de requête
    • SQLite3Stmt::clear — Supprime tous les paramètres actuellement liés
    • SQLite3Stmt::close — Ferme une requête préparée
    • SQLite3Stmt::execute — Exécute une requête préparée
    • SQLite3Stmt::paramCount — Retourne le nombre de paramètres d'une requête préparée
    • SQLite3Stmt::readOnly() — Returns whether a statement is definitely read only
    • SQLite3Stmt::reset — Réinitialise une requête préparée
  • SQLite3Result — La classe SQLite3Result
    • SQLite3Result::columnName — Retourne le nom d'une colonne
    • SQLite3Result::columnType — Retourne le type d'une colonne
    • SQLite3Result::fetchArray — Récupère un jeu de résultats sous la forme d'un tableau associatif
    • SQLite3Result::finalize — Ferme un jeu de résultats
    • SQLite3Result::numColumns — Retourne le nombre de colonnes du jeu de résultats
    • SQLite3Result::reset — Repositionne le pointeur sur la première ligne du jeu de résultats


  • « SQLite3
  • Installation/Configuration »
  • PHP Manual
  • SQLite3
  • Introduction

Introduction

Support des bases de données SQLite version 3.


Installation

Le support de SQLite3 est activé par défaut depuisPHP 5.3.0. Il est possible de la désactiver en utilisant l'option --without-sqlite3 au moment de la compilation.

Les utilisateurs Windows doivent activer la bibliothèque php_sqlite3.dll pour utiliser cette extension. Cette DLL est inclue avec les distributions de PHP pour Windows à partir de la version 5.3.0.

Note:

Cette extension a été brièvement une extension PECL, mais cette version n'est recommandée que pour des expérimentations.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Sqlite3
Nom | Défaut | Modifiable | Changelog
sqlite3.extension_dir | NULL | PHP_INI_SYSTEM |

Voici un éclaircissement sur l'utilisation des directives de configuration.

sqlite3.extension_dir string

Chemin vers le dossier où se trouve les extensions chargeables pour SQLite.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SQLITE3_ASSOC (entier)
Spécifie que la méthode Sqlite3Result::fetchArray() doit retourner un tableau indexé par le nom de la colonne dans le jeu de résultats correspondant.
SQLITE3_NUM (entier)
Spécifie que la méthode Sqlite3Result::fetchArray() doit retourner un tableau indexé par le numéro de la colonne dans le jeu de résultats correspondant, en commençant à la colonne 0.
SQLITE3_BOTH (entier)
Spécifie que la méthode Sqlite3Result::fetchArray() doit retourner un tableau indexé par le nom et le numéro de la colonne dans le jeu de résultats correspondant, en commençant à la colonne 0.
SQLITE3_INTEGER (entier)
Représente la classe de stockage INTEGER de SQLite3.
SQLITE3_FLOAT (entier)
Représente la classe de stockage REAL (FLOAT) de SQLite3.
SQLITE3_TEXT (entier)
Représente la classe de stockage TEXT de SQLite3.
SQLITE3_BLOB (entier)
Représente la classe de stockage BLOB de SQLite3.
SQLITE3_NULL (entier)
Représente la classe de stockage NULL de SQLite3.
SQLITE3_OPEN_READONLY (entier)
Spécifie que la base de données SQLite3 doit être ouverte en lecture seule.
SQLITE3_OPEN_READWRITE (entier)
Spécifie que la base de données SQLite3 doit être ouverte en lecture et en écriture.
SQLITE3_OPEN_CREATE (entier)
Spécifie que la base de données SQLite3 doit être créée si elle n'existe pas déjà.


La classe SQLite3

(PHP 5 >= 5.3.0, PHP 7)

Introduction

Une classe d'interface avec les bases de données SQLite3.

Synopsis de la classe

SQLite3 {
/* Méthodes */
public bool busyTimeout ( int $msecs )
public int changes ( void )
public bool close ( void )
public __construct ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key = null ]] )
public bool createAggregate ( string $name , mixed $step_callback , mixed $final_callback [, int $argument_count = -1 ] )
public bool createCollation ( string $name , callable $callback )
public bool createFunction ( string $name , mixed $callback [, int $argument_count = -1 ] )
bool enableExceptions ([ bool $enableExceptions = false ] )
public static string escapeString ( string $value )
public bool exec ( string $query )
public int lastErrorCode ( void )
public string lastErrorMsg ( void )
public int lastInsertRowID ( void )
public bool loadExtension ( string $shared_library )
public void open ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key = null ]] )
public resource open ( string $table , string $column , int $rowid [, string $dbname = "main" ] )
public SQLite3Stmt prepare ( string $query )
public SQLite3Result query ( string $query )
public mixed querySingle ( string $query [, bool $entire_row = false ] )
public static array version ( void )
}

Sommaire

  • SQLite3::busyTimeout — Définit le gestionnaire d'attente de la connexion
  • SQLite3::changes — Retourne le nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL
  • SQLite3::close — Ferme la connexion avec la base de données
  • SQLite3::__construct — Instantie un objet SQLite3 et ouvre la base de données SQLite 3
  • SQLite3::createAggregate — Enregistre une fonction PHP à utiliser comme fonction d'aggrégation SQLite
  • SQLite3::createCollation — Enregistre une fonction PHP pour l'utiliser comme fonction de classement SQL
  • SQLite3::createFunction — Enregistre une fonction PHP à utiliser comme function scalaire SQL
  • SQLite3::enableExceptions — Enable throwing exceptions
  • SQLite3::escapeString — Retourne une chaîne nettoyée
  • SQLite3::exec — Exécute une requête sur une base de données
  • SQLite3::lastErrorCode — Retourne le code erreur de la dernière requête SQL ayant échouée
  • SQLite3::lastErrorMsg — Retourne le message d'erreur, en anglais, de la dernière requête ayant échouée
  • SQLite3::lastInsertRowID — Retourne l'identifiant de la ligne corrspondant à la dernière requête de type INSERT
  • SQLite3::loadExtension — Tente de charger une extension de la bibliothèque SQLite
  • SQLite3::open — Ouvre une base de données SQLite
  • SQLite3::openBlob — Opens a stream resource to read a BLOB
  • SQLite3::prepare — Prépare une requête SQL pour exécution
  • SQLite3::query — Exécute une requête SQL
  • SQLite3::querySingle — Exécute une requête et retourne un seul résultat
  • SQLite3::version — Retourne la version de la bibliothèque SQLite3


Définit le gestionnaire d'attente de la connexion

  • « SQLite3
  • SQLite3::changes »
  • PHP Manual
  • SQLite3
  • Définit le gestionnaire d'attente de la connexion

SQLite3::busyTimeout

(PHP 5 >= 5.3.3, PHP 7)

SQLite3::busyTimeout — Définit le gestionnaire d'attente de la connexion

Description

public bool SQLite3::busyTimeout ( int $msecs )

Définit le gestionnaire d'attente qui patientera tant que la base de données n'est pas verrouillée ou que le délai d'attente ne soit atteint.

Liste de paramètres

msecs

Les millisecondes à attendre. Le fait de définir cette valeur à une valeur inférieure ou égale à zéro désactivera un gestionnaire d'attente précédemment défini.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si une erreur survient.


Retourne le nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL

  • « SQLite3::busyTimeout
  • SQLite3::close »
  • PHP Manual
  • SQLite3
  • Retourne le nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL

SQLite3::changes

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::changes — Retourne le nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL

Description

public int SQLite3::changes ( void )

Retourne le nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier correspondant au nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL.

Exemples

Exemple #1 Exemple avec SQLite3::changes()

<?php
$db = new SQLite3('mysqlitedb.db');

$query = $db->exec('UPDATE counter SET views=0 WHERE page="test"');
if ($query) {
    echo 'Nombre de lignes modifiées : ', $db->changes();
}
?>


Ferme la connexion avec la base de données

  • « SQLite3::changes
  • SQLite3::__construct »
  • PHP Manual
  • SQLite3
  • Ferme la connexion avec la base de données

SQLite3::close

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::close — Ferme la connexion avec la base de données

Description

public bool SQLite3::close ( void )

Ferme la connexion avec la base de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::close()

<?php
$db = new SQLite3('mysqlitedb.db');
$db->close();
?>


Instantie un objet SQLite3 et ouvre la base de données SQLite 3

  • « SQLite3::close
  • SQLite3::createAggregate »
  • PHP Manual
  • SQLite3
  • Instantie un objet SQLite3 et ouvre la base de données SQLite 3

SQLite3::__construct

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::__construct — Instantie un objet SQLite3 et ouvre la base de données SQLite 3

Description

public SQLite3::__construct ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key = null ]] )

Instantie un objet SQLite3 et ouvre une connexion à la base de données SQLite 3. Si le crytage a été inclu durant la compilation, alors cette fonction tentera d'utiliser la clé correspondante.

Liste de paramètres

filename

Chemin vers la base de données SQLite, ou :memory: pour utiliser la base de données se trouvant en mémoire vive.

flags

Drapeaux optionnels utilisés pour déterminir la manière d'ouverture de la base de données SQLite. Par défaut, l'ouverture s'effectue en utilisant SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY : Ouvre la base de données en lecture seule.

  • SQLITE3_OPEN_READWRITE : Ouvre la base de données en lecture et en écriture.

  • SQLITE3_OPEN_CREATE : Crée la base de données si elle n'existe pas.

encryption_key

Un clé de cryptage optionnel, à utiliser lors du cryptage/décryptage de la base de données SQLite. Si le module SQLite n'est pas installé, ce paramètre n'aura aucun effet.

Valeurs de retour

Retourne un objet SQLite3 en cas de succès.

Erreurs / Exceptions

Lance une Exception en cas d'échec.

Exemples

Exemple #1 Exemple avec SQLite3::__construct()

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");

$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>


Enregistre une fonction PHP à utiliser comme fonction d'aggrégation SQLite

  • « SQLite3::__construct
  • SQLite3::createCollation »
  • PHP Manual
  • SQLite3
  • Enregistre une fonction PHP à utiliser comme fonction d'aggrégation SQLite

SQLite3::createAggregate

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::createAggregate — Enregistre une fonction PHP à utiliser comme fonction d'aggrégation SQLite

Description

public bool SQLite3::createAggregate ( string $name , mixed $step_callback , mixed $final_callback [, int $argument_count = -1 ] )

Enregistre une fonction PHP ou une fonction définie par l'utilisateur à utiliser comme fonction d'aggrégation SQL, qui sera utilisée dans les requêtes SQL.

Liste de paramètres

name

Nom de la fonction d'aggrégation SQL à créer ou à redéfinir.

step_callback

Le nom de la fonction PHP ou de la fonction utilisateur à appliquer comme callback sur tous les éléments de l'aggrégation.

final_callback

Le nom de la fonction PHP ou de la fonction utilisateur à appliquer comme callback à la fin des données de l'aggrégation.

argument_count

Le nombre d'arguments pris par la fonction d'aggrégation SQL. Si ce nombre est négatif, alors la fonction d'aggrégation SQL pourra prendre un nombre non défini d'arguments.

Valeurs de retour

Retourne TRUE si la création réussie, FALSE si une erreur survient.


Enregistre une fonction PHP pour l'utiliser comme fonction de classement SQL

  • « SQLite3::createAggregate
  • SQLite3::createFunction »
  • PHP Manual
  • SQLite3
  • Enregistre une fonction PHP pour l'utiliser comme fonction de classement SQL

SQLite3::createCollation

(PHP 5 >= 5.3.11, PHP 7)

SQLite3::createCollation — Enregistre une fonction PHP pour l'utiliser comme fonction de classement SQL

Description

public bool SQLite3::createCollation ( string $name , callable $callback )

Enregistre une fonction PHP ou une fonction définie par l'utilisateur pour l'utiliser comme fonction de classement dans une requête SQL.

Liste de paramètres

name

Nom de la fonction de classement SQL à créer ou à re-définir.

callback

Le nom d'une fonction PHP ou d'une fonction définie par l'utilisateur à appliquer comme fonction de rappel, définissant le comportement du classement. Elle doit accepter deux arguments et retournera la même chose que la fonction strcmp(), i.e. elle doit retourner -1, 1, ou 0 si la première chaîne sort avant, après, ou est équivalent à la seconde.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::createCollation()

Enregistre la fonction PHP strnatcmp() comme séquence de classement dans la base de données SQLite3.

<?php

$db = new SQLite3(":memory:");
$db->exec("CREATE TABLE test (col1 string)");
$db->exec("INSERT INTO test VALUES ('a1')");
$db->exec("INSERT INTO test VALUES ('a10')");
$db->exec("INSERT INTO test VALUES ('a2')");

$db->createCollation('NATURAL_CMP', 'strnatcmp');

$defaultSort = $db->query("SELECT col1 FROM test ORDER BY col1");
$naturalSort = $db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP");

echo "Par défaut :\n";
while ($row = $defaultSort->fetchArray()){
    echo $row['col1'], "\n";
}

echo "\nNaturel :\n";
while ($row = $naturalSort->fetchArray()){
    echo $row['col1'], "\n";
}

$db->close();

?>

L'exemple ci-dessus va afficher :

Par défaut :
a1
a10
a2

Naturel :
a1
a2
a10

Voir aussi

  • La documentation sur le classement SQLite : » http://sqlite.org/datatype3.html#collation


Enregistre une fonction PHP à utiliser comme function scalaire SQL

  • « SQLite3::createCollation
  • SQLite3::enableExceptions »
  • PHP Manual
  • SQLite3
  • Enregistre une fonction PHP à utiliser comme function scalaire SQL

SQLite3::createFunction

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::createFunction — Enregistre une fonction PHP à utiliser comme function scalaire SQL

Description

public bool SQLite3::createFunction ( string $name , mixed $callback [, int $argument_count = -1 ] )

Enregistre une fonction PHP ou une fonction utilisateur à utiliser comme fonction scalaire SQL, pour utilisation dans les requête SQL.

Liste de paramètres

name

Nom de la fonction SQL à créer ou à redéfinir.

callback

Le nom de la fonction PHP ou la fonction utilisateur à appliquer comme callback, définissant le comportement de la fonction SQL.

argument_count

Le nombre d'arguments que la fonction SQL prend. Si ce paramètre est négatif, la fonction SQL pourra prendre un nombre non défini d'arguments.

Valeurs de retour

Retourne TRUE si la fonction a été créée avec succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::createFunction()

<?php
function my_udf_md5($string) {
    return md5($string);
}

$db = new SQLite3('mysqlitedb.db');
$db->createFunction('my_udf_md5', 'my_udf_md5');

var_dump($db->querySingle('SELECT my_udf_md5("test")'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(32) "098f6bcd4621d373cade4e832627b4f6"


Enable throwing exceptions

  • « SQLite3::createFunction
  • SQLite3::escapeString »
  • PHP Manual
  • SQLite3
  • Enable throwing exceptions

SQLite3::enableExceptions

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::enableExceptions — Enable throwing exceptions

Description

bool SQLite3::enableExceptions ([ bool $enableExceptions = false ] )

Controls whether the SQLite3 instance will throw exceptions or warnings on error.

Liste de paramètres

enable

When TRUE, the SQLite3 instance, and SQLite3Stmt and SQLite3Result instances derived from it, will throw exceptions on error.

When FALSE, the SQLite3 instance, and SQLite3Stmt and SQLite3Result instances derived from it, will raise warnings on error.

For either mode, the error code and message, if any, will be available via SQLite3::lastErrorCode() and SQLite3::lastErrorMsg() respectively.

Valeurs de retour

Returns the old value; TRUE if exceptions were enabled, FALSE otherwise.

Exemples

Exemple #1 SQLite3::enableExceptions() example

<?php
$sqlite = new SQLite3(':memory:');
try {
    $sqlite->exec('create table foo');
    $sqlite->enableExceptions(true);
    $sqlite->exec('create table bar');
} catch (Exception $e) {
    echo 'Caught exception: ' . $e->getMessage();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: SQLite3::exec(): near "foo": syntax error in example.php on line 4
Caught exception: near "bar": syntax error


Retourne une chaîne nettoyée

  • « SQLite3::enableExceptions
  • SQLite3::exec »
  • PHP Manual
  • SQLite3
  • Retourne une chaîne nettoyée

SQLite3::escapeString

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::escapeString — Retourne une chaîne nettoyée

Description

public static string SQLite3::escapeString ( string $value )

Retourne une chaîne qui a été nettoyée afin de l'inclure sans risque dans les requêtes SQL.

Avertissement

Cette fonction n'est pas capable de gérer les chaînes binaires!

Pour correctement gérer les champs BLOB qui contiennent des caractères NUL, utilisez plutôt la fonction SQLite3Stmt::bindParam().

Liste de paramètres

value

La chaîne à nettoyer.

Valeurs de retour

Retourne une chaîne nettoyée, qui pourra être utilisée sans risque dans une requête SQL.

Notes

Avertissement

La fonction addslashes() ne doit PAS être utilisée pour protéger votre chaîne dans vos requêtes SQL ; vous pourriez observer d'étranges résultats lorsque vous récupérerez vos données.


Exécute une requête sur une base de données

  • « SQLite3::escapeString
  • SQLite3::lastErrorCode »
  • PHP Manual
  • SQLite3
  • Exécute une requête sur une base de données

SQLite3::exec

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::exec — Exécute une requête sur une base de données

Description

public bool SQLite3::exec ( string $query )

Exécute une requête sur une base de données.

Liste de paramètres

query

La requête SQL à exécuter (typiquement, une requête de type INSERT, UPDATE ou DELETE).

Valeurs de retour

Retourne TRUE si la requête a été exécutée avec succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::exec()

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE bar (bar STRING)');
?>


Retourne le code erreur de la dernière requête SQL ayant échouée

  • « SQLite3::exec
  • SQLite3::lastErrorMsg »
  • PHP Manual
  • SQLite3
  • Retourne le code erreur de la dernière requête SQL ayant échouée

SQLite3::lastErrorCode

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::lastErrorCode — Retourne le code erreur de la dernière requête SQL ayant échouée

Description

public int SQLite3::lastErrorCode ( void )

Retourne le code erreur de la dernière requête SQL ayant échouée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier représentant le code erreur de la dernière requête ayant échouée.


Retourne le message d'erreur, en anglais, de la dernière requête ayant échouée

  • « SQLite3::lastErrorCode
  • SQLite3::lastInsertRowID »
  • PHP Manual
  • SQLite3
  • Retourne le message d'erreur, en anglais, de la dernière requête ayant échouée

SQLite3::lastErrorMsg

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::lastErrorMsg — Retourne le message d'erreur, en anglais, de la dernière requête ayant échouée

Description

public string SQLite3::lastErrorMsg ( void )

Retourne le message d'erreur, en anglais, de la dernière requête ayant échouée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le message d'erreur, en anglais, de la dernière requête ayant échouée.


Retourne l'identifiant de la ligne corrspondant à la dernière requête de type INSERT

  • « SQLite3::lastErrorMsg
  • SQLite3::loadExtension »
  • PHP Manual
  • SQLite3
  • Retourne l'identifiant de la ligne corrspondant à la dernière requête de type INSERT

SQLite3::lastInsertRowID

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::lastInsertRowID — Retourne l'identifiant de la ligne corrspondant à la dernière requête de type INSERT

Description

public int SQLite3::lastInsertRowID ( void )

Retourne l'identifiant de la ligne corrspondant à la dernière requête de type INSERT effectuée sur la base de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'identifiant de la ligne corrspondant à la dernière requête de type INSERT effectuée sur la base de données.


Tente de charger une extension de la bibliothèque SQLite

  • « SQLite3::lastInsertRowID
  • SQLite3::open »
  • PHP Manual
  • SQLite3
  • Tente de charger une extension de la bibliothèque SQLite

SQLite3::loadExtension

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::loadExtension — Tente de charger une extension de la bibliothèque SQLite

Description

public bool SQLite3::loadExtension ( string $shared_library )

Tente de charger une extension de la bibliothèque SQLite.

Liste de paramètres

shared_library

Le nom de l'extension à charger. L'extension doit se trouver dans le dossier spécifié par l'option de configuration sqlite3.extension_dir.

Valeurs de retour

Retourne TRUE si l'extension a été chargée avec succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::loadExtension()

<?php
$db = new SQLite3('mysqlitedb.db');
$db->loadExtension('libagg.so');
?>


Ouvre une base de données SQLite

  • « SQLite3::loadExtension
  • SQLite3::openBlob »
  • PHP Manual
  • SQLite3
  • Ouvre une base de données SQLite

SQLite3::open

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::open — Ouvre une base de données SQLite

Description

public void SQLite3::open ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key = null ]] )

Ouvre une base de données SQLite 3. Si le cryptage a été inclu lors de la construction de la base de données, la clé correspondante sera utilisée.

Liste de paramètres

filename

Chemin vers la base de données SQLite, ou :memory: pour utiliser la base de données se trouvant en mémoire vive.

flags

Drapeaux optionnels à utiliser pour déterminer la manière d'ouverture de la base de données SQLite. Par défaut, ce sera SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY : Ouvre la base de données en lecture seule.

  • SQLITE3_OPEN_READWRITE : Ouvre la base de données en lecture et écriture.

  • SQLITE3_OPEN_CREATE : Crée la base de données si elle n'existe pas.

encryption_key

La clé optionnelle de cryptage utilisée lors du cryptage/décryptage de la base de données SQLite. Si le module SQLite de cryptage n'est pas installé, ce paramètre n'aurau aucun effet.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SQLite3::open()

<?php
/**
 * Exemple simple qui étend la classe SQLite3 et change les paramètres
 * __construct, puis, utilise la méthode de connexion pour initialiser la
 * base de données.
 */
class MyDB extends SQLite3
{
    function __construct()
    {
        $this->open('mysqlitedb.db');
    }
}

$db = new MyDB();

$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('Ceci est un test')");

$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>


Opens a stream resource to read a BLOB

  • « SQLite3::open
  • SQLite3::prepare »
  • PHP Manual
  • SQLite3
  • Opens a stream resource to read a BLOB

SQLite3::openBlob

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::openBlob — Opens a stream resource to read a BLOB

Description

public resource SQLite3::open ( string $table , string $column , int $rowid [, string $dbname = "main" ] )

Opens a stream resource to read a BLOB, which would be selected by:

SELECT column FROM dbname.table WHERE rowid = rowid

Liste de paramètres

table

The table name.

column

The column name.

rowid

The row ID.

dbname

The symbolic name of the DB

Valeurs de retour

Returns a stream resource, ou FALSE si une erreur survient.

Exemples

Exemple #1 SQLite3::openBlob() example

<?php
$conn = new SQLite3(':memory:');
$conn->exec('CREATE TABLE test (text text)');
$conn->exec("INSERT INTO test VALUES ('Lorem ipsum')");
$stream = $conn->openBlob('test', 'text', 1);
echo stream_get_contents($stream);
fclose($stream); // mandatory, otherwise the next line would fail
$conn->close();
?>

L'exemple ci-dessus va afficher :

Lorem ipsum


Prépare une requête SQL pour exécution

  • « SQLite3::openBlob
  • SQLite3::query »
  • PHP Manual
  • SQLite3
  • Prépare une requête SQL pour exécution

SQLite3::prepare

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::prepare — Prépare une requête SQL pour exécution

Description

public SQLite3Stmt SQLite3::prepare ( string $query )

Prépare une requête SQL pour exécution et retourne un objet SQLite3Stmt.

Liste de paramètres

query

La requête SQL à préparer.

Valeurs de retour

Retourne un objet SQLite3Stmt en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::prepare()

<?php
unlink('mysqlitedb.db');
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'Ceci est un test')");

$stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);

$result = $stmt->execute();
var_dump($result->fetchArray());
?>


Exécute une requête SQL

  • « SQLite3::prepare
  • SQLite3::querySingle »
  • PHP Manual
  • SQLite3
  • Exécute une requête SQL

SQLite3::query

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::query — Exécute une requête SQL

Description

public SQLite3Result SQLite3::query ( string $query )

Exécute une requête SQL, et retourne un objet SQLite3Result si la requête retourne des résultats.

Liste de paramètres

query

La requête SQL à exécuter.

Valeurs de retour

Retourne un objet SQLite3Result si la requête retourne des résultats. Sinon, la fonction retourne TRUE si la requête est exécutée avec succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::query()

<?php
$db = new SQLite3('mysqlitedb.db');

$results = $db->query('SELECT bar FROM foo');
while ($row = $results->fetchArray()) {
    var_dump($row);
}
?>


Exécute une requête et retourne un seul résultat

  • « SQLite3::query
  • SQLite3::version »
  • PHP Manual
  • SQLite3
  • Exécute une requête et retourne un seul résultat

SQLite3::querySingle

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::querySingle — Exécute une requête et retourne un seul résultat

Description

public mixed SQLite3::querySingle ( string $query [, bool $entire_row = false ] )

Exécute une requête et retourne un seul résultat.

Liste de paramètres

query

La requête SQL à exécuter.

entire_row

Par défaut, cette fonction retourne la valeur de la première colonne retournée par la requête. Si ce paramètre vaut TRUE, alors la fonction retournera un tableau contenant toute la première ligne.

Valeurs de retour

Retourne la valeur de la première colonne du résultat, ou un tableau contenant toute la première ligne (si le paramètre entire_row vaut TRUE).

Si la requête est valide mais ne retourne aucun résultat, NULL sera retourné si entire_row est FALSE, sinon un tableau vide est retourné.

Les requêtes invalides retourneront FALSE.

Exemples

Exemple #1 Exemple avec SQLite3::querySingle()

<?php
$db = new SQLite3('mysqlitedb.db');

var_dump($db->querySingle('SELECT username FROM user WHERE userid=1'));
print_r($db->querySingle('SELECT username, email FROM user WHERE userid=1', true));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "Scott"
Array
(
    [username] => Scott
    [email] => scott@example.com
)


Retourne la version de la bibliothèque SQLite3

  • « SQLite3::querySingle
  • SQLite3Stmt »
  • PHP Manual
  • SQLite3
  • Retourne la version de la bibliothèque SQLite3

SQLite3::version

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::version — Retourne la version de la bibliothèque SQLite3

Description

public static array SQLite3::version ( void )

Retourne la version de la bibliothèque SQLite3.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau associatif contenant les clés "versionString" et "versionNumber".

Exemples

Exemple #1 Exemple avec SQLite3::version()

<?php
print_r(SQLite3::version());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [versionString] => 3.5.9
    [versionNumber] => 3005009
)


La classe SQLite3Stmt

(PHP 5 >= 5.3.0, PHP 7)

Introduction

La classe qui représente les commandes préparées pour une base de données SQLite3.

Synopsis de la classe

SQLite3Stmt {
/* Méthodes */
public bool bindParam ( mixed $sql_param , mixed &$param [, int $type ] )
public bool bindValue ( mixed $sql_param , mixed $value [, int $type ] )
public bool clear ( void )
public bool close ( void )
public SQLite3Result execute ( void )
public int paramCount ( void )
public bool readOnly ( void )
public bool reset ( void )
}

Sommaire

  • SQLite3Stmt::bindParam — Lie un paramètre à une variable de requête
  • SQLite3Stmt::bindValue — Lie la valeur d'un paramètre à une variable de requête
  • SQLite3Stmt::clear — Supprime tous les paramètres actuellement liés
  • SQLite3Stmt::close — Ferme une requête préparée
  • SQLite3Stmt::execute — Exécute une requête préparée
  • SQLite3Stmt::paramCount — Retourne le nombre de paramètres d'une requête préparée
  • SQLite3Stmt::readOnly() — Returns whether a statement is definitely read only
  • SQLite3Stmt::reset — Réinitialise une requête préparée


Lie un paramètre à une variable de requête

  • « SQLite3Stmt
  • SQLite3Stmt::bindValue »
  • PHP Manual
  • SQLite3Stmt
  • Lie un paramètre à une variable de requête

SQLite3Stmt::bindParam

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::bindParam — Lie un paramètre à une variable de requête

Description

public bool SQLite3Stmt::bindParam ( mixed $sql_param , mixed &$param [, int $type ] )

Lie un paramètre à une variable de requête.

Liste de paramètres

sql_param

Soit une chaîne de caractères, soit un entier identifiant la variable de requête sur laquelle le paramètre doit être lié.

param

Le paramètre à lier à la variable de requête.

type

Le type de données du paramètre à lier.

  • SQLITE3_INTEGER : La valeur est un entier signé, stocké sur 1, 2, 3, 4, 6, ou 8 octets, suivant la grandeur de la valeur.

  • SQLITE3_FLOAT : La valeur est un nombre à virgule flottante, stocké sur 8 octets.

  • SQLITE3_TEXT : La valeur est un texte, stocké en utilisant l'encodage de la base de données (UTF-8, UTF-16BE ou UTF-16-LE).

  • SQLITE3_BLOB : La valeur est un BLOB, stocké exactement de la façon dont il a été fourni.

  • SQLITE3_NULL : La valeur est la valeur NULL.

Valeurs de retour

Retourne TRUE si le paramètre est lié à la variable de requête, FALSE si une erreur survient.


Lie la valeur d'un paramètre à une variable de requête

  • « SQLite3Stmt::bindParam
  • SQLite3Stmt::clear »
  • PHP Manual
  • SQLite3Stmt
  • Lie la valeur d'un paramètre à une variable de requête

SQLite3Stmt::bindValue

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::bindValue — Lie la valeur d'un paramètre à une variable de requête

Description

public bool SQLite3Stmt::bindValue ( mixed $sql_param , mixed $value [, int $type ] )

Lie la valeur d'un paramètre à une variable de requête.

Liste de paramètres

sql_param

Soit une chaîne de caractères, soit un entier identifiant la variable de requête sur laquelle la valeur doit être liée.

value

La valeur à lier à la variable de requête.

type

Le type de données de la valeur à lier.

  • SQLITE3_INTEGER : La valeur est un entier signé, stocké sur 1, 2, 3, 4, 6, ou 8 octets, suivant la grandeur de la valeur.

  • SQLITE3_FLOAT : La valeur est un nombre à virgule flottante, stocké sur 8 octets.

  • SQLITE3_TEXT : La valeur est un texte, stocké en utilisant l'encodage de la base de données (UTF-8, UTF-16BE ou UTF-16-LE).

  • SQLITE3_BLOB : La valeur est un BLOB, stocké exactement de la façon dont il a été fourni.

  • SQLITE3_NULL : La valeur est la valeur NULL.

Valeurs de retour

Retourne TRUE si la valeur a été liée à la variable de requête, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3Stmt::bindValue()

<?php
unlink('mysqlitedb.db');
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'This is a test')");

$stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);

$result = $stmt->execute();
var_dump($result->fetchArray());
?>


Supprime tous les paramètres actuellement liés

  • « SQLite3Stmt::bindValue
  • SQLite3Stmt::close »
  • PHP Manual
  • SQLite3Stmt
  • Supprime tous les paramètres actuellement liés

SQLite3Stmt::clear

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::clear — Supprime tous les paramètres actuellement liés

Description

public bool SQLite3Stmt::clear ( void )

Supprime tous les paramètres actuellement liés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si tous les paramètres actuellement liés ont été supprimés, FALSE si une erreur survient.


Ferme une requête préparée

  • « SQLite3Stmt::clear
  • SQLite3Stmt::execute »
  • PHP Manual
  • SQLite3Stmt
  • Ferme une requête préparée

SQLite3Stmt::close

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::close — Ferme une requête préparée

Description

public bool SQLite3Stmt::close ( void )

Ferme une requête préparée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE


Exécute une requête préparée

  • « SQLite3Stmt::close
  • SQLite3Stmt::paramCount »
  • PHP Manual
  • SQLite3Stmt
  • Exécute une requête préparée

SQLite3Stmt::execute

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::execute — Exécute une requête préparée

Description

public SQLite3Result SQLite3Stmt::execute ( void )

Exécute une requête préparée et retourne un objet représentant le jeu de résultats.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet SQLite3Result si la requête préparée a été exécutée avec succès, ou FALSE si une erreur survient.


Retourne le nombre de paramètres d'une requête préparée

  • « SQLite3Stmt::execute
  • SQLite3Stmt::readOnly() »
  • PHP Manual
  • SQLite3Stmt
  • Retourne le nombre de paramètres d'une requête préparée

SQLite3Stmt::paramCount

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::paramCount — Retourne le nombre de paramètres d'une requête préparée

Description

public int SQLite3Stmt::paramCount ( void )

Retourne le nombre de paramètres d'une requête préparée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de paramètres d'une requête préparée.


Returns whether a statement is definitely read only

  • « SQLite3Stmt::paramCount
  • SQLite3Stmt::reset »
  • PHP Manual
  • SQLite3Stmt
  • Returns whether a statement is definitely read only

SQLite3Stmt::readOnly()

(PHP 5 >= 5.3.6, PHP 7)

SQLite3Stmt::readOnly() — Returns whether a statement is definitely read only

Description

public bool SQLite3Stmt::readOnly ( void )

Returns whether a statement is definitely read only. A statement is considered read only, if it makes no direct changes to the content of the database file. Note that user defined SQL functions might change the database indirectly as a side effect.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if a statement is definitely read only, FALSE otherwise.


Réinitialise une requête préparée

  • « SQLite3Stmt::readOnly()
  • SQLite3Result »
  • PHP Manual
  • SQLite3Stmt
  • Réinitialise une requête préparée

SQLite3Stmt::reset

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::reset — Réinitialise une requête préparée

Description

public bool SQLite3Stmt::reset ( void )

Réinitialise une requête préparée, de tel sorte à retrouver son état initial, avant exécution. Tous les marqueurs resteront intacts après cette opération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la requête préaprée a été correctement réinitialisée, ou FALSE on si une erreur survient.


La classe SQLite3Result

(PHP 5 >= 5.3.0, PHP 7)

Introduction

Une classe qui représente les résultats d'une base de données SQLite 3.

Synopsis de la classe

SQLite3Result {
/* Méthodes */
public string columnName ( int $column_number )
public int columnType ( int $column_number )
public array fetchArray ([ int $mode = SQLITE3_BOTH ] )
public bool finalize ( void )
public int numColumns ( void )
public bool reset ( void )
}

Sommaire

  • SQLite3Result::columnName — Retourne le nom d'une colonne
  • SQLite3Result::columnType — Retourne le type d'une colonne
  • SQLite3Result::fetchArray — Récupère un jeu de résultats sous la forme d'un tableau associatif
  • SQLite3Result::finalize — Ferme un jeu de résultats
  • SQLite3Result::numColumns — Retourne le nombre de colonnes du jeu de résultats
  • SQLite3Result::reset — Repositionne le pointeur sur la première ligne du jeu de résultats


Retourne le nom d'une colonne

  • « SQLite3Result
  • SQLite3Result::columnType »
  • PHP Manual
  • SQLite3Result
  • Retourne le nom d'une colonne

SQLite3Result::columnName

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::columnName — Retourne le nom d'une colonne

Description

public string SQLite3Result::columnName ( int $column_number )

Retourne le nom de la colonne identifiée par le paramètre column_number.

Liste de paramètres

column_number

Le numéro de la colonne, en commençant par 0.

Valeurs de retour

Retourne le nom de la colonne identifiée par le paramètre column_number.


Retourne le type d'une colonne

  • « SQLite3Result::columnName
  • SQLite3Result::fetchArray »
  • PHP Manual
  • SQLite3Result
  • Retourne le type d'une colonne

SQLite3Result::columnType

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::columnType — Retourne le type d'une colonne

Description

public int SQLite3Result::columnType ( int $column_number )

Retourne le type de la colonne identifiée par le paramètre column_number.

Liste de paramètres

column_number

Le numéro de la colonne, en commançant par 0.

Valeurs de retour

Retourne le type de données de la colonne identifiée par column_number (cela peut être une des constantes suivantes : SQLITE3_INTEGER, SQLITE3_FLOAT, SQLITE3_TEXT, SQLITE3_BLOB, ou SQLITE3_NULL).


Récupère un jeu de résultats sous la forme d'un tableau associatif

  • « SQLite3Result::columnType
  • SQLite3Result::finalize »
  • PHP Manual
  • SQLite3Result
  • Récupère un jeu de résultats sous la forme d'un tableau associatif

SQLite3Result::fetchArray

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::fetchArray — Récupère un jeu de résultats sous la forme d'un tableau associatif

Description

public array SQLite3Result::fetchArray ([ int $mode = SQLITE3_BOTH ] )

Récupère un jeu de résultats sous la forme d'un tableau associatif ou indexé numériquement, ou les deux. Par défaut, ce sera les deux.

Liste de paramètres

mode

Contrôle la façon dont la prochaine ligne doit être retournée à la fonction appelante. Cette valeur peut être SQLITE3_ASSOC, SQLITE3_NUM, ou SQLITE3_BOTH.

  • SQLITE3_ASSOC : Retourne un tableau indexé par le nom de la colonne, tel que retourné dans le jeu de résultats correspondant.

  • SQLITE3_NUM : Retourne un tableau indexé par le numéro de la colonne, tel que retourné dans le jeu de résultats, en commençant par la colonne 0.

  • SQLITE3_BOTH : Retourne un tableau indexé par le nom et le numéro de la colonne, tel que retourné par le jeu de résultats, en commençant par la colonne 0.

Valeurs de retour

Retourne une ligne du jeu de résultats, sous la forme d'un tableau associatif, ou sous la forme d'un tableau indexé, ou les deux. Retourne FALSE s'il n'y a plus de lignes.


Ferme un jeu de résultats

  • « SQLite3Result::fetchArray
  • SQLite3Result::numColumns »
  • PHP Manual
  • SQLite3Result
  • Ferme un jeu de résultats

SQLite3Result::finalize

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::finalize — Ferme un jeu de résultats

Description

public bool SQLite3Result::finalize ( void )

Ferme un jeu de résultats.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE.


Retourne le nombre de colonnes du jeu de résultats

  • « SQLite3Result::finalize
  • SQLite3Result::reset »
  • PHP Manual
  • SQLite3Result
  • Retourne le nombre de colonnes du jeu de résultats

SQLite3Result::numColumns

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::numColumns — Retourne le nombre de colonnes du jeu de résultats

Description

public int SQLite3Result::numColumns ( void )

Retourne le nombre de colonnes du jeu de résultats.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de colonnes du jeu de résultats.


Repositionne le pointeur sur la première ligne du jeu de résultats

  • « SQLite3Result::numColumns
  • SQLSRV »
  • PHP Manual
  • SQLite3Result
  • Repositionne le pointeur sur la première ligne du jeu de résultats

SQLite3Result::reset

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::reset — Repositionne le pointeur sur la première ligne du jeu de résultats

Description

public bool SQLite3Result::reset ( void )

Repositionne le pointeur sur la première ligne du jeu de résultats.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le jeu de résultats a été réinitialisé avec succès, FALSE si une erreur survient.


Driver Microsoft SQL Server pour PHP

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions SQLSRV
    • sqlsrv_begin_transaction — Commence une transaction
    • sqlsrv_cancel — Annule une requête
    • sqlsrv_client_info — Retourne les informations sur le client ainsi que sur la connexion spécifiée
    • sqlsrv_close — Clôture une connexion établie et libère les ressources associées
    • sqlsrv_commit — Valide une transaction commencée avec la fonction sqlsrv_begin_transaction
    • sqlsrv_configure — Modifie la configuration du gestionnaire d'erreurs et d'historisations du driver
    • sqlsrv_connect — Ouvre une connexion sur une base de données Microsoft SQL Server
    • sqlsrv_errors — Retourne une erreur ainsi que certaines informations sur la dernière opération SQLSRV effectuée
    • sqlsrv_execute — Exécute une requête préparée avec la fonction sqlsrv_prepare
    • sqlsrv_fetch_array — Retourne une ligne sous la forme d'un tableau
    • sqlsrv_fetch_object — Récupère la prochaine ligne de données du jeu de résultats sous la forme d'un objet
    • sqlsrv_fetch — Rend la prochaine ligne d'un jeu de résultats disponible pour lecture
    • sqlsrv_field_metadata — Récupère les données méta pour les champs d'une requête préparée par la fonction sqlsrv_prepare ou la fonction sqlsrv_query
    • sqlsrv_free_stmt — Libère toutes les ressources de la requête spécifiée
    • sqlsrv_get_config — Retourne la valeur de la configuration spécifiée
    • sqlsrv_get_field — Récupère les données du champ depuis la ligne actuellement sélectionnée
    • sqlsrv_has_rows — Indique si la requête spécifiée contient des lignes
    • sqlsrv_next_result — Rend actif le prochain résultat de la requête spécifiée
    • sqlsrv_num_fields — Récupère le nombre de champs (colonnes) dans une requête
    • sqlsrv_num_rows — Récupère le nombre de lignes d'un jeu de résultats
    • sqlsrv_prepare — Prépare une requête pour exécution
    • sqlsrv_query — Prépare et exécute une requête
    • sqlsrv_rollback — Annule une transaction qui a été commencée grâce à la fonction sqlsrv_begin_transaction
    • sqlsrv_rows_affected — Retourne le nombre de lignes modifiées par la dernière requête de type INSERT, UPDATE, ou DELETE
    • sqlsrv_send_stream_data — Envoie des données depuis le flux vers le serveur
    • sqlsrv_server_info — Retourne des informations sur le serveur


Introduction

L'extension SQLSRV vous permet d'accéder à un serveur de base de données Microsoft SQL et SQL Azure lors de l'exécution de PHP sous Windows. La version 3.0 du pilote supporte SQL Server, en commançant par SQL Server 2005, et incluant SQL Server 2012 et SQL Server 2012 LocalDB (pour plus d'informations sur LocalDB, voir la documentation sur » le pilote PHP pour le support de SQL Server pour LocalDB et » SQL Server 2012 Express LocalDB.)

L'extension SQLSRV est supportée par Microsoft et est disponible au téléchargement ici : » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx. SQL Server 2012 LocalDB peut être téléchargé ici : » http://go.microsoft.com/fwlink/?LinkID=237665.


Pré-requis

L'extension SQLSRV peut être utilisée sur les systèmes d'exploitation suivants :

  • Windows Vista Service Pack 2 ou supérieur
  • Windows Server 2008 Service Pack 2 ou supérieur
  • Windows Server 2008 R2
  • Windows 7

L'extension SQLSRV requière que le client natif Microsoft SQL Server 2012 soit installé sur la même machine que celle qui exécute PHP. Si le client natif Microsoft SQL Server 2012 n'est pas installé, cliquez sur le lien approprié ci-dessous pour le télécharger :

  • » Téléchargement du paquet x86
  • » Téléchargement du paquet x64

Le téléchargement SQLSRV est livré avec 8 pilotes, dont 4 dédiés au support de PDO. Si vous exécutez PHP en version non thread-safe (PHP 5.3), utilisez le fichier php_pdo_sqlsrv_53_nts.dll (vous devez utiliser une version non-thread-safe si vous utilisez IIS comme serveur web). Si vous exécutez PHP en version thread-safe, utilisez le fichier php_pdo_sqlsrv_53_ts.dll. De même pour PHP 5.4, utilisez le fichier php_pdo_sqlsrv_54_nts.dll ou php_pdo_sqlsrv_54_ts.dll suivant si votre installation de PHP est non-thread-safe ou thread-safe.

La version la plus récente du pilote est disponible au téléchargement ici : » téléchargement de SQLSRV 3.0. Si vous avez besoin d'un support de PHP 5.2 et/ou de PHP compilé avec VC6, utilisez la version 2.0 du pilote : » téléchargement de SQLSRV 2.0.

Pour plus d'informations sur les pré-requis SQLSRV, reportez-vous au chapitre sur les » pré-requis du système SQLSRV.


Installation

L'extension SQLSRV est activée en ajoutant la bibliothèque DLL appropriée dans votre dossier d'extensions PHP et en ajoutant l'entrée correspondante dans votre fichier php.ini. Le téléchargement de SQLSRV est fourni avec 8 pilotes, dont 4 dédiés au support de PDO. Si vous exécutez PHP en version non thread-safe (PHP 5.3), utilisez le fichier php_pdo_sqlsrv_53_nts.dll (vous devez utiliser une version non-thread-safe si vous utilisez IIS comme serveur web). Si vous exécutez PHP en version thread-safe, utilisez le fichier php_pdo_sqlsrv_53_ts.dll. De même pour PHP 5.4, utilisez le fichier php_pdo_sqlsrv_54_nts.dll ou php_pdo_sqlsrv_54_ts.dll suivant si votre installation de PHP est non-thread-safe ou thread-safe.

La version la plus récente du pilote est disponible au téléchargement ici : » téléchargement de SQLSRV 3.0. Si vous avez besoin d'un support de PHP 5.2 et/ou de PHP compilé avec VC6, utilisez la version 2.0 du pilote : » téléchargement de SQLSRV 2.0.

Pour plus d'informations sur les pré-requis SQLSRV, reportez-vous au chapitre sur les » pré-requis du système SQLSRV.

L'extension SQLSRV n'est compatible que lorsque PHP fonctionne sous Windows.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

La table suivante liste les options de configuration disponibles pour l'extension. Pour plus d'informations sur ces options, reportez-vous au chapitre sur la » gestion des erreurs et alertes SQLSRV.

Options de configuration SQLSRV
Nom | Défaut | Modifiable | Changelog
sqlsrv.WarningsReturnAsErrors | 1 (TRUE) | PHP_INI_ALL | Disponible depuis SQLSRV 1.0
sqlsrv.LogSubsystems | 0 | PHP_INI_ALL | Disponible depuis SQLSRV 1.0
sqlsrv.LogSeverity | 1 | PHP_INI_ALL | Disponible depuis SQLSRV 1.0


Types de ressources

Ressource de connexion

Une ressource de connexion retournée par la fonction sqlsrv_connect().

Ressource de requête

Une ressource de requête retournée par la fonction sqlsrv_query() ou la fonction sqlsrv_prepare().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SQLSRV_FETCH_ASSOC (entier)
Force sqlsrv_fetch_array() à retourner un tableau associatif quand il est passé en paramètre.
SQLSRV_FETCH_NUMERIC (entier)
Force sqlsrv_fetch_array() à retourner un tableau indexé numériquement quand il est passé en paramètre.
SQLSRV_FETCH_BOTH (entier)
Force sqlsrv_fetch_array() à retourner un tableau associatif et un tableau indexé numériquement quand il est passé en paramètre (comportement par défaut).
SQLSRV_ERR_ALL (entier)
Force sqlsrv_errors() à retourner les erreurs et avertissements quand il est passé en paramètre (comportement par défaut).
SQLSRV_ERR_ERRORS (entier)
Force sqlsrv_errors() à retourner seulement les erreurs (pas les avertissements) quand il est passé en paramètre.
SQLSRV_ERR_WARNINGS (entier)
Force sqlsrv_errors() à retourner seulement les avertissements (pas les erreurs) quand il est passé en paramètre.
SQLSRV_LOG_SYSTEM_ALL (entier)
Active les logs de tous les sous-systèmes quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SYSTEM_CONN (entier)
Active les logs de toute l'activité des connexions quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SYSTEM_INIT (entier)
Active les logs de toute l'activité des initialisations quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SYSTEM_OFF (entier)
Désactive les logs de tous les sous-systèmes quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SYSTEM_STMT (entier)
Active les logs des requêtes quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SYSTEM_UTIL (entier)
Active les logs des erreurs de fonction quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SEVERITY_ALL (entier)
Active les logs des erreurs, avertissements et notes quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SEVERITY_ERROR (entier)
Spécifie que les erreurs seront enregistrées quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SEVERITY_NOTICE (entier)
Spécifie que les notes seront enregistrées quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SEVERITY_WARNING (entier)
Spécifie que les avertissements seront enregistrées quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_NULLABLE_YES (entier)
Indique qu'une colonne peut être nulle.
SQLSRV_NULLABLE_NO (entier)
Indique qu'une colonne ne peut pas être nulle.
SQLSRV_NULLABLE_UNKNOWN (entier)
Indique s'il est connu qu'une colonne est nulle.
SQLSRV_PARAM_IN (entier)
Indique un paramètre d'entrée quand il est passé à la fonction sqlsrv_query() ou à la fonction sqlsrv_prepare().
SQLSRV_PARAM_INOUT (entier)
Indique un paramètre d'entrée ou de sortie quand il est passé à la fonction sqlsrv_query() ou à la fonction sqlsrv_prepare().
SQLSRV_PARAM_OUT (entier)
Indique un paramètre de sortie quand il est passé à la fonction sqlsrv_query() ou à la fonction sqlsrv_prepare().
SQLSRV_PHPTYPE_INT (entier)
Spécifie une donnée de type entier PHP. Pour plus d'informations, voir » Comment spécifier les types PHP.
SQLSRV_PHPTYPE_DATETIME (entier)
Spécifie une donnée de type datetime (date et heure) PHP. Pour plus d'informations, voir » Comment spécifier les types PHP.
SQLSRV_PHPTYPE_FLOAT (entier)
Spécifie une donnée de type nombre à virgule flottante PHP. Pour plus d'informations, voir » Comment spécifier les types PHP.
SQLSRV_PHPTYPE_STREAM (entier)
Spécifie une donnée de type flux de PHP. Cette constante fonctionne comme une fonction et accepte une constante encodée. Voir les constantes SQLSRV_ENC_*. Pour plus d'informations, repotrez-vous à » Comment spécifier les types PHP.
SQLSRV_PHPTYPE_STRING (entier)
Spécifie une donnée de type chaîne de caractère PHP. Cette constante fonctionne comme une fonction et accepte une constante encodée. Voir les constantes SQLSRV_ENC_*. Pour plus d'informations, reportez-vous à » Comment spécifier les types PHP.
SQLSRV_ENC_BINARY (entier)
Spécifie que la donnée est retournée sous la forme d'un flux brute d'octets depuis le serveur sans y effectuer un encodage ou une transformation. Pour plus d'informations, reportez-vous à » Comment spécifier les types PHP.
SQLSRV_ENC_CHAR (entier)
La donnée est retournée sous la forme d'un caractères sur 8 octets, tel que spécifié dans la page des codes Windows locaux, défini sur le système. Tout caractère multi-octets ou caractères qui ne correspondent pas à cette page de code seront substitués avec une marque d'interrogation sur un octet (?). C'est l'encodage par défaut. Pour plus d'information, reportez-vous à see » Comment spécifier les types PHP.
UTF-8 (entier)
Spécifie que la donnée est retournée avec un encodage UTF-8. Pour plus d'informations, reportez-vous à » Comment spécifier les types PHP.
SQLSRV_SQLTYPE_BIGINT (entier)
Décrit le type de données bigint SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_BINARY (entier)
Décrit le type de données binaire SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_BIT (entier)
Décrit le type de données bit SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_CHAR (entier)
Décrit le type de données caractère SQL Server. Cette constante fonctionne comme une fonction et accepte un paramètre indiquant le nombre de caractères. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_DATE (entier)
Décrit le type de données date SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_DATETIME (entier)
Décrit le type de données datetime SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_DATETIME2 (entier)
Décrit le type de données datetime2 SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_DATETIMEOFFSET (entier)
Décrit le type de données datetimeoffset SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_DECIMAL (entier)
Décrit le type de données décimal. Cette constante fonctionne comme une fonction et accepte 2 paramètres indiquant (dans l'ordre) la précision et l'échelle. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_FLOAT (entier)
Décrit le type de données nombre à virgule flottante SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_IMAGE (entier)
Décrit le type de données image SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_INT (entier)
Décrit le type de données entier SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_MONEY (entier)
Décrit le type de données monnaie SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_NCHAR (entier)
Décrit le type de données nchar SQL Server. Cette constante fonctionne comme une fonction et accepte un seul paramètre indiquant le nombre de caractères. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_NUMERIC (entier)
Décrit le type de données numérique SQL Server. Cette constante fonctionne comme une fonction et accepte 2 paramètres (dans l'ordre), la précision et l'échelle. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_NVARCHAR (entier)
Décrit le type de données nvarchar SQL Server. Cette constante fonctionne comme une fonction et accepte un seul paramètre indiquant le nombre de caractères. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_NVARCHAR('max') (entier)
Décrit le type de données nvarchar(MAX) SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_NTEXT (entier)
Décrit le type de données ntext SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_REAL (entier)
Décrit le type de données réelle SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_SMALLDATETIME (entier)
Décrit le type de données smalldatetime SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_SMALLINT (entier)
Décrit le type de données smallint SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_SMALLMONEY (entier)
Décrit le type de données smallmoney SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_TEXT (entier)
Décrit le type de données texte SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_TIME (entier)
Décrit le type de données time SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_TIMESTAMP (entier)
Décrit le type de données timestamp SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_TINYINT (entier)
Décrit le type de données tinyint SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_UNIQUEIDENTIFIER (entier)
Décrit le type de données uniqueidentifier SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_UDT (entier)
Décrit le type de données UDT SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_VARBINARY (entier)
Décrit le type de données varbinary SQL Server. Cette constante fonctionne comme une fonction et accepte un seul paramètre indiquant le nombre d'octets. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_VARBINARY('max') (entier)
Décrit le type de données varbinary(MAX) SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_VARCHAR (entier)
Décrit le type de données varchar SQL Server. Cette constante fonctionne comme une fonction et accepte un seul paramètre indiquant le nombre de caractères. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_VARCHAR('max') (entier)
Décrit le type de données varchar(MAX) SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_SQLTYPE_XML (entier)
Décrit le type de données XML SQL Server. Pour plus d'informations, reportez-vous à » Comment spécifier les types SQL.
SQLSRV_TXN_READ_UNCOMMITTED (entier)
Indique un niveau d'isolation de la transaction à READ UNCOMMITTED. Cette valeur est utilisée pour définir le niveau de l'isolation de la transaction dans le tableau $connectionOptions passé à la fonction sqlsrv_connect().
SQLSRV_TXN_READ_COMMITTED (entier)
Indique un niveau d'isolation de la transaction à READ COMMITTED. Cette valeur est utilisée pour définir le niveau de l'isolation de la transaction dans le tableau $connectionOptions passé à la fonction sqlsrv_connect().
SQLSRV_TXN_REPEATABLE_READ (entier)
Indique un niveau d'isolation de la transaction à REPEATABLE READ. Cette valeur est utilisée pour définir le niveau de l'isolation de la transaction dans le tableau $connectionOptions passé à la fonction sqlsrv_connect().
SQLSRV_TXN_SNAPSHOT (entier)
Indique un niveau d'isolation de la transaction à SNAPSHOT. Cette valeur est utilisée pour définir le niveau de l'isolation de la transaction dans le tableau $connectionOptions passé à la fonction sqlsrv_connect().
SQLSRV_TXN_READ_SERIALIZABLE (entier)
Indique un niveau d'isolation de la transaction à SERIALIZABLE. Cette valeur est utilisée pour définir le niveau de l'isolation de la transaction dans le tableau $connectionOptions passé à la fonction sqlsrv_connect().
SQLSRV_CURSOR_FORWARD (entier)
Indique un curseur de type "suivant uniquement". Pour plus d'informations, reportez-vous à la section sur » la spécification d'un type de curseur et la sélection de lignes.
SQLSRV_CURSOR_STATIC (entier)
Indique un curseur de type "statique". Pour plus d'informations, reportez-vous à la section sur » la spécification d'un type de curseur et la sélection de lignes.
SQLSRV_CURSOR_DYNAMIC (entier)
Indique un curseur de type "dynamique". Pour plus d'informations, reportez-vous à la section sur » la spécification d'un type de curseur et la sélection de lignes.
SQLSRV_CURSOR_KEYSET (entier)
Indique un curseur de type "keyset". Pour plus d'informations, reportez-vous à la section sur » la spécification d'un type de curseur et la sélection de lignes.
SQLSRV_CURSOR_BUFFERED (entier)
Crée une requête de curseur côté client. Cela vous permet d'accéder aux lignes dans n'importe quel ordre. Pour des informations quant à son utilisation, reportez-vous à la section sur la » la spécification d'un type de curseur et la sélection de lignes.
SQLSRV_SCROLL_NEXT (entier)
Spécifie la ligne à sélectionner dans un jeu de résultats. Pour plus d'informations, reportez-vous à la section sur » la spécification d'un type de curseur et la sélection de lignes.
SQLSRV_SCROLL_PRIOR (entier)
Spécifie la ligne à sélectionner dans un jeu de résultats. Pour plus d'informations, reportez-vous à la section sur » la spécification d'un type de curseur et la sélection de lignes.
SQLSRV_SCROLL_FIRST (entier)
Spécifie la ligne à sélectionner dans un jeu de résultats. Pour plus d'informations, reportez-vous à la section sur » la spécification d'un type de curseur et la sélection de lignes.
SQLSRV_SCROLL_LAST (entier)
Spécifie la ligne à sélectionner dans un jeu de résultats. Pour plus d'informations, reportez-vous à la section sur » la spécification d'un type de curseur et la sélection de lignes.
SQLSRV_SCROLL_ABSOLUTE (entier)
Spécifie la ligne à sélectionner dans un jeu de résultats. Pour plus d'informations, reportez-vous à la section sur » la spécification d'un type de curseur et la sélection de lignes.
SQLSRV_SCROLL_RELATIVE (entier)
Spécifie la ligne à sélectionner dans un jeu de résultats. Pour plus d'informations, reportez-vous à la section sur » la spécification d'un type de curseur et la sélection de lignes.


Fonctions SQLSRV

Sommaire

  • sqlsrv_begin_transaction — Commence une transaction
  • sqlsrv_cancel — Annule une requête
  • sqlsrv_client_info — Retourne les informations sur le client ainsi que sur la connexion spécifiée
  • sqlsrv_close — Clôture une connexion établie et libère les ressources associées
  • sqlsrv_commit — Valide une transaction commencée avec la fonction sqlsrv_begin_transaction
  • sqlsrv_configure — Modifie la configuration du gestionnaire d'erreurs et d'historisations du driver
  • sqlsrv_connect — Ouvre une connexion sur une base de données Microsoft SQL Server
  • sqlsrv_errors — Retourne une erreur ainsi que certaines informations sur la dernière opération SQLSRV effectuée
  • sqlsrv_execute — Exécute une requête préparée avec la fonction sqlsrv_prepare
  • sqlsrv_fetch_array — Retourne une ligne sous la forme d'un tableau
  • sqlsrv_fetch_object — Récupère la prochaine ligne de données du jeu de résultats sous la forme d'un objet
  • sqlsrv_fetch — Rend la prochaine ligne d'un jeu de résultats disponible pour lecture
  • sqlsrv_field_metadata — Récupère les données méta pour les champs d'une requête préparée par la fonction sqlsrv_prepare ou la fonction sqlsrv_query
  • sqlsrv_free_stmt — Libère toutes les ressources de la requête spécifiée
  • sqlsrv_get_config — Retourne la valeur de la configuration spécifiée
  • sqlsrv_get_field — Récupère les données du champ depuis la ligne actuellement sélectionnée
  • sqlsrv_has_rows — Indique si la requête spécifiée contient des lignes
  • sqlsrv_next_result — Rend actif le prochain résultat de la requête spécifiée
  • sqlsrv_num_fields — Récupère le nombre de champs (colonnes) dans une requête
  • sqlsrv_num_rows — Récupère le nombre de lignes d'un jeu de résultats
  • sqlsrv_prepare — Prépare une requête pour exécution
  • sqlsrv_query — Prépare et exécute une requête
  • sqlsrv_rollback — Annule une transaction qui a été commencée grâce à la fonction sqlsrv_begin_transaction
  • sqlsrv_rows_affected — Retourne le nombre de lignes modifiées par la dernière requête de type INSERT, UPDATE, ou DELETE
  • sqlsrv_send_stream_data — Envoie des données depuis le flux vers le serveur
  • sqlsrv_server_info — Retourne des informations sur le serveur


Commence une transaction

  • « Fonctions SQLSRV
  • sqlsrv_cancel »
  • PHP Manual
  • Fonctions SQLSRV
  • Commence une transaction

sqlsrv_begin_transaction

(No version information available, might only be in Git)

sqlsrv_begin_transaction — Commence une transaction

Description

bool sqlsrv_begin_transaction ( resource $conn )

La transaction commençant avec la fonction sqlsrv_begin_transaction() inclut toutes les requêtes qui sont exécutées après l'appel à la fonction sqlsrv_begin_transaction() et avant l'appel à la fonction sqlsrv_rollback() ou la fonction sqlsrv_commit(). Une transaction explicite peut être commencée et validée (ou annulée) en utilisant ces fonctions au lieu d'exécuter les requêtes SQL qui commencent et valident/annulent les transactions. Pour plus d'informations, reportez-vous aux » transactions SQLSRV.

Liste de paramètres

conn

La ressource de connexion retournée par un appel à la fonction sqlsrv_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec sqlsrv_begin_transaction()

L'exemple suivant montre la façon d'utiliser la fonction sqlsrv_begin_transaction() avec les fonctions sqlsrv_commit() et sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true ));
}

/* Commence la transaction. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
     die( print_r( sqlsrv_errors(), true ));
}

/* Initialise les valeurs des paramètres. */
$orderId = 1; $qty = 10; $productId = 100;

/* Exécute la première requête. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
          VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Exécute la seconde requête. */
$sql2 = "UPDATE InventoryTable
          SET Quantity = (Quantity - ?)
          WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* Si les deux requêtes sont exécutées avec succès, on valide la transaction. */
/* Sinon, on annule la transaction. */
if( $stmt1 && $stmt2 ) {
     sqlsrv_commit( $conn );
     echo "Transaction validée.<br />";
} else {
     sqlsrv_rollback( $conn );
     echo "Transaction annulée.<br />";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  • sqlsrv_commit() - Valide une transaction commencée avec la fonction sqlsrv_begin_transaction
  • sqlsrv_rollback() - Annule une transaction qui a été commencée grâce à la fonction sqlsrv_begin_transaction


Annule une requête

  • « sqlsrv_begin_transaction
  • sqlsrv_client_info »
  • PHP Manual
  • Fonctions SQLSRV
  • Annule une requête

sqlsrv_cancel

(No version information available, might only be in Git)

sqlsrv_cancel — Annule une requête

Description

bool sqlsrv_cancel ( resource $stmt )

Annule une requête. Tous les résultats associés avec la requête qui n'ont pas été utilisés seront supprimés. Après l'appel à la fonction sqlsrv_cancel(), la requête spécifiée peut être ré-exécutée si elle a été créée avec la fonction sqlsrv_prepare(). L'appel à la fonction sqlsrv_cancel() n'est pas nécessaire si tous les résultats associés avec la requête ont été utilisés.

Liste de paramètres

stmt

La ressource de la requête à annuler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec sqlsrv_cancel()

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Sales FROM Table_1";

$stmt = sqlsrv_prepare( $conn, $sql);

if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

if( sqlsrv_execute( $stmt ) === false) {
     die( print_r( sqlsrv_errors(), true));
}

$salesTotal = 0;
$count = 0;

while( ($row = sqlsrv_fetch_array( $stmt)) && $salesTotal <=100000)
{
     $qty = $row[0];
     $price = $row[1];
     $salesTotal += ( $price * $qty);
     $count++;
}

echo "$count sales accounted for the first $$salesTotal in revenue.<br />";

// Annule les résultats restants. La requête peut être ré-utilisée.
sqlsrv_cancel( $stmt);
?>

Notes

La principale différence entre la fonction sqlsrv_cancel() et la fonction sqlsrv_free_stmt() est qu'une ressource de requête annulée avec la fonction sqlsrv_cancel() peut être ré-utilisée si elle a été créée avec la fonction sqlsrv_prepare(). Une ressource de requête annulée avec la fonction sqlsrv_free_statement() ne peut plus être ré-exécutée.

Voir aussi

  • sqlsrv_free_stmt() - Libère toutes les ressources de la requête spécifiée
  • sqlsrv_prepare() - Prépare une requête pour exécution


Retourne les informations sur le client ainsi que sur la connexion spécifiée

  • « sqlsrv_cancel
  • sqlsrv_close »
  • PHP Manual
  • Fonctions SQLSRV
  • Retourne les informations sur le client ainsi que sur la connexion spécifiée

sqlsrv_client_info

(No version information available, might only be in Git)

sqlsrv_client_info — Retourne les informations sur le client ainsi que sur la connexion spécifiée

Description

array sqlsrv_client_info ( resource $conn )

Retourne des informations sur le client ainsi que sur la connexion spécifiée.

Liste de paramètres

conn

La connexion sur laquelle on souhaite des informations.

Valeurs de retour

Retourne un tableau associatif dont les clés sont décrites dans la table ci-dessous. Retourne FALSE sinon.

Tableau retourné par sqlsrv_client_info
Clé | Description
DriverDllName | SQLNCLI10.DLL
DriverODBCVer | version ODBC (xx.yy)
DriverVer | version de la bibliothèque DLL native client du serveur (10.5.xxx)
ExtensionVer | version de la bibliothèque php_sqlsrv.dll (2.0.xxx.x)

Exemples

Exemple #1 Exemple avec sqlsrv_client_info()

<?php
$serverName = "serverName\sqlexpress";
$connOptions = array("UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connOptions );

if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

if( $client_info = sqlsrv_client_info( $conn)) {
    foreach( $client_info as $key => $value) {
        echo $key.": ".$value."<br />";
    }
} else {
    echo "Erreur lors de la récupération des informations clientes.<br />";
}
?>

Voir aussi

  • sqlsrv_server_info() - Retourne des informations sur le serveur


Clôture une connexion établie et libère les ressources associées

  • « sqlsrv_client_info
  • sqlsrv_commit »
  • PHP Manual
  • Fonctions SQLSRV
  • Clôture une connexion établie et libère les ressources associées

sqlsrv_close

(No version information available, might only be in Git)

sqlsrv_close — Clôture une connexion établie et libère les ressources associées

Description

bool sqlsrv_close ( resource $conn )

Clôture une connexion établie et libère les ressources associées.

Liste de paramètres

conn

La connexion à fermer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Example avec sqlsrv_close()

<?php
$nomServeur = "serverName\sqlexpres";
$connOptions = array("UID"=>"nomutilisateur", "PWD"=>"motdepasse", "Database"=>"nomschema");
$conn = sqlsrv_connect( $nomServeur, $connOptions );
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

//-------------------------------------
// Effectuer les operations sur la base de données
//-------------------------------------

// Et on ferme la connexion.
sqlsrv_close( $conn );
?>

Voir aussi

  • sqlsrv_connect() - Ouvre une connexion sur une base de données Microsoft SQL Server


Valide une transaction commencée avec la fonction sqlsrv_begin_transaction

  • « sqlsrv_close
  • sqlsrv_configure »
  • PHP Manual
  • Fonctions SQLSRV
  • Valide une transaction commencée avec la fonction sqlsrv_begin_transaction

sqlsrv_commit

(No version information available, might only be in Git)

sqlsrv_commit — Valide une transaction commencée avec la fonction sqlsrv_begin_transaction()

Description

bool sqlsrv_commit ( resource $conn )

Valide une transaction commencée par la fonction sqlsrv_begin_transaction(). La connexion est retournée en mode auto-commit après l'appel à la fonction sqlsrv_commit(). La transaction validée inclut toutes les requêtes exécutées après un appel à la fonction sqlsrv_begin_transaction(). Les transactions doivent commencer, être valider ou être annuler en utilisant ces fonctions au lieu d'utiliser des requêtes déclarant le début ou l'annulation d'une transaction. Pour plus d'informations, reportez-vous aux » transactions SQLSRV.

Liste de paramètres

conn

La connexion sur laquelle la transaction va être validée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec sqlsrv_commit()

 L'exemple suivant montre la façon d'utiliser la fonction
 sqlsrv_commit() avec
 sqlsrv_begin_transaction() et
sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true ));
}

/* Début de la transaction. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
     die( print_r( sqlsrv_errors(), true ));
}

/* Initialisation des paramètres. */
$orderId = 1; $qty = 10; $productId = 100;

/* Définition et exécution de la première requête. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
         VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Définition et exécution de la seconde requête. */
$sql2 = "UPDATE InventoryTable
         SET Quantity = (Quantity - ?)
         WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* Si les deux requêtes ont réussi, on commit la transaction. */
/* Sinon, on l'annule. */
if( $stmt1 && $stmt2 ) {
     sqlsrv_commit( $conn );
     echo "Transaction validée.<br />";
} else {
     sqlsrv_rollback( $conn );
     echo "Transaction annulée.<br />";
}
?>

Voir aussi

  • sqlsrv_begin_transaction() - Commence une transaction
  • sqlsrv_rollback() - Annule une transaction qui a été commencée grâce à la fonction sqlsrv_begin_transaction


Modifie la configuration du gestionnaire d'erreurs et d'historisations du driver

  • « sqlsrv_commit
  • sqlsrv_connect »
  • PHP Manual
  • Fonctions SQLSRV
  • Modifie la configuration du gestionnaire d'erreurs et d'historisations du driver

sqlsrv_configure

(No version information available, might only be in Git)

sqlsrv_configure — Modifie la configuration du gestionnaire d'erreurs et d'historisations du driver

Description

bool sqlsrv_configure ( string $setting , mixed $value )

Modifie la configuration du gestionnaire d'erreurs et d'historisations du driver.

Liste de paramètres

setting

Le nom de la configuration à définir. Les valeurs possibles sont "WarningsReturnAsErrors", "LogSubsystems", et "LogSeverity".

value

La valeur de la configuration à définir. La table suivante montre les valeurs possibles :

Options de configuration du gestionnaire d'erreurs et d'historisations
Configurations | Options
WarningsReturnAsErrors | 1 (TRUE) ou 0 (FALSE)
LogSubsystems | SQLSRV_LOG_SYSTEM_ALL (-1) SQLSRV_LOG_SYSTEM_CONN (2) SQLSRV_LOG_SYSTEM_INIT (1) SQLSRV_LOG_SYSTEM_OFF (0) SQLSRV_LOG_SYSTEM_STMT (4) SQLSRV_LOG_SYSTEM_UTIL (8)
LogSeverity | SQLSRV_LOG_SEVERITY_ALL (-1) SQLSRV_LOG_SEVERITY_ERROR (1) SQLSRV_LOG_SEVERITY_NOTICE (4) SQLSRV_LOG_SEVERITY_WARNING (2)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • » Le gestionnaire d'erreur SQLSRV.
  • » Le gestionnaire d'historisation SQLSRV.


Ouvre une connexion sur une base de données Microsoft SQL Server

  • « sqlsrv_configure
  • sqlsrv_errors »
  • PHP Manual
  • Fonctions SQLSRV
  • Ouvre une connexion sur une base de données Microsoft SQL Server

sqlsrv_connect

(No version information available, might only be in Git)

sqlsrv_connect — Ouvre une connexion sur une base de données Microsoft SQL Server

Description

resource sqlsrv_connect ( string $serverName [, array $connectionInfo ] )

Ouvre une connexion sur une base de données Microsoft SQL Server. Par défaut, la connexion tente d'utiliser l'authentification Windows. Pour se connecter en utilisant l'authentification SQL Server, ajouter l'"UID" et le "PWD" dans le tableau d'options de connexion.

Liste de paramètres

serverName

Le nom du serveur sur lequel nous souhaitons réaliser une connexion. Pour se connecter sur une instance particulière, faites suivre le nom du serveur, puis un anti-slash, puis le nom de l'instance (i.e. serverName\sqlexpress).

connectionInfo

Un tableau associatif spécifiant les options pour la connexion sur le serveur. Si les valeurs des clés UID et PWD ne sont pas spécifiées, la connexion tentera d'utiliser l'authentification Windows. Pour une liste complète des clés supportées, reportez-vous aux » options de connexion SQLSRV.

Valeurs de retour

Une ressource de connexion. Si la connexion n'a pu être ouverte, FALSE sera retourné.

Exemples

Exemple #1 Connexion en utilisant l'authentification Windows.

<?php
$serverName = "serverName\sqlexpress"; //serverName\instanceName

// Vu que UID et PWD ne sont pas spécifiés dans le tableau $connectionInfo,
// la connexion va tenter d'utiliser l'authentification Windows.
$connectionInfo = array( "Database"=>"dbName");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connexion établie.<br />";
}else{
     echo "La connexion n'a pu être établie.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

Exemple #2 Connexion en spécifiant un nom d'utilisateur et un mot de passe.

<?php
$serverName = "serverName\sqlexpress"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connexion établie.<br />";
}else{
     echo "La connexion n'a pu être établie.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

Exemple #3 Connexion sur un port spécifique.

<?php
$serverName = "serverName\sqlexpress, 1542"; //serverName\instanceName, portNumber (default is 1433)
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connexion établie.<br />";
}else{
     echo "La connexion n'a pu être établie.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

Notes

Par défaut, la fonction sqlsrv_connect() utilise la file d'attente de connexion afin d'augmenter les performances. Pour désactiver cette file d'attente (i.e. et ainsi, forcer une nouvelle connexion à chaque appel à la fonction), définissez l'option "ConnectionPooling" dans le tableau $connectionOptions à 0 (ou FALSE). Pour plus d'informations reportez-vous au chapitre sur la » file d'attente de connexions SQLSRV.

L'extension SQLSRV n'a pas de fonction dédiée pour modifier la base de données sur laquelle l'extension est connecté. La base de données cible est spécifiée dans le tableau $connectionOptions passé à la fonction sqlsrv_connect. Pour changer la base de données sur une connexion ouverte, exécutez la requête suivante : "USE dbName" (i.e. sqlsrv_query($conn, "USE dbName")).

Voir aussi

  • sqlsrv_close() - Clôture une connexion établie et libère les ressources associées
  • sqlsrv_errors() - Retourne une erreur ainsi que certaines informations sur la dernière opération SQLSRV effectuée
  • sqlsrv_query() - Prépare et exécute une requête


Retourne une erreur ainsi que certaines informations sur la dernière opération SQLSRV effectuée

  • « sqlsrv_connect
  • sqlsrv_execute »
  • PHP Manual
  • Fonctions SQLSRV
  • Retourne une erreur ainsi que certaines informations sur la dernière opération SQLSRV effectuée

sqlsrv_errors

(No version information available, might only be in Git)

sqlsrv_errors — Retourne une erreur ainsi que certaines informations sur la dernière opération SQLSRV effectuée

Description

mixed sqlsrv_errors ([ int $errorsOrWarnings ] )

Retourne une erreur ainsi que certaines informations sur la dernière opération SQLSRV effectuée.

Liste de paramètres

errorsOrWarnings

Détermine si l'on doit retourner des informations sur l'erreur, des informations sur l'alerte, ou les deux. Si ce paramètre n'est pas fourni, les deux informations seront retournées. Voici la liste des valeurs supportées par ce paramètre : SQLSRV_ERR_ALL, SQLSRV_ERR_ERRORS, SQLSRV_ERR_WARNINGS.

Valeurs de retour

Si une erreur et/ou une alerte survient lors de la dernière opération SQLSRV, un tableau de tableaux contenant les informations de l'erreur sera retourné. Si aucune erreur ni alerte ne survient, NULL sera retourné. Le tableau suivant décrit la structure du tableau retourné :

Tableau retourné par sqlsrv_errors
Clé | Description
SQLSTATE | Pour les erreurs originaires du driver ODBC, ce sera le SQLSTATE retourné par ODBC. Pour les erreurs originaires du Microsoft Drivers pour PHP pour le serveur SQL, un SQLSTATE de IMSSP. Pour les alertes originaires du Microsoft Drivers pour PHP pour le serveur SQL, un SQLSTATE de 01SSP.
code | Pour les erreurs originaires du serveur SQL, le code erreur natif du serveur SQL. Pour les erreurs originaires du ODBC driver, le code erreur retourné par ODBC. Pour les erreurs originaires du Microsoft Drivers pour PHP pour le serveur SQL, le code erreur Microsoft Drivers pour PHP pour le serveur SQL.
message | Une description de l'erreur.

Exemples

Exemple #1 Exemple avec functionname()

<?php
$serverName = "serverName/sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

/* Requête pour sélectionner un nom de colonne invalide. */
$sql = "SELECT BadColumnName FROM Table_1";

/* L'exécution de la requête va échouer car le nom de la colonne n'existe pas. */
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false ) {
    if( ($errors = sqlsrv_errors() ) != null) {
        foreach( $errors as $error ) {
            echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
            echo "code: ".$error[ 'code']."<br />";
            echo "message: ".$error[ 'message']."<br />";
        }
    }
}
?>

Notes

Par défaut, les alertes générées lors d'un appel à une fonction SQLSRV sont traitées comme des erreurs. Cela signifie que si une alerte survient lors d'un appel à une fonction SQLSRV, la fonction retournera FALSE. Cependant, les alertes qui correspondent aux SQLSTATE de valeurs 01000, 01001, 01003, et 01S02 ne seront jamais traitées comme des erreurs. Pour plus d'informations sur la façon de modifier ce comportement, reportez-vous à la documentation sur la fonction sqlsrv_configure() ainsi que sur la configuration de WarningsReturnAsErrors.

Voir aussi

  • sqlsrv_configure() - Modifie la configuration du gestionnaire d'erreurs et d'historisations du driver


Exécute une requête préparée avec la fonction sqlsrv_prepare

  • « sqlsrv_errors
  • sqlsrv_fetch_array »
  • PHP Manual
  • Fonctions SQLSRV
  • Exécute une requête préparée avec la fonction sqlsrv_prepare

sqlsrv_execute

(No version information available, might only be in Git)

sqlsrv_execute — Exécute une requête préparée avec la fonction sqlsrv_prepare()

Description

bool sqlsrv_execute ( resource $stmt )

Exécute une requête préparée avec la fonction sqlsrv_prepare(). Cette fonction est idéale pour exécuter une requête préparée à plusieurs reprises avec des valeurs différentes pour les paramètres.

Liste de paramètres

stmt

Une ressource de requête retournée par la fonction sqlsrv_prepare().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec sqlsrv_execute()

Cet exemple montre la façon pour préparer une requête avec la fonction sqlsrv_prepare() ainsi que l'exécution à plusieurs reprises (avec des valeurs différentes pour les paramètres) en utilisant la fonction sqlsrv_execute().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1
        SET OrderQty = ?
        WHERE SalesOrderID = ?";

// Initialise les paramètres et prépare la requête.
// Les variables $qty et $id sont liées à la requête, $stmt.
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
    die( print_r( sqlsrv_errors(), true));
}

// Définition des informations SalesOrderDetailID et OrderQty.
// Ce tableau lie l'ID order à la quantitié order dans une paire key=>value.
$orders = array( 1=>10, 2=>20, 3=>30);

// Exécute la requête pour chaque ordre.
foreach( $orders as $id => $qty) {
    // En raison du que $id et $qty sont liés à $stmt1, leurs valeurs
    // mise à jour sont utilisées lors de chaque exécution de la requête.
    if( sqlsrv_execute( $stmt ) === false ) {
          die( print_r( sqlsrv_errors(), true));
    }
}
?>

Notes

Lorsque vous préparez une requête qui utilisent des variables comme paramètres, les variables sont liées à la requête. Cela signifie que si vous mettez à jour les valeurs des variables, la prochaine exécution de la requête utilisera les valeurs mises à jour. Pour les requêtes que vous prévoyez d'utiliser qu'une seule fois, utilisez plutôt la fonction sqlsrv_query().

Voir aussi

  • sqlsrv_prepare() - Prépare une requête pour exécution
  • sqlsrv_query() - Prépare et exécute une requête


Retourne une ligne sous la forme d'un tableau

  • « sqlsrv_execute
  • sqlsrv_fetch_object »
  • PHP Manual
  • Fonctions SQLSRV
  • Retourne une ligne sous la forme d'un tableau

sqlsrv_fetch_array

(No version information available, might only be in Git)

sqlsrv_fetch_array — Retourne une ligne sous la forme d'un tableau

Description

array sqlsrv_fetch_array ( resource $stmt [, int $fetchType [, int $row [, int $offset ]]] )

Retourne la prochaine ligne de données disponible sous la forme d'un tableau associatif, d'un tableau numérique ou les deux (par défaut).

Liste de paramètres

stmt

Une ressource de requête retournée par sqlsrv_query ou sqlsrv_prepare.

fetchType

Une constante prédéfinie spécifiant le type de tableau à retourner. Les valeurs possibles sont SQLSRV_FETCH_ASSOC, SQLSRV_FETCH_NUMERIC, et SQLSRV_FETCH_BOTH (la valeur par défaut).

Le type de récupération SQLSRV_FETCH_ASSOC ne doit pas être utilisé lors du traitement d'un jeu de résultats possédant des colonnes dont le nom est identique.

row

Spécifie la ligne à traiter dans le jeu de résultats utilisant un curseur scrollable. Les valeurs possibles sont SQLSRV_SCROLL_NEXT, SQLSRV_SCROLL_PRIOR, SQLSRV_SCROLL_FIRST, SQLSRV_SCROLL_LAST, SQLSRV_SCROLL_ABSOLUTE et, SQLSRV_SCROLL_RELATIVE (la valeur par défaut). Lorsque ce paramètre est spécifié, le paramètre fetchType doit également être explicitement défini.

offset

Spécifie la ligne à accéder si le paramètre row est défini à SQLSRV_SCROLL_ABSOLUTE ou SQLSRV_SCROLL_RELATIVE. Notez que la première ligne du jeu de résultats a comme index 0.

Valeurs de retour

Retourne un tableau en cas de succès, NULL s'il n'y a plus de ligne à retourner, et FALSE si une erreur survient.

Exemples

Exemple #1 Récupération d'un tableau associatif

<?php
$serverName = "serverName\instanceName";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
      echo $row['LastName'].", ".$row['FirstName']."<br />";
}

sqlsrv_free_stmt( $stmt);
?>

Exemple #2 Récupération d'un tableau numérique

<?php
$serverName = "serverName\instanceName";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {
      echo $row[0].", ".$row[1]."<br />";
}

sqlsrv_free_stmt( $stmt);
?>

Notes

Le fait de ne pas spécifier le paramètre fetchType ou le fait de le définir explicitement à la valeur SQLSRV_FETCH_TYPE dans l'exemple ci-dessus retournera un tableau contenant à la fois des clés associatives et des clés numériques.

Si plus d'une colonne est retourné avec le même nom, la dernière colonne prendra le dessus. Pour éviter d'avoir des problèmes avec les noms des colonnes, utilisez des alias.

Si une colonne ne possédant aucun nom est retournée, la clé associative de l'élément du tableau sera une chaîne vide ("").

Voir aussi

  • sqlsrv_connect() - Ouvre une connexion sur une base de données Microsoft SQL Server
  • sqlsrv_query() - Prépare et exécute une requête
  • sqlsrv_errors() - Retourne une erreur ainsi que certaines informations sur la dernière opération SQLSRV effectuée
  • sqlsrv_fetch() - Rend la prochaine ligne d'un jeu de résultats disponible pour lecture


Récupère la prochaine ligne de données du jeu de résultats sous la forme d'un objet

  • « sqlsrv_fetch_array
  • sqlsrv_fetch »
  • PHP Manual
  • Fonctions SQLSRV
  • Récupère la prochaine ligne de données du jeu de résultats sous la forme d'un objet

sqlsrv_fetch_object

(No version information available, might only be in Git)

sqlsrv_fetch_object — Récupère la prochaine ligne de données du jeu de résultats sous la forme d'un objet

Description

mixed sqlsrv_fetch_object ( resource $stmt [, string $className [, array $ctorParams [, int $row [, int $offset ]]]] )

Récupère la prochaine ligne de données du jeu de résultats sous la forme d'une instance de la classe spécifiée dont les propriétés correspondent aux noms des champs de la ligne récupérée et les valeurs correspondant aux valeurs des champs de la ligne récupérée.

Liste de paramètres

stmt

Une ressource de requête créée par la fonction sqlsrv_query() ou la fonction sqlsrv_execute().

className

Le nom de la classe à instancier. Si aucun nom de classe n'est spécifié, stdClass sera instanciée.

ctorParams

Valeurs à passer au constructeur de la classe spécifiée. Si le constructeur de la classe spécifiée prend des paramètres, le tableau ctorParams doit être fourni.

row

La ligne à traiter. Ce paramètre ne peut être utilisé que si la requête spécifié a été préparée avec un curseur scrollable. Dans ce cas, ce paramètre peut prend un des valeurs suivantes :

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

offset

Spécifie la ligne à traiter si le paramètre row est défini à la valeur SQLSRV_SCROLL_ABSOLUTE ou SQLSRV_SCROLL_RELATIVE. Notez que la première ligne du jeu de résultats a un index de 0.

Valeurs de retour

Retourne un objet en cas de succès, NULL s'il n'y a plus de ligne à retourner, et FALSE si une erreur survient ou si la classe spécifiée n'existe pas.

Exemples

Exemple #1 Exemple avec sqlsrv_fetch_object()

L'exemple suivant montre la façon pour récupérer une ligne sous la forme d'un objet stdClass.

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT fName, lName FROM Table_1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

// Récupère chaque ligne sous la forme d'un objet
// Vu qu'aucune classe n'est spécifiée, chaque ligne sera récupéré sous la forme d'un objet stdClass.
// Les noms des propriétés correspondent aux noms des champs.
while( $obj = sqlsrv_fetch_object( $stmt)) {
      echo $obj->fName.", ".$obj->lName."<br />";
}
?>

Notes

Si un nom de classe est spécifié avec le paramètre optionnel $className et la classe a des propriétés dont les noms correspondent à des noms de champs du jeu de résultats, les valeurs correspondantes du jeu de résultats seront appliquées à ces propriétés. Si un nom de champs du jeu de résultats ne correspond pas à une proriété de la classe, une propriété dont le nom correspond au nom du champs sera ajoutée à l'objet et la valeur correspondante dans le jeu de résultats sera appliquée à cette propriété. La règle suivante s'applique lors de l'utilisation du paramètre $className :

  • Le nom du champs et de la propriété sont sensibles à la casse.
  • La correspondance champs/propriété survient en tenant compte des modificateurs d'accès.
  • Les types de données des propriétés de la classe sont ignorées lors de l'application de la valeur d'un champs sur une propriété.
  • Si la classe n'existe pas, la fonction retourne FALSE et ajoute une erreur dans la collection des erreurs.
Suuivant si le paramètre $className est fourni ou non, si un champs avec aucun nom est retourné, la valeur du champs sera ignorée et une alerte sera ajoutée à la collection des erreurs.

Lors du traitement d'un jeu de résultats qui possède plusieurs colonnes portant le même nom, il peut être plus judicieux d'utiliser la fonction sqlsrv_fetch_array() ou une combinaison des fonctions sqlsrv_fetch() et sqlsrv_get_field().

Voir aussi

  • sqlsrv_fetch() - Rend la prochaine ligne d'un jeu de résultats disponible pour lecture
  • sqlsrv_fetch_array() - Retourne une ligne sous la forme d'un tableau


Rend la prochaine ligne d'un jeu de résultats disponible pour lecture

  • « sqlsrv_fetch_object
  • sqlsrv_field_metadata »
  • PHP Manual
  • Fonctions SQLSRV
  • Rend la prochaine ligne d'un jeu de résultats disponible pour lecture

sqlsrv_fetch

(No version information available, might only be in Git)

sqlsrv_fetch — Rend la prochaine ligne d'un jeu de résultats disponible pour lecture

Description

mixed sqlsrv_fetch ( resource $stmt [, int $row [, int $offset ]] )

Rend la prochaine ligne d'un jeu de résultats disponible pour lecture. Utilisez la fonction sqlsrv_get_field() pour llire les champs de la ligne.

Liste de paramètres

stmt

Une ressource de requête créée par l'exécution de la fonction sqlsrv_query() ou de la fonction sqlsrv_execute().

row

La ligne à traiter. Ce paramètre ne peut être utilisé que si la requête spécifiée a été préparée avec un curseur scrollable. Dans ce cas, ce paramètre peut prendre une des valeurs suivantes :

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

offset

Spécifie la ligne à traiter si le paramètre row est défini à SQLSRV_SCROLL_ABSOLUTE ou SQLSRV_SCROLL_RELATIVE. Notez que la première ligne d'un jeu de résultats a l'index 0.

Valeurs de retour

Retourne TRUE si la prochaine ligne du jeu de résultats a été récupérée avec succès, FALSE si une erreur survient et NULL s'il n'y a plus de ligne à récupérer dans le jeu de résultats.

Exemples

Exemple #1 Exemple avec sqlsrv_fetch()

L'exemple suivant montre la façon pour récupérer une ligne avec la fonction sqlsrv_fetch() et pour récupérer les champs de la ligne avec la fonction sqlsrv_get_field().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Name, Comment
        FROM Table_1
        WHERE ReviewID=1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

// Récupère la première ligne (et dans ce cas, seulement celle-ci) du jeu de résultats
// pour lecture.
if( sqlsrv_fetch( $stmt ) === false) {
     die( print_r( sqlsrv_errors(), true));
}

// Récupère les champs de la ligne. Les indices des champs commencent à 0 et
// doivent être récupérés dans l'ordre.
// Le fait de récupérer les champs de la ligne par leurs noms n'est pas supporté
// par la fonction sqlsrv_get_field.
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

$comment = sqlsrv_get_field( $stmt, 1);
echo $comment;
?>

Voir aussi

  • sqlsrv_get_field() - Récupère les données du champ depuis la ligne actuellement sélectionnée
  • sqlsrv_fetch_array() - Retourne une ligne sous la forme d'un tableau
  • sqlsrv_fetch_object() - Récupère la prochaine ligne de données du jeu de résultats sous la forme d'un objet


Récupère les données méta pour les champs d'une requête préparée par la fonction sqlsrv_prepare ou la fonction sqlsrv_query

  • « sqlsrv_fetch
  • sqlsrv_free_stmt »
  • PHP Manual
  • Fonctions SQLSRV
  • Récupère les données méta pour les champs d'une requête préparée par la fonction sqlsrv_prepare ou la fonction sqlsrv_query

sqlsrv_field_metadata

(No version information available, might only be in Git)

sqlsrv_field_metadata — Récupère les données méta pour les champs d'une requête préparée par la fonction sqlsrv_prepare() ou la fonction sqlsrv_query()

Description

mixed sqlsrv_field_metadata ( resource $stmt )

Récupère les données méta pour les champs d'une requête préparée par la fonction sqlsrv_prepare() ou la fonction sqlsrv_query(). La fonction sqlsrv_field_metadata() peut être appelée sur une requête avant ou après son exécution.

Liste de paramètres

stmt

Une ressource de requête depuis laquelle les données méta seront récupérées.

Valeurs de retour

Retourne un tableau de tableaux en cas de succès, FALSE si une erreur survient. Chaque tableau retourné est décrit dans la table suivante :

Tableau retourné par la fonction sqlsrv_field_metadata
Clé | Description
Name | Le nom du champ.
Type | La valeur numérique pour le type SQL.
Size | Le nombre de caractères pour les champs de type caractères, le nombre d'octets pour les champs de type binaire, ou NULL pour les autres types.
Precision | La précision pour les variables de type précision, NULL pour les autres types.
Scale | L'échelle pour les variables de type scale, NULL pour les autres types.
Nullable | Une énumération indiquant si la colonne peut être nulle, ne peut pas l'être, ou si cette information n'est pas connue.
Pour plus d'informations, reportez-vous à la documentation sur la fonction » sqlsrv_field_metadata de la documentation Microsoft SQLSRV.

Exemples

Exemple #1 Exemple avec sqlsrv_field_metadata()

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"AdventureWorks", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
   die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT * FROM Table_1";
$stmt = sqlsrv_prepare( $conn, $sql );

foreach( sqlsrv_field_metadata( $stmt ) as $fieldMetadata ) {
    foreach( $fieldMetadata as $name => $value) {
       echo "$name: $value<br />";
    }
      echo "<br />";
}
?>

Voir aussi

  • sqlsrv_client_info() - Retourne les informations sur le client ainsi que sur la connexion spécifiée


Libère toutes les ressources de la requête spécifiée

  • « sqlsrv_field_metadata
  • sqlsrv_get_config »
  • PHP Manual
  • Fonctions SQLSRV
  • Libère toutes les ressources de la requête spécifiée

sqlsrv_free_stmt

(No version information available, might only be in Git)

sqlsrv_free_stmt — Libère toutes les ressources de la requête spécifiée

Description

bool sqlsrv_free_stmt ( resource $stmt )

Libère toutes les ressources pour la requête spécifié. La requête ne pourra plus être utilisé après le passage à la fonction sqlsrv_free_stmt(). Si la requête sqlsrv_free_stmt() est appelée alors que la requête est en cours d'exécution, l'exécution de la requête est interrompue, et la requête est annulée.

Liste de paramètres

stmt

La requête dont les ressources seront libérées. Notez que NULL est une valeur de paramètre valide. Cette valeur permet à la fonction d'être appelée à plusieurs reprises dans un script.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec sqlsrv_free_stmt()

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$stmt = sqlsrv_query( $conn, "SELECT * FROM Table_1");
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

/*-------------------------------
     Exploitation dde la requête ici.
-------------------------------*/

/* Libération des ressources associées à la requête. */
sqlsrv_free_stmt( $stmt);

?>

Notes

La principale différentre entre la fonction sqlsrv_free_stmt() et la fonction sqlsrv_cancel() est qu'une ressource de requête annulée avec la fonction sqlsrv_cancel() peut être ré-exécutée si elle a été créée avec la fonction sqlsrv_prepare(). Une ressource de requête annulée avec la fonction sqlsrv_free_statement() ne peut plus être ré-exécutée.

Voir aussi

  • sqlsrv_cancel() - Annule une requête


Retourne la valeur de la configuration spécifiée

  • « sqlsrv_free_stmt
  • sqlsrv_get_field »
  • PHP Manual
  • Fonctions SQLSRV
  • Retourne la valeur de la configuration spécifiée

sqlsrv_get_config

(No version information available, might only be in Git)

sqlsrv_get_config — Retourne la valeur de la configuration spécifiée

Description

mixed sqlsrv_get_config ( string $setting )

Retourne la valeur de la configuration spécifiée.

Liste de paramètres

setting

Le nom de la configuration pour laquelle la valeur sera retournée. Pour une liste des configurations, voir la fonction sqlsrv_configure().

Valeurs de retour

Retourne la valeur de la configuration demandée. Si une configuration invalide est fournie, FALSE sera retourné.

Voir aussi

  • sqlsrv_configure() - Modifie la configuration du gestionnaire d'erreurs et d'historisations du driver


Récupère les données du champ depuis la ligne actuellement sélectionnée

  • « sqlsrv_get_config
  • sqlsrv_has_rows »
  • PHP Manual
  • Fonctions SQLSRV
  • Récupère les données du champ depuis la ligne actuellement sélectionnée

sqlsrv_get_field

(No version information available, might only be in Git)

sqlsrv_get_field — Récupère les données du champ depuis la ligne actuellement sélectionnée

Description

mixed sqlsrv_get_field ( resource $stmt , int $fieldIndex [, int $getAsType ] )

Récupère les données du champ depuis la ligne actuellement sélectionnée. Les champs doivent être lus dans l'ordre. Leurs indices commencent à 0.

Liste de paramètres

stmt

Une ressource de requête retournée par la fonction sqlsrv_query() ou la fonction sqlsrv_execute().

fieldIndex

L'index du champ à récupérer. Les indices des champs commencent à 0. Les champs doit être lus dans l'ordre, i.e. si vous accédez au champ d'indice 1, alors le champ d'indice 0 ne sera plus disponible.

getAsType

Le type de données PHP pour les données du champ retourné. Si ce paramètre n'est pas défini, les données du champ seront retournées sous la forme d'un type de données PHP par défaut. Pour plus d'informations sur les types de données PHP par défaut, reportez-vous à la section sur » les types de données PHP par défaut de la documentation Microsoft SQLSRV.

Valeurs de retour

Retourne les données depuis le champ spécifié en cas de succès. Retourne FALSE si une erreur survient.

Exemples

Exemple #1 sqlsrv_get_field() example

L'exemple suivant montre la façon de récupérer une ligne avec la fonction sqlsrv_fetch() et récupère les champs de la ligne avec la fonction sqlsrv_get_field().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Name, Comment
        FROM Table_1
        WHERE ReviewID=1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

// Rend disponible la première (et dans ce cas, la seule) ligne du jeu de résultats pour lecture.
if( sqlsrv_fetch( $stmt ) === false) {
     die( print_r( sqlsrv_errors(), true));
}

// Récupère les champs de la ligne. Les indices commencent à 0 et doivent être récupérés dans l'ordre.
// La récupération des champs de la ligne par leurs noms n'est pas supportée par la fonction sqlsrv_get_field.
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

$comment = sqlsrv_get_field( $stmt, 1);
echo $comment;
?>

Voir aussi

  • sqlsrv_fetch() - Rend la prochaine ligne d'un jeu de résultats disponible pour lecture
  • sqlsrv_fetch_array() - Retourne une ligne sous la forme d'un tableau
  • sqlsrv_fetch_object() - Récupère la prochaine ligne de données du jeu de résultats sous la forme d'un objet


Indique si la requête spécifiée contient des lignes

  • « sqlsrv_get_field
  • sqlsrv_next_result »
  • PHP Manual
  • Fonctions SQLSRV
  • Indique si la requête spécifiée contient des lignes

sqlsrv_has_rows

(No version information available, might only be in Git)

sqlsrv_has_rows — Indique si la requête spécifiée contient des lignes

Description

bool sqlsrv_has_rows ( resource $stmt )

Indique si la requête spécifiée contient des lignes.

Liste de paramètres

stmt

Une ressource de requête retournée par la fonction sqlsrv_query() ou la fonction sqlsrv_execute().

Valeurs de retour

Retourne TRUE si la requête spécifiée contient des lignes, FALSE si elle n'en contient pas ou bien si une erreur survient.

Exemples

Exemple #1 Exemple avec sqlsrv_has_rows()

<?php
$server = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" )
$conn = sqlsrv_connect( $server, $connectionInfo );

$stmt = sqlsrv_query( $conn, "SELECT * FROM Table_1");

if ($stmt) {
   $rows = sqlsrv_has_rows( $stmt );
   if ($rows === true)
      echo "Il y a des lignes. <br />";
   else
      echo "Il n'y a aucune ligne. <br />";
}
?>

Voir aussi

  • sqlsrv_num_rows() - Récupère le nombre de lignes d'un jeu de résultats
  • sqlsrv_query() - Prépare et exécute une requête


Rend actif le prochain résultat de la requête spécifiée

  • « sqlsrv_has_rows
  • sqlsrv_num_fields »
  • PHP Manual
  • Fonctions SQLSRV
  • Rend actif le prochain résultat de la requête spécifiée

sqlsrv_next_result

(No version information available, might only be in Git)

sqlsrv_next_result — Rend actif le prochain résultat de la requête spécifiée

Description

mixed sqlsrv_next_result ( resource $stmt )

Rend actif le prochain résultat de la requête spécifiée. Les résultats incluent les jeux de résultats, le nombre de lignes, et les paramètres de sortie.

Liste de paramètres

stmt

La requête sur laquelle le prochain résultat sera appelé.

Valeurs de retour

Retourne TRUE si le prochain résultat a été récupéré avec succès, FALSE si une erreur survient, et NULL s'il n'y a plus de résultat à récupérer.

Exemples

Exemple #1 Exemple avec sqlsrv_next_result()

L'exemple suivant exécute une requête batch qui fait des insertions dans une table, puis, fait une sélection de la table. Ceci produit 2 résultats sur la requête : un pour les lignes affectées par le INSERT, et un pour les lignes retournées par le SELECT. Pour récupérer les lignes retournées par le SELECT, la fonction sqlsrv_next_result() doit être appelée pour passer le premier résultat.

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array("Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

$query = "INSERT INTO Table_1 (id, data) VALUES (?,?); SELECT * FROM TABLE_1;";
$params = array(1, "some data");
$stmt = sqlsrv_query($conn, $query, $params);

// Consomme le premier résultat (lignes affectées par le INSERT) sans appeler la fonction sqlsrv_next_result.
echo "Lignes affectées : ".sqlsrv_rows_affected($stmt)."<br />";

// Se déplace au résultat suivant et affiche les résultats.
$next_result = sqlsrv_next_result($stmt);
if( $next_result ) {
   while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)){
      echo $row['id']." : ".$row['data']."<br />";
   }
} elseif( is_null($next_result)) {
     echo "Il n'y a plus de résultat.<br />";
} else {
     die(print_r(sqlsrv_errors(), true));
}
?>

Voir aussi

  • sqlsrv_query() - Prépare et exécute une requête
  • sqlsrv_fetch_array() - Retourne une ligne sous la forme d'un tableau
  • sqlsrv_rows_affected() - Retourne le nombre de lignes modifiées par la dernière requête de type INSERT, UPDATE, ou DELETE


Récupère le nombre de champs (colonnes) dans une requête

  • « sqlsrv_next_result
  • sqlsrv_num_rows »
  • PHP Manual
  • Fonctions SQLSRV
  • Récupère le nombre de champs (colonnes) dans une requête

sqlsrv_num_fields

(No version information available, might only be in Git)

sqlsrv_num_fields — Récupère le nombre de champs (colonnes) dans une requête

Description

mixed sqlsrv_num_fields ( resource $stmt )

Récupère le nombre de champs (colonnes) dans une requête.

Liste de paramètres

stmt

La requête depuis laquelle le nombre de champs est retournée. La fonction sqlsrv_num_fields() peut être appelée sur une requête avant ou après l'exécution de la requête.

Valeurs de retour

Retourne le nombre de champs en cas de succès. Retourne FALSE sinon.

Exemples

Exemple #1 Exemple avec sqlsrv_num_fields()

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
   die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT * FROM Table_1";
$stmt = sqlsrv_query($conn, $sql);
if( $stmt === false) {
   die( print_r( sqlsrv_errors(), true));
}

$numFields = sqlsrv_num_fields( $stmt );

while( sqlsrv_fetch( $stmt )) {
   // Itération sur les champs de chaque ligne.
   for($i = 0; $i < $numFields; $i++) {
      echo sqlsrv_get_field($stmt, $i)." ";
   }
   echo "<br />";
}
?>

Voir aussi

  • sqlsrv_field_metadata() - Récupère les données méta pour les champs d'une requête préparée par la fonction sqlsrv_prepare ou la fonction sqlsrv_query
  • sqlsrv_fetch() - Rend la prochaine ligne d'un jeu de résultats disponible pour lecture
  • sqlsrv_get_field() - Récupère les données du champ depuis la ligne actuellement sélectionnée


Récupère le nombre de lignes d'un jeu de résultats

  • « sqlsrv_num_fields
  • sqlsrv_prepare »
  • PHP Manual
  • Fonctions SQLSRV
  • Récupère le nombre de lignes d'un jeu de résultats

sqlsrv_num_rows

(No version information available, might only be in Git)

sqlsrv_num_rows — Récupère le nombre de lignes d'un jeu de résultats

Description

mixed sqlsrv_num_rows ( resource $stmt )

Récupère le nombre de lignes d'un jeu de résultats. Cette fonction nécessite que la ressource de requête ait été créée avec un curseur statique ou keyset. Pour plus d'informations, reportez-vous aux fonctions sqlsrv_query(), sqlsrv_prepare(), ou au chapitre » Spécifier un type de curseur et sélectionner des lignes dans la documentation de Microsoft SQLSRV.

Liste de paramètres

stmt

La requête depuis laquelle le nombre total de lignes est retourné. La ressource de requête doit avoir été créée avec un curseur statique ou keyset. Pour plus d'informations, reportez-vous aux fonctions sqlsrv_query(), sqlsrv_prepare(), ou au chapitre » Spécifier un type de curseur et sélectionner des lignes dans la documentation de Microsoft SQLSRV.

Valeurs de retour

Retourne le nombre total de lignes récupérées en cas de succès, et FALSE si une erreur survient. Si un curseur précédent (par défaut), ou un curseur dynamique est utilisé, FALSE sera retourné.

Exemples

Exemple #1 Exemple avec sqlsrv_num_rows()

<?php
$server = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $server, $connectionInfo );

$sql = "SELECT * FROM Table_1";
$params = array();
$options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$stmt = sqlsrv_query( $conn, $sql , $params, $options );

$row_count = sqlsrv_num_rows( $stmt );

if ($row_count === false)
   echo "Error in retrieveing row count.";
else
   echo $row_count;
?>

Voir aussi

  • sqlsrv_has_rows() - Indique si la requête spécifiée contient des lignes
  • sqlsrv_rows_affected() - Retourne le nombre de lignes modifiées par la dernière requête de type INSERT, UPDATE, ou DELETE


Prépare une requête pour exécution

  • « sqlsrv_num_rows
  • sqlsrv_query »
  • PHP Manual
  • Fonctions SQLSRV
  • Prépare une requête pour exécution

sqlsrv_prepare

(No version information available, might only be in Git)

sqlsrv_prepare — Prépare une requête pour exécution

Description

mixed sqlsrv_prepare ( resource $conn , string $sql [, array $params [, array $options ]] )

Prépare une requête pour exécution. Cette fonction est idéale pour préparer une requête qui sera exécutée plusieurs fois avec des valeurs de paramètres différents.

Liste de paramètres

conn

Une ressource de connexion retournée par la fonction sqlsrv_connect().

sql

La chaîne qui définit la requête à préparer et à exécuter.

params

Un tableau spécifiant les informations de paramètres lors de l'exécution d'une requête contenant des paramètres. Les éléments du tableau peuvent être n'importe lequel de ceux qui suivent :

  • Une valeur litérale
  • Une variable PHP
  • Un tableau avec la structure suivante : array($value [, $direction [, $phpType [, $sqlType]]])
La table suivante décrit les éléments de la structure du tableau ci-dessus :

Structure du tableau
Elément | Description
$value | Une valeur liétrale, une variable PHP ou une variable PHP passée par référence.
$direction (optional) | Une des constantes SQLSRV suivantes, utilisées pour indiquer la direction du paramètre : SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. La valeur par défaut est SQLSRV_PARAM_IN.
$phpType (optional) | Une constante SQLSRV_PHPTYPE_* qui spécifie le type de données PHP de la valeur retournée.
$sqlType (optional) | Une constante SQLSRV_SQLTYPE_* qui spécifie le type de données du serveur SQL de la valeur d'entrée.
options

Un tableau spécifiant les options de propriétés de la requête. Les clés supportées sont décrites dans le tableau suivant :

Options de la requête
Clé | Valeurs | Description
QueryTimeout | Une valeur entière positive. | Définit le délai maximal d'exécution de la requête, en seconde. Par défaut, le driver attendra indéfiniment les résultats.
SendStreamParamsAtExec | TRUE ou FALSE (par défaut, TRUE) | Configure le driver pour envoyer les données du flux à l'exécution (TRUE), ou envoyer les données du flux par morceaux (FALSE). Par défaut, la valeur est définie à TRUE. Pour plus d'informations, reportez-vous à la fonction sqlsrv_send_stream_data().
Scrollable | SQLSRV_CURSOR_FORWARD, SQLSRV_CURSOR_STATIC, SQLSRV_CURSOR_DYNAMIC, ou SQLSRV_CURSOR_KEYSET | Voir la section sur » la sécification d'un type de curseur et la sélection de lignes de la documentation Microsoft SQLSRV.

Valeurs de retour

Retourne une ressource de requête en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec sqlsrv_prepare()

Cet exemple montre la façon de préparer une requête avec la fonction sqlsrv_prepare() et sa ré-exécution à plusieurs reprises (avec des valeurs de paramètres différents) en utilisant la fonction sqlsrv_execute().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1
        SET OrderQty = ?
        WHERE SalesOrderID = ?";

// Initialise les paramètres et prépare la requête.
// Les variables $qty et $id sont liées à la requête $stmt.
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
    die( print_r( sqlsrv_errors(), true));
}

// Définit les informations SalesOrderDetailID et OrderQty.
// Ce tableau lie l'ordre des IDs avec l'ordre des quantités avec des paires clé=>valeur.
$orders = array( 1=>10, 2=>20, 3=>30);

// Exécute la requête pour chaque ordre.
foreach( $orders as $id => $qty) {
    // En raison du fait que $id et $qty sont liés à $stmt1,
    // leurs valeurs mises à jour sont utilisées lors de chaque exécution
    // de la requête.
    if( sqlsrv_execute( $stmt ) === false ) {
          die( print_r( sqlsrv_errors(), true));
    }
}
?>

Notes

Lorsque vous préparez une requête qui utilisent des variables comme paramètres, les variables sont liées à la requête. Cela signifie que si vous mettez à jour les valeurs de ces variables, la prochaine exécution de la requête prendra en compte ces nouvelles valeurs. Pour les requêtes que vous ne prévoyez exécuter qu'une seule fois, utilisez la fonction sqlsrv_query().

Voir aussi

  • sqlsrv_execute() - Exécute une requête préparée avec la fonction sqlsrv_prepare
  • sqlsrv_query() - Prépare et exécute une requête


Prépare et exécute une requête

  • « sqlsrv_prepare
  • sqlsrv_rollback »
  • PHP Manual
  • Fonctions SQLSRV
  • Prépare et exécute une requête

sqlsrv_query

(No version information available, might only be in Git)

sqlsrv_query — Prépare et exécute une requête

Description

mixed sqlsrv_query ( resource $conn , string $sql [, array $params [, array $options ]] )

Prépare et exécute une requête.

Liste de paramètres

conn

Une ressource de connexion retournée par la fonction sqlsrv_connect().

sql

La chaîne qui définit la requête à préparer et à exécuter.

params

Un tableau spécifiant les paramètres lors de l'exécution d'une requête les autorisant. Les éléments du tableau peuvent être n'importe lequel parmi la liste ci-dessous :

  • Une valeur littérale
  • Une variable PHP
  • Un tableau avec cette structure : array($value [, $direction [, $phpType [, $sqlType]]])
La table suivante décrit les éléments dans la structure du tableau ci-dessus :

Structure du tableau
Élement | Description
$value | Une valeur littérale, une variable PHP ou une variable PHP par référence.
$direction (optional) | Une des constantes SQLSRV suivantes utilisées pour indiquer la direction du paramètre : SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. La valeur par défaut est SQLSRV_PARAM_IN.
$phpType (optional) | Une constante SQLSRV_PHPTYPE_* qui spécifie le type de données PHP de la valeur retournée.
$sqlType (optional) | Une constante SQLSRV_SQLTYPE_* qui spécifie le type de données du serveur SQL pour la valeur en entrée.
options

Un tableau spécifiant les options de la requête. Les clés supportés sont décrites dans le tableau suivant :

Options de requête
Clé | Valeur | Description
QueryTimeout | Une valeur entière positive. | Définit le délai d'exécution maximal de la requête en seconde. Par défaut, le driver attendra indéfiniment les résultats.
SendStreamParamsAtExec | TRUE ou FALSE (par défaut, vaut TRUE) | Configure le driver pour envoyer tous les flux de données à l'exécution (TRUE) ou envoyer les flux de données en morceaux (FALSE). Pour plus d'informations, voir la fonction sqlsrv_send_stream_data().
Scrollable | SQLSRV_CURSOR_FORWARD, SQLSRV_CURSOR_STATIC, SQLSRV_CURSOR_DYNAMIC, ou SQLSRV_CURSOR_KEYSET | Voir le chapitre sur » la spécification d'un type de curseur et la sélection de lignes dans la documentation Microsoft SQLSRV.

Valeurs de retour

Retourne une ressource de requête en cas de succès, et FALSE si une erreur survient.

Exemples

Exemple #1 sqlsrv_query() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "INSERT INTO Table_1 (id, data) VALUES (?, ?)";
$params = array(1, "some data");

$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}
?>

Notes

Pour les requêtes que vous ne prévoyez d'exécuter qu'une seule fois, utilisez la fonction sqlsrv_query(). Si vous souhaitez ré-exécuter une requête avec des valeurs différentes pour ses paramètres, utilisez la combinaison de la fonction sqlsrv_prepare() et de la fonction sqlsrv_execute().

Voir aussi

  • sqlsrv_prepare() - Prépare une requête pour exécution
  • sqlsrv_execute() - Exécute une requête préparée avec la fonction sqlsrv_prepare


Annule une transaction qui a été commencée grâce à la fonction sqlsrv_begin_transaction

  • « sqlsrv_query
  • sqlsrv_rows_affected »
  • PHP Manual
  • Fonctions SQLSRV
  • Annule une transaction qui a été commencée grâce à la fonction sqlsrv_begin_transaction

sqlsrv_rollback

(No version information available, might only be in Git)

sqlsrv_rollback — Annule une transaction qui a été commencée grâce à la fonction sqlsrv_begin_transaction()

Description

bool sqlsrv_rollback ( resource $conn )

Annule une transaction qui a été commencée grâce à la fonction sqlsrv_begin_transaction() et retourne la connexion en mode auto-validation.

Liste de paramètres

conn

La ressource de connexion retournée par un appel à la fonction sqlsrv_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec sqlsrv_rollback()

L'exemple suivant montre la façon d'utiliser la fonction sqlsrv_begin_transaction() avec les fonctions sqlsrv_commit() et sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true ));
}

/* Commence la transaction. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
     die( print_r( sqlsrv_errors(), true ));
}

/* Initialise les valeurs des paramètres. */
$orderId = 1; $qty = 10; $productId = 100;

/* Exécution de la première requête. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
         VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Exécute la seconde requête. */
$sql2 = "UPDATE InventoryTable
         SET Quantity = (Quantity - ?)
         WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* Si les deux requêtes ont été exécutées avec succès,
on valide la transaction */
/* Sinon, on annule la transaction. */
if( $stmt1 && $stmt2 ) {
     sqlsrv_commit( $conn );
     echo "Transaction validée.<br />";
} else {
     sqlsrv_rollback( $conn );
     echo "Transaction annulée.<br />";
}
?>

Voir aussi

  • sqlsrv_begin_transaction() - Commence une transaction
  • sqlsrv_commit() - Valide une transaction commencée avec la fonction sqlsrv_begin_transaction


Retourne le nombre de lignes modifiées par la dernière requête de type INSERT, UPDATE, ou DELETE

  • « sqlsrv_rollback
  • sqlsrv_send_stream_data »
  • PHP Manual
  • Fonctions SQLSRV
  • Retourne le nombre de lignes modifiées par la dernière requête de type INSERT, UPDATE, ou DELETE

sqlsrv_rows_affected

(No version information available, might only be in Git)

sqlsrv_rows_affected — Retourne le nombre de lignes modifiées par la dernière requête de type INSERT, UPDATE, ou DELETE

Description

int sqlsrv_rows_affected ( resource $stmt )

Retourne le nombre de lignes modifiées par la dernière requête de type INSERT, UPDATE, ou DELETE. Pour plus d'informations sur le nombre de lignes retournées par une requête SELECT, reportez-vous à la fonction sqlsrv_num_rows().

Liste de paramètres

stmt

La ressource de requête exécutée.

Valeurs de retour

Retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE, ou DELETE. Si aucune ligne n'est affectée, 0 sera retourné. Si le nombre de lignes affectées ne peut être déterminé, -1 sera retourné. Si une erreur survient, FALSE sera retourné.

Exemples

Exemple #1 Exemple avec sqlsrv_rows_affected()

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1 SET data = ? WHERE id = ?";

$params = array("updated data", 1);

$stmt = sqlsrv_query( $conn, $sql, $params);

$rows_affected = sqlsrv_rows_affected( $stmt);
if( $rows_affected === false) {
     die( print_r( sqlsrv_errors(), true));
} elseif( $rows_affected == -1) {
      echo "Aucune information de disponible.<br />";
} else {
      echo $rows_affected." lignes ont été mises à jour.<br />";
}
?>

Voir aussi

  • sqlsrv_num_rows() - Récupère le nombre de lignes d'un jeu de résultats


Envoie des données depuis le flux vers le serveur

  • « sqlsrv_rows_affected
  • sqlsrv_server_info »
  • PHP Manual
  • Fonctions SQLSRV
  • Envoie des données depuis le flux vers le serveur

sqlsrv_send_stream_data

(No version information available, might only be in Git)

sqlsrv_send_stream_data — Envoie des données depuis le flux vers le serveur

Description

bool sqlsrv_send_stream_data ( resource $stmt )

Envoie des données depuis le flux vers le serveur. Jusqu'à 8 Ko de données sont envoyées à chaque appel.

Liste de paramètres

stmt

Une ressource de requête retournée par la fonction sqlsrv_query() ou par la fonction sqlsrv_execute().

Valeurs de retour

Retourne TRUE s'il y a encore des données à envoyer, et FALSE s'il n'y en a plus.

Exemples

Exemple #1 Exemple avec sqlsrv_send_stream_data()

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1 SET data = ( ?) WHERE id = 100";

// Ouvre les données sous forme de flux et on les places dans le tableau $params.
$data = fopen( "data://text/plain,[ Lengthy content here. ]", "r");
$params = array( &$data);

// Prépare la requête. Utilisation du tableau $options pour désactiver
// le comportement par défaut, qui est d'envoyer toutes les données du flux
// au moment de l'exécution de la requête.
$options = array("SendStreamParamsAtExec"=>0);
$stmt = sqlsrv_prepare( $conn, $sql, $params, $options);

sqlsrv_execute( $stmt);

// Envoi jusqu'à 8 Ko de données au serveur
// à chaque appelle à la fonction sqlsrv_send_stream_data.
$i = 1;
while( sqlsrv_send_stream_data( $stmt)) {
      $i++;
}
echo "$i calls were made.";
?>

Voir aussi

  • sqlsrv_prepare() - Prépare une requête pour exécution
  • sqlsrv_query() - Prépare et exécute une requête


Retourne des informations sur le serveur

  • « sqlsrv_send_stream_data
  • Sybase »
  • PHP Manual
  • Fonctions SQLSRV
  • Retourne des informations sur le serveur

sqlsrv_server_info

(No version information available, might only be in Git)

sqlsrv_server_info — Retourne des informations sur le serveur

Description

array sqlsrv_server_info ( resource $conn )

Retourne des informations sur le serveur.

Liste de paramètres

conn

La ressource de connexion qui connecte le client et le serveur.

Valeurs de retour

Retourne un tableau tel que décrit dans la table suivante :

Tableau retourné
CurrentDatabase | La base de données connectée
SQLServerVersion | La version du serveur SQL
SQLServerName | Le nom du serveur

Exemples

Exemple #1 Exemple avec sqlsrv_server_info()

<?php
$serverName = "serverName\sqlexpress";
$conn = sqlsrv_connect( $serverName);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$server_info = sqlsrv_server_info( $conn);
if( $server_info )
{
    foreach( $server_info as $key => $value) {
       echo $key.": ".$value."<br />";
    }
} else {
      die( print_r( sqlsrv_errors(), true));
}
?>

Voir aussi

  • sqlsrv_client_info() - Retourne les informations sur le client ainsi que sur la connexion spécifiée


Sybase

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Sybase
    • sybase_affected_rows — Retourne le nombre de lignes affectées par la dernière requête Sybase
    • sybase_close — Ferme une connexion Sybase
    • sybase_connect — Ouvre une connexion à un serveur Sybase
    • sybase_data_seek — Déplace le pointeur interne de lignes Sybase
    • sybase_deadlock_retry_count — Configure le nombre de tentatives lors de blocages
    • sybase_fetch_array — Retourne une ligne Sybase sous la forme d'un tableau
    • sybase_fetch_assoc — Lit une ligne de résultat Sybase sous forme de tableau associatif
    • sybase_fetch_field — Lit les informations d'un champ Sybase
    • sybase_fetch_object — Retourne une ligne Sybase sous la forme d'un objet
    • sybase_fetch_row — Retourne une ligne Sybase sous la forme d'un tableau numérique
    • sybase_field_seek — Modifie l'index d'un champ Sybase
    • sybase_free_result — Libère un résultat Sybase de la mémoire
    • sybase_get_last_message — Retourne le dernier message du serveur
    • sybase_min_client_severity — Fixe la sévérité minimale du client Sybase
    • sybase_min_error_severity — Fixe la sévérité minimale du client pour les erreurs
    • sybase_min_message_severity — Fixe la sévérité minimale du client pour les messages
    • sybase_min_server_severity — Fixe la sévérité minimale du client pour le serveur Sybase
    • sybase_num_fields — Retourne le nombre de champs dans un résultat Sybase
    • sybase_num_rows — Retourne le nombre de lignes dans un résultat Sybase
    • sybase_pconnect — Ouvre une connexion persistante à un serveur Sybase
    • sybase_query — Envoie une requête à une base Sybase
    • sybase_result — Lit une valeur dans un résultat
    • sybase_select_db — Sélectionne une base de données Sybase
    • sybase_set_message_handler — Configure le gestionnaire de messages Sybase
    • sybase_unbuffered_query — Envoie une requête à Sybase et ne bloque pas


Introduction

Avertissement

A partir de PHP 7.0.0, l'extension sybase_ct a été supprimée.


Installation

Pour activer le support des bases de données Sybase-DB, vous devez compiler PHP avec l'option --with-sybase[=DIR] . DIR est le dossier d'installation de Sybase et, par défaut, il vaut /home/sybase. Pour activer le support de Sybase-CT, vous devez compiler PHP avec l'option --with-sybase-ct[=DIR] . DIR est le dossier d'installation de Sybase et, par défaut, il vaut /home/sybase.

Note:

Depuis PHP 5.3.0, l'extension Sybase a été remplacée par l'extension sybase_ct et n'est plus maintenue. Pour continuer à utiliser sybase vous devez utiliser l'extension sybase_ct.

A partir de PHP 7.0.0, l'extension sybase_ct a été supprimé.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Sybase

Options de configuration Sybase
Nom | Défaut | Modifiable | Historique
sybase.allow_persistent | "1" | PHP_INI_ALL | PHP_INI_ALL en PHP <= 4.0.2. PHP_INI_SYSTEM en PHP <= 4.0.3.
sybase.max_persistent | "-1" | PHP_INI_ALL | PHP_INI_ALL en PHP <= 4.0.2. PHP_INI_SYSTEM en PHP <= 4.0.3.
sybase.max_links | "-1" | PHP_INI_ALL | PHP_INI_ALL en PHP <= 4.0.2. PHP_INI_SYSTEM en PHP <= 4.0.3.
sybase.interface_file | "/usr/sybase/interfaces" | PHP_INI_SYSTEM |
sybase.min_error_severity | "10" | PHP_INI_ALL |
sybase.min_message_severity | "10" | PHP_INI_ALL |
sybase.compatability_mode | "0" | PHP_INI_ALL |
magic_quotes_sybase | "0" | PHP_INI_ALL | Obsolète en PHP 5.3.0. Supprimé en PHP 5.4.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

sybase.allow_persistent booléen

Activation ou non des connexions persistantes.

sybase.max_persistent entier

Le nombre maximum de connexions Sybase persistantes par processus. -1 signifie illimité.

sybase.max_links entier

Le nombre maximum de connexions Sybase par processus. -1 signifie illimité.

sybase.min_error_severity entier

Le niveau minimal d'erreur à afficher.

sybase.min_message_severity entier

Le niveau minimal de message d'erreur à afficher.

magic_quotes_sybase booléen

Si magic_quotes_sybase est aussi activé, un guillemets simple est échappé avec un guillemet simple au lieu d'un antislash, si magic_quotes_gpc ou magic_quotes_runtime est activé. Cette directive est aussi respectée par les fonctions addslashes() et stripslashes().

Note:

Si la directive magic_quotes_sybase est activée, elle remplacera complètement magic_quotes_gpc. Ce qui fait que même si magic_quotes_gpc retourne TRUE, les guillemets doubles, les antislashs ou les caractères NULL ne seront pas protégés.

Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Sybase-CT

Options de configuration
Nom | Défaut | Modifiable | Historique
sybct.deadlock_retry_count | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

sybct.login_timeout entier

Le nombre maximal de secondes à attendre pour effectuer avec succès une connexion avant d'échouer. Notez que si max_execution_time est dépassé avant que ce nombre de secondes, votre script se terminera avant de pouvoir exécuter une action sur l'échec de connexion. Par défaut, ce nombre vaut une minute.

sybct.timeout entier

Le nombre maximal de secondes à attendre pour effectuer avec succès une requête avant d'échouer. Notez que si max_execution_time est dépassé avant que ce nombre de secondes, votre script se terminera avant de pouvoir exécuter une action sur l'échec de connexion. Par défaut, aucune limite n'est fixé.

sybct.deadlock_retry_count int

Permet de définir le nombre de tentatives de résolution des blocages. La valeur par défaut est 0, et la valeur -1 signifie forever, c'est à dire indéfiniment.

Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.


  • « Types de ressources
  • Fonctions Sybase »
  • PHP Manual
  • Sybase
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions Sybase

Sommaire

  • sybase_affected_rows — Retourne le nombre de lignes affectées par la dernière requête Sybase
  • sybase_close — Ferme une connexion Sybase
  • sybase_connect — Ouvre une connexion à un serveur Sybase
  • sybase_data_seek — Déplace le pointeur interne de lignes Sybase
  • sybase_deadlock_retry_count — Configure le nombre de tentatives lors de blocages
  • sybase_fetch_array — Retourne une ligne Sybase sous la forme d'un tableau
  • sybase_fetch_assoc — Lit une ligne de résultat Sybase sous forme de tableau associatif
  • sybase_fetch_field — Lit les informations d'un champ Sybase
  • sybase_fetch_object — Retourne une ligne Sybase sous la forme d'un objet
  • sybase_fetch_row — Retourne une ligne Sybase sous la forme d'un tableau numérique
  • sybase_field_seek — Modifie l'index d'un champ Sybase
  • sybase_free_result — Libère un résultat Sybase de la mémoire
  • sybase_get_last_message — Retourne le dernier message du serveur
  • sybase_min_client_severity — Fixe la sévérité minimale du client Sybase
  • sybase_min_error_severity — Fixe la sévérité minimale du client pour les erreurs
  • sybase_min_message_severity — Fixe la sévérité minimale du client pour les messages
  • sybase_min_server_severity — Fixe la sévérité minimale du client pour le serveur Sybase
  • sybase_num_fields — Retourne le nombre de champs dans un résultat Sybase
  • sybase_num_rows — Retourne le nombre de lignes dans un résultat Sybase
  • sybase_pconnect — Ouvre une connexion persistante à un serveur Sybase
  • sybase_query — Envoie une requête à une base Sybase
  • sybase_result — Lit une valeur dans un résultat
  • sybase_select_db — Sélectionne une base de données Sybase
  • sybase_set_message_handler — Configure le gestionnaire de messages Sybase
  • sybase_unbuffered_query — Envoie une requête à Sybase et ne bloque pas


Retourne le nombre de lignes affectées par la dernière requête Sybase

  • « Fonctions Sybase
  • sybase_close »
  • PHP Manual
  • Fonctions Sybase
  • Retourne le nombre de lignes affectées par la dernière requête Sybase

sybase_affected_rows

(PHP 4, PHP 5)

sybase_affected_rows — Retourne le nombre de lignes affectées par la dernière requête Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

int sybase_affected_rows ([ resource $link_identifier ] )

sybase_affected_rows() retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE sur le serveur associé à l'identifiant de connexion link_identifier.

Cette commande ne sert à rien sur les requêtes SELECT : uniquement sur des requêtes qui modifient les lignes. Pour connaître le nombre de lignes retournées par un SELECT, utilisez sybase_num_rows().

Liste de paramètres

link_identifier

Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte sera utilisée.

Valeurs de retour

Retourne le nombre de lignes affectées, sous la forme d'un entier.

Exemples

Exemple #1 Requête d'effacement

<?php
/* connexion à la base */
sybase_connect('SYBASE', '', '') or
die("Impossible de se connecter");
sybase_select_db("db");

sybase_query("DELETE FROM sometable WHERE id < 10");
printf("Nombre de lignes effacées : %d\n", sybase_affected_rows());
?>

L'exemple ci-dessus va afficher :

Nombre de lignes effacées : 10

Voir aussi

  • sybase_num_rows() - Retourne le nombre de lignes dans un résultat Sybase


Ferme une connexion Sybase

  • « sybase_affected_rows
  • sybase_connect »
  • PHP Manual
  • Fonctions Sybase
  • Ferme une connexion Sybase

sybase_close

(PHP 4, PHP 5)

sybase_close — Ferme une connexion Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

bool sybase_close ([ resource $link_identifier ] )

sybase_close() termine la connexion avec le serveur Sybase associé à l'identifiant de connexion link_identifier.

Notez qu'il n'est pas utile de fermer les connexions non persistantes, car elles seront terminées à la fin du script.

sybase_close() ne ferme pas les connexions persistantes générées par sybase_pconnect().

Liste de paramètres

link_identifier

Si l'identifiant de connexion n'est pas spécifié, la dernière connexion sera utilisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • sybase_connect() - Ouvre une connexion à un serveur Sybase
  • sybase_pconnect() - Ouvre une connexion persistante à un serveur Sybase


Ouvre une connexion à un serveur Sybase

  • « sybase_close
  • sybase_data_seek »
  • PHP Manual
  • Fonctions Sybase
  • Ouvre une connexion à un serveur Sybase

sybase_connect

(PHP 4, PHP 5)

sybase_connect — Ouvre une connexion à un serveur Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

resource sybase_connect ([ string $servername [, string $username [, string $password [, string $charset [, string $appname [, bool $new = false ]]]]]] )

sybase_connect() établit une connexion à un serveur Sybase.

Si un deuxième appel à sybase_connect() est fait avec les mêmes arguments, une nouvelle connexion ne sera pas établie, mais ce sera l'identifiant de la connexion déjà ouverte qui sera retourné.

La connexion sera fermée dès la fin du script, à moins qu'elle ne soit pas explicitement fermée avec sybase_close().

Liste de paramètres

servername

Le nom de serveur servername doit être valide, défini dans le fichier d'interface.

username

Nom d'utilisateur Sybase

password

Mot de passe associé à l'utilisateur username.

charset

Spécifie le charset pour la connexion

appname

Spécifie un appname pour la connexion Sybase. Cela permet d'établir des connexions distinctes dans le même script, avec la même base de données. Cela peut être pratique quand vous avez démarré une connexion et que vous devez lancer une requête séparée, qui ne peut pas être exécutée dans la transaction courante.

new

Si l'on doit ouvrir une nouvelle connexion ou utiliser l'existante.

Valeurs de retour

Retourne un identifiant de connexion Sybase positif en cas de succès, ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Le paramètre new a été ajouté.

Exemples

Exemple #1 Exemple avec sybase_connect()

<?php
$link = sybase_connect('SYBASE', '', '')
        or die("Impossible de se connecter !");
echo "Connexion établie";
sybase_close($link);
?>

Voir aussi

  • sybase_pconnect() - Ouvre une connexion persistante à un serveur Sybase
  • sybase_close() - Ferme une connexion Sybase


Déplace le pointeur interne de lignes Sybase

  • « sybase_connect
  • sybase_deadlock_retry_count »
  • PHP Manual
  • Fonctions Sybase
  • Déplace le pointeur interne de lignes Sybase

sybase_data_seek

(PHP 4, PHP 5)

sybase_data_seek — Déplace le pointeur interne de lignes Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

bool sybase_data_seek ( resource $result_identifier , int $row_number )

sybase_data_seek() déplace le pointeur interne de lignes du résultat Sybase associé à result_identifier jusqu'à la ligne row_number. Le prochain appel à sybase_fetch_row() sans préciser la ligne, retournera la ligne row_number.

Liste de paramètres

result_identifier

row_number

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • sybase_fetch_row() - Retourne une ligne Sybase sous la forme d'un tableau numérique


Configure le nombre de tentatives lors de blocages

  • « sybase_data_seek
  • sybase_fetch_array »
  • PHP Manual
  • Fonctions Sybase
  • Configure le nombre de tentatives lors de blocages

sybase_deadlock_retry_count

(PHP 4 >= 4.3.0, PHP 5)

sybase_deadlock_retry_count — Configure le nombre de tentatives lors de blocages

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

void sybase_deadlock_retry_count ( int $retry_count )

Permet de configurer à retry_count le nombre d'essais que Sybase va tenter lorsqu'il rencontre un blocage de verrou (deadlocks). Par défaut, tous les blocages sont testés un nombre infini de fois, ou bien jusqu'à ce que le script soit interrompu (par exemple, par la fonction set_time_limit()) ou que la requête réussisse.

Liste de paramètres

retry_count

Valeurs pour le paramètre retry_count
-1 | Essai jusqu'à réussir (par défaut)
0 | Ne pas réessayer
n | Réessaye n fois

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.


Retourne une ligne Sybase sous la forme d'un tableau

  • « sybase_deadlock_retry_count
  • sybase_fetch_assoc »
  • PHP Manual
  • Fonctions Sybase
  • Retourne une ligne Sybase sous la forme d'un tableau

sybase_fetch_array

(PHP 4, PHP 5)

sybase_fetch_array — Retourne une ligne Sybase sous la forme d'un tableau

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

array sybase_fetch_array ( resource $result )

sybase_fetch_array() est une version évoluée de sybase_fetch_row(). En plus d'enregistrer les données dans un tableau à index numérique, cette fonction peut aussi les enregistrer dans un tableau associatif, en utilisant les noms des champs comme clés.

Il est très important de noter que sybase_fetch_array() N'est PAS nettement plus lente que sybase_fetch_row(), tandis qu'elle fournit un confort d'utilisation notable.

Liste de paramètres

result

Valeurs de retour

Retourne un tableau qui contient la ligne demandée, ou FALSE s'il ne reste plus de ligne.

Note:

Lors de sélection de champs avec des noms identiques (par exemple, dans un join), les index associatifs auront un nombre séquentiel ajouté au début. Voir l'exemple pour plus de détails.

Exemples

Exemple #1 Cas des colonnes de noms identiques avec Sybase

<?php

$dbh = sybase_connect('SYBASE', '', '');
$q = sybase_query('SELECT * FROM p, a WHERE p.person_id= a.person_id');
var_dump(sybase_fetch_array($q));
sybase_close($dbh);
?>

L'exemple ci-dessus va produire l'affichage suivant (en supposant que les tables ont toutes les deux des colonnes appelées person_id) :

array(4) {
  [0]=>
  int(1)
  ["person_id"]=>
  int(1)
  [1]=>
  int(1)
  ["person_id1"]=>
  int(1)
}

Voir aussi

  • sybase_fetch_row() - Retourne une ligne Sybase sous la forme d'un tableau numérique
  • sybase_fetch_assoc() - Lit une ligne de résultat Sybase sous forme de tableau associatif
  • sybase_fetch_object() - Retourne une ligne Sybase sous la forme d'un objet


Lit une ligne de résultat Sybase sous forme de tableau associatif

  • « sybase_fetch_array
  • sybase_fetch_field »
  • PHP Manual
  • Fonctions Sybase
  • Lit une ligne de résultat Sybase sous forme de tableau associatif

sybase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assoc — Lit une ligne de résultat Sybase sous forme de tableau associatif

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

array sybase_fetch_assoc ( resource $result )

sybase_fetch_assoc() est une alternative de sybase_fetch_row() qui utilise les noms de colonnes plutôt que des entiers comme index dans le tableau de résultats. Les colonnes de différentes tables ayant le même nom sont retournées sous la forme name, name1, name2, ..., nameN.

Il est important de noter qu'utiliser sybase_fetch_assoc() n'est pas significativement plus lent que sybase_fetch_row(), tout en procurant un niveau de confort accru.

Liste de paramètres

result

Valeurs de retour

Retourne un tableau contenant la ligne lue, ou bien FALSE s'il n'y a plus de lignes.

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Voir aussi

  • sybase_fetch_row() - Retourne une ligne Sybase sous la forme d'un tableau numérique
  • sybase_fetch_array() - Retourne une ligne Sybase sous la forme d'un tableau
  • sybase_fetch_object() - Retourne une ligne Sybase sous la forme d'un objet


Lit les informations d'un champ Sybase

  • « sybase_fetch_assoc
  • sybase_fetch_object »
  • PHP Manual
  • Fonctions Sybase
  • Lit les informations d'un champ Sybase

sybase_fetch_field

(PHP 4, PHP 5)

sybase_fetch_field — Lit les informations d'un champ Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

object sybase_fetch_field ( resource $result [, int $field_offset = -1 ] )

Obtient des informations à propos des champs dans le résultat result.

Liste de paramètres

result

field_offset

Si l'offset du champ n'est pas précisé, le champ suivant est traité.

Valeurs de retour

Retourne un objet contenant les informations du champ.

Les propriétés des objets sont :

  • "name" : nom de la colonne. Si la colonne est un résultat de fonction, le nom de cette fonction devient computed#N, où #N est un numéro de série.
  • "column_source" : la table d'origine de la colonne
  • "max_length" : taille maximale de la colonne
  • "numeric" : 1 si la colonne est de type numérique
  • "type" : type de données de la colonne

Voir aussi

  • sybase_field_seek() - Modifie l'index d'un champ Sybase


Retourne une ligne Sybase sous la forme d'un objet

  • « sybase_fetch_field
  • sybase_fetch_row »
  • PHP Manual
  • Fonctions Sybase
  • Retourne une ligne Sybase sous la forme d'un objet

sybase_fetch_object

(PHP 4, PHP 5)

sybase_fetch_object — Retourne une ligne Sybase sous la forme d'un objet

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

object sybase_fetch_object ( resource $result [, mixed $object ] )

sybase_fetch_object() est similaire à sybase_fetch_array(), avec une différence : c'est un objet qui est retourné à la place d'un tableau.

Au niveau de la vitesse, cette fonction est identique à sybase_fetch_array(), et presque aussi rapide que sybase_fetch_row() (la différence est insignifiante).

Liste de paramètres

result

object

Utilisez le second paramètre object pour spécifier le type d'objet que vous voulez retourner. Si ce paramètre est omis, l'objet résultant sera de classe stdClass.

Valeurs de retour

retourne un objet qui contient la ligne demandée, en cas de succès, et FALSE s'il n'y a plus de ligne.

Exemples

Exemple #1 Exemple avec sybase_fetch_object()

<?php
    class Foo {
        var $foo, $bar, $baz;
    }

    // {...]
    $qrh= sybase_query('SELECT foo, bar, baz FROM example');
    $foo= sybase_fetch_object($qrh, 'Foo');
    $bar= sybase_fetch_object($qrh, new Foo());
    // {...]
?>

Voir aussi

  • sybase_fetch_array() - Retourne une ligne Sybase sous la forme d'un tableau
  • sybase_fetch_row() - Retourne une ligne Sybase sous la forme d'un tableau numérique


Retourne une ligne Sybase sous la forme d'un tableau numérique

  • « sybase_fetch_object
  • sybase_field_seek »
  • PHP Manual
  • Fonctions Sybase
  • Retourne une ligne Sybase sous la forme d'un tableau numérique

sybase_fetch_row

(PHP 4, PHP 5)

sybase_fetch_row — Retourne une ligne Sybase sous la forme d'un tableau numérique

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

array sybase_fetch_row ( resource $result )

sybase_fetch_row() lit une ligne dans le résultat associé à l'identifiant de résultat result.

Les prochains appels à sybase_fetch_row() retourneront la ligne suivante du résultat, ou FALSE, s'il ne reste plus de ligne.

Liste de paramètres

result

Valeurs de retour

Retourne un tableau qui contient la ligne demandée, en cas de succès, et FALSE s'il n'y a plus de ligne. Chaque colonne du résultat est stocké dans un élément du tableau, en commençant à la position 0.

Types de données
PHP | Sybase
string | VARCHAR, TEXT, CHAR, IMAGE, BINARY, VARBINARY, DATETIME
int | NUMERIC (sans précision), DECIMAL (sans précision), INT, BIT, TINYINT, SMALLINT
float | NUMERIC (avec précision), DECIMAL (avec précision), REAL, FLOAT, MONEY
NULL | NULL

Voir aussi

  • sybase_fetch_array() - Retourne une ligne Sybase sous la forme d'un tableau
  • sybase_fetch_assoc() - Lit une ligne de résultat Sybase sous forme de tableau associatif
  • sybase_fetch_object() - Retourne une ligne Sybase sous la forme d'un objet
  • sybase_data_seek() - Déplace le pointeur interne de lignes Sybase
  • sybase_result() - Lit une valeur dans un résultat


Modifie l'index d'un champ Sybase

  • « sybase_fetch_row
  • sybase_free_result »
  • PHP Manual
  • Fonctions Sybase
  • Modifie l'index d'un champ Sybase

sybase_field_seek

(PHP 4, PHP 5)

sybase_field_seek — Modifie l'index d'un champ Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

bool sybase_field_seek ( resource $result , int $field_offset )

sybase_field_seek() modifie l'index d'un champ. Le prochain appel à la fonction sybase_fetch_field() sans préciser l'index du champ retournera ce champ.

Liste de paramètres

result

field_offset

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • sybase_fetch_field() - Lit les informations d'un champ Sybase


Libère un résultat Sybase de la mémoire

  • « sybase_field_seek
  • sybase_get_last_message »
  • PHP Manual
  • Fonctions Sybase
  • Libère un résultat Sybase de la mémoire

sybase_free_result

(PHP 4, PHP 5)

sybase_free_result — Libère un résultat Sybase de la mémoire

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

bool sybase_free_result ( resource $result )

sybase_free_result() n'est vraiment utile que si vous risquez d'utiliser trop de mémoire durant votre script. La mémoire occupée par les résultats est automatiquement libérée à la fin du script. Vous devez utiliser sybase_free_result() avec un identifiant de résultat et la mémoire utilisée par celui-ci sera libérée.

Liste de paramètres

result

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne le dernier message du serveur

  • « sybase_free_result
  • sybase_min_client_severity »
  • PHP Manual
  • Fonctions Sybase
  • Retourne le dernier message du serveur

sybase_get_last_message

(PHP 4, PHP 5)

sybase_get_last_message — Retourne le dernier message du serveur

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

string sybase_get_last_message ( void )

sybase_get_last_message() retourne le dernier message rapporté par le serveur.

Valeurs de retour

Retourne le message, sous la forme d'une chaîne de caractères.

Voir aussi

  • sybase_min_message_severity() - Fixe la sévérité minimale du client pour les messages


Fixe la sévérité minimale du client Sybase

  • « sybase_get_last_message
  • sybase_min_error_severity »
  • PHP Manual
  • Fonctions Sybase
  • Fixe la sévérité minimale du client Sybase

sybase_min_client_severity

(PHP 4, PHP 5)

sybase_min_client_severity — Fixe la sévérité minimale du client Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

void sybase_min_client_severity ( int $severity )

sybase_min_client_severity() fixe la sévérité minimale du client.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Voir aussi

  • sybase_min_server_severity() - Fixe la sévérité minimale du client pour le serveur Sybase


Fixe la sévérité minimale du client pour les erreurs

  • « sybase_min_client_severity
  • sybase_min_message_severity »
  • PHP Manual
  • Fonctions Sybase
  • Fixe la sévérité minimale du client pour les erreurs

sybase_min_error_severity

(PHP 4, PHP 5)

sybase_min_error_severity — Fixe la sévérité minimale du client pour les erreurs

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

void sybase_min_error_severity ( int $severity )

sybase_min_error_severity() fixe la sévérité minimale du client pour les erreurs.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Voir aussi

  • sybase_min_message_severity() - Fixe la sévérité minimale du client pour les messages


Fixe la sévérité minimale du client pour les messages

  • « sybase_min_error_severity
  • sybase_min_server_severity »
  • PHP Manual
  • Fonctions Sybase
  • Fixe la sévérité minimale du client pour les messages

sybase_min_message_severity

(PHP 4, PHP 5)

sybase_min_message_severity — Fixe la sévérité minimale du client pour les messages

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

void sybase_min_message_severity ( int $severity )

sybase_min_message_severity() fixe la sévérité minimale du client pour les messages.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque DB Sybase, et non pas avec la bibliothèque CT.

Voir aussi

  • sybase_min_error_severity() - Fixe la sévérité minimale du client pour les erreurs


Fixe la sévérité minimale du client pour le serveur Sybase

  • « sybase_min_message_severity
  • sybase_num_fields »
  • PHP Manual
  • Fonctions Sybase
  • Fixe la sévérité minimale du client pour le serveur Sybase

sybase_min_server_severity

(PHP 4, PHP 5)

sybase_min_server_severity — Fixe la sévérité minimale du client pour le serveur Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

void sybase_min_server_severity ( int $severity )

sybase_min_server_severity() fixe la sévérité minimale du client pour le serveur.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Voir aussi

  • sybase_min_client_severity() - Fixe la sévérité minimale du client Sybase


Retourne le nombre de champs dans un résultat Sybase

  • « sybase_min_server_severity
  • sybase_num_rows »
  • PHP Manual
  • Fonctions Sybase
  • Retourne le nombre de champs dans un résultat Sybase

sybase_num_fields

(PHP 4, PHP 5)

sybase_num_fields — Retourne le nombre de champs dans un résultat Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

int sybase_num_fields ( resource $result )

sybase_num_fields() retourne le nombre de champs du résultat result.

Liste de paramètres

result

Valeurs de retour

Retourne le nombre de champs, sous la forme d'un entier.

Voir aussi

  • sybase_query() - Envoie une requête à une base Sybase
  • sybase_fetch_field() - Lit les informations d'un champ Sybase
  • sybase_num_rows() - Retourne le nombre de lignes dans un résultat Sybase


Retourne le nombre de lignes dans un résultat Sybase

  • « sybase_num_fields
  • sybase_pconnect »
  • PHP Manual
  • Fonctions Sybase
  • Retourne le nombre de lignes dans un résultat Sybase

sybase_num_rows

(PHP 4, PHP 5)

sybase_num_rows — Retourne le nombre de lignes dans un résultat Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

int sybase_num_rows ( resource $result )

sybase_num_rows() retourne le nombre de lignes du résultat result.

Liste de paramètres

result

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.

Voir aussi

  • sybase_num_fields() - Retourne le nombre de champs dans un résultat Sybase
  • sybase_query() - Envoie une requête à une base Sybase
  • sybase_fetch_row() - Retourne une ligne Sybase sous la forme d'un tableau numérique


Ouvre une connexion persistante à un serveur Sybase

  • « sybase_num_rows
  • sybase_query »
  • PHP Manual
  • Fonctions Sybase
  • Ouvre une connexion persistante à un serveur Sybase

sybase_pconnect

(PHP 4, PHP 5)

sybase_pconnect — Ouvre une connexion persistante à un serveur Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

resource sybase_pconnect ([ string $servername [, string $username [, string $password [, string $charset [, string $appname ]]]]] )

sybase_connect() se comporte comme sybase_connect() avec deux différences majeures.

Premièrement, lors de la connexion, la fonction va chercher une connexion, persistante, déjà ouverte, avec le même hôte, nom de compte et mot de passe. Si une telle connexion est trouvée, un identifiant de cette connexion est retourné, plutôt que d'en ouvrir une nouvelle.

Deuxièmement, la connexion au serveur Sybase ne sera pas terminée lors de la fin du script. Au contraire, le lien sera maintenu pour des connexions ultérieures. sybase_close() ne fermera pas un lien créé par sybase_pconnect().

Ce type de lien est dit 'persistant'.

Liste de paramètres

servername

Doit être un nom de serveur valide, défini dans le fichier 'interfaces'.

username

Le nom d'utilisateur Sybase

password

Le mot de passe, associé avec l'utilisateur username.

charset

Spécifie le jeu de caractères pour la connexion

appname

Spécifie un appname pour la connexion Sybase. Cela permet d'établir des connexions distinctes dans le même script, avec la même base de données. Cela peut être pratique quand vous avez démarré une connexion et que vous devez lancer une requête séparée, qui ne peut pas être exécutée dans la transaction courante.

Valeurs de retour

Retourne un identifiant de connexion persistant Sybase en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • sybase_connect() - Ouvre une connexion à un serveur Sybase


Envoie une requête à une base Sybase

  • « sybase_pconnect
  • sybase_result »
  • PHP Manual
  • Fonctions Sybase
  • Envoie une requête à une base Sybase

sybase_query

(PHP 4, PHP 5)

sybase_query — Envoie une requête à une base Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

mixed sybase_query ( string $query [, resource $link_identifier ] )

sybase_query() envoie une requête à la base de données courante, sur le serveur associé à l'identifiant de connexion.

Liste de paramètres

query

link_identifier

Si l'identifiant de connexion n'est pas précisé, la fonction essaiera d'utiliser la dernière connexion ouverte. Si aucune connexion n'a été ouverte, la fonction va tenter d'ouvrir une connexion avec la fonction sybase_connect().

Valeurs de retour

Retourne un identifiant de résultat positif en cas de succès, FALSE si une erreur survient, ou TRUE si la requête a été effectuée avec succès, mais n'a retourné aucune colonne.

Voir aussi

  • sybase_select_db() - Sélectionne une base de données Sybase
  • sybase_connect() - Ouvre une connexion à un serveur Sybase


Lit une valeur dans un résultat

  • « sybase_query
  • sybase_select_db »
  • PHP Manual
  • Fonctions Sybase
  • Lit une valeur dans un résultat

sybase_result

(PHP 4, PHP 5)

sybase_result — Lit une valeur dans un résultat

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

string sybase_result ( resource $result , int $row , mixed $field )

Retourne le contenu d'une cellule de la ligne et à la position spécifiées depuis le jeu de résultat Sybase.

Lorsque vous travaillez sur des résultats de grande taille, vous devriez utiliser les autres fonctions qui lisent une ligne entière (voir plus loin). Étant donné que ces fonctions lisent une ligne entière, elles sont BEAUCOUP plus rapide que sybase_result(). De plus, l'utilisation d'index numérique est beaucoup plus rapide que les noms des champs, ou les noms des tables et des champs.

Fonctions de substitution, à haute efficacité :
sybase_fetch_row(),
sybase_fetch_array() et
sybase_fetch_object().

Liste de paramètres

result

row

field

Peut être la position du champ, le nom du champ ou la table suivie d'un point, puis du nom du champ (nom_table.nom_champ). Si le nom de la colonne est un alias ('select foo as bar from...'), utilisez l'alias au lieu du nom de la colonne.

Valeurs de retour

sybase_result() retourne le contenu d'une cellule, depuis le jeu de résultat Sybase.


Sélectionne une base de données Sybase

  • « sybase_result
  • sybase_set_message_handler »
  • PHP Manual
  • Fonctions Sybase
  • Sélectionne une base de données Sybase

sybase_select_db

(PHP 4, PHP 5)

sybase_select_db — Sélectionne une base de données Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

bool sybase_select_db ( string $database_name [, resource $link_identifier ] )

sybase_select_db() change la base de données courante et active sur le serveur associé avec l'identifiant de connexion link_identifier.

Tous les prochains appels à sybase_query() seront faits dans la base de données courante et active.

Liste de paramètres

database_name

link_identifier

Si link_identifier n'est pas précisé, le dernier lien ouvert est utilisé. Si aucun lien n'a été ouvert, la fonction va tenter d'en établir un en appelant sybase_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • sybase_connect() - Ouvre une connexion à un serveur Sybase
  • sybase_pconnect() - Ouvre une connexion persistante à un serveur Sybase
  • sybase_query() - Envoie une requête à une base Sybase


Configure le gestionnaire de messages Sybase

  • « sybase_select_db
  • sybase_unbuffered_query »
  • PHP Manual
  • Fonctions Sybase
  • Configure le gestionnaire de messages Sybase

sybase_set_message_handler

(PHP 4 >= 4.3.0, PHP 5)

sybase_set_message_handler — Configure le gestionnaire de messages Sybase

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

bool sybase_set_message_handler ( callable $handler [, resource $link_identifier ] )

sybase_set_message_handler() configure la fonction handler pour qu'il soit le gestionnaire des messages générés par le serveur Sybase. Vous pouvez spécifier le nom d'une fonction globale, ou bien utiliser un tableau pour spécifier un objet et un nom de méthode.

Liste de paramètres

handler

Le gestionnaire attend 5 arguments, dans l'ordre suivant : numéro de message, sévérité, état, numéro de ligne et description. Les 4 premiers paramètres sont des entiers et le dernier est une chaîne de caractères. Si ce gestionnaire retourne la valeur FALSE, PHP retournera un message d'erreur classique.

link_identifier

Si non spécifié, le dernier lien ouvert sera utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec sybase_set_message_handler()

<?php
function msg_handler($msgnumber, $severity, $state, $line, $text) {
  var_dump($msgnumber, $severity, $state, $line, $text);
}

sybase_set_message_handler('msg_handler');
?>

Exemple #2 Exemple avec sybase_set_message_handler()

<?php
class Sybase {
  function handler($msgnumber, $severity, $state, $line, $text) {
    var_dump($msgnumber, $severity, $state, $line, $text);
  }
}

$sybase= new Sybase();
sybase_set_message_handler(array($sybase, 'handler'));
?>

Exemple #3 Exemple avec sybase_set_message_handler()

<?php
// Retournez FALSE si vous voulez indiquer que vous ne savez pas
// traiter ce message. Cette erreur est alors affichée sous la forme
// d'une alerte, comme s'il n'y avait pas de gestionnaire installé.
function msg_handler($msgnumber, $severity, $state, $line, $text) {
  if (257 == $msgnumber) {
    return false;
  }
  var_dump($msgnumber, $severity, $state, $line, $text);
}

sybase_set_message_handler('msg_handler');
?>

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.


Envoie une requête à Sybase et ne bloque pas

  • « sybase_set_message_handler
  • tokyo_tyrant »
  • PHP Manual
  • Fonctions Sybase
  • Envoie une requête à Sybase et ne bloque pas

sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_query — Envoie une requête à Sybase et ne bloque pas

Avertissement

Cette fonction a été supprimée depuis PHP 7.0.0.

Description

resource sybase_unbuffered_query ( string $query , resource $link_identifier [, bool $store_result ] )

sybase_unbuffered_query() envoie la requête query au serveur Sybase actif, représenté par link_identifier. Si link_identifier n'est pas spécifié, la dernière connexion ouverte sera utilisée. Si aucune connexion n'a été ouverte, la fonction essaiera d'établir un lien avec sybase_connect(), et de l'utiliser.

Contrairement à sybase_query(),
sybase_unbuffered_query() lit uniquement la première
ligne lue. sybase_fetch_array() et les fonctions
similaires lisent les lignes nécessaires. sybase_data_seek()
lit jusqu'à la prochaine ligne. Ce comportement fournit des performances
accrues pour les résultats de grande taille.

sybase_num_rows() ne retournera le nombre de lignes correct que si toutes les lignes du résultat ont été lues. Pour Sybase, le nombre de ligne n'est pas connu, et doit être calculé par le programme client.

Note:

Si vous ne lisez pas toutes les lignes du résultat avant d'exécuter une nouvelle requête, PHP va générer une alerte, et annuler toutes les lignes qui restent à lire. Pour éviter cela, utilise la fonction sybase_free_result() qui va annuler les lignes restantes.

Liste de paramètres

query

link_identifier

store_result

Le paramètre optionnel store_result peut valoir FALSE pour indiquer que les lignes ne doivent pas être ramenées en mémoire, afin de réduire la consommation, surtout dans le cas de très grands résultats.

Valeurs de retour

Retourne un identifiant de résultat Sybase en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec sybase_unbuffered_query()

<?php

$dbh = sybase_connect('SYBASE', '', '');
$q = sybase_unbuffered_query('select firstname, lastname from huge_table', $dbh, false);
sybase_data_seek($q, 10000);
$i = 0;

while ($row = sybase_fetch_row($q)) {
    echo $row[0], ' ', $row[1], '<br />';
    if ($i++ > 40000) {
        break;
    }
}

sybase_free_result($q);
sybase_close($dbh);

?>

Notes

Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Voir aussi

  • sybase_query() - Envoie une requête à une base Sybase


tokyo_tyrant

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • TokyoTyrant — La classe TokyoTyrant
    • TokyoTyrant::add — Ajoute une clé numérique
    • TokyoTyrant::connect — Connexion à une base de données
    • TokyoTyrant::connectUri — Connexion à une base de données en utilisant une URI
    • TokyoTyrant::__construct — Construit un nouvel objet TokyoTyrant
    • TokyoTyrant::copy — Copie la base de données
    • TokyoTyrant::ext — Exécute un script distant
    • TokyoTyrant::fwmKeys — Retourne la clé correspondante précédente
    • TokyoTyrant::get — Le but de get
    • TokyoTyrant::getIterator — Récupère un itérateur
    • TokyoTyrant::num — Nombre d'enregistrements contenus dans la base de données
    • TokyoTyrant::out — Supprime des enregistrements
    • TokyoTyrant::put — Insère des valeurs
    • TokyoTyrant::putCat — Concatène un enregistrement
    • TokyoTyrant::putKeep — Enregistre un nouvel enregistrement
    • TokyoTyrant::putNr — Enregistre une valeur
    • TokyoTyrant::putShl — Concatène un enregistrement
    • TokyoTyrant::restore — Restaure la base de données
    • TokyoTyrant::setMaster — Définit le maître de réplication
    • TokyoTyrant::size — Retourne la taille de la valeur
    • TokyoTyrant::stat — Récupère des statistiques
    • TokyoTyrant::sync — Synchronise la base de données
    • TokyoTyrant::tune — Règle les valeurs de connexion
    • TokyoTyrant::vanish — Vide la base de données
  • TokyoTyrantTable — La classe TokyoTyrantTable
    • TokyoTyrantTable::add — Ajoute un enregistrement
    • TokyoTyrantTable::genUid — Génère un identifiant unique
    • TokyoTyrantTable::get — Récupère une ligne
    • TokyoTyrantTable::getIterator — Récupère un itérateur
    • TokyoTyrantTable::getQuery — Récupère un objet de requête
    • TokyoTyrantTable::out — Supprime un enregistement
    • TokyoTyrantTable::put — Enregistre une ligne
    • TokyoTyrantTable::putCat — Concatène une ligne
    • TokyoTyrantTable::putKeep — Enregistre un nouvel enregistrement
    • TokyoTyrantTable::putNr — Enregistre une valeur
    • TokyoTyrantTable::putShl — Concatène un enregistrement
    • TokyoTyrantTable::setIndex — Définit l'index
  • TokyoTyrantQuery — La classe TokyoTyrantQuery
    • TokyoTyrantQuery::addCond — Ajoute une condition à la requête
    • TokyoTyrantQuery::__construct — Construit une nouvelle requête
    • TokyoTyrantQuery::count — Compte les enregistrements
    • TokyoTyrantQuery::current — Retourne l'élément courant
    • TokyoTyrantQuery::hint — Récupère les informations sur une requête
    • TokyoTyrantQuery::key — Retourne la clé courante
    • TokyoTyrantQuery::metaSearch — Récupère des enregistrements avec plusieurs requêtes
    • TokyoTyrantQuery::next — Déplace l'itérateur sur la prochaine entrée
    • TokyoTyrantQuery::out — Supprime des enregistrements en se basant sur une requête
    • TokyoTyrantQuery::rewind — Réinitialise l'itérateur
    • TokyoTyrantQuery::search — Cherche des enregistrements
    • TokyoTyrantQuery::setLimit — Limite les résultats
    • TokyoTyrantQuery::setOrder — Définit l'ordre des résultats
    • TokyoTyrantQuery::valid — Vérifie la validité de l'élément courant
  • TokyoTyrantIterator — La classe TokyoTyrantIterator
    • TokyoTyrantIterator::__construct — Construit un itérateur
    • TokyoTyrantIterator::current — Récupère la valeur courante
    • TokyoTyrantIterator::key — Retourne la clé courante
    • TokyoTyrantIterator::next — Se déplace sur la prochaine clé
    • TokyoTyrantIterator::rewind — Réinitialise l'itérateur
    • TokyoTyrantIterator::valid — Réinitialise l'itérateur
  • TokyoTyrantException — La classe TokyoTyrantException


Introduction

L'extension tokyo_tyrant fournit un gestionnaire aux librairies clientes Tokyo Tyrant. L'extension contient l'API clé-valeur ainsi que l'API table.

"Tokyo Tyrant est un paquet d'interface réseau au DBM appelé Tokyo Cabinet. Bien que ce DBM fournit de hautes performances, vous pouvez avoir des problèmes dans le cas où de multiples processus partagent la même base de données, ou lorsque des processus distants accèdent à la base de données. Ainsi, Tokyo Tyrant a été conçu pour gérer les connexions concurentes ainsi que les connexions distantes à Tokyo Cabinet. Il est composé d'un processus serveur gérant la base de données ainsi qu'une bibliothèque pour les applications clientes." --Documentation Tokyo Tyrant

Tokyo Tyrant est écrit par Mikio Hirabayashi et est sous license GNU Lesser General Public.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Avant d'utiliser cette extension, Tokyo Cabinet et Tokyo Tyrant doivent être installés.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/tokyo_tyrant

Options de configuration

  • --with-tokyo-tyrant[=DIR] DIR est le chemin vers l'installation de Tokyo Tyrant
  • --with-tokyo-cabinet-dir[=DIR] DIR est le chemin vers l'installation de Tokyo Cabinet
  • --disable-tokyo-tyrant-session Désactive le support du gestionnaire de session Tokyo Tyrant

Activation de l'extension

L'extension peut être activée en ajoutant extension=tokyo_tyrant.so au fichier de configuration INI.

Exécution de Tokyo Tyrant pour le gestionnaire de session

ttserver -port 2000 -ext /path/to/expire.lua -extpc expire 30.0 '/tmp/sessions.tct#idx=ts:dec'

Note: Le fichier expire.lua est inclus dans les sources de la distribution de l'extension tokyo_tyrant.

Configuration du gestionnaire de session

  • tokyo_tyrant.session_salt="randomlongstring"
  • session.save_handler=tokyo_tyrant
  • session.save_path="tcp://hostname1:2000,tcp://hostname2:2000"

Note: Il est important de s'assurer que tokyo_tyrant.session_salt est identique sur tous les serveurs.

Comment cela fonctionne-t-il ?

Le gestionnaire de session crée un identifiant de session comme ceci : 8b0e27a823fa4a6cf7246945b82c1d51-a5eadbbed1f2075952900628456bfd6830541629-0-5460

Voici la signification, de gauche à droite :

  • Session id - Identifiant de session
  • Checksum - Somme de contrôle du salt de session, de l'identifiant de session, de l'identifiant du nœud et de la clé primaire
  • Node id - L'identifiant du nœud en relation avec la session
  • Primary key - La clé primaire de la ligne stockant la session

La somme de contrôle contient la somme SHA1 de l'identifiant du nœud, de la clé primaire, de l'identifiant de session ; le salt est connu uniquement côté serveur. Ceci permet de faire correspondre rapidement l'identifiant de session et le nœud ansi que la clé primaire sans avoir besoin de faire des recherches supplémentaires. Lors de la regénération de l'identifiant de session, seules les parties 1 et 2 sont modifiées, le lien avec le nœud et la clé primaire reste constant.

Lors d'un échec du nœud, les configurations INI tokyo_tyrant.allow_failover, tokyo_tyrant.fail_threshold et tokyo_tyrant.health_check_divisor contrôlent le comportement de l'extension. Si l'échec est autorisée, le gestionnaire de session liera la session à un nœud valide et créera une nouvelle session vide.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration tokyo_tyrant
Nom | Défaut | Modifiable | Historique
tokyo_tyrant.default_timeout | 2.0 | PHP_INI_ALL |
tokyo_tyrant.session_salt | NULL | PHP_INI_ALL |
tokyo_tyrant.key_prefix | NULL | PHP_INI_ALL |
tokyo_tyrant.allow_failover | 1 | PHP_INI_ALL |
tokyo_tyrant.fail_threshold | 5 | PHP_INI_ALL |
tokyo_tyrant.health_check_divisor | 1000 | PHP_INI_ALL |
tokyo_tyrant.php_expiration | 0 | PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

tokyo_tyrant.default_timeout integer

Délai d'attente par défaut lors de la connexion à la base de données

tokyo_tyrant.session_salt string

Le secret utilisé pour le salt de l'identifiant de session

tokyo_tyrant.key_prefix string

Préfixe à utiliser pour toutes les chaînes. Le préfixe est transparent pour le développeur, et aide à s'assurer que les clés ne rentrent pas en conflit lorsque plusieurs applications utilisent la même base de données.

tokyo_tyrant.allow_failover integer

Si la session peut échouer lorsqu'un serveur devient indisponible.

tokyo_tyrant.fail_threshold integer

Nombre d'échecs autorisés lors de lecture/écriture/connexion avant de marquer le serveur comme non disponible.

tokyo_tyrant.health_check_divisor integer

Définit le diviseur pour le calcul de la probabilité de santé. Si un serveur n'est plus disponible et que sa probabilité augmente, il sera à nouveau vérifié et dans le cas où sa santé redevient normal, il sera de nouveau ajouté à la liste des serveurs disponibles.

tokyo_tyrant.php_expiration integer

Si l'on doit ou non utiliser le mécanisme d'expiration de session ou déléguer l'expiration au script lua côté serveur.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • tokyo_tyrant
  • Constantes pré-définies

Constantes pré-définies

Les constantes TokyoTyrant


Exemples

Utilisation simple

Exemple #1 Insertion et récupération d'une paire clé-valeur

<?php
$tt = new TokyoTyrant("localhost");
$tt->put("key", "value");
echo $tt->get("key");
?>

L'exemple ci-dessus va afficher :

value


La classe TokyoTyrant

(PECL tokyo_tyrant >= 0.1.0)

Introduction

La classe principale Tokyo Tyrant

Synopsis de la classe

TokyoTyrant {
/* Constantes */
const integer RDBDEF_PORT = 1978 ;
const integer RDBQC_STREQ = 0 ;
const integer RDBQC_STRINC = 1 ;
const integer RDBQC_STRBW = 2 ;
const integer RDBQC_STREW = 3 ;
const integer RDBQC_STRAND = 4 ;
const integer RDBQC_STROR = 5 ;
const integer RDBQC_STROREQ = 6 ;
const integer RDBQC_STRRX = 7 ;
const integer RDBQC_NUMEQ = 8 ;
const integer RDBQC_NUMGT = 9 ;
const integer RDBQC_NUMGE = 10 ;
const integer RDBQC_NUMLT = 11 ;
const integer RDBQC_NUMLE = 12 ;
const integer RDBQC_NUMBT = 13 ;
const integer RDBQC_NUMOREQ = 14 ;
const integer RDBQC_NEGATE = 16777216 ;
const integer RDBQC_NOIDX = 33554432 ;
const integer RDBQO_STRASC = 0 ;
const integer RDBQO_STRDESC = 1 ;
const integer RDBQO_NUMASC = 2 ;
const integer RDBQO_NUMDESC = 3 ;
const integer RDBIT_LEXICAL = 0 ;
const integer RDBIT_DECIMAL = 1 ;
const integer RDBIT_TOKEN = 2 ;
const integer RDBIT_QGRAM = 3 ;
const integer RDBIT_OPT = 9998 ;
const integer RDBIT_VOID = 9999 ;
const integer RDBIT_KEEP = 16777216 ;
const integer RDBQCFTS_PH = 15 ;
const integer RDBQCFTS_AND = 16 ;
const integer RDBQCFTS_OR = 17 ;
const integer RDBQCFTS_EX = 18 ;
const integer RDBXO_LCKREC = 1 ;
const integer RDBXOLCK_GLB = 2 ;
const integer RDBREC_INT = 1 ;
const integer RDBREC_DBL = 2 ;
const integer RDBMS_UNION = 0 ;
const integer RDBMS_ISECT = 1 ;
const integer RDBMS_DIFF = 2 ;
const integer RDBT_RECON = 1 ;
/* Méthodes */
public number add ( string $key , number $increment [, int $type = 0 ] )
public TokyoTyrant connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] )
public TokyoTyrant connectUri ( string $uri )
public __construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )
public TokyoTyrant copy ( string $path )
public string ext ( string $name , int $options , string $key , string $value )
public array fwmKeys ( string $prefix , int $max_recs )
public mixed get ( mixed $keys )
public TokyoTyrantIterator getIterator ( void )
public int num ( void )
public TokyoTyrant out ( mixed $keys )
public TokyoTyrant put ( mixed $keys [, string $value = NULL ] )
public TokyoTyrant putCat ( mixed $keys [, string $value ] )
public TokyoTyrant putKeep ( mixed $keys [, string $value ] )
public TokyoTyrant putNr ( mixed $keys [, string $value = NULL ] )
public mixed putShl ( string $key , string $value , int $width )
public mixed restore ( string $log_dir , int $timestamp [, bool $check_consistency = true ] )
public mixed setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = true ] )
public int size ( string $key )
public array stat ( void )
public mixed sync ( void )
public TokyoTyrant tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] )
public mixed vanish ( void )
}

Constantes pré-définies

Constantes TokyoTyrant

TokyoTyrant::RDBDEF_PORT

Le port par défaut de la base de données Tokyo Tyrant

TokyoTyrant::RDBQC_STREQ

La chaîne est égale à

TokyoTyrant::RDBQC_STRINC

La chaîne est inclue dans

TokyoTyrant::RDBQC_STRBW

La chaîne commence par

TokyoTyrant::RDBQC_STREW

La chaîne termine par

TokyoTyrant::RDBQC_STRAND

La chaîne inclut tous les motifs dans

TokyoTyrant::RDBQC_STROR

La chaîne inclut au moins un motif dans

TokyoTyrant::RDBQC_STROREQ

La chaîne est égale à au moins un motif dans

TokyoTyrant::RDBQC_STRRX

La chaîne correspond à l'expression rationnelle suivante

TokyoTyrant::RDBQC_NUMEQ

Le nombre est égale à

TokyoTyrant::RDBQC_NUMGT

Le nombre est plus grand que

TokyoTyrant::RDBQC_NUMGE

Le nombre est supérieur ou égal à

TokyoTyrant::RDBQC_NUMLT

Le nombre est plus petit que

TokyoTyrant::RDBQC_NUMLE

Le nombre est inférieur ou égal à

TokyoTyrant::RDBQC_NUMBT

Le nombre est entre les 2 motifs suivants

TokyoTyrant::RDBQC_NUMOREQ

Le nombre est égal à au moins un motif dans

TokyoTyrant::RDBQC_NEGATE

Drapeau négatif

TokyoTyrant::RDBQC_NOIDX

Drapeau correspondant à aucun index

TokyoTyrant::RDBQO_STRASC

Chaîne ascendante

TokyoTyrant::RDBQO_STRDESC

Chaîne descendante

TokyoTyrant::RDBQO_NUMASC

Nombre ascendant

TokyoTyrant::RDBQO_NUMDESC

Nombre descendant

TokyoTyrant::RDBIT_LEXICAL

Chaîne lexicale

TokyoTyrant::RDBIT_DECIMAL

Chaîne décimale

TokyoTyrant::RDBIT_TOKEN

Motif d'index inversé (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBIT_QGRAM

Index QGRAM inversé (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBIT_OPT

optimisation

TokyoTyrant::RDBIT_VOID

void

TokyoTyrant::RDBIT_KEEP

Conservation de l'index existant

TokyoTyrant::RDBQCFTS_PH

Recherche full-text avec la phrase suivante (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_AND

Recherche full-text contenant tous les motifs suivants (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_OR

Recherche full-text contenant au moins un motif dans (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_EX

Recherche full-text contenant l'expression composée suivante (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_AND

Recherche méta en union entre des enregistrements (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBQCFTS_OR

Recherche méta en intersection entre des enregistrements (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBQCFTS_EX

Recherche méta en différence entre des enregistrements (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBT_RECON

Si l'on doit se reconnecter en cas d'échec de la connexion. Il est recommandé d'utiliser ce paramètre pour les connexions persistantes

TokyoTyrant::RDBXOLCK_REC

Verrouillage d'enregistrement

TokyoTyrant::RDBXOLCK_GLB

Verrouillage globale

TokyoTyrant::RDBREC_INT

Enregistrement de type entier

TokyoTyrant::RDBREC_DBL

Enregistrement de type double

TokyoTyrant::TTE_SUCCESS

succès

TokyoTyrant::TTE_INVALID

Opération invalide

TokyoTyrant::TTE_NOHOST

L'hôte n'a pas été trouvé

TokyoTyrant::TTE_REFUSED

Connexion refusée

TokyoTyrant::TTE_SEND

Erreur émise

TokyoTyrant::TTE_RECV

Erreur reçue

TokyoTyrant::TTE_KEEP

L'enregistrement existe

TokyoTyrant::TTE_NOREC

Aucun enregistrement trouvé

TokyoTyrant::TTE_MISC

Erreur diverse

Sommaire

  • TokyoTyrant::add — Ajoute une clé numérique
  • TokyoTyrant::connect — Connexion à une base de données
  • TokyoTyrant::connectUri — Connexion à une base de données en utilisant une URI
  • TokyoTyrant::__construct — Construit un nouvel objet TokyoTyrant
  • TokyoTyrant::copy — Copie la base de données
  • TokyoTyrant::ext — Exécute un script distant
  • TokyoTyrant::fwmKeys — Retourne la clé correspondante précédente
  • TokyoTyrant::get — Le but de get
  • TokyoTyrant::getIterator — Récupère un itérateur
  • TokyoTyrant::num — Nombre d'enregistrements contenus dans la base de données
  • TokyoTyrant::out — Supprime des enregistrements
  • TokyoTyrant::put — Insère des valeurs
  • TokyoTyrant::putCat — Concatène un enregistrement
  • TokyoTyrant::putKeep — Enregistre un nouvel enregistrement
  • TokyoTyrant::putNr — Enregistre une valeur
  • TokyoTyrant::putShl — Concatène un enregistrement
  • TokyoTyrant::restore — Restaure la base de données
  • TokyoTyrant::setMaster — Définit le maître de réplication
  • TokyoTyrant::size — Retourne la taille de la valeur
  • TokyoTyrant::stat — Récupère des statistiques
  • TokyoTyrant::sync — Synchronise la base de données
  • TokyoTyrant::tune — Règle les valeurs de connexion
  • TokyoTyrant::vanish — Vide la base de données


Ajoute une clé numérique

  • « TokyoTyrant
  • TokyoTyrant::connect »
  • PHP Manual
  • TokyoTyrant
  • Ajoute une clé numérique

TokyoTyrant::add

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::add — Ajoute une clé numérique

Description

public number TokyoTyrant::add ( string $key , number $increment [, int $type = 0 ] )

Ajoute une valeur entière ou double. La valeur sera incrémentée par le nombre donné et la nouvelle valeur sera retournée. Si la clé n'existe pas, une nouvelle clé sera créée avec comme valeur initiale le paramètre increment.

Liste de paramètres

key

La clé

increment

L'incrément

type

La constante TokyoTyrant::RDBREC_INT ou la constante TokyoTyrant::RDBREC_DBL. Si ce paramètre est omis, le type sera deviné depuis le type du paramètre increment.

Valeurs de retour

Retourne la nouvelle valeur en cas de succès.

Exemples

Exemple #1 Exemple avec TokyoTyrant::add()

<?php
$tt = new TokyoTyrant("localhost", TokyoTyrant::RDBDEF_PORT);
/* Ajoute l'entier 3 à la clé et crée une nouvelle clé */
$tt->add("test", 3);

/* La valeur est convertie en double */
echo $tt->add("test", "3.5", TokyoTyrant::RDBREC_DBL);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

6.5

Voir aussi

  • TokyoTyrant::put() - Insère des valeurs
  • TokyoTyrant::putcat() - Concatène un enregistrement
  • TokyoTyrant::putkeep() - Enregistre un nouvel enregistrement


Connexion à une base de données

  • « TokyoTyrant::add
  • TokyoTyrant::connectUri »
  • PHP Manual
  • TokyoTyrant
  • Connexion à une base de données

TokyoTyrant::connect

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::connect — Connexion à une base de données

Description

public TokyoTyrant TokyoTyrant::connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] )

Connexion à une base de données.

Liste de paramètres

host

Le nom d'hôte

port

Le port. Par défaut, vaut 1978

options

Les options de connexion : délai d'expiration (par défaut, 5.0), la reconnexion (par défaut, TRUE), et la persistance (par défaut, TRUE).

Valeurs de retour

Retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::connect()

<?php
$tt = new TokyoTyrant();
$tt->connect("localhost", TokyoTyrant::RDBDEF_PORT)->put("test", "value");
?>

Voir aussi

  • TokyoTyrant::connectUri() - Connexion à une base de données en utilisant une URI


Connexion à une base de données en utilisant une URI

  • « TokyoTyrant::connect
  • TokyoTyrant::__construct »
  • PHP Manual
  • TokyoTyrant
  • Connexion à une base de données en utilisant une URI

TokyoTyrant::connectUri

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::connectUri — Connexion à une base de données en utilisant une URI

Description

public TokyoTyrant TokyoTyrant::connectUri ( string $uri )

Connexion à une base de données en utilisant une URI.

Liste de paramètres

uri

L'URI vers la base de données. Par exemple, tcp://localhost:1979/

Valeurs de retour

Retourne l'objet courant, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::connectUri()

<?php
$tt = new TokyoTyrant();
$tt->connectUri("tcp://localhost:1978/")->put("test", "hi");
?>

Voir aussi

  • TokyoTyrant::connect() - Connexion à une base de données


Construit un nouvel objet TokyoTyrant

  • « TokyoTyrant::connectUri
  • TokyoTyrant::copy »
  • PHP Manual
  • TokyoTyrant
  • Construit un nouvel objet TokyoTyrant

TokyoTyrant::__construct

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::__construct — Construit un nouvel objet TokyoTyrant

Description

public TokyoTyrant::__construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )

Construit un nouvel objet TokyoTyrant et, optionnellement, se connecte à la base de données.

Liste de paramètres

host

Le nom d'hôte. Par défaut, vaut NULL

port

Le numéro du port. Par défaut, vaut 1978

options

Options de connexion : délai d'expiration (par défaut, 5.0), la reconnexion (par défaut, TRUE) et la persistance (par défaut, TRUE)

Valeurs de retour

Lance une exception TokyoTyrantException si la connexion à la base de données échoue.

Voir aussi

  • TokyoTyrant::connect() - Connexion à une base de données
  • TokyoTyrant::connectUri() - Connexion à une base de données en utilisant une URI


Copie la base de données

  • « TokyoTyrant::__construct
  • TokyoTyrant::ext »
  • PHP Manual
  • TokyoTyrant
  • Copie la base de données

TokyoTyrant::copy

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::copy — Copie la base de données

Description

public TokyoTyrant TokyoTyrant::copy ( string $path )

Réalise une copie de la base de données courante.

Liste de paramètres

path

Chemin vers le dossier où sera copiée la base de données. L'utilisateur exécutant la base de données distante doit avoir un accès en écriture sur ce dossier.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::copy()

<?php
$tt = new TokyoTyrant("localhost", 1978);
$tt->copy("/tmp/foobar.tct");
?>

Voir aussi

  • TokyoTyrant::restore() - Restaure la base de données


Exécute un script distant

  • « TokyoTyrant::copy
  • TokyoTyrant::fwmKeys »
  • PHP Manual
  • TokyoTyrant
  • Exécute un script distant

TokyoTyrant::ext

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::ext — Exécute un script distant

Description

public string TokyoTyrant::ext ( string $name , int $options , string $key , string $value )

Exécute un script distant.

Liste de paramètres

name

Nom de la fonction à exécuter

options

Soit la constante TokyoTyrant::RDBXO_LCKREC pour poser un verrou sur l'enregistrement, soit la constante TokyoTyrant::RDBXO_LCKGLB pour poser un verrou global.

key

La clé à passer à la fonction

value

La valeur à passer à la fonction

Valeurs de retour

Retourne le résultat de l'exécution du script.

Exemples

Exemple #1 Exemple avec TokyoTyrant::ext()

<?php
$tt = new TokyoTyrant("localhost", 1978);
echo $tt->ext("somefunc", TokyoTyrant::RDBXO_LCKREC, "some_key", "some_value");
?>


Retourne la clé correspondante précédente

  • « TokyoTyrant::ext
  • TokyoTyrant::get »
  • PHP Manual
  • TokyoTyrant
  • Retourne la clé correspondante précédente

TokyoTyrant::fwmKeys

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::fwmKeys — Retourne la clé correspondante précédente

Description

public array TokyoTyrant::fwmKeys ( string $prefix , int $max_recs )

Retourne la clé correspondante précédente de la base de données.

Liste de paramètres

prefix

Préfixe de la clé

max_recs

Nombre maximal d'enregistrements à retourner

Valeurs de retour

Retourne un tableau de clés correspondantes. Les valeurs ne sont pas retournées.

Exemples

Exemple #1 Exemple avec TokyoTyrant::fwmKeys()

<?php

$tt = new TokyoTyrant("localhost");

/* Crée 20 clés correspondantes */
for ($i = 0; $i < 20; $i++) {
    $tt->put("key_" . $i, "value_" . $i);
}

/* Crée 20 clés ne correspondants pas */
for ($i = 0; $i < 20; $i++) {
    $tt->put("something_" . $i, "data_" . $i);
}

/* Récupère 5 clés correspondantes */
var_dump($tt->fwmKeys("key_", 5));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(5) {
  [0]=>
  string(5) "key_5"
  [1]=>
  string(6) "key_14"
  [2]=>
  string(5) "key_6"
  [3]=>
  string(6) "key_15"
  [4]=>
  string(5) "key_7"
}


Le but de get

  • « TokyoTyrant::fwmKeys
  • TokyoTyrant::getIterator »
  • PHP Manual
  • TokyoTyrant
  • Le but de get

TokyoTyrant::get

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::get — Le but de get

Description

public mixed TokyoTyrant::get ( mixed $keys )

Cette méthode est utilisée pour retourner une ou plusieurs valeurs. Cette méthode accepte une chaîne de caractères ou un tableau comme valeur.

Liste de paramètres

keys

Une clé ou un tableau de clés

Valeurs de retour

Retourne une chaîne de caractères ou un tableau basé sur les paramètres fournis. Lance une exception TokyoTyrantException si une erreur survient. Si une chaîne est passée, NULL sera retourné si la clé correspondante n'a pu être trouvée. Si un tableau est passé, seules les clés existantes seront retournées. Ce n'est pas une erreur que de passer une clé qui n'existe pas.

Exemples

Exemple #1 Exemple avec TokyoTyrant::get()

<?php
$tt = new TokyoTyrant("localhost", 1978);
$tt->put("key1", "value1");
$tt->put("key2", "value2");
var_dump($tt->get(array("key1", "key2")));
var_dump($tt->get("key1"));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key2"]=>
  string(6) "value2"
}
string(6) "value1"

Voir aussi

  • TokyoTyrant::put() - Insère des valeurs


Récupère un itérateur

  • « TokyoTyrant::get
  • TokyoTyrant::num »
  • PHP Manual
  • TokyoTyrant
  • Récupère un itérateur

TokyoTyrant::getIterator

(No version information available, might only be in Git)

TokyoTyrant::getIterator — Récupère un itérateur

Description

public TokyoTyrantIterator TokyoTyrant::getIterator ( void )

Récupère un itérateur pour parcourir toutes les clés / valeurs de la base de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette méthode retourne un objet TokyoTyrantIterator et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::getIterator()

<?php
$tt = new TokyoTyrant("localhost");
$it = $tt->getIterator();

foreach ($it as $k => $v) {

}
?>

Voir aussi

  • TokyoTyrantTable::getQuery() - Récupère un objet de requête
  • TokyoTyrantTable::getIterator() - Récupère un itérateur


Nombre d'enregistrements contenus dans la base de données

  • « TokyoTyrant::getIterator
  • TokyoTyrant::out »
  • PHP Manual
  • TokyoTyrant
  • Nombre d'enregistrements contenus dans la base de données

TokyoTyrant::num

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::num — Nombre d'enregistrements contenus dans la base de données

Description

public int TokyoTyrant::num ( void )

Retourne le nombre d'enregistrements contenus dans la base de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'enregistrements contenus dans la base de données.

Exemples

Exemple #1 Exemple avec TokyoTyrant::num()

<?php
/* Connexion à la base de données sur le port par défaut */
$tt = new TokyoTyrant("localhost");

/* Récupère le nombre d'enregistrements */
echo $tt->num();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1234

Voir aussi

  • TokyoTyrant::stat() - Récupère des statistiques


Supprime des enregistrements

  • « TokyoTyrant::num
  • TokyoTyrant::put »
  • PHP Manual
  • TokyoTyrant
  • Supprime des enregistrements

TokyoTyrant::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::out — Supprime des enregistrements

Description

public TokyoTyrant TokyoTyrant::out ( mixed $keys )

Supprime un ou plusieurs enregistrements. Cette méthode accepte une chaîne de caractères pour une seule clé, ou un tableau de clés pour plusieurs enregistrements.

Liste de paramètres

keys

Une clé ou un tableau de clés

Valeurs de retour

Cette méthode retourne l'objet courant, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::out()

<?php
/* Connexion à la base de données, sur le port par défaut */
$tt = new TokyoTyrant("localhost");

$tt->put("test1", "value1");
$tt->put("test2", "value2");

$tt->out(array("test1", "test2"));
?>

Voir aussi

  • TokyoTyrant::put() - Insère des valeurs


Insère des valeurs

  • « TokyoTyrant::out
  • TokyoTyrant::putCat »
  • PHP Manual
  • TokyoTyrant
  • Insère des valeurs

TokyoTyrant::put

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::put — Insère des valeurs

Description

public TokyoTyrant TokyoTyrant::put ( mixed $keys [, string $value = NULL ] )

Insère une ou plusieurs paires clé-valeur dans la base de données. Si le paramètre keys est une chaîne de caractères, alors le second paramètre définira la valeur. Le second paramètre est le mandataire si le paramètre keys est une chaîne de caractères. Si la clé existe, la valeur sera écrasée.

Liste de paramètres

keys

Une clé ou un tableau de paires clé-valeur

value

La valeur lorsqu'une seule clé est utilisée

Valeurs de retour

Cette méthode retourne une référence à l'objet courant, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::put()

<?php
/* Connexion à la base de données sur le port par défaut */
$tt = new TokyoTyrant("localhost");

/* Insère une seule paire clé-valeur */
$tt->put("key", "value");

/* Insère plusieurs paires clé-valeur, la nouvelle valeur écrasera l'ancienne */
$tt->put(array("key1" => "value1", "key" => "value2"));

/* Récupère une clé */
echo $tt->get("key");
?>

L'exemple ci-dessus va afficher :

value2

Voir aussi

  • TokyoTyrant::putKeep() - Enregistre un nouvel enregistrement
  • TokyoTyrant::putCat() - Concatène un enregistrement


Concatène un enregistrement

  • « TokyoTyrant::put
  • TokyoTyrant::putKeep »
  • PHP Manual
  • TokyoTyrant
  • Concatène un enregistrement

TokyoTyrant::putCat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putCat — Concatène un enregistrement

Description

public TokyoTyrant TokyoTyrant::putCat ( mixed $keys [, string $value ] )

Ajoute une ou plusieurs valeurs à une clé existante suivant si le paramètre keys est une chaîne de caractères ou un tableau. Le second paramètre est obligatoire si le paramètre keys est une chaîne de caractères. Si l'enregistrement n'existe pas, un nouvel enregistrement sera créé.

Liste de paramètres

keys

Une clé ou un tableau de paires clé-valeur.

value

La valeur, si une seule clé est fournie.

Valeurs de retour

Cette méthode retourne une référence à l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::putCat()

<?php
/* Connexion à la base de données sur le port par défaut */
$tt = new TokyoTyrant("localhost");

/* Crée une nouvelle clé */
$tt->put("key", "la valeur");

/* Concatène une paire clé-valeur */
$tt->putCat("key", " contient plus de données");

/* Affichage de la clé */
echo $tt->get("key");
?>

L'exemple ci-dessus va afficher :

la valeur contient plus de données

Voir aussi

  • TokyoTyrant::put() - Insère des valeurs
  • TokyoTyrant::putKeep() - Enregistre un nouvel enregistrement


Enregistre un nouvel enregistrement

  • « TokyoTyrant::putCat
  • TokyoTyrant::putNr »
  • PHP Manual
  • TokyoTyrant
  • Enregistre un nouvel enregistrement

TokyoTyrant::putKeep

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putKeep — Enregistre un nouvel enregistrement

Description

public TokyoTyrant TokyoTyrant::putKeep ( mixed $keys [, string $value ] )

Enregistre une ou plusieurs paires clé-valeur dans la base de données. Si le paramètre keys est une chaîne de caractères, alors le second paramètre définit la valeur. Le second paramètre n'est obligatoire que si le paramètre keys est une chaîne de caractères. Si la clé existe déjà, la méthode lancera une exception indiquant que l'enregistrement existe déjà.

Liste de paramètres

keys

Une clé ou un tableau de paires clé-valeur.

value

La valeur sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette méthode retourne une référence à l'objet courant, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec tokyotyrant::putKeep()

<?php
/* Connexion à la base de données sur le port par défaut */
$tt = new TokyoTyrant("localhost");

/* Crée une nouvelle clé */
$tt->put("key", "valeur");

try {
    $tt->putKeep("key", "new value");
} catch (TokyoTyrantException $e) {
    if ($e->getCode() === TokyoTyrant::TTE_KEEP) {
        echo "Enregistrement existant ! Aucune modification\n";
    } else {
        echo "Erreur : " , $e->getMessage() , "\n";
    }
}
echo $tt->get("key");
?>

L'exemple ci-dessus va afficher :

Enregistrement existant ! Aucune modification
valeur

Voir aussi

  • TokyoTyrant::put() - Insère des valeurs
  • TokyoTyrant::putCat() - Concatène un enregistrement


Enregistre une valeur

  • « TokyoTyrant::putKeep
  • TokyoTyrant::putShl »
  • PHP Manual
  • TokyoTyrant
  • Enregistre une valeur

TokyoTyrant::putNr

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putNr — Enregistre une valeur

Description

public TokyoTyrant TokyoTyrant::putNr ( mixed $keys [, string $value = NULL ] )

Enregistre une ou plusieurs paires clé-valeur dans la base de données. Si le paramètre keys est une chaîne de caractères, le second paramètre définira la valeur. Le second paramètre n'est obligatoire que si le paramètre keys est une chaîne de caractères. Cette méthode n'attend pas la réponse du serveur.

Liste de paramètres

keys

Une clé ou un tableau de paires clé-valeur.

value

La valeur si une seule clé est fournie

Valeurs de retour

Cette méthode retourne une référence à l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::putNr()

<?php
/* Connexion à la base de données sur le port par défaut */
$tt = new TokyoTyrant("localhost");

/* Enregistre une paire clé-valeur */
$tt->putNr("key", "value");

/* Enregistre plusieurs paires clé-valeur */
$tt->putNr(array("key1" => "value1", "key2" => "value2"));

/* Récupération d'une clé */
echo $tt->get("key1");
?>

L'exemple ci-dessus va afficher :

value1

Voir aussi

  • TokyoTyrant::putNr()
  • TokyoTyrant::putKeep() - Enregistre un nouvel enregistrement
  • TokyoTyrant::putCat() - Concatène un enregistrement


Concatène un enregistrement

  • « TokyoTyrant::putNr
  • TokyoTyrant::restore »
  • PHP Manual
  • TokyoTyrant
  • Concatène un enregistrement

TokyoTyrant::putShl

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putShl — Concatène un enregistrement

Description

public mixed TokyoTyrant::putShl ( string $key , string $value , int $width )

Concatène un enregistrement et se repositionne sur la gauche.

Liste de paramètres

key

Une clé

value

La valeur à concaténer

width

La taille de l'enregistrement

Valeurs de retour

Cette méthode retourne une référence à l'objet courant, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::putShl()

<?php
/* Connexion à la base de données sur le port par défaut */
$tt = new TokyoTyrant("localhost");

/* Crée une nouvelle clé */
$tt->put("key", "just a long piece of data");

/* Concatène et se repositionne sur la gauche */
$tt->putShl("key", " and string", 15);

/* Affiche la clé */
echo $tt->get("key");
?>

L'exemple ci-dessus va afficher :

data and string

Voir aussi

  • TokyoTyrant::put() - Insère des valeurs
  • TokyoTyrant::putKeep() - Enregistre un nouvel enregistrement
  • TokyoTyrant::putCat() - Concatène un enregistrement


Restaure la base de données

  • « TokyoTyrant::putShl
  • TokyoTyrant::setMaster »
  • PHP Manual
  • TokyoTyrant
  • Restaure la base de données

TokyoTyrant::restore

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::restore — Restaure la base de données

Description

public mixed TokyoTyrant::restore ( string $log_dir , int $timestamp [, bool $check_consistency = true ] )

Restaure la base de données à partir d'un fichier log.

Avertissement

Cette méthode n'est pas supportée sur les plateformes 32 bits.

Liste de paramètres

log_dir

Dossier dans lequel se trouve le fichier log

timestamp

Timestamp de départ, en microsecondes

check_consistency

Si la consistance doit être vérifiée. Par défaut, vaut TRUE.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.


Définit le maître de réplication

  • « TokyoTyrant::restore
  • TokyoTyrant::size »
  • PHP Manual
  • TokyoTyrant
  • Définit le maître de réplication

TokyoTyrant::setMaster

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::setMaster — Définit le maître de réplication

Description

public mixed TokyoTyrant::setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = true ] )

Définit le maître de réplication de la base de données.

Avertissement

Cette méthode n'est pas supportée sur les plateformes 32 bits.

Liste de paramètres

host

Nom d'hôte du maître de réplication. Si vaut NULL, la réplication est désactivée.

port

Le port du maître de réplication.

timestamp

Timestamp de départ, en microsecondes.

check_consistency

Si la consistance doit être vérifiée.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::setMaster()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrant("tokyotyrant.example.com");

/* Désactive la réplication */
$tt->setMaster(NULL, 0, 0);
?>

Voir aussi

  • Classname::Method()


Retourne la taille de la valeur

  • « TokyoTyrant::setMaster
  • TokyoTyrant::stat »
  • PHP Manual
  • TokyoTyrant
  • Retourne la taille de la valeur

TokyoTyrant::size

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::size — Retourne la taille de la valeur

Description

public int TokyoTyrant::size ( string $key )

Retourne la taille d'une valeur.

Liste de paramètres

key

La clé correspondant à la valeur à vérifier.

Valeurs de retour

Retourne la taille de la valeur ou lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::size()

<?php
$tt = new TokyoTyrant("localhost");

$tt->put("test_key", "12345");

echo $tt->size("test_key");
?>

L'exemple ci-dessus va afficher :

5


Récupère des statistiques

  • « TokyoTyrant::size
  • TokyoTyrant::sync »
  • PHP Manual
  • TokyoTyrant
  • Récupère des statistiques

TokyoTyrant::stat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::stat — Récupère des statistiques

Description

public array TokyoTyrant::stat ( void )

Récupère des statistiques de la base de données distante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau de paires clé-valeur représentant les statistiques.

Exemples

Exemple #1 Exemple avec TokyoTyrant::stat()

<?php
$tt = new TokyoTyrant("localhost");

var_dump($tt->stat());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(19) {
  ["version"]=>
  string(6) "1.1.28"
  ["libver"]=>
  string(3) "311"
  ["protver"]=>
  string(4) "0.91"
  ["os"]=>
  string(5) "Linux"
  ["time"]=>
  string(17) "1247358357.665630"
  ["pid"]=>
  string(5) "14348"
  ["sid"]=>
  string(8) "59025947"
  ["type"]=>
  string(9) "on-memory"
  ["path"]=>
  string(1) "*"
  ["rnum"]=>
  string(1) "4"
  ["size"]=>
  string(6) "262856"
  ["bigend"]=>
  string(1) "0"
  ["fd"]=>
  string(1) "5"
  ["loadavg"]=>
  string(8) "0.000000"
  ["memsize"]=>
  string(8) "77328384"
  ["memrss"]=>
  string(7) "1183744"
  ["ru_real"]=>
  string(13) "162776.042152"
  ["ru_user"]=>
  string(8) "0.476029"
  ["ru_sys"]=>
  string(8) "8.652540"
}

Voir aussi

  • Classname::Method()


Synchronise la base de données

  • « TokyoTyrant::stat
  • TokyoTyrant::tune »
  • PHP Manual
  • TokyoTyrant
  • Synchronise la base de données

TokyoTyrant::sync

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::sync — Synchronise la base de données

Description

public mixed TokyoTyrant::sync ( void )

Synchronise la base de données sur le périphérique physique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.


Règle les valeurs de connexion

  • « TokyoTyrant::sync
  • TokyoTyrant::vanish »
  • PHP Manual
  • TokyoTyrant
  • Règle les valeurs de connexion

TokyoTyrant::tune

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrant::tune — Règle les valeurs de connexion

Description

public TokyoTyrant TokyoTyrant::tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] )

Règle les valeurs de connexion à la base de données.

Liste de paramètres

timeout

La valeur du délai d'expiration. Par défaut, vaut 5.0.

options

Masque d'options à régler. Peut être soit 0, soit la constante TokyoTyrant::RDBT_RECON. Il est recommandé de ne pas modifier ce second paramètre.

Valeurs de retour

Cette méthode retourne une référence à l'objet courant, et lance une exception TokyoTyrantException si une erreur survient.


Vide la base de données

  • « TokyoTyrant::tune
  • TokyoTyrantTable »
  • PHP Manual
  • TokyoTyrant
  • Vide la base de données

TokyoTyrant::vanish

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::vanish — Vide la base de données

Description

public mixed TokyoTyrant::vanish ( void )

Vide la base de données distante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrant::vanish()

<?php
$tt = new TokyoTyrant("localhost");
$tt->vanish();
?>

Voir aussi

  • TokyoTyrant::out() - Supprime des enregistrements


La classe TokyoTyrantTable

(PECL tokyo_tyrant >= 0.1.0)

Introduction

Fournit une API aux tables de la base de données. Une table de base de données peut être créée en utilisant la commande suivante : ttserver -port 1979 /tmp/tt_table.tct. Avec Tokyo Tyrant, l'API de la table est un schéma de base de données qui peut stocker arbitrairement plusieurs paires clé-valeur sous une seule clé primaire.

Synopsis de la classe

TokyoTyrantTable extends TokyoTyrant {
/* Méthodes */
public void add ( string $key , mixed $increment [, string $type ] )
public int genUid ( void )
public array get ( mixed $keys )
public TokyoTyrantIterator getIterator ( void )
public TokyoTyrantQuery getQuery ( void )
public void out ( mixed $keys )
public int put ( string $key , array $columns )
public void putCat ( string $key , array $columns )
public void putKeep ( string $key , array $columns )
public void putNr ( mixed $keys [, string $value ] )
public void putShl ( string $key , string $value , int $width )
public mixed setIndex ( string $column , int $type )
/* Méthodes héritées */
public number TokyoTyrant::add ( string $key , number $increment [, int $type = 0 ] )
public TokyoTyrant TokyoTyrant::connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] )
public TokyoTyrant TokyoTyrant::connectUri ( string $uri )
public TokyoTyrant::__construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )
public TokyoTyrant TokyoTyrant::copy ( string $path )
public string TokyoTyrant::ext ( string $name , int $options , string $key , string $value )
public array TokyoTyrant::fwmKeys ( string $prefix , int $max_recs )
public mixed TokyoTyrant::get ( mixed $keys )
public TokyoTyrantIterator TokyoTyrant::getIterator ( void )
public int TokyoTyrant::num ( void )
public TokyoTyrant TokyoTyrant::out ( mixed $keys )
public TokyoTyrant TokyoTyrant::put ( mixed $keys [, string $value = NULL ] )
public TokyoTyrant TokyoTyrant::putCat ( mixed $keys [, string $value ] )
public TokyoTyrant TokyoTyrant::putKeep ( mixed $keys [, string $value ] )
public TokyoTyrant TokyoTyrant::putNr ( mixed $keys [, string $value = NULL ] )
public mixed TokyoTyrant::putShl ( string $key , string $value , int $width )
public mixed TokyoTyrant::restore ( string $log_dir , int $timestamp [, bool $check_consistency = true ] )
public mixed TokyoTyrant::setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = true ] )
public int TokyoTyrant::size ( string $key )
public array TokyoTyrant::stat ( void )
public mixed TokyoTyrant::sync ( void )
public TokyoTyrant TokyoTyrant::tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] )
public mixed TokyoTyrant::vanish ( void )
}

Sommaire

  • TokyoTyrantTable::add — Ajoute un enregistrement
  • TokyoTyrantTable::genUid — Génère un identifiant unique
  • TokyoTyrantTable::get — Récupère une ligne
  • TokyoTyrantTable::getIterator — Récupère un itérateur
  • TokyoTyrantTable::getQuery — Récupère un objet de requête
  • TokyoTyrantTable::out — Supprime un enregistement
  • TokyoTyrantTable::put — Enregistre une ligne
  • TokyoTyrantTable::putCat — Concatène une ligne
  • TokyoTyrantTable::putKeep — Enregistre un nouvel enregistrement
  • TokyoTyrantTable::putNr — Enregistre une valeur
  • TokyoTyrantTable::putShl — Concatène un enregistrement
  • TokyoTyrantTable::setIndex — Définit l'index


Ajoute un enregistrement

  • « TokyoTyrantTable
  • TokyoTyrantTable::genUid »
  • PHP Manual
  • TokyoTyrantTable
  • Ajoute un enregistrement

TokyoTyrantTable::add

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::add — Ajoute un enregistrement

Description

public void TokyoTyrantTable::add ( string $key , mixed $increment [, string $type ] )

Cette méthode n'est pas supportée avec les bases de données table.

Liste de paramètres

key

La clé.

increment

L'incrément.

type

Soit la constante TokyoTyrant::RDB_RECINT, soit la constante TokyoTyrant::RDB_RECDBL. Si ce paramètre est omis, le type sera deviné depuis le type du paramètre increment.

Valeurs de retour

Cette méthode lance une exception TokyoTyrantException si elle est utilisée via cette classe.

Voir aussi

  • TokyoTyrant::add() - Ajoute une clé numérique


Génère un identifiant unique

  • « TokyoTyrantTable::add
  • TokyoTyrantTable::get »
  • PHP Manual
  • TokyoTyrantTable
  • Génère un identifiant unique

TokyoTyrantTable::genUid

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::genUid — Génère un identifiant unique

Description

public int TokyoTyrantTable::genUid ( void )

Génère un identifiant unique dans la base de données. Dans celle-ci, les lignes sont référencées en utilisant une clé primaire numérique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un identifiant unique et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::genUid()

<?php
$tt = new TokyoTyrantTable("localhost", 1122);

echo $tt->genUid();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

4

Voir aussi

  • TokyoTyrantTable::put() - Enregistre une ligne


Récupère une ligne

  • « TokyoTyrantTable::genUid
  • TokyoTyrantTable::getIterator »
  • PHP Manual
  • TokyoTyrantTable
  • Récupère une ligne

TokyoTyrantTable::get

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::get — Récupère une ligne

Description

public array TokyoTyrantTable::get ( mixed $keys )

Récupère une ligne depuis la base de données. Le paramètre keys est un entier représentant la clé primaire pour une ligne ou un tableau d'entiers pour plusieurs lignes.

Liste de paramètres

keys

La clé primaire, soit une chaîne de caractères, soit un entier.

Valeurs de retour

Retourne la ligne, sous la forme d'un tableau.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::get()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passage de la valeur null pour générer un nouvel identifiant unique */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Récupère la ligne précédemment insérée */
var_dump($tt->get($index));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Notes

Note:

Depuis la version 0.3.0, cette méthode accepte un tableau comme paramètre. Notez que lors de la récupération de plusieurs lignes, les données binaires ne seront pas préservées.

Voir aussi

  • TokyoTyrantTable::put() - Enregistre une ligne


Récupère un itérateur

  • « TokyoTyrantTable::get
  • TokyoTyrantTable::getQuery »
  • PHP Manual
  • TokyoTyrantTable
  • Récupère un itérateur

TokyoTyrantTable::getIterator

(No version information available, might only be in Git)

TokyoTyrantTable::getIterator — Récupère un itérateur

Description

public TokyoTyrantIterator TokyoTyrantTable::getIterator ( void )

Récupère un itérateur pour parcourir toutes les clés/valeurs d'une base de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette méthode retourne un objet TokyoTyrantIterator et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::getIterator()

<?php
$tt = new TokyoTyrantTable("localhost");
$it = $tt->getIterator();

foreach ($it as $k => $v) {
  var_dump($k, $v);
}
?>

Voir aussi

  • TokyoTyrantTable::getQuery() - Récupère un objet de requête
  • TokyoTyrant::getIterator() - Récupère un itérateur


Récupère un objet de requête

  • « TokyoTyrantTable::getIterator
  • TokyoTyrantTable::out »
  • PHP Manual
  • TokyoTyrantTable
  • Récupère un objet de requête

TokyoTyrantTable::getQuery

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::getQuery — Récupère un objet de requête

Description

public TokyoTyrantQuery TokyoTyrantTable::getQuery ( void )

Récupère un objet de requête à exécuter sur la base de données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet TokyoTyrantQuery en cas de succès, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::getQuery()

<?php
/* Connexion à la base de données */
$table = new TokyoTyrantTable("localhost", 1979);

/* Insertion de quelques lignes */
$table->put(null, array("column1" => "some data", "column2" => "more data"));
$table->put(null, array("something" => "value", "data" => "good data"));

/* Récupère l'objet de requête */
$query = $table->getQuery();

/* Ajoute une condition de requête */
$query->addCond('data', TokyoTyrant::RDBQC_STREQ, 'good data');

/* Récupère les lignes correspondantes */
var_dump($query->search());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [11]=>
  array(2) {
    ["something"]=>
    string(5) "value"
    ["data"]=>
    string(9) "good data"
  }
}

Voir aussi

  • TokyoTyrantQuery::search() - Cherche des enregistrements
  • TokyoTyrantQuery::out() - Supprime des enregistrements en se basant sur une requête


Supprime un enregistement

  • « TokyoTyrantTable::getQuery
  • TokyoTyrantTable::put »
  • PHP Manual
  • TokyoTyrantTable
  • Supprime un enregistement

TokyoTyrantTable::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::out — Supprime un enregistement

Description

public void TokyoTyrantTable::out ( mixed $keys )

Supprime un ou plusieurs enregistrements de la base de données.

Liste de paramètres

keys

Une clé ou un tableau de clés

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::out()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passage de la valeur null pour générer un nouvel identifiant unique */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Supprime la ligne */
$tt->out($index);
?>

Voir aussi

  • TokyoTyrantTable::put() - Enregistre une ligne


Enregistre une ligne

  • « TokyoTyrantTable::out
  • TokyoTyrantTable::putCat »
  • PHP Manual
  • TokyoTyrantTable
  • Enregistre une ligne

TokyoTyrantTable::put

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::put — Enregistre une ligne

Description

public int TokyoTyrantTable::put ( string $key , array $columns )

Enregistre une nouvelle ligne dans la base de données. Le paramètre key est la clé primaire de la ligne, et le fait d'y passer la valeur NULL génèrera un nouvel identifiant unique. Le paramètre value est un tableau contenant les données de la ligne, qui sont habituellement des paires clé/valeur.

Liste de paramètres

key

La clé primaire de la ligne

columns

Le contenu de la ligne

Valeurs de retour

Retourne la clé primaire en cas de succès, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::put()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passage de la valeur null pour générer un nouvel identifiant unique */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Récupère la ligne précédemment insérée */
var_dump($tt->get($index));

/* Modification d'une ligne existante */
$tt->put($index, array("column1" => "other data", "column2" => "better data"));

/* Récupère la ligne précédante */
var_dump($tt->get($index));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
array(2) {
  ["column1"]=>
  string(10) "other data"
  ["column2"]=>
  string(11) "better data"
}

Voir aussi

  • TokyoTyrantTable::get() - Récupère une ligne


Concatène une ligne

  • « TokyoTyrantTable::put
  • TokyoTyrantTable::putKeep »
  • PHP Manual
  • TokyoTyrantTable
  • Concatène une ligne

TokyoTyrantTable::putCat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putCat — Concatène une ligne

Description

public void TokyoTyrantTable::putCat ( string $key , array $columns )

Cette méthode peut être utilisée pour ajouter de nouvelles colonnes à des enregistrements existantes. Les clés existantes ne seront pas modifiées mais les nouvelles colonnes seront ajoutées à la ligne. Le fait de passer la valeur NULL comme clé génèrera une nouvelle ligne.

Liste de paramètres

key

La clé primaire de la ligne, ou NULL.

columns

Tableau contenant les données des lignes

Valeurs de retour

Retourne la clé primaire et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::putCat()

<?php
/* Connexion à une base de données */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passage de la valeur null pour générer un nouvel identifiant unique */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Récupère la ligne précédente */
var_dump($tt->get($index));

/* Modification de la ligne existante */
$tt->putcat($index, array("column1" => "something new", "new_column" => "other data"));

/* Récupération de la ligne précédente */
var_dump($tt->get($index));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
array(3) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
  ["new_column"]=>
  string(10) "other data"
}

Voir aussi

  • TokyoTyrantTable::put() - Enregistre une ligne


Enregistre un nouvel enregistrement

  • « TokyoTyrantTable::putCat
  • TokyoTyrantTable::putNr »
  • PHP Manual
  • TokyoTyrantTable
  • Enregistre un nouvel enregistrement

TokyoTyrantTable::putKeep

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putKeep — Enregistre un nouvel enregistrement

Description

public void TokyoTyrantTable::putKeep ( string $key , array $columns )

Enregistre un nouvel enregistrement dans la base de données. Si la clé existe déjà, la méthode lancera une exception indiquant qu'un enregistrement référencé sous cette clé existe déjà dans la base de données.

Liste de paramètres

key

La clé primaire de la ligne, ou NULL.

columns

Tableau contenant les données de la ligne.

Valeurs de retour

Retourne la clé primaire et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantTable::putKeep()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passage de la valeur null pour générer un nouvel identifiant unique */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Récupère la ligne précédente */
var_dump($tt->get($index));

try {
    $tt->putKeep($index, array("column1" => "something new", "new_column" => "other data"));
} catch (TokyoTyrantException $e) {
    if ($e->getCode() === TokyoTyrant::TTE_KEEP) {
        echo "Existing record! Not modified\n";
    } else {
        echo "Error: " , $e->getMessage() , "\n";
    }
}

/* Récupère la ligne précédente */
var_dump($tt->get($index));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
Existing record! Not modified
array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Voir aussi

  • TokyoTyrantTable::put() - Enregistre une ligne


Enregistre une valeur

  • « TokyoTyrantTable::putKeep
  • TokyoTyrantTable::putShl »
  • PHP Manual
  • TokyoTyrantTable
  • Enregistre une valeur

TokyoTyrantTable::putNr

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putNr — Enregistre une valeur

Description

public void TokyoTyrantTable::putNr ( mixed $keys [, string $value ] )

Cette méthode n'est pas supportée sur ce type de base de données. L'appel à cette méthode sur la classe TokyoTyrantTable sera considérée comme une erreur, et une exception TokyoTyrantException sera lancée.

Liste de paramètres

keys

Une clé ou un tableau de paires clé/valeur

value

La valeur si une seule clé est utilisée

Valeurs de retour

Cette méthode n'est pas supportée sur ce type de base de données. L'appel à cette méthode sur la classe TokyoTyrantTable sera considérée comme une erreur, et une exception TokyoTyrantException sera lancée.

Voir aussi

  • TokyoTyrant::putNr() - Enregistre une valeur
  • TokyoTyrant::putKeep() - Enregistre un nouvel enregistrement
  • TokyoTyrant::putCat() - Concatène un enregistrement


Concatène un enregistrement

  • « TokyoTyrantTable::putNr
  • TokyoTyrantTable::setIndex »
  • PHP Manual
  • TokyoTyrantTable
  • Concatène un enregistrement

TokyoTyrantTable::putShl

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putShl — Concatène un enregistrement

Description

public void TokyoTyrantTable::putShl ( string $key , string $value , int $width )

Cette méthode n'est pas supportée sur ce type de base de données. L'appel à cette méthode via la classe TokyoTyrantTable est considérée comme une erreur et une exception TokyoTyrantException sera émise.

Liste de paramètres

key

La clé

value

La valeur à concaténer

width

La taille de l'enregistrement

Valeurs de retour

Cette méthode n'est pas supportée sur ce type de base de données.

Voir aussi

  • TokyoTyrant::put() - Insère des valeurs
  • TokyoTyrant::putKeep() - Enregistre un nouvel enregistrement
  • TokyoTyrant::putCat() - Concatène un enregistrement
  • TokyoTyrantTable::put() - Enregistre une ligne
  • TokyoTyrantTable::putKeep() - Enregistre un nouvel enregistrement
  • TokyoTyrantTable::putCat() - Concatène une ligne


Définit l'index

  • « TokyoTyrantTable::putShl
  • TokyoTyrantQuery »
  • PHP Manual
  • TokyoTyrantTable
  • Définit l'index

TokyoTyrantTable::setIndex

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::setIndex — Définit l'index

Description

public mixed TokyoTyrantTable::setIndex ( string $column , int $type )

Définit un index sur une colonne spécifique. Le type de l'index est une constante parmi les constantes TokyoTyrant::RDBIT_*. Le fait de passer la constante TokyoTyrant::RDBIT_VOID supprimera l'index.

Liste de paramètres

column

Le nom de la colonne

type

Le type de l'index

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.


La classe TokyoTyrantQuery

(PECL tokyo_tyrant >= 0.1.0)

Introduction

Cette classe est utilisée pour interroger la base de données

Synopsis de la classe

TokyoTyrantQuery implements Iterator {
/* Méthodes */
public mixed addCond ( string $name , int $op , string $expr )
public __construct ( TokyoTyrantTable $table )
public int count ( void )
public array current ( void )
public string hint ( void )
public string key ( void )
public array metaSearch ( array $queries , int $type )
public array next ( void )
public TokyoTyrantQuery out ( void )
public bool rewind ( void )
public array search ( void )
public mixed setLimit ([ int $max [, int $skip ]] )
public mixed setOrder ( string $name , int $type )
public bool valid ( void )
}

Sommaire

  • TokyoTyrantQuery::addCond — Ajoute une condition à la requête
  • TokyoTyrantQuery::__construct — Construit une nouvelle requête
  • TokyoTyrantQuery::count — Compte les enregistrements
  • TokyoTyrantQuery::current — Retourne l'élément courant
  • TokyoTyrantQuery::hint — Récupère les informations sur une requête
  • TokyoTyrantQuery::key — Retourne la clé courante
  • TokyoTyrantQuery::metaSearch — Récupère des enregistrements avec plusieurs requêtes
  • TokyoTyrantQuery::next — Déplace l'itérateur sur la prochaine entrée
  • TokyoTyrantQuery::out — Supprime des enregistrements en se basant sur une requête
  • TokyoTyrantQuery::rewind — Réinitialise l'itérateur
  • TokyoTyrantQuery::search — Cherche des enregistrements
  • TokyoTyrantQuery::setLimit — Limite les résultats
  • TokyoTyrantQuery::setOrder — Définit l'ordre des résultats
  • TokyoTyrantQuery::valid — Vérifie la validité de l'élément courant


Ajoute une condition à la requête

  • « TokyoTyrantQuery
  • TokyoTyrantQuery::__construct »
  • PHP Manual
  • TokyoTyrantQuery
  • Ajoute une condition à la requête

TokyoTyrantQuery::addCond

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::addCond — Ajoute une condition à la requête

Description

public mixed TokyoTyrantQuery::addCond ( string $name , int $op , string $expr )

Ajoute une condition à la requête. La condition peut être quelques choses comme : récupérer toutes les clés dont la valeur correspond à une expression.

Liste de paramètres

name

Nom de la colonne dans la condition

op

L'opérateur. Une constante parmi les constantes TokyoTyrant::RDBQC_*.

expr

L'expression.

Valeurs de retour

La méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::addCond()

<?php
/* Connexion à une base de données de table */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Ajout de quelques lignes */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "not here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query = $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Affiche les résultats de la recherche */
var_dump($query->search());
?>

L'exemple ci-dessus va afficher :

array(2) {
  [1]=>
  array(2) {
    ["column1"]=>
    string(9) "some data"
    ["column2"]=>
    string(14) "something here"
  }
  [4]=>
  array(2) {
    ["column45"]=>
    string(11) "random data"
    ["column2"]=>
    string(25) "something along the lines"
  }
}

Voir aussi

  • Classname::Method()


Construit une nouvelle requête

  • « TokyoTyrantQuery::addCond
  • TokyoTyrantQuery::count »
  • PHP Manual
  • TokyoTyrantQuery
  • Construit une nouvelle requête

TokyoTyrantQuery::__construct

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::__construct — Construit une nouvelle requête

Description

public TokyoTyrantQuery::__construct ( TokyoTyrantTable $table )

Construit un nouvel objet de requête.

Liste de paramètres

table

Un objet TokyoTyrantTable avec une connexion active à une base de données.

Valeurs de retour

Retourne un nouvel objet TokyoTyrantQuery et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::__construct()

<?php
$tt = new TokyoTyrantTable("localhost", 1979);

$query = new TokyoTyrantQuery($tt);

/* Travaux avec $query */
?>

Voir aussi

  • TokyoTyrantTable::getQuery() - Récupère un objet de requête


Compte les enregistrements

  • « TokyoTyrantQuery::__construct
  • TokyoTyrantQuery::current »
  • PHP Manual
  • TokyoTyrantQuery
  • Compte les enregistrements

TokyoTyrantQuery::count

(No version information available, might only be in Git)

TokyoTyrantQuery::count — Compte les enregistrements

Description

public int TokyoTyrantQuery::count ( void )

Retourne le nombre d'enregistrements qu'une requête retourne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'enregistrements qu'une requête retourne, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::count()

<?php
/* Connexion à une base de données table */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Ajout de quelques lignes */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "not here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query = $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Compte les résultats */
var_dump($query->count());
?>

L'exemple ci-dessus va afficher :

int(2)

Voir aussi

  • TokyoTyrantQuery::out() - Supprime des enregistrements en se basant sur une requête
  • TokyoTyrantQuery::search() - Cherche des enregistrements
  • TokyoTyrantQuery::metaSearch() - Récupère des enregistrements avec plusieurs requêtes


Retourne l'élément courant

  • « TokyoTyrantQuery::count
  • TokyoTyrantQuery::hint »
  • PHP Manual
  • TokyoTyrantQuery
  • Retourne l'élément courant

TokyoTyrantQuery::current

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::current — Retourne l'élément courant

Description

public array TokyoTyrantQuery::current ( void )

Retourne l'élément courant. Fait partie de l'interface Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la ligne courante.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery iterator

<?php
/* Connexion à une base de données table */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Ajout de quelques lignes */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query = $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Parcours les résultats */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

pk: 1, columns: 2
pk: 4, columns: 2

Voir aussi

  • TokyoTyrantQuery::addCond() - Ajoute une condition à la requête


Récupère les informations sur une requête

  • « TokyoTyrantQuery::current
  • TokyoTyrantQuery::key »
  • PHP Manual
  • TokyoTyrantQuery
  • Récupère les informations sur une requête

TokyoTyrantQuery::hint

(No version information available, might only be in Git)

TokyoTyrantQuery::hint — Récupère les informations sur une requête

Description

public string TokyoTyrantQuery::hint ( void )

Récupère les informations sur une requête. Ils contiennent des informations sur la requête exécutée ; cette méthode pourrait être comparée à la requête MySQL EXPLAIN.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette méthode retourne toujours une chaîne de caractères.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::hint

<?php
$tt = new TokyoTyrantTable("localhost", 1979);
$tt->vanish();

for ($i = 0; $i < 11; $i++) {
     $tt->put(null, array('a_col' => 'a' . $i, 'b_col' => 'b' . $i));
}

$query = $tt->getQuery();
$query->addCond('a_col', TokyoTyrant::RDBQC_STRBW, 'a');

$query->search();
var_dump($query->hint());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(72) "
scanning the whole table
result set size: 11
leaving the natural order
"

Voir aussi

  • TokyoTyrantQuery::addCond() - Ajoute une condition à la requête


Retourne la clé courante

  • « TokyoTyrantQuery::hint
  • TokyoTyrantQuery::metaSearch »
  • PHP Manual
  • TokyoTyrantQuery
  • Retourne la clé courante

TokyoTyrantQuery::key

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::key — Retourne la clé courante

Description

public string TokyoTyrantQuery::key ( void )

Retourne la clé courante. Fait parti de l'interface Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la clé courante, et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery iterator

<?php
/* Connexion à une base de données */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Ajout de quelques lignes */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query = $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Parcours les résultats */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

pk: 1, columns: 2
pk: 4, columns: 2

Voir aussi

  • TokyoTyrantQuery::addCond() - Ajoute une condition à la requête


Récupère des enregistrements avec plusieurs requêtes

  • « TokyoTyrantQuery::key
  • TokyoTyrantQuery::next »
  • PHP Manual
  • TokyoTyrantQuery
  • Récupère des enregistrements avec plusieurs requêtes

TokyoTyrantQuery::metaSearch

(No version information available, might only be in Git)

TokyoTyrantQuery::metaSearch — Récupère des enregistrements avec plusieurs requêtes

Description

public array TokyoTyrantQuery::metaSearch ( array $queries , int $type )

Exécute plusieurs requêtes sur une base de données et retourne les enregistrements correspondants. L'objet courant sera toujours l'objet le plus à gauche de la recherche.

Liste de paramètres

queries

Un tableau d'objets TokyoTyrantQuery

type

Une constante parmi les constantes TokyoTyrant::RDBMS_*

Valeurs de retour

Retourne les lignes correspondantes et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::metaSearch()

<?php
/* Connexion à une base de données */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Ajout de données de test */
$tt->put('cherry',     array('color' => 'red'));
$tt->put('strawberry', array('color' => 'red'));
$tt->put('apple',      array('color' => 'green'));
$tt->put('lemon',      array('color' => 'yellow'));

/* Première requête */
$query = $tt->getQuery();
$query->addCond('color', TokyoTyrant::RDBQC_STREQ, 'red')->setOrder('color', TokyoTyrant::RDBQO_STRASC);

/* Seconde requête */
$query1 = $tt->getQuery();
$query1->addCond('color', TokyoTyrant::RDBQC_STREQ, 'yellow');

/* Récupère l'union entre les requêtes */
var_dump($query->metaSearch(array($query1), TokyoTyrant::RDBMS_UNION));
?>

L'exemple ci-dessus va afficher :

array(3) {
  ["cherry"]=>
  array(1) {
    ["color"]=>
    string(3) "red"
  }
  ["strawberry"]=>
  array(1) {
    ["color"]=>
    string(3) "red"
  }
  ["lemon"]=>
  array(1) {
    ["color"]=>
    string(6) "yellow"
  }
}

Voir aussi

  • TokyoTyrantQuery::search() - Cherche des enregistrements


Déplace l'itérateur sur la prochaine entrée

  • « TokyoTyrantQuery::metaSearch
  • TokyoTyrantQuery::out »
  • PHP Manual
  • TokyoTyrantQuery
  • Déplace l'itérateur sur la prochaine entrée

TokyoTyrantQuery::next

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::next — Déplace l'itérateur sur la prochaine entrée

Description

public array TokyoTyrantQuery::next ( void )

Retourne le prochain résultat du jeu de résultats. Fait parti de l'interface Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la prochaine ligne et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery iterator

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Ajout de quelques lignes */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query = $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Parcours les résultats */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

pk: 1, columns: 2
pk: 4, columns: 2

Voir aussi

  • TokyoTyrantQuery::addCond() - Ajoute une condition à la requête


Supprime des enregistrements en se basant sur une requête

  • « TokyoTyrantQuery::next
  • TokyoTyrantQuery::rewind »
  • PHP Manual
  • TokyoTyrantQuery
  • Supprime des enregistrements en se basant sur une requête

TokyoTyrantQuery::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::out — Supprime des enregistrements en se basant sur une requête

Description

public TokyoTyrantQuery TokyoTyrantQuery::out ( void )

Supprime tous les enregistrements correspondant à la requête. Fonctionne exactement comme une recherche, mais supprime les enregistrements au lieu de les retourner.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::out()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Ajout quelques enregistrements */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query = $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Supprime les enregistrements correspondant */
$query->out();
?>

Voir aussi

  • TokyoTyrantQuery::addCond() - Ajoute une condition à la requête


Réinitialise l'itérateur

  • « TokyoTyrantQuery::out
  • TokyoTyrantQuery::search »
  • PHP Manual
  • TokyoTyrantQuery
  • Réinitialise l'itérateur

TokyoTyrantQuery::rewind

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::rewind — Réinitialise l'itérateur

Description

public bool TokyoTyrantQuery::rewind ( void )

Réinitialise le jeu de résultats et exécute la requête si elle n'a pas encore été exécutée. Fait parti de l'interface Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery iterator

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Ajoute quelques lignes */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query = $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Parcours les résultats */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

pk: 1, columns: 2
pk: 4, columns: 2

Voir aussi

  • TokyoTyrantQuery::addCond() - Ajoute une condition à la requête


Cherche des enregistrements

  • « TokyoTyrantQuery::rewind
  • TokyoTyrantQuery::setLimit »
  • PHP Manual
  • TokyoTyrantQuery
  • Cherche des enregistrements

TokyoTyrantQuery::search

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::search — Cherche des enregistrements

Description

public array TokyoTyrantQuery::search ( void )

Effectue une recherche sur la base de données. Retourne un tableau de tableaux, contenant les enregistrements correspondant. Dans le tableau retourné, le premier niveau correspond aux clés primaires des données, et le second, les données des lignes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les lignes correspondantes et lance une exception TokyoTyrantException si une erreur survient.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery::search()

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Ajoute quelques lignes */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "not here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query = $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Affiche les résultats de la recherche */
var_dump($query->search());
?>

L'exemple ci-dessus va afficher :

array(2) {
  [1]=>
  array(2) {
    ["column1"]=>
    string(9) "some data"
    ["column2"]=>
    string(14) "something here"
  }
  [4]=>
  array(2) {
    ["column45"]=>
    string(11) "random data"
    ["column2"]=>
    string(25) "something along the lines"
  }
}

Voir aussi

  • TokyoTyrantQuery::out() - Supprime des enregistrements en se basant sur une requête
  • TokyoTyrantQuery::metaSearch() - Récupère des enregistrements avec plusieurs requêtes


Limite les résultats

  • « TokyoTyrantQuery::search
  • TokyoTyrantQuery::setOrder »
  • PHP Manual
  • TokyoTyrantQuery
  • Limite les résultats

TokyoTyrantQuery::setLimit

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::setLimit — Limite les résultats

Description

public mixed TokyoTyrantQuery::setLimit ([ int $max [, int $skip ]] )

Définie le nombre maximal d'enregistrements que la requête doit retourner.

Liste de paramètres

max

Nombre maximal d'enregistrements. Par défaut, vaut -1.

skip

Nombre d'enregistrements de début à ignorer. Par défaut, vaut -1.

Valeurs de retour

Cette méthode retourne l'objet courant et lance une exception TokyoTyrantException si une erreur survient.


Définit l'ordre des résultats

  • « TokyoTyrantQuery::setLimit
  • TokyoTyrantQuery::valid »
  • PHP Manual
  • TokyoTyrantQuery
  • Définit l'ordre des résultats

TokyoTyrantQuery::setOrder

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::setOrder — Définit l'ordre des résultats

Description

public mixed TokyoTyrantQuery::setOrder ( string $name , int $type )

Définit l'ordre des résultats d'une requête.

Liste de paramètres

name

Le nom de la colonne à utiliser pour définir l'ordre.

type

Le paramètre type peut être une des constantes suivantes :

  • TokyoTyrant::RDBQO_STRASC - chaîne de caractères, croissant
  • TokyoTyrant::RDBQO_STRDESC - chaîne de caractères, décroissant
  • TokyoTyrant::RDBQO_NUMASC - Numérique, croissant
  • TokyoTyrant::RDBQO_NUMDESC - chaîne de caractères, décroissant

Valeurs de retour

Cette méthode retourne l'objet courant.


Vérifie la validité de l'élément courant

  • « TokyoTyrantQuery::setOrder
  • TokyoTyrantIterator »
  • PHP Manual
  • TokyoTyrantQuery
  • Vérifie la validité de l'élément courant

TokyoTyrantQuery::valid

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::valid — Vérifie la validité de l'élément courant

Description

public bool TokyoTyrantQuery::valid ( void )

Vérifie si l'élément courant est valide. Fait parti de l'interface Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'élément courant est valide, FALSE sinon.

Exemples

Exemple #1 Exemple avec TokyoTyrantQuery iterator

<?php
/* Connexion à la base de données */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Ajoute quelques lignes */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Récupère un nouvel objet de requête */
$query = $tt->getQuery();

/* Ajoute une condition de recherche */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Parcours les résultats */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

pk: 1, columns: 2
pk: 4, columns: 2

Voir aussi

  • TokyoTyrantQuery::addCond() - Ajoute une condition à la requête


La classe TokyoTyrantIterator

(PECL tokyo_tyrant >= 0.2.0)

Introduction

Fournit un itérateur pour les objets TokyoTyrant et TokyoTyrantTable. L'itérateur parcourt toutes les clés et les valeurs de la base de données. TokyoTyrantIterator a été ajouté en version 0.2.0.

Synopsis de la classe

TokyoTyrantIterator implements Iterator {
/* Méthodes */
public __construct ( mixed $object )
public mixed current ( void )
public mixed key ( void )
public mixed next ( void )
public void rewind ( void )
public bool valid ( void )
/* Méthodes héritées */
public number TokyoTyrant::add ( string $key , number $increment [, int $type = 0 ] )
public TokyoTyrant TokyoTyrant::connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] )
public TokyoTyrant TokyoTyrant::connectUri ( string $uri )
public TokyoTyrant::__construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )
public TokyoTyrant TokyoTyrant::copy ( string $path )
public string TokyoTyrant::ext ( string $name , int $options , string $key , string $value )
public array TokyoTyrant::fwmKeys ( string $prefix , int $max_recs )
public mixed TokyoTyrant::get ( mixed $keys )
public TokyoTyrantIterator TokyoTyrant::getIterator ( void )
public int TokyoTyrant::num ( void )
public TokyoTyrant TokyoTyrant::out ( mixed $keys )
public TokyoTyrant TokyoTyrant::put ( mixed $keys [, string $value = NULL ] )
public TokyoTyrant TokyoTyrant::putCat ( mixed $keys [, string $value ] )
public TokyoTyrant TokyoTyrant::putKeep ( mixed $keys [, string $value ] )
public TokyoTyrant TokyoTyrant::putNr ( mixed $keys [, string $value = NULL ] )
public mixed TokyoTyrant::putShl ( string $key , string $value , int $width )
public mixed TokyoTyrant::restore ( string $log_dir , int $timestamp [, bool $check_consistency = true ] )
public mixed TokyoTyrant::setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = true ] )
public int TokyoTyrant::size ( string $key )
public array TokyoTyrant::stat ( void )
public mixed TokyoTyrant::sync ( void )
public TokyoTyrant TokyoTyrant::tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] )
public mixed TokyoTyrant::vanish ( void )
}

Sommaire

  • TokyoTyrantIterator::__construct — Construit un itérateur
  • TokyoTyrantIterator::current — Récupère la valeur courante
  • TokyoTyrantIterator::key — Retourne la clé courante
  • TokyoTyrantIterator::next — Se déplace sur la prochaine clé
  • TokyoTyrantIterator::rewind — Réinitialise l'itérateur
  • TokyoTyrantIterator::valid — Réinitialise l'itérateur


Construit un itérateur

  • « TokyoTyrantIterator
  • TokyoTyrantIterator::current »
  • PHP Manual
  • TokyoTyrantIterator
  • Construit un itérateur

TokyoTyrantIterator::__construct

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::__construct — Construit un itérateur

Description

public TokyoTyrantIterator::__construct ( mixed $object )

Construit un nouvel objet TokyoTyrantIterator. Une connexion peut avoir plusieurs itérateurs, mais il n'est pas garantie que tous les éléments soient parcourus dans ce cas. Le paramètre object peut être soit une instance de TokyoTyrant, soit une instance TokyoTyrantTable.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Lance une exception si l'initialisation de l'itérateur échoue.

Exemples

Exemple #1 Exemple avec TokyoTyrantIterator::__construct()

<?php
/* Connexion à une base de données de table */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passage de la valeur null pour générer un nouvel identifiant unique */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Construit un itérateur */
$it = new TokyoTyrantIterator($tt);

foreach ($it as $value) {
    var_dump($value);
}
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Voir aussi

  • TokyoTyrantIterator::key() - Retourne la clé courante
  • TokyoTyrantIterator::current() - Récupère la valeur courante
  • TokyoTyrantIterator::next() - Se déplace sur la prochaine clé
  • TokyoTyrantIterator::rewind() - Réinitialise l'itérateur
  • TokyoTyrantIterator::key() - Retourne la clé courante


Récupère la valeur courante

  • « TokyoTyrantIterator::__construct
  • TokyoTyrantIterator::key »
  • PHP Manual
  • TokyoTyrantIterator
  • Récupère la valeur courante

TokyoTyrantIterator::current

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::current — Récupère la valeur courante

Description

public mixed TokyoTyrantIterator::current ( void )

Retourne la valeur courante durant l'itération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur courante en cas de succès, FALSE si une erreur survient.

Voir aussi

  • TokyoTyrantIterator::valid() - Réinitialise l'itérateur
  • TokyoTyrantIterator::key() - Retourne la clé courante
  • TokyoTyrantIterator::next() - Se déplace sur la prochaine clé
  • TokyoTyrantIterator::rewind() - Réinitialise l'itérateur


Retourne la clé courante

  • « TokyoTyrantIterator::current
  • TokyoTyrantIterator::next »
  • PHP Manual
  • TokyoTyrantIterator
  • Retourne la clé courante

TokyoTyrantIterator::key

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::key — Retourne la clé courante

Description

public mixed TokyoTyrantIterator::key ( void )

Retourne la clé courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la clé courante en cas de succès, FALSE si une erreur survient.

Voir aussi

  • TokyoTyrantIterator::valid() - Réinitialise l'itérateur
  • TokyoTyrantIterator::current() - Récupère la valeur courante
  • TokyoTyrantIterator::next() - Se déplace sur la prochaine clé
  • TokyoTyrantIterator::rewind() - Réinitialise l'itérateur


Se déplace sur la prochaine clé

  • « TokyoTyrantIterator::key
  • TokyoTyrantIterator::rewind »
  • PHP Manual
  • TokyoTyrantIterator
  • Se déplace sur la prochaine clé

TokyoTyrantIterator::next

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::next — Se déplace sur la prochaine clé

Description

public mixed TokyoTyrantIterator::next ( void )

Se déplace sur la prochaine clé lors d'une itération, et retourne sa valeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la prochaine valeur en cas de succès, FALSE si une erreur survient.

Voir aussi

  • TokyoTyrantIterator::valid() - Réinitialise l'itérateur
  • TokyoTyrantIterator::key() - Retourne la clé courante
  • TokyoTyrantIterator::current() - Récupère la valeur courante
  • TokyoTyrantIterator::rewind() - Réinitialise l'itérateur


Réinitialise l'itérateur

  • « TokyoTyrantIterator::next
  • TokyoTyrantIterator::valid »
  • PHP Manual
  • TokyoTyrantIterator
  • Réinitialise l'itérateur

TokyoTyrantIterator::rewind

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::rewind — Réinitialise l'itérateur

Description

public void TokyoTyrantIterator::rewind ( void )

Réinitialise l'itérateur pour une nouvelle itération. Cette méthode est appelée automatiquement au début d'une boucle foreach.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Lance une exception TokyoTyrantException si l'initialisation de l'itérateur échoue.

Voir aussi

  • TokyoTyrantIterator::valid() - Réinitialise l'itérateur
  • TokyoTyrantIterator::current() - Récupère la valeur courante
  • TokyoTyrantIterator::next() - Se déplace sur la prochaine clé
  • TokyoTyrantIterator::rewind()


Réinitialise l'itérateur

  • « TokyoTyrantIterator::rewind
  • TokyoTyrantException »
  • PHP Manual
  • TokyoTyrantIterator
  • Réinitialise l'itérateur

TokyoTyrantIterator::valid

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::valid — Réinitialise l'itérateur

Description

public bool TokyoTyrantIterator::valid ( void )

Vérifie si le pointeur interne pointe sur un élément valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'élément courant est valide, FALSE sinon.

Voir aussi

  • TokyoTyrantIterator::key() - Retourne la clé courante
  • TokyoTyrantIterator::current() - Récupère la valeur courante
  • TokyoTyrantIterator::next() - Se déplace sur la prochaine clé
  • TokyoTyrantIterator::rewind() - Réinitialise l'itérateur


La classe TokyoTyrantException

(PECL tokyo_tyrant >= 0.1.0)

Introduction

TokyoTyrantException

Synopsis de la classe

tokyotyrantexception extends Exception {
/* Propriétés */
protected int $code ;
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

code

Le code de l'exception. Il peut être comparé aux constantes TokyoTyrant::TTE_*


Extensions relatives aux dates et aux heures

  • Calendar
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Calendar Fonctions
  • Date/Heure — Date et Heure
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • DateTime — La classe DateTime
    • DateTimeImmutable — La classe DateTimeImmutable
    • DateTimeInterface — La classe DateTimeInterface
    • DateTimeZone — La classe DateTimeZone
    • DateInterval — La classe DateInterval
    • DatePeriod — La classe DatePeriod
    • Fonctions Date/Heure
    • Formats supportés de temps et de dates
    • Liste des Fuseaux Horaires Supportés
  • HRTime — Gestion du temps à haute résolution
    • Introduction
    • Installation/Configuration
    • Exemples
    • HRTime\PerformanceCounter — La classe HRTime\PerformanceCounter
    • HRTime\StopWatch — La classe HRTime\StopWatch
    • HRTime\Unit — La classe HRTime\Unit


Calendar

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Calendar Fonctions
    • cal_days_in_month — Retourne le nombre de jours dans un mois, pour une année et un calendrier donné
    • cal_from_jd — Convertit le nombre de jours Julien en un calendrier spécifique
    • cal_info — Retourne des détails sur un calendrier
    • cal_to_jd — Convertit un calendrier en nombre de jours Julien
    • easter_date — Retourne un timestamp UNIX pour Pâques, à minuit pour une année donnée
    • easter_days — Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée
    • frenchtojd — Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien
    • gregoriantojd — Convertit une date grégorienne en nombre de jours du calendrier Julien
    • jddayofweek — Retourne le numéro du jour de la semaine
    • jdmonthname — Retourne le nom du mois
    • jdtofrench — Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain
    • jdtogregorian — Convertit le nombre de jours du calendrier Julien en date grégorienne
    • jdtojewish — Convertit le nombre de jours du calendrier Julien en date du calendrier juif
    • jdtojulian — Convertit le nombre de jours du calendrier Julien en date du calendrier Julien
    • jdtounix — Convertit un jour Julien en timestamp UNIX
    • jewishtojd — Convertit une date du calendrier Juif en nombre de jours du calendrier Julien
    • juliantojd — Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien
    • unixtojd — Convertit un timestamp UNIX en un jour Julien


Introduction

L'extension Calendar contient une série de fonctions afin de convertir simplement les différents formats de calendrier. Elles sont basées sur un comptage de jour Julien. Le comptage Julien est un comptage commençant le 1er Janvier 4713 A.J. Pour convertir les différents calendriers, vous devez tout d'abord convertir en nombre de jours Julien, puis, dans le type de calendrier de votre choix. Le comptage de jours Julien est très différent du calendrier Julien ! Pour plus d'informations sur le comptage en jours Julien, visitez cette page : » http://www.hermetic.ch/cal_stud/jdn.htm. Pour plus d'informations sur les différents calendriers, visitez cette page : » http://www.fourmilab.ch/documents/calendar/.


Installation

Pour faire fonctionner ces fonctions avec PHP, vous devez le compiler avec l'option --enable-calendar .

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CAL_GREGORIAN (entier)
CAL_JULIAN (entier)
CAL_JEWISH (entier)
CAL_FRENCH (entier)
CAL_NUM_CALS (entier)
CAL_DOW_DAYNO (entier)
CAL_DOW_SHORT (entier)
CAL_DOW_LONG (entier)
CAL_MONTH_GREGORIAN_SHORT (entier)
CAL_MONTH_GREGORIAN_LONG (entier)
CAL_MONTH_JULIAN_SHORT (entier)
CAL_MONTH_JULIAN_LONG (entier)
CAL_MONTH_JEWISH (entier)
CAL_MONTH_FRENCH (entier)

Les constantes suivantes sont disponibles depuis PHP 4.3.0 :

CAL_EASTER_DEFAULT (entier)
CAL_EASTER_ROMAN (entier)
CAL_EASTER_ALWAYS_GREGORIAN (entier)
CAL_EASTER_ALWAYS_JULIAN (entier)

Les constantes suivantes sont disponibles depuis PHP 5.0.0 :

CAL_JEWISH_ADD_ALAFIM_GERESH (entier)
CAL_JEWISH_ADD_ALAFIM (entier)
CAL_JEWISH_ADD_GERESHAYIM (entier)


Calendar Fonctions

Sommaire

  • cal_days_in_month — Retourne le nombre de jours dans un mois, pour une année et un calendrier donné
  • cal_from_jd — Convertit le nombre de jours Julien en un calendrier spécifique
  • cal_info — Retourne des détails sur un calendrier
  • cal_to_jd — Convertit un calendrier en nombre de jours Julien
  • easter_date — Retourne un timestamp UNIX pour Pâques, à minuit pour une année donnée
  • easter_days — Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée
  • frenchtojd — Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien
  • gregoriantojd — Convertit une date grégorienne en nombre de jours du calendrier Julien
  • jddayofweek — Retourne le numéro du jour de la semaine
  • jdmonthname — Retourne le nom du mois
  • jdtofrench — Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain
  • jdtogregorian — Convertit le nombre de jours du calendrier Julien en date grégorienne
  • jdtojewish — Convertit le nombre de jours du calendrier Julien en date du calendrier juif
  • jdtojulian — Convertit le nombre de jours du calendrier Julien en date du calendrier Julien
  • jdtounix — Convertit un jour Julien en timestamp UNIX
  • jewishtojd — Convertit une date du calendrier Juif en nombre de jours du calendrier Julien
  • juliantojd — Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien
  • unixtojd — Convertit un timestamp UNIX en un jour Julien


Retourne le nombre de jours dans un mois, pour une année et un calendrier donné

  • « Calendar Fonctions
  • cal_from_jd »
  • PHP Manual
  • Calendar Fonctions
  • Retourne le nombre de jours dans un mois, pour une année et un calendrier donné

cal_days_in_month

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cal_days_in_month — Retourne le nombre de jours dans un mois, pour une année et un calendrier donné

Description

int cal_days_in_month ( int $calendar , int $month , int $year )

Retourne le nombre de jours dans le mois month de l'année year, pour le calendrier calendar.

Liste de paramètres

calendar

Calendrier à utiliser pour le calcul

month

Mois dans le calendrier sélectionné

year

Année dans le calendrier sélectionné

Valeurs de retour

Le nombre de jours dans le mois sélectionné, dans le calendrier fourni.

Exemples

Exemple #1 Exemple avec cal_days_in_month()

<?php
$number = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "There were {$number} days in August 2003";
?>


Convertit le nombre de jours Julien en un calendrier spécifique

  • « cal_days_in_month
  • cal_info »
  • PHP Manual
  • Calendar Fonctions
  • Convertit le nombre de jours Julien en un calendrier spécifique

cal_from_jd

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cal_from_jd — Convertit le nombre de jours Julien en un calendrier spécifique

Description

array cal_from_jd ( int $jd , int $calendar )

cal_from_jd() convertit le nombre de jours Julien jd en une date du calendrier calendar. Les valeurs possibles pour calendar sont CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH et CAL_FRENCH.

Liste de paramètres

jd

Jour Julien, sous la forme d'un entier

calendar

Calendrier à utiliser

Valeurs de retour

Retourne un tableau contenant des informations sur le calendrier, comme le mois, le jour, l'année, le jour de la semaine, les noms abrégés et complets des jours de la semaine et du mois, et la date, sous la forme d'une chaîne de caractères "mois/jour/année".

Exemples

Exemple #1 Exemple avec cal_from_jd()

<?php
$today = unixtojd(mktime(0, 0, 0, 8, 16, 2003));
print_r(cal_from_jd($today, CAL_GREGORIAN));
?>

L'exemple ci-dessus va afficher :

Array
(
   [date] => 8/16/2003
   [month] => 8
   [day] => 16
   [year] => 2003
   [dow] => 6
   [abbrevdayname] => Sat
   [dayname] => Saturday
   [abbrevmonth] => Aug
   [monthname] => August
)

Voir aussi

  • cal_to_jd() - Convertit un calendrier en nombre de jours Julien
  • jdtofrench() - Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain
  • jdtogregorian() - Convertit le nombre de jours du calendrier Julien en date grégorienne
  • jdtojewish() - Convertit le nombre de jours du calendrier Julien en date du calendrier juif
  • jdtojulian() - Convertit le nombre de jours du calendrier Julien en date du calendrier Julien
  • jdtounix() - Convertit un jour Julien en timestamp UNIX


Retourne des détails sur un calendrier

  • « cal_from_jd
  • cal_to_jd »
  • PHP Manual
  • Calendar Fonctions
  • Retourne des détails sur un calendrier

cal_info

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cal_info — Retourne des détails sur un calendrier

Description

array cal_info ([ int $calendar = -1 ] )

cal_info() retourne des informations sur le calendrier calendar spécifié.

Les informations de calendriers sont retournées dans un tableau qui contient les éléments calname, calsymbol, month, abbrevmonth et maxdaysinmonth. Les noms des différents calendriers qui peuvent être utilisés dans le paramètre calendar sont les suivants :

  • 0 ou CAL_GREGORIAN - Calendrier Grégorien
  • 1 ou CAL_JULIAN - Calendrier Julien
  • 2 ou CAL_JEWISH - Calendrier juif
  • 3 ou CAL_FRENCH - Calendrier révolutionnaire français

Si le paramètre calendar n'est pas spécifié, un tableau représentant tous les calendriers est retourné.

Liste de paramètres

calendar

Calendrier dont on souhaite des informations. Si aucun calendrier n'est spécifié, des informations sur tous les calendriers seront retournées.

Valeurs de retour

Exemples

Exemple #1 Exemple avec cal_info()

<?php
$info = cal_info(0);
print_r($info);
?>

L'exemple ci-dessus va afficher :

Array
(
    [months] => Array
        (
            [1] => January
            [2] => February
            [3] => March
            [4] => April
            [5] => May
            [6] => June
            [7] => July
            [8] => August
            [9] => September
            [10] => October
            [11] => November
            [12] => December
        )

    [abbrevmonths] => Array
        (
            [1] => Jan
            [2] => Feb
            [3] => Mar
            [4] => Apr
            [5] => May
            [6] => Jun
            [7] => Jul
            [8] => Aug
            [9] => Sep
            [10] => Oct
            [11] => Nov
            [12] => Dec
        )

    [maxdaysinmonth] => 31
    [calname] => Gregorian
    [calsymbol] => CAL_GREGORIAN
)


Convertit un calendrier en nombre de jours Julien

  • « cal_info
  • easter_date »
  • PHP Manual
  • Calendar Fonctions
  • Convertit un calendrier en nombre de jours Julien

cal_to_jd

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cal_to_jd — Convertit un calendrier en nombre de jours Julien

Description

int cal_to_jd ( int $calendar , int $month , int $day , int $year )

cal_to_jd() calcule le nombre de jours Julien pour une date, dans le calendrier calendar. Les valeurs possibles pour calendar sont CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH et CAL_FRENCH.

Liste de paramètres

calendar

Calendrier à convertir. Un parmi CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH ou CAL_FRENCH.

month

Le mois, sous la forme d'un nombre. L'intervalle valide dépend du calendrier calendar

day

Le jour, sous la forme d'un nombre. L'intervalle valide dépend du calendrier calendar

year

L'année, sous la forme d'un nombre. L'intervalle valide dépend du calendrier calendar

Valeurs de retour

Le nombre de jour Julien.

Voir aussi

  • cal_from_jd() - Convertit le nombre de jours Julien en un calendrier spécifique
  • frenchtojd() - Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien
  • gregoriantojd() - Convertit une date grégorienne en nombre de jours du calendrier Julien
  • jewishtojd() - Convertit une date du calendrier Juif en nombre de jours du calendrier Julien
  • juliantojd() - Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien
  • unixtojd() - Convertit un timestamp UNIX en un jour Julien


Retourne un timestamp UNIX pour Pâques, à minuit pour une année donnée

  • « cal_to_jd
  • easter_days »
  • PHP Manual
  • Calendar Fonctions
  • Retourne un timestamp UNIX pour Pâques, à minuit pour une année donnée

easter_date

(PHP 4, PHP 5, PHP 7)

easter_date — Retourne un timestamp UNIX pour Pâques, à minuit pour une année donnée

Description

int easter_date ([ int $year = date("Y") ] )

Retourne un timestamp UNIX pour Pâques, à minuit, pour une année donnée.

Avertissement

Cette fonction génère une alerte si la date tombe hors de la zone de validité des timestamp UNIX (i.e. avant 1970 ou après 2037).

La date de Pâques a été fixée par le concile de Nicée, en 325 de notre ère, comme étant le dimanche après la première pleine lune qui suit l'équinoxe de printemps. L'équinoxe de printemps est considéré comme étant toujours le 21 mars, ce qui réduit le problème au calcul de la date de la lune pleine qui suit, et le dimanche suivant. L'algorithme fut introduit vers 532, par Dionysius Exiguus. Avec le calendrier Julien, (pour les années avant 1753), un cycle de 19 ans suffit pour connaître les dates des phases de la lune. Avec le calendrier grégorien, (à partir des années 1753, conçu par Clavius et Lilius, puis introduit par le pape Grégoire XIII en octobre 1582, et en Grande Bretagne et ses colonies en septembre 1752), deux facteurs de corrections ont été ajoutés pour rendre le cycle plus précis.

Liste de paramètres

year

L'année, sous la forme d'un nombre compris entre 1970 et 2037. Si omis, la valeur par défaut sera l'année courante suivant l'heure locale.

Valeurs de retour

La date pour Pâques, sous la forme d'un timestamp unix.

Exemples

Exemple #1 Exemple avec easter_date()

<?php

echo date("M-d-Y", easter_date(1999));        // Apr-04-1999
echo date("M-d-Y", easter_date(2000));        // Apr-23-2000
echo date("M-d-Y", easter_date(2001));        // Apr-15-2001

?>

Notes

Note:

La fonction easter_date() reprose sur les fonctions de la bibliothèque C time du système, plutôt que sur les fonctions date et time internes de PHP. Aussi, la fonction easter_date() utilise la variable d'environnement TZ pour déterminer le fuseau horaire à utiliser, plutôt que le fuseau horaire par défaut de PHP, ce qui peut conduire à un comportement non désiré lors de l'utilisation de cette fonction avec d'autres fonctions date de PHP.

Comme contournement, vous pouvez utiliser la fonction easter_days() avec les classes DateTime et DateInterval pour calculer le jour de Pâques dans votre fuseau horaire PHP, comme ceci :

<?php
function get_easter_datetime($year) {
    $base = new DateTime("$year-03-21");
    $days = easter_days($year);

    return $base->add(new DateInterval("P{$days}D"));
}

foreach (range(2012, 2015) as $year) {
    printf("Pâques, en %d, tombe le %s\n",
           $year,
           get_easter_datetime($year)->format('d F'));
}
?>

L'exemple ci-dessus va afficher :

Pâques, en 2012, tombe le 08 Avril
Pâques, en 2013, tombe le 31 Mars
Pâques, en 2014, tombe le 20 Avril
Pâques, en 2015, tombe le 05 Avril

Voir aussi

  • easter_days() - Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée pour le calcul de Pâques avant 1970 et après 2037


Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée

  • « easter_date
  • frenchtojd »
  • PHP Manual
  • Calendar Fonctions
  • Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée

easter_days

(PHP 4, PHP 5, PHP 7)

easter_days — Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée

Description

int easter_days ([ int $year = date("Y") [, int $method = CAL_EASTER_DEFAULT ]] )

Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée. Si l'année n'est pas précisée, l'année courante sera utilisée.

Cette fonction peut être utilisée à la place de easter_date() pour calculer la date de Pâques, pour les années qui tombent hors de l'intervalle de validité des timestamps UNIX (i.e. avant 1970 ou après 2037).

La date de Pâques a été fixée par le concile de Nicée, en 325 de notre ère, comme étant le dimanche après la première pleine lune qui suit l'équinoxe de printemps. L'équinoxe de printemps est considéré comme étant toujours le 21 mars, ce qui réduit le problème au calcul de la date de la lune pleine qui suit, et le dimanche suivant. L'algorithme fut introduit vers 532, par Dionysius Exiguus. Avec le calendrier Julien, (pour les années avant 1753), un cycle de 19 ans suffit pour connaître les date des phases de la lune. Avec le calendrier grégorien, (à partir des années 1753, conçu par Clavius et Lilius, puis introduit par le pape Grégoire XIII en octobre 1582, et en Grande Bretagne et ses colonies en septembre 1752), deux facteurs de corrections ont été ajoutés pour rendre le cycle plus précis.

Liste de paramètres

year

L'année, sous la forme d'un nombre positif. Si omis, la valeur par défaut sera l'année courante suivant l'heure locale.

method

Permet le calcul des dates de Pâques en se basant sur le calendrier Grégorien pour les années entre 1582 et 1752 lorsque définit à CAL_EASTER_ROMAN. Voir les constantes des calendriers pour plus de constantes valides.

Valeurs de retour

Le nombre de jours entre le 21 Mars et Pâques, pour l'année year fournie.

Exemples

Exemple #1 Exemple avec easter_days()

<?php

echo easter_days(1999);        // 14, i.e. April 4
echo easter_days(1492);        // 32, i.e. April 22
echo easter_days(1913);        //  2, i.e. March 23

?>

Voir aussi

  • easter_date() - Retourne un timestamp UNIX pour Pâques, à minuit pour une année donnée


Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien

  • « easter_days
  • gregoriantojd »
  • PHP Manual
  • Calendar Fonctions
  • Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien

frenchtojd

(PHP 4, PHP 5, PHP 7)

frenchtojd — Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien

Description

int frenchtojd ( int $month , int $day , int $year )

frenchtojd() convertit une date du calendrier français républicain en nombre de jours du calendrier Julien.

Ces fonctions convertissent les dates comprises entre l'an 1 et l'an 14 (22 Septembre 1792 à 22 Septembre 1806 en calendrier grégorien). Cela couvre plus que la durée d'existence de ce calendrier.

Liste de paramètres

month

Le mois, sous la forme d'un nombre entre 1 (pour Vendémiaire) à 13 (pour la période de 5-6 jours en à la fin de chaque année)

day

Le jour, sous la forme d'un nombre compris entre 1 et 30

year

L'année, sous la forme d'un nombre compris entre 1 et 14

Valeurs de retour

Le jour Julien pour la date fournie du calendrier français républicain, sous la forme d'un entier.

Voir aussi

  • jdtofrench() - Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain
  • cal_to_jd() - Convertit un calendrier en nombre de jours Julien


Convertit une date grégorienne en nombre de jours du calendrier Julien

  • « frenchtojd
  • jddayofweek »
  • PHP Manual
  • Calendar Fonctions
  • Convertit une date grégorienne en nombre de jours du calendrier Julien

gregoriantojd

(PHP 4, PHP 5, PHP 7)

gregoriantojd — Convertit une date grégorienne en nombre de jours du calendrier Julien

Description

int gregoriantojd ( int $month , int $day , int $year )

Intervalle de validité pour le calendrier grégorien : 4714 avant JC à 9999 après JC.A.D.

Bien qu'il soit possible de manipuler des dates jusqu'en 4714 avant JC, une telle utilisation n'est pas significative. En effet, ce calendrier fut créé le 18 octobre 1582 après J.C. (ou 5 octobre 1582 en calendrier grec). Certains pays ne l'acceptèrent que bien plus tard. Par exemple, les britanniques n'y passèrent qu'en 1752, les Russes en 1918 et les Grecs en 1923. La plupart des pays européens utilisaient le calendrier Julien avant le Grégorien.

Liste de paramètres

month

Le mois, sous la forme d'un nombre compris entre 1 (pour Janvier) et 12 (pour Décembre)

day

Le jour, sous la forme d'un nombre compris entre 1 et 31

year

L'année, sous la forme d'un nombre compris entre -4714 et 9999

Valeurs de retour

Le jour Julien pour la date fournie du calendrier Grégorien, sous la forme d'un entier.

Exemples

Exemple #1 Fonctions calendrier

<?php
$jd = GregorianToJD(10, 11, 1970);
echo "$jd\n";
$gregorian = JDToGregorian($jd);
echo "$gregorian\n";
?>

Voir aussi

  • jdtogregorian() - Convertit le nombre de jours du calendrier Julien en date grégorienne
  • cal_to_jd() - Convertit un calendrier en nombre de jours Julien


Retourne le numéro du jour de la semaine

  • « gregoriantojd
  • jdmonthname »
  • PHP Manual
  • Calendar Fonctions
  • Retourne le numéro du jour de la semaine

jddayofweek

(PHP 4, PHP 5, PHP 7)

jddayofweek — Retourne le numéro du jour de la semaine

Description

mixed jddayofweek ( int $julianday [, int $mode = CAL_DOW_DAYNO ] )

Retourne le numéro du jour de la semaine. Peut retourner une chaîne ou un entier, en fonction du mode.

Liste de paramètres

julianday

Le numéro du jour Julien, sous la forme d'un entier

mode
Modes pour la semaine du calendrier
Mode | Signification
0 (défaut) | Retourne le numéro du jour comme un entier (0=dimanche, 1=lundi, etc.)
1 | Retourne une chaîne contenant le nom du jour (anglais grégorien)
2 | Retourne une chaîne contenant le nom abrégé du jour de la semaine (anglais grégorien)

Valeurs de retour

Le jour de la semaine Grégorien, sous la forme d'un entier ou d'une chaîne de caractères.


Retourne le nom du mois

  • « jddayofweek
  • jdtofrench »
  • PHP Manual
  • Calendar Fonctions
  • Retourne le nom du mois

jdmonthname

(PHP 4, PHP 5, PHP 7)

jdmonthname — Retourne le nom du mois

Description

string jdmonthname ( int $julianday , int $mode )

Retourne une chaîne contenant le nom du mois. mode indique de quel calendrier dépend ce mois, et quel type de nom doit être retourné.

Modes de calendrier
Mode | Signification | Valeurs
0 | Grégorien - abrégé | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
1 | Grégorien | January, February, March, April, May, June, July, August, September, October, November, December
2 | Julien - abrégé | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
3 | Julien | January, February, March, April, May, June, July, August, September, October, November, December
4 | Juif | Tishri, Heshvan, Kislev, Tevet, Shevat, AdarI, AdarII, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
5 | Républicain français | Vendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prairial, Messidor, Thermidor, Fructidor, Extra

Liste de paramètres

jday

Le jour Julien à analyser

calendar

Le calendrier dans lequel on récupère le nom du mois

Valeurs de retour

Le nom du mois pour le jour Julien donné, pour le calendrier calendar.


Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain

  • « jdmonthname
  • jdtogregorian »
  • PHP Manual
  • Calendar Fonctions
  • Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain

jdtofrench

(PHP 4, PHP 5, PHP 7)

jdtofrench — Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain

Description

string jdtofrench ( int $juliandaycount )

Convertit le nombre de jours du calendrier julien en date du calendrier français républicain.

Liste de paramètres

julianday

Le numéro du jour Julien, sous la forme d'un entier

Valeurs de retour

La date française républicaine, sous la forme d'une chaîne de caractères "mois/jour/année".

Voir aussi

  • frenchtojd() - Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien
  • cal_from_jd() - Convertit le nombre de jours Julien en un calendrier spécifique


Convertit le nombre de jours du calendrier Julien en date grégorienne

  • « jdtofrench
  • jdtojewish »
  • PHP Manual
  • Calendar Fonctions
  • Convertit le nombre de jours du calendrier Julien en date grégorienne

jdtogregorian

(PHP 4, PHP 5, PHP 7)

jdtogregorian — Convertit le nombre de jours du calendrier Julien en date grégorienne

Description

string jdtogregorian ( int $julianday )

Convertit le nombre de jours du calendrier Julien en une chaîne contenant une date du calendrier grégorien, au format "mois/jour/année".

Liste de paramètres

julianday

Le numéro du jour Julien, sous la forme d'un entier

Valeurs de retour

La date grégorienne, sous la forme d'une chaîne de caractères "mois/jour/année".

Voir aussi

  • gregoriantojd() - Convertit une date grégorienne en nombre de jours du calendrier Julien
  • cal_from_jd() - Convertit le nombre de jours Julien en un calendrier spécifique


Convertit le nombre de jours du calendrier Julien en date du calendrier juif

  • « jdtogregorian
  • jdtojulian »
  • PHP Manual
  • Calendar Fonctions
  • Convertit le nombre de jours du calendrier Julien en date du calendrier juif

jdtojewish

(PHP 4, PHP 5, PHP 7)

jdtojewish — Convertit le nombre de jours du calendrier Julien en date du calendrier juif

Description

string jdtojewish ( int $juliandaycount [, bool $hebrew = false [, int $fl = 0 ]] )

Convertit le nombre de jours du calendrier Julien en date du calendrier juif.

Les paramètres optionnels hebrew et fl sont disponibles depuis PHP 5.0.0.

Si le paramètre hebrew vaut TRUE, le paramètre fl sera utilisé pour générer une chaîne au format hébreux. Les formats disponibles sont : CAL_JEWISH_ADD_ALAFIM_GERESH, CAL_JEWISH_ADD_ALAFIM et CAL_JEWISH_ADD_GERESHAYIM.

Liste de paramètres

julianday

Le nombre de jours Julien, sous la forme d'un entier

Valeurs de retour

La date Juive, sous la forme d'une chaîne de caractères "mois/jour/année".

Exemples

Exemple #1 Exemple avec jdtojewish()

<?php
echo jdtojewish(gregoriantojd(10, 8, 2002), true,
       CAL_JEWISH_ADD_GERESHAYIM + CAL_JEWISH_ADD_ALAFIM + CAL_JEWISH_ADD_ALAFIM_GERESH);
?>

Voir aussi

  • jewishtojd() - Convertit une date du calendrier Juif en nombre de jours du calendrier Julien
  • cal_from_jd() - Convertit le nombre de jours Julien en un calendrier spécifique


Convertit le nombre de jours du calendrier Julien en date du calendrier Julien

  • « jdtojewish
  • jdtounix »
  • PHP Manual
  • Calendar Fonctions
  • Convertit le nombre de jours du calendrier Julien en date du calendrier Julien

jdtojulian

(PHP 4, PHP 5, PHP 7)

jdtojulian — Convertit le nombre de jours du calendrier Julien en date du calendrier Julien

Description

string jdtojulian ( int $julianday )

Convertit le nombre de jours du calendrier Julien en une chaîne contenant la date du calendrier Julien, au format "mois/jour/année".

Liste de paramètres

julianday

Le nombre de jours Julien, sous la forme d'un entier

Valeurs de retour

La date Julien, sous la forme d'une chaîne de caractères "mois/jour/année".

Voir aussi

  • juliantojd() - Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien
  • cal_from_jd() - Convertit le nombre de jours Julien en un calendrier spécifique


Convertit un jour Julien en timestamp UNIX

  • « jdtojulian
  • jewishtojd »
  • PHP Manual
  • Calendar Fonctions
  • Convertit un jour Julien en timestamp UNIX

jdtounix

(PHP 4, PHP 5, PHP 7)

jdtounix — Convertit un jour Julien en timestamp UNIX

Description

int jdtounix ( int $jday )

Retourne un timestamp UNIX correspondant au jour Julien jday ou FALSE si jday n'est pas dans l'intervalle de validité de l'époque UNIX. (années grégoriennes entre 1970 et 2037 ou 2440588 <= jday <= 2465342 .) Le temps retourné est un temps local (et non GMT).

Liste de paramètres

jday

Le nombre de jours Julien, compris entre 2440588 et 2465342.

Valeurs de retour

Le timestamp unix pour le début du jour Julien donné.

Voir aussi

  • unixtojd() - Convertit un timestamp UNIX en un jour Julien


Convertit une date du calendrier Juif en nombre de jours du calendrier Julien

  • « jdtounix
  • juliantojd »
  • PHP Manual
  • Calendar Fonctions
  • Convertit une date du calendrier Juif en nombre de jours du calendrier Julien

jewishtojd

(PHP 4, PHP 5, PHP 7)

jewishtojd — Convertit une date du calendrier Juif en nombre de jours du calendrier Julien

Description

int jewishtojd ( int $month , int $day , int $year )

Bien qu'il soit possible de manipuler des dates à partir de l'an 1 (3761 avant J.C.), une telle utilisation a peu de sens. Le calendrier juif a été utilisé depuis plusieurs dizaines de siècles, mais dans les premiers temps, il n'y avait pas de formule pour déterminer le début du mois. Un nouveau mois commençait quand une nouvelle lune était observée.

Liste de paramètres

month

Le mois, sous la forme d'un nombre entre 1 et 13

day

Le jour, sous la forme d'un nombre entre 1 et 30

year

L'année, sous la forme d'un nombre entre 1 et 9999

Valeurs de retour

Le jour Julien pour la date Juive donnée, sous la forme d'un entier.

Voir aussi

  • jdtojewish() - Convertit le nombre de jours du calendrier Julien en date du calendrier juif
  • cal_to_jd() - Convertit un calendrier en nombre de jours Julien


Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien

  • « jewishtojd
  • unixtojd »
  • PHP Manual
  • Calendar Fonctions
  • Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien

juliantojd

(PHP 4, PHP 5, PHP 7)

juliantojd — Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien

Description

int juliantojd ( int $month , int $day , int $year )

Intervalle de validité du calendrier Julien : 4713 avant JC à 9999 après J.C.

Bien qu'il soit possible de manipuler des dates jusqu'en 4713 avant JC, une telle utilisation n'est pas significative. En effet, ce calendrier fut créé en 46 avant J.C., et ses détails ne furent finalisés qu'au plus tôt en 8 après JC, et probablement pas avant le quatrième siècle après JC. De plus, le début de l'année variait suivant les peuples, certains n'acceptant pas janvier comme premier mois de l'année.

Attention

Souvenez-vous, le calendrier courant du système utilisé sur le Web est un calendrier Grégorien. gregoriantojd() peut être utilisé pour convertir ce genre de dates en un nombre de jours du calendrier Julien.

Liste de paramètres

month

Le mois, sous la forme d'un nombre entre 1 (pour Janvier) et 12 (pour Décembre)

day

Le jour, sous la forme d'un nombre entre 1 et 31

year

L'année, sous la forme d'un nombre entre -4713 et 9999

Valeurs de retour

Le jour Julien pour la date Julienne donnée, sous la forme d'un entier.

Voir aussi

  • jdtojulian() - Convertit le nombre de jours du calendrier Julien en date du calendrier Julien
  • cal_to_jd() - Convertit un calendrier en nombre de jours Julien


Convertit un timestamp UNIX en un jour Julien

  • « juliantojd
  • Date/Heure »
  • PHP Manual
  • Calendar Fonctions
  • Convertit un timestamp UNIX en un jour Julien

unixtojd

(PHP 4, PHP 5, PHP 7)

unixtojd — Convertit un timestamp UNIX en un jour Julien

Description

int unixtojd ([ int $timestamp = time() ] )

Retourne le jour Julien du timestamp UNIX timestamp (nombre de secondes depuis le 1/1/1970), ou pour le jour courant si timestamp est omis.

Liste de paramètres

timestamp

Un timestamp unix à convertir.

Valeurs de retour

Un nombre de jours Julien, sous la forme d'un entier.

Voir aussi

  • jdtounix() - Convertit un jour Julien en timestamp UNIX


Date et Heure

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • DateTime — La classe DateTime
    • DateTime::add — Ajoute une durée à un objet DateTime
    • DateTime::__construct — Retourne un nouvel objet DateTime
    • DateTime::createFromFormat — Retourne un nouvel objet DateTime formaté
    • DateTime::getLastErrors — Retourne les dernières erreurs et alertes
    • DateTime::modify — Modifie le timestamp
    • DateTime::__set_state — Le gestionnaire __set_state
    • DateTime::setDate — Assigne la date
    • DateTime::setISODate — Configure une date ISO
    • DateTime::setTime — Assigne l'heure
    • DateTime::setTimestamp — Assigne la date et l'heure à l'aide d'un timestamp Unix
    • DateTime::setTimezone — Configure le fuseau horaire de l'objet DateTime
    • DateTime::sub — Soustrait une durée à un objet DateTime
  • DateTimeImmutable — La classe DateTimeImmutable
    • DateTimeImmutable::add — Ajoute un nombre de jours, mois, années, heures, minutes et secondes
    • DateTimeImmutable::__construct — Retourne un nouvel objet DateTimeImmutable
    • DateTimeImmutable::createFromFormat — Retourne le nouvel objet DateTimeImmutable formatté suivant le format spécifié
    • DateTimeImmutable::createFromMutable — Retourne le nouvel objet DateTimeImmutable qui contient l'objet DateTime fourni
    • DateTimeImmutable::getLastErrors — Retourne les alertes et erreurs
    • DateTimeImmutable::modify — Créé un nouvel objet dont le timestamp a été modifié
    • DateTimeImmutable::__set_state — Le gestionnaire __set_state
    • DateTimeImmutable::setDate — Définit la date
    • DateTimeImmutable::setISODate — Définit la date ISO
    • DateTimeImmutable::setTime — Définit le temps
    • DateTimeImmutable::setTimestamp — Définit la date et l'heure basé sur un timestamp Unix
    • DateTimeImmutable::setTimezone — Définit le décalage horaire
    • DateTimeImmutable::sub — Soustrait un nombre de jours, mois, années, heures et secondes
  • DateTimeInterface — La classe DateTimeInterface
    • DateTime::diff — Retourne la différence entre deux objets DateTime
    • DateTime::format — Retourne une date formatée suivant le format fourni
    • DateTime::getOffset — Retourne le décalage horaire
    • DateTime::getTimestamp — Récupère le timestamp Unix
    • DateTime::getTimezone — Retourne le fuseau horaire relatif au DateTime fourni
    • DateTime::__wakeup — Le gestionnaire __wakeup
  • DateTimeZone — La classe DateTimeZone
    • DateTimeZone::__construct — Crée un nouvel objet DateTimeZone
    • DateTimeZone::getLocation — Retourne les informations géographiques d'un fuseau horaire
    • DateTimeZone::getName — Retourne le nom du fuseau horaire
    • DateTimeZone::getOffset — Retourne le décalage GMT d'un fuseau horaire
    • DateTimeZone::getTransitions — Retourne toutes les transitions d'un fuseau horaire
    • DateTimeZone::listAbbreviations — Retourne un tableau associatif, décrivant un fuseau horaire
    • DateTimeZone::listIdentifiers — Retourne un tableau numérique contenant tous les identifiants de fuseaux horaires définis
  • DateInterval — La classe DateInterval
    • DateInterval::__construct — Crée un nouvel objet DateInterval
    • DateInterval::createFromDateString — Configure un objet DateInterval à partir des parties d'une chaîne
    • DateInterval::format — Formate l'intervalle
  • DatePeriod — La classe DatePeriod
    • DatePeriod::__construct — Crée un nouvel objet DatePeriod
    • DatePeriod::getDateInterval — Gets the interval
    • DatePeriod::getEndDate — Gets the end date
    • DatePeriod::getStartDate — Gets the start date
  • Fonctions Date/Heure
    • checkdate — Valide une date grégorienne
    • date_add — Alias de DateTime::add
    • date_create_from_format — Alias de DateTime::createFromFormat
    • date_create_immutable_from_format — Alias de DateTimeImmutable::createFromFormat
    • date_create_immutable — Alias de DateTimeImmutable::__construct
    • date_create — Alias de DateTime::__construct
    • date_date_set — Alias de DateTime::setDate
    • date_default_timezone_get — Récupère le décalage horaire par défaut utilisé par toutes les fonctions date/heure d'un script
    • date_default_timezone_set — Définit le décalage horaire par défaut de toutes les fonctions date/heure
    • date_diff — Alias de DateTime::diff
    • date_format — Alias de DateTime::format
    • date_get_last_errors — Alias de DateTime::getLastErrors
    • date_interval_create_from_date_string — Alias de DateInterval::createFromDateString
    • date_interval_format — Alias de DateInterval::format
    • date_isodate_set — Alias de DateTime::setISODate
    • date_modify — Alias de DateTime::modify
    • date_offset_get — Alias de DateTime::getOffset
    • date_parse_from_format — Récupère les informations d'une date donnée suivant un format spécifique
    • date_parse — Retourne un tableau associatif avec des informations détaillées sur une date donnée
    • date_sub — Alias de DateTime::sub
    • date_sun_info — Retourne un tableau avec les informations sur le lever/coucher du soleil ainsi que le début et la fin de l'aube
    • date_sunrise — Retourne l'heure de lever du soleil pour un jour et un endroit donnés
    • date_sunset — Retourne l'heure de coucher du soleil pour un jour et un endroit donnés
    • date_time_set — Alias de DateTime::setTime
    • date_timestamp_get — Alias de DateTime::getTimestamp
    • date_timestamp_set — Alias de DateTime::setTimestamp
    • date_timezone_get — Alias de DateTime::getTimezone
    • date_timezone_set — Alias de DateTime::setTimezone
    • date — Formate une date/heure locale
    • getdate — Retourne la date/heure
    • gettimeofday — Retourne l'heure actuelle
    • gmdate — Formate une date/heure GMT/CUT
    • gmmktime — Retourne le timestamp UNIX d'une date GMT
    • gmstrftime — Formate une date/heure GMT/CUT en fonction de la configuration locale
    • idate — Formate une date/heure locale en tant qu'entier
    • localtime — Récupère l'heure locale
    • microtime — Retourne le timestamp UNIX actuel avec les microsecondes
    • mktime — Retourne le timestamp UNIX d'une date
    • strftime — Formate une date/heure locale avec la configuration locale
    • strptime — Analyse une date générée par strftime
    • strtotime — Transforme un texte anglais en timestamp
    • time — Retourne le timestamp UNIX actuel
    • timezone_abbreviations_list — Alias de DateTimeZone::listAbbreviations
    • timezone_identifiers_list — Alias de DateTimeZone::listIdentifiers
    • timezone_location_get — Alias de DateTimeZone::getLocation
    • timezone_name_from_abbr — Retourne le nom du fuseau horaire à partir de son abréviation
    • timezone_name_get — Alias de DateTimeZone::getName
    • timezone_offset_get — Alias de DateTimeZone::getOffset
    • timezone_open — Alias de DateTimeZone::__construct
    • timezone_transitions_get — Alias de DateTimeZone::getTransitions
    • timezone_version_get — Lit la version de la timezonedb
  • Formats supportés de temps et de dates
    • Formats pour les temps (Time)
    • Formats de dates
    • Formats composés
    • Formats relatifs
  • Liste des Fuseaux Horaires Supportés
    • Afrique
    • Amerique
    • Antarctique
    • Arctique
    • Asie
    • Atlantique
    • Australie
    • Europe
    • Indien
    • Pacifique
    • Autres


Introduction

Ces fonctions vous permettent de récupérer la date et l'heure depuis le serveur où le script PHP s'exécute. Vous pouvez utiliser ces fonctions pour formater la date et l'heure de différentes façons.

Les informations quant à la date et l'heure sont stockées en interne comme nombre sur 64 bits, aussi, toutes les dates imaginables (y compris les dates négatives) sont supportées. L'intervalle va de 292 billions d'années dans le passé, et la même valeur dans le futur.

Note: Gardez à l'esprit que ces fonctions sont indépendantes de la configuration locale de votre système. Assurez-vous donc de prendre en considération l'heure d'été (en utilisant e.g. $date = strtotime('+7 days', $date) et non $date += 7*24*60*60) ainsi que les années bissextiles lorsque vous utilisez ces fonctions.

Note: Les fuseaux horaires référencés dans cette section peuvent être trouvés dans la section Liste des Fuseaux Horaires Supportés.


Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Note: Récupération de la dernière base de données des fuseaux horaires

La dernière version de la base de données des fuseaux horaires peut être installée via le paquet PECL » timezonedb.

Note: Support DateTime expérimental en PHP 5.1.x

Bien que la classe DateTime (et les fonctions connexes) soit activée par défaut depuis PHP 5.2.0, il est possible d'ajouter un support expérimental dans PHP 5.1.x en utilisant le drapeau suivant lors de la compilation : CFLAGS=-DEXPERIMENTAL_DATE_SUPPORT=1


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configurations pour les dates et heures
Nom | Défaut | Modifiable | Historique
date.default_latitude | "31.7667" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.default_longitude | "35.2333" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.sunrise_zenith | "90.583333" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.sunset_zenith | "90.583333" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.timezone | "" | PHP_INI_ALL | Disponible depuis PHP 5.1.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

date.default_latitude float

La latitude par défaut.

date.default_longitude float

La longitude par défaut.

date.sunrise_zenith float

L'heure de lever du soleil par défaut.

date.sunset_zenith float

L'heure du coucher du soleil par défaut.

date.timezone string

Le décalage horaire par défaut utilisé par toutes les fonctions date/heure. Avant PHP 5.3.0, ceci ne fonctionnait que si la variable d'environnement TZ n'est pas définie. L'ordre des décalages horaires utilisés si aucun n'est spécifié est explicitement décrit dans la page de documentation sur la fonction date_default_timezone_get(). Voir Liste des Fuseaux Horaires Supportés pour une liste complète des décalages horaires supportés.

Note: Les quatre premières options de configuration sont actuellement utilisées uniquement par les fonctions date_sunrise() et date_sunset().


Constantes pré-définies

Les constantes DATE_ sont définies depuis PHP 5.1.1 et offrent une représentation standard des dates, qui peut être utilisée avec toutes les fonctions de formatage de date (comme date()).

Les constantes suivantes existent depuis PHP 5.1.2 et spécifient un format retourné par les fonctions date_sunrise() et date_sunset().

SUNFUNCS_RET_TIMESTAMP (entier)
Timestamp
SUNFUNCS_RET_STRING (entier)
Heures:minutes (exemple: 08:02)
SUNFUNCS_RET_DOUBLE (entier)
Heures en tant que nombre à point flottant (exemple 8.75)


La classe DateTime

(PHP 5 >= 5.2.0, PHP 7)

Introduction

Représentation d'une date et heure.

Synopsis de la classe

DateTime implements DateTimeInterface {
/* Constantes */
const string ATOM = "Y-m-d\TH:i:sP" ;
const string COOKIE = "l, d-M-Y H:i:s T" ;
const string ISO8601 = "Y-m-d\TH:i:sO" ;
const string RFC822 = "D, d M y H:i:s O" ;
const string RFC850 = "l, d-M-y H:i:s T" ;
const string RFC1036 = "D, d M y H:i:s O" ;
const string RFC1123 = "D, d M Y H:i:s O" ;
const string RFC2822 = "D, d M Y H:i:s O" ;
const string RFC3339 = "Y-m-d\TH:i:sP" ;
const string RSS = "D, d M Y H:i:s O" ;
const string W3C = "Y-m-d\TH:i:sP" ;
/* Méthodes */
public __construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
public DateTime add ( DateInterval $interval )
public static DateTime createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )
public static array getLastErrors ( void )
public DateTime modify ( string $modify )
public static DateTime __set_state ( array $array )
public DateTime setDate ( int $year , int $month , int $day )
public DateTime setISODate ( int $year , int $week [, int $day = 1 ] )
public DateTime setTime ( int $hour , int $minute [, int $second = 0 ] )
public DateTime setTimestamp ( int $unixtimestamp )
public DateTime setTimezone ( DateTimeZone $timezone )
public DateTime sub ( DateInterval $interval )
public DateInterval diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )
public string format ( string $format )
public int getOffset ( void )
public int getTimestamp ( void )
public DateTimeZone getTimezone ( void )
public __wakeup ( void )
}

Constantes pré-définies

DateTime::ATOM
DATE_ATOM
Atom (exemple : 2005-08-15T15:52:01+00:00)
DateTime::COOKIE
DATE_COOKIE
Cookies HTTP (exemple : Monday, 15-Aug-2005 15:52:01 UTC)
DateTime::ISO8601
DATE_ISO8601
ISO-8601 (exemple : 2005-08-15T15:52:01+0000)
DateTime::RFC822
DATE_RFC822
RFC 822 (exemple : Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC850
DATE_RFC850
RFC 850 (exemple : Monday, 15-Aug-05 15:52:01 UTC)
DateTime::RFC1036
DATE_RFC1036
RFC 1036 (exemple : Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC1123
DATE_RFC1123
RFC 1123 (exemple : Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC2822
DATE_RFC2822
RFC 2822 (exemple : Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC3339
DATE_RFC3339
Identique à DATE_ATOM (Depuis PHP 5.1.3)
DateTime::RSS
DATE_RSS
RSS (exemple : Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::W3C
DATE_W3C
World Wide Web Consortium (exemple : 2005-08-15T15:52:01+00:00)

Historique

Version | Description
5.5.0 | La classe implémente désormais DateTimeInterface.
5.4.24 | La constante COOKIE a été modifiée pour se conformer à la RFC 1036, utilisant 4 digits pour l'année plutôt que 2 (RFC 850) comme c'était le cas dans les versions précédentes.
5.2.2 | La comparaison d'objet DateTime avec les opérateurs de comparaison fonctionne maintenant normalement. Dans les versions antérieures, tous les objets DateTime étaient considérés comme égaux (en utilisant ==).

Sommaire

  • DateTime::add — Ajoute une durée à un objet DateTime
  • DateTime::__construct — Retourne un nouvel objet DateTime
  • DateTime::createFromFormat — Retourne un nouvel objet DateTime formaté
  • DateTime::getLastErrors — Retourne les dernières erreurs et alertes
  • DateTime::modify — Modifie le timestamp
  • DateTime::__set_state — Le gestionnaire __set_state
  • DateTime::setDate — Assigne la date
  • DateTime::setISODate — Configure une date ISO
  • DateTime::setTime — Assigne l'heure
  • DateTime::setTimestamp — Assigne la date et l'heure à l'aide d'un timestamp Unix
  • DateTime::setTimezone — Configure le fuseau horaire de l'objet DateTime
  • DateTime::sub — Soustrait une durée à un objet DateTime


Ajoute une durée à un objet DateTime

  • « DateTime
  • DateTime::__construct »
  • PHP Manual
  • DateTime
  • Ajoute une durée à un objet DateTime

DateTime::add

date_add

(PHP 5 >= 5.3.0, PHP 7)

DateTime::add -- date_add — Ajoute une durée à un objet DateTime

Description

Style orienté objet

public DateTime DateTime::add ( DateInterval $interval )

Style procédural

DateTime date_add ( DateTime $object , DateInterval $interval )

Ajoute la durée de l'objet DateInterval à l'objet DateTime.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

interval

Un objet DateInterval

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::add()

Style orienté objet

<?php
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P10D'));
echo $date->format('Y-m-d') . "\n";
?>

Style procédural

<?php
$date = date_create('2000-01-01');
date_add($date, date_interval_create_from_date_string('10 days'));
echo date_format($date, 'Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2000-01-11

Exemple #2 Autres exemples avec DateTime::add()

<?php
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('PT10H30S'));
echo $date->format('Y-m-d H:i:s') . "\n";

$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P7Y5M4DT4H3M2S'));
echo $date->format('Y-m-d H:i:s') . "\n";
?>

L'exemple ci-dessus va afficher :

2000-01-01 10:00:30
2007-06-05 04:03:02

Exemple #3 Attention à l'ajout de mois

<?php
$date = new DateTime('2000-12-31');
$interval = new DateInterval('P1M');

$date->add($interval);
echo $date->format('Y-m-d') . "\n";

$date->add($interval);
echo $date->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-01-31
2001-03-03

Notes

DateTime::modify() est une alternative pouvant être utilisée avec PHP 5.2.

Voir aussi

  • DateTime::sub() - Soustrait une durée à un objet DateTime
  • DateTime::diff() - Retourne la différence entre deux objets DateTime
  • DateTime::modify() - Modifie le timestamp


Retourne un nouvel objet DateTime

  • « DateTime::add
  • DateTime::createFromFormat »
  • PHP Manual
  • DateTime
  • Retourne un nouvel objet DateTime

DateTime::__construct

date_create

(PHP 5 >= 5.2.0, PHP 7)

DateTime::__construct -- date_create — Retourne un nouvel objet DateTime

Description

Style orienté objet

public DateTime::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Style procédural

DateTime date_create ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Retourne un nouvel objet DateTime.

Liste de paramètres

time

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

Passez NULL ici pour obtenir le temps courant en utilisant le paramètre $timezone.

timezone

Un objet DateTimeZone representant le fuseau horaire de $time.

Si$timezone est omis, le fuseau horaire actuel sera utilisé.

Note:

Le paramètre $timezone et le fuseau horaire actuels sont ignorés lorsque paramètre $time est un timestamp UNIX (e.g. @946684800) ou précise un fuseau (e.g. 2010-01-28T15:00:00+02:00).

Valeurs de retour

Retourne une nouvelle instance DateTime. Style procédural retourne FALSE en cas d'erreur.

Erreurs / Exceptions

Émet un Exception en cas d'erreur.

Historique

Version | Description
5.3.0 | Si le paramètre time contient un format date/heure invalide, alors une exception sera lancée. Précédemment, une erreur était émise.

Exemples

Exemple #1 Exemple avec DateTime::__construct()

Style orienté objet

<?php
try {
    $date = new DateTime('2000-01-01');
} catch (Exception $e) {
    echo $e->getMessage();
    exit(1);
}

echo $date->format('Y-m-d');
?>

Style procédural

<?php
$date = date_create('2000-01-01');
if (!$date) {
    $e = date_get_last_errors();
    foreach ($e['errors'] as $error) {
        echo "$error\n";
    }
    exit(1);
}

echo date_format($date, 'Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2000-01-01

Exemple #2 Autres exemples avec DateTime::__construct()

<?php
// date/time spécifiés dans le fuseau de votre machine
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";

// date/time dans un fuseau précis.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// date/time courants dans le fuseau de votre machine
$date = new DateTime();
echo $date->format('Y-m-d H:i:sP') . "\n";

// date/time courants dans un fuseau précis.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Utilisation d'un timestamp Unix. Notez que le résultat est dans le fuseau UTC.
$date = new DateTime('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Valeur non existante
$date = new DateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

2000-01-01 00:00:00-05:00
2000-01-01 00:00:00+12:00
2010-04-24 10:24:16-04:00
2010-04-25 02:24:16+12:00
2000-01-01 00:00:00+00:00
2000-03-01 00:00:00-05:00

Voir aussi

  • DateTime::createFromFormat() - Retourne un nouvel objet DateTime formaté
  • DateTimeZone::__construct() - Crée un nouvel objet DateTimeZone
  • Formats sur les dates
  • Paramètre ini date.timezone
  • date_default_timezone_set() - Définit le décalage horaire par défaut de toutes les fonctions date/heure
  • DateTime::getLastErrors() - Retourne les dernières erreurs et alertes
  • checkdate() - Valide une date grégorienne


Retourne un nouvel objet DateTime formaté

  • « DateTime::__construct
  • DateTime::getLastErrors »
  • PHP Manual
  • DateTime
  • Retourne un nouvel objet DateTime formaté

DateTime::createFromFormat

date_create_from_format

(PHP 5 >= 5.3.0, PHP 7)

DateTime::createFromFormat -- date_create_from_format — Retourne un nouvel objet DateTime formaté

Description

Style orienté objet

public static DateTime DateTime::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )

Style procédural

DateTime date_create_from_format ( string $format , string $time [, DateTimeZone $timezone ] )

Retourne un nouvel objet DateTime formaté.

Liste de paramètres

format

Le format à utiliser. Voir les options de formatage ci-dessous. Dans le plupart des cas, les mêmes lettres que pour la fonction date() peuvent être utilisées.

Les caractères suivants sont reconnus pour le paramètre format
format character | Description | Exemple de valeurs analysées
Jour --- ---
d et j | Jour du mois, sur 2 chiffres, avec ou sans le zéro initial | 01 à 31 ou 1 à 31
D and l | Une représentation textuelle du jour | De Mon jusqu'à Sun ou de Sunday jusqu'à Saturday
S | Préfixe anglais du jour du mois, sur 2 caractères. Il sera ignoré lors de l'analyse. | st, nd, rd ou th.
z | Le jour de l'année (en commençant à 0) | 0 through 365
Mois --- ---
F et M | Une représentation textuelle du mois, comme January ou Sept | De January à December ou de Jan à Dec
m et n | Une représentation numérique du mois, avec ou sans zéro initial | De 01 à 12 ou de 1 à 12
Année --- ---
Y | Une représentation complète de l'année, sur 4 chiffres | Exemples : 1999 ou 2003
y | Une représentation partielle de l'année, sur 2 chiffres (qui doit être dans l'intervalle 1970-2069, inclus) | Exemples : 99 ou 03 (seront interprétés comme l'année 1999 et l'année 2003, respectivement)
Heure --- ---
a et A | Ante meridiem et Post meridiem | am ou pm
h et g | L'heure au format 12-heures, avec ou sans zéro initial | De 1 à 12 ou de 01 à 12
H et G | L'heure au format 24-heures, avec ou sans zéro initial | De 0 à 23 ou de 00 à 23
i | Les minutes, avec un zéro initial | De 00 à 59
s | Les secondes, avec un zéro initial | De 00 à 59
u | Les microsecondes (jusqu'à 6 chiffres) | Exemple : 45, 654321
Fuseau horaire --- ---
e, O, P et T | L'identifiant du fuseau horaire, ou la différence en heures avec UTC, ou la différence avec UTC avec deux points (:) entre les heures et les minutes, ou l'abréviation du fuseau horaire | Exemples : UTC, GMT, Atlantic/Azores ou +0200 ou +02:00 ou EST, MDT
Date/heure complète --- ---
U | Le nombre de secondes depuis l'époque Unix (January 1 1970 00:00:00 GMT) | Exemple : 1292177455
Espace et séparateurs --- ---
(espace) | Un espace ou une tabulation | Exemple :
# Un des symboles de séparation suivants : ;, :, /, ., ,, -, ( ou ) Exemple : /
;, :, /, ., ,, -, ( ou ) | Le caractère spécifié. | Exemple : -
? Un octet aléatoire Exemple : ^ (Be aware that for UTF-8 characracters you might need more than one ?. In this case, using * is probably what you want instead)
* Octets aléatoires jusqu'au prochain séparateur ou chiffre Exemple : * dans Y-*-d avec la chaîne 2009-aWord-08 trouvera la chaîne aWord
! Réinitialise tous les champs (année, mois, jour, heure, minute, seconde ainsi que les informations quant au fuseau horaire) à l'heure de l'époque Unix Sans le caractère !, tous les champs seront définis à la date et heure courante.
| Réinitialise tous les champs (année, mois, jour, heure, minute, seconde ainsi que les informations quant au fuseau horaire) à l'heure de l'époque Unix s'ils n'ont pas encore été analysés Y-m-d| définira l'année, le mois et le jour avec les informations trouvées dans la chaîne analysée, mais aussi l'heure, les minutes et les secondes à 0.
+ Si le spécifieur de format est présent, les données restantes de la chaîne ne causeront pas une erreur, mais une alerte Utilisez la méthode DateTime::getLastErrors() pour identifier la présence de données restantes.

Les caractères non reconnus dans le format feront échouer l'analyse et un message d'erreur sera ajouté à la structure retournée. Vous pouvez utiliser la méthode DateTime::getLastErrors() pour récupérer les messages d'erreur.

Si format n'est pas composé du caractère ! alors les valeurs de temps générées qui sont absentes de format prendront comme valeur le temps système.

Si format contient le caractère !, alors les valeurs de temps générées qui sont absentes de format ainsi que les valeurs situées à gauche de ! prendront des valeurs mesurées depuis Unix epoch.

Le début de l'époque Unix est le 01/01/1970 à 00:00:00 UTC.

time

Chaîne représentant l'heure.

timezone

Un objet DateTimeZone représentant le fuseau horaire désiré.

Si timezone est omis et time ne contient pas de fuseau, le fuseau courant sera utilisé.

Note:

Le paramètre timezone et le fuseau courant sont ignorés lorsque le paramètre time contient un timestamp (par ex 946684800) ou précise un fuseau (par ex 2010-01-28T15:00:00+02:00).

Valeurs de retour

Retourne un nouvel objet DateTime ou FALSE si une erreur survient.

Historique

Version | Description
5.3.9 | Le spécifieur + du paramètre format a été ajouté.

Exemples

Exemple #1 Exemple avec DateTime::createFromFormat()

Style orienté objet

<?php
$date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
echo $date->format('Y-m-d');
?>

Style procédural

<?php
$date = date_create_from_format('j-M-Y', '15-Feb-2009');
echo date_format($date, 'Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2009-02-15

Exemple #2 Autres exemples avec DateTime::createFromFormat()

<?php
echo 'Date courante: ' . date('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d';
$date = DateTime::createFromFormat($format, '2009-02-15');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'Y-m-!d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = '!d';
$date = DateTime::createFromFormat($format, '15');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Date courante: 2010-04-23 10:29:35
Format: Y-m-d; 2009-02-15 10:29:35
Format: Y-m-d H:i:s; 2009-02-15 15:16:17
Format: Y-m-!d H:i:s; 1970-01-15 15:16:17
Format: !d; 1970-01-15 00:00:00

Voir aussi

  • DateTime::__construct() - Retourne un nouvel objet DateTime
  • DateTime::getLastErrors() - Retourne les dernières erreurs et alertes
  • checkdate() - Valide une date grégorienne
  • strptime() - Analyse une date générée par strftime


Retourne les dernières erreurs et alertes

  • « DateTime::createFromFormat
  • DateTime::modify »
  • PHP Manual
  • DateTime
  • Retourne les dernières erreurs et alertes

DateTime::getLastErrors

date_get_last_errors

(PHP 5 >= 5.3.0, PHP 7)

DateTime::getLastErrors -- date_get_last_errors — Retourne les dernières erreurs et alertes

Description

Style orienté objet

public static array DateTime::getLastErrors ( void )

Style procédural

array date_get_last_errors ( void )

Retourne un tableau contenant les dernières erreurs et alertes obtenues lors de l'analyse de la chaîne de date.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les erreurs et alertes.

Exemples

Exemple #1 Exemple avec DateTime::getLastErrors()

Style orienté objet

<?php
try {
    $date = new DateTime('asdfasdf');
} catch (Exception $e) {
    // Juste pour l'exemple...
    print_r(DateTime::getLastErrors());

    // Manière orientée objets de gérer les erreurs (exceptions)
    // echo $e->getMessage();
}
?>

Style procédural

<?php
$date = date_create('asdfasdf');
print_r(date_get_last_errors());
?>

Les exemples ci-dessus vont afficher :

Array
(
    [warning_count] => 1
    [warnings] => Array
        (
            [6] => Double timezone specification
        )

    [error_count] => 1
    [errors] => Array
        (
            [0] => The timezone could not be found in the database
        )

)

Les indexes 6 et 0 de l'affichage de cet exemple se réfèrent à l'index du caractères dans la chaîne où l'erreur est survienue.


Modifie le timestamp

  • « DateTime::getLastErrors
  • DateTime::__set_state »
  • PHP Manual
  • DateTime
  • Modifie le timestamp

DateTime::modify

date_modify

(PHP 5 >= 5.2.0, PHP 7)

DateTime::modify -- date_modify — Modifie le timestamp

Description

Style orienté objet

public DateTime DateTime::modify ( string $modify )

Style procédural

DateTime date_modify ( DateTime $object , string $modify )

Modifie le timestamp d'un objet DateTime en l'incrémentant ou le décrémentant dans un format acceptable par strtotime().

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

modify

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Historique

Version | Description
5.3.6 | Les requêtes date/heure absolues prennent maintenant effets. Auparavant, seules les parties relatives étaient utilisées.
5.3.0 | Changement de valeur de retour de NULL à DateTime en cas de succès.

Exemples

Exemple #1 Exemple avec DateTime::modify()

Style orienté objet

<?php
$date = new DateTime('2006-12-12');
$date->modify('+1 day');
echo $date->format('Y-m-d');
?>

Style procédural

<?php
$date = date_create('2006-12-12');
date_modify($date, '+1 day');
echo date_format($date, 'Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2006-12-13

Exemple #2 Méfiez-vous lors de l'ajout ou la soustraction de mois

<?php
$date = new DateTime('2000-12-31');

$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";

$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-01-31
2001-03-03

Voir aussi

  • strtotime() - Transforme un texte anglais en timestamp
  • DateTime::add() - Ajoute une durée à un objet DateTime
  • DateTime::sub() - Soustrait une durée à un objet DateTime
  • DateTime::setDate() - Assigne la date
  • DateTime::setISODate() - Configure une date ISO
  • DateTime::setTime() - Assigne l'heure
  • DateTime::setTimestamp() - Assigne la date et l'heure à l'aide d'un timestamp Unix


Le gestionnaire __set_state

  • « DateTime::modify
  • DateTime::setDate »
  • PHP Manual
  • DateTime
  • Le gestionnaire __set_state

DateTime::__set_state

(PHP 5 >= 5.2.0, PHP 7)

DateTime::__set_state — Le gestionnaire __set_state

Description

public static DateTime DateTime::__set_state ( array $array )

Le gestionnaire __set_state().

Liste de paramètres

array

Le tableau d'initialisation.

Valeurs de retour

Retourne une nouvelle instance de l'objet DateTime.


Assigne la date

  • « DateTime::__set_state
  • DateTime::setISODate »
  • PHP Manual
  • DateTime
  • Assigne la date

DateTime::setDate

date_date_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setDate -- date_date_set — Assigne la date

Description

Style orienté objet

public DateTime DateTime::setDate ( int $year , int $month , int $day )

Style procédural

DateTime date_date_set ( DateTime $object , int $year , int $month , int $day )

Assigne la date courante de l'objet DateTime à une nouvelle date.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

year

Année de la date.

month

Mois de la date.

day

Jour de la date.

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Changement de valeur de retour de NULL à DateTime en cas de succès.

Exemples

Exemple #1 Exemple avec DateTime::setDate()

Style orienté objet

<?php
$date = new DateTime();
$date->setDate(2001, 2, 3);
echo $date->format('Y-m-d');
?>

Style procédural

<?php
$date = date_create();
date_date_set($date, 2001, 2, 3);
echo date_format($date, 'Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2001-02-03

Exemple #2 Les valeurs qui dépassent leurs bornes sont ajoutées à leur parent

<?php
$date = new DateTime();

$date->setDate(2001, 2, 28);
echo $date->format('Y-m-d') . "\n";

$date->setDate(2001, 2, 29);
echo $date->format('Y-m-d') . "\n";

$date->setDate(2001, 14, 3);
echo $date->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-02-28
2001-03-01
2002-02-03

Voir aussi

  • DateTime::setISODate() - Configure une date ISO
  • DateTime::setTime() - Assigne l'heure


Configure une date ISO

  • « DateTime::setDate
  • DateTime::setTime »
  • PHP Manual
  • DateTime
  • Configure une date ISO

DateTime::setISODate

date_isodate_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setISODate -- date_isodate_set — Configure une date ISO

Description

Style orienté objet

public DateTime DateTime::setISODate ( int $year , int $week [, int $day = 1 ] )

Style procédural

DateTime date_isodate_set ( DateTime $object , int $year , int $week [, int $day = 1 ] )

Configure une date au format ISO 8601 : en utilisant des décalages de semaines et de jours, au lieu de dates spécifiques.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

year

L'année de la date.

week

Le numéro de la semaine.

day

Décalage par rapport au premier jour de la semaine.

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Changement de valeur de retour de NULL à DateTime en cas de succès.

Exemples

Exemple #1 Exemple avec DateTime::setISODate()

Style orienté objet

<?php
$date = new DateTime();

$date->setISODate(2008, 2);
echo $date->format('Y-m-d') . "\n";

$date->setISODate(2008, 2, 7);
echo $date->format('Y-m-d') . "\n";
?>

Style procédural

<?php
$date = date_create();

date_isodate_set($date, 2008, 2);
echo date_format($date, 'Y-m-d') . "\n";

date_isodate_set($date, 2008, 2, 7);
echo date_format($date, 'Y-m-d') . "\n";
?>

Les exemples ci-dessus vont afficher :

2008-01-07
2008-01-13

Exemple #2 Les valeurs qui excèdent leur bornes s'ajoutent à leur parent

<?php
$date = new DateTime();

$date->setISODate(2008, 2, 7);
echo $date->format('Y-m-d') . "\n";

$date->setISODate(2008, 2, 8);
echo $date->format('Y-m-d') . "\n";

$date->setISODate(2008, 53, 7);
echo $date->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2008-01-13
2008-01-14
2009-01-04

Exemple #3 Calcul du mois dans lequel est une semaine

<?php
$date = new DateTime();
$date->setISODate(2008, 14);
echo $date->format('n');
?>

Les exemples ci-dessus vont afficher :

3

Voir aussi

  • DateTime::setDate() - Assigne la date
  • DateTime::setTime() - Assigne l'heure


Assigne l'heure

  • « DateTime::setISODate
  • DateTime::setTimestamp »
  • PHP Manual
  • DateTime
  • Assigne l'heure

DateTime::setTime

date_time_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setTime -- date_time_set — Assigne l'heure

Description

Style orienté objet

public DateTime DateTime::setTime ( int $hour , int $minute [, int $second = 0 ] )

Style procédural

DateTime date_time_set ( DateTime $object , int $hour , int $minute [, int $second = 0 ] )

Change le temps dans l'objet DateTime.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

hour

Heure du moment.

minute

Minute du moment.

second

Seconde du moment.

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Changement de valeur de retour de NULL à DateTime en cas de succès.

Exemples

Exemple #1 Exemple avec DateTime::setTime()

Style orienté objet

<?php
$date = new DateTime('2001-01-01');

$date->setTime(14, 55);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(14, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";

?>

Style procédural

<?php
$date = date_create('2001-01-01');

date_time_set($date, 14, 55);
echo date_format($date, 'Y-m-d H:i:s') . "\n";

date_time_set($date, 14, 55, 24);
echo date_format($date, 'Y-m-d H:i:s') . "\n";
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

2001-01-01 14:55:00
2001-01-01 14:55:24

Exemple #2 Les valeurs qui dépassent leur borne sont ajoutées à leur parent

<?php
$date = new DateTime('2001-01-01');

$date->setTime(14, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(14, 55, 65);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(14, 65, 24);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(25, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-01-01 14:55:24
2001-01-01 14:56:05
2001-01-01 15:05:24
2001-01-02 01:55:24

Voir aussi

  • DateTime::setDate() - Assigne la date
  • DateTime::setISODate() - Configure une date ISO


Assigne la date et l'heure à l'aide d'un timestamp Unix

  • « DateTime::setTime
  • DateTime::setTimezone »
  • PHP Manual
  • DateTime
  • Assigne la date et l'heure à l'aide d'un timestamp Unix

DateTime::setTimestamp

date_timestamp_set

(PHP 5 >= 5.3.0, PHP 7)

DateTime::setTimestamp -- date_timestamp_set — Assigne la date et l'heure à l'aide d'un timestamp Unix

Description

Style orienté objet

public DateTime DateTime::setTimestamp ( int $unixtimestamp )

Style procédural

DateTime date_timestamp_set ( DateTime $object , int $unixtimestamp )

Assigne la date et l'heure à l'aide d'un timestamp Unix.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

unixtimestamp

Timestamp Unix représentant la date et l'heure.

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::setTimestamp()

Style orienté objet

<?php
$date = new DateTime();
echo $date->format('U = Y-m-d H:i:s') . "\n";

$date->setTimestamp(1171502725);
echo $date->format('U = Y-m-d H:i:s') . "\n";
?>

Style procédural

<?php
$date = date_create();
echo date_format($date, 'U = Y-m-d H:i:s') . "\n";

date_timestamp_set($date, 1171502725);
echo date_format($date, 'U = Y-m-d H:i:s') . "\n";
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

1272508903 = 2010-04-28 22:41:43
1171502725 = 2007-02-14 20:25:25

Notes

Pour PHP 5.2, une alternative est de passer un timestamp Unix pour construire un nouvel objet DateTime comme montré dans l'exemple suivant.

Exemple #2 DateTime::setTimestamp() alternative pour PHP 5.2

<?php
$ts = 1171502725;
$date = new DateTime("@$ts");
echo $date->format('U = Y-m-d H:i:s') . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1171502725 = 2007-02-14 20:25:25

Voir aussi

  • DateTime::getTimestamp() - Récupère le timestamp Unix


Configure le fuseau horaire de l'objet DateTime

  • « DateTime::setTimestamp
  • DateTime::sub »
  • PHP Manual
  • DateTime
  • Configure le fuseau horaire de l'objet DateTime

DateTime::setTimezone

date_timezone_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setTimezone -- date_timezone_set — Configure le fuseau horaire de l'objet DateTime

Description

Style orienté objet

public DateTime DateTime::setTimezone ( DateTimeZone $timezone )

Style procédural

DateTime date_timezone_set ( DateTime $object , DateTimeZone $timezone )

Définit un nouveau fuseau horaire pour un object DateTime .

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

timezone

Un objet DateTimeZone représentant le fuseau horaire désiré.

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Changement de valeur de retour de NULL à DateTime en cas de succès.

Exemples

Exemple #1 Exemple avec DateTime::setTimeZone()

Style orienté objet

<?php
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

Style procédural

<?php
$date = date_create('2000-01-01', timezone_open('Pacific/Nauru'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";

date_timezone_set($date, timezone_open('Pacific/Chatham'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";
?>

Les exemples ci-dessus vont afficher :

2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45

Voir aussi

  • DateTime::getTimezone() - Retourne le fuseau horaire relatif au DateTime fourni
  • DateTimeZone::__construct() - Crée un nouvel objet DateTimeZone


Soustrait une durée à un objet DateTime

  • « DateTime::setTimezone
  • DateTimeImmutable »
  • PHP Manual
  • DateTime
  • Soustrait une durée à un objet DateTime

DateTime::sub

date_sub

(PHP 5 >= 5.3.0, PHP 7)

DateTime::sub -- date_sub — Soustrait une durée à un objet DateTime

Description

Style orienté objet

public DateTime DateTime::sub ( DateInterval $interval )

Style procédural

DateTime date_sub ( DateTime $object , DateInterval $interval )

Soustrait la durée spécifiée par l'objet DateInterval de l'objet DateTime.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

interval

Un objet DateInterval

Valeurs de retour

Retourne l'objet DateTime pour chainer les méthodes ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::sub()

Style orienté objet

<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P10D'));
echo $date->format('Y-m-d') . "\n";
?>

Style procédural

<?php
$date = date_create('2000-01-20');
date_sub($date, date_interval_create_from_date_string('10 days'));
echo date_format($date, 'Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2000-01-10

Exemple #2 Autres exemples avec DateTime::sub()

<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('PT10H30S'));
echo $date->format('Y-m-d H:i:s') . "\n";

$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P7Y5M4DT4H3M2S'));
echo $date->format('Y-m-d H:i:s') . "\n";
?>

L'exemple ci-dessus va afficher :

2000-01-19 13:59:30
1992-08-15 19:56:58

Exemple #3 Attention à la soustraction de mois

<?php
$date = new DateTime('2001-04-30');
$interval = new DateInterval('P1M');

$date->sub($interval);
echo $date->format('Y-m-d') . "\n";

$date->sub($interval);
echo $date->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-03-30
2001-03-02

Notes

DateTime::modify() est une alternative à utiliser avec PHP 5.2.

Voir aussi

  • DateTime::add() - Ajoute une durée à un objet DateTime
  • DateTime::diff() - Retourne la différence entre deux objets DateTime
  • DateTime::modify() - Modifie le timestamp


La classe DateTimeImmutable

(PHP 5 >= 5.5.0, PHP 7)

Introduction

Cette classe fonctionne de façon identique à DateTime sauf qu'elle ne se modifie jamais elle-même, mais retourne plutôt un nouvel objet.

Synopsis de la classe

DateTimeImmutable implements DateTimeInterface {
/* Méthodes */
public __construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
public DateTimeImmutable add ( DateInterval $interval )
public static DateTimeImmutable createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )
public static DateTimeImmutable createFromMutable ( DateTime $datetime )
public static array getLastErrors ( void )
public DateTimeImmutable modify ( string $modify )
public static DateTimeImmutable __set_state ( array $array )
public DateTimeImmutable setDate ( int $year , int $month , int $day )
public DateTimeImmutable setISODate ( int $year , int $week [, int $day = 1 ] )
public DateTimeImmutable setTime ( int $hour , int $minute [, int $second = 0 ] )
public DateTimeImmutable setTimestamp ( int $unixtimestamp )
public DateTimeImmutable setTimezone ( DateTimeZone $timezone )
public DateTimeImmutable sub ( DateInterval $interval )
public DateInterval diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )
public string format ( string $format )
public int getOffset ( void )
public int getTimestamp ( void )
public DateTimeZone getTimezone ( void )
public __wakeup ( void )
}

Sommaire

  • DateTimeImmutable::add — Ajoute un nombre de jours, mois, années, heures, minutes et secondes
  • DateTimeImmutable::__construct — Retourne un nouvel objet DateTimeImmutable
  • DateTimeImmutable::createFromFormat — Retourne le nouvel objet DateTimeImmutable formatté suivant le format spécifié
  • DateTimeImmutable::createFromMutable — Retourne le nouvel objet DateTimeImmutable qui contient l'objet DateTime fourni
  • DateTimeImmutable::getLastErrors — Retourne les alertes et erreurs
  • DateTimeImmutable::modify — Créé un nouvel objet dont le timestamp a été modifié
  • DateTimeImmutable::__set_state — Le gestionnaire __set_state
  • DateTimeImmutable::setDate — Définit la date
  • DateTimeImmutable::setISODate — Définit la date ISO
  • DateTimeImmutable::setTime — Définit le temps
  • DateTimeImmutable::setTimestamp — Définit la date et l'heure basé sur un timestamp Unix
  • DateTimeImmutable::setTimezone — Définit le décalage horaire
  • DateTimeImmutable::sub — Soustrait un nombre de jours, mois, années, heures et secondes


Ajoute un nombre de jours, mois, années, heures, minutes et secondes

  • « DateTimeImmutable
  • DateTimeImmutable::__construct »
  • PHP Manual
  • DateTimeImmutable
  • Ajoute un nombre de jours, mois, années, heures, minutes et secondes

DateTimeImmutable::add

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::add — Ajoute un nombre de jours, mois, années, heures, minutes et secondes

Description

public DateTimeImmutable DateTimeImmutable::add ( DateInterval $interval )

Identique à DateTime::add() mais fonctionne avec DateTimeImmutable.


Retourne un nouvel objet DateTimeImmutable

  • « DateTimeImmutable::add
  • DateTimeImmutable::createFromFormat »
  • PHP Manual
  • DateTimeImmutable
  • Retourne un nouvel objet DateTimeImmutable

DateTimeImmutable::__construct

date_create_immutable

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::__construct -- date_create_immutable — Retourne un nouvel objet DateTimeImmutable

Description

Style orienté objet

public DateTimeImmutable::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Style procédural

DateTimeImmutable date_create_immutable ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Identique à DateTime::__construct() mais fonctionne avec DateTimeImmutable.


Retourne le nouvel objet DateTimeImmutable formatté suivant le format spécifié

  • « DateTimeImmutable::__construct
  • DateTimeImmutable::createFromMutable »
  • PHP Manual
  • DateTimeImmutable
  • Retourne le nouvel objet DateTimeImmutable formatté suivant le format spécifié

DateTimeImmutable::createFromFormat

date_create_immutable_from_format

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::createFromFormat -- date_create_immutable_from_format — Retourne le nouvel objet DateTimeImmutable formatté suivant le format spécifié

Description

Style orienté objet

public static DateTimeImmutable DateTimeImmutable::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )

Style procédural

DateTimeImmutable date_create_immutable_from_format ( string $format , string $time [, DateTimeZone $timezone ] )

Identique à DateTime::createFromFormat() mais fonctionne avec DateTimeImmutable.


Retourne le nouvel objet DateTimeImmutable qui contient l'objet DateTime fourni

  • « DateTimeImmutable::createFromFormat
  • DateTimeImmutable::getLastErrors »
  • PHP Manual
  • DateTimeImmutable
  • Retourne le nouvel objet DateTimeImmutable qui contient l'objet DateTime fourni

DateTimeImmutable::createFromMutable

(PHP 5 >= 5.6.0, PHP 7)

DateTimeImmutable::createFromMutable — Retourne le nouvel objet DateTimeImmutable qui contient l'objet DateTime fourni

Description

public static DateTimeImmutable DateTimeImmutable::createFromMutable ( DateTime $datetime )

Liste de paramètres

datetime

L'objet DateTime mutable que vous voulez convertir en version immutable. Cet objet n'est pas modifié, mais un nouvel objet DateTimeImmutable est créé, contenant les mêmes informations de date, heure et de fuseau horaire.

Exemples

Exemple #1 Création d'un objet date heure immutable

<?php
$date = new DateTime("2014-06-20 11:45 Europe/London");

$immutable = DateTimeImmutable::createFromMutable( $date );
?>

Valeurs de retour

Retourne une nouvelle instance de la classe DateTimeImmutable.


Retourne les alertes et erreurs

  • « DateTimeImmutable::createFromMutable
  • DateTimeImmutable::modify »
  • PHP Manual
  • DateTimeImmutable
  • Retourne les alertes et erreurs

DateTimeImmutable::getLastErrors

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::getLastErrors — Retourne les alertes et erreurs

Description

public static array DateTimeImmutable::getLastErrors ( void )

Identique à DateTime::getLastErrors() mais fonctionne avec DateTimeImmutable.


Créé un nouvel objet dont le timestamp a été modifié

  • « DateTimeImmutable::getLastErrors
  • DateTimeImmutable::__set_state »
  • PHP Manual
  • DateTimeImmutable
  • Créé un nouvel objet dont le timestamp a été modifié

DateTimeImmutable::modify

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::modify — Créé un nouvel objet dont le timestamp a été modifié

Description

public DateTimeImmutable DateTimeImmutable::modify ( string $modify )

Crée un nouvel objet DateTimeImmutable dont le timestamp a été modifié. L'objet original ne sera pas modifié.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

modify

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

Valeurs de retour

Retourne le nouvel objet créé ou FALSE si une erreur survient.


Le gestionnaire __set_state

  • « DateTimeImmutable::modify
  • DateTimeImmutable::setDate »
  • PHP Manual
  • DateTimeImmutable
  • Le gestionnaire __set_state

DateTimeImmutable::__set_state

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::__set_state — Le gestionnaire __set_state

Description

public static DateTimeImmutable DateTimeImmutable::__set_state ( array $array )

Identique à DateTime::__set_state() mais fonctionne avec DateTimeImmutable.


Définit la date

  • « DateTimeImmutable::__set_state
  • DateTimeImmutable::setISODate »
  • PHP Manual
  • DateTimeImmutable
  • Définit la date

DateTimeImmutable::setDate

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setDate — Définit la date

Description

public DateTimeImmutable DateTimeImmutable::setDate ( int $year , int $month , int $day )

Identique à DateTime::setDate() mais fonctionne avec DateTimeImmutable.


Définit la date ISO

  • « DateTimeImmutable::setDate
  • DateTimeImmutable::setTime »
  • PHP Manual
  • DateTimeImmutable
  • Définit la date ISO

DateTimeImmutable::setISODate

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setISODate — Définit la date ISO

Description

public DateTimeImmutable DateTimeImmutable::setISODate ( int $year , int $week [, int $day = 1 ] )

Identique à DateTime::setISODate() mais fonctionne avec DateTimeImmutable.


Définit le temps

  • « DateTimeImmutable::setISODate
  • DateTimeImmutable::setTimestamp »
  • PHP Manual
  • DateTimeImmutable
  • Définit le temps

DateTimeImmutable::setTime

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setTime — Définit le temps

Description

public DateTimeImmutable DateTimeImmutable::setTime ( int $hour , int $minute [, int $second = 0 ] )

Identique à DateTime::setTime() mais fonctionne avec DateTimeImmutable.


Définit la date et l'heure basé sur un timestamp Unix

  • « DateTimeImmutable::setTime
  • DateTimeImmutable::setTimezone »
  • PHP Manual
  • DateTimeImmutable
  • Définit la date et l'heure basé sur un timestamp Unix

DateTimeImmutable::setTimestamp

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setTimestamp — Définit la date et l'heure basé sur un timestamp Unix

Description

public DateTimeImmutable DateTimeImmutable::setTimestamp ( int $unixtimestamp )

Identique à DateTime::setTimestamp() mais fonctionne avec DateTimeImmutable.


Définit le décalage horaire

  • « DateTimeImmutable::setTimestamp
  • DateTimeImmutable::sub »
  • PHP Manual
  • DateTimeImmutable
  • Définit le décalage horaire

DateTimeImmutable::setTimezone

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setTimezone — Définit le décalage horaire

Description

public DateTimeImmutable DateTimeImmutable::setTimezone ( DateTimeZone $timezone )

Identique à DateTime::setTimezone() mais fonctionne avec DateTimeImmutable.


Soustrait un nombre de jours, mois, années, heures et secondes

  • « DateTimeImmutable::setTimezone
  • DateTimeInterface »
  • PHP Manual
  • DateTimeImmutable
  • Soustrait un nombre de jours, mois, années, heures et secondes

DateTimeImmutable::sub

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::sub — Soustrait un nombre de jours, mois, années, heures et secondes

Description

public DateTimeImmutable DateTimeImmutable::sub ( DateInterval $interval )

Identique à DateTime::sub() mais fonctionne avec DateTimeImmutable.


La classe DateTimeInterface

(PHP 5 >= 5.5.0, PHP 7)

Introduction

Synopsis de la classe

DateTimeInterface {
/* Méthodes */
public DateInterval diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )
public string format ( string $format )
public int getOffset ( void )
public int getTimestamp ( void )
public DateTimeZone getTimezone ( void )
public __wakeup ( void )
}

Sommaire

  • DateTime::diff — Retourne la différence entre deux objets DateTime
  • DateTime::format — Retourne une date formatée suivant le format fourni
  • DateTime::getOffset — Retourne le décalage horaire
  • DateTime::getTimestamp — Récupère le timestamp Unix
  • DateTime::getTimezone — Retourne le fuseau horaire relatif au DateTime fourni
  • DateTime::__wakeup — Le gestionnaire __wakeup


Retourne la différence entre deux objets DateTime

  • « DateTimeInterface
  • DateTime::format »
  • PHP Manual
  • DateTimeInterface
  • Retourne la différence entre deux objets DateTime

DateTime::diff

DateTimeImmutable::diff

DateTimeInterface::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7)

DateTime::diff -- DateTimeImmutable::diff -- DateTimeInterface::diff -- date_diff — Retourne la différence entre deux objets DateTime

Description

Style orienté objet

public DateInterval DateTime::diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )
public DateInterval DateTimeImmutable::diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )
public DateInterval DateTimeInterface::diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )

Style procédural

DateInterval date_diff ( DateTimeInterface $datetime1 , DateTimeInterface $datetime2 [, bool $absolute = false ] )

Retourne la différence entre deux objets DateTimeInterface.

Liste de paramètres

datetime

La date à comparer.

absolute

Doit-on forcer l'intervalle à être positif ?

Valeurs de retour

L'objet DateInterval représentant la différence entre les deux dates ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::diff()

Style orienté objet

<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?>

Style procédural

<?php
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days');
?>

Les exemples ci-dessus vont afficher :

+2 days

Exemple #2 Comparaison de deux objets DateTime

Note:

Depuis PHP 5.2.2, les objets DateTime peuvent être comparés en utilisant les opérateurs de comparaison.

<?php
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");

var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)

Voir aussi

  • DateInterval::format() - Formate l'intervalle
  • DateTime::add() - Ajoute une durée à un objet DateTime
  • DateTime::sub() - Soustrait une durée à un objet DateTime


Retourne une date formatée suivant le format fourni

  • « DateTime::diff
  • DateTime::getOffset »
  • PHP Manual
  • DateTimeInterface
  • Retourne une date formatée suivant le format fourni

DateTime::format

DateTimeImmutable::format

DateTimeInterface::format

date_format

(PHP 5 >= 5.2.0, PHP 7)

DateTime::format -- DateTimeImmutable::format -- DateTimeInterface::format -- date_format — Retourne une date formatée suivant le format fourni

Description

Style orienté objet

public string DateTime::format ( string $format )
public string DateTimeImmutable::format ( string $format )
public string DateTimeInterface::format ( string $format )

Style procédural

string date_format ( DateTimeInterface $object , string $format )

Retourne une date formatée suivant le format fourni.

Liste de paramètres

object

Seulement en style procédural : un objet DateTime retourné par date_create()

format

Format accepté par la fonction date().

Valeurs de retour

Retourne la date formatée, sous forme de chaîne de caractères, en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::format()

Style orienté objet

<?php
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:s');
?>

Style procédural

<?php
$date = date_create('2000-01-01');
echo date_format($date, 'Y-m-d H:i:s');
?>

L'exemple ci-dessus va afficher :

2000-01-01 00:00:00

Notes

Cette méthode n'utilise pas les locales. Tous les affichages seront en anglais.

Voir aussi

  • date() - Formate une date/heure locale


Retourne le décalage horaire

  • « DateTime::format
  • DateTime::getTimestamp »
  • PHP Manual
  • DateTimeInterface
  • Retourne le décalage horaire

DateTime::getOffset

DateTimeImmutable::getOffset

DateTimeInterface::getOffset

date_offset_get

(PHP 5 >= 5.2.0, PHP 7)

DateTime::getOffset -- DateTimeImmutable::getOffset -- DateTimeInterface::getOffset -- date_offset_get — Retourne le décalage horaire

Description

Style orienté objet

public int DateTime::getOffset ( void )
public int DateTimeImmutable::getOffset ( void )
public int DateTimeInterface::getOffset ( void )

Style procédural

int date_offset_get ( DateTimeInterface $object )

Retourne le décalage horaire.

Liste de paramètres

object

Seulement en style procédural : un objet DateTime retourné par date_create()

Valeurs de retour

Retourne le décalage horaire en seconde, depuis UTC en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::getOffset()

Style orienté objet

<?php
$winter = new DateTime('2010-12-21', new DateTimeZone('America/New_York'));
$summer = new DateTime('2008-06-21', new DateTimeZone('America/New_York'));

echo $winter->getOffset() . "\n";
echo $summer->getOffset() . "\n";
?>

Style procédural

<?php
$winter = date_create('2010-12-21', timezone_open('America/New_York'));
$summer = date_create('2008-06-21', timezone_open('America/New_York'));

echo date_offset_get($winter) . "\n";
echo date_offset_get($summer) . "\n";
?>

Les exemples ci-dessus vont afficher :

-18000
-14400

Note : -18000 = -5 heures, -14400 = -4 heures.


Récupère le timestamp Unix

  • « DateTime::getOffset
  • DateTime::getTimezone »
  • PHP Manual
  • DateTimeInterface
  • Récupère le timestamp Unix

DateTime::getTimestamp

DateTimeImmutable::getTimestamp

DateTimeInterface::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7)

DateTime::getTimestamp -- DateTimeImmutable::getTimestamp -- DateTimeInterface::getTimestamp -- date_timestamp_get — Récupère le timestamp Unix

Description

Style orienté objet

public int DateTime::getTimestamp ( void )
public int DateTimeImmutable::getTimestamp ( void )
public int DateTimeInterface::getTimestamp ( void )

Style procédural

int date_timestamp_get ( DateTimeInterface $object )

Récupère le timestamp Unix.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le timestamp Unix représentant la date.

Exemples

Exemple #1 Exemple avec DateTime::getTimestamp()

Style orienté objet

<?php
$date = new DateTime();
echo $date->getTimestamp();
?>

Style procédural

<?php
$date = date_create();
echo date_timestamp_get($date);
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

1272509157

Notes

L'utilisation du paramètre U à la méthode DateTime::format() est une alternative lors de l'utilisation de PHP 5.2.

Voir aussi

  • DateTime::setTimestamp() - Assigne la date et l'heure à l'aide d'un timestamp Unix
  • DateTime::format() - Retourne une date formatée suivant le format fourni


Retourne le fuseau horaire relatif au DateTime fourni

  • « DateTime::getTimestamp
  • DateTime::__wakeup »
  • PHP Manual
  • DateTimeInterface
  • Retourne le fuseau horaire relatif au DateTime fourni

DateTime::getTimezone

DateTimeImmutable::getTimezone

DateTimeInterface::getTimezone

date_timezone_get

(PHP 5 >= 5.2.0, PHP 7)

DateTime::getTimezone -- DateTimeImmutable::getTimezone -- DateTimeInterface::getTimezone -- date_timezone_get — Retourne le fuseau horaire relatif au DateTime fourni

Description

Style orienté objet

public DateTimeZone DateTime::getTimezone ( void )
public DateTimeZone DateTimeImmutable::getTimezone ( void )
public DateTimeZone DateTimeInterface::getTimezone ( void )

Style procédural

DateTimeZone date_timezone_get ( DateTimeInterface $object )

Retourne le fuseau horaire relatif au DateTime fourni.

Liste de paramètres

object

Seulement en style procédural : un objet DateTime retourné par date_create()

Valeurs de retour

Retourne un objet DateTimeZone en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTime::getTimezone()

Style orienté objet

<?php
$date = new DateTime(null, new DateTimeZone('Europe/London'));
$tz = $date->getTimezone();
echo $tz->getName();
?>

Style procédural

<?php
$date = date_create(null, timezone_open('Europe/London'));
$tz = date_timezone_get($date);
echo timezone_name_get($tz);
?>

Les exemples ci-dessus vont afficher :

Europe/London

Voir aussi

  • DateTime::setTimezone() - Configure le fuseau horaire de l'objet DateTime


Le gestionnaire __wakeup

  • « DateTime::getTimezone
  • DateTimeZone »
  • PHP Manual
  • DateTimeInterface
  • Le gestionnaire __wakeup

DateTime::__wakeup

DateTimeImmutable::__wakeup

DateTimeInterface::__wakeup

(PHP 5 >= 5.2.0, PHP 7)

DateTime::__wakeup -- DateTimeImmutable::__wakeup -- DateTimeInterface::__wakeup — Le gestionnaire __wakeup

Description

public DateTime::__wakeup ( void )
public DateTimeImmutable::__wakeup ( void )
public DateTimeInterface::__wakeup ( void )

Le gestionnaire __wakeup().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Initialise un objet DateTime.


La classe DateTimeZone

(PHP 5 >= 5.2.0, PHP 7)

Introduction

Représentation d'un fuseau horaire.

Synopsis de la classe

DateTimeZone {
/* Constantes */
const integer AFRICA = 1 ;
const integer AMERICA = 2 ;
const integer ANTARCTICA = 4 ;
const integer ARCTIC = 8 ;
const integer ASIA = 16 ;
const integer ATLANTIC = 32 ;
const integer AUSTRALIA = 64 ;
const integer EUROPE = 128 ;
const integer INDIAN = 256 ;
const integer PACIFIC = 512 ;
const integer UTC = 1024 ;
const integer ALL = 2047 ;
const integer ALL_WITH_BC = 4095 ;
const integer PER_COUNTRY = 4096 ;
/* Méthodes */
public __construct ( string $timezone )
public array getLocation ( void )
public string getName ( void )
public int getOffset ( DateTime $datetime )
public array getTransitions ([ int $timestamp_begin [, int $timestamp_end ]] )
public static array listAbbreviations ( void )
public static array listIdentifiers ([ int $what = DateTimeZone::ALL [, string $country = NULL ]] )
}

Constantes pré-définies

DateTimeZone::AFRICA

Fuseau africain.

DateTimeZone::AMERICA

Fuseau américain.

DateTimeZone::ANTARCTICA

Fuseau antarctique.

DateTimeZone::ARCTIC

Fuseau arctique.

DateTimeZone::ASIA

Fuseau asiatique.

DateTimeZone::ATLANTIC

Fuseau atlantique.

DateTimeZone::AUSTRALIA

Fuseau australien.

DateTimeZone::EUROPE

Fuseau européen.

DateTimeZone::INDIAN

Fuseau indien.

DateTimeZone::PACIFIC

Fuseau pacifique.

DateTimeZone::UTC

Fuseau UTC.

DateTimeZone::ALL

Tous les fuseaux.

DateTimeZone::ALL_WITH_BC

Tous les fuseaux, y compris les anciens.

DateTimeZone::PER_COUNTRY

Fuseaux horaires par pays.

Sommaire

  • DateTimeZone::__construct — Crée un nouvel objet DateTimeZone
  • DateTimeZone::getLocation — Retourne les informations géographiques d'un fuseau horaire
  • DateTimeZone::getName — Retourne le nom du fuseau horaire
  • DateTimeZone::getOffset — Retourne le décalage GMT d'un fuseau horaire
  • DateTimeZone::getTransitions — Retourne toutes les transitions d'un fuseau horaire
  • DateTimeZone::listAbbreviations — Retourne un tableau associatif, décrivant un fuseau horaire
  • DateTimeZone::listIdentifiers — Retourne un tableau numérique contenant tous les identifiants de fuseaux horaires définis


Crée un nouvel objet DateTimeZone

  • « DateTimeZone
  • DateTimeZone::getLocation »
  • PHP Manual
  • DateTimeZone
  • Crée un nouvel objet DateTimeZone

DateTimeZone::__construct

timezone_open

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::__construct -- timezone_open — Crée un nouvel objet DateTimeZone

Description

Style orienté objet

public DateTimeZone::__construct ( string $timezone )

Style procédural

DateTimeZone timezone_open ( string $timezone )

Crée un nouvel objet DateTimeZone.

Liste de paramètres

timezone

Un des fuseaux horaires supportés.

Valeurs de retour

Retourne un objet DateTimeZone, en cas de succès. Style procédural retourne FALSE en cas d'erreur..

Erreurs / Exceptions

Cette méthode émet une exception Exception, si le fuseau horaire fourni n'est pas reconnu.

Exemples

Exemple #1 Interception des erreurs avec DateTimeZone

<?php
// Gestion des erreurs par interception des exceptions
$timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa');

foreach ($timezones as $tz) {
    try {
        $mars = new DateTimeZone($tz);
    } catch(Exception $e) {
        echo $e->getMessage() . '<br />';
    }
}
?>

L'exemple ci-dessus va afficher :

DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos)
DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Jupiter/Europa)


Retourne les informations géographiques d'un fuseau horaire

  • « DateTimeZone::__construct
  • DateTimeZone::getName »
  • PHP Manual
  • DateTimeZone
  • Retourne les informations géographiques d'un fuseau horaire

DateTimeZone::getLocation

timezone_location_get

(PHP 5 >= 5.3.0, PHP 7)

DateTimeZone::getLocation -- timezone_location_get — Retourne les informations géographiques d'un fuseau horaire

Description

Style orienté objet

public array DateTimeZone::getLocation ( void )

Style procédural

array timezone_location_get ( DateTimeZone $object )

Retourne les informations géographiques d'un fuseau horaire, comprenant le code du pays, la latitude et la longitude, et commentaires.

Liste de paramètres

object

Seulement en style procédural : un DateTimeZone objet retourné par timezone_open()

Valeurs de retour

Tableau contenant les informations de localisation du fuseau horaire.

Exemples

Exemple #1 Exemple avec DateTimeZone::getLocation()

<?php
$tz = new DateTimeZone("Europe/Prague");
print_r($tz->getLocation());
print_r(timezone_location_get($tz));
?>

L'exemple ci-dessus va afficher :

Array
(
    [country_code] => CZ
    [latitude] => 50.08333
    [longitude] => 14.43333
    [comments] =>
)
Array
(
    [country_code] => CZ
    [latitude] => 50.08333
    [longitude] => 14.43333
    [comments] =>
)


Retourne le nom du fuseau horaire

  • « DateTimeZone::getLocation
  • DateTimeZone::getOffset »
  • PHP Manual
  • DateTimeZone
  • Retourne le nom du fuseau horaire

DateTimeZone::getName

timezone_name_get

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::getName -- timezone_name_get — Retourne le nom du fuseau horaire

Description

Style orienté objet

public string DateTimeZone::getName ( void )

Style procédural

string timezone_name_get ( DateTimeZone $object )

Retourne le nom du fuseau horaire.

Liste de paramètres

object

L'objet DateTimeZone utilisé pour récupérer le nom du fuseau horaire.

Valeurs de retour

Un des fuseaux horaires de la liste des fuseaux horaires.


Retourne le décalage GMT d'un fuseau horaire

  • « DateTimeZone::getName
  • DateTimeZone::getTransitions »
  • PHP Manual
  • DateTimeZone
  • Retourne le décalage GMT d'un fuseau horaire

DateTimeZone::getOffset

timezone_offset_get

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::getOffset -- timezone_offset_get — Retourne le décalage GMT d'un fuseau horaire

Description

Style orienté objet

public int DateTimeZone::getOffset ( DateTime $datetime )

Style procédural

int timezone_offset_get ( DateTimeZone $object , DateTime $datetime )

timezone_offset_get() retourne le décalage horaire par rapport au GMT pour le paramètre datetime. Le décalage GMT est calculé à partir des informations de fuseau horaire contenu dans l'objet DateTime.

Liste de paramètres

object

Seulement en style procédural : un DateTimeZone objet retourné par timezone_open()

datetime

Objet DateTime qui contient la date dont il faut calculer le décalage.

Valeurs de retour

Retourne le décalage horaire, exprimé en secondes, en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DateTimeZone::getOffset()

<?php
// Crée deux objets fuseau horaire, un pour Taipei (Taiwan) et un pour
// Tokyo (Japon)
$dateTimeZoneTaipei = new DateTimeZone("Asia/Taipei");
$dateTimeZoneJapan = new DateTimeZone("Asia/Tokyo");

// Crée deux objets DateTime qui contiennent le même timestampe Unix,
// mais sont situés dans deux fuseaux horaires différents.
$dateTimeTaipei = new DateTime("now", $dateTimeZoneTaipei);
$dateTimeJapan = new DateTime("now", $dateTimeZoneJapan);

// Calcule le décalage horaire GMT pour l'objet $dateTimeTaipei
// mais en utilisant le fuseau horaire de Tokyo
// ($dateTimeZoneJapan).
$timeOffset = $dateTimeZoneJapan->getOffset($dateTimeTaipei);

// Devrait afficher int(32400) (pour les dates après le Sat Sep 8 01:00:00 1951 JST).
var_dump($timeOffset);
?>


Retourne toutes les transitions d'un fuseau horaire

  • « DateTimeZone::getOffset
  • DateTimeZone::listAbbreviations »
  • PHP Manual
  • DateTimeZone
  • Retourne toutes les transitions d'un fuseau horaire

DateTimeZone::getTransitions

timezone_transitions_get

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::getTransitions -- timezone_transitions_get — Retourne toutes les transitions d'un fuseau horaire

Description

Style orienté objet

public array DateTimeZone::getTransitions ([ int $timestamp_begin [, int $timestamp_end ]] )

Style procédural

array timezone_transitions_get ( DateTimeZone $object [, int $timestamp_begin [, int $timestamp_end ]] )

Liste de paramètres

object

Seulement en style procédural : un DateTimeZone objet retourné par timezone_open()

timestamp_begin

Début du timestamp.

timestamp_end

Fin du timestamp.

Valeurs de retour

Retourne un tableau numérique, contenant des tableaux associatifs avec toutes les transitions, en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Les paramètres optionnels timestamp_begin et timestamp_end ont été ajouté.

Exemples

Exemple #1 Exemple avec timezone_transitions_get()

<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions();
print_r(array_slice($transitions, 0, 3));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [ts]  => -9223372036854775808
             [time] =>  -292277022657-01-27T08:29:52+0000
             [offset] => 3600
            [isdst]  => 1
            [abbr] => BST
         )

    [1] => Array
        (
            [ts]  => -1691964000
            [time] => 1916-05-21T02:00:00+0000
            [offset]  => 3600
            [isdst] => 1
             [abbr] => BST
        )

    [2] => Array
        (
            [ts]  => -1680472800
            [time] => 1916-10-01T02:00:00+0000
            [offset]  => 0
            [isdst] =>
             [abbr] => GMT
        )

)


Retourne un tableau associatif, décrivant un fuseau horaire

  • « DateTimeZone::getTransitions
  • DateTimeZone::listIdentifiers »
  • PHP Manual
  • DateTimeZone
  • Retourne un tableau associatif, décrivant un fuseau horaire

DateTimeZone::listAbbreviations

timezone_abbreviations_list

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::listAbbreviations -- timezone_abbreviations_list — Retourne un tableau associatif, décrivant un fuseau horaire

Description

Style orienté objet

public static array DateTimeZone::listAbbreviations ( void )

Style procédural

array timezone_abbreviations_list ( void )

Valeurs de retour

Retourne un tableau en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec timezone_abbreviations_list()

<?php
$timezone_abbreviations = DateTimeZone::listAbbreviations();
print_r($timezone_abbreviations["acst"]);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Porto_Acre
        )

    [1] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Eirunepe
        )

    [2] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Rio_Branco
        )

    [3] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => Brazil/Acre
        )

)

Voir aussi

  • timezone_identifiers_list() - Alias de DateTimeZone::listIdentifiers


Retourne un tableau numérique contenant tous les identifiants de fuseaux horaires définis

  • « DateTimeZone::listAbbreviations
  • DateInterval »
  • PHP Manual
  • DateTimeZone
  • Retourne un tableau numérique contenant tous les identifiants de fuseaux horaires définis

DateTimeZone::listIdentifiers

timezone_identifiers_list

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::listIdentifiers -- timezone_identifiers_list — Retourne un tableau numérique contenant tous les identifiants de fuseaux horaires définis

Description

Style orienté objet

public static array DateTimeZone::listIdentifiers ([ int $what = DateTimeZone::ALL [, string $country = NULL ]] )

Style procédural

array timezone_identifiers_list ([ int $what = DateTimeZone::ALL [, string $country = NULL ]] )

Liste de paramètres

what

Une des constantes de classe DateTimeZone.

country

Un code de pays en deux lettres, compatible ISO 3166-1.

Note: Cette option n'est disponible que lorsque le paramètre what prend la valeur de DateTimeZone::PER_COUNTRY.

Valeurs de retour

Retourne un tableau en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Ajout des paramètres optionnels what et country.

Exemples

Exemple #1 Exemple avec timezone_identifiers_list()

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers();
for ($i=0; $i < 5; $i++) {
    echo "$timezone_identifiers[$i]\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara

Voir aussi

  • timezone_abbreviations_list() - Alias de DateTimeZone::listAbbreviations


La classe DateInterval

(PHP 5 >= 5.3.0, PHP 7)

Introduction

Représente un intervalle de dates.

Un intervalle stocke un nombre fixe de durées (en années, mois, jours, heures, etc.) ou une chaîne relative à une durée dans un format compréhensible par le constructeur de la classe DateTime.

Synopsis de la classe

DateInterval {
/* Propriétés */
public integer $y ;
public integer $m ;
public integer $d ;
public integer $h ;
public integer $i ;
public integer $s ;
public integer $invert ;
public mixed $days ;
/* Méthodes */
public __construct ( string $interval_spec )
public static DateInterval createFromDateString ( string $time )
public string format ( string $format )
}

Propriétés

y

Année.

m

Nombre de mois.

d

Nombre de jours.

h

Nombre d'heures.

i

Nombre de minutes.

s

Nombre de secondes.

invert

Vaut 1 si l'intervalle représente une période de temps négative, 0 sinon. Voir la méthode DateInterval::format().

days

Si l'objet DateInterval a été créé avec la méthode DateTime::diff(), alors ce sera le nombre total de jours entre la date de début et la date de fin. Sinon, days vaudra FALSE.

Avant PHP 5.4.20/5.5.4, au lieu de FALSE, vous receviez -99999 lors de l'accès à cette propriété.

Sommaire

  • DateInterval::__construct — Crée un nouvel objet DateInterval
  • DateInterval::createFromDateString — Configure un objet DateInterval à partir des parties d'une chaîne
  • DateInterval::format — Formate l'intervalle


Crée un nouvel objet DateInterval

  • « DateInterval
  • DateInterval::createFromDateString »
  • PHP Manual
  • DateInterval
  • Crée un nouvel objet DateInterval

DateInterval::__construct

(PHP 5 >= 5.3.0, PHP 7)

DateInterval::__construct — Crée un nouvel objet DateInterval

Description

public DateInterval::__construct ( string $interval_spec )

Crée un nouvel objet DateInterval.

Liste de paramètres

interval_spec

Une spécification d'intervalle.

Le format commence avec la lettre P, pour "period". Chaque durée de la période est représentée par une valeur entière suivie par une désignation de période. Si la durée contient des éléments de temps, cette portion de la spécification est précédée par la lettre T.

Désignation de période interval_spec
Désignation de période | Description
Y | Années
M | Mois
D | Jours
W | Semaine. Sera converti en jours, aussi, vous ne pouvez pas le combiner avec D.
H | Heures
M | Minutes
S | Secondes

Voici quelques exemples simples : 2 jours sera P2D ; 2 secondes sera PT2S ; 6 années et 5 minutes sera P6YT5M.

Note:

Les types d'unité doivent être entrés des plus grands aux plus petits. Ainsi, les années doivent être présentes avant les mois, les mois avant les jours, les jours avant les minutes, etc. Aussi, une année et 4 jours doit être représenté comme P1Y4D, et non P4D1Y.

Cette spécification peut également être représentée sous la forme d'une durée. Aussi, une année et 4 jours peut être P0001-00-04T00:00:00. Mais les valeurs de ce format ne peuvent pas exécéder une période donnée (i.e. 25 heures est invalide).

Ces formats sont basés sur la » spécification de durée ISO 8601.

Erreurs / Exceptions

Lance une exception Exception lorsque le paramètre interval_spec ne peut être analysé comme un intervalle.

Exemples

Exemple #1 Exemple avec DateInterval

<?php

$interval = new DateInterval('P2Y4DT6H8M');
var_dump($interval);

?>

L'exemple ci-dessus va afficher :

object(DateInterval)#1 (8) {
  ["y"]=>
  int(2)
  ["m"]=>
  int(0)
  ["d"]=>
  int(4)
  ["h"]=>
  int(6)
  ["i"]=>
  int(8)
  ["s"]=>
  int(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
}

Voir aussi

  • DateInterval::format() - Formate l'intervalle
  • DateTime::add() - Ajoute une durée à un objet DateTime
  • DateTime::sub() - Soustrait une durée à un objet DateTime
  • DateTime::diff() - Retourne la différence entre deux objets DateTime


Configure un objet DateInterval à partir des parties d'une chaîne

  • « DateInterval::__construct
  • DateInterval::format »
  • PHP Manual
  • DateInterval
  • Configure un objet DateInterval à partir des parties d'une chaîne

DateInterval::createFromDateString

(PHP 5 >= 5.3.0, PHP 7)

DateInterval::createFromDateString — Configure un objet DateInterval à partir des parties d'une chaîne

Description

public static DateInterval DateInterval::createFromDateString ( string $time )

Utilise les analyseurs de dates natifs et configure un objet DateInterval à partir d'une chaîne de caractères.

Liste de paramètres

time

Une date avec des parties relatives. Spécifiquement, le format relatif supporté par l'analyseur utilisé pour la fonction strtotime() et la fonction DateTime sera utilisé pour construire le DateInterval.

Exemples

Exemple #1 Analyse d'intervalles de dates valides

<?php
// Chacun de ces intervalles sont égaux.
$i = new DateInterval('P1D');
$i = DateInterval::createFromDateString('1 day');

$i = new DateInterval('P2W');
$i = DateInterval::createFromDateString('2 weeks');

$i = new DateInterval('P3M');
$i = DateInterval::createFromDateString('3 months');

$i = new DateInterval('P4Y');
$i = DateInterval::createFromDateString('4 years');

$i = new DateInterval('P1Y1D');
$i = DateInterval::createFromDateString('1 year + 1 day');

$i = new DateInterval('P1DT12H');
$i = DateInterval::createFromDateString('1 day + 12 hours');

$i = new DateInterval('PT3600S');
$i = DateInterval::createFromDateString('3600 seconds');
?>

Valeurs de retour

Retourne un nouvel objet DateInterval.


Formate l'intervalle

  • « DateInterval::createFromDateString
  • DatePeriod »
  • PHP Manual
  • DateInterval
  • Formate l'intervalle

DateInterval::format

(PHP 5 >= 5.3.0, PHP 7)

DateInterval::format — Formate l'intervalle

Description

public string DateInterval::format ( string $format )

Formate l'intervalle.

Liste de paramètres

format

Les caractères suivants sont reconnus dans la chaîne format. Chaque caractère utilisé pour le format doit être préfixé par un signe de pourcentage (%).
Caractère de format | Description | Valeur d'exemple
% Caractère % littéral %
Y | Année, numérique, au moins 2 chiffres avec zéros initiaux | 01, 03
y | Année, numérique | 1, 3
M | Mois, numérique, au moins 2 chiffres avec zéros initiaux | 01, 03, 12
m | Mois, numérique | 1, 3, 12
D | Jour, numérique, au moins 2 chiffres avec zéros initiaux | 01, 03, 31
d | Jour, numérique | 1, 3, 31
a | Nombre total de jours, provenant de la méthode DateTime::diff() ou (unknown) sinon | 4, 18, 8123
H | Heure, numérique, au moins 2 chiffres avec zéros initiaux | 01, 03, 23
h | Heure, numérique | 1, 3, 23
I | Minute, numérique, au moins 2 chiffres avec zéros initiaux | 01, 03, 59
i | Minute, numérique | 1, 3, 59
S | Seconde, numérique, au moins 2 chiffres avec zéros initiaux | 01, 03, 57
s | Seconde, numérique | 1, 3, 57
R Signe "-" lorsque négatif, "+" si positif -, +
r Signe "-" lorsque négatif, vide si positif -,

Valeurs de retour

Retourne l'intervalle formaté.

Notes

Note:

La méthode DateInterval::format() ne recalcule pas la retenue dans les chaines de temps ni dans les segments de date. Ce comportement est attendu car il n'est pas possible de dépasser des valeurs comme "32 days" qui pourrait être interprété comme "1 mois et 4 jours" ou "1 mois et 1 jour".

Exemples

Exemple #1 Exemple avec DateInterval

<?php

$interval = new DateInterval('P2Y4DT6H8M');
echo $interval->format('%d jours');

?>

L'exemple ci-dessus va afficher :

4 jours

Exemple #2 DateInterval et retenue

<?php

$interval = new DateInterval('P32D');
echo $interval->format('%d jours');

?>

L'exemple ci-dessus va afficher :

32 jours

Exemple #3 DateInterval et DateTime::diff() avec les modificateurs %a et %d

<?php

$january = new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval = $february->diff($january);

// %a affichera le nombre total de jours...
echo $interval->format('%a jours au total')."\n";

// ...alors que %d n'affichera que le nombre de jours non encore couverts
// dans le mois.
echo $interval->format('%m mois, %d jour');

?>

L'exemple ci-dessus va afficher :

31 jours au total
1 mois, 0 jour

Voir aussi

  • DateTime::diff() - Retourne la différence entre deux objets DateTime


La classe DatePeriod

(PHP 5 >= 5.3.0, PHP 7)

Introduction

Représente une période de dates.

Une période de dates permet des itérations à travers un jeu de dates et d'heures, survenant à intervalle régulier, sur une période donnée.

Synopsis de la classe

DatePeriod implements Traversable {
/* Constantes */
const integer EXCLUDE_START_DATE = 1 ;
/* Méthodes */
public __construct ( DateTimeInterface $start , DateInterval $interval , int $recurrences [, int $options ] )
public __construct ( DateTimeInterface $start , DateInterval $interval , DateTimeInterface $end [, int $options ] )
public __construct ( string $isostr [, int $options ] )
}

Constantes pré-définies

DatePeriod::EXCLUDE_START_DATE

Exclut la date de début, utilisé par DatePeriod::__construct().

Sommaire

  • DatePeriod::__construct — Crée un nouvel objet DatePeriod
  • DatePeriod::getDateInterval — Gets the interval
  • DatePeriod::getEndDate — Gets the end date
  • DatePeriod::getStartDate — Gets the start date


Crée un nouvel objet DatePeriod

  • « DatePeriod
  • DatePeriod::getDateInterval »
  • PHP Manual
  • DatePeriod
  • Crée un nouvel objet DatePeriod

DatePeriod::__construct

(PHP 5 >= 5.3.0, PHP 7)

DatePeriod::__construct — Crée un nouvel objet DatePeriod

Description

public DatePeriod::__construct ( DateTimeInterface $start , DateInterval $interval , int $recurrences [, int $options ] )
public DatePeriod::__construct ( DateTimeInterface $start , DateInterval $interval , DateTimeInterface $end [, int $options ] )
public DatePeriod::__construct ( string $isostr [, int $options ] )

Crée un nouvel objet DatePeriod.

Liste de paramètres

start

La date de début de la période.

interval

L'intervalle entre les récurrences de la période.

recurrences

Le nombre de récurrences.

end

La date de fin de la période.

isostr

Une spécification ISO 8601 de la répétition de l'intervalle.

options

Peut être configuré à DatePeriod::EXCLUDE_START_DATE pour exclure la date de début du jeu de dates de récursion dans la période.

Historique

Version | Description
5.5.8 | Le type du paramètre end change pour DateTimeImmutable. Précédemment, DateTime.
5.5.0 | Le type du paramètre start change pour DateTimeImmutable. Précédemment, DateTime.

Exemples

Exemple #1 Exemple avec DatePeriod

<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$recurrences = 4;
$iso = 'R4/2012-07-01T00:00:00Z/P7D';

// Toutes ces périodes sont équivalentes.
$period = new DatePeriod($start, $interval, $recurrences);
$period = new DatePeriod($start, $interval, $end);
$period = new DatePeriod($iso);

// En parcourant l'objet DatePeriod, toutes les
// dates de la récursion pour la période seront affichées.
foreach ($period as $date) {
    echo $date->format('Y-m-d')."\n";
}
?>

L'exemple ci-dessus va afficher :

2012-07-01
2012-07-08
2012-07-15
2012-07-22
2012-07-29

Exemple #2 Exemple avec DatePeriod et DatePeriod::EXCLUDE_START_DATE

<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');

$period = new DatePeriod($start, $interval, $end,
                         DatePeriod::EXCLUDE_START_DATE);

// En parcourant l'objet DatePeriod,
// toutes les dates de récursion pour la période sont affichées.
// Notez que, dans ce cas, 2012-07-01 ne sera pas affiché.
foreach ($period as $date) {
    echo $date->format('Y-m-d')."\n";
}
?>

L'exemple ci-dessus va afficher :

2012-07-08
2012-07-15
2012-07-22
2012-07-29


Gets the interval

  • « DatePeriod::__construct
  • DatePeriod::getEndDate »
  • PHP Manual
  • DatePeriod
  • Gets the interval

DatePeriod::getDateInterval

(PHP 5 >= 5.6.5, PHP 7)

DatePeriod::getDateInterval — Gets the interval

Description

Style orienté objet

public DateInterval DatePeriod::getDateInterval ( void )

Gets a DateInterval object representing the interval used for the period.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a DateInterval object

Exemples

Exemple #1 DatePeriod::getDateInterval() example

<?php
$period = new DatePeriod('R7/2016-05-16T00:00:00Z/P1D');
$interval = $period->getDateInterval();
echo $interval->format('%d day');
?>

L'exemple ci-dessus va afficher :

1 day

Voir aussi

  • DatePeriod::getStartDate() - Gets the start date
  • DatePeriod::getEndDate() - Gets the end date


Gets the end date

  • « DatePeriod::getDateInterval
  • DatePeriod::getStartDate »
  • PHP Manual
  • DatePeriod
  • Gets the end date

DatePeriod::getEndDate

(PHP 5 >= 5.6.5, PHP 7)

DatePeriod::getEndDate — Gets the end date

Description

Style orienté objet

public DateTimeInterface DatePeriod::getEndDate ( void )

Gets the end date of the period.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns NULL if the DatePeriod does not have an end date. For example, when initialized with the recurrences parameter, or the isostr parameter without an end date.

Returns a DateTimeImmutable object when the DatePeriod is initialized with a DateTimeImmutable object as the end parameter.

Returns a DateTime object otherwise.

Exemples

Exemple #1 DatePeriod::getEndDate() example

<?php
$period = new DatePeriod(
    new DateTime('2016-05-16T00:00:00Z'),
    new DateInterval('P1D'),
    new DateTime('2016-05-20T00:00:00Z')
);
$start = $period->getEndDate();
echo $start->format(DateTime::ISO8601);
?>

Les exemples ci-dessus vont afficher :

2016-05-20T00:00:00+0000

Exemple #2 DatePeriod::getEndDate() without an end date

<?php
$period = new DatePeriod(
    new DateTime('2016-05-16T00:00:00Z'),
    new DateInterval('P1D'),
    7
);
var_dump($period->getEndDate());
?>

L'exemple ci-dessus va afficher :

NULL

Voir aussi

  • DatePeriod::getStartDate() - Gets the start date
  • DatePeriod::getDateInterval() - Gets the interval


Gets the start date

  • « DatePeriod::getEndDate
  • Fonctions Date/Heure »
  • PHP Manual
  • DatePeriod
  • Gets the start date

DatePeriod::getStartDate

(PHP 5 >= 5.6.5, PHP 7)

DatePeriod::getStartDate — Gets the start date

Description

Style orienté objet

public DateTimeInterface DatePeriod::getStartDate ( void )

Gets the start date of the period.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a DateTimeImmutable object when the DatePeriod is initialized with a DateTimeImmutable object as the start parameter.

Returns a DateTime object otherwise.

Exemples

Exemple #1 DatePeriod::getStartDate() example

<?php
$period = new DatePeriod('R7/2016-05-16T00:00:00Z/P1D');
$start = $period->getStartDate();
echo $start->format(DateTime::ISO8601);
?>

L'exemple ci-dessus va afficher :

2016-05-16T00:00:00+0000

Voir aussi

  • DatePeriod::getEndDate() - Gets the end date
  • DatePeriod::getDateInterval() - Gets the interval


Fonctions Date/Heure

Sommaire

  • checkdate — Valide une date grégorienne
  • date_add — Alias de DateTime::add
  • date_create_from_format — Alias de DateTime::createFromFormat
  • date_create_immutable_from_format — Alias de DateTimeImmutable::createFromFormat
  • date_create_immutable — Alias de DateTimeImmutable::__construct
  • date_create — Alias de DateTime::__construct
  • date_date_set — Alias de DateTime::setDate
  • date_default_timezone_get — Récupère le décalage horaire par défaut utilisé par toutes les fonctions date/heure d'un script
  • date_default_timezone_set — Définit le décalage horaire par défaut de toutes les fonctions date/heure
  • date_diff — Alias de DateTime::diff
  • date_format — Alias de DateTime::format
  • date_get_last_errors — Alias de DateTime::getLastErrors
  • date_interval_create_from_date_string — Alias de DateInterval::createFromDateString
  • date_interval_format — Alias de DateInterval::format
  • date_isodate_set — Alias de DateTime::setISODate
  • date_modify — Alias de DateTime::modify
  • date_offset_get — Alias de DateTime::getOffset
  • date_parse_from_format — Récupère les informations d'une date donnée suivant un format spécifique
  • date_parse — Retourne un tableau associatif avec des informations détaillées sur une date donnée
  • date_sub — Alias de DateTime::sub
  • date_sun_info — Retourne un tableau avec les informations sur le lever/coucher du soleil ainsi que le début et la fin de l'aube
  • date_sunrise — Retourne l'heure de lever du soleil pour un jour et un endroit donnés
  • date_sunset — Retourne l'heure de coucher du soleil pour un jour et un endroit donnés
  • date_time_set — Alias de DateTime::setTime
  • date_timestamp_get — Alias de DateTime::getTimestamp
  • date_timestamp_set — Alias de DateTime::setTimestamp
  • date_timezone_get — Alias de DateTime::getTimezone
  • date_timezone_set — Alias de DateTime::setTimezone
  • date — Formate une date/heure locale
  • getdate — Retourne la date/heure
  • gettimeofday — Retourne l'heure actuelle
  • gmdate — Formate une date/heure GMT/CUT
  • gmmktime — Retourne le timestamp UNIX d'une date GMT
  • gmstrftime — Formate une date/heure GMT/CUT en fonction de la configuration locale
  • idate — Formate une date/heure locale en tant qu'entier
  • localtime — Récupère l'heure locale
  • microtime — Retourne le timestamp UNIX actuel avec les microsecondes
  • mktime — Retourne le timestamp UNIX d'une date
  • strftime — Formate une date/heure locale avec la configuration locale
  • strptime — Analyse une date générée par strftime
  • strtotime — Transforme un texte anglais en timestamp
  • time — Retourne le timestamp UNIX actuel
  • timezone_abbreviations_list — Alias de DateTimeZone::listAbbreviations
  • timezone_identifiers_list — Alias de DateTimeZone::listIdentifiers
  • timezone_location_get — Alias de DateTimeZone::getLocation
  • timezone_name_from_abbr — Retourne le nom du fuseau horaire à partir de son abréviation
  • timezone_name_get — Alias de DateTimeZone::getName
  • timezone_offset_get — Alias de DateTimeZone::getOffset
  • timezone_open — Alias de DateTimeZone::__construct
  • timezone_transitions_get — Alias de DateTimeZone::getTransitions
  • timezone_version_get — Lit la version de la timezonedb


Valide une date grégorienne

  • « Fonctions Date/Heure
  • date_add »
  • PHP Manual
  • Fonctions Date/Heure
  • Valide une date grégorienne

checkdate

(PHP 4, PHP 5, PHP 7)

checkdate — Valide une date grégorienne

Description

bool checkdate ( int $month , int $day , int $year )

Vérifie la validité d'une date formée par les arguments. Une date est considérée comme valide si chaque paramètre est défini correctement.

Liste de paramètres

month

Le mois doit être compris entre 1 et 12.

day

Le jour doit être un jour autorisé par le mois donné. Les années bissextiles sont prises en compte.

year

L'année est comprise entre 1 et 32767 inclus.

Valeurs de retour

Retourne TRUE si la date fournie est valide, FALSE sinon.

Exemples

Exemple #1 Exemple avec checkdate()

<?php
var_dump(checkdate(12, 31, 2000));
var_dump(checkdate(2, 29, 2001));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi

  • mktime() - Retourne le timestamp UNIX d'une date
  • strtotime() - Transforme un texte anglais en timestamp


Alias de DateTime::add

  • « checkdate
  • date_create_from_format »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::add

date_add

(PHP 5 >= 5.3.0, PHP 7)

date_add — Alias de DateTime::add()

Description

Cette fonction est un alias de : DateTime::add()


Alias de DateTime::createFromFormat

  • « date_add
  • date_create_immutable_from_format »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::createFromFormat

date_create_from_format

(PHP 5 >= 5.3.0, PHP 7)

date_create_from_format — Alias de DateTime::createFromFormat()

Description

Cette fonction est un alias de : DateTime::createFromFormat()


Alias de DateTimeImmutable::createFromFormat

  • « date_create_from_format
  • date_create_immutable »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTimeImmutable::createFromFormat

date_create_immutable_from_format

(PHP 5 >= 5.5.0, PHP 7)

date_create_immutable_from_format — Alias de DateTimeImmutable::createFromFormat()

Description

Cette fonction est un alias de : DateTimeImmutable::createFromFormat()


Alias de DateTimeImmutable::__construct

  • « date_create_immutable_from_format
  • date_create »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTimeImmutable::__construct

date_create_immutable

(PHP 5 >= 5.5.0, PHP 7)

date_create_immutable — Alias de DateTimeImmutable::__construct()

Description

Cette fonction est un alias de : DateTimeImmutable::__construct()


Alias de DateTime::__construct

  • « date_create_immutable
  • date_date_set »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::__construct

date_create

(PHP 5 >= 5.2.0, PHP 7)

date_create — Alias de DateTime::__construct()

Description

Cette fonction est un alias de : DateTime::__construct()


Alias de DateTime::setDate

  • « date_create
  • date_default_timezone_get »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::setDate

date_date_set

(PHP 5 >= 5.2.0, PHP 7)

date_date_set — Alias de DateTime::setDate()

Description

Cette fonction est un alias de : DateTime::setDate()


Récupère le décalage horaire par défaut utilisé par toutes les fonctions date/heure d'un script

  • « date_date_set
  • date_default_timezone_set »
  • PHP Manual
  • Fonctions Date/Heure
  • Récupère le décalage horaire par défaut utilisé par toutes les fonctions date/heure d'un script

date_default_timezone_get

(PHP 5 >= 5.1.0, PHP 7)

date_default_timezone_get — Récupère le décalage horaire par défaut utilisé par toutes les fonctions date/heure d'un script

Description

string date_default_timezone_get ( void )

Cette fonction retourne le décalage horaire en suivant l'ordre de préférences suivant :

  • Lecture du décalage horaire défini en utilisant la fonction date_default_timezone_set() (si elle existe)

  • Avant PHP 5.4.0 uniquement : Lecture de la variable d'environnement TZ (si elle n'est pas vide)

  • Lecture de la valeur de l'option de configuration date.timezone (si elle est définie)

  • Avant PHP 5.4.0 uniquement : Interrogation du système d'exploitation (si le système le supporte et l'autorise). Cette interrogation utilise un algorithme qui tente de deviner le décalage horaire. Aussi, le résultat peut ne pas être attendu dans certaine situation. Une alerte est affichée lorsque cette étape est atteinte. Inutile de la rapporter afin qu'elle soit corrigée, mais définissez plutôt date.timezone de façon plus correcte.

Si tout ce qui précède échoue, date_default_timezone_get() retournera le décalage horaire par défaut de UTC.

Valeurs de retour

Retourne une chaîne de caractères.

Historique

Version | Description
5.4.0 | La variable d'environnement TZ n'est plus utilisée pour deviner le décalage horaire.
5.4.0 | Le décalage horaire n'est plus deviné depuis les informations disponibles via le système d'exploitation.

Exemples

Exemple #1 Récupération du décalage horaire par défaut

<?php
date_default_timezone_set('Europe/London');

if (date_default_timezone_get()) {
    echo 'date_default_timezone_set : ' . date_default_timezone_get() . '<br />';
}

if (ini_get('date.timezone')) {
    echo 'date.timezone : ' . ini_get('date.timezone');
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

date_default_timezone_set : Europe/London
date.timezone : Europe/London

Exemple #2 Récupération de l'abréviation d'un décalage horaire

<?php
date_default_timezone_set('America/Los_Angeles');
echo date_default_timezone_get() . ' => ' . date('e') . ' => ' . date('T');
?>

L'exemple ci-dessus va afficher :

America/Los_Angeles => America/Los_Angeles => PST

Voir aussi

  • date_default_timezone_set() - Définit le décalage horaire par défaut de toutes les fonctions date/heure
  • Liste des Fuseaux Horaires Supportés


Définit le décalage horaire par défaut de toutes les fonctions date/heure

  • « date_default_timezone_get
  • date_diff »
  • PHP Manual
  • Fonctions Date/Heure
  • Définit le décalage horaire par défaut de toutes les fonctions date/heure

date_default_timezone_set

(PHP 5 >= 5.1.0, PHP 7)

date_default_timezone_set — Définit le décalage horaire par défaut de toutes les fonctions date/heure

Description

bool date_default_timezone_set ( string $timezone_identifier )

La fonction date_default_timezone_set() définit le décalage horaire par défaut utilisé par toutes les fonctions date/heure.

Note:

Depuis PHP 5.1.0 (lorsque les fonctions date/heure ont été écrites), chaque appel à une fonction date/heure génère une alerte de niveau E_NOTICE si le décalage horaire n'est pas valide et/ou une alerte de niveau E_WARNING si vous utilisez des configurations système, ou la variable d'environnement TZ.

Au lieu d'utiliser cette fonction pour définir le décalage horaire par défaut dans votre script, vous pouvez également utiliser la configuration INI date.timezone.

Liste de paramètres

timezone_identifier

L'identifiant de décalage horaire, comme UTC ou Europe/Lisbon. La liste des identifiants valides est disponible dans le Liste des Fuseaux Horaires Supportés.

Valeurs de retour

Cette fonction retourne FALSE si timezone_identifier n'est pas valide, TRUE sinon.

Exemples

Exemple #1 Récupération du décalage horaire par défaut

<?php
date_default_timezone_set('America/Los_Angeles');

$script_tz = date_default_timezone_get();

if (strcmp($script_tz, ini_get('date.timezone'))){
    echo 'Le décalage horaire du script diffère du décalage horaire défini dans le fichier ini.';
} else {
    echo 'Le décalage horaire du script est équivalent à celui défini dans le fichier ini.';
}
?>

Historique

Version | Description
5.3.0 | Émet maintenant une alerte de niveau E_WARNING plutôt qu'une alerte de niveau E_STRICT.
5.1.2 | La fonction commence à valider le paramètre timezone_identifier.

Voir aussi

  • date_default_timezone_get() - Récupère le décalage horaire par défaut utilisé par toutes les fonctions date/heure d'un script
  • Liste des Fuseaux Horaires Supportés


Alias de DateTime::diff

  • « date_default_timezone_set
  • date_format »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7)

date_diff — Alias de DateTime::diff()

Description

Cette fonction est un alias de : DateTime::diff()


Alias de DateTime::format

  • « date_diff
  • date_get_last_errors »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::format

date_format

(PHP 5 >= 5.2.0, PHP 7)

date_format — Alias de DateTime::format()

Description

Cette fonction est un alias de : DateTime::format()


Alias de DateTime::getLastErrors

  • « date_format
  • date_interval_create_from_date_string »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::getLastErrors

date_get_last_errors

(PHP 5 >= 5.3.0, PHP 7)

date_get_last_errors — Alias de DateTime::getLastErrors()

Description

Cette fonction est un alias de : DateTime::getLastErrors()


Alias de DateInterval::createFromDateString

  • « date_get_last_errors
  • date_interval_format »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateInterval::createFromDateString

date_interval_create_from_date_string

(PHP 5 >= 5.3.0, PHP 7)

date_interval_create_from_date_string — Alias de DateInterval::createFromDateString()

Description

Cette fonction est un alias de : DateInterval::createFromDateString()


Alias de DateInterval::format

  • « date_interval_create_from_date_string
  • date_isodate_set »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateInterval::format

date_interval_format

(PHP 5 >= 5.3.0, PHP 7)

date_interval_format — Alias de DateInterval::format()

Description

Cette fonction est un alias de : DateInterval::format()


Alias de DateTime::setISODate

  • « date_interval_format
  • date_modify »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::setISODate

date_isodate_set

(PHP 5 >= 5.2.0, PHP 7)

date_isodate_set — Alias de DateTime::setISODate()

Description

Cette fonction est un alias de : DateTime::setISODate()


Alias de DateTime::modify

  • « date_isodate_set
  • date_offset_get »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::modify

date_modify

(PHP 5 >= 5.2.0, PHP 7)

date_modify — Alias de DateTime::modify()

Description

Cette fonction est un alias de : DateTime::modify()


Alias de DateTime::getOffset

  • « date_modify
  • date_parse_from_format »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::getOffset

date_offset_get

(PHP 5 >= 5.2.0, PHP 7)

date_offset_get — Alias de DateTime::getOffset()

Description

Cette fonction est un alias de : DateTime::getOffset()


Récupère les informations d'une date donnée suivant un format spécifique

  • « date_offset_get
  • date_parse »
  • PHP Manual
  • Fonctions Date/Heure
  • Récupère les informations d'une date donnée suivant un format spécifique

date_parse_from_format

(PHP 5 >= 5.3.0, PHP 7)

date_parse_from_format — Récupère les informations d'une date donnée suivant un format spécifique

Description

array date_parse_from_format ( string $format , string $date )

Retourne un tableau associatif contenant des informations détaillées sur une date donnée.

Liste de paramètres

format

Format accepté par la méthode DateTime::createFromFormat().

date

Chaîne représentant la date.

Valeurs de retour

Retourne un tableau associatif avec des informations détaillées sur la date donnée.

Exemples

Exemple #1 Exemple avec date_parse_from_format()

<?php
$date = "6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP", $date));
?>

L'exemple ci-dessus va afficher :

Array
(
    [year] => 2009
    [month] => 1
    [day] => 6
    [hour] => 13
    [minute] => 0
    [second] => 0
    [fraction] =>
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] => 1
    [zone_type] => 1
    [zone] => -60
    [is_dst] =>
)

Voir aussi

  • DateTime::createFromFormat() - Retourne un nouvel objet DateTime formaté
  • checkdate() - Valide une date grégorienne


Retourne un tableau associatif avec des informations détaillées sur une date donnée

  • « date_parse_from_format
  • date_sub »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne un tableau associatif avec des informations détaillées sur une date donnée

date_parse

(PHP 5 >= 5.2.0, PHP 7)

date_parse — Retourne un tableau associatif avec des informations détaillées sur une date donnée

Description

array date_parse ( string $date )

Liste de paramètres

date

Date dans un format accepté par la fonction strtotime().

Valeurs de retour

Retourne un tableau contenant des informations sur la date analysée en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Dans le cas où la fonction retourne une erreur, l'élément "errors" contiendra les messages d'erreur.

Exemples

Exemple #1 Exemple avec date_parse()

<?php
print_r(date_parse("2006-12-12 10:00:00.5"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [year] => 2006
    [month] => 12
    [day] => 12
    [hour] => 10
    [minute] => 0
    [second] => 0
    [fraction] => 0.5
    [warning_count] => 0
    [warnings] => Array()
    [error_count] => 0
    [errors] => Array()
    [is_localtime] =>
)

Les formats relatifs n'influencent pas les valeurs analysées depuis des formats absoluts, mais sont analysées dans l'élément "relatif".

Exemple #2 Exemple avec date_parse() et des formats relatifs

<?php
print_r(date_parse("2006-12-12 10:00:00.5 +1 week +1 hour"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [year] => 2006
    [month] => 12
    [day] => 12
    [hour] => 10
    [minute] => 0
    [second] => 0
    [fraction] => 0.5
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] =>
    [relative] => Array
        (
            [year] => 0
            [month] => 0
            [day] => 7
            [hour] => 1
            [minute] => 0
            [second] => 0
        )

)

Voir aussi

  • checkdate() - Valide une date grégorienne
  • getdate() - Retourne la date/heure


Alias de DateTime::sub

  • « date_parse
  • date_sun_info »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::sub

date_sub

(PHP 5 >= 5.3.0, PHP 7)

date_sub — Alias de DateTime::sub()

Description

Cette fonction est un alias de : DateTime::sub()


Retourne un tableau avec les informations sur le lever/coucher du soleil ainsi que le début et la fin de l'aube

  • « date_sub
  • date_sunrise »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne un tableau avec les informations sur le lever/coucher du soleil ainsi que le début et la fin de l'aube

date_sun_info

(PHP 5 >= 5.1.2, PHP 7)

date_sun_info — Retourne un tableau avec les informations sur le lever/coucher du soleil ainsi que le début et la fin de l'aube

Description

array date_sun_info ( int $time , float $latitude , float $longitude )

Liste de paramètres

time

Timestamp.

latitude

Latitude, en degrés.

longitude

Longitude, en degrés.

Valeurs de retour

Retourne un tableau en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec date_sun_info()

<?php
$sun_info = date_sun_info(strtotime("2006-12-12"), 31.7667, 35.2333);
foreach ($sun_info as $key => $val) {
  echo "$key: " . date("H:i:s", $val) . "\n";
}
?>

L'exemple ci-dessus va afficher :

sunrise: 05:52:11
sunset: 15:41:21
transit: 10:46:46
civil_twilight_begin: 05:24:08
civil_twilight_end: 16:09:24
nautical_twilight_begin: 04:52:25
nautical_twilight_end: 16:41:06
astronomical_twilight_begin: 04:21:32
astronomical_twilight_end: 17:12:00

Voir aussi

  • date_sunrise() - Retourne l'heure de lever du soleil pour un jour et un endroit donnés
  • date_sunset() - Retourne l'heure de coucher du soleil pour un jour et un endroit donnés


Retourne l'heure de lever du soleil pour un jour et un endroit donnés

  • « date_sun_info
  • date_sunset »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne l'heure de lever du soleil pour un jour et un endroit donnés

date_sunrise

(PHP 5, PHP 7)

date_sunrise — Retourne l'heure de lever du soleil pour un jour et un endroit donnés

Description

mixed date_sunrise ( int $timestamp [, int $format = SUNFUNCS_RET_STRING [, float $latitude = ini_get("date.default_latitude") [, float $longitude = ini_get("date.default_longitude") [, float $zenith = ini_get("date.sunrise_zenith") [, float $gmt_offset = 0 ]]]]] )

date_sunrise() retourne l'heure de lever du soleil pour un jour (spécifié par le paramètre timestamp) et un endroit donnés.

Liste de paramètres

timestamp

Le timestamp Unix du jour pour lequel l'heure de lever du soleil est donnée.

format

Constantes pour le paramètre format
Constante | Description | Exemple
SUNFUNCS_RET_STRING | Retourne le résultat en tant que chaîne de caractères | 16:46
SUNFUNCS_RET_DOUBLE | Retourne le résultat en tant que nombre décimal | 16.78243132
SUNFUNCS_RET_TIMESTAMP | Retourne le résultat en tant qu'entier (timestamp) | 1095034606

latitude

Par défaut, c'est le Nord. Passez une valeur négative pour le Sud. Voir aussi date.default_latitude.

longitude

Par défaut, c'est l'Est. Passez une valeur négative pour l'Ouest. Voir aussi date.default_longitude.

zenith

Par défaut : date.sunrise_zenith

gmtoffset

Spécifié en heures.

Valeurs de retour

Retourne l'heure de lever du soleil dans le format spécifié en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide, et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple #1 Exemple avec date_sunrise()

<?php

/* Calcule l'heure du lever du soleil pour Lisbonne, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunrise time : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Mon Dec 20 2004, sunrise time : 08:54

Voir aussi

  • date_sunset() - Retourne l'heure de coucher du soleil pour un jour et un endroit donnés


Retourne l'heure de coucher du soleil pour un jour et un endroit donnés

  • « date_sunrise
  • date_time_set »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne l'heure de coucher du soleil pour un jour et un endroit donnés

date_sunset

(PHP 5, PHP 7)

date_sunset — Retourne l'heure de coucher du soleil pour un jour et un endroit donnés

Description

mixed date_sunset ( int $timestamp [, int $format = SUNFUNCS_RET_STRING [, float $latitude = ini_get("date.default_latitude") [, float $longitude = ini_get("date.default_longitude") [, float $zenith = ini_get("date.sunset_zenith") [, float $gmt_offset = 0 ]]]]] )

La fonction date_sunset() retourne l'heure de coucher du soleil pour un jour (spécifié en tant que timestamp Unix) et un endroit donnés.

Liste de paramètres

timestamp

Le timestamp Unix du jour pour lequel l'heure du coucher du soleil est donnée.

format

Constantes pour le paramètre format
Constante | Description | Exemple
SUNFUNCS_RET_STRING | Retourne le résultat sous la forme d'une chaîne de caractères | 16:46
SUNFUNCS_RET_DOUBLE | Retourne le résultat sous la forme d'un nombre décimal | 16.78243132
SUNFUNCS_RET_TIMESTAMP | Retourne le résultat sous la forme d'un entier (timestamp) | 1095034606

latitude

Par défaut, c'est le Nord. Passez une valeur négative pour le Sud. Voir aussi date.default_latitude.

longitude

Par défaut, c'est l'Est. Passez une valeur négative pour l'Ouest. Voir aussi date.default_longitude.

zenith

Par défaut : date.sunrise_zenith

gmtoffset

Spécifié en heures.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide, et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Valeurs de retour

Retourne l'heure de coucher du soleil dans le format spécifié ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec date_sunset()

<?php

     /* Calcul l'heure du coucher du soleil pour Lisbonne, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunset time : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Mon Dec 20 2004, sunset time : 18:13

Voir aussi

  • date_sunrise() - Retourne l'heure de lever du soleil pour un jour et un endroit donnés


Alias de DateTime::setTime

  • « date_sunset
  • date_timestamp_get »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::setTime

date_time_set

(PHP 5 >= 5.2.0, PHP 7)

date_time_set — Alias de DateTime::setTime()

Description

Cette fonction est un alias de : DateTime::setTime()


Alias de DateTime::getTimestamp

  • « date_time_set
  • date_timestamp_set »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7)

date_timestamp_get — Alias de DateTime::getTimestamp()

Description

Cette fonction est un alias de : DateTime::getTimestamp()


Alias de DateTime::setTimestamp

  • « date_timestamp_get
  • date_timezone_get »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::setTimestamp

date_timestamp_set

(PHP 5 >= 5.3.0, PHP 7)

date_timestamp_set — Alias de DateTime::setTimestamp()

Description

Cette fonction est un alias de : DateTime::setTimestamp()


Alias de DateTime::getTimezone

  • « date_timestamp_set
  • date_timezone_set »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::getTimezone

date_timezone_get

(PHP 5 >= 5.2.0, PHP 7)

date_timezone_get — Alias de DateTime::getTimezone()

Description

Cette fonction est un alias de : DateTime::getTimezone()


Alias de DateTime::setTimezone

  • « date_timezone_get
  • date »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTime::setTimezone

date_timezone_set

(PHP 5 >= 5.2.0, PHP 7)

date_timezone_set — Alias de DateTime::setTimezone()

Description

Cette fonction est un alias de : DateTime::setTimezone()


Formate une date/heure locale

  • « date_timezone_set
  • getdate »
  • PHP Manual
  • Fonctions Date/Heure
  • Formate une date/heure locale

date

(PHP 4, PHP 5, PHP 7)

date — Formate une date/heure locale

Description

string date ( string $format [, int $timestamp = time() ] )

Retourne une date sous forme d'une chaîne, au format donné par le paramètre format, fournie par le paramètre timestamp ou la date et l'heure courantes si aucun timestamp n'est fourni. En d'autres termes, le paramètre timestamp est optionnel et vaut par défaut la valeur de la fonction time().

Liste de paramètres

format

Le format de la date désirée. Voir les options de formatage ci-dessous. Il existe aussi de nombreuses constantes de dates qui peuvent être utilisées, ce qui fait que DATE_RSS va remplacer le format "D, d M Y H:i:s".

Les caractères suivants sont reconnus dans le paramètre format
Caractères pour le paramètre format | Description | Exemple de valeurs retournées
Jour --- ---
d | Jour du mois, sur deux chiffres (avec un zéro initial) | 01 à 31
D | Jour de la semaine, en trois lettres (et en anglais - par défaut : en anglais, ou sinon, dans la langue locale du serveur) | Mon à Sun
j | Jour du mois sans les zéros initiaux | 1 à 31
l ('L' minuscule) | Jour de la semaine, textuel, version longue, en anglais | Sunday à Saturday
N | Représentation numérique ISO-8601 du jour de la semaine (ajouté en PHP 5.1.0) | 1 (pour Lundi) à 7 (pour Dimanche)
S | Suffixe ordinal d'un nombre pour le jour du mois, en anglais, sur deux lettres | st, nd, rd ou th. Fonctionne bien avec j
w | Jour de la semaine au format numérique | 0 (pour dimanche) à 6 (pour samedi)
z | Jour de l'année | 0 à 365
Semaine --- ---
W | Numéro de semaine dans l'année ISO-8601, les semaines commencent le lundi (ajouté en PHP 4.1.0) | Exemple : 42 (la 42ème semaine de l'année)
Mois --- ---
F | Mois, textuel, version longue; en anglais, comme January ou December | January à December
m | Mois au format numérique, avec zéros initiaux | 01 à 12
M | Mois, en trois lettres, en anglais | Jan à Dec
n | Mois sans les zéros initiaux | 1 à 12
t | Nombre de jours dans le mois | 28 à 31
Année --- ---
L | Est ce que l'année est bissextile | 1 si bissextile, 0 sinon.
o | L'année ISO-8601. C'est la même valeur que Y, excepté si le numéro de la semaine ISO (W) appartient à l'année précédente ou suivante, cette année sera utilisé à la place. (ajouté en PHP 5.1.0) | Exemples : 1999 ou 2003
Y | Année sur 4 chiffres | Exemples : 1999 ou 2003
y | Année sur 2 chiffres | Exemples : 99 ou 03
Heure --- ---
a | Ante meridiem et Post meridiem en minuscules | am ou pm
A | Ante meridiem et Post meridiem en majuscules | AM ou PM
B | Heure Internet Swatch | 000 à 999
g | Heure, au format 12h, sans les zéros initiaux | 1 à 12
G | Heure, au format 24h, sans les zéros initiaux | 0 à 23
h | Heure, au format 12h, avec les zéros initiaux | 01 à 12
H | Heure, au format 24h, avec les zéros initiaux | 00 à 23
i | Minutes avec les zéros initiaux | 00 à 59
s | Secondes, avec zéros initiaux | 00 à 59
u | Microsecondes (ajouté en PHP 5.2.2). Notez que la fonction date() génèrera toujours 000000 vu qu'elle prend un paramètre de type entier, alors que la méthode DateTime::format() supporte les microsecondes si DateTime a été créée avec des microsecondes. | Exemple : 654321
Fuseau horaire --- ---
e | L'identifiant du fuseau horaire (ajouté en PHP 5.1.0) | Exemples : UTC, GMT, Atlantic/Azores
I (i majuscule) | L'heure d'été est activée ou pas | 1 si oui, 0 sinon.
O | Différence d'heures avec l'heure de Greenwich (GMT), exprimée en heures | Exemple : +0200
P | Différence avec l'heure Greenwich (GMT) avec un deux-points entre les heures et les minutes (ajouté dans PHP 5.1.3) | Exemple : +02:00
T | Abréviation du fuseau horaire | Exemples : EST, MDT ...
Z | Décalage horaire en secondes. Le décalage des zones à l'ouest de la zone UTC est négative, et à l'est, il est positif. | -43200 à 50400
Date et Heure complète --- ---
c | Date au format ISO 8601 (ajouté en PHP 5) | 2004-02-12T15:19:21+00:00
r | Format de date » RFC 2822 | Exemple : Thu, 21 Dec 2000 16:01:07 +0200
U | Secondes depuis l'époque Unix (1er Janvier 1970, 0h00 00s GMT) | Voir aussi time()

Les caractères non reconnus seront imprimés tels quels. "Z" retournera toujours 0 lorsqu'il est utilisé avec gmdate().

Note:

Sachant que cette fonction n'accepte que des entiers sous la forme de timestamp, le caractère u n'est utile que lors de l'utilisation de la fonction date_format() avec un timestamp utilisateur créé avec la fonction date_create().

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il vaut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne une date formatée. Si une valeur non-numérique est utilisée dans le paramètre timestamp, FALSE sera retourné et une erreur de niveau E_WARNING est émise.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide, et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
5.1.0 | L'intervalle de validité d'un timestamp va généralement du Vendredi 13 Décembre 1901 20:45:54 GMT au Mardi 19 Janvier 2038 03:14:07 GMT. (Ces dates correspondent aux valeurs minimales et maximales des entiers 32 bits non-signés). Cependant, avant PHP 5.1.0, cette intervalle va du 01-01-1970 au 19-01-2038 sur quelques systèmes (e.g. Windows).
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.
5.1.1 | Il y a plusieurs constantes utiles de formats date/heure standards qui peuvent être utilisées pour spécifier le paramètre format.

Exemples

Exemple #1 Exemple avec date()

<?php
// Définit le fuseau horaire par défaut à utiliser. Disponible depuis PHP 5.1
date_default_timezone_set('UTC');

// Affichage de quelque chose comme : Monday
echo date("l");

// Affichage de quelque chose comme : Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// Affiche : July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

/* utilise les constantes dans le paramètre format */
// Affichage de quelque chose comme : Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);

// Affichage de quelque chose comme : 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>

Vous pouvez faire afficher un caractère spécial dans la chaîne de format en le protégeant par un antislash. Si le caractère est lui-même une séquence incluant un antislash, vous devrez protéger aussi l'antislash.

Exemple #2 Protection des caractères dans la fonction date()

<?php
// Affichage de quelque chose comme : Wednesday the 15th
echo date('l \t\h\e jS');
?>

Il est possible d'utiliser date() et mktime() ensemble pour générer des dates dans le futur ou dans le passé.

Exemple #3 Exemple avec date() et mktime()

<?php
$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);
?>

Note:

Cette méthode est plus sûre que simplement ajouter ou retrancher le nombre de secondes dans une journée ou un mois à un timestamp, à cause des heures d'hiver et d'été.

Voici maintenant quelques exemples de formatage avec date(). Notez que vous devriez échapper tous les autres caractères, car s'ils ont une signification spéciale, ils risquent de produire des effets secondaires indésirables. Notez aussi que les versions futures de PHP peuvent attribuer une signification à des lettres qui sont actuellement inertes. Lorsque vous échappez les caractères, pensez à utiliser des guillemets simples, pour que les séquences \n ne deviennent pas des nouvelles lignes.

Exemple #4 Exemple avec date()

<?php
// Aujourd'hui, le 10 Mars 2001, 5:16:18 pm, Fuseau horaire
// Mountain Standard Time (MST)

$today = date("F j, Y, g:i a");                   // March 10, 2001, 5:16 pm
$today = date("m.d.y");                           // 03.10.01
$today = date("j, n, Y");                         // 10, 3, 2001
$today = date("Ymd");                             // 20010310
$today = date('h-i-s, j-m-y, it is w Day');       // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');     // It is the 10th day (10ème jour du mois).
$today = date("D M j G:i:s T Y");                 // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \e\s\t\ \l\e\ \m\o\i\s'); // 17:03:18 m est le mois
$today = date("H:i:s");                           // 17:16:18
$today = date("Y-m-d H:i:s");                     // 2001-03-10 17:16:18 (le format DATETIME de MySQL)
?>

Pour formater des dates dans d'autres langues, utilisez les fonctions setlocale() et strftime() au lieu de la fonction date().

Notes

Note:

Pour générer un timestamp à partir d'une représentation de date, vous pouvez utiliser la fonction strtotime(). De plus, certaines bases de données disposent de fonctions pour convertir leurs propres formats de date en timestamp (par exemple, MySQL et sa fonction » UNIX_TIMESTAMP()).

Astuce

Un timestamp représentant le début de la requête est disponible dans la variable $_SERVER['REQUEST_TIME'] depuis PHP 5.1.

Voir aussi

  • gmdate() - Formate une date/heure GMT/CUT
  • idate() - Formate une date/heure locale en tant qu'entier
  • getdate() - Retourne la date/heure
  • getlastmod() - Retourne la date de dernière modification de la page
  • mktime() - Retourne le timestamp UNIX d'une date
  • strftime() - Formate une date/heure locale avec la configuration locale
  • time() - Retourne le timestamp UNIX actuel
  • strtotime() - Transforme un texte anglais en timestamp
  • constantes de date


Retourne la date/heure

  • « date
  • gettimeofday »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne la date/heure

getdate

(PHP 4, PHP 5, PHP 7)

getdate — Retourne la date/heure

Description

array getdate ([ int $timestamp = time() ] )

Retourne un tableau associatif contenant les informations de date et d'heure du timestamp timestamp lorsqu'il est fourni, sinon, le timestamp de la date/heure courante locale.

Liste de paramètres

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il vaut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne un tableau associatif contenant les informations de date et d'heure du timestamp timestamp. Les éléments du tableau associatif retourné sont les suivants :

Nom des clés du tableau associatif retourné
Clé | Description | Exemple de valeur retournée
"seconds" | Représentation numérique des secondes | 0 à 59
"minutes" | Représentation numérique des minutes | 0 à 59
"hours" | Représentation numérique des heures | 0 à 23
"mday" | Représentation numérique du jour du mois courant | 1 à 31
"wday" | Représentation numérique du jour de la semaine courante | 0 (pour Dimanche) à 6 (pour Samedi)
"mon" | Représentation numérique du mois | 1 à 12
"year" | Année, sur 4 chiffres | Exemples : 1999 ou 2003
"yday" | Représentation numérique du jour de l'année | 0 à 365
"weekday" | Version texte du jour de la semaine | Sunday à Saturday
"month" | Version texte du mois, comme January ou March | January à December
0 | Nombre de secondes depuis l'époque Unix, similaire à la valeur retournée par la fonction time() et utilisée par date(). | Dépend du système, typiquement de -2147483648 à 2147483647.

Exemples

Exemple #1 Exemple avec getdate()

<?php
$today = getdate();
print_r($today);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
     [seconds] => 40
     [minutes] => 58
     [hours]   => 21
     [mday]    => 17
     [wday]    => 2
     [mon]     => 6
     [year]    => 2003
     [yday]    => 167
     [weekday] => Tuesday
     [month]   => June
     [0]       => 1055901520
)

Voir aussi

  • date() - Formate une date/heure locale
  • idate() - Formate une date/heure locale en tant qu'entier
  • localtime() - Récupère l'heure locale
  • time() - Retourne le timestamp UNIX actuel
  • setlocale() - Modifie les informations de localisation


Retourne l'heure actuelle

  • « getdate
  • gmdate »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne l'heure actuelle

gettimeofday

(PHP 4, PHP 5, PHP 7)

gettimeofday — Retourne l'heure actuelle

Description

mixed gettimeofday ([ bool $return_float = false ] )

C'est une interface avec gettimeofday(2). Elle retourne un tableau associatif qui contient les informations retournées par le système.

Liste de paramètres

return_float

Lorsque défini à TRUE, un nombre décimal est retourné à la place d'un tableau.

Valeurs de retour

Par défaut, un tableau est retourné. Si le paramètre return_float est défini, alors un nombre décimal sera retourné.

Clés du tableau :

  • "sec" : secondes depuis l'époque Unix
  • "usec" : microsecondes
  • "minuteswest" : minutes de décalage par rapport à Greenwich, vers l'Ouest.
  • "dsttime" : type de correction dst

Historique

Version | Description
5.1.0 | Le paramètre return_float a été ajouté.

Exemples

Exemple #1 Exemple avec gettimeofday()

<?php
print_r(gettimeofday());

echo gettimeofday(true);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [sec] => 1073504408
   [usec] => 238215
   [minuteswest] => 0
   [dsttime] => 1
)

1073504408.23910


Formate une date/heure GMT/CUT

  • « gettimeofday
  • gmmktime »
  • PHP Manual
  • Fonctions Date/Heure
  • Formate une date/heure GMT/CUT

gmdate

(PHP 4, PHP 5, PHP 7)

gmdate — Formate une date/heure GMT/CUT

Description

string gmdate ( string $format [, int $timestamp = time() ] )

gmdate() est identique à la fonction date(), hormis le fait que le temps retourné est GMT (Greenwich Mean Time).

Liste de paramètres

format

Le format de la date en sortie. Voir les options de formatage pour la fonction date().

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il vaut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne une date formatée. Si une valeur non numérique est utilisée pour le paramètre timestamp, FALSE est retourné et une erreur de niveau E_WARNING sera émise.

Historique

Version | Description
5.1.0 | L'intervalle de validité d'un timestamp est typiquement depuis le Vendredi 13 Décembre 1901 20:45:54 GMT au 19 Janvier 2038 03:14:07 GMT. (ce qui correspond aux valeurs minimales et maximales d'un entier 32 bits signé). Cependant, avant PHP 5.1.0, cet intervalle était limité de 01-01-1970 à 19-01-2038 sous quelques systèmes (e.g. Windows).
5.1.1 | Il y a quelques constants utiles pour les formats standards date/heure qui peuvent être utilisées dans le paramètre format.

Exemples

Exemple #1 Exemple avec gmdate()

Lorsque cette fonction est exécutée en Finlande (GMT +0200), la première ligne ci-dessous affichera "Jan 01 1998 00:00:00", tandis que la seconde affichera "Dec 31 1997 22:00:00".

<?php
echo date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>

Voir aussi

  • date() - Formate une date/heure locale
  • mktime() - Retourne le timestamp UNIX d'une date
  • gmmktime() - Retourne le timestamp UNIX d'une date GMT
  • strftime() - Formate une date/heure locale avec la configuration locale


Retourne le timestamp UNIX d'une date GMT

  • « gmdate
  • gmstrftime »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne le timestamp UNIX d'une date GMT

gmmktime

(PHP 4, PHP 5, PHP 7)

gmmktime — Retourne le timestamp UNIX d'une date GMT

Description

 int gmmktime
  ([ int $hour = gmdate("H")
 [, int $minute = gmdate("i")
 [, int $second = gmdate("s")
 [, int $month = gmdate("n")
 [, int $day = gmdate("j")
 [, int $year = gmdate("Y")
 [, int $is_dst = -1
]]]]]]] )

Identique à la fonction mktime() excepté le fait que les paramètres passés sont GMT. gmmktime() utilise en interne la fonction mktime(), donc, seuls les temps valides dans la zone locale dérivée peuvent être utilisés.

Comme mktime(), les arguments restants peuvent être ignorés. Ils prendront alors leurs valeurs GMT actuelles.

Liste de paramètres

hour

Le nombre d'heures depuis le début de la journée fixée par les paramètres month, day et year. Les valeurs négatives font référence aux heures avant minuit du jour en question. Les valeurs supérieures à 23 font référence aux heures associées pour le(s) jour(s) suivant(s).

minute

Le nombre de minutes depuis le début de l'heure hour. Les valeurs négatives font référence aux minutes de l'heure précédente. Les valeurs supérieures à 59 font référence aux minutes associées pour l'(les) heure(s) suivante(s).

second

Le nombre de secondes depuis le début de la minute minute. Les valeurs négatives font référence aux secondes de la minute précédente. Les valeurs supérieures à 59 font références aux secondes associées à la(les) minute(s) suivante(s).

month

Le nombre de mois depuis la fin de l'année précédente. Les valeurs comprises entre 1 et 12 font référence aux mois du calendrier normal de l'année en question. Les valeurs inférieures à 1 (y compris les valeurs négatives) font référence aux mois de l'année précédente dans l'ordre inverse, aussi, 0 correspond à décembre, -1 à novembre, etc. Les valeurs supérieures à 12 font référence au mois correspondant dans l'(les) année(s) suivante(s).

day

Le nombre de jours depuis la fin du mois précédent. Les valeurs comprises entre 1 et 28, 29, 30, 31 (suivant le mois) font référence aux jours normaux dans le mois courant. Les valeurs inférieures à 1 (y compris les valeurs négatives) font référence aux jours du mois précédent, aussi, 0 correspond au dernier jour du mois précédent, -1, le jour d'avant, etc. Les valeurs supérieures au nombre de jours du mois courant font référence aux jours correspondants du(des) mois suivant(s).

year

L'année

is_dst

Les paramètres représentent toujours une date GMT donc, le paramètre is_dst n'influence pas le résultat.

Note:

Ce paramètre a été supprimé en PHP 7.0.0.

Valeurs de retour

Retourne un timestamp Unix, sous la forme d'un entier.

Historique

Version | Description
7.0.0 | Le paramètre is_dst a été supprimé.
5.1.0 | Depuis PHP 5.1.0, le paramètre is_dst est devenu obsolète. Le nouveau gestionnaire de fuseau horaire doit être utilisé à la place.

Exemples

Exemple #1 Exemple avec gmmktime()

<?php
// Affiche : July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", gmmktime(0, 0, 0, 7, 1, 2000));
?>

Voir aussi

  • mktime() - Retourne le timestamp UNIX d'une date
  • date() - Formate une date/heure locale
  • time() - Retourne le timestamp UNIX actuel


Formate une date/heure GMT/CUT en fonction de la configuration locale

  • « gmmktime
  • idate »
  • PHP Manual
  • Fonctions Date/Heure
  • Formate une date/heure GMT/CUT en fonction de la configuration locale

gmstrftime

(PHP 4, PHP 5, PHP 7)

gmstrftime — Formate une date/heure GMT/CUT en fonction de la configuration locale

Description

string gmstrftime ( string $format [, int $timestamp = time() ] )

gmstrftime() se comporte exactement comme strftime() hormis le fait que l'heure utilisée est celle de Greenwich (Greenwich Mean Time, GMT). Par exemple, dans la zone Eastern Standard Time (est des USA) est GMT -0500, la première ligne de l'exemple ci-dessous affiche "Dec 31 1998 20:00:00", tandis que la seconde affiche "Jan 01 1999 01:00:00".

Liste de paramètres

format

Voir la description de la fonction strftime().

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il vaut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne une chaîne de caractères formatée suivant le format donné par le paramètre timestamp ou la date courante si aucun paramètre timestamp n'est fourni. Les noms des mois, des jours de la semaine et des autres chaînes dépendant d'une localisation donnée, respectent la localisation courante définie par la fonction setlocale().

Exemples

Exemple #1 Exemple avec gmstrftime()

<?php
setlocale(LC_TIME, 'en_US');
echo strftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
echo gmstrftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
?>

Voir aussi

  • strftime() - Formate une date/heure locale avec la configuration locale


Formate une date/heure locale en tant qu'entier

  • « gmstrftime
  • localtime »
  • PHP Manual
  • Fonctions Date/Heure
  • Formate une date/heure locale en tant qu'entier

idate

(PHP 5, PHP 7)

idate — Formate une date/heure locale en tant qu'entier

Description

int idate ( string $format [, int $timestamp = time() ] )

idate() retourne un nombre formaté avec le format format et représentant le timestamp timestamp ou l'heure courante si timestamp est omis. En d'autres termes, le paramètre timestamp est optionnel et la valeur par défaut est la valeur retournée par la fonction time().

À l'inverse de la fonction date(), idate() accepte juste un caractère comme paramètre format.

Liste de paramètres

format

Les caractères suivants sont reconnus dans la chaîne de caractères du paramètre format
Caractères de format | Description
B | Temps Internet Swatch Beat
d | Le jour du mois
h | Heure (format 12 heures)
H | Heure (format 24 heures)
i | Minutes
I(i, en majuscule) | Retourne 1 si l'heure d'été est activée, 0 sinon
L(l, en majuscule) | Retourne 1 pour une année bissextile, 0 sinon
m | Numéro du mois
s | Secondes
t | Jour du mois courant
U | Secondes depuis l'époque Unix - 1 Janvier 1970 00:00:00 UTC - c'est la même chose que la fonction time()
w | Jour de la semaine (0 pour Dimanche)
W | Le numéro de semaine de l'année ; selon l'ISO-8601, les semaines débutent le Lundi
y | Année sur 1 ou 2 chiffres, voir la note plus bas
Y | Année sur 4 chiffres
z | Jour de l'année
Z | Décalage horaire, en secondes

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il vaut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne un entier.

Sachant que idate() retourne toujours un entier et qu'il ne peut commencer par 0, idate() peut retourner moins de chiffres que ce dont on pourrait espérer. Voir l'exemple ci-dessous.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide, et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple #1 Exemple avec idate()

<?php
$timestamp = strtotime('1st January 2004'); //1072915200

// ceci affiche l'année sur deux chiffres
// néanmoins, vu que ce chiffre va commencer par "0",
// seul "4" sera affiché
echo idate('y', $timestamp);
?>

Voir aussi

  • date() - Formate une date/heure locale
  • getdate() - Retourne la date/heure
  • time() - Retourne le timestamp UNIX actuel


Récupère l'heure locale

  • « idate
  • microtime »
  • PHP Manual
  • Fonctions Date/Heure
  • Récupère l'heure locale

localtime

(PHP 4, PHP 5, PHP 7)

localtime — Récupère l'heure locale

Description

array localtime ([ int $timestamp = time() [, bool $is_associative = false ]] )

localtime() retourne un tableau identique à la structure retournée par la fonction C localtime.

Liste de paramètres

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il vaut par défaut la valeur de la fonction time().

is_associative

si défini à FALSE ou ignoré, force localtime() à retourner un tableau à index numérique. S'il est mis à TRUE, localtime() retourne un tableau associatif, avec tous les éléments de la structure C, accessible avec les clés. Les noms des différentes clés du tableau associatif sont les suivants :

  • "tm_sec" : secondes, de 0 à 59
  • "tm_min" : minutes, de 0 à 59
  • "tm_hour" : heure, de 0 à 23
  • "tm_mday" : jour du mois, de 1 à 31
  • "tm_mon" : mois de l'année, de 0 (Jan) à 11 (Déc)
  • "tm_year" : Année depuis 1900
  • "tm_wday" : Jour de la semaine, de 0 (Dim) à 6 (Sam)
  • "tm_yday" : Jour de l'année, de 0 à 365
  • "tm_isdst" : Est-ce que l'heure d'été a pris effet ? Valeur positive si oui, 0 sinon, valeur négative si le résultat n'a pu être déterminé.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide, et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple #1 Exemple avec localtime()

<?php
$localtime = localtime();
$localtime_assoc = localtime(time(), true);
print_r($localtime);
print_r($localtime_assoc);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 24
    [1] => 3
    [2] => 19
    [3] => 3
    [4] => 3
    [5] => 105
    [6] => 0
    [7] => 92
    [8] => 1
)

Array
(
    [tm_sec] => 24
    [tm_min] => 3
    [tm_hour] => 19
    [tm_mday] => 3
    [tm_mon] => 3
    [tm_year] => 105
    [tm_wday] => 0
    [tm_yday] => 92
    [tm_isdst] => 1
)

Voir aussi

  • getdate() - Retourne la date/heure


Retourne le timestamp UNIX actuel avec les microsecondes

  • « localtime
  • mktime »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne le timestamp UNIX actuel avec les microsecondes

microtime

(PHP 4, PHP 5, PHP 7)

microtime — Retourne le timestamp UNIX actuel avec les microsecondes

Description

mixed microtime ([ bool $get_as_float = false ] )

microtime() retourne le timestamp Unix, avec les microsecondes. Cette fonction est uniquement disponible sur les systèmes qui supportent la fonction gettimeofday().

Liste de paramètres

get_as_float

Si utilisé et défini à TRUE, microtime() retournera un nombre à virgule flottante au lieu d'une chaîne de caractères, tel que décrit dans la section des valeurs retournées ci-dessous.

Valeurs de retour

Par défaut, microtime() retourne une chaîne de caractères au format "msec sec", où sec est le nombre de secondes depuis l'époque Unix (1 Janvier 1970, 00:00:00 GMT), et msec est le nombre de microsecondes qui se sont écoulées depuis sec, exprimé en secondes.

Si get_as_float est défini à TRUE, alors microtime() retourne un nombre à virgule flottante, qui représente le temps courant, en secondes, depuis l'époque Unix, précis à la microseconde près.

Exemples

Exemple #1 Durée d'exécution d'un script avec la fonction microtime()

<?php
/**
* Fonction simple identique à celle en PHP 5 qui va suivre
*/
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();

// Attend pendant un moment
usleep(100);

$time_end = microtime_float();
$time = $time_end - $time_start;

echo "Ne rien faire pendant $time secondes\n";
?>

Exemple #2 Durée d'exécution d'un script en PHP 5

<?php
$time_start = microtime(true);

// Attend pendant un moment
usleep(100);

$time_end = microtime(true);
$time = $time_end - $time_start;

echo "Ne rien faire pendant $time secondes\n";
?>

Exemple #3 Exemple avec microtime() et REQUEST_TIME_FLOAT (depuis PHP 5.4.0)

<?php
// Durée d'attente aléatoire
usleep(mt_rand(100, 10000));

// Depuis PHP 5.4.0, REQUEST_TIME_FLOAT est disponible dans le tableau superglobal $_SERVER.
// Il contient le timestamp du début de la requête, avec une précision à la microseconde.
$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];

echo "Ne rien faire pendant $time secondes\n";
?>

Voir aussi

  • time() - Retourne le timestamp UNIX actuel


Retourne le timestamp UNIX d'une date

  • « microtime
  • strftime »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne le timestamp UNIX d'une date

mktime

(PHP 4, PHP 5, PHP 7)

mktime — Retourne le timestamp UNIX d'une date

Description

 int mktime
  ([ int $hour = date("H")
 [, int $minute = date("i")
 [, int $second = date("s")
 [, int $month = date("n")
 [, int $day = date("j")
 [, int $year = date("Y")
 [, int $is_dst = -1
]]]]]]] )

mktime() retourne un timestamp UNIX correspondant aux arguments fournis. Ce timestamp est un entier long, contenant le nombre de secondes entre le début de l'époque UNIX (1er Janvier 1970 00:00:00 GMT) et le temps spécifié.

Les arguments peuvent être omis, de droite à gauche, et tous les arguments manquants sont utilisés avec la valeur courante de l'heure et du jour.

Notes

Note:

Depuis PHP 5.1, lorsqu'appelée sans argument, la fonction mktime() émet une alerte de type E_STRICT : utilisez la fonction time() à la place.

Liste de paramètres

hour

Le nombre d'heures depuis le début de la journée fixée par les paramètres month, day et year. Les valeurs négatives font références aux heures avant minuit du jour en question. Les valeurs supérieures à 23 font références aux heures associées pour le(s) jour(s) suivant(s).

minute

Le nombre de minutes depuis le début de l'heure hour. Les valeurs négatives font références aux minutes de l'heure précédente. Les valeurs supérieures à 59 font références aux minutes associées pour l'(les) heure(s) suivante(s).

second

Le nombre de secondes depuis le début de la minute minute. Les valeurs négatives font références aux secondes de la minute précédente. Les valeurs supérieures à 59 font références aux secondes associées à la(les) minute(s) suivante(s).

month

Le nombre de mois depuis la fin de l'année précédente. Les valeurs comprises entre 1 et 12 font références aux mois du calendrier normal de l'année en question. Les valeurs inférieures à 1 (y compris les valeurs négatives) font références aux mois de l'année précédente dans l'ordre inverse, aussi, 0 correspond à décembre, -1 à novembre, etc. Les valeurs supérieures à 12 font références au mois correspondant dans l'(les) année(s) suivante(s).

day

Le nombre de jours depuis la fin du mois précédent. Les valeurs comprises entre 1 et 28, 29, 30, 31 (suivant le mois) font références aux jours normaux dans le mois courant. Les valeurs inférieures à 1 (y compris les valeurs négatives) font références aux jours du mois précédent, aussi, 0 correspond au dernier jour du mois précédent, -1, le jour d'avant, etc. Les valeurs supérieures au nombre de jours du mois courant font références aux jours correspondants du(des) mois suivant(s).

year

L'année, peut être sur deux ou quatre chiffres, avec des valeurs allant de 0 à 69, correspondant au valeur 2000 à 2069 et 70 à 100, correspondant au valeur 1970 à 2000. Sur les systèmes où time_t un entier signé sur 32bits, ce qui est le plus courant de nos jours, la période valide pour year est quelque part près de 1901 et 2038. Cependant, avant PHP 5.1.0, cette intervalle était limitée de 1970 à 2038 sur quelques systèmes (i.e. Windows).

is_dst

Ce paramètre peut être mis à 1 si l'heure d'hiver est appliquée (DST), 0 si elle ne l'est pas, et -1 (par défaut) si on ne sait pas. Si l'on ne sait pas, PHP tente de le traiter lui-même. Ceci peut occasionner des résultats inattendus (mais néanmoins correct). Quelques temps sont invalides si DST est activé sur les systèmes où PHP fonctionne ou is_dist est défini à 1. Si DST est activé e.g. 2:00, tous les temps entre 2:00 et 3:00 sont invalides et la fonction mktime() retourne une valeur indéfinie (généralement une valeur négative). Quelques systèmes (e.g. Solaris 8) activent DST à minuit, donc, le temps 0:30 du jour lorsque DST est activé est évalué à 23:30 du jour précédent.

Note:

Depuis PHP 5.1.0, ce paramètre est obsolète. Comme résultat, le nouveau gestionnaire de fuseau horaire doit être utilisé à la place.

Note:

Ce paramètre a été supprimé en PHP 7.0.0.

Valeurs de retour

mktime() retourne un timestamp Unix des arguments donnés. Si les arguments ne sont pas valides, la fonction retournera FALSE (avant PHP 5.1, elle retournait -1).

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide, et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
7.0.0 | Le paramètre is_dst a été supprimé.
5.3.0 | mktime() lance maintenant une alerte de type E_DEPRECATED si le paramètre is_dst est utilisé.
5.1.0 | Le paramètre is_dst est obsolète. Fait que la fonction retourne FALSE en cas d'erreur, au lieu de -1. La fonction a été modifiée pour accepter la valeur zéro comme année, mois ou bien jour.
5.1.0 | Lorsqu'appelée sans argument, la fonction mktime() émet une alerte de type E_STRICT. Utilisez la fonction time() à la place.
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple #1 Exemple simple avec mktime()

<?php
// Configuration du fuseau horaire. Disponible depuis PHP 5.1
date_default_timezone_set('UTC');

// Affiche : July 1, 2000 est un Saturday
echo "July 1, 2000 est un " . date("l", mktime(0, 0, 0, 7, 1, 2000));

// Affiche quelque chose comme : 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>

Exemple #2 Exemple avec mktime()

mktime() est pratique pour faire des calculs de dates et des validations, car elle va automatiquement corriger les valeurs invalides. Par exemple, toutes les lignes suivantes vont retourner la même date : "Jan-01-1998".

<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>

Exemple #3 Dernier jour d'un mois

Le dernier jour d'un mois peut être décrit comme le jour "0" du mois suivant, et non pas le jour -1. Les deux exemples suivants vont donner : "Le dernier jour de Février 2000 est: 29".

<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("Le dernier jour de Fevrier 2000 est : %d", $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("Le dernier jour de Fevrier 2000 est : %d", $lastday);
?>

Notes

Attention

Avant PHP 5.1.0, les valeurs négatives des timestamp ne sont pas supportées sous toutes les versions actuelles de Microsoft Windows. De ce fait, l'intervalle valide pour les années est de 1970 à 2038, inclus.

Voir aussi

  • checkdate() - Valide une date grégorienne
  • gmmktime() - Retourne le timestamp UNIX d'une date GMT
  • date() - Formate une date/heure locale
  • time() - Retourne le timestamp UNIX actuel


Formate une date/heure locale avec la configuration locale

  • « mktime
  • strptime »
  • PHP Manual
  • Fonctions Date/Heure
  • Formate une date/heure locale avec la configuration locale

strftime

(PHP 4, PHP 5, PHP 7)

strftime — Formate une date/heure locale avec la configuration locale

Description

string strftime ( string $format [, int $timestamp = time() ] )

Formate une date et/ou une heure suivant la localisation locale. Les noms des mois, des jours de la semaine mais aussi d'autres chaînes dépendant de la location, respecteront la localisation courante définie par la fonction setlocale().

Tous les caractères modificateurs ne sont pas toujours supportés par toutes les bibliothèques C. Dans ce cas, ils ne seront pas supportés par PHP non plus. De plus, toutes les plates-formes ne supportent pas les timestamps négatifs, et vos dates pourraient être limitées par le début de l'époque Unix. Cela signifie que %e, %T, %R et %D (et peut être d'autres) et les dates antérieures au 1er Janvier 1970 ne fonctionneront pas sous Windows, sur certaines distributions de Linux, et sur certains systèmes d'exploitation. Pour Windows, une liste complète des options de conversion est disponible sur le » site de MSDN.

Liste de paramètres

format

Les caractères suivants sont reconnus dans le paramètre format
format | Description | Exemple de valeurs retournées
Jour --- ---
%a | Nom abrégé du jour de la semaine | De Sun à Sat
%A | Nom complet du jour de la semaine | De Sunday à Saturday
%d | Jour du mois en numérique, sur 2 chiffres (avec le zéro initial) | De 01 à 31
%e | Jour du mois, avec un espace précédant le premier chiffre. L'implémentation Windows est différente, voyez après pour plus d'informations. | De 1 à 31
%j | Jour de l'année, sur 3 chiffres avec un zéro initial | 001 à 366
%u | Représentation ISO-8601 du jour de la semaine | De 1 (pour Lundi) à 7 (pour Dimanche)
%w | Représentation numérique du jour de la semaine | De 0 (pour Dimanche) à 6 (pour Samedi)
Semaine --- ---
%U | Numéro de la semaine de l'année donnée, en commençant par le premier Lundi comme première semaine | 13 (pour la 13ème semaine pleine de l'année)
%V | Numéro de la semaine de l'année, suivant la norme ISO-8601:1988, en commençant comme première semaine, la semaine de l'année contenant au moins 4 jours, et où Lundi est le début de la semaine | De 01 à 53 (où 53 compte comme semaine de chevauchement)
%W | Une représentation numérique de la semaine de l'année, en commençant par le premier Lundi de la première semaine | 46 (pour la 46ème semaine de la semaine commençant par un Lundi)
Mois --- ---
%b | Nom du mois, abrégé, suivant la locale | De Jan à Dec
%B | Nom complet du mois, suivant la locale | De January à December
%h | Nom du mois abrégé, suivant la locale (alias de %b) | De Jan à Dec
%m | Mois, sur 2 chiffres | De 01 (pour Janvier) à 12 (pour Décembre)
Année --- ---
%C | Représentation, sur 2 chiffres, du siècle (année divisée par 100, réduit à un entier) | 19 pour le 20ème siècle
%g | Représentation, sur 2 chiffres, de l'année, compatible avec les standards ISO-8601:1988 (voyez %V) | Exemple : 09 pour la semaine du 6 janvier 2009
%G | La version complète à quatre chiffres de %g | Exemple : 2009 pour la semaine du 3 janvier 2009
%y | L'année, sur 2 chiffres | Exemple : 09 pour 2009, 79 pour 1979
%Y | L'année, sur 4 chiffres | Exemple : 2038
Heure --- ---
%H | L'heure, sur 2 chiffres, au format 24 heures | De 00 à 23
%k | Une représentation de l'heure sur 2 chiffres, au format 24 heures, avec un espace précédant un seul chiffre | De 0 à 23
%I | Heure, sur 2 chiffres, au format 12 heures | De 01 à 12
%l ('L' minuscule) | Heure, au format 12 heures, avec un espace précédant un seul chiffre | De 1 à 12
%M | Minute, sur 2 chiffres | De 00 à 59
%p | 'AM' ou 'PM', en majuscule, basé sur l'heure fournie | Exemple : AM pour 00:31, PM pour 22:23
%P | 'am' ou 'pm', en minuscule, basé sur l'heure fournie | Exemple : am pour 00:31, pm pour 22:23
%r | Identique à "%I:%M:%S %p" | Exemple : 09:34:17 PM pour 21:34:17
%R | Identique à "%H:%M" | Exemple : 00:35 pour 12:35 AM, 16:44 pour 4:44 PM
%S | Seconde, sur 2 chiffres | De 00 à 59
%T | Identique à "%H:%M:%S" | Exemple : 21:34:17 pour 09:34:17 PM
%X | Représentation de l'heure, basée sur la locale, sans la date | Exemple : 03:59:16 ou 15:59:16
%z | Le décalage horaire. Non implémenté tel que décrit sous Windows. Voir plus bas pour plus d'informations. | Exemple : -0500 pour l'heure US de l'est
%Z | L'abréviation du décalage horaire. Non implémenté tel que décrit sous Windows. Voir plus bas pour plus d'informations. | Exemple : EST pour l'heure de l'Est
L'heure et la date --- ---
%c | Date et heure préférées, basées sur la locale | Exemple : Tue Feb 5 00:45:10 2009 pour le 5 Février 2009 à 12:45:10 AM
%D | Identique à "%m/%d/%y" | Exemple : 02/05/09 pour le 5 Février 2009
%F | Identique à "%Y-%m-%d" (utilisé habituellement par les bases de données) | Exemple : 2009-02-05 pour le 5 février 2009
%s | Timestamp de l'époque Unix (identique à la fonction time()) | Exemple : 305815200 pour le 10 Septembre 1979 08:40:00 AM
%x | Représentation préférée de la date, basée sur la locale, sans l'heure | Exemple : 02/05/09 pour le 5 Février 2009
Divers --- ---
%n Une nouvelle ligne ("\n") ---
%t Une tabulation ("\t") ---
%% Le caractère de pourcentage ("%") ---

La longueur maximale de ce paramètre est de 1023 caractères.

Avertissement

Contrairement à la norme ISO-9899:1999, Sun Solaris commence avec le Dimanche à 1. Aussi, le format %u ne fonctionnera pas tel que décrit dans ce manuel.

Avertissement

Windows seulement :

Le modificateur %e n'est pas supporté sous Windows. Pour calculer la valeur, le modificateur %#d peut être utilisé à la place. L'exemple d'après illustre la manière d'écrire un code cross-plateforme.

Les modificateurs %z et %Z retournent tous les deux le nom du fuseau horaire au lieu du décalage ou de l'abréviation.

Avertissement

Mac OS X uniquement : Le modificateur %P n'est pas supporté sous l'implémentation de Mac OS X de cette fonction.

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il vaut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne une chaîne de caractères formatée suivant le paramètre format donné, en utilisant le paramètre timestamp ou la date locale courante si aucun timestamp n'est fourni. Les noms des mois, des jours de la semaine mais aussi d'autres chaînes dépendant de la location, respecteront la localisation courante définie par la fonction setlocale().

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide, et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Vu que la sortie dépend de la bibliothèque C sous-jacente, quelques spécificateurs de conversion ne sont pas supportés. Sous Windows, le fait de fournir un spécificateur de conversion inconnu retournera 5 messages de niveau E_WARNING et retournera FALSE au final. Sous d'autres systèmes d'exploitation, vous ne recevrez aucun message de niveau E_WARNING et la sortie contiendra les spécificateurs non convertis.

Historique

Version | Description
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Cet exemple ne fonctionnera que si vous avez les locales respectives installées sur votre système.

Exemple #1 Exemple avec strftime()

<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" in Finnish is %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" in French %A and");
setlocale(LC_TIME, "de_DE");
echo strftime(" in German %A.\n");
?>

Exemple #2 Exemple au format de date ISO 8601:1988

<?php
/*     December 2002 / January 2003
ISOWk  M   Tu  W   Thu F   Sa  Su
----- ----------------------------
51     16  17  18  19  20  21  22
52     23  24  25  26  27  28  29
1      30  31   1   2   3   4   5
2       6   7   8   9  10  11  12
3      13  14  15  16  17  18  19   */

// Affiche : 12/28/2002 - %V,%G,%Y = 52,2002,2002
echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . "\n";

// Affiche : 12/30/2002 - %V,%G,%Y = 1,2003,2002
echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . "\n";

// Affiche : 1/3/2003 - %V,%G,%Y = 1,2003,2003
echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";

// Affiche : 1/10/2003 - %V,%G,%Y = 2,2003,2003
echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n";

/*     December 2004 / January 2005
ISOWk  M   Tu  W   Thu F   Sa  Su
----- ----------------------------
51     13  14  15  16  17  18  19
52     20  21  22  23  24  25  26
53     27  28  29  30  31   1   2
1       3   4   5   6   7   8   9
2      10  11  12  13  14  15  16   */

// Affiche : 12/23/2004 - %V,%G,%Y = 52,2004,2004
echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";

// Affiche : 12/31/2004 - %V,%G,%Y = 53,2004,2004
echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";

// Affiche : 1/2/2005 - %V,%G,%Y = 53,2004,2005
echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";

// Affiche : 1/3/2005 - %V,%G,%Y = 1,2005,2005
echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";

?>

Exemple #3 %e fonctionnant sous toute plateforme

<?php

// Jan 1 : résultats dans : '%e%1%' (%%, e, %%, %e, %%)
$format = '%%e%%%e%%';

// Vérifie sous Windows, pour trouver et remplacer le modificateur %e
// correctement
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
    $format = preg_replace('#(?<!%)((?:%%)*)%e#', '\1%#d', $format);
}

echo strftime($format);
?>

Exemple #4 Affiche tous les formats connus ou non.

<?php
// Décrit les formats.
$strftimeFormats = array(
    'A' => 'Une représentation textuelle complète du jour',
    'B' => 'Nom du mois complet, basé sur la locale',
    'C' => 'Représentation sur 2 chiffres de l\'année (année, divisée par 100, tronquée en entier)',
    'D' => 'Identique à "%m/%d/%y"',
    'E' => '',
    'F' => 'Identique à "%Y-%m-%d"',
    'G' => 'La version complète, sur 4 chiffres de %g',
    'H' => 'Une représentation sur 2 chiffres de l\'heure au format 24-heures',
    'I' => 'Une représentation sur 2 chiffres de l\'heure au format 12-heures',
    'J' => '',
    'K' => '',
    'L' => '',
    'M' => 'Une représentation sur 2 chiffres des minutes',
    'N' => '',
    'O' => '',
    'P' => '"am" ou "pm" (en minuscule) basé sur l\'heure courante',
    'Q' => '',
    'R' => 'Identique à "%H:%M"',
    'S' => 'Une représentation sur 2 chiffres des secondes',
    'T' => 'Identique à "%H:%M:%S"',
    'U' => 'Numéro de la semaine pour l\'année courante, en commençant par le premier Dimanche comme première semaine',
    'V'  => 'ISO-8601:1988 numéro de la semaine de l\'année courante, commençant par la première semaine de l\'année avec au moins 4 jours de semaine, avec le Lundi comme début de semaine',
    'W' => 'Une représentation numérique de la semaine de l\'année, en commençant par le premier Lundi comme première semaine',
    'X' => 'Représentation préférée pour l\'heure, basée sur la locale, sans la date',
    'Y' => 'Une représentation sur 4 chiffres de l\'année',
    'Z' => 'L\'abréviation du décalage horaire, non fournie par %z (dépend sur système d\'exploitation)',
    'a' => 'L\'abréviation de la représentation textuelle du jour',
    'b' => 'L\'abréviation du nom du mois, basée sur la locale',
    'c' => 'Timestamp préféré basé sur la locale',
    'd' => 'Jour du mois sur 2 chiffres (avec le zéro initial)',
    'e' => 'Jour du mois, avec un espace précédent un seul chiffre',
    'f' => '',
    'g' => 'Une représentation sur 2 chiffres de l\'année au format ISO-8601:1988 (voir %V)',
    'h' => 'Abréviation du nom du mois, basée sur la locale (alias de %b)',
    'i' => '',
    'j' => 'Jour de l\'année, sur 3 chiffres avec zéro initial',
    'k' => 'Heure, au format 24-heures, avec un espace précédant un seul chiffre',
    'l' => 'Heure, au format 12-heures, avec un espace précédant un seul chiffre',
    'm' => 'Une représentation du mois sur 2 chiffres',
    'n' => 'Un caractère de nouvelle ligne ("\n")',
    'o' => '',
    'p' => '"AM" ou "PM" (en majuscule) basé sur l\'heure courante',
    'q' => '',
    'r' => 'Identique à "%I:%M:%S %p"',
    's' => 'Timestamp par rapport à l\'époque Unix',
    't' => 'Un caractère de tabulation ("\t")',
    'u' => 'Représentation numérique du jour de la semaine au format ISO-8601',
    'v' => '',
    'w' => 'Représentation numérique du jour de la semaine',
    'x' => 'Représentation préférée de la date, basée sur la locale, sans l\'heure',
    'y' => 'Représentation de l\'année sur 2 chiffres',
    'z' => 'Soit le décalage horaire depuis UTC ou son abréviation (suivant le système d\'exploitation)',
    '%' => 'Un caractère pourcentage ("%")',
);

// Résultats.
$strftimeValues = array();

// 2value les formats tout en supprimant les erreurs.
foreach($strftimeFormats as $format => $description){
    if (False !== ($value = @strftime("%{$format}"))){
        $strftimeValues[$format] = $value;
    }
}

// Trouve la valeur la plus longue.
$maxValueLength = 2 + max(array_map('strlen', $strftimeValues));

// Affiche tous les formats connus.
foreach($strftimeValues as $format => $value){
    echo "Format connu : '{$format}' = ", str_pad("'{$value}'", $maxValueLength), " ( {$strftimeFormats[$format]} )\n";
}

// Affiche tous les formats non connus.
foreach(array_diff_key($strftimeFormats, $strftimeValues) as $format => $description){
    echo "Format inconnu : '{$format}'   ", str_pad(' ', $maxValueLength), ($description ? " ( {$description} )" : ''), "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Format connu : 'A' = 'Friday'            ( Une représentation textuelle complète du jour )
Format connu : 'B' = 'December'          ( Nom du mois complet, basé sur la locale )
Format connu : 'H' = '11'                ( Une représentation sur 2 chiffres de l'heure au format 24-heures )
Format connu : 'I' = '11'                ( Une représentation sur 2 chiffres de l'heure au format 12-heures )
Format connu : 'M' = '24'                ( Une représentation sur 2 chiffres des minutes )
Format connu : 'S' = '44'                ( Une représentation sur 2 chiffres des secondes )
Format connu : 'U' = '48'                ( Numéro de la semaine pour l'année courante, en commençant par le premier Dimanche comme première semaine )
Format connu : 'W' = '48'                ( Une représentation numérique de la semaine de l'année, en commençant par le premier Lundi comme première semaine )
Format connu : 'X' = '11:24:44'          ( Représentation préférée pour l'heure, basée sur la locale, sans la date )
Format connu : 'Y' = '2010'              ( Une représentation sur 4 chiffres de l'année )
Format connu : 'Z' = 'GMT Standard Time' ( L'abréviation du décalage horaire, non fournie par %z (dépend sur système d'exploitation )
Format connu : 'a' = 'Fri'               ( L'abréviation de la représentation textuelle du jour )
Format connu : 'b' = 'Dec'               ( L'abréviation du nom du mois, basée sur la locale )
Format connu : 'c' = '12/03/10 11:24:44' ( Timestamp préféré basé sur la locale )
Format connu : 'd' = '03'                ( Jour du mois sur 2 chiffres (avec le zéro initial) )
Format connu : 'j' = '337'               ( Jour de l'année, sur 3 chiffres avec zéro initial )
Format connu : 'm' = '12'                ( Une représentation du mois sur 2 chiffres )
Format connu : 'p' = 'AM'                ( "AM" ou "PM" (en majuscule) basé sur l'heure courante )
Format connu : 'w' = '5'                 ( Représentation numérique du jour de la semaine )
Format connu : 'x' = '12/03/10'          ( Représentation préférée de la date, basée sur la locale, sans l'heure )
Format connu : 'y' = '10'                ( Représentation de l'année sur 2 chiffres )
Format connu : 'z' = 'GMT Standard Time' ( Soit le décalage horaire depuis UTC ou son abréviation (suivant le système d'exploitation) )
Format connu : '%' = '%'                 ( Un caractère pourcentage ("%") )
Format inconnu : 'C'                       ( Représentation sur 2 chiffres de l'année (année, divisée par 100, tronquée en entier) )
Format inconnu : 'D'                       ( Identique à "%m/%d/%y" )
Format inconnu : 'E'
Format inconnu : 'F'                       ( Identique à "%Y-%m-%d" )
Format inconnu : 'G'                       ( La version complète, sur 4 chiffres de %g )
Format inconnu : 'J'
Format inconnu : 'K'
Format inconnu : 'L'
Format inconnu : 'N'
Format inconnu : 'O'
Format inconnu : 'P'                       ( "am" ou "pm" (en minuscule) basé sur l'heure courante )
Format inconnu : 'Q'
Format inconnu : 'R'                       ( Identique à "%H:%M" )
Format inconnu : 'T'                       ( Identique à "%H:%M:%S" )
Format inconnu : 'V'                       ( ISO-8601:1988 numéro de la semaine de l'année  courante, commençant par la première semaine de l'année avec au moins 4  jours de semaine, avec le Lundi comme début de semaine )
Format inconnu : 'e'                       ( Jour du mois, avec un espace précédent un seul chiffre )
Format inconnu : 'f'
Format inconnu : 'g'                       ( Une représentation sur 2 chiffres de l'année au format ISO-8601:1988 (voir %V) )
Format inconnu : 'h'                       ( Abréviation du nom du mois, basée sur la locale (alias de %b) )
Format inconnu : 'i'
Format inconnu : 'k'                       ( Heure, au format 24-heures, avec un espace précédant un seul chiffre )
Format inconnu : 'l'                       ( Heure, au format 12-heures, avec un espace précédant un seul chiffre )
Format inconnu : 'n'                       ( Un caractère de nouvelle ligne ("\n") )
Format inconnu : 'o'
Format inconnu : 'q'
Format inconnu : 'r'                       ( Identique à "%I:%M:%S %p" )
Format inconnu : 's'                       ( Timestamp par rapport à l'époque Unix )
Format inconnu : 't'                       ( Un caractère de tabulation ("\t") )
Format inconnu : 'u'                       ( Représentation numérique du jour de la semaine au format ISO-8601 )
Format inconnu : 'v'

Notes

Note: %G et %V, qui sont basées sur la semaine ISO 8601:1988, peut conduire à des résultats inattendus (bien que corrects) si le système de numérotation n'est pas connu. Voir l'exemple %V de cette page.

Voir aussi

  • » Outil de formatage strftime() en ligne
  • setlocale() - Modifie les informations de localisation
  • mktime() - Retourne le timestamp UNIX d'une date
  • strptime() - Analyse une date générée par strftime
  • gmstrftime() - Formate une date/heure GMT/CUT en fonction de la configuration locale
  • » groupe de spécifications de strftime()


Analyse une date générée par strftime

  • « strftime
  • strtotime »
  • PHP Manual
  • Fonctions Date/Heure
  • Analyse une date générée par strftime

strptime

(PHP 5 >= 5.1.0, PHP 7)

strptime — Analyse une date générée par strftime()

Description

array strptime ( string $date , string $format )

strptime() retourne un tableau après avoir analysé date, ou FALSE en cas d'erreur.

Les noms des mois et jours de la semaine dépendent de la configuration locale, choisie avec setlocale() (LC_TIME).

Liste de paramètres

date (chaîne de caractères)

La chaîne à analyser (e.g. retournée par strftime())

format (chaîne de caractères)

Le format utilisé par date (e.g. le même que celui qui a été utilisé par strftime()).

Pour plus d'informations sur les spécificateurs de formats, voyez la fonction strftime().

Valeurs de retour

Retourne un tableau ou FALSE si une erreur survient.

Les paramètres suivants sont retournés dans le tableau
Paramètres | Description
"tm_sec" | Secondes après la minute (0-61)
"tm_min" | Minutes après l'heure (0-59)
"tm_hour" | Heure depuis minuit (0-23)
"tm_mday" | Jour du mois (1-31)
"tm_mon" | Mois depuis janvier (0-11)
"tm_year" | Années depuis 1900
"tm_wday" | Jours depuis dimanche (0-6)
"tm_yday" | Jours depuis le 1er janvier (0-365)
"unparsed" | La partie de date qui n'a pas été reconnue par l'analyseur avec le format spécifié.

Exemples

Exemple #1 Exemple avec strptime()

<?php
$format = '%d/%m/%Y %H:%M:%S';
$strf = strftime($format);

echo "$strf\n";

print_r(strptime($strf, $format));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

03/10/2004 15:54:19

Array
(
    [tm_sec] => 19
    [tm_min] => 54
    [tm_hour] => 15
    [tm_mday] => 3
    [tm_mon] => 9
    [tm_year] => 104
    [tm_wday] => 0
    [tm_yday] => 276
    [unparsed] =>
)

Notes

Note: Cette fonction n'est pas implémentée sous Windows.

Note:

En interne, cette fonction appelle la fonction strptime() fournie par la bibliothèque système C. Cette fonction a des comportements bien différents suivants les systèmes d'exploitation. L'utilisation de la fonction date_parse_from_format(), qui elle, ne souffre pas de ces défauts, est recommandée depuis PHP 5.3.0 et suivants.

Note:

"tm_sec" inclut toutes les secondes intercalaires (actuellement 2 par an). Pour plus d'informations sur les secondes intercalaires, reportez-vous à l'» article sur Wikipedia les concernant.

Note:

Avant PHP 5.2.0, cette fonction pouvait avoir un comportement imprévisible, notamment concernant "tm_sec", "tm_min" et "tm_hour" qui pouvaient retourner des valeurs non définies.

Voir aussi

  • checkdate() - Valide une date grégorienne
  • strftime() - Formate une date/heure locale avec la configuration locale
  • date_parse_from_format() - Récupère les informations d'une date donnée suivant un format spécifique
  • DateTime::createFromFormat() - Retourne un nouvel objet DateTime formaté


Transforme un texte anglais en timestamp

  • « strptime
  • time »
  • PHP Manual
  • Fonctions Date/Heure
  • Transforme un texte anglais en timestamp

strtotime

(PHP 4, PHP 5, PHP 7)

strtotime — Transforme un texte anglais en timestamp

Description

int strtotime ( string $time [, int $now = time() ] )

La fonction strtotime() essaye de lire une date au format anglais fournie par le paramètre time, et de la transformer en timestamp Unix (le nombre de secondes depuis le 1er Janvier 1970 à 00:00:00 UTC), relativement au timestamp now, ou à la date courante si ce dernier est omis.

Chaque paramètre de la fonction utilise le décalage horaire par défaut à moins qu'un décalage horaire y soit explicitement paramétré. Soyez vigilant à ne pas utiliser un décalage horaire différent pour chaque paramètre à moins que ce soit ce dont vous avez besoin. Reportez-vous à la fonction date_default_timezone_get() afin de savoir comment définir un décalage horaire par défaut.

Liste de paramètres

time

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

now

Le timestamp, représentant la date courante, utilisé pour le calcul relatif des dates.

Valeurs de retour

Retourne un timestamp en cas de succès, FALSE sinon. Avant PHP 5.1.0, cette fonction retournait -1 en cas d'échec.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide, et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
5.3.0 | Avant PHP 5.3.0, les formats de temps relatifs fournis à l'argument time de la fonction strtotime() comme this week, previous week, last week, et next week étaient interprétés comme étant une période relative de 7 jours sur la date/heure courante, plutôt qu'une période d'une semaine allant du Monday au Sunday.
5.3.0 | Avant PHP 5.3.0, 24:00 n'était pas un format valide et la fonction strtotime() retournait FALSE.
5.2.7 | En PHP 5, avant la version 5.2.7, demander le jour de la semaine correspondant au premier jour du mois ajoute de manière incorrecte une semaine au timestamp retourné. Ceci a été corrigé dans PHP 5.2.7 et supérieur.
5.1.0 | La fonction retourne maintenant FALSE en cas d'échec, au lieu de -1.
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.
5.0.2 | En PHP 5 jusqu'à la version 5.0.2, "now" et les autres temps relatifs sont mal calculés depuis minuit d'aujourd'hui. Dans les autres versions, le calcul est correct.
5.0.0 | Les microsecondes sont acceptées mais ignorées.

Exemples

Exemple #1 Exemple avec strtotime()

<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>

Exemple #2 Vérification d'erreur

<?php
$str = 'Pas bon';

// Avant PHP 5.1.0, vous devez comparer avec  -1, au lieu de false
if (($timestamp = strtotime($str)) === false) {
   echo "La chaîne ($str) est boguée";
} else {
   echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
}
?>

Notes

Note:

Si le chiffre des années est précisé sur deux chiffres, les valeurs entre 00-69 correspondent à 2000-2069 et 70-99 à 1970-1999. Voyez les notes après concernant les différences possibles entres systèmes 32-bit (des dates peuvent échouer après le 19/01/2038 à 03:14:07).

Note:

L'intervalle de validité d'un timestamp va du Vendredi 13 Décembre 1901 20:45:54 UTC au Mardi 19 Janvier 2038 03:14:07 UTC. (Cela correspond aux dates maximales et minimales pour un entier de 32 bits signé).

Avant PHP 5.1.0, toutes les plates-formes ne supportaient pas les timestamp négatifs et dans ce cas, l'intervalle de date était limitée à environs l'époque Unix. Cela signifiait que les dates antérieures au 1 Janvier 1970 ne fonctionnait pas sous Windows, quelques distributions Linux et quelques autres systèmes.

Pour les versions 64-bit de PHP, l'intervalle valide d'un timestamp est réellement infini, sachant que 64 bits peut représenter approximativement 293 milliards d'années dans n'importe quelle direction.

Note:

Les dates aux formats m/d/y ou d-m-y sont analysées en regardant le séparateur entre les différentes parties : si le séparateur est un slash (/), alors le format américain m/d/y est supposé ; si le séparateur est un tiret (-) ou un point (.), alors le format Européen d-m-y sera supposé. Si toutefois l'année est fournie sur deux digits, et que le séparateur est un tiret (-), la date sera analysée comme étant au format y-m-d.

Pour éviter des ambiguïtés éventuelles, le mieux est d'utiliser le format ISO 8601 (YYYY-MM-DD) ou encore d'utiliser la méthode DateTime::createFromFormat() lorsque c'est possible.

Note:

L'utilisation de cette fonction sur des opérations mathématiques n'est pas conseillée. Il vaut mieux utiliser dans ce cas DateTime::add() et DateTime::sub() en PHP 5.3 et suivants, ou DateTime::modify() en PHP 5.2.

Voir aussi

  • Les formats sur les dates
  • DateTime::createFromFormat() - Retourne un nouvel objet DateTime formaté
  • checkdate() - Valide une date grégorienne
  • strptime() - Analyse une date générée par strftime


Retourne le timestamp UNIX actuel

  • « strtotime
  • timezone_abbreviations_list »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne le timestamp UNIX actuel

time

(PHP 4, PHP 5, PHP 7)

time — Retourne le timestamp UNIX actuel

Description

int time ( void )

time() retourne l'heure courante, mesurée en secondes depuis le début de l'époque UNIX, (1er janvier 1970 00:00:00 GMT).

Exemples

Exemple #1 Exemple avec time()

<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
// 7 jours; 24 heures; 60 minutes; 60 secondes
echo 'Aujourd\'hui :       '. date('Y-m-d') ."\n";
echo 'Semaine prochaine : '. date('Y-m-d', $nextWeek) ."\n";
// ou en utilisant strtotime():
echo 'Semaine prochaine : '. date('Y-m-d', strtotime('+1 week')) ."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Aujourd'hui :       2005-03-30
Semaine prochaine : 2005-04-06
Semaine prochaine : 2005-04-06

Notes

Astuce

Un timestamp représentant le début de la demande est disponible dans la variable $_SERVER['REQUEST_TIME'] depuis PHP 5.1.

Voir aussi

  • date() - Formate une date/heure locale
  • microtime() - Retourne le timestamp UNIX actuel avec les microsecondes


Alias de DateTimeZone::listAbbreviations

  • « time
  • timezone_identifiers_list »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTimeZone::listAbbreviations

timezone_abbreviations_list

(PHP 5 >= 5.2.0, PHP 7)

timezone_abbreviations_list — Alias de DateTimeZone::listAbbreviations()

Description

Cette fonction est un alias de : DateTimeZone::listAbbreviations()


Alias de DateTimeZone::listIdentifiers

  • « timezone_abbreviations_list
  • timezone_location_get »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTimeZone::listIdentifiers

timezone_identifiers_list

(PHP 5 >= 5.2.0, PHP 7)

timezone_identifiers_list — Alias de DateTimeZone::listIdentifiers()

Description

Cette fonction est un alias de : DateTimeZone::listIdentifiers()


Alias de DateTimeZone::getLocation

  • « timezone_identifiers_list
  • timezone_name_from_abbr »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTimeZone::getLocation

timezone_location_get

(PHP 5 >= 5.3.0, PHP 7)

timezone_location_get — Alias de DateTimeZone::getLocation()

Description

Cette fonction est un alias de : DateTimeZone::getLocation()


Retourne le nom du fuseau horaire à partir de son abréviation

  • « timezone_location_get
  • timezone_name_get »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne le nom du fuseau horaire à partir de son abréviation

timezone_name_from_abbr

(PHP 5 >= 5.1.3, PHP 7)

timezone_name_from_abbr — Retourne le nom du fuseau horaire à partir de son abréviation

Description

string timezone_name_from_abbr ( string $abbr [, int $gmtOffset = -1 [, int $isdst = -1 ]] )

Liste de paramètres

abbr

Abréviation du fuseau horaire.

gmtOffset

Décalage à partir du GMT en seconde. La valeur par défaut est -1 ce qui signifie que le premier fuseau horaire trouvé correspondant à abbr est retourné. Autrement, le décalage exact est recherché et seulement s'il n'est pas trouvé alors le premier fuseau horaire avec n'importe quel décalage est retourné.

isdst

Indicateur d'heure d'été/heure d'hiver. Par défaut -1 qui signifie que le décalage heure d'été/heure d'hiver n'est pas pris en compte dans la recherche même si le fuseau le gère. Si mis à 1, alors le gmtOffset est supposé comprendre le décalage heure d'été /heure d'hiver; si 0 alors gmtOffset est supposé représenter un décalage ne prennant pas en compte l'heure d'été/hiver. Si abbr n'existe pas alors le fuseau horaire est cherché uniquement au moyen de gmtOffset et isdst.

Valeurs de retour

Retourne un nom de fuseau horaire en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec timezone_name_from_abbr()

<?php
echo timezone_name_from_abbr("CET") . "\n";
echo timezone_name_from_abbr("", 3600, 0) . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Europe/Berlin
Europe/Paris

Voir aussi

  • timezone_abbreviations_list() - Alias de DateTimeZone::listAbbreviations


Alias de DateTimeZone::getName

  • « timezone_name_from_abbr
  • timezone_offset_get »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTimeZone::getName

timezone_name_get

(PHP 5 >= 5.2.0, PHP 7)

timezone_name_get — Alias de DateTimeZone::getName()

Description

Cette fonction est un alias de : DateTimeZone::getName()


Alias de DateTimeZone::getOffset

  • « timezone_name_get
  • timezone_open »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTimeZone::getOffset

timezone_offset_get

(PHP 5 >= 5.2.0, PHP 7)

timezone_offset_get — Alias de DateTimeZone::getOffset()

Description

Cette fonction est un alias de : DateTimeZone::getOffset()


Alias de DateTimeZone::__construct

  • « timezone_offset_get
  • timezone_transitions_get »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTimeZone::__construct

timezone_open

(PHP 5 >= 5.2.0, PHP 7)

timezone_open — Alias de DateTimeZone::__construct()

Description

Cette fonction est un alias de : DateTimeZone::__construct()


Alias de DateTimeZone::getTransitions

  • « timezone_open
  • timezone_version_get »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTimeZone::getTransitions

timezone_transitions_get

(PHP 5 >= 5.2.0, PHP 7)

timezone_transitions_get — Alias de DateTimeZone::getTransitions()

Description

Cette fonction est un alias de : DateTimeZone::getTransitions()


Lit la version de la timezonedb

  • « timezone_transitions_get
  • Formats supportés de temps et de dates »
  • PHP Manual
  • Fonctions Date/Heure
  • Lit la version de la timezonedb

timezone_version_get

(PHP 5 >= 5.3.0, PHP 7)

timezone_version_get — Lit la version de la timezonedb

Description

string timezone_version_get ( void )

timezone_version_get() lit la version de la timezonedb.

Valeurs de retour

Retourne une chaîne de caractères.

Exemples

Exemple #1 Lecture de la version de la timezonedb

<?php
echo timezone_version_get();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

2009.7

Voir aussi

  • Liste des fuseaux horaires valides


Formats supportés de temps et de dates

Sommaire

  • Formats pour les temps (Time)
  • Formats de dates
  • Formats composés
  • Formats relatifs

Cette section décrit tous les formats acceptés par strtotime(), DateTime et date_create(). Les formats sont groupés par sections. Dans la plupart des cas, les formats de sections différentes peuvent être utilisés dans la même chaine date/time. Pour chaque format supporté, un ou plusieurs exemples sont donnés ainsi qu'une description du format correspondant. Les caractères entre guillemets simples pour les formats sont insensibles à la casse ('t' pourrait s'écrire t ou T), les caractères écrits entre guillemets doubles, eux, sont sensibles à la casse ("T" et seulement T).


Formats pour les temps (Time)

Cette page décrit les différents formats que les analyseurs des fonctions strtotime(), DateTime et date_create() comprennent.

Symboles utilisés
Description | Formats | Exemples
frac | . [0-9]+ | ".21342", ".85"
hh | "0"?[1-9] | "1"[0-2] | "04", "7", "12"
HH | [01][0-9] | "2"[0-4] | "04", "7", "19"
méridien | [AaPp] .? [Mm] .? [\0\t ] | "A.m.", "pM", "am."
MM | [0-5][0-9] | "00", "12", "59"
II | [0-5][0-9] | "00", "12", "59"
espace | [ \t] |
tz | "("? [A-Za-z]{1,6} ")"? | [A-Z][a-z]+([_/][A-Z][a-z]+)+ | "CEST", "Europe/Amsterdam", "America/Indiana/Knox"
tzcorrection | "GMT"? [+-] hh ":"? MM? | "+0400", "GMT-07:00", "-07:00"
Notation 12 heures
Description | Format | Exemples
Heures seules, avec méridien | hh espace? méridien | "4 am", "5PM"
Heures et minutes, avec méridien | hh [.:] MM space? méridien | "4:08 am", "7:19P.M."
Heures, minutes et secondes avec méridien | hh [.:] MM [.:] II espace? méridien | "4:08:37 am", "7:19:19P.M."
MS SQL (Heures, minutes, secondes et fraction avec méridien), PHP 5.3 et plus uniquement | hh ":" MM ":" II [.:] [0-9]+ meridian | "4:08:39:12313am"
Notation 24 heures
Description | Format | Exemples
Heures et minutes | 't'? HH [.:] MM | "04:08", "19.19", "T23:43"
Heures et minutes, sans double-points | 't'? HH MM | "0408", "t1919", "T2343"
Heures, minutes et secondes | 't'? HH [.:] MM [.:] II | "04.08.37", "t19:19:19"
Heures, minutes et secondes, sans double-points | 't'? HH MM II | "040837", "T191919"
Heures, minutes, secondes et fuseau horaire | 't'? HH [.:] MM [.:] II space? ( tzcorrection | tz ) | "040837CEST", "T191919-0700"
Heures, minutes, secondes et fraction | 't'? HH [.:] MM [.:] II frac | "04.08.37.81412", "19:19:19.532453"
Information de fuseau horaire | tz | tzcorrection | "CEST", "Europe/Amsterdam", "+0430", "GMT-06:00"


Formats de dates

Cette page décrit les différents formats de date que les analyseurs des fonctions strtotime(), DateTime et date_create() comprennent.

Symboles utilisés
Description | Format | Exemples
suffixe des jours | "st" | "nd" | "rd" | "th" |
dd | ([0-2]?[0-9] | "3"[01]) daysuf? | "7th", "22nd", "31"
DD | "0" [0-9] | [1-2][0-9] | "3" [01] | "07", "31"
m | 'january' | 'february' | 'march' | 'april' | 'may' | 'june' | 'july' | 'august' | 'september' | 'october' | 'november' | 'december' | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' | "I" | "II" | "III" | "IV" | "V" | "VI" | "VII" | "VIII" | "IX" | "X" | "XI" | "XII" |
M | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' |
mm | "0"? [0-9] | "1"[0-2] | "0", "04", "7", "12"
MM | "0" [0-9] | "1"[0-2] | "00", "04", "07", "12"
y | [0-9]{1,4} | "00", "78", "08", "8", "2008"
yy | [0-9]{2} | "00", "08", "78"
YY | [0-9]{4} | "2000", "2008", "1978"
Notations localisées
Description | Format | Exemples
Mois américain et jour | mm "/" dd | "5/12", "10/27"
Mois américain, jour et année | mm "/" dd "/" y | "12/22/78", "1/17/2006", "1/17/6"
Année sur quatre chiffres, mois et jour avec slashs | YY "/" mm "/" dd | "2008/6/30", "1978/12/22"
Année sur quatre chiffres et mois (GNU) | YY "-" mm | "2008-6", "2008-06", "1978-12"
Année, mois et jour avec tirets | y "-" mm "-" dd | "2008-6-30", "78-12-22", "8-6-21"
Jour, mois et année sur quatre chiffres, avec des points, des tabulations ou des tirets | dd [.\t-] mm [.-] YY | "30-6-2008", "22.12\t1978"
Jour, mois et année sur deux chiffres, avec des points ou des tabulations | dd [.\t] mm "." yy | "30.6.08", "22\t12\t78"
Jour, mois textuel et année | dd ([ \t.-])* m ([ \t.-])* y | "30-June 2008", "22DEC78", "14 III 1879"
Mois textuel et année sur quatre chiffres (le jour sera le 1) | m ([ \t.-])* YY | "June 2008", "DEC1978", "March 1879"
Année sur quatre chiffres et mois textuel (le jour sera le 1) | YY ([ \t.-])* m | "2008 June", "1978-XII", "1879.MArCH"
Mois textuel, jour et année | m ([ .\t-])* dd [,.stndrh\t ]+ y | "July 1st, 2008", "April 17, 1790", "May.9,78"
Mois textuel et jour | m ([ .\t-])* dd [,.stndrh\t ]* | "July 1st,", "Apr 17", "May.9"
Jour et mois textuel | d ([ .\t-])* m | "1 July", "17 Apr", "9.May"
Mois abrégé, jour et année | M "-" DD "-" y | "May-09-78", "Apr-17-1790"
Année, mois abrégé et jour | y "-" M "-" DD | "78-Dec-22", "1814-MAY-17"
Année (et juste l'année) | YY | "1978", "2008"
Mois textuel (et juste le mois) | m | "March", "jun", "DEC"
Notations ISO8601
Description | Format | Exemples
Année sur huit chiffres, mois et jour | YY MM DD | "15810726", "19780417", "18140517"
Année sur quatre chiffres, mois et jour avec des slashes | YY "/" MM "/" DD | "2008/06/30", "1978/12/22"
Année sur deux chiffres, mois et jour avec des tirets | yy "-" MM "-" DD | "08-06-30", "78-12-22"
Année sur quatre chiffres avec un signe optionnel, mois et jour | [+-]? YY "-" MM "-" DD | "-0002-07-26", "+1978-04-17", "1814-05-17"

Note:

Pour les formats y et yy, les années avant 100 sont considérées d'une manière spéciale lorsque les symboles y ou yy sont utilisés. Si l'année est comprise entre 0 (inclusif) et 69 (inclusif), 2000 sera ajouté. Si l'année est comprise entre 70 (inclusif) et 99 (inclusif) alors 1900 sera ajouté. Cela signifie que "00-01-01" est interprété comme "2000-01-01".

Note:

Le format "Jour, mois et année sur deux chiffres avec tabulations ou points" (dd [.\t] mm "." yy) ne fonctionne que pour des valeurs d'années de 61 (inclusif) à 99 (inclusif) - en dehors de ces bornes, le format du temps "HH [.:] MM [.:] SS" a une precédence plus forte et primera.

Note:

Le format "Année (et juste l'année)" ne fonctionne que si la chaine qui représente le temps a déja été trouvée, sinon le format est reconnu comme HH MM.

Note:

Il est possible d'ajouter ou soustraire une retenue pour les formats dd et DD. Le jour 0 signifie le dernier jour du mois précédent, les retenues positives compteront le mois suivant. Ainsi, "2008-08-00" est équivalent à "2008-07-31" et "2008-06-31" est équivalent à "2008-07-01" (Juin ne possède que 30 jours).

Il est aussi possible de jouer avec les retenues des formats mm et MM grâce à la valeur 0. Une valeur de mois de 0 signifie Décembre de l'année précédente. Par exemple "2008-00-22" est équivalent à "2007-12-22".

Si vous combinez les deux notions précédentes et utilisez une retenue négative sur le jour et le mois, alors il se passe ceci : "2008-00-00" est converti d'abord vers "2007-12-00" puis vers "2007-11-30". Ceci arrive aussi avec la chaine "0000-00-00" qui est alors tranformée vers "-0001-11-30" (l'année -1 dans le calendrier ISO 8601, qui est 2 BC dans le calendrier Gregorien).


Formats composés

Cette page décrit les différentes compositions de date/heure que les analyseurs des fonctions strtotime(), DateTime et date_create() comprennent.

Symboles utilisés
Description | Formats | Exemples
DD | "0" [0-9] | [1-2][0-9] | "3" [01] | "02", "12", "31"
doy | "00"[1-9] | "0"[1-9][0-9] | [1-2][0-9][0-9] | "3"[0-5][0-9] | "36"[0-6] | "001", "012", "180", "350", "366"
frac | . [0-9]+ | ".21342", ".85"
hh | "0"?[1-9] | "1"[0-2] | "04", "7", "12"
HH | [01][0-9] | "2"[0-4] | "04", "7", "19"
méridien | [AaPp] .? [Mm] .? [\0\t ] | "A.m.", "pM", "am."
ii | [0-5][0-9] | "04", "8", "59"
II | [0-5][0-9] | "04", "08", "59"
M | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' |
MM | [0-1][0-9] | "00", "12"
espace | [ \t] |
ss | [0-5][0-9] | "04", "8", "59"
SS | [0-5][0-9] | "04", "08", "59"
W | "0"[1-9] | [1-4][0-9] | "5"[0-3] | "05", "17", "53"
tzcorrection | "GMT"? [+-] hh ":"? II? | "+0400", "GMT-07:00", "-07:00"
YY | [0-9]{4} | "2000", "2008", "1978"
Notations localisées
Description | Format | Exemples
Format de log commun | dd "/" M "/" YY : HH ":" II ":" SS space tzcorrection | "10/Oct/2000:13:55:36 -0700"
EXIF | YY ":" MM ":" DD " " HH ":" II ":" SS | "2008:08:07 18:11:31"
Année ISO avec semaine ISO | YY "-"? "W" W | "2008W27", "2008-W28"
Année ISO avec semaine ISO et jour | YY "-"? "W" W "-"? [0-7] | "2008W273", "2008-W28-3"
MySQL | YY "-" MM "-" DD " " HH ":" II ":" SS | "2008-08-07 18:11:31"
PostgreSQL : Année avec jour de l'année | YY "."? doy | "2008.197", "2008197"
SOAP | YY "-" MM "-" DD "T" HH ":" II ":" SS frac tzcorrection? | "2008-07-01T22:35:17.02", "2008-07-01T22:35:17.03+08:00"
Unix Timestamp | "@" "-"? [0-9]+ | "@1215282385"
XMLRPC | YY MM DD "T" hh ":" II ":" SS | "20080701T22:38:07", "20080701T9:38:07"
XMLRPC (Compact) | YY MM DD 't' hh II SS | "20080701t223807", "20080701T093807"
WDDX | YY "-" mm "-" dd "T" hh ":" ii ":" ss | "2008-7-1T9:3:37"

Note:

Le "W" dans les formats "Année ISO avec semaine ISO" et "Année ISO avec semaine ISO et jour" est sensible à la casse ; vous ne pouvez utiliser que la majuscule "W".

Le "T" dans les formats SOAP, XMRPC et WDDX est sensible à la casse ; utilisez toujours la majuscule "T".

Le format timestamp Unix définit le fuseau horaire à UTC.


Formats relatifs

Cette page décrit les différents formats relatifs que les analyseurs des fonctions strtotime(), DateTime et date_create() comprennent.

Symboles utilisés
Description | Format
dayname | 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat'
daytext | 'weekday' | 'weekdays'
number | [+-]?[0-9]+
ordinal | 'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'sixth' | 'seventh' | 'eighth' | 'ninth' | 'tenth' | 'eleventh' | 'twelfth' | 'next' | 'last' | 'previous' | 'this'
reltext | 'next' | 'last' | 'previous' | 'this'
space | [ \t]+
unit | (('sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' | 'fortnight' | 'forthnight' | 'month' | 'year') 's'?) | 'weeks' | daytext
Notations basées sur le jour
Format | Description | Exemples
'yesterday' | Minuit d'hier | "yesterday 14:00"
'midnight' | Le temps est affecté à 00:00:00 |
'today' | Le temps est affecté à 00:00:00 |
'now' | Maintenant |
'noon' | Le temps est affecté à 12:00:00 | "yesterday noon"
'tomorrow' | Minuit de demain |
'back of' hour | 15 minutes avant l'heure précisée | "back of 7pm", "back of 15"
'front of' hour | 15 minutes après l'heure spécifiée | "front of 5am", "front of 23"
'first day of'? | Affecte le jour du premier jour du mois courant. Il est plus intéréssant d'utiliser cette phrase suivie d'un nom de mois. | "first day of January 2008"
'last day of'? | Affecte le jour du dernier jour du mois courant. Il est plus intéréssant d'utiliser cette phrase suivie d'un nom de mois. | "last day of next month"
ordinal space dayname space 'of' | Calcule le x-ème jour de semaine du mois en cours. | "first sat of July 2008"
'last' space dayname space 'of' | Calcule le dernier jour de semaine du mois en cours. | "last sat of July 2008"
number space? (unit | 'week') | Gère des temps relatifs dont la valeur est dénombrée. | "+5 weeks", "12 day", "-7 weekdays"
number space unit | Gère des temps relatifs dont la valeur est dénombrée. | "fifth day", "second month"
'ago' | Utilise dans le passé toute description de temps relatif ('il y a'). | "2 days ago", "8 days ago 14:00", "2 months 5 days ago", "2 months ago 5 days", "2 days ago"
dayname | Se déplace vers le prochain jour indiqué. | "Monday"
reltext space 'week' | Gère le format spécial "weekday + last/this/next week". | "Monday next week"

Note:

Les expressions relatives sont toujours traitées après les expressions non relatives. Ceci fait en sorte que "+1 week july 2008" et "july 2008 +1 week" sont équivalents.

"yesterday", "midnight", "today", "noon" et "tomorrow" sont des exceptions à cette règle. Notez que "tomorrow 11:00" et "11:00 tomorrow" sont différents. Soit la date d'aujourd'hui à "July 23rd, 2008" , la première expression donne "2008-07-24 11:00" alors que la seconde donnera "2008-07-24 00:00". La raison est que ces cinq expressions influencent directement la date courante.

Note:

Notez les remarques qui suivent lorsque le jour de semaine courant est le même que le jour de semaine utilisé dans la chaine de date/time. Le jour de semaine courant aurait pu être recalculé par rapport aux parties non relatives de la chaine date/time.

  1. "dayname" n'avance pas vers un autre jour. (Exemple : "Wed July 23rd, 2008" signifie "2008-07-23").
  2. "number dayname" n'avance pas vers un autre jour. (Exemple : "1 wednesday july 23rd, 2008" signifie "2008-07-23").
  3. "number week dayname" ajoutera d'abord le nombre de semaines, mais n'avancera pas vers un autre jour. Dans ce cas "number week" et "dayname" sont deux blocs distincts. (Exemple : "+1 week wednesday july 23rd, 2008" signifie "2008-07-30").
  4. "ordinal dayname" avance vers un autre jour. (Exemple : "first wednesday july 23rd, 2008" signifie "2008-07-30").
  5. "number week ordinal dayname" ajoutera d'abord le nombre de semaines et ensuite avancera vers un autre jour. Dans ce cas, "number week" et "ordinal dayname" sont deux blocs distincts. (Exemple : "+1 week first wednesday july 23rd, 2008" signifie "2008-08-06").
  6. "ordinal dayname 'of' " n'avance pas vers un autre jour. (Exemple : "first wednesday of july 23rd, 2008" signifie "2008-07-02" car la phrase avec 'of' remet à zéro le jour du mois vers '1' et le '23' sera ignoré).

Notez aussi que le "of" dans "ordinal space dayname space 'of' " et "'last' space dayname espace 'of' " fait quelque chose de spécial.

  1. Il affecte le jour du mois à 1.
  2. "ordinal dayname 'of' " n'avance pas vers un autre jour. (Exemple : "first tuesday of july 2008" signifie "2008-07-01").
  3. "ordinal dayname " avance vers un autre jour. (Exemple : "first tuesday july 2008" signifie "2008-07-08", voyez aussi le point numéro 4 de la liste ci-dessus).
  4. "'last' dayname 'of' " prend le dernier dayname du mois courant. (Exemple : "last wed of july 2008" signifie "2008-07-30")
  5. "'last' dayname" prend le dernier dayname à partir du jour actuel. (Exemple : "last wed july 2008" signifie "2008-06-25"; "july 2008" affecte d'abord la date courante à "2008-07-01" et ensuite "last wed" remonte au dernier mercredi qui est le "2008-06-25").

Note:

Les valeurs relatives des mois calculés sont basées sur le nombre de jours des mois que l'on utilise. Par exemple, "+2 month 2011-11-30", donnera comme résultat la date "2012-01-30". Ceci est du au fait que le mois de novembre comporte 30 jours, et que le mois de décembre en comporte 31, soit un ajout total de 61 jours.

Historique

Version | Description
5.3.3 | "first day" et "last day" ont été modifié pour se comporter comme "+1 day" et "-1 day", respectivement. Précédemment, le comportement était comme "first day of" et "last day of".


Liste des Fuseaux Horaires Supportés

Sommaire

  • Afrique
  • Amerique
  • Antarctique
  • Arctique
  • Asie
  • Atlantique
  • Australie
  • Europe
  • Indien
  • Pacifique
  • Autres

Ici, vous trouverez une liste complète des fuseaux horaires supportés par PHP, qui peuvent être utilisés avec, e.g. date_default_timezone_set().

Attention

Le comportement des fuseaux horaires qui ne sont pas listés ici est indéfini.

Note: La dernière version de la base de données des fuseaux horaires peut être installée via la commande PECL » timezonedb.

Note: Cette liste est basée sur la version de la base de données des fuseaux horaires 2015.6.


Afrique

Afrique
Africa/Abidjan | Africa/Accra | Africa/Addis_Ababa | Africa/Algiers | Africa/Asmara
Africa/Asmera | Africa/Bamako | Africa/Bangui | Africa/Banjul | Africa/Bissau
Africa/Blantyre | Africa/Brazzaville | Africa/Bujumbura | Africa/Cairo | Africa/Casablanca
Africa/Ceuta | Africa/Conakry | Africa/Dakar | Africa/Dar_es_Salaam | Africa/Djibouti
Africa/Douala | Africa/El_Aaiun | Africa/Freetown | Africa/Gaborone | Africa/Harare
Africa/Johannesburg | Africa/Juba | Africa/Kampala | Africa/Khartoum | Africa/Kigali
Africa/Kinshasa | Africa/Lagos | Africa/Libreville | Africa/Lome | Africa/Luanda
Africa/Lubumbashi | Africa/Lusaka | Africa/Malabo | Africa/Maputo | Africa/Maseru
Africa/Mbabane | Africa/Mogadishu | Africa/Monrovia | Africa/Nairobi | Africa/Ndjamena
Africa/Niamey | Africa/Nouakchott | Africa/Ouagadougou | Africa/Porto-Novo | Africa/Sao_Tome
Africa/Timbuktu | Africa/Tripoli | Africa/Tunis | Africa/Windhoek |


Amerique

Amerique
America/Adak | America/Anchorage | America/Anguilla | America/Antigua | America/Araguaina
America/Argentina/Buenos_Aires | America/Argentina/Catamarca | America/Argentina/ComodRivadavia | America/Argentina/Cordoba | America/Argentina/Jujuy
America/Argentina/La_Rioja | America/Argentina/Mendoza | America/Argentina/Rio_Gallegos | America/Argentina/Salta | America/Argentina/San_Juan
America/Argentina/San_Luis | America/Argentina/Tucuman | America/Argentina/Ushuaia | America/Aruba | America/Asuncion
America/Atikokan | America/Atka | America/Bahia | America/Bahia_Banderas | America/Barbados
America/Belem | America/Belize | America/Blanc-Sablon | America/Boa_Vista | America/Bogota
America/Boise | America/Buenos_Aires | America/Cambridge_Bay | America/Campo_Grande | America/Cancun
America/Caracas | America/Catamarca | America/Cayenne | America/Cayman | America/Chicago
America/Chihuahua | America/Coral_Harbour | America/Cordoba | America/Costa_Rica | America/Creston
America/Cuiaba | America/Curacao | America/Danmarkshavn | America/Dawson | America/Dawson_Creek
America/Denver | America/Detroit | America/Dominica | America/Edmonton | America/Eirunepe
America/El_Salvador | America/Ensenada | America/Fort_Wayne | America/Fortaleza | America/Glace_Bay
America/Godthab | America/Goose_Bay | America/Grand_Turk | America/Grenada | America/Guadeloupe
America/Guatemala | America/Guayaquil | America/Guyana | America/Halifax | America/Havana
America/Hermosillo | America/Indiana/Indianapolis | America/Indiana/Knox | America/Indiana/Marengo | America/Indiana/Petersburg
America/Indiana/Tell_City | America/Indiana/Vevay | America/Indiana/Vincennes | America/Indiana/Winamac | America/Indianapolis
America/Inuvik | America/Iqaluit | America/Jamaica | America/Jujuy | America/Juneau
America/Kentucky/Louisville | America/Kentucky/Monticello | America/Knox_IN | America/Kralendijk | America/La_Paz
America/Lima | America/Los_Angeles | America/Louisville | America/Lower_Princes | America/Maceio
America/Managua | America/Manaus | America/Marigot | America/Martinique | America/Matamoros
America/Mazatlan | America/Mendoza | America/Menominee | America/Merida | America/Metlakatla
America/Mexico_City | America/Miquelon | America/Moncton | America/Monterrey | America/Montevideo
America/Montreal | America/Montserrat | America/Nassau | America/New_York | America/Nipigon
America/Nome | America/Noronha | America/North_Dakota/Beulah | America/North_Dakota/Center | America/North_Dakota/New_Salem
America/Ojinaga | America/Panama | America/Pangnirtung | America/Paramaribo | America/Phoenix
America/Port-au-Prince | America/Port_of_Spain | America/Porto_Acre | America/Porto_Velho | America/Puerto_Rico
America/Rainy_River | America/Rankin_Inlet | America/Recife | America/Regina | America/Resolute
America/Rio_Branco | America/Rosario | America/Santa_Isabel | America/Santarem | America/Santiago
America/Santo_Domingo | America/Sao_Paulo | America/Scoresbysund | America/Shiprock | America/Sitka
America/St_Barthelemy | America/St_Johns | America/St_Kitts | America/St_Lucia | America/St_Thomas
America/St_Vincent | America/Swift_Current | America/Tegucigalpa | America/Thule | America/Thunder_Bay
America/Tijuana | America/Toronto | America/Tortola | America/Vancouver | America/Virgin
America/Whitehorse | America/Winnipeg | America/Yakutat | America/Yellowknife |


Antarctique

Antarctique
Antarctica/Casey | Antarctica/Davis | Antarctica/DumontDUrville | Antarctica/Macquarie | Antarctica/Mawson
Antarctica/McMurdo | Antarctica/Palmer | Antarctica/Rothera | Antarctica/South_Pole | Antarctica/Syowa
Antarctica/Troll | Antarctica/Vostok |  |  |


  • « Antarctique
  • Asie »
  • PHP Manual
  • Liste des Fuseaux Horaires Supportés
  • Arctique

Arctique

Arctique
Arctic/Longyearbyen


Asie

Asie
Asia/Aden | Asia/Almaty | Asia/Amman | Asia/Anadyr | Asia/Aqtau
Asia/Aqtobe | Asia/Ashgabat | Asia/Ashkhabad | Asia/Baghdad | Asia/Bahrain
Asia/Baku | Asia/Bangkok | Asia/Beirut | Asia/Bishkek | Asia/Brunei
Asia/Calcutta | Asia/Chita | Asia/Choibalsan | Asia/Chongqing | Asia/Chungking
Asia/Colombo | Asia/Dacca | Asia/Damascus | Asia/Dhaka | Asia/Dili
Asia/Dubai | Asia/Dushanbe | Asia/Gaza | Asia/Harbin | Asia/Hebron
Asia/Ho_Chi_Minh | Asia/Hong_Kong | Asia/Hovd | Asia/Irkutsk | Asia/Istanbul
Asia/Jakarta | Asia/Jayapura | Asia/Jerusalem | Asia/Kabul | Asia/Kamchatka
Asia/Karachi | Asia/Kashgar | Asia/Kathmandu | Asia/Katmandu | Asia/Khandyga
Asia/Kolkata | Asia/Krasnoyarsk | Asia/Kuala_Lumpur | Asia/Kuching | Asia/Kuwait
Asia/Macao | Asia/Macau | Asia/Magadan | Asia/Makassar | Asia/Manila
Asia/Muscat | Asia/Nicosia | Asia/Novokuznetsk | Asia/Novosibirsk | Asia/Omsk
Asia/Oral | Asia/Phnom_Penh | Asia/Pontianak | Asia/Pyongyang | Asia/Qatar
Asia/Qyzylorda | Asia/Rangoon | Asia/Riyadh | Asia/Saigon | Asia/Sakhalin
Asia/Samarkand | Asia/Seoul | Asia/Shanghai | Asia/Singapore | Asia/Srednekolymsk
Asia/Taipei | Asia/Tashkent | Asia/Tbilisi | Asia/Tehran | Asia/Tel_Aviv
Asia/Thimbu | Asia/Thimphu | Asia/Tokyo | Asia/Ujung_Pandang | Asia/Ulaanbaatar
Asia/Ulan_Bator | Asia/Urumqi | Asia/Ust-Nera | Asia/Vientiane | Asia/Vladivostok
Asia/Yakutsk | Asia/Yekaterinburg | Asia/Yerevan |  |


Atlantique

Atlantique
Atlantic/Azores | Atlantic/Bermuda | Atlantic/Canary | Atlantic/Cape_Verde | Atlantic/Faeroe
Atlantic/Faroe | Atlantic/Jan_Mayen | Atlantic/Madeira | Atlantic/Reykjavik | Atlantic/South_Georgia
Atlantic/St_Helena | Atlantic/Stanley |  |  |


Australie

Australie
Australia/ACT | Australia/Adelaide | Australia/Brisbane | Australia/Broken_Hill | Australia/Canberra
Australia/Currie | Australia/Darwin | Australia/Eucla | Australia/Hobart | Australia/LHI
Australia/Lindeman | Australia/Lord_Howe | Australia/Melbourne | Australia/North | Australia/NSW
Australia/Perth | Australia/Queensland | Australia/South | Australia/Sydney | Australia/Tasmania
Australia/Victoria | Australia/West | Australia/Yancowinna |  |


Europe

Europe
Europe/Amsterdam | Europe/Andorra | Europe/Athens | Europe/Belfast | Europe/Belgrade
Europe/Berlin | Europe/Bratislava | Europe/Brussels | Europe/Bucharest | Europe/Budapest
Europe/Busingen | Europe/Chisinau | Europe/Copenhagen | Europe/Dublin | Europe/Gibraltar
Europe/Guernsey | Europe/Helsinki | Europe/Isle_of_Man | Europe/Istanbul | Europe/Jersey
Europe/Kaliningrad | Europe/Kiev | Europe/Lisbon | Europe/Ljubljana | Europe/London
Europe/Luxembourg | Europe/Madrid | Europe/Malta | Europe/Mariehamn | Europe/Minsk
Europe/Monaco | Europe/Moscow | Europe/Nicosia | Europe/Oslo | Europe/Paris
Europe/Podgorica | Europe/Prague | Europe/Riga | Europe/Rome | Europe/Samara
Europe/San_Marino | Europe/Sarajevo | Europe/Simferopol | Europe/Skopje | Europe/Sofia
Europe/Stockholm | Europe/Tallinn | Europe/Tirane | Europe/Tiraspol | Europe/Uzhgorod
Europe/Vaduz | Europe/Vatican | Europe/Vienna | Europe/Vilnius | Europe/Volgograd
Europe/Warsaw | Europe/Zagreb | Europe/Zaporozhye | Europe/Zurich |


Indien

Indien
Indian/Antananarivo | Indian/Chagos | Indian/Christmas | Indian/Cocos | Indian/Comoro
Indian/Kerguelen | Indian/Mahe | Indian/Maldives | Indian/Mauritius | Indian/Mayotte
Indian/Reunion |  |  |  |


Pacifique

Pacifique
Pacific/Apia | Pacific/Auckland | Pacific/Bougainville | Pacific/Chatham | Pacific/Chuuk
Pacific/Easter | Pacific/Efate | Pacific/Enderbury | Pacific/Fakaofo | Pacific/Fiji
Pacific/Funafuti | Pacific/Galapagos | Pacific/Gambier | Pacific/Guadalcanal | Pacific/Guam
Pacific/Honolulu | Pacific/Johnston | Pacific/Kiritimati | Pacific/Kosrae | Pacific/Kwajalein
Pacific/Majuro | Pacific/Marquesas | Pacific/Midway | Pacific/Nauru | Pacific/Niue
Pacific/Norfolk | Pacific/Noumea | Pacific/Pago_Pago | Pacific/Palau | Pacific/Pitcairn
Pacific/Pohnpei | Pacific/Ponape | Pacific/Port_Moresby | Pacific/Rarotonga | Pacific/Saipan
Pacific/Samoa | Pacific/Tahiti | Pacific/Tarawa | Pacific/Tongatapu | Pacific/Truk
Pacific/Wake | Pacific/Wallis | Pacific/Yap |  |


Autres

Autres
Brazil/Acre | Brazil/DeNoronha | Brazil/East | Brazil/West | Canada/Atlantic
Canada/Central | Canada/East-Saskatchewan | Canada/Eastern | Canada/Mountain | Canada/Newfoundland
Canada/Pacific | Canada/Saskatchewan | Canada/Yukon | CET | Chile/Continental
Chile/EasterIsland | CST6CDT | Cuba | EET | Egypt
Eire | EST | EST5EDT | Etc/GMT | Etc/GMT+0
Etc/GMT+1 | Etc/GMT+10 | Etc/GMT+11 | Etc/GMT+12 | Etc/GMT+2
Etc/GMT+3 | Etc/GMT+4 | Etc/GMT+5 | Etc/GMT+6 | Etc/GMT+7
Etc/GMT+8 | Etc/GMT+9 | Etc/GMT-0 | Etc/GMT-1 | Etc/GMT-10
Etc/GMT-11 | Etc/GMT-12 | Etc/GMT-13 | Etc/GMT-14 | Etc/GMT-2
Etc/GMT-3 | Etc/GMT-4 | Etc/GMT-5 | Etc/GMT-6 | Etc/GMT-7
Etc/GMT-8 | Etc/GMT-9 | Etc/GMT0 | Etc/Greenwich | Etc/UCT
Etc/Universal | Etc/UTC | Etc/Zulu | Factory | GB
GB-Eire | GMT | GMT+0 | GMT-0 | GMT0
Greenwich | Hongkong | HST | Iceland | Iran
Israel | Jamaica | Japan | Kwajalein | Libya
MET | Mexico/BajaNorte | Mexico/BajaSur | Mexico/General | MST
MST7MDT | Navajo | NZ | NZ-CHAT | Poland
Portugal | PRC | PST8PDT | ROC | ROK
Singapore | Turkey | UCT | Universal | US/Alaska
US/Aleutian | US/Arizona | US/Central | US/East-Indiana | US/Eastern
US/Hawaii | US/Indiana-Starke | US/Michigan | US/Mountain | US/Pacific
US/Pacific-New | US/Samoa | UTC | W-SU | WET
Zulu |  |  |  |
Avertissement

N'utilisez aucun des fuseaux horaires listés ici (excepté UTC), ils n'existent que pour des raisons de compatibilité ascendante et leur comportement peut provoquer des erreurs.

Avertissement

Si vous ne tenez pas compte de l'avertissement précédent, veuillez prendre note que la base de données de l'IANA qui fournit le support des fuseaux horaires dans PHP utilise les signes POSIX ce qui signifie que les zones Etc/GMT+n et Etc/GMT-n sont inversées par rapport à l'usage commun.

Par exemple, le fuseau horaire 8 heures après GMT qui est utilisé en Chine et en Australie occidentale est actuellement Etc/GMT-8 dans cette base de données, et non Etc/GMT+8 comme on pourrait s'y attendre.

Une fois encore, il est fortement recommandé que vous utilisiez le bon fuseau horaire pour votre emplacement, tel que Asia/Shanghai ou Australia/Perth pour les exemples précédents.


Gestion du temps à haute résolution

  • Introduction
  • Installation/Configuration
    • Installation
  • Exemples
    • Utilisation simple
  • HRTime\PerformanceCounter — La classe HRTime\PerformanceCounter
    • HRTime\PerformanceCounter::getElapsedTicks — Récupère les ticks écoulés pour tous les intervalles
    • HRTime\PerformanceCounter::getFrequency — Fréquence du timer dans les ticks, par seconde
    • HRTime\PerformanceCounter::getLastElapsedTicks — Récupère les ticks écoulés pour le dernier intervalle
    • HRTime\PerformanceCounter::isRunning — Vérifie si la mesure est en cours
    • HRTime\PerformanceCounter::start — Démarre la mesure du temps
    • HRTime\PerformanceCounter::stop — Stoppe la mesure du temps
  • HRTime\StopWatch — La classe HRTime\StopWatch
    • HRTime\StopWatch::getElapsedTime — Récupère le temps écoulé pour tous les intervalles
    • HRTime\StopWatch::getLastElapsedTime — Récupère le temps écoulé pour le dernier intervalle
  • HRTime\Unit — La classe HRTime\Unit


Introduction

L'extension HRTime implémente une classe StopWatch de haute résolution. Elle utilise la meilleure des APIs sur les différentes plateformes, qui fournira une résolution à la nanoseconde. Il est également possible d'implémenter un stopwatch personalisé, en utilisant des ticks de bas niveau, délivrés par les APIs sous-jacentes.


  • « Introduction
  • Installation »
  • PHP Manual
  • HRTime
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Installation


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/hrtime.

Une bibliothèque DLL pour cette extension PECL est disponible ici : » http://windows.php.net/downloads/pecl/releases/hrtime/.


  • « Installation
  • Utilisation simple »
  • PHP Manual
  • HRTime
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Cet exemple montre l'utilisation nasique de la classe StopWatch.

Exemple #1 Mesure l'exécution de différents blocs et retourne le total

<?php

$c = new HRTime\StopWatch;

$c->start();
/* mesure l'exécution de ce bloc de code */
for ($i = 0; $i < 1024*1024; $i++);
$c->stop();
$elapsed0 = $c->getLastElapsedTime(HRTime\Unit::NANOSECOND);

/* la mesure n'est pas en cours ici */
for ($i = 0; $i < 1024*1024; $i++);

$c->start();
/* mesure l'exécution de ce bloc de code */
for ($i = 0; $i < 1024*1024; $i++);
$c->stop();
$elapsed1 = $c->getLastElapsedTime(HRTime\Unit::NANOSECOND);

$elapsed_total = $c->getElapsedTime(HRTime\Unit::NANOSECOND);

?>


La classe HRTime\PerformanceCounter

(PECL hrtime >= 0.4.3)

Introduction

Synopsis de la classe

HRTime\PerformanceCounter {
/* Méthodes */
public int getElapsedTicks ( void )
public int getFrequency ( void )
public int getLastElapsedTicks ( void )
public bool isRunning ( void )
public void start ( void )
public void stop ( void )
}

Sommaire

  • HRTime\PerformanceCounter::getElapsedTicks — Récupère les ticks écoulés pour tous les intervalles
  • HRTime\PerformanceCounter::getFrequency — Fréquence du timer dans les ticks, par seconde
  • HRTime\PerformanceCounter::getLastElapsedTicks — Récupère les ticks écoulés pour le dernier intervalle
  • HRTime\PerformanceCounter::isRunning — Vérifie si la mesure est en cours
  • HRTime\PerformanceCounter::start — Démarre la mesure du temps
  • HRTime\PerformanceCounter::stop — Stoppe la mesure du temps


Récupère les ticks écoulés pour tous les intervalles

  • « HRTime\PerformanceCounter
  • HRTime\PerformanceCounter::getFrequency »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Récupère les ticks écoulés pour tous les intervalles

HRTime\PerformanceCounter::getElapsedTicks

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::getElapsedTicks — Récupère les ticks écoulés pour tous les intervalles

Description

public int HRTime\PerformanceCounter::getElapsedTicks ( void )

Récupère les ticks écoulés pour tous les intervalles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier indiquant les ticks écoulés.


Fréquence du timer dans les ticks, par seconde

  • « HRTime\PerformanceCounter::getElapsedTicks
  • HRTime\PerformanceCounter::getLastElapsedTicks »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Fréquence du timer dans les ticks, par seconde

HRTime\PerformanceCounter::getFrequency

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::getFrequency — Fréquence du timer dans les ticks, par seconde

Description

public int HRTime\PerformanceCounter::getFrequency ( void )

Retourne la fréquence du timer dans les ticks, par seconde. Cette valeur est constante que le démarrage du système sur la plupart des systèmes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier indiquant la fréquence du timer.


Récupère les ticks écoulés pour le dernier intervalle

  • « HRTime\PerformanceCounter::getFrequency
  • HRTime\PerformanceCounter::isRunning »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Récupère les ticks écoulés pour le dernier intervalle

HRTime\PerformanceCounter::getLastElapsedTicks

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::getLastElapsedTicks — Récupère les ticks écoulés pour le dernier intervalle

Description

public int HRTime\PerformanceCounter::getLastElapsedTicks ( void )

Récupère les ticks écoulés pour le dernier intervalle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier indiquant les ticks écoulés.


Vérifie si la mesure est en cours

  • « HRTime\PerformanceCounter::getLastElapsedTicks
  • HRTime\PerformanceCounter::start »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Vérifie si la mesure est en cours

HRTime\PerformanceCounter::isRunning

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::isRunning — Vérifie si la mesure est en cours

Description

public bool HRTime\PerformanceCounter::isRunning ( void )

Vérifie si la mesure est en cours.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen indiquant si la mesure est en cours.


Démarre la mesure du temps

  • « HRTime\PerformanceCounter::isRunning
  • HRTime\PerformanceCounter::stop »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Démarre la mesure du temps

HRTime\PerformanceCounter::start

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::start — Démarre la mesure du temps

Description

public void HRTime\PerformanceCounter::start ( void )

Démarre la mesure du temps. Cette méthode n'a aucun effet si la mesure du temps est déjà en cours. La mesure va continuer si elle avait été stoppée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne void.


Stoppe la mesure du temps

  • « HRTime\PerformanceCounter::start
  • HRTime\StopWatch »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Stoppe la mesure du temps

HRTime\PerformanceCounter::stop

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::stop — Stoppe la mesure du temps

Description

public void HRTime\PerformanceCounter::stop ( void )

Stoppe la mesure du temps pour l'intervalle précédent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne void.


La classe HRTime\StopWatch

(PECL hrtime >= 0.4.3)

Introduction

Synopsis de la classe

HRTime\StopWatch extends HRTime\PerformanceCounter {
/* Méthodes */
public float getElapsedTime ([ integer $unit ] )
public float getLastElapsedTime ([ integer $unit ] )
/* Méthodes héritées */
public int HRTime\PerformanceCounter::getElapsedTicks ( void )
public int HRTime\PerformanceCounter::getFrequency ( void )
public int HRTime\PerformanceCounter::getLastElapsedTicks ( void )
public bool HRTime\PerformanceCounter::isRunning ( void )
public void HRTime\PerformanceCounter::start ( void )
public void HRTime\PerformanceCounter::stop ( void )
}

Sommaire

  • HRTime\StopWatch::getElapsedTime — Récupère le temps écoulé pour tous les intervalles
  • HRTime\StopWatch::getLastElapsedTime — Récupère le temps écoulé pour le dernier intervalle


Récupère le temps écoulé pour tous les intervalles

  • « HRTime\StopWatch
  • HRTime\StopWatch::getLastElapsedTime »
  • PHP Manual
  • HRTime\StopWatch
  • Récupère le temps écoulé pour tous les intervalles

HRTime\StopWatch::getElapsedTime

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getElapsedTime — Récupère le temps écoulé pour tous les intervalles

Description

public float HRTime\StopWatch::getElapsedTime ([ integer $unit ] )

Récupère le temps écoulé pour tous les précédents intervalles clos.

Liste de paramètres

unit

Unité de temps représentée par une constante HRTime\Unit. Par défaut, vaut HRTime\Unit::SECOND.

Valeurs de retour

Retourne un nombre décimal indiquant le temps écoulé.


Récupère le temps écoulé pour le dernier intervalle

  • « HRTime\StopWatch::getElapsedTime
  • HRTime\Unit »
  • PHP Manual
  • HRTime\StopWatch
  • Récupère le temps écoulé pour le dernier intervalle

HRTime\StopWatch::getLastElapsedTime

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getLastElapsedTime — Récupère le temps écoulé pour le dernier intervalle

Description

public float HRTime\StopWatch::getLastElapsedTime ([ integer $unit ] )

Récupère le temps écoulé pour le dernier intervalle.

Liste de paramètres

unit

Unité de temps représenté par une constante HRTime\Unit. Par défaut, vaut HRTime\Unit::SECOND.

Valeurs de retour

Retourne un nombre décimal indiquant le temps écoulé.


La classe HRTime\Unit

(PECL hrtime >= 0.4.3)

Introduction

Synopsis de la classe

HRTime\Unit {
/* Constants */
const integer SECOND = 0 ;
const integer MILLISECOND = 1 ;
const integer MICROSECOND = 2 ;
const integer NANOSECOND = 3 ;
/* Méthodes */
}

Constantes pré-définies

HRTime\Unit::SECOND

HRTime\Unit::MILLISECOND

HRTime\Unit::MICROSECOND

HRTime\Unit::NANOSECOND


Extensions relatives aux systèmes de fichiers

  • Direct IO
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Direct IO
  • Les dossiers
    • Installation/Configuration
    • Constantes pré-définies
    • Directory — La classe Directory
    • Fonctions sur les dossiers
  • Fileinfo — Informations sur les fichiers
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Fileinfo
    • finfo — La classe finfo
  • Système de fichiers
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions sur les systèmes de fichiers
  • Inotify
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Inotify
  • Mimetype
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
  • Proctitle
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Proctitle
  • xattr
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions xattr
  • xdiff
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions xdiff


Direct IO

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Direct IO
    • dio_close — Ferme l'accès au fichier
    • dio_fcntl — Exécute une fonction fichier de langage C
    • dio_open — Ouvre un nouveau fichier avec les permissions spécifiées
    • dio_read — Lit les octets dans un fichier
    • dio_seek — Déplace le pointeur interne de fichier
    • dio_stat — Lit des informations sur le fichier
    • dio_tcsetattr — Modifie les attributs du terminal et le taux de baud du port série
    • dio_truncate — Tronque un fichier
    • dio_write — Écrit des données dans le fichier avec la possibilité de tronquer sa longueur


Introduction

PHP support les fonctions Direct IO, telle que décrit dans le standard Posix (Section 6) pour effectuer des fonctions I/O de bas niveau par rapport aux fonctions C-Language stream I/O (fopen(), fread(),..). L'utilisation des fonctions DIO doit être considérée uniquement lorsqu'un contrôle direct d'un périphérique est nécessaire. Dans tous les autres cas, les fonctions standards de système de fichiers sont plus adéquates.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Cette extension n'est disponible que sous les systèmes Windows depuis PHP 5.0.0.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/dio.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Types de ressources

Un type de ressource est défini par cette extension : un pointeur de fichier, retourné par la fonction dio_open().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

F_DUPFD (entier)

F_GETFD (entier)

F_GETFL (entier)

F_GETLK (entier)

F_GETOWN (entier)

F_RDLCK (entier)

F_SETFL (entier)

F_SETLK (entier)

F_SETLKW (entier)

F_SETOWN (entier)

F_UNLCK (entier)

F_WRLCK (entier)

O_APPEND (entier)

O_ASYNC (entier)

O_CREAT (entier)

O_EXCL (entier)

O_NDELAY (entier)

O_NOCTTY (entier)

O_NONBLOCK (entier)

O_RDONLY (entier)

O_RDWR (entier)

O_SYNC (entier)

O_TRUNC (entier)

O_WRONLY (entier)

S_IRGRP (entier)

S_IROTH (entier)

S_IRUSR (entier)

S_IRWXG (entier)

S_IRWXO (entier)

S_IRWXU (entier)

S_IWGRP (entier)

S_IWOTH (entier)

S_IWUSR (entier)

S_IXGRP (entier)

S_IXOTH (entier)

S_IXUSR (entier)


Fonctions Direct IO

Sommaire

  • dio_close — Ferme l'accès au fichier
  • dio_fcntl — Exécute une fonction fichier de langage C
  • dio_open — Ouvre un nouveau fichier avec les permissions spécifiées
  • dio_read — Lit les octets dans un fichier
  • dio_seek — Déplace le pointeur interne de fichier
  • dio_stat — Lit des informations sur le fichier
  • dio_tcsetattr — Modifie les attributs du terminal et le taux de baud du port série
  • dio_truncate — Tronque un fichier
  • dio_write — Écrit des données dans le fichier avec la possibilité de tronquer sa longueur


Ferme l'accès au fichier

  • « Fonctions Direct IO
  • dio_fcntl »
  • PHP Manual
  • Fonctions Direct IO
  • Ferme l'accès au fichier

dio_close

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PHP 7)

dio_close — Ferme l'accès au fichier

Description

void dio_close ( resource $fd )

dio_close() ferme l'accès au fichier représenté par la ressource fd.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Fermeture d'une ressource de fichier

<?php
$fd = dio_open('/dev/ttyS0', O_RDWR);

dio_close($fd);
?>

Voir aussi

  • dio_open() - Ouvre un nouveau fichier avec les permissions spécifiées


Exécute une fonction fichier de langage C

  • « dio_close
  • dio_open »
  • PHP Manual
  • Fonctions Direct IO
  • Exécute une fonction fichier de langage C

dio_fcntl

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PHP 7)

dio_fcntl — Exécute une fonction fichier de langage C

Description

mixed dio_fcntl ( resource $fd , int $cmd [, mixed $args ] )

dio_fcntl() exécute l'opération cmd sur le fichier représenté par la ressource fd. Certaines commandes demandent des arguments supplémentaires qui sont fournis dans l'argument args.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

cmd

Peut être une de ces opérations suivantes :

  • F_SETLK : le verrou est posé ou levé. Si le verrou appartient à un autre utilisateur, dio_fcntl() retourne -1.

  • F_SETLKW : identique à F_SETLK, mais si le verrou appartient à quelqu'un d'autre, dio_fcntl() attend la levée du verrou.

  • F_GETLK : dio_fcntl() retourne un tableau associatif (comme décrit ci-dessus) si un autre utilisateur empêche la poste d'un verrou. S'il n'y a aucun empêchement, l'entrée "type" prendra la valeur F_UNLCK.

  • F_DUPFD : trouve les numéros de ressource de fichier les plus petits, disponibles, inférieurs ou égales à args et les retourne.

  • F_SETFL : configure les descripteurs de fichier à la valeur spécifiée par args, qui peut être O_APPEND, O_NONBLOCK ou O_ASYNC. Pour utiliser O_ASYNC vous aurez besoin de l'extension PCNTL.

args

args est un tableau associatif lorsque cmd vaut F_SETLK ou F_SETLLW, avec les entrées suivantes :

  • start : offset de début de verrou

  • length : taille de la surface verrouillée. Zéro indique la fin du fichier

  • whence : l_start est relatif à : peut être SEEK_SET, SEEK_END et SEEK_CUR

  • type : type de verrou. peut être F_RDLCK (verrou en lecture), F_WRLCK (verrou en écriture) ou F_UNLCK (déverrouillage)

Valeurs de retour

Retourne le résultat d'un appel en C.

Exemples

Exemple #1 Positionnement et suppression d'un verrou

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR);

if (dio_fcntl($fd, F_SETLK, Array("type"=>F_WRLCK)) == -1) {
   // le descripteur de fichier semble verrouillé
   echo "Le verrou n'a pu être effacé. Il a été posé par quelqu'un d'autre.";
} else {
   echo "Le verrou a été défini/verrouillé avec succès";
}

dio_close($fd);
?>

Notes

Note: Cette fonction n'est pas implémentée sous Windows.


Ouvre un nouveau fichier avec les permissions spécifiées

  • « dio_fcntl
  • dio_read »
  • PHP Manual
  • Fonctions Direct IO
  • Ouvre un nouveau fichier avec les permissions spécifiées

dio_open

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PHP 7)

dio_open — Ouvre un nouveau fichier avec les permissions spécifiées

Description

resource dio_open ( string $filename , int $flags [, int $mode = 0 ] )

Ouvre un accès à un fichier et retourne une ressource de fichier.

Liste de paramètres

filename

Le chemin vers le fichier à ouvrir.

flags

Le paramètre flags est une valeur comprenant des drapeaux depuis la liste suivante. Cette valeur doit inclure une constante parmi O_RDONLY, O_WRONLY, ou O_RDWR. À cette constante, vous pouvez y ajouter n'importe quel drapeaux depuis cette liste.

  • O_RDONLY : ouvre le fichier en lecture seule.

  • O_WRONLY : ouvre le fichier en écriture.

  • O_RDWR : ouvre le fichier en lecture et écriture.

  • O_CREAT : crée le fichier, s'il n'existe pas.

  • O_EXCL : si O_CREAT et O_EXCL sont utilisés et que le fichier existe, dio_open() échouera.

  • O_TRUNC : si le fichier existe et qu'il est ouvert en écriture, le fichier sera réduit à la taille nulle.

  • O_APPEND : les écritures se font à partir de la fin du fichier.

  • O_NONBLOCK : active le mode non-bloquant.

  • O_NOCTTY : évite que le système d'exploitation n'assigne au fichier ouvert un processus contrôlant le terminal lorsque ce fichier est un fichier TTY.

mode

Si flags contient O_CREAT, mode définira les permissions du fichier (permissions de création). mode est requis pour une opération correcte lorsque O_CREAT est spécifié dans le flags et est ignoré sinon.

Les permissions assignées au fichier créé seront affectées par la configuration du processus umask.

Valeurs de retour

Une ressource de fichier ou FALSE en cas d'erreur.

Exemples

Exemple #1 Ouverture d'un fichier

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_close($fd);
?>

Voir aussi

  • dio_close() - Ferme l'accès au fichier


Lit les octets dans un fichier

  • « dio_open
  • dio_seek »
  • PHP Manual
  • Fonctions Direct IO
  • Lit les octets dans un fichier

dio_read

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PHP 7)

dio_read — Lit les octets dans un fichier

Description

string dio_read ( resource $fd [, int $len = 1024 ] )

dio_read() lit et retourne len octets dans le fichier représenté par la ressource fd.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

len

Le nombre d'octets à lire. Si le paramètre n'est pas spécifié, dio_read() lit un bloc de 1 ko.

Valeurs de retour

Les octets lus de fd.

Voir aussi

  • dio_write() - Écrit des données dans le fichier avec la possibilité de tronquer sa longueur


Déplace le pointeur interne de fichier

  • « dio_read
  • dio_stat »
  • PHP Manual
  • Fonctions Direct IO
  • Déplace le pointeur interne de fichier

dio_seek

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PHP 7)

dio_seek — Déplace le pointeur interne de fichier

Description

int dio_seek ( resource $fd , int $pos [, int $whence = SEEK_SET ] )

dio_seek() sert à modifier la position du pointeur de fichier dans le fichier.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

pos

La nouvelle position.

whence

Spécifie comment la position pos devrait être interprétée :

  • SEEK_SET (défaut) : spécifie que pos est spécifié à partir du début du fichier.

  • SEEK_CUR : spécifie que pos est un nombre de caractères à partir de la position courante dans le fichier. Ce nombre peut être positif ou négatif.

  • SEEK_END : spécifie que pos est un nombre de caractères à partir de la fin du fichier. Une valeur négative spécifie une position à l'intérieur du domaine courant du fichier; une valeur positive spécifie une position passée de la fin courante. Si vous spécifiez une position après la fin et que vous y écriviez des données, vous allez agrandir le fichier avec des zéros jusqu'à cette position.

Valeurs de retour

Exemples

Exemple #1 Positionnement dans un fichier

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR);

dio_seek($fd, 10, SEEK_SET);
// la position est maintenant à 10 caractères depuis le début du fichier

dio_seek($fd, -2, SEEK_CUR);
// la position est maintenant à 8 caractères depuis le début du fichier

dio_seek($fd, -5, SEEK_END);
// la position est maintenant à 5 caractères depuis la fin du fichier

dio_seek($fd, 10, SEEK_END);
// la position est maintenant à 10 caractères après la fin du fichier.
// Les 10 caractères entre la fin du fichier et la position courante sont
// complétés par des zéros.

dio_close($fd);
?>


Lit des informations sur le fichier

  • « dio_seek
  • dio_tcsetattr »
  • PHP Manual
  • Fonctions Direct IO
  • Lit des informations sur le fichier

dio_stat

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PHP 7)

dio_stat — Lit des informations sur le fichier

Description

array dio_stat ( resource $fd )

dio_stat() retourne les informations sur le fichier.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

Valeurs de retour

Retourne un tableau associatif avec les clés suivantes :

  • "device" : device

  • "inode" : inode

  • "mode" : mode

  • "nlink" : nombre de liens

  • "uid" : user id

  • "gid" : group id

  • "device_type" : type de device (si inode device)

  • "size" : taille totale en octets

  • "blocksize" : taille du bloc

  • "blocks" : nombre de blocs alloués

  • "atime" : date du dernier accès

  • "mtime" : date de dernière modification

  • "ctime" : date de dernier changement

En cas d'erreur, dio_stat() retourne NULL.


Modifie les attributs du terminal et le taux de baud du port série

  • « dio_stat
  • dio_truncate »
  • PHP Manual
  • Fonctions Direct IO
  • Modifie les attributs du terminal et le taux de baud du port série

dio_tcsetattr

(PHP 4 >= 4.3.0, PHP 5 <= 5.0.5, PHP 7)

dio_tcsetattr — Modifie les attributs du terminal et le taux de baud du port série

Description

bool dio_tcsetattr ( resource $fd , array $options )

dio_tcsetattr() modifie les attributs du terminal et le taux de baud du port série de ressource.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

options

Les options actuellement disponibles sont :

  • 'baud' : taux de baud du port : peut être 38400,19200,9600,4800, 2400,1800,1200,600,300,200,150,134,110,75 ou 50. Par défaut, c'est 9600.

  • 'bits' : bits de données : peut être 8,7,6 ou 5. Par défaut, c'est 8.

  • 'stop' : bits de stop : peut être 1 ou 2. Par défaut, c'est 1.

  • 'parity' : peut être 0, 1 ou 2. Par défaut, c'est 0.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Définition du débit des bauds sur un port série

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_fcntl($fd,F_SETFL, O_SYNC );

dio_tcsetattr($fd, array(
  'baud' => 9600,
  'bits' => 8,
  'stop'  =>1,
  'parity' => 0
));

while (1) {

  $data = dio_read($fd,256);

  if ($data) {
      echo $data;
  }
}

?>

Notes

Note: Cette fonction n'est pas implémentée sous Windows.


Tronque un fichier

  • « dio_tcsetattr
  • dio_write »
  • PHP Manual
  • Fonctions Direct IO
  • Tronque un fichier

dio_truncate

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PHP 7)

dio_truncate — Tronque un fichier

Description

bool dio_truncate ( resource $fd , int $offset )

dio_truncate() tronque un fichier d'au moins offset octets, en taille.

Si auparavant le fichier était plus grand que cette taille, les données en plus seront perdues. Si par contre le fichier était plus petit, il n'est pas spécifié si le fichier est gardé intact ou agrandi. Dans le dernier cas, la partie étendue devient des octets zéros.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

offset

La position en octets.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction n'est pas implémentée sous Windows.


Écrit des données dans le fichier avec la possibilité de tronquer sa longueur

  • « dio_truncate
  • Les dossiers »
  • PHP Manual
  • Fonctions Direct IO
  • Écrit des données dans le fichier avec la possibilité de tronquer sa longueur

dio_write

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PHP 7)

dio_write — Écrit des données dans le fichier avec la possibilité de tronquer sa longueur

Description

int dio_write ( resource $fd , string $data [, int $len = 0 ] )

dio_write() écrit jusqu'à len octets issus de la variable data, dans le fichier représenté par la ressource fd.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

data

Les données à écrire.

len

La grandeur des données à écrire en octets. S'il n'est pas spécifié, la fonction écrit toutes les données au fichier spécifié.

Valeurs de retour

Retourne le nombre d'octets écrits dans fd.

Voir aussi

  • dio_read() - Lit les octets dans un fichier


Les dossiers

  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Directory — La classe Directory
    • Directory::close — Ferme le gestionnaire de dossier
    • Directory::read — Lit une entrée depuis le gestionnaire de dossier
    • Directory::rewind — Réinitialise le gestionnaire de dossier
  • Fonctions sur les dossiers
    • chdir — Change de dossier
    • chroot — Change le dossier racine
    • closedir — Ferme le pointeur sur le dossier
    • dir — Retourne une instance de la classe Directory
    • getcwd — Retourne le dossier de travail courant
    • opendir — Ouvre un dossier, et récupère un pointeur dessus
    • readdir — Lit une entrée du dossier
    • rewinddir — Retourne à la première entrée du dossier
    • scandir — Liste les fichiers et dossiers dans un dossier


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

DIRECTORY_SEPARATOR (chaîne de caractères)
PATH_SEPARATOR (chaîne de caractères)
Disponible depuis PHP 4.3.0. Un point-virgule sous Windows, deux points (:) sinon.
SCANDIR_SORT_ASCENDING (entier)
Disponible depuis PHP 5.4.0.
SCANDIR_SORT_DESCENDING (entier)
Disponible depuis PHP 5.4.0.
SCANDIR_SORT_NONE (entier)
Disponible depuis PHP 5.4.0.


La classe Directory

(PHP 4, PHP 5, PHP 7)

Introduction

Les instances de la classe Directory sont créées en appelant la fonction dir(), sans utiliser l'opérateur new.

Synopsis de la classe

Directory {
/* Propriétés */
public string $path ;
public resource $handle ;
/* Méthodes */
public void close ([ resource $dir_handle ] )
public string read ([ resource $dir_handle ] )
public void rewind ([ resource $dir_handle ] )
}

Propriétés

path

Le dossier à ouvrir.

handle

Peut être utilisé avec d'autres fonctions relatives aux
dossiers, comme readdir(),
rewinddir() et
closedir().

Sommaire

  • Directory::close — Ferme le gestionnaire de dossier
  • Directory::read — Lit une entrée depuis le gestionnaire de dossier
  • Directory::rewind — Réinitialise le gestionnaire de dossier


Ferme le gestionnaire de dossier

  • « Directory
  • Directory::read »
  • PHP Manual
  • Directory
  • Ferme le gestionnaire de dossier

Directory::close

(PHP 4, PHP 5, PHP 7)

Directory::close — Ferme le gestionnaire de dossier

Description

public void Directory::close ([ resource $dir_handle ] )

Identique à la fonction closedir(), seul le paramètre dir_handle vaut par défaut $this.


Lit une entrée depuis le gestionnaire de dossier

  • « Directory::close
  • Directory::rewind »
  • PHP Manual
  • Directory
  • Lit une entrée depuis le gestionnaire de dossier

Directory::read

(PHP 4, PHP 5, PHP 7)

Directory::read — Lit une entrée depuis le gestionnaire de dossier

Description

public string Directory::read ([ resource $dir_handle ] )

Identique à la fonction readdir(), seul le paramètre dir_handle vaut par défaut $this.


Réinitialise le gestionnaire de dossier

  • « Directory::read
  • Fonctions sur les dossiers »
  • PHP Manual
  • Directory
  • Réinitialise le gestionnaire de dossier

Directory::rewind

(PHP 4, PHP 5, PHP 7)

Directory::rewind — Réinitialise le gestionnaire de dossier

Description

public void Directory::rewind ([ resource $dir_handle ] )

IIdentique à la fonction rewinddir(), seul le paramètre dir_handle vaut par défaut $this.


Fonctions sur les dossiers

Voir aussi

Pour des fonctions connexes telles que dirname(), is_dir(), mkdir() et rmdir(), voyez donc la section système de fichiers.

Sommaire

  • chdir — Change de dossier
  • chroot — Change le dossier racine
  • closedir — Ferme le pointeur sur le dossier
  • dir — Retourne une instance de la classe Directory
  • getcwd — Retourne le dossier de travail courant
  • opendir — Ouvre un dossier, et récupère un pointeur dessus
  • readdir — Lit une entrée du dossier
  • rewinddir — Retourne à la première entrée du dossier
  • scandir — Liste les fichiers et dossiers dans un dossier


Change de dossier

  • « Fonctions sur les dossiers
  • chroot »
  • PHP Manual
  • Fonctions sur les dossiers
  • Change de dossier

chdir

(PHP 4, PHP 5, PHP 7)

chdir — Change de dossier

Description

bool chdir ( string $directory )

chdir() change le dossier courant de PHP en directory.

Liste de paramètres

directory

Le nouveau répertoire courant

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une erreur de niveau E_WARNING si une erreur survient.

Exemples

Exemple #1 Exemple avec chdir()

<?php

// dossier courant
echo getcwd() . "\n";

chdir('public_html');

// dossier courant
echo getcwd() . "\n";

?>

L'exemple ci-dessus va afficher :

/home/vincent
/home/vincent/public_html

Notes

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

  • getcwd() - Retourne le dossier de travail courant


Change le dossier racine

  • « chdir
  • closedir »
  • PHP Manual
  • Fonctions sur les dossiers
  • Change le dossier racine

chroot

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

chroot — Change le dossier racine

Description

bool chroot ( string $directory )

chroot() change la racine du script en cours, et la remplace par directory, puis change le dossier courant de travail en "/".

Cette fonction n'est disponible que sur les systèmes GNU et BSD et que si vous utilisez la SAPI CLI, CGI ou Embed. De plus, cette fonction nécessite les privilèges d'administrateur.

Liste de paramètres

directory

Le répertoire vers lequel changer la racine.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec chroot()

<?php
chroot("/path/to/your/chroot/");
echo getcwd();
?>

L'exemple ci-dessus va afficher :

/

Notes

Note: Cette fonction n'est pas implémentée sous Windows.


Ferme le pointeur sur le dossier

  • « chroot
  • dir »
  • PHP Manual
  • Fonctions sur les dossiers
  • Ferme le pointeur sur le dossier

closedir

(PHP 4, PHP 5, PHP 7)

closedir — Ferme le pointeur sur le dossier

Description

void closedir ([ resource $dir_handle ] )

closedir() ferme le pointeur de dossier dir_handle. Le dossier devait avoir été ouvert auparavant avec opendir().

Liste de paramètres

dir_handle

La ressource de dossier ouverte précédemment avec opendir().

Exemples

Exemple #1 Exemple avec closedir()

<?php
$dir = "/etc/php5/";

// Ouverture d'un dossier connu, lecture du dossier et assignation à
// une variable, ensuite fermeture du dossier
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        $directory = readdir($dh);
        closedir($dh);
    }
}
?>


Retourne une instance de la classe Directory

  • « closedir
  • getcwd »
  • PHP Manual
  • Fonctions sur les dossiers
  • Retourne une instance de la classe Directory

dir

(PHP 4, PHP 5, PHP 7)

dir — Retourne une instance de la classe Directory

Description

Directory dir ( string $directory [, resource $context ] )

Un mécanisme pseudo-objet permet la lecture d'un dossier. L'argument directory est ouvert.

Liste de paramètres

directory

Le dossier à ouvrir

context

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Flux.

Valeurs de retour

Retourne une instance de la classe Directory en cas de succès, NULL si de mauvais arguments sont passés, ou FALSE pour les autres types d'erreur.

Exemples

Exemple #1 Exemple avec dir()

Notez la façon dont la valeur de retour de Directory::read() est vérifiée dans l'exemple suivant. Nous testons si la valeur est identique (égale et de même type que -- voyez opérateurs de comparaison pour plus de détails) FALSE sinon, toute entrée dans le nom serait évalué à FALSE causera l'arrêt de la boucle.

<?php
$d = dir("/etc/php5");
echo "Pointeur : " . $d->handle . "\n";
echo "Chemin : " . $d->path . "\n";
while (false !== ($entry = $d->read())) {
   echo $entry."\n";
}
$d->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Pointeur : Resource id #2
Chemin : /etc/php5
.
..
apache
cgi
cli

Notes

Note:

L'ordre dans lequel les entrées du dossier sont retournées avec la méthode read dépend de votre système.


Retourne le dossier de travail courant

  • « dir
  • opendir »
  • PHP Manual
  • Fonctions sur les dossiers
  • Retourne le dossier de travail courant

getcwd

(PHP 4, PHP 5, PHP 7)

getcwd — Retourne le dossier de travail courant

Description

string getcwd ( void )

Retourne le dossier de travail courant.

Valeurs de retour

Retourne le dossier de travail courant en cas de réussite ou FALSE en cas d'échec.

Sur quelques versions d'Unix, getcwd() peut retourner FALSE si tous les dossiers parents n'ont pas le mode écriture ou le mode recherche de défini, même si le dossier courant les a. Voir la fonction chmod() pour plus d'informations sur les modes de permissions.

Exemples

Exemple #1 Exemple avec getcwd()

<?php

// dossier courant
echo getcwd() . "\n";

chdir('cvs');

// dossier courant
echo getcwd() . "\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/home/didou
/home/didou/cvs

Voir aussi

  • chdir() - Change de dossier
  • chmod() - Change le mode du fichier


Ouvre un dossier, et récupère un pointeur dessus

  • « getcwd
  • readdir »
  • PHP Manual
  • Fonctions sur les dossiers
  • Ouvre un dossier, et récupère un pointeur dessus

opendir

(PHP 4, PHP 5, PHP 7)

opendir — Ouvre un dossier, et récupère un pointeur dessus

Description

resource opendir ( string $path [, resource $context ] )

opendir() retourne un pointeur sur un dossier qui pour être utilisé avec les fonctions closedir(), readdir() et rewinddir().

Liste de paramètres

path

Le chemin du répertoire à ouvrir

context

Pour la description du paramètre context, référez-vous à la section des flux du manuel.

Valeurs de retour

Retourne la ressource de dossier en cas de succès ou FALSE en cas d'échec.

Si le paramètre path n'est pas un dossier valide, ou si le dossier ne peut être accédé pour des raisons de permissions ou des erreurs liées au système de fichiers, opendir() retourne FALSE et génère une erreur PHP de niveau E_WARNING. Vous pouvez supprimer cette erreur en ajoutant '@' avant le nom de la fonction.

Historique

Version | Description
5.0.0 | path supporte l'enveloppe URL ftp://
4.3.0 | path peut aussi être n'importe quel URL qui supporte le listage de dossiers, par contre, seul l'enveloppe URL file:// supporte ceci en PHP 4.

Exemples

Exemple #1 Exemple avec opendir()

<?php
$dir = "/tmp/php5";

// Ouvre un dossier bien connu, et liste tous les fichiers
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            echo "fichier : $file : type : " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

fichier : . : type : dir
fichier : .. : type : dir
fichier : apache : type : dir
fichier : cgi : type : dir
fichier : cli : type : dir

Voir aussi

  • is_dir() - Indique si le fichier est un dossier
  • readdir() - Lit une entrée du dossier
  • dir() - Retourne une instance de la classe Directory


Lit une entrée du dossier

  • « opendir
  • rewinddir »
  • PHP Manual
  • Fonctions sur les dossiers
  • Lit une entrée du dossier

readdir

(PHP 4, PHP 5, PHP 7)

readdir — Lit une entrée du dossier

Description

string readdir ([ resource $dir_handle ] )

readdir() retourne le nom de la prochaine entrée du dossier identifié par dir_handle. Les entrées sont retournées dans l'ordre dans lequel elles sont enregistrées dans le système de fichiers.

Liste de paramètres

dir_handle

La ressource de dossier ouverte précédemment avec opendir(). Si la ressource de dossier n'est pas spécifiée, la dernière ressource ouverte avec la fonction opendir() sera utilisée.

Valeurs de retour

Retourne le nom de l'entrée en cas de réussite ou FALSE si une erreur survient.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Liste de toutes les entrées d'un dossier

Notez la façon dont la valeur de retour de dir() est vérifiée dans l'exemple suivant. Nous testons si la valeur est identique (égale et de même type que -- voyez opérateurs de comparaison pour plus de détails) FALSE sinon, toute entrée dans le nom serait évalué à FALSE causera l'arrêt de la boucle (exemple, un répertoire nommé 0).

<?php

if ($handle = opendir('/chemin/vers/fichiers')) {
    echo "Gestionnaire du dossier : $handle\n";
    echo "Entrées :\n";

    /* Ceci est la façon correcte de traverser un dossier. */
    while (false !== ($entry = readdir($handle))) {
        echo "$entry\n";
    }

    /* Ceci est la MAUVAISE façon de traverser un dossier. */
    while ($entry = readdir($handle)) {
        echo "$entry\n";
    }

    closedir($handle);
}
?>

Exemple #2 Liste toutes les entrées du dossier courant et enlève les . et ..

<?php
if ($handle = opendir('.')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            echo "$entry\n";
        }
    }
    closedir($handle);
}
?>

Voir aussi

  • is_dir() - Indique si le fichier est un dossier
  • glob() - Recherche des chemins qui vérifient un masque
  • opendir() - Ouvre un dossier, et récupère un pointeur dessus
  • scandir() - Liste les fichiers et dossiers dans un dossier


Retourne à la première entrée du dossier

  • « readdir
  • scandir »
  • PHP Manual
  • Fonctions sur les dossiers
  • Retourne à la première entrée du dossier

rewinddir

(PHP 4, PHP 5, PHP 7)

rewinddir — Retourne à la première entrée du dossier

Description

void rewinddir ([ resource $dir_handle ] )

rewinddir() retourne à la première entrée du dossier identifiée par dir_handle.

Liste de paramètres

dir_handle

La ressource de dossier ouverte précédemment avec opendir(). Si la ressource de dossier n'est pas fournie, la dernière ressource ouverte avec la fonction opendir() sera utilisée.


Liste les fichiers et dossiers dans un dossier

  • « rewinddir
  • Fileinfo »
  • PHP Manual
  • Fonctions sur les dossiers
  • Liste les fichiers et dossiers dans un dossier

scandir

(PHP 5, PHP 7)

scandir — Liste les fichiers et dossiers dans un dossier

Description

array scandir ( string $directory [, int $sorting_order = SCANDIR_SORT_ASCENDING [, resource $context ]] )

Retourne un tableau de fichier et dossier, issus de directory.

Liste de paramètres

directory

Le dossier qui sera analysé.

sorting_order

Par défaut, le tri est en ordre alphabétique, croissant. Si le paramètre optionnel sorting_order est défini à SCANDIR_SORT_DESCENDING, alors le tri sera en ordre alphabétique inverse. Si ce paramètre est défini à SCANDIR_SORT_NONE, alors le résultat ne sera pas trié.

context

Pour une description du paramètre context, référez-vous à la section flux de données du manuel.

Valeurs de retour

Retourne un tableau des fichiers en cas de succès ou FALSE en cas d'échec. Si directory n'est pas un dossier, alors une valeur booléenne FALSE est retournée et une erreur de niveau E_WARNING est générée.

Historique

Version | Description
5.4.0 | La constante sorting_order a été ajoutée. Toute valeur différente de zéro provoquera un ordre décroissant dans les anciennes versions. Aussi, pour toutes les versions de PHP, utilisez 0 pour un ordre croissant, et 1 pour un ordre décroissant. L'option pour le comportement de SCANDIR_SORT_NONE n'existe pas avant la version 5.4.0 de PHP.

Exemples

Exemple #1 Un simple exemple avec scandir()

<?php
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Exemple #2 Remplacement à scandir() pour PHP 4

<?php
$dir = "/tmp";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}

sort($files);

print_r($files);

rsort($files);

print_r($files);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Notes

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Voir aussi

  • opendir() - Ouvre un dossier, et récupère un pointeur dessus
  • readdir() - Lit une entrée du dossier
  • glob() - Recherche des chemins qui vérifient un masque
  • is_dir() - Indique si le fichier est un dossier
  • sort() - Trie un tableau


Informations sur les fichiers

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Fileinfo
    • finfo_buffer — Retourne des informations à propos d'une chaîne de caractères tampon
    • finfo_close — Ferme une ressource fileinfo
    • finfo_file — Retourne des informations à propos d'un fichier
    • finfo_open — Crée une nouvelle ressource fileinfo
    • finfo_set_flags — Fixe des options de configuration libmagic
    • mime_content_type — Détecte le type de contenu d'un fichier
  • finfo — La classe finfo
    • finfo::buffer — Alias de finfo_buffer()
    • finfo::__construct — Alias de de finfo_open
    • finfo::file — Alias de finfo_file()
    • finfo::set_flags — Alias de finfo_set_flags()


Introduction

Les fonctions dans ce module essaient de savoir le type de contenu et l'encodage d'un fichier en regardant certaines séquences d'octet magique à des positions spécifiques à l'intérieur du fichier. Bien qu'il ne s'agisse pas d'une approche infaillible, la méthode heuristique effectue un très bon travail.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Avant PHP 5.3.0, la bibliothèque magic_open est requise pour bâtir cette extension.


Installation

Cette extension est activée par défaut depuis PHP 5.3.0. Avant cette version, fileinfo était une extension PECL mais n'est plus maintenue en tant que tel. Cependant, les versions avant 5.3+ peuvent toujours utiliser » l'extension PECL non maintenue.

Les utilisateurs Windows doivent inclure la bibliothèque DLL fournie php_fileinfo.dll dans leur php.ini pour activer cette extension.

La bibliothèque libmagic est fournie avec PHP, mais embarque des changements propres pour PHP. Un patch de libmagic nommé libmagic.patch est maintenu et peut être trouvé dans la source de l'extension fileinfo de PHP.

Historique des mises à jour de la bibliothèque embarquée libmagic
Version PHP | Version libmagic | Notes
5.3.2 | 5.03 |
5.3.0 | 5.02 |


Types de ressources

Il y a une ressource utilisée avec l'extension Fileinfo : un descripteur magique de base de données retourné par finfo_open().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FILEINFO_NONE (entier)
Aucun traitement spécial.
FILEINFO_SYMLINK (entier)
Suit les symlinks.
FILEINFO_MIME_TYPE (entier)
Retourne le type mime. Disponible depuis PHP 5.3.0.
FILEINFO_MIME_ENCODING (entier)
Retourne l'encodage mime du fichier. Disponible depuis PHP 5.3.0.
FILEINFO_MIME (entier)
Retourne le type mime et l'encodage mime, tel que décrit par la RFC 2045.
FILEINFO_COMPRESS (entier)
Décompresse les fichiers compressés. Désactivé depuis PHP 5.3.0 en raison des conséquences sur la sécurité des threads.
FILEINFO_DEVICES (entier)
Regarde les contenus des blocs ou les dispositifs spéciaux de caractères.
FILEINFO_CONTINUE (entier)
Retourne toutes les données trouvées, pas seulement la première.
FILEINFO_PRESERVE_ATIME (entier)
Si possible, conserve le temps d'accès au fichier original.
FILEINFO_RAW (entier)
Ne traduit pas les caractères non imprimables en représentation octale \ooo.


Fonctions Fileinfo

Sommaire

  • finfo_buffer — Retourne des informations à propos d'une chaîne de caractères tampon
  • finfo_close — Ferme une ressource fileinfo
  • finfo_file — Retourne des informations à propos d'un fichier
  • finfo_open — Crée une nouvelle ressource fileinfo
  • finfo_set_flags — Fixe des options de configuration libmagic
  • mime_content_type — Détecte le type de contenu d'un fichier


Retourne des informations à propos d'une chaîne de caractères tampon

  • « Fonctions Fileinfo
  • finfo_close »
  • PHP Manual
  • Fonctions Fileinfo
  • Retourne des informations à propos d'une chaîne de caractères tampon

finfo_buffer

finfo::buffer

(PHP 5 >= 5.3.0, PHP 7, PECL fileinfo >= 0.1.0)

finfo_buffer -- finfo::buffer — Retourne des informations à propos d'une chaîne de caractères tampon

Description

Style procédural

string finfo_buffer ( resource $finfo , string $string = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Style orienté objet

public string finfo::buffer ( string $string = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Cette fonction est utilisée pour récupérer des informations à propos de données binaires dans une chaîne de caractères.

Liste de paramètres

finfo

Ressource Fileinfo retournée par finfo_open().

string

Contenu d'un fichier à être vérifié.

options

Une ou une union de plusieurs constantes Fileinfo.

context

Valeurs de retour

Retourne une description textuelle de l'argument string ou FALSE si une erreur s'est produite.

Exemples

Exemple #1 Exemple avec finfo_buffer()

<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

application/x-sh; charset=us-ascii

Voir aussi

  • finfo_file() - Alias de finfo_file()


Ferme une ressource fileinfo

  • « finfo_buffer
  • finfo_file »
  • PHP Manual
  • Fonctions Fileinfo
  • Ferme une ressource fileinfo

finfo_close

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_close — Ferme une ressource fileinfo

Description

bool finfo_close ( resource $finfo )

Cette fonction ferme la ressource ouverte par finfo_open().

Liste de paramètres

finfo

Ressource Fileinfo retournée par finfo_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne des informations à propos d'un fichier

  • « finfo_close
  • finfo_open »
  • PHP Manual
  • Fonctions Fileinfo
  • Retourne des informations à propos d'un fichier

finfo_file

finfo::file

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_file -- finfo::file — Retourne des informations à propos d'un fichier

Description

Style procédural

string finfo_file ( resource $finfo , string $file_name = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Style orienté objet

public string finfo::file ( string $file_name = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Cette fonction est utilisée pour récupérer des informations à propos d'un fichier.

Liste de paramètres

finfo

Ressource Fileinfo retournée par finfo_open().

file_name

Nom d'un fichier à vérifier.

options

Une ou une union de plusieurs constantes Fileinfo.

context

Pour une description de contexts, référez-vous à Fonctions sur les flux.

Valeurs de retour

Retourne une description textuelle du contenu de l'argument file_name ou FALSE si une erreur s'est produite.

Exemples

Exemple #1 Exemple avec finfo_file()

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // Retourne le type mime à l'extension mimetype
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

text/html
image/gif
application/vnd.ms-excel

Voir aussi

  • finfo_buffer() - Alias de finfo_buffer()


Crée une nouvelle ressource fileinfo

  • « finfo_file
  • finfo_set_flags »
  • PHP Manual
  • Fonctions Fileinfo
  • Crée une nouvelle ressource fileinfo

finfo_open

finfo::__construct

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_open -- finfo::__construct — Crée une nouvelle ressource fileinfo

Description

Style procédural

resource finfo_open ([ int $options = FILEINFO_NONE [, string $magic_file = NULL ]] )

Style orienté objet (constructor):

public finfo::__construct ([ int $options = FILEINFO_NONE [, string $magic_file = NULL ]] )

Cette fonction ouvre une base de données magique et retourne sa ressource.

Liste de paramètres

options

Une ou une union de plusieurs constantes Fileinfo.

magic_file

Nom de fichier d'une base de données magique, normalement quelque chose comme /path/to/magic.mime. Si non spécifié, la variable d'environnement MAGIC est utilisée. Si la variable d'environnement n'est pas définie, la base de données magique embarquée à PHP sera utilisée.

Le fait de passer NULL ou une chaîne de caractères vide équivaut à utiliser la valeur par défaut.

Valeurs de retour

(Uniquement en mode procédural) Retourne une ressource de base de données magique en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Le format de la base de données magique a changé en PHP 5.3.11 et 5.4.1. De ce fait, la base de données magique interne a été mise à jour. L'un des plus gros effets de cette mise à jour est que, lors d'une lecture d'un fichier magique ancien, elle échoue. De plus, quelques représentations textuelles de type mimes ont changé, par exemple, pour le monde de PHP "PHP script, ASCII text" est retourné au lieu de "PHP script text".

Note:

Généralement, l'utilisation de la base de données magique embarquée (en laissant les variables d'environnement magic_file et MAGIC non définies) est la meilleure des solutions à moins que vous n'ayez besoin d'une base de données magique spécifique.

Exemples

Exemple #1 Style orienté objet

<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // Retourne le type mime

/* Récupère le mime-type d'un fichier spécifique */
$filename = "/usr/local/something.txt";
echo $finfo->file($filename);

?>

Exemple #2 Style procédural

<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // Retourne le type mime

if (!$finfo) {
    echo "Échec de l'ouverture de la base de données fileinfo";
    exit();
}

/* Récupère le mime-type d'un fichier spécifique */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);

/* Fermeture de la connexion */
finfo_close($finfo);
?>

L'exemple ci-dessus va afficher :

text/plain; charset=us-ascii

Voir aussi

  • finfo_close() - Ferme une ressource fileinfo


Fixe des options de configuration libmagic

  • « finfo_open
  • mime_content_type »
  • PHP Manual
  • Fonctions Fileinfo
  • Fixe des options de configuration libmagic

finfo_set_flags

finfo::set_flags

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_set_flags -- finfo::set_flags — Fixe des options de configuration libmagic

Description

Style procédural

bool finfo_set_flags ( resource $finfo , int $options )

Style orienté objet

public bool finfo::set_flags ( int $options )

Cette fonction fixe diverses options de Fileinfo. Les options peuvent être aussi fixées directement dans finfo_open() ou par d'autres fonctions Fileinfo.

Liste de paramètres

finfo

Ressource Fileinfo retournée par finfo_open().

options

Une ou une union de plusieurs constantes Fileinfo.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Détecte le type de contenu d'un fichier

  • « finfo_set_flags
  • finfo »
  • PHP Manual
  • Fonctions Fileinfo
  • Détecte le type de contenu d'un fichier

mime_content_type

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mime_content_type — Détecte le type de contenu d'un fichier

Description

string mime_content_type ( string $filename )

Retourne le content MIME d'un fichier en utilisant les informations depuis le fichier magic.mime.

Liste de paramètres

filename

Chemin vers le fichier à tester.

Valeurs de retour

Retourne le type de contenu au format MIME, comme text/plain ou application/octet-stream.

Exemples

Exemple #1 Exemple avec mime_content_type()

<?php
echo mime_content_type('php.gif') . "\n";
echo mime_content_type('test.php');
?>

L'exemple ci-dessus va afficher :

image/gif
text/plain

Voir aussi

  • finfo_file() - Alias de finfo_file()
  • finfo_buffer() - Alias de finfo_buffer()


La classe finfo

(PHP 5 >= 5.3.0, PHP 7, PECL fileinfo >= 0.1.0)

Introduction

Cette classe fournit une interface orientée objet aux fonctions fileinfo.

Synopsis de la classe

finfo {
public __construct ([ int $options = FILEINFO_NONE [, string $magic_file = NULL ]] )
public string buffer ( string $string = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )
public string file ( string $file_name = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )
public bool set_flags ( int $options )
}

Sommaire

  • finfo::buffer — Alias de finfo_buffer()
  • finfo::__construct — Alias de de finfo_open
  • finfo::file — Alias de finfo_file()
  • finfo::set_flags — Alias de finfo_set_flags()


Alias de finfo_buffer()

  • « finfo
  • finfo::__construct »
  • PHP Manual
  • finfo
  • Alias de finfo_buffer()

finfo::buffer

(PHP 5 >= 5.3.0, PHP 7, PECL fileinfo >= 0.1.0)

finfo::buffer — Alias de finfo_buffer()

Description

public string finfo::buffer ( string $string = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Cette fonction est un alias de : finfo_buffer()


Alias de de finfo_open

  • « finfo::buffer
  • finfo::file »
  • PHP Manual
  • finfo
  • Alias de de finfo_open

finfo::__construct

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo::__construct — Alias de de finfo_open()

Description

public finfo::__construct ([ int $options = FILEINFO_NONE [, string $magic_file = NULL ]] )

Cette fonction est un alias de : finfo_open()


Alias de finfo_file()

  • « finfo::__construct
  • finfo::set_flags »
  • PHP Manual
  • finfo
  • Alias de finfo_file()

finfo::file

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo::file — Alias de finfo_file()

Description

public string finfo::file ( string $file_name = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Cette fonction est un alias de : finfo_file()


Alias de finfo_set_flags()

  • « finfo::file
  • Système de fichiers »
  • PHP Manual
  • finfo
  • Alias de finfo_set_flags()

finfo::set_flags

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo::set_flags — Alias de finfo_set_flags()

Description

public bool finfo::set_flags ( int $options )

Cette fonction est un alias de : finfo_set_flags()


Système de fichiers

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions sur les systèmes de fichiers
    • basename — Retourne le nom de la composante finale d'un chemin
    • chgrp — Change le groupe d'un fichier
    • chmod — Change le mode du fichier
    • chown — Change le propriétaire du fichier
    • clearstatcache — Efface le cache de stat
    • copy — Copie un fichier
    • delete — Voir unlink ou unset
    • dirname — Renvoie le chemin du dossier parent
    • disk_free_space — Renvoie l'espace disque disponible sur le système de fichiers ou la partition
    • disk_total_space — Retourne la taille d'un dossier ou d'une partition
    • diskfreespace — Alias de disk_free_space
    • fclose — Ferme un fichier
    • feof — Teste la fin du fichier
    • fflush — Envoie tout le contenu généré dans un fichier
    • fgetc — Lit un caractère dans un fichier
    • fgetcsv — Obtient une ligne depuis un pointeur de fichier et l'analyse pour des champs CSV
    • fgets — Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
    • fgetss — Renvoie la ligne courante du fichier et élimine les balises HTML
    • file_exists — Vérifie si un fichier ou un dossier existe
    • file_get_contents — Lit tout un fichier dans une chaîne
    • file_put_contents — Écrit un contenu dans un fichier
    • file — Lit le fichier et renvoie le résultat dans un tableau
    • fileatime — Renvoie la date à laquelle le fichier a été accédé pour la dernière fois
    • filectime — Renvoie la date de dernière modification de l'inode d'un fichier
    • filegroup — Lire le nom du groupe
    • fileinode — Lit le numéro d'inode du fichier
    • filemtime — Lit la date de dernière modification du fichier
    • fileowner — Lit l'identifiant du propriétaire d'un fichier
    • fileperms — Lit les droits d'un fichier
    • filesize — Lit la taille d'un fichier
    • filetype — Retourne le type de fichier
    • flock — Verrouille le fichier
    • fnmatch — Teste un nom de fichier au moyen d'un masque de recherche
    • fopen — Ouvre un fichier ou une URL
    • fpassthru — Affiche le reste du fichier
    • fputcsv — Formate une ligne en CSV et l'écrit dans un fichier
    • fputs — Alias de fwrite
    • fread — Lecture du fichier en mode binaire
    • fscanf — Analyse un fichier en fonction d'un format
    • fseek — Modifie la position du pointeur de fichier
    • fstat — Lit les informations sur un fichier à partir d'un pointeur de fichier
    • ftell — Renvoie la position courante du pointeur de fichier
    • ftruncate — Tronque un fichier
    • fwrite — Écrit un fichier en mode binaire
    • glob — Recherche des chemins qui vérifient un masque
    • is_dir — Indique si le fichier est un dossier
    • is_executable — Indique si le fichier est exécutable
    • is_file — Indique si le fichier est un véritable fichier
    • is_link — Indique si le fichier est un lien symbolique
    • is_readable — Indique si un fichier existe et est accessible en lecture
    • is_uploaded_file — Indique si le fichier a été téléchargé par HTTP POST
    • is_writable — Indique si un fichier est accessible en écriture
    • is_writeable — Alias de is_writable
    • lchgrp — Change l'appartenance du groupe d'un lien symbolique
    • lchown — Change le propriétaire d'un lien symbolique
    • link — Crée un lien
    • linkinfo — Renvoie les informations d'un lien
    • lstat — Retourne les informations sur un fichier ou un lien symbolique
    • mkdir — Crée un dossier
    • move_uploaded_file — Déplace un fichier téléchargé
    • parse_ini_file — Analyse un fichier de configuration
    • parse_ini_string — Analyse une chaîne de configuration
    • pathinfo — Retourne des informations sur un chemin système
    • pclose — Ferme un processus de pointeur de fichier
    • popen — Crée un processus de pointeur de fichier
    • readfile — Affiche un fichier
    • readlink — Renvoie le contenu d'un lien symbolique
    • realpath_cache_get — Récupère les entrées du cache realpath
    • realpath_cache_size — Récupère la taille du cache realpath
    • realpath — Retourne le chemin canonique absolu
    • rename — Renomme un fichier ou un dossier
    • rewind — Replace le pointeur de fichier au début
    • rmdir — Efface un dossier
    • set_file_buffer — Alias de stream_set_write_buffer
    • stat — Renvoie les informations à propos d'un fichier
    • symlink — Crée un lien symbolique
    • tempnam — Crée un fichier avec un nom unique
    • tmpfile — Crée un fichier temporaire
    • touch — Modifie la date de modification et de dernier accès d'un fichier
    • umask — Change le "umask" courant
    • unlink — Efface un fichier


Introduction

Aucune bibliothèque externe n'est requise pour avoir cette extension, mais si vous voulez le support des grands fichiers LFS sur Linux, vous devez avoir une version récente de gclib et vous devrez compiler PHP avec les options suivantes : -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration le système de fichiers
Nom | Défaut | Modifiable | Historique
allow_url_fopen | "1" | PHP_INI_ALL | PHP_INI_ALL dans PHP <= 4.3.4. PHP_INI_SYSTEM en PHP < 6. Disponible depuis PHP 4.0.4.
allow_url_include | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.2.0.
user_agent | NULL | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
default_socket_timeout | "60" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
from | "" | PHP_INI_ALL |
auto_detect_line_endings | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

allow_url_fopen booléen

Cette option active les versions étendues des fonctions d'accès aux fichiers, qui savent exploiter les URL. Les extensions par défaut permettent d'accéder aux fichiers distants avec les protocoles FTP ou HTTP. Certaines extensions comme zlib, peuvent ajouter d'autres fonctionnalités.

Note:

Cette option a été introduite immédiatement après la publication de la version 4.0.3. Pour les versions jusqu'à la, vous ne pouvez désactiver cette fonctionnalité qu'au moment de la compilation, avec l'option --disable-url-fopen-wrapper .

Avertissement

Sous Windows, dans les versions antérieures à la version 4.3, les fonctions suivantes ne supportent pas l'accès aux fichiers distants : include, include_once, require, require_once et les fonctions imagecreatefromXXX de l'extension Fonctions GD et images.

allow_url_include booléen

Cette option permet l'utilisation des gestionnaires d'URL avec les fonctions suivantes : include, include_once, require, require_once.

Note:

Ce paramètre nécessite que le paramètre allow_url_fopen soit activé avec "on".

user_agent string

Définit le type d'"user agent" (Définition du navigateur web) utilisé par PHP.

default_socket_timeout entier

Durée d'expiration (en secondes) pour les flots basés sur les sockets.

Note: Cette option de configuration a été introduite en PHP 4.3.

from string

L'adresse mail à utiliser pour les connexions FTP non-autorisées ou encore pour fournir une valeur au champ "From" sur une connexion HTTP.

auto_detect_line_endings booléen

Lorsque cette option est activée, PHP va examiner les données lues par fgets() et file() pour voir si le fichier utilise les conventions de ligne de Unix, MS-Dos ou Macintosh.

Cela permet à PHP de fonctionner avec des systèmes Macintosh, mais par défaut, cette option est désactivée, car cette détection impose un légère pénalité en temps de traitement, mais aussi parce que ceux qui utilisent les retours chariots comme séparateurs auront des soucis de compatibilité.

Note: Cette option de configuration a été introduite en PHP 4.3.


Types de ressources

Le système de fichiers utilise des flux pour leur type de ressource. Les flux sont documentés dans leur propre chapitre.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

GLOB_BRACE (entier)
GLOB_ONLYDIR (entier)
SEEK_END (entier)
LOCK_SH (entier)
LOCK_EX (entier)
LOCK_UN (entier)
LOCK_NB (entier)
GLOB_BRACE (entier)
GLOB_ONLYDIR (entier)
GLOB_MARK (entier)
GLOB_NOSORT (entier)
GLOB_NOCHECK (entier)
GLOB_NOESCAPE (entier)
GLOB_AVAILABLE_FLAGS (entier)
PATHINFO_DIRNAME (entier)
PATHINFO_BASENAME (entier)
PATHINFO_EXTENSION (entier)
PATHINFO_FILENAME (entier)
Depuis PHP 5.2.0.
FILE_USE_INCLUDE_PATH (entier)
Cherche filename dans include_path (depuis PHP 5).
FILE_NO_DEFAULT_CONTEXT (entier)
FILE_APPEND (entier)
Ajoute du contenu dans un fichier existant.
FILE_IGNORE_NEW_LINES (entier)
Enlève les caractères EOL (depuis PHP 5).
FILE_SKIP_EMPTY_LINES (entier)
Enlève les lignes vides (depuis PHP 5).
FILE_BINARY (entier)

Mode binaire (depuis PHP 5.2.7).

Note:

Cette constante n'a aucun effet et n'est présente que pour assurer une compatibilité ascendante.

FILE_TEXT (entier)

Mode texte (depuis PHP 5.2.7).

Note:

Cette constante n'a aucun effet et n'est présente que pour assurer une compatibilité ascendante.

INI_SCANNER_NORMAL (entier)
Mode d'analyse normale des directives INI (depuis PHP 5.3).
INI_SCANNER_RAW (entier)
Mode d'analyse brut des directives INI (depuis PHP 5.3).
INI_SCANNER_TYPED (integer)
Mode scanner typé INI (depuis PHP 5.6.1).
FNM_NOESCAPE (entier)
Désactive la protection des antislash.
FNM_PATHNAME (entier)
Un slash dans la chaîne ne correspond qu'au slash final du motif.
FNM_PERIOD (entier)
Le point initial dans la chaîne doit correspondre exactement au point dans le motif.
FNM_CASEFOLD (entier)
Recherche sans casse. Une partie de l'extension GNU.


Fonctions sur les systèmes de fichiers

Voir aussi

Pour les fonctions connexes, voyez aussi la section sur les accès aux Dossiers et sur les exécutions de programme.

Pour une liste et une explication sur les différents outils d'accès aux fichiers distants, voyez aussi Liste des protocoles et des gestionnaires supportés.

Sommaire

  • basename — Retourne le nom de la composante finale d'un chemin
  • chgrp — Change le groupe d'un fichier
  • chmod — Change le mode du fichier
  • chown — Change le propriétaire du fichier
  • clearstatcache — Efface le cache de stat
  • copy — Copie un fichier
  • delete — Voir unlink ou unset
  • dirname — Renvoie le chemin du dossier parent
  • disk_free_space — Renvoie l'espace disque disponible sur le système de fichiers ou la partition
  • disk_total_space — Retourne la taille d'un dossier ou d'une partition
  • diskfreespace — Alias de disk_free_space
  • fclose — Ferme un fichier
  • feof — Teste la fin du fichier
  • fflush — Envoie tout le contenu généré dans un fichier
  • fgetc — Lit un caractère dans un fichier
  • fgetcsv — Obtient une ligne depuis un pointeur de fichier et l'analyse pour des champs CSV
  • fgets — Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fgetss — Renvoie la ligne courante du fichier et élimine les balises HTML
  • file_exists — Vérifie si un fichier ou un dossier existe
  • file_get_contents — Lit tout un fichier dans une chaîne
  • file_put_contents — Écrit un contenu dans un fichier
  • file — Lit le fichier et renvoie le résultat dans un tableau
  • fileatime — Renvoie la date à laquelle le fichier a été accédé pour la dernière fois
  • filectime — Renvoie la date de dernière modification de l'inode d'un fichier
  • filegroup — Lire le nom du groupe
  • fileinode — Lit le numéro d'inode du fichier
  • filemtime — Lit la date de dernière modification du fichier
  • fileowner — Lit l'identifiant du propriétaire d'un fichier
  • fileperms — Lit les droits d'un fichier
  • filesize — Lit la taille d'un fichier
  • filetype — Retourne le type de fichier
  • flock — Verrouille le fichier
  • fnmatch — Teste un nom de fichier au moyen d'un masque de recherche
  • fopen — Ouvre un fichier ou une URL
  • fpassthru — Affiche le reste du fichier
  • fputcsv — Formate une ligne en CSV et l'écrit dans un fichier
  • fputs — Alias de fwrite
  • fread — Lecture du fichier en mode binaire
  • fscanf — Analyse un fichier en fonction d'un format
  • fseek — Modifie la position du pointeur de fichier
  • fstat — Lit les informations sur un fichier à partir d'un pointeur de fichier
  • ftell — Renvoie la position courante du pointeur de fichier
  • ftruncate — Tronque un fichier
  • fwrite — Écrit un fichier en mode binaire
  • glob — Recherche des chemins qui vérifient un masque
  • is_dir — Indique si le fichier est un dossier
  • is_executable — Indique si le fichier est exécutable
  • is_file — Indique si le fichier est un véritable fichier
  • is_link — Indique si le fichier est un lien symbolique
  • is_readable — Indique si un fichier existe et est accessible en lecture
  • is_uploaded_file — Indique si le fichier a été téléchargé par HTTP POST
  • is_writable — Indique si un fichier est accessible en écriture
  • is_writeable — Alias de is_writable
  • lchgrp — Change l'appartenance du groupe d'un lien symbolique
  • lchown — Change le propriétaire d'un lien symbolique
  • link — Crée un lien
  • linkinfo — Renvoie les informations d'un lien
  • lstat — Retourne les informations sur un fichier ou un lien symbolique
  • mkdir — Crée un dossier
  • move_uploaded_file — Déplace un fichier téléchargé
  • parse_ini_file — Analyse un fichier de configuration
  • parse_ini_string — Analyse une chaîne de configuration
  • pathinfo — Retourne des informations sur un chemin système
  • pclose — Ferme un processus de pointeur de fichier
  • popen — Crée un processus de pointeur de fichier
  • readfile — Affiche un fichier
  • readlink — Renvoie le contenu d'un lien symbolique
  • realpath_cache_get — Récupère les entrées du cache realpath
  • realpath_cache_size — Récupère la taille du cache realpath
  • realpath — Retourne le chemin canonique absolu
  • rename — Renomme un fichier ou un dossier
  • rewind — Replace le pointeur de fichier au début
  • rmdir — Efface un dossier
  • set_file_buffer — Alias de stream_set_write_buffer
  • stat — Renvoie les informations à propos d'un fichier
  • symlink — Crée un lien symbolique
  • tempnam — Crée un fichier avec un nom unique
  • tmpfile — Crée un fichier temporaire
  • touch — Modifie la date de modification et de dernier accès d'un fichier
  • umask — Change le "umask" courant
  • unlink — Efface un fichier


Retourne le nom de la composante finale d'un chemin

  • « Fonctions sur les systèmes de fichiers
  • chgrp »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Retourne le nom de la composante finale d'un chemin

basename

(PHP 4, PHP 5, PHP 7)

basename — Retourne le nom de la composante finale d'un chemin

Description

string basename ( string $path [, string $suffix ] )

Prend en paramètre path, le chemin d'un fichier ou d'un répertoire et en fournit le nom de la dernière composante.

Liste de paramètres

path

Un chemin.

Sous Windows, les caractères (/) et antislash (\) sont utilisés comme séparateurs de dossier. Sous les autres OS, seul le caractère slash (/) est utilisé.

suffix

Si suffix est fourni, le suffixe sera aussi supprimé.

Valeurs de retour

Retourne le nom de base du chemin path donné.

Exemples

Exemple #1 Exemple avec basename()

<?php
echo "1) ".basename("/etc/sudoers.d", ".d").PHP_EOL;
echo "2) ".basename("/etc/sudoers.d").PHP_EOL;
echo "3) ".basename("/etc/passwd").PHP_EOL;
echo "4) ".basename("/etc/").PHP_EOL;
echo "5) ".basename(".").PHP_EOL;
echo "6) ".basename("/");
?>

L'exemple ci-dessus va afficher :

1) sudoers
2) sudoers.d
3) passwd
4) etc
5) .
6)

Notes

Note:

basename() agit de manière naïve et n'a pas connaissance du système de fichiers sous-jacent ou des composantes d'un chemin telles que "..".

Note:

basename() est sensible à la locale, donc si le chemin possède des caractères multi-octets, la locale qui convient doit être enregistrée au moyen de la fonction setlocale().

Voir aussi

  • dirname() - Renvoie le chemin du dossier parent
  • pathinfo() - Retourne des informations sur un chemin système


Change le groupe d'un fichier

  • « basename
  • chmod »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Change le groupe d'un fichier

chgrp

(PHP 4, PHP 5, PHP 7)

chgrp — Change le groupe d'un fichier

Description

bool chgrp ( string $filename , mixed $group )

Essaie de remplacer le groupe propriétaire courant du fichier filename par group.

Seul le super-utilisateur (root) peut changer le groupe propriétaire d'un fichier arbitrairement; les utilisateurs classiques ne peuvent changer le groupe propriétaire d'un fichier que si l'utilisateur propriétaire du fichier est membre du groupe.

Liste de paramètres

filename

Chemin vers le fichier.

group

Un nom ou un numéro de groupe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Modification de groupe d'un fichier

<?php
$filename = 'shared_file.txt';
$format = "%s's Group ID @ %s: %d\n";
printf($format, $filename, date('r'), filegroup($filename));
chgrp($filename, 8);
clearstatcache(); // ne pas mettre en cache le résultat de filegroup()
printf($format, $filename, date('r'), filegroup($filename));
?>

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

  • chown() - Change le propriétaire du fichier
  • chmod() - Change le mode du fichier


Change le mode du fichier

  • « chgrp
  • chown »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Change le mode du fichier

chmod

(PHP 4, PHP 5, PHP 7)

chmod — Change le mode du fichier

Description

bool chmod ( string $filename , int $mode )

Remplace le mode du fichier filename par le mode mode.

Liste de paramètres

filename

Chemin vers le fichier.

mode

Il est à noter que le mode mode est considéré comme un nombre en notation octale, aussi, afin de vous en assurer, vous pouvez préfixer le mode mode par un zéro. Les chaînes comme "g+w" ne fonctionneront pas correctement :

<?php
chmod("/somedir/somefile", 755);   // notation décimale : probablement faux
chmod("/somedir/somefile", "u+rwx,go+rx"); // chaîne : incorrect
chmod("/somedir/somefile", 0755);  // notation octale : valeur du mode correcte
?>

Le paramètre mode est constitué de trois valeurs octales qui spécifient les droits pour le propriétaire, le groupe du propriétaire et les autres, respectivement. Chaque composant peut être calculé en ajoutant les droits désirés. Le chiffre 1 donne les droits d'exécution, le chiffre 2 les droits d'écriture et le chiffre 4 les droits de lecture. Ajoutez simplement ces nombres pour spécifier les droits voulus. Vous pouvez aussi lire le manuel des systèmes Unix avec man 1 chmod et man 2 chmod.

<?php
// Lecture et écriture pour le propriétaire, rien pour les autres
chmod("/somedir/somefile", 0600);

// Lecture et écriture pour le propriétaire, lecture pour les autres
chmod("/somedir/somefile", 0644);

// Tout pour le propriétaire, lecture et exécution pour les autres
chmod("/somedir/somefile", 0755);

// Tout pour le propriétaire, lecture exécution pour le groupe, rien pour les autres
chmod("/somedir/somefile", 0750);
?>

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

L'utilisateur courant est l'utilisateur avec lequel PHP fonctionne. Il est probablement différent de l'utilisateur que vous utilisez en mode Shell ou FTP. Le mode ne peut être modifié que par l'utilisateur à qui appartient le fichier sur la plupart des systèmes.

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note:

Lorsque le safe mode est activé, PHP vérifie si les fichiers et dossiers que vous allez utiliser ont le même UID (propriétaire) que le script qui est en cours d'exécution. De plus, vous ne pouvez pas modifier les SUID, SGID et sticky bits.

Voir aussi

  • chown() - Change le propriétaire du fichier
  • chgrp() - Change le groupe d'un fichier
  • fileperms() - Lit les droits d'un fichier
  • stat() - Renvoie les informations à propos d'un fichier


Change le propriétaire du fichier

  • « chmod
  • clearstatcache »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Change le propriétaire du fichier

chown

(PHP 4, PHP 5, PHP 7)

chown — Change le propriétaire du fichier

Description

bool chown ( string $filename , mixed $user )

Change le propriétaire du fichier filename en user. Seul le super-utilisateur (root) peut changer arbitrairement le propriétaire d'un fichier.

Liste de paramètres

filename

Chemin vers le fichier.

user

Un nom ou un numéro d'utilisateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec chown()

<?php

// Nom du fichier et nom d'utilisateur à utiliser
$file_name= "foo.php";
$path = "/home/sites/php.net/public_html/sandbox/" . $file_name ;
$user_name = "root";

// Définit l'utilisateur
chown($path, $user_name);

// Vérification du résultat
$stat = stat($path);
print_r(posix_getpwuid($stat['uid']));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name] => root
    [passwd] => x
    [uid] => 0
    [gid] => 0
    [gecos] => root
    [dir] => /root
    [shell] => /bin/bash
)

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

  • chmod() - Change le mode du fichier
  • chgrp() - Change le groupe d'un fichier


Efface le cache de stat

  • « chown
  • copy »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Efface le cache de stat

clearstatcache

(PHP 4, PHP 5, PHP 7)

clearstatcache — Efface le cache de stat()

Description

void clearstatcache ([ bool $clear_realpath_cache = false [, string $filename ]] )

L'appel à la fonction stat() ou lstat() est relativement coûteux en termes de temps d'exécution. Pour cela, le résultat du dernier appel à l'une des fonctions de statut, (voir la liste ci-dessous), est sauvegardé pour réutilisation ultérieure. Si vous voulez forcer la vérification du statut d'un fichier, dans le cas où le fichier aurait pu être modifié ou aurait disparu, vous devez utiliser la fonction clearstatcache() afin d'effacer de la mémoire les résultats du dernier appel à la fonction.

Sachez que PHP ne met pas en cache les informations concernant un fichier inexistant. Si vous appelez file_exists() sur un fichier qui n'existe pas, la fonction retournera FALSE jusqu'à ce que vous créiez le fichier. Si vous créez le fichier, la fonction retournera TRUE même si vous effacez le fichier.

Note:

Cette fonction met en cache des informations sur les fichiers. Vous n'avez donc besoin d'appeler clearstatcache() que si vous faites des opérations multiples sur le dossier, et que vous voulez avoir une version récente des informations.

Les fonctions affectées sont :
stat(),
lstat(),
file_exists(),
is_writable(),
is_readable(),
is_executable(),
is_file(),
is_dir(),
is_link(),
filectime(),
fileatime(),
filemtime(),
fileinode(),
filegroup(),
fileowner(),
filesize(),
filetype(), et
fileperms().

Liste de paramètres

clear_realpath_cache

Si l'on doit ou non vider le cache réel.

filename

Nettoie le cache réel ainsi que le cache stat d'un fichier spécifique. Ne peut être utilisé que si le paramètre clear_realpath_cache vaut TRUE.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
5.3.0 | Ajout des paramètres optionnels clear_realpath_cache et filename.

Exemples

Exemple #1 Exemple avec clearstatcache()

<?php
$file = 'output_log.txt';

function get_owner($file)
{
    $stat = stat($file);
    $user = posix_getpwuid($stat['uid']);
    return $user['name'];
}

$format = "UID @ %s: %s\n";

printf($format, date('r'), get_owner($file));

chown($file, 'ross');
printf($format, date('r'), get_owner($file));

clearstatcache();
printf($format, date('r'), get_owner($file));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: ross


Copie un fichier

  • « clearstatcache
  • delete »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Copie un fichier

copy

(PHP 4, PHP 5, PHP 7)

copy — Copie un fichier

Description

bool copy ( string $source , string $dest [, resource $context ] )

Fait une copie du fichier source vers le fichier dest.

Si vous souhaitez déplacer un fichier, utilisez la fonction rename().

Liste de paramètres

source

Chemin vers le fichier source.

dest

Le chemin de destination. Si dest est une URL, la copie peut échouer si ce protocole ne supporte pas l'écrasement de fichiers existants.

Avertissement

Si le fichier de destination dest existe déjà, il sera écrasé.

context

Une ressource de contexte valide, créée par la fonction stream_context_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.4 | Modifie le paramètre context pour avoir un effet. Précédemment, le paramètre context était ignoré.
5.3.0 | Ajout du support du contexte.
4.3.0 | Les paramètres source et dest peuvent désormais être des URL si le gestionnaire de fichiers distants a été activé. Voir la fonction fopen() pour plus de détails.

Exemples

Exemple #1 Exemple avec copy()

<?php
$file = 'example.txt';
$newfile = 'example.txt.bak';

if (!copy($file, $newfile)) {
    echo "La copie $file du fichier a échoué...\n";
}
?>

Voir aussi

  • move_uploaded_file() - Déplace un fichier téléchargé
  • rename() - Renomme un fichier ou un dossier
  • La section du manuel concernant la gestion des téléchargements de fichiers


Voir unlink ou unset

  • « copy
  • dirname »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Voir unlink ou unset

delete

delete — Voir unlink() ou unset()

Description

Ceci est une page d'entrée du manuel pour ceux qui recherchent la fonction unlink() ou unset() au mauvais endroit.

Voir aussi

  • unlink() - Efface un fichier
  • unset() - Détruit une variable


Renvoie le chemin du dossier parent

  • « delete
  • disk_free_space »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Renvoie le chemin du dossier parent

dirname

(PHP 4, PHP 5, PHP 7)

dirname — Renvoie le chemin du dossier parent

Description

string dirname ( string $path [, int $levels = 1 ] )

Renvoie le chemin parent d'un chemin représentant un fichier ou un dossier, qui correspond à levels niveau(x) plus haut que le dossier courant.

Liste de paramètres

path

Un chemin.

Sous Windows, les slash (/) et antislash (\) sont utilisés comme séparateurs de dossier. Dans les autres environnements, seul le slash (/) est utilisé.

levels

Le nombre de dossiers parents plus haut.

Doit être un entier supérieur à 0.

Valeurs de retour

Retourne le dossier parent du chemin. S'il n'y a pas de slash dans le chemin path, un point ('.') sera retourné, indiquant le dossier courant. Sinon, la chaîne retournée sera le chemin path dont on aura supprimé tous les /component.

Historique

Version | Description
7.0.0 | Ajout du paramètre optionnel levels.
5.0.0 | dirname() gère maintenant les données binaires.

Exemples

Exemple #1 Exemple avec dirname()

<?php
echo dirname("/etc/passwd") . PHP_EOL;
echo dirname("/etc/") . PHP_EOL;
echo dirname(".") . PHP_EOL;
echo dirname("/usr/local/lib", 2);

L'exemple ci-dessus va afficher quelque chose de similaire à :

/etc
/ (ou \ sous Windows)
.
/usr

Notes

Note:

dirname() agit naïvement sur la chaine en entrée et n'est pas au courant du système de fichiers courant ou d'éventuels composantes comme "..".

Note:

dirname() est sensible à la locale, donc si le chemin possède des caractères multi-octets, la locale qui convient doit être enregistrée au moyen de la fonction setlocale().

Note:

Depuis PHP 4.3.0, cette fonction retournera toujours un slash ou un point dans les cas où l'ancienne version retournait une chaîne vide.

Voici des exemples exposant ce comportement :

<?php

//Avant PHP 4.3.0
dirname('c:/'); // Retourné : '.'

//Après PHP 4.3.0
dirname('c:/x'); // Retourné : 'c:\'
dirname('c:/Temp/x'); // Retourné : 'c:/Temp'
dirname('/x'); // Retourné : '\'

?>

Voir aussi

  • basename() - Retourne le nom de la composante finale d'un chemin
  • pathinfo() - Retourne des informations sur un chemin système
  • realpath() - Retourne le chemin canonique absolu


Renvoie l'espace disque disponible sur le système de fichiers ou la partition

  • « dirname
  • disk_total_space »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Renvoie l'espace disque disponible sur le système de fichiers ou la partition

disk_free_space

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

disk_free_space — Renvoie l'espace disque disponible sur le système de fichiers ou la partition

Description

float disk_free_space ( string $directory )

Renvoie l'espace disque disponible dans le répertoire ou la partition.

Liste de paramètres

directory

Un dossier du système de fichiers ou une partition d'un disque.

Note:

Si vous fournissez un fichier au lieu d'un dossier, le comportement de cette fonction peut être aléatoire, suivant le système d'exploitation et les versions de PHP.

Valeurs de retour

Retourne le nombre d'octets disponible, sous la forme d'un nombre décimal ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec disk_free_space()

<?php
// $df contient le nombre d'octets libres sur "/"
$df = disk_free_space("/");

// Sous Windows:
$df_c = disk_free_space("C:");
$df_d = disk_free_space("D:");
?>

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Voir aussi

  • disk_total_space() - Retourne la taille d'un dossier ou d'une partition


Retourne la taille d'un dossier ou d'une partition

  • « disk_free_space
  • diskfreespace »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Retourne la taille d'un dossier ou d'une partition

disk_total_space

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

disk_total_space — Retourne la taille d'un dossier ou d'une partition

Description

float disk_total_space ( string $directory )

Lit récursivement toutes les tailles du dossier directory et retourne la somme en octets.

Liste de paramètres

directory

Un dossier du système de fichiers ou la partition d'un disque.

Valeurs de retour

Retourne la taille en octets, sous la forme d'un nombre décimal ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec disk_total_space()

<?php
// $ds contient le nombre d'octets du dossier "/"
$ds = disk_total_space("/");

// Sous Windows :
$ds = disk_total_space("C:");
$ds = disk_total_space("D:");
?>

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Voir aussi

  • disk_free_space() - Renvoie l'espace disque disponible sur le système de fichiers ou la partition


Alias de disk_free_space

  • « disk_total_space
  • fclose »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Alias de disk_free_space

diskfreespace

(PHP 4, PHP 5, PHP 7)

diskfreespace — Alias de disk_free_space()

Description

Cette fonction est un alias de : disk_free_space().


Ferme un fichier

  • « diskfreespace
  • feof »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Ferme un fichier

fclose

(PHP 4, PHP 5, PHP 7)

fclose — Ferme un fichier

Description

bool fclose ( resource $handle )

Ferme le fichier représenté par le pointeur handle.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et doit avoir été correctement ouvert par la fonction fopen() ou la fonction fsockopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fclose()

<?php

$handle = fopen('somefile.txt', 'r');

fclose($handle);

?>

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • fsockopen() - Ouvre un socket de connexion Internet ou Unix


Teste la fin du fichier

  • « fclose
  • fflush »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Teste la fin du fichier

feof

(PHP 4, PHP 5, PHP 7)

feof — Teste la fin du fichier

Description

bool feof ( resource $handle )

Teste la fin du fichier.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

Valeurs de retour

Retourne TRUE si le pointeur handle est à la fin du fichier ou si une erreur survient, sinon, retourne FALSE.

Notes

Avertissement

Si une connexion ouverte avec fsockopen() n'est pas fermée par le serveur, feof() se bloquera. Pour contourner ce comportement, reportez-vous à l'exemple ci-dessous :

Exemple #1 Gestion des délais d'attente dépassés feof()

<?php
function safe_feof($fp, &$start = NULL) {
 $start = microtime(true);

 return feof($fp);
}

/* Assumons que $fp a été précédemment ouvert par fsockopen() */

$start = NULL;
$timeout = ini_get('default_socket_timeout');

while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
 /* Gestion */
}
?>

Avertissement

Si le pointeur de fichier passé n'est pas valide, vous obtiendrez une boucle infinie car feof() échouera à retourner TRUE.

Exemple #2 Exemple avec feof() et un pointeur de fichier invalide

<?php
// Si le fichier ne peut être lu ou n'existe pas, la fonction fopen retourne FALSE
$file = @fopen("no_such_file", "r");

// FALSE issu de fopen emmetra une alerte et fera quel'on aura une boucle infinie ici
while (!feof($file)) {
}

fclose($file);
?>


Envoie tout le contenu généré dans un fichier

  • « feof
  • fgetc »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Envoie tout le contenu généré dans un fichier

fflush

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

fflush — Envoie tout le contenu généré dans un fichier

Description

bool fflush ( resource $handle )

Force l'écriture de toutes les données bufferisées dans le fichier désigné par handle.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Écriture d'un fichier en utilisant fflush()

<?php
$filename = 'bar.txt';

$file = fopen($filename, 'r+');
rewind($file);
fwrite($file, 'Foo');
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
?>

Voir aussi

  • clearstatcache() - Efface le cache de stat
  • fwrite() - Écrit un fichier en mode binaire


Lit un caractère dans un fichier

  • « fflush
  • fgetcsv »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Lit un caractère dans un fichier

fgetc

(PHP 4, PHP 5, PHP 7)

fgetc — Lit un caractère dans un fichier

Description

string fgetc ( resource $handle )

Lit un caractère dans un fichier.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

Valeurs de retour

Retourne une chaîne contenant un seul caractère, lu depuis le fichier pointé par handle. Retourne FALSE à la fin du fichier.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple avec fgetc()

<?php
$fp = fopen('somefile.txt', 'r');
if (!$fp) {
    echo 'Impossible d\'ouvrir le fichier somefile.txt';
}
while (false !== ($char = fgetc($fp))) {
    echo "$char\n";
}
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fopen() - Ouvre un fichier ou une URL
  • popen() - Crée un processus de pointeur de fichier
  • fsockopen() - Ouvre un socket de connexion Internet ou Unix
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier


Obtient une ligne depuis un pointeur de fichier et l'analyse pour des champs CSV

  • « fgetc
  • fgets »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Obtient une ligne depuis un pointeur de fichier et l'analyse pour des champs CSV

fgetcsv

(PHP 4, PHP 5, PHP 7)

fgetcsv — Obtient une ligne depuis un pointeur de fichier et l'analyse pour des champs CSV

Description

array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\" ]]]] )

Similaire à fgets() mais fgetcsv() analyse la ligne qu'il lit et recherche les champs CSV, qu'il va retourner dans un tableau les contenant.

Liste de paramètres

handle

Un pointeur valide sur un fichier ouvert avec fopen(), popen() ou fsockopen().

length

Doit être plus grand que la plus grande ligne (en terme de caractères) à lire dans le fichier (y compris le caractère de fin de ligne). Ce paramètre est optionnel depuis PHP 5. Omettre ce paramètre (ou le définir à 0 en PHP 5.1.0 et suivant) fait que la longueur maximale de la ligne n'est pas limitée, ce qui est légèrement plus lent.

delimiter

Le paramètre optionnel delimiter définit le séparateur de champ (un seul caractère).

enclosure

Le paramètre optionnel enclosure définit le caractère d'encadrement de texte (un seul caractère).

escape

Le paramètre optionnel escape définit le caractère d'échappement (un seul caractère).

Valeurs de retour

Retourne un tableau indexé contenant les champs lus.

Note:

Une ligne vide dans un fichier CSV sera retournée sous la forme d'un tableau contenant la valeur NULL et ne sera pas traitée comme une erreur.

Note: Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

fgetcsv() retourne NULL si un paramètre handle invalide est fourni ou FALSE en cas d'autres erreurs, y compris la fin du fichier.

Historique

Version | Description
5.3.0 | Le paramètre escape a été ajouté.
5.1.0 | Le paramètre length est maintenant optionnel. Par défaut, vaut 0, ce qui signifie qu'il n'y a aucune limite de longueur.
4.3.5 | fgetcsv() gère désormais les données binaires.

Exemples

Exemple #1 Lit et affiche le contenu d'un fichier CSV

<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num champs à la ligne $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}
?>

Notes

Note:

La définition des locales entre en jeu avec cette fonction. Si LANG vaut, e.g. en_US.UTF-8, les fichiers encodés sur un octet sont mal lus par cette fonction.

Voir aussi

  • str_getcsv() - Analyse une chaîne de caractères CSV dans un tableau
  • explode() - Coupe une chaîne en segments
  • file() - Lit le fichier et renvoie le résultat dans un tableau
  • pack() - Compacte des données dans une chaîne binaire
  • fputcsv() - Formate une ligne en CSV et l'écrit dans un fichier


Récupère la ligne courante sur laquelle se trouve le pointeur du fichier

  • « fgetcsv
  • fgetss »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Récupère la ligne courante sur laquelle se trouve le pointeur du fichier

fgets

(PHP 4, PHP 5, PHP 7)

fgets — Récupère la ligne courante sur laquelle se trouve le pointeur du fichier

Description

string fgets ( resource $handle [, int $length ] )

Récupère la ligne courante sur laquelle se trouve le pointeur du fichier.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

length

Lit jusqu'à la taille length - 1 octet depuis le pointeur de fichier handle, ou bien la fin du fichier, ou une nouvelle ligne (qui est inclue dans la valeur retournée), ou encore un EOF (celui qui arrive en premier). Si aucune longueur n'est fournie, la fonction lira le flux jusqu'à la fin de la ligne.

Note:

Jusqu'en PHP 4.3.0, le fait d'omettre ce paramètre fait que la fonction lira 1024 octets de la ligne. Si la majorité des lignes du fichier dépassent les 8 ko, il est plus efficace pour votre script de spécifier ce paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant les length premiers caractères, moins 1 octet depuis le pointeur de fichier handle. FALSE est retourné s'il n'y a plus de données à lire.

Si une erreur survient, la fonction retourne FALSE.

Historique

Version | Description
4.3.0 | fgets() est compatible avec les données binaires.

Exemples

Exemple #1 Lecture d'un fichier ligne par ligne

<?php
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        echo $buffer;
    }
    if (!feof($handle)) {
        echo "Erreur: fgets() a échoué\n";
    }
    fclose($handle);
}
?>

Notes

Note: Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

Note:

Les programmeurs habitués à la programmation 'C' noteront que fgets() ne se comporte pas comme son équivalent C lors de la rencontre de la fin du fichier.

Voir aussi

  • fgetss() - Renvoie la ligne courante du fichier et élimine les balises HTML
  • fread() - Lecture du fichier en mode binaire
  • fgetc() - Lit un caractère dans un fichier
  • stream_get_line() - Lit une ligne dans un flux
  • fopen() - Ouvre un fichier ou une URL
  • popen() - Crée un processus de pointeur de fichier
  • fsockopen() - Ouvre un socket de connexion Internet ou Unix
  • stream_set_timeout() - Configure la durée d'expiration d'un flux


Renvoie la ligne courante du fichier et élimine les balises HTML

  • « fgets
  • file_exists »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Renvoie la ligne courante du fichier et élimine les balises HTML

fgetss

(PHP 4, PHP 5, PHP 7)

fgetss — Renvoie la ligne courante du fichier et élimine les balises HTML

Description

string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )

Identique à fgets(), sauf que la fonction fgetss() supprime tous les octets nuls, toutes les balises HTML et PHP qu'il trouve dans le texte lu.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

length

Taille des données à récupérer.

allowable_tags

Vous pouvez utiliser ce paramètre optionnel pour spécifier les balises qui ne doivent pas être supprimées.

Valeurs de retour

Retourne une chaîne de taille length - 1 octet lu depuis le fichier pointé par handle, dont les balises HTML et PHP ont été échappées.

Si une erreur survient, la fonction retourne FALSE.

Exemple #1 Lecture d'un fichier PHP ligne par ligne

<?php
$str = <<<EOD
<html><body>
 <p>Welcome! Today is the <?php echo(date('jS')); ?> of <?= date('F'); ?>.</p>
</body></html>
Text outside of the HTML block.
EOD;
file_put_contents('sample.php', $str);

$handle = @fopen("sample.php", "r");
if ($handle) {
    while (!feof($handle)) {
        $buffer = fgetss($handle, 4096);
        echo $buffer;
    }
    fclose($handle);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

 Welcome! Today is the  of .

Text outside of the HTML block.

Notes

Note: Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

Voir aussi

  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fopen() - Ouvre un fichier ou une URL
  • popen() - Crée un processus de pointeur de fichier
  • fsockopen() - Ouvre un socket de connexion Internet ou Unix
  • strip_tags() - Supprime les balises HTML et PHP d'une chaîne


Vérifie si un fichier ou un dossier existe

  • « fgetss
  • file_get_contents »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Vérifie si un fichier ou un dossier existe

file_exists

(PHP 4, PHP 5, PHP 7)

file_exists — Vérifie si un fichier ou un dossier existe

Description

bool file_exists ( string $filename )

Vérifie si un fichier ou un dossier existe.

Liste de paramètres

filename

Chemin vers le fichier ou le dossier.

Sous Windows, utilisez le format de chemin //computername/share/filename ou \\\\computername\share\filename pour vérifier qu'un fichier est disponible sur le partage réseau.

Valeurs de retour

Retourne TRUE si le fichier ou le dossier spécifié par le paramètre filename existe ; FALSE sinon.

Note:

Retourne FALSE pour les liens symboliques pointant vers un fichier qui n'existe pas.

Avertissement

Cette fonction retourne FALSE pour les fichiers non accessibles en raison des restrictions du safe mode. Cependant, ces fichiers peuvent toujours être inclus s'ils sont dans le dossier safe_mode_include_dir.

Note:

La vérification est effectuée en utilisant l'UID/GID réel au lieu de l'effectif.

Note: Comme le type entier de PHP est signé et que de nombreuses plates-formes utilisent des entiers de 32 bits, certaines fonctions relatives au système de fichiers peuvent retourner des résultats étranges pour les fichiers de taille supérieure à 2 Go.

Exemples

Exemple #1 Teste l'existence d'un fichier

<?php
$filename = '/path/to/foo.txt';

if (file_exists($filename)) {
    echo "Le fichier $filename existe.";
} else {
    echo "Le fichier $filename n'existe pas.";
}
?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • is_readable() - Indique si un fichier existe et est accessible en lecture
  • is_writable() - Indique si un fichier est accessible en écriture
  • is_file() - Indique si le fichier est un véritable fichier
  • file() - Lit le fichier et renvoie le résultat dans un tableau


Lit tout un fichier dans une chaîne

  • « file_exists
  • file_put_contents »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Lit tout un fichier dans une chaîne

file_get_contents

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

file_get_contents — Lit tout un fichier dans une chaîne

Description

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = 0 [, int $maxlen ]]]] )

Identique à la fonction file(), hormis le fait que file_get_contents() retourne le fichier filename dans une chaîne, à partir de la position offset, et jusqu'à maxlen octets. En cas d'erreur, file_get_contents() retourne FALSE.

file_get_contents() est la façon recommandée pour lire le contenu d'un fichier dans une chaîne de caractères. Elle utilisera un buffer en mémoire si ce mécanisme est supporté par votre système, afin d'améliorer les performances.

Note:

Si vous ouvrez une URI avec des caractères spéciaux, comme des espaces, vous devez encoder cette URI avec la fonction urlencode().

Liste de paramètres

filename

Nom du fichier à lire.

use_include_path

Note:

Depuis PHP 5, la constante FILE_USE_INCLUDE_PATH peut être utilisée pour déclencher la recherche dans le chemin d'inclusion.

context

Une ressource de contexte valide, créée avec la fonction stream_context_create(). Si vous n'avez pas besoin d'utiliser un contexte particulier, vous pouvez ignorer ce paramètre en affectant la valeur NULL.

offset

La position à partir de laquelle on commence à lire dans le flux original.

Le déplacement dans le fichier (offset) n'est pas supporté sur des fichiers distants. Si vous tentez de vous déplacer dans un fichier qui n'est pas un fichier local peut fonctionner sur les petits déplacements, mais le comportement peut ne pas être attendu car le processus utilise le flux du buffer.

maxlen

La taille maximale des données à lire. Le comportement par défaut est de lire jusqu'à la fin du fichier. Ce paramètre s'applique sur le flux traité par les filtres.

Valeurs de retour

Retourne les données lues ou FALSE si une erreur survient.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si, filename ne peut être trouvé, si le paramètre maxlength est plus petit que zéro, ou si le déplacement à la position offset spécifié dans le flux échoue.

Exemples

Exemple #1 Lit et affiche le code HTML d'un site Web

<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

Exemple #2 Recherche un fichier dans le include_path

<?php
// avant PHP 5
$file = file_get_contents('./people.txt', true);
// depuis PHP 5
$file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
?>

Exemple #3 Lit une section d'un fichier

<?php
// Lit 14 caractères à partir du 20ème
$section = file_get_contents('./people.txt', NULL, NULL, 20, 14);
var_dump($section);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(14) "lle Bjori Ro"

Exemple #4 Utilisation des contextes de flux

<?php
// Création d'un flux
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

// Accès à un fichier HTTP avec les entêtes HTTP indiqués ci-dessus
$file = file_get_contents('http://www.example.com/', false, $context);
?>

Historique

Version | Description
5.1.0 | Ajout des paramètres offset et maxlen.

Notes

Note: Cette fonction gère les chaînes binaires.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Avertissement

Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les alertes. PHP peut détecter automatiquement le bogue d'un serveur IIS lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer un socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur.

Voir aussi

  • file() - Lit le fichier et renvoie le résultat dans un tableau
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fread() - Lecture du fichier en mode binaire
  • readfile() - Affiche un fichier
  • file_put_contents() - Écrit un contenu dans un fichier
  • stream_get_contents() - Lit tout un flux dans une chaîne
  • stream_context_create() - Crée un contexte de flux
  • $http_response_header


Écrit un contenu dans un fichier

  • « file_get_contents
  • file »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Écrit un contenu dans un fichier

file_put_contents

(PHP 5, PHP 7)

file_put_contents — Écrit un contenu dans un fichier

Description

int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )

Revient à appeler les fonctions fopen(), fwrite() et fclose() successivement.

Si le fichier filename n'existe pas, il sera créé. Sinon, le fichier existant sera écrasé, si l'option FILE_APPEND n'est pas définie.

Liste de paramètres

filename

Chemin vers le fichier dans lequel on doit écrire les données.

data

Les données à écrire. Peut être soit une chaîne de caractères, un tableau ou une ressource de flux (explication plus bas).

Si data est une ressource de type stream, le buffer restant de ce flux sera copié dans le fichier spécifié. Cela revient à utiliser la fonction stream_copy_to_stream().

Vous pouvez également spécifier le paramètre data en tant qu'un tableau à une seule dimension. C'est l'équivalent à file_put_contents($filename, implode('', $array)).

flags

La valeur du paramètre flags peut être n'importe quelle combinaison des drapeaux suivants, liés par l'opérateur binaire OU (|).

Drapeaux disponibles
Drapeau | Description
FILE_USE_INCLUDE_PATH | Recherche le fichier filename dans le dossier d'inclusion. Voir include_path pour plus d'informations.
FILE_APPEND | Si le fichier filename existe déjà, cette option permet d'ajouter les données au fichier au lieu de l'écraser.
LOCK_EX | Acquiert un verrou exclusif sur le fichier lors de l'opération d'écriture. En d'autre terme, un appel à la fonction flock() survient entre l'appel à la fonction fopen() et l'appel à la fonction fwrite(). Ce comportement n'est pas identique à un appel à la fonction fopen() avec le mode "x".

context

Une ressource de contexte valide créée avec la fonction stream_context_create().

Valeurs de retour

Retourne le nombre d'octets qui ont été écrits au fichier, ou FALSE si une erreur survient.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Utilisation simple de file_put_contents

<?php
$file = 'people.txt';
// Ouvre un fichier pour lire un contenu existant
$current = file_get_contents($file);
// Ajoute une personne
$current .= "Jean Dupond\n";
// Écrit le résultat dans le fichier
file_put_contents($file, $current);
?>

Exemple #2 Utilisation d'options pour file_put_contents

<?php
$file = 'people.txt';
// Une nouvelle personne à ajouter
$person = "Jean Dupond\n";
// Ecrit le contenu dans le fichier, en utilisant le drapeau
// FILE_APPEND pour rajouter à la suite du fichier et
// LOCK_EX pour empêcher quiconque d'autre d'écrire dans le fichier
// en même temps
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
?>

Historique

Version | Description
5.1.0 | Ajout du support de LOCK_EX et la possibilité de passer une ressource de flux dans le paramètre data.

Notes

Note: Cette fonction gère les chaînes binaires.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • fwrite() - Écrit un fichier en mode binaire
  • file_get_contents() - Lit tout un fichier dans une chaîne
  • stream_context_create() - Crée un contexte de flux


Lit le fichier et renvoie le résultat dans un tableau

  • « file_put_contents
  • fileatime »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Lit le fichier et renvoie le résultat dans un tableau

file

(PHP 4, PHP 5, PHP 7)

file — Lit le fichier et renvoie le résultat dans un tableau

Description

array file ( string $filename [, int $flags = 0 [, resource $context ]] )

Lit le fichier et renvoie le résultat dans un tableau.

Note:

Vous pouvez utiliser la fonction file_get_contents() pour retourner le contenu d'un fichier dans une chaîne de caractères.

Liste de paramètres

filename

Chemin vers le fichier.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

flags

Le paramètre optionnel flags peut être une ou plusieurs des constantes suivantes :

FILE_USE_INCLUDE_PATH
Recherche le fichier dans l'include_path.
FILE_IGNORE_NEW_LINES
N'ajoute pas de nouvelle ligne à la fin de chaque élément du tableau.
FILE_SKIP_EMPTY_LINES
Ignore les lignes vides.

context

Une ressource de contexte valide, créée avec la fonction stream_context_create().

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Flux.

Valeurs de retour

Retourne le fichier dans un tableau. Chaque élément du tableau correspond à une ligne du fichier, et les retours-chariot sont placés en fin de ligne. Si une erreur survient, file() retournera FALSE.

Note:

Chaque ligne du tableau résultant inclura la fin de ligne, à moins que FILE_IGNORE_NEW_LINES ne soit utilisé, donc, vous avez toujours besoin d'utiliser la fonction rtrim() si vous ne voulez pas de fin de lignes.

Note: Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

Historique

Version | Description
4.3.0 | file() devient compatible avec les données binaires.

Exemples

Exemple #1 Exemple avec file()

<?php
// Lit une page web dans un tableau.
$lines = file('http://www.example.com/');

// Affiche toutes les lignes du tableau comme code HTML, avec les numéros de ligne
foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}

// Un autre exemple, pour obtenir une page web dans une chaîne. Voir aussi la fonction file_get_contents().
$html = implode('', file('http://www.example.com/'));

// Utilisation de drapeau, depuis PHP 5
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>

Notes

Avertissement

Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les alertes. PHP peut détecter automatiquement le bogue d'un serveur IIS lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer un socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur.

Voir aussi

  • readfile() - Affiche un fichier
  • fopen() - Ouvre un fichier ou une URL
  • fsockopen() - Ouvre un socket de connexion Internet ou Unix
  • popen() - Crée un processus de pointeur de fichier
  • file_get_contents() - Lit tout un fichier dans une chaîne
  • include - include
  • stream_context_create() - Crée un contexte de flux


Renvoie la date à laquelle le fichier a été accédé pour la dernière fois

  • « file
  • filectime »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Renvoie la date à laquelle le fichier a été accédé pour la dernière fois

fileatime

(PHP 4, PHP 5, PHP 7)

fileatime — Renvoie la date à laquelle le fichier a été accédé pour la dernière fois

Description

int fileatime ( string $filename )

Renvoie la date à laquelle le fichier a été accédé pour la dernière fois.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Renvoie la date à laquelle le fichier a été accédé pour la dernière fois ou FALSE si une erreur survient. La date est retournée sous la forme d'un timestamp Unix.

Exemples

Exemple #1 Exemple avec fileatime()

<?php

// Affiche : somefile.txt a été accédé le : December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename a été accédé le : " . date("F d Y H:i:s.", fileatime($filename));
}

?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note:

La date de dernière modification d'un fichier est supposé changer à chaque fois que les blocs de données du fichier ont commencés à être lus. Cela peut être très coûteux en terme de performance lorsqu'une application accède régulièrement à beaucoup de fichiers ou de répertoires.

La plupart des systèmes de fichiers Unix peuvent être montés en ayant désactivés cette information pour accroître les performances d'une telle application ; les nouvelles USENET sont un bon exemple. Sur de telles systèmes de fichiers, cette fonction devient totalement inutile.

Note:

Notez que la précision temporelle peut varier selon le système de fichiers utilisé.

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • filemtime() - Lit la date de dernière modification du fichier
  • fileinode() - Lit le numéro d'inode du fichier
  • date() - Formate une date/heure locale


Renvoie la date de dernière modification de l'inode d'un fichier

  • « fileatime
  • filegroup »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Renvoie la date de dernière modification de l'inode d'un fichier

filectime

(PHP 4, PHP 5, PHP 7)

filectime — Renvoie la date de dernière modification de l'inode d'un fichier

Description

int filectime ( string $filename )

Renvoie la date de dernière modification de l'inode d'un fichier.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Renvoie la date à laquelle l'inode a été modifié pour la dernière fois ou FALSE si une erreur survient. L'heure est retournée sous la forme d'un timestamp Unix.

Exemples

Exemple #1 Exemple avec filectime()

<?php

// Affiche : somefile.txt a été modifié le : December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename a été modifié le : " . date("F d Y H:i:s.", filectime($filename));
}

?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note:

Sur la plupart des serveurs UNIX, un fichier est considéré comme modifié si les données de son inode sont modifiées. C'est-à-dire lorsque les permissions (utilisateur, groupe ou autre) ont été modifiées. Voyez aussi filemtime() (que vous pourrez utiliser lorsque vous créerez des indications telles que "Dernière modification : " sur les pages web) et fileatime().

Note:

Notez aussi que sur certains systèmes UNIX, le ctime d'un fichier texte est considéré comme sa date de création. Cela est faux ! Il n'y a pas de date de création de fichier sous la plupart des systèmes UNIX.

Note:

Notez que la précision temporelle peut varier selon le système de fichiers utilisé.

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • filemtime() - Lit la date de dernière modification du fichier


Lire le nom du groupe

  • « filectime
  • fileinode »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Lire le nom du groupe

filegroup

(PHP 4, PHP 5, PHP 7)

filegroup — Lire le nom du groupe

Description

int filegroup ( string $filename )

Lit le nom du groupe. L'identifiant de groupe est retourné au format numérique, utilisez posix_getgrgid() pour retrouver le nom du groupe.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne le groupe qui possède le fichier filename, ou FALSE si une erreur survient. L'identifiant de groupe est retourné au format numérique, utilisez posix_getgrgid() pour retrouver le nom du groupe. En cas d'erreur, FALSE est retourné.

Exemples

Exemple #1 Recherche le groupe d'un fichier

<?php
$filename = 'index.php';
print_r(posix_getgrgid(filegroup($filename)));
?>

Erreurs / Exceptions

Si une erreur survient, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • fileowner() - Lit l'identifiant du propriétaire d'un fichier
  • posix_getgrgid() - Retourne des informations sur un groupe
  • safe_mode_gid


Lit le numéro d'inode du fichier

  • « filegroup
  • filemtime »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Lit le numéro d'inode du fichier

fileinode

(PHP 4, PHP 5, PHP 7)

fileinode — Lit le numéro d'inode du fichier

Description

int fileinode ( string $filename )

Lit le numéro d'inode du fichier.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne le numéro d'inode du fichier, ou FALSE si une erreur survient.

Exemples

Exemple #1 Comparaison de l'inode d'un fichier avec le fichier courant

<?php
$filename = 'index.php';
if (getmyinode() == fileinode($filename)) {
    echo 'Vous vérifiez le fichier courant.';
}
?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • getmyinode() - Retourne l'inode du script
  • stat() - Renvoie les informations à propos d'un fichier


Lit la date de dernière modification du fichier

  • « fileinode
  • fileowner »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Lit la date de dernière modification du fichier

filemtime

(PHP 4, PHP 5, PHP 7)

filemtime — Lit la date de dernière modification du fichier

Description

int filemtime ( string $filename )

Lit la date à laquelle le fichier a été modifié pour la dernière fois.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Renvoie le timestamp Unix de dernière modification du fichier filename ou FALSE si une erreur survient. Utilisez date() sur ce résultat pour obtenir une date de modification humainement lisible.

Exemples

Exemple #1 Exemple avec filemtime()

<?php
// Affichera : somefile.txt a été modifié le : December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename a été modifié le : " . date ("F d Y H:i:s.", filemtime($filename));
}
?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note:

Notez que la précision temporelle peut varier selon le système de fichiers utilisé.

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • filectime() - Renvoie la date de dernière modification de l'inode d'un fichier
  • stat() - Renvoie les informations à propos d'un fichier
  • touch() - Modifie la date de modification et de dernier accès d'un fichier
  • getlastmod() - Retourne la date de dernière modification de la page


Lit l'identifiant du propriétaire d'un fichier

  • « filemtime
  • fileperms »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Lit l'identifiant du propriétaire d'un fichier

fileowner

(PHP 4, PHP 5, PHP 7)

fileowner — Lit l'identifiant du propriétaire d'un fichier

Description

int fileowner ( string $filename )

Lit l'identifiant du propriétaire d'un fichier.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Renvoie l'identifiant du propriétaire du fichier filename, ou FALSE si une erreur survient. L'identifiant du propriétaire est numérique : il faut utiliser posix_getpwuid() pour retrouver le nom d'utilisateur.

Exemples

Exemple #1 Recherche du propriétaire d'un fichier

<?php
$filename = 'index.php';
print_r(posix_getpwuid(fileowner($filename)));
?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • filegroup() - Lire le nom du groupe
  • stat() - Renvoie les informations à propos d'un fichier
  • posix_getpwuid() - Retourne des informations sur un utilisateur


Lit les droits d'un fichier

  • « fileowner
  • filesize »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Lit les droits d'un fichier

fileperms

(PHP 4, PHP 5, PHP 7)

fileperms — Lit les droits d'un fichier

Description

int fileperms ( string $filename )

Lit les droits du fichier donné.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne les permissions du fichier sous forme numérique. Les bits de poids faible sont les mêmes que ceux des permissions dans chmod(), cependant certaines plateformes incluent dans le retour des informations sur le type de fichier donné dans filename. Les exemples qui suivent montrent comment tester la valeur de retour concernant les permissions et le type de fichier sur des systèmes POSIX comme Linux ou Mac OS X.

Pour les fichiers locaux, la valeur spécifique st_mode de la structure C retournée par la fonction stat() est utilisée. Les bits affectés peuvent changer en fonction de la plateforme et vous devriez vous renseigner à son sujet si vous devez analyser les bits ne concernant pas la permission.

Exemples

Exemple #1 Affichage des droits en valeur octale

<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>

L'exemple ci-dessus va afficher :

1777
0644

Exemple #2 Affichage de tous les droits

<?php
$perms = fileperms('/etc/passwd');

if (($perms & 0xC000) == 0xC000) {
    // Socket
    $info = 's';
} elseif (($perms & 0xA000) == 0xA000) {
    // Lien symbolique
    $info = 'l';
} elseif (($perms & 0x8000) == 0x8000) {
    // Régulier
    $info = '-';
} elseif (($perms & 0x6000) == 0x6000) {
    // Block special
    $info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
    // Dossier
    $info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
    // Caractère spécial
    $info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
    // pipe FIFO
    $info = 'p';
} else {
    // Inconnu
    $info = 'u';
}

// Autres
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
            (($perms & 0x0800) ? 's' : 'x' ) :
            (($perms & 0x0800) ? 'S' : '-'));

// Groupe
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
            (($perms & 0x0400) ? 's' : 'x' ) :
            (($perms & 0x0400) ? 'S' : '-'));

// Tout le monde
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
            (($perms & 0x0200) ? 't' : 'x' ) :
            (($perms & 0x0200) ? 'T' : '-'));

echo $info;
?>

L'exemple ci-dessus va afficher :

-rw-r--r--

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • chmod() - Change le mode du fichier
  • is_readable() - Indique si un fichier existe et est accessible en lecture
  • stat() - Renvoie les informations à propos d'un fichier


Lit la taille d'un fichier

  • « fileperms
  • filetype »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Lit la taille d'un fichier

filesize

(PHP 4, PHP 5, PHP 7)

filesize — Lit la taille d'un fichier

Description

int filesize ( string $filename )

Lit la taille du fichier donné.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Renvoie la taille du fichier filename en octets, ou FALSE (et génère une erreur de niveau E_WARNING) en cas d'erreur.

Note: Comme le type entier de PHP est signé et que de nombreuses plates-formes utilisent des entiers de 32 bits, certaines fonctions relatives au système de fichiers peuvent retourner des résultats étranges pour les fichiers de taille supérieure à 2 Go.

Exemples

Exemple #1 Exemple avec filesize()

<?php

// Affiche e.g.  somefile.txt: 1024 bytes

$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • file_exists() - Vérifie si un fichier ou un dossier existe


Retourne le type de fichier

  • « filesize
  • flock »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Retourne le type de fichier

filetype

(PHP 4, PHP 5, PHP 7)

filetype — Retourne le type de fichier

Description

string filetype ( string $filename )

Retourne le type d'un fichier donné.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne le type du fichier. Les réponses possibles sont : fifo, char, dir, block, link, file socket et unknown.

Retourne FALSE en cas d'erreur. filetype() va aussi émettre une erreur E_NOTICE si l'appel stat échoue, ou si le type de fichier est inconnu.

Exemples

Exemple #1 Exemple avec filetype()

<?php

echo filetype('/etc/passwd');  // file
echo filetype('/etc/');        // dir

?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • is_dir() - Indique si le fichier est un dossier
  • is_file() - Indique si le fichier est un véritable fichier
  • is_link() - Indique si le fichier est un lien symbolique
  • file_exists() - Vérifie si un fichier ou un dossier existe
  • mime_content_type() - Détecte le type de contenu d'un fichier
  • pathinfo() - Retourne des informations sur un chemin système
  • stat() - Renvoie les informations à propos d'un fichier


Verrouille le fichier

  • « filetype
  • fnmatch »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Verrouille le fichier

flock

(PHP 4, PHP 5, PHP 7)

flock — Verrouille le fichier

Description

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )

flock() permet de réaliser un système simple de verrous écriture/lecture, qui peut être utilisé sur n'importe quelle plate-forme (Unix et Windows compris).

Avant PHP 5.3.2, le verrou est également levé avec la fonction fclose() (qui est également automatiquement appelée lors de la fin du script).

PHP dispose d'un système complet de verrouillage de fichiers. Tous les programmes qui accèdent au fichier doivent utiliser la même méthode de verrouillage pour qu'il soit efficace. Par défaut, cette fonction se bloquera tant que le verrou demandé ne sera pas acquis ; ce comportement peut être contrôlé avec l'option LOCK_NB dont vous trouverez la documentation ci-dessous.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

operation

operation peut prendre une des valeurs suivantes :

  • LOCK_SH pour acquérir un verrou partagé (lecture).
  • LOCK_EX pour acquérir un verrou exclusif (écriture).
  • LOCK_UN pour libérer un verrou (partagé ou exclusif).

Il est également possible d'ajouter LOCK_NB comme masque d'une des opérations précédentes si vous ne voulez pas que la fonction flock() bloque durant le verrouillage.

wouldblock

Ce troisième argument optionnel est défini à 1 si le verrou doit bloquer le script (condition d'erreur EWOULDBLOCK).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.5.22, 5.6.6 | Ajout du support du paramètre wouldblock sous Windows.
5.3.2 | Le déverrouillage automatique lorsque la ressource de fichiers est fermée a été supprimée. Le déverrouillage doit maintenant être effectuée manuellement.

Exemples

Exemple #1 Exemple avec flock()

<?php

$fp = fopen("/tmp/lock.txt", "r+");

if (flock($fp, LOCK_EX)) { // acquière un verrou exclusif
    ftruncate($fp, 0);     // effacement du contenu
    fwrite($fp, "Écrire dans un fichier\n");
    fflush($fp);            // libère le contenu avant d'enlever le verrou
    flock($fp, LOCK_UN);    // Enlève le verrou
} else {
    echo "Impossible de verrouiller le fichier !";
}

fclose($fp);

?>

Exemple #2 Exemple avec flock() en utilisant l'option LOCK_NB

<?php
$fp = fopen('/tmp/lock.txt', 'r+');

/* Activation de l'option LOCK_NB lors d'une opération LOCK_EX */
if(!flock($fp, LOCK_EX | LOCK_NB)) {
    echo 'Impossible d\'obtenir le verrou';
    exit(-1);
}

/* ... */

fclose($fp);
?>

Notes

Note:

flock() utilise les verrous obligatoires sous Windows, qui sont aussi supportés sur Linux et les systèmes dérivés de System V au moyen de l'appel système fcntl(): si le fichier en question a le bit setgid positionné et le bit de groupe vide. Sur Linux, le système de fichiers devra être monté avec l'option mand pour que cela fonctionne.

Note:

Comme flock() requiert un pointeur de fichier, vous aurez peut être à utiliser un verrou spécial pour protéger l'accès au fichier que vous voulez tronquer en l'ouvrant en mode d'écriture (avec "w" ou "w+" comme argument de fopen()).

Note:

Ne devrait être utilisé que sur des ressources issues de fopen() pour des fichiers locaux ou via le gestionnaire de flux personnalisé en définissant streamWrapper::stream_lock().

Avertissement

Assigner une autre valeur à l'argument handle dans ce code libèrera le verrou.

Avertissement

Sur certains systèmes d'exploitation, flock() est implémenté au niveau processus. Lorsque vous utilisez une API multithread comme ISAPI, vous risquez de ne pas pouvoir avoir confiance en flock() pour protéger vos fichiers contre d'autres scripts PHP qui fonctionnent en parallèle sur d'autres threads du même serveur.

flock() n'est pas supporté sur les vieux systèmes de fichiers comme FAT et ses dérivés, et elle retournera forcément FALSE sous ces environnements (ceci est particulièrement vrai pour les utilisateurs de Windows 98).


Teste un nom de fichier au moyen d'un masque de recherche

  • « flock
  • fopen »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Teste un nom de fichier au moyen d'un masque de recherche

fnmatch

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fnmatch — Teste un nom de fichier au moyen d'un masque de recherche

Description

bool fnmatch ( string $pattern , string $string [, int $flags = 0 ] )

fnmatch() vérifie si la chaîne string va passer le masque Shell pattern.

Liste de paramètres

pattern

Le masque Shell.

string

La chaîne testée. Cette fonction est particulièrement utile pour les noms de fichier, mais peut également être utilisée sur des chaînes régulières.

L'utilisateur moyen de Shell peut être familier avec les masques Shell, ou tout au moins, leurs expressions les plus simples, comme '?' et '*'. De cette façon, utiliser fnmatch() au lieu de preg_match() pour des recherches peut être plus pratique pour les non-initiés.

flags

La valeur de flags peut être une combinaison des drapeaux suivants, joins avec l' opérateur binaire OR (|).

Liste des drapeaux possibles pour fnmatch()
Flag | Description
FNM_NOESCAPE | Désactive l'échappement des anti-slashes.
FNM_PATHNAME | Un slash dans une chaîne correspond uniquement à un slash dans le masque fourni.
FNM_PERIOD | Un point en début de chaîne doit correspondre exactement à un point dans le masque fourni.
FNM_CASEFOLD | Les correspondances ne tiennent pas compte de la casse. Fait parti de l'extension GNU.

Valeurs de retour

Retourne TRUE s'il y a des résultats, FALSE sinon.

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sous Windows.

Exemples

Exemple #1 Vérifier le nom d'une couleur avec un masque Shell

<?php
if (fnmatch("*gr[ae]y", $color)) {
  echo "des formes de gris ...";
}
?>

Notes

Avertissement

Actuellement, cette fonction n'est pas disponible pour les systèmes non-POSIX, à l'exception de Windows.

Voir aussi

  • glob() - Recherche des chemins qui vérifient un masque
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée


Ouvre un fichier ou une URL

  • « fnmatch
  • fpassthru »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Ouvre un fichier ou une URL

fopen

(PHP 4, PHP 5, PHP 7)

fopen — Ouvre un fichier ou une URL

Description

resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )

fopen() crée une ressource nommée, spécifiée par le paramètre filename, sous la forme d'un flux.

Liste de paramètres

filename

Si filename est de la forme "protocole://", filename est supposé être une URL, et PHP va rechercher un gestionnaire de protocole adapté pour lire ce fichier. Si aucun gestionnaire pour ce protocole n'est disponible, PHP va émettre une alerte qui vous permettra de savoir que vous avez des problèmes dans votre script, et il tentera d'exploiter filename comme un fichier classique.

Si PHP décide que le fichier filename est un fichier local, il va essayer d'ouvrir un flux avec ce fichier. Le fichier doit être accessible à PHP. Il vous faut donc vous assurer que vous avez les droits d'accès à ce fichier. Si vous activez le safe mode, ou la directive open_basedir, d'autres conditions peuvent aussi s'appliquer.

Si PHP a décidé que filename spécifie un protocole enregistré, et que ce protocole est enregistré comme un protocole réseau, PHP s'assurera que la directive allow_url_fopen est activée. Si elle est inactive, PHP va émettre une alerte et l'ouverture va échouer.

Note:

La liste des protocoles supportés est disponible sur Liste des protocoles et des gestionnaires supportés. Certains protocoles (appelés aussi wrappers ou gestionnaires) supportent des context et/ou des options dans le fichier php.ini. Référez-vous aux pages du manuel traitant le protocole, pour connaître la liste des options qui sont disponibles. ( e.g. l'option de php.ini user_agent est utilisée par le gestionnaire http).

Sous Windows, assurez-vous de bien protéger les antislash utilisés dans le chemin du fichier, ou bien utilisez des slashs.

<?php
$handle = fopen("c:\\folder\\resource.txt", "r");
?>

mode

Le paramètre mode spécifie le type d'accès désiré au flux. Il peut prendre les valeurs suivantes :

Liste des modes possibles pour la fonction fopen() en utilisant le paramètre mode
mode | Description
'r' | Ouvre en lecture seule, et place le pointeur de fichier au début du fichier.
'r+' | Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.
'w' | Ouvre en écriture seule ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
'w+' | Ouvre en lecture et écriture ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
'a' | Ouvre en écriture seule ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer. Dans ce mode, la fonction fseek() n'a aucun effet, les écritures surviennent toujours.
'a+' | Ouvre en lecture et écriture ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer. Dans ce mode, la fonction fseek() n'affecte que la position de lecture, les écritures surviennent toujours.
'x' | Crée et ouvre le fichier en écriture seulement ; place le pointeur de fichier au début du fichier. Si le fichier existe déjà, fopen() va échouer, en retournant FALSE et en générant une erreur de niveau E_WARNING. Si le fichier n'existe pas, fopen() tente de le créer. Ce mode est l'équivalent des options O_EXCL|O_CREAT pour l'appel système open(2) sous-jacent.
'x+' | Crée et ouvre le fichier pour lecture et écriture; le comportement est le même que pour 'x'.
'c' | Ouvre le fichier pour écriture seulement. Si le fichier n'existe pas, il sera crée, s'il existe, il n'est pas tronqué (contrairement à 'w') et l'appel à la fonction n'échoue pas (comme dans le cas de 'x'). Le pointeur du fichier est positionné au début. Ce mode peut être utile pour obtenir un verrou (voyez flock()) avant de tenter de modifier le fichier, utiliser 'w' pourrait tronquer le fichier avant d'obtenir le verrou (vous pouvez toujours tronquer grâce à ftruncate()).
'c+' | Ouvre le fichier pour lecture et écriture, le comportement est le même que pour le mode 'c'.

Note:

Les systèmes d'exploitation utilisent différents caractères pour les nouvelles lignes. Lorsque vous écrivez un fichier texte, et insérez une nouvelle ligne, vous devez utiliser le bon caractère pour votre système d'exploitation. Les systèmes Unix utilisent \n comme nouvelle ligne, les systèmes Windows utilisent \r\n, et les systèmes Macintosh utilisent \r.

Si vous n'utilisez pas le bon caractère de nouvelle ligne lors de l'écriture de vos fichiers, vous risquez d'ouvrir vos fichiers avec des applications qui donneront un aspect 'bizarre' au texte.

Windows propose un mode de traduction ('t'), qui va traduire automatiquement les caractères \n en \r\n lorsque vous travaillez sur le fichier. À l'inverse, vous pouvez utiliser l'option 'b' pour forcer le fichier a être écrit en mode binaire, sans traduction des données. Pour utiliser ces options, ajoutez 'b' ou 't' comme dernier caractère du paramètre mode.

Le mode de traduction par défaut dépend de l'interface SAPI et de la version de PHP que vous utilisez. Nous vous recommandons de toujours spécifier les options de traductions pour des raisons de portabilité. Vous devriez utiliser 't' lorsque vous écrivez des fichiers de texte, et le caractère \n pour définir vos fin de ligne, dans les scripts, mais que vous vous attendez à ce que le fichier soit relu par une application comme Notepad. Vous devriez toujours utiliser l'option 'b' dans les autres cas.

Si vous ne précisez pas 'b' lorsque vous travaillez avec des fichiers binaires, vous pourriez rencontrer des problèmes avec vos données, comme des images corrompues ou des caractères \r\n inopinés.

Note:

Pour des raisons de portabilité, il est recommandé de toujours utiliser l'option 'b' lorsque vous ouvrez des fichiers avec fopen().

Note:

À nouveau, pour des raisons de portabilité, il est fortement recommandé de réécrire les scripts qui utilisent l'option 't', pour qu'ils utilisent le bon caractère de nouvelle ligne, et le mode 'b'.

use_include_path

Le troisième paramètre optionnel use_include_path peut être défini à 1 ou à TRUE pour chercher le fichier dans l'include_path.

context

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Flux.

Valeurs de retour

Retourne une ressource représentant le pointeur de fichier, ou FALSE si une erreur survient.

Erreurs / Exceptions

Si l'ouverture échoue, une alerte E_WARNING sera générée. Vous pouvez utiliser le caractère @ pour supprimer cette alerte.

Historique

Version | Description
5.2.6 | Les options 'c' et 'c+' ont été ajoutées.
4.3.2 | Depuis PHP 4.3.2, le mode par défaut est le mode binaire pour toutes les plates-formes qui font la distinction entre les modes binaire et texte. Si vous rencontrez des problèmes dans vos scripts après une mise à jour, essayez d'utiliser le flag 't' en attendant que vous rendiez votre script plus portable comme mentionné ci-dessus.

Exemples

Exemple #1 Exemple avec fopen()

<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>

Notes

Avertissement

Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les alertes. PHP peut détecter automatiquement le bogue d'un serveur IIS lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer un socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note:

Si vous rencontrez des problèmes en lecture ou écriture de fichier et que vous utilisez PHP en version module de serveur, n'oubliez pas que les fichiers auxquels vous accédez ne sont pas nécessairement accessibles au processus serveur.

Note:

Cette fonction peut également réussir lorsque filename est un dossier. Si vous avez un doute sur le fait que filename soit un fichier ou un dossier, vous pouvez utiliser la fonction is_dir() avant d'utiliser la fonction fopen().

Voir aussi

  • Liste des protocoles et des gestionnaires supportés
  • fclose() - Ferme un fichier
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fread() - Lecture du fichier en mode binaire
  • fwrite() - Écrit un fichier en mode binaire
  • fsockopen() - Ouvre un socket de connexion Internet ou Unix
  • file() - Lit le fichier et renvoie le résultat dans un tableau
  • file_exists() - Vérifie si un fichier ou un dossier existe
  • is_readable() - Indique si un fichier existe et est accessible en lecture
  • stream_set_timeout() - Configure la durée d'expiration d'un flux
  • popen() - Crée un processus de pointeur de fichier
  • stream_context_create() - Crée un contexte de flux
  • umask() - Change le "umask" courant
  • SplFileObject


Affiche le reste du fichier

  • « fopen
  • fputcsv »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Affiche le reste du fichier

fpassthru

(PHP 4, PHP 5, PHP 7)

fpassthru — Affiche le reste du fichier

Description

int fpassthru ( resource $handle )

Lit tout le reste d'un fichier jusqu'à la fin et dirige le résultat vers la sortie standard.

Vous devez appeler la fonction rewind() pour réinitialiser le pointeur de fichier au début si vous avez déjà écrit des données dans le fichier.

Si vous voulez uniquement copier le contenu d'un fichier dans le buffer de sortie, sans le modifier auparavant ou placer le pointeur à un endroit particulier, vous devriez utiliser la fonction readfile(), ce qui vous évite d'appeler la fonction fopen() call.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

Valeurs de retour

Si une erreur survient, fpassthru() retourne FALSE. Sinon, fpassthru() retourne le nombre de caractères lus dans handle et passés à la sortie standard.

Exemples

Exemple #1 Utilisation de fpassthru() avec un fichier binaire

<?php

// ouvre un fichier en mode binaire
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// envoie les bons en-têtes
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// envoie le contenu du fichier, puis stoppe le script
fpassthru($fp);
exit;

?>

Notes

Note:

Lorsque vous utilisez la fonction fpassthru() sur un fichier binaire sous Windows, assurez-vous d'avoir ouvert le fichier en mode binaire en ajoutant la lettre b au mode d'accès utilisé dans fopen().

Vous êtes encouragé à utiliser l'option b lorsque vous traitez des fichiers binaires, même si votre système ne le requiert pas, de façon à rendre vos scripts portables.

Voir aussi

  • readfile() - Affiche un fichier
  • fopen() - Ouvre un fichier ou une URL
  • popen() - Crée un processus de pointeur de fichier
  • fsockopen() - Ouvre un socket de connexion Internet ou Unix


Formate une ligne en CSV et l'écrit dans un fichier

  • « fpassthru
  • fputs »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Formate une ligne en CSV et l'écrit dans un fichier

fputcsv

(PHP 5 >= 5.1.0, PHP 7)

fputcsv — Formate une ligne en CSV et l'écrit dans un fichier

Description

int fputcsv ( resource $handle , array $fields [, string $delimiter = "," [, string $enclosure = '"' [, string $escape_char = "\" ]]] )

fputcsv() formate la ligne passée sous forme de tableau fields, puis écrit le résultat dans le fichier handle.

Liste de paramètres

handle

Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succès par fopen() ou fsockopen() (et pas encore fermé par fclose()).

fields

Un tableau de valeurs.

delimiter

Le paramètre optionnel delimiter spécifie le délimiteur (un seul caractère).

enclosure

Le paramètre enclosure spécifie le caractère d'encadrement (un seul caractère).

escape_char

Le paramètre optionnel escape_char définit le caractère d'échappement (un seul caractère).

Valeurs de retour

Retourne la taille de la chaîne écrite ou FALSE si une erreur survient.

Historique

Version | Description
5.5.4 | Ajout du paramètre escape_char

Exemples

Exemple #1 Exemple avec fputcsv()

<?php

$list = array (
   array('aaa', 'bbb', 'ccc', 'dddd'),
   array('123', '456', '789'),
   array('"aaa"', '"bbb"')
);

$fp = fopen('file.csv', 'w');

foreach ($list as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);
?>

L'exemple ci-dessus va écrire ce qui suit vers file.csv:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Notes

Note: Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

Voir aussi

  • fgetcsv() - Obtient une ligne depuis un pointeur de fichier et l'analyse pour des champs CSV


Alias de fwrite

  • « fputcsv
  • fread »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Alias de fwrite

fputs

(PHP 4, PHP 5, PHP 7)

fputs — Alias de fwrite()

Description

Cette fonction est un alias de : fwrite().


Lecture du fichier en mode binaire

  • « fputs
  • fscanf »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Lecture du fichier en mode binaire

fread

(PHP 4, PHP 5, PHP 7)

fread — Lecture du fichier en mode binaire

Description

string fread ( resource $handle , int $length )

fread() lit jusqu'à length octets dans le fichier référencé par handle. La lecture s'arrête lorsqu'une des conditions suivantes apparaît :

  • length octets ont été lus
  • la fin du fichier est atteinte
  • un paquet devient disponible ou le temps socket timeout est passé (pour les flux réseau)
  • si le flux est lu depuis le buffer, et qu'il ne représente pas un fichier plein, alors au moins une lecture d'un nombre d'octets équivalent à la taille du bloc (habituellement 8192) est réalisée ; suivants les données du buffer précédent, la taille des données retournées peut être supérieure à la taille du bloc.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

length

Taille length d'octets à lire.

Valeurs de retour

Retourne la chaîne lue, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fread()

<?php
// Lit un fichier, et le place dans une chaîne
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

Exemple #2 Exemple avec fread() et un fichier binaire

Avertissement

Sur les systèmes qui différencient les fichiers textes et binaires (i.e. Windows) le fichier doit être ouvert avec la lettre 'b' ajoutée au paramètre de mode de la fonction fopen().

<?php
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

Exemple #3 Exemple avec fread() et un fichier distant

Avertissement

Lorsque vous lisez depuis n'importe quelle source qui n'est pas un fichier local, comme des flux retournés lors de la lecture de fichiers distants ou depuis popen() et fsockopen(), la lecture s'arrête après la réception d'un paquet. Il faut donc faire des boucles pour collecter les données par paquet, comme présenté ci-dessous.

<?php
// Pour PHP 5 et suivant
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>
<?php
$handle = fopen("http://www.example.com/", "rb");
if (FALSE === $handle) {
    exit("Echec lors de l'ouverture du flux vers l'URL");
}

$contents = '';

while (!feof($handle)) {
    $contents .= fread($handle, 8192);
}
fclose($handle);
?>

Notes

Note:

Si vous voulez lire le contenu d'un fichier dans une chaîne de caractères, utilisez plutôt file_get_contents() qui est bien plus rapide que le code ci-dessus.

Note:

Noter que la fonction fread() lit la position courante du pointeur de fichier. Utilisez la fonction ftell() pour trouver la position courante du pointeur et la fonction rewind() pour réinitiliaser la position du pointeur.

Voir aussi

  • fwrite() - Écrit un fichier en mode binaire
  • fopen() - Ouvre un fichier ou une URL
  • fsockopen() - Ouvre un socket de connexion Internet ou Unix
  • popen() - Crée un processus de pointeur de fichier
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fgetss() - Renvoie la ligne courante du fichier et élimine les balises HTML
  • fscanf() - Analyse un fichier en fonction d'un format
  • file() - Lit le fichier et renvoie le résultat dans un tableau
  • fpassthru() - Affiche le reste du fichier
  • ftell() - Renvoie la position courante du pointeur de fichier
  • rewind() - Replace le pointeur de fichier au début


Analyse un fichier en fonction d'un format

  • « fread
  • fseek »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Analyse un fichier en fonction d'un format

fscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

fscanf — Analyse un fichier en fonction d'un format

Description

mixed fscanf ( resource $handle , string $format [, mixed &$... ] )

La fonction fscanf() est similaire à la fonction sscanf(), sauf qu'elle prend un fichier en entrée, représentée par la ressource handle et interprète l'entrée en fonction du format format spécifié, qui est décrit dans la documentation de la fonction sprintf().

Tous les caractères blancs de la chaîne de formatage correspondent à autant d'espaces dans le flux d'entrée. Cela signifie qu'une tabulation \t dans la chaîne de format peut remplacer un espace simple dans le flux d'entrée.

Chaque appel à la fonction fscanf() lit une ligne du fichier.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

format

Le format spécifié, tel que décrit dans la documentation de la fonction sprintf().

...

Les valeurs optionnelles à assigner.

Valeurs de retour

Si seulement 2 paramètres sont passés à la fonction, la valeur analysée sera retourné sous la forme d'un tableau. Si des paramètres optionnels sont passés, la fonction retournera le nombre de valeurs assignées. Les paramètres optionnels doivent être passés par référence.

Exemples

Exemple #1 Exemple avec fscanf()

<?php
$handle = fopen("users.txt", "r");
while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
    list ($name, $profession, $countrycode) = $userinfo;
    //... traitement des données
}
fclose($handle);
?>

Exemple #2 Contenu du fichier users.txt

javier  argonaut        pe
hiroshi sculptor        jp
robert  slacker us
luigi   florist it

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fgetss() - Renvoie la ligne courante du fichier et élimine les balises HTML
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée


Modifie la position du pointeur de fichier

  • « fscanf
  • fstat »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Modifie la position du pointeur de fichier

fseek

(PHP 4, PHP 5, PHP 7)

fseek — Modifie la position du pointeur de fichier

Description

int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )

Modifie le curseur de position dans le fichier handle. La nouvelle position, mesurée en octets, à partir du début du fichier, est obtenue en additionnant la distance offset à la position whence.

En général, il est possible de se déplacer au delà de la fin du flux (eof); si des données sont écrites dans ce cas, l'espace entre la fin du flux et la position courante sera rempli d'octets nuls. Cependant, certains flux ne supportent pas ce comportement, en particulier lorsque l'espace de stockage sous-jascent est de taille fixe.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

offset

La position.

Pour se déplacer à une position avant la fin du fichier, vous devez passer une valeur négative à offset et définir le paramètre whence à la valeur SEEK_END.

whence

Les valeurs possibles pour whence sont :

  • SEEK_SET : la position finale vaut offset octets.
  • SEEK_CUR : la position finale sera la position courante, ajoutée à offset octets.
  • SEEK_END : la position finale vaut la position courante par rapport à la fin du fichier, ajoutée de offset octets.

Valeurs de retour

Retourne 0 en cas de succès, et sinon -1.

Exemples

Exemple #1 Exemple avec fseek()

<?php

$fp = fopen('somefile.txt', 'r');

// lit quelques données
$data = fgets($fp, 4096);

// retourne au début du fichier
// identique à rewind($fp);
fseek($fp, 0);

?>

Notes

Note:

Si vous ouvrez le fichier avec le mode a ou a+, toutes les données que vous écrirez dans le fichier seront toujours ajoutées, sans se soucier de la position dans le fichier.

Note:

Tous les flux ne supportent pas le déplacement. Pour ceux qui ne le supportent pas, le déplacement en avant se fera en lisant et libérant les octets; les autres formes de déplacements échoueront.

Voir aussi

  • ftell() - Renvoie la position courante du pointeur de fichier
  • rewind() - Replace le pointeur de fichier au début


Lit les informations sur un fichier à partir d'un pointeur de fichier

  • « fseek
  • ftell »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Lit les informations sur un fichier à partir d'un pointeur de fichier

fstat

(PHP 4, PHP 5, PHP 7)

fstat — Lit les informations sur un fichier à partir d'un pointeur de fichier

Description

array fstat ( resource $handle )

Rassemble les informations sur le fichier dont on connaît le pointeur handle. fstat() est similaire à la fonction stat(), hormis le fait qu'elle utilise un pointeur de fichier, au lieu d'un nom de fichier.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

Valeurs de retour

Retourne un tableau contenant les statistiques pour le fichier ; le format de ce tableau est décrit en détail sur la page de documentation de la fonction stat().

Exemples

Exemple #1 Exemple avec fstat()

<?php

// ouvre un fichier
$fp = fopen("/etc/passwd", "r");

// lit des informations
$fstat = fstat($fp);

// ferme le fichier
fclose($fp);

// affiche le résultat
print_r(array_slice($fstat, 13));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [dev] => 771
    [ino] => 488704
    [mode] => 33188
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 1114
    [atime] => 1061067181
    [mtime] => 1056136526
    [ctime] => 1056136526
    [blksize] => 4096
    [blocks] => 8
)

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.


Renvoie la position courante du pointeur de fichier

  • « fstat
  • ftruncate »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Renvoie la position courante du pointeur de fichier

ftell

(PHP 4, PHP 5, PHP 7)

ftell — Renvoie la position courante du pointeur de fichier

Description

int ftell ( resource $handle )

Renvoie la position courante du pointeur de fichier.

Liste de paramètres

handle

Le pointeur de fichier doit être valide, et avoir été correctement ouvert par fopen() ou popen(). ftell() donne des résultats non définis pour les flux "append-only" (ouvert avec le flag "a").

Valeurs de retour

Retourne la position courante du pointeur dans le fichier repéré par le pointeur handle sous la forme d'un entier, i.e., sa position dans le flux du fichier.

Si une erreur survient, la fonction retournera FALSE.

Note: Comme le type entier de PHP est signé et que de nombreuses plates-formes utilisent des entiers de 32 bits, certaines fonctions relatives au système de fichiers peuvent retourner des résultats étranges pour les fichiers de taille supérieure à 2 Go.

Exemples

Exemple #1 Exemple avec ftell()

<?php

// Ouvre un fichier et y lit quelques données
$fp = fopen("/etc/passwd", "r");
$data = fgets($fp, 12);

// Où en sommes-nous ?
echo ftell($fp); // 11

fclose($fp);

?>

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • popen() - Crée un processus de pointeur de fichier
  • fseek() - Modifie la position du pointeur de fichier
  • rewind() - Replace le pointeur de fichier au début


Tronque un fichier

  • « ftell
  • fwrite »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Tronque un fichier

ftruncate

(PHP 4, PHP 5, PHP 7)

ftruncate — Tronque un fichier

Description

bool ftruncate ( resource $handle , int $size )

Prend le pointeur de fichier handle et le tronque à la taille de size.

Liste de paramètres

handle

Le pointeur de fichier.

Note:

Le pointeur handle doit avoir été ouvert en écriture.

size

La taille que l'on doit conserver.

Note:

Si size est plus grand que la taille du fichier, ce dernier sera étendu par des octets nuls.

Si size est plus petit que la taille du fichier, le reste des données sera perdu.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftruncate()

<?php
$filename = 'lorem_ipsum.txt';

$handle = fopen($filename, 'r+');
ftruncate($handle, rand(1, filesize($filename)));
rewind($handle);
echo fread($handle, filesize($filename));
fclose($handle);
?>

Notes

Note:

Le pointeur de fichier n'est pas modifié.

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • fseek() - Modifie la position du pointeur de fichier


Écrit un fichier en mode binaire

  • « ftruncate
  • glob »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Écrit un fichier en mode binaire

fwrite

(PHP 4, PHP 5, PHP 7)

fwrite — Écrit un fichier en mode binaire

Description

int fwrite ( resource $handle , string $string [, int $length ] )

fwrite() écrit le contenu de la chaîne string dans le fichier pointé par handle.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

string

La chaîne à écrire.

length

Si la longueur length est fournie, l'écriture s'arrêtera après length octets, ou à la fin de la chaîne (le premier des deux).

Notez que si length est fourni, alors l'option de configuration magic_quotes_runtime sera ignorée, et les slash seront conservés.

Valeurs de retour

fwrite() retourne le nombre d'octets écrits, ou FALSE si une erreur survient.

Notes

Note:

Le fait d'écrire dans un flux peut se terminer avant que la chaîne complète ne soit écrite. La valeur retournée par la fonction fwrite() peut être vérifiée comme ceci :

<?php
function fwrite_stream($fp, $string) {
    for ($written = 0; $written < strlen($string); $written += $fwrite) {
        $fwrite = fwrite($fp, substr($string, $written));
        if ($fwrite === false) {
            return $fwrite;
        }
    }
    return $written;
}
?>

Note:

Sur les systèmes qui font la différence entre les fichiers binaires et les fichiers textes (par exemple, Windows), le fichier doit être ouvert avec l'option 'b' inclus dans le paramètre de mode de fopen().

Note:

Si handle est ouvert en mode ajout (append), fwrite() sera atomique (sauf si la taille de string excède la taille du bloc du système de fichiers, sur quelques plates-formes, et tant que le fichier se trouve sur le système de fichiers local). Ainsi, il n'est pas nécessaire d'utiliser la fonction flock() sur une ressource avant d'appeler la fonction fwrite() ; toutes les données seront écrites sans interruption.

Note:

Si l'on écrit 2 fois dans le fichier, les données seront ajoutées à la fin du fichier ; cela signifie que l'exemple suivant ne donnera pas le résultat attendu :

<?php
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);

// le contenu de 'data.txt' est maintenant 123 et non 23 !
?>

Exemples

Exemple #1 Exemple avec fwrite()

<?php
$filename = 'test.txt';
$somecontent = "Ajout de chaîne dans le fichier\n";

// Assurons nous que le fichier est accessible en écriture
if (is_writable($filename)) {

    // Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout
    // Le pointeur de fichier est placé à la fin du fichier
    // c'est là que $somecontent sera placé
    if (!$handle = fopen($filename, 'a')) {
         echo "Impossible d'ouvrir le fichier ($filename)";
         exit;
    }

    // Ecrivons quelque chose dans notre fichier.
    if (fwrite($handle, $somecontent) === FALSE) {
        echo "Impossible d'écrire dans le fichier ($filename)";
        exit;
    }

    echo "L'écriture de ($somecontent) dans le fichier ($filename) a réussi";

    fclose($handle);

} else {
    echo "Le fichier $filename n'est pas accessible en écriture.";
}
?>

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fopen() - Ouvre un fichier ou une URL
  • fsockopen() - Ouvre un socket de connexion Internet ou Unix
  • popen() - Crée un processus de pointeur de fichier
  • file_get_contents() - Lit tout un fichier dans une chaîne


Recherche des chemins qui vérifient un masque

  • « fwrite
  • is_dir »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Recherche des chemins qui vérifient un masque

glob

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

glob — Recherche des chemins qui vérifient un masque

Description

array glob ( string $pattern [, int $flags = 0 ] )

glob() recherche tous les chemins qui vérifient le masque pattern, en suivant les règles utilisées par la fonction glob() de la libc, qui sont les mêmes que celles utilisées par le Shell en général.

Liste de paramètres

pattern

Le masque. Aucun remplacement de tilde (~) ou de paramètre n'est fait.

flags

Les drapeaux valides sont :

  • GLOB_MARK : Ajoute un slash final à chaque dossier retourné
  • GLOB_NOSORT : Retourne les fichiers dans l'ordre d'apparence (pas de tri). Lorsque ce drapeau n'est pas utilisé, les noms des champs sont triés alphabétiquement
  • GLOB_NOCHECK : Retourne le masque de recherche si aucun fichier n'a été trouvé
  • GLOB_NOESCAPE : Ne protège aucun métacaractère d'un antislash
  • GLOB_BRACE : Remplace {a,b,c} par 'a', 'b' ou 'c'
  • GLOB_ONLYDIR : Ne retourne que les dossiers qui vérifient le masque
  • GLOB_ERR : Stop lors d'une erreur (comme des dossiers non lisibles), par défaut, les erreurs sont ignorées.

Valeurs de retour

Retourne un tableau contenant les fichiers et dossiers correspondant au masque, un tableau vide s'il n'y a aucune correspondance, ou FALSE si une erreur survient.

Note:

Sous certains systèmes, il est impossible de distinguer un masque vide d'une erreur.

Historique

Version | Description
5.1.0 | GLOB_ERR a été ajouté

Exemples

Exemple #1 Un moyen pratique pour remplacer opendir() par glob()

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename occupe " . filesize($filename) . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

funclist.txt occupe 44686
funcsummary.txt occupe 267625
quickref.txt occupe 137820

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note: Cette fonction n'est pas disponible sur quelques systèmes (e.g. vieux Sun OS).

Note: Le drapeau GLOB_BRACE n'est pas disponible sur quelques systèmes non GNU, comme Solaris.

Voir aussi

  • opendir() - Ouvre un dossier, et récupère un pointeur dessus
  • readdir() - Lit une entrée du dossier
  • closedir() - Ferme le pointeur sur le dossier
  • fnmatch() - Teste un nom de fichier au moyen d'un masque de recherche


Indique si le fichier est un dossier

  • « glob
  • is_executable »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Indique si le fichier est un dossier

is_dir

(PHP 4, PHP 5, PHP 7)

is_dir — Indique si le fichier est un dossier

Description

bool is_dir ( string $filename )

Indique si le fichier est un dossier.

Liste de paramètres

filename

Chemin vers le fichier. Si filename est un fichier relatif, il sera vérifié relativement au dossier de travail courant. Si filename est un lien symbolique ou un lien conventionnel, le lien sera résolu et vérifié. Si vous avez activé le safe mode, ou open_basedir, plus de restrictions peuvent être appliquées.

Valeurs de retour

Retourne TRUE si le nom de fichier existe et que c'est un dossier, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_dir()

<?php
var_dump(is_dir('a_file.txt'));
var_dump(is_dir('bogus_dir/abc'));

var_dump(is_dir('..')); // un dossier au dessus
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(false)
bool(true)

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • chdir() - Change de dossier
  • dir() - Retourne une instance de la classe Directory
  • opendir() - Ouvre un dossier, et récupère un pointeur dessus
  • is_file() - Indique si le fichier est un véritable fichier
  • is_link() - Indique si le fichier est un lien symbolique


Indique si le fichier est exécutable

  • « is_dir
  • is_file »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Indique si le fichier est exécutable

is_executable

(PHP 4, PHP 5, PHP 7)

is_executable — Indique si le fichier est exécutable

Description

bool is_executable ( string $filename )

Indique si le fichier est exécutable.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne TRUE si le fichier existe et qu'il est exécutable, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_executable()

<?php

$file = '/home/vincent/somefile.sh';

if (is_executable($file)) {
    echo $file.' est exécutable';
} else {
    echo $file.' n\'est pas exécutable';
}

?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • is_file() - Indique si le fichier est un véritable fichier
  • is_link() - Indique si le fichier est un lien symbolique


Indique si le fichier est un véritable fichier

  • « is_executable
  • is_link »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Indique si le fichier est un véritable fichier

is_file

(PHP 4, PHP 5, PHP 7)

is_file — Indique si le fichier est un véritable fichier

Description

bool is_file ( string $filename )

Indique si le fichier est un véritable fichier.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne TRUE si le nom de fichier existe et que c'est un fichier régulier, FALSE sinon.

Note: Comme le type entier de PHP est signé et que de nombreuses plates-formes utilisent des entiers de 32 bits, certaines fonctions relatives au système de fichiers peuvent retourner des résultats étranges pour les fichiers de taille supérieure à 2 Go.

Exemples

Exemple #1 Exemple avec is_file()

<?php
var_dump(is_file('a_file.txt')) . "\n";
var_dump(is_file('/usr/bin/')) . "\n";
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • is_dir() - Indique si le fichier est un dossier
  • is_link() - Indique si le fichier est un lien symbolique


Indique si le fichier est un lien symbolique

  • « is_file
  • is_readable »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Indique si le fichier est un lien symbolique

is_link

(PHP 4, PHP 5, PHP 7)

is_link — Indique si le fichier est un lien symbolique

Description

bool is_link ( string $filename )

Indique si le fichier est un lien symbolique.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne TRUE si le nom de fichier existe et que c'est un lien symbolique, FALSE sinon.

Exemples

Exemple #1 Création et vérification d'un lien symbolique

<?php
$link = 'uploads';

if (is_link($link)) {
    echo(readlink($link));
} else {
    symlink('uploads.php', $link);
}
?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • is_dir() - Indique si le fichier est un dossier
  • is_file() - Indique si le fichier est un véritable fichier
  • readlink() - Renvoie le contenu d'un lien symbolique


Indique si un fichier existe et est accessible en lecture

  • « is_link
  • is_uploaded_file »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Indique si un fichier existe et est accessible en lecture

is_readable

(PHP 4, PHP 5, PHP 7)

is_readable — Indique si un fichier existe et est accessible en lecture

Description

bool is_readable ( string $filename )

Indique si un fichier existe et est accessible en lecture.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne TRUE si le fichier ou le dossier spécifié par filename existe et est accessible en lecture, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_readable()

<?php
$filename = 'test.txt';
if (is_readable($filename)) {
    echo 'Le fichier est accessible en lecture';
} else {
    echo 'Le fichier n\'est pas accessible en lecture !';
}
?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

N'oubliez pas que PHP accède aux fichiers avec les mêmes autorisations que l'utilisateur qui fait tourner le serveur web (souvent, c'est 'nobody', personne). Les limitations du safe mode ne sont prises en compte qu'à partir de PHP 5.1.5.

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Note:

La vérification est effectuée en utilisant l'UID/GID réel au lieu de l'effectif.

Cette fonction peut retourner TRUE pour les dossiers. Utilisez la fonction is_dir() pour distinguer les fichiers et les dossiers.

Voir aussi

  • is_writable() - Indique si un fichier est accessible en écriture
  • file_exists() - Vérifie si un fichier ou un dossier existe
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier


Indique si le fichier a été téléchargé par HTTP POST

  • « is_readable
  • is_writable »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Indique si le fichier a été téléchargé par HTTP POST

is_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

is_uploaded_file — Indique si le fichier a été téléchargé par HTTP POST

Description

bool is_uploaded_file ( string $filename )

Retourne TRUE si le fichier filename a été téléchargé par HTTP POST. Cela est très utile pour vous assurer qu'un utilisateur n'essaie pas d'accéder intentionnellement à un fichier auquel il n'a pas droit (comme /etc/passwd).

Ce type de vérification est spécialement important s'il est possible que les fichiers téléchargés révèlent leur contenu à l'utilisateur, ou même aux utilisateurs du même système.

Pour un fonctionnement correct, la fonction is_uploaded_file() nécessite un argument comme $_FILES['userfile']['tmp_name'], - le nom du fichier téléchargé sur la machine cliente $_FILES['userfile']['name'] ne fonctionne pas.

Liste de paramètres

filename

Le nom de fichier à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec is_uploaded_file()

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   echo "File ". $_FILES['userfile']['name'] ." téléchargé avec succès.\n";
   echo "Affichage du contenu\n";
   readfile($_FILES['userfile']['tmp_name']);
} else {
   echo "Attaque possible par téléchargement de fichier : ";
   echo "Nom du fichier : '". $_FILES['userfile']['tmp_name'] . "'.";
}

?>

Voir aussi

  • move_uploaded_file() - Déplace un fichier téléchargé
  • $_FILES
  • Voir la section sur la gestion des téléchargements pour un exemple d'utilisation simple.


Indique si un fichier est accessible en écriture

  • « is_uploaded_file
  • is_writeable »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Indique si un fichier est accessible en écriture

is_writable

(PHP 4, PHP 5, PHP 7)

is_writable — Indique si un fichier est accessible en écriture

Description

bool is_writable ( string $filename )

retourne TRUE si filename existe et est accessible en écriture. L'argument peut être le nom d'un dossier, vous permettant ainsi de vérifier si le dossier est accessible en écriture.

N'oubliez pas que PHP accède aux fichiers avec les mêmes autorisations que l'utilisateur qui fait tourner le serveur web (souvent, c'est 'nobody', personne). Les limitations du safe mode ne sont pas prises en compte.

Liste de paramètres

filename

Le nom du fichier à vérifier.

Valeurs de retour

Retourne TRUE si le fichier filename existe et est accessible en écriture.

Exemples

Exemple #1 Exemple avec is_writable()

<?php
$filename = 'test.txt';
if (is_writable($filename)) {
    echo 'Le fichier est accessible en écriture.';
} else {
    echo 'Le fichier n\'est pas accessible en écriture !';
}
?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • is_readable() - Indique si un fichier existe et est accessible en lecture
  • file_exists() - Vérifie si un fichier ou un dossier existe
  • fwrite() - Écrit un fichier en mode binaire


Alias de is_writable

  • « is_writable
  • lchgrp »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Alias de is_writable

is_writeable

(PHP 4, PHP 5, PHP 7)

is_writeable — Alias de is_writable()

Description

Cette fonction est un alias de : is_writable().


Change l'appartenance du groupe d'un lien symbolique

  • « is_writeable
  • lchown »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Change l'appartenance du groupe d'un lien symbolique

lchgrp

(PHP 5 >= 5.1.2, PHP 7)

lchgrp — Change l'appartenance du groupe d'un lien symbolique

Description

bool lchgrp ( string $filename , mixed $group )

Essaie de remplacer le groupe du lien symbolique filename par le groupe group.

Seul le super-utilisateur peut changer le groupe d'un lien symbolique arbitrairement; les autres utilisateurs peuvent changer le groupe d'un lien symbolique vers un groupe auquel cet utilisateur est membre.

Liste de paramètres

filename

chemin vers le lien symbolique.

group

Le groupe, spécifié par son nom ou son numéro.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Modification du groupe d'un lien symbolique

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchgrp($link, 8);
?>

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note: Cette fonction n'est pas implémentée sous Windows.

Voir aussi

  • chgrp() - Change le groupe d'un fichier
  • lchown() - Change le propriétaire d'un lien symbolique
  • chown() - Change le propriétaire du fichier
  • chmod() - Change le mode du fichier


Change le propriétaire d'un lien symbolique

  • « lchgrp
  • link »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Change le propriétaire d'un lien symbolique

lchown

(PHP 5 >= 5.1.2, PHP 7)

lchown — Change le propriétaire d'un lien symbolique

Description

bool lchown ( string $filename , mixed $user )

Essaie de remplacer le propriétaire du lien symbolique filename par l'utilisateur user

Seul le super-utilisateur peut changer le propriétaire d'un lien symbolique.

Liste de paramètres

filename

Chemin vers le fichier.

user

L'utilisateur, par son nom ou son numéro.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Modification du propriétaire d'un lien symbolique

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchown($link, 8);
?>

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note: Cette fonction n'est pas implémentée sous Windows.

Voir aussi

  • chown() - Change le propriétaire du fichier
  • lchgrp() - Change l'appartenance du groupe d'un lien symbolique
  • chgrp() - Change le groupe d'un fichier
  • chmod() - Change le mode du fichier


Crée un lien

  • « lchown
  • linkinfo »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Crée un lien

link

(PHP 4, PHP 5, PHP 7)

link — Crée un lien

Description

bool link ( string $target , string $link )

link() crée un lien.

Liste de paramètres

target

La cible du lien.

link

Le nom du lien.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sous Windows (Vista, Server 2008 ou plus récent).

Exemples

Exemple #1 Création d'un lien

<?php

$target = 'source.ext'; // Ceci est le fichier qui existe actuellement
$link = 'newfile.ext';  // Ceci sera le nom du fichier que vous voulez lier

link($target, $link);
?>

Notes

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note: Windows uniquement : cette fonction requiert un niveau de fonctionnement avec des droits élevés, ou bien la désactivation de UAC.

Voir aussi

  • symlink() - Crée un lien symbolique
  • readlink() - Renvoie le contenu d'un lien symbolique
  • linkinfo() - Renvoie les informations d'un lien


Renvoie les informations d'un lien

  • « link
  • lstat »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Renvoie les informations d'un lien

linkinfo

(PHP 4, PHP 5, PHP 7)

linkinfo — Renvoie les informations d'un lien

Description

int linkinfo ( string $path )

Renvoie les informations d'un lien.

Cette fonction est utilisée pour vérifier si un lien (pointé par le chemin path) existe réellement (en utilisant la même méthode que la macro S_ISLNK, définie dans stat.h).

Liste de paramètres

path

Chemin vers le lien.

Valeurs de retour

linkinfo() retourne le champ st_dev de la structure stat Unix C, retourné par l'appel système lstat. Si une erreur survient, la fonction retournera 0 ou FALSE.

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sous Windows (Vista, Server 2008 ou plus récent).

Exemples

Exemple #1 Exemple avec linkinfo()

<?php

echo linkinfo('/vmlinuz'); // 835

?>

Voir aussi

  • symlink() - Crée un lien symbolique
  • link() - Crée un lien
  • readlink() - Renvoie le contenu d'un lien symbolique


Retourne les informations sur un fichier ou un lien symbolique

  • « linkinfo
  • mkdir »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Retourne les informations sur un fichier ou un lien symbolique

lstat

(PHP 4, PHP 5, PHP 7)

lstat — Retourne les informations sur un fichier ou un lien symbolique

Description

array lstat ( string $filename )

Retourne les informations sur un fichier ou un lien symbolique.

Liste de paramètres

filename

Chemin vers un fichier ou un lien symbolique.

Valeurs de retour

Voyez la page de manuel de stat() pour plus d'informations sur la structure du tableau retourné par lstat(). Cette fonction est identique à la fonction stat() hormis le fait que si filename est un lien symbolique, les informations seront alors basées sur le lien symbolique.

Exemples

Exemple #1 Comparaison entre stat() et lstat()

<?php
symlink('uploads.php', 'uploads');

// On met en évidence la différence d'informations
array_diff(stat('uploads'), lstat('uploads'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Informations qui diffèrent entre les 2 fichiers.

Array
(
    [ino] => 97236376
    [mode] => 33188
    [size] => 34
    [atime] => 1223580003
    [mtime] => 1223581848
    [ctime] => 1223581848
    [blocks] => 8
)

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • stat() - Renvoie les informations à propos d'un fichier


Crée un dossier

  • « lstat
  • move_uploaded_file »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Crée un dossier

mkdir

(PHP 4, PHP 5, PHP 7)

mkdir — Crée un dossier

Description

bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )

Tente de créer un dossier.

Liste de paramètres

pathname

Le chemin du dossier.

mode

Le mode par défaut est le mode 0777, ce qui correspond au maximum de droits possible. Pour plus d'informations sur les modes, lisez en détail la documentation de la fonction chmod().

Note:

mode est ignoré sous Windows.

Notez que vous aurez à préciser le mode en base octale, ce qui signifie que vous aurez probablement un 0 comme premier chiffre. Le mode sera aussi modifié par le umask courant, que vous pouvez modifier avec la fonction umask().

recursive

Permet la création de répertoires imbriqués spécifiés dans le pathname.

context

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Flux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mkdir()

<?php
mkdir("/path/to/my/dir", 0700);
?>

Exemple #2 mkdir() utilisant le paramètre recursive

<?php
// Structure de répertoire désirée
$structure = './depth1/depth2/depth3/';

// Pour créer une stucture imbriquée, le paramètre $recursive
// doit être spécifié.

if (!mkdir($structure, 0777, true)) {
    die('Echec lors de la création des répertoires...');
}

// ...
?>

Erreurs / Exceptions

Emet une alerte de niveau E_WARNING si le dossier existe déjà.

Emet une alerte de niveau E_WARNING si les permissions empéchent la création du dossier.

Notes

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

  • is_dir() - Indique si le fichier est un dossier
  • rmdir() - Efface un dossier


Déplace un fichier téléchargé

  • « mkdir
  • parse_ini_file »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Déplace un fichier téléchargé

move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

move_uploaded_file — Déplace un fichier téléchargé

Description

bool move_uploaded_file ( string $filename , string $destination )

S'assure que le fichier filename est un fichier téléchargé par HTTP POST. Si le fichier est valide, il est déplacé jusqu'à destination.

Ce type de vérification est spécialement important s'il est possible que les fichiers téléchargés révèlent leur contenu à l'utilisateur, ou même aux utilisateurs du même système.

Liste de paramètres

filename

Le nom du fichier téléchargé.

destination

La destination du fichier déplacé.

Valeurs de retour

Retourne TRUE en cas de succès.

Si filename n'est pas valide, rien ne se passe, et move_uploaded_file() retournera FALSE.

Si filename est un fichier téléchargé, mais que pour une raison quelconque, il ne peut être déplacé, rien ne se passe, et move_uploaded_file() retourne FALSE. De plus, une alerte sera affichée.

Exemples

Exemple #1 Téléchargement de plusieurs fichiers

<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        $name = $_FILES["pictures"]["name"][$key];
        move_uploaded_file($tmp_name, "$uploads_dir/$name");
    }
}
?>

Notes

Note:

move_uploaded_file() n'est pas affectée par les restrictions liées au safe mode et à l'open_basedir. Cependant, les restrictions sont placées uniquement sur le paramètre destination qui permet le déplacement des fichiers chargés dans lesquels filename peut entrer en conflit avec ces restrictions. move_uploaded_file() permet de s'assurer de la sécurité de cette opération en autorisant le déplacement des seuls fichiers chargés via PHP.

Avertissement

Si le fichier de destination existe déjà, il sera écrasé.

Voir aussi

  • is_uploaded_file() - Indique si le fichier a été téléchargé par HTTP POST
  • rename() - Renomme un fichier ou un dossier
  • Voir la section sur les téléchargements de fichiers pour un exemple d'utilisation


Analyse un fichier de configuration

  • « move_uploaded_file
  • parse_ini_string »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Analyse un fichier de configuration

parse_ini_file

(PHP 4, PHP 5, PHP 7)

parse_ini_file — Analyse un fichier de configuration

Description

array parse_ini_file ( string $filename [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL ]] )

parse_ini_file() charge le fichier filename et retourne les configurations qui s'y trouvent sous forme d'un tableau associatif.

La structure des fichiers de configuration lus est similaire à celle de php.ini.

Liste de paramètres

filename

Le nom du fichier de configuration à analyser.

process_sections

En passant le deuxième paramètre optionnel à process_sections, vous obtiendrez un tableau multidimensionnel avec les noms des sections. La valeur par défaut de ce paramètre est FALSE

scanner_mode

Peut être INI_SCANNER_NORMAL (défaut) ou INI_SCANNER_RAW. Si INI_SCANNER_RAW est fourni, alors les valeurs en option ne seront pas analysées.

Depuis PHP 5.6.1 peut aussi être spécifié comme INI_SCANNER_TYPED. Dans ce mode les booléens, null et entiers sont préservés tant que possible. Les chaines de caractères "true", "on" et "yes" sont converties vers TRUE. "false", "off", "no" et "none" sont considérés comme FALSE. "null" est converti en NULL dans ce mode. De plus toutes les chaines de caractères numériques sont converties en entier si possible.

Valeurs de retour

La configuration est retournée sous la forme d'un tableau associatif en cas de succès, et FALSE si une erreur survient.

Historique

Version | Description
7.0.0 | Le dièse (#) n'est plus reconnu comme un commentaire.
5.6.1 | Ajout d'un nouveau mode INI_SCANNER_TYPED.
5.3.0 | Ajout du paramètre optionnel scanner_mode. Les guillemets simples doivent maintenant être utilisés autour des assignements de variables. Le caractère dièse (#) ne doit plus être utilisé comme commentaire, et émettra une alerte si vous l'utilisez.
5.2.7 | En cas d'erreur de syntaxe, la fonction retourne maintenant FALSE au lieu d'un tableau vide.
5.2.4 | Les noms de section et les clés, composés de numéros, sont maintenant évalués comme des entiers, ceux commençant par un 0 seront évalués comme des octales, et ceux commençant par 0x, comme des hexadécimaux.
5.0.0 | Les valeurs entourées par des guillemets, peuvent contenir des nouvelles lignes.
4.2.1 | Cette fonction est maintenant affectée par le safe mode et l'open_basedir.

Exemples

Exemple #1 Contenu du fichier sample.ini

; Ceci est un fichier de configuration
; Les commentaires commencent par ';', comme dans php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"

[third_section]
phpversion[] = "5.0"
phpversion[] = "5.1"
phpversion[] = "5.2"
phpversion[] = "5.3"

urls[svn] = "http://svn.php.net"
urls[git] = "http://git.php.net"

Exemple #2 Exemple avec parse_ini_file()

Les constantes peuvent aussi être utilisées dans le fichier .ini, ce qui fait que si vous définissez une constante avant d'exécuter parse_ini_file(), elle sera intégrée dans les résultats. Seules les valeurs de configuration sont remplacées par leur équivalent en constantes. Par exemple :

<?php

define('BIRD', 'Dodo bird');

// Analyse sans sections
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);

// Analyse avec sections
$ini_array = parse_ini_file("sample.ini", true);
print_r($ini_array);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [one] => 1
    [five] => 5
    [animal] => Dodo bird
    [path] => /usr/local/bin
    [URL] => http://www.example.com/~username
    [phpversion] => Array
        (
            [0] => 5.0
            [1] => 5.1
            [2] => 5.2
            [3] => 5.3
        )

    [urls] => Array
        (
            [svn] => http://svn.php.net
            [git] => http://git.php.net
        )

)
Array
(
    [first_section] => Array
        (
            [one] => 1
            [five] => 5
            [animal] => Dodo bird
        )

    [second_section] => Array
        (
            [path] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

    [third_section] => Array
        (
            [phpversion] => Array
                (
                    [0] => 5.0
                    [1] => 5.1
                    [2] => 5.2
                    [3] => 5.3
                )
            [urls] => Array
                (
                    [svn] => http://svn.php.net
                    [git] => http://git.php.net
                )

)

Exemple #3 parse_ini_file() pour analyser un fichier php.ini

<?php
// Une fonction simple pour comparer les résultats ci-dessous
function yesno($expression)
{
    return($expression ? 'Yes' : 'No');
}

// Lit le chemin du php.ini en utilisant php_ini_loaded_file()
// cette fonction est disponible depuis PHP 5.2.4
$ini_path = php_ini_loaded_file();

// Analyse de php.ini
$ini = parse_ini_file($ini_path);

// Affichage et comparatif des valeurs. Notez que get_cfg_var()
// va donner les mêmes résultats entre les résultats analysés et chargés
echo '(analysé) magic_quotes_gpc = ' . yesno($ini['magic_quotes_gpc']) . PHP_EOL;
echo '(chargé ) magic_quotes_gpc = ' . yesno(get_cfg_var('magic_quotes_gpc')) . PHP_EOL;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

(analysé) magic_quotes_gpc = Yes
(chargé ) magic_quotes_gpc = Yes

Notes

Note:

Cette fonction n'a rien a voir avec le fichier php.ini. Ce dernier a déjà été traité lorsque vous commencez à exécuter votre script. Cette fonction peut vous permettre de lire vos propres fichiers de configuration.

Note:

Si une valeur du fichier ini contient des données non-alphanumériques, il faut la protéger en la plaçant entre guillemets doubles (").

Note: Il existe des mots réservés qui ne doivent pas être utilisés en tant que clés dans les fichiers ini. Cela inclut : null, yes, no, true, false, on et off. Les valeurs null, off, no et false donnent "" (chaîne vide). Les valeurs on, yes et true donnent "1", à moins que le mode INI_SCANNER_TYPED ne soit utilisé (à partir de PHP 5.6.1). Les caractères ?{}|&~!()^" ne doivent pas être utilisés n'importe où dans la clé et ont une signification spéciale dans la valeur.

Note:

Les entrées sans un signal égal seront ignorées. Par exemple, "foo" sera ignoré alors que "bar =" sera analysé et ajouté avec une valeur vide. Par exemple, MySQL a une option de configuration "no-auto-rehash" dans le fichier my.cnf qui ne prend pas de valeur, aussi, elle sera ignorée.

Voir aussi

  • parse_ini_string() - Analyse une chaîne de configuration


Analyse une chaîne de configuration

  • « parse_ini_file
  • pathinfo »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Analyse une chaîne de configuration

parse_ini_string

(PHP 5 >= 5.3.0, PHP 7)

parse_ini_string — Analyse une chaîne de configuration

Description

array parse_ini_string ( string $ini [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL ]] )

parse_ini_string() retourne la configuration dans une chaîne de type ini dans un tableau associatif.

La structure de la chaîne doit être la même que celle du fichier php.ini.

Liste de paramètres

ini

Le contenu de type ini à analyser.

process_sections

En activant le paramètre process_sections avec TRUE, vous obtiendrez un tableau multidimensionnel, avec les noms de sections et de directives. La valeur par défaut du paramètre process_sections est FALSE

scanner_mode

Peut prendre les valeurs des constantes INI_SCANNER_NORMAL (par défaut) ou INI_SCANNER_RAW. Si INI_SCANNER_RAW est utilisé, les valeurs des options ne seront pas analysées.

Depuis PHP 5.6.1 peut aussi être spécifié comme INI_SCANNER_TYPED. Dans ce mode les booléens, null et entiers sont préservés tant que possible. Les chaines de caractères "true", "on" et "yes" sont converties vers TRUE. "false", "off", "no" et "none" sont considérés comme FALSE. "null" est converti en NULL dans ce mode. De plus toutes les chaines de caractères numériques sont converties en entier si possible.

Valeurs de retour

Les directives sont retournées sous forme de tableau array en cas de succès, et FALSE en cas d'erreur.

Notes

Note: Il y a plusieurs mots réservés que ne doivent pas être utilisés comme clé dans les fichiers .ini. Cela inclut : null, yes, no, true, false, on, off, none. Les valeurs null, off, no et false sont retournées comme "" (chaîne vide) et les valeurs on, yes et true sont retournées comme "1" à moins que le mode INI_SCANNER_TYPED ne soit utilisé. Les caractères ?{}|&~![()^" ne doivent être utilisés nulle part dans les clés, et ont une signification spéciale dans les valeurs.

Voir aussi

  • parse_ini_file() - Analyse un fichier de configuration


Retourne des informations sur un chemin système

  • « parse_ini_string
  • pclose »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Retourne des informations sur un chemin système

pathinfo

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pathinfo — Retourne des informations sur un chemin système

Description

mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )

pathinfo() retourne des informations sur le chemin path, sous forme de chaine ou de tableau associatif, ceci dépend du paramètre options.

Liste de paramètres

path

Le chemin à analyser.

options

Spécifie quel élément sera retourné. Vous pouvez associer les constantes PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION et PATHINFO_FILENAME.

Si options n'est pas renseigné, tous les éléments sont retournés.

Valeurs de retour

Si options n'est pas utilisé, cette fonction retournera un tableau associatif contenant les éléments suivants : dirname, basename, extension (s'il y en a), et filename.

Note:

Si path contient plus d'une extension, PATHINFO_EXTENSION retourne uniquement le dernier et PATHINFO_FILENAME va supprimer uniquement le dernier également (voir le premier exemple ci-dessous).

Note:

Si path n'a pas d'extension, l'élément extension ne sera pas retourné (voir le second exemple ci-après).

Note:

Si basename du paramètre path commence par un point, les caractères suivants sont interprétés comme l' extension, et le filename sera vide (voir le troisième exemple ci-dessous).

Si options est utilisé, cette fonction retournera une chaîne de caractères contenant les éléments.

Historique

Version | Description
5.2.0 | La constante PATHINFO_FILENAME a été ajoutée.

Exemples

Exemple #1 Exemple avec pathinfo()

<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // depuis PHP 5.2.0
?>

L'exemple ci-dessus va afficher :

/www/htdocs/inc
lib.inc.php
php
lib.inc

Exemple #2 Exemple pathinfo() sans extension

<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);

$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(0) ""

Notice: Undefined index: extension in test.php on line 6
NULL

Exemple #3 Exemple avec pathinfo()

<?php
print_r(pathinfo('/some/path/.test'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [dirname] => /some/path
    [basename] => .test
    [extension] => test
    [filename] =>
)

Notes

Note:

Pour plus d'informations sur la lecture du chemin courant, lisez la section sur les variables prédéfinies.

Note:

La fonction pathinfo() est sensible à la configuration locale, aussi, si vous voulez qu'elle analyse correctement un chemin contenant les caractères sur plusieurs octets, la locale correspondante doit être définie en utilisant la fonction setlocale().

Voir aussi

  • dirname() - Renvoie le chemin du dossier parent
  • basename() - Retourne le nom de la composante finale d'un chemin
  • parse_url() - Analyse une URL et retourne ses composants
  • realpath() - Retourne le chemin canonique absolu


Ferme un processus de pointeur de fichier

  • « pathinfo
  • popen »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Ferme un processus de pointeur de fichier

pclose

(PHP 4, PHP 5, PHP 7)

pclose — Ferme un processus de pointeur de fichier

Description

int pclose ( resource $handle )

Ferme un processus de pointeur de fichier ouvert avec la fonction popen().

Liste de paramètres

handle

Le pointeur de fichier doit être valide, et avoir été ouvert correctement par popen().

Valeurs de retour

Retourne le statut final du processus exécuté ou -1 en cas d'echec.

Note:

Si PHP a été compilé avec l'option de configuration --enable-sigchild, la valeur retournée de cette fonction sera indéfinie.

Exemples

Exemple #1 Exemple avec pclose()

<?php
$handle = popen('/bin/ls', 'r');
pclose($handle);
?>

Notes

Note: Unix seulement :

pclose() est implémenté en interne en utilisant l'appel système waitpid(3). Pour obtenir le code de statut réel de sortie, la fonction pcntl_wexitstatus() devrait être utilisée.

Voir aussi

  • popen() - Crée un processus de pointeur de fichier


Crée un processus de pointeur de fichier

  • « pclose
  • readfile »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Crée un processus de pointeur de fichier

popen

(PHP 4, PHP 5, PHP 7)

popen — Crée un processus de pointeur de fichier

Description

resource popen ( string $command , string $mode )

Crée un processus de pointeur de fichier, exécuté en effectuant un fork de la commande fournie par le paramètre command.

Liste de paramètres

command

La commande

mode

Le mode

Valeurs de retour

Retourne un pointeur de fichier identique à celui retourné par fopen(), hormis le fait qu'il sera unidirectionnel (lecture seule, ou écriture seule), et doit être terminé par pclose(). Ce pointeur peut être utilisé avec fgets(), fgetss() et fwrite(). Lorsque le mode est 'r', le pointeur de fichier retourné équivaut au STDOUT de la commande, et lorsque le mode est 'w', le pointeur de fichier retourné équivaut au STDIN de la commande.

Si une erreur survient, la fonction retournera FALSE.

Exemples

Exemple #1 Exemple avec popen()

<?php
$handle = popen("/bin/ls", "r");
?>

Si la commande à exécuter n'a pu être trouvée, une ressource valide sera retournée. Cela semble étrange, mais c'est pratique. cela vous permet d'accéder aux messages d'erreur qui ont été retournés par le Shell :

Exemple #2 Exemple avec popen()

<?php
error_reporting(E_ALL);

/* Ajoute une redirection pour que vous puissiez lire stderr. */
$handle = popen('/path/to/executable 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>

Notes

Note:

Si vous souhaitez un support bidirectionnel (two-way), utilisez la fonction proc_open().

Note: Lorsque le safe mode est activé, vous pouvez uniquement exécuter des programmes qui se situent dans le dossier défini par safe_mode_exec_dir. Pour des raisons pratiques, il n'est actuellement pas permis d''avoir le composant .. dans le chemin de l'exécutable.

Avertissement

Lorsque le safe mode est activé, la chaîne de commande est échappée avec la fonction escapeshellcmd(). Par exemple, echo y | echo x devient echo y \| echo x.

Voir aussi

  • pclose() - Ferme un processus de pointeur de fichier
  • fopen() - Ouvre un fichier ou une URL
  • proc_open() - Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties


Affiche un fichier

  • « popen
  • readlink »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Affiche un fichier

readfile

(PHP 4, PHP 5, PHP 7)

readfile — Affiche un fichier

Description

int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )

Lit un fichier et l'envoie dans le buffer de sortie.

Liste de paramètres

filename

Le fichier à lire.

use_include_path

Vous pouvez utiliser le deuxième paramètre optionnel pour explorer le dossier include_path, en passant la valeur de TRUE.

context

Une ressource de contexte.

Valeurs de retour

Retourne le nombre d'octets lus depuis le fichier. Si une erreur survient, retourne FALSE, et à moins que la fonction n'ait été appelée avec @readfile(), un message d'erreur est affiché.

Exemples

Exemple #1 Forcer le téléchargement en utilisant readfile()

<?php
$file = 'monkey.gif';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fenêtre d'ouverture / de sauvegarde

Notes

Note:

readfile() ne présentera pas de problème mémoire, même lors de l'envoi de gros fichiers. Si vous rencontrez ce type de problème, assurez-vous que la mise en mémoire tampon de la sortie est désactivée avec la fonction ob_get_level().

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Flux.

Voir aussi

  • fpassthru() - Affiche le reste du fichier
  • file() - Lit le fichier et renvoie le résultat dans un tableau
  • fopen() - Ouvre un fichier ou une URL
  • include - include
  • require - require
  • virtual() - Effectue une sous-requête Apache
  • file_get_contents() - Lit tout un fichier dans une chaîne
  • Liste des protocoles et des gestionnaires supportés


Renvoie le contenu d'un lien symbolique

  • « readfile
  • realpath_cache_get »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Renvoie le contenu d'un lien symbolique

readlink

(PHP 4, PHP 5, PHP 7)

readlink — Renvoie le contenu d'un lien symbolique

Description

string readlink ( string $path )

readlink() effectue la même chose que la fonction C readlink.

Liste de paramètres

path

Le chemin vers le lien symbolique.

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sous Windows (Vista, Server 2008 ou plus récent).

Valeurs de retour

Retourne le contenu du lien symbolique ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec readlink()

<?php

// Affiche e.g. /boot/vmlinux-2.4.20-xfs
echo readlink('/vmlinuz');

?>

Voir aussi

  • is_link() - Indique si le fichier est un lien symbolique
  • symlink() - Crée un lien symbolique
  • linkinfo() - Renvoie les informations d'un lien


Récupère les entrées du cache realpath

  • « readlink
  • realpath_cache_size »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Récupère les entrées du cache realpath

realpath_cache_get

(PHP 5 >= 5.3.2, PHP 7)

realpath_cache_get — Récupère les entrées du cache realpath

Description

array realpath_cache_get ( void )

Récupère les entrées du cache realpath.

Valeurs de retour

Retourne un tableaux d'entrées du cache realpath. Les clés sont les chemins originaux et les valeurs sont des tableaux de données contenant le chemin résolu, la date d'expiration et d'autres param-tres gardés en cache.

Exemples

Exemple #1 Exemple avec realpath_cache_get()

<?php
var_dump(realpath_cache_get());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["/test"]=>
  array(4) {
    ["key"]=>
    int(123456789)
    ["is_dir"]=>
    bool(true)
    ["realpath"]=>
    string(5) "/test"
    ["expires"]=>
    int(1260318939)
  }
  ["/test/test.php"]=>
  array(4) {
    ["key"]=>
    int(987654321)
    ["is_dir"]=>
    bool(false)
    ["realpath"]=>
    string(12) "/root/test.php"
    ["expires"]=>
    int(1260318939)
  }
}

Voir aussi

  • realpath_cache_size() - Récupère la taille du cache realpath


Récupère la taille du cache realpath

  • « realpath_cache_get
  • realpath »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Récupère la taille du cache realpath

realpath_cache_size

(PHP 5 >= 5.3.2, PHP 7)

realpath_cache_size — Récupère la taille du cache realpath

Description

int realpath_cache_size ( void )

Récupère la quantité de mémoire utilisée par le cache realpath.

Valeurs de retour

Retourne la quantité de mémoire utilisée par le cache realpath.

Exemples

Exemple #1 Exemple avec realpath_cache_size()

<?php
var_dump(realpath_cache_size());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(412)

Voir aussi

  • realpath_cache_get() - Récupère les entrées du cache realpath
  • L'option de configuration realpath_cache_size


Retourne le chemin canonique absolu

  • « realpath_cache_size
  • rename »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Retourne le chemin canonique absolu

realpath

(PHP 4, PHP 5, PHP 7)

realpath — Retourne le chemin canonique absolu

Description

string realpath ( string $path )

realpath() résout tous les liens symboliques, et remplace toutes les références /./, /../ et / de path puis retourne le chemin canonique absolu ainsi trouvé.

Liste de paramètres

path

Le chemin à vérifier.

Note:

Si un chemin d'accès doit être fourni, la valeur peut être vide ou NULL. Dans ces cas, la valeur est interprétée comme étant le dossier courant.

Valeurs de retour

Retourne le chemin canonique absolu ainsi trouvé. Le résultat ne contient aucun lien symbolique, /./ ou /../. Les délimiteurs de fin comme \ et / sont également supprimés.

realpath() retourne FALSE si une erreur survient, e.g. si le fichier n'existe pas.

Note:

Le script qui s'exécute doit avoir les permissions en exécution sur tous les dossiers de la structure, sinon, la fonction realpath() retournera FALSE.

Note:

Pour les systèmes de fichiers insensibles à la casse, realpath() peut ou non normaliser la casse des caractères.

Note: Comme le type entier de PHP est signé et que de nombreuses plates-formes utilisent des entiers de 32 bits, certaines fonctions relatives au système de fichiers peuvent retourner des résultats étranges pour les fichiers de taille supérieure à 2 Go.

Historique

Version | Description
5.3.0 | Avant cette version, si le dernier composant path n'existe pas, realpath() n'échouera pas sous les systèmes *BSD dans ce cas.
5.2.1 | Avant cette version, realpath() retournait FALSE si le paramètre path est une chaîne vide, ou si vaut NULL.

Exemples

Exemple #1 Exemple avec realpath()

<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;

echo realpath('/tmp/') . PHP_EOL;
?>

L'exemple ci-dessus va afficher :

/etc/passwd
/tmp

Exemple #2 Exemple avec realpath() sous Windows

Sous Windows, realpath() changera les chemins de style Unix en chemins de style Windows.

<?php
echo realpath('/windows/system32');

echo realpath('C:\Program Files\\');
?>

L'exemple ci-dessus va afficher :

C:\WINDOWS\System32
C:\Program Files

Voir aussi

  • basename() - Retourne le nom de la composante finale d'un chemin
  • dirname() - Renvoie le chemin du dossier parent
  • pathinfo() - Retourne des informations sur un chemin système


Renomme un fichier ou un dossier

  • « realpath
  • rewind »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Renomme un fichier ou un dossier

rename

(PHP 4, PHP 5, PHP 7)

rename — Renomme un fichier ou un dossier

Description

bool rename ( string $oldname , string $newname [, resource $context ] )

Tente de renommer oldname en newname, en le déplaçant de répertoire si nécessaire. Si newname existe, il sera écrasé.

Liste de paramètres

oldname

Note:

L'ancien nom. Le gestionnaire utilisé dans le paramètre oldname DOIT être le même que celui utilisé dans newname.

newname

Le nouveau nom.

context

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Flux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.1 | rename() peut maintenant renommer des fichiers entre différents lecteurs Windows.
5.0.0 | rename() peut aussi être utilisée avec certains gestionnaires d'URL. Reportez vous à Liste des protocoles et des gestionnaires supportés pour une liste des gestionnaires qui supportent rename().
4.3.3 | rename() peut maintenant renommer des fichiers entre différentes partitions Unix, si les permissions le permettent. Des Warnings peuvent être émis si la destination ne supporte pas les appels systèmes chown() ou chmod() sur les fichiers ; par exemple les systèmes de fichier FAT.

Exemples

Exemple #1 Exemple avec rename()

<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

Voir aussi

  • copy() - Copie un fichier
  • unlink() - Efface un fichier
  • move_uploaded_file() - Déplace un fichier téléchargé


Replace le pointeur de fichier au début

  • « rename
  • rmdir »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Replace le pointeur de fichier au début

rewind

(PHP 4, PHP 5, PHP 7)

rewind — Replace le pointeur de fichier au début

Description

bool rewind ( resource $handle )

Replace le pointeur de fichier handle au début du flux.

Note:

Si vous avez ouvert le fichier en mode d'ajout ("a" ou "a+"), toutes les données que vous écrirez dans ce fichier seront toujours ajoutées, sans se soucier de la position du pointeur de fichier.

Liste de paramètres

handle

Le pointeur de fichier doit être valide, et avoir été correctement ouvert par fopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec rewind()

<?php
$handle = fopen('output.txt', 'r+');

fwrite($handle, 'Really long sentence.');
rewind($handle);
fwrite($handle, 'Foo');
rewind($handle);

echo fread($handle, filesize('output.txt'));

fclose($handle);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Foolly long sentence.

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fseek() - Modifie la position du pointeur de fichier
  • ftell() - Renvoie la position courante du pointeur de fichier
  • fwrite() - Écrit un fichier en mode binaire


Efface un dossier

  • « rewind
  • set_file_buffer »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Efface un dossier

rmdir

(PHP 4, PHP 5, PHP 7)

rmdir — Efface un dossier

Description

bool rmdir ( string $dirname [, resource $context ] )

Tente d'effacer le dossier dont le chemin est dirname. Le dossier doit être vide, et le script doit avoir les autorisations adéquates. Une alerte de niveau E_WARNING sera générée en cas d'échec.

Liste de paramètres

dirname

Le chemin vers le dossier.

context

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Flux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.0.0 | Depuis PHP 5.0.0, rmdir() peut aussi être utilisée avec certains gestionnaires d'URL. Reportez vous à Liste des protocoles et des gestionnaires supportés pour une liste des gestionnaires qui supportent rmdir().

Exemples

Exemple #1 Exemple avec rmdir()

<?php
if (!is_dir('examples')) {
    mkdir('examples');
}

rmdir('examples');
?>

Notes

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

  • is_dir() - Indique si le fichier est un dossier
  • mkdir() - Crée un dossier
  • unlink() - Efface un fichier


Alias de stream_set_write_buffer

  • « rmdir
  • stat »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Alias de stream_set_write_buffer

set_file_buffer

(PHP 4, PHP 5, PHP 7)

set_file_buffer — Alias de stream_set_write_buffer()

Description

Cette fonction est un alias de : stream_set_write_buffer().


Renvoie les informations à propos d'un fichier

  • « set_file_buffer
  • symlink »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Renvoie les informations à propos d'un fichier

stat

(PHP 4, PHP 5, PHP 7)

stat — Renvoie les informations à propos d'un fichier

Description

array stat ( string $filename )

Renvoie les informations à propos du fichier filename. Si filename est un lien symbolique, les informations proviennent du fichier lui-même, et non du lien symbolique.

lstat() est identique à stat() sauf que les informations seront alors basées sur le lien symbolique.

Liste de paramètres

filename

Le chemin vers le fichier.

Valeurs de retour

Format du résultat de stat() et fstat()
Numéro | Nom | Description
0 | dev | volume
1 | ino | Numéro d'inode (*)
2 | mode | droit d'accès à l'inode
3 | nlink | nombre de liens
4 | uid | userid du propriétaire (*)
5 | gid | groupid du propriétaire (*)
6 | rdev | type du volume, si le volume est une inode
7 | size | taille en octets
8 | atime | date de dernier accès (Unix timestamp)
9 | mtime | date de dernière modification (Unix timestamp)
10 | ctime | date de dernier changement d'inode (Unix timestamp)
11 | blksize | taille de bloc (**)
12 | blocks | nombre de blocs de 512 octets alloués (**)
* - Sous Windows, vaut toujours 0.

** - uniquement sur les systèmes qui supportent le type st_blksize. Les autres systèmes (e.g. Windows) retournent -1.

En cas d'erreur, stat() retourne FALSE.

Note: Comme le type entier de PHP est signé et que de nombreuses plates-formes utilisent des entiers de 32 bits, certaines fonctions relatives au système de fichiers peuvent retourner des résultats étranges pour les fichiers de taille supérieure à 2 Go.

Erreurs / Exceptions

Si une erreur survient, une alerte de type E_WARNING est émise.

Exemples

Exemple #1 Exemple avec stat()

<?php
/* Récupération des informations */
$stat = stat('C:\php\php.exe');

/*
 * Affichage de la date et heure de l'accès à ce fichier,
 * identique à l'appel à la fonction fileatime()
 */
echo 'Date et heure d\'accès : ' . $stat['atime'];

/*
 * Affiche de la date et heure de modification du fichier,
 * identique à l'appel à la fonction filemtime()
 */
echo 'Date et heure de modification : ' . $stat['mtime'];

/* Affichage du numéro du device */
echo 'Numéro du Device : ' . $stat['dev'];
?>

Exemple #2 Utilisation des informations issues de stat() conjointement avec la fonction touch()

<?php
/* Récupération des informations issues de la fonction stat */
$stat = stat('C:\php\php.exe');

/* L'accès aux informations a-t-il échoué ? */
if (!$stat) {
    echo 'L\'appel à stat() a échoué...';
} else {
    /*
     * Nous voulons que la date et heure d'accès soit d'une
     * semaine après la date courante.
     */
    $atime = $stat['atime'] + 604800;

    /* Touchons le fichier ! */
    if(!touch('some_file.txt', time(), $atime)) {
        echo 'Échec lors de l\'appel à la fonction touch()...';
    } else {
        echo 'L\'appel à touch() a réussi...';
    }
}
?>

Notes

Note:

Notez que la précision temporelle peut varier selon le système de fichiers utilisé.

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • lstat() - Retourne les informations sur un fichier ou un lien symbolique
  • fstat() - Lit les informations sur un fichier à partir d'un pointeur de fichier
  • filemtime() - Lit la date de dernière modification du fichier
  • filegroup() - Lire le nom du groupe


Crée un lien symbolique

  • « stat
  • tempnam »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Crée un lien symbolique

symlink

(PHP 4, PHP 5, PHP 7)

symlink — Crée un lien symbolique

Description

bool symlink ( string $target , string $link )

symlink() crée un lien symbolique pour l'objet target avec le nom de link.

Liste de paramètres

target

La cible du lien.

link

Le nom du lien.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sous Windows (Vista, Server 2008 ou plus récent).

Exemples

Exemple #1 Création d'un lien symbolique

<?php
$target = 'uploads.php';
$link = 'uploads';
symlink($target, $link);

echo readlink($link);
?>

Notes

Note: Les utilisateurs de Windows doivent garder à l'esprit que cette fonction n'est disponible que pour Windows Vista/Windows Server 2008 ou supérieur. Pour les versions antérieures de Windows, cette fonction ne supporte pas les liens symboliques.

Voir aussi

  • link() - Crée un lien
  • readlink() - Renvoie le contenu d'un lien symbolique
  • linkinfo() - Renvoie les informations d'un lien


Crée un fichier avec un nom unique

  • « symlink
  • tmpfile »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Crée un fichier avec un nom unique

tempnam

(PHP 4, PHP 5, PHP 7)

tempnam — Crée un fichier avec un nom unique

Description

string tempnam ( string $dir , string $prefix )

Crée un fichier dont le nom est unique, ayant comme permissions d'accès 0600, dans le dossier spécifié. Si le dossier n'existe pas ou qu'il n'est pas accessible en écriture, tempnam() tentera de créer un fichier dans le dossier temporaire système, et retournera le chemin complet de ce fichier, y compris son nom.

Liste de paramètres

dir

Le dossier dans lequel le fichier temporaire sera créé.

prefix

Le préfixe du fichier temporaire généré.

Note: Windows utilise seulement les 3 premiers caractères du préfixe.

Valeurs de retour

Retourne un nouveau fichier temporaire (avec son chemin), ou FALSE si une erreur survient.

Historique

Version | Description
4.0.3 | Le comportement de cette fonction a été modifié en PHP 4.0.3. Le fichier temporaire est aussi créé pour éviter des conflits si le fichier apparaît dans le système de fichiers entre le moment où la chaîne est générée et avant que le script n'ait terminé la création du fichier. Notez que vous devez effacer le fichier si vous n'en avez plus besoin, car cela n'est pas fait automatiquement.

Exemples

Exemple #1 Exemple avec tempnam()

<?php
$tmpfname = tempnam("/tmp", "FOO");

$handle = fopen($tmpfname, "w");
fwrite($handle, "Écriture dans le fichier temporaire");
fclose($handle);

// traitement

unlink($tmpfname);
?>

Notes

Note: Si PHP ne peut pas créer un fichier dans le dossier spécifié par le paramètre dir, il tentera dans le dossier par défaut du système. Sous les systèmes de fichiers NTFS, ceci arrive également si le dossier dir contient plus de 65534 fichiers.

Voir aussi

  • tmpfile() - Crée un fichier temporaire
  • sys_get_temp_dir() - Retourne le chemin du répertoire utilisé pour les fichiers temporaires
  • unlink() - Efface un fichier


Crée un fichier temporaire

  • « tempnam
  • touch »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Crée un fichier temporaire

tmpfile

(PHP 4, PHP 5, PHP 7)

tmpfile — Crée un fichier temporaire

Description

resource tmpfile ( void )

Crée un fichier temporaire avec un nom unique, ouvert en écriture et lecture (w+), et retourne un pointeur de fichier.

Ce fichier sera automatiquement effacé lorsqu'il sera fermé (par exemple, en appelant la fonction fclose(), ou lorsqu'il n'y a plus de référence au gestionnaire de fichier retourné par la fonction tmpfile()), ou lorsque le script sera terminé.

Pour plus de détails, consultez votre documentation système sur la fonction tmpfile(3), et sur stdio.h.

Valeurs de retour

Retourne un pointeur de fichier, identique à celui retourné par la fonction fopen(), pour le nouveau fichier ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec tmpfile()

<?php
$temp = tmpfile();
fwrite($temp, "Écriture dans le fichier temporaire");
fseek($temp, 0);
echo fread($temp, 1024);
fclose($temp); // ceci va effacer le fichier
?>

L'exemple ci-dessus va afficher :

Écriture dans le fichier temporaire

Voir aussi

  • tempnam() - Crée un fichier avec un nom unique
  • sys_get_temp_dir() - Retourne le chemin du répertoire utilisé pour les fichiers temporaires


Modifie la date de modification et de dernier accès d'un fichier

  • « tmpfile
  • umask »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Modifie la date de modification et de dernier accès d'un fichier

touch

(PHP 4, PHP 5, PHP 7)

touch — Modifie la date de modification et de dernier accès d'un fichier

Description

bool touch ( string $filename [, int $time = time() [, int $atime ]] )

Tente de forcer la date de modification du fichier désigné par le paramètre filename à la date de spécifiée par le paramètre time. Notez bien que la date de dernier accès est modifiée, quelque soit le nombre de paramètres.

Si le fichier n'existe pas, PHP tentera de le créer.

Liste de paramètres

filename

Le nom du fichier à créer.

time

La date de création. Si time est omis, c'est l'heure courante qui est utilisée.

atime

Si présent, l'heure d'accès au fichier fourni sera défini à la valeur du paramètre atime. Sinon, l'heure d'accès sera défini à la valeur passée au paramètre time. S'il n'est pas présent non plus, l'heure courant du système sera utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Il devient possible de changer la date et heure de modification d'un dossier sous Windows.

Exemples

Exemple #1 Exemple avec touch()

<?php
if (touch($FileName)) {
    echo "La date de modification de $FileName a été modifié à la date courante";
} else {
    echo "Désolé, il est impossible de changer la date de modification de $FileName";
}
?>

Exemple #2 Exemple avec touch() en utilisant le paramètre time

<?php
/*
 * Ceci est la date et heure du dernier accès, nous y ajoutons 1 heure
 * dans le passé.
 */
$time = time() - 3600;

/* Touchons le fichier ! */
if (!touch('some_file.txt', $time)) {
    echo 'Whoops, une erreur est survenue...';
} else {
    echo 'L\'appel à la fonction touch() a réussi';
}
?>

Notes

Note:

Notez que la précision temporelle peut varier selon le système de fichiers utilisé.

Avertissement

Avant la version 5.3.0 de PHP, il n'était pas possible de changer la date et heure de modification d'un dossier avec cette fonction sous Windows.


Change le "umask" courant

  • « touch
  • unlink »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Change le "umask" courant

umask

(PHP 4, PHP 5, PHP 7)

umask — Change le "umask" courant

Description

int umask ([ int $mask ] )

umask() change le umask de PHP et le remplace par mask : mask & 0777 puis, retourne le vieux umask. Lorsque PHP est utilisé comme module de serveur, le umask reprend sa valeur à la fin de chaque script.

Liste de paramètres

mask

Le nouvel umask.

Valeurs de retour

umask(), appelée sans arguments, retourne simplement le umask courant, sinon, ce sera l'ancien umask qui sera retourné.

Exemples

Exemple #1 Exemple avec umask()

<?php
$old = umask(0);
chmod("/path/some_dir/some_file.txt", 0755);
umask($old);

// Vérification
if ($old != umask()) {
    die('Une erreur est survenue lors de la modification des droits');
}
?>

Notes

Note:

Évitez d'utiliser cette fonction sur un serveur Web multithreadé. Il vaut mieux changer les droits d'un dossier avec la fonction chmod(), après la création du dossier. En utilisant umask(), vous risquez de rencontrer des comportements indéfinis au niveau des autres scripts et du serveur, car ils utilisent tous le même umask.


Efface un fichier

  • « umask
  • Inotify »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Efface un fichier

unlink

(PHP 4, PHP 5, PHP 7)

unlink — Efface un fichier

Description

bool unlink ( string $filename [, resource $context ] )

Efface filename. Identique à la fonction Unix C unlink(). En cas d'échec, une alerte de niveau E_WARNING sera générée.

Liste de paramètres

filename

Chemin vers le fichier.

context

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contextes, référez-vous à Flux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.0.0 | Depuis PHP 5.0.0, unlink() peut aussi être utilisée avec quelques protocoles d'URL. Voyez Liste des protocoles et des gestionnaires supportés pour une liste des protocoles supportant unlink().

Exemples

Exemple #1 Exemple avec unlink()

<?php
$fh = fopen('test.html', 'a');
fwrite($fh, '<h1>Hello world!</h1>');
fclose($fh);

unlink('test.html');
?>

Voir aussi

  • rmdir() - Efface un dossier


Inotify

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation/Configuration
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Inotify
    • inotify_add_watch — Ajoute un point de surveillance à une instance inotify
    • inotify_init — Initialise une instance inotify
    • inotify_queue_len — Retourne le nombre d'événements qui sont survenus
    • inotify_read — Lit les événements dans une instance inotify
    • inotify_rm_watch — Supprime un point de surveillance d'une instance inotify


Introduction

L'extension inotify fait l'interface avec les fonctions inotify_init(), inotify_add_watch() et inotify_rm_watch().

Comme la fonction C inotify_init() retourne un pointeur de fichier, la fonction PHP inotify_init() retourne un flux, à utiliser avec les fonctions standard de flux, telle que stream_select(), stream_set_blocking() et fclose(). inotify_read() remplace l'approche en langage C de lecture des événements.


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation/Configuration
  • Configuration à l'exécution
  • Types de ressources


  • « Installation/Configuration
  • Installation/Configuration »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Cette extension requiert Linux 2.6.13 ou plus récent, et une version récente de libC.


Installation/Configuration

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/inotify.


  • « Installation/Configuration
  • Types de ressources »
  • PHP Manual
  • Installation/Configuration
  • Configuration à l'exécution

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit un flux de données, retourné par inotify_init().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes Inotify sont utilisables avec les fonctions inotify_add_watch() et/ou retournées par la fonction inotify_read()
IN_ACCESS (entier)
Le fichier a été accédé (lu) (*)
IN_MODIFY (entier)
Le fichier a été modifié (*)
IN_ATTRIB (entier)
Les métadonnées ont changé (e.g. les permissions, la date de modification, etc.) (*)
IN_CLOSE_WRITE (entier)
Le fichier ouvert en écriture a été refermé (*)
IN_CLOSE_NOWRITE (entier)
Le fichier non-ouvert en écriture a été refermé (*)
IN_OPEN (entier)
Le fichier a été ouvert (*)
IN_MOVED_TO (entier)
Fichier déplacé dans un dossier surveillé (*)
IN_MOVED_FROM (entier)
Fichier déplacé depuis un dossier surveillé (*)
IN_CREATE (entier)
Fichier ou dossier créé dans un dossier surveillé (*)
IN_DELETE (entier)
Fichier ou dossier supprimé dans un dossier surveillé (*)
IN_DELETE_SELF (entier)
Les fichiers ou dossiers surveillés ont été supprimés
IN_MOVE_SELF (entier)
Les fichiers ou dossiers surveillés ont été déplacés
IN_CLOSE (entier)
Égal à IN_CLOSE_WRITE | IN_CLOSE_NOWRITE
IN_MOVE (entier)
Égal à IN_MOVED_FROM | IN_MOVED_TO
IN_ALL_EVENTS (entier)
Composition de toutes les constantes précédentes
IN_UNMOUNT (entier)
Le système de fichiers contenant les objets surveillés a été démonté
IN_Q_OVERFLOW (entier)
Queue d'événements en dépassement de capacité (wd vaut -1 pour cet événement)
IN_IGNORED (entier)
La surveillance a été retirée (explicitement par inotify_rm_watch() ou par ce que le fichier a été supprimé, ou que le système de fichiers a été démonté)
IN_ISDIR (entier)
Le sujet de cet événement est un dossier
IN_ONLYDIR (entier)
Ne surveille que le chemin, si c'est un dossier (Depuis Linux 2.6.15)
IN_DONT_FOLLOW (entier)
Ne déréférence pas le chemin si c'est un lien symbolique (Depuis Linux 2.6.15)
IN_MASK_ADD (entier)
Ajoute les événements au masque de surveillance pour ce chemin, s'il existe déjà (au lieu de remplacer).
IN_ONESHOT (entier)
Surveille le chemin de cet événement, puis le supprime de la liste de surveillance.

Note: Les événements marqués par un astérisque (*) ci-dessus peuvent survenir pour des fichiers dans des dossiers sous surveillance.


Fonctions Inotify

Sommaire

  • inotify_add_watch — Ajoute un point de surveillance à une instance inotify
  • inotify_init — Initialise une instance inotify
  • inotify_queue_len — Retourne le nombre d'événements qui sont survenus
  • inotify_read — Lit les événements dans une instance inotify
  • inotify_rm_watch — Supprime un point de surveillance d'une instance inotify


Ajoute un point de surveillance à une instance inotify

  • « Fonctions Inotify
  • inotify_init »
  • PHP Manual
  • Fonctions Inotify
  • Ajoute un point de surveillance à une instance inotify

inotify_add_watch

(PECL inotify >= 0.1.2)

inotify_add_watch — Ajoute un point de surveillance à une instance inotify

Description

int inotify_add_watch ( resource $inotify_instance , string $pathname , int $mask )

inotify_add_watch() ajoute un point de surveillance à une instance inotify ou modifie un point de surveillance en cours vers un nouveau fichier ou dossier spécifié par le chemin pathname.

Utiliser inotify_add_watch() sur un objet déjà en surveillance modifie la configuration. Utiliser la constante IN_MASK_ADD ajoute les événements (OR logique).

Liste de paramètres

inotify_instance

Ressource returnée par inotify_init()

pathname

Fichier ou dossier à surveiller.

mask

Événements à surveiller. Voyez Constantes pré-définies.

Valeurs de retour

La valeur retournée est un pointeur inotify unique (inotify instance wide).

Voir aussi

  • inotify_init() - Initialise une instance inotify


Initialise une instance inotify

  • « inotify_add_watch
  • inotify_queue_len »
  • PHP Manual
  • Fonctions Inotify
  • Initialise une instance inotify

inotify_init

(PECL inotify >= 0.1.2)

inotify_init — Initialise une instance inotify

Description

resource inotify_init ( void )

Initialise une instance inotify pour utiliser avec la fonction inotify_add_watch()

Valeurs de retour

Un flux ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple d'utilisatio d'inotify

<?php
// Crée une instance inotify
$fd = inotify_init();

// Surveille les modifications des métadonées du fichier __FILE__ (e.g. mtime)
$watch_descriptor = inotify_add_watch($fd, __FILE__, IN_ATTRIB);

// Génère un événement
touch(__FILE__);

// Lit les événements
$events = inotify_read($fd);
print_r($events);

// Les méthodes suivantes permettent d'utiliser les fonctions inotify sans bloquer sur inotify_read():

// - Utiliser stream_select() sur $fd:
$read = array($fd);
$write = null;
$except = null;
stream_select($read,$write,$except,0);

// - Utiliser stream_set_blocking() sur $fd
stream_set_blocking($fd, 0);
inotify_read($fd); // Does no block, and return false if no events are pending

// - Utiliser inotify_queue_len() pour vérifier la taille de la file d'attente
$queue_len = inotify_queue_len($fd); // If > 0, inotify_read() will not block

// Arrêt de la surveillance de __FILE__
inotify_rm_watch($fd, $watch_descriptor);

// Destruction de l'instance inotify
// Cela aurait arrêté toutes les surveillances si ce n'était pas déjà fait
fclose($fd);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(
  array(
    'wd' => 1,     // Egale le $watch_descriptor
    'mask' => 4,   // Le bit IN_ATTRIB est activé
    'cookie' => 0, // identifiant uique pour relier des événements (e.g.
                   // IN_MOVE_FROM et IN_MOVE_TO)
    'name' => '',  // Le nom du fichier (e.g. si un dossier était sous surveillance)
  ),
);

Voir aussi

  • inotify_add_watch() - Ajoute un point de surveillance à une instance inotify
  • inotify_rm_watch() - Supprime un point de surveillance d'une instance inotify
  • inotify_queue_len() - Retourne le nombre d'événements qui sont survenus
  • inotify_read() - Lit les événements dans une instance inotify
  • fclose() - Ferme un fichier


Retourne le nombre d'événements qui sont survenus

  • « inotify_init
  • inotify_read »
  • PHP Manual
  • Fonctions Inotify
  • Retourne le nombre d'événements qui sont survenus

inotify_queue_len

(PECL inotify >= 0.1.2)

inotify_queue_len — Retourne le nombre d'événements qui sont survenus

Description

int inotify_queue_len ( resource $inotify_instance )

Cette fonction permet de savoir si inotify_read() va bloquer ou non. Si un nombre supérieur à 0 est retourné, il y a des événements en attente, et inotify_read() ne va pas bloquer.

Liste de paramètres

inotify_instance

Ressource returnée par inotify_init()

Valeurs de retour

Retourne le nombre d'événements qui sont survenus.

Voir aussi

  • inotify_init() - Initialise une instance inotify
  • stream_select() - Surveille la modification d'un ou plusieurs flux
  • stream_set_blocking() - Configure le mode bloquant d'un flux


Lit les événements dans une instance inotify

  • « inotify_queue_len
  • inotify_rm_watch »
  • PHP Manual
  • Fonctions Inotify
  • Lit les événements dans une instance inotify

inotify_read

(PECL inotify >= 0.1.2)

inotify_read — Lit les événements dans une instance inotify

Description

array inotify_read ( resource $inotify_instance )

Lit les événements dans une instance inotify.

Liste de paramètres

inotify_instance

Ressource returnée par inotify_init()

Valeurs de retour

Un tableau d'événements inotify ou FALSE si aucun événement n'était dans la liste, et que inotify_instance était non-bloquant. Chaque événement dans le tableau dispose des index suivants :

  • wd, le pointeur retourné par la fonction inotify_add_watch()
  • mask est un champ de bits de constantes inotify
  • cookie est un identifiant unique pour relier des événements communs (e.g. IN_MOVE_FROM and IN_MOVE_TO)
  • name est le nom du fichier (e.g. si un fichier a été modifié dans le dossier de surveillance)

Voir aussi

  • inotify_init() - Initialise une instance inotify
  • stream_select() - Surveille la modification d'un ou plusieurs flux
  • stream_set_blocking() - Configure le mode bloquant d'un flux
  • inotify_queue_len() - Retourne le nombre d'événements qui sont survenus


Supprime un point de surveillance d'une instance inotify

  • « inotify_read
  • Mimetype »
  • PHP Manual
  • Fonctions Inotify
  • Supprime un point de surveillance d'une instance inotify

inotify_rm_watch

(PECL inotify >= 0.1.2)

inotify_rm_watch — Supprime un point de surveillance d'une instance inotify

Description

bool inotify_rm_watch ( resource $inotify_instance , int $watch_descriptor )

inotify_rm_watch() retire le point de surveillance watch_descriptor de l'instance inotify inotify_instance.

Liste de paramètres

inotify_instance

Ressource returnée par inotify_init()

watch_descriptor

Point de surveillance à retirer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • inotify_init() - Initialise une instance inotify


Mimetype

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies


Introduction

Avertissement

Cette extension est à présent déconseillée étant donné que l'extension PECL Fileinfo fournit les mêmes fonctionnalités (et même plus) de façon plus propre.

Ces fonctions essaient de définir le type de contenu et l'encodage d'un fichier en recherchant certaines séquences magiques, à certaines positions dans le fichier. Même si ce n'est pas une approche imparable, les heuristiques réalisent un bon travail.

Cette extension est dérivée du module Apache mod_mime_magic, qui est lui-même basé sur la commande file, entretenue par Ian F. Darwin. Voyez le code source pour plus de détails sur les heuristiques et les informations de copyright.


Installation

Avertissement

L'extension Mimetype a été supprimée en PHP 5.3.0 en faveur de l'extension Fileinfo.

Vous devez compiler PHP avec l'option --enable-mime-magic pour obtenir le support des fonctions mime-type. L'extension nécessite une copie simplifiée de magic qui est distribuée avec le serveur httpd Apache.

Note:

L'option de configuration a été changée de --enable-mime-magic en --with-mime-magic depuis PHP 4.3.2

Note:

Cette extension n'est pas capable d'utiliser le fichier magic complet, qui est généralement livré avec les distributions Linux, et il est supposé fonctionner avec les plus récentes versions de la commande file.

Note: Note aux utilisateurs Windows

Afin de pouvoir utiliser ce module en environnement Windows, vous devez activer le chemin jusqu'au fichier magic.mime de votre php.ini.

Exemple #1 Configuration Windows de magic.mime

mime_magic.magicfile ="$PHP_INSTALL_DIR\magic.mime"

N'oubliez pas de remplacer la valeur de $PHP_INSTALL_DIR par votre chemin jusqu'à l'exécutable PHP, dans l'exemple ci-dessus. Par exemple, c:\php.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration MIME
Nom | Défaut | Modifiable | Historique
mime_magic.debug | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
mime_magic.magicfile | "/path/to/php/magic.mime" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mime_magic.debug booléen

Active ou désactive le déboguage.

mime_magic.magicfile chaîne de caractères

Le chemin vers le fichier magic.mime.


  • « Types de ressources
  • Proctitle »
  • PHP Manual
  • Mimetype
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Proctitle

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Proctitle
    • setproctitle — Définit le titre du processus
    • setthreadtitle — Définit le titre du thread


Introduction

Cette extension permet la modification nom du processus courant et du thread courant sous les systèmes Linux et *BSD. Elle est utile lors de l'utilisation de la fonction pcntl_fork() pour identifier le processus fonctionnant dans la liste des processus.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Rien de spécial.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/proctitle.


  • « Types de ressources
  • Fonctions Proctitle »
  • PHP Manual
  • Proctitle
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions Proctitle

Sommaire

  • setproctitle — Définit le titre du processus
  • setthreadtitle — Définit le titre du thread


Définit le titre du processus

  • « Fonctions Proctitle
  • setthreadtitle »
  • PHP Manual
  • Fonctions Proctitle
  • Définit le titre du processus

setproctitle

(PECL proctitle >= 0.1.0)

setproctitle — Définit le titre du processus

Description

void setproctitle ( string $title )

Définit le titre du processus courant.

Liste de paramètres

title

Le titre à utiliser comme titre du processus.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec setproctitle()

L'exécution de l'exemple ci-dessous modifiera le titre du processus (visible avec la commande ps a par exemple).

<?php
setproctitle("myscript");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

$ ps a
  PID TTY      STAT   TIME COMMAND
 1168 pts/3    S      0:00 myscript

Voir aussi

  • cli_set_process_title() - Définit le titre du processus
  • pcntl_fork() - Duplique le process courant
  • setthreadtitle() - Définit le titre du thread


Définit le titre du thread

  • « setproctitle
  • xattr »
  • PHP Manual
  • Fonctions Proctitle
  • Définit le titre du thread

setthreadtitle

(PECL proctitle >= 0.1.2)

setthreadtitle — Définit le titre du thread

Description

bool setthreadtitle ( string $title )

Définit le titre du thread.

Liste de paramètres

title

Le titre à utiliser comme titre du thread.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec setthreadtitle()

L'exécution de l'exemple ci-dessous modifiera le titre du thread (visible avec la commande ps c par exemple).

<?php
setthreadtitle("myscript");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

$ ps c
  PID TTY      STAT   TIME COMMAND
 1178 pts/3    S      0:00 myscript

Voir aussi

  • pcntl_fork() - Duplique le process courant
  • setproctitle() - Définit le titre du processus


xattr

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions xattr
    • xattr_get — Récupère un attribut étendu
    • xattr_list — Récupère une liste d'attributs étendus
    • xattr_remove — Efface un attribut étendu
    • xattr_set — Définit un attribut étendu
    • xattr_supported — Vérifie si un système de fichiers supporte les attributs étendus


Introduction

L'extension xattr permet la manipulation des attributs étendus d'un système de fichiers.


Pré-requis

Pour utiliser xattr, vous devez installer la bibliothèque libattr. Elle est disponible sur » http://oss.sgi.com/projects/xfs/.

Note:

Ces fonctions ne fonctionnent que sur les systèmes de fichiers qui supportent les attributs étendus, et qu'ils les ont activés lors du montage du périphérique. Parmi les exemples de systèmes de fichiers qui supportent les attributs étendus, on peut noter ext2, ext3, reiserfs, jfs, et xfs.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/xattr.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XATTR_ROOT (entier)
Définit un attribut dans l'espace de noms racine. Nécessite les privilèges d'administrateur.
XATTR_DONTFOLLOW (entier)
Ne pas suivre un lien symbolique mais opérer directement sur le lien symbolique.
XATTR_CREATE (entier)
La fonction échouera si l'attribut étendu existe déjà.
XATTR_REPLACE (entier)
La fonction échouera si l'attribut étendu n'existe pas.


Fonctions xattr

Sommaire

  • xattr_get — Récupère un attribut étendu
  • xattr_list — Récupère une liste d'attributs étendus
  • xattr_remove — Efface un attribut étendu
  • xattr_set — Définit un attribut étendu
  • xattr_supported — Vérifie si un système de fichiers supporte les attributs étendus


Récupère un attribut étendu

  • « Fonctions xattr
  • xattr_list »
  • PHP Manual
  • Fonctions xattr
  • Récupère un attribut étendu

xattr_get

(PECL xattr >= 0.9.0)

xattr_get — Récupère un attribut étendu

Description

string xattr_get ( string $filename , string $name [, int $flags = 0 ] )

xattr_get() récupère la valeur de l'attribut étendu nommé name du fichier path.

Les attributs étendus ont deux espaces de noms différents : user et root. L'espace de noms user est disponible pour tous les utilisateurs tandis que l'espace de noms root n'est disponible que pour les utilisateurs ayant les privilèges root. xattr opère sur l'espace de noms user par défaut, mais vous pouvez changer cela en utilisant l'argument flags.

Liste de paramètres

filename

Le fichier depuis lequel on récupère l'attribut.

name

Le nom de l'attribut.

flags

FLags xattr supportés
XATTR_DONTFOLLOW | Ne pas suivre les liens symboliques mais opère directement sur le lien lui-même.
XATTR_ROOT | Définie l'attribut dans l'espace de noms racine. Nécessaire les privilèges d'administrateur.

Valeurs de retour

Retourne une chaîne contenant la valeur ou FALSE si l'attribut n'existe pas.

Exemples

Exemple #1 Vérifie si l'administrateur système a signé le fichier

<?php
$file = '/usr/local/sbin/some_binary';
$signature = xattr_get($file, 'Root signature', XATTR_ROOT);

/* ... vérifie si $signature est valide ... */

?>

Voir aussi

  • xattr_list() - Récupère une liste d'attributs étendus
  • xattr_set() - Définit un attribut étendu
  • xattr_remove() - Efface un attribut étendu


Récupère une liste d'attributs étendus

  • « xattr_get
  • xattr_remove »
  • PHP Manual
  • Fonctions xattr
  • Récupère une liste d'attributs étendus

xattr_list

(PECL xattr >= 0.9.0)

xattr_list — Récupère une liste d'attributs étendus

Description

array xattr_list ( string $filename [, int $flags = 0 ] )

xattr_list() récupère une liste de noms d'attributs étendus d'un fichier désigné par le paramètre path.

Les attributs étendus ont deux espaces de noms différents : user et root. L'espace de noms user est disponible pour tous les utilisateurs tandis que l'espace de noms root n'est disponible que pour les utilisateurs ayant les privilèges root. xattr opère sur l'espace de noms user par défaut, mais vous pouvez changer cela en utilisant l'argument flags.

Liste de paramètres

filename

Le chemin vers le fichier.

flags

FLags xattr supportés
XATTR_DONTFOLLOW | Ne pas suivre les liens symboliques mais opère directement sur le lien lui-même.
XATTR_ROOT | Définie l'attribut dans l'espace de noms racine. Nécessaire les privilèges d'administrateur.

Valeurs de retour

Cette fonction retourne un tableau contenant les noms des attributs étendus.

Exemples

Exemple #1 Affiche les noms de tous les attributs étendus d'un fichier

<?php
$file = 'un_fichier';
$root_attributes = xattr_list($file, XATTR_ROOT);
$user_attributes = xattr_list($file);

echo "Root attributes: \n";
foreach ($root_attributes as $attr_name) {
    printf("%s\n", $attr_name);
}

echo "\n Attributs utilisateur : \n";
foreach ($attributes as $attr_name) {
    printf("%s\n", $attr_name);
}

?>

Voir aussi

  • xattr_get() - Récupère un attribut étendu


Efface un attribut étendu

  • « xattr_list
  • xattr_set »
  • PHP Manual
  • Fonctions xattr
  • Efface un attribut étendu

xattr_remove

(PECL xattr >= 0.9.0)

xattr_remove — Efface un attribut étendu

Description

bool xattr_remove ( string $filename , string $name [, int $flags = 0 ] )

xattr_remove() efface un attribut étendu nommé name d'un fichier désigné par le paramètre path.

Les attributs étendus ont deux espaces de noms différents : user et root. L'espace de noms user est disponible pour tous les utilisateurs tandis que l'espace de noms root n'est disponible que pour les utilisateurs ayant les privilèges root. xattr opère sur l'espace de noms user par défaut, mais vous pouvez changer cela en utilisant l'argument flags.

Liste de paramètres

filename

Le fichier depuis lequel nous effaçons l'attribut.

name

Le nom de l'attribut à effacer.

flags

Options xattr disponibles
XATTR_DONTFOLLOW | Ne pas suivre les liens symboliques mais opère directement sur le lien lui-même.
XATTR_ROOT | Définie l'attribut dans l'espace de noms racine. Nécessaire les privilèges d'administrateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Efface tous les attributs étendus d'un fichier

<?php
$file = 'un_fichier';
$attributes = xattr_list($file);

foreach ($attributes as $attr_name) {
    xattr_remove($file, $attr_name);
}
?>

Voir aussi

  • xattr_list() - Récupère une liste d'attributs étendus
  • xattr_set() - Définit un attribut étendu
  • xattr_get() - Récupère un attribut étendu


Définit un attribut étendu

  • « xattr_remove
  • xattr_supported »
  • PHP Manual
  • Fonctions xattr
  • Définit un attribut étendu

xattr_set

(PECL xattr >= 0.9.0)

xattr_set — Définit un attribut étendu

Description

bool xattr_set ( string $filename , string $name , string $value [, int $flags = 0 ] )

xattr_set() définie la valeur d'un attribut étendu nommé name à la valeur value d'un fichier désigné par le paramètre path.

Les attributs étendus ont deux espaces de noms différents : user et root. L'espace de noms user est disponible pour tous les utilisateurs tandis que l'espace de noms root n'est disponible que pour les utilisateurs ayant les privilèges root. xattr opère sur l'espace de noms user par défaut, mais vous pouvez changer cela en utilisant l'argument flags.

Liste de paramètres

filename

Le fichier dans lequel nous devons définir l'attribut.

name

Le nom de l'attribut étendu. Cet attribut sera créé s'il n'existe pas encore ou remplacé sinon. Vous pouvez modifier ce comportement en utilisant le paramètre flags.

value

La valeur de l'attribut.

flags

Flags xattr supportés
XATTR_CREATE | La fonction échouera si l'attribut étendu existe déjà.
XATTR_REPLACE | La fonction échouera si l'attribut étendu n'existe pas.
XATTR_DONTFOLLOW | Ne pas suivre les liens symboliques mais opère directement sur le lien lui-même.
XATTR_ROOT | Définie l'attribut dans l'espace de noms racine. Nécessaire les privilèges d'administrateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Définition des attributs étendus dans un fichier .wav

<?php
$file = 'ma_chanson_favorite.wav';
xattr_set($file, 'Artist', 'Someone');
xattr_set($file, 'My ranking', 'Good');
xattr_set($file, 'Listen count', '34');

/* ... autres codes ... */

printf("Vous avez écouté cette chanson %d fois", xattr_get($file, 'Listen count'));
?>

Voir aussi

  • xattr_get() - Récupère un attribut étendu
  • xattr_remove() - Efface un attribut étendu


Vérifie si un système de fichiers supporte les attributs étendus

  • « xattr_set
  • xdiff »
  • PHP Manual
  • Fonctions xattr
  • Vérifie si un système de fichiers supporte les attributs étendus

xattr_supported

(PECL xattr >= 1.0.0)

xattr_supported — Vérifie si un système de fichiers supporte les attributs étendus

Description

bool xattr_supported ( string $filename [, int $flags = 0 ] )

xattr_supported() vérifie si le système de fichiers contenant le fichier path supporte les attributs étendus. Un accès en lecture au fichier path est nécessaire.

Liste de paramètres

filename

Le chemin du fichier à tester.

flags

Flags xattr supportés
XATTR_DONTFOLLOW Ne pas suivre les liens symboliques mais opère directement sur le lien lui-même.

Valeurs de retour

Cette fonction retourne TRUE si le système de fichiers supporte les attributs étendus, FALSE sinon et NULL si l'on ne peut pas le déterminer (par exemple, mauvais chemin vers le fichier ou lorsqu'il manque des permissions sur le fichier).

Exemples

Exemple #1 Exemple avec xattr_supported()

Le code suivant vérifie si nous pouvons utiliser les attributs étendus.

<?php
$file = 'un_fichier';

if (xattr_supported($file)) {
    /* ... utilisez les fonctions xattr_* ... */
}

?>

Voir aussi

  • xattr_get() - Récupère un attribut étendu
  • xattr_list() - Récupère une liste d'attributs étendus


xdiff

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions xdiff
    • xdiff_file_bdiff_size — Lit la taille d'un fichier créé lors de l'application d'un diff binaire
    • xdiff_file_bdiff — Crée un diff binaire de 2 fichiers
    • xdiff_file_bpatch — Patche un fichier avec un diff binaire
    • xdiff_file_diff_binary — Créé un diff binaire de deux fichier
    • xdiff_file_diff — Créé un diff unifié entre deux fichiers
    • xdiff_file_merge3 — Fusionne trois fichiers en un seul
    • xdiff_file_patch_binary — Alias de xdiff_file_bpatch
    • xdiff_file_patch — Patche un fichier avec un diff unifié
    • xdiff_file_rabdiff — Crée un diff binaire de 2 fichiers en utilisant l'algorithme polynomial de Rabin des empreintes digitales
    • xdiff_string_bdiff_size — Lit la taille d'un fichier créé en appliquant un diff binaire
    • xdiff_string_bdiff — Crée un diff binaire de 2 chaînes
    • xdiff_string_bpatch — Patche une chaîne avec un diff binaire
    • xdiff_string_diff_binary — Alias de xdiff_string_bdiff
    • xdiff_string_diff — Créé un diff unifié entre deux chaînes
    • xdiff_string_merge3 — Fusionne trois chaînes en une seule
    • xdiff_string_patch_binary — Alias de xdiff_string_bpatch
    • xdiff_string_patch — Patche une chaîne avec un diff unifié
    • xdiff_string_rabdiff — Crée un diff binaire de 2 chaînes en utilisant l'algorithme polynomial de Rabin des empreintes digitales


Introduction

L'extension xdiff permet la création et l'application de patchs, contenant les différences entre différentes versions d'un même fichier.

Cette extension supporte deux modes d'opération : sur les chaînes et sur les fichiers, ainsi que deux formats de patch : unifié et binaire. Les patches unifiés sont parfaits pour les fichiers textes, car ils sont lisibles et faciles à passer en revue. Les fichiers binaires comme les archives compressées ou les images sont plus adaptés aux patches binaires, car ils sont compatibles avec les données binaires, et gère les caractères qui ne s'impriment pas.

Depuis la version 1.5.0, il y a deux jeux de fonctions pour générer les fichiers binaires. Les nouvelles fonctions, xdiff_string_rabdiff() et xdiff_file_rabdiff() génère un résultat compatible avec les anciennes fonctions, mais généralement plus rapidement, et avec des résultats plus compacts. Pour plus de détails sur la génération de patchs binaires, et leur différence, voyez le site Web de » libxdiff.

Cette extension utilise la bibliothèque libxdiff pour implémenter ces fonctions. Reportez-vous à » http://www.xmailserver.org/xdiff-lib.html pour plus d'informations.


Pré-requis

Pour utiliser xdiff, vous devez avoir installé libxdiff, disponible sur la page d'accueil de » http://www.xmailserver.org/xdiff-lib.html.

Note:

Vous avez besoin au minimum de la version libxdiff 0.7 pour ces fonctions.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/xdiff.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XDIFF_PATCH_NORMAL (entier)
Cette option indique que les fonctions xdiff_string_patch() et xdiff_file_patch() doivent créer un résultat en appliquant le patch au contenu original, et créer ainsi une nouvelle version du fichier. C'est le mode d'opération par défaut.
XDIFF_PATCH_REVERSE (entier)
Cette option indique que les fonctions xdiff_string_patch() et xdiff_file_patch() doivent créer un résultat en annulant un patch depuis une version de fichier pour retrouver la version originale.


Fonctions xdiff

Sommaire

  • xdiff_file_bdiff_size — Lit la taille d'un fichier créé lors de l'application d'un diff binaire
  • xdiff_file_bdiff — Crée un diff binaire de 2 fichiers
  • xdiff_file_bpatch — Patche un fichier avec un diff binaire
  • xdiff_file_diff_binary — Créé un diff binaire de deux fichier
  • xdiff_file_diff — Créé un diff unifié entre deux fichiers
  • xdiff_file_merge3 — Fusionne trois fichiers en un seul
  • xdiff_file_patch_binary — Alias de xdiff_file_bpatch
  • xdiff_file_patch — Patche un fichier avec un diff unifié
  • xdiff_file_rabdiff — Crée un diff binaire de 2 fichiers en utilisant l'algorithme polynomial de Rabin des empreintes digitales
  • xdiff_string_bdiff_size — Lit la taille d'un fichier créé en appliquant un diff binaire
  • xdiff_string_bdiff — Crée un diff binaire de 2 chaînes
  • xdiff_string_bpatch — Patche une chaîne avec un diff binaire
  • xdiff_string_diff_binary — Alias de xdiff_string_bdiff
  • xdiff_string_diff — Créé un diff unifié entre deux chaînes
  • xdiff_string_merge3 — Fusionne trois chaînes en une seule
  • xdiff_string_patch_binary — Alias de xdiff_string_bpatch
  • xdiff_string_patch — Patche une chaîne avec un diff unifié
  • xdiff_string_rabdiff — Crée un diff binaire de 2 chaînes en utilisant l'algorithme polynomial de Rabin des empreintes digitales


Lit la taille d'un fichier créé lors de l'application d'un diff binaire

  • « Fonctions xdiff
  • xdiff_file_bdiff »
  • PHP Manual
  • Fonctions xdiff
  • Lit la taille d'un fichier créé lors de l'application d'un diff binaire

xdiff_file_bdiff_size

(PECL xdiff >= 1.5.0)

xdiff_file_bdiff_size — Lit la taille d'un fichier créé lors de l'application d'un diff binaire

Description

int xdiff_file_bdiff_size ( string $file )

Retourne la taille d'un fichier résultat créé après l'application d'un patch binaire depuis le fichier file sur le fichier original.

Liste de paramètres

file

Le patch du patch binaire créé par la fonction xdiff_string_bdiff() ou la fonction xdiff_string_rabdiff().

Valeurs de retour

Retourne la taille du fichier créé.

Exemples

Exemple #1 Exemple avec xdiff_file_bdiff_size()

Le code suivant lit la taille d'un fichier créé après l'application d'un diff binaire.

<?php
$length = xdiff_string_bdiff_size('file.bdiff');
echo "Le fichier résultat a une taille de $length octets";
?>

Voir aussi

  • xdiff_file_bdiff() - Crée un diff binaire de 2 fichiers
  • xdiff_file_rabdiff() - Crée un diff binaire de 2 fichiers en utilisant l'algorithme polynomial de Rabin des empreintes digitales
  • xdiff_file_bpatch() - Patche un fichier avec un diff binaire


Crée un diff binaire de 2 fichiers

  • « xdiff_file_bdiff_size
  • xdiff_file_bpatch »
  • PHP Manual
  • Fonctions xdiff
  • Crée un diff binaire de 2 fichiers

xdiff_file_bdiff

(PECL xdiff >= 1.5.0)

xdiff_file_bdiff — Crée un diff binaire de 2 fichiers

Description

bool xdiff_file_bdiff ( string $old_file , string $new_file , string $dest )

Crée un diff binaire de 2 fichiers et enregistre le résultat dans un fichier patch. Cette fonction fonctionne avec des fichiers textes mais aussi des fichiers binaires. Le fichier patch résultant peut être ensuite appliqué en utilisant les fonctions xdiff_file_bpatch() et xdiff_string_bpatch().

Liste de paramètres

old_file

Chemin vers le premier fichier. C'est l'ancien fichier.

new_file

Chemin vers le second fichier. C'est le nouveau fichier.

dest

Chemin vers le fichier patch résultant. Ce patch contient les différences entre l'ancien et le nouveau fichier.Il est au format binaire et est humainement illisible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_file_bdiff()

Le code suivant crée un diff binaire de 2 archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_bdiff($old_version, $new_version, 'my_script.bdiff');
?>

Notes

Note:

Les 2 fichiers seront chargés en mémoire ; aussi, assurez-vous que votre paramètre memory_limit est défini à valeur assez élevée.

Voir aussi

  • xdiff_file_bpatch() - Patche un fichier avec un diff binaire


Patche un fichier avec un diff binaire

  • « xdiff_file_bdiff
  • xdiff_file_diff_binary »
  • PHP Manual
  • Fonctions xdiff
  • Patche un fichier avec un diff binaire

xdiff_file_bpatch

(PECL xdiff >= 1.5.0)

xdiff_file_bpatch — Patche un fichier avec un diff binaire

Description

bool xdiff_file_bpatch ( string $file , string $patch , string $dest )

Patche le fichier file avec le patch binaire et enregistre le résultat dans le fichier dest. Cette fonction accepte les patchs créés via les fonctions xdiff_file_bdiff() et xdiff_file_rabdiff() ou leur équivalent sous forme de chaînes.

Liste de paramètres

file

Le fichier original.

patch

Le fichier patch binaire.

dest

Chemin vers le fichier résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_file_bpatch()

Le code suivant applique un diff binaire à un fichier.

<?php
$old_version = 'archive-1.0.tgz';
$patch = 'archive.bpatch';

$result = xdiff_file_bpatch($old_version, $patch, 'archive-1.1.tgz');
if ($result) {
   echo "Fichier patché";
} else {
   echo "Le fichier ne peut être patché";
}

?>

Notes

Note:

Les 2 fichiers (file et patch) seront chargés en mémoire ; aussi, assurez-vous que votre paramétrage de memory_limit est suffisamment élevé.

Voir aussi

  • xdiff_file_bdiff() - Crée un diff binaire de 2 fichiers
  • xdiff_file_rabdiff() - Crée un diff binaire de 2 fichiers en utilisant l'algorithme polynomial de Rabin des empreintes digitales


Créé un diff binaire de deux fichier

  • « xdiff_file_bpatch
  • xdiff_file_diff »
  • PHP Manual
  • Fonctions xdiff
  • Créé un diff binaire de deux fichier

xdiff_file_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_file_diff_binary — Créé un diff binaire de deux fichier

Description

bool xdiff_file_diff_binary ( string $old_file , string $new_file , string $dest )

Créé un diff binaire entre les deux fichiers et stocke le résultat dans dest. Cette fonction fonctionne avec les fichiers texte, mais aussi avec les fichiers binaires. Le patch résultant peut être appliqué à l'aide de la fonction xdiff_file_bpatch().

Depuis la version 1.5.0, cette fonction est un alias de xdiff_file_bdiff().

Liste de paramètres

old_file

Chemin jusqu'au premier fichier. Ce fichier est le "vieux" fichier.

new_file

Chemin jusqu'au deuxième fichier. Ce fichier est le "nouveau" fichier.

dest

Chemin vers le fichier résultat. Ce fichier contient les différences entre l'ancien et le nouveau fichier. C'est un format binaire, et il est lisible par un humain.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_file_diff_binary()

Le code suivant crée une différence binaire de deux archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_diff_binary($old_version, $new_version, 'my_script.bdiff');
?>

Notes

Note:

Les deux fichiers seront chargés en mémoire ; assurez-vous d'avoir défini memory_limit à une valeur assez grande.

Voir aussi

  • xdiff_file_bdiff() - Crée un diff binaire de 2 fichiers
  • xdiff_file_bpatch() - Patche un fichier avec un diff binaire


Créé un diff unifié entre deux fichiers

  • « xdiff_file_diff_binary
  • xdiff_file_merge3 »
  • PHP Manual
  • Fonctions xdiff
  • Créé un diff unifié entre deux fichiers

xdiff_file_diff

(PECL xdiff >= 0.2.0)

xdiff_file_diff — Créé un diff unifié entre deux fichiers

Description

bool xdiff_file_diff ( string $old_file , string $new_file , string $dest [, int $context = 3 [, bool $minimal = false ]] )

Crée un diff unifié contenant les différences entre le fichier old_file et new_file et les enregistre dans le fichier dest. Le fichier résultant est humainement lisible. Le paramètre optionnel context spécifie le nombre de lignes du contexte qui doit être ajouté autour de chaque modification. Si le paramètre minimal vaut TRUE, alors le fichier de sortie sera le plus petit possible (peut prendre beaucoup de temps).

Liste de paramètres

old_file

Chemin vers le premier fichier. Ce fichier représente l'ancien fichier.

new_file

Chemin vers le second fichier. Ce fichier représente le nouveau fichier.

dest

Chemin vers le fichier contenant la différence.

context

Indique le nombre de lignes de contexte que vous voulez inclure dans le résultat de diff.

minimal

Configurez minimal à TRUE si vous voulez minimaliser la taille du fichier des différences (peut prendre beaucoup de temps).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_file_diff()

Le code suivant crée un diff de deux fichiers php avec une longueur de contexte de 2.

<?php
$old_version = 'my_script.php';
$new_version = 'my_new_script.php';

xdiff_file_diff($old_version, $new_version, 'my_script.diff', 2);
?>

Notes

Note:

Cette fonction ne fonctionne pas correctement avec les fichiers binaires. Pour effectuer un diff sur des fichiers binaires, utilisez la fonction xdiff_file_bdiff()/xdiff_file_rabdiff().

Voir aussi

  • xdiff_file_patch() - Patche un fichier avec un diff unifié


Fusionne trois fichiers en un seul

  • « xdiff_file_diff
  • xdiff_file_patch_binary »
  • PHP Manual
  • Fonctions xdiff
  • Fusionne trois fichiers en un seul

xdiff_file_merge3

(PECL xdiff >= 0.2.0)

xdiff_file_merge3 — Fusionne trois fichiers en un seul

Description

mixed xdiff_file_merge3 ( string $old_file , string $new_file1 , string $new_file2 , string $dest )

Fusionne les fichiers file1, file2 et file3 en un seul et le stocke dans dest. Le fichier old_file est la version originale, tandis que les fichiers new_file1 et new_file2 sont les versions modifiées de l'original.

Liste de paramètres

old_file

Chemin vers le premier fichier. C'est l'ancien fichier.

new_file1

Chemin vers le second fichier. C'est la verion modifiée de old_file.

new_file2

Chemin vers le troisième fichier. C'est la version modifiée de old_file.

dest

Chemin vers le fichier résultant, contenant la fusion des modifications des fichiers new_file1 et new_file2.

Valeurs de retour

Retourne TRUE si la fusion a réussi, une chaîne avec les parties rejetées s'il y en a, ou FALSE si une erreur interne s'est produite.

Exemples

Exemple #1 Exemple avec xdiff_file_merge3()

Le code suivant fusionne trois fichiers en un.

<?php
$old_version = 'original_script.php';
$fix1 = 'script_with_fix1.php';
$fix2 = 'script_with_fix2.php';

$errors = xdiff_file_merge3($old_version, $fix1, $fix2, 'fixed_script.php');
if (is_string($errors)) {
    echo "Rejets :\n";
    echo $errors;
}
?>

Voir aussi

  • xdiff_string_merge3() - Fusionne trois chaînes en une seule


Alias de xdiff_file_bpatch

  • « xdiff_file_merge3
  • xdiff_file_patch »
  • PHP Manual
  • Fonctions xdiff
  • Alias de xdiff_file_bpatch

xdiff_file_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_file_patch_binary — Alias de xdiff_file_bpatch

Description

bool xdiff_file_patch_binary ( string $file , string $patch , string $dest )

Patche le fichier file avec un patch binaire et enregistre le résultat dans le fichier dest. Cette fonction accepte les patchs créés avec la fonction xdiff_file_bdiff() ou la fonction xdiff_file_rabdiff() ou leur équivalent sous forme de chaînes.

Depuis la version 1.5.0, cette fonction est un alias de la fonction xdiff_file_bpatch().

Liste de paramètres

file

Le fichier original.

patch

Le Patch binaire.

dest

Le chemin vers le fichier résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_file_patch_binary()

Le code suivant applique un diff binaire à un fichier.

<?php
$old_version = 'archive-1.0.tgz';
$patch = 'archive.bpatch';

$result = xdiff_file_patch_binary($old_version, $patch, 'archive-1.1.tgz');
if ($result) {
   echo "File patched";
} else {
   echo "File couldn't be patched";
}

?>

Notes

Note:

Les deux fichiers (le fichier et le patch) seront chargés en mémoire ; assurez-vous d'avoir défini memory_limit à une valeur assez élevée.

Voir aussi

  • xdiff_string_patch_binary() - Alias de xdiff_string_bpatch


Patche un fichier avec un diff unifié

  • « xdiff_file_patch_binary
  • xdiff_file_rabdiff »
  • PHP Manual
  • Fonctions xdiff
  • Patche un fichier avec un diff unifié

xdiff_file_patch

(PECL xdiff >= 0.2.0)

xdiff_file_patch — Patche un fichier avec un diff unifié

Description

mixed xdiff_file_patch ( string $file , string $patch , string $dest [, int $flags = DIFF_PATCH_NORMAL ] )

Patche le fichier file avec le patch fourni par le paramètre patch et enregistre le résultat dans un fichier. patch doit être un diff unifié créé par la fonction xdiff_file_diff()/xdiff_string_diff(). Un paramètre optionnel flags spécifie le mode de l'opération.

Liste de paramètres

file

Le fichier original.

patch

Le fichier contenant le patch unifié. Il doit avoir été créé en utilisant les fonctions xdiff_string_diff(), xdiff_file_diff() ou par des outils compatibles.

dest

Le chemin vers le fichier résultat.

flags

Peut être soit XDIFF_PATCH_NORMAL (mode par défaut, patch normal) ou XDIFF_PATCH_REVERSE (patch inversé).

Depuis la version 1.5.0, vous pouvez également utiliser l'opérateur binaire OR pour activer le drapeau XDIFF_PATCH_IGNORESPACE.

Valeurs de retour

Retourne FALSE si une erreur interne s'est produite, une chaîne avec les parties rejetées du patch si c'est le cas ou TRUE si le patch a été appliqué avec succès.

Exemples

Exemple #1 Exemple avec xdiff_file_patch()

Le code suivant applique un diff à un fichier.

<?php
$old_version = 'my_script-1.0.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($old_version, $patch, 'my_script-1.1.php');
if (is_string($errors)) {
   echo "Rejets :\n";
   echo $errors;
}

?>

Exemple #2 Exemple de retour à l'état initial après l'application d'un patch

Le code suivant annule un patch.

<?php
$new_version = 'my_script-1.1.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($new_version, $patch, 'my_script-1.0.php', XDIFF_PATCH_REVERSE);
if (is_string($errors)) {
   echo "Rejets :\n";
   echo $errors;
}

?>

Voir aussi

  • xdiff_file_diff() - Créé un diff unifié entre deux fichiers


Crée un diff binaire de 2 fichiers en utilisant l'algorithme polynomial de Rabin des empreintes digitales

  • « xdiff_file_patch
  • xdiff_string_bdiff_size »
  • PHP Manual
  • Fonctions xdiff
  • Crée un diff binaire de 2 fichiers en utilisant l'algorithme polynomial de Rabin des empreintes digitales

xdiff_file_rabdiff

(PECL xdiff >= 1.5.0)

xdiff_file_rabdiff — Crée un diff binaire de 2 fichiers en utilisant l'algorithme polynomial de Rabin des empreintes digitales

Description

bool xdiff_file_rabdiff ( string $old_file , string $new_file , string $dest )

Crée un diff binaire de 2 fichiers et enregistre le résultat dans un fichier patch. La différence entre cette fonction et la fonction xdiff_file_bdiff() se situe au niveau de l'algorithme utilisé. Aussi, cette fonction devrait être plus rapide et devrait produire un diff plus petit. Cette fonction fonctionne avec des fichiers textes, comme avec des fichiers binaires. Le fichier patch résultant pourra ensuite être appliqué avec les fonctions xdiff_file_bpatch() et xdiff_string_bpatch().

Pour plus de détails concernant les différences d'algorithme, reportez-vous au site web de la bibliothèque » libxdiff.

Liste de paramètres

old_file

Chemin vers le premier fichier. C'est l'ancien fichier.

new_file

Chemin vers le second fichier. C'est le nouveau fichier.

dest

Chemin vers le fichier résultant. Le fichier résultant contient les différences entre l'ancien et le nouveau fichier. Il est au format binaire, aussi, il ne sera pas humainement lisible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_file_rabdiff()

Le code suivant crée un diff binaire de 2 archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_rabdiff($old_version, $new_version, 'my_script.bdiff');
?>

Notes

Note:

Les 2 fichiers seront chargés en mémoire ; aussi, assurez-vous que votre paramétrage de memory_limit est suffisamment élevé.

Voir aussi

  • xdiff_file_bpatch() - Patche un fichier avec un diff binaire


Lit la taille d'un fichier créé en appliquant un diff binaire

  • « xdiff_file_rabdiff
  • xdiff_string_bdiff »
  • PHP Manual
  • Fonctions xdiff
  • Lit la taille d'un fichier créé en appliquant un diff binaire

xdiff_string_bdiff_size

(PECL xdiff >= 1.5.0)

xdiff_string_bdiff_size — Lit la taille d'un fichier créé en appliquant un diff binaire

Description

int xdiff_string_bdiff_size ( string $patch )

Retourne la taille d'un fichie résultat créé après l'application d'un patch binaure sur un fichier original.

Liste de paramètres

patch

Le patch binaire créé par la fonction xdiff_string_bdiff() ou la fonction xdiff_string_rabdiff().

Valeurs de retour

Retourne la taille du fichier créé.

Exemples

Exemple #1 Exemple avec xdiff_string_bdiff_size()

Le code suivant lit la taille d'un fichier créé après l'application d'un diff binaire.

<?php
$binary_patch = file_get_contents('file.bdiff');
$length = xdiff_string_bdiff_size($binary_patch);
echo "La taille du fichier résultant est de $length octets.";
?>

Voir aussi

  • xdiff_string_bdiff() - Crée un diff binaire de 2 chaînes
  • xdiff_string_rabdiff() - Crée un diff binaire de 2 chaînes en utilisant l'algorithme polynomial de Rabin des empreintes digitales
  • xdiff_string_bpatch() - Patche une chaîne avec un diff binaire


Crée un diff binaire de 2 chaînes

  • « xdiff_string_bdiff_size
  • xdiff_string_bpatch »
  • PHP Manual
  • Fonctions xdiff
  • Crée un diff binaire de 2 chaînes

xdiff_string_bdiff

(PECL xdiff >= 1.5.0)

xdiff_string_bdiff — Crée un diff binaire de 2 chaînes

Description

string xdiff_string_bdiff ( string $old_data , string $new_data )

Crée un diff binaire de 2 chaînes et retourne le résultat. Cette fonction fonctionne aussi bien avec des données textes qu'avec des données binaires. Le patch résultant pourra ensuite être appliqué en utilisant les fonctions xdiff_string_bpatch() et xdiff_file_bpatch().

Liste de paramètres

old_data

Première chaîne contenant des données binaires. Ce sont les anciennes données.

new_data

Seconde chaîne contenant des données binaires. Ce sont les nouvelles données.

Valeurs de retour

Retourne un diff binaire contenant les différences entre les anciennes et les nouvelles données, ou FALSE si une erreur interne survient.

Voir aussi

  • xdiff_string_bpatch() - Patche une chaîne avec un diff binaire


Patche une chaîne avec un diff binaire

  • « xdiff_string_bdiff
  • xdiff_string_diff_binary »
  • PHP Manual
  • Fonctions xdiff
  • Patche une chaîne avec un diff binaire

xdiff_string_bpatch

(PECL xdiff >= 1.5.0)

xdiff_string_bpatch — Patche une chaîne avec un diff binaire

Description

string xdiff_string_bpatch ( string $str , string $patch )

Patche une chaîne str avec un patch binaire. Cette fonction accepte les patchs créés via les fonctions xdiff_string_bdiff() et xdiff_string_rabdiff(), ou leur équivalent sous forme de fichier.

Liste de paramètres

str

La chaîne binaire originale.

patch

Le patch binaire sous forme d'une chaîne de caractères.

Valeurs de retour

Retourne la chaîne patchée, ou FALSE si une erreur survient.

Voir aussi

  • xdiff_string_bdiff() - Crée un diff binaire de 2 chaînes
  • xdiff_string_rabdiff() - Crée un diff binaire de 2 chaînes en utilisant l'algorithme polynomial de Rabin des empreintes digitales


Alias de xdiff_string_bdiff

  • « xdiff_string_bpatch
  • xdiff_string_diff »
  • PHP Manual
  • Fonctions xdiff
  • Alias de xdiff_string_bdiff

xdiff_string_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_string_diff_binary — Alias de xdiff_string_bdiff

Description

string xdiff_string_bdiff ( string $old_data , string $new_data )

Crée un diff binaire de 2 chaînes et retourne le résultat. Cette fonction fonctionne avec du texte mais aussi avec des données binaires. Le patch résultant peut être appliqué ultérieurement en utilisant la fonction xdiff_string_bpatch()/xdiff_file_bpatch().

Depuis la version 1.5.0, cette fonction est un alias de la fonction xdiff_string_bdiff().

Liste de paramètres

old_data

Première chaîne avec des données binaires. Ce sont les anciennes données.

new_data

Seconde chaîne avec des données binaires. Ce sont les nouvelles données.

Valeurs de retour

Retourne une chaîne avec le résultat ou FALSE si une erreur interne est survenue.

Voir aussi

  • xdiff_string_bdiff() - Crée un diff binaire de 2 chaînes
  • xdiff_string_bpatch() - Patche une chaîne avec un diff binaire


Créé un diff unifié entre deux chaînes

  • « xdiff_string_diff_binary
  • xdiff_string_merge3 »
  • PHP Manual
  • Fonctions xdiff
  • Créé un diff unifié entre deux chaînes

xdiff_string_diff

(PECL xdiff >= 0.2.0)

xdiff_string_diff — Créé un diff unifié entre deux chaînes

Description

string xdiff_string_diff ( string $old_data , string $new_data [, int $context = 3 [, bool $minimal = false ]] )

Crée un diff unifié contenant les différences entre la chaîne old_data et la chaîne new_data et retourne le diff ainsi créé. Le diff résultant est humainement lisible. Le paramètre optionnel context spécifie le nombre de lignes de contexte à ajouter autour de chaque modification. Le fait de définir le paramètre minimal à TRUE fera que le diff sera le plus petit possible (peut prendre du temps).

Liste de paramètres

old_data

Première chaîne de données. Ce sont les anciennes données.

new_data

Seconde chaîne de données. Ce sont les nouvelles données.

context

Indique le nombre de lignes de contexte que vous voulez inclure dans le diff résultant.

minimal

Configurez minimal à TRUE si vous voulez minimaliser la taille du diff (peut prendre beaucoup de temps).

Valeurs de retour

Retourne une chaîne représentant le diff résultant, ou FALSE si une erreur interne survient.

Exemples

Exemple #1 Exemple avec xdiff_string_diff()

Le code suivant effectue un diff de deux articles.

<?php
$old_article = file_get_contents('./old_article.txt');
$new_article = $_REQUEST['article']; /* disons que quelqu'un a posté un nouvel article via un formulaire html */

$diff = xdiff_string_diff($old_article, $new_article, 1);
if (is_string($diff)) {
    echo "Différences entre les deux articles :\n";
    echo $diff;
}

?>

Notes

Note:

Cette fonction ne fonctionne pas correctement avec des chaînes binaires. Pour effectuer un diff de chaînes binaires, utilisez la fonction xdiff_string_bdiff()/xdiff_string_rabdiff().

Voir aussi

  • xdiff_string_patch() - Patche une chaîne avec un diff unifié


Fusionne trois chaînes en une seule

  • « xdiff_string_diff
  • xdiff_string_patch_binary »
  • PHP Manual
  • Fonctions xdiff
  • Fusionne trois chaînes en une seule

xdiff_string_merge3

(PECL xdiff >= 0.2.0)

xdiff_string_merge3 — Fusionne trois chaînes en une seule

Description

mixed xdiff_string_merge3 ( string $old_data , string $new_data1 , string $new_data2 [, string &$error ] )

Fusionne 3 chaînes en une et retourne le résultat. Le paramètre old_data est la version originale des données tandis que new_data1 et new_data2 sont les versions modifiées de l'original. Le paramètre optionnel error est utilisé pour stocker toutes les parties rejetées lors de la fusion.

Liste de paramètres

old_data

Première chaîne de données. Ce sont les anciennes données.

new_data1

Seconde chaîne de données. Ce sont les versions modifiées de old_data.

new_data2

Troisième chaîne de données. Ce sont les versions modifiées de old_data.

error

Si error est fourni, alors les parties rejetées y seront stockées.

Valeurs de retour

Retourne la chaîne fusionnée, FALSE si une erreur interne survient ou TRUE si la chaîne fusionnée est vide.

Voir aussi

  • xdiff_file_merge3() - Fusionne trois fichiers en un seul


Alias de xdiff_string_bpatch

  • « xdiff_string_merge3
  • xdiff_string_patch »
  • PHP Manual
  • Fonctions xdiff
  • Alias de xdiff_string_bpatch

xdiff_string_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_string_patch_binary — Alias de xdiff_string_bpatch

Description

string xdiff_string_patch_binary ( string $str , string $patch )

Patche une chaîne str avec un patch binaire. Cette fonction accepte les patchs créés avec les fonctions xdiff_string_bdiff() et xdiff_string_rabdiff() ou leur équivalent en fichiers.

Depuis la version 1.5.0, cette fonction est un alias de la fonction xdiff_string_bpatch().

Liste de paramètres

str

La chaîne binaire originale.

patch

Le patch binaire.

Valeurs de retour

Retourne la chaîne patchée, ou FALSE si une erreur survient.

Voir aussi

  • xdiff_string_bpatch() - Patche une chaîne avec un diff binaire
  • xdiff_string_bdiff() - Crée un diff binaire de 2 chaînes
  • xdiff_string_rabdiff() - Crée un diff binaire de 2 chaînes en utilisant l'algorithme polynomial de Rabin des empreintes digitales


Patche une chaîne avec un diff unifié

  • « xdiff_string_patch_binary
  • xdiff_string_rabdiff »
  • PHP Manual
  • Fonctions xdiff
  • Patche une chaîne avec un diff unifié

xdiff_string_patch

(PECL xdiff >= 0.2.0)

xdiff_string_patch — Patche une chaîne avec un diff unifié

Description

string xdiff_string_patch ( string $str , string $patch [, int $flags [, string &$error ]] )

Patche la chaîne str avec un patch unifié et retourne le résultat. patch doit être un patch unifié créé par les fonctions xdiff_file_diff() et xdiff_string_diff(). Un paramètre optionnel flags spécifie le mode de l'opération. Toutes les parties rejetées seront stockées dans la variable error si elle est fournie.

Liste de paramètres

str

La chaîne originale.

patch

Le patch unifié. Il doit avoir été créé en utilisant les fonctions xdiff_string_diff(), xdiff_file_diff() ou tout autre outil compatible.

flags

flags peut être soit XDIFF_PATCH_NORMAL (mode par défaut, patch normal), soit XDIFF_PATCH_REVERSE (patch inversé).

Depuis la version 1.5.0, vous pouvez également utiliser l'opérateur binaire OR pour activer le drapeau XDIFF_PATCH_IGNORESPACE.

error

Si error est fourni, les parties rejetées y seront stockées.

Valeurs de retour

Retourne la chaîne patchée, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xdiff_string_patch()

Le code suivant applique les changements à des articles.

<?php
$old_article = file_get_contents('./old_article.txt');
$diff = $_SERVER['patch']; /* disons que quelqu'un a passé un patch via un formulaire html */

$errors = '';

$new_article = xdiff_string_patch($old_article, $diff, XDIFF_PATCH_NORMAL, $errors);
if (is_string($new_article)) {
    echo "Nouvel article :\n";
    echo $new_article;
}

if (strlen($errors)) {
    echo "Rejets : \n";
    echo $errors;
}

?>

Voir aussi

  • xdiff_string_diff() - Créé un diff unifié entre deux chaînes


Crée un diff binaire de 2 chaînes en utilisant l'algorithme polynomial de Rabin des empreintes digitales

  • « xdiff_string_patch
  • Support du langage humain et de l'encodage de caractères »
  • PHP Manual
  • Fonctions xdiff
  • Crée un diff binaire de 2 chaînes en utilisant l'algorithme polynomial de Rabin des empreintes digitales

xdiff_string_rabdiff

(PECL xdiff >= 1.5.0)

xdiff_string_rabdiff — Crée un diff binaire de 2 chaînes en utilisant l'algorithme polynomial de Rabin des empreintes digitales

Description

string xdiff_string_bdiff ( string $old_data , string $new_data )

Crée un diff binaire de 2 chaînes et retourne le résultat. La différence entre cette fonction et la fonction xdiff_string_bdiff() se situe au niveau de l'algorithme utilisé ; cette fonction devrait être plus rapide et produire un diff plus petit. Cette fonction est utilisable aussi bien sur des données textes que binaires. Le patch résultant pourra être appliqué par la suite grâce aux fonctions xdiff_string_bpatch() et xdiff_file_bpatch().

Pour plus de détails concernant la différence d'algorithme, reportez-vous au site web de la bibliothèque » libxdiff.

Liste de paramètres

old_data

Première chaîne de données binaires. Ce sont les anciennes données.

new_data

Seconde chaîne de données binaires. Ce sont les nouvelles données.

Valeurs de retour

Retourne un diff binaire contenant les différences entre les anciennes et les nouvelles données, ou FALSE si une erreur interne survient.

Voir aussi

  • xdiff_string_bpatch() - Patche une chaîne avec un diff binaire


Support du langage humain et de l'encodage de caractères

  • Enchant — Bibliothèque d'orthographe Enchant
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Enchant
  • FriBiDi
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions FriBiDi
  • Gender — Détermine le sexe d'un prénom
    • Introduction
    • Installation/Configuration
    • Exemples
    • Gender\Gender — La classe Gender\Gender
  • Gettext
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Gettext
  • iconv
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions iconv
  • intl — Fonctions d'internationalisation
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Collator — La classe Collator
    • NumberFormatter — La classe NumberFormatter
    • Locale — La classe Locale
    • Normalizer — La classe Normalizer
    • MessageFormatter — La classe MessageFormatter
    • IntlCalendar — The IntlCalendar class
    • IntlTimeZone — The IntlTimeZone class
    • IntlDateFormatter — La classe IntlDateFormatter
    • ResourceBundle — La classe ResourceBundle
    • Spoofchecker — La classe Spoofchecker
    • Transliterator — La classe Transliterator
    • IntlBreakIterator — The IntlBreakIterator class
    • IntlRuleBasedBreakIterator — The IntlRuleBasedBreakIterator class
    • IntlCodePointBreakIterator — The IntlCodePointBreakIterator class
    • IntlPartsIterator — The IntlPartsIterator class
    • UConverter — The UConverter class
    • Fonctions Grapheme
    • Fonctions IDN
    • IntlException — Exception class for intl errors
    • IntlIterator — The IntlIterator class
    • Fonctions intl
  • Chaînes de caractères multi-octets
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Jeux de caractères supportés
    • Cas des caractères japonais
    • Entrées/Sorties HTTP
    • Jeux de caractères supportés
    • Exploitation des chaînes multi-octets en PHP
    • Prérequis de l'encodage en PHP
    • Fonctions sur les chaînes de caractères multi-octets
  • Pspell
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Pspell
  • Recode — GNU Recode
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Recode Fonctions


Bibliothèque d'orthographe Enchant

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions Enchant
    • enchant_broker_describe — Énumère les fournisseurs Enchant
    • enchant_broker_dict_exists — Vérifie si un dictionnaire existe
    • enchant_broker_free_dict — Libère une ressource de dictionnaire
    • enchant_broker_free — Libère la ressource de sponsor ainsi que ses dictionnaires
    • enchant_broker_get_dict_path — Get the directory path for a given backend
    • enchant_broker_get_error — Retourne la dernière erreur d'un sponsor
    • enchant_broker_init — Crée un nouvel objet sponsor
    • enchant_broker_list_dicts — Retourne une liste de tous les dictionnaires disponibles
    • enchant_broker_request_dict — Crée un nouveau dictionnaire
    • enchant_broker_request_pwl_dict — Crée un dictionnaire en utilisant un fichier PWL
    • enchant_broker_set_dict_path — Set the directory path for a given backend
    • enchant_broker_set_ordering — Déclare une préférence pour un dictionnaire d'une langue
    • enchant_dict_add_to_personal — Ajoute un mot à la liste des mots personnelle
    • enchant_dict_add_to_session — Ajoute un mot à la session courante
    • enchant_dict_check — Vérifie si un mot est correctement orthographié
    • enchant_dict_describe — Décrit un dictionnaire
    • enchant_dict_get_error — Retourne la dernière erreur de la session courante
    • enchant_dict_is_in_session — Vérifie si un mot existe dans une session de vérification
    • enchant_dict_quick_check — Vérifie si le mot est correctement orthographié et fournit des suggestions
    • enchant_dict_store_replacement — Ajoute une orthographe pour un mot
    • enchant_dict_suggest — Retourne une liste de valeurs si aucunes des conditions ne sont réunies


Introduction

Enchant est une utilisation PHP de la » bibliothèque Enchant. Enchant fournit une uniformité et une conformité pour toutes les bibliothèques d'orthographe, et implémente certaines fonctionnalités qui peuvent faire défaut dans une bibliothèque. Tout doit "juste fonctionner".

Enchant supporte les bibliothèques suivantes :

  • Aspell/Pspell (prévu pour remplacer Ispell)

  • Ispell (très ancien, peut être considéré comme un standard)

  • MySpell/Hunspell (un projet orienté objet, également utilisé par Mozilla)

  • Uspell (prévu à l'origine pour le yiddish, l'hébreu et les langues d'Europe de l'Est - hébergé dans le CVS d'AbiWord sous la module "uspell")

  • Hspell (Hébreu)

  • AppleSpell (Mac OSX)


Pré-requis

Cette version utilise les fonctions de la » bibliothèque Enchant par Dom Lachowicz. Vous devez utiliser Enchant 1.2.4 ou supérieur.

Enchant requiert également » Glib 2.6 ou supérieur. Les bibliothèques Windows pré-compilées sont disponibles depuis » http://ftp.gnome.org/pub/gnome/binaries/win32/glib/.


Installation

Cette extension est fournie avec PHP depuis la version 5.3.0. Avant cette version, Enchant était une extension PECL. Les utilisateurs de versions antérieures à 5.3.0 peuvent utiliser l'» extension PECL.

En partant du principe que les bibliothèques requises sont installées, les utilisateurs de PHP 5.3.0 et suivants peuvent activer Enchant en ajoutant l'option --with-enchant[=dir] lors de la compilation de PHP.


Types de ressources

Il y a deux types de ressources dans cette extension. La première est le broker (gestionnaire de backends) et la seconde est pour le dictionnaire.


Constantes pré-définies

ENCHANT_MYSPELL (integer)
Type de dictionnaire pour MySpell. Utilisé avec enchant_broker_get_dict_path() et enchant_broker_set_dict_path().
ENCHANT_ISPELL (integer)
Type de dictionnaire pour Ispell. Utilisé avec enchant_broker_get_dict_path() et enchant_broker_set_dict_path().


Exemples

Exemple #1 Exemple d'utilisation d'Enchant

<?php
$tag = 'en_US';
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Current broker provides the following backend(s):\n";
print_r($bprovides);

$dicts = enchant_broker_list_dicts($r);
print_r($dicts);
if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);
    $dprovides = enchant_dict_describe($d);
    echo "dictionary $tag provides:\n";
    $wordcorrect = enchant_dict_check($d, "soong");
    print_r($dprovides);
    if (!$wordcorrect) {
        $suggs = enchant_dict_suggest($d, "soong");
        echo "Suggestions for 'soong':";
        print_r($suggs);
    }
    enchant_broker_free_dict($d);
} else {
}
enchant_broker_free($r);
?>


Fonctions Enchant

Sommaire

  • enchant_broker_describe — Énumère les fournisseurs Enchant
  • enchant_broker_dict_exists — Vérifie si un dictionnaire existe
  • enchant_broker_free_dict — Libère une ressource de dictionnaire
  • enchant_broker_free — Libère la ressource de sponsor ainsi que ses dictionnaires
  • enchant_broker_get_dict_path — Get the directory path for a given backend
  • enchant_broker_get_error — Retourne la dernière erreur d'un sponsor
  • enchant_broker_init — Crée un nouvel objet sponsor
  • enchant_broker_list_dicts — Retourne une liste de tous les dictionnaires disponibles
  • enchant_broker_request_dict — Crée un nouveau dictionnaire
  • enchant_broker_request_pwl_dict — Crée un dictionnaire en utilisant un fichier PWL
  • enchant_broker_set_dict_path — Set the directory path for a given backend
  • enchant_broker_set_ordering — Déclare une préférence pour un dictionnaire d'une langue
  • enchant_dict_add_to_personal — Ajoute un mot à la liste des mots personnelle
  • enchant_dict_add_to_session — Ajoute un mot à la session courante
  • enchant_dict_check — Vérifie si un mot est correctement orthographié
  • enchant_dict_describe — Décrit un dictionnaire
  • enchant_dict_get_error — Retourne la dernière erreur de la session courante
  • enchant_dict_is_in_session — Vérifie si un mot existe dans une session de vérification
  • enchant_dict_quick_check — Vérifie si le mot est correctement orthographié et fournit des suggestions
  • enchant_dict_store_replacement — Ajoute une orthographe pour un mot
  • enchant_dict_suggest — Retourne une liste de valeurs si aucunes des conditions ne sont réunies


Énumère les fournisseurs Enchant

  • « Fonctions Enchant
  • enchant_broker_dict_exists »
  • PHP Manual
  • Fonctions Enchant
  • Énumère les fournisseurs Enchant

enchant_broker_describe

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0)

enchant_broker_describe — Énumère les fournisseurs Enchant

Description

array enchant_broker_describe ( resource $broker )

Énumère les fournisseurs Enchant et affiche quelques informations sur eux. Les mêmes informations sont fournis via la fonction phpinfo().

Liste de paramètres

broker

Ressource d'un sponsor

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Liste les interfaces fournies par un sponsor donné

<?php
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Le sponsor courant fournit les interfaces suivantes :\n";
print_r($bprovides);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le sponsor courant fournit les interfaces suivantes :
Array
(
    [0] => Array
        (
            [name] => aspell
            [desc] => Aspell Provider
            [file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [name] => hspell
            [desc] => Hspell Provider
            [file] => /usr/lib/enchant/libenchant_hspell.so
        )

    [2] => Array
        (
            [name] => ispell
            [desc] => Ispell Provider
            [file] => /usr/lib/enchant/libenchant_ispell.so
        )

    [3] => Array
        (
            [name] => myspell
            [desc] => Myspell Provider
            [file] => /usr/lib/enchant/libenchant_myspell.so
        )

)


Vérifie si un dictionnaire existe

  • « enchant_broker_describe
  • enchant_broker_free_dict »
  • PHP Manual
  • Fonctions Enchant
  • Vérifie si un dictionnaire existe

enchant_broker_dict_exists

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_dict_exists — Vérifie si un dictionnaire existe

Description

bool enchant_broker_dict_exists ( resource $broker , string $tag )

Vérifie si un dictionnaire existe.

Liste de paramètres

broker

Ressource de sponsor

tag

langage, dans un format comme us_US, ch_DE, etc.

Valeurs de retour

Retourne TRUE si le langage existe, FALSE sinon.

Exemples

Exemple #1 Exemple avec enchant_broker_dict_exists()

<?php
$tag = 'en_US';
$r = enchant_broker_init();
if (enchant_broker_dict_exists($r,$tag)) {
    echo $tag . " dictionary found.\n";
}
?>

Voir aussi

  • enchant_broker_describe() - Énumère les fournisseurs Enchant


Libère une ressource de dictionnaire

  • « enchant_broker_dict_exists
  • enchant_broker_free »
  • PHP Manual
  • Fonctions Enchant
  • Libère une ressource de dictionnaire

enchant_broker_free_dict

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_free_dict — Libère une ressource de dictionnaire

Description

bool enchant_broker_free_dict ( resource $dict )

Libère une ressource de dictionnaire.

Liste de paramètres

dict

Ressource de dictionnaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • enchant_broker_request_dict() - Crée un nouveau dictionnaire
  • enchant_broker_request_pwl_dict() - Crée un dictionnaire en utilisant un fichier PWL


Libère la ressource de sponsor ainsi que ses dictionnaires

  • « enchant_broker_free_dict
  • enchant_broker_get_dict_path »
  • PHP Manual
  • Fonctions Enchant
  • Libère la ressource de sponsor ainsi que ses dictionnaires

enchant_broker_free

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_free — Libère la ressource de sponsor ainsi que ses dictionnaires

Description

bool enchant_broker_free ( resource $broker )

Libère une ressource de sponsor ainsi que tous ses dictionnaires.

Liste de paramètres

broker

Ressource de sponsor

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • enchant_broker_init() - Crée un nouvel objet sponsor


Get the directory path for a given backend

  • « enchant_broker_free
  • enchant_broker_get_error »
  • PHP Manual
  • Fonctions Enchant
  • Get the directory path for a given backend

enchant_broker_get_dict_path

(PHP 5 >= 5.3.1, PHP 7, PECL enchant >= 1.0.1)

enchant_broker_get_dict_path — Get the directory path for a given backend

Description

bool enchant_broker_get_dict_path ( resource $broker , int $dict_type )

Get the directory path for a given backend.

Liste de paramètres

broker

Broker resource.

dict_type

The type of the dictionaries, i.e. ENCHANT_MYSPELL or ENCHANT_ISPELL.

Valeurs de retour

Returns the path of the dictionary directory on success ou FALSE si une erreur survient.

Voir aussi

  • enchant_broker_set_dict_path() - Set the directory path for a given backend


Retourne la dernière erreur d'un sponsor

  • « enchant_broker_get_dict_path
  • enchant_broker_init »
  • PHP Manual
  • Fonctions Enchant
  • Retourne la dernière erreur d'un sponsor

enchant_broker_get_error

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_get_error — Retourne la dernière erreur d'un sponsor

Description

string enchant_broker_get_error ( resource $broker )

Retourne la dernière erreur survenue pour ce sponsor.

Liste de paramètres

broker

Ressource de sponsor

Valeurs de retour

Retourne le message si une erreur a été trouvée, ou FALSE sinon.


Crée un nouvel objet sponsor

  • « enchant_broker_get_error
  • enchant_broker_list_dicts »
  • PHP Manual
  • Fonctions Enchant
  • Crée un nouvel objet sponsor

enchant_broker_init

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_init — Crée un nouvel objet sponsor

Description

resource enchant_broker_init ( void )

Liste de paramètres

Valeurs de retour

Retourne une ressource de sponsor en cas de succès, FALSE sinon.

Voir aussi

  • enchant_broker_free() - Libère la ressource de sponsor ainsi que ses dictionnaires


Retourne une liste de tous les dictionnaires disponibles

  • « enchant_broker_init
  • enchant_broker_request_dict »
  • PHP Manual
  • Fonctions Enchant
  • Retourne une liste de tous les dictionnaires disponibles

enchant_broker_list_dicts

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 1.0.1)

enchant_broker_list_dicts — Retourne une liste de tous les dictionnaires disponibles

Description

mixed enchant_broker_list_dicts ( resource $broker )

Retourne une liste de tous les dictionnaires disponibles ainsi que leurs détails.

Liste de paramètres

broker

Ressource de sponsor

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Liste tous les dictionnaires disponibles pour un sponsor

<?php
$r = enchant_broker_init();
$dicts = enchant_broker_list_dicts($r);
print_r($dicts);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [lang_tag] => de
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [lang_tag] => de_DE
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [3] => Array
        (
            [lang_tag] => en
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [4] => Array
        (
            [lang_tag] => en_GB
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [5] => Array
        (
            [lang_tag] => en_US
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [6] => Array
        (
            [lang_tag] => hi_IN
            [provider_name] => myspell
            [provider_desc] => Myspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_myspell.so
        )

)

Voir aussi

  • enchant_broker_describe() - Énumère les fournisseurs Enchant


Crée un nouveau dictionnaire

  • « enchant_broker_list_dicts
  • enchant_broker_request_pwl_dict »
  • PHP Manual
  • Fonctions Enchant
  • Crée un nouveau dictionnaire

enchant_broker_request_dict

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_request_dict — Crée un nouveau dictionnaire

Description

resource enchant_broker_request_dict ( resource $broker , string $tag )

Crée un nouveau dictionnaire en utilisant le paramètre tag, représentant le langage dont vous voulez associer le dictionnaire ("en_US", "de_DE", ...).

Liste de paramètres

broker

Ressource de sponsor

tag

Une balise décrivant le langage, par exemple, en_US, de_DE

Valeurs de retour

Retourne une ressource de dictionnaire en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec enchant_broker_request_dict()

Vérifie si un dictionnaire existe en utilisant la fonction enchant_broker_dict_exists() et le demande.

<?php
$tag = 'en_US';
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker,$tag)) {
    $dict = enchant_broker_request_dict($r, $tag);
}
?>

Voir aussi

  • enchant_dict_describe() - Décrit un dictionnaire
  • enchant_broker_dict_exists() - Vérifie si un dictionnaire existe
  • enchant_broker_free_dict() - Libère une ressource de dictionnaire


Crée un dictionnaire en utilisant un fichier PWL

  • « enchant_broker_request_dict
  • enchant_broker_set_dict_path »
  • PHP Manual
  • Fonctions Enchant
  • Crée un dictionnaire en utilisant un fichier PWL

enchant_broker_request_pwl_dict

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_request_pwl_dict — Crée un dictionnaire en utilisant un fichier PWL

Description

resource enchant_broker_request_pwl_dict ( resource $broker , string $filename )

Crée un dictionnaire en utilisant un fichier PWL. Un fichier PWL est un fichier de mots personnels contenant un mot par ligne.

Liste de paramètres

broker

Ressource de sponsor

filename

Chemin vers le fichier PWL. Si le fichier n'existe pas, un nouveau sera créé, si possible.

Valeurs de retour

Retourne une ressource de dictionnaire en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • enchant_dict_describe() - Décrit un dictionnaire
  • enchant_broker_dict_exists() - Vérifie si un dictionnaire existe
  • enchant_broker_free_dict() - Libère une ressource de dictionnaire


Set the directory path for a given backend

  • « enchant_broker_request_pwl_dict
  • enchant_broker_set_ordering »
  • PHP Manual
  • Fonctions Enchant
  • Set the directory path for a given backend

enchant_broker_set_dict_path

(PHP 5 >= 5.3.1, PHP 7, PECL enchant >= 1.0.1)

enchant_broker_set_dict_path — Set the directory path for a given backend

Description

bool enchant_broker_set_dict_path ( resource $broker , int $dict_type , string $value )

Set the directory path for a given backend.

Liste de paramètres

broker

Broker resource.

dict_type

The type of the dictionaries, i.e. ENCHANT_MYSPELL or ENCHANT_ISPELL.

value

The path of the dictionary directory.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • enchant_broker_get_dict_path() - Get the directory path for a given backend


Déclare une préférence pour un dictionnaire d'une langue

  • « enchant_broker_set_dict_path
  • enchant_dict_add_to_personal »
  • PHP Manual
  • Fonctions Enchant
  • Déclare une préférence pour un dictionnaire d'une langue

enchant_broker_set_ordering

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_set_ordering — Déclare une préférence pour un dictionnaire d'une langue

Description

bool enchant_broker_set_ordering ( resource $broker , string $tag , string $ordering )

Déclare une préférence pour un dictionnaire à utiliser pour la langue spécifiée par le paramètre tag. L'ordre des langues est une liste séparée par une virgule. Le caractère spécial "*" peut être utilisé comme langue pour déclarer un ordre par défaut pour tous les langages qui ne déclarent pas explicitement un ordre.

Liste de paramètres

broker

Ressource de sponsor

tag

La langue. Le caractère "*" peut être utilisé en tant que langage pour déclarer un ordre par défaut pour tous les langages qui ne déclarent pas explicitement un ordre.

ordering

Liste de noms de fournisseurs séparée par une virgule

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Ajoute un mot à la liste des mots personnelle

  • « enchant_broker_set_ordering
  • enchant_dict_add_to_session »
  • PHP Manual
  • Fonctions Enchant
  • Ajoute un mot à la liste des mots personnelle

enchant_dict_add_to_personal

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_add_to_personal — Ajoute un mot à la liste des mots personnelle

Description

void enchant_dict_add_to_personal ( resource $dict , string $word )

Ajoute le mot word à la liste des mots personnelle du dictionnaire dict.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à ajouter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemple #1 Aout d'un mot à un PWL

<?php

$filename = './my_word_list.pwl';
$word = 'Supercalifragilisticexpialidocious';

$broker = enchant_broker_init();
$dict = enchant_broker_request_pwl_dict($broker, $filename);

enchant_dict_add_to_personal($dict, $word);

enchant_broker_free($broker);

?>

Voir aussi

  • enchant_broker_request_pwl_dict() - Crée un dictionnaire en utilisant un fichier PWL
  • enchant_broker_request_dict() - Crée un nouveau dictionnaire


Ajoute un mot à la session courante

  • « enchant_dict_add_to_personal
  • enchant_dict_check »
  • PHP Manual
  • Fonctions Enchant
  • Ajoute un mot à la session courante

enchant_dict_add_to_session

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_add_to_session — Ajoute un mot à la session courante

Description

void enchant_dict_add_to_session ( resource $dict , string $word )

Ajoute le mot word au dictionnaire fourni. Il ne sera ajouté que pour la session courante.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à ajouter

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • enchant_broker_request_dict() - Crée un nouveau dictionnaire


Vérifie si un mot est correctement orthographié

  • « enchant_dict_add_to_session
  • enchant_dict_describe »
  • PHP Manual
  • Fonctions Enchant
  • Vérifie si un mot est correctement orthographié

enchant_dict_check

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_check — Vérifie si un mot est correctement orthographié

Description

bool enchant_dict_check ( resource $dict , string $word )

Retourne TRUE si le mot word est correctement orthographié, FALSE sinon.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à vérifier

Valeurs de retour

Retourne TRUE si le mot est correctement orthographié, FALSE sinon.


Décrit un dictionnaire

  • « enchant_dict_check
  • enchant_dict_get_error »
  • PHP Manual
  • Fonctions Enchant
  • Décrit un dictionnaire

enchant_dict_describe

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_describe — Décrit un dictionnaire

Description

mixed enchant_dict_describe ( resource $dict )

Retourne les détails d'un dictionnaire.

Liste de paramètres

dict

Ressource de dictionnaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec enchant_dict_describe()

Vérifie si un dictionnaire existe en utilisant la fonction enchant_broker_dict_exists() et affiche tous les détails concernant ce dictionnaire.

<?php
$tag = 'en_US';
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker,$tag)) {
    $dict = enchant_broker_request_dict($r, $tag);
    $dict_details = enchant_dict_describe($dict);
    print_r($dict_details);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [lang] => en_US
    [name] => aspell
    [desc] => Aspell Provider
    [file] => /usr/lib/enchant/libenchant_aspell.so
)


Retourne la dernière erreur de la session courante

  • « enchant_dict_describe
  • enchant_dict_is_in_session »
  • PHP Manual
  • Fonctions Enchant
  • Retourne la dernière erreur de la session courante

enchant_dict_get_error

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_get_error — Retourne la dernière erreur de la session courante

Description

string enchant_dict_get_error ( resource $dict )

Retourne la dernière erreur de la session courante.

Liste de paramètres

dict

Ressource de dictionnaire

Valeurs de retour

Retourne le message d'erreur sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.


Vérifie si un mot existe dans une session de vérification

  • « enchant_dict_get_error
  • enchant_dict_quick_check »
  • PHP Manual
  • Fonctions Enchant
  • Vérifie si un mot existe dans une session de vérification

enchant_dict_is_in_session

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_is_in_session — Vérifie si un mot existe dans une session de vérification

Description

bool enchant_dict_is_in_session ( resource $dict , string $word )

Vérifie si un mot existe ou non dans la session courante.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à vérifier

Valeurs de retour

Retourne TRUE si le mot existe, FALSE sinon.

Voir aussi

  • enchant_dict_add_to_session() - Ajoute un mot à la session courante


Vérifie si le mot est correctement orthographié et fournit des suggestions

  • « enchant_dict_is_in_session
  • enchant_dict_store_replacement »
  • PHP Manual
  • Fonctions Enchant
  • Vérifie si le mot est correctement orthographié et fournit des suggestions

enchant_dict_quick_check

(PHP 5 >= 5.3.0, PHP 7, PECL enchant:0.2.0-1.0.1)

enchant_dict_quick_check — Vérifie si le mot est correctement orthographié et fournit des suggestions

Description

bool enchant_dict_quick_check ( resource $dict , string $word [, array &$suggestions ] )

Retourne TRUE si le mot est correctement orthographié, FALSE si la variable des suggestions est fournie, et la remplit des suggestions possibles.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à vérifier

suggestions

Si le mot n'est pas correctement orthographié, cette variable contiendra un tableau de suggestions.

Valeurs de retour

Retourne TRUE si le mot est correctement orthographié, FALSE sinon.

Exemples

Exemple #1 Exemple avec enchant_dict_quick_check()

<?php
$tag = 'en_US';
$r = enchant_broker_init();

if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);
    enchant_dict_quick_check($d, 'soong', $suggs);
    print_r($suggs);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => song
    [1] => snog
    [2] => soon
    [3] => Sang
    [4] => Sung
    [5] => sang
    [6] => sung
    [7] => sponge
    [8] => spongy
    [9] => snag
    [10] => snug
    [11] => sonic
    [12] => sing
    [13] => songs
    [14] => Son
    [15] => Sonja
    [16] => Synge
    [17] => son
    [18] => Sejong
    [19] => sarong
    [20] => sooner
    [21] => Sony
    [22] => sown
    [23] => scone
    [24] => song's
)

Voir aussi

  • enchant_dict_check() - Vérifie si un mot est correctement orthographié
  • enchant_dict_suggest() - Retourne une liste de valeurs si aucunes des conditions ne sont réunies


Ajoute une orthographe pour un mot

  • « enchant_dict_quick_check
  • enchant_dict_suggest »
  • PHP Manual
  • Fonctions Enchant
  • Ajoute une orthographe pour un mot

enchant_dict_store_replacement

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_store_replacement — Ajoute une orthographe pour un mot

Description

void enchant_dict_store_replacement ( resource $dict , string $mis , string $cor )

Ajoute une orthographe pour mis en utilisant cor. Notez que si vous remplacez @mis par @cor, alors il est probable que les futures occurrences den@mis seront remplacées par @cor. Ainsi, @cor sera ajouté à la liste des suggestions.

Liste de paramètres

dict

Ressource de dictionnaire

mis

Le mot à traiter

cor

Le mot correct

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne une liste de valeurs si aucunes des conditions ne sont réunies

  • « enchant_dict_store_replacement
  • FriBiDi »
  • PHP Manual
  • Fonctions Enchant
  • Retourne une liste de valeurs si aucunes des conditions ne sont réunies

enchant_dict_suggest

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_suggest — Retourne une liste de valeurs si aucunes des conditions ne sont réunies

Description

array enchant_dict_suggest ( resource $dict , string $word )

Liste de paramètres

dict

Ressource de dictionnaire

word

Mot à utiliser pour les suggestions

Valeurs de retour

Retourne un tableau de suggestions si le mot est mal orthographié.

Exemples

Exemple #1 Exemple avec enchant_dict_suggest()

<?php
$tag = 'en_US';
$r = enchant_broker_init();
if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);

    $wordcorrect = enchant_dict_check($d, "soong");
    if (!$wordcorrect) {
        $suggs = enchant_dict_suggest($d, "soong");
        echo "Suggestions pour 'soong' : ";
        print_r($suggs);
    }
    enchant_broker_free_dict($d);
}
enchant_broker_free($r);
?>

Voir aussi

  • enchant_dict_check() - Vérifie si un mot est correctement orthographié
  • enchant_dict_quick_check() - Vérifie si le mot est correctement orthographié et fournit des suggestions


FriBiDi

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions FriBiDi
    • fribidi_log2vis — Convertit une chaîne logique en chaîne visuelle


Introduction

FriBiDi est une implémentation libre de l'» Algorithme Unicode Bidirectionnel.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Vous devez télécharger et installer le paquet » FriBiDi.


Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/fribidi.

Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support Fribidi en utilisant l'option de configuration --with-fribidi[=DIR] .

Les utilisateurs de Windows doivent activer la bibliothèque php_fribidi.dll dans le php.ini pour pouvoir utiliser ces fonctions. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FRIBIDI_CHARSET_UTF8 (entier)
Unicode
FRIBIDI_CHARSET_8859_6 (entier)
Arabe
FRIBIDI_CHARSET_8859_8 (entier)
Hébreu
FRIBIDI_CHARSET_CP1255 (entier)
Hébreu / Yiddish
FRIBIDI_CHARSET_CP1256 (entier)
Arabe
FRIBIDI_CHARSET_ISIRI_3342 (entier)
Persan
FRIBIDI_CHARSET_CAP_RTL (entier)
Utilisé à des fins de tests ; traite les CAPS comme des lettres non anglaises
FRIBIDI_RTL (entier)
De droite à gauche
FRIBIDI_LTR (entier)
De gauche à droite
FRIBIDI_AUTO (entier)
Autodétection de la direction


  • « Constantes pré-définies
  • fribidi_log2vis »
  • PHP Manual
  • FriBiDi
  • Fonctions FriBiDi

Fonctions FriBiDi

Sommaire

  • fribidi_log2vis — Convertit une chaîne logique en chaîne visuelle


Convertit une chaîne logique en chaîne visuelle

  • « Fonctions FriBiDi
  • Gender »
  • PHP Manual
  • Fonctions FriBiDi
  • Convertit une chaîne logique en chaîne visuelle

fribidi_log2vis

(PHP 4 >= 4.0.4 and PHP 4 <= 4.1.0, PECL fribidi >= 1.0)

fribidi_log2vis — Convertit une chaîne logique en chaîne visuelle

Description

string fribidi_log2vis ( string $str , string $direction , int $charset )

Convertit une chaîne logique en chaîne visuelle.

Liste de paramètres

str

La chaîne logique.

direction

Une constante parmi FRIBIDI_RTL, FRIBIDI_LTR ou FRIBIDI_AUTO.

charset

Une constante parmi les constantes FRIBIDI_CHARSET_XXX.

Valeurs de retour

Retourne la chaîne visuelle en cas de succès ou FALSE si une erreur survient.


Détermine le sexe d'un prénom

  • Introduction
  • Installation/Configuration
    • Installation
  • Exemples
    • Exemple d'utilisation
  • Gender\Gender — La classe Gender\Gender
    • Gender\Gender::connect — Connexion à un dictionnaire externe
    • Gender\Gender::__construct — Construit un objet Gender
    • Gender\Gender::country — Récupère la représentation textuelle d'un pays
    • Gender\Gender::get — Récupère le sexe d'un prénom
    • Gender\Gender::isNick — Vérifie si name0 est un alias de name1
    • Gender\Gender::similarNames — Récupère des noms similaires


Introduction

L'extension PHP Gender est un port du programme gender.c originalement écrit par Joerg Michael. Le but premier de ce programme est de trouver le sexe d'un prénom. La base de données courante contient plus de 40000 prénoms de 54 pays.


  • « Introduction
  • Installation »
  • PHP Manual
  • Gender
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Installation


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/gender.

Une bibliothèque DDL pour cette extension PECL est disponible à cette adresse : » http://windows.php.net/downloads/pecl/releases/gender/.


  • « Installation
  • Exemple d'utilisation »
  • PHP Manual
  • Gender
  • Exemples

Exemples

Sommaire

  • Exemple d'utilisation


Exemple d'utilisation

Exemple d'utilisation de la classe Gender.

Exemple #1 Exemple d'utilisation

<?php

namespace Gender;

$gender = new Gender;

$name = "Milene";
$country = Gender::FRANCE;

$result = $gender->get($name, $country);

$data = $gender->country($country);

switch($result) {
    case Gender::IS_FEMALE:
        printf("Le prénom %s est de sexe féminin pour le pays %s\n", $name, $data['country']);
    break;

    case Gender::IS_MOSTLY_FEMALE:
        printf("Le prénom %s est le plus souvent de sexe féminin pour le pays %s\n", $name, $data['country']);
    break;

    case Gender::IS_MALE:
        printf("Le prénom %s est de sexe masculin pour le pays %s\n", $name, $data['country']);
    break;

    case Gender::IS_MOSTLY_MALE:
        printf("Le prénom %s est le plus souvent de sexe masculin pour le pays %s\n", $name, $data['country']);
    break;

    case Gender::IS_UNISEX_NAME:
        printf("Le prénom %s est unisexe pour le pays %s\n", $name, $data['country']);
    break;

    case Gender::IS_A_COUPLE:
        printf("Le prénom %s est à la fois masculin et féminin pour le pays %s\n", $name, $data['country']);
    break;

    case Gender::NAME_NOT_FOUND:
        printf("Le prénom %s n'a pas été trouvé pour le pays %s\n", $name, $data['country']);
    break;

    case Gender::ERROR_IN_NAME:
        echo "Il y a une erreur dans le prénom fourni !\n";
    break;

    default:
        echo "Une erreur est survenue !\n";
    break;

}


La classe Gender\Gender

(PECL gender >= 0.6.0)

Introduction

Synopsis de la classe

Gender\Gender {
/* Constants */
const integer IS_FEMALE = 70 ;
const integer IS_MOSTLY_FEMALE = 102 ;
const integer IS_MALE = 77 ;
const integer IS_MOSTLY_MALE = 109 ;
const integer IS_UNISEX_NAME = 63 ;
const integer IS_A_COUPLE = 67 ;
const integer NAME_NOT_FOUND = 32 ;
const integer ERROR_IN_NAME = 69 ;
const integer ANY_COUNTRY = 0 ;
const integer BRITAIN = 1 ;
const integer IRELAND = 2 ;
const integer USA = 3 ;
const integer SPAIN = 4 ;
const integer PORTUGAL = 5 ;
const integer ITALY = 6 ;
const integer MALTA = 7 ;
const integer FRANCE = 8 ;
const integer BELGIUM = 9 ;
const integer LUXEMBOURG = 10 ;
const integer NETHERLANDS = 11 ;
const integer GERMANY = 12 ;
const integer EAST_FRISIA = 13 ;
const integer AUSTRIA = 14 ;
const integer SWISS = 15 ;
const integer ICELAND = 16 ;
const integer DENMARK = 17 ;
const integer NORWAY = 18 ;
const integer SWEDEN = 19 ;
const integer FINLAND = 20 ;
const integer ESTONIA = 21 ;
const integer LATVIA = 22 ;
const integer LITHUANIA = 23 ;
const integer POLAND = 24 ;
const integer CZECH_REP = 25 ;
const integer SLOVAKIA = 26 ;
const integer HUNGARY = 27 ;
const integer ROMANIA = 28 ;
const integer BULGARIA = 29 ;
const integer BOSNIA = 30 ;
const integer CROATIA = 31 ;
const integer KOSOVO = 32 ;
const integer MACEDONIA = 33 ;
const integer MONTENEGRO = 34 ;
const integer SERBIA = 35 ;
const integer SLOVENIA = 36 ;
const integer ALBANIA = 37 ;
const integer GREECE = 38 ;
const integer RUSSIA = 39 ;
const integer BELARUS = 40 ;
const integer MOLDOVA = 41 ;
const integer UKRAINE = 42 ;
const integer ARMENIA = 43 ;
const integer AZERBAIJAN = 44 ;
const integer GEORGIA = 45 ;
const integer KAZAKH_UZBEK = 46 ;
const integer TURKEY = 47 ;
const integer ARABIA = 48 ;
const integer ISRAEL = 49 ;
const integer CHINA = 50 ;
const integer INDIA = 51 ;
const integer JAPAN = 52 ;
const integer KOREA = 53 ;
/* Méthodes */
public boolean connect ( string $dsn )
public __construct ([ string $dsn ] )
public array country ( integer $country )
public integer get ( string $name [, integer $country ] )
public array isNick ( string $name0 , string $name1 [, integer $country ] )
public array similarNames ( string $name [, integer $country ] )
}

Constantes pré-définies

Gender\Gender::IS_FEMALE

Gender\Gender::IS_MOSTLY_FEMALE

Gender\Gender::IS_MALE

Gender\Gender::IS_MOSTLY_MALE

Gender\Gender::IS_UNISEX_NAME

Gender\Gender::IS_A_COUPLE

Gender\Gender::NAME_NOT_FOUND

Gender\Gender::ERROR_IN_NAME

Gender\Gender::ANY_COUNTRY

Gender\Gender::BRITAIN

Gender\Gender::IRELAND

Gender\Gender::USA

Gender\Gender::SPAIN

Gender\Gender::PORTUGAL

Gender\Gender::ITALY

Gender\Gender::MALTA

Gender\Gender::FRANCE

Gender\Gender::BELGIUM

Gender\Gender::LUXEMBOURG

Gender\Gender::NETHERLANDS

Gender\Gender::GERMANY

Gender\Gender::EAST_FRISIA

Gender\Gender::AUSTRIA

Gender\Gender::SWISS

Gender\Gender::ICELAND

Gender\Gender::DENMARK

Gender\Gender::NORWAY

Gender\Gender::SWEDEN

Gender\Gender::FINLAND

Gender\Gender::ESTONIA

Gender\Gender::LATVIA

Gender\Gender::LITHUANIA

Gender\Gender::POLAND

Gender\Gender::CZECH_REP

Gender\Gender::SLOVAKIA

Gender\Gender::HUNGARY

Gender\Gender::ROMANIA

Gender\Gender::BULGARIA

Gender\Gender::BOSNIA

Gender\Gender::CROATIA

Gender\Gender::KOSOVO

Gender\Gender::MACEDONIA

Gender\Gender::MONTENEGRO

Gender\Gender::SERBIA

Gender\Gender::SLOVENIA

Gender\Gender::ALBANIA

Gender\Gender::GREECE

Gender\Gender::RUSSIA

Gender\Gender::BELARUS

Gender\Gender::MOLDOVA

Gender\Gender::UKRAINE

Gender\Gender::ARMENIA

Gender\Gender::AZERBAIJAN

Gender\Gender::GEORGIA

Gender\Gender::KAZAKH_UZBEK

Gender\Gender::TURKEY

Gender\Gender::ARABIA

Gender\Gender::ISRAEL

Gender\Gender::CHINA

Gender\Gender::INDIA

Gender\Gender::JAPAN

Gender\Gender::KOREA

Sommaire

  • Gender\Gender::connect — Connexion à un dictionnaire externe
  • Gender\Gender::__construct — Construit un objet Gender
  • Gender\Gender::country — Récupère la représentation textuelle d'un pays
  • Gender\Gender::get — Récupère le sexe d'un prénom
  • Gender\Gender::isNick — Vérifie si name0 est un alias de name1
  • Gender\Gender::similarNames — Récupère des noms similaires


Connexion à un dictionnaire externe

  • « Gender\Gender
  • Gender\Gender::__construct »
  • PHP Manual
  • Gender\Gender
  • Connexion à un dictionnaire externe

Gender\Gender::connect

(PECL gender >= 0.6.0)

Gender\Gender::connect — Connexion à un dictionnaire externe

Description

public boolean Gender\Gender::connect ( string $dsn )

Connexion à un dictionnaire externe. Actuellement, seuls les flux sont supportés.

Liste de paramètres

dsn

DSN à ouvrir.

Valeurs de retour

Un booléen en cas de succès ou d'échec.


Construit un objet Gender

  • « Gender\Gender::connect
  • Gender\Gender::country »
  • PHP Manual
  • Gender\Gender
  • Construit un objet Gender

Gender\Gender::__construct

(PECL gender >= 0.6.0)

Gender\Gender::__construct — Construit un objet Gender

Description

public Gender\Gender::__construct ([ string $dsn ] )

Crée un objet Gender, en se connectant, optionnellement, à un dictionnaire externe. Lorsqu'aucune base de données n'est fourni, les données compilées en interne seront utilisées.

Liste de paramètres

dsn

DSN à ouvrir.

Valeurs de retour


Récupère la représentation textuelle d'un pays

  • « Gender\Gender::__construct
  • Gender\Gender::get »
  • PHP Manual
  • Gender\Gender
  • Récupère la représentation textuelle d'un pays

Gender\Gender::country

(PECL gender >= 0.8.0)

Gender\Gender::country — Récupère la représentation textuelle d'un pays

Description

public array Gender\Gender::country ( integer $country )

Récupère la représentation textuelle d'un pays depuis la constante de la classe Gender.

Liste de paramètres

country

Identifiant du pays (correspond à une constante de la classe Gender\Gender).

Valeurs de retour

Retourne un tableau contenant les noms courts et longs du pays en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Gender\Gender::country()

$gender = new Gender\Gender;
var_dump($gender->country(Gender\Gender::BRITAIN));

L'exemple ci-dessus va afficher :

array(2) {
  'country_short' =>
  string(2) "UK"
  'country' =>
  string(13) "Great Britain"
}


Récupère le sexe d'un prénom

  • « Gender\Gender::country
  • Gender\Gender::isNick »
  • PHP Manual
  • Gender\Gender
  • Récupère le sexe d'un prénom

Gender\Gender::get

(PECL gender >= 0.6.0)

Gender\Gender::get — Récupère le sexe d'un prénom

Description

public integer Gender\Gender::get ( string $name [, integer $country ] )

Récupère le sexe d'un prénom pour un pays spécifique.

Liste de paramètres

name

Le prénom à vérifier.

country

L'identifiant du pays (une constante de la classe Gender).

Valeurs de retour

Retourne le sexe du prénom.


Vérifie si name0 est un alias de name1

  • « Gender\Gender::get
  • Gender\Gender::similarNames »
  • PHP Manual
  • Gender\Gender
  • Vérifie si name0 est un alias de name1

Gender\Gender::isNick

(PECL gender >= 0.9.0)

Gender\Gender::isNick — Vérifie si name0 est un alias de name1

Description

public array Gender\Gender::isNick ( string $name0 , string $name1 [, integer $country ] )

Vérifie si name0 est un alias de name1.

Liste de paramètres

name0

Nom à vérifier.

name1

Nom à vérifier.

country

Identifiant du pays, identifié par la constante de la classe Gender. Si omis, ANY_COUNTRY sera utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Récupère des noms similaires

  • « Gender\Gender::isNick
  • Gettext »
  • PHP Manual
  • Gender\Gender
  • Récupère des noms similaires

Gender\Gender::similarNames

(PECL gender >= 0.9.0)

Gender\Gender::similarNames — Récupère des noms similaires

Description

public array Gender\Gender::similarNames ( string $name [, integer $country ] )

Récupère des noms similaires pour le nom et le pays fourni.

Liste de paramètres

name

Nom à vérifier.

country

Identifiant du pays, identifié par la constante de classe Gender. Si omis, ANY_COUNTRY sera utilisé.

Valeurs de retour

Retourne un tableau contenant les noms similaires trouvés.


Gettext

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Gettext
    • bind_textdomain_codeset — Spécifie le jeu de caractères utilisé pour les messages du domaine DOMAIN
    • bindtextdomain — Fixe le chemin d'un domaine
    • dcgettext — Remplace le domaine lors d'une recherche
    • dcngettext — Version plurielle de dcgettext
    • dgettext — Remplace le domaine courant
    • dngettext — Version plurielle de dgettext
    • gettext — Recherche un message dans le domaine courant
    • ngettext — Version plurielle de gettext
    • textdomain — Fixe le domaine par défaut


Introduction

Les fonctions gettext implémentent l'API NLS (Native Language Support) qui peut servir à internationaliser vos scripts PHP. Lisez la documentation GNU sur le site » http://www.gnu.org/software/gettext/manual/gettext.html, ou bien sur votre système pour plus d'explications sur ces fonctions.


Pré-requis

Pour utiliser ces fonctions, vous devez télécharger et installer les bibliothèques GNU gettext depuis » http://www.gnu.org/software/gettext/gettext.html.


Installation

Pour inclure le module GNU gettext dans PHP, vous le compilez avec l'option --with-gettext[=DIR] , où DIR est le dossier d'installation de gettext. Par défaut, c'est /usr/local.


  • « Types de ressources
  • Fonctions Gettext »
  • PHP Manual
  • Gettext
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions Gettext

Sommaire

  • bind_textdomain_codeset — Spécifie le jeu de caractères utilisé pour les messages du domaine DOMAIN
  • bindtextdomain — Fixe le chemin d'un domaine
  • dcgettext — Remplace le domaine lors d'une recherche
  • dcngettext — Version plurielle de dcgettext
  • dgettext — Remplace le domaine courant
  • dngettext — Version plurielle de dgettext
  • gettext — Recherche un message dans le domaine courant
  • ngettext — Version plurielle de gettext
  • textdomain — Fixe le domaine par défaut


Spécifie le jeu de caractères utilisé pour les messages du domaine DOMAIN

  • « Fonctions Gettext
  • bindtextdomain »
  • PHP Manual
  • Fonctions Gettext
  • Spécifie le jeu de caractères utilisé pour les messages du domaine DOMAIN

bind_textdomain_codeset

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

bind_textdomain_codeset — Spécifie le jeu de caractères utilisé pour les messages du domaine DOMAIN

Description

string bind_textdomain_codeset ( string $domain , string $codeset )

Spécifie l'encodage à utiliser pour les messages du domaine domain retourné par l'ensemble des fonctions gettext().

Liste de paramètres

domain

Le domaine

codeset

Le jeu de caractères

Valeurs de retour

Une chaîne de caractères en cas de succès.


Fixe le chemin d'un domaine

  • « bind_textdomain_codeset
  • dcgettext »
  • PHP Manual
  • Fonctions Gettext
  • Fixe le chemin d'un domaine

bindtextdomain

(PHP 4, PHP 5, PHP 7)

bindtextdomain — Fixe le chemin d'un domaine

Description

string bindtextdomain ( string $domain , string $directory )

Fixe le chemin du domaine.

Liste de paramètres

domain

Le domaine

directory

Le chemin vers le dossier

Valeurs de retour

Le chemin complet vers le domaine.

Exemples

Exemple #1 Exemple avec bindtextdomain()

<?php

$domain = 'myapp';
echo bindtextdomain($domain, '/usr/share/myapp/locale');

?>

L'exemple ci-dessus va afficher :

/usr/share/myapp/locale


Remplace le domaine lors d'une recherche

  • « bindtextdomain
  • dcngettext »
  • PHP Manual
  • Fonctions Gettext
  • Remplace le domaine lors d'une recherche

dcgettext

(PHP 4, PHP 5, PHP 7)

dcgettext — Remplace le domaine lors d'une recherche

Description

string dcgettext ( string $domain , string $message , int $category )

Permet de remplacer le domaine courant lors de la recherche d'un message.

Liste de paramètres

domain

Le domaine

message

Le message

category

La catégorie

Valeurs de retour

Une chaîne de caractères en cas de succès.

Voir aussi

  • gettext() - Recherche un message dans le domaine courant


Version plurielle de dcgettext

  • « dcgettext
  • dgettext »
  • PHP Manual
  • Fonctions Gettext
  • Version plurielle de dcgettext

dcngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

dcngettext — Version plurielle de dcgettext

Description

string dcngettext ( string $domain , string $msgid1 , string $msgid2 , int $n , int $category )

Vous permet de remplacer le domaine courant pour une recherche simple au pluriel d'un message.

Liste de paramètres

domain

Le domaine

msgid1

msgid2

n

category

Valeurs de retour

Une chaîne de caractères en cas de succès.

Voir aussi

  • ngettext() - Version plurielle de gettext


Remplace le domaine courant

  • « dcngettext
  • dngettext »
  • PHP Manual
  • Fonctions Gettext
  • Remplace le domaine courant

dgettext

(PHP 4, PHP 5, PHP 7)

dgettext — Remplace le domaine courant

Description

string dgettext ( string $domain , string $message )

dgettext() remplace le domaine courant domain pour une recherche simple dans message.

Liste de paramètres

domain

Le domaine

message

Le message

Valeurs de retour

Une chaîne de caractères en cas de succès.

Voir aussi

  • gettext() - Recherche un message dans le domaine courant


Version plurielle de dgettext

  • « dgettext
  • gettext »
  • PHP Manual
  • Fonctions Gettext
  • Version plurielle de dgettext

dngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

dngettext — Version plurielle de dgettext

Description

string dngettext ( string $domain , string $msgid1 , string $msgid2 , int $n )

dngettext() vous permet de remplacer le domaine courant domain pour une recherche simple au pluriel d'un message.

Liste de paramètres

domain

Le domaine

msgid1

msgid2

n

Valeurs de retour

Une chaîne de caractères en cas de succès.

Voir aussi

  • ngettext() - Version plurielle de gettext


Recherche un message dans le domaine courant

  • « dngettext
  • ngettext »
  • PHP Manual
  • Fonctions Gettext
  • Recherche un message dans le domaine courant

gettext

(PHP 4, PHP 5, PHP 7)

gettext — Recherche un message dans le domaine courant

Description

string gettext ( string $message )

Recherche un message dans le domaine courant.

Liste de paramètres

message

Le message à traduire.

Valeurs de retour

Retourne une chaîne traduite, si elle en a trouvé une dans la table de traduction, ou bien le message message, s'il n'a pas été trouvé.

Exemples

Exemple #1 Exemple avec gettext()

<?php
// Choix de l'allemand
putenv('LC_ALL=de_DE');
setlocale(LC_ALL, 'de_DE');

// Spécifie la localisation des tables de traduction
bindtextdomain("myPHPApp", "./locale");

// Choisit le domaine
textdomain("myPHPApp");

// La traduction est cherché dans ./locale/de_DE/LC_MESSAGES/myPHPApp.mo

// Affichage d'un message de test
echo gettext("Bienvenue dans mon application PHP");

// Ou utilisez l'alias _() pour remplacer gettext()
echo _("Passez une bonne journée");
?>

Notes

Note:

Vous pouvez utiliser le caractère souligné (_) comme alias de cette fonction.

Note:

Le fait de définir une langue n'est pas suffisant pour certains systèmes d'exploitation et l'utilisation de la fonction putenv() est nécessaire afin de définir la locale courante.

Voir aussi

  • setlocale() - Modifie les informations de localisation


Version plurielle de gettext

  • « gettext
  • textdomain »
  • PHP Manual
  • Fonctions Gettext
  • Version plurielle de gettext

ngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ngettext — Version plurielle de gettext

Description

string ngettext ( string $msgid1 , string $msgid2 , int $n )

Version plurielle de gettext(). Quelques langues ont plus d'une forme de messages pluriels dépendant du compteur.

Liste de paramètres

msgid1

L'ID singulier du message.

msgid2

L'ID pluriel du message.

n

Le nombre (i.e. nombre d'éléments) pour déterminer la traduction du nombre grammatical respectif.

Valeurs de retour

Retourne un message au pluriel identifié par msgid1 et msgid2 pour le compteur n.

Exemples

Exemple #1 Exemple avec ngettext()

<?php

setlocale(LC_ALL, 'cs_CZ');
printf(ngettext("%d window", "%d windows", 1), 1); // 1 okno
printf(ngettext("%d window", "%d windows", 2), 2); // 2 okna
printf(ngettext("%d window", "%d windows", 5), 5); // 5 oken

?>


Fixe le domaine par défaut

  • « ngettext
  • iconv »
  • PHP Manual
  • Fonctions Gettext
  • Fixe le domaine par défaut

textdomain

(PHP 4, PHP 5, PHP 7)

textdomain — Fixe le domaine par défaut

Description

string textdomain ( string $text_domain )

textdomain() fixe le domaine text_domain à utiliser lors des recherches avec gettext(). Ce domaine dépend généralement de l'application.

Liste de paramètres

text_domain

Le nouveau domaine des messages, ou NULL pour récupérer la configuration courante sans la modifier.

Valeurs de retour

Cette fonction retourne le message courant du domaine en cas de succès, après une possible modification.


iconv

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions iconv
    • iconv_get_encoding — Lit le jeu de caractères courant
    • iconv_mime_decode_headers — Décode des en-têtes MIME multiples
    • iconv_mime_decode — Décode un champ d’en-tête MIME
    • iconv_mime_encode — Construit un en-tête MIME avec les champs field_name et field_value
    • iconv_set_encoding — Modifie le jeu courant de caractères d'encodage
    • iconv_strlen — Retourne le nombre de caractères d'une chaîne
    • iconv_strpos — Trouve la position de la première occurrence d'une chaîne dans une autre
    • iconv_strrpos — Trouve la position de la dernière occurrence d'un élément dans une chaîne
    • iconv_substr — Coupe une partie de chaîne
    • iconv — Convertit une chaîne dans un jeu de caractères
    • ob_iconv_handler — Gestionnaire de sortie pour maîtriser le jeu de caractères de sortie


Introduction

Ce module est une interface vers la bibliothèque iconv. L'extension iconv convertit des fichiers entre divers jeux de caractères. Les jeux supportés dépendent de l'implémentation de la fonction iconv() sur votre système. Notez que cette fonction ne fonctionne pas toujours bien sur tous les systèmes. Dans ce cas, ce serait une bonne idée d'installer la bibliothèque » GNU libiconv.

Depuis PHP 5.0.0, cette extension dispose de beaucoup de fonctions utiles pour vous aider à écrire des scripts multilingues. Regardez les sections suivantes pour découvrir les nouvelles fonctionnalités.


Pré-requis

Vous n'avez besoin de rien de spécial si votre système est conforme au standard POSIX, car la bibliothèque standard C fournie iconv. Dans le cas contraire, vous devez installer la bibliothèque » libiconv sur votre système.


Installation

Cette extension est activée par défaut, cependant, elle peut être désactivée en compilant PHP avec l'option --without-iconv .

La directive optionnelle --with-iconv-dir est utilisée pour spécifier l'emplacement de iconv sur le système sur lequel PHP est compilé. Si cette directive n'est pas spécifiée, seuls les emplacements par défaut seront scannés.

Note: Note aux utilisateurs de PHP4
L'activation de cette extension nécessite la compilation de PHP avec --with-iconv=[DIR] , ou les utilisateurs de Windows peuvent l'activer en ayant le fichier iconv.dll disponible dans le PATH système ainsi que php_iconv.dll activé dans php.ini.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration iconv
Nom | Défaut | Modifiable | Historique
iconv.input_encoding | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.5. Obsolète en PHP 5.6.0.
iconv.output_encoding | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.5. Obsolète en PHP 5.6.0.
iconv.internal_encoding | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.5. Obsolète en PHP 5.6.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

Avertissement

Quelques systèmes (comme IBM AIX) utilisent "ISO8859-1" au lieu de "ISO-8859-1", cette valeur doit donc être utilisée dans les options de configuration ainsi que dans les paramètres des fonctions.

iconv.input_encoding string
Avertissement

Cette fonctionalité est devenue OBSOLETE depuis PHP 5.6.0. Nous vous encourageons vivement à ne plus l'utiliser.

Les utilisateurs de PHP 5.6 et suivants doivent laisser cette option vide et définir plutôt l'option default_charset.

iconv.output_encoding string
Avertissement

Cette fonctionalité est devenue OBSOLETE depuis PHP 5.6.0. Nous vous encourageons vivement à ne plus l'utiliser.

Les utilisateurs de PHP 5.6 et suivants doivent laisser cette option vide et définir plutôt l'option default_charset.

iconv.internal_encoding string
Avertissement

Cette fonctionalité est devenue OBSOLETE depuis PHP 5.6.0. Nous vous encourageons vivement à ne plus l'utiliser.

Les utilisateurs de PHP 5.6 et suivants doivent laisser cette option vide et définir plutôt l'option default_charset.


Constantes pré-définies

Depuis PHP 4.3.0, il est possible d'identifier durant l'exécution, la version de la bibliothèque iconv que vous utilisez.

Constantes iconv
Constante | Type | Description
ICONV_IMPL | string | Le nom de la bibliothèque
ICONV_VERSION | string | La version de la bibliothèque

Note:

La programmation de scripts dépendant de versions spécifiques, avec ces constantes, est fortement déconseillée.

Depuis PHP 5.0.0, les constantes suivantes sont également disponibles :

Constantes iconv disponibles depuis PHP 5.0.0
Constante | Type | Description
ICONV_MIME_DECODE_STRICT | entier | Un masque utilisé par iconv_mime_decode()
ICONV_MIME_DECODE_CONTINUE_ON_ERROR | entier | Un masque utilisé pour iconv_mime_decode()


Fonctions iconv

Voir aussi

Voir aussi les GNU Recode.

Sommaire

  • iconv_get_encoding — Lit le jeu de caractères courant
  • iconv_mime_decode_headers — Décode des en-têtes MIME multiples
  • iconv_mime_decode — Décode un champ d’en-tête MIME
  • iconv_mime_encode — Construit un en-tête MIME avec les champs field_name et field_value
  • iconv_set_encoding — Modifie le jeu courant de caractères d'encodage
  • iconv_strlen — Retourne le nombre de caractères d'une chaîne
  • iconv_strpos — Trouve la position de la première occurrence d'une chaîne dans une autre
  • iconv_strrpos — Trouve la position de la dernière occurrence d'un élément dans une chaîne
  • iconv_substr — Coupe une partie de chaîne
  • iconv — Convertit une chaîne dans un jeu de caractères
  • ob_iconv_handler — Gestionnaire de sortie pour maîtriser le jeu de caractères de sortie


Lit le jeu de caractères courant

  • « Fonctions iconv
  • iconv_mime_decode_headers »
  • PHP Manual
  • Fonctions iconv
  • Lit le jeu de caractères courant

iconv_get_encoding

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

iconv_get_encoding — Lit le jeu de caractères courant

Description

mixed iconv_get_encoding ([ string $type = "all" ] )

Retourne le paramétrage courant du gestionnaire ob_iconv_handler().

Liste de paramètres

type

Les valeurs possibles pour le paramètre optionnel type sont :

  • all
  • input_encoding
  • output_encoding
  • internal_encoding

Valeurs de retour

Retourne la valeur courante de la variable de configuration en cas de succès ou FALSE si une erreur survient.

Si type est omis ou différent de all (c'est-à-dire "tous"), iconv_get_encoding() retourne un tableau contenant toutes les valeurs de ces constantes.

Exemples

Exemple #1 Exemple avec iconv_get_encoding()

<pre>
<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
var_dump(iconv_get_encoding('all'));
?>
</pre>

L'exemple ci-dessus va afficher :

Array
(
    [input_encoding] => ISO-8859-1
    [output_encoding] => ISO-8859-1
    [internal_encoding] => UTF-8
)

Voir aussi

  • iconv_set_encoding() - Modifie le jeu courant de caractères d'encodage
  • ob_iconv_handler() - Gestionnaire de sortie pour maîtriser le jeu de caractères de sortie


Décode des en-têtes MIME multiples

  • « iconv_get_encoding
  • iconv_mime_decode »
  • PHP Manual
  • Fonctions iconv
  • Décode des en-têtes MIME multiples

iconv_mime_decode_headers

(PHP 5, PHP 7)

iconv_mime_decode_headers — Décode des en-têtes MIME multiples

Description

array iconv_mime_decode_headers ( string $encoded_headers [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )

iconv_mime_decode_headers() décode les en-têtes MIME multiples.

Liste de paramètres

encoded_headers

Les en-têtes encodés, sous la forme d'une chaîne de caractères.

mode

mode détermine le comportement de la fonction, si iconv_mime_decode_headers() rencontre un en-tête MIME malformé.

Masques acceptés par la fonction iconv_mime_decode_headers()
Valeur | Constante | Description
1 | ICONV_MIME_DECODE_STRICT | Si utilisés, les en-têtes sont décodés en respectant scrupuleusement le standard de la » RFC2047. Cette option est désactivée par défaut, car il y a de nombreux clients mails qui ne suivent pas ces spécifications et qui ne produisent pas d'en-têtes MIME corrects.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | Si cette option est activée, iconv_mime_decode_headers() tente d'ignorer les erreurs de syntaxe et continue de traiter l'en-tête donné.

charset

Le paramètre optionnel charset spécifie le jeu de caractères utilisé pour représenter le résultat. S'il est omis, le jeu définit dans le fichier php.ini iconv.internal_encoding est utilisé.

Valeurs de retour

Retourne un tableau associatif qui contient les en-têtes MIME spécifiés par le paramètre encoded_headers, ou bien FALSE si une erreur survient durant le décodage.

Chaque clé du tableau retourné contient un nom d'en-tête distinct, et sa valeur correspondante. Si plusieurs champs ont le même nom, iconv_mime_decode_headers() fera de ce champ un tableau indexé, avec les valeurs dans leur ordre d'apparence.

Exemples

Exemple #1 Exemple avec iconv_mime_decode_headers()

<?php
$headers_string = <<<EOF
Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=
To: example@example.com
Date: Thu, 1 Jan 1970 00:00:00 +0000
Message-Id: <example@example.com>
Received: from localhost (localhost [127.0.0.1]) by localhost
    with SMTP id example for <example@example.com>;
    Thu, 1 Jan 1970 00:00:00 +0000 (UTC)
    (envelope-from example-return-0000-example=example.com@example.com)
Received: (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000

EOF;

$headers =  iconv_mime_decode_headers($headers_string, 0, "ISO-8859-1");
print_r($headers);
?>

L'exemple ci-dessus va afficher :

Array
(
    [Subject] => Prüfung Prüfung
    [To] => example@example.com
    [Date] => Thu, 1 Jan 1970 00:00:00 +0000
    [Message-Id] => <example@example.com>
    [Received] => Array
        (
            [0] => from localhost (localhost [127.0.0.1]) by localhost with SMTP id example for <example@example.com>; Thu, 1 Jan 1970 00:00:00 +0000 (UTC) (envelope-from example-return-0000-example=example.com@example.com)
            [1] => (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000
        )

)

Voir aussi

  • iconv_mime_decode() - Décode un champ d’en-tête MIME
  • mb_decode_mimeheader() - Décode un en-tête MIME
  • imap_mime_header_decode() - Décode les éléments MIME d'un en-tête
  • imap_base64() - Décode un texte encodé en BASE64
  • imap_qprint() - Convertit une chaîne à guillemets en une chaîne à 8 bits


Décode un champ d’en-tête MIME

  • « iconv_mime_decode_headers
  • iconv_mime_encode »
  • PHP Manual
  • Fonctions iconv
  • Décode un champ d’en-tête MIME

iconv_mime_decode

(PHP 5, PHP 7)

iconv_mime_decode — Décode un champ d’en-tête MIME

Description

string iconv_mime_decode ( string $encoded_header [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )

iconv_mime_decode() décode un champ d’en-tête MIME.

Liste de paramètres

encoded_header

L’en-tête encodé, sous la forme d’une chaîne de caractères.

mode

mode détermine une alternative dans le cas où iconv_mime_decode() rencontre un champ d’en-tête MIME mal formé.

Masques acceptables pour la fonction iconv_mime_decode()
Valeur | Constante | Description
1 | ICONV_MIME_DECODE_STRICT | Si défini, l’en-tête correspondant sera décodé en suivant strictement le standard » RFC2047. Cette option est désactivée par défaut, car il existe beaucoup de mauvais clients de courriel qui ne suivent pas ce standard et donc, produisent de mauvais en-têtes MIME.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | Si défini, iconv_mime_decode() essaie de continuer à décoder l’en-tête passé, même si des erreurs apparaissent.

charset

Le paramètre par défaut charset spécifie le jeu de caractères à utiliser pour représenter le résultat. S’il est omis, iconv.internal_encoding sera utilisé.

Valeurs de retour

Retourne un champ MIME en cas de succès, ou FALSE si une erreur survient durant le décodage.

Exemples

Exemple #1 Exemple avec iconv_mime_decode()

<?php
// Ceci affichera : "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
                       0, "ISO-8859-1");
?>

Voir aussi

  • iconv_mime_decode_headers() - Décode des en-têtes MIME multiples
  • mb_decode_mimeheader() - Décode un en-tête MIME
  • imap_mime_header_decode() - Décode les éléments MIME d'un en-tête
  • imap_base64() - Décode un texte encodé en BASE64
  • imap_qprint() - Convertit une chaîne à guillemets en une chaîne à 8 bits


Construit un en-tête MIME avec les champs field_name et field_value

  • « iconv_mime_decode
  • iconv_set_encoding »
  • PHP Manual
  • Fonctions iconv
  • Construit un en-tête MIME avec les champs field_name et field_value

iconv_mime_encode

(PHP 5, PHP 7)

iconv_mime_encode — Construit un en-tête MIME avec les champs field_name et field_value

Description

string iconv_mime_encode ( string $field_name , string $field_value [, array $preferences = NULL ] )

iconv_mime_encode() compose et retourne une chaîne de caractères qui représente un champ en-tête MIME qui ressemble à :

Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
Dans l'exemple ci-dessus, "Subject" est le nom du champ et la portion qui commence par "=?ISO-8859-1?..." est la valeur du champ.

Liste de paramètres

field_name

Le nom du champ.

field_value

La valeur du champs.

preferences

Vous pouvez contrôler le comportement de la fonction iconv_mime_encode() en spécifiant un tableau associatif contenant la configuration des éléments dans le paramètre preferences. La liste des éléments supportés par iconv_mime_encode() figure ci-dessous. Notez que les noms des éléments sont sensibles à la casse.

Liste des éléments supportés par iconv_mime_encode()
Élément | Type | Description | Valeur par défaut | Exemple
scheme | string | Spécifie la méthode d'encodage d'un champ. Les valeurs possibles sont "B" ou "Q", où "B" signifie que le schéma d'encodage sera base64 et "Q", quoted-printable. | B | B
input-charset | string | Spécifie le jeux de caractères pour représenter le premier paramètre field_name et le second paramètre field_value. S'il est omis, iconv_mime_encode() utilisera la directive de configuration iconv.internal_encoding de votre php.ini pour les représenter. | iconv.internal_encoding | ISO-8859-1
output-charset | string | Spécifie le jeux de caractères à utiliser pour composer l'en-tête MIME. | iconv.internal_encoding | UTF-8
line-length | integer | Spécifie la longueur maximale de chaque en-tête. Si l'en-tête est plus grande que la longueur défini par ce paramètre, l'en-tête résultant sera un en-tête composée de plusieurs lignes conformément au standard » RFC2822 - Internet Message Format. S'il est omis, la longueur maximale sera fixée à 76 caractères. | 76 | 996
line-break-chars | string | Spécifie les caractères de fin de ligne. S'il est omis, la valeur par défaut sera "\r\n" (CR LF). Notez que ce paramètre est toujours représenté comme une chaîne ASCII au regard de la valeur du paramètre input-charset. | \r\n | \n

Valeurs de retour

Retourne un champs MIME en cas de succès, ou FALSE si une erreur survient durant l'encodage.

Exemples

Exemple #1 Exemple avec iconv_mime_encode()

<?php
$preferences = array(
    "input-charset" => "ISO-8859-1",
    "output-charset" => "UTF-8",
    "line-length" => 76,
    "line-break-chars" => "\n"
);
$preferences["scheme"] = "Q";
// This yields "Subject: =?UTF-8?Q?Pr=C3=BCfung=20Pr=C3=BCfung?="
echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);

$preferences["scheme"] = "B";
// This yields "Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?="
echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);
?>

Voir aussi

  • imap_binary() - Convertit une chaîne à 8 bits en une chaîne à base64
  • mb_encode_mimeheader() - Encode une chaîne pour un en-tête MIM
  • imap_8bit() - Convertit une chaîne à 8 bits en une chaîne encodée en Quoted-Printable
  • quoted_printable_encode() - Convertit une chaîne 8 bits en une chaîne quoted-printable


Modifie le jeu courant de caractères d'encodage

  • « iconv_mime_encode
  • iconv_strlen »
  • PHP Manual
  • Fonctions iconv
  • Modifie le jeu courant de caractères d'encodage

iconv_set_encoding

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

iconv_set_encoding — Modifie le jeu courant de caractères d'encodage

Description

bool iconv_set_encoding ( string $type , string $charset )

Modifie le jeu de caractères courant, et remplace la valeur courante du paramètre type par charset.

Liste de paramètres

type

Les valeurs possibles de type sont :

  • input_encoding
  • output_encoding
  • internal_encoding

charset

Le jeu de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec iconv_set_encoding()

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
?>

Voir aussi

  • iconv_get_encoding() - Lit le jeu de caractères courant
  • ob_iconv_handler() - Gestionnaire de sortie pour maîtriser le jeu de caractères de sortie


Retourne le nombre de caractères d'une chaîne

  • « iconv_set_encoding
  • iconv_strpos »
  • PHP Manual
  • Fonctions iconv
  • Retourne le nombre de caractères d'une chaîne

iconv_strlen

(PHP 5, PHP 7)

iconv_strlen — Retourne le nombre de caractères d'une chaîne

Description

int iconv_strlen ( string $str [, string $charset = ini_get("iconv.internal_encoding") ] )

À l'opposée de strlen(), la valeur de retour de iconv_strlen() est le nombre de caractères faisant partie de la séquence d'octets str, ce qui n'est pas toujours la même chose que la taille en octets de la chaîne de caractères.

Liste de paramètres

str

La chaîne de caractères.

charset

Si charset n'est pas passé en paramètre, str est supposée être encodée en iconv.internal_encoding.

Valeurs de retour

Retourne le nombre de caractères de la chaîne str, sous la forme d'un entier.

Voir aussi

  • grapheme_strlen() - Lit la taille d'une chaîne en nombre de graphème
  • mb_strlen() - Retourne la taille d'une chaîne
  • strlen() - Calcule la taille d'une chaîne


Trouve la position de la première occurrence d'une chaîne dans une autre

  • « iconv_strlen
  • iconv_strrpos »
  • PHP Manual
  • Fonctions iconv
  • Trouve la position de la première occurrence d'une chaîne dans une autre

iconv_strpos

(PHP 5, PHP 7)

iconv_strpos — Trouve la position de la première occurrence d'une chaîne dans une autre

Description

int iconv_strpos ( string $haystack , string $needle [, int $offset = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )

Trouve la position de la première occurrence de needle dans haystack.

À l'opposé de strpos(), la valeur retournée par iconv_strpos() est le nombre de caractères se trouvant avant needle, plutôt que la position en octets où needle a été trouvé. Les caractères sont comptés en se basant sur le jeux de caractères spécifié par charset.

Liste de paramètres

haystack

La chaîne de caractères entière.

needle

La chaîne de caractères à chercher.

offset

Le paramètre optionnel offset spécifie la position à partir de laquelle la recherche doit commencer.

charset

Si le paramètre charset est omis, string sera encodé en accord avec iconv.internal_encoding.

Si haystack ou needle ne sont pas des chaînes de caractères, ils sont convertis en entiers et appliqués en tant que valeur ordinale d'un caractère.

Valeurs de retour

Retourne la position numérique de la première occurrence de needle dans haystack.

Si needle n'est pas trouvé, iconv_strpos() retournera FALSE.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi

  • strpos() - Cherche la position de la première occurrence dans une chaîne
  • iconv_strrpos() - Trouve la position de la dernière occurrence d'un élément dans une chaîne
  • mb_strpos() - Repère la première occurrence d'un caractère dans une chaîne


Trouve la position de la dernière occurrence d'un élément dans une chaîne

  • « iconv_strpos
  • iconv_substr »
  • PHP Manual
  • Fonctions iconv
  • Trouve la position de la dernière occurrence d'un élément dans une chaîne

iconv_strrpos

(PHP 5, PHP 7)

iconv_strrpos — Trouve la position de la dernière occurrence d'un élément dans une chaîne

Description

int iconv_strrpos ( string $haystack , string $needle [, string $charset = ini_get("iconv.internal_encoding") ] )

Troue la dernière occurrence de needle dans haystack.

À l'opposé de la fonction strpos(), la valeur retournée par iconv_strrpos() est le nombre de caractères avant needle, plutôt que la position en octets de needle. Les caractères sont comptés en se basant sur le jeux de caractères charset. Les caractères sont comptés sur la base du jeu de caractères charset spécifié.

Liste de paramètres

haystack

La chaîne de caractères entière.

needle

La chaîne de caractères cherchée.

charset

Si le paramètre optionnel charset est omis, string est supposé être encodé en iconv.internal_encoding.

Si haystack ou needle ne sont pas des chaînes de caractères, ils seront convertis en chaîne de caractères et reconnus comme code ASCII de chaque caractères.

Valeurs de retour

Retourne la position numérique de la dernière occurrence de needle dans haystack.

Si needle n'est pas trouvé, iconv_strrpos() retournera FALSE.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi

  • strrpos() - Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne
  • iconv_strpos() - Trouve la position de la première occurrence d'une chaîne dans une autre
  • mb_strrpos() - Repère la dernière occurrence d'un caractère dans une chaîne


Coupe une partie de chaîne

  • « iconv_strrpos
  • iconv »
  • PHP Manual
  • Fonctions iconv
  • Coupe une partie de chaîne

iconv_substr

(PHP 5, PHP 7)

iconv_substr — Coupe une partie de chaîne

Description

string iconv_substr ( string $str , int $offset [, int $length = iconv_strlen($str, $charset) [, string $charset = ini_get("iconv.internal_encoding") ]] )

Coupe une partie de la chaîne str à partir de la position offset et d'une longueur de length.

Liste de paramètres

str

La chaîne de caractères originale.

offset

Si offset n'est pas négatif, iconv_substr() retourne le segment de str en commençant au caractère numéro offset, en comptant à partir de zéro.

Si offset est négatif, iconv_substr() retourne le segment en commençant à la position offset caractères et en allant vers la fin de la chaîne de caractères str.

length

Si le paramètre length est donné et positif, la valeur retournée contiendra au plus length caractères de la portion de chaîne qui commence à offset (en fonction de la taille de la chaîne string).

Si length est passé et négatif, iconv_substr() coupe la portion externe de str depuis le caractère numéro offset jusqu'au caractère numéro length, compté depuis la fin de la chaîne de caractères. Dans le cas où offset est également négatif, la position de départ est calculée en amont, suivant la règle expliquée plus haut.

charset

Si charset est omis, string est supposé avoir été encodée en iconv.internal_encoding.

Notez que offset et length sont toujours considérés comme représentant une position calculée sur la représentation ASCII des caractères déterminés par charset, contrairement à substr() qui se base toujours sur la position par octet.

Valeurs de retour

Retourne la portion de str spécifié par les paramètres offset et length.

Si str est plus petit que offset, FALSE sera retourné.

Voir aussi

  • substr() - Retourne un segment de chaîne
  • mb_substr() - Lit une sous-chaîne
  • mb_strcut() - Coupe une partie de chaîne


Convertit une chaîne dans un jeu de caractères

  • « iconv_substr
  • ob_iconv_handler »
  • PHP Manual
  • Fonctions iconv
  • Convertit une chaîne dans un jeu de caractères

iconv

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

iconv — Convertit une chaîne dans un jeu de caractères

Description

string iconv ( string $in_charset , string $out_charset , string $str )

Convertit la chaîne str depuis le jeu de caractères in_charset vers le jeu de caractères out_charset.

Liste de paramètres

in_charset

Le jeu de caractères d'entrée.

out_charset

Le jeu de caractères de sortie.

Si vous ajoutez la chaîne //TRANSLIT au paramètre out_charset, la translittération est activée. Cela signifie que lorsqu'un caractère ne peut être représenté dans le jeu de caractères cible, il peut être représenté approximativement à partir d'un ou plusieurs caractères représentant le même caractère. Si vous ajoutez la chaîne //IGNORE, les caractères qui ne peuvent être représentés dans le jeu de caractères cible sont tout simplement ignorés. Sinon, une alerte de niveau E_NOTICE sera générée et la fonction retournera FALSE.

str

La chaîne de caractères à convertir.

Valeurs de retour

Retourne la chaîne de caractères convertie ou FALSE si une erreur survient.

Historique

Version | Description
5.4.0 | Depuis cette version, la fonction retourne FALSE sur des caractères illégaux à moins que //IGNORE ne soit spécifié dans le jeu de caractères de sortie. Avant cette version, la fonction retournait une chaîne partielle.

Exemples

Exemple #1 Exemple avec iconv()

<?php
$text = "Ceci est le symbole de l'Euro '€'.";

echo 'Original : ', $text, PHP_EOL;
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo 'IGNORE   : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo 'Brut     : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Original : Ceci est le symbole de l'Euro '€'.
TRANSLIT : Ceci est le symbole de l'Euro 'EUR'.
IGNORE   : Ceci est le symbole de l'Euro ''.
Brut     : Ceci est le symbole de l'Euro '
Notice: iconv(): Detected an illegal character in input string in /Users/macbook/Desktop/- on line 8
Ceci est le symbole de l'Euro '


Gestionnaire de sortie pour maîtriser le jeu de caractères de sortie

  • « iconv
  • intl »
  • PHP Manual
  • Fonctions iconv
  • Gestionnaire de sortie pour maîtriser le jeu de caractères de sortie

ob_iconv_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ob_iconv_handler — Gestionnaire de sortie pour maîtriser le jeu de caractères de sortie

Description

string ob_iconv_handler ( string $contents , int $status )

Convertit la chaîne utilisant le jeu de caractères internal_encoding en une chaîne utilisant celui de output_encoding.

internal_encoding et output_encoding doivent être définis par iconv_set_encoding() ou dans le fichier de configuration php.ini.

Liste de paramètres

Voir la documentation sur la fonction ob_start() pour plus d'informations sur les paramètres de cette fonction.

Valeurs de retour

Voir la documentation sur la fonction ob_start() pour plus d'informations sur les valeurs retournées par cette fonction.

Exemples

Exemple #1 Exemple avec ob_iconv_handler()

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
ob_start("ob_iconv_handler"); // Commence la mise en buffer de l'affichage
?>

Voir aussi

  • iconv_get_encoding() - Lit le jeu de caractères courant
  • iconv_set_encoding() - Modifie le jeu courant de caractères d'encodage
  • fonctions de buffers de sortie


Fonctions d'internationalisation

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple de l'extension
  • Collator — La classe Collator
    • Collator::asort — Tri un tableau en conservant les clés, avec une collation
    • Collator::compare — Compare deux chaînes Unicode
    • Collator::__construct — Création d'un collator
    • Collator::create — Création d'un collator
    • Collator::getAttribute — Lit un attribut de collation
    • Collator::getErrorCode — Lit la dernière erreur du collator
    • Collator::getErrorMessage — Lit le dernier message d'erreur du collator
    • Collator::getLocale — Lit le nom de la locale d'un collator
    • Collator::getSortKey — Recupère la clé de tri pour une chaine
    • Collator::getStrength — Récupère la dureté de classement utilisé
    • Collator::setAttribute — Configure l'attribut de collation
    • Collator::setStrength — Set collation strength
    • Collator::sortWithSortKeys — Tri un tableau et ses clés avec une collation
    • Collator::sort — Trie un tableau avec une collation
  • NumberFormatter — La classe NumberFormatter
    • NumberFormatter::create — Crée un formateur de nombre
    • NumberFormatter::formatCurrency — Formate une valeur monétaire
    • NumberFormatter::format — Formate un nombre
    • NumberFormatter::getAttribute — Lit un attribut
    • NumberFormatter::getErrorCode — Lit le dernier code d'erreur du formateur
    • NumberFormatter::getErrorMessage — Lit le dernier message d'erreur du formateur
    • NumberFormatter::getLocale — Lit la locale du formateur
    • NumberFormatter::getPattern — Lit le modèle du formateur
    • NumberFormatter::getSymbol — Lit la valeur du symbole
    • NumberFormatter::getTextAttribute — Lit un attribut textuel
    • NumberFormatter::parseCurrency — Analyse un nombre monétaire
    • NumberFormatter::parse — Analyse un nombre
    • NumberFormatter::setAttribute — Affecte un attribut du formateur
    • NumberFormatter::setPattern — Configure le modèle du formateur
    • NumberFormatter::setSymbol — Configure le symbole du formateur
    • NumberFormatter::setTextAttribute — Modifie un attribut texte
  • Locale — La classe Locale
    • Locale::acceptFromHttp — Devine la meilleure locale à partir de l'en-tête HTTP "Accept-Language"
    • Locale::canonicalize — Canonise la chaîne représentant la locale
    • Locale::composeLocale — Retourne un identifiant de locale correct
    • Locale::filterMatches — Vérifie si le tag de langue correspond à une locale
    • Locale::getAllVariants — Liste toutes les variantes d'une locale
    • Locale::getDefault — Lit la valeur par défaut d'une locale pour la variable globale 'default_locale'
    • Locale::getDisplayLanguage — Retourne un nom approprié pour l'affichage d'un nom de langue
    • Locale::getDisplayName — Retourne un nom d'affichage correct pour une locale
    • Locale::getDisplayRegion — Retourne un nom pour la région de la locale
    • Locale::getDisplayScript — Retourne le nom du script de la locale
    • Locale::getDisplayVariant — Retourne un nom pour la variante de la locale
    • Locale::getKeywords — Lit les mots-clé de la locale
    • Locale::getPrimaryLanguage — Lit la langue principale de la locale
    • Locale::getRegion — Retourne un code pour la région de la locale
    • Locale::getScript — Retourne un code pour le script de la locale
    • Locale::lookup — Recherche dans la liste la meilleure langue
    • Locale::parseLocale — Retourne les sous-éléments de la locale
    • Locale::setDefault — Configure la locale par défaut
  • Normalizer — La classe Normalizer
    • Normalizer::isNormalized — Vérifie si une chaîne est normalisée
    • Normalizer::normalize — Normalise une chaîne en entrée
  • MessageFormatter — La classe MessageFormatter
    • MessageFormatter::create — Construit un nouveau formateur de messages
    • MessageFormatter::formatMessage — Formate rapidement un message
    • MessageFormatter::format — Formate un message
    • MessageFormatter::getErrorCode — Lit le dernier code d'erreur de la dernière opération
    • MessageFormatter::getErrorMessage — Lit le message d'erreur de la dernière opération
    • MessageFormatter::getLocale — Lit la locale avec la quelle le formateur a été créé
    • MessageFormatter::getPattern — Lit le modèle utilisé par le formateur de messages
    • MessageFormatter::parseMessage — Analyse rapidement une chaîne
    • MessageFormatter::parse — Analyse une chaîne en fonction du modèle
    • MessageFormatter::setPattern — Configure le modèle utilisé par le formateur
  • IntlCalendar — The IntlCalendar class
    • IntlCalendar::add — Ajoute une durée (signée) à un champ
    • IntlCalendar::after — Vérifie si l'objet temps courant est dans le futur par rapport à l'objet temps passé
    • IntlCalendar::before — Vérifie si l'objet temps est dans le passé par rapport à l'objet fourni
    • IntlCalendar::clear — Vide un ou tous les champs
    • IntlCalendar::__construct — Constructeur privé pour la désactivation de l'instanciation
    • IntlCalendar::createInstance — Crée un nouvel objet IntlCalendar
    • IntlCalendar::equals — Vérifie si deux objets IntlCalendar sont égaux
    • IntlCalendar::fieldDifference — Calcule la différence entre le temps donné et le temps de l'objet
    • IntlCalendar::fromDateTime — Create an IntlCalendar from a DateTime object or string
    • IntlCalendar::get — Récupère la valeur d'une propriété
    • IntlCalendar::getActualMaximum — The maximum value for a field, considering the object's current time
    • IntlCalendar::getActualMinimum — The minimum value for a field, considering the object's current time
    • IntlCalendar::getAvailableLocales — Get array of locales for which there is data
    • IntlCalendar::getDayOfWeekType — Tell whether a day is a weekday, weekend or a day that has a transition between the two
    • IntlCalendar::getErrorCode — Get last error code on the object
    • IntlCalendar::getErrorMessage — Get last error message on the object
    • IntlCalendar::getFirstDayOfWeek — Get the first day of the week for the calendar's locale
    • IntlCalendar::getGreatestMinimum — Get the largest local minimum value for a field
    • IntlCalendar::getKeywordValuesForLocale — Get set of locale keyword values
    • IntlCalendar::getLeastMaximum — Get the smallest local maximum for a field
    • IntlCalendar::getLocale — Get the locale associated with the object
    • IntlCalendar::getMaximum — Get the global maximum value for a field
    • IntlCalendar::getMinimalDaysInFirstWeek — Get minimal number of days the first week in a year or month can have
    • IntlCalendar::getMinimum — Get the global minimum value for a field
    • IntlCalendar::getNow — Récupère le nombre représentant la date courante
    • IntlCalendar::getRepeatedWallTimeOption — Get behavior for handling repeating wall time
    • IntlCalendar::getSkippedWallTimeOption — Get behavior for handling skipped wall time
    • IntlCalendar::getTime — Get time currently represented by the object
    • IntlCalendar::getTimeZone — Récupère le fuseau horaire de l'objet
    • IntlCalendar::getType — Récupère le type de calendrier
    • IntlCalendar::getWeekendTransition — Get time of the day at which weekend begins or ends
    • IntlCalendar::inDaylightTime — Whether the object's time is in Daylight Savings Time
    • IntlCalendar::isEquivalentTo — Whether another calendar is equal but for a different time
    • IntlCalendar::isLenient — Whether date/time interpretation is in lenient mode
    • IntlCalendar::isSet — Whether a field is set
    • IntlCalendar::isWeekend — Whether a certain date/time is in the weekend
    • IntlCalendar::roll — Add value to field without carrying into more significant fields
    • IntlCalendar::set — Set a time field or several common fields at once
    • IntlCalendar::setFirstDayOfWeek — Défini le jour de début de la semaine
    • IntlCalendar::setLenient — Set whether date/time interpretation is to be lenient
    • IntlCalendar::setMinimalDaysInFirstWeek — Set minimal number of days the first week in a year or month can have
    • IntlCalendar::setRepeatedWallTimeOption — Set behavior for handling repeating wall times at negative timezone offset transitions
    • IntlCalendar::setSkippedWallTimeOption — Set behavior for handling skipped wall times at positive timezone offset transitions
    • IntlCalendar::setTime — Défini le temps du calendrier en milliseconde depuis l'époque
    • IntlCalendar::setTimeZone — Défini le fuseau horaire utilisé par ce calendrier
    • IntlCalendar::toDateTime — Converti un objet IntlCalendar en un objet DateTime
  • IntlTimeZone — The IntlTimeZone class
    • IntlTimeZone::countEquivalentIDs — Récupère le nombre d'IDs dans le groupe d'équivalence qui inclut l'ID fourni
    • IntlTimeZone::createDefault — Crée une nouvelle copie du fuseau horaire par défaut pour cet hôte
    • IntlTimeZone::createEnumeration — Récupère une énumération d'IDs de fuseau horaire associés avec le pays fourni
    • IntlTimeZone::createTimeZone — Crée un objet de fuseau horaire pour l'ID fourni
    • IntlTimeZone::fromDateTimeZone — Crée un objet fuseau horaire depuis DateTimeZone
    • IntlTimeZone::getCanonicalID — Récupère l'identifiant du fuseau horaire système ou l'identifiant normalisé du fuseau horaire personnalisé pour l'ID du fuseau horaire fourni
    • IntlTimeZone::getDisplayName — Récupère un nom du fuseau horaire aux fins de présentation à l'utilisateur
    • IntlTimeZone::getDSTSavings — Récupère la durée à ajouter à l'heure locale pour récupérer l'heure murale locale
    • IntlTimeZone::getEquivalentID — Récupère un identifiant d'un groupe d'équivalence qui inclut l'identifiant fourni
    • IntlTimeZone::getErrorCode — Récupère le code de la dernière erreur survenue sur l'objet
    • IntlTimeZone::getErrorMessage — Récupère le message de la dernière erreur survenue sur l'objet
    • IntlTimeZone::getGMT — Crée un fuseau horaire GMT (UTC)
    • IntlTimeZone::getID — Récupère l'ID d'un fuseau horaire
    • IntlTimeZone::getOffset — Récupère le fuseau horaire brute, et la position GMT pour un moment dans le temps donné
    • IntlTimeZone::getRawOffset — Récupère la position brute GMT (avant de prendre en compte l'heure d'été)
    • IntlTimeZone::getTZDataVersion — Récupère la version du fuseau horaire actuellement utilisé par ICU
    • IntlTimeZone::hasSameRules — Vérifie si cette zone a les mêmes règles qu'une autre
    • IntlTimeZone::toDateTimeZone — Convertit un objet DateTimeZone
    • IntlTimeZone::useDaylightTime — Vérifie si ce fuseau horaire utilise l'heure d'étét
  • IntlDateFormatter — La classe IntlDateFormatter
    • IntlDateFormatter::create — Crée un formateur de date
    • IntlDateFormatter::format — Formate la date et l'heure sous forme de chaîne
    • IntlDateFormatter::formatObject — Formate un objet
    • IntlDateFormatter::getCalendar — Lit le calendrier utilisé par l'objet IntlDateFormatter
    • IntlDateFormatter::getDateType — Lit le type de date utilisé par IntlDateFormatter
    • IntlDateFormatter::getErrorCode — Lit le code d'erreur de la dernière opération
    • IntlDateFormatter::getErrorMessage — Lit le dernier message d'erreur
    • IntlDateFormatter::getLocale — Lit la locale utilisée par le formateur
    • IntlDateFormatter::getPattern — Lit le modèle utilisé par IntlDateFormatter
    • IntlDateFormatter::getTimeType — Lit le type de temps pour IntlDateFormatter
    • IntlDateFormatter::getTimeZoneId — Lit le fuseau horaire de IntlDateFormatter
    • IntlDateFormatter::getCalendarObject — Récupère une copie de l'objet formateur du calendrier
    • IntlDateFormatter::getTimeZone — Récupère le formateur du décalage horaire
    • IntlDateFormatter::isLenient — Retourne la sévérité utilisée pour IntlDateFormatter
    • IntlDateFormatter::localtime — Analyse une chaîne et la converti en temps
    • IntlDateFormatter::parse — Analyse une chaîne vers un timestamp
    • IntlDateFormatter::setCalendar — Définit le type de calendrier utilisé par le formateur
    • IntlDateFormatter::setLenient — Configure la souplesse de l'analyseur
    • IntlDateFormatter::setPattern — Configure le modèle utilisé par le IntlDateFormatter
    • IntlDateFormatter::setTimeZoneId — Configure le fuseau horaire à utiliser
    • IntlDateFormatter::setTimeZone — Définit le formateur pour le décalage horaire
  • ResourceBundle — La classe ResourceBundle
    • ResourceBundle::count — Récupère le nombre d'éléments dans le faisceau
    • ResourceBundle::create — Crée une ressource représentant un faisceau
    • ResourceBundle::getErrorCode — Récupère le dernier code erreur du faisceau
    • ResourceBundle::getErrorMessage — Récupère le dernier message d'erreur depuis le faisceau
    • ResourceBundle::get — Récupère les données depuis le faisceau
    • ResourceBundle::getLocales — Récupère les locales supportées
  • Spoofchecker — La classe Spoofchecker
    • Spoofchecker::areConfusable — Vérifie si un texte contient des caractères confus
    • Spoofchecker::__construct — Constructeur
    • Spoofchecker::isSuspicious — Vérifie si un texte contient des caractères suspects
    • Spoofchecker::setAllowedLocales — Locales à utiliser lors de la vérification
    • Spoofchecker::setChecks — Spécifie les vérifications à effectuer
  • Transliterator — La classe Transliterator
    • Transliterator::__construct — Constructeur privé pour interdire l'instantiation
    • Transliterator::create — Crée un Transliterator
    • Transliterator::createFromRules — Crée un translittérateur depuis des règles
    • Transliterator::createInverse — Crée un translittérateur inverse
    • Transliterator::getErrorCode — Récupère le dernier code erreur
    • Transliterator::getErrorMessage — Récupère le dernier message d'erreur
    • Transliterator::listIDs — Récupère les identifiants de ce translittérateur
    • Transliterator::transliterate — Translittère une chaîne de caractères
  • IntlBreakIterator — The IntlBreakIterator class
    • IntlBreakIterator::__construct — Constructeur privé pour désactiver l'instantiation
    • IntlBreakIterator::createCharacterInstance — Crée un itérateur pour les limites des séquences de caractères combinés
    • IntlBreakIterator::createCodePointInstance — Crée un itérateur pour les limites de points de code
    • IntlBreakIterator::createLineInstance — Crée un itérateur pour les coupures de lignes
    • IntlBreakIterator::createSentenceInstance — Crée un itérateur pour les coupures de phrase
    • IntlBreakIterator::createTitleInstance — Crée un itérateur
    • IntlBreakIterator::createWordInstance — Crée un itérateur pour les coupures de mot
    • IntlBreakIterator::current — Récupère l'index de la position courante
    • IntlBreakIterator::first — Définit la position au premier caractère du texte
    • IntlBreakIterator::following — Avance l'itérateur à la première limite suivant la position spécifiée
    • IntlBreakIterator::getErrorCode — Récupère le code de la dernière erreur survenue sur l'objet
    • IntlBreakIterator::getErrorMessage — Récupère le message de la dernière erreur survenue sur l'objet
    • IntlBreakIterator::getLocale — Récupère la locale associée avec l'objet
    • IntlBreakIterator::getPartsIterator — Crée un itérateur pour naviguer dans les fragments entre les limites
    • IntlBreakIterator::getText — Récupère le texte analysé
    • IntlBreakIterator::isBoundary — Indique si une position est une position limite
    • IntlBreakIterator::last — Définit la position de l'itérateur à l'index après le dernier caractère
    • IntlBreakIterator::next — Avance l'itérateur à la prochaine limite
    • IntlBreakIterator::preceding — Définit la position de l'itérateur à la première limite avant la position
    • IntlBreakIterator::previous — Définit la position de l'itérateur à la limite immédiate avant la courante
    • IntlBreakIterator::setText — Définit le texte à analyser
  • IntlRuleBasedBreakIterator — The IntlRuleBasedBreakIterator class
    • IntlRuleBasedBreakIterator::__construct — Crée un itérateur depuis un jeu de règles
    • IntlRuleBasedBreakIterator::getBinaryRules — Récupère la forme binaire des règles compilées
    • IntlRuleBasedBreakIterator::getRules — Récupère le jeu de règles utilisé pour créer cet objet
    • IntlRuleBasedBreakIterator::getRuleStatus — Récupère la valeur de statut la plus grande depuis les règles qui déterminent la position courante d'arrêt
    • IntlRuleBasedBreakIterator::getRuleStatusVec — Récupère les valeurs de statut depuis les règles d'arrêt qui déterminent la position d'arrêt courante
  • IntlCodePointBreakIterator — The IntlCodePointBreakIterator class
    • IntlCodePointBreakIterator::getLastCodePoint — Récupère le dernier point de code après avoir avancé ou reculé dans l'itérateur
  • IntlPartsIterator — The IntlPartsIterator class
    • IntlPartsIterator::getBreakIterator — Récupère IntlBreakIterator, sauvegardant ainsi cette partie de l'itérateur
  • UConverter — The UConverter class
    • UConverter::__construct — Crée un objet UConverter
    • UConverter::convert — Convertit une chaîne d'un jeu de caractères vers un autre jeu de caractères
    • UConverter::fromUCallback — Fonction de rappel "from"
    • UConverter::getAliases — Récupère les alias du nom fourni
    • UConverter::getAvailable — Récupère le nom canonique des convertisseurs diponibles
    • UConverter::getDestinationEncoding — Récupère l'encodage de la destination
    • UConverter::getDestinationType — Récupère le type de la destination du convertisseur
    • UConverter::getErrorCode — Récupère le code de la dernière erreur survenue sur l'objet
    • UConverter::getErrorMessage — Récupère le message de la dernière erreur survenue sur l'objet
    • UConverter::getSourceEncoding — Récupère l'encodage de la source
    • UConverter::getSourceType — Récupère le type de source du convertisseur
    • UConverter::getStandards — Récupère les normes associées aux noms de conversion
    • UConverter::getSubstChars — Récupère les caractères de substitution
    • UConverter::reasonText — Récupère la chaîne représentant la raison de la fonction de rappel
    • UConverter::setDestinationEncoding — Définit l'encodage de la destination
    • UConverter::setSourceEncoding — Définit l'encodage de la source
    • UConverter::setSubstChars — Définit les caractères de substitution
    • UConverter::toUCallback — Fonction de rappel "to"
    • UConverter::transcode — Convertit une chaîne depuis un jeu de caractères vers un autre jeu de caractères
  • Fonctions Grapheme
    • grapheme_extract — Extrait un groupe de graphème d'une chaîne UTF-8
    • grapheme_stripos — Trouve la position en graphème de la première occurrence dans une chaîne, insensible à la casse
    • grapheme_stristr — Retourne la partie d'une chaîne à partir d'une occurrence
    • grapheme_strlen — Lit la taille d'une chaîne en nombre de graphème
    • grapheme_strpos — Trouve la position du premier graphème
    • grapheme_strripos — Trouve la position du dernier graphème, insensible à la casse
    • grapheme_strrpos — Trouve la position du dernier graphème
    • grapheme_strstr — Retourne la partie d'une chaîne à partir d'une occurrence, insensible à la casse
    • grapheme_substr — Retourne une partie d'une chaîne
  • Fonctions IDN
    • idn_to_ascii — Convertie un nom de domaine au format IDNA ASCII
    • idn_to_utf8 — Convertit le nom de domaine IDNA ASCII en Unicode
  • IntlException — Exception class for intl errors
  • IntlIterator — The IntlIterator class
    • IntlIterator::current — Récupère l'élément courant
    • IntlIterator::key — Récupère la clé courante
    • IntlIterator::next — Se déplace sur l'élément suivant
    • IntlIterator::rewind — Re-positionne l'itérateur au premier élément
    • IntlIterator::valid — Vérifie si la position courant est valide
  • Fonctions intl
    • intl_error_name — Lit le nom symbolique d'un code d'erreur donné
    • intl_get_error_code — Lit le dernier code d'erreur
    • intl_get_error_message — Lit la description de la dernière erreur
    • intl_is_failure — Vérifie si un code d'erreur indique un échec


Introduction

L'extension d'Internationalization (qui est aussi appelée Intl) est une interface pour la bibliothèque » ICU, qui permet aux développeurs PHP d'effectuer des manipulations de nombres, dates et heures avec des conventions » UCA locales, dans leurs scripts.

Cette extension tend à suivre de près l'API ICU, ce qui fait que ceux qui ont l'expérience de cette bibliothèque en C, C++ ou Java pourront facilement s'y retrouver dans l'API PHP. De plus, la documentation ICU peut être très utile pour comprendre les fonctions ICU.

Intl est constitué de plusieurs modules, chacun exposant des API d'ICU :

  • Collator : fournit des outils de comparaison de chaînes, qui supporte les tris en fonction des conventions locales.
  • Number Formatter : permet d'afficher des nombres en fonction des conventions locales, ou de modèles particuliers, ou encore de règles d'affichages.
  • Message Formatter : permet de créer des messages en incorporant des données (comme des dates ou des nombres) formatées en fonction des conventions locale ou particulières; permet aussi d'analyser des textes pour extraire ces informations.
  • Normalizer : fournit une fonction pour normaliser un texte dans l'une des normalisations Unicode, et des méthodes pour tester si une chaîne est déjà normalisée.
  • Locale : fournit des outils d'interaction avec les identifiants locaux : analyse, compose, recherche et filtre des identifiants locaux.

Links

  • » Diverses docs ICU

  • » Guide utilisateur ICU

  • » Algorithme de collation Unicode


Pré-requis

Pour compiler cette extension, vous devez installer la bibliothèque » ICU version 4.0.0 ou plus récent.

Cette extension peut être compilée avec PHP 5.3.0. De plus, la version PECL de cette extension peut être utilisée avec toutes les versions PHP supérieures à la version 5.2.0 (5.2.4+ recommandée).


Installation

Cette extension est disponible pour PHP 5.2.0 dans PECL ou nativement pour PHP 5.3. Il y a donc 2 méthodes pour installer cette extension.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/intl.

Aussi, --enable-intl activera l'extension de manière embarquée à la compilation.

Si votre bibliothèque ICU est installée dans un dossier non-standard, vous aurez peut-être à spécifier sa localisation via la variable d'environnement LD_LIBRARY_PATH, afin que le compilateur dynamique puisse la trouver :

$ export LD_LIBRARY_PATH=/opt/icu/lib

Autrement, si PHP et ICU sont installés dans leurs dossiers par défaut, alors aucune option particulière ne sont nécessaire pour `configure'.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration d'internationalisation
Nom | Défaut | Modifiable | Historique
intl.default_locale |  | PHP_INI_ALL |
intl.error_level | 0 | PHP_INI_ALL |
intl.use_exceptions | 0 | PHP_INI_ALL | Disponible depuis PHP 5.5 et PECL 3.0.0a1

Voici un éclaircissement sur l'utilisation des directives de configuration.

intl.default_locale string

La locale à utiliser avec les fonctions intl lorsqu'aucune n'est spécifiée (soit si elle est omis dans l'argument correspondant, soit si la valeur passée vaut NULL). Ceux sont des locales ICU, et non des locales système. Les locales ICU internes ainsi que leurs données peuvent être explorées ici » http://demo.icu-project.org/icu-bin/locexp.

Par défaut, vaut vide, ce qui force l'utilisation de la locale ICU par défaut. Une fois définie, la configuration ini ne peut être réinitialisée par cette valeur par défaut. Il n'est pas recommandé d'utiliser cette valeur par défaut, sachant qu'elle dépend de l'environnement du serveur.

intl.error_level integer

Le niveau des messages d'erreur générés lorsqu'une erreur survient dans les fonctions ICU. C'est un niveau d'erreur PHP, comme E_WARNING. Il peut valoir 0 pour inhiber les messages. Ceci n'affecte pas les valeurs retournées indiquant une erreur ou les valeurs retournées par la fonction intl_get_error_code() ou par les méthodes de classe spécifiques permettant de récupérer les codes et les messages d'erreur. Le fait de choisir E_ERROR va stopper le script dès qu'une erreur de condition sera trouvée dans les classes intl.

La valeur par défaut est 0.

intl.use_exceptions integer

Si vaut TRUE, une exception sera émise lorsqu'une erreur surviendra dans une fonction intl. L'exception sera de type IntlException. L'exception sera émise en plus du message d'erreur générée en raison de la définition de l'option de configuration intl.error_level.

Par défaut, vaut FALSE.


Constantes pré-définies

INTL_MAX_LOCALE_LEN (entier)
Limite la taille locale, par défaut à 80 en PHP. Les noms de locales plus grand que cette taille seront interdits.
IDNA_DEFAULT (entier)
Interdire le traitement des codepoints non affectés dans l'entrée pour les fonctions IDN et ne vérifient pas si l'entrée est conforme aux règles de noms de domaine ASCII.
IDNA_ALLOW_UNASSIGNED (entier)
Autoriser le traitement des codepoints non affectés dans l'entrée pour les fonctions IDN.
IDNA_USE_STD3_RULES (entier)
Vérifiez si l'entrée pour les fonctions IDN est conforme aux règles de noms de domaine ASCII.
IDNA_CHECK_BIDI (entier)
Vérifie si l'entrée est conforme aux règles BiDi. Ignoré par l'implémentation IDNA2003, qui effectue toujours cette vérification.
IDNA_CHECK_CONTEXTJ (entier)
Vérifie si l'entrée est conforme aux règles CONTEXTJ. Ignoré par l'implémentation IDNA2003, vu que cette vérification est nouvelle en IDNA2008.
IDNA_NONTRANSITIONAL_TO_ASCII (entier)
Option pour une exécution non-transitionnelle dans la fonction idn_to_ascii(). L'exécution transitionnelle est activée par défaut. Cette option est ignorée par l'implémentation IDNA2003.
IDNA_NONTRANSITIONAL_TO_UNICODE (entier)
Option pour une exécution non-transitionnelle dans la fonction idn_to_utf8(). L'exécution transitionnelle est activée par défaut. Cette option est ignorée par l'implémentation IDNA2003.
INTL_IDNA_VARIANT_2003 (entier)
Utilise l'algorithme IDNA 2003 dans la fonction idn_to_utf8() ainsi que dans la fonction idn_to_ascii(). C'est le comportement par défaut.
INTL_IDNA_VARIANT_UTS46 (entier)
Utilise l'algorithme UTS #46 dans la fonction idn_to_utf8() ainsi que dans la fonction idn_to_ascii().
IDNA_ERROR_EMPTY_LABEL (entier)
IDNA_ERROR_LABEL_TOO_LONG (entier)
IDNA_ERROR_DOMAIN_NAME_TOO_LONG (entier)
IDNA_ERROR_LEADING_HYPHEN (entier)
IDNA_ERROR_TRAILING_HYPHEN (entier)
IDNA_ERROR_HYPHEN_3_4 (entier)
IDNA_ERROR_LEADING_COMBINING_MARK (entier)
IDNA_ERROR_DISALLOWED (entier)
IDNA_ERROR_PUNYCODE (entier)
IDNA_ERROR_LABEL_HAS_DOT (entier)
IDNA_ERROR_INVALID_ACE_LABEL (entier)
IDNA_ERROR_BIDI (entier)
IDNA_ERROR_CONTEXTJ (entier)
Erreurs rapportées dans un jeu de bits retourné par l'algorithme UTS #46 dans la fonction idn_to_utf8() ainsi que dans la fonction idn_to_ascii().


  • « Constantes pré-définies
  • Utilisation simple de l'extension »
  • PHP Manual
  • intl
  • Exemples

Exemples

Sommaire

  • Utilisation simple de l'extension


Utilisation simple de l'extension

Chaque module dispose de deux type d'API : une version procédurale, et une version objet. Les deux sont en fait identiques, et décrites dans le document correspondant.

Note:

Toutes les chaînes doivent être en UTF-8. Tous les résultats sont aussi en UTF-8.

Exemple #1 Exemple d'API procédurale pour intl

<?php
$coll  = collator_create('en_US');
$result = collator_compare($coll, "string#1", "string#2");
?>

Exemple #2 Exemple d'API orientée objet pour intl

<?php
$coll = new Collator('en_US');
$al   = $coll->getLocale(Locale::ACTUAL_LOCALE);
echo "Actual locale: $al\n";

$formatter = new NumberFormatter('en_US', NumberFormatter::DECIMAL);
echo $formatter->format(1234567);
?>


La classe Collator

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Introduction

Fournit des outils de comparaisons de chaînes, avec le support des conventions locales pour les tris.

Synopsis de la classe

Collator {
/* Méthodes */
public __construct ( string $locale )
public bool asort ( array &$arr [, int $sort_flag ] )
public int compare ( string $str1 , string $str2 )
public static Collator create ( string $locale )
public int getAttribute ( int $attr )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public string getLocale ( int $type )
public string getSortKey ( string $str )
public int getStrength ( void )
public bool setAttribute ( int $attr , int $val )
public bool setStrength ( int $strength )
public bool sortWithSortKeys ( array &$arr )
public bool sort ( array &$arr [, int $sort_flag ] )
}

Constantes pré-définies

Collator::FRENCH_COLLATION (entier)

Trie les chaînes avec différents accents, sur la fin de la chaîne. Cet attribut est automatiquement configuré à On pour les locales françaises, et quelques autres. Les utilisateurs n'ont pas besoin de configurer explicitement cet attribut. Il y a un coût de performances lors de la comparaison des chaînes quand cet attribut est à On, mais la taille des clés de tris est inchangée. Les valeurs possibles sont :

  • Collator::ON
  • Collator::OFF(par défaut)
  • Collator::DEFAULT_VALUE

Exemple #1 Règles de FRENCH_COLLATION

  • F=OFF cote < coté < côte < côté
  • F=ON cote < côte < coté < côté

Collator::ALTERNATE_HANDLING (entier)

L'attribut alterné est utilisé pour contrôler la gestion des caractères variables de UCA : les espaces blancs, la ponctuation et les symboles. Si Alternate est configuré à NonIgnorable (N), alors les différences entre ces caractères sont de la même importance que les différences entre les lettres. Si Alternate est configuré à Shifted (S), alors ces caractères seront d'importance mineur. La valeur Shifted est souvent utilisée conjointement avec Quaternary qui vaut Strength. Dans ce cas, les espaces blancs, la ponctuation et les symboles sont considérés lors de la comparaison, mais uniquement si les autres aspects de la chaînes (lettres de base, accents et casse) sont tous identiques. Si Alternate n'est pas configuré à Shifted, il n'y a alors pas de différence entre une Strength de 3 et une Strength de 4. Pour plus d'information et d'exemples, voyez Variable_Weighting dans » UCA. La raison qui fait que les valeurs de Alternate ne sont pas seulement On et Off est que des valeurs supplémentaires pour Alternate pourraient être ajoutées à l'avenir. L'option UCA Blanked est exprimée avec une valeur de Strength à 3, et Alternate configuré à Shifted. La valeur par défaut pour la majorité des locales est NonIgnorable. Si Shifted est sélectionné, il peut être plus lent s'il y a de nombreuses chaînes qui sont identiques, sauf pour la ponctuation : la taille de la clé de tri sera inchangée, à mois que le niveau de Strength ne soit élevé.

Les valeurs possibles sont :

  • Collator::NON_IGNORABLE(par défaut)
  • Collator::SHIFTED
  • Collator::DEFAULT_VALUE

Exemple #2 Règles ALTERNATE_HANDLING

  • S=3, A=N di Silva < Di Silva < diSilva < U.S.A. < USA
  • S=3, A=S di Silva = diSilva < Di Silva < U.S.A. = USA
  • S=4, A=S di Silva < diSilva < Di Silva < U.S.A. < USA

Collator::CASE_FIRST (entier)

L'attribut Case_First est utilisé pour contrôler le fait que les majuscules doivent être considérées comme avant les minuscules, et vice-versa, en l'absence d'autres discriminant. Les valeurs possibles sont Uppercase_First (U) et Lowercase_First (L), plus les valeurs standards Default et Off. Il n'y a presque pas de différence entre Off et Lowercase_First en termes de résultats, ce qui fait que les utilisateurs typiques n'utiliseront pas Lowercase_First : uniquement Off ou Uppercase_First. (ceux qui sont intéressés par les différences entre X et L devront consulter la section Collation Customization). Spécifier L ou U ne va pas changer les performances de comparaison, mais va affecter la taille de la clé de tri.

Les valeurs possibles sont :

  • Collator::OFF(par défaut)
  • Collator::LOWER_FIRST
  • Collator::UPPER_FIRST
  • Collator:DEFAULT

Exemple #3 Règles CASE_FIRST

  • C=X or C=L "china" < "China" < "denmark" < "Denmark"
  • C=U "China" < "china" < "Denmark" < "denmark"

Collator::CASE_LEVEL (entier)

L'attribut Case_Level est utilisé pour ignorer les accents, mais pas la casse. Dans ces situations, mettez l'attribut Strength à Primary, et Case_Level à On. Dans la plupart des locales, cet attribut est à Off par défaut. Il y a un petit coût de performances pour la comparaison des chaînes, un un impact sur la taille des index de tri si cet attribut est à On.

Les valeurs possibles sont :

  • Collator::OFF(par défaut)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Exemple #4 Règles CASE_LEVEL

  • S=1, E=X role = Role = rôle
  • S=1, E=O role = rôle < Role

Collator::NORMALIZATION_MODE (entier)

L'attribut Normalization détermine s'il faut normaliser totalement le texte ou non, pour la comparaison. Même si cet attribut à Off (ce qui set le cas par défaut pour de nombreuses locales), les textes comparés pour un usage ordinaire seront corrects (pour des détails, voyez UTN #5). Il n'y aura un problème que si les marques d'accent ne sont pas canoniques. Si cet attribut est à On, alors les meilleurs résultats sont garantis pour tous les textes. Il y a un coût de comparaison moyen si cet attribut vaut On, en fonction de la fréquence des séquences qui requièrent de la normalisation. Il n'y a pas d'effet significatif sur la taille des index de tri. Si le texte est réputé dans les formes de normalisation NFD ou NFKD, il n'y a pas besoin d'activer l'option de Normalization.

Les valeurs possibles sont :

  • Collator::OFF(par défaut)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::STRENGTH (entier)

Le service de collation ICU supporte de nombreux niveaux de comparaison (appelés "Levels", mais aussi connus sous le nom de "Strengths"). Avec ces catégories, ICU peut trier les chaînes avec précision, en fonction des conventions locales. Cependant, en permettant l'utilisation sélective des niveaux, la recherche d'une chaîne dans un texte peut être réalisées, à partir de différentes conditions. Pour plus d'informations, voyez le chapitre collator_set_strength().

Les valeurs possibles sont :

  • Collator::PRIMARY
  • Collator::SECONDARY
  • Collator::TERTIARY(par défaut)
  • Collator::QUATERNARY
  • Collator::IDENTICAL
  • Collator::DEFAULT_VALUE

Collator::HIRAGANA_QUATERNARY_MODE (entier)

La compatibilité avec JIS x 4061 requiert l'introduction d'un niveau supplémentaire pour distinguer les caractères Hiragana et Katakana. Si la compatibilité avec le standard est nécessaire, alors cet attribut doit être utilisé à On, et la Strength doit prendre la valeur de Quaternary. Cela va affecter la taille des index de tri, et les performances de comparaisons des chaînes.

Les valeurs possibles sont :

  • Collator::OFF(par défaut)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::NUMERIC_COLLATION (entier)

Lorsqu'activé, cet attribut génère une clé de collation pour les valeurs numériques de sous-chaînes. C'est une méthode pour que '100' soit trié après '2'.

Les valeurs possibles sont :

  • Collator::OFF(par défaut)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::DEFAULT_VALUE (entier)
Collator::PRIMARY (entier)
Collator::SECONDARY (entier)
Collator::TERTIARY (entier)
Collator::DEFAULT_STRENGTH (entier)
Collator::QUATERNARY (entier)
Collator::IDENTICAL (entier)
Collator::OFF (entier)
Collator::ON (entier)
Collator::SHIFTED (entier)
Collator::NON_IGNORABLE (entier)
Collator::LOWER_FIRST (entier)
Collator::UPPER_FIRST (entier)

Sommaire

  • Collator::asort — Tri un tableau en conservant les clés, avec une collation
  • Collator::compare — Compare deux chaînes Unicode
  • Collator::__construct — Création d'un collator
  • Collator::create — Création d'un collator
  • Collator::getAttribute — Lit un attribut de collation
  • Collator::getErrorCode — Lit la dernière erreur du collator
  • Collator::getErrorMessage — Lit le dernier message d'erreur du collator
  • Collator::getLocale — Lit le nom de la locale d'un collator
  • Collator::getSortKey — Recupère la clé de tri pour une chaine
  • Collator::getStrength — Récupère la dureté de classement utilisé
  • Collator::setAttribute — Configure l'attribut de collation
  • Collator::setStrength — Set collation strength
  • Collator::sortWithSortKeys — Tri un tableau et ses clés avec une collation
  • Collator::sort — Trie un tableau avec une collation


Tri un tableau en conservant les clés, avec une collation

  • « Collator
  • Collator::compare »
  • PHP Manual
  • Collator
  • Tri un tableau en conservant les clés, avec une collation

Collator::asort

collator_asort

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::asort -- collator_asort — Tri un tableau en conservant les clés, avec une collation

Description

Style orienté objet

public bool Collator::asort ( array &$arr [, int $sort_flag ] )

Style procédural

bool collator_asort ( Collator $coll , array &$arr [, int $sort_flag ] )

Cette fonction trie un tableau en maintenant l'association entre les clés et les valeurs. Elle sert surtout à trier des tableaux associatifs, où l'ordre des éléments est important. Les éléments seront triés en fonction des conventions locales.

Équivalent de la fonction PHP standard asort().

Liste de paramètres

coll

Objet Collator.

arr

tableau de chaînes à trier.

sort_flag

Type de tri, optionnel, choisi parmi les constantes suivantes :

  • Collator::SORT_REGULAR : compare les éléments normalement (pas de changement de type).

  • Collator::SORT_NUMERIC : compare les éléments numériquement.

  • Collator::SORT_STRING : compare les éléments littéralement.

Le type de tri par défaut est Collator::SORT_REGULAR.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec collator_asort()

<?php
$coll = collator_create( 'en_US' );
$arr = array(
     'a' => '100',
     'b' => '50',
     'c' => '7'
);
collator_asort( $coll, $arr, Collator::SORT_NUMERIC );
var_export( $arr );

collator_asort( $coll, $arr, Collator::SORT_STRING );
var_export( $arr );
?>

L'exemple ci-dessus va afficher :

array (
  'c' => '7',
  'b' => '50',
  'a' => '100',
)array (
  'a' => '100',
  'b' => '50',
  'c' => '7',
)

Voir aussi

  • Constantes Collator
  • collator_sort() - Trie un tableau avec une collation
  • collator_sort_with_sort_keys() - Tri un tableau et ses clés avec une collation


Compare deux chaînes Unicode

  • « Collator::asort
  • Collator::__construct »
  • PHP Manual
  • Collator
  • Compare deux chaînes Unicode

Collator::compare

collator_compare

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::compare -- collator_compare — Compare deux chaînes Unicode

Description

Style orienté objet

public int Collator::compare ( string $str1 , string $str2 )

Style procédural

int collator_compare ( Collator $coll , string $str1 , string $str2 )

Compare deux chaînes Unicode en fonction des règles de collation.

Liste de paramètres

coll

Objet Collator.

str1

La première chaîne à comparer.

str2

La deuxième chaîne à comparer.

Valeurs de retour

Résultats de comparaison

  • 1 si str1 est plus grand que str2 ;

  • 0 si str1 est égal à str2;

  • -1 si str1 est plus petit que str2 .

En cas d'erreur, un booléen FALSE est retourné.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple avec collator_compare()

<?php
$s1 = 'Hello';
$s2 = 'hello';

$coll = collator_create( 'en_US' );
$res  = collator_compare( $coll, $s1, $s2 );

if ($res === false) {
    echo collator_get_error_message( $coll );
} else if( $res > 0 ) {
    echo "s1 est plus grand que s2\n";
} else if( $res < 0 ) {
    echo "s1 est plus petit que s2\n";
} else {
    echo "s1 est égal à s2\n";
}
?>

L'exemple ci-dessus va afficher :

s1 est plus grand que s2

Voir aussi

  • collator_sort() - Trie un tableau avec une collation


Création d'un collator

  • « Collator::compare
  • Collator::create »
  • PHP Manual
  • Collator
  • Création d'un collator

Collator::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::__construct — Création d'un collator

Description

public Collator::__construct ( string $locale )

Création d'une nouvelle instance d'un objet Collator.

Liste de paramètres

locale

La locale dont les règles de collation doivent être respectés. Des valeurs spéciales peuvent être passées dans cet argument : si NULL est passé, la locale par défaut sera utilisée. Si le mot clé "root" est passé, les règles UCA seront utilisées.

L'attribut Locale est généralement l'attribut le plus important pour assurer des tris et comparaisons valides, en fonction des attentes des utilisateurs. L'ordre par défaut » UCA va trier uniquement quelques langues, telles que hollandais ou portugais (correctement signifie que le résultat sera conforme aux attentes des utilisateurs de ces langues). Autrement, vous devez fournir une locale adaptée à vos utilisateurs. Par conséquent, une valeur spécifique de locale doit être fournie pour assurer un service correct. Le choix de la locale va configurer les valeurs de tous ses attributs qui sont les plus pertinentes pour une locale. Par conséquent, la plupart du temps, les attributs n'ont pas besoin d'être d'être explicitement attribués. Dans le même temps, le choix de la locale aura un impact sur les performances de comparaison et de tris.

Valeurs de retour

Retourne un objet Collator.

Erreurs / Exceptions

Retourne un objet vide en cas d'erreur. Vous pouvez alors utiliser la méthode intl_get_error_code() et / ou intl_get_error_message() pour en savoir faire.

Exemples

Exemple #1 Exemple avec Collator::__construct()

<?php
$coll = new Collator( 'en_CA' );
?>

Voir aussi

  • Collator::create() - Création d'un collator
  • collator_create() - Création d'un collator


Création d'un collator

  • « Collator::__construct
  • Collator::getAttribute »
  • PHP Manual
  • Collator
  • Création d'un collator

Collator::create

collator_create

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::create -- collator_create — Création d'un collator

Description

Style orienté objet

public static Collator Collator::create ( string $locale )

Style procédural

Collator collator_create ( string $locale )

Les chaînes seront comparées et triées avec des conventions locales.

Liste de paramètres

locale

La locale dont les règles de collation doivent être respectés. Des valeurs spéciales peuvent être passées dans cet argument : si NULL est passé, la locale par défaut sera utilisée. Si une chaîne vide ou le mot clé "root", les règles » UCA seront utilisées.

Valeurs de retour

Retourne une nouvelle instance de la classe Collator, ou NULL en cas d'erreur.

Exemples

Exemple #1 Exmple avec collator_create()

<?php
$coll = collator_create( 'en_US' );

if( !isset( $coll ) ) {
    printf( "Echec de création de collator : %s\n", intl_get_error_message() );
    exit( 1 );
}
?>

Voir aussi

  • Collator::__construct() - Création d'un collator


Lit un attribut de collation

  • « Collator::create
  • Collator::getErrorCode »
  • PHP Manual
  • Collator
  • Lit un attribut de collation

Collator::getAttribute

collator_get_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getAttribute -- collator_get_attribute — Lit un attribut de collation

Description

Style orienté objet

public int Collator::getAttribute ( int $attr )

Style procédural

int collator_get_attribute ( Collator $coll , int $attr )

Lit un attribut de collation.

Liste de paramètres

coll

Objet Collator.

attr

L'attribut à lire.

Valeurs de retour

La valeur de l'attribut, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec collator_get_attribute()

<?php
$coll = collator_create( 'en_CA' );
$val = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if( $val === false )
{
    // Gestion d'erreur
}
?>

Voir aussi

  • Collator constants
  • collator_set_attribute() - Configure l'attribut de collation
  • collator_get_strength() - Récupère la dureté de classement utilisé


Lit la dernière erreur du collator

  • « Collator::getAttribute
  • Collator::getErrorMessage »
  • PHP Manual
  • Collator
  • Lit la dernière erreur du collator

Collator::getErrorCode

collator_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getErrorCode -- collator_get_error_code — Lit la dernière erreur du collator

Description

Style orienté objet

public int Collator::getErrorCode ( void )

Style procédural

int collator_get_error_code ( Collator $coll )

Liste de paramètres

coll

Objet Collator.

Valeurs de retour

Le code d'erreur retourné par le dernier appel à un objet de l'API Collator.

Exemples

Exemple #1 Exemple avec collator_get_error_code()

<?php
$coll = collator_create( 'en_US' );
if( collator_get_attribute( $coll, Collator::FRENCH_COLLATION ) === false )
        handle_error( collator_get_error_code() );
?>

Voir aussi

  • collator_get_error_message() - Lit le dernier message d'erreur du collator


Lit le dernier message d'erreur du collator

  • « Collator::getErrorCode
  • Collator::getLocale »
  • PHP Manual
  • Collator
  • Lit le dernier message d'erreur du collator

Collator::getErrorMessage

collator_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getErrorMessage -- collator_get_error_message — Lit le dernier message d'erreur du collator

Description

Style orienté objet

public string Collator::getErrorMessage ( void )

Style procédural

string collator_get_error_message ( Collator $coll )

Lit le dernier message d'erreur.

Liste de paramètres

coll

Object Collator.

Valeurs de retour

La description d'une erreur survenue lors du dernier appel à une méthode de l'API Collator.

Exemples

Exemple #1 Exemple avec collator_get_error_message()

<?php
$coll = collator_create( 'lt' );
if( collator_compare( $coll, 'y', 'k' ) === false ) {
    echo collator_get_error_message( $coll );
}
?>

Voir aussi

  • collator_get_error_code() - Lit la dernière erreur du collator


Lit le nom de la locale d'un collator

  • « Collator::getErrorMessage
  • Collator::getSortKey »
  • PHP Manual
  • Collator
  • Lit le nom de la locale d'un collator

Collator::getLocale

collator_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getLocale -- collator_get_locale — Lit le nom de la locale d'un collator

Description

Style orienté objet

public string Collator::getLocale ( int $type )

Style procédural

string collator_get_locale ( Collator $coll , int $type )

Lit le nom de la locale d'un collator

Liste de paramètres

coll

Objet Collator.

type

Vous pouvez choisir entre une valeur valide ou une valeur littérale de la locale (à l'aide des constantes Locale::VALID_LOCALE et Locale::ACTUAL_LOCALE, respectivement).

Valeurs de retour

Le nom de la locale pour laquelle le collator est configuré. Si le collator a été configuré à partir de règles, ou qu'une erreur est survenue, la méthode retourne FALSE.

Exemples

Exemple #1 Exemple avec collator_get_locale()

<?php
$coll    = collator_create( 'en_US_California' );
$res_val = collator_get_locale( $coll, Locale::VALID_LOCALE );
$res_act = collator_get_locale( $coll, Locale::ACTUAL_LOCALE );
printf( "Valid locale name: %s\nActual locale name: %s\n",
         $res_val, $res_act );
?>

L'exemple ci-dessus va afficher :

Requested locale name: en_US_California
Valid locale name: en_US
Actual locale name: en

Voir aussi

  • collator_create() - Création d'un collator


Recupère la clé de tri pour une chaine

  • « Collator::getLocale
  • Collator::getStrength »
  • PHP Manual
  • Collator
  • Recupère la clé de tri pour une chaine

Collator::getSortKey

collator_get_sort_key

(PHP 5 >= 5.3.11, PHP 7, PECL intl >= 1.0.3)

Collator::getSortKey -- collator_get_sort_key — Recupère la clé de tri pour une chaine

Description

Style orienté objet

public string Collator::getSortKey ( string $str )

Style procédural

string collator_get_sort_key ( Collator $coll , string $str )

Retourne la clé de la collation pour une chaine.

Liste de paramètres

coll

Objet Collator.

str

La chaine depuis laquelle produire la clé.

Valeurs de retour

Retourne la clé de collation pour la chaine. Les clés de collation peuvent être comparées directement contrairement aux chaines.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple collator_get_sort_key()

<?php
$s1 = 'Hello';

$coll = collator_create( 'en_US' );
$res  = collator_get_sort_key( $coll, $s1);

echo urlencode($res);
?>

L'exemple ci-dessus va afficher :

71%3F%3FE%01%09%01%8F%08%00

Voir aussi

  • collator_sort() - Trie un tableau avec une collation
  • collator_sort_with_sort_keys() - Tri un tableau et ses clés avec une collation


Récupère la dureté de classement utilisé

  • « Collator::getSortKey
  • Collator::setAttribute »
  • PHP Manual
  • Collator
  • Récupère la dureté de classement utilisé

Collator::getStrength

collator_get_strength

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getStrength -- collator_get_strength — Récupère la dureté de classement utilisé

Description

Style orienté objet

public int Collator::getStrength ( void )

Style procédural

int collator_get_strength ( Collator $coll )

Liste de paramètres

coll

Objet Collator.

Valeurs de retour

Retourne la dureté du classement, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec collator_get_strength()

<?php
$coll     = collator_create( 'en_US' );
$strength = collator_get_strength( $coll );
?>

Voir aussi

  • Collator constants
  • collator_set_strength() - Set collation strength
  • collator_get_attribute() - Lit un attribut de collation


Configure l'attribut de collation

  • « Collator::getStrength
  • Collator::setStrength »
  • PHP Manual
  • Collator
  • Configure l'attribut de collation

Collator::setAttribute

collator_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::setAttribute -- collator_set_attribute — Configure l'attribut de collation

Description

Style orienté objet

public bool Collator::setAttribute ( int $attr , int $val )

Style procédural

bool collator_set_attribute ( Collator $coll , int $attr , int $val )

Liste de paramètres

coll

Objet Collator.

attr

L'attribut.

val

La valeur de l'attribute.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec collator_set_attribute()

<?php
$coll = collator_create( 'en_CA' );
$val  = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if ($val === false) {
    // Gestion d'erreur.
} elseif ($val === Collator::ON) {
    // Quelque chose d'utile
}
?>

Voir aussi

  • Collator constants
  • collator_get_attribute() - Lit un attribut de collation
  • collator_set_strength() - Set collation strength


Set collation strength

  • « Collator::setAttribute
  • Collator::sortWithSortKeys »
  • PHP Manual
  • Collator
  • Set collation strength

Collator::setStrength

collator_set_strength

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::setStrength -- collator_set_strength — Set collation strength

Description

Style orienté objet

public bool Collator::setStrength ( int $strength )

Style procédural

bool collator_set_strength ( Collator $coll , int $strength )

Le service de collation » ICU suporte de nombreux niveaux de comparaison (appelés "Levels", mais aussi connus sous le nom de "Strengths"). Avec ces categories, ICU peut trier les chaînes avec précision, en fonction des conventions locales. Cependant, en permettant l'utilisation selective des niveaux, la recherche d'une chaîne dans un texte peut être réalisées, à partir de différentes conditions. Pour plus d'informations, voyez le chapitre collator_set_strength().

  1. Niveau primaire : Typiquement, ceci est utilisé pour faire la différence entre des caractères de bases, comme "a" < "b"). C'est la différence la plus importante. Par exemple, les dictionnaires sont divisées en sections avec les caractères de base. C'est le niveau 1.

  2. Niveau secondaire : Les accents sur les caractères sont considérés comme des différences secondaires. Par exemple, "as" < "às" < "at". D'autres différences entre les caractères peuvent être considérées comme secondaires, en fonction des langues. Une différence secondaire sont toujours ignorées quand une différence primaire est présente. C'est le niveau 2.

    Note:

    Note : dans certaines langues, comme le danois, certains caractères accentués sont considérés comme des caractères de bases. Dans la plupart des langues, un caractère accentué est simplement une différence secondaire avec les versions simple de la lettre.

  3. Niveau tertiaire : les majuscules et les minuscules sont distinguées au niveau tertiaire. par exemple, "ao" < "Ao" < "aò". De plus, une variante d'une lettre est différente de la forme de base, au niveau ternaire. Par exemple, "A" et " ". Un autre exemple de différente tertiaire est le grand et le petit Kana. Une différence tertiaire est ignorée quand une différence primaire ou secondaire est présente. C'est le niveau 3.

  4. Niveau quaternaire : Lorsque le ponctuation est ignorée, au niveau 13, un niveau supplémentaire peut être utilisé pour distinguer des mots avec ou sans ponctuation. Par exemple, "ab" < "a-b" < "aB". Cette différence est ignorée lorsqu'il y a une différence de niveau primaire, secondaire ou tertiaire. Le niveau quaternaire ne doit être utilisé que lorsqu'il faut ignorer la ponctuation ou traiter des mots japonais (traitement Hiragana).

  5. Niveau identique : Lorsque tous les autres niveaux sont égaux, le niveau identique est utilisé pour départager les caractères. Le code Unicode point sur une forme NFD de chaque caractère, et sont comparés à ce niveau, au cas où il n'y aurait pas de différence au niveau 14. Par exemple, les cantilliation de l'hébreux ne sont distingués qu'à ce niveau. Ce niveau ne doit être utilisé qu'avec beaucoup de parcimonie, car il fait substantiellement décroitre les performances. Il est connu sous le nom de niveau 5.

Par exemple, on peut choisir d'ignorer les accents, les accents et les majuscules dans un texte. Presque tous les caractères sont distingués par les trois premiers niveaux, et la plupart des locales s'arrêtent au niveau trois. Cependant, si l'attribut Alternate prend la valeur de Shifted, alors le quatrième niveau sert à départager les égalités entre les espaces, la ponctuation et les symboles, qui seraient ignorés autrement. Si des différentes très subtiles sont nécessaires entre les caractères, le niveau identique peut être utilisée (par exemple, le niveau identique fait la différence entre un A mathématique petit et gras avec un A mathématique italique et petit. Cependant, utiliser ces niveaux implique une dégradation significative des performances lors de la comparaison et le tri des chaînes proches ou égales.

Liste de paramètres

coll

Objet Collator.

strength

Le niveau à choisir.

Les valeurs possibles sont :

  • Collator::PRIMARY

  • Collator::SECONDARY

  • Collator::TERTIARY

  • Collator::QUATERNARY

  • Collator::IDENTICAL

  • Collator::DEFAULT_STRENGTH

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec collator_set_strength()

<?php
$arr  = array( 'aò', 'Ao', 'ao' );
$coll = collator_create( 'en_US' );

// Trie un tableau avec le niveau par défaut
collator_sort( $coll, $arr );
var_export( $arr );

// Tri un tableau avec le niveau primaire
collator_set_strength( $coll, Collator::PRIMARY );
collator_sort( $coll, $arr );
var_export( $arr );
?>

L'exemple ci-dessus va afficher :

array (
  0 => 'ao',
  1 => 'Ao',
  2 => 'aò',
)
array (
  0 => 'aò',
  1 => 'Ao',
  2 => 'ao',
)

Voir aussi

  • Constantes Collator
  • collator_get_strength() - Récupère la dureté de classement utilisé


Tri un tableau et ses clés avec une collation

  • « Collator::setStrength
  • Collator::sort »
  • PHP Manual
  • Collator
  • Tri un tableau et ses clés avec une collation

Collator::sortWithSortKeys

collator_sort_with_sort_keys

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::sortWithSortKeys -- collator_sort_with_sort_keys — Tri un tableau et ses clés avec une collation

Description

Style orienté objet

public bool Collator::sortWithSortKeys ( array &$arr )

Style procédural

bool collator_sort_with_sort_keys ( Collator $coll , array &$arr )

Similaire à collator_sort(), mais utilise le tri de clé ICU de ucol_getSortKey() pour obtenir plus de vitesse sur les grands tableaux.

Liste de paramètres

coll

Objet Collator.

arr

tableau de chaîne à trier

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec collator_sort_with_sort_keys()

<?php
$arr  = array( 'Köpfe', 'Kypper', 'Kopfe' );
$coll = collator_create( 'sv' );

collator_sort_with_sort_keys( $coll, $arr );
var_export( $arr );
?>

L'exemple ci-dessus va afficher :

array (
  0 => 'Kopfe',
  1 => 'Kypper',
  2 => 'Köpfe',
)

Voir aussi

  • Constantes Collator
  • collator_sort() - Trie un tableau avec une collation
  • collator_asort() - Tri un tableau en conservant les clés, avec une collation


Trie un tableau avec une collation

  • « Collator::sortWithSortKeys
  • NumberFormatter »
  • PHP Manual
  • Collator
  • Trie un tableau avec une collation

Collator::sort

collator_sort

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::sort -- collator_sort — Trie un tableau avec une collation

Description

Style orienté objet

public bool Collator::sort ( array &$arr [, int $sort_flag ] )

Style procédural

bool collator_sort ( Collator $coll , array &$arr [, int $sort_flag ] )

Cette fonction trie un tableau en fonction des conventions locales.

Équivalent à la fonction standard PHP sort().

Liste de paramètres

coll

Objet Collator.

arr

tableau de chaînes à trier.

sort_flag

Type de tri, optionnel, choisi parmi les constantes suivantes :

  • Collator::SORT_REGULAR : compare les éléments normalement (pas de changement de type).

  • Collator::SORT_NUMERIC : compare les éléments numériquement.

  • Collator::SORT_STRING : compare les éléments littéralement.

Le type de tri par défaut est Collator::SORT_REGULAR. Il est également utilisé si une valeur invalide du paramètre sort_flag est utilisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec collator_sort()

<?php
$coll = collator_create( 'en_US' );
$arr  = array( 'at', 'às', 'as' );

var_export( $arr );
collator_sort( $coll, $arr );
var_export( $arr );
?>

L'exemple ci-dessus va afficher :

array (
  0 => 'at',
  1 => 'às',
  2 => 'as',
)array (
  0 => 'as',
  1 => 'às',
  2 => 'at',
)

Voir aussi

  • Constantes Collator
  • collator_asort() - Tri un tableau en conservant les clés, avec une collation
  • collator_sort_with_sort_keys() - Tri un tableau et ses clés avec une collation


La classe NumberFormatter

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Introduction

Les programmes stockent et manipulent des nombres en utilisant une représentation locale, binaire et indépendante. Lors de l'affichage d'un nombre, il est converti en une version particulière. Par exemple, un nombre tel que 12345.67 s'écrit "12,345.67" aux USA, "12 345,67" en France et "12.345,67" en Allemagne.

En appelant les méthodes fournies par NumberFormatter, vous pouvez formater les nombres, les montants de devises et les pourcentages, en fonctions des conventions locales. NumberFormatter prend en compte les conventions, ce qui fait que vous devez créer un nouvel objet NumberFormatter, pour chaque convention. Les méthodes de NumberFormatter, formatent des types primitifs comme des nombres décimaux, et produit une chaîne de caractères.

Pour les monnaies, vous pouvez utiliser le format monétaire pour créer un formateur qui retourne une chaîne, avec le symbole de devise approprié. Bien entendu, NumberFormatter ne connait pas les taux de changes, ce qui fait que l'affichage sera fait, qulelque soit la devise demandée. Cela signifie que le même nombre aura différente valeur monétaires en fonction de la configuration locale. Par exemple, le nombre 9988776.65 s'affichera :

  • 9 988 776,65 € en France
  • 9.988.776,65 € en Allemagne
  • $9,988,776.65 aux USA

Pour formater des pourcentages, vous devez créer un formateur local, avec un type de format pourcentage. Avec ce formateur, une fraction décimale telle que 0.75 sera affichée 75%.

Pour des formatages plus complexes, comme des nombres écrits littéralement, des formateurs à règles sont utilisés.

Synopsis de la classe

NumberFormatter {
/* Méthodes */
public __construct ( string $locale , int $style [, string $pattern ] )
public static NumberFormatter create ( string $locale , int $style [, string $pattern ] )
public string formatCurrency ( float $value , string $currency )
public string format ( number $value [, int $type ] )
public int getAttribute ( int $attr )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public string getLocale ([ int $type ] )
public string getPattern ( void )
public string getSymbol ( int $attr )
public string getTextAttribute ( int $attr )
public float parseCurrency ( string $value , string &$currency [, int &$position ] )
public mixed parse ( string $value [, int $type [, int &$position ]] )
public bool setAttribute ( int $attr , int $value )
public bool setPattern ( string $pattern )
public bool setSymbol ( int $attr , string $value )
public bool setTextAttribute ( int $attr , string $value )
}

Constantes pré-définies

Ces styles sont utilisés par numfmt_create() pour définir le type de formatteur.

NumberFormatter::PATTERN_DECIMAL (entier)
Format décimal défini par un modèle
NumberFormatter::DECIMAL (entier)
Format décimal
NumberFormatter::CURRENCY (entier)
Format monétaire
NumberFormatter::PERCENT (entier)
Format pourcentage
NumberFormatter::SCIENTIFIC (entier)
Format scientifique
NumberFormatter::SPELLOUT (entier)
Format littéral, basé sur des règles
NumberFormatter::ORDINAL (entier)
Format ordinal, basé sur des règles
NumberFormatter::DURATION (entier)
Format de durée, , basé sur des règles
NumberFormatter::PATTERN_RULEBASED (entier)
Format de modèle, , basé sur des règles
NumberFormatter::DEFAULT_STYLE (entier)
Format par défaut pour les conventions locales
NumberFormatter::IGNORE (entier)
Alias de PATTERN_DECIMAL

Ces constantes définissent la méthode d'analyse et de formattage des nombres. Ils doivent être utilisés comme arguments des fonctions numfmt_format() et numfmt_parse().

NumberFormatter::TYPE_DEFAULT (entier)
Dérive le type depuis le type de variable
NumberFormatter::TYPE_INT32 (entier)
Formate / analyse un entier 32 bits
NumberFormatter::TYPE_INT64 (entier)
Formate / analyse un entier 64 bits
NumberFormatter::TYPE_DOUBLE (entier)
Formate / analyse un nombre décimal
NumberFormatter::TYPE_CURRENCY (entier)
Formate / analyse une valeur monétaire

Attributs de formats de nombre utilisés par numfmt_get_attribute() et numfmt_set_attribute().

NumberFormatter::PARSE_INT_ONLY (entier)
Analyse uniquement les entiers.
NumberFormatter::GROUPING_USED (entier)
Séparateur de groupes.
NumberFormatter::DECIMAL_ALWAYS_SHOWN (entier)
Affiche toujours une virgule décimale.
NumberFormatter::MAX_INTEGER_DIGITS (entier)
Nombre maximal de chiffres.
NumberFormatter::MIN_INTEGER_DIGITS (entier)
Nombre minimale de chiffres.
NumberFormatter::INTEGER_DIGITS (entier)
Nombre de chiffres.
NumberFormatter::MAX_FRACTION_DIGITS (entier)
Nombre maximal de décimales.
NumberFormatter::MIN_FRACTION_DIGITS (entier)
Nombre minimal de décimales.
NumberFormatter::FRACTION_DIGITS (entier)
Nombre de décimales.
NumberFormatter::MULTIPLIER (entier)
Multiplicateur.
NumberFormatter::GROUPING_SIZE (entier)
Taille de regroupement.
NumberFormatter::ROUNDING_MODE (entier)
Mode d'arrondi.
NumberFormatter::ROUNDING_INCREMENT (entier)
Incrément d'arrondi.
NumberFormatter::FORMAT_WIDTH (entier)
La largeur de complément pour le formattage d'un nombre.
NumberFormatter::PADDING_POSITION (entier)
La position à laquelle le complément se fait. Voyez les constantes de complément pour avoir les différentes valeurs possibles.
NumberFormatter::SECONDARY_GROUPING_SIZE (entier)
Taille secondaire de groupement.
NumberFormatter::SIGNIFICANT_DIGITS_USED (entier)
Utilise les chiffres significatifs.
NumberFormatter::MIN_SIGNIFICANT_DIGITS (entier)
Nombre minimum de chiffres significatifs.
NumberFormatter::MAX_SIGNIFICANT_DIGITS (entier)
Nombre maximum de chiffres significatifs.
NumberFormatter::LENIENT_PARSE (entier)
Mode d'analyse utilisé par les formats à règles.

Attributs de texte pour les formats de nombres, utilisés par numfmt_get_text_attribute() et numfmt_set_text_attribute().

NumberFormatter::POSITIVE_PREFIX (entier)
Préfixe positif.
NumberFormatter::POSITIVE_SUFFIX (entier)
Suffixe positif.
NumberFormatter::NEGATIVE_PREFIX (entier)
Préfixe négatif.
NumberFormatter::NEGATIVE_SUFFIX (entier)
Suffixe négatif.
NumberFormatter::PADDING_CHARACTER (entier)
Le caractère à utiliser pour compléter les formats jusqu'à la taille.
NumberFormatter::CURRENCY_CODE (entier)
Le code de devise ISO.
NumberFormatter::DEFAULT_RULESET (entier)
Le jeu de règles par défaut. Il est uniquement utilisable avec les formatteurs à règles.
NumberFormatter::PUBLIC_RULESETS (entier)
Le jeu de règles publiques. Ceci est uniquement disponible avec les formatteurs à règles. C'est un attribut en lecture seule. Les règles publiques sont retournées sous forme d'une seule chaîne, et chaque règle est délimitée par un point-virgule ';'.

Les symboles de format utilisés par numfmt_get_symbol() et numfmt_set_symbol().

NumberFormatter::DECIMAL_SEPARATOR_SYMBOL (entier)
Le séparateur décimal.
NumberFormatter::GROUPING_SEPARATOR_SYMBOL (entier)
Le séparateur de groupes.
NumberFormatter::PATTERN_SEPARATOR_SYMBOL (entier)
Le modèle de séparateur.
NumberFormatter::PERCENT_SYMBOL (entier)
Le signe de pourcentage.
NumberFormatter::ZERO_DIGIT_SYMBOL (entier)
Zéro.
NumberFormatter::DIGIT_SYMBOL (entier)
Un caractère représentant un chiffre dans un modèle.
NumberFormatter::MINUS_SIGN_SYMBOL (entier)
Le signe moins.
NumberFormatter::PLUS_SIGN_SYMBOL (entier)
Le signe plus.
NumberFormatter::CURRENCY_SYMBOL (entier)
Le symbole de devise.
NumberFormatter::INTL_CURRENCY_SYMBOL (entier)
Le symbole international de devise.
NumberFormatter::MONETARY_SEPARATOR_SYMBOL (entier)
Le séparateur monétaire.
NumberFormatter::EXPONENTIAL_SYMBOL (entier)
Le symbole d'exponentiel.
NumberFormatter::PERMILL_SYMBOL (entier)
Le symbol par mille.
NumberFormatter::PAD_ESCAPE_SYMBOL (entier)
Le caractère de protection des symboles.
NumberFormatter::INFINITY_SYMBOL (entier)
Le symbole de l'infini.
NumberFormatter::NAN_SYMBOL (entier)
Le symbole "n'est pas un nombre".
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL (entier)
Le symbole des chiffres significatifs.
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL (entier)
Le séparateur de groupes monétaires.

Les modes d'arrondi utilisés par les fonctions numfmt_get_attribute() et numfmt_set_attribute() avec l'attribut NumberFormatter::ROUNDING_MODE.

NumberFormatter::ROUND_CEILING (entier)
Mode d'arrondi vers l'infini positif.
NumberFormatter::ROUND_DOWN (entier)
Mode d'arrondi vers zéro.
NumberFormatter::ROUND_FLOOR (entier)
Mode d'arrondi vers l'infini négatif.
NumberFormatter::ROUND_HALFDOWN (entier)
Mode d'arrondi vers le plus proche entier, a moins qu'ils soient équidistants : arrondi inférieur dans ce cas.
NumberFormatter::ROUND_HALFEVEN (entier)
Mode d'arrondi vers le plus proche entier, a moins qu'ils soient équidistants : arrondi vers le nombre pair dans ce cas.
NumberFormatter::ROUND_HALFUP (entier)
Mode d'arrondi vers le plus proche entier, a moins qu'ils soient équidistants : arrondi supérieur dans ce cas.
NumberFormatter::ROUND_UP (entier)
Mode d'arrondi qui éloigne de zéro.

Valeurs de compléments utilisés par numfmt_get_attribute()
et numfmt_set_attribute() avec l'attribut
NumberFormatter::PADDING_POSITION.

NumberFormatter::PAD_AFTER_PREFIX (entier)
Caractères de compléments ajoutés après le préfixe.
NumberFormatter::PAD_AFTER_SUFFIX (entier)
Caractères de compléments ajoutés après le suffixe.
NumberFormatter::PAD_BEFORE_PREFIX (entier)
Caractères de compléments ajoutés avant le préfixe.
NumberFormatter::PAD_BEFORE_SUFFIX (entier)
Caractères de compléments ajoutés avant le suffixe.

Voir aussi

  • » Documentation de formatage ICU
  • » Formateurs de nombres ICU
  • » Formateur de nombres décimaux ICU
  • » Formateurs à règles de ICU

Sommaire

  • NumberFormatter::create — Crée un formateur de nombre
  • NumberFormatter::formatCurrency — Formate une valeur monétaire
  • NumberFormatter::format — Formate un nombre
  • NumberFormatter::getAttribute — Lit un attribut
  • NumberFormatter::getErrorCode — Lit le dernier code d'erreur du formateur
  • NumberFormatter::getErrorMessage — Lit le dernier message d'erreur du formateur
  • NumberFormatter::getLocale — Lit la locale du formateur
  • NumberFormatter::getPattern — Lit le modèle du formateur
  • NumberFormatter::getSymbol — Lit la valeur du symbole
  • NumberFormatter::getTextAttribute — Lit un attribut textuel
  • NumberFormatter::parseCurrency — Analyse un nombre monétaire
  • NumberFormatter::parse — Analyse un nombre
  • NumberFormatter::setAttribute — Affecte un attribut du formateur
  • NumberFormatter::setPattern — Configure le modèle du formateur
  • NumberFormatter::setSymbol — Configure le symbole du formateur
  • NumberFormatter::setTextAttribute — Modifie un attribut texte


Crée un formateur de nombre

  • « NumberFormatter
  • NumberFormatter::formatCurrency »
  • PHP Manual
  • NumberFormatter
  • Crée un formateur de nombre

NumberFormatter::create

numfmt_create

NumberFormatter::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::create -- numfmt_create -- NumberFormatter::__construct — Crée un formateur de nombre

Description

Style orienté objet (méthode)

public static NumberFormatter NumberFormatter::create ( string $locale , int $style [, string $pattern ] )

Style procédural

NumberFormatter numfmt_create ( string $locale , int $style [, string $pattern ] )

Style orienté objet (constructeur)

public NumberFormatter::__construct ( string $locale , int $style [, string $pattern ] )

Crée un formateur de nombre

Liste de paramètres

locale

La locale avec laquelle les nombres seront formatés (i.e. en_CA).

style

Le style de format, une des constantes de style de format. Si NumberFormatter::PATTERN_DECIMAL ou NumberFormatter::PATTERN_RULEBASED est utilisé alors le format de nombre est ouvert avec le modèle fourni, qui doit être compatible avec la syntaxe décrite par la » documentation ICU DecimalFormat ou » documentation ICU RuleBasedNumberFormat, respectivement.

pattern

La chaîne de modèle, en fonction du style de format choisi.

Valeurs de retour

Retourne un objet NumberFormatter ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_create::create(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
$fmt = numfmt_create( 'it', NumberFormatter::SPELLOUT );
echo numfmt_format($fmt, 1142)."\n";
?>

Exemple #2 Exemple avec numfmt_create::create(), style POO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo $fmt->format(1234567.891234567890000)."\n";
$fmt = new NumberFormatter( 'it', NumberFormatter::SPELLOUT );
echo $fmt->format(1142)."\n";
?>

L'exemple ci-dessus va afficher :

1.234.567,891
millicentoquarantadue

Voir aussi

  • numfmt_format() - Formate un nombre
  • numfmt_parse() - Analyse un nombre


Formate une valeur monétaire

  • « NumberFormatter::create
  • NumberFormatter::format »
  • PHP Manual
  • NumberFormatter
  • Formate une valeur monétaire

NumberFormatter::formatCurrency

numfmt_format_currency

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::formatCurrency -- numfmt_format_currency — Formate une valeur monétaire

Description

Style orienté objet

public string NumberFormatter::formatCurrency ( float $value , string $currency )

Style procédural

string numfmt_format_currency ( NumberFormatter $fmt , float $value , string $currency )

Formate une valeur monétaire, en fonction des règles du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

value

La valeur numérique.

currency

Le code à trois lettres ISO 4217 de la devise à utiliser.

Valeurs de retour

La chaîne représentant la valeur formatée.

Exemples

Exemple #1 Exemple avec numfmt_format_currency(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
?>

Exemple #2 Exemple avec numfmt_format_currency(), style POO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
?>

L'exemple ci-dessus va afficher :

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89?.

Voir aussi

  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
  • numfmt_format() - Formate un nombre
  • numfmt_parse_currency() - Analyse un nombre monétaire


Formate un nombre

  • « NumberFormatter::formatCurrency
  • NumberFormatter::getAttribute »
  • PHP Manual
  • NumberFormatter
  • Formate un nombre

NumberFormatter::format

numfmt_format

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::format -- numfmt_format — Formate un nombre

Description

Style orienté objet

public string NumberFormatter::format ( number $value [, int $type ] )

Style procédural

string numfmt_format ( NumberFormatter $fmt , number $value [, int $type ] )

Formate une valeur numérique, selon les règles du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

value

La valeur à formater. Ce peut être un integer ou un float. Les autres valeurs seront converties en valeur numérique avant le formatage.

type

Le type de format.

Valeurs de retour

Retourne la chaîne contenant la valeur formatée, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_format(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_format($fmt))) {
    report_error("Erreur de formateur");
}
?>

Exemple #2 Exemple avec numfmt_format(), style POO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
    report_error("Erreur de formateur");
}
?>

L'exemple ci-dessus va afficher :

1.234.567,891

Voir aussi

  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
  • numfmt_format_currency() - Formate une valeur monétaire
  • numfmt_parse() - Analyse un nombre


Lit un attribut

  • « NumberFormatter::format
  • NumberFormatter::getErrorCode »
  • PHP Manual
  • NumberFormatter
  • Lit un attribut

NumberFormatter::getAttribute

numfmt_get_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getAttribute -- numfmt_get_attribute — Lit un attribut

Description

Style orienté objet

public int NumberFormatter::getAttribute ( int $attr )

Style procédural

int numfmt_get_attribute ( NumberFormatter $fmt , int $attr )

Lit un attribut numérique du formateur. Un exemple d'attribut numérique est le nombre de décimal que le formateur va utiliser.

Liste de paramètres

fmt

L'objet NumberFormatter.

attr

La constante d'attribut, l'une de la liste des attributs numériques.

Valeurs de retour

Retourne la valeur de l'attribut, en cas de succès, et FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_get_attribute(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Décimales :  ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Décimales :  ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_get_attribute(), style POO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Décimales :  ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Décimales :  ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Décimales :  3
1.234.567,891
Décimales :  2
1.234.567,89

Voir aussi

  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
  • numfmt_get_text_attribute() - Lit un attribut textuel
  • numfmt_set_attribute() - Affecte un attribut du formateur


Lit le dernier code d'erreur du formateur

  • « NumberFormatter::getAttribute
  • NumberFormatter::getErrorMessage »
  • PHP Manual
  • NumberFormatter
  • Lit le dernier code d'erreur du formateur

NumberFormatter::getErrorCode

numfmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getErrorCode -- numfmt_get_error_code — Lit le dernier code d'erreur du formateur

Description

Style orienté objet

public int NumberFormatter::getErrorCode ( void )

Style procédural

int numfmt_get_error_code ( NumberFormatter $fmt )

Lit le code d'erreur généré par la dernière fonction du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

Valeurs de retour

Retourne le code d'erreur du dernier appel au formateur.

Exemples

Exemple #1 Exemple avec numfmt_get_error_code(), Style procédural

<?php
$fmt  = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_get_error_code($fmt))) {
    report_error("Erreur de formateur");
}
?>

Exemple #2 Exemple avec numfmt_get_error_code(), style POO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
    report_error("Erreur de formateur");
}
?>

Voir aussi

  • numfmt_get_error_message() - Lit le dernier message d'erreur du formateur
  • intl_get_error_code() - Lit le dernier code d'erreur
  • intl_is_failure() - Vérifie si un code d'erreur indique un échec


Lit le dernier message d'erreur du formateur

  • « NumberFormatter::getErrorCode
  • NumberFormatter::getLocale »
  • PHP Manual
  • NumberFormatter
  • Lit le dernier message d'erreur du formateur

NumberFormatter::getErrorMessage

numfmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getErrorMessage -- numfmt_get_error_message — Lit le dernier message d'erreur du formateur

Description

Style orienté objet

public string NumberFormatter::getErrorMessage ( void )

Style procédural

string numfmt_get_error_message ( NumberFormatter $fmt )

Lit le message d'erreur généré par la dernière fonction du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

Valeurs de retour

Retourne le message d'erreur du dernier appel au formateur.

Exemples

Exemple #1 Exemple avec numfmt_get_error_message(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_get_error_code($fmt))) {
    report_error("Erreur de formateur");
}
?>

Exemple #2 Exemple avec numfmt_get_error_code(), style POO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
    report_error("Erreur de formateur");
}
?>

Voir aussi

  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
  • intl_get_error_code() - Lit le dernier code d'erreur
  • intl_is_failure() - Vérifie si un code d'erreur indique un échec


Lit la locale du formateur

  • « NumberFormatter::getErrorMessage
  • NumberFormatter::getPattern »
  • PHP Manual
  • NumberFormatter
  • Lit la locale du formateur

NumberFormatter::getLocale

numfmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getLocale -- numfmt_get_locale — Lit la locale du formateur

Description

Style orienté objet

public string NumberFormatter::getLocale ([ int $type ] )

Style procédural

string numfmt_get_locale ( NumberFormatter $fmt [, int $type ] )

Lit le nom de la locale du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

type

Vous pouvez choisir entre une valeur valide ou un valeur littérale Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE, respectivement). La valeur par défaut est la valeur littérale.

Valeurs de retour

Le nom de la locale utilisée pour créer le formateur.

Exemples

Exemple #1 Exemple avec numfmt_get_error_code(), Style procédural

<?php
$req     = 'fr_FR_PARIS';
$fmt     = numfmt_create( $req,  NumberFormatter::DECIMAL);
$res_val = numfmt_get_locale( $fmt, Locale::VALID_LOCALE );
$res_act = numfmt_get_locale( $fmt, Locale::ACTUAL_LOCALE );
printf( "Nom de la locale demandée : %s\nNom valide de la locale : %s\nValeur littérale de la locale : %s\n",
         $req, $res_val, $res_act );
?>

L'exemple ci-dessus va afficher :

Nom de la locale demandée : fr_FR_PARIS
Nom valide de la locale: fr_FR
Valeur littérale de la locale : fr

Voir aussi

  • numfmt_create() - Crée un formateur de nombre
  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur


Lit le modèle du formateur

  • « NumberFormatter::getLocale
  • NumberFormatter::getSymbol »
  • PHP Manual
  • NumberFormatter
  • Lit le modèle du formateur

NumberFormatter::getPattern

numfmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getPattern -- numfmt_get_pattern — Lit le modèle du formateur

Description

Style orienté objet

public string NumberFormatter::getPattern ( void )

Style procédural

string numfmt_get_pattern ( NumberFormatter $fmt )

Extrait le modèle utilisé par le formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

Valeurs de retour

La chaîne de caractères de modèle, qui est utilisé par le formateur, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_get_pattern(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Modèle : ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Modèle : ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_get_pattern(), style POO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Modèle : ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Modèle : ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Modèle : #,##0.###
1.234.567,891
Modèle : #0.# kg
1234567,9 kg

Voir aussi

  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
  • numfmt_set_pattern() - Configure le modèle du formateur
  • numfmt_create() - Crée un formateur de nombre


Lit la valeur du symbole

  • « NumberFormatter::getPattern
  • NumberFormatter::getTextAttribute »
  • PHP Manual
  • NumberFormatter
  • Lit la valeur du symbole

NumberFormatter::getSymbol

numfmt_get_symbol

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getSymbol -- numfmt_get_symbol — Lit la valeur du symbole

Description

Style orienté objet

public string NumberFormatter::getSymbol ( int $attr )

Style procédural

string numfmt_get_symbol ( NumberFormatter $fmt , int $attr )

Lit le symbole associé au formateur. Le formateur utilise des symboles pour représenter des caractères dépendant des conventions locales, comme le signe de pourcentage. Cette API n'est pas supportée par les formateurs à base de règles.

Liste de paramètres

fmt

L'objet NumberFormatter.

attr

La constante de symbole, une dans la liste des constantes de symboles de formats.

Valeurs de retour

La chaîne de symbole ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_get_symbol(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Séparateur : ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Séparateur : ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_get_symbol(), style POO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Séparateur : ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Séparateur : ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Séparateur : .
1.234.567,891
Séparateur : *
1*234*567,891

Voir aussi

  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
  • numfmt_set_symbol() - Configure le symbole du formateur


Lit un attribut textuel

  • « NumberFormatter::getSymbol
  • NumberFormatter::parseCurrency »
  • PHP Manual
  • NumberFormatter
  • Lit un attribut textuel

NumberFormatter::getTextAttribute

numfmt_get_text_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getTextAttribute -- numfmt_get_text_attribute — Lit un attribut textuel

Description

Style orienté objet

public string NumberFormatter::getTextAttribute ( int $attr )

Style procédural

string numfmt_get_text_attribute ( NumberFormatter $fmt , int $attr )

Lit un attribut textuel associé à un formateur. Un exemple d'attribut textuel est le suffixe pour les nombres positifs. Si le formateur ne comprend pas cet attribut, une erreur U_UNSUPPORTED_ERROR est produite. Les formateurs à règles ne comprennent que NumberFormatter::DEFAULT_RULESET et NumberFormatter::PUBLIC_RULESETS.

Liste de paramètres

fmt

L'objet NumberFormatter.

attr

L'identifiant de l'attribut : une des constantes d'attribut textuel.

Valeurs de retour

Retourne la valeur de l'attribut en cas de succès, et FALSE sinon.

Exemples

Exemple #1 Exemple avec numfmt_get_text_attribute(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Préfixe : ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Préfixe : ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_get_text_attribute(), style POO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Préfixe : ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Préfixe : ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Préfixe : -
-1.234.567,891
Préfixe : MINUS
MINUS1.234.567,891

Voir aussi

  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
  • numfmt_get_attribute() - Lit un attribut
  • numfmt_set_text_attribute() - Modifie un attribut texte


Analyse un nombre monétaire

  • « NumberFormatter::getTextAttribute
  • NumberFormatter::parse »
  • PHP Manual
  • NumberFormatter
  • Analyse un nombre monétaire

NumberFormatter::parseCurrency

numfmt_parse_currency

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::parseCurrency -- numfmt_parse_currency — Analyse un nombre monétaire

Description

Style orienté objet

public float NumberFormatter::parseCurrency ( string $value , string &$currency [, int &$position ] )

Style procédural

float numfmt_parse_currency ( NumberFormatter $fmt , string $value , string &$currency [, int &$position ] )

Analyse une chaîne dans un nombre décimal, et une devise, à l'aide du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

currency

Le nom de la devise (le code 3 lettres ISO 4217).

position

La position de début d'analyse dans la chaîne. En retour, cette valeur contiendra la position de fin d'analyse.

Valeurs de retour

Le nombre décimal ainsi lu, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_parse_currency(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89\xc2\xa0$";
echo "We have ".numfmt_parse_currency($fmt, $num, $curr)." in $curr\n";
?>

Exemple #2 Exemple avec numfmt_parse_currency(), Style procédural

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89\xc2\xa0$";
echo "We have ".$fmt->parseCurrency($num, $curr)." in $curr\n";
?>

L'exemple ci-dessus va afficher :

We have 1234567.89 in USD

Voir aussi

  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
  • numfmt_parse() - Analyse un nombre
  • numfmt_format_currency() - Formate une valeur monétaire


Analyse un nombre

  • « NumberFormatter::parseCurrency
  • NumberFormatter::setAttribute »
  • PHP Manual
  • NumberFormatter
  • Analyse un nombre

NumberFormatter::parse

numfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::parse -- numfmt_parse — Analyse un nombre

Description

Style orienté objet

public mixed NumberFormatter::parse ( string $value [, int $type [, int &$position ]] )

Style procédural

mixed numfmt_parse ( NumberFormatter $fmt , string $value [, int $type [, int &$position ]] )

Analyse une chaîne et extrait un nombre, à l'aide des régles du formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

type

Le type de format à utiliser. Par défaut, NumberFormatter::TYPE_DOUBLE est utilisée.

position

La position de début d'analyse dans la chaîne. En retour, cette valeur contiendra la position de fin d'analyse.

Valeurs de retour

La valeur de nombre analysé, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_parse(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo numfmt_parse($fmt, $num)."\n";
echo numfmt_parse($fmt, $num, NumberFormatter::TYPE_INT32)."\n";
?>

Exemple #2 Exemple avec numfmt_parse(), style POO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo $fmt->parse($num)."\n";
echo $fmt->parse($num, NumberFormatter::TYPE_INT32)."\n";
?>

L'exemple ci-dessus va afficher :

1234567.891
1234567

Voir aussi

  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
  • numfmt_format() - Formate un nombre
  • numfmt_parse_currency() - Analyse un nombre monétaire


Affecte un attribut du formateur

  • « NumberFormatter::parse
  • NumberFormatter::setPattern »
  • PHP Manual
  • NumberFormatter
  • Affecte un attribut du formateur

NumberFormatter::setAttribute

numfmt_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setAttribute -- numfmt_set_attribute — Affecte un attribut du formateur

Description

Style orienté objet

public bool NumberFormatter::setAttribute ( int $attr , int $value )

Style procédural

bool numfmt_set_attribute ( NumberFormatter $fmt , int $attr , int $value )

Affecte un attribut numérique du formateur. Un exemple d'attribut numérique est le nombre de décimal à afficher par le formateur.

Liste de paramètres

fmt

L'objet NumberFormatter.

attr

L'identifiant d'attribut : une des constantes attributs numériques.

value

La valeur de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec numfmt_set_attribute(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_set_attribute(), style POO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Digits: 3
1.234.567,891
Digits: 2
1.234.567,89

Voir aussi

  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
  • numfmt_get_attribute() - Lit un attribut
  • numfmt_set_text_attribute() - Modifie un attribut texte


Configure le modèle du formateur

  • « NumberFormatter::setAttribute
  • NumberFormatter::setSymbol »
  • PHP Manual
  • NumberFormatter
  • Configure le modèle du formateur

NumberFormatter::setPattern

numfmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setPattern -- numfmt_set_pattern — Configure le modèle du formateur

Description

Style orienté objet

public bool NumberFormatter::setPattern ( string $pattern )

Style procédural

bool numfmt_set_pattern ( NumberFormatter $fmt , string $pattern )

Configure le modèle utilisé par le formateur. Ne peut pas être utilisé avec un formateur basé sur les règles.

Liste de paramètres

fmt

L'objet NumberFormatter.

pattern

Le modèle, dans la syntaxe décrite dans la » documentation ICU DecimalFormat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec numfmt_set_pattern(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Modèle : ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Modèle : ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_set_pattern(), style POO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Modèle : ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Modèle : ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Modèle : #,##0.###
1.234.567,891
Modèle : #0.# kg
1234567,9 kg

Voir aussi

  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
  • numfmt_create() - Crée un formateur de nombre
  • numfmt_get_pattern() - Lit le modèle du formateur


Configure le symbole du formateur

  • « NumberFormatter::setPattern
  • NumberFormatter::setTextAttribute »
  • PHP Manual
  • NumberFormatter
  • Configure le symbole du formateur

NumberFormatter::setSymbol

numfmt_set_symbol

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setSymbol -- numfmt_set_symbol — Configure le symbole du formateur

Description

Style orienté objet

public bool NumberFormatter::setSymbol ( int $attr , string $value )

Style procédural

bool numfmt_set_symbol ( NumberFormatter $fmt , int $attr , string $value )

Configure le symbole du formateur. Le formateur utilise le symbole pour caractériser des nombres, comme le pourcentage. Cette API n'est pas supportée pour les formateurs à base de règles.

Liste de paramètres

fmt

L'objet NumberFormatter.

attr

L'identifiant de symbole, parmi les constantes de symboles.

value

Le texte du symbole.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec numfmt_set_symbol(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Séparateur décimal : ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Séparateur décimal : ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_set_symbol(), style POO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Séparateur décimal : ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Séparateur décimal : ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Séparateur décimal : .
1.234.567,891
Séparateur décimal : *
1*234*567,891

Voir aussi

  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
  • numfmt_get_symbol() - Lit la valeur du symbole


Modifie un attribut texte

  • « NumberFormatter::setSymbol
  • Locale »
  • PHP Manual
  • NumberFormatter
  • Modifie un attribut texte

NumberFormatter::setTextAttribute

numfmt_set_text_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setTextAttribute -- numfmt_set_text_attribute — Modifie un attribut texte

Description

Style orienté objet

public bool NumberFormatter::setTextAttribute ( int $attr , string $value )

Style procédural

bool numfmt_set_text_attribute ( NumberFormatter $fmt , int $attr , string $value )

Modifie l'attribut du texte associé au formateur. Un exemple d'attribut de texte est le suffixe des nombres positifs. Si le formateur ne comprend pas l'attribut, une erreur U_UNSUPPORTED_ERROR est produite. Les formateurs à base de règles ne comprennent que NumberFormatter::DEFAULT_RULESET et NumberFormatter::PUBLIC_RULESETS.

Liste de paramètres

fmt

Un objet NumberFormatter.

attr

Un spécificateur d'attribut : une dex constantes d' attribut de texte.

value

La valeur de l'attribut du texte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec numfmt_set_text_attribute(), Style procédural

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Exemple #2 Exemple avec numfmt_set_text_attribute(), Style procédural

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

L'exemple ci-dessus va afficher :

Prefix: -
-1.234.567,891
Prefix: MINUS
MINUS1.234.567,891

Voir aussi

  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
  • numfmt_get_text_attribute() - Lit un attribut textuel
  • numfmt_set_attribute() - Affecte un attribut du formateur


La classe Locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Introduction

Une "Locale" est un identifiant utilisé pour représenter les comportements régionaux d'une API. Les locales PHP sont organisées et identifiées de la même manière que les CLDR de ICU (et que de nombreux autres éditeurs de système Unix, tels que Mac, Java, etc.). Les locales sont identifiées par les libellés de langage de la RFC 4646 (qui utilise des tirets et pas des soulignés) en plus de la notation traditionnelle avec des soulignés. Sauf contre-indication, les fonctions de cette classe sont capables d'utiliser les deux notations.

Exemple d'identifiants :

  • en-US (Anglais, USA)
  • zh-Hant-TW (Chinois, traditionnel, Taiwan)
  • fr-CA, fr-FR (French pour le Canada et la France, respectivement)

La classe Locale et les méthodes associées, sont utilisées pour interagir avec les identifiants locaux : pour vérifier qu'un identifiant est bien formé, valide, etc. Les extensions utilisées par CDR dans UAX #35 et hérité par ICU sont valides, et utilisés à chaque fois qu'elles peuvent l'être dans ICU.

Les locales ne peuvent pas être instanciées. Ce sont toutes des fonctions statiques.

La chaîne NULL ou vide permet d'obtenir la locale racine. La racine est l'équivalent de "en_US_POSIX" en CLDR. Les libellé de langage (et donc, les identifiants) sont insensibles à la casse. Il existe une fonction de canonalisation qui permet d'obtenir la spécification exacte.

Synopsis de la classe

Locale {
/* Méthodes */
public static string acceptFromHttp ( string $header )
public static string canonicalize ( string $locale )
public static string composeLocale ( array $subtags )
public static bool filterMatches ( string $langtag , string $locale [, bool $canonicalize = false ] )
public static array getAllVariants ( string $locale )
public static string getDefault ( void )
public static string getDisplayLanguage ( string $locale [, string $in_locale ] )
public static string getDisplayName ( string $locale [, string $in_locale ] )
public static string getDisplayRegion ( string $locale [, string $in_locale ] )
public static string getDisplayScript ( string $locale [, string $in_locale ] )
public static string getDisplayVariant ( string $locale [, string $in_locale ] )
public static array getKeywords ( string $locale )
public static string getPrimaryLanguage ( string $locale )
public static string getRegion ( string $locale )
public static string getScript ( string $locale )
public static string lookup ( array $langtag , string $locale [, bool $canonicalize = false [, string $default ]] )
public static array parseLocale ( string $locale )
public static bool setDefault ( string $locale )
}

Constantes pré-définies

Ces constantes définissent le comportement de Locale

Locale::DEFAULT_LOCALE (NULL)
Utilisée comme paramètre de locale avec les méthodes des différences classes affectées, telles que NumberFormatter. Cette constante fait qu'on utilise les valeurs par défaut.

Ces constantes décrivent le choix de la locale pour la méthode getLocale de différentes classes.

Locale::ACTUAL_LOCALE (chaîne de caractères)
La locale utilisée par les données entrante.
Locale::VALID_LOCALE (chaîne de caractères)
C'est la locale la plus spécifique supportée par ICU.

Ces constantes définissent comment les Locales sont analysées ou composées. Elles doivent être utilisées comme clés dans un tableau d'arguments passé à locale_compose() et sont retournées par locale_parse() comme clés d'un array associatif.

Locale::LANG_TAG (chaîne de caractères)
Sous-libellé de langue
Locale::EXTLANG_TAG (chaîne de caractères)
Sous-libellé de langue étendu
Locale::SCRIPT_TAG (chaîne de caractères)
Sous-libellé de script
Locale::REGION_TAG (chaîne de caractères)
Sous-libelleé de région
Locale::VARIANT_TAG (chaîne de caractères)
Sous-libellé de variante
Locale::GRANDFATHERED_LANG_TAG (chaîne de caractères)
Sous-libellé d'ascendant de langage
Locale::PRIVATE_TAG (chaîne de caractères)
Sous-libellé privé

Voir aussi

  • » RFC 4646 : libellés pour identifier les langues
  • » RFC 4647 : Matching of Language Tags
  • » Unicode CLDR Project:Common Locale Data Repository
  • » IANA Language Subtags Registry
  • » ICU User Guide : Locale
  • » ICU Locale api

Sommaire

  • Locale::acceptFromHttp — Devine la meilleure locale à partir de l'en-tête HTTP "Accept-Language"
  • Locale::canonicalize — Canonise la chaîne représentant la locale
  • Locale::composeLocale — Retourne un identifiant de locale correct
  • Locale::filterMatches — Vérifie si le tag de langue correspond à une locale
  • Locale::getAllVariants — Liste toutes les variantes d'une locale
  • Locale::getDefault — Lit la valeur par défaut d'une locale pour la variable globale 'default_locale'
  • Locale::getDisplayLanguage — Retourne un nom approprié pour l'affichage d'un nom de langue
  • Locale::getDisplayName — Retourne un nom d'affichage correct pour une locale
  • Locale::getDisplayRegion — Retourne un nom pour la région de la locale
  • Locale::getDisplayScript — Retourne le nom du script de la locale
  • Locale::getDisplayVariant — Retourne un nom pour la variante de la locale
  • Locale::getKeywords — Lit les mots-clé de la locale
  • Locale::getPrimaryLanguage — Lit la langue principale de la locale
  • Locale::getRegion — Retourne un code pour la région de la locale
  • Locale::getScript — Retourne un code pour le script de la locale
  • Locale::lookup — Recherche dans la liste la meilleure langue
  • Locale::parseLocale — Retourne les sous-éléments de la locale
  • Locale::setDefault — Configure la locale par défaut


Devine la meilleure locale à partir de l'en-tête HTTP "Accept-Language"

  • « Locale
  • Locale::canonicalize »
  • PHP Manual
  • Locale
  • Devine la meilleure locale à partir de l'en-tête HTTP "Accept-Language"

Locale::acceptFromHttp

locale_accept_from_http

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::acceptFromHttp -- locale_accept_from_http — Devine la meilleure locale à partir de l'en-tête HTTP "Accept-Language"

Description

Style orienté objet

public static string Locale::acceptFromHttp ( string $header )

Style procédural

string locale_accept_from_http ( string $header )

Essaie de trouver une locale qui peut satisfaire la liste de langue qui est demandée par l'en-tête HTTP "Accept-Language".

Liste de paramètres

header

La chaîne contenant l'en-tête "Accept-Language", au format de la RFC 2616.

Valeurs de retour

L'identifiant de locale correspondant.

Exemples

Exemple #1 Exemple avec locale_accept_from_http(), procédural

<?php
$locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo $locale;
?>

Exemple #2 Exemple avec locale_accept_from_http(), POO

<?php
$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo $locale;
?>

L'exemple ci-dessus va afficher :

en_US

Voir aussi

  • locale_lookup() - Recherche dans la liste la meilleure langue


Canonise la chaîne représentant la locale

  • « Locale::acceptFromHttp
  • Locale::composeLocale »
  • PHP Manual
  • Locale
  • Canonise la chaîne représentant la locale

Locale::canonicalize

locale_canonicalize

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::canonicalize -- locale_canonicalize — Canonise la chaîne représentant la locale

Description

public static string Locale::canonicalize ( string $locale )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

locale

Valeurs de retour


Retourne un identifiant de locale correct

  • « Locale::canonicalize
  • Locale::filterMatches »
  • PHP Manual
  • Locale
  • Retourne un identifiant de locale correct

Locale::composeLocale

locale_compose

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::composeLocale -- locale_compose — Retourne un identifiant de locale correct

Description

Style orienté objet

public static string Locale::composeLocale ( array $subtags )

Style procédural

string locale_compose ( array $subtags )

Retourne un identifiant de locale correct, ordonné et délimité, avec les clés pour identifier les particularités régionales, et les valeurs associées à ces sous-locales.

Liste de paramètres

subtags

Un tableau contenant la liste des paires clé-valeurs, où les clés représentent les identifiants de sous-locales, et leur valeur associées.

Note:

Les sous-tags 'variant' et 'private' peuvent prendre jusqu'à 15 valeurs alors que 'extlang' ne peut prendre qu'un maximum de 3 valeurs. Les variantes sont autorisées avec un suffixe allant de 0 à 14. Par conséquent, les clés du tableau sont variant0, variant1, ...,variant14. Dans l'identifiant de locale retourné, les sous-tags sont ordonnés par suffixe, avec variant0 suivi de variant1 suivi de variant2, etc.

Les valeurs multiples de 'variant', 'private' et 'extlang' peuvent être spécifiées sous forme de tableau avec leur clé spécifique (e.g. 'variant') ou bien sous forme de clé multiples (e.g. 'variant0', 'variant1', etc.).

Valeurs de retour

The corresponding locale identifier.

Exemples

Exemple #1 Exemple avec locale_compose(), procédural

<?php
$arr = array(
    'language'=>'en' ,
    'script'  =>'Hans' ,
    'region'  =>'CN',
    'variant2'=>'rozaj' ,
    'variant1'=>'nedis' ,
    'private1'=>'prv1' ,
    'private2'=>'prv2'
);
echo locale_compose( $arr );
?>

Exemple #2 Exemple avec locale_compose(), POO

<?php
$arr = array(
    'language'=>'en' ,
    'script'  =>'Hans' ,
    'region'  =>'CN',
    'variant2'=>'rozaj' ,
    'variant1'=>'nedis' ,
    'private1'=>'prv1' ,
    'private2'=>'prv2'
);
echo Locale::composeLocale( $arr );
?>

L'exemple ci-dessus va afficher :

Locale: en_Hans_CN_nedis_rozaj_x_prv1_prv2

Voir aussi

  • locale_parse() - Retourne les sous-éléments de la locale


Vérifie si le tag de langue correspond à une locale

  • « Locale::composeLocale
  • Locale::getAllVariants »
  • PHP Manual
  • Locale
  • Vérifie si le tag de langue correspond à une locale

Locale::filterMatches

locale_filter_matches

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::filterMatches -- locale_filter_matches — Vérifie si le tag de langue correspond à une locale

Description

Style orienté objet

public static bool Locale::filterMatches ( string $langtag , string $locale [, bool $canonicalize = false ] )

Style procédural

bool locale_filter_matches ( string $langtag , string $locale [, bool $canonicalize = false ] )

Vérifie si le filtre $langtag correspond à la locale $locale selon la RFC 4647, et son algorithme de filtrage simple.

Liste de paramètres

langtag

Le tag de langue à vérifier

locale

L'intervalle de langue cible

canonicalize

Si TRUE, les arguments seront convertis dans leur forme canonique avant la recherche.

Valeurs de retour

TRUE si $locale accepte $langtag, et FALSE otherwise.

Exemples

Exemple #1 Exemple avec locale_filter_matches(), procédural

<?php
echo (locale_filter_matches('de-DEVA','de-DE', false)) ? "Correspond" : "Ne correspond pas";
echo '; ';
echo (locale_filter_matches('de-DE_1996','de-DE', false)) ? "Correspond" : "Ne correspond pas";
?>

Exemple #2 Exemple avec locale_filter_matches(), POO

<?php
echo (Locale::filterMatches('de-DEVA','de-DE', false)) ? "Correspond" : "Ne correspond pas";
echo '; ';
echo (Locale::filterMatches('de-DE-1996','de-DE', false)) ? "Correspond" : "Ne correspond pas";
?>

L'exemple ci-dessus va afficher :

Ne correspond pas; Correspond

Voir aussi

  • locale_lookup() - Recherche dans la liste la meilleure langue


Liste toutes les variantes d'une locale

  • « Locale::filterMatches
  • Locale::getDefault »
  • PHP Manual
  • Locale
  • Liste toutes les variantes d'une locale

Locale::getAllVariants

locale_get_all_variants

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getAllVariants -- locale_get_all_variants — Liste toutes les variantes d'une locale

Description

Style orienté objet

public static array Locale::getAllVariants ( string $locale )

Style procédural

array locale_get_all_variants ( string $locale )

Liste toutes les variantes d'une locale

Liste de paramètres

locale

La locale dont il faut extraire les variantes

Valeurs de retour

Un tableau contenant la liste de toutes les variantes d'une locale, ou bien NULL si inexistant.

Exemples

Exemple #1 Exemple avec locale_get_all_variants(), procédural

<?php
$arr = locale_get_all_variants('sl_IT_NEDIS_ROJAZ_1901');
var_export( $arr );
?>

Exemple #2 Exemple avec locale_get_all_variants(), POO

<?php
$arr = Locale::getAllVariants('sl_IT_NEDIS_ROJAZ_1901');
var_export( $arr );
?>

L'exemple ci-dessus va afficher :

array (
    0 => 'NEDIS',
    1 => 'ROJAZ',
    2 => '1901',
)

Voir aussi

  • locale_get_primary_language() - Lit la langue principale de la locale
  • locale_get_script() - Retourne un code pour le script de la locale
  • locale_get_region() - Retourne un code pour la région de la locale


Lit la valeur par défaut d'une locale pour la variable globale 'default_locale'

  • « Locale::getAllVariants
  • Locale::getDisplayLanguage »
  • PHP Manual
  • Locale
  • Lit la valeur par défaut d'une locale pour la variable globale 'default_locale'

Locale::getDefault

locale_get_default

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDefault -- locale_get_default — Lit la valeur par défaut d'une locale pour la variable globale 'default_locale'

Description

Style orienté objet

public static string Locale::getDefault ( void )

Style procédural

string locale_get_default ( void )

Lit la valeur par défaut d'une locale pour la variable globale 'default_locale'. Au moment de l'initialisation de PHP, cette valeur est extraite de la directive 'intl.default_locale' dans php.ini, si cette valeur existe, et de la fonction ICU uloc_getDefault() autrement.

Liste de paramètres

Valeurs de retour

La locale par défaut pour l'exécution.

Exemples

Exemple #1 Exemple avec locale_get_default(), procédural

<?php
ini_set('intl.default_locale', 'de-DE');
echo locale_get_default();
echo '; ';
locale_set_default('fr');
echo locale_get_default();
?>

Exemple #2 Exemple avec locale_get_default(), POO

<?php
ini_set('intl.default_locale', 'de-DE');
echo Locale::getDefault();
echo '; ';
Locale::setDefault('fr');
echo Locale::getDefault();
?>

L'exemple ci-dessus va afficher :

de-DE; fr

Voir aussi

  • locale_set_default() - Configure la locale par défaut


Retourne un nom approprié pour l'affichage d'un nom de langue

  • « Locale::getDefault
  • Locale::getDisplayName »
  • PHP Manual
  • Locale
  • Retourne un nom approprié pour l'affichage d'un nom de langue

Locale::getDisplayLanguage

locale_get_display_language

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayLanguage -- locale_get_display_language — Retourne un nom approprié pour l'affichage d'un nom de langue

Description

Style orienté objet

public static string Locale::getDisplayLanguage ( string $locale [, string $in_locale ] )

Style procédural

string locale_get_display_language ( string $locale [, string $in_locale ] )

Retourne un nom approprié pour l'affichage d'un nom de langue. Si la valeur NULL est passée en argument, la locale par défaut est utilisée.

Liste de paramètres

locale

La locale dont il faut retourner le nom de langue

in_locale

Un format optionnel pour l'affichage du nom de langue.

Valeurs de retour

Le nom de la langue à afficher pour la locale $locale, dans le format défini par $in_locale.

Exemples

Exemple #1 Exemple avec locale_get_display_language(), procédural

<?php
echo locale_get_display_language('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_language('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_language('sl-Latn-IT-nedis', 'de');
?>

Exemple #2 Exemple avec locale_get_display_language(), POO

<?php
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'de');
?>

L'exemple ci-dessus va afficher :

Slovenian;
slov\xc3\xa8ne;
Slowenisch

Voir aussi

  • locale_get_display_name() - Retourne un nom d'affichage correct pour une locale
  • locale_get_display_script() - Retourne le nom du script de la locale
  • locale_get_display_region() - Retourne un nom pour la région de la locale
  • locale_get_display_variant() - Retourne un nom pour la variante de la locale


Retourne un nom d'affichage correct pour une locale

  • « Locale::getDisplayLanguage
  • Locale::getDisplayRegion »
  • PHP Manual
  • Locale
  • Retourne un nom d'affichage correct pour une locale

Locale::getDisplayName

locale_get_display_name

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayName -- locale_get_display_name — Retourne un nom d'affichage correct pour une locale

Description

Style orienté objet

public static string Locale::getDisplayName ( string $locale [, string $in_locale ] )

Style procédural

string locale_get_display_name ( string $locale [, string $in_locale ] )

Retourne un nom d'affichage correct pour une locale. Si NULL est passé, c'est la locale par défaut qui est utilisée.

Liste de paramètres

locale

La locale dont if faut retourner un nom d'affichage.

in_locale

Un format d'affichage optionnel

Valeurs de retour

Le nom d'affichage de la locale, au format donné par $in_locale.

Exemples

Exemple #1 Exemple avec locale_get_display_name(), procédural

<?php
echo locale_get_display_name('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_name('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_name('sl-Latn-IT-nedis', 'de');
?>

Exemple #2 Exemple avec locale_get_display_name(), POO

<?php
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'de');
?>

L'exemple ci-dessus va afficher :

Slovenian (Latin, Italy, Natisone dialect);
slov\xc3\xa8ne (latin, Italie, dialecte de Natisone);
Slowenisch (Lateinisch, Italien, NEDIS)

Voir aussi

  • locale_get_display_language() - Retourne un nom approprié pour l'affichage d'un nom de langue
  • locale_get_display_script() - Retourne le nom du script de la locale
  • locale_get_display_region() - Retourne un nom pour la région de la locale
  • locale_get_display_variant() - Retourne un nom pour la variante de la locale


Retourne un nom pour la région de la locale

  • « Locale::getDisplayName
  • Locale::getDisplayScript »
  • PHP Manual
  • Locale
  • Retourne un nom pour la région de la locale

Locale::getDisplayRegion

locale_get_display_region

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayRegion -- locale_get_display_region — Retourne un nom pour la région de la locale

Description

Style orienté objet

public static string Locale::getDisplayRegion ( string $locale [, string $in_locale ] )

Style procédural

string locale_get_display_region ( string $locale [, string $in_locale ] )

Retourne un nom pour la région de la locale. Si NULL est passé, la locale par défaut est utilisée.

Liste de paramètres

locale

La locale dont il faut extraire le nom de la région.

in_locale

Un formation optionnel pour afficher le nom de la région.

Valeurs de retour

Le nom de la région de la locale $locale, au format $in_locale.

Exemples

Exemple #1 Exemple avec locale_get_display_region(), procédural

<?php
echo locale_get_display_region('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_region('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_region('sl-Latn-IT-nedis', 'de');
?>

Exemple #2 Exemple avec locale_get_display_region(), POO

<?php
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'de');
?>

L'exemple ci-dessus va afficher :

Italy;
Italie;
Italien

Voir aussi

  • locale_get_display_name() - Retourne un nom d'affichage correct pour une locale
  • locale_get_display_language() - Retourne un nom approprié pour l'affichage d'un nom de langue
  • locale_get_display_script() - Retourne le nom du script de la locale
  • locale_get_display_variant() - Retourne un nom pour la variante de la locale


Retourne le nom du script de la locale

  • « Locale::getDisplayRegion
  • Locale::getDisplayVariant »
  • PHP Manual
  • Locale
  • Retourne le nom du script de la locale

Locale::getDisplayScript

locale_get_display_script

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayScript -- locale_get_display_script — Retourne le nom du script de la locale

Description

Style orienté objet

public static string Locale::getDisplayScript ( string $locale [, string $in_locale ] )

Style procédural

string locale_get_display_script ( string $locale [, string $in_locale ] )

Retourne le nom du script de la locale. Si NULL est passé, la locale par défaut est utilisée.

Liste de paramètres

locale

La locale dont il faut retourner le script.

in_locale

Un format optionnel pour afficher le nom du script.

Valeurs de retour

Affiche le nom du script de la locale $locale au format indiqué par $in_locale.

Exemples

Exemple #1 Exemple avec locale_get_display_script(), procédural

<?php
echo locale_get_display_script('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_script('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_script('sl-Latn-IT-nedis', 'de');
?>

Exemple #2 Exemple avec locale_get_display_script(), POO

<?php
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'de');
?>

L'exemple ci-dessus va afficher :

Latin;
latin;
Lateinisch

Voir aussi

  • locale_get_display_name() - Retourne un nom d'affichage correct pour une locale
  • locale_get_display_language() - Retourne un nom approprié pour l'affichage d'un nom de langue
  • locale_get_display_region() - Retourne un nom pour la région de la locale
  • locale_get_display_variant() - Retourne un nom pour la variante de la locale


Retourne un nom pour la variante de la locale

  • « Locale::getDisplayScript
  • Locale::getKeywords »
  • PHP Manual
  • Locale
  • Retourne un nom pour la variante de la locale

Locale::getDisplayVariant

locale_get_display_variant

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayVariant -- locale_get_display_variant — Retourne un nom pour la variante de la locale

Description

Style orienté objet

public static string Locale::getDisplayVariant ( string $locale [, string $in_locale ] )

Style procédural

string locale_get_display_variant ( string $locale [, string $in_locale ] )

Retourne un nom pour la variante de la locale. Si NULL est passé, la locale par défaut est utilisée.

Liste de paramètres

locale

La locale dont il faut extraire le nom de la région.

in_locale

Un formation optionnel pour afficher le nom de la région.

Valeurs de retour

Le nom de la variante de la locale $locale, au format $in_locale.

Exemples

Exemple #1 Exemple avec locale_get_display_variant(), procédural

<?php
echo locale_get_display_variant('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_variant('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_variant('sl-Latn-IT-nedis', 'de');
?>

Exemple #2 Exemple avec locale_get_display_variant(), POO

<?php
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'de');
?>

L'exemple ci-dessus va afficher :

Natisone dialect;
dialecte de Natisone;
NEDIS

Voir aussi

  • locale_get_display_name() - Retourne un nom d'affichage correct pour une locale
  • locale_get_display_language() - Retourne un nom approprié pour l'affichage d'un nom de langue
  • locale_get_display_script() - Retourne le nom du script de la locale
  • locale_get_display_region() - Retourne un nom pour la région de la locale


Lit les mots-clé de la locale

  • « Locale::getDisplayVariant
  • Locale::getPrimaryLanguage »
  • PHP Manual
  • Locale
  • Lit les mots-clé de la locale

Locale::getKeywords

locale_get_keywords

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getKeywords -- locale_get_keywords — Lit les mots-clé de la locale

Description

Style orienté objet

public static array Locale::getKeywords ( string $locale )

Style procédural

array locale_get_keywords ( string $locale )

Lit les mots-clé de la locale.

Liste de paramètres

locale

La locale dont il faut extraire les mots-clé.

Valeurs de retour

Un tableau associatif contenant les paires clé-valeur pour cette locale.

Exemples

Exemple #1 Exemple avec locale_get_keywords(), procédural

<?php
$keywords_arr = locale_get_keywords( 'de_DE@currency=EUR;collation=PHONEBOOK' );
if ($keywords_arr) {
    foreach ($keywords_arr as $key => $value) {
        echo "$key = $value\n";
    }
}
?>

Exemple #2 Exemple avec locale_get_keywords(), POO

<?php
$keywords_arr = Locale::getKeywords( 'de_DE@currency=EUR;collation=PHONEBOOK' );
if ($keywords_arr) {
    foreach( $keywords_arr as $key => $value){
        echo "$key = $value\n";
    }
}
?>

L'exemple ci-dessus va afficher :

collation = PHONEBOOK
currency = EUR

Voir aussi

  • locale_get_all_variants() - Liste toutes les variantes d'une locale


Lit la langue principale de la locale

  • « Locale::getKeywords
  • Locale::getRegion »
  • PHP Manual
  • Locale
  • Lit la langue principale de la locale

Locale::getPrimaryLanguage

locale_get_primary_language

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getPrimaryLanguage -- locale_get_primary_language — Lit la langue principale de la locale

Description

Style orienté objet

public static string Locale::getPrimaryLanguage ( string $locale )

Style procédural

string locale_get_primary_language ( string $locale )

Lit la langue principale de la locale.

Liste de paramètres

locale

La locale dont il faut extraire la langue principale.

Valeurs de retour

Le code de langue, associé à la langue, ou bien NULL en cas d'erreur.

Exemples

Exemple #1 Exemple avec locale_get_primary_language(), procédural

<?php
echo locale_get_primary_language('zh-Hant');
?>

Exemple #2 Exemple avec locale_get_primary_language(), POO

<?php
echo Locale::getPrimaryLanguage('zh-Hant');
?>

L'exemple ci-dessus va afficher :

zh

Voir aussi

  • locale_get_script() - Retourne un code pour le script de la locale
  • locale_get_region() - Retourne un code pour la région de la locale
  • locale_get_all_variants() - Liste toutes les variantes d'une locale


Retourne un code pour la région de la locale

  • « Locale::getPrimaryLanguage
  • Locale::getScript »
  • PHP Manual
  • Locale
  • Retourne un code pour la région de la locale

Locale::getRegion

locale_get_region

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getRegion -- locale_get_region — Retourne un code pour la région de la locale

Description

Style orienté objet

public static string Locale::getRegion ( string $locale )

Style procédural

string locale_get_region ( string $locale )

Retourne un code pour la région de la locale.

Liste de paramètres

locale

La locale dont il faut extraire le code de région.

Valeurs de retour

Le code de région pour la locale, ou bien NULL en cas d'erreur.

Exemples

Exemple #1 Exemple avec locale_get_region(), procédural

<?php
echo locale_get_region('de-CH-1901');
?>

Exemple #2 Exemple avec locale_get_region(), POO

<?php
echo Locale::getRegion('de-CH-1901');
?>

L'exemple ci-dessus va afficher :

CH

Voir aussi

  • locale_get_primary_language() - Lit la langue principale de la locale
  • locale_get_script() - Retourne un code pour le script de la locale
  • locale_get_all_variants() - Liste toutes les variantes d'une locale


Retourne un code pour le script de la locale

  • « Locale::getRegion
  • Locale::lookup »
  • PHP Manual
  • Locale
  • Retourne un code pour le script de la locale

Locale::getScript

locale_get_script

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getScript -- locale_get_script — Retourne un code pour le script de la locale

Description

Style orienté objet

public static string Locale::getScript ( string $locale )

Style procédural

string locale_get_script ( string $locale )

Retourne un code pour le script de la locale

Liste de paramètres

locale

La locale dont il faut extraire le code du script.

Valeurs de retour

Le code de script pour la locale ou NULL si absent.

Exemples

Exemple #1 Exemple avec locale_get_script(), procédural

<?php
echo locale_get_script('sr-Cyrl');
?>

Exemple #2 Exemple avec locale_get_script(), POO

<?php
echo Locale::getScript('sr-Cyrl');
?>

L'exemple ci-dessus va afficher :

Cyrl

Voir aussi

  • locale_get_primary_language() - Lit la langue principale de la locale
  • locale_get_region() - Retourne un code pour la région de la locale
  • locale_get_all_variants() - Liste toutes les variantes d'une locale


Recherche dans la liste la meilleure langue

  • « Locale::getScript
  • Locale::parseLocale »
  • PHP Manual
  • Locale
  • Recherche dans la liste la meilleure langue

Locale::lookup

locale_lookup

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::lookup -- locale_lookup — Recherche dans la liste la meilleure langue

Description

Style orienté objet

public static string Locale::lookup ( array $langtag , string $locale [, bool $canonicalize = false [, string $default ]] )

Style procédural

string locale_lookup ( array $langtag , string $locale [, bool $canonicalize = false [, string $default ]] )

Recherche dans la liste langtag la meilleure langue, pour la locale spécifiée par locale, en fonction de l'algorithme de la RFC 4647.

Liste de paramètres

langtag

Un tableau contenant une liste de langues à comparer à la locale locale. Un maximum de 100 éléments est autorisé.

locale

La locale à utiliser pour effectuer la recherche.

canonicalize

Si TRUE les arguments seront convertis en leur forme canonique avant leur recherche.

default

La locale à utiliser si aucune solution n'est trouvée.

Valeurs de retour

La langue la plus proche qui ait été trouvée dans la liste, ou bien la valeur par défaut.

Exemples

Exemple #1 Exemple avec locale_lookup(), procédural

<?php
$arr = array(
    'de-DEVA',
    'de-DE-1996',
    'de',
    'de-De'
);
echo locale_lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>

Exemple #2 Exemple avec Locale::lookup(), POO

<?php
$arr = array(
    'de-DEVA',
    'de-DE-1996',
    'de',
    'de-De'
);
echo Locale::lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>

L'exemple ci-dessus va afficher :

de_de_1996

Voir aussi

  • locale_filter_matches() - Vérifie si le tag de langue correspond à une locale


Retourne les sous-éléments de la locale

  • « Locale::lookup
  • Locale::setDefault »
  • PHP Manual
  • Locale
  • Retourne les sous-éléments de la locale

Locale::parseLocale

locale_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::parseLocale -- locale_parse — Retourne les sous-éléments de la locale

Description

Style orienté objet

public static array Locale::parseLocale ( string $locale )

Style procédural

array locale_parse ( string $locale )

Retourne un tableau de paires clé-valeur pour les éléments du sous-tag de la locale.

Liste de paramètres

locale

La locale dont il faut extraire le tableau. Notez que 'variant' et 'private' peuvent prendre jusqu'à 15 valeurs au maximum, alors que 'extlang' peut prendre jusqu'à 3 valeurs.

Valeurs de retour

Retourne un tableau contenant la liste des paires clé-valeur, où les clés sont les noms des éléments, et les valeurs sont leur valeur associée. Le tableau est ordonné de la même manière que les éléments dans la locale, e.g. si les variantes sont '-varX-varY-varZ' alors le tableau retournée contiendra variant0=>varX , variant1=>varY , variant2=>varZ, etc.

Exemples

Exemple #1 Exemple avec locale_parse(), procédural

<?php
$arr = locale_parse('sl-Latn-IT-nedis');
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}
?>

Exemple #2 Exemple avec locale_parse(), POO

<?php
$arr = Locale::parseLocale('sl-Latn-IT-nedis');
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}
?>

L'exemple ci-dessus va afficher :

language : sl , script : Latn , region : IT , variant0 : NEDIS ,

Voir aussi

  • locale_compose() - Retourne un identifiant de locale correct


Configure la locale par défaut

  • « Locale::parseLocale
  • Normalizer »
  • PHP Manual
  • Locale
  • Configure la locale par défaut

Locale::setDefault

locale_set_default

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::setDefault -- locale_set_default — Configure la locale par défaut

Description

Style orienté objet

public static bool Locale::setDefault ( string $locale )

Style procédural

bool locale_set_default ( string $locale )

Configure la locale par défaut à $locale. Cela change la valeur de la globale INTL 'default_locale'. Les extensions UAX #35 sont aussi acceptées.

Liste de paramètres

locale

Une langue au format BCP 47.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec locale_set_default(), procédural

<?php
locale_set_default('de-DE');
echo locale_get_default();
?>

Exemple #2 Exemple avec locale_set_default(), POO

<?php
Locale::setDefault('de-DE');
echo Locale::getDefault();
?>

L'exemple ci-dessus va afficher :

de-DE

Voir aussi

  • locale_get_default() - Lit la valeur par défaut d'une locale pour la variable globale 'default_locale'


La classe Normalizer

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Introduction

La normalisation est un processus qui implique la transformation de caractères et de séquences de caractères dans une représentation formelle. Ce processus est important quand des textes doivent être comparés à des fins de tri et de recherche, mais il est aussi important pour le stockage des données, afin que les documents soient cohérents.

Le consortium Unicode Consortium a défini un nombre de formes de normalisations pour refléter les différents besoins des applications :

  • Normalization Form D (NFD) : décomposition canonique
  • Normalization Form C (NFC) : décomposition canonique, suivie d'une composition canonique
  • Normalization Form KD (NFKD) : décomposition compatible
  • Normalization Form KC (NFKC) : décomposition compatible suivi d'une composition canonique
Les différentes formes sont définies en terme de transformations de texte, transformations qui sont exprimées avec des algorithmes et des fichiers de données.

Synopsis de la classe

Normalizer {
/* Méthodes */
public static bool isNormalized ( string $input [, string $form = Normalizer::FORM_C ] )
public static string normalize ( string $input [, string $form = Normalizer::FORM_C ] )
}

Constantes pré-définies

Les constantes suivantes définissent les formes de normalisation à appliquer par le normalizer :

Normalizer::FORM_C (integer)
Normalization Form C (NFC) : décomposition canonique suivie d'une composition canonique
Normalizer::FORM_D (integer)
Normalization Form D (NFD) : décomposition canonique
Normalizer::FORM_KC (integer)
Normalization Form KC (NFKC) : décomposition compatible, suivie d'une composition canonique
Normalizer::FORM_KD (integer)
Normalization Form KD (NFKD) : décomposition compatible
Normalizer::NONE (integer)
Pas de décomposition/composition
Normalizer::OPTION_DEFAULT (integer)
Options par défaut de normalisation

Voir aussi

  • » Unicode Normalization
  • » Unicode Normalization FAQ
  • » ICU User Guide : Normalization
  • » ICU API Reference : Normalization

Sommaire

  • Normalizer::isNormalized — Vérifie si une chaîne est normalisée
  • Normalizer::normalize — Normalise une chaîne en entrée


Vérifie si une chaîne est normalisée

  • « Normalizer
  • Normalizer::normalize »
  • PHP Manual
  • Normalizer
  • Vérifie si une chaîne est normalisée

Normalizer::isNormalized

normalizer_is_normalized

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Normalizer::isNormalized -- normalizer_is_normalized — Vérifie si une chaîne est normalisée

Description

Object oriented style

public static bool Normalizer::isNormalized ( string $input [, string $form = Normalizer::FORM_C ] )

Procedural style

bool normalizer_is_normalized ( string $input [, string $form = Normalizer::FORM_C ] )

Vérifie si une chaîne est normalisée.

Liste de paramètres

input

La chaîne à normaliser.

form

Une des formes de normalisation.

Valeurs de retour

TRUE si la chaîne est normalisée, et FALSE sinon ou s'il y a une erreur.

Exemples

Exemple #1 Exemple avec normalizer_is_normalized(), en style procédural

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_orig = 'A' . $char_combining_ring_above;
$char_norm = normalizer_normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo ( normalizer_is_normalized($char_orig, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
echo '; ';
echo ( normalizer_is_normalized($char_norm, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
?>

Exemple #2 Exemple avec normalizer_is_normalized(), en style orienté objet

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_orig = 'A' . $char_combining_ring_above;
$char_norm = Normalizer::normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo ( Normalizer::isNormalized($char_orig, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
echo '; ';
echo ( Normalizer::isNormalized($char_norm, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
?>

L'exemple ci-dessus va afficher :

not normalized; normalized

Voir aussi

  • normalizer_normalize() - Normalise une chaîne en entrée


Normalise une chaîne en entrée

  • « Normalizer::isNormalized
  • MessageFormatter »
  • PHP Manual
  • Normalizer
  • Normalise une chaîne en entrée

Normalizer::normalize

normalizer_normalize

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Normalizer::normalize -- normalizer_normalize — Normalise une chaîne en entrée

Description

Style orienté objet

public static string Normalizer::normalize ( string $input [, string $form = Normalizer::FORM_C ] )

Style procédural

string normalizer_normalize ( string $input [, string $form = Normalizer::FORM_C ] )

Normalise la chaîne en entrée et retourne une chaîne normalisée.

Liste de paramètres

input

La chaîne à normaliser

form

Une des formes de normalisation.

Valeurs de retour

La chaîne normalisée, ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec normalizer_normalize(), procédural

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_1 = normalizer_normalize( $char_A_ring, Normalizer::FORM_C );
$char_2 = normalizer_normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo urlencode($char_1);
echo ' ';
echo urlencode($char_2);
?>

Exemple #2 Exemple avec normalizer_normalize(), POO

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_1 = Normalizer::normalize( $char_A_ring, Normalizer::FORM_C );
$char_2 = Normalizer::normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo urlencode($char_1);
echo ' ';
echo urlencode($char_2);
?>

L'exemple ci-dessus va afficher :

%C3%85 %C3%85

Voir aussi

  • normalizer_is_normalized() - Vérifie si une chaîne est normalisée


La classe MessageFormatter

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Introduction

MessageFormatter est une classe concrète qui permet de produire des messages concaténés, et indépendants de la langue. La méthode fournit dans cette classe sont utilisées pour construire des messages qui sont destinés aux utilisateurs finaux.

La classe MessageFormatter assemble les messages à partir de différents fragments (textes, nombres et dates), fournis par le programme. Grace à la classe MessageFormatter, le programme n'a pas besoin de connaître l'ordre des fragments. La classe utilise des spécifications de formatage pour assembler les fragments en un seul message. Par exemple, MessageFormatter vous permet d'afficher la phrase "Fini d'imprimer x fichier sur y..." d'une manière qui reste souple pour la traduction.

Avant, un message était créé sous forme de phrase, et géré comme une chaîne. Cette procédure créait des problèmes pour les traductions, car la structure de la phrase, l'ordre des mots, le format des nombres, etc. était très différents d'une langue à l'autre. L'approche de création des messages, indépendante de la langue, permet de séparer le message et les variables. Avec ces variables, MessageFormatter peut concaténer les différentes parties du message, les formater aux conventions correctes, et fournir un message bien formé.

MessageFormatter prend une série d'objets, formate les textes, et les insert dans les chaînes formatées dans les emplacements corrects. Un grand choix de formats peut être utilisé en conjonction avec MessageFormatter pour gérer le pluriel, les nombres, etc. Typiquement, le message est fourni par une ressource, et les arguments sont préparés dynamiquement.

Synopsis de la classe

MessageFormatter {
/* Méthodes */
public __construct ( string $locale , string $pattern )
public static MessageFormatter create ( string $locale , string $pattern )
public static string formatMessage ( string $locale , string $pattern , array $args )
public string format ( array $args )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public string getLocale ( void )
public string getPattern ( void )
public static array parseMessage ( string $locale , string $pattern , string $source )
public array parse ( string $value )
public bool setPattern ( string $pattern )
}

Voir aussi

  • » ICU formatting documentation
  • » ICU message formatting description
  • » ICU message formatters
  • » ICU choice formatters

Sommaire

  • MessageFormatter::create — Construit un nouveau formateur de messages
  • MessageFormatter::formatMessage — Formate rapidement un message
  • MessageFormatter::format — Formate un message
  • MessageFormatter::getErrorCode — Lit le dernier code d'erreur de la dernière opération
  • MessageFormatter::getErrorMessage — Lit le message d'erreur de la dernière opération
  • MessageFormatter::getLocale — Lit la locale avec la quelle le formateur a été créé
  • MessageFormatter::getPattern — Lit le modèle utilisé par le formateur de messages
  • MessageFormatter::parseMessage — Analyse rapidement une chaîne
  • MessageFormatter::parse — Analyse une chaîne en fonction du modèle
  • MessageFormatter::setPattern — Configure le modèle utilisé par le formateur


Construit un nouveau formateur de messages

  • « MessageFormatter
  • MessageFormatter::formatMessage »
  • PHP Manual
  • MessageFormatter
  • Construit un nouveau formateur de messages

MessageFormatter::create

MessageFormatter::__construct

msgfmt_create

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::create -- MessageFormatter::__construct -- msgfmt_create — Construit un nouveau formateur de messages

Description

Style orienté objet (méthode)

public static MessageFormatter MessageFormatter::create ( string $locale , string $pattern )

Style orienté objet (constructeur)

public MessageFormatter::__construct ( string $locale , string $pattern )

Style procédural

MessageFormatter msgfmt_create ( string $locale , string $pattern )

Construit un nouveau formateur de messages.

Liste de paramètres

locale

La locale à utiliser pour le formatage des arguments

pattern

La chaîne dans laquelle il faut insérer les données. Le modèle utilise une syntaxe qui accepte les apostrophes. Elle est passée à » umsg_autoQuoteApostrophe avant d'être interprétée.

Valeurs de retour

Un objet de formateur de message MessageFormatter

Exemples

Exemple #1 Exemple avec msgfmt_create(), style procédural

<?php
$fmt = msgfmt_create("en_US", "{0,number,integer} singes sur {1,number,integer} arbres font {2,number} singes par arbre");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

Exemple #2 Exemple avec msgfmt_create(), style procédural

<?php
$fmt = new MessageFormatter("en_US", "{0,number,integer} singes sur {1,number,integer} arbres font {2,number} singes par arbre");
echo $fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
echo $fmt->format(array(4560, 123, 4560/123));
?>

L'exemple ci-dessus va afficher :

4,560 singes sur 123 arbres font 37.073 singes par arbre
4.560 Affen über 123 Bäume um 37,073 Affen pro Baum

Voir aussi

  • msgfmt_format() - Formate un message
  • msgfmt_parse() - Analyse une chaîne en fonction du modèle
  • msgfmt_get_error_code() - Lit le dernier code d'erreur de la dernière opération
  • msgfmt_get_error_message() - Lit le message d'erreur de la dernière opération


Formate rapidement un message

  • « MessageFormatter::create
  • MessageFormatter::format »
  • PHP Manual
  • MessageFormatter
  • Formate rapidement un message

MessageFormatter::formatMessage

msgfmt_format_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::formatMessage -- msgfmt_format_message — Formate rapidement un message

Description

Style orienté objet

public static string MessageFormatter::formatMessage ( string $locale , string $pattern , array $args )

Style procédural

string msgfmt_format_message ( string $locale , string $pattern , array $args )

Fonction de formatage rapide, qui formate une chaîne sans avoir à créer explicitement un objet de formatage. Utilisez cette fonction lorsque l'opération est faite une seule fois et n'a pas besoin de paramètre particuliers ou d'états internes.

Liste de paramètres

locale

La locale à utiliser pour le formatage

pattern

La chaîne de caractères dans laquelle il faut insérer les données. Le modèle utilise une syntaxe qui accepte les apostrophes; Elle est passée à » umsg_autoQuoteApostrophe avant d'être interprétée.

args

Le tableau de valeurs à insérer dans la chaîne de format.

Valeurs de retour

La chaîne formatée, ou bien FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec msgfmt_format_message(), style procédural

<?php
echo msgfmt_format_message("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo msgfmt_format_message("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
?>

Exemple #2 Exemple avec msgfmt_format_message(), style procédural

<?php
echo MessageFormatter::formatMessage("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo MessageFormatter::formatMessage("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
?>

L'exemple ci-dessus va afficher :

4,560 singes sur 123 arbres font 37.073 singes par arbre
4.560 Affen über 123 Bäume um 37,073 Affen pro Baum

Voir aussi

  • msgfmt_create() - Construit un nouveau formateur de messages
  • msgfmt_parse() - Analyse une chaîne en fonction du modèle
  • msgfmt_get_error_code() - Lit le dernier code d'erreur de la dernière opération
  • msgfmt_get_error_message() - Lit le message d'erreur de la dernière opération


Formate un message

  • « MessageFormatter::formatMessage
  • MessageFormatter::getErrorCode »
  • PHP Manual
  • MessageFormatter
  • Formate un message

MessageFormatter::format

msgfmt_format

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::format -- msgfmt_format — Formate un message

Description

Style orienté objet

public string MessageFormatter::format ( array $args )

Style procédural

string msgfmt_format ( MessageFormatter $fmt , array $args )

Formate un message en substituant les données dans la chaînes de modèle, en fonction des conventions locales.

Liste de paramètres

fmt

Un objet de formateur de messages MessageFormatter

args

Les arguments à insérer dans les chaînes

Valeurs de retour

La chaîne formatée, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec msgfmt_format(), style procédural

<?php
$fmt = msgfmt_create("en_US", "{0,number,integer} singes sur {1,number,integer} arbres font {2,number} singes par arbre");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

Exemple #2 Exemple avec msgfmt_format(), style POO

<?php
$fmt = new MessageFormatter("en_US", "{0,number,integer} singes sur {1,number,integer} arbres font {2,number} singes par arbre");
echo $fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
echo $fmt->format(array(4560, 123, 4560/123));
?>

L'exemple ci-dessus va afficher :

4,560 singes sur 123 arbres font 37.073 singes par arbre
4.560 Affen über 123 Bäume um 37,073 Affen pro Baum

Voir aussi

  • msgfmt_create() - Construit un nouveau formateur de messages
  • msgfmt_parse() - Analyse une chaîne en fonction du modèle
  • msgfmt_format_message() - Formate rapidement un message
  • msgfmt_get_error_code() - Lit le dernier code d'erreur de la dernière opération
  • msgfmt_get_error_message() - Lit le message d'erreur de la dernière opération


Lit le dernier code d'erreur de la dernière opération

  • « MessageFormatter::format
  • MessageFormatter::getErrorMessage »
  • PHP Manual
  • MessageFormatter
  • Lit le dernier code d'erreur de la dernière opération

MessageFormatter::getErrorCode

msgfmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getErrorCode -- msgfmt_get_error_code — Lit le dernier code d'erreur de la dernière opération

Description

Style orienté objet

public int MessageFormatter::getErrorCode ( void )

Style procédural

int msgfmt_get_error_code ( MessageFormatter $fmt )

Lit le dernier code d'erreur de la dernière opération.

Liste de paramètres

fmt

Un objet de formateur de messages MessageFormatter

Valeurs de retour

Le code d'erreur, une des valeurs UErrorCode. La valeur initiale est U_ZERO_ERROR.

Exemples

Exemple #1 Exemple avec msgfmt_get_error_code(), style procédural

<?php
$fmt = msgfmt_create("en_US", "{0, number} singes sur {1, number} arbres");
$str = msgfmt_format($fmt, array());
if(!$str) {
    echo "Erreur : ".msgfmt_get_error_message($fmt) . " (" . msgfmt_get_error_code($fmt) . ")\n";
}
?>

Exemple #2 Exemple avec msgfmt_get_error_code(), style POO

<?php
$fmt = new MessageFormatter("en_US", "{0, number} singes sur {1, number} arbres");
$str = $fmt->format(array());
if(!$str) {
    echo "Erreur : ".$fmt->getErrorMessage() . " (" . $fmt->getErrorCode() . ")\n";
}
?>

L'exemple ci-dessus va afficher :

Erreur : msgfmt_format: not enough parameters: U_ILLEGAL_ARGUMENT_ERROR (1)

Voir aussi

  • msgfmt_get_error_message() - Lit le message d'erreur de la dernière opération
  • intl_get_error_code() - Lit le dernier code d'erreur
  • intl_is_failure() - Vérifie si un code d'erreur indique un échec


Lit le message d'erreur de la dernière opération

  • « MessageFormatter::getErrorCode
  • MessageFormatter::getLocale »
  • PHP Manual
  • MessageFormatter
  • Lit le message d'erreur de la dernière opération

MessageFormatter::getErrorMessage

msgfmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getErrorMessage -- msgfmt_get_error_message — Lit le message d'erreur de la dernière opération

Description

Style orienté objet

public string MessageFormatter::getErrorMessage ( void )

Style procédural

string msgfmt_get_error_message ( MessageFormatter $fmt )

Lit le message d'erreur de la dernière opération du formateur de messages.

Liste de paramètres

fmt

Un objet de formateur de messages MessageFormatter

Valeurs de retour

La descrpitiond e la dernière erreur.

Exemples

Exemple #1 Exemple avec msgfmt_get_error_message(), style procédural

<?php
$fmt = msgfmt_create("en_US", "{0, number} singes sur {1, number} arbres");
$str = msgfmt_format($fmt, array());
if(!$str) {
    echo "Erreur : ".msgfmt_get_error_message($fmt) . " (" . msgfmt_get_error_code($fmt) . ")\n";
}
?>

Exemple #2 Exemple avec msgfmt_get_error_message(), style POO

<?php
$fmt = new MessageFormatter("en_US", "{0, number} singes sur {1, number} arbres");
$str = $fmt->format(array());
if(!$str) {
    echo "Erreur : ".$fmt->getErrorMessage() . " (" . $fmt->getErrorCode() . ")\n";
}
?>

L'exemple ci-dessus va afficher :

Erreur : msgfmt_format: not enough parameters: U_ILLEGAL_ARGUMENT_ERROR (1)

Voir aussi

  • msgfmt_get_error_code() - Lit le dernier code d'erreur de la dernière opération
  • intl_get_error_code() - Lit le dernier code d'erreur
  • intl_is_failure() - Vérifie si un code d'erreur indique un échec


Lit la locale avec la quelle le formateur a été créé

  • « MessageFormatter::getErrorMessage
  • MessageFormatter::getPattern »
  • PHP Manual
  • MessageFormatter
  • Lit la locale avec la quelle le formateur a été créé

MessageFormatter::getLocale

msgfmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getLocale -- msgfmt_get_locale — Lit la locale avec la quelle le formateur a été créé

Description

Style orienté objet

public string MessageFormatter::getLocale ( void )

Style procédural

string msgfmt_get_locale ( NumberFormatter $formatter )

Lit la locale avec la quelle le formateur a été créé.

Liste de paramètres

formatter

Un objet de formateur de messages MessageFormatter

Valeurs de retour

Le nom de la locale

Exemples

Exemple #1 Exemple avec msgfmt_get_locale(), style procédural

<?php
$fmt = msgfmt_create('en_US', "Nombre {0,number}");
echo msgfmt_get_locale($fmt);
?>

Exemple #2 Exemple avec msgfmt_get_locale(), style POO

<?php
$fmt = new MessageFormatter('en_US', "Nombre {0,number}");
echo $fmt->getLocale();
?>

L'exemple ci-dessus va afficher :

en_US

Voir aussi

  • msgfmt_create() - Construit un nouveau formateur de messages


Lit le modèle utilisé par le formateur de messages

  • « MessageFormatter::getLocale
  • MessageFormatter::parseMessage »
  • PHP Manual
  • MessageFormatter
  • Lit le modèle utilisé par le formateur de messages

MessageFormatter::getPattern

msgfmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getPattern -- msgfmt_get_pattern — Lit le modèle utilisé par le formateur de messages

Description

Style orienté objet

public string MessageFormatter::getPattern ( void )

Style procédural

string msgfmt_get_pattern ( MessageFormatter $fmt )

Lit le modèle utilisé par le formateur de messages.

Liste de paramètres

fmt

Un objet de formateur de messages MessageFormatter

Valeurs de retour

La chaîne de caractères de modèle du formateur de messages

Exemples

Exemple #1 Exemple avec msgfmt_get_pattern(), style procédural

<?php
$fmt = msgfmt_create( "en_US", "{0, number} singes sur {1, number} arbres" );
echo "Modèle par défaut : '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Résultat de formatage :  " . msgfmt_format( $fmt, array(123, 456) ) . "\n";

msgfmt_set_pattern( $fmt, "{0, number} arbres hosting {1, number} singes" );
echo "Nouveau modèle :  '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Résultat de formatage : " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>

Exemple #2 Exemple avec msgfmt_get_pattern(), style POO

<?php
$fmt = new MessageFormatter( "en_US", "{0, number} singes sur {1, number} arbres" );
echo "Modèle par défaut : '" . $fmt->getPattern() . "'\n";
echo "Résultat de formatage :  " . $fmt->format(array(123, 456)) . "\n";

$fmt->setPattern("{0, number} arbres hosting {1, number} singes" );
echo "Nouveau modèle :  '" . $fmt->getPattern() . "'\n";
echo "Résultat de formatage : " . $fmt->format(array(123, 456)) . "\n";
?>

L'exemple ci-dessus va afficher :

Modèle par défaut : '{0,number} singes sur {1,number} arbres'
Résultat de formatage :  123 singes sur 456 arbres
Nouveau modèle :  '{0,number} arbres hosting {1,number} singes'
Résultat de formatage : 123 arbres hosting 456 singes

Voir aussi

  • msgfmt_create() - Construit un nouveau formateur de messages
  • msgfmt_set_pattern() - Configure le modèle utilisé par le formateur


Analyse rapidement une chaîne

  • « MessageFormatter::getPattern
  • MessageFormatter::parse »
  • PHP Manual
  • MessageFormatter
  • Analyse rapidement une chaîne

MessageFormatter::parseMessage

msgfmt_parse_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::parseMessage -- msgfmt_parse_message — Analyse rapidement une chaîne

Description

Style orienté objet

public static array MessageFormatter::parseMessage ( string $locale , string $pattern , string $source )

Style procédural

array msgfmt_parse_message ( string $locale , string $pattern , string $value )

Analyse la chaîne d'entrée sans créer explicitement d'objet formateur. Utilisez cette fonction lorsque l'opération de formatage est fait une seule fois, et n'a pas besoin de paramètres ou d'état.

Liste de paramètres

locale

La locale à utiliser pour analyser les parties de la chaîne

pattern

Le motif à utiliser pour analyser value.

source

La string à analyser, conformément à pattern.

Valeurs de retour

Un tableau contenant les éléments extraits, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec msgfmt_parse_message(), style procédural

<?php
$fmt = msgfmt_parse_message('en_US', "{0,number,integer} singes sur {1,number,integer} arbres font {2,number} signes par arbre",
                            "4,560 singes sur 123 arbres font 37.073 signes par arbre");
var_export($fmt);

$fmt = msgfmt_parse_message('de', "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum",
                            "4.560 Affen über 123 Bäume um 37,073 Affen pro Baum");
var_export($fmt);
?>

Exemple #2 Exemple avec msgfmt_parse_message(), style POO

<?php
$fmt = MessageFormatter::parseMessage('en_US', "{0,number,integer} singes sur {1,number,integer} arbres font {2,number} signes par arbre",
                            "4,560 singes sur 123 arbres font 37.073 signes par arbre");
var_export($fmt);

$fmt = MessageFormatter::parseMessage('de', "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum",
                            "4.560 Affen über 123 Bäume um 37,073 Affen pro Baum");
var_export($fmt);
?>

L'exemple ci-dessus va afficher :

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

Voir aussi

  • msgfmt_create() - Construit un nouveau formateur de messages
  • msgfmt_format_message() - Formate rapidement un message
  • msgfmt_parse() - Analyse une chaîne en fonction du modèle


Analyse une chaîne en fonction du modèle

  • « MessageFormatter::parseMessage
  • MessageFormatter::setPattern »
  • PHP Manual
  • MessageFormatter
  • Analyse une chaîne en fonction du modèle

MessageFormatter::parse

msgfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::parse -- msgfmt_parse — Analyse une chaîne en fonction du modèle

Description

Style orienté objet

public array MessageFormatter::parse ( string $value )

Style procédural

array msgfmt_parse ( MessageFormatter $fmt , string $value )

Analyse la chaîne value et retourne les éléments extraits sous forme de tableau.

Liste de paramètres

fmt

Un objet de formateur de messages MessageFormatter

value

La chaîne de caractères à analyser.

Valeurs de retour

Un tableau contenant les éléments extraits, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec msgfmt_parse(), style procédural

<?php
$fmt = msgfmt_create('en_US', "{0,number,integer} singes sur {1,number,integer} arbres font {2,number} signes par arbre");
$res = msgfmt_parse($fmt, "4,560 singes sur 123 arbres font 37.073 singes par arbre");
var_export($res);

$fmt = msgfmt_create('de', "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
$res = msgfmt_parse($fmt, "4.560 Affen über 123 Bäume um 37,073 Affen pro Baum");
var_export($res);
?>

Exemple #2 Exemple avec msgfmt_parse(), style POO

<?php
$fmt = new MessageFormatter('en_US', "{0,number,integer} singes sur {1,number,integer} arbres font {2,number} signes par arbre");
$res = $fmt->parse("4,560 singes sur 123 arbres font 37.073 singes par arbre");
var_export($res);

$fmt = new MessageFormatter('de', "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
$res = $fmt->parse("4.560 Affen über 123 Bäume um 37,073 Affen pro Baum");
var_export($res);
?>

L'exemple ci-dessus va afficher :

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

Voir aussi

  • msgfmt_create() - Construit un nouveau formateur de messages
  • msgfmt_format() - Formate un message
  • msgfmt_parse_message() - Analyse rapidement une chaîne


Configure le modèle utilisé par le formateur

  • « MessageFormatter::parse
  • IntlCalendar »
  • PHP Manual
  • MessageFormatter
  • Configure le modèle utilisé par le formateur

MessageFormatter::setPattern

msgfmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::setPattern -- msgfmt_set_pattern — Configure le modèle utilisé par le formateur

Description

Style orienté objet

public bool MessageFormatter::setPattern ( string $pattern )

Style procédural

bool msgfmt_set_pattern ( MessageFormatter $fmt , string $pattern )

Configure le modèle utilisé par le formateur.

Liste de paramètres

fmt

Un objet de formateur de messages MessageFormatter

pattern

La chaîne de modèle utilisé par le formateur de messages. Le modèle utilise la syntaxe qui gère correctement les apostrophes : il est passé à » umsg_autoQuoteApostrophe avant d'être interprété.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec msgfmt_set_pattern(), style procédural

<?php
$fmt = msgfmt_create( "en_US", "{0, number} singes sur {1, number} arbres" );
echo "Modèle par défaut : '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Résultat formaté : " . msgfmt_format( $fmt, array(123, 456) ) . "\n";

msgfmt_set_pattern( $fmt, "{0, number} arbres accueillant {1, number} singes" );
echo "Nouveau modèle :'" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Nombre formaté : " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>

Exemple #2 Exemple avec msgfmt_set_pattern(), style POO

<?php
$fmt = new MessageFormatter( "en_US", "{0, number} singes sur {1, number} arbres" );
echo "Modèle par défaut : '" . $fmt->getPattern() . "'\n";
echo "Résultat formaté : " . $fmt->format(array(123, 456)) . "\n";

$fmt->setPattern("{0, number} arbres accueillant {1, number} singes" );
echo "Nouveau modèle :'" . $fmt->getPattern() . "'\n";
echo "Nombre formaté : " . $fmt->format(array(123, 456)) . "\n";
?>

L'exemple ci-dessus va afficher :

Modèle par défaut : '{0,number} singes sur {1,number} arbres'
Résultat formaté : 123 singes sur 456 arbres
Nouveau modèle :'{0,number} arbres accueillant {1,number} singes'
Nombre formaté : 123 arbres accueillant 456 singes

Voir aussi

  • msgfmt_create() - Construit un nouveau formateur de messages
  • msgfmt_get_pattern() - Lit le modèle utilisé par le formateur de messages


The IntlCalendar class

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

Introduction

Synopsis de la classe

IntlCalendar {
/* Constants */
const integer FIELD_ERA = 0 ;
const integer FIELD_YEAR = 1 ;
const integer FIELD_MONTH = 2 ;
const integer FIELD_WEEK_OF_YEAR = 3 ;
const integer FIELD_WEEK_OF_MONTH = 4 ;
const integer FIELD_DATE = 5 ;
const integer FIELD_DAY_OF_YEAR = 6 ;
const integer FIELD_DAY_OF_WEEK = 7 ;
const integer FIELD_DAY_OF_WEEK_IN_MONTH = 8 ;
const integer FIELD_AM_PM = 9 ;
const integer FIELD_HOUR = 10 ;
const integer FIELD_HOUR_OF_DAY = 11 ;
const integer FIELD_MINUTE = 12 ;
const integer FIELD_SECOND = 13 ;
const integer FIELD_MILLISECOND = 14 ;
const integer FIELD_ZONE_OFFSET = 15 ;
const integer FIELD_DST_OFFSET = 16 ;
const integer FIELD_YEAR_WOY = 17 ;
const integer FIELD_DOW_LOCAL = 18 ;
const integer FIELD_EXTENDED_YEAR = 19 ;
const integer FIELD_JULIAN_DAY = 20 ;
const integer FIELD_MILLISECONDS_IN_DAY = 21 ;
const integer FIELD_IS_LEAP_MONTH = 22 ;
const integer FIELD_FIELD_COUNT = 23 ;
const integer FIELD_DAY_OF_MONTH = 5 ;
const integer DOW_SUNDAY = 1 ;
const integer DOW_MONDAY = 2 ;
const integer DOW_TUESDAY = 3 ;
const integer DOW_WEDNESDAY = 4 ;
const integer DOW_THURSDAY = 5 ;
const integer DOW_FRIDAY = 6 ;
const integer DOW_SATURDAY = 7 ;
const integer DOW_TYPE_WEEKDAY = 0 ;
const integer DOW_TYPE_WEEKEND = 1 ;
const integer DOW_TYPE_WEEKEND_OFFSET = 2 ;
const integer DOW_TYPE_WEEKEND_CEASE = 3 ;
const integer WALLTIME_FIRST = 1 ;
const integer WALLTIME_LAST = 0 ;
const integer WALLTIME_NEXT_VALID = 2 ;
/* Méthodes */
public bool add ( int $field , int $amount )
bool intlcal_add ( IntlCalendar $cal , int $field , int $amount )
public bool after ( IntlCalendar $other )
bool intlcal_after ( IntlCalendar $cal , IntlCalendar $other )
public bool before ( IntlCalendar $other )
bool intlcal_before ( IntlCalendar $cal , IntlCalendar $other )
public bool clear ([ int $field = NULL ] )
bool intlcal_clear ( IntlCalendar $cal [, int $field = NULL ] )
private __construct ( void )
public static IntlCalendar createInstance ([ mixed $timeZone = NULL [, string $locale = "" ]] )
IntlCalendar intlcal_create_instance ([ mixed $timeZone = NULL [, string $locale = "" ]] )
public bool equals ( IntlCalendar $other )
bool intlcal_equals ( IntlCalendar $cal , IntlCalendar $other )
public int fieldDifference ( float $when , int $field )
int intlcal_field_difference ( IntlCalendar $cal , float $when , int $field )
public static IntlCalendar fromDateTime ( mixed $dateTime )
IntlCalendar intlcal_from_date_time ( mixed $dateTime )
public int get ( int $field )
int intlcal_get ( IntlCalendar> $cal , int $field )
public int getActualMaximum ( int $field )
int intlcal_get_actual_maximum ( IntlCalendar $cal , int $field )
public int getActualMinimum ( int $field )
int intlcal_get_actual_minimum ( IntlCalendar $cal , int $field )
public static array getAvailableLocales ( void )
array intlcal_get_available_locales ( void )
public int getDayOfWeekType ( int $dayOfWeek )
int intlcal_get_day_of_week_type ( IntlCalendar $cal , int $dayOfWeek )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public int getFirstDayOfWeek ( void )
int intlcal_get_first_day_of_week ( IntlCalendar $cal )
public int getGreatestMinimum ( int $field )
int intlcal_get_greatest_minimum ( IntlCalendar $cal , int $field )
public static Iterator getKeywordValuesForLocale ( string $key , string $locale , boolean $commonlyUsed )
Iterator intlcal_get_keyword_values_for_locale ( string $key , string $locale , boolean $commonlyUsed )
public int getLeastMaximum ( int $field )
int intlcal_get_least_maximum ( IntlCalendar $cal , int $field )
public string getLocale ( int $localeType )
string intlcal_get_locale ( IntlCalendar $cal , int $localeType )
public int getMaximum ( int $field )
int intlcal_get_maximum ( IntlCalendar $cal , int $field )
public int getMinimalDaysInFirstWeek ( void )
int intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal )
public int getMinimum ( int $field )
int intlcal_get_minimum ( IntlCalendar $cal , int $field )
public static float getNow ( void )
float intlcal_get_now ( void )
public int getRepeatedWallTimeOption ( void )
int intlcal_get_repeated_wall_time_option ( IntlCalendar $cal )
public int getSkippedWallTimeOption ( void )
int intlcal_get_skipped_wall_time_option ( IntlCalendar $cal )
public float getTime ( void )
float intlcal_get_time ( IntlCalendar $cal )
public IntlTimeZone getTimeZone ( void )
IntlTimeZone intlcal_get_time_zone ( IntlCalendar $cal )
public string getType ( void )
string intlcal_get_type ( IntlCalendar $cal )
public int getWeekendTransition ( string $dayOfWeek )
int intlcal_get_weekend_transition ( IntlCalendar $cal , string $dayOfWeek )
public bool inDaylightTime ( void )
bool intlcal_in_daylight_time ( IntlCalendar $cal )
public bool isEquivalentTo ( IntlCalendar $other )
bool intlcal_is_equivalent_to ( IntlCalendar $cal , IntlCalendar $other )
public bool isLenient ( void )
bool intlcal_is_lenient ( IntlCalendar $cal )
public bool isSet ( int $field )
bool intlcal_is_set ( IntlCalendar $cal , int $field )
public bool isWeekend ([ float $date = NULL ] )
bool intlcal_is_weekend ( IntlCalendar $cal [, float $date = NULL ] )
public bool roll ( int $field , mixed $amountOrUpOrDown )
bool intlcal_roll ( IntlCalendar $cal , int $field , mixed $amountOrUpOrDown )
public bool set ( int $field , int $value )
public bool set ( int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] )
bool intlcal_set ( IntlCalendar $cal , int $field , int $value )
bool intlcal_set ( IntlCalendar $cal , int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] )
public bool setFirstDayOfWeek ( int $dayOfWeek )
bool intlcal_set_first_day_of_week ( IntlCalendar $cal , int $dayOfWeek )
public ReturnType setLenient ( string $isLenient )
ReturnType intlcal_set_lenient ( IntlCalendar $cal , string $isLenient )
public bool setMinimalDaysInFirstWeek ( int $minimalDays )
bool intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal , int $minimalDays )
public bool setRepeatedWallTimeOption ( int $wallTimeOption )
bool intlcal_set_repeated_wall_time_option ( IntlCalendar $cal , int $wallTimeOption )
public bool setSkippedWallTimeOption ( int $wallTimeOption )
bool intlcal_set_skipped_wall_time_option ( IntlCalendar $cal , int $wallTimeOption )
public bool setTime ( float $date )
bool intlcal_set_time ( IntlCalendar $cal , float $date )
public bool setTimeZone ( mixed $timeZone )
bool intlcal_set_time_zone ( IntlCalendar $cal , mixed $timeZone )
public DateTime toDateTime ( void )
DateTime intlcal_to_date_time ( IntlCalendar $cal )
}

Constantes pré-définies

IntlCalendar::FIELD_ERA

Calendar field numerically representing an era, for instance 1 for AD and 0 for BC in the Gregorian/Julian calendars and 235 for the Heisei (??) era in the Japanese calendar. Not all calendars have more than one era.

IntlCalendar::FIELD_YEAR

Calendar field for the year. This is not unique across eras. If the calendar type has more than one era, generally the minimum value for this field will be 1.

IntlCalendar::FIELD_MONTH

Calendar field for the month. The month sequence is zero-based, so Janurary (here used to signify the first month of the calendar; this may be called another name, such as Muharram in the Islamic calendar) is represented by 0, February by 1, …, December by 11 and, for calendars that have it, the 13th or leap month by 12.

IntlCalendar::FIELD_WEEK_OF_YEAR

Calendar field for the number of the week of the year. This depends on which day of the week is deemed to start the week and the minimal number of days in a week.

IntlCalendar::FIELD_WEEK_OF_MONTH

Calendar field for the number of the week of the month. This depends on which day of the week is deemed to start the week and the minimal number of days in a week.

IntlCalendar::FIELD_DATE

Calendar field for the day of the month. The same as IntlCalendar::FIELD_DAY_OF_MONTH, which has a clearer name.

IntlCalendar::FIELD_DAY_OF_YEAR

Calendar field for the day of the year. For the Gregorian calendar, starts with 1 and ends with 365 or 366.

IntlCalendar::FIELD_DAY_OF_WEEK

Calendar field for the day of the week. Its values start with 1 (Sunday, see IntlCalendar::DOW_SUNDAY and subsequent constants) and the last valid value is 7 (Saturday).

IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH

Given a day of the week (Sunday, Monday, …), this calendar field assigns an ordinal to such a day of the week in a specific month. Thus, if the value of this field is 1 and the value of the day of the week is 2 (Monday), then the set day of the month is the 1st Monday of the month; the maximum value is 5.

Additionally, the value 0 and negative values are also allowed. The value 0 encompasses the seven days that occur immediately before the first seven days of a month (which therefore have a ‘day of week in month’ with value 1). Negative values starts counting from the end of the month – -1 points to the last occurrence of a day of the week in a month, -2 to the second last, and so on.

Unlike IntlCalendar::FIELD_WEEK_OF_MONTH and IntlCalendar::FIELD_WEEK_OF_YEAR, this value does not depend on IntlCalendar::getFirstDayOfWeek() or on IntlCalendar::getMinimalDaysInFirstWeek(). The first Monday is the first Monday, even if it occurs in a week that belongs to the previous month.

IntlCalendar::FIELD_AM_PM

Calendar field indicating whether a time is before noon (value 0, AM) or after (1). Midnight is AM, noon is PM.

IntlCalendar::FIELD_HOUR

Calendar field for the hour, without specifying whether it's in the morning or in the afternoon. Valid values are 0 to 11.

IntlCalendar::FIELD_HOUR_OF_DAY

Calendar field for the full (24h) hour of the day. Valid values are 0 to 23.

IntlCalendar::FIELD_MINUTE

Calendar field for the minutes component of the time.

IntlCalendar::FIELD_SECOND

Calendar field for the seconds component of the time.

IntlCalendar::FIELD_MILLISECOND

Calendar field the milliseconds component of the time.

IntlCalendar::FIELD_ZONE_OFFSET

Calendar field indicating the raw offset of the timezone, in milliseconds. The raw offset is the timezone offset, excluding any offset due to daylight saving time.

IntlCalendar::FIELD_DST_OFFSET

Calendar field for the daylight saving time offset of the calendar's timezone, in milliseconds, if active for calendar's time.

IntlCalendar::FIELD_YEAR_WOY

Calendar field representing the year for week of year purposes.

IntlCalendar::FIELD_DOW_LOCAL

Calendar field for the localized day of the week. This is a value betwen 1 and 7, 1 being used for the day of the week that matches the value returned by IntlCalendar::getFirstDayOfWeek().

IntlCalendar::FIELD_EXTENDED_YEAR

Calendar field for a year number representation that is continuous across eras. For the Gregorian calendar, the value of this field matches that of IntlCalendar::FIELD_YEAR for AD years; a BC year y is represented by -y + 1.

IntlCalendar::FIELD_JULIAN_DAY

Calendar field for a modified Julian day number. It is different from a conventional Julian day number in that its transitions occur at local zone midnight rather than at noon UTC. It uniquely identifies a date.

IntlCalendar::FIELD_MILLISECONDS_IN_DAY

Calendar field encompassing the information in IntlCalendar::FIELD_HOUR_OF_DAY, IntlCalendar::FIELD_MINUTE, IntlCalendar::FIELD_SECOND and IntlCalendar::FIELD_MILLISECOND. Range is from the 0 to 24 * 3600 * 1000 - 1. It is not the amount of milliseconds ellapsed in the day since on DST transitions it will have discontinuities analog to those of the wall time.

IntlCalendar::FIELD_IS_LEAP_MONTH

Calendar field whose value is 1 for indicating a leap month and 0 otherwise.

IntlCalendar::FIELD_FIELD_COUNT

The total number of fields.

IntlCalendar::FIELD_DAY_OF_MONTH

Alias for IntlCalendar::FIELD_DATE.

IntlCalendar::DOW_SUNDAY

Sunday.

IntlCalendar::DOW_MONDAY

Monday.

IntlCalendar::DOW_TUESDAY

Tuesday.

IntlCalendar::DOW_WEDNESDAY

Wednesday.

IntlCalendar::DOW_THURSDAY

Thursday.

IntlCalendar::DOW_FRIDAY

Friday.

IntlCalendar::DOW_SATURDAY

Saturday.

IntlCalendar::DOW_TYPE_WEEKDAY

Output of IntlCalendar::getDayOfWeekType() indicating a day of week is a weekday.

IntlCalendar::DOW_TYPE_WEEKEND

Output of IntlCalendar::getDayOfWeekType() indicating a day of week belongs to the weekend.

IntlCalendar::DOW_TYPE_WEEKEND_OFFSET

Output of IntlCalendar::getDayOfWeekType() indicating the weekend begins during the given day of week.

IntlCalendar::DOW_TYPE_WEEKEND_CEASE

Output of IntlCalendar::getDayOfWeekType() indicating the weekend ends during the given day of week.

IntlCalendar::WALLTIME_FIRST

Output of IntlCalendar::getSkippedWallTimeOption() indicating that wall times in the skipped range should refer to the same instant as wall times with one hour less and of IntlCalendar::getRepeatedWallTimeOption() indicating the wall times in the repeated range should refer to the instant of the first occurrence of such wall time.

IntlCalendar::WALLTIME_LAST

Output of IntlCalendar::getSkippedWallTimeOption() indicating that wall times in the skipped range should refer to the same instant as wall times with one hour after and of IntlCalendar::getRepeatedWallTimeOption() indicating the wall times in the repeated range should refer to the instant of the second occurrence of such wall time.

IntlCalendar::WALLTIME_NEXT_VALID

Output of IntlCalendar::getSkippedWallTimeOption() indicating that wall times in the skipped range should refer to the instant when the daylight saving time transition occurs (begins).

Sommaire

  • IntlCalendar::add — Ajoute une durée (signée) à un champ
  • IntlCalendar::after — Vérifie si l'objet temps courant est dans le futur par rapport à l'objet temps passé
  • IntlCalendar::before — Vérifie si l'objet temps est dans le passé par rapport à l'objet fourni
  • IntlCalendar::clear — Vide un ou tous les champs
  • IntlCalendar::__construct — Constructeur privé pour la désactivation de l'instanciation
  • IntlCalendar::createInstance — Crée un nouvel objet IntlCalendar
  • IntlCalendar::equals — Vérifie si deux objets IntlCalendar sont égaux
  • IntlCalendar::fieldDifference — Calcule la différence entre le temps donné et le temps de l'objet
  • IntlCalendar::fromDateTime — Create an IntlCalendar from a DateTime object or string
  • IntlCalendar::get — Récupère la valeur d'une propriété
  • IntlCalendar::getActualMaximum — The maximum value for a field, considering the object's current time
  • IntlCalendar::getActualMinimum — The minimum value for a field, considering the object's current time
  • IntlCalendar::getAvailableLocales — Get array of locales for which there is data
  • IntlCalendar::getDayOfWeekType — Tell whether a day is a weekday, weekend or a day that has a transition between the two
  • IntlCalendar::getErrorCode — Get last error code on the object
  • IntlCalendar::getErrorMessage — Get last error message on the object
  • IntlCalendar::getFirstDayOfWeek — Get the first day of the week for the calendar's locale
  • IntlCalendar::getGreatestMinimum — Get the largest local minimum value for a field
  • IntlCalendar::getKeywordValuesForLocale — Get set of locale keyword values
  • IntlCalendar::getLeastMaximum — Get the smallest local maximum for a field
  • IntlCalendar::getLocale — Get the locale associated with the object
  • IntlCalendar::getMaximum — Get the global maximum value for a field
  • IntlCalendar::getMinimalDaysInFirstWeek — Get minimal number of days the first week in a year or month can have
  • IntlCalendar::getMinimum — Get the global minimum value for a field
  • IntlCalendar::getNow — Récupère le nombre représentant la date courante
  • IntlCalendar::getRepeatedWallTimeOption — Get behavior for handling repeating wall time
  • IntlCalendar::getSkippedWallTimeOption — Get behavior for handling skipped wall time
  • IntlCalendar::getTime — Get time currently represented by the object
  • IntlCalendar::getTimeZone — Récupère le fuseau horaire de l'objet
  • IntlCalendar::getType — Récupère le type de calendrier
  • IntlCalendar::getWeekendTransition — Get time of the day at which weekend begins or ends
  • IntlCalendar::inDaylightTime — Whether the object's time is in Daylight Savings Time
  • IntlCalendar::isEquivalentTo — Whether another calendar is equal but for a different time
  • IntlCalendar::isLenient — Whether date/time interpretation is in lenient mode
  • IntlCalendar::isSet — Whether a field is set
  • IntlCalendar::isWeekend — Whether a certain date/time is in the weekend
  • IntlCalendar::roll — Add value to field without carrying into more significant fields
  • IntlCalendar::set — Set a time field or several common fields at once
  • IntlCalendar::setFirstDayOfWeek — Défini le jour de début de la semaine
  • IntlCalendar::setLenient — Set whether date/time interpretation is to be lenient
  • IntlCalendar::setMinimalDaysInFirstWeek — Set minimal number of days the first week in a year or month can have
  • IntlCalendar::setRepeatedWallTimeOption — Set behavior for handling repeating wall times at negative timezone offset transitions
  • IntlCalendar::setSkippedWallTimeOption — Set behavior for handling skipped wall times at positive timezone offset transitions
  • IntlCalendar::setTime — Défini le temps du calendrier en milliseconde depuis l'époque
  • IntlCalendar::setTimeZone — Défini le fuseau horaire utilisé par ce calendrier
  • IntlCalendar::toDateTime — Converti un objet IntlCalendar en un objet DateTime


Ajoute une durée (signée) à un champ

  • « IntlCalendar
  • IntlCalendar::after »
  • PHP Manual
  • IntlCalendar
  • Ajoute une durée (signée) à un champ

IntlCalendar::add

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::add — Ajoute une durée (signée) à un champ

Description

Style orienté objet

public bool IntlCalendar::add ( int $field , int $amount )

Style procédural

bool intlcal_add ( IntlCalendar $cal , int $field , int $amount )

Ajoute une durée signée à un champ. L'ajout d'une durée positive permet d'avancer dans le temps, même si la valeur numérique du champ décroit (i.e. lorsqu'on travaille sur les années en dates BC).

Les autres champs doivent s'ajuster ; par exemple, l'ajout d'un mois à la date du 31 Janvier retournera le 28 (ou 29) Févrirer. Contrairement à la fonction IntlCalendar::roll(), lorsqu'une valeur englobe plusieurs valeurs, plusieurs champs peuvent changer significativement. Par exemple, l'ajout d'une journée au 31 Janvier retournera le 1 Février, et non le 1 Janvier.

Liste de paramètres

cal

La ressource IntlCalendar.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

amount

La durée signée à ajouter au champ courant. Si la durée est positive, l'instant va se déplacer en avant ; si elle est négative, l'instant va se déplacer dans le passé. L'unité est implicite suivant le type de champ. Par exemple, ce sera en heures pour la constante IntlCalendar::FIELD_HOUR_OF_DAY.

Valeurs de retour

Retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec IntlCalendar::add()

<?php
ini_set('intl.default_locale', 'fr_FR');
ini_set('date.timezone', 'UTC');

$cal = new IntlGregorianCalendar(2012, 0 /* January */, 31);
echo IntlDateFormatter::formatObject($cal), "\n";

$cal->add(IntlCalendar::FIELD_MONTH, 1);
echo IntlDateFormatter::formatObject($cal), "\n";

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
echo IntlDateFormatter::formatObject($cal), "\n";

L'exemple ci-dessus va afficher :

31 janv. 2012 00:00:00
29 févr. 2012 00:00:00
1 mars 2012 00:00:00


Vérifie si l'objet temps courant est dans le futur par rapport à l'objet temps passé

  • « IntlCalendar::add
  • IntlCalendar::before »
  • PHP Manual
  • IntlCalendar
  • Vérifie si l'objet temps courant est dans le futur par rapport à l'objet temps passé

IntlCalendar::after

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::after — Vérifie si l'objet temps courant est dans le futur par rapport à l'objet temps passé

Description

Style orienté objet

public bool IntlCalendar::after ( IntlCalendar $other )

Style procédural

bool intlcal_after ( IntlCalendar $cal , IntlCalendar $other )

Vérifie si l'objet temps courant est dans le futur par rapport à l'objet temps passé.

Liste de paramètres

cal

La ressource IntlCalendar.

other

Le calendrier pour lequel le temps sera vérifié par rapport au temps de l'objet primaire.

Valeurs de retour

Retourne TRUE si l'objet temps courant est dans le futur par rapport au temps de l'argument calendar. Retourne FALSE sinon. Retourne également FALSE si une erreur survient. Vous pouvez utiliser les exceptions ou la fonction intl_get_error_code() pour détecter les erreurs.

Exemples

Exemple #1 Exemple avec IntlCalendar::after()

<?php
$cal1 = IntlCalendar::createInstance();
$cal2 = clone $cal1;

var_dump($cal1->after($cal2), //false
        $cal2->after($cal1)); //false

$cal1->roll(IntlCalendar::FIELD_MILLISECOND, true);

var_dump($cal1->after($cal2), //true
        $cal2->after($cal1)); //false


Vérifie si l'objet temps est dans le passé par rapport à l'objet fourni

  • « IntlCalendar::after
  • IntlCalendar::clear »
  • PHP Manual
  • IntlCalendar
  • Vérifie si l'objet temps est dans le passé par rapport à l'objet fourni

IntlCalendar::before

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::before — Vérifie si l'objet temps est dans le passé par rapport à l'objet fourni

Description

Style orienté objet

public bool IntlCalendar::before ( IntlCalendar $other )

Style procédural

bool intlcal_before ( IntlCalendar $cal , IntlCalendar $other )

Vérifie si l'objet temps est dans le passé par rapport à l'objet fourni.

Liste de paramètres

cal

La ressource IntlCalendar.

other

Le calendrier pour lequel le temps sera vérifié par rapport au temps de l'objet primaire.

Valeurs de retour

Retourne TRUE si l'objet temps courant est dans le passé par rapport au temps de l'argument calendar. Retourne FALSE sinon. Retourne également FALSE si une erreur survient. Vous pouvez utiliser les exceptions ou la fonction intl_get_error_code() pour détecter les erreurs.


Vide un ou tous les champs

  • « IntlCalendar::before
  • IntlCalendar::__construct »
  • PHP Manual
  • IntlCalendar
  • Vide un ou tous les champs

IntlCalendar::clear

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::clear — Vide un ou tous les champs

Description

Style orienté objet

public bool IntlCalendar::clear ([ int $field = NULL ] )

Style procédural

bool intlcal_clear ( IntlCalendar $cal [, int $field = NULL ] )

Vide soit tous les champs, soit un champ spécifique. Un champ vide est marqué comme non utilisé, lui donnant ainsi la plus petite des priorités par rapport aux champs surchargés ou même les valeurs par défaut lors du calcul du temps. De plus, cette valeur est définie à 0, donnant ainsi au champ une priorité basse ; cette valeur peut avoir été définie à une autre valeur par la durée que le champ a mis à terminer sa requête.

Liste de paramètres

cal

La ressource IntlCalendar.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

Valeurs de retour

Retourne TRUE en cas de succès ou FALSE si une erreur survient. Un échec ne peut survenir que lorsqu'un argument invalide est fourni.

Exemples

Exemple #1 Exempe avec IntlCalendar::clear()

<?php
ini_set('intl.default_locale', 'es_ES');
ini_set('date.timezone', 'UTC');

$fields = array(
    'FIELD_ERA'                  => 0,
    'FIELD_YEAR'                 => 1,
    'FIELD_MONTH'                => 2,
    'FIELD_WEEK_OF_YEAR'         => 3,
    'FIELD_WEEK_OF_MONTH'        => 4,
    'FIELD_DATE'                 => 5,
    'FIELD_DAY_OF_YEAR'          => 6,
    'FIELD_DAY_OF_WEEK'          => 7,
    'FIELD_DAY_OF_WEEK_IN_MONTH' => 8,
    'FIELD_AM_PM'                => 9,
    'FIELD_HOUR'                 => 10,
    'FIELD_HOUR_OF_DAY'          => 11,
    'FIELD_MINUTE'               => 12,
    'FIELD_SECOND'               => 13,
    'FIELD_MILLISECOND'          => 14,
    'FIELD_ZONE_OFFSET'          => 15,
    'FIELD_DST_OFFSET'           => 16,
    'FIELD_YEAR_WOY'             => 17,
    'FIELD_DOW_LOCAL'            => 18,
    'FIELD_EXTENDED_YEAR'        => 19,
    'FIELD_JULIAN_DAY'           => 20,
    'FIELD_MILLISECONDS_IN_DAY'  => 21,
    'FIELD_IS_LEAP_MONTH'        => 22,
    'FIELD_FIELD_COUNT'          => 23,
);
function getSetFields(IntlCalendar $cal) {
    global $fields;
    $ret = array();
    foreach ($fields as $name => $value) {
        if ($cal->isSet($value)) {
            $ret[] = $name;
        }
    }
    return $ret;
}

$cal = new IntlGregorianCalendar(2013, 2 /* Mars */, 15);
echo "Après la création d'un GregorianCalendar\n";
print_r(getSetFields($cal));
echo "\n";

echo IntlDateFormatter::formatObject($cal), "\n";
echo "Après que le formateur ait demandé l'année étendue\n";
print_r(getSetFields($cal));
echo "\n";

$cal->clear(IntlCalendar::FIELD_YEAR);
echo "Après que l'année ait été vidée, la date reste la même\n";
echo IntlDateFormatter::formatObject($cal), "\n";
echo "car FIELD_EXTENDED_YEAR est toujours défini\n";
print_r(getSetFields($cal));
echo "\n";

var_dump($cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR));
echo "Après que l'année étendue ait été vidée\n";
print_r(getSetFields($cal));
echo IntlDateFormatter::formatObject($cal), "\n";
echo "\n";

echo "Après que les champs aient été recalculés,\n"
        . " l'année étendue est de nouveau définie (à 1970)\n";
print_r(getSetFields($cal));
echo "\n";

$cal->clear();
echo "Après l'appel d'une variante sans argument\n";
print_r(getSetFields($cal));
echo IntlDateFormatter::formatObject($cal), "\n";

L'exemple ci-dessus va afficher :

Après la création d'un GregorianCalendar
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
)

15/03/2013 00:00:00
Après que le formateur ait demandé l'année étendue
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
    [4] => FIELD_EXTENDED_YEAR
)

Après que l'année ait été vidée, la date reste la même
15/03/2013 00:00:00
car FIELD_EXTENDED_YEAR est toujours défini
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

bool(true)
Après que l'année étendue ait été vidée
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
)
15/03/1970 00:00:00

Après que les champs aient été recalculés,
 l'année étendue est de nouveau définie (à 1970)
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

Après l'appel d'une variante sans argument
Array
(
)
01/01/1970 00:00:00


Constructeur privé pour la désactivation de l'instanciation

  • « IntlCalendar::clear
  • IntlCalendar::createInstance »
  • PHP Manual
  • IntlCalendar
  • Constructeur privé pour la désactivation de l'instanciation

IntlCalendar::__construct

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::__construct — Constructeur privé pour la désactivation de l'instanciation

Description

private IntlCalendar::__construct ( void )

Un constructeur privé pour désactiver l'instanciation avec l'opérateur new.

Appelez plutôt la méthode IntlCalendar::createInstance().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Crée un nouvel objet IntlCalendar

  • « IntlCalendar::__construct
  • IntlCalendar::equals »
  • PHP Manual
  • IntlCalendar
  • Crée un nouvel objet IntlCalendar

IntlCalendar::createInstance

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::createInstance — Crée un nouvel objet IntlCalendar

Description

Style orienté objet

public static IntlCalendar IntlCalendar::createInstance ([ mixed $timeZone = NULL [, string $locale = "" ]] )

Style procédural

IntlCalendar intlcal_create_instance ([ mixed $timeZone = NULL [, string $locale = "" ]] )

En fournissant un fuseau horaire, et une locale, cette méthode crée un objet IntlCalendar. Cette méthode factorielle peut retourner une sous-classe de la classe IntlCalendar.

Le calendrier créé représentera l'instance du temps au moment où il a été créé, basé suivant le temps du système. Les champs peuvent être vidés avec la méthode IntCalendar::clear() sans argument. Voir aussi la méthode IntlGregorianCalendar::__construct().

Liste de paramètres

timeZone

Le fuseau horaire à utiliser.

  • NULL, in which case the default timezone will be used, as specified in the ini setting date.timezone or through the function date_default_timezone_set() and as returned by date_default_timezone_get().

  • An IntlTimeZone, which will be used directly.

  • A DateTimeZone. Its identifier will be extracted and an ICU timezone object will be created; the timezone will be backed by ICU's database, not PHP's.

  • A string, which should be a valid ICU timezone identifier. See IntlTimeZone::createTimeZoneIDEnumeration(). Raw offsets such as "GMT+08:30" are also accepted.

locale

Une locale à utiliser, ou NULL pour utiliser la locale par défaut.

Valeurs de retour

L'instance de l'objet IntlCalendar créé, ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec IntlCalendar::createInstance()

<?php
ini_set('intl.default_locale', 'es_ES');
ini_set('date.timezone', 'Europe/Madrid');

$cal = IntlCalendar::createInstance();
echo "Aucun argument\n";
var_dump(get_class($cal),
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";

echo "Fuseau horaire explicite\n";
$cal = IntlCalendar::createInstance(IntlTimeZone::getGMT());
var_dump(get_class($cal),
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";

echo "Locale explicite (avec le calendrier)\n";
$cal = IntlCalendar::createInstance(NULL, 'es_ES@calendar=persian');
var_dump(get_class($cal),
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));

L'exemple ci-dessus va afficher :

Aucun argument
string(21) "IntlGregorianCalendar"
string(68) "martes 18 de junio de 2013 14:11:02 Hora de verano de Europa Central"

Fuseau horaire explicite
string(21) "IntlGregorianCalendar"
string(45) "martes 18 de junio de 2013 12:11:02 GMT+00:00"

Locale explicite (avec le calendrier)
string(12) "IntlCalendar"
string(70) "martes 28 de Khordad de 1392 14:11:02 Hora de verano de Europa Central"

Voir aussi

  • IntlGregorianCalendar::__construct()


Vérifie si deux objets IntlCalendar sont égaux

  • « IntlCalendar::createInstance
  • IntlCalendar::fieldDifference »
  • PHP Manual
  • IntlCalendar
  • Vérifie si deux objets IntlCalendar sont égaux

IntlCalendar::equals

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::equals — Vérifie si deux objets IntlCalendar sont égaux

Description

Style orienté objet

public bool IntlCalendar::equals ( IntlCalendar $other )

Style procédural

bool intlcal_equals ( IntlCalendar $cal , IntlCalendar $other )

Retourne TRUE si ce calendrer et celui fourni ont le même temps. La configuration, le type de calendrier, et les statuts des champs ne doivent pas être forcément les mêmes.

Liste de paramètres

cal

La ressource IntlCalendar.

other

Le calendrier à comparer avec l'objet primaire.

Valeurs de retour

Retourne TRUE si le temps courantest identique à celui de l'objet IntlCalendar ou FALSE sinon. La valeur FALSE peut également être retournée en cas d'échec. Un échec ne peut survenir que si des arguments non valides sont passés. Dans tous les cas, les différents cas d'échec peuvent se distinguer en appelant la fonction intl_get_error_code().

Exemples

Exemple #1 Exemple avec IntlCalendar::equals()

<?php
ini_set('date.timezone', 'UTC');

$cal1 = IntlCalendar::createInstance(NULL, 'es_ES');
$cal2 = clone $cal1;

var_dump($cal1->equals($cal2)); //TRUE

//La locale n'est pas incluse dans la comparaison
$cal2 = IntlCalendar::createInstance(NULL, 'pt_PT');
$cal2->setTime($cal1->getTime());
var_dump($cal1->equals($cal2)); //TRUE

//Et les status des champs n'est pas non plus inclus
$cal2->clear(IntlCalendar::FIELD_YEAR);
var_dump($cal1->isSet(IntlCalendar::FIELD_YEAR) ==
        $cal2->isSet(IntlCalendar::FIELD_YEAR)); //FALSE
var_dump($cal1->equals($cal2)); //TRUE

//Ni le type de calendrier
$cal2 = IntlCalendar::createInstance(NULL, 'es_ES@calendar=islamic');
$cal2->setTime($cal1->getTime());
var_dump($cal1->equals($cal2)); //TRUE

//Seul le temps l'est
$cal2 = clone $cal1;
$cal2->setTime($cal1->getTime() + 1.);
var_dump($cal1->equals($cal2)); //FALSE


Calcule la différence entre le temps donné et le temps de l'objet

  • « IntlCalendar::equals
  • IntlCalendar::fromDateTime »
  • PHP Manual
  • IntlCalendar
  • Calcule la différence entre le temps donné et le temps de l'objet

IntlCalendar::fieldDifference

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::fieldDifference — Calcule la différence entre le temps donné et le temps de l'objet

Description

Style orienté objet

public int IntlCalendar::fieldDifference ( float $when , int $field )

Style procédural

int intlcal_field_difference ( IntlCalendar $cal , float $when , int $field )

Retourne la différence entre le temps donné et le temps de cet objet, en respectant la quantité spécifiée par le paramètre field.

Cette méthode est prévue pour être appelée successivement, tout d'abord avec le champ d'intérêt le plus significatif, puis avec le champ le moins significatif. A la fin, en guise d'effet de bord, la valeur du calendrier pour le champ spécifié sera avancée par la durée retournée.

Liste de paramètres

cal

La ressource IntlCalendar.

when

Le temps utilisé pour la comparaison avec la quantité représentée par le champ field. Pour que le résultat soit positif, le temps fourni dans ce paramètre doit être dans le futur par rapport au temps de l'objet de la méthode.

field

Le champ qui représente la quuantité à comparer.

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

Valeurs de retour

Retourne une différence (signée) de temps, en utilisant l'unité associée avec le champ spécifié ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec IntlCalendar::fieldDifference()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'fr_FR');

$cal1 = IntlCalendar::fromDateTime('2012-02-29 09:00:11');
$cal2 = IntlCalendar::fromDateTime('2013-03-01 09:19:29');
$time = $cal2->getTime();

echo "Temps, avant opération : ", IntlDateFormatter::formatObject($cal1), "\n";

printf(
    "La différence de temps est de %d année(s), %d month(s), "
  . "%d day(s), %d hour(s) and %d minute(s)\n",
    $cal1->fieldDifference($time, IntlCalendar::FIELD_YEAR),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_MONTH),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_DAY_OF_MONTH),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_HOUR_OF_DAY),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_MINUTE)
);

// maintenant, le temps cible a été avancé, sauf pour les secondes,
// pour lesquelles nous ne mesurons pas la différence
echo "Temps, après opération : ", IntlDateFormatter::formatObject($cal1), "\n";

L'exemple ci-dessus va afficher :

Temps, avant opération : 29 févr. 2012 09:00:11
La différence de temps est de 1 année(s), 0 mois, 1 jour(s), 0 heure(s) et 19 minute(s)
Temps, avant opération : 1 mars 2013 09:19:11


Create an IntlCalendar from a DateTime object or string

  • « IntlCalendar::fieldDifference
  • IntlCalendar::get »
  • PHP Manual
  • IntlCalendar
  • Create an IntlCalendar from a DateTime object or string

IntlCalendar::fromDateTime

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a2)

IntlCalendar::fromDateTime — Create an IntlCalendar from a DateTime object or string

Description

Style orienté objet

public static IntlCalendar IntlCalendar::fromDateTime ( mixed $dateTime )

Style procédural

IntlCalendar intlcal_from_date_time ( mixed $dateTime )

Creates an IntlCalendar object either from a DateTime object or from a string from which a DateTime object can be built.

The new calendar will represent not only the same instant as the given DateTime (subject to precision loss for dates very far into the past or future), but also the same timezone (subject to the caveat that different timezone databases will be used, and therefore the results may differ).

Liste de paramètres

dateTime

A DateTime object or a string that can be passed to DateTime::__construct().

Valeurs de retour

The created IntlCalendar object or NULL in case of failure. If a string is passed, any exception that occurs inside the DateTime constructor is propagated.

Exemples

Exemple #1 IntlCalendar::fromDateTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

//same as IntlCalendar::fromDateTime(new DateTime(...))
$cal1 = IntlCalendar::fromDateTime('2013-02-28 00:01:02 Europe/Berlin');

//Note the timezone is Europe/Berlin, not the default Europe/Lisbon
echo IntlDateFormatter::formatObject($cal1, 'yyyy MMMM d HH:mm:ss VVVV', 'de_DE'), "\n";

L'exemple ci-dessus va afficher :

2013 Februar 28 00:01:02 Deutschland Zeit


Récupère la valeur d'une propriété

  • « IntlCalendar::fromDateTime
  • IntlCalendar::getActualMaximum »
  • PHP Manual
  • IntlCalendar
  • Récupère la valeur d'une propriété

IntlCalendar::get

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::get — Récupère la valeur d'une propriété

Description

Style orienté objet

public int IntlCalendar::get ( int $field )

Style procédural

int intlcal_get ( IntlCalendar> $cal , int $field )

Récupère la valeur d'une propriété spécifique.

Liste de paramètres

cal

La ressource IntlCalendar.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

Valeurs de retour

Un entier contenant la valeur de la propriété.

Exemples

Exemple #1 IntlCalendar::get()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$class = new ReflectionClass('IntlCalendar');
$fields = array();
foreach ($class->getConstants() as $name => $val) {
    if (strpos($name, 'FIELD_') !== 0 || $val > 22)
        continue;
    $fields[$val] = $name;
}

$cal = IntlCalendar::createInstance(); // current time
var_dump(IntlDateFormatter::formatObject($cal));
foreach ($fields as $val => $name) {
    echo "$val ($name)", "\n    ", $cal->get($val), "\n";
}

L'exemple ci-dessus va afficher :

string(23) "Jul 1, 2013, 4:44:44 AM"
0 (FIELD_ERA)
    1
1 (FIELD_YEAR)
    2013
2 (FIELD_MONTH)
    6
3 (FIELD_WEEK_OF_YEAR)
    27
4 (FIELD_WEEK_OF_MONTH)
    1
5 (FIELD_DAY_OF_MONTH)
    1
6 (FIELD_DAY_OF_YEAR)
    182
7 (FIELD_DAY_OF_WEEK)
    2
8 (FIELD_DAY_OF_WEEK_IN_MONTH)
    1
9 (FIELD_AM_PM)
    0
10 (FIELD_HOUR)
    4
11 (FIELD_HOUR_OF_DAY)
    4
12 (FIELD_MINUTE)
    44
13 (FIELD_SECOND)
    44
14 (FIELD_MILLISECOND)
    551
15 (FIELD_ZONE_OFFSET)
    0
16 (FIELD_DST_OFFSET)
    3600000
17 (FIELD_YEAR_WOY)
    2013
18 (FIELD_DOW_LOCAL)
    2
19 (FIELD_EXTENDED_YEAR)
    2013
20 (FIELD_JULIAN_DAY)
    2456475
21 (FIELD_MILLISECONDS_IN_DAY)
    17084551
22 (FIELD_IS_LEAP_MONTH)
    0


The maximum value for a field, considering the object's current time

  • « IntlCalendar::get
  • IntlCalendar::getActualMinimum »
  • PHP Manual
  • IntlCalendar
  • The maximum value for a field, considering the object's current time

IntlCalendar::getActualMaximum

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getActualMaximum — The maximum value for a field, considering the object's current time

Description

Style orienté objet

public int IntlCalendar::getActualMaximum ( int $field )

Style procédural

int intlcal_get_actual_maximum ( IntlCalendar $cal , int $field )

Returns a field's relative maximum value around the current time. The exact semantics vary by field, but in the general case this is the value that would be obtained if one would set the field value into the smallest relative maximum for the field and would increment it until reaching the global maximum or the field value wraps around, in which the value returned would be the global maximum or the value before the wrapping, respectively.

For instance, in the gregorian calendar, the actual maximum value for the day of month would vary between 28 and 31, depending on the month and year of the current time.

Liste de paramètres

cal

The IntlCalendar resource.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

Valeurs de retour

An int representing the maximum value in the units associated with the given field ou FALSE si une erreur survient.

Exemples

Exemple #1 IntlCalendar::getActualMaximum()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

$cal = IntlCalendar::fromDateTime('2013-02-15');
var_dump($cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)); //28

$cal->add(IntlCalendar::FIELD_EXTENDED_YEAR, -1);
var_dump($cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)); //29

L'exemple ci-dessus va afficher :

int(28)
int(29)

Voir aussi

  • IntlCalendar::getMaximum() - Get the global maximum value for a field
  • IntlCalendar::getLeastMaximum() - Get the smallest local maximum for a field
  • IntlCalendar::getActualMinimum() - The minimum value for a field, considering the object's current time


The minimum value for a field, considering the object's current time

  • « IntlCalendar::getActualMaximum
  • IntlCalendar::getAvailableLocales »
  • PHP Manual
  • IntlCalendar
  • The minimum value for a field, considering the object's current time

IntlCalendar::getActualMinimum

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getActualMinimum — The minimum value for a field, considering the object's current time

Description

Style orienté objet

public int IntlCalendar::getActualMinimum ( int $field )

Style procédural

int intlcal_get_actual_minimum ( IntlCalendar $cal , int $field )

Returns a field's relative minimum value around the current time. The exact semantics vary by field, but in the general case this is the value that would be obtained if one would set the field value into the greatest relative minimum for the field and would decrement it until reaching the global minimum or the field value wraps around, in which the value returned would be the global minimum or the value before the wrapping, respectively.

For the Gregorian calendar, this is always the same as IntlCalendar::getMinimum().

Liste de paramètres

cal

The IntlCalendar resource.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

Valeurs de retour

An int representing the minimum value in the field's unit ou FALSE si une erreur survient.

Voir aussi

  • IntlCalendar::getMinimum() - Get the global minimum value for a field
  • IntlCalendar::getGreatestMinimum() - Get the largest local minimum value for a field
  • IntlCalendar::getActualMaximum() - The maximum value for a field, considering the object's current time


Get array of locales for which there is data

  • « IntlCalendar::getActualMinimum
  • IntlCalendar::getDayOfWeekType »
  • PHP Manual
  • IntlCalendar
  • Get array of locales for which there is data

IntlCalendar::getAvailableLocales

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getAvailableLocales — Get array of locales for which there is data

Description

Style orienté objet

public static array IntlCalendar::getAvailableLocales ( void )

Style procédural

array intlcal_get_available_locales ( void )

Gives the list of locales for which calendars are installed. As of ICU 51, this is the list of all installed ICU locales.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array of strings, one for which locale.

Exemples

Exemple #1 IntlCalendar::getAvailableLocales()()

<?php
print_r(IntlCalendar::getAvailableLocales());

L'exemple ci-dessus va afficher :

Array
(
    [0] => af
    [1] => af_NA
    [2] => af_ZA
    [3] => agq
    [4] => agq_CM
    [5] => ak
    [6] => ak_GH
    [7] => am
    [8] => am_ET
    [9] => ar
    [10] => ar_001
    [11] => ar_AE
    [12] => ar_BH
    [13] => ar_DJ
    … output abbreviated …
    [595] => zh_Hant_HK
    [596] => zh_Hant_MO
    [597] => zh_Hant_TW
    [598] => zu
    [599] => zu_ZA
)


Tell whether a day is a weekday, weekend or a day that has a transition between the two

  • « IntlCalendar::getAvailableLocales
  • IntlCalendar::getErrorCode »
  • PHP Manual
  • IntlCalendar
  • Tell whether a day is a weekday, weekend or a day that has a transition between the two

IntlCalendar::getDayOfWeekType

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getDayOfWeekType — Tell whether a day is a weekday, weekend or a day that has a transition between the two

Description

Style orienté objet

public int IntlCalendar::getDayOfWeekType ( int $dayOfWeek )

Style procédural

int intlcal_get_day_of_week_type ( IntlCalendar $cal , int $dayOfWeek )

Returns whether the passed day is a weekday (IntlCalendar::DOW_TYPE_WEEKDAY), a weekend day (IntlCalendar::DOW_TYPE_WEEKEND), a day during which a transition occurs into the weekend (IntlCalendar::DOW_TYPE_WEEKEND_OFFSET) or a day during which the weekend ceases (IntlCalendar::DOW_TYPE_WEEKEND_CEASE).

If the return is either
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
IntlCalendar::DOW_TYPE_WEEKEND_CEASE, then
IntlCalendar::getWeekendTransition() can be called to
obtain the time of the transition.

This function requires ICU 4.4 or later.

Liste de paramètres

cal

The IntlCalendar resource.

dayOfWeek

One of the constants IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, …,
IntlCalendar::DOW_SATURDAY.

Valeurs de retour

Returns one of the constants
IntlCalendar::DOW_TYPE_WEEKDAY,
IntlCalendar::DOW_TYPE_WEEKEND,
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
IntlCalendar::DOW_TYPE_WEEKEND_CEASE ou FALSE si une erreur survient.

Exemples

Exemple #1 IntlCalendar::getDayOfWeekType()

<?php

foreach (array('en_US', 'ar_SA') as $locale) {
    echo "Locale: ", Locale::getDisplayName($locale, "en_US"), "\n";

    $cal = IntlCalendar::createInstance('UTC', $locale);

    for ($i = IntlCalendar::DOW_SUNDAY; $i <= IntlCalendar::DOW_SATURDAY; $i++) {
        echo $i, " ", $cal->getDayOfWeekType($i), " ",
                $cal->getDayOfWeekType($i) >= IntlCalendar::DOW_TYPE_WEEKEND_OFFSET
                        ? $cal->getWeekendTransition($i)
                        : '',
                "\n";
    }
    echo "\n";
}

L'exemple ci-dessus va afficher :

Locale: English (United States)
1 3 86400000
2 0
3 0
4 0
5 0
6 0
7 1

Locale: Arabic (Saudi Arabia)
1 0
2 0
3 0
4 0
5 1
6 3 86400000
7 0


Get last error code on the object

  • « IntlCalendar::getDayOfWeekType
  • IntlCalendar::getErrorMessage »
  • PHP Manual
  • IntlCalendar
  • Get last error code on the object

IntlCalendar::getErrorCode

intlcal_get_error_code

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getErrorCode -- intlcal_get_error_code — Get last error code on the object

Description

Style orienté objet (method):

public int IntlCalendar::getErrorCode ( void )

Style procédural:

int intlcal_get_error_code ( IntlCalendar $calendar )

Returns the numeric ICU error code for the last call on this object (including cloning) or the IntlCalendar given for the calendar parameter (in the procedural?style version). This may indicate only a warning (negative error code) or no error at all (U_ZERO_ERROR). The actual presence of an error can be tested with intl_is_failure().

Invalid arguments detected on the PHP side (before invoking functions of the ICU library) are not recorded for the purposes of this function.

The last error that occurred in any call to a function of the intl extension, including early argument errors, can be obtained with intl_get_error_code(). This function resets the global error code, but not the object's error code.

Liste de paramètres

calendar

The calendar object, on the procedural style interface.

Valeurs de retour

An ICU error code indicating either success, failure or a warning.

Exemples

Exemple #1 IntlCalendar::getErrorCode() and IntlCalendar::getErrorMessage()

<?php
ini_set("intl.error_level", E_WARNING);
ini_set("intl.default_locale", "nl");

$intlcal = new IntlGregorianCalendar(2012, 1, 29);
var_dump(
    $intlcal->getErrorCode(),
    $intlcal->getErrorMessage()
);
$intlcal->fieldDifference(-1e100, IntlCalendar::FIELD_SECOND);

var_dump(
    $intlcal->getErrorCode(),
    $intlcal->getErrorMessage()
);

L'exemple ci-dessus va afficher :

int(0)
string(12) "U_ZERO_ERROR"

Warning: IntlCalendar::fieldDifference(): intlcal_field_difference: Call to ICU method has failed in /home/glopes/php/ws/example.php on line 10
int(1)
string(81) "intlcal_field_difference: Call to ICU method has failed: U_ILLEGAL_ARGUMENT_ERROR"

Voir aussi

  • IntlCalendar::getErrorMessage() - Get last error message on the object
  • intl_is_failure() - Vérifie si un code d'erreur indique un échec
  • intl_error_name() - Lit le nom symbolique d'un code d'erreur donné
  • intl_get_error_code() - Lit le dernier code d'erreur
  • intl_get_error_message() - Lit la description de la dernière erreur


Get last error message on the object

  • « IntlCalendar::getErrorCode
  • IntlCalendar::getFirstDayOfWeek »
  • PHP Manual
  • IntlCalendar
  • Get last error message on the object

IntlCalendar::getErrorMessage

intlcal_get_error_message

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getErrorMessage -- intlcal_get_error_message — Get last error message on the object

Description

Style orienté objet (method):

public string IntlCalendar::getErrorMessage ( void )

Style procédural:

string intlcal_get_error_message ( IntlCalendar $calendar )

Returns the error message (if any) associated with the error reported by IntlCalendar::getErrorCode() or intlcal_get_error_code(). If there is no associated error message, only the string representation of the name of the error constant will be returned. Otherwise, the message also includes a message set on the side of the PHP binding.

Liste de paramètres

calendar

The calendar object, on the procedural style interface.

Valeurs de retour

The error message associated with last error that occurred in a function call on this object, or a string indicating the non-existance of an error.

Exemples

Exemple #1 IntlCalendar::getErrorMessage()

<?php
$cal = IntlCalendar::createInstance('UTC', 'en_US');
var_dump($cal->getErrorMessage());

$cal->getWeekendTransition(IntlCalendar::DOW_WEDNESDAY);
var_dump($cal->getErrorMessage());

L'exemple ci-dessus va afficher :

string(12) "U_ZERO_ERROR"
string(82) "intlcal_get_weekend_transition: Error calling ICU method: U_ILLEGAL_ARGUMENT_ERROR"


Get the first day of the week for the calendar's locale

  • « IntlCalendar::getErrorMessage
  • IntlCalendar::getGreatestMinimum »
  • PHP Manual
  • IntlCalendar
  • Get the first day of the week for the calendar's locale

IntlCalendar::getFirstDayOfWeek

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getFirstDayOfWeek — Get the first day of the week for the calendar's locale

Description

Style orienté objet

public int IntlCalendar::getFirstDayOfWeek ( void )

Style procédural

int intlcal_get_first_day_of_week ( IntlCalendar $cal )

The week day deemed to start a week, either the default value for this locale or the value set with IntlCalendar::setFirstDayOfWeek().

Liste de paramètres

cal

The IntlCalendar resource.

Valeurs de retour

One of the constants IntlCalendar::DOW_SUNDAY, IntlCalendar::DOW_MONDAY, …, IntlCalendar::DOW_SATURDAY ou FALSE si une erreur survient.

Exemples

Exemple #1 IntlCalendar::getFirstDayOfWeek()

<?php
ini_set('date.timezone', 'UTC');

$cal1 = IntlCalendar::createInstance(NULL, 'es_ES');
var_dump($cal1->getFirstDayOfWeek()); // Monday
$cal1->set(2013, 1 /* February */, 3); // a Sunday
var_dump($cal1->get(IntlCalendar::FIELD_WEEK_OF_YEAR)); // 5

$cal2 = IntlCalendar::createInstance(NULL, 'en_US');
var_dump($cal2->getFirstDayOfWeek()); // Sunday
$cal2->set(2013, 1 /* February */, 3); // a Sunday
var_dump($cal2->get(IntlCalendar::FIELD_WEEK_OF_YEAR)); // 6

L'exemple ci-dessus va afficher :

int(2)
int(5)
int(1)
int(6)

Voir aussi

  • IntlCalendar::setFirstDayOfWeek() - Défini le jour de début de la semaine


Get the largest local minimum value for a field

  • « IntlCalendar::getFirstDayOfWeek
  • IntlCalendar::getKeywordValuesForLocale »
  • PHP Manual
  • IntlCalendar
  • Get the largest local minimum value for a field

IntlCalendar::getGreatestMinimum

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getGreatestMinimum — Get the largest local minimum value for a field

Description

Style orienté objet

public int IntlCalendar::getGreatestMinimum ( int $field )

Style procédural

int intlcal_get_greatest_minimum ( IntlCalendar $cal , int $field )

Returns the largest local minimum for a field. This should be a value larger or equal to that returned by IntlCalendar::getActualMinimum(), which is in its turn larger or equal to that returned by IntlCalendar::getMinimum(). All these three functions return the same value for the Gregorian calendar.

Liste de paramètres

cal

The IntlCalendar resource.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

Valeurs de retour

An int representing a field value, in the field's unit, ou FALSE si une erreur survient.


Get set of locale keyword values

  • « IntlCalendar::getGreatestMinimum
  • IntlCalendar::getLeastMaximum »
  • PHP Manual
  • IntlCalendar
  • Get set of locale keyword values

IntlCalendar::getKeywordValuesForLocale

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getKeywordValuesForLocale — Get set of locale keyword values

Description

Style orienté objet

public static Iterator IntlCalendar::getKeywordValuesForLocale ( string $key , string $locale , boolean $commonlyUsed )

Style procédural

Iterator intlcal_get_keyword_values_for_locale ( string $key , string $locale , boolean $commonlyUsed )

For a given locale key, get the set of values for that key that would result in a different behavior. For now, only the 'calendar' keyword is supported.

This function requires ICU 4.2 or later.

Liste de paramètres

key

The locale keyword for which relevant values are to be queried. Only 'calendar' is supported.

locale

The locale onto which the keyword/value pair are to be appended.

commonlyUsed

Whether to show only the values commonly used for the specified locale.

Valeurs de retour

An iterator that yields strings with the locale keyword values ou FALSE si une erreur survient.

Exemples

Exemple #1 IntlCalendar::getKeyworkValuesForLocale()

<?php
print_r(
        iterator_to_array(
                IntlCalendar::getKeywordValuesForLocale(
                        'calendar', 'fa_IR', true)));
print_r(
        iterator_to_array(
                IntlCalendar::getKeywordValuesForLocale(
                        'calendar', 'fa_IR', false)));

L'exemple ci-dessus va afficher :

Array
(
    [0] => persian
    [1] => gregorian
    [2] => islamic
    [3] => islamic-civil
)
Array
(
    [0] => persian
    [1] => gregorian
    [2] => islamic
    [3] => islamic-civil
    [4] => japanese
    [5] => buddhist
    [6] => roc
    [7] => hebrew
    [8] => chinese
    [9] => indian
    [10] => coptic
    [11] => ethiopic
    [12] => ethiopic-amete-alem
)


Get the smallest local maximum for a field

  • « IntlCalendar::getKeywordValuesForLocale
  • IntlCalendar::getLocale »
  • PHP Manual
  • IntlCalendar
  • Get the smallest local maximum for a field

IntlCalendar::getLeastMaximum

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getLeastMaximum — Get the smallest local maximum for a field

Description

Style orienté objet

public int IntlCalendar::getLeastMaximum ( int $field )

Style procédural

int intlcal_get_least_maximum ( IntlCalendar $cal , int $field )

Returns the smallest local maximumw for a field. This should be a value smaller or equal to that returned by IntlCalendar::getActualMaxmimum(), which is in its turn smaller or equal to that returned by IntlCalendar::getMaximum().

Liste de paramètres

cal

The IntlCalendar resource.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

Valeurs de retour

An int representing a field value in the field's unit ou FALSE si une erreur survient.

Exemples

Exemple #1 Maxima examples

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'it_IT');

$cal = new IntlGregorianCalendar(2013, 3 /* April */, 6);
var_dump(
    $cal->getLeastMaximum(IntlCalendar::FIELD_DAY_OF_MONTH),  // 28
    $cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH), // 30
    $cal->getMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)        // 31
);

L'exemple ci-dessus va afficher :

int(28)
int(30)
int(31)

Voir aussi

  • IntlCalendar::getActualMaximum() - The maximum value for a field, considering the object's current time
  • IntlCalendar::getMaximum() - Get the global maximum value for a field
  • IntlCalendar::getGreatestMinimum() - Get the largest local minimum value for a field


Get the locale associated with the object

  • « IntlCalendar::getLeastMaximum
  • IntlCalendar::getMaximum »
  • PHP Manual
  • IntlCalendar
  • Get the locale associated with the object

IntlCalendar::getLocale

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getLocale — Get the locale associated with the object

Description

Style orienté objet

public string IntlCalendar::getLocale ( int $localeType )

Style procédural

string intlcal_get_locale ( IntlCalendar $cal , int $localeType )

Returns the locale used by this calendar object.

Liste de paramètres

cal

The IntlCalendar resource.

localeType

Whether to fetch the actual locale (the locale from which the calendar data originates, with Locale::ACTUAL_LOCALE) or the valid locale, i.e., the most specific locale supported by ICU relatively to the requested locale – see Locale::VALID_LOCALE. From the most general to the most specific, the locales are ordered in this fashion – actual locale, valid locale, requested locale.

Valeurs de retour

A locale string ou FALSE si une erreur survient.

Exemples

Exemple #1 IntlCalendar::getLocale()

<?php
$cal = IntlCalendar::createInstance(IntlTimeZone::getGMT(), 'en_US_CALIFORNIA');
var_dump(
    $cal->getLocale(Locale::ACTUAL_LOCALE),
    $cal->getLocale(Locale::VALID_LOCALE)
);

L'exemple ci-dessus va afficher :

string(2) "en"
string(5) "en_US"


Get the global maximum value for a field

  • « IntlCalendar::getLocale
  • IntlCalendar::getMinimalDaysInFirstWeek »
  • PHP Manual
  • IntlCalendar
  • Get the global maximum value for a field

IntlCalendar::getMaximum

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getMaximum — Get the global maximum value for a field

Description

Style orienté objet

public int IntlCalendar::getMaximum ( int $field )

Style procédural

int intlcal_get_maximum ( IntlCalendar $cal , int $field )

Gets the global maximum for a field, in this specific calendar. This value is larger or equal to that returned by IntlCalendar::getActualMaximum(), which is in its turn larger or equal to that returned by IntlCalendar::getLeastMaximum().

Liste de paramètres

cal

The IntlCalendar resource.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

Valeurs de retour

An int representing a field value in the field's unit ou FALSE si une erreur survient.

Voir aussi

  • IntlCalendar::getActualMaximum() - The maximum value for a field, considering the object's current time
  • IntlCalendar::getLeastMaximum() - Get the smallest local maximum for a field
  • IntlCalendar::getMinimum() - Get the global minimum value for a field


Get minimal number of days the first week in a year or month can have

  • « IntlCalendar::getMaximum
  • IntlCalendar::getMinimum »
  • PHP Manual
  • IntlCalendar
  • Get minimal number of days the first week in a year or month can have

IntlCalendar::getMinimalDaysInFirstWeek

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getMinimalDaysInFirstWeek — Get minimal number of days the first week in a year or month can have

Description

Style orienté objet

public int IntlCalendar::getMinimalDaysInFirstWeek ( void )

Style procédural

int intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal )

Returns the smallest number of days the first week of a year or month must have in the new year or month. For instance, in the Gregorian calendar, if this value is 1, then the first week of the year will necessarily include January 1st, while if this value is 7, then the week with January 1st will be the first week of the year only if the day of the week for January 1st matches the day of the week returned by IntlCalendar::getFirstDayOfWeek(); otherwise it will be the previous year's last week.

Liste de paramètres

cal

The IntlCalendar resource.

Valeurs de retour

An int representing a number of days ou FALSE si une erreur survient.

Exemples

Exemple #1 IntlCalendar::getMinimalDaysInFirstWeek()

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'en_US');

$cal = new IntlGregorianCalendar(2013, 0 /* January */, 2);
var_dump(IntlDateFormatter::formatObject($cal, 'cccc')); // Wednesday

var_dump($cal->getMinimalDaysInFirstWeek(), // 1
$cal->getFirstDayofWeek()); // 1 (Sunday)

// Week 1 of 2013
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

$cal->setMinimalDaysInFirstWeek(4);
// Still Week 1 of 2013 (1st week has 5 days in the new year)
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

$cal->setMinimalDaysInFirstWeek(6);
// Week 53 of 2012
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

L'exemple ci-dessus va afficher :

string(9) "Wednesday"
int(1)
int(1)
string(14) "Week 1 of 2013"
string(14) "Week 1 of 2013"
string(15) "Week 53 of 2012"


Get the global minimum value for a field

  • « IntlCalendar::getMinimalDaysInFirstWeek
  • IntlCalendar::getNow »
  • PHP Manual
  • IntlCalendar
  • Get the global minimum value for a field

IntlCalendar::getMinimum

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getMinimum — Get the global minimum value for a field

Description

Style orienté objet

public int IntlCalendar::getMinimum ( int $field )

Style procédural

int intlcal_get_minimum ( IntlCalendar $cal , int $field )

Gets the global minimum for a field, in this specific calendar. This value is smaller or equal to that returned by IntlCalendar::getActualMinimum(), which is in its turn smaller or equal to that returned by IntlCalendar::getGreatestMinimum(). For the Gregorian calendar, these three functions always return the same value (for each field).

Liste de paramètres

cal

The IntlCalendar resource.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

Valeurs de retour

An int representing a value for the given field in the field's unit ou FALSE si une erreur survient.


Récupère le nombre représentant la date courante

  • « IntlCalendar::getMinimum
  • IntlCalendar::getRepeatedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Récupère le nombre représentant la date courante

IntlCalendar::getNow

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getNow — Récupère le nombre représentant la date courante

Description

Style orienté objet

public static float IntlCalendar::getNow ( void )

Style procédural

float intlcal_get_now ( void )

Le nombre de millisecondes qui s'est écoulé depuis la date de référence. Ce nombre est dérivé depuis le temps système.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un nombre à virgule flottante représentant un nombre de millisecondes depuis l'époque, sans compter les secondes intercalaires.

Exemples

Exemple #1 Exemple avec IntlCalendar::getNow()

<?php
$formatter = IntlDateFormatter::create('es_ES',
        IntlDateFormatter::FULL,
        IntlDateFormatter::FULL,
        'Europe/Madrid');

$val = IntlCalendar::getNow();

var_dump($val);
echo $formatter->format(IntlCalendar::getNow() / 1000.), "\n";

L'exemple ci-dessus va afficher :

float(1371425814666)
lunes, 17 de junio de 2013 01:36:54 Hora de verano de Europa central


Get behavior for handling repeating wall time

  • « IntlCalendar::getNow
  • IntlCalendar::getSkippedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Get behavior for handling repeating wall time

IntlCalendar::getRepeatedWallTimeOption

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getRepeatedWallTimeOption — Get behavior for handling repeating wall time

Description

Style orienté objet

public int IntlCalendar::getRepeatedWallTimeOption ( void )

Style procédural

int intlcal_get_repeated_wall_time_option ( IntlCalendar $cal )

Gets the current strategy for dealing with wall times that are repeated whenever the clock is set back during dailight saving time end transitions. The default value is IntlCalendar::WALLTIME_LAST.

This function requires ICU 4.9 or later.

Liste de paramètres

cal

The IntlCalendar resource.

Valeurs de retour

One of the constants IntlCalendar::WALLTIME_FIRST or IntlCalendar::WALLTIME_LAST.

Exemples

Exemple #1 IntlCalendar::getRepeatedWallTimeOption()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');
ini_set('intl.error_level', E_WARNING);

//On October 27th at 0200, the clock goes back 1 hour and from GMT+01 to GMT+00
$cal = new IntlGregorianCalendar(2013, 9 /* October */, 27, 1, 30);

var_dump($cal->getRepeatedWalltimeOption()); // 0 WALLTIME_LAST

$formatter = IntlDateFormatter::create(
    NULL,
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'UTC'
);
var_dump($formatter->format($cal->getTime() / 1000.));

$cal->setRepeatedWalltimeOption(IntlCalendar::WALLTIME_FIRST);
var_dump($cal->getRepeatedWalltimeOption()); // 1 WALLTIME_FIRST
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000.));

L'exemple ci-dessus va afficher :

int(0)
string(42) "Sunday, October 27, 2013 at 1:30:00 AM GMT"
int(1)
string(43) "Sunday, October 27, 2013 at 12:30:00 AM GMT"

Voir aussi

  • IntlCalendar::getSkippedWallTimeOption() - Get behavior for handling skipped wall time
  • IntlCalendar::setSkippedWallTimeOption() - Set behavior for handling skipped wall times at positive timezone offset transitions
  • IntlCalendar::setRepeatedWallTimeOption() - Set behavior for handling repeating wall times at negative timezone offset transitions


Get behavior for handling skipped wall time

  • « IntlCalendar::getRepeatedWallTimeOption
  • IntlCalendar::getTime »
  • PHP Manual
  • IntlCalendar
  • Get behavior for handling skipped wall time

IntlCalendar::getSkippedWallTimeOption

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getSkippedWallTimeOption — Get behavior for handling skipped wall time

Description

Style orienté objet

public int IntlCalendar::getSkippedWallTimeOption ( void )

Style procédural

int intlcal_get_skipped_wall_time_option ( IntlCalendar $cal )

Gets the current strategy for dealing with wall times that are skipped whenever the clock is forwarded during dailight saving time start transitions. The default value is IntlCalendar::WALLTIME_LAST.

The calendar must be lenient for this option to have any effect, otherwise attempting to set a non-existing time will cause an error.

This function requires ICU 4.9 or later.

Liste de paramètres

cal

The IntlCalendar resource.

Valeurs de retour

One of the constants IntlCalendar::WALLTIME_FIRST,
IntlCalendar::WALLTIME_LAST or
IntlCalendar::WALLTIME_NEXT_VALID.

Exemples

Exemple #1 IntlCalendar::getSkippedWallTimeOption()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');
ini_set('intl.error_level', E_WARNING);

//On March 31st at 0100, the clock goes forward 1 hour and from GMT+00 to GMT+01
$cal = new IntlGregorianCalendar(2013, 2 /* March */, 31, 1, 30);

var_dump(
    $cal->isLenient(),               // true
    $cal->getSkippedWalltimeOption() // 0 WALLTIME_LAST
);

$formatter = IntlDateFormatter::create(
    NULL,
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'UTC'
);
var_dump($formatter->format($cal->getTime() / 1000));

$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_FIRST);
var_dump($cal->getSkippedWalltimeOption()); // 1 WALLTIME_FIRST
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000));

$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_NEXT_VALID);
var_dump($cal->getSkippedWalltimeOption()); // 2 WALLTIME_NEXT_VALID
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000));

L'exemple ci-dessus va afficher :

bool(true)
int(0)
string(40) "Sunday, March 31, 2013 at 1:30:00 AM GMT"
int(1)
string(41) "Sunday, March 31, 2013 at 12:30:00 AM GMT"
int(2)
string(40) "Sunday, March 31, 2013 at 1:00:00 AM GMT"

Voir aussi

  • IntlCalendar::getRepeatedWallTimeOption() - Get behavior for handling repeating wall time
  • IntlCalendar::setSkippedWallTimeOption() - Set behavior for handling skipped wall times at positive timezone offset transitions
  • IntlCalendar::setRepeatedWallTimeOption() - Set behavior for handling repeating wall times at negative timezone offset transitions


Get time currently represented by the object

  • « IntlCalendar::getSkippedWallTimeOption
  • IntlCalendar::getTimeZone »
  • PHP Manual
  • IntlCalendar
  • Get time currently represented by the object

IntlCalendar::getTime

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getTime — Get time currently represented by the object

Description

Style orienté objet

public float IntlCalendar::getTime ( void )

Style procédural

float intlcal_get_time ( IntlCalendar $cal )

Returns the time associated with this object, expressed as the number of milliseconds since the epoch.

Liste de paramètres

cal

The IntlCalendar resource.

Valeurs de retour

A float representing the number of milliseconds elapsed since the reference time (1 Jan 1970 00:00:00 UTC).

Exemples

Exemple #1 IntlCalendar::getTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$cal = new IntlGregorianCalendar(2013, 4 /* May */, 1, 0, 0, 0);
$time = $cal->getTime();
var_dump($time, $time / 1000 == strtotime('2013-05-01 00:00:00')); //true

L'exemple ci-dessus va afficher :

float(1367362800000)
bool(true)

Voir aussi

  • IntlCalendar::getNow() - Récupère le nombre représentant la date courante


Récupère le fuseau horaire de l'objet

  • « IntlCalendar::getTime
  • IntlCalendar::getType »
  • PHP Manual
  • IntlCalendar
  • Récupère le fuseau horaire de l'objet

IntlCalendar::getTimeZone

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getTimeZone — Récupère le fuseau horaire de l'objet

Description

Style orienté objet

public IntlTimeZone IntlCalendar::getTimeZone ( void )

Style procédural

IntlTimeZone intlcal_get_time_zone ( IntlCalendar $cal )

Retourne l'objet IntlTimeZone associé avec ce calendrier.

Liste de paramètres

cal

La ressource IntlCalendar.

Valeurs de retour

Un objet IntlTimeZone correspondant à celui utilisé en interne de cet objet.

Exemples

Exemple #1 Exemple avec IntlCalendar::getTimeZone()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$cal = IntlCalendar::createInstance();
print_r($cal->getTimeZone());

$cal->setTimeZone('UTC');
print_r($cal->getTimeZone());

$cal = IntlCalendar::fromDateTime('2012-01-01 00:00:00 GMT+03:33');
print_r($cal->getTimeZone());

L'exemple ci-dessus va afficher :

IntlTimeZone Object
(
    [valid] => 1
    [id] => Europe/Lisbon
    [rawOffset] => 0
    [currentOffset] => 3600000
)
IntlTimeZone Object
(
    [valid] => 1
    [id] => UTC
    [rawOffset] => 0
    [currentOffset] => 0
)
IntlTimeZone Object
(
    [valid] => 1
    [id] => GMT+03:33
    [rawOffset] => 12780000
    [currentOffset] => 12780000
)

Voir aussi

  • IntlCalendar::setTimeZone() - Défini le fuseau horaire utilisé par ce calendrier
  • IntlCalendar::createInstance() - Crée un nouvel objet IntlCalendar
  • IntlGregorianCalendar::__construct()


Récupère le type de calendrier

  • « IntlCalendar::getTimeZone
  • IntlCalendar::getWeekendTransition »
  • PHP Manual
  • IntlCalendar
  • Récupère le type de calendrier

IntlCalendar::getType

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getType — Récupère le type de calendrier

Description

Style orienté objet

public string IntlCalendar::getType ( void )

Style procédural

string intlcal_get_type ( IntlCalendar $cal )

Une chaîne de caractères décrivant le type de ce calendrier. Cette chaîne sera une parmi les valeurs valides du mot clé 'calendar' du calendrier.

Liste de paramètres

cal

La ressource IntlCalendar.

Valeurs de retour

Une chaîne de caractères string représentant le type de calendrier, par exemple, 'gregorian', 'islamic', etc.

Exemples

Exemple #1 Exemple avec IntlCalendar::getType()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$cal = IntlCalendar::createInstance(NULL, '@calendar=ethiopic-amete-alem');
var_dump($cal->getType());

$cal = new IntlGregorianCalendar();
var_dump($cal->getType());

L'exemple ci-dessus va afficher :

string(19) "ethiopic-amete-alem"
string(9) "gregorian"


Get time of the day at which weekend begins or ends

  • « IntlCalendar::getType
  • IntlCalendar::inDaylightTime »
  • PHP Manual
  • IntlCalendar
  • Get time of the day at which weekend begins or ends

IntlCalendar::getWeekendTransition

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getWeekendTransition — Get time of the day at which weekend begins or ends

Description

Style orienté objet

public int IntlCalendar::getWeekendTransition ( string $dayOfWeek )

Style procédural

int intlcal_get_weekend_transition ( IntlCalendar $cal , string $dayOfWeek )

Returns the number of milliseconds after midnight at which the weekend begins or ends.

This is only applicable for days of the week for which
IntlCalendar::getDayOfWeekType() returns either
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
IntlCalendar::DOW_TYPE_WEEKEND_CEASE. Calling this
function for other days of the week is an error condition.

This function requires ICU 4.4 or later.

Liste de paramètres

cal

The IntlCalendar resource.

dayOfWeek

One of the constants IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, …,
IntlCalendar::DOW_SATURDAY.

Valeurs de retour

The number of milliseconds into the day at which the weekend begins or ends ou FALSE si une erreur survient.

Exemples

See example on IntlCalendar::getDayOfWeekType().


Whether the object's time is in Daylight Savings Time

  • « IntlCalendar::getWeekendTransition
  • IntlCalendar::isEquivalentTo »
  • PHP Manual
  • IntlCalendar
  • Whether the object's time is in Daylight Savings Time

IntlCalendar::inDaylightTime

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::inDaylightTime — Whether the object's time is in Daylight Savings Time

Description

Style orienté objet

public bool IntlCalendar::inDaylightTime ( void )

Style procédural

bool intlcal_in_daylight_time ( IntlCalendar $cal )

Whether, for the instant represented by this object and for this object's timezone, daylight saving time is in place.

Liste de paramètres

cal

The IntlCalendar resource.

Valeurs de retour

Returns TRUE if the date is in Daylight Savings Time, FALSE otherwise. The value FALSE may also be returned on failure, for instance after specifying invalid field values on non-lenient mode; use exceptions or query intl_get_error_code() to disambiguate.

Exemples

Exemple #1 IntlCalendar::inDaylightTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1, 4, 56, 31);
var_dump($cal->inDaylightTime()); // true
$cal->set(IntlCalendar::FIELD_MONTH, 11 /* December */);
var_dump($cal->inDaylightTime()); // false

//DST end transition on 2013-10-27 at 0200 (wall time back 1 hour)
$cal = new IntlGregorianCalendar(2013, 9 /* October */, 27, 1, 30, 0);

var_dump($cal->inDaylightTime()); // false (default WALLTIME_LAST)

$cal->setRepeatedWallTimeOption(IntlCalendar::WALLTIME_FIRST);
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1); // force time recalculation
var_dump($cal->inDaylightTime()); // true


Whether another calendar is equal but for a different time

  • « IntlCalendar::inDaylightTime
  • IntlCalendar::isLenient »
  • PHP Manual
  • IntlCalendar
  • Whether another calendar is equal but for a different time

IntlCalendar::isEquivalentTo

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isEquivalentTo — Whether another calendar is equal but for a different time

Description

Style orienté objet

public bool IntlCalendar::isEquivalentTo ( IntlCalendar $other )

Style procédural

bool intlcal_is_equivalent_to ( IntlCalendar $cal , IntlCalendar $other )

Returns whether this and the given object are equivalent for all purposes except as to the time they have set. The locales do not have to match, as long as no change in behavior results from such mismatch. This includes the timezone, whether the lenient mode is set, the repeated and skipped wall time settings, the days of the week when the weekend starts and ceases and the times where such transitions occur. It may also include other calendar specific settings, such as the Gregorian/Julian transition instant.

Liste de paramètres

cal

The IntlCalendar resource.

other

The other calendar against which the comparison is to be made.

Valeurs de retour

Assuming there are no argument errors, returns TRUE iif the calendars are equivalent except possibly for their set time.

Exemples

Exemple #1 IntlCalendar::isEquivalentTo()

<?php
$cal1 = IntlCalendar::createInstance('Europe/Lisbon', 'pt_PT');
$cal2 = IntlCalendar::createInstance('Europe/Lisbon', 'es_ES');
$cal2->clear();

var_dump($cal1->isEquivalentTo($cal2)); // true

$cal3 = IntlCalendar::createInstance('Europe/Lisbon', 'en_US');
var_dump($cal1->isEquivalentTo($cal3)); // false
var_dump($cal1->getFirstDayOfWeek(),    // 2 (Monday)
$cal3->getFirstDayOfWeek());            // 1 (Sunday)

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
int(2)
int(1)

Voir aussi

  • IntlCalendar::equals() - Vérifie si deux objets IntlCalendar sont égaux


Whether date/time interpretation is in lenient mode

  • « IntlCalendar::isEquivalentTo
  • IntlCalendar::isSet »
  • PHP Manual
  • IntlCalendar
  • Whether date/time interpretation is in lenient mode

IntlCalendar::isLenient

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isLenient — Whether date/time interpretation is in lenient mode

Description

Style orienté objet

public bool IntlCalendar::isLenient ( void )

Style procédural

bool intlcal_is_lenient ( IntlCalendar $cal )

Returns whether the current date/time interpretations is lenient (the default). If that is case, some out of range values for fields will be accepted instead of raising an error.

Liste de paramètres

cal

The IntlCalendar resource.

Valeurs de retour

A bool representing whether the calendar is set to lenient mode.

Exemples

Exemple #1 IntlCalendar::isLenient()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');
ini_set('intl.use_exceptions', '1');

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
var_dump(IntlDateFormatter::formatObject($cal), // 01/07/2013, 00:00:00
$cal->isLenient()); // true

$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 33);
var_dump(IntlDateFormatter::formatObject($cal)); // 02/08/2013, 00:00:00

$cal->setLenient(false);
var_dump($cal->isLenient()); // false
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 33);
var_dump(IntlDateFormatter::formatObject($cal)); // error

L'exemple ci-dessus va afficher :

string(20) "01/07/2013, 00:00:00"
bool(true)
string(20) "02/08/2013, 00:00:00"
bool(false)

Fatal error: Uncaught exception 'IntlException' with message 'datefmt_format_object: error obtaining instant from IntlCalendar' in /home/foobar/example.php:16
Stack trace:
#0 /home/foobar/example.php(16): IntlDateFormatter::formatObject(Object(IntlGregorianCalendar))
#1 {main}
  thrown in /home/foobar/example.php on line 16


Whether a field is set

  • « IntlCalendar::isLenient
  • IntlCalendar::isWeekend »
  • PHP Manual
  • IntlCalendar
  • Whether a field is set

IntlCalendar::isSet

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isSet — Whether a field is set

Description

Style orienté objet

public bool IntlCalendar::isSet ( int $field )

Style procédural

bool intlcal_is_set ( IntlCalendar $cal , int $field )

Returns whether a field is set (as opposed to clear). Set fields take priority over unset fields and their default values when the date/time is being calculated. Fields set later take priority over fields set earlier.

Liste de paramètres

cal

The IntlCalendar resource.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

Valeurs de retour

Assuming there are no argument errors, returns TRUE iif the field is set.

Exemples

See the example on IntlCalendar::clear().

Voir aussi

  • IntlCalendar::clear() - Vide un ou tous les champs
  • IntlCalendar::set() - Set a time field or several common fields at once


Whether a certain date/time is in the weekend

  • « IntlCalendar::isSet
  • IntlCalendar::roll »
  • PHP Manual
  • IntlCalendar
  • Whether a certain date/time is in the weekend

IntlCalendar::isWeekend

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isWeekend — Whether a certain date/time is in the weekend

Description

Style orienté objet

public bool IntlCalendar::isWeekend ([ float $date = NULL ] )

Style procédural

bool intlcal_is_weekend ( IntlCalendar $cal [, float $date = NULL ] )

Returns whether either the obejct's current time or the provided timestamp occur during a weekend in this object's calendar system.

This function requires ICU 4.4 or later.

Liste de paramètres

cal

The IntlCalendar resource.

date

An optional timestamp representing the number of milliseconds since the epoch, excluding leap seconds. If NULL, this object's current time is used instead.

Valeurs de retour

A bool indicating whether the given or this object's time occurs in a weekend.

The value FALSE may also be returned on failure, for instance after giving a date out of bounds on non-lenient mode; use exceptions or query intl_get_error_code() to disambiguate.

Exemples

Exemple #1 IntlCalendar::isWeekend()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

$cal = new IntlGregorianCalendar(NULL, 'en_US');
$cal->set(2013, 6 /* July */, 7); // a Sunday

var_dump($cal->isWeekend()); // true
var_dump($cal->isWeekend(strtotime('2013-07-01 00:00:00'))); // false, Monday

$cal = new IntlGregorianCalendar(NULL, 'ar_SA');
$cal->set(2013, 6 /* July */, 7); // a Sunday
var_dump($cal->isWeekend()); // false, Sunday not in weekend in this calendar

Voir aussi

  • IntlCalendar::getDayOfWeekType() - Tell whether a day is a weekday, weekend or a day that has a transition between the two
  • IntlCalendar::getWeekendTransition() - Get time of the day at which weekend begins or ends


Add value to field without carrying into more significant fields

  • « IntlCalendar::isWeekend
  • IntlCalendar::set »
  • PHP Manual
  • IntlCalendar
  • Add value to field without carrying into more significant fields

IntlCalendar::roll

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::roll — Add value to field without carrying into more significant fields

Description

Style orienté objet

public bool IntlCalendar::roll ( int $field , mixed $amountOrUpOrDown )

Style procédural

bool intlcal_roll ( IntlCalendar $cal , int $field , mixed $amountOrUpOrDown )

Adds a (signed) amount to a field. The difference with respect to IntlCalendar::add() is that when the field value overflows, it does not carry into more significant fields.

Liste de paramètres

cal

The IntlCalendar resource.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

amountOrUpOrDown

The (signed) amount to add to the field, TRUE for rolling up (adding 1), or FALSE for rolling down (subtracting 1).

Valeurs de retour

Returns TRUE on success or FALSE on failure.

Exemples

Exemple #1 IntlCalendar::roll()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 5 /* June */, 30);

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
var_dump(IntlDateFormatter::formatObject($cal)); // "01/07/2013, 00:00:00"

$cal->set(2013, 5 /* June */, 30);
$cal->roll(IntlCalendar::FIELD_DAY_OF_MONTH, true); // roll up, same as rolling +1
var_dump(IntlDateFormatter::formatObject($cal)); // "01/06/2013, 00:00:00"

L'exemple ci-dessus va afficher :

string(20) "01/07/2013, 00:00:00"
string(20) "01/06/2013, 00:00:00"

Voir aussi

  • IntlCalendar::add() - Ajoute une durée (signée) à un champ
  • IntlCalendar::set() - Set a time field or several common fields at once


Set a time field or several common fields at once

  • « IntlCalendar::roll
  • IntlCalendar::setFirstDayOfWeek »
  • PHP Manual
  • IntlCalendar
  • Set a time field or several common fields at once

IntlCalendar::set

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::set — Set a time field or several common fields at once

Description

Style orienté objet

public bool IntlCalendar::set ( int $field , int $value )
public bool IntlCalendar::set ( int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] )

Style procédural

bool intlcal_set ( IntlCalendar $cal , int $field , int $value )
bool intlcal_set ( IntlCalendar $cal , int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] )

Sets either a specific field to the given value, or sets at once several common fields. The range of values that are accepted depend on whether the calendar is using the lenient mode.

For fields that conflict, the fields that are set later have priority.

This method cannot be called with exactly four arguments.

Liste de paramètres

cal

The IntlCalendar resource.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

value

The new value of the given field.

year

The new value for IntlCalendar::FIELD_YEAR.

month

The new value for IntlCalendar::FIELD_MONTH.

dayOfMonth

The new value for IntlCalendar::FIELD_DAY_OF_MONTH. The month sequence is zero-based, i.e., January is represented by 0, February by 1, …, December is 11 and Undecember (if the calendar has it) is 12.

hour

The new value for IntlCalendar::FIELD_HOUR_OF_DAY.

minute

The new value for IntlCalendar::FIELD_MINUTE.

second

The new value for IntlCalendar::FIELD_SECOND.

Valeurs de retour

Returns TRUE on success and FALSE on failure.

Exemples

Exemple #1 IntlCalendar::set()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

//Calls made later have priority
$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
var_dump(IntlDateFormatter::formatObject($cal));

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
//the time has not been recalculated yet. If we clear the extended year,
//the year set before will be used
$cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR);
var_dump(IntlDateFormatter::formatObject($cal));

L'exemple ci-dessus va afficher :

string(20) "01/07/2011, 00:00:00"
string(20) "01/07/2012, 00:00:00"

Voir aussi

  • IntlCalendar::get() - Récupère la valeur d'une propriété
  • IntlCalendar::add() - Ajoute une durée (signée) à un champ
  • IntlCalendar::roll() - Add value to field without carrying into more significant fields


Défini le jour de début de la semaine

  • « IntlCalendar::set
  • IntlCalendar::setLenient »
  • PHP Manual
  • IntlCalendar
  • Défini le jour de début de la semaine

IntlCalendar::setFirstDayOfWeek

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setFirstDayOfWeek — Défini le jour de début de la semaine

Description

Style orienté objet

public bool IntlCalendar::setFirstDayOfWeek ( int $dayOfWeek )

Style procédural

bool intlcal_set_first_day_of_week ( IntlCalendar $cal , int $dayOfWeek )

Défini le jour de début de la semaine. Ceci affecte le comportement des champs qui dépendent du concept de début et de fin de semaine, comme IntlCalendar::FIELD_WEEK_OF_YEAR et IntlCalendar::FIELD_YEAR_WOY.

Liste de paramètres

cal

La ressource IntlCalendar.

dayOfWeek

Une constante parmi IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, …,
IntlCalendar::DOW_SATURDAY.

Valeurs de retour

Retourne TRUE en cas de succès. Les échecs ne peuvent survenir qu'en raison de paramètres invalides.

Exemples

Exemple #1 Exemple avec IntlCalendar::setFirstDayOfWeek()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');

$cal = IntlCalendar::createInstance();
$cal->set(2013, 5 /* Juin */, 30); // Un dimanche

var_dump($cal->getFirstDayOfWeek()); // 2 (Lundi)

echo IntlDateFormatter::formatObject($cal, <<<EOD
'jour local de la semaine : 'cc'
semaine du mois           : 'W'
semaine de l'année        : 'ww
EOD
), "\n";

$cal->setFirstDayOfWeek(IntlCalendar::DOW_SUNDAY);

echo IntlDateFormatter::formatObject($cal, <<<EOD
'jour local de la semaine : 'cc'
semaine du mois           : 'W'
semaine de l'année        : 'ww
EOD
), "\n";

L'exemple ci-dessus va afficher :

int(2)
jour local de la semaine  : 7
semaine du mois           : 4
semaine de l'année        : 26
jour local de la semaine  : 1
semaine du mois           : 5
semaine de l'année        : 27


Set whether date/time interpretation is to be lenient

  • « IntlCalendar::setFirstDayOfWeek
  • IntlCalendar::setMinimalDaysInFirstWeek »
  • PHP Manual
  • IntlCalendar
  • Set whether date/time interpretation is to be lenient

IntlCalendar::setLenient

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setLenient — Set whether date/time interpretation is to be lenient

Description

Style orienté objet

public ReturnType IntlCalendar::setLenient ( string $isLenient )

Style procédural

ReturnType intlcal_set_lenient ( IntlCalendar $cal , string $isLenient )

Defines whether the calendar is ‘lenient mode’. In such a mode, some of out-of-bounds values for some fields are accepted, the behavior being similar to that of IntlCalendar::add() (i.e., the value wraps around, carrying into more significant fields each time). If the lenient mode is off, then such values will generate an error.

Liste de paramètres

cal

The IntlCalendar resource.

isLenient

Use TRUE to activate the lenient mode; FALSE otherwise.

Valeurs de retour

Returns TRUE on success. Failure can only happen due to invalid parameters.

Exemples

See the example in IntlCalendar::isLenient().


Set minimal number of days the first week in a year or month can have

  • « IntlCalendar::setLenient
  • IntlCalendar::setRepeatedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Set minimal number of days the first week in a year or month can have

IntlCalendar::setMinimalDaysInFirstWeek

(No version information available, might only be in Git)

IntlCalendar::setMinimalDaysInFirstWeek — Set minimal number of days the first week in a year or month can have

Description

Style orienté objet

public bool IntlCalendar::setMinimalDaysInFirstWeek ( int $minimalDays )

Style procédural

bool intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal , int $minimalDays )

Sets the smallest number of days the first week of a year or month must have in the new year or month. For instance, in the Gregorian calendar, if this value is 1, then the first week of the year will necessarily include January 1st, while if this value is 7, then the week with January 1st will be the first week of the year only if the day of the week for January 1st matches the day of the week returned by IntlCalendar::getFirstDayOfWeek(); otherwise it will be the previous year's last week.

Liste de paramètres

cal

The IntlCalendar resource.

minimalDays

The number of minimal days to set.

Valeurs de retour

TRUE on success, FALSE on failure.


Set behavior for handling repeating wall times at negative timezone offset transitions

  • « IntlCalendar::setMinimalDaysInFirstWeek
  • IntlCalendar::setSkippedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Set behavior for handling repeating wall times at negative timezone offset transitions

IntlCalendar::setRepeatedWallTimeOption

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setRepeatedWallTimeOption — Set behavior for handling repeating wall times at negative timezone offset transitions

Description

Style orienté objet

public bool IntlCalendar::setRepeatedWallTimeOption ( int $wallTimeOption )

Style procédural

bool intlcal_set_repeated_wall_time_option ( IntlCalendar $cal , int $wallTimeOption )

Sets the current strategy for dealing with wall times that are repeated whenever the clock is set back during dailight saving time end transitions. The default value is IntlCalendar::WALLTIME_LAST (take the post-DST instant). The other possible value is IntlCalendar::WALLTIME_FIRST (take the instant that occurs during DST).

This function requires ICU 4.9 or later.

Liste de paramètres

cal

The IntlCalendar resource.

wallTimeOption

One of the constants IntlCalendar::WALLTIME_FIRST or IntlCalendar::WALLTIME_LAST.

Valeurs de retour

Returns TRUE on success. Failure can only happen due to invalid parameters.

Exemples

See the example on IntlCalendar::getRepeatedWallTimeOption().

Voir aussi

  • intlCalendar::getRepeatedWallTimeOption() - Get behavior for handling repeating wall time
  • intlCalendar::setSkippedWallTimeOption() - Set behavior for handling skipped wall times at positive timezone offset transitions
  • intlCalendar::getSkippedWallTimeOption() - Get behavior for handling skipped wall time


Set behavior for handling skipped wall times at positive timezone offset transitions

  • « IntlCalendar::setRepeatedWallTimeOption
  • IntlCalendar::setTime »
  • PHP Manual
  • IntlCalendar
  • Set behavior for handling skipped wall times at positive timezone offset transitions

IntlCalendar::setSkippedWallTimeOption

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setSkippedWallTimeOption — Set behavior for handling skipped wall times at positive timezone offset transitions

Description

Style orienté objet

public bool IntlCalendar::setSkippedWallTimeOption ( int $wallTimeOption )

Style procédural

bool intlcal_set_skipped_wall_time_option ( IntlCalendar $cal , int $wallTimeOption )

Sets the current strategy for dealing with wall times that are skipped whenever the clock is forwarded during dailight saving time start transitions. The default value is IntlCalendar::WALLTIME_LAST (take it as being the same instant as the one when the wall time is one hour more). Alternative values are IntlCalendar::WALLTIME_FIRST (same instant as the one with a wall time of one hour less) and IntlCalendar::WALLTIME_NEXT_VALID (same instant as when DST begins).

This affects only the instant represented by the calendar (as reported by IntlCalendar::getTime()), the field values will not be rewritten accordingly.

The calendar must be lenient for this option to have any effect, otherwise attempting to set a non-existing time will cause an error.

This function requires ICU 4.9 or later.

Liste de paramètres

cal

The IntlCalendar resource.

wallTimeOption

One of the constants IntlCalendar::WALLTIME_FIRST,
IntlCalendar::WALLTIME_LAST or
IntlCalendar::WALLTIME_NEXT_VALID.

Valeurs de retour

Returns TRUE on success. Failure can only happen due to invalid parameters.

Exemples

See the example on IntlCalendar::getSkippedWallTimeOption().

Voir aussi

  • intlCalendar::getSkippedWallTimeOption() - Get behavior for handling skipped wall time
  • intlCalendar::setRepeatedWallTimeOption() - Set behavior for handling repeating wall times at negative timezone offset transitions
  • intlCalendar::getRepeatedWallTimeOption() - Get behavior for handling repeating wall time


Défini le temps du calendrier en milliseconde depuis l'époque

  • « IntlCalendar::setSkippedWallTimeOption
  • IntlCalendar::setTimeZone »
  • PHP Manual
  • IntlCalendar
  • Défini le temps du calendrier en milliseconde depuis l'époque

IntlCalendar::setTime

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setTime — Défini le temps du calendrier en milliseconde depuis l'époque

Description

Style orienté objet

public bool IntlCalendar::setTime ( float $date )

Style procédural

bool intlcal_set_time ( IntlCalendar $cal , float $date )

Défini l'instant représenté par cet objet. L'instant est représenté par un float dont la valeur est un nombre entier de millisecondes depuis l'époque Unix (1 Jan 1970 00:00:00.000 UTC), en ignorant la dernière seconde. Toutes les valeurs des champs seront recalculées en conséquent.

Liste de paramètres

cal

La ressource IntlCalendar.

date

Un instant, représenté par le nombre de millisecondes entre l'instant et l'époque Unix, en ignorant la dernière seconde.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec IntlCalendar::setTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'fr_FR');

$cal = new IntlGregorianCalendar(2013, 5 /* May */, 1, 12, 0, 0);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

/* En Europe/Lisbon, le 2013-10-27 à 0200, l'horloge perd une heure
   et le fuseau horaire passe de UTC+01 à UTC+00 */

$cal->setTime(strtotime('2013-10-27 00:30:00 UTC') * 1000.);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

$cal->setTime(strtotime('2013-10-27 01:30:00 UTC') * 1000.);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

L'exemple ci-dessus va afficher :

samedi 1 juin 2013 12:00:00 heure avancée d’Europe de l’Ouest
dimanche 27 octobre 2013 01:30:00 heure avancée d’Europe de l’Ouest
dimanche 27 octobre 2013 01:30:00 heure normale d’Europe de l’Ouest


Défini le fuseau horaire utilisé par ce calendrier

  • « IntlCalendar::setTime
  • IntlCalendar::toDateTime »
  • PHP Manual
  • IntlCalendar
  • Défini le fuseau horaire utilisé par ce calendrier

IntlCalendar::setTimeZone

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setTimeZone — Défini le fuseau horaire utilisé par ce calendrier

Description

Style orienté objet

public bool IntlCalendar::setTimeZone ( mixed $timeZone )

Style procédural

bool intlcal_set_time_zone ( IntlCalendar $cal , mixed $timeZone )

Défini un nouveau fuseau horaire pour ce calendrier. Le moment représenté par cet objet est préservé au détriment des valeurs des champs.

Liste de paramètres

cal

La ressource IntlCalendar.

timeZone

Le nouveau fuseau horaire à utiliser par ce calendrier. Il peut être spécifié de la façon suivante :

  • NULL, in which case the default timezone will be used, as specified in the ini setting date.timezone or through the function date_default_timezone_set() and as returned by date_default_timezone_get().

  • An IntlTimeZone, which will be used directly.

  • A DateTimeZone. Its identifier will be extracted and an ICU timezone object will be created; the timezone will be backed by ICU's database, not PHP's.

  • A string, which should be a valid ICU timezone identifier. See IntlTimeZone::createTimeZoneIDEnumeration(). Raw offsets such as "GMT+08:30" are also accepted.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec IntlCalendar::setTimeZone()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');

$cal = new IntlGregorianCalendar(2013, 5 /* May */, 1, 12, 0, 0);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

$cal->setTimeZone(IntlTimeZone::getGMT());
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

$cal->setTimeZone('GMT+03:33');
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

L'exemple ci-dessus va afficher :

sábado, 1 de junio de 2013 12:00:00 Hora de verano de Europa occidental
(instant 1370084400000)
sábado, 1 de junio de 2013 11:00:00 GMT
(instant 1370084400000)
sábado, 1 de junio de 2013 14:33:00 GMT+03:33
(instant 1370084400000)


Converti un objet IntlCalendar en un objet DateTime

  • « IntlCalendar::setTimeZone
  • IntlTimeZone »
  • PHP Manual
  • IntlCalendar
  • Converti un objet IntlCalendar en un objet DateTime

IntlCalendar::toDateTime

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a2)

IntlCalendar::toDateTime — Converti un objet IntlCalendar en un objet DateTime

Description

Style orienté objet

public DateTime IntlCalendar::toDateTime ( void )

Style procédural

DateTime intlcal_to_date_time ( IntlCalendar $cal )

Crée un objet DateTime qui représente le même instant (avec une précison à la seconde) et avec un fuseau horaire analogue à l'objet initial (la seule différence est que le fuseau horaire de l'objet DateTime sera compris de PHP, alors que le fuseau horaire de l'objet IntlCalendar sera compris d'ICU).

Liste de paramètres

cal

La ressource IntlCalendar.

Valeurs de retour

Un objet DateTime avec le même fuseau horaire que l'objet d'origine (en utilisant la base de données PHP au lieu de celle d'ICU) et représentant le même moment, mis à part la précision (précision à la seconde au lieu de milliseconde). Retourne FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec IntlCalendar::toDateTime()

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'pt_PT');

$cal = IntlCalendar::createInstance('Europe/Lisbon'); //temps courant

$dt = $cal->toDateTime();
print_r($dt);

L'exemple ci-dessus va afficher :

DateTime Object
(
    [date] => 2013-07-02 00:29:13
    [timezone_type] => 3
    [timezone] => Europe/Lisbon
)

Voir aussi

  • IntlCalendar::fromDateTime() - Create an IntlCalendar from a DateTime object or string
  • IntlCalendar::getTime() - Get time currently represented by the object
  • IntlCalendar::createInstance() - Crée un nouvel objet IntlCalendar
  • DateTime:__construct()


The IntlTimeZone class

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

Introduction

Synopsis de la classe

IntlTimeZone {
/* Constants */
const integer DISPLAY_SHORT = 1 ;
const integer DISPLAY_LONG = 2 ;
/* Méthodes */
public static integer countEquivalentIDs ( string $zoneId )
public static IntlTimeZone createDefault ( void )
public static IntlIterator createEnumeration ([ mixed $countryOrRawOffset ] )
public static IntlTimeZone createTimeZone ( string $zoneId )
public static IntlTimeZone fromDateTimeZone ( DateTimeZone $zoneId )
public static string getCanonicalID ( string $zoneId [, bool &$isSystemID ] )
public string getDisplayName ([ bool $isDaylight [, integer $style [, string $locale ]]] )
public integer getDSTSavings ( void )
public static string getEquivalentID ( string $zoneId , integer $index )
public integer getErrorCode ( void )
public string getErrorMessage ( void )
public static IntlTimeZone getGMT ( void )
public string getID ( void )
public integer getOffset ( float $date , bool $local , integer &$rawOffset , integer &$dstOffset )
public integer getRawOffset ( void )
public static string getTZDataVersion ( void )
public bool hasSameRules ( IntlTimeZone $otherTimeZone )
public DateTimeZone toDateTimeZone ( void )
public bool useDaylightTime ( void )
}

Constantes pré-définies

IntlTimeZone::DISPLAY_SHORT

IntlTimeZone::DISPLAY_LONG

Sommaire

  • IntlTimeZone::countEquivalentIDs — Récupère le nombre d'IDs dans le groupe d'équivalence qui inclut l'ID fourni
  • IntlTimeZone::createDefault — Crée une nouvelle copie du fuseau horaire par défaut pour cet hôte
  • IntlTimeZone::createEnumeration — Récupère une énumération d'IDs de fuseau horaire associés avec le pays fourni
  • IntlTimeZone::createTimeZone — Crée un objet de fuseau horaire pour l'ID fourni
  • IntlTimeZone::fromDateTimeZone — Crée un objet fuseau horaire depuis DateTimeZone
  • IntlTimeZone::getCanonicalID — Récupère l'identifiant du fuseau horaire système ou l'identifiant normalisé du fuseau horaire personnalisé pour l'ID du fuseau horaire fourni
  • IntlTimeZone::getDisplayName — Récupère un nom du fuseau horaire aux fins de présentation à l'utilisateur
  • IntlTimeZone::getDSTSavings — Récupère la durée à ajouter à l'heure locale pour récupérer l'heure murale locale
  • IntlTimeZone::getEquivalentID — Récupère un identifiant d'un groupe d'équivalence qui inclut l'identifiant fourni
  • IntlTimeZone::getErrorCode — Récupère le code de la dernière erreur survenue sur l'objet
  • IntlTimeZone::getErrorMessage — Récupère le message de la dernière erreur survenue sur l'objet
  • IntlTimeZone::getGMT — Crée un fuseau horaire GMT (UTC)
  • IntlTimeZone::getID — Récupère l'ID d'un fuseau horaire
  • IntlTimeZone::getOffset — Récupère le fuseau horaire brute, et la position GMT pour un moment dans le temps donné
  • IntlTimeZone::getRawOffset — Récupère la position brute GMT (avant de prendre en compte l'heure d'été)
  • IntlTimeZone::getTZDataVersion — Récupère la version du fuseau horaire actuellement utilisé par ICU
  • IntlTimeZone::hasSameRules — Vérifie si cette zone a les mêmes règles qu'une autre
  • IntlTimeZone::toDateTimeZone — Convertit un objet DateTimeZone
  • IntlTimeZone::useDaylightTime — Vérifie si ce fuseau horaire utilise l'heure d'étét


Récupère le nombre d'IDs dans le groupe d'équivalence qui inclut l'ID fourni

  • « IntlTimeZone
  • IntlTimeZone::createDefault »
  • PHP Manual
  • IntlTimeZone
  • Récupère le nombre d'IDs dans le groupe d'équivalence qui inclut l'ID fourni

IntlTimeZone::countEquivalentIDs

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::countEquivalentIDs — Récupère le nombre d'IDs dans le groupe d'équivalence qui inclut l'ID fourni

Description

public static integer IntlTimeZone::countEquivalentIDs ( string $zoneId )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

zoneId

Valeurs de retour


Crée une nouvelle copie du fuseau horaire par défaut pour cet hôte

  • « IntlTimeZone::countEquivalentIDs
  • IntlTimeZone::createEnumeration »
  • PHP Manual
  • IntlTimeZone
  • Crée une nouvelle copie du fuseau horaire par défaut pour cet hôte

IntlTimeZone::createDefault

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::createDefault — Crée une nouvelle copie du fuseau horaire par défaut pour cet hôte

Description

public static IntlTimeZone IntlTimeZone::createDefault ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère une énumération d'IDs de fuseau horaire associés avec le pays fourni

  • « IntlTimeZone::createDefault
  • IntlTimeZone::createTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Récupère une énumération d'IDs de fuseau horaire associés avec le pays fourni

IntlTimeZone::createEnumeration

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::createEnumeration — Récupère une énumération d'IDs de fuseau horaire associés avec le pays fourni

Description

public static IntlIterator IntlTimeZone::createEnumeration ([ mixed $countryOrRawOffset ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

countryOrRawOffset

Valeurs de retour


Crée un objet de fuseau horaire pour l'ID fourni

  • « IntlTimeZone::createEnumeration
  • IntlTimeZone::fromDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Crée un objet de fuseau horaire pour l'ID fourni

IntlTimeZone::createTimeZone

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::createTimeZone — Crée un objet de fuseau horaire pour l'ID fourni

Description

public static IntlTimeZone IntlTimeZone::createTimeZone ( string $zoneId )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

zoneId

Valeurs de retour


Crée un objet fuseau horaire depuis DateTimeZone

  • « IntlTimeZone::createTimeZone
  • IntlTimeZone::getCanonicalID »
  • PHP Manual
  • IntlTimeZone
  • Crée un objet fuseau horaire depuis DateTimeZone

IntlTimeZone::fromDateTimeZone

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::fromDateTimeZone — Crée un objet fuseau horaire depuis DateTimeZone

Description

public static IntlTimeZone IntlTimeZone::fromDateTimeZone ( DateTimeZone $zoneId )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

zoneId

Valeurs de retour


Récupère l'identifiant du fuseau horaire système ou l'identifiant normalisé du fuseau horaire personnalisé pour l'ID du fuseau horaire fourni

  • « IntlTimeZone::fromDateTimeZone
  • IntlTimeZone::getDisplayName »
  • PHP Manual
  • IntlTimeZone
  • Récupère l'identifiant du fuseau horaire système ou l'identifiant normalisé du fuseau horaire personnalisé pour l'ID du fuseau horaire fourni

IntlTimeZone::getCanonicalID

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getCanonicalID — Récupère l'identifiant du fuseau horaire système ou l'identifiant normalisé du fuseau horaire personnalisé pour l'ID du fuseau horaire fourni

Description

public static string IntlTimeZone::getCanonicalID ( string $zoneId [, bool &$isSystemID ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

zoneId

isSystemID

Valeurs de retour


Récupère un nom du fuseau horaire aux fins de présentation à l'utilisateur

  • « IntlTimeZone::getCanonicalID
  • IntlTimeZone::getDSTSavings »
  • PHP Manual
  • IntlTimeZone
  • Récupère un nom du fuseau horaire aux fins de présentation à l'utilisateur

IntlTimeZone::getDisplayName

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getDisplayName — Récupère un nom du fuseau horaire aux fins de présentation à l'utilisateur

Description

public string IntlTimeZone::getDisplayName ([ bool $isDaylight [, integer $style [, string $locale ]]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

isDaylight

style

locale

Valeurs de retour


Récupère la durée à ajouter à l'heure locale pour récupérer l'heure murale locale

  • « IntlTimeZone::getDisplayName
  • IntlTimeZone::getEquivalentID »
  • PHP Manual
  • IntlTimeZone
  • Récupère la durée à ajouter à l'heure locale pour récupérer l'heure murale locale

IntlTimeZone::getDSTSavings

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getDSTSavings — Récupère la durée à ajouter à l'heure locale pour récupérer l'heure murale locale

Description

public integer IntlTimeZone::getDSTSavings ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère un identifiant d'un groupe d'équivalence qui inclut l'identifiant fourni

  • « IntlTimeZone::getDSTSavings
  • IntlTimeZone::getErrorCode »
  • PHP Manual
  • IntlTimeZone
  • Récupère un identifiant d'un groupe d'équivalence qui inclut l'identifiant fourni

IntlTimeZone::getEquivalentID

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getEquivalentID — Récupère un identifiant d'un groupe d'équivalence qui inclut l'identifiant fourni

Description

public static string IntlTimeZone::getEquivalentID ( string $zoneId , integer $index )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

zoneId

index

Valeurs de retour


Récupère le code de la dernière erreur survenue sur l'objet

  • « IntlTimeZone::getEquivalentID
  • IntlTimeZone::getErrorMessage »
  • PHP Manual
  • IntlTimeZone
  • Récupère le code de la dernière erreur survenue sur l'objet

IntlTimeZone::getErrorCode

intltz_get_error_code

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getErrorCode -- intltz_get_error_code — Récupère le code de la dernière erreur survenue sur l'objet

Description

Style orienté objet (method):

public integer IntlTimeZone::getErrorCode ( void )

Style procédural:

integer intltz_get_error_code ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le message de la dernière erreur survenue sur l'objet

  • « IntlTimeZone::getErrorCode
  • IntlTimeZone::getGMT »
  • PHP Manual
  • IntlTimeZone
  • Récupère le message de la dernière erreur survenue sur l'objet

IntlTimeZone::getErrorMessage

intltz_get_error_message

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getErrorMessage -- intltz_get_error_message — Récupère le message de la dernière erreur survenue sur l'objet

Description

Style orienté objet (method):

public string IntlTimeZone::getErrorMessage ( void )

Style procédural:

string intltz_get_error_message ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Crée un fuseau horaire GMT (UTC)

  • « IntlTimeZone::getErrorMessage
  • IntlTimeZone::getID »
  • PHP Manual
  • IntlTimeZone
  • Crée un fuseau horaire GMT (UTC)

IntlTimeZone::getGMT

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getGMT — Crée un fuseau horaire GMT (UTC)

Description

public static IntlTimeZone IntlTimeZone::getGMT ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère l'ID d'un fuseau horaire

  • « IntlTimeZone::getGMT
  • IntlTimeZone::getOffset »
  • PHP Manual
  • IntlTimeZone
  • Récupère l'ID d'un fuseau horaire

IntlTimeZone::getID

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getID — Récupère l'ID d'un fuseau horaire

Description

public string IntlTimeZone::getID ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le fuseau horaire brute, et la position GMT pour un moment dans le temps donné

  • « IntlTimeZone::getID
  • IntlTimeZone::getRawOffset »
  • PHP Manual
  • IntlTimeZone
  • Récupère le fuseau horaire brute, et la position GMT pour un moment dans le temps donné

IntlTimeZone::getOffset

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getOffset — Récupère le fuseau horaire brute, et la position GMT pour un moment dans le temps donné

Description

public integer IntlTimeZone::getOffset ( float $date , bool $local , integer &$rawOffset , integer &$dstOffset )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

date

local

rawOffset

dstOffset

Valeurs de retour


Récupère la position brute GMT (avant de prendre en compte l'heure d'été)

  • « IntlTimeZone::getOffset
  • IntlTimeZone::getTZDataVersion »
  • PHP Manual
  • IntlTimeZone
  • Récupère la position brute GMT (avant de prendre en compte l'heure d'été)

IntlTimeZone::getRawOffset

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getRawOffset — Récupère la position brute GMT (avant de prendre en compte l'heure d'été)

Description

public integer IntlTimeZone::getRawOffset ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère la version du fuseau horaire actuellement utilisé par ICU

  • « IntlTimeZone::getRawOffset
  • IntlTimeZone::hasSameRules »
  • PHP Manual
  • IntlTimeZone
  • Récupère la version du fuseau horaire actuellement utilisé par ICU

IntlTimeZone::getTZDataVersion

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getTZDataVersion — Récupère la version du fuseau horaire actuellement utilisé par ICU

Description

public static string IntlTimeZone::getTZDataVersion ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Vérifie si cette zone a les mêmes règles qu'une autre

  • « IntlTimeZone::getTZDataVersion
  • IntlTimeZone::toDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Vérifie si cette zone a les mêmes règles qu'une autre

IntlTimeZone::hasSameRules

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::hasSameRules — Vérifie si cette zone a les mêmes règles qu'une autre

Description

public bool IntlTimeZone::hasSameRules ( IntlTimeZone $otherTimeZone )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

otherTimeZone

Valeurs de retour


Convertit un objet DateTimeZone

  • « IntlTimeZone::hasSameRules
  • IntlTimeZone::useDaylightTime »
  • PHP Manual
  • IntlTimeZone
  • Convertit un objet DateTimeZone

IntlTimeZone::toDateTimeZone

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::toDateTimeZone — Convertit un objet DateTimeZone

Description

public DateTimeZone IntlTimeZone::toDateTimeZone ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Vérifie si ce fuseau horaire utilise l'heure d'étét

  • « IntlTimeZone::toDateTimeZone
  • IntlDateFormatter »
  • PHP Manual
  • IntlTimeZone
  • Vérifie si ce fuseau horaire utilise l'heure d'étét

IntlTimeZone::useDaylightTime

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::useDaylightTime — Vérifie si ce fuseau horaire utilise l'heure d'étét

Description

public bool IntlTimeZone::useDaylightTime ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe IntlDateFormatter

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Introduction

La classe DateFormatter est une classe concrète, qui active l'analyse et le formatage de dates, basé sur des chaînes modèles, ou des règles.

Cette classe représente les fonctionnalités de formatage des dates ICU. Elle permet aux utilisateurs d'afficher des dates dans un format localisé, ou d'analyser des chaînes PHP pour extraire des dates.

Class synopsis

IntlDateFormatter {
/* Méthodes */
public __construct ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] )
public static IntlDateFormatter create ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] )
public string format ( mixed $value )
public static string formatObject ( object $object [, mixed $format = NULL [, string $locale = NULL ]] )
int getCalendar ( void )
public int getDateType ( void )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public string getLocale ([ int $which ] )
public string getPattern ( void )
public int getTimeType ( void )
public string getTimeZoneId ( void )
public IntlCalendar getCalendarObject ( void )
public IntlTimeZone getTimeZone ( void )
public bool isLenient ( void )
public array localtime ( string $value [, int &$position ] )
public int parse ( string $value [, int &$position ] )
bool setCalendar ( mixed $which )
public bool setLenient ( bool $lenient )
public bool setPattern ( string $pattern )
public bool setTimeZoneId ( string $zone )
public boolean setTimeZone ( mixed $zone )
}

Voir aussi

  • » ICU Date formatter
  • » ICU Date formats

Constantes pré-définies

Ces constantes sont utilisées pour spécifier différents formats dans le constructeur des classes DateType et TimeType.

IntlDateFormatter::NONE (entier)
N'inclut pas cet élément
IntlDateFormatter::FULL (entier)
Style complètement spécifié (Tuesday, April 12, 1952 AD or 3:30:42pm PST)
IntlDateFormatter::LONG (entier)
Style long(January 12, 1952 or 3:30:32pm)
IntlDateFormatter::MEDIUM (entier)
Style intermédiaire (Jan 12, 1952)
IntlDateFormatter::SHORT (entier)
Style abrégé, uniquement les informations essentielles (12/13/52 ou 3:30pm)

Les constantes entières suivantes sont utilisées pour spécifier des calendriers. Ces calendriers sont basés directement sur le calendrier grégorien. Les calendriers non-grégoriens doivent être spécifiés dans une locale. Les exemples peuvent inclure locale="hi@calendar=BUDDHIST".

IntlDateFormatter::TRADITIONAL (entier)
Calendrier non-grégorien
IntlDateFormatter::GREGORIAN (entier)
Calendrier grégorien

Sommaire

  • IntlDateFormatter::create — Crée un formateur de date
  • IntlDateFormatter::format — Formate la date et l'heure sous forme de chaîne
  • IntlDateFormatter::formatObject — Formate un objet
  • IntlDateFormatter::getCalendar — Lit le calendrier utilisé par l'objet IntlDateFormatter
  • IntlDateFormatter::getDateType — Lit le type de date utilisé par IntlDateFormatter
  • IntlDateFormatter::getErrorCode — Lit le code d'erreur de la dernière opération
  • IntlDateFormatter::getErrorMessage — Lit le dernier message d'erreur
  • IntlDateFormatter::getLocale — Lit la locale utilisée par le formateur
  • IntlDateFormatter::getPattern — Lit le modèle utilisé par IntlDateFormatter
  • IntlDateFormatter::getTimeType — Lit le type de temps pour IntlDateFormatter
  • IntlDateFormatter::getTimeZoneId — Lit le fuseau horaire de IntlDateFormatter
  • IntlDateFormatter::getCalendarObject — Récupère une copie de l'objet formateur du calendrier
  • IntlDateFormatter::getTimeZone — Récupère le formateur du décalage horaire
  • IntlDateFormatter::isLenient — Retourne la sévérité utilisée pour IntlDateFormatter
  • IntlDateFormatter::localtime — Analyse une chaîne et la converti en temps
  • IntlDateFormatter::parse — Analyse une chaîne vers un timestamp
  • IntlDateFormatter::setCalendar — Définit le type de calendrier utilisé par le formateur
  • IntlDateFormatter::setLenient — Configure la souplesse de l'analyseur
  • IntlDateFormatter::setPattern — Configure le modèle utilisé par le IntlDateFormatter
  • IntlDateFormatter::setTimeZoneId — Configure le fuseau horaire à utiliser
  • IntlDateFormatter::setTimeZone — Définit le formateur pour le décalage horaire


Crée un formateur de date

  • « IntlDateFormatter
  • IntlDateFormatter::format »
  • PHP Manual
  • IntlDateFormatter
  • Crée un formateur de date

IntlDateFormatter::create

datefmt_create

IntlDateFormatter::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__construct — Crée un formateur de date

Description

Style orienté objet

public static IntlDateFormatter IntlDateFormatter::create ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] )

Style orienté objet (constructeur)

public IntlDateFormatter::__construct ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] )

Style procédural

IntlDateFormatter datefmt_create ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] )

Crée un formateur de date.

Liste de paramètres

locale

La locale à utiliser pour formater et analyser ou NULL pour utiliser la valeur spécifiée dans la configuration ini intl.default_locale.

datetype

Le type de date à utiliser (none, short, medium, long, full). C'est l'une des constantes IntlDateFormatter. Il peut aussi valoir NULL, auquel cas, le type de date par défaut d'ICU sera utilisé.

timetype

Le type d'heure à utiliser (none, short, medium, long, full). C'est l'une des constantes IntlDateFormatter. Il peut aussi valoir NULL, auquel cas, le type d'heure par défaut d'ICU sera utilisé.

timezone

L'identifiant du fuseau horaire. Par défaut, (ce sera également la valeur par défaut qui sera utilisée si NULL est fourni) ce sera celui retourné par la fonction date_default_timezone_get() ou, si applicable, celui de l'objet IntlCalendar passé au paramètre calendar.Cet identifiant doit être un identifiant valide dans la base de données ICU, ou un identifiant représentant une possible explicite, comme GMT-05:30.

Ce paramètre peut aussi être un objet IntlTimeZone ou un objet DateTimeZone.

calendar

Calendrier à utiliser pour le formatage ou l'analyse. La valeur par défaut est NULL, ce qui correspond à la constante IntlDateFormatter::GREGORIAN. Peut être une des constantes de calendrier IntlDateFormatter ou un IntlCalendar. Tout objet IntlCalendar passé sera clôné ; il ne sera pas modifié par IntlDateFormatter. Il déterminera le type de calendrier utilisé (grégorien, islamique, persien, etc.) et si NULL est fourni dans le paramètre timezone, le fuseau horaire sera également utilisé.

pattern

Le modèle à utiliser pour le formatage ou l'analyse. Les modèles disponibles sont documentés sur » http://userguide.icu-project.org/formatparse/datetime.

Valeurs de retour

L'objet IntlDateFormatter créé, ou FALSE si une erreur survient.

Historique

Version Description
5.5.0/PECL 3.0.0

Un objet IntlCalendar est autorisé comme paramètre calendar.

Des objects de type IntlTimeZone et de type DateTimeZone sont autorisés comme paramètre timezone.

Les identifiants de fuseaux horaires invalides (incluant les chaînes vides) ne sont plus autorisés comme paramètre timezone.

Si NULL est fourni dans le paramètre timezone, l'identifiant du fuseau horaire fourni par le paramètre date_default_timezone_get() sera utilisé au lieu du fuseau horaire par défaut d'ICU.

Exemples

Exemple #1 Exemple avec datefmt_create(), procédural

<?php
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles', IntlDateFormatter::GREGORIAN  );
echo "Le premier format affiché est ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Le deuxième format affiché est  ".datefmt_format( $fmt , 0);

$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
     'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "Le premier format est affiché avec le modèle : ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
     'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "Le deuxième format est affiché avec le modèle : ".datefmt_format( $fmt , 0);
?>

Exemple #2 Exemple avec datefmt_create(), POO

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Le premier format affiché est ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Le deuxième format affiché est ".$fmt->format(0);

$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
     'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "Le premier format est affiché avec le modèle : ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
      'America/Los_Angeles',IntlDateFormatter::GREGORIAN , "MM/dd/yyyy");
echo "Le deuxième format est affiché avec le modèle : ".$fmt->format(0);
?>

L'exemple ci-dessus va afficher :

Le premier format affiché est Wednesday, December 31, 1969 4:00:00 PM PT
Le deuxième format affiché est Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
Le premier format est affiché avec le modèle : 12/31/1969
Le deuxième format est affiché avec le modèle : 12/31/1969

Voir aussi

  • datefmt_format() - Formate la date et l'heure sous forme de chaîne
  • datefmt_parse() - Analyse une chaîne vers un timestamp
  • datefmt_get_error_code() - Lit le code d'erreur de la dernière opération
  • datefmt_get_error_message() - Lit le dernier message d'erreur


Formate la date et l'heure sous forme de chaîne

  • « IntlDateFormatter::create
  • IntlDateFormatter::formatObject »
  • PHP Manual
  • IntlDateFormatter
  • Formate la date et l'heure sous forme de chaîne

IntlDateFormatter::format

datefmt_format

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::format -- datefmt_format — Formate la date et l'heure sous forme de chaîne

Description

Style orienté objet

public string IntlDateFormatter::format ( mixed $value )

Style procédural

string datefmt_format ( IntlDateFormatter $fmt , mixed $value )

Formate l'heure sous forme de chaîne.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

value

La valeur à formater. Ce peut être un objet DateTime, un objet IntlCalendar, un type numeric représentant un (peut être fractionné) nombre de secondes depuis l'époque ou un array au format de sortie de la fonction localtime().

Si un objet DateTime ou un objet IntlCalendar est passé, son décalage horaire ne sera pas considéré. L'objet devra être formaté en utilisant le décalage horaire configuré pour ce formateur. Si vous souhaitez utiliser le décalage horaire de l'objet à formater, la méthode IntlDateFormatter::setTimeZone() devra être appelée avant le décalage horaire de l'objet. Vous pouvez aussi utiliser la méthode IntlDateFormatter::formatObject() pour obtenir le même résultat.

Valeurs de retour

La chaîne formatée, ou, si une erreur survient, FALSE.

Historique

Version | Description
5.5.0/PECL 3.0.0 | Il est maintenant possible de passer un objet IntlCalendar comme valeur du paramètre value.
5.3.4 | Le support des objets DateTime dans le paramètre value a été ajouté.

Exemples

Exemple #1 Exemple avec datefmt_format()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le premier format affiché est ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le deuxième format affiché est ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'Le premier format est affiché avec le modèle ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo "Le deuxième format est affiché avec le modèle " . datefmt_format($fmt, 0);
?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le premier format affiché est ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le deuxième format affiché est ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'Le premier format est affiché avec le modèle ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'Le deuxième format est affiché avec le modèle ' . $fmt->format(0);
?>

L'exemple ci-dessus va afficher :

Le premier format affiché est Wednesday, December 31, 1969 4:00:00 PM PT
Le deuxième format affiché est Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
Le premier format est affiché avec le modèle : 12/31/1969
Le deuxième format est affiché avec le modèle : 12/31/1969

Exemple #3 Exemple avec un objet IntlCalendar

<?php
$tz = reset(iterator_to_array(IntlTimeZone::createEnumeration('FR')));
$formatter = IntlDateFormatter::create(
    'fr_FR',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    $tz,
    IntlDateFormatter::GREGORIAN
);

$cal = IntlCalendar::createInstance($tz, '@calendar=islamic-civil');
$cal->set(IntlCalendar::FIELD_MONTH, 8); //9ème mois, Ramadan
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 1); //1er jour
$cal->clear(IntlCalendar::FIELD_HOUR_OF_DAY);
$cal->clear(IntlCalendar::FIELD_MINUTE);
$cal->clear(IntlCalendar::FIELD_SECOND);
$cal->clear(IntlCalendar::FIELD_MILLISECOND);

echo "Dans l'année Islamique, le Ramadan commence le :\n\t",
        $formatter->format($cal), "\n";

//C'est le décalage horaire du formater qui est utilisé ici :
$formatter->setTimeZone('Asia/Tokyo');
echo "Après modification du décalage horaire :\n\t",
        $formatter->format($cal), "\n";

L'exemple ci-dessus va afficher :

Dans l'année Islamique, le Ramadan commence le :
    mardi 9 juillet 2013 19:00:00 heure avancée d’Europe centrale
Après modification du décalage horaire :
    mercredi 10 juillet 2013 02:00:00 heure normale du Japon

Voir aussi

  • datefmt_create() - Crée un formateur de date
  • datefmt_parse() - Analyse une chaîne vers un timestamp
  • datefmt_get_error_code() - Lit le code d'erreur de la dernière opération
  • datefmt_get_error_message() - Lit le dernier message d'erreur
  • datefmt_format_object() - Formate un objet


Formate un objet

  • « IntlDateFormatter::format
  • IntlDateFormatter::getCalendar »
  • PHP Manual
  • IntlDateFormatter
  • Formate un objet

IntlDateFormatter::formatObject

datefmt_format_object

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::formatObject -- datefmt_format_object — Formate un objet

Description

Style orienté objet

public static string IntlDateFormatter::formatObject ( object $object [, mixed $format = NULL [, string $locale = NULL ]] )

Style procédural

public static string datefmt_format_object ( object $object [, mixed $format = NULL [, string $locale = NULL ]] )

Cette fonction permet le formatage d'un objet IntlCalendar ou d'un objet DateTime sans avoir créé auparavant un objet IntlDateFormatter.

L'objet IntlDateFormatter temporaire créé prendra le décalage horaire depuis l'objet passé. La base de données des décalages horaires interne à PHP ne sera pas utilisée - ICU sera utilisé à la place. L'identifiant de décalage horaire utilisé dans les objets DateTime doit toutefois exister également dans la base de données ICU.

Liste de paramètres

object

Un objet de type IntlCalendar ou de type DateTime. L'information de décalage horaire dans l'objet sera utilisée.

format

Format de la date/heure. Peut-être soit un tableau avec deux éléments (d'abord le style de la date, puis, le style de l'heure, en utilisant une des constantes suivantes : IntlDateFormatter::NONE, IntlDateFormatter::SHORT, IntlDateFormatter::MEDIUM, IntlDateFormatter::LONG, IntlDateFormatter::FULL), soit un type long avec la valeur de l'une de ces constantes (auquel cas, il sera utilisé à la fois pour la date et l'heure), ou un type string avec le format décrit dans la » documentation ICU. Si NULL est fourni, le style par défaut sera utilisé.

locale

La locale à utiliser, ou NULL pour utiliser la locale par défaut.

Valeurs de retour

Une chaîne de caractères contenant le résultat ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec IntlDateFormatter::formatObject()

<?php
/* Le décalage horaire par défaut n'est pas significatif ;
   il est pris depuis l'objet */
ini_set('date.timezone', 'UTC');

/* La locale par défaut est prise depuis la configuration ini */
ini_set('intl.default_locale', 'fr_FR');

$cal = IntlCalendar::fromDateTime("2013-06-06 17:05:06 Europe/Dublin");
echo "défault :\n\t",
        IntlDateFormatter::formatObject($cal),
        "\n";

echo "long \$format (complet) :\n\t",
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL),
        "\n";

echo "array \$format (aucun, complet) :\n\t",
        IntlDateFormatter::formatObject($cal, array(
                IntlDateFormatter::NONE,
                IntlDateFormatter::FULL)),
        "\n";

echo "string \$format (d 'de' MMMM y):\n\t",
        IntlDateFormatter::formatObject($cal, "d 'de' MMMM y", 'en_US'),
        "\n";

echo "avec DateTime :\n\t",
        IntlDateFormatter::formatObject(
                new DateTime("2013-09-09 09:09:09 Europe/Madrid"),
                IntlDateFormatter::FULL,
                'es_ES'),
        "\n";

L'exemple ci-dessus va afficher :

défault :
    6 juin 2013 17:05:06
long $format (complet):
    jeudi 6 juin 2013 17:05:06 heure d’été irlandaise
array $format (aucun, complet):
    17:05:06 heure d’été irlandaise
string $format (d 'de' MMMM y):
    6 de June 2013
avec DateTime :
    lunes, 9 de septiembre de 2013 09:09:09 Hora de verano de Europa central


Lit le calendrier utilisé par l'objet IntlDateFormatter

  • « IntlDateFormatter::formatObject
  • IntlDateFormatter::getDateType »
  • PHP Manual
  • IntlDateFormatter
  • Lit le calendrier utilisé par l'objet IntlDateFormatter

IntlDateFormatter::getCalendar

datefmt_get_calendar

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getCalendar -- datefmt_get_calendar — Lit le calendrier utilisé par l'objet IntlDateFormatter

Description

Style orienté objet

int IntlDateFormatter::getCalendar ( void )

Style procédural

int datefmt_get_calendar ( IntlDateFormatter $fmt )

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

Le type de calendrier utilisé par le formateur. Peut être soit la constante IntlDateFormatter::TRADITIONAL, soit la constante IntlDateFormatter::GREGORIAN.

Exemples

Exemple #1 Exemple avec datefmt_get_calendar()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le calendrier du formateur est : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Le calendrier est maintenant : ' . datefmt_get_calendar($fmt);
?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le calendrier du formateur est : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Le calendrier est maintenant : ' . $fmt->getCalendar();

?>

L'exemple ci-dessus va afficher :

Le calendrier du formateur est : 1
Le calendrier est maintenant : 0

Voir aussi

  • datefmt_get_calendar_object() - Récupère une copie de l'objet formateur du calendrier
  • datefmt_set_calendar() - Définit le type de calendrier utilisé par le formateur
  • datefmt_create() - Crée un formateur de date


Lit le type de date utilisé par IntlDateFormatter

  • « IntlDateFormatter::getCalendar
  • IntlDateFormatter::getErrorCode »
  • PHP Manual
  • IntlDateFormatter
  • Lit le type de date utilisé par IntlDateFormatter

IntlDateFormatter::getDateType

datefmt_get_datetype

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getDateType -- datefmt_get_datetype — Lit le type de date utilisé par IntlDateFormatter

Description

Style orienté objet

public int IntlDateFormatter::getDateType ( void )

Style procédural

int datefmt_get_datetype ( IntlDateFormatter $fmt )

Retourne le type de date utilisé par le formateur IntlDateFormatter.

Liste de paramètres

fmt

La ressource de formatteur IntlDateFormatter.

Valeurs de retour

Le type de date courant du formateur.

Exemples

Exemple #1 Exemple avec datefmt_get_datetype()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le type de date du formateur est : ' . datefmt_get_datetype($fmt);
echo 'L\'affichage avec le premier type de date est ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::SHORT,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Maintenant, le type de date du formateur est : ' . datefmt_get_datetype($fmt);
echo 'L\'affichage avec le second type de date est ' . datefmt_format($fmt, 0);

?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le type de date du formateur est : ' . $fmt->getDateType();
echo 'L\'affichage avec le premier type de date est ' . $fmt->format(0);
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::SHORT,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Maintenant, le type de date du formateur est : ' . $fmt->getDateType();
echo 'L\'affichage avec le second type de date est ' . $fmt->format(0);

?>

L'exemple ci-dessus va afficher :

Le type de date du formateur est  : 0
L'affichage avec le premier type de date est Wednesday, December 31, 1969 4:00:00 PM PT
Maintenant, le type de date du formateur est : 2
L'affichage avec le premier type de date est 12/31/69 4:00:00 PM PT

Voir aussi

  • datefmt_get_timetype() - Lit le type de temps pour IntlDateFormatter
  • datefmt_create() - Crée un formateur de date


Lit le code d'erreur de la dernière opération

  • « IntlDateFormatter::getDateType
  • IntlDateFormatter::getErrorMessage »
  • PHP Manual
  • IntlDateFormatter
  • Lit le code d'erreur de la dernière opération

IntlDateFormatter::getErrorCode

datefmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorCode -- datefmt_get_error_code — Lit le code d'erreur de la dernière opération

Description

Style orienté objet

public int IntlDateFormatter::getErrorCode ( void )

Style procédural

int datefmt_get_error_code ( IntlDateFormatter $fmt )

Lit le code d'erreur de la dernière opération.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

Le code d'erreur, une des valeurs UErrorCode. La valeur initiale est U_ZERO_ERROR.

Exemples

Exemple #1 Exemple avec datefmt_get_error_code()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = datefmt_format($fmt);
if (!$str) {
    printf(
        "Erreur : %s (%d)\n",
        datefmt_get_error_message($fmt),
        datefmt_get_error_code($fmt)
    );
}
?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = $fmt->format();
if (!$str) {
    printf(
        "Erreur : %s (%d)\n",
        $fmt->getErrorMessage(),
        $fmt->getErrorCode()
    );
}
?>

L'exemple ci-dessus va afficher :

Erreur : U_ZERO_ERROR (0)

Voir aussi

  • datefmt_get_error_message() - Lit le dernier message d'erreur
  • intl_get_error_code() - Lit le dernier code d'erreur
  • intl_is_failure() - Vérifie si un code d'erreur indique un échec


Lit le dernier message d'erreur

  • « IntlDateFormatter::getErrorCode
  • IntlDateFormatter::getLocale »
  • PHP Manual
  • IntlDateFormatter
  • Lit le dernier message d'erreur

IntlDateFormatter::getErrorMessage

datefmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorMessage -- datefmt_get_error_message — Lit le dernier message d'erreur

Description

Style orienté objet

public string IntlDateFormatter::getErrorMessage ( void )

Style procédural

string datefmt_get_error_message ( IntlDateFormatter $fmt )

Lit le message d'erreur de la dernière opération.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

La description de la dernière erreur.

Exemples

Exemple #1 Exemple avec datefmt_get_error_message()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = datefmt_format($fmt);
if (!$str) {
    prtinf(
        "Erreur : %s (%d)\n",
        datefmt_get_error_message($fmt),
        datefmt_get_error_code($fmt)
    );
}
?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = $fmt->format();
if(!$str) {
    prtinf(
        "Erreur : %s (%d)\n",
        $fmt->getErrorMessage(),
        $fmt->getErrorCode()
    );
}

?>

L'exemple ci-dessus va afficher :

Erreur : U_ZERO_ERROR (0)

Voir aussi

  • datefmt_get_error_code() - Lit le code d'erreur de la dernière opération
  • intl_get_error_code() - Lit le dernier code d'erreur
  • intl_is_failure() - Vérifie si un code d'erreur indique un échec


Lit la locale utilisée par le formateur

  • « IntlDateFormatter::getErrorMessage
  • IntlDateFormatter::getPattern »
  • PHP Manual
  • IntlDateFormatter
  • Lit la locale utilisée par le formateur

IntlDateFormatter::getLocale

datefmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getLocale -- datefmt_get_locale — Lit la locale utilisée par le formateur

Description

Style orienté objet

public string IntlDateFormatter::getLocale ([ int $which ] )

Style procédural

string datefmt_get_locale ( IntlDateFormatter $fmt [, int $which ] )

Lit la locale utilisée par le formateur.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

hich

Vous pouvez choisir entre une valeur valide ou une valeur littérale de la locale (à l'aide des constantes Locale::VALID_LOCALE et Locale::ACTUAL_LOCALE, respectivement). La valeur par défaut est la valeur littérale.

Valeurs de retour

La locale de ce formateur, ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec datefmt_get_locale()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'La locale du formateur est : " . datefmt_get_locale($fmt);
echo 'Le premier format utilisé est " . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'La locale du formateur est : ' . datefmt_get_locale($fmt);
echo 'Le second format utilisé est ' . datefmt_format($fmt, 0);

?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'La locale du formateur est : ' . $fmt->getLocale();
echo 'Le premier format utilisé est ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'La locale du formateur est : ' . $fmt->getLocale();
echo 'Le second format utilisé est ' . $fmt->format(0);

?>

L'exemple ci-dessus va afficher :

La locale du formateur est : en
Le premier format utilisé est Wednesday, December 31, 1969 4:00:00 PM PT
La locale du formateur est : de
Le deuxième format utilisé est Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00

Voir aussi

  • datefmt_create() - Crée un formateur de date


Lit le modèle utilisé par IntlDateFormatter

  • « IntlDateFormatter::getLocale
  • IntlDateFormatter::getTimeType »
  • PHP Manual
  • IntlDateFormatter
  • Lit le modèle utilisé par IntlDateFormatter

IntlDateFormatter::getPattern

datefmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getPattern -- datefmt_get_pattern — Lit le modèle utilisé par IntlDateFormatter

Description

Style orienté objet

public string IntlDateFormatter::getPattern ( void )

Style procédural

string datefmt_get_pattern ( IntlDateFormatter $fmt )

Lit le modèle utilisé par le formateur.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

Le modèle utilisé pour analyser et former.

Exemples

Exemple #1 Exemple avec datefmt_get_pattern()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'Le modèle du formateur est : ' . datefmt_get_pattern($fmt);
echo 'Le premier résultat avec le modèle est ' . datefmt_format($fmt, 0);
datefmt_set_pattern($fmt,'yyyymmdd hh:mm:ss z');
echo 'Maintenant le modèle du formateur est : ' . datefmt_get_pattern($fmt);
echo 'Le deuxième résultat avec le modèle est ' . datefmt_format($fmt, 0);

?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'Le modèle du formateur est : ' . $fmt->getPattern();
echo 'Le premier résultat avec le modèle est ' . $fmt->format(0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo 'Maintenant le modèle du formateur est : ' . $fmt->getPattern();
echo 'Le deuxième résultat avec le modèle est ' . $fmt->format(0);
?>

L'exemple ci-dessus va afficher :

Le modèle du formateur est : MM/dd/yyyy
Le premier résultat avec le modèle est 12/31/1969
Maintenant le modèle du formateur est : yyyymmdd hh:mm:ss z
Le deuxième résultat avec le modèle est 19690031 04:00:00 PST

Voir aussi

  • datefmt_set_pattern() - Configure le modèle utilisé par le IntlDateFormatter
  • datefmt_create() - Crée un formateur de date


Lit le type de temps pour IntlDateFormatter

  • « IntlDateFormatter::getPattern
  • IntlDateFormatter::getTimeZoneId »
  • PHP Manual
  • IntlDateFormatter
  • Lit le type de temps pour IntlDateFormatter

IntlDateFormatter::getTimeType

datefmt_get_timetype

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeType -- datefmt_get_timetype — Lit le type de temps pour IntlDateFormatter

Description

Style orienté objet

public int IntlDateFormatter::getTimeType ( void )

Style procédural

int datefmt_get_timetype ( IntlDateFormatter $fmt )

Retourne le type de temps utilisé par le formateur.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

La valeur courante de type de date utilisé par le formateur.

Exemples

Exemple #1 Exemple avec datefmt_get_timetype()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le type de temps du formateur est : ' . datefmt_get_timetype($fmt);
echo 'Le premier résultat avec timetype est ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::SHORT,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Maintenant, le timetype du formateur est : ' . datefmt_get_timetype($fmt);
echo 'Le second résultat avec timetype est ' . datefmt_format($fmt, 0);

?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le type de temps du formateur est : ' . $fmt->getTimeType();
echo 'Le premier résultat avec timetype est ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::SHORT,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Maintenant, le timetype du formateur est : ' . $fmt->getTimeType();
echo 'Le second résultat avec timetype est ' . $fmt->format(0);

?>

L'exemple ci-dessus va afficher :

Le type de temps du formateur est : 0
Le premier résultat avec timetype est Wednesday, December 31, 1969 4:00:00 PM PT
Maintenant, le timetype du formateur est : 3
Le second résultat avec timetype est Wednesday, December 31, 1969 4:00 PM

Voir aussi

  • datefmt_get_datetype() - Lit le type de date utilisé par IntlDateFormatter
  • datefmt_create() - Crée un formateur de date


Lit le fuseau horaire de IntlDateFormatter

  • « IntlDateFormatter::getTimeType
  • IntlDateFormatter::getCalendarObject »
  • PHP Manual
  • IntlDateFormatter
  • Lit le fuseau horaire de IntlDateFormatter

IntlDateFormatter::getTimeZoneId

datefmt_get_timezone_id

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeZoneId -- datefmt_get_timezone_id — Lit le fuseau horaire de IntlDateFormatter

Description

Style orienté objet

public string IntlDateFormatter::getTimeZoneId ( void )

Style procédural

string datefmt_get_timezone_id ( IntlDateFormatter $fmt )

Lit le fuseau horaire utilisé par IntlDateFormatter.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

L'identifiant du fuseau horaire utilisé par ce formateur.

Exemples

Exemple #1 Exemple avec datefmt_get_timezone_id()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le timezone_id du formateur est : ' . datefmt_get_timezone_id($fmt);
datefmt_set_timezone_id($fmt, 'CN');
echo 'Maintenant, le timezone_id du formateur est : ' . datefmt_get_timezone_id($fmt);

?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le timezone_id du formateur est : ' . $fmt->getTimezoneId();
$fmt->setTimezoneId('CN');
echo 'Maintenant, le timezone_id du formateur est : ' . $fmt->getTimezoneId();

?>

L'exemple ci-dessus va afficher :

Le timezone_id du formateur est : America/Los_Angeles
Maintenant, le timezone_id du formateur est : CN

Voir aussi

  • datefmt_set_timezone_id() - Configure le fuseau horaire à utiliser
  • datefmt_create() - Crée un formateur de date


Récupère une copie de l'objet formateur du calendrier

  • « IntlDateFormatter::getTimeZoneId
  • IntlDateFormatter::getTimeZone »
  • PHP Manual
  • IntlDateFormatter
  • Récupère une copie de l'objet formateur du calendrier

IntlDateFormatter::getCalendarObject

datefmt_get_calendar_object

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::getCalendarObject -- datefmt_get_calendar_object — Récupère une copie de l'objet formateur du calendrier

Description

Style orienté objet

public IntlCalendar IntlDateFormatter::getCalendarObject ( void )

Style procédural

IntlCalendar datefmt_get_calendar_object ( void )

Obtient une copie de l'objet calendrier utilisé en interne par ce formateur. Ce calendrier aura un type (comme grégorien, japonais, boudiste, islamique, etc.) et un décalage horaire qui correspondent au type et au décalage horaire utilisés par le formateur. La date/heure de l'objet n'est pas spécifiée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une copie de l'objet calendrier interne utilisé par ce formateur.

Exemples

Exemple #1 Exemple avec IntlDateFormatter::getCalendarObject()

<?php
$formatter = IntlDateFormatter::create(
    "fr_FR@calendar=islamic",
    NULL,
    NULL,
    "GMT-01:00",
    IntlDateFormatter::TRADITIONAL
);

$cal = $formatter->getCalendarObject();

var_dump(
    $cal->getType(),
    $cal->getTimeZone(),
    $cal->getLocale(Locale::VALID_LOCALE)
);
?>

L'exemple ci-dessus va afficher :

string(7) "islamic"
object(IntlTimeZone)#3 (4) {
  ["valid"]=>
  bool(true)
  ["id"]=>
  string(9) "GMT-01:00"
  ["rawOffset"]=>
  int(-3600000)
  ["currentOffset"]=>
  int(-3600000)
}
string(5) "fr_FR"

Voir aussi

  • IntlDateFormatter::getCalendar() - Lit le calendrier utilisé par l'objet IntlDateFormatter
  • IntlDateFormatter::setCalendar() - Définit le type de calendrier utilisé par le formateur
  • IntlCalendar


Récupère le formateur du décalage horaire

  • « IntlDateFormatter::getCalendarObject
  • IntlDateFormatter::isLenient »
  • PHP Manual
  • IntlDateFormatter
  • Récupère le formateur du décalage horaire

IntlDateFormatter::getTimeZone

datefmt_get_timezone

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::getTimeZone -- datefmt_get_timezone — Récupère le formateur du décalage horaire

Description

Style orienté objet

public IntlTimeZone IntlDateFormatter::getTimeZone ( void )

Style procédural

IntlTimeZone datefmt_get_timezone ( void )

Retourne un objet IntlTimeZone représentant le décalage horaire utilisé par cet objet pour formater les dates et les heures. Lors du formatage des objets IntlCalendar et DateTime avec ce IntlDateFormatter, le décalage horaire utilisé sera retourné par cette méthode, et non celui associé avec les objets formatés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet IntlTimeZone associé ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec IntlDateFormatter::getTimeZone()

<?php

$madrid = IntlDateFormatter::create(NULL, NULL, NULL, 'Europe/Madrid');
$lisbon = IntlDateFormatter::create(NULL, NULL, NULL, 'Europe/Lisbon');

var_dump($madrid->getTimezone());
echo $madrid->getTimezone()->getDisplayName(
        false, IntlTimeZone::DISPLAY_GENERIC_LOCATION, "en_US"), "\n";
echo $lisbon->getTimeZone()->getId(), "\n";
// L'identifiant peut également être récupéré avec ->getTimezoneId()
echo $lisbon->getTimeZoneId(), "\n";

L'exemple ci-dessus va afficher :

object(IntlTimeZone)#4 (4) {
  ["valid"]=>
  bool(true)
  ["id"]=>
  string(13) "Europe/Madrid"
  ["rawOffset"]=>
  int(3600000)
  ["currentOffset"]=>
  int(7200000)
}
Spain Time
Europe/Lisbon
Europe/Lisbon

Voir aussi

  • IntlDateFormatter::getTimeZoneId() - Lit le fuseau horaire de IntlDateFormatter
  • IntlDateFormatter::setTimeZone() - Définit le formateur pour le décalage horaire
  • IntlTimeZone


Retourne la sévérité utilisée pour IntlDateFormatter

  • « IntlDateFormatter::getTimeZone
  • IntlDateFormatter::localtime »
  • PHP Manual
  • IntlDateFormatter
  • Retourne la sévérité utilisée pour IntlDateFormatter

IntlDateFormatter::isLenient

datefmt_is_lenient

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::isLenient -- datefmt_is_lenient — Retourne la sévérité utilisée pour IntlDateFormatter

Description

Style orienté objet

public bool IntlDateFormatter::isLenient ( void )

Style procédural

bool datefmt_is_lenient ( IntlDateFormatter $fmt )

Vérifie si l'analyseur est strict ou souple lors de l'interprétation des chaînes qui ne correspondent pas exactement au modèle recherché.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

Valeurs de retour

TRUE si l'analyseur est souple, FALSE si l'analyseur est strict. Par défaut, l'analyseur est souple.

Exemples

Exemple #1 Exemple avec datefmt_is_lenient()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'dd/mm/yyyy'
);
echo 'Le formateur est strict : ';
if ($fmt->isLenient()) {
    echo 'Oui';
} else {
    echo 'Non';
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Tentative d'analyse de la date '35/13/1971'.\nLe résultat est : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg est : " . intl_get_error_message();
    echo "\nError_code est : " . intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo Maintenant, le formateur est strict : ';
if ($fmt->isLenient()) {
    echo 'Oui';
} else {
    echo 'Non';
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Tentative d'analyse de la date '35/13/1971'.Le résultat est : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg est : " . intl_get_error_message();
    echo "\nError_code est : " . intl_get_error_code();
}

?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    "dd/mm/yyyy"
);
echo "Le formateur est strict : ";
if ($fmt->isLenient()) {
    echo 'Oui';
} else {
    echo 'Non';
}
$fmt->parse('35/13/1971');
echo "\n Tentative d'analyse de la date '35/13/1971'.\nLe résultat est : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0){
    echo "\nError_msg est : " . intl_get_error_message();
    echo "\nError_code est : " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo 'Now lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'Oui';
} else {
    echo 'Non';
}
$fmt->parse('35/13/1971');
echo "\n Tentative d'analyse de la date '35/13/1971'.\nLe résultat est : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg est : " . intl_get_error_message();
    echo "\nError_code est : " . intl_get_error_code();
}

?>

L'exemple ci-dessus va afficher :

Le formateur est strict : Oui
Tentative d'analyse de la date '35/13/1971'.
Le résultat est : 34503180
Maintenant, le formateur est strict : Non
Tentative d'analyse de la date '35/13/1971'.
Le résultat est :
Error_msg est : Date parsing failed: U_PARSE_ERROR
Error_code est : 9

Voir aussi

  • datefmt_set_lenient() - Configure la souplesse de l'analyseur
  • datefmt_create() - Crée un formateur de date


Analyse une chaîne et la converti en temps

  • « IntlDateFormatter::isLenient
  • IntlDateFormatter::parse »
  • PHP Manual
  • IntlDateFormatter
  • Analyse une chaîne et la converti en temps

IntlDateFormatter::localtime

datefmt_localtime

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::localtime -- datefmt_localtime — Analyse une chaîne et la converti en temps

Description

Style orienté objet

public array IntlDateFormatter::localtime ( string $value [, int &$position ] )

Style procédural

array datefmt_localtime ( IntlDateFormatter $fmt , string $value [, int &$position ] )

Convertit la chaîne $value en une date décomposée (un tableau de champs), en commençant à la position $parse_pos et en consommant autant de caractères que possible.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

value

La chaîne à convertir.

position

La position à partir de laquelle commencer l'analyse dans la valeur $value. Les positions commencent à 0. Si aucune erreur ne survient durant l'analyse de $value, $parse_pos contiendra -1, et sinon, il va contenir la position à laquelle l'analyse s'est terminée (et l'erreur est survenue). Cette variable va contenir la position de fin si l'analyse échoue. Si $parse_pos est supérieur à la taille de la chaîne, l'analyse échoue immédiatement.

Valeurs de retour

Un tableau d'entier compatible avec localtime : il contient l'heure sur 24 heures dans le champ tm_hour.

Exemples

Exemple #1 Exemple avec datefmt_localtime()

<?php

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$arr = datefmt_localtime($fmt, 'Wednesday, December 31, 1969 4:00:00 PM PT', 0);
echo 'Résultat de l'analyse ';
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}

?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$arr = $fmt->localtime('Wednesday, December 31, 1969 4:00:00 PM PT', 0);
echo 'Résultat de l'analyse ';
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}

?>

L'exemple ci-dessus va afficher :

Résultat de l'analyse tm_sec : 0 , tm_min : 0 , tm_hour : 16 , tm_year : 1969 ,
tm_mday : 31 , tm_wday : 4 , tm_yday : 365 , tm_mon : 11 , tm_isdst : 0 ,

Voir aussi

  • datefmt_create() - Crée un formateur de date
  • datefmt_format() - Formate la date et l'heure sous forme de chaîne
  • datefmt_parse() - Analyse une chaîne vers un timestamp
  • datefmt_get_error_code() - Lit le code d'erreur de la dernière opération
  • datefmt_get_error_message() - Lit le dernier message d'erreur


Analyse une chaîne vers un timestamp

  • « IntlDateFormatter::localtime
  • IntlDateFormatter::setCalendar »
  • PHP Manual
  • IntlDateFormatter
  • Analyse une chaîne vers un timestamp

IntlDateFormatter::parse

datefmt_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::parse -- datefmt_parse — Analyse une chaîne vers un timestamp

Description

Style orienté objet

public int IntlDateFormatter::parse ( string $value [, int &$position ] )

Style procédural

int datefmt_parse ( IntlDateFormatter $fmt , string $value [, int &$position ] )

Converti la chaîne $value en une valeur de temps, en commençant à $parse_pos et en lisant autant de caractères que possible.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

value

La chaîne à convertir en temps.

position

La position à partir de laquelle commencer l'analyse dans la valeur $value. Les positions commencent à 0. Si aucune erreur ne survient durant l'analyse de $value, $parse_pos contiendra -1, et sinon, il va contenir la position à laquelle l'analyse s'est terminée (et l'errur est survenue). Cette variable va contenir la position de fin si l'analyse échoue. Si $parse_pos est supérieur à la taille de la chaîne, l'analyse échoue immédiatement.

Valeurs de retour

La valeur du timestamp analysé ou FALSE si la valeur n'a pu être analysée.

Exemples

Exemple #1 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le premier format analysé est ' . $fmt->parse('Wednesday, December 20, 1989 4:00:00 PM PT');
$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
?>

Exemple #2 Exemple avec datefmt_parse()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le premier format analysé est ' . datefmt_parse($fmt, 'Wednesday, December 20, 1989 4:00:00 PM PT');
$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le deuxième format analysé est ' . datefmt_parse($fmt, 'Mittwoch, 20. Dezember 1989 16:00 Uhr GMT-08:00');
?>

L'exemple ci-dessus va afficher :

Le premier format analysé est 630201600
Le deuxième format analysé est 630201600

Voir aussi

  • datefmt_create() - Crée un formateur de date
  • datefmt_format() - Formate la date et l'heure sous forme de chaîne
  • datefmt_localtime() - Analyse une chaîne et la converti en temps
  • datefmt_get_error_code() - Lit le code d'erreur de la dernière opération
  • datefmt_get_error_message() - Lit le dernier message d'erreur


Définit le type de calendrier utilisé par le formateur

  • « IntlDateFormatter::parse
  • IntlDateFormatter::setLenient »
  • PHP Manual
  • IntlDateFormatter
  • Définit le type de calendrier utilisé par le formateur

IntlDateFormatter::setCalendar

datefmt_set_calendar

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::setCalendar -- datefmt_set_calendar — Définit le type de calendrier utilisé par le formateur

Description

Style orienté objet

bool IntlDateFormatter::setCalendar ( mixed $which )

Style procédural

bool datefmt_set_calendar ( IntlDateFormatter $fmt , mixed $which )

Configure le calendrier ou le type de calendrier à utiliser par le formateur.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

which

Peut être : le type de calendrier à utiliser (par défaut, IntlDateFormatter::GREGORIAN, qui est aussi utilisé si NULL est spécifié) ou un objet IntlCalendar.

Tout objet IntlCalendar passé sera clôné ; aucune modification ne sera effectuée sur l'objet en argument.

Le décalage horaire du formateur ne sera conservé que si un objet IntlCalendar n'est pas passé, sinon, le nouveau décalage horaire sera celui de l'objet passé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.5.0/PECL 3.0.0 | Il devient possible de passer un objet IntlCalendar.

Exemples

Exemple #1 Exemple avec datefmt_set_calendar()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le calendrier du formateur est : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Le calendrier est maintenant : ' . datefmt_get_calendar($fmt);
?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le calendrier du formateur est : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Le calendrier est maintenant : ' . $fmt->getCalendar();
?>

L'exemple ci-dessus va afficher :

Le calendrier du formateur est : 1
Le calendrier est maintenant : 0

Exemple #3 Exemple avec des arguments à IntlCalendar

<?php
$time = strtotime("2013-03-03 00:00:00 UTC");
$formatter = IntlDateFormatter::create("en_US", NULL, NULL, "Europe/Amsterdam");

echo "avant : ", $formatter->format($time), "\n";

/* notez que la locale du calendrier n'est pas utilisée ! */
$formatter->setCalendar(IntlCalendar::createInstance(
               "America/New_York", "pt_PT@calendar=islamic"));

echo "après :  ", $formatter->format($time), "\n";

L'exemple ci-dessus va afficher :

avant : Sunday, March 3, 2013 at 1:00:00 AM Central European Standard Time
après :  Saturday, Rabi? II 20, 1434 at 7:00:00 PM Eastern Standard Time

Voir aussi

  • datefmt_get_calendar() - Lit le calendrier utilisé par l'objet IntlDateFormatter
  • datefmt_get_calendar_object() - Récupère une copie de l'objet formateur du calendrier
  • datefmt_create() - Crée un formateur de date


Configure la souplesse de l'analyseur

  • « IntlDateFormatter::setCalendar
  • IntlDateFormatter::setPattern »
  • PHP Manual
  • IntlDateFormatter
  • Configure la souplesse de l'analyseur

IntlDateFormatter::setLenient

datefmt_set_lenient

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::setLenient -- datefmt_set_lenient — Configure la souplesse de l'analyseur

Description

Style orienté objet

public bool IntlDateFormatter::setLenient ( bool $lenient )

Style procédural

bool datefmt_set_lenient ( IntlDateFormatter $fmt , bool $lenient )

Définit si l'analyseur est strict ou souple lors de l'interprétation des chaînes qui ne correspondent pas exactement au modèle recherché. Activer la souplesse da l'analyseur permet d'accepter des valeurs qui pourraient être considérées comme erronées par l'analyseur strict. Les espaces, les caractères inconnus ou les dates invalides ne sont pas acceptées.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

lenient

Si l'analyseur est souple ou non, par défaut, vaut TRUE (souple).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec datefmt_set_lenient()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'dd/MM/yyyy'
);
echo 'Le formateur est strict : ';
if ($fmt->isLenient()) {
    echo 'Oui';
} else {
    echo 'Non';
}
datefmt_parse($fmt, '35/13/1971');
echo "\nTentative d'analyse de la date '35/13/1971'.\nLe résultat est : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg est : " . intl_get_error_message();
    echo "\nError_code est : " . intl_get_error_code();
}
datefmt_set_lenient($fmt, false);
echo "\nMaintenant, le formateur est strict : ";
if ($fmt->isLenient()) {
    echo 'Oui';
} else {
    echo 'Non';
}
datefmt_parse($fmt, '35/13/1971');
echo "\nTentative d'analyse de la date '35/13/1971'.\nLe résultat est : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg est : ".intl_get_error_message();
    echo "\nError_code est : ".intl_get_error_code();
}

?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'dd/MM/yyyy'
);
echo 'Le formateur est strict : ';
if ($fmt->isLenient()) {
    echo 'Oui';
} else {
    echo 'Non';
}
$fmt->parse('35/13/1971');
echo "\n Tentative d'analyse de la date '35/13/1971'.\nLe résultat est : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg est : " . intl_get_error_message();
    echo "\nError_code est : " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo "\nMaintenant, le formateur est strict : ";
if ($fmt->isLenient()) {
    echo 'Oui';
} else {
    echo 'Non';
}
$fmt->parse('35/13/1971');
echo "\n Tentative d'analyse de la date '35/13/1971'.\nLe résultat est : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg est : " . intl_get_error_message();
    echo "\nError_code est : " . intl_get_error_code();
}

?>

L'exemple ci-dessus va afficher :

Le formateur est strict : Non
Tentative d'analyse de la date '35/13/1971'.
Le résultat est : 66038400
Maintenant, le formateur est strict : Oui
Tentative d'analyse de la date '35/13/1971'.
Le résultat est : Error_msg est : Date parsing failed: U_PARSE_ERROR Error_code est : 9

Voir aussi

  • datefmt_is_lenient() - Retourne la sévérité utilisée pour IntlDateFormatter
  • datefmt_create() - Crée un formateur de date


Configure le modèle utilisé par le IntlDateFormatter

  • « IntlDateFormatter::setLenient
  • IntlDateFormatter::setTimeZoneId »
  • PHP Manual
  • IntlDateFormatter
  • Configure le modèle utilisé par le IntlDateFormatter

IntlDateFormatter::setPattern

datefmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::setPattern -- datefmt_set_pattern — Configure le modèle utilisé par le IntlDateFormatter

Description

Style orienté objet

public bool IntlDateFormatter::setPattern ( string $pattern )

Style procédural

bool datefmt_set_pattern ( IntlDateFormatter $fmt , string $pattern )

Configure le modèle utilisé par le IntlDateFormatter.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

pattern

Le nouveau masque à utiliser. Les masques possibles sont documentés sur » http://userguide.icu-project.org/formatparse/datetime.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Un mauvais formatage de la chaîne est généralement la cause de l'échec de cette fonction.

Exemples

Exemple #1 Exemple avec datefmt_get_pattern()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'Le modèle du formateur est : ' . datefmt_get_pattern($fmt);
echo 'Le premier résultat avec le modèle est ' . datefmt_format($fmt, 0);
datefmt_set_pattern($fmt, 'yyyymmdd hh:mm:ss z');
echo 'Maintenant le modèle du formateur est : ' . datefmt_get_pattern($fmt);
echo 'Le deuxième résultat avec le modèle est ' . datefmt_format($fmt, 0);

?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'Le modèle du formateur est : ' . $fmt->getPattern();
echo 'Le premier résultat avec le modèle est ' . $fmt->format(0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo 'Maintenant le modèle du formateur est : ' . $fmt->getPattern();
echo 'Le deuxième résultat avec le modèle est ' . $fmt->format(0);

?>

L'exemple ci-dessus va afficher :

Le modèle du formateur est : MM/dd/yyyy
Le premier résultat avec le modèle est 12/31/1969
Maintenant le modèle du formateur est : yyyymmdd hh:mm:ss z
Le deuxième résultat avec le modèle est 19690031 04:00:00 PST

Voir aussi

  • datefmt_get_pattern() - Lit le modèle utilisé par IntlDateFormatter
  • datefmt_create() - Crée un formateur de date


Configure le fuseau horaire à utiliser

  • « IntlDateFormatter::setPattern
  • IntlDateFormatter::setTimeZone »
  • PHP Manual
  • IntlDateFormatter
  • Configure le fuseau horaire à utiliser

IntlDateFormatter::setTimeZoneId

datefmt_set_timezone_id

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::setTimeZoneId -- datefmt_set_timezone_id — Configure le fuseau horaire à utiliser

Description

Style orienté objet

public bool IntlDateFormatter::setTimeZoneId ( string $zone )

Style procédural

bool datefmt_set_timezone_id ( IntlDateFormatter $fmt , string $zone )

Configure le fuseau horaire à utiliser.

Avertissement

Cette fonction est devenue obsolète depuis PHP 5.5.0. Son utilisation est fortement déconseillée.

Liste de paramètres

fmt

La ressource de formateur IntlDateFormatter.

zone

La chaîne d'identifiant du fuseau horaire à utiliser. Si NULL vide, le fuseau horaire par défaut sera utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec datefmt_set_timezone_id()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le timezone_id du formateur est : ' . datefmt_get_timezone_id($fmt);
datefmt_set_timezone_id($fmt, 'CN');
echo 'Maintenant, le timezone_id du formateur est : ' . datefmt_get_timezone_id($fmt);
?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Le timezone_id du formateur est : ' . $fmt->getTimezoneId();
$fmt->setTimezoneId('CN');
echo 'Maintenant, le timezone_id du formateur est : ' . $fmt->getTimezoneId();

?>

L'exemple ci-dessus va afficher :

Le timezone_id du formateur est : America/Los_Angeles
Maintenant, le timezone_id du formateur est : CN

Voir aussi

  • datefmt_get_timezone_id() - Lit le fuseau horaire de IntlDateFormatter
  • datefmt_create() - Crée un formateur de date


Définit le formateur pour le décalage horaire

  • « IntlDateFormatter::setTimeZoneId
  • ResourceBundle »
  • PHP Manual
  • IntlDateFormatter
  • Définit le formateur pour le décalage horaire

IntlDateFormatter::setTimeZone

datefmt_set_timezone

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::setTimeZone -- datefmt_set_timezone — Définit le formateur pour le décalage horaire

Description

Style orienté objet

public boolean IntlDateFormatter::setTimeZone ( mixed $zone )

Style procédural

boolean datefmt_set_timezone ( mixed $zone )

Définit le décalage horaire à utiliser lors du formattage des dates ou des heures avec cet objet.

Liste de paramètres

zone

Le décalage horaire à utiliser avec ce formateur. Peut-être spécifié via les formats suivants :

  • NULL, in which case the default timezone will be used, as specified in the ini setting date.timezone or through the function date_default_timezone_set() and as returned by date_default_timezone_get().

  • An IntlTimeZone, which will be used directly.

  • A DateTimeZone. Its identifier will be extracted and an ICU timezone object will be created; the timezone will be backed by ICU's database, not PHP's.

  • A string, which should be a valid ICU timezone identifier. See IntlTimeZone::createTimeZoneIDEnumeration(). Raw offsets such as "GMT+08:30" are also accepted.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec IntlDateFormatter::setTimeZone()

<?php
ini_set('date.timezone', 'Europe/Amsterdam');

$formatter = IntlDateFormatter::create(NULL, NULL, NULL, "UTC");

$formatter->setTimeZone(NULL);
echo "NULL\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone(IntlTimeZone::createTimeZone('Europe/Lisbon'));
echo "IntlTimeZone\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone(new DateTimeZone('Europe/Paris'));
echo "DateTimeZone\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone('Europe/Rome');
echo "String\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone('GMT+00:30');
print_r($formatter->getTimeZone());

L'exemple ci-dessus va afficher :

NULL
    Europe/Amsterdam
IntlTimeZone
    Europe/Lisbon
DateTimeZone
    Europe/Paris
String
    Europe/Rome
IntlTimeZone Object
(
    [valid] => 1
    [id] => GMT+00:30
    [rawOffset] => 1800000
    [currentOffset] => 1800000
)

Voir aussi

  • IntlDateFormatter::getTimeZone() - Récupère le formateur du décalage horaire


La classe ResourceBundle

(PHP >= 5.3.2, PECL intl >= 2.0.0)

Introduction

Les application localisées ont souvent besoin de manipuler des données devant être personnalisées en fonction d'une locale considérée, e.g.: messages, libélés, chaines de formatage. ICU permet de définir des ressources que l'application pourra charger avec une locale une fois pour toutes : tous les accès ultérieurs se feront au moyen d'une interface unique non dépendante de la locale considérée.

Cette classe permet l'accès aux fichiers de données de ICU. Ces fichiers représentent des tableaux binaires que ICU utilise pour stocker les données localisées.

Les bundle de ressource ICU supportent les ressources simples et complexes. Les ressources complexes sont des conteneurs qui peuvent être indéxés numériquement ou litéralement (comme les tableaux PHP). Les ressources simples, elles, peuvent être de type chaine, entier, binaire ou tableau numérique.

ResourceBundle supporte l'accès direct aux données via la syntaxe des tableaux ainsi que l'itération grâce à foreach. Ces possibilités existent aussi via les méthodes. Le résultat sera une valeur PHP pour les ressources simples, ou un objet ResourceBundle pour les ressources complexes. Les ressources sont en lecture seule.

Synopsis de la classe

ResourceBundle {
/* Methods */
public __construct ( string $locale , string $bundlename [, bool $fallback ] )
public int count ( void )
public static ResourceBundle create ( string $locale , string $bundlename [, bool $fallback ] )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public mixed get ( string|int $index )
public array getLocales ( string $bundlename )
}

Voir aussi

  • » Configuration des ressources ICU
  • » ICU Data

Sommaire

  • ResourceBundle::count — Récupère le nombre d'éléments dans le faisceau
  • ResourceBundle::create — Crée une ressource représentant un faisceau
  • ResourceBundle::getErrorCode — Récupère le dernier code erreur du faisceau
  • ResourceBundle::getErrorMessage — Récupère le dernier message d'erreur depuis le faisceau
  • ResourceBundle::get — Récupère les données depuis le faisceau
  • ResourceBundle::getLocales — Récupère les locales supportées


Récupère le nombre d'éléments dans le faisceau

  • « ResourceBundle
  • ResourceBundle::create »
  • PHP Manual
  • ResourceBundle
  • Récupère le nombre d'éléments dans le faisceau

ResourceBundle::count

resourcebundle_count

(PHP >= 5.3.2, PECL intl >= 2.0.0)

ResourceBundle::count -- resourcebundle_count — Récupère le nombre d'éléments dans le faisceau

Description

Style orienté objet

public int ResourceBundle::count ( void )

Style procédural

int resourcebundle_count ( ResourceBundle $r )

Récupère le nombre d'éléments dans le faisceau.

Liste de paramètres

r

Un objet ResourceBundle.

Valeurs de retour

Retourne le nombre d'éléments du faisceau.

Exemples

Exemple #1 Exemple avec resourcebundle_count()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo resourcebundle_count($r);
?>

Exemple #2 Exemple orienté objet

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r->count();
?>

L'exemple ci-dessus va afficher :

42

Voir aussi

  • resourcebundle_get() - Récupère les données depuis le faisceau


Crée une ressource représentant un faisceau

  • « ResourceBundle::count
  • ResourceBundle::getErrorCode »
  • PHP Manual
  • ResourceBundle
  • Crée une ressource représentant un faisceau

ResourceBundle::create

resourcebundle_create

ResourceBundle::__construct

(PHP >= 5.3.2, PECL intl >= 2.0.0)

ResourceBundle::create -- resourcebundle_create -- ResourceBundle::__construct — Crée une ressource représentant un faisceau

Description

Style orienté objet (méthode)

public static ResourceBundle ResourceBundle::create ( string $locale , string $bundlename [, bool $fallback ] )

Style procédural

ResourceBundle resourcebundle_create ( string $locale , string $bundlename [, bool $fallback ] )

Style orienté objet (constructeur) :

public ResourceBundle::__construct ( string $locale , string $bundlename [, bool $fallback ] )

Crée une ressource représentant un faisceau.

Liste de paramètres

locale

Locale depuis laquelle les ressources doivent être chargées (nom de la locale, i.e. en_CA).

bundlename

Le dossier où les données sont stockées ou le nom du fichier .dat.

fallback

Si la locale doit correspondre exactement ou si le fallback vers la locale parent est autorisé.

Valeurs de retour

Retourne un objet ResourceBundle ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec resourcebundle_create()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['teststring'];
?>

Exemple #2 Exemple avec ResourceBundle::create()

<?php
$r = ResourceBundle::create( 'es', "/usr/share/data/myapp");
echo $r['teststring'];
?>

L'exemple ci-dessus va afficher :

¡Hola, mundo!

Voir aussi

  • resourcebundle_get() - Récupère les données depuis le faisceau


Récupère le dernier code erreur du faisceau

  • « ResourceBundle::create
  • ResourceBundle::getErrorMessage »
  • PHP Manual
  • ResourceBundle
  • Récupère le dernier code erreur du faisceau

ResourceBundle::getErrorCode

resourcebundle_get_error_code

(PHP >= 5.3.2, PECL intl >= 2.0.0)

ResourceBundle::getErrorCode -- resourcebundle_get_error_code — Récupère le dernier code erreur du faisceau

Description

Style orienté objet

public int ResourceBundle::getErrorCode ( void )

Style procédural

int resourcebundle_get_error_code ( ResourceBundle $r )

Récupère le dernier code erreur depuis la dernière fonction exécutée sur l'objet représentant le faisceau.

Liste de paramètres

r

Un objet ResourceBundle.

Valeurs de retour

Retourne le code erreur depuis le dernier appel à l'objet représentant le faisceau.

Exemples

Exemple #1 Exemple avec resourcebundle_get_error_code()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(resourcebundle_get_error_code($r))) {
    report_error("Erreur sur le faisceau");
}
?>

Exemple #2 Exemple orienté objet

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(ResourceBundle::getErrorCode($r))) {
    report_error("Erreur sur le faisceau");
}
?>

Voir aussi

  • resourcebundle_get_error_message() - Récupère le dernier message d'erreur depuis le faisceau
  • intl_get_error_code() - Lit le dernier code d'erreur
  • intl_is_failure() - Vérifie si un code d'erreur indique un échec


Récupère le dernier message d'erreur depuis le faisceau

  • « ResourceBundle::getErrorCode
  • ResourceBundle::get »
  • PHP Manual
  • ResourceBundle
  • Récupère le dernier message d'erreur depuis le faisceau

ResourceBundle::getErrorMessage

resourcebundle_get_error_message

(PHP >= 5.3.2, PECL intl >= 2.0.0)

ResourceBundle::getErrorMessage -- resourcebundle_get_error_message — Récupère le dernier message d'erreur depuis le faisceau

Description

Style orienté objet

public string ResourceBundle::getErrorMessage ( void )

Style procédural

string resourcebundle_get_error_message ( ResourceBundle $r )

Récupère le message d'erreur depuis la dernière fonction exécutée sur l'objet du faisceau.

Liste de paramètres

r

Un objet ResourceBundle.

Valeurs de retour

Retourne le message d'erreur depuis le dernier appel sur l'objet du faisceau.

Exemples

Exemple #1 Exemple avec resourcebundle_get_error_message()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(resourcebundle_get_error_code($r))) {
    report_error("Erreur sur le faisceau : ".resourcebundle_get_error_message($r));
}
?>

Exemple #2 Exemple orienté objet

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(ResourceBundle::getErrorCode($r))) {
    report_error("Erreur sur le faisceau : ".ResourceBundle::getErrorMessage($r));
}
?>

Voir aussi

  • resourcebundle_get_error_code() - Récupère le dernier code erreur du faisceau
  • intl_get_error_code() - Lit le dernier code d'erreur
  • intl_is_failure() - Vérifie si un code d'erreur indique un échec


Récupère les données depuis le faisceau

  • « ResourceBundle::getErrorMessage
  • ResourceBundle::getLocales »
  • PHP Manual
  • ResourceBundle
  • Récupère les données depuis le faisceau

ResourceBundle::get

resourcebundle_get

(PHP >= 5.3.2, PECL intl >= 2.0.0)

ResourceBundle::get -- resourcebundle_get — Récupère les données depuis le faisceau

Description

Style orienté objet

public mixed ResourceBundle::get ( string|int $index )

Style procédural

mixed resourcebundle_get ( ResourceBundle $r , string|int $index )

Récupère les données depuis le faisceau par l'index ou la clé.

Liste de paramètres

r

Un objet ResourceBundle.

index

L'index des données ; peut être une chaîne de caractères ou un entier.

Valeurs de retour

Retourne les données situées à un index donné ou NULL si une erreur survient. Les chaînes de caractères, les entiers et les données binaires sont retournés sous leurs formes correspondantes en types PHP ; les tableaux d'entiers sont retournés sous la forme de tableau PHP. Les types complexes sont retournés sous la forme d'objet ResourceBundle.

Exemples

Exemple #1 Exemple avec resourcebundle_get()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo resourcebundle_get($r, 'somestring');
?>

Exemple #2 Exemple orienté objet

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r->get('somestring');
?>

L'exemple ci-dessus va afficher :

?Hola, mundo!

Voir aussi

  • resourcebundle_count() - Récupère le nombre d'éléments dans le faisceau


Récupère les locales supportées

  • « ResourceBundle::get
  • Spoofchecker »
  • PHP Manual
  • ResourceBundle
  • Récupère les locales supportées

ResourceBundle::getLocales

resourcebundle_locales

(PHP >= 5.3.2, PECL intl >= 2.0.0)

ResourceBundle::getLocales -- resourcebundle_locales — Récupère les locales supportées

Description

Style orienté objet

public array ResourceBundle::getLocales ( string $bundlename )

Style procédural

array resourcebundle_locales ( string $bundlename )

Récupère la liste des locales depuis le nom ResourceBundle.

Liste de paramètres

bundlename

Chemin pour ResourceBundle depuis lequel on récupère les locales disponibles, ou une chaîne vide pour la liste des locales par défaut.

Valeurs de retour

Retourne la liste des locales supportées par ce faisceau.

Exemples

Exemple #1 Exemple avec resourcebundle_locales()

<?php
$bundle = "/user/share/data/myapp";
echo join(PHP_EOL, resourcebundle_locales($bundle));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

es
root

Exemple #2 Exemple orienté objet

<?php
$bundle = "/usr/share/data/myapp";
$r = new ResourceBundle( 'es', $bundle);
echo join("\n", $r->getLocales($bundle));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

es
root

Voir aussi

  • resourcebundle_get() - Récupère les données depuis le faisceau


La classe Spoofchecker

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Introduction

Synopsis de la classe

Spoofchecker {
/* Constantes */
const integer SINGLE_SCRIPT_CONFUSABLE = 1 ;
const integer MIXED_SCRIPT_CONFUSABLE = 2 ;
const integer WHOLE_SCRIPT_CONFUSABLE = 4 ;
const integer ANY_CASE = 8 ;
const integer SINGLE_SCRIPT = 16 ;
const integer INVISIBLE = 32 ;
const integer CHAR_LIMIT = 64 ;
/* Méthodes */
public bool areConfusable ( string $s1 , string $s2 [, string &$error ] )
public __construct ( void )
public bool isSuspicious ( string $text [, string &$error ] )
public void setAllowedLocales ( string $locale_list )
public void setChecks ( long $checks )
}

Constantes pré-définies

Spoofchecker::SINGLE_SCRIPT_CONFUSABLE

Spoofchecker::MIXED_SCRIPT_CONFUSABLE

Spoofchecker::WHOLE_SCRIPT_CONFUSABLE

Spoofchecker::ANY_CASE

Spoofchecker::SINGLE_SCRIPT

Spoofchecker::INVISIBLE

Spoofchecker::CHAR_LIMIT

Sommaire

  • Spoofchecker::areConfusable — Vérifie si un texte contient des caractères confus
  • Spoofchecker::__construct — Constructeur
  • Spoofchecker::isSuspicious — Vérifie si un texte contient des caractères suspects
  • Spoofchecker::setAllowedLocales — Locales à utiliser lors de la vérification
  • Spoofchecker::setChecks — Spécifie les vérifications à effectuer


Vérifie si un texte contient des caractères confus

  • « Spoofchecker
  • Spoofchecker::__construct »
  • PHP Manual
  • Spoofchecker
  • Vérifie si un texte contient des caractères confus

Spoofchecker::areConfusable

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Spoofchecker::areConfusable — Vérifie si un texte contient des caractères confus

Description

public bool Spoofchecker::areConfusable ( string $s1 , string $s2 [, string &$error ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

s1

s2

error

Valeurs de retour


Constructeur

  • « Spoofchecker::areConfusable
  • Spoofchecker::isSuspicious »
  • PHP Manual
  • Spoofchecker
  • Constructeur

Spoofchecker::__construct

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Spoofchecker::__construct — Constructeur

Description

public Spoofchecker::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Vérifie si un texte contient des caractères suspects

  • « Spoofchecker::__construct
  • Spoofchecker::setAllowedLocales »
  • PHP Manual
  • Spoofchecker
  • Vérifie si un texte contient des caractères suspects

Spoofchecker::isSuspicious

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Spoofchecker::isSuspicious — Vérifie si un texte contient des caractères suspects

Description

public bool Spoofchecker::isSuspicious ( string $text [, string &$error ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text

error

Valeurs de retour


Locales à utiliser lors de la vérification

  • « Spoofchecker::isSuspicious
  • Spoofchecker::setChecks »
  • PHP Manual
  • Spoofchecker
  • Locales à utiliser lors de la vérification

Spoofchecker::setAllowedLocales

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Spoofchecker::setAllowedLocales — Locales à utiliser lors de la vérification

Description

public void Spoofchecker::setAllowedLocales ( string $locale_list )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

locale_list

Valeurs de retour


Spécifie les vérifications à effectuer

  • « Spoofchecker::setAllowedLocales
  • Transliterator »
  • PHP Manual
  • Spoofchecker
  • Spécifie les vérifications à effectuer

Spoofchecker::setChecks

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Spoofchecker::setChecks — Spécifie les vérifications à effectuer

Description

public void Spoofchecker::setChecks ( long $checks )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

checks

Valeurs de retour


La classe Transliterator

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Introduction

La classe Transliterator fournit la translittération des chaînes de caractères.

Synopsis de la classe

Transliterator {
/* Constantes */
const integer FORWARD = 0 ;
const integer REVERSE = 1 ;
/* Propriétés */
public $id ;
/* Méthodes */
__construct ( void )
public static Transliterator create ( string $id [, int $direction ] )
public static Transliterator createFromRules ( string $rules [, string $direction ] )
public Transliterator createInverse ( void )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public static array listIDs ( void )
public string transliterate ( string $subject [, int $start [, int $end ]] )
}

Propriétés

id

Constantes pré-définies

Transliterator::FORWARD

Transliterator::REVERSE

Sommaire

  • Transliterator::__construct — Constructeur privé pour interdire l'instantiation
  • Transliterator::create — Crée un Transliterator
  • Transliterator::createFromRules — Crée un translittérateur depuis des règles
  • Transliterator::createInverse — Crée un translittérateur inverse
  • Transliterator::getErrorCode — Récupère le dernier code erreur
  • Transliterator::getErrorMessage — Récupère le dernier message d'erreur
  • Transliterator::listIDs — Récupère les identifiants de ce translittérateur
  • Transliterator::transliterate — Translittère une chaîne de caractères


Constructeur privé pour interdire l'instantiation

  • « Transliterator
  • Transliterator::create »
  • PHP Manual
  • Transliterator
  • Constructeur privé pour interdire l'instantiation

Transliterator::__construct

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::__construct — Constructeur privé pour interdire l'instantiation

Description

Transliterator::__construct ( void )

Cette méthode ne doit pas être appelée. Son seul but est d'interdire l'instantiation avec l'opérateur new operator.

Utilisez les méthodes factorisées Transliterator::create() et Transliterator::createFromRules() à la place.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette méthode ne doit pas être exécutée. Si elle l'est (i.e. via réflection), alors la valeur retournée n'est pas spécifiée.

Voir aussi

  • Transliterator::create() - Crée un Transliterator
  • Transliterator::createFromRules() - Crée un translittérateur depuis des règles


Crée un Transliterator

  • « Transliterator::__construct
  • Transliterator::createFromRules »
  • PHP Manual
  • Transliterator
  • Crée un Transliterator

Transliterator::create

transliterator_create

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::create -- transliterator_create — Crée un Transliterator

Description

Style orienté objet

public static Transliterator Transliterator::create ( string $id [, int $direction ] )

Style procédural

Transliterator transliterator_create ( string $id [, int $direction ] )

Ouvre un Transliterator par son identifiant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

id

L'identifiant.

direction

La direction, par défaut >Transliterator::FORWARD. Peut également être défini à Transliterator::REVERSE.

Valeurs de retour

Retourne un objet Transliterator en cas de succès, ou NULL si une erreur survient.

Voir aussi

  • Transliterator::getErrorMessage() - Récupère le dernier message d'erreur
  • Transliterator::__construct() - Constructeur privé pour interdire l'instantiation


Crée un translittérateur depuis des règles

  • « Transliterator::create
  • Transliterator::createInverse »
  • PHP Manual
  • Transliterator
  • Crée un translittérateur depuis des règles

Transliterator::createFromRules

transliterator_create_from_rules

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::createFromRules -- transliterator_create_from_rules — Crée un translittérateur depuis des règles

Description

Style orienté objet

public static Transliterator Transliterator::createFromRules ( string $rules [, string $direction ] )

Style procédural

Transliterator transliterator_create_from_rules ( string $id [, int $direction ] )

Crée un translittérateur depuis des règles.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

rules

Les règles.

direction

La direction, par défaut >Transliterator::FORWARD. Peut également être défini à Transliterator::REVERSE.

Valeurs de retour

Retourne un objet Transliterator en cas de succès, ou NULL si une erreur survient.

Voir aussi

  • Transliterator::getErrorMessage() - Récupère le dernier message d'erreur
  • Transliterator::create() - Crée un Transliterator


Crée un translittérateur inverse

  • « Transliterator::createFromRules
  • Transliterator::getErrorCode »
  • PHP Manual
  • Transliterator
  • Crée un translittérateur inverse

Transliterator::createInverse

transliterator_create_inverse

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::createInverse -- transliterator_create_inverse — Crée un translittérateur inverse

Description

Style orienté objet

public Transliterator Transliterator::createInverse ( void )

Style procédural

Transliterator transliterator_create_inverse ( void )

Crée un translittérateur inverse.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet Transliterator en cas de succès, ou NULL si une erreur survient.

Voir aussi

  • Transliterator::getErrorMessage() - Récupère le dernier message d'erreur
  • Transliterator::create() - Crée un Transliterator


Récupère le dernier code erreur

  • « Transliterator::createInverse
  • Transliterator::getErrorMessage »
  • PHP Manual
  • Transliterator
  • Récupère le dernier code erreur

Transliterator::getErrorCode

transliterator_get_error_code

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::getErrorCode -- transliterator_get_error_code — Récupère le dernier code erreur

Description

Style orienté objet

public int Transliterator::getErrorCode ( void )

Style procédural

int transliterator_get_error_code ( void )

Récupère le dernier code erreur depuis ce translittérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le code erreur en cas de succès, ou FALSE s'il n'en existe pas ou si une erreur survient.

Voir aussi

  • Transliterator::getErrorMessage() - Récupère le dernier message d'erreur
  • Transliterator::listIDs() - Récupère les identifiants de ce translittérateur


Récupère le dernier message d'erreur

  • « Transliterator::getErrorCode
  • Transliterator::listIDs »
  • PHP Manual
  • Transliterator
  • Récupère le dernier message d'erreur

Transliterator::getErrorMessage

transliterator_get_error_message

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::getErrorMessage -- transliterator_get_error_message — Récupère le dernier message d'erreur

Description

Style orienté objet

public string Transliterator::getErrorMessage ( void )

Style procédural

string transliterator_get_error_message ( void )

Récupère le dernier message d'erreur depuis ce translittérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le code erreur en cas de succès, ou FALSE si aucune erreur n'existe, ou si une erreur survient.

Voir aussi

  • Transliterator::getErrorCode() - Récupère le dernier code erreur
  • Transliterator::listIDs() - Récupère les identifiants de ce translittérateur


Récupère les identifiants de ce translittérateur

  • « Transliterator::getErrorMessage
  • Transliterator::transliterate »
  • PHP Manual
  • Transliterator
  • Récupère les identifiants de ce translittérateur

Transliterator::listIDs

transliterator_list_ids

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::listIDs -- transliterator_list_ids — Récupère les identifiants de ce translittérateur

Description

Style orienté objet

public static array Transliterator::listIDs ( void )

Style procédural

array transliterator_list_ids ( void )

Retourne un tableau contenant tous les identifiants enregistrés pour ce translittérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant tous les identifiants enregistrés pour ce translittérateur en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • Transliterator::getErrorMessage() - Récupère le dernier message d'erreur
  • Transliterator::transliterate() - Translittère une chaîne de caractères


Translittère une chaîne de caractères

  • « Transliterator::listIDs
  • IntlBreakIterator »
  • PHP Manual
  • Transliterator
  • Translittère une chaîne de caractères

Transliterator::transliterate

transliterator_transliterate

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::transliterate -- transliterator_transliterate — Translittère une chaîne de caractères

Description

Style orienté objet

public string Transliterator::transliterate ( string $subject [, int $start [, int $end ]] )

Style procédural

transliterator_transliterate ( mixed $transliterator , string $subject [, int $start [, int $end ]] )

Transforme une chaîne de caractères ou seulement une partie en utilisant un translittérateur ICU.

Liste de paramètres

transliterator

Dans la version procédurale, soit un Transliterator soit une chaîne de caractères depuis laquelle un Transliterator peut être construit.

subject

La chaîne de caractères à transformer.

start

L'index de départ (en unité UTF-16) depuis lequel la chaîne commencera à être transformée, inclusif. Les indexes commencent à 0. Le texte avant cet index restera inchangé.

end

L'index de fin (en unité UTF-16) indiquant la fin de la transformation, exclusif. Les indexes commencent à 0. Le texte après cet index restera inchangé.

Valeurs de retour

La chaîne de caractères transformée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Conversion des échappements en unité UTF-16

<?php
$s = "\u304A\u65E9\u3046\u3054\u3056\u3044\u307E\u3059";
echo transliterator_transliterate("Hex-Any/Java", $s), "\n";

//maintenant, l'opération inverse avec un caractère supplémentaire
$supplChar = html_entity_decode('&#x1D11E;');
echo mb_strlen($supplChar, "UTF-8"), "\n";
$encSupplChar = transliterator_transliterate("Any-Hex/Java", $supplChar);
//affiche 2 unités UTF-16 encodés
echo $encSupplChar, "\n";
//et le retour...
echo transliterator_transliterate("Hex-Any/Java", $encSupplChar), "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

????????
1
\uD834\uDD1E
??

Voir aussi

  • Transliterator::getErrorMessage() - Récupère le dernier message d'erreur
  • Transliterator::__construct() - Constructeur privé pour interdire l'instantiation


The IntlBreakIterator class

(No version information available, might only be in Git)

Introduction

A “break iterator” is an ICU object that exposes methods for locating boundaries in text (e.g. word or sentence boundaries). The PHP IntlBreakIterator serves as the base class for all types of ICU break iterators. Where extra functionality is available, the intl extension may expose the ICU break iterator with suitable subclasses, such as IntlRuleBasedBreakIterator or IntlCodePointBreaIterator.

This class implements Traversable. Traversing an IntlBreakIterator yields non-negative integer values representing the successive locations of the text boundaries, expressed as UTF-8 code units (byte) counts, taken from the beggining of the text (which has the location 0). The keys yielded by the iterator simply form the sequence of natural numbers {0, 1, 2, …}.

Synopsis de la classe

IntlBreakIterator implements Traversable {
/* Constants */
const integer DONE = -1 ;
const integer WORD_NONE = 0 ;
const integer WORD_NONE_LIMIT = 100 ;
const integer WORD_NUMBER = 100 ;
const integer WORD_NUMBER_LIMIT = 200 ;
const integer WORD_LETTER = 200 ;
const integer WORD_LETTER_LIMIT = 300 ;
const integer WORD_KANA = 300 ;
const integer WORD_KANA_LIMIT = 400 ;
const integer WORD_IDEO = 400 ;
const integer WORD_IDEO_LIMIT = 500 ;
const integer LINE_SOFT = 0 ;
const integer LINE_SOFT_LIMIT = 100 ;
const integer LINE_HARD = 100 ;
const integer LINE_HARD_LIMIT = 200 ;
const integer SENTENCE_TERM = 0 ;
const integer SENTENCE_TERM_LIMIT = 100 ;
const integer SENTENCE_SEP = 100 ;
const integer SENTENCE_SEP_LIMIT = 200 ;
/* Méthodes */
private __construct ( void )
public static ReturnType createCharacterInstance ([ string $"locale" ] )
public static ReturnType createCodePointInstance ( void )
public static ReturnType createLineInstance ([ string $"locale" ] )
public static ReturnType createSentenceInstance ([ string $"locale" ] )
public static ReturnType createTitleInstance ([ string $"locale" ] )
public static ReturnType createWordInstance ([ string $"locale" ] )
public ReturnType current ( void )
public ReturnType first ( void )
public ReturnType following ( string $"offset" )
public ReturnType getErrorCode ( void )
ReturnType intl_get_error_code ( void )
public ReturnType getErrorMessage ( void )
ReturnType intl_get_error_message ( void )
public ReturnType getLocale ( string $"locale_type" )
public ReturnType getPartsIterator ([ string $"key_type" ] )
public ReturnType getText ( void )
public ReturnType isBoundary ( string $"offset" )
public ReturnType last ( void )
public ReturnType next ([ string $"offset" ] )
public ReturnType preceding ( string $"offset" )
public ReturnType previous ( void )
public ReturnType setText ( string $"text" )
}

Constantes pré-définies

IntlBreakIterator::DONE

IntlBreakIterator::WORD_NONE

IntlBreakIterator::WORD_NONE_LIMIT

IntlBreakIterator::WORD_NUMBER

IntlBreakIterator::WORD_NUMBER_LIMIT

IntlBreakIterator::WORD_LETTER

IntlBreakIterator::WORD_LETTER_LIMIT

IntlBreakIterator::WORD_KANA

IntlBreakIterator::WORD_KANA_LIMIT

IntlBreakIterator::WORD_IDEO

IntlBreakIterator::WORD_IDEO_LIMIT

IntlBreakIterator::LINE_SOFT

IntlBreakIterator::LINE_SOFT_LIMIT

IntlBreakIterator::LINE_HARD

IntlBreakIterator::LINE_HARD_LIMIT

IntlBreakIterator::SENTENCE_TERM

IntlBreakIterator::SENTENCE_TERM_LIMIT

IntlBreakIterator::SENTENCE_SEP

IntlBreakIterator::SENTENCE_SEP_LIMIT

Sommaire

  • IntlBreakIterator::__construct — Constructeur privé pour désactiver l'instantiation
  • IntlBreakIterator::createCharacterInstance — Crée un itérateur pour les limites des séquences de caractères combinés
  • IntlBreakIterator::createCodePointInstance — Crée un itérateur pour les limites de points de code
  • IntlBreakIterator::createLineInstance — Crée un itérateur pour les coupures de lignes
  • IntlBreakIterator::createSentenceInstance — Crée un itérateur pour les coupures de phrase
  • IntlBreakIterator::createTitleInstance — Crée un itérateur
  • IntlBreakIterator::createWordInstance — Crée un itérateur pour les coupures de mot
  • IntlBreakIterator::current — Récupère l'index de la position courante
  • IntlBreakIterator::first — Définit la position au premier caractère du texte
  • IntlBreakIterator::following — Avance l'itérateur à la première limite suivant la position spécifiée
  • IntlBreakIterator::getErrorCode — Récupère le code de la dernière erreur survenue sur l'objet
  • IntlBreakIterator::getErrorMessage — Récupère le message de la dernière erreur survenue sur l'objet
  • IntlBreakIterator::getLocale — Récupère la locale associée avec l'objet
  • IntlBreakIterator::getPartsIterator — Crée un itérateur pour naviguer dans les fragments entre les limites
  • IntlBreakIterator::getText — Récupère le texte analysé
  • IntlBreakIterator::isBoundary — Indique si une position est une position limite
  • IntlBreakIterator::last — Définit la position de l'itérateur à l'index après le dernier caractère
  • IntlBreakIterator::next — Avance l'itérateur à la prochaine limite
  • IntlBreakIterator::preceding — Définit la position de l'itérateur à la première limite avant la position
  • IntlBreakIterator::previous — Définit la position de l'itérateur à la limite immédiate avant la courante
  • IntlBreakIterator::setText — Définit le texte à analyser


Constructeur privé pour désactiver l'instantiation

  • « IntlBreakIterator
  • IntlBreakIterator::createCharacterInstance »
  • PHP Manual
  • IntlBreakIterator
  • Constructeur privé pour désactiver l'instantiation

IntlBreakIterator::__construct

(No version information available, might only be in Git)

IntlBreakIterator::__construct — Constructeur privé pour désactiver l'instantiation

Description

private IntlBreakIterator::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Crée un itérateur pour les limites des séquences de caractères combinés

  • « IntlBreakIterator::__construct
  • IntlBreakIterator::createCodePointInstance »
  • PHP Manual
  • IntlBreakIterator
  • Crée un itérateur pour les limites des séquences de caractères combinés

IntlBreakIterator::createCharacterInstance

(No version information available, might only be in Git)

IntlBreakIterator::createCharacterInstance — Crée un itérateur pour les limites des séquences de caractères combinés

Description

public static ReturnType IntlBreakIterator::createCharacterInstance ([ string $"locale" ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

"locale"

Valeurs de retour


Crée un itérateur pour les limites de points de code

  • « IntlBreakIterator::createCharacterInstance
  • IntlBreakIterator::createLineInstance »
  • PHP Manual
  • IntlBreakIterator
  • Crée un itérateur pour les limites de points de code

IntlBreakIterator::createCodePointInstance

(No version information available, might only be in Git)

IntlBreakIterator::createCodePointInstance — Crée un itérateur pour les limites de points de code

Description

public static ReturnType IntlBreakIterator::createCodePointInstance ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Crée un itérateur pour les coupures de lignes

  • « IntlBreakIterator::createCodePointInstance
  • IntlBreakIterator::createSentenceInstance »
  • PHP Manual
  • IntlBreakIterator
  • Crée un itérateur pour les coupures de lignes

IntlBreakIterator::createLineInstance

(No version information available, might only be in Git)

IntlBreakIterator::createLineInstance — Crée un itérateur pour les coupures de lignes

Description

public static ReturnType IntlBreakIterator::createLineInstance ([ string $"locale" ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

"locale"

Valeurs de retour


Crée un itérateur pour les coupures de phrase

  • « IntlBreakIterator::createLineInstance
  • IntlBreakIterator::createTitleInstance »
  • PHP Manual
  • IntlBreakIterator
  • Crée un itérateur pour les coupures de phrase

IntlBreakIterator::createSentenceInstance

(No version information available, might only be in Git)

IntlBreakIterator::createSentenceInstance — Crée un itérateur pour les coupures de phrase

Description

public static ReturnType IntlBreakIterator::createSentenceInstance ([ string $"locale" ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

"locale"

Valeurs de retour


Crée un itérateur

  • « IntlBreakIterator::createSentenceInstance
  • IntlBreakIterator::createWordInstance »
  • PHP Manual
  • IntlBreakIterator
  • Crée un itérateur

IntlBreakIterator::createTitleInstance

(No version information available, might only be in Git)

IntlBreakIterator::createTitleInstance — Crée un itérateur

Description

public static ReturnType IntlBreakIterator::createTitleInstance ([ string $"locale" ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

"locale"

Valeurs de retour


Crée un itérateur pour les coupures de mot

  • « IntlBreakIterator::createTitleInstance
  • IntlBreakIterator::current »
  • PHP Manual
  • IntlBreakIterator
  • Crée un itérateur pour les coupures de mot

IntlBreakIterator::createWordInstance

(No version information available, might only be in Git)

IntlBreakIterator::createWordInstance — Crée un itérateur pour les coupures de mot

Description

public static ReturnType IntlBreakIterator::createWordInstance ([ string $"locale" ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

"locale"

Valeurs de retour


Récupère l'index de la position courante

  • « IntlBreakIterator::createWordInstance
  • IntlBreakIterator::first »
  • PHP Manual
  • IntlBreakIterator
  • Récupère l'index de la position courante

IntlBreakIterator::current

(No version information available, might only be in Git)

IntlBreakIterator::current — Récupère l'index de la position courante

Description

public ReturnType IntlBreakIterator::current ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Définit la position au premier caractère du texte

  • « IntlBreakIterator::current
  • IntlBreakIterator::following »
  • PHP Manual
  • IntlBreakIterator
  • Définit la position au premier caractère du texte

IntlBreakIterator::first

(No version information available, might only be in Git)

IntlBreakIterator::first — Définit la position au premier caractère du texte

Description

public ReturnType IntlBreakIterator::first ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Avance l'itérateur à la première limite suivant la position spécifiée

  • « IntlBreakIterator::first
  • IntlBreakIterator::getErrorCode »
  • PHP Manual
  • IntlBreakIterator
  • Avance l'itérateur à la première limite suivant la position spécifiée

IntlBreakIterator::following

(No version information available, might only be in Git)

IntlBreakIterator::following — Avance l'itérateur à la première limite suivant la position spécifiée

Description

public ReturnType IntlBreakIterator::following ( string $"offset" )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

"offset"

Valeurs de retour


Récupère le code de la dernière erreur survenue sur l'objet

  • « IntlBreakIterator::following
  • IntlBreakIterator::getErrorMessage »
  • PHP Manual
  • IntlBreakIterator
  • Récupère le code de la dernière erreur survenue sur l'objet

IntlBreakIterator::getErrorCode

intl_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlBreakIterator::getErrorCode -- intl_get_error_code — Récupère le code de la dernière erreur survenue sur l'objet

Description

Style orienté objet (method):

public ReturnType IntlBreakIterator::getErrorCode ( void )

Style procédural:

ReturnType intl_get_error_code ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le message de la dernière erreur survenue sur l'objet

  • « IntlBreakIterator::getErrorCode
  • IntlBreakIterator::getLocale »
  • PHP Manual
  • IntlBreakIterator
  • Récupère le message de la dernière erreur survenue sur l'objet

IntlBreakIterator::getErrorMessage

intl_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlBreakIterator::getErrorMessage -- intl_get_error_message — Récupère le message de la dernière erreur survenue sur l'objet

Description

Style orienté objet (method):

public ReturnType IntlBreakIterator::getErrorMessage ( void )

Style procédural:

ReturnType intl_get_error_message ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère la locale associée avec l'objet

  • « IntlBreakIterator::getErrorMessage
  • IntlBreakIterator::getPartsIterator »
  • PHP Manual
  • IntlBreakIterator
  • Récupère la locale associée avec l'objet

IntlBreakIterator::getLocale

(No version information available, might only be in Git)

IntlBreakIterator::getLocale — Récupère la locale associée avec l'objet

Description

public ReturnType IntlBreakIterator::getLocale ( string $"locale_type" )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

"locale_type"

Valeurs de retour


Crée un itérateur pour naviguer dans les fragments entre les limites

  • « IntlBreakIterator::getLocale
  • IntlBreakIterator::getText »
  • PHP Manual
  • IntlBreakIterator
  • Crée un itérateur pour naviguer dans les fragments entre les limites

IntlBreakIterator::getPartsIterator

(No version information available, might only be in Git)

IntlBreakIterator::getPartsIterator — Crée un itérateur pour naviguer dans les fragments entre les limites

Description

public ReturnType IntlBreakIterator::getPartsIterator ([ string $"key_type" ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

"key_type"

Valeurs de retour


Récupère le texte analysé

  • « IntlBreakIterator::getPartsIterator
  • IntlBreakIterator::isBoundary »
  • PHP Manual
  • IntlBreakIterator
  • Récupère le texte analysé

IntlBreakIterator::getText

(No version information available, might only be in Git)

IntlBreakIterator::getText — Récupère le texte analysé

Description

public ReturnType IntlBreakIterator::getText ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Indique si une position est une position limite

  • « IntlBreakIterator::getText
  • IntlBreakIterator::last »
  • PHP Manual
  • IntlBreakIterator
  • Indique si une position est une position limite

IntlBreakIterator::isBoundary

(No version information available, might only be in Git)

IntlBreakIterator::isBoundary — Indique si une position est une position limite

Description

public ReturnType IntlBreakIterator::isBoundary ( string $"offset" )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

"offset"

Valeurs de retour


Définit la position de l'itérateur à l'index après le dernier caractère

  • « IntlBreakIterator::isBoundary
  • IntlBreakIterator::next »
  • PHP Manual
  • IntlBreakIterator
  • Définit la position de l'itérateur à l'index après le dernier caractère

IntlBreakIterator::last

(No version information available, might only be in Git)

IntlBreakIterator::last — Définit la position de l'itérateur à l'index après le dernier caractère

Description

public ReturnType IntlBreakIterator::last ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Avance l'itérateur à la prochaine limite

  • « IntlBreakIterator::last
  • IntlBreakIterator::preceding »
  • PHP Manual
  • IntlBreakIterator
  • Avance l'itérateur à la prochaine limite

IntlBreakIterator::next

(No version information available, might only be in Git)

IntlBreakIterator::next — Avance l'itérateur à la prochaine limite

Description

public ReturnType IntlBreakIterator::next ([ string $"offset" ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

"offset"

Valeurs de retour


Définit la position de l'itérateur à la première limite avant la position

  • « IntlBreakIterator::next
  • IntlBreakIterator::previous »
  • PHP Manual
  • IntlBreakIterator
  • Définit la position de l'itérateur à la première limite avant la position

IntlBreakIterator::preceding

(No version information available, might only be in Git)

IntlBreakIterator::preceding — Définit la position de l'itérateur à la première limite avant la position

Description

public ReturnType IntlBreakIterator::preceding ( string $"offset" )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

"offset"

Valeurs de retour


Définit la position de l'itérateur à la limite immédiate avant la courante

  • « IntlBreakIterator::preceding
  • IntlBreakIterator::setText »
  • PHP Manual
  • IntlBreakIterator
  • Définit la position de l'itérateur à la limite immédiate avant la courante

IntlBreakIterator::previous

(No version information available, might only be in Git)

IntlBreakIterator::previous — Définit la position de l'itérateur à la limite immédiate avant la courante

Description

public ReturnType IntlBreakIterator::previous ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Définit le texte à analyser

  • « IntlBreakIterator::previous
  • IntlRuleBasedBreakIterator »
  • PHP Manual
  • IntlBreakIterator
  • Définit le texte à analyser

IntlBreakIterator::setText

(No version information available, might only be in Git)

IntlBreakIterator::setText — Définit le texte à analyser

Description

public ReturnType IntlBreakIterator::setText ( string $"text" )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

"text"

Valeurs de retour


The IntlRuleBasedBreakIterator class

(No version information available, might only be in Git)

Introduction

A subclass of IntlBreakIterator that encapsulates ICU break iterators whose behavior is specified using a set of rules. This is the most common kind of break iterators.

These rules are described in the » ICU Boundary Analysis User Guide.

Synopsis de la classe

IntlRuleBasedBreakIterator extends IntlBreakIterator implements Traversable {
/* Constants */
const integer DONE = -1 ;
const integer WORD_NONE = 0 ;
const integer WORD_NONE_LIMIT = 100 ;
const integer WORD_NUMBER = 100 ;
const integer WORD_NUMBER_LIMIT = 200 ;
const integer WORD_LETTER = 200 ;
const integer WORD_LETTER_LIMIT = 300 ;
const integer WORD_KANA = 300 ;
const integer WORD_KANA_LIMIT = 400 ;
const integer WORD_IDEO = 400 ;
const integer WORD_IDEO_LIMIT = 500 ;
const integer LINE_SOFT = 0 ;
const integer LINE_SOFT_LIMIT = 100 ;
const integer LINE_HARD = 100 ;
const integer LINE_HARD_LIMIT = 200 ;
const integer SENTENCE_TERM = 0 ;
const integer SENTENCE_TERM_LIMIT = 100 ;
const integer SENTENCE_SEP = 100 ;
const integer SENTENCE_SEP_LIMIT = 200 ;
/* Méthodes */
public __construct ( string $rules [, string $areCompiled ] )
public ReturnType getBinaryRules ( void )
public ReturnType getRules ( void )
public ReturnType getRuleStatus ( void )
public ReturnType getRuleStatusVec ( void )
/* Méthodes héritées */
private IntlBreakIterator::__construct ( void )
public static ReturnType IntlBreakIterator::createCharacterInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createCodePointInstance ( void )
public static ReturnType IntlBreakIterator::createLineInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createSentenceInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createTitleInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createWordInstance ([ string $"locale" ] )
public ReturnType IntlBreakIterator::current ( void )
public ReturnType IntlBreakIterator::first ( void )
public ReturnType IntlBreakIterator::following ( string $"offset" )
public ReturnType IntlBreakIterator::getErrorCode ( void )
ReturnType intl_get_error_code ( void )
public ReturnType IntlBreakIterator::getErrorMessage ( void )
ReturnType intl_get_error_message ( void )
public ReturnType IntlBreakIterator::getLocale ( string $"locale_type" )
public ReturnType IntlBreakIterator::getPartsIterator ([ string $"key_type" ] )
public ReturnType IntlBreakIterator::getText ( void )
public ReturnType IntlBreakIterator::isBoundary ( string $"offset" )
public ReturnType IntlBreakIterator::last ( void )
public ReturnType IntlBreakIterator::next ([ string $"offset" ] )
public ReturnType IntlBreakIterator::preceding ( string $"offset" )
public ReturnType IntlBreakIterator::previous ( void )
public ReturnType IntlBreakIterator::setText ( string $"text" )
}

Constantes pré-définies

IntlRuleBasedBreakIterator::DONE

IntlRuleBasedBreakIterator::WORD_NONE

IntlRuleBasedBreakIterator::WORD_NONE_LIMIT

IntlRuleBasedBreakIterator::WORD_NUMBER

IntlRuleBasedBreakIterator::WORD_NUMBER_LIMIT

IntlRuleBasedBreakIterator::WORD_LETTER

IntlRuleBasedBreakIterator::WORD_LETTER_LIMIT

IntlRuleBasedBreakIterator::WORD_KANA

IntlRuleBasedBreakIterator::WORD_KANA_LIMIT

IntlRuleBasedBreakIterator::WORD_IDEO

IntlRuleBasedBreakIterator::WORD_IDEO_LIMIT

IntlRuleBasedBreakIterator::LINE_SOFT

IntlRuleBasedBreakIterator::LINE_SOFT_LIMIT

IntlRuleBasedBreakIterator::LINE_HARD

IntlRuleBasedBreakIterator::LINE_HARD_LIMIT

IntlRuleBasedBreakIterator::SENTENCE_TERM

IntlRuleBasedBreakIterator::SENTENCE_TERM_LIMIT

IntlRuleBasedBreakIterator::SENTENCE_SEP

IntlRuleBasedBreakIterator::SENTENCE_SEP_LIMIT

Sommaire

  • IntlRuleBasedBreakIterator::__construct — Crée un itérateur depuis un jeu de règles
  • IntlRuleBasedBreakIterator::getBinaryRules — Récupère la forme binaire des règles compilées
  • IntlRuleBasedBreakIterator::getRules — Récupère le jeu de règles utilisé pour créer cet objet
  • IntlRuleBasedBreakIterator::getRuleStatus — Récupère la valeur de statut la plus grande depuis les règles qui déterminent la position courante d'arrêt
  • IntlRuleBasedBreakIterator::getRuleStatusVec — Récupère les valeurs de statut depuis les règles d'arrêt qui déterminent la position d'arrêt courante


Crée un itérateur depuis un jeu de règles

  • « IntlRuleBasedBreakIterator
  • IntlRuleBasedBreakIterator::getBinaryRules »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Crée un itérateur depuis un jeu de règles

IntlRuleBasedBreakIterator::__construct

(No version information available, might only be in Git)

IntlRuleBasedBreakIterator::__construct — Crée un itérateur depuis un jeu de règles

Description

public IntlRuleBasedBreakIterator::__construct ( string $rules [, string $areCompiled ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

"rules"

"areCompiled"

Valeurs de retour


Récupère la forme binaire des règles compilées

  • « IntlRuleBasedBreakIterator::__construct
  • IntlRuleBasedBreakIterator::getRules »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Récupère la forme binaire des règles compilées

IntlRuleBasedBreakIterator::getBinaryRules

(No version information available, might only be in Git)

IntlRuleBasedBreakIterator::getBinaryRules — Récupère la forme binaire des règles compilées

Description

public ReturnType IntlRuleBasedBreakIterator::getBinaryRules ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le jeu de règles utilisé pour créer cet objet

  • « IntlRuleBasedBreakIterator::getBinaryRules
  • IntlRuleBasedBreakIterator::getRuleStatus »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Récupère le jeu de règles utilisé pour créer cet objet

IntlRuleBasedBreakIterator::getRules

(No version information available, might only be in Git)

IntlRuleBasedBreakIterator::getRules — Récupère le jeu de règles utilisé pour créer cet objet

Description

public ReturnType IntlRuleBasedBreakIterator::getRules ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère la valeur de statut la plus grande depuis les règles qui déterminent la position courante d'arrêt

  • « IntlRuleBasedBreakIterator::getRules
  • IntlRuleBasedBreakIterator::getRuleStatusVec »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Récupère la valeur de statut la plus grande depuis les règles qui déterminent la position courante d'arrêt

IntlRuleBasedBreakIterator::getRuleStatus

(No version information available, might only be in Git)

IntlRuleBasedBreakIterator::getRuleStatus — Récupère la valeur de statut la plus grande depuis les règles qui déterminent la position courante d'arrêt

Description

public ReturnType IntlRuleBasedBreakIterator::getRuleStatus ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère les valeurs de statut depuis les règles d'arrêt qui déterminent la position d'arrêt courante

  • « IntlRuleBasedBreakIterator::getRuleStatus
  • IntlCodePointBreakIterator »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Récupère les valeurs de statut depuis les règles d'arrêt qui déterminent la position d'arrêt courante

IntlRuleBasedBreakIterator::getRuleStatusVec

(No version information available, might only be in Git)

IntlRuleBasedBreakIterator::getRuleStatusVec — Récupère les valeurs de statut depuis les règles d'arrêt qui déterminent la position d'arrêt courante

Description

public ReturnType IntlRuleBasedBreakIterator::getRuleStatusVec ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


The IntlCodePointBreakIterator class

(No version information available, might only be in Git)

Introduction

This break iterator identifies the boundaries between UTF-8 code points.

Synopsis de la classe

IntlCodePointBreakIterator extends IntlBreakIterator implements Traversable {
/* Constants */
const integer DONE = -1 ;
const integer WORD_NONE = 0 ;
const integer WORD_NONE_LIMIT = 100 ;
const integer WORD_NUMBER = 100 ;
const integer WORD_NUMBER_LIMIT = 200 ;
const integer WORD_LETTER = 200 ;
const integer WORD_LETTER_LIMIT = 300 ;
const integer WORD_KANA = 300 ;
const integer WORD_KANA_LIMIT = 400 ;
const integer WORD_IDEO = 400 ;
const integer WORD_IDEO_LIMIT = 500 ;
const integer LINE_SOFT = 0 ;
const integer LINE_SOFT_LIMIT = 100 ;
const integer LINE_HARD = 100 ;
const integer LINE_HARD_LIMIT = 200 ;
const integer SENTENCE_TERM = 0 ;
const integer SENTENCE_TERM_LIMIT = 100 ;
const integer SENTENCE_SEP = 100 ;
const integer SENTENCE_SEP_LIMIT = 200 ;
/* Méthodes */
public ReturnType getLastCodePoint ( void )
/* Méthodes héritées */
private IntlBreakIterator::__construct ( void )
public static ReturnType IntlBreakIterator::createCharacterInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createCodePointInstance ( void )
public static ReturnType IntlBreakIterator::createLineInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createSentenceInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createTitleInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createWordInstance ([ string $"locale" ] )
public ReturnType IntlBreakIterator::current ( void )
public ReturnType IntlBreakIterator::first ( void )
public ReturnType IntlBreakIterator::following ( string $"offset" )
public ReturnType IntlBreakIterator::getErrorCode ( void )
ReturnType intl_get_error_code ( void )
public ReturnType IntlBreakIterator::getErrorMessage ( void )
ReturnType intl_get_error_message ( void )
public ReturnType IntlBreakIterator::getLocale ( string $"locale_type" )
public ReturnType IntlBreakIterator::getPartsIterator ([ string $"key_type" ] )
public ReturnType IntlBreakIterator::getText ( void )
public ReturnType IntlBreakIterator::isBoundary ( string $"offset" )
public ReturnType IntlBreakIterator::last ( void )
public ReturnType IntlBreakIterator::next ([ string $"offset" ] )
public ReturnType IntlBreakIterator::preceding ( string $"offset" )
public ReturnType IntlBreakIterator::previous ( void )
public ReturnType IntlBreakIterator::setText ( string $"text" )
}

Constantes pré-définies

IntlCodePointBreakIterator::DONE

IntlCodePointBreakIterator::WORD_NONE

IntlCodePointBreakIterator::WORD_NONE_LIMIT

IntlCodePointBreakIterator::WORD_NUMBER

IntlCodePointBreakIterator::WORD_NUMBER_LIMIT

IntlCodePointBreakIterator::WORD_LETTER

IntlCodePointBreakIterator::WORD_LETTER_LIMIT

IntlCodePointBreakIterator::WORD_KANA

IntlCodePointBreakIterator::WORD_KANA_LIMIT

IntlCodePointBreakIterator::WORD_IDEO

IntlCodePointBreakIterator::WORD_IDEO_LIMIT

IntlCodePointBreakIterator::LINE_SOFT

IntlCodePointBreakIterator::LINE_SOFT_LIMIT

IntlCodePointBreakIterator::LINE_HARD

IntlCodePointBreakIterator::LINE_HARD_LIMIT

IntlCodePointBreakIterator::SENTENCE_TERM

IntlCodePointBreakIterator::SENTENCE_TERM_LIMIT

IntlCodePointBreakIterator::SENTENCE_SEP

IntlCodePointBreakIterator::SENTENCE_SEP_LIMIT

Sommaire

  • IntlCodePointBreakIterator::getLastCodePoint — Récupère le dernier point de code après avoir avancé ou reculé dans l'itérateur


Récupère le dernier point de code après avoir avancé ou reculé dans l'itérateur

  • « IntlCodePointBreakIterator
  • IntlPartsIterator »
  • PHP Manual
  • IntlCodePointBreakIterator
  • Récupère le dernier point de code après avoir avancé ou reculé dans l'itérateur

IntlCodePointBreakIterator::getLastCodePoint

(No version information available, might only be in Git)

IntlCodePointBreakIterator::getLastCodePoint — Récupère le dernier point de code après avoir avancé ou reculé dans l'itérateur

Description

public ReturnType IntlCodePointBreakIterator::getLastCodePoint ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


The IntlPartsIterator class

(No version information available, might only be in Git)

Introduction

Objects of this class can be obtained from IntlBreakIterator objects. While the break iterators provide a sequence of boundary positions when iterated, IntlPartsIterator objects provide, as a convenience, the text fragments comprehended between two successive boundaries.

The keys may represent the offset of the left boundary, right boundary, or they may just the sequence of non-negative integers. See IntlBreakIterator::getPartsIterator().

Synopsis de la classe

IntlPartsIterator extends IntlIterator implements Iterator {
/* Constants */
const integer KEY_SEQUENTIAL = 0 ;
const integer KEY_LEFT = 1 ;
const integer KEY_RIGHT = 2 ;
/* Méthodes */
public ReturnType getBreakIterator ( void )
/* Méthodes héritées */
public ReturnType IntlIterator::current ( void )
public ReturnType IntlIterator::key ( void )
public ReturnType IntlIterator::next ( void )
public ReturnType IntlIterator::rewind ( void )
public ReturnType IntlIterator::valid ( void )
}

Constantes pré-définies

IntlPartsIterator::KEY_SEQUENTIAL

IntlPartsIterator::KEY_LEFT

IntlPartsIterator::KEY_RIGHT

Sommaire

  • IntlPartsIterator::getBreakIterator — Récupère IntlBreakIterator, sauvegardant ainsi cette partie de l'itérateur


Récupère IntlBreakIterator, sauvegardant ainsi cette partie de l'itérateur

  • « IntlPartsIterator
  • UConverter »
  • PHP Manual
  • IntlPartsIterator
  • Récupère IntlBreakIterator, sauvegardant ainsi cette partie de l'itérateur

IntlPartsIterator::getBreakIterator

(No version information available, might only be in Git)

IntlPartsIterator::getBreakIterator — Récupère IntlBreakIterator, sauvegardant ainsi cette partie de l'itérateur

Description

public ReturnType IntlPartsIterator::getBreakIterator ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


The UConverter class

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

Introduction

Synopsis de la classe

UConverter {
/* Constants */
const integer REASON_UNASSIGNED = 0 ;
const integer REASON_ILLEGAL = 1 ;
const integer REASON_IRREGULAR = 2 ;
const integer REASON_RESET = 3 ;
const integer REASON_CLOSE = 4 ;
const integer REASON_CLONE = 5 ;
const integer UNSUPPORTED_CONVERTER = -1 ;
const integer SBCS = 0 ;
const integer DBCS = 1 ;
const integer MBCS = 2 ;
const integer LATIN_1 = 3 ;
const integer UTF8 = 4 ;
const integer UTF16_BigEndian = 5 ;
const integer UTF16_LittleEndian = 6 ;
const integer UTF32_BigEndian = 7 ;
const integer UTF32_LittleEndian = 8 ;
const integer EBCDIC_STATEFUL = 9 ;
const integer ISO_2022 = 10 ;
const integer LMBCS_1 = 11 ;
const integer LMBCS_2 = 12 ;
const integer LMBCS_3 = 13 ;
const integer LMBCS_4 = 14 ;
const integer LMBCS_5 = 15 ;
const integer LMBCS_6 = 16 ;
const integer LMBCS_8 = 17 ;
const integer LMBCS_11 = 18 ;
const integer LMBCS_16 = 19 ;
const integer LMBCS_17 = 20 ;
const integer LMBCS_18 = 21 ;
const integer LMBCS_19 = 22 ;
const integer LMBCS_LAST = 22 ;
const integer HZ = 23 ;
const integer SCSU = 24 ;
const integer ISCII = 25 ;
const integer US_ASCII = 26 ;
const integer UTF7 = 27 ;
const integer BOCU1 = 28 ;
const integer UTF16 = 29 ;
const integer UTF32 = 30 ;
const integer CESU8 = 31 ;
const integer IMAP_MAILBOX = 32 ;
/* Méthodes */
public __construct ([ string $destination_encoding [, string $source_encoding ]] )
public string convert ( string $str [, bool $reverse ] )
public mixed fromUCallback ( integer $reason , string $source , string $codePoint , integer &$error )
public static array getAliases ([ string $name ] )
public static array getAvailable ( void )
public string getDestinationEncoding ( void )
public integer getDestinationType ( void )
public integer getErrorCode ( void )
public string getErrorMessage ( void )
public string getSourceEncoding ( void )
public integer getSourceType ( void )
public static array getStandards ( void )
public string getSubstChars ( void )
public static string reasonText ([ integer $reason ] )
public void setDestinationEncoding ( string $encoding )
public void setSourceEncoding ( string $encoding )
public void setSubstChars ( string $chars )
public mixed toUCallback ( integer $reason , string $source , string $codeUnits , integer &$error )
public static string transcode ( string $str , string $toEncoding , string $fromEncoding [, array $options ] )
}

Constantes pré-définies

UConverter::REASON_UNASSIGNED

UConverter::REASON_ILLEGAL

UConverter::REASON_IRREGULAR

UConverter::REASON_RESET

UConverter::REASON_CLOSE

UConverter::REASON_CLONE

UConverter::UNSUPPORTED_CONVERTER

UConverter::SBCS

UConverter::DBCS

UConverter::MBCS

UConverter::LATIN_1

UConverter::UTF8

UConverter::UTF16_BigEndian

UConverter::UTF16_LittleEndian

UConverter::UTF32_BigEndian

UConverter::UTF32_LittleEndian

UConverter::EBCDIC_STATEFUL

UConverter::ISO_2022

UConverter::LMBCS_1

UConverter::LMBCS_2

UConverter::LMBCS_3

UConverter::LMBCS_4

UConverter::LMBCS_5

UConverter::LMBCS_6

UConverter::LMBCS_8

UConverter::LMBCS_11

UConverter::LMBCS_16

UConverter::LMBCS_17

UConverter::LMBCS_18

UConverter::LMBCS_19

UConverter::LMBCS_LAST

UConverter::HZ

UConverter::SCSU

UConverter::ISCII

UConverter::US_ASCII

UConverter::UTF7

UConverter::BOCU1

UConverter::UTF16

UConverter::UTF32

UConverter::CESU8

UConverter::IMAP_MAILBOX

Sommaire

  • UConverter::__construct — Crée un objet UConverter
  • UConverter::convert — Convertit une chaîne d'un jeu de caractères vers un autre jeu de caractères
  • UConverter::fromUCallback — Fonction de rappel "from"
  • UConverter::getAliases — Récupère les alias du nom fourni
  • UConverter::getAvailable — Récupère le nom canonique des convertisseurs diponibles
  • UConverter::getDestinationEncoding — Récupère l'encodage de la destination
  • UConverter::getDestinationType — Récupère le type de la destination du convertisseur
  • UConverter::getErrorCode — Récupère le code de la dernière erreur survenue sur l'objet
  • UConverter::getErrorMessage — Récupère le message de la dernière erreur survenue sur l'objet
  • UConverter::getSourceEncoding — Récupère l'encodage de la source
  • UConverter::getSourceType — Récupère le type de source du convertisseur
  • UConverter::getStandards — Récupère les normes associées aux noms de conversion
  • UConverter::getSubstChars — Récupère les caractères de substitution
  • UConverter::reasonText — Récupère la chaîne représentant la raison de la fonction de rappel
  • UConverter::setDestinationEncoding — Définit l'encodage de la destination
  • UConverter::setSourceEncoding — Définit l'encodage de la source
  • UConverter::setSubstChars — Définit les caractères de substitution
  • UConverter::toUCallback — Fonction de rappel "to"
  • UConverter::transcode — Convertit une chaîne depuis un jeu de caractères vers un autre jeu de caractères


Crée un objet UConverter

  • « UConverter
  • UConverter::convert »
  • PHP Manual
  • UConverter
  • Crée un objet UConverter

UConverter::__construct

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::__construct — Crée un objet UConverter

Description

public UConverter::__construct ([ string $destination_encoding [, string $source_encoding ]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

destination_encoding

source_encoding

Valeurs de retour


Convertit une chaîne d'un jeu de caractères vers un autre jeu de caractères

  • « UConverter::__construct
  • UConverter::fromUCallback »
  • PHP Manual
  • UConverter
  • Convertit une chaîne d'un jeu de caractères vers un autre jeu de caractères

UConverter::convert

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::convert — Convertit une chaîne d'un jeu de caractères vers un autre jeu de caractères

Description

public string UConverter::convert ( string $str [, bool $reverse ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

str

reverse

Valeurs de retour


Fonction de rappel "from"

  • « UConverter::convert
  • UConverter::getAliases »
  • PHP Manual
  • UConverter
  • Fonction de rappel "from"

UConverter::fromUCallback

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::fromUCallback — Fonction de rappel "from"

Description

public mixed UConverter::fromUCallback ( integer $reason , string $source , string $codePoint , integer &$error )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

reason

source

codePoint

error

Valeurs de retour


Récupère les alias du nom fourni

  • « UConverter::fromUCallback
  • UConverter::getAvailable »
  • PHP Manual
  • UConverter
  • Récupère les alias du nom fourni

UConverter::getAliases

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getAliases — Récupère les alias du nom fourni

Description

public static array UConverter::getAliases ([ string $name ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Récupère le nom canonique des convertisseurs diponibles

  • « UConverter::getAliases
  • UConverter::getDestinationEncoding »
  • PHP Manual
  • UConverter
  • Récupère le nom canonique des convertisseurs diponibles

UConverter::getAvailable

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getAvailable — Récupère le nom canonique des convertisseurs diponibles

Description

public static array UConverter::getAvailable ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère l'encodage de la destination

  • « UConverter::getAvailable
  • UConverter::getDestinationType »
  • PHP Manual
  • UConverter
  • Récupère l'encodage de la destination

UConverter::getDestinationEncoding

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getDestinationEncoding — Récupère l'encodage de la destination

Description

public string UConverter::getDestinationEncoding ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le type de la destination du convertisseur

  • « UConverter::getDestinationEncoding
  • UConverter::getErrorCode »
  • PHP Manual
  • UConverter
  • Récupère le type de la destination du convertisseur

UConverter::getDestinationType

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getDestinationType — Récupère le type de la destination du convertisseur

Description

public integer UConverter::getDestinationType ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le code de la dernière erreur survenue sur l'objet

  • « UConverter::getDestinationType
  • UConverter::getErrorMessage »
  • PHP Manual
  • UConverter
  • Récupère le code de la dernière erreur survenue sur l'objet

UConverter::getErrorCode

intl_get_error_code

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getErrorCode -- intl_get_error_code — Récupère le code de la dernière erreur survenue sur l'objet

Description

public integer UConverter::getErrorCode ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le message de la dernière erreur survenue sur l'objet

  • « UConverter::getErrorCode
  • UConverter::getSourceEncoding »
  • PHP Manual
  • UConverter
  • Récupère le message de la dernière erreur survenue sur l'objet

UConverter::getErrorMessage

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getErrorMessage — Récupère le message de la dernière erreur survenue sur l'objet

Description

public string UConverter::getErrorMessage ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère l'encodage de la source

  • « UConverter::getErrorMessage
  • UConverter::getSourceType »
  • PHP Manual
  • UConverter
  • Récupère l'encodage de la source

UConverter::getSourceEncoding

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getSourceEncoding — Récupère l'encodage de la source

Description

public string UConverter::getSourceEncoding ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le type de source du convertisseur

  • « UConverter::getSourceEncoding
  • UConverter::getStandards »
  • PHP Manual
  • UConverter
  • Récupère le type de source du convertisseur

UConverter::getSourceType

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getSourceType — Récupère le type de source du convertisseur

Description

public integer UConverter::getSourceType ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère les normes associées aux noms de conversion

  • « UConverter::getSourceType
  • UConverter::getSubstChars »
  • PHP Manual
  • UConverter
  • Récupère les normes associées aux noms de conversion

UConverter::getStandards

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getStandards — Récupère les normes associées aux noms de conversion

Description

public static array UConverter::getStandards ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère les caractères de substitution

  • « UConverter::getStandards
  • UConverter::reasonText »
  • PHP Manual
  • UConverter
  • Récupère les caractères de substitution

UConverter::getSubstChars

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getSubstChars — Récupère les caractères de substitution

Description

public string UConverter::getSubstChars ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère la chaîne représentant la raison de la fonction de rappel

  • « UConverter::getSubstChars
  • UConverter::setDestinationEncoding »
  • PHP Manual
  • UConverter
  • Récupère la chaîne représentant la raison de la fonction de rappel

UConverter::reasonText

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::reasonText — Récupère la chaîne représentant la raison de la fonction de rappel

Description

public static string UConverter::reasonText ([ integer $reason ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

reason

Valeurs de retour


Définit l'encodage de la destination

  • « UConverter::reasonText
  • UConverter::setSourceEncoding »
  • PHP Manual
  • UConverter
  • Définit l'encodage de la destination

UConverter::setDestinationEncoding

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::setDestinationEncoding — Définit l'encodage de la destination

Description

public void UConverter::setDestinationEncoding ( string $encoding )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

encoding

Valeurs de retour


Définit l'encodage de la source

  • « UConverter::setDestinationEncoding
  • UConverter::setSubstChars »
  • PHP Manual
  • UConverter
  • Définit l'encodage de la source

UConverter::setSourceEncoding

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::setSourceEncoding — Définit l'encodage de la source

Description

public void UConverter::setSourceEncoding ( string $encoding )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

encoding

Valeurs de retour


Définit les caractères de substitution

  • « UConverter::setSourceEncoding
  • UConverter::toUCallback »
  • PHP Manual
  • UConverter
  • Définit les caractères de substitution

UConverter::setSubstChars

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::setSubstChars — Définit les caractères de substitution

Description

public void UConverter::setSubstChars ( string $chars )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

chars

Valeurs de retour


Fonction de rappel "to"

  • « UConverter::setSubstChars
  • UConverter::transcode »
  • PHP Manual
  • UConverter
  • Fonction de rappel "to"

UConverter::toUCallback

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::toUCallback — Fonction de rappel "to"

Description

public mixed UConverter::toUCallback ( integer $reason , string $source , string $codeUnits , integer &$error )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

reason

source

codeUnits

error

Valeurs de retour


Convertit une chaîne depuis un jeu de caractères vers un autre jeu de caractères

  • « UConverter::toUCallback
  • Fonctions Grapheme »
  • PHP Manual
  • UConverter
  • Convertit une chaîne depuis un jeu de caractères vers un autre jeu de caractères

UConverter::transcode

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::transcode — Convertit une chaîne depuis un jeu de caractères vers un autre jeu de caractères

Description

public static string UConverter::transcode ( string $str , string $toEncoding , string $fromEncoding [, array $options ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

str

toEncoding

fromEncoding

options

Valeurs de retour


Fonctions Grapheme

Sommaire

  • grapheme_extract — Extrait un groupe de graphème d'une chaîne UTF-8
  • grapheme_stripos — Trouve la position en graphème de la première occurrence dans une chaîne, insensible à la casse
  • grapheme_stristr — Retourne la partie d'une chaîne à partir d'une occurrence
  • grapheme_strlen — Lit la taille d'une chaîne en nombre de graphème
  • grapheme_strpos — Trouve la position du premier graphème
  • grapheme_strripos — Trouve la position du dernier graphème, insensible à la casse
  • grapheme_strrpos — Trouve la position du dernier graphème
  • grapheme_strstr — Retourne la partie d'une chaîne à partir d'une occurrence, insensible à la casse
  • grapheme_substr — Retourne une partie d'une chaîne


Extrait un groupe de graphème d'une chaîne UTF-8

  • « Fonctions Grapheme
  • grapheme_stripos »
  • PHP Manual
  • Fonctions Grapheme
  • Extrait un groupe de graphème d'une chaîne UTF-8

grapheme_extract

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_extract — Extrait un groupe de graphème d'une chaîne UTF-8

Description

Style procédural

string grapheme_extract ( string $haystack , int $size [, int $extract_type [, int $start = 0 [, int &$next ]]] )

Cette fonction extrait une séquence de groupes de graphèmes par défaut d'un texte en UTF-8.

Liste de paramètres

haystack

La chaîne à étudier.

size

Le nombre maximal d'élément, en fonction de $extract_type, à retourner.

extract_type

Définit le type d'unités indiquées par le paramètre $size :

  • GRAPHEME_EXTR_COUNT (par défaut) : $size est le nombre de groupe de graphèmes à extraire.
  • GRAPHEME_EXTR_MAXBYTES : $size est le nombre d'octets à retourner.
  • GRAPHEME_EXTR_MAXCHARS : $size est le nombre de caractères UTF-8 à retourner.

start

La position de début dans $haystack, exprimée en octets. Elle doit être positive, nulle ou inférieure à la taille de $haystack en octets. Si $start ne correspond pas au premier octets d'un caractère UTF-8 valide, la position de démarrage sera déplacée au prochain octet valide.

next

Référence à une variable qui recevra la prochaine position de début valide. Lorsque la fonction se termine, cela peut être une position qui est au dela de la taille de la chaîne.

Valeurs de retour

Une chaîne qui débute à la position $start et se termine à la limite valide d'un graphème, et qui se conformen aux conditions $size et $extract_type.

Exemples

Exemple #1 Exemple avec grapheme_extract()

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_extract( $char_a_ring_nfd . $char_o_diaeresis_nfd, 1, GRAPHEME_EXTR_COUNT, 2));

?>

L'exemple ci-dessus va afficher :

o%CC%88

Voir aussi

  • grapheme_substr() - Retourne une partie d'une chaîne
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Trouve la position en graphème de la première occurrence dans une chaîne, insensible à la casse

  • « grapheme_extract
  • grapheme_stristr »
  • PHP Manual
  • Fonctions Grapheme
  • Trouve la position en graphème de la première occurrence dans une chaîne, insensible à la casse

grapheme_stripos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_stripos — Trouve la position en graphème de la première occurrence dans une chaîne, insensible à la casse

Description

Style procédural

int grapheme_stripos ( string $haystack , string $needle [, int $offset = 0 ] )

Trouve la position en graphème de la première occurrence dans une chaîne, en effectuant une recherche insensible à la casse.

Liste de paramètres

haystack

La chaîne à étudier. Elle doit être au format UTF-8 valide.

needle

La chaîne à rechercher. Elle doit être au format UTF-8 valide.

offset

Le paramètre $offset permet de spécifier la position dans la $haystack de début de recherche, exprimée en graphème (et non pas en octets ou caractères). La position retournée est toujours donnée par rapport au début de $haystack, quelque soit la valeur de $offset.

Valeurs de retour

Retourne la position, sous forme d'un entier. Si $needle n'est pas trouvé, grapheme_stripos() retourne FALSE.

Exemples

Exemple #1 Exemple avec grapheme_stripos()

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) forme normalisée "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) forme normalisée "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) forme normalisée "D"

print grapheme_stripos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>

L'exemple ci-dessus va afficher :

2

Voir aussi

  • grapheme_stristr() - Retourne la partie d'une chaîne à partir d'une occurrence
  • grapheme_strpos() - Trouve la position du premier graphème
  • grapheme_strripos() - Trouve la position du dernier graphème, insensible à la casse
  • grapheme_strrpos() - Trouve la position du dernier graphème
  • grapheme_strstr() - Retourne la partie d'une chaîne à partir d'une occurrence, insensible à la casse
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Retourne la partie d'une chaîne à partir d'une occurrence

  • « grapheme_stripos
  • grapheme_strlen »
  • PHP Manual
  • Fonctions Grapheme
  • Retourne la partie d'une chaîne à partir d'une occurrence

grapheme_stristr

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_stristr — Retourne la partie d'une chaîne à partir d'une occurrence

Description

Style procédural

string grapheme_stristr ( string $haystack , string $needle [, bool $before_needle = false ] )

Retourne la partie d'une chaîne à partir de la première occurrence de needle (needle inclus) (insensible à la casse), et jusqu'à la fin de la chaîne.

Liste de paramètres

haystack

La chaîne à étudier. Elle doit être valide UTF-8.

needle

La chaîne à rechercher. Elle doit être valide UTF-8.

before_needle

Si TRUE, grapheme_stristr() retourne la partie de haystack avant la première occurrence (needle exclus).

Valeurs de retour

Retourne une portion de $haystack, ou FALSE si $needle n'est pas trouvé.

Exemples

Exemple #1 Exemple avec grapheme_stristr()

<?php

$char_a_ring_nfd  = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5)  forme normalisée "D"
$char_o_diaeresis_nfd  = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) forme  normalisée "D"
$char_O_diaeresis_nfd =  "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) forme  normalisée "D"

print  urlencode(grapheme_stristr( $char_a_ring_nfd . $char_o_diaeresis_nfd .  $char_a_ring_nfd, $char_O_diaeresis_nfd));

?>

L'exemple ci-dessus va afficher :

o%CC%88a%CC%8A

Voir aussi

  • grapheme_stripos() - Trouve la position en graphème de la première occurrence dans une chaîne, insensible à la casse
  • grapheme_strpos() - Trouve la position du premier graphème
  • grapheme_strripos() - Trouve la position du dernier graphème, insensible à la casse
  • grapheme_strrpos() - Trouve la position du dernier graphème
  • grapheme_strstr() - Retourne la partie d'une chaîne à partir d'une occurrence, insensible à la casse
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Lit la taille d'une chaîne en nombre de graphème

  • « grapheme_stristr
  • grapheme_strpos »
  • PHP Manual
  • Fonctions Grapheme
  • Lit la taille d'une chaîne en nombre de graphème

grapheme_strlen

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strlen — Lit la taille d'une chaîne en nombre de graphème

Description

Style procédural

int grapheme_strlen ( string $input )

Lit la taille d'une chaîne en nombre de graphème (et non pas en octets ou caractères).

Liste de paramètres

input

La chaîne à mesurer. Elle doit être une chaîne UTF-8 valide.

Valeurs de retour

La taille de la chaîne, et 0 si la chaîne est vide.

Exemples

Exemple #1 Exemple avec grapheme_strlen()

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) forme normalisée "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) forme normalisée "D"

print grapheme_strlen( 'abc' . $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd);

?>

L'exemple ci-dessus va afficher :

6

Voir aussi

  • » Unicode Text Segmentation: Grapheme Cluster Boundaries
  • iconv_strlen() - Retourne le nombre de caractères d'une chaîne
  • mb_strlen() - Retourne la taille d'une chaîne
  • strlen() - Calcule la taille d'une chaîne


Trouve la position du premier graphème

  • « grapheme_strlen
  • grapheme_strripos »
  • PHP Manual
  • Fonctions Grapheme
  • Trouve la position du premier graphème

grapheme_strpos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strpos — Trouve la position du premier graphème

Description

Style procédural

int grapheme_strpos ( string $haystack , string $needle [, int $offset = 0 ] )

Trouve la position du permier graphème dans une chaîne.

Liste de paramètres

haystack

La chaîne à étudier. Elle doit être au format UTF-8 valide.

needle

La chaîne à étudier. Elle doit être au format UTF-8 valide.

offset

Le paramètre $offset permet de spécifier la position dans la $haystack de début de recherche, exprimée en graphème (et non pas en octets ou caractères). La position retournée est toujours donnée par rapport au début de $haystack, quelque soit la valeur de $offset.

Valeurs de retour

Retourne l position sous forme d'entier. Si $needle n'est pas trouvé, grapheme_strripos() retourne FALSE.

Exemples

Exemple #1 Exemple avec grapheme_strpos()

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) forme normalisée "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) forme normalisée "D"

print grapheme_strpos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_o_diaeresis_nfd);

?>

L'exemple ci-dessus va afficher :

2

Voir aussi

  • grapheme_stripos() - Trouve la position en graphème de la première occurrence dans une chaîne, insensible à la casse
  • grapheme_stristr() - Retourne la partie d'une chaîne à partir d'une occurrence
  • grapheme_strripos() - Trouve la position du dernier graphème, insensible à la casse
  • grapheme_strrpos() - Trouve la position du dernier graphème
  • grapheme_strstr() - Retourne la partie d'une chaîne à partir d'une occurrence, insensible à la casse
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Trouve la position du dernier graphème, insensible à la casse

  • « grapheme_strpos
  • grapheme_strrpos »
  • PHP Manual
  • Fonctions Grapheme
  • Trouve la position du dernier graphème, insensible à la casse

grapheme_strripos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strripos — Trouve la position du dernier graphème, insensible à la casse

Description

Style procédural

int grapheme_strripos ( string $haystack , string $needle [, int $offset = 0 ] )

Trouve la position du dernier graphème, en effectuant une recherche insensible à la casse.

Liste de paramètres

haystack

La chaîne à étudier. Elle doit être au format UTF-8 valide.

needle

La chaîne à rechercher. Elle doit être au format UTF-8 valide.

offset

Le paramètre $offset permet de spécifier la position dans la $haystack de début de recherche, exprimée en graphème (et non pas en octets ou caractères). La position retournée est toujours donnée par rapport au début de $haystack, quelque soit la valeur de $offset.

Valeurs de retour

Retourne l position sous forme d'entier. Si $needle n'est pas trouvé, grapheme_strripos() retourne FALSE.

Exemples

Exemple #1 Exemple avec grapheme_strripos()

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) forme normalisée form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) forme normalisée "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) forme normalisée "D"

print grapheme_strripos( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>

L'exemple ci-dessus va afficher :

2

Voir aussi

  • grapheme_stripos() - Trouve la position en graphème de la première occurrence dans une chaîne, insensible à la casse
  • grapheme_stristr() - Retourne la partie d'une chaîne à partir d'une occurrence
  • grapheme_strpos() - Trouve la position du premier graphème
  • grapheme_strrpos() - Trouve la position du dernier graphème
  • grapheme_strstr() - Retourne la partie d'une chaîne à partir d'une occurrence, insensible à la casse
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Trouve la position du dernier graphème

  • « grapheme_strripos
  • grapheme_strstr »
  • PHP Manual
  • Fonctions Grapheme
  • Trouve la position du dernier graphème

grapheme_strrpos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strrpos — Trouve la position du dernier graphème

Description

Style procédural

int grapheme_strrpos ( string $haystack , string $needle [, int $offset = 0 ] )

Trouve la position du dernier graphème, en effectuant une recherche sensible à la casse.

Liste de paramètres

haystack

La chaîne à étudier. Elle doit être au format UTF-8 valide.

needle

La chaîne à rechercher. Elle doit être au format UTF-8 valide.

offset

Le paramètre $offset permet de spécifier la position dans la $haystack de début de recherche, exprimée en graphème (et non pas en octets ou caractères). La position retournée est toujours donnée par rapport au début de $haystack, quelque soit la valeur de $offset.

Valeurs de retour

Retourne la position sous forme d'un entier. Si $needle n'est pas trouvé, grapheme_strrpos() retourne FALSE.

Exemples

Exemple #1 Exemple avec grapheme_strrpos()

<?php
$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) forme normalisée "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) forme normalisée "D"

print grapheme_strrpos( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_o_diaeresis_nfd, $char_o_diaeresis_nfd);
?>

L'exemple ci-dessus va afficher :

2

Voir aussi

  • grapheme_stripos() - Trouve la position en graphème de la première occurrence dans une chaîne, insensible à la casse
  • grapheme_stristr() - Retourne la partie d'une chaîne à partir d'une occurrence
  • grapheme_strpos() - Trouve la position du premier graphème
  • grapheme_strripos() - Trouve la position du dernier graphème, insensible à la casse
  • grapheme_strstr() - Retourne la partie d'une chaîne à partir d'une occurrence, insensible à la casse
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Retourne la partie d'une chaîne à partir d'une occurrence, insensible à la casse

  • « grapheme_strrpos
  • grapheme_substr »
  • PHP Manual
  • Fonctions Grapheme
  • Retourne la partie d'une chaîne à partir d'une occurrence, insensible à la casse

grapheme_strstr

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strstr — Retourne la partie d'une chaîne à partir d'une occurrence, insensible à la casse

Description

Style procédural

string grapheme_strstr ( string $haystack , string $needle [, bool $before_needle = false ] )

Retourne la partie d'une chaîne à partir de la première occurrence de needle (sensible à la casse), et jusqu'à la fin de la chaîne (needle inclus).

Liste de paramètres

haystack

La chaîne à étudier. Elle doit être valide UTF-8.

needle

La chaîne à rechercher. Elle doit être valide UTF-8.

before_needle

Si TRUE, grapheme_strstr() retourne la partie de $haystack avant la première occurrence (grapheme_strstr() exclus).

Valeurs de retour

Retourne la portion de la chaîne de caractères ou FALSE si $needle n'est pas trouvé.

Exemples

Exemple #1 Exemple avec grapheme_strstr()

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_stristr( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd, $char_o_diaeresis_nfd));

?>

L'exemple ci-dessus va afficher :

o%CC%88a%CC%8A

Voir aussi

  • grapheme_stristr() - Retourne la partie d'une chaîne à partir d'une occurrence
  • grapheme_stripos() - Trouve la position en graphème de la première occurrence dans une chaîne, insensible à la casse
  • grapheme_strpos() - Trouve la position du premier graphème
  • grapheme_strripos() - Trouve la position du dernier graphème, insensible à la casse
  • grapheme_strrpos() - Trouve la position du dernier graphème
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Retourne une partie d'une chaîne

  • « grapheme_strstr
  • Fonctions IDN »
  • PHP Manual
  • Fonctions Grapheme
  • Retourne une partie d'une chaîne

grapheme_substr

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_substr — Retourne une partie d'une chaîne

Description

Style procédural

int grapheme_substr ( string $string , int $start [, int $length ] )

Retourne une partie d'une chaîne.

Liste de paramètres

string

La chaîne à couper. Doit être UTF-8 et valide.

start

La position de début, en unité par de graphèmes. Si $start est non-négatif, la chaîne retournée va commencer à la position $start dans la chaîne, en comptant à partir de 0. Si $start est négatif, la chaîne retournée va commencer à la position $start en comptant depuis la fin de la chaîne.

length

La taille de la sous-chaîne à extraire, en unités de graphème. Si $length est donné et positif, la chaîne retournée va contenir au plus $length graphèmes, commençant à $start (en fonction de la taille de la chaîne). Si $string est fourni et est négatif, alors autant de graphème seront omis à partir de la fin de la chaîne (après que la position de début ait été calculé, lorsque $start est aussi négatif). Si $start dénote une position au-delà de la fin de la chaîne, FALSE sera retournée.

Valeurs de retour

Retourne la partie de chaîne extraite de $string.

Historique

Version | Description
5.4 | Si length est fourni et est positif, et la chaîne fournie est plus petite que la longueur spécifiée, tout le reste de la chaîne, suivant le paramètre start sera retourné. Précédemment, FALSE était retourné.

Exemples

Exemple #1 Exemple avec grapheme_substr()

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_substr( "ao" . $char_a_ring_nfd . "bc" . $char_o_diaeresis_nfd . "O", 2, -1 ));
?>

L'exemple ci-dessus va afficher :

a%CC%8Abco%CC%88

Voir aussi

  • grapheme_extract() - Extrait un groupe de graphème d'une chaîne UTF-8
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Fonctions IDN

Sommaire

  • idn_to_ascii — Convertie un nom de domaine au format IDNA ASCII
  • idn_to_utf8 — Convertit le nom de domaine IDNA ASCII en Unicode


Convertie un nom de domaine au format IDNA ASCII

  • « Fonctions IDN
  • idn_to_utf8 »
  • PHP Manual
  • Fonctions IDN
  • Convertie un nom de domaine au format IDNA ASCII

idn_to_ascii

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.2, PHP 7, PECL idn >= 0.1)

idn_to_ascii — Convertie un nom de domaine au format IDNA ASCII

Description

Style procédural

string idn_to_ascii ( string $domain [, int $options = 0 [, int $variant = INTL_IDNA_VARIANT_2003 [, array &$idna_info ]]] )

Cette fonction convertit un nom de domaine Unicode au format IDNA ASCII-compatible.

Liste de paramètres

domain

Domaine à convertir. En PHP 5, il doit être encodé UTF-8.

options

Options de conversion - combinaison de constantes IDNA_*. (sauf les constantes IDNA_ERROR_*).

variant

Soit la constante INTL_IDNA_VARIANT_2003 pour IDNA 2003, soit la constante INTL_IDNA_VARIANT_UTS46 pour UTS #46.

idna_info

Ce paramètre ne peut être utilisé que si la cosntante INTL_IDNA_VARIANT_UTS46 a été utilisée dans le paramètre variant. Dans ce cas, ce sera un tableau avec la clé 'result' contenant le résultat de la transformation, la clé 'isTransitionalDifferent' contenant un booléen indiquant l'utilisation du mécanisme transitionnel UTS #46 ayant altéré ou non le résultat, et la clé 'errors' contenant un int représentant un jeu de bits des constantes d'erreurs IDNA_ERROR_*.

Valeurs de retour

Le nom de domaine encodé au format ASCII-compatible. ou FALSE si une erreur survient

Historique

Version | Description
5.4.0/PECL 2.0.0b1 | Ajout du paramètre variant et du paramètre idna_info ; Support de l'UTS #46.

Exemples

Exemple #1 Exemple avec idn_to_ascii()

<?php

echo idn_to_ascii('täst.de');

?>

L'exemple ci-dessus va afficher :

xn--tst-qla.de

Voir aussi

  • idn_to_unicode()


Convertit le nom de domaine IDNA ASCII en Unicode

  • « idn_to_ascii
  • IntlException »
  • PHP Manual
  • Fonctions IDN
  • Convertit le nom de domaine IDNA ASCII en Unicode

idn_to_utf8

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.2, PHP 7, PECL idn >= 0.1)

idn_to_utf8 — Convertit le nom de domaine IDNA ASCII en Unicode

Description

Style procédural

string idn_to_utf8 ( string $domain [, int $options = 0 [, int $variant = INTL_IDNA_VARIANT_2003 [, array &$idna_info ]]] )

Convertit le nom de domaine au format IDNA ASCII-compatible en Unicode, encodé en UTF-8.

Liste de paramètres

domain

Domaine à convertir depuis le format IDNA ASCII-compatible.

options

Options de conversion - une combinaison des constantes IDNA_* (sauf les constantes IDNA_ERROR_*).

variant

Soit la constante INTL_IDNA_VARIANT_2003 pour IDNA 2003, soit la constante INTL_IDNA_VARIANT_UTS46 pour UTS #46.

idna_info

Ce paramètre ne peut être utilisé que si la constante INTL_IDNA_VARIANT_UTS46 a été utilisée comme paramètre pour variant. Dans ce cas, ce paramètre sera rempli par un tableau dont la clé 'result' contiendra le résultat de la transformation, la clé 'isTransitionalDifferent' contiendra un booléen indiquant si l'utilisation du mécanisme transitionnel UTS #46 a altéré ou non le résultat, et la clé 'errors' contiendra un int représentant un jeu de bits de constantes d'erreurs IDNA_ERROR_*.

Valeurs de retour

Nom de domaine en Unicode, encodé UTF-8. ou FALSE si une erreur survient

Historique

Version | Description
5.4.0/PECL 2.0.0b1 | Ajout des paramètres variant et idna_info ; Support de l'UTS #46.

Exemples

Exemple #1 Exemple avec idn_to_utf8()

<?php

echo idn_to_utf8('xn--tst-qla.de');

?>

L'exemple ci-dessus va afficher :

täst.de

Voir aussi

  • idn_to_unicode()


Exception class for intl errors

(PHP 5 > 5.5.0, PHP 7, PECL intl > 3.0.0a1)

Introduction

This class is used for generating exceptions when errors occur inside intl functions. Such exceptions are only generated when intl.use_exceptions is enabled.

Synopsis de la classe

IntlException extends Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The IntlIterator class

(No version information available, might only be in Git)

Introduction

This class represents iterator objects throughout the intl extension whenever the iterator cannot be identified with any other object provided by the extension. The distinct iterator object used internally by the foreach construct can only be obtained (in the relevant part here) from objects, so objects of this class serve the purpose of providing the hook through which this internal object can be obtained. As a convenience, this class also implements the Iterator interface, allowing the collection of values to be navigated using the methods defined in that interface. Both these methods and the internal iterator objects provided to foreach are backed by the same state (e.g. the position of the iterator and its current value).

Subclasses may provide richer functionality.

Synopsis de la classe

IntlIterator implements Iterator {
/* Méthodes */
public ReturnType current ( void )
public ReturnType key ( void )
public ReturnType next ( void )
public ReturnType rewind ( void )
public ReturnType valid ( void )
}

Sommaire

  • IntlIterator::current — Récupère l'élément courant
  • IntlIterator::key — Récupère la clé courante
  • IntlIterator::next — Se déplace sur l'élément suivant
  • IntlIterator::rewind — Re-positionne l'itérateur au premier élément
  • IntlIterator::valid — Vérifie si la position courant est valide


Récupère l'élément courant

  • « IntlIterator
  • IntlIterator::key »
  • PHP Manual
  • IntlIterator
  • Récupère l'élément courant

IntlIterator::current

(No version information available, might only be in Git)

IntlIterator::current — Récupère l'élément courant

Description

public ReturnType IntlIterator::current ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère la clé courante

  • « IntlIterator::current
  • IntlIterator::next »
  • PHP Manual
  • IntlIterator
  • Récupère la clé courante

IntlIterator::key

(No version information available, might only be in Git)

IntlIterator::key — Récupère la clé courante

Description

public ReturnType IntlIterator::key ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Se déplace sur l'élément suivant

  • « IntlIterator::key
  • IntlIterator::rewind »
  • PHP Manual
  • IntlIterator
  • Se déplace sur l'élément suivant

IntlIterator::next

(No version information available, might only be in Git)

IntlIterator::next — Se déplace sur l'élément suivant

Description

public ReturnType IntlIterator::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Re-positionne l'itérateur au premier élément

  • « IntlIterator::next
  • IntlIterator::valid »
  • PHP Manual
  • IntlIterator
  • Re-positionne l'itérateur au premier élément

IntlIterator::rewind

(No version information available, might only be in Git)

IntlIterator::rewind — Re-positionne l'itérateur au premier élément

Description

public ReturnType IntlIterator::rewind ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Vérifie si la position courant est valide

  • « IntlIterator::rewind
  • Fonctions intl »
  • PHP Manual
  • IntlIterator
  • Vérifie si la position courant est valide

IntlIterator::valid

(No version information available, might only be in Git)

IntlIterator::valid — Vérifie si la position courant est valide

Description

public ReturnType IntlIterator::valid ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Fonctions intl

Sommaire

  • intl_error_name — Lit le nom symbolique d'un code d'erreur donné
  • intl_get_error_code — Lit le dernier code d'erreur
  • intl_get_error_message — Lit la description de la dernière erreur
  • intl_is_failure — Vérifie si un code d'erreur indique un échec


Lit le nom symbolique d'un code d'erreur donné

  • « Fonctions intl
  • intl_get_error_code »
  • PHP Manual
  • Fonctions intl
  • Lit le nom symbolique d'un code d'erreur donné

intl_error_name

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_error_name — Lit le nom symbolique d'un code d'erreur donné

Description

string intl_error_name ( int $error_code )

Retourne le nom du code d'erreur ICU.

Liste de paramètres

error_code

Le code d'erreur ICU.

Valeurs de retour

La chaîne retournée sera celui du nom de la constante équivalente.

Exemples

Exemple #1 Exemple avec intl_error_name()

<?php
$coll     = collator_create( 'en_RU' );
$err_code = collator_get_error_code( $coll );

printf( "Le nom symbolique de  %d est %s\n.", $err_code, intl_error_name( $err_code ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Symbolic name for -128 is U_USING_FALLBACK_WARNING.

Voir aussi

  • intl_is_failure() - Vérifie si un code d'erreur indique un échec
  • intl_get_error_code() - Lit le dernier code d'erreur
  • intl_get_error_message() - Lit la description de la dernière erreur


Lit le dernier code d'erreur

  • « intl_error_name
  • intl_get_error_message »
  • PHP Manual
  • Fonctions intl
  • Lit le dernier code d'erreur

intl_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_get_error_code — Lit le dernier code d'erreur

Description

int intl_get_error_code ( void )

Pratique pour gérer les erreurs qui surviennent dans les méthodes statiques quand il n'y a pas d'objet dont on peut obtenir le message d'erreur.

Valeurs de retour

Le code d'erreur retourné par le dernier appel à l'API.

Exemples

Exemple #1 Exemple avec intl_get_error_code()

<?php
$coll = collator_create( '<bad_param>' );
if( !$coll ) {
    handle_error( intl_get_error_code() );
}
?>

Voir aussi

  • intl_is_failure() - Vérifie si un code d'erreur indique un échec
  • intl_error_name() - Lit le nom symbolique d'un code d'erreur donné
  • intl_get_error_message() - Lit la description de la dernière erreur
  • collator_get_error_code() - Lit la dernière erreur du collator
  • numfmt_get_error_code() - Lit le dernier code d'erreur du formateur


Lit la description de la dernière erreur

  • « intl_get_error_code
  • intl_is_failure »
  • PHP Manual
  • Fonctions intl
  • Lit la description de la dernière erreur

intl_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_get_error_message — Lit la description de la dernière erreur

Description

string intl_get_error_message ( void )

Lit le message d'erreur de la dernière fonction d'internationalisation appelée.

Valeurs de retour

La description de l'erreur qui est survenue durant le dernier appel de l'API.

Exemples

Exemple #1 Exemple avec intl_get_error_message()

<?php
if( Collator::getAvailableLocales() === false ) {
    show_error( intl_get_error_message() );
}
?>

Voir aussi

  • intl_error_name() - Lit le nom symbolique d'un code d'erreur donné
  • intl_get_error_code() - Lit le dernier code d'erreur
  • intl_is_failure() - Vérifie si un code d'erreur indique un échec
  • collator_get_error_message() - Lit le dernier message d'erreur du collator
  • numfmt_get_error_message() - Lit le dernier message d'erreur du formateur


Vérifie si un code d'erreur indique un échec

  • « intl_get_error_message
  • Chaînes de caractères multi-octets »
  • PHP Manual
  • Fonctions intl
  • Vérifie si un code d'erreur indique un échec

intl_is_failure

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_is_failure — Vérifie si un code d'erreur indique un échec

Description

bool intl_is_failure ( int $error_code )

Liste de paramètres

error_code

une valeur retournée par une des fonctions intl_get_error_code(), collator_get_error_code() .

Valeurs de retour

TRUE si le code indique un échec, et FALSE dans le cas d'une réussite ou d'une alerte.

Exemples

Exemple #1 Exemple avec intl_is_failure()

<?php
function check( $err_code )
{
    var_export( intl_is_failure( $err_code ) );
    echo "\n";
}

check( U_ZERO_ERROR );
check( U_USING_FALLBACK_WARNING );
check( U_ILLEGAL_ARGUMENT_ERROR );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

false
false
true

Voir aussi

  • intl_get_error_code() - Lit le dernier code d'erreur
  • collator_get_error_code() - Lit la dernière erreur du collator
  • Collator-getErrorCode() - Lit la dernière erreur du collator


Chaînes de caractères multi-octets

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Jeux de caractères supportés
  • Cas des caractères japonais
  • Entrées/Sorties HTTP
  • Jeux de caractères supportés
  • Exploitation des chaînes multi-octets en PHP
  • Prérequis de l'encodage en PHP
  • Fonctions sur les chaînes de caractères multi-octets
    • mb_check_encoding — Vérifie si une chaîne est valide pour un encodage spécifique
    • mb_convert_case — Modifie la casse d'une chaîne
    • mb_convert_encoding — Conversion d'encodage
    • mb_convert_kana — Convertit un "kana" en un autre ("zen-kaku", "han-kaku" et plus)
    • mb_convert_variables — Convertit l'encodage de variables
    • mb_decode_mimeheader — Décode un en-tête MIME
    • mb_decode_numericentity — Décode les entités HTML en caractères
    • mb_detect_encoding — Détecte un encodage
    • mb_detect_order — Lit/modifie l'ordre de détection des encodages
    • mb_encode_mimeheader — Encode une chaîne pour un en-tête MIM
    • mb_encode_numericentity — Encode les caractères en référence numérique HTML
    • mb_encoding_aliases — Récupère les aliases d'un type d'encodage connu
    • mb_ereg_match — Expression rationnelle POSIX pour les chaînes multi-octets
    • mb_ereg_replace_callback — Rechercher et remplacer par expression régulière avec support multi octets utilisant une fonction de callback
    • mb_ereg_replace — Remplace des segments de chaîne à l'aide des expressions rationnelles
    • mb_ereg_search_getpos — Retourne la position du début du prochain segment repéré par une expression rationnelle
    • mb_ereg_search_getregs — Lit le dernier segment de chaîne multi-octets qui correspond au masque
    • mb_ereg_search_init — Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets
    • mb_ereg_search_pos — Retourne la position et la longueur du segment de chaîne qui vérifie le masque de l'expression rationnelle
    • mb_ereg_search_regs — Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets
    • mb_ereg_search_setpos — Choisit le point de départ de la recherche par expression rationnelle
    • mb_ereg_search — Recherche par expression rationnelle multi-octets
    • mb_ereg — Recherche par expression rationnelle avec support des caractères multi-octets
    • mb_eregi_replace — Expression rationnelle avec support des caractères multi-octets, sans tenir compte de la casse
    • mb_eregi — Expression rationnelle insensible à la casse avec le support des caractères multi-octets
    • mb_get_info — Lit la configuration interne de l'extension mbstring
    • mb_http_input — Détecte le type d'encodage d'un caractère HTTP
    • mb_http_output — Lit/modifie l'encodage d'affichage
    • mb_internal_encoding — Lit/modifie l'encodage interne
    • mb_language — Lit/modifie le langage courant
    • mb_list_encodings — Retourne un tableau contenant tous les encodages supportés
    • mb_output_handler — Fonction de traitement des affichages
    • mb_parse_str — Analyse les données HTTP GET/POST/COOKIE et assigne les variables globales
    • mb_preferred_mime_name — Détecte l'encodage MIME
    • mb_regex_encoding — Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
    • mb_regex_set_options — Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multi-octets
    • mb_send_mail — Envoie un mail encodé
    • mb_split — Scinde une chaîne en tableau avec une expression rationnelle multi-octets
    • mb_strcut — Coupe une partie de chaîne
    • mb_strimwidth — Tronque une chaîne
    • mb_stripos — Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse
    • mb_stristr — Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse
    • mb_strlen — Retourne la taille d'une chaîne
    • mb_strpos — Repère la première occurrence d'un caractère dans une chaîne
    • mb_strrchr — Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre
    • mb_strrichr — Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre, insensible à la casse
    • mb_strripos — Trouve la position de la dernière occurrence d'une chaîne dans une autre, en ne tenant pas compte de la casse
    • mb_strrpos — Repère la dernière occurrence d'un caractère dans une chaîne
    • mb_strstr — Trouve la première occurrence d'une chaîne dans une autre
    • mb_strtolower — Met tous les caractères en minuscules
    • mb_strtoupper — Met tous les caractères en majuscules
    • mb_strwidth — Retourne la taille d'une chaîne
    • mb_substitute_character — Lit/modifie les caractères de substitution
    • mb_substr_count — Compte le nombre d'occurrences d'une sous-chaîne
    • mb_substr — Lit une sous-chaîne


Introduction

Même si la plupart des langues peuvent être représentées grâce à un jeu de 128 caractères, il y a d'autres langues qui requièrent des jeux de caractères bien plus grands. Des méthodes de caractères multi-octets ont été développées pour résoudre ce type de problème.

Lorsque vous manipulez des chaînes de caractères multi-octets, pour couper, rechercher ou nettoyer une chaîne, vous devez utiliser deux octets consécutifs, qui représentent un seul caractère. Si vous n'y prenez pas garde, vous allez obtenir une chaîne corrompue et invalide, avec une représentation totalement incompréhensible.

mbstring fournit les fonctions spécifiques de manipulations de chaînes qui vous permet de travailler avec les encodages multi-octets en PHP. En plus de cela, mbstring gère la traduction entre les jeux de caractères disponibles. mbstring est également connu pour gérer l'Unicode, comme UTF-8 et UCS-2 ainsi que de nombreux autres jeux mono-octets.


Installation

mbstring est un module PHP. Vous devez activer le module avec le script de configuration configure. Reportez-vous à la section installation pour plus de détails.

Les options de configurations suivantes sont liées au module mbstring.

  • --enable-mbstring : Active les fonctions mbstring. Cette option est nécessaire pour utiliser les fonctions mbstring.

    libmbfl est nécessaire pour mbstring. libmbfl est inclus avec mbstring. Si libmbfl est déjà installé sur le système, --with-libmbfl[=DIR] peut être spécifié pour utiliser la bibliothèque installée.

    À partir de PHP 4.3.0, l'extension mbstring fournit le support pour le chinois simplifié, le chinois traditionnel, le coréen et le russe en plus du japonais.

    Pour PHP 4.3.3 ou inférieur, pour activer cette fonctionnalité, vous devez fournir une des options suivantes dans le paramètre LANG de --with-mbstring=LANG : --with-mbstring=cn pour le support du chinois simplifié, --with-mbstring=tw pour le support du chinois traditionnel, --with-mbstring=kr pour le support du coréen, --with-mbstring=ru pour le support du russe et --enable-mbstring=ja pour le support du japonais (par défaut). Pour activer le support de tous ces encodages, utilisez --enable-mbstring=all .

    Note:

    Depuis PHP 4.3.4, tous les encodages supportés par libmbfl sont activables avec l'option --enable-mbstring .

  • --enable-mbstr-enc-trans : Active la conversion automatique des données par HTTP, avec le moteur de conversion de mbstring. Si cette option est activée, les données venant du web via HTTP seront converties dans le jeu de caractères mbstring.internal_encoding, automatiquement.

    Note:

    Depuis PHP 4.3.0, l'option --enable-mbstr-enc-trans sera éliminée, et remplacée par mbstring.encoding_translation. La conversion de jeu de caractères d'entrée HTTP sera activée lorsque cette option sera à On (par défaut, cette option vautOff).

  • --disable-mbregex : Désactive les fonctions d'expressions rationnelles, compatibles avec les caractères multi-octets.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration mbstring
Nom | Défaut | Modifiable | Historique
mbstring.language | "neutral" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. PHP_INI_PERDIR en PHP <= 5.2.6
mbstring.detect_order | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6.
mbstring.http_input | "pass" | PHP_INI_ALL | Disponible depuis PHP 4.0.6. Obsolète en PHP 5.6.0.
mbstring.http_output | "pass" | PHP_INI_ALL | Disponible depuis PHP 4.0.6. Obsolète en PHP 5.6.0.
mbstring.internal_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6. Obsolète en PHP 5.6.0.
mbstring.script_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 4.3.0. Supprimé depuis PHP 5.4.0. Utilisez zend.script_encoding à la place.
mbstring.substitute_character | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6.
mbstring.func_overload | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR depuis PHP 4.3 jusqu'à la version 5.2.6, sinon PHP_INI_SYSTEM. Disponible depuis PHP 4.2.0.
mbstring.encoding_translation | "0" | PHP_INI_PERDIR | Disponible depuis PHP 4.3.0.
mbstring.strict_detection | "0" | PHP_INI_ALL | Disponible depuis PHP 5.1.2.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mbstring.language chaîne de caractères

Définit le langage utilisé par mbstring. Notez que cette option définit mbstring.internal_encoding mbstring.internal_encoding doit être placé après mbstring.language dans le fichier php.ini

mbstring.encoding_translation booléen

Active la détection et la traduction des données d'entrées HTTP vers le codage interne mbstring.

mbstring.internal_encoding chaîne de caractères
Avertissement

Cette fonctionalité est devenue OBSOLETE depuis PHP 5.6.0. Nous vous encourageons vivement à ne plus l'utiliser.

Définit l'encodage interne par défaut.

Les utilisateurs de PHP 5.6 et suivants doivent laisser cette option vide et définir plutôt l'option default_charset.

mbstring.http_input chaîne de caractères
Avertissement

Cette fonctionalité est devenue OBSOLETE depuis PHP 5.6.0. Nous vous encourageons vivement à ne plus l'utiliser.

Définit l'encodage de réception HTTP par défaut.

Les utilisateurs de PHP 5.6 et suivants doivent laisser cette option vide et définir plutôt l'option default_charset.

mbstring.http_output chaîne de caractères
Avertissement

Cette fonctionalité est devenue OBSOLETE depuis PHP 5.6.0. Nous vous encourageons vivement à ne plus l'utiliser.

Définit l'encodage d'affichage HTTP par défaut (l'affichage sera converti depuis l'encodage interne vers l'encode HTTP de la sortie, lors de l'affichage).

Les utilisateurs de PHP 5.6 et suivants doivent laisser vide cette option et définir plutôt l'option default_charset.

mbstring.detect_order chaîne de caractères

Définit l'ordre de détection des encodages par défaut. Voir aussi mb_detect_order().

mbstring.substitute_character chaîne de caractères

Définit l'encodage de substitution par défaut : il est utilisé pour les caractères invalides.

mbstring.func_overload chaîne de caractères

Remplace les fonctions de traitement des chaînes par les fonctions mbstring. Voir les fonctions de remplacement pour plus d'informations.

Ce paramètre ne peut être changé que depuis le fichier php.ini.

mbstring.strict_detection booléen

Active la détection stricte de l'encodage.

En accord avec » HTML 4.01 specification, les navigateurs sont supposés utiliser le même jeu de caractères lorsqu'ils soumettent un formulaire. Mais, tous les navigateurs ne le font pas. Reportez-vous à la fonction mb_http_input() pour détecter les jeux de caractères utilisés par les navigateurs.

En général, les navigateurs sont suffisamment intelligents pour détecter les jeux de caractères dans le HTML. Néanmoins, il convient de définir le paramètre charset de l'en-tête HTTP Content-Type à la valeur fournie par la fonction header() ou par l'option de configuration default_charset.

Exemple #1 Configuration de php.ini pour mbstring

; Langage par défaut
mbstring.language        = Neutral; (UTF-8) (par défaut)
mbstring.language        = English; Anglais
mbstring.language        = Japanese; Japonais

;; Jeu de caractère interne
;; Note : assurez-vous que ce jeu fonctionne avec PHP
mbstring.internal_encoding    = UTF-8

;; Activation de la conversion automatique des entrées HTTP
mbstring.encoding_translation = On

;; Jeu de caractères par défaut pour les données d'entrée HTTP
;; Note : le script ne peux pas changer cette configuration
mbstring.http_input           = pass    ; Aucune conversion.
mbstring.http_input           = auto    ; Utilise auto
                                ; "auto" est remplacé suivant mbstring.language
mbstring.http_input           = SJIS    ; Utilise SJIS
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Spécifie l'ordre

;;Jeu de caractères par défaut pour les données de sortie HTTP
mbstring.http_output          = pass    ; Aucune conversion
mbstring.http_output          = UTF-8   ; Utilise UTF-8

;; Ordre de détection des jeux de caractères
mbstring.detect_order         = auto    ; Utilise la détection automatique
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Spécifie l'ordre

;; Déterminer le jeu de caractères de substitution par défaut
mbstring.substitute_character = 12307   ; Spécifie une valeur Unicode
mbstring.substitute_character = none    ; Ne pas afficher de caractères
mbstring.substitute_character = long    ; Exemple complet : U+3000,JIS+7E7E

Exemple #2 Configuration de php.ini pour les utilisateurs de EUC-JP

;; Désactive la bufferisation de sortie
output_buffering      = Off

;; Choisit le jeu de caractères
default_charset       = EUC-JP

;; Le langage par défaut est le japonais
mbstring.language = Japanese

;; Activation de la traduction automatique des données d'entrée HTTP
mbstring.encoding_translation = On

;; Activation de la conversion automatique
mbstring.http_input   = auto

;; Convertit les sorties en EUC-JP
mbstring.http_output  = EUC-JP

;; Utilise le jeu de caractères interne EUC-JP
mbstring.internal_encoding = EUC-JP

;; Ne pas afficher les caractères invalides
mbstring.substitute_character = none

Exemple #3 Configuration de php.ini pour les utilisateurs de SJIS

;; Active la bufferisation de sortie
output_buffering     = On

;; Utilise le gestionnaire mb_output_handler pour la conversion de sortie
output_handler       = mb_output_handler

;; Choisit le jeu de caractères
default_charset      = Shift_JIS

;; Le langage par défaut est le japonais
mbstring.language = Japanese

;; Activation de la traduction automatique des données d'entrée HTTP
mbstring.http_input  = auto

;; Convertit en SJIS
mbstring.http_output = SJIS

;;Utilise le jeu de caractères interne EUC-JP
mbstring.internal_encoding = EUC-JP

;; Ne pas afficher les caractères invalides
mbstring.substitute_character = none


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MB_OVERLOAD_MAIL (entier)
MB_OVERLOAD_STRING (entier)
MB_OVERLOAD_REGEX (entier)
MB_CASE_UPPER (entier)
MB_CASE_LOWER (entier)
MB_CASE_TITLE (entier)


Jeux de caractères supportés

Jeux de caractères supportés
Nom dans le registre IANA | Jeux de caractères | Description | Notes
ISO-10646-UCS-4 | ISO 10646 | Le jeu de caractères universel (Universal Character Set), avec 31 bits par caractère, au standard UCS-4 par ISO/IEC 10646. Il est synchronisé avec la dernière version d'Unicode. | Si ce nom est utilisé dans l'outil de conversion, le convertisseur essaie de reconnaître le texte à partir du dernier BOM (byte order mark), pour connaître l'ordre des bits.
ISO-10646-UCS-4 | UCS-4 | Voir ci-dessus. | Contrairement à UCS-4, les chaînes sont supposées être au format big endian.
ISO-10646-UCS-4 | UCS-4 | Voir ci-dessus. | Contrairement à UCS-2, les chaînes sont supposées être au format little endian.
ISO-10646-UCS-2 | UCS-2 | Le jeu de caractères universel (Universal Character Set), avec 16 bits par caractère, au standard UCS-2 par ISO/IEC 10646. Il est synchronisé avec la dernière version d'Unicode. | Si ce nom est utilisé dans l'outil de conversion, le convertisseur essaie de reconnaître le texte à partir du dernier BOM (byte order mark), pour connaître l'ordre des bits.
ISO-10646-UCS-2 | UCS-2 | Voir ci-dessus. | Contrairement à UCS-4, les chaînes sont supposées être au format big endian.
UTF-32 | Unicode | Format de transformation d'Unicode, de 32 bits, dont les cartes correspondent au jeu stantder Unicode. Ce jeu n'est pas identique à UCS-4 car les caractères Unicode étaient limités à des valeurs de 21 bits. | Si ce nom est utilisé dans l'outil de conversion, le convertisseur essaie de reconnaître le texte à partir du dernier BOM (byte order mark), pour connaître l'ordre des bits.
UTF-32BE | Unicode | Voir ci-dessus. | Contrairement à UTF-32, les chaînes sont supposées être au format big endian.
UTF-32LE | Unicode | Voir ci-dessus. | Contrairement à UTF-32, les chaînes sont supposées être au format little endian.
UTF-16 | Unicode | Format de transformation d'Unicode sur 16 bits. Il faut noter que UTF-16 n'est plus identique à UCS-2 car un mécanisme a été introduit en Unicode 2.0 et UTF-16 fait maintenant référence à un codage de 21 bits. | Si ce nom est utilisé dans l'outil de conversion, le convertisseur essaie de reconnaître le texte à partir du dernier BOM (byte order mark), pour connaître l'ordre des bits.
UTF-16BE | Unicode | Voir ci-dessus. | Contrairement à UTF-16, les chaînes sont supposées être au format little endian.
UTF-16LE | Unicode | Voir ci-dessus. | Contrairement à UTF-16, les chaînes sont supposées être au format big endian.
UTF-8 | Unicode / UCS | Format de transformation Unicode de 8 bits. | none
UTF-7 | Unicode | Un format compatible avec le courrier électronique d'Unicode, spécifié dans » RFC2152. | none
aucun | Unicode | Une variante d'UTF-7 qui est spécialement utilisée dans le » protocole IMAP. | none
US-ASCII (recommandé) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCII | ASCII / ISO 646 | ASCII, American Standard Code for Information Interchange est un format classique de 7 bits. Il est aussi normalisé internationalement, sous le nom ISO 646. | (none)
EUC-JP (recommandé) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese | Composé de US-ASCII / JIS X0201:1997 (hankaku kana) / JIS X0208:1990 / JIS X0212:1990 | Comme vous le voyez, le nom est dérivé de l'abréviation de Extended UNIX Code Packed Format for Japanese, ce jeu est essentiellement utilisé sur les plates-formes Unix. Le jeu original, Extended UNIX Code, est conçu sur la base de ISO 2022. | Le jeu identifié par EUC-JP est différent de IBM932 / CP932, qui est utilisé par OS/2® et Microsoft® Windows®. Pour échanger des informations avec ces plates-formes, utilisez EUCJP-WIN.
Shift_JIS (recommandé) / MS_Kanji / csShift_JIS | Composé de JIS X0201:1997 / JIS X0208:1997 | Shift_JIS a été développé au début des années 80, et, au même moment, les premiers traitements de textes étaient mis sur le marché. Il a été fait pour conserver la compatibilité avec le jeu JIS X 0201:1976. Selon la définition de l'IANA, le jeu de caractères Shift_JIS est légèrement différent de IBM932 / CP932. Cependant, les noms "SJIS" et "Shift_JIS" sont souvent utilisés à tort, pour ces jeux. | Pour CP932, utilisez SJIS-WIN.
(none) | Composé de JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions | Même si ce "jeu de caractères" utilise le même jeu que EUC-JP, il est en fait différent. Il a juste quelques caractères de différence. | none
Windows-31J / csWindows31J | Composé de JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions | Même si ce "jeu de caractères" utilise le même jeu que Shift_JIS, il est en fait différent. Il a juste quelques caractères de différence. | (none)
ISO-2022-JP (recommandé) / csISO2022JP | US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983 | » RFC1468 | aucun
JIS |  |  |
ISO-8859-1 |  |  |
ISO-8859-2 |  |  |
ISO-8859-3 |  |  |
ISO-8859-4 |  |  |
ISO-8859-5 |  |  |
ISO-8859-6 |  |  |
ISO-8859-7 |  |  |
ISO-8859-8 |  |  |
ISO-8859-9 |  |  |
ISO-8859-10 |  |  |
ISO-8859-13 |  |  |
ISO-8859-14 |  |  |
ISO-8859-15 |  |  |
byte2be |  |  |
byte2le |  |  |
byte4be |  |  |
byte4le |  |  |
BASE64 |  |  |
HTML-ENTITIES |  |  |
7bit |  |  |
8bit |  |  |
EUC-CN |  |  |
CP936 |  |  |
HZ |  |  |
EUC-TW |  |  |
CP950 |  |  |
BIG-5 |  |  |
EUC-KR |  |  |
UHC (CP949) |  |  |
ISO-2022-KR |  |  |
Windows-1251 (CP1251) |  |  |
Windows-1252 (CP1252) |  |  |
CP866 (IBM866) |  |  |
KOI8-R |  |  |


Cas des caractères japonais

Les caractères japonais ne peuvent être représentés qu'avec des encodages multi-octets et les standards d'encodage multiple sont utilisés suivant la plate-forme et le texte de référence. Pour faciliter les choses, ces standards d'encodages diffèrent légèrement les uns des autres. Pour développer des applications Web en environnement japonais, le développeur devra garder à l'esprit ces complexités afin de s'assurer que l'encodage de caractères correct est utilisé.

  • La taille nécessaire à un caractère peut aller jusqu'à 4 octets.
  • Un caractère japonais multi-octets occupe généralement deux octets, à comparer avec les caractères mono-octet traditionnellement utilisés. Ces caractères sont appelés "zen-kaku", ce qui signifie "grande largeur". Les plus petits sont appelés "han-kaku", ce qui signifie "demi-largeur".
  • Certains encodages de caractères utilisent des séquences "shift" (escape) définies dans la référence ISO-2022 pour basculer vers la carte d'encodage du code spécifique (00h à 7fh).
  • ISO-2022-JP doit être utilisé pour les protocoles SMTP/NNTP, et les en-têtes ainsi que les entités devraient être réencodés en accord avec la RFC correspondante. Bien que cela ne soit pas requis, ça reste une bonne idée car beaucoup de user-agent (agents utilisateurs) populaires ne peuvent pas reconnaître d'autre méthode d'encodage.
  • Les pages Web créées pour les téléphones portables comme » i-mode, ou » EZweb sont supposées utiliser l'encodage Shift_JIS.
  • Depuis PHP 5.4.0, les caractères en pictogramme utilisés pour les téléphones mobiles, tel que » i-mode ou » EZweb sont supportés.


Entrées/Sorties HTTP

La conversion automatique des entrées/sorties HTTP peut aussi convertir des données binaires. Les utilisateurs doivent contrôler les conversions, si des données binaires doivent être utilisées via HTTP.

Note:

Depuis la version 4.3.2 de PHP, il y a une limitation dans l'utilisation des fonctionnalités mbstring : l'encodage ne sera pas effectué dans les données transmises en méthode POST si l'attribut enctype de la balise form vaut multipart/form-data. Donc, vous devrez convertir les données entrantes vous-même dans ce cas, si nécessaire.

Depuis la version 4.3.3 de PHP, si l'attribut enctype de la balise form vaut multipart/form-data et que la directive du php.ini est positionnée à On, les variables et les noms de fichiers téléchargés en méthode POST seront convertis avec l'encodage interne. Sinon, la conversion ne sera pas faite.

  • Entrée HTTP

    Il n'y a pas de moyens de contrôler la conversion des caractères HTTP en entrée, depuis un script PHP. Pour désactiver cette conversion, il faut le faire dès le fichier php.ini.

    Exemple #1 Désactive la conversion HTTP dans le php.ini

    ;; Disable HTTP Input conversion
mbstring.http_input = pass
;; Disable HTTP Input conversion (PHP 4.3.0 or higher)
mbstring.encoding_translation = Off

    Lorsque vous utilisez PHP comme module Apache, il est possible d'annuler la configuration du php.ini pour chaque Virtual Host dans le fichier httpd.conf ou par dossier avec le fichier .htaccess. Reportez-vous à la section de configuration ainsi qu'au manuel Apache.

  • Sorties HTTP

    Il y a plusieurs moyens d'activer la conversion en sortie de script PHP. L'un d'entre eux utilise php.ini, un autre utilise ob_start() avec la fonction mb_output_handler() comme fonction de rappel.

Exemple #2 Exemple de configuration de mbstring dans php.ini

;; Enable output character encoding conversion for all PHP pages

;; Enable Output Buffering
output_buffering    = On

;; Set mb_output_handler to enable output conversion
output_handler      = mb_output_handler

Exemple #3 Exemple de script avec mbstring

<?php

// Enable output character encoding conversion only for this page

// Set HTTP output character encoding to SJIS
mb_http_output('SJIS');

// Start buffering and specify "mb_output_handler" as
// callback function
ob_start('mb_output_handler');

?>


Jeux de caractères supportés

Actuellement, les jeux de caractères suivants sont supportés par mbstring. L'encodage de caractère peut être spécifié par les paramètres encoding dans les fonctions mbstring.

Les jeux de caractères suivants sont supportés par mbstring :

  • UCS-4*
  • UCS-4BE
  • UCS-4LE*
  • UCS-2
  • UCS-2BE
  • UCS-2LE
  • UTF-32*
  • UTF-32BE*
  • UTF-32LE*
  • UTF-16*
  • UTF-16BE*
  • UTF-16LE*
  • UTF-7
  • UTF7-IMAP
  • UTF-8*
  • ASCII*
  • EUC-JP*
  • SJIS*
  • eucJP-win*
  • SJIS-win*
  • ISO-2022-JP
  • ISO-2022-JP-MS
  • CP932
  • CP51932
  • SJIS-mac** (alias: MacJapanese)
  • SJIS-Mobile#DOCOMO** (alias: SJIS-DOCOMO)
  • SJIS-Mobile#KDDI** (alias: SJIS-KDDI)
  • SJIS-Mobile#SOFTBANK** (alias: SJIS-SOFTBANK)
  • UTF-8-Mobile#DOCOMO** (alias: UTF-8-DOCOMO)
  • UTF-8-Mobile#KDDI-A**
  • UTF-8-Mobile#KDDI-B** (alias: UTF-8-KDDI)
  • UTF-8-Mobile#SOFTBANK** (alias: UTF-8-SOFTBANK)
  • ISO-2022-JP-MOBILE#KDDI** (alias: ISO-2022-JP-KDDI)
  • JIS
  • JIS-ms
  • CP50220
  • CP50220raw
  • CP50221
  • CP50222
  • ISO-8859-1*
  • ISO-8859-2*
  • ISO-8859-3*
  • ISO-8859-4*
  • ISO-8859-5*
  • ISO-8859-6*
  • ISO-8859-7*
  • ISO-8859-8*
  • ISO-8859-9*
  • ISO-8859-10*
  • ISO-8859-13*
  • ISO-8859-14*
  • ISO-8859-15*
  • byte2be
  • byte2le
  • byte4be
  • byte4le
  • BASE64
  • HTML-ENTITIES
  • 7bit
  • 8bit
  • EUC-CN*
  • CP936
  • GB18030**
  • HZ
  • EUC-TW*
  • CP950
  • BIG-5*
  • EUC-KR*
  • UHC (CP949)
  • ISO-2022-KR
  • Windows-1251 (CP1251)
  • Windows-1252 (CP1252)
  • CP866 (IBM866)
  • KOI8-R*

* : encodages également utilisables dans les expressions rationnelles.

** : encodages disponibles depuis PHP 5.4.0.

Toutes les entrées du php.ini qui acceptent un nom d'encodage peuvent également utiliser les valeurs "auto" et "pass". Les fonctions mbstring, qui acceptent des noms de jeux de caractères, peuvent également utiliser la valeur "auto".

Si "pass" est utilisée, aucune conversion n'est effectuée.

Si "auto" est défini, la liste sera étendue à la liste des encodages définis par NLS. Par exemple, si NLS vaut Japanese, les valeurs seront "ASCII,JIS,UTF-8,EUC-JP,SJIS".

Voir aussi mb_detect_order().


Exploitation des chaînes multi-octets en PHP

Vous pourriez trouver difficile de faire fonctionner une application PHP existante dans un environnement multi-octets. Ceci est dû au fait que la plupart des applications PHP sont écrites avec des fonctions de chaînes de caractères standards comme la fonction substr(), qui est connue pour ne pas gérer proprement les chaînes multi-octets.

Mbstring supporte aussi la surcharge de fonctions, pour permettre le support des chaînes multi-octets sans modifier les scripts PHP. En utilisant ce système de surcharge de fonctions, certaines fonctions PHP seront remplacées par leur équivalent de mbstring. Par exemple mb_substr() remplacera substr(). Ce système de remplacement transparent, permet un portage simple et efficace des applications.

Pour utiliser la surcharge de fonctions, définissez mbstring.func_overload, dans le php.ini, à une valeur positive qui représente une combinaison de masques d'octets spécifiant les catégories de fonctions à surcharger. Il doit être définit à 1 pour surcharger la fonction mail(), 2 pour les fonctions de chaînes, 4 pour les fonctions d'expression rationnelles. Par exemple, avec la valeur 7, toutes les fonctions précédentes seront surchargées. Voici la liste complète des fonctions surchargées, avec leur fonction de remplacement.

Fonctions de remplacement
Valeur de mbstring.func_overload | Fonction originale | Fonction de remplacement
1 | mail() | mb_send_mail()
2 | strlen() | mb_strlen()
2 | strpos() | mb_strpos()
2 | strrpos() | mb_strrpos()
2 | substr() | mb_substr()
2 | strtolower() | mb_strtolower()
2 | strtoupper() | mb_strtoupper()
2 | stripos() | mb_stripos()
2 | strripos() | mb_strripos()
2 | strstr() | mb_strstr()
2 | stristr() | mb_stristr()
2 | strrchr() | mb_strrchr()
2 | substr_count() | mb_substr_count()
4 | ereg() | mb_ereg()
4 | eregi() | mb_eregi()
4 | ereg_replace() | mb_ereg_replace()
4 | eregi_replace() | mb_eregi_replace()
4 | split() | mb_split()

Note:

Il n'est pas recommandé d'utiliser le remplacement des fonctions mbstring dans un contexte de per-directory, car il n'est pas confirmé encore qu'elles sont suffisamment stables dans un environnement de production et peuvent conduire à des résultats incohérents.


Prérequis de l'encodage en PHP

Les jeux de caractères suivants sont bien supportés par PHP.

  • Jeux de caractères mono-octets :

    • qui sont compatibles avec la norme ASCII (compatible ISO646) pour les caractères de l'intervalle 00h à 7fh.

  • Jeux de caractères multi-octets :

    • qui sont compatibles avec la norme ASCII (compatible ISO646) pour les caractères de l'intervalle 00h à 7fh.
    • qui n'utilisent pas les séquences de type ISO2022.
    • qui n'utilisent pas de valeur dans l'intervalle 00h à 7fh dans les séquences composées, qui représentent un caractère unique.

Les jeux de caractères suivants risquent de ne pas fonctionner en PHP.

JIS, SJIS, ISO-2022-JP, BIG-5

Même si aucun script PHP écrit avec ces jeux de caractères ne fonctionne, notamment si des chaînes encodées sont utilisées comme identifiants, ou valeurs littérales dans le script, vous pouvez éviter d'utiliser ces jeux en activant le filtre transparent mbstring pour les données d'entrées HTTP.

Note:

Il est déconseillé d'utiliser les jeux SJIS, BIG5, CP936, CP949 et GB18030 pour l'encodage interne, à moins que vous ne soyez très familiers avec l'analyseur, l'exécuteur et le jeu de caractère lui-même.

Note:

Si vous vous connectez à une base de données avec PHP, il est recommandé d'utiliser le même jeu de caractères pour la base de données et pour le jeu interne pour améliorer le confort d'utilisation mais aussi les performances.

Si vous utilisez PostGreSQL, le jeu de caractères utilisé dans la base de données et celui de PHP peuvent différer car cette base supporte la traduction automatique de jeu de caractères.


Fonctions sur les chaînes de caractères multi-octets

Références

Les jeux de caractères multi-octets et leurs techniques sont très complexes et ne peuvent être traités totalement dans cette documentation. Reportez-vous aux URL suivantes pour d'autres ressources complémentaires :

  • Unicode/UTF/UCS/etc

    » http://www.unicode.org/

  • Japonais/coréen/Chinois

    » http://examples.oreilly.com/cjkvinfo/doc/cjk.inf

Sommaire

  • mb_check_encoding — Vérifie si une chaîne est valide pour un encodage spécifique
  • mb_convert_case — Modifie la casse d'une chaîne
  • mb_convert_encoding — Conversion d'encodage
  • mb_convert_kana — Convertit un "kana" en un autre ("zen-kaku", "han-kaku" et plus)
  • mb_convert_variables — Convertit l'encodage de variables
  • mb_decode_mimeheader — Décode un en-tête MIME
  • mb_decode_numericentity — Décode les entités HTML en caractères
  • mb_detect_encoding — Détecte un encodage
  • mb_detect_order — Lit/modifie l'ordre de détection des encodages
  • mb_encode_mimeheader — Encode une chaîne pour un en-tête MIM
  • mb_encode_numericentity — Encode les caractères en référence numérique HTML
  • mb_encoding_aliases — Récupère les aliases d'un type d'encodage connu
  • mb_ereg_match — Expression rationnelle POSIX pour les chaînes multi-octets
  • mb_ereg_replace_callback — Rechercher et remplacer par expression régulière avec support multi octets utilisant une fonction de callback
  • mb_ereg_replace — Remplace des segments de chaîne à l'aide des expressions rationnelles
  • mb_ereg_search_getpos — Retourne la position du début du prochain segment repéré par une expression rationnelle
  • mb_ereg_search_getregs — Lit le dernier segment de chaîne multi-octets qui correspond au masque
  • mb_ereg_search_init — Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets
  • mb_ereg_search_pos — Retourne la position et la longueur du segment de chaîne qui vérifie le masque de l'expression rationnelle
  • mb_ereg_search_regs — Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets
  • mb_ereg_search_setpos — Choisit le point de départ de la recherche par expression rationnelle
  • mb_ereg_search — Recherche par expression rationnelle multi-octets
  • mb_ereg — Recherche par expression rationnelle avec support des caractères multi-octets
  • mb_eregi_replace — Expression rationnelle avec support des caractères multi-octets, sans tenir compte de la casse
  • mb_eregi — Expression rationnelle insensible à la casse avec le support des caractères multi-octets
  • mb_get_info — Lit la configuration interne de l'extension mbstring
  • mb_http_input — Détecte le type d'encodage d'un caractère HTTP
  • mb_http_output — Lit/modifie l'encodage d'affichage
  • mb_internal_encoding — Lit/modifie l'encodage interne
  • mb_language — Lit/modifie le langage courant
  • mb_list_encodings — Retourne un tableau contenant tous les encodages supportés
  • mb_output_handler — Fonction de traitement des affichages
  • mb_parse_str — Analyse les données HTTP GET/POST/COOKIE et assigne les variables globales
  • mb_preferred_mime_name — Détecte l'encodage MIME
  • mb_regex_encoding — Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_regex_set_options — Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multi-octets
  • mb_send_mail — Envoie un mail encodé
  • mb_split — Scinde une chaîne en tableau avec une expression rationnelle multi-octets
  • mb_strcut — Coupe une partie de chaîne
  • mb_strimwidth — Tronque une chaîne
  • mb_stripos — Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse
  • mb_stristr — Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse
  • mb_strlen — Retourne la taille d'une chaîne
  • mb_strpos — Repère la première occurrence d'un caractère dans une chaîne
  • mb_strrchr — Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre
  • mb_strrichr — Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre, insensible à la casse
  • mb_strripos — Trouve la position de la dernière occurrence d'une chaîne dans une autre, en ne tenant pas compte de la casse
  • mb_strrpos — Repère la dernière occurrence d'un caractère dans une chaîne
  • mb_strstr — Trouve la première occurrence d'une chaîne dans une autre
  • mb_strtolower — Met tous les caractères en minuscules
  • mb_strtoupper — Met tous les caractères en majuscules
  • mb_strwidth — Retourne la taille d'une chaîne
  • mb_substitute_character — Lit/modifie les caractères de substitution
  • mb_substr_count — Compte le nombre d'occurrences d'une sous-chaîne
  • mb_substr — Lit une sous-chaîne


Vérifie si une chaîne est valide pour un encodage spécifique

  • « Fonctions sur les chaînes de caractères multi-octets
  • mb_convert_case »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Vérifie si une chaîne est valide pour un encodage spécifique

mb_check_encoding

(PHP 4 >= 4.4.3, PHP 5 >= 5.1.3, PHP 7)

mb_check_encoding — Vérifie si une chaîne est valide pour un encodage spécifique

Description

bool mb_check_encoding ([ string $var = NULL [, string $encoding = mb_internal_encoding() ]] )

Vérifie si le flux d'octets est valide pour l'encodage spécifique.

Liste de paramètres

var

Le flux d'octets à vérifier. Si elle est omise, cette fonction vérifie toutes les entrées depuis le début de la requête.

encoding

Encodage attendu.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Modifie la casse d'une chaîne

  • « mb_check_encoding
  • mb_convert_encoding »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Modifie la casse d'une chaîne

mb_convert_case

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_convert_case — Modifie la casse d'une chaîne

Description

string mb_convert_case ( string $str , int $mode [, string $encoding = mb_internal_encoding() ] )

Effectue la modification de la casse de la chaîne spécifiée, suivant le mode spécifié.

Liste de paramètres

str

La chaîne à convertir.

mode

Le mode de conversion. Peut être un parmi : MB_CASE_UPPER, MB_CASE_LOWER, ou MB_CASE_TITLE.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

La chaîne dont la casse a été changée, suivant le mode fourni.

Unicode

Contrairement aux fonctions standards comme strtolower() et strtoupper(), la modification est réalisée en se basant sur le dictionnaire Unicode. Par conséquent, le comportement de cette fonction n'est pas modifié par des configurations locales, et il peut convertir n'importe quel caractère qui a des propriétés alphabétiques, comme le a majuscule tréma (A-umlaut, Ä).

Pour plus d'informations sur les propriétés de l'Unicode, visitez le site de » http://www.unicode.org/unicode/reports/tr21/.

Exemples

Exemple #1 Exemple avec mb_convert_case()

<?php
$str = "mary had a Little lamb and she loved it so";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Affiche : MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Affiche : Mary Had A Little Lamb And She Loved It So
?>

Exemple #2 Exemple avec mb_convert_case() avec du texte UTF-8 non latin

<?php
$str = "????st? a??p?? ßaf?? ??µ??? ??, d?as?e???e? ?p?? ?????? ?????";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Affiche ????S?? ?????? ??F?S ?????? G?, ???S??????? ???? ?OT??? ????S
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Affiche ????st? ???p?? ?af?s ??µ??? G?, ??as?e???e? ?p?? ?????? ????s
?>

Voir aussi

  • mb_strtolower() - Met tous les caractères en minuscules
  • mb_strtoupper() - Met tous les caractères en majuscules
  • strtolower() - Renvoie une chaîne en minuscules
  • strtoupper() - Renvoie une chaîne en majuscules
  • ucfirst() - Met le premier caractère en majuscule
  • ucwords() - Met en majuscule la première lettre de tous les mots


Conversion d'encodage

  • « mb_convert_case
  • mb_convert_kana »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Conversion d'encodage

mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_convert_encoding — Conversion d'encodage

Description

string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )

Convertit la chaîne str depuis l'encodage from_encoding vers l'encodage to_encoding.

Liste de paramètres

str

La chaîne à encoder.

to_encoding

Le type d'encodage utilisé pour la conversion de la chaîne str.

from_encoding

Spécifié par le nom de code des caractères, avant la conversion. Il est soit un tableau, ou une liste séparée par une virgule. Si from_encoding n'est pas spécifié, l'encodage interne sera utilisé.

Voir les encodages supportés.

Valeurs de retour

La chaîne encodée.

Exemples

Exemple #1 Exemple avec mb_convert_encoding()

<?php
/* Convertit l'encodage interne vers SJIS */
$str = mb_convert_encoding($str, "SJIS");

/* Convertit EUC-JP en UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* Détecte automatiquement un encodage entre JIS, eucjp-win ou sjis-win,
   Puis convertit en UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

/* "auto" signifie "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

Voir aussi

  • mb_detect_order() - Lit/modifie l'ordre de détection des encodages


Convertit un "kana" en un autre ("zen-kaku", "han-kaku" et plus)

  • « mb_convert_encoding
  • mb_convert_variables »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Convertit un "kana" en un autre ("zen-kaku", "han-kaku" et plus)

mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_convert_kana — Convertit un "kana" en un autre ("zen-kaku", "han-kaku" et plus)

Description

string mb_convert_kana ( string $str [, string $option = "KV" [, string $encoding = mb_internal_encoding() ]] )

Effectue une conversion "han-kaku" - "zen-kaku" sur la chaîne str. Cette fonction est uniquement utile pour les japonais.

Liste de paramètres

str

La chaîne à convertir.

option

L'option de conversion.

Spécifiez les conversions en combinant les valeurs suivantes.

Options de conversions disponibles
Option | Signification
r | Convertit l'alphabet "zen-kaku" en "han-kaku"
R | Convertit l'alphabet "han-kaku" en "zen-kaku"
n | Convertit les nombres "zen-kaku" en "han-kaku"
N | Convertit les nombres "han-kaku" en "zen-kaku"
a | Convertit les nombres et alphabet "zen-kaku" en "han-kaku"
A | Convertit les nombres et alphabet "zen-kaku" en "han-kaku". (Les caractères inclus dans les options "a", "A" sont U+0021 - U+007E en excluant U+0022, U+0027, U+005C, U+007E)
s | Convertit "zen-kaku" en "han-kaku" (U+3000 -> U+0020)
S | Convertit "han-kaku" en "zen-kaku" (U+0020 -> U+3000)
k | Convertit "zen-kaku kata-kana" en "han-kaku kata-kana"
K | Convertit "han-kaku kata-kana" en "zen-kaku kata-kana"
h | Convertit "zen-kaku hira-gana" en "han-kaku kata-kana"
H | Convertit "han-kaku kata-kana" en "zen-kaku hira-gana"
c | Convertit "zen-kaku kata-kana" en "zen-kaku hira-gana"
C | Convertit "zen-kaku hira-gana" en "zen-kaku kata-kana"
V | Supprime les notations vocales, et les convertit en caractères. À utiliser avec "K","H"

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

La chaîne convertie.

Exemples

Exemple #1 Exemple avec mb_convert_kana()

<?php
/* Convertit tous les "kana" en "zen-kaku" "kata-kana" */
$str = mb_convert_kana($str, "KVC");

/* Convertit "han-kaku" "kata-kana" en "zen-kaku" "kata-kana"
   et "zen-kaku" alpha-numeric en "han-kaku" */
$str = mb_convert_kana($str, "KVa");
?>


Convertit l'encodage de variables

  • « mb_convert_kana
  • mb_decode_mimeheader »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Convertit l'encodage de variables

mb_convert_variables

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_convert_variables — Convertit l'encodage de variables

Description

string mb_convert_variables ( string $to_encoding , mixed $from_encoding , mixed &$vars [, mixed &$... ] )

Convertit l'encodage des variables vars depuis l'encodage from_encoding vers l'encodage to_encoding

mb_convert_variables() place les chaînes dans un tableau ou un objet pour détecter l'encodage, mais la détection a tendance à échouer pour les chaînes de caractères de petites tailles. De ce fait, il est impossible de mixer les encodages dans un tableau ou un objet "simple".

Liste de paramètres

to_encoding

L'encodage dans lequel la chaîne doit être convertie.

from_encoding

from-encoding est une liste d'encodages possibles pour les variables vars, fourni sous forme d'un tableau ou d'une liste d'encodages, séparés par des virgules. Si from_encoding est omis, les encodages fournis dans mb_detect_order() sont utilisés.

vars

vars est une référence sur une variable à convertir. Les chaînes, tableaux et objets sont aussi supportés. mb_convert_variables() prend tous ces paramètres avec le même encodage.

...

Variables additionnelles.

Valeurs de retour

L'encodage avant conversion en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mb_convert_variables()

<?php
/* Convertit les variables $post1, $post2 en encodage interne */
$interenc = mb_internal_encoding();
$inputenc = mb_convert_variables($interenc, "ASCII,UTF-8,SJIS-win", $post1, $post2);
?>


Décode un en-tête MIME

  • « mb_convert_variables
  • mb_decode_numericentity »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Décode un en-tête MIME

mb_decode_mimeheader

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_decode_mimeheader — Décode un en-tête MIME

Description

string mb_decode_mimeheader ( string $str )

Décode la chaîne encodée str dans l'en-tête MIME.

Liste de paramètres

str

La chaîne à décoder.

Valeurs de retour

La chaîne décodée, avec un encodage interne.

Voir aussi

  • mb_encode_mimeheader() - Encode une chaîne pour un en-tête MIM


Décode les entités HTML en caractères

  • « mb_decode_mimeheader
  • mb_detect_encoding »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Décode les entités HTML en caractères

mb_decode_numericentity

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_decode_numericentity — Décode les entités HTML en caractères

Description

string mb_decode_numericentity ( string $str , array $convmap [, string $encoding = mb_internal_encoding() ] )

Convertit la chaîne d'entités HTML str en chaîne.

Liste de paramètres

str

La chaîne à décoder.

convmap

convmapest un tableau qui spécifie les codes à convertir.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

La chaîne convertie.

Exemples

Exemple #1 Exemple avec convmap

<?php
$convmap = array (
   int start_code1, int end_code1, int offset1, int mask1,
   int start_code2, int end_code2, int offset2, int mask2,
   ........
   int start_codeN, int end_codeN, int offsetN, int maskN );
// Spécifie les valeurs Unicode de début (start_codeN) et fin (end_codeN)
// Ajoutez offsetN à la valeur, et faites un ET bit-à-bit avec maskN, puis
// il convertit la valeur obtenue en entité numérique
?>

Voir aussi

  • mb_encode_numericentity() - Encode les caractères en référence numérique HTML


Détecte un encodage

  • « mb_decode_numericentity
  • mb_detect_order »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Détecte un encodage

mb_detect_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_detect_encoding — Détecte un encodage

Description

string mb_detect_encoding ( string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = false ]] )

Détecte l'encodage utilisé par la chaîne str.

Liste de paramètres

str

La chaîne à analyser.

encoding_list

encoding_list est une liste d'encodages, sous forme de tableau, ou bien de chaîne, les valeurs étant séparées par des virgules.

Si encoding_list est omis, l'ordre spécifié par mb_detect_order() est utilisé.

strict

strict spécifie si l'on doit utiliser une détection de l'encodage strict ou non. Par défaut, vaut FALSE.

Valeurs de retour

L'encodage détecté ou FALSE si l'encodage ne peut être détecté pour la chaîne de caractères donnée.

Exemples

Exemple #1 Exemple avec mb_detect_encoding()

<?php
/* Détecte l'encodage avec les valeurs par défaut */
echo mb_detect_encoding($str);

/* "auto" est modifié suivant mbstring.language */
echo mb_detect_encoding($str, "auto");

/* Spécifie une liste d'encodages possibles avec une liste à virgules */
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

/* Spécifie une liste d'encodages possibles avec un tableau  */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo mb_detect_encoding($str, $ary);
?>

Voir aussi

  • mb_detect_order() - Lit/modifie l'ordre de détection des encodages


Lit/modifie l'ordre de détection des encodages

  • « mb_detect_encoding
  • mb_encode_mimeheader »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Lit/modifie l'ordre de détection des encodages

mb_detect_order

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_detect_order — Lit/modifie l'ordre de détection des encodages

Description

mixed mb_detect_order ([ mixed $encoding_list = mb_detect_order() ] )

Remplace l'ordre de détection des encodages courant par encoding_list.

Liste de paramètres

encoding_list

encoding_list est un tableau, ou une liste d'encodages séparés par une virgule. Voir les encodages supportés.

Si encoding_list est omis, mb_detect_order() retourne l'ordre de détection courant des encodages dans un tableau.

Ce paramétrage affecte les fonctions mb_detect_encoding() et mb_send_mail().

Actuellement, mbstring supporte les filtres de détections ci-dessous. Si une séquence d'octets est invalide pour l'un des filtres suivants, la détection échouera.

UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

Pour ISO-8859-*, mbstring détecte toujours ISO-8859-*.

Pour UTF-16, UTF-32, UCS2 et UCS4 la détection échouera toujours.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mb_detect_order()

<?php
/* Remplace l'ordre de détection par une liste énumérée */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Remplace l'ordre de détection par un tableau */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Affiche l'ordre de détection courant */
echo implode(", ", mb_detect_order());
?>

Exemple #2 Exemple d'ordre de détection inutile

; Toujours détecté comme ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Toujours détecté comme UTF-8, depuis que les valeurs ASCII/UTF-7
; sont valides pour UTF-8
detect_order = UTF-8, ASCII, UTF-7

Voir aussi

  • mb_internal_encoding() - Lit/modifie l'encodage interne
  • mb_http_input() - Détecte le type d'encodage d'un caractère HTTP
  • mb_http_output() - Lit/modifie l'encodage d'affichage
  • mb_send_mail() - Envoie un mail encodé


Encode une chaîne pour un en-tête MIM

  • « mb_detect_order
  • mb_encode_numericentity »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Encode une chaîne pour un en-tête MIM

mb_encode_mimeheader

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_encode_mimeheader — Encode une chaîne pour un en-tête MIM

Description

string mb_encode_mimeheader ( string $str [, string $charset = mb_internal_encoding() [, string $transfer_encoding = "B" [, string $linefeed = "\r\n" [, int $indent = 0 ]]]] )

Encode la chaîne str en un en-tête MIME.

Liste de paramètres

str

La chaîne à encoder.

charset

charset est le nom de l'encodage utilisé par la chaîne str. La valeur par défaut est déterminée par les paramètres courants du NLS (mbstring.language). mb_internal_encoding() doit être le même encodage.

transfer_encoding

transfer_encoding est l'encodage de transfert. Il peut être "B" (Base64) ou "Q" (Quoted-Printable). Par défaut, c'est "B".

linefeed

linefeed spécifie les fins de lignes (EOF : end-of-line) utilisées par mb_encode_mimeheader() pour formater la chaîne (une » RFC définie la longueur d'une chaîne à partir de laquelle on doit ajouter une fin de ligne. La longueur courante est 74 caractères). La valeur par défaut est "\r\n" (CRLF).

indent

Indentation de la première ligne (nombre de caractères dans l'en-tête avant la chaîne str).

Valeurs de retour

Une version convertie de la chaîne en ASCII.

Exemples

Exemple #1 Exemple avec mb_encode_mimeheader()

<?php
$name = ""; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = mb_encode_mimeheader($name, "UTF-7", "Q") . " <" . $mbox . "@" . $doma . ">";
echo $addr;
?>

Notes

Note:

Cette fonction n'est pas faite pour couper les lignes en milieu de mots. Ce comportement peut ajouter des espaces non désirées dans un mot de la chaîne originale.

Voir aussi

  • mb_decode_mimeheader() - Décode un en-tête MIME


Encode les caractères en référence numérique HTML

  • « mb_encode_mimeheader
  • mb_encoding_aliases »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Encode les caractères en référence numérique HTML

mb_encode_numericentity

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_encode_numericentity — Encode les caractères en référence numérique HTML

Description

string mb_encode_numericentity ( string $str , array $convmap [, string $encoding = mb_internal_encoding() [, bool $is_hex = FALSE ]] )

Convertit les codes des caractères spécifiés de la chaîne str en référence numérique HTML.

Liste de paramètres

str

La chaîne à encoder.

convmap

convmap est un tableau qui spécifie les codes à convertir.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

is_hex

Valeurs de retour

La chaîne convertie.

Historique

Version | Description
5.4.0 | Ajout du paramètre is_hex.

Exemples

Exemple #1 Exemple avec convmap

<?php
$convmap = array (
 int start_code1, int end_code1, int offset1, int mask1,
 int start_code2, int end_code2, int offset2, int mask2,
 ........
 int start_codeN, int end_codeN, int offsetN, int maskN );
// Spécifie les valeurs Unicode de début (start_codeN) et fin (end_codeN)
// Ajoutez offsetN à la valeur, et faites un ET bit-à-bit avec maskN, puis
// il convertit la valeur obtenue en entité numérique
?>

Exemples

Exemple #2 Exemple avec mb_encode_numericentity()

<?php
/* Convertit du ISO-8859-1 en entités HTML */
$convmap = array(0x80, 0xff, 0, 0xff);
$str = mb_encode_numericentity($str, $convmap, "ISO-8859-1");

/* Convertit du code SJIS-win (uniquement le bloc 95-104) en entités numériques */
$convmap = array(
       0xe000, 0xe03e, 0x1040, 0xffff,
       0xe03f, 0xe0bb, 0x1041, 0xffff,
       0xe0bc, 0xe0fa, 0x1084, 0xffff,
       0xe0fb, 0xe177, 0x1085, 0xffff,
       0xe178, 0xe1b6, 0x10c8, 0xffff,
       0xe1b7, 0xe233, 0x10c9, 0xffff,
       0xe234, 0xe272, 0x110c, 0xffff,
       0xe273, 0xe2ef, 0x110d, 0xffff,
       0xe2f0, 0xe32e, 0x1150, 0xffff,
       0xe32f, 0xe3ab, 0x1151, 0xffff );
$str = mb_encode_numericentity($str, $convmap, "sjis-win");
?>

Voir aussi

  • mb_decode_numericentity() - Décode les entités HTML en caractères


Récupère les aliases d'un type d'encodage connu

  • « mb_encode_numericentity
  • mb_ereg_match »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Récupère les aliases d'un type d'encodage connu

mb_encoding_aliases

(PHP 5 >= 5.3.0, PHP 7)

mb_encoding_aliases — Récupère les aliases d'un type d'encodage connu

Description

array mb_encoding_aliases ( string $encoding )

Retourne un tableau d'aliases pour un type connu d'encodage.

Liste de paramètres

encoding

Le type d'encodage à vérifier, pour les aliases.

Valeurs de retour

Retourne un tableau indexé numériquement contenant les aliases de l'encodage en cas de succès, ou FALSE si une erreur survient

Erreurs / Exceptions

Emits an E_WARNING level error if encoding is unknown.

Exemples

Exemple #1 Exemple avec mb_encoding_aliases()

<?php
$encoding        = 'ASCII';
$known_encodings = mb_list_encodings();

if (in_array($encoding, $known_encodings)) {

    $aliases = mb_encoding_aliases($encoding);
    print_r($aliases);

} else {

    echo "Encodage ($encoding) inconnu.\n";

}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => ANSI_X3.4-1968
    [1] => iso-ir-6
    [2] => ANSI_X3.4-1986
    [3] => ISO_646.irv:1991
    [4] => US-ASCII
    [5] => ISO646-US
    [6] => us
    [7] => IBM367
    [8] => cp367
    [9] => csASCII
)

Voir aussi

  • mb_list_encodings() - Retourne un tableau contenant tous les encodages supportés


Expression rationnelle POSIX pour les chaînes multi-octets

  • « mb_encoding_aliases
  • mb_ereg_replace_callback »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Expression rationnelle POSIX pour les chaînes multi-octets

mb_ereg_match

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_match — Expression rationnelle POSIX pour les chaînes multi-octets

Description

bool mb_ereg_match ( string $pattern , string $string [, string $option = "msr" ] )

Exécute l'expression rationnelle POSIX pour les chaînes multi-octets.

Liste de paramètres

pattern

L'expression rationnelle.

string

La chaîne à évaluer.

option

Valeurs de retour

string retourne TRUE si string vérifie l'expression rationnelle pattern, FALSE sinon.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multi-octets


Rechercher et remplacer par expression régulière avec support multi octets utilisant une fonction de callback

  • « mb_ereg_match
  • mb_ereg_replace »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Rechercher et remplacer par expression régulière avec support multi octets utilisant une fonction de callback

mb_ereg_replace_callback

(PHP 5 >= 5.4.1, PHP 7)

mb_ereg_replace_callback — Rechercher et remplacer par expression régulière avec support multi octets utilisant une fonction de callback

Description

string mb_ereg_replace_callback ( string $pattern , callable $callback , string $string [, string $option = "msr" ] )

Recherche les string qui correspondent au paramètre pattern, puis remplace les textes qui correspondent avec le retour de la fonction callback.

Le comportement de cette fonction est presque identique à mb_ereg_replace(), à part le fait que le paramètre replacement, doit spécifier une fonction de retour callback.

Liste de paramètres

pattern

L'expression régulière.

Les caractères multi octets peuvent être utilisé dans le pattern.

callback

Un callback qui sera appelé et lui sera passé un tableau d'éléments correspondants dans la chaine de caractère subject. Le callback doit retourné la chaîne remplacée.

Vous aurez souvent besoin de la fonction callback pour mb_ereg_replace_callback() juste une fois. Dans ce cas vous pouvez utiliser les fonctions anonymes pour déclarer une fonction de rappel lors de l'appel de la fonction mb_ereg_replace_callback(). En faisait cela de cette manière vous avez toutes les informations nécessaires à l'appel de la fonction en un seul endroit, ce qui permet d'éviter d'encombrer l'espace de nom des fonctions avec un callback de fonction qui n'est pas utilisé ailleur.

string

La string qui doit être vérifiée.

option

Matching condition can be set by option parameter. If i is specified for this parameter, the case will be ignored. If x is specified, white space will be ignored. If m is specified, match will be executed in multiline mode and line break will be included in '.'. If p is specified, match will be executed in POSIX mode, line break will be considered as normal character. Note that e cannot be used for mb_ereg_replace_callback().

Valeurs de retour

The resultant string en cas de succès, ou FALSE en cas d'erreur.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Exemples

Exemple #1 Exemple avec mb_ereg_replace_callback()

<?php
// this text was used in 2002
// we want to get this up to date for 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
// the callback function
function next_year($matches)
{
  // as usual: $matches[0] is the complete match
  // $matches[1] the match for the first subpattern
  // enclosed in '(...)' and so on
  return $matches[1].($matches[2]+1);
}
echo mb_ereg_replace_callback(
            "(\d{2}/\d{2}/)(\d{4})",
            "next_year",
            $text);

?>

L'exemple ci-dessus va afficher :

April fools day is 04/01/2003
Last christmas was 12/24/2002

Exemple #2 mb_ereg_replace_callback() utilise les fonctions anonymes supporté en PHP 5.3.0 ou supérieur

<?php
// this text was used in 2002
// we want to get this up to date for 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";

echo mb_ereg_replace_callback(
            "(\d{2}/\d{2}/)(\d{4})",
            function ($matches) {
               return $matches[1].($matches[2]+1);
            },
            $text);
?>

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_ereg_replace() - Remplace des segments de chaîne à l'aide des expressions rationnelles
  • Fonctions anonymes
  • Informations sur le type callback


Remplace des segments de chaîne à l'aide des expressions rationnelles

  • « mb_ereg_replace_callback
  • mb_ereg_search_getpos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Remplace des segments de chaîne à l'aide des expressions rationnelles

mb_ereg_replace

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_replace — Remplace des segments de chaîne à l'aide des expressions rationnelles

Description

string mb_ereg_replace ( string $pattern , string $replacement , string $string [, string $option = "msr" ] )

Recherche dans la chaîne string des occurrences correspondant au motif pattern, puis, les remplace avec le texte de remplacement replacement.

Liste de paramètres

pattern

L'expression rationnelle.

Les caractères multioctets peuvent être utilisés dans pattern.

replacement

Le texte de remplacement.

string

La chaîne à analyser.

option
Des options de recherches peuvent être configurées avec le paramètre option. Si i est spécifié, la casse sera ignorée. Si x est spécifié, les espaces blancs seront ignorés. Si m est spécifié, la recherche se fera en mode multiligne, et les nouvelles lignes seront incluses dans le joker .. Si p est spécifié, la recherche se fera en mode POSIX, les nouvelles lignes seront considérées comme des caractères normaux. Si e est spécifiée, replacement sera évaluée comme une expression PHP.

Valeurs de retour

La chaîne résultante en cas de succès, ou FALSE si une erreur survient.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Avertissement

N'utilisez jamais l'option e lorsque vous travaillez avec des données entrantes. Aucune protection automatique n'est appliquée (sous la forme de la fonction preg_replace()). Si vous omettez cette étape, vous allez certainement crée des failles dans votre application.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_eregi_replace() - Expression rationnelle avec support des caractères multi-octets, sans tenir compte de la casse


Retourne la position du début du prochain segment repéré par une expression rationnelle

  • « mb_ereg_replace
  • mb_ereg_search_getregs »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Retourne la position du début du prochain segment repéré par une expression rationnelle

mb_ereg_search_getpos

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_getpos — Retourne la position du début du prochain segment repéré par une expression rationnelle

Description

int mb_ereg_search_getpos ( void )

Retourne la position du début du prochain segment repéré par une expression rationnelle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

mb_ereg_search_getpos() retourne la position du
prochain segment de code qui correspond au masque utilisé dans
mb_ereg_search(),
mb_ereg_search_pos() et
mb_ereg_search_regs(). La position est le nombre
de caractères depuis le début de la chaîne.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_ereg_search_setpos() - Choisit le point de départ de la recherche par expression rationnelle


Lit le dernier segment de chaîne multi-octets qui correspond au masque

  • « mb_ereg_search_getpos
  • mb_ereg_search_init »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Lit le dernier segment de chaîne multi-octets qui correspond au masque

mb_ereg_search_getregs

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_getregs — Lit le dernier segment de chaîne multi-octets qui correspond au masque

Description

array mb_ereg_search_getregs ( void )

Lit le dernier segment de chaîne multi-octets qui correspond au masque.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

un tableau incluant toutes les sous-chaînes qui ont été trouvées par mb_ereg_search(), mb_ereg_search_pos() et mb_ereg_search_regs(). S'il y a une solution qui a été trouvée, le premier élément sera la sous-chaîne trouvée, le second représentera la première parenthèse capturante, le troisième représentera la deuxième parenthèse capturante, etc. Cette fonction retourne FALSE en cas d'erreur.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_ereg_search_init() - Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets


Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets

  • « mb_ereg_search_getregs
  • mb_ereg_search_pos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets

mb_ereg_search_init

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_init — Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets

Description

bool mb_ereg_search_init ( string $string [, string $pattern [, string $option = "msr" ]] )

mb_ereg_search_init() configure
string et pattern
pour supporter les expressions rationnelles multi-octets. Ces valeurs sont
utilisées par mb_ereg_search(),
mb_ereg_search_pos() et
mb_ereg_search_regs().

Liste de paramètres

string

La chaîne à chercher.

pattern

Le masque de recherche.

option

L'option de recherche.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_ereg_search_regs() - Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets


Retourne la position et la longueur du segment de chaîne qui vérifie le masque de l'expression rationnelle

  • « mb_ereg_search_init
  • mb_ereg_search_regs »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Retourne la position et la longueur du segment de chaîne qui vérifie le masque de l'expression rationnelle

mb_ereg_search_pos

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_pos — Retourne la position et la longueur du segment de chaîne qui vérifie le masque de l'expression rationnelle

Description

array mb_ereg_search_pos ([ string $pattern [, string $option = "ms" ]] )

Retourne la position et la longueur du segment de chaîne qui vérifie le masque de l'expression rationnelle.

La chaîne à utiliser est spécifiée par mb_ereg_search_init(). Si elle n'est pas spécifiée, la précédente sera utilisée.

Liste de paramètres

pattern

Le masque de recherche.

option

Les options de recherche.

Valeurs de retour

Un tableau contenant deux éléments. Le premier élément est la position, en octets, où la correspondance commence relativement au début de la chaîne recherchée, et le second élément est la longueur, en octets, de la correspondance.

Si une erreur survient, FALSE sera retourné.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_ereg_search_init() - Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets


Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets

  • « mb_ereg_search_pos
  • mb_ereg_search_setpos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets

mb_ereg_search_regs

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_regs — Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets

Description

array mb_ereg_search_regs ([ string $pattern [, string $option = "ms" ]] )

Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets.

Liste de paramètres

pattern

Le masque de recherche.

option

Les options de recherche.

Valeurs de retour

mb_ereg_search_regs() exécute l'expression rationnelle pattern, et, si un segment de chaîne correspond, elle le retourne dans un tableau, dont le premier élément est le segment de chaîne trouvé, le deuxième le contenu de la première parenthèse capturante, le troisième le contenu de la seconde parenthèse capturante, etc. La fonction retourne FALSE en cas d'erreur.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_ereg_search_init() - Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets


Choisit le point de départ de la recherche par expression rationnelle

  • « mb_ereg_search_regs
  • mb_ereg_search »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Choisit le point de départ de la recherche par expression rationnelle

mb_ereg_search_setpos

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_setpos — Choisit le point de départ de la recherche par expression rationnelle

Description

bool mb_ereg_search_setpos ( int $position )

mb_ereg_search_setpos() choisit le point de départ de la recherche que va effectuer la fonction mb_ereg_search().

Liste de paramètres

position

La position à définir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_ereg_search_init() - Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets


Recherche par expression rationnelle multi-octets

  • « mb_ereg_search_setpos
  • mb_ereg »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Recherche par expression rationnelle multi-octets

mb_ereg_search

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search — Recherche par expression rationnelle multi-octets

Description

bool mb_ereg_search ([ string $pattern [, string $option = "ms" ]] )

Recherche par expression rationnelle multi-octets.

Liste de paramètres

pattern

Le masque de recherche.

option

L'option de recherche.

Valeurs de retour

mb_ereg_search() retourne TRUE si la chaîne multi-octets correspond au masque d'expression rationnelle, ou bien FALSE sinon. La chaîne à étudier a été configurée avec la fonction mb_ereg_search_init(). Si le masque pattern n'est pas spécifié, le précédent sera utilisé.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_ereg_search_init() - Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets


Recherche par expression rationnelle avec support des caractères multi-octets

  • « mb_ereg_search
  • mb_eregi_replace »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Recherche par expression rationnelle avec support des caractères multi-octets

mb_ereg

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg — Recherche par expression rationnelle avec support des caractères multi-octets

Description

int mb_ereg ( string $pattern , string $string [, array $regs ] )

Recherche par expression rationnelle avec support des caractères multi-octets.

Liste de paramètres

pattern

Le masque de recherche.

string

La chaîne sur laquelle porte la recherche.

regs

Contient une sous-chaîne de la chaîne string.

Valeurs de retour

Exécute l'expression rationnelle pattern avec le support des caractères multi-octets sur la chaîne string. mb_ereg() retourne 1 si des segments de chaîne qui vérifient le masque ont été trouvés. Le troisième paramètre est optionnel. S'il est fourni, mb_ereg() retournera la taille du segment de chaîne identifié, regs contient les sous-chaînes. Si rien n'est trouvé, la fonction retourne FALSE.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_eregi() - Expression rationnelle insensible à la casse avec le support des caractères multi-octets


Expression rationnelle avec support des caractères multi-octets, sans tenir compte de la casse

  • « mb_ereg
  • mb_eregi »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Expression rationnelle avec support des caractères multi-octets, sans tenir compte de la casse

mb_eregi_replace

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_eregi_replace — Expression rationnelle avec support des caractères multi-octets, sans tenir compte de la casse

Description

string mb_eregi_replace ( string $pattern , string $replace , string $string [, string $option = "msri" ] )

Analyse la chaîne string avec le masque d'expression rationnelle pattern, puis remplace le texte trouvé par replacement.

Liste de paramètres

pattern

L'expression rationnelle. Les caractères multioctets peuvent être utilisés. La casse sera ignorée.

replace

Le texte de substitution.

string

La chaîne recherchée.

option
option a la même signification que pour la fonction mb_ereg_replace().

Valeurs de retour

La chaîne résultante, ou FALSE si une erreur survient.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Avertissement

N'utilisez jamais l'option e lorsque vous travaillez avec des données entrantes. Aucune protection automatique n'est appliquée (sous la forme de la fonction preg_replace()). Si vous omettez cette étape, vous allez certainement crée des failles dans votre application.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_ereg_replace() - Remplace des segments de chaîne à l'aide des expressions rationnelles


Expression rationnelle insensible à la casse avec le support des caractères multi-octets

  • « mb_eregi_replace
  • mb_get_info »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Expression rationnelle insensible à la casse avec le support des caractères multi-octets

mb_eregi

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_eregi — Expression rationnelle insensible à la casse avec le support des caractères multi-octets

Description

int mb_eregi ( string $pattern , string $string [, array $regs ] )

Exécute l'expression rationnelle insensible à la casse avec le support des caractères multi-octets.

Liste de paramètres

pattern

L'expression rationnelle.

string

La chaîne à chercher.

regs

Contient une sous-chaîne à chercher.

Valeurs de retour

Exécute l'expression rationnelle pattern avec le support des caractères multi-octets sur la chaîne string. mb_eregi() ignore la casse dans ses recherches. mb_ereg() retourne 1 si des segments de chaîne qui vérifient le masque ont été trouvé. Le troisième paramètre est optionnel. S'il est fournit, mb_ereg() retournera la taille du segment de chaîne identifié, regs contient les sous-chaînes. Si rien n'est trouvé, la fonction retourne FALSE.

Notes

Note:

L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multi-octets


Lit la configuration interne de l'extension mbstring

  • « mb_eregi
  • mb_http_input »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Lit la configuration interne de l'extension mbstring

mb_get_info

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_get_info — Lit la configuration interne de l'extension mbstring

Description

mixed mb_get_info ([ string $type = "all" ] )

mb_get_info() lit la configuration interne de l'extension mbstring.

Liste de paramètres

type

Si type n'est pas demandé explicitement, ou s'il vaut "all", un tableau contenant les éléments "internal_encoding", "http_output", "http_input" et "func_overload", "mail_charset", "mail_header_encoding", "mail_body_encoding" sera retourné.

Si type est spécifié, et s'il vaut "http_output", "http_input", "internal_encoding" ou "func_overload", la paramètre demandé sera retourné.

Valeurs de retour

Un tableau d'informations si type n'est pas spécifié, sinon, un type spécifique.

Historique

Version | Description
5.1.3 | Les types d'élément "mail_charset", "mail_header_encoding", et "mail_body_encoding" sont maintenant disponibles.
5.3.0 | L'élément "http_output_conv_mimetypes" a été ajouté.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_http_output() - Lit/modifie l'encodage d'affichage


Détecte le type d'encodage d'un caractère HTTP

  • « mb_get_info
  • mb_http_output »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Détecte le type d'encodage d'un caractère HTTP

mb_http_input

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_http_input — Détecte le type d'encodage d'un caractère HTTP

Description

mixed mb_http_input ([ string $type = "" ] )

Détecte le type d'encodage d'un caractère HTTP.

Liste de paramètres

type

Le paramètre type spécifie le type d'entrée HTTP. Il peut prendre l'une des valeurs suivantes : "G" pour GET, "P" pour POST, "C" pour COOKIE, "S" pour chaîne de caractères, "L" pour la liste, "l" pour la liste complète (retournera un tableau). Si type est omis, il prend la valeur du dernier type utilisé.

Valeurs de retour

Le nom de l'encodage des caractères. Si mb_http_input() ne traite pas l'entrée HTTP spécifiée, elle retournera FALSE.

Voir aussi

  • mb_internal_encoding() - Lit/modifie l'encodage interne
  • mb_http_output() - Lit/modifie l'encodage d'affichage
  • mb_detect_order() - Lit/modifie l'ordre de détection des encodages


Lit/modifie l'encodage d'affichage

  • « mb_http_input
  • mb_internal_encoding »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Lit/modifie l'encodage d'affichage

mb_http_output

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_http_output — Lit/modifie l'encodage d'affichage

Description

mixed mb_http_output ([ string $encoding = mb_http_output() ] )

Lit/modifie l'encodage d'affichage. L'affichage après l'appel de cette fonction sera converti depuis l'encodage interne vers l'encodage fourni par le paramètre encoding.

Liste de paramètres

encoding

Si encoding est fourni, mb_http_output() utilisera dorénavant l'encodage encoding pour les affichages HTTP : les caractères qui seront envoyés aux clients web seront convertis dans le jeu de caractères encoding.

Si encoding est omis, mb_http_output() retourne l'encodage d'affichage courant.

Valeurs de retour

Si le paramètre encoding est omis, mb_http_output() retourne l'encodage courant HTTP. Sinon, Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mb_internal_encoding() - Lit/modifie l'encodage interne
  • mb_http_input() - Détecte le type d'encodage d'un caractère HTTP
  • mb_detect_order() - Lit/modifie l'ordre de détection des encodages


Lit/modifie l'encodage interne

  • « mb_http_output
  • mb_language »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Lit/modifie l'encodage interne

mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_internal_encoding — Lit/modifie l'encodage interne

Description

mixed mb_internal_encoding ([ string $encoding = mb_internal_encoding() ] )

Lit/modifie l'encodage interne.

Liste de paramètres

encoding

encoding sert lors des conversions des chaînes en provenance et en direction du web, ainsi que lors de la création de chaînes avec le module mbstring. Vous devez garder à l'esprit que l'encodage interne est totalement différent de celui pour les regex multi-octets.

Valeurs de retour

Si encoding est fourni, Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Dans ce cas, l'encodage des caractères pour les regex multi-octets n'est pas changé. Si encoding est omis, mb_internal_encoding() retourne le nom de l'encodage courant.

Exemples

Exemple #1 Exemple avec mb_internal_encoding()

<?php
/* Utilise l'encodage interne UTF-8 */
mb_internal_encoding("UTF-8");

/* Affiche l'encodage interne courant */
echo mb_internal_encoding();
?>

Voir aussi

  • mb_http_input() - Détecte le type d'encodage d'un caractère HTTP
  • mb_http_output() - Lit/modifie l'encodage d'affichage
  • mb_detect_order() - Lit/modifie l'ordre de détection des encodages
  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets


Lit/modifie le langage courant

  • « mb_internal_encoding
  • mb_list_encodings »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Lit/modifie le langage courant

mb_language

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_language — Lit/modifie le langage courant

Description

mixed mb_language ([ string $language = mb_language() ] )

Lit/modifie le langage courant.

Liste de paramètres

language

Sert à encoder les messages électroniques. Les langages valides sont : "Japanese" (japonais), "ja" (japonais), "English" (anglais), "en" (anglais) et "uni" (UTF-8). mb_send_mail() utilise cette option pour encoder les emails.

Le langage et sa configuration valent ISO-2022-JP/Base64 pour le japonais, UTF-8/Base64 pour l'UTF-8 et ISO-8859-1/quoted printable pour l'anglais.

Valeurs de retour

Si language est fourni et est valide, mb_language() retourne TRUE. Sinon, elle retourne FALSE. Lorsque le paramètre language est omis, mb_language() retourne le nom du langage courant, sous forme de chaîne. Si aucun langage n'a été configuré, mb_language() retourne FALSE.

Voir aussi

  • mb_send_mail() - Envoie un mail encodé


Retourne un tableau contenant tous les encodages supportés

  • « mb_language
  • mb_output_handler »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Retourne un tableau contenant tous les encodages supportés

mb_list_encodings

(PHP 5, PHP 7)

mb_list_encodings — Retourne un tableau contenant tous les encodages supportés

Description

array mb_list_encodings ( void )

Retourne un tableau contenant tous les encodages supportés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau indexé numériquement.

Erreurs / Exceptions

Cette fonction n'émet aucune erreur.

Exemples

Exemple #1 Exemple avec mb_list_encodings()

<?php

print_r(mb_list_encodings());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => pass
    [1] => auto
    [2] => wchar
    [3] => byte2be
    [4] => byte2le
    [5] => byte4be
    [6] => byte4le
    [7] => BASE64
    [8] => UUENCODE
    [9] => HTML-ENTITIES
    [10] => Quoted-Printable
    [11] => 7bit
    [12] => 8bit
    [13] => UCS-4
    [14] => UCS-4BE
    [15] => UCS-4LE
    [16] => UCS-2
    [17] => UCS-2BE
    [18] => UCS-2LE
    [19] => UTF-32
    [20] => UTF-32BE
    [21] => UTF-32LE
    [22] => UTF-16
    [23] => UTF-16BE
    [24] => UTF-16LE
    [25] => UTF-8
    [26] => UTF-7
    [27] => UTF7-IMAP
    [28] => ASCII
    [29] => EUC-JP
    [30] => SJIS
    [31] => eucJP-win
    [32] => SJIS-win
    [33] => JIS
    [34] => ISO-2022-JP
    [35] => Windows-1252
    [36] => ISO-8859-1
    [37] => ISO-8859-2
    [38] => ISO-8859-3
    [39] => ISO-8859-4
    [40] => ISO-8859-5
    [41] => ISO-8859-6
    [42] => ISO-8859-7
    [43] => ISO-8859-8
    [44] => ISO-8859-9
    [45] => ISO-8859-10
    [46] => ISO-8859-13
    [47] => ISO-8859-14
    [48] => ISO-8859-15
    [49] => EUC-CN
    [50] => CP936
    [51] => HZ
    [52] => EUC-TW
    [53] => BIG-5
    [54] => EUC-KR
    [55] => UHC
    [56] => ISO-2022-KR
    [57] => Windows-1251
    [58] => CP866
    [59] => KOI8-R
)


Fonction de traitement des affichages

  • « mb_list_encodings
  • mb_parse_str »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Fonction de traitement des affichages

mb_output_handler

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_output_handler — Fonction de traitement des affichages

Description

string mb_output_handler ( string $contents , int $status )

mb_output_handler() est la fonction à fournir à ob_start(). mb_output_handler() convertit les caractères envoyés au client dans l'encodage paramétré avec mb_http_output().

Liste de paramètres

contents

Le contenu du buffer de sortie.

status

Le statut du buffer de sortie.

Valeurs de retour

La chaîne convertie.

Historique

Version Description
4.1.0

Ajoute un en-tête HTTP de jeu de caractères, en suivant ces conditions :

  • Content-Type n'a pas été défini par la fonction header().
  • Le type MIME par défaut commence alors par text/.
  • La configuration mbstring.http_input est différente de pass.

Exemples

Exemple #1 Exemple avec mb_output_handler()

<?php
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>

Notes

Note:

Si vous souhaitez envoyer des données binaires telles des images en utilisant PHP 4.3.0 ou suivant, l'en-tête Content-Type: header doit être défini en utilisant la fonction header() avant d'envoyer les données binaires au client (e.g. header("Content-Type: image/png")). Si Content-Type: header est envoyé, la conversion de l'encodage de sortie ne sera pas effectuée.

Notez que si Content-Type: text/* est envoyé, le contenu du corps est vu comme du texte ; la conversion sera effectuée.

Si vous souhaitez afficher des données binaires telles des images en utilisant PHP 4.2.x et inférieur, vous devez spécifier l'encodage spécial "pass", en utilisant la fonction mb_http_output().

Voir aussi

  • ob_start() - Enclenche la temporisation de sortie


Analyse les données HTTP GET/POST/COOKIE et assigne les variables globales

  • « mb_output_handler
  • mb_preferred_mime_name »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Analyse les données HTTP GET/POST/COOKIE et assigne les variables globales

mb_parse_str

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_parse_str — Analyse les données HTTP GET/POST/COOKIE et assigne les variables globales

Description

bool mb_parse_str ( string $encoded_string [, array &$result ] )

Analyse les données d'entrées HTTP GET/POST/COOKIE et assigne les variables globales. Étant donné que PHP ne fournit pas de valeurs brutes de POST/COOKIE, cette fonction n'est utilisable que sur les données en méthode GET. mb_parse_str() prend les données de l'URL appelante, détecte le jeu de caractères, convertit les données en jeu de caractères interne, et affecte les valeurs au tableau de variables globales.

Liste de paramètres

encoded_string

Les données encodées URL.

result

Un tableau contenant les valeurs décodées, et les noms des jeux de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mb_detect_order() - Lit/modifie l'ordre de détection des encodages
  • mb_internal_encoding() - Lit/modifie l'encodage interne


Détecte l'encodage MIME

  • « mb_parse_str
  • mb_regex_encoding »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Détecte l'encodage MIME

mb_preferred_mime_name

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_preferred_mime_name — Détecte l'encodage MIME

Description

string mb_preferred_mime_name ( string $encoding )

Récupère le nom de l'encodage MIME d'une chaîne.

Liste de paramètres

encoding

L'encodage à vérifier.

Valeurs de retour

Le nom de l'encodage MIME pour l'encodage encoding.

Exemples

Exemple #1 Exemple avec mb_preferred_mime_name()

<?php
$outputenc = "sjis-win";
mb_http_output($outputenc);
ob_start("mb_output_handler");
header("Content-Type: text/html; charset=" . mb_preferred_mime_name($outputenc));
?>


Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets

  • « mb_preferred_mime_name
  • mb_regex_set_options »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets

mb_regex_encoding

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_regex_encoding — Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets

Description

mixed mb_regex_encoding ([ string $encoding = mb_regex_encoding() ] )

Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets.

Liste de paramètres

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Si encoding est défini, alors Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.. Dans ce cas, l'encodage de caractères interne n'est pas modifié. Si l'argument encoding est omis, alors le nom de l'encodage de caractères courant pour les expressions rationnelles multi-octets sera retourné.

Historique

Version | Description
5.6.0 | L'encodage par défaut a changé en UTF-8. Auparavant, il était de EUC-JP.

Voir aussi

  • mb_internal_encoding() - Lit/modifie l'encodage interne
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multi-octets


Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multi-octets

  • « mb_regex_encoding
  • mb_send_mail »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multi-octets

mb_regex_set_options

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_regex_set_options — Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multi-octets

Description

string mb_regex_set_options ([ string $options = mb_regex_set_options() ] )

Configure les options par défaut avec les nouvelles valeurs contenues dans options, pour les fonctions d'expression rationnelle à support de caractères multi-octets.

Liste de paramètres

options

Les options à définir, sous la forme d'une chaîne dont chaque caractère est une option. Pour définir un mode, vous devez placer le caractère représentant ce mode en dernier, le reste des caractères sera les options. Vous ne pouvez définir qu'un seul mode, alors que vous pouvez définir plusieurs options.

Options pour l'expression
Option | Signification
i | Active l'ambiguïté
x | Active les masques étendus
m | Le caractère '.' correspond également à de nouvelles lignes
s | '^' -> '\A', '$' -> '\Z'
p | Identique aux options m et s
l | Trouve la plus longue correspondance
n | Ignore les correspondances vides
e | Utilise la fonction eval() sur le résultat
Modes de syntaxe de l'expression rationnelle
Mode | Signification
j | Java (Sun java.util.regex)
u | GNU regex
g | grep
c | Emacs
r | Ruby
z | Perl
b | POSIX Basic regex
d | POSIX Extended regex

Valeurs de retour

Retourne la configuration précédente. Si options est omise, la fonction retourne la chaîne qui décrit les options courantes.

Voir aussi

  • mb_split() - Scinde une chaîne en tableau avec une expression rationnelle multi-octets
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multi-octets
  • mb_eregi() - Expression rationnelle insensible à la casse avec le support des caractères multi-octets


Envoie un mail encodé

  • « mb_regex_set_options
  • mb_split »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Envoie un mail encodé

mb_send_mail

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_send_mail — Envoie un mail encodé

Description

bool mb_send_mail ( string $to , string $subject , string $message [, string $additional_headers = NULL [, string $additional_parameter = NULL ]] )

Envoie un courrier électronique. Les en-têtes et le corps du message sont convertis et encodés en accord avec mb_language(). mb_send_mail() est une version adaptée de mail(). Voir la fonction mail() pour plus de détails.

Liste de paramètres

to

to est l'adresse de destination du mail. Les adresses multiples peuvent être spécifiées en les séparant par des virgules. Ce paramètre n'est pas encodé automatiquement.

subject

Le sujet du mail.

message

Le message du mail.

additional_headers (optionnel)

Chaîne à insérer à la fin de l'en-tête mail.

Ce paramètre est typiquement utilisé pour ajouter des en-têtes supplémentaires (From, Cc, and Bcc). Les différents ajouts doivent être séparés par un CRLF (\r\n). Ce paramètre doit être validé afin d'éviter d'injection d'en-tête non désiré par des personnes malveillantes.

Note:

Lors de l'envoi d'un mail, il doit contenir un en-tête From. Il peut être défini via le paramètre additional_headers ou en tant que valeur par défaut dans le php.ini.

Si vous ne le faîtes pas, une erreur similaire à : Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing sera émise. L'en-tête From définie également Return-Path sous Windows.

Note:

Si les messages ne sont pas reçus, tentez d'utiliser uniquement un LF (\n). Quelques agents de transfère de mails Unix (en particulier » qmail) remplace un LF par un CRLF automatiquement (ce qui résulte en un doublement du CR si CRLF est utilisé). Vous devez tenter cette correction en dernier recourt, sachant qu'elle ne respecte pas la » RFC 2822.

additional_parameter

additional_parameter est une ligne de paramètres MTA. Il est pratique lorsque vous voulez définir un Return-Path correct lorsque vous utilisez sendmail.

Ce paramètre est échappé par la fonction escapeshellcmd() en interne afin de prévenir les exécutions de commande. La fonction escapeshellcmd() prévient d'exécution de commande, mais autorise les paramètres additionnels. Pour des raisons de sécurité, ce paramètre doit être validé.

Depuis que la fonction escapeshellcmd() est appliquée automatiquement en interne, quelques caractères autorisés dans les adresses mails par les RFCs d'internet ne peuvent plus être utilisés. Les programmes qui doivent utiliser ces caractères, la fonction mail() ne peut plus être utilisée.

L'utilisateur faisant fonctionner le serveur Web doit être ajouté comme utilisateur de confiance dans la configuration de l'envoi de mails afin d'éviter l'ajout d'un en-tête 'X-Warning' dans le message lorsque l'enveloppe de l'envoyeur (-f) est définie comme utilisant cette méthode. Pour les utilisateurs de sendmail, ce fichier se trouve en utilisant le chemin /etc/mail/trusted-users.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mail() - Envoi de mail
  • mb_encode_mimeheader() - Encode une chaîne pour un en-tête MIM
  • mb_language() - Lit/modifie le langage courant


Scinde une chaîne en tableau avec une expression rationnelle multi-octets

  • « mb_send_mail
  • mb_strcut »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Scinde une chaîne en tableau avec une expression rationnelle multi-octets

mb_split

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_split — Scinde une chaîne en tableau avec une expression rationnelle multi-octets

Description

array mb_split ( string $pattern , string $string [, int $limit = -1 ] )

Scinde la chaîne multi-octets string en utilisant l'expression rationnelle pattern puis en retournant le résultat sous forme de tableau.

Liste de paramètres

pattern

Le masque de l'expression rationnelle.

string

La chaîne à scinder.

limit
Si le paramètre optionnel limit est spécifié, la chaîne sera scindée en limit éléments au plus.

Valeurs de retour

Le résultat, sous la forme d'un tableau.

Notes

Note:

L'encodage de caractères spécifié par mb_regex_encoding() sera utilisé comme encodage pour cette fonction par dégfaut.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multi-octets


Coupe une partie de chaîne

  • « mb_split
  • mb_strimwidth »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Coupe une partie de chaîne

mb_strcut

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strcut — Coupe une partie de chaîne

Description

string mb_strcut ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )

mb_strcut() extrait une sous-chaîne depuis une chaîne, d'une façon similaire à la fonction mb_substr(), mais opère sur les octets au lieu des caractères. Si le découpage intervient entre 2 octets d'un caractère multi-octets, le découpage sera effectué au début du premier octet de ce caractère. C'est également la différence avec la fonction substr() qui coupera la chaîne au milieu des octets, résultant ainsi en une séquence d'octets mal-formée.

Liste de paramètres

str

La chaîne à couper.

start

Position de départ dans les octets.

length

Longueur dans les octets. Si ce paramètre est omis, ou vaut NULL, tous les octets jusqu'à la fin de la chaîne seront extraits.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

mb_strcut() retourne la portion de la chaîne str qui commence au caractère start et a la longueur de length caractères.

Voir aussi

  • mb_substr() - Lit une sous-chaîne
  • mb_internal_encoding() - Lit/modifie l'encodage interne


Tronque une chaîne

  • « mb_strcut
  • mb_stripos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Tronque une chaîne

mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strimwidth — Tronque une chaîne

Description

string mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker = "" [, string $encoding = mb_internal_encoding() ]] )

Tronque la chaîne str à la longueur width.

Liste de paramètres

str

La chaîne à tronquer.

start

start est l'offset de départ, en nombre de caractères depuis le début de la chaîne (cela commence à 0).

width

La taille à tronquer.

trimmarker

trimmarker est la chaîne ajoutée à la fin de la chaîne tronquée.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

La chaîne tronquée. Si trimmarker est défini, trimmarker sera ajouté à la valeur retournée.

Exemples

Exemple #1 Exemple avec mb_strimwidth()

<?php
echo mb_strimwidth("Hello World", 0, 10, "...");
// Affiche : Hello W...
?>

Voir aussi

  • mb_strwidth() - Retourne la taille d'une chaîne
  • mb_internal_encoding() - Lit/modifie l'encodage interne


Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse

  • « mb_strimwidth
  • mb_stristr »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse

mb_stripos

(PHP 5 >= 5.2.0, PHP 7)

mb_stripos — Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse

Description

int mb_stripos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] )

mb_stripos() retourne la position numérique de la première occurrence de needle dans la chaîne haystack. Contrairement à mb_strpos(), mb_stripos() est insensible à la casse. Si needle n'est pas trouvé, la fonction retournera FALSE.

Liste de paramètres

haystack

La chaîne depuis laquelle on récupère la position de la première occurrence de needle

needle

La chaîne à chercher dans haystack

offset

La position dans haystack où l'on doit commencer à chercher

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne est utilisé.

Valeurs de retour

Retourne la position numérique de la première occurrence de needle dans la chaîne haystack ou FALSE si needle n'est pas trouvé.

Voir aussi

  • stripos() - Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse
  • strpos() - Cherche la position de la première occurrence dans une chaîne
  • mb_strpos() - Repère la première occurrence d'un caractère dans une chaîne


Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse

  • « mb_stripos
  • mb_strlen »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse

mb_stristr

(PHP 5 >= 5.2.0, PHP 7)

mb_stristr — Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse

Description

string mb_stristr ( string $haystack , string $needle [, bool $before_needle = false [, string $encoding = mb_internal_encoding() ]] )

mb_stristr() trouve la première occurrence de needle dans haystack et retourne la portion de haystack. Contrairement à mb_strstr(), mb_stristr() est insensible à la casse. Si needle n'est pas trouvé, la fonction retournera FALSE.

Liste de paramètres

haystack

La chaîne depuis laquelle on récupère la première occurrence de needle

needle

La chaîne à chercher dans haystack

before_needle

Détermine quelle portion de haystack cette fonction retourne. Si défini à TRUE, la fonction retournera toute la chaîne haystack depuis le début jusqu'à la première occurrence de needle (needle exclus). Si défini à FALSE, la fonction retournera toute la chaîne haystack depuis la première occurrence de needle jusqu'à la fin (needle inclus).

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne est utilisé.

Valeurs de retour

Retourne la portion de haystack, ou FALSE si needle n'est pas trouvé.

Voir aussi

  • stristr() - Version insensible à la casse de strstr
  • strstr() - Trouve la première occurrence dans une chaîne
  • mb_strstr() - Trouve la première occurrence d'une chaîne dans une autre


Retourne la taille d'une chaîne

  • « mb_stristr
  • mb_strpos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Retourne la taille d'une chaîne

mb_strlen

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strlen — Retourne la taille d'une chaîne

Description

mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )

Récupère la taille de la chaîne fournie.

Liste de paramètres

str

La chaîne à analyser.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Retourne le nombre de caractères dans la chaîne str, avec l'encodage encoding. Un caractère multi-octets est alors compté pour 1.

Retourne FALSE si le paramètre encoding fourni n'est pas valide.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi

  • mb_internal_encoding() - Lit/modifie l'encodage interne
  • grapheme_strlen() - Lit la taille d'une chaîne en nombre de graphème
  • iconv_strlen() - Retourne le nombre de caractères d'une chaîne
  • strlen() - Calcule la taille d'une chaîne


Repère la première occurrence d'un caractère dans une chaîne

  • « mb_strlen
  • mb_strrchr »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Repère la première occurrence d'un caractère dans une chaîne

mb_strpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strpos — Repère la première occurrence d'un caractère dans une chaîne

Description

int mb_strpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] )

Repère la position de la première occurrence d'un caractère dans la chaîne fournie.

Effectue une recherche de type strpos(), en tenant compte des caractères multi-octets. La position de needle est comptée à partir du début de la chaîne haystack : les positions commencent à 0.

Liste de paramètres

haystack

La chaîne à analyser.

needle

La chaîne de caractères à trouver dans le paramètre haystack. A contrario de la fonction strpos(), les valeurs numériques ne sont pas appliquées comme valeur ordinale d'un caractère.

offset

La position de début de recherche. S'il est omis, zéro sera utilisé (début de la chaîne).

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Retourne la position numérique de la première occurrence du caractère needle dans la chaîne haystack. Si needle est introuvable, mb_strpos() retourne FALSE.

Voir aussi

  • mb_internal_encoding() - Lit/modifie l'encodage interne
  • strpos() - Cherche la position de la première occurrence dans une chaîne


Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre

  • « mb_strpos
  • mb_strrichr »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre

mb_strrchr

(PHP 5 >= 5.2.0, PHP 7)

mb_strrchr — Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre

Description

string mb_strrchr ( string $haystack , string $needle [, bool $part = false [, string $encoding = mb_internal_encoding() ]] )

mb_strrchr() trouve la dernière occurrence de needle dans haystack et retourne la portion de haystack. Si needle n'est pas trouvé, la fonction retournera FALSE.

Liste de paramètres

haystack

La chaîne depuis laquelle on doit récupérer la dernière occurrence de needle

needle

La chaîne à trouver dans haystack

part

Détermine quelle portion de haystack cette fonction retourne. Si défini à TRUE, la fonction retourne toute la chaîne haystack depuis le début jusqu'à la dernière occurrence de needle. Si défini à FALSE, la fonction retourne toute la chaîne haystack depuis la dernière occurrence de needle jusqu'à la fin.

encoding

Nom de l'encodage à utiliser.Si ce paramètre est omis, l'encodage interne sera utilisé.

Valeurs de retour

Retourne la portion de haystack. ou FALSE si needle n'est pas trouvé.

Voir aussi

  • strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
  • mb_strstr() - Trouve la première occurrence d'une chaîne dans une autre
  • mb_strrichr() - Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre, insensible à la casse


Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre, insensible à la casse

  • « mb_strrchr
  • mb_strripos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre, insensible à la casse

mb_strrichr

(PHP 5 >= 5.2.0, PHP 7)

mb_strrichr — Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre, insensible à la casse

Description

string mb_strrichr ( string $haystack , string $needle [, bool $part = false [, string $encoding = mb_internal_encoding() ]] )

mb_strrichr() trouve la dernière occurrence de needle dans haystack et retourne la portion de haystack. Contrairement à mb_strrchr(), mb_strrichr() n'est pas sensible à la casse. Si needle n'est pas trouvé, la fonction retournera FALSE.

Liste de paramètres

haystack

La chaîne depuis laquelle on doit chercher la dernière occurrence de needle

needle

La chaîne à chercher dans haystack

part

Détermine quelle portion de haystack cette fonction retourne. Si défini à TRUE, la fonction retourne toute la chaîne haystack depuis le début jusqu'à la dernière occurrence de needle. Si défini à FALSE, la fonction retourne toute la chaîne haystack depuis la dernière occurrence de needle jusqu'à la fin.

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne sera utilisé.

Valeurs de retour

Retourne la portion de haystack. ou FALSE si needle n'est pas trouvé.

Voir aussi

  • mb_stristr() - Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse
  • mb_strrchr() - Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre


Trouve la position de la dernière occurrence d'une chaîne dans une autre, en ne tenant pas compte de la casse

  • « mb_strrichr
  • mb_strrpos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Trouve la position de la dernière occurrence d'une chaîne dans une autre, en ne tenant pas compte de la casse

mb_strripos

(PHP 5 >= 5.2.0, PHP 7)

mb_strripos — Trouve la position de la dernière occurrence d'une chaîne dans une autre, en ne tenant pas compte de la casse

Description

int mb_strripos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] )

mb_strripos() effectue une opération strripos() basée sur le nombre de caractères. La position needle est comptée depuis le début de haystack. La position du premier caractère est 0. Le second a comme position 1, etc.. Contrairement à mb_strrpos(), mb_strripos() n'est pas sensible à la casse.

Liste de paramètres

haystack

La chaîne depuis laquelle on récupère la position de la dernière occurrence de needle

needle

La chaîne à chercher dans haystack

offset

La position dans haystack à partir de laquelle on doit commencer à chercher

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne est utilisé.

Valeurs de retour

Retourne la position numérique de la dernière occurrence de needle dans la chaîne haystack, ou FALSE si needle n'est pas trouvé.

Voir aussi

  • strripos() - Cherche la position de la dernière occurrence d'une chaîne contenue dans une autre, de façon insensible à la casse
  • strrpos() - Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne
  • mb_strrpos() - Repère la dernière occurrence d'un caractère dans une chaîne


Repère la dernière occurrence d'un caractère dans une chaîne

  • « mb_strripos
  • mb_strstr »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Repère la dernière occurrence d'un caractère dans une chaîne

mb_strrpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strrpos — Repère la dernière occurrence d'un caractère dans une chaîne

Description

int mb_strrpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] )

mb_strrpos() effectue une recherche de type strpos(), en tenant compte des caractères multi-octets. La position de needle est comptée à partir du début de la chaîne haystack : les positions commencent à 0.

Liste de paramètres

haystack

La chaîne à analyser.

needle

La chaîne à chercher dans la chaîne haystack.

offset
Doit être spécifié pour commencer à recherche un nombre arbitraire de nombre de caractères dans une chaîne. Les valeurs négatives stoppent la recherche à un point arbitraire avant la fin de la chaîne.
encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Retourne la position numérique de la dernière occurrence du caractère needle dans la chaîne haystack. Si needle est introuvable, mb_strrpos() retourne FALSE.

Historique

Version | Description
5.2.0 | Ajout du paramètre optionnel offset.

Notes

Note: Le paramètre encoding a été déplacé de la troisième position à la quatrième position depuis PHP 5.2.0. Pour des raisons de compatibilité ascendante, encoding peut être spécifié en tant que troisième paramètre, mais ce comportement est obsolète et peut être supprimé prochainement.

Voir aussi

  • mb_strpos() - Repère la première occurrence d'un caractère dans une chaîne
  • mb_internal_encoding() - Lit/modifie l'encodage interne
  • strrpos() - Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne


Trouve la première occurrence d'une chaîne dans une autre

  • « mb_strrpos
  • mb_strtolower »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Trouve la première occurrence d'une chaîne dans une autre

mb_strstr

(PHP 5 >= 5.2.0, PHP 7)

mb_strstr — Trouve la première occurrence d'une chaîne dans une autre

Description

string mb_strstr ( string $haystack , string $needle [, bool $before_needle = false [, string $encoding = mb_internal_encoding() ]] )

mb_strstr() trouve la première occurrence de needle dans haystack et retourne la portion de haystack. Si needle n'est pas trouvé, la fonction retournera FALSE.

Liste de paramètres

haystack

La chaîne dans laquelle on doit chercher la première occurrence de needle

needle

La chaîne à chercher dans haystack

before_needle

Détermine quelle portion de haystack cette fonction retourne. Si défini à TRUE, la fonction retournera toute la chaîne haystack depuis le début jusqu'à la première occurrence de needle (needle exclus). Si défini à FALSE, la fonction retournera toute la chaîne haystack depuis la première occurrence de needle jusqu'à la fin (needle inclus).

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne est utilisé.

Valeurs de retour

Retourne la portion de haystack, ou FALSE si needle n'est pas trouvé.

Voir aussi

  • stristr() - Version insensible à la casse de strstr
  • strstr() - Trouve la première occurrence dans une chaîne
  • mb_stristr() - Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse


Met tous les caractères en minuscules

  • « mb_strstr
  • mb_strtoupper »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Met tous les caractères en minuscules

mb_strtolower

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_strtolower — Met tous les caractères en minuscules

Description

string mb_strtolower ( string $str [, string $encoding = mb_internal_encoding() ] )

Retourne la chaîne str après avoir converti tous les caractères alphabétiques en minuscules.

Liste de paramètres

str

La chaîne à mettre en minuscule.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Retourne la chaîne str dont tous les caractères alphabétiques ont été mis en minuscule.

Unicode

Pour plus d'informations sur les propriétés de l'Unicode, voyez » http://www.unicode.org/unicode/reports/tr21/.

Contrairement à strtolower(), le concept de caractère 'alphabétique' est déterminé par les propriétés Unicode. De ce fait, le comportement de cette fonction n'est pas modifié par les configurations locales, et elle peut convertir tout les caractères qui sont considérés comme alphabétiques comme le c cédille (ç).

Exemples

Exemple #1 Exemple avec mb_strtolower()

<?php
$str = "Marie A Un Petit Agneau Et Elle L'Aime BEAUCOUP.";
$str = mb_strtolower($str);
echo $str; // marie a un petit agneau et elle l'aime beaucoup
?>

Exemple #2 Exemple avec mb_strtolower() avec du texte UTF-8 non latin

<?php
$str = "????st? a??p?? ßaf?? ??µ??? ??, d?as?e???e? ?p?? ?????? ?????";
$str = mb_strtolower($str, 'UTF-8');
echo $str; // Affiche t???st? a??p?? ßaf?? ??µ??? ??, d?as?e???e? ?p?? ?????? ?????
?>

Voir aussi

  • mb_strtoupper() - Met tous les caractères en majuscules
  • mb_convert_case() - Modifie la casse d'une chaîne
  • strtolower() - Renvoie une chaîne en minuscules


Met tous les caractères en majuscules

  • « mb_strtolower
  • mb_strwidth »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Met tous les caractères en majuscules

mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_strtoupper — Met tous les caractères en majuscules

Description

string mb_strtoupper ( string $str [, string $encoding = mb_internal_encoding() ] )

Retourne la chaîne str après avoir converti tous les caractères alphabétiques en majuscules.

Liste de paramètres

str

La chaîne à mettre en majuscules.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Retourne la chaîne str dont tous les caractères ont été mis en majuscule.

Unicode

Pour plus d'informations sur les propriétés de l'Unicode, voyez » http://www.unicode.org/unicode/reports/tr21/.

Contrairement à strtoupper(), le concept de caractère 'alphabétique' est déterminé par les propriétés Unicode. De ce fait, le comportement de cette fonction n'est pas modifié par les configurations locales, et elle peut convertir tout les caractères qui sont considérés comme alphabétiques comme le c cédille (ç).

Exemples

Exemple #1 Exemple avec mb_strtoupper()

<?php
$str = "Marie A Un Petit Agneau Et Elle L'Aime BEAUCOUP.";
$str = mb_strtoupper($str);
echo $str; // MARIE A UN PETIT AGNEAU ET ELLE L'AIME BEAUCOUP.
?>

Exemple #2 Exemple avec mb_strtoupper() et du texte UTF-8 non latin

<?php
$str = "????st? a??p?? ßaf?? ??µ??? ??, d?as?e???e? ?p?? ?????? ?????";
$str = mb_strtoupper($str, 'UTF-8');
echo $str; // Affiche ????S?? ?????? ??F?S ?????? G?, ???S??????? ???? ?OT??? ????S
?>

Voir aussi

  • mb_strtolower() - Met tous les caractères en minuscules
  • mb_convert_case() - Modifie la casse d'une chaîne
  • strtoupper() - Renvoie une chaîne en majuscules


Retourne la taille d'une chaîne

  • « mb_strtoupper
  • mb_substitute_character »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Retourne la taille d'une chaîne

mb_strwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strwidth — Retourne la taille d'une chaîne

Description

int mb_strwidth ( string $str [, string $encoding = mb_internal_encoding() ] )

Retourne la taille de la chaîne str.

Les chaînes à encodage multi-octets sont généralement deux fois plus grandes que les chaînes mono-octet.

Largeur des caractères
Caractères | Taille
U+0000 - U+0019 | 0
U+0020 - U+1FFF | 1
U+2000 - U+FF60 | 2
U+FF61 - U+FF9F | 1
U+FFA0 - | 2

Liste de paramètres

str

La chaîne à analyser.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

La taille de la chaîne.

Voir aussi

  • mb_strimwidth() - Tronque une chaîne
  • mb_internal_encoding() - Lit/modifie l'encodage interne


Lit/modifie les caractères de substitution

  • « mb_strwidth
  • mb_substr_count »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Lit/modifie les caractères de substitution

mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_substitute_character — Lit/modifie les caractères de substitution

Description

mixed mb_substitute_character ([ mixed $substrchar = mb_substitute_character() ] )

Spécifie le caractère de substitution des caractères invalides, ou des encodages invalides. Les caractères invalides peuvent être remplacés par NULL (pas d'affichage, ils sont supprimés), une chaîne ou un code hexadécimal.

Ce paramétrage affecte mb_convert_encoding(),
mb_convert_variables(),
mb_output_handler(),
et mb_send_mail().

Liste de paramètres

substrchar

Spécifie une valeur Unicode sous la forme d'un entier, ou bien une chaîne sous ces formes :

  • "none" : pas d'affichage
  • "long" : affiche la valeur hexadécimale (par exemple : U+3000, JIS+7E7E)
  • "entity" : affiche l'entité du caractère (Example: ?)

Valeurs de retour

Si substchar est fourni, mb_substitute_character() retourne TRUE en cas de succès, et FALSE en cas d'erreur. Si substchar est omis, mb_substitute_character() retourne une valeur Unicode, ou bien "none"/"long".

Exemples

Exemple #1 Exemple avec mb_substitute_character()

<?php
/* Configure le caractère de substitution avec U+3013 (GETA MARK) */
mb_substitute_character(0x3013);

/* Configure le caractère de substitution avec un format hexadécimal */
mb_substitute_character("long");

/* Affiche la configuration courante */
echo mb_substitute_character();
?>


Compte le nombre d'occurrences d'une sous-chaîne

  • « mb_substitute_character
  • mb_substr »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Compte le nombre d'occurrences d'une sous-chaîne

mb_substr_count

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_substr_count — Compte le nombre d'occurrences d'une sous-chaîne

Description

int mb_substr_count ( string $haystack , string $needle [, string $encoding = mb_internal_encoding() ] )

Compte le nombre d'occurrences de la chaîne needle dans la chaîne haystack.

Liste de paramètres

haystack

La chaîne à analyser.

needle

La chaîne à chercher.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

Retourne le nombre de fois où la chaîne needle apparaît dans la chaîne haystack.

Exemples

Exemple #1 Exemple avec mb_substr_count()

<?php
echo mb_substr_count("Ceci est un test", "es"); // affiche 2
?>

Voir aussi

  • mb_strpos() - Repère la première occurrence d'un caractère dans une chaîne
  • mb_substr() - Lit une sous-chaîne
  • substr_count() - Compte le nombre d'occurrences de segments dans une chaîne


Lit une sous-chaîne

  • « mb_substr_count
  • Pspell »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multi-octets
  • Lit une sous-chaîne

mb_substr

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_substr — Lit une sous-chaîne

Description

string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )

Effectue une opération de type substr() basée sur le nombre de caractères. La position est celle depuis le début de la chaîne de caractères str. La position du premier caractère est 0, le second, un, etc...

Liste de paramètres

str

La chaîne à extraire depuis la sous-chaîne.

start

Position du premier caractère à utiliser depuis str.

length

Nombre maximal de caractères à utiliser depuis str. Si ce paramètre est omis, ou vaut NULL, tous les caractères jusqu'à la fin de la chaîne seront extraits.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

mb_substr() retourne la portion de la chaîne str qui commence au caractère start et a la longueur de length caractères.

Voir aussi

  • mb_strcut() - Coupe une partie de chaîne
  • mb_internal_encoding() - Lit/modifie l'encodage interne


Pspell

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Pspell
    • pspell_add_to_personal — Ajoute le mot au dictionnaire personnel
    • pspell_add_to_session — Ajoute le mot au dictionnaire personnel de la session courante
    • pspell_check — Vérifie un mot
    • pspell_clear_session — Remet à zéro la session courante
    • pspell_config_create — Crée une configuration utilisée pour ouvrir un dictionnaire
    • pspell_config_data_dir — Dossier qui contient les fichiers de données linguistiques
    • pspell_config_dict_dir — Endroit où se trouve le fichier global des mots
    • pspell_config_ignore — Ignore les mots de moins de N caractères
    • pspell_config_mode — Change le mode de suggestion
    • pspell_config_personal — Choisit le fichier qui contient le dictionnaire personnel
    • pspell_config_repl — Choisit le fichier qui contient les paires de remplacement
    • pspell_config_runtogether — Considère deux mots accolés comme un composé
    • pspell_config_save_repl — Détermine s'il faut sauver les paires de remplacement avec le dictionnaire
    • pspell_new_config — Charge un nouveau dictionnaire avec les paramètres spécifiés dans une configuration
    • pspell_new_personal — Charge un nouveau dictionnaire avec un dictionnaire personnel
    • pspell_new — Charge un nouveau dictionnaire
    • pspell_save_wordlist — Sauve le dictionnaire personnel dans un fichier
    • pspell_store_replacement — Enregistre une paire de remplacement pour un mot
    • pspell_suggest — Suggère l'orthographe d'un mot


Introduction

La bibliothèque pspell vous permet de vérifier l'orthographe d'un mot, et suggérer des corrections.


Pré-requis

Pour compiler PHP avec le support pspell, vous aurez besoin de la bibliothèque aspell, disponible à » http://aspell.net/.


Installation

Si vous avez installé les bibliothèques PSPELL, vous devez simplement ajouter l'option --with-pspell[=dir] , lors de la compilation de PHP.

Note: Note pour les utilisateurs de Microsoft Windows

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : aspell-15.dll depuis le dossier bin de l'installation aspell.

Le support Win32 est disponible uniquement dans les versions 4.3.3 et supérieures de PHP. De plus, la version 0.50, au minimum, est nécessaire.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

PSPELL_FAST (entier)
PSPELL_NORMAL (entier)
PSPELL_BAD_SPELLERS (entier)
PSPELL_RUN_TOGETHER (entier)


Fonctions Pspell

Sommaire

  • pspell_add_to_personal — Ajoute le mot au dictionnaire personnel
  • pspell_add_to_session — Ajoute le mot au dictionnaire personnel de la session courante
  • pspell_check — Vérifie un mot
  • pspell_clear_session — Remet à zéro la session courante
  • pspell_config_create — Crée une configuration utilisée pour ouvrir un dictionnaire
  • pspell_config_data_dir — Dossier qui contient les fichiers de données linguistiques
  • pspell_config_dict_dir — Endroit où se trouve le fichier global des mots
  • pspell_config_ignore — Ignore les mots de moins de N caractères
  • pspell_config_mode — Change le mode de suggestion
  • pspell_config_personal — Choisit le fichier qui contient le dictionnaire personnel
  • pspell_config_repl — Choisit le fichier qui contient les paires de remplacement
  • pspell_config_runtogether — Considère deux mots accolés comme un composé
  • pspell_config_save_repl — Détermine s'il faut sauver les paires de remplacement avec le dictionnaire
  • pspell_new_config — Charge un nouveau dictionnaire avec les paramètres spécifiés dans une configuration
  • pspell_new_personal — Charge un nouveau dictionnaire avec un dictionnaire personnel
  • pspell_new — Charge un nouveau dictionnaire
  • pspell_save_wordlist — Sauve le dictionnaire personnel dans un fichier
  • pspell_store_replacement — Enregistre une paire de remplacement pour un mot
  • pspell_suggest — Suggère l'orthographe d'un mot


Ajoute le mot au dictionnaire personnel

  • « Fonctions Pspell
  • pspell_add_to_session »
  • PHP Manual
  • Fonctions Pspell
  • Ajoute le mot au dictionnaire personnel

pspell_add_to_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_add_to_personal — Ajoute le mot au dictionnaire personnel

Description

bool pspell_add_to_personal ( int $dictionary_link , string $word )

pspell_add_to_personal() ajoute un mot au dictionnaire
personnel. Si vous utilisez pspell_new_config() avec
pspell_config_personal() pour ouvrir le dictionnaire,
vous pourrez sauver le dictionnaire personnel ultérieurement avec
pspell_save_wordlist().

Liste de paramètres

dictionary_link

word

Le Mot ajouté.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Notes

Note:

Cette fonction ne marchera que si vous avez pspell .11.2 et aspell .32.5 ou ultérieurs.


Ajoute le mot au dictionnaire personnel de la session courante

  • « pspell_add_to_personal
  • pspell_check »
  • PHP Manual
  • Fonctions Pspell
  • Ajoute le mot au dictionnaire personnel de la session courante

pspell_add_to_session

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_add_to_session — Ajoute le mot au dictionnaire personnel de la session courante

Description

bool pspell_add_to_session ( int $dictionary_link , string $word )

pspell_add_to_session() ajoute un mot au dictionnaire personnel associé à la version courante. C'est une fonction similaire à pspell_add_to_personal().

Liste de paramètres

dictionary_link

word

Le mot ajouté.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Vérifie un mot

  • « pspell_add_to_session
  • pspell_clear_session »
  • PHP Manual
  • Fonctions Pspell
  • Vérifie un mot

pspell_check

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_check — Vérifie un mot

Description

bool pspell_check ( int $dictionary_link , string $word )

pspell_check() vérifie l'orthographe d'un mot.

Liste de paramètres

dictionary_link

word

Le mot testé.

Valeurs de retour

Retourne TRUE si l'orthographe est correcte, FALSE sinon.

Exemples

Exemple #1 Exemple avec pspell_check()

<?php
$pspell_link = pspell_new ("fr");

if (pspell_check($pspell_link, "testt")) {
    echo 'L\'orthographe est exacte';
} else {
    echo 'Désolé, mauvaise orthographe';
}
?>


Remet à zéro la session courante

  • « pspell_check
  • pspell_config_create »
  • PHP Manual
  • Fonctions Pspell
  • Remet à zéro la session courante

pspell_clear_session

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_clear_session — Remet à zéro la session courante

Description

bool pspell_clear_session ( int $dictionary_link )

pspell_clear_session() remet à zéro la session courante. Le dictionnaire personnel est vidé et, par exemple, si vous tentez de l'enregistrer avec pspell_save_wordlist(), rien ne se passera.

Liste de paramètres

dictionary_link

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_clear_session($pspell_link);
pspell_save_wordlist($pspell_link);  //"Vlad" ne sera pas sauvé
?>


Crée une configuration utilisée pour ouvrir un dictionnaire

  • « pspell_clear_session
  • pspell_config_data_dir »
  • PHP Manual
  • Fonctions Pspell
  • Crée une configuration utilisée pour ouvrir un dictionnaire

pspell_config_create

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_create — Crée une configuration utilisée pour ouvrir un dictionnaire

Description

int pspell_config_create ( string $language [, string $spelling [, string $jargon [, string $encoding ]]] )

Crée une configuration utilisée pour ouvrir un dictionnaire.

pspell_config_create() a une syntaxe similaire à celle de pspell_new(). En fait, utiliser pspell_config_create() suivi immédiatement par pspell_new_config() produira exactement le même résultat. Cependant, après avoir créé une nouvelle configuration, vous pouvez aussi utiliser les fonctions pspell_config_*() avant d'appeler pspell_new_config() pour tirer profit des fonctionnalités avancées.

Pour davantage d'information et d'exemples, jetez un oeil au manuel en ligne sur le site de pspell : » http://aspell.net/.

Liste de paramètres

language

Le paramètre de langage language est le code de langue en deux lettres, défini dans la norme ISO 639, et deux lettres optionnelles ISO 3166, après un tiret ou un souligné (_).

spelling

Le paramètre d'orthographe spelling est nécessaire pour les langues qui ont plus d'une orthographe, comme l'anglais. Les valeurs reconnues sont alors 'american' (américain) , 'british' (anglais), et 'canadian' (canadien).

jargon

Le paramètre de jargon jargon contient des informations supplémentaires pour distinguer deux dictionnaires distincts pour la même langue et le même paramètre d'orthographe spelling.

encoding

Le paramètre d'encodage encoding indique l'encodage attendu pour la réponse. Les valeurs valides sont : 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. Ce paramètre n'a pas été testé de manière exhaustive, alors soyez prudent.

Valeurs de retour

Retourne une ressource pspell config, ou FALSE en cas d'erreur.

Exemples

Exemple #1 pspell_config_create()

<?php
$pspell_config = pspell_config_create("fr");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_personal($pspell_config, "fr");
?>


Dossier qui contient les fichiers de données linguistiques

  • « pspell_config_create
  • pspell_config_dict_dir »
  • PHP Manual
  • Fonctions Pspell
  • Dossier qui contient les fichiers de données linguistiques

pspell_config_data_dir

(PHP 5, PHP 7)

pspell_config_data_dir — Dossier qui contient les fichiers de données linguistiques

Description

bool pspell_config_data_dir ( int $conf , string $directory )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Endroit où se trouve le fichier global des mots

  • « pspell_config_data_dir
  • pspell_config_ignore »
  • PHP Manual
  • Fonctions Pspell
  • Endroit où se trouve le fichier global des mots

pspell_config_dict_dir

(PHP 5, PHP 7)

pspell_config_dict_dir — Endroit où se trouve le fichier global des mots

Description

bool pspell_config_dict_dir ( int $conf , string $directory )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Ignore les mots de moins de N caractères

  • « pspell_config_dict_dir
  • pspell_config_mode »
  • PHP Manual
  • Fonctions Pspell
  • Ignore les mots de moins de N caractères

pspell_config_ignore

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_ignore — Ignore les mots de moins de N caractères

Description

bool pspell_config_ignore ( int $dictionary_link , int $n )

pspell_config_ignore() doit être utilisée avec une configuration avant d'appeler pspell_new_config(). Cette fonction permet au vérificateur d'ignorer les mots courts.

Liste de paramètres

dictionary_link

n

Les mots de moins de n caractères seront ignorés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_config_ignore()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_ignore($pspell_config, 5);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "abcd");  // Ce mot ne provoquera pas d'erreur
?>


Change le mode de suggestion

  • « pspell_config_ignore
  • pspell_config_personal »
  • PHP Manual
  • Fonctions Pspell
  • Change le mode de suggestion

pspell_config_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_mode — Change le mode de suggestion

Description

bool pspell_config_mode ( int $dictionary_link , int $mode )

pspell_config_mode() doit être appelée dans une configuration avant pspell_new_config(). Cette fonction détermine le nombre de suggestions qui seront retournées par pspell_suggest().

Liste de paramètres

dictionary_link

mode

Le paramètre de mode est le mode de travail du vérificateur d'orthographe. Plusieurs modes sont disponibles :

  • PSPELL_FAST - Mode rapide (moins de suggestions)
  • PSPELL_NORMAL - Mode normal (plus de suggestions)
  • PSPELL_BAD_SPELLERS - Mode lent (beaucoup plus de suggestions)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pspell_config_mode()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>


Choisit le fichier qui contient le dictionnaire personnel

  • « pspell_config_mode
  • pspell_config_repl »
  • PHP Manual
  • Fonctions Pspell
  • Choisit le fichier qui contient le dictionnaire personnel

pspell_config_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_personal — Choisit le fichier qui contient le dictionnaire personnel

Description

bool pspell_config_personal ( int $dictionary_link , string $file )

Choisit le fichier qui contient le dictionnaire personnel. Le dictionnaire personnel sera chargé et utilisé en plus du dictionnaire standard, une fois que vous aurez appelé pspell_new_config(). Le fichier est aussi là où pspell_save_wordlist() sauvegardera le dictionnaire personnel.

pspell_config_personal() doit être appelée dans une configuration avant d'appeler pspell_new_config().

Liste de paramètres

dictionary_link

file

Le dictionnaire personnel. Si le fichier n'existe pas, il sera créé. Le fichier doit être accessible en écriture pour l'utilisateur invoquant PHP (ex. nobody).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_config_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Notes

Note:

Cette fonction ne marchera qu'avec pspell .11.2 et aspell .32.5 ou ultérieurs.


Choisit le fichier qui contient les paires de remplacement

  • « pspell_config_personal
  • pspell_config_runtogether »
  • PHP Manual
  • Fonctions Pspell
  • Choisit le fichier qui contient les paires de remplacement

pspell_config_repl

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_repl — Choisit le fichier qui contient les paires de remplacement

Description

bool pspell_config_repl ( int $dictionary_link , string $file )

Choisit le fichier qui contient les paires de remplacement.

Les paires de remplacement améliorent la qualité du vérificateur. Lorsqu'un mot est mal orthographié et qu'aucune suggestion valable n'est trouvée dans le dictionnaire, pspell_store_replacement() sera utilisée pour enregistrer une paire de remplacement et pspell_save_wordlist() pour sauver le dictionnaire avec les paires de remplacement.

pspell_config_repl() doit être utilisé avec une configuration avant d'appeler pspell_new_config().

Liste de paramètres

dictionary_link

file

Le fichier doit être accessible en écriture pour l'utilisateur invoquant PHP (ex. nobody).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_config_repl()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Notes

Note:

Cette fonction ne marchera qu'avec pspell .11.2 et aspell .32.5 ou ultérieurs.


Considère deux mots accolés comme un composé

  • « pspell_config_repl
  • pspell_config_save_repl »
  • PHP Manual
  • Fonctions Pspell
  • Considère deux mots accolés comme un composé

pspell_config_runtogether

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_runtogether — Considère deux mots accolés comme un composé

Description

bool pspell_config_runtogether ( int $dictionary_link , bool $flag )

Cette fonction indique si deux mots accolés doivent être traités comme un composé valide. Ainsi "lechat" sera traité comme un composé valide bien qu'il devrait y avoir un espace entre ces deux mots. Modifier cette configuration n'affecte que les résultats retournés par pspell_check(); pspell_suggest() retournera toujours des suggestions.

pspell_config_runtogether() doit être appelée dans une configuration avant pspell_new_config().

Liste de paramètres

dictionary_link

flag

TRUE si deux mots accolés doivent être traités comme un composé valide, FALSE sinon.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_config_runtogether()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_runtogether($pspell_config, true);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>


Détermine s'il faut sauver les paires de remplacement avec le dictionnaire

  • « pspell_config_runtogether
  • pspell_new_config »
  • PHP Manual
  • Fonctions Pspell
  • Détermine s'il faut sauver les paires de remplacement avec le dictionnaire

pspell_config_save_repl

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_save_repl — Détermine s'il faut sauver les paires de remplacement avec le dictionnaire

Description

bool pspell_config_save_repl ( int $dictionary_link , bool $flag )

pspell_config_save_repl() détermine si pspell_save_wordlist() doit sauver les paires de remplacement avec le dictionnaire. Généralement, il n'y a pas besoin d'utiliser cette fonction car, si pspell_config_repl() est utilisée, les paires de remplacement seront sauvées de toute façon par pspell_save_wordlist(), et, si ce n'est pas le cas, elles ne le seront pas.

pspell_config_save_repl() doit être appelée dans une configuration avant d'appeler pspell_new_config().

Liste de paramètres

dictionary_link

flag

TRUE si les paires de remplacement doivent être sauvées, FALSE sinon.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Cette fonction ne marchera qu'avec pspell .11.2 et aspell .32.5 ou ultérieurs.


Charge un nouveau dictionnaire avec les paramètres spécifiés dans une configuration

  • « pspell_config_save_repl
  • pspell_new_personal »
  • PHP Manual
  • Fonctions Pspell
  • Charge un nouveau dictionnaire avec les paramètres spécifiés dans une configuration

pspell_new_config

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_new_config — Charge un nouveau dictionnaire avec les paramètres spécifiés dans une configuration

Description

int pspell_new_config ( int $config )

pspell_new_config() ouvre un nouveau dictionnaire avec les paramétrages de la configuration config, créée avec pspell_config_create() et modifiée avec les fonctions pspell_config_*(). Cette méthode vous donne le maximum de flexibilité, et dispose de toutes les fonctionnalités fournies par pspell_new() et pspell_new_personal().

Liste de paramètres

config

Le config est celui qui est retourné par pspell_config_create() lorsque la configuration est créée.

Valeurs de retour

Retourne un identifiant de dictionnaire en cas de succès.

Exemples

Exemple #1 pspell_new_config()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
?>


Charge un nouveau dictionnaire avec un dictionnaire personnel

  • « pspell_new_config
  • pspell_new »
  • PHP Manual
  • Fonctions Pspell
  • Charge un nouveau dictionnaire avec un dictionnaire personnel

pspell_new_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_new_personal — Charge un nouveau dictionnaire avec un dictionnaire personnel

Description

int pspell_new_personal ( string $personal , string $language [, string $spelling [, string $jargon [, string $encoding [, int $mode = 0 ]]]] )

pspell_new_personal() charge un nouveau dictionnaire avec un dictionnaire personnel. Ce dernier peut être modifié et sauvé avec pspell_save_wordlist(). Cependant, les paires de remplacement ne seront pas sauvées. Pour ce faire, vous devez créer une configuration qui utilise pspell_config_create(), choisir le fichier de destination du dictionnaire personnel avec pspell_config_personal(), choisir le fichier de paires de remplacement avec pspell_config_repl() et ouvrir un nouveau dictionnaire avec pspell_new_config().

Pour davantage d'information et d'exemples, jetez un oeil sur le manuel en ligne sur le site web de pspell : » http://aspell.net/.

Liste de paramètres

personal

Le fichier où seront ajoutés les mots du dictionnaire personnel. Ce doit être un chemin absolu, qui commence par '/' car, sinon, il sera relatif à $HOME, qui est "/root" sur la plupart des systèmes, et probablement pas ce que vous souhaitez.

language

Le paramètre de langage language est le code de langue ISO 639 en deux lettres, suivi de deux lettres optionnelles ISO 3166, après un tiret ou un souligné (_).

spelling

Le paramètre d'orthographe spelling est nécessaire pour les langues qui ont plus d'une orthographe, comme l'anglais. Les valeurs reconnues sont alors 'american' (américain) , 'british' (anglais), et 'canadian' (canadien).

jargon

Informations supplémentaires pour distinguer deux dictionnaires distincts pour la même langue et le même paramètre d'orthographe spelling.

encoding

L'encodage attendu pour la réponse. Les valeurs valides sont : utf-8, iso8859-*, koi8-r, viscii, cp1252, machine unsigned 16, machine unsigned 32.

mode

Le mode de travail du vérificateur d'orthographe. Plusieurs modes sont disponibles :

  • PSPELL_FAST - Mode rapide (moins de suggestions)
  • PSPELL_NORMAL - Mode normal (plus de suggestions)
  • PSPELL_BAD_SPELLERS - Mode lent (beaucoup plus de suggestions)
  • PSPELL_RUN_TOGETHER - Considère les mots attachés comme légaux. De ce fait, "lechat" sera un mot composé légal, bien qu'il devrait y avoir un espace entre les deux mots. Changer cette configuration n'affecte que le résultat retourné par pspell_check(); pspell_suggest() continuera de retourner les suggestions.
Le mode est un masque construit depuis les différentes constantes listées ci-dessous. Cependant, les constantes PSPELL_FAST, PSPELL_NORMAL et PSPELL_BAD_SPELLERS sont mutuellement exclusives, donc vous ne devez sélectionner qu'une seule d'entre elles.

Valeurs de retour

Retourne l'identifiant de dictionnaire à utiliser avec les autres fonctions pspell.

Exemples

Exemple #1 pspell_new_personal()

<?php
$pspell_link = pspell_new_personal ("/var/dictionaries/custom.pws",
        "en", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER);
?>


Charge un nouveau dictionnaire

  • « pspell_new_personal
  • pspell_save_wordlist »
  • PHP Manual
  • Fonctions Pspell
  • Charge un nouveau dictionnaire

pspell_new

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_new — Charge un nouveau dictionnaire

Description

int pspell_new ( string $language [, string $spelling [, string $jargon [, string $encoding [, int $mode = 0 ]]]] )

pspell_new() ouvre un nouveau dictionnaire et retourne un identifiant de dictionnaire, pour être utilisé avec d'autres fonctions pspell.

Pour plus d'informations et d'exemples, reportez-vous au site » http://aspell.net/.

Liste de paramètres

language

Le paramètre de langue spelling est constitué des deux lettres du codage de langue ISO 639, et du codage optionnel de pays ISO 3166, séparés par un '_'.

spelling

Ce paramètre est nécessaire pour les langues qui ont plus d'une orthographe, comme l'anglais ou le français. Les valeurs reconnues sont 'american', 'british', et 'canadian'.

jargon

Le paramètre jargon contient des informations supplémentaires pour distinguer deux listes de mots qui ont le même marquage de langue et d'orthographe.

encoding

Le paramètre encoding est le type d'encodage des mots. Les valeurs valides sont 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. Ce paramètre n'ayant pas été testé de façon exhaustive, il convient d'être prudent lors de son utilisation.

mode

Le paramètre mode est le mode de travail du vérificateur d'orthographe. Plusieurs modes sont disponibles :

  • PSPELL_FAST - Mode rapide (moins de suggestions)
  • PSPELL_NORMAL - Mode normal (plus de suggestions)
  • PSPELL_BAD_SPELLERS - Mode lent (beaucoup plus de suggestions)
  • PSPELL_RUN_TOGETHER - Considère que des mots accolés forment un composé autorisé. Ainsi, "lechat" sera un composé valide. Cette option ne modifie que les résultats retournés par pspell_check(); pspell_suggest() retournera toujours des suggestions.
mode est un masque construit à partir des constantes listées ci-dessus. Cependant, PSPELL_FAST, PSPELL_NORMAL et PSPELL_BAD_SPELLERS sont mutuellement exclusives : vous ne devez en utiliser à la fois.

Valeurs de retour

Retourne l'identifiant de dictionnaire en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_new()

<?php
$pspell_link = pspell_new("en", "", "", "",
                           (PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>


Sauve le dictionnaire personnel dans un fichier

  • « pspell_new
  • pspell_store_replacement »
  • PHP Manual
  • Fonctions Pspell
  • Sauve le dictionnaire personnel dans un fichier

pspell_save_wordlist

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_save_wordlist — Sauve le dictionnaire personnel dans un fichier

Description

bool pspell_save_wordlist ( int $dictionary_link )

pspell_save_wordlist() sauve le dictionnaire personnel de la session courante. La localisation des fichiers doit avoir été spécifiée avec pspell_config_personal() et (éventuellement) pspell_config_repl().

Liste de paramètres

dictionary_link

Un identifiant de dictionnaire ouvert avec pspell_new_personal().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/tmp/dicts/newdict");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Notes

Note:

Cette fonction ne marchera qu'avec pspell .11.2 et aspell .32.5 ou ultérieurs.


Enregistre une paire de remplacement pour un mot

  • « pspell_save_wordlist
  • pspell_suggest »
  • PHP Manual
  • Fonctions Pspell
  • Enregistre une paire de remplacement pour un mot

pspell_store_replacement

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_store_replacement — Enregistre une paire de remplacement pour un mot

Description

bool pspell_store_replacement ( int $dictionary_link , string $misspelled , string $correct )

pspell_store_replacement() enregistre une paire de remplacement pour un mot de façon à ce que cette suggestion soit retournée par pspell_suggest() plus tard. Pour pouvoir utiliser cette fonction, vous devez utiliser pspell_new_personal() pour ouvrir le dictionnaire. Pour pouvoir sauver tout le temps les paires de remplacement, vous devez utiliser pspell_config_personal() et pspell_config_repl() pour indiquer le lieu de sauvegarde des dictionnaires personnels, et pspell_save_wordlist() pour enregistrer les modifications sur le disque.

Liste de paramètres

dictionary_link

Un identifiant de dictionnaire, ouvert avec pspell_new_personal()

misspelled

Le mot mal orthographié.

correct

La bonne orthographe du mot misspelled.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 pspell_store_replacement()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);

pspell_store_replacement($pspell_link, $misspelled, $correct);
pspell_save_wordlist($pspell_link);
?>

Notes

Note:

Cette fonction ne marchera qu'avec pspell .11.2 et aspell .32.5 ou ultérieurs.


Suggère l'orthographe d'un mot

  • « pspell_store_replacement
  • Recode »
  • PHP Manual
  • Fonctions Pspell
  • Suggère l'orthographe d'un mot

pspell_suggest

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_suggest — Suggère l'orthographe d'un mot

Description

array pspell_suggest ( int $dictionary_link , string $word )

pspell_suggest() retourne un tableau de suggestions pour le mot word.

Liste de paramètres

dictionary_link

word

Le mot testé.

Valeurs de retour

Retourne un tableau de suggestions pour le mot word.

Exemples

Exemple #1 Exemple avec pspell_suggest()

<?php
$pspell_link = pspell_new("en");

if (!pspell_check($pspell_link, "testt")) {
    $suggestions = pspell_suggest($pspell_link, "testt");

    foreach ($suggestions as $suggestion) {
        echo "Orthographes suggérées : $suggestion<br />";
    }
}
?>


GNU Recode

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Recode Fonctions
    • recode_file — Recodage de fichier à fichier, en fonction de la demande
    • recode_string — Recode une chaîne en fonction de la requête
    • recode — Alias de recode_string


Introduction

Ce module contient une interface à la bibliothèque GNU Recode. La bibliothèque GNU Recode convertit les fichiers entre divers codages. Lorsque cette conversion n'a pu être effectuée de manière précise, des approximations sont effectuées. La bibliothèque reconnait environs 150 jeux de caractères différents et est capable de convertir des fichiers en les utilisant. La plupart des jeux de caractères » RFC 1345 sont supportés.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.


Pré-requis

Vous devez avoir GNU Recode 3.5 ou supérieur installé sur votre système. Vous pouvez télécharger le paquet depuis » http://directory.fsf.org/All_GNU_Packages/recode.html.

Avertissement

La version 3.6 de la bibliothèque Recode ajoute des caractères étranges à la suite des chaînes converties sous certaines circonstances. Aussi, il est préférable d'utiliser Recode v3.5 ou une bibliothèque alternative disponible, comme l'extension iconv ou l'extension mbstring.


Installation

Pour utiliser ces fonctions, vous devez compiler PHP avec l'option--with-recode[=DIR] .

Avertissement

Des crashs et des problèmes de démarrage de PHP peuvent être rencontrés lorsque l'extension recode est chargée APRES les extensions MySQL ou imap. Charger l'extension recode avant ces deux extensions corrige le problème. Ceci est dû à un problème technique car la bibliothèque c-client de IMAP et recode ont toutes les deux leur propre fonction hash_lookup() et les extensions mysql et recode ont toutes les deux leur fonction hash_insert.

Avertissement

Les extensions IMAP, recode, YAZ et Cyrus ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun. Note: Yaz 2.0 et supérieur ne sont pas affectés par ce problème.


  • « Types de ressources
  • Recode Fonctions »
  • PHP Manual
  • Recode
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Recode Fonctions

Sommaire

  • recode_file — Recodage de fichier à fichier, en fonction de la demande
  • recode_string — Recode une chaîne en fonction de la requête
  • recode — Alias de recode_string


Recodage de fichier à fichier, en fonction de la demande

  • « Recode Fonctions
  • recode_string »
  • PHP Manual
  • Recode Fonctions
  • Recodage de fichier à fichier, en fonction de la demande

recode_file

(PHP 4, PHP 5, PHP 7)

recode_file — Recodage de fichier à fichier, en fonction de la demande

Description

bool recode_file ( string $request , resource $input , resource $output )

Recode le fichier identifié par input dans le fichier identifié par output en fonction de la requête de recodage request.

Liste de paramètres

request

Le type de requête recode désiré

input

Un gestionnaire de fichier local pour le paramètre input

output

Un gestionnaire de fichier local pour le paramètre output

Valeurs de retour

Retourne FALSE, en cas d'échec, et TRUE sinon.

Exemples

Exemple #1 Exemple avec recode_file()

<?php
$input = fopen('input.txt', 'r');
$output = fopen('output.txt', 'w');
recode_file("us..flat", $input, $output);
?>

Notes

Cette fonction ne gère pas encore les fichiers distants (URL). Les deux fichiers doivent faire référence à des fichiers locaux.

Voir aussi

  • fopen() - Ouvre un fichier ou une URL


Recode une chaîne en fonction de la requête

  • « recode_file
  • recode »
  • PHP Manual
  • Recode Fonctions
  • Recode une chaîne en fonction de la requête

recode_string

(PHP 4, PHP 5, PHP 7)

recode_string — Recode une chaîne en fonction de la requête

Description

string recode_string ( string $request , string $string )

Recode la chaîne string en fonction de la requête request.

Liste de paramètres

request

Le type de requête recode désiré

string

La chaîne de caractères à recoder

Valeurs de retour

Retourne la chaîne recodée en cas de succès et FALSE sinon.

Exemples

Exemple #1 Exemple avec recode_string()

<?php
echo recode_string("us..flat", "Le caractère suivant est diacritique : á");
?>

Notes

Une requête simple de recodage peut être "lat1..iso646-de".

Voir aussi

  • Reportez-vous à la documentation GNU Recode de votre installation pour plus de détails sur les requêtes.


Alias de recode_string

  • « recode_string
  • Génération et traitement des images »
  • PHP Manual
  • Recode Fonctions
  • Alias de recode_string

recode

(PHP 4, PHP 5, PHP 7)

recode — Alias de recode_string()

Description

Cette fonction est un alias de : recode_string().


Génération et traitement des images

  • Cairo
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Cairo
    • Cairo — La classe Cairo
    • CairoContext — La classe CairoContext
    • CairoException — La classe CairoException
    • CairoStatus — La classe CairoStatus
    • CairoSurface — La classe CairoSurface
    • CairoSvgSurface — La classe CairoSvgSurface
    • CairoImageSurface — La classe CairoImageSurface
    • CairoPdfSurface — La classe CairoPdfSurface
    • CairoPsSurface — La classe CairoPsSurface
    • CairoSurfaceType — La classe CairoSurfaceType
    • CairoFontFace — La classe CairoFontFace
    • CairoFontOptions — La classe CairoFontOptions
    • CairoFontSlant — La classe CairoFontSlant
    • CairoFontType — La classe CairoFontType
    • CairoFontWeight — La classe CairoFontWeight
    • CairoScaledFont — La classe CairoScaledFont
    • CairoToyFontFace — La classe CairoToyFontFace
    • CairoPatternType — La classe CairoPatternType
    • CairoPattern — La classe CairoPattern
    • CairoGradientPattern — La classe CairoGradientPattern
    • CairoSolidPattern — La classe CairoSolidPattern
    • CairoSurfacePattern — La classe CairoSurfacePattern
    • CairoLinearGradient — La classe CairoLinearGradient
    • CairoRadialGradient — La classe CairoRadialGradient
    • CairoAntialias — La classe CairoAntialias
    • CairoContent — La classe CairoContent
    • CairoExtend — La classe CairoExtend
    • CairoFormat — La classe CairoFormat
    • CairoFillRule — La classe CairoFillRule
    • CairoFilter — La classe CairoFilter
    • CairoHintMetrics — La classe CairoHintMetrics
    • CairoHintStyle — La classe CairoHintStyle
    • CairoLineCap — La classe CairoLineCap
    • CairoLineJoin — La classe CairoLineJoin
    • CairoMatrix — La classe CairoMatrix
    • CairoOperator — La classe CairoOperator
    • CairoPath — La classe CairoPath
    • CairoPsLevel — La classe CairoPsLevel
    • CairoSubpixelOrder — La classe CairoSubpixelOrder
    • CairoSvgVersion — La classe CairoSvgVersion
  • Exif — Informations Exif
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Exif
  • GD — Traitement des images et GD
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions GD et images
  • Gmagick
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Gmagick — La classe Gmagick
    • GmagickDraw — La classe GmagickDraw
    • GmagickPixel — La classe GmagickPixel
  • ImageMagick — Traitement des images (ImageMagick)
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Imagick — La classe Imagick
    • ImagickDraw — La classe ImagickDraw
    • ImagickPixel — La classe ImagickPixel
    • ImagickPixelIterator — La classe ImagickPixelIterator
    • ImagickKernel — The ImagickKernel class


Cairo

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions Cairo
    • cairo_create — Retourne un nouvel objet CairoContext pour la surface demandée
    • cairo_font_face_get_type — Description
    • cairo_font_face_status — Description
    • cairo_font_options_create — Description
    • cairo_font_options_equal — Description
    • cairo_font_options_get_antialias — Description
    • cairo_font_options_get_hint_metrics — Description
    • cairo_font_options_get_hint_style — Description
    • cairo_font_options_get_subpixel_order — Description
    • cairo_font_options_hash — Description
    • cairo_font_options_merge — Description
    • cairo_font_options_set_antialias — Description
    • cairo_font_options_set_hint_metrics — Description
    • cairo_font_options_set_hint_style — Description
    • cairo_font_options_set_subpixel_order — Description
    • cairo_font_options_status — Description
    • cairo_format_stride_for_width — Description
    • cairo_image_surface_create_for_data — Description
    • cairo_image_surface_create_from_png — Description
    • cairo_image_surface_create — Description
    • cairo_image_surface_get_data — Description
    • cairo_image_surface_get_format — Description
    • cairo_image_surface_get_height — Description
    • cairo_image_surface_get_stride — Description
    • cairo_image_surface_get_width — Description
    • cairo_matrix_create_scale — Alias de CairoMatrix::initScale
    • cairo_matrix_create_translate — Alias de CairoMatrix::initTranslate
    • cairo_matrix_invert — Description
    • cairo_matrix_multiply — Description
    • cairo_matrix_rotate — Description
    • cairo_matrix_transform_distance — Description
    • cairo_matrix_transform_point — Description
    • cairo_matrix_translate — Description
    • cairo_pattern_add_color_stop_rgb — Description
    • cairo_pattern_add_color_stop_rgba — Description
    • cairo_pattern_create_for_surface — Description
    • cairo_pattern_create_linear — Description
    • cairo_pattern_create_radial — Description
    • cairo_pattern_create_rgb — Description
    • cairo_pattern_create_rgba — Description
    • cairo_pattern_get_color_stop_count — Description
    • cairo_pattern_get_color_stop_rgba — Description
    • cairo_pattern_get_extend — Description
    • cairo_pattern_get_filter — Description
    • cairo_pattern_get_linear_points — Description
    • cairo_pattern_get_matrix — Description
    • cairo_pattern_get_radial_circles — Description
    • cairo_pattern_get_rgba — Description
    • cairo_pattern_get_surface — Description
    • cairo_pattern_get_type — Description
    • cairo_pattern_set_extend — Description
    • cairo_pattern_set_filter — Description
    • cairo_pattern_set_matrix — Description
    • cairo_pattern_status — Description
    • cairo_pdf_surface_create — Description
    • cairo_pdf_surface_set_size — Description
    • cairo_ps_get_levels — Description
    • cairo_ps_level_to_string — Description
    • cairo_ps_surface_create — Description
    • cairo_ps_surface_dsc_begin_page_setup — Description
    • cairo_ps_surface_dsc_begin_setup — Description
    • cairo_ps_surface_dsc_comment — Description
    • cairo_ps_surface_get_eps — Description
    • cairo_ps_surface_restrict_to_level — Description
    • cairo_ps_surface_set_eps — Description
    • cairo_ps_surface_set_size — Description
    • cairo_scaled_font_create — Description
    • cairo_scaled_font_extents — Description
    • cairo_scaled_font_get_ctm — Description
    • cairo_scaled_font_get_font_face — Description
    • cairo_scaled_font_get_font_matrix — Description
    • cairo_scaled_font_get_font_options — Description
    • cairo_scaled_font_get_scale_matrix — Description
    • cairo_scaled_font_get_type — Description
    • cairo_scaled_font_glyph_extents — Description
    • cairo_scaled_font_status — Description
    • cairo_scaled_font_text_extents — Description
    • cairo_surface_copy_page — Description
    • cairo_surface_create_similar — Description
    • cairo_surface_finish — Description
    • cairo_surface_flush — Description
    • cairo_surface_get_content — Description
    • cairo_surface_get_device_offset — Description
    • cairo_surface_get_font_options — Description
    • cairo_surface_get_type — Description
    • cairo_surface_mark_dirty_rectangle — Description
    • cairo_surface_mark_dirty — Description
    • cairo_surface_set_device_offset — Description
    • cairo_surface_set_fallback_resolution — Description
    • cairo_surface_show_page — Description
    • cairo_surface_status — Description
    • cairo_surface_write_to_png — Description
    • cairo_svg_surface_create — Description
    • cairo_svg_surface_restrict_to_version — Description
    • cairo_svg_version_to_string — Description
  • Cairo — La classe Cairo
    • Cairo::availableFonts — Récupère tous les types de police disponibles
    • Cairo::availableSurfaces — Récupère toutes les surfaces disponibles
    • Cairo::statusToString — Récupère le statut courant, sous la forme d'une chaîne de caractères
    • Cairo::version — Récupère la version de la bibliothèque Cairo
    • Cairo::versionString — Récupère la version Cairo sous la forme d'une chaîne de caractères
  • CairoContext — La classe CairoContext
    • CairoContext::appendPath — Ajoute un chemin à la liste courante des chemins
    • CairoContext::arc — Ajoute un arc circulaire
    • CairoContext::arcNegative — Ajoute un arc négatif
    • CairoContext::clip — Établit une nouvelle région
    • CairoContext::clipExtents — Calcule l'espace à l'intérieur d'une région
    • CairoContext::clipPreserve — Établit une nouvelle région depuis la région courante
    • CairoContext::clipRectangleList — Récupère la région courante sous la forme d'une liste de rectangles
    • CairoContext::closePath — Ferme le chemin courant
    • CairoContext::__construct — Crée un nouvel objet CairoContext
    • CairoContext::copyPage — Émets la page courante
    • CairoContext::copyPath — Crée une copie du chemin courant
    • CairoContext::copyPathFlat — Récupère une copie à plat du chemin courant
    • CairoContext::curveTo — Ajoute une courbe
    • CairoContext::deviceToUser — Transforme une coordonnée
    • CairoContext::deviceToUserDistance — Transforme une distance
    • CairoContext::fill — Remplit le chemin courant
    • CairoContext::fillExtents — Calcule la zone remplie
    • CairoContext::fillPreserve — Remplit et préserve le chemin courant
    • CairoContext::fontExtents — Récupère la police étendue
    • CairoContext::getAntialias — Récupère le mode antialias courant
    • CairoContext::getCurrentPoint — Le but de getCurrentPoint
    • CairoContext::getDash — Le but de getDash
    • CairoContext::getDashCount — Le but de getDashCount
    • CairoContext::getFillRule — Le but de getFillRule
    • CairoContext::getFontFace — Le but de getFontFace
    • CairoContext::getFontMatrix — Le but de getFontMatrix
    • CairoContext::getFontOptions — Le but de getFontOptions
    • CairoContext::getGroupTarget — Le but de getGroupTarget
    • CairoContext::getLineCap — Le but de getLineCap
    • CairoContext::getLineJoin — Le but de getLineJoin
    • CairoContext::getLineWidth — Le but de getLineWidth
    • CairoContext::getMatrix — Le but de getMatrix
    • CairoContext::getMiterLimit — Le but de getMiterLimit
    • CairoContext::getOperator — Le but de getOperator
    • CairoContext::getScaledFont — Le but de getScaledFont
    • CairoContext::getSource — Le but de getSource
    • CairoContext::getTarget — Le but de getTarget
    • CairoContext::getTolerance — Le but de getTolerance
    • CairoContext::glyphPath — Le but de glyphPath
    • CairoContext::hasCurrentPoint — Le but de hasCurrentPoint
    • CairoContext::identityMatrix — Le but de identityMatrix
    • CairoContext::inFill — Le but de inFill
    • CairoContext::inStroke — Le but de inStroke
    • CairoContext::lineTo — Le but de lineTo
    • CairoContext::mask — Le but de mask
    • CairoContext::maskSurface — Le but de maskSurface
    • CairoContext::moveTo — Le but de moveTo
    • CairoContext::newPath — Le but de newPath
    • CairoContext::newSubPath — Le but de newSubPath
    • CairoContext::paint — Le but de paint
    • CairoContext::paintWithAlpha — Le but de paintWithAlpha
    • CairoContext::pathExtents — Le but de pathExtents
    • CairoContext::popGroup — Le but de popGroup purpose
    • CairoContext::popGroupToSource — Le but de popGroupToSource
    • CairoContext::pushGroup — Le but de pushGroup
    • CairoContext::pushGroupWithContent — Le but de pushGroupWithContent
    • CairoContext::rectangle — Le but de rectangle
    • CairoContext::relCurveTo — Le but de relCurveTo
    • CairoContext::relLineTo — Le but de relLineTo
    • CairoContext::relMoveTo — Le but de relMoveTo
    • CairoContext::resetClip — Le but de resetClip
    • CairoContext::restore — Le but de restore
    • CairoContext::rotate — Le but de rotate
    • CairoContext::save — Le but de save
    • CairoContext::scale — Le but de scale
    • CairoContext::selectFontFace — Le but de selectFontFace
    • CairoContext::setAntialias — Le but de setAntialias
    • CairoContext::setDash — Le but de setDash
    • CairoContext::setFillRule — Le but de setFillRule
    • CairoContext::setFontFace — Le but de setFontFace
    • CairoContext::setFontMatrix — Le but de setFontMatrix
    • CairoContext::setFontOptions — Le but de setFontOptions
    • CairoContext::setFontSize — Le but de setFontSize
    • CairoContext::setLineCap — Le but de setLineCap
    • CairoContext::setLineJoin — Le but de setLineJoin
    • CairoContext::setLineWidth — Le but de setLineWidth
    • CairoContext::setMatrix — Le but de setMatrix
    • CairoContext::setMiterLimit — Le but de setMiterLimit
    • CairoContext::setOperator — Le but de setOperator
    • CairoContext::setScaledFont — Le but de setScaledFont
    • CairoContext::setSource — Le but de setSource
    • CairoContext::setSourceRGB — Le but de setSourceRGB
    • CairoContext::setSourceRGBA — Le but de setSourceRGBA
    • CairoContext::setSourceSurface — Le but de setSourceSurface
    • CairoContext::setTolerance — Le but de setTolerance
    • CairoContext::showPage — Le but de showPage
    • CairoContext::showText — Le but de showText
    • CairoContext::status — Le but de status
    • CairoContext::stroke — Le but de stroke
    • CairoContext::strokeExtents — Le but de strokeExtents
    • CairoContext::strokePreserve — Le but de strokePreserve
    • CairoContext::textExtents — Le but de textExtents
    • CairoContext::textPath — Le but de textPath
    • CairoContext::transform — Le but de transform
    • CairoContext::translate — Le but de translate
    • CairoContext::userToDevice — Le but de userToDevice
    • CairoContext::userToDeviceDistance — Le but de userToDeviceDistance
  • CairoException — La classe CairoException
  • CairoStatus — La classe CairoStatus
  • CairoSurface — La classe CairoSurface
    • CairoSurface::__construct — Le but de __construct
    • CairoSurface::copyPage — Le but de copyPage
    • CairoSurface::createSimilar — Le but de createSimilar
    • CairoSurface::finish — Le but de finish
    • CairoSurface::flush — Le but de flush
    • CairoSurface::getContent — Le but de getContent
    • CairoSurface::getDeviceOffset — Le but de getDeviceOffset
    • CairoSurface::getFontOptions — Le but de getFontOptions
    • CairoSurface::getType — Le but de getType
    • CairoSurface::markDirty — Le but de markDirty
    • CairoSurface::markDirtyRectangle — Le but de markDirtyRectangle
    • CairoSurface::setDeviceOffset — Le but de setDeviceOffset
    • CairoSurface::setFallbackResolution — Le but de setFallbackResolution
    • CairoSurface::showPage — Le but de showPage
    • CairoSurface::status — Le but de status
    • CairoSurface::writeToPng — Le but de writeToPng
  • CairoSvgSurface — La classe CairoSvgSurface
    • CairoSvgSurface::__construct — Le but de __construct
    • CairoSvgSurface::getVersions — Récupère la liste des versions SVG supportées
    • CairoSvgSurface::restrictToVersion — Le but de restrictToVersion
    • CairoSvgSurface::versionToString — Le but de versionToString
  • CairoImageSurface — La classe CairoImageSurface
    • CairoImageSurface::__construct — Crée un nouvel objet CairoImageSurface
    • CairoImageSurface::createForData — Le but de createForData
    • CairoImageSurface::createFromPng — Crée un nouvel CairoImageSurface à partir d'une image PNG
    • CairoImageSurface::getData — Récupère les données de l'image, sous la forme d'une chaîne de caractères
    • CairoImageSurface::getFormat — Récupère le format de l'image
    • CairoImageSurface::getHeight — Récupère la hauteur d'un CairoImageSurface
    • CairoImageSurface::getStride — Le but de getStride
    • CairoImageSurface::getWidth — Récupère la largeur d'un CairoImageSurface
  • CairoPdfSurface — La classe CairoPdfSurface
    • CairoPdfSurface::__construct — Le but de __construct
    • CairoPdfSurface::setSize — Le but de setSize
  • CairoPsSurface — La classe CairoPsSurface
    • CairoPsSurface::__construct — Le but de __construct
    • CairoPsSurface::dscBeginPageSetup — Le but de dscBeginPageSetup
    • CairoPsSurface::dscBeginSetup — Le but de dscBeginSetup
    • CairoPsSurface::dscComment — Le but de dscComment
    • CairoPsSurface::getEps — Le but de getEps
    • CairoPsSurface::getLevels — Le but de getLevels
    • CairoPsSurface::levelToString — Le but de levelToString
    • CairoPsSurface::restrictToLevel — Le but de restrictToLevel
    • CairoPsSurface::setEps — Le but de setEps
    • CairoPsSurface::setSize — Le but de setSize
  • CairoSurfaceType — La classe CairoSurfaceType
  • CairoFontFace — La classe CairoFontFace
    • CairoFontFace::__construct — Crée un nouvel objet CairoFontFace
    • CairoFontFace::getType — Récupère le type de la police
    • CairoFontFace::status — Vérifie les erreurs CairoFontFace
  • CairoFontOptions — La classe CairoFontOptions
    • CairoFontOptions::__construct — Le but de __construct
    • CairoFontOptions::equal — Le but de equal
    • CairoFontOptions::getAntialias — Le but de getAntialias
    • CairoFontOptions::getHintMetrics — Le but de getHintMetrics
    • CairoFontOptions::getHintStyle — Le but de getHintStyle
    • CairoFontOptions::getSubpixelOrder — Le but de getSubpixelOrder
    • CairoFontOptions::hash — Le but de hash
    • CairoFontOptions::merge — Le but de merge
    • CairoFontOptions::setAntialias — Le but de setAntialias
    • CairoFontOptions::setHintMetrics — Le but de setHintMetrics
    • CairoFontOptions::setHintStyle — Le but de setHintStyle
    • CairoFontOptions::setSubpixelOrder — Le but de setSubpixelOrder
    • CairoFontOptions::status — Le but de status
  • CairoFontSlant — La classe CairoFontSlant
  • CairoFontType — La classe CairoFontType
  • CairoFontWeight — La classe CairoFontWeight
  • CairoScaledFont — La classe CairoScaledFont
    • CairoScaledFont::__construct — Le but de __construct
    • CairoScaledFont::extents — Le but de extents
    • CairoScaledFont::getCtm — Le but de getCtm
    • CairoScaledFont::getFontFace — Le but de getFontFace
    • CairoScaledFont::getFontMatrix — Le but de getFontMatrix
    • CairoScaledFont::getFontOptions — Le but de getFontOptions
    • CairoScaledFont::getScaleMatrix — Le but de getScaleMatrix
    • CairoScaledFont::getType — Le but de getType
    • CairoScaledFont::glyphExtents — Le but de glyphExtents
    • CairoScaledFont::status — Le but de status
    • CairoScaledFont::textExtents — Le but de textExtents
  • CairoToyFontFace — La classe CairoToyFontFace
  • CairoPatternType — La classe CairoPatternType
  • CairoPattern — La classe CairoPattern
    • CairoPattern::__construct — Le but de __construct
    • CairoPattern::getMatrix — Le but de getMatrix
    • CairoPattern::getType — Le but de getType
    • CairoPattern::setMatrix — Le but de setMatrix
    • CairoPattern::status — Le but de status
  • CairoGradientPattern — La classe CairoGradientPattern
    • CairoGradientPattern::addColorStopRgb — Le but de addColorStopRgb
    • CairoGradientPattern::addColorStopRgba — Le but de addColorStopRgba
    • CairoGradientPattern::getColorStopCount — Le but de getColorStopCount
    • CairoGradientPattern::getColorStopRgba — Le but de getColorStopRgba
    • CairoGradientPattern::getExtend — Le but de getExtend
    • CairoGradientPattern::setExtend — Le but de setExtend
  • CairoSolidPattern — La classe CairoSolidPattern
    • CairoSolidPattern::__construct — Le but de __construct
    • CairoSolidPattern::getRgba — Le but de getRgba
  • CairoSurfacePattern — La classe CairoSurfacePattern
    • CairoSurfacePattern::__construct — Le but de __construct
    • CairoSurfacePattern::getExtend — Le but de getExtend
    • CairoSurfacePattern::getFilter — Le but de getFilter
    • CairoSurfacePattern::getSurface — Le but de getSurface
    • CairoSurfacePattern::setExtend — Le but de setExtend
    • CairoSurfacePattern::setFilter — Le but de setFilter
  • CairoLinearGradient — La classe CairoLinearGradient
    • CairoLinearGradient::__construct — Le but de __construct
    • CairoLinearGradient::getPoints — Le but de getPoints
  • CairoRadialGradient — La classe CairoRadialGradient
    • CairoRadialGradient::__construct — Le but de __construct
    • CairoRadialGradient::getCircles — Le but de getCircles
  • CairoAntialias — La classe CairoAntialias
  • CairoContent — La classe CairoContent
  • CairoExtend — La classe CairoExtend
  • CairoFormat — La classe CairoFormat
    • CairoFormat::strideForWidth — Fournit un stride approprié à utiliser
  • CairoFillRule — La classe CairoFillRule
  • CairoFilter — La classe CairoFilter
  • CairoHintMetrics — La classe CairoHintMetrics
  • CairoHintStyle — La classe CairoHintStyle
  • CairoLineCap — La classe CairoLineCap
  • CairoLineJoin — La classe CairoLineJoin
  • CairoMatrix — La classe CairoMatrix
    • CairoMatrix::__construct — Crée un nouvel objet CairoMatrix
    • CairoMatrix::initIdentity — Crée une nouvelle matrice d'identité
    • CairoMatrix::initRotate — Crée une nouvelle matrice de rotation
    • CairoMatrix::initScale — Crée une nouvelle matrice de mise à l'échelle
    • CairoMatrix::initTranslate — Crée une nouvelle matrice de traduction
    • CairoMatrix::invert — Le but de invert
    • CairoMatrix::multiply — Le but de multiply
    • CairoMatrix::rotate — Le but de rotate
    • CairoMatrix::scale — Applique une mise à l'échelle à une matrice
    • CairoMatrix::transformDistance — Le but de transformDistance
    • CairoMatrix::transformPoint — Le but de transformPoint
    • CairoMatrix::translate — Le but de translate
  • CairoOperator — La classe CairoOperator
  • CairoPath — La classe CairoPath
  • CairoPsLevel — La classe CairoPsLevel
  • CairoSubpixelOrder — La classe CairoSubpixelOrder
  • CairoSvgVersion — La classe CairoSvgVersion


Introduction

Cairo est une extension native PHP pour créer et modifier des graphiques en utilisant la bibliothèque graphique Cairo.

La bibliothèque graphique Cairo est une bibliothèque 2D écrite en C avec un support pour plusieurs périphériques de sortie. Actuellement, les périphériques de sortie incluent le X Window System, Quartz, Win32, les buffers d'images, PostScript, PDF, et les fichiers SVG. Il existe aussi un support expérimental pour OpenGL (via glitz), XCB, BeOS, OS/2, et DirectFB. La bibliothèque supporte également 2 types de manipulation de textes et d'interface. L'API "toy" fournit 2 niveaux de qualités, et l'API glyphs, bien que totalement fonctionnelle, fonctionne mieux avec une bibliothèque d'aide comme pango. Le support des polices de caractères inclut FreeType, Quartz, Win32, et les polices définies par l'utilisateur.

Il y a 2 types d'infographie : vectorielle et matricielle. Les graphiques matricielles sont des représentations d'images sous forme de tableaux de pixels. Les graphiques vectorielles utilisent des primitives géométriques comme les points, les lignes, les courbes ou les polygones pour représenter les images. Les primitives sont créées en utilisant des équations mathématiques. La bibliothèque Cairo aborde les graphiques de façon vectorielle, permettant une taille plus petite, un zoom infini, mais aussi de déplacer, redimensionner et effectuer des rotations sans dégrader la qualité de l'image.

Les opérations possibles avec la bibliothèque graphique Cairo incluent le dessin et le remplissage de courbes cubiques de Bézier, la transformation et la composition d'images transparentes, mais aussi le traitement de texte anti-crénelé. Toutes les opérations de dessin peuvent être transformées par toutes les transformations affines (mise à l'échelle, rotation, cisaillement et d'autres). Elles sont similaires aux opérations de dessin en PostScript et PDF.

L'extension PHP Cairo est prévue pour fournir un support de toutes les polices et toutes les interfaces officiellement supportées, permettant ainsi de fournir aux utilisateurs PHP toutes les fonctionnalités disponibles de Cairo.


Pré-requis

Cairo n'est disponible que pour PHP 5.2+ et PHP 5.3+. L'extension nécessite également la bibliothèque graphique Cairo version 1.4+. La bibliothèque graphique Cairo utilise un schéma de numérotation permettant de savoir si c'est une version stable ou non de la bibliothèque. À la fois les versions stables et instables peuvent être utilisées avec l'extension ; aussi, les nouvelles fonctionnalités sont disponibles suivant la version stable précédente à la version instable utilisée. La dernière version Cairo peut être trouvée sur » http://cairographics.org/.

Les fichiers binaires pour Windows peuvent être trouvés sur » http://cairographics.org/download/ y compris les fichiers du projet utilisés pour les créer.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/cairo.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Notes spécifiques pour une installation sous Windows.

Les binaires de l'extension peuvent être trouvés sur » http://cairographics.org/download/. Téléchargez le fichier zip correspondant, placez le fichier php_cairo.dll dans le dossier des extensions, activez-le via votre fichier php.ini. Assurez-vous que la version de PHP correspond (5.2, 5.3) mais aussi l'architecture (x86, x64), la version du compilateur (VC6 ou VC9) ou bien l'extension ne se chargera pas.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CAIRO_STATUS_SUCCESS (entier)
CAIRO_STATUS_NO_MEMORY (entier)
CAIRO_STATUS_INVALID_RESTORE (entier)
CAIRO_STATUS_INVALID_POP_GROUP (entier)
CAIRO_STATUS_NO_CURRENT_POINT (entier)
CAIRO_STATUS_INVALID_MATRIX (entier)
CAIRO_STATUS_INVALID_STATUS (entier)
CAIRO_STATUS_NULL_POINTER (entier)
CAIRO_STATUS_INVALID_STRING (entier)
CAIRO_STATUS_INVALID_PATH_DATA (entier)
CAIRO_STATUS_READ_ERROR (entier)
CAIRO_STATUS_WRITE_ERROR (entier)
CAIRO_STATUS_SURFACE_FINISHED (entier)
CAIRO_STATUS_SURFACE_TYPE_MISMATCH (entier)
CAIRO_STATUS_PATTERN_TYPE_MISMATCH (entier)
CAIRO_STATUS_INVALID_CONTENT (entier)
CAIRO_STATUS_INVALID_FORMAT (entier)
CAIRO_STATUS_INVALID_VISUAL (entier)
CAIRO_STATUS_FILE_NOT_FOUND (entier)
CAIRO_STATUS_INVALID_DASH (entier)
CAIRO_STATUS_INVALID_DSC_COMMENT (entier)
CAIRO_STATUS_INVALID_INDEX (entier)
CAIRO_STATUS_CLIP_NOT_REPRESENTABLE (entier)
CAIRO_STATUS_TEMP_FILE_ERROR (entier)
CAIRO_STATUS_INVALID_STRIDE (entier)
CAIRO_ANTIALIAS_DEFAULT (entier)
CAIRO_ANTIALIAS_NONE (entier)
CAIRO_ANTIALIAS_GRAY (entier)
CAIRO_ANTIALIAS_SUBPIXEL (entier)
CAIRO_SUBPIXEL_ORDER_DEFAULT (entier)
CAIRO_SUBPIXEL_ORDER_RGB (entier)
CAIRO_SUBPIXEL_ORDER_BGR (entier)
CAIRO_SUBPIXEL_ORDER_VRGB (entier)
CAIRO_SUBPIXEL_ORDER_VBGR (entier)
CAIRO_FILL_RULE_WINDING (entier)
CAIRO_FILL_RULE_EVEN_ODD (entier)
CAIRO_LINE_CAP_BUTT (entier)
CAIRO_LINE_CAP_ROUND (entier)
CAIRO_LINE_CAP_SQUARE (entier)
CAIRO_LINE_JOIN_MITER (entier)
CAIRO_LINE_JOIN_ROUND (entier)
CAIRO_LINE_JOIN_BEVEL (entier)
CAIRO_OPERATOR_CLEAR (entier)
CAIRO_OPERATOR_SOURCE (entier)
CAIRO_OPERATOR_OVER (entier)
CAIRO_OPERATOR_IN (entier)
CAIRO_OPERATOR_OUT (entier)
CAIRO_OPERATOR_ATOP (entier)
CAIRO_OPERATOR_DEST (entier)
CAIRO_OPERATOR_DEST_OVER (entier)
CAIRO_OPERATOR_DEST_IN (entier)
CAIRO_OPERATOR_DEST_OUT (entier)
CAIRO_OPERATOR_DEST_ATOP (entier)
CAIRO_OPERATOR_XOR (entier)
CAIRO_OPERATOR_ADD (entier)
CAIRO_OPERATOR_SATURATE (entier)
CAIRO_PATTERN_TYPE_SOLID (entier)
CAIRO_PATTERN_TYPE_SURFACE (entier)
CAIRO_PATTERN_TYPE_LINEAR (entier)
CAIRO_PATTERN_TYPE_RADIAL (entier)
CAIRO_EXTEND_NONE (entier)
CAIRO_EXTEND_REPEAT (entier)
CAIRO_EXTEND_REFLECT (entier)
CAIRO_EXTEND_PAD (entier)
CAIRO_FILTER_FAST (entier)
CAIRO_FILTER_GOOD (entier)
CAIRO_FILTER_BEST (entier)
CAIRO_FILTER_NEAREST (entier)
CAIRO_FILTER_BILINEAR (entier)
CAIRO_FILTER_GAUSSIAN (entier)
CAIRO_HINT_STYLE_DEFAULT (entier)
CAIRO_HINT_STYLE_NONE (entier)
CAIRO_HINT_STYLE_SLIGHT (entier)
CAIRO_HINT_STYLE_MEDIUM (entier)
CAIRO_HINT_STYLE_FULL (entier)
CAIRO_HINT_METRICS_DEFAULT (entier)
CAIRO_HINT_METRICS_OFF (entier)
CAIRO_HINT_METRICS_ON (entier)
CAIRO_FONT_TYPE_TOY (entier)
CAIRO_FONT_TYPE_FT (entier)
CAIRO_FONT_TYPE_WIN32 (entier)
CAIRO_FONT_TYPE_QUARTZ (entier)
CAIRO_FONT_SLANT_NORMAL (entier)
CAIRO_FONT_SLANT_ITALIC (entier)
CAIRO_FONT_SLANT_OBLIQUE (entier)
CAIRO_FONT_WEIGHT_NORMAL (entier)
CAIRO_FONT_WEIGHT_BOLD (entier)
CAIRO_CONTENT_COLOR (entier)
CAIRO_CONTENT_ALPHA (entier)
CAIRO_CONTENT_COLOR_ALPHA (entier)
CAIRO_SURFACE_TYPE_IMAGE (entier)
CAIRO_SURFACE_TYPE_PDF (entier)
CAIRO_SURFACE_TYPE_PS (entier)
CAIRO_SURFACE_TYPE_XLIB (entier)
CAIRO_SURFACE_TYPE_XCB (entier)
CAIRO_SURFACE_TYPE_GLITZ (entier)
CAIRO_SURFACE_TYPE_QUARTZ (entier)
CAIRO_SURFACE_TYPE_WIN32 (entier)
CAIRO_SURFACE_TYPE_BEOS (entier)
CAIRO_SURFACE_TYPE_DIRECTFB (entier)
CAIRO_SURFACE_TYPE_SVG (entier)
CAIRO_SURFACE_TYPE_OS2 (entier)
CAIRO_SURFACE_TYPE_WIN32_PRINTING (entier)
CAIRO_SURFACE_TYPE_QUARTZ_IMAGE (entier)
CAIRO_FORMAT_ARGB32 (entier)
CAIRO_FORMAT_RGB24 (entier)
CAIRO_FORMAT_A8 (entier)
CAIRO_FORMAT_A1 (entier)
CAIRO_PS_LEVEL_2 (entier)
CAIRO_PS_LEVEL_3 (entier)
CAIRO_SVG_VERSION_1_1 (entier)
CAIRO_SVG_VERSION_1_2 (entier)


Exemples

Exemple #1 Exemple Cairo

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...


Fonctions Cairo

Sommaire

  • cairo_create — Retourne un nouvel objet CairoContext pour la surface demandée
  • cairo_font_face_get_type — Description
  • cairo_font_face_status — Description
  • cairo_font_options_create — Description
  • cairo_font_options_equal — Description
  • cairo_font_options_get_antialias — Description
  • cairo_font_options_get_hint_metrics — Description
  • cairo_font_options_get_hint_style — Description
  • cairo_font_options_get_subpixel_order — Description
  • cairo_font_options_hash — Description
  • cairo_font_options_merge — Description
  • cairo_font_options_set_antialias — Description
  • cairo_font_options_set_hint_metrics — Description
  • cairo_font_options_set_hint_style — Description
  • cairo_font_options_set_subpixel_order — Description
  • cairo_font_options_status — Description
  • cairo_format_stride_for_width — Description
  • cairo_image_surface_create_for_data — Description
  • cairo_image_surface_create_from_png — Description
  • cairo_image_surface_create — Description
  • cairo_image_surface_get_data — Description
  • cairo_image_surface_get_format — Description
  • cairo_image_surface_get_height — Description
  • cairo_image_surface_get_stride — Description
  • cairo_image_surface_get_width — Description
  • cairo_matrix_create_scale — Alias de CairoMatrix::initScale
  • cairo_matrix_create_translate — Alias de CairoMatrix::initTranslate
  • cairo_matrix_invert — Description
  • cairo_matrix_multiply — Description
  • cairo_matrix_rotate — Description
  • cairo_matrix_transform_distance — Description
  • cairo_matrix_transform_point — Description
  • cairo_matrix_translate — Description
  • cairo_pattern_add_color_stop_rgb — Description
  • cairo_pattern_add_color_stop_rgba — Description
  • cairo_pattern_create_for_surface — Description
  • cairo_pattern_create_linear — Description
  • cairo_pattern_create_radial — Description
  • cairo_pattern_create_rgb — Description
  • cairo_pattern_create_rgba — Description
  • cairo_pattern_get_color_stop_count — Description
  • cairo_pattern_get_color_stop_rgba — Description
  • cairo_pattern_get_extend — Description
  • cairo_pattern_get_filter — Description
  • cairo_pattern_get_linear_points — Description
  • cairo_pattern_get_matrix — Description
  • cairo_pattern_get_radial_circles — Description
  • cairo_pattern_get_rgba — Description
  • cairo_pattern_get_surface — Description
  • cairo_pattern_get_type — Description
  • cairo_pattern_set_extend — Description
  • cairo_pattern_set_filter — Description
  • cairo_pattern_set_matrix — Description
  • cairo_pattern_status — Description
  • cairo_pdf_surface_create — Description
  • cairo_pdf_surface_set_size — Description
  • cairo_ps_get_levels — Description
  • cairo_ps_level_to_string — Description
  • cairo_ps_surface_create — Description
  • cairo_ps_surface_dsc_begin_page_setup — Description
  • cairo_ps_surface_dsc_begin_setup — Description
  • cairo_ps_surface_dsc_comment — Description
  • cairo_ps_surface_get_eps — Description
  • cairo_ps_surface_restrict_to_level — Description
  • cairo_ps_surface_set_eps — Description
  • cairo_ps_surface_set_size — Description
  • cairo_scaled_font_create — Description
  • cairo_scaled_font_extents — Description
  • cairo_scaled_font_get_ctm — Description
  • cairo_scaled_font_get_font_face — Description
  • cairo_scaled_font_get_font_matrix — Description
  • cairo_scaled_font_get_font_options — Description
  • cairo_scaled_font_get_scale_matrix — Description
  • cairo_scaled_font_get_type — Description
  • cairo_scaled_font_glyph_extents — Description
  • cairo_scaled_font_status — Description
  • cairo_scaled_font_text_extents — Description
  • cairo_surface_copy_page — Description
  • cairo_surface_create_similar — Description
  • cairo_surface_finish — Description
  • cairo_surface_flush — Description
  • cairo_surface_get_content — Description
  • cairo_surface_get_device_offset — Description
  • cairo_surface_get_font_options — Description
  • cairo_surface_get_type — Description
  • cairo_surface_mark_dirty_rectangle — Description
  • cairo_surface_mark_dirty — Description
  • cairo_surface_set_device_offset — Description
  • cairo_surface_set_fallback_resolution — Description
  • cairo_surface_show_page — Description
  • cairo_surface_status — Description
  • cairo_surface_write_to_png — Description
  • cairo_svg_surface_create — Description
  • cairo_svg_surface_restrict_to_version — Description
  • cairo_svg_version_to_string — Description


Retourne un nouvel objet CairoContext pour la surface demandée

  • « Fonctions Cairo
  • cairo_font_face_get_type »
  • PHP Manual
  • Fonctions Cairo
  • Retourne un nouvel objet CairoContext pour la surface demandée

cairo_create

(PECL cairo >= 0.1.0)

cairo_create — Retourne un nouvel objet CairoContext pour la surface demandée

Description

CairoContext cairo_create ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_create
  • cairo_font_face_status »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_face_get_type

(PECL cairo >= 0.1.0)

cairo_font_face_get_type —

Description

int cairo_font_face_get_type ( CairoFontFace $fontface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

fontface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_face_get_type()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_face_get_type
  • cairo_font_options_create »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_face_status

(PECL cairo >= 0.1.0)

cairo_font_face_status —

Description

int cairo_font_face_status ( CairoFontFace $fontface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

fontface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_face_status()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_face_status
  • cairo_font_options_equal »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_options_create

(PECL cairo >= 0.1.0)

cairo_font_options_create —

Description

CairoFontOptions cairo_font_options_create ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_options_create
  • cairo_font_options_get_antialias »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_options_equal

(PECL cairo >= 0.1.0)

cairo_font_options_equal —

Description

bool cairo_font_options_equal ( CairoFontOptions $options , CairoFontOptions $other )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

other

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_equal()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_options_equal
  • cairo_font_options_get_hint_metrics »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_options_get_antialias

(PECL cairo >= 0.1.0)

cairo_font_options_get_antialias —

Description

int cairo_font_options_get_antialias ( CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_get_antialias()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_options_get_antialias
  • cairo_font_options_get_hint_style »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_options_get_hint_metrics

(PECL cairo >= 0.1.0)

cairo_font_options_get_hint_metrics —

Description

int cairo_font_options_get_hint_metrics ( CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_get_hint_metrics()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_options_get_hint_metrics
  • cairo_font_options_get_subpixel_order »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_options_get_hint_style

(PECL cairo >= 0.1.0)

cairo_font_options_get_hint_style —

Description

int cairo_font_options_get_hint_style ( CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_get_hint_style()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_options_get_hint_style
  • cairo_font_options_hash »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_options_get_subpixel_order

(PECL cairo >= 0.1.0)

cairo_font_options_get_subpixel_order —

Description

int cairo_font_options_get_subpixel_order ( CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_get_subpixel_order()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_options_get_subpixel_order
  • cairo_font_options_merge »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_options_hash

(PECL cairo >= 0.1.0)

cairo_font_options_hash —

Description

int cairo_font_options_hash ( CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_hash()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_options_hash
  • cairo_font_options_set_antialias »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_options_merge

(PECL cairo >= 0.1.0)

cairo_font_options_merge —

Description

void cairo_font_options_merge ( CairoFontOptions $options , CairoFontOptions $other )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

other

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_merge()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_options_merge
  • cairo_font_options_set_hint_metrics »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_options_set_antialias

(PECL cairo >= 0.1.0)

cairo_font_options_set_antialias —

Description

void cairo_font_options_set_antialias ( CairoFontOptions $options , int $antialias )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

antialias

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_set_antialias()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_options_set_antialias
  • cairo_font_options_set_hint_style »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_options_set_hint_metrics

(PECL cairo >= 0.1.0)

cairo_font_options_set_hint_metrics —

Description

void cairo_font_options_set_hint_metrics ( CairoFontOptions $options , int $hint_metrics )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

hint_metrics

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_set_hint_metrics()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_options_set_hint_metrics
  • cairo_font_options_set_subpixel_order »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_options_set_hint_style

(PECL cairo >= 0.1.0)

cairo_font_options_set_hint_style —

Description

void cairo_font_options_set_hint_style ( CairoFontOptions $options , int $hint_style )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

hint_style

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_set_hint_style()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_options_set_hint_style
  • cairo_font_options_status »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_options_set_subpixel_order

(PECL cairo >= 0.1.0)

cairo_font_options_set_subpixel_order —

Description

void cairo_font_options_set_subpixel_order ( CairoFontOptions $options , int $subpixel_order )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

subpixel_order

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_set_subpixel_order()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_options_set_subpixel_order
  • cairo_format_stride_for_width »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_font_options_status

(PECL cairo >= 0.1.0)

cairo_font_options_status —

Description

int cairo_font_options_status ( CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_font_options_status()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_font_options_status
  • cairo_image_surface_create_for_data »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_format_stride_for_width

(PECL cairo >= 0.1.0)

cairo_format_stride_for_width —

Description

int cairo_format_stride_for_width ( int $format , int $width )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

format

width

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_format_stride_for_width()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_format_stride_for_width
  • cairo_image_surface_create_from_png »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_image_surface_create_for_data

(PECL cairo >= 0.1.0)

cairo_image_surface_create_for_data —

Description

CairoImageSurface cairo_image_surface_create_for_data ( string $data , int $format , int $width , int $height [, int $stride = -1 ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

data

format

width

height

stride

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_create_for_data()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_image_surface_create_for_data
  • cairo_image_surface_create »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_image_surface_create_from_png

(PECL cairo >= 0.1.0)

cairo_image_surface_create_from_png —

Description

CairoImageSurface cairo_image_surface_create_from_png ( string $file )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_create_from_png()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_image_surface_create_from_png
  • cairo_image_surface_get_data »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_image_surface_create

(PECL cairo >= 0.1.0)

cairo_image_surface_create —

Description

CairoImageSurface cairo_image_surface_create ( int $format , int $width , int $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

format

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_image_surface_create
  • cairo_image_surface_get_format »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_image_surface_get_data

(PECL cairo >= 0.1.0)

cairo_image_surface_get_data —

Description

string cairo_image_surface_get_data ( CairoImageSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_get_data()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_image_surface_get_data
  • cairo_image_surface_get_height »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_image_surface_get_format

(PECL cairo >= 0.1.0)

cairo_image_surface_get_format —

Description

int cairo_image_surface_get_format ( CairoImageSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_get_format()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_image_surface_get_format
  • cairo_image_surface_get_stride »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_image_surface_get_height

(PECL cairo >= 0.1.0)

cairo_image_surface_get_height —

Description

int cairo_image_surface_get_height ( CairoImageSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_get_height()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_image_surface_get_height
  • cairo_image_surface_get_width »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_image_surface_get_stride

(PECL cairo >= 0.1.0)

cairo_image_surface_get_stride —

Description

int cairo_image_surface_get_stride ( CairoImageSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_get_stride()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_image_surface_get_stride
  • cairo_matrix_create_scale »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_image_surface_get_width

(PECL cairo >= 0.1.0)

cairo_image_surface_get_width —

Description

int cairo_image_surface_get_width ( CairoImageSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_image_surface_get_width()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Alias de CairoMatrix::initScale

  • « cairo_image_surface_get_width
  • cairo_matrix_create_translate »
  • PHP Manual
  • Fonctions Cairo
  • Alias de CairoMatrix::initScale

cairo_matrix_create_scale

(PECL cairo >= 0.1.0)

cairo_matrix_create_scale — Alias de CairoMatrix::initScale()

Description

Cette fonction est un alias de : CairoMatrix::initScale().

Cet alias est déprécié et n'existe que pour des raisons de compatibilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.


Alias de CairoMatrix::initTranslate

  • « cairo_matrix_create_scale
  • cairo_matrix_invert »
  • PHP Manual
  • Fonctions Cairo
  • Alias de CairoMatrix::initTranslate

cairo_matrix_create_translate

(PECL cairo >= 0.1.0)

cairo_matrix_create_translate — Alias de CairoMatrix::initTranslate()

Description

Cette fonction est un alias de : CairoMatrix::initTranslate().

Cet alias est déprécié et n'existe que pour des raisons de compatibilité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.


Description

  • « cairo_matrix_create_translate
  • cairo_matrix_multiply »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_matrix_invert

(PECL cairo >= 0.1.0)

cairo_matrix_invert —

Description

void cairo_matrix_invert ( CairoMatrix $matrix )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_matrix_invert()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_matrix_invert
  • cairo_matrix_rotate »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_matrix_multiply

(PECL cairo >= 0.1.0)

cairo_matrix_multiply —

Description

CairoMatrix cairo_matrix_multiply ( CairoMatrix $matrix1 , CairoMatrix $matrix2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix1

matrix2

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_matrix_multiply()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_matrix_multiply
  • cairo_matrix_transform_distance »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_matrix_rotate

(PECL cairo >= 0.1.0)

cairo_matrix_rotate —

Description

void cairo_matrix_rotate ( CairoMatrix $matrix , float $radians )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix

radians

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_matrix_rotate()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_matrix_rotate
  • cairo_matrix_transform_point »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_matrix_transform_distance

(PECL cairo >= 0.1.0)

cairo_matrix_transform_distance —

Description

array cairo_matrix_transform_distance ( CairoMatrix $matrix , float $dx , float $dy )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix

dx

dy

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_matrix_transform_distance()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_matrix_transform_distance
  • cairo_matrix_translate »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_matrix_transform_point

(PECL cairo >= 0.1.0)

cairo_matrix_transform_point —

Description

array cairo_matrix_transform_point ( CairoMatrix $matrix , float $dx , float $dy )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix

dx

dy

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_matrix_transform_point()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_matrix_transform_point
  • cairo_pattern_add_color_stop_rgb »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_matrix_translate

(PECL cairo >= 0.1.0)

cairo_matrix_translate —

Description

void cairo_matrix_translate ( CairoMatrix $matrix , float $tx , float $ty )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix

tx

ty

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_matrix_translate()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_matrix_translate
  • cairo_pattern_add_color_stop_rgba »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_add_color_stop_rgb

(PECL cairo >= 0.1.0)

cairo_pattern_add_color_stop_rgb —

Description

void cairo_pattern_add_color_stop_rgb ( CairoGradientPattern $pattern , float $offset , float $red , float $green , float $blue )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

offset

red

green

blue

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_add_color_stop_rgb()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_add_color_stop_rgb
  • cairo_pattern_create_for_surface »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_add_color_stop_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_add_color_stop_rgba —

Description

void cairo_pattern_add_color_stop_rgba ( CairoGradientPattern $pattern , float $offset , float $red , float $green , float $blue , float $alpha )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

offset

red

green

blue

alpha

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_add_color_stop_rgba()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_add_color_stop_rgba
  • cairo_pattern_create_linear »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_create_for_surface

(PECL cairo >= 0.1.0)

cairo_pattern_create_for_surface —

Description

CairoPattern cairo_pattern_create_for_surface ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_create_for_surface()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_create_for_surface
  • cairo_pattern_create_radial »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_create_linear

(PECL cairo >= 0.1.0)

cairo_pattern_create_linear —

Description

CairoPattern cairo_pattern_create_linear ( float $x0 , float $y0 , float $x1 , float $y1 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x0

y0

x1

y1

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_create_linear()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_create_linear
  • cairo_pattern_create_rgb »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_create_radial

(PECL cairo >= 0.1.0)

cairo_pattern_create_radial —

Description

CairoPattern cairo_pattern_create_radial ( float $x0 , float $y0 , float $r0 , float $x1 , float $y1 , float $r1 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x0

y0

r0

x1

y1

r1

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_create_radial()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_create_radial
  • cairo_pattern_create_rgba »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_create_rgb

(PECL cairo >= 0.1.0)

cairo_pattern_create_rgb —

Description

CairoPattern cairo_pattern_create_rgb ( float $red , float $green , float $blue )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

red

green

blue

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_create_rgb()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_create_rgb
  • cairo_pattern_get_color_stop_count »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_create_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_create_rgba —

Description

CairoPattern cairo_pattern_create_rgba ( float $red , float $green , float $blue , float $alpha )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

red

green

blue

alpha

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_create_rgba()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_create_rgba
  • cairo_pattern_get_color_stop_rgba »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_get_color_stop_count

(PECL cairo >= 0.1.0)

cairo_pattern_get_color_stop_count —

Description

int cairo_pattern_get_color_stop_count ( CairoGradientPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_color_stop_count()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_get_color_stop_count
  • cairo_pattern_get_extend »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_get_color_stop_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_get_color_stop_rgba —

Description

array cairo_pattern_get_color_stop_rgba ( CairoGradientPattern $pattern , int $index )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

index

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_color_stop_rgba()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_get_color_stop_rgba
  • cairo_pattern_get_filter »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_get_extend

(PECL cairo >= 0.1.0)

cairo_pattern_get_extend —

Description

int cairo_pattern_get_extend ( string $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_extend()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_get_extend
  • cairo_pattern_get_linear_points »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_get_filter

(PECL cairo >= 0.1.0)

cairo_pattern_get_filter —

Description

int cairo_pattern_get_filter ( CairoSurfacePattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_filter()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_get_filter
  • cairo_pattern_get_matrix »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_get_linear_points

(PECL cairo >= 0.1.0)

cairo_pattern_get_linear_points —

Description

array cairo_pattern_get_linear_points ( CairoLinearGradient $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_linear_points()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_get_linear_points
  • cairo_pattern_get_radial_circles »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_get_matrix

(PECL cairo >= 0.1.0)

cairo_pattern_get_matrix —

Description

CairoMatrix cairo_pattern_get_matrix ( CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_matrix()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_get_matrix
  • cairo_pattern_get_rgba »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_get_radial_circles

(PECL cairo >= 0.1.0)

cairo_pattern_get_radial_circles —

Description

array cairo_pattern_get_radial_circles ( CairoRadialGradient $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_radial_circles()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_get_radial_circles
  • cairo_pattern_get_surface »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_get_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_get_rgba —

Description

array cairo_pattern_get_rgba ( CairoSolidPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_rgba()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_get_rgba
  • cairo_pattern_get_type »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_get_surface

(PECL cairo >= 0.1.0)

cairo_pattern_get_surface —

Description

CairoSurface cairo_pattern_get_surface ( CairoSurfacePattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_surface()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_get_surface
  • cairo_pattern_set_extend »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_get_type

(PECL cairo >= 0.1.0)

cairo_pattern_get_type —

Description

int cairo_pattern_get_type ( CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_get_type()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • related function name here()


Description

  • « cairo_pattern_get_type
  • cairo_pattern_set_filter »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_set_extend

(PECL cairo >= 0.1.0)

cairo_pattern_set_extend —

Description

void cairo_pattern_set_extend ( string $pattern , string $extend )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

extend

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_set_extend()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • related function name here()


Description

  • « cairo_pattern_set_extend
  • cairo_pattern_set_matrix »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_set_filter

(PECL cairo >= 0.1.0)

cairo_pattern_set_filter —

Description

void cairo_pattern_set_filter ( CairoSurfacePattern $pattern , int $filter )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

filter

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_set_filter()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • related function name here()


Description

  • « cairo_pattern_set_filter
  • cairo_pattern_status »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_set_matrix

(PECL cairo >= 0.1.0)

cairo_pattern_set_matrix —

Description

void cairo_pattern_set_matrix ( CairoPattern $pattern , CairoMatrix $matrix )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

matrix

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_set_matrix()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_set_matrix
  • cairo_pdf_surface_create »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pattern_status

(PECL cairo >= 0.1.0)

cairo_pattern_status —

Description

int cairo_pattern_status ( CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pattern

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pattern_status()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pattern_status
  • cairo_pdf_surface_set_size »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pdf_surface_create

(PECL cairo >= 0.1.0)

cairo_pdf_surface_create —

Description

CairoPdfSurface cairo_pdf_surface_create ( string $file , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pdf_surface_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pdf_surface_create
  • cairo_ps_get_levels »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_pdf_surface_set_size

(PECL cairo >= 0.1.0)

cairo_pdf_surface_set_size —

Description

void cairo_pdf_surface_set_size ( CairoPdfSurface $surface , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_pdf_surface_set_size()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_pdf_surface_set_size
  • cairo_ps_level_to_string »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_ps_get_levels

(PECL cairo >= 0.1.0)

cairo_ps_get_levels —

Description

array cairo_ps_get_levels ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_get_levels()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_ps_get_levels
  • cairo_ps_surface_create »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_ps_level_to_string

(PECL cairo >= 0.1.0)

cairo_ps_level_to_string —

Description

string cairo_ps_level_to_string ( int $level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

level

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_level_to_string()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_ps_level_to_string
  • cairo_ps_surface_dsc_begin_page_setup »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_ps_surface_create

(PECL cairo >= 0.1.0)

cairo_ps_surface_create —

Description

CairoPsSurface cairo_ps_surface_create ( string $file , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_ps_surface_create
  • cairo_ps_surface_dsc_begin_setup »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_ps_surface_dsc_begin_page_setup

(PECL cairo >= 0.1.0)

cairo_ps_surface_dsc_begin_page_setup —

Description

void cairo_ps_surface_dsc_begin_page_setup ( CairoPsSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_dsc_begin_page_setup()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_ps_surface_dsc_begin_page_setup
  • cairo_ps_surface_dsc_comment »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_ps_surface_dsc_begin_setup

(PECL cairo >= 0.1.0)

cairo_ps_surface_dsc_begin_setup —

Description

void cairo_ps_surface_dsc_begin_setup ( CairoPsSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_dsc_begin_setup()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_ps_surface_dsc_begin_setup
  • cairo_ps_surface_get_eps »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_ps_surface_dsc_comment

(PECL cairo >= 0.1.0)

cairo_ps_surface_dsc_comment —

Description

void cairo_ps_surface_dsc_comment ( CairoPsSurface $surface , string $comment )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

comment

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_dsc_comment()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_ps_surface_dsc_comment
  • cairo_ps_surface_restrict_to_level »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_ps_surface_get_eps

(PECL cairo >= 0.1.0)

cairo_ps_surface_get_eps —

Description

bool cairo_ps_surface_get_eps ( CairoPsSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_get_eps()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_ps_surface_get_eps
  • cairo_ps_surface_set_eps »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_ps_surface_restrict_to_level

(PECL cairo >= 0.1.0)

cairo_ps_surface_restrict_to_level —

Description

void cairo_ps_surface_restrict_to_level ( CairoPsSurface $surface , int $level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

level

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_restrict_to_level()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_ps_surface_restrict_to_level
  • cairo_ps_surface_set_size »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_ps_surface_set_eps

(PECL cairo >= 0.1.0)

cairo_ps_surface_set_eps —

Description

void cairo_ps_surface_set_eps ( CairoPsSurface $surface , bool $level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

level

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_set_eps()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_ps_surface_set_eps
  • cairo_scaled_font_create »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_ps_surface_set_size

(PECL cairo >= 0.1.0)

cairo_ps_surface_set_size —

Description

void cairo_ps_surface_set_size ( CairoPsSurface $surface , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_ps_surface_set_size()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_ps_surface_set_size
  • cairo_scaled_font_extents »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_scaled_font_create

(PECL cairo >= 0.1.0)

cairo_scaled_font_create —

Description

CairoScaledFont cairo_scaled_font_create ( CairoFontFace $fontface , CairoMatrix $matrix , CairoMatrix $ctm , CairoFontOptions $fontoptions )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

fontface

matrix

ctm

fontoptions

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_scaled_font_create
  • cairo_scaled_font_get_ctm »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_scaled_font_extents

(PECL cairo >= 0.1.0)

cairo_scaled_font_extents —

Description

array cairo_scaled_font_extents ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_extents()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_scaled_font_extents
  • cairo_scaled_font_get_font_face »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_scaled_font_get_ctm

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_ctm —

Description

CairoMatrix cairo_scaled_font_get_ctm ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_get_ctm()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_scaled_font_get_ctm
  • cairo_scaled_font_get_font_matrix »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_scaled_font_get_font_face

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_font_face —

Description

CairoFontFace cairo_scaled_font_get_font_face ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_get_font_face()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_scaled_font_get_font_face
  • cairo_scaled_font_get_font_options »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_scaled_font_get_font_matrix

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_font_matrix —

Description

CairoFontOptions cairo_scaled_font_get_font_matrix ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_get_font_matrix()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_scaled_font_get_font_matrix
  • cairo_scaled_font_get_scale_matrix »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_scaled_font_get_font_options

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_font_options —

Description

CairoFontOptions cairo_scaled_font_get_font_options ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_get_font_options()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_scaled_font_get_font_options
  • cairo_scaled_font_get_type »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_scaled_font_get_scale_matrix

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_scale_matrix —

Description

CairoMatrix cairo_scaled_font_get_scale_matrix ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_get_scale_matrix()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_scaled_font_get_scale_matrix
  • cairo_scaled_font_glyph_extents »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_scaled_font_get_type

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_type —

Description

int cairo_scaled_font_get_type ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_get_type()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_scaled_font_get_type
  • cairo_scaled_font_status »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_scaled_font_glyph_extents

(PECL cairo >= 0.1.0)

cairo_scaled_font_glyph_extents —

Description

array cairo_scaled_font_glyph_extents ( CairoScaledFont $scaledfont , array $glyphs )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

glyphs

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_glyph_extents()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_scaled_font_glyph_extents
  • cairo_scaled_font_text_extents »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_scaled_font_status

(PECL cairo >= 0.1.0)

cairo_scaled_font_status —

Description

int cairo_scaled_font_status ( CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_status()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_scaled_font_status
  • cairo_surface_copy_page »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_scaled_font_text_extents

(PECL cairo >= 0.1.0)

cairo_scaled_font_text_extents —

Description

array cairo_scaled_font_text_extents ( CairoScaledFont $scaledfont , string $text )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

scaledfont

text

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_scaled_font_text_extents()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_scaled_font_text_extents
  • cairo_surface_create_similar »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_copy_page

(PECL cairo >= 0.1.0)

cairo_surface_copy_page —

Description

void cairo_surface_copy_page ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_copy_page()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_copy_page
  • cairo_surface_finish »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_create_similar

(PECL cairo >= 0.1.0)

cairo_surface_create_similar —

Description

CairoSurface cairo_surface_create_similar ( CairoSurface $surface , int $content , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

content

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_create_similar()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_create_similar
  • cairo_surface_flush »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_finish

(PECL cairo >= 0.1.0)

cairo_surface_finish —

Description

void cairo_surface_finish ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_finish()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_finish
  • cairo_surface_get_content »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_flush

(PECL cairo >= 0.1.0)

cairo_surface_flush —

Description

void cairo_surface_flush ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_flush()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_flush
  • cairo_surface_get_device_offset »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_get_content

(PECL cairo >= 0.1.0)

cairo_surface_get_content —

Description

int cairo_surface_get_content ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_get_content()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_get_content
  • cairo_surface_get_font_options »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_get_device_offset

(PECL cairo >= 0.1.0)

cairo_surface_get_device_offset —

Description

array cairo_surface_get_device_offset ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_get_device_offset()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_get_device_offset
  • cairo_surface_get_type »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_get_font_options

(PECL cairo >= 0.1.0)

cairo_surface_get_font_options —

Description

CairoFontOptions cairo_surface_get_font_options ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_get_font_options()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_get_font_options
  • cairo_surface_mark_dirty_rectangle »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_get_type

(PECL cairo >= 0.1.0)

cairo_surface_get_type —

Description

int cairo_surface_get_type ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_get_type()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_get_type
  • cairo_surface_mark_dirty »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_mark_dirty_rectangle

(PECL cairo >= 0.1.0)

cairo_surface_mark_dirty_rectangle —

Description

void cairo_surface_mark_dirty_rectangle ( CairoSurface $surface , float $x , float $y , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

x

y

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_mark_dirty_rectangle()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_mark_dirty_rectangle
  • cairo_surface_set_device_offset »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_mark_dirty

(PECL cairo >= 0.1.0)

cairo_surface_mark_dirty —

Description

void cairo_surface_mark_dirty ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_mark_dirty()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_mark_dirty
  • cairo_surface_set_fallback_resolution »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_set_device_offset

(PECL cairo >= 0.1.0)

cairo_surface_set_device_offset —

Description

void cairo_surface_set_device_offset ( CairoSurface $surface , float $x , float $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

x

y

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_set_device_offset()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_set_device_offset
  • cairo_surface_show_page »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_set_fallback_resolution

(PECL cairo >= 0.1.0)

cairo_surface_set_fallback_resolution —

Description

void cairo_surface_set_fallback_resolution ( CairoSurface $surface , float $x , float $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

x

y

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_set_fallback_resolution()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_set_fallback_resolution
  • cairo_surface_status »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_show_page

(PECL cairo >= 0.1.0)

cairo_surface_show_page —

Description

void cairo_surface_show_page ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_show_page()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_show_page
  • cairo_surface_write_to_png »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_status

(PECL cairo >= 0.1.0)

cairo_surface_status —

Description

int cairo_surface_status ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_status()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_status
  • cairo_svg_surface_create »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_surface_write_to_png

(PECL cairo >= 0.1.0)

cairo_surface_write_to_png —

Description

void cairo_surface_write_to_png ( CairoSurface $surface , resource $stream )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

stream

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_surface_write_to_png()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_surface_write_to_png
  • cairo_svg_surface_restrict_to_version »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_svg_surface_create

(PECL cairo >= 0.1.0)

cairo_svg_surface_create —

Description

CairoSvgSurface cairo_svg_surface_create ( string $file , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

width

height

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_svg_surface_create()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_svg_surface_create
  • cairo_svg_version_to_string »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_svg_surface_restrict_to_version

(PECL cairo >= 0.1.0)

cairo_svg_surface_restrict_to_version —

Description

void cairo_svg_surface_restrict_to_version ( CairoSvgSurface $surface , int $version )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

version

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_svg_surface_restrict_to_version()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Description

  • « cairo_svg_surface_restrict_to_version
  • Cairo »
  • PHP Manual
  • Fonctions Cairo
  • Description

cairo_svg_version_to_string

(PECL cairo >= 0.1.0)

cairo_svg_version_to_string —

Description

string cairo_svg_version_to_string ( int $version )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

version

Valeurs de retour

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec cairo_svg_version_to_string()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe Cairo

(PECL cairo >= 0.1.0)

Introduction

Classe simple avec quelques méthodes statiques d'aide.

Synopsis de la classe

Cairo {
/* Méthodes */
public static array availableFonts ( void )
public static array availableSurfaces ( void )
public static string statusToString ( int $status )
public static int version ( void )
public static string versionString ( void )
}

Sommaire

  • Cairo::availableFonts — Récupère tous les types de police disponibles
  • Cairo::availableSurfaces — Récupère toutes les surfaces disponibles
  • Cairo::statusToString — Récupère le statut courant, sous la forme d'une chaîne de caractères
  • Cairo::version — Récupère la version de la bibliothèque Cairo
  • Cairo::versionString — Récupère la version Cairo sous la forme d'une chaîne de caractères


Récupère tous les types de police disponibles

  • « Cairo
  • Cairo::availableSurfaces »
  • PHP Manual
  • Cairo
  • Récupère tous les types de police disponibles

Cairo::availableFonts

cairo_available_fonts

(PECL cairo >= 0.1.0)

Cairo::availableFonts -- cairo_available_fonts — Récupère tous les types de police disponibles

Description

Style orienté objet :

public static array Cairo::availableFonts ( void )

Style procédural :

array cairo_available_fonts ( void )

Récupère tous les types de police disponibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant tous les types de police disponibles.

Exemples

Exemple #1 Style orienté objet

<?php

var_dump(Cairo::availableFonts());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  string(5) "WIN32"
  [1]=>
  string(4) "USER"
}

Exemple #2 Style procédural

<?php

var_dump(cairo_available_fonts());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  string(5) "WIN32"
  [1]=>
  string(4) "USER"
}

Voir aussi

  • Cairo::availableSurfaces() - Récupère toutes les surfaces disponibles


Récupère toutes les surfaces disponibles

  • « Cairo::availableFonts
  • Cairo::statusToString »
  • PHP Manual
  • Cairo
  • Récupère toutes les surfaces disponibles

Cairo::availableSurfaces

cairo_available_surfaces

(PECL cairo >= 0.1.0)

Cairo::availableSurfaces -- cairo_available_surfaces — Récupère toutes les surfaces disponibles

Description

Style orienté objet (méthode) :

public static array Cairo::availableSurfaces ( void )

Style procédural :

array cairo_available_surfaces ( void )

Retourne un tableau contenant toutes les surfaces disponibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant la liste de toutes les surfaces disponibles.

Exemples

Exemple #1 Style orienté objet

<?php

var_dump(Cairo::availableSurfaces());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(6) {
  [0]=>
  string(5) "IMAGE"
  [1]=>
  string(3) "PNG"
  [2]=>
  string(3) "PDF"
  [3]=>
  string(2) "PS"
  [4]=>
  string(3) "SVG"
  [5]=>
  string(5) "WIN32"
}

Exemple #2 Style procédural

<?php

var_dump(cairo_available_surfaces());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(6) {
  [0]=>
  string(5) "IMAGE"
  [1]=>
  string(3) "PNG"
  [2]=>
  string(3) "PDF"
  [3]=>
  string(2) "PS"
  [4]=>
  string(3) "SVG"
  [5]=>
  string(5) "WIN32"
}

Voir aussi

  • Cairo::availableFonts() - Récupère tous les types de police disponibles


Récupère le statut courant, sous la forme d'une chaîne de caractères

  • « Cairo::availableSurfaces
  • Cairo::version »
  • PHP Manual
  • Cairo
  • Récupère le statut courant, sous la forme d'une chaîne de caractères

Cairo::statusToString

cairo_status_to_string

(PECL cairo >= 0.1.0)

Cairo::statusToString -- cairo_status_to_string — Récupère le statut courant, sous la forme d'une chaîne de caractères

Description

Style orienté objet (method):

public static string Cairo::statusToString ( int $status )

Style procédural :

string cairo_status_to_string ( int $status )

Récupère le statut courant, sous la forme d'une chaîne de caractères.

Liste de paramètres

status

Un code statut valide, fourni par la fonction cairo_status() ou la méthode CairoContext::status().

Valeurs de retour

Une chaîne de caractères contenant le statut courant de l'objet CairoContext.

Exemples

Exemple #1 Style orienté objet

<?php
$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);
$context = new CairoContext($surface);

var_dump(Cairo::statusToString($context->status()));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(7) "success"

Exemple #2 Style procédural

<?php
$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);
$context = cairo_create($surface);

var_dump(cairo_status_to_string(cairo_status($context)));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(7) "success"

Voir aussi

  • CairoContext::status() - Le but de status


Récupère la version de la bibliothèque Cairo

  • « Cairo::statusToString
  • Cairo::versionString »
  • PHP Manual
  • Cairo
  • Récupère la version de la bibliothèque Cairo

Cairo::version

cairo_version

(PECL cairo >= 0.1.0)

Cairo::version -- cairo_version — Récupère la version de la bibliothèque Cairo

Description

Style orienté objet (méthode) :

public static int Cairo::version ( void )

Style procédural :

int cairo_version ( void )

Récupère la version courante de la bibliothèque Cairo, sous la forme d'une valeur entière.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une entier décrivant la version de la bibliothèque Cairo courante.

Exemples

Exemple #1 Style orienté objet

<?php
var_dump(Cairo::version());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(10808)

Exemple #2 Style procédural

<?php
var_dump(cairo_version());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(10808)

Voir aussi

  • Cairo::versionString() - Récupère la version Cairo sous la forme d'une chaîne de caractères


Récupère la version Cairo sous la forme d'une chaîne de caractères

  • « Cairo::version
  • CairoContext »
  • PHP Manual
  • Cairo
  • Récupère la version Cairo sous la forme d'une chaîne de caractères

Cairo::versionString

cairo_version_string

(PECL cairo >= 0.1.0)

Cairo::versionString -- cairo_version_string — Récupère la version Cairo sous la forme d'une chaîne de caractères

Description

Style orienté objet (méthode) :

public static string Cairo::versionString ( void )

Style procédural :

string cairo_version_string ( void )

Récupère la version de la bibliothèque cairo courant, sous la forme d'une chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères décrivant la version de la bibliothèque Cairo courante.

Exemples

Exemple #1 Style orienté objet

<?php

var_dump(Cairo::versionString());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "1.8.8"

Exemple #2 Style procédural

<?php

var_dump(cairo_version_string());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "1.8.8"

Voir aussi

  • Cairo::version() - Récupère la version de la bibliothèque Cairo


La classe CairoContext

(PECL cairo >= 0.1.0)

Introduction

Le contexte est l'objet principal utilisé lors d'un dessin avec Cairo. Pour dessiner avec Cairo, vous devez créer un objet CairoContext, définir la cible CairoSurface, ainsi que les options de dessin pour l'objet CairoContext, créer la forme avec les fonctions comme like CairoContext::moveTo() et CairoContext::lineTo(), et enfin, dessiner les formes avec la méthode CairoContext::stroke() ou la méthode CairoContext::fill(). Les contextes peuvent être mis dans une pile via la méthode CairoContext::save(). Ils peuvent ensuite être modifiés sans perdre l'état courant. Utilisez la méthode CairoContext::restore() pour retrouver l'état sauvegardé.

Synopsis de la classe

CairoContext {
/* Méthodes */
public void appendPath ( CairoPath $path )
public void arc ( float $x , float $y , float $radius , float $angle1 , float $angle2 )
public void arcNegative ( float $x , float $y , float $radius , float $angle1 , float $angle2 )
public void clip ( void )
public array clipExtents ( void )
public void clipPreserve ( void )
public array clipRectangleList ( void )
public void closePath ( void )
public __construct ( CairoSurface $surface )
public void copyPage ( void )
public CairoPath copyPath ( void )
public CairoPath copyPathFlat ( void )
public void curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )
public array deviceToUser ( float $x , float $y )
public array deviceToUserDistance ( float $x , float $y )
public void fill ( void )
public array fillExtents ( void )
public void fillPreserve ( void )
public array fontExtents ( void )
public int getAntialias ( void )
public array getCurrentPoint ( void )
public array getDash ( void )
public int getDashCount ( void )
public int getFillRule ( void )
public void getFontFace ( void )
public void getFontMatrix ( void )
public void getFontOptions ( void )
public void getGroupTarget ( void )
public int getLineCap ( void )
public int getLineJoin ( void )
public float getLineWidth ( void )
public void getMatrix ( void )
public float getMiterLimit ( void )
public int getOperator ( void )
public void getScaledFont ( void )
public void getSource ( void )
public void getTarget ( void )
public float getTolerance ( void )
public void glyphPath ( array $glyphs )
public bool hasCurrentPoint ( void )
public void identityMatrix ( void )
public bool inFill ( string $x , string $y )
public bool inStroke ( string $x , string $y )
public void lineTo ( string $x , string $y )
public void mask ( string $pattern )
public void maskSurface ( string $surface [, string $x [, string $y ]] )
public void moveTo ( string $x , string $y )
public void newPath ( void )
public void newSubPath ( void )
public void paint ( void )
public void paintWithAlpha ( string $alpha )
public array pathExtents ( void )
public void popGroup ( void )
public void popGroupToSource ( void )
public void pushGroup ( void )
public void pushGroupWithContent ( string $content )
public void rectangle ( string $x , string $y , string $width , string $height )
public void relCurveTo ( string $x1 , string $y1 , string $x2 , string $y2 , string $x3 , string $y3 )
public void relLineTo ( string $x , string $y )
public void relMoveTo ( string $x , string $y )
public void resetClip ( void )
public void restore ( void )
public void rotate ( string $angle )
public void save ( void )
public void scale ( string $x , string $y )
public void selectFontFace ( string $family [, string $slant [, string $weight ]] )
public void setAntialias ([ string $antialias ] )
public void setDash ( string $dashes [, string $offset ] )
public void setFillRule ( string $setting )
public void setFontFace ( CairoFontFace $fontface )
public void setFontMatrix ( string $matrix )
public void setFontOptions ( string $fontoptions )
public void setFontSize ( string $size )
public void setLineCap ( string $setting )
public void setLineJoin ( string $setting )
public void setLineWidth ( string $width )
public void setMatrix ( string $matrix )
public void setMiterLimit ( string $limit )
public void setOperator ( string $setting )
public void setScaledFont ( string $scaledfont )
public void setSource ( string $pattern )
public void setSourceRGB ( string $red , string $green , string $blue )
public void setSourceRGBA ( string $red , string $green , string $blue , string $alpha )
public void setSourceSurface ( string $surface [, string $x [, string $y ]] )
public void setTolerance ( string $tolerance )
public void showPage ( void )
public void showText ( string $text )
public int status ( void )
public void stroke ( void )
public array strokeExtents ( void )
public void strokePreserve ( void )
public array textExtents ( string $text )
public void textPath ( string $string )
public void transform ( string $matrix )
public void translate ( string $x , string $y )
public array userToDevice ( string $x , string $y )
public array userToDeviceDistance ( string $x , string $y )
}

Sommaire

  • CairoContext::appendPath — Ajoute un chemin à la liste courante des chemins
  • CairoContext::arc — Ajoute un arc circulaire
  • CairoContext::arcNegative — Ajoute un arc négatif
  • CairoContext::clip — Établit une nouvelle région
  • CairoContext::clipExtents — Calcule l'espace à l'intérieur d'une région
  • CairoContext::clipPreserve — Établit une nouvelle région depuis la région courante
  • CairoContext::clipRectangleList — Récupère la région courante sous la forme d'une liste de rectangles
  • CairoContext::closePath — Ferme le chemin courant
  • CairoContext::__construct — Crée un nouvel objet CairoContext
  • CairoContext::copyPage — Émets la page courante
  • CairoContext::copyPath — Crée une copie du chemin courant
  • CairoContext::copyPathFlat — Récupère une copie à plat du chemin courant
  • CairoContext::curveTo — Ajoute une courbe
  • CairoContext::deviceToUser — Transforme une coordonnée
  • CairoContext::deviceToUserDistance — Transforme une distance
  • CairoContext::fill — Remplit le chemin courant
  • CairoContext::fillExtents — Calcule la zone remplie
  • CairoContext::fillPreserve — Remplit et préserve le chemin courant
  • CairoContext::fontExtents — Récupère la police étendue
  • CairoContext::getAntialias — Récupère le mode antialias courant
  • CairoContext::getCurrentPoint — Le but de getCurrentPoint
  • CairoContext::getDash — Le but de getDash
  • CairoContext::getDashCount — Le but de getDashCount
  • CairoContext::getFillRule — Le but de getFillRule
  • CairoContext::getFontFace — Le but de getFontFace
  • CairoContext::getFontMatrix — Le but de getFontMatrix
  • CairoContext::getFontOptions — Le but de getFontOptions
  • CairoContext::getGroupTarget — Le but de getGroupTarget
  • CairoContext::getLineCap — Le but de getLineCap
  • CairoContext::getLineJoin — Le but de getLineJoin
  • CairoContext::getLineWidth — Le but de getLineWidth
  • CairoContext::getMatrix — Le but de getMatrix
  • CairoContext::getMiterLimit — Le but de getMiterLimit
  • CairoContext::getOperator — Le but de getOperator
  • CairoContext::getScaledFont — Le but de getScaledFont
  • CairoContext::getSource — Le but de getSource
  • CairoContext::getTarget — Le but de getTarget
  • CairoContext::getTolerance — Le but de getTolerance
  • CairoContext::glyphPath — Le but de glyphPath
  • CairoContext::hasCurrentPoint — Le but de hasCurrentPoint
  • CairoContext::identityMatrix — Le but de identityMatrix
  • CairoContext::inFill — Le but de inFill
  • CairoContext::inStroke — Le but de inStroke
  • CairoContext::lineTo — Le but de lineTo
  • CairoContext::mask — Le but de mask
  • CairoContext::maskSurface — Le but de maskSurface
  • CairoContext::moveTo — Le but de moveTo
  • CairoContext::newPath — Le but de newPath
  • CairoContext::newSubPath — Le but de newSubPath
  • CairoContext::paint — Le but de paint
  • CairoContext::paintWithAlpha — Le but de paintWithAlpha
  • CairoContext::pathExtents — Le but de pathExtents
  • CairoContext::popGroup — Le but de popGroup purpose
  • CairoContext::popGroupToSource — Le but de popGroupToSource
  • CairoContext::pushGroup — Le but de pushGroup
  • CairoContext::pushGroupWithContent — Le but de pushGroupWithContent
  • CairoContext::rectangle — Le but de rectangle
  • CairoContext::relCurveTo — Le but de relCurveTo
  • CairoContext::relLineTo — Le but de relLineTo
  • CairoContext::relMoveTo — Le but de relMoveTo
  • CairoContext::resetClip — Le but de resetClip
  • CairoContext::restore — Le but de restore
  • CairoContext::rotate — Le but de rotate
  • CairoContext::save — Le but de save
  • CairoContext::scale — Le but de scale
  • CairoContext::selectFontFace — Le but de selectFontFace
  • CairoContext::setAntialias — Le but de setAntialias
  • CairoContext::setDash — Le but de setDash
  • CairoContext::setFillRule — Le but de setFillRule
  • CairoContext::setFontFace — Le but de setFontFace
  • CairoContext::setFontMatrix — Le but de setFontMatrix
  • CairoContext::setFontOptions — Le but de setFontOptions
  • CairoContext::setFontSize — Le but de setFontSize
  • CairoContext::setLineCap — Le but de setLineCap
  • CairoContext::setLineJoin — Le but de setLineJoin
  • CairoContext::setLineWidth — Le but de setLineWidth
  • CairoContext::setMatrix — Le but de setMatrix
  • CairoContext::setMiterLimit — Le but de setMiterLimit
  • CairoContext::setOperator — Le but de setOperator
  • CairoContext::setScaledFont — Le but de setScaledFont
  • CairoContext::setSource — Le but de setSource
  • CairoContext::setSourceRGB — Le but de setSourceRGB
  • CairoContext::setSourceRGBA — Le but de setSourceRGBA
  • CairoContext::setSourceSurface — Le but de setSourceSurface
  • CairoContext::setTolerance — Le but de setTolerance
  • CairoContext::showPage — Le but de showPage
  • CairoContext::showText — Le but de showText
  • CairoContext::status — Le but de status
  • CairoContext::stroke — Le but de stroke
  • CairoContext::strokeExtents — Le but de strokeExtents
  • CairoContext::strokePreserve — Le but de strokePreserve
  • CairoContext::textExtents — Le but de textExtents
  • CairoContext::textPath — Le but de textPath
  • CairoContext::transform — Le but de transform
  • CairoContext::translate — Le but de translate
  • CairoContext::userToDevice — Le but de userToDevice
  • CairoContext::userToDeviceDistance — Le but de userToDeviceDistance


Ajoute un chemin à la liste courante des chemins

  • « CairoContext
  • CairoContext::arc »
  • PHP Manual
  • CairoContext
  • Ajoute un chemin à la liste courante des chemins

CairoContext::appendPath

cairo_append_path

(PECL cairo >= 0.1.0)

CairoContext::appendPath -- cairo_append_path — Ajoute un chemin à la liste courante des chemins

Description

Style orienté objet (méthode) :

public void CairoContext::appendPath ( CairoPath $path )

Style procédural :

void cairo_append_path ( CairoContext $context , CairoPath $path )

Ajoute un chemin path dans la liste courante des chemins. Le nouveau path peut être une valeur retournée soit par la méthode CairoContext::copyPath(), soit par la méthode CairoContext::copyPathFlat().

Si path n'est pas une instance CairoPath valide, une exception CairoException sera émise.

Liste de paramètres

context

Un objet CairoContext.

path

Un objet CairoPath.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$path = $context->copyPath();

$context->appendPath($path);

?>

Exemple #2 Style procédural

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

$path = cairo_copy_path($context);

cairo_append_path($context, $path);

?>

Voir aussi

  • CairoPath
  • CairoContext::copyPath() - Crée une copie du chemin courant
  • CairoContext::copyPathFlat() - Récupère une copie à plat du chemin courant


Ajoute un arc circulaire

  • « CairoContext::appendPath
  • CairoContext::arcNegative »
  • PHP Manual
  • CairoContext
  • Ajoute un arc circulaire

CairoContext::arc

cairo_arc

(PECL cairo >= 0.1.0)

CairoContext::arc -- cairo_arc — Ajoute un arc circulaire

Description

Style orienté objet (méthode) :

public void CairoContext::arc ( float $x , float $y , float $radius , float $angle1 , float $angle2 )

Style procédural :

void cairo_arc ( CairoContext $context , float $x , float $y , float $radius , float $angle1 , float $angle2 )

Ajoute un arc circulaire d'un rayon donné au chemin courant. L'arc est centré aux coordonnées x, y, commence à l'angle angle1 et se forme en augmentant son angle jusqu'à l'angle angle2. Si l'angle angle2 est plus petit que l'angle angle1, il sera augmenter progressivement de 2*M_PI tant qu'il sera plus petit que l'angle angle1. S'il y a un point courant, un segment de ligne initial sera ajouté au chemin pour connecter le point courant et le début de l'arc. Si cette ligne initiale n'est pas désirée, elle peut être évitée en appelant la méthode CairoContext::newSubPath() ou la fonction procédurale cairo_new_sub_path() avant d'appeler CairoContext::arc() ou cairo_arc(). Les angles sont mesurés en radians. Un angle de 0.0 est dans la direction de l'axe X positif (dans l'espace utilisateur). Un angle de M_PI/2.0 radians (90 degrés) est dans la direction de l'axe Y positif (dans l'espace utilisateur). L'angle augment depuis l'axe X positif jusqu'à l'axe Y positif. Aussi, avec la matrice de transformation par défaut, les angles augmentent dans le sens des aiguilles d'une montre. ( Pour convertir les degrés en radians, utilisez la formule : degrés * (M_PI / 180.).) Cette fonction fournit un arc dans la direction des angles croissants ; voir la méthode CairoContext::arcNegative() ou la fonction cairo_arc_negative() pour récupérer l'angle dans la direction des angles croissants.

Liste de paramètres

context

Un objet CairoContext valide.

x

Position en X

y

Position en Y

radius

Rayon de l'arc

angle1

Angle de départ

angle2

Angle de fin

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);
$c->paint();

$c->setLineWidth(1);
$c->setSourceRgb(1, 1, 1);

for ($r = 50; $r > 0; $r -= 10) {
 $c->arc(50, 50, $r, 0, 2 * M_PI);
 $c->stroke();
 $c->fill();
}

$s->writeToPng(dirname(__FILE__) . '/CairoContext__arc.png');
?>

Exemple #2 Style procédural

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);

cairo_set_source_rgb($c, 1, 1, 1);
cairo_set_line_width($c, 1);

for ($r = 50; $r > 0; $r -= 10) {
 cairo_arc($c, 50, 50, $r, 0, 2 * M_PI);
 cairo_stroke($c);
 cairo_fill($c);
}

cairo_surface_write_to_png($s, dirname(__FILE__) . '/cairo_arc.png');
?>

Voir aussi

  • CairoContext::arcNegative() - Ajoute un arc négatif


Ajoute un arc négatif

  • « CairoContext::arc
  • CairoContext::clip »
  • PHP Manual
  • CairoContext
  • Ajoute un arc négatif

CairoContext::arcNegative

cairo_arc_negative

(PECL cairo >= 0.1.0)

CairoContext::arcNegative -- cairo_arc_negative — Ajoute un arc négatif

Description

Style orienté objet (méthode) :

public void CairoContext::arcNegative ( float $x , float $y , float $radius , float $angle1 , float $angle2 )

Style procédural :

void cairo_arc_negative ( CairoContext $context , float $x , float $y , float $radius , float $angle1 , float $angle2 )

Ajoute un arc circulaire d'un rayon radius donné au chemin courant. L'arc est centré aux coordonnées x, y, commence à l'angle angle1 et se forme en direction des angles décroissants jusqu'à la fin de l'angle angle2. Si angle2 est plus grand que angle1, il sera progressivement abaissé en utilisant la formule 2*M_PI tant qu'il sera plus grand que angle1. Voir CairoContext::arc() ou cairo_arc() pour plus de détails. Cette fonction diffère uniquement dans la direction de l'arc entre les 2 angles.

Liste de paramètres

context

Un objet CairoContext valide

x

Position double en X

y

Position double en Y

radius

Le rayon de l'arc négatif désiré

angle1

L'angle de départ de l'arc

angle2

L'angle de fin de l'arc

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);
$c->paint();

$c->setLineWidth(1);
$c->setSourceRgb(1, 1, 1);

for ($r = 50; $r > 0; $r -= 10) {
 $c->arcNegative(50, 50, $r, 2 * M_PI, 0);
 $c->stroke();
 $c->fill();
}

$s->writeToPng(dirname(__FILE__) . '/CairoContext__arcNegative.png');
?>

Exemple #2 Style procédural

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);

cairo_set_source_rgb($c, 1, 1, 1);
cairo_set_line_width($c, 1);

for ($r = 50; $r > 0; $r -= 10) {
 cairo_arc_negative($c, 50, 50, $r, 2 * M_PI, 0);
 cairo_stroke($c);
 cairo_fill($c);
}

cairo_surface_write_to_png($s, dirname(__FILE__) . '/cairo_arc_negative.png');
?>

Voir aussi

  • CairoContext::arc() - Ajoute un arc circulaire


Établit une nouvelle région

  • « CairoContext::arcNegative
  • CairoContext::clipExtents »
  • PHP Manual
  • CairoContext
  • Établit une nouvelle région

CairoContext::clip

cairo_clip

(PECL cairo >= 0.1.0)

CairoContext::clip -- cairo_clip — Établit une nouvelle région

Description

Style orienté objet (méthode) :

public void CairoContext::clip ( void )

Style procédural :

void cairo_clip ( CairoContext $context )

Établit une nouvelle région par l'intersection de la région courante avec le chemin courant, nouvelle région remplit par la méthode CairoContext::fill() ou la fonction cairo_fill() et suivant la règle de remplissage courant (voir la méthode CairoContext::setFillRule() ou la fonction cairo_set_fill_rule()).

Après un appel à la méthode CairoContext::clip() ou la fonction cairo_clip(), le chemin courant sera effacé du contexte Cairo.

La région courante affecte toutes les opérations de dessin en masquant toutes les modifications de la surface qui se trouve à l'extérieur de la région courante.

L'appel à la méthode CairoContext::clip() ou la fonction cairo_clip() peut rendre uniquement la région plus petite, jamais plus grande. Mais la région courante fait partie du statut du graphique, aussi, une restriction temporaire de la région peut être effectuée en appelant la méthode CairoContext::clip() ou la fonction cairo_clip() dans la paire CairoContext::save()/CairoContext::restore() ou cairo_save()/cairo_restore(). Vous pouvez également accroître la taille d'une région avec la méthode CairoContext::resetClip() ou la fonction cairo_reset_clip().

Liste de paramètres

context

Un objet CairoContext valide.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$context->clip();

?>

Exemple #2 Style procédural

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

cairo_clip($context);

?>

Voir aussi

  • CairoContext::resetClip() - Le but de resetClip
  • cairo_reset_clip() - Le but de resetClip


Calcule l'espace à l'intérieur d'une région

  • « CairoContext::clip
  • CairoContext::clipPreserve »
  • PHP Manual
  • CairoContext
  • Calcule l'espace à l'intérieur d'une région

CairoContext::clipExtents

cairo_clip_extents

(PECL cairo >= 0.1.0)

CairoContext::clipExtents -- cairo_clip_extents — Calcule l'espace à l'intérieur d'une région

Description

Style orienté objet (méthode) :

public array CairoContext::clipExtents ( void )

Style procédural :

array cairo_clip_extents ( CairoContext $context )

Calcule un cadre de sélection en coordonnées utilisateur couvrant la zone à l'intérieur de la région courante.

Liste de paramètres

context

Un objet CairoContext valide.

Valeurs de retour

Un tableau contenant les coordonnées (float)x1, (float)y1, (float)x2, (float)y2 couvrant l'espace dans la région courante.

Exemples

Exemple #1 Style orienté objet

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

var_dump($context->clipExtents());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  [0]=>
  float(0)
  [1]=>
  float(0)
  [2]=>
  float(50)
  [3]=>
  float(50)
}

Exemple #2 Style procédural

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

var_dump(cairo_clip_extents($context));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  [0]=>
  float(0)
  [1]=>
  float(0)
  [2]=>
  float(50)
  [3]=>
  float(50)
}

Voir aussi

  • CairoContext::clip() - Établit une nouvelle région


Établit une nouvelle région depuis la région courante

  • « CairoContext::clipExtents
  • CairoContext::clipRectangleList »
  • PHP Manual
  • CairoContext
  • Établit une nouvelle région depuis la région courante

CairoContext::clipPreserve

cairo_clip_preserve

(PECL cairo >= 0.1.0)

CairoContext::clipPreserve -- cairo_clip_preserve — Établit une nouvelle région depuis la région courante

Description

Style orienté objet (méthode) :

public void CairoContext::clipPreserve ( void )

Style procédural :

void cairo_clip_preserve ( CairoContext $context )

Établit une nouvelle région par l'intersection de la région courante avec le chemin courant, qui sera remplie par Context.fill() et suivant la règle de remplissage courant (voir la méthode CairoContext::setFillRule() ou la fonction cairo_set_fill_rule()).

Contrairement à la méthode CairoContext::clip(), CairoContext::clipPreserve() préserve le chemin dans le contexte. La région courant affecte toutes les opérations de dessin en masquant toutes les modifications de la surface qui se trouve à l'extérieur de la région courante.

L'appel à la méthode CairoContext::clipPreserve() ne peut rendre que plus petite la région, jamais plus grande. Mais la région courant fait partie du statut du graphique, aussi, une restriction temporaire de la région peut être effectuée en appelant la méthode CairoContext::clipPreserve() avec une paire CairoContext::save()/CairoContext::restore(). La seule autre façon d'accroître la taille de la région est d'utiliser la méthode CairoContext::resetClip().

Liste de paramètres

context

Un objet CairoContext valide.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$context->clipPreserve();

?>

Exemple #2 Style procédural

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

cairo_clip_preserve($context);

?>

Voir aussi

  • CairoContext::save() - Le but de save
  • CairoContext::restore() - Le but de restore
  • CairoContext::resetClip() - Le but de resetClip


Récupère la région courante sous la forme d'une liste de rectangles

  • « CairoContext::clipPreserve
  • CairoContext::closePath »
  • PHP Manual
  • CairoContext
  • Récupère la région courante sous la forme d'une liste de rectangles

CairoContext::clipRectangleList

cairo_clip_rectangle_list

(PECL cairo >= 0.1.0)

CairoContext::clipRectangleList -- cairo_clip_rectangle_list — Récupère la région courante sous la forme d'une liste de rectangles

Description

Style orienté objet (méthode) :

public array CairoContext::clipRectangleList ( void )

Style procédural :

array cairo_clip_rectangle_list ( CairoContext $context )

Retourne une liste de tableau représentant la région sous la forme d'une liste de rectangles en coordonnées utilisateur.

Liste de paramètres

context

Un objet CairoContext créé avec la méthode CairoContext::__construct() ou la fonction cairo_create().

Valeurs de retour

Un tableau d'espace utilisateur représentant des rectangles de la région courante.

(Le statut de la liste peut être CAIRO_STATUS_CLIP_NOT_REPRESENTABLE pour indiquer que la région ne peut être représentée sous la forme d'une liste de rectangles de l'espace utilisateur. Le statut peut avoir d'autres valeurs pour indiquer les autres erreurs).

Exemples

Exemple #1 Style orienté objet

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

var_dump($context->clipRectangleList());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  array(4) {
    ["x"]=>
    float(0)
    ["y"]=>
    float(0)
    ["width"]=>
    float(50)
    ["height"]=>
    float(50)
  }
}

Exemple #2 Style procédural

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

var_dump(cairo_clip_rectangle_list($context));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  array(4) {
    ["x"]=>
    float(0)
    ["y"]=>
    float(0)
    ["width"]=>
    float(50)
    ["height"]=>
    float(50)
  }
}

Voir aussi

  • Classname::Method()


Ferme le chemin courant

  • « CairoContext::clipRectangleList
  • CairoContext::__construct »
  • PHP Manual
  • CairoContext
  • Ferme le chemin courant

CairoContext::closePath

cairo_close_path

(PECL cairo >= 0.1.0)

CairoContext::closePath -- cairo_close_path — Ferme le chemin courant

Description

Style orienté objet (méthode) :

public void CairoContext::closePath ( void )

Style procédural :

void cairo_close_path ( CairoContext $context )

Ajoute un segment de ligne au chemin depuis le point courant jusqu'au début du sous-chemin courant (le point le plus récent passé à la méthode CairoContext::moveTo()), et ferme le sous chemin. Après cet appel, le point courant sera à la jointure du dernier point du sous chemin.

Le comportement de close_path() est distinct d'un simple appel à CairoContext::lineTo() avec des coordonnées équivalentes dans le cas d'un stroking. Lorsqu'un sous chemin fermé est stroké, il n'y aura pas de bouchons aux extrémités du sous chemin. À la place, il y aura une ligne de jointe connectant le segment final et initial du sous chemin.

S'il n'y a pas de point courant avant l'appel à la méthode CairoContext::closePath(), cette fonction n'aura aucun effet.

Liste de paramètres

context

Un objet CairoContext valide créé avec CairoContext::__construct() ou cairo_create()

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$context->closePath();

?>

Exemple #2 Style procédural

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

cairo_close_path($context);

?>

Voir aussi

  • CairoContext::copyPath() - Crée une copie du chemin courant


Crée un nouvel objet CairoContext

  • « CairoContext::closePath
  • CairoContext::copyPage »
  • PHP Manual
  • CairoContext
  • Crée un nouvel objet CairoContext

CairoContext::__construct

(PECL cairo >= 0.1.0)

CairoContext::__construct — Crée un nouvel objet CairoContext

Description

public CairoContext::__construct ( CairoSurface $surface )

Crée un nouvel objet CairoContext pour dessiner.

Liste de paramètres

surface

Un objet CairoSurface valide comme CairoImageSurface ou CairoPdfSurface

Valeurs de retour

Un nouvel objet CairoContext.

Exemples

Exemple #1 Exemple avec CairoContext::__construct()

<?php
// La surface à travailler
$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

// Crée un nouveau CairoContext pour la surface CairoSurface
$context = new CairoContext($surface);

?>

Voir aussi

  • Cairo::Method()


Émets la page courante

  • « CairoContext::__construct
  • CairoContext::copyPath »
  • PHP Manual
  • CairoContext
  • Émets la page courante

CairoContext::copyPage

cairo_copy_page

(PECL cairo >= 0.1.0)

CairoContext::copyPage -- cairo_copy_page — Émets la page courante

Description

Style orienté objet (méthode) :

public void CairoContext::copyPage ( void )

Style procédural :

void cairo_copy_page ( CairoContext $context )

Émets la page courante pour les gestionnaires qui supportent les pages multiples, mais ne la nettoie pas, aussi, le contenu de la page courante sera également repris pour la prochaine page. Utilisez la méthode CairoContext::showPage() si vous voulez récupérer une page vide après l'émission.

Ceci est une fonction de convenance qui appèle simplement la méthode CairoSurface::copyPage() sur la cible CairoContext.

Liste de paramètres

context

Un objet CairoContext valide créé avec la méthode CairoContext::__construct() ou la fonction cairo_create().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$context->copyPage();

?>

Exemple #2 Style procédural

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

cairo_copy_page($context);

?>

Voir aussi

  • CairoContext::showPage() - Le but de showPage
  • CairoSurface::copyPage() - Le but de copyPage


Crée une copie du chemin courant

  • « CairoContext::copyPage
  • CairoContext::copyPathFlat »
  • PHP Manual
  • CairoContext
  • Crée une copie du chemin courant

CairoContext::copyPath

cairo_copy_path

(PECL cairo >= 0.1.0)

CairoContext::copyPath -- cairo_copy_path — Crée une copie du chemin courant

Description

Style orienté objet (méthode) :

public CairoPath CairoContext::copyPath ( void )

Style procédural :

CairoPath cairo_copy_path ( CairoContext $context )

Crée une copie du chemin courant et le retourne à l'utilisateur sous la forme d'un CairoPath. Voir la méthode CairoPathpour des astuces sur l'itération de la structure de données retournée.

Cette fonction retournera toujours un objet CairoPath valide, mais le résultat peut ne pas contenir de données, si une des conditions suivantes n'est pas remplie :

  • 1. S'il n'y a pas suffisamment de mémoire pour copier le chemin. Dans ce cas, CairoPath->status sera défini à CAIRO_STATUS_NO_MEMORY.
  • 2. Si context est déjà dans un statut d'erreur. Dans ce cas, CairoPath->status contiendra le même statut que celui retourné par la fonction cairo_status().
Dans tous les cas, CairoPath->status sera défini à CAIRO_STATUS_NO_MEMORY (suivant le statut de l'erreur dans cr).

Liste de paramètres

context

Un objet CairoContext valide créé avec CairoContext::__construct() ou cairo_create()

Valeurs de retour

Une copie de l'objet CairoPath courant dans le contexte.

Exemples

Exemple #1 Style orienté objet

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

var_dump($context->copyPath())

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(CairoPath)#3 (0) {
}

Exemple #2 Style procédural

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

var_dump(cairo_copy_path($context));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(CairoPath)#3 (0) {
}

Voir aussi

  • CairoContext::closePath() - Ferme le chemin courant


Récupère une copie à plat du chemin courant

  • « CairoContext::copyPath
  • CairoContext::curveTo »
  • PHP Manual
  • CairoContext
  • Récupère une copie à plat du chemin courant

CairoContext::copyPathFlat

cairo_copy_path_flat

(PECL cairo >= 0.1.0)

CairoContext::copyPathFlat -- cairo_copy_path_flat — Récupère une copie à plat du chemin courant

Description

Style orienté objet (méthode) :

public CairoPath CairoContext::copyPathFlat ( void )

Style procédural :

CairoPath cairo_copy_path_flat ( CairoContext $context )

Récupère une copie à plat du chemin courant et le retourne à l'utilisateur sous la forme d'un objet CairoPath.

Cette fonction agit comme la méthode CairoContext::copyPath() excepté le fait que toutes les courbes du chemin seront représentées sous la forme d'une ligne approximative (suivant la valeur de tolérance courante). Ainsi, le résultat ne contiendra pas d'éléments de type CAIRO_PATH_CURVE_TO qui seront remplacés par une série d'éléments CAIRO_PATH_LINE_TO elements.

Liste de paramètres

context

Un objet CairoContext.

Valeurs de retour

Une copie du chemin courant.

Exemples

Exemple #1 Style orienté objet

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

var_dump($context->copyPathFlat());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(CairoPath)#3 (0) {
}

Exemple #2 Style procédural

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

var_dump(cairo_copy_path_flat($context));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(CairoPath)#3 (0) {
}

Voir aussi

  • CairoContext::copyPath() - Crée une copie du chemin courant
  • CairoContext::closePath() - Ferme le chemin courant


Ajoute une courbe

  • « CairoContext::copyPathFlat
  • CairoContext::deviceToUser »
  • PHP Manual
  • CairoContext
  • Ajoute une courbe

CairoContext::curveTo

cairo_curve_to

(PECL cairo >= 0.1.0)

CairoContext::curveTo -- cairo_curve_to — Ajoute une courbe

Description

Style orienté objet (méthode) :

public void CairoContext::curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Style procédural :

void cairo_curve_to ( CairoContext $context , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Ajoute une courbe de Bézier au chemin depuis le point courant vers la position x3, y3 en coordonnées de l'espace utilisateur, en utilsant x1, y1 et x2, y2 comme points de contrôle. Après cet appel, le point courant sera x3, y3.

S'il n'y a pas de point courant avant l'appel à la méthode CairoContext::curveTo(), cette fonction se comportera comme si un appel précédent à la méthode CairoContext::moveTo() (x1, y1) avait eu lieu.

Liste de paramètres

context

Un objet CairoContext valide créé avec CairoContext::__construct() ou cairo_create()

x1

Premier point de contrôle sur l'axe X pour la courbe.

y1

Premier point de contrôle sur l'axe Y pour la courbe.

x2

Second point de contrôle sur l'axe X pour la courbe.

y2

Second point de contrôle sur l'axe Y pour la courbe.

x3

Dernier point de contrôle sur l'axe X pour la courbe.

y3

Dernier point de contrôle sur l'axe Y pour la courbe.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php
$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);

$c->paint();

$c->moveTo(10, 50);
$c->setLineWidth(5);
$c->setSourceRgb(.1, 0, 1);
$c->curveTo(20, 80, 80, 20, 90, 50);
$c->stroke();

$s->writeToPng(dirname(__FILE__) . '/curveTo.png');
?>

Exemple #2 Style procédural

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);

cairo_paint($c);

cairo_move_to($c, 10, 50);
cairo_set_line_width($c, 5);
cairo_set_source_rgb($c, .1, 0, 1);
cairo_curve_to($c, 20, 80, 80, 20, 90, 50);
cairo_stroke($c);

cairo_surface_write_to_png($s, dirname(__FILE__) . '/curve_to.png');
?>

Voir aussi

  • CairoContext::moveTo() - Le but de moveTo


Transforme une coordonnée

  • « CairoContext::curveTo
  • CairoContext::deviceToUserDistance »
  • PHP Manual
  • CairoContext
  • Transforme une coordonnée

CairoContext::deviceToUser

cairo_device_to_user

(PECL cairo >= 0.1.0)

CairoContext::deviceToUser -- cairo_device_to_user — Transforme une coordonnée

Description

Style orienté objet (méthode) :

public array CairoContext::deviceToUser ( float $x , float $y )

Style procédural :

array cairo_device_to_user ( CairoContext $context , float $x , float $y )

Transforme une coordonnée depuis l'espace du périphérique vers l'espace utilisateur en multipliant le point courant par l'inverse de la matrice de transformation courante (CTM).

Liste de paramètres

context

Un objet CairoContext valide créé avec CairoContext::__construct() ou cairo_create()

x

Valeur en X de la coordonnée.

y

Valeur en Y de la coordonnée.

Valeurs de retour

Un tableau contenant les coordonnées en X et en Y dans l'espace utilisateur.

Voir aussi

  • CairoContext::deviceToUserDistance() - Transforme une distance


Transforme une distance

  • « CairoContext::deviceToUser
  • CairoContext::fill »
  • PHP Manual
  • CairoContext
  • Transforme une distance

CairoContext::deviceToUserDistance

cairo_device_to_user_distance

(PECL cairo >= 0.1.0)

CairoContext::deviceToUserDistance -- cairo_device_to_user_distance — Transforme une distance

Description

Style orienté objet (méthode) :

public array CairoContext::deviceToUserDistance ( float $x , float $y )

Style procédural :

array cairo_device_to_user_distance ( CairoContext $context , float $x , float $y )

Transforme une distance vectorielle depuis l'espace du périphérique vers l'espace utilisateur. Cette méthode est similaire à la méthode CairoContext::deviceToUser() ou la fonction cairo_device_to_user() excepté que les composants de traduction inverse de la matrice de transformation Cairo seront ignorés lors de la transformation (x, y).

Liste de paramètres

context

Un objet CairoContext valide créé avec CairoContext::__construct() ou cairo_create()

x

Composant en X de la distance vectorielle.

y

Composant en Y de la distance vectorielle.

Valeurs de retour

Retourne un tableau avec les valeurs X et Y de la distance vectorielle dans l'espace utilisateur.

Voir aussi

  • CairoContext::deviceToUser() - Transforme une coordonnée


Remplit le chemin courant

  • « CairoContext::deviceToUserDistance
  • CairoContext::fillExtents »
  • PHP Manual
  • CairoContext
  • Remplit le chemin courant

CairoContext::fill

cairo_fill

(PECL cairo >= 0.1.0)

CairoContext::fill -- cairo_fill — Remplit le chemin courant

Description

Style orienté objet (méthode) :

public void CairoContext::fill ( void )

Style procédural :

void cairo_fill ( CairoContext $context )

Un opérateur de dessin qui remplit le chemin courant suivant le CairoFillRule courant, (chaque sous chemin est implicitement fermé avant de commencer le remplissage). Après CairoContext::fill() ou cairo_fill(), le chemin courant sera supprimé du contexte CairoContext.

Liste de paramètres

context

Un objet CairoContext valide, créé avec CairoContext::__construct() ou cairo_create()

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);
$c->paint();

$c->setSourceRgb(1, 1, 1);
$c->rectangle(0, 0, 50, 50);
$c->fill();
$c->setSourceRgb(0, 1, 0);
$c->rectangle(50, 50, 50, 50);
$c->fill();

$s->writeToPng(dirname(__FILE__) . '/CairoContext_fill.png');

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);

cairo_set_source_rgb($c, 1, 1, 1);
cairo_rectangle($c, 0, 0, 50, 50);
cairo_fill($c);
cairo_set_source_rgb($c, 0, 1, 0);
cairo_rectangle($c, 50, 50, 50, 50);
cairo_fill($c);

cairo_surface_write_to_png($s, dirname(__FILE__) . '/cairo_fill.png');

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • CairoContext::setFillRule() - Le but de setFillRule
  • ContextContext::fillPreserve()
  • CairoFillRule


Calcule la zone remplie

  • « CairoContext::fill
  • CairoContext::fillPreserve »
  • PHP Manual
  • CairoContext
  • Calcule la zone remplie

CairoContext::fillExtents

cairo_fill_extents

(PECL cairo >= 0.1.0)

CairoContext::fillExtents -- cairo_fill_extents — Calcule la zone remplie

Description

Style orienté objet (méthode) :

public array CairoContext::fillExtents ( void )

Style procédural :

array cairo_fill_extents ( CairoContext $context )

Calcule un cadre de sélection en coordonnées utilisateur couvrant l'espace qui sera affecté par la méthode CairoContext::fill(), suivant le chemin courant et les paramètres de remplissage. Si le chemin courant est vide, retourne un rectangle vide (0,0,0,0). Les dimensions de la surface et de la région ne seront pas pris en compte.

Similaire à la méthode CairoContext::pathExtents(), mais retourne l'étendu non nul pour des chemins sans surface encrée (comme un segment d'une simple ligne).

Notez que CairoContext::fillExtents() doit obligatoirement effectuer d'autre traitement pour calculer l'espace encrée précis pour la règle de remplissage, aussi CairoContext::pathExtents() peut être plus appropriée pour conserver un maximum de performance si le chemin non encré est souhaité.

Liste de paramètres

context

Un objet CairoContext valide avec CairoContext::__construct() ou cairo_create()

Valeurs de retour

Un tableau avec les coordonnées de l'espace affecté.

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • CairoContext::fill() - Remplit le chemin courant
  • CairoContext::setFillRule() - Le but de setFillRule
  • CairoContext::fillPreserve() - Remplit et préserve le chemin courant


Remplit et préserve le chemin courant

  • « CairoContext::fillExtents
  • CairoContext::fontExtents »
  • PHP Manual
  • CairoContext
  • Remplit et préserve le chemin courant

CairoContext::fillPreserve

cairo_fill_preserve

(PECL cairo >= 0.1.0)

CairoContext::fillPreserve -- cairo_fill_preserve — Remplit et préserve le chemin courant

Description

Style orienté objet (méthode) :

public void CairoContext::fillPreserve ( void )

Style procédural :

void cairo_fill_preserve ( CairoContext $context )

Une opération de dessin qui remplit le chemin courant suivant l'objet CairoFillRule courant (chaque sous chemin est implicitement clos avant le remplissage). Contrairement à la méthode CairoContext::fill(), CairoContext::fillPreserve() (fonctions cairo_fill(), cairo_fill_preserve(), respectivement) préserve le chemin du contexte.

Liste de paramètres

context

Un objet CairoContext valide créé avec CairoContext::__construct() ou cairo_create()

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • CairoContext::setFillRule() - Le but de setFillRule
  • CairoContext::fill() - Remplit le chemin courant


Récupère la police étendue

  • « CairoContext::fillPreserve
  • CairoContext::getAntialias »
  • PHP Manual
  • CairoContext
  • Récupère la police étendue

CairoContext::fontExtents

cairo_font_extents

(PECL cairo >= 0.1.0)

CairoContext::fontExtents -- cairo_font_extents — Récupère la police étendue

Description

Style orienté objet (méthode) :

public array CairoContext::fontExtents ( void )

Style procédural :

array cairo_font_extents ( CairoContext $context )

Récupère la police étendue depuis la police courante sélectionnée.

Liste de paramètres

context

Valeurs de retour

Un tableau contenant la police étendue depuis la police courante.

Exemples

Exemple #1 Style orienté objet

<?php

$sur = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);
$con = new CairoContext($sur);

var_dump($con->fontExtents());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(5) {
  ["ascent"]=>
  float(10)
  ["descent"]=>
  float(3)
  ["height"]=>
  float(13.3125)
  ["max_x_advance"]=>
  float(26.65625)
  ["max_y_advance"]=>
  float(0)
}

Exemple #2 Style procédural

<?php

$sur = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);
$con = cairo_create($sur);

var_dump(cairo_font_extents($con));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(5) {
  ["ascent"]=>
  float(10)
  ["descent"]=>
  float(3)
  ["height"]=>
  float(13.3125)
  ["max_x_advance"]=>
  float(26.65625)
  ["max_y_advance"]=>
  float(0)
}

Voir aussi

  • Classname::Method()


Récupère le mode antialias courant

  • « CairoContext::fontExtents
  • CairoContext::getCurrentPoint »
  • PHP Manual
  • CairoContext
  • Récupère le mode antialias courant

CairoContext::getAntialias

cairo_get_antialias

(PECL cairo >= 0.1.0)

CairoContext::getAntialias -- cairo_get_antialias — Récupère le mode antialias courant

Description

Style orienté objet (méthode) :

public int CairoContext::getAntialias ( void )

Style procédural :

int cairo_get_antialias ( CairoContext $context )

Retourne le mode CairoAntialias courant, tel que défini par CairoContext::setAntialias().

Liste de paramètres

context

Un objet CairoContext valide créé par CairoContext::__construct() ou cairo_create()

Valeurs de retour

Le mode CairoAntialias courant.

Exemples

Exemple #1 Style orienté objet

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);
$context = new CairoContext($surface);

$context->setAntialias(CairoAntialias::MODE_SUBPIXEL);

var_dump($context->getAntialias());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)

Exemple #2 Style procédural

<?php

$sur = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);
$con = cairo_create($sur);

cairo_set_antialias($con, CAIRO_ANTIALIAS_SUBPIXEL);

var_dump(cairo_get_antialias($con));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)

Voir aussi

  • CairoContext::setAntialias() - Le but de setAntialias
  • CairoAntialias


Le but de getCurrentPoint

  • « CairoContext::getAntialias
  • CairoContext::getDash »
  • PHP Manual
  • CairoContext
  • Le but de getCurrentPoint

CairoContext::getCurrentPoint

cairo_get_current_point

(PECL cairo >= 0.1.0)

CairoContext::getCurrentPoint -- cairo_get_current_point — Le but de getCurrentPoint

Description

Style orienté objet

public array CairoContext::getCurrentPoint ( void )

Style procédural

array cairo_get_current_point ( CairoContext $context )

Récupère le point courant du chemin courant, représentant le point final atteint par le chemin.

Le point courant est retourné dans un système de coordonnées selon l'espace utilisateur. S'il n'y a pas de point courant de défini, ou si le cr est un statut d'erreur, x et y seront définis à 0.0. Il est possible de vérifier si le point courant existe grâce à la méthode CairoContext::hasCurrentPoint().

La plupart des fonctions de construction de chemin altère le point courant. Reportez-vous aux
fonctions suivantes afin de savoir en quoi il est altéré : CairoContext::newPath(),
CairoContext::newSubPath(), CairoContext::appendPath(),
CairoContext::closePath(), CairoContext::moveTo(),
CairoContext::lineTo(), CairoContext::curveTo(),
CairoContext::relMoveTo(), CairoContext::relLineTo(),
CairoContext::relCurveTo(), CairoContext::arc(),
CairoContext::arcNegative(), CairoContext::rectangle(),
CairoContext::textPath(), CairoContext::glyphPath().

Quelques fonctions utilisent et altèrent le point courant mais ne modifient pas le chemin courant : CairoContext::showText().

Quelques fonctions effacent le chemin courant et retournent le point courant : CairoContext::fill(), CairoContext::stroke().

Liste de paramètres

context

Un objet CairoContext valide.

Valeurs de retour

Un tableau contenant les coordonnées x (index 0) et y (index 1) du point courant.

Exemples

Exemple #1 Style orienté objet

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->moveTo(10, 10);

var_dump($c->getCurrentPoint());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  float(10)
  [1]=>
  float(10)
}

Exemple #2 Style procédural

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_move_to($c, 10, 10);

var_dump(cairo_get_current_point($c));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  float(10)
  [1]=>
  float(10)
}

Voir aussi

  • CairoContext::moveTo() - Le but de moveTo
  • CairoContext::hasCurrentPoint() - Le but de hasCurrentPoint


Le but de getDash

  • « CairoContext::getCurrentPoint
  • CairoContext::getDashCount »
  • PHP Manual
  • CairoContext
  • Le but de getDash

CairoContext::getDash

cairo_get_dash

(PECL cairo >= 0.1.0)

CairoContext::getDash -- cairo_get_dash — Le but de getDash

Description

Style orienté objet (méthode) :

public array CairoContext::getDash ( void )

Style procédural :

array cairo_get_dash ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getDashCount

  • « CairoContext::getDash
  • CairoContext::getFillRule »
  • PHP Manual
  • CairoContext
  • Le but de getDashCount

CairoContext::getDashCount

cairo_get_dash_count

(PECL cairo >= 0.1.0)

CairoContext::getDashCount -- cairo_get_dash_count — Le but de getDashCount

Description

Style orienté objet (méthode) :

public int CairoContext::getDashCount ( void )

Style procédural :

int cairo_get_dash_count ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getFillRule

  • « CairoContext::getDashCount
  • CairoContext::getFontFace »
  • PHP Manual
  • CairoContext
  • Le but de getFillRule

CairoContext::getFillRule

cairo_get_fill_rule

(PECL cairo >= 0.1.0)

CairoContext::getFillRule -- cairo_get_fill_rule — Le but de getFillRule

Description

Style orienté objet (méthode) :

public int CairoContext::getFillRule ( void )

Style procédural :

int cairo_get_fill_rule ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getFontFace

  • « CairoContext::getFillRule
  • CairoContext::getFontMatrix »
  • PHP Manual
  • CairoContext
  • Le but de getFontFace

CairoContext::getFontFace

cairo_get_font_face

(PECL cairo >= 0.1.0)

CairoContext::getFontFace -- cairo_get_font_face — Le but de getFontFace

Description

Style orienté objet (méthode) :

public void CairoContext::getFontFace ( void )

Style procédural :

void cairo_get_font_face ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getFontMatrix

  • « CairoContext::getFontFace
  • CairoContext::getFontOptions »
  • PHP Manual
  • CairoContext
  • Le but de getFontMatrix

CairoContext::getFontMatrix

cairo_get_font_matrix

(PECL cairo >= 0.1.0)

CairoContext::getFontMatrix -- cairo_get_font_matrix — Le but de getFontMatrix

Description

Style orienté objet (méthode) :

public void CairoContext::getFontMatrix ( void )

Style procédural :

void cairo_get_font_matrix ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getFontOptions

  • « CairoContext::getFontMatrix
  • CairoContext::getGroupTarget »
  • PHP Manual
  • CairoContext
  • Le but de getFontOptions

CairoContext::getFontOptions

cairo_get_font_options

(PECL cairo >= 0.1.0)

CairoContext::getFontOptions -- cairo_get_font_options — Le but de getFontOptions

Description

Style orienté objet (méthode) :

public void CairoContext::getFontOptions ( void )

Style procédural :

void cairo_get_font_options ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getGroupTarget

  • « CairoContext::getFontOptions
  • CairoContext::getLineCap »
  • PHP Manual
  • CairoContext
  • Le but de getGroupTarget

CairoContext::getGroupTarget

cairo_get_group_target

(PECL cairo >= 0.1.0)

CairoContext::getGroupTarget -- cairo_get_group_target — Le but de getGroupTarget

Description

Style orienté objet (méthode) :

public void CairoContext::getGroupTarget ( void )

Style procédural :

void cairo_get_group_target ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getLineCap

  • « CairoContext::getGroupTarget
  • CairoContext::getLineJoin »
  • PHP Manual
  • CairoContext
  • Le but de getLineCap

CairoContext::getLineCap

cairo_get_line_cap

(PECL cairo >= 0.1.0)

CairoContext::getLineCap -- cairo_get_line_cap — Le but de getLineCap

Description

Style orienté objet (méthode) :

public int CairoContext::getLineCap ( void )

Style procédural :

int cairo_get_line_cap ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getLineJoin

  • « CairoContext::getLineCap
  • CairoContext::getLineWidth »
  • PHP Manual
  • CairoContext
  • Le but de getLineJoin

CairoContext::getLineJoin

cairo_get_line_join

(PECL cairo >= 0.1.0)

CairoContext::getLineJoin -- cairo_get_line_join — Le but de getLineJoin

Description

Style orienté objet (méthode) :

public int CairoContext::getLineJoin ( void )

Style procédural :

int cairo_get_line_join ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getLineWidth

  • « CairoContext::getLineJoin
  • CairoContext::getMatrix »
  • PHP Manual
  • CairoContext
  • Le but de getLineWidth

CairoContext::getLineWidth

cairo_get_line_width

(PECL cairo >= 0.1.0)

CairoContext::getLineWidth -- cairo_get_line_width — Le but de getLineWidth

Description

Style orienté objet (méthode) :

public float CairoContext::getLineWidth ( void )

Style procédural :

float cairo_get_line_width ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getMatrix

  • « CairoContext::getLineWidth
  • CairoContext::getMiterLimit »
  • PHP Manual
  • CairoContext
  • Le but de getMatrix

CairoContext::getMatrix

cairo_get_matrix

(PECL cairo >= 0.1.0)

CairoContext::getMatrix -- cairo_get_matrix — Le but de getMatrix

Description

Style orienté objet (méthode) :

public void CairoContext::getMatrix ( void )

Style procédural :

void cairo_get_matrix ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getMiterLimit

  • « CairoContext::getMatrix
  • CairoContext::getOperator »
  • PHP Manual
  • CairoContext
  • Le but de getMiterLimit

CairoContext::getMiterLimit

cairo_get_miter_limit

(PECL cairo >= 0.1.0)

CairoContext::getMiterLimit -- cairo_get_miter_limit — Le but de getMiterLimit

Description

Style orienté objet (méthode) :

public float CairoContext::getMiterLimit ( void )

Style procédural :

float cairo_get_miter_limit ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getOperator

  • « CairoContext::getMiterLimit
  • CairoContext::getScaledFont »
  • PHP Manual
  • CairoContext
  • Le but de getOperator

CairoContext::getOperator

cairo_get_operator

(PECL cairo >= 0.1.0)

CairoContext::getOperator -- cairo_get_operator — Le but de getOperator

Description

Style orienté objet (méthode) :

public int CairoContext::getOperator ( void )

Style procédural :

int cairo_get_operator ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getScaledFont

  • « CairoContext::getOperator
  • CairoContext::getSource »
  • PHP Manual
  • CairoContext
  • Le but de getScaledFont

CairoContext::getScaledFont

cairo_get_scaled_font

(PECL cairo >= 0.1.0)

CairoContext::getScaledFont -- cairo_get_scaled_font — Le but de getScaledFont

Description

Style orienté objet (méthode) :

public void CairoContext::getScaledFont ( void )

Style procédural :

void cairo_get_scaled_font ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getSource

  • « CairoContext::getScaledFont
  • CairoContext::getTarget »
  • PHP Manual
  • CairoContext
  • Le but de getSource

CairoContext::getSource

cairo_get_source

(PECL cairo >= 0.1.0)

CairoContext::getSource -- cairo_get_source — Le but de getSource

Description

Style orienté objet (méthode) :

public void CairoContext::getSource ( void )

Style procédural :

void cairo_get_source ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getTarget

  • « CairoContext::getSource
  • CairoContext::getTolerance »
  • PHP Manual
  • CairoContext
  • Le but de getTarget

CairoContext::getTarget

cairo_get_target

(PECL cairo >= 0.1.0)

CairoContext::getTarget -- cairo_get_target — Le but de getTarget

Description

Style orienté objet (méthode) :

public void CairoContext::getTarget ( void )

Style procédural :

void cairo_get_target ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de getTolerance

  • « CairoContext::getTarget
  • CairoContext::glyphPath »
  • PHP Manual
  • CairoContext
  • Le but de getTolerance

CairoContext::getTolerance

cairo_get_tolerance

(PECL cairo >= 0.1.0)

CairoContext::getTolerance -- cairo_get_tolerance — Le but de getTolerance

Description

Style orienté objet (méthode) :

public float CairoContext::getTolerance ( void )

Style procédural :

float cairo_get_tolerance ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de glyphPath

  • « CairoContext::getTolerance
  • CairoContext::hasCurrentPoint »
  • PHP Manual
  • CairoContext
  • Le but de glyphPath

CairoContext::glyphPath

cairo_glyph_path

(PECL cairo >= 0.1.0)

CairoContext::glyphPath -- cairo_glyph_path — Le but de glyphPath

Description

Style orienté objet

public void CairoContext::glyphPath ( array $glyphs )

Style procédural

void cairo_glyph_path ( CairoContext $context , array $glyphs )

Ajoute les chemins fermés au chemin courant pour les glyphs. Le chemin généré est rempli, l'effet est similaire à CairoContext::showGlyphs().

Liste de paramètres

context

Un objet CairoContext

glyphs

Tableau de glyphs

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...


Le but de hasCurrentPoint

  • « CairoContext::glyphPath
  • CairoContext::identityMatrix »
  • PHP Manual
  • CairoContext
  • Le but de hasCurrentPoint

CairoContext::hasCurrentPoint

cairo_has_current_point

(PECL cairo >= 0.1.0)

CairoContext::hasCurrentPoint -- cairo_has_current_point — Le but de hasCurrentPoint

Description

Style orienté objet (méthode) :

public bool CairoContext::hasCurrentPoint ( void )

Style procédural :

bool cairo_has_current_point ( CairoContext $context )

Vérifie si le point courant est défini dans le chemin courant. Voir la méthode CairoContext::getCurrentPoint() pour plus de détails sur le point courant.

Liste de paramètres

context

Un objet CairoContext valide.

Valeurs de retour

Si oui ou non le point courant est défini.

Exemples

Exemple #1 Style orienté objet

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

var_dump($c->hasCurrentPoint());

$c->moveTo(10, 10);

var_dump($c->hasCurrentPoint());

?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Exemple #2 Style procédural

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

var_dump(cairo_has_current_point($c));

cairo_move_to($c, 10, 10);

var_dump(cairo_has_current_point($c));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)

Voir aussi

  • CairoContext::getCurrentPoint() - Le but de getCurrentPoint


Le but de identityMatrix

  • « CairoContext::hasCurrentPoint
  • CairoContext::inFill »
  • PHP Manual
  • CairoContext
  • Le but de identityMatrix

CairoContext::identityMatrix

cairo_identity_matrix

(PECL cairo >= 0.1.0)

CairoContext::identityMatrix -- cairo_identity_matrix — Le but de identityMatrix

Description

Style orienté objet (méthode) :

public void CairoContext::identityMatrix ( void )

Style procédural :

void cairo_identity_matrix ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de inFill

  • « CairoContext::identityMatrix
  • CairoContext::inStroke »
  • PHP Manual
  • CairoContext
  • Le but de inFill

CairoContext::inFill

cairo_in_fill

(PECL cairo >= 0.1.0)

CairoContext::inFill -- cairo_in_fill — Le but de inFill

Description

Style orienté objet (méthode) :

public bool CairoContext::inFill ( string $x , string $y )

Style procédural :

bool cairo_in_fill ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de inStroke

  • « CairoContext::inFill
  • CairoContext::lineTo »
  • PHP Manual
  • CairoContext
  • Le but de inStroke

CairoContext::inStroke

cairo_in_stroke

(PECL cairo >= 0.1.0)

CairoContext::inStroke -- cairo_in_stroke — Le but de inStroke

Description

Style orienté objet (méthode) :

public bool CairoContext::inStroke ( string $x , string $y )

Style procédural :

bool cairo_in_stroke ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de lineTo

  • « CairoContext::inStroke
  • CairoContext::mask »
  • PHP Manual
  • CairoContext
  • Le but de lineTo

CairoContext::lineTo

cairo_line_to

(PECL cairo >= 0.1.0)

CairoContext::lineTo -- cairo_line_to — Le but de lineTo

Description

Style orienté objet (méthode) :

public void CairoContext::lineTo ( string $x , string $y )

Style procédural :

void cairo_line_to ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de mask

  • « CairoContext::lineTo
  • CairoContext::maskSurface »
  • PHP Manual
  • CairoContext
  • Le but de mask

CairoContext::mask

cairo_mask

(PECL cairo >= 0.1.0)

CairoContext::mask -- cairo_mask — Le but de mask

Description

Style orienté objet (méthode) :

public void CairoContext::mask ( string $pattern )

Style procédural :

void cairo_mask ( CairoContext $context , CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

pattern

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de maskSurface

  • « CairoContext::mask
  • CairoContext::moveTo »
  • PHP Manual
  • CairoContext
  • Le but de maskSurface

CairoContext::maskSurface

cairo_mask_surface

(PECL cairo >= 0.1.0)

CairoContext::maskSurface -- cairo_mask_surface — Le but de maskSurface

Description

Style orienté objet (méthode) :

public void CairoContext::maskSurface ( string $surface [, string $x [, string $y ]] )

Style procédural :

void cairo_mask_surface ( CairoContext $context , CairoSurface $surface [, string $x [, string $y ]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

surface

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de moveTo

  • « CairoContext::maskSurface
  • CairoContext::newPath »
  • PHP Manual
  • CairoContext
  • Le but de moveTo

CairoContext::moveTo

cairo_move_to

(PECL cairo >= 0.1.0)

CairoContext::moveTo -- cairo_move_to — Le but de moveTo

Description

Style orienté objet (méthode) :

public void CairoContext::moveTo ( string $x , string $y )

Style procédural :

void cairo_move_to ( CairoContext $context , string $x , string $y )

Commence un nouveau sous chemin. Après cet appel, le point courant sera (x, y).

Liste de paramètres

context

Un objet CairoContext.

x

Coordonnée en X de la nouvelle position.

y

Coordonnée en Y de la nouvelle position.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);
$c->paint();

// Se déplace de 10 pixels en suivant, et 10 pixels en dessous
$c->moveTo(10, 10);
$c->lineTo(90, 90);
$c->setLineWidth(2);
$c->setSourceRgb(1, 1, 1);
$c->stroke();

// Se déplace de 90 pixels en suivant, et 10 pixels en dessous
$c->moveTo(90, 10);
$c->lineTo(10, 90);
$c->setLineWidth(2);
$c->setSourceRgb(1, 1, 1);
$c->stroke();

$s->writeToPng(dirname(__FILE__) . '/CairoContext_moveTo.png');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);

// Se déplace de 10 pixels en suivant, et 10 pixels en dessous
cairo_move_to($c, 10, 10);
cairo_line_to($c, 90, 90);
cairo_set_line_width($c, 2);
cairo_set_source_rgb($c, 1, 1, 1);
cairo_stroke($c);

// Se déplace de 90 pixels en suivant, et 10 pixels en dessous
cairo_move_to($c, 90, 10);
cairo_line_to($c, 10, 90);
cairo_set_line_width($c, 2);
cairo_set_source_rgb($c, 1, 1, 1);
cairo_stroke($c);

cairo_surface_write_to_png($s, dirname(__FILE__) . '/cairo_move_to.png');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de newPath

  • « CairoContext::moveTo
  • CairoContext::newSubPath »
  • PHP Manual
  • CairoContext
  • Le but de newPath

CairoContext::newPath

cairo_new_path

(PECL cairo >= 0.1.0)

CairoContext::newPath -- cairo_new_path — Le but de newPath

Description

Style orienté objet (méthode) :

public void CairoContext::newPath ( void )

Style procédural :

void cairo_new_path ( CairoContext $context )

Efface le chemin courant. Après cet appel, il n'y aura plus de chemin, ni de point courant.

Liste de paramètres

context

Un objet CairoContext valide.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?php
// [...]
CairoContext::newPath();
?>

Exemple #2 Style procédural

<?php
// [...]
cairo_new_path($context);
?>

Voir aussi

  • CairoContext::appendPath() - Ajoute un chemin à la liste courante des chemins
  • CairoContext::closePath() - Ferme le chemin courant


Le but de newSubPath

  • « CairoContext::newPath
  • CairoContext::paint »
  • PHP Manual
  • CairoContext
  • Le but de newSubPath

CairoContext::newSubPath

cairo_new_sub_path

(PECL cairo >= 0.1.0)

CairoContext::newSubPath -- cairo_new_sub_path — Le but de newSubPath

Description

Style orienté objet (méthode) :

public void CairoContext::newSubPath ( void )

Style procédural :

void cairo_new_sub_path ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de paint

  • « CairoContext::newSubPath
  • CairoContext::paintWithAlpha »
  • PHP Manual
  • CairoContext
  • Le but de paint

CairoContext::paint

cairo_paint

(PECL cairo >= 0.1.0)

CairoContext::paint -- cairo_paint — Le but de paint

Description

Style orienté objet (méthode) :

public void CairoContext::paint ( void )

Style procédural :

void cairo_paint ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de paintWithAlpha

  • « CairoContext::paint
  • CairoContext::pathExtents »
  • PHP Manual
  • CairoContext
  • Le but de paintWithAlpha

CairoContext::paintWithAlpha

cairo_paint_with_alpha

(PECL cairo >= 0.1.0)

CairoContext::paintWithAlpha -- cairo_paint_with_alpha — Le but de paintWithAlpha

Description

Style orienté objet (méthode) :

public void CairoContext::paintWithAlpha ( string $alpha )

Style procédural :

void cairo_paint_with_alpha ( CairoContext $context , string $alpha )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

alpha

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de pathExtents

  • « CairoContext::paintWithAlpha
  • CairoContext::popGroup »
  • PHP Manual
  • CairoContext
  • Le but de pathExtents

CairoContext::pathExtents

cairo_path_extents

(PECL cairo >= 0.1.0)

CairoContext::pathExtents -- cairo_path_extents — Le but de pathExtents

Description

Style orienté objet (méthode) :

public array CairoContext::pathExtents ( void )

Style procédural :

array cairo_path_extents ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de popGroup purpose

  • « CairoContext::pathExtents
  • CairoContext::popGroupToSource »
  • PHP Manual
  • CairoContext
  • Le but de popGroup purpose

CairoContext::popGroup

cairo_pop_group

(PECL cairo >= 0.1.0)

CairoContext::popGroup -- cairo_pop_group — Le but de popGroup purpose

Description

Style orienté objet (méthode) :

public void CairoContext::popGroup ( void )

Style procédural :

void cairo_pop_group ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de popGroupToSource

  • « CairoContext::popGroup
  • CairoContext::pushGroup »
  • PHP Manual
  • CairoContext
  • Le but de popGroupToSource

CairoContext::popGroupToSource

cairo_pop_group_to_source

(PECL cairo >= 0.1.0)

CairoContext::popGroupToSource -- cairo_pop_group_to_source — Le but de popGroupToSource

Description

Style orienté objet (méthode) :

public void CairoContext::popGroupToSource ( void )

Style procédural :

void cairo_pop_group_to_source ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de pushGroup

  • « CairoContext::popGroupToSource
  • CairoContext::pushGroupWithContent »
  • PHP Manual
  • CairoContext
  • Le but de pushGroup

CairoContext::pushGroup

cairo_push_group

(PECL cairo >= 0.1.0)

CairoContext::pushGroup -- cairo_push_group — Le but de pushGroup

Description

Style orienté objet (méthode) :

public void CairoContext::pushGroup ( void )

Style procédural :

void cairo_push_group ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de pushGroupWithContent

  • « CairoContext::pushGroup
  • CairoContext::rectangle »
  • PHP Manual
  • CairoContext
  • Le but de pushGroupWithContent

CairoContext::pushGroupWithContent

cairo_push_group_with_content

(PECL cairo >= 0.1.0)

CairoContext::pushGroupWithContent -- cairo_push_group_with_content — Le but de pushGroupWithContent

Description

Style orienté objet (méthode) :

public void CairoContext::pushGroupWithContent ( string $content )

Style procédural :

void cairo_push_group_with_content ( CairoContext $context , string $content )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

content

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de rectangle

  • « CairoContext::pushGroupWithContent
  • CairoContext::relCurveTo »
  • PHP Manual
  • CairoContext
  • Le but de rectangle

CairoContext::rectangle

cairo_rectangle

(PECL cairo >= 0.1.0)

CairoContext::rectangle -- cairo_rectangle — Le but de rectangle

Description

Style orienté objet (méthode) :

public void CairoContext::rectangle ( string $x , string $y , string $width , string $height )

Style procédural :

void cairo_rectangle ( CairoContext $context , string $x , string $y , string $width , string $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

width

height

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de relCurveTo

  • « CairoContext::rectangle
  • CairoContext::relLineTo »
  • PHP Manual
  • CairoContext
  • Le but de relCurveTo

CairoContext::relCurveTo

cairo_rel_curve_to

(PECL cairo >= 0.1.0)

CairoContext::relCurveTo -- cairo_rel_curve_to — Le but de relCurveTo

Description

Style orienté objet (méthode) :

public void CairoContext::relCurveTo ( string $x1 , string $y1 , string $x2 , string $y2 , string $x3 , string $y3 )

Style procédural :

void cairo_rel_curve_to ( CairoContext $context , string $x1 , string $y1 , string $x2 , string $y2 , string $x3 , string $y3 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x1

y1

x2

y2

x3

y3

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de relLineTo

  • « CairoContext::relCurveTo
  • CairoContext::relMoveTo »
  • PHP Manual
  • CairoContext
  • Le but de relLineTo

CairoContext::relLineTo

cairo_rel_line_to

(PECL cairo >= 0.1.0)

CairoContext::relLineTo -- cairo_rel_line_to — Le but de relLineTo

Description

Style orienté objet (méthode) :

public void CairoContext::relLineTo ( string $x , string $y )

Style procédural :

void cairo_rel_line_to ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de relMoveTo

  • « CairoContext::relLineTo
  • CairoContext::resetClip »
  • PHP Manual
  • CairoContext
  • Le but de relMoveTo

CairoContext::relMoveTo

cairo_rel_move_to

(PECL cairo >= 0.1.0)

CairoContext::relMoveTo -- cairo_rel_move_to — Le but de relMoveTo

Description

Style orienté objet (méthode) :

public void CairoContext::relMoveTo ( string $x , string $y )

Style procédural :

void cairo_rel_move_to ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de resetClip

  • « CairoContext::relMoveTo
  • CairoContext::restore »
  • PHP Manual
  • CairoContext
  • Le but de resetClip

CairoContext::resetClip

cairo_reset_clip

(PECL cairo >= 0.1.0)

CairoContext::resetClip -- cairo_reset_clip — Le but de resetClip

Description

Style orienté objet (méthode) :

public void CairoContext::resetClip ( void )

Style procédural :

void cairo_reset_clip ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de restore

  • « CairoContext::resetClip
  • CairoContext::rotate »
  • PHP Manual
  • CairoContext
  • Le but de restore

CairoContext::restore

cairo_restore

(PECL cairo >= 0.1.0)

CairoContext::restore -- cairo_restore — Le but de restore

Description

Style orienté objet (méthode) :

public void CairoContext::restore ( void )

Style procédural :

void cairo_restore ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de rotate

  • « CairoContext::restore
  • CairoContext::save »
  • PHP Manual
  • CairoContext
  • Le but de rotate

CairoContext::rotate

cairo_rotate

(PECL cairo >= 0.1.0)

CairoContext::rotate -- cairo_rotate — Le but de rotate

Description

Style orienté objet (méthode) :

public void CairoContext::rotate ( string $angle )

Style procédural :

void cairo_rotate ( CairoContext $context , string $angle )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

angle

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de save

  • « CairoContext::rotate
  • CairoContext::scale »
  • PHP Manual
  • CairoContext
  • Le but de save

CairoContext::save

cairo_save

(PECL cairo >= 0.1.0)

CairoContext::save -- cairo_save — Le but de save

Description

Style orienté objet (méthode) :

public void CairoContext::save ( void )

Style procédural :

void cairo_save ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de scale

  • « CairoContext::save
  • CairoContext::selectFontFace »
  • PHP Manual
  • CairoContext
  • Le but de scale

CairoContext::scale

cairo_scale

(PECL cairo >= 0.1.0)

CairoContext::scale -- cairo_scale — Le but de scale

Description

Style orienté objet (méthode) :

public void CairoContext::scale ( string $x , string $y )

Style procédural :

void cairo_scale ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de selectFontFace

  • « CairoContext::scale
  • CairoContext::setAntialias »
  • PHP Manual
  • CairoContext
  • Le but de selectFontFace

CairoContext::selectFontFace

cairo_select_font_face

(PECL cairo >= 0.1.0)

CairoContext::selectFontFace -- cairo_select_font_face — Le but de selectFontFace

Description

Style orienté objet (méthode) :

public void CairoContext::selectFontFace ( string $family [, string $slant [, string $weight ]] )

Style procédural :

void cairo_select_font_face ( CairoContext $context , string $family [, string $slant [, string $weight ]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

family

slant

weight

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setAntialias

  • « CairoContext::selectFontFace
  • CairoContext::setDash »
  • PHP Manual
  • CairoContext
  • Le but de setAntialias

CairoContext::setAntialias

cairo_set_antialias

(PECL cairo >= 0.1.0)

CairoContext::setAntialias -- cairo_set_antialias — Le but de setAntialias

Description

Style orienté objet (méthode) :

public void CairoContext::setAntialias ([ string $antialias ] )

Style procédural :

void cairo_set_antialias ( CairoContext $context [, string $antialias ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

antialias

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setDash

  • « CairoContext::setAntialias
  • CairoContext::setFillRule »
  • PHP Manual
  • CairoContext
  • Le but de setDash

CairoContext::setDash

cairo_set_dash

(PECL cairo >= 0.1.0)

CairoContext::setDash -- cairo_set_dash — Le but de setDash

Description

Style orienté objet (méthode) :

public void CairoContext::setDash ( string $dashes [, string $offset ] )

Style procédural :

void cairo_set_dash ( CairoContext $context , array $dashes [, string $offset ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

dashes

offset

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setFillRule

  • « CairoContext::setDash
  • CairoContext::setFontFace »
  • PHP Manual
  • CairoContext
  • Le but de setFillRule

CairoContext::setFillRule

cairo_set_fill_rule

(PECL cairo >= 0.1.0)

CairoContext::setFillRule -- cairo_set_fill_rule — Le but de setFillRule

Description

Style orienté objet (méthode) :

public void CairoContext::setFillRule ( string $setting )

Style procédural :

void cairo_set_fill_rule ( CairoContext $context , string $setting )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

setting

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setFontFace

  • « CairoContext::setFillRule
  • CairoContext::setFontMatrix »
  • PHP Manual
  • CairoContext
  • Le but de setFontFace

CairoContext::setFontFace

cairo_set_font_face

(PECL cairo >= 0.1.0)

CairoContext::setFontFace -- cairo_set_font_face — Le but de setFontFace

Description

Style orienté objet (méthode) :

public void CairoContext::setFontFace ( CairoFontFace $fontface )

Style procédural :

void cairo_set_font_face ( CairoContext $context , CairoFontFace $fontface )

Définit la police de caractères pour un contexte donné.

Liste de paramètres

context

Un objet CairoContext représentant le contexte pour cette nouvelle police de caractères.

fontface

Un objet CairoFontFace.

Valeurs de retour

Aucune valeur retournée.

Exemples

Exemple #1 Style orienté objet

<?php
// Nouvelle surface avec un arrière-plan blanc
$s = new CairoImageSurface(CairoFormat::ARGB32, 300, 100);
$c = new CairoContext($s);
$c->setSourceRgb(1, 1, 1);
$c->paint();

// Dessine du texte
$c->setSourceRgb(0, 0, 0);
$c->moveTo(10, 60);

// Crée une nouvelle police de caratères
$f = new CairoToyFontFace("sans-serif", CairoFontSlant::NORMAL, CairoFontWeight::NORMAL);
$c->setFontFace($f);
$c->setFontSize(30);
$c->showText('Hello, World!');
$s->writeToPng(dirname(__FILE__) . '/setFontFace.png');
?>

Exemple #2 Style procédural

<?php
/* ... */
?>

Voir aussi

  • CairoContext::setFontSize() - Le but de setFontSize
  • CairoContext::showText() - Le but de showText


Le but de setFontMatrix

  • « CairoContext::setFontFace
  • CairoContext::setFontOptions »
  • PHP Manual
  • CairoContext
  • Le but de setFontMatrix

CairoContext::setFontMatrix

cairo_set_font_matrix

(PECL cairo >= 0.1.0)

CairoContext::setFontMatrix -- cairo_set_font_matrix — Le but de setFontMatrix

Description

Style orienté objet (méthode) :

public void CairoContext::setFontMatrix ( string $matrix )

Style procédural :

void cairo_set_font_matrix ( CairoContext $context , CairoMatrix $matrix )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

matrix

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setFontOptions

  • « CairoContext::setFontMatrix
  • CairoContext::setFontSize »
  • PHP Manual
  • CairoContext
  • Le but de setFontOptions

CairoContext::setFontOptions

cairo_set_font_options

(PECL cairo >= 0.1.0)

CairoContext::setFontOptions -- cairo_set_font_options — Le but de setFontOptions

Description

Style orienté objet (méthode) :

public void CairoContext::setFontOptions ( string $fontoptions )

Style procédural :

void cairo_set_font_options ( CairoContext $context , CairoFontOptions $fontoptions )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

fontoptions

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setFontSize

  • « CairoContext::setFontOptions
  • CairoContext::setLineCap »
  • PHP Manual
  • CairoContext
  • Le but de setFontSize

CairoContext::setFontSize

cairo_set_font_size

(PECL cairo >= 0.1.0)

CairoContext::setFontSize -- cairo_set_font_size — Le but de setFontSize

Description

Style orienté objet (méthode) :

public void CairoContext::setFontSize ( string $size )

Style procédural :

void cairo_set_font_size ( CairoContext $context , string $size )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

size

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setLineCap

  • « CairoContext::setFontSize
  • CairoContext::setLineJoin »
  • PHP Manual
  • CairoContext
  • Le but de setLineCap

CairoContext::setLineCap

cairo_set_line_cap

(PECL cairo >= 0.1.0)

CairoContext::setLineCap -- cairo_set_line_cap — Le but de setLineCap

Description

Style orienté objet (méthode) :

public void CairoContext::setLineCap ( string $setting )

Style procédural :

void cairo_set_line_cap ( CairoContext $context , string $setting )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

setting

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setLineJoin

  • « CairoContext::setLineCap
  • CairoContext::setLineWidth »
  • PHP Manual
  • CairoContext
  • Le but de setLineJoin

CairoContext::setLineJoin

cairo_set_line_join

(PECL cairo >= 0.1.0)

CairoContext::setLineJoin -- cairo_set_line_join — Le but de setLineJoin

Description

Style orienté objet (méthode) :

public void CairoContext::setLineJoin ( string $setting )

Style procédural :

void cairo_set_line_join ( CairoContext $context , string $setting )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

setting

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setLineWidth

  • « CairoContext::setLineJoin
  • CairoContext::setMatrix »
  • PHP Manual
  • CairoContext
  • Le but de setLineWidth

CairoContext::setLineWidth

cairo_set_line_width

(PECL cairo >= 0.1.0)

CairoContext::setLineWidth -- cairo_set_line_width — Le but de setLineWidth

Description

Style orienté objet (méthode) :

public void CairoContext::setLineWidth ( string $width )

Style procédural :

void cairo_set_line_width ( CairoContext $context , string $width )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

width

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setMatrix

  • « CairoContext::setLineWidth
  • CairoContext::setMiterLimit »
  • PHP Manual
  • CairoContext
  • Le but de setMatrix

CairoContext::setMatrix

cairo_set_matrix

(PECL cairo >= 0.1.0)

CairoContext::setMatrix -- cairo_set_matrix — Le but de setMatrix

Description

Style orienté objet (méthode) :

public void CairoContext::setMatrix ( string $matrix )

Style procédural :

void cairo_set_matrix ( CairoContext $context , CairoMatrix $matrix )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

matrix

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setMiterLimit

  • « CairoContext::setMatrix
  • CairoContext::setOperator »
  • PHP Manual
  • CairoContext
  • Le but de setMiterLimit

CairoContext::setMiterLimit

cairo_set_miter_limit

(PECL cairo >= 0.1.0)

CairoContext::setMiterLimit -- cairo_set_miter_limit — Le but de setMiterLimit

Description

Style orienté objet (méthode) :

public void CairoContext::setMiterLimit ( string $limit )

Style procédural :

void cairo_set_miter_limit ( CairoContext $context , string $limit )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

limit

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setOperator

  • « CairoContext::setMiterLimit
  • CairoContext::setScaledFont »
  • PHP Manual
  • CairoContext
  • Le but de setOperator

CairoContext::setOperator

cairo_set_operator

(PECL cairo >= 0.1.0)

CairoContext::setOperator -- cairo_set_operator — Le but de setOperator

Description

Style orienté objet (méthode) :

public void CairoContext::setOperator ( string $setting )

Style procédural :

void cairo_set_operator ( CairoContext $context , string $setting )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

setting

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setScaledFont

  • « CairoContext::setOperator
  • CairoContext::setSource »
  • PHP Manual
  • CairoContext
  • Le but de setScaledFont

CairoContext::setScaledFont

cairo_set_scaled_font

(PECL cairo >= 0.1.0)

CairoContext::setScaledFont -- cairo_set_scaled_font — Le but de setScaledFont

Description

Style orienté objet (méthode) :

public void CairoContext::setScaledFont ( string $scaledfont )

Style procédural :

void cairo_set_scaled_font ( CairoContext $context , CairoScaledFont $scaledfont )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

scaledfont

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setSource

  • « CairoContext::setScaledFont
  • CairoContext::setSourceRGB »
  • PHP Manual
  • CairoContext
  • Le but de setSource

CairoContext::setSource

cairo_set_source

(PECL cairo >= 0.1.0)

CairoContext::setSource -- cairo_set_source — Le but de setSource

Description

Style orienté objet (méthode) :

public void CairoContext::setSource ( string $pattern )

Style procédural :

void cairo_set_source ( CairoContext $context , CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

pattern

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setSourceRGB

  • « CairoContext::setSource
  • CairoContext::setSourceRGBA »
  • PHP Manual
  • CairoContext
  • Le but de setSourceRGB

CairoContext::setSourceRGB

cairo_set_source

(PECL cairo >= 0.1.0)

CairoContext::setSourceRGB -- cairo_set_source — Le but de setSourceRGB

Description

Style orienté objet (méthode) :

public void CairoContext::setSourceRGB ( string $red , string $green , string $blue )

Style procédural :

void cairo_set_source ( CairoContext $context , CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

pattern

red

green

blue

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setSourceRGBA

  • « CairoContext::setSourceRGB
  • CairoContext::setSourceSurface »
  • PHP Manual
  • CairoContext
  • Le but de setSourceRGBA

CairoContext::setSourceRGBA

cairo_set_source

(PECL cairo >= 0.1.0)

CairoContext::setSourceRGBA -- cairo_set_source — Le but de setSourceRGBA

Description

Style orienté objet (méthode) :

public void CairoContext::setSourceRGBA ( string $red , string $green , string $blue , string $alpha )

Style procédural :

void cairo_set_source ( CairoContext $context , CairoPattern $pattern )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

pattern

red

green

blue

alpha

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setSourceSurface

  • « CairoContext::setSourceRGBA
  • CairoContext::setTolerance »
  • PHP Manual
  • CairoContext
  • Le but de setSourceSurface

CairoContext::setSourceSurface

cairo_set_source_surface

(PECL cairo >= 0.1.0)

CairoContext::setSourceSurface -- cairo_set_source_surface — Le but de setSourceSurface

Description

Style orienté objet (méthode) :

public void CairoContext::setSourceSurface ( string $surface [, string $x [, string $y ]] )

Style procédural :

void cairo_set_source_surface ( CairoContext $context , CairoSurface $surface [, string $x [, string $y ]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

surface

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de setTolerance

  • « CairoContext::setSourceSurface
  • CairoContext::showPage »
  • PHP Manual
  • CairoContext
  • Le but de setTolerance

CairoContext::setTolerance

cairo_set_tolerance

(PECL cairo >= 0.1.0)

CairoContext::setTolerance -- cairo_set_tolerance — Le but de setTolerance

Description

Style orienté objet (méthode) :

public void CairoContext::setTolerance ( string $tolerance )

Style procédural :

void cairo_set_tolerance ( CairoContext $context , string $tolerance )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

tolerance

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de showPage

  • « CairoContext::setTolerance
  • CairoContext::showText »
  • PHP Manual
  • CairoContext
  • Le but de showPage

CairoContext::showPage

cairo_show_page

(PECL cairo >= 0.1.0)

CairoContext::showPage -- cairo_show_page — Le but de showPage

Description

Style orienté objet (méthode) :

public void CairoContext::showPage ( void )

Style procédural :

void cairo_show_page ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de showText

  • « CairoContext::showPage
  • CairoContext::status »
  • PHP Manual
  • CairoContext
  • Le but de showText

CairoContext::showText

cairo_show_text

(PECL cairo >= 0.1.0)

CairoContext::showText -- cairo_show_text — Le but de showText

Description

Style orienté objet (méthode) :

public void CairoContext::showText ( string $text )

Style procédural :

void cairo_show_text ( CairoContext $context , string $text )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

text

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de status

  • « CairoContext::showText
  • CairoContext::stroke »
  • PHP Manual
  • CairoContext
  • Le but de status

CairoContext::status

cairo_status

(PECL cairo >= 0.1.0)

CairoContext::status -- cairo_status — Le but de status

Description

Style orienté objet (méthode) :

public int CairoContext::status ( void )

Style procédural :

int cairo_status ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de stroke

  • « CairoContext::status
  • CairoContext::strokeExtents »
  • PHP Manual
  • CairoContext
  • Le but de stroke

CairoContext::stroke

cairo_stroke

(PECL cairo >= 0.1.0)

CairoContext::stroke -- cairo_stroke — Le but de stroke

Description

Style orienté objet (méthode) :

public void CairoContext::stroke ( void )

Style procédural :

void cairo_stroke ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de strokeExtents

  • « CairoContext::stroke
  • CairoContext::strokePreserve »
  • PHP Manual
  • CairoContext
  • Le but de strokeExtents

CairoContext::strokeExtents

cairo_stroke_extents

(PECL cairo >= 0.1.0)

CairoContext::strokeExtents -- cairo_stroke_extents — Le but de strokeExtents

Description

Style orienté objet (méthode) :

public array CairoContext::strokeExtents ( void )

Style procédural :

array cairo_stroke_extents ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de strokePreserve

  • « CairoContext::strokeExtents
  • CairoContext::textExtents »
  • PHP Manual
  • CairoContext
  • Le but de strokePreserve

CairoContext::strokePreserve

cairo_stroke_preserve

(PECL cairo >= 0.1.0)

CairoContext::strokePreserve -- cairo_stroke_preserve — Le but de strokePreserve

Description

Style orienté objet (méthode) :

public void CairoContext::strokePreserve ( void )

Style procédural :

void cairo_stroke_preserve ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de textExtents

  • « CairoContext::strokePreserve
  • CairoContext::textPath »
  • PHP Manual
  • CairoContext
  • Le but de textExtents

CairoContext::textExtents

cairo_text_extents

(PECL cairo >= 0.1.0)

CairoContext::textExtents -- cairo_text_extents — Le but de textExtents

Description

Style orienté objet (méthode) :

public array CairoContext::textExtents ( string $text )

Style procédural :

array cairo_text_extents ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

text

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de textPath

  • « CairoContext::textExtents
  • CairoContext::transform »
  • PHP Manual
  • CairoContext
  • Le but de textPath

CairoContext::textPath

cairo_text_path

(PECL cairo >= 0.1.0)

CairoContext::textPath -- cairo_text_path — Le but de textPath

Description

Style orienté objet

public void CairoContext::textPath ( string $string )

Style procédural

void cairo_text_path ( CairoContext $context , string $text )

Ajoute les chemins fermés pour le texte dans le chemin courant. Le chemin généré, si rempli, a un effet similaire à CairoContext::showText().

La conversion et le positionnement de texte sont effectués de manière similaire à CairoContext::showText().

Comme CairoContext::showText(), après cet appel le point courant est déplacé vers l'origine du prochain glyph. Ceci permet le chainage des appels à CairoContext::showText() sans avoir à affecter le point courant entre les appels.

Note: La méthode CairoContext::textPath() fait parti de ce que les concepteurs de cairo appelent l'API de texte "toy". Cela convient aux démos et aux programmes simples, mais n'est pas adéquat pour les applications plus sérieuses ou complexes. Voyez CairoContext::glyphPath() pour l'API "réelle" de chemin de texte avec cairo.

Liste de paramètres

context

text

Description...

string

Description...

Valeurs de retour

Description...

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de transform

  • « CairoContext::textPath
  • CairoContext::translate »
  • PHP Manual
  • CairoContext
  • Le but de transform

CairoContext::transform

cairo_transform

(PECL cairo >= 0.1.0)

CairoContext::transform -- cairo_transform — Le but de transform

Description

Style orienté objet (méthode) :

public void CairoContext::transform ( string $matrix )

Style procédural :

void cairo_transform ( CairoContext $context , CairoMatrix $matrix )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

matrix

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de translate

  • « CairoContext::transform
  • CairoContext::userToDevice »
  • PHP Manual
  • CairoContext
  • Le but de translate

CairoContext::translate

cairo_translate

(PECL cairo >= 0.1.0)

CairoContext::translate -- cairo_translate — Le but de translate

Description

Style orienté objet (méthode) :

public void CairoContext::translate ( string $x , string $y )

Style procédural :

void cairo_translate ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de userToDevice

  • « CairoContext::translate
  • CairoContext::userToDeviceDistance »
  • PHP Manual
  • CairoContext
  • Le but de userToDevice

CairoContext::userToDevice

cairo_user_to_device

(PECL cairo >= 0.1.0)

CairoContext::userToDevice -- cairo_user_to_device — Le but de userToDevice

Description

Style orienté objet (méthode) :

public array CairoContext::userToDevice ( string $x , string $y )

Style procédural :

array cairo_user_to_device ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de userToDeviceDistance

  • « CairoContext::userToDevice
  • CairoException »
  • PHP Manual
  • CairoContext
  • Le but de userToDeviceDistance

CairoContext::userToDeviceDistance

cairo_user_to_device_distance

(PECL cairo >= 0.1.0)

CairoContext::userToDeviceDistance -- cairo_user_to_device_distance — Le but de userToDeviceDistance

Description

Style orienté objet (méthode) :

public array CairoContext::userToDeviceDistance ( string $x , string $y )

Style procédural :

array cairo_user_to_device_distance ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


La classe CairoException

(PECL cairo >= 0.1.0)

Introduction

La classe Exception, utilisée par les méthodes et fonctions Cairo pour lancer des exceptions.

Synopsis de la classe

CairoException extends Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe CairoStatus

(No version information available, might only be in Git)

Introduction

CairoStatus est utilisée pour indiquer les erreurs survenant lors de l'utilisation de Cairo. Dans la plupart des cas, ce type d'objet est retourné directement par les fonctions, mais lors de l'utilisation de CairoContext, la dernière erreur, si elle existe, est stockée dans l'objet et peut être retrouvée avec la méthode CairoContext::status() ou la fonction cairo_status(). De nouvelles entrées peuvent être ajoutées dans de futures versions.

Utilisez la méthode Cairo::statusToString() ou la fonction cairo_status_to_string() pour récupérer une représentation humainement lisible d'un message d'erreur.

Synopsis de la classe

CairoStatus {
/* Constantes */
const integer SUCCESS = 0 ;
const integer NO_MEMORY = 1 ;
const integer INVALID_RESTORE = 2 ;
const integer INVALID_POP_GROUP = 3 ;
const integer NO_CURRENT_POINT = 4 ;
const integer INVALID_MATRIX = 5 ;
const integer INVALID_STATUS = 6 ;
const integer NULL_POINTER = 7 ;
const integer INVALID_STRING = 8 ;
const integer INVALID_PATH_DATA = 9 ;
const integer READ_ERROR = 10 ;
const integer WRITE_ERROR = 11 ;
const integer SURFACE_FINISHED = 12 ;
const integer SURFACE_TYPE_MISMATCH = 13 ;
const integer PATTERN_TYPE_MISMATCH = 14 ;
const integer INVALID_CONTENT = 15 ;
const integer INVALID_FORMAT = 16 ;
const integer INVALID_VISUAL = 17 ;
const integer FILE_NOT_FOUND = 18 ;
const integer INVALID_DASH = 19 ;
const integer INVALID_DSC_COMMENT = 20 ;
const integer INVALID_INDEX = 21 ;
const integer CLIP_NOT_REPRESENTABLE = 22 ;
const integer TEMP_FILE_ERROR = 23 ;
const integer INVALID_STRIDE = 24 ;
}

Constantes pré-définies

CairoStatus::SUCCESS

Aucune erreur n'est survenue.

CairoStatus::NO_MEMORY

Dépassement de la mémoire.

CairoStatus::INVALID_RESTORE

cairo_restore() appelé sans correspondance avec cairo_save().

CairoStatus::INVALID_POP_GROUP

Aucun groupe sauvegardé à restaurer.

CairoStatus::NO_CURRENT_POINT

Aucun point actuellement défini.

CairoStatus::INVALID_MATRIX

Matrice invalide (non inversible).

CairoStatus::INVALID_STATUS

Valeur invalide pour un CairoStatus d'entrée.

CairoStatus::NULL_POINTER

Pointeur nul.

CairoStatus::INVALID_STRING

Chaîne d'entrée non UTF-8.

CairoStatus::INVALID_PATH_DATA

Chemin d'entrée invalide.

CairoStatus::READ_ERROR

Erreur lors de la lecture depuis le flux d'entrée.

CairoStatus::WRITE_ERROR

Erreur lors de l'écriture du flux de sortie.

CairoStatus::SURFACE_FINISHED

Surface cible terminée.

CairoStatus::SURFACE_TYPE_MISMATCH

Le type de surface n'est pas approprié pour l'opération.

CairoStatus::PATTERN_TYPE_MISMATCH

Le type de masque n'est pas approprié pour l'opération.

CairoStatus::INVALID_CONTENT

Valeur invalide pour un CairoContent d'entrée.

CairoStatus::INVALID_FORMAT

Valeur invalide pour un CairoFormat d'entrée.

CairoStatus::INVALID_VISUAL

Valeur invalide pour un visuel d'entrée.

CairoStatus::FILE_NOT_FOUND

Fichier non trouvé.

CairoStatus::INVALID_DASH

Valeur invalide pour la configuration du dash

CairoStatus::INVALID_DSC_COMMENT

Valeur invalide pour un commentaire DSC.

CairoStatus::INVALID_INDEX

Index invalide passé.

CairoStatus::CLIP_NOT_REPRESENTABLE

Région du clip non représentable dans le format désiré.

CairoStatus::TEMP_FILE_ERROR

Erreur lors de la création ou l'écriture du fichier temporaire.

CairoStatus::INVALID_STRIDE

Valeur invalide pour CairoStride.


La classe CairoSurface

(PECL cairo >= 0.1.0)

Introduction

C'est la classe de base pour tous les autres types de Surface. CairoSurface est un type abstrait représentant toutes les cibles différentes utilisées par Cairo pour y effectuer un rendu. Le rendu actuel est effectué en utilisant un objet CairoContext.

Synopsis de la classe

CairoSurface {
/* Méthodes */
public __construct ( void )
public void copyPage ( void )
public void createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void finish ( void )
public void flush ( void )
public int getContent ( void )
public array getDeviceOffset ( void )
public void getFontOptions ( void )
public int getType ( void )
public void markDirty ( void )
public void markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void setDeviceOffset ( string $x , string $y )
public void setFallbackResolution ( string $x , string $y )
public void showPage ( void )
public int status ( void )
public void writeToPng ( string $file )
}

Sommaire

  • CairoSurface::__construct — Le but de __construct
  • CairoSurface::copyPage — Le but de copyPage
  • CairoSurface::createSimilar — Le but de createSimilar
  • CairoSurface::finish — Le but de finish
  • CairoSurface::flush — Le but de flush
  • CairoSurface::getContent — Le but de getContent
  • CairoSurface::getDeviceOffset — Le but de getDeviceOffset
  • CairoSurface::getFontOptions — Le but de getFontOptions
  • CairoSurface::getType — Le but de getType
  • CairoSurface::markDirty — Le but de markDirty
  • CairoSurface::markDirtyRectangle — Le but de markDirtyRectangle
  • CairoSurface::setDeviceOffset — Le but de setDeviceOffset
  • CairoSurface::setFallbackResolution — Le but de setFallbackResolution
  • CairoSurface::showPage — Le but de showPage
  • CairoSurface::status — Le but de status
  • CairoSurface::writeToPng — Le but de writeToPng


Le but de __construct

  • « CairoSurface
  • CairoSurface::copyPage »
  • PHP Manual
  • CairoSurface
  • Le but de __construct

CairoSurface::__construct

(PECL cairo >= 0.1.0)

CairoSurface::__construct — Le but de __construct

Description

public CairoSurface::__construct ( void )

CairoSurface est un type abstrait, et, en tant que tel, ne doit pas être instancié dans vos scripts PHP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur de retour.

Notes

Note:

Si vous utilisez une version de PHP antérieure à 5.3, vous devez détruire l'objet CairoContext associé avec un objet CairoSurface après avoir détruit l'objet CairoSurface. Sinon, vous aurez une fuite mémoire.

Voir aussi

  • CairoImageSurface::__construct() - Crée un nouvel objet CairoImageSurface


Le but de copyPage

  • « CairoSurface::__construct
  • CairoSurface::createSimilar »
  • PHP Manual
  • CairoSurface
  • Le but de copyPage

CairoSurface::copyPage

cairo_copy_page

(PECL cairo >= 0.1.0)

CairoSurface::copyPage -- cairo_copy_page — Le but de copyPage

Description

Style orienté objet (méthode) :

public void CairoSurface::copyPage ( void )

Style procédural :

void cairo_copy_page ( CairoContext $context )

Émet la page courante pour les moteurs supportant les pages multiples, sans pour autant l'effacer et ainsi, le contenu de la page courante sera conservé pour la page suivante. Utilisez CairoSurface::showPage() si vous voulez récupérer une page vide après son émission.

Liste de paramètres

context

Un objet CairoContext

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de createSimilar

  • « CairoSurface::copyPage
  • CairoSurface::finish »
  • PHP Manual
  • CairoSurface
  • Le but de createSimilar

CairoSurface::createSimilar

(PECL cairo >= 0.1.0)

CairoSurface::createSimilar — Le but de createSimilar

Description

public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )

Crée une nouvelle surface le plus compatible possible avec la surface existante. Par exemple, la nouvelle surface aura la même résolution mais aussi la même police de caractères. Générallement, la nouvelle surface utilisera également le même moteur, sauf si d'autres raisons l'en empêche. Le type de la surface retourné pourra être examiné avec la méthode CairoSurface::getType(). Initialement, le contenu de la surface sera positionné à 0 (transparent si le contenu a de la transparence, noir sinon).

Liste de paramètres

other

Une surface existante utilisée pour sélectionner le moteur de la nouvelle surface

content

Le contenu de la nouvelle surface. Voir la classe CairoContent pour les valeurs possibles.

width

Largeur de la nouvelle surface (en utilisant l'unité d'espacement définie).

height

Hauteur de la nouvelle surface (en utilisant l'unité d'espacement définie).

Valeurs de retour

Un nouvel objet CairoSurface

Exemples

Exemple #1 Exemple avec CairoSurface::createSimilar()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • CairoContent()


Le but de finish

  • « CairoSurface::createSimilar
  • CairoSurface::flush »
  • PHP Manual
  • CairoSurface
  • Le but de finish

CairoSurface::finish

(PECL cairo >= 0.1.0)

CairoSurface::finish — Le but de finish

Description

public void CairoSurface::finish ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::finish()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de flush

  • « CairoSurface::finish
  • CairoSurface::getContent »
  • PHP Manual
  • CairoSurface
  • Le but de flush

CairoSurface::flush

(PECL cairo >= 0.1.0)

CairoSurface::flush — Le but de flush

Description

public void CairoSurface::flush ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::flush()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getContent

  • « CairoSurface::flush
  • CairoSurface::getDeviceOffset »
  • PHP Manual
  • CairoSurface
  • Le but de getContent

CairoSurface::getContent

(PECL cairo >= 0.1.0)

CairoSurface::getContent — Le but de getContent

Description

public int CairoSurface::getContent ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::getContent()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getDeviceOffset

  • « CairoSurface::getContent
  • CairoSurface::getFontOptions »
  • PHP Manual
  • CairoSurface
  • Le but de getDeviceOffset

CairoSurface::getDeviceOffset

(PECL cairo >= 0.1.0)

CairoSurface::getDeviceOffset — Le but de getDeviceOffset

Description

public array CairoSurface::getDeviceOffset ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::getDeviceOffset()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getFontOptions

  • « CairoSurface::getDeviceOffset
  • CairoSurface::getType »
  • PHP Manual
  • CairoSurface
  • Le but de getFontOptions

CairoSurface::getFontOptions

cairo_get_font_options

(PECL cairo >= 0.1.0)

CairoSurface::getFontOptions -- cairo_get_font_options — Le but de getFontOptions

Description

Style orienté objet (méthode) :

public void CairoSurface::getFontOptions ( void )

Style procédural :

void cairo_get_font_options ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getType

  • « CairoSurface::getFontOptions
  • CairoSurface::markDirty »
  • PHP Manual
  • CairoSurface
  • Le but de getType

CairoSurface::getType

(PECL cairo >= 0.1.0)

CairoSurface::getType — Le but de getType

Description

public int CairoSurface::getType ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::getType()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de markDirty

  • « CairoSurface::getType
  • CairoSurface::markDirtyRectangle »
  • PHP Manual
  • CairoSurface
  • Le but de markDirty

CairoSurface::markDirty

(PECL cairo >= 0.1.0)

CairoSurface::markDirty — Le but de markDirty

Description

public void CairoSurface::markDirty ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::markDirty()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de markDirtyRectangle

  • « CairoSurface::markDirty
  • CairoSurface::setDeviceOffset »
  • PHP Manual
  • CairoSurface
  • Le but de markDirtyRectangle

CairoSurface::markDirtyRectangle

(PECL cairo >= 0.1.0)

CairoSurface::markDirtyRectangle — Le but de markDirtyRectangle

Description

public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

y

width

height

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoSurface::markDirtyRectangle()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de setDeviceOffset

  • « CairoSurface::markDirtyRectangle
  • CairoSurface::setFallbackResolution »
  • PHP Manual
  • CairoSurface
  • Le but de setDeviceOffset

CairoSurface::setDeviceOffset

(PECL cairo >= 0.1.0)

CairoSurface::setDeviceOffset — Le but de setDeviceOffset

Description

public void CairoSurface::setDeviceOffset ( string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

y

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::setDeviceOffset()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de setFallbackResolution

  • « CairoSurface::setDeviceOffset
  • CairoSurface::showPage »
  • PHP Manual
  • CairoSurface
  • Le but de setFallbackResolution

CairoSurface::setFallbackResolution

(PECL cairo >= 0.1.0)

CairoSurface::setFallbackResolution — Le but de setFallbackResolution

Description

public void CairoSurface::setFallbackResolution ( string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

y

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::setFallbackResolution()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de showPage

  • « CairoSurface::setFallbackResolution
  • CairoSurface::status »
  • PHP Manual
  • CairoSurface
  • Le but de showPage

CairoSurface::showPage

cairo_show_page

(PECL cairo >= 0.1.0)

CairoSurface::showPage -- cairo_show_page — Le but de showPage

Description

Style orienté objet (méthode) :

public void CairoSurface::showPage ( void )

Style procédural :

void cairo_show_page ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de status

  • « CairoSurface::showPage
  • CairoSurface::writeToPng »
  • PHP Manual
  • CairoSurface
  • Le but de status

CairoSurface::status

cairo_status

(PECL cairo >= 0.1.0)

CairoSurface::status -- cairo_status — Le but de status

Description

Style orienté objet (méthode) :

public int CairoSurface::status ( void )

Style procédural :

int cairo_status ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de writeToPng

  • « CairoSurface::status
  • CairoSvgSurface »
  • PHP Manual
  • CairoSurface
  • Le but de writeToPng

CairoSurface::writeToPng

(PECL cairo >= 0.1.0)

CairoSurface::writeToPng — Le but de writeToPng

Description

public void CairoSurface::writeToPng ( string $file )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurface::writeToPng()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe CairoSvgSurface

(PECL cairo >= 0.1.0)

Introduction

Classe spécifique aux surfaces Svg.

Synopsis de la classe

CairoSvgSurface extends CairoSurface {
/* Méthodes */
public __construct ( string $file , float $width , float $height )
public static array getVersions ( void )
public void restrictToVersion ( string $version )
public static string versionToString ( int $version )
/* Méthodes héritées */
public CairoSurface::__construct ( void )
public void CairoSurface::copyPage ( void )
public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void CairoSurface::finish ( void )
public void CairoSurface::flush ( void )
public int CairoSurface::getContent ( void )
public array CairoSurface::getDeviceOffset ( void )
public void CairoSurface::getFontOptions ( void )
public int CairoSurface::getType ( void )
public void CairoSurface::markDirty ( void )
public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void CairoSurface::setDeviceOffset ( string $x , string $y )
public void CairoSurface::setFallbackResolution ( string $x , string $y )
public void CairoSurface::showPage ( void )
public int CairoSurface::status ( void )
public void CairoSurface::writeToPng ( string $file )
}

Sommaire

  • CairoSvgSurface::__construct — Le but de __construct
  • CairoSvgSurface::getVersions — Récupère la liste des versions SVG supportées
  • CairoSvgSurface::restrictToVersion — Le but de restrictToVersion
  • CairoSvgSurface::versionToString — Le but de versionToString


Le but de __construct

  • « CairoSvgSurface
  • CairoSvgSurface::getVersions »
  • PHP Manual
  • CairoSvgSurface
  • Le but de __construct

CairoSvgSurface::__construct

(PECL cairo >= 0.1.0)

CairoSvgSurface::__construct — Le but de __construct

Description

public CairoSvgSurface::__construct ( string $file , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

width

height

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSvgSurface::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Récupère la liste des versions SVG supportées

  • « CairoSvgSurface::__construct
  • CairoSvgSurface::restrictToVersion »
  • PHP Manual
  • CairoSvgSurface
  • Récupère la liste des versions SVG supportées

CairoSvgSurface::getVersions

cairo_svg_surface_get_versions

(PECL cairo >= 0.1.0)

CairoSvgSurface::getVersions -- cairo_svg_surface_get_versions — Récupère la liste des versions SVG supportées

Description

Style orienté objet (méthode) :

public static array CairoSvgSurface::getVersions ( void )

Style procédural :

array cairo_svg_get_versions ( void )

Retourne un tableau indexé numériquement contenant le contenu de la constante CairoSvgVersion. Afin de récupérer la valeur de chaque élément, utilisez la méthode CairoSvgSurface::versionToString().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau indexé numériquement de valeurs entières.

Exemples

Exemple #1 Exemple avec CairoSvgSurface::getVersions()

<?php
/* Récupère la liste des versions */
$versions = CairoSvgSurface::getVersions();
var_dump($versions);

/* Affiche le nom de chaque version */
foreach($versions as $id) {
    echo CairoSvgSurface::versionToString($id), PHP_EOL;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  int(0)
  [1]=>
  int(1)
}
SVG 1.1
SVG 1.2

Exemple #2 Style procédural

<?php
/* Récupère la liste des versions */
$versions = cairo_svg_surface_get_versions();
var_dump($versions);

/* Affiche le nom de chaque version */
foreach($versions as $id) {
    echo cairo_svg_surface_version_to_string($id), PHP_EOL;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  int(0)
  [1]=>
  int(1)
}
SVG 1.1
SVG 1.2

Voir aussi

  • CairoSvgSurface::versionToString() - Le but de versionToString


Le but de restrictToVersion

  • « CairoSvgSurface::getVersions
  • CairoSvgSurface::versionToString »
  • PHP Manual
  • CairoSvgSurface
  • Le but de restrictToVersion

CairoSvgSurface::restrictToVersion

(PECL cairo >= 0.1.0)

CairoSvgSurface::restrictToVersion — Le but de restrictToVersion

Description

public void CairoSvgSurface::restrictToVersion ( string $version )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

version

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSvgSurface::restrictToVersion()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de versionToString

  • « CairoSvgSurface::restrictToVersion
  • CairoImageSurface »
  • PHP Manual
  • CairoSvgSurface
  • Le but de versionToString

CairoSvgSurface::versionToString

(PECL cairo >= 0.1.0)

CairoSvgSurface::versionToString — Le but de versionToString

Description

public static string CairoSvgSurface::versionToString ( int $version )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

version

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoSvgSurface::versionToString()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe CairoImageSurface

(PECL cairo >= 0.1.0)

Introduction

CairoImageSurface fournit la possibilité de transmettre à la mémoire les buffers alloués soit par Cairo, soit par le code appelant. Les formats d'image supportés sont ceux définis dans la classe CairoFormat.

Synopsis de la classe

CairoImageSurface extends CairoSurface {
/* Méthodes */
public __construct ( int $format , int $width , int $height )
public static void createForData ( string $data , int $format , int $width , int $height [, int $stride = -1 ] )
public static CairoImageSurface createFromPng ( string $file )
public string getData ( void )
public int getFormat ( void )
public int getHeight ( void )
public int getStride ( void )
public int getWidth ( void )
/* Méthodes héritées */
public CairoSurface::__construct ( void )
public void CairoSurface::copyPage ( void )
public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void CairoSurface::finish ( void )
public void CairoSurface::flush ( void )
public int CairoSurface::getContent ( void )
public array CairoSurface::getDeviceOffset ( void )
public void CairoSurface::getFontOptions ( void )
public int CairoSurface::getType ( void )
public void CairoSurface::markDirty ( void )
public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void CairoSurface::setDeviceOffset ( string $x , string $y )
public void CairoSurface::setFallbackResolution ( string $x , string $y )
public void CairoSurface::showPage ( void )
public int CairoSurface::status ( void )
public void CairoSurface::writeToPng ( string $file )
}

Sommaire

  • CairoImageSurface::__construct — Crée un nouvel objet CairoImageSurface
  • CairoImageSurface::createForData — Le but de createForData
  • CairoImageSurface::createFromPng — Crée un nouvel CairoImageSurface à partir d'une image PNG
  • CairoImageSurface::getData — Récupère les données de l'image, sous la forme d'une chaîne de caractères
  • CairoImageSurface::getFormat — Récupère le format de l'image
  • CairoImageSurface::getHeight — Récupère la hauteur d'un CairoImageSurface
  • CairoImageSurface::getStride — Le but de getStride
  • CairoImageSurface::getWidth — Récupère la largeur d'un CairoImageSurface


Crée un nouvel objet CairoImageSurface

  • « CairoImageSurface
  • CairoImageSurface::createForData »
  • PHP Manual
  • CairoImageSurface
  • Crée un nouvel objet CairoImageSurface

CairoImageSurface::__construct

(PECL cairo >= 0.1.0)

CairoImageSurface::__construct — Crée un nouvel objet CairoImageSurface

Description

public CairoImageSurface::__construct ( int $format , int $width , int $height )

Crée un nouvel objet CairoImageSuface de type format.

Liste de paramètres

format

Peut être un format parmi ceux définis par CairoFormat

width

La largeur de la surface de l'image

height

La hauteur de la surface de l'image

Valeurs de retour

Un nouvel objet CairoImageSurface

Exemples

Exemple #1 Exemple avec CairoImageSurface::__construct()

<?php

// Crée une image au format ARGB32 de dimension 50x50
$surface = new CairoImageSurface(CairoFormat::ARGB32, 50,50);

?>

Voir aussi

  • CairoContext::__construct() - Crée un nouvel objet CairoContext


Le but de createForData

  • « CairoImageSurface::__construct
  • CairoImageSurface::createFromPng »
  • PHP Manual
  • CairoImageSurface
  • Le but de createForData

CairoImageSurface::createForData

(PECL cairo >= 0.1.0)

CairoImageSurface::createForData — Le but de createForData

Description

public static void CairoImageSurface::createForData ( string $data , int $format , int $width , int $height [, int $stride = -1 ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

data

format

width

height

stride

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoImageSurface::createForData()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Crée un nouvel CairoImageSurface à partir d'une image PNG

  • « CairoImageSurface::createForData
  • CairoImageSurface::getData »
  • PHP Manual
  • CairoImageSurface
  • Crée un nouvel CairoImageSurface à partir d'une image PNG

CairoImageSurface::createFromPng

(PECL cairo >= 0.1.0)

CairoImageSurface::createFromPng — Crée un nouvel CairoImageSurface à partir d'une image PNG

Description

public static CairoImageSurface CairoImageSurface::createFromPng ( string $file )

Crée un nouvel CairoImageSurface à partir d'une image PNG.

Cette méthode doit être appelée de façon statique.

Liste de paramètres

file

Chemin vers le fichier image PNG

Valeurs de retour

Un objet CairoImageSurface.

Exemples

Exemple #1 Exemple avec CairoImageSurface::createFromPng()

<?php

$surface = CairoImageSurface::createFromPng('/chemin/vers/fichier/image.png');

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • CairoImageSurface::__construct() - Crée un nouvel objet CairoImageSurface


Récupère les données de l'image, sous la forme d'une chaîne de caractères

  • « CairoImageSurface::createFromPng
  • CairoImageSurface::getFormat »
  • PHP Manual
  • CairoImageSurface
  • Récupère les données de l'image, sous la forme d'une chaîne de caractères

CairoImageSurface::getData

(PECL cairo >= 0.1.0)

CairoImageSurface::getData — Récupère les données de l'image, sous la forme d'une chaîne de caractères

Description

public string CairoImageSurface::getData ( void )

Récupère les données de l'image pour une surface donnée, ou NULL si la surface n'est pas une surface de l'image valide, ou si CairoContext::finish() a été appelé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les données de l'image, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec CairoImageSurface::getData()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • CairoImageSurface::getStride() - Le but de getStride


Récupère le format de l'image

  • « CairoImageSurface::getData
  • CairoImageSurface::getHeight »
  • PHP Manual
  • CairoImageSurface
  • Récupère le format de l'image

CairoImageSurface::getFormat

(PECL cairo >= 0.1.0)

CairoImageSurface::getFormat — Récupère le format de l'image

Description

public int CairoImageSurface::getFormat ( void )

Récupère le format de l'image, suivant les formats définis par CairoFormat.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un format d'image, parmi ceux définis par CairoFormat.

Exemples

Exemple #1 Exemple avec CairoImageSurface::getFormat()

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

var_dump($surface->getFormat()); // 0

$surface2 = new CairoImageSurface(CairoFormat::A8, 50, 50);

var_dump($surface2->getFormat()); // 2

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
int(2)

Voir aussi

  • CairoImageSurface::getHeight() - Récupère la hauteur d'un CairoImageSurface
  • CairoImageSurface::getWidth() - Récupère la largeur d'un CairoImageSurface


Récupère la hauteur d'un CairoImageSurface

  • « CairoImageSurface::getFormat
  • CairoImageSurface::getStride »
  • PHP Manual
  • CairoImageSurface
  • Récupère la hauteur d'un CairoImageSurface

CairoImageSurface::getHeight

(PECL cairo >= 0.1.0)

CairoImageSurface::getHeight — Récupère la hauteur d'un CairoImageSurface

Description

public int CairoImageSurface::getHeight ( void )

Récupère la hauteur d'un CairoImageSurface.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La hauteur d'un objet CairoImageSurface.

Exemples

Exemple #1 Exemple avec CairoImageSurface::getHeight()

<?php
// Création d'une nouvelle surface pour l'image
$surface = new CairoImageSurface(CairoFormat::ARGB32, 80, 50);

// Récupère la hauteur
var_dump($surface->getHeight());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(50)

Voir aussi

  • CairoImageSurface::getWidth() - Récupère la largeur d'un CairoImageSurface


Le but de getStride

  • « CairoImageSurface::getHeight
  • CairoImageSurface::getWidth »
  • PHP Manual
  • CairoImageSurface
  • Le but de getStride

CairoImageSurface::getStride

(PECL cairo >= 0.1.0)

CairoImageSurface::getStride — Le but de getStride

Description

public int CairoImageSurface::getStride ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoImageSurface::getStride()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Récupère la largeur d'un CairoImageSurface

  • « CairoImageSurface::getStride
  • CairoPdfSurface »
  • PHP Manual
  • CairoImageSurface
  • Récupère la largeur d'un CairoImageSurface

CairoImageSurface::getWidth

(PECL cairo >= 0.1.0)

CairoImageSurface::getWidth — Récupère la largeur d'un CairoImageSurface

Description

public int CairoImageSurface::getWidth ( void )

Récupère la largeur d'un CairoImageSurface.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la largeur d'un objet CairoImageSurface.

Exemples

Exemple #1 Exemple avec CairoImageSurface::getWidth()

<?php
// Création d'une nouvelle surface pour une image
$surface = new CairoImageSurface(CairoFormat::ARGB32, 80, 50);

// Récupère la largeur
var_dump($surface->getWidth());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(80)

Voir aussi

  • CairoImageSurface::getHeight() - Récupère la hauteur d'un CairoImageSurface


La classe CairoPdfSurface

(PECL cairo >= 0.1.0)

Introduction

Synopsis de la classe

CairoPdfSurface extends CairoSurface {
/* Méthodes */
public __construct ( string $file , float $width , float $height )
public void setSize ( string $width , string $height )
/* Méthodes héritées */
public CairoSurface::__construct ( void )
public void CairoSurface::copyPage ( void )
public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void CairoSurface::finish ( void )
public void CairoSurface::flush ( void )
public int CairoSurface::getContent ( void )
public array CairoSurface::getDeviceOffset ( void )
public void CairoSurface::getFontOptions ( void )
public int CairoSurface::getType ( void )
public void CairoSurface::markDirty ( void )
public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void CairoSurface::setDeviceOffset ( string $x , string $y )
public void CairoSurface::setFallbackResolution ( string $x , string $y )
public void CairoSurface::showPage ( void )
public int CairoSurface::status ( void )
public void CairoSurface::writeToPng ( string $file )
}

Sommaire

  • CairoPdfSurface::__construct — Le but de __construct
  • CairoPdfSurface::setSize — Le but de setSize


Le but de __construct

  • « CairoPdfSurface
  • CairoPdfSurface::setSize »
  • PHP Manual
  • CairoPdfSurface
  • Le but de __construct

CairoPdfSurface::__construct

(PECL cairo >= 0.1.0)

CairoPdfSurface::__construct — Le but de __construct

Description

public CairoPdfSurface::__construct ( string $file , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

width

height

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPdfSurface::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de setSize

  • « CairoPdfSurface::__construct
  • CairoPsSurface »
  • PHP Manual
  • CairoPdfSurface
  • Le but de setSize

CairoPdfSurface::setSize

(PECL cairo >= 0.1.0)

CairoPdfSurface::setSize — Le but de setSize

Description

public void CairoPdfSurface::setSize ( string $width , string $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

width

height

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPdfSurface::setSize()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe CairoPsSurface

(PECL cairo >= 0.1.0)

Introduction

Synopsis de la classe

CairoPsSurface extends CairoSurface {
/* Méthodes */
public __construct ( string $file , float $width , float $height )
public void dscBeginPageSetup ( void )
public void dscBeginSetup ( void )
public void dscComment ( string $comment )
public bool getEps ( void )
public static array getLevels ( void )
public static string levelToString ( int $level )
public void restrictToLevel ( string $level )
public void setEps ( string $level )
public void setSize ( string $width , string $height )
/* Méthodes héritées */
public CairoSurface::__construct ( void )
public void CairoSurface::copyPage ( void )
public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void CairoSurface::finish ( void )
public void CairoSurface::flush ( void )
public int CairoSurface::getContent ( void )
public array CairoSurface::getDeviceOffset ( void )
public void CairoSurface::getFontOptions ( void )
public int CairoSurface::getType ( void )
public void CairoSurface::markDirty ( void )
public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void CairoSurface::setDeviceOffset ( string $x , string $y )
public void CairoSurface::setFallbackResolution ( string $x , string $y )
public void CairoSurface::showPage ( void )
public int CairoSurface::status ( void )
public void CairoSurface::writeToPng ( string $file )
}

Sommaire

  • CairoPsSurface::__construct — Le but de __construct
  • CairoPsSurface::dscBeginPageSetup — Le but de dscBeginPageSetup
  • CairoPsSurface::dscBeginSetup — Le but de dscBeginSetup
  • CairoPsSurface::dscComment — Le but de dscComment
  • CairoPsSurface::getEps — Le but de getEps
  • CairoPsSurface::getLevels — Le but de getLevels
  • CairoPsSurface::levelToString — Le but de levelToString
  • CairoPsSurface::restrictToLevel — Le but de restrictToLevel
  • CairoPsSurface::setEps — Le but de setEps
  • CairoPsSurface::setSize — Le but de setSize


Le but de __construct

  • « CairoPsSurface
  • CairoPsSurface::dscBeginPageSetup »
  • PHP Manual
  • CairoPsSurface
  • Le but de __construct

CairoPsSurface::__construct

(PECL cairo >= 0.1.0)

CairoPsSurface::__construct — Le but de __construct

Description

public CairoPsSurface::__construct ( string $file , float $width , float $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

width

height

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoPsSurface::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de dscBeginPageSetup

  • « CairoPsSurface::__construct
  • CairoPsSurface::dscBeginSetup »
  • PHP Manual
  • CairoPsSurface
  • Le but de dscBeginPageSetup

CairoPsSurface::dscBeginPageSetup

(PECL cairo >= 0.1.0)

CairoPsSurface::dscBeginPageSetup — Le but de dscBeginPageSetup

Description

public void CairoPsSurface::dscBeginPageSetup ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoPsSurface::dscBeginPageSetup()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de dscBeginSetup

  • « CairoPsSurface::dscBeginPageSetup
  • CairoPsSurface::dscComment »
  • PHP Manual
  • CairoPsSurface
  • Le but de dscBeginSetup

CairoPsSurface::dscBeginSetup

(PECL cairo >= 0.1.0)

CairoPsSurface::dscBeginSetup — Le but de dscBeginSetup

Description

public void CairoPsSurface::dscBeginSetup ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPsSurface::dscBeginSetup()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de dscComment

  • « CairoPsSurface::dscBeginSetup
  • CairoPsSurface::getEps »
  • PHP Manual
  • CairoPsSurface
  • Le but de dscComment

CairoPsSurface::dscComment

(PECL cairo >= 0.1.0)

CairoPsSurface::dscComment — Le but de dscComment

Description

public void CairoPsSurface::dscComment ( string $comment )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

comment

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoPsSurface::dscComment()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getEps

  • « CairoPsSurface::dscComment
  • CairoPsSurface::getLevels »
  • PHP Manual
  • CairoPsSurface
  • Le but de getEps

CairoPsSurface::getEps

(PECL cairo >= 0.1.0)

CairoPsSurface::getEps — Le but de getEps

Description

public bool CairoPsSurface::getEps ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPsSurface::getEps()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getLevels

  • « CairoPsSurface::getEps
  • CairoPsSurface::levelToString »
  • PHP Manual
  • CairoPsSurface
  • Le but de getLevels

CairoPsSurface::getLevels

(PECL cairo >= 0.1.0)

CairoPsSurface::getLevels — Le but de getLevels

Description

public static array CairoPsSurface::getLevels ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPsSurface::getLevels()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de levelToString

  • « CairoPsSurface::getLevels
  • CairoPsSurface::restrictToLevel »
  • PHP Manual
  • CairoPsSurface
  • Le but de levelToString

CairoPsSurface::levelToString

(PECL cairo >= 0.1.0)

CairoPsSurface::levelToString — Le but de levelToString

Description

public static string CairoPsSurface::levelToString ( int $level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

level

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPsSurface::levelToString()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de restrictToLevel

  • « CairoPsSurface::levelToString
  • CairoPsSurface::setEps »
  • PHP Manual
  • CairoPsSurface
  • Le but de restrictToLevel

CairoPsSurface::restrictToLevel

(PECL cairo >= 0.1.0)

CairoPsSurface::restrictToLevel — Le but de restrictToLevel

Description

public void CairoPsSurface::restrictToLevel ( string $level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

level

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPsSurface::restrictToLevel()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de setEps

  • « CairoPsSurface::restrictToLevel
  • CairoPsSurface::setSize »
  • PHP Manual
  • CairoPsSurface
  • Le but de setEps

CairoPsSurface::setEps

(PECL cairo >= 0.1.0)

CairoPsSurface::setEps — Le but de setEps

Description

public void CairoPsSurface::setEps ( string $level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

level

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoPsSurface::setEps()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de setSize

  • « CairoPsSurface::setEps
  • CairoSurfaceType »
  • PHP Manual
  • CairoPsSurface
  • Le but de setSize

CairoPsSurface::setSize

(PECL cairo >= 0.1.0)

CairoPsSurface::setSize — Le but de setSize

Description

public void CairoPsSurface::setSize ( string $width , string $height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

width

height

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoPsSurface::setSize()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe CairoSurfaceType

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

CairoSurfaceType {
/* Constantes */
const integer IMAGE = 0 ;
const integer PDF = 1 ;
const integer PS = 2 ;
const integer XLIB = 3 ;
const integer XCB = 4 ;
const integer GLITZ = 5 ;
const integer QUARTZ = 6 ;
const integer WIN32 = 7 ;
const integer BEOS = 8 ;
const integer DIRECTFB = 9 ;
const integer SVG = 10 ;
const integer OS2 = 11 ;
const integer WIN32_PRINTING = 12 ;
const integer QUARTZ_IMAGE = 13 ;
}

Constantes pré-définies

CairoSurfaceType::IMAGE

CairoSurfaceType::PDF

CairoSurfaceType::PS

CairoSurfaceType::XLIB

CairoSurfaceType::XCB

CairoSurfaceType::GLITZ

CairoSurfaceType::QUARTZ

CairoSurfaceType::WIN32

CairoSurfaceType::BEOS

CairoSurfaceType::DIRECTFB

CairoSurfaceType::SVG

CairoSurfaceType::OS2

CairoSurfaceType::WIN32_PRINTING

CairoSurfaceType::QUARTZ_IMAGE


La classe CairoFontFace

(PECL cairo >= 0.1.0)

Introduction

La classe abstraite CairoFontFace représente une police particulière d'une épaisseur particulière, avec une inclinaison et d'autres caractéristiques mais aucune transformation ni taille.

Note : Cette classe ne peut être instanciée directement, elle est créée par les méthodes CairoContext::getFontFace() ou cairo_scaled_font_get_font_face().

Synopsis de la classe

CairoFontFace {
/* Méthodes */
public __construct ( void )
public int getType ( void )
public int status ( void )
}

Sommaire

  • CairoFontFace::__construct — Crée un nouvel objet CairoFontFace
  • CairoFontFace::getType — Récupère le type de la police
  • CairoFontFace::status — Vérifie les erreurs CairoFontFace


Crée un nouvel objet CairoFontFace

  • « CairoFontFace
  • CairoFontFace::getType »
  • PHP Manual
  • CairoFontFace
  • Crée un nouvel objet CairoFontFace

CairoFontFace::__construct

(PECL cairo >= 0.1.0)

CairoFontFace::__construct — Crée un nouvel objet CairoFontFace

Description

public CairoFontFace::__construct ( void )

La classe CairoFontFace représente une police particulière, avec une hauteur, une inclinaison et d'autres caractéristiques particuliers, mais aucune transformation ou taille.

Note : Cette classe ne peut être instanciée directement. Elle sera crée par la méthode CairoContext::getFontFace() ou la méthode cairo_scaled_font_get_font_face()

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

CairoFontFace

Exemples

Exemple #1 Exemple avec CairoFontFace::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Class::Method()


Récupère le type de la police

  • « CairoFontFace::__construct
  • CairoFontFace::status »
  • PHP Manual
  • CairoFontFace
  • Récupère le type de la police

CairoFontFace::getType

(PECL cairo >= 0.1.0)

CairoFontFace::getType — Récupère le type de la police

Description

public int CairoFontFace::getType ( void )

Retourne le type de moteur utilisé pour créer la police. Reportez-vous aux constantes de la classe CairoFontType pour les types disponibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un type de police, qui peut être n'importe quelle constante de la classe CairoFontType.

Exemples

Exemple #1 Exemple avec CairoFontFace::getType()

<?php

// Crée la police
$fontface = new CairoToyFontFace('sans-serif');

// Récupère son type
var_dump($fontface->getType());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)

Voir aussi

  • Classname::Method()


Vérifie les erreurs CairoFontFace

  • « CairoFontFace::getType
  • CairoFontOptions »
  • PHP Manual
  • CairoFontFace
  • Vérifie les erreurs CairoFontFace

CairoFontFace::status

cairo_font_face_status

(PECL cairo >= 0.1.0)

CairoFontFace::status -- cairo_font_face_status — Vérifie les erreurs CairoFontFace

Description

Style orienté objet (méthode) :

public int CairoFontFace::status ( void )

Style procédural :

int cairo_font_face_status ( CairoFontFace $fontface )

Vérifie si une erreur est survenue sur cette police.

Liste de paramètres

fontface

Un objet CairoFontFace valide

Valeurs de retour

CAIRO_STATUS_SUCCESS ou une autre erreur comme CAIRO_STATUS_NO_MEMORY.

Exemples

Exemple #1 Style orienté objet

<?php

// Crée la police
$fontface = new CairoToyFontFace('sans-serif');

// Récupère son statut
var_dump($fontface->status()); // doit correspondre à la valeur de la constante CAIRO_STATUS_SUCCESS

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)

Exemple #2 Style procédural

<?php

// Crée la police
$fontface = new CairoToyFontFace('sans-serif');

// Récupère son statut
var_dump(cairo_font_face_status($fontface)); // doit correspondre à la valeur de la constante CAIRO_STATUS_SUCCESS

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)

Voir aussi

  • Classname::Method()


La classe CairoFontOptions

(PECL cairo >= 0.1.0)

Introduction

Une structure opaque contenant toutes les options utilisées lors du rendu des polices de caractères.

Les fonctionnalités individuelles de cairo_font_options_t peuvent être définies en utilisant les fonctions nommées cairo_font_options_set_feature_name et cairo_font_options_get_feature_name, comme cairo_font_options_set_antialias() et cairo_font_options_get_antialias().

De nouvelles fonctionnalités devraient être ajoutées à la classe CairoFontOptions dans le futur. Pour ces raisons, CairoFontOptions::copy(), CairoFontOptions::equal(), CairoFontOptions::merge(), CairoFontOptions::hash() (cairo_font_options_copy(), cairo_font_options_equal(), cairo_font_options_merge(), and cairo_font_options_hash() en mode procédural) doivent être utilisées pour copier, pour vérifier l'égalité, pour fusionner, ou pour calculer la valeur de hachage des objets CairoFontOptions.

Synopsis de la classe

CairoFontOptions {
/* Méthodes */
public __construct ( void )
public bool equal ( string $other )
public int getAntialias ( void )
public int getHintMetrics ( void )
public int getHintStyle ( void )
public int getSubpixelOrder ( void )
public int hash ( void )
public void merge ( string $other )
public void setAntialias ( string $antialias )
public void setHintMetrics ( string $hint_metrics )
public void setHintStyle ( string $hint_style )
public void setSubpixelOrder ( string $subpixel_order )
public int status ( void )
}

Sommaire

  • CairoFontOptions::__construct — Le but de __construct
  • CairoFontOptions::equal — Le but de equal
  • CairoFontOptions::getAntialias — Le but de getAntialias
  • CairoFontOptions::getHintMetrics — Le but de getHintMetrics
  • CairoFontOptions::getHintStyle — Le but de getHintStyle
  • CairoFontOptions::getSubpixelOrder — Le but de getSubpixelOrder
  • CairoFontOptions::hash — Le but de hash
  • CairoFontOptions::merge — Le but de merge
  • CairoFontOptions::setAntialias — Le but de setAntialias
  • CairoFontOptions::setHintMetrics — Le but de setHintMetrics
  • CairoFontOptions::setHintStyle — Le but de setHintStyle
  • CairoFontOptions::setSubpixelOrder — Le but de setSubpixelOrder
  • CairoFontOptions::status — Le but de status


Le but de __construct

  • « CairoFontOptions
  • CairoFontOptions::equal »
  • PHP Manual
  • CairoFontOptions
  • Le but de __construct

CairoFontOptions::__construct

(PECL cairo >= 0.1.0)

CairoFontOptions::__construct — Le but de __construct

Description

public CairoFontOptions::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de equal

  • « CairoFontOptions::__construct
  • CairoFontOptions::getAntialias »
  • PHP Manual
  • CairoFontOptions
  • Le but de equal

CairoFontOptions::equal

(PECL cairo >= 0.1.0)

CairoFontOptions::equal — Le but de equal

Description

public bool CairoFontOptions::equal ( string $other )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

other

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::equal()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getAntialias

  • « CairoFontOptions::equal
  • CairoFontOptions::getHintMetrics »
  • PHP Manual
  • CairoFontOptions
  • Le but de getAntialias

CairoFontOptions::getAntialias

cairo_get_antialias

(PECL cairo >= 0.1.0)

CairoFontOptions::getAntialias -- cairo_get_antialias — Le but de getAntialias

Description

Style orienté objet (méthode) :

public int CairoFontOptions::getAntialias ( void )

Style procédural :

int cairo_get_antialias ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getHintMetrics

  • « CairoFontOptions::getAntialias
  • CairoFontOptions::getHintStyle »
  • PHP Manual
  • CairoFontOptions
  • Le but de getHintMetrics

CairoFontOptions::getHintMetrics

(PECL cairo >= 0.1.0)

CairoFontOptions::getHintMetrics — Le but de getHintMetrics

Description

public int CairoFontOptions::getHintMetrics ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::getHintMetrics()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getHintStyle

  • « CairoFontOptions::getHintMetrics
  • CairoFontOptions::getSubpixelOrder »
  • PHP Manual
  • CairoFontOptions
  • Le but de getHintStyle

CairoFontOptions::getHintStyle

(PECL cairo >= 0.1.0)

CairoFontOptions::getHintStyle — Le but de getHintStyle

Description

public int CairoFontOptions::getHintStyle ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::getHintStyle()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getSubpixelOrder

  • « CairoFontOptions::getHintStyle
  • CairoFontOptions::hash »
  • PHP Manual
  • CairoFontOptions
  • Le but de getSubpixelOrder

CairoFontOptions::getSubpixelOrder

(PECL cairo >= 0.1.0)

CairoFontOptions::getSubpixelOrder — Le but de getSubpixelOrder

Description

public int CairoFontOptions::getSubpixelOrder ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::getSubpixelOrder()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de hash

  • « CairoFontOptions::getSubpixelOrder
  • CairoFontOptions::merge »
  • PHP Manual
  • CairoFontOptions
  • Le but de hash

CairoFontOptions::hash

(PECL cairo >= 0.1.0)

CairoFontOptions::hash — Le but de hash

Description

public int CairoFontOptions::hash ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoFontOptions::hash()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de merge

  • « CairoFontOptions::hash
  • CairoFontOptions::setAntialias »
  • PHP Manual
  • CairoFontOptions
  • Le but de merge

CairoFontOptions::merge

(PECL cairo >= 0.1.0)

CairoFontOptions::merge — Le but de merge

Description

public void CairoFontOptions::merge ( string $other )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

other

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoFontOptions::merge()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de setAntialias

  • « CairoFontOptions::merge
  • CairoFontOptions::setHintMetrics »
  • PHP Manual
  • CairoFontOptions
  • Le but de setAntialias

CairoFontOptions::setAntialias

cairo_set_antialias

(PECL cairo >= 0.1.0)

CairoFontOptions::setAntialias -- cairo_set_antialias — Le but de setAntialias

Description

Style orienté objet (méthode) :

public void CairoFontOptions::setAntialias ( string $antialias )

Style procédural :

void cairo_set_antialias ( CairoContext $context [, string $antialias ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

antialias

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de setHintMetrics

  • « CairoFontOptions::setAntialias
  • CairoFontOptions::setHintStyle »
  • PHP Manual
  • CairoFontOptions
  • Le but de setHintMetrics

CairoFontOptions::setHintMetrics

(PECL cairo >= 0.1.0)

CairoFontOptions::setHintMetrics — Le but de setHintMetrics

Description

public void CairoFontOptions::setHintMetrics ( string $hint_metrics )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

hint_metrics

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::setHintMetrics()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de setHintStyle

  • « CairoFontOptions::setHintMetrics
  • CairoFontOptions::setSubpixelOrder »
  • PHP Manual
  • CairoFontOptions
  • Le but de setHintStyle

CairoFontOptions::setHintStyle

(PECL cairo >= 0.1.0)

CairoFontOptions::setHintStyle — Le but de setHintStyle

Description

public void CairoFontOptions::setHintStyle ( string $hint_style )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

hint_style

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::setHintStyle()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de setSubpixelOrder

  • « CairoFontOptions::setHintStyle
  • CairoFontOptions::status »
  • PHP Manual
  • CairoFontOptions
  • Le but de setSubpixelOrder

CairoFontOptions::setSubpixelOrder

(PECL cairo >= 0.1.0)

CairoFontOptions::setSubpixelOrder — Le but de setSubpixelOrder

Description

public void CairoFontOptions::setSubpixelOrder ( string $subpixel_order )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

subpixel_order

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoFontOptions::setSubpixelOrder()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de status

  • « CairoFontOptions::setSubpixelOrder
  • CairoFontSlant »
  • PHP Manual
  • CairoFontOptions
  • Le but de status

CairoFontOptions::status

cairo_status

(PECL cairo >= 0.1.0)

CairoFontOptions::status -- cairo_status — Le but de status

Description

Style orienté objet (méthode) :

public int CairoFontOptions::status ( void )

Style procédural :

int cairo_status ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe CairoFontSlant

(No version information available, might only be in Git)

Introduction

Spécifie les variantes d'une police basée sur son inclinaison.

Synopsis de la classe

CairoFontSlant {
/* Constantes */
const integer NORMAL = 0 ;
const integer ITALIC = 1 ;
const integer OBLIQUE = 2 ;
}

Constantes pré-définies

CairoFontSlant::NORMAL

Style de police vertical.

CairoFontSlant::ITALIC

Style de police en italique.

CairoFontSlant::OBLIQUE

Style de police en oblique.


La classe CairoFontType

(No version information available, might only be in Git)

Introduction

La classe CairoFontType est une classe abstraite finale qui contient les constantes utilisées pour décrire le type d'un objet CairoFontFace ou CairoScaledFont donné. Les types de police sont aussi connus comme "font backends" dans Cairo.

Le type d'un objet CairoFontFace est déterminé par la façon dont il a été créé, un exemple pourrait être CairoToyFontFace::__construct(). Le type CairoFontFace peut être interrogé avec la méthode CairoFontFace::getType() ou la fonction cairo_font_face_get_type().

Les diverses fonctions CairoFontFace peuvent être utilisées avec une police de caractère de n'importe quel type.

Le type d'un objet CairoScaledFont est déterminé par le type de l'objet CairoFontFace passé à la méthode CairoScaledFont::__construct() ou la fonction cairo_scaled_font_create(). Le type de police mis à l'échelle peut être interrogé avec lé méthode CairoScaledFont::getType() ou la fonction cairo_scaled_font_get_type().

Synopsis de la classe

CairoFontType {
/* Constantes */
const integer TOY = 0 ;
const integer FT = 1 ;
const integer WIN32 = 2 ;
const integer QUARTZ = 3 ;
}

Constantes pré-définies

CairoFontType::TOY

La police a été créée en utilisant l'API CairoToyFont.

CairoFontType::FT

La police est de type CairoFreeType.

CairoFontType::WIN32

La police est de type Win32.

CairoFontType::QUARTZ

La police est de type Quartz.

CairoFontType::USER

La police a été créée en utilisant l'API utilisateur Cairo.


La classe CairoFontWeight

(No version information available, might only be in Git)

Introduction

Spécifie les variantes de la police en fonction de leur poids.

Synopsis de la classe

CairoFontWeight {
/* Constantes */
const integer NORMAL = 0 ;
const integer BOLD = 1 ;
}

Constantes pré-définies

CairoFontWeight::NORMAL

Poids normal.

CairoFontWeight::BOLD

Police en gras.


La classe CairoScaledFont

(PECL cairo >= 0.1.0)

Introduction

Synopsis de la classe

CairoScaledFont {
/* Méthodes */
public __construct ( CairoFontFace $font_face , CairoMatrix $matrix , CairoMatrix $ctm , CairoFontOptions $options )
public array extents ( void )
public CairoMatrix getCtm ( void )
public void getFontFace ( void )
public void getFontMatrix ( void )
public void getFontOptions ( void )
public void getScaleMatrix ( void )
public int getType ( void )
public array glyphExtents ( string $glyphs )
public int status ( void )
public array textExtents ( string $text )
}

Sommaire

  • CairoScaledFont::__construct — Le but de __construct
  • CairoScaledFont::extents — Le but de extents
  • CairoScaledFont::getCtm — Le but de getCtm
  • CairoScaledFont::getFontFace — Le but de getFontFace
  • CairoScaledFont::getFontMatrix — Le but de getFontMatrix
  • CairoScaledFont::getFontOptions — Le but de getFontOptions
  • CairoScaledFont::getScaleMatrix — Le but de getScaleMatrix
  • CairoScaledFont::getType — Le but de getType
  • CairoScaledFont::glyphExtents — Le but de glyphExtents
  • CairoScaledFont::status — Le but de status
  • CairoScaledFont::textExtents — Le but de textExtents


Le but de __construct

  • « CairoScaledFont
  • CairoScaledFont::extents »
  • PHP Manual
  • CairoScaledFont
  • Le but de __construct

CairoScaledFont::__construct

(PECL cairo >= 0.1.0)

CairoScaledFont::__construct — Le but de __construct

Description

public CairoScaledFont::__construct ( CairoFontFace $font_face , CairoMatrix $matrix , CairoMatrix $ctm , CairoFontOptions $options )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

font_face

matrix

ctm

options

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoScaledFont::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de extents

  • « CairoScaledFont::__construct
  • CairoScaledFont::getCtm »
  • PHP Manual
  • CairoScaledFont
  • Le but de extents

CairoScaledFont::extents

(PECL cairo >= 0.1.0)

CairoScaledFont::extents — Le but de extents

Description

public array CairoScaledFont::extents ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoScaledFont::extents()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getCtm

  • « CairoScaledFont::extents
  • CairoScaledFont::getFontFace »
  • PHP Manual
  • CairoScaledFont
  • Le but de getCtm

CairoScaledFont::getCtm

(PECL cairo >= 0.1.0)

CairoScaledFont::getCtm — Le but de getCtm

Description

public CairoMatrix CairoScaledFont::getCtm ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoScaledFont::getCtm()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getFontFace

  • « CairoScaledFont::getCtm
  • CairoScaledFont::getFontMatrix »
  • PHP Manual
  • CairoScaledFont
  • Le but de getFontFace

CairoScaledFont::getFontFace

cairo_get_font_face

(PECL cairo >= 0.1.0)

CairoScaledFont::getFontFace -- cairo_get_font_face — Le but de getFontFace

Description

Style orienté objet (méthode) :

public void CairoScaledFont::getFontFace ( void )

Style procédural :

void cairo_get_font_face ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getFontMatrix

  • « CairoScaledFont::getFontFace
  • CairoScaledFont::getFontOptions »
  • PHP Manual
  • CairoScaledFont
  • Le but de getFontMatrix

CairoScaledFont::getFontMatrix

cairo_get_font_matrix

(PECL cairo >= 0.1.0)

CairoScaledFont::getFontMatrix -- cairo_get_font_matrix — Le but de getFontMatrix

Description

Style orienté objet (méthode) :

public void CairoScaledFont::getFontMatrix ( void )

Style procédural :

void cairo_get_font_matrix ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getFontOptions

  • « CairoScaledFont::getFontMatrix
  • CairoScaledFont::getScaleMatrix »
  • PHP Manual
  • CairoScaledFont
  • Le but de getFontOptions

CairoScaledFont::getFontOptions

cairo_get_font_options

(PECL cairo >= 0.1.0)

CairoScaledFont::getFontOptions -- cairo_get_font_options — Le but de getFontOptions

Description

Style orienté objet (méthode) :

public void CairoScaledFont::getFontOptions ( void )

Style procédural :

void cairo_get_font_options ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getScaleMatrix

  • « CairoScaledFont::getFontOptions
  • CairoScaledFont::getType »
  • PHP Manual
  • CairoScaledFont
  • Le but de getScaleMatrix

CairoScaledFont::getScaleMatrix

(PECL cairo >= 0.1.0)

CairoScaledFont::getScaleMatrix — Le but de getScaleMatrix

Description

public void CairoScaledFont::getScaleMatrix ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoScaledFont::getScaleMatrix()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getType

  • « CairoScaledFont::getScaleMatrix
  • CairoScaledFont::glyphExtents »
  • PHP Manual
  • CairoScaledFont
  • Le but de getType

CairoScaledFont::getType

(PECL cairo >= 0.1.0)

CairoScaledFont::getType — Le but de getType

Description

public int CairoScaledFont::getType ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoScaledFont::getType()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de glyphExtents

  • « CairoScaledFont::getType
  • CairoScaledFont::status »
  • PHP Manual
  • CairoScaledFont
  • Le but de glyphExtents

CairoScaledFont::glyphExtents

(PECL cairo >= 0.1.0)

CairoScaledFont::glyphExtents — Le but de glyphExtents

Description

public array CairoScaledFont::glyphExtents ( string $glyphs )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

glyphs

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoScaledFont::glyphExtents()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de status

  • « CairoScaledFont::glyphExtents
  • CairoScaledFont::textExtents »
  • PHP Manual
  • CairoScaledFont
  • Le but de status

CairoScaledFont::status

cairo_status

(PECL cairo >= 0.1.0)

CairoScaledFont::status -- cairo_status — Le but de status

Description

Style orienté objet (méthode) :

public int CairoScaledFont::status ( void )

Style procédural :

int cairo_status ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de textExtents

  • « CairoScaledFont::status
  • CairoToyFontFace »
  • PHP Manual
  • CairoScaledFont
  • Le but de textExtents

CairoScaledFont::textExtents

cairo_text_extents

(PECL cairo >= 0.1.0)

CairoScaledFont::textExtents -- cairo_text_extents — Le but de textExtents

Description

Style orienté objet (méthode) :

public array CairoScaledFont::textExtents ( string $text )

Style procédural :

array cairo_text_extents ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

text

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe CairoToyFontFace

(PECL cairo >= 0.1.0)

Introduction

La classe CairoToyFontFace peut être utilisée à la place de la méthode CairoContext::selectFontFace() pour créer des polices indépendamment du contexte.

Synopsis de la classe

CairoToyFontFace extends CairoFontFace {
/* Méthodes héritées */
}


La classe CairoPatternType

(No version information available, might only be in Git)

Introduction

CairoPatternType est utilisée pour décrire le type d'un masque donné.

Le type d'un masque est déterminé par la fonction utilisée pour le créer.
Les fonctions cairo_pattern_create_rgb() et
cairo_pattern_create_rgba() créent des masques
CairoPatternType::SOLID. Le reste des fonctions
cairo_pattern_create_* créent des masques de types variés.

Synopsis de la classe

CairoPatternType {
/* Constantes */
const integer SOLID = 0 ;
const integer SURFACE = 1 ;
const integer LINEAR = 2 ;
const integer RADIAL = 3 ;
}

Constantes pré-définies

CairoPatternType::SOLID

Le masque est une couleur solide (uniforme). Il peut être opaque ou translucide.

CairoPatternType::SURFACE

Le masque est une base sur une surface (une image).

CairoPatternType::LINEAR

Le masque est un gradient linéaire.

CairoPatternType::RADIAL

Le masque est un gradient radial.


La classe CairoPattern

(PECL cairo >= 0.1.0)

Introduction

CairoPattern est une classe de base abstraite dont toutes les autres classes relatives aux masques dérivent. Elle ne peut être instanciée directement.

Synopsis de la classe

CairoPattern {
/* Méthodes */
public __construct ( void )
public void getMatrix ( void )
public int getType ( void )
public void setMatrix ( string $matrix )
public int status ( void )
}

Sommaire

  • CairoPattern::__construct — Le but de __construct
  • CairoPattern::getMatrix — Le but de getMatrix
  • CairoPattern::getType — Le but de getType
  • CairoPattern::setMatrix — Le but de setMatrix
  • CairoPattern::status — Le but de status


Le but de __construct

  • « CairoPattern
  • CairoPattern::getMatrix »
  • PHP Manual
  • CairoPattern
  • Le but de __construct

CairoPattern::__construct

(PECL cairo >= 0.1.0)

CairoPattern::__construct — Le but de __construct

Description

public CairoPattern::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoPattern::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getMatrix

  • « CairoPattern::__construct
  • CairoPattern::getType »
  • PHP Manual
  • CairoPattern
  • Le but de getMatrix

CairoPattern::getMatrix

cairo_get_matrix

(PECL cairo >= 0.1.0)

CairoPattern::getMatrix -- cairo_get_matrix — Le but de getMatrix

Description

Style orienté objet (méthode) :

public void CairoPattern::getMatrix ( void )

Style procédural :

void cairo_get_matrix ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getType

  • « CairoPattern::getMatrix
  • CairoPattern::setMatrix »
  • PHP Manual
  • CairoPattern
  • Le but de getType

CairoPattern::getType

(PECL cairo >= 0.1.0)

CairoPattern::getType — Le but de getType

Description

public int CairoPattern::getType ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoPattern::getType()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de setMatrix

  • « CairoPattern::getType
  • CairoPattern::status »
  • PHP Manual
  • CairoPattern
  • Le but de setMatrix

CairoPattern::setMatrix

cairo_set_matrix

(PECL cairo >= 0.1.0)

CairoPattern::setMatrix -- cairo_set_matrix — Le but de setMatrix

Description

Style orienté objet (méthode) :

public void CairoPattern::setMatrix ( string $matrix )

Style procédural :

void cairo_set_matrix ( CairoContext $context , CairoMatrix $matrix )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

matrix

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de status

  • « CairoPattern::setMatrix
  • CairoGradientPattern »
  • PHP Manual
  • CairoPattern
  • Le but de status

CairoPattern::status

cairo_status

(PECL cairo >= 0.1.0)

CairoPattern::status -- cairo_status — Le but de status

Description

Style orienté objet (méthode) :

public int CairoPattern::status ( void )

Style procédural :

int cairo_status ( CairoContext $context )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe CairoGradientPattern

(PECL cairo >= 0.1.0)

Introduction

CairoGradientPattern est une classe abstraite de base depuis laquelle les autres classes de masque dérivent. Elle ne peut être instanciée directement.

Synopsis de la classe

CairoGradientPattern extends CairoPattern {
/* Méthodes */
public void addColorStopRgb ( string $offset , string $red , string $green , string $blue )
public void addColorStopRgba ( string $offset , string $red , string $green , string $blue , string $alpha )
public int getColorStopCount ( void )
public array getColorStopRgba ( string $index )
public int getExtend ( void )
public void setExtend ( int $extend )
/* Méthodes héritées */
public CairoPattern::__construct ( void )
public void CairoPattern::getMatrix ( void )
public int CairoPattern::getType ( void )
public void CairoPattern::setMatrix ( string $matrix )
public int CairoPattern::status ( void )
}

Sommaire

  • CairoGradientPattern::addColorStopRgb — Le but de addColorStopRgb
  • CairoGradientPattern::addColorStopRgba — Le but de addColorStopRgba
  • CairoGradientPattern::getColorStopCount — Le but de getColorStopCount
  • CairoGradientPattern::getColorStopRgba — Le but de getColorStopRgba
  • CairoGradientPattern::getExtend — Le but de getExtend
  • CairoGradientPattern::setExtend — Le but de setExtend


Le but de addColorStopRgb

  • « CairoGradientPattern
  • CairoGradientPattern::addColorStopRgba »
  • PHP Manual
  • CairoGradientPattern
  • Le but de addColorStopRgb

CairoGradientPattern::addColorStopRgb

(PECL cairo >= 0.1.0)

CairoGradientPattern::addColorStopRgb — Le but de addColorStopRgb

Description

public void CairoGradientPattern::addColorStopRgb ( string $offset , string $red , string $green , string $blue )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

offset

red

green

blue

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoGradientPattern::addColorStopRgb()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de addColorStopRgba

  • « CairoGradientPattern::addColorStopRgb
  • CairoGradientPattern::getColorStopCount »
  • PHP Manual
  • CairoGradientPattern
  • Le but de addColorStopRgba

CairoGradientPattern::addColorStopRgba

(PECL cairo >= 0.1.0)

CairoGradientPattern::addColorStopRgba — Le but de addColorStopRgba

Description

public void CairoGradientPattern::addColorStopRgba ( string $offset , string $red , string $green , string $blue , string $alpha )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

offset

red

green

blue

alpha

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoGradientPattern::addColorStopRgba()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getColorStopCount

  • « CairoGradientPattern::addColorStopRgba
  • CairoGradientPattern::getColorStopRgba »
  • PHP Manual
  • CairoGradientPattern
  • Le but de getColorStopCount

CairoGradientPattern::getColorStopCount

(PECL cairo >= 0.1.0)

CairoGradientPattern::getColorStopCount — Le but de getColorStopCount

Description

public int CairoGradientPattern::getColorStopCount ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoGradientPattern::getColorStopCount()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getColorStopRgba

  • « CairoGradientPattern::getColorStopCount
  • CairoGradientPattern::getExtend »
  • PHP Manual
  • CairoGradientPattern
  • Le but de getColorStopRgba

CairoGradientPattern::getColorStopRgba

(PECL cairo >= 0.1.0)

CairoGradientPattern::getColorStopRgba — Le but de getColorStopRgba

Description

public array CairoGradientPattern::getColorStopRgba ( string $index )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoGradientPattern::getColorStopRgba()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getExtend

  • « CairoGradientPattern::getColorStopRgba
  • CairoGradientPattern::setExtend »
  • PHP Manual
  • CairoGradientPattern
  • Le but de getExtend

CairoGradientPattern::getExtend

(PECL cairo >= 0.1.0)

CairoGradientPattern::getExtend — Le but de getExtend

Description

public int CairoGradientPattern::getExtend ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoGradientPattern::getExtend()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de setExtend

  • « CairoGradientPattern::getExtend
  • CairoSolidPattern »
  • PHP Manual
  • CairoGradientPattern
  • Le but de setExtend

CairoGradientPattern::setExtend

(PECL cairo >= 0.1.0)

CairoGradientPattern::setExtend — Le but de setExtend

Description

public void CairoGradientPattern::setExtend ( int $extend )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

extend

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoGradientPattern::setExtend()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe CairoSolidPattern

(PECL cairo >= 0.1.0)

Introduction

Synopsis de la classe

CairoSolidPattern extends CairoPattern {
/* Méthodes */
public __construct ( float $red , float $green , float $blue [, float $alpha = 0 ] )
public array getRgba ( void )
/* Méthodes héritées */
public CairoPattern::__construct ( void )
public void CairoPattern::getMatrix ( void )
public int CairoPattern::getType ( void )
public void CairoPattern::setMatrix ( string $matrix )
public int CairoPattern::status ( void )
}

Sommaire

  • CairoSolidPattern::__construct — Le but de __construct
  • CairoSolidPattern::getRgba — Le but de getRgba


Le but de __construct

  • « CairoSolidPattern
  • CairoSolidPattern::getRgba »
  • PHP Manual
  • CairoSolidPattern
  • Le but de __construct

CairoSolidPattern::__construct

(PECL cairo >= 0.1.0)

CairoSolidPattern::__construct — Le but de __construct

Description

public CairoSolidPattern::__construct ( float $red , float $green , float $blue [, float $alpha = 0 ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

red

green

blue

alpha

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSolidPattern::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getRgba

  • « CairoSolidPattern::__construct
  • CairoSurfacePattern »
  • PHP Manual
  • CairoSolidPattern
  • Le but de getRgba

CairoSolidPattern::getRgba

(PECL cairo >= 0.1.0)

CairoSolidPattern::getRgba — Le but de getRgba

Description

public array CairoSolidPattern::getRgba ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSolidPattern::getRgba()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe CairoSurfacePattern

(PECL cairo >= 0.1.0)

Introduction

Synopsis de la classe

CairoSurfacePattern extends CairoPattern {
/* Méthodes */
public __construct ( CairoSurface $surface )
public int getExtend ( void )
public int getFilter ( void )
public void getSurface ( void )
public void setExtend ( int $extend )
public void setFilter ( string $filter )
/* Méthodes héritées */
public CairoPattern::__construct ( void )
public void CairoPattern::getMatrix ( void )
public int CairoPattern::getType ( void )
public void CairoPattern::setMatrix ( string $matrix )
public int CairoPattern::status ( void )
}

Sommaire

  • CairoSurfacePattern::__construct — Le but de __construct
  • CairoSurfacePattern::getExtend — Le but de getExtend
  • CairoSurfacePattern::getFilter — Le but de getFilter
  • CairoSurfacePattern::getSurface — Le but de getSurface
  • CairoSurfacePattern::setExtend — Le but de setExtend
  • CairoSurfacePattern::setFilter — Le but de setFilter


Le but de __construct

  • « CairoSurfacePattern
  • CairoSurfacePattern::getExtend »
  • PHP Manual
  • CairoSurfacePattern
  • Le but de __construct

CairoSurfacePattern::__construct

(PECL cairo >= 0.1.0)

CairoSurfacePattern::__construct — Le but de __construct

Description

public CairoSurfacePattern::__construct ( CairoSurface $surface )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

surface

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurfacePattern::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getExtend

  • « CairoSurfacePattern::__construct
  • CairoSurfacePattern::getFilter »
  • PHP Manual
  • CairoSurfacePattern
  • Le but de getExtend

CairoSurfacePattern::getExtend

(PECL cairo >= 0.1.0)

CairoSurfacePattern::getExtend — Le but de getExtend

Description

public int CairoSurfacePattern::getExtend ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurfacePattern::getExtend()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getFilter

  • « CairoSurfacePattern::getExtend
  • CairoSurfacePattern::getSurface »
  • PHP Manual
  • CairoSurfacePattern
  • Le but de getFilter

CairoSurfacePattern::getFilter

(PECL cairo >= 0.1.0)

CairoSurfacePattern::getFilter — Le but de getFilter

Description

public int CairoSurfacePattern::getFilter ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurfacePattern::getFilter()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getSurface

  • « CairoSurfacePattern::getFilter
  • CairoSurfacePattern::setExtend »
  • PHP Manual
  • CairoSurfacePattern
  • Le but de getSurface

CairoSurfacePattern::getSurface

(PECL cairo >= 0.1.0)

CairoSurfacePattern::getSurface — Le but de getSurface

Description

public void CairoSurfacePattern::getSurface ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurfacePattern::getSurface()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de setExtend

  • « CairoSurfacePattern::getSurface
  • CairoSurfacePattern::setFilter »
  • PHP Manual
  • CairoSurfacePattern
  • Le but de setExtend

CairoSurfacePattern::setExtend

(PECL cairo >= 0.1.0)

CairoSurfacePattern::setExtend — Le but de setExtend

Description

public void CairoSurfacePattern::setExtend ( int $extend )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

extend

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoSurfacePattern::setExtend()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de setFilter

  • « CairoSurfacePattern::setExtend
  • CairoLinearGradient »
  • PHP Manual
  • CairoSurfacePattern
  • Le but de setFilter

CairoSurfacePattern::setFilter

(PECL cairo >= 0.1.0)

CairoSurfacePattern::setFilter — Le but de setFilter

Description

public void CairoSurfacePattern::setFilter ( string $filter )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filter

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoSurfacePattern::setFilter()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe CairoLinearGradient

(PECL cairo >= 0.1.0)

Introduction

Crée un nouvel objet CairoLinearGradient le long d'une ligne définie.

Synopsis de la classe

CairoLinearGradient extends CairoGradientPattern {
/* Méthodes */
public __construct ( float $x0 , float $y0 , float $x1 , float $y1 )
public array getPoints ( void )
/* Méthodes héritées */
public void CairoGradientPattern::addColorStopRgb ( string $offset , string $red , string $green , string $blue )
public void CairoGradientPattern::addColorStopRgba ( string $offset , string $red , string $green , string $blue , string $alpha )
public int CairoGradientPattern::getColorStopCount ( void )
public array CairoGradientPattern::getColorStopRgba ( string $index )
public int CairoGradientPattern::getExtend ( void )
public void CairoGradientPattern::setExtend ( int $extend )
}

Sommaire

  • CairoLinearGradient::__construct — Le but de __construct
  • CairoLinearGradient::getPoints — Le but de getPoints


Le but de __construct

  • « CairoLinearGradient
  • CairoLinearGradient::getPoints »
  • PHP Manual
  • CairoLinearGradient
  • Le but de __construct

CairoLinearGradient::__construct

(PECL cairo >= 0.1.0)

CairoLinearGradient::__construct — Le but de __construct

Description

public CairoLinearGradient::__construct ( float $x0 , float $y0 , float $x1 , float $y1 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x0

y0

x1

y1

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoLinearGradient::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getPoints

  • « CairoLinearGradient::__construct
  • CairoRadialGradient »
  • PHP Manual
  • CairoLinearGradient
  • Le but de getPoints

CairoLinearGradient::getPoints

(PECL cairo >= 0.1.0)

CairoLinearGradient::getPoints — Le but de getPoints

Description

public array CairoLinearGradient::getPoints ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoLinearGradient::getPoints()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe CairoRadialGradient

(PECL cairo >= 0.1.0)

Introduction

Synopsis de la classe

CairoRadialGradient extends CairoGradientPattern {
/* Méthodes */
public __construct ( float $x0 , float $y0 , float $r0 , float $x1 , float $y1 , float $r1 )
public array getCircles ( void )
/* Méthodes héritées */
public void CairoGradientPattern::addColorStopRgb ( string $offset , string $red , string $green , string $blue )
public void CairoGradientPattern::addColorStopRgba ( string $offset , string $red , string $green , string $blue , string $alpha )
public int CairoGradientPattern::getColorStopCount ( void )
public array CairoGradientPattern::getColorStopRgba ( string $index )
public int CairoGradientPattern::getExtend ( void )
public void CairoGradientPattern::setExtend ( int $extend )
}

Sommaire

  • CairoRadialGradient::__construct — Le but de __construct
  • CairoRadialGradient::getCircles — Le but de getCircles


Le but de __construct

  • « CairoRadialGradient
  • CairoRadialGradient::getCircles »
  • PHP Manual
  • CairoRadialGradient
  • Le but de __construct

CairoRadialGradient::__construct

(PECL cairo >= 0.1.0)

CairoRadialGradient::__construct — Le but de __construct

Description

Style orienté objet :

public CairoRadialGradient::__construct ( float $x0 , float $y0 , float $r0 , float $x1 , float $y1 , float $r1 )

Style procédural :

Crée un nouveau dégradé radial CairoPattern entre 2 cercles définis par (x0, y0, r0) et (x1, y1, r1). Avant d'utiliser ce masque de dégradé, un nombre de couleurs maximal doit être défini en utilisant le méthode CairoRadialGradient::addColorStopRgb() ou la méthode CairoRadialGradient::addColorStopRgba().

Note : Les coordonnées ici sont dans l'espace du masque. Pour un nouveau masque, l'espace du masque est identique à l'espace utilisateur, mais les relations entre les espaces peuvent être modifiées avec la méthode CairoRadialGradient::setMatrix().

Liste de paramètres

x0

coordonnée en X du centre du premier cercle.

y0

coordonnée en Y du centre du premier cercle.

r0

rayon du premier cercle.

x1

coordonnée en X du centre du dernier cercle.

y1

coordonnée en Y du centre du dernier cercle.

r1

rayon du dernier cercle.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoRadialGradient::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de getCircles

  • « CairoRadialGradient::__construct
  • CairoAntialias »
  • PHP Manual
  • CairoRadialGradient
  • Le but de getCircles

CairoRadialGradient::getCircles

(PECL cairo >= 0.1.0)

CairoRadialGradient::getCircles — Le but de getCircles

Description

public array CairoRadialGradient::getCircles ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoRadialGradient::getCircles()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe CairoAntialias

(No version information available, might only be in Git)

Introduction

Classe spécifiant le type d'antialiasing à utiliser lors d'un rendu de textes ou de formes.

Synopsis de la classe

CairoAntialias {
/* Constantes */
const integer MODE_DEFAULT = 0 ;
const integer MODE_NONE = 1 ;
const integer MODE_GRAY = 2 ;
const integer MODE_SUBPIXEL = 3 ;
}

Constantes pré-définies

CairoAntialias::MODE_DEFAULT

Utilise l'antialiasing par défaut pour le sous-système et les périphériques cibles.

CairoAntialias::MODE_NONE

Utilise un masque alpha à deux niveaux.

CairoAntialias::MODE_GRAY

Effectue un antialiasing d'une seule couleur (en utilisant des nuances de gris pour le texte noir sur un fond blanc, par exemple).

CairoAntialias::MODE_SUBPIXEL

Effectue un antialiasing en prenant avantage de l'ordre des éléments sous-pixels sur les périphériques comme les panneaux LCD.


La classe CairoContent

(No version information available, might only be in Git)

Introduction

CairoContent est utilisée pour décrire le contenu qu'une surface contient, comme les informations sur les couleurs, les informations sur le canal alpha (transparent vs. opacité), ou les deux.

Note : les grosses valeurs ici ont pour but de conserver les valeurs CairoContent distinctement des valeurs CairoContent, permettant ainsi à l'implémentation de détecter les erreurs si les utilisateurs confondent les 2 types.

Synopsis de la classe

CairoContent {
/* Constantes */
const integer COLOR = 4096 ;
const integer ALPHA = 8192 ;
const integer COLOR_ALPHA = 12288 ;
}

Constantes pré-définies

CairoContent::COLOR

La surface contient uniquement le contenu de la couleur.

CairoContent::ALPHA

La surface contient uniquement le contenu du canal alpha.

CairoContent::COLOR_ALPHA

La surface contient le contenu de la couleur et du canal alpha.


La classe CairoExtend

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

CairoExtend {
/* Constantes */
const integer NONE = 0 ;
const integer REPEAT = 1 ;
const integer REFLECT = 2 ;
const integer PAD = 3 ;
}

Constantes pré-définies

CairoExtend::NONE

Description...

CairoExtend::REPEAT

Description...

CairoExtend::REFLECT

Description...

CairoExtend::PAD

Description...


La classe CairoFormat

(PECL cairo >= 0.1.0)

Introduction

La classe CairoFormat est utilisée pour identifier le format en mémoire des données de l'image.

Synopsis de la classe

CairoFormat {
/* Constantes */
const integer ARGB32 = 0 ;
const integer RGB24 = 1 ;
const integer A8 = 2 ;
const integer A1 = 3 ;
/* Méthodes */
public static int strideForWidth ( int $format , int $width )
}

Constantes pré-définies

CairoFormat::ARGB32

Chaque pixel est sur 32-bits, avec l'alpha sur les 8 premiers octets, puis, le rouge, puis, le vert, et enfin le bleu. Les 32 bits sont stockés en endian natif. L'alpha pré-multiplié est utilisé (aussi, rouge transparent à 50% vaut 0x80800000, et non 0x80ff0000).

CairoFormat::RGB24

Chaque pixel est sur 32 bits, avec les 8 premiers octets non utilisés. Rouge, vert et bleu sont stockés dans les 24 octets restants, dans cet ordre.

CairoFormat::A8

Chaque pixel est sur 8 bits, y compris la valeur de l'alpha.

CairoFormat::A1

Chaque pixel est sur 1 bit, y compris la valeur de l'alpha. Les pixels sont empaquetés dans des quantités de 32 bits. L'ordre des octets correspond l'endian de la plateforme. Sur une gros machine endian, le premier pixel est sur le premier octet, alors que sur une petite machine endian, le premier pixel est sur le dernier octet significatif.

Sommaire

  • CairoFormat::strideForWidth — Fournit un stride approprié à utiliser


Fournit un stride approprié à utiliser

  • « CairoFormat
  • CairoFillRule »
  • PHP Manual
  • CairoFormat
  • Fournit un stride approprié à utiliser

CairoFormat::strideForWidth

(PECL cairo >= 0.1.0)

CairoFormat::strideForWidth — Fournit un stride approprié à utiliser

Description

public static int CairoFormat::strideForWidth ( int $format , int $width )

Cette méthode fournit une valeur de stride qui respectera tous les alignements nécessaires du rendu de l'image accélérée dans Cairo.

Liste de paramètres

format

Le format CairoFormat à utiliser.

width

La longueur de l'image.

Valeurs de retour

Le stride approprié à utiliser pour le format et la longueur désirés, ou -1 si soit le format est invalide, soit la longueur est trop grande.

Exemples

Exemple #1 Exemple avec CairoFormat::strideForWidth()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


La classe CairoFillRule

(No version information available, might only be in Git)

Introduction

Un objet CairoFillRule est utilisé pour sélectionner 2 chemins à remplir. Pour les 2 règles de remplissage, le fait d'inclure ou non un point dans un remplissage est déterminé en prenant le rayon de ce point vers l'infini et rechercher les intersections avec le chemin. Le rayon peut être dans n'importe quelle direction, comme l'intersection de la tangente avec le chemin (Noter que le remplissage n'est actuellement pas implémenté dans ce sens. Ce n'est qu'une description de la règle appliquée).

The default fill rule is CairoFillRule::WINDING.

Synopsis de la classe

CairoFillRule {
/* Constantes */
const integer WINDING = 0 ;
const integer EVEN_ODD = 1 ;
}

Constantes pré-définies

CairoFillRule::WINDING

Si le chemin parcourt le rayon de gauche à droite, on compte +1. Si le chemin parcourt le rayon de droite à gauche, on compte -1. (La gauche et la droite sont déterminés d'un point de vue de la recherche le long du rayon du point de départ.) Si le total est différent de zéro, le point sera rempli.

CairoFillRule::EVEN_ODD

Compte le nombre total d'intersections, sans tenir compte de l'orientation du contour. Si le nombre total d'intersections est impair, le point sera rempli.


La classe CairoFilter

(No version information available, might only be in Git)

Introduction

Un objet CairoFilter est utilisé pour indiquer que le filtrage doit être appliqué alors de la lecture des valeurs des pixels depuis le masque. Voir les méthodes CairoPattern::setSource() et cairo_pattern_set_source() pour indiquer le filtre désiré à utiliser avec un masque particulier.

Synopsis de la classe

CairoFilter {
/* Constantes */
const integer FAST = 0 ;
const integer GOOD = 1 ;
const integer BEST = 2 ;
const integer NEAREST = 3 ;
const integer BILINEAR = 4 ;
const integer GAUSSIAN = 5 ;
}

Constantes pré-définies

CairoFilter::FAST

Un filtre haute performance, avec une qualité similaire à CairoFilter::NEAREST.

CairoFilter::GOOD

Un filtre à performance raisonnable, avec une qualité similaire à CairoFilter::BILINEAR.

CairoFilter::BEST

La qualité la plus élevée de disponible, au détriment de la performance, qui ne sera pas acceptable pour une utilisation interactive.

CairoFilter::NEAREST

Filtrage sur les voisins les plus proches.

CairoFilter::BILINEAR

Interpolation linéaire en 2 dimensions.

CairoFilter::GAUSSIAN

La valeur de ce filtre n'est actuellement pas implémentée, et ne doit pas être utilisée pour l'instant.


La classe CairoHintMetrics

(No version information available, might only be in Git)

Introduction

Spécifie si l'on doit modifier la métrique des polices ; cela signifie qu'on les quantifie, les représentants ainsi sous forme de valeurs entières dans l'espace du périphérique. En faisant cela, nous améliorons les espaces des lettres et des lignes, cependant, cela signifie aussi que le texte sera différent suivant le facteur de zoom.

Synopsis de la classe

CairoHintMetrics {
/* Constantes */
const integer METRICS_DEFAULT = 0 ;
const integer METRICS_OFF = 1 ;
const integer METRICS_ON = 2 ;
}

Constantes pré-définies

CairoHintMetrics::METRICS_DEFAULT

Modifie la métrique à la manière par défaut pour le gestionnaire de police et le périphérique cible.

CairoHintMetrics::METRICS_OFF

Ne pas modifier la métrique des polices.

CairoHintMetrics::METRICS_ON

Modifie la métrique des polices.


La classe CairoHintStyle

(No version information available, might only be in Git)

Introduction

Spécifie la façon dont on doit lisser les contours des polices. Le lissage est le processus d'ajustement des contours au pixel de la grille afin d'améliorer l'apparence du résultat. Vu que le lissage inclut obligatoirement une distorsion, il réduit également les formes originelles du contour. Tous les styles de lissage ne sont pas supportés par tous les gestionnaires de polices.

Synopsis de la classe

CairoHintStyle {
/* Constantes */
const integer STYLE_DEFAULT = 0 ;
const integer STYLE_NONE = 1 ;
const integer STYLE_SLIGHT = 2 ;
const integer STYLE_MEDIUM = 3 ;
const integer STYLE_FULL = 4 ;
}

Constantes pré-définies

CairoHintStyle::STYLE_DEFAULT

Utilise le style de lissage par défaut des gestionnaires de polices et des périphériques cibles.

CairoHintStyle::STYLE_NONE

Ne pas lisser les contours.

CairoHintStyle::STYLE_SLIGHT

Lisse les contours légèrement pour améliorer le contraste tout en conservant fidèlement les formes originelles.

CairoHintStyle::STYLE_MEDIUM

Lisse les contours avec une résistance moyenne fournissant ainsi un compromis entre le restitution fidèle des formes originelles et le contraste.

CairoHintStyle::STYLE_FULL

Lisse les contours avec un contraste maximal.


La classe CairoLineCap

(No version information available, might only be in Git)

Introduction

Spécifie la façon dont les points finaux doivent être restitués lors du dessin.

Le style de fin de ligne par défaut est CairoLineCap::BUTT.

Synopsis de la classe

CairoLineCap {
/* Constantes */
const integer BUTT = 0 ;
const integer ROUND = 1 ;
const integer SQUARE = 2 ;
}

Constantes pré-définies

CairoLineCap::BUTT

Commence (arrête) la ligne exactement au point de départ (fin).

CairoLineCap::ROUND

Utilise un cycle de fin ; le centre du cercle est le point final.

CairoLineCap::SQUARE

Utilise un cycle rond ; le centre du cercle est le point final.


La classe CairoLineJoin

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

CairoLineJoin {
/* Constantes */
const integer MITER = 0 ;
const integer ROUND = 1 ;
const integer BEVEL = 2 ;
}

Constantes pré-définies

CairoLineJoin::MITER

CairoLineJoin::ROUND

CairoLineJoin::BEVEL


La classe CairoMatrix

(PECL cairo >= 0.1.0)

Introduction

Les matrices sont utilisées tout au long de Cairo pour des conversions entre les espaces de coordonnées différentes.

Synopsis de la classe

CairoMatrix {
/* Méthodes */
public __construct ([ float $xx = 1.0 [, float $yx = 0.0 [, float $xy = 0.0 [, float $yy = 1.0 [, float $x0 = 0.0 [, float $y0 = 0.0 ]]]]]] )
public static void initIdentity ( void )
public static void initRotate ( float $radians )
public static void initScale ( float $sx , float $sy )
public static void initTranslate ( float $tx , float $ty )
public void invert ( void )
public static CairoMatrix multiply ( CairoMatrix $matrix1 , CairoMatrix $matrix2 )
public void rotate ( string $sx , string $sy )
public void scale ( float $sx , float $sy )
public array transformDistance ( string $dx , string $dy )
public array transformPoint ( string $dx , string $dy )
public void translate ( string $tx , string $ty )
}

Sommaire

  • CairoMatrix::__construct — Crée un nouvel objet CairoMatrix
  • CairoMatrix::initIdentity — Crée une nouvelle matrice d'identité
  • CairoMatrix::initRotate — Crée une nouvelle matrice de rotation
  • CairoMatrix::initScale — Crée une nouvelle matrice de mise à l'échelle
  • CairoMatrix::initTranslate — Crée une nouvelle matrice de traduction
  • CairoMatrix::invert — Le but de invert
  • CairoMatrix::multiply — Le but de multiply
  • CairoMatrix::rotate — Le but de rotate
  • CairoMatrix::scale — Applique une mise à l'échelle à une matrice
  • CairoMatrix::transformDistance — Le but de transformDistance
  • CairoMatrix::transformPoint — Le but de transformPoint
  • CairoMatrix::translate — Le but de translate


Crée un nouvel objet CairoMatrix

  • « CairoMatrix
  • CairoMatrix::initIdentity »
  • PHP Manual
  • CairoMatrix
  • Crée un nouvel objet CairoMatrix

CairoMatrix::__construct

cairo_matrix_init

(PECL cairo >= 0.1.0)

CairoMatrix::__construct -- cairo_matrix_init — Crée un nouvel objet CairoMatrix

Description

Style orienté objet (méthode) :

public CairoMatrix::__construct ([ float $xx = 1.0 [, float $yx = 0.0 [, float $xy = 0.0 [, float $yy = 1.0 [, float $x0 = 0.0 [, float $y0 = 0.0 ]]]]]] )

Style procédural :

object cairo_matrix_init ([ float $xx = 1.0 [, float $yx = 0.0 [, float $xy = 0.0 [, float $yy = 1.0 [, float $x0 = 0.0 [, float $y0 = 0.0 ]]]]]] )

Retourne un nouvel objet CairoMatrix. Les matrices sont utilisés à travers Cairo pour convertir différents espaces de coordonnées. Définissez une matrice pour être une transformation affine fournie par xx, yx, xy, yy, x0, y0. La transformation est fournie par : x_new = xx * x + xy * y + x0; and y_new = yx * x + yy * y + y0;

Liste de paramètres

xx

Composant en xx de la transformation affine.

yx

Composant en yx de la transformation affine.

xy

Composant en xy de la transformation affine.

yy

Composant en yy de la transformation affine.

x0

Composant de la traduction en X de la transformation affine.

y0

Composant de la traduction en Y de la transformation affine.

Valeurs de retour

Retourne un nouvel objet CairoMatrix qui peut être utilisé avec les surfaces, les contextes ainsi que les masques.

Exemples

Exemple #1 Style orienté objet

<?php
/* Crée une nouvelle matrice */
$matrix = new CairoMatrix(1.0, 0.5, 0.0, 1.0, 0.0, 0.0);
?>

Exemple #2 Style procédural

<?php
/* Crée une nouvelle matrice */
$matrix = cairo_matrix_init(1.0, 0.5, 0.0, 1.0, 0.0, 0.0);
?>

Voir aussi

  • CairoMatrix::initIdentity() - Crée une nouvelle matrice d'identité
  • CairoMatrix::initRotate() - Crée une nouvelle matrice de rotation
  • CairoMatrix::initScale() - Crée une nouvelle matrice de mise à l'échelle
  • CairoMatrix::initTranslate() - Crée une nouvelle matrice de traduction


Crée une nouvelle matrice d'identité

  • « CairoMatrix::__construct
  • CairoMatrix::initRotate »
  • PHP Manual
  • CairoMatrix
  • Crée une nouvelle matrice d'identité

CairoMatrix::initIdentity

cairo_matrix_init_identity

(PECL cairo >= 0.1.0)

CairoMatrix::initIdentity -- cairo_matrix_init_identity — Crée une nouvelle matrice d'identité

Description

Style orienté objet (méthode) :

public static void CairoMatrix::initIdentity ( void )

Style procédural :

object cairo_matrix_init_identity ( void )

Crée une nouvelle matrice qui est une transformation d'identité. Une transformation d'identité signifie que les données sources sont copiées dans les données cibles sans aucune modification.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un nouvel objet CairoMatrix qui peut être utilisé avec les surfaces, les contextes ainsi que les masques.

Exemples

Exemple #1 Style orienté objet

<?php
/* Crée une nouvelle matrice */
$matrix = CairoMatrix::initIdentity();
?>

Exemple #2 Style procédural

<?php
/* Crée une nouvelle matrice */
$matrix = cairo_matrix_init_identity();
?>

Voir aussi

  • CairoMatrix::__construct() - Crée un nouvel objet CairoMatrix
  • CairoMatrix::initRotate() - Crée une nouvelle matrice de rotation
  • CairoMatrix::initScale() - Crée une nouvelle matrice de mise à l'échelle
  • CairoMatrix::initTranslate() - Crée une nouvelle matrice de traduction


Crée une nouvelle matrice de rotation

  • « CairoMatrix::initIdentity
  • CairoMatrix::initScale »
  • PHP Manual
  • CairoMatrix
  • Crée une nouvelle matrice de rotation

CairoMatrix::initRotate

cairo_matrix_init_rotate

(PECL cairo >= 0.1.0)

CairoMatrix::initRotate -- cairo_matrix_init_rotate — Crée une nouvelle matrice de rotation

Description

Style orienté objet (méthode) :

public static void CairoMatrix::initRotate ( float $radians )

Style procédural :

object cairo_matrix_init_rotate ( float $radians )

Crée une nouvelle matrice de transformation qui effectue une rotation en utilisant un rayon fourni.

Liste de paramètres

radians

angle de rotation, en degrés. La direction de rotation est définie de tel sorte qu'un angle positif tourne dans la direction de l'axe X positif vers la direction de l'axe Y positif. Avec l'orientation par défaut des axes en Cairo, les angles positifs tournent l'objet dans la direction des aiguilles d'une montre.

Valeurs de retour

Retourne un nouvel objet CairoMatrix qui peut être utilisé avec les surfaces, les contextes ainsi que les masques.

Exemples

Exemple #1 Style orienté objet

<?php
/* Crée une nouvelle matrice */
$matrix = CairoMatrix::initRotate(0.3);
?>

Exemple #2 Style procédural

<?php
/* Crée une nouvelle matrice */
$matrix = cairo_matrix_init_rotate(0.3);
?>

Voir aussi

  • CairoMatrix::__construct() - Crée un nouvel objet CairoMatrix
  • CairoMatrix::initIdentity() - Crée une nouvelle matrice d'identité
  • CairoMatrix::initScale() - Crée une nouvelle matrice de mise à l'échelle
  • CairoMatrix::initTranslate() - Crée une nouvelle matrice de traduction


Crée une nouvelle matrice de mise à l'échelle

  • « CairoMatrix::initRotate
  • CairoMatrix::initTranslate »
  • PHP Manual
  • CairoMatrix
  • Crée une nouvelle matrice de mise à l'échelle

CairoMatrix::initScale

cairo_matrix_init_scale

cairo_matrix_create_scale

(PECL cairo >= 0.1.0)

CairoMatrix::initScale -- cairo_matrix_init_scale -- cairo_matrix_create_scale — Crée une nouvelle matrice de mise à l'échelle

Description

Style orienté objet (méthode) :

public static void CairoMatrix::initScale ( float $sx , float $sy )

Style procédural :

object cairo_matrix_init_scale ( float $sx , float $sy )

Crée une nouvelle matrice de transformation qui met à l'échelle par sx et sy sur les dimensions X et Y, respectivement.

Liste de paramètres

sx

Facteur de mise à l'échelle sur la direction X.

sy

Facteur de mise à l'échelle sur la direction Y.

Valeurs de retour

Retourne un nouvel objet CairoMatrix qui peut être utilisé avec les surfaces, les contextes ainsi que les masques.

Exemples

Exemple #1 Style orienté objet

<?php
/* Crée une nouvelle matrice */
$matrix = CairoMatrix::initScale(1.0, 2.0);
?>

Exemple #2 Style procédural

<?php
/* Crée une nouvelle matrice */
$matrix = cairo_matrix_init_scale(1.0, 2.0);
?>

Voir aussi

  • CairoMatrix::__construct() - Crée un nouvel objet CairoMatrix
  • CairoMatrix::initIdentity() - Crée une nouvelle matrice d'identité
  • CairoMatrix::initRotate() - Crée une nouvelle matrice de rotation
  • CairoMatrix::initTranslate() - Crée une nouvelle matrice de traduction


Crée une nouvelle matrice de traduction

  • « CairoMatrix::initScale
  • CairoMatrix::invert »
  • PHP Manual
  • CairoMatrix
  • Crée une nouvelle matrice de traduction

CairoMatrix::initTranslate

cairo_matrix_init_translate

(PECL cairo >= 0.1.0)

CairoMatrix::initTranslate -- cairo_matrix_init_translate — Crée une nouvelle matrice de traduction

Description

Style orienté objet (méthode) :

public static void CairoMatrix::initTranslate ( float $tx , float $ty )

Style procédural :

object cairo_matrix_init_translate ( float $tx , float $ty )

Crée une nouvelle matrice de transformation qui traduit par tx et ty dans les dimensions X et Y, respectivement.

Liste de paramètres

tx

Traduction dans la direction X.

ty

Traduction dans la direction Y.

Valeurs de retour

Retourne un nouvel objet CairoMatrix qui peut être utilisé avec les surfaces, les contextes ainsi que les masques.

Exemples

Exemple #1 Style orienté objet

<?php
/* Crée une nouvelle matrice */
$matrix = CairoMatrix::initTranslate(1.0, 2.0);
?>

Exemple #2 Style procédural

<?php
/* Crée une nouvelle matrice */
$matrix = cairo_matrix_init_translate(1.0, 2.0);
?>

Voir aussi

  • CairoMatrix::__construct() - Crée un nouvel objet CairoMatrix
  • CairoMatrix::initIdentity() - Crée une nouvelle matrice d'identité
  • CairoMatrix::initRotate() - Crée une nouvelle matrice de rotation
  • CairoMatrix::initScale() - Crée une nouvelle matrice de mise à l'échelle


Le but de invert

  • « CairoMatrix::initTranslate
  • CairoMatrix::multiply »
  • PHP Manual
  • CairoMatrix
  • Le but de invert

CairoMatrix::invert

(PECL cairo >= 0.1.0)

CairoMatrix::invert — Le but de invert

Description

public void CairoMatrix::invert ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoMatrix::invert()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de multiply

  • « CairoMatrix::invert
  • CairoMatrix::rotate »
  • PHP Manual
  • CairoMatrix
  • Le but de multiply

CairoMatrix::multiply

(PECL cairo >= 0.1.0)

CairoMatrix::multiply — Le but de multiply

Description

public static CairoMatrix CairoMatrix::multiply ( CairoMatrix $matrix1 , CairoMatrix $matrix2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

matrix1

matrix2

Valeurs de retour

Description...

Exemples

Exemple #1 Exemple avec CairoMatrix::multiply()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de rotate

  • « CairoMatrix::multiply
  • CairoMatrix::scale »
  • PHP Manual
  • CairoMatrix
  • Le but de rotate

CairoMatrix::rotate

cairo_rotate

(PECL cairo >= 0.1.0)

CairoMatrix::rotate -- cairo_rotate — Le but de rotate

Description

Style orienté objet (méthode) :

public void CairoMatrix::rotate ( string $sx , string $sy )

Style procédural :

void cairo_rotate ( CairoContext $context , string $angle )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

angle

sx

sy

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Applique une mise à l'échelle à une matrice

  • « CairoMatrix::rotate
  • CairoMatrix::transformDistance »
  • PHP Manual
  • CairoMatrix
  • Applique une mise à l'échelle à une matrice

CairoMatrix::scale

cairo_matrix_scale

(PECL cairo >= 0.1.0)

CairoMatrix::scale -- cairo_matrix_scale — Applique une mise à l'échelle à une matrice

Description

Style orienté objet (méthode) :

public void CairoMatrix::scale ( float $sx , float $sy )

Style procédural :

void cairo_matrix_scale ( CairoContext $context , float $sx , float $sy )

Applique une mise à l'échelle par sx, sy à la transformation dans la matrice. L'effet de cette nouvelle transformation est de, premièrement, mettre à l'échelle les coordonnées par sx et sy, puis, appliquer la transformation originale aux coordonnées.

Liste de paramètres

matrix

Procédural uniquement - instance CairoMatrix

sx

Facteur de mise à l'échelle dans la direction X.

sy

Facteur de mise à l'échelle dans la direction Y.

Exemples

Exemple #1 Style orienté objet

<?php
/* Applique la mise à l'échelle à la matrice */
$matrix = new CairoMatrix(1.0, 0.5, 0.0, 1.0, 0.0, 0.0);
$matrix->scale(0.2, 2.0);
?>

Exemple #2 Style procédural

<?php
/* Applique la mise à l'échelle à la matrice */
$matrix = cairo_matrix_init(1.0, 0.5, 0.0, 1.0, 0.0, 0.0);
cairo_matrix_scale($matrix, 0.2, 2.0);
?>

Voir aussi

  • CairoMatrix::initScale() - Crée une nouvelle matrice de mise à l'échelle


Le but de transformDistance

  • « CairoMatrix::scale
  • CairoMatrix::transformPoint »
  • PHP Manual
  • CairoMatrix
  • Le but de transformDistance

CairoMatrix::transformDistance

(PECL cairo >= 0.1.0)

CairoMatrix::transformDistance — Le but de transformDistance

Description

public array CairoMatrix::transformDistance ( string $dx , string $dy )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

dx

dy

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoMatrix::transformDistance()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de transformPoint

  • « CairoMatrix::transformDistance
  • CairoMatrix::translate »
  • PHP Manual
  • CairoMatrix
  • Le but de transformPoint

CairoMatrix::transformPoint

(PECL cairo >= 0.1.0)

CairoMatrix::transformPoint — Le but de transformPoint

Description

public array CairoMatrix::transformPoint ( string $dx , string $dy )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

dx

dy

Valeurs de retour

Exemples

Exemple #1 Exemple avec CairoMatrix::transformPoint()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


Le but de translate

  • « CairoMatrix::transformPoint
  • CairoOperator »
  • PHP Manual
  • CairoMatrix
  • Le but de translate

CairoMatrix::translate

cairo_translate

(PECL cairo >= 0.1.0)

CairoMatrix::translate -- cairo_translate — Le but de translate

Description

Style orienté objet (méthode) :

public void CairoMatrix::translate ( string $tx , string $ty )

Style procédural :

void cairo_translate ( CairoContext $context , string $x , string $y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

context

x

y

tx

ty

Valeurs de retour

Exemples

Exemple #1 Style orienté objet

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Exemple #2 Style procédural

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


La classe CairoOperator

(No version information available, might only be in Git)

Introduction

La classe est utilisée pour définir l'opération de composition pour toutes les opérations de dessin Cairo.

L'opérateur par défaut est CairoOperator::OVER

Les opérateurs marqués comme non bornés modifient leurs destinations, même en dehors de la couche des masques (aussi, leur effet n'est pas lié à la couche des masques). Cependant, leur effet peut toujours être limité par voie de saturation.

Pour garder ceci simple, la description des opérateurs de ce manuel parte du principe qu'à la fois la source et la destination sont soit totalement transparents, soit totalement opaques. L'implémentation actuel fonctionne aussi avec les couches translucides. Pour plus d'explications sur les effets de chaque opérateur, y compris les définitions mathématiques, reportez-vous à http://cairographics.org/operators/.

Synopsis de la classe

CairoOperator {
/* Constantes */
const integer CLEAR = 0 ;
const integer SOURCE = 1 ;
const integer OVER = 2 ;
const integer IN = 3 ;
const integer OUT = 4 ;
const integer ATOP = 5 ;
const integer DEST = 6 ;
const integer DEST_OVER = 7 ;
const integer DEST_IN = 8 ;
const integer DEST_OUT = 9 ;
const integer DEST_ATOP = 10 ;
const integer XOR = 11 ;
const integer ADD = 12 ;
const integer SATURATE = 13 ;
}

Constantes pré-définies

CairoOperator::CLEAR

Nettoie le calque de destination (borné).

CairoOperator::SOURCE

Remplace le calque de destination (borné).

CairoOperator::OVER

Dessine le calque source en haut du calque de destination (borné).

CairoOperator::IN

Dessine la source à l'endroit où se trouve le contenu sur la destination (non borné).

CairoOperator::OUT

Dessine la source à l'endroit où ne se trouve aucun contenu sur la destination (non borné).

CairoOperator::ATOP

Dessine la source en haut du contenu de la destination, et uniquement là.

CairoOperator::DEST

Ignore le source.

CairoOperator::DEST_OVER

Dessine la destination en haut de la source.

CairoOperator::DEST_IN

Quitte la destination uniquement où il y a du contenu sur la source (non borné).

CairoOperator::DEST_OUT

Quitte la destination uniquement où il n'y a pas de contenu sur la source.

CairoOperator::DEST_ATOP

Quitte la destination en haut du contenu de la source et uniquement là (non borné).

CairoOperator::XOR

Source et destination sont montrés lorsqu'il n'y a qu'un seul des 2.

CairoOperator::ADD

Les calques source et destination sont cumulés.

CairoOperator::SATURATE

Comme CairoOperator::OVER, mais en assumant que la source et la destination sont à géométrie disjointe.


La classe CairoPath

(No version information available, might only be in Git)

Introduction

Note : la classe CairoPath ne peut être instanciée directement. Si vous le faîtes, une erreur fatale sera émise ou transmise au gestion d'erreur.

Synopsis de la classe

CairoPath {
}


La classe CairoPsLevel

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

CairoPsLevel {
/* Constantes */
const integer LEVEL_2 = 0 ;
const integer LEVEL_3 = 1 ;
}

Constantes pré-définies

CairoPsLevel::LEVEL_2

CairoPsLevel::LEVEL_3


La classe CairoSubpixelOrder

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

CairoSubpixelOrder {
/* Constantes */
const integer ORDER_DEFAULT = 0 ;
const integer ORDER_RGB = 1 ;
const integer ORDER_BGR = 2 ;
const integer ORDER_VRGB = 3 ;
const integer ORDER_VBGR = 4 ;
}

Constantes pré-définies

CairoSubpixelOrder::ORDER_DEFAULT

CairoSubpixelOrder::ORDER_RGB

CairoSubpixelOrder::ORDER_BGR

CairoSubpixelOrder::ORDER_VRGB

CairoSubpixelOrder::ORDER_VBGR


La classe CairoSvgVersion

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

CairoSvgVersion {
/* Constantes */
const integer VERSION_1_1 = 0 ;
const integer VERSION_1_2 = 1 ;
}

Constantes pré-définies

CairoSvgVersion::VERSION_1_1

CairoSvgVersion::VERSION_1_2


Informations Exif

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Exif
    • exif_imagetype — Détermine le type d'une image
    • exif_read_data — Lit les en-têtes EXIF dans les images JPEG ou TIFF
    • exif_tagname — Lit le nom d'en-tête EXIF d'un index
    • exif_thumbnail — Récupère la miniature d'une image TIFF ou JPEG
    • read_exif_data — Alias de exif_read_data


Introduction

Avec l'extension exif, vous pouvez travailler sur les données méta des images. Par exemple, vous devez utiliser les fonctions exif pour lire les données méta des images prises par des appareils numériques, stockées dans l'en-tête des images JPEG et TIFF.


Pré-requis

Votre PHP doit être compilé avec l'option --enable-exif. PHP n'a besoin d'aucune bibliothèque additionnelle pour faire fonctionner le module exif. Les utilisateurs de Windows doivent également activer l'extension mbstring.


Installation

Pour activer le support EXIF en PHP, il suffit d'ajouter l'option de compilation --enable-exif .

Les utilisateurs Windows doivent s'assurer que les bibliothèques DLL php_mbstring.dll et php_exif.dll sont spécifiées dans le fichier php.ini. La bibliothèque php_mbstring.dll doit être chargée avant la bibliothèque php_exif.dll : pensez à ajuster votre php.ini.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

EXIF supporte automatiquement la conversion depuis Unicode et JIS, lorsque le module mbstring est compilé avec PHP. Cela se fait en décodant le commentaire avec le jeu de caractères spécifié. Le résultat est ensuite codé avec un autre jeu de caractères, compatible avec la sortie HTTP.

Options de configuration Exif
Nom | Défaut | Modifiable | Historique
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.encode_jis | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_jis_intel | "JIS" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

exif.encode_unicode string

exif.encode_unicode définit la méthode de gestion des commentaires écrits en Unicode. La valeur par défaut est ISO-8859-15, qui devrait fonctionner dans tous les pays non-asiatiques. Cette directive peut être laissée vide, ou prendre un des jeux de caractères supporté par mbstring. Si elle est vide, le jeu de caractères interne de mbstring sera utilisé.

exif.decode_unicode_motorola string

exif.decode_unicode_motorola définit le jeu de caractères de remplacement pour les commentaires utilisateurs écrits en Unicode, si l'ordre des bits est celui de Motorola (big-endian). Cette directive ne peut être laissée vide, et doit être un des jeux de caractères supportés par l'extension mbstring. La valeur par défaut est UCS-2BE.

exif.decode_unicode_intel string

exif.decode_unicode_intel définit le jeu de caractères de remplacement pour les commentaires utilisateurs écrits en Unicode, si l'ordre des bits est celui de Intel (little-endian). Cette directive ne peut être laissée vide, et doit être un des jeux de caractères supportés par l'extension mbstring. La valeur par défaut est UCS-2LE.

exif.encode_jis string

exif.encode_jis définit la méthode de gestion des commentaires écrits en caractères JIS. La valeur par défaut est une chaîne vide, qui fait que le jeu de caractères interne de mbstring est utilisé.

exif.decode_jis_motorola string

exif.decode_jis_motorola définit le jeu de caractères de remplacement pour les commentaires utilisateurs écrits en JIS, si l'ordre des bits est celui de Motorola (big-endian). Cette directive ne peut être laissée vide, et doit être un des jeux de caractères supportés par l'extension mbstring. La valeur par défaut est JIS.

exif.decode_jis_intel string

exif.decode_jis_intel définit le jeu de caractères de remplacement pour les commentaires utilisateurs écrits en JIS, si l'ordre des bits est celui de Intel (little-endian). Cette directive ne peut être laissée vide, et doit être un des jeux de caractères supportés par l'extension mbstring. La valeur par défaut est JIS.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

EXIF_USE_MBSTRING (entier)

La fonction exif_imagetype() liste plusieurs constantes connexes.


Fonctions Exif

Sommaire

  • exif_imagetype — Détermine le type d'une image
  • exif_read_data — Lit les en-têtes EXIF dans les images JPEG ou TIFF
  • exif_tagname — Lit le nom d'en-tête EXIF d'un index
  • exif_thumbnail — Récupère la miniature d'une image TIFF ou JPEG
  • read_exif_data — Alias de exif_read_data


Détermine le type d'une image

  • « Fonctions Exif
  • exif_read_data »
  • PHP Manual
  • Fonctions Exif
  • Détermine le type d'une image

exif_imagetype

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

exif_imagetype — Détermine le type d'une image

Description

int exif_imagetype ( string $filename )

exif_imagetype() lit les premiers octets du fichier d'image filename, et vérifie sa signature.

exif_imagetype() peut être utilisée pour éviter les appels aux autres fonctions exif pour les formats de fichiers qui ne sont pas supportés, ou en conjonction avec $_SERVER['HTTP_ACCEPT'] pour vérifier si l'utilisateur pourra voir cette image dans son navigateur.

Liste de paramètres

filename
L'image à vérifier.

Valeurs de retour

Lorsqu'une valeur valide est trouvée, la constante appropriée est retournée, et sinon, FALSE. La valeur retournée est la même que la fonction getimagesize() à l'index 2, mais cette fonction est bien plus rapide.

Note:

La fonction exif_imagetype() émettra une alerte de niveau E_NOTICE et retournera FALSE si elle n'est pas capable de lire assez d'octets depuis le fichier pour y déterminer le type d'image.

Historique

Version | Description
5.3.0 | Ajout du support icon.

Constantes pré-définies

Les constantes suivantes sont définies et représentent les valeurs possibles de retour de la fonction exif_imagetype() :

Constantes de type d'images
Valeur | Constante
1 | IMAGETYPE_GIF
2 | IMAGETYPE_JPEG
3 | IMAGETYPE_PNG
4 | IMAGETYPE_SWF
5 | IMAGETYPE_PSD
6 | IMAGETYPE_BMP
7 | IMAGETYPE_TIFF_II (ordre d'octets d'Intel)
8 | IMAGETYPE_TIFF_MM (ordre d'octets Motorola)
9 | IMAGETYPE_JPC
10 | IMAGETYPE_JP2
11 | IMAGETYPE_JPX
12 | IMAGETYPE_JB2
13 | IMAGETYPE_SWC
14 | IMAGETYPE_IFF
15 | IMAGETYPE_WBMP
16 | IMAGETYPE_XBM
17 | IMAGETYPE_ICO

Exemples

Exemple #1 Exemple avec exif_imagetype()

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
    echo 'Cette image n\'est pas un gif';
}
?>

Voir aussi

  • image_type_to_mime_type() - Lit le Mime-Type d'un type d'image
  • getimagesize() - Retourne la taille d'une image


Lit les en-têtes EXIF dans les images JPEG ou TIFF

  • « exif_imagetype
  • exif_tagname »
  • PHP Manual
  • Fonctions Exif
  • Lit les en-têtes EXIF dans les images JPEG ou TIFF

exif_read_data

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

exif_read_data — Lit les en-têtes EXIF dans les images JPEG ou TIFF

Description

array exif_read_data ( string $filename [, string $sections = NULL [, bool $arrays = false [, bool $thumbnail = false ]]] )

exif_read_data() lit les en-têtes EXIF des images JPEG et TIFF. Avec cette fonction, vous pouvez lire les données méta générées par les appareils photos numériques.

Les en-têtes EXIF tendent à être présents dans les images JPEG/TIFF générées par les appareils photos numériques, mais malheureusement, chaque appareil photo numérique a une idée différente de la façon dont leurs images doivent être marquées, donc, vous ne pouvez pas toujours compter sur un en-tête EXIF spécifique, bien que présent.

Les paramètres Height et Width sont calculés de la même façon que pour la fonction getimagesize(), donc leurs valeurs ne feront parties d'aucun en-tête retourné. De même, l'index html est la représentation textuelle de la hauteur/largeur utilisée dans une balise image HTML classique.

Lorsqu'un en-tête EXIF contient une note de Copyright, cet en-tête peut alors contenir lui-même deux valeurs. Comme cette solution est incohérente avec les standards EXIF 2.10, la section COMPUTED retournera les deux en-têtes, Copyright.Photographer et Copyright.Editor, tandis que les sections IFD0 contiennent le tableau d'octets avec des caractères NULL pour séparer les deux entrées ; ou bien, juste la première entrée si le type de données était erroné (comportement par défaut de EXIF). La section COMPUTED va aussi contenir une entrée Copyright, qui sera soit la chaîne originale de copyright, soit une liste de valeurs séparées par des virgules de photos et de copyright de l'auteur.

La balise UserComment présente le même problème que la balise Copyright. Elle peut stocker deux valeurs : en premier, le jeu de caractères utilisé, puis la valeur elle-même. Si c'est le cas, la section IFD contiendra uniquement le jeu de caractères, ou bien un tableau d'octets. La section COMPUTED va stocker les deux entrées UserCommentEncoding et UserComment. L'index UserComment est disponible dans les deux cas, et il est préférable de l'utiliser, plutôt que la valeur de la section IFD0.

exif_read_data() valide les données des balises EXIF en accord avec la spécification EXIF (» http://exif.org/Exif2-2.PDF, page 20).

Note:

Windows Me/XP peuvent endommager les en-têtes EXIF lors de la connexion à la caméra.

Liste de paramètres

filename

Le nom du fichier image à lire. Il ne peut pas être une URL.

sections

Liste de valeur séparées par des virgules des sections qui devront être présentées dans le tableau de résultat. Si aucune des sections demandées n'est trouvée, la valeur retournée est FALSE.

FILE | FileName (nom du ficher), FileSize (taille du fichier), FileDateTime (date de modification du fichier), SectionsFound (sections trouvées)
COMPUTED | Attribut Html, largeur, hauteur, couleur ou noir et blanc et plus si disponible. La largeur et la hauteur sont calculées de la même façon que la fonction getimagesize(), donc, leurs valeurs ne devraient jamais différer. De même, l'index html est la représentation textuelle de la hauteur/largeur utilisée dans une balise image HTML classique.
ANY_TAG | Toutes les informations concernant cette balise, comme IFD0, EXIF, ...
IFD0 | Toutes les balises IFD0. Dans les images normales, ils contiennent les dimensions de l'image, etc.
THUMBNAIL | Un fichier qui contient une miniature, s'il y a un second IFD. Toutes les informations mises en balises à propos de cette miniature seront stockées dans cette section.
COMMENT | En-tête de commentaire des images JPEG.
EXIF | La section EXIF est une sous section de la section IFD0. Elle contient des informations plus détaillées sur les images. La plupart de ces index sont reliés aux appareils numériques.

arrays

Spécifie si chaque section doit être un tableau ou non. Les sections COMPUTED, THUMBNAIL et COMMENT seront toujours transformées en tableau, car elle contiennent des noms qui risquent d'être en conflit.

thumbnail

Lorsque défini à TRUE, la miniature elle-même est lue. Sinon, seules les données contenues dans le taf seront lues.

Valeurs de retour

Retourne un tableau associatif où les indexes sont les noms des en-têtes et les valeurs sont les valeurs associées à ces en-têtes. Si aucune donnée ne peut être retournée, exif_read_data() retournera FALSE.

Historique

Version | Description
4.3.0 | Peut aussi lire les sections IFD incluses dans les tableaux, et retournées sous cette forme. De plus, la taille d'une miniature intégrée est retournée dans le sous tableau THUMBNAIL et la fonction exif_read_data() peut retourner les miniatures au format TIFF. Enfin, il n'y a plus de longueur maximale pour les valeurs renvoyées (hormis la place en mémoire).
4.3.0 | Si PHP a été compilé avec le support mbstring, les commentaires utilisateurs peuvent changés automatiquement de jeu de caractères. De plus, si les commentaires utilisateurs utilisent l'encodage Unicode ou JIS, cet encodage sera automatiquement modifié en accord avec le paramètre de configuration exif du php.ini.
4.3.0 | Si l'image contient des données IFD0, alors la section COMPUTED contient l'entrée ByteOrderMotorola qui vaut 0 pour little-endian (Intel) et 1 pour big-endian (Motorola). En outre, les sections COMPUTED et UserComment ne contiennent as seulement la première entrée de l'index copyright si les données sont fausses.

Exemples

Exemple #1 Exemple avec exif_read_data()

<?php
echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? "Aucun en-tête de donnés n'a été trouvé.<br />\n" : "L'image contient des en-têtes<br />\n";

$exif = exif_read_data('tests/test2.jpg', 0, true);
echo "test2.jpg:<br />\n";
foreach ($exif as $key => $section) {
    foreach ($section as $name => $val) {
        echo "$key.$name: $val<br />\n";
    }
}
?>

Le premier appel échoue car l'image n'a pas d'en-tête d'information.

L'exemple ci-dessus va afficher quelque chose de similaire à :

test1.jpg:
Aucun en-tête de donnés n'a été trouvé.
test2.jpg:
FILE.FileName: test2.jpg
FILE.FileDateTime: 1017666176
FILE.FileSize: 1240
FILE.FileType: 2
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, COMMENT
COMPUTED.html: width="1" height="1"
COMPUTED.Height: 1
COMPUTED.Width: 1
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.UserComment: Exif test image.
COMPUTED.UserCommentEncoding: ASCII
COMPUTED.Copyright: Photo (c) M.Boerger, Edited by M.Boerger.
COMPUTED.Copyright.Photographer: Photo (c) M.Boerger
COMPUTED.Copyright.Editor: Edited by M.Boerger.
IFD0.Copyright: Photo (c) M.Boerger
IFD0.UserComment: ASCII
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.JPEGInterchangeFormatLength: 523
COMMENT.0: Comment #1.
COMMENT.1: Comment #2.
COMMENT.2: Comment #3end
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.Thumbnail.Height: 1
THUMBNAIL.Thumbnail.Height: 1

Voir aussi

  • exif_thumbnail() - Récupère la miniature d'une image TIFF ou JPEG
  • getimagesize() - Retourne la taille d'une image


Lit le nom d'en-tête EXIF d'un index

  • « exif_read_data
  • exif_thumbnail »
  • PHP Manual
  • Fonctions Exif
  • Lit le nom d'en-tête EXIF d'un index

exif_tagname

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

exif_tagname — Lit le nom d'en-tête EXIF d'un index

Description

string exif_tagname ( int $index )

Liste de paramètres

index

L'id de Tag pour lequel un nom sera recherché.

Valeurs de retour

exif_tagname() retourne FALSE si index n'est pas un id de tag EXIF défini, sinon elle retourne le nom de l'en-tête.

Exemples

Exemple #1 Exemple pour exif_tagname()

<?php
echo "256: ".exif_tagname(256).PHP_EOL;
echo "257: ".exif_tagname(257).PHP_EOL;
?>

L'exemple ci-dessus va afficher :

256: ImageWidth
257: ImageLength

Voir aussi

  • exif_imagetype() - Détermine le type d'une image
  • » EXIF Specification
  • » EXIF Tags


Récupère la miniature d'une image TIFF ou JPEG

  • « exif_tagname
  • read_exif_data »
  • PHP Manual
  • Fonctions Exif
  • Récupère la miniature d'une image TIFF ou JPEG

exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

exif_thumbnail — Récupère la miniature d'une image TIFF ou JPEG

Description

string exif_thumbnail ( string $filename [, int &$width [, int &$height [, int &$imagetype ]]] )

exif_thumbnail() lit la miniature de l'image TIFF ou JPEG dans le fichier filename.

Si vous voulez afficher des miniatures avec cette fonction, vous devez envoyer le bon type MIME avec la fonction header().

Il est possible que la fonction exif_thumbnail() n'arrive pas à créer l'image mais peut déterminer sa taille. Dans ce cas, la fonction retourne FALSE mais les paramètres width et height sont définis.

Liste de paramètres

filename

Le nom du fichier image à lire. Cette image contient une miniature.

width

La largeur retournée de la miniature retournée.

height

La hauteur retournée de la miniature retournée.

imagetype

Le type de l'image retourné de la miniature retournée. Peut être soit TIFF, soit JPEG.

Valeurs de retour

Retourne la miniature embarquée ou FALSE si l'image ne contient pas de miniature.

Exemples

Exemple #1 Exemple avec exif_thumbnail()

<?php
if (array_key_exists('file', $_REQUEST)) {
    $image = exif_thumbnail($_REQUEST['file'], $width, $height, $type);
} else {
    $image = false;
}
if ($image!==false) {
    header('Content-type: ' .image_type_to_mime_type($type));
    echo $image;
    exit;
} else {
    // aucune miniature de disponible, traitement de l'erreur ici
    echo 'No thumbnail available';
}
?>

Voir aussi

  • exif_read_data() - Lit les en-têtes EXIF dans les images JPEG ou TIFF
  • image_type_to_mime_type() - Lit le Mime-Type d'un type d'image


Alias de exif_read_data

  • « exif_thumbnail
  • GD »
  • PHP Manual
  • Fonctions Exif
  • Alias de exif_read_data

read_exif_data

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

read_exif_data — Alias de exif_read_data()

Description

Cette fonction est un alias de : exif_read_data().


Traitement des images et GD

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Création d'une image PNG avec PHP
    • Ajout d'un tatouage numérique sur des images en utilisant un canal Alpha
    • Exemple avec imagecopymerge pour créer un tatouage numérique translucide
  • Fonctions GD et images
    • gd_info — Retourne des informations à propos de la bibliothèque GD installée
    • getimagesize — Retourne la taille d'une image
    • getimagesizefromstring — Récupère la taille d'une image depuis une chaîne
    • image_type_to_extension — Retourne l'extension du fichier pour le type d'image
    • image_type_to_mime_type — Lit le Mime-Type d'un type d'image
    • image2wbmp — Affichage de l'image vers le navigateur ou dans un fichier
    • imageaffine — Retourne une image contenant l'image source transformé, en utilisant optionnellement une zone de découpe
    • imageaffinematrixconcat — Concatène deux matrices
    • imageaffinematrixget — Retourne une image contenant l'image source transformée, en utilisant optionnellement une zone de découpe
    • imagealphablending — Modifie le mode de blending d'une image
    • imageantialias — Utiliser ou non les fonctions d'antialias
    • imagearc — Dessine une ellipse partielle
    • imagechar — Dessine un caractère horizontalement
    • imagecharup — Dessine un caractère verticalement
    • imagecolorallocate — Alloue une couleur pour une image
    • imagecolorallocatealpha — Alloue une couleur à une image
    • imagecolorat — Retourne l'index de la couleur d'un pixel donné
    • imagecolorclosest — Retourne l'index de la couleur la plus proche d'une couleur donnée
    • imagecolorclosestalpha — Retourne la couleur la plus proche, en tenant compte du canal alpha
    • imagecolorclosesthwb — Lit l'index de la couleur spécifiée avec sa teinte, blanc et noir
    • imagecolordeallocate — Supprime une couleur d'une image
    • imagecolorexact — Retourne l'index de la couleur donnée
    • imagecolorexactalpha — Retourne l'index d'une couleur avec son canal alpha
    • imagecolormatch — Fait correspondre un peu plus les couleurs de la version palette d'une image aux couleurs de sa version truecolor
    • imagecolorresolve — Retourne l'index de la couleur donnée, ou la plus proche possible
    • imagecolorresolvealpha — Retourne un index de couleur ou son alternative la plus proche, y compris le canal alpha
    • imagecolorset — Change la couleur dans une palette à l'index donné
    • imagecolorsforindex — Retourne la couleur associée à un index
    • imagecolorstotal — Calcule le nombre de couleurs d'une palette
    • imagecolortransparent — Définit la couleur transparente
    • imageconvolution — Applique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage
    • imagecopy — Copie une partie d'une image
    • imagecopymerge — Copie et fusionne une partie d'une image
    • imagecopymergegray — Copie et fusionne une partie d'une image en niveaux de gris
    • imagecopyresampled — Copie, redimensionne, rééchantillonne une image
    • imagecopyresized — Copie et redimensionne une partie d'une image
    • imagecreate — Crée une nouvelle image à palette
    • imagecreatefromgd2 — Crée une nouvelle image à partir d'un fichier GD2 ou d'une URL
    • imagecreatefromgd2part — Crée une nouvelle image à partir d'une partie de fichier GD2 ou d'une URL
    • imagecreatefromgd — Crée une nouvelle image à partir d'un fichier GD ou d'une URL
    • imagecreatefromgif — Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefromjpeg — Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefrompng — Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefromstring — Crée une image à partir d'une chaîne
    • imagecreatefromwbmp — Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefromwebp — Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefromxbm — Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefromxpm — Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatetruecolor — Crée une nouvelle image en couleurs vraies
    • imagecrop — Recadre une image en utilisant les coordonnées, la taille, x, y, hauteur et largeur fournis
    • imagecropauto — Recadre une image automatiquement en utilisant un des modes disponibles
    • imagedashedline — Dessine une ligne pointillée
    • imagedestroy — Détruit une image
    • imageellipse — Dessine une ellipse
    • imagefill — Remplissage
    • imagefilledarc — Dessine un arc partiel et le remplit
    • imagefilledellipse — Dessine une ellipse pleine
    • imagefilledpolygon — Dessine un polygone rempli
    • imagefilledrectangle — Dessine un rectangle rempli
    • imagefilltoborder — Remplit une région avec une couleur spécifique
    • imagefilter — Applique un filtre à une image
    • imageflip — Retourne une image en utilisant le mode fourni
    • imagefontheight — Retourne la hauteur de la police
    • imagefontwidth — Retourne la largeur de la police
    • imageftbbox — Calcule le rectangle d'encadrement pour un texte, en utilisant la police courante et freetype2
    • imagefttext — Écrit du texte dans une image avec la police courante FreeType 2
    • imagegammacorrect — Applique une correction gamma à l'image GD
    • imagegd2 — Génère une image au format GD2, vers le navigateur ou un fichier
    • imagegd — Génère une image au format GD, vers le navigateur ou un fichier
    • imagegetclip — Get the clipping rectangle
    • imagegif — Affichage de l'image vers le navigateur ou dans un fichier
    • imagegrabscreen — Capture l'écran complet
    • imagegrabwindow — Capture une fenêtre
    • imageinterlace — Active ou désactive l'entrelacement
    • imageistruecolor — Détermine si une image est une image truecolor
    • imagejpeg — Affichage de l'image vers le navigateur ou dans un fichier
    • imagelayereffect — Active l'option d'alpha blending, pour utiliser les effets de libgd
    • imageline — Dessine une ligne
    • imageloadfont — Charge une nouvelle police
    • imageopenpolygon — Draws an open polygon
    • imagepalettecopy — Copie la palette d'une image à l'autre
    • imagepalettetotruecolor — Convertit une image basée sur une palette en couleur vraie
    • imagepng — Envoie une image PNG vers un navigateur ou un fichier
    • imagepolygon — Dessine un polygone
    • imagepsbbox — Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1
    • imagepsencodefont — Change le codage vectoriel d'un caractère dans une police
    • imagepsextendfont — Étend ou condense une police de caractères
    • imagepsfreefont — Libère la mémoire occupée par une police PostScript Type 1
    • imagepsloadfont — Charge une police PostScript Type 1 depuis un fichier
    • imagepsslantfont — Incline une police de caractères PostScript
    • imagepstext — Dessine un texte sur une image avec une police PostScript Type1
    • imagerectangle — Dessine un rectangle
    • imageresolution — Get or set the resolution of the image
    • imagerotate — Fait tourner une image d'un angle
    • imagesavealpha — Configure l'enregistrement des informations complètes du canal alpha lors de sauvegardes d'images PNG
    • imagescale — Met à l'échelle une image en utilisant une hauteur et une largeur fournies
    • imagesetbrush — Modifie la brosse pour le dessin des lignes
    • imagesetclip — Set the clipping rectangle
    • imagesetinterpolation — Défini la méthode d'interpolation
    • imagesetpixel — Dessine un pixel
    • imagesetstyle — Configure le style pour le dessin des lignes
    • imagesetthickness — Modifie l'épaisseur d'un trait
    • imagesettile — Modifie l'image utilisée pour le carrelage
    • imagestring — Dessine une chaîne horizontale
    • imagestringup — Dessine une chaîne verticale
    • imagesx — Retourne la largeur d'une image
    • imagesy — Retourne la hauteur de l'image
    • imagetruecolortopalette — Convertit une image en couleurs vraies en image à palette
    • imagettfbbox — Retourne le rectangle entourant un texte et dessiné avec une police TrueType
    • imagettftext — Dessine un texte avec une police TrueType
    • imagetypes — Retourne les types d'images supportés par la version courante de PHP
    • imagewbmp — Affichage de l'image vers le navigateur ou dans un fichier
    • imagewebp — Affiche une image WebP vers un navigateur ou un fichier
    • imagexbm — Génère une image au format XBM
    • iptcembed — Intègre des données binaires IPTC dans une image JPEG
    • iptcparse — Analyse un bloc binaire IPTC et recherche les balises simples
    • jpeg2wbmp — Convertit une image JPEG en image WBMP
    • png2wbmp — Convertit une image PNG en image WBMP


Introduction

PHP ne se limite pas à la génération de pages HTML. Il peut aussi servir à créer et manipuler des images, dans un grand choix de formats, comme GIF, PNG, JPEG, WBMP et XPM. Et PHP peut même générer directement des images pour le navigateur, avec la bibliothèque GD. GD et PHP auront aussi besoin d'autres bibliothèques, en fonction des formats que vous souhaitez utiliser.

Vous pouvez utiliser les fonctions PHP pour obtenir les tailles des images aux formats JPEG, GIF, PNG, SWF, TIFF et JPEG2000.

Avec l'extension exif, vous pourrez travailler avec les informations stockées dans les en-têtes des images JPEG et TIFF. De cette façon, vous pourrez lire les métadonnées générées par les appareils numériques. Les fonctions exif ne nécessitent pas la bibliothèque GD.

Note: Lisez la section sur les besoins pour savoir comment étendre les capacités des fonctions sur les images pour lire, écrire et modifier les images. Pour lire les métadonnées des photos prises avec des appareils numériques, vous devez utiliser l'extension exif mentionnée ci-dessus.

Note: La fonction getimagesize() ne nécessite pas l'extension GD.

GD supporte un grand nombre de formats ; voici une liste de formats supportés par GD ainsi que des notes spécifiant la disponibilité du support en lecture/écriture.

Formats supportés par GD
Format | Support en lecture | Support en écriture | Notes
JPEG | TRUE | TRUE | GD 1.8+
PNG | TRUE | TRUE |
GIF | TRUE | TRUE | Non disponible entre les versions GD 1.6 et GD 2.0.28
XBM | TRUE | TRUE | Support en lecture depuis PHP 4.0.1 et en écriture depuis PHP 5.0.0
XPM | TRUE | FALSE | Support en lecture depuis PHP 4.0.1, non disponible sous Windows. Requiert la version embarquée de GD
WBMP | TRUE | TRUE | GD 1.8+
WebP | TRUE | TRUE | GD 2.1+, PHP 5.5+

Malgré le fait que la plupart des formats soit disponible avec un support en lecture et en écriture dans le tableau ci-dessous, cela ne signifie pas que PHP a été compilé avec le support adéquate. Pour connaître les formats supportés par GD durant la compilation, utilisez la fonction gd_info() ; pour plus d'informations sur le support lors de la compilation d'un ou plusieurs formats, reportez-vous au chapitre sur l'installation.


Pré-requis

Si vous disposez de la bibliothèque GD (disponible à » http://www.libgd.org/) vous pourrez aussi créer et manipuler des images.

Les formats des images que vous pourrez manipuler dépendent de la version de GD que vous installerez, et de toutes autres bibliothèques dont GD a besoin pour traiter ces images. Les versions antérieures à la version 1.6 supportent le GIF, mais pas le PNG. À partir des version de GD supérieures à 1.6 et inférieures à 2.0.28, c'est le contraire. Le support du GIF a été rajouté à partir de la version 2.0.28.

Note: Depuis PHP 4.3, il existe une version de GD qui est distribuée avec PHP. Cette version contient des fonctionnalités supplémentaires, comme les canaux alpha, et il est recommandé de l'utiliser de préférence à la bibliothèque externe, car elle est mieux supportée, et bien plus stable.

Vous pouvez aussi améliorer GD en lui ajoutant des formats d'images supplémentaires.

Formats d'images supportés
Format d'image | Bibliothèque à télécharger | Notes
gif |  | Uniquement supporté en versions de GD antérieures à la version 1.6 et supérieures ou égales à la version 2.0.28. Le support des images GIF est disponible en lecture seule depuis PHP 4.3.0, et dans la version de la bibliothèque qui est fournie avec la distribution de PHP. L'écriture est supportée depuis PHP 4.3.9 et PHP 5.0.1.
jpeg | » http://www.ijg.org/ | Lors de la compilation de la bibliothèque jpeg (avant celle de PHP), vous devez utiliser l'option de configuration --enable-shared . Dans le cas contraire, vous recevrez une erreur disant que libjpeg.(a|so) not found lorsque vous tenterez de configurer PHP avant de le compiler.
png | » http://www.libpng.org/pub/png/libpng.html | Uniquement supporté avec GD plus récente que la version 1.6.
xpm | » ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html | Il est probable que vous ayez déjà cette bibliothèque disponible si votre système dispose d'un environnement X.

Vous pouvez aussi améliorer GD en lui ajoutant des fonctionnalités de manipulation de polices. Les bibliothèques suivantes sont supportées :

Bibliothèques de polices supportées
Bibliothèque de police | Téléchargement | Notes
FreeType 1.x | » http://www.freetype.org/ | Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
FreeType 2 | » http://www.freetype.org/ |
T1lib | » ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) | Support pour les police Postscript Type 1.


Installation

Pour activer le support de GD, vous devez compiler PHP avec l'option --with-gd[=DIR] , où DIR est le dossier d'installation de GD. Il est recommandé d'utiliser la version de GD qui est distribuée avec PHP, en utilisant simplement l'option --with-gd . La bibliothèque GD requiert libpng et libjpeg pour compiler.

Sous Windows, vous devez inclure la bibliothèque php_gd2.dll comme extension dans le fichier php.ini. La bibliothèque php_gd.dll a été supprimée de PHP 4.3.2. Notez aussi que les fonctions conseillées truecolor, comme imagecreatetruecolor(), requièrent GD2.

Augmentez les possibilités des GD de gérer d'autres formats d'images en spécifiant les options --with-XXXX de compilation suivantes :

Formats d'image supportés
Format d'image | Option de compilation
jpeg | Pour activer le support de la bibliothèque JPEG, ajouter l'option --with-jpeg-dir=DIR . Jpeg 6b, 7 ou 8 est supporté.
png | Pour activer le support de la bibliothèque PNG, ajouter l'option --with-png-dir=DIR . Notez que libpng requiert la bibliothèque zlib et, donc, il vous faudra ajouter aussi --with-zlib-dir[=DIR] dans votre ligne de compilation.
xpm | Pour activer le support de la bibliothèque XPM, ajoutez l'option --with-xpm-dir=DIR . Si le script de compilation n'est pas capable de trouver les bibliothèques nécessaires, il vous faudra ajouter le chemin vers les bibliothèques X11.

Note: Lorsque vous compilez PHP avec libpng, vous devez utiliser la même version que celle liée à la bibliothèque GD.

Augmentez les possibilités de GD pour qu'elle manipule différents types de polices de caractères en ajoutant les options --with-XXXX de compilation suivantes :

Bibliothèques des polices de caractères supportées
Bibliothèque | Option de configuration
FreeType 2 | Pour activer le support de FreeType 2, ajoutez l'option --with-freetype-dir=DIR .
T1lib | Pour activer le support de T1lib (Postscript Type 1 fonts), ajoutez l'option --with-t1lib[=DIR] .
Chaînes TrueType | Pour activer le support des chaînes de caractères TrueType, ajoutez l'option --enable-gd-native-ttf .


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration image
Nom | Défaut | Modifiable | Historique
gd.jpeg_ignore_warning | "0" | PHP_INI_ALL | Disponible depuis PHP 5.1.3.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

gd.jpeg_ignore_warning bool

Ignore les alertes créées par la fonction jpeg2wbmp() et la fonction imagecreatefromjpeg()

Voir aussi les directives de configuration exif.

Avertissement

Les fonctions sur les images sont très gourmandes en terme de mémoire. Assurez-vous de définir une valeur assez importante pour memory_limit.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit deux types de ressources : un identifiant d'image et un identifiant de police.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

GD_VERSION (chaîne de caractères)
La version GD de PHP. (Disponible depuis PHP 5.2.4)
GD_MAJOR_VERSION (entier)
La version majeur GD de PHP. (Disponible depuis PHP 5.2.4)
GD_MINOR_VERSION (entier)
La version mineure GD de PHP. (Disponible depuis PHP 5.2.4)
GD_RELEASE_VERSION (entier)
La version GD fourni avec PHP. (Disponible depuis PHP 5.2.4)
GD_EXTRA_VERSION (chaîne de caractères)
La version "extra" GD (beta/rc..) de PHP. (Disponible depuis PHP 5.2.4)
GD_BUNDLED (entier)
Lorsque la version interne de GD est utilisée, cette constante vaut 1, sinon, elle vaut 0.
IMG_GIF (entier)
Utilisé en tant que valeur retournée par la fonction imagetypes()
IMG_JPG (entier)
Utilisé en tant que valeur retournée par la fonction imagetypes()
IMG_JPEG (entier)
Utilisé en tant que valeur retournée par la fonction imagetypes()

Note:

Cette constante à la même valeur que IMG_JPG

IMG_PNG (entier)
Utilisé en tant que valeur retournée par la fonction imagetypes()
IMG_WBMP (entier)
Utilisé en tant que valeur retournée par la fonction imagetypes()
IMG_XPM (entier)
Utilisé en tant que valeur retournée par la fonction imagetypes()
IMG_COLOR_TILED (entier)
Option spéciale de couleur qui pourra être utilisée au lieu de la couleur allouée par imagecolorallocate() ou imagecolorallocatealpha()
IMG_COLOR_STYLED (entier)
Option spéciale de couleur qui pourra être utilisée au lieu de la couleur allouée par imagecolorallocate() ou imagecolorallocatealpha()
IMG_COLOR_BRUSHED (entier)
Option spéciale de couleur qui pourra être utilisée au lieu de la couleur allouée par imagecolorallocate() ou imagecolorallocatealpha()
IMG_COLOR_STYLEDBRUSHED (entier)
Option spéciale de couleur qui pourra être utilisée au lieu de la couleur allouée par imagecolorallocate() ou imagecolorallocatealpha()
IMG_COLOR_TRANSPARENT (entier)
Option spéciale de couleur qui pourra être utilisée au lieu de la couleur allouée par imagecolorallocate() ou imagecolorallocatealpha()
IMG_ARC_ROUNDED (entier)
Une constante de style utilisée par la fonction imagefilledarc().

Note:

Cette constante à la même valeur que IMG_ARC_PIE

IMG_ARC_PIE (entier)
Une constante de style utilisée par la fonction imagefilledarc().
IMG_ARC_CHORD (entier)
Une constante de style utilisée par la fonction imagefilledarc().
IMG_ARC_NOFILL (entier)
Une constante de style utilisée par la fonction imagefilledarc().
IMG_ARC_EDGED (entier)
Une constante de style utilisée par la fonction imagefilledarc().
IMG_GD2_RAW (entier)
Une constante de type utilisée par la fonction imagegd2().
IMG_GD2_COMPRESSED (entier)
Une constante de type utilisée par la fonction imagegd2().
IMG_EFFECT_REPLACE (entier)
Effet "Alpha blending" utilisé par la fonction imagelayereffect().
IMG_EFFECT_ALPHABLEND (entier)
Effet "Alpha blending" utilisé par la fonction imagelayereffect().
IMG_EFFECT_NORMAL (entier)
Effet "Alpha blending" utilisé par la fonction imagelayereffect().
IMG_EFFECT_OVERLAY (entier)
Effet "Alpha blending" utilisé par la fonction imagelayereffect().
IMG_FILTER_NEGATE (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_GRAYSCALE (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_BRIGHTNESS (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_CONTRAST (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_COLORIZE (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_EDGEDETECT (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_GAUSSIAN_BLUR (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_SELECTIVE_BLUR (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_EMBOSS (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_MEAN_REMOVAL (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_SMOOTH (entier)
Filtre GD spécial, utilisé par la fonction imagefilter().
IMG_FILTER_PIXELATE (entier)
Filtre GD spécial utilisé par la fonction imagefilter(). (Disponible depuis PHP 5.3.0)
IMAGETYPE_GIF (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_JPEG (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_JPEG2000 (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_PNG (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_SWF (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_PSD (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_BMP (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_WBMP (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_XBM (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_TIFF_II (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_TIFF_MM (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_IFF (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_JB2 (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_JPC (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_JP2 (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_JPX (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_SWC (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension().
IMAGETYPE_ICO (entier)
Constante de type d'image à utiliser avec les fonctions image_type_to_mime_type() et image_type_to_extension(). (Disponible depuis PHP 5.3.0)
PNG_NO_FILTER (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
PNG_FILTER_NONE (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
PNG_FILTER_SUB (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
PNG_FILTER_UP (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
PNG_FILTER_AVG (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
PNG_FILTER_PAETH (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
PNG_ALL_FILTERS (entier)
Un filtre spécial PNG, utilisé par la fonction imagepng().
IMG_FLIP_VERTICAL (entier)
A utiliser avec la fonction imageflip() ; disponible depuis PHP 5.5.0.
IMG_FLIP_HORIZONTAL (entier)
A utiliser avec la fonction imageflip() ; disponible depuis PHP 5.5.0.
IMG_FLIP_BOTH (entier)
A utiliser avec la fonction imageflip() ; disponible depuis PHP 5.5.0.
IMG_BELL (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_BESSEL (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_BILINEAR_FIXED (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_BICUBIC (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_BICUBIC (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_BLACKMAN (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_BOX (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_BSPLINE (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_CATMULLROM (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_GAUSSIAN (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_GENERALIZED_CUBIC (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_HERMITE (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_HAMMING (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_HANNING (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_MITCHELL (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_POWER (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_QUADRATIC (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_SINC (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_NEAREST_NEIGHBOUR (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_WEIGHTED4 (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.
IMG_TRIANGLE (entier)
A utiliser avec la fonction imagesetinterpolation() ; disponible depuis PHP 5.5.0.


Exemples

Sommaire

  • Création d'une image PNG avec PHP
  • Ajout d'un tatouage numérique sur des images en utilisant un canal Alpha
  • Exemple avec imagecopymerge pour créer un tatouage numérique translucide


Création d'une image PNG avec PHP

Exemple #1 Création d'une image PNG avec PHP

<?php

header("Content-type: image/png");
$string = $_GET['text'];
$im     = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);

?>
Cet exemple doit être appelé depuis une page HTML avec une balise image telle que : <img src="button.php?text">. Le script ci-dessus, button.php, prend la chaîne "texte" et l'inscrit sur le fond d'image appelé "images/button1.png", puis l'affiche. C'est une méthode très pratique pour éviter de redessiner un nouveau bouton, dès que vous changez son texte. De cette façon, ils sont générés dynamiquement.


Ajout d'un tatouage numérique sur des images en utilisant un canal Alpha

Exemple #1 Ajout d'un tatouage numérique sur des images en utilisant un canal Alpha

<?php
// Charge le cachet et la photo afin d'y appliquer le tatouage numérique
$stamp = imagecreatefrompng('stamp.png');
$im = imagecreatefromjpeg('photo.jpeg');

// Définit les marges pour le cachet et récupère la hauteur et la largeur de celui-ci
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Copie le cachet sur la photo en utilisant les marges et la largeur de la
// photo originale  afin de calculer la position du cachet
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

// Affichage et libération de la mémoire
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
Ajout d'un tatouage numérique à l'image en utilisant un canal alpha
Cet exemple montre un moyen simple d'appliquer un tatouage numérique et un cachet à vos photos et vos images sous licence. Notez la présence d'un canal Alpha dans le cachet ainsi que du texte anti-aliasé. Ces 2 éléments seront préservés lors de la copie.


Exemple avec imagecopymerge pour créer un tatouage numérique translucide

  • « Ajout d'un tatouage numérique sur des images en utilisant un canal Alpha
  • Fonctions GD et images »
  • PHP Manual
  • Exemples
  • Exemple avec imagecopymerge pour créer un tatouage numérique translucide

Exemple avec imagecopymerge() pour créer un tatouage numérique translucide

Exemple #1 Exemple avec imagecopymerge() pour créer un tatouage numérique translucide

<?php
// Charge le cachet et la photo afin d'y appliquer le tatouage numérique
$im = imagecreatefromjpeg('photo.jpeg');

// Tout d'abord, nous créons un cachet manuellement grâce à GD
$stamp = imagecreatetruecolor(100, 70);
imagefilledrectangle($stamp, 0, 0, 99, 69, 0x0000FF);
imagefilledrectangle($stamp, 9, 9, 90, 60, 0xFFFFFF);
$im = imagecreatefromjpeg('photo.jpeg');
imagestring($stamp, 5, 20, 20, 'libGD', 0x0000FF);
imagestring($stamp, 3, 20, 40, '(c) 2007-9', 0x0000FF);

// Définit les marges du cachet et récupère la largeur et la hauteur du cachet
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Fusionne le cachet dans notre photo avec une opacité de 50%
imagecopymerge($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp), 50);

// Sauvegarde l'image dans un fichier et libère la mémoire
imagepng($im, 'photo_stamp.png');
imagedestroy($im);

?>
Utilisation d'imagecopymerge() pour créer un tatouage translucide
Cet exemple utilise la fonction imagecopymerge() pour fusionner le cachet avec notre image original. En utilisant cette fonction, nous pouvons définir l'opacité de notre cachet - dans notre exemple, nous l'avons défini à 50%. En pratique, il est plus judicieux de rendre notre protection semi-transparente, la rendant plus difficile à enlever mais permettant également aux visionneuses d'images de la lire sans problème.


Fonctions GD et images

Sommaire

  • gd_info — Retourne des informations à propos de la bibliothèque GD installée
  • getimagesize — Retourne la taille d'une image
  • getimagesizefromstring — Récupère la taille d'une image depuis une chaîne
  • image_type_to_extension — Retourne l'extension du fichier pour le type d'image
  • image_type_to_mime_type — Lit le Mime-Type d'un type d'image
  • image2wbmp — Affichage de l'image vers le navigateur ou dans un fichier
  • imageaffine — Retourne une image contenant l'image source transformé, en utilisant optionnellement une zone de découpe
  • imageaffinematrixconcat — Concatène deux matrices
  • imageaffinematrixget — Retourne une image contenant l'image source transformée, en utilisant optionnellement une zone de découpe
  • imagealphablending — Modifie le mode de blending d'une image
  • imageantialias — Utiliser ou non les fonctions d'antialias
  • imagearc — Dessine une ellipse partielle
  • imagechar — Dessine un caractère horizontalement
  • imagecharup — Dessine un caractère verticalement
  • imagecolorallocate — Alloue une couleur pour une image
  • imagecolorallocatealpha — Alloue une couleur à une image
  • imagecolorat — Retourne l'index de la couleur d'un pixel donné
  • imagecolorclosest — Retourne l'index de la couleur la plus proche d'une couleur donnée
  • imagecolorclosestalpha — Retourne la couleur la plus proche, en tenant compte du canal alpha
  • imagecolorclosesthwb — Lit l'index de la couleur spécifiée avec sa teinte, blanc et noir
  • imagecolordeallocate — Supprime une couleur d'une image
  • imagecolorexact — Retourne l'index de la couleur donnée
  • imagecolorexactalpha — Retourne l'index d'une couleur avec son canal alpha
  • imagecolormatch — Fait correspondre un peu plus les couleurs de la version palette d'une image aux couleurs de sa version truecolor
  • imagecolorresolve — Retourne l'index de la couleur donnée, ou la plus proche possible
  • imagecolorresolvealpha — Retourne un index de couleur ou son alternative la plus proche, y compris le canal alpha
  • imagecolorset — Change la couleur dans une palette à l'index donné
  • imagecolorsforindex — Retourne la couleur associée à un index
  • imagecolorstotal — Calcule le nombre de couleurs d'une palette
  • imagecolortransparent — Définit la couleur transparente
  • imageconvolution — Applique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage
  • imagecopy — Copie une partie d'une image
  • imagecopymerge — Copie et fusionne une partie d'une image
  • imagecopymergegray — Copie et fusionne une partie d'une image en niveaux de gris
  • imagecopyresampled — Copie, redimensionne, rééchantillonne une image
  • imagecopyresized — Copie et redimensionne une partie d'une image
  • imagecreate — Crée une nouvelle image à palette
  • imagecreatefromgd2 — Crée une nouvelle image à partir d'un fichier GD2 ou d'une URL
  • imagecreatefromgd2part — Crée une nouvelle image à partir d'une partie de fichier GD2 ou d'une URL
  • imagecreatefromgd — Crée une nouvelle image à partir d'un fichier GD ou d'une URL
  • imagecreatefromgif — Crée une nouvelle image depuis un fichier ou une URL
  • imagecreatefromjpeg — Crée une nouvelle image depuis un fichier ou une URL
  • imagecreatefrompng — Crée une nouvelle image depuis un fichier ou une URL
  • imagecreatefromstring — Crée une image à partir d'une chaîne
  • imagecreatefromwbmp — Crée une nouvelle image depuis un fichier ou une URL
  • imagecreatefromwebp — Crée une nouvelle image depuis un fichier ou une URL
  • imagecreatefromxbm — Crée une nouvelle image depuis un fichier ou une URL
  • imagecreatefromxpm — Crée une nouvelle image depuis un fichier ou une URL
  • imagecreatetruecolor — Crée une nouvelle image en couleurs vraies
  • imagecrop — Recadre une image en utilisant les coordonnées, la taille, x, y, hauteur et largeur fournis
  • imagecropauto — Recadre une image automatiquement en utilisant un des modes disponibles
  • imagedashedline — Dessine une ligne pointillée
  • imagedestroy — Détruit une image
  • imageellipse — Dessine une ellipse
  • imagefill — Remplissage
  • imagefilledarc — Dessine un arc partiel et le remplit
  • imagefilledellipse — Dessine une ellipse pleine
  • imagefilledpolygon — Dessine un polygone rempli
  • imagefilledrectangle — Dessine un rectangle rempli
  • imagefilltoborder — Remplit une région avec une couleur spécifique
  • imagefilter — Applique un filtre à une image
  • imageflip — Retourne une image en utilisant le mode fourni
  • imagefontheight — Retourne la hauteur de la police
  • imagefontwidth — Retourne la largeur de la police
  • imageftbbox — Calcule le rectangle d'encadrement pour un texte, en utilisant la police courante et freetype2
  • imagefttext — Écrit du texte dans une image avec la police courante FreeType 2
  • imagegammacorrect — Applique une correction gamma à l'image GD
  • imagegd2 — Génère une image au format GD2, vers le navigateur ou un fichier
  • imagegd — Génère une image au format GD, vers le navigateur ou un fichier
  • imagegetclip — Get the clipping rectangle
  • imagegif — Affichage de l'image vers le navigateur ou dans un fichier
  • imagegrabscreen — Capture l'écran complet
  • imagegrabwindow — Capture une fenêtre
  • imageinterlace — Active ou désactive l'entrelacement
  • imageistruecolor — Détermine si une image est une image truecolor
  • imagejpeg — Affichage de l'image vers le navigateur ou dans un fichier
  • imagelayereffect — Active l'option d'alpha blending, pour utiliser les effets de libgd
  • imageline — Dessine une ligne
  • imageloadfont — Charge une nouvelle police
  • imageopenpolygon — Draws an open polygon
  • imagepalettecopy — Copie la palette d'une image à l'autre
  • imagepalettetotruecolor — Convertit une image basée sur une palette en couleur vraie
  • imagepng — Envoie une image PNG vers un navigateur ou un fichier
  • imagepolygon — Dessine un polygone
  • imagepsbbox — Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1
  • imagepsencodefont — Change le codage vectoriel d'un caractère dans une police
  • imagepsextendfont — Étend ou condense une police de caractères
  • imagepsfreefont — Libère la mémoire occupée par une police PostScript Type 1
  • imagepsloadfont — Charge une police PostScript Type 1 depuis un fichier
  • imagepsslantfont — Incline une police de caractères PostScript
  • imagepstext — Dessine un texte sur une image avec une police PostScript Type1
  • imagerectangle — Dessine un rectangle
  • imageresolution — Get or set the resolution of the image
  • imagerotate — Fait tourner une image d'un angle
  • imagesavealpha — Configure l'enregistrement des informations complètes du canal alpha lors de sauvegardes d'images PNG
  • imagescale — Met à l'échelle une image en utilisant une hauteur et une largeur fournies
  • imagesetbrush — Modifie la brosse pour le dessin des lignes
  • imagesetclip — Set the clipping rectangle
  • imagesetinterpolation — Défini la méthode d'interpolation
  • imagesetpixel — Dessine un pixel
  • imagesetstyle — Configure le style pour le dessin des lignes
  • imagesetthickness — Modifie l'épaisseur d'un trait
  • imagesettile — Modifie l'image utilisée pour le carrelage
  • imagestring — Dessine une chaîne horizontale
  • imagestringup — Dessine une chaîne verticale
  • imagesx — Retourne la largeur d'une image
  • imagesy — Retourne la hauteur de l'image
  • imagetruecolortopalette — Convertit une image en couleurs vraies en image à palette
  • imagettfbbox — Retourne le rectangle entourant un texte et dessiné avec une police TrueType
  • imagettftext — Dessine un texte avec une police TrueType
  • imagetypes — Retourne les types d'images supportés par la version courante de PHP
  • imagewbmp — Affichage de l'image vers le navigateur ou dans un fichier
  • imagewebp — Affiche une image WebP vers un navigateur ou un fichier
  • imagexbm — Génère une image au format XBM
  • iptcembed — Intègre des données binaires IPTC dans une image JPEG
  • iptcparse — Analyse un bloc binaire IPTC et recherche les balises simples
  • jpeg2wbmp — Convertit une image JPEG en image WBMP
  • png2wbmp — Convertit une image PNG en image WBMP


Retourne des informations à propos de la bibliothèque GD installée

  • « Fonctions GD et images
  • getimagesize »
  • PHP Manual
  • Fonctions GD et images
  • Retourne des informations à propos de la bibliothèque GD installée

gd_info

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

gd_info — Retourne des informations à propos de la bibliothèque GD installée

Description

array gd_info ( void )

Retourne des informations à propos de la bibliothèque GD installée.

Valeurs de retour

Retourne un tableau associatif.

Éléments du tableau retournés par gd_info()
Attribut | Signification
GD Version | chaîne de caractères décrivant la version de libgd qui est installée.
FreeType Support | booléen. TRUE si le support FreeType est installé.
FreeType Linkage | chaîne de caractères décrivant la façon avec laquelle FreeType a été lié. Les valeurs attendues sont : 'with freetype', 'with TTF library' et 'with unknown library'. Cet élément ne sera défini que si FreeType Support est évalué TRUE.
T1Lib Support | booléen. TRUE si le support T1Lib est inclus.
GIF Read Support | booléen. TRUE si le support pour la lecture des images GIF est inclus.
GIF Create Support | booléen. TRUE si le support pour la création des images GIF est inclus.
JPEG Support | booléen. TRUE si le support de JPEG est inclus.
PNG Support | booléen. TRUE si le support de PNG est inclus.
WBMP Support | booléen. TRUE si le support de WBMP est inclus.
XBM Support | booléen. TRUE si le support de XBM est inclus.
WebP Support | Valeur boolean. TRUE si le support WebP est inclus.

Note:

Avant PHP 5.3.0, l'attribut JPEG Support était nommé JPG Support.

Exemples

Exemple #1 Exemple avec gd_info()

<?php
var_dump(gd_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(9) {
  ["GD Version"]=>
  string(24) "bundled (2.1.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["T1Lib Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPEG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
  ["WebP Support"]=>
  bool(false)
}

Historique

Version | Description
5.6.12 | Ajout du support WebP.
5.3.0 | L'attribut JPG Support est renommé en JPEG Support.

Voir aussi

  • imagepng() - Envoie une image PNG vers un navigateur ou un fichier
  • imagejpeg() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagegif() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagewbmp() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagewebp() - Affiche une image WebP vers un navigateur ou un fichier
  • imagetypes() - Retourne les types d'images supportés par la version courante de PHP


Retourne la taille d'une image

  • « gd_info
  • getimagesizefromstring »
  • PHP Manual
  • Fonctions GD et images
  • Retourne la taille d'une image

getimagesize

(PHP 4, PHP 5, PHP 7)

getimagesize — Retourne la taille d'une image

Description

array getimagesize ( string $filename [, array &$imageinfo ] )

getimagesize() détermine la taille de l'image fournie et en retourne les dimensions, le type d'image et une chaîne type height/width à placer dans une balise HTML IMG normale et le type de contenu HTTP correspondant.

getimagesize() peut également retourner plus d'informations dans le paramètre imageinfo.

Note: Notez que JPC et JP2 sont capables d'avoir des composants avec une profondeur de bit différente. Dans ce cas, la valeur de "bits" est la plus grande profondeur de bit rencontrée. De même, les fichiers JP2 disposent du support de multiple JPEG 2000 codestreams. Dans ce cas, getimagesize() retourne les valeurs pour le premier codestream rencontré à la racine du fichier.

Note: Les informations sur les icônes sont récupérées depuis l'icône possédant le plus haut débit.

Liste de paramètres

filename

Ce paramètre spécifie le fichier dont vous voulez récupérer les informations. Il peut être un fichier local ou (suivant la configuration), un fichier distant en utilisant un des flux supportés.

imageinfo

Ce paramètre optionnel permet d'extraire des informations supplémentaires du fichier image. Actuellement, cette option va retourner différents marqueurs JPG APP dans un tableau associatif. Certains programmes utilisent ces marqueur APP pour préciser les informations dans les balises HTML. Un marqueur commun est le marqueur APP13, décrit à » IPTC. Vous pouvez utiliser la fonction iptcparse() pour analyser ce marqueur, et obtenir des informations intelligibles.

Valeurs de retour

Retourne un tableau contenant jusqu'à 7 éléments. Tous les types d'images n'incluent pas les éléments channels et bits.

L'index 0 contient la largeur. L'index 1 contient la hauteur.

Note:

Certains formats peuvent ne contenir aucune image, ou bien plusieurs. Dans ces cas-là, getimagesize() peut ne pas être capable de déterminer correctement la taille de l'image. getimagesize() retourne alors zéro comme taille de hauteur et largeur.

L'index 2 est une constante parmi IMAGETYPE_XXX constants, indiquant le type de l'image.

L'index 3 contient la chaîne à placer dans les balises IMG : height="xxx" width="yyy".

mime correspond au type MIME d'une image. Cette information peut être utilisée pour envoyer l'en-tête HTTP Content-type correct :

Exemple #1 getimagesize() et types MIME

<?php
$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $fp) {
    header("Content-type: {$size['mime']}");
    fpassthru($fp);
    exit;
} else {
    // error
}
?>

channels sera 3 pour des images RGB et 4 pour des images CMYK.

bits est le nombre d'octets pour chaque couleur.

Cependant, la présence des valeurs de channels et de bits peut mener à la confusion. Par exemple, une image GIF utilise toujours trois canaux par pixel, mais le nombre de bits par pixel ne peut être calculé dans le cas d'une image animée GIF ayant une table de couleur globale.

Si une erreur survient, FALSE est retourné.

Erreurs / Exceptions

Si l'accès à filename est impossible, getimagesize() générera une erreur de niveau E_WARNING. Si une erreur survient lors de la lecture, getimagesize() générera une erreur de niveau E_NOTICE.

Historique

Version | Description
5.3.0 | Ajout du support des icônes.
5.2.3 | Les erreurs de lecture générées par cette fonction passent de niveau E_WARNING à E_NOTICE.
4.3.2 | Le support de JPC, JP2, JPX, JB2, XBM, et WBMP devient disponible.
4.3.2 | Le support JPEG 2000 a été ajouté pour le paramètre imageinfo.
4.3.0 | bits et channels sont présents pour les autres types d'images.
4.3.0 | Le support de SWC et IFF a été ajouté.
4.2.0 | Le support de TIFF a été ajouté.
4.0.6 | Le support des BMP et PSD a été ajouté.

Exemples

Exemple #2 Exemple avec getimagesize()

<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"Exemple avec getimagesize()\" />";
?>

Exemple #3 getimagesize() avec une URL

<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");

// Si le nom du fichier comporte des espaces, encodez-le !
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>

Exemple #4 getimagesize() qui retourne IPTC

<?php
$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
    $iptc = iptcparse($info["APP13"]);
    var_dump($iptc);
}
?>

Notes

Note:

Cette fonction ne nécessite pas la bibliothèque GD.

Voir aussi

  • image_type_to_mime_type() - Lit le Mime-Type d'un type d'image
  • exif_imagetype() - Détermine le type d'une image
  • exif_read_data() - Lit les en-têtes EXIF dans les images JPEG ou TIFF
  • exif_thumbnail() - Récupère la miniature d'une image TIFF ou JPEG


Récupère la taille d'une image depuis une chaîne

  • « getimagesize
  • image_type_to_extension »
  • PHP Manual
  • Fonctions GD et images
  • Récupère la taille d'une image depuis une chaîne

getimagesizefromstring

(PHP 5 >= 5.4.0, PHP 7)

getimagesizefromstring — Récupère la taille d'une image depuis une chaîne

Description

array getimagesizefromstring ( string $imagedata [, array &$imageinfo ] )

Identique à la fonction getimagesize() excepté le fait que la fonction getimagesizefromstring() accepte une chaîne au lieu d'un nom de fichier comme premier paramètre.

Voir la documentation sur la fonction getimagesize() pour plus de détails sur la façon dont cette fonction marche.

Liste de paramètres

imagedata

Les données de l'image, sous la forme d'une chaîne.

imageinfo

Voir la fonction getimagesize().

Valeurs de retour

Voir la fonction getimagesize().

Exemples

Exemple #1 Exemple avec getimagesizefromstring()

<?php
$img = '/path/to/test.png';

// Ouverture via un fichier
$size_info1 = getimagesize($img);

// Ouverture via une chaîne
$data       = file_get_contents($img);
$size_info2 = getimagesizefromstring($data);
?>

Voir aussi

  • getimagesize() - Retourne la taille d'une image


Retourne l'extension du fichier pour le type d'image

  • « getimagesizefromstring
  • image_type_to_mime_type »
  • PHP Manual
  • Fonctions GD et images
  • Retourne l'extension du fichier pour le type d'image

image_type_to_extension

(PHP 5 >= 5.2.0, PHP 7)

image_type_to_extension — Retourne l'extension du fichier pour le type d'image

Description

string image_type_to_extension ( int $imagetype [, bool $include_dot = TRUE ] )

image_type_to_extension() retourne l'extension pour la constante IMAGETYPE_XXX fournie.

Liste de paramètres

imagetype

Une des constantes IMAGETYPE_XXX.

include_dot

Si l'on doit ajouter un point à l'extension ou non. Par défaut, vaut TRUE.

Valeurs de retour

Une chaîne de caractères avec l'extension, correspondant au type de l'image fournie.

Exemples

Exemple #1 Exemple avec image_type_to_extension()

<?php
// Création d'une instance d'image
$im = imagecreatetruecolor(100, 100);

// Sauvegarde de l'image
imagepng($im, './test' . image_type_to_extension(IMAGETYPE_PNG));
imagedestroy($im);
?>

Notes

Note:

Cette fonction ne nécessite pas la bibliothèque GD.


Lit le Mime-Type d'un type d'image

  • « image_type_to_extension
  • image2wbmp »
  • PHP Manual
  • Fonctions GD et images
  • Lit le Mime-Type d'un type d'image

image_type_to_mime_type

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

image_type_to_mime_type — Lit le Mime-Type d'un type d'image

Description

string image_type_to_mime_type ( int $imagetype )

Détermine le type MIME (Mime-Type), à utiliser dans l'en-tête HTTP Content-type.

Liste de paramètres

imagetype

Une des constantes IMAGETYPE_XXX.

Valeurs de retour

Les valeurs retournées sont les suivantes

Valeurs des constantes retournées
imagetype | Valeur retournée
IMAGETYPE_GIF | image/gif
IMAGETYPE_JPEG | image/jpeg
IMAGETYPE_PNG | image/png
IMAGETYPE_SWF | application/x-shockwave-flash
IMAGETYPE_PSD | image/psd
IMAGETYPE_BMP | image/bmp
IMAGETYPE_TIFF_II (ordre intel) | image/tiff
IMAGETYPE_TIFF_MM (ordre motorola) | image/tiff
IMAGETYPE_JPC | application/octet-stream
IMAGETYPE_JP2 | image/jp2
IMAGETYPE_JPX | application/octet-stream
IMAGETYPE_JB2 | application/octet-stream
IMAGETYPE_SWC | application/x-shockwave-flash
IMAGETYPE_IFF | image/iff
IMAGETYPE_WBMP | image/vnd.wap.wbmp
IMAGETYPE_XBM | image/xbm
IMAGETYPE_ICO | image/vnd.microsoft.icon

Exemples

Exemple #1 Exemple avec image_type_to_mime_type()

<?php
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
?>

Notes

Note:

Cette fonction ne nécessite pas la bibliothèque GD.

Voir aussi

  • getimagesize() - Retourne la taille d'une image
  • exif_imagetype() - Détermine le type d'une image
  • exif_read_data() - Lit les en-têtes EXIF dans les images JPEG ou TIFF
  • exif_thumbnail() - Récupère la miniature d'une image TIFF ou JPEG


Affichage de l'image vers le navigateur ou dans un fichier

  • « image_type_to_mime_type
  • imageaffine »
  • PHP Manual
  • Fonctions GD et images
  • Affichage de l'image vers le navigateur ou dans un fichier

image2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

image2wbmp — Affichage de l'image vers le navigateur ou dans un fichier

Description

bool image2wbmp ( resource $image [, string $filename [, int $threshold ]] )

image2wbmp() affiche ou enregistre une version WBMP de l'image image fournie.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Chemin vers le fichier de sauvegarde. S'il n'est pas fourni, le flux de l'image sera directement affiché.

threshold

Valeur du seuil, entre 0 et 255 inclus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec image2wbmp()

<?php

$file = 'php.png';
$image = imagecreatefrompng($file);

header('Content-Type: ' . image_type_to_mime_type(IMAGETYPE_WBMP));
image2wbmp($image); // Affichage direct
imagedestroy($image);

?>

Notes

Note:

Le support WBMP n'est disponible qu'avec GD-1.8 ou plus récent.

Voir aussi

  • imagewbmp() - Affichage de l'image vers le navigateur ou dans un fichier


Retourne une image contenant l'image source transformé, en utilisant optionnellement une zone de découpe

  • « image2wbmp
  • imageaffinematrixconcat »
  • PHP Manual
  • Fonctions GD et images
  • Retourne une image contenant l'image source transformé, en utilisant optionnellement une zone de découpe

imageaffine

(PHP 5 >= 5.5.0, PHP 7)

imageaffine — Retourne une image contenant l'image source transformé, en utilisant optionnellement une zone de découpe

Description

resource imageaffine ( resource $image , array $affine [, array $clip ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

affine

Un tableau avec les clés de 0 à 5.

clip

Un tableau avec les clés "x", "y", "width" et "height".

Valeurs de retour

Retourne la ressource image liée en cas de succès ou FALSE si une erreur survient.


Concatène deux matrices

  • « imageaffine
  • imageaffinematrixget »
  • PHP Manual
  • Fonctions GD et images
  • Concatène deux matrices

imageaffinematrixconcat

(PHP 5 >= 5.5.0, PHP 7)

imageaffinematrixconcat — Concatène deux matrices

Description

array imageaffinematrixconcat ( array $m1 , array $m2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

m1

Un tableau avec les clés 0 à 5.

m2

Un tableau avec les clés 0 à 5.

Valeurs de retour

Un tableau avec les clés de 0 à 5 ainsi que les valeurs flottantes ou FALSE si une erreur survient.


Retourne une image contenant l'image source transformée, en utilisant optionnellement une zone de découpe

  • « imageaffinematrixconcat
  • imagealphablending »
  • PHP Manual
  • Fonctions GD et images
  • Retourne une image contenant l'image source transformée, en utilisant optionnellement une zone de découpe

imageaffinematrixget

(PHP 5 >= 5.5.0, PHP 7)

imageaffinematrixget — Retourne une image contenant l'image source transformée, en utilisant optionnellement une zone de découpe

Description

array imageaffinematrixget ( int $type [, mixed $options ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

type

Une constante parmi IMG_AFFINE_*.

options

Valeurs de retour

Un tableau contenant les clés de 0 à 5 ainsi que les valeurs flottantes ou FALSE si une erreur survient.


Modifie le mode de blending d'une image

  • « imageaffinematrixget
  • imageantialias »
  • PHP Manual
  • Fonctions GD et images
  • Modifie le mode de blending d'une image

imagealphablending

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagealphablending — Modifie le mode de blending d'une image

Description

bool imagealphablending ( resource $image , bool $blendmode )

imagealphablending() fournit deux modes de dessin des images en vraies couleurs (truecolors). En mode "blending", le canal alpha de chaque couleur est fourni à chaque fonction de dessin, tel que imagesetpixel() peut déterminer sa transparence. GD va alors automatiquement mixer la couleur à ce point, et stocker le résultat dans l'image. Le pixel résultant est alors opaque. En mode non-mixant, la couleur est copiée littéralement avec ses informations de canal alpha, et remplace le pixel de destination. Le mixage n'est pas disponible avec les images à palette.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

blendmode

Si l'on doit activer le mode blending ou non. Sur les images à couleurs vraies, la valeur par défaut est TRUE, sinon, la valeur par défaut est FALSE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagealphablending()

<?php
// Création d'une image
$im = imagecreatetruecolor(100, 100);

// Définit l'alphablending à on
imagealphablending($im, true);

// Dessine un carré
imagefilledrectangle($im, 30, 30, 70, 70, imagecolorallocate($im, 255, 0, 0));

// Affichage
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>


Utiliser ou non les fonctions d'antialias

  • « imagealphablending
  • imagearc »
  • PHP Manual
  • Fonctions GD et images
  • Utiliser ou non les fonctions d'antialias

imageantialias

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

imageantialias — Utiliser ou non les fonctions d'antialias

Description

bool imageantialias ( resource $image , bool $enabled )

Active les méthodes de dessin rapide antialias concernant les lignes et les polygones. Les composantes alpha ne sont pas supportées. Fonctionne en utilisant une opération directe de mélange, uniquement avec les images truecolor.

L'épaisseur et les styles ne sont pas supportés.

L'utilisation des primitives antialias avec des arrière-plans transparents peut mener à des résultats imprévus. La méthode de mélange utilise la couleur d'arrière-plan comme toute autre couleur. Le manque de support du composant alpha empêche l'utilisation de antialias basé sur l'alpha.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

enabled

Si l'on doit activer l'antialias ou non.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Comparaison de 2 lignes, dont l'une est anti-aliasée

<?php
// Définit une image anti-aliasée et une normale
$aa = imagecreatetruecolor(400, 100);
$normal = imagecreatetruecolor(200, 100);

// Active l'antialiasing pour une image
imageantialias($aa, true);

// Alloue les couleurs
$red = imagecolorallocate($normal, 255, 0, 0);
$red_aa = imagecolorallocate($aa, 255, 0, 0);

// Dessine 2 lignes, dont l'une avec l'antialiasing
imageline($normal, 0, 0, 200, 100, $red);
imageline($aa, 0, 0, 200, 100, $red_aa);

// Fusionne les 2 images, côté par côté pour l'affichage
// (AA: gauche, Normal: Droit)
imagecopymerge($aa, $normal, 200, 0, 0, 0, 200, 100, 100);

// Affichage de l'image
header('Content-type: image/png');

imagepng($aa);
imagedestroy($aa);
imagedestroy($normal);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Une comparaison de 2 lignes, dont une avec un anti-aliasing

Notes

Voir aussi

  • imagecreatetruecolor() - Crée une nouvelle image en couleurs vraies


Dessine une ellipse partielle

  • « imageantialias
  • imagechar »
  • PHP Manual
  • Fonctions GD et images
  • Dessine une ellipse partielle

imagearc

(PHP 4, PHP 5, PHP 7)

imagearc — Dessine une ellipse partielle

Description

bool imagearc ( resource $image , int $cx , int $cy , int $width , int $height , int $start , int $end , int $color )

imagearc() dessine une ellipse partielle, centrée sur les coordonnées fournies.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

cx

X : coordonnée du centre.

cy

Y : coordonnée du centre.

width

La largeur de l'ellipse.

height

La hauteur de l'ellipse.

start

L'angle de début de l'ellipse, en degrés.

end

L'angle de fin de l'ellipse, en degrés. 0° correspond à la position "trois heures" et l'ellipse est dessiné dans le sens des aiguilles d'une montre.

color

Un identifiant de couleur, créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Dessine d'un cercle avec imagearc()

<?php

// Création d'une image 200*200
$img = imagecreatetruecolor(200, 200);

// Allocation de couleurs
$white = imagecolorallocate($img, 255, 255, 255);
$red   = imagecolorallocate($img, 255,   0,   0);
$green = imagecolorallocate($img,   0, 255,   0);
$blue  = imagecolorallocate($img,   0,   0, 255);

// Dessine la tête
imagearc($img, 100, 100, 200, 200,  0, 360, $white);
// La bouche
imagearc($img, 100, 100, 150, 150, 25, 155, $red);
// les yeux gauche et droit
imagearc($img,  60,  75,  50,  50,  0, 360, $green);
imagearc($img, 140,  75,  50,  50,  0, 360, $blue);

// Affichage au navigateur
header("Content-type: image/png");
imagepng($img);

// Libération de la mémoire
imagedestroy($img);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Desinne un cercle avec imagearc()

Voir aussi

  • imagefilledarc() - Dessine un arc partiel et le remplit
  • imageellipse() - Dessine une ellipse
  • imagefilledellipse() - Dessine une ellipse pleine


Dessine un caractère horizontalement

  • « imagearc
  • imagecharup »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un caractère horizontalement

imagechar

(PHP 4, PHP 5, PHP 7)

imagechar — Dessine un caractère horizontalement

Description

bool imagechar ( resource $image , int $font , int $x , int $y , string $c , int $color )

imagechar() dessine le premier caractère de la chaîne c dans l'image image avec le coin supérieur gauche placé à la position x,y (le coin en haut à gauche est l'origine (0,0)) avec la couleur color.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

font

Peut être 1, 2, 3, 4, 5 pour les polices internes d'encodage Latin2 (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

x

X : coordonnée de départ.

y

Y : coordonnée de départ.

c

Le caractère à dessiner.

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagechar()

<?php

$im = imagecreate(100, 100);

$string = 'PHP';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// affiche un "P" noir dans le coin gauche en haut
imagechar($im, 1, 0, 0, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagechar()

Voir aussi

  • imagecharup() - Dessine un caractère verticalement
  • imageloadfont() - Charge une nouvelle police


Dessine un caractère verticalement

  • « imagechar
  • imagecolorallocate »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un caractère verticalement

imagecharup

(PHP 4, PHP 5, PHP 7)

imagecharup — Dessine un caractère verticalement

Description

bool imagecharup ( resource $image , int $font , int $x , int $y , string $c , int $color )

Dessine le premier caractère de la chaîne c verticalement dans l'image image fournie.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

font

Peut être 1, 2, 3, 4, 5 pour les polices internes d'encodage Latin2 (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

x

X : coordonnée de départ.

y

Y : coordonnée de départ.

c

Le caractère à dessiner.

color

Un identifiant de couleur, créé avec la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecharup()

<?php

$im = imagecreate(100, 100);

$string = 'Notez que la première lettre est un N';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// affiche un "Z" noir sur un fond blanc
imagecharup($im, 3, 10, 10, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecharup()

Voir aussi

  • imagechar() - Dessine un caractère horizontalement
  • imageloadfont() - Charge une nouvelle police


Alloue une couleur pour une image

  • « imagecharup
  • imagecolorallocatealpha »
  • PHP Manual
  • Fonctions GD et images
  • Alloue une couleur pour une image

imagecolorallocate

(PHP 4, PHP 5, PHP 7)

imagecolorallocate — Alloue une couleur pour une image

Description

int imagecolorallocate ( resource $image , int $red , int $green , int $blue )

Retourne un identifiant de couleur, représentant la couleur composée avec les couleurs RGB.

imagecolorallocate() doit être appelée pour créer chaque couleur qui sera représentée par image.

Note:

Le premier appel à imagecolorallocate() remplit la couleur de fond avec la palette des images - images créées en utilisant imagecreate().

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

Ces paramètres sont des entiers compris entre 0 et 255 ou des hexadécimaux compris entre 0x00 and 0xFF.

Valeurs de retour

Un identifiant de couleur ou FALSE si l'allocation échoue.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Historique

Version | Description
5.1.3 | Retourne FALSE si l'allocation échoue. Précédemment, -1 était retourné.

Exemples

Exemple #1 Exemple avec imagecolorallocate()

<?php

$im = imagecreate(100, 100);

// Le fond de l'image est en rouge
$background = imagecolorallocate($im, 255, 0, 0);

// On définit des couleurs avec des entiers ..
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// .. ou des hexadécimaux
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

?>

Voir aussi

  • imagecolorallocatealpha() - Alloue une couleur à une image
  • imagecolordeallocate() - Supprime une couleur d'une image


Alloue une couleur à une image

  • « imagecolorallocate
  • imagecolorat »
  • PHP Manual
  • Fonctions GD et images
  • Alloue une couleur à une image

imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

imagecolorallocatealpha — Alloue une couleur à une image

Description

int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )

imagecolorallocatealpha() se comporte comme imagecolorallocate() avec en plus le paramètre de transparence alpha.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

alpha

Une valeur entre 0 et 127. 0 indique une opacité complète tandis que 127 indique une transparence complète.

Les paramètres red, green et blue sont des entiers compris entre 0 et 255, ou des hexadécimaux compris entre 0x00 et 0xFF.

Valeurs de retour

Un identifiant de couleur ou FALSE si l'allocation échoue.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Historique

Version | Description
5.1.3 | Retourne FALSE si l'allocation échoue. Précédemment, -1 était retourné.

Exemples

Exemple #1 Exemple avec imagecolorallocatealpha()

<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// quelque chose pour obtenir un fond blanc avec une bordure noire
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x    = 120;
$red_y    = 165;
$blue_x   = 187;
$blue_y   = 125;
$radius   = 150;

// alloue des couleurs avec des valeurs alpha
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);

// Dessine 3 ellipses
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// Ne pas oublier d'envoyer un header correct
header('Content-Type: image/png');

// et finallement, afficher le résultat
imagepng($image);
imagedestroy($image);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecolorallocatealpha()

Voir aussi

  • imagecolorallocate() - Alloue une couleur pour une image
  • imagecolordeallocate() - Supprime une couleur d'une image


Retourne l'index de la couleur d'un pixel donné

  • « imagecolorallocatealpha
  • imagecolorclosest »
  • PHP Manual
  • Fonctions GD et images
  • Retourne l'index de la couleur d'un pixel donné

imagecolorat

(PHP 4, PHP 5, PHP 7)

imagecolorat — Retourne l'index de la couleur d'un pixel donné

Description

int imagecolorat ( resource $image , int $x , int $y )

Retourne l'index de la couleur du pixel situé aux coordonnées spécifiées, dans l'image image.

Si PHP supporte la bibliothèque GD version 2.0 ou plus récent, et que l'image est une image en TrueColor, cette fonction retourne la valeur RGB du pixel, sous forme d'un entier. Utiliser les opérateurs de bits et les masques pour distinguer le rouge, du vert et du bleu :

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

x

X : coordonnée du point.

y

Y : coordonnée du point.

Valeurs de retour

Retourne l'index de la couleur.

Exemples

Exemple #1 Accès aux valeurs RGB

<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
var_dump($r, $g, $b);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(119)
int(123)
int(180)

Exemple #2 Valeurs RVB lisibles en utilisant la fonction imagecolorsforindex()

<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);

$colors = imagecolorsforindex($im, $rgb);

var_dump($colors);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  ["red"]=>
  int(119)
  ["green"]=>
  int(123)
  ["blue"]=>
  int(180)
  ["alpha"]=>
  int(127)
}

Voir aussi

  • imagecolorset() - Change la couleur dans une palette à l'index donné
  • imagecolorsforindex() - Retourne la couleur associée à un index
  • imagesetpixel() - Dessine un pixel


Retourne l'index de la couleur la plus proche d'une couleur donnée

  • « imagecolorat
  • imagecolorclosestalpha »
  • PHP Manual
  • Fonctions GD et images
  • Retourne l'index de la couleur la plus proche d'une couleur donnée

imagecolorclosest

(PHP 4, PHP 5, PHP 7)

imagecolorclosest — Retourne l'index de la couleur la plus proche d'une couleur donnée

Description

int imagecolorclosest ( resource $image , int $red , int $green , int $blue )

Retourne l'index de la couleur de la palette qui est la plus proche de la valeur RGB passée.

La "distance" entre la couleur souhaitée et les couleurs de la palette est calculée en considérant l'espace RGB comme un espace à 3 dimensions.

Si vous créez l'image depuis un fichier, seules les couleurs utilisées dans l'image seront résolues. Les couleurs uniquement présentes dans la palette ne le seront pas.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

Les paramètres sur les couleurs sont des entiers compris entre 0 et 255 ou des hexadécimaux compris entre 0x00 et 0xFF.

Valeurs de retour

Retourne l'index de la couleur la plus proche, dans la palette de l'image, de celle donnée.

Exemples

Exemple #1 Recherche d'un jeu de couleur dans une image

<?php
// On commence avec une image et on la convertit en une image à palette
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);

// Couleurs recherchées (RVB)
$colors = array(
    array(254, 145, 154),
    array(153, 145, 188),
    array(153, 90, 145),
    array(255, 137, 92)
);

// On boucle sur chaque recherche et on trouve la couleur de la palette la plus proche.
// Retourne le numéro de la recherche, le RVB cherché et la correspondance en RVB
foreach($colors as $id => $rgb)
{
    $result = imagecolorclosest($im, $rgb[0], $rgb[1], $rgb[2]);
    $result = imagecolorsforindex($im, $result);
    $result = "({$result['red']}, {$result['green']}, {$result['blue']})";

    echo "#$id: Recherche ($rgb[0], $rgb[1], $rgb[2]); Correspondance : $result.\n";
}

imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

#0: Recherche (254, 145, 154); Correspondance : (252, 150, 148).
#1: Recherche (153, 145, 188); Correspondance : (148, 150, 196).
#2: Recherche (153, 90, 145); Correspondance : (148, 90, 156).
#3: Recherche (255, 137, 92); Correspondance : (252, 150, 92).

Voir aussi

  • imagecolorexact() - Retourne l'index de la couleur donnée
  • imagecolorclosestalpha() - Retourne la couleur la plus proche, en tenant compte du canal alpha
  • imagecolorclosesthwb() - Lit l'index de la couleur spécifiée avec sa teinte, blanc et noir


Retourne la couleur la plus proche, en tenant compte du canal alpha

  • « imagecolorclosest
  • imagecolorclosesthwb »
  • PHP Manual
  • Fonctions GD et images
  • Retourne la couleur la plus proche, en tenant compte du canal alpha

imagecolorclosestalpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecolorclosestalpha — Retourne la couleur la plus proche, en tenant compte du canal alpha

Description

int imagecolorclosestalpha ( resource $image , int $red , int $green , int $blue , int $alpha )

Retourne l'index de la couleur, dans la palette de l'image image, la plus proche de la couleur spécifiée par les autres paramètres, au format RGB et de canal alpha alpha.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

alpha

Une valeur comprise entre 0 et 127. 0 indique une opacité complète tandis que 127 indique une transparence complète.

Les paramètres sur les couleurs sont des entiers compris entre 0 et 255 ou des hexadécimaux compris entre 0x00 et 0xFF.

Valeurs de retour

Retourne l'index de la couleur la plus proche dans la palette.

Exemples

Exemple #1 Cherche un jeu de couleurs dans une image

<?php
// On commence avec une image et on la convertie en palette
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);

// Recherche des couleurs (RVB)
$colors = array(
    array(254, 145, 154, 50),
    array(153, 145, 188, 127),
    array(153, 90, 145, 0),
    array(255, 137, 92, 84)
);

// On boucle sur chaque recherche et on trouve la couleur la plus proche de la palette.
// Retourne le numéro de la recherche, la recherche RVB et le résultat converti en RVB
foreach($colors as $id => $rgb)
{
    $result = imagecolorclosestalpha($im, $rgb[0], $rgb[1], $rgb[2], $rgb[3]);
    $result = imagecolorsforindex($im, $result);
    $result = "({$result['red']}, {$result['green']}, {$result['blue']}, {$result['alpha']})";

    echo "#$id: Recherche ($rgb[0], $rgb[1], $rgb[2], $rgb[3]); Résultat le plus proche : $result.\n";
}

imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

#0: Recherche (254, 145, 154, 50); Résultat le plus proche : (252, 150, 148, 0).
#1: Recherche (153, 145, 188, 127); Résultat le plus proche : (148, 150, 196, 0).
#2: Recherche (153, 90, 145, 0); Résultat le plus proche : (148, 90, 156, 0).
#3: Recherche (255, 137, 92, 84); Résultat le plus proche : (252, 150, 92, 0).

Voir aussi

  • imagecolorexactalpha() - Retourne l'index d'une couleur avec son canal alpha
  • imagecolorclosest() - Retourne l'index de la couleur la plus proche d'une couleur donnée
  • imagecolorclosesthwb() - Lit l'index de la couleur spécifiée avec sa teinte, blanc et noir


Lit l'index de la couleur spécifiée avec sa teinte, blanc et noir

  • « imagecolorclosestalpha
  • imagecolordeallocate »
  • PHP Manual
  • Fonctions GD et images
  • Lit l'index de la couleur spécifiée avec sa teinte, blanc et noir

imagecolorclosesthwb

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecolorclosesthwb — Lit l'index de la couleur spécifiée avec sa teinte, blanc et noir

Description

int imagecolorclosesthwb ( resource $image , int $red , int $green , int $blue )

Lit l'index de la couleur spécifiée avec sa teinte, blanc et noir.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

Valeurs de retour

Retourne un entier représentant d'index de la couleur.

Exemples

Exemple #1 Exemple avec imagecolorclosesthwb()

<?php
$im = imagecreatefromgif('php.gif');

echo 'HWB : ' . imagecolorclosesthwb($im, 116, 115, 152);

imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

HWB: 33

Historique

Version | Description
5.3.0 | Cette fonction est désormais disponible sous Windows

Voir aussi

  • imagecolorclosest() - Retourne l'index de la couleur la plus proche d'une couleur donnée


Supprime une couleur d'une image

  • « imagecolorclosesthwb
  • imagecolorexact »
  • PHP Manual
  • Fonctions GD et images
  • Supprime une couleur d'une image

imagecolordeallocate

(PHP 4, PHP 5, PHP 7)

imagecolordeallocate — Supprime une couleur d'une image

Description

bool imagecolordeallocate ( resource $image , int $color )

Supprime la couleur color précédemment allouée avec la fonction imagecolorallocate(), pour l'image image.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

color

L'identifiant de la couleur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecolordeallocate()

<?php
$white = imagecolorallocate($im, 255, 255, 255);
imagecolordeallocate($im, $white);
?>

Voir aussi

  • imagecolorallocate() - Alloue une couleur pour une image
  • imagecolorallocatealpha() - Alloue une couleur à une image


Retourne l'index de la couleur donnée

  • « imagecolordeallocate
  • imagecolorexactalpha »
  • PHP Manual
  • Fonctions GD et images
  • Retourne l'index de la couleur donnée

imagecolorexact

(PHP 4, PHP 5, PHP 7)

imagecolorexact — Retourne l'index de la couleur donnée

Description

int imagecolorexact ( resource $image , int $red , int $green , int $blue )

Retourne l'index de la couleur spécifiée dans la palette de l'image image.

Si vous créez l'image depuis un fichier, seules les couleurs utilisées dans l'image seront résolues. Les couleurs uniquement présentes dans la palette ne le seront pas.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

Valeurs de retour

Retourne l'index de la couleur spécifié dans la palette, ou -1 si la couleur n'existe pas.

Exemples

Exemple #1 Récupération des couleurs composant le logo GD

<?php
// Définit l'image
$im = imagecreatefrompng('./gdlogo.png');

$colors   = Array();
$colors[] = imagecolorexact($im, 255, 0, 0);
$colors[] = imagecolorexact($im, 0, 0, 0);
$colors[] = imagecolorexact($im, 255, 255, 255);
$colors[] = imagecolorexact($im, 100, 255, 52);

print_r($colors);

// Libération de la mémoire
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 16711680
    [1] => 0
    [2] => 16777215
    [3] => 6618932
)

Voir aussi

  • imagecolorclosest() - Retourne l'index de la couleur la plus proche d'une couleur donnée


Retourne l'index d'une couleur avec son canal alpha

  • « imagecolorexact
  • imagecolormatch »
  • PHP Manual
  • Fonctions GD et images
  • Retourne l'index d'une couleur avec son canal alpha

imagecolorexactalpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecolorexactalpha — Retourne l'index d'une couleur avec son canal alpha

Description

int imagecolorexactalpha ( resource $image , int $red , int $green , int $blue , int $alpha )

Retourne l'index d'une couleur avec son canal alpha.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

alpha

Une valeur comprise entre 0 et 127. 0 indique une opacité complète tandis que 127 indique une transparence complète.

Les paramètres sur les couleurs sont des entiers compris entre 0 et 255 ou des hexadécimaux compris entre 0x00 and 0xFF.

Valeurs de retour

Retourne l'index de la couleur fournie et son canal alpha dans la palette de l'image, ou -1 si la couleur n'existe pas dans la palette de l'image.

Exemples

Exemple #1 Récupération des couleurs composant le logo GD

<?php

// Définit l'image
$im = imagecreatefrompng('./gdlogo.png');

$colors   = Array();
$colors[] = imagecolorexactalpha($im, 255, 0, 0, 0);
$colors[] = imagecolorexactalpha($im, 0, 0, 0, 127);
$colors[] = imagecolorexactalpha($im, 255, 255, 255, 55);
$colors[] = imagecolorexactalpha($im, 100, 255, 52, 20);

print_r($colors);

// Libération de la mémoire
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 16711680
    [1] => 2130706432
    [2] => 939524095
    [3] => 342163252
)

Voir aussi

  • imagecolorclosestalpha() - Retourne la couleur la plus proche, en tenant compte du canal alpha


Fait correspondre un peu plus les couleurs de la version palette d'une image aux couleurs de sa version truecolor

  • « imagecolorexactalpha
  • imagecolorresolve »
  • PHP Manual
  • Fonctions GD et images
  • Fait correspondre un peu plus les couleurs de la version palette d'une image aux couleurs de sa version truecolor

imagecolormatch

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

imagecolormatch — Fait correspondre un peu plus les couleurs de la version palette d'une image aux couleurs de sa version truecolor

Description

bool imagecolormatch ( resource $image1 , resource $image2 )

Fait correspondre un peu plus les couleurs de la version palette d'une image aux couleurs de sa version truecolor.

Liste de paramètres

image1

Une ressource d'image truecolor.

image2

Une ressource de palette d'image pointant sur une image qui a la même taille que image1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecolormatch()

<?php
// Définit l'image true color et la palette
$im1 = imagecreatefrompng('./gdlogo.png');
$im2 = imagecreate(imagesx($im1), imagesy($im1));

// Ajout de quelques couleurs à $im2
$colors   = Array();
$colors[] = imagecolorallocate($im2, 255, 36, 74);
$colors[] = imagecolorallocate($im2, 40, 0, 240);
$colors[] = imagecolorallocate($im2, 82, 100, 255);
$colors[] = imagecolorallocate($im2, 84, 63, 44);

// Fait correspondre ces couleurs avec l'image true color
imagecolormatch($im1, $im2);

// Libération de la mémoire
imagedestroy($im1);
imagedestroy($im2);
?>

Voir aussi

  • imagecreatetruecolor() - Crée une nouvelle image en couleurs vraies


Retourne l'index de la couleur donnée, ou la plus proche possible

  • « imagecolormatch
  • imagecolorresolvealpha »
  • PHP Manual
  • Fonctions GD et images
  • Retourne l'index de la couleur donnée, ou la plus proche possible

imagecolorresolve

(PHP 4, PHP 5, PHP 7)

imagecolorresolve — Retourne l'index de la couleur donnée, ou la plus proche possible

Description

int imagecolorresolve ( resource $image , int $red , int $green , int $blue )

imagecolorresolve() retourne un index de couleur à tous les coups. Soit il arrive à trouver la couleur demandée dans la palette, soit il trouve la couleur la plus proche.

Si vous créez l'image depuis un fichier, seules les couleurs utilisées dans l'image seront résolues. Les couleurs uniquement présentes dans la palette ne le seront pas.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

Valeurs de retour

Retourne un index de couleur.

Exemples

Exemple #1 Exemple avec imagecoloresolve() pour récupérer les couleurs d'une image

<?php
// Chargement d'une image
$im = imagecreatefromgif('phplogo.gif');

// Récupération des couleurs les plus proches de l'image
$colors = array();
$colors[] = imagecolorresolve($im, 255, 255, 255);
$colors[] = imagecolorresolve($im, 0, 0, 200)

// Affichage
print_r($colors);

imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 89
    [1] => 85
)

Voir aussi

  • imagecolorclosest() - Retourne l'index de la couleur la plus proche d'une couleur donnée


Retourne un index de couleur ou son alternative la plus proche, y compris le canal alpha

  • « imagecolorresolve
  • imagecolorset »
  • PHP Manual
  • Fonctions GD et images
  • Retourne un index de couleur ou son alternative la plus proche, y compris le canal alpha

imagecolorresolvealpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecolorresolvealpha — Retourne un index de couleur ou son alternative la plus proche, y compris le canal alpha

Description

int imagecolorresolvealpha ( resource $image , int $red , int $green , int $blue , int $alpha )

imagecolorresolvealpha() retourne toujours un index de couleur, disponible dans la palette de l'image image : soit c'est la couleur exacte, soit c'est la meilleure approximation.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

alpha

Une valeur comprise entre 0 et 127. 0 indique une opacité complète tandis que 127 indique une transparence complète.

Les paramètres sur les couleurs sont des entiers entre 0 et 255 ou des hexadécimaux compris entre 0x00 et 0xFF.

Valeurs de retour

Retourne un index de couleur.

Exemples

Exemple #1 Exemple avec imagecoloresolve() pour récupérer les couleurs d'une image

<?php
// Chargement de l'image
$im = imagecreatefromgif('phplogo.gif');

// Récupération des couleurs les plus proches de l'image
$colors = array();
$colors[] = imagecolorresolvealpha($im, 255, 255, 255, 0);
$colors[] = imagecolorresolvealpha($im, 0, 0, 200, 127);

// Affichage
print_r($colors);

imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 89
    [1] => 85
)

Voir aussi

  • imagecolorclosestalpha() - Retourne la couleur la plus proche, en tenant compte du canal alpha


Change la couleur dans une palette à l'index donné

  • « imagecolorresolvealpha
  • imagecolorsforindex »
  • PHP Manual
  • Fonctions GD et images
  • Change la couleur dans une palette à l'index donné

imagecolorset

(PHP 4, PHP 5, PHP 7)

imagecolorset — Change la couleur dans une palette à l'index donné

Description

void imagecolorset ( resource $image , int $index , int $red , int $green , int $blue [, int $alpha = 0 ] )

Permet d'attribuer à un index d'une palette une couleur spécifique. C'est une fonction très pratique pour effectuer du remplissage de couleur sans le faire réellement.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

index

Un index de la palette.

red

Valeur du composant rouge.

green

Valeur du composant vert.

blue

Valeur du composant bleu.

alpha

Valeur du composant alpha.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
5.4.0 | Le paramètre alpha a été ajouté.

Exemples

Exemple #1 Exemple avec imagecolorset()

<?php
// Création d'une image de 300x100 pixels
$im = imagecreate(300, 100);

// Définit la couleur d'arrière-plan à rouge
imagecolorallocate($im, 255, 0, 0);

// Récupération de l'index de la couleur d'arrière-plan
$bg = imagecolorat($im, 0, 0);

// Définit la couleur d'arrière-plan à bleu
imagecolorset($im, $bg, 0, 0, 255);

// Affiche l'image dans le navigateur
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Voir aussi

  • imagecolorat() - Retourne l'index de la couleur d'un pixel donné


Retourne la couleur associée à un index

  • « imagecolorset
  • imagecolorstotal »
  • PHP Manual
  • Fonctions GD et images
  • Retourne la couleur associée à un index

imagecolorsforindex

(PHP 4, PHP 5, PHP 7)

imagecolorsforindex — Retourne la couleur associée à un index

Description

array imagecolorsforindex ( resource $image , int $index )

Retourne la couleur associée à un index spécifié.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

index

L'index de la couleur.

Valeurs de retour

Retourne un tableau associatif avec les clés "red", "green", "blue" et "alpha" qui contiennent les valeurs pour l'index de la couleur spécifiée.

Exemples

Exemple #1 Exemple avec imagecolorsforindex()

<?php

// on ouvre une image
$im = imagecreatefrompng('nexen.png');

// on obtient une couleur
$start_x = 40;
$start_y = 50;
$color_index = imagecolorat($im, $start_x, $start_y);

// on la rend lisible
$color_tran = imagecolorsforindex($im, $color_index);

// quelle est-elle ?
print_r($color_tran);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [red] => 226
   [green] => 222
   [blue] => 252
   [alpha] => 0
)

Voir aussi

  • imagecolorat() - Retourne l'index de la couleur d'un pixel donné
  • imagecolorexact() - Retourne l'index de la couleur donnée


Calcule le nombre de couleurs d'une palette

  • « imagecolorsforindex
  • imagecolortransparent »
  • PHP Manual
  • Fonctions GD et images
  • Calcule le nombre de couleurs d'une palette

imagecolorstotal

(PHP 4, PHP 5, PHP 7)

imagecolorstotal — Calcule le nombre de couleurs d'une palette

Description

int imagecolorstotal ( resource $image )

Retourne le nombre de couleurs de la palette de l'image.

Liste de paramètres

image

Une ressource représentant une image, retournée par une des fonctions de création d'images, comme la fonction imagecreatefromgif().

Valeurs de retour

Retourne le nombre de couleurs de la palette pour l'image image ou 0 pour les images truecolor.

Exemples

Exemple #1 Récupération du nombre total de couleurs dans une image en utilisant la fonction imagecolorstotal()

<?php
// Création d'une instance d'image
$im = imagecreatefromgif('php.gif');

echo 'Nombre total de couleurs dans l\'image : ' . imagecolorstotal($im);

// Libération de la mémoire
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Nombre total de couleurs dans l'image : 128

Voir aussi

  • imagecolorat() - Retourne l'index de la couleur d'un pixel donné
  • imagecolorsforindex() - Retourne la couleur associée à un index
  • imageistruecolor() - Détermine si une image est une image truecolor


Définit la couleur transparente

  • « imagecolorstotal
  • imageconvolution »
  • PHP Manual
  • Fonctions GD et images
  • Définit la couleur transparente

imagecolortransparent

(PHP 4, PHP 5, PHP 7)

imagecolortransparent — Définit la couleur transparente

Description

int imagecolortransparent ( resource $image [, int $color ] )

imagecolortransparent() définit la couleur transparente pour l'image image fournie.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

L'identifiant de la nouvelle couleur transparente (ou l'actuelle, si aucune n'est spécifiée) est retourné. Si le paramètre color n'est pas spécifié, et que l'image n'a pas de couleur transparente, l'identifiant retourné sera -1.

Exemples

Exemple #1 Exemple avec imagecolortransparent()

<?php
// Création d'une image de 55x30
$im = imagecreatetruecolor(55, 30);
$red = imagecolorallocate($im, 255, 0, 0);
$black = imagecolorallocate($im, 0, 0, 0);

// On rend l'arrière-plan transparent
imagecolortransparent($im, $black);

// On dessine un rectangle rouge
imagefilledrectangle($im, 4, 4, 50, 25, $red);

// On sauvegarde l'image
imagepng($im, './imagecolortransparent.png');
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecolortransparent()

Notes

Note:

La transparence est copiée uniquement avec la fonction imagecopymerge() et les images en couleur vraies, non pas avec la fonction imagecopy() ou les images de palette.

Note:

La couleur de transparence est une propriété de l'image, elle n'est pas une propriété de la couleur. Une fois que vous avez défini la couleur de transparence, chaque région de l'image de cette couleur que vous avez dessiné précédemment sera transparente.


Applique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage

  • « imagecolortransparent
  • imagecopy »
  • PHP Manual
  • Fonctions GD et images
  • Applique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage

imageconvolution

(PHP 5 >= 5.1.0, PHP 7)

imageconvolution — Applique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage

Description

bool imageconvolution ( resource $image , array $matrix , float $div , float $offset )

imageconvolution() applique une matrice de la convolution 3x3, en utilisant le coefficient div et l'excentrage offset.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

matrix

Une matrice 3x3 : un tableau contenant trois tableaux de trois nombres à virgules flottantes.

div

Le diviseur du résultat de la convolution, utilisé pour la normalisation.

offset

La position de la couleur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Impression du logo PHP.net avec imageconvolution()

<?php
$image = imagecreatefromgif('http://www.php.net/images/php.gif');

$emboss = array(array(2, 0, 0), array(0, -1, 0), array(0, 0, -1));
imageconvolution($image, $emboss, 1, 127);

header('Content-Type: image/png');
imagepng($image, null, 9);
?>

L'exemple ci-dessus va afficher :

Exemple #2 Flou gaussien avec imageconvolution()

<?php
$image = imagecreatetruecolor(180,40);

// Écrit le texte et applique un floue gaussien sur l'image
imagestring($image, 5, 10, 8, 'Texte floue goussien', 0x00ff00);
$gaussian = array(array(1.0, 2.0, 1.0), array(2.0, 4.0, 2.0), array(1.0, 2.0, 1.0));
imageconvolution($image, $gaussian, 16, 0);

// Récrit le texte pour la comparaison
imagestring($image, 5, 10, 18, 'Texte floue goussien', 0x00ff00);

header('Content-Type: image/png');
imagepng($image, null, 9);
?>

L'exemple ci-dessus va afficher :

Affichage de l'exemple : Floue gaussien

Notes

Cette fonction requière GD 2.1.0 ou supérieur.

Voir aussi

  • imagefilter() - Applique un filtre à une image


Copie une partie d'une image

  • « imageconvolution
  • imagecopymerge »
  • PHP Manual
  • Fonctions GD et images
  • Copie une partie d'une image

imagecopy

(PHP 4, PHP 5, PHP 7)

imagecopy — Copie une partie d'une image

Description

bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )

Copie une partie de l'image src_im sur l'image de destination dst_im, en commençant aux coordonnées src_x, src_y et sur la largeur de src_w et la hauteur de src_h. La portion ainsi définie sera copiée et placée aux coordonnées dst_x et dst_y.

Liste de paramètres

dst_im

Lien vers la ressource cible de l'image.

src_im

Lien vers la ressource source de l'image.

dst_x

X : coordonnées du point de destination.

dst_y

Y : coordonnées du point de destination.

src_x

X : coordonnées du point source.

src_y

Y : coordonnées du point source.

src_w

Largeur de la source.

src_h

Hauteur de la source.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 On coupe le logo PHP.net

<?php
// Création des instances d'image
$src = imagecreatefromgif('php.gif');
$dest = imagecreatetruecolor(80, 40);

// Copie
imagecopy($dest, $src, 0, 0, 20, 13, 80, 40);

// Affichage et libération de la mémoire
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Copie une partie du logo PHP.net


Copie et fusionne une partie d'une image

  • « imagecopy
  • imagecopymergegray »
  • PHP Manual
  • Fonctions GD et images
  • Copie et fusionne une partie d'une image

imagecopymerge

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecopymerge — Copie et fusionne une partie d'une image

Description

bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )

Copie une partie de l'image src_im dans l'image de destination dst_im en commençant aux coordonnées (src_x, src_y), avec la largeur src_w et la hauteur src_h. La zone de l'image ainsi définie sera copiée aux coordonnées (dst_x, dst_y), dans l'image de destination.

Liste de paramètres

dst_im

Lien vers la ressource cible de l'image.

src_im

Lien vers la ressource source de l'image.

dst_x

X : coordonnée du point de destination.

dst_y

Y : coordonnée du point de destination.

src_x

X : coordonnée du point source.

src_y

Y : coordonnée du point source.

src_w

Largeur de la source.

src_h

Hauteur de la source.

pct

Les deux images seront fusionnées suivant le paramètre pct, qui peut valoir de 0 à 100. Si pct = 0, aucune action n'est faite, alors que si pct = 100, imagecopymerge() se comporte exactement comme imagecopy() pour les images de palette, sauf pour l'ignorance des composants alpha, tandis qu'il implémente la transparence alpha pour les images en couleur vraies.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fusionne 2 copies du logo PHP.net avec 75% de transparence

<?php
// Création des instances d'image
$dest = imagecreatefromgif('php.gif');
$src = imagecreatefromgif('php.gif');

// Copie et fusionne
imagecopymerge($dest, $src, 10, 10, 0, 0, 100, 47, 75);

// Affichage et libération de la mémoire
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>


Copie et fusionne une partie d'une image en niveaux de gris

  • « imagecopymerge
  • imagecopyresampled »
  • PHP Manual
  • Fonctions GD et images
  • Copie et fusionne une partie d'une image en niveaux de gris

imagecopymergegray

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecopymergegray — Copie et fusionne une partie d'une image en niveaux de gris

Description

bool imagecopymergegray ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )

imagecopymergegray() copie une partie de l'image src_im dans l'image de destination dst_im commençant aux coordonnées (src_x, src_y), avec la largeur src_w et la hauteur src_h. La zone de l'image ainsi définie sera copiée aux coordonnées (dst_x, dst_y), dans l'image de destination.

imagecopymergegray() est identique à la fonction imagecopymerge(), hormis le fait que lors de la fusion, le "hue" de l'image sera conservé grâce à la conversion de la zone dans l'image de destination en gris, avant l'opération de copie.

Liste de paramètres

dst_im

Lien vers la ressource cible de l'image.

src_im

Lien vers la ressource source de l'image.

dst_x

X : coordonnée du point de destination.

dst_y

Y : coordonnée du point de destination.

src_x

X : coordonnée du point source.

src_y

Y : coordonnée du point source.

src_w

Largeur de la source.

src_h

Hauteur de la source.

pct

Le paramètre src_im sera changé en niveaux de gris en accord avec le paramètre pct où 0 correspond à une convertion totale en niveaux de gris et 100 ne modifie rien. Lorsque pct = 100, cette fonction se comporte de la même façon que la fonction imagecopy() pour les palettes, sauf pour l'ignorance des composants alpha, alors qu'elle implémente la transparence alpha pour les images true colour.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecopymergegray()

<?php
// Création des instances d'image
$dest = imagecreatefromgif('php.gif');
$src = imagecreatefromgif('php.gif');

// Copie et fusionne - Gris = 20%
imagecopymergegray($dest, $src, 10, 10, 0, 0, 100, 47, 20);

// Affichage et libère la mémoire
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>


Copie, redimensionne, rééchantillonne une image

  • « imagecopymergegray
  • imagecopyresized »
  • PHP Manual
  • Fonctions GD et images
  • Copie, redimensionne, rééchantillonne une image

imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecopyresampled — Copie, redimensionne, rééchantillonne une image

Description

bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

imagecopyresampled() copie une zone rectangulaire de l'image src_im vers l'image dst_im. Durant la copie, la zone est rééchantillonnée de manière à conserver la clarté de l'image durant une réduction.

En d'autres termes, imagecopyresampled() prendra une forme rectangulaire src_image d'une largeur de src_w et d'une hauteur src_h à la position (src_x,src_y) et le placera dans une zone rectangulaire dst_image d'une largeur de dst_w et d'une hauteur de dst_h à la position (dst_x,dst_y).

Si les hauteurs et largeurs des source et destination diffèrent, l'image copiée sera étirée de manière appropriée. Les coordonnées sont celles du coin supérieur gauche. imagecopyresampled() peut servir à copier des zones d'une image vers elle-même, (si dst_image est la même que src_image) mais si les régions se chevauchent, les résultats sont imprévisibles.

Liste de paramètres

dst_image

Lien vers la ressource cible de l'image.

src_image

Lien vers la ressource source de l'image.

dst_x

X : coordonnées du point de destination.

dst_y

Y : coordonnées du point de destination.

src_x

X : coordonnées du point source.

src_y

Y : coordonnées du point source.

dst_w

Largeur de la destination.

dst_h

Hauteur de la destination.

src_w

Largeur de la source.

src_h

Hauteur de la source.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple simple

Cet exemple redimensionne une image à la moitié de sa taille originale.

<?php
// Le fichier
$filename = 'test.jpg';
$percent = 0.5;

// Content type
header('Content-Type: image/jpeg');

// Calcul des nouvelles dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Redimensionnement
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Affichage
imagejpeg($image_p, null, 100);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Exemple #2 Redimensionnement proportionnel d'une image

Cet exemple affichera une image avec une largeur ou une hauteur maximale de 200 pixels.

<?php
// Le fichier
$filename = 'test.jpg';

// Définition de la largeur et de la hauteur maximale
$width = 200;
$height = 200;

// Content type
header('Content-Type: image/jpeg');

// Cacul des nouvelles dimensions
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
} else {
   $height = $width/$ratio_orig;
}

// Redimensionnement
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Affichage
imagejpeg($image_p, null, 100);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Réchantillone une image proportionnellement

Notes

Note:

Il y a un problème dû aux limitations de la taille de la palette (255 + 1 couleurs différentes). Filtrer ou rééchantillonner une image demande plus de 255 couleurs, une approximation est alors utilisée pour calculer le nouveau nombre de couleurs. Avec une palette, si une nouvelle couleur ne peut être allouée, la couleur la plus proche (en théorie) est utilisée. Ce n'est pas toujours la couleur la plus proche visuellement. Cela peut générer des problèmes étranges, comme des images blanches. Pour éviter ce problème, passez en image TrueColor, comme celle générée par la fonction imagecreatetruecolor().

Voir aussi

imagecopyresized() - Copie et redimensionne une partie d'une image


Copie et redimensionne une partie d'une image

  • « imagecopyresampled
  • imagecreate »
  • PHP Manual
  • Fonctions GD et images
  • Copie et redimensionne une partie d'une image

imagecopyresized

(PHP 4, PHP 5, PHP 7)

imagecopyresized — Copie et redimensionne une partie d'une image

Description

bool imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

imagecopyresized() copie une partie rectangulaire d'une image dans une autre image de destination. dst_image est l'image de destination, src_image est l'image source.

En d'autres termes, imagecopyresized() prendra une forme rectangulaire src_image d'une largeur de src_w et d'une hauteur src_h à la position (src_x,src_y) et le placera dans une zone rectangulaire dst_image d'une largeur de dst_w et d'une hauteur de dst_h à la position (dst_x,dst_y).

Si les dimensions de la source et de la destination ne sont pas égales, un étirement adéquat est effectué pour faire correspondre les deux. Les coordonnées fournies sont définies par rapport au coin supérieur gauche. Cette fonction peut être utilisée pour recopier des régions à l'intérieur d'une même image (si dst_image et src_image sont identiques), mais si les régions se chevauchent, le résultat risque d'être incohérent.

Liste de paramètres

dst_image

Lien vers la ressource cible de l'image.

src_image

Lien vers la ressource source de l'image.

dst_x

X : coordonnée du point de destination.

dst_y

Y : coordonnée du point de destination.

src_x

X : coordonnée du point source.

src_y

Y : coordonnée du point source.

dst_w

Largeur de la destination.

dst_h

Hauteur de la destination.

src_w

Largeur de la source.

src_h

Hauteur de la source.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Redimensionnement d'une image

Cet exemple affichera l'image redimensionnée à la moitié de sa taille d'origine.

<?php
// Fichier et nouvelle taille
$filename = 'test.jpg';
$percent = 0.5;

// Content type
header('Content-Type: image/jpeg');

// Calcul des nouvelles dimensions
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// Chargement
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

// Redimensionnement
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// Affichage
imagejpeg($thumb);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecopyresized()

L'image affiché aura une taille de moitié moins que l'image d'origine, mais une meilleur qualité peut être obtenue en utilisant la fonction imagecopyresampled().

Notes

Note:

Il y a un problème dû aux limitations de la taille de la palette (255 + 1 couleurs différentes). Filtrer ou rééchantillonner une image demande plus de 255 couleurs, une approximation est alors utilisée pour calculer le nouveau nombre de couleurs. Avec une palette, si une nouvelle couleur ne peut être allouée, la couleur la plus proche (en théorie) est utilisée ; ce n'est pas toujours celle qui est la plus proche visuellement. Cela peut générer des problèmes étranges, comme des images blanches. Pour éviter ce problème, passez en image TrueColor, comme celles générée par la fonction imagecreatetruecolor().

Voir aussi

imagecopyresampled() - Copie, redimensionne, rééchantillonne une image


Crée une nouvelle image à palette

  • « imagecopyresized
  • imagecreatefromgd2 »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image à palette

imagecreate

(PHP 4, PHP 5, PHP 7)

imagecreate — Crée une nouvelle image à palette

Description

resource imagecreate ( int $width , int $height )

imagecreate() retourne un identifiant d'image représentant une image vide.

En général, nous recommandons l'utilisation de la fonction imagecreatetruecolor() au lieu de la fonction imagecreate() afin que l'opération sur l'image s'effectue avec une qualité la plus haute possible. Si vous voulez sortir une palette, alors la fonction imagetruecolortopalette() doit être appelée immédiatement avant l'enregistrement de l'image avec la fonction imagepng() ou la fonction imagegif().

Liste de paramètres

width

La largeur de l'image.

height

La hauteur de l'image.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'une image GD et affichage de cette image

<?php
header("Content-Type: image/png");
$im = @imagecreate(110, 20)
    or die("Impossible d'initialiser la bibliothèque GD");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecreate()

Voir aussi

  • imagedestroy() - Détruit une image
  • imagecreatetruecolor() - Crée une nouvelle image en couleurs vraies


Crée une nouvelle image à partir d'un fichier GD2 ou d'une URL

  • « imagecreate
  • imagecreatefromgd2part »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image à partir d'un fichier GD2 ou d'une URL

imagecreatefromgd2

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagecreatefromgd2 — Crée une nouvelle image à partir d'un fichier GD2 ou d'une URL

Description

resource imagecreatefromgd2 ( string $filename )

Crée une nouvelle image depuis un fichier GD2 ou une URL.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image GD2.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecreatefromgd2()

<?php
// Charge l'image gd2
$im = imagecreatefromgd2('./test.gd2');

// Applique un effet sur l'image : on applique ici un filtre négatif si nous
// utilisons PHP 5+
if(function_exists('imagefilter'))
{
    imagefilter($im, IMG_FILTER_NEGATE);
}

// Sauvegarde de l'image
imagegd2($im, './test_updated.gd2');
imagedestroy($im);
?>


Crée une nouvelle image à partir d'une partie de fichier GD2 ou d'une URL

  • « imagecreatefromgd2
  • imagecreatefromgd »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image à partir d'une partie de fichier GD2 ou d'une URL

imagecreatefromgd2part

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagecreatefromgd2part — Crée une nouvelle image à partir d'une partie de fichier GD2 ou d'une URL

Description

resource imagecreatefromgd2part ( string $filename , int $srcX , int $srcY , int $width , int $height )

Crée une nouvelle image depuis une partie d'un fichier GD2 ou d'une URL.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image GD2.

srcX

Coordonnée en X du point source.

srcY

Coordonnée en Y du point source.

width

Largeur de la source.

height

Hauteur de la source.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecreatefromgd2part()

<?php
// Pour cet exemple, nous avons tout d'abord besoin des dimensions de l'image
$image = getimagesize('./test.gd2');

// Création de l'instance d'image maintenant que nous avons les dimensions
$im = imagecreatefromgd2part('./test.gd2', 4, 4, ($image[0] / 2) - 6, ($image[1] / 2) - 6);

// Opération sur l'image : ici, nous imprimons l'image si nous utilisons PHP 5+
if(function_exists('imagefilter'))
{
    imagefilter($im, IMG_FILTER_EMBOSS);
}

// Sauvegarde de l'image optimisée
imagegd2($im, './test_emboss.gd2');
imagedestroy($im);
?>


Crée une nouvelle image à partir d'un fichier GD ou d'une URL

  • « imagecreatefromgd2part
  • imagecreatefromgif »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image à partir d'un fichier GD ou d'une URL

imagecreatefromgd

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagecreatefromgd — Crée une nouvelle image à partir d'un fichier GD ou d'une URL

Description

resource imagecreatefromgd ( string $filename )

Crée une nouvelle image depuis un fichier GD ou une URL.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers un fichier GD.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecreatefromgd()

<?php
// Charge une image GD
$im = @imagecreatefromgd('./test.gd');

// Vérifie si l'image est bien chargée
if(!is_resource($im))
{
     die('Impossible de charger l\'image GD');
}

// Des opérations sur l'image ici

// Sauvegarde de l'image
imagegd($im, './test_updated.gd');
imagedestroy($im);
?>


Crée une nouvelle image depuis un fichier ou une URL

  • « imagecreatefromgd
  • imagecreatefromjpeg »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image depuis un fichier ou une URL

imagecreatefromgif

(PHP 4, PHP 5, PHP 7)

imagecreatefromgif — Crée une nouvelle image depuis un fichier ou une URL

Description

resource imagecreatefromgif ( string $filename )

imagecreatefromgif() retourne un identifiant d'image qui représente l'image obtenue à partir du fichier dont le nom est donné par filename.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image GIF.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de prise en charge d'une erreur lors du chargement d'une image GIF

<?php
function LoadGif($imgname)
{
    /* Tente d'ouvrir l'image */
    $im = @imagecreatefromgif($imgname);

    /* Traitement si l'ouverture a échoué */
    if(!$im)
    {
        /* Création d'une image vide */
        $im = imagecreatetruecolor (150, 30);
        $bgc = imagecolorallocate ($im, 255, 255, 255);
        $tc = imagecolorallocate ($im, 0, 0, 0);

        imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);

        /* Affiche un message d'erreur dans l'image */
        imagestring ($im, 1, 5, 5, 'Error loading ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/gif');

$img = LoadGif('bogus.image');

imagegif($img);
imagedestroy($img);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecreatefromgif()

Notes

Note:

Le support du GIF a été supprimé de la bibliothèque GD dans sa version 1.6 et a été rajouté depuis la version 2.0.28. Cette fonction n'est donc pas disponible entre ces deux versions.

Note:

Lors de la lecture en mémoire de fichiers GIF animés, seule la première frame est retournée au pointeur de ressource de l'image.


Crée une nouvelle image depuis un fichier ou une URL

  • « imagecreatefromgif
  • imagecreatefrompng »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image depuis un fichier ou une URL

imagecreatefromjpeg

(PHP 4, PHP 5, PHP 7)

imagecreatefromjpeg — Crée une nouvelle image depuis un fichier ou une URL

Description

resource imagecreatefromjpeg ( string $filename )

imagecreatefromjpeg() retourne un identifiant d'image représentant une image obtenue à partir du fichier filename.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image JPEG.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de gestion d'une erreur lors du chargement d'une image JPEG

<?php
function LoadJpeg($imgname)
{
    /* Tente d'ouvrir l'image */
    $im = @imagecreatefromjpeg($imgname);

    /* Traitement en cas d'échec */
    if(!$im)
    {
        /* Création d'une image vide */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* On y affiche un message d'erreur */
        imagestring($im, 1, 5, 5, 'Erreur de chargement ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/jpeg');

$img = LoadJpeg('bogus.image');

imagejpeg($img);
imagedestroy($img);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Exemple de gestion d'une erreur durant le chargement d'un JPEG


Crée une nouvelle image depuis un fichier ou une URL

  • « imagecreatefromjpeg
  • imagecreatefromstring »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image depuis un fichier ou une URL

imagecreatefrompng

(PHP 4, PHP 5, PHP 7)

imagecreatefrompng — Crée une nouvelle image depuis un fichier ou une URL

Description

resource imagecreatefrompng ( string $filename )

imagecreatefrompng() retourne un identifiant d'image représentant une image obtenue à partir du fichier filename.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image PNG.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de gestion d'une erreur lors du chargement d'une image PNG

<?php
function LoadPNG($imgname)
{
    /* Tente d'ouvrir l'image */
    $im = @imagecreatefrompng($imgname);

    /* Traitement en cas d'échec */
    if(!$im)
    {
        /* Création d'une image vide */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* On y affiche un message d'erreur */
        imagestring($im, 1, 5, 5, 'Erreur de chargement ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/png');

$img = LoadPNG('bogus.image');

imagepng($img);
imagedestroy($img);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Exemple avec la fonction imagecreatefrompng()


Crée une image à partir d'une chaîne

  • « imagecreatefrompng
  • imagecreatefromwbmp »
  • PHP Manual
  • Fonctions GD et images
  • Crée une image à partir d'une chaîne

imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

imagecreatefromstring — Crée une image à partir d'une chaîne

Description

resource imagecreatefromstring ( string $image )

imagecreatefromstring() retourne un identifiant d'image représentant l'image obtenue depuis la chaîne image. Le type de l'image sera automatiquement détecté si vous avez compilé PHP avec les supports : JPEG, PNG, GIF, WBMP et GD2.

Liste de paramètres

image

Une chaîne contenant les données de l'image.

Valeurs de retour

Une ressource d'image sera retourné en cas de succès. FALSE est retourné si le type de l'image n'est pas supporté, si les données ne sont pas dans un format reconnu ou si l'image est corrompue et donc ne peut être chargée.

Exemples

Exemple #1 Exemple avec imagecreatefromstring()

<?php
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);

$im = imagecreatefromstring($data);
if ($im !== false) {
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);
}
else {
    echo 'An error occurred.';
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagecreatefromstring()

Voir aussi

  • imagecreatefromjpeg() - Crée une nouvelle image depuis un fichier ou une URL
  • imagecreatefrompng() - Crée une nouvelle image depuis un fichier ou une URL
  • imagecreatefromgif() - Crée une nouvelle image depuis un fichier ou une URL
  • imagecreatetruecolor() - Crée une nouvelle image en couleurs vraies


Crée une nouvelle image depuis un fichier ou une URL

  • « imagecreatefromstring
  • imagecreatefromwebp »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image depuis un fichier ou une URL

imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecreatefromwbmp — Crée une nouvelle image depuis un fichier ou une URL

Description

resource imagecreatefromwbmp ( string $filename )

imagecreatefromwbmp() retourne une ressource d'image PHP, représentant l'image filename.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image WBMP.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de gestion d'une erreur lors du chargement d'une image WBMP

<?php
function LoadWBMP($imgname)
{
    /* Tente d'ouvrir l'image */
    $im = @imagecreatefromwbmp($imgname);

    /* Traitement en cas d'échec */
    if(!$im)
    {
        /* Création d'une image vide */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* On y affiche un message d'erreur */
        imagestring($im, 1, 5, 5, 'Erreur de chargement ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/vnd.wap.wbmp');

$img = LoadWBMP('bogus.image');

imagewbmp($img);
imagedestroy($img);
?>


Crée une nouvelle image depuis un fichier ou une URL

  • « imagecreatefromwbmp
  • imagecreatefromxbm »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image depuis un fichier ou une URL

imagecreatefromwebp

(PHP 5 >= 5.5.0, PHP 7)

imagecreatefromwebp — Crée une nouvelle image depuis un fichier ou une URL

Description

resource imagecreatefromwebp ( string $filename )

imagecreatefromwebp() retourne un identifiant d'image représentant l'image obtenue depuis le fichier fourni.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image WebP.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Convertit une image WebP en une image jpeg en utilisant la fonction imagecreatefromwebp()

<?php
// Charge le fichier WebP
$im = imagecreatefromwebp('./example.webp');

// On la convertit en un fichier jpeg avec une qualité à 100%
imagejpeg($im, './example.jpeg', 100);
imagedestroy($im);
?>


Crée une nouvelle image depuis un fichier ou une URL

  • « imagecreatefromwebp
  • imagecreatefromxpm »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image depuis un fichier ou une URL

imagecreatefromxbm

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecreatefromxbm — Crée une nouvelle image depuis un fichier ou une URL

Description

resource imagecreatefromxbm ( string $filename )

imagecreatefromxbm() retourne un identifiant d'image représentant l'image obtenue à partir du fichier filename.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image XBM.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Convertie une image XBM en une image PNG en utilisant la fonction imagecreatefromxbm()

<?php
// Chargement du fichier XBM
$xbm = imagecreatefromxbm('./example.xbm');

// On la convertie en fichier PNG
imagepng($xbm, './example.png');
imagedestroy($xbm);
?>


Crée une nouvelle image depuis un fichier ou une URL

  • « imagecreatefromxbm
  • imagecreatetruecolor »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image depuis un fichier ou une URL

imagecreatefromxpm

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecreatefromxpm — Crée une nouvelle image depuis un fichier ou une URL

Description

resource imagecreatefromxpm ( string $filename )

imagecreatefromxpm() retourne un identifiant d'image représentant l'image obtenue à partir du fichier filename.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

Liste de paramètres

filename

Chemin vers l'image XPM.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'une instance d'image en utilisant la fonction imagecreatefromxpm()

<?php
// Vérifie le support XPM
if(!(imagetypes() & IMG_XPM))
{
    die('Le support XPM n\'a pu être vérifié !');
}

// Création de l'instance d'une image
$xpm = imagecreatefromxpm('./example.xpm');

// Quelques opérations sur l'image ici

// PHP n'a pas le support pour l'écriture des images XPM
// aussi, dans ce cas, nous sauvegardons l'image dans un fichier JPEG
// avec une qualité de 100%
imagejpeg($xpm, './example.jpg', 100);
imagedestroy($xpm);
?>

Valeurs de retour

Note: Cette fonction n'est pas implémentée sous Windows.


Crée une nouvelle image en couleurs vraies

  • « imagecreatefromxpm
  • imagecrop »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image en couleurs vraies

imagecreatetruecolor

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecreatetruecolor — Crée une nouvelle image en couleurs vraies

Description

resource imagecreatetruecolor ( int $width , int $height )

imagecreatetruecolor() retourne une ressource représentant une image noire.

Liste de paramètres

width

Largeur de l'image.

height

Hauteur de l'image.

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'un flux d'image GD, et affichage

<?php
header ('Content-Type: image/png');
$im = @imagecreatetruecolor(120, 20)
      or die('Impossible de créer un flux d\'image GD');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Une simple chaîne de texte', $text_color);
imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Creating a new GD image stream and outputting an image.

Voir aussi

  • imagedestroy() - Détruit une image
  • imagecreate() - Crée une nouvelle image à palette


Recadre une image en utilisant les coordonnées, la taille, x, y, hauteur et largeur fournis

  • « imagecreatetruecolor
  • imagecropauto »
  • PHP Manual
  • Fonctions GD et images
  • Recadre une image en utilisant les coordonnées, la taille, x, y, hauteur et largeur fournis

imagecrop

(PHP 5 >= 5.5.0, PHP 7)

imagecrop — Recadre une image en utilisant les coordonnées, la taille, x, y, hauteur et largeur fournis

Description

resource imagecrop ( resource $image , array $rect )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

rect

Tableau contenant les clés "x", "y", "width" et "height".

Valeurs de retour

Retourne la ressource de l'image recadrée en cas de succès ou FALSE si une erreur survient.


Recadre une image automatiquement en utilisant un des modes disponibles

  • « imagecrop
  • imagedashedline »
  • PHP Manual
  • Fonctions GD et images
  • Recadre une image automatiquement en utilisant un des modes disponibles

imagecropauto

(PHP 5 >= 5.5.0, PHP 7)

imagecropauto — Recadre une image automatiquement en utilisant un des modes disponibles

Description

resource imagecropauto ( resource $image [, int $mode = -1 [, float $threshold = .5 [, int $color = -1 ]]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

mode

Une constante parmi IMG_CROP_*.

threshold

Utilisé en mode IMG_CROP_THRESHOLD.

color

Utilisé en mode IMG_CROP_THRESHOLD.

Valeurs de retour

Retourne la ressource de l'image recadrée en cas de succès ou FALSE si une erreur survient.


Dessine une ligne pointillée

  • « imagecropauto
  • imagedestroy »
  • PHP Manual
  • Fonctions GD et images
  • Dessine une ligne pointillée

imagedashedline

(PHP 4, PHP 5, PHP 7)

imagedashedline — Dessine une ligne pointillée

Description

bool imagedashedline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

imagedashedline() est obsolète. Utilisez plutôt
une combinaison des fonctions imagesetstyle() et
imageline().

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

Coordonnée en X : En haut, à gauche.

y1

Coordonnée en Y : En haut, à gauche. 0 est le coin en haut à gauche de l'image.

x2

Coordonnée en X : En bas, à droite.

y2

Coordonnée en Y : En bas, à droite.

color

La couleur de remplissage. Un identifiant de couleur retourné par la fonction imagecolorallocate().

Valeurs de retour

Retourne toujours TRUE.

Exemples

Exemple #1 Exemple avec imagedashedline()

<?php
// Crée une image de 100x100 pixels
$im = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

// Dessine une ligne verticale en pointillé
imagedashedline($im, 50, 25, 50, 75, $white);

// Sauvegarde l'image
imagepng($im, './dashedline.png');
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagedashedline()

Exemple #2 Alternative à la fonction imagedashedline()

<?php
// Crée une image de 100x100 pixels
$im = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

// Définit le style : Les 4 premiers pixels sont blancs et les 4 suivants
// sont transparents. Ceci va créer l'effet de pointillé
$style = Array(
                $white,
                $white,
                $white,
                $white,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT
                );

imagesetstyle($im, $style);

// Dessine la ligne pointillée
imageline($im, 50, 25, 50, 75, IMG_COLOR_STYLED);

// Sauvegarde de l'image
imagepng($im, './imageline.png');
imagedestroy($im);
?>

Voir aussi

  • imagesetstyle() - Configure le style pour le dessin des lignes
  • imageline() - Dessine une ligne


Détruit une image

  • « imagedashedline
  • imageellipse »
  • PHP Manual
  • Fonctions GD et images
  • Détruit une image

imagedestroy

(PHP 4, PHP 5, PHP 7)

imagedestroy — Détruit une image

Description

bool imagedestroy ( resource $image )

imagedestroy() libère toute la mémoire associée à l'image image.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagedestroy()

<?php
// Crée une image de 100 x 100 pixels
$im = imagecreatetruecolor(100, 100);

// Modification et/ou sauvegarde de l'image

// Libération de la mémoire associée
imagedestroy($im);
?>


Dessine une ellipse

  • « imagedestroy
  • imagefill »
  • PHP Manual
  • Fonctions GD et images
  • Dessine une ellipse

imageellipse

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imageellipse — Dessine une ellipse

Description

bool imageellipse ( resource $image , int $cx , int $cy , int $width , int $height , int $color )

Dessine une ellipse centrée sur le point spécifié.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

cx

X : coordonnée du centre.

cy

Y : coordonnée du centre.

width

La largeur de l'ellipse.

height

La hauteur de l'ellipse.

color

La couleur de l'ellipse. Un identifiant de couleur créé avec la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imageellipse()

<?php
// Création d'une image vide
$image = imagecreatetruecolor(400, 300);

// Choix de la couleur d'arrière-plan
$bg = imagecolorallocate($image, 0, 0, 0);

// Remplit l'arrière-plan avec la couleur sélectionnée
imagefill($image, 0, 0, $bg);

// Choix de la couleur de l'ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// On dessine l'ellipse
imageellipse($image, 200, 150, 300, 200, $col_ellipse);

// On affiche l'image
header("Content-type: image/png");
imagepng($image);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imageellipse()

Notes

Note:

Cette fonction nécessite GD 2.0.2 ou une version supérieure.

Voir aussi

  • imagefilledellipse() - Dessine une ellipse pleine
  • imagearc() - Dessine une ellipse partielle


Remplissage

  • « imageellipse
  • imagefilledarc »
  • PHP Manual
  • Fonctions GD et images
  • Remplissage

imagefill

(PHP 4, PHP 5, PHP 7)

imagefill — Remplissage

Description

bool imagefill ( resource $image , int $x , int $y , int $color )

Effectue un remplissage avec la couleur color, dans l'image image, à partir du point de coordonnées (x, y) (le coin supérieur gauche est l'origine (0,0)).

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

x

X : coordonnée du point de départ.

y

Y : coordonnée du point de départ.

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagefill()

<?php

$im = imagecreatetruecolor(100, 100);

// Fixe le fond rouge
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagefill()

Voir aussi

  • imagecolorallocate() - Alloue une couleur pour une image


Dessine un arc partiel et le remplit

  • « imagefill
  • imagefilledellipse »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un arc partiel et le remplit

imagefilledarc

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagefilledarc — Dessine un arc partiel et le remplit

Description

bool imagefilledarc ( resource $image , int $cx , int $cy , int $width , int $height , int $start , int $end , int $color , int $style )

Dessine un arc partiel, centré aux coordonnées spécifiées dans l'image fournie.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

cx

X : coordonnée du centre.

cy

Y : coordonnée du centre.

width

La largeur de l'arc.

height

La hauteur de l'arc.

start

L'angle de début de l'arc, en degrés.

end

L'angle de fin de l'arc, en degrés. 0° est situé à une position de 3 heures sur un cadran horaire, et l'arc est dessiné dans le sens des aiguilles d'une montre.

color

Un identifiant de couleur, créé par la fonction imagecolorallocate().

style

Un champ d'octets, combiné avec l'opérateur OR :

  1. IMG_ARC_PIE
  2. IMG_ARC_CHORD
  3. IMG_ARC_NOFILL
  4. IMG_ARC_EDGED
IMG_ARC_PIE et IMG_ARC_CHORD sont mutuellement exclusives; IMG_ARC_CHORD ne fait que connecter les angles de début et de fin avec une ligne droite, tandis que IMG_ARC_PIE produit une ligne courbe. IMG_ARC_NOFILL indique que l'arc (ou corde) doit être dessiné mais pas rempli. IMG_ARC_EDGED, utilisé conjointement avec IMG_ARC_NOFILL, indique que les angles de début et de fin doivent être connectés au centre. Cette fonction est recommandée pour faire les graphiques de type camembert.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'un camembert en 3D

<?php

// Création de l'image
$image = imagecreatetruecolor(100, 100);

// Allocation de quelques couleurs
$white    = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray     = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy     = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red      = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkred  = imagecolorallocate($image, 0x90, 0x00, 0x00);

// Création de l'effet 3D
for ($i = 60; $i > 50; $i--) {
   imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE);
   imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE);
   imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE);
}

imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE);

// Affichage de l'image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Création d'un graphique 3D


Dessine une ellipse pleine

  • « imagefilledarc
  • imagefilledpolygon »
  • PHP Manual
  • Fonctions GD et images
  • Dessine une ellipse pleine

imagefilledellipse

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagefilledellipse — Dessine une ellipse pleine

Description

bool imagefilledellipse ( resource $image , int $cx , int $cy , int $width , int $height , int $color )

Dessine une ellipse centrée sur les coordonnées spécifiées sur l'image fournie.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

cx

X : coordonnée du centre.

cy

Y : coordonnée du centre.

width

La largeur de l'ellipse.

height

La hauteur de l'ellipse.

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagefilledellipse()

<?php

// Nouvelle image
$image = imagecreatetruecolor(400, 300);

// Couleur de fond
$bg = imagecolorallocate($image, 0, 0, 0);

// Couleur de remplissage de l'ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// On dessine l'ellipse blanche
imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);

// On affiche l'image
header("Content-type: image/png");
imagepng($image);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagefilledellipse()

Notes

Note:

imagefilledellipse() ignore imagesetthickness().

Voir aussi

  • imageellipse() - Dessine une ellipse
  • imagefilledarc() - Dessine un arc partiel et le remplit


Dessine un polygone rempli

  • « imagefilledellipse
  • imagefilledrectangle »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un polygone rempli

imagefilledpolygon

(PHP 4, PHP 5, PHP 7)

imagefilledpolygon — Dessine un polygone rempli

Description

bool imagefilledpolygon ( resource $image , array $points , int $num_points , int $color )

imagefilledpolygon() dessine un polygone rempli dans l'image image.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

points

Un tableau qui contient les coordonnées x et y du sommet des polygones.

num_points

Le nombre total de sommets, et doit être d'au moins 3.

color

Un identifiant de couleur, créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagefilledpolygon()

<?php
// Définition du tablau de points pour le polygone
$values = array(
            40,  50,  // Point 1 (x, y)
            20,  240, // Point 2 (x, y)
            60,  60,  // Point 3 (x, y)
            240, 20,  // Point 4 (x, y)
            50,  40,  // Point 5 (x, y)
            10,  10   // Point 6 (x, y)
            );

// Création d'une image
$image = imagecreatetruecolor(250, 250);

// Alloue quelques couleurs
$bg   = imagecolorallocate($image, 0, 0, 0);
$blue = imagecolorallocate($image, 0, 0, 255);

// Remplit l'arrière-plan
imagefilledrectangle($image, 0, 0, 249, 249, $bg);

// Dessine le polygone
imagefilledpolygon($image, $values, 6, $blue);

// Affichage de l'image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagefilledpolygon()


Dessine un rectangle rempli

  • « imagefilledpolygon
  • imagefilltoborder »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un rectangle rempli

imagefilledrectangle

(PHP 4, PHP 5, PHP 7)

imagefilledrectangle — Dessine un rectangle rempli

Description

bool imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

Dessine un rectangle de couleur color dans l'image image, en commençant par le sommet supérieur gauche (1) et finissant au sommet inférieur droit (2). Le coin supérieur gauche est l'origine (0, 0).

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

X : coordonné du point 1.

y1

Y : coordonné du point 1.

x2

X : coordonné du point 2.

y2

Y : coordonné du point 2.

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagefilledrectangle()

<?php
// Création d'une image de 55x30 pixels
$im = imagecreatetruecolor(55, 30);
$white = imagecolorallocate($im, 255, 255, 255);

// Dessine un rectangle blanc
imagefilledrectangle($im, 4, 4, 50, 25, $white);

// Sauvegarde l'image
imagepng($im, './imagefilledrectangle.png');
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagefilledrectangle()


Remplit une région avec une couleur spécifique

  • « imagefilledrectangle
  • imagefilter »
  • PHP Manual
  • Fonctions GD et images
  • Remplit une région avec une couleur spécifique

imagefilltoborder

(PHP 4, PHP 5, PHP 7)

imagefilltoborder — Remplit une région avec une couleur spécifique

Description

bool imagefilltoborder ( resource $image , int $x , int $y , int $border , int $color )

imagefilltoborder() remplit avec la couleur color toute la région à l'intérieur de la région limitée par la couleur border. Le point de départ est (x, y) (le coin supérieur gauche est l'origine (0,0)) et la couleur de la région est color.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

x

X : coordonné de départ.

y

Y : coordonné de départ.

border

La couleur de la bordure. Un identifiant de couleur créé par la fonction imagecolorallocate().

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Remplissage d'un ellipse avec une couleur

<?php
// Création d'un gestionnaire d'image, puis définit la couleur d'arrière-plan
// à blanc
$im = imagecreatetruecolor(100, 100);
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 255, 255, 255));

// Dessine une ellipse dont les bordures seront noires
imageellipse($im, 50, 50, 50, 50, imagecolorallocate($im, 0, 0, 0));

// Définit la bordure et remplit l'ellipse de la couleur choisie
$border = imagecolorallocate($im, 0, 0, 0);
$fill = imagecolorallocate($im, 255, 0, 0);

// Remplit la sélection
imagefilltoborder($im, 50, 50, $border, $fill);

// Affichage et libération de la mémoire
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagefilltoborder()


Applique un filtre à une image

  • « imagefilltoborder
  • imageflip »
  • PHP Manual
  • Fonctions GD et images
  • Applique un filtre à une image

imagefilter

(PHP 5, PHP 7)

imagefilter — Applique un filtre à une image

Description

bool imagefilter ( resource $image , int $filtertype [, int $arg1 [, int $arg2 [, int $arg3 [, int $arg4 ]]]] )

imagefilter() applique le filtre filtertype à l'image en utilisant les paramètres args1, args2 et args3 lorsque cela est nécessaire.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

filtertype

Le paramètre filtertype peut prendre l'une des valeurs suivantes :

  • IMG_FILTER_NEGATE : renverse toutes les couleurs de l'image.
  • IMG_FILTER_GRAYSCALE : convertit l'image en grayscale.
  • IMG_FILTER_BRIGHTNESS : modifie la luminosité de l'image. Utilisez le paramètre args1 pour définir la luminosité. L'intervalle de la luminosité est de -255 à 255.
  • IMG_FILTER_CONTRAST : modifie le contraste de l'image. Utilisez le paramètre args1 pour définir le contraste.
  • IMG_FILTER_COLORIZE : identique au paramètre IMG_FILTER_GRAYSCALE excepté que vous pouvez spécifier une couleur. Utilisez trois arguments séparés dans les paramètres args1, args2 et args3 sous la forme red, green, blue et arg4 pour le canal alpha. L'intervalle pour chaque couleur est 0 - 255.
  • IMG_FILTER_EDGEDETECT : utilise la détection des bords pour les mettre en évidence dans l'image.
  • IMG_FILTER_EMBOSS : grave l'image en relief.
  • IMG_FILTER_GAUSSIAN_BLUR : brouille l'image en utilisant la méthode gaussienne.
  • IMG_FILTER_SELECTIVE_BLUR : brouille l'image.
  • IMG_FILTER_MEAN_REMOVAL : son utilisation signifie le déplacement pour réaliser un effet "peu précis".
  • IMG_FILTER_SMOOTH : rend l'image lissée (smooth). Utilisez le paramètre args1 pour définir le degré de lissoir.
  • IMG_FILTER_PIXELATE : applique un effet de pixelisation à l'image; utilise arg1 pour indiquer la taille de bloc, et arg2 pour indiquer le mode de pixelisation.

arg1

  • IMG_FILTER_BRIGHTNESS : degré de luminosité.
  • IMG_FILTER_CONTRAST : degré du contraste.
  • IMG_FILTER_COLORIZE : Valeur du composant rouge.
  • IMG_FILTER_SMOOTH : degré du lissé.
  • IMG_FILTER_PIXELATE: taille de bloc en pixels.

arg2

  • IMG_FILTER_COLORIZE : Valeur du composant vert.

arg3

  • IMG_FILTER_COLORIZE : Valeur du composant bleu.

arg4

  • IMG_FILTER_COLORIZE : canal Alpha. Une valeur entre 0 et 127. 0 signifie totalement opaque, tandis que 127 signifie totalement transparent.
  • IMG_FILTER_PIXELATE: s'il faut utiliser un effet de pixelisation avancé ou non (par défaut, FALSE).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Support de la pixelisation (IMG_FILTER_PIXELATE) ajouté.
5.2.5 | Le support du canal Alpha pour la constante IMG_FILTER_COLORIZE a été ajouté.

Exemples

Exemple #1 Exemple avec imagefilter()

<?php
$im = imagecreatefrompng('dave.png');

if($im && imagefilter($im, IMG_FILTER_GRAYSCALE))
{
    echo 'Image convertie en grayscale.';

    imagepng($im, 'dave.png');
}
else
{
    echo 'La conversion en grayscale a échoué.';
}

imagedestroy($im);
?>

Exemple #2 Exemple avec imagefilter()

<?php
$im = imagecreatefrompng('sean.png');

if($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20))
{
    echo 'La luminosité de l\'image a été modifiée.';
    imagepng($im, 'sean.png');
    imagedestroy($im);
}
else
{
    echo 'Echec lors de la modification de la luminosité.';
}
?>

Exemple #3 Exemple avec imagefilter()

<?php
$im = imagecreatefrompng('philip.png');

/* R, G, B, donc 0, 255, 0 correspond au vert */
if($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0))
{
    echo 'L\'image a été ombragée en vert avec succès.';
    imagepng($im, 'philip.png');
    imagedestroy($im);
}
else
{
    echo 'Echec lors de la modification de l\'ombrage.';
}
?>

Exemple #4 Exemple d'image en négatif avec imagefilter()

<?php
// Définition de notre fonction "négatif" afin qu'elle soit portable
// également sur les versions de PHP qui n'ont pas la fonction imagefilter()
function negate($im)
{
    if(function_exists('imagefilter'))
    {
        return imagefilter($im, IMG_FILTER_NEGATE);
    }

    for($x = 0; $x < imagesx($im); ++$x)
    {
        for($y = 0; $y < imagesy($im); ++$y)
        {
            $index = imagecolorat($im, $x, $y);
            $rgb = imagecolorsforindex($index);
            $color = imagecolorallocate($im, 255 - $rgb['red'], 255 - $rgb['green'], 255 - $rgb['blue']);

            imagesetpixel($im, $x, $y, $color);
        }
    }

    return(true);
}

$im = imagecreatefromjpeg('kalle.jpg');

if($im && negate($im))
{
    echo 'Image convertie avec succès en couleur négative.';

    imagejpeg($im, 'kalle.jpg', 100);
    imagedestroy($im);
}
else
{
    echo 'Echec lors de la conversion en couleur négative.';
}
?>

Exemple #5 Exemple de pixelisation avec imagefilter()

<?php
// Chargement du logo PHP, nous avons besoin de deux instances.
$logo1 = imagecreatefrompng('./php.png');
$logo2 = imagecreatefrompng('./php.png');

// Crée une image sur laquelle nous voulons montrer les différences
$output = imagecreatetruecolor(imagesx($logo1) * 2, imagesy($logo1));

// Applique la pixelisation à chaque instance, avec un bloc de 3
imagefilter($logo1, IMG_FILTER_PIXELATE, 3);
imagefilter($logo2, IMG_FILTER_PIXELATE, 3, true);

// Fusion des différences dans l'image finale
imagecopy($output, $logo1, 0, 0, 0, 0, imagesx($logo1) - 1, imagesy($logo1) - 1);
imagecopy($output, $logo2, imagesx($logo2), 0, 0, 0, imagesx($logo2) - 1, imagesy($logo2) - 1);
imagedestroy($logo1);
imagedestroy($logo2);

// Affichage des différences
header('Content-Type: image/png');
imagepng($output);
imagedestroy($output);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagefilter()

Notes

Voir aussi

  • imageconvolution() - Applique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage


Retourne une image en utilisant le mode fourni

  • « imagefilter
  • imagefontheight »
  • PHP Manual
  • Fonctions GD et images
  • Retourne une image en utilisant le mode fourni

imageflip

(PHP 5 >= 5.5.0, PHP 7)

imageflip — Retourne une image en utilisant le mode fourni

Description

bool imageflip ( resource $image , int $mode )

Retourne l'image image en utilisant le mode fourni.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

mode

Mode de retournement ; peut-être une des constantes IMG_FLIP_* :

Constante | Signification
IMG_FLIP_HORIZONTAL | Retourne l'image horizontalement.
IMG_FLIP_VERTICAL | Retourne l'image verticalement.
IMG_FLIP_BOTH | Retourne l'image à la fois horizontalement et verticalement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Retourne une image verticalement

Cet exemple utilise la constante IMG_FLIP_VERTICAL.

<?php
// Fichier
$filename = 'phplogo.png';

// Type de contenu
header('Content-type: image/png');

// Chargement
$im = imagecreatefrompng($filename);

// Retournement vertical
imageflip($im, IMG_FLIP_VERTICAL);

// Affichage
imagejpeg($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Sortie de l'exemple : Image retournée verticalement

Exemple #2 Retourne une image horizontalement

Cet exemple utilise la constante IMG_FLIP_HORIZONTAL.

<?php
// Fichier
$filename = 'phplogo.png';

// Type de contenu
header('Content-type: image/png');

// Chargement
$im = imagecreatefrompng($filename);

// Retournement horizontal
imageflip($im, IMG_FLIP_HORIZONTAL);

// Affichage
imagejpeg($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Sortie de l'exemple : Image retournée horizontalement


Retourne la hauteur de la police

  • « imageflip
  • imagefontwidth »
  • PHP Manual
  • Fonctions GD et images
  • Retourne la hauteur de la police

imagefontheight

(PHP 4, PHP 5, PHP 7)

imagefontheight — Retourne la hauteur de la police

Description

int imagefontheight ( int $font )

Retourne la hauteur de la police font en pixels.

Liste de paramètres

font

Peut être 1, 2, 3, 4, 5 pour les polices internes d'encodage Latin2 (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

Valeurs de retour

Retourne la hauteur de la police, en pixels.

Exemples

Exemple #1 Exemple avec imagefontheight() et des polices internes

<?php
echo 'Hauteur de la police : ' . imagefontheight(4);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Hauteur de la police : 16

Exemple #2 Exemple avec imagefontheight() et imageloadfont()

<?php
// Chargement d'une police .gdf
$font = imageloadfont('anonymous.gdf');

echo 'Hauteur de la police : ' . imagefontheight($font);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Hauteur de la police : 43

Voir aussi

  • imagefontwidth() - Retourne la largeur de la police
  • imageloadfont() - Charge une nouvelle police


Retourne la largeur de la police

  • « imagefontheight
  • imageftbbox »
  • PHP Manual
  • Fonctions GD et images
  • Retourne la largeur de la police

imagefontwidth

(PHP 4, PHP 5, PHP 7)

imagefontwidth — Retourne la largeur de la police

Description

int imagefontwidth ( int $font )

Retourne la largeur de la police font en pixels.

Liste de paramètres

font

Peut être 1, 2, 3, 4, 5 pour les polices internes d'encodage Latin2 (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

Valeurs de retour

Retourne la largeur de la police.

Exemples

Exemple #1 Exemple avec imagefontwidth() et les polices internes

<?php
echo 'Largeur de la police : ' . imagefontwidth(4);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Largeur de la police : 8

Exemple #2 Exemple avec imagefontwidth() et imageloadfont()

<?php
// Chargement d'une police .gdf
$font = imageloadfont('anonymous.gdf');

echo 'Largeur de la police : ' . imagefontwidth($font);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Largeur de la police : 23

Voir aussi

  • imagefontheight() - Retourne la hauteur de la police
  • imageloadfont() - Charge une nouvelle police


Calcule le rectangle d'encadrement pour un texte, en utilisant la police courante et freetype2

  • « imagefontwidth
  • imagefttext »
  • PHP Manual
  • Fonctions GD et images
  • Calcule le rectangle d'encadrement pour un texte, en utilisant la police courante et freetype2

imageftbbox

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imageftbbox — Calcule le rectangle d'encadrement pour un texte, en utilisant la police courante et freetype2

Description

array imageftbbox ( float $size , float $angle , string $fontfile , string $text [, array $extrainfo ] )

imageftbbox() calcule le rectangle d'encadrement pour le texte text, en utilisant la police courante et freetype2.

Liste de paramètres

size

La taille de la police de caractères. Suivant votre version de GD, elle doit être exprimée en pixel (GD1) ou en point (GD2).

angle

Angle, en degrés, dans lequel le paramètre text sera mesuré.

fontfile

Le nom du fichier de la police TrueType (peut être une URL). Suivant la version de GD utilisée par PHP, il sera recherché les fichiers qui ne commencent pas par un '/', en y ajoutant l'extension '.ttf', et suivant le chemin des polices défini par la bibliothèque.

text

La chaîne à mesurer.

extrainfo

Index possibles pour le tableau extrainfo
Clé | Type | Signification
linespacing | float | Représente l'espacement entre les lignes lors du dessin

Valeurs de retour

imageftbbox() retourne un tableau contenant 8 éléments représentant les 4 points du rectangle entourant le texte :

0 | Coin en bas, à gauche, position en X
1 | Coin en bas, à gauche, position en Y
2 | Coin en bas, à droite, position en X
3 | Coin en bas, à droite, position en Y
4 | Coin en haut, à droite, position en X
5 | Coin en haut, à droite, position en Y
6 | Coin en haut, à gauche, position en X
7 | Coin en haut, à gauche, position en Y

Les points sont relatifs au texte suivant le paramètre angle, aussi, "en haut à gauche" signifie le coin en haut à gauche lorsque l'on regarde le texte horizontalement.

Exemples

Exemple #1 Exemple avec imageftbbox()

<?php
// Création d'une image de 300x150 pixels
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Définit l'arrière-plan en blanc
imagefilledrectangle($im, 0, 0, 299, 299, $white);

// Chemin vers notre fichier de police
$font = './arial.ttf';

// D'abord, nous créons un rectangle contenant notre texte
$bbox = imageftbbox(10, 0, $font, 'The PHP Documentation Group');

// Nos coordonnées en X et en Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 5;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

imagefttext($im, 10, 0, $x, $y, $black, $font, 'The PHP Documentation Group');

// Affichage vers le navigateur
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notes

Note: Cette fonction n'est disponible que si si PHP est compilé avec le support Freetype (--with-freetype-dir=DIR )

Voir aussi

  • imagefttext() - Écrit du texte dans une image avec la police courante FreeType 2
  • imagettfbbox() - Retourne le rectangle entourant un texte et dessiné avec une police TrueType


Écrit du texte dans une image avec la police courante FreeType 2

  • « imageftbbox
  • imagegammacorrect »
  • PHP Manual
  • Fonctions GD et images
  • Écrit du texte dans une image avec la police courante FreeType 2

imagefttext

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagefttext — Écrit du texte dans une image avec la police courante FreeType 2

Description

array imagefttext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text [, array $extrainfo ] )

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

size

La taille de la police à utiliser, en nombre de points.

angle

L'angle, en degrés ; 0 degré pour une lecture du texte de gauche à droite. Les grandes valeurs représentent une rotation dans le sens des aiguilles d'une montre. Par exemple, une valeur de 90 aura pour effet de lire le texte du bas vers le haut.

x

Les coordonnées, fournies par x et y définissent le point de départ du premier caractère (et plus précisément, le coin en bas à gauche du caractère). C'est un comportement différent de la fonction imagestring(), où x et y définissent le coin en haut, à gauche du premier caractère. Par exemple, en haut à gauche vaut 0, 0.

y

L'ordonnée y-ordinate. Ce paramètre configure la position de base de la police, et non pas le bas de cette dernière.

color

L'index de la couleur désirée pour le texte, voir la fonction imagecolorexact().

fontfile

Le chemin vers la police TrueType à utiliser.

Suivant la version de GD utilisée par PHP, il sera recherché les fichiers qui ne commencent pas par un '/', en y ajoutant l'extension '.ttf', et suivant le chemin des polices défini par la bibliothèque.

Lors de l'utilisation d'une version de GD inférieure à 2.0.18, un caractère d'espacement (plutôt qu'un point-virgule) était utilisé comment séparateur dans le chemin pour les différents fichiers de police. Si vous utilisez toujours cette notation, vous obtiendrez le message d'erreur suivant : Warning: Could not find/open font. Pour ces anciennes versions, la seule solution est de déplacer la police dans un dossier qui ne contient pas d'espace.

Dans la plupart des cas, lorsque la police se trouve dans le même dossier que le script qui cherche à l'utiliser, la solution suivante permet de s'affranchir de tous les problèmes relatifs à l'inclusion.

<?php
// Définit la variable d'environnement pour GD
putenv('GDFONTPATH=' . realpath('.'));

// Nom de la police à utiliser (note qu'il n'y a pas d'extension .ttf)
$font = 'SomeFont';
?>

text

Le texte à insérer dans l'image.

extrainfo

Indexes possibles pour le tableau extrainfo
Clé | Type | Signification
linespacing | float | Définit l'espacement entre les lignes lors du dessin

Valeurs de retour

Cette fonction retourne un tableau définissant les 4 points d'une boîte, en commençant par le coin en bas, à gauche, puis, les suivants, dans le sens des aiguilles d'une montre :

0 | x : coordonnée en bas, à gauche
1 | y : coordonnée en bas, à gauche
2 | x : coordonnée en bas, à droite
3 | y : coordonnée en bas, à droite
4 | x : coordonnée en haut, à droite
5 | y : coordonnée en haut, à droite
6 | x : coordonnée en haut, à gauche
7 | y : coordonnée en haut, à gauche

Exemples

Exemple #1 Exemple avec imagefttext()

<?php
// Création d'une image de 300x100 pixels
$im = imagecreatetruecolor(300, 100);
$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Définit l'arrière-plan en rouge
imagefilledrectangle($im, 0, 0, 299, 99, $red);

// Chemin vers notre fichier de police ttf
$font_file = './arial.ttf';

// Dessine le texte 'PHP Manual' en utilisant une police de taille 13
imagefttext($im, 13, 0, 105, 55, $black, $font_file, 'PHP Manual');

// Affichage de l'image sur le navigateur
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notes

Note: Cette fonction n'est disponible que si si PHP est compilé avec le support Freetype (--with-freetype-dir=DIR )

Voir aussi

  • imageftbbox() - Calcule le rectangle d'encadrement pour un texte, en utilisant la police courante et freetype2
  • imagettftext() - Dessine un texte avec une police TrueType


Applique une correction gamma à l'image GD

  • « imagefttext
  • imagegd2 »
  • PHP Manual
  • Fonctions GD et images
  • Applique une correction gamma à l'image GD

imagegammacorrect

(PHP 4, PHP 5, PHP 7)

imagegammacorrect — Applique une correction gamma à l'image GD

Description

bool imagegammacorrect ( resource $image , float $inputgamma , float $outputgamma )

Applique une correction gamma à l'image GD image.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

inputgamma

Le facteur gamma d'entrée.

outputgamma

Le facteur gamma de sortie.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagegammacorrect()

<?php
// Création d'une image
$im = imagecreatefromgif('php.gif');

// Correction gamma, sortie à 1.537
imagegammacorrect($im, 1.0, 1.537);

// Sauvegarde et libération de la mémoire
imagegif($im, './php_gamma_corrected.gif');
imagedestroy($im);
?>


Génère une image au format GD2, vers le navigateur ou un fichier

  • « imagegammacorrect
  • imagegd »
  • PHP Manual
  • Fonctions GD et images
  • Génère une image au format GD2, vers le navigateur ou un fichier

imagegd2

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagegd2 — Génère une image au format GD2, vers le navigateur ou un fichier

Description

bool imagegd2 ( resource $image [, mixed $to = NULL [, int $chunk_size = 128 [, int $type = IMG_GD2_RAW ]]] )

Génère une image au format GD2, vers le fichier to.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

to

Le chemin ou un flux de ressource ouvert (qui sera automatiquement fermé après le retour de cette fonction) vers lequel le fichier sera sauvegardé. Si défini à NULL, le flux brute de l'image sera affiché directement.

chunk_size

Taille de la pièce.

type

Soit IMG_GD2_RAW, soit IMG_GD2_COMPRESSED. Par défaut, vaut IMG_GD2_RAW.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.4.0 | Ajout du support pour passer un flux resource au paramètre to.

Exemples

Exemple #1 Affichage d'une image GD2

<?php
// Création d'une image vide et ajout d'un texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "Un texte simple", $text_color);

// Affichage de l'image
imagegd2($im);

// Libération de la mémoire
imagedestroy($im);
?>

Exemple #2 Sauvegarde d'une image GD2

<?php
// Création d'une image vide et ajout d'un texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "Un texte simple", $text_color);

// Sauvegarde de l'image GD2
// Le format de fichier pour les images GD2 est .gd2, voir http://www.libgd.org/GdFileFormats
imagegd2($im, 'simple.gd2');

// Libération de la mémoire
imagedestroy($im);
?>

Notes

Note:

Le format GD2 est communément utilisé pour charger rapidement les parties d'une image. Notez que le format GD2 est uniquement utilisable dans les applications compatibles GD2.

Voir aussi

  • imagegd() - Génère une image au format GD, vers le navigateur ou un fichier


Génère une image au format GD, vers le navigateur ou un fichier

  • « imagegd2
  • imagegetclip »
  • PHP Manual
  • Fonctions GD et images
  • Génère une image au format GD, vers le navigateur ou un fichier

imagegd

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagegd — Génère une image au format GD, vers le navigateur ou un fichier

Description

bool imagegd ( resource $image [, string $filename ] )

Génère une image GD vers le fichier filename.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin ou un flux de ressource ouvert (qui sera automatiquement fermé après le retour de cette fonction) vers lequel le fichier sera sauvegardé. Si défini à NULL, le flux brute de l'image sera affiché directement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Affichage d'une image GD

<?php
// Création d'une image vide et ajout d'un texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "Un texte simple", $text_color);

// Affichage de l'image
imagegd($im);

// Libération de la mémoire
imagedestroy($im);
?>

Exemple #2 Sauvegarde d'une image GD

<?php
// Création d'une image vide et ajout d'un texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "Un texte simple", $text_color);

// Sauvegarde de l'image GD
// Le format de fichier pour les images GD est .gd, voir http://www.libgd.org/GdFileFormats
imagegd($im, 'simple.gd');

// Libération de la mémoire
imagedestroy($im);
?>

Notes

Note:

Le format GD est communément utilisé pour autoriser le chargement rapide des parties d'un image. Notez que le format GD est uniquement utilisable dans les applications compatibles GD.

Voir aussi

  • imagegd2() - Génère une image au format GD2, vers le navigateur ou un fichier


Get the clipping rectangle

  • « imagegd
  • imagegif »
  • PHP Manual
  • Fonctions GD et images
  • Get the clipping rectangle

imagegetclip

(PHP 7.2)

imagegetclip — Get the clipping rectangle

Description

array imagegetclip ( resource $im )

imagegetclip() retrieves the current clipping rectangle, i.e. the area beyond which no pixels will be drawn.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

The function returns an indexed array with the coordinates of the clipping rectangle which has the following entries:

  • x-coordinate of the upper left corner
  • y-coordinate of the upper left corner
  • x-coordinate of the lower right corner
  • y-coordinate of the lower right corner

Exemples

Exemple #1 imagegetclip() example

Setting and retrieving the clipping rectangle.

<?php
$im = imagecreate(100, 100);
imagesetclip($im, 10,10, 89,89);
print_r(imagegetclip($im));

L'exemple ci-dessus va afficher :

Array
(
    [0] => 10
    [1] => 10
    [2] => 89
    [3] => 89
)

Voir aussi

  • imagesetclip() - Set the clipping rectangle


Affichage de l'image vers le navigateur ou dans un fichier

  • « imagegetclip
  • imagegrabscreen »
  • PHP Manual
  • Fonctions GD et images
  • Affichage de l'image vers le navigateur ou dans un fichier

imagegif

(PHP 4, PHP 5, PHP 7)

imagegif — Affichage de l'image vers le navigateur ou dans un fichier

Description

bool imagegif ( resource $image [, string $filename ] )

imagegif() crée un fichier image GIF avec le nom filename d'après l'image image. L'argument image est un identifiant valide retourné par la fonction imagecreate() ou les fonctions imagecreatefrom*.

Le format de l'image sera GIF87a, à moins que l'image n'ait une couleur transparente (mise en place grâce à la fonction imagecolortransparent())), ce qui fera qu'elle sera au format GIF89a.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin ou un flux de ressource ouvert (qui sera automatiquement fermé après le retour de cette fonction) vers lequel le fichier sera sauvegardé. Si défini à NULL, le flux brute de l'image sera affiché directement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Affichage d'une image en utilisant imagegif()

<?php
// Création d'une image
$im = imagecreatetruecolor(100, 100);

// Définit l'arrière-plan en blanc
imagefilledrectangle($im, 0, 0, 99, 99, 0xFFFFFF);

// Dessine un texte dans l'image
imagestring($im, 3, 40, 20, 'GD Library', 0xFFBA00);

// Affiche l'image sur le navigateur
header('Content-Type: image/gif');

imagegif($im);
imagedestroy($im);
?>

Exemple #2 Conversion d'une image PNG en GIF, en utilisant imagegif()

<?php
// Chargement de l'image PNG
$png = imagecreatefrompng('./php.png');

// Sauvegarde de l'image en GIF
imagegif($png, './php.gif');

// Libération de la mémoire
imagedestroy($png);

// C'est fait !
echo 'Convertion avec succès de l\'image PNG en GIF !';
?>

Notes

Note:

Le support GIF a été supprimé de la bibliothèque GD en version 1.6 et rajouté en version 2.0.28. Cette fonction n'est donc pas disponible entre des 2 versions. Pour plus d'informations, reportez-vous au site web du » projet GD.

Le code suivant vous permet d'écrire des scripts PHP plus portables : le type de GD est automatiquement détecté. Il remplace la séquence header ("Content-Type: image/gif"); ImageGif($im); par un code plus souple :

<?php
// Création d'une image
$im = imagecreatetruecolor(100, 100);

// On fait quelques opérations sur l'image ici...

// Gestion de l'affichage
if(function_exists('imagegif'))
{
    // Pour GIF
    header('Content-Type: image/gif');

    imagegif($im);
}
elseif(function_exists('imagejpeg'))
{
    // Pour JPEG
    header('Content-Type: image/jpeg');

    imagejpeg($im, NULL, 100);
}
elseif(function_exists('imagepng'))
{
    // Pour PNG
    header('Content-Type: image/png');

    imagepng($im);
}
elseif(function_exists('imagewbmp'))
{
    // Pour WBMP
    header('Content-Type: image/vnd.wap.wbmp');

    imagewbmp($im);
}
else
{
    imagedestroy($im);

    die('Aucun support sur ce serveur PHP n\'a été trouvé');
}

// Si un support a été trouvé pour un de ces formats,
// nous libérons la mémoire
if($im)
{
    imagedestroy($im);
}
?>

Note:

Depuis les versions 4.0.2 de PHP, vous pouvez utiliser la fonction imagetypes() au lieu de function_exists() pour vérifier la présence des différents formats d'images supportés.:

<?php
if(imagetypes() & IMG_GIF)
{
    header('Content-Type: image/gif');
    imagegif($im);
}
elseif(imagetypes() & IMG_JPG)
{
    /* ... etc. */
}
?>

Voir aussi

  • imagepng() - Envoie une image PNG vers un navigateur ou un fichier
  • imagewbmp() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagejpeg() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagetypes() - Retourne les types d'images supportés par la version courante de PHP


Capture l'écran complet

  • « imagegif
  • imagegrabwindow »
  • PHP Manual
  • Fonctions GD et images
  • Capture l'écran complet

imagegrabscreen

(PHP 5 >= 5.2.2, PHP 7)

imagegrabscreen — Capture l'écran complet

Description

resource imagegrabscreen ( void )

imagegrabscreen() effectue une capture de la totalité de l'écran.

Valeurs de retour

Retourne une ressource image en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagegrabscreen()

Cet exemple montre comment effectuer une capture d'écran et la sauvegarder dans une image png.

<?php
$im = imagegrabscreen();
imagepng($im, "myscreenshot.png");
imagedestroy($im);
?>

Notes

Note:

Cette fonction n'est disponible que sous Windows.

Voir aussi

  • imagegrabwindow() - Capture une fenêtre


Capture une fenêtre

  • « imagegrabscreen
  • imageinterlace »
  • PHP Manual
  • Fonctions GD et images
  • Capture une fenêtre

imagegrabwindow

(PHP 5 >= 5.2.2, PHP 7)

imagegrabwindow — Capture une fenêtre

Description

resource imagegrabwindow ( int $window_handle [, int $client_area = 0 ] )

Capture une fenêtre ou l'espace de son client, en utilisant un gestionnaire de fenêtre (propriété HWND de l'instance COM).

Liste de paramètres

window_handle

L'identifiant HWND de la fenêtre.

client_area

Inclure ou non l'espace du client de la fenêtre de l'application.

Valeurs de retour

Retourne une ressource image en cas de succès, ou FALSE si une erreur survient.

Erreurs / Exceptions

Une alerte de type E_NOTICE est émise si window_handle est un gestionnaire de fenêtre invalide. Une alerte de type E_WARNING est émise si l'API Windows est trop ancienne.

Exemples

Exemple #1 Exemple avec imagegrabwindow()

Capture une fenêtre (IE par exemple).

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$im = imagegrabwindow($handle);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>

Capture une fenêtre (IE par exemple) mais avec son contenu.

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://www.libgd.org");

/* Fonctionne toujours ? */
while ($browser->Busy) {
    com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>

Notes

Note:

Cette fonction n'est disponible que sous Windows.

Voir aussi

  • imagegrabscreen() - Capture l'écran complet


Active ou désactive l'entrelacement

  • « imagegrabwindow
  • imageistruecolor »
  • PHP Manual
  • Fonctions GD et images
  • Active ou désactive l'entrelacement

imageinterlace

(PHP 4, PHP 5, PHP 7)

imageinterlace — Active ou désactive l'entrelacement

Description

int imageinterlace ( resource $image [, int $interlace = 0 ] )

imageinterlace() active ou désactive le bit d'entrelacement.

Si l'entrelacement est à 1 et l'image est JPEG, l'image créée sera un JPEG progressif.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

interlace

Si différent de zéro, l'image sera entrelacée, sinon, l'entrelacement sera désactivé.

Valeurs de retour

Retourne 1 si l'entrelacement est activé pour l'image, 0 sinon.

Exemples

Exemple #1 Activation de l'entrelacement en utilisant la fonction imageinterlace()

<?php
// Création d'une image
$im = imagecreatefromgif('php.gif');

// Activation de l'entrelacement
imageinterlace($im, true);

// Sauvegarde de l'image
imagegif($im, './php_interlaced.gif');
imagedestroy($im);
?>


Détermine si une image est une image truecolor

  • « imageinterlace
  • imagejpeg »
  • PHP Manual
  • Fonctions GD et images
  • Détermine si une image est une image truecolor

imageistruecolor

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

imageistruecolor — Détermine si une image est une image truecolor

Description

bool imageistruecolor ( resource $image )

imageistruecolor()détermine si l'image image est une image truecolor.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne TRUE si l'image est truecolor, FALSE sinon.

Exemples

Exemple #1 Détection simple d'une image en truecolor avec imageistruecolor()

<?php
// $im est une instance d'image

// Vérife si l'image est en truecolor ou non
if(!imageistruecolor($im))
{
    // Création d'une nouvelle image en truecolor
    $tc = imagecreatetruecolor(imagesx($im), imagesy($im));

    // Copie sur les pixels
    imagecopy($tc, $im, 0, 0, 0, 0, imagesx($im), imagesy($im));
    imagedestroy($im);

    $im = $tc;
    $tc = NULL;

    // Ou utilisez imagepalettetotruecolor()
}

// On continue de travailler avec l'instance de l'image
?>

Voir aussi

  • imagecreatetruecolor() - Crée une nouvelle image en couleurs vraies
  • imagepalettetotruecolor() - Convertit une image basée sur une palette en couleur vraie


Affichage de l'image vers le navigateur ou dans un fichier

  • « imageistruecolor
  • imagelayereffect »
  • PHP Manual
  • Fonctions GD et images
  • Affichage de l'image vers le navigateur ou dans un fichier

imagejpeg

(PHP 4, PHP 5, PHP 7)

imagejpeg — Affichage de l'image vers le navigateur ou dans un fichier

Description

bool imagejpeg ( resource $image [, mixed $to [, int $quality ]] )

imagejpeg() crée un fichier JPEG depuis l'image fournie.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

to

Le chemin ou un flux de ressource ouvert (qui sera automatiquement fermé après le retour de cette fonction) vers lequel le fichier sera sauvegardé. Si défini à NULL, le flux brute de l'image sera affiché directement.

Pour éviter de fournir cet argument afin de fournir l'argument quality, utilisez une valeur NULL.

quality

quality est optionnel, et prend des valeurs entières de 0 (pire qualité, petit fichier) et 100 (meilleure qualité, gros fichier). Par défaut, la valeur est celle de la qualité IJG (75).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Affichage d'une image JPEG vers le navigateur

<?php
// Création d'une image vide et ajout d'un texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Définit le contenu de l'en-tête - dans ce cas, image/jpeg
header('Content-Type: image/jpeg');

// Affichage de l'image
imagejpeg($im);

// Libération de la mémoire
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagejpeg()

Exemple #2 Sauvegarde d'une image JPEG dans un fichier

<?php
// Création d'une image vide et ajout d'un texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Un texte simple', $text_color);

// Sauvegarde de l'image sous le nom 'simpletext.jpg'
imagejpeg($im, 'simpletext.jpg');

// Libération de la mémoire
imagedestroy($im);
?>

Exemple #3 Affichage de l'image avec une qualité de 75% vers le navigateur

<?php
// Création d'une image vide et ajout d'un texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Un texte simple', $text_color);

// Définit le contenu de l'en-tête - dans ce cas,  image/jpeg
header('Content-Type: image/jpeg');

// On ne fournit pas le nom du fichier (utilisation de la valeur NULL),
// puis, on définit la qualité à 75%
imagejpeg($im, NULL, 75);

// Libération de la mémoire
imagedestroy($im);
?>

Notes

Note:

Si vous voulez générer des images JPEG progressives, vous devez activer l'entrelacement à l'aide de la fonction imageinterlace().

Historique

Version | Description
5.4.0 | Ajout du support pour l'utilisation d'un flux resource comme vaeur du paramètre to.
5.4.0 | Interdit le fait de passer une chaîne vide dans le paramètre to pour éviter cet argument.

Voir aussi

  • imagepng() - Envoie une image PNG vers un navigateur ou un fichier
  • imagegif() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagewbmp() - Affichage de l'image vers le navigateur ou dans un fichier
  • imageinterlace() - Active ou désactive l'entrelacement
  • imagetypes() - Retourne les types d'images supportés par la version courante de PHP


Active l'option d'alpha blending, pour utiliser les effets de libgd

  • « imagejpeg
  • imageline »
  • PHP Manual
  • Fonctions GD et images
  • Active l'option d'alpha blending, pour utiliser les effets de libgd

imagelayereffect

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

imagelayereffect — Active l'option d'alpha blending, pour utiliser les effets de libgd

Description

bool imagelayereffect ( resource $image , int $effect )

Active l'option d'alpha blending, pour utiliser les effets libgd.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

effect

Une des constantes suivantes :

IMG_EFFECT_REPLACE
Utilise le remplacement de pixels (équivalent à passer TRUE à la fonction imagealphablending())
IMG_EFFECT_ALPHABLEND
Utilise le blending normal de pixels (équivalent à passer FALSE à la fonction imagealphablending())
IMG_EFFECT_NORMAL
Identique à la constante IMG_EFFECT_ALPHABLEND.
IMG_EFFECT_OVERLAY
L'overlay a pour effet que les pixels noirs du fond resteront noirs, les blancs du fond resteront blancs, mais les gris du fond prendront la couleur du pixel de premier plan.
IMG_EFFECT_MULTIPLY
L'overlays avec un effet de multiplication.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
7.2.0 | Ajout de la constante IMG_EFFECT_MULTIPLY (nécessite la libgd système >= 2.1.1 ou la libgd embarquée).

Exemples

Exemple #1 Exemple avec imagelayereffect()

<?php
// Création d'une image
$im = imagecreatetruecolor(100, 100);

// Définit l'arrière-plan
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 220, 220, 220));

// Applique l'overlay
imagelayereffect($im, IMG_EFFECT_OVERLAY);

// Dessine 2 élipses grises
imagefilledellipse($im, 50, 50, 40, 40, imagecolorallocate($im, 100, 255, 100));
imagefilledellipse($im, 50, 50, 50, 80, imagecolorallocate($im, 100, 100, 255));
imagefilledellipse($im, 50, 50, 80, 50, imagecolorallocate($im, 255, 100, 100));

// Affichage
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagelayereffect()

Notes

Avant PHP 5.5.0, cette fonction n'était disponible que si PHP était compilé avec la version embarquée de la bibliothèque GD.


Dessine une ligne

  • « imagelayereffect
  • imageloadfont »
  • PHP Manual
  • Fonctions GD et images
  • Dessine une ligne

imageline

(PHP 4, PHP 5, PHP 7)

imageline — Dessine une ligne

Description

bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

Dessine une ligne entre deux points fournis.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

X : coordonnée du premier point.

y1

Y : coordonnée du premier point.

x2

X : coordonnée du second point.

y2

Y : coordonnée du second point.

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Trace une ligne fine

<?php

function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{
    /* de cette manière, ca ne marche bien que pour les lignes orthogonales
    imagesetthickness($image, $thick);
    return imageline($image, $x1, $y1, $x2, $y2, $color);
    */
    if ($thick == 1) {
        return imageline($image, $x1, $y1, $x2, $y2, $color);
    }
    $t = $thick / 2 - 0.5;
    if ($x1 == $x2 || $y1 == $y2) {
        return imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color);
    }
    $k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
    $a = $t / sqrt(1 + pow($k, 2));
    $points = array(
        round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
        round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
        round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
        round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
    );
    imagefilledpolygon($image, $points, 4, $color);
    return imagepolygon($image, $points, 4, $color);
}

?>

Voir aussi

  • imagecreatetruecolor() - Crée une nouvelle image en couleurs vraies
  • imagecolorallocate() - Alloue une couleur pour une image


Charge une nouvelle police

  • « imageline
  • imageopenpolygon »
  • PHP Manual
  • Fonctions GD et images
  • Charge une nouvelle police

imageloadfont

(PHP 4, PHP 5, PHP 7)

imageloadfont — Charge une nouvelle police

Description

int imageloadfont ( string $file )

imageloadfont() charge une nouvelle police utilisateur et retourne son identifiant.

Liste de paramètres

file

Le format des polices dépend actuellement du système d'exploitation. Ce qui signifie qu'il vous faut générer des fichiers de polices pour la machine qui fait tourner PHP.

Format de fichier de police
Position | Type de données C | Description
Octets 0-3 | int | Nombre de caractères de la police
Octets 4-7 | int | Valeur du premier caractère de la police (souvent 32 pour espace)
Octets 8-11 | int | Largeur en pixels des caractères
Octets 12-15 | int | Hauteur en pixels des caractères
Octets 16- | char | Tableau avec les données des caractères, un octet par pixel pour chaque caractère, avec un total de (nombre de caractères * largeur * hauteur) octets.

Valeurs de retour

L'identifiant de la police qui sera toujours supérieur à 5 afin d'éviter les conflits avec les polices internes ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imageloadfont()

<?php
// Création d'une nouvelle image
$im = imagecreatetruecolor(50, 20);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Définit l'arrière-plan en blanc
imagefilledrectangle($im, 0, 0, 49, 19, $white);

// Charge la police GD et écrit 'Bonjour !'
$font = imageloadfont('./04b.gdf');
imagestring($im, $font, 0, 0, 'Bonjour !', $black);

// Affichage sur le navigateur
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Voir aussi

  • imagefontwidth() - Retourne la largeur de la police
  • imagefontheight() - Retourne la hauteur de la police


Draws an open polygon

  • « imageloadfont
  • imagepalettecopy »
  • PHP Manual
  • Fonctions GD et images
  • Draws an open polygon

imageopenpolygon

(PHP 7 >= 7.2.0)

imageopenpolygon — Draws an open polygon

Description

bool imageopenpolygon ( resource $image , array $points , int $num_points , int $color )

imageopenpolygon() draws an open polygon on the given image. Contrary to imagepolygon(), no line is drawn between the last and the first point.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

points

An array containing the polygon's vertices, e.g.:

points[0] | = x0
points[1] | = y0
points[2] | = x1
points[3] | = y1

num_points

Total number of points (vertices).

color

A color identifier created with imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 imageopenpolygon() example

<?php
// Create a blank image
$image = imagecreatetruecolor(400, 300);

// Allocate a color for the polygon
$col_poly = imagecolorallocate($image, 255, 255, 255);

// Draw the polygon
imageopenpolygon($image, array(
        0,   0,
        100, 200,
        300, 200
    ),
    3,
    $col_poly);

// Output the picture to the browser
header('Content-type: image/png');

imagepng($image);
imagedestroy($image);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Output of example : imageopenpolygon()

Voir aussi

  • imagepolygon() - Dessine un polygone


Copie la palette d'une image à l'autre

  • « imageopenpolygon
  • imagepalettetotruecolor »
  • PHP Manual
  • Fonctions GD et images
  • Copie la palette d'une image à l'autre

imagepalettecopy

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagepalettecopy — Copie la palette d'une image à l'autre

Description

void imagepalettecopy ( resource $destination , resource $source )

imagepalettecopy() copie la palette de l'image source dans l'image destination.

Liste de paramètres

destination

La ressource de l'image de destination.

source

La ressource de l'image source.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec imagepalettecopy()

<?php
// Création de 2 palettes
$palette1 = imagecreate(100, 100);
$palette2 = imagecreate(100, 100);

// Définit l'arrière-plan en vert
// pour la première
$green = imagecolorallocate($palette1, 0, 255, 0);

// Copie la première palette dans la deuxième
imagepalettecopy($palette2, $palette1);

// Sachant que la palette est maintenant copiée, nous pouvons
// utiliser la couleur verte allouée à la première palette
// sans pour autant utiliser de nouveau la fonction imagecolorallocate()
imagefilledrectangle($palette2, 0, 0, 99, 99, $green);

// Affichage de l'image sur le navigateur
header('Content-type: image/png');

imagepng($palette2);
imagedestroy($palette1);
imagedestroy($palette2);
?>


Convertit une image basée sur une palette en couleur vraie

  • « imagepalettecopy
  • imagepng »
  • PHP Manual
  • Fonctions GD et images
  • Convertit une image basée sur une palette en couleur vraie

imagepalettetotruecolor

(PHP 5 >= 5.5.0, PHP 7)

imagepalettetotruecolor — Convertit une image basée sur une palette en couleur vraie

Description

bool imagepalettetotruecolor ( resource $src )

Convertit une image basée sur une palette, créée par une fonction comme imagecreate(), en une image en couleur vraie, comme imagecreatetruecolor().

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne TRUE si la convertion a été un succès, ou si l'image source est déjà en couleur vraie, sinon, retourne FALSE.

Exemples

Exemple #1 Convertit n'importe quelle ressource image en couleur vraie

<?php
// Compatibilité ascendante
if(!function_exists('imagepalettetotruecolor'))
{
    function imagepalettetotruecolor(&$src)
    {
        if(imageistruecolor($src))
        {
            return(true);
        }

        $dst = imagecreatetruecolor(imagesx($src), imagesy($src));

        imagecopy($dst, $src, 0, 0, 0, 0, imagesx($src), imagesy($src));
        imagedestroy($src);

        $src = $dst;

        return(true);
    }
}

// Utilisation d'une Closure
$typeof = function() use($im)
{
    echo 'typeof($im) = ' . (imageistruecolor($im) ? 'true color' : 'palette'), PHP_EOL;
};

// Crée une image basée sur une palette
$im = imagecreate(100, 100);
$typeof();

// On la convertit en couleur vraie
imagepalettetotruecolor($im);
$typeof();

// Libération de la mémoire
imagedestroy($im);
?>

L'exemple ci-dessus va afficher :

typeof($im) = palette
typeof($im) = true color

Voir aussi

  • imagecreatetruecolor() - Crée une nouvelle image en couleurs vraies
  • imageistruecolor() - Détermine si une image est une image truecolor


Envoie une image PNG vers un navigateur ou un fichier

  • « imagepalettetotruecolor
  • imagepolygon »
  • PHP Manual
  • Fonctions GD et images
  • Envoie une image PNG vers un navigateur ou un fichier

imagepng

(PHP 4, PHP 5, PHP 7)

imagepng — Envoie une image PNG vers un navigateur ou un fichier

Description

bool imagepng ( resource $image [, string $filename [, int $quality [, int $filters ]]] )

imagepng() affiche ou sauvegarde une image au format PNG en utilisant l'image image.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin ou un flux de ressource ouvert (qui sera automatiquement fermé après le retour de cette fonction) vers lequel le fichier sera sauvegardé. Si défini à NULL, le flux brute de l'image sera affiché directement.

Note:

La valeur NULL est invalide si le paramètre quality et le paramètre filters ne sont pas utilisés.

quality

Degré de compression : depuis 0 (aucune compression) à 9.

filters

Permet la réduction de la taille du fichier PNG. C'est un masque qui peut être défini par une combinaison des constantes PNG_FILTER_XXX. PNG_NO_FILTER ou PNG_ALL_FILTERS peuvent également être utilisé pour, respectivement, désactiver ou activer tous les filtres.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.1.3 | Ajout du paramètre filters.
5.1.2 | Ajout du paramètre quality.

Exemples

<?php
$im = imagecreatefrompng("test.png");

header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Voir aussi

  • imagegif() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagewbmp() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagejpeg() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagetypes() - Retourne les types d'images supportés par la version courante de PHP
  • imagesavealpha() - Configure l'enregistrement des informations complètes du canal alpha lors de sauvegardes d'images PNG


Dessine un polygone

  • « imagepng
  • imagepsbbox »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un polygone

imagepolygon

(PHP 4, PHP 5, PHP 7)

imagepolygon — Dessine un polygone

Description

bool imagepolygon ( resource $image , array $points , int $num_points , int $color )

imagepolygon() dessine un polygone dans l'image image.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

points

Un tableau contenant les sommets du polygone, e.g. :

points[0] | = x0
points[1] | = y0
points[2] | = x1
points[3] | = y1

num_points

Le nombre de points (sommets).

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagepolygon()

<?php
// Création d'une image vide
$image = imagecreatetruecolor(400, 300);

// Alloue une couleur pour le polygone
$col_poly = imagecolorallocate($image, 255, 255, 255);

// Dessine le polygone
imagepolygon($image, array(
        0,   0,
        100, 200,
        300, 200
    ),
    3,
    $col_poly);

// Affichage de l'image sur le navigateur
header('Content-type: image/png');

imagepng($image);
imagedestroy($image);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagepolygon()

Voir aussi

  • imagecreate() - Crée une nouvelle image à palette
  • imagecreatetruecolor() - Crée une nouvelle image en couleurs vraies


Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1

  • « imagepolygon
  • imagepsencodefont »
  • PHP Manual
  • Fonctions GD et images
  • Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1

imagepsbbox

(PHP 4, PHP 5)

imagepsbbox — Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1

Description

array imagepsbbox ( string $text , resource $font , int $size )
array imagepsbbox ( string $text , resource $font , int $size , int $space , int $tightness , float $angle )

Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1.

Le rectangle entourant est calculé en utilisant les informations disponibles sur les tailles de caractères, et, malheureusement, il a tendance à être légèrement différent du résultat réel final. Si l'angle est de 0 degré, vous pouvez-vous attendre à avoir besoin d'un rectangle d'au moins un pixel plus grand dans toutes les directions.

Liste de paramètres

text

Le texte à écrire.

font_index

Une ressource de police, retournée par la fonction imagepsloadfont().

size

size est exprimé en pixels.

space

permet de changer la valeur par défaut du caractère espace. Cette valeur est ajoutée lors des dessins et, donc, peut être négative. Exprimé en unité d'espacement de caractères, avec 1 unité vaut 1/1000 d'un em carré (un em : unité de mesure représentée par un carré dont la dimension horizontale est la même que le corps du caractère).

tightness

tightness permet de contrôler la quantité d'espace entre les caractères. Cette quantité est ajoutée lors des dessins, et peut donc être négative. Exprimé en unité d'espacement de caractères, avec 1 unité vaut 1/1000 d'un em carré.

angle

angle est exprimé en pixels.

Valeurs de retour

Retourne un tableau contenant les éléments suivants :

0 | Abscisse gauche
1 | Ordonnée supérieure
2 | Abscisse droite
3 | Ordonnée inférieure

Exemples

Exemple #1 Exemple avec imagepsbbox()

<?php
// Création d'une image
$im = imagecreatetruecolor(200, 200);

// Alloue les couleurs
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Charge une police PostScript
$font = imagepsloadfont('font.pfm');

// Crée un rectangle autour de la police
$bbox = imagepsbbox('Un texte simple', $font, 12);

// Définit les coordonnées en X et en Y
$x = ($bbox[2] / 2) - 10;
$y = ($bbox[3] / 2) - 10;

// Dessine un texte sur l'image
imagepstext($im, 'Un texte simple', $font, 12, $black, $white, $x, $y);

// Affichage et libération de la mémoire
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .

Voir aussi

  • imagepstext() - Dessine un texte sur une image avec une police PostScript Type1


Change le codage vectoriel d'un caractère dans une police

  • « imagepsbbox
  • imagepsextendfont »
  • PHP Manual
  • Fonctions GD et images
  • Change le codage vectoriel d'un caractère dans une police

imagepsencodefont

(PHP 4, PHP 5)

imagepsencodefont — Change le codage vectoriel d'un caractère dans une police

Description

bool imagepsencodefont ( resource $font_index , string $encodingfile )

Charge le codage vectoriel d'un caractère depuis un fichier et change le codage vectoriel de la police correspondante. Étant donné que les polices PostScript ne disposent pas des caractères au-delà de 127, vous aurez sûrement besoin de les changer si vous utilisez une autre langue que l'anglais.

Si vous commencez à utiliser cette fonction régulièrement, une meilleure solution est de définir un encodage, et de l'utiliser avec ps.default_encoding dans le fichier de configuration pour utiliser par défaut l'encodage correct.

Liste de paramètres

font_index

Une ressource de police, retournée par la fonction imagepsloadfont().

encodingfile

Le format exact de ce fichier est décrit dans la documentation T1libs. T1lib est fourni avec deux fichiers prêt à l'emploi : IsoLatin1.enc et IsoLatin2.enc.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagepsencodefont()

<?php
// Charge un fichier de police .pfb
$font = imagepsloadfont('./px3l.pfb');

// Demande à la bibliothèque T1lib d'utiliser l'encodage ISO Latin 1
imagepsencode($font, './IsoLatin1.enc');

// On fait ici les opérations que l'on souhaite...

// Libération de la mémoire
imagepsfreefont($font);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .


Étend ou condense une police de caractères

  • « imagepsencodefont
  • imagepsfreefont »
  • PHP Manual
  • Fonctions GD et images
  • Étend ou condense une police de caractères

imagepsextendfont

(PHP 4, PHP 5)

imagepsextendfont — Étend ou condense une police de caractères

Description

bool imagepsextendfont ( resource $font_index , float $extend )

imagepsextendfont() étend ou condense la police de caractères font. Si la valeur de extend est inférieure à 1, ce sera une condensation.

Liste de paramètres

font_index

Une ressource de police, retournée par la fonction imagepsloadfont().

extend

Extension de la valeur ; doit être supérieure à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagepsextendfont()

<?php
// Charge un fichier de police .pfb
$font = imagepsloadfont('./px3l.pfb');

// Etend la police par 2.5
imagepsextendfont($font, 2.5);

// On fait ici toutes les opérations que l'on souhaite...

// Libération de la mémoire
imagepsfreefont($font);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .


Libère la mémoire occupée par une police PostScript Type 1

  • « imagepsextendfont
  • imagepsloadfont »
  • PHP Manual
  • Fonctions GD et images
  • Libère la mémoire occupée par une police PostScript Type 1

imagepsfreefont

(PHP 4, PHP 5)

imagepsfreefont — Libère la mémoire occupée par une police PostScript Type 1

Description

bool imagepsfreefont ( resource $font_index )

imagepsfreefont() libère la mémoire occupée par une police PostScript Type 1.

Liste de paramètres

font_index

Une ressource de police, retournée par la fonction imagepsloadfont().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagepsfreefont()

<?php
// Charge un fichier de police .pfb
$font = imagepsloadfont('./bchbi.pfb');

// On fait ici toutes les opérations que l'on souhaite...

// Libération de la mémoire
imagepsfreefont($font);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .

Voir aussi

  • imagepsloadfont() - Charge une police PostScript Type 1 depuis un fichier


Charge une police PostScript Type 1 depuis un fichier

  • « imagepsfreefont
  • imagepsslantfont »
  • PHP Manual
  • Fonctions GD et images
  • Charge une police PostScript Type 1 depuis un fichier

imagepsloadfont

(PHP 4, PHP 5)

imagepsloadfont — Charge une police PostScript Type 1 depuis un fichier

Description

resource imagepsloadfont ( string $filename )

Charge une police PostScript Type 1 depuis le fichier filename.

Liste de paramètres

filename

Chemin vers le fichier de police Postscript.

Valeurs de retour

En cas de succès, imagepsloadfont() retourne un index de police, qui pourra être utilisé pour des opérations ultérieures. Sinon, imagepsloadfont() retournera FALSE.

Exemples

Exemple #1 Exemple avec imagepsloadfont()

<?php
// Création d'une nouvelle image
$im = imagecreatetruecolor(350, 45);

// Alloue les couleurs et remplit l'arrière-plan
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 349, 44, $white);

// Charge une police, écrite dans l'image et libère la mémoire
$font = imagepsloadfont("bchbi.pfb");
imagepstext($im, "Test... Ca marche !", $font, 32, $white, $black, 32, 32);
imagepsfreefont($font);

// Affichage de l'image
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .

Voir aussi

  • imagepsfreefont() - Libère la mémoire occupée par une police PostScript Type 1


Incline une police de caractères PostScript

  • « imagepsloadfont
  • imagepstext »
  • PHP Manual
  • Fonctions GD et images
  • Incline une police de caractères PostScript

imagepsslantfont

(PHP 4, PHP 5)

imagepsslantfont — Incline une police de caractères PostScript

Description

bool imagepsslantfont ( resource $font_index , float $slant )

Met en italique la police de caractères font avec le coefficient slant.

Liste de paramètres

font_index

Une ressource de police, retournée par la fonction imagepsloadfont().

slant

Niveau de l'italique.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagepsslantfont()

<?php
// Chargement d'un fichier de police .pfb
$font = imagepsloadfont('./px3l.pfb');

// On met la police en italique par 22.5
imagepsslantfont($font, 22.5);

// On fait ici toutes les opérations que l'on souhaite...

// Libération de la mémoire
imagepsfreefont($font);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .


Dessine un texte sur une image avec une police PostScript Type1

  • « imagepsslantfont
  • imagerectangle »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un texte sur une image avec une police PostScript Type1

imagepstext

(PHP 4, PHP 5)

imagepstext — Dessine un texte sur une image avec une police PostScript Type1

Description

array imagepstext ( resource $image , string $text , resource $font_index , int $size , int $foreground , int $background , int $x , int $y [, int $space = 0 [, int $tightness = 0 [, float $angle = 0.0 [, int $antialias_steps = 4 ]]]] )

Dessine un texte sur une image avec une police PostScript Type1.

Reportez-vous à la documentation PostScript pour avoir des détails à propos des polices et de leurs tailles.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

text

Le texte à écrire.

font_index

Une ressource de police, retournée par la fonction imagepsloadfont().

size

size est exprimé en pixels.

foreground

La couleur avec laquelle le texte va être dessiné.

background

La couleur d'antialiasing. Aucun pixel avec la couleur background n'est dessiné, ce qui fait que l'arrière-plan n'a pas besoin d'être dans une couleur fixe.

x

X : coordonnée du coin en bas, à gauche du premier caractère.

y

Y : coordonnée du coin en bas, à gauche du premier caractère.

space

Permet de changer la taille par défaut du caractère d'espacement. Cette valeur peut être négative. Exprimé en unité d'espaces caractère, ce qui vaut 1/1000ème d'un em-carré (un em : unité de mesure représentée par un carré dont la dimension horizontale est la même que le corps du caractère).

tightness

Permet de contrôler la quantité d'espace entre deux caractères. Cette valeur peut être négative. Exprimé en unité d'espaces caractère, ce qui vaut 1/1000ème d'un em-carré.

angle

angle est en degrés.

antialias_steps

Permet de contrôler le nombre de couleurs du texte antialiasé. Les valeurs autorisées sont 4 et 16. 16 est recommandée pour les polices de moins de 20 pixels, car l'effet est alors visible. Avec les tailles plus grandes, utilisez de préférence 4, qui est moins gourmande en ressources.

Valeurs de retour

Cette fonction retourne un tableau contenant les éléments suivants :

0 | Abscisse inférieure gauche
1 | Ordonnée inférieure gauche
2 | Abscisse supérieure droite
3 | Ordonnée supérieure droite

Exemples

Exemple #1 Exemple avec imagepstext()

<?php
// Création d'une nouvelle image
$im = imagecreatetruecolor(200, 200);

// Alloue les couleurs
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Charge la police PostScript
$font = imagepsloadfont('font.pfm');

// Dessine un texte dans l'image
imagepstext($im, 'Un texte simple', $font, 12, $black, $white, 50, 50);

// Affichage et libération de la mémoire
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notes

Note: Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR] .

Voir aussi

  • imagepsbbox() - Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1


Dessine un rectangle

  • « imagepstext
  • imageresolution »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un rectangle

imagerectangle

(PHP 4, PHP 5, PHP 7)

imagerectangle — Dessine un rectangle

Description

bool imagerectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

imagerectangle() dessine un rectangle aux coordonnées spécifiées.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

X : coordonnée du coin en haut, à gauche.

y1

Y : coordonnée du coin en haut, à gauche. 0, 0 est le coin en haut à gauche de l'image.

x2

X : coordonnée du point en bas, à droite.

y2

Y : coordonnée du point en bas, à droite.

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagerectangle()

<?php
// Création d'une image de 200 x 200 pixels
$canvas = imagecreatetruecolor(200, 200);

// Alloue les couleurs
$pink = imagecolorallocate($canvas, 255, 105, 180);
$white = imagecolorallocate($canvas, 255, 255, 255);
$green = imagecolorallocate($canvas, 132, 135, 28);

// Dessine 3 rectangles, chacun avec sa couleur
imagerectangle($canvas, 50, 50, 150, 150, $pink);
imagerectangle($canvas, 45, 60, 120, 100, $white);
imagerectangle($canvas, 100, 120, 75, 160, $green);

// Affichage et libération de la mémoire
header('Content-Type: image/jpeg');

imagejpeg($canvas);
imagedestroy($canvas);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagerectangle()


Get or set the resolution of the image

  • « imagerectangle
  • imagerotate »
  • PHP Manual
  • Fonctions GD et images
  • Get or set the resolution of the image

imageresolution

(PHP 7 >= 7.2.0)

imageresolution — Get or set the resolution of the image

Description

mixed imageresolution ( resource $image [, int $res_x [, int $res_y ]] )

imageresolution() allows to set and get the resolution of an image in DPI (dots per inch). If none of the optional parameters is given, the current resolution is returned as indexed array. If only res_x is given, the horizontal and vertical resolution are set to this value. If both optional parameters are given, the horizontal and vertical resolution are set to these values, respectively.

The resolution is only used as meta information when images are read from and written to formats supporting this kind of information (curently PNG and JPEG). It does not affect any drawing operations. The default resolution for new images is 96 DPI.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

res_x

The horizontal resolution in DPI.

res_y

The vertical resolution in DPI.

Valeurs de retour

When used as getter (that is without the optional parameters), it returns TRUE on success, ou FALSE si une erreur survient. When used as setter (that is with one or both optional parameters given), it returns an indexed array of the horizontal and vertical resolution on success, ou FALSE si une erreur survient.

Exemples

Exemple #1 Setting and getting the resolution of an image

<?php
$im = imagecreatetruecolor(100, 100);
imageresolution($im, 200);
print_r(imageresolution($im));
imageresolution($im, 300, 72);
print_r(imageresolution($im));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 200
    [1] => 200
)
Array
(
    [0] => 300
    [1] => 72
)


Fait tourner une image d'un angle

  • « imageresolution
  • imagesavealpha »
  • PHP Manual
  • Fonctions GD et images
  • Fait tourner une image d'un angle

imagerotate

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

imagerotate — Fait tourner une image d'un angle

Description

resource imagerotate ( resource $image , float $angle , int $bgd_color [, int $ignore_transparent = 0 ] )

imagerotate() fait tourner l'image image d'un angle de angle, en degrés.

Le centre de rotation est le centre de l'image, et l'image tournée peut avoir des dimensions différentes de l'image originale.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

angle

L'angle de rotation, en degrés. L'angle de rotation est interprété comme étant le nombre de degrés à tourner l'image dans le sens inverse des aiguilles d'une montre.

bgd_color

Spécifie la couleur des zones qui seront découvertes après la rotation.

ignore_transparent

Si ce paramètre est défini et ne vaut pas zéro, les couleurs transparentes seront ignorées.

Valeurs de retour

Retourne une ressource d'image correspondant à l'image après rotation, ou FALSE si une erreur survient.

Historique

Version | Description
5.5.0 | Cette fonction est maintenant affectée par la méthode d'interpolation définie par la fonction imagesetinterpolation().
5.1.0 | Le paramètre ignore_transparent a été ajouté.

Exemples

Exemple #1 Rotation d'une image de 180 degrés

Cet exemple tourne une image de 180 degrés - à l'envers.

<?php
// Fichier et degrés de rotation
$filename = 'test.jpg';
$degrees = 180;

// Content type
header('Content-type: image/jpeg');

// Chargement
$source = imagecreatefromjpeg($filename);

// Rotation
$rotate = imagerotate($source, $degrees, 0);

// Affichage
imagejpeg($rotate);

// Libération de la mémoire
imagedestroy($source);
imagedestroy($rotate);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Rotation d'une image de 180 degrés

Notes

Note:

Cette fonction est affectée par la méthode d'interpolation, définie par la fonction imagesetinterpolation().

Voir aussi

  • imagesetinterpolation() - Défini la méthode d'interpolation


Configure l'enregistrement des informations complètes du canal alpha lors de sauvegardes d'images PNG

  • « imagerotate
  • imagescale »
  • PHP Manual
  • Fonctions GD et images
  • Configure l'enregistrement des informations complètes du canal alpha lors de sauvegardes d'images PNG

imagesavealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

imagesavealpha — Configure l'enregistrement des informations complètes du canal alpha lors de sauvegardes d'images PNG

Description

bool imagesavealpha ( resource $image , bool $saveflag )

imagesavealpha() définit l'option pour essayer de sauvegarder toutes les informations du canal alpha (en opposition à la transparence à couleur unique) lors de la sauvegarde d'images PNG.

Vous devez désactiver le alphablending (imagealphablending($im, false)) pour l'utiliser.

Le canal alpha n'est pas supporté par tous les navigateurs ; si vous avez des problèmes avec le vôtre, essayez de charger le script avec un navigateur compatible avec les canaux alpha, c'est à dire le dernier Mozilla.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

saveflag

Si l'on doit ou non sauvegarder le canal Alpha. Par défaut, FALSE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesavealpha()

<?php
// Charge une image PNG avec un canal Alpha
$png = imagecreatefrompng('./alphachannel_example.png');

// On fait ici les opérations que l'on souhaite...

// Désactive l'Alpha blending et définit le drapeau Alpha
imagealphablending($png, false);
imagesavealpha($png, true);

// Affiche l'image au navigateur
header('Content-Type: image/png');

imagepng($png);
imagedestroy($png);
?>

Voir aussi

  • imagealphablending() - Modifie le mode de blending d'une image


Met à l'échelle une image en utilisant une hauteur et une largeur fournies

  • « imagesavealpha
  • imagesetbrush »
  • PHP Manual
  • Fonctions GD et images
  • Met à l'échelle une image en utilisant une hauteur et une largeur fournies

imagescale

(PHP 5 >= 5.5.0, PHP 7)

imagescale — Met à l'échelle une image en utilisant une hauteur et une largeur fournies

Description

resource imagescale ( resource $image , int $new_width [, int $new_height = -1 [, int $mode = IMG_BILINEAR_FIXED ]] )

imagescale() met à l'échelle une image en utilisant l'algorithme d'interpolation donné.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

new_width

La largeur à utiliser pour la mise à l'échelle de l'image.

new_height

La hauteur à utiliser pour la mise à l'échelle de l'image. Si omis ou négative, le ratio de l'image sera préservé.

Attention

Vous devez impérativement fournir la hauteur si vous utilisez une version antérieure à PHP 5.5.18 ou PHP 5.6.2 car le calcul du ration était incorrect.

mode

Une des constantes IMG_NEAREST_NEIGHBOUR, IMG_BILINEAR_FIXED, IMG_BICUBIC, IMG_BICUBIC_FIXED ou toute autre (utilisera deux passages).

Valeurs de retour

Retourne la ressource de l'image mise à l'échelle en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.5.19/5.6.3 | Le calcul de la hauteur si new_height était omis ou négatif a été corrigé. Précédemment à ces versions, le ration de l'image n'était pas conservé correctement.


Modifie la brosse pour le dessin des lignes

  • « imagescale
  • imagesetclip »
  • PHP Manual
  • Fonctions GD et images
  • Modifie la brosse pour le dessin des lignes

imagesetbrush

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagesetbrush — Modifie la brosse pour le dessin des lignes

Description

bool imagesetbrush ( resource $image , resource $brush )

imagesetbrush() remplace la brosse courante pour le dessin des lignes par brush. Cette brosse sera alors utilisée avec des fonctions comme imageline() ou imagepolygon() et avec les couleurs spéciales IMG_COLOR_BRUSHED ou IMG_COLOR_STYLEDBRUSHED.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

brush

Une ressource d'image.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesetbrush()

<?php
// Charge un mini-logo PHP
$php = imagecreatefrompng('./php.png');

// Création de l'image principale, 100x100
$im = imagecreatetruecolor(100, 100);

// Définit l'arrière-plan en blanc
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 299, 99, $white);

// Définit la brosse
imagesetbrush($im, $php);

// Dessine quelques brosses
imageline($im, 50, 50, 50, 60, IMG_COLOR_BRUSHED);

// Affichage de l'image au navigateur
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
imagedestroy($php);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagesetbrush()

Notes

Note:

Vous n'avez rien à faire lorsque vous en avez terminé avec une brosse, mais si vous détruisez l'image de brosse, vous ne DEVEZ plus utiliser les options IMG_COLOR_BRUSHED et IMG_COLOR_STYLEDBRUSHED avant d'avoir créé une nouvelle brosse.


Set the clipping rectangle

  • « imagesetbrush
  • imagesetinterpolation »
  • PHP Manual
  • Fonctions GD et images
  • Set the clipping rectangle

imagesetclip

(PHP 7.2)

imagesetclip — Set the clipping rectangle

Description

bool imagesetclip ( resource $im , int $x1 , int $y1 , int $x2 , int $y2 )

imagesetclip() sets the current clipping rectangle, i.e. the area beyond which no pixels will be drawn.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

The x-coordinate of the upper left corner.

y1

The y-coordinate of the upper left corner.

x2

The x-coordinate of the lower right corner.

y2

The y-coordinate of the lower right corner.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • imagegetclip() - Get the clipping rectangle


Défini la méthode d'interpolation

  • « imagesetclip
  • imagesetpixel »
  • PHP Manual
  • Fonctions GD et images
  • Défini la méthode d'interpolation

imagesetinterpolation

(PHP 5 >= 5.5.0, PHP 7)

imagesetinterpolation — Défini la méthode d'interpolation

Description

bool imagesetinterpolation ( resource $image [, int $method = IMG_BILINEAR_FIXED ] )

Défini la méthode d'interpolation ; le fait de définir une méthode d'interpolation affecte le rendu de plusieurs fonctions en GD, comme par exemple la fonction imagerotate().

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

method

La méthode d'interpolation, qui peut être une parmi :

  • IMG_BELL : filtre Bell.
  • IMG_BESSEL : filtre Bessel.
  • IMG_BICUBIC : interpolation bicubique.
  • IMG_BICUBIC_FIXED : implémentation de point fixe d'une interpolation bicubique.
  • IMG_BILINEAR_FIXED : implémentation de point fixe d'une interpolation bilinéaire (par défaut (y compris pour la création d'image)).
  • IMG_BLACKMAN : fonction de fenêtre Blackman.
  • IMG_BOX : filtre de flou Box.
  • IMG_BSPLINE : interpolation Spline.
  • IMG_CATMULLROM : interpolation cubique Hermite spline.
  • IMG_GAUSSIAN : fonction Gaussien.
  • IMG_GENERALIZED_CUBIC : interpolation fractale cubique généralisée spline.
  • IMG_HERMITE : interpolation Hermite.
  • IMG_HAMMING : filtre Hamming.
  • IMG_HANNING : filtre Hanning.
  • IMG_MITCHELL : filtre Mitchell.
  • IMG_POWER : interpolation Power.
  • IMG_QUADRATIC : interpolation quadratique inverse.
  • IMG_SINC : fonction Sinc.
  • IMG_NEAREST_NEIGHBOUR : interpolation du voisin le plus proche.
  • IMG_WEIGHTED4 : filtre Weighting.
  • IMG_TRIANGLE : interpolation Triangle.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesetinterpolation()

<?php
// Chargement de l'image
$im = imagecreate(500, 500);

// Par défaut, l'interpolation est IMG_BILINEAR_FIXED ; on utilse plutôt
// le filtre 'Mitchell' :
imagesetinterpolation($im, IMG_MITCHELL);

// On continue de travailler avec $im ...
?>

Notes

La modification de la méthode d'interpolation affecte les fonctions suivantes lors du rendu :

  • imageaffine()
  • imagerotate()
  • imagescale()


Dessine un pixel

  • « imagesetinterpolation
  • imagesetstyle »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un pixel

imagesetpixel

(PHP 4, PHP 5, PHP 7)

imagesetpixel — Dessine un pixel

Description

bool imagesetpixel ( resource $image , int $x , int $y , int $color )

imagesetpixel() dessine un pixel aux coordonnées spécifiées.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

x

X : coordonnée.

y

Y : coordonnée.

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesetpixel()

Un dessin aléatoire qui se termine par une image régulière.

<?php

$x = 200;
$y = 200;

$gd = imagecreatetruecolor($x, $y);

$corners[0] = array('x' => 100, 'y' =>  10);
$corners[1] = array('x' =>   0, 'y' => 190);
$corners[2] = array('x' => 200, 'y' => 190);

$red = imagecolorallocate($gd, 255, 0, 0);

for ($i = 0; $i < 100000; $i++) {
  imagesetpixel($gd, round($x),round($y), $red);
  $a = rand(0, 2);
  $x = ($x + $corners[$a]['x']) / 2;
  $y = ($y + $corners[$a]['y']) / 2;
}

header('Content-Type: image/png');
imagepng($gd);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagesetpixel()

Voir aussi

  • imagecreatetruecolor() - Crée une nouvelle image en couleurs vraies
  • imagecolorallocate() - Alloue une couleur pour une image
  • imagecolorat() - Retourne l'index de la couleur d'un pixel donné


Configure le style pour le dessin des lignes

  • « imagesetpixel
  • imagesetthickness »
  • PHP Manual
  • Fonctions GD et images
  • Configure le style pour le dessin des lignes

imagesetstyle

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagesetstyle — Configure le style pour le dessin des lignes

Description

bool imagesetstyle ( resource $image , array $style )

imagesetstyle() permet de choisir le style à utiliser lors du dessin des lignes (comme avec les fonctions imageline() et imagepolygon()) lors de l'utilisation de la couleur spéciale IMG_COLOR_STYLED ou bien lors du dessin de lignes avec la couleur IMG_COLOR_STYLEDBRUSHED.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

style

Un tableau de couleurs de pixels. Vous pouvez utiliser la constante IMG_COLOR_TRANSPARENT pour ajouter un pixel transparent.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

L'exemple suivant dessine une ligne pointillée depuis le coin supérieur gauche vers le coin inférieur droit de l'image :

Exemple #1 Exemple pour imagesetstyle()

<?php
header("Content-type: image/jpeg");
$im  = imagecreatetruecolor(100, 100);
$w   = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);

/* Dessine une ligne pointillée de 5 pixels rouges, 5 pixels blancs */
$style = array($red, $red, $red, $red, $red, $w, $w, $w, $w, $w);
imagesetstyle($im, $style);
imageline($im, 0, 0, 100, 100, IMG_COLOR_STYLED);

/* Dessine une ligne avec des smileys, en utilisant imagesetbrush() et imagesetstyle */
$style = array($w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $red);
imagesetstyle($im, $style);

$brush = imagecreatefrompng("http://www.libpng.org/pub/png/images/smile.happy.png");
$w2 = imagecolorallocate($brush, 255, 255, 255);
imagecolortransparent($brush, $w2);
imagesetbrush($im, $brush);
imageline($im, 100, 0, 0, 100, IMG_COLOR_STYLEDBRUSHED);

imagejpeg($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagesetstyle()

Voir aussi

  • imagesetbrush() - Modifie la brosse pour le dessin des lignes
  • imageline() - Dessine une ligne


Modifie l'épaisseur d'un trait

  • « imagesetstyle
  • imagesettile »
  • PHP Manual
  • Fonctions GD et images
  • Modifie l'épaisseur d'un trait

imagesetthickness

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagesetthickness — Modifie l'épaisseur d'un trait

Description

bool imagesetthickness ( resource $image , int $thickness )

imagesetthickness() modifie l'épaisseur du trait des lignes de l'image image. Cette épaisseur intervient dans les dessins de polygones, cercles, rectangles, etc. thickness est en pixels.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

thickness

L'épaisseur, en pixels.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesetthickness()

<?php
// Création d'une image en 200x100
$im = imagecreatetruecolor(200, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Définit l'arrière-plan en blanc
imagefilledrectangle($im, 0, 0, 299, 99, $white);

// Définit l'épaisseur de la ligne à 5
imagesetthickness($im, 5);

// Dessine le rectangle
imagerectangle($im, 14, 14, 185, 85, $black);

// Affichage de l'image sur le navigateur
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagesetthickness()


Modifie l'image utilisée pour le carrelage

  • « imagesetthickness
  • imagestring »
  • PHP Manual
  • Fonctions GD et images
  • Modifie l'image utilisée pour le carrelage

imagesettile

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagesettile — Modifie l'image utilisée pour le carrelage

Description

bool imagesettile ( resource $image , resource $tile )

imagesettile() remplace l'image de pavement courante par l'image tile, à utiliser dans tous les remplissages (comme avec les fonctions imagefill() et imagefilledpolygon()) lors des remplissages avec l'option IMG_COLOR_TILED.

Une image de carrelage est une image utilisée pour remplir une zone, de manière répétitive. N'importe quelle image GD peut servir d'image de remplissage. L'utilisation de la couleur transparente (gérée avec la fonction imagecolortransparent()) permet à certaines zones d'apparaître à travers le carrelage.

Note:

Vous n'avez rien à faire lorsque vous en avez terminé avec une brosse, mais si vous détruisez l'image de brosse, vous ne DEVEZ plus utiliser l'option IMG_COLOR_TILED des fonctions imagefill() et imagefilledpolygon(), avant d'avoir créé une nouvelle brosse.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

tile

La ressource de l'image à utiliser en tant que carrelage.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesettile()

<?php
// Chargement d'une image externe
$zend = imagecreatefromgif('./zend.gif');

// Création d'une image de 200x200 pixels
$im = imagecreatetruecolor(200, 200);

// Définition du carrelage
imagesettile($im, $zend);

// Répétition de l'image
imagefilledrectangle($im, 0, 0, 199, 199, IMG_COLOR_TILED);

// Affichage vers le navigateur
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
imagedestroy($zend);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagesettile()


Dessine une chaîne horizontale

  • « imagesettile
  • imagestringup »
  • PHP Manual
  • Fonctions GD et images
  • Dessine une chaîne horizontale

imagestring

(PHP 4, PHP 5, PHP 7)

imagestring — Dessine une chaîne horizontale

Description

bool imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )

Dessine une chaîne aux coordonnées spécifiées.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

font

Peut être 1, 2, 3, 4, 5 pour les polices internes d'encodage Latin2 (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

x

X : coordonnée du coin en haut, à gauche.

y

Y : coordonnée du coin en haut, à gauche.

string

La chaîne de caractères à écrire.

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagestring()

<?php
// Nouvelle image 100*30
$im = imagecreate(100, 30);

// Fond blanc et texte bleu
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);

// Ajout de la phrase en haut à gauche
imagestring($im, 5, 0, 0, 'Hello world!', $textcolor);

// Affichage de l'image
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagestring()

Voir aussi

  • imageloadfont() - Charge une nouvelle police
  • imagettftext() - Dessine un texte avec une police TrueType


Dessine une chaîne verticale

  • « imagestring
  • imagesx »
  • PHP Manual
  • Fonctions GD et images
  • Dessine une chaîne verticale

imagestringup

(PHP 4, PHP 5, PHP 7)

imagestringup — Dessine une chaîne verticale

Description

bool imagestringup ( resource $image , int $font , int $x , int $y , string $string , int $color )

Dessine une chaîne sur une ligne verticale dans l'image image aux coordonnées spécifiées.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

font

Peut être 1, 2, 3, 4, 5 pour les polices internes d'encodage Latin2 (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

x

Coordonnée X du coin en haut, à gauche.

y

Coordonnée Y du coin en haut, à gauche.

string

La chaîne de caractères à écrire.

color

Un identifiant de couleur créé par la fonction imagecolorallocate().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagestringup()

<?php
// Création d'une image de 100*100 pixels
$im = imagecreatetruecolor(100, 100);

// Dessine un texte
$textcolor = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
imagestringup($im, 3, 40, 80, 'gd library', $textcolor);

// Sauvegarde l'image
imagepng($im, './stringup.png');
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagestringup()

Voir aussi

  • imageloadfont() - Charge une nouvelle police


Retourne la largeur d'une image

  • « imagestringup
  • imagesy »
  • PHP Manual
  • Fonctions GD et images
  • Retourne la largeur d'une image

imagesx

(PHP 4, PHP 5, PHP 7)

imagesx — Retourne la largeur d'une image

Description

int imagesx ( resource $image )

Retourne la largeur de l'image référencée par image.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne la largeur de l'image image ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesx()

<?php

// Création d'une image 300*200 image
$img = imagecreatetruecolor(300, 200);

echo imagesx($img); // 300

?>

Voir aussi

  • imagecreatetruecolor() - Crée une nouvelle image en couleurs vraies
  • getimagesize() - Retourne la taille d'une image
  • imagesy() - Retourne la hauteur de l'image


Retourne la hauteur de l'image

  • « imagesx
  • imagetruecolortopalette »
  • PHP Manual
  • Fonctions GD et images
  • Retourne la hauteur de l'image

imagesy

(PHP 4, PHP 5, PHP 7)

imagesy — Retourne la hauteur de l'image

Description

int imagesy ( resource $image )

Retourne la hauteur de l'image image.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne la hauteur de l'image image ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagesy()

<?php

// Création d'une image 300*200
$img = imagecreatetruecolor(300, 200);

echo imagesy($img); // 200

?>

Voir aussi

  • imagecreatetruecolor() - Crée une nouvelle image en couleurs vraies
  • getimagesize() - Retourne la taille d'une image
  • imagesx() - Retourne la largeur d'une image


Convertit une image en couleurs vraies en image à palette

  • « imagesy
  • imagettfbbox »
  • PHP Manual
  • Fonctions GD et images
  • Convertit une image en couleurs vraies en image à palette

imagetruecolortopalette

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagetruecolortopalette — Convertit une image en couleurs vraies en image à palette

Description

bool imagetruecolortopalette ( resource $image , bool $dither , int $ncolors )

imagetruecolortopalette() convertit l'image en vraies couleurs image en image à palette. Le code de cette fonction est directement tiré de la bibliothèque du Independent JPEG Group, qui est tout simplement génial. Le code a été modifié pour préserver l'essentiel du canal alpha dans la nouvelle palette, en plus de conserver les couleurs du mieux possible. Mais cela ne fonctionne pas toujours comme voulu. Il est alors préférable de générer un résultat en vraies couleurs, ce qui donne toujours le meilleur rendu.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

dither

Indique si l'image doit être granuleuse - si défini à TRUE, alors l'image sera un peu plus granuleuse mais l'approximation des couleurs sera meilleure.

ncolors

Le nombre maximal de couleurs dans la palette finale.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Convertion d'une image truecolor en une palette

<?php
// Création d'une image truecolor
$im = imagecreatetruecolor(100, 100);

// Conversion en palette de 255 couleurs
imagetruecolortopalette($im, false, 255);

// Sauvegarde de l'image
imagepng($im, './paletteimage.png');
imagedestroy($im);
?>


Retourne le rectangle entourant un texte et dessiné avec une police TrueType

  • « imagetruecolortopalette
  • imagettftext »
  • PHP Manual
  • Fonctions GD et images
  • Retourne le rectangle entourant un texte et dessiné avec une police TrueType

imagettfbbox

(PHP 4, PHP 5, PHP 7)

imagettfbbox — Retourne le rectangle entourant un texte et dessiné avec une police TrueType

Description

array imagettfbbox ( float $size , float $angle , string $fontfile , string $text )

Calcule et retourne le rectangle entourant le texte text, écrit avec une police truetype.

Liste de paramètres

size

La taille de la police.

Note: En GD 1, la taille est mesurée en pixels. En GD 2, elle est mesurée en points.

angle

L'angle, en degrés, dans lequel le paramètre text sera mesuré.

fontfile

Le nom de la police TrueType (peut être une URL). Suivant la version de la bibliothèque GD utilisée par PHP, ce paramètre peut chercher des fichiers qui ne commence pas par un slash ("/") de fin mais plutôt .ttf et cherchera tout le long des chemins de fonts définis.

text

La chaîne à mesurer.

Valeurs de retour

imagettfbbox() retourne un tableau avec 8 éléments représentant les 4 sommets du rectangle en cas de succès, FALSE si une erreur survient.

Clé | Signification
0 | Coin inférieur gauche, abscisse
1 | Coin inférieur gauche, ordonnée
2 | Coin inférieur droit, abscisse
3 | Coin inférieur droit, ordonnée
4 | Coin supérieur droit, abscisse
5 | Coin supérieur droit, ordonnée
6 | Coin supérieur gauche, abscisse
7 | Coin supérieur gauche, ordonnée

Les positions des points sont relatives au texte text, indépendamment de l'angle : coin supérieur gauche faire référence au coin supérieur gauche du texte écrit horizontalement.

Exemples

Exemple #1 Exemple avec imagettfbbox()

<?php
// Création d'une image de 300x150 pixels
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Définit l'arrière-plan en blanc
imagefilledrectangle($im, 0, 0, 299, 299, $white);

// Chemin vers le fichier de police
$font = './arial.ttf';

// Tout d'abord, nous créons notre rectangle entourant notre premier texte
$bbox = imagettfbbox(10, 45, $font, 'Powered by PHP ' . phpversion());

// Nos coordonnées en X et en Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Dessin du texte
imagettftext($im, 10, 45, $x, $y, $black, $font, 'Powered by PHP ' . phpversion());

// Nous créons notre rectangle entourant notre second texte
$bbox = imagettfbbox(10, 45, $font, 'and Zend Engine ' . zend_version());

// Définit les coordonnées afin que le second text suive le premier
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Dessin du texte
imagettftext($im, 10, 45, $x, $y, $black, $font, 'and Zend Engine ' . zend_version());

// Affichage vers le navigateur
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notes

Note:

Cette fonction nécessite la bibliothèque GD et la bibliothèque » FreeType.

Voir aussi

  • imagettftext() - Dessine un texte avec une police TrueType


Dessine un texte avec une police TrueType

  • « imagettfbbox
  • imagetypes »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un texte avec une police TrueType

imagettftext

(PHP 4, PHP 5, PHP 7)

imagettftext — Dessine un texte avec une police TrueType

Description

array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )

imagettftext() dessine le texte text avec la police TrueType fontfile.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

size

La taille de la police de caractères. Suivant votre version de GD, elle doit être exprimée en pixel (GD1) ou en point (GD2).

angle

L'angle, en degrés ; 0 degré correspond à la lecture du texte de gauche à droite. Les valeurs positives représentent une rotation dans le sens contraire des aiguilles d'une montre. Par exemple, une valeur de 90 correspondra à une lecture du texte de bas en haut.

x

Les coordonnées données par x et y définiront la position du premier caractère (le coin bas-gauche du caractère). Cela est différent de la fonction imagestring(), où x et y définissent le coin haut-gauche du premier caractère. Par exemple, "haut gauche" correspond à 0, 0.

y

L'ordonnée Y. Cela définit la position de la ligne de base de la police, et non pas le bas des caractères.

color

L'index de la couleur. Utiliser un index de couleur négatif désactivera l'antialiasing. Voir la fonction imagecolorallocate().

fontfile

Le chemin vers la police TrueType que vous souhaitez utiliser.

Dépendant de la version de la bibliothèque GD utilisée par PHP, lorsque fontfile ne commence pas par un caractère / alors .ttf sera ajouté au nom du fichier et la bibliothèque recherchera ce nom de fichier dans les dossiers de police, définis par la bibliothèque.

Lorsque vous utilisez une version de la bibliothèque GD inférieure à 2.0.18, un caractère espace, plutôt qu'un point-virgule, est utilisé pour définir des chemins alternatifs pour les fichiers de police. Si vous utilisez involontairement cette fonctionnalité, vous aurez ce message d'erreur : Warning: Could not find/open font. Pour ces versions affectées, la seule solution est de déplacée la police à un endroit qui ne contient pas d'espaces dans les noms de dossier.

Dans le cas fréquent où une police réside dans le même dossier que le script l'utilisant, l'astuce suivante vous épargnera tous les problèmes.

<?php
// Définition de la variable d'environnement pour GD
putenv('GDFONTPATH=' . realpath('.'));

// Nom de la police à utiliser (notez l'absence de l'extension .ttf)
$font = 'SomeFont';
?>

text

La chaîne de texte, en UTF-8.

Peut inclure des références à des caractères numériques, décimales (sous la forme : &#8364; ) pour accéder aux caractères d'une police au delà du premier 127. Les chaînes de caractères encodées en UTF-8 peuvent être passées directement.

Les entités nommées, comme &copy;, ne sont pas supportées. Utilisez la fonction html_entity_decode() pour encoder ces entités nommées en chaîne UTF-8.

Si un caractère est utilisé dans une chaîne qui n'est pas supportée par la police, un rectangle creux remplacera le caractère.

Valeurs de retour

Retourne un tableau de 8 éléments représentant quatre points marquants les limites du texte. L'ordre des points est : inférieur gauche, inférieur droit, supérieur droit, supérieur gauche. Les points sont relatifs au texte par rapport à l'angle, donc, "supérieur gauche" signifie dans le coin en haut à gauche lorsque vous regardez le texte horizontalement. Retourne FALSE si une erreur survient.

Historique

Version | Description
5.2.0 | Il est maintenant possible de spécifier une entitée hexadécimal dans text.

Exemples

Exemple #1 Exemple avec imagettftext()

Cet exemple produira une image PNG blanche de 400x30 pixels, avec le texte "Test..." en noir, avec une ombre grise, utilisant la police Arial.

<?php
// Définition du content-type
header('Content-Type: image/png');

// Création de l'image
$im = imagecreatetruecolor(400, 30);

// Création de quelques couleurs
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// Le texte à dessiner
$text = 'Test...';
// Remplacez le chemin par votre propre chemin de police
$font = 'arial.ttf';

// Ajout d'ombres au texte
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Ajout du texte
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Utiliser imagepng() donnera un texte plus claire,
// comparé à l'utilisation de la fonction imagejpeg()
imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : imagettftext()

Notes

Note:

Cette fonction requiert la bibliothèque GD ainsi que la bibliothèque » FreeType.

Voir aussi

  • imagettfbbox() - Retourne le rectangle entourant un texte et dessiné avec une police TrueType


Retourne les types d'images supportés par la version courante de PHP

  • « imagettftext
  • imagewbmp »
  • PHP Manual
  • Fonctions GD et images
  • Retourne les types d'images supportés par la version courante de PHP

imagetypes

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

imagetypes — Retourne les types d'images supportés par la version courante de PHP

Description

int imagetypes ( void )

Retourne un champ d'octets correspondant aux formats d'images supportés par la version PHP utilisée.

Valeurs de retour

Retourne un champ d'octets correspondant aux formats d'images supportés par la version de GD utilisée. Les valeurs suivantes sont possibles : IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM.

Exemples

Exemple #1 Exemple avec imagetypes()

<?php
if (imagetypes() & IMG_PNG) {
    echo "Le type PNG est supporté";
}
?>


Affichage de l'image vers le navigateur ou dans un fichier

  • « imagetypes
  • imagewebp »
  • PHP Manual
  • Fonctions GD et images
  • Affichage de l'image vers le navigateur ou dans un fichier

imagewbmp

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagewbmp — Affichage de l'image vers le navigateur ou dans un fichier

Description

bool imagewbmp ( resource $image [, string $filename [, int $foreground ]] )

imagewbmp() affiche ou sauvegarde une version WBMP de l'image image.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin ou un flux de ressource ouvert (qui sera automatiquement fermé après le retour de cette fonction) vers lequel le fichier sera sauvegardé. Si défini à NULL, le flux brute de l'image sera affiché directement.

foreground

Vous pouvez choisir la couleur de fond avec ce paramètre. Utilisez l'identifiant retourné par imagecolorallocate() comme valeur de ce paramètre. La couleur de fond par défaut est noire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Affichage d'une image WBMP

<?php
// Création d'une image vide et ajout d'un texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Un texte simple', $text_color);

// Définit le contenu de l'en-tête - dans ce cas, image/vnd.wap.wbmp
// Hint: see image_type_to_mime_type() for content-types
header('Content-Type: image/vnd.wap.wbmp');

// Affichage de l'image
imagewbmp($im);

// Libération de la mémoire
imagedestroy($im);
?>

Exemple #2 Sauvegarde de l'image WBMP

<?php
// Création d'une image vide et ajout d'un texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Un texte simple', $text_color);

// Sauvegarde de l'image
imagewbmp($im, 'simpletext.wbmp');

// Libération de la mémoire
imagedestroy($im);
?>

Exemple #3 Affichage de l'image avec un premier-plan différent

<?php
// Création d'une image vide et ajout d'un texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Un texte simple', $text_color);

// Définit le contenu de l'en-tête - dans ce cas, image/vnd.wap.wbmp
// Astuce : voir la fonction image_type_to_mime_type() pour les types de contenu
header('Content-type: image/vnd.wap.wbmp');

// Définit un premier-plan
$foreground_color = imagecolorallocate($im, 255, 0, 0);

imagewbmp($im, NULL, $foreground_color);

// Libération de la mémoire
imagedestroy($im);
?>

Notes

Note:

Le support WBMP n'est disponible que si PHP a été compilé avec GD-1.8 ou plus récent.

Voir aussi

  • image2wbmp() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagepng() - Envoie une image PNG vers un navigateur ou un fichier
  • imagegif() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagejpeg() - Affichage de l'image vers le navigateur ou dans un fichier
  • imagetypes() - Retourne les types d'images supportés par la version courante de PHP


Affiche une image WebP vers un navigateur ou un fichier

  • « imagewbmp
  • imagexbm »
  • PHP Manual
  • Fonctions GD et images
  • Affiche une image WebP vers un navigateur ou un fichier

imagewebp

(PHP 5 >= 5.5.0, PHP 7)

imagewebp — Affiche une image WebP vers un navigateur ou un fichier

Description

bool imagewebp ( resource $image , string $filename )

Affiche ou sauvegarde une version WebP de l'image fournie.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin ou un flux de ressource ouvert (qui sera automatiquement fermé après le retour de cette fonction) vers lequel le fichier sera sauvegardé. Si défini à NULL, le flux brute de l'image sera affiché directement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Sauvegarde d'un fichier WebP

<?php
// Crée une image vide et on y ajoute du texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);

imagestring($im, 1, 5, 5,  'WebP avec PHP', $text_color);

// Sauvegarde de l'image
imagewebp($im, 'php.webp');

// Libération de la mémoire
imagedestroy($im);
?>


Génère une image au format XBM

  • « imagewebp
  • iptcembed »
  • PHP Manual
  • Fonctions GD et images
  • Génère une image au format XBM

imagexbm

(PHP 5, PHP 7)

imagexbm — Génère une image au format XBM

Description

bool imagexbm ( resource $image , string $filename [, int $foreground ] )

Affiche ou sauvegarde une version XBM de l'image image.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin ou un flux de ressource ouvert (qui sera automatiquement fermé après le retour de cette fonction) vers lequel le fichier sera sauvegardé. Si défini à NULL, le flux brute de l'image sera affiché directement.

foreground

Vous pouvez définir le premier plan avec ce paramètre en définissant un identifiant obtenu depuis la fonction imagecolorallocate(). Par défaut, la couleur du premier plan est noir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Sauvegarde d'un fichier XBM

<?php
// Création d'une image vide et ajout d'un texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Un texte simple', $text_color);

// Sauvegarde de l'image
imagexbm($im, 'simpletext.xbm');

// Libération de la mémoire
imagedestroy($im);
?>

Exemple #2 Sauvegarde d'un fichier XBM avec une couleur de premier-plan différente

<?php
// Création d'une image vide et ajout d'un texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Un texte simple', $text_color);

// Définit la couleur de premier-plan
$foreground_color = imagecolorallocate($im, 255, 0, 0);

// Sauvegarde de l'image
imagexbm($im, NULL, $foreground_color);

// Libération de la mémoire
imagedestroy($im);
?>

Notes


Intègre des données binaires IPTC dans une image JPEG

  • « imagexbm
  • iptcparse »
  • PHP Manual
  • Fonctions GD et images
  • Intègre des données binaires IPTC dans une image JPEG

iptcembed

(PHP 4, PHP 5, PHP 7)

iptcembed — Intègre des données binaires IPTC dans une image JPEG

Description

mixed iptcembed ( string $iptcdata , string $jpeg_file_name [, int $spool ] )

iptcembed() intègre des données binaires IPTC dans une image JPEG.

Liste de paramètres

iptcdata

Les données à écrire.

jpeg_file_name

Chemin vers le fichier JPEG.

spool

La bobine. Si la bobine est supérieure à 2, alors le fichier JPEG sera retourné sous la forme d'une chaîne de caractères.

Valeurs de retour

En cas de succès et si la bobine est supérieure à 2, alors le fichier JPEG sera retourné sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec iptcembed()

<?php

// Fonction iptc_make_tag() par Thies C. Arntzen
function iptc_make_tag($rec, $data, $value)
{
    $length = strlen($value);
    $retval = chr(0x1C) . chr($rec) . chr($data);

    if($length < 0x8000)
    {
        $retval .= chr($length >> 8) .  chr($length & 0xFF);
    }
    else
    {
        $retval .= chr(0x80) .
                   chr(0x04) .
                   chr(($length >> 24) & 0xFF) .
                   chr(($length >> 16) & 0xFF) .
                   chr(($length >> 8) & 0xFF) .
                   chr($length & 0xFF);
    }

    return $retval . $value;
}

// Chemin vers le fichier JPEG
$path = './phplogo.jpg';

// Nous devons vérifier s'il y a des données IPTC dans l'image JPEG. S'il y en
// a, alors nous stoppons le script car nous ne pouvons intégrer une image
// contenant déjà des données IPTC !
$image = getimagesize($path, $info);

if(isset($info['APP13']))
{
    die('Erreur : Données IPTC trouvées dans l\'image, nous ne pouvons continuer');
}

// Définit le drapeau IPTC
$iptc = array(
    '2#120' => 'Test image',
    '2#116' => 'Copyright 2008-2009, The PHP Group'
);

// Conversion du drapeau IPTC en code binaire
$data = '';

foreach($iptc as $tag => $string)
{
    $tag = substr($tag, 2);
    $data .= iptc_make_tag(2, $tag, $string);
}

// Intégration des données IPTC
$content = iptcembed($data, $path);

// Écrit les données de la nouvelle image dans un fichier.
$fp = fopen($path, "wb");
fwrite($fp, $content);
fclose($fp);
?>

Notes

Note:

Cette fonction ne nécessite pas la bibliothèque GD.


Analyse un bloc binaire IPTC et recherche les balises simples

  • « iptcembed
  • jpeg2wbmp »
  • PHP Manual
  • Fonctions GD et images
  • Analyse un bloc binaire IPTC et recherche les balises simples

iptcparse

(PHP 4, PHP 5, PHP 7)

iptcparse — Analyse un bloc binaire IPTC et recherche les balises simples

Description

array iptcparse ( string $iptcblock )

Analyse un bloc binaire » IPTC et recherche les balises simples.

Liste de paramètres

iptcblock

Un bloc binaire IPTC.

Valeurs de retour

Retourne un tableau avec les balises comme index et les valeurs de ces balises IPTC dans les valeurs de tableau correspondantes. En cas d'erreur, ou si aucune balise IPTC n'a été trouvée, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec iptcparse() et getimagesize()

<?php
$size = getimagesize('./test.jpg', $info);
if(isset($info['APP13']))
{
    $iptc = iptcparse($info['APP13']);
    var_dump($iptc);
}
?>

Notes

Note:

Cette fonction ne nécessite pas la bibliothèque GD.


Convertit une image JPEG en image WBMP

  • « iptcparse
  • png2wbmp »
  • PHP Manual
  • Fonctions GD et images
  • Convertit une image JPEG en image WBMP

jpeg2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

jpeg2wbmp — Convertit une image JPEG en image WBMP

Avertissement

jpeg2wbmp() est devenu obsolète depuis PHP 7.2.0, et sera supprimé en PHP 8.0.0. Utilisez la fonction imagecreatefromjpeg() et la fonction imagewbmp() à la place.

Description

bool jpeg2wbmp ( string $jpegname , string $wbmpname , int $dest_height , int $dest_width , int $threshold )

Convertit une image JPEG en image WBMP.

Liste de paramètres

jpegname

Le chemin vers le fichier JPEG.

wbmpname

Chemin vers le fichier final WBMP.

dest_height

Hauteur de l'image de destination.

dest_width

Largeur de l'image de destination.

threshold

Valeur du seuil, entre 0 et 8 inclus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec jpeg2wbmp()

<?php
// Chemin vers la cible jpeg
$path = './test.jpg';

// Récupération de la taille de l'image
$image = getimagesize($path);

// Conversion de l'image
jpeg2wbmp($path, './test.wbmp', $image[1], $image[0], 5);
?>

Voir aussi

  • png2wbmp() - Convertit une image PNG en image WBMP


Convertit une image PNG en image WBMP

  • « jpeg2wbmp
  • Gmagick »
  • PHP Manual
  • Fonctions GD et images
  • Convertit une image PNG en image WBMP

png2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

png2wbmp — Convertit une image PNG en image WBMP

Avertissement

png2wbmp() est devenu obsolète depuis PHP 7.2.0, et sera supprimé en PHP 8.0.0. Utilisez les fonctions imagecreatefrompng() et imagewbmp() à la place.

Description

bool png2wbmp ( string $pngname , string $wbmpname , int $dest_height , int $dest_width , int $threshold )

Convertit une image PNG en image WBMP.

Liste de paramètres

pngname

Chemin vers le fichier PNG.

wbmpname

Chemin vers le fichier final WBMP.

dest_height

Hauteur de l'image de destination.

dest_width

Largeur de l'image de destination.

threshold

Valeur du seuil, entre 0 et 8 inclus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec png2wbmp()

<?php
// Chemin vers la cible png
$path = './test.png';

// Récupération de la taille de l'image
$image = getimagesize($path);

// Conversion de l'image
png2wbmp($path, './test.wbmp', $image[1], $image[0], 7);
?>

Voir aussi

  • jpeg2wbmp() - Convertit une image JPEG en image WBMP


Gmagick

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
  • Constantes pré-définies
  • Exemples
  • Gmagick — La classe Gmagick
    • Gmagick::addimage — Ajoute une nouvelle image à la liste des images de l'objet Gmagick
    • Gmagick::addnoiseimage — Ajoute du bruit aléatoirement dans l'image
    • Gmagick::annotateimage — Annote une image avec du texte
    • Gmagick::blurimage — Ajoute un filtre flou à l'image
    • Gmagick::borderimage — Ajoute une bordure à l'image
    • Gmagick::charcoalimage — Simule un dessin au fusain
    • Gmagick::chopimage — Supprime une région de l'image
    • Gmagick::clear — Efface toutes les ressources associées à l'objet Gmagick
    • Gmagick::commentimage — Ajoute un commentaire à l'image
    • Gmagick::compositeimage — Assemble 2 images
    • Gmagick::__construct — Le constructeur Gmagick
    • Gmagick::cropimage — Extrait une portion d'une image
    • Gmagick::cropthumbnailimage — Crée une miniature recadrée
    • Gmagick::current — Le contexte courante
    • Gmagick::cyclecolormapimage — Déplace la carte des couleurs d'une image
    • Gmagick::deconstructimages — Retourne les pixels différents entre des images
    • Gmagick::despeckleimage — Le but de despeckleimage
    • Gmagick::destroy — Le but de la méthode destroy
    • Gmagick::drawimage — Envoi l'objet GmagickDraw dans l'image courante
    • Gmagick::edgeimage — Améliore les bords intérieurs de l'image
    • Gmagick::embossimage — Retourne une image en niveau de gris avec un effet à 3 dimensions
    • Gmagick::enhanceimage — Améliore la qualité d'une image contenant du bruit
    • Gmagick::equalizeimage — Égalise l'histogramme de l'image
    • Gmagick::flipimage — Crée une image miroir verticale
    • Gmagick::flopimage — Le but de la méthode flopimage
    • Gmagick::frameimage — Ajoute une bordure afin de simuler un effet 3D
    • Gmagick::gammaimage — Corrige le gamma d'une image
    • Gmagick::getcopyright — Retourne le copyright de l'API GraphicsMagick
    • Gmagick::getfilename — Retourne le nom du fichier associé avec une séquence d'image
    • Gmagick::getimagebackgroundcolor — Retourne la couleur d'arrière plan de l'image
    • Gmagick::getimageblueprimary — Retourne le point bleu primaire chromatique
    • Gmagick::getimagebordercolor — Retourne la couleur du bord de l'image
    • Gmagick::getimagechanneldepth — Récupère la profondeur d'un canal particulier de l'image
    • Gmagick::getimagecolors — Retourne la couleur de l'indice de la carte des couleurs spécifiée
    • Gmagick::getimagecolorspace — Récupère l'espace colorimétrique de l'image
    • Gmagick::getimagecompose — Retourne l'opérateur de composition associé avec l'image
    • Gmagick::getimagedelay — Récupère le délai de l'image
    • Gmagick::getimagedepth — Récupère la profondeur de l'image
    • Gmagick::getimagedispose — Récupère la méthode de disposition de l'image
    • Gmagick::getimageextrema — Récupère les extrémités de l'image
    • Gmagick::getimagefilename — Récupère le nom du fichier d'une image particulière dans une séquence
    • Gmagick::getimageformat — Récupère le format d'une image particulière dans une séquence
    • Gmagick::getimagegamma — Récupère le gamma de l'image
    • Gmagick::getimagegreenprimary — Récupère le point chromatique primaire vert
    • Gmagick::getimageheight — Récupère la hauteur de l'image
    • Gmagick::getimagehistogram — Récupère l'histogramme de l'image
    • Gmagick::getimageindex — Récupère l'indice de l'image active courante
    • Gmagick::getimageinterlacescheme — Récupère le schéma d'entrelacement de l'image
    • Gmagick::getimageiterations — Récupère les itérations de l'image
    • Gmagick::getimagematte — Vérifie si l'image a un canal mate
    • Gmagick::getimagemattecolor — Récupère la couleur mate de l'image
    • Gmagick::getimageprofile — Récupère le nom du profile de l'image
    • Gmagick::getimageredprimary — Récupère le point chromatique primaire rouge
    • Gmagick::getimagerenderingintent — Récupère l'image de rendu
    • Gmagick::getimageresolution — Récupère la résolution de l'image
    • Gmagick::getimagescene — Récupère la scène de l'image
    • Gmagick::getimagesignature — Génère la signature SHA-256 de l'image
    • Gmagick::getimagetype — Récupère le type potentiel d'une image
    • Gmagick::getimageunits — Récupère les unités utilisées pour la résolution de l'image
    • Gmagick::getimagewhitepoint — Récupère le point chromatique blanc
    • Gmagick::getimagewidth — Récupère la largeur de l'image
    • Gmagick::getpackagename — Récupère le nom du paquet GraphicsMagick
    • Gmagick::getquantumdepth — Récupère la profondeur du quantum Gmagick
    • Gmagick::getreleasedate — Récupère la date de sortie de la version courante de GraphicsMagick
    • Gmagick::getsamplingfactors — Récupère le facteur d'échantillonnage horizontal et vertical
    • Gmagick::getsize — Récupère la taille associée avec l'objet Gmagick
    • Gmagick::getversion — Récupère la version de l'API GraphicsMagick
    • Gmagick::hasnextimage — Vérifie si l'objet contient au moins une autre image
    • Gmagick::haspreviousimage — Vérifie si l'objet contient une image précédente
    • Gmagick::implodeimage — Crée une image à partir d'une copie
    • Gmagick::labelimage — Ajoute un libellé à une image
    • Gmagick::levelimage — Ajuste les niveaux d'une image
    • Gmagick::magnifyimage — Retaille par 2 une image en conservant les proportions
    • Gmagick::mapimage — Remplace les couleurs d'une image avec les couleurs les plus proches d'une image de référence
    • Gmagick::medianfilterimage — Applique un filtre digital
    • Gmagick::minifyimage — Réduit une image de moitié en gardant les proportions
    • Gmagick::modulateimage — Contrôle la luminosité, la saturation et la teinte
    • Gmagick::motionblurimage — Simule un flou cinétique
    • Gmagick::newimage — Crée une nouvelle image
    • Gmagick::nextimage — Se déplace sur l'image suivante
    • Gmagick::normalizeimage — Améliore le contraste de la couleur de l'image
    • Gmagick::oilpaintimage — Simule une peinture à l'huile
    • Gmagick::previousimage — Se déplace vers l'image précédente de l'objet
    • Gmagick::profileimage — Ajoute ou supprime un profile d'une image
    • Gmagick::quantizeimage — Analyse les couleurs d'une image de référence
    • Gmagick::quantizeimages — Le but de quantizeimages
    • Gmagick::queryfontmetrics — Retourne un tableau représentant la métrique pour la police de caractères
    • Gmagick::queryfonts — Retourne les polices de caractères configurées
    • Gmagick::queryformats — Retourne les formats supportés par Gmagick
    • Gmagick::radialblurimage — Brouille une image suivant un rayon
    • Gmagick::raiseimage — Crée un un bouton avec un effet 3D
    • Gmagick::read — Lit une image depuis un fichier
    • Gmagick::readimage — Lit une image depuis un fichier
    • Gmagick::readimageblob — Lit une image depuis une chaîne binaire
    • Gmagick::readimagefile — Le but de readimagefile
    • Gmagick::reducenoiseimage — Lisse les contours de l'image
    • Gmagick::removeimage — Supprime une image depuis la liste des images
    • Gmagick::removeimageprofile — Supprime un profil nommé de l'image
    • Gmagick::resampleimage — Échantillonne l'image à la résolution désirée
    • Gmagick::resizeimage — Redimensionne une image
    • Gmagick::rollimage — Repositionne une image
    • Gmagick::rotateimage — Effectue une rotation de l'image
    • Gmagick::scaleimage — Met à l'échelle une image
    • Gmagick::separateimagechannel — Sépare un canal depuis une image
    • Gmagick::setCompressionQuality — Sets the object's default compression quality
    • Gmagick::setfilename — Définit le nom de fichier avant la lecture ou l'écriture d'une image
    • Gmagick::setimagebackgroundcolor — Définit la couleur d'arrière-plan de l'image
    • Gmagick::setimageblueprimary — Définit le point bleu primaire de l'image chromatique
    • Gmagick::setimagebordercolor — Définit la couleur de la bordure de l'image
    • Gmagick::setimagechanneldepth — Définit la profondeur d'un canal particulier de l'image
    • Gmagick::setimagecolorspace — Définit l'espace de couleurs de l'image
    • Gmagick::setimagecompose — Définit l'opérateur de composition de l'image
    • Gmagick::setimagedelay — Définit le délai de l'image
    • Gmagick::setimagedepth — Définit la profondeur de l'image
    • Gmagick::setimagedispose — Définit la méthode de disposition de l'image
    • Gmagick::setimagefilename — Définit le nom du fichier pour une image particulière d'une séquence
    • Gmagick::setimageformat — Définit le format d'une image
    • Gmagick::setimagegamma — Définit le gamma de l'image
    • Gmagick::setimagegreenprimary — Définit le point vert sur l'image chromatique primaire
    • Gmagick::setimageindex — Définit l'itérateur à la position spécifiée dans l'image de la liste pointée par son index
    • Gmagick::setimageinterlacescheme — Définit le schéma d'entrelacement de l'image
    • Gmagick::setimageiterations — Définit les itérations de l'image
    • Gmagick::setimageprofile — Ajoute un profile nommé à l'objet Gmagick
    • Gmagick::setimageredprimary — Définit le point rouge sur l'image chromatique primaire
    • Gmagick::setimagerenderingintent — Définit l'image de rendu
    • Gmagick::setimageresolution — Définit la résolution de l'image
    • Gmagick::setimagescene — Définit l'image de scène
    • Gmagick::setimagetype — Définit le type de l'image
    • Gmagick::setimageunits — Définit les unités à utiliser pour la résolution de l'image
    • Gmagick::setimagewhitepoint — Définit le point blanc sur l'image chromatique primaire
    • Gmagick::setsamplingfactors — Définit les facteurs d'échantillonnage de l'image
    • Gmagick::setsize — Définit la taille de l'objet Gmagick
    • Gmagick::shearimage — Crée un parallélogramme
    • Gmagick::solarizeimage — Applique un effet de solarisation à l'image
    • Gmagick::spreadimage — Déplace aléatoirement chaque pixel d'un bloc
    • Gmagick::stripimage — Supprime d'une image tous les profiles et tous les commentaires
    • Gmagick::swirlimage — Remous les pixels du centre de l'image
    • Gmagick::thumbnailimage — Modifie la taille d'une image
    • Gmagick::trimimage — Supprime les coins de l'image
    • Gmagick::write — Écrit une image dans un fichier
    • Gmagick::writeimage — Écrit une image dans un fichier
  • GmagickDraw — La classe GmagickDraw
    • GmagickDraw::annotate — Dessine un texte sur l'image
    • GmagickDraw::arc — Dessine un arc
    • GmagickDraw::bezier — Dessine une courbe de Bézier
    • GmagickDraw::ellipse — Dessine une ellipse sur l'image
    • GmagickDraw::getfillcolor — Retourne la couleur de remplissage
    • GmagickDraw::getfillopacity — Retourne l'opacité utilisée lors d'un dessin
    • GmagickDraw::getfont — Retourne la police de caractères
    • GmagickDraw::getfontsize — Retourne la taille du point d'une police de caractères
    • GmagickDraw::getfontstyle — Retourne le style de la police de caractères
    • GmagickDraw::getfontweight — Retourne le poids de la police de caractères
    • GmagickDraw::getstrokecolor — Retourne la couleur utilisée pour tracer les contours de l'objet
    • GmagickDraw::getstrokeopacity — Retourne l'opacité du tracé des contours de l'objet
    • GmagickDraw::getstrokewidth — Retourne la largeur utilisée pour les contours de l'objet
    • GmagickDraw::gettextdecoration — Retourne la décoration du texte
    • GmagickDraw::gettextencoding — Retourne le code du jeu de caractères à utiliser pour les annotations
    • GmagickDraw::line — Le but de la méthode line
    • GmagickDraw::point — Dessine un point
    • GmagickDraw::polygon — Dessine un polygone
    • GmagickDraw::polyline — Dessine une polyligne
    • GmagickDraw::rectangle — Dessine un rectangle
    • GmagickDraw::rotate — Applique une rotation
    • GmagickDraw::roundrectangle — Dessine un rectangle arrondi
    • GmagickDraw::scale — Ajuste le facteur d'échelle
    • GmagickDraw::setfillcolor — Définit la couleur de remplissage à utiliser pour dessiner des objets pleins
    • GmagickDraw::setfillopacity — Le but de la méthode setfillopacity
    • GmagickDraw::setfont — Définit la police de caractère à utiliser lors d'une annotation
    • GmagickDraw::setfontsize — Définit la taille, en points, de la police de caractère utilisée lors d'une annotation
    • GmagickDraw::setfontstyle — Définit le style de police de caractères à utiliser lors d'une annotation
    • GmagickDraw::setfontweight — Définit le poids de la police de caractères
    • GmagickDraw::setstrokecolor — Définit la couleur à utiliser pour tracer les contours de l'objet
    • GmagickDraw::setstrokeopacity — Spécifie l'opacité pour les contours de l'objet
    • GmagickDraw::setstrokewidth — Définit la largeur des contours de l'objet
    • GmagickDraw::settextdecoration — Spécifie une décoration
    • GmagickDraw::settextencoding — Spécifie le code du jeu de caractères à utiliser
  • GmagickPixel — La classe GmagickPixel
    • GmagickPixel::__construct — Le constructeur GmagickPixel
    • GmagickPixel::getcolor — Retourne la couleur
    • GmagickPixel::getcolorcount — Retourne le nombre de couleurs associées avec cette couleur
    • GmagickPixel::getcolorvalue — Récupère la valeur normalisée du canal de la couleur fournie
    • GmagickPixel::setcolor — Définit la couleur
    • GmagickPixel::setcolorvalue — Définit la valeur normalisée d'un des canaux


Introduction

Gmagick est une extension PHP pour créer, modifier et obtenir des informations méta sur des images en utilisant l'API GraphicsMagick.

GraphicsMagick s'enorgueillit d'être le couteau suisse du traitement de l'image. Il fonctionne avec quelques 88 formats majeurs, incluant des formats importants comme DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM, et TIFF.

Gmagick est composé d'une classe principale Gmagick, d'une classe GmagickDraw qui s'occupe du dessin et une classe GmagickPixel dont les instances représentent un seul pixiel d'une image (couleur, opacité).


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Configuration à l'exécution


Pré-requis

Cette extension fonctionne parfaitement avec GraphicsMagick version 1.4+ et PHP 5.1.3+. Gmagick devrait fonctionner avec les anciennes versions et ce, depuis la version 1.2.6 de GraphicsMagick 1.2.6 mais quelques fonctionnalités et formats n'y sont pas supportés. La version Windows de GraphicsMagick est disponible depuis le site web de GraphicsMagick. Pour connaître les différences entre ImageMagick et GraphicsMagick, lisez ceci : » FAQ .


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/gmagick.

Note: Le nom officiel de cette extension est gmagick.

Pour Windows, l'extension Gmagick est disponible depuis » cette page.


  • « Installation
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Configuration à l'exécution

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes relatives aux types de couleur
Gmagick::COLOR_BLACK (entier)
Noir
Gmagick::COLOR_BLUE (entier)
Bleu
Gmagick::COLOR_CYAN (entier)
Cyan
Gmagick::COLOR_GREEN (entier)
Vert
Gmagick::COLOR_RED (entier)
Rouge
Gmagick::COLOR_YELLOW (entier)
Jaune
Gmagick::COLOR_MAGENTA (entier)
Magenta
Gmagick::COLOR_OPACITY (entier)
Opacité
Gmagick::COLOR_ALPHA (entier)
Alpha
Gmagick::COLOR_FUZZ (entier)
Fuzz
Constantes relatives aux opérateurs composite
Gmagick::COMPOSITE_DEFAULT (entier)
L'opérateur composite par défaut
Gmagick::COMPOSITE_UNDEFINED (entier)
Opérateur composite indéfini
Gmagick::COMPOSITE_NO (entier)
Aucun opérateur composite de défini
Gmagick::COMPOSITE_ADD (entier)
Le résultat d'une image + une image
Gmagick::COMPOSITE_ATOP (entier)
Le résultat est la même forme qu'une image ; là où l'image composite obscurcie l'image, l'image de la forme la superpose.
Gmagick::COMPOSITE_BLEND (entier)
Mélange l'image
Gmagick::COMPOSITE_BUMPMAP (entier)
Identique à COMPOSITE_MULTIPLY, mise à part que le source est converti d'abord en niveau de gris.
Gmagick::COMPOSITE_CLEAR (entier)
Rend la cible de l'image transparent
Gmagick::COMPOSITE_COLORBURN (entier)
Noircit l'image de destination pour refléter l'image source
Gmagick::COMPOSITE_COLORDODGE (entier)
Éclaircit l'image de destination pour refléter l'image source
Gmagick::COMPOSITE_COLORIZE (entier)
Colorise l'image cible en utilisant l'image composite
Gmagick::COMPOSITE_COPYBLACK (entier)
Copie les noirs depuis la source vers la cible
Gmagick::COMPOSITE_COPYBLUE (entier)
Copie les bleus depuis la source vers la cible
Gmagick::COMPOSITE_COPY (entier)
Copie l'image source sur l'image cible
Gmagick::COMPOSITE_COPYCYAN (entier)
Copie le cyan depuis la source vers la cible
Gmagick::COMPOSITE_COPYGREEN (entier)
Copie le vert depuis la source vers la cible
Gmagick::COMPOSITE_COPYMAGENTA (entier)
Copie le magenta depuis la source vers la cible
Gmagick::COMPOSITE_COPYOPACITY (entier)
Copie l'opacité depuis la source vers la cible
Gmagick::COMPOSITE_COPYRED (entier)
Copie le rouge depuis la source vers la cible
Gmagick::COMPOSITE_COPYYELLOW (entier)
Copie le jaune depuis la source vers la cible
Gmagick::COMPOSITE_DARKEN (entier)
Assombrit l'image cible
Gmagick::COMPOSITE_DSTATOP (entier)
La partie de la destination située à l'intérieur de la source devient composite sur la source et remplace la destination
Gmagick::COMPOSITE_DST (entier)
La cible est conservée sans modification
Gmagick::COMPOSITE_DSTIN (entier)
La partie de la source remplace la cible
Gmagick::COMPOSITE_DSTOUT (entier)
La partie à l'exterieur de la source remplace la cible
Gmagick::COMPOSITE_DSTOVER (entier)
La cible remplace la source
Gmagick::COMPOSITE_DIFFERENCE (entier)
Soustrait la plus sombre des deux couleurs élémentaires depuis la plus claire
Gmagick::COMPOSITE_DISPLACE (entier)
Décale les pixels de l'image cible tel que défini par la source
Gmagick::COMPOSITE_DISSOLVE (entier)
Dissous la source dans la cible
Gmagick::COMPOSITE_EXCLUSION (entier)
Produit un effet similaire à Gmagick::COMPOSITE_DIFFERENCE, mais apparaît avec un contraste plus faible
Gmagick::COMPOSITE_HARDLIGHT (entier)
Multiplie ou superpose les couleurs, en fonction de la valeur de couleur de source
Gmagick::COMPOSITE_HUE (entier)
Modifie la teinte de la cible telle que définie par la source
Gmagick::COMPOSITE_IN (entier)
Effectue un composite de la source dans la cible
Gmagick::COMPOSITE_LIGHTEN (entier)
Eclaircit la cible telle que définie par la source
Gmagick::COMPOSITE_LUMINIZE (entier)
Illumine la cible telle que définie par la source
Gmagick::COMPOSITE_MINUS (entier)
Soustrait la source de la cible
Gmagick::COMPOSITE_MODULATE (entier)
Module la luminosité cible, la saturation et la teinte tel que défini par la source
Gmagick::COMPOSITE_MULTIPLY (entier)
Multiplie la cible à la source
Gmagick::COMPOSITE_OUT (entier)
Effectue un composite des parties extérieures de la source sur la cible
Gmagick::COMPOSITE_OVER (entier)
Effectue un composite par dessus la cible
Gmagick::COMPOSITE_OVERLAY (entier)
Supperpose la source sur la cible
Gmagick::COMPOSITE_PLUS (entier)
Ajoute la source à la cible
Gmagick::COMPOSITE_REPLACE (entier)
Remplace la cible par la source
Gmagick::COMPOSITE_SATURATE (entier)
Sature la cible tel que défini par la source
Gmagick::COMPOSITE_SCREEN (entier)
La source et la destination sont complémentés, puis multipliés, puis remplace la destination
Gmagick::COMPOSITE_SOFTLIGHT (entier)
Assombrie ou éclaire les couleurs, suivant la source
Gmagick::COMPOSITE_SRCATOP (entier)
La partie de la source se trouvant dans la destination est composé sur la destination
Gmagick::COMPOSITE_SRC (entier)
La source est copiée vers la destination
Gmagick::COMPOSITE_SRCIN (entier)
La partie de la source se trouvant dans la destination remplace la destination
Gmagick::COMPOSITE_SRCOUT (entier)
La partie de la source se trouvant en dehors de la destination remplace la destination
Gmagick::COMPOSITE_SRCOVER (entier)
La source remplace la destination
Gmagick::COMPOSITE_SUBTRACT (entier)
Soustrait les couleurs de l'image source dans l'image de destination
Gmagick::COMPOSITE_THRESHOLD (entier)
La source est composée de la cible, telle que définie par la source
Gmagick::COMPOSITE_XOR (entier)
La partie de la source qui se trouve en dehors de la destination est combinée avec la partie de la destination se trouvant en dehors de la source
Montage Mode constants
Gmagick::MONTAGEMODE_FRAME (entier)
Gmagick::MONTAGEMODE_UNFRAME (entier)
Gmagick::MONTAGEMODE_CONCATENATE (entier)
Constantes de style
Gmagick::STYLE_NORMAL (entier)
Gmagick::STYLE_ITALIC (entier)
Gmagick::STYLE_OBLIQUE (entier)
Gmagick::STYLE_ANY (entier)
Constantes de filtre
Gmagick::FILTER_UNDEFINED (entier)
Gmagick::FILTER_POINT (entier)
Gmagick::FILTER_BOX (entier)
Gmagick::FILTER_TRIANGLE (entier)
Gmagick::FILTER_HERMITE (entier)
Gmagick::FILTER_HANNING (entier)
Gmagick::FILTER_HAMMING (entier)
Gmagick::FILTER_BLACKMAN (entier)
Gmagick::FILTER_GAUSSIAN (entier)
Gmagick::FILTER_QUADRATIC (entier)
Gmagick::FILTER_CUBIC (entier)
Gmagick::FILTER_CATROM (entier)
Gmagick::FILTER_MITCHELL (entier)
Gmagick::FILTER_LANCZOS (entier)
Gmagick::FILTER_BESSEL (entier)
Gmagick::FILTER_SINC (entier)
Constantes de type d'image
Gmagick::IMGTYPE_UNDEFINED (entier)
Gmagick::IMGTYPE_BILEVEL (entier)
Gmagick::IMGTYPE_GRAYSCALE (entier)
Gmagick::IMGTYPE_GRAYSCALEMATTE (entier)
Gmagick::IMGTYPE_PALETTE (entier)
Gmagick::IMGTYPE_PALETTEMATTE (entier)
Gmagick::IMGTYPE_TRUECOLOR (entier)
Gmagick::IMGTYPE_TRUECOLORMATTE (entier)
Gmagick::IMGTYPE_COLORSEPARATION (entier)
Gmagick::IMGTYPE_COLORSEPARATIONMATTE (entier)
Gmagick::IMGTYPE_OPTIMIZE (entier)
Constantes de résolution
Gmagick::RESOLUTION_UNDEFINED (entier)
Gmagick::RESOLUTION_PIXELSPERINCH (entier)
Gmagick::RESOLUTION_PIXELSPERCENTIMETER (entier)
Constantes de compression
Gmagick::COMPRESSION_UNDEFINED (entier)
Gmagick::COMPRESSION_NO (entier)
Gmagick::COMPRESSION_BZIP (entier)
Gmagick::COMPRESSION_FAX (entier)
Gmagick::COMPRESSION_GROUP4 (entier)
Gmagick::COMPRESSION_JPEG (entier)
Gmagick::COMPRESSION_JPEG2000 (entier)
Gmagick::COMPRESSION_LOSSLESSJPEG (entier)
Gmagick::COMPRESSION_LZW (entier)
Gmagick::COMPRESSION_RLE (entier)
Gmagick::COMPRESSION_ZIP (entier)
Constantes de dessin
Gmagick::PAINT_POINT (entier)
Gmagick::PAINT_REPLACE (entier)
Gmagick::PAINT_FLOODFILL (entier)
Gmagick::PAINT_FILLTOBORDER (entier)
Gmagick::PAINT_RESET (entier)
Constantes de gravité
Gmagick::GRAVITY_NORTHWEST (entier)
Gmagick::GRAVITY_NORTH (entier)
Gmagick::GRAVITY_NORTHEAST (entier)
Gmagick::GRAVITY_WEST (entier)
Gmagick::GRAVITY_CENTER (entier)
Gmagick::GRAVITY_EAST (entier)
Gmagick::GRAVITY_SOUTHWEST (entier)
Gmagick::GRAVITY_SOUTH (entier)
Gmagick::GRAVITY_SOUTHEAST (entier)
Constantes d'étirement
Gmagick::STRETCH_NORMAL (entier)
Gmagick::STRETCH_ULTRACONDENSED (entier)
Gmagick::STRETCH_CONDENSED (entier)
Gmagick::STRETCH_SEMICONDENSED (entier)
Gmagick::STRETCH_SEMIEXPANDED (entier)
Gmagick::STRETCH_EXPANDED (entier)
Gmagick::STRETCH_EXTRAEXPANDED (entier)
Gmagick::STRETCH_ULTRAEXPANDED (entier)
Gmagick::STRETCH_ANY (entier)
Constantes d'alignement
Gmagick::ALIGN_UNDEFINED (entier)
Gmagick::ALIGN_LEFT (entier)
Gmagick::ALIGN_CENTER (entier)
Gmagick::ALIGN_RIGHT (entier)
Constantes de décoration
Gmagick::DECORATION_NO (entier)
Gmagick::DECORATION_UNDERLINE (entier)
Gmagick::DECORATION_OVERLINE (entier)
Gmagick::DECORATION_LINETROUGH (entier)
Constantes de bruit
Gmagick::NOISE_UNIFORM (entier)
Gmagick::NOISE_GAUSSIAN (entier)
Gmagick::NOISE_MULTIPLICATIVEGAUSSIAN (entier)
Gmagick::NOISE_IMPULSE (entier)
Gmagick::NOISE_LAPLACIAN (entier)
Gmagick::NOISE_POISSON (entier)
Constantes de canal
Gmagick::CHANNEL_UNDEFINED (entier)
Gmagick::CHANNEL_RED (entier)
Gmagick::CHANNEL_GRAY (entier)
Gmagick::CHANNEL_CYAN (entier)
Gmagick::CHANNEL_GREEN (entier)
Gmagick::CHANNEL_MAGENTA (entier)
Gmagick::CHANNEL_BLUE (entier)
Gmagick::CHANNEL_YELLOW (entier)
Gmagick::CHANNEL_ALPHA (entier)
Gmagick::CHANNEL_OPACITY (entier)
Gmagick::CHANNEL_MATTE (entier)
Gmagick::CHANNEL_BLACK (entier)
Gmagick::CHANNEL_INDEX (entier)
Gmagick::CHANNEL_ALL (entier)
Constantes de mesure
Gmagick::METRIC_UNDEFINED (entier)
Gmagick::METRIC_MEANABSOLUTEERROR (entier)
Gmagick::METRIC_MEANSQUAREERROR (entier)
Gmagick::METRIC_PEAKABSOLUTEERROR (entier)
Gmagick::METRIC_PEAKSIGNALTONOISERATIO (entier)
Gmagick::METRIC_ROOTMEANSQUAREDERROR (entier)
Constantes de pixel
Gmagick::PIXEL_CHAR (entier)
Gmagick::PIXEL_DOUBLE (entier)
Gmagick::PIXEL_FLOAT (entier)
Gmagick::PIXEL_INTEGER (entier)
Gmagick::PIXEL_LONG (entier)
Gmagick::PIXEL_QUANTUM (entier)
Gmagick::PIXEL_SHORT (entier)
Constantes d'espace de couleurs
Gmagick::COLORSPACE_UNDEFINED (entier)
Gmagick::COLORSPACE_RGB (entier)
Gmagick::COLORSPACE_GRAY (entier)
Gmagick::COLORSPACE_TRANSPARENT (entier)
Gmagick::COLORSPACE_OHTA (entier)
Gmagick::COLORSPACE_LAB (entier)
Gmagick::COLORSPACE_XYZ (entier)
Gmagick::COLORSPACE_YCBCR (entier)
Gmagick::COLORSPACE_YCC (entier)
Gmagick::COLORSPACE_YIQ (entier)
Gmagick::COLORSPACE_YPBPR (entier)
Gmagick::COLORSPACE_YUV (entier)
Gmagick::COLORSPACE_CMYK (entier)
Gmagick::COLORSPACE_SRGB (entier)
Gmagick::COLORSPACE_HSB (entier)
Gmagick::COLORSPACE_HSL (entier)
Gmagick::COLORSPACE_HWB (entier)
Gmagick::COLORSPACE_REC601LUMA (entier)
Gmagick::COLORSPACE_REC709LUMA (entier)
Gmagick::COLORSPACE_LOG (entier)
Constantes de méthode pour les pixels virtuels
Gmagick::VIRTUALPIXELMETHOD_UNDEFINED (entier)
Gmagick::VIRTUALPIXELMETHOD_BACKGROUND (entier)
Gmagick::VIRTUALPIXELMETHOD_CONSTANT (entier)
Gmagick::VIRTUALPIXELMETHOD_EDGE (entier)
Gmagick::VIRTUALPIXELMETHOD_MIRROR (entier)
Gmagick::VIRTUALPIXELMETHOD_TILE (entier)
Gmagick::VIRTUALPIXELMETHOD_TRANSPARENT (entier)
Constantes de prévisualisation
Gmagick::PREVIEW_UNDEFINED (entier)
Gmagick::PREVIEW_ROTATE (entier)
Gmagick::PREVIEW_SHEAR (entier)
Gmagick::PREVIEW_ROLL (entier)
Gmagick::PREVIEW_HUE (entier)
Gmagick::PREVIEW_SATURATION (entier)
Gmagick::PREVIEW_BRIGHTNESS (entier)
Gmagick::PREVIEW_GAMMA (entier)
Gmagick::PREVIEW_SPIFF (entier)
Gmagick::PREVIEW_DULL (entier)
Gmagick::PREVIEW_GRAYSCALE (entier)
Gmagick::PREVIEW_QUANTIZE (entier)
Gmagick::PREVIEW_DESPECKLE (entier)
Gmagick::PREVIEW_REDUCENOISE (entier)
Gmagick::PREVIEW_ADDNOISE (entier)
Gmagick::PREVIEW_SHARPEN (entier)
Gmagick::PREVIEW_BLUR (entier)
Gmagick::PREVIEW_THRESHOLD (entier)
Gmagick::PREVIEW_EDGEDETECT (entier)
Gmagick::PREVIEW_SPREAD (entier)
Gmagick::PREVIEW_SOLARIZE (entier)
Gmagick::PREVIEW_SHADE (entier)
Gmagick::PREVIEW_RAISE (entier)
Gmagick::PREVIEW_SEGMENT (entier)
Gmagick::PREVIEW_SWIRL (entier)
Gmagick::PREVIEW_IMPLODE (entier)
Gmagick::PREVIEW_WAVE (entier)
Gmagick::PREVIEW_OILPAINT (entier)
Gmagick::PREVIEW_CHARCOALDRAWING (entier)
Gmagick::PREVIEW_JPEG (entier)
Constantes de rendu
Gmagick::RENDERINGINTENT_UNDEFINED (entier)
Gmagick::RENDERINGINTENT_SATURATION (entier)
Gmagick::RENDERINGINTENT_PERCEPTUAL (entier)
Gmagick::RENDERINGINTENT_ABSOLUTE (entier)
Gmagick::RENDERINGINTENT_RELATIVE (entier)
Constantes de règle de remplissage
Gmagick::FILLRULE_UNDEFINED (entier)
Gmagick::FILLRULE_EVENODD (entier)
Gmagick::FILLRULE_NONZERO (entier)
Constantes Pathunit
Gmagick::PATHUNITS_UNDEFINED (entier)
Gmagick::PATHUNITS_USERSPACE (entier)
Gmagick::PATHUNITS_USERSPACEONUSE (entier)
Gmagick::PATHUNITS_OBJECTBOUNDINGBOX (entier)
Constantes Linecap
Gmagick::LINECAP_UNDEFINED (entier)
Gmagick::LINECAP_BUTT (entier)
Gmagick::LINECAP_ROUND (entier)
Gmagick::LINECAP_SQUARE (entier)
Constantes de jointure de lignes
Gmagick::LINEJOIN_UNDEFINED (entier)
Gmagick::LINEJOIN_MITER (entier)
Gmagick::LINEJOIN_ROUND (entier)
Gmagick::LINEJOIN_BEVEL (entier)
Constantes de type de ressources
Gmagick::RESOURCETYPE_UNDEFINED (entier)
Gmagick::RESOURCETYPE_AREA (entier)
Gmagick::RESOURCETYPE_DISK (entier)
Gmagick::RESOURCETYPE_FILE (entier)
Gmagick::RESOURCETYPE_MAP (entier)
Gmagick::RESOURCETYPE_MEMORY (entier)
Constantes d'orientation
Gmagick::ORIENTATION_UNDEFINED (entier)
Gmagick::ORIENTATION_TOPLEFT (entier)
Gmagick::ORIENTATION_TOPRIGHT (entier)
Gmagick::ORIENTATION_BOTTOMRIGHT (entier)
Gmagick::ORIENTATION_BOTTOMLEFT (entier)
Gmagick::ORIENTATION_LEFTTOP (entier)
Gmagick::ORIENTATION_RIGHTTOP (entier)
Gmagick::ORIENTATION_RIGHTBOTTOM (entier)
Gmagick::ORIENTATION_LEFTBOTTOM (entier)


Exemples

Ce qui suit montre quelques opérations communes avec Gmagick.

Exemple #1 Gmagick Example

<?php
//Instantiation d'un nouvel objet Gmagick
$image = new Gmagick('example.jpg');

// Crée une miniature depuis l'image chargée. 0 pour un des axes préservera le ratio
$image->thumbnailImage(100, 0);

// Crée une bordure autour de l'image, puis, simule la façon dont sera rendue l'image
// après un rendu à la peinture à l'huile.
// Notez le chaînage des méthodes supporté par Gmagick
$image->borderImage("yellow", 8, 8)->oilPaintImage(0.3);

// Ecrit l'image courante dans un fichier
$image->write('example_thumbnail.jpg');
?>


La classe Gmagick

(PECL gmagick >= Unknown)

Introduction

Synopsis de la classe

Gmagick {
/* Méthodes */
public Gmagick addimage ( Gmagick $Gmagick )
public Gmagick addnoiseimage ( int $NOISE )
public Gmagick annotateimage ( GmagickDraw $GmagickDraw , float $x , float $y , float $angle , string $text )
public Gmagick blurimage ( float $radius , float $sigma [, int $channel ] )
public Gmagick borderimage ( GmagickPixel $color , int $width , int $height )
public Gmagick charcoalimage ( float $radius , float $sigma )
public Gmagick chopimage ( int $width , int $height , int $x , int $y )
public Gmagick clear ( void )
public Gmagick commentimage ( string $comment )
public Gmagick compositeimage ( Gmagick $source , int $COMPOSE , int $x , int $y )
public __construct ([ string $filename ] )
public Gmagick cropimage ( int $width , int $height , int $x , int $y )
public Gmagick cropthumbnailimage ( int $width , int $height )
public Gmagick current ( void )
public Gmagick cyclecolormapimage ( int $displace )
public void deconstructimages ( void )
public Gmagick despeckleimage ( void )
public Gmagick destroy ( void )
public Gmagick drawimage ( GmagickDraw $GmagickDraw )
public Gmagick edgeimage ( float $radius )
public Gmagick embossimage ( float $radius , float $sigma )
public Gmagick enhanceimage ( void )
public Gmagick equalizeimage ( void )
public Gmagick flipimage ( void )
public Gmagick flopimage ( void )
public Gmagick frameimage ( GmagickPixel $color , int $width , int $height , int $inner_bevel , int $outer_bevel )
public Gmagick gammaimage ( float $gamma )
public string getcopyright ( void )
public string getfilename ( void )
public void getimagebackgroundcolor ( void )
public array getimageblueprimary ( void )
public void getimagebordercolor ( void )
public int getimagechanneldepth ( int $channel_type )
public int getimagecolors ( void )
public int getimagecolorspace ( void )
public int getimagecompose ( void )
public int getimagedelay ( void )
public int getimagedepth ( void )
public int getimagedispose ( void )
public array getimageextrema ( void )
public string getimagefilename ( void )
public string getimageformat ( void )
public float getimagegamma ( void )
public array getimagegreenprimary ( void )
public int getimageheight ( void )
public array getimagehistogram ( void )
public int getimageindex ( void )
public int getimageinterlacescheme ( void )
public int getimageiterations ( void )
public int getimagematte ( void )
public void getimagemattecolor ( void )
public string getimageprofile ( string $name )
public array getimageredprimary ( void )
public int getimagerenderingintent ( void )
public array getimageresolution ( void )
public int getimagescene ( void )
public string getimagesignature ( void )
public int getimagetype ( void )
public int getimageunits ( void )
public array getimagewhitepoint ( void )
public int getimagewidth ( void )
public string getpackagename ( void )
public array getquantumdepth ( void )
public string getreleasedate ( void )
public array getsamplingfactors ( void )
public array getsize ( void )
public array getversion ( void )
public mixed hasnextimage ( void )
public mixed haspreviousimage ( void )
public mixed implodeimage ( float $radius )
public mixed labelimage ( string $label )
public mixed levelimage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Gmagick::CHANNEL_DEFAULT ] )
public mixed magnifyimage ( void )
public Gmagick mapimage ( gmagick $gmagick , bool $dither )
public void medianfilterimage ( float $radius )
public void minifyimage ( void )
public void modulateimage ( float $brightness , float $saturation , float $hue )
public void motionblurimage ( float $radius , float $sigma , float $angle )
public void newimage ( int $width , int $height , string $background [, string $format ] )
public bool nextimage ( void )
public void normalizeimage ([ int $channel ] )
public void oilpaintimage ( float $radius )
public bool previousimage ( void )
public void profileimage ( string $name , string $profile )
public void quantizeimage ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError )
public void quantizeimages ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError )
public array queryfontmetrics ( GmagickDraw $draw , string $text )
public array queryfonts ([ string $pattern = "*" ] )
public array queryformats ([ string $pattern = "*" ] )
public void radialblurimage ( float $angle [, int $channel = Gmagick::CHANNEL_DEFAULT ] )
public void raiseimage ( int $width , int $height , int $x , int $y , bool $raise )
public void read ( string $filename )
public void readimage ( string $filename )
public void readimageblob ( string $imageContents [, string $filename ] )
public void readimagefile ( resource $fp [, string $filename ] )
public void reducenoiseimage ( float $radius )
public void removeimage ( void )
public string removeimageprofile ( string $name )
public void resampleimage ( float $xResolution , float $yResolution , int $filter , float $blur )
public void resizeimage ( int $width , int $height , int $filter , float $blur [, bool $fit = false ] )
public void rollimage ( int $x , int $y )
public Gmagick rotateimage ( mixed $color , float $degrees )
public Gmagick scaleimage ( int $width , int $height [, bool $fit = false ] )
public Gmagick separateimagechannel ( int $channel )
Gmagick setCompressionQuality ( int $quality = 75 )
public Gmagick setfilename ( string $filename )
public Gmagick setimagebackgroundcolor ( GmagickPixel $color )
public Gmagick setimageblueprimary ( float $x , float $y )
public Gmagick setimagebordercolor ( GmagickPixel $color )
public Gmagick setimagechanneldepth ( int $channel , int $depth )
public Gmagick setimagecolorspace ( int $colorspace )
public Gmagick setimagecompose ( int $composite )
public Gmagick setimagedelay ( int $delay )
public Gmagick setimagedepth ( int $depth )
public Gmagick setimagedispose ( int $disposeType )
public Gmagick setimagefilename ( string $filename )
public Gmagick setimageformat ( string $imageFormat )
public Gmagick setimagegamma ( float $gamma )
public Gmagick setimagegreenprimary ( float $x , float $y )
public Gmagick setimageindex ( int $index )
public Gmagick setimageinterlacescheme ( int $interlace )
public Gmagick setimageiterations ( int $iterations )
public Gmagick setimageprofile ( string $name , string $profile )
public Gmagick setimageredprimary ( float $x , float $y )
public Gmagick setimagerenderingintent ( int $rendering_intent )
public Gmagick setimageresolution ( float $xResolution , float $yResolution )
public Gmagick setimagescene ( int $scene )
public Gmagick setimagetype ( int $imgType )
public Gmagick setimageunits ( int $resolution )
public Gmagick setimagewhitepoint ( float $x , float $y )
public Gmagick setsamplingfactors ( array $factors )
public Gmagick setsize ( int $columns , int $rows )
public Gmagick shearimage ( mixed $color , float $xShear , float $yShear )
public Gmagick solarizeimage ( int $threshold )
public Gmagick spreadimage ( float $radius )
public Gmagick stripimage ( void )
public Gmagick swirlimage ( float $degrees )
public Gmagick thumbnailimage ( int $width , int $height [, bool $fit = false ] )
public Gmagick trimimage ( float $fuzz )
public void write ( string $filename )
public Gmagick writeimage ( string $filename [, bool $all_frames = false ] )
}

Sommaire

  • Gmagick::addimage — Ajoute une nouvelle image à la liste des images de l'objet Gmagick
  • Gmagick::addnoiseimage — Ajoute du bruit aléatoirement dans l'image
  • Gmagick::annotateimage — Annote une image avec du texte
  • Gmagick::blurimage — Ajoute un filtre flou à l'image
  • Gmagick::borderimage — Ajoute une bordure à l'image
  • Gmagick::charcoalimage — Simule un dessin au fusain
  • Gmagick::chopimage — Supprime une région de l'image
  • Gmagick::clear — Efface toutes les ressources associées à l'objet Gmagick
  • Gmagick::commentimage — Ajoute un commentaire à l'image
  • Gmagick::compositeimage — Assemble 2 images
  • Gmagick::__construct — Le constructeur Gmagick
  • Gmagick::cropimage — Extrait une portion d'une image
  • Gmagick::cropthumbnailimage — Crée une miniature recadrée
  • Gmagick::current — Le contexte courante
  • Gmagick::cyclecolormapimage — Déplace la carte des couleurs d'une image
  • Gmagick::deconstructimages — Retourne les pixels différents entre des images
  • Gmagick::despeckleimage — Le but de despeckleimage
  • Gmagick::destroy — Le but de la méthode destroy
  • Gmagick::drawimage — Envoi l'objet GmagickDraw dans l'image courante
  • Gmagick::edgeimage — Améliore les bords intérieurs de l'image
  • Gmagick::embossimage — Retourne une image en niveau de gris avec un effet à 3 dimensions
  • Gmagick::enhanceimage — Améliore la qualité d'une image contenant du bruit
  • Gmagick::equalizeimage — Égalise l'histogramme de l'image
  • Gmagick::flipimage — Crée une image miroir verticale
  • Gmagick::flopimage — Le but de la méthode flopimage
  • Gmagick::frameimage — Ajoute une bordure afin de simuler un effet 3D
  • Gmagick::gammaimage — Corrige le gamma d'une image
  • Gmagick::getcopyright — Retourne le copyright de l'API GraphicsMagick
  • Gmagick::getfilename — Retourne le nom du fichier associé avec une séquence d'image
  • Gmagick::getimagebackgroundcolor — Retourne la couleur d'arrière plan de l'image
  • Gmagick::getimageblueprimary — Retourne le point bleu primaire chromatique
  • Gmagick::getimagebordercolor — Retourne la couleur du bord de l'image
  • Gmagick::getimagechanneldepth — Récupère la profondeur d'un canal particulier de l'image
  • Gmagick::getimagecolors — Retourne la couleur de l'indice de la carte des couleurs spécifiée
  • Gmagick::getimagecolorspace — Récupère l'espace colorimétrique de l'image
  • Gmagick::getimagecompose — Retourne l'opérateur de composition associé avec l'image
  • Gmagick::getimagedelay — Récupère le délai de l'image
  • Gmagick::getimagedepth — Récupère la profondeur de l'image
  • Gmagick::getimagedispose — Récupère la méthode de disposition de l'image
  • Gmagick::getimageextrema — Récupère les extrémités de l'image
  • Gmagick::getimagefilename — Récupère le nom du fichier d'une image particulière dans une séquence
  • Gmagick::getimageformat — Récupère le format d'une image particulière dans une séquence
  • Gmagick::getimagegamma — Récupère le gamma de l'image
  • Gmagick::getimagegreenprimary — Récupère le point chromatique primaire vert
  • Gmagick::getimageheight — Récupère la hauteur de l'image
  • Gmagick::getimagehistogram — Récupère l'histogramme de l'image
  • Gmagick::getimageindex — Récupère l'indice de l'image active courante
  • Gmagick::getimageinterlacescheme — Récupère le schéma d'entrelacement de l'image
  • Gmagick::getimageiterations — Récupère les itérations de l'image
  • Gmagick::getimagematte — Vérifie si l'image a un canal mate
  • Gmagick::getimagemattecolor — Récupère la couleur mate de l'image
  • Gmagick::getimageprofile — Récupère le nom du profile de l'image
  • Gmagick::getimageredprimary — Récupère le point chromatique primaire rouge
  • Gmagick::getimagerenderingintent — Récupère l'image de rendu
  • Gmagick::getimageresolution — Récupère la résolution de l'image
  • Gmagick::getimagescene — Récupère la scène de l'image
  • Gmagick::getimagesignature — Génère la signature SHA-256 de l'image
  • Gmagick::getimagetype — Récupère le type potentiel d'une image
  • Gmagick::getimageunits — Récupère les unités utilisées pour la résolution de l'image
  • Gmagick::getimagewhitepoint — Récupère le point chromatique blanc
  • Gmagick::getimagewidth — Récupère la largeur de l'image
  • Gmagick::getpackagename — Récupère le nom du paquet GraphicsMagick
  • Gmagick::getquantumdepth — Récupère la profondeur du quantum Gmagick
  • Gmagick::getreleasedate — Récupère la date de sortie de la version courante de GraphicsMagick
  • Gmagick::getsamplingfactors — Récupère le facteur d'échantillonnage horizontal et vertical
  • Gmagick::getsize — Récupère la taille associée avec l'objet Gmagick
  • Gmagick::getversion — Récupère la version de l'API GraphicsMagick
  • Gmagick::hasnextimage — Vérifie si l'objet contient au moins une autre image
  • Gmagick::haspreviousimage — Vérifie si l'objet contient une image précédente
  • Gmagick::implodeimage — Crée une image à partir d'une copie
  • Gmagick::labelimage — Ajoute un libellé à une image
  • Gmagick::levelimage — Ajuste les niveaux d'une image
  • Gmagick::magnifyimage — Retaille par 2 une image en conservant les proportions
  • Gmagick::mapimage — Remplace les couleurs d'une image avec les couleurs les plus proches d'une image de référence
  • Gmagick::medianfilterimage — Applique un filtre digital
  • Gmagick::minifyimage — Réduit une image de moitié en gardant les proportions
  • Gmagick::modulateimage — Contrôle la luminosité, la saturation et la teinte
  • Gmagick::motionblurimage — Simule un flou cinétique
  • Gmagick::newimage — Crée une nouvelle image
  • Gmagick::nextimage — Se déplace sur l'image suivante
  • Gmagick::normalizeimage — Améliore le contraste de la couleur de l'image
  • Gmagick::oilpaintimage — Simule une peinture à l'huile
  • Gmagick::previousimage — Se déplace vers l'image précédente de l'objet
  • Gmagick::profileimage — Ajoute ou supprime un profile d'une image
  • Gmagick::quantizeimage — Analyse les couleurs d'une image de référence
  • Gmagick::quantizeimages — Le but de quantizeimages
  • Gmagick::queryfontmetrics — Retourne un tableau représentant la métrique pour la police de caractères
  • Gmagick::queryfonts — Retourne les polices de caractères configurées
  • Gmagick::queryformats — Retourne les formats supportés par Gmagick
  • Gmagick::radialblurimage — Brouille une image suivant un rayon
  • Gmagick::raiseimage — Crée un un bouton avec un effet 3D
  • Gmagick::read — Lit une image depuis un fichier
  • Gmagick::readimage — Lit une image depuis un fichier
  • Gmagick::readimageblob — Lit une image depuis une chaîne binaire
  • Gmagick::readimagefile — Le but de readimagefile
  • Gmagick::reducenoiseimage — Lisse les contours de l'image
  • Gmagick::removeimage — Supprime une image depuis la liste des images
  • Gmagick::removeimageprofile — Supprime un profil nommé de l'image
  • Gmagick::resampleimage — Échantillonne l'image à la résolution désirée
  • Gmagick::resizeimage — Redimensionne une image
  • Gmagick::rollimage — Repositionne une image
  • Gmagick::rotateimage — Effectue une rotation de l'image
  • Gmagick::scaleimage — Met à l'échelle une image
  • Gmagick::separateimagechannel — Sépare un canal depuis une image
  • Gmagick::setCompressionQuality — Sets the object's default compression quality
  • Gmagick::setfilename — Définit le nom de fichier avant la lecture ou l'écriture d'une image
  • Gmagick::setimagebackgroundcolor — Définit la couleur d'arrière-plan de l'image
  • Gmagick::setimageblueprimary — Définit le point bleu primaire de l'image chromatique
  • Gmagick::setimagebordercolor — Définit la couleur de la bordure de l'image
  • Gmagick::setimagechanneldepth — Définit la profondeur d'un canal particulier de l'image
  • Gmagick::setimagecolorspace — Définit l'espace de couleurs de l'image
  • Gmagick::setimagecompose — Définit l'opérateur de composition de l'image
  • Gmagick::setimagedelay — Définit le délai de l'image
  • Gmagick::setimagedepth — Définit la profondeur de l'image
  • Gmagick::setimagedispose — Définit la méthode de disposition de l'image
  • Gmagick::setimagefilename — Définit le nom du fichier pour une image particulière d'une séquence
  • Gmagick::setimageformat — Définit le format d'une image
  • Gmagick::setimagegamma — Définit le gamma de l'image
  • Gmagick::setimagegreenprimary — Définit le point vert sur l'image chromatique primaire
  • Gmagick::setimageindex — Définit l'itérateur à la position spécifiée dans l'image de la liste pointée par son index
  • Gmagick::setimageinterlacescheme — Définit le schéma d'entrelacement de l'image
  • Gmagick::setimageiterations — Définit les itérations de l'image
  • Gmagick::setimageprofile — Ajoute un profile nommé à l'objet Gmagick
  • Gmagick::setimageredprimary — Définit le point rouge sur l'image chromatique primaire
  • Gmagick::setimagerenderingintent — Définit l'image de rendu
  • Gmagick::setimageresolution — Définit la résolution de l'image
  • Gmagick::setimagescene — Définit l'image de scène
  • Gmagick::setimagetype — Définit le type de l'image
  • Gmagick::setimageunits — Définit les unités à utiliser pour la résolution de l'image
  • Gmagick::setimagewhitepoint — Définit le point blanc sur l'image chromatique primaire
  • Gmagick::setsamplingfactors — Définit les facteurs d'échantillonnage de l'image
  • Gmagick::setsize — Définit la taille de l'objet Gmagick
  • Gmagick::shearimage — Crée un parallélogramme
  • Gmagick::solarizeimage — Applique un effet de solarisation à l'image
  • Gmagick::spreadimage — Déplace aléatoirement chaque pixel d'un bloc
  • Gmagick::stripimage — Supprime d'une image tous les profiles et tous les commentaires
  • Gmagick::swirlimage — Remous les pixels du centre de l'image
  • Gmagick::thumbnailimage — Modifie la taille d'une image
  • Gmagick::trimimage — Supprime les coins de l'image
  • Gmagick::write — Écrit une image dans un fichier
  • Gmagick::writeimage — Écrit une image dans un fichier


Ajoute une nouvelle image à la liste des images de l'objet Gmagick

  • « Gmagick
  • Gmagick::addnoiseimage »
  • PHP Manual
  • Gmagick
  • Ajoute une nouvelle image à la liste des images de l'objet Gmagick

Gmagick::addimage

(PECL gmagick >= Unknown)

Gmagick::addimage — Ajoute une nouvelle image à la liste des images de l'objet Gmagick

Description

public Gmagick Gmagick::addimage ( Gmagick $Gmagick )

Ajoute une nouvelle image à l'objet Gmagick depuis la position courante de l'objet source. Après l'opération, l'itérateur de position est déplacé à la fin de la liste.

Liste de paramètres

source

L'objet Gmagick source

Valeurs de retour

L'objet Gmagick contenant la nouvelle image chargé.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Ajoute du bruit aléatoirement dans l'image

  • « Gmagick::addimage
  • Gmagick::annotateimage »
  • PHP Manual
  • Gmagick
  • Ajoute du bruit aléatoirement dans l'image

Gmagick::addnoiseimage

(PECL gmagick >= Unknown)

Gmagick::addnoiseimage — Ajoute du bruit aléatoirement dans l'image

Description

public Gmagick Gmagick::addnoiseimage ( int $NOISE )

Ajoute du bruit aléatoirement dans l'image.

Liste de paramètres

noise_type

Le type de bruit. Reportez-vous à la liste des constantes relatives au bruit.

Valeurs de retour

L'objet Gmagick dont le bruit a été ajouté.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Annote une image avec du texte

  • « Gmagick::addnoiseimage
  • Gmagick::blurimage »
  • PHP Manual
  • Gmagick
  • Annote une image avec du texte

Gmagick::annotateimage

(PECL gmagick >= Unknown)

Gmagick::annotateimage — Annote une image avec du texte

Description

public Gmagick Gmagick::annotateimage ( GmagickDraw $GmagickDraw , float $x , float $y , float $angle , string $text )

Annote une image avec du texte.

Liste de paramètres

GmagickDraw

L'objet GmagickDraw contenant la configuration afin de dessiner le texte

x

Position horizontale, en pixels, du bord gauche du texte

y

Position verticale, en pixels, du bas du texte

angle

L'angle utilisé pour écrire le texte

text

Le texte à dessiner

Valeurs de retour

L'objet Gmagick contenant l'annotation.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Ajoute un filtre flou à l'image

  • « Gmagick::annotateimage
  • Gmagick::borderimage »
  • PHP Manual
  • Gmagick
  • Ajoute un filtre flou à l'image

Gmagick::blurimage

(PECL gmagick >= Unknown)

Gmagick::blurimage — Ajoute un filtre flou à l'image

Description

public Gmagick Gmagick::blurimage ( float $radius , float $sigma [, int $channel ] )

Ajoute un filtre flou à l'image.

Liste de paramètres

radius

Rayon utilisé pour le flou

sigma

Déviation standard

Valeurs de retour

L'objet Gmagick flouté.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Ajoute une bordure à l'image

  • « Gmagick::blurimage
  • Gmagick::charcoalimage »
  • PHP Manual
  • Gmagick
  • Ajoute une bordure à l'image

Gmagick::borderimage

(PECL gmagick >= Unknown)

Gmagick::borderimage — Ajoute une bordure à l'image

Description

public Gmagick Gmagick::borderimage ( GmagickPixel $color , int $width , int $height )

Ajoute une bordure à l'image dont la couleur sera définie par l'objet GmagickPixel ou une couleur sous forme de chaîne de caractères.

Liste de paramètres

color

Objet GmagickPixel ou une chaîne de caractères contenant la couleur de la bordure.

width

Épaisseur de la bordure

height

Hauteur de la bordure

Valeurs de retour

L'objet Gmagick dont la bordure a été ajoutée

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Simule un dessin au fusain

  • « Gmagick::borderimage
  • Gmagick::chopimage »
  • PHP Manual
  • Gmagick
  • Simule un dessin au fusain

Gmagick::charcoalimage

(PECL gmagick >= Unknown)

Gmagick::charcoalimage — Simule un dessin au fusain

Description

public Gmagick Gmagick::charcoalimage ( float $radius , float $sigma )

Simule un dessin au fusain.

Liste de paramètres

radius

Le rayon du Gaussien, en pixels, sans compter le pixel central

sigma

La déviation standard du Gaussien, en pixels

Valeurs de retour

L'objet Gmagick contenant la simulation du dessin au fusain.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Supprime une région de l'image

  • « Gmagick::charcoalimage
  • Gmagick::clear »
  • PHP Manual
  • Gmagick
  • Supprime une région de l'image

Gmagick::chopimage

(PECL gmagick >= Unknown)

Gmagick::chopimage — Supprime une région de l'image

Description

public Gmagick Gmagick::chopimage ( int $width , int $height , int $x , int $y )

Supprime une région de l'image et la repositionne afin d'occuper la portion effacée.

Liste de paramètres

width

Longueur de la région à supprimer

height

Hauteur de la région à supprimer

x

Origine en X de la région à supprimer

y

Origine en Y de la région à supprimer

Valeurs de retour

L'objet Gmagick dont la région a été supprimée.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Efface toutes les ressources associées à l'objet Gmagick

  • « Gmagick::chopimage
  • Gmagick::commentimage »
  • PHP Manual
  • Gmagick
  • Efface toutes les ressources associées à l'objet Gmagick

Gmagick::clear

(PECL gmagick >= Unknown)

Gmagick::clear — Efface toutes les ressources associées à l'objet Gmagick

Description

public Gmagick Gmagick::clear ( void )

Efface toutes les ressources associées à l'objet Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick nettoyé

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Ajoute un commentaire à l'image

  • « Gmagick::clear
  • Gmagick::compositeimage »
  • PHP Manual
  • Gmagick
  • Ajoute un commentaire à l'image

Gmagick::commentimage

(PECL gmagick >= Unknown)

Gmagick::commentimage — Ajoute un commentaire à l'image

Description

public Gmagick Gmagick::commentimage ( string $comment )

Ajoute un commentaire à l'image.

Liste de paramètres

comment

Le commentaire à ajouter

Valeurs de retour

L'objet Gmagick contenant le commentaire.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Assemble 2 images

  • « Gmagick::commentimage
  • Gmagick::__construct »
  • PHP Manual
  • Gmagick
  • Assemble 2 images

Gmagick::compositeimage

(PECL gmagick >= Unknown)

Gmagick::compositeimage — Assemble 2 images

Description

public Gmagick Gmagick::compositeimage ( Gmagick $source , int $COMPOSE , int $x , int $y )

Assemble 2 images à une position spécifique.

Liste de paramètres

source

L'objet Gmagick qui contient l'image à assembler

compose

L'opérateur d'assemblage.

x

La position de la colonne de l'image assemblée

y

La position de la ligne de l'image assemblée

Valeurs de retour

L'objet Gmagick contenant l'assemblage.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Le constructeur Gmagick

  • « Gmagick::compositeimage
  • Gmagick::cropimage »
  • PHP Manual
  • Gmagick
  • Le constructeur Gmagick

Gmagick::__construct

(PECL gmagick >= Unknown)

Gmagick::__construct — Le constructeur Gmagick

Description

public Gmagick::__construct ([ string $filename ] )

Le constructeur Gmagick.

Liste de paramètres

filename

Le chemin vers une image à charger ou un tableau de chemins

Valeurs de retour

Retourne un nouvel objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Extrait une portion d'une image

  • « Gmagick::__construct
  • Gmagick::cropthumbnailimage »
  • PHP Manual
  • Gmagick
  • Extrait une portion d'une image

Gmagick::cropimage

(PECL gmagick >= Unknown)

Gmagick::cropimage — Extrait une portion d'une image

Description

public Gmagick Gmagick::cropimage ( int $width , int $height , int $x , int $y )

Extrait une portion de l'image.

Liste de paramètres

width

La longueur de la portion

height

La hauteur de la région

x

La coordonnée en X de la portion à extraire, en commençant par le coin en haut, à gauche

y

La coordonnée en Y de la portion à extraire, en commençant par le coin en haut, à gauche

Valeurs de retour

L'objet Gmagick représentant la portion extraite

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Crée une miniature recadrée

  • « Gmagick::cropimage
  • Gmagick::current »
  • PHP Manual
  • Gmagick
  • Crée une miniature recadrée

Gmagick::cropthumbnailimage

(PECL gmagick >= Unknown)

Gmagick::cropthumbnailimage — Crée une miniature recadrée

Description

public Gmagick Gmagick::cropthumbnailimage ( int $width , int $height )

Crée une miniature de taille fixe en commençant par une mise à l'échelle de l'image, puis, en recadrant la région spécifique depuis le centre.

Liste de paramètres

width

La longueur de la miniature

height

La hauteur de la miniature

Valeurs de retour

L'objet Gmagick recadré

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Le contexte courante

  • « Gmagick::cropthumbnailimage
  • Gmagick::cyclecolormapimage »
  • PHP Manual
  • Gmagick
  • Le contexte courante

Gmagick::current

(PECL gmagick >= Unknown)

Gmagick::current — Le contexte courante

Description

public Gmagick Gmagick::current ( void )

Retourne une référence vers l'objet Gmagick courant avec le pointeur de l'image à la bonne séquence.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le contexte en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Déplace la carte des couleurs d'une image

  • « Gmagick::current
  • Gmagick::deconstructimages »
  • PHP Manual
  • Gmagick
  • Déplace la carte des couleurs d'une image

Gmagick::cyclecolormapimage

(PECL gmagick >= Unknown)

Gmagick::cyclecolormapimage — Déplace la carte des couleurs d'une image

Description

public Gmagick Gmagick::cyclecolormapimage ( int $displace )

Déplace la carte des couleurs d'une image d'un nombre de positions donné. Si vous déplacez plusieurs fois la carte des couleurs, vous pouvez produire un effet psychédélique.

Liste de paramètres

displace

Le nombre de positions dont on doit déplacer la carte des couleurs.

Valeurs de retour

Retourne le contexte en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Retourne les pixels différents entre des images

  • « Gmagick::cyclecolormapimage
  • Gmagick::despeckleimage »
  • PHP Manual
  • Gmagick
  • Retourne les pixels différents entre des images

Gmagick::deconstructimages

(PECL gmagick >= Unknown)

Gmagick::deconstructimages — Retourne les pixels différents entre des images

Description

public void Gmagick::deconstructimages ( void )

Compares chaque image avec la suivante de la séquence et retourne les pixels différents découverts.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'objet en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Le but de despeckleimage

  • « Gmagick::deconstructimages
  • Gmagick::destroy »
  • PHP Manual
  • Gmagick
  • Le but de despeckleimage

Gmagick::despeckleimage

(PECL gmagick >= Unknown)

Gmagick::despeckleimage — Le but de despeckleimage

Description

public Gmagick Gmagick::despeckleimage ( void )

Réduit le bruit speckle d'une image tout en préservant les bords de l'image original.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick sans bruit en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.

Exemples

Exemple #1 Exemple avec Gmagick::despeckleimage()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Le but de la méthode destroy

  • « Gmagick::despeckleimage
  • Gmagick::drawimage »
  • PHP Manual
  • Gmagick
  • Le but de la méthode destroy

Gmagick::destroy

(PECL gmagick >= Unknown)

Gmagick::destroy — Le but de la méthode destroy

Description

public Gmagick Gmagick::destroy ( void )

Détruit l'objet Gmagick et libère toutes les ressources associées.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Envoi l'objet GmagickDraw dans l'image courante

  • « Gmagick::destroy
  • Gmagick::edgeimage »
  • PHP Manual
  • Gmagick
  • Envoi l'objet GmagickDraw dans l'image courante

Gmagick::drawimage

(PECL gmagick >= Unknown)

Gmagick::drawimage — Envoi l'objet GmagickDraw dans l'image courante

Description

public Gmagick Gmagick::drawimage ( GmagickDraw $GmagickDraw )

Envoi l'objet GmagickDraw dans l'image courante.

Liste de paramètres

GmagickDraw

L'objet GmagickDraw à envoyer dans l'image courante.

Valeurs de retour

L'objet Gmagick contenant les modifications réalisées dans l'objet GmagickDraw.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Améliore les bords intérieurs de l'image

  • « Gmagick::drawimage
  • Gmagick::embossimage »
  • PHP Manual
  • Gmagick
  • Améliore les bords intérieurs de l'image

Gmagick::edgeimage

(PECL gmagick >= Unknown)

Gmagick::edgeimage — Améliore les bords intérieurs de l'image

Description

public Gmagick Gmagick::edgeimage ( float $radius )

Améliore les bords intérieurs de l'image avec un filter de convolution utilisant le rayon fourni. Utilisez un rayon de 0 et la méthode le choisira pour vous.

Liste de paramètres

radius

Le rayon utilisé pour l'opération.

Valeurs de retour

L'objet Gmagick dont les bords intérieurs ont été améliorés.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Retourne une image en niveau de gris avec un effet à 3 dimensions

  • « Gmagick::edgeimage
  • Gmagick::enhanceimage »
  • PHP Manual
  • Gmagick
  • Retourne une image en niveau de gris avec un effet à 3 dimensions

Gmagick::embossimage

(PECL gmagick >= Unknown)

Gmagick::embossimage — Retourne une image en niveau de gris avec un effet à 3 dimensions

Description

public Gmagick Gmagick::embossimage ( float $radius , float $sigma )

Retourne une image en niveau de gris avec un effet à 3 dimensions. L'image est transformée avec un opérateur Gaussien utilisant le rayon donné, et une déviation standard (sigma). Pour obtenir un résultat convenable, le rayon doit être supérieur au sigma. Si vous spécifiez un rayon de 0, la méthode choisira le meilleur rayon à votre place.

Liste de paramètres

radius

Le rayon de l'effect

sigma

Le sigma de l'effet

Valeurs de retour

L'objet Gmagick en relief.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Améliore la qualité d'une image contenant du bruit

  • « Gmagick::embossimage
  • Gmagick::equalizeimage »
  • PHP Manual
  • Gmagick
  • Améliore la qualité d'une image contenant du bruit

Gmagick::enhanceimage

(PECL gmagick >= Unknown)

Gmagick::enhanceimage — Améliore la qualité d'une image contenant du bruit

Description

public Gmagick Gmagick::enhanceimage ( void )

Applique un filtre digital qui améliore la qualité d'une image contenant du bruit.

Valeurs de retour

L'objet Gmagick amélioré.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Égalise l'histogramme de l'image

  • « Gmagick::enhanceimage
  • Gmagick::flipimage »
  • PHP Manual
  • Gmagick
  • Égalise l'histogramme de l'image

Gmagick::equalizeimage

(PECL gmagick >= Unknown)

Gmagick::equalizeimage — Égalise l'histogramme de l'image

Description

public Gmagick Gmagick::equalizeimage ( void )

Égalise l'histogramme de l'image.

Valeurs de retour

L'objet Gmagick égalisé.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Crée une image miroir verticale

  • « Gmagick::equalizeimage
  • Gmagick::flopimage »
  • PHP Manual
  • Gmagick
  • Crée une image miroir verticale

Gmagick::flipimage

(PECL gmagick >= Unknown)

Gmagick::flipimage — Crée une image miroir verticale

Description

public Gmagick Gmagick::flipimage ( void )

Crée une image miroir verticale en reflétant les pixels autour du centre de l'axe X.

Valeurs de retour

L'objet Gmagick reflété.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Le but de la méthode flopimage

  • « Gmagick::flipimage
  • Gmagick::frameimage »
  • PHP Manual
  • Gmagick
  • Le but de la méthode flopimage

Gmagick::flopimage

(PECL gmagick >= Unknown)

Gmagick::flopimage — Le but de la méthode flopimage

Description

public Gmagick Gmagick::flopimage ( void )

Crée une image miroir horizontale en reflétant les pixels autour du centre de l'axe Y.

Valeurs de retour

L'objet Gmagick reflété.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Ajoute une bordure afin de simuler un effet 3D

  • « Gmagick::flopimage
  • Gmagick::gammaimage »
  • PHP Manual
  • Gmagick
  • Ajoute une bordure afin de simuler un effet 3D

Gmagick::frameimage

(PECL gmagick >= Unknown)

Gmagick::frameimage — Ajoute une bordure afin de simuler un effet 3D

Description

public Gmagick Gmagick::frameimage ( GmagickPixel $color , int $width , int $height , int $inner_bevel , int $outer_bevel )

Ajoute une bordure simulant un effet 3D à l'image. La largeur et la hauteur spécifiés la largeur de la bordure verticale et horizontale de la frame. Les paramètres inner_bevel et outer_bevel indiquent la largeur interne et externe de l'ombre de la frame.

Liste de paramètres

color

Un objet GmagickPixel ou un nombre à virgule flottante représentant la couleur mate.

width

La largeur de la bordure

height

La hauteur de la bordure

inner_bevel

La largeur du bevel interne

outer_bevel

La largeur du bevel externe

Valeurs de retour

L'objet Gmagick dont la bordure 3D a été ajoutée.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Corrige le gamma d'une image

  • « Gmagick::frameimage
  • Gmagick::getcopyright »
  • PHP Manual
  • Gmagick
  • Corrige le gamma d'une image

Gmagick::gammaimage

(PECL gmagick >= Unknown)

Gmagick::gammaimage — Corrige le gamma d'une image

Description

public Gmagick Gmagick::gammaimage ( float $gamma )

Corrige le gamma d'une image. La même image vue sur différents médias aura plusieurs différences suivant l'intensité représentée sur l'écran. Vous pouvez ainsi jouer sur le niveau de gamma pour les canaux rouges, verts et bleus, ou ajuster les 3 avec le paramètre gamma. Les valeurs sont typiquement dans l'intervalle 0.8 à 2.3.

Liste de paramètres

gamma

La quantité de correction gamma.

Valeurs de retour

L'objet Gmagick dont le gamma a été corrigé.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Retourne le copyright de l'API GraphicsMagick

  • « Gmagick::gammaimage
  • Gmagick::getfilename »
  • PHP Manual
  • Gmagick
  • Retourne le copyright de l'API GraphicsMagick

Gmagick::getcopyright

(PECL gmagick >= Unknown)

Gmagick::getcopyright — Retourne le copyright de l'API GraphicsMagick

Description

public string Gmagick::getcopyright ( void )

Retourne le copyright de l'API GraphicsMagick.

Valeurs de retour

Retourne une chaîne de caractères contenant le copyright de l'API GraphicsMagick ainsi que celui de l'API Magickwand.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Retourne le nom du fichier associé avec une séquence d'image

  • « Gmagick::getcopyright
  • Gmagick::getimagebackgroundcolor »
  • PHP Manual
  • Gmagick
  • Retourne le nom du fichier associé avec une séquence d'image

Gmagick::getfilename

(PECL gmagick >= Unknown)

Gmagick::getfilename — Retourne le nom du fichier associé avec une séquence d'image

Description

public string Gmagick::getfilename ( void )

Retourne le nom du fichier associé avec une séquence d'image.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Retourne la couleur d'arrière plan de l'image

  • « Gmagick::getfilename
  • Gmagick::getimageblueprimary »
  • PHP Manual
  • Gmagick
  • Retourne la couleur d'arrière plan de l'image

Gmagick::getimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::getimagebackgroundcolor — Retourne la couleur d'arrière plan de l'image

Description

public void Gmagick::getimagebackgroundcolor ( void )

Retourne la couleur d'arrière plan de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet GmagickPixel défini à la couleur d'arrière plan de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Retourne le point bleu primaire chromatique

  • « Gmagick::getimagebackgroundcolor
  • Gmagick::getimagebordercolor »
  • PHP Manual
  • Gmagick
  • Retourne le point bleu primaire chromatique

Gmagick::getimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::getimageblueprimary — Retourne le point bleu primaire chromatique

Description

public array Gmagick::getimageblueprimary ( void )

Retourne le point bleu primaire chromatique de l'image.

Liste de paramètres

x

Coordonnée en X du point bleu primaire chromatique.

y

Coordonnée en Y du point bleu primaire chromatique.

Valeurs de retour

Un tableau contenant les coordonnées en X et en Y du point.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Retourne la couleur du bord de l'image

  • « Gmagick::getimageblueprimary
  • Gmagick::getimagechanneldepth »
  • PHP Manual
  • Gmagick
  • Retourne la couleur du bord de l'image

Gmagick::getimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::getimagebordercolor — Retourne la couleur du bord de l'image

Description

public void Gmagick::getimagebordercolor ( void )

Retourne la couleur du bord de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet GmagickPixel représentant la couleur du bord de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère la profondeur d'un canal particulier de l'image

  • « Gmagick::getimagebordercolor
  • Gmagick::getimagecolors »
  • PHP Manual
  • Gmagick
  • Récupère la profondeur d'un canal particulier de l'image

Gmagick::getimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::getimagechanneldepth — Récupère la profondeur d'un canal particulier de l'image

Description

public int Gmagick::getimagechanneldepth ( int $channel_type )

Récupère la profondeur d'un canal particulier de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La profondeur du canal de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Retourne la couleur de l'indice de la carte des couleurs spécifiée

  • « Gmagick::getimagechanneldepth
  • Gmagick::getimagecolorspace »
  • PHP Manual
  • Gmagick
  • Retourne la couleur de l'indice de la carte des couleurs spécifiée

Gmagick::getimagecolors

(PECL gmagick >= Unknown)

Gmagick::getimagecolors — Retourne la couleur de l'indice de la carte des couleurs spécifiée

Description

public int Gmagick::getimagecolors ( void )

Retourne la couleur de l'indice de la carte des couleurs spécifiée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre de couleurs dans l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère l'espace colorimétrique de l'image

  • « Gmagick::getimagecolors
  • Gmagick::getimagecompose »
  • PHP Manual
  • Gmagick
  • Récupère l'espace colorimétrique de l'image

Gmagick::getimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::getimagecolorspace — Récupère l'espace colorimétrique de l'image

Description

public int Gmagick::getimagecolorspace ( void )

Récupère l'espace colorimétrique de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'espace colorimétrique.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Retourne l'opérateur de composition associé avec l'image

  • « Gmagick::getimagecolorspace
  • Gmagick::getimagedelay »
  • PHP Manual
  • Gmagick
  • Retourne l'opérateur de composition associé avec l'image

Gmagick::getimagecompose

(PECL gmagick >= Unknown)

Gmagick::getimagecompose — Retourne l'opérateur de composition associé avec l'image

Description

public int Gmagick::getimagecompose ( void )

Retourne l'opérateur de composition associé avec l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'opérateur de composition associé avec l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère le délai de l'image

  • « Gmagick::getimagecompose
  • Gmagick::getimagedepth »
  • PHP Manual
  • Gmagick
  • Récupère le délai de l'image

Gmagick::getimagedelay

(PECL gmagick >= Unknown)

Gmagick::getimagedelay — Récupère le délai de l'image

Description

public int Gmagick::getimagedelay ( void )

Récupère le délai de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'opérateur de composition associé avec l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère la profondeur de l'image

  • « Gmagick::getimagedelay
  • Gmagick::getimagedispose »
  • PHP Manual
  • Gmagick
  • Récupère la profondeur de l'image

Gmagick::getimagedepth

(PECL gmagick >= Unknown)

Gmagick::getimagedepth — Récupère la profondeur de l'image

Description

public int Gmagick::getimagedepth ( void )

Récupère la profondeur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La profondeur de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère la méthode de disposition de l'image

  • « Gmagick::getimagedepth
  • Gmagick::getimageextrema »
  • PHP Manual
  • Gmagick
  • Récupère la méthode de disposition de l'image

Gmagick::getimagedispose

(PECL gmagick >= Unknown)

Gmagick::getimagedispose — Récupère la méthode de disposition de l'image

Description

public int Gmagick::getimagedispose ( void )

Récupère la méthode de disposition de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la méthode de disposition de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère les extrémités de l'image

  • « Gmagick::getimagedispose
  • Gmagick::getimagefilename »
  • PHP Manual
  • Gmagick
  • Récupère les extrémités de l'image

Gmagick::getimageextrema

(PECL gmagick >= Unknown)

Gmagick::getimageextrema — Récupère les extrémités de l'image

Description

public array Gmagick::getimageextrema ( void )

Retourne un tableau associatif contenant les clés "min" et "max". Émet une exception GmagickException en cas d'erreur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau associatif contenant les clés "min" et "max".

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère le nom du fichier d'une image particulière dans une séquence

  • « Gmagick::getimageextrema
  • Gmagick::getimageformat »
  • PHP Manual
  • Gmagick
  • Récupère le nom du fichier d'une image particulière dans une séquence

Gmagick::getimagefilename

(PECL gmagick >= Unknown)

Gmagick::getimagefilename — Récupère le nom du fichier d'une image particulière dans une séquence

Description

public string Gmagick::getimagefilename ( void )

Récupère le nom du fichier d'une image particulière dans une séquence.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères représentant le nom du fichier image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère le format d'une image particulière dans une séquence

  • « Gmagick::getimagefilename
  • Gmagick::getimagegamma »
  • PHP Manual
  • Gmagick
  • Récupère le format d'une image particulière dans une séquence

Gmagick::getimageformat

(PECL gmagick >= Unknown)

Gmagick::getimageformat — Récupère le format d'une image particulière dans une séquence

Description

public string Gmagick::getimageformat ( void )

Récupère le format d'une image particulière dans une séquence.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant le format de l'image en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère le gamma de l'image

  • « Gmagick::getimageformat
  • Gmagick::getimagegreenprimary »
  • PHP Manual
  • Gmagick
  • Récupère le gamma de l'image

Gmagick::getimagegamma

(PECL gmagick >= Unknown)

Gmagick::getimagegamma — Récupère le gamma de l'image

Description

public float Gmagick::getimagegamma ( void )

Récupère le gamma de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le gamma de l'image en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère le point chromatique primaire vert

  • « Gmagick::getimagegamma
  • Gmagick::getimageheight »
  • PHP Manual
  • Gmagick
  • Récupère le point chromatique primaire vert

Gmagick::getimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::getimagegreenprimary — Récupère le point chromatique primaire vert

Description

public array Gmagick::getimagegreenprimary ( void )

Récupère le point chromatique primaire vert.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les clés "x" and "y" en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère la hauteur de l'image

  • « Gmagick::getimagegreenprimary
  • Gmagick::getimagehistogram »
  • PHP Manual
  • Gmagick
  • Récupère la hauteur de l'image

Gmagick::getimageheight

(PECL gmagick >= Unknown)

Gmagick::getimageheight — Récupère la hauteur de l'image

Description

public int Gmagick::getimageheight ( void )

Récupère la hauteur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la hauteur de l'image, en pixels.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère l'histogramme de l'image

  • « Gmagick::getimageheight
  • Gmagick::getimageindex »
  • PHP Manual
  • Gmagick
  • Récupère l'histogramme de l'image

Gmagick::getimagehistogram

(PECL gmagick >= Unknown)

Gmagick::getimagehistogram — Récupère l'histogramme de l'image

Description

public array Gmagick::getimagehistogram ( void )

Récupère l'histogramme de l'image. Lance une exception GmagickException en cas d'erreur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'histogramme de l'image sous la forme d'un tableau d'objets GmagickPixel.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère l'indice de l'image active courante

  • « Gmagick::getimagehistogram
  • Gmagick::getimageinterlacescheme »
  • PHP Manual
  • Gmagick
  • Récupère l'indice de l'image active courante

Gmagick::getimageindex

(PECL gmagick >= Unknown)

Gmagick::getimageindex — Récupère l'indice de l'image active courante

Description

public int Gmagick::getimageindex ( void )

Récupère l'indice de l'image active courante dans l'objet Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'indice de l'image courante active.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère le schéma d'entrelacement de l'image

  • « Gmagick::getimageindex
  • Gmagick::getimageiterations »
  • PHP Manual
  • Gmagick
  • Récupère le schéma d'entrelacement de l'image

Gmagick::getimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::getimageinterlacescheme — Récupère le schéma d'entrelacement de l'image

Description

public int Gmagick::getimageinterlacescheme ( void )

Récupère le schéma d'entrelacement de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le schéma d'entrelacement de l'image, sous la forme d'un entier en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère les itérations de l'image

  • « Gmagick::getimageinterlacescheme
  • Gmagick::getimagematte »
  • PHP Manual
  • Gmagick
  • Récupère les itérations de l'image

Gmagick::getimageiterations

(PECL gmagick >= Unknown)

Gmagick::getimageiterations — Récupère les itérations de l'image

Description

public int Gmagick::getimageiterations ( void )

Récupère les itérations de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les itérations de l'image, sous la forme d'un entier.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Vérifie si l'image a un canal mate

  • « Gmagick::getimageiterations
  • Gmagick::getimagemattecolor »
  • PHP Manual
  • Gmagick
  • Vérifie si l'image a un canal mate

Gmagick::getimagematte

(PECL gmagick >= Unknown)

Gmagick::getimagematte — Vérifie si l'image a un canal mate

Description

public int Gmagick::getimagematte ( void )

Retourne TRUE si l'image a un canal mate, FALSE sinon.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'image a un canal mate, FALSE sinon.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère la couleur mate de l'image

  • « Gmagick::getimagematte
  • Gmagick::getimageprofile »
  • PHP Manual
  • Gmagick
  • Récupère la couleur mate de l'image

Gmagick::getimagemattecolor

(PECL gmagick >= Unknown)

Gmagick::getimagemattecolor — Récupère la couleur mate de l'image

Description

public void Gmagick::getimagemattecolor ( void )

Retourne un objet GmagickPixel en cas de succès. Lance une exception GmagickException en cas d'erreur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet GmagickPixel.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère le nom du profile de l'image

  • « Gmagick::getimagemattecolor
  • Gmagick::getimageredprimary »
  • PHP Manual
  • Gmagick
  • Récupère le nom du profile de l'image

Gmagick::getimageprofile

(PECL gmagick >= Unknown)

Gmagick::getimageprofile — Récupère le nom du profile de l'image

Description

public string Gmagick::getimageprofile ( string $name )

Récupère le nom du profile de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères représentant le profile de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère le point chromatique primaire rouge

  • « Gmagick::getimageprofile
  • Gmagick::getimagerenderingintent »
  • PHP Manual
  • Gmagick
  • Récupère le point chromatique primaire rouge

Gmagick::getimageredprimary

(PECL gmagick >= Unknown)

Gmagick::getimageredprimary — Récupère le point chromatique primaire rouge

Description

public array Gmagick::getimageredprimary ( void )

Récupère le point chromatique primaire rouge, sous la forme d'un tableau contenant les clés "x" et "y".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le point chromatique primaire rouge, sous la forme d'un tableau contenant les clés "x" et "y".

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère l'image de rendu

  • « Gmagick::getimageredprimary
  • Gmagick::getimageresolution »
  • PHP Manual
  • Gmagick
  • Récupère l'image de rendu

Gmagick::getimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::getimagerenderingintent — Récupère l'image de rendu

Description

public int Gmagick::getimagerenderingintent ( void )

Récupère l'image de rendu.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Extrait une région de l'image et la retourne en tant que nouvelle.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère la résolution de l'image

  • « Gmagick::getimagerenderingintent
  • Gmagick::getimagescene »
  • PHP Manual
  • Gmagick
  • Récupère la résolution de l'image

Gmagick::getimageresolution

(PECL gmagick >= Unknown)

Gmagick::getimageresolution — Récupère la résolution de l'image

Description

public array Gmagick::getimageresolution ( void )

Récupère la résolution de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la résolution sous la forme d'un tableau.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère la scène de l'image

  • « Gmagick::getimageresolution
  • Gmagick::getimagesignature »
  • PHP Manual
  • Gmagick
  • Récupère la scène de l'image

Gmagick::getimagescene

(PECL gmagick >= Unknown)

Gmagick::getimagescene — Récupère la scène de l'image

Description

public int Gmagick::getimagescene ( void )

Récupère la scène de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la scène de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Génère la signature SHA-256 de l'image

  • « Gmagick::getimagescene
  • Gmagick::getimagetype »
  • PHP Manual
  • Gmagick
  • Génère la signature SHA-256 de l'image

Gmagick::getimagesignature

(PECL gmagick >= Unknown)

Gmagick::getimagesignature — Génère la signature SHA-256 de l'image

Description

public string Gmagick::getimagesignature ( void )

Génère la signature SHA-256 de l'image depuis le flux de pixels.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant la signature SHA-256 hash.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère le type potentiel d'une image

  • « Gmagick::getimagesignature
  • Gmagick::getimageunits »
  • PHP Manual
  • Gmagick
  • Récupère le type potentiel d'une image

Gmagick::getimagetype

(PECL gmagick >= Unknown)

Gmagick::getimagetype — Récupère le type potentiel d'une image

Description

public int Gmagick::getimagetype ( void )

Récupère le type potentiel d'une image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le type potentiel d'une image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère les unités utilisées pour la résolution de l'image

  • « Gmagick::getimagetype
  • Gmagick::getimagewhitepoint »
  • PHP Manual
  • Gmagick
  • Récupère les unités utilisées pour la résolution de l'image

Gmagick::getimageunits

(PECL gmagick >= Unknown)

Gmagick::getimageunits — Récupère les unités utilisées pour la résolution de l'image

Description

public int Gmagick::getimageunits ( void )

Récupère les unités utilisées pour la résolution de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les unités utilisées pour la résolution de l'image.


Récupère le point chromatique blanc

  • « Gmagick::getimageunits
  • Gmagick::getimagewidth »
  • PHP Manual
  • Gmagick
  • Récupère le point chromatique blanc

Gmagick::getimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::getimagewhitepoint — Récupère le point chromatique blanc

Description

public array Gmagick::getimagewhitepoint ( void )

Récupère le point chromatique blanc.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le point chromatique blanc, sous la forme d'un tableau associatif contenant les clés "x" et "y".

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère la largeur de l'image

  • « Gmagick::getimagewhitepoint
  • Gmagick::getpackagename »
  • PHP Manual
  • Gmagick
  • Récupère la largeur de l'image

Gmagick::getimagewidth

(PECL gmagick >= Unknown)

Gmagick::getimagewidth — Récupère la largeur de l'image

Description

public int Gmagick::getimagewidth ( void )

Récupère la largeur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la largeur de l'image.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère le nom du paquet GraphicsMagick

  • « Gmagick::getimagewidth
  • Gmagick::getquantumdepth »
  • PHP Manual
  • Gmagick
  • Récupère le nom du paquet GraphicsMagick

Gmagick::getpackagename

(PECL gmagick >= Unknown)

Gmagick::getpackagename — Récupère le nom du paquet GraphicsMagick

Description

public string Gmagick::getpackagename ( void )

Récupère le nom du paquet GraphicsMagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du paquet GraphicsMagick, sous la forme d'une chaîne de caractères.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère la profondeur du quantum Gmagick

  • « Gmagick::getpackagename
  • Gmagick::getreleasedate »
  • PHP Manual
  • Gmagick
  • Récupère la profondeur du quantum Gmagick

Gmagick::getquantumdepth

(PECL gmagick >= Unknown)

Gmagick::getquantumdepth — Récupère la profondeur du quantum Gmagick

Description

public array Gmagick::getquantumdepth ( void )

Récupère la profondeur du quantum Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la profondeur du quantum Gmagick, sous la forme d'un chaîne de caractères.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère la date de sortie de la version courante de GraphicsMagick

  • « Gmagick::getquantumdepth
  • Gmagick::getsamplingfactors »
  • PHP Manual
  • Gmagick
  • Récupère la date de sortie de la version courante de GraphicsMagick

Gmagick::getreleasedate

(PECL gmagick >= Unknown)

Gmagick::getreleasedate — Récupère la date de sortie de la version courante de GraphicsMagick

Description

public string Gmagick::getreleasedate ( void )

Récupère la date de sortie de la version courante de GraphicsMagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la date de sortie de la version courante de GraphicsMagick sous la forme d'une chaîne de caractères.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère le facteur d'échantillonnage horizontal et vertical

  • « Gmagick::getreleasedate
  • Gmagick::getsize »
  • PHP Manual
  • Gmagick
  • Récupère le facteur d'échantillonnage horizontal et vertical

Gmagick::getsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::getsamplingfactors — Récupère le facteur d'échantillonnage horizontal et vertical

Description

public array Gmagick::getsamplingfactors ( void )

Récupère le facteur d'échantillonnage horizontal et vertical.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau associatif contenant le facteur d'échantillonnage vertical et horizontal.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère la taille associée avec l'objet Gmagick

  • « Gmagick::getsamplingfactors
  • Gmagick::getversion »
  • PHP Manual
  • Gmagick
  • Récupère la taille associée avec l'objet Gmagick

Gmagick::getsize

(PECL gmagick >= Unknown)

Gmagick::getsize — Récupère la taille associée avec l'objet Gmagick

Description

public array Gmagick::getsize ( void )

Récupère la taille associée avec l'objet Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille associée avec l'objet Gmagick sous la forme d'un tableau contenant les clés "columns" et "rows".

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Récupère la version de l'API GraphicsMagick

  • « Gmagick::getsize
  • Gmagick::hasnextimage »
  • PHP Manual
  • Gmagick
  • Récupère la version de l'API GraphicsMagick

Gmagick::getversion

(PECL gmagick >= Unknown)

Gmagick::getversion — Récupère la version de l'API GraphicsMagick

Description

public array Gmagick::getversion ( void )

Récupère la version de l'API GraphicsMagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la version de l'API GraphicsMagick, sous la forme d'une chaîne de caractères et d'un nombre.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Vérifie si l'objet contient au moins une autre image

  • « Gmagick::getversion
  • Gmagick::haspreviousimage »
  • PHP Manual
  • Gmagick
  • Vérifie si l'objet contient au moins une autre image

Gmagick::hasnextimage

(PECL gmagick >= Unknown)

Gmagick::hasnextimage — Vérifie si l'objet contient au moins une autre image

Description

public mixed Gmagick::hasnextimage ( void )

Vérifie si l'objet contient au moins une image suivante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'objet a au moins une image suivante, FALSE sinon.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Vérifie si l'objet contient une image précédente

  • « Gmagick::hasnextimage
  • Gmagick::implodeimage »
  • PHP Manual
  • Gmagick
  • Vérifie si l'objet contient une image précédente

Gmagick::haspreviousimage

(PECL gmagick >= Unknown)

Gmagick::haspreviousimage — Vérifie si l'objet contient une image précédente

Description

public mixed Gmagick::haspreviousimage ( void )

Vérifie si l'objet contient une image précédente.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'objet a au moins une image précédente, FALSE sinon.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Crée une image à partir d'une copie

  • « Gmagick::haspreviousimage
  • Gmagick::labelimage »
  • PHP Manual
  • Gmagick
  • Crée une image à partir d'une copie

Gmagick::implodeimage

(PECL gmagick >= Unknown)

Gmagick::implodeimage — Crée une image à partir d'une copie

Description

public mixed Gmagick::implodeimage ( float $radius )

Crée une nouvelle image à partir d'une copie d'une image existante dont les pixels ont été modifiés suivant le pourcentage fourni.

Liste de paramètres

radius

La rayon d'implosion des pixels

Valeurs de retour

Retourne un objet Gmagick dont les pixels ont été modifiés.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Ajoute un libellé à une image

  • « Gmagick::implodeimage
  • Gmagick::levelimage »
  • PHP Manual
  • Gmagick
  • Ajoute un libellé à une image

Gmagick::labelimage

(PECL gmagick >= Unknown)

Gmagick::labelimage — Ajoute un libellé à une image

Description

public mixed Gmagick::labelimage ( string $label )

Ajoute un libellé à une image.

Liste de paramètres

label

Le libellé à ajouter

Valeurs de retour

Gmagick avec un libellé.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Ajuste les niveaux d'une image

  • « Gmagick::labelimage
  • Gmagick::magnifyimage »
  • PHP Manual
  • Gmagick
  • Ajuste les niveaux d'une image

Gmagick::levelimage

(PECL gmagick >= Unknown)

Gmagick::levelimage — Ajuste les niveaux d'une image

Description

public mixed Gmagick::levelimage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Gmagick::CHANNEL_DEFAULT ] )

Ajuste les niveaux d'une image en balançant les couleurs situées entre les points blancs et noirs spécifiés, vers un intervalle quantum disponible. Les paramètres fournis fournissent les points blancs, milieux et noirs. Le point noir spécifie la couleur la plus sombre de l'image. Les couleurs plus sombres que le point noir seront définies à zéro. Le point milieux spécifie une correction gamma à appliquer à l'image. Le point blanc spécifie la couleur la plus claire de l'image. Les couleurs plus claires que le point blanc seront définies à la valeur maximale du quantum.

Liste de paramètres

blackPoint

Le point noir de l'image

gamma

La valeur gamma

whitePoint

Le point blanc de l'image

channel

Une constante de canaux valide pour le mode de canal utilisé. Pour l'appliquer à plus d'un canal, combinez les constantes de type de canaux en utilisant un opérateur de jonction. Reportez-vous à la liste des constantes de canaux.

Valeurs de retour

L'objet Gmagick dont les niveaux ont été modifiés.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Retaille par 2 une image en conservant les proportions

  • « Gmagick::levelimage
  • Gmagick::mapimage »
  • PHP Manual
  • Gmagick
  • Retaille par 2 une image en conservant les proportions

Gmagick::magnifyimage

(PECL gmagick >= Unknown)

Gmagick::magnifyimage — Retaille par 2 une image en conservant les proportions

Description

public mixed Gmagick::magnifyimage ( void )

Retaille par 2 une image en conservant les proportions.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick modifié.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Remplace les couleurs d'une image avec les couleurs les plus proches d'une image de référence

  • « Gmagick::magnifyimage
  • Gmagick::medianfilterimage »
  • PHP Manual
  • Gmagick
  • Remplace les couleurs d'une image avec les couleurs les plus proches d'une image de référence

Gmagick::mapimage

(PECL gmagick >= Unknown)

Gmagick::mapimage — Remplace les couleurs d'une image avec les couleurs les plus proches d'une image de référence

Description

public Gmagick Gmagick::mapimage ( gmagick $gmagick , bool $dither )

Remplace les couleurs d'une image avec les couleurs les plus proches d'une image de référence.

Liste de paramètres

gmagick

L'image de référence

dither

Entier plus grand que 0 pour faire tergiverser l'image mappée

Valeurs de retour

L'objet Gmagick.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Applique un filtre digital

  • « Gmagick::mapimage
  • Gmagick::minifyimage »
  • PHP Manual
  • Gmagick
  • Applique un filtre digital

Gmagick::medianfilterimage

(PECL gmagick >= Unknown)

Gmagick::medianfilterimage — Applique un filtre digital

Description

public void Gmagick::medianfilterimage ( float $radius )

Applique un filtre digital qui améliore la qualité du bruit d'une image. Chaque pixel est remplacé par le médian dans un jeu de pixels voisins tel que défini par le rayon.

Liste de paramètres

radius

Le rayon des pixels voisins.

Valeurs de retour

L'objet Gmagick dont le filtre a été appliqué.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Réduit une image de moitié en gardant les proportions

  • « Gmagick::medianfilterimage
  • Gmagick::modulateimage »
  • PHP Manual
  • Gmagick
  • Réduit une image de moitié en gardant les proportions

Gmagick::minifyimage

(PECL gmagick >= Unknown)

Gmagick::minifyimage — Réduit une image de moitié en gardant les proportions

Description

public void Gmagick::minifyimage ( void )

Réduit une image de moitié en gardant les proportions.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Contrôle la luminosité, la saturation et la teinte

  • « Gmagick::minifyimage
  • Gmagick::motionblurimage »
  • PHP Manual
  • Gmagick
  • Contrôle la luminosité, la saturation et la teinte

Gmagick::modulateimage

(PECL gmagick >= Unknown)

Gmagick::modulateimage — Contrôle la luminosité, la saturation et la teinte

Description

public void Gmagick::modulateimage ( float $brightness , float $saturation , float $hue )

Permet de contrôler la luminosité, la saturation et la teinte d'une image. La teinte est un pourcentage d'une rotation absolue depuis la position courante. Par exemple, 50 correspond à une rotation de 90 degrés dans le sens inverse des aiguilles d'une montre, 150, une rotation de 90 degrés dans le sens des aiguilles d'une montre, ou encore, 0 ou 200 correspond à une rotation de 180 degrés.

Liste de paramètres

brightness

Le nombre de pourcentage à modifier pour la luminosité (-100 à +100).

saturation

Le nombre de pourcentage à modifier pour la saturation (-100 à +100).

hue

Le nombre de pourcentage à modifier pour la teinte (-100 à +100).

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Simule un flou cinétique

  • « Gmagick::modulateimage
  • Gmagick::newimage »
  • PHP Manual
  • Gmagick
  • Simule un flou cinétique

Gmagick::motionblurimage

(PECL gmagick >= Unknown)

Gmagick::motionblurimage — Simule un flou cinétique

Description

public void Gmagick::motionblurimage ( float $radius , float $sigma , float $angle )

Simule un flou cinétique. L'image est traité avec un opérateur Gaussien d'un rayon donné et d'une déviation standard (sigma). Pour de bons résultats, le rayon doit être plus élevé que le sigma. Utilisez un rayon de 0 et la méthode MotionBlurImage() sélectionne le meilleur rayon pour vous. Le paramètre angle fournit l'angle du flou cinétique.

Liste de paramètres

radius

Le rayon du Gaussien, en pixels, sans compter le pixel central.

sigma

La déviation standard du Gaussien, en pixels.

angle

Applique l'effet tout le long de l'angle.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Crée une nouvelle image

  • « Gmagick::motionblurimage
  • Gmagick::nextimage »
  • PHP Manual
  • Gmagick
  • Crée une nouvelle image

Gmagick::newimage

(PECL gmagick >= Unknown)

Gmagick::newimage — Crée une nouvelle image

Description

public void Gmagick::newimage ( int $width , int $height , string $background [, string $format ] )

Crée une nouvelle image avec la couleur d'arrière-plan spécifiée.

Liste de paramètres

width

Largeur de la nouvelle image.

height

Hauteur de la nouvelle image.

background

La couleur d'arrière-plan à utiliser pour l'image (sous la forme d'un nombre à virgule flottante)

format

Le format de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Se déplace sur l'image suivante

  • « Gmagick::newimage
  • Gmagick::normalizeimage »
  • PHP Manual
  • Gmagick
  • Se déplace sur l'image suivante

Gmagick::nextimage

(PECL gmagick >= Unknown)

Gmagick::nextimage — Se déplace sur l'image suivante

Description

public bool Gmagick::nextimage ( void )

Associe l'image suivante dans la liste des images avec un objet Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Améliore le contraste de la couleur de l'image

  • « Gmagick::nextimage
  • Gmagick::oilpaintimage »
  • PHP Manual
  • Gmagick
  • Améliore le contraste de la couleur de l'image

Gmagick::normalizeimage

(PECL gmagick >= Unknown)

Gmagick::normalizeimage — Améliore le contraste de la couleur de l'image

Description

public void Gmagick::normalizeimage ([ int $channel ] )

Améliore le contraste de la couleur de l'image en ajustant la couleur des pixels pour correspondre à l'intervalle de couleurs disponibles.

Liste de paramètres

channel

Canal à normaliser.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Simule une peinture à l'huile

  • « Gmagick::normalizeimage
  • Gmagick::previousimage »
  • PHP Manual
  • Gmagick
  • Simule une peinture à l'huile

Gmagick::oilpaintimage

(PECL gmagick >= Unknown)

Gmagick::oilpaintimage — Simule une peinture à l'huile

Description

public void Gmagick::oilpaintimage ( float $radius )

Applique un effet spécial qui simule une peinture à l'huile. Chaque pixel est remplacé par la couleur survenant le plus grand nombre de fois dans une région circulaire définie par un rayon.

Liste de paramètres

radius

Le rayon de la région circulaire voisine.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Se déplace vers l'image précédente de l'objet

  • « Gmagick::oilpaintimage
  • Gmagick::profileimage »
  • PHP Manual
  • Gmagick
  • Se déplace vers l'image précédente de l'objet

Gmagick::previousimage

(PECL gmagick >= Unknown)

Gmagick::previousimage — Se déplace vers l'image précédente de l'objet

Description

public bool Gmagick::previousimage ( void )

Associe l'image précédente de la liste d'images avec l'objet Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Ajoute ou supprime un profile d'une image

  • « Gmagick::previousimage
  • Gmagick::quantizeimage »
  • PHP Manual
  • Gmagick
  • Ajoute ou supprime un profile d'une image

Gmagick::profileimage

(PECL gmagick >= Unknown)

Gmagick::profileimage — Ajoute ou supprime un profile d'une image

Description

public void Gmagick::profileimage ( string $name , string $profile )

Ajoute ou supprime un profile ICC, IPTC ou générique d'une image. Si le profile est NULL, il sera supprimé de l'image, sinon, il sera ajouté. Utilisez '*' comme nom et un profile NULL pour supprimer tous les profiles de l'image.

Liste de paramètres

name

Nom du profile à ajouter ou à supprimer : profile ICC, IPTC, ou générique.

profile

Le profile.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Analyse les couleurs d'une image de référence

  • « Gmagick::profileimage
  • Gmagick::quantizeimages »
  • PHP Manual
  • Gmagick
  • Analyse les couleurs d'une image de référence

Gmagick::quantizeimage

(PECL gmagick >= Unknown)

Gmagick::quantizeimage — Analyse les couleurs d'une image de référence

Description

public void Gmagick::quantizeimage ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError )

Analyse les couleurs d'une image de référence et choisit un nombre fixe de couleurs représentant l'image. Le but de l'algorithme est de minimiser les différences de couleurs entre l'image d'entrée et celle de sortie lors d'un processus d'optimisation.

Liste de paramètres

numColors

Le nombre de couleurs.

colorspace

Effectue la réduction de couleurs dans cette espace de couleurs, typiquement RGBColorspace.

treeDepth

Normalement, la valeur de cet entier est zéro ou un. Une telle valeur demande à Quantize de choisir une profondeur optionnelle de Log4(number_colors). Un arbre de cette profondeur autrise généralement la meilleure représentation de l'image de référence tout en utilisant une quantité de mémoire raisonnable ainsi qu'une rapidité d'exécution optimum. Dans certains cas, comme avec une image contenant des dispersions de couleurs basses (un petit nombre de couleurs), une valeur autre que Log4(number_colors) est nécessaire. Pour étendre totalement l'arbre de couleurs, utilisez la valeur 8.

dither

Une valeur autre que zéro distribue la différence entre l'image originale et la couleur correspondante réduite par l'algorithme vers les pixels voisins le long de la courbe Hilbert.

measureError

Une valeur autre que zéro mesure la différence entre l'image originale et l'image optimisée. Cette différence représente l'erreur totale de quantification. L'erreur est calculé en faisant la somme de tous les pixels dans une image carrée de la distance dans l'espace RVB entre chaque valeur de pixel de référence et sa valeur quantifiée.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Le but de quantizeimages

  • « Gmagick::quantizeimage
  • Gmagick::queryfontmetrics »
  • PHP Manual
  • Gmagick
  • Le but de quantizeimages

Gmagick::quantizeimages

(PECL gmagick >= Unknown)

Gmagick::quantizeimages — Le but de quantizeimages

Description

public void Gmagick::quantizeimages ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError )

Analyse les couleurs d'une séquence d'images et choisit un nombre fixe de couleurs pour représenter l'image. Le but de cet algorithme est de minimiser les différences de couleurs entre l'image d'entrée et celle de sortie lors d'un processus d'optimisation.

Liste de paramètres

numColors

Le nombre de couleurs.

colorspace

Effectue une réduction de couleur dans cet espace de couleur, habituellement, RGBColorspace.

treeDepth

Normalement, cet entier vaut zéro ou un. Ces valeurs indique au Quantize de choisir une profondeur d'arbre optimal de Log4(number_colors). Un arbre de cette profondeur autorise généralement la meilleure représentation de l'image de référence, avec un minimum de mémoire, et une rapidité d'exécution optimale. Dans certains cas, comme une image avec peu de dispersion de couleurs (un nombre peu élevé de couleurs), une valeur autre que Log4(number_colors) est nécessaire. Pour étendre l'arbre des couleurs complétement, utilisez la valeur 8.

dither

Une valeur autre que 0 distribue la différence entre l'image originale et la couleur correspondante réduite par l'algorithme aux pixels voisins le long d'une courbe Hilbert.

measureError

Une valeur autre que 0 mesure la différence entre l'image originale et celle quantifiée. La différence représente les erreurs de quantification. L'erreur est calculé en faisant la somme de tous les pixels dans une image carrée de la distance dans l'espace RVB entre chaque valeur de pixel de référence et sa valeur quantifiée.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Retourne un tableau représentant la métrique pour la police de caractères

  • « Gmagick::quantizeimages
  • Gmagick::queryfonts »
  • PHP Manual
  • Gmagick
  • Retourne un tableau représentant la métrique pour la police de caractères

Gmagick::queryfontmetrics

(PECL gmagick >= Unknown)

Gmagick::queryfontmetrics — Retourne un tableau représentant la métrique pour la police de caractères

Description

public array Gmagick::queryfontmetrics ( GmagickDraw $draw , string $text )

MagickQueryFontMetrics() retourne un tableau représentant la métrique pour la police de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Retourne les polices de caractères configurées

  • « Gmagick::queryfontmetrics
  • Gmagick::queryformats »
  • PHP Manual
  • Gmagick
  • Retourne les polices de caractères configurées

Gmagick::queryfonts

(PECL gmagick >= Unknown)

Gmagick::queryfonts — Retourne les polices de caractères configurées

Description

public array Gmagick::queryfonts ([ string $pattern = "*" ] )

Retourne les polices de caractères supportées par Gmagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Retourne les formats supportés par Gmagick

  • « Gmagick::queryfonts
  • Gmagick::radialblurimage »
  • PHP Manual
  • Gmagick
  • Retourne les formats supportés par Gmagick

Gmagick::queryformats

(PECL gmagick >= Unknown)

Gmagick::queryformats — Retourne les formats supportés par Gmagick

Description

public array Gmagick::queryformats ([ string $pattern = "*" ] )

Retourne les formats supportés par Gmagick.

Liste de paramètres

pattern

Spécifie un pointeur vers un texte contenant un masque.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Brouille une image suivant un rayon

  • « Gmagick::queryformats
  • Gmagick::raiseimage »
  • PHP Manual
  • Gmagick
  • Brouille une image suivant un rayon

Gmagick::radialblurimage

(PECL gmagick >= Unknown)

Gmagick::radialblurimage — Brouille une image suivant un rayon

Description

public void Gmagick::radialblurimage ( float $angle [, int $channel = Gmagick::CHANNEL_DEFAULT ] )

Brouille une image suivant un rayon.

Liste de paramètres

angle

L'angle de brouillage, en degrés.

channel

Canal concerné.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Crée un un bouton avec un effet 3D

  • « Gmagick::radialblurimage
  • Gmagick::read »
  • PHP Manual
  • Gmagick
  • Crée un un bouton avec un effet 3D

Gmagick::raiseimage

(PECL gmagick >= Unknown)

Gmagick::raiseimage — Crée un un bouton avec un effet 3D

Description

public void Gmagick::raiseimage ( int $width , int $height , int $x , int $y , bool $raise )

Crée un bouton avec un effet 3D en éclaircissant et en noircissant les angles de l'image. La hauteur et la margeur des membres de raise_info définissent la largeur du coin vertical et horizontal de l'effet.

Liste de paramètres

width

Largeur de la zone à traiter.

height

Hauteur de la zone à traiter.

x

Coordonnée en X.

y

Coordonnée en Y.

raise

Une valeur, autre que 0, pour créer l'effet 3D, sinon, l'effet sera amoindri.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Lit une image depuis un fichier

  • « Gmagick::raiseimage
  • Gmagick::readimage »
  • PHP Manual
  • Gmagick
  • Lit une image depuis un fichier

Gmagick::read

(PECL gmagick >= Unknown)

Gmagick::read — Lit une image depuis un fichier

Description

public void Gmagick::read ( string $filename )

Lit une image depuis un fichier.

Liste de paramètres

filename

Le nom du fichier image.

Valeurs de retour

Un objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Lit une image depuis un fichier

  • « Gmagick::read
  • Gmagick::readimageblob »
  • PHP Manual
  • Gmagick
  • Lit une image depuis un fichier

Gmagick::readimage

(PECL gmagick >= Unknown)

Gmagick::readimage — Lit une image depuis un fichier

Description

public void Gmagick::readimage ( string $filename )

Lit une image depuis un fichier.

Liste de paramètres

filename

Le nom du fichier image.

Valeurs de retour

Un objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Lit une image depuis une chaîne binaire

  • « Gmagick::readimage
  • Gmagick::readimagefile »
  • PHP Manual
  • Gmagick
  • Lit une image depuis une chaîne binaire

Gmagick::readimageblob

(PECL gmagick >= Unknown)

Gmagick::readimageblob — Lit une image depuis une chaîne binaire

Description

public void Gmagick::readimageblob ( string $imageContents [, string $filename ] )

Lit une image depuis une chaîne binaire.

Liste de paramètres

imageContents

Contenu de l'image.

filename

Le nom du fichier image.

Valeurs de retour

Un objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Le but de readimagefile

  • « Gmagick::readimageblob
  • Gmagick::reducenoiseimage »
  • PHP Manual
  • Gmagick
  • Le but de readimagefile

Gmagick::readimagefile

(PECL gmagick >= Unknown)

Gmagick::readimagefile — Le but de readimagefile

Description

public void Gmagick::readimagefile ( resource $fp [, string $filename ] )

Lit une image ou une séquence d'images depuis un descripteur de fichier ouvert.

Liste de paramètres

fp

Le descripteur de fichier.

Valeurs de retour

Un objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Lisse les contours de l'image

  • « Gmagick::readimagefile
  • Gmagick::removeimage »
  • PHP Manual
  • Gmagick
  • Lisse les contours de l'image

Gmagick::reducenoiseimage

(PECL gmagick >= Unknown)

Gmagick::reducenoiseimage — Lisse les contours de l'image

Description

public void Gmagick::reducenoiseimage ( float $radius )

Lisse les contours de l'image tout en conservant les informations des coins. L'algorithme fonctionne en remplaçant chaque pixel avec son voisin le plus proche de sa valeur. Un voisin est défini par son rayon. Utilisez un rayon de 0 et la méthode Gmagick::reduceNoiseImage() sélectionnera un rayon approprié pour vous.

Liste de paramètres

radius

Le rayon du pixel voisin.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Supprime une image depuis la liste des images

  • « Gmagick::reducenoiseimage
  • Gmagick::removeimageprofile »
  • PHP Manual
  • Gmagick
  • Supprime une image depuis la liste des images

Gmagick::removeimage

(PECL gmagick >= Unknown)

Gmagick::removeimage — Supprime une image depuis la liste des images

Description

public void Gmagick::removeimage ( void )

Supprime une image depuis la liste des images.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Supprime un profil nommé de l'image

  • « Gmagick::removeimage
  • Gmagick::resampleimage »
  • PHP Manual
  • Gmagick
  • Supprime un profil nommé de l'image

Gmagick::removeimageprofile

(PECL gmagick >= Unknown)

Gmagick::removeimageprofile — Supprime un profil nommé de l'image

Description

public string Gmagick::removeimageprofile ( string $name )

Supprime un profil nommé de l'image.

Liste de paramètres

name

Nom du profil à retourner : ICC, IPTC, ou un profil générique.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Échantillonne l'image à la résolution désirée

  • « Gmagick::removeimageprofile
  • Gmagick::resizeimage »
  • PHP Manual
  • Gmagick
  • Échantillonne l'image à la résolution désirée

Gmagick::resampleimage

(PECL gmagick >= Unknown)

Gmagick::resampleimage — Échantillonne l'image à la résolution désirée

Description

public void Gmagick::resampleimage ( float $xResolution , float $yResolution , int $filter , float $blur )

Échantillonne l'image à la résolution désirée.

Liste de paramètres

xResolution

La nouvelle résolution en X de l'image.

yResolution

La nouvelle résolution en Y de l'image.

filter

Filtre de l'image à utiliser.

blur

La facteur de flou où la valeur supérieure à 1 correspond a entièrement flou, et la valeur inférieure à 1, l'inverse.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Redimensionne une image

  • « Gmagick::resampleimage
  • Gmagick::rollimage »
  • PHP Manual
  • Gmagick
  • Redimensionne une image

Gmagick::resizeimage

(PECL gmagick >= Unknown)

Gmagick::resizeimage — Redimensionne une image

Description

public void Gmagick::resizeimage ( int $width , int $height , int $filter , float $blur [, bool $fit = false ] )

Redimensionne une image aux dimensions voulues, avec un filtre.

Liste de paramètres

width

Le nombre de colonnes dans l'image redimensionnée.

height

Le nombre de lignes dans l'image redimensionnée.

filter

Le filtre de l'image à utiliser.

blur

Le facteur de flou, où les valeurs supérieures à 1 correspond à entièrement flou, et les valeurs inférieures à 1, l'inverse.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Repositionne une image

  • « Gmagick::resizeimage
  • Gmagick::rotateimage »
  • PHP Manual
  • Gmagick
  • Repositionne une image

Gmagick::rollimage

(PECL gmagick >= Unknown)

Gmagick::rollimage — Repositionne une image

Description

public void Gmagick::rollimage ( int $x , int $y )

Repositionne une image en utilisant les paramètres x et y.

Liste de paramètres

x

La position en X.

y

La position en Y.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Effectue une rotation de l'image

  • « Gmagick::rollimage
  • Gmagick::scaleimage »
  • PHP Manual
  • Gmagick
  • Effectue une rotation de l'image

Gmagick::rotateimage

(PECL gmagick >= Unknown)

Gmagick::rotateimage — Effectue une rotation de l'image

Description

public Gmagick Gmagick::rotateimage ( mixed $color , float $degrees )

Effectue une rotation de l'image d'un degré spécifié. Les triangles vides non traités par la rotation seront remplis par la couleur d'arrière-plan.

Liste de paramètres

color

Le pixel d'arrière-plan.

degrees

Le degré de rotation de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Met à l'échelle une image

  • « Gmagick::rotateimage
  • Gmagick::separateimagechannel »
  • PHP Manual
  • Gmagick
  • Met à l'échelle une image

Gmagick::scaleimage

(PECL gmagick >= Unknown)

Gmagick::scaleimage — Met à l'échelle une image

Description

public Gmagick Gmagick::scaleimage ( int $width , int $height [, bool $fit = false ] )

Met à l'échelle une image aux dimensions fournies. Les autresparamètres seront calculés si 0 est passé en tant que paramètre.

Liste de paramètres

width

Le nombre de colonnes dans l'image mise à l'échelle.

height

Le nombre de lignes dans l'image mise à l'échelle.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Sépare un canal depuis une image

  • « Gmagick::scaleimage
  • Gmagick::setCompressionQuality »
  • PHP Manual
  • Gmagick
  • Sépare un canal depuis une image

Gmagick::separateimagechannel

(PECL gmagick >= Unknown)

Gmagick::separateimagechannel — Sépare un canal depuis une image

Description

public Gmagick Gmagick::separateimagechannel ( int $channel )

Sépare un canal depuis une image et retourne une image en niveau de gris. Un canal est un composant d'une couleur particulière de chaque pixel d'une image.

Liste de paramètres

channel

Canal à extraire : RedChannel, GreenChannel, BlueChannel, OpacityChannel, CyanChannel, MagentaChannel, YellowChannel, BlackChannel.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Sets the object's default compression quality

  • « Gmagick::separateimagechannel
  • Gmagick::setfilename »
  • PHP Manual
  • Gmagick
  • Sets the object's default compression quality

Gmagick::setCompressionQuality

(No version information available, might only be in Git)

Gmagick::setCompressionQuality — Sets the object's default compression quality

Description

Gmagick Gmagick::setCompressionQuality ( int $quality = 75 )

Sets the object's default compression quality.

Liste de paramètres

quality

Valeurs de retour

The Gmagick object on success

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.

Exemples

Exemple #1 Gmagick::setCompressionQuality()

<?php
$gm = new Gmagick();
$gm->read("magick:rose");
$gm->setCompressionQuality(2);
?>


Définit le nom de fichier avant la lecture ou l'écriture d'une image

  • « Gmagick::setCompressionQuality
  • Gmagick::setimagebackgroundcolor »
  • PHP Manual
  • Gmagick
  • Définit le nom de fichier avant la lecture ou l'écriture d'une image

Gmagick::setfilename

(PECL gmagick >= Unknown)

Gmagick::setfilename — Définit le nom de fichier avant la lecture ou l'écriture d'une image

Description

public Gmagick Gmagick::setfilename ( string $filename )

Définit le nom de fichier avant la lecture ou l'écriture d'une image.

Liste de paramètres

filename

Le nom de fichier de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit la couleur d'arrière-plan de l'image

  • « Gmagick::setfilename
  • Gmagick::setimageblueprimary »
  • PHP Manual
  • Gmagick
  • Définit la couleur d'arrière-plan de l'image

Gmagick::setimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::setimagebackgroundcolor — Définit la couleur d'arrière-plan de l'image

Description

public Gmagick Gmagick::setimagebackgroundcolor ( GmagickPixel $color )

Définit la couleur d'arrière-plan de l'image.

Liste de paramètres

color

La couleur d'arrière-plan.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit le point bleu primaire de l'image chromatique

  • « Gmagick::setimagebackgroundcolor
  • Gmagick::setimagebordercolor »
  • PHP Manual
  • Gmagick
  • Définit le point bleu primaire de l'image chromatique

Gmagick::setimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::setimageblueprimary — Définit le point bleu primaire de l'image chromatique

Description

public Gmagick Gmagick::setimageblueprimary ( float $x , float $y )

Définit le point bleu primaire de l'image chromatique.

Liste de paramètres

x

Coordonnée en X du point du bleu primaire.

y

Coordonnée en Y du point du bleu primaire.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit la couleur de la bordure de l'image

  • « Gmagick::setimageblueprimary
  • Gmagick::setimagechanneldepth »
  • PHP Manual
  • Gmagick
  • Définit la couleur de la bordure de l'image

Gmagick::setimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::setimagebordercolor — Définit la couleur de la bordure de l'image

Description

public Gmagick Gmagick::setimagebordercolor ( GmagickPixel $color )

Définit la couleur de la bordure de l'image.

Liste de paramètres

color

La couleur de la bordure.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit la profondeur d'un canal particulier de l'image

  • « Gmagick::setimagebordercolor
  • Gmagick::setimagecolorspace »
  • PHP Manual
  • Gmagick
  • Définit la profondeur d'un canal particulier de l'image

Gmagick::setimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::setimagechanneldepth — Définit la profondeur d'un canal particulier de l'image

Description

public Gmagick Gmagick::setimagechanneldepth ( int $channel , int $depth )

Définit la profondeur d'un canal particulier de l'image.

Liste de paramètres

channel

Identifie le canal à extraire : RedChannel, GreenChannel, BlueChannel, OpacityChannel, CyanChannel, MagentaChannel, YellowChannel, BlackChannel.

depth

La profondeur de l'image, en octets.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit l'espace de couleurs de l'image

  • « Gmagick::setimagechanneldepth
  • Gmagick::setimagecompose »
  • PHP Manual
  • Gmagick
  • Définit l'espace de couleurs de l'image

Gmagick::setimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::setimagecolorspace — Définit l'espace de couleurs de l'image

Description

public Gmagick Gmagick::setimagecolorspace ( int $colorspace )

Définit l'espace de couleurs de l'image.

Liste de paramètres

colorspace

L'espace de couleurs de l'image : UndefinedColorspace, RGBColorspace, GRAYColorspace, TransparentColorspace, OHTAColorspace, XYZColorspace, YCbCrColorspace, YCCColorspace, YIQColorspace, YPbPrColorspace, YPbPrColorspace, YUVColorspace, CMYKColorspace, sRGBColorspace, HSLColorspace, ou HWBColorspace.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit l'opérateur de composition de l'image

  • « Gmagick::setimagecolorspace
  • Gmagick::setimagedelay »
  • PHP Manual
  • Gmagick
  • Définit l'opérateur de composition de l'image

Gmagick::setimagecompose

(PECL gmagick >= Unknown)

Gmagick::setimagecompose — Définit l'opérateur de composition de l'image

Description

public Gmagick Gmagick::setimagecompose ( int $composite )

Définit l'opérateur de composition de l'image.

Liste de paramètres

composite

L'opérateur de composition de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit le délai de l'image

  • « Gmagick::setimagecompose
  • Gmagick::setimagedepth »
  • PHP Manual
  • Gmagick
  • Définit le délai de l'image

Gmagick::setimagedelay

(PECL gmagick >= Unknown)

Gmagick::setimagedelay — Définit le délai de l'image

Description

public Gmagick Gmagick::setimagedelay ( int $delay )

Définit le délai de l'image.

Liste de paramètres

delay

Le délai de l'image, au 1/100ème de seconde.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit la profondeur de l'image

  • « Gmagick::setimagedelay
  • Gmagick::setimagedispose »
  • PHP Manual
  • Gmagick
  • Définit la profondeur de l'image

Gmagick::setimagedepth

(PECL gmagick >= Unknown)

Gmagick::setimagedepth — Définit la profondeur de l'image

Description

public Gmagick Gmagick::setimagedepth ( int $depth )

Définit la profondeur de l'image.

Liste de paramètres

depth

La profondeur de l'image, en octets : 8, 16, ou 32.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit la méthode de disposition de l'image

  • « Gmagick::setimagedepth
  • Gmagick::setimagefilename »
  • PHP Manual
  • Gmagick
  • Définit la méthode de disposition de l'image

Gmagick::setimagedispose

(PECL gmagick >= Unknown)

Gmagick::setimagedispose — Définit la méthode de disposition de l'image

Description

public Gmagick Gmagick::setimagedispose ( int $disposeType )

Définit la méthode de disposition de l'image.

Liste de paramètres

disposeType

Le type de disposition de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit le nom du fichier pour une image particulière d'une séquence

  • « Gmagick::setimagedispose
  • Gmagick::setimageformat »
  • PHP Manual
  • Gmagick
  • Définit le nom du fichier pour une image particulière d'une séquence

Gmagick::setimagefilename

(PECL gmagick >= Unknown)

Gmagick::setimagefilename — Définit le nom du fichier pour une image particulière d'une séquence

Description

public Gmagick Gmagick::setimagefilename ( string $filename )

Définit le nom du fichier pour une image particulière d'une séquence.

Liste de paramètres

filename

Le nom du fichier de l'image.

Valeurs de retour

L'objet Gmagick object en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit le format d'une image

  • « Gmagick::setimagefilename
  • Gmagick::setimagegamma »
  • PHP Manual
  • Gmagick
  • Définit le format d'une image

Gmagick::setimageformat

(PECL gmagick >= Unknown)

Gmagick::setimageformat — Définit le format d'une image

Description

public Gmagick Gmagick::setimageformat ( string $imageFormat )

Définit le format d'une image particulière d'une séquence.

Liste de paramètres

imageFormat

Le format de l'image.

Valeurs de retour

L'objet Gmagick object en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit le gamma de l'image

  • « Gmagick::setimageformat
  • Gmagick::setimagegreenprimary »
  • PHP Manual
  • Gmagick
  • Définit le gamma de l'image

Gmagick::setimagegamma

(PECL gmagick >= Unknown)

Gmagick::setimagegamma — Définit le gamma de l'image

Description

public Gmagick Gmagick::setimagegamma ( float $gamma )

Définit le gamma de l'image.

Liste de paramètres

gamma

Le gamma de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit le point vert sur l'image chromatique primaire

  • « Gmagick::setimagegamma
  • Gmagick::setimageindex »
  • PHP Manual
  • Gmagick
  • Définit le point vert sur l'image chromatique primaire

Gmagick::setimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::setimagegreenprimary — Définit le point vert sur l'image chromatique primaire

Description

public Gmagick Gmagick::setimagegreenprimary ( float $x , float $y )

Définit le point vert sur l'image chromatique primaire.

Liste de paramètres

x

Coordonnée en X du point vert de l'image chromatique.

y

Coordonnée en Y du point vert de l'image chromatique.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit l'itérateur à la position spécifiée dans l'image de la liste pointée par son index

  • « Gmagick::setimagegreenprimary
  • Gmagick::setimageinterlacescheme »
  • PHP Manual
  • Gmagick
  • Définit l'itérateur à la position spécifiée dans l'image de la liste pointée par son index

Gmagick::setimageindex

(PECL gmagick >= Unknown)

Gmagick::setimageindex — Définit l'itérateur à la position spécifiée dans l'image de la liste pointée par son index

Description

public Gmagick Gmagick::setimageindex ( int $index )

Définit l'itérateur à la position spécifiée dans l'image de la liste pointée par son index.

Liste de paramètres

index

Le numéro de la scène.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit le schéma d'entrelacement de l'image

  • « Gmagick::setimageindex
  • Gmagick::setimageiterations »
  • PHP Manual
  • Gmagick
  • Définit le schéma d'entrelacement de l'image

Gmagick::setimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::setimageinterlacescheme — Définit le schéma d'entrelacement de l'image

Description

public Gmagick Gmagick::setimageinterlacescheme ( int $interlace )

Définit le schéma d'entrelacement de l'image.

Liste de paramètres

interlace

Le schéma d'entrelacement de l'image : NoInterlace, LineInterlace, PlaneInterlace, PartitionInterlace.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit les itérations de l'image

  • « Gmagick::setimageinterlacescheme
  • Gmagick::setimageprofile »
  • PHP Manual
  • Gmagick
  • Définit les itérations de l'image

Gmagick::setimageiterations

(PECL gmagick >= Unknown)

Gmagick::setimageiterations — Définit les itérations de l'image

Description

public Gmagick Gmagick::setimageiterations ( int $iterations )

Définit les itérations de l'image.

Liste de paramètres

iterations

Le délai de l'image au 1/100ème de seconde.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Ajoute un profile nommé à l'objet Gmagick

  • « Gmagick::setimageiterations
  • Gmagick::setimageredprimary »
  • PHP Manual
  • Gmagick
  • Ajoute un profile nommé à l'objet Gmagick

Gmagick::setimageprofile

(PECL gmagick >= Unknown)

Gmagick::setimageprofile — Ajoute un profile nommé à l'objet Gmagick

Description

public Gmagick Gmagick::setimageprofile ( string $name , string $profile )

Ajoute un profile nommé à l'objet Gmagick. Si un profile avec le même nom existe déjà, il sera remplacé. Cette méthode diffère de la méthode Gmagick::ProfileImage() dans le fait qu'elle n'applique aucun profile de couleur CMS.

Liste de paramètres

name

Nom du profile à ajouter ou à effacer : ICC, IPTC, ou un profile générique.

profile

Le profile.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit le point rouge sur l'image chromatique primaire

  • « Gmagick::setimageprofile
  • Gmagick::setimagerenderingintent »
  • PHP Manual
  • Gmagick
  • Définit le point rouge sur l'image chromatique primaire

Gmagick::setimageredprimary

(PECL gmagick >= Unknown)

Gmagick::setimageredprimary — Définit le point rouge sur l'image chromatique primaire

Description

public Gmagick Gmagick::setimageredprimary ( float $x , float $y )

Définit le point rouge sur l'image chromatique primaire.

Liste de paramètres

x

Coordonnée en X du point rouge de l'image chromatique.

y

Coordonnée en Y du point rouge de l'image chromatique.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit l'image de rendu

  • « Gmagick::setimageredprimary
  • Gmagick::setimageresolution »
  • PHP Manual
  • Gmagick
  • Définit l'image de rendu

Gmagick::setimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::setimagerenderingintent — Définit l'image de rendu

Description

public Gmagick Gmagick::setimagerenderingintent ( int $rendering_intent )

Définit l'image de rendu.

Liste de paramètres

rendering_intent

Le rendu de l'image : UndefinedIntent, SaturationIntent, PerceptualIntent, AbsoluteIntent, ou RelativeIntent.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit la résolution de l'image

  • « Gmagick::setimagerenderingintent
  • Gmagick::setimagescene »
  • PHP Manual
  • Gmagick
  • Définit la résolution de l'image

Gmagick::setimageresolution

(PECL gmagick >= Unknown)

Gmagick::setimageresolution — Définit la résolution de l'image

Description

public Gmagick Gmagick::setimageresolution ( float $xResolution , float $yResolution )

Définit la résolution de l'image.

Liste de paramètres

xResolution

La résolution en X de l'image.

yResolution

La résolution en Y de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit l'image de scène

  • « Gmagick::setimageresolution
  • Gmagick::setimagetype »
  • PHP Manual
  • Gmagick
  • Définit l'image de scène

Gmagick::setimagescene

(PECL gmagick >= Unknown)

Gmagick::setimagescene — Définit l'image de scène

Description

public Gmagick Gmagick::setimagescene ( int $scene )

Définit l'image de scène.

Liste de paramètres

scene

Le numéro de la scène dans l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit le type de l'image

  • « Gmagick::setimagescene
  • Gmagick::setimageunits »
  • PHP Manual
  • Gmagick
  • Définit le type de l'image

Gmagick::setimagetype

(PECL gmagick >= Unknown)

Gmagick::setimagetype — Définit le type de l'image

Description

public Gmagick Gmagick::setimagetype ( int $imgType )

Définit le type de l'image.

Liste de paramètres

imgType

Le type de l'image : UndefinedType, BilevelType, GrayscaleType, GrayscaleMatteType, PaletteType, PaletteMatteType, TrueColorType, TrueColorMatteType, ColorSeparationType, ColorSeparationMatteType, ou OptimizeType.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit les unités à utiliser pour la résolution de l'image

  • « Gmagick::setimagetype
  • Gmagick::setimagewhitepoint »
  • PHP Manual
  • Gmagick
  • Définit les unités à utiliser pour la résolution de l'image

Gmagick::setimageunits

(PECL gmagick >= Unknown)

Gmagick::setimageunits — Définit les unités à utiliser pour la résolution de l'image

Description

public Gmagick Gmagick::setimageunits ( int $resolution )

Définit les unités à utiliser pour la résolution de l'image.

Liste de paramètres

resolution

Les unités à utiliser pour la résolution de l'image : Undefinedresolution, PixelsPerInchResolution, ou PixelsPerCentimeterResolution.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit le point blanc sur l'image chromatique primaire

  • « Gmagick::setimageunits
  • Gmagick::setsamplingfactors »
  • PHP Manual
  • Gmagick
  • Définit le point blanc sur l'image chromatique primaire

Gmagick::setimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::setimagewhitepoint — Définit le point blanc sur l'image chromatique primaire

Description

public Gmagick Gmagick::setimagewhitepoint ( float $x , float $y )

Définit le point blanc sur l'image chromatique primaire.

Liste de paramètres

x

Coordonnée en X du point blanc de l'image chromatique.

y

Coordonnée en Y du point blanc de l'image chromatique.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit les facteurs d'échantillonnage de l'image

  • « Gmagick::setimagewhitepoint
  • Gmagick::setsize »
  • PHP Manual
  • Gmagick
  • Définit les facteurs d'échantillonnage de l'image

Gmagick::setsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::setsamplingfactors — Définit les facteurs d'échantillonnage de l'image

Description

public Gmagick Gmagick::setsamplingfactors ( array $factors )

Définit les facteurs d'échantillonnage de l'image.

Liste de paramètres

factors

Un tableau à 2 dimensions, représentant le facteur d'échantillonnage pour chaque composant de couleur (dans l'ordre RVB).

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit la taille de l'objet Gmagick

  • « Gmagick::setsamplingfactors
  • Gmagick::shearimage »
  • PHP Manual
  • Gmagick
  • Définit la taille de l'objet Gmagick

Gmagick::setsize

(PECL gmagick >= Unknown)

Gmagick::setsize — Définit la taille de l'objet Gmagick

Description

public Gmagick Gmagick::setsize ( int $columns , int $rows )

Définit la taille de l'objet Gmagick. Définissez la taille avant de lire une image brute au format RGB, GRAY, ou CMYK.

Liste de paramètres

columns

La largeur, en pixels.

rows

La hauteur, en pixels.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Crée un parallélogramme

  • « Gmagick::setsize
  • Gmagick::solarizeimage »
  • PHP Manual
  • Gmagick
  • Crée un parallélogramme

Gmagick::shearimage

(PECL gmagick >= Unknown)

Gmagick::shearimage — Crée un parallélogramme

Description

public Gmagick Gmagick::shearimage ( mixed $color , float $xShear , float $yShear )

Bouge un coin de l'image le long des axes X ou Y pour créer un parallélogramme. Une direction en X bouge le long de l'axe X, tandis qu'une direction en Y bouge le long de l'axe Y. La quantité de cisaillement est contrôlé par un angle de cisaillement. Pour les cisaillements en direction X, x_shear est mesuré relativement à l'axe Y, et inversement, pour les cisaillements en direction Y, y_shear est mesuré relativement à l'axe X. Les triangles vides ainsi créés lors du cisaillement de l'image seront remplis par la couleur d'arrière-plan.

Liste de paramètres

color

Le pixel d'arrière-plan.

xShear

Le degré de cisaillement de l'image.

yShear

Le degré de cisaillement de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Applique un effet de solarisation à l'image

  • « Gmagick::shearimage
  • Gmagick::spreadimage »
  • PHP Manual
  • Gmagick
  • Applique un effet de solarisation à l'image

Gmagick::solarizeimage

(PECL gmagick >= Unknown)

Gmagick::solarizeimage — Applique un effet de solarisation à l'image

Description

public Gmagick Gmagick::solarizeimage ( int $threshold )

Applique un effet de solarisation à l'image, similaire à l'effet créé dans une photo en chambre noire, en exposant les zones d'une photo sur papier sensitif à la lumière. Le seuil varie de 0 à QuantumRange et est une mesure de l'étendue de la solarisation.

Liste de paramètres

threshold

Définit l'étendu de la solarisation.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Déplace aléatoirement chaque pixel d'un bloc

  • « Gmagick::solarizeimage
  • Gmagick::stripimage »
  • PHP Manual
  • Gmagick
  • Déplace aléatoirement chaque pixel d'un bloc

Gmagick::spreadimage

(PECL gmagick >= Unknown)

Gmagick::spreadimage — Déplace aléatoirement chaque pixel d'un bloc

Description

public Gmagick Gmagick::spreadimage ( float $radius )

Effet spécial qui déplace aléatoirement chaque pixel d'un bloc défini par le paramètre radius.

Liste de paramètres

radius

Choisit des pixels aléatoirement dans le voisinage de cette étendue.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Supprime d'une image tous les profiles et tous les commentaires

  • « Gmagick::spreadimage
  • Gmagick::swirlimage »
  • PHP Manual
  • Gmagick
  • Supprime d'une image tous les profiles et tous les commentaires

Gmagick::stripimage

(PECL gmagick >= Unknown)

Gmagick::stripimage — Supprime d'une image tous les profiles et tous les commentaires

Description

public Gmagick Gmagick::stripimage ( void )

Supprime d'une image tous les profiles et tous les commentaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Remous les pixels du centre de l'image

  • « Gmagick::stripimage
  • Gmagick::thumbnailimage »
  • PHP Manual
  • Gmagick
  • Remous les pixels du centre de l'image

Gmagick::swirlimage

(PECL gmagick >= Unknown)

Gmagick::swirlimage — Remous les pixels du centre de l'image

Description

public Gmagick Gmagick::swirlimage ( float $degrees )

Remous les pixels du centre de l'image, où les degrés indiquent l'arc de remous autour duquel les pixels sont déplacés. Vous pouvez obtenir un effet de plus en plus soutenu en modifiant les degrés de 1 à 360.

Liste de paramètres

degrees

Définit la finesse de l'effet de remous.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Modifie la taille d'une image

  • « Gmagick::swirlimage
  • Gmagick::trimimage »
  • PHP Manual
  • Gmagick
  • Modifie la taille d'une image

Gmagick::thumbnailimage

(PECL gmagick >= Unknown)

Gmagick::thumbnailimage — Modifie la taille d'une image

Description

public Gmagick Gmagick::thumbnailimage ( int $width , int $height [, bool $fit = false ] )

Modifie la taille d'une image aux dimensions données et supprime les profiles associés. Le but est de produire une image miniature, moins lourde, aux fins d'affichage sur le Web. Si TRUE est fourni comme valeur du 3ème paramètre, alors les paramètres width et height sont utilisés comme valeurs maximales pour chaque côté. Les 2 côtés seront mis à l'échelle lors de l'opération.

Liste de paramètres

width

largeur de l'image.

height

Hauteur de l'image.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Supprime les coins de l'image

  • « Gmagick::thumbnailimage
  • Gmagick::write »
  • PHP Manual
  • Gmagick
  • Supprime les coins de l'image

Gmagick::trimimage

(PECL gmagick >= Unknown)

Gmagick::trimimage — Supprime les coins de l'image

Description

public Gmagick Gmagick::trimimage ( float $fuzz )

Supprime les coins qui sont de la couleur de l'arrière-plan depuis l'image.

Liste de paramètres

fuzz

Par défaut, la cible doit correspondre exactement à la couleur du pixel précis. Cependant, dans beaucoup de cas, 2 couleurs peuvent différer très légèrement. Ce paramètre indique donc la tolérance acceptable à considérer 2 couleurs comme identiques.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Écrit une image dans un fichier

  • « Gmagick::trimimage
  • Gmagick::writeimage »
  • PHP Manual
  • Gmagick
  • Écrit une image dans un fichier

Gmagick::write

(PECL gmagick >= Unknown)

Gmagick::write — Écrit une image dans un fichier

Description

public void Gmagick::write ( string $filename )

Écrit une image dans un fichier spécifique. Si le paramètre filename vaut NULL, l'image sera écrite dans le fichier défini par la méthode Gmagick::ReadImage() ou la méthode Gmagick::SetImageFilename().

Liste de paramètres

filename

Le nom du fichier.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Écrit une image dans un fichier

  • « Gmagick::write
  • GmagickDraw »
  • PHP Manual
  • Gmagick
  • Écrit une image dans un fichier

Gmagick::writeimage

(PECL gmagick >= Unknown)

Gmagick::writeimage — Écrit une image dans un fichier

Description

public Gmagick Gmagick::writeimage ( string $filename [, bool $all_frames = false ] )

Écrit une image dans un fichier spécifique. Si le paramètre filename vaut NULL, l'image sera écrite dans le fichier défini par la méthode Gmagick::ReadImage() ou la méthode Gmagick::SetImageFilename().

Liste de paramètres

filename

Le nom du fichier.

Valeurs de retour

L'objet Gmagick en cas de succès.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


La classe GmagickDraw

(PECL gmagick >= Unknown)

Introduction

Synopsis de la classe

GmagickDraw {
/* Méthodes */
public GmagickDraw annotate ( float $x , float $y , string $text )
public GmagickDraw arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )
public GmagickDraw bezier ( array $coordinate_array )
public GmagickDraw ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )
public void getfillcolor ( void )
public float getfillopacity ( void )
public string getfont ( void )
public float getfontsize ( void )
public int getfontstyle ( void )
public int getfontweight ( void )
public void getstrokecolor ( void )
public float getstrokeopacity ( void )
public float getstrokewidth ( void )
public int gettextdecoration ( void )
public string gettextencoding ( void )
public GmagickDraw line ( float $sx , float $sy , float $ex , float $ey )
public GmagickDraw point ( float $x , float $y )
public GmagickDraw polygon ( array $coordinates )
public GmagickDraw polyline ( array $coordinate_array )
public GmagickDraw rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )
public GmagickDraw rotate ( float $degrees )
public GmagickDraw roundrectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )
public GmagickDraw scale ( float $x , float $y )
public GmagickDraw setfillcolor ( string $color )
public GmagickDraw setfillopacity ( float $fill_opacity )
public GmagickDraw setfont ( string $font )
public GmagickDraw setfontsize ( float $pointsize )
public GmagickDraw setfontstyle ( int $style )
public GmagickDraw setfontweight ( int $weight )
public GmagickDraw setstrokecolor ( GmagickPixel $color )
public GmagickDraw setstrokeopacity ( float $stroke_opacity )
public GmagickDraw setstrokewidth ( float $width )
public GmagickDraw settextdecoration ( int $decoration )
public GmagickDraw settextencoding ( string $encoding )
}

Sommaire

  • GmagickDraw::annotate — Dessine un texte sur l'image
  • GmagickDraw::arc — Dessine un arc
  • GmagickDraw::bezier — Dessine une courbe de Bézier
  • GmagickDraw::ellipse — Dessine une ellipse sur l'image
  • GmagickDraw::getfillcolor — Retourne la couleur de remplissage
  • GmagickDraw::getfillopacity — Retourne l'opacité utilisée lors d'un dessin
  • GmagickDraw::getfont — Retourne la police de caractères
  • GmagickDraw::getfontsize — Retourne la taille du point d'une police de caractères
  • GmagickDraw::getfontstyle — Retourne le style de la police de caractères
  • GmagickDraw::getfontweight — Retourne le poids de la police de caractères
  • GmagickDraw::getstrokecolor — Retourne la couleur utilisée pour tracer les contours de l'objet
  • GmagickDraw::getstrokeopacity — Retourne l'opacité du tracé des contours de l'objet
  • GmagickDraw::getstrokewidth — Retourne la largeur utilisée pour les contours de l'objet
  • GmagickDraw::gettextdecoration — Retourne la décoration du texte
  • GmagickDraw::gettextencoding — Retourne le code du jeu de caractères à utiliser pour les annotations
  • GmagickDraw::line — Le but de la méthode line
  • GmagickDraw::point — Dessine un point
  • GmagickDraw::polygon — Dessine un polygone
  • GmagickDraw::polyline — Dessine une polyligne
  • GmagickDraw::rectangle — Dessine un rectangle
  • GmagickDraw::rotate — Applique une rotation
  • GmagickDraw::roundrectangle — Dessine un rectangle arrondi
  • GmagickDraw::scale — Ajuste le facteur d'échelle
  • GmagickDraw::setfillcolor — Définit la couleur de remplissage à utiliser pour dessiner des objets pleins
  • GmagickDraw::setfillopacity — Le but de la méthode setfillopacity
  • GmagickDraw::setfont — Définit la police de caractère à utiliser lors d'une annotation
  • GmagickDraw::setfontsize — Définit la taille, en points, de la police de caractère utilisée lors d'une annotation
  • GmagickDraw::setfontstyle — Définit le style de police de caractères à utiliser lors d'une annotation
  • GmagickDraw::setfontweight — Définit le poids de la police de caractères
  • GmagickDraw::setstrokecolor — Définit la couleur à utiliser pour tracer les contours de l'objet
  • GmagickDraw::setstrokeopacity — Spécifie l'opacité pour les contours de l'objet
  • GmagickDraw::setstrokewidth — Définit la largeur des contours de l'objet
  • GmagickDraw::settextdecoration — Spécifie une décoration
  • GmagickDraw::settextencoding — Spécifie le code du jeu de caractères à utiliser


Dessine un texte sur l'image

  • « GmagickDraw
  • GmagickDraw::arc »
  • PHP Manual
  • GmagickDraw
  • Dessine un texte sur l'image

GmagickDraw::annotate

(PECL gmagick >= Unknown)

GmagickDraw::annotate — Dessine un texte sur l'image

Description

public GmagickDraw GmagickDraw::annotate ( float $x , float $y , string $text )

Dessine un texte sur l'image.

Liste de paramètres

x

Coordonnée en X de la gauche du texte.

y

Coordonnée en Y de la base du texte.

text

Le texte à dessiner.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Dessine un arc

  • « GmagickDraw::annotate
  • GmagickDraw::bezier »
  • PHP Manual
  • GmagickDraw
  • Dessine un arc

GmagickDraw::arc

(PECL gmagick >= Unknown)

GmagickDraw::arc — Dessine un arc

Description

public GmagickDraw GmagickDraw::arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )

Dessine un arc dans un rectangle spécifié sur l'image.

Liste de paramètres

sx

Coordonnée en X du début du rectangle conteneur.

sy

Coordonnée en Y du début du rectangle conteneur.

ex

Coordonnée en X de la fin du rectangle conteneur.

ey

Coordonnée en Y de la fin du rectangle conteneur.

sd

Degré de départ de la rotation.

ed

Degré de fin de la rotation.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Dessine une courbe de Bézier

  • « GmagickDraw::arc
  • GmagickDraw::ellipse »
  • PHP Manual
  • GmagickDraw
  • Dessine une courbe de Bézier

GmagickDraw::bezier

(PECL gmagick >= Unknown)

GmagickDraw::bezier — Dessine une courbe de Bézier

Description

public GmagickDraw GmagickDraw::bezier ( array $coordinate_array )

Dessine une courbe de Bézier sur un jeu de points de l'image.

Liste de paramètres

coordinate_array

Tableau de coordonnées

Valeurs de retour

L'objet GmagickDraw object en cas de succès.


Dessine une ellipse sur l'image

  • « GmagickDraw::bezier
  • GmagickDraw::getfillcolor »
  • PHP Manual
  • GmagickDraw
  • Dessine une ellipse sur l'image

GmagickDraw::ellipse

(PECL gmagick >= Unknown)

GmagickDraw::ellipse — Dessine une ellipse sur l'image

Description

public GmagickDraw GmagickDraw::ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )

Dessine une ellipse sur l'image.

Liste de paramètres

ox

Coordonnée en X d'origine.

oy

Coordonnée en Y d'origine.

rx

Rayon en X.

ry

Rayon en Y.

start

Rotation de départ, en degrés.

end

Rotation de fin, en degrés.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Retourne la couleur de remplissage

  • « GmagickDraw::ellipse
  • GmagickDraw::getfillopacity »
  • PHP Manual
  • GmagickDraw
  • Retourne la couleur de remplissage

GmagickDraw::getfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::getfillcolor — Retourne la couleur de remplissage

Description

public void GmagickDraw::getfillcolor ( void )

Retourne la couleur de remplissage utilisée pour dessiner les objets pleins.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La couleur de remplissage GmagickPixel utilisée pour dessiner les objets pleins.


Retourne l'opacité utilisée lors d'un dessin

  • « GmagickDraw::getfillcolor
  • GmagickDraw::getfont »
  • PHP Manual
  • GmagickDraw
  • Retourne l'opacité utilisée lors d'un dessin

GmagickDraw::getfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::getfillopacity — Retourne l'opacité utilisée lors d'un dessin

Description

public float GmagickDraw::getfillopacity ( void )

Retourne l'opacité utilisée lors d'un dessin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'opacité utilisée lors d'un dessin utilisant une couleur de remplissage ou une texture de remplissage. Pour une opacité totalement opaque, utilisez la valeur 1.0.


Retourne la police de caractères

  • « GmagickDraw::getfillopacity
  • GmagickDraw::getfontsize »
  • PHP Manual
  • GmagickDraw
  • Retourne la police de caractères

GmagickDraw::getfont

(PECL gmagick >= Unknown)

GmagickDraw::getfont — Retourne la police de caractères

Description

public string GmagickDraw::getfont ( void )

Retourne une chaîne spécifiant la police de caractères utilisée lors d'une annotation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et FALSE si la police de caractères n'est pas définie.


Retourne la taille du point d'une police de caractères

  • « GmagickDraw::getfont
  • GmagickDraw::getfontstyle »
  • PHP Manual
  • GmagickDraw
  • Retourne la taille du point d'une police de caractères

GmagickDraw::getfontsize

(PECL gmagick >= Unknown)

GmagickDraw::getfontsize — Retourne la taille du point d'une police de caractères

Description

public float GmagickDraw::getfontsize ( void )

Retourne la taille du point d'une police de caractères uitilisé lors d'une annotation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille de la police de caractères associée avec l'objet GmagickDraw courant.


Retourne le style de la police de caractères

  • « GmagickDraw::getfontsize
  • GmagickDraw::getfontweight »
  • PHP Manual
  • GmagickDraw
  • Retourne le style de la police de caractères

GmagickDraw::getfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::getfontstyle — Retourne le style de la police de caractères

Description

public int GmagickDraw::getfontstyle ( void )

Retourne le style de la police de caractères utilisée lors d'une annotation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la constante (STYLE_) représentant le style de la police de caractères associée avec l'objet GmagickDraw ou 0 si le style n'est pas défini.


Retourne le poids de la police de caractères

  • « GmagickDraw::getfontstyle
  • GmagickDraw::getstrokecolor »
  • PHP Manual
  • GmagickDraw
  • Retourne le poids de la police de caractères

GmagickDraw::getfontweight

(PECL gmagick >= Unknown)

GmagickDraw::getfontweight — Retourne le poids de la police de caractères

Description

public int GmagickDraw::getfontweight ( void )

Retourne le poids de la police de caractères utilisée lors d'une annotation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et 0 si le poids n'est pas défini.


Retourne la couleur utilisée pour tracer les contours de l'objet

  • « GmagickDraw::getfontweight
  • GmagickDraw::getstrokeopacity »
  • PHP Manual
  • GmagickDraw
  • Retourne la couleur utilisée pour tracer les contours de l'objet

GmagickDraw::getstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::getstrokecolor — Retourne la couleur utilisée pour tracer les contours de l'objet

Description

public void GmagickDraw::getstrokecolor ( void )

Retourne la couleur utilisée pour tracer les contours de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet GmagickPixel qui décrit la couleur.


Retourne l'opacité du tracé des contours de l'objet

  • « GmagickDraw::getstrokecolor
  • GmagickDraw::getstrokewidth »
  • PHP Manual
  • GmagickDraw
  • Retourne l'opacité du tracé des contours de l'objet

GmagickDraw::getstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::getstrokeopacity — Retourne l'opacité du tracé des contours de l'objet

Description

public float GmagickDraw::getstrokeopacity ( void )

Retourne l'opacité du tracé des contours de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un double, décrivant l'opacité.


Retourne la largeur utilisée pour les contours de l'objet

  • « GmagickDraw::getstrokeopacity
  • GmagickDraw::gettextdecoration »
  • PHP Manual
  • GmagickDraw
  • Retourne la largeur utilisée pour les contours de l'objet

GmagickDraw::getstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::getstrokewidth — Retourne la largeur utilisée pour les contours de l'objet

Description

public float GmagickDraw::getstrokewidth ( void )

Retourne la largeur utilisée pour les contours de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un double décrivant la largeur des contours.


Retourne la décoration du texte

  • « GmagickDraw::getstrokewidth
  • GmagickDraw::gettextencoding »
  • PHP Manual
  • GmagickDraw
  • Retourne la décoration du texte

GmagickDraw::gettextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::gettextdecoration — Retourne la décoration du texte

Description

public int GmagickDraw::gettextdecoration ( void )

Retourne la décoration à appliquer à du texte lors d'une annotation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une constante parmi les constantes DECORATION_ et 0 si aucune décoration n'est définie.


Retourne le code du jeu de caractères à utiliser pour les annotations

  • « GmagickDraw::gettextdecoration
  • GmagickDraw::line »
  • PHP Manual
  • GmagickDraw
  • Retourne le code du jeu de caractères à utiliser pour les annotations

GmagickDraw::gettextencoding

(PECL gmagick >= Unknown)

GmagickDraw::gettextencoding — Retourne le code du jeu de caractères à utiliser pour les annotations

Description

public string GmagickDraw::gettextencoding ( void )

Retourne le code du jeu de caractères à utiliser pour les annotations.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères spécifiant le code du jeu de caractères ou FALSE si l'encodage n'est pas défini.


Le but de la méthode line

  • « GmagickDraw::gettextencoding
  • GmagickDraw::point »
  • PHP Manual
  • GmagickDraw
  • Le but de la méthode line

GmagickDraw::line

(PECL gmagick >= Unknown)

GmagickDraw::line — Le but de la méthode line

Description

public GmagickDraw GmagickDraw::line ( float $sx , float $sy , float $ex , float $ey )

Trace une ligne sur l'image en utilisant la couleur de contour courante, l'opacité des contours courante, ainsi que l'épaisseur du contour courant.

Liste de paramètres

sx

Coordonnée de départ en X.

sy

Coordonnée de départ en Y.

ex

Coordonnée de fin en X.

ey

Coordonnée de fin en Y.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Dessine un point

  • « GmagickDraw::line
  • GmagickDraw::polygon »
  • PHP Manual
  • GmagickDraw
  • Dessine un point

GmagickDraw::point

(PECL gmagick >= Unknown)

GmagickDraw::point — Dessine un point

Description

public GmagickDraw GmagickDraw::point ( float $x , float $y )

Dessine un point en utilisant la couleur et l'épaisseur courants du contour aux coordonnées spécifiées.

Liste de paramètres

x

Coordonnée cible en X.

y

Coordonnée cible en Y.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Dessine un polygone

  • « GmagickDraw::point
  • GmagickDraw::polyline »
  • PHP Manual
  • GmagickDraw
  • Dessine un polygone

GmagickDraw::polygon

(PECL gmagick >= Unknown)

GmagickDraw::polygon — Dessine un polygone

Description

public GmagickDraw GmagickDraw::polygon ( array $coordinates )

Dessine un polygone en utilisant les paramètres courants du contour, la couleur ou la texture de remplissage, et en utilisant le tableau de coordonnées spécifié.

Liste de paramètres

coordinates

Tableau de coordonnées.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Dessine une polyligne

  • « GmagickDraw::polygon
  • GmagickDraw::rectangle »
  • PHP Manual
  • GmagickDraw
  • Dessine une polyligne

GmagickDraw::polyline

(PECL gmagick >= Unknown)

GmagickDraw::polyline — Dessine une polyligne

Description

public GmagickDraw GmagickDraw::polyline ( array $coordinate_array )

Dessine une polyligne en utilisant les paramètres courants du contour, et la couleur ou la texture de remplissage, et en utilisant le tableau de coordonnées spécifié.

Liste de paramètres

coordinate_array

Le tableau de coordonnées.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Dessine un rectangle

  • « GmagickDraw::polyline
  • GmagickDraw::rotate »
  • PHP Manual
  • GmagickDraw
  • Dessine un rectangle

GmagickDraw::rectangle

(PECL gmagick >= Unknown)

GmagickDraw::rectangle — Dessine un rectangle

Description

public GmagickDraw GmagickDraw::rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )

Dessine un rectangle en utilisant 2 coordonnées, et en utilisant les paramètres de contour et de remplissage courants.

Liste de paramètres

x1

Coordonnée en X du premier point.

y1

Coordonnée en Y du premier point.

x2

Coordonnée en X du second point.

y2

Coordonnée en Y du second point.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Applique une rotation

  • « GmagickDraw::rectangle
  • GmagickDraw::roundrectangle »
  • PHP Manual
  • GmagickDraw
  • Applique une rotation

GmagickDraw::rotate

(PECL gmagick >= Unknown)

GmagickDraw::rotate — Applique une rotation

Description

public GmagickDraw GmagickDraw::rotate ( float $degrees )

Applique une rotation spécifiée à l'espace courant.

Liste de paramètres

degrees

Degrés pour la rotation.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Dessine un rectangle arrondi

  • « GmagickDraw::rotate
  • GmagickDraw::scale »
  • PHP Manual
  • GmagickDraw
  • Dessine un rectangle arrondi

GmagickDraw::roundrectangle

(PECL gmagick >= Unknown)

GmagickDraw::roundrectangle — Dessine un rectangle arrondi

Description

public GmagickDraw GmagickDraw::roundrectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )

Dessine un rectangle arrondi en utilisant les paramètres fournis.

Liste de paramètres

x1

Coordonnée en X du premier point.

y1

Coordonnée en Y du premier point.

x2

Coordonnée en X du second point.

y2

Coordonnée en Y du second point.

rx

Le rayon du coin en direction horizontale.

ry

Le rayon du coin en direction verticale.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Ajuste le facteur d'échelle

  • « GmagickDraw::roundrectangle
  • GmagickDraw::setfillcolor »
  • PHP Manual
  • GmagickDraw
  • Ajuste le facteur d'échelle

GmagickDraw::scale

(PECL gmagick >= Unknown)

GmagickDraw::scale — Ajuste le facteur d'échelle

Description

public GmagickDraw GmagickDraw::scale ( float $x , float $y )

Ajuste le facteur d'échelle à appliquer aux directions horizontale et verticale de l'espace courant.

Liste de paramètres

x

Facteur d'échelle horizontal.

y

Facteur d'échelle vertical.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Définit la couleur de remplissage à utiliser pour dessiner des objets pleins

  • « GmagickDraw::scale
  • GmagickDraw::setfillopacity »
  • PHP Manual
  • GmagickDraw
  • Définit la couleur de remplissage à utiliser pour dessiner des objets pleins

GmagickDraw::setfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::setfillcolor — Définit la couleur de remplissage à utiliser pour dessiner des objets pleins

Description

public GmagickDraw GmagickDraw::setfillcolor ( string $color )

Définit la couleur de remplissage à utiliser pour dessiner des objets pleins.

Liste de paramètres

color

Objet GmagickPixel indiquant la couleur de remplissage.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Le but de la méthode setfillopacity

  • « GmagickDraw::setfillcolor
  • GmagickDraw::setfont »
  • PHP Manual
  • GmagickDraw
  • Le but de la méthode setfillopacity

GmagickDraw::setfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::setfillopacity — Le but de la méthode setfillopacity

Description

public GmagickDraw GmagickDraw::setfillopacity ( float $fill_opacity )

Définit l'opacité à utiliser lors d'un dessin en utilisant une couleur ou une texture de remplissage. Le fait de définir la valeur à 1.0 signifie que le remplissage sera totalement opaque.

Liste de paramètres

fill_opacity

Opacité du remplissage.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Définit la police de caractère à utiliser lors d'une annotation

  • « GmagickDraw::setfillopacity
  • GmagickDraw::setfontsize »
  • PHP Manual
  • GmagickDraw
  • Définit la police de caractère à utiliser lors d'une annotation

GmagickDraw::setfont

(PECL gmagick >= Unknown)

GmagickDraw::setfont — Définit la police de caractère à utiliser lors d'une annotation

Description

public GmagickDraw GmagickDraw::setfont ( string $font )

Définit la police de caractère à utiliser lors d'une annotation.

Liste de paramètres

font

Le nom de la police de caractère.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Définit la taille, en points, de la police de caractère utilisée lors d'une annotation

  • « GmagickDraw::setfont
  • GmagickDraw::setfontstyle »
  • PHP Manual
  • GmagickDraw
  • Définit la taille, en points, de la police de caractère utilisée lors d'une annotation

GmagickDraw::setfontsize

(PECL gmagick >= Unknown)

GmagickDraw::setfontsize — Définit la taille, en points, de la police de caractère utilisée lors d'une annotation

Description

public GmagickDraw GmagickDraw::setfontsize ( float $pointsize )

Définit la taille, en points, de la police de caractère utilisée lors d'une annotation.

Liste de paramètres

pointsize

La taille, en points, du texte.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Définit le style de police de caractères à utiliser lors d'une annotation

  • « GmagickDraw::setfontsize
  • GmagickDraw::setfontweight »
  • PHP Manual
  • GmagickDraw
  • Définit le style de police de caractères à utiliser lors d'une annotation

GmagickDraw::setfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::setfontstyle — Définit le style de police de caractères à utiliser lors d'une annotation

Description

public GmagickDraw GmagickDraw::setfontstyle ( int $style )

Définit le style de police de caractères à utiliser lors d'une annotation. L'énumération AnyStyle agit comme une option jocker.

Liste de paramètres

style

Style de la police de caractères (NormalStyle, ItalicStyle, ObliqueStyle, AnyStyle)

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Définit le poids de la police de caractères

  • « GmagickDraw::setfontstyle
  • GmagickDraw::setstrokecolor »
  • PHP Manual
  • GmagickDraw
  • Définit le poids de la police de caractères

GmagickDraw::setfontweight

(PECL gmagick >= Unknown)

GmagickDraw::setfontweight — Définit le poids de la police de caractères

Description

public GmagickDraw GmagickDraw::setfontweight ( int $weight )

Définit le poids de la police de caractères à utiliser lors d'une annotation.

Liste de paramètres

weight

Poids de la police de caractères (intervalle valide entre 100-900).

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Définit la couleur à utiliser pour tracer les contours de l'objet

  • « GmagickDraw::setfontweight
  • GmagickDraw::setstrokeopacity »
  • PHP Manual
  • GmagickDraw
  • Définit la couleur à utiliser pour tracer les contours de l'objet

GmagickDraw::setstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::setstrokecolor — Définit la couleur à utiliser pour tracer les contours de l'objet

Description

public GmagickDraw GmagickDraw::setstrokecolor ( GmagickPixel $color )

Définit la couleur à utiliser pour tracer les contours de l'objet.

Liste de paramètres

color

Objet GmagickPixel représentant la couleur pour les contours.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Spécifie l'opacité pour les contours de l'objet

  • « GmagickDraw::setstrokecolor
  • GmagickDraw::setstrokewidth »
  • PHP Manual
  • GmagickDraw
  • Spécifie l'opacité pour les contours de l'objet

GmagickDraw::setstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::setstrokeopacity — Spécifie l'opacité pour les contours de l'objet

Description

public GmagickDraw GmagickDraw::setstrokeopacity ( float $stroke_opacity )

Spécifie l'opacité pour les contours de l'objet.

Liste de paramètres

stroke_opacity

L'opacité. La valeur 1.0 représente une opacité opaque.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Définit la largeur des contours de l'objet

  • « GmagickDraw::setstrokeopacity
  • GmagickDraw::settextdecoration »
  • PHP Manual
  • GmagickDraw
  • Définit la largeur des contours de l'objet

GmagickDraw::setstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::setstrokewidth — Définit la largeur des contours de l'objet

Description

public GmagickDraw GmagickDraw::setstrokewidth ( float $width )

Définit la largeur des contours de l'objet.

Liste de paramètres

width

La largeur des contours.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Spécifie une décoration

  • « GmagickDraw::setstrokewidth
  • GmagickDraw::settextencoding »
  • PHP Manual
  • GmagickDraw
  • Spécifie une décoration

GmagickDraw::settextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::settextdecoration — Spécifie une décoration

Description

public GmagickDraw GmagickDraw::settextdecoration ( int $decoration )

Spécifie une décoration à appliquer au texte lors d'une annotation.

Liste de paramètres

int

La décoration du texte. Une constante parmi NoDecoration, UnderlineDecoration, OverlineDecoration, ou LineThroughDecoration.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


Spécifie le code du jeu de caractères à utiliser

  • « GmagickDraw::settextdecoration
  • GmagickPixel »
  • PHP Manual
  • GmagickDraw
  • Spécifie le code du jeu de caractères à utiliser

GmagickDraw::settextencoding

(PECL gmagick >= Unknown)

GmagickDraw::settextencoding — Spécifie le code du jeu de caractères à utiliser

Description

public GmagickDraw GmagickDraw::settextencoding ( string $encoding )

Spécifie le code du jeu de caractères à utiliser pour le texte des annotations. Le seul jeu de caractères qui peut être actuellement spécifié est "UTF-8" pour représenter l'Unicode comme séquence de bits. Spécifiez une chaîne vide pour définir l'encodage du texte conformément à celui du système. Un texte utilisant l'Unicode sera représenté correctement lors de l'utilisation d'une police de caractères qui supporte l'Unicode.

Liste de paramètres

encoding

Chaîne spécifiant l'encodage du texte.

Valeurs de retour

L'objet GmagickDraw en cas de succès.


La classe GmagickPixel

(PECL gmagick >= Unknown)

Introduction

Synopsis de la classe

GmagickPixel {
/* Méthodes */
public __construct ([ string $color ] )
public mixed getcolor ([ bool $as_array [, bool $normalize_array ]] )
public int getcolorcount ( void )
public float getcolorvalue ( int $color )
public GmagickPixel setcolor ( string $color )
public GmagickPixel setcolorvalue ( int $color , float $value )
}

Sommaire

  • GmagickPixel::__construct — Le constructeur GmagickPixel
  • GmagickPixel::getcolor — Retourne la couleur
  • GmagickPixel::getcolorcount — Retourne le nombre de couleurs associées avec cette couleur
  • GmagickPixel::getcolorvalue — Récupère la valeur normalisée du canal de la couleur fournie
  • GmagickPixel::setcolor — Définit la couleur
  • GmagickPixel::setcolorvalue — Définit la valeur normalisée d'un des canaux


Le constructeur GmagickPixel

  • « GmagickPixel
  • GmagickPixel::getcolor »
  • PHP Manual
  • GmagickPixel
  • Le constructeur GmagickPixel

GmagickPixel::__construct

(PECL gmagick >= Unknown)

GmagickPixel::__construct — Le constructeur GmagickPixel

Description

public GmagickPixel::__construct ([ string $color ] )

Construit un nouvel objet GmagickPixel. Si une couleur est spécifié, l'objet est construit puis initialisé en utilisant cette couleur avant d'être retourné.

Liste de paramètres

color

La couleur à utiliser comme valeur initiale de cet objet (optionnel).

Valeurs de retour

L'objet GmagickPixel en cas de succès.


Retourne la couleur

  • « GmagickPixel::__construct
  • GmagickPixel::getcolorcount »
  • PHP Manual
  • GmagickPixel
  • Retourne la couleur

GmagickPixel::getcolor

(PECL gmagick >= Unknown)

GmagickPixel::getcolor — Retourne la couleur

Description

public mixed GmagickPixel::getcolor ([ bool $as_array [, bool $normalize_array ]] )

Retourne la couleur décrite par l'objet GmagickPixel, sous la forme d'un tableau. Si la couleur a un canal d'opacité de défini,il sera spécifié comme 4ème valeur de la liste.

Liste de paramètres

as_array

TRUE pour indiquer que la valeur retournée doit être un tableau au lieu d'une chaîne de caractères.

normalize_array

Normalise les valeurs de couleur.

Valeurs de retour

Un tableau de valeurs de canaux, dont chacun est normalisé si TRUE est fourni comme paramètre. Émets une exception GmagickPixelException en cas d'erreur.


Retourne le nombre de couleurs associées avec cette couleur

  • « GmagickPixel::getcolor
  • GmagickPixel::getcolorvalue »
  • PHP Manual
  • GmagickPixel
  • Retourne le nombre de couleurs associées avec cette couleur

GmagickPixel::getcolorcount

(PECL gmagick >= Unknown)

GmagickPixel::getcolorcount — Retourne le nombre de couleurs associées avec cette couleur

Description

public int GmagickPixel::getcolorcount ( void )

Retourne le nombre de couleurs associées avec cette couleur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de couleurs, sous la forme d'un entier en cas de succès, et émets une exception GmagickPixelException si une erreur survient.


Récupère la valeur normalisée du canal de la couleur fournie

  • « GmagickPixel::getcolorcount
  • GmagickPixel::setcolor »
  • PHP Manual
  • GmagickPixel
  • Récupère la valeur normalisée du canal de la couleur fournie

GmagickPixel::getcolorvalue

(PECL gmagick >= Unknown)

GmagickPixel::getcolorvalue — Récupère la valeur normalisée du canal de la couleur fournie

Description

public float GmagickPixel::getcolorvalue ( int $color )

Récupère la valeur normalisée du canal de la couleur fournie, sous la forme d'un nombre à virgule flottante compris entre 0 et 1.

Liste de paramètres

color

Le canal à vérifier, spécifié sous la forme d'une des constantes de canal Gmagick.

Valeurs de retour

La valeur du canal, sous la forme d'un nombre à virgule flottante normalisé, et émets une exception GmagickPixelException si une erreur survient.


Définit la couleur

  • « GmagickPixel::getcolorvalue
  • GmagickPixel::setcolorvalue »
  • PHP Manual
  • GmagickPixel
  • Définit la couleur

GmagickPixel::setcolor

(PECL gmagick >= Unknown)

GmagickPixel::setcolor — Définit la couleur

Description

public GmagickPixel GmagickPixel::setcolor ( string $color )

Définit la couleur décrite par l'objet GmagickPixel, avec une chaîne de caractères (i.e. "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).

Liste de paramètres

color

La définition de la couleur à utiliser pour initialiser l'objet GmagickPixel.

Valeurs de retour

L'objet GmagickPixel object en cas de succès.


Définit la valeur normalisée d'un des canaux

  • « GmagickPixel::setcolor
  • ImageMagick »
  • PHP Manual
  • GmagickPixel
  • Définit la valeur normalisée d'un des canaux

GmagickPixel::setcolorvalue

(PECL gmagick >= Unknown)

GmagickPixel::setcolorvalue — Définit la valeur normalisée d'un des canaux

Description

public GmagickPixel GmagickPixel::setcolorvalue ( int $color , float $value )

Définit la valeur du canal spécifié de cette objet à une valeur fournie, qui doit être entre 0 et 1. Cette fonction peut être utilisée pour fournir un canal d'opacité à l'objet GmagickPixel.

Liste de paramètres

color

Une des constantes de couleur de canal Gmagick.

value

La valeur à utiliser pour définir ce canal, comprise entre 0 et 1.

Valeurs de retour

L'objet GmagickPixel en cas de succès.


Traitement des images (ImageMagick)

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
  • Imagick — La classe Imagick
    • Imagick::adaptiveBlurImage — Ajout un flou adaptatif à l'image
    • Imagick::adaptiveResizeImage — Redimensionne adaptativement une image par triangulation
    • Imagick::adaptiveSharpenImage — Augmente le contraste de l'image
    • Imagick::adaptiveThresholdImage — Sélectionne le niveau de chaque pixel, à partir d'un intervalle d'intensité
    • Imagick::addImage — Ajoute une nouvelle image à la liste d'image Imagick
    • Imagick::addNoiseImage — Ajoute un bruit blanc à une image
    • Imagick::affineTransformImage — Transforme une image
    • Imagick::animateImages — Anime une ou plusieurs images
    • Imagick::annotateImage — Annote une image avec un texte
    • Imagick::appendImages — Ajoute un jeu d'images
    • Imagick::autoLevelImage — Description
    • Imagick::averageImages — Moyenne d'un jeu d'images
    • Imagick::blackThresholdImage — Force tous les pixels au-delà d'un seuil à noir
    • Imagick::blueShiftImage — Description
    • Imagick::blurImage — Ajoute un filtre de flou à une image
    • Imagick::borderImage — Encadre une image avec un bord
    • Imagick::brightnessContrastImage — Description
    • Imagick::charcoalImage — Simule un dessin au fusain
    • Imagick::chopImage — Supprime une région d'une image et retaille
    • Imagick::clampImage — Description
    • Imagick::clear — Libère toutes les ressources associées à un objet Imagick
    • Imagick::clipImage — S'aligne sur le premier chemin d'un profil 8BIM
    • Imagick::clipImagePath — Description
    • Imagick::clipPathImage — Suit le chemin d'un profil 8BIM
    • Imagick::clone — Fait une copie exacte d'un objet Imagick
    • Imagick::clutImage — Remplace les couleurs d'une image
    • Imagick::coalesceImages — Compose un jeu d'images
    • Imagick::colorFloodfillImage — Change la couleur d'un pixel
    • Imagick::colorizeImage — Mélange la couleur de remplissage avec l'image
    • Imagick::colorMatrixImage — Description
    • Imagick::combineImages — Combine plusieurs images en une seule
    • Imagick::commentImage — Ajoute un commentaire à une image
    • Imagick::compareImageChannels — Retourne la différence entre plusieurs images
    • Imagick::compareImageLayers — Retourne la région d'encadrement maximale entre deux images
    • Imagick::compareImages — Compare une image avec une image reconstituée
    • Imagick::compositeImage — Compose une image avec une autre
    • Imagick::__construct — Le constructeur Imagick
    • Imagick::contrastImage — Change le contraste de l'image
    • Imagick::contrastStretchImage — Améliore le contraste d'une image
    • Imagick::convolveImage — Applique un noyau de convolution à une image
    • Imagick::count — Description
    • Imagick::cropImage — Extrait une région d'une image
    • Imagick::cropThumbnailImage — Crée une miniature par retaillage
    • Imagick::current — Retourne une référence sur l'objet imagick courant
    • Imagick::cycleColormapImage — Déplace la carte des couleurs d'une image
    • Imagick::decipherImage — Déchiffre une image
    • Imagick::deconstructImages — Retourne les différences de certains pixels entre deux images
    • Imagick::deleteImageArtifact — Supprime l'artefact d'une image
    • Imagick::deleteImageProperty — Description
    • Imagick::deskewImage — Supprime le biais de l'image
    • Imagick::despeckleImage — Réduit le bruit speckle d'une image
    • Imagick::destroy — Détruit un objet Imagick
    • Imagick::displayImage — Affiche une image
    • Imagick::displayImages — Affiche une image ou une séquence
    • Imagick::distortImage — Déforme une image avec différentes méthodes
    • Imagick::drawImage — Affiche un objet ImagickDraw dans l'image courante
    • Imagick::edgeImage — Renforce les bords dans l'image
    • Imagick::embossImage — Retourne une image en niveau de gris, avec un effet 3D
    • Imagick::encipherImage — Chiffre une image
    • Imagick::enhanceImage — Améliore la qualité d'une image bruitée
    • Imagick::equalizeImage — Égalise l'histogramme d'une image
    • Imagick::evaluateImage — Applique une expression à une image
    • Imagick::exportImagePixels — Exporte les pixels bruts de l'image
    • Imagick::extentImage — Définit la taille de l'image
    • Imagick::filter — Description
    • Imagick::flattenImages — Fusionne une séquence d'images
    • Imagick::flipImage — Crée une image par miroir vertical
    • Imagick::floodFillPaintImage — Modifie la valeur de la couleur de chaque pixel correspondant à la cible
    • Imagick::flopImage — Crée une image par miroir horizontal
    • Imagick::forwardFourierTransformImage — Description
    • Imagick::frameImage — Ajoute un bord 3D
    • Imagick::functionImage — Applique une fonction sur l'image
    • Imagick::fxImage — Évalue une expression pour chaque pixel d'une image
    • Imagick::gammaImage — Applique une correction gamma à l'image
    • Imagick::gaussianBlurImage — Ajoute du flou à image
    • Imagick::getColorspace — Récupère l'espace de couleurs
    • Imagick::getCompression — Lit le type de compression
    • Imagick::getCompressionQuality — Lit la qualité de la compression
    • Imagick::getCopyright — Retourne le copyright de l'API ImageMagick API
    • Imagick::getFilename — Lit le nom du fichier associé à une séquence
    • Imagick::getFont — Récupère la police de caractères
    • Imagick::getFormat — Retourne le format de l'image Imagick
    • Imagick::getGravity — Récupère la gravité
    • Imagick::getHomeURL — Retourne l'URL de ImageMagick
    • Imagick::getImage — Retourne un nouvel objet Imagick
    • Imagick::getImageAlphaChannel — Récupère le canal alpha de l'image
    • Imagick::getImageArtifact — Récupère l'artefact de l'image
    • Imagick::getImageAttribute — Description
    • Imagick::getImageBackgroundColor — Retourne la couleur de fond
    • Imagick::getImageBlob — Retourne la séquence d'images comme un blob
    • Imagick::getImageBluePrimary — Retourne la chromacité de la couleur bleue
    • Imagick::getImageBorderColor — Retourne la couleur de bordure de l'image
    • Imagick::getImageChannelDepth — Lit la profondeur d'un des canaux de l'image
    • Imagick::getImageChannelDistortion — Compare les canaux d'une image reconstituée
    • Imagick::getImageChannelDistortions — Récupère les distorsions d'un canal
    • Imagick::getImageChannelExtrema — Lit les extrêmes pour les canaux de l'image
    • Imagick::getImageChannelKurtosis — Le but de getImageChannelKurtosis
    • Imagick::getImageChannelMean — Lit la moyenne et la déviation standard
    • Imagick::getImageChannelRange — Récupère l'intervalle du canal
    • Imagick::getImageChannelStatistics — Retourne des statistiques sur chaque canal de l'image
    • Imagick::getImageClipMask — Récupère le masque du clip de l'image
    • Imagick::getImageColormapColor — Retourne la couleur à l'index de la carte de couleurs
    • Imagick::getImageColors — Lit le nombre de couleurs uniques de l'image
    • Imagick::getImageColorspace — Lit l'espace de couleurs de l'image
    • Imagick::getImageCompose — Retourne l'opérateur de composition associé à une image
    • Imagick::getImageCompression — Lit le type de compression de l'image
    • Imagick::getImageCompressionQuality — Lit la qualité de compression de l'image
    • Imagick::getImageDelay — Lit le délai de l'image
    • Imagick::getImageDepth — Lit la profondeur de l'image
    • Imagick::getImageDispose — Lit la méthode de récupération
    • Imagick::getImageDistortion — Compare une image à une image reconstituée
    • Imagick::getImageExtrema — Lit les extrêmes d'une image
    • Imagick::getImageFilename — Retourne le nom d'un fichier pour une image dans une séquence
    • Imagick::getImageFormat — Retourne le format d'une image dans une séquence
    • Imagick::getImageGamma — Lit le gamma de l'image
    • Imagick::getImageGeometry — Lit les dimensions de l'image dans un tableau
    • Imagick::getImageGravity — Récupère la gravité de l'image
    • Imagick::getImageGreenPrimary — Retourne la chromacité de la couleur verte
    • Imagick::getImageHeight — Retourne la hauteur de l'image
    • Imagick::getImageHistogram — Retourne l'histogramme de l'image
    • Imagick::getImageIndex — Lit l'index de l'image courante
    • Imagick::getImageInterlaceScheme — Lit le schéma d'entrelacement de l'image
    • Imagick::getImageInterpolateMethod — Retourne la méthode d'interpolation
    • Imagick::getImageIterations — Lit les itérations de l'image
    • Imagick::getImageLength — Retourne la taille de l'image en octets
    • Imagick::getImageMagickLicense — Retourne une chaîne avec la licence ImageMagick
    • Imagick::getImageMatte — Indique si l'image a un canal mat
    • Imagick::getImageMatteColor — Retourne la couleur mate de l'image
    • Imagick::getImageMimeType — Description
    • Imagick::getImageOrientation — Lit l'orientation de l'image
    • Imagick::getImagePage — Retourne la géométrie de la page
    • Imagick::getImagePixelColor — Retourne la couleur d'un pixel
    • Imagick::getImageProfile — Retourne un profil d'une image
    • Imagick::getImageProfiles — Retourne les profils de l'image
    • Imagick::getImageProperties — Retourne les propriétés EXIF de l'image
    • Imagick::getImageProperty — Retourne une propriété d'une image
    • Imagick::getImageRedPrimary — Retourne la chromacité du point rouge
    • Imagick::getImageRegion — Extrait une région d'une image
    • Imagick::getImageRenderingIntent — Lit la méthode de rendu de l'image
    • Imagick::getImageResolution — Lit les résolutions en X et Y d'une image
    • Imagick::getImagesBlob — Retourne toutes les images de la séquence en un BLOB
    • Imagick::getImageScene — Retourne la scène de l'image
    • Imagick::getImageSignature — Génère une signature SHA-256
    • Imagick::getImageSize — Retourne la taille de l'image en octets
    • Imagick::getImageTicksPerSecond — Lit les ticks-par-seconde de l'image
    • Imagick::getImageTotalInkDensity — Lit la densité totale d'encre de l'image
    • Imagick::getImageType — Lit le type possible d'image
    • Imagick::getImageUnits — Retourne les unités de résolution de l'image
    • Imagick::getImageVirtualPixelMethod — Retourne la méthode du pixel virtuel
    • Imagick::getImageWhitePoint — Retourne la chromacité du point blanc
    • Imagick::getImageWidth — Retourne la largeur de l'image
    • Imagick::getInterlaceScheme — Lit le schéma d'entrelacement de l'objet
    • Imagick::getIteratorIndex — Lit l'index de l'image active courante
    • Imagick::getNumberImages — Retourne le nombre d'images d'un objet
    • Imagick::getOption — Retourne la valeur d'une option
    • Imagick::getPackageName — Retourne le nom du paquet ImageMagick
    • Imagick::getPage — Retourne la géométrie de la page
    • Imagick::getPixelIterator — Retourne un MagickPixelIterator
    • Imagick::getPixelRegionIterator — Lit un objet ImagickPixelIterator pour une section d'image
    • Imagick::getPointSize — Récupère la taille du point
    • Imagick::getQuantum — Description
    • Imagick::getQuantumDepth — Lit la profondeur quantique
    • Imagick::getQuantumRange — Retourne l'intervalle quantique de Imagick
    • Imagick::getRegistry — Description
    • Imagick::getReleaseDate — Retourne la date de publication de ImageMagick
    • Imagick::getResource — Retourne la consommation de mémoire de la ressource
    • Imagick::getResourceLimit — Retourne la limite de la ressource
    • Imagick::getSamplingFactors — Lit le facteur d'échantillonnage horizontal et vertical
    • Imagick::getSize — Retourne la taille associée avec un objet Imagick
    • Imagick::getSizeOffset — Retourne la taille de la position
    • Imagick::getVersion — Retourne l'API de ImageMagick API
    • Imagick::haldClutImage — Remplace les couleurs de l'image
    • Imagick::hasNextImage — Vérifie si un objet a une image suivante
    • Imagick::hasPreviousImage — Vérifie si un objet a une image précédente
    • Imagick::identifyFormat — Description
    • Imagick::identifyImage — Identifie une image et lit ses attributs
    • Imagick::implodeImage — Crée une nouvelle copie d'image
    • Imagick::importImagePixels — Importe des pixels dans une image
    • Imagick::inverseFourierTransformImage — Description
    • Imagick::labelImage — Ajoute un libelle à une image
    • Imagick::levelImage — Ajuste les niveaux de l'image
    • Imagick::linearStretchImage — Étire la saturation de l'intensité de l'image
    • Imagick::liquidRescaleImage — Anime une ou plusieurs images
    • Imagick::listRegistry — Description
    • Imagick::magnifyImage — Double la taille d'une image, proportionnellement
    • Imagick::mapImage — Remplace la couleur d'une image par celle d'une image de référence
    • Imagick::matteFloodfillImage — Change la transparence d'une couleur
    • Imagick::medianFilterImage — Applique un filtre numérique
    • Imagick::mergeImageLayers — Fusionne les calques de l'image
    • Imagick::minifyImage — Met à l'échelle une image proportionnellement pour la réduire de moitié de taille
    • Imagick::modulateImage — Contrôle la saturation, l'intensité et la teinte
    • Imagick::montageImage — Crée une image composite
    • Imagick::morphImages — Réalise un morphing entre deux images
    • Imagick::morphology — Description
    • Imagick::mosaicImages — Forme une mosaïque d'images
    • Imagick::motionBlurImage — Ajout un flou de déplacement
    • Imagick::negateImage — Effectue la négation des couleurs d'une image de référence
    • Imagick::newImage — Crée une nouvelle image
    • Imagick::newPseudoImage — Crée une nouvelle image
    • Imagick::nextImage — Passe à la prochaine image
    • Imagick::normalizeImage — Améliore le contraste de l'image
    • Imagick::oilPaintImage — Simule une peinture à l'huile
    • Imagick::opaquePaintImage — Modifie la valeur de la couleur de tous les pixels correspondant à la cible
    • Imagick::optimizeImageLayers — Supprime les portions récurrents d'images à optimiser
    • Imagick::orderedPosterizeImage — Effectue un dither ordonné
    • Imagick::colorFloodfillImage — Change les pixels qui sont d'une couleur
    • Imagick::paintOpaqueImage — Change les pixels qui sont d'une couleur
    • Imagick::paintTransparentImage — Remplit les pixels avec une couleur
    • Imagick::pingImage — Lit des attributs simples sans ouvrir une image
    • Imagick::pingImageBlob — Lit rapidement les attributs
    • Imagick::pingImageFile — Lit les attributs simples d'une image
    • Imagick::polaroidImage — Simule une photo Polaroid
    • Imagick::posterizeImage — Réduit une image à un nombre limité de couleurs
    • Imagick::previewImages — Teste rapidement différents paramètres pour un traitement d'images
    • Imagick::previousImage — Passe à l'image précédente dans une séquence d'images
    • Imagick::profileImage — Ajoute ou retire un profil d'une image
    • Imagick::quantizeImage — Analyse les couleurs dans une référence d'image
    • Imagick::quantizeImages — Analyse les couleurs d'une séquence d'images
    • Imagick::queryFontMetrics — Retourne un tableau représentant les dimensions de la police
    • Imagick::queryFonts — Retourne la liste de polices configurés
    • Imagick::queryFormats — Retourne les formats supportés par Imagick
    • Imagick::radialBlurImage — Flou radial d'une image
    • Imagick::raiseImage — Crée un effet 3D de bouton
    • Imagick::randomThresholdImage — Crée une image en deux couleurs, à haut contraste
    • Imagick::readImage — Lit une image depuis un fichier
    • Imagick::readImageBlob — Lit une image depuis une chaîne binaire
    • Imagick::readImageFile — Lit une image à partir d'une ressource fichier
    • Imagick::readimages — Description
    • Imagick::recolorImage — Recolore l'image
    • Imagick::reduceNoiseImage — Adoucit les contours d'une image
    • Imagick::remapImage — Reconfigure les couleurs de l'image
    • Imagick::removeImage — Retire une image de la liste
    • Imagick::removeImageProfile — Supprime le profil de l'image et le retourne
    • Imagick::render — Affiche toute les commandes de dessins précédentes
    • Imagick::resampleImage — Rééchantillonne l'image
    • Imagick::resetImagePage — Réinitialise la page de l'image
    • Imagick::resizeImage — Redimensionne une image
    • Imagick::rollImage — Décale une image
    • Imagick::rotateImage — Tourne une image
    • Imagick::rotationalBlurImage — Description
    • Imagick::roundCorners — Arrondit les coins d'un image
    • Imagick::sampleImage — Met à l'échelle une image avec échantillonnage de pixels
    • Imagick::scaleImage — Met à l'échelle la taille de l'image
    • Imagick::segmentImage — Segmente une image
    • Imagick::selectiveBlurImage — Description
    • Imagick::separateImageChannel — Sépare un canal d'une image
    • Imagick::sepiaToneImage — Passe une image en tons sépia
    • Imagick::setBackgroundColor — Configure la couleur de fond par défaut
    • Imagick::setColorspace — Définit l'espace de couleurs
    • Imagick::setCompression — Configure le type de compression de l'objet
    • Imagick::setCompressionQuality — Configure la compression par défaut de l'objet
    • Imagick::setFilename — Configure le nom du fichier d'image avant d'y accéder
    • Imagick::setFirstIterator — Place l'itérateur de Imagick sur la première image
    • Imagick::setFont — Configure la police
    • Imagick::setFormat — Configure le format de l'objet Imagick
    • Imagick::setGravity — Définit la gravité
    • Imagick::setImage — Remplace l'image dans l'objet
    • Imagick::setImageAlphaChannel — Définit le canal alpha de l'image
    • Imagick::setImageArtifact — Définit l'artefact de l'image
    • Imagick::setImageAttribute — Description
    • Imagick::setImageBackgroundColor — Configure la couleur de fond d'image
    • Imagick::setImageBias — Configure le biais pour les convolutions
    • Imagick::setImageBiasQuantum — Description
    • Imagick::setImageBluePrimary — Configure la chromacité du point bleu
    • Imagick::setImageBorderColor — Configure la couleur de bordure
    • Imagick::setImageChannelDepth — Configure la profondeur d'un canal
    • Imagick::setImageClipMask — Définit le masque du clip de l'image
    • Imagick::setImageColormapColor — Configure une couleur de la carte
    • Imagick::setImageColorspace — Configure l'espace de couleurs de l'image
    • Imagick::setImageCompose — Configure l'opérateur de composition de l'image
    • Imagick::setImageCompression — Configure la compression de l'image
    • Imagick::setImageCompressionQuality — Spécifie la qualité de compression de l'image
    • Imagick::setImageDelay — Configure le délai de l'image
    • Imagick::setImageDepth — Configure la profondeur de l'image
    • Imagick::setImageDispose — Configure la méthode de récupération
    • Imagick::setImageExtent — Configure la taille d'une image
    • Imagick::setImageFilename — Configure le nom de fichier d'une image dans une séquence
    • Imagick::setImageFormat — Configure le format d'une image dans une séquence
    • Imagick::setImageGamma — Configure la correction gamma
    • Imagick::setImageGravity — Définit la gravité de l'image
    • Imagick::setImageGreenPrimary — Configure la chromacité du point vert
    • Imagick::setImageIndex — Modifie la position de l'itérateur
    • Imagick::setImageInterlaceScheme — Configure la méthode d'entrelacement de l'image
    • Imagick::setImageInterpolateMethod — Configure la méthode d'interpolation de l'image
    • Imagick::setImageIterations — Configure les itérations de l'image
    • Imagick::setImageMatte — Configure le canal mate de l'image
    • Imagick::setImageMatteColor — Configure la couleur mate
    • Imagick::setImageOpacity — Configure le niveau d'opacité de l'image
    • Imagick::setImageOrientation — Configure l'orientation de l'image
    • Imagick::setImagePage — Configure la géométrie de la page de l'image
    • Imagick::setImageProfile — Ajoute un profil à un objet Imagick
    • Imagick::setImageProperty — Configure une propriété d'image
    • Imagick::setImageRedPrimary — Configure la chromacité du point rouge
    • Imagick::setImageRenderingIntent — Configure le type de rendu de l'image
    • Imagick::setImageResolution — Configure la résolution de l'image
    • Imagick::setImageScene — Configure la scène de l'image
    • Imagick::setImageTicksPerSecond — Configure le nombre e tick par seconde de l'image
    • Imagick::setImageType — Configure le type d'image
    • Imagick::setImageUnits — Configure les unités de résolutions de l'image
    • Imagick::setImageVirtualPixelMethod — Configure la méthode du point virtuel de l'image
    • Imagick::setImageWhitePoint — Configure la chromacité du point blanc
    • Imagick::setInterlaceScheme — Configure la compression de l'image
    • Imagick::setIteratorIndex — Déplace l'itérateur
    • Imagick::setLastIterator — Positionne l'itérateur Imagick à la dernière image
    • Imagick::setOption — Configure une option d'un objet Imagick
    • Imagick::setPage — Configure la géométrie de la page de l'objet Imagick
    • Imagick::setPointSize — Définit la taille du point
    • Imagick::setProgressMonitor — Description
    • Imagick::setRegistry — Description
    • Imagick::setResolution — Configure la résolution de l'image
    • Imagick::setResourceLimit — Configure la taille limite d'une ressource
    • Imagick::setSamplingFactors — Configure les facteurs d'échantillonnage de l'image
    • Imagick::setSize — Configure la taille de l'objet Imagick
    • Imagick::setSizeOffset — Configure la taille et la position de l'objet Imagick
    • Imagick::setType — Configure l'attribut de l'image
    • Imagick::shadeImage — Crée un effet 3D
    • Imagick::shadowImage — Simule une ombre sur l'image
    • Imagick::sharpenImage — Aiguise une image
    • Imagick::shaveImage — Supprime les pixels du bord de l'image
    • Imagick::shearImage — Crée un parallélogramme
    • Imagick::sigmoidalContrastImage — Ajuste le contraste de l'image
    • Imagick::sketchImage — Simule un crayon à main levée
    • Imagick::smushImages — Description
    • Imagick::solarizeImage — Applique un effet de solarisation à l'image
    • Imagick::sparseColorImage — Interpole les couleurs
    • Imagick::spliceImage — Joint une couleur solide dans l'image
    • Imagick::spreadImage — Bouge aléatoirement chaque pixel d'un bloc
    • Imagick::statisticImage — Description
    • Imagick::steganoImage — Cache un filigrane digital dans l'image
    • Imagick::stereoImage — Fusionne 2 images
    • Imagick::stripImage — Supprime d'une image tous les profiles et les commentaires
    • Imagick::subImageMatch — Description
    • Imagick::swirlImage — Tourbillonne les pixels du centre de l'image
    • Imagick::textureImage — Répète les carreaux de la texture d'une image
    • Imagick::thresholdImage — Modifie la valeur des pixels individuels, basée sur un seuil
    • Imagick::thumbnailImage — Modifie la taille d'une image
    • Imagick::tintImage — Applique un vecteur de couleur à chaque pixel de l'image
    • Imagick::__toString — Returns the image as a string.
    • Imagick::transformImage — Méthode de convenance pour définir la taille de rognage et la géométrie de l'image
    • Imagick::transformImageColorspace — Transforms an image to a new colorspace.
    • Imagick::transparentPaintImage — Colorise les pixels transparents
    • Imagick::transposeImage — Applique une symétrie verticale
    • Imagick::transverseImage — Crée un miroir horizontal de l'image
    • Imagick::trimImage — Supprime les bords de l'image
    • Imagick::uniqueImageColors — Ne conserve qu'une couleur de pixel
    • Imagick::unsharpMaskImage — Rend une image plus nette
    • Imagick::valid — Vérifie si l'élément courant est valide
    • Imagick::vignetteImage — Ajout un filtre vignette à l'image
    • Imagick::waveImage — Ajoute un filtre de vagues à l'image
    • Imagick::whiteThresholdImage — Force tous les pixels en dessous du seuil en blanc
    • Imagick::writeImage — Écrit une image dans le fichier spécifié
    • Imagick::writeImageFile — Écrit une image dans un descripteur de fichier
    • Imagick::writeImages — Écrit une image ou une séquence d'images
    • Imagick::writeImagesFile — Écrits des frames dans un descripteur de fichiers
  • ImagickDraw — La classe ImagickDraw
    • ImagickDraw::affine — Ajuste la matrice de transformation affine courante
    • ImagickDraw::annotation — Dessine un texte sur une image
    • ImagickDraw::arc — Dessine un arc
    • ImagickDraw::bezier — Dessine une courbe de Bézier
    • ImagickDraw::circle — Dessine un cercle
    • ImagickDraw::clear — Efface tout l'objet ImagickDraw
    • ImagickDraw::clone — Fait une copie exacte de l'objet ImagickDraw
    • ImagickDraw::color — Dessine une couleur sur une image
    • ImagickDraw::comment — Ajoute un commentaire
    • ImagickDraw::composite — Compose une image avec une autre
    • ImagickDraw::__construct — Le constructeur ImagickDraw
    • ImagickDraw::destroy — Libère toutes les ressources associées à un objet ImageDraw
    • ImagickDraw::ellipse — Dessine une ellipse sur une image
    • ImagickDraw::getClipPath — Retourne l'identifiant du chemin courant
    • ImagickDraw::getClipRule — Retourne la règle de remplissage courante pour les polygones
    • ImagickDraw::getClipUnits — Retourne l'unité d'interprétation des chemins
    • ImagickDraw::getFillColor — Retourne la couleur de remplissage
    • ImagickDraw::getFillOpacity — Retourne l'opacité de dessin
    • ImagickDraw::getFillRule — Retourne la règle de remplissage
    • ImagickDraw::getFont — Retourne la police
    • ImagickDraw::getFontFamily — Retourne la famille de police
    • ImagickDraw::getFontSize — Retourne la taille de la police
    • ImagickDraw::getFontStretch — Description
    • ImagickDraw::getFontStyle — Retourne le style de la police
    • ImagickDraw::getFontWeight — Retourne le poids de la police
    • ImagickDraw::getGravity — Retourne la gravité de placement de texte
    • ImagickDraw::getStrokeAntialias — Retourne la configuration d'anti-aliasing de trait
    • ImagickDraw::getStrokeColor — Retourne la couleur des contours d'objets
    • ImagickDraw::getStrokeDashArray — Retourne un tableau représentant le motif de pointillés
    • ImagickDraw::getStrokeDashOffset — Retourne l'offset du pointillé dans le motif
    • ImagickDraw::getStrokeLineCap — Retourne la forme à utiliser pour dessiner les bouts de sous-chemins
    • ImagickDraw::getStrokeLineJoin — Retourne la forme à utiliser pour dessiner les coins d'un chemin
    • ImagickDraw::getStrokeMiterLimit — Retourne la 'miterLimit'
    • ImagickDraw::getStrokeOpacity — Retourne l'opacité des contours d'un objet
    • ImagickDraw::getStrokeWidth — Retourne la largeur du trait utilisé
    • ImagickDraw::getTextAlignment — Retourne l'alignement du texte
    • ImagickDraw::getTextAntialias — Retourne la configuration de l'anti-aliasing de texte
    • ImagickDraw::getTextDecoration — Retourne la décoration du texte
    • ImagickDraw::getTextEncoding — Retourne le jeu de caractères utilisé pour les annotations de texte
    • ImagickDraw::getTextInterlineSpacing — Description
    • ImagickDraw::getTextInterwordSpacing — Description
    • ImagickDraw::getTextKerning — Description
    • ImagickDraw::getTextUnderColor — Retourne la couleur sous le texte
    • ImagickDraw::getVectorGraphics — Retourne une chaîne contenant le vecteur graphique
    • ImagickDraw::line — Dessine une ligne
    • ImagickDraw::matte — Dessine sur le canal d'opacité de l'image
    • ImagickDraw::pathClose — Ajoute un élément de chemin au chemin courant
    • ImagickDraw::pathCurveToAbsolute — Dessine une courbe de Bézier cubique, en coordonnées absolues
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Dessine une courbe de Bézier quadratique, en coordonnées absolues
    • ImagickDraw::pathCurveToQuadraticBezierRelative — Dessine une courbe de Bézier quadratique, en coordonnées relatives
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Dessine une courbe de Bézier de puissance 4, en coordonnées absolues
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Dessine une courbe de Bézier de puissance 4, en coordonnées relatives
    • ImagickDraw::pathCurveToRelative — Dessine une courbe de Bézier cubique, en coordonnées relatives
    • ImagickDraw::pathCurveToSmoothAbsolute — Dessine une courbe de Bézier, en coordonnées absolues
    • ImagickDraw::pathCurveToSmoothRelative — Dessine une courbe de Bézier, en coordonnées relatives
    • ImagickDraw::pathEllipticArcAbsolute — Dessine un arc d'ellipse, en coordonnées absolues
    • ImagickDraw::pathEllipticArcRelative — Dessine un arc d'ellipse, en coordonnées relatives
    • ImagickDraw::pathFinish — Termine le chemin courant
    • ImagickDraw::pathLineToAbsolute — Dessine une ligne de chemin, en coordonnées absolues
    • ImagickDraw::pathLineToHorizontalAbsolute — Dessine une ligne de chemin horizontale, en coordonnées absolues
    • ImagickDraw::pathLineToHorizontalRelative — Dessine une ligne de chemin horizontale, en coordonnées relatives
    • ImagickDraw::pathLineToRelative — Dessine une ligne de chemin, en coordonnées relatives
    • ImagickDraw::pathLineToVerticalAbsolute — Dessine une ligne de chemin verticale, en coordonnées absolues
    • ImagickDraw::pathLineToVerticalRelative — Dessine une ligne de chemin verticale, en coordonnées relatives
    • ImagickDraw::pathMoveToAbsolute — Commence un nouveau sous-chemin, en coordonnées absolues
    • ImagickDraw::pathMoveToRelative — Commence un nouveau sous-chemin, en coordonnées relatives
    • ImagickDraw::pathStart — Déclare le début d'une chemin de dessin
    • ImagickDraw::point — Dessine un point
    • ImagickDraw::polygon — Dessine un polygone
    • ImagickDraw::polyline — Dessine une ligne brisée
    • ImagickDraw::pop — Détruit l'objet ImagickDraw courant dans la pile, et retourne son précédent
    • ImagickDraw::popClipPath — Termine la définition d'un chemin
    • ImagickDraw::popDefs — Termine une définition de liste
    • ImagickDraw::popPattern — Termine une définition de motif
    • ImagickDraw::push — Clone l'objet ImagickDraw courant et le pousse dans la pile
    • ImagickDraw::pushClipPath — Commence la définition d'un chemin
    • ImagickDraw::pushDefs — Indique que la commande suivante créée des éléments nommés pour pré-traitement
    • ImagickDraw::pushPattern — Configure un espace de dessin
    • ImagickDraw::rectangle — Dessine un rectangle
    • ImagickDraw::render — Effectue le rendu de tous les dessins à l'image
    • ImagickDraw::resetVectorGraphics — Description
    • ImagickDraw::rotate — Applique une rotation
    • ImagickDraw::roundRectangle — Dessine un rectangle aux coins arrondis
    • ImagickDraw::scale — Ajuste le facteur de mise à l'échelle
    • ImagickDraw::setClipPath — Associe un chemin avec une image
    • ImagickDraw::setClipRule — Configure la règle de remplissage du polygone à utiliser avec les chemins
    • ImagickDraw::setClipUnits — Configure le mode d'interprétation des unités de chemin
    • ImagickDraw::setFillAlpha — Configure l'opacité de la couleur de remplissage
    • ImagickDraw::setFillColor — Configure la couleur de dessin des objets remplis
    • ImagickDraw::setFillOpacity — Configure l'opacité à utiliser pour le remplissage
    • ImagickDraw::setFillPatternURL — Configure l'URL du motif de remplissage des surfaces
    • ImagickDraw::setFillRule — Configure la règle de remplissage des polygones
    • ImagickDraw::setFont — Configure la police complète pour les textes
    • ImagickDraw::setFontFamily — Configure la famille de police pour les textes
    • ImagickDraw::setFontSize — Configure la taille de point pour les textes
    • ImagickDraw::setFontStretch — Configure l'étirement du texte
    • ImagickDraw::setFontStyle — Configure le style de police
    • ImagickDraw::setFontWeight — Configure le poids de la police
    • ImagickDraw::setGravity — Configure la gravité de placement de texte
    • ImagickDraw::setResolution — Description
    • ImagickDraw::setStrokeAlpha — Spécifie l'opacité des contours d'objets
    • ImagickDraw::setStrokeAntialias — Contrôle l'anti-aliasing des pointillés
    • ImagickDraw::setStrokeColor — Configure la couleur utilisée pour dessiner les objets
    • ImagickDraw::setStrokeDashArray — Spécifie le motif de pointillé
    • ImagickDraw::setStrokeDashOffset — Spécifie la position dans le motif pour commencer le pointillé
    • ImagickDraw::setStrokeLineCap — Spécifie la forme à utiliser à la fin des sous-chemins
    • ImagickDraw::setStrokeLineJoin — Spécifie la forme à utiliser pour dessiner les fins de lignes
    • ImagickDraw::setStrokeMiterLimit — Spécifie la limiter miter
    • ImagickDraw::setStrokeOpacity — Spécifie l'opacité pour dessiner les contours
    • ImagickDraw::setStrokePatternURL — Configure le motif utilisé pour dessiner les contours
    • ImagickDraw::setStrokeWidth — Configure la largeur du trait pour dessiner les contours
    • ImagickDraw::setTextAlignment — Spécifie l'alignement du texte
    • ImagickDraw::setTextAntialias — Contrôle l'anti-alisasing du texte
    • ImagickDraw::setTextDecoration — Spécifie les ornements de texte
    • ImagickDraw::setTextEncoding — Spécifie le jeu de caractères
    • ImagickDraw::setTextInterlineSpacing — Description
    • ImagickDraw::setTextInterwordSpacing — Description
    • ImagickDraw::setTextKerning — Description
    • ImagickDraw::setTextUnderColor — Spécifie la couleur de fond d'une rectangle
    • ImagickDraw::setVectorGraphics — Configure le vecteur graphique
    • ImagickDraw::setViewbox — Configure la taille du canevas
    • ImagickDraw::skewX — Biaise les coordonnées dans la direction horizontale
    • ImagickDraw::skewY — Incline les coordonnées dans la direction verticale
    • ImagickDraw::translate — Applique une translation
  • ImagickPixel — La classe ImagickPixel
    • ImagickPixel::clear — Supprime toutes les ressources associées avec l'objet
    • ImagickPixel::__construct — Le constructeur ImagickPixel
    • ImagickPixel::destroy — Libère les ressources associées avec l'objet
    • ImagickPixel::getColor — Retourne la couleur
    • ImagickPixel::getColorAsString — Retourne une couleur
    • ImagickPixel::getColorCount — Retourne le nombre de couleurs associé avec une couleur
    • ImagickPixel::getColorQuantum — Description
    • ImagickPixel::getColorValue — Récupère la valeur normalisée du canal de la couleur fournie
    • ImagickPixel::getColorValueQuantum — Description
    • ImagickPixel::getHSL — Retourne la couleur HSL normalisée de l'objet ImagickPixel
    • ImagickPixel::getIndex — Description
    • ImagickPixel::isPixelSimilar — Vérifie la distance entre cette couleur et une autre
    • ImagickPixel::isPixelSimilarQuantum — Description
    • ImagickPixel::isSimilar — Vérifie la distance entre 2 couleurs
    • ImagickPixel::setColor — Définit la couleur
    • ImagickPixel::setColorCount — Description
    • ImagickPixel::setColorValue — Définit la valeur normalisée d'un des canaux
    • ImagickPixel::setColorValueQuantum — Description
    • ImagickPixel::setHSL — Définit la couleur HSL normalisée
    • ImagickPixel::setIndex — Description
  • ImagickPixelIterator — La classe ImagickPixelIterator
    • ImagickPixelIterator::clear — Efface toutes les ressources associées à PixelIterator
    • ImagickPixelIterator::__construct — Le constructeur ImagickPixelIterator
    • ImagickPixelIterator::destroy — Libère les ressources associées à PixelIterator
    • ImagickPixelIterator::getCurrentIteratorRow — Retourne la ligne courante des objets ImagickPixel
    • ImagickPixelIterator::getIteratorRow — Retourne la ligne courante de l'itérateur de pixel
    • ImagickPixelIterator::getNextIteratorRow — Retourne la prochaine ligne de l'itérateur de pixel
    • ImagickPixelIterator::getPreviousIteratorRow — Retourne la ligne précédente
    • ImagickPixelIterator::newPixelIterator — Retourne un nouveau pixel de l'itérateur
    • ImagickPixelIterator::newPixelRegionIterator — Retourne un nouveau pixel de l'itérateur
    • ImagickPixelIterator::resetIterator — Réinitialise l'itérateur de pixel
    • ImagickPixelIterator::setIteratorFirstRow — Définit l'itérateur de pixel sur la première ligne de pixels
    • ImagickPixelIterator::setIteratorLastRow — Définit l'itérateur de pixel sur la dernière ligne de pixels
    • ImagickPixelIterator::setIteratorRow — Définit la ligne de l'itérateur de pixel
    • ImagickPixelIterator::syncIterator — Synchronise l'itérateur de pixel
  • ImagickKernel — The ImagickKernel class
    • ImagickKernel::addKernel — Description
    • ImagickKernel::addUnityKernel — Description
    • ImagickKernel::fromBuiltIn — Description
    • ImagickKernel::fromMatrix — Description
    • ImagickKernel::getMatrix — Description
    • ImagickKernel::scale — Description
    • ImagickKernel::separate — Description


Introduction

Imagick est une extension PHP native pour créer et modifier les images, en utilisant l'API ImageMagick.

ImageMagick est une suite de logiciels permettant la création, l'édition et la composition d'images bitmap. Elle peut lire, convertir et écrire les images dans divers formats (une centaine) dont DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG et TIFF.

ImageMagick Studio LLC, une organisation à but non-lucratif dont le but est de rendre la création de logiciel relatif à la manipulation d'images librement disponible.


Pré-requis

Configuration nécessaire pour l'installation sous Windows

Les binaires sont disponibles depuis http://www.imagemagick.org/ ; vous pouvez ainsi charger cette extension sous Windows sans devoir compiler quoi que ce soit.

Configuration nécessaire pour l'installation sous les autres plates-formes

PHP >= 5.1.3 et ImageMagick >= 6.2.4 sont nécessaires. Le nombre de formats supportés par Imagick est totalement dépendant de ceux supportés par votre installation ImageMagick. Par exemple, Imagemagick a besoin de ghostscript pour effectuer les opérations relatives aux PDF.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/imagick.

Note: Le nom officiel de cette extension est imagick.

Les utilisateurs de Windows peuvent télécharger une DLL préconstruite depuis le site de PECL : » PECL


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Imagick
Nom | Défaut | Modifiable | Historique
imagick.locale_fix | FALSE | PHP_INI_ALL | Disponible depuis 2.1.0
imagick.progress_monitor | FALSE | PHP_INI_SYSTEM | Disponible depuis Imagick 2.2.2
imagick.skip_version_check | FALSE | PHP_INI_SYSTEM | Disponible depuis Imagick 3.3.0
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

imagick.locale_fix boolean

Fixes un bogue sur le dessin lorsque les locales utilisent le caractère ',' comme séparateurs.

imagick.progress_monitor boolean

Utilisé pour activer la surveillance de la progression de l'image.

imagick.skip-version-check boolean

Lorsque Imagick est chargé, le numéro de version d'ImageMagick utilisé pendant la compilation est vérifié, et est comparé avec le numéro de version actuellement utilisé ; une alerte est émise si les deux versions ne correspondent pas. Cette alerte peut être supprimée en activant cette option de configuration.

Le fait d'utiliser une version d'Imagick différente de la version d'ImageMagick n'est pas recommandé. Malgré le fait que cela peut fonctionner, il peut en résulter des erreurs aléatoires ou des comportements non définis.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes COLOR_*

Constantes sur les types de couleur. Ces constantes sont surtout utilisées avec la classe ImagickPixel.

imagick::COLOR_BLACK (entier)
Couleur noire
imagick::COLOR_BLUE (entier)
Couleur bleue
imagick::COLOR_CYAN (entier)
Couleur cyan
imagick::COLOR_GREEN (entier)
Couleur verte
imagick::COLOR_RED (entier)
Couleur rouge
imagick::COLOR_YELLOW (entier)
Couleur jaune
imagick::COLOR_MAGENTA (entier)
Couleur magenta
imagick::COLOR_OPACITY (entier)
Couleur de l'opacité
imagick::COLOR_ALPHA (entier)
Couleur de l'alpha
imagick::COLOR_FUZZ (entier)
Couleur du fuzz
Constantes de disposition

Constantes relatvies aux type de disposition

imagick::DISPOSE_UNRECOGNIZED (entier)
Type de disposition non reconnu
imagick::DISPOSE_UNDEFINED (entier)
Type de disposition non défini
imagick::DISPOSE_NONE (entier)
Aucun type de disposition
imagick::DISPOSE_BACKGROUND (entier)
Disposition du fond
imagick::DISPOSE_PREVIOUS (entier)
Disposition précédente
Constantes d'opérateur de composition
imagick::COMPOSITE_DEFAULT (entier)
L'opérateur de composition par défaut.
imagick::COMPOSITE_UNDEFINED (entier)
Opérateur de composition indéfini
imagick::COMPOSITE_NO (entier)
Pas d'opérateur de composition défini
imagick::COMPOSITE_ADD (entier)
Le résultat de image + image
imagick::COMPOSITE_ATOP (entier)
Le résultat a la même forme que l'image, avec l'image composée qui remplit l'image là où la forme d'image chevauche l'image
imagick::COMPOSITE_BLEND (entier)
Combine les images image (blending)
imagick::COMPOSITE_BUMPMAP (entier)
La même chose que COMPOSITE_MULTIPLY, hormis le fait que la source est d'abord convertie en niveaux de gris
imagick::COMPOSITE_CLEAR (entier)
Rend l'image cible transparent
imagick::COMPOSITE_COLORBURN (entier)
Assombrit l'image de destination pour refléter l'image source
imagick::COMPOSITE_COLORDODGE (entier)
Éclaire l'image de destination pour refléter l'image source
imagick::COMPOSITE_COLORIZE (entier)
Colorie l'image cible avec l'image composée
imagick::COMPOSITE_COPYBLACK (entier)
Copie le noir de la source vers la cible
imagick::COMPOSITE_COPYBLUE (entier)
Copie le bleu de la source vers la cible
imagick::COMPOSITE_COPY (entier)
Copie la source vers la cible
imagick::COMPOSITE_COPYCYAN (entier)
Copie le Cyan de la source vers la cible
imagick::COMPOSITE_COPYGREEN (entier)
Copie le vert de la source vers la cible
imagick::COMPOSITE_COPYMAGENTA (entier)
Copie le magenta de la source vers la cible
imagick::COMPOSITE_COPYOPACITY (entier)
Copie l'opacité de la source vers la cible
imagick::COMPOSITE_COPYRED (entier)
Copie le rouge de la source vers la cible
imagick::COMPOSITE_COPYYELLOW (entier)
Copie le jaune de la source vers la cible
imagick::COMPOSITE_DARKEN (entier)
Assombrit l'image cible
imagick::COMPOSITE_DSTATOP (entier)
La partie de l'image de destination qui est a l'intérieur de la source est composée avec la source, et placée dans la destination.
imagick::COMPOSITE_DST (entier)
La cible est laissée intacte
imagick::COMPOSITE_DSTIN (entier)
La partie à l'intérieur de la source remplace la cible
imagick::COMPOSITE_DSTOUT (entier)
La partie à l'extérieur de la source remplace la cible
imagick::COMPOSITE_DSTOVER (entier)
La cible remplace la source
imagick::COMPOSITE_DIFFERENCE (entier)
Soustrait la couleur sombre de la couleur claire
imagick::COMPOSITE_DISPLACE (entier)
Décale les pixels de la cible tel que défini par la source
imagick::COMPOSITE_DISSOLVE (entier)
Dissous la source dans la cible
imagick::COMPOSITE_EXCLUSION (entier)
Produit un effet similaire à imagick::COMPOSITE_DIFFERENCE, mais avec un contraste plus faible
imagick::COMPOSITE_HARDLIGHT (entier)
Multiplie ou screene les couleurs, dépendemment de la valeur de la couleur source
imagick::COMPOSITE_HUE (entier)
Modifie la hue de la cible, tel que défini par la source
imagick::COMPOSITE_IN (entier)
Compose la source dans la cible
imagick::COMPOSITE_LIGHTEN (entier)
Éclaircit la cible, tel que défini par la source
imagick::COMPOSITE_LUMINIZE (entier)
Illumine la cible tel que défini par la source
imagick::COMPOSITE_MINUS (entier)
Soustrait la source de la cible
imagick::COMPOSITE_MODULATE (entier)
Module la clarté de la cible, sa saturation et sa hue tel que défini par la cible
imagick::COMPOSITE_MULTIPLY (entier)
Multiplie la cible avec la source
imagick::COMPOSITE_OUT (entier)
Compose l'extérieur de la source dans la cible
imagick::COMPOSITE_OVER (entier)
Compose la source sur la cible
imagick::COMPOSITE_OVERLAY (entier)
Surimprime la source sur la cible
imagick::COMPOSITE_PLUS (entier)
Ajoute la source sur la cible
imagick::COMPOSITE_REPLACE (entier)
Remplace la cible avec la source
imagick::COMPOSITE_SATURATE (entier)
Sature la cible tel que défini par la source
imagick::COMPOSITE_SCREEN (entier)
La source et cible sont complétées puis multipliées et finalement elles remplacent la cible
imagick::COMPOSITE_SOFTLIGHT (entier)
Assombrit ou éclaire les couleurs, en fonction de la source
imagick::COMPOSITE_SRCATOP (entier)
La partie de la source qui est dans la cible et composée sur la cible
imagick::COMPOSITE_SRC (entier)
La source est copiée sur la destination
imagick::COMPOSITE_SRCIN (entier)
La partie de la source qui est dans la destination, remplace la destination.
imagick::COMPOSITE_SRCOUT (entier)
La partie de la source qui est hors de la destination remplace la destination
imagick::COMPOSITE_SRCOVER (entier)
La source remplaces la cible
imagick::COMPOSITE_SUBTRACT (entier)
Soustrait les couleurs dans la source dans la cible
imagick::COMPOSITE_THRESHOLD (entier)
La source est composée sur la cible, tel que défini par les seuils de la source
imagick::COMPOSITE_XOR (entier)
La partie de la source qui est hors de la destination et combinée avec la partie de la destination qui est hors de la source
Constantes de mode de montage Mode

imagick::MONTAGEMODE_FRAME (entier)
imagick::MONTAGEMODE_UNFRAME (entier)
imagick::MONTAGEMODE_CONCATENATE (entier)
Constantes de style

imagick::STYLE_NORMAL (entier)
imagick::STYLE_ITALIC (entier)
imagick::STYLE_OBLIQUE (entier)
imagick::STYLE_ANY (entier)
Constantes de filtres

imagick::FILTER_UNDEFINED (entier)
imagick::FILTER_POINT (entier)
imagick::FILTER_BOX (entier)
imagick::FILTER_TRIANGLE (entier)
imagick::FILTER_HERMITE (entier)
imagick::FILTER_HANNING (entier)
imagick::FILTER_HAMMING (entier)
imagick::FILTER_BLACKMAN (entier)
imagick::FILTER_GAUSSIAN (entier)
imagick::FILTER_QUADRATIC (entier)
imagick::FILTER_CUBIC (entier)
imagick::FILTER_CATROM (entier)
imagick::FILTER_MITCHELL (entier)
imagick::FILTER_LANCZOS (entier)
imagick::FILTER_BESSEL (entier)
imagick::FILTER_SINC (entier)
Constantes de type d'images

imagick::IMGTYPE_UNDEFINED (entier)
imagick::IMGTYPE_BILEVEL (entier)
imagick::IMGTYPE_GRAYSCALE (entier)
imagick::IMGTYPE_GRAYSCALEMATTE (entier)
imagick::IMGTYPE_PALETTE (entier)
imagick::IMGTYPE_PALETTEMATTE (entier)
imagick::IMGTYPE_TRUECOLOR (entier)
imagick::IMGTYPE_TRUECOLORMATTE (entier)
imagick::IMGTYPE_COLORSEPARATION (entier)
imagick::IMGTYPE_COLORSEPARATIONMATTE (entier)
imagick::IMGTYPE_OPTIMIZE (entier)
Constantes de résolution

imagick::RESOLUTION_UNDEFINED (entier)
imagick::RESOLUTION_PIXELSPERINCH (entier)
imagick::RESOLUTION_PIXELSPERCENTIMETER (entier)
Constantes de compression

imagick::COMPRESSION_UNDEFINED (entier)
imagick::COMPRESSION_NO (entier)
imagick::COMPRESSION_BZIP (entier)
imagick::COMPRESSION_FAX (entier)
imagick::COMPRESSION_GROUP4 (entier)
imagick::COMPRESSION_JPEG (entier)
imagick::COMPRESSION_JPEG2000 (entier)
imagick::COMPRESSION_LOSSLESSJPEG (entier)
imagick::COMPRESSION_LZW (entier)
imagick::COMPRESSION_RLE (entier)
imagick::COMPRESSION_ZIP (entier)
imagick::COMPRESSION_DXT1 (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.
imagick::COMPRESSION_DXT3 (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.
imagick::COMPRESSION_DXT5 (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.
Constantes de colorisation

imagick::PAINT_POINT (entier)
imagick::PAINT_REPLACE (entier)
imagick::PAINT_FLOODFILL (entier)
imagick::PAINT_FILLTOBORDER (entier)
imagick::PAINT_RESET (entier)
Constantes de gravité

imagick::GRAVITY_NORTHWEST (entier)
imagick::GRAVITY_NORTH (entier)
imagick::GRAVITY_NORTHEAST (entier)
imagick::GRAVITY_WEST (entier)
imagick::GRAVITY_CENTER (entier)
imagick::GRAVITY_EAST (entier)
imagick::GRAVITY_SOUTHWEST (entier)
imagick::GRAVITY_SOUTH (entier)
imagick::GRAVITY_SOUTHEAST (entier)
Constantes d'étirement

imagick::STRETCH_NORMAL (entier)
imagick::STRETCH_ULTRACONDENSED (entier)
imagick::STRETCH_CONDENSED (entier)
imagick::STRETCH_SEMICONDENSED (entier)
imagick::STRETCH_SEMIEXPANDED (entier)
imagick::STRETCH_EXPANDED (entier)
imagick::STRETCH_EXTRAEXPANDED (entier)
imagick::STRETCH_ULTRAEXPANDED (entier)
imagick::STRETCH_ANY (entier)
Constantes d'alignement

imagick::ALIGN_UNDEFINED (entier)
imagick::ALIGN_LEFT (entier)
imagick::ALIGN_CENTER (entier)
imagick::ALIGN_RIGHT (entier)
Constantes de décoration

imagick::DECORATION_NO (entier)
imagick::DECORATION_UNDERLINE (entier)
imagick::DECORATION_OVERLINE (entier)
imagick::DECORATION_LINETROUGH (entier)
Constantes de bruit

imagick::NOISE_UNIFORM (entier)
imagick::NOISE_GAUSSIAN (entier)
imagick::NOISE_MULTIPLICATIVEGAUSSIAN (entier)
imagick::NOISE_IMPULSE (entier)
imagick::NOISE_LAPLACIAN (entier)
imagick::NOISE_POISSON (entier)
imagick::NOISE_RANDOM (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
Constantes de canal

imagick::CHANNEL_UNDEFINED (entier)
imagick::CHANNEL_RED (entier)
imagick::CHANNEL_GRAY (entier)
imagick::CHANNEL_CYAN (entier)
imagick::CHANNEL_GREEN (entier)
imagick::CHANNEL_MAGENTA (entier)
imagick::CHANNEL_BLUE (entier)
imagick::CHANNEL_YELLOW (entier)
imagick::CHANNEL_ALPHA (entier)
imagick::CHANNEL_OPACITY (entier)
imagick::CHANNEL_MATTE (entier)
imagick::CHANNEL_BLACK (entier)
imagick::CHANNEL_INDEX (entier)
imagick::CHANNEL_ALL (entier)
imagick::CHANNEL_DEFAULT (entier)
Constantes de métriques

imagick::METRIC_UNDEFINED (entier)
imagick::METRIC_MEANABSOLUTEERROR (entier)
imagick::METRIC_MEANSQUAREERROR (entier)
imagick::METRIC_PEAKABSOLUTEERROR (entier)
imagick::METRIC_PEAKSIGNALTONOISERATIO (entier)
imagick::METRIC_ROOTMEANSQUAREDERROR (entier)
Constantes de pixels

imagick::PIXEL_CHAR (entier)
imagick::PIXEL_DOUBLE (entier)
imagick::PIXEL_FLOAT (entier)
imagick::PIXEL_INTEGER (entier)
imagick::PIXEL_LONG (entier)
imagick::PIXEL_QUANTUM (entier)
imagick::PIXEL_SHORT (entier)
Constantes d'opérateurs d'évaluation

imagick::EVALUATE_UNDEFINED (entier)
imagick::EVALUATE_ADD (entier)
imagick::EVALUATE_AND (entier)
imagick::EVALUATE_DIVIDE (entier)
imagick::EVALUATE_LEFTSHIFT (entier)
imagick::EVALUATE_MAX (entier)
imagick::EVALUATE_MIN (entier)
imagick::EVALUATE_MULTIPLY (entier)
imagick::EVALUATE_OR (entier)
imagick::EVALUATE_RIGHTSHIFT (entier)
imagick::EVALUATE_SET (entier)
imagick::EVALUATE_SUBTRACT (entier)
imagick::EVALUATE_XOR (entier)
imagick::EVALUATE_POW (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_LOG (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_THRESHOLD (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_THRESHOLDBLACK (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_THRESHOLDWHITE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_GAUSSIANNOISE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_IMPULSENOISE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_LAPLACIANNOISE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_MULTIPLICATIVENOISE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_POISSONNOISE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_UNIFORMNOISE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_COSINE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_SINE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_ADDMODULUS (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
Constantes d'espaces de couleurs

imagick::COLORSPACE_UNDEFINED (entier)
imagick::COLORSPACE_RGB (entier)
imagick::COLORSPACE_GRAY (entier)
imagick::COLORSPACE_TRANSPARENT (entier)
imagick::COLORSPACE_OHTA (entier)
imagick::COLORSPACE_LAB (entier)
imagick::COLORSPACE_XYZ (entier)
imagick::COLORSPACE_YCBCR (entier)
imagick::COLORSPACE_YCC (entier)
imagick::COLORSPACE_YIQ (entier)
imagick::COLORSPACE_YPBPR (entier)
imagick::COLORSPACE_YUV (entier)
imagick::COLORSPACE_CMYK (entier)
imagick::COLORSPACE_SRGB (entier)
imagick::COLORSPACE_HSB (entier)
imagick::COLORSPACE_HSL (entier)
imagick::COLORSPACE_HWB (entier)
imagick::COLORSPACE_REC601LUMA (entier)
imagick::COLORSPACE_REC709LUMA (entier)
imagick::COLORSPACE_LOG (entier)
imagick::COLORSPACE_CMY (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
Constantes de méthode de pixel virtuel

imagick::VIRTUALPIXELMETHOD_UNDEFINED (entier)
imagick::VIRTUALPIXELMETHOD_BACKGROUND (entier)
imagick::VIRTUALPIXELMETHOD_CONSTANT (entier)
imagick::VIRTUALPIXELMETHOD_EDGE (entier)
imagick::VIRTUALPIXELMETHOD_MIRROR (entier)
imagick::VIRTUALPIXELMETHOD_TILE (entier)
imagick::VIRTUALPIXELMETHOD_TRANSPARENT (entier)
imagick::VIRTUALPIXELMETHOD_MASK (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
imagick::VIRTUALPIXELMETHOD_BLACK (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
imagick::VIRTUALPIXELMETHOD_GRAY (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
imagick::VIRTUALPIXELMETHOD_WHITE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
imagick::VIRTUALPIXELMETHOD_HORIZONTALTILE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.3 ou supérieur.
imagick::VIRTUALPIXELMETHOD_VERTICALTILE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.3 ou supérieur.
Constantes de prévisualisation

imagick::PREVIEW_UNDEFINED (entier)
imagick::PREVIEW_ROTATE (entier)
imagick::PREVIEW_SHEAR (entier)
imagick::PREVIEW_ROLL (entier)
imagick::PREVIEW_HUE (entier)
imagick::PREVIEW_SATURATION (entier)
imagick::PREVIEW_BRIGHTNESS (entier)
imagick::PREVIEW_GAMMA (entier)
imagick::PREVIEW_SPIFF (entier)
imagick::PREVIEW_DULL (entier)
imagick::PREVIEW_GRAYSCALE (entier)
imagick::PREVIEW_QUANTIZE (entier)
imagick::PREVIEW_DESPECKLE (entier)
imagick::PREVIEW_REDUCENOISE (entier)
imagick::PREVIEW_ADDNOISE (entier)
imagick::PREVIEW_SHARPEN (entier)
imagick::PREVIEW_BLUR (entier)
imagick::PREVIEW_THRESHOLD (entier)
imagick::PREVIEW_EDGEDETECT (entier)
imagick::PREVIEW_SPREAD (entier)
imagick::PREVIEW_SOLARIZE (entier)
imagick::PREVIEW_SHADE (entier)
imagick::PREVIEW_RAISE (entier)
imagick::PREVIEW_SEGMENT (entier)
imagick::PREVIEW_SWIRL (entier)
imagick::PREVIEW_IMPLODE (entier)
imagick::PREVIEW_WAVE (entier)
imagick::PREVIEW_OILPAINT (entier)
imagick::PREVIEW_CHARCOALDRAWING (entier)
imagick::PREVIEW_JPEG (entier)
Constantes de rendu

imagick::RENDERINGINTENT_UNDEFINED (entier)
imagick::RENDERINGINTENT_SATURATION (entier)
imagick::RENDERINGINTENT_PERCEPTUAL (entier)
imagick::RENDERINGINTENT_ABSOLUTE (entier)
imagick::RENDERINGINTENT_RELATIVE (entier)
Constantes d'entrelacement

imagick::INTERLACE_UNDEFINED (entier)
imagick::INTERLACE_NO (entier)
imagick::INTERLACE_LINE (entier)
imagick::INTERLACE_PLANE (entier)
imagick::INTERLACE_PARTITION (entier)
imagick::INTERLACE_GIF (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.4 ou supérieur.
imagick::INTERLACE_JPEG (entier)
imagick::INTERLACE_PNG (entier)
Constantes de remplissage

imagick::FILLRULE_UNDEFINED (entier)
imagick::FILLRULE_EVENODD (entier)
imagick::FILLRULE_NONZERO (entier)
Constantes de chemin de dessin

imagick::PATHUNITS_UNDEFINED (entier)
imagick::PATHUNITS_USERSPACE (entier)
imagick::PATHUNITS_USERSPACEONUSE (entier)
imagick::PATHUNITS_OBJECTBOUNDINGBOX (entier)
Constantes de bout de lignes

imagick::LINECAP_UNDEFINED (entier)
imagick::LINECAP_BUTT (entier)
imagick::LINECAP_ROUND (entier)
imagick::LINECAP_SQUARE (entier)
Constantes de jointures de lignes

imagick::LINEJOIN_UNDEFINED (entier)
imagick::LINEJOIN_MITER (entier)
imagick::LINEJOIN_ROUND (entier)
imagick::LINEJOIN_BEVEL (entier)
Constantes de type de ressource

imagick::RESOURCETYPE_UNDEFINED (entier)
imagick::RESOURCETYPE_AREA (entier)
Défini la largeur et la hauteur maximales d'une image qui peut être mise dans la mémoire cache des pixels.
imagick::RESOURCETYPE_DISK (entier)
Défini la taille maximale de l'espace disque autorisée à stocker le cache des pixels.
imagick::RESOURCETYPE_FILE (entier)
Défini le nombre maximal de fichiers de cache de pixels ouverts.
imagick::RESOURCETYPE_MAP (entier)
Défini la taille maximale de mémoire en octets, à allouer au cache de pixels.
imagick::RESOURCETYPE_MEMORY (entier)
Défini la taille maximale de la mémoire, en octets, à allouer au cache de pixels.
imagick::RESOURCETYPE_THREAD (integer)
Défini le nombre maximal de threads parrallèles. Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.7.8 ou supérieur.
Constantes de méthode de calque

imagick::LAYERMETHOD_UNDEFINED (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_COALESCE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_COMPAREANY (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_COMPARECLEAR (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_COMPAREOVERLAY (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_DISPOSE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_OPTIMIZE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_OPTIMIZEPLUS (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_OPTIMIZEIMAGE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_OPTIMIZETRANS (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_REMOVEDUPS (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_REMOVEZERO (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_COMPOSITE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_MERGE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.
imagick::LAYERMETHOD_FLATTEN (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.
imagick::LAYERMETHOD_MOSAIC (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.
Constantes d'orientation

imagick::ORIENTATION_UNDEFINED (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_TOPLEFT (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_TOPRIGHT (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_BOTTOMRIGHT (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_BOTTOMLEFT (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_LEFTTOP (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_RIGHTTOP (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_RIGHTBOTTOM (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_LEFTBOTTOM (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
Constantes de distorsion

imagick::DISTORTION_UNDEFINED (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_AFFINE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_AFFINEPROJECTION (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_ARC (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_BILINEAR (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_PERSPECTIVE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_PERSPECTIVEPROJECTION (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_SCALEROTATETRANSLATE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_POLYNOMIAL (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_POLAR (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_DEPOLAR (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_BARREL (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_BARRELINVERSE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_SHEPARDS (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_SENTINEL (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
Constantes ALPHACHANNEL

imagick::ALPHACHANNEL_ACTIVATE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.
imagick::ALPHACHANNEL_DEACTIVATE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.
imagick::ALPHACHANNEL_RESET (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.
imagick::ALPHACHANNEL_SET (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.
imagick::ALPHACHANNEL_UNDEFINED (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_COPY (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_EXTRACT (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_OPAQUE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_SHAPE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_TRANSPARENT (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
Constantes SPARSECOLORMETHOD

imagick::SPARSECOLORMETHOD_UNDEFINED (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_BARYCENTRIC (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_BILINEAR (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_POLYNOMIAL (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_SPEPARDS (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_VORONOI (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
Constantes FUNCTION

imagick::FUNCTION_UNDEFINED (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.9 ou supérieur.
imagick::FUNCTION_POLYNOMIAL (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.9 ou supérieur.
imagick::FUNCTION_SINUSOID (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.9 ou supérieur.
Constantes INTERPOLATE

imagick::INTERPOLATE_UNDEFINED (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_AVERAGE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_BICUBIC (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_BILINEAR (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_FILTER (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_INTEGER (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_MESH (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_NEARESTNEIGHBOR (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_SPLINE (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.4 ou supérieur.
Constantes DITHERMETHOD

imagick::DITHERMETHOD_UNDEFINED (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DITHERMETHOD_NO (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DITHERMETHOD_RIEMERSMA (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DITHERMETHOD_FLOYDSTEINBERG (entier)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • ImageMagick
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Imagick rend la manipulation des images via PHP extrêmement facile grâce à une interface orientée objet. Voici un exemple rapide illustrant la création d'une miniature :

Exemple #1 Création d'une miniature avec Imagick

<?php

header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

// Si 0 est fourni comme paramètre de hauteur ou de largeur,
// les proportions seront conservées
$image->thumbnailImage(100, 0);

echo $image;

?>

En utilisant SPL ou tout autre fonctionnalité orientée objet supportée par Imagick, il devient simple de redimensionner tous les fichiers d'un dossier (utile pour des scripts batch redimensionnant des images issues d'un appareil photo numérique afin de les rendre lisibles sur le web). Voici un exemple de redimensionnement de toutes les images JPG d'un dossier, tout en conservant les métadonnées :

Exemple #2 Création de miniature de toutes les images JPG d'un dossier

<?php

$images = new Imagick(glob('images/*.JPG'));

foreach($images as $image) {

    // On fournit 0 en guise de paramètre afin de conserver les proportions
    $image->thumbnailImage(1024,0);

}

$images->writeImages();

?>

Voici un exemple permettant de créer le reflet d'une image. Ce reflet est créé en retournant l'image et en y ajoutant un dégradé. Ensuite, l'image original et son reflet sont ajoutés dans une nouvelle image.

Exemple #3 Création d'un reflet sur une image

<?php
/* Lecture de l'image */
$im = new Imagick("test.png");

/* Création d'une miniature de l'image */
$im->thumbnailImage(200, null);

/* Création d'une bordure */
$im->borderImage(new ImagickPixel("white"), 5, 5);

/* Clône l'image et on la retourne */
$reflection = $im->clone();
$reflection->flipImage();

/* Création du dégradé. Il sera ajouté à l'image retournée */
$gradient = new Imagick();

/* Le dégradé doit être assez large pour l'image et ses bordures */
$gradient->newPseudoImage($reflection->getImageWidth() + 10, $reflection->getImageHeight() + 10, "gradient:transparent-black");

/* Ajout du dégradé sur l'image retournée */
$reflection->compositeImage($gradient, imagick::COMPOSITE_OVER, 0, 0);

/* Ajout d'un peu d'opacité. Nécessite ImageMagick 6.2.9 ou supérieur */
$reflection->setImageOpacity( 0.3 );

/* Création d'une image vide */
$canvas = new Imagick();

/* L'image vide doit être assez large pour contenir les 2 images */
$width = $im->getImageWidth() + 40;
$height = ($im->getImageHeight() * 2) + 30;
$canvas->newImage($width, $height, new ImagickPixel("black"));
$canvas->setImageFormat("png");

/* Ajout de l'image originale et de l'image retournée dans notre nouvelle image */
$canvas->compositeImage($im, imagick::COMPOSITE_OVER, 20, 10);
$canvas->compositeImage($reflection, imagick::COMPOSITE_OVER, 20, $im->getImageHeight() + 10);

/* Affichage de l'image */
header("Content-Type: image/png");
echo $canvas;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Création d'un reflet sur une image

Voici un exemple montrant comment remplir un masque lors du dessin de l'image.

Exemple #4 Remplissage d'un texte avec un dégradé

<?php

/* Création d'un nouvel objet imagick */
$im = new Imagick();

/* Création d'une nouvelle image. Elle sera utilisée comme masque de remplissage */
$im->newPseudoImage(50, 50, "gradient:red-black");

/* Création d'un nouvel objet imagickdraw */
$draw = new ImagickDraw();

/* On commence un nouveau masque nommé "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);

/* Ajout du dégradé sur le masque */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);

/* Fermeture du masque */
$draw->popPattern();

/* Utilisation du masque nommé "gradient" comme remplissage */
$draw->setFillPatternURL('#gradient');

/* Définition de la taille du texte à 52 */
$draw->setFontSize(52);

/* Ajout d'un texte */
$draw->annotation(20, 50, "Bonjour le monde !");

/* Création d'un nouvel objet et d'une image blanche */
$canvas = new Imagick();
$canvas->newImage(350, 70, "white");

/* Dessine le ImagickDraw sur la nouvelle image */
$canvas->drawImage($draw);

/* Une bordure noire d'un pixel autour de l'image */
$canvas->borderImage('black', 1, 1);

/* Définition du format à PNG */
$canvas->setImageFormat('png');

/* Affiche l'image */
header("Content-Type: image/png");
echo $canvas;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Remplissage d'un texte avec un dégradé

Exemple avec des images GIF animées

Exemple #5 Lit une image GIF et redimensionne toutes les frames

<?php

/* Crée un nouvel objet imagick et lit une image GIF */
$im = new Imagick("example.gif");

/* Redimensionne toutes les frames */
foreach ($im as $frame) {
    /* 50x50 frames */
    $frame->thumbnailImage(50, 50);

    /* Définit le canevas virtuel à la bonne taille */
    $frame->setImagePage(50, 50, 0, 0);
}

/* Notez l'utilisation de writeImages au lieu de writeImage */
$im->writeImages("example_small.gif", true);
?>

Exemple avec des ellipses primitives et des polices personalisées

Exemple #6 Create a PHP logo

<?php
/* Définit la largeur et la hauteur en proportion du logo PHP */
$width = 400;
$height = 210;

/* Crée un objet Imagick avec une toile transparent */
$img = new Imagick();
$img->newImage($width, $height, new ImagickPixel('transparent'));

/* Nouvelle instance ImagickDraw pour dessiner l'ellipse */
$draw = new ImagickDraw();
/* Définit la couleur violette pour remplir l'ellipse */
$draw->setFillColor('#777bb4');
/* Définit les dimensions de l'ellipse */
$draw->ellipse($width / 2, $height / 2, $width / 2, $height / 2, 0, 360);
/* Dessine l'ellipse dans la toile */
$img->drawImage($draw);

/* Réinitialise la couleur de remplissage, passant du violet au noir pour le texte (note : nous ré-utilisons l'objet ImagickDraw) */
$draw->setFillColor('black');
/* Définit à blanc la couleur du trait de la bordure */
$draw->setStrokeColor('white');
/* Rend plus fin le trait de la bordure */
$draw->setStrokeWidth(2);
/* Définit le crénage de la police (une valeur négative signifie que les lettres sont proches les unes des autres) */
$draw->setTextKerning(-8);
/* Définit la police et sa taille à utiliser dans le logo PHP */
$draw->setFont('Handel Gothic.ttf');
$draw->setFontSize(150);
/* On centre le texte horizontalement et verticalement */
$draw->setGravity(Imagick::GRAVITY_CENTER);

/* Ajout de "php" au centre, avec une position en Y de -10 dans la toile (à l'intérieur de l'ellipse) */
$img->annotateImage($draw, 0, -10, 0, 'php');
$img->setImageFormat('png');

/* On définit l'en-tête approprié pour le PNG et on affiche l'image */
header('Content-Type: image/png');
echo $img;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Création d'un logo PHP avec Imagick


La classe Imagick

(PECL imagick 2.0.0)

Synopsis de la classe

Imagick implements Iterator {
bool adaptiveBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool adaptiveResizeImage ( int $columns , int $rows [, bool $bestfit = false ] )
bool adaptiveSharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool adaptiveThresholdImage ( int $width , int $height , int $offset )
bool addImage ( Imagick $source )
bool addNoiseImage ( int $noise_type [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool affineTransformImage ( ImagickDraw $matrix )
bool animateImages ( string $x_server )
bool annotateImage ( ImagickDraw $draw_settings , float $x , float $y , float $angle , string $text )
Imagick appendImages ( bool $stack = false )
public void autoLevelImage ([ string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )
Imagick averageImages ( void )
bool blackThresholdImage ( mixed $threshold )
public void blueShiftImage ([ float $factor = 1.5 ] )
bool blurImage ( float $radius , float $sigma [, int $channel ] )
bool borderImage ( mixed $bordercolor , int $width , int $height )
public void brightnessContrastImage ( string $brightness , string $contrast [, string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )
bool charcoalImage ( float $radius , float $sigma )
bool chopImage ( int $width , int $height , int $x , int $y )
public void clampImage ([ string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )
bool clear ( void )
bool clipImage ( void )
public void clipImagePath ( string $pathname , string $inside )
bool clipPathImage ( string $pathname , bool $inside )
Imagick clone ( void )
bool clutImage ( Imagick $lookup_table [, float $channel = Imagick::CHANNEL_DEFAULT ] )
Imagick coalesceImages ( void )
bool colorFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y )
bool colorizeImage ( mixed $colorize , mixed $opacity )
public void colorMatrixImage ( string $color_matrix = Imagick::CHANNEL_DEFAULT )
Imagick combineImages ( int $channelType )
bool commentImage ( string $comment )
array compareImageChannels ( Imagick $image , int $channelType , int $metricType )
Imagick compareImageLayers ( int $method )
array compareImages ( Imagick $compare , int $metric )
bool compositeImage ( Imagick $composite_object , int $composite , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )
__construct ( mixed $files )
bool contrastImage ( bool $sharpen )
bool contrastStretchImage ( float $black_point , float $white_point [, int $channel = Imagick::CHANNEL_ALL ] )
bool convolveImage ( array $kernel [, int $channel = Imagick::CHANNEL_ALL ] )
public void count ([ string $mode ] )
bool cropImage ( int $width , int $height , int $x , int $y )
bool cropThumbnailImage ( int $width , int $height )
Imagick current ( void )
bool cycleColormapImage ( int $displace )
bool decipherImage ( string $passphrase )
Imagick deconstructImages ( void )
bool deleteImageArtifact ( string $artifact )
public void deleteImageProperty ( string $name )
public bool deskewImage ( float $threshold )
bool despeckleImage ( void )
bool destroy ( void )
bool displayImage ( string $servername )
bool displayImages ( string $servername )
bool distortImage ( int $method , array $arguments , bool $bestfit )
bool drawImage ( ImagickDraw $draw )
bool edgeImage ( float $radius )
bool embossImage ( float $radius , float $sigma )
bool encipherImage ( string $passphrase )
bool enhanceImage ( void )
bool equalizeImage ( void )
bool evaluateImage ( int $op , float $constant [, int $channel = Imagick::CHANNEL_ALL ] )
public array exportImagePixels ( int $x , int $y , int $width , int $height , string $map , int $STORAGE )
bool extentImage ( int $width , int $height , int $x , int $y )
public void filter ( ImagickKernel $ImagickKernel [, int $CHANNEL = Imagick::CHANNEL_DEFAULT ] )
Imagick flattenImages ( void )
bool flipImage ( void )
bool floodFillPaintImage ( mixed $fill , float $fuzz , mixed $target , int $x , int $y , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool flopImage ( void )
public void forwardFourierTransformimage ( bool $magnitude )
bool frameImage ( mixed $matte_color , int $width , int $height , int $inner_bevel , int $outer_bevel )
public bool functionImage ( int $function , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] )
Imagick fxImage ( string $expression [, int $channel = Imagick::CHANNEL_ALL ] )
bool gammaImage ( float $gamma [, int $channel = Imagick::CHANNEL_ALL ] )
bool gaussianBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_ALL ] )
int getColorspace ( void )
int getCompression ( void )
int getCompressionQuality ( void )
string getCopyright ( void )
string getFilename ( void )
string getFont ( void )
string getFormat ( void )
int getGravity ( void )
string getHomeURL ( void )
Imagick getImage ( void )
int getImageAlphaChannel ( void )
string getImageArtifact ( string $artifact )
public string getImageAttribute ( string $key )
ImagickPixel getImageBackgroundColor ( void )
string getImageBlob ( void )
array getImageBluePrimary ( void )
ImagickPixel getImageBorderColor ( void )
int getImageChannelDepth ( int $channel )
float getImageChannelDistortion ( Imagick $reference , int $channel , int $metric )
float getImageChannelDistortions ( Imagick $reference , int $metric [, int $channel = Imagick::CHANNEL_DEFAULT ] )
array getImageChannelExtrema ( int $channel )
public array getImageChannelKurtosis ([ int $channel = Imagick::CHANNEL_DEFAULT ] )
array getImageChannelMean ( int $channel )
array getImageChannelRange ( int $channel )
array getImageChannelStatistics ( void )
Imagick getImageClipMask ( void )
ImagickPixel getImageColormapColor ( int $index )
int getImageColors ( void )
int getImageColorspace ( void )
int getImageCompose ( void )
int getImageCompression ( void )
int getImageCompressionQuality ( void )
int getImageDelay ( void )
int getImageDepth ( void )
int getImageDispose ( void )
float getImageDistortion ( MagickWand $reference , int $metric )
array getImageExtrema ( void )
string getImageFilename ( void )
string getImageFormat ( void )
float getImageGamma ( void )
array getImageGeometry ( void )
int getImageGravity ( void )
array getImageGreenPrimary ( void )
int getImageHeight ( void )
array getImageHistogram ( void )
int getImageIndex ( void )
int getImageInterlaceScheme ( void )
int getImageInterpolateMethod ( void )
int getImageIterations ( void )
int getImageLength ( void )
string getImageMagickLicense ( void )
bool getImageMatte ( void )
ImagickPixel getImageMatteColor ( void )
public string getImageMimeType ( void )
int getImageOrientation ( void )
array getImagePage ( void )
ImagickPixel getImagePixelColor ( int $x , int $y )
string getImageProfile ( string $name )
array getImageProfiles ([ string $pattern = "*" [, bool $only_names = true ]] )
array getImageProperties ([ string $pattern = "*" [, bool $only_names = true ]] )
string getImageProperty ( string $name )
array getImageRedPrimary ( void )
Imagick getImageRegion ( int $width , int $height , int $x , int $y )
int getImageRenderingIntent ( void )
array getImageResolution ( void )
string getImagesBlob ( void )
int getImageScene ( void )
string getImageSignature ( void )
int getImageSize ( void )
int getImageTicksPerSecond ( void )
float getImageTotalInkDensity ( void )
int getImageType ( void )
int getImageUnits ( void )
int getImageVirtualPixelMethod ( void )
array getImageWhitePoint ( void )
int getImageWidth ( void )
int getInterlaceScheme ( void )
int getIteratorIndex ( void )
int getNumberImages ( void )
string getOption ( string $key )
string getPackageName ( void )
array getPage ( void )
ImagickPixelIterator getPixelIterator ( void )
ImagickPixelIterator getPixelRegionIterator ( int $x , int $y , int $columns , int $rows )
float getPointSize ( void )
public static int getQuantum ( void )
array getQuantumDepth ( void )
array getQuantumRange ( void )
public static string getRegistry ( string $key )
string getReleaseDate ( void )
int getResource ( int $type )
int getResourceLimit ( int $type )
array getSamplingFactors ( void )
array getSize ( void )
int getSizeOffset ( void )
array getVersion ( void )
public bool haldClutImage ( Imagick $clut [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool hasNextImage ( void )
bool hasPreviousImage ( void )
public string|false identifyFormat ( string $embedText )
array identifyImage ([ bool $appendRawOutput = false ] )
bool implodeImage ( float $radius )
public bool importImagePixels ( int $x , int $y , int $width , int $height , string $map , int $storage , array $pixels )
public void inverseFourierTransformImage ( string $complement , string $magnitude )
bool labelImage ( string $label )
bool levelImage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Imagick::CHANNEL_ALL ] )
bool linearStretchImage ( float $blackPoint , float $whitePoint )
bool liquidRescaleImage ( int $width , int $height , float $delta_x , float $rigidity )
public static array listRegistry ( void )
bool magnifyImage ( void )
bool mapImage ( Imagick $map , bool $dither )
bool matteFloodfillImage ( float $alpha , float $fuzz , mixed $bordercolor , int $x , int $y )
bool medianFilterImage ( float $radius )
Imagick mergeImageLayers ( int $layer_method )
bool minifyImage ( void )
bool modulateImage ( float $brightness , float $saturation , float $hue )
Imagick montageImage ( ImagickDraw $draw , string $tile_geometry , string $thumbnail_geometry , int $mode , string $frame )
Imagick morphImages ( int $number_frames )
public void morphology ( int $morphologyMethod , int $iterations , ImagickKernel $ImagickKernel [, string $CHANNEL ] )
Imagick mosaicImages ( void )
bool motionBlurImage ( float $radius , float $sigma , float $angle [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool negateImage ( bool $gray [, int $channel = Imagick::CHANNEL_ALL ] )
bool newImage ( int $cols , int $rows , mixed $background [, string $format ] )
bool newPseudoImage ( int $columns , int $rows , string $pseudoString )
bool nextImage ( void )
bool normalizeImage ([ int $channel = Imagick::CHANNEL_ALL ] )
bool oilPaintImage ( float $radius )
bool opaquePaintImage ( mixed $target , mixed $fill , float $fuzz , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool optimizeImageLayers ( void )
bool orderedPosterizeImage ( string $threshold_map [, int $channel = Imagick::CHANNEL_ALL ] )
bool paintFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )
bool paintOpaqueImage ( mixed $target , mixed $fill , float $fuzz [, int $channel = Imagick::CHANNEL_ALL ] )
bool paintTransparentImage ( mixed $target , float $alpha , float $fuzz )
bool pingImage ( string $filename )
bool pingImageBlob ( string $image )
bool pingImageFile ( resource $filehandle [, string $fileName ] )
bool polaroidImage ( ImagickDraw $properties , float $angle )
bool posterizeImage ( int $levels , bool $dither )
bool previewImages ( int $preview )
bool previousImage ( void )
bool profileImage ( string $name , string $profile )
bool quantizeImage ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )
bool quantizeImages ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )
array queryFontMetrics ( ImagickDraw $properties , string $text [, bool $multiline ] )
array queryFonts ([ string $pattern = "*" ] )
array queryFormats ([ string $pattern = "*" ] )
bool radialBlurImage ( float $angle [, int $channel = Imagick::CHANNEL_ALL ] )
bool raiseImage ( int $width , int $height , int $x , int $y , bool $raise )
bool randomThresholdImage ( float $low , float $high [, int $channel = Imagick::CHANNEL_ALL ] )
bool readImage ( string $filename )
bool readImageBlob ( string $image [, string $filename ] )
bool readImageFile ( resource $filehandle [, string $fileName = null ] )
public Imagick readImages ( string $filenames )
bool recolorImage ( array $matrix )
bool reduceNoiseImage ( float $radius )
public bool remapImage ( Imagick $replacement , int $DITHER )
bool removeImage ( void )
string removeImageProfile ( string $name )
bool render ( void )
bool resampleImage ( float $x_resolution , float $y_resolution , int $filter , float $blur )
bool resetImagePage ( string $page )
bool resizeImage ( int $columns , int $rows , int $filter , float $blur [, bool $bestfit = false ] )
bool rollImage ( int $x , int $y )
bool rotateImage ( mixed $background , float $degrees )
public void rotationalBlurImage ( string $angle [, string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )
bool roundCorners ( float $x_rounding , float $y_rounding [, float $stroke_width = 10 [, float $displace = 5 [, float $size_correction = -6 ]]] )
bool sampleImage ( int $columns , int $rows )
bool scaleImage ( int $cols , int $rows [, bool $bestfit = false ] )
public bool segmentImage ( int $COLORSPACE , float $cluster_threshold , float $smooth_threshold [, bool $verbose = false ] )
public void selectiveBlurImage ( float $radius , float $sigma , float $threshold , int $CHANNEL )
bool separateImageChannel ( int $channel )
bool sepiaToneImage ( float $threshold )
bool setBackgroundColor ( mixed $background )
bool setColorspace ( int $COLORSPACE )
bool setCompression ( int $compression )
bool setCompressionQuality ( int $quality )
bool setFilename ( string $filename )
bool setFirstIterator ( void )
bool setFont ( string $font )
bool setFormat ( string $format )
bool setGravity ( int $gravity )
bool setImage ( Imagick $replace )
bool setImageAlphaChannel ( int $mode )
bool setImageArtifact ( string $artifact , string $value )
public void setImageAttribute ( string $key , string $value )
bool setImageBackgroundColor ( mixed $background )
bool setImageBias ( float $bias )
public void setImageBiasQuantum ( string $bias )
bool setImageBluePrimary ( float $x , float $y )
bool setImageBorderColor ( mixed $border )
bool setImageChannelDepth ( int $channel , int $depth )
bool setImageClipMask ( Imagick $clip_mask )
bool setImageColormapColor ( int $index , ImagickPixel $color )
bool setImageColorspace ( int $colorspace )
bool setImageCompose ( int $compose )
bool setImageCompression ( int $compression )
bool setImageCompressionQuality ( int $quality )
bool setImageDelay ( int $delay )
bool setImageDepth ( int $depth )
bool setImageDispose ( int $dispose )
bool setImageExtent ( int $columns , int $rows )
bool setImageFilename ( string $filename )
bool setImageFormat ( string $format )
bool setImageGamma ( float $gamma )
bool setImageGravity ( int $gravity )
bool setImageGreenPrimary ( float $x , float $y )
bool setImageIndex ( int $index )
bool setImageInterlaceScheme ( int $interlace_scheme )
bool setImageInterpolateMethod ( int $method )
bool setImageIterations ( int $iterations )
bool setImageMatte ( bool $matte )
bool setImageMatteColor ( mixed $matte )
bool setImageOpacity ( float $opacity )
bool setImageOrientation ( int $orientation )
bool setImagePage ( int $width , int $height , int $x , int $y )
bool setImageProfile ( string $name , string $profile )
bool setImageProperty ( string $name , string $value )
bool setImageRedPrimary ( float $x , float $y )
bool setImageRenderingIntent ( int $rendering_intent )
bool setImageResolution ( float $x_resolution , float $y_resolution )
bool setImageScene ( int $scene )
bool setImageTicksPerSecond ( int $ticks_per_second )
bool setImageType ( int $image_type )
bool setImageUnits ( int $units )
bool setImageVirtualPixelMethod ( int $method )
bool setImageWhitePoint ( float $x , float $y )
bool setInterlaceScheme ( int $interlace_scheme )
bool setIteratorIndex ( int $index )
bool setLastIterator ( void )
bool setOption ( string $key , string $value )
bool setPage ( int $width , int $height , int $x , int $y )
bool setPointSize ( float $point_size )
public void setProgressMonitor ( callable $callback )
public static void setRegistry ( string $key , string $value )
bool setResolution ( float $x_resolution , float $y_resolution )
bool setResourceLimit ( int $type , int $limit )
bool setSamplingFactors ( array $factors )
bool setSize ( int $columns , int $rows )
bool setSizeOffset ( int $columns , int $rows , int $offset )
bool setType ( int $image_type )
bool shadeImage ( bool $gray , float $azimuth , float $elevation )
bool shadowImage ( float $opacity , float $sigma , int $x , int $y )
bool sharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_ALL ] )
bool shaveImage ( int $columns , int $rows )
bool shearImage ( mixed $background , float $x_shear , float $y_shear )
bool sigmoidalContrastImage ( bool $sharpen , float $alpha , float $beta [, int $channel = Imagick::CHANNEL_ALL ] )
bool sketchImage ( float $radius , float $sigma , float $angle )
public Imagick smushImages ( string $stack , string $offset )
bool solarizeImage ( int $threshold )
public bool sparseColorImage ( int $SPARSE_METHOD , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool spliceImage ( int $width , int $height , int $x , int $y )
bool spreadImage ( float $radius )
public void statisticImage ( int $type , int $width , int $height [, string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )
Imagick steganoImage ( Imagick $watermark_wand , int $offset )
bool stereoImage ( Imagick $offset_wand )
bool stripImage ( void )
public Imagick subImageMatch ( Imagick $Imagick [, array &$offset [, float &$similarity ]] )
bool swirlImage ( float $degrees )
bool textureImage ( Imagick $texture_wand )
bool thresholdImage ( float $threshold [, int $channel = Imagick::CHANNEL_ALL ] )
bool thumbnailImage ( int $columns , int $rows [, bool $bestfit = false [, bool $fill = false ]] )
bool tintImage ( mixed $tint , mixed $opacity )
string __toString ( void )
Imagick transformImage ( string $crop , string $geometry )
bool transformImageColorspace ( int $colorspace )
bool transparentPaintImage ( mixed $target , float $alpha , float $fuzz , bool $invert )
bool transposeImage ( void )
bool transverseImage ( void )
bool trimImage ( float $fuzz )
bool uniqueImageColors ( void )
bool unsharpMaskImage ( float $radius , float $sigma , float $amount , float $threshold [, int $channel = Imagick::CHANNEL_ALL ] )
bool valid ( void )
bool vignetteImage ( float $blackPoint , float $whitePoint , int $x , int $y )
bool waveImage ( float $amplitude , float $length )
bool whiteThresholdImage ( mixed $threshold )
bool writeImage ([ string $filename = NULL ] )
bool writeImageFile ( resource $filehandle )
bool writeImages ( string $filename , bool $adjoin )
bool writeImagesFile ( resource $filehandle )
}

Méthodes Image et méthodes globales

La classe Imagick permet d'agir sur plusieurs images simultanément et ce, grâce à une pile interne. Il y a toujours un pointeur interne, pointant sur l'image courante. Quelques fonctions agissent sur toutes les images d'une classe Imagick, mais la plupart uniquement sur l'image courante au regard de cette pile. Tout comme les conversions, les noms des méthodes peuvent contenir le nom de l'image, relatant uniquement l'effet sur l'image de la pile.

Méthodes de la classe

Vu le nombre de méthodes, voici une liste les présentant de façon générale :

Méthodes de la classe
Effets sur l'image | Méthodes de récupération | Méthodes de définition | Lecture/écriture de l'image | Autres
Imagick::adaptiveBlurImage() | Imagick::getCompression() | Imagick::setBackgroundColor() | Imagick::__construct() | Imagick::clear()
Imagick::adaptiveResizeImage() | Imagick::getFilename() | Imagick::setCompressionQuality() | Imagick::addImage() | Imagick::clone()
Imagick::adaptiveSharpenImage() | Imagick::getFormat() | Imagick::setCompression() | Imagick::appendImages() | Imagick::current()
Imagick::adaptiveThresholdImage() | Imagick::getImageBackgroundColor() | Imagick::setFilename() | Imagick::getFilename() | Imagick::destroy()
Imagick::addNoiseImage() | Imagick::getImageBlob() | Imagick::getImagesBlob() | Imagick::setFormat() | Imagick::getFormat()
Imagick::affinetransformimage() | Imagick::getImageBluePrimary() | Imagick::setImageBackgroundColor() | Imagick::getImageFilename() | Imagick::getHomeURL()
Imagick::annotateImage() | Imagick::getImageBorderColor() | Imagick::setFirstIterator() | Imagick::getImageFormat() | Imagick::commentImage()
Imagick::averageImages() | Imagick::getImageChannelDepth() | Imagick::setImageBias() | Imagick::getImage() | Imagick::getNumberImages()
Imagick::blackThresholdImage() | Imagick::getImageChannelDistortion() | Imagick::setImageBluePrimary() | Imagick::setImageFilename() | Imagick::getReleaseDate()
Imagick::blurImage() | Imagick::getImageChannelExtrema() | Imagick::setImageBorderColor() | Imagick::setImageFormat() | Imagick::getVersion()
Imagick::borderImage() | Imagick::getImageChannelMean() | Imagick::setImageChannelDepth() | Imagick::readImageFile() | Imagick::hasNextImage()
Imagick::charcoalImage() | Imagick::getImageChannelStatistics() | Imagick::setImageColormapColor() | Imagick::readImage() | Imagick::hasPreviousImage()
Imagick::chopImage() | Imagick::getImageColormapColor() | Imagick::setImageColorSpace() | Imagick::writeImages() | Imagick::labelImage()
Imagick::clipImage() | Imagick::getImageColorspace() | Imagick::setImageCompose() | Imagick::writeImage() | Imagick::newImage()
Imagick::clipPathImage() | Imagick::getImageColors() | Imagick::setImageCompression() |  | Imagick::newPseudoImage()
Imagick::coalesceImages() | Imagick::getImageCompose() | Imagick::setImageDelay() |  | Imagick::nextImage()
Imagick::colorFloodFillImage() | Imagick::getImageDelay() | Imagick::setImageDepth() |  | Imagick::pingImageBlob()
Imagick::colorizeImage() | Imagick::getImageDepth() | Imagick::setImageDispose() |  | Imagick::pingImageFile()
Imagick::combineImages() | Imagick::getImageDispose() | Imagick::setImageDispose() |  | Imagick::pingImage()
Imagick::compareImageChannels() | Imagick::getImageDistortion() | Imagick::setImageExtent() |  | Imagick::previousImage()
Imagick::compareImageLayers() | Imagick::getImageExtrema() | Imagick::setImageFilename() |  | Imagick::profileImage()
Imagick::compositeImage() | Imagick::getImageFilename() | Imagick::setImageFormat() |  | Imagick::queryFormats()
Imagick::contrastImage() | Imagick::getImageFormat() | Imagick::setImageGamma() |  | Imagick::removeImageProfile()
Imagick::contrastStretchImage() | Imagick::getImageGamma() | Imagick::setImageGreenPrimary() |  | Imagick::removeImage()
Imagick::convolveImage() | Imagick::getImageGeometry() | Imagick::setImageIndex() |  | Imagick::setFirstIterator()
Imagick::cropImage() | Imagick::getImageGreenPrimary() | Imagick::setImageInterpolateMethod() |  | Imagick::setImageIndex()
Imagick::cycleColormapImage() | Imagick::getImageHeight() | Imagick::setImageIterations() |  | Imagick::valid()
Imagick::deconstructImages() | Imagick::getImageHistogram() | Imagick::setImageMatteColor() |  | Imagick::getCopyright()
Imagick::drawImage() | Imagick::getImageIndex() | Imagick::setImageMatte() |  |
Imagick::edgeImage() | Imagick::getImageInterlaceScheme() | Imagick::setImagePage() |  |
Imagick::embossImage() | Imagick::getImageInterpolateMethod() | Imagick::setImageProfile() |  |
Imagick::enhanceImage() | Imagick::getImageIterations() | Imagick::setImageProperty() |  |
Imagick::equalizeImage() | Imagick::getImageMatteColor() | Imagick::setImageRedPrimary() |  |
Imagick::evaluateImage() | Imagick::getImageMatte() | Imagick::setImageRenderingIntent() |  |
Imagick::flattenImages() | Imagick::getImagePage() | Imagick::setImageResolution() |  |
Imagick::flipImage() | Imagick::getImagePixelColor() | Imagick::setImageScene() |  |
Imagick::flopImage() | Imagick::getImageProfile() | Imagick::setImageTicksPerSecond() |  |
 | Imagick::getImageProperty() | Imagick::setImageType() |  |
Imagick::fxImage() | Imagick::getImageRedPrimary() | Imagick::setImageUnits() |  |
Imagick::gammaImage() | Imagick::getImageRegion() | Imagick::setImageVirtualPixelMethod() |  |
Imagick::gaussianBlurImage() | Imagick::getImageRenderingIntent() | Imagick::setImageWhitepoint() |  |
Imagick::implodeImage() | Imagick::getImageResolution() | Imagick::setInterlaceScheme() |  |
Imagick::levelImage() | Imagick::getImageScene() | Imagick::setOption() |  |
Imagick::linearStretchImage() | Imagick::getImageSignature() | Imagick::setPage() |  |
Imagick::magnifyImage() | Imagick::getImageTicksPerSecond() | Imagick::setResolution() |  |
Imagick::matteFloodFillImage() | Imagick::getImageTotalInkDensity() | Imagick::setResourceLimit() |  |
Imagick::medianFilterImage() | Imagick::getImageType() | Imagick::setSamplingFactors() |  |
Imagick::minifyImage() | Imagick::getImageUnits() | Imagick::setSizeOffset() |  |
Imagick::modulateImage() | Imagick::getImageVirtualPixelMethod() | Imagick::setSize() |  |
Imagick::montageImage() | Imagick::getImageWhitepoint() | Imagick::setType() |  |
Imagick::morphImages() | Imagick::getImageWidth() |  |  |
Imagick::mosaicImages() | Imagick::getImage() |  |  |
Imagick::motionBlurImage() | Imagick::getInterlaceScheme() |  |  |
Imagick::negateImage() | Imagick::getNumberImages() |  |  |
Imagick::normalizeImage() | Imagick::getOption() |  |  |
Imagick::oilPaintImage() | Imagick::getPackageName() |  |  |
Imagick::optimizeImageLayers() | Imagick::getPage() |  |  |
Imagick::paintOpaqueImage() | Imagick::getPixelIterator() |  |  |
Imagick::paintTransparentImage() | Imagick::getPixelRegionIterator() |  |  |
Imagick::posterizeImage() | Imagick::getQuantumDepth() |  |  |
Imagick::radialBlurImage() | Imagick::getQuantumRange() |  |  |
Imagick::raiseImage() | Imagick::getResourceLimit() |  |  |
Imagick::randomThresholdImage() | Imagick::getResource() |  |  |
Imagick::reduceNoiseImage() | Imagick::getSamplingFactors() |  |  |
Imagick::render() | Imagick::getSizeOffset() |  |  |
Imagick::resampleImage() | Imagick::getSize() |  |  |
Imagick::resizeImage() | Imagick::identifyImage() |  |  |
Imagick::rollImage() | Imagick::getImageSize() |  |  |
Imagick::rotateImage() |  |  |  |
Imagick::sampleImage() |  |  |  |
Imagick::scaleImage() |  |  |  |
Imagick::separateImageChannel() |  |  |  |
Imagick::sepiaToneImage() |  |  |  |
Imagick::shadeImage() |  |  |  |
Imagick::shadowImage() |  |  |  |
Imagick::sharpenImage() |  |  |  |
Imagick::shaveImage() |  |  |  |
Imagick::shearImage() |  |  |  |
Imagick::sigmoidalContrastImage() |  |  |  |
Imagick::sketchImage() |  |  |  |
Imagick::solarizeImage() |  |  |  |
Imagick::spliceImage() |  |  |  |
Imagick::spreadImage() |  |  |  |
Imagick::steganoImage() |  |  |  |
Imagick::stereoImage() |  |  |  |
Imagick::stripImage() |  |  |  |
Imagick::swirlImage() |  |  |  |
Imagick::textureImage() |  |  |  |
Imagick::thresholdImage() |  |  |  |
Imagick::thumbnailImage() |  |  |  |
Imagick::tintImage() |  |  |  |
Imagick::transverseImage() |  |  |  |
Imagick::trimImage() |  |  |  |
Imagick::uniqueImageColors() |  |  |  |
Imagick::unsharpMaskImage() |  |  |  |
Imagick::vignetteImage() |  |  |  |
Imagick::waveImage() |  |  |  |
Imagick::whiteThresholdImage() |  |  |  |

Sommaire

  • Imagick::adaptiveBlurImage — Ajout un flou adaptatif à l'image
  • Imagick::adaptiveResizeImage — Redimensionne adaptativement une image par triangulation
  • Imagick::adaptiveSharpenImage — Augmente le contraste de l'image
  • Imagick::adaptiveThresholdImage — Sélectionne le niveau de chaque pixel, à partir d'un intervalle d'intensité
  • Imagick::addImage — Ajoute une nouvelle image à la liste d'image Imagick
  • Imagick::addNoiseImage — Ajoute un bruit blanc à une image
  • Imagick::affineTransformImage — Transforme une image
  • Imagick::animateImages — Anime une ou plusieurs images
  • Imagick::annotateImage — Annote une image avec un texte
  • Imagick::appendImages — Ajoute un jeu d'images
  • Imagick::autoLevelImage — Description
  • Imagick::averageImages — Moyenne d'un jeu d'images
  • Imagick::blackThresholdImage — Force tous les pixels au-delà d'un seuil à noir
  • Imagick::blueShiftImage — Description
  • Imagick::blurImage — Ajoute un filtre de flou à une image
  • Imagick::borderImage — Encadre une image avec un bord
  • Imagick::brightnessContrastImage — Description
  • Imagick::charcoalImage — Simule un dessin au fusain
  • Imagick::chopImage — Supprime une région d'une image et retaille
  • Imagick::clampImage — Description
  • Imagick::clear — Libère toutes les ressources associées à un objet Imagick
  • Imagick::clipImage — S'aligne sur le premier chemin d'un profil 8BIM
  • Imagick::clipImagePath — Description
  • Imagick::clipPathImage — Suit le chemin d'un profil 8BIM
  • Imagick::clone — Fait une copie exacte d'un objet Imagick
  • Imagick::clutImage — Remplace les couleurs d'une image
  • Imagick::coalesceImages — Compose un jeu d'images
  • Imagick::colorFloodfillImage — Change la couleur d'un pixel
  • Imagick::colorizeImage — Mélange la couleur de remplissage avec l'image
  • Imagick::colorMatrixImage — Description
  • Imagick::combineImages — Combine plusieurs images en une seule
  • Imagick::commentImage — Ajoute un commentaire à une image
  • Imagick::compareImageChannels — Retourne la différence entre plusieurs images
  • Imagick::compareImageLayers — Retourne la région d'encadrement maximale entre deux images
  • Imagick::compareImages — Compare une image avec une image reconstituée
  • Imagick::compositeImage — Compose une image avec une autre
  • Imagick::__construct — Le constructeur Imagick
  • Imagick::contrastImage — Change le contraste de l'image
  • Imagick::contrastStretchImage — Améliore le contraste d'une image
  • Imagick::convolveImage — Applique un noyau de convolution à une image
  • Imagick::count — Description
  • Imagick::cropImage — Extrait une région d'une image
  • Imagick::cropThumbnailImage — Crée une miniature par retaillage
  • Imagick::current — Retourne une référence sur l'objet imagick courant
  • Imagick::cycleColormapImage — Déplace la carte des couleurs d'une image
  • Imagick::decipherImage — Déchiffre une image
  • Imagick::deconstructImages — Retourne les différences de certains pixels entre deux images
  • Imagick::deleteImageArtifact — Supprime l'artefact d'une image
  • Imagick::deleteImageProperty — Description
  • Imagick::deskewImage — Supprime le biais de l'image
  • Imagick::despeckleImage — Réduit le bruit speckle d'une image
  • Imagick::destroy — Détruit un objet Imagick
  • Imagick::displayImage — Affiche une image
  • Imagick::displayImages — Affiche une image ou une séquence
  • Imagick::distortImage — Déforme une image avec différentes méthodes
  • Imagick::drawImage — Affiche un objet ImagickDraw dans l'image courante
  • Imagick::edgeImage — Renforce les bords dans l'image
  • Imagick::embossImage — Retourne une image en niveau de gris, avec un effet 3D
  • Imagick::encipherImage — Chiffre une image
  • Imagick::enhanceImage — Améliore la qualité d'une image bruitée
  • Imagick::equalizeImage — Égalise l'histogramme d'une image
  • Imagick::evaluateImage — Applique une expression à une image
  • Imagick::exportImagePixels — Exporte les pixels bruts de l'image
  • Imagick::extentImage — Définit la taille de l'image
  • Imagick::filter — Description
  • Imagick::flattenImages — Fusionne une séquence d'images
  • Imagick::flipImage — Crée une image par miroir vertical
  • Imagick::floodFillPaintImage — Modifie la valeur de la couleur de chaque pixel correspondant à la cible
  • Imagick::flopImage — Crée une image par miroir horizontal
  • Imagick::forwardFourierTransformImage — Description
  • Imagick::frameImage — Ajoute un bord 3D
  • Imagick::functionImage — Applique une fonction sur l'image
  • Imagick::fxImage — Évalue une expression pour chaque pixel d'une image
  • Imagick::gammaImage — Applique une correction gamma à l'image
  • Imagick::gaussianBlurImage — Ajoute du flou à image
  • Imagick::getColorspace — Récupère l'espace de couleurs
  • Imagick::getCompression — Lit le type de compression
  • Imagick::getCompressionQuality — Lit la qualité de la compression
  • Imagick::getCopyright — Retourne le copyright de l'API ImageMagick API
  • Imagick::getFilename — Lit le nom du fichier associé à une séquence
  • Imagick::getFont — Récupère la police de caractères
  • Imagick::getFormat — Retourne le format de l'image Imagick
  • Imagick::getGravity — Récupère la gravité
  • Imagick::getHomeURL — Retourne l'URL de ImageMagick
  • Imagick::getImage — Retourne un nouvel objet Imagick
  • Imagick::getImageAlphaChannel — Récupère le canal alpha de l'image
  • Imagick::getImageArtifact — Récupère l'artefact de l'image
  • Imagick::getImageAttribute — Description
  • Imagick::getImageBackgroundColor — Retourne la couleur de fond
  • Imagick::getImageBlob — Retourne la séquence d'images comme un blob
  • Imagick::getImageBluePrimary — Retourne la chromacité de la couleur bleue
  • Imagick::getImageBorderColor — Retourne la couleur de bordure de l'image
  • Imagick::getImageChannelDepth — Lit la profondeur d'un des canaux de l'image
  • Imagick::getImageChannelDistortion — Compare les canaux d'une image reconstituée
  • Imagick::getImageChannelDistortions — Récupère les distorsions d'un canal
  • Imagick::getImageChannelExtrema — Lit les extrêmes pour les canaux de l'image
  • Imagick::getImageChannelKurtosis — Le but de getImageChannelKurtosis
  • Imagick::getImageChannelMean — Lit la moyenne et la déviation standard
  • Imagick::getImageChannelRange — Récupère l'intervalle du canal
  • Imagick::getImageChannelStatistics — Retourne des statistiques sur chaque canal de l'image
  • Imagick::getImageClipMask — Récupère le masque du clip de l'image
  • Imagick::getImageColormapColor — Retourne la couleur à l'index de la carte de couleurs
  • Imagick::getImageColors — Lit le nombre de couleurs uniques de l'image
  • Imagick::getImageColorspace — Lit l'espace de couleurs de l'image
  • Imagick::getImageCompose — Retourne l'opérateur de composition associé à une image
  • Imagick::getImageCompression — Lit le type de compression de l'image
  • Imagick::getImageCompressionQuality — Lit la qualité de compression de l'image
  • Imagick::getImageDelay — Lit le délai de l'image
  • Imagick::getImageDepth — Lit la profondeur de l'image
  • Imagick::getImageDispose — Lit la méthode de récupération
  • Imagick::getImageDistortion — Compare une image à une image reconstituée
  • Imagick::getImageExtrema — Lit les extrêmes d'une image
  • Imagick::getImageFilename — Retourne le nom d'un fichier pour une image dans une séquence
  • Imagick::getImageFormat — Retourne le format d'une image dans une séquence
  • Imagick::getImageGamma — Lit le gamma de l'image
  • Imagick::getImageGeometry — Lit les dimensions de l'image dans un tableau
  • Imagick::getImageGravity — Récupère la gravité de l'image
  • Imagick::getImageGreenPrimary — Retourne la chromacité de la couleur verte
  • Imagick::getImageHeight — Retourne la hauteur de l'image
  • Imagick::getImageHistogram — Retourne l'histogramme de l'image
  • Imagick::getImageIndex — Lit l'index de l'image courante
  • Imagick::getImageInterlaceScheme — Lit le schéma d'entrelacement de l'image
  • Imagick::getImageInterpolateMethod — Retourne la méthode d'interpolation
  • Imagick::getImageIterations — Lit les itérations de l'image
  • Imagick::getImageLength — Retourne la taille de l'image en octets
  • Imagick::getImageMagickLicense — Retourne une chaîne avec la licence ImageMagick
  • Imagick::getImageMatte — Indique si l'image a un canal mat
  • Imagick::getImageMatteColor — Retourne la couleur mate de l'image
  • Imagick::getImageMimeType — Description
  • Imagick::getImageOrientation — Lit l'orientation de l'image
  • Imagick::getImagePage — Retourne la géométrie de la page
  • Imagick::getImagePixelColor — Retourne la couleur d'un pixel
  • Imagick::getImageProfile — Retourne un profil d'une image
  • Imagick::getImageProfiles — Retourne les profils de l'image
  • Imagick::getImageProperties — Retourne les propriétés EXIF de l'image
  • Imagick::getImageProperty — Retourne une propriété d'une image
  • Imagick::getImageRedPrimary — Retourne la chromacité du point rouge
  • Imagick::getImageRegion — Extrait une région d'une image
  • Imagick::getImageRenderingIntent — Lit la méthode de rendu de l'image
  • Imagick::getImageResolution — Lit les résolutions en X et Y d'une image
  • Imagick::getImagesBlob — Retourne toutes les images de la séquence en un BLOB
  • Imagick::getImageScene — Retourne la scène de l'image
  • Imagick::getImageSignature — Génère une signature SHA-256
  • Imagick::getImageSize — Retourne la taille de l'image en octets
  • Imagick::getImageTicksPerSecond — Lit les ticks-par-seconde de l'image
  • Imagick::getImageTotalInkDensity — Lit la densité totale d'encre de l'image
  • Imagick::getImageType — Lit le type possible d'image
  • Imagick::getImageUnits — Retourne les unités de résolution de l'image
  • Imagick::getImageVirtualPixelMethod — Retourne la méthode du pixel virtuel
  • Imagick::getImageWhitePoint — Retourne la chromacité du point blanc
  • Imagick::getImageWidth — Retourne la largeur de l'image
  • Imagick::getInterlaceScheme — Lit le schéma d'entrelacement de l'objet
  • Imagick::getIteratorIndex — Lit l'index de l'image active courante
  • Imagick::getNumberImages — Retourne le nombre d'images d'un objet
  • Imagick::getOption — Retourne la valeur d'une option
  • Imagick::getPackageName — Retourne le nom du paquet ImageMagick
  • Imagick::getPage — Retourne la géométrie de la page
  • Imagick::getPixelIterator — Retourne un MagickPixelIterator
  • Imagick::getPixelRegionIterator — Lit un objet ImagickPixelIterator pour une section d'image
  • Imagick::getPointSize — Récupère la taille du point
  • Imagick::getQuantum — Description
  • Imagick::getQuantumDepth — Lit la profondeur quantique
  • Imagick::getQuantumRange — Retourne l'intervalle quantique de Imagick
  • Imagick::getRegistry — Description
  • Imagick::getReleaseDate — Retourne la date de publication de ImageMagick
  • Imagick::getResource — Retourne la consommation de mémoire de la ressource
  • Imagick::getResourceLimit — Retourne la limite de la ressource
  • Imagick::getSamplingFactors — Lit le facteur d'échantillonnage horizontal et vertical
  • Imagick::getSize — Retourne la taille associée avec un objet Imagick
  • Imagick::getSizeOffset — Retourne la taille de la position
  • Imagick::getVersion — Retourne l'API de ImageMagick API
  • Imagick::haldClutImage — Remplace les couleurs de l'image
  • Imagick::hasNextImage — Vérifie si un objet a une image suivante
  • Imagick::hasPreviousImage — Vérifie si un objet a une image précédente
  • Imagick::identifyFormat — Description
  • Imagick::identifyImage — Identifie une image et lit ses attributs
  • Imagick::implodeImage — Crée une nouvelle copie d'image
  • Imagick::importImagePixels — Importe des pixels dans une image
  • Imagick::inverseFourierTransformImage — Description
  • Imagick::labelImage — Ajoute un libelle à une image
  • Imagick::levelImage — Ajuste les niveaux de l'image
  • Imagick::linearStretchImage — Étire la saturation de l'intensité de l'image
  • Imagick::liquidRescaleImage — Anime une ou plusieurs images
  • Imagick::listRegistry — Description
  • Imagick::magnifyImage — Double la taille d'une image, proportionnellement
  • Imagick::mapImage — Remplace la couleur d'une image par celle d'une image de référence
  • Imagick::matteFloodfillImage — Change la transparence d'une couleur
  • Imagick::medianFilterImage — Applique un filtre numérique
  • Imagick::mergeImageLayers — Fusionne les calques de l'image
  • Imagick::minifyImage — Met à l'échelle une image proportionnellement pour la réduire de moitié de taille
  • Imagick::modulateImage — Contrôle la saturation, l'intensité et la teinte
  • Imagick::montageImage — Crée une image composite
  • Imagick::morphImages — Réalise un morphing entre deux images
  • Imagick::morphology — Description
  • Imagick::mosaicImages — Forme une mosaïque d'images
  • Imagick::motionBlurImage — Ajout un flou de déplacement
  • Imagick::negateImage — Effectue la négation des couleurs d'une image de référence
  • Imagick::newImage — Crée une nouvelle image
  • Imagick::newPseudoImage — Crée une nouvelle image
  • Imagick::nextImage — Passe à la prochaine image
  • Imagick::normalizeImage — Améliore le contraste de l'image
  • Imagick::oilPaintImage — Simule une peinture à l'huile
  • Imagick::opaquePaintImage — Modifie la valeur de la couleur de tous les pixels correspondant à la cible
  • Imagick::optimizeImageLayers — Supprime les portions récurrents d'images à optimiser
  • Imagick::orderedPosterizeImage — Effectue un dither ordonné
  • Imagick::colorFloodfillImage — Change les pixels qui sont d'une couleur
  • Imagick::paintOpaqueImage — Change les pixels qui sont d'une couleur
  • Imagick::paintTransparentImage — Remplit les pixels avec une couleur
  • Imagick::pingImage — Lit des attributs simples sans ouvrir une image
  • Imagick::pingImageBlob — Lit rapidement les attributs
  • Imagick::pingImageFile — Lit les attributs simples d'une image
  • Imagick::polaroidImage — Simule une photo Polaroid
  • Imagick::posterizeImage — Réduit une image à un nombre limité de couleurs
  • Imagick::previewImages — Teste rapidement différents paramètres pour un traitement d'images
  • Imagick::previousImage — Passe à l'image précédente dans une séquence d'images
  • Imagick::profileImage — Ajoute ou retire un profil d'une image
  • Imagick::quantizeImage — Analyse les couleurs dans une référence d'image
  • Imagick::quantizeImages — Analyse les couleurs d'une séquence d'images
  • Imagick::queryFontMetrics — Retourne un tableau représentant les dimensions de la police
  • Imagick::queryFonts — Retourne la liste de polices configurés
  • Imagick::queryFormats — Retourne les formats supportés par Imagick
  • Imagick::radialBlurImage — Flou radial d'une image
  • Imagick::raiseImage — Crée un effet 3D de bouton
  • Imagick::randomThresholdImage — Crée une image en deux couleurs, à haut contraste
  • Imagick::readImage — Lit une image depuis un fichier
  • Imagick::readImageBlob — Lit une image depuis une chaîne binaire
  • Imagick::readImageFile — Lit une image à partir d'une ressource fichier
  • Imagick::readimages — Description
  • Imagick::recolorImage — Recolore l'image
  • Imagick::reduceNoiseImage — Adoucit les contours d'une image
  • Imagick::remapImage — Reconfigure les couleurs de l'image
  • Imagick::removeImage — Retire une image de la liste
  • Imagick::removeImageProfile — Supprime le profil de l'image et le retourne
  • Imagick::render — Affiche toute les commandes de dessins précédentes
  • Imagick::resampleImage — Rééchantillonne l'image
  • Imagick::resetImagePage — Réinitialise la page de l'image
  • Imagick::resizeImage — Redimensionne une image
  • Imagick::rollImage — Décale une image
  • Imagick::rotateImage — Tourne une image
  • Imagick::rotationalBlurImage — Description
  • Imagick::roundCorners — Arrondit les coins d'un image
  • Imagick::sampleImage — Met à l'échelle une image avec échantillonnage de pixels
  • Imagick::scaleImage — Met à l'échelle la taille de l'image
  • Imagick::segmentImage — Segmente une image
  • Imagick::selectiveBlurImage — Description
  • Imagick::separateImageChannel — Sépare un canal d'une image
  • Imagick::sepiaToneImage — Passe une image en tons sépia
  • Imagick::setBackgroundColor — Configure la couleur de fond par défaut
  • Imagick::setColorspace — Définit l'espace de couleurs
  • Imagick::setCompression — Configure le type de compression de l'objet
  • Imagick::setCompressionQuality — Configure la compression par défaut de l'objet
  • Imagick::setFilename — Configure le nom du fichier d'image avant d'y accéder
  • Imagick::setFirstIterator — Place l'itérateur de Imagick sur la première image
  • Imagick::setFont — Configure la police
  • Imagick::setFormat — Configure le format de l'objet Imagick
  • Imagick::setGravity — Définit la gravité
  • Imagick::setImage — Remplace l'image dans l'objet
  • Imagick::setImageAlphaChannel — Définit le canal alpha de l'image
  • Imagick::setImageArtifact — Définit l'artefact de l'image
  • Imagick::setImageAttribute — Description
  • Imagick::setImageBackgroundColor — Configure la couleur de fond d'image
  • Imagick::setImageBias — Configure le biais pour les convolutions
  • Imagick::setImageBiasQuantum — Description
  • Imagick::setImageBluePrimary — Configure la chromacité du point bleu
  • Imagick::setImageBorderColor — Configure la couleur de bordure
  • Imagick::setImageChannelDepth — Configure la profondeur d'un canal
  • Imagick::setImageClipMask — Définit le masque du clip de l'image
  • Imagick::setImageColormapColor — Configure une couleur de la carte
  • Imagick::setImageColorspace — Configure l'espace de couleurs de l'image
  • Imagick::setImageCompose — Configure l'opérateur de composition de l'image
  • Imagick::setImageCompression — Configure la compression de l'image
  • Imagick::setImageCompressionQuality — Spécifie la qualité de compression de l'image
  • Imagick::setImageDelay — Configure le délai de l'image
  • Imagick::setImageDepth — Configure la profondeur de l'image
  • Imagick::setImageDispose — Configure la méthode de récupération
  • Imagick::setImageExtent — Configure la taille d'une image
  • Imagick::setImageFilename — Configure le nom de fichier d'une image dans une séquence
  • Imagick::setImageFormat — Configure le format d'une image dans une séquence
  • Imagick::setImageGamma — Configure la correction gamma
  • Imagick::setImageGravity — Définit la gravité de l'image
  • Imagick::setImageGreenPrimary — Configure la chromacité du point vert
  • Imagick::setImageIndex — Modifie la position de l'itérateur
  • Imagick::setImageInterlaceScheme — Configure la méthode d'entrelacement de l'image
  • Imagick::setImageInterpolateMethod — Configure la méthode d'interpolation de l'image
  • Imagick::setImageIterations — Configure les itérations de l'image
  • Imagick::setImageMatte — Configure le canal mate de l'image
  • Imagick::setImageMatteColor — Configure la couleur mate
  • Imagick::setImageOpacity — Configure le niveau d'opacité de l'image
  • Imagick::setImageOrientation — Configure l'orientation de l'image
  • Imagick::setImagePage — Configure la géométrie de la page de l'image
  • Imagick::setImageProfile — Ajoute un profil à un objet Imagick
  • Imagick::setImageProperty — Configure une propriété d'image
  • Imagick::setImageRedPrimary — Configure la chromacité du point rouge
  • Imagick::setImageRenderingIntent — Configure le type de rendu de l'image
  • Imagick::setImageResolution — Configure la résolution de l'image
  • Imagick::setImageScene — Configure la scène de l'image
  • Imagick::setImageTicksPerSecond — Configure le nombre e tick par seconde de l'image
  • Imagick::setImageType — Configure le type d'image
  • Imagick::setImageUnits — Configure les unités de résolutions de l'image
  • Imagick::setImageVirtualPixelMethod — Configure la méthode du point virtuel de l'image
  • Imagick::setImageWhitePoint — Configure la chromacité du point blanc
  • Imagick::setInterlaceScheme — Configure la compression de l'image
  • Imagick::setIteratorIndex — Déplace l'itérateur
  • Imagick::setLastIterator — Positionne l'itérateur Imagick à la dernière image
  • Imagick::setOption — Configure une option d'un objet Imagick
  • Imagick::setPage — Configure la géométrie de la page de l'objet Imagick
  • Imagick::setPointSize — Définit la taille du point
  • Imagick::setProgressMonitor — Description
  • Imagick::setRegistry — Description
  • Imagick::setResolution — Configure la résolution de l'image
  • Imagick::setResourceLimit — Configure la taille limite d'une ressource
  • Imagick::setSamplingFactors — Configure les facteurs d'échantillonnage de l'image
  • Imagick::setSize — Configure la taille de l'objet Imagick
  • Imagick::setSizeOffset — Configure la taille et la position de l'objet Imagick
  • Imagick::setType — Configure l'attribut de l'image
  • Imagick::shadeImage — Crée un effet 3D
  • Imagick::shadowImage — Simule une ombre sur l'image
  • Imagick::sharpenImage — Aiguise une image
  • Imagick::shaveImage — Supprime les pixels du bord de l'image
  • Imagick::shearImage — Crée un parallélogramme
  • Imagick::sigmoidalContrastImage — Ajuste le contraste de l'image
  • Imagick::sketchImage — Simule un crayon à main levée
  • Imagick::smushImages — Description
  • Imagick::solarizeImage — Applique un effet de solarisation à l'image
  • Imagick::sparseColorImage — Interpole les couleurs
  • Imagick::spliceImage — Joint une couleur solide dans l'image
  • Imagick::spreadImage — Bouge aléatoirement chaque pixel d'un bloc
  • Imagick::statisticImage — Description
  • Imagick::steganoImage — Cache un filigrane digital dans l'image
  • Imagick::stereoImage — Fusionne 2 images
  • Imagick::stripImage — Supprime d'une image tous les profiles et les commentaires
  • Imagick::subImageMatch — Description
  • Imagick::swirlImage — Tourbillonne les pixels du centre de l'image
  • Imagick::textureImage — Répète les carreaux de la texture d'une image
  • Imagick::thresholdImage — Modifie la valeur des pixels individuels, basée sur un seuil
  • Imagick::thumbnailImage — Modifie la taille d'une image
  • Imagick::tintImage — Applique un vecteur de couleur à chaque pixel de l'image
  • Imagick::__toString — Returns the image as a string.
  • Imagick::transformImage — Méthode de convenance pour définir la taille de rognage et la géométrie de l'image
  • Imagick::transformImageColorspace — Transforms an image to a new colorspace.
  • Imagick::transparentPaintImage — Colorise les pixels transparents
  • Imagick::transposeImage — Applique une symétrie verticale
  • Imagick::transverseImage — Crée un miroir horizontal de l'image
  • Imagick::trimImage — Supprime les bords de l'image
  • Imagick::uniqueImageColors — Ne conserve qu'une couleur de pixel
  • Imagick::unsharpMaskImage — Rend une image plus nette
  • Imagick::valid — Vérifie si l'élément courant est valide
  • Imagick::vignetteImage — Ajout un filtre vignette à l'image
  • Imagick::waveImage — Ajoute un filtre de vagues à l'image
  • Imagick::whiteThresholdImage — Force tous les pixels en dessous du seuil en blanc
  • Imagick::writeImage — Écrit une image dans le fichier spécifié
  • Imagick::writeImageFile — Écrit une image dans un descripteur de fichier
  • Imagick::writeImages — Écrit une image ou une séquence d'images
  • Imagick::writeImagesFile — Écrits des frames dans un descripteur de fichiers


Ajout un flou adaptatif à l'image

  • « Imagick
  • Imagick::adaptiveResizeImage »
  • PHP Manual
  • Imagick
  • Ajout un flou adaptatif à l'image

Imagick::adaptiveBlurImage

(PECL imagick 2.0.0)

Imagick::adaptiveBlurImage — Ajout un flou adaptatif à l'image

Description

bool Imagick::adaptiveBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Ajout un flou adaptatif à l'image. L'intensité du flou est diminué aux bords de l'image, mais uniforme au centre. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

radius

Le rayon de la gaussienne, en pixel, sans compter le centre. Avec une valeur de 0 et le rayon sera choisi automatiquement.

sigma

La déviation standard de la gaussienne, en pixel.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::adaptiveBlurImage()

Flou adaptative d'une image, puis affichage au navigateur.

<?php

header('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->adaptiveBlurImage(5,3);
echo $image;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Utilisation de Imagick::adaptiveBlurImage()

Voir aussi

  • Imagick::blurImage() - Ajoute un filtre de flou à une image
  • Imagick::motionBlurImage() - Ajout un flou de déplacement
  • Imagick::radialBlurImage() - Flou radial d'une image


Redimensionne adaptativement une image par triangulation

  • « Imagick::adaptiveBlurImage
  • Imagick::adaptiveSharpenImage »
  • PHP Manual
  • Imagick
  • Redimensionne adaptativement une image par triangulation

Imagick::adaptiveResizeImage

(PECL imagick 2.0.0)

Imagick::adaptiveResizeImage — Redimensionne adaptativement une image par triangulation

Description

bool Imagick::adaptiveResizeImage ( int $columns , int $rows [, bool $bestfit = false ] )

Redimensionne une image adaptativement par triangulation. Cette fonction évite les effets de flou dans les images à contraste fort. Elle fonctionne au mieux avec des images qu'il faut réduire légèrement à une taille Web standard; ne fonctionne pas toujours quand il faut réduire une grosse image à une miniature. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Note: Le comportement du paramètre bestfit a changé avec Imagick 3.0.0. Avant cette version, fournir les dimensions 400x400 à une image de dimensions 200x150 faisait que la partie gauche était inchangée. Avec Imagick 3.0.0 et suivants, l'image est réduite à la taille 400x300, sachant que c'est le meilleur résultat pour ces dimensions. Si le paramètre bestfit est utilisé, la largeur et la hauteur doivent être fournies.

Liste de paramètres

columns

Le nombre de colonnes dans l'image cible.

rows

Le nombre de lignes dans l'image cible.

bestfit

Indique s'il faut conserver l'image dans le rectangle de délimitation.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
2.1.0 | Ajout d'un paramètre optionnel de fit.
2.1.0 | Cette méthode supporte maintenant la mise à l'échelle proportionnelle. Utilisez la valeur zéro comme paramètre pour une mise à l'échelle proportionnelle.

Exemples

Exemple #1 Exemple avec Imagick::adaptiveResizeImage()

Redimensionne un image à une taille standard pour le Web. Cette méthode fonctionne au mieux lorsqu'il faut redimensionner à une taille légèrement inférieur à l'image précédente.

<?php
header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');
$image->adaptiveResizeImage(1024,768);

echo $image;
?>

Voir aussi

  • Imagick::chopImage() - Supprime une région d'une image et retaille
  • Imagick::cropImage() - Extrait une région d'une image
  • Imagick::magnifyImage() - Double la taille d'une image, proportionnellement
  • Imagick::minifyImage() - Met à l'échelle une image proportionnellement pour la réduire de moitié de taille
  • Imagick::resizeImage() - Redimensionne une image
  • Imagick::scaleImage() - Met à l'échelle la taille de l'image
  • Imagick::shaveImage() - Supprime les pixels du bord de l'image
  • Imagick::thumbnailImage() - Modifie la taille d'une image
  • Imagick::trimImage() - Supprime les bords de l'image


Augmente le contraste de l'image

  • « Imagick::adaptiveResizeImage
  • Imagick::adaptiveThresholdImage »
  • PHP Manual
  • Imagick
  • Augmente le contraste de l'image

Imagick::adaptiveSharpenImage

(PECL imagick 2.0.0)

Imagick::adaptiveSharpenImage — Augmente le contraste de l'image

Description

bool Imagick::adaptiveSharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Augment le contraste adaptativement, en l'augmentant au niveau des bords, et en le diminuant dans le coeur. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

radius

Le rayon de la gaussienne, en pixel, sans compter le pixel du centre. Utilisez 0 pour l'auto-sélection.

sigma

La déviation standard de la gaussienne, en pixel.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::adaptiveSharpenImage()

Augmente le contraste de l'image d'un rayon de 2 et un sigma de 1

<?php
try {
    $image = new Imagick('image.png');
    $image->adaptiveSharpenImage(2,1);
} catch(ImagickException $e) {
    echo 'Erreur : ' , $e->getMessage();
    die();
}
header('Content-type: image/png');
echo $image;
?>

Voir aussi

  • Imagick::sharpenImage() - Aiguise une image


Sélectionne le niveau de chaque pixel, à partir d'un intervalle d'intensité

  • « Imagick::adaptiveSharpenImage
  • Imagick::addImage »
  • PHP Manual
  • Imagick
  • Sélectionne le niveau de chaque pixel, à partir d'un intervalle d'intensité

Imagick::adaptiveThresholdImage

(PECL imagick 2.0.0)

Imagick::adaptiveThresholdImage — Sélectionne le niveau de chaque pixel, à partir d'un intervalle d'intensité

Description

bool Imagick::adaptiveThresholdImage ( int $width , int $height , int $offset )

Sélectionne le niveau individuel de chaque pixel, en se basant sur un intervalle d'intensité, dans le voisinage. Cela permet d'applique une fonction de seuil à une image dont l'histogramme ne contient pas de pic distinct.

Liste de paramètres

width

La largeur du voisinage.

height

La hauteur du voisinage.

offset

La moyenne de la position.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::adaptiveThresholdImage()

<?php
function adaptiveThresholdImage($imagePath, $width, $height, $adaptiveOffset) {
    $imagick = new \Imagick(realpath($imagePath));
    $adaptiveOffsetQuantum = intval($adaptiveOffset * \Imagick::getQuantum());
    $imagick->adaptiveThresholdImage($width, $height, $adaptiveOffsetQuantum);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Ajoute une nouvelle image à la liste d'image Imagick

  • « Imagick::adaptiveThresholdImage
  • Imagick::addNoiseImage »
  • PHP Manual
  • Imagick
  • Ajoute une nouvelle image à la liste d'image Imagick

Imagick::addImage

(PECL imagick 2.0.0)

Imagick::addImage — Ajoute une nouvelle image à la liste d'image Imagick

Description

bool Imagick::addImage ( Imagick $source )

Ajoute une nouvelle image à la liste d'image Imagick, à partir de la position courante de l'objet source. Après cette opération, l'itérateur est placé à la fin de la liste.

Liste de paramètres

source

L'objet source Imagick.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Ajoute un bruit blanc à une image

  • « Imagick::addImage
  • Imagick::affineTransformImage »
  • PHP Manual
  • Imagick
  • Ajoute un bruit blanc à une image

Imagick::addNoiseImage

(PECL imagick 2.0.0)

Imagick::addNoiseImage — Ajoute un bruit blanc à une image

Description

bool Imagick::addNoiseImage ( int $noise_type [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Ajoute un bruit blanc à une image.

Liste de paramètres

noise_type

Le type de bruit, dans la liste des constantes de bruit.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::addNoiseImage()

<?php
function addNoiseImage($noiseType, $imagePath, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->addNoiseImage($noiseType, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Transforme une image

  • « Imagick::addNoiseImage
  • Imagick::animateImages »
  • PHP Manual
  • Imagick
  • Transforme une image

Imagick::affineTransformImage

(PECL imagick 2.0.0)

Imagick::affineTransformImage — Transforme une image

Description

bool Imagick::affineTransformImage ( ImagickDraw $matrix )

Transforme une image, à l'aide d'une matrice affine.

Liste de paramètres

matrix

La matrice affine.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::affineTransformImage()

<?php
function affineTransformImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $draw = new \ImagickDraw();

    $angle = 40 ;

    $affineRotate = array(
        "sx" => cos($angle), "sy" => cos($angle),
        "rx" => sin($angle), "ry" => -sin($angle),
        "tx" => 0, "ty" => 0,
    );

    $draw->affine($affineRotate);

    $imagick->affineTransformImage($draw);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Anime une ou plusieurs images

  • « Imagick::affineTransformImage
  • Imagick::annotateImage »
  • PHP Manual
  • Imagick
  • Anime une ou plusieurs images

Imagick::animateImages

(No version information available, might only be in Git)

Imagick::animateImages — Anime une ou plusieurs images

Description

bool Imagick::animateImages ( string $x_server )

Cette méthode anime l'image sur un serveur X local ou distant. Cette méthode n'est pas disponible sur Windows. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

x_server

Adresse du serveur X.

Valeurs de retour

Retourne TRUE en cas de succès.

Voir aussi

  • Imagick::displayImage() - Affiche une image


Annote une image avec un texte

  • « Imagick::animateImages
  • Imagick::appendImages »
  • PHP Manual
  • Imagick
  • Annote une image avec un texte

Imagick::annotateImage

(PECL imagick 2.0.0)

Imagick::annotateImage — Annote une image avec un texte

Description

bool Imagick::annotateImage ( ImagickDraw $draw_settings , float $x , float $y , float $angle , string $text )

Annote une image avec un texte.

Liste de paramètres

draw_settings

L'objet ImagickDraw qui contient les directives pour dessiner le texte

x

La position horizontale du texte, en pixel depuis la gauche du texte

y

La position verticale du texte, en pixel depuis la ligne de base du texte

angle

L'angle auquel écrire le texte

text

La chaîne à dessiner

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::annotateImage()

Annote un texte dans une image vide

<?php
/* Création de quelques objets */
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel( 'gray' );

/* Nouvelle image */
$image->newImage(800, 75, $pixel);

/* Texte noir */
$pixel->setFillColor('black');

/* Propriétées du texte */
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize( 30 );

/* Création du texte */
$image->annotateImage($draw, 10, 45, 0, 'The quick brown fox jumps over the lazy dog');

/* Format de l'image */
$image->setImageFormat('png');

/* Affichage de l'image avec les entêtes */
header('Content-type: image/png');
echo $image;

?>

Voir aussi

  • ImagickDraw::annotation() - Dessine un texte sur une image
  • ImagickDraw::setFont() - Configure la police complète pour les textes


Ajoute un jeu d'images

  • « Imagick::annotateImage
  • Imagick::autoLevelImage »
  • PHP Manual
  • Imagick
  • Ajoute un jeu d'images

Imagick::appendImages

(PECL imagick 2.0.0)

Imagick::appendImages — Ajoute un jeu d'images

Description

Imagick Imagick::appendImages ( bool $stack = false )

Ajoute un jeu d'images dans une image plus large.

Liste de paramètres

stack

Si l'on doit placer les images dans la pile de façon verticale. Par défaut (ou si FALSE est spécifié), les images sont placées dans la pile de gauche à droite. Si le paramètre stack vaut TRUE, les images sont placées dans la pile de haut en bas.

Valeurs de retour

Retourne un nouvel objet Imagick en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::appendImages()

<?php

/* Crée un nouvel objet imagick */
$im = new Imagick();

/* Crée des images rouges, vertes et bleues */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Ajoute les images dans une autre */
$im->resetIterator();
$combined = $im->appendImages(true);

/* Affiche l'image */
$combined->setImageFormat("png");
header("Content-Type: image/png");
echo $combined;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Imagick::appendImages()


Description

  • « Imagick::appendImages
  • Imagick::averageImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::autoLevelImage

(No version information available, might only be in Git)

Imagick::autoLevelImage — Description

Description

public void Imagick::autoLevelImage ([ string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )

Adjusts the levels of a particular image channel by scaling the minimum and maximum values to the full quantum range.

Liste de paramètres

CHANNEL

Which channel should the auto-levelling should be done on.

Valeurs de retour

Exemples

Exemple #1 Imagick::autoLevelImage()

<?php
function autoLevelImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->autoLevelImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Moyenne d'un jeu d'images

  • « Imagick::autoLevelImage
  • Imagick::blackThresholdImage »
  • PHP Manual
  • Imagick
  • Moyenne d'un jeu d'images

Imagick::averageImages

(PECL imagick 2.0.0)

Imagick::averageImages — Moyenne d'un jeu d'images

Description

Imagick Imagick::averageImages ( void )

Fait la moyenne d'un jeu d'images.

Valeurs de retour

Retourne un nouvel objet Imagick en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Force tous les pixels au-delà d'un seuil à noir

  • « Imagick::averageImages
  • Imagick::blueShiftImage »
  • PHP Manual
  • Imagick
  • Force tous les pixels au-delà d'un seuil à noir

Imagick::blackThresholdImage

(PECL imagick 2.0.0)

Imagick::blackThresholdImage — Force tous les pixels au-delà d'un seuil à noir

Description

bool Imagick::blackThresholdImage ( mixed $threshold )

Équivalent de la fonction Imagick::thresholdImage(), mais force tous les pixels au-delà du seuil threshold en noir, et laisse les autres pixels inchangés.

Liste de paramètres

threshold

Le seuil en dessous duquel tout doit devenir noir

Valeurs de retour

Retourne TRUE en cas de succès.

Historique

Version | Description
2.1.0 | Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.

Exemples

Exemple #1 Exemple avec Imagick::blackThresholdImage()

<?php
function blackThresholdImage($imagePath, $thresholdColor) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->blackthresholdimage($thresholdColor);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::blackThresholdImage
  • Imagick::blurImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::blueShiftImage

(No version information available, might only be in Git)

Imagick::blueShiftImage — Description

Description

public void Imagick::blueShiftImage ([ float $factor = 1.5 ] )

Mutes the colors of the image to simulate a scene at nighttime in the moonlight.

Liste de paramètres

factor

Valeurs de retour

Exemples

Exemple #1 Imagick::blueShiftImage()

<?php
function blueShiftImage($imagePath, $blueShift) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->blueShiftImage($blueShift);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Ajoute un filtre de flou à une image

  • « Imagick::blueShiftImage
  • Imagick::borderImage »
  • PHP Manual
  • Imagick
  • Ajoute un filtre de flou à une image

Imagick::blurImage

(PECL imagick 2.0.0)

Imagick::blurImage — Ajoute un filtre de flou à une image

Description

bool Imagick::blurImage ( float $radius , float $sigma [, int $channel ] )

Ajoute un filtre de flou à une image. Le troisième paramètre channel, optionnel, ajoute le flou à un canal particulier.

Liste de paramètres

radius

Le rayon du flou

sigma

La déviation standard

channel

La constante de type de canal. Si elle n'est pas fournie, tous les canaux sont utilisés.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::blurImage()

Ajoute du flou à une image, puis affiche dans le navigateur.

<?php

header('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->blurImage(5,3);
echo $image;

?>

Voir aussi

  • Imagick::adaptiveBlurImage() - Ajout un flou adaptatif à l'image
  • Imagick::motionBlurImage() - Ajout un flou de déplacement
  • Imagick::radialBlurImage() - Flou radial d'une image


Encadre une image avec un bord

  • « Imagick::blurImage
  • Imagick::brightnessContrastImage »
  • PHP Manual
  • Imagick
  • Encadre une image avec un bord

Imagick::borderImage

(PECL imagick 2.0.0)

Imagick::borderImage — Encadre une image avec un bord

Description

bool Imagick::borderImage ( mixed $bordercolor , int $width , int $height )

Encadre une image avec un bord de couleur, défini par l'attribut bordercolor d'un objet ImagickPixel.

Liste de paramètres

bordercolor

Objet ImagickPixel ou une chaîne contenant la couleur du bord

width

La largeur du bord

height

La hauteur du bord

Valeurs de retour

Retourne TRUE en cas de succès.

Historique

Version | Description
2.1.0 | Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.

Exemples

Exemple #1 Exemple avec Imagick::borderImage()

<?php
function borderImage($imagePath, $color, $width, $height) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->borderImage($color, $width, $height);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::borderImage
  • Imagick::charcoalImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::brightnessContrastImage

(No version information available, might only be in Git)

Imagick::brightnessContrastImage — Description

Description

public void Imagick::brightnessContrastImage ( string $brightness , string $contrast [, string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )

Change the brightness and/or contrast of an image. It converts the brightness and contrast parameters into slope and intercept and calls a polynomical function to apply to the image.

Liste de paramètres

brightness

contrast

CHANNEL

Valeurs de retour

Exemples

Exemple #1 Imagick::brightnessContrastImage()

<?php
function brightnessContrastImage($imagePath, $brightness, $contrast, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->brightnessContrastImage($brightness, $contrast, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Simule un dessin au fusain

  • « Imagick::brightnessContrastImage
  • Imagick::chopImage »
  • PHP Manual
  • Imagick
  • Simule un dessin au fusain

Imagick::charcoalImage

(PECL imagick 2.0.0)

Imagick::charcoalImage — Simule un dessin au fusain

Description

bool Imagick::charcoalImage ( float $radius , float $sigma )

Simule un dessin au fusain

Liste de paramètres

radius

Le rayon de la gaussienne, en pixel, sans compter le pixel du centre

sigma

La déviation standard de la gaussienne, en pixel

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::charcoalImage()

<?php
function charcoalImage($imagePath, $radius, $sigma) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->charcoalImage($radius, $sigma);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Supprime une région d'une image et retaille

  • « Imagick::charcoalImage
  • Imagick::clampImage »
  • PHP Manual
  • Imagick
  • Supprime une région d'une image et retaille

Imagick::chopImage

(PECL imagick 2.0.0)

Imagick::chopImage — Supprime une région d'une image et retaille

Description

bool Imagick::chopImage ( int $width , int $height , int $x , int $y )

Supprime une région d'une image et retaille et déplace le reste de l'image pour occuper la portion coupée.

Liste de paramètres

width

La largeur de la région à retirer

height

La hauteur de la région à retirer

x

L'abscisse de la région retirée

y

L'ordonnée de la région retirée

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::chopImage()

Exemple avec Imagick::chopImage

<?php
/* Crée un objet */
$image = new Imagick();
$pixel = new ImagickPixel( 'gray' );

/* Nouvelle image */
$image->newImage(400, 200, $pixel);

/* Découpe l'image */
$image->chopImage(200, 200, 0, 0);

/* Donne un format à l'image */
$image->setImageFormat('png');

/* Envoie l'image */
header('Content-type: image/png');
echo $image;

?>

Voir aussi

  • Imagick::cropImage() - Extrait une région d'une image


Description

  • « Imagick::chopImage
  • Imagick::clear »
  • PHP Manual
  • Imagick
  • Description

Imagick::clampImage

(No version information available, might only be in Git)

Imagick::clampImage — Description

Description

public void Imagick::clampImage ([ string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )

Restricts the color range from 0 to the quantum depth.

Liste de paramètres

CHANNEL

Valeurs de retour


Libère toutes les ressources associées à un objet Imagick

  • « Imagick::clampImage
  • Imagick::clipImage »
  • PHP Manual
  • Imagick
  • Libère toutes les ressources associées à un objet Imagick

Imagick::clear

(PECL imagick 2.0.0)

Imagick::clear — Libère toutes les ressources associées à un objet Imagick

Description

bool Imagick::clear ( void )

Libère toutes les ressources associées à un objet Imagick.

Valeurs de retour

Retourne TRUE en cas de succès.


S'aligne sur le premier chemin d'un profil 8BIM

  • « Imagick::clear
  • Imagick::clipImagePath »
  • PHP Manual
  • Imagick
  • S'aligne sur le premier chemin d'un profil 8BIM

Imagick::clipImage

(PECL imagick 2.0.0)

Imagick::clipImage — S'aligne sur le premier chemin d'un profil 8BIM

Description

bool Imagick::clipImage ( void )

S'aligne sur le premier chemin d'un profil 8BIM, si présent.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Description

  • « Imagick::clipImage
  • Imagick::clipPathImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::clipImagePath

(No version information available, might only be in Git)

Imagick::clipImagePath — Description

Description

public void Imagick::clipImagePath ( string $pathname , string $inside )

Clips along the named paths from the 8BIM profile, if present. Later operations take effect inside the path. Id may be a number if preceded with #, to work on a numbered path, e.g., "#1" to use the first path.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pathname

inside

Valeurs de retour


Suit le chemin d'un profil 8BIM

  • « Imagick::clipImagePath
  • Imagick::clone »
  • PHP Manual
  • Imagick
  • Suit le chemin d'un profil 8BIM

Imagick::clipPathImage

(PECL imagick 2.0.0)

Imagick::clipPathImage — Suit le chemin d'un profil 8BIM

Description

bool Imagick::clipPathImage ( string $pathname , bool $inside )

Suit le chemin d'un profil 8BIM, s'il est présent. Les opérations suivantes auront lieux dans ce chemin. Cela peut être un nombre, s'il est précédé par #, pour utiliser un chemin numéroté, e.g., "#1" pour utiliser le premier chemin.

Liste de paramètres

pathname

Le nom du chemin

inside

Si TRUE les prochaines opérations auront lieu dans le chemin. Sinon, les prochaines opérations auront lieux hors du chemin.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Fait une copie exacte d'un objet Imagick

  • « Imagick::clipPathImage
  • Imagick::clutImage »
  • PHP Manual
  • Imagick
  • Fait une copie exacte d'un objet Imagick

Imagick::clone

(PECL imagick 2.0.0)

Imagick::clone — Fait une copie exacte d'un objet Imagick

Description

Imagick Imagick::clone ( void )

Fait une copie exacte d'un objet Imagick.

Avertissement

Cette fonction est devenue OBSOLETE à partir d'imagick 3.1.0. Vous devez désormais utiliser le mot clé clone.

Exemples

Exemple #1 Clonage d'objet Imagick avec différentes versions d'Imagick

<?php
// Clonage d'un objet Imagick en utilisant la version 2.x et 3.0 :
$newImage = $image->clone();

// Clonage d'un objet Imagick à partir de la version 3.1.0 :
$newImage = clone $image;
?>

Valeurs de retour

Une copie de l'objet Imagick.

Historique

Version | Description
3.1.0 | Cette méthode est devenue obsolète en faveur du mot clé clone.


Remplace les couleurs d'une image

  • « Imagick::clone
  • Imagick::coalesceImages »
  • PHP Manual
  • Imagick
  • Remplace les couleurs d'une image

Imagick::clutImage

(PECL imagick 2.0.0)

Imagick::clutImage — Remplace les couleurs d'une image

Description

bool Imagick::clutImage ( Imagick $lookup_table [, float $channel = Imagick::CHANNEL_DEFAULT ] )

Remplace les couleurs dans l'image à l'aide d'une table de correspondance. Un second paramètre optionnel remplace les couleurs dans un canal particulier. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

lookup_table

Un objet Imagick contenant la table de correspondance

channel

La constante de type de canal. S'il n'est pas fourni, les canaux par défaut sont utilisés.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::clutImage()

Remplace les couleurs dans une image à partir d'une table de correspondance

<?php
$image = new Imagick('test.jpg');
$clut = new Imagick();
$clut->newImage(1, 1, new ImagickPixel('black'));
$image->clutImage($clut);
$image->writeImage('test_out.jpg');
?>

Voir aussi

  • Imagick::adaptiveBlurImage() - Ajout un flou adaptatif à l'image
  • Imagick::motionBlurImage() - Ajout un flou de déplacement
  • Imagick::radialBlurImage() - Flou radial d'une image


Compose un jeu d'images

  • « Imagick::clutImage
  • Imagick::colorFloodfillImage »
  • PHP Manual
  • Imagick
  • Compose un jeu d'images

Imagick::coalesceImages

(PECL imagick 2.0.0)

Imagick::coalesceImages — Compose un jeu d'images

Description

Imagick Imagick::coalesceImages ( void )

Compose un jeu d'image en respectant toutes les positions et les méthodes de dispositions. Les séquences d'animations GIF, MIFF, et MNG, commencent typiquement par une image une fond, puis toutes les images suivantes varient en taille et position. Retourne un nouvel objet Imagick où chaque image de la séquence est de la même taille que la première, et composée avec la suivante dans la séquence.

Valeurs de retour

Retourne un nouvel objet Imagick en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Change la couleur d'un pixel

  • « Imagick::coalesceImages
  • Imagick::colorizeImage »
  • PHP Manual
  • Imagick
  • Change la couleur d'un pixel

Imagick::colorFloodfillImage

(PECL imagick 2.0.0)

Imagick::colorFloodfillImage — Change la couleur d'un pixel

Description

bool Imagick::colorFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y )

Change la couleur d'un pixel qui correspond à une cible, et ses voisins immédiats.

Liste de paramètres

fill

L'objet ImagickPixel contenant la couleur de remplissage

fuzz

La quantité de bruit. Par exemple, un bruit de 10 et la couleur rouge à l'intensité de 100 et 102, respectivement, sont maintenant interprété comme la même couleur, dans le cadre de ce remplissage.

bordercolor

L'objet ImagickPixel contenant la couleur de frontière

x

L'abscisse de début de remplissage

y

L'ordonnée de début de remplissage

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
2.1.0 | Permet maintenant à une chaîne représentant la couleur comme premier argument et troisième paramètre. Les versions précédentes n'autorisaient que les objets ImagickPixel.


Mélange la couleur de remplissage avec l'image

  • « Imagick::colorFloodfillImage
  • Imagick::colorMatrixImage »
  • PHP Manual
  • Imagick
  • Mélange la couleur de remplissage avec l'image

Imagick::colorizeImage

(PECL imagick 2.0.0)

Imagick::colorizeImage — Mélange la couleur de remplissage avec l'image

Description

bool Imagick::colorizeImage ( mixed $colorize , mixed $opacity )

Mélange la couleur de remplissage avec l'image.

Liste de paramètres

colorize

L'objet ImagickPixel ou une chaîne contenant la couleur de colorisation

opacity

L'objet ImagickPixel ou un nombre décimal contenant la valeur de l'opacité. 1.0 est totalement opaque, et 0.0 est totalement transparent.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
2.1.0 | Maintenant, permet à une chaîne représentant la couleur comme premier argument et un décimal représentant l'opacité comme second paramètre. Les version précédentes ne permettait que l'utilisation d'objet ImagickPixel.

Exemples

Exemple #1 Exemple avec Imagick::colorizeImage()

<?php
function colorizeImage($imagePath, $color, $opacity) {
    $imagick = new \Imagick(realpath($imagePath));
    $opacity = $opacity / 255.0;
    $opacityColor = new \ImagickPixel("rgba(0, 0, 0, $opacity)");
    $imagick->colorizeImage($color, $opacityColor);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::colorizeImage
  • Imagick::combineImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::colorMatrixImage

(No version information available, might only be in Git)

Imagick::colorMatrixImage — Description

Description

public void Imagick::colorMatrixImage ( string $color_matrix = Imagick::CHANNEL_DEFAULT )

Apply color transformation to an image. The method permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets). The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255)

Liste de paramètres

color_matrix

Valeurs de retour

Exemples

Exemple #1 Imagick::colorMatrixImage()

<?php
function colorMatrixImage($imagePath, $colorMatrix) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageOpacity(1);

    //A color matrix should look like:
    //    $colorMatrix = [
    //        1.5, 0.0, 0.0, 0.0, 0.0, -0.157,
    //        0.0, 1.0, 0.5, 0.0, 0.0, -0.157,
    //        0.0, 0.0, 1.5, 0.0, 0.0, -0.157,
    //        0.0, 0.0, 0.0, 1.0, 0.0,  0.0,
    //        0.0, 0.0, 0.0, 0.0, 1.0,  0.0,
    //        0.0, 0.0, 0.0, 0.0, 0.0,  1.0
    //    ];

    $background = new \Imagick();
    $background->newPseudoImage($imagick->getImageWidth(), $imagick->getImageHeight(),  "pattern:checkerboard");

    $background->setImageFormat('png');

    $imagick->setImageFormat('png');
    $imagick->colorMatrixImage($colorMatrix);

    $background->compositeImage($imagick, \Imagick::COMPOSITE_ATOP, 0, 0);

    header("Content-Type: image/png");
    echo $background->getImageBlob();
}

?>


Combine plusieurs images en une seule

  • « Imagick::colorMatrixImage
  • Imagick::commentImage »
  • PHP Manual
  • Imagick
  • Combine plusieurs images en une seule

Imagick::combineImages

(PECL imagick 2.0.0)

Imagick::combineImages — Combine plusieurs images en une seule

Description

Imagick Imagick::combineImages ( int $channelType )

Combine une ou plusieurs images en une seule. Les niveaux de gris des pixels de chaque images en séquence sont assignés en ordre à des canaux spécifiés de l'image combiné. L'ordre typique serait image 1 => Rouge, 2 => Vert, 3 => Bleu, etc.

Liste de paramètres

channelType

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Ajoute un commentaire à une image

  • « Imagick::combineImages
  • Imagick::compareImageChannels »
  • PHP Manual
  • Imagick
  • Ajoute un commentaire à une image

Imagick::commentImage

(PECL imagick 2.0.0)

Imagick::commentImage — Ajoute un commentaire à une image

Description

bool Imagick::commentImage ( string $comment )

Ajoute un commentaire à une image.

Liste de paramètres

comment

Le commentaire à ajouter.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::commentImage()

Ajout d'un commentaire d'image et lecture du commentaire

<?php

/* Crée un nouvel objet Imagick */
$im = new imagick();

/* Création d'une image vide */
$im->newImage(100, 100, new ImagickPixel("red"));

/* Ajoute un commentaire à une image */
$im->commentImage("Bonjour le monde!");

/* Affichage du commentaire */
echo $im->getImageProperty("commentaire");

?>


Retourne la différence entre plusieurs images

  • « Imagick::commentImage
  • Imagick::compareImageLayers »
  • PHP Manual
  • Imagick
  • Retourne la différence entre plusieurs images

Imagick::compareImageChannels

(PECL imagick 2.0.0)

Imagick::compareImageChannels — Retourne la différence entre plusieurs images

Description

array Imagick::compareImageChannels ( Imagick $image , int $channelType , int $metricType )

Compare une ou plusieurs images et retourne la différence.

Liste de paramètres

image

un objet Imagick contenant l'image à comparer

channelType

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

metricType

Une des constantes de type de métrique.

Valeurs de retour

Un tableau contenant new_wand et distortion.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la région d'encadrement maximale entre deux images

  • « Imagick::compareImageChannels
  • Imagick::compareImages »
  • PHP Manual
  • Imagick
  • Retourne la région d'encadrement maximale entre deux images

Imagick::compareImageLayers

(PECL imagick 2.0.0)

Imagick::compareImageLayers — Retourne la région d'encadrement maximale entre deux images

Description

Imagick Imagick::compareImageLayers ( int $method )

Compare chaque image avec la suivante, dans la séquence, et retourne la région d'encadrement maximale de chaque pixel différent entre les images. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

method

Une des constantes de méthode de couche.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::compareImageLayers()

Comparaison de deux calques d'image

<?php
/* création d'un nouvel objet imagick */
$im = new Imagick("test.gif");

/* optimisation des calques */
$result = $im->compareImageLayers(imagick::LAYERMETHOD_COALESCE);

/* Travail sur le résultat */
?>

Voir aussi

  • Imagick::optimizeImageLayers() - Supprime les portions récurrents d'images à optimiser
  • Imagick::writeImages() - Écrit une image ou une séquence d'images
  • Imagick::writeImage() - Écrit une image dans le fichier spécifié


Compare une image avec une image reconstituée

  • « Imagick::compareImageLayers
  • Imagick::compositeImage »
  • PHP Manual
  • Imagick
  • Compare une image avec une image reconstituée

Imagick::compareImages

(PECL imagick 2.0.0)

Imagick::compareImages — Compare une image avec une image reconstituée

Description

array Imagick::compareImages ( Imagick $compare , int $metric )

Retourne un tableau contenant l'image reconstituée et les différences entre les images.

Liste de paramètres

compare

Une image à comparer.

metric

Une constante de type de métrique. Voyez la liste des constantes de métriques.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::compareImages()

Compare des images et affiche l'image reconstituée

<?php

$image1 = new imagick("image1.png");
$image2 = new imagick("image2.png");

$result = $image1->compareImages($image2, Imagick::METRIC_MEANSQUAREERROR);
$result[0]->setImageFormat("png");

header("Content-Type: image/png");
echo $result[0];

?>


Compose une image avec une autre

  • « Imagick::compareImages
  • Imagick::__construct »
  • PHP Manual
  • Imagick
  • Compose une image avec une autre

Imagick::compositeImage

(PECL imagick 2.0.0)

Imagick::compositeImage — Compose une image avec une autre

Description

bool Imagick::compositeImage ( Imagick $composite_object , int $composite , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )

Compose une image dans une autre, à la position donné. Tout paramètre supplémentaire nécessaire à l'algorithme de composition doit être passé à setImageArtifact avec comme premier paramètre 'compose:args' et les données en second paramètre.

Liste de paramètres

composite_object

Objet Imagick qui contient l'image composite

compose

L'opérateur de composition. Voyez la liste des constantes d'opérateurs de composition

x

La colonne de position dans l'image composée

y

La ligne de position dans l'image composée

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Using Imagick::compositeImage():

Compose deux images avec la méthode de composition 'mathematics'.

<?php

// Equivalent à lancer la commande
// convert src1.png src2.png -compose mathematics -define compose:args="1,0,-0.5,0.5" -composite output.png

$src1 = new \Imagick("./src1.png");
$src2 = new \Imagick("./src2.png");

$src1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$src1->setImageArtifact('compose:args', "1,0,-0.5,0.5");
$src1->compositeImage($src2, Imagick::COMPOSITE_MATHEMATICS, 0, 0);
$src1->writeImage("./output.png");

?>

Voir aussi

  • Imagick::setImageArtifact() - Définit l'artefact de l'image


Le constructeur Imagick

  • « Imagick::compositeImage
  • Imagick::contrastImage »
  • PHP Manual
  • Imagick
  • Le constructeur Imagick

Imagick::__construct

(PECL imagick 2.0.0)

Imagick::__construct — Le constructeur Imagick

Description

Imagick::__construct ( mixed $files )

Crée une instance Imagick pour une image spécifique ou pour un jeu d'images.

Liste de paramètres

files

Le chemin jusqu'à l'image à charger, ou un tableau de chemins. Ils peuvent inclure des jokers dans les noms des fichiers, ou peuvent être des URLs.

Valeurs de retour

Retourne un nouvel objet Imagick, en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Change le contraste de l'image

  • « Imagick::__construct
  • Imagick::contrastStretchImage »
  • PHP Manual
  • Imagick
  • Change le contraste de l'image

Imagick::contrastImage

(PECL imagick 2.0.0)

Imagick::contrastImage — Change le contraste de l'image

Description

bool Imagick::contrastImage ( bool $sharpen )

Améliore l'intensité des différences entre les éléments clairs et sombres de l'image. Donnez une valeur différente de zéro si vous voulez améliorer le contraste, et sinon, il sera réduit.

Liste de paramètres

sharpen

La valeur de contraste.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::contrastImage()

<?php
function contrastImage($imagePath, $contrastType) {
    $imagick = new \Imagick(realpath($imagePath));
    if ($contrastType != 2) {
        $imagick->contrastImage($contrastType);
    }

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Améliore le contraste d'une image

  • « Imagick::contrastImage
  • Imagick::convolveImage »
  • PHP Manual
  • Imagick
  • Améliore le contraste d'une image

Imagick::contrastStretchImage

(PECL imagick 2.0.0)

Imagick::contrastStretchImage — Améliore le contraste d'une image

Description

bool Imagick::contrastStretchImage ( float $black_point , float $white_point [, int $channel = Imagick::CHANNEL_ALL ] )

Améliore le contraste d'une image en ajustant les couleurs des des pixels sur l'ensemble de la gamme des couleurs. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

black_point

Le point noir.

white_point

Le point blanc.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Par défaut, c'est Imagick::CHANNEL_ALL. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.


Applique un noyau de convolution à une image

  • « Imagick::contrastStretchImage
  • Imagick::count »
  • PHP Manual
  • Imagick
  • Applique un noyau de convolution à une image

Imagick::convolveImage

(PECL imagick 2.0.0)

Imagick::convolveImage — Applique un noyau de convolution à une image

Description

bool Imagick::convolveImage ( array $kernel [, int $channel = Imagick::CHANNEL_ALL ] )

Applique un noyau de convolution à une image.

Liste de paramètres

kernel

Le noyau de convolution

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::convolveImage()

<?php
function convolveImage($imagePath, $bias, $kernelMatrix) {
    $imagick = new \Imagick(realpath($imagePath));
    //$edgeFindingKernel = [-1, -1, -1, -1, 8, -1, -1, -1, -1,];
    $imagick->setImageBias($bias * \Imagick::getQuantum());
    $imagick->convolveImage($kernelMatrix);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::convolveImage
  • Imagick::cropImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::count

(No version information available, might only be in Git)

Imagick::count — Description

Description

public void Imagick::count ([ string $mode ] )

Returns the number of images.

Liste de paramètres

mode

An unused argument. Currently there is a non-particularly well defined feature in PHP where calling count() on a countable object might (or might not) require this method to accept a parameter. This parameter is here to be conformant with the interface of countable, even though the param is not used.

Valeurs de retour


Extrait une région d'une image

  • « Imagick::count
  • Imagick::cropThumbnailImage »
  • PHP Manual
  • Imagick
  • Extrait une région d'une image

Imagick::cropImage

(PECL imagick 2.0.0)

Imagick::cropImage — Extrait une région d'une image

Description

bool Imagick::cropImage ( int $width , int $height , int $x , int $y )

Extrait une région d'une image.

Liste de paramètres

width

La largeur du retaillage

height

La hauteur du retaillage

x

L'abscisse, coordonnée X, de la région retaillée, coin haut gauche

y

L'ordonnée, coordonnée Y, de la région retaillée, coin haut gauche

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::cropImage()

<?php
function cropImage($imagePath, $startX, $startY, $width, $height) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->cropImage($width, $height, $startX, $startY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Crée une miniature par retaillage

  • « Imagick::cropImage
  • Imagick::current »
  • PHP Manual
  • Imagick
  • Crée une miniature par retaillage

Imagick::cropThumbnailImage

(PECL imagick 2.0.0)

Imagick::cropThumbnailImage — Crée une miniature par retaillage

Description

bool Imagick::cropThumbnailImage ( int $width , int $height )

Crée une miniature de taille fixe, en réduisant sa taille de haut en bas, en recadrant l'image autour du centre.

Liste de paramètres

width

La largeur de la miniature

height

La hauteur de la miniature

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne une référence sur l'objet imagick courant

  • « Imagick::cropThumbnailImage
  • Imagick::cycleColormapImage »
  • PHP Manual
  • Imagick
  • Retourne une référence sur l'objet imagick courant

Imagick::current

(PECL imagick 2.0.0)

Imagick::current — Retourne une référence sur l'objet imagick courant

Description

Imagick Imagick::current ( void )

Retourne une référence sur l'objet courant, à partir d'une référence de séquence.

Valeurs de retour

Retourne self en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Déplace la carte des couleurs d'une image

  • « Imagick::current
  • Imagick::decipherImage »
  • PHP Manual
  • Imagick
  • Déplace la carte des couleurs d'une image

Imagick::cycleColormapImage

(PECL imagick 2.0.0)

Imagick::cycleColormapImage — Déplace la carte des couleurs d'une image

Description

bool Imagick::cycleColormapImage ( int $displace )

Déplace la carte de couleurs, d'un nombre donné de positions. Si vous faites tourner la cartes des couleurs plusieurs fois, vous pouvez produire des effets psychédéliques.

Liste de paramètres

displace

Le déplacement de la carte des couleurs.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Déchiffre une image

  • « Imagick::cycleColormapImage
  • Imagick::deconstructImages »
  • PHP Manual
  • Imagick
  • Déchiffre une image

Imagick::decipherImage

(No version information available, might only be in Git)

Imagick::decipherImage — Déchiffre une image

Description

bool Imagick::decipherImage ( string $passphrase )

Déchiffre une image. L'image doit être chiffré à l'aide de la fonction Imagick:: encipherImage () . Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.9 ou supérieur.

Liste de paramètres

passphrase

Le mot de passe.

Valeurs de retour

Retourne TRUE en cas de succès.

Voir aussi

  • Imagick::encipherImage() - Chiffre une image


Retourne les différences de certains pixels entre deux images

  • « Imagick::decipherImage
  • Imagick::deleteImageArtifact »
  • PHP Manual
  • Imagick
  • Retourne les différences de certains pixels entre deux images

Imagick::deconstructImages

(PECL imagick 2.0.0)

Imagick::deconstructImages — Retourne les différences de certains pixels entre deux images

Description

Imagick Imagick::deconstructImages ( void )

Compare chaque image avec la suivante dans la séquence, et retourne la région maximale d'encadrement des pixels différents qu'il découvre.

Valeurs de retour

Retourne un nouvel objet Imagick en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Supprime l'artefact d'une image

  • « Imagick::deconstructImages
  • Imagick::deleteImageProperty »
  • PHP Manual
  • Imagick
  • Supprime l'artefact d'une image

Imagick::deleteImageArtifact

(No version information available, might only be in Git)

Imagick::deleteImageArtifact — Supprime l'artefact d'une image

Description

bool Imagick::deleteImageArtifact ( string $artifact )

Supprime un artefact associé à l'image. La différence entre les propriétés de l'image et les artefacts de l'image est que les propriétés sont publiques, alors que les artefacts sont privés. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.5.7 ou supérieur.

Liste de paramètres

artifact

Le nom de l'artefact à supprimer.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Voir aussi

  • Imagick::setImageArtifact() - Définit l'artefact de l'image
  • Imagick::getImageArtifact() - Récupère l'artefact de l'image


Description

  • « Imagick::deleteImageArtifact
  • Imagick::deskewImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::deleteImageProperty

(No version information available, might only be in Git)

Imagick::deleteImageProperty — Description

Description

public void Imagick::deleteImageProperty ( string $name )

Deletes an image property.

Liste de paramètres

name

The name of the property to delete.

Valeurs de retour


Supprime le biais de l'image

  • « Imagick::deleteImageProperty
  • Imagick::despeckleImage »
  • PHP Manual
  • Imagick
  • Supprime le biais de l'image

Imagick::deskewImage

(No version information available, might only be in Git)

Imagick::deskewImage — Supprime le biais de l'image

Description

public bool Imagick::deskewImage ( float $threshold )

Cette méthode peut être utilisée pour supprimer le biais depuis, par exemple, les images scannées où le papier n'a pas été placé correctement sur la surface. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.5 ou supérieur.

Liste de paramètres

threshold

Seuil de redressement.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Imagick::deskewImage()

<?php
function deskewImage($threshold) {
    $imagick = new \Imagick(realpath("images/NYTimes-Page1-11-11-1918.jpg"));
    $deskewImagick = clone $imagick;

    // Il ne suffit que cela pour le redressement.
    $deskewImagick->deskewImage($threshold);

    // Le reste de l'exemple ne fait que rendre le résultat évident -
    // sans cela, la modificiation ne serait pas tellement visible.
    $trim = 9;

    $deskewImagick->cropImage($deskewImagick->getImageWidth() - $trim, $deskewImagick->getImageHeight(), $trim, 0);
    $imagick->cropImage($imagick->getImageWidth() - $trim, $imagick->getImageHeight(), $trim, 0);
    $deskewImagick->resizeimage($deskewImagick->getImageWidth() / 2, $deskewImagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1);
    $imagick->resizeimage($imagick->getImageWidth() / 2, $imagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1);
    $newCanvas = new \Imagick();
    $newCanvas->newimage($imagick->getImageWidth() + $deskewImagick->getImageWidth() + 20, $imagick->getImageHeight(), 'red', 'jpg');
    $newCanvas->compositeimage($imagick, \Imagick::COMPOSITE_COPY, 5, 0);
    $newCanvas->compositeimage($deskewImagick, \Imagick::COMPOSITE_COPY, $imagick->getImageWidth() + 10, 0);

    header("Content-Type: image/jpg");
    echo $newCanvas->getImageBlob();
}

?>


Réduit le bruit speckle d'une image

  • « Imagick::deskewImage
  • Imagick::destroy »
  • PHP Manual
  • Imagick
  • Réduit le bruit speckle d'une image

Imagick::despeckleImage

(PECL imagick 2.0.0)

Imagick::despeckleImage — Réduit le bruit speckle d'une image

Description

bool Imagick::despeckleImage ( void )

Réduit le bruit speckle d'une image, en préservant les bords de l'image original.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::despeckleImage()

<?php
function despeckleImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->despeckleImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Détruit un objet Imagick

  • « Imagick::despeckleImage
  • Imagick::displayImage »
  • PHP Manual
  • Imagick
  • Détruit un objet Imagick

Imagick::destroy

(PECL imagick 2.0.0)

Imagick::destroy — Détruit un objet Imagick

Description

bool Imagick::destroy ( void )

Détruit l'objet Imagick et libère toutes les ressources associées. Cette méthode est obsolète, en faveur de la méthode Imagick::clear.

Valeurs de retour

Retourne TRUE en cas de succès.


Affiche une image

  • « Imagick::destroy
  • Imagick::displayImages »
  • PHP Manual
  • Imagick
  • Affiche une image

Imagick::displayImage

(PECL imagick 2.0.0)

Imagick::displayImage — Affiche une image

Description

bool Imagick::displayImage ( string $servername )

Cette méthode affiche une image sur un serveur X.

Liste de paramètres

servername

Le nom du serveur X

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Affiche une image ou une séquence

  • « Imagick::displayImage
  • Imagick::distortImage »
  • PHP Manual
  • Imagick
  • Affiche une image ou une séquence

Imagick::displayImages

(PECL imagick 2.0.0)

Imagick::displayImages — Affiche une image ou une séquence

Description

bool Imagick::displayImages ( string $servername )

Affiche une image ou une séquence sur un serveur X.

Liste de paramètres

servername

Le nom du serveur X

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Déforme une image avec différentes méthodes

  • « Imagick::displayImages
  • Imagick::drawImage »
  • PHP Manual
  • Imagick
  • Déforme une image avec différentes méthodes

Imagick::distortImage

(PECL imagick 2.0.1)

Imagick::distortImage — Déforme une image avec différentes méthodes

Description

bool Imagick::distortImage ( int $method , array $arguments , bool $bestfit )

Déforme une image en utilisant différentes méthodes, en associant des couleurs de l'image source à celle d'une image de destination, généralement de la même taille, à moins que l'argument bestfit soit configuré à TRUE.

Si bestfit est activé, et que la déformation le permet, l'image de destination est ajusté pour s'assurer que toute l'image source va tenir dans l'image de destination, qui sera redimensionnée et repositionnée en fonction. De plus, dans de nombreux cas, la position virtuelle de l'image sera prise en compte dans l'association.

Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

method

La méthode de déformation de l'image. Voyez les constantes de déformation

arguments

Les arguments de cette méthode de déformation

bestfit

Tentative de redimensionnement de l'image de destination pour s'assurer de la taille

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::distortImage()

Déformation d'une image, et affichage sur le navigateur.

<?php
/* Crée un nouvel objet */
$im = new Imagick();

/* Crée un nouveau motif d'échiquier */
$im->newPseudoImage(100, 100, "pattern:checkerboard");

/* Configure l'image en PNG */
$im->setImageFormat('png');

/* Remplit la nouvelle zone visible à transparent */
$im->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);

/* Active le mate */
$im->setImageMatte(true);

/* Contrôle les points de déformation */
$controlPoints = array( 10, 10,
                        10, 5,

                        10, $im->getImageHeight() - 20,
                        10, $im->getImageHeight() - 5,

                        $im->getImageWidth() - 10, 10,
                        $im->getImageWidth() - 10, 20,

                        $im->getImageWidth() - 10, $im->getImageHeight() - 10,
                        $im->getImageWidth() - 10, $im->getImageHeight() - 30);

/* Effectue la déformation */
$im->distortImage(Imagick::DISTORTION_PERSPECTIVE, $controlPoints, true);

/* Envoie l'image */
header("Content-Type: image/png");
echo $im;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Utilisation de Imagick::distortImage()

Voir aussi

  • Imagick::blurImage() - Ajoute un filtre de flou à une image
  • Imagick::motionBlurImage() - Ajout un flou de déplacement
  • Imagick::radialBlurImage() - Flou radial d'une image


Affiche un objet ImagickDraw dans l'image courante

  • « Imagick::distortImage
  • Imagick::edgeImage »
  • PHP Manual
  • Imagick
  • Affiche un objet ImagickDraw dans l'image courante

Imagick::drawImage

(PECL imagick 2.0.0)

Imagick::drawImage — Affiche un objet ImagickDraw dans l'image courante

Description

bool Imagick::drawImage ( ImagickDraw $draw )

Affiche un objet ImagickDraw dans l'image courante.

Liste de paramètres

draw

Les opérations de dessins pour dessiner l'image.

Valeurs de retour

Retourne TRUE en cas de succès.


Renforce les bords dans l'image

  • « Imagick::drawImage
  • Imagick::embossImage »
  • PHP Manual
  • Imagick
  • Renforce les bords dans l'image

Imagick::edgeImage

(PECL imagick 2.0.0)

Imagick::edgeImage — Renforce les bords dans l'image

Description

bool Imagick::edgeImage ( float $radius )

Renforce les bords dans l'image, avec un filtre de convolution, pour un rayon donné. Avec un rayon de zéro, Imagick va choisir lui-même la valeur du rayon.

Liste de paramètres

radius

Le rayon de l'opération.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::edgeImage()

<?php
function edgeImage($imagePath, $radius) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->edgeImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Retourne une image en niveau de gris, avec un effet 3D

  • « Imagick::edgeImage
  • Imagick::encipherImage »
  • PHP Manual
  • Imagick
  • Retourne une image en niveau de gris, avec un effet 3D

Imagick::embossImage

(PECL imagick 2.0.0)

Imagick::embossImage — Retourne une image en niveau de gris, avec un effet 3D

Description

bool Imagick::embossImage ( float $radius , float $sigma )

Retourne une image en niveau de gris, avec un effet 3D. Une convolution d'image avec opérateur gaussien est appliqué, avec un rayon et une déviation standard donnée. Pour des résultats raisonnables, le rayon doit être plus grand que sigma (la déviation standard). Un rayon de zéro conduit à laisser Imagick choisir sa valeur.

Liste de paramètres

radius

Le rayon de l'effet

sigma

Le sigma de l'effet

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::embossImage()

<?php
function embossImage($imagePath, $radius, $sigma) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->embossImage($radius, $sigma);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Chiffre une image

  • « Imagick::embossImage
  • Imagick::enhanceImage »
  • PHP Manual
  • Imagick
  • Chiffre une image

Imagick::encipherImage

(No version information available, might only be in Git)

Imagick::encipherImage — Chiffre une image

Description

bool Imagick::encipherImage ( string $passphrase )

Convertie les pixels en pixels encryptés. L'image n'est plus lisible jusqu'à ce qu'elle ait été déchiffrée à l'aide Imagick::decipherImage() Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.9 ou supérieur.

Liste de paramètres

passphrase

Le mot de passe.

Valeurs de retour

Retourne TRUE en cas de succès.

Voir aussi

  • Imagick::decipherImage() - Déchiffre une image


Améliore la qualité d'une image bruitée

  • « Imagick::encipherImage
  • Imagick::equalizeImage »
  • PHP Manual
  • Imagick
  • Améliore la qualité d'une image bruitée

Imagick::enhanceImage

(PECL imagick 2.0.0)

Imagick::enhanceImage — Améliore la qualité d'une image bruitée

Description

bool Imagick::enhanceImage ( void )

Améliore la qualité d'une image bruitée avec un filtre numérique.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::enhanceImage()

<?php
function enhanceImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->enhanceImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Égalise l'histogramme d'une image

  • « Imagick::enhanceImage
  • Imagick::evaluateImage »
  • PHP Manual
  • Imagick
  • Égalise l'histogramme d'une image

Imagick::equalizeImage

(PECL imagick 2.0.0)

Imagick::equalizeImage — Égalise l'histogramme d'une image

Description

bool Imagick::equalizeImage ( void )

Égalise l'histogramme d'une image.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::equalizeImage()

<?php
function equalizeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->equalizeImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applique une expression à une image

  • « Imagick::equalizeImage
  • Imagick::exportImagePixels »
  • PHP Manual
  • Imagick
  • Applique une expression à une image

Imagick::evaluateImage

(PECL imagick 2.0.0)

Imagick::evaluateImage — Applique une expression à une image

Description

bool Imagick::evaluateImage ( int $op , float $constant [, int $channel = Imagick::CHANNEL_ALL ] )

Applique une expression arithmétique, relationnelle ou logique à une image. Utilisez ces opérateurs pour éclaircir ou assombrir une image, pour augmenter ou réduire le contraste, ou encore, produire une image inversée.

Liste de paramètres

op

L'opérateur d'évaluation

constant

La valeur de l'opérateur

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Exemples

Exemple #1 Exemple avec Imagick::evaluateImage()

Utilisation de evaluateImage pour réduire l'opacité d'une image.

<?php
// Création d'un nouvel objet avec l'image
$im = new Imagick('example-alpha.png');

// Réduction de l'alpha de 50%
$im->evaluateImage(Imagick::EVALUATE_DIVIDE, 2, Imagick::CHANNEL_ALPHA);

// Affichage de l'image
header("Content-Type: image/png");
echo $im;
?>

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Exporte les pixels bruts de l'image

  • « Imagick::evaluateImage
  • Imagick::extentImage »
  • PHP Manual
  • Imagick
  • Exporte les pixels bruts de l'image

Imagick::exportImagePixels

(No version information available, might only be in Git)

Imagick::exportImagePixels — Exporte les pixels bruts de l'image

Description

public array Imagick::exportImagePixels ( int $x , int $y , int $width , int $height , string $map , int $STORAGE )

Exporte les pixels de l'image dans un tableau. La carte définit l'ordre d'exportation des pixels. La taille du tableau retourné correspond à width * height * strlen(map). Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.7 ou supérieur.

Liste de paramètres

x

Coordonnée en X de l'espace exporté.

y

Coordonnée en Y de l'espace exporté.

width

Largeur de l'espace exporté.

height

Hauteur de l'espace exporté.

map

Ordre des pixels exportés. Par exemple, "RGB". Les caractères valides pour la carte sont R, G, B, A, O, C, Y, M, K, I et P.

STORAGE

Référez-vous à la liste des constantes de type pixel

Exemples

Exemple #1 Exemple avec Imagick::exportImagePixels()

Exportation des pixels de l'image dans un tableau.

<?php

/* Crée un nouvel objet */
$im = new Imagick();

/* Crée une nouvelle image */
$im->newPseudoImage(0, 0, "magick:rose");

/* Exporte les pixels de l'image */
$pixels = $im->exportImagePixels(10, 10, 2, 2, "RGB", Imagick::PIXEL_CHAR);

/* Affichage */
var_dump($pixels);
?>

L'exemple ci-dessus va afficher :

array(12) {
  [0]=>
  int(72)
  [1]=>
  int(64)
  [2]=>
  int(57)
  [3]=>
  int(69)
  [4]=>
  int(59)
  [5]=>
  int(43)
  [6]=>
  int(124)
  [7]=>
  int(120)
  [8]=>
  int(-96)
  [9]=>
  int(91)
  [10]=>
  int(84)
  [11]=>
  int(111)
}

Valeurs de retour

Retourne un tableau contenant les valeurs des pixels.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Définit la taille de l'image

  • « Imagick::exportImagePixels
  • Imagick::filter »
  • PHP Manual
  • Imagick
  • Définit la taille de l'image

Imagick::extentImage

(No version information available, might only be in Git)

Imagick::extentImage — Définit la taille de l'image

Description

bool Imagick::extentImage ( int $width , int $height , int $x , int $y )

Cette méthode est utile pour définir la taille de l'image. La méthode définit la taille de l'image et autorise la configuration des coordonnées x, y définissant le début du nouvel espace. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.1 ou supérieur.

Attention

Avant ImageMagick 6.5.7-8 (1623), $x était positif lors d'un déplacement vers la gauche, et négatif lors d'un déplacement vers la droite, et $y était positif lors d'un déplacement de l'image vers le haut, et négatif lors d'un déplacement de l'image vers le bas. Quelque part entre les versions ImageMagick 6.3.7 (1591) et ImageMagick 6.5.7-8 (1623), les axes de $x et $y ont été inversés, aussi, $x était négatif lors d'un déplacement vers la gauche et positif lors d'un déplacement vers la droite, et $y était négatif lors d'un déplacement de l'image vers le haut, et positif, lors d'un déplacement vers le bas. Quelque part entre les versions ImageMagick 6.5.7-8 (1623) et ImageMagick 6.6.9-7 (1641), le comportement est revenu tel qu'il était avant ImageMagick 6.5.7-8 (1623).

Liste de paramètres

width

La nouvelle largeur.

height

La nouvelle hauteur.

x

La position en X pour la nouvelle taille.

y

La position en Y pour la nouvelle taille.

Valeurs de retour

Retourne TRUE en cas de succès.

Voir aussi

  • Imagick::resizeImage() - Redimensionne une image
  • Imagick::thumbnailImage() - Modifie la taille d'une image
  • Imagick::cropImage() - Extrait une région d'une image


Description

  • « Imagick::extentImage
  • Imagick::flattenImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::filter

(No version information available, might only be in Git)

Imagick::filter — Description

Description

public void Imagick::filter ( ImagickKernel $ImagickKernel [, int $CHANNEL = Imagick::CHANNEL_DEFAULT ] )

Applies a custom convolution kernel to the image.

Liste de paramètres

ImagickKernel

An instance of ImagickKernel that represents either a single kernel or a linked series of kernels.

CHANNEL

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Exemples

Exemple #1 Imagick::filter()

<?php
function filter($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $matrix = [
        [-1, 0, -1],
        [0,  5,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $strength = 0.5;
    $kernel->scale($strength, \Imagick::NORMALIZE_KERNEL_VALUE);
    $kernel->addUnityKernel(1 - $strength);

    $imagick->filter($kernel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Fusionne une séquence d'images

  • « Imagick::filter
  • Imagick::flipImage »
  • PHP Manual
  • Imagick
  • Fusionne une séquence d'images

Imagick::flattenImages

(PECL imagick 2.0.0)

Imagick::flattenImages — Fusionne une séquence d'images

Description

Imagick Imagick::flattenImages ( void )

Fusionne une séquence d'images. Ceci est pratique pour combiner une série de couches Photoshop en une seule image.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Crée une image par miroir vertical

  • « Imagick::flattenImages
  • Imagick::floodFillPaintImage »
  • PHP Manual
  • Imagick
  • Crée une image par miroir vertical

Imagick::flipImage

(PECL imagick 2.0.0)

Imagick::flipImage — Crée une image par miroir vertical

Description

bool Imagick::flipImage ( void )

Crée une image par miroir vertical, à l'aide d'une symétrie autour de l'axe des abscisses.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::flipImage()

<?php
function flipImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->flipImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Modifie la valeur de la couleur de chaque pixel correspondant à la cible

  • « Imagick::flipImage
  • Imagick::flopImage »
  • PHP Manual
  • Imagick
  • Modifie la valeur de la couleur de chaque pixel correspondant à la cible

Imagick::floodFillPaintImage

(No version information available, might only be in Git)

Imagick::floodFillPaintImage — Modifie la valeur de la couleur de chaque pixel correspondant à la cible

Description

bool Imagick::floodFillPaintImage ( mixed $fill , float $fuzz , mixed $target , int $x , int $y , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Modifie la valeur de la couleur de chaque pixel correspondant à la cible et qui se trouve dans le voisinage immédiat. Cette méthode est un remplacement de la méthode obsolète Imagick::paintFloodFillImage(). Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.

Liste de paramètres

fill

Objet ImagickPixel ou une chaîne contenant la couleur de remplissage.

fuzz

La quantité de poussière de papier. Par exemple, le fait de définir la poussière de papier à 10 et la couleur rouge à une intensité de 100 et de 102 ne sera pas interprété comme la même couleur.

target

Objet ImagickPixel ou une chaîne contenant la couleur cible à peindre.

x

Position de départ en X du pot de peinture.

y

Position de départ en Y du pot de peinture.

invert

Si vaut TRUE, peint chaque pixel qui ne correspond pas à la couleur cible.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::floodfillPaintImage()

<?php

/* Crée un nouvel objet imagick */
$im = new Imagick();

/* Crée les images bleus, vertes et rouges */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Ajoute l'image dans une autre */
$im->resetIterator();
$combined = $im->appendImages(true);

/* Sauvegarde de l'image intermédiaire pour comparaison */
$combined->writeImage("floodfillpaint_intermediate.png");

/* Le pixel cible à peindre */
$x = 1;
$y = 1;

/* Récupère la couleur à utiliser pour peindre */
$target = $combined->getImagePixelColor($x, $y);

/* Peint le pixel à la position 1,1 en noir, ainsi que tous les pixels voisins
   qui correspondent à la couleur cible */
$combined->floodfillPaintImage("black", 1, $target, $x, $y, false);

/* Sauvegarde le résultat */
$combined->writeImage("floodfillpaint_result.png");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Affichage de l'exemple : Imagick::floodfillPaintImage()
Affichage de l'exemple : Imagick::floodfillPaintImage()


Crée une image par miroir horizontal

  • « Imagick::floodFillPaintImage
  • Imagick::forwardFourierTransformImage »
  • PHP Manual
  • Imagick
  • Crée une image par miroir horizontal

Imagick::flopImage

(PECL imagick 2.0.0)

Imagick::flopImage — Crée une image par miroir horizontal

Description

bool Imagick::flopImage ( void )

Crée une image par miroir horizontal, à l'aide d'une symétrie autour de l'axe des ordonnées.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::flopImage()

<?php
function flopImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->flopImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::flopImage
  • Imagick::frameImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::forwardFourierTransformImage

(No version information available, might only be in Git)

Imagick::forwardFourierTransformImage — Description

Description

public void Imagick::forwardFourierTransformimage ( bool $magnitude )

Implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

Liste de paramètres

magnitude

If true, return as magnitude / phase pair otherwise a real / imaginary image pair.

Valeurs de retour

Exemples

Exemple #1 Imagick::forwardFourierTransformImage()

<?php
//Utility function for forwardTransformImage
function createMask() {
    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(0);
    $draw->setStrokeColor('rgb(255, 255, 255)');
    $draw->setFillColor('rgb(255, 255, 255)');

    //Draw a circle on the y-axis, with it's centre
    //at x, y that touches the origin
    $draw->circle(250, 250, 220, 250);

    $imagick = new \Imagick();
    $imagick->newImage(512, 512, "black");
    $imagick->drawImage($draw);
    $imagick->gaussianBlurImage(20, 20);
    $imagick->autoLevelImage();

    return $imagick;
}

function forwardFourierTransformImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->resizeimage(512, 512, \Imagick::FILTER_LANCZOS, 1);

    $mask = createMask();
    $imagick->forwardFourierTransformImage(true);

    @$imagick->setimageindex(0);
    $magnitude = $imagick->getimage();

    @$imagick->setimageindex(1);
    $imagickPhase = $imagick->getimage();

    if (true) {
        $imagickPhase->compositeImage($mask, \Imagick::COMPOSITE_MULTIPLY, 0, 0);
    }

    if (false) {
        $output = clone $imagickPhase;
        $output->setimageformat('png');
        header("Content-Type: image/png");
        echo $output->getImageBlob();
    }

    $magnitude->inverseFourierTransformImage($imagickPhase, true);

    $magnitude->setimageformat('png');
    header("Content-Type: image/png");
    echo $magnitude->getImageBlob();
}

?>


Ajoute un bord 3D

  • « Imagick::forwardFourierTransformImage
  • Imagick::functionImage »
  • PHP Manual
  • Imagick
  • Ajoute un bord 3D

Imagick::frameImage

(PECL imagick 2.0.0)

Imagick::frameImage — Ajoute un bord 3D

Description

bool Imagick::frameImage ( mixed $matte_color , int $width , int $height , int $inner_bevel , int $outer_bevel )

Ajoute un bord 3D. La largeur et la hauteur configurent la largeur et la hauteur de la bordure du cadre. Le chanfrein intérieur et extérieur indique la largeur de l'ombre interne et externe.

Liste de paramètres

matte_color

Un objet ImagickPixel ou une chaîne représentant la couleur

width

La largeur de la bordure

height

La hauteur de la bordure

inner_bevel

La largeur du chanfrein intérieur

outer_bevel

La largeur du chanfrein extérieur

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
2.1.0 | Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.

Exemples

Exemple #1 Exemple avec Imagick::frameImage()

<?php
function frameImage($imagePath, $color, $width, $height, $innerBevel, $outerBevel) {
    $imagick = new \Imagick(realpath($imagePath));

    $width = $width + $innerBevel + $outerBevel;
    $height = $height + $innerBevel + $outerBevel;

    $imagick->frameimage(
        $color,
        $width,
        $height,
        $innerBevel,
        $outerBevel
    );
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applique une fonction sur l'image

  • « Imagick::frameImage
  • Imagick::fxImage »
  • PHP Manual
  • Imagick
  • Applique une fonction sur l'image

Imagick::functionImage

(No version information available, might only be in Git)

Imagick::functionImage — Applique une fonction sur l'image

Description

public bool Imagick::functionImage ( int $function , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Applique une expression arithmétique, relationnelle ou logique à une pseudo-image.

Voir aussi les » exemples d'ImageMagick v6 - Transformations d'images — Fonction, évaluation de plusieurs arguments.

Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.9 ou supérieur.

Liste de paramètres

function

Référez-vous à la liste des constantes de fonction.

arguments

Tableau d'arguments à passer à la fonction.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Crée un gradient sinusoidal

<?php
$imagick = new Imagick();
$imagick->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(3, -90);
$imagick->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);

header("Content-Type: image/png");
$imagick->setImageFormat("png");
echo $imagick->getImageBlob();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Résultat de la création d'un gradient sinusoidal

Exemple #2 Crée un gradient depuis le polynome (4x^2 - 4x + 1)

<?php
$imagick = new Imagick();
$imagick->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(4, -4, 1);
$imagick->functionImage(Imagick::FUNCTION_POLYNOMIAL, $arguments);

header("Content-Type: image/png");
$imagick->setimageformat("png");
echo $imagick->getImageBlob();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Résultat de la création d'un gradient à partir d'un polynome

Exemple #3 Crée un gradient complexe depuis le polynome (4x^2 - 4x^2 + 1) modulé par un gradient sinusoidal

<?php
$imagick1 = new Imagick();
$imagick1->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(9, -90);
$imagick1->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);

$imagick2 = new Imagick();
$imagick2->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(0.5, 0);
$imagick2->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);
$imagick1->compositeimage($imagick2, Imagick::COMPOSITE_MULTIPLY, 0, 0);

header("Content-Type: image/png");
$imagick1->setImageFormat("png");
echo $imagick1->getImageBlob();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Résultat de la création d'un gradient complexe


Évalue une expression pour chaque pixel d'une image

  • « Imagick::functionImage
  • Imagick::gammaImage »
  • PHP Manual
  • Imagick
  • Évalue une expression pour chaque pixel d'une image

Imagick::fxImage

(PECL imagick 2.0.0)

Imagick::fxImage — Évalue une expression pour chaque pixel d'une image

Description

Imagick Imagick::fxImage ( string $expression [, int $channel = Imagick::CHANNEL_ALL ] )

Évalue une expression pour chaque pixel d'une image. Consultez » The Fx Special Effects Image Operator pour plus de détails (en anglais).

Liste de paramètres

expression

L'expression.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::fxImage()

<?php
function fxImage() {
    $imagick = new \Imagick();
    $imagick->newPseudoImage(200, 200, "xc:white");

    $fx = 'xx=i-w/2; yy=j-h/2; rr=hypot(xx,yy); (.5-rr/140)*1.2+.5';
    $fxImage = $imagick->fxImage($fx);

    header("Content-Type: image/png");
    $fxImage->setimageformat('png');
    echo $fxImage->getImageBlob();
}

?>


Applique une correction gamma à l'image

  • « Imagick::fxImage
  • Imagick::gaussianBlurImage »
  • PHP Manual
  • Imagick
  • Applique une correction gamma à l'image

Imagick::gammaImage

(PECL imagick 2.0.0)

Imagick::gammaImage — Applique une correction gamma à l'image

Description

bool Imagick::gammaImage ( float $gamma [, int $channel = Imagick::CHANNEL_ALL ] )

Applique une correction gamma à l'image. La même image est vue sur différents écran vont avoir des différences de perceptions dans la représentation des intensités. Spécifiez des corrections gamma individuelles pour les différentes couleurs, ou bien ajustez les trois corrections gamma d'un seul coup. Les valeurs typiques vont de 0.8 à 2.3.

Liste de paramètres

gamma

La correction gamma.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::gammaImage()

<?php
function gammaImage($imagePath, $gamma, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->gammaImage($gamma, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Ajoute du flou à image

  • « Imagick::gammaImage
  • Imagick::getColorspace »
  • PHP Manual
  • Imagick
  • Ajoute du flou à image

Imagick::gaussianBlurImage

(PECL imagick 2.0.0)

Imagick::gaussianBlurImage — Ajoute du flou à image

Description

bool Imagick::gaussianBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_ALL ] )

Ajoute du flou à une image. Une convolution est appliquée avec un rayon et une déviation standard données. Pour des résultats raisonnables, il est recommandé d'utiliser une taille de rayon supérieure à sigma. Un rayon de zéro force la fonction à choisir les valeurs.

Liste de paramètres

radius

Le rayon de la gaussienne, en pixel, sans compter le pixel du centre.

sigma

La déviation standard de la gaussienne, en pixel.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::gaussianBlurImage()

<?php
function gaussianBlurImage($imagePath, $radius, $sigma, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->gaussianBlurImage($radius, $sigma, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Récupère l'espace de couleurs

  • « Imagick::gaussianBlurImage
  • Imagick::getCompression »
  • PHP Manual
  • Imagick
  • Récupère l'espace de couleurs

Imagick::getColorspace

(PECL imagick 0.9.10-0.9.9)

Imagick::getColorspace — Récupère l'espace de couleurs

Description

int Imagick::getColorspace ( void )

Récupère la valeur globale de l'espace de couleurs. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.5.7 ou supérieur.

Valeurs de retour

Retourne un entier qui peut être comparé avec les constantes COLORSPACE.


Lit le type de compression

  • « Imagick::getColorspace
  • Imagick::getCompressionQuality »
  • PHP Manual
  • Imagick
  • Lit le type de compression

Imagick::getCompression

(PECL imagick 2.0.0)

Imagick::getCompression — Lit le type de compression

Description

int Imagick::getCompression ( void )

Lit le type de compression.

Valeurs de retour

Retourne la constante de compression.


Lit la qualité de la compression

  • « Imagick::getCompression
  • Imagick::getCopyright »
  • PHP Manual
  • Imagick
  • Lit la qualité de la compression

Imagick::getCompressionQuality

(PECL imagick 2.0.0)

Imagick::getCompressionQuality — Lit la qualité de la compression

Description

int Imagick::getCompressionQuality ( void )

Lit la qualité de la compression.

Valeurs de retour

Retourne un entier décrivant la qualité de la compression.


Retourne le copyright de l'API ImageMagick API

  • « Imagick::getCompressionQuality
  • Imagick::getFilename »
  • PHP Manual
  • Imagick
  • Retourne le copyright de l'API ImageMagick API

Imagick::getCopyright

(PECL imagick 2.0.0)

Imagick::getCopyright — Retourne le copyright de l'API ImageMagick API

Description

string Imagick::getCopyright ( void )

Retourne le copyright de l'API ImageMagick API.

Valeurs de retour

Retourne une chaîne, en cas de succès.


Lit le nom du fichier associé à une séquence

  • « Imagick::getCopyright
  • Imagick::getFont »
  • PHP Manual
  • Imagick
  • Lit le nom du fichier associé à une séquence

Imagick::getFilename

(PECL imagick 2.0.0)

Imagick::getFilename — Lit le nom du fichier associé à une séquence

Description

string Imagick::getFilename ( void )

Lit le nom du fichier associé à une séquence.

Valeurs de retour

Retourne une chaîne en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Récupère la police de caractères

  • « Imagick::getFilename
  • Imagick::getFormat »
  • PHP Manual
  • Imagick
  • Récupère la police de caractères

Imagick::getFont

(PECL imagick 2.1.0)

Imagick::getFont — Récupère la police de caractères

Description

string Imagick::getFont ( void )

Retourne la propriété de la police de caractères de l'objet. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.

Valeurs de retour

Retourne une chaîne de caractères contenant le nom de la police de caractères ou FALSE si la police n'est pas définie.

Voir aussi

  • Imagick::setFont() - Configure la police
  • ImagickDraw::setFont() - Configure la police complète pour les textes
  • ImagickDraw::getFont() - Retourne la police


Retourne le format de l'image Imagick

  • « Imagick::getFont
  • Imagick::getGravity »
  • PHP Manual
  • Imagick
  • Retourne le format de l'image Imagick

Imagick::getFormat

(PECL imagick 2.0.0)

Imagick::getFormat — Retourne le format de l'image Imagick

Description

string Imagick::getFormat ( void )

Retourne le format de l'image Imagick.

Valeurs de retour

Retourne le format de l'image Imagick.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Récupère la gravité

  • « Imagick::getFormat
  • Imagick::getHomeURL »
  • PHP Manual
  • Imagick
  • Récupère la gravité

Imagick::getGravity

(No version information available, might only be in Git)

Imagick::getGravity — Récupère la gravité

Description

int Imagick::getGravity ( void )

Récupère la propriété globale de la gravité pour l'objet Imagick. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.

Valeurs de retour

Retourne la propriété de gravité. Référez-vous à la liste des constantes de gravité.


Retourne l'URL de ImageMagick

  • « Imagick::getGravity
  • Imagick::getImage »
  • PHP Manual
  • Imagick
  • Retourne l'URL de ImageMagick

Imagick::getHomeURL

(PECL imagick 2.0.0)

Imagick::getHomeURL — Retourne l'URL de ImageMagick

Description

string Imagick::getHomeURL ( void )

Retourne l'URL de ImageMagick.

Valeurs de retour

Retourne l'URL de ImageMagick.


Retourne un nouvel objet Imagick

  • « Imagick::getHomeURL
  • Imagick::getImageAlphaChannel »
  • PHP Manual
  • Imagick
  • Retourne un nouvel objet Imagick

Imagick::getImage

(PECL imagick 2.0.0)

Imagick::getImage — Retourne un nouvel objet Imagick

Description

Imagick Imagick::getImage ( void )

Retourne un nouvel objet Imagick.

Valeurs de retour

Retourne un nouvel objet Imagick.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Récupère le canal alpha de l'image

  • « Imagick::getImage
  • Imagick::getImageArtifact »
  • PHP Manual
  • Imagick
  • Récupère le canal alpha de l'image

Imagick::getImageAlphaChannel

(No version information available, might only be in Git)

Imagick::getImageAlphaChannel — Récupère le canal alpha de l'image

Description

int Imagick::getImageAlphaChannel ( void )

Récupère la valeur du canal alpha de l'image. La valeur retournée est une constante parmi les constantes de canal alpha. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.

Valeurs de retour

Retourne une constante définissant la valeur du canal alpha courant. Référez-vous à la liste des constantes de canal alpha.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Récupère l'artefact de l'image

  • « Imagick::getImageAlphaChannel
  • Imagick::getImageAttribute »
  • PHP Manual
  • Imagick
  • Récupère l'artefact de l'image

Imagick::getImageArtifact

(No version information available, might only be in Git)

Imagick::getImageArtifact — Récupère l'artefact de l'image

Description

string Imagick::getImageArtifact ( string $artifact )

Récupère l'artefact associé à l'image. La différence entre les propriétés de l'image et les artefacts de l'image est que les propriétés sont publiques, alors que les artefacts sont privés. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.5.7 ou supérieur.

Liste de paramètres

artifact

Le nom de l'artefact.

Valeurs de retour

Retourne la valeur de l'artefact en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Voir aussi

  • Imagick::setImageArtifact() - Définit l'artefact de l'image
  • Imagick::deleteImageArtifact() - Supprime l'artefact d'une image


Description

  • « Imagick::getImageArtifact
  • Imagick::getImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Description

Imagick::getImageAttribute

(No version information available, might only be in Git)

Imagick::getImageAttribute — Description

Description

public string Imagick::getImageAttribute ( string $key )

Returns a named attribute.

Liste de paramètres

key

The key of the attribute to get.

Valeurs de retour


Retourne la couleur de fond

  • « Imagick::getImageAttribute
  • Imagick::getImageBlob »
  • PHP Manual
  • Imagick
  • Retourne la couleur de fond

Imagick::getImageBackgroundColor

(PECL imagick 2.0.0)

Imagick::getImageBackgroundColor — Retourne la couleur de fond

Description

ImagickPixel Imagick::getImageBackgroundColor ( void )

Retourne la couleur de fond.

Valeurs de retour

Retourne la couleur de fond sous forme d'objet ImagickPixel.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la séquence d'images comme un blob

  • « Imagick::getImageBackgroundColor
  • Imagick::getImageBluePrimary »
  • PHP Manual
  • Imagick
  • Retourne la séquence d'images comme un blob

Imagick::getImageBlob

(PECL imagick 2.0.0)

Imagick::getImageBlob — Retourne la séquence d'images comme un blob

Description

string Imagick::getImageBlob ( void )

Implémente un formatage directe en mémoire. Il retourne la séquence d'images sous forme de chaîne. Le format de l'image détermine le format du BLOB retourné (GIF, JPEG, PNG, etc.). Pour retourner un format différent, utilisez la fonction Imagick::setImageFormat().

Valeurs de retour

Retourne une chaîne contenant les images.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la chromacité de la couleur bleue

  • « Imagick::getImageBlob
  • Imagick::getImageBorderColor »
  • PHP Manual
  • Imagick
  • Retourne la chromacité de la couleur bleue

Imagick::getImageBluePrimary

(PECL imagick 2.0.0)

Imagick::getImageBluePrimary — Retourne la chromacité de la couleur bleue

Description

array Imagick::getImageBluePrimary ( void )

Retourne la chromacité de la couleur bleue. Retourne un tableau avec les clés "x" et "y".

Liste de paramètres

x

L'abscisse du point.

y

L'ordonnée du point.

Valeurs de retour

Retourne un tableau avec les clés "x" et "y", en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la couleur de bordure de l'image

  • « Imagick::getImageBluePrimary
  • Imagick::getImageChannelDepth »
  • PHP Manual
  • Imagick
  • Retourne la couleur de bordure de l'image

Imagick::getImageBorderColor

(PECL imagick 2.0.0)

Imagick::getImageBorderColor — Retourne la couleur de bordure de l'image

Description

ImagickPixel Imagick::getImageBorderColor ( void )

Retourne la couleur de bordure de l'image.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit la profondeur d'un des canaux de l'image

  • « Imagick::getImageBorderColor
  • Imagick::getImageChannelDistortion »
  • PHP Manual
  • Imagick
  • Lit la profondeur d'un des canaux de l'image

Imagick::getImageChannelDepth

(PECL imagick 2.0.0)

Imagick::getImageChannelDepth — Lit la profondeur d'un des canaux de l'image

Description

int Imagick::getImageChannelDepth ( int $channel )

Lit la profondeur d'un des canaux de l'image.

Liste de paramètres

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne TRUE en cas de succès.


Compare les canaux d'une image reconstituée

  • « Imagick::getImageChannelDepth
  • Imagick::getImageChannelDistortions »
  • PHP Manual
  • Imagick
  • Compare les canaux d'une image reconstituée

Imagick::getImageChannelDistortion

(PECL imagick 2.0.0)

Imagick::getImageChannelDistortion — Compare les canaux d'une image reconstituée

Description

float Imagick::getImageChannelDistortion ( Imagick $reference , int $channel , int $metric )

Compare un ou plusieurs canaux d'une image reconstituée et retourne la métrique de déformation demandée.

Liste de paramètres

reference

L'objet Imagick avec lequel se comparer.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

metric

Une des constantes de type de métrique.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Récupère les distorsions d'un canal

  • « Imagick::getImageChannelDistortion
  • Imagick::getImageChannelExtrema »
  • PHP Manual
  • Imagick
  • Récupère les distorsions d'un canal

Imagick::getImageChannelDistortions

(No version information available, might only be in Git)

Imagick::getImageChannelDistortions — Récupère les distorsions d'un canal

Description

float Imagick::getImageChannelDistortions ( Imagick $reference , int $metric [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Compare un ou plusieurs canaux d'une image avec une image reconstruite, et retourne les mesures de la distorsion spécifiée. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.

Liste de paramètres

reference

Objet Imagick contenant la référence de l'image.

metric

Référez-vous à la liste des constantes de type de mesures.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne un double, décrivant la distorsion du canal.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit les extrêmes pour les canaux de l'image

  • « Imagick::getImageChannelDistortions
  • Imagick::getImageChannelKurtosis »
  • PHP Manual
  • Imagick
  • Lit les extrêmes pour les canaux de l'image

Imagick::getImageChannelExtrema

(PECL imagick 2.0.0)

Imagick::getImageChannelExtrema — Lit les extrêmes pour les canaux de l'image

Description

array Imagick::getImageChannelExtrema ( int $channel )

Lit les extrêmes pour l'un ou plusieurs canaux de l'image. La valeur retournée est un tableau associatif avec les clés "minima" et "maxima".

Liste de paramètres

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Le but de getImageChannelKurtosis

  • « Imagick::getImageChannelExtrema
  • Imagick::getImageChannelMean »
  • PHP Manual
  • Imagick
  • Le but de getImageChannelKurtosis

Imagick::getImageChannelKurtosis

(No version information available, might only be in Git)

Imagick::getImageChannelKurtosis — Le but de getImageChannelKurtosis

Description

public array Imagick::getImageChannelKurtosis ([ int $channel = Imagick::CHANNEL_DEFAULT ] )

Récupère le kurtosis et l'asymétrie d'un canal spécifique. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.9 ou supérieur.

Liste de paramètres

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne un tableau avec les membres kurtosis et skewness.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit la moyenne et la déviation standard

  • « Imagick::getImageChannelKurtosis
  • Imagick::getImageChannelRange »
  • PHP Manual
  • Imagick
  • Lit la moyenne et la déviation standard

Imagick::getImageChannelMean

(PECL imagick 2.0.0)

Imagick::getImageChannelMean — Lit la moyenne et la déviation standard

Description

array Imagick::getImageChannelMean ( int $channel )

Lit la moyenne et la déviation standard d'un ou plusieurs des canaux de l'image. La valeur retournée est un tableau associatif avec les clés "mean" et "standardDeviation".

Liste de paramètres

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Récupère l'intervalle du canal

  • « Imagick::getImageChannelMean
  • Imagick::getImageChannelStatistics »
  • PHP Manual
  • Imagick
  • Récupère l'intervalle du canal

Imagick::getImageChannelRange

(PECL imagick 2.2.1)

Imagick::getImageChannelRange — Récupère l'intervalle du canal

Description

array Imagick::getImageChannelRange ( int $channel )

Récupère l'intervalle pour un ou plusieurs canaux de l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.

Liste de paramètres

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne un tableau contenant les valeurs minimales et maximales du ou des canaux.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne des statistiques sur chaque canal de l'image

  • « Imagick::getImageChannelRange
  • Imagick::getImageClipMask »
  • PHP Manual
  • Imagick
  • Retourne des statistiques sur chaque canal de l'image

Imagick::getImageChannelStatistics

(PECL imagick 2.0.0)

Imagick::getImageChannelStatistics — Retourne des statistiques sur chaque canal de l'image

Description

array Imagick::getImageChannelStatistics ( void )

Retourne des statistiques sur chaque canal de l'image. Les statistiques incluent la profondeur du canal, ses minima et maxima, la moyenne, et la déviation standard.

Valeurs de retour

Retourne TRUE en cas de succès.


Récupère le masque du clip de l'image

  • « Imagick::getImageChannelStatistics
  • Imagick::getImageColormapColor »
  • PHP Manual
  • Imagick
  • Récupère le masque du clip de l'image

Imagick::getImageClipMask

(No version information available, might only be in Git)

Imagick::getImageClipMask — Récupère le masque du clip de l'image

Description

Imagick Imagick::getImageClipMask ( void )

Retourne le masque du clip de l'image. Le masque du clip est un objet Imagick contenant le masque du clip. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Valeurs de retour

Retourne un objet Imagick contenant le masque du clip.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la couleur à l'index de la carte de couleurs

  • « Imagick::getImageClipMask
  • Imagick::getImageColors »
  • PHP Manual
  • Imagick
  • Retourne la couleur à l'index de la carte de couleurs

Imagick::getImageColormapColor

(PECL imagick 2.0.0)

Imagick::getImageColormapColor — Retourne la couleur à l'index de la carte de couleurs

Description

ImagickPixel Imagick::getImageColormapColor ( int $index )

Retourne la couleur à l'index de la carte de couleurs.

Liste de paramètres

index

La position dans la carte des couleurs.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit le nombre de couleurs uniques de l'image

  • « Imagick::getImageColormapColor
  • Imagick::getImageColorspace »
  • PHP Manual
  • Imagick
  • Lit le nombre de couleurs uniques de l'image

Imagick::getImageColors

(PECL imagick 2.0.0)

Imagick::getImageColors — Lit le nombre de couleurs uniques de l'image

Description

int Imagick::getImageColors ( void )

Lit le nombre de couleurs uniques de l'image.

Valeurs de retour

Retourne TRUE en cas de succès.


Lit l'espace de couleurs de l'image

  • « Imagick::getImageColors
  • Imagick::getImageCompose »
  • PHP Manual
  • Imagick
  • Lit l'espace de couleurs de l'image

Imagick::getImageColorspace

(PECL imagick 2.0.0)

Imagick::getImageColorspace — Lit l'espace de couleurs de l'image

Description

int Imagick::getImageColorspace ( void )

Lit l'espace de couleurs de l'image.

Valeurs de retour

Retourne TRUE en cas de succès.


Retourne l'opérateur de composition associé à une image

  • « Imagick::getImageColorspace
  • Imagick::getImageCompression »
  • PHP Manual
  • Imagick
  • Retourne l'opérateur de composition associé à une image

Imagick::getImageCompose

(PECL imagick 2.0.0)

Imagick::getImageCompose — Retourne l'opérateur de composition associé à une image

Description

int Imagick::getImageCompose ( void )

Retourne l'opérateur de composition associé à une image.

Valeurs de retour

Retourne TRUE en cas de succès.


Lit le type de compression de l'image

  • « Imagick::getImageCompose
  • Imagick::getImageCompressionQuality »
  • PHP Manual
  • Imagick
  • Lit le type de compression de l'image

Imagick::getImageCompression

(PECL imagick 2.2.2)

Imagick::getImageCompression — Lit le type de compression de l'image

Description

int Imagick::getImageCompression ( void )

Lit le type de compression de l'image.

Valeurs de retour

Retourne une constante de compression.


Lit la qualité de compression de l'image

  • « Imagick::getImageCompression
  • Imagick::getImageDelay »
  • PHP Manual
  • Imagick
  • Lit la qualité de compression de l'image

Imagick::getImageCompressionQuality

(PECL imagick 2.2.2)

Imagick::getImageCompressionQuality — Lit la qualité de compression de l'image

Description

int Imagick::getImageCompressionQuality ( void )

Lit la qualité de compression de l'image.

Valeurs de retour

Retourne un entier qui décrit la qualité de la compression de l'image.


Lit le délai de l'image

  • « Imagick::getImageCompressionQuality
  • Imagick::getImageDepth »
  • PHP Manual
  • Imagick
  • Lit le délai de l'image

Imagick::getImageDelay

(PECL imagick 2.0.0)

Imagick::getImageDelay — Lit le délai de l'image

Description

int Imagick::getImageDelay ( void )

Lit le délai de l'image.

Valeurs de retour

Retourne le délai de l'image. Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit la profondeur de l'image

  • « Imagick::getImageDelay
  • Imagick::getImageDispose »
  • PHP Manual
  • Imagick
  • Lit la profondeur de l'image

Imagick::getImageDepth

(PECL imagick 0.9.1-0.9.9)

Imagick::getImageDepth — Lit la profondeur de l'image

Description

int Imagick::getImageDepth ( void )

Lit la profondeur de l'image.

Valeurs de retour

La profondeur de l'image.


Lit la méthode de récupération

  • « Imagick::getImageDepth
  • Imagick::getImageDistortion »
  • PHP Manual
  • Imagick
  • Lit la méthode de récupération

Imagick::getImageDispose

(PECL imagick 2.0.0)

Imagick::getImageDispose — Lit la méthode de récupération

Description

int Imagick::getImageDispose ( void )

Lit la méthode de récupération.

Valeurs de retour

Retourne la méthode de récupération en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Compare une image à une image reconstituée

  • « Imagick::getImageDispose
  • Imagick::getImageExtrema »
  • PHP Manual
  • Imagick
  • Compare une image à une image reconstituée

Imagick::getImageDistortion

(PECL imagick 2.0.0)

Imagick::getImageDistortion — Compare une image à une image reconstituée

Description

float Imagick::getImageDistortion ( MagickWand $reference , int $metric )

Compare une image à une image reconstituée et retourne une métrique.

Liste de paramètres

reference

L'objet Imagick avec lequel se comparer.

metric

Une des constantes de type de métrique.

Valeurs de retour

Retourne la métrique de déformation (ou la meilleure évaluation possible).

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit les extrêmes d'une image

  • « Imagick::getImageDistortion
  • Imagick::getImageFilename »
  • PHP Manual
  • Imagick
  • Lit les extrêmes d'une image

Imagick::getImageExtrema

(PECL imagick 2.0.0)

Imagick::getImageExtrema — Lit les extrêmes d'une image

Description

array Imagick::getImageExtrema ( void )

Lit les extrêmes d'une image. Retourne un tableau associatif, avec les clés "min" et "max".

Valeurs de retour

Retourne un tableau associatif, avec les clés "min" et "max".

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne le nom d'un fichier pour une image dans une séquence

  • « Imagick::getImageExtrema
  • Imagick::getImageFormat »
  • PHP Manual
  • Imagick
  • Retourne le nom d'un fichier pour une image dans une séquence

Imagick::getImageFilename

(PECL imagick 2.0.0)

Imagick::getImageFilename — Retourne le nom d'un fichier pour une image dans une séquence

Description

string Imagick::getImageFilename ( void )

Retourne le nom d'un fichier pour une image dans une séquence.

Valeurs de retour

Retourne une chaîne avec le nom du fichier de l'image.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne le format d'une image dans une séquence

  • « Imagick::getImageFilename
  • Imagick::getImageGamma »
  • PHP Manual
  • Imagick
  • Retourne le format d'une image dans une séquence

Imagick::getImageFormat

(PECL imagick 2.0.0)

Imagick::getImageFormat — Retourne le format d'une image dans une séquence

Description

string Imagick::getImageFormat ( void )

Retourne le format d'une image dans une séquence.

Valeurs de retour

Retourne le format d'une image dans une séquence.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit le gamma de l'image

  • « Imagick::getImageFormat
  • Imagick::getImageGeometry »
  • PHP Manual
  • Imagick
  • Lit le gamma de l'image

Imagick::getImageGamma

(PECL imagick 2.0.0)

Imagick::getImageGamma — Lit le gamma de l'image

Description

float Imagick::getImageGamma ( void )

Lit le gamma de l'image.

Valeurs de retour

Retourne le gamma de l'image en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit les dimensions de l'image dans un tableau

  • « Imagick::getImageGamma
  • Imagick::getImageGravity »
  • PHP Manual
  • Imagick
  • Lit les dimensions de l'image dans un tableau

Imagick::getImageGeometry

(PECL imagick 2.0.0)

Imagick::getImageGeometry — Lit les dimensions de l'image dans un tableau

Description

array Imagick::getImageGeometry ( void )

Retourne la largeur et la hauteur de l'image sous forme de tableau associatif.

Valeurs de retour

Retourne un tableau avec les dimensions de l'image.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::getImageGeometry()

<?php
function getImageGeometry($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Récupère la gravité de l'image

  • « Imagick::getImageGeometry
  • Imagick::getImageGreenPrimary »
  • PHP Manual
  • Imagick
  • Récupère la gravité de l'image

Imagick::getImageGravity

(No version information available, might only be in Git)

Imagick::getImageGravity — Récupère la gravité de l'image

Description

int Imagick::getImageGravity ( void )

Récupère la valeur de la gravité courante de l'image. Contrairement à la méthode Imagick::getGravity(), cette méthode retourne la gravité définie pour la séquence courante de l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.

Valeurs de retour

Retourne la propriété de la gravité de l'image. Référez-vous à la liste des constantes de gravité.


Retourne la chromacité de la couleur verte

  • « Imagick::getImageGravity
  • Imagick::getImageHeight »
  • PHP Manual
  • Imagick
  • Retourne la chromacité de la couleur verte

Imagick::getImageGreenPrimary

(PECL imagick 2.0.0)

Imagick::getImageGreenPrimary — Retourne la chromacité de la couleur verte

Description

array Imagick::getImageGreenPrimary ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la chromacité de la couleur verte. Retourne un tableau avec les clés "x" et "y".

Valeurs de retour

Retourne un tableau avec les clés "x" et "y", en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la hauteur de l'image

  • « Imagick::getImageGreenPrimary
  • Imagick::getImageHistogram »
  • PHP Manual
  • Imagick
  • Retourne la hauteur de l'image

Imagick::getImageHeight

(PECL imagick 2.0.0)

Imagick::getImageHeight — Retourne la hauteur de l'image

Description

int Imagick::getImageHeight ( void )

Retourne la hauteur de l'image.

Valeurs de retour

Retourne la hauteur de l'image en pixels.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne l'histogramme de l'image

  • « Imagick::getImageHeight
  • Imagick::getImageIndex »
  • PHP Manual
  • Imagick
  • Retourne l'histogramme de l'image

Imagick::getImageHistogram

(PECL imagick 2.0.0)

Imagick::getImageHistogram — Retourne l'histogramme de l'image

Description

array Imagick::getImageHistogram ( void )

Retourne l'histogramme de l'image, sous forme d'un tableau d'objets ImagickPixel.

Valeurs de retour

Retourne un tableau d'objets ImagickPixel. Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::getImageHistogram()

<?php
function getColorStatistics($histogramElements, $colorChannel) {
    $colorStatistics = [];

    foreach ($histogramElements as $histogramElement) {
        $color = $histogramElement->getColorValue($colorChannel);
        $color = intval($color * 255);
        $count = $histogramElement->getColorCount();

        if (array_key_exists($color, $colorStatistics)) {
            $colorStatistics[$color] += $count;
        }
        else {
            $colorStatistics[$color] = $count;
        }
    }

    ksort($colorStatistics);

    return $colorStatistics;
}

function getImageHistogram($imagePath) {

    $backgroundColor = 'black';

    $draw = new \ImagickDraw();
    $draw->setStrokeWidth(0); // en rend les lignes le plus fin possible

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    $histogramWidth = 256;
    $histogramHeight = 100; // la hauteur de chaque segment RGB

    $imagick = new \Imagick(realpath($imagePath));
    //Resize the image to be small, otherwise PHP tends to run out of memory
    //This might lead to bad results for images that are pathologically 'pixelly'
    $imagick->adaptiveResizeImage(200, 200, true);
    $histogramElements = $imagick->getImageHistogram();

    $histogram = new \Imagick();
    $histogram->newpseudoimage($histogramWidth, $histogramHeight * 3, 'xc:black');
    $histogram->setImageFormat('png');

    $getMax = function ($carry, $item)  {
        if ($item > $carry) {
            return $item;
        }
        return $carry;
    };

    $colorValues = [
        'red' => getColorStatistics($histogramElements, \Imagick::COLOR_RED),
        'lime' => getColorStatistics($histogramElements, \Imagick::COLOR_GREEN),
        'blue' => getColorStatistics($histogramElements, \Imagick::COLOR_BLUE),
    ];

    $max = array_reduce($colorValues['red'] , $getMax, 0);
    $max = array_reduce($colorValues['lime'] , $getMax, $max);
    $max = array_reduce($colorValues['blue'] , $getMax, $max);

    $scale =  $histogramHeight / $max;

    $count = 0;
    foreach ($colorValues as $color => $values) {
        $draw->setstrokecolor($color);

        $offset = ($count + 1) * $histogramHeight;

        foreach ($values as $index => $value) {
            $draw->line($index, $offset, $index, $offset - ($value * $scale));
        }
        $count++;
    }

    $histogram->drawImage($draw);

    header( "Content-Type: image/png" );
    echo $histogram;
}

?>


Lit l'index de l'image courante

  • « Imagick::getImageHistogram
  • Imagick::getImageInterlaceScheme »
  • PHP Manual
  • Imagick
  • Lit l'index de l'image courante

Imagick::getImageIndex

(PECL imagick 2.0.0)

Imagick::getImageIndex — Lit l'index de l'image courante

Description

int Imagick::getImageIndex ( void )

Retourne l'index de l'image courante dans la séquence Imagick. Cette méthode est obsolète. Reportez-vous à la fonction Imagick::getIteratorIndex().

Valeurs de retour

Retourne un entier en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit le schéma d'entrelacement de l'image

  • « Imagick::getImageIndex
  • Imagick::getImageInterpolateMethod »
  • PHP Manual
  • Imagick
  • Lit le schéma d'entrelacement de l'image

Imagick::getImageInterlaceScheme

(PECL imagick 2.0.0)

Imagick::getImageInterlaceScheme — Lit le schéma d'entrelacement de l'image

Description

int Imagick::getImageInterlaceScheme ( void )

Lit le schéma d'entrelacement de l'image.

Valeurs de retour

Retourne le schéma d'entrelacement de l'image en cas de succès. Émet une exception ImagickException en cas d'échec.


Retourne la méthode d'interpolation

  • « Imagick::getImageInterlaceScheme
  • Imagick::getImageIterations »
  • PHP Manual
  • Imagick
  • Retourne la méthode d'interpolation

Imagick::getImageInterpolateMethod

(PECL imagick 2.0.0)

Imagick::getImageInterpolateMethod — Retourne la méthode d'interpolation

Description

int Imagick::getImageInterpolateMethod ( void )

Retourne la méthode d'interpolation de l'image spécifiée. La méthode est une des constantes Imagick::INTERPOLATE_*.

Valeurs de retour

Retourne la méthode d'interpolation en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit les itérations de l'image

  • « Imagick::getImageInterpolateMethod
  • Imagick::getImageLength »
  • PHP Manual
  • Imagick
  • Lit les itérations de l'image

Imagick::getImageIterations

(PECL imagick 2.0.0)

Imagick::getImageIterations — Lit les itérations de l'image

Description

int Imagick::getImageIterations ( void )

Lit les itérations de l'image.

Valeurs de retour

Retourne les itérations de l'image.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la taille de l'image en octets

  • « Imagick::getImageIterations
  • Imagick::getImageMagickLicense »
  • PHP Manual
  • Imagick
  • Retourne la taille de l'image en octets

Imagick::getImageLength

(PECL imagick 2.0.0)

Imagick::getImageLength — Retourne la taille de l'image en octets

Description

int Imagick::getImageLength ( void )

Retourne la taille de l'image en octets.

Valeurs de retour

Retourne un entier.

Exemples

Exemple #1 Exemple avec Imagick::getImageLength():

Récupère la taille de l'image, en octets

<?php
$image = new Imagick('test.jpg');
echo $image->getImageLength() . ' octets';
?>


Retourne une chaîne avec la licence ImageMagick

  • « Imagick::getImageLength
  • Imagick::getImageMatte »
  • PHP Manual
  • Imagick
  • Retourne une chaîne avec la licence ImageMagick

Imagick::getImageMagickLicense

(PECL imagick 2.0.0)

Imagick::getImageMagickLicense — Retourne une chaîne avec la licence ImageMagick

Description

string Imagick::getImageMagickLicense ( void )

Retourne une chaîne avec la licence ImageMagick.

Valeurs de retour

Retourne une chaîne.


Indique si l'image a un canal mat

  • « Imagick::getImageMagickLicense
  • Imagick::getImageMatteColor »
  • PHP Manual
  • Imagick
  • Indique si l'image a un canal mat

Imagick::getImageMatte

(PECL imagick 2.0.0)

Imagick::getImageMatte — Indique si l'image a un canal mat

Description

bool Imagick::getImageMatte ( void )

Retourne TRUE si l'image a un canal mat, et sinon, FALSE Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne la couleur mate de l'image

  • « Imagick::getImageMatte
  • Imagick::getImageMimeType »
  • PHP Manual
  • Imagick
  • Retourne la couleur mate de l'image

Imagick::getImageMatteColor

(PECL imagick 2.0.0)

Imagick::getImageMatteColor — Retourne la couleur mate de l'image

Description

ImagickPixel Imagick::getImageMatteColor ( void )

Retourne la couleur mate de l'image.

Valeurs de retour

Retourne un objet ImagickPixel en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Description

  • « Imagick::getImageMatteColor
  • Imagick::getImageOrientation »
  • PHP Manual
  • Imagick
  • Description

Imagick::getImageMimeType

(No version information available, might only be in Git)

Imagick::getImageMimeType — Description

Description

public string Imagick::getImageMimeType ( void )

Returns the image mime-type.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Lit l'orientation de l'image

  • « Imagick::getImageMimeType
  • Imagick::getImagePage »
  • PHP Manual
  • Imagick
  • Lit l'orientation de l'image

Imagick::getImageOrientation

(PECL imagick 2.0.0)

Imagick::getImageOrientation — Lit l'orientation de l'image

Description

int Imagick::getImageOrientation ( void )

Lit l'orientation de l'image. La valeur retournée est une des constantes d'orientation.

Valeurs de retour

Retourne un entier en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la géométrie de la page

  • « Imagick::getImageOrientation
  • Imagick::getImagePixelColor »
  • PHP Manual
  • Imagick
  • Retourne la géométrie de la page

Imagick::getImagePage

(PECL imagick 2.0.0)

Imagick::getImagePage — Retourne la géométrie de la page

Description

array Imagick::getImagePage ( void )

Retourne la géométrie de la page d'une image, sous la forme d'un tableau avec les clés "width", "height", "x" et "y".

Valeurs de retour

Retourne la géométrie de la page d'une image, sous la forme d'un tableau avec les clés "width", "height", "x" et "y".

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la couleur d'un pixel

  • « Imagick::getImagePage
  • Imagick::getImageProfile »
  • PHP Manual
  • Imagick
  • Retourne la couleur d'un pixel

Imagick::getImagePixelColor

(PECL imagick 2.0.0)

Imagick::getImagePixelColor — Retourne la couleur d'un pixel

Description

ImagickPixel Imagick::getImagePixelColor ( int $x , int $y )

Retourne la couleur d'un pixel.

Liste de paramètres

x

L'abscisse du pixel

y

L'ordonnée du pixel

Valeurs de retour

Retourne un objet ImagickPixel qui représente la couleur, pour ces coordonnées.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne un profil d'une image

  • « Imagick::getImagePixelColor
  • Imagick::getImageProfiles »
  • PHP Manual
  • Imagick
  • Retourne un profil d'une image

Imagick::getImageProfile

(PECL imagick 2.0.0)

Imagick::getImageProfile — Retourne un profil d'une image

Description

string Imagick::getImageProfile ( string $name )

Retourne un profil d'une image, à partir de son nom.

Liste de paramètres

name

Le nom du profil à lire.

Valeurs de retour

Retourne une chaîne contenant le profile de l'image.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne les profils de l'image

  • « Imagick::getImageProfile
  • Imagick::getImageProperties »
  • PHP Manual
  • Imagick
  • Retourne les profils de l'image

Imagick::getImageProfiles

(PECL imagick 2.0.0)

Imagick::getImageProfiles — Retourne les profils de l'image

Description

array Imagick::getImageProfiles ([ string $pattern = "*" [, bool $only_names = true ]] )

Retourne les profils de l'image qui correspondent à un modèle. Si TRUE est passé comme second paramètre, seul les noms des profils sont retournés. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

pattern

Le modèle de profile à lire.

only_names

S'il faut retourner seulement les noms des profils. Si FALSE est fourni, les valeurs seront également retournées.

Valeurs de retour

Retourne un tableau avec les profils de l'image, ou bien seulement les noms des profils.


Retourne les propriétés EXIF de l'image

  • « Imagick::getImageProfiles
  • Imagick::getImageProperty »
  • PHP Manual
  • Imagick
  • Retourne les propriétés EXIF de l'image

Imagick::getImageProperties

(PECL imagick 2.0.0)

Imagick::getImageProperties — Retourne les propriétés EXIF de l'image

Description

array Imagick::getImageProperties ([ string $pattern = "*" [, bool $only_names = true ]] )

Retourne toutes les propriétés de l'image, qui satisfont un modèle. Si TRUE est passé comme second paramètre, seul les noms des propriétés sont retournés. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

pattern

Le modèle pour les noms de propriétés.

only_names

S'il faut retourner uniquement les noms des propriétés. Si FALSE est fourni, alors les valeurs seront aussi retournées.

Valeurs de retour

Retourne un tableau contenant les propriétés de l'image, ou leurs noms.

Exemples

Exemple #1 Exemple avec Imagick::getImageProperties()

Exemple d'extraction d'informations EXIF.

<?php

/* Crée un objet */
$im = new imagick("/path/to/example.jpg");

/* Lit les informations EXIF */
$exifArray = $im->getImageProperties("exif:*");

/* Passe en revue les propriétés EXIF */
foreach ($exifArray as $name => $property)
{
    echo "{$name} => {$property}<br />\n";
}

?>


Retourne une propriété d'une image

  • « Imagick::getImageProperties
  • Imagick::getImageRedPrimary »
  • PHP Manual
  • Imagick
  • Retourne une propriété d'une image

Imagick::getImageProperty

(PECL imagick 2.0.0)

Imagick::getImageProperty — Retourne une propriété d'une image

Description

string Imagick::getImageProperty ( string $name )

Retourne une propriété d'une image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.

Liste de paramètres

name

Le nom de la propriété (par exemple, Exif:DateTime)

Exemples

Exemple #1 Exemple avec Imagick::getImageProperty()

Définition et récupération des propriétés de l'image.

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");

$image->setImageProperty('Exif:Make', 'Imagick');
echo $image->getImageProperty('Exif:Make');
?>

Voir aussi

  • Imagick::setImageProperty() - Configure une propriété d'image

Valeurs de retour

Retourne une propriété d'une image, ou FALSE si le nom demandé n'existe pas.


Retourne la chromacité du point rouge

  • « Imagick::getImageProperty
  • Imagick::getImageRegion »
  • PHP Manual
  • Imagick
  • Retourne la chromacité du point rouge

Imagick::getImageRedPrimary

(PECL imagick 2.0.0)

Imagick::getImageRedPrimary — Retourne la chromacité du point rouge

Description

array Imagick::getImageRedPrimary ( void )

Retourne la chromacité du point rouge sous la forme d'un tableau avec les clés "x" et "y".

Valeurs de retour

Retourne la chromacité du point rouge sous la forme d'un tableau avec les clés "x" et "y". Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Extrait une région d'une image

  • « Imagick::getImageRedPrimary
  • Imagick::getImageRenderingIntent »
  • PHP Manual
  • Imagick
  • Extrait une région d'une image

Imagick::getImageRegion

(PECL imagick 2.0.0)

Imagick::getImageRegion — Extrait une région d'une image

Description

Imagick Imagick::getImageRegion ( int $width , int $height , int $x , int $y )

Extrait une région d'une image et la retourne sous la forme d'un nouvel objet Imagick.

Liste de paramètres

width

La largeur de la région extraite.

height

La hauteur de la région extraite.

x

L'abscisse du coin supérieur gauche de la région extraite.

y

L'ordonnée du coin supérieur gauche de la région extraite.

Valeurs de retour

Extrait une région d'une image et la retourne sous la forme d'un nouvel objet Imagick.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit la méthode de rendu de l'image

  • « Imagick::getImageRegion
  • Imagick::getImageResolution »
  • PHP Manual
  • Imagick
  • Lit la méthode de rendu de l'image

Imagick::getImageRenderingIntent

(PECL imagick 2.0.0)

Imagick::getImageRenderingIntent — Lit la méthode de rendu de l'image

Description

int Imagick::getImageRenderingIntent ( void )

Lit la méthode de rendu de l'image.

Valeurs de retour

Retourne la constante de rendu.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit les résolutions en X et Y d'une image

  • « Imagick::getImageRenderingIntent
  • Imagick::getImagesBlob »
  • PHP Manual
  • Imagick
  • Lit les résolutions en X et Y d'une image

Imagick::getImageResolution

(PECL imagick 2.0.0)

Imagick::getImageResolution — Lit les résolutions en X et Y d'une image

Description

array Imagick::getImageResolution ( void )

Lit les résolutions en X et Y d'une image.

Valeurs de retour

Lit les résolutions en X et Y d'une image.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne toutes les images de la séquence en un BLOB

  • « Imagick::getImageResolution
  • Imagick::getImageScene »
  • PHP Manual
  • Imagick
  • Retourne toutes les images de la séquence en un BLOB

Imagick::getImagesBlob

(PECL imagick 2.0.0)

Imagick::getImagesBlob — Retourne toutes les images de la séquence en un BLOB

Description

string Imagick::getImagesBlob ( void )

Implémente le formatage direct en mémoire. Il retourne toutes les images de la séquence sous forme de chaîne. Le format de l'image détermine le format du BLOB retourné (GIF, JPEG, PNG, etc.). Pour retourner un format d'image différent, utilisez Imagick::setImageFormat().

Valeurs de retour

Retourne une chaîne contenant toutes les images. Émet une exception ImagickException en cas d'échec.


Retourne la scène de l'image

  • « Imagick::getImagesBlob
  • Imagick::getImageSignature »
  • PHP Manual
  • Imagick
  • Retourne la scène de l'image

Imagick::getImageScene

(PECL imagick 2.0.0)

Imagick::getImageScene — Retourne la scène de l'image

Description

int Imagick::getImageScene ( void )

Retourne la scène de l'image.

Valeurs de retour

Retourne la scène de l'image.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Génère une signature SHA-256

  • « Imagick::getImageScene
  • Imagick::getImageSize »
  • PHP Manual
  • Imagick
  • Génère une signature SHA-256

Imagick::getImageSignature

(PECL imagick 2.0.0)

Imagick::getImageSignature — Génère une signature SHA-256

Description

string Imagick::getImageSignature ( void )

Génère une signature SHA-256 de l'image.

Valeurs de retour

Retourne une chaîne contenant la signature SHA-256 de l'image.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la taille de l'image en octets

  • « Imagick::getImageSignature
  • Imagick::getImageTicksPerSecond »
  • PHP Manual
  • Imagick
  • Retourne la taille de l'image en octets

Imagick::getImageSize

(PECL imagick 2.0.0)

Imagick::getImageSize — Retourne la taille de l'image en octets

Description

int Imagick::getImageSize ( void )

Retourne la taille de l'image en octets. Cette méthode est obsolète en faveur de la méthode Imagick::getImageLength()

Valeurs de retour

Retourne un entier représentant la taille de l'image en octets.


Lit les ticks-par-seconde de l'image

  • « Imagick::getImageSize
  • Imagick::getImageTotalInkDensity »
  • PHP Manual
  • Imagick
  • Lit les ticks-par-seconde de l'image

Imagick::getImageTicksPerSecond

(PECL imagick 2.0.0)

Imagick::getImageTicksPerSecond — Lit les ticks-par-seconde de l'image

Description

int Imagick::getImageTicksPerSecond ( void )

Lit les ticks-par-seconde de l'image.

Valeurs de retour

Lit les ticks-par-seconde de l'image.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit la densité totale d'encre de l'image

  • « Imagick::getImageTicksPerSecond
  • Imagick::getImageType »
  • PHP Manual
  • Imagick
  • Lit la densité totale d'encre de l'image

Imagick::getImageTotalInkDensity

(PECL imagick 2.0.0)

Imagick::getImageTotalInkDensity — Lit la densité totale d'encre de l'image

Description

float Imagick::getImageTotalInkDensity ( void )

Lit la densité totale d'encre de l'image.

Valeurs de retour

Lit la densité totale d'encre de l'image. Émet une exception ImagickException en cas d'échec.


Lit le type possible d'image

  • « Imagick::getImageTotalInkDensity
  • Imagick::getImageUnits »
  • PHP Manual
  • Imagick
  • Lit le type possible d'image

Imagick::getImageType

(PECL imagick 0.9.10-0.9.9)

Imagick::getImageType — Lit le type possible d'image

Description

int Imagick::getImageType ( void )

Retourne le type possible d'image.

Valeurs de retour

Lit le type possible d'image.

  • imagick::IMGTYPE_UNDEFINED
  • imagick::IMGTYPE_BILEVEL
  • imagick::IMGTYPE_GRAYSCALE
  • imagick::IMGTYPE_GRAYSCALEMATTE
  • imagick::IMGTYPE_PALETTE
  • imagick::IMGTYPE_PALETTEMATTE
  • imagick::IMGTYPE_TRUECOLOR
  • imagick::IMGTYPE_TRUECOLORMATTE
  • imagick::IMGTYPE_COLORSEPARATION
  • imagick::IMGTYPE_COLORSEPARATIONMATTE
  • imagick::IMGTYPE_OPTIMIZE

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne les unités de résolution de l'image

  • « Imagick::getImageType
  • Imagick::getImageVirtualPixelMethod »
  • PHP Manual
  • Imagick
  • Retourne les unités de résolution de l'image

Imagick::getImageUnits

(PECL imagick 2.0.0)

Imagick::getImageUnits — Retourne les unités de résolution de l'image

Description

int Imagick::getImageUnits ( void )

Retourne les unités de résolution de l'image.

Valeurs de retour

Retourne les unités de résolution de l'image.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la méthode du pixel virtuel

  • « Imagick::getImageUnits
  • Imagick::getImageWhitePoint »
  • PHP Manual
  • Imagick
  • Retourne la méthode du pixel virtuel

Imagick::getImageVirtualPixelMethod

(PECL imagick 2.0.0)

Imagick::getImageVirtualPixelMethod — Retourne la méthode du pixel virtuel

Description

int Imagick::getImageVirtualPixelMethod ( void )

Retourne la méthode du pixel virtuel pour l'image spécifiée.

Valeurs de retour

Retourne la méthode du pixel virtuel pour l'image spécifiée.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la chromacité du point blanc

  • « Imagick::getImageVirtualPixelMethod
  • Imagick::getImageWidth »
  • PHP Manual
  • Imagick
  • Retourne la chromacité du point blanc

Imagick::getImageWhitePoint

(PECL imagick 2.0.0)

Imagick::getImageWhitePoint — Retourne la chromacité du point blanc

Description

array Imagick::getImageWhitePoint ( void )

Retourne la chromacité du point blanc, sous la forme d'un tableau associatif avec les clés "x" et "y".

Valeurs de retour

Retourne la chromacité du point blanc, sous la forme d'un tableau associatif avec les clés "x" et "y".

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la largeur de l'image

  • « Imagick::getImageWhitePoint
  • Imagick::getInterlaceScheme »
  • PHP Manual
  • Imagick
  • Retourne la largeur de l'image

Imagick::getImageWidth

(PECL imagick 2.0.0)

Imagick::getImageWidth — Retourne la largeur de l'image

Description

int Imagick::getImageWidth ( void )

Retourne la largeur de l'image.

Valeurs de retour

Retourne la largeur de l'image.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit le schéma d'entrelacement de l'objet

  • « Imagick::getImageWidth
  • Imagick::getIteratorIndex »
  • PHP Manual
  • Imagick
  • Lit le schéma d'entrelacement de l'objet

Imagick::getInterlaceScheme

(PECL imagick 2.0.0)

Imagick::getInterlaceScheme — Lit le schéma d'entrelacement de l'objet

Description

int Imagick::getInterlaceScheme ( void )

Lit le schéma d'entrelacement de l'objet.

Valeurs de retour

Lit la constante d'entrelacement.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit l'index de l'image active courante

  • « Imagick::getInterlaceScheme
  • Imagick::getNumberImages »
  • PHP Manual
  • Imagick
  • Lit l'index de l'image active courante

Imagick::getIteratorIndex

(PECL imagick 2.0.0)

Imagick::getIteratorIndex — Lit l'index de l'image active courante

Description

int Imagick::getIteratorIndex ( void )

Lit l'index de l'image active courante dans l'objet Imagick. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Retourne un entier représentant l'index de l'image dans la file d'attente.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::getIteratorIndex()

Crée des images, définit et récupère l'index de l'itérateur.

<?php
$im = new Imagick();
$im->newImage(100, 100, new ImagickPixel("red"));
$im->newImage(100, 100, new ImagickPixel("green"));
$im->newImage(100, 100, new ImagickPixel("blue"));

$im->setIteratorIndex(1);
echo $im->getIteratorIndex();
?>

Voir aussi

  • Imagick::setIteratorIndex() - Déplace l'itérateur
  • Imagick::getImageIndex() - Lit l'index de l'image courante
  • Imagick::setImageIndex() - Modifie la position de l'itérateur


Retourne le nombre d'images d'un objet

  • « Imagick::getIteratorIndex
  • Imagick::getOption »
  • PHP Manual
  • Imagick
  • Retourne le nombre d'images d'un objet

Imagick::getNumberImages

(PECL imagick 2.0.0)

Imagick::getNumberImages — Retourne le nombre d'images d'un objet

Description

int Imagick::getNumberImages ( void )

Retourne le nombre d'image d'un objet Imagick.

Valeurs de retour

Retourne le nombre d'image d'un objet Imagick.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la valeur d'une option

  • « Imagick::getNumberImages
  • Imagick::getPackageName »
  • PHP Manual
  • Imagick
  • Retourne la valeur d'une option

Imagick::getOption

(PECL imagick 2.0.0)

Imagick::getOption — Retourne la valeur d'une option

Description

string Imagick::getOption ( string $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la valeur d'une option pour l'objet Imagick.

Liste de paramètres

key

Le nom de l'option

Valeurs de retour

Retourne la valeur associée à l'option.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne le nom du paquet ImageMagick

  • « Imagick::getOption
  • Imagick::getPage »
  • PHP Manual
  • Imagick
  • Retourne le nom du paquet ImageMagick

Imagick::getPackageName

(PECL imagick 2.0.0)

Imagick::getPackageName — Retourne le nom du paquet ImageMagick

Description

string Imagick::getPackageName ( void )

Retourne le nom du paquet ImageMagick.

Valeurs de retour

Retourne le nom du paquet ImageMagick.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la géométrie de la page

  • « Imagick::getPackageName
  • Imagick::getPixelIterator »
  • PHP Manual
  • Imagick
  • Retourne la géométrie de la page

Imagick::getPage

(PECL imagick 2.0.0)

Imagick::getPage — Retourne la géométrie de la page

Description

array Imagick::getPage ( void )

Retourne la géométrie de l'objet Imagick, sous forme d'un tableau associatif, avec les clés "width", "height", "x" et "y".

Valeurs de retour

Retourne la géométrie de l'objet Imagick, sous forme d'un tableau associatif, avec les clés "width", "height", "x" et "y". Émet une exception ImagickException en cas d'échec.


Retourne un MagickPixelIterator

  • « Imagick::getPage
  • Imagick::getPixelRegionIterator »
  • PHP Manual
  • Imagick
  • Retourne un MagickPixelIterator

Imagick::getPixelIterator

(PECL imagick 2.0.0)

Imagick::getPixelIterator — Retourne un MagickPixelIterator

Description

ImagickPixelIterator Imagick::getPixelIterator ( void )

Retourne un MagickPixelIterator.

Valeurs de retour

Retourne un objet MagickPixelIterator.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::getPixelIterator()

<?php
function getPixelIterator($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = $imagick->getPixelIterator();

    foreach ($imageIterator as $row => $pixels) { /* On parcourt les lignes de piexel */
        foreach ($pixels as $column => $pixel) { /* On parcourt les pixel dans la ligne (colonne) */
            /** @var $pixel \ImagickPixel */
            if ($column % 2) {
                $pixel->setColor("rgba(0, 0, 0, 0)"); /* On peint tous les seconds pixels en noir */
            }
        }
        $imageIterator->syncIterator(); /* On synchronise l'itérateur, c'est important de le faire à chaque itération */
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Lit un objet ImagickPixelIterator pour une section d'image

  • « Imagick::getPixelIterator
  • Imagick::getPointSize »
  • PHP Manual
  • Imagick
  • Lit un objet ImagickPixelIterator pour une section d'image

Imagick::getPixelRegionIterator

(PECL imagick 2.0.0)

Imagick::getPixelRegionIterator — Lit un objet ImagickPixelIterator pour une section d'image

Description

ImagickPixelIterator Imagick::getPixelRegionIterator ( int $x , int $y , int $columns , int $rows )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit un objet ImagickPixelIterator pour une section d'image.

Liste de paramètres

x

L'abscisse de la région.

y

L'ordonnée de la région.

columns

La largeur de la région.

rows

La hauteur de la région.

Valeurs de retour

Retourne un objet ImagickPixelIterator pour une section d'image.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Imagick::getPixelRegionIterator() example

Itère sur les pixels du coin en haut à gauche de l'image, pour les peindre en noir.

<?php
$im = new Imagick(realpath("./testImage.png"));
$areaIterator = $im->getPixelRegionIterator(0, 0, 10, 10);

foreach ($areaIterator as $rowIterator) {
    foreach ($rowIterator as $pixel) {
        // Peint les pixels en noir
        $pixel->setColor("rgba(0, 0, 0, 0)");
    }
    $areaIterator->syncIterator();
}
$im->writeImage("./output.png");
?>


Récupère la taille du point

  • « Imagick::getPixelRegionIterator
  • Imagick::getQuantum »
  • PHP Manual
  • Imagick
  • Récupère la taille du point

Imagick::getPointSize

(No version information available, might only be in Git)

Imagick::getPointSize — Récupère la taille du point

Description

float Imagick::getPointSize ( void )

Retourne la propriété de la taille du point de l'objet. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.

Valeurs de retour

Retourne un nombre décimal contenant la taille du point.

Voir aussi

  • Imagick::setPointSize() - Définit la taille du point


Description

  • « Imagick::getPointSize
  • Imagick::getQuantumDepth »
  • PHP Manual
  • Imagick
  • Description

Imagick::getQuantum

(No version information available, might only be in Git)

Imagick::getQuantum — Description

Description

public static int Imagick::getQuantum ( void )

Returns the ImageMagick quantum range as an integer.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Lit la profondeur quantique

  • « Imagick::getQuantum
  • Imagick::getQuantumRange »
  • PHP Manual
  • Imagick
  • Lit la profondeur quantique

Imagick::getQuantumDepth

(PECL imagick 2.0.0)

Imagick::getQuantumDepth — Lit la profondeur quantique

Description

array Imagick::getQuantumDepth ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la profondeur quantique, sous forme de chaîne.

Valeurs de retour

Retourne la profondeur quantique, sous forme de chaîne.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne l'intervalle quantique de Imagick

  • « Imagick::getQuantumDepth
  • Imagick::getRegistry »
  • PHP Manual
  • Imagick
  • Retourne l'intervalle quantique de Imagick

Imagick::getQuantumRange

(PECL imagick 2.0.0)

Imagick::getQuantumRange — Retourne l'intervalle quantique de Imagick

Description

array Imagick::getQuantumRange ( void )

Retourne l'intervalle quantique de l'instance Imagick.

Valeurs de retour

Retourne un tableau associatif contenant l'intervalle quantique sous la forme d'un entier ("quantumRangeLong") et sous la forme d'une chaîne de caractères ("quantumRangeString").

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Description

  • « Imagick::getQuantumRange
  • Imagick::getReleaseDate »
  • PHP Manual
  • Imagick
  • Description

Imagick::getRegistry

(No version information available, might only be in Git)

Imagick::getRegistry — Description

Description

public static string Imagick::getRegistry ( string $key )

Get the StringRegistry entry for the named key or false if not set.

Liste de paramètres

key

The entry to get.

Valeurs de retour


Retourne la date de publication de ImageMagick

  • « Imagick::getRegistry
  • Imagick::getResource »
  • PHP Manual
  • Imagick
  • Retourne la date de publication de ImageMagick

Imagick::getReleaseDate

(PECL imagick 2.0.0)

Imagick::getReleaseDate — Retourne la date de publication de ImageMagick

Description

string Imagick::getReleaseDate ( void )

Retourne la date de publication de ImageMagick, sous forme de chaîne.

Valeurs de retour

Retourne la date de publication de ImageMagick, sous forme de chaîne.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la consommation de mémoire de la ressource

  • « Imagick::getReleaseDate
  • Imagick::getResourceLimit »
  • PHP Manual
  • Imagick
  • Retourne la consommation de mémoire de la ressource

Imagick::getResource

(PECL imagick 2.0.0)

Imagick::getResource — Retourne la consommation de mémoire de la ressource

Description

int Imagick::getResource ( int $type )

Retourne la consommation de mémoire de la ressource, en megaoctets.

Liste de paramètres

type

Voyez la liste des constantes de type de ressources.

Valeurs de retour

Retourne la consommation de mémoire de la ressource, en megaoctets.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la limite de la ressource

  • « Imagick::getResource
  • Imagick::getSamplingFactors »
  • PHP Manual
  • Imagick
  • Retourne la limite de la ressource

Imagick::getResourceLimit

(PECL imagick 2.0.0)

Imagick::getResourceLimit — Retourne la limite de la ressource

Description

int Imagick::getResourceLimit ( int $type )

Retourne la limite de la ressource.

Liste de paramètres

type

Voyez la liste des constantes de type de ressources.

Valeurs de retour

Retourne la limite de la ressource spécifiée, en megaoctets.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Lit le facteur d'échantillonnage horizontal et vertical

  • « Imagick::getResourceLimit
  • Imagick::getSize »
  • PHP Manual
  • Imagick
  • Lit le facteur d'échantillonnage horizontal et vertical

Imagick::getSamplingFactors

(PECL imagick 2.0.0)

Imagick::getSamplingFactors — Lit le facteur d'échantillonnage horizontal et vertical

Description

array Imagick::getSamplingFactors ( void )

Lit le facteur d'échantillonnage horizontal et vertical.

Valeurs de retour

Retourne un tableau associatif avec les facteurs d'échantillonnage horizontal et vertical de limage.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la taille associée avec un objet Imagick

  • « Imagick::getSamplingFactors
  • Imagick::getSizeOffset »
  • PHP Manual
  • Imagick
  • Retourne la taille associée avec un objet Imagick

Imagick::getSize

(PECL imagick 2.0.0)

Imagick::getSize — Retourne la taille associée avec un objet Imagick

Description

array Imagick::getSize ( void )

Retourne la taille associée avec un objet Imagick, sous forme de tableau, avec les clés "columns" (colonnes) et "rows" (lignes).

Valeurs de retour

Retourne la taille associée avec un objet Imagick, sous forme de tableau, avec les clés "columns" (colonnes) et "rows" (lignes).


Retourne la taille de la position

  • « Imagick::getSize
  • Imagick::getVersion »
  • PHP Manual
  • Imagick
  • Retourne la taille de la position

Imagick::getSizeOffset

(PECL imagick 2.0.0)

Imagick::getSizeOffset — Retourne la taille de la position

Description

int Imagick::getSizeOffset ( void )

Retourne la taille de la position associée avec l'objet Imagick. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Retourne la taille de la position associée avec l'objet Imagick.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne l'API de ImageMagick API

  • « Imagick::getSizeOffset
  • Imagick::haldClutImage »
  • PHP Manual
  • Imagick
  • Retourne l'API de ImageMagick API

Imagick::getVersion

(PECL imagick 2.0.0)

Imagick::getVersion — Retourne l'API de ImageMagick API

Description

array Imagick::getVersion ( void )

Retourne la version de l'APIImageMagick API, sous forme de chaîne et de nombre.

Valeurs de retour

Retourne la version de l'APIImageMagick API, sous forme de chaîne et de nombre.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Remplace les couleurs de l'image

  • « Imagick::getVersion
  • Imagick::hasNextImage »
  • PHP Manual
  • Imagick
  • Remplace les couleurs de l'image

Imagick::haldClutImage

(No version information available, might only be in Git)

Imagick::haldClutImage — Remplace les couleurs de l'image

Description

public bool Imagick::haldClutImage ( Imagick $clut [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Remplace les couleurs de l'image en utilisant la table de correspondance Hald. Les images Hald peuvent être créée en utilisant le codeur de couleur HALD.

Liste de paramètres

clut

Objet Imagick contenant l'image de correspondance Hald.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::haldClutImage()

<?php
function haldClutImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagickPalette = new \Imagick(realpath("images/hald/hald_8.png"));
    $imagickPalette->sepiatoneImage(55);
    $imagick->haldClutImage($imagickPalette);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Vérifie si un objet a une image suivante

  • « Imagick::haldClutImage
  • Imagick::hasPreviousImage »
  • PHP Manual
  • Imagick
  • Vérifie si un objet a une image suivante

Imagick::hasNextImage

(PECL imagick 2.0.0)

Imagick::hasNextImage — Vérifie si un objet a une image suivante

Description

bool Imagick::hasNextImage ( void )

Retourne TRUE si l'objet a encore des images, pour passer en revue la liste.

Valeurs de retour

Retourne TRUE si l'objet a une image suivante, et FALSE sinon.


Vérifie si un objet a une image précédente

  • « Imagick::hasNextImage
  • Imagick::identifyFormat »
  • PHP Manual
  • Imagick
  • Vérifie si un objet a une image précédente

Imagick::hasPreviousImage

(PECL imagick 2.0.0)

Imagick::hasPreviousImage — Vérifie si un objet a une image précédente

Description

bool Imagick::hasPreviousImage ( void )

Retourne TRUE si l'objet a une image précédente, pour pouvoir passer en revue la liste en ordre inverse.

Valeurs de retour

Retourne TRUE si l'objet a une image précédente, et FALSE sinon.


Description

  • « Imagick::hasPreviousImage
  • Imagick::identifyImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::identifyFormat

(No version information available, might only be in Git)

Imagick::identifyFormat — Description

Description

public string|false Imagick::identifyFormat ( string $embedText )

Replaces any embedded formatting characters with the appropriate image property and returns the interpreted text. See http://www.imagemagick.org/script/escape.php for escape sequences.

Liste de paramètres

embedText

A string containing formatting sequences e.g. "Trim box: %@ number of unique colors: %k".

Valeurs de retour

Exemples

Exemple #1 Imagick::identifyFormat()

<?php
        $output = "Output of 'Trim box: %@ number of unique colors: %k' is: <br/>";
        $imagick = new \Imagick(realpath("./images/artifact/mask.png"));
        $output .= $imagick->identifyFormat("Trim box: %@ number of unique colors: %k");

?>


Identifie une image et lit ses attributs

  • « Imagick::identifyFormat
  • Imagick::implodeImage »
  • PHP Manual
  • Imagick
  • Identifie une image et lit ses attributs

Imagick::identifyImage

(PECL imagick 2.0.0)

Imagick::identifyImage — Identifie une image et lit ses attributs

Description

array Imagick::identifyImage ([ bool $appendRawOutput = false ] )

Identifie une image et retourne ses attributs. Les attributs sont sa largeur, hauteur, taille et d'autres.

Liste de paramètres

appendRawOutput

Valeurs de retour

Identifie une image et retourne ses attributs. Les attributs sont sa largeur, hauteur, taille et d'autres.

Exemple #1 Exemple de format du résultat

Array
(
    [imageName] => /some/path/image.jpg
    [format] => JPEG (Joint Photographic Experts Group JFIF format)
    [geometry] => Array
        (
            [width] => 90
            [height] => 90
        )

    [type] => TrueColor
    [colorSpace] => RGB
    [resolution] => Array
        (
            [x] => 300
            [y] => 300
        )

    [units] => PixelsPerInch
    [fileSize] => 1.88672kb
    [compression] => JPEG
    [signature] => 9a6dc8f604f97d0d691c0286176ddf992e188f0bebba98494b2146ee2d7118da
)

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Crée une nouvelle copie d'image

  • « Imagick::identifyImage
  • Imagick::importImagePixels »
  • PHP Manual
  • Imagick
  • Crée une nouvelle copie d'image

Imagick::implodeImage

(PECL imagick 2.0.0)

Imagick::implodeImage — Crée une nouvelle copie d'image

Description

bool Imagick::implodeImage ( float $radius )

Crée une nouvelle copie d'image, avec chaque pixels "implosé" par un pourcentage spécifique.

Liste de paramètres

radius

Le rayon de l'implosion

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::implodeImage()

<?php
function implodeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->implodeImage(0.0001);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();

}

?>


Importe des pixels dans une image

  • « Imagick::implodeImage
  • Imagick::inverseFourierTransformImage »
  • PHP Manual
  • Imagick
  • Importe des pixels dans une image

Imagick::importImagePixels

(No version information available, might only be in Git)

Imagick::importImagePixels — Importe des pixels dans une image

Description

public bool Imagick::importImagePixels ( int $x , int $y , int $width , int $height , string $map , int $storage , array $pixels )

Importe des pixels depuis un tableau dans une image. Le paramètre map vaut générallement 'RGB'. Cette méthode impose les contraintes suivantes pour les paramètres : le nombre de pixels du tableau doit correspondre à la longueur width x height x de la carte. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.5 ou supérieur.

Liste de paramètres

x

La position en X de l'image.

y

La position en Y de l'image.

width

La largeur de l'image.

height

La hauteur de l'image.

map

La carte de l'ordre des pixels, sous la forme d'une chaîne de caractères. Par exemple RGB. La valeur peut être une combinaison ou un ordre de R = rouge, G = vert, B = bleu, A = alpha (0 correspond à transparent), O = opacité (0 correspond à opaque), C = cyan, Y = jaune, M = magenta, K = noir, I = intensité (pour les niveaux de gris), P = pad.

storage

La méthode de stockage des pixels. Référez-vous à la liste des constantes de pixels.

pixels

Le tableau de pixels.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::importImagePixels()

<?php

/* Génère un tableau de pixels. 2000 pixels par bande de couleurs */
$count = 2000 * 3;

$pixels =
   array_merge(array_pad(array(), $count, 0),
               array_pad(array(), $count, 255),
               array_pad(array(), $count, 0),
               array_pad(array(), $count, 255),
               array_pad(array(), $count, 0));

/* Largeur et hauteur. L'espace correspond aux pixels, divisés
   par 3. 3 provient de 'RGB', 3 valeurs par pixel */
$width = $height = pow((count($pixels) / 3), 0.5);

/* Crée une image vide */
$im = new Imagick();
$im->newImage($width, $height, 'gray');

/* Importe les pixels dans l'image.
   width * height * strlen("RGB") doit correspondre à count($pixels) */
$im->importImagePixels(0, 0, $width, $height, "RGB", Imagick::PIXEL_CHAR, $pixels);

/* Affiche l'image sous la forme d'une image jpeg */
$im->setImageFormat('jpg');
header("Content-Type: image/jpg");
echo $im;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Sortie de l'exemple : Imagick::importImagePixels()


Description

  • « Imagick::importImagePixels
  • Imagick::labelImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::inverseFourierTransformImage

(No version information available, might only be in Git)

Imagick::inverseFourierTransformImage — Description

Description

public void Imagick::inverseFourierTransformImage ( string $complement , string $magnitude )

Implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

complement

The second image to combine with this one to form either the magnitude / phase or real / imaginary image pair.

magnitude

If true, combine as magnitude / phase pair otherwise a real / imaginary image pair.

Valeurs de retour


Ajoute un libelle à une image

  • « Imagick::inverseFourierTransformImage
  • Imagick::levelImage »
  • PHP Manual
  • Imagick
  • Ajoute un libelle à une image

Imagick::labelImage

(PECL imagick 2.0.0)

Imagick::labelImage — Ajoute un libelle à une image

Description

bool Imagick::labelImage ( string $label )

Ajoute un libelle à une image.

Liste de paramètres

label

Le libellé à ajouter

Valeurs de retour

Retourne TRUE en cas de succès.


Ajuste les niveaux de l'image

  • « Imagick::labelImage
  • Imagick::linearStretchImage »
  • PHP Manual
  • Imagick
  • Ajuste les niveaux de l'image

Imagick::levelImage

(PECL imagick 2.0.0)

Imagick::levelImage — Ajuste les niveaux de l'image

Description

bool Imagick::levelImage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Imagick::CHANNEL_ALL ] )

Ajuste les niveaux d'une image en modifiant les couleurs qui sont entre deux couleurs données. Les paramètres représentent le noir, le gris et le blanc. Le noir est la couleur la plus sombre dans l'image. Les couleurs qui sont plus sombres que la couleur noire sont alors mises à zéro. La couleur grise spécifie une correction gamma à appliquer à l'image. La couleur blanche spécifie la couleur la plus claire. Les couleurs plus claires sont alors mises à l'intensité maximale.

Liste de paramètres

blackPoint

Le point noir de l'image

gamma

La correction gamma

whitePoint

Le point blanc de l'image

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::levelImage()

<?php
function levelImage($blackPoint, $gamma, $whitePoint) {
    $imagick = new \Imagick();
    $imagick->newPseudoimage(500, 500, 'gradient:black-white');

    $imagick->setFormat('png');
    $quantum = $imagick->getQuantum();
    $imagick->levelImage($blackPoint / 100 , $gamma, $quantum * $whitePoint / 100);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Étire la saturation de l'intensité de l'image

  • « Imagick::levelImage
  • Imagick::liquidRescaleImage »
  • PHP Manual
  • Imagick
  • Étire la saturation de l'intensité de l'image

Imagick::linearStretchImage

(PECL imagick 2.0.0)

Imagick::linearStretchImage — Étire la saturation de l'intensité de l'image

Description

bool Imagick::linearStretchImage ( float $blackPoint , float $whitePoint )

Étire la saturation de l'intensité de l'image.

Liste de paramètres

blackPoint

Le point noir de l'image.

whitePoint

Le point blanc de l'image.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::linearStretchImage()

<?php
function linearStretchImage($imagePath, $blackThreshold, $whiteThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $pixels = $imagick->getImageWidth() * $imagick->getImageHeight();
    $imagick->linearStretchImage($blackThreshold * $pixels, $whiteThreshold * $pixels);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Anime une ou plusieurs images

  • « Imagick::linearStretchImage
  • Imagick::listRegistry »
  • PHP Manual
  • Imagick
  • Anime une ou plusieurs images

Imagick::liquidRescaleImage

(No version information available, might only be in Git)

Imagick::liquidRescaleImage — Anime une ou plusieurs images

Description

bool Imagick::liquidRescaleImage ( int $width , int $height , float $delta_x , float $rigidity )

Cette méthode met à l'échelle les images en utilisant la méthode de mise à l'échelle liquide. Cette méthode est une implémentation d'un technique appelée "seam carving". Pour que cette méthode fonctionne telle que convenue, ImageMagick doit avoir été compilé avec le support liblqr. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.9 ou supérieur.

Liste de paramètres

width

La largeur de la taille cible.

height

La hauteur de la taille cible.

delta_x

Le nombre de coutures pouvant traverser l'axe X. Le fait de passer 0 signifie que la couture se fera sur la droite.

rigidity

Introduit une rigidité pour les coutures non droites. Ce paramètre est habituellement à 0.

Valeurs de retour

Retourne TRUE en cas de succès.

Voir aussi

  • Imagick::resizeImage() - Redimensionne une image


Description

  • « Imagick::liquidRescaleImage
  • Imagick::magnifyImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::listRegistry

(No version information available, might only be in Git)

Imagick::listRegistry — Description

Description

public static array Imagick::listRegistry ( void )

List all the registry settings. Returns an array of all the key/value pairs in the registry

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array containing the key/values from the registry.


Double la taille d'une image, proportionnellement

  • « Imagick::listRegistry
  • Imagick::mapImage »
  • PHP Manual
  • Imagick
  • Double la taille d'une image, proportionnellement

Imagick::magnifyImage

(PECL imagick 2.0.0)

Imagick::magnifyImage — Double la taille d'une image, proportionnellement

Description

bool Imagick::magnifyImage ( void )

Cette méthode est un raccourci pour doubler la taille d'une image.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::magnifyImage()

<?php
function magnifyImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->magnifyImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Remplace la couleur d'une image par celle d'une image de référence

  • « Imagick::magnifyImage
  • Imagick::matteFloodfillImage »
  • PHP Manual
  • Imagick
  • Remplace la couleur d'une image par celle d'une image de référence

Imagick::mapImage

(PECL imagick 2.0.0)

Imagick::mapImage — Remplace la couleur d'une image par celle d'une image de référence

Description

bool Imagick::mapImage ( Imagick $map , bool $dither )

Liste de paramètres

map

dither

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Change la transparence d'une couleur

  • « Imagick::mapImage
  • Imagick::medianFilterImage »
  • PHP Manual
  • Imagick
  • Change la transparence d'une couleur

Imagick::matteFloodfillImage

(PECL imagick 2.0.0)

Imagick::matteFloodfillImage — Change la transparence d'une couleur

Description

bool Imagick::matteFloodfillImage ( float $alpha , float $fuzz , mixed $bordercolor , int $x , int $y )

Change la transparence d'un pixel cible, et ses voisins immédiats. Si la méthode FillToBorderMethod est spécifiée, la valeur de la transparence est modifiée pour tous les pixels voisins qui ne correspondent pas à une couleur de bordercolor.

Liste de paramètres

alpha

Le niveau de transparence : 1.0 représente une couleur opaque, alors que 0.0 est totalement transparent.

fuzz

Cet argument représente la tolérance acceptable pour que deux couleurs soient considérées comme identiques.

bordercolor

Un objet ImagickPixel ou une chaîne représentant la couleur de bordure.

x

L'abscisse d'origine de l'opération.

y

L'ordonnée d'origine de l'opération.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
2.1.0 | Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.


Applique un filtre numérique

  • « Imagick::matteFloodfillImage
  • Imagick::mergeImageLayers »
  • PHP Manual
  • Imagick
  • Applique un filtre numérique

Imagick::medianFilterImage

(PECL imagick 2.0.0)

Imagick::medianFilterImage — Applique un filtre numérique

Description

bool Imagick::medianFilterImage ( float $radius )

Applique un filtre numérique qui améliore la qualité d'une image avec du bruit. Chaque pixel est remplacé par la médian de son voisinage. Le voisinage est défini par un rayon.

Liste de paramètres

radius

Le rayon du voisinage.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::medianFilterImage()

<?php
function medianFilterImage($radius, $imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    @$imagick->medianFilterImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Fusionne les calques de l'image

  • « Imagick::medianFilterImage
  • Imagick::minifyImage »
  • PHP Manual
  • Imagick
  • Fusionne les calques de l'image

Imagick::mergeImageLayers

(PECL imagick 2.1.0)

Imagick::mergeImageLayers — Fusionne les calques de l'image

Description

Imagick Imagick::mergeImageLayers ( int $layer_method )

Fusionne les calques de l'image en un seul. Cette méthode est utile lors de l'utilisation de formats d'image qui utilisent plusieurs calques, comme les PSD. La fusion est contrôlée en utilisant le paramètre layer_method qui définit la façon dont les calques doivent fusionner. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.

Liste de paramètres

layer_method

Une constante parmi les constantes Imagick::LAYERMETHOD_*.

Valeurs de retour

Retourne un objet Imagick contenant l'image fusionnée.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Voir aussi

  • Imagick::flattenImages() - Fusionne une séquence d'images

Exemples

Exemple #1 Exemple avec Imagick::mergeImageLayers()

<?php
function mergeImageLayers($layerMethodType, $imagePath1, $imagePath2) {

    $imagick = new \Imagick(realpath($imagePath));

    $imagick2 = new \Imagick(realpath($imagePath2));
    $imagick->addImage($imagick2);
    $imagick->setImageFormat('png');

    $result = $imagick->mergeImageLayers($layerMethodType);
    header("Content-Type: image/png");
    echo $result->getImageBlob();
}

?>


Met à l'échelle une image proportionnellement pour la réduire de moitié de taille

  • « Imagick::mergeImageLayers
  • Imagick::modulateImage »
  • PHP Manual
  • Imagick
  • Met à l'échelle une image proportionnellement pour la réduire de moitié de taille

Imagick::minifyImage

(PECL imagick 2.0.0)

Imagick::minifyImage — Met à l'échelle une image proportionnellement pour la réduire de moitié de taille

Description

bool Imagick::minifyImage ( void )

Cette fonction est un raccourci pratique pour mettre à l'échelle une image proportionnellement pour la réduire de moitié de taille.

Valeurs de retour

Retourne TRUE en cas de succès.


Contrôle la saturation, l'intensité et la teinte

  • « Imagick::minifyImage
  • Imagick::montageImage »
  • PHP Manual
  • Imagick
  • Contrôle la saturation, l'intensité et la teinte

Imagick::modulateImage

(PECL imagick 2.0.0)

Imagick::modulateImage — Contrôle la saturation, l'intensité et la teinte

Description

bool Imagick::modulateImage ( float $brightness , float $saturation , float $hue )

Contrôle l'intensité, la saturation et la teinte d'une image. La couleur est le pourcentage de rotation absolue depuis la position courante. Par exemple, la valeur 50 engendre une rotation anti-horaire de 90 degrés, 150 produit une rotation horaire de 90 degrés, tandis que 0 et 200 produisent des rotations de 180 degrés.

Liste de paramètres

brightness

saturation

hue

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::modulateImage()

<?php
function modulateImage($imagePath, $hue, $brightness, $saturation) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->modulateImage($brightness, $saturation, $hue);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Crée une image composite

  • « Imagick::modulateImage
  • Imagick::morphImages »
  • PHP Manual
  • Imagick
  • Crée une image composite

Imagick::montageImage

(PECL imagick 2.0.0)

Imagick::montageImage — Crée une image composite

Description

Imagick Imagick::montageImage ( ImagickDraw $draw , string $tile_geometry , string $thumbnail_geometry , int $mode , string $frame )

Crée une image composite en combinant plusieurs images. Les images sont utilisés comme carreaux dans l'image composite, avec leur nom optionnellement en dessous.

Liste de paramètres

draw

Le nom de la police, la taille et la couleur sont demandés à cet objet.

tile_geometry

Le nombre de carreaux par lignes et par page (e.g. 6x4+0+0).

thumbnail_geometry

La taille demandée pour l'image et sa bordure pour chaque miniature (e.g. 120x120+4+3).

mode

Le mode de cadrage des miniatures. Voyez la liste des constantes de mode de montage.

frame

Encadre l'image avec un bord d'ornement (e.g. 15x15+3+3). La couleur du bord est la couleur mate de la miniature.

Valeurs de retour

Retourne TRUE en cas de succès.


Réalise un morphing entre deux images

  • « Imagick::montageImage
  • Imagick::morphology »
  • PHP Manual
  • Imagick
  • Réalise un morphing entre deux images

Imagick::morphImages

(PECL imagick 2.0.0)

Imagick::morphImages — Réalise un morphing entre deux images

Description

Imagick Imagick::morphImages ( int $number_frames )

Réalise un morphing d'images. La taille et la couleur des pixels sont linéairement interpolés pour donner l'apparence d'une métamorphose d'une image à l'autre.

Liste de paramètres

number_frames

Le nombre d'images à générer entre les deux images.

Valeurs de retour

Cette méthode retourne un nouvel objet Imagick. Émet une exception ImagickException en cas d'échec.


Description

  • « Imagick::morphImages
  • Imagick::mosaicImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::morphology

(No version information available, might only be in Git)

Imagick::morphology — Description

Description

public void Imagick::morphology ( int $morphologyMethod , int $iterations , ImagickKernel $ImagickKernel [, string $CHANNEL ] )

Applies a user supplied kernel to the image according to the given morphology method.

Liste de paramètres

morphologyMethod

Which morphology method to use one of the \Imagick::MORPHOLOGY_* constants.

iterations

The number of iteration to apply the morphology function. A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1.

ImagickKernel

CHANNEL

Valeurs de retour

Exemples

Exemple #1 Convolve Imagick::morphology()

<?php
        $imagick = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_GAUSSIAN, "5,1");
        $imagick->morphology(\Imagick::MORPHOLOGY_CONVOLVE, 2, $kernel);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();

?>

Exemple #2 Correlate Imagick::morphology()

<?php

        // Top-left pixel must be black
        // Bottom right pixel must be white
        // We don't care about the rest.

        $imagick = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromMatrix(self::$correlateMatrix, [2, 2]);
        $imagick->morphology(\Imagick::MORPHOLOGY_CORRELATE, 1, $kernel);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();

?>

Exemple #3 Erode Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_ERODE, 2, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #4 Erode Intensity Imagick::morphology()

<?php
        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "1");
        $canvas->morphology(\Imagick::MORPHOLOGY_ERODE_INTENSITY, 2, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #5 Dilate Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_DILATE, 4, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #6 Dilate intensity Imagick::morphology()

<?php
        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "1");
        $canvas->morphology(\Imagick::MORPHOLOGY_DILATE_INTENSITY, 4, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #7 Distance with Chebyshev kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_CHEBYSHEV, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #8 Distance with Manhattan kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_MANHATTAN, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #9 Distance with ocatagonal kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGONAL, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #10 Distance with Euclidean kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_EUCLIDEAN, "4");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #11 Edge Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_EDGE, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #12 Open Imagick::morphology()

<?php
        // As a result you will see that 'Open' smoothed the outline, by rounding off any sharp points, and remove any parts that is smaller than the shape used. It will also disconnect or 'open' any thin bridges.
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_OPEN, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #13 Open intensity Imagick::morphology()

<?php
        // As a result you will see that 'Open' smoothed the outline, by rounding off any sharp points, and remove any parts that is smaller than the shape used. It will also disconnect or 'open' any thin bridges.

        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_OPEN_INTENSITY, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #14 Close Imagick::morphology()

<?php
        //The basic use of the 'Close' method is to reduce or remove any 'holes' or 'gaps' about the size of the kernel 'Structure Element'. That is 'close' parts of the background that are about that size.
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #15 Close Intensity Imagick::morphology()

<?php
        //The basic use of the 'Close' method is to reduce or remove any 'holes' or 'gaps' about the size of the kernel 'Structure Element'. That is 'close' parts of the background that are about that size.
        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE_INTENSITY, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #16 Smooth Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_SMOOTH, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #17 Edge in Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_EDGE_IN, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #18 Edge out Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_EDGE_OUT, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #19 The 'TopHat' method, or more specifically 'White Top Hat', returns the pixels that were removed by a Opening of the shape, that is the pixels that were removed to round off the points, and the connecting bridged between shapes. Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_TOP_HAT, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #20 The 'BottomHat' method, also known as 'Black TopHat' is the pixels that a Closing of the shape adds to the image. That is the the pixels that were used to fill in the 'holes', 'gaps', and 'bridges'. Imagick::morphology()

<?php

        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_BOTTOM_HAT, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #21 Hit and Miss Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        //This finds all the pixels with 3 pixels of the right edge
        $matrix = [[1, false, false, 0]];
        $kernel = \ImagickKernel::fromMatrix(
            $matrix,
            [0, 0]
        );
        $canvas->morphology(\Imagick::MORPHOLOGY_HIT_AND_MISS, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #22 Thinning Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $leftEdgeKernel = \ImagickKernel::fromMatrix([[0, 1]], [1, 0]);
        $rightEdgeKernel = \ImagickKernel::fromMatrix([[1, 0]], [0, 0]);
        $leftEdgeKernel->addKernel($rightEdgeKernel);

        $canvas->morphology(\Imagick::MORPHOLOGY_THINNING, 3, $leftEdgeKernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #23 Thicken Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $leftEdgeKernel = \ImagickKernel::fromMatrix([[0, 1]], [1, 0]);
        $rightEdgeKernel = \ImagickKernel::fromMatrix([[1, 0]], [0, 0]);
        $leftEdgeKernel->addKernel($rightEdgeKernel);

        $canvas->morphology(\Imagick::MORPHOLOGY_THICKEN, 3, $leftEdgeKernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #24 Thick to generate a convex hull Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $diamondKernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "1");
        $convexKernel =  \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_CONVEX_HULL, "");

        // The thicken morphology doesn't handle small gaps. We close them
        // with the close morphology.
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $diamondKernel);
        $canvas->morphology(\Imagick::MORPHOLOGY_THICKEN, -1, $convexKernel);
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $diamondKernel);

        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #25 Iterative morphology Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "2");
        $canvas->morphology(\Imagick::MORPHOLOGY_ITERATIVE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Exemple #26 Helper functon to get an image silhouette Imagick::morphology()

<?php
    private function getCharacterOutline() {

        $imagick = new \Imagick(realpath("./images/character.png"));
        $character = new \Imagick();
        $character->newPseudoImage(
            $imagick->getImageWidth(),
            $imagick->getImageHeight(),
            "canvas:white"
        );
        $canvas = new \Imagick();
        $canvas->newPseudoImage(
            $imagick->getImageWidth(),
            $imagick->getImageHeight(),
            "canvas:black"
        );

        $character->compositeimage(
            $imagick,
            \Imagick::COMPOSITE_COPYOPACITY,
            0, 0
        );
        $canvas->compositeimage(
            $character,
            \Imagick::COMPOSITE_ATOP,
            0, 0
        );
        $canvas->setFormat('png');

        return $canvas;
    }

?>


Forme une mosaïque d'images

  • « Imagick::morphology
  • Imagick::motionBlurImage »
  • PHP Manual
  • Imagick
  • Forme une mosaïque d'images

Imagick::mosaicImages

(PECL imagick 2.0.0)

Imagick::mosaicImages — Forme une mosaïque d'images

Description

Imagick Imagick::mosaicImages ( void )

Aligne les images d'une séquence pour former une seule image cohérente. La fonction retourne une baguette avec chaque image de la séquence, à l'endroit du décalage de l'image.

Valeurs de retour

Retourne TRUE en cas de succès.


Ajout un flou de déplacement

  • « Imagick::mosaicImages
  • Imagick::negateImage »
  • PHP Manual
  • Imagick
  • Ajout un flou de déplacement

Imagick::motionBlurImage

(PECL imagick 2.0.0)

Imagick::motionBlurImage — Ajout un flou de déplacement

Description

bool Imagick::motionBlurImage ( float $radius , float $sigma , float $angle [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Ajoute un flou de déplacement. Une convolution de l'image avec un opérateur gaussien, pour un rayon et une déviation donnée est utilisé. Pour des résultats raisonnables, le rayon doit être plus grand que la déviation. Utilisez un rayon de zéro, et Imagick va choisir sa valeur pour vous. L'angle donne la direction du flou de déplacement.

Liste de paramètres

radius

Le rayon de la gaussienne, en pixel, sans compter le pixel du centre.

sigma

La déviation standard de la gaussienne, en pixels.

angle

L'angle du flou.

channel

Une constante de canal, valide pour votre mode de canal. Pour spécifier un ou plusieurs canaux, combinez les constantes de canaux avec les opérateurs logiques. Voyez la liste de constantes de canaux. L'argument de canal est disponible uniquement si Imagick est compilé avec ImageMagick, version 6.4.4 ou plus récent.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::motionBlurImage()

<?php
function motionBlurImage($imagePath, $radius, $sigma, $angle, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->motionBlurImage($radius, $sigma, $angle, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Effectue la négation des couleurs d'une image de référence

  • « Imagick::motionBlurImage
  • Imagick::newImage »
  • PHP Manual
  • Imagick
  • Effectue la négation des couleurs d'une image de référence

Imagick::negateImage

(PECL imagick 2.0.0)

Imagick::negateImage — Effectue la négation des couleurs d'une image de référence

Description

bool Imagick::negateImage ( bool $gray [, int $channel = Imagick::CHANNEL_ALL ] )

Effectue la négation des couleurs d'une image de référence. L'option de niveau de gris signifie que seul les valeurs en niveau de gris de l'image sont soumises à la transformation.

Liste de paramètres

gray

S'il faut effectuer la négation sur les niveaux de gris.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::negateImage()

<?php
function negateImage($imagePath, $grayOnly, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->negateImage($grayOnly, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Crée une nouvelle image

  • « Imagick::negateImage
  • Imagick::newPseudoImage »
  • PHP Manual
  • Imagick
  • Crée une nouvelle image

Imagick::newImage

(PECL imagick 2.0.0)

Imagick::newImage — Crée une nouvelle image

Description

bool Imagick::newImage ( int $cols , int $rows , mixed $background [, string $format ] )

Crée une nouvelle image et lui associe un objet ImagickPixel pour la couleur de fond

Liste de paramètres

cols

Le nombre de colonnes de la nouvelle image

rows

Le nombre de lignes de la nouvelle image

background

La couleur de fond utilisée pour cette image

format

Le format de l'image. Ce paramètre a été ajouté en Imagick version 2.0.1.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
2.1.0 | Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.

Exemples

Exemple #1 Exemple avec Imagick::newImage()

Crée une nouvelle image et l'affiche.

<?php

$image = new Imagick();
$image->newImage(100, 100, new ImagickPixel('red'));
$image->setImageFormat('png');

header('Content-type: image/png');
echo $image;

?>


Crée une nouvelle image

  • « Imagick::newImage
  • Imagick::nextImage »
  • PHP Manual
  • Imagick
  • Crée une nouvelle image

Imagick::newPseudoImage

(PECL imagick 2.0.0)

Imagick::newPseudoImage — Crée une nouvelle image

Description

bool Imagick::newPseudoImage ( int $columns , int $rows , string $pseudoString )

Crée une nouvelle image en utilisant les pseudoformats ImageMagick.

Liste de paramètres

columns

Le nombre de colonnes dans la nouvelle image

rows

Le nombre de lignes dans la nouvelle image

pseudoString

Une chaîne contenant une pseudodéfinition d'image.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::newPseudoImage()

<?php
function newPseudoImage($canvasType) {
    $imagick = new \Imagick();
    $imagick->newPseudoImage(300, 300, $canvasType);
    $imagick->setImageFormat("png");
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

//newPseudoImage('gradient:red-rgba(64, 255, 255, 0.5)');
//newPseudoImage("radial-gradient:red-blue");
newPseudoImage("plasma:fractal");

?>


Passe à la prochaine image

  • « Imagick::newPseudoImage
  • Imagick::normalizeImage »
  • PHP Manual
  • Imagick
  • Passe à la prochaine image

Imagick::nextImage

(PECL imagick 2.0.0)

Imagick::nextImage — Passe à la prochaine image

Description

bool Imagick::nextImage ( void )

Passe à la prochaine image dans la liste de l'objet Imagick.

Valeurs de retour

Retourne TRUE en cas de succès.


Améliore le contraste de l'image

  • « Imagick::nextImage
  • Imagick::oilPaintImage »
  • PHP Manual
  • Imagick
  • Améliore le contraste de l'image

Imagick::normalizeImage

(PECL imagick 2.0.0)

Imagick::normalizeImage — Améliore le contraste de l'image

Description

bool Imagick::normalizeImage ([ int $channel = Imagick::CHANNEL_ALL ] )

Améliore le contraste de l'image en ajustant la couleur des pixels à travers toute la gamme des couleurs de l'image.

Liste de paramètres

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::normalizeImage()

<?php
function normalizeImage($imagePath, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $original = clone $imagick;
    $original->cropimage($original->getImageWidth() / 2, $original->getImageHeight(), 0, 0);
    $imagick->normalizeImage($channel);
    $imagick->compositeimage($original, \Imagick::COMPOSITE_ATOP, 0, 0);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Simule une peinture à l'huile

  • « Imagick::normalizeImage
  • Imagick::opaquePaintImage »
  • PHP Manual
  • Imagick
  • Simule une peinture à l'huile

Imagick::oilPaintImage

(PECL imagick 2.0.0)

Imagick::oilPaintImage — Simule une peinture à l'huile

Description

bool Imagick::oilPaintImage ( float $radius )

Applique un filtre spéciale qui simule une peinture à l'huile. Chaque pixel est remplacé par la couleur la plus fréquente dans son voisinage.

Liste de paramètres

radius

Le rayon du voisinage circulaire.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::oilPaintImage()

<?php
function oilPaintImage($imagePath, $radius) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->oilPaintImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Modifie la valeur de la couleur de tous les pixels correspondant à la cible

  • « Imagick::oilPaintImage
  • Imagick::optimizeImageLayers »
  • PHP Manual
  • Imagick
  • Modifie la valeur de la couleur de tous les pixels correspondant à la cible

Imagick::opaquePaintImage

(No version information available, might only be in Git)

Imagick::opaquePaintImage — Modifie la valeur de la couleur de tous les pixels correspondant à la cible

Description

bool Imagick::opaquePaintImage ( mixed $target , mixed $fill , float $fuzz , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Modifie tous les pixels correspondant à la couleur avec la couleur définie par le paramètre fill. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.

Liste de paramètres

target

Un objet ImagickPixel ou une chaîne de caractères contenant la couleur à modifier.

fill

La couleur de remplacement.

fuzz

La quantité de poussière de papier. Par exemple, le fait de définir la poussière de papier à 10 et la couleur rouge à une intensité de 100 et de 102 ne sera pas interprété comme la même couleur.

invert

Si vaut TRUE, colorise tous les pixels qui ne correspondent pas à la couleur cible.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne TRUE en cas de succès.


Supprime les portions récurrents d'images à optimiser

  • « Imagick::opaquePaintImage
  • Imagick::orderedPosterizeImage »
  • PHP Manual
  • Imagick
  • Supprime les portions récurrents d'images à optimiser

Imagick::optimizeImageLayers

(PECL imagick 2.0.0)

Imagick::optimizeImageLayers — Supprime les portions récurrents d'images à optimiser

Description

bool Imagick::optimizeImageLayers ( void )

Compare chaque image GIF à la précédente dans la séquence. A partir de là, la méthode tente de sélectionner la plus petite partie d'image à remplacer à chaque image, tout en préservant les résultats de l'animation. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::optimizeImageLayers()

Lecture, optimisation et écriture d'une image GIF

<?php
/* création d'un nouvel objet imagick */
$im = new Imagick("test.gif");

/* optimisation des calques */
$im->optimizeImageLayers();

/* écriture de l'image */
$im->writeImages("test_optimized.gif", true);
?>

Voir aussi

  • Imagick::compareImageLayers() - Retourne la région d'encadrement maximale entre deux images
  • Imagick::writeImages() - Écrit une image ou une séquence d'images
  • Imagick::writeImage() - Écrit une image dans le fichier spécifié


Effectue un dither ordonné

  • « Imagick::optimizeImageLayers
  • Imagick::colorFloodfillImage »
  • PHP Manual
  • Imagick
  • Effectue un dither ordonné

Imagick::orderedPosterizeImage

(PECL imagick 2.2.2)

Imagick::orderedPosterizeImage — Effectue un dither ordonné

Description

bool Imagick::orderedPosterizeImage ( string $threshold_map [, int $channel = Imagick::CHANNEL_ALL ] )

Effectue un dither ordonné, basé sur un nombre prédéfini de cartes de seuil de dither, mais avec plusieurs niveaux d'intensité, qui peuvent être différents sur différents canaux, suivant les arguments. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.1 ou supérieur.

Liste de paramètres

threshold_map

Une chaîne contenant le nom de la carte de seuils de dither

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::orderedPosterizeImage()

<?php
function orderedPosterizeImage($imagePath, $orderedPosterizeType) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->orderedPosterizeImage($orderedPosterizeType);
    $imagick->setImageFormat('png');

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

//orderedPosterizeImage($imagePath, 'o4x4,3,3');
//orderedPosterizeImage($imagePath, 'o8x8,6,6');
orderedPosterizeImage($imagePath, 'h8x8a');

?>


Change les pixels qui sont d'une couleur

  • « Imagick::orderedPosterizeImage
  • Imagick::paintOpaqueImage »
  • PHP Manual
  • Imagick
  • Change les pixels qui sont d'une couleur

Imagick::colorFloodfillImage

(PECL imagick 2.0.0)

Imagick::colorFloodfillImage — Change les pixels qui sont d'une couleur

Description

bool Imagick::paintFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )

Change les pixels qui correspondent à une couleur en une couleur de remplissage, et qui sont un voisin immédiat. Depuis ImageMagick 6.3.8, cette méthode est obsolète et la méthode Imagick::floodfillPaintImage() dot être utilisée à la place.

Liste de paramètres

fill

L'objet ImagickPixel ou une chaîne de caractères contenant la couleur de remplissage.

fuzz

La quantité de bruit. Par exemple, un bruit de 10 et la couleur rouge à l'intensité de 100 et 102, respectivement, sont maintenant interprété comme la même couleur, dans le cadre de ce remplissage.

bordercolor

Un objet ImagickPixel ou une chaîne de caractères contenant la couleur de la bordure

x

L'abscisse position d'origine du remplissage

y

L'ordonnée position d'origine du remplissage

channel

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne TRUE en cas de succès.


Change les pixels qui sont d'une couleur

  • « Imagick::colorFloodfillImage
  • Imagick::paintTransparentImage »
  • PHP Manual
  • Imagick
  • Change les pixels qui sont d'une couleur

Imagick::paintOpaqueImage

(PECL imagick 2.0.0)

Imagick::paintOpaqueImage — Change les pixels qui sont d'une couleur

Description

bool Imagick::paintOpaqueImage ( mixed $target , mixed $fill , float $fuzz [, int $channel = Imagick::CHANNEL_ALL ] )

Change les pixels qui correspondent à une couleur en une couleur de remplissage.

Liste de paramètres

target

La couleur cible, avec son opacité. Un objet ImagickPixel ou bien une chaîne représentant la couleur cible.

fill

Un objet ImagickPixel ou une chaîne représentant une couleur de remplissage.

fuzz

Ce paramètre indique la tolérance qui permet de considérer que deux couleurs sont identiques.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
2.1.0 | Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.


Remplit les pixels avec une couleur

  • « Imagick::paintOpaqueImage
  • Imagick::pingImage »
  • PHP Manual
  • Imagick
  • Remplit les pixels avec une couleur

Imagick::paintTransparentImage

(PECL imagick 2.0.0)

Imagick::paintTransparentImage — Remplit les pixels avec une couleur

Description

bool Imagick::paintTransparentImage ( mixed $target , float $alpha , float $fuzz )

Change les pixels qui correspondent à une couleur en une couleur de remplissage.

Liste de paramètres

target

La couleur cible, avec son opacité.

alpha

Le niveau de transparence : 1.0 est totalement opaque, et 0 est totalement transparent.

fuzz

Ce paramètre indique la tolérance qui permet de considérer que deux couleurs sont identiques.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
2.1.0 | Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.


Lit des attributs simples sans ouvrir une image

  • « Imagick::paintTransparentImage
  • Imagick::pingImageBlob »
  • PHP Manual
  • Imagick
  • Lit des attributs simples sans ouvrir une image

Imagick::pingImage

(PECL imagick 2.0.0)

Imagick::pingImage — Lit des attributs simples sans ouvrir une image

Description

bool Imagick::pingImage ( string $filename )

Cette méthode peut être utilisée pour obtenir les dimensions de l'image sans lire toute l'image en mémoire.

Liste de paramètres

filename

Le nom du fichier qui contient l'image.

Valeurs de retour

Retourne TRUE en cas de succès.


Lit rapidement les attributs

  • « Imagick::pingImage
  • Imagick::pingImageFile »
  • PHP Manual
  • Imagick
  • Lit rapidement les attributs

Imagick::pingImageBlob

(PECL imagick 2.0.0)

Imagick::pingImageBlob — Lit rapidement les attributs

Description

bool Imagick::pingImageBlob ( string $image )

Cette méthode peut être utilisée pour obtenir les dimensions de l'image sans lire toute l'image en mémoire. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

image

Une chaîne contenant l'image.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::pingImageBlob()

Récupère une image depuis une chaîne

<?php
/* Lit le contenu de l'image */
$image = file_get_contents("test.jpg");

/* Crée un nouvel objet imagick */
$im = new Imagick();

/* Passe la chaîne à l'objet imagick */
$im->pingImageBlob($image);

/* Affiche les dimensions de l'image */
echo $im->getImageWidth() . 'x' . $im->getImageHeight();
?>

Voir aussi

  • Imagick::pingImage() - Lit des attributs simples sans ouvrir une image
  • Imagick::pingImageFile() - Lit les attributs simples d'une image
  • Imagick::readImage() - Lit une image depuis un fichier
  • Imagick::readImageBlob() - Lit une image depuis une chaîne binaire
  • Imagick::readImageFile() - Lit une image à partir d'une ressource fichier


Lit les attributs simples d'une image

  • « Imagick::pingImageBlob
  • Imagick::polaroidImage »
  • PHP Manual
  • Imagick
  • Lit les attributs simples d'une image

Imagick::pingImageFile

(PECL imagick 2.0.0)

Imagick::pingImageFile — Lit les attributs simples d'une image

Description

bool Imagick::pingImageFile ( resource $filehandle [, string $fileName ] )

Cette méthode peut être utilisée pour connaître les dimensions d'une image, sans lire toute l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

filehandle

Un flux ouvert sur une image.

fileName

Le nom du fichier d'image, optionnellement.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::pingImageFile()

Ouverture d'une image distante.

<?php
/* Ouverture d'une image distante */
$fp = fopen("http://example.com/test.jpg");

/* Création d'un nouvel objet imagick */
$im = new Imagick();

/* Passe le gestionnaire à imagick */
$im->pingImageFile($fp);
?>

Voir aussi

  • Imagick::pingImage() - Lit des attributs simples sans ouvrir une image
  • Imagick::pingImageBlob() - Lit rapidement les attributs
  • Imagick::readImage() - Lit une image depuis un fichier
  • Imagick::readImageBlob() - Lit une image depuis une chaîne binaire
  • Imagick::readImageFile() - Lit une image à partir d'une ressource fichier


Simule une photo Polaroid

  • « Imagick::pingImageFile
  • Imagick::posterizeImage »
  • PHP Manual
  • Imagick
  • Simule une photo Polaroid

Imagick::polaroidImage

(PECL imagick 2.0.0)

Imagick::polaroidImage — Simule une photo Polaroid

Description

bool Imagick::polaroidImage ( ImagickDraw $properties , float $angle )

Simule une photo Polaroid. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.

Liste de paramètres

properties

Les propriétés Polaroid

angle

L'angle Polaroid

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::polaroidImage()

Un exemple d'utilisation de Imagick::polaroidImage()

<?php
/* Création de l'objet */
$image = new Imagick('source.png');

/* Définit l'opacité */
$image->polaroidImage(new ImagickDraw(), 25);

/* Affiche l'image */
header('Content-type: image/png');
echo $image;

?>


Réduit une image à un nombre limité de couleurs

  • « Imagick::polaroidImage
  • Imagick::previewImages »
  • PHP Manual
  • Imagick
  • Réduit une image à un nombre limité de couleurs

Imagick::posterizeImage

(PECL imagick 2.0.0)

Imagick::posterizeImage — Réduit une image à un nombre limité de couleurs

Description

bool Imagick::posterizeImage ( int $levels , bool $dither )

Réduit une image à un nombre limité de couleurs.

Liste de paramètres

levels

dither

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::posterizeImage()

<?php
function posterizeImage($imagePath, $posterizeType, $numberLevels) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->posterizeImage($numberLevels, $posterizeType);
    $imagick->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

posterizeImage($imagePath, \Imagick::DITHERMETHOD_RIEMERSMA, 8);

?>


Teste rapidement différents paramètres pour un traitement d'images

  • « Imagick::posterizeImage
  • Imagick::previousImage »
  • PHP Manual
  • Imagick
  • Teste rapidement différents paramètres pour un traitement d'images

Imagick::previewImages

(PECL imagick 2.0.0)

Imagick::previewImages — Teste rapidement différents paramètres pour un traitement d'images

Description

bool Imagick::previewImages ( int $preview )

Crée un panorama de 9 miniatures de l'image spécifiée avec un traitement appliqué à différents niveaux. Cela est pratique pour tester rapidement différents paramètres d'un filtre.

Liste de paramètres

preview

Type de prévisualisation. Voyez la liste des constantes de prévisualisation

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Passe à l'image précédente dans une séquence d'images

  • « Imagick::previewImages
  • Imagick::profileImage »
  • PHP Manual
  • Imagick
  • Passe à l'image précédente dans une séquence d'images

Imagick::previousImage

(PECL imagick 2.0.0)

Imagick::previousImage — Passe à l'image précédente dans une séquence d'images

Description

bool Imagick::previousImage ( void )

Passe à l'image précédente dans une séquence d'images Imagick.

Valeurs de retour

Retourne TRUE en cas de succès.


Ajoute ou retire un profil d'une image

  • « Imagick::previousImage
  • Imagick::quantizeImage »
  • PHP Manual
  • Imagick
  • Ajoute ou retire un profil d'une image

Imagick::profileImage

(PECL imagick 2.0.0)

Imagick::profileImage — Ajoute ou retire un profil d'une image

Description

bool Imagick::profileImage ( string $name , string $profile )

Ajoute ou retire un profil ICC, IPTC ou générique d'une image. Si le profil est NULL il est retiré de l'image, et sinon, ajouté. Utilisez le nom de '*' et un profil NULL pour retirer tous les profils d'une image.

Liste de paramètres

name

profile

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Analyse les couleurs dans une référence d'image

  • « Imagick::profileImage
  • Imagick::quantizeImages »
  • PHP Manual
  • Imagick
  • Analyse les couleurs dans une référence d'image

Imagick::quantizeImage

(PECL imagick 2.0.0)

Imagick::quantizeImage — Analyse les couleurs dans une référence d'image

Description

bool Imagick::quantizeImage ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )

Liste de paramètres

numberColors

colorspace

treedepth

dither

measureError

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::quantizeImage()

<?php
function quantizeImage($imagePath, $numberColors, $colorSpace, $treeDepth, $dither) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->quantizeImage($numberColors, $colorSpace, $treeDepth, $dither, false);
    $imagick->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Analyse les couleurs d'une séquence d'images

  • « Imagick::quantizeImage
  • Imagick::queryFontMetrics »
  • PHP Manual
  • Imagick
  • Analyse les couleurs d'une séquence d'images

Imagick::quantizeImages

(PECL imagick 2.0.0)

Imagick::quantizeImages — Analyse les couleurs d'une séquence d'images

Description

bool Imagick::quantizeImages ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )

Liste de paramètres

numberColors

colorspace

treedepth

dither

measureError

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne un tableau représentant les dimensions de la police

  • « Imagick::quantizeImages
  • Imagick::queryFonts »
  • PHP Manual
  • Imagick
  • Retourne un tableau représentant les dimensions de la police

Imagick::queryFontMetrics

(PECL imagick 2.0.0)

Imagick::queryFontMetrics — Retourne un tableau représentant les dimensions de la police

Description

array Imagick::queryFontMetrics ( ImagickDraw $properties , string $text [, bool $multiline ] )

Retourne un tableau multi-dimensionnel représentant les dimensions de la police.

Liste de paramètres

properties

Un objet ImagickDraw contenant des attributs de police

text

Le texte

multiline

Un paramètre multiligne. S'il est laissé vide, il est auto-détecté.

Valeurs de retour

Retourne un tableau de plusieurs dimensions contenant les dimensions de la police.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::queryFontMetrics()

Demande les dimensions du texte, et affiche les valeurs à l'écran

<?php
/* Crée un nouvel objet Imagick */
$im = new Imagick();

/* Crée un objet ImagickDraw */
$draw = new ImagickDraw();

/* Configure la police */
$draw->setFont('/path/to/font.ttf');

/* Affiche les dimensions de la police, auto-détecte le multiligne */
var_dump($im->queryFontMetrics($draw, "Hello World!"));
?>


Retourne la liste de polices configurés

  • « Imagick::queryFontMetrics
  • Imagick::queryFormats »
  • PHP Manual
  • Imagick
  • Retourne la liste de polices configurés

Imagick::queryFonts

(PECL imagick 2.0.0)

Imagick::queryFonts — Retourne la liste de polices configurés

Description

array Imagick::queryFonts ([ string $pattern = "*" ] )

Retourne la liste de polices configurés pour Imagick.

Liste de paramètres

pattern

Le modèle de recherche

Valeurs de retour

Retourne un tableau contenant les polices configurées.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::queryFonts()

<?php
        $output = '';
        $output .= "Fonts that match 'Helvetica*' are:<br/>";

        $fontList = \Imagick::queryFonts("Helvetica*");

        foreach ($fontList as $fontName) {
            $output .= '<li>'. $fontName."</li>";
        }

        return $output;

?>


Retourne les formats supportés par Imagick

  • « Imagick::queryFonts
  • Imagick::radialBlurImage »
  • PHP Manual
  • Imagick
  • Retourne les formats supportés par Imagick

Imagick::queryFormats

(PECL imagick 2.0.0)

Imagick::queryFormats — Retourne les formats supportés par Imagick

Description

array Imagick::queryFormats ([ string $pattern = "*" ] )

Retourne les formats supportés par Imagick.

Liste de paramètres

pattern

Valeurs de retour

Retourne un tableau contenant les formats supportés par Imagick.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::queryFormats()

<?php
    function render() {
        $output = "";
        $input = \Imagick::queryformats();
        $columns = 6;

        $output .= "<table border='2'>";

        for ($i=0; $i < count($input); $i += $columns) {
            $output .= "<tr>";
            for ($c=0; $c<$columns; $c++) {
                $output .= "<td>";
                if (($i + $c) <  count($input)) {
                    $output .= $input[$i + $c];
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

?>


Flou radial d'une image

  • « Imagick::queryFormats
  • Imagick::raiseImage »
  • PHP Manual
  • Imagick
  • Flou radial d'une image

Imagick::radialBlurImage

(PECL imagick 2.0.0)

Imagick::radialBlurImage — Flou radial d'une image

Description

bool Imagick::radialBlurImage ( float $angle [, int $channel = Imagick::CHANNEL_ALL ] )

Flou radial d'une image.

Liste de paramètres

angle

channel

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::radialBlurImage()

<?php
function radialBlurImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    //Blur 3 times with different radii
    $imagick->radialBlurImage(3);
    $imagick->radialBlurImage(5);
    $imagick->radialBlurImage(7);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Crée un effet 3D de bouton

  • « Imagick::radialBlurImage
  • Imagick::randomThresholdImage »
  • PHP Manual
  • Imagick
  • Crée un effet 3D de bouton

Imagick::raiseImage

(PECL imagick 2.0.0)

Imagick::raiseImage — Crée un effet 3D de bouton

Description

bool Imagick::raiseImage ( int $width , int $height , int $x , int $y , bool $raise )

Crée un effet 3D de bouton, en éclairant et assombrissant les bords de l'image. Les membres width et height de raise_info définissent la largeur et la hauteur de l'effet vertical.

Liste de paramètres

width

height

x

y

raise

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::raiseImage()

<?php
function raiseImage($imagePath, $width, $height, $x, $y, $raise) {
    $imagick = new \Imagick(realpath($imagePath));

    //x et y ne font rien ? ;)
    $imagick->raiseImage($width, $height, $x, $y, $raise);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Crée une image en deux couleurs, à haut contraste

  • « Imagick::raiseImage
  • Imagick::readImage »
  • PHP Manual
  • Imagick
  • Crée une image en deux couleurs, à haut contraste

Imagick::randomThresholdImage

(PECL imagick 2.0.0)

Imagick::randomThresholdImage — Crée une image en deux couleurs, à haut contraste

Description

bool Imagick::randomThresholdImage ( float $low , float $high [, int $channel = Imagick::CHANNEL_ALL ] )

Change la valeur de chaque pixel en fonction de l'intensité de la couleur, et la compare à un seuil. Le résultat est une image en deux couleurs, à haut contraste. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

low

Le point inférieur.

high

Le point supérieur.

channel

Fournit une constante de canal valide pour votre mode de canal. Pour utiliser plus d'un canal, combinez les constantes de type de canal en utilisant les opérateurs de bits. Reportez-vous à la liste des constantes de canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::randomThresholdImage()

<?php
function randomThresholdimage($imagePath, $lowThreshold, $highThreshold, $channel) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->randomThresholdimage(
        $lowThreshold * \Imagick::getQuantum(),
        $highThreshold * \Imagick::getQuantum(),
        $channel
    );
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Lit une image depuis un fichier

  • « Imagick::randomThresholdImage
  • Imagick::readImageBlob »
  • PHP Manual
  • Imagick
  • Lit une image depuis un fichier

Imagick::readImage

(PECL imagick 0.9.0-0.9.9)

Imagick::readImage — Lit une image depuis un fichier

Description

bool Imagick::readImage ( string $filename )

Lit une image depuis un fichier.

Liste de paramètres

filename

Valeurs de retour

Retourne TRUE en cas de succès.


Lit une image depuis une chaîne binaire

  • « Imagick::readImage
  • Imagick::readImageFile »
  • PHP Manual
  • Imagick
  • Lit une image depuis une chaîne binaire

Imagick::readImageBlob

(PECL imagick 2.0.0)

Imagick::readImageBlob — Lit une image depuis une chaîne binaire

Description

bool Imagick::readImageBlob ( string $image [, string $filename ] )

Lit une image depuis une chaîne binaire.

Liste de paramètres

image

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::readImageBlob()

<?php
function readImageBlob() {
    $base64 = "iVBORw0KGgoAAAANSUhEUgAAAM0AAAD
 NCAMAAAAsYgRbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5c
 cllPAAAABJQTFRF3NSmzMewPxIG//ncJEJsldTou1jHgAAAARBJREFUeNrs2EEK
 gCAQBVDLuv+V20dENbMY831wKz4Y/VHb/5RGQ0NDQ0NDQ0NDQ0NDQ0NDQ
 0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0PzMWtyaGhoaGhoaGhoaGhoaGhoxtb0QGho
 aGhoaGhoaGhoaGhoaMbRLEvv50VTQ9OTQ5OpyZ01GpM2g0bfmDQaL7S+ofFC6x
 v3ZpxJiywakzbvd9r3RWPS9I2+MWk0+kbf0Hih9Y17U0nTHibrDDQ0NDQ0NDQ0
 NDQ0NDQ0NTXbRSL/AK72o6GhoaGhoRlL8951vwsNDQ0NDQ1NDc0WyHtDTEhD
 Q0NDQ0NTS5MdGhoaGhoaGhoaGhoaGhoaGhoaGhoaGposzSHAAErMwwQ2HwRQ
 AAAAAElFTkSuQmCC";

    $imageBlob = base64_decode($base64);

    $imagick = new Imagick();
    $imagick->readImageBlob($imageBlob);

    header("Content-Type: image/png");
    echo $imageBlob;
}

?>


Lit une image à partir d'une ressource fichier

  • « Imagick::readImageBlob
  • Imagick::readimages »
  • PHP Manual
  • Imagick
  • Lit une image à partir d'une ressource fichier

Imagick::readImageFile

(PECL imagick 2.0.0)

Imagick::readImageFile — Lit une image à partir d'une ressource fichier

Description

bool Imagick::readImageFile ( resource $filehandle [, string $fileName = null ] )

Lit une image à partir d'une ressource fichier.

Liste de paramètres

filehandle

fileName

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Description

  • « Imagick::readImageFile
  • Imagick::recolorImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::readimages

(No version information available, might only be in Git)

Imagick::readimages — Description

Description

public Imagick Imagick::readImages ( string $filenames )

Reads image from an array of filenames. All the images are held in a single Imagick object.

Liste de paramètres

filenames

Valeurs de retour

The Imagick object that contains all the images.


Recolore l'image

  • « Imagick::readimages
  • Imagick::reduceNoiseImage »
  • PHP Manual
  • Imagick
  • Recolore l'image

Imagick::recolorImage

(No version information available, might only be in Git)

Imagick::recolorImage — Recolore l'image

Description

bool Imagick::recolorImage ( array $matrix )

Traduit, met à l'échelle, cisaille et fait pivoter les couleurs de l'image. Cette méthode supporte les matrices variables de mise à l'échelle, mais normalement, la matrice 5x5 est utilisée pour RGBA et une matrice 6x6 est utilisée pour CMYK. La dernière ligne doit contenir les valeurs normalisées. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

matrix

La matrice contenant les valeurs des couleurs.

Valeurs de retour

Retourne TRUE en cas de succès.

Voir aussi

  • Imagick::displayImage() - Affiche une image

Exemples

Exemple #1 Exemple avec Imagick::recolorImage()

<?php
function recolorImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $remapColor = [ 1, 0, 0,
        0, 0, 1,
        0, 1, 0,];

//$remapColor = [
//    1.438, -0.122, -0.016,  0, 0, -0.03,
//    -0.062,  1.378, -0.016,  0, 0,  0.05,
//    -0.062, -0.122, 1.483,   0, 0, -0.02,
//];

    @$imagick->recolorImage($remapColor);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Adoucit les contours d'une image

  • « Imagick::recolorImage
  • Imagick::remapImage »
  • PHP Manual
  • Imagick
  • Adoucit les contours d'une image

Imagick::reduceNoiseImage

(PECL imagick 2.0.0)

Imagick::reduceNoiseImage — Adoucit les contours d'une image

Description

bool Imagick::reduceNoiseImage ( float $radius )

Adoucit les contours d'une image, tout en préservant les informations de bords. L'algorithme fonctionne en remplaçant chaque pixel avec la valeur la plus proche de ses voisins. Un voisin est défini par un rayon. En utilisant un rayon de 0, Imagick::reduceNoiseImage() sélectionne un rayon automatiquement.

Liste de paramètres

radius

Le rayon de définition d'un voisin.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::reduceNoiseImage()

<?php
function reduceNoiseImage($imagePath, $reduceNoise) {
    $imagick = new \Imagick(realpath($imagePath));
    @$imagick->reduceNoiseImage($reduceNoise);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Reconfigure les couleurs de l'image

  • « Imagick::reduceNoiseImage
  • Imagick::removeImage »
  • PHP Manual
  • Imagick
  • Reconfigure les couleurs de l'image

Imagick::remapImage

(No version information available, might only be in Git)

Imagick::remapImage — Reconfigure les couleurs de l'image

Description

public bool Imagick::remapImage ( Imagick $replacement , int $DITHER )

Remplace les couleurs de l'image avec celles définies par le paramètre replacement. Les couleurs sont remplacées avec les couleurs les plus proches possibles. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.5 ou supérieur.

Liste de paramètres

replacement

Un objet Imagick contenant les couleurs de remplacement.

DITHER

Référez-vous à la liste des constantes de la méthode dither.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retire une image de la liste

  • « Imagick::remapImage
  • Imagick::removeImageProfile »
  • PHP Manual
  • Imagick
  • Retire une image de la liste

Imagick::removeImage

(PECL imagick 2.0.0)

Imagick::removeImage — Retire une image de la liste

Description

bool Imagick::removeImage ( void )

Retire une image de la liste.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Supprime le profil de l'image et le retourne

  • « Imagick::removeImage
  • Imagick::render »
  • PHP Manual
  • Imagick
  • Supprime le profil de l'image et le retourne

Imagick::removeImageProfile

(PECL imagick 2.0.0)

Imagick::removeImageProfile — Supprime le profil de l'image et le retourne

Description

string Imagick::removeImageProfile ( string $name )

Supprime le profil de l'image et le retourne.

Liste de paramètres

name

Valeurs de retour

Retourne une chaîne contenant le profil de l'image.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Affiche toute les commandes de dessins précédentes

  • « Imagick::removeImageProfile
  • Imagick::resampleImage »
  • PHP Manual
  • Imagick
  • Affiche toute les commandes de dessins précédentes

Imagick::render

(PECL imagick 2.0.0)

Imagick::render — Affiche toute les commandes de dessins précédentes

Description

bool Imagick::render ( void )

Affiche toute les commandes de dessins précédentes.

Valeurs de retour

Retourne TRUE en cas de succès.


Rééchantillonne l'image

  • « Imagick::render
  • Imagick::resetImagePage »
  • PHP Manual
  • Imagick
  • Rééchantillonne l'image

Imagick::resampleImage

(PECL imagick 2.0.0)

Imagick::resampleImage — Rééchantillonne l'image

Description

bool Imagick::resampleImage ( float $x_resolution , float $y_resolution , int $filter , float $blur )

Rééchantillonne l'image à la résolution désirée.

Liste de paramètres

x_resolution

y_resolution

filter

blur

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::resampleImage()

<?php
function resampleImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->resampleImage(200, 200, \Imagick::FILTER_LANCZOS, 1);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Réinitialise la page de l'image

  • « Imagick::resampleImage
  • Imagick::resizeImage »
  • PHP Manual
  • Imagick
  • Réinitialise la page de l'image

Imagick::resetImagePage

(No version information available, might only be in Git)

Imagick::resetImagePage — Réinitialise la page de l'image

Description

bool Imagick::resetImagePage ( string $page )

La définition de la page sous la forme d'une chaîne de caractères. La chaîne est au format WxH+x+y. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

page

La définition de la page. Par exemple, 7168x5147+0+0.

Valeurs de retour

Retourne TRUE en cas de succès.


Redimensionne une image

  • « Imagick::resetImagePage
  • Imagick::rollImage »
  • PHP Manual
  • Imagick
  • Redimensionne une image

Imagick::resizeImage

(PECL imagick 2.0.0)

Imagick::resizeImage — Redimensionne une image

Description

bool Imagick::resizeImage ( int $columns , int $rows , int $filter , float $blur [, bool $bestfit = false ] )

Redimensionne une image aux dimensions désirées, avec un filtre.

Note: Le comportement du paramètre bestfit a changé avec Imagick 3.0.0. Avant cette version, fournir les dimensions 400x400 à une image de dimensions 200x150 faisait que la partie gauche était inchangée. Avec Imagick 3.0.0 et suivants, l'image est réduite à la taille 400x300, sachant que c'est le meilleur résultat pour ces dimensions. Si le paramètre bestfit est utilisé, la largeur et la hauteur doivent être fournies.

Liste de paramètres

columns

La largeur de l'image cible.

rows

La hauteur de l'image cible.

filter

Une constante de filtre.

blur

Le facteur de flou, où > 1 est flou, et < 1 est net.

bestfit

Paramètre optionnel de fit.

Valeurs de retour

Retourne TRUE en cas de succès.

Historique

Version | Description
2.1.0 | Ajout d'un paramètre optionnel de fit. Cette méthode supporte maintenant la mise à l'échelle proportionnelle. Passez zéro comme valeur de paramètre pour une mise à l'échelle proportionnelle.

Exemples

Exemple #1 Exemple avec Imagick::resizeImage()

<?php
function resizeImage($imagePath, $width, $height, $filterType, $blur, $bestFit, $cropZoom) {
    // Le facteur de flou où &gt; 1 correspond à totalement flou, et &lt; 1 correspond à fort.
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->resizeImage($width, $height, $filterType, $blur, $bestFit);

    $cropWidth = $imagick->getImageWidth();
    $cropHeight = $imagick->getImageHeight();

    if ($cropZoom) {
        $newWidth = $cropWidth / 2;
        $newHeight = $cropHeight / 2;

        $imagick->cropimage(
            $newWidth,
            $newHeight,
            ($cropWidth - $newWidth) / 2,
            ($cropHeight - $newHeight) / 2
        );

        $imagick->scaleimage(
            $imagick->getImageWidth() * 4,
            $imagick->getImageHeight() * 4
        );
    }

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Décale une image

  • « Imagick::resizeImage
  • Imagick::rotateImage »
  • PHP Manual
  • Imagick
  • Décale une image

Imagick::rollImage

(PECL imagick 2.0.0)

Imagick::rollImage — Décale une image

Description

bool Imagick::rollImage ( int $x , int $y )

Décale une image, d'un vecteur x, y.

Liste de paramètres

x

Le décalage en abscisse.

y

Le décalage en ordonnée.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::rollImage()

<?php
function rollImage($imagePath, $rollX, $rollY) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->rollimage($rollX, $rollY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Tourne une image

  • « Imagick::rollImage
  • Imagick::rotationalBlurImage »
  • PHP Manual
  • Imagick
  • Tourne une image

Imagick::rotateImage

(PECL imagick 2.0.0)

Imagick::rotateImage — Tourne une image

Description

bool Imagick::rotateImage ( mixed $background , float $degrees )

Tourne une image d'un nombre de degrés spécifié par degrees. Les triangles vides ainsi créés sont remplis avec la couleur de fond.

Liste de paramètres

background

La couleur de fond

degrees

Angle de rotation, en degrés. L'angle de rotation est interprété comme le nombre de dégrés pour la rotation dans le sens des aiguilles d'une montre.

Valeurs de retour

Retourne TRUE en cas de succès.

Historique

Version | Description
2.1.0 | Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.

Exemples

Exemple #1 Exemple avec Imagick::rotateImage()

<?php
function rotateImage($imagePath, $angle, $color) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->rotateimage($color, $angle);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::rotateImage
  • Imagick::roundCorners »
  • PHP Manual
  • Imagick
  • Description

Imagick::rotationalBlurImage

(No version information available, might only be in Git)

Imagick::rotationalBlurImage — Description

Description

public void Imagick::rotationalBlurImage ( string $angle [, string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )

Rotational blurs an image.

Liste de paramètres

angle

The angle to apply the blur over.

CHANNEL

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Exemples

Exemple #1 Imagick::rotationalBlurImage()

<?php
function rotationalBlurImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->rotationalBlurImage(3);
    $imagick->rotationalBlurImage(5);
    $imagick->rotationalBlurImage(7);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Arrondit les coins d'un image

  • « Imagick::rotationalBlurImage
  • Imagick::sampleImage »
  • PHP Manual
  • Imagick
  • Arrondit les coins d'un image

Imagick::roundCorners

(PECL imagick 2.0.0)

Imagick::roundCorners — Arrondit les coins d'un image

Description

bool Imagick::roundCorners ( float $x_rounding , float $y_rounding [, float $stroke_width = 10 [, float $displace = 5 [, float $size_correction = -6 ]]] )

Arrondit les coins d'une image. Les deux premiers paramètres contrôlent le niveau d'arrondi, et le troisième peut être utilisé pour affiner ce processus. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

x_rounding

Arrondi en x

y_rounding

Arrondi en y

stroke_width

Largeur du trait

displace

Déplacement de l'image

size_correction

Correction de taille

Exemples

Exemple #1 Exemple avec Imagick::roundCorners():

Arrondit les coins d'une image.

<?php

$image = new Imagick();
$image->newPseudoImage(100, 100, "magick:rose");
$image->setImageFormat("png");

$image->roundCorners(5,3);
$image->writeImage("rounded.png");
?>

Valeurs de retour

Retourne TRUE en cas de succès.


Met à l'échelle une image avec échantillonnage de pixels

  • « Imagick::roundCorners
  • Imagick::scaleImage »
  • PHP Manual
  • Imagick
  • Met à l'échelle une image avec échantillonnage de pixels

Imagick::sampleImage

(PECL imagick 2.0.0)

Imagick::sampleImage — Met à l'échelle une image avec échantillonnage de pixels

Description

bool Imagick::sampleImage ( int $columns , int $rows )

Met à l'échelle une image aux dimensions désirée, à l'aide de la méthode d'échantillonnage de pixels. Contrairement aux autres méthodes, cette méthode n'introduit pas de nouvelle couleur dans l'image.

Liste de paramètres

columns

rows

Valeurs de retour

Retourne TRUE en cas de succès.


Met à l'échelle la taille de l'image

  • « Imagick::sampleImage
  • Imagick::segmentImage »
  • PHP Manual
  • Imagick
  • Met à l'échelle la taille de l'image

Imagick::scaleImage

(PECL imagick 2.0.0)

Imagick::scaleImage — Met à l'échelle la taille de l'image

Description

bool Imagick::scaleImage ( int $cols , int $rows [, bool $bestfit = false ] )

Met à l'échelle la taille de l'image, aux dimensions voulues. Les autres paramètres seront calculés si 0 est pas dans l'un d'entre eux.

Note: Le comportement du paramètre bestfit a changé avec Imagick 3.0.0. Avant cette version, fournir les dimensions 400x400 à une image de dimensions 200x150 faisait que la partie gauche était inchangée. Avec Imagick 3.0.0 et suivants, l'image est réduite à la taille 400x300, sachant que c'est le meilleur résultat pour ces dimensions. Si le paramètre bestfit est utilisé, la largeur et la hauteur doivent être fournies.

Liste de paramètres

cols

rows

bestfit

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
2.1.0 | Ajout d'un paramètre optionnel de fit. Cette méthode supporte désormais la mise à l'échelle proportionnelle. Passez zéro dans l'un des paramètres pour activer cette option.

Exemples

Exemple #1 Exemple avec Imagick::scaleImage()

<?php
function scaleImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->scaleImage(150, 150, true);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Segmente une image

  • « Imagick::scaleImage
  • Imagick::selectiveBlurImage »
  • PHP Manual
  • Imagick
  • Segmente une image

Imagick::segmentImage

(No version information available, might only be in Git)

Imagick::segmentImage — Segmente une image

Description

public bool Imagick::segmentImage ( int $COLORSPACE , float $cluster_threshold , float $smooth_threshold [, bool $verbose = false ] )

Analyse l'image et identifie les unités similaires. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.5 ou supérieur.

Liste de paramètres

COLORSPACE

Une constante parmi les constantes COLORSPACE.

cluster_threshold

Un pourcentage décrivant le nombre minimal de pixels contenus dans l'hexedra avant qu'il ne soit considéré comme valide.

smooth_threshold

Élimine le bruit depuis l'histogramme.

verbose

Si l'on doit ou non afficher les informations détaillées sur la reconnaissance des classes.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Imagick::segmentImage()

<?php
function segmentImage($imagePath, $colorSpace, $clusterThreshold, $smoothThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->segmentImage($colorSpace, $clusterThreshold, $smoothThreshold);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

segmentImage($imagePath, \Imagick::COLORSPACE_RGB, 5, 5);

?>


Description

  • « Imagick::segmentImage
  • Imagick::separateImageChannel »
  • PHP Manual
  • Imagick
  • Description

Imagick::selectiveBlurImage

(No version information available, might only be in Git)

Imagick::selectiveBlurImage — Description

Description

public void Imagick::selectiveBlurImage ( float $radius , float $sigma , float $threshold , int $CHANNEL )

Selectively blur an image within a contrast threshold. It is similar to the unsharpen mask that sharpens everything with contrast above a certain threshold.

Liste de paramètres

radius

sigma

threshold

CHANNEL

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Exemples

Exemple #1 Imagick::selectiveBlurImage()

<?php
function selectiveBlurImage($imagePath, $radius, $sigma, $threshold, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->selectiveBlurImage($radius, $sigma, $threshold, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sépare un canal d'une image

  • « Imagick::selectiveBlurImage
  • Imagick::sepiaToneImage »
  • PHP Manual
  • Imagick
  • Sépare un canal d'une image

Imagick::separateImageChannel

(PECL imagick 2.0.0)

Imagick::separateImageChannel — Sépare un canal d'une image

Description

bool Imagick::separateImageChannel ( int $channel )

Sépare un canal d'une image, et retourne une image en niveaux de gris. Un canal est un composant de couleur particulier, de chaque pixel de l'image.

Liste de paramètres

channel

Le canal à retourner. Pour les espaces de couleurs différentes de RGB, vous pouvez continuer d'utiliser les constantes CHANNEL_RED, CHANNEL_GREEN, CHANNEL_BLUE pour indiquer le premier, second ou troisième canal.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::separateImageChannel()

<?php
function separateImageChannel($imagePath, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->separateimagechannel($channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

separateImageChannel($imagePath, \Imagick::CHANNEL_GREEN);

?>


Passe une image en tons sépia

  • « Imagick::separateImageChannel
  • Imagick::setBackgroundColor »
  • PHP Manual
  • Imagick
  • Passe une image en tons sépia

Imagick::sepiaToneImage

(PECL imagick 2.0.0)

Imagick::sepiaToneImage — Passe une image en tons sépia

Description

bool Imagick::sepiaToneImage ( float $threshold )

Applique un effet spécial à une image, similaire à l'effet de tons sépia, obtenus dans les chambres noires de photographie. Le seuil va de 0 jusqu'à QuantumRange et est une mesure de l'intervalle de tons sépia. Une valeur raisonnable est 80.

Liste de paramètres

threshold

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::sepiaToneImage()

<?php
function sepiaToneImage($imagePath, $sepia) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->sepiaToneImage($sepia);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Configure la couleur de fond par défaut

  • « Imagick::sepiaToneImage
  • Imagick::setColorspace »
  • PHP Manual
  • Imagick
  • Configure la couleur de fond par défaut

Imagick::setBackgroundColor

(PECL imagick 2.0.0)

Imagick::setBackgroundColor — Configure la couleur de fond par défaut

Description

bool Imagick::setBackgroundColor ( mixed $background )

Configure la couleur de fond par défaut.

Liste de paramètres

background

Valeurs de retour

Retourne TRUE en cas de succès.

Historique

Version | Description
2.1.0 | Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.


Définit l'espace de couleurs

  • « Imagick::setBackgroundColor
  • Imagick::setCompression »
  • PHP Manual
  • Imagick
  • Définit l'espace de couleurs

Imagick::setColorspace

(No version information available, might only be in Git)

Imagick::setColorspace — Définit l'espace de couleurs

Description

bool Imagick::setColorspace ( int $COLORSPACE )

Définit la valeur globale de l'espace de couleurs pour l'objet. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.5.7 ou supérieur.

Liste de paramètres

COLORSPACE

Une constante parmi les constantes COLORSPACE.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure le type de compression de l'objet

  • « Imagick::setColorspace
  • Imagick::setCompressionQuality »
  • PHP Manual
  • Imagick
  • Configure le type de compression de l'objet

Imagick::setCompression

(PECL imagick 2.0.0)

Imagick::setCompression — Configure le type de compression de l'objet

Description

bool Imagick::setCompression ( int $compression )

Configure le type de compression de l'objet.

Liste de paramètres

compression

Valeurs de retour

Retourne TRUE en cas de succès.


Configure la compression par défaut de l'objet

  • « Imagick::setCompression
  • Imagick::setFilename »
  • PHP Manual
  • Imagick
  • Configure la compression par défaut de l'objet

Imagick::setCompressionQuality

(PECL imagick 0.9.10-0.9.9)

Imagick::setCompressionQuality — Configure la compression par défaut de l'objet

Description

bool Imagick::setCompressionQuality ( int $quality )

Configure la compression par défaut de l'objet.

Attention

Cette méthode ne fonctionne qu'avec les nouvelles images, i.e. celles créées avec la méthode Imagick::newPseudoImage. Pour les images existantes, vous devriez utiliser la méthode Imagick::setImageCompressionQuality().

Liste de paramètres

quality

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::setCompressionQuality()

<?php
function setCompressionQuality($imagePath, $quality) {

    $backgroundImagick = new \Imagick(realpath($imagePath));
    $imagick = new \Imagick();
    $imagick->setCompressionQuality($quality);
    $imagick->newPseudoImage(
        $backgroundImagick->getImageWidth(),
        $backgroundImagick->getImageHeight(),
        'canvas:white'
    );

    $imagick->compositeImage(
        $backgroundImagick,
        \Imagick::COMPOSITE_ATOP,
        0,
        0
    );

    $imagick->setFormat("jpg");
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Configure le nom du fichier d'image avant d'y accéder

  • « Imagick::setCompressionQuality
  • Imagick::setFirstIterator »
  • PHP Manual
  • Imagick
  • Configure le nom du fichier d'image avant d'y accéder

Imagick::setFilename

(PECL imagick 2.0.0)

Imagick::setFilename — Configure le nom du fichier d'image avant d'y accéder

Description

bool Imagick::setFilename ( string $filename )

Configure le nom du fichier d'image avant d'y accéder.

Liste de paramètres

filename

Valeurs de retour

Retourne TRUE en cas de succès.


Place l'itérateur de Imagick sur la première image

  • « Imagick::setFilename
  • Imagick::setFont »
  • PHP Manual
  • Imagick
  • Place l'itérateur de Imagick sur la première image

Imagick::setFirstIterator

(PECL imagick 2.0.0)

Imagick::setFirstIterator — Place l'itérateur de Imagick sur la première image

Description

bool Imagick::setFirstIterator ( void )

Place l'itérateur de Imagick sur la première image.

Valeurs de retour

Retourne TRUE en cas de succès.


Configure la police

  • « Imagick::setFirstIterator
  • Imagick::setFormat »
  • PHP Manual
  • Imagick
  • Configure la police

Imagick::setFont

(PECL imagick 2.1.0)

Imagick::setFont — Configure la police

Description

bool Imagick::setFont ( string $font )

Configure la police de l'image. Cette méthode est utilisée pour configurer la police utilisée par le pseudoformat : caption. La police doit être configurée dans la configuration d'ImageMagick ou bien, un fichier portant le nom de la police font doit exister. Cette méthode ne doit pas être confondue avec la méthode ImagickDraw::setFont() qui définit la police pour une objet ImagickDraw spécifique. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.

Liste de paramètres

font

Le nom de la police ou le nom du fichier

Valeurs de retour

Retourne TRUE en cas de succès.

Voir aussi

  • Imagick::getFont() - Récupère la police de caractères
  • ImagickDraw::setFont() - Configure la police complète pour les textes
  • ImagickDraw::getFont() - Retourne la police

Exemples

Exemple #1 Exemple avec Imagick::setFont()

Exemple d'utilisation de Imagick::setFont().

<?php
/* Crée un nouvel objet Imagick */
$im = new Imagick();

/* Configure la police de l'objet */
$im->setFont("example.ttf");

/* Crée un nouveau message */
$im->newPseudoImage(100, 100, "caption:Hello");

/* Suite du traitement de l'image */
?>


Configure le format de l'objet Imagick

  • « Imagick::setFont
  • Imagick::setGravity »
  • PHP Manual
  • Imagick
  • Configure le format de l'objet Imagick

Imagick::setFormat

(PECL imagick 2.0.0)

Imagick::setFormat — Configure le format de l'objet Imagick

Description

bool Imagick::setFormat ( string $format )

Configure le format de l'objet Imagick.

Liste de paramètres

format

Valeurs de retour

Retourne TRUE en cas de succès.


Définit la gravité

  • « Imagick::setFormat
  • Imagick::setImage »
  • PHP Manual
  • Imagick
  • Définit la gravité

Imagick::setGravity

(No version information available, might only be in Git)

Imagick::setGravity — Définit la gravité

Description

bool Imagick::setGravity ( int $gravity )

Définit la propriété globale de gravité pour l'objet Imagick. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.

Liste de paramètres

gravity

La propriété de gravité. Referez-vous à la liste des constantes de gravité.

Valeurs de retour

Aucune valeur n'est retournée.


Remplace l'image dans l'objet

  • « Imagick::setGravity
  • Imagick::setImageAlphaChannel »
  • PHP Manual
  • Imagick
  • Remplace l'image dans l'objet

Imagick::setImage

(PECL imagick 2.0.0)

Imagick::setImage — Remplace l'image dans l'objet

Description

bool Imagick::setImage ( Imagick $replace )

Remplace l'image dans la séquence d'images de l'objet.

Liste de paramètres

replace

L'objet Imagick de remplacement

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::setImage()

Un exemple avec Imagick::setImage()

<?php
/* Crée les objets */
$image = new Imagick('source.jpg');
$replace = new Imagick('replace.jpg');

/* source.jpg est remplacé par replace.jpg */
$image->setImage($replace);

/* Affichage de l'image */
header('Content-type: image/jpeg');
echo $image;

?>


Définit le canal alpha de l'image

  • « Imagick::setImage
  • Imagick::setImageArtifact »
  • PHP Manual
  • Imagick
  • Définit le canal alpha de l'image

Imagick::setImageAlphaChannel

(No version information available, might only be in Git)

Imagick::setImageAlphaChannel — Définit le canal alpha de l'image

Description

bool Imagick::setImageAlphaChannel ( int $mode )

Active ou désactive le canal alpha de l'image. Le mode est un parmi les constantes Imagick::ALPHACHANNEL_*. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.

Liste de paramètres

mode

Une constante parmi les constantes Imagick::ALPHACHANNEL_*.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Voir aussi

  • Imagick::setImageMatte() - Configure le canal mate de l'image
  • Les constantes du canal Alpha Imagick


Définit l'artefact de l'image

  • « Imagick::setImageAlphaChannel
  • Imagick::setImageAttribute »
  • PHP Manual
  • Imagick
  • Définit l'artefact de l'image

Imagick::setImageArtifact

(No version information available, might only be in Git)

Imagick::setImageArtifact — Définit l'artefact de l'image

Description

bool Imagick::setImageArtifact ( string $artifact , string $value )

Associe un artefact avec l'image. La différence entre les propriétés de l'image et l'artefact de l'image est que les propriétés sont publiques alors que les artefacts sont privées. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.5.7 ou supérieur.

Liste de paramètres

artifact

Le nom de l'artefact.

value

La valeur de l'artefact.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Voir aussi

  • Imagick::getImageArtifact() - Récupère l'artefact de l'image
  • Imagick::deleteImageArtifact() - Supprime l'artefact d'une image

Exemples

Exemple #1 Exemple avec Imagick::setImageArtifact()

<?php
function setImageArtifact() {

    $src1 = new \Imagick(realpath("./images/artifact/source1.png"));
    $src2 = new \Imagick(realpath("./images/artifact/source2.png"));

    $src2->setImageVirtualPixelMethod(\Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
    $src2->setImageArtifact('compose:args', "1,0,-0.5,0.5");
    $src1->compositeImage($src2, Imagick::COMPOSITE_MATHEMATICS, 0, 0);

    $src1->setImageFormat('png');
    header("Content-Type: image/png");
    echo $src1->getImagesBlob();
}

?>


Description

  • « Imagick::setImageArtifact
  • Imagick::setImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Description

Imagick::setImageAttribute

(No version information available, might only be in Git)

Imagick::setImageAttribute — Description

Description

public void Imagick::setImageAttribute ( string $key , string $value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

key

value

Valeurs de retour


Configure la couleur de fond d'image

  • « Imagick::setImageAttribute
  • Imagick::setImageBias »
  • PHP Manual
  • Imagick
  • Configure la couleur de fond d'image

Imagick::setImageBackgroundColor

(PECL imagick 2.0.0)

Imagick::setImageBackgroundColor — Configure la couleur de fond d'image

Description

bool Imagick::setImageBackgroundColor ( mixed $background )

Configure la couleur de fond d'image.

Liste de paramètres

background

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
2.1.0 | Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.


Configure le biais pour les convolutions

  • « Imagick::setImageBackgroundColor
  • Imagick::setImageBiasQuantum »
  • PHP Manual
  • Imagick
  • Configure le biais pour les convolutions

Imagick::setImageBias

(PECL imagick 2.0.0)

Imagick::setImageBias — Configure le biais pour les convolutions

Description

bool Imagick::setImageBias ( float $bias )

Configure le biais pour les convolutions, utilisées avec la fonction Imagick::ConvolveImage().

Liste de paramètres

bias

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::setImageBias()

<?php
// Requiert ImageMagick version 6.9.0-1 pour avoir un effet sur les convulsions
function setImageBias($bias) {
    $imagick = new \Imagick(realpath("images/stack.jpg"));

    $xKernel = array(
        -0.70, 0, 0.70,
        -0.70, 0, 0.70,
        -0.70, 0, 0.70
    );

    $imagick->setImageBias($bias * \Imagick::getQuantum());
    $imagick->convolveImage($xKernel, \Imagick::CHANNEL_ALL);

    $imagick->setImageFormat('png');

    header('Content-type: image/png');
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::setImageBias
  • Imagick::setImageBluePrimary »
  • PHP Manual
  • Imagick
  • Description

Imagick::setImageBiasQuantum

(No version information available, might only be in Git)

Imagick::setImageBiasQuantum — Description

Description

public void Imagick::setImageBiasQuantum ( string $bias )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

bias

Valeurs de retour


Configure la chromacité du point bleu

  • « Imagick::setImageBiasQuantum
  • Imagick::setImageBorderColor »
  • PHP Manual
  • Imagick
  • Configure la chromacité du point bleu

Imagick::setImageBluePrimary

(PECL imagick 2.0.0)

Imagick::setImageBluePrimary — Configure la chromacité du point bleu

Description

bool Imagick::setImageBluePrimary ( float $x , float $y )

Configure la chromacité du point bleu.

Liste de paramètres

x

y

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure la couleur de bordure

  • « Imagick::setImageBluePrimary
  • Imagick::setImageChannelDepth »
  • PHP Manual
  • Imagick
  • Configure la couleur de bordure

Imagick::setImageBorderColor

(PECL imagick 2.0.0)

Imagick::setImageBorderColor — Configure la couleur de bordure

Description

bool Imagick::setImageBorderColor ( mixed $border )

Configure la couleur de bordure.

Liste de paramètres

border

La couleur de bordure

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
2.1.0 | Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.


Configure la profondeur d'un canal

  • « Imagick::setImageBorderColor
  • Imagick::setImageClipMask »
  • PHP Manual
  • Imagick
  • Configure la profondeur d'un canal

Imagick::setImageChannelDepth

(PECL imagick 2.0.0)

Imagick::setImageChannelDepth — Configure la profondeur d'un canal

Description

bool Imagick::setImageChannelDepth ( int $channel , int $depth )

Configure la profondeur d'un canal.

Liste de paramètres

channel

depth

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Définit le masque du clip de l'image

  • « Imagick::setImageChannelDepth
  • Imagick::setImageColormapColor »
  • PHP Manual
  • Imagick
  • Définit le masque du clip de l'image

Imagick::setImageClipMask

(No version information available, might only be in Git)

Imagick::setImageClipMask — Définit le masque du clip de l'image

Description

bool Imagick::setImageClipMask ( Imagick $clip_mask )

Définit le masque du clip de l'image depuis un autre objet Imagick. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

clip_mask

L'objet Imagick contenant le masque du clip.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::setImageClipMask()

<?php
function setImageClipMask($imagePath) {
    $imagick = new \Imagick();
    $imagick->readImage(realpath($imagePath));

    $width = $imagick->getImageWidth();
    $height = $imagick->getImageHeight();

    $clipMask = new \Imagick();
    $clipMask->newPseudoImage(
        $width,
        $height,
        "canvas:transparent"
    );

    $draw = new \ImagickDraw();
    $draw->setFillColor('white');
    $draw->circle(
        $width / 2,
        $height / 2,
        ($width / 2) + ($width / 4),
        $height / 2
    );
    $clipMask->drawImage($draw);
    $imagick->setImageClipMask($clipMask);

    $imagick->negateImage(false);
    $imagick->setFormat("png");

    header("Content-Type: image/png");
    echo $imagick->getImagesBlob();

}

?>


Configure une couleur de la carte

  • « Imagick::setImageClipMask
  • Imagick::setImageColorspace »
  • PHP Manual
  • Imagick
  • Configure une couleur de la carte

Imagick::setImageColormapColor

(PECL imagick 2.0.0)

Imagick::setImageColormapColor — Configure une couleur de la carte

Description

bool Imagick::setImageColormapColor ( int $index , ImagickPixel $color )

Configure une couleur de la carte de couleurs de l'image.

Liste de paramètres

index

color

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure l'espace de couleurs de l'image

  • « Imagick::setImageColormapColor
  • Imagick::setImageCompose »
  • PHP Manual
  • Imagick
  • Configure l'espace de couleurs de l'image

Imagick::setImageColorspace

(PECL imagick 2.0.0)

Imagick::setImageColorspace — Configure l'espace de couleurs de l'image

Description

bool Imagick::setImageColorspace ( int $colorspace )

Configure l'espace de couleurs de l'image. Cette méthode doit être utilisée lors de la création de nouvelles images. Pour changer l'espace de couleurs d'une image existante, vous devez utiliser la méthode Imagick::transformImageColorspace().

Liste de paramètres

colorspace

Une des constantes COLORSPACE

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure l'opérateur de composition de l'image

  • « Imagick::setImageColorspace
  • Imagick::setImageCompression »
  • PHP Manual
  • Imagick
  • Configure l'opérateur de composition de l'image

Imagick::setImageCompose

(PECL imagick 2.0.0)

Imagick::setImageCompose — Configure l'opérateur de composition de l'image

Description

bool Imagick::setImageCompose ( int $compose )

Configure l'opérateur de composition de l'image. Cette fonction est pratique pour spécifier la méthode de composition des miniatures, lors de l'utilisation de la méthode Imagick::montageImage().

Liste de paramètres

compose

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure la compression de l'image

  • « Imagick::setImageCompose
  • Imagick::setImageCompressionQuality »
  • PHP Manual
  • Imagick
  • Configure la compression de l'image

Imagick::setImageCompression

(PECL imagick 2.0.0)

Imagick::setImageCompression — Configure la compression de l'image

Description

bool Imagick::setImageCompression ( int $compression )

Configure la compression de l'image.

Liste de paramètres

compression

Une des constantes COMPRESSION.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Spécifie la qualité de compression de l'image

  • « Imagick::setImageCompression
  • Imagick::setImageDelay »
  • PHP Manual
  • Imagick
  • Spécifie la qualité de compression de l'image

Imagick::setImageCompressionQuality

(No version information available, might only be in Git)

Imagick::setImageCompressionQuality — Spécifie la qualité de compression de l'image

Description

bool Imagick::setImageCompressionQuality ( int $quality )

Spécifie la qualité de compression de l'image.

Liste de paramètres

quality

La qualité de compression de l'image sous forme d'entier.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::setImageCompressionQuality()

<?php
function setImageCompressionQuality($imagePath, $quality) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageCompressionQuality($quality);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Configure le délai de l'image

  • « Imagick::setImageCompressionQuality
  • Imagick::setImageDepth »
  • PHP Manual
  • Imagick
  • Configure le délai de l'image

Imagick::setImageDelay

(PECL imagick 2.0.0)

Imagick::setImageDelay — Configure le délai de l'image

Description

bool Imagick::setImageDelay ( int $delay )

Configure le délai de l'image. Pour une image animée, ce sera le temps pendant lequel la frame sera affichée, avant d'afficher la frame suivante.

Le délai peut être défini individuellement pour chaqur frame de l'image.

Liste de paramètres

delay

Le temps, exprimé en 'ticks', pendant lequel l'image sera affichée. Pour les GIFs animés, il y a 100 ticks par seconde, aussi, une valeur de 20 vaudra 20/100 d'une seconde, soit 1/5ème de seconde.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Modification d'un GIF animé avec Imagick::setImageDelay()

<?php

// Modifie un GIF animé permettant d'afficher les frames avec une vitesse variable,
// allant de 50ms à 0ms, ce qui fera que la frame ne sera pas affichée dans
// la plupart des navigateurs.
$imagick = new Imagick(realpath("Test.gif"));
$imagick = $imagick->coalesceImages();

$frameCount = 0;

foreach ($imagick as $frame) {
    $imagick->setImageDelay((($frameCount % 11) * 5));
    $frameCount++;
}

$imagick = $imagick->deconstructImages();

$imagick->writeImages("/chemin/de/sauvegarde/output.gif", true);

?>


Configure la profondeur de l'image

  • « Imagick::setImageDelay
  • Imagick::setImageDispose »
  • PHP Manual
  • Imagick
  • Configure la profondeur de l'image

Imagick::setImageDepth

(PECL imagick 2.0.0)

Imagick::setImageDepth — Configure la profondeur de l'image

Description

bool Imagick::setImageDepth ( int $depth )

Configure la profondeur de l'image.

Liste de paramètres

depth

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure la méthode de récupération

  • « Imagick::setImageDepth
  • Imagick::setImageExtent »
  • PHP Manual
  • Imagick
  • Configure la méthode de récupération

Imagick::setImageDispose

(PECL imagick 2.0.0)

Imagick::setImageDispose — Configure la méthode de récupération

Description

bool Imagick::setImageDispose ( int $dispose )

Configure la méthode de récupération.

Liste de paramètres

dispose

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure la taille d'une image

  • « Imagick::setImageDispose
  • Imagick::setImageFilename »
  • PHP Manual
  • Imagick
  • Configure la taille d'une image

Imagick::setImageExtent

(PECL imagick 2.0.0)

Imagick::setImageExtent — Configure la taille d'une image

Description

bool Imagick::setImageExtent ( int $columns , int $rows )

Configure la taille d'une image (le nombre de colonnes et de lignes).

Liste de paramètres

columns

rows

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure le nom de fichier d'une image dans une séquence

  • « Imagick::setImageExtent
  • Imagick::setImageFormat »
  • PHP Manual
  • Imagick
  • Configure le nom de fichier d'une image dans une séquence

Imagick::setImageFilename

(PECL imagick 2.0.0)

Imagick::setImageFilename — Configure le nom de fichier d'une image dans une séquence

Description

bool Imagick::setImageFilename ( string $filename )

Configure le nom de fichier d'une image dans une séquence.

Liste de paramètres

filename

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure le format d'une image dans une séquence

  • « Imagick::setImageFilename
  • Imagick::setImageGamma »
  • PHP Manual
  • Imagick
  • Configure le format d'une image dans une séquence

Imagick::setImageFormat

(PECL imagick 2.0.0)

Imagick::setImageFormat — Configure le format d'une image dans une séquence

Description

bool Imagick::setImageFormat ( string $format )

Configure le format d'une image dans une séquence.

Liste de paramètres

format

La représentation en chaîne du format d'image. Les formats supportés dépendent de l'installation ImageMagick.

Valeurs de retour

Retourne TRUE en cas de succès.


Configure la correction gamma

  • « Imagick::setImageFormat
  • Imagick::setImageGravity »
  • PHP Manual
  • Imagick
  • Configure la correction gamma

Imagick::setImageGamma

(PECL imagick 2.0.0)

Imagick::setImageGamma — Configure la correction gamma

Description

bool Imagick::setImageGamma ( float $gamma )

Configure la correction gamma.

Liste de paramètres

gamma

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Définit la gravité de l'image

  • « Imagick::setImageGamma
  • Imagick::setImageGreenPrimary »
  • PHP Manual
  • Imagick
  • Définit la gravité de l'image

Imagick::setImageGravity

(No version information available, might only be in Git)

Imagick::setImageGravity — Définit la gravité de l'image

Description

bool Imagick::setImageGravity ( int $gravity )

Définit la propriété de gravité pour l'image courante. Cette méthode peut être utilisée pour définir la propriété de gravité pour une seule image d'une séquence. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.

Liste de paramètres

gravity

La propriété de gravité. Referez-vous à la liste des constantes de gravité.

Valeurs de retour

Aucune valeur n'est retournée.


Configure la chromacité du point vert

  • « Imagick::setImageGravity
  • Imagick::setImageIndex »
  • PHP Manual
  • Imagick
  • Configure la chromacité du point vert

Imagick::setImageGreenPrimary

(PECL imagick 2.0.0)

Imagick::setImageGreenPrimary — Configure la chromacité du point vert

Description

bool Imagick::setImageGreenPrimary ( float $x , float $y )

Configure la chromacité du point vert.

Liste de paramètres

x

y

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Modifie la position de l'itérateur

  • « Imagick::setImageGreenPrimary
  • Imagick::setImageInterlaceScheme »
  • PHP Manual
  • Imagick
  • Modifie la position de l'itérateur

Imagick::setImageIndex

(PECL imagick 2.0.0)

Imagick::setImageIndex — Modifie la position de l'itérateur

Description

bool Imagick::setImageIndex ( int $index )

Modifie la position de l'itérateur à l'index index.

Cette méthode est obsolète. Voyez Imagick::setIteratorIndex()

Liste de paramètres

index

La position à laquelle mettre l'itérateur

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure la méthode d'entrelacement de l'image

  • « Imagick::setImageIndex
  • Imagick::setImageInterpolateMethod »
  • PHP Manual
  • Imagick
  • Configure la méthode d'entrelacement de l'image

Imagick::setImageInterlaceScheme

(PECL imagick 2.0.0)

Imagick::setImageInterlaceScheme — Configure la méthode d'entrelacement de l'image

Description

bool Imagick::setImageInterlaceScheme ( int $interlace_scheme )

Configure la méthode d'entrelacement de l'image.

Liste de paramètres

interlace_scheme

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure la méthode d'interpolation de l'image

  • « Imagick::setImageInterlaceScheme
  • Imagick::setImageIterations »
  • PHP Manual
  • Imagick
  • Configure la méthode d'interpolation de l'image

Imagick::setImageInterpolateMethod

(PECL imagick 2.0.0)

Imagick::setImageInterpolateMethod — Configure la méthode d'interpolation de l'image

Description

bool Imagick::setImageInterpolateMethod ( int $method )

Configure la méthode d'interpolation de l'image.

Liste de paramètres

method

Une constante Imagick::INTERPOLATE_*.

Valeurs de retour

Retourne TRUE en cas de succès.


Configure les itérations de l'image

  • « Imagick::setImageInterpolateMethod
  • Imagick::setImageMatte »
  • PHP Manual
  • Imagick
  • Configure les itérations de l'image

Imagick::setImageIterations

(PECL imagick 2.0.0)

Imagick::setImageIterations — Configure les itérations de l'image

Description

bool Imagick::setImageIterations ( int $iterations )

Configure le nombre d'itérations d'affichage d'une image.

Liste de paramètres

iterations

Le nombre d'itérations de l'image. Défini à 0, la boucle sera infinie.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Utilisation basique de la méthode Imagick::setImageIterations()

<?php

$imagick = new Imagick(realpath("Test.gif"));

$imagick = $imagick->coalesceImages();
$imagick->setImageIterations(1);
$imagick = $imagick->deconstructImages();

$imagick->writeImages('/chemin/de/sauvegarde/OnceOnly.gif', true);

?>


Configure le canal mate de l'image

  • « Imagick::setImageIterations
  • Imagick::setImageMatteColor »
  • PHP Manual
  • Imagick
  • Configure le canal mate de l'image

Imagick::setImageMatte

(PECL imagick 2.0.0)

Imagick::setImageMatte — Configure le canal mate de l'image

Description

bool Imagick::setImageMatte ( bool $matte )

Configure le canal mate de l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

matte

TRUE active le canal mate, et FALSE le désactive.

Valeurs de retour

Retourne TRUE en cas de succès.


Configure la couleur mate

  • « Imagick::setImageMatte
  • Imagick::setImageOpacity »
  • PHP Manual
  • Imagick
  • Configure la couleur mate

Imagick::setImageMatteColor

(PECL imagick 2.0.0)

Imagick::setImageMatteColor — Configure la couleur mate

Description

bool Imagick::setImageMatteColor ( mixed $matte )

Configure la couleur mate.

Liste de paramètres

matte

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
2.1.0 | Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.


Configure le niveau d'opacité de l'image

  • « Imagick::setImageMatteColor
  • Imagick::setImageOrientation »
  • PHP Manual
  • Imagick
  • Configure le niveau d'opacité de l'image

Imagick::setImageOpacity

(PECL imagick 2.0.0)

Imagick::setImageOpacity — Configure le niveau d'opacité de l'image

Description

bool Imagick::setImageOpacity ( float $opacity )

Configure le niveau d'opacité de l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.1 ou supérieur. Cette méthode opère sur tous les canaux, ce qui signifie que, par exemple, une valeur d'opacité de 0.5 va définir toutes les zones transparentes en partiellement opaques. Pour ajouter de la transparence aux zones qui ne sont actuellement pas transparents, utilisez la méthode Imagick::evaluateImage().

Liste de paramètres

opacity

Le niveau de transparence : 1.0 est totalement opaque, et 0.0 est totalement transparent.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::setImageOpacity()

Un exemple avec Imagick::setImageOpacity()

<?php
/* Crée un objet  */
$image = new Imagick('source.png');

/* Configure l'opacité */
$image->setImageOpacity(0.7);

/* Affiche l'image */
header('Content-type: image/png');
echo $image;

?>


Configure l'orientation de l'image

  • « Imagick::setImageOpacity
  • Imagick::setImagePage »
  • PHP Manual
  • Imagick
  • Configure l'orientation de l'image

Imagick::setImageOrientation

(PECL imagick 2.0.0)

Imagick::setImageOrientation — Configure l'orientation de l'image

Description

bool Imagick::setImageOrientation ( int $orientation )

Configure l'orientation de l'image.

Liste de paramètres

orientation

Une des constantes d'orientation

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exempe avec Imagick::setImageOrientation()

<?php
function setImageOrientation($imagePath, $orientationType) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageOrientation($orientationType);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Configure la géométrie de la page de l'image

  • « Imagick::setImageOrientation
  • Imagick::setImageProfile »
  • PHP Manual
  • Imagick
  • Configure la géométrie de la page de l'image

Imagick::setImagePage

(PECL imagick 2.0.0)

Imagick::setImagePage — Configure la géométrie de la page de l'image

Description

bool Imagick::setImagePage ( int $width , int $height , int $x , int $y )

Configure la géométrie de la page de l'image.

Liste de paramètres

width

height

x

y

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Ajoute un profil à un objet Imagick

  • « Imagick::setImagePage
  • Imagick::setImageProperty »
  • PHP Manual
  • Imagick
  • Ajoute un profil à un objet Imagick

Imagick::setImageProfile

(PECL imagick 2.0.0)

Imagick::setImageProfile — Ajoute un profil à un objet Imagick

Description

bool Imagick::setImageProfile ( string $name , string $profile )

Ajoute un nouveau profile à un objet Imagick. Si un profil ajouté a le même nom qu'un profil déjà ajouté, il sera remplacé. Cette méthode diffère de Imagick::ProfileImage(), car elle n'applique aucun profil CMS.

Liste de paramètres

name

profile

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure une propriété d'image

  • « Imagick::setImageProfile
  • Imagick::setImageRedPrimary »
  • PHP Manual
  • Imagick
  • Configure une propriété d'image

Imagick::setImageProperty

(PECL imagick 2.0.0)

Imagick::setImageProperty — Configure une propriété d'image

Description

bool Imagick::setImageProperty ( string $name , string $value )

Configure la propriété d'image name à la valeur value. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.

Liste de paramètres

name

value

Exemples

Exemple #1 Exemple avec Imagick::setImageProperty()

Définit et récupère les propriétés d'une image.

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");

$image->setImageProperty('Exif:Make', 'Imagick');
echo $image->getImageProperty('Exif:Make');
?>

Voir aussi

  • Imagick::getImageProperty() - Retourne une propriété d'une image

Valeurs de retour

Retourne TRUE en cas de succès.


Configure la chromacité du point rouge

  • « Imagick::setImageProperty
  • Imagick::setImageRenderingIntent »
  • PHP Manual
  • Imagick
  • Configure la chromacité du point rouge

Imagick::setImageRedPrimary

(PECL imagick 2.0.0)

Imagick::setImageRedPrimary — Configure la chromacité du point rouge

Description

bool Imagick::setImageRedPrimary ( float $x , float $y )

Configure la chromacité du point rouge.

Liste de paramètres

x

y

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure le type de rendu de l'image

  • « Imagick::setImageRedPrimary
  • Imagick::setImageResolution »
  • PHP Manual
  • Imagick
  • Configure le type de rendu de l'image

Imagick::setImageRenderingIntent

(PECL imagick 2.0.0)

Imagick::setImageRenderingIntent — Configure le type de rendu de l'image

Description

bool Imagick::setImageRenderingIntent ( int $rendering_intent )

Configure le type de rendu de l'image.

Liste de paramètres

rendering_intent

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure la résolution de l'image

  • « Imagick::setImageRenderingIntent
  • Imagick::setImageScene »
  • PHP Manual
  • Imagick
  • Configure la résolution de l'image

Imagick::setImageResolution

(PECL imagick 2.0.0)

Imagick::setImageResolution — Configure la résolution de l'image

Description

bool Imagick::setImageResolution ( float $x_resolution , float $y_resolution )

Configure la résolution de l'image.

Liste de paramètres

x_resolution

y_resolution

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exempe avec Imagick::setImageResolution()

<?php
function setImageResolution($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageResolution(50, 50);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Configure la scène de l'image

  • « Imagick::setImageResolution
  • Imagick::setImageTicksPerSecond »
  • PHP Manual
  • Imagick
  • Configure la scène de l'image

Imagick::setImageScene

(PECL imagick 2.0.0)

Imagick::setImageScene — Configure la scène de l'image

Description

bool Imagick::setImageScene ( int $scene )

Configure la scène de l'image.

Liste de paramètres

scene

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure le nombre e tick par seconde de l'image

  • « Imagick::setImageScene
  • Imagick::setImageType »
  • PHP Manual
  • Imagick
  • Configure le nombre e tick par seconde de l'image

Imagick::setImageTicksPerSecond

(PECL imagick 2.0.0)

Imagick::setImageTicksPerSecond — Configure le nombre e tick par seconde de l'image

Description

bool Imagick::setImageTicksPerSecond ( int $ticks_per_second )

Ajuste la durée qu'une frame d'une image animée sera affichée.

Note:

Pour les GIFs animés, cette méthode ne modifie pas le nombre de 'ticks' par secondes, qui sera toujours défini à 100. Au lieu de celà, la méthode va ajuster la durée d'affichage de la frame pour simuler une modification du ticks par seconde.

Par exemple, pour un GIF animé où chaque frame est affichée pendant 20 ticks (1/5ème d'une seconde), lorsque cette méthode est appelée sur chaque frame de l'image avec un argument de 50, les frames seront ajustées pour s'afficher pendant 40 ticks (2/5ème d'une seconde) et l'animation sera jouée à une vitesse de moitié moins par rapport à la vitesse originale.

Liste de paramètres

ticks_per_second

La durée pendant laquelle une image sera affichée, exprimée en ticks par seconde.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Modification d'un GIF animé avec la méthode Imagick::setImageTicksPerSecond()

<?php

// Modification d'un GIF animé pour que la première moitié du GIF soit jouée
// à une vitesse moitié moindre, et que la seconde moitié soit jouée à une vitesse
// double de la vitesse courante.

$imagick = new Imagick(realpath("Test.gif"));
$imagick = $imagick->coalesceImages();

$totalFrames = $imagick->getNumberImages();

$frameCount = 0;

foreach ($imagick as $frame) {
    $imagick->setImageTicksPerSecond(50);

    if ($frameCount < ($totalFrames / 2)) {
        // Modification de la frame pour quelle s'affiche pendant deux fois plus de temps qu'actuellement
        $imagick->setImageTicksPerSecond(50);
    } else {

        // Modification de la frame pour quelle s'affiche pendant deux fois moins de temps qu'actuellement
        $imagick->setImageTicksPerSecond(200);
    }

    $frameCount++;
}

$imagick = $imagick->deconstructImages();

$imagick->writeImages("/chemin/de/sauvegarde/output.gif", true);

?>


Configure le type d'image

  • « Imagick::setImageTicksPerSecond
  • Imagick::setImageUnits »
  • PHP Manual
  • Imagick
  • Configure le type d'image

Imagick::setImageType

(PECL imagick 2.0.0)

Imagick::setImageType — Configure le type d'image

Description

bool Imagick::setImageType ( int $image_type )

Configure le type d'image.

Liste de paramètres

image_type

Valeurs de retour

Retourne TRUE en cas de succès.


Configure les unités de résolutions de l'image

  • « Imagick::setImageType
  • Imagick::setImageVirtualPixelMethod »
  • PHP Manual
  • Imagick
  • Configure les unités de résolutions de l'image

Imagick::setImageUnits

(PECL imagick 2.0.0)

Imagick::setImageUnits — Configure les unités de résolutions de l'image

Description

bool Imagick::setImageUnits ( int $units )

Configure les unités de résolutions de l'image.

Liste de paramètres

units

Valeurs de retour

Retourne TRUE en cas de succès.


Configure la méthode du point virtuel de l'image

  • « Imagick::setImageUnits
  • Imagick::setImageWhitePoint »
  • PHP Manual
  • Imagick
  • Configure la méthode du point virtuel de l'image

Imagick::setImageVirtualPixelMethod

(PECL imagick 2.0.0)

Imagick::setImageVirtualPixelMethod — Configure la méthode du point virtuel de l'image

Description

bool Imagick::setImageVirtualPixelMethod ( int $method )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la méthode du point virtuel de l'image.

Liste de paramètres

method

Valeurs de retour

Retourne TRUE en cas de succès.


Configure la chromacité du point blanc

  • « Imagick::setImageVirtualPixelMethod
  • Imagick::setInterlaceScheme »
  • PHP Manual
  • Imagick
  • Configure la chromacité du point blanc

Imagick::setImageWhitePoint

(PECL imagick 2.0.0)

Imagick::setImageWhitePoint — Configure la chromacité du point blanc

Description

bool Imagick::setImageWhitePoint ( float $x , float $y )

Configure la chromacité du point blanc.

Liste de paramètres

x

y

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Configure la compression de l'image

  • « Imagick::setImageWhitePoint
  • Imagick::setIteratorIndex »
  • PHP Manual
  • Imagick
  • Configure la compression de l'image

Imagick::setInterlaceScheme

(PECL imagick 2.0.0)

Imagick::setInterlaceScheme — Configure la compression de l'image

Description

bool Imagick::setInterlaceScheme ( int $interlace_scheme )

Configure la compression de l'image.

Liste de paramètres

interlace_scheme

Valeurs de retour

Retourne TRUE en cas de succès.


Déplace l'itérateur

  • « Imagick::setInterlaceScheme
  • Imagick::setLastIterator »
  • PHP Manual
  • Imagick
  • Déplace l'itérateur

Imagick::setIteratorIndex

(PECL imagick 2.0.0)

Imagick::setIteratorIndex — Déplace l'itérateur

Description

bool Imagick::setIteratorIndex ( int $index )

Déplace l'itérateur à la position index dans la séquence d'images. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

index

La position finale de l'itérateur

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::setIteratorIndex()

Crée des images, définit et récupère l'index de l'itérateur.

<?php
$im = new Imagick();
$im->newImage(100, 100, new ImagickPixel("red"));
$im->newImage(100, 100, new ImagickPixel("green"));
$im->newImage(100, 100, new ImagickPixel("blue"));

$im->setIteratorIndex(1);
echo $im->getIteratorIndex();
?>

Voir aussi

  • Imagick::getIteratorIndex() - Lit l'index de l'image active courante
  • Imagick::getImageIndex() - Lit l'index de l'image courante
  • Imagick::setImageIndex() - Modifie la position de l'itérateur


Positionne l'itérateur Imagick à la dernière image

  • « Imagick::setIteratorIndex
  • Imagick::setOption »
  • PHP Manual
  • Imagick
  • Positionne l'itérateur Imagick à la dernière image

Imagick::setLastIterator

(PECL imagick 2.0.1)

Imagick::setLastIterator — Positionne l'itérateur Imagick à la dernière image

Description

bool Imagick::setLastIterator ( void )

Positionne l'itérateur Imagick à la dernière image.

Valeurs de retour

Retourne TRUE en cas de succès.


Configure une option d'un objet Imagick

  • « Imagick::setLastIterator
  • Imagick::setPage »
  • PHP Manual
  • Imagick
  • Configure une option d'un objet Imagick

Imagick::setOption

(PECL imagick 2.0.0)

Imagick::setOption — Configure une option d'un objet Imagick

Description

bool Imagick::setOption ( string $key , string $value )

Configure une ou plusieurs options de l'objet Imagick.

Liste de paramètres

key

value

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Tentative d'atteindre la taille '$extent' avec Imagick::setOption()

<?php
    function renderJPG($extent) {
        $imagePath = $this->control->getImagePath();
        $imagick = new \Imagick(realpath($imagePath));
        $imagick->setImageFormat('jpg');
        $imagick->setOption('jpeg:extent', $extent);
        header("Content-Type: image/jpg");
        echo $imagick->getImageBlob();
    }

?>

Exemple #2 Exemple avec Imagick::setOption()

<?php
    function renderPNG($imagePath, $format) {

        $imagick = new \Imagick(realpath($imagePath));
        $imagick->setImageFormat('png');
        $imagick->setOption('png:format', $format);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

    //Save as 64bit PNG.
    renderPNG($imagePath, 'png64');

?>

Exemple #3 Exemple avec Imagick::setOption()

<?php
    function renderCustomBitDepthPNG() {
        $imagePath = $this->control->getImagePath();
        $imagick = new \Imagick(realpath($imagePath));
        $imagick->setImageFormat('png');

        $imagick->setOption('png:bit-depth', '16');
        $imagick->setOption('png:color-type', 6);
        header("Content-Type: image/png");
        $crash = true;
        if ($crash) {
            echo $imagick->getImageBlob();
        }
        else {
            $tempFilename = tempnam('./', 'imagick');
            $imagick->writeimage(realpath($tempFilename));
            echo file_get_contents($tempFilename);
        }
    }

?>


Configure la géométrie de la page de l'objet Imagick

  • « Imagick::setOption
  • Imagick::setPointSize »
  • PHP Manual
  • Imagick
  • Configure la géométrie de la page de l'objet Imagick

Imagick::setPage

(PECL imagick 2.0.0)

Imagick::setPage — Configure la géométrie de la page de l'objet Imagick

Description

bool Imagick::setPage ( int $width , int $height , int $x , int $y )

Configure la géométrie de la page de l'objet Imagick.

Liste de paramètres

width

height

x

y

Valeurs de retour

Retourne TRUE en cas de succès.


Définit la taille du point

  • « Imagick::setPage
  • Imagick::setProgressMonitor »
  • PHP Manual
  • Imagick
  • Définit la taille du point

Imagick::setPointSize

(PECL imagick 2.1.0)

Imagick::setPointSize — Définit la taille du point

Description

bool Imagick::setPointSize ( float $point_size )

Définit la propriété de la taille du point de l'objet. Cette méthode peut être utilisée pour, par exemple, définir la taille de la police de caractères pour la légende : pseudo-format. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.

Liste de paramètres

point_size

La taille du point.

Valeurs de retour

Retourne TRUE en cas de succès.

Voir aussi

  • Imagick::getPointSize() - Récupère la taille du point

Exemples

Exemple #1 Exemple avec Imagick::setPointSize()

Exemple d'utilisation de la méthode Imagick::setPointSize

<?php
/* Crée un nouvel objet imagick */
$im = new Imagick();

/* Définit la police de caractères pour l'objet */
$im->setFont("example.ttf");

/* Définit la taille du point */
$im->setPointSize(12);

/* Crée une nouvelle légende */
$im->newPseudoImage(100, 100, "caption:Hello");

/* Faites quelques choses avec votre nouvelle image */
?>


Description

  • « Imagick::setPointSize
  • Imagick::setRegistry »
  • PHP Manual
  • Imagick
  • Description

Imagick::setProgressMonitor

(No version information available, might only be in Git)

Imagick::setProgressMonitor — Description

Description

public void Imagick::setProgressMonitor ( callable $callback )

Set a callback that will be called during the processing of the Imagick image.

Liste de paramètres

callback

The progress function to call. It should return true if image processing should continue, or false if it should be cancelled. The offset parameter indicates the progress and the span parameter indicates the total amount of work needed to be done.

bool callback ( mixed $offset , mixed $span )
Attention

The values passed to the callback function are not consistent. In particular the span parameter can increase during image processing. Because of this calculating the percentage complete of an image operation is not trivial.

Valeurs de retour

Exemples

Exemple #1 Imagick::setProgressMonitor()

<?php
        $abortReason = null;

        try {
            $imagick = new \Imagick(realpath($this->control->getImagePath()));
            $startTime = time();

            $callback = function ($offset, $span)  use ($startTime, &$abortReason) {
                if (((100 * $offset) / $span)  > 20) {
                    $abortReason = "Processing reached 20%";
                    return false;
                }

                $nowTime = time();

                if ($nowTime - $startTime > 5) {
                    $abortReason = "Image processing took more than 5 seconds";
                    return false;
                }
                if (($offset % 5) == 0) {
                    echo "Progress: $offset / $span <br/>";
                }
                return true;
            };

            $imagick->setProgressMonitor($callback);

            $imagick->waveImage(2, 15);

            echo "Data len is: ".strlen($imagick->getImageBlob());
        }
        catch(\ImagickException $e) {
            if ($abortReason != null) {
                echo "Image processing was aborted: ".$abortReason."<br/>";
            }
            else {
                echo "ImagickException caught: ".$e->getMessage()." Exception type is ".get_class($e);
            }
        }

?>


Description

  • « Imagick::setProgressMonitor
  • Imagick::setResolution »
  • PHP Manual
  • Imagick
  • Description

Imagick::setRegistry

(No version information available, might only be in Git)

Imagick::setRegistry — Description

Description

public static void Imagick::setRegistry ( string $key , string $value )

Sets the ImageMagick registry entry named key to value. This is most useful for setting "temporary-path" which controls where ImageMagick creates temporary images e.g. while processing PDFs.

Liste de paramètres

key

value

Valeurs de retour


Configure la résolution de l'image

  • « Imagick::setRegistry
  • Imagick::setResourceLimit »
  • PHP Manual
  • Imagick
  • Configure la résolution de l'image

Imagick::setResolution

(PECL imagick 2.0.0)

Imagick::setResolution — Configure la résolution de l'image

Description

bool Imagick::setResolution ( float $x_resolution , float $y_resolution )

Configure la résolution de l'image.

Liste de paramètres

x_resolution

La résolution horizontale.

y_resolution

La résolution verticale.

Valeurs de retour

Retourne TRUE en cas de succès.

Notes

Imagick::setResolution() doit être appelée avant le chargement ou la création d'une image.

Voir aussi

  • Imagick::setImageResolution() - Configure la résolution de l'image
  • Imagick::getImageResolution() - Lit les résolutions en X et Y d'une image


Configure la taille limite d'une ressource

  • « Imagick::setResolution
  • Imagick::setSamplingFactors »
  • PHP Manual
  • Imagick
  • Configure la taille limite d'une ressource

Imagick::setResourceLimit

(PECL imagick 2.0.0)

Imagick::setResourceLimit — Configure la taille limite d'une ressource

Description

bool Imagick::setResourceLimit ( int $type , int $limit )

Cette méthode est utilisée pour modifier les limites de la ressource de la bibliothèque sous-jacente ImageMagick.

Liste de paramètres

type

Référez-vous à la liste des constantes resourcetype.

limit

La limite de la ressource. L'unité dépend du type de la ressource à limiter.

Valeurs de retour

Retourne TRUE en cas de succès.


Configure les facteurs d'échantillonnage de l'image

  • « Imagick::setResourceLimit
  • Imagick::setSize »
  • PHP Manual
  • Imagick
  • Configure les facteurs d'échantillonnage de l'image

Imagick::setSamplingFactors

(PECL imagick 2.0.0)

Imagick::setSamplingFactors — Configure les facteurs d'échantillonnage de l'image

Description

bool Imagick::setSamplingFactors ( array $factors )

Configure les facteurs d'échantillonnage de l'image.

Liste de paramètres

factors

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::setSamplingFactors()

<?php
function setSamplingFactors($imagePath) {

    $imagePath = "../imagick/images/FineDetail.png";
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageFormat('jpg');
    $imagick->setSamplingFactors(array('2x2', '1x1', '1x1'));

    $compressed = $imagick->getImageBlob();

    $reopen = new \Imagick();
    $reopen->readImageBlob($compressed);

    $reopen->resizeImage(
        $reopen->getImageWidth() * 4,
        $reopen->getImageHeight() * 4,
        \Imagick::FILTER_POINT,
        1
    );

    header("Content-Type: image/jpg");
    echo $reopen->getImageBlob();
}

?>


Configure la taille de l'objet Imagick

  • « Imagick::setSamplingFactors
  • Imagick::setSizeOffset »
  • PHP Manual
  • Imagick
  • Configure la taille de l'objet Imagick

Imagick::setSize

(PECL imagick 2.0.0)

Imagick::setSize — Configure la taille de l'objet Imagick

Description

bool Imagick::setSize ( int $columns , int $rows )

Configure la taille de l'objet Imagick. Configurez cet attribut avant d'ouvrir une image brute, aux formats RGB, GRAY ou CMYK.

Liste de paramètres

columns

rows

Valeurs de retour

Retourne TRUE en cas de succès.


Configure la taille et la position de l'objet Imagick

  • « Imagick::setSize
  • Imagick::setType »
  • PHP Manual
  • Imagick
  • Configure la taille et la position de l'objet Imagick

Imagick::setSizeOffset

(PECL imagick 2.0.0)

Imagick::setSizeOffset — Configure la taille et la position de l'objet Imagick

Description

bool Imagick::setSizeOffset ( int $columns , int $rows , int $offset )

Configure la taille et la position de l'objet Imagick. Configurez ces attributs avant de lire une image brute, aux formats RGB, GRAY ou CMYK. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

columns

rows

offset

Valeurs de retour

Retourne TRUE en cas de succès.


Configure l'attribut de l'image

  • « Imagick::setSizeOffset
  • Imagick::shadeImage »
  • PHP Manual
  • Imagick
  • Configure l'attribut de l'image

Imagick::setType

(PECL imagick 2.0.0)

Imagick::setType — Configure l'attribut de l'image

Description

bool Imagick::setType ( int $image_type )

Configure l'attribut de l'image.

Liste de paramètres

image_type

Valeurs de retour

Retourne TRUE en cas de succès.


Crée un effet 3D

  • « Imagick::setType
  • Imagick::shadowImage »
  • PHP Manual
  • Imagick
  • Crée un effet 3D

Imagick::shadeImage

(PECL imagick 2.0.0)

Imagick::shadeImage — Crée un effet 3D

Description

bool Imagick::shadeImage ( bool $gray , float $azimuth , float $elevation )

Récupère une lumière distante de l'image pour créer un effet 3D. Vous pouvez contrôler le positionnement de la lumière avec l'azimut et l'élévation ; l'azimut est mesuré en degré de l'axe X et l'élévation est mesuré sur l'axe Z. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

gray

azimuth

elevation

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException en cas d'échec.

Exemples

Exemple #1 Exemple avec Imagick::shadeImage()

<?php
function shadeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shadeImage(true, 45, 20);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Simule une ombre sur l'image

  • « Imagick::shadeImage
  • Imagick::sharpenImage »
  • PHP Manual
  • Imagick
  • Simule une ombre sur l'image

Imagick::shadowImage

(PECL imagick 2.0.0)

Imagick::shadowImage — Simule une ombre sur l'image

Description

bool Imagick::shadowImage ( float $opacity , float $sigma , int $x , int $y )

Simule une ombre sur l'image.

Liste de paramètres

opacity

sigma

x

y

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::shadowImage()

<?php
function shadowImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shadowImage(0.4, 10, 50, 5);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Aiguise une image

  • « Imagick::shadowImage
  • Imagick::shaveImage »
  • PHP Manual
  • Imagick
  • Aiguise une image

Imagick::sharpenImage

(PECL imagick 2.0.0)

Imagick::sharpenImage — Aiguise une image

Description

bool Imagick::sharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_ALL ] )

Aiguise une image. Nous modifions l'image avec un opérateur Gaussien utilisant le paramètre radius et la déviation standard sigma. Pour de bons résultats, le paramètre radius doit être plus élevé que le paramètre sigma. Utilisez un radius de 0 et Imagick::sharpenImage() choisira un bon radius à votre place.

Liste de paramètres

radius

sigma

channel

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::sharpenImage()

<?php
function sharpenImage($imagePath, $radius, $sigma, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->sharpenimage($radius, $sigma, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Supprime les pixels du bord de l'image

  • « Imagick::sharpenImage
  • Imagick::shearImage »
  • PHP Manual
  • Imagick
  • Supprime les pixels du bord de l'image

Imagick::shaveImage

(PECL imagick 2.0.0)

Imagick::shaveImage — Supprime les pixels du bord de l'image

Description

bool Imagick::shaveImage ( int $columns , int $rows )

Supprime les pixels du bord de l'image. Alloue la mémoire nécessaire pour la structure de la nouvelle image et retourne un pointeur vers la nouvelle image.

Liste de paramètres

columns

rows

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::shaveImage()

<?php
function shaveImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shaveImage(100, 50);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Crée un parallélogramme

  • « Imagick::shaveImage
  • Imagick::sigmoidalContrastImage »
  • PHP Manual
  • Imagick
  • Crée un parallélogramme

Imagick::shearImage

(PECL imagick 2.0.0)

Imagick::shearImage — Crée un parallélogramme

Description

bool Imagick::shearImage ( mixed $background , float $x_shear , float $y_shear )

Bouge le côté d'une image le long des axes X ou Y, créant un parallélogramme. Une direction X coupe le côté le long de l'axe X, tandis qu'une direction Y coupe le côté le long de l'axe Y. La coupe est contrôlée par l'angle de coupe. Pour une coupe de direction X, x_shear sera mesuré relativement à l'axe Y, et similiairement, pour une coupe de direction Y, y_shear est mesuré relativement à l'axe X. Les triangles vides laissés après la coupe seront remplis avec la couleur d'arrière plan.

Liste de paramètres

background

La couleur d'arrière plan

x_shear

Le nombre de degrés à couper suivant l'axe X

y_shear

Le nombre de degrés à couper suivant l'axe Y

Valeurs de retour

Retourne TRUE en cas de succès.

Historique

Version | Description
2.1.0 | Autorise maintenant une chaîne représentant la couleur comme troisième paramètre. Les anciennes versions n'autorisent que des objets ImagickPixel.

Exemples

Exemple #1 Exemple avec Imagick::shearImage()

<?php
function shearImage($imagePath, $color, $shearX, $shearY) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shearimage($color, $shearX, $shearY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Ajuste le contraste de l'image

  • « Imagick::shearImage
  • Imagick::sketchImage »
  • PHP Manual
  • Imagick
  • Ajuste le contraste de l'image

Imagick::sigmoidalContrastImage

(PECL imagick 2.0.0)

Imagick::sigmoidalContrastImage — Ajuste le contraste de l'image

Description

bool Imagick::sigmoidalContrastImage ( bool $sharpen , float $alpha , float $beta [, int $channel = Imagick::CHANNEL_ALL ] )

Ajuste le contraste de l'image avec un algorithme de contraste sigmoïde non linéaire. Augmenter le contraste de l'image en utilisant une fonction de transfert sigmoïde sans saturer les lumières hautes et les ombres. Le contraste indique de combien il faut augmenter le contraste (0 pour ne rien faire, 3 est une valeur typique, 20 est une valeur élevée) ; le point du milieu indique où les tons moyens seront dans l'image résultante (0 correspond à blanc, 50 correspond à gris, 100 correspond à noir). Définissez le paramètre sharpen à TRUE pour augmenter le contraste de l'image, sinon, le contraste sera réduit.

Voir aussi les » exemples d'ImageMagick V6 - Les transformations d'images - Le contraste non-linéaire

Liste de paramètres

sharpen

Si vaut TRUE, le contraste augmentera, sinon, le contraste dimunera.

alpha

La quantité de contraste à appliquer. -1 représente une toute petite quantité, 5 représente une quantité significative, et 20 est le maximum.

beta

Où doit se situer le milieu du gradient. Cette valeur doit être dans l'intervalle 0-1, multiplié par la valeur du quantum pour ImageMagick.

channel

Canaux de couleurs sur lesquels le contraste doit d'appliquer.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Crée une gradient d'image en utilisant la méthode Imagick::sigmoidalContrastImage() pour mélanger deux images en douceur, où le mélange est défini par les variables $contrast et $midpoint.

<?php

function generateBlendImage($width, $height, $contrast = 10, $midpoint = 0.5) {
    $imagick = new Imagick();
    $imagick->newPseudoImage($width, $height, 'gradient:black-white');
    $quanta = $imagick->getQuantumRange();
    $imagick->sigmoidalContrastImage(true, $contrast, $midpoint * $quanta["quantumRangeLong"]);

    return $imagick;
}

?>

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Simule un crayon à main levée

  • « Imagick::sigmoidalContrastImage
  • Imagick::smushImages »
  • PHP Manual
  • Imagick
  • Simule un crayon à main levée

Imagick::sketchImage

(PECL imagick 2.0.0)

Imagick::sketchImage — Simule un crayon à main levée

Description

bool Imagick::sketchImage ( float $radius , float $sigma , float $angle )

Simule un crayon à main levée. Nous modifions l'image en utilisant un opérateur Gaussien avec le paramètre radius et la déviation standard sigma. Pour de bons résultats, le paramètre radius doit être plus élevé que le paramètre sigma. Utilisez un sigma de 0 et Imagick::sketchImage() sélectionnera automatiquement un bon radius à votre place. Le paramètre angle fournit l'angle du flou du mouvement. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

radius

sigma

angle

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::sketchImage()

<?php
function sketchImage($imagePath, $radius, $sigma, $angle) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->sketchimage($radius, $sigma, $angle);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::sketchImage
  • Imagick::solarizeImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::smushImages

(No version information available, might only be in Git)

Imagick::smushImages — Description

Description

public Imagick Imagick::smushImages ( string $stack , string $offset )

Takes all images from the current image pointer to the end of the image list and smushs them to each other top-to-bottom if the stack parameter is true, otherwise left-to-right.

Liste de paramètres

stack

offset

Valeurs de retour

The new smushed image.

Exemples

Exemple #1 Imagick::smushImages()

<?php
function smushImages($imagePath, $imagePath2) {

    $imagick = new \Imagick(realpath($imagePath));
    $imagick2 = new \Imagick(realpath($imagePath2));

    $imagick->addimage($imagick2);
    $smushed = $imagick->smushImages(false, 50);
    $smushed->setImageFormat('jpg');
    header("Content-Type: image/jpg");
    echo $smushed->getImageBlob();
}

?>


Applique un effet de solarisation à l'image

  • « Imagick::smushImages
  • Imagick::sparseColorImage »
  • PHP Manual
  • Imagick
  • Applique un effet de solarisation à l'image

Imagick::solarizeImage

(PECL imagick 2.0.0)

Imagick::solarizeImage — Applique un effet de solarisation à l'image

Description

bool Imagick::solarizeImage ( int $threshold )

Applique un effet de solarisation à l'image, similaire à l'effet effectué dans une chambre noire en exposant des zones du papier photo sensitive à la lumière. Le seuil threshold peut aller de 0 à QuantumRange et mesure la densité de la solarisation.

Liste de paramètres

threshold

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::solarizeImage()

<?php
function solarizeImage($imagePath, $solarizeThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->solarizeImage($solarizeThreshold * \Imagick::getQuantum());
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Interpole les couleurs

  • « Imagick::solarizeImage
  • Imagick::spliceImage »
  • PHP Manual
  • Imagick
  • Interpole les couleurs

Imagick::sparseColorImage

(No version information available, might only be in Git)

Imagick::sparseColorImage — Interpole les couleurs

Description

public bool Imagick::sparseColorImage ( int $SPARSE_METHOD , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Le tableau fourni par le paramètre arguments contient les valeurs numériques utilisées par cette méthode pour interpoler les couleurs trouvées aux coordonnées de l'image entière en utilisant le paramètre sparse_method. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.5 ou supérieur.

Liste de paramètres

SPARSE_METHOD

Référez-vous à la liste des constantes pour la méthode sparse.

arguments

Un tableau contenant les coordonnées. Le tableau est au format array(1,1, 2,45).

CHANNEL

Fournit une constante de canal valide pour votre mode de canal. Pour l'appliquer à plus d'un canal, combinez les constantes de canaux en utilisant un opérateur sur les bits. Par défaut, vaut Imagick::CHANNEL_DEFAULT. Reportez-vous à la liste des constantes de canaux

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::sparseColorImage() et SPARSECOLORMETHOD_BARYCENTRIC

<?php
    function renderImageBarycentric2() {
        $points = [
            [0.30, 0.10, 'red'],
            [0.10, 0.80, 'blue'],
            [0.70, 0.60, 'lime'],
            [0.80, 0.20, 'yellow'],
        ];
        $imagick = createGradientImage(
            400, 400,
            $points,
            \Imagick::SPARSECOLORMETHOD_BARYCENTRIC
        );
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Exemple #2 Exemple avec Imagick::sparseColorImage() et SPARSECOLORMETHOD_BILINEAR

<?php
    function renderImageBilinear() {
        $points = [[0.30, 0.10, 'red'], [0.10, 0.80, 'blue'], [0.70, 0.60, 'lime'], [0.80, 0.20, 'yellow'],];
        $imagick = createGradientImage(500, 500, $points, \Imagick::SPARSECOLORMETHOD_BILINEAR);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Exemple #3 Exemple avec Imagick::sparseColorImage() et SPARSECOLORMETHOD_SPEPARDS

<?php
    function renderImageShepards() {
        $points = [
            [0.30, 0.10, 'red'],
            [0.10, 0.80, 'blue'],
            [0.70, 0.60, 'lime'],
            [0.80, 0.20, 'yellow'],
        ];
        $imagick = createGradientImage(600, 600, $points, \Imagick::SPARSECOLORMETHOD_SPEPARDS);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Exemple #4 Exemple avec Imagick::sparseColorImage() et SPARSECOLORMETHOD_VORONOI

<?php
    function renderImageVoronoi() {
        $points = [
            [0.30, 0.10, 'red'],
            [0.10, 0.80, 'blue'],
            [0.70, 0.60, 'lime'],
            [0.80, 0.20, 'yellow'],
        ];
        $imagick = createGradientImage(500, 500, $points, \Imagick::SPARSECOLORMETHOD_VORONOI);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Exemple #5 Exemple avec Imagick::sparseColorImage() et SPARSECOLORMETHOD_BARYCENTRIC

<?php
    function renderImageBarycentric() {
        $points = [
            [0, 0, 'skyblue'],
            [-1, 1, 'skyblue'],
            [1, 1, 'black'],
        ];
        $imagick = createGradientImage(600, 200, $points, \Imagick::SPARSECOLORMETHOD_BARYCENTRIC);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Exemple #6 createGradientImage est utilisé par les autres exemples. Imagick::sparseColorImage()

<?php
function createGradientImage($width, $height, $colorPoints, $sparseMethod, $absolute = false) {

    $imagick = new \Imagick();
    $imagick->newImage($width, $height, "white");
    $imagick->setImageFormat("png");

    $barycentricPoints = array();

    foreach ($colorPoints as $colorPoint) {

        if ($absolute == true) {
            $barycentricPoints[] = $colorPoint[0];
            $barycentricPoints[] = $colorPoint[1];
        }
        else {
            $barycentricPoints[] = $colorPoint[0] * $width;
            $barycentricPoints[] = $colorPoint[1] * $height;
        }

        if (is_string($colorPoint[2])) {
            $imagickPixel = new \ImagickPixel($colorPoint[2]);
        }
        else if ($colorPoint[2] instanceof \ImagickPixel) {
            $imagickPixel = $colorPoint[2];
        }
        else{
            $errorMessage = sprintf(
                "Value %s is neither a string nor an ImagickPixel class. Cannot use as a color.",
                $colorPoint[2]
            );

            throw new \InvalidArgumentException(
                $errorMessage
            );
        }

        $red = $imagickPixel->getColorValue(\Imagick::COLOR_RED);
        $green = $imagickPixel->getColorValue(\Imagick::COLOR_GREEN);
        $blue = $imagickPixel->getColorValue(\Imagick::COLOR_BLUE);
        $alpha = $imagickPixel->getColorValue(\Imagick::COLOR_ALPHA);

        $barycentricPoints[] = $red;
        $barycentricPoints[] = $green;
        $barycentricPoints[] = $blue;
        $barycentricPoints[] = $alpha;
    }

    $imagick->sparseColorImage($sparseMethod, $barycentricPoints);

    return $imagick;
}

?>


Joint une couleur solide dans l'image

  • « Imagick::sparseColorImage
  • Imagick::spreadImage »
  • PHP Manual
  • Imagick
  • Joint une couleur solide dans l'image

Imagick::spliceImage

(PECL imagick 2.0.0)

Imagick::spliceImage — Joint une couleur solide dans l'image

Description

bool Imagick::spliceImage ( int $width , int $height , int $x , int $y )

Joint une couleur solide dans l'image.

Liste de paramètres

width

height

x

y

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::spliceImage()

<?php
function spliceImage($imagePath, $startX, $startY, $width, $height) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->spliceImage($width, $height, $startX, $startY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Bouge aléatoirement chaque pixel d'un bloc

  • « Imagick::spliceImage
  • Imagick::statisticImage »
  • PHP Manual
  • Imagick
  • Bouge aléatoirement chaque pixel d'un bloc

Imagick::spreadImage

(PECL imagick 2.0.0)

Imagick::spreadImage — Bouge aléatoirement chaque pixel d'un bloc

Description

bool Imagick::spreadImage ( float $radius )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Effet spécial qui bouge aléatoirement chaque pixel d'un bloc, défini par le paramètre radius.

Liste de paramètres

radius

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::spreadImage()

<?php
function spreadImage($imagePath, $radius) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->spreadImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::spreadImage
  • Imagick::steganoImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::statisticImage

(No version information available, might only be in Git)

Imagick::statisticImage — Description

Description

public void Imagick::statisticImage ( int $type , int $width , int $height [, string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )

Replace each pixel with corresponding statistic from the neighborhood of the specified width and height.

Liste de paramètres

type

width

height

CHANNEL

Valeurs de retour

Exemples

Exemple #1 Imagick::statisticImage()

<?php
function statisticImage($imagePath, $statisticType, $width, $height, $channel) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->statisticImage(
        $statisticType,
        $width,
        $height,
        $channel
    );

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

statisticImage($imagePath, \Imagick::STATISTIC_MEDIAN, 5, 5, \Imagick::CHANNEL_DEFAULT);

?>


Cache un filigrane digital dans l'image

  • « Imagick::statisticImage
  • Imagick::stereoImage »
  • PHP Manual
  • Imagick
  • Cache un filigrane digital dans l'image

Imagick::steganoImage

(PECL imagick 2.0.0)

Imagick::steganoImage — Cache un filigrane digital dans l'image

Description

Imagick Imagick::steganoImage ( Imagick $watermark_wand , int $offset )

Cache un filigrane digital dans l'image. Récupérez le filigrane plus tard pour prouver l'authenticité de l'image. Le paramètre offset définit la position de départ à partir de laquelle on cache le filigrane.

Liste de paramètres

watermark_wand

offset

Valeurs de retour

Retourne TRUE en cas de succès.


Fusionne 2 images

  • « Imagick::steganoImage
  • Imagick::stripImage »
  • PHP Manual
  • Imagick
  • Fusionne 2 images

Imagick::stereoImage

(PECL imagick 2.0.0)

Imagick::stereoImage — Fusionne 2 images

Description

bool Imagick::stereoImage ( Imagick $offset_wand )

Fusionne 2 images et produit une seule image représentant la fusion de l'image de gauche et de droite d'une paire stéréo.

Liste de paramètres

offset_wand

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Supprime d'une image tous les profiles et les commentaires

  • « Imagick::stereoImage
  • Imagick::subImageMatch »
  • PHP Manual
  • Imagick
  • Supprime d'une image tous les profiles et les commentaires

Imagick::stripImage

(PECL imagick 2.0.0)

Imagick::stripImage — Supprime d'une image tous les profiles et les commentaires

Description

bool Imagick::stripImage ( void )

Supprime d'une image tous les profiles et les commentaires.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Description

  • « Imagick::stripImage
  • Imagick::swirlImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::subImageMatch

(No version information available, might only be in Git)

Imagick::subImageMatch — Description

Description

public Imagick Imagick::subImageMatch ( Imagick $Imagick [, array &$offset [, float &$similarity ]] )

Searches for a subimage in the current image and returns a similarity image such that an exact match location is completely white and if none of the pixels match, black, otherwise some gray level in-between. You can also pass in the optional parameters bestMatch and similarity. After calling the function similarity will be set to the 'score' of the similarity between the subimage and the matching position in the larger image, bestMatch will contain an associative array with elements x, y, width, height that describe the matching region.

Liste de paramètres

Imagick

offset

similarity

A new image that displays the amount of similarity at each pixel.

Valeurs de retour

Exemples

Exemple #1 Imagick::subImageMatch()

<?php
function subImageMatch($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick2 = clone $imagick;
    $imagick2->cropimage(40, 40, 250, 110);
    $imagick2->vignetteimage(0, 1, 3, 3);

    $similarity = null;
    $bestMatch = null;
    $comparison = $imagick->subImageMatch($imagick2, $bestMatch, $similarity);

    $comparison->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Tourbillonne les pixels du centre de l'image

  • « Imagick::subImageMatch
  • Imagick::textureImage »
  • PHP Manual
  • Imagick
  • Tourbillonne les pixels du centre de l'image

Imagick::swirlImage

(PECL imagick 2.0.0)

Imagick::swirlImage — Tourbillonne les pixels du centre de l'image

Description

bool Imagick::swirlImage ( float $degrees )

Tourbillonne les pixels du centre de l'image, où le paramètre degrees indique le degré du tourbillon de l'arc autour duquel les pixels sont bougés. Vous obtiendrez des effets différents suivant le degré choisi, entre 1 et 360.

Liste de paramètres

degrees

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::swirlImage()

<?php
function swirlImage($imagePath, $swirl) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->swirlImage($swirl);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Répète les carreaux de la texture d'une image

  • « Imagick::swirlImage
  • Imagick::thresholdImage »
  • PHP Manual
  • Imagick
  • Répète les carreaux de la texture d'une image

Imagick::textureImage

(PECL imagick 2.0.0)

Imagick::textureImage — Répète les carreaux de la texture d'une image

Description

bool Imagick::textureImage ( Imagick $texture_wand )

Répète les carreaux de la texture d'une image via le canevas de l'image.

Liste de paramètres

texture_wand

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::textureImage()

<?php
function textureImage($imagePath) {
    $image = new \Imagick();
    $image->newImage(640, 480, new \ImagickPixel('pink'));
    $image->setImageFormat("jpg");
    $texture = new \Imagick(realpath($imagePath));
    $texture->scaleimage($image->getimagewidth() / 4, $image->getimageheight() / 4);
    $image = $image->textureImage($texture);
    header("Content-Type: image/jpg");
    echo $image;
}

?>


Modifie la valeur des pixels individuels, basée sur un seuil

  • « Imagick::textureImage
  • Imagick::thumbnailImage »
  • PHP Manual
  • Imagick
  • Modifie la valeur des pixels individuels, basée sur un seuil

Imagick::thresholdImage

(PECL imagick 2.0.0)

Imagick::thresholdImage — Modifie la valeur des pixels individuels, basée sur un seuil

Description

bool Imagick::thresholdImage ( float $threshold [, int $channel = Imagick::CHANNEL_ALL ] )

Modifie la valeur des pixels individuels, basée sur l'intensité de chaque pixel, comparée au seuil. Le résultat sera une image d'un contraste élevé comprenant 2 couleurs.

Liste de paramètres

threshold

channel

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::thresholdImage()

<?php
function thresholdimage($imagePath, $threshold, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->thresholdimage($threshold * \Imagick::getQuantum(), $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Modifie la taille d'une image

  • « Imagick::thresholdImage
  • Imagick::tintImage »
  • PHP Manual
  • Imagick
  • Modifie la taille d'une image

Imagick::thumbnailImage

(PECL imagick 2.0.0)

Imagick::thumbnailImage — Modifie la taille d'une image

Description

bool Imagick::thumbnailImage ( int $columns , int $rows [, bool $bestfit = false [, bool $fill = false ]] )

Modifie la taille d'une image dans les dimensions données et supprime tous les profiles associés. Le but est de produire une miniature à faible coût pour l'afficher sur le web. Si TRUE est fourni comme troisième paramètre, alors les paramètres columns et rows seront utilisés comme maximum de chacun des côtés. Chaque côté sera abaissé tant que la taille désirée ne sera pas atteinte.

Note: Le comportement du paramètre bestfit a changé avec Imagick 3.0.0. Avant cette version, fournir les dimensions 400x400 à une image de dimensions 200x150 faisait que la partie gauche était inchangée. Avec Imagick 3.0.0 et suivants, l'image est réduite à la taille 400x300, sachant que c'est le meilleur résultat pour ces dimensions. Si le paramètre bestfit est utilisé, la largeur et la hauteur doivent être fournies.

Liste de paramètres

columns

Largeur de l'image

rows

Hauteur de l'image

bestfit

Si l'on doit forcer les valeurs maximales

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::thumbnailImage()

<?php
function thumbnailImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setbackgroundcolor('rgb(64, 64, 64)');
    $imagick->thumbnailImage(100, 100, true, true);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applique un vecteur de couleur à chaque pixel de l'image

  • « Imagick::thumbnailImage
  • Imagick::__toString »
  • PHP Manual
  • Imagick
  • Applique un vecteur de couleur à chaque pixel de l'image

Imagick::tintImage

(PECL imagick 2.0.0)

Imagick::tintImage — Applique un vecteur de couleur à chaque pixel de l'image

Description

bool Imagick::tintImage ( mixed $tint , mixed $opacity )

Applique un vecteur de couleur à chaque pixel de l'image. La longueur du vecteur est 0 pour noir et blanc et à son maximum pour des tons moyens. La fonction de vecteur est f(x)=(1-(4.0*((x-0.5)*(x-0.5)))).

Liste de paramètres

tint

opacity

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
2.1.0 | Autorise maintenant une chaîne représentant la couleur en tant que premier paramètre et un nombre décimal représentant la valeur d'opacité comme deuxième paramètre. Les anciennes versions autorisent uniquement des objets ImagickPixel.

Exemples

Exemple #1 Exemple avec Imagick::tintImage()

<?php
function tintImage($r, $g, $b, $a) {
    $a = $a / 100;

    $imagick = new \Imagick();
    $imagick->newPseudoImage(400, 400, 'gradient:black-white');

    $tint = new \ImagickPixel("rgb($r, $g, $b)");
    $opacity = new \ImagickPixel("rgb(128, 128, 128, $a)");
    $imagick->tintImage($tint, $opacity);
    $imagick->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Returns the image as a string.

  • « Imagick::tintImage
  • Imagick::transformImage »
  • PHP Manual
  • Imagick
  • Returns the image as a string.

Imagick::__toString

(No version information available, might only be in Git)

Imagick::__toString — Returns the image as a string.

Description

string Imagick::__toString ( void )

Returns the current image as string. This will only return a single image; it should not be used for Imagick objects that contain multiple images e.g. an animated GIF or PDF with multiple pages.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the string content on success or an empty string on failure.

Voir aussi

  • Imagick::getImageBlob() - Retourne la séquence d'images comme un blob
  • Imagick::getImagesBlob() - Retourne toutes les images de la séquence en un BLOB


Méthode de convenance pour définir la taille de rognage et la géométrie de l'image

  • « Imagick::__toString
  • Imagick::transformImageColorspace »
  • PHP Manual
  • Imagick
  • Méthode de convenance pour définir la taille de rognage et la géométrie de l'image

Imagick::transformImage

(PECL imagick 2.0.0)

Imagick::transformImage — Méthode de convenance pour définir la taille de rognage et la géométrie de l'image

Description

Imagick Imagick::transformImage ( string $crop , string $geometry )

Méthode de convenance pour définir la taille de rognage et la géométrie de l'image depuis des chaînes de caractères. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

crop

Une géométrie de rognage. Cette géométrie définit une sous-région de l'image à rogner.

geometry

Une géométrie. Cette géométrie définit la taille finale de l'image.

Valeurs de retour

Retourne un objet Imagick contenant l'image transformée.

Exemples

Exemple #1 Exemple avec Imagick::transformImage():

L'exemple crée une image noire 100x100.

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");
$new_image = $image->transformImage("100x100", "100x100");
$new_image->writeImage('test_out.jpg');
?>

Voir aussi

  • Imagick::cropImage() - Extrait une région d'une image
  • Imagick::resizeImage() - Redimensionne une image
  • Imagick::thumbnailImage() - Modifie la taille d'une image


Transforms an image to a new colorspace.

  • « Imagick::transformImage
  • Imagick::transparentPaintImage »
  • PHP Manual
  • Imagick
  • Transforms an image to a new colorspace.

Imagick::transformImageColorspace

(No version information available, might only be in Git)

Imagick::transformImageColorspace — Transforms an image to a new colorspace.

Description

bool Imagick::transformImageColorspace ( int $colorspace )

Transforms an image to a new colorspace.

Liste de paramètres

colorspace

The colorspace the image should be transformed to, one of the COLORSPACE constants e.g. Imagick::COLORSPACE_CMYK.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Imagick::transformImageColorspace() example

Transforms an image to a new colorspace, and then extracts a single channel so that the individual channel values can be viewed.

<?php
function transformImageColorspace($imagePath, $colorSpace, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transformimagecolorspace($colorSpace);
    //channel should be one of the channel constants e.g. \Imagick::CHANNEL_BLUE
    $imagick->separateImageChannel($channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}
?>

Voir aussi

  • Imagick::setColorSpace() - Définit l'espace de couleurs

Exemples

Exemple #2 Imagick::transformImageColorspace()

<?php
function transformImageColorspace($imagePath, $colorSpace, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transformimagecolorspace($colorSpace);
    $imagick->separateImageChannel($channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Colorise les pixels transparents

  • « Imagick::transformImageColorspace
  • Imagick::transposeImage »
  • PHP Manual
  • Imagick
  • Colorise les pixels transparents

Imagick::transparentPaintImage

(No version information available, might only be in Git)

Imagick::transparentPaintImage — Colorise les pixels transparents

Description

bool Imagick::transparentPaintImage ( mixed $target , float $alpha , float $fuzz , bool $invert )

Colorise les pixels correspondant à la couleur transparente. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.

Liste de paramètres

target

La couleur cible à coloriser.

alpha

Le degré de transparence : 1.0 correspond à totalement opaque et 0.0 à totalement transparent.

fuzz

La quantité de poussière de papier. Par exemple, le fait de définir la poussière de papier à 10 et la couleur rouge à une intensité de 100 et de 102 ne sera pas interprété comme la même couleur.

invert

Si TRUE, colorise tous les pixels qui ne correspondent pas à la couleur cible.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::transparentPaintImage()

<?php
function transparentPaintImage($color, $alpha, $fuzz) {
    $imagick = new \Imagick(realpath("images/BlueScreen.jpg"));

    //Need to be in a format that supports transparency
    $imagick->setimageformat('png');

    $imagick->transparentPaintImage(
        $color, $alpha, $fuzz * \Imagick::getQuantum(), false
    );

    //Not required, but helps tidy up left over pixels
    $imagick->despeckleimage();

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Applique une symétrie verticale

  • « Imagick::transparentPaintImage
  • Imagick::transverseImage »
  • PHP Manual
  • Imagick
  • Applique une symétrie verticale

Imagick::transposeImage

(PECL imagick 2.0.0)

Imagick::transposeImage — Applique une symétrie verticale

Description

bool Imagick::transposeImage ( void )

Applique une symétrie verticale, en créant la réflexion de chaque pixel autour d'un axe horizontal, avec une rotation de 90 degrés. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Retourne TRUE en cas de succès.

Voir aussi

  • Imagick::transverseImage() - Crée un miroir horizontal de l'image

Exemples

Exemple #1 Exemple avec Imagick::transposeImage()

<?php
function transposeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transposeImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Crée un miroir horizontal de l'image

  • « Imagick::transposeImage
  • Imagick::trimImage »
  • PHP Manual
  • Imagick
  • Crée un miroir horizontal de l'image

Imagick::transverseImage

(PECL imagick 2.0.0)

Imagick::transverseImage — Crée un miroir horizontal de l'image

Description

bool Imagick::transverseImage ( void )

Crée un miroir horizontal de l'image en reflétant les pixels autour d'un axe Y central, et en effectuant une rotation de 270 degrés. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Retourne TRUE en cas de succès.

Voir aussi

  • Imagick::transposeImage() - Applique une symétrie verticale

Exemples

Exemple #1 Exemple avec Imagick::transverseImage()

<?php
function transverseImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transverseImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Supprime les bords de l'image

  • « Imagick::transverseImage
  • Imagick::uniqueImageColors »
  • PHP Manual
  • Imagick
  • Supprime les bords de l'image

Imagick::trimImage

(PECL imagick 2.0.0)

Imagick::trimImage — Supprime les bords de l'image

Description

bool Imagick::trimImage ( float $fuzz )

Supprime les bords qui correspondent à la couleur d'arrière-plan de l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

fuzz

Par défaut, la cible doit correspondre à une couleur particulière de pixel. Cependant, dans la plupart des cas, 2 couleurs peuvent différer légèrement. Le paramètre fuzz de l'image définit la tolérance acceptée afin de considérer deux couleurs comme couleurs identiques. Ce paramètre représente les variations d'intervalle quantique.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::trimImage():

Tronque l'image, puis l'affiche au navigateur.

<?php
/* Crée l'objet et lit l'image */
$im = new Imagick("image.jpg");

/* Tronque l'image. */
$im->trimImage(0);

/* Affiche l'image */
header("Content-Type: image/" . $im->getImageFormat());
echo $im;
?>

Voir aussi

  • Imagick::getQuantumDepth() - Lit la profondeur quantique
  • Imagick::getQuantumRange() - Retourne l'intervalle quantique de Imagick


Ne conserve qu'une couleur de pixel

  • « Imagick::trimImage
  • Imagick::unsharpMaskImage »
  • PHP Manual
  • Imagick
  • Ne conserve qu'une couleur de pixel

Imagick::uniqueImageColors

(PECL imagick 2.0.0)

Imagick::uniqueImageColors — Ne conserve qu'une couleur de pixel

Description

bool Imagick::uniqueImageColors ( void )

Ne conserve qu'une couleur de pixel et supprime les autres. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::uniqueImageColors()

<?php
function uniqueImageColors($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    //Reduce the image to 256 colours nicely.
    $imagick->quantizeImage(256, \Imagick::COLORSPACE_YIQ, 0, false, false);
    $imagick->uniqueImageColors();
    $imagick->scaleimage($imagick->getImageWidth(), $imagick->getImageHeight() * 20);
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Rend une image plus nette

  • « Imagick::uniqueImageColors
  • Imagick::valid »
  • PHP Manual
  • Imagick
  • Rend une image plus nette

Imagick::unsharpMaskImage

(PECL imagick 2.0.0)

Imagick::unsharpMaskImage — Rend une image plus nette

Description

bool Imagick::unsharpMaskImage ( float $radius , float $sigma , float $amount , float $threshold [, int $channel = Imagick::CHANNEL_ALL ] )

Rend une image plus nette. Nous traitons l'image avec un opérateur Gaussien d'un radius donné et d'une déviation standard (sigma). Pour de bons résultats, le radius doit être supérieur au sigma. L'utilisation d'un radius de 0 et Imagick::UnsharpMaskImage() sélectionne un bon radius pour vous.

Liste de paramètres

radius

sigma

amount

threshold

channel

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::unsharpMaskImage()

<?php
function unsharpMaskImage($imagePath, $radius, $sigma, $amount, $unsharpThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->unsharpMaskImage($radius, $sigma, $amount, $unsharpThreshold);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Vérifie si l'élément courant est valide

  • « Imagick::unsharpMaskImage
  • Imagick::vignetteImage »
  • PHP Manual
  • Imagick
  • Vérifie si l'élément courant est valide

Imagick::valid

(PECL imagick 2.0.0)

Imagick::valid — Vérifie si l'élément courant est valide

Description

bool Imagick::valid ( void )

Vérifie si l'élément courant est valide.

Valeurs de retour

Retourne TRUE en cas de succès.


Ajout un filtre vignette à l'image

  • « Imagick::valid
  • Imagick::waveImage »
  • PHP Manual
  • Imagick
  • Ajout un filtre vignette à l'image

Imagick::vignetteImage

(PECL imagick 2.0.0)

Imagick::vignetteImage — Ajout un filtre vignette à l'image

Description

bool Imagick::vignetteImage ( float $blackPoint , float $whitePoint , int $x , int $y )

Adoucit les contours de l'image, à la mode des vignettes. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

blackPoint

Le rayon du flou

whitePoint

La déviation standard

x

L'abscisse de l'ellipse.

y

L'ordonnée de l'ellipse.

Valeurs de retour

Retourne TRUE en cas de succès.

Voir aussi

  • Imagick::waveImage() - Ajoute un filtre de vagues à l'image
  • Imagick::swirlImage() - Tourbillonne les pixels du centre de l'image

Exemples

Exemple #1 Exemple avec Imagick::vignetteImage()

<?php
function vignetteImage($imagePath, $blackPoint, $whitePoint, $x, $y) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->vignetteImage($blackPoint, $whitePoint, $x, $y);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Ajoute un filtre de vagues à l'image

  • « Imagick::vignetteImage
  • Imagick::whiteThresholdImage »
  • PHP Manual
  • Imagick
  • Ajoute un filtre de vagues à l'image

Imagick::waveImage

(PECL imagick 2.0.0)

Imagick::waveImage — Ajoute un filtre de vagues à l'image

Description

bool Imagick::waveImage ( float $amplitude , float $length )

Ajoute un filtre de vagues à l'image. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.

Liste de paramètres

amplitude

Amplitude de la vague.

length

Longueur de la vague.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Voir aussi

  • Imagick::solarizeImage() - Applique un effet de solarisation à l'image
  • Imagick::oilpaintImage() - Simule une peinture à l'huile
  • Imagick::embossImage() - Retourne une image en niveau de gris, avec un effet 3D
  • Imagick::addNoiseImage() - Ajoute un bruit blanc à une image
  • Imagick::swirlImage() - Tourbillonne les pixels du centre de l'image

Exemples

Exemple #1 WaveImage peut être très lent ; Imagick::waveImage()

<?php
function waveImage($imagePath, $amplitude, $length) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->waveImage($amplitude, $length);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Force tous les pixels en dessous du seuil en blanc

  • « Imagick::waveImage
  • Imagick::writeImage »
  • PHP Manual
  • Imagick
  • Force tous les pixels en dessous du seuil en blanc

Imagick::whiteThresholdImage

(PECL imagick 2.0.0)

Imagick::whiteThresholdImage — Force tous les pixels en dessous du seuil en blanc

Description

bool Imagick::whiteThresholdImage ( mixed $threshold )

Identique à Imagick::ThresholdImage() mais force tous les pixels en dessous du seuil en blanc, laissant tous les autres pixels inchangés.

Liste de paramètres

threshold

Valeurs de retour

Retourne TRUE en cas de succès.

Historique

Version | Description
2.1.0 | Autorise désormais une chaîne représentant la couleur comme paramètre. Les anciennes versions ne permettaient qu'un objet ImagickPixel.

Exemples

Exemple #1 Exemple avec Imagick::whiteThresholdImage()

<?php
function whiteThresholdImage($imagePath, $color) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->whiteThresholdImage($color);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Écrit une image dans le fichier spécifié

  • « Imagick::whiteThresholdImage
  • Imagick::writeImageFile »
  • PHP Manual
  • Imagick
  • Écrit une image dans le fichier spécifié

Imagick::writeImage

(PECL imagick 0.9.0-0.9.9)

Imagick::writeImage — Écrit une image dans le fichier spécifié

Description

bool Imagick::writeImage ([ string $filename = NULL ] )

Écrit une image dans un fichier spécifié. Si le paramètre filename vaut NULL, l'image sera écrite dans le fichier défini par Imagick::readImage() ou Imagick::setImageFilename().

Liste de paramètres

filename

Nom du fichier dans lequel l'image sera écrite. L'extension du fichier définit le type de fichier. Le format peut être forcé malgré l'extension de fichier en utilisant format: préfixe, par exemple "jpg:test.png".

Valeurs de retour

Retourne TRUE en cas de succès.


Écrit une image dans un descripteur de fichier

  • « Imagick::writeImage
  • Imagick::writeImages »
  • PHP Manual
  • Imagick
  • Écrit une image dans un descripteur de fichier

Imagick::writeImageFile

(No version information available, might only be in Git)

Imagick::writeImageFile — Écrit une image dans un descripteur de fichier

Description

bool Imagick::writeImageFile ( resource $filehandle )

Écrit la séquence de l'image dans un descripteur de fichier ouvert. Le descripteur doit avoir été ouvert avec, par exemple, la fonction fopen. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

filehandle

Descripteur de fichier dans lequel l'image sera écrite.

Valeurs de retour

Retourne TRUE en cas de succès.


Écrit une image ou une séquence d'images

  • « Imagick::writeImageFile
  • Imagick::writeImagesFile »
  • PHP Manual
  • Imagick
  • Écrit une image ou une séquence d'images

Imagick::writeImages

(PECL imagick 0.9.0-0.9.9)

Imagick::writeImages — Écrit une image ou une séquence d'images

Description

bool Imagick::writeImages ( string $filename , bool $adjoin )

Écrit une image ou une séquence d'images.

Liste de paramètres

filename

adjoin

Valeurs de retour

Retourne TRUE en cas de succès.


Écrits des frames dans un descripteur de fichiers

  • « Imagick::writeImages
  • ImagickDraw »
  • PHP Manual
  • Imagick
  • Écrits des frames dans un descripteur de fichiers

Imagick::writeImagesFile

(No version information available, might only be in Git)

Imagick::writeImagesFile — Écrits des frames dans un descripteur de fichiers

Description

bool Imagick::writeImagesFile ( resource $filehandle )

Écrits toutes les frames d'un image dans un descripteur de fichier. Cette méthode peut être utilisée pour écrire des gifs animés ou d'autres images composées de plusieurs frames dans un descripteur de fichier ouvert. Cette méthode n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.

Liste de paramètres

filehandle

Descripteur de fichier dans lequel les frames seront écrites.

Valeurs de retour

Retourne TRUE en cas de succès.


La classe ImagickDraw

(PECL imagick 2.0.0)

Synopsis de la classe

ImagickDraw {
bool affine ( array $affine )
bool annotation ( float $x , float $y , string $text )
bool arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )
bool bezier ( array $coordinates )
bool circle ( float $ox , float $oy , float $px , float $py )
bool clear ( void )
ImagickDraw clone ( void )
bool color ( float $x , float $y , int $paintMethod )
bool comment ( string $comment )
bool composite ( int $compose , float $x , float $y , float $width , float $height , Imagick $compositeWand )
__construct ( void )
bool destroy ( void )
bool ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )
string getClipPath ( void )
int getClipRule ( void )
int getClipUnits ( void )
ImagickPixel getFillColor ( void )
float getFillOpacity ( void )
int getFillRule ( void )
string getFont ( void )
string getFontFamily ( void )
float getFontSize ( void )
public int getFontStretch ( void )
int getFontStyle ( void )
int getFontWeight ( void )
int getGravity ( void )
bool getStrokeAntialias ( void )
ImagickPixel getStrokeColor ( void )
array getStrokeDashArray ( void )
float getStrokeDashOffset ( void )
int getStrokeLineCap ( void )
int getStrokeLineJoin ( void )
int getStrokeMiterLimit ( void )
float getStrokeOpacity ( void )
float getStrokeWidth ( void )
int getTextAlignment ( void )
bool getTextAntialias ( void )
int getTextDecoration ( void )
string getTextEncoding ( void )
public float getTextInterlineSpacing ( void )
public float getTextInterwordSpacing ( void )
public float getTextKerning ( void )
ImagickPixel getTextUnderColor ( void )
string getVectorGraphics ( void )
bool line ( float $sx , float $sy , float $ex , float $ey )
bool matte ( float $x , float $y , int $paintMethod )
bool pathClose ( void )
bool pathCurveToAbsolute ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
bool pathCurveToQuadraticBezierAbsolute ( float $x1 , float $y1 , float $x , float $y )
bool pathCurveToQuadraticBezierRelative ( float $x1 , float $y1 , float $x , float $y )
bool pathCurveToQuadraticBezierSmoothAbsolute ( float $x , float $y )
bool pathCurveToQuadraticBezierSmoothRelative ( float $x , float $y )
bool pathCurveToRelative ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
bool pathCurveToSmoothAbsolute ( float $x2 , float $y2 , float $x , float $y )
bool pathCurveToSmoothRelative ( float $x2 , float $y2 , float $x , float $y )
bool pathEllipticArcAbsolute ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
bool pathEllipticArcRelative ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
bool pathFinish ( void )
bool pathLineToAbsolute ( float $x , float $y )
bool pathLineToHorizontalAbsolute ( float $x )
bool pathLineToHorizontalRelative ( float $x )
bool pathLineToRelative ( float $x , float $y )
bool pathLineToVerticalAbsolute ( float $y )
bool pathLineToVerticalRelative ( float $y )
bool pathMoveToAbsolute ( float $x , float $y )
bool pathMoveToRelative ( float $x , float $y )
bool pathStart ( void )
bool point ( float $x , float $y )
bool polygon ( array $coordinates )
bool polyline ( array $coordinates )
bool pop ( void )
bool popClipPath ( void )
bool popDefs ( void )
bool popPattern ( void )
bool push ( void )
bool pushClipPath ( string $clip_mask_id )
bool pushDefs ( void )
bool pushPattern ( string $pattern_id , float $x , float $y , float $width , float $height )
bool rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )
bool render ( void )
public void resetVectorGraphics ( void )
bool rotate ( float $degrees )
bool roundRectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )
bool scale ( float $x , float $y )
bool setClipPath ( string $clip_mask )
bool setClipRule ( int $fill_rule )
bool setClipUnits ( int $clip_units )
bool setFillAlpha ( float $opacity )
bool setFillColor ( ImagickPixel $fill_pixel )
bool setFillOpacity ( float $fillOpacity )
bool setFillPatternURL ( string $fill_url )
bool setFillRule ( int $fill_rule )
bool setFont ( string $font_name )
bool setFontFamily ( string $font_family )
bool setFontSize ( float $pointsize )
bool setFontStretch ( int $fontStretch )
bool setFontStyle ( int $style )
bool setFontWeight ( int $font_weight )
bool setGravity ( int $gravity )
public void setResolution ( string $x_resolution , string $y_resolution )
bool setStrokeAlpha ( float $opacity )
bool setStrokeAntialias ( bool $stroke_antialias )
bool setStrokeColor ( ImagickPixel $stroke_pixel )
bool setStrokeDashArray ( array $dashArray )
bool setStrokeDashOffset ( float $dash_offset )
bool setStrokeLineCap ( int $linecap )
bool setStrokeLineJoin ( int $linejoin )
bool setStrokeMiterLimit ( int $miterlimit )
bool setStrokeOpacity ( float $stroke_opacity )
bool setStrokePatternURL ( string $stroke_url )
bool setStrokeWidth ( float $stroke_width )
bool setTextAlignment ( int $alignment )
bool setTextAntialias ( bool $antiAlias )
bool setTextDecoration ( int $decoration )
bool setTextEncoding ( string $encoding )
public void setTextInterlineSpacing ( float $spacing )
public void setTextInterwordSpacing ( float $spacing )
public void setTextKerning ( float $kerning )
bool setTextUnderColor ( ImagickPixel $under_color )
bool setVectorGraphics ( string $xml )
bool setViewbox ( int $x1 , int $y1 , int $x2 , int $y2 )
bool skewX ( float $degrees )
bool skewY ( float $degrees )
bool translate ( float $x , float $y )
}

Sommaire

  • ImagickDraw::affine — Ajuste la matrice de transformation affine courante
  • ImagickDraw::annotation — Dessine un texte sur une image
  • ImagickDraw::arc — Dessine un arc
  • ImagickDraw::bezier — Dessine une courbe de Bézier
  • ImagickDraw::circle — Dessine un cercle
  • ImagickDraw::clear — Efface tout l'objet ImagickDraw
  • ImagickDraw::clone — Fait une copie exacte de l'objet ImagickDraw
  • ImagickDraw::color — Dessine une couleur sur une image
  • ImagickDraw::comment — Ajoute un commentaire
  • ImagickDraw::composite — Compose une image avec une autre
  • ImagickDraw::__construct — Le constructeur ImagickDraw
  • ImagickDraw::destroy — Libère toutes les ressources associées à un objet ImageDraw
  • ImagickDraw::ellipse — Dessine une ellipse sur une image
  • ImagickDraw::getClipPath — Retourne l'identifiant du chemin courant
  • ImagickDraw::getClipRule — Retourne la règle de remplissage courante pour les polygones
  • ImagickDraw::getClipUnits — Retourne l'unité d'interprétation des chemins
  • ImagickDraw::getFillColor — Retourne la couleur de remplissage
  • ImagickDraw::getFillOpacity — Retourne l'opacité de dessin
  • ImagickDraw::getFillRule — Retourne la règle de remplissage
  • ImagickDraw::getFont — Retourne la police
  • ImagickDraw::getFontFamily — Retourne la famille de police
  • ImagickDraw::getFontSize — Retourne la taille de la police
  • ImagickDraw::getFontStretch — Description
  • ImagickDraw::getFontStyle — Retourne le style de la police
  • ImagickDraw::getFontWeight — Retourne le poids de la police
  • ImagickDraw::getGravity — Retourne la gravité de placement de texte
  • ImagickDraw::getStrokeAntialias — Retourne la configuration d'anti-aliasing de trait
  • ImagickDraw::getStrokeColor — Retourne la couleur des contours d'objets
  • ImagickDraw::getStrokeDashArray — Retourne un tableau représentant le motif de pointillés
  • ImagickDraw::getStrokeDashOffset — Retourne l'offset du pointillé dans le motif
  • ImagickDraw::getStrokeLineCap — Retourne la forme à utiliser pour dessiner les bouts de sous-chemins
  • ImagickDraw::getStrokeLineJoin — Retourne la forme à utiliser pour dessiner les coins d'un chemin
  • ImagickDraw::getStrokeMiterLimit — Retourne la 'miterLimit'
  • ImagickDraw::getStrokeOpacity — Retourne l'opacité des contours d'un objet
  • ImagickDraw::getStrokeWidth — Retourne la largeur du trait utilisé
  • ImagickDraw::getTextAlignment — Retourne l'alignement du texte
  • ImagickDraw::getTextAntialias — Retourne la configuration de l'anti-aliasing de texte
  • ImagickDraw::getTextDecoration — Retourne la décoration du texte
  • ImagickDraw::getTextEncoding — Retourne le jeu de caractères utilisé pour les annotations de texte
  • ImagickDraw::getTextInterlineSpacing — Description
  • ImagickDraw::getTextInterwordSpacing — Description
  • ImagickDraw::getTextKerning — Description
  • ImagickDraw::getTextUnderColor — Retourne la couleur sous le texte
  • ImagickDraw::getVectorGraphics — Retourne une chaîne contenant le vecteur graphique
  • ImagickDraw::line — Dessine une ligne
  • ImagickDraw::matte — Dessine sur le canal d'opacité de l'image
  • ImagickDraw::pathClose — Ajoute un élément de chemin au chemin courant
  • ImagickDraw::pathCurveToAbsolute — Dessine une courbe de Bézier cubique, en coordonnées absolues
  • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Dessine une courbe de Bézier quadratique, en coordonnées absolues
  • ImagickDraw::pathCurveToQuadraticBezierRelative — Dessine une courbe de Bézier quadratique, en coordonnées relatives
  • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Dessine une courbe de Bézier de puissance 4, en coordonnées absolues
  • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Dessine une courbe de Bézier de puissance 4, en coordonnées relatives
  • ImagickDraw::pathCurveToRelative — Dessine une courbe de Bézier cubique, en coordonnées relatives
  • ImagickDraw::pathCurveToSmoothAbsolute — Dessine une courbe de Bézier, en coordonnées absolues
  • ImagickDraw::pathCurveToSmoothRelative — Dessine une courbe de Bézier, en coordonnées relatives
  • ImagickDraw::pathEllipticArcAbsolute — Dessine un arc d'ellipse, en coordonnées absolues
  • ImagickDraw::pathEllipticArcRelative — Dessine un arc d'ellipse, en coordonnées relatives
  • ImagickDraw::pathFinish — Termine le chemin courant
  • ImagickDraw::pathLineToAbsolute — Dessine une ligne de chemin, en coordonnées absolues
  • ImagickDraw::pathLineToHorizontalAbsolute — Dessine une ligne de chemin horizontale, en coordonnées absolues
  • ImagickDraw::pathLineToHorizontalRelative — Dessine une ligne de chemin horizontale, en coordonnées relatives
  • ImagickDraw::pathLineToRelative — Dessine une ligne de chemin, en coordonnées relatives
  • ImagickDraw::pathLineToVerticalAbsolute — Dessine une ligne de chemin verticale, en coordonnées absolues
  • ImagickDraw::pathLineToVerticalRelative — Dessine une ligne de chemin verticale, en coordonnées relatives
  • ImagickDraw::pathMoveToAbsolute — Commence un nouveau sous-chemin, en coordonnées absolues
  • ImagickDraw::pathMoveToRelative — Commence un nouveau sous-chemin, en coordonnées relatives
  • ImagickDraw::pathStart — Déclare le début d'une chemin de dessin
  • ImagickDraw::point — Dessine un point
  • ImagickDraw::polygon — Dessine un polygone
  • ImagickDraw::polyline — Dessine une ligne brisée
  • ImagickDraw::pop — Détruit l'objet ImagickDraw courant dans la pile, et retourne son précédent
  • ImagickDraw::popClipPath — Termine la définition d'un chemin
  • ImagickDraw::popDefs — Termine une définition de liste
  • ImagickDraw::popPattern — Termine une définition de motif
  • ImagickDraw::push — Clone l'objet ImagickDraw courant et le pousse dans la pile
  • ImagickDraw::pushClipPath — Commence la définition d'un chemin
  • ImagickDraw::pushDefs — Indique que la commande suivante créée des éléments nommés pour pré-traitement
  • ImagickDraw::pushPattern — Configure un espace de dessin
  • ImagickDraw::rectangle — Dessine un rectangle
  • ImagickDraw::render — Effectue le rendu de tous les dessins à l'image
  • ImagickDraw::resetVectorGraphics — Description
  • ImagickDraw::rotate — Applique une rotation
  • ImagickDraw::roundRectangle — Dessine un rectangle aux coins arrondis
  • ImagickDraw::scale — Ajuste le facteur de mise à l'échelle
  • ImagickDraw::setClipPath — Associe un chemin avec une image
  • ImagickDraw::setClipRule — Configure la règle de remplissage du polygone à utiliser avec les chemins
  • ImagickDraw::setClipUnits — Configure le mode d'interprétation des unités de chemin
  • ImagickDraw::setFillAlpha — Configure l'opacité de la couleur de remplissage
  • ImagickDraw::setFillColor — Configure la couleur de dessin des objets remplis
  • ImagickDraw::setFillOpacity — Configure l'opacité à utiliser pour le remplissage
  • ImagickDraw::setFillPatternURL — Configure l'URL du motif de remplissage des surfaces
  • ImagickDraw::setFillRule — Configure la règle de remplissage des polygones
  • ImagickDraw::setFont — Configure la police complète pour les textes
  • ImagickDraw::setFontFamily — Configure la famille de police pour les textes
  • ImagickDraw::setFontSize — Configure la taille de point pour les textes
  • ImagickDraw::setFontStretch — Configure l'étirement du texte
  • ImagickDraw::setFontStyle — Configure le style de police
  • ImagickDraw::setFontWeight — Configure le poids de la police
  • ImagickDraw::setGravity — Configure la gravité de placement de texte
  • ImagickDraw::setResolution — Description
  • ImagickDraw::setStrokeAlpha — Spécifie l'opacité des contours d'objets
  • ImagickDraw::setStrokeAntialias — Contrôle l'anti-aliasing des pointillés
  • ImagickDraw::setStrokeColor — Configure la couleur utilisée pour dessiner les objets
  • ImagickDraw::setStrokeDashArray — Spécifie le motif de pointillé
  • ImagickDraw::setStrokeDashOffset — Spécifie la position dans le motif pour commencer le pointillé
  • ImagickDraw::setStrokeLineCap — Spécifie la forme à utiliser à la fin des sous-chemins
  • ImagickDraw::setStrokeLineJoin — Spécifie la forme à utiliser pour dessiner les fins de lignes
  • ImagickDraw::setStrokeMiterLimit — Spécifie la limiter miter
  • ImagickDraw::setStrokeOpacity — Spécifie l'opacité pour dessiner les contours
  • ImagickDraw::setStrokePatternURL — Configure le motif utilisé pour dessiner les contours
  • ImagickDraw::setStrokeWidth — Configure la largeur du trait pour dessiner les contours
  • ImagickDraw::setTextAlignment — Spécifie l'alignement du texte
  • ImagickDraw::setTextAntialias — Contrôle l'anti-alisasing du texte
  • ImagickDraw::setTextDecoration — Spécifie les ornements de texte
  • ImagickDraw::setTextEncoding — Spécifie le jeu de caractères
  • ImagickDraw::setTextInterlineSpacing — Description
  • ImagickDraw::setTextInterwordSpacing — Description
  • ImagickDraw::setTextKerning — Description
  • ImagickDraw::setTextUnderColor — Spécifie la couleur de fond d'une rectangle
  • ImagickDraw::setVectorGraphics — Configure le vecteur graphique
  • ImagickDraw::setViewbox — Configure la taille du canevas
  • ImagickDraw::skewX — Biaise les coordonnées dans la direction horizontale
  • ImagickDraw::skewY — Incline les coordonnées dans la direction verticale
  • ImagickDraw::translate — Applique une translation


Ajuste la matrice de transformation affine courante

  • « ImagickDraw
  • ImagickDraw::annotation »
  • PHP Manual
  • ImagickDraw
  • Ajuste la matrice de transformation affine courante

ImagickDraw::affine

(PECL imagick 2.0.0)

ImagickDraw::affine — Ajuste la matrice de transformation affine courante

Description

bool ImagickDraw::affine ( array $affine )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajuste la matrice de transformation affine courante, avec la nouvelle matrice de transformation.

Liste de paramètres

affine

Paramètres de matrice de transformation affine.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::affine()

<?php
function affine($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);

    $PI = 3.141592653589794;
    $angle = 60 * $PI / 360;

    //Scale the drawing co-ordinates.
    $affineScale = array("sx" => 1.75, "sy" => 1.75, "rx" => 0, "ry" => 0, "tx" => 0, "ty" => 0);

    //Shear the drawing co-ordinates.
    $affineShear = array("sx" => 1, "sy" => 1, "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0);

    //Rotate the drawing co-ordinates. The shear affine matrix
    //produces incorrectly scaled drawings.
    $affineRotate = array("sx" => cos($angle), "sy" => cos($angle), "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0,);

    //Translate (offset) the drawing
    $affineTranslate = array("sx" => 1, "sy" => 1, "rx" => 0, "ry" => 0, "tx" => 30, "ty" => 30);

    //The identiy affine matrix
    $affineIdentity = array("sx" => 1, "sy" => 1, "rx" => 0, "ry" => 0, "tx" => 0, "ty" => 0);

    $examples = [$affineScale, $affineShear, $affineRotate, $affineTranslate, $affineIdentity,];

    $count = 0;

    foreach ($examples as $example) {
        $draw->push();
        $draw->translate(($count % 2) * 250, intval($count / 2) * 250);
        $draw->translate(100, 100);
        $draw->affine($example);
        $draw->rectangle(-50, -50, 50, 50);
        $draw->pop();
        $count++;
    }

    //Create an image object which the draw commands can be rendered into
    $image = new \Imagick();
    $image->newImage(500, 750, $backgroundColor);
    $image->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $image->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Dessine un texte sur une image

  • « ImagickDraw::affine
  • ImagickDraw::arc »
  • PHP Manual
  • ImagickDraw
  • Dessine un texte sur une image

ImagickDraw::annotation

(PECL imagick 2.0.0)

ImagickDraw::annotation — Dessine un texte sur une image

Description

bool ImagickDraw::annotation ( float $x , float $y , string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un texte sur une image.

Liste de paramètres

x

L'abscisse du texte à dessiner.

y

L'ordonnée du texte à dessiner.

text

Le texte à dessiner.

Valeurs de retour

Aucune valeur n'est retournée.


Dessine un arc

  • « ImagickDraw::annotation
  • ImagickDraw::bezier »
  • PHP Manual
  • ImagickDraw
  • Dessine un arc

ImagickDraw::arc

(PECL imagick 2.0.0)

ImagickDraw::arc — Dessine un arc

Description

bool ImagickDraw::arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un arc, placé à l'intérieur d'un rectangle.

Liste de paramètres

sx

Abscisse du point de début d'arc dans le rectangle d'encadrement

sy

Ordonnée du point de début d'arc dans le rectangle d'encadrement

ex

Abscisse du point de fin d'arc dans le rectangle d'encadrement

ey

Ordonnée du point de fin d'arc dans le rectangle d'encadrement

sd

Degré de rotation initial

ed

Degré de rotation final

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::arc()

<?php
function arc($strokeColor, $fillColor, $backgroundColor, $startX, $startY, $endX, $endY, $startAngle, $endAngle) {

    //Create a ImagickDraw object to draw into.
    $draw = new \ImagickDraw();
    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);

    $draw->arc($startX, $startY, $endX, $endY, $startAngle, $endAngle);

    //Create an image object which the draw commands can be rendered into
    $image = new \Imagick();
    $image->newImage(IMAGE_WIDTH, IMAGE_HEIGHT, $backgroundColor);
    $image->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $image->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Dessine une courbe de Bézier

  • « ImagickDraw::arc
  • ImagickDraw::circle »
  • PHP Manual
  • ImagickDraw
  • Dessine une courbe de Bézier

ImagickDraw::bezier

(PECL imagick 2.0.0)

ImagickDraw::bezier — Dessine une courbe de Bézier

Description

bool ImagickDraw::bezier ( array $coordinates )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier, à l'ait d'une série de point de contrôle.

Liste de paramètres

coordinates

Tableau multidimensionnel tel que array( array( 'x' => 1, 'y' => 2 ), array( 'x' => 3, 'y' => 4 ) )

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::bezier()

<?php
function bezier($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);

    $smoothPointsSet = [
        [
            ['x' => 10.0 * 5, 'y' => 10.0 * 5],
            ['x' => 30.0 * 5, 'y' => 90.0 * 5],
            ['x' => 25.0 * 5, 'y' => 10.0 * 5],
            ['x' => 50.0 * 5, 'y' => 50.0 * 5],
        ],
        [
            ['x' => 50.0 * 5, 'y' => 50.0 * 5],
            ['x' => 75.0 * 5, 'y' => 90.0 * 5],
            ['x' => 70.0 * 5, 'y' => 10.0 * 5],
            ['x' => 90.0 * 5, 'y' => 40.0 * 5],
        ],
    ];

    foreach ($smoothPointsSet as $points) {
        $draw->bezier($points);
    }

    $disjointPoints = [
        [
            ['x' => 10 * 5, 'y' => 10 * 5],
            ['x' => 30 * 5, 'y' => 90 * 5],
            ['x' => 25 * 5, 'y' => 10 * 5],
            ['x' => 50 * 5, 'y' => 50 * 5],
        ],
        [
            ['x' => 50 * 5, 'y' => 50 * 5],
            ['x' => 80 * 5, 'y' => 50 * 5],
            ['x' => 70 * 5, 'y' => 10 * 5],
            ['x' => 90 * 5, 'y' => 40 * 5],
         ]
    ];
    $draw->translate(0, 200);

    foreach ($disjointPoints as $points) {
        $draw->bezier($points);
    }

    //Création d'un objet image dans lequel on appliquera les commandes de dessin
    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    //On applique les commandes de dessin à l'objet ImagickDraw
    //et dans l'image.
    $imagick->drawImage($draw);

    //On envoie l'image au navigateur
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Dessine un cercle

  • « ImagickDraw::bezier
  • ImagickDraw::clear »
  • PHP Manual
  • ImagickDraw
  • Dessine un cercle

ImagickDraw::circle

(PECL imagick 2.0.0)

ImagickDraw::circle — Dessine un cercle

Description

bool ImagickDraw::circle ( float $ox , float $oy , float $px , float $py )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un cercle.

Liste de paramètres

ox

abscisse de l'origine

oy

ordonnée de l'origine

px

abscisse du périmètre

py

ordonnée du périmètre

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::circle()

<?php
function circle($strokeColor, $fillColor, $backgroundColor, $originX, $originY, $endX, $endY) {

    //Création d'un objet ImagickDraw.
    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->circle($originX, $originY, $endX, $endY);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Efface tout l'objet ImagickDraw

  • « ImagickDraw::circle
  • ImagickDraw::clone »
  • PHP Manual
  • ImagickDraw
  • Efface tout l'objet ImagickDraw

ImagickDraw::clear

(PECL imagick 2.0.0)

ImagickDraw::clear — Efface tout l'objet ImagickDraw

Description

bool ImagickDraw::clear ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Efface tout l'objet ImagickDraw et toutes les commandes accumulées, puis remet les directives à leur valeur par défaut.

Valeurs de retour

Retourne un objet ImagickDraw.


Fait une copie exacte de l'objet ImagickDraw

  • « ImagickDraw::clear
  • ImagickDraw::color »
  • PHP Manual
  • ImagickDraw
  • Fait une copie exacte de l'objet ImagickDraw

ImagickDraw::clone

(PECL imagick 2.0.0)

ImagickDraw::clone — Fait une copie exacte de l'objet ImagickDraw

Description

ImagickDraw ImagickDraw::clone ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Fait une copie exacte de l'objet ImagickDraw.

Valeurs de retour


Dessine une couleur sur une image

  • « ImagickDraw::clone
  • ImagickDraw::comment »
  • PHP Manual
  • ImagickDraw
  • Dessine une couleur sur une image

ImagickDraw::color

(PECL imagick 2.0.0)

ImagickDraw::color — Dessine une couleur sur une image

Description

bool ImagickDraw::color ( float $x , float $y , int $paintMethod )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une couleur sur une image, avec la couleur de remplissage courante, en commençant à une position donnée, et en utilisant la méthode de coloration indiquée.

Liste de paramètres

x

abscisse du point de peinture

y

ordonnée du point de peinture

paintMethod

une des constantes de PAINT_

Valeurs de retour

Aucune valeur n'est retournée.


Ajoute un commentaire

  • « ImagickDraw::color
  • ImagickDraw::composite »
  • PHP Manual
  • ImagickDraw
  • Ajoute un commentaire

ImagickDraw::comment

(PECL imagick 2.0.0)

ImagickDraw::comment — Ajoute un commentaire

Description

bool ImagickDraw::comment ( string $comment )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute un commentaire au flux de sortie.

Liste de paramètres

comment

La chaîne de commentaire

Valeurs de retour

Aucune valeur n'est retournée.


Compose une image avec une autre

  • « ImagickDraw::comment
  • ImagickDraw::__construct »
  • PHP Manual
  • ImagickDraw
  • Compose une image avec une autre

ImagickDraw::composite

(PECL imagick 2.0.0)

ImagickDraw::composite — Compose une image avec une autre

Description

bool ImagickDraw::composite ( int $compose , float $x , float $y , float $width , float $height , Imagick $compositeWand )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Compose une image avec une autre an image, en utilisant l'opérateur de composition, à la position et à la taille indiquées.

Liste de paramètres

compose

l'opérateur de composition. Une des constantes COMPOSITE_

x

abscisse du coin supérieur gauche

y

ordonnée du coin supérieur gauche

width

largeur de l'image de composition

height

hauteur de l'image de composition

compositeWand

L'objet Imagick où la composition est prise

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec ImagickDraw::composite()

<?php
function composite($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setFillOpacity(1);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(2);
    $draw->setFont("../fonts/CANDY.TTF");
    $draw->setFontSize(140);
    $draw->rectangle(0, 0, 1000, 300);
    $draw->setFillColor('white');
    $draw->setfillopacity(1);
    $draw->annotation(50, 180, "Lorem Ipsum!");

    //Crée un objet image servant de base
    $imagick = new \Imagick();
    $imagick->newImage(1000, 302, $backgroundColor);
    $imagick->setImageFormat("png");

    //On applique les commandes de dessin dans l'objet ImagickDraw
    //et dans l'image.
    $imagick->drawImage($draw);

    //On envoie l'image au navigateur
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Le constructeur ImagickDraw

  • « ImagickDraw::composite
  • ImagickDraw::destroy »
  • PHP Manual
  • ImagickDraw
  • Le constructeur ImagickDraw

ImagickDraw::__construct

(PECL imagick 2.0.0)

ImagickDraw::__construct — Le constructeur ImagickDraw

Description

ImagickDraw::__construct ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Le constructeur de la classe ImagickDraw.

Valeurs de retour

Aucune valeur n'est retournée.


Libère toutes les ressources associées à un objet ImageDraw

  • « ImagickDraw::__construct
  • ImagickDraw::ellipse »
  • PHP Manual
  • ImagickDraw
  • Libère toutes les ressources associées à un objet ImageDraw

ImagickDraw::destroy

(PECL imagick 2.0.0)

ImagickDraw::destroy — Libère toutes les ressources associées à un objet ImageDraw

Description

bool ImagickDraw::destroy ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Libère toutes les ressources associées à un objet ImageDraw.

Valeurs de retour

Aucune valeur n'est retournée.


Dessine une ellipse sur une image

  • « ImagickDraw::destroy
  • ImagickDraw::getClipPath »
  • PHP Manual
  • ImagickDraw
  • Dessine une ellipse sur une image

ImagickDraw::ellipse

(PECL imagick 2.0.0)

ImagickDraw::ellipse — Dessine une ellipse sur une image

Description

bool ImagickDraw::ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ellipse sur une image.

Liste de paramètres

ox

oy

rx

ry

start

end

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::ellipse()

<?php
function ellipse($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->ellipse(125, 70, 100, 50, 0, 360);
    $draw->ellipse(350, 70, 100, 50, 0, 315);

    $draw->push();
    $draw->translate(125, 250);
    $draw->rotate(30);
    $draw->ellipse(0, 0, 100, 50, 0, 360);
    $draw->pop();

    $draw->push();
    $draw->translate(350, 250);
    $draw->rotate(30);
    $draw->ellipse(0, 0, 100, 50, 0, 315);
    $draw->pop();

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Retourne l'identifiant du chemin courant

  • « ImagickDraw::ellipse
  • ImagickDraw::getClipRule »
  • PHP Manual
  • ImagickDraw
  • Retourne l'identifiant du chemin courant

ImagickDraw::getClipPath

(PECL imagick 2.0.0)

ImagickDraw::getClipPath — Retourne l'identifiant du chemin courant

Description

string ImagickDraw::getClipPath ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'identifiant du chemin courant.

Valeurs de retour

Retourne une chaîne, ou FALSE si aucun chemin n'existe.


Retourne la règle de remplissage courante pour les polygones

  • « ImagickDraw::getClipPath
  • ImagickDraw::getClipUnits »
  • PHP Manual
  • ImagickDraw
  • Retourne la règle de remplissage courante pour les polygones

ImagickDraw::getClipRule

(PECL imagick 2.0.0)

ImagickDraw::getClipRule — Retourne la règle de remplissage courante pour les polygones

Description

int ImagickDraw::getClipRule ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la règle de remplissage courante pour les polygones.

Valeurs de retour

Retourne une des constantes FILLRULE_.


Retourne l'unité d'interprétation des chemins

  • « ImagickDraw::getClipRule
  • ImagickDraw::getFillColor »
  • PHP Manual
  • ImagickDraw
  • Retourne l'unité d'interprétation des chemins

ImagickDraw::getClipUnits

(PECL imagick 2.0.0)

ImagickDraw::getClipUnits — Retourne l'unité d'interprétation des chemins

Description

int ImagickDraw::getClipUnits ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'unité d'interprétation des chemins.

Valeurs de retour

Retourne un entier en cas de succès.


Retourne la couleur de remplissage

  • « ImagickDraw::getClipUnits
  • ImagickDraw::getFillOpacity »
  • PHP Manual
  • ImagickDraw
  • Retourne la couleur de remplissage

ImagickDraw::getFillColor

(PECL imagick 2.0.0)

ImagickDraw::getFillColor — Retourne la couleur de remplissage

Description

ImagickPixel ImagickDraw::getFillColor ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur de remplissage utilisé pour les objets pleins.

Valeurs de retour

Retourne un objet ImagickPixel.


Retourne l'opacité de dessin

  • « ImagickDraw::getFillColor
  • ImagickDraw::getFillRule »
  • PHP Manual
  • ImagickDraw
  • Retourne l'opacité de dessin

ImagickDraw::getFillOpacity

(PECL imagick 2.0.0)

ImagickDraw::getFillOpacity — Retourne l'opacité de dessin

Description

float ImagickDraw::getFillOpacity ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'opacité de dessin. 1.0 représente l'opacité totale.

Valeurs de retour

L'opacité.


Retourne la règle de remplissage

  • « ImagickDraw::getFillOpacity
  • ImagickDraw::getFont »
  • PHP Manual
  • ImagickDraw
  • Retourne la règle de remplissage

ImagickDraw::getFillRule

(PECL imagick 2.0.0)

ImagickDraw::getFillRule — Retourne la règle de remplissage

Description

int ImagickDraw::getFillRule ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la règle de remplissage utilisée lors du dessin des polygones.

Valeurs de retour

Retourne une constante FILLRULE_


Retourne la police

  • « ImagickDraw::getFillRule
  • ImagickDraw::getFontFamily »
  • PHP Manual
  • ImagickDraw
  • Retourne la police

ImagickDraw::getFont

(PECL imagick 2.0.0)

ImagickDraw::getFont — Retourne la police

Description

string ImagickDraw::getFont ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne une chaîne spécifiant la police utilisée pour les annotations.

Valeurs de retour

Retourne une chaîne en cas de succès, et FALSE sinon.


Retourne la famille de police

  • « ImagickDraw::getFont
  • ImagickDraw::getFontSize »
  • PHP Manual
  • ImagickDraw
  • Retourne la famille de police

ImagickDraw::getFontFamily

(PECL imagick 2.0.0)

ImagickDraw::getFontFamily — Retourne la famille de police

Description

string ImagickDraw::getFontFamily ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la famille de police des annotations.

Valeurs de retour

Retourne la famille de police des annotations, ou FALSE si la famille de police n'est pas configurée.


Retourne la taille de la police

  • « ImagickDraw::getFontFamily
  • ImagickDraw::getFontStretch »
  • PHP Manual
  • ImagickDraw
  • Retourne la taille de la police

ImagickDraw::getFontSize

(PECL imagick 2.0.0)

ImagickDraw::getFontSize — Retourne la taille de la police

Description

float ImagickDraw::getFontSize ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la taille de la police.

Valeurs de retour

Retourne la taille de la police utilisée par l'objet ImagickDraw.


Description

  • « ImagickDraw::getFontSize
  • ImagickDraw::getFontStyle »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getFontStretch

(No version information available, might only be in Git)

ImagickDraw::getFontStretch — Description

Description

public int ImagickDraw::getFontStretch ( void )

Gets the font stretch to use when annotating with text. Returns a StretchType.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Retourne le style de la police

  • « ImagickDraw::getFontStretch
  • ImagickDraw::getFontWeight »
  • PHP Manual
  • ImagickDraw
  • Retourne le style de la police

ImagickDraw::getFontStyle

(PECL imagick 2.0.0)

ImagickDraw::getFontStyle — Retourne le style de la police

Description

int ImagickDraw::getFontStyle ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le style de la police.

Valeurs de retour

Retourne la constante de style STYLE_, associée à l'objet ImagickDraw, ou 0 si le style n'est pas fait.


Retourne le poids de la police

  • « ImagickDraw::getFontStyle
  • ImagickDraw::getGravity »
  • PHP Manual
  • ImagickDraw
  • Retourne le poids de la police

ImagickDraw::getFontWeight

(PECL imagick 2.0.0)

ImagickDraw::getFontWeight — Retourne le poids de la police

Description

int ImagickDraw::getFontWeight ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le poids de la police.

Valeurs de retour

Retourne un entier en cas de succès, et 0 si le poids n'est pas configuré.


Retourne la gravité de placement de texte

  • « ImagickDraw::getFontWeight
  • ImagickDraw::getStrokeAntialias »
  • PHP Manual
  • ImagickDraw
  • Retourne la gravité de placement de texte

ImagickDraw::getGravity

(PECL imagick 2.0.0)

ImagickDraw::getGravity — Retourne la gravité de placement de texte

Description

int ImagickDraw::getGravity ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la gravité de placement de texte, utilisée lors de l'annotation.

Valeurs de retour

Retourne une constante GRAVITY_ en cas de succès, et 0 si la gravité n'est pas configurée.


Retourne la configuration d'anti-aliasing de trait

  • « ImagickDraw::getGravity
  • ImagickDraw::getStrokeColor »
  • PHP Manual
  • ImagickDraw
  • Retourne la configuration d'anti-aliasing de trait

ImagickDraw::getStrokeAntialias

(PECL imagick 2.0.0)

ImagickDraw::getStrokeAntialias — Retourne la configuration d'anti-aliasing de trait

Description

bool ImagickDraw::getStrokeAntialias ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la configuration d'anti-aliasing de trait. Les traits de dessins sont anti-aliasés par défaut. Lorsque l'anti-aliasing est désactivé, les pixels sont évalués à partir d'un seuil, pour déterminer si la couleur de trait ou de fond doit être utilisée.

Valeurs de retour

Retourne TRUE si l'anti-aliasing est activé, ou FALSE sinon.


Retourne la couleur des contours d'objets

  • « ImagickDraw::getStrokeAntialias
  • ImagickDraw::getStrokeDashArray »
  • PHP Manual
  • ImagickDraw
  • Retourne la couleur des contours d'objets

ImagickDraw::getStrokeColor

(PECL imagick 2.0.0)

ImagickDraw::getStrokeColor — Retourne la couleur des contours d'objets

Description

ImagickPixel ImagickDraw::getStrokeColor ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur des contours d'objets.

Liste de paramètres

stroke_color

Valeurs de retour

Retourne un objet ImagickPixel qui décrit la couleur.


Retourne un tableau représentant le motif de pointillés

  • « ImagickDraw::getStrokeColor
  • ImagickDraw::getStrokeDashOffset »
  • PHP Manual
  • ImagickDraw
  • Retourne un tableau représentant le motif de pointillés

ImagickDraw::getStrokeDashArray

(PECL imagick 2.0.0)

ImagickDraw::getStrokeDashArray — Retourne un tableau représentant le motif de pointillés

Description

array ImagickDraw::getStrokeDashArray ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne un tableau représentant le motif de pointillés, les vides et les pleins.

Valeurs de retour

Retourne un tableau en cas de succès, et un tableau vide sinon.


Retourne l'offset du pointillé dans le motif

  • « ImagickDraw::getStrokeDashArray
  • ImagickDraw::getStrokeLineCap »
  • PHP Manual
  • ImagickDraw
  • Retourne l'offset du pointillé dans le motif

ImagickDraw::getStrokeDashOffset

(PECL imagick 2.0.0)

ImagickDraw::getStrokeDashOffset — Retourne l'offset du pointillé dans le motif

Description

float ImagickDraw::getStrokeDashOffset ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'offset du pointillé dans le motif.

Valeurs de retour

Retourne un nombre décimal représentant, le début du pointillé dans le motif.


Retourne la forme à utiliser pour dessiner les bouts de sous-chemins

  • « ImagickDraw::getStrokeDashOffset
  • ImagickDraw::getStrokeLineJoin »
  • PHP Manual
  • ImagickDraw
  • Retourne la forme à utiliser pour dessiner les bouts de sous-chemins

ImagickDraw::getStrokeLineCap

(PECL imagick 2.0.0)

ImagickDraw::getStrokeLineCap — Retourne la forme à utiliser pour dessiner les bouts de sous-chemins

Description

int ImagickDraw::getStrokeLineCap ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la forme à utiliser pour dessiner les bouts de sous-chemins.

Valeurs de retour

Retourne une des constantes LINECAP_, ou 0 si les bouts de lignes ne sont pas configurés.


Retourne la forme à utiliser pour dessiner les coins d'un chemin

  • « ImagickDraw::getStrokeLineCap
  • ImagickDraw::getStrokeMiterLimit »
  • PHP Manual
  • ImagickDraw
  • Retourne la forme à utiliser pour dessiner les coins d'un chemin

ImagickDraw::getStrokeLineJoin

(PECL imagick 2.0.0)

ImagickDraw::getStrokeLineJoin — Retourne la forme à utiliser pour dessiner les coins d'un chemin

Description

int ImagickDraw::getStrokeLineJoin ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la forme à utiliser pour dessiner les coins d'un chemin (ou d'autres formes vectorielles), quand ils sont dessinés.

Valeurs de retour

Retourne une constante de jointure de lignes, ou 0 si les coins ne sont pas configurés.


Retourne la 'miterLimit'

  • « ImagickDraw::getStrokeLineJoin
  • ImagickDraw::getStrokeOpacity »
  • PHP Manual
  • ImagickDraw
  • Retourne la 'miterLimit'

ImagickDraw::getStrokeMiterLimit

(PECL imagick 2.0.0)

ImagickDraw::getStrokeMiterLimit — Retourne la 'miterLimit'

Description

int ImagickDraw::getStrokeMiterLimit ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la 'miterLimit'. Lorsque deux segments se rencontrent à angle aigu, que les des jointures miter ont été spécifier pour 'lineJoin', il est possible pour le miter de dépasser l'épaisseur du trait du chemin. La 'miterLimit' impose une limite au ratio entre la longueur du miter et 'lineWidth'.

Valeurs de retour

Retourne un entier décrivant la 'miterLimit', et 0 si la 'miterLimit' n'est pas configurée.


Retourne l'opacité des contours d'un objet

  • « ImagickDraw::getStrokeMiterLimit
  • ImagickDraw::getStrokeWidth »
  • PHP Manual
  • ImagickDraw
  • Retourne l'opacité des contours d'un objet

ImagickDraw::getStrokeOpacity

(PECL imagick 2.0.0)

ImagickDraw::getStrokeOpacity — Retourne l'opacité des contours d'un objet

Description

float ImagickDraw::getStrokeOpacity ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'opacité des contours d'un objet.

Valeurs de retour

Retourne un nombre décimal décrivant l'opacité des contours d'un objet.


Retourne la largeur du trait utilisé

  • « ImagickDraw::getStrokeOpacity
  • ImagickDraw::getTextAlignment »
  • PHP Manual
  • ImagickDraw
  • Retourne la largeur du trait utilisé

ImagickDraw::getStrokeWidth

(PECL imagick 2.0.0)

ImagickDraw::getStrokeWidth — Retourne la largeur du trait utilisé

Description

float ImagickDraw::getStrokeWidth ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la largeur du trait utilisé.

Valeurs de retour

Retourne un nombre décimal qui décrit la largeur du trait.


Retourne l'alignement du texte

  • « ImagickDraw::getStrokeWidth
  • ImagickDraw::getTextAntialias »
  • PHP Manual
  • ImagickDraw
  • Retourne l'alignement du texte

ImagickDraw::getTextAlignment

(PECL imagick 2.0.0)

ImagickDraw::getTextAlignment — Retourne l'alignement du texte

Description

int ImagickDraw::getTextAlignment ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'alignement du texte.

Valeurs de retour

Retourne une des constantes ALIGN_, et 0 si l'alignement n'est pas configuré.


Retourne la configuration de l'anti-aliasing de texte

  • « ImagickDraw::getTextAlignment
  • ImagickDraw::getTextDecoration »
  • PHP Manual
  • ImagickDraw
  • Retourne la configuration de l'anti-aliasing de texte

ImagickDraw::getTextAntialias

(PECL imagick 2.0.0)

ImagickDraw::getTextAntialias — Retourne la configuration de l'anti-aliasing de texte

Description

bool ImagickDraw::getTextAntialias ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la configuration de l'anti-aliasing de texte, qui détermine si le texte est anti-aliasé ou pas. Les textes sont anti-aliasés par défaut.

Valeurs de retour

Retourne TRUE si le texte est anti-aliasé, et FALSE sinon.


Retourne la décoration du texte

  • « ImagickDraw::getTextAntialias
  • ImagickDraw::getTextEncoding »
  • PHP Manual
  • ImagickDraw
  • Retourne la décoration du texte

ImagickDraw::getTextDecoration

(PECL imagick 2.0.0)

ImagickDraw::getTextDecoration — Retourne la décoration du texte

Description

int ImagickDraw::getTextDecoration ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la décoration du texte d'annotation.

Valeurs de retour

Retourne une des constantes DECORATION_, ou bien 0 si aucune décoration n'est configurée.


Retourne le jeu de caractères utilisé pour les annotations de texte

  • « ImagickDraw::getTextDecoration
  • ImagickDraw::getTextInterlineSpacing »
  • PHP Manual
  • ImagickDraw
  • Retourne le jeu de caractères utilisé pour les annotations de texte

ImagickDraw::getTextEncoding

(PECL imagick 2.0.0)

ImagickDraw::getTextEncoding — Retourne le jeu de caractères utilisé pour les annotations de texte

Description

string ImagickDraw::getTextEncoding ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le jeu de caractères utilisé pour les annotations de texte.

Valeurs de retour

Retourne une chaîne spécifiant le jeu de caractères, ou bien FALSE si le jeu de caractères n'est pas configuré.


Description

  • « ImagickDraw::getTextEncoding
  • ImagickDraw::getTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getTextInterlineSpacing

(No version information available, might only be in Git)

ImagickDraw::getTextInterlineSpacing — Description

Description

public float ImagickDraw::getTextInterlineSpacing ( void )

Gets the text interword spacing.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « ImagickDraw::getTextInterlineSpacing
  • ImagickDraw::getTextKerning »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getTextInterwordSpacing

(No version information available, might only be in Git)

ImagickDraw::getTextInterwordSpacing — Description

Description

public float ImagickDraw::getTextInterwordSpacing ( void )

Gets the text interword spacing.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « ImagickDraw::getTextInterwordSpacing
  • ImagickDraw::getTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getTextKerning

(No version information available, might only be in Git)

ImagickDraw::getTextKerning — Description

Description

public float ImagickDraw::getTextKerning ( void )

Gets the text kerning.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Retourne la couleur sous le texte

  • « ImagickDraw::getTextKerning
  • ImagickDraw::getVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Retourne la couleur sous le texte

ImagickDraw::getTextUnderColor

(PECL imagick 2.0.0)

ImagickDraw::getTextUnderColor — Retourne la couleur sous le texte

Description

ImagickPixel ImagickDraw::getTextUnderColor ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la couleur du rectangle placé sous le texte des annotations.

Valeurs de retour

Retourne un objet ImagickPixel, qui décrit la couleur.


Retourne une chaîne contenant le vecteur graphique

  • « ImagickDraw::getTextUnderColor
  • ImagickDraw::line »
  • PHP Manual
  • ImagickDraw
  • Retourne une chaîne contenant le vecteur graphique

ImagickDraw::getVectorGraphics

(PECL imagick 2.0.0)

ImagickDraw::getVectorGraphics — Retourne une chaîne contenant le vecteur graphique

Description

string ImagickDraw::getVectorGraphics ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne une chaîne contenant le vecteur graphique, généré par les appels graphiques depuis que l'objet ImagickDraw a été créé.

Valeurs de retour

Retourne une chaîne contenant les vecteurs graphiques.


Dessine une ligne

  • « ImagickDraw::getVectorGraphics
  • ImagickDraw::matte »
  • PHP Manual
  • ImagickDraw
  • Dessine une ligne

ImagickDraw::line

(PECL imagick 2.0.0)

ImagickDraw::line — Dessine une ligne

Description

bool ImagickDraw::line ( float $sx , float $sy , float $ex , float $ey )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne en utilisant la couleur de trait courante, son opacité, et sa largeur.

Liste de paramètres

sx

L'abscisse de début

sy

L'ordonnée de début

ex

L'abscisse de fin

ey

L'ordonnée de fin

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::line()

<?php
function line($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->line(125, 70, 100, 50);
    $draw->line(350, 170, 100, 150);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Dessine sur le canal d'opacité de l'image

  • « ImagickDraw::line
  • ImagickDraw::pathClose »
  • PHP Manual
  • ImagickDraw
  • Dessine sur le canal d'opacité de l'image

ImagickDraw::matte

(PECL imagick 2.0.0)

ImagickDraw::matte — Dessine sur le canal d'opacité de l'image

Description

bool ImagickDraw::matte ( float $x , float $y , int $paintMethod )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine sur le canal d'opacité de l'image, afin de rendre transparent les pixels indiqués.

Liste de paramètres

x

abscisse du mate

y

ordonnée du mate

paintMethod

Constante PAINT

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ImagickDraw::matte()

<?php
function matte($strokeColor, $fillColor, $backgroundColor, $paintType) {
    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->matte(120, 120, $paintType);
    $draw->rectangle(100, 100, 300, 200);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Ajoute un élément de chemin au chemin courant

  • « ImagickDraw::matte
  • ImagickDraw::pathCurveToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Ajoute un élément de chemin au chemin courant

ImagickDraw::pathClose

(PECL imagick 2.0.0)

ImagickDraw::pathClose — Ajoute un élément de chemin au chemin courant

Description

bool ImagickDraw::pathClose ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajoute un élément de chemin au chemin courant, qui va clore le sous-chemin en dessinant une ligne droit depuis le point courant jusqu'au point de démarrage le plus récent (généralement, le dernier point de déplacement).

Valeurs de retour

Aucune valeur n'est retournée.


Dessine une courbe de Bézier cubique, en coordonnées absolues

  • « ImagickDraw::pathClose
  • ImagickDraw::pathCurveToQuadraticBezierAbsolute »
  • PHP Manual
  • ImagickDraw
  • Dessine une courbe de Bézier cubique, en coordonnées absolues

ImagickDraw::pathCurveToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToAbsolute — Dessine une courbe de Bézier cubique, en coordonnées absolues

Description

bool ImagickDraw::pathCurveToAbsolute ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier cubique, à partir du point courant (x,y) en utilisant le point (x1,y1) comme point de contrôle au début de la courbe et (x2,y2) comme point de contrôle à la fin de la courbe, en utilisant des coordonnées absolues. À la fin de la commande, le nouveau point courant est le point final (x,y), utilisé par le polybezier.

Liste de paramètres

x1

abscisse du premier point de contrôle

y1

ordonnée du premier point de contrôle

x2

abscisse du second point de contrôle

y2

ordonnée du second point de contrôle

x

abscisse de la fin de la courbe

y

ordonnée de la fin de la courbe

Valeurs de retour

Aucune valeur n'est retournée.


Dessine une courbe de Bézier quadratique, en coordonnées absolues

  • « ImagickDraw::pathCurveToAbsolute
  • ImagickDraw::pathCurveToQuadraticBezierRelative »
  • PHP Manual
  • ImagickDraw
  • Dessine une courbe de Bézier quadratique, en coordonnées absolues

ImagickDraw::pathCurveToQuadraticBezierAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierAbsolute — Dessine une courbe de Bézier quadratique, en coordonnées absolues

Description

bool ImagickDraw::pathCurveToQuadraticBezierAbsolute ( float $x1 , float $y1 , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier quadratique, en coordonnées relatives, par rapport au point courant (x,y), en utilisant le point (x1,y1) comme point de contrôle. A la fin du dessin, le nouveau point courant devient le point final (x,y) utilisé par le polybezier.

Liste de paramètres

x1

abscisse du point de contrôle

y1

ordonnée du point de contrôle

x

abscisse du point final

y

ordonnée du point final

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::pathCurveToQuadraticBezierAbsolute()

<?php
function pathCurveToQuadraticBezierAbsolute($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50,250);

    // This specifies a quadratic bezier curve with the current position as the start
    // point, the control point is the first two params, and the end point is the last two params.
    $draw->pathCurveToQuadraticBezierAbsolute(
        150,50,
        250,250
    );

    // This specifies a quadratic bezier curve with the current position as the start
    // point, the control point is mirrored from the previous curves control point
    // and the end point is defined by the x, y values.
    $draw->pathCurveToQuadraticBezierSmoothAbsolute(
        450,250
    );

    // This specifies a quadratic bezier curve with the current position as the start
    // point, the control point is mirrored from the previous curves control point
    // and the end point is defined relative from the current position by the x, y values.
    $draw->pathCurveToQuadraticBezierSmoothRelative(
        200,-100
    );

    $draw->pathFinish();

    $imagick = new \Imagick();
    $imagick->newImage(700, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();

}

?>


Dessine une courbe de Bézier quadratique, en coordonnées relatives

  • « ImagickDraw::pathCurveToQuadraticBezierAbsolute
  • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute »
  • PHP Manual
  • ImagickDraw
  • Dessine une courbe de Bézier quadratique, en coordonnées relatives

ImagickDraw::pathCurveToQuadraticBezierRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierRelative — Dessine une courbe de Bézier quadratique, en coordonnées relatives

Description

bool ImagickDraw::pathCurveToQuadraticBezierRelative ( float $x1 , float $y1 , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier quadratique, en coordonnées relatives, par rapport au point courant (x,y), en utilisant le point (x1,y1) comme point de contrôle. A la fin du dessin, le nouveau point courant devient le point final (x,y) utilisé par le polybezier.

Liste de paramètres

x1

abscisse de départ

y1

ordonnée de départ

x

abscisse de fin

y

ordonnée de fin

Valeurs de retour

Aucune valeur n'est retournée.


Dessine une courbe de Bézier de puissance 4, en coordonnées absolues

  • « ImagickDraw::pathCurveToQuadraticBezierRelative
  • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative »
  • PHP Manual
  • ImagickDraw
  • Dessine une courbe de Bézier de puissance 4, en coordonnées absolues

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Dessine une courbe de Bézier de puissance 4, en coordonnées absolues

Description

bool ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute ( float $x , float $y )

Dessine une courbe de Bézier de puissance 4, en coordonnées relatives, à partir du point courant (x, y). Le point de contrôle est la réflexion du point de contrôle sur la commande de dessin en coordonnées absolues. S'il n'y a pas eu de commande précédente ou si la commande précédente n'était pas ImagickDraw::DrawPathCurveToQuadraticBezierAbsolute(), ImagickDraw::DrawPathCurveToQuadraticBezierRelative() ou ImagickDraw::DrawPathCurveToQuadraticBezierSmoothRelative(), on suppose que le point de contrôle coïncide avec le point courant. À la fin de la commande, le nouveau point courant devient le point final (x, y), utilisé par le polybezier.

Cette fonction ne peut pas être utilisée pour lisser une courbe de Bézier cubique. Elle peut uniquement lisser une courbe quadratique.

Liste de paramètres

x

L'abscisse du point de fin

y

L'ordonnée du point de fin

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute()

<?php
$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor("black");
$draw->setFillColor("blue");

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->pathStart();
$draw->pathMoveToAbsolute(50,250);

// Ceci définit une courbe de Bezier quadratique avec la position courante comme
// point de départ, le point de controle correspond aux deux premiers paramètres
// et le point final aux deux derniers paramètres.
$draw->pathCurveToQuadraticBezierAbsolute(
    150,50,
    250,250
);

// Ceci définit une courbe de Bezier quadratique avec la position courante comme
// point de départ, le point de controle est obtenu par effet miroir des points
// de controle des précedentes courbes et le point final est défini par les
// valeurs x, y.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
    450,250
);

// Ceci définit une courbe de Bezier quadratique avec la position courante comme
// point de départ, le point de controle est obtenu par effet miroir des points
// de controle des précedentes courbes et le point final est défini relativement
// à la position courante par les valeurs x, y
$draw->pathCurveToQuadraticBezierSmoothRelative(
    200,-100
);

$draw->pathFinish();

$imagick = new \Imagick();
$imagick->newImage(700, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>


Dessine une courbe de Bézier de puissance 4, en coordonnées relatives

  • « ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
  • ImagickDraw::pathCurveToRelative »
  • PHP Manual
  • ImagickDraw
  • Dessine une courbe de Bézier de puissance 4, en coordonnées relatives

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Dessine une courbe de Bézier de puissance 4, en coordonnées relatives

Description

bool ImagickDraw::pathCurveToQuadraticBezierSmoothRelative ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier de puissance 4, en coordonnées relatives, à partir du point courant (x, y). Le point de contrôle est la réflexion du point de contrôle sur la commande de dessin en coordonnées relatives. S'il n'y a pas eu de commande précédente ou si la commande précédente n'était pas ImagickDraw::DrawPathCurveToQuadraticBezierAbsolute(), ImagickDraw::DrawPathCurveToQuadraticBezierRelative(), ImagickDraw::DrawPathCurveToQuadraticBezierSmoothAbsolut() ou ImagickDraw::DrawPathCurveToQuadraticBezierSmoothRelative() on suppose que le point de contrôle coïncide avec le point courant. A la fin de la commande, le nouveau point courant devient le point final (x, y), utilisé par le polybezier.

Cette fonction ne peut pas être utilisée pour lisser une courbe de Bézier cubique. Elle peut uniquement lisser une courbe quadratique.

Liste de paramètres

x

L'abscisse du point de fin

y

L'ordonnée du point de fin

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 ImagickDraw::pathCurveToQuadraticBezierSmoothRelative()

<?php
$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor("black");
$draw->setFillColor("blue");

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->pathStart();
$draw->pathMoveToAbsolute(50,250);

// Ceci définit une courbe de Bezier quadratique avec la position courante comme
// point de départ, le point de controle correspond aux deux premiers paramètres
// et le point final aux deux derniers paramètres.
$draw->pathCurveToQuadraticBezierAbsolute(
    150,50,
    250,250
);

// Ceci définit une courbe de Bezier quadratique avec la position courante comme
// point de départ, le point de controle est obtenu par effet miroir des points
// de controle des précedentes courbes et le point final est défini par les
// valeurs x, y.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
    450,250
);

// Ceci définit une courbe de Bezier quadratique avec la position courante comme
// point de départ, le point de controle est obtenu par effet miroir des points
// de controle des précedentes courbes et le point final est défini relativement
// à la position courante par les valeurs x, y
$draw->pathCurveToQuadraticBezierSmoothRelative(
    200,-100
);

$draw->pathFinish();

$imagick = new \Imagick();
$imagick->newImage(700, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>


Dessine une courbe de Bézier cubique, en coordonnées relatives

  • « ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
  • ImagickDraw::pathCurveToSmoothAbsolute »
  • PHP Manual
  • ImagickDraw
  • Dessine une courbe de Bézier cubique, en coordonnées relatives

ImagickDraw::pathCurveToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToRelative — Dessine une courbe de Bézier cubique, en coordonnées relatives

Description

bool ImagickDraw::pathCurveToRelative ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier cubique, à partir du point courant (x,y) en utilisant le point (x1,y1) comme point de contrôle au début de la courbe et (x2,y2) comme point de contrôle à la fin de la courbe, en utilisant des coordonnées relatives. À la fin de la commande, le nouveau point courant est le point final (x,y), utilisé par le polybezier.

Liste de paramètres

x1

abscisse du point de départ

y1

ordonnée du point de départ

x2

abscisse du point de contrôle final

y2

ordonnée du point de contrôle final

x

abscisse du point final

y

ordonnée du point final

Valeurs de retour

Aucune valeur n'est retournée.


Dessine une courbe de Bézier, en coordonnées absolues

  • « ImagickDraw::pathCurveToRelative
  • ImagickDraw::pathCurveToSmoothRelative »
  • PHP Manual
  • ImagickDraw
  • Dessine une courbe de Bézier, en coordonnées absolues

ImagickDraw::pathCurveToSmoothAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToSmoothAbsolute — Dessine une courbe de Bézier, en coordonnées absolues

Description

bool ImagickDraw::pathCurveToSmoothAbsolute ( float $x2 , float $y2 , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier, en coordonnées absolues, à partir du point courant (x,y). Le premier point de contrôle est la réflexion du second point de contrôle de la commande précédente, relative au point courant. S'il n'y a pas eu de commande précédente, ou que la commande précédente n'était pas DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute ou DrawPathCurveToSmoothRelative, on suppose alors que le premier point de contrôle coïncide avec le point courant. (x2,y2) est le second point de contrôle (i.e., le point de contrôle à la fin de la ligne. À la fin de la commande, le nouveau point courant est le point final, de coordonnées (x,y), dans le polybezier.

Liste de paramètres

x2

abscisse du deuxième point de contrôle

y2

ordonnée du deuxième point de contrôle

x

abscisse du point de contrôle final

y

ordonnée du point de contrôle final

Valeurs de retour

Aucune valeur n'est retournée.


Dessine une courbe de Bézier, en coordonnées relatives

  • « ImagickDraw::pathCurveToSmoothAbsolute
  • ImagickDraw::pathEllipticArcAbsolute »
  • PHP Manual
  • ImagickDraw
  • Dessine une courbe de Bézier, en coordonnées relatives

ImagickDraw::pathCurveToSmoothRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToSmoothRelative — Dessine une courbe de Bézier, en coordonnées relatives

Description

bool ImagickDraw::pathCurveToSmoothRelative ( float $x2 , float $y2 , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une courbe de Bézier, en coordonnées relatives, à partir du point courant (x,y). Le premier point de contrôle est la réflexion du second point de contrôle de la commande précédente, relative au point courant. S'il n'y a pas eu de commande précédente, ou que la commande précédente n'était pas DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute ou DrawPathCurveToSmoothRelative, on suppose alors que le premier point de contrôle coïncide avec le point courant. (x2,y2) est le second point de contrôle (i.e., le point de contrôle à la fin de la ligne. A la fin de la commande, le nouveau point courant est le point final, de coordonnées (x,y), dans le polybezier.

Liste de paramètres

x2

abscisse du deuxième point de contrôle

y2

ordonnée du deuxième point de contrôle

x

abscisse du point de contrôle final

y

ordonnée du point de contrôle final

Valeurs de retour

Aucune valeur n'est retournée.


Dessine un arc d'ellipse, en coordonnées absolues

  • « ImagickDraw::pathCurveToSmoothRelative
  • ImagickDraw::pathEllipticArcRelative »
  • PHP Manual
  • ImagickDraw
  • Dessine un arc d'ellipse, en coordonnées absolues

ImagickDraw::pathEllipticArcAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathEllipticArcAbsolute — Dessine un arc d'ellipse, en coordonnées absolues

Description

bool ImagickDraw::pathEllipticArcAbsolute ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un arc d'ellipse à partir du point courant (x, y), en utilisant des coordonnées relatives. La taille et l'orientation de l'ellipse sont définies par deux rayons, (rx, ry) et une rotation xAxisRotation, qui indique comment l'ellipse, dans son ensemble, est située dans le système de coordonnées. Le centre (cx, cy) de l'ellipse est calculée automatiquement pour satisfaire aux contraintes des autres paramètres. Si large_arc_flag vaut TRUE, alors c'est l'arc le plus grand qui est dessiné. Si sweep_flag vaut TRUE, alors le dessin de l'arc se fait dans le sens horaire.

Liste de paramètres

rx

Rayon X

ry

Rayon Y

x_axis_rotation

Rotation sur l'axe des X

large_arc_flag

option d'large_arc_flag

sweep_flag

Option sweep_flag

x

L'abscisse

y

L'ordonnée

Valeurs de retour

Aucune valeur n'est retournée.


Dessine un arc d'ellipse, en coordonnées relatives

  • « ImagickDraw::pathEllipticArcAbsolute
  • ImagickDraw::pathFinish »
  • PHP Manual
  • ImagickDraw
  • Dessine un arc d'ellipse, en coordonnées relatives

ImagickDraw::pathEllipticArcRelative

(PECL imagick 2.0.0)

ImagickDraw::pathEllipticArcRelative — Dessine un arc d'ellipse, en coordonnées relatives

Description

bool ImagickDraw::pathEllipticArcRelative ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un arc d'ellipse à partir du point courant (x, y), en utilisant des coordonnées relatives. La taille et l'orientation de l'ellipse sont définies par deux rayons, (rx, ry) et une rotation xAxisRotation, qui indique comment l'ellipse, dans son ensemble, est située dans le système de coordonnées. Le centre (cx, cy) de l'ellipse est calculée automatiquement pour satisfaire aux contraintes des autres paramètres. Si large_arc_flag vaut TRUE, alors c'est l'arc le plus grand qui est dessiné. Si sweep_flag vaut TRUE, alors le dessin de l'arc se fait dans le sens horaire.

Liste de paramètres

rx

Rayon X

ry

Rayon Y

x_axis_rotation

Rotation sur l'axe des X

large_arc_flag

L'option d'large_arc_flag

sweep_flag

L'option d'sweep_flag

x

L'abscisse

y

L'ordonnée

Valeurs de retour

Aucune valeur n'est retournée.


Termine le chemin courant

  • « ImagickDraw::pathEllipticArcRelative
  • ImagickDraw::pathLineToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Termine le chemin courant

ImagickDraw::pathFinish

(PECL imagick 2.0.0)

ImagickDraw::pathFinish — Termine le chemin courant

Description

bool ImagickDraw::pathFinish ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Termine le chemin courant.

Valeurs de retour

Aucune valeur n'est retournée.


Dessine une ligne de chemin, en coordonnées absolues

  • « ImagickDraw::pathFinish
  • ImagickDraw::pathLineToHorizontalAbsolute »
  • PHP Manual
  • ImagickDraw
  • Dessine une ligne de chemin, en coordonnées absolues

ImagickDraw::pathLineToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToAbsolute — Dessine une ligne de chemin, en coordonnées absolues

Description

bool ImagickDraw::pathLineToAbsolute ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne à partir du point courant, jusqu'au point cible, en utilisant des coordonnées absolues. Le point cible devient alors le point courant.

Liste de paramètres

x

L'abscisse de départ

y

L'abscisse de fin

Valeurs de retour

Aucune valeur n'est retournée.


Dessine une ligne de chemin horizontale, en coordonnées absolues

  • « ImagickDraw::pathLineToAbsolute
  • ImagickDraw::pathLineToHorizontalRelative »
  • PHP Manual
  • ImagickDraw
  • Dessine une ligne de chemin horizontale, en coordonnées absolues

ImagickDraw::pathLineToHorizontalAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToHorizontalAbsolute — Dessine une ligne de chemin horizontale, en coordonnées absolues

Description

bool ImagickDraw::pathLineToHorizontalAbsolute ( float $x )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne verticale à partir du point courant, jusqu'au point cible, en utilisant des coordonnées relatives. Le point cible devient alors le point courant.

Liste de paramètres

x

L'abscisse

Valeurs de retour

Aucune valeur n'est retournée.


Dessine une ligne de chemin horizontale, en coordonnées relatives

  • « ImagickDraw::pathLineToHorizontalAbsolute
  • ImagickDraw::pathLineToRelative »
  • PHP Manual
  • ImagickDraw
  • Dessine une ligne de chemin horizontale, en coordonnées relatives

ImagickDraw::pathLineToHorizontalRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToHorizontalRelative — Dessine une ligne de chemin horizontale, en coordonnées relatives

Description

bool ImagickDraw::pathLineToHorizontalRelative ( float $x )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne horizontale à partir du point courant, jusqu'au point cible, en utilisant des coordonnées relatives. Le point cible devient alors le point courant.

Liste de paramètres

x

L'abscisse

Valeurs de retour

Aucune valeur n'est retournée.


Dessine une ligne de chemin, en coordonnées relatives

  • « ImagickDraw::pathLineToHorizontalRelative
  • ImagickDraw::pathLineToVerticalAbsolute »
  • PHP Manual
  • ImagickDraw
  • Dessine une ligne de chemin, en coordonnées relatives

ImagickDraw::pathLineToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToRelative — Dessine une ligne de chemin, en coordonnées relatives

Description

bool ImagickDraw::pathLineToRelative ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne à partir du point courant, jusqu'au point cible, en utilisant des coordonnées relatives. Le point cible devient alors le point courant.

Liste de paramètres

x

abscisse de départ

y

ordonnée de départ

Valeurs de retour

Aucune valeur n'est retournée.


Dessine une ligne de chemin verticale, en coordonnées absolues

  • « ImagickDraw::pathLineToRelative
  • ImagickDraw::pathLineToVerticalRelative »
  • PHP Manual
  • ImagickDraw
  • Dessine une ligne de chemin verticale, en coordonnées absolues

ImagickDraw::pathLineToVerticalAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToVerticalAbsolute — Dessine une ligne de chemin verticale, en coordonnées absolues

Description

bool ImagickDraw::pathLineToVerticalAbsolute ( float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne verticale à partir du point courant, jusqu'au point cible, en utilisant des coordonnées absolues. Le point cible devient alors le point courant.

Liste de paramètres

y

Ordonnée

Valeurs de retour

Aucune valeur n'est retournée.


Dessine une ligne de chemin verticale, en coordonnées relatives

  • « ImagickDraw::pathLineToVerticalAbsolute
  • ImagickDraw::pathMoveToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Dessine une ligne de chemin verticale, en coordonnées relatives

ImagickDraw::pathLineToVerticalRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToVerticalRelative — Dessine une ligne de chemin verticale, en coordonnées relatives

Description

bool ImagickDraw::pathLineToVerticalRelative ( float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne verticale à partir du point courant, jusqu'au point cible, en utilisant des coordonnées relatives. Le point cible devient alors le point courant.

Liste de paramètres

y

ordonnée cible

Valeurs de retour

Aucune valeur n'est retournée.


Commence un nouveau sous-chemin, en coordonnées absolues

  • « ImagickDraw::pathLineToVerticalRelative
  • ImagickDraw::pathMoveToRelative »
  • PHP Manual
  • ImagickDraw
  • Commence un nouveau sous-chemin, en coordonnées absolues

ImagickDraw::pathMoveToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathMoveToAbsolute — Commence un nouveau sous-chemin, en coordonnées absolues

Description

bool ImagickDraw::pathMoveToAbsolute ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Commence un nouveau sous-chemin à partir des coordonnées indiquées, en utilisant des coordonnées absolues. Le point courant devient alors les coordonnées spécifiées.

Liste de paramètres

x

L'abscisse cible

y

L'ordonnée cible

Valeurs de retour

Aucune valeur n'est retournée.


Commence un nouveau sous-chemin, en coordonnées relatives

  • « ImagickDraw::pathMoveToAbsolute
  • ImagickDraw::pathStart »
  • PHP Manual
  • ImagickDraw
  • Commence un nouveau sous-chemin, en coordonnées relatives

ImagickDraw::pathMoveToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathMoveToRelative — Commence un nouveau sous-chemin, en coordonnées relatives

Description

bool ImagickDraw::pathMoveToRelative ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Commence un nouveau sous-chemin à partir des coordonnées indiquées, en utilisant des coordonnées relatives. Le point courant devient alors les coordonnées spécifiées.

Liste de paramètres

x

L'abscisse cible

y

L'ordonnée cible

Valeurs de retour

Aucune valeur n'est retournée.


Déclare le début d'une chemin de dessin

  • « ImagickDraw::pathMoveToRelative
  • ImagickDraw::point »
  • PHP Manual
  • ImagickDraw
  • Déclare le début d'une chemin de dessin

ImagickDraw::pathStart

(PECL imagick 2.0.0)

ImagickDraw::pathStart — Déclare le début d'une chemin de dessin

Description

bool ImagickDraw::pathStart ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Déclare le début d'une chemin de dessin, qui sera terminé par la commande soeur ImagickDraw::DrawPathFinish(). Toutes les commandes autres que ImagickDraw::DrawPath() doivent être encadrée par ImagickDraw::pathStart() et ImagickDraw::DrawPathFinish(). Ceci est lié au fait que les commandes suivantes sont des commandes subordonnées.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::pathStart()

<?php
function pathStart($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50, 50);
    $draw->pathLineToAbsolute(100, 50);
    $draw->pathLineToRelative(0, 50);
    $draw->pathLineToHorizontalRelative(-50);
    $draw->pathFinish();

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50, 50);
    $draw->pathMoveToRelative(300, 0);
    $draw->pathLineToRelative(50, 0);
    $draw->pathLineToVerticalRelative(50);
    $draw->pathLineToHorizontalAbsolute(350);
    $draw->pathclose();
    $draw->pathFinish();

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50, 300);
    $draw->pathCurveToAbsolute(50, 300, 100, 200, 300, 300);
    $draw->pathLineToVerticalAbsolute(350);
    $draw->pathFinish();

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Dessine un point

  • « ImagickDraw::pathStart
  • ImagickDraw::polygon »
  • PHP Manual
  • ImagickDraw
  • Dessine un point

ImagickDraw::point

(PECL imagick 2.0.0)

ImagickDraw::point — Dessine un point

Description

bool ImagickDraw::point ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un point en utilisant la couleur de trait courante, ainsi que l'épaisseur, dans les coordonnées spécifiées.

Liste de paramètres

x

L'abscisse du point

y

L'ordonnée du point

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::point()

<?php
function point($fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setFillColor($fillColor);

    for ($x = 0; $x < 10000; $x++) {
        $draw->point(rand(0, 500), rand(0, 500));
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Dessine un polygone

  • « ImagickDraw::point
  • ImagickDraw::polyline »
  • PHP Manual
  • ImagickDraw
  • Dessine un polygone

ImagickDraw::polygon

(PECL imagick 2.0.0)

ImagickDraw::polygon — Dessine un polygone

Description

bool ImagickDraw::polygon ( array $coordinates )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un polygone, en utilisant le trait courant, sa largeur, sa couleur de remplissage, ainsi que le tableau de coordonnées indiqué.

Liste de paramètres

coordinates

Tableau multidimensionnel de coordonnées, tel que array( array( 'x' => 3, 'y' => 4 ), array( 'x' => 2, 'y' => 6 ) );

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec ImagickDraw::polygon()

<?php
function polygon($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(4);

    $draw->setFillColor($fillColor);

    $points = [
        ['x' => 40 * 5, 'y' => 10 * 5],
        ['x' => 20 * 5, 'y' => 20 * 5],
        ['x' => 70 * 5, 'y' => 50 * 5],
        ['x' => 60 * 5, 'y' => 15 * 5],
    ];

    $draw->polygon($points);

    $image = new \Imagick();
    $image->newImage(500, 300, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Dessine une ligne brisée

  • « ImagickDraw::polygon
  • ImagickDraw::pop »
  • PHP Manual
  • ImagickDraw
  • Dessine une ligne brisée

ImagickDraw::polyline

(PECL imagick 2.0.0)

ImagickDraw::polyline — Dessine une ligne brisée

Description

bool ImagickDraw::polyline ( array $coordinates )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine une ligne brisée, en utilisant le trait courant, sa largeur et son motif, ainsi que sa ligne de remplissage ou sa texture, en utilisant les coordonnés spécifiées.

Liste de paramètres

coordinates

Tableau avec les coordonnées "x" et "y" array( array( 'x' => 4, 'y' => 6 ), array( 'x' => 8, 'y' => 10 ) )

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exempe avec ImagickDraw::polyline()

<?php
function polyline($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(5);

    $points = [
        ['x' => 40 * 5, 'y' => 10 * 5],
        ['x' => 20 * 5, 'y' => 20 * 5],
        ['x' => 70 * 5, 'y' => 50 * 5],
        ['x' => 60 * 5, 'y' => 15 * 5]
    ];

    $draw->polyline($points);

    $image = new \Imagick();
    $image->newImage(500, 300, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Détruit l'objet ImagickDraw courant dans la pile, et retourne son précédent

  • « ImagickDraw::polyline
  • ImagickDraw::popClipPath »
  • PHP Manual
  • ImagickDraw
  • Détruit l'objet ImagickDraw courant dans la pile, et retourne son précédent

ImagickDraw::pop

(PECL imagick 2.0.0)

ImagickDraw::pop — Détruit l'objet ImagickDraw courant dans la pile, et retourne son précédent

Description

bool ImagickDraw::pop ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Détruit l'objet ImagickDraw courant dans la pile, et retourne son précédent. Plusieurs objets ImagickDraw peuvent exister. C'est une erreur que de tenter d'extrait plus d'objets ImagickDraw qu'il n'y en a, et il est recommandé d'en extraire juste le bon nombre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Termine la définition d'un chemin

  • « ImagickDraw::pop
  • ImagickDraw::popDefs »
  • PHP Manual
  • ImagickDraw
  • Termine la définition d'un chemin

ImagickDraw::popClipPath

(PECL imagick 2.0.0)

ImagickDraw::popClipPath — Termine la définition d'un chemin

Description

bool ImagickDraw::popClipPath ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Termine la définition d'un chemin.

Valeurs de retour

Aucune valeur n'est retournée.


Termine une définition de liste

  • « ImagickDraw::popClipPath
  • ImagickDraw::popPattern »
  • PHP Manual
  • ImagickDraw
  • Termine une définition de liste

ImagickDraw::popDefs

(PECL imagick 2.0.0)

ImagickDraw::popDefs — Termine une définition de liste

Description

bool ImagickDraw::popDefs ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Termine une définition de liste.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::popDefs()

<?php
function popDefs($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setstrokeOpacity(1);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->pushDefs();
    $draw->setStrokeColor('white');
    $draw->rectangle(50, 50, 200, 200);
    $draw->popDefs();

    $draw->rectangle(300, 50, 450, 200);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Termine une définition de motif

  • « ImagickDraw::popDefs
  • ImagickDraw::push »
  • PHP Manual
  • ImagickDraw
  • Termine une définition de motif

ImagickDraw::popPattern

(PECL imagick 2.0.0)

ImagickDraw::popPattern — Termine une définition de motif

Description

bool ImagickDraw::popPattern ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Termine une définition de motif.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Clone l'objet ImagickDraw courant et le pousse dans la pile

  • « ImagickDraw::popPattern
  • ImagickDraw::pushClipPath »
  • PHP Manual
  • ImagickDraw
  • Clone l'objet ImagickDraw courant et le pousse dans la pile

ImagickDraw::push

(PECL imagick 2.0.0)

ImagickDraw::push — Clone l'objet ImagickDraw courant et le pousse dans la pile

Description

bool ImagickDraw::push ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Clone l'objet ImagickDraw courant et le pousse dans la pile, en l'ajoutant à la fin. L'objet ImagickDraw original peut être retrouvé en appliquant la méthode pop à la pile. Les objets ImagickDraws sont stockés dans une pile ImagickDraw. Pour chaque pop, il qu'il y ait eu un push équivalent.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ImagickDraw::push()

<?php
function push($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillModifiedColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->push();
    $draw->translate(50, 50);
    $draw->rectangle(200, 200, 300, 300);
    $draw->pop();
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Commence la définition d'un chemin

  • « ImagickDraw::push
  • ImagickDraw::pushDefs »
  • PHP Manual
  • ImagickDraw
  • Commence la définition d'un chemin

ImagickDraw::pushClipPath

(PECL imagick 2.0.0)

ImagickDraw::pushClipPath — Commence la définition d'un chemin

Description

bool ImagickDraw::pushClipPath ( string $clip_mask_id )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Commence la définition d'un chemin, qui est constitué de n'importe quel nombre de commandes de dessins, et terminé par une commande ImagickDraw::popClipPath().

Liste de paramètres

clip_mask_id

L'identifiant du masque de clip

Valeurs de retour

Aucune valeur n'est retournée.


Indique que la commande suivante créée des éléments nommés pour pré-traitement

  • « ImagickDraw::pushClipPath
  • ImagickDraw::pushPattern »
  • PHP Manual
  • ImagickDraw
  • Indique que la commande suivante créée des éléments nommés pour pré-traitement

ImagickDraw::pushDefs

(PECL imagick 2.0.0)

ImagickDraw::pushDefs — Indique que la commande suivante créée des éléments nommés pour pré-traitement

Description

bool ImagickDraw::pushDefs ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Indique que les commandes jusqu'à la commande terminante de ImagickDraw::popDefs() crée des éléments nommés (e.g., des chemins, des textures, etc.), qui peuvent être traités au plus tôt par simple souci d'efficacité.

Valeurs de retour

Aucune valeur n'est retournée.


Configure un espace de dessin

  • « ImagickDraw::pushDefs
  • ImagickDraw::rectangle »
  • PHP Manual
  • ImagickDraw
  • Configure un espace de dessin

ImagickDraw::pushPattern

(PECL imagick 2.0.0)

ImagickDraw::pushPattern — Configure un espace de dessin

Description

bool ImagickDraw::pushPattern ( string $pattern_id , float $x , float $y , float $width , float $height )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure ImagickDraw pour que les commandes jusqu'à la fonction DrawPopPattern() incluent la définition d'un nom de motif. L'espace de motif reçoit les coordonnées du coin supérieur gauche, de la hauteur et largeur, et devient un espace de dessin en lui-même. Tout ce qui peut être dessiné peut être dessiné dans un motif. Des motifs peuvent aussi définir des traits ou des brosses.

Liste de paramètres

pattern_id

L'identifiant du motif

x

L'abscisse du coin supérieur gauche

y

L'ordonnée du coin supérieur gauche

width

La largeur du motif

height

La hauteur du motif

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ImagickDraw::pushPattern()

<?php
function pushPattern($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(1);

    $draw->pushPattern("MyFirstPattern", 0, 0, 50, 50);
    for ($x = 0; $x < 50; $x += 10) {
        for ($y = 0; $y < 50; $y += 5) {
            $positionX = $x + (($y / 5) % 5);
            $draw->rectangle($positionX, $y, $positionX + 5, $y + 5);
        }
    }
    $draw->popPattern();

    $draw->setFillOpacity(0);
    $draw->rectangle(100, 100, 400, 400);
    $draw->setFillOpacity(1);

    $draw->setFillOpacity(1);

    $draw->push();
    $draw->setFillPatternURL('#MyFirstPattern');
    $draw->setFillColor('yellow');
    $draw->rectangle(100, 100, 400, 400);
    $draw->pop();

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Dessine un rectangle

  • « ImagickDraw::pushPattern
  • ImagickDraw::render »
  • PHP Manual
  • ImagickDraw
  • Dessine un rectangle

ImagickDraw::rectangle

(PECL imagick 2.0.0)

ImagickDraw::rectangle — Dessine un rectangle

Description

bool ImagickDraw::rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un rectangle à partir de ses coordonnées et en utilisant le trait courant, sa largeur et son motif.

Liste de paramètres

x1

y1

ordonnée du coin supérieur gauche

x2

abscisse du coin inférieur droit

y2

ordonnée du coin inférieur droit

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::rectangle()

<?php
function rectangle($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();
    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $draw->rectangle(200, 200, 300, 300);
    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Effectue le rendu de tous les dessins à l'image

  • « ImagickDraw::rectangle
  • ImagickDraw::resetVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Effectue le rendu de tous les dessins à l'image

ImagickDraw::render

(PECL imagick 2.0.0)

ImagickDraw::render — Effectue le rendu de tous les dessins à l'image

Description

bool ImagickDraw::render ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Effectue le rendu de tous les dessins à l'image.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Description

  • « ImagickDraw::render
  • ImagickDraw::rotate »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::resetVectorGraphics

(No version information available, might only be in Git)

ImagickDraw::resetVectorGraphics — Description

Description

public void ImagickDraw::resetVectorGraphics ( void )

Resets the vector graphics.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Applique une rotation

  • « ImagickDraw::resetVectorGraphics
  • ImagickDraw::roundRectangle »
  • PHP Manual
  • ImagickDraw
  • Applique une rotation

ImagickDraw::rotate

(PECL imagick 2.0.0)

ImagickDraw::rotate — Applique une rotation

Description

bool ImagickDraw::rotate ( float $degrees )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Applique une rotation d'un angle donnée aux coordonnées de l'espace courant.

Liste de paramètres

degrees

Angle de rotation, en degrés.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::rotate()

<?php
function rotate($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {
    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeOpacity(1);
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);
    $draw->setFillColor($fillModifiedColor);
    $draw->rotate(15);
    $draw->rectangle(200, 200, 300, 300);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Dessine un rectangle aux coins arrondis

  • « ImagickDraw::rotate
  • ImagickDraw::scale »
  • PHP Manual
  • ImagickDraw
  • Dessine un rectangle aux coins arrondis

ImagickDraw::roundRectangle

(PECL imagick 2.0.0)

ImagickDraw::roundRectangle — Dessine un rectangle aux coins arrondis

Description

bool ImagickDraw::roundRectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Dessine un rectangle aux coins arrondis, à partir de deux coordonnées, x & y, du rayon de coin et en utilisant le trait courant, son épaisseur et sa couleur de remplissage.

Liste de paramètres

x1

L'abscisse du coin supérieur gauche

y1

L'ordonnée du coin supérieur gauche

x2

L'abscisse du coin inférieur droit

y2

L'ordonnée du coin inférieur droit

rx

Le rayon en x

ry

Le rayon en y

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::roundRectangle()

<?php
function roundRectangle($strokeColor, $fillColor, $backgroundColor, $startX, $startY, $endX, $endY, $roundX, $roundY) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $draw->roundRectangle($startX, $startY, $endX, $endY, $roundX, $roundY);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Ajuste le facteur de mise à l'échelle

  • « ImagickDraw::roundRectangle
  • ImagickDraw::setClipPath »
  • PHP Manual
  • ImagickDraw
  • Ajuste le facteur de mise à l'échelle

ImagickDraw::scale

(PECL imagick 2.0.0)

ImagickDraw::scale — Ajuste le facteur de mise à l'échelle

Description

bool ImagickDraw::scale ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ajuste le facteur de mise à l'échelle à appliquer aux directions verticales et horizontales de l'espace de coordonnées courant.

Liste de paramètres

x

facteur horizontal

y

facteur vertical

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::scale()

<?php
function scale($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(4);
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);
    $draw->setFillColor($fillModifiedColor);
    $draw->scale(1.4, 1.4);
    $draw->rectangle(200, 200, 300, 300);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Associe un chemin avec une image

  • « ImagickDraw::scale
  • ImagickDraw::setClipRule »
  • PHP Manual
  • ImagickDraw
  • Associe un chemin avec une image

ImagickDraw::setClipPath

(PECL imagick 2.0.0)

ImagickDraw::setClipPath — Associe un chemin avec une image

Description

bool ImagickDraw::setClipPath ( string $clip_mask )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Associe un chemin avec une image. Seule les surfaces dessinées sur le chemin seront modifiée tant qu'il reste actif.

Liste de paramètres

clip_mask

Le nom du chemin

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setClipPath()

<?php
function setClipPath($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $clipPathName = 'testClipPath';

    $draw->pushClipPath($clipPathName);
    $draw->rectangle(0, 0, 250, 250);
    $draw->popClipPath();
    $draw->setClipPath($clipPathName);
    $draw->rectangle(100, 100, 400, 400);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Configure la règle de remplissage du polygone à utiliser avec les chemins

  • « ImagickDraw::setClipPath
  • ImagickDraw::setClipUnits »
  • PHP Manual
  • ImagickDraw
  • Configure la règle de remplissage du polygone à utiliser avec les chemins

ImagickDraw::setClipRule

(PECL imagick 2.0.0)

ImagickDraw::setClipRule — Configure la règle de remplissage du polygone à utiliser avec les chemins

Description

bool ImagickDraw::setClipRule ( int $fill_rule )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la règle de remplissage du polygone à utiliser avec les chemins.

Liste de paramètres

fill_rule

Une constante FILLRULE

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setClipRule()

<?php
function setClipRule($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);
    //\Imagick::FILLRULE_EVENODD
    //\Imagick::FILLRULE_NONZERO

    $clipPathName = 'testClipPath';
    $draw->pushClipPath($clipPathName);
    $draw->setClipRule(\Imagick::FILLRULE_EVENODD);
    $draw->rectangle(0, 0, 300, 500);
    $draw->rectangle(200, 0, 500, 500);
    $draw->popClipPath();
    $draw->setClipPath($clipPathName);
    $draw->rectangle(200, 200, 300, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Configure le mode d'interprétation des unités de chemin

  • « ImagickDraw::setClipRule
  • ImagickDraw::setFillAlpha »
  • PHP Manual
  • ImagickDraw
  • Configure le mode d'interprétation des unités de chemin

ImagickDraw::setClipUnits

(PECL imagick 2.0.0)

ImagickDraw::setClipUnits — Configure le mode d'interprétation des unités de chemin

Description

bool ImagickDraw::setClipUnits ( int $clip_units )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le mode d'interprétation des unités de chemin.

Liste de paramètres

clip_units

Le nombre d'unités de clip

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setClipUnits()

<?php
function setClipUnits($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);
    $clipPathName = 'testClipPath';
    $draw->setClipUnits(\Imagick::RESOLUTION_PIXELSPERINCH);
    $draw->pushClipPath($clipPathName);
    $draw->rectangle(0, 0, 250, 250);
    $draw->popClipPath();
    $draw->setClipPath($clipPathName);

    //RESOLUTION_PIXELSPERINCH
    //RESOLUTION_PIXELSPERCENTIMETER

    $draw->rectangle(200, 200, 300, 300);
    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Configure l'opacité de la couleur de remplissage

  • « ImagickDraw::setClipUnits
  • ImagickDraw::setFillColor »
  • PHP Manual
  • ImagickDraw
  • Configure l'opacité de la couleur de remplissage

ImagickDraw::setFillAlpha

(PECL imagick 2.0.0)

ImagickDraw::setFillAlpha — Configure l'opacité de la couleur de remplissage

Description

bool ImagickDraw::setFillAlpha ( float $opacity )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure l'opacité à utiliser quand la couleur de remplissage est utilisée. 1.0 est totalement opaque.

Liste de paramètres

opacity

Canal alpha de la couleur de remplissage

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setFillAlpha()

<?php
function setFillAlpha($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);
    $draw->rectangle(100, 200, 200, 300);
    @$draw->setFillAlpha(0.4);
    $draw->rectangle(300, 200, 400, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Configure la couleur de dessin des objets remplis

  • « ImagickDraw::setFillAlpha
  • ImagickDraw::setFillOpacity »
  • PHP Manual
  • ImagickDraw
  • Configure la couleur de dessin des objets remplis

ImagickDraw::setFillColor

(PECL imagick 2.0.0)

ImagickDraw::setFillColor — Configure la couleur de dessin des objets remplis

Description

bool ImagickDraw::setFillColor ( ImagickPixel $fill_pixel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la couleur de dessin des objets remplis.

Liste de paramètres

fill_pixel

L'objet ImagickPixel à utiliser pour la couleur.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setFillColor()

<?php
function setFillColor($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(1.5);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->rectangle(50, 50, 150, 150);

    $draw->setFillColor("rgb(200, 32, 32)");
    $draw->rectangle(200, 50, 300, 150);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Configure l'opacité à utiliser pour le remplissage

  • « ImagickDraw::setFillColor
  • ImagickDraw::setFillPatternURL »
  • PHP Manual
  • ImagickDraw
  • Configure l'opacité à utiliser pour le remplissage

ImagickDraw::setFillOpacity

(PECL imagick 2.0.0)

ImagickDraw::setFillOpacity — Configure l'opacité à utiliser pour le remplissage

Description

bool ImagickDraw::setFillOpacity ( float $fillOpacity )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure l'opacité à utiliser pour le remplissage. Totalement opaque est 1.0.

Liste de paramètres

fillOpacity

L'opacité de remplissage.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setFillOpacity()

<?php
function setFillOpacity($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $draw->rectangle(100, 200, 200, 300);

    $draw->setFillOpacity(0.4);
    $draw->rectangle(300, 200, 400, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Configure l'URL du motif de remplissage des surfaces

  • « ImagickDraw::setFillOpacity
  • ImagickDraw::setFillRule »
  • PHP Manual
  • ImagickDraw
  • Configure l'URL du motif de remplissage des surfaces

ImagickDraw::setFillPatternURL

(PECL imagick 2.0.0)

ImagickDraw::setFillPatternURL — Configure l'URL du motif de remplissage des surfaces

Description

bool ImagickDraw::setFillPatternURL ( string $fill_url )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure l'URL du motif de remplissage des surfaces. Seules les URL locales ("#identifier") sont supportés actuellement. Ces URL sont normalement créée en définissant un nom de motif de remplissage avec DrawPushPattern/DrawPopPattern.

Liste de paramètres

fill_url

L'URL à utiliser pour accéder au motif.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure la règle de remplissage des polygones

  • « ImagickDraw::setFillPatternURL
  • ImagickDraw::setFont »
  • PHP Manual
  • ImagickDraw
  • Configure la règle de remplissage des polygones

ImagickDraw::setFillRule

(PECL imagick 2.0.0)

ImagickDraw::setFillRule — Configure la règle de remplissage des polygones

Description

bool ImagickDraw::setFillRule ( int $fill_rule )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la règle de remplissage des polygones.

Liste de paramètres

fill_rule

Une constante FILLRULE

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setFillRule()

<?php
function setFillRule($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $fillRules = [\Imagick::FILLRULE_NONZERO, \Imagick::FILLRULE_EVENODD];

    $points = 11;
    $size = 150;

    $draw->translate(175, 160);

    for ($x = 0; $x < 2; $x++) {
        $draw->setFillRule($fillRules[$x]);
        $draw->pathStart();
        for ($n = 0; $n < $points * 2; $n++) {

            if ($n >= $points) {
                $angle = fmod($n * 360 * 4 / $points, 360) * pi() / 180;
            }
            else {
                $angle = fmod($n * 360 * 3 / $points, 360) * pi() / 180;
            }

            $positionX = $size * sin($angle);
            $positionY = $size * cos($angle);

            if ($n == 0) {
                $draw->pathMoveToAbsolute($positionX, $positionY);
            }
            else {
                $draw->pathLineToAbsolute($positionX, $positionY);
            }
        }

        $draw->pathClose();
        $draw->pathFinish();

        $draw->translate(325, 0);
    }

    $image = new \Imagick();
    $image->newImage(700, 320, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Configure la police complète pour les textes

  • « ImagickDraw::setFillRule
  • ImagickDraw::setFontFamily »
  • PHP Manual
  • ImagickDraw
  • Configure la police complète pour les textes

ImagickDraw::setFont

(PECL imagick 2.0.0)

ImagickDraw::setFont — Configure la police complète pour les textes

Description

bool ImagickDraw::setFont ( string $font_name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la police complète pour les textes.

Liste de paramètres

font_name

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec ImagickDraw::setFont()

<?php
function setFont($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(36);

    $draw->setFont("../fonts/Arial.ttf");
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFont("../fonts/Consolas.ttf");
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFont("../fonts/CANDY.TTF");
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $draw->setFont("../fonts/Inconsolata-dz.otf");
    $draw->annotation(50, 200, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 300, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Configure la famille de police pour les textes

  • « ImagickDraw::setFont
  • ImagickDraw::setFontSize »
  • PHP Manual
  • ImagickDraw
  • Configure la famille de police pour les textes

ImagickDraw::setFontFamily

(PECL imagick 2.0.0)

ImagickDraw::setFontFamily — Configure la famille de police pour les textes

Description

bool ImagickDraw::setFontFamily ( string $font_family )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la famille de police pour les textes.

Liste de paramètres

font_family

La famille de police

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec ImagickDraw::setFontFamily()

<?php
function setFontFamily($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);

    $draw->setFontSize(48);

    $draw->setFontFamily("Times");
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFontFamily("AvantGarde");
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFontFamily("NewCenturySchlbk");
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $draw->setFontFamily("Palatino");
    $draw->annotation(50, 200, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(450, 250, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Configure la taille de point pour les textes

  • « ImagickDraw::setFontFamily
  • ImagickDraw::setFontStretch »
  • PHP Manual
  • ImagickDraw
  • Configure la taille de point pour les textes

ImagickDraw::setFontSize

(PECL imagick 2.0.0)

ImagickDraw::setFontSize — Configure la taille de point pour les textes

Description

bool ImagickDraw::setFontSize ( float $pointsize )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la taille de point pour les textes.

Liste de paramètres

pointsize

La taille de point.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setFontSize()

<?php
function setFontSize($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFont("../fonts/Arial.ttf");

    $sizes = [24, 36, 48, 60, 72];

    foreach ($sizes as $size) {
        $draw->setFontSize($size);
        $draw->annotation(50, ($size * $size / 16), "Lorem Ipsum!");
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Configure l'étirement du texte

  • « ImagickDraw::setFontSize
  • ImagickDraw::setFontStyle »
  • PHP Manual
  • ImagickDraw
  • Configure l'étirement du texte

ImagickDraw::setFontStretch

(PECL imagick 2.0.0)

ImagickDraw::setFontStretch — Configure l'étirement du texte

Description

bool ImagickDraw::setFontStretch ( int $fontStretch )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure l'étirement du texte pour le dessin des annotations. L'énumération AnyStretch sert de joker et signifie "peu importe".

Liste de paramètres

fontStretch

Une constante STRETCH_

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setFontStretch()

<?php
function setFontStretch($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(36);

    $fontStretchTypes = [
        \Imagick::STRETCH_ULTRACONDENSED,
        \Imagick::STRETCH_CONDENSED,
        \Imagick::STRETCH_SEMICONDENSED,
        \Imagick::STRETCH_SEMIEXPANDED,
        \Imagick::STRETCH_EXPANDED,
        \Imagick::STRETCH_EXTRAEXPANDED,
        \Imagick::STRETCH_ULTRAEXPANDED,
        \Imagick::STRETCH_ANY
    ];

    $offset = 0;
    foreach ($fontStretchTypes as $fontStretch) {
        $draw->setFontStretch($fontStretch);
        $draw->annotation(50, 75 + $offset, "Lorem Ipsum!");
        $offset += 50;
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Configure le style de police

  • « ImagickDraw::setFontStretch
  • ImagickDraw::setFontWeight »
  • PHP Manual
  • ImagickDraw
  • Configure le style de police

ImagickDraw::setFontStyle

(PECL imagick 2.0.0)

ImagickDraw::setFontStyle — Configure le style de police

Description

bool ImagickDraw::setFontStyle ( int $style )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le style de police utilisée pour dessiner les annotations. L'énumération AnyStyle joue le rôle de joker, et signifie "peu importe".

Liste de paramètres

style

Une constante de style.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setFontStyle()

<?php
function setFontStyle($fillColor, $strokeColor, $backgroundColor) {
    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(36);
    $draw->setFontStyle(\Imagick::STYLE_NORMAL);
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFontStyle(\Imagick::STYLE_ITALIC);
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFontStyle(\Imagick::STYLE_OBLIQUE);
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(350, 300, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Configure le poids de la police

  • « ImagickDraw::setFontStyle
  • ImagickDraw::setGravity »
  • PHP Manual
  • ImagickDraw
  • Configure le poids de la police

ImagickDraw::setFontWeight

(PECL imagick 2.0.0)

ImagickDraw::setFontWeight — Configure le poids de la police

Description

bool ImagickDraw::setFontWeight ( int $font_weight )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le poids de la police pour dessiner les annotations.

Liste de paramètres

font_weight

Valeurs de retour

Exemples

Exemple #1 Exemple avec ImagickDraw::setFontWeight()

<?php
function setFontWeight($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(1);

    $draw->setFontSize(36);

    $draw->setFontWeight(100);
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFontWeight(200);
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFontWeight(400);
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $draw->setFontWeight(800);
    $draw->annotation(50, 200, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Configure la gravité de placement de texte

  • « ImagickDraw::setFontWeight
  • ImagickDraw::setResolution »
  • PHP Manual
  • ImagickDraw
  • Configure la gravité de placement de texte

ImagickDraw::setGravity

(PECL imagick 2.0.0)

ImagickDraw::setGravity — Configure la gravité de placement de texte

Description

bool ImagickDraw::setGravity ( int $gravity )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la gravité de placement de texte, à utiliser pour dessiner les annotations.

Liste de paramètres

gravity

Une constant GRAVITY_.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setGravity()

<?php
function setGravity($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(24);

    $gravitySettings = array(
        \Imagick::GRAVITY_NORTHWEST => 'NorthWest',
        \Imagick::GRAVITY_NORTH => 'North',
        \Imagick::GRAVITY_NORTHEAST => 'NorthEast',
        \Imagick::GRAVITY_WEST => 'West',
        \Imagick::GRAVITY_CENTER => 'Centre',
        \Imagick::GRAVITY_SOUTHWEST => 'SouthWest',
        \Imagick::GRAVITY_SOUTH => 'South',
        \Imagick::GRAVITY_SOUTHEAST => 'SouthEast',
        \Imagick::GRAVITY_EAST => 'East'
    );

    $draw->setFont("../fonts/Arial.ttf");

    foreach ($gravitySettings as $type => $description) {
        $draw->setGravity($type);
        $draw->annotation(50, 50, '"' . $description . '"');
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Description

  • « ImagickDraw::setGravity
  • ImagickDraw::setStrokeAlpha »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setResolution

(No version information available, might only be in Git)

ImagickDraw::setResolution — Description

Description

public void ImagickDraw::setResolution ( string $x_resolution , string $y_resolution )

Sets the resolution.

Liste de paramètres

x_resolution

y_resolution

Valeurs de retour


Spécifie l'opacité des contours d'objets

  • « ImagickDraw::setResolution
  • ImagickDraw::setStrokeAntialias »
  • PHP Manual
  • ImagickDraw
  • Spécifie l'opacité des contours d'objets

ImagickDraw::setStrokeAlpha

(PECL imagick 2.0.0)

ImagickDraw::setStrokeAlpha — Spécifie l'opacité des contours d'objets

Description

bool ImagickDraw::setStrokeAlpha ( float $opacity )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie l'opacité des contours d'objets.

Liste de paramètres

opacity

L'opacité

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setStrokeAlpha()

<?php
function setStrokeAlpha($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(4);
    $draw->line(100, 100, 400, 145);
    $draw->rectangle(100, 200, 225, 350);
    $draw->setStrokeOpacity(0.1);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Contrôle l'anti-aliasing des pointillés

  • « ImagickDraw::setStrokeAlpha
  • ImagickDraw::setStrokeColor »
  • PHP Manual
  • ImagickDraw
  • Contrôle l'anti-aliasing des pointillés

ImagickDraw::setStrokeAntialias

(PECL imagick 2.0.0)

ImagickDraw::setStrokeAntialias — Contrôle l'anti-aliasing des pointillés

Description

bool ImagickDraw::setStrokeAntialias ( bool $stroke_antialias )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Contrôle l'anti-aliasing des pointillés. Les contours à traits sont anti-aliasés par défaut. Lorsque l'anti-aliasing est désactivé, les pointillés utilisent une valeur de seuil pour définir si le pixel sous-jacent doit être coloré ou pas.

Liste de paramètres

stroke_antialias

La configuration d'utilisation de l'anti-aliasing

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setStrokeAntialias()

<?php
function setStrokeAntialias($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setStrokeAntialias(false);
    $draw->line(100, 100, 400, 105);

    $draw->line(100, 140, 400, 185);

    $draw->setStrokeAntialias(true);
    $draw->line(100, 110, 400, 115);
    $draw->line(100, 150, 400, 195);

    $image = new \Imagick();
    $image->newImage(500, 250, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Configure la couleur utilisée pour dessiner les objets

  • « ImagickDraw::setStrokeAntialias
  • ImagickDraw::setStrokeDashArray »
  • PHP Manual
  • ImagickDraw
  • Configure la couleur utilisée pour dessiner les objets

ImagickDraw::setStrokeColor

(PECL imagick 2.0.0)

ImagickDraw::setStrokeColor — Configure la couleur utilisée pour dessiner les objets

Description

bool ImagickDraw::setStrokeColor ( ImagickPixel $stroke_pixel )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la couleur utilisée pour dessiner les objets.

Liste de paramètres

stroke_pixel

La couleur du trait.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setStrokeColor()

<?php
function setStrokeColor($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(5);

    $draw->line(100, 100, 400, 145);
    $draw->rectangle(100, 200, 225, 350);

    $draw->setStrokeOpacity(0.1);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Spécifie le motif de pointillé

  • « ImagickDraw::setStrokeColor
  • ImagickDraw::setStrokeDashOffset »
  • PHP Manual
  • ImagickDraw
  • Spécifie le motif de pointillé

ImagickDraw::setStrokeDashArray

(PECL imagick 2.0.0)

ImagickDraw::setStrokeDashArray — Spécifie le motif de pointillé

Description

bool ImagickDraw::setStrokeDashArray ( array $dashArray )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie le motif de pointillé, les pleins et vides. L'objet strokeDashArray représente un tableau de nombre qui spécifie les longueurs des pleins et vides, en pixels. Si un nombre impair de valeurs est fourni, alors la liste est répétée pour obtenir un nombre pair de valeurs. Pour retirer un tableau de motif existant, passez un nombre d'éléments à zéro, et NULL comme deuxième valeur. Un tableau strokeDashArray typique contient les membres 5 3 2.

Liste de paramètres

dashArray

Un tableau de nombre décimaux

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec ImagickDraw::setStrokeDashArray()

<?php
function setStrokeDashArray($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(4);

    $draw->setStrokeDashArray([10, 10]);
    $draw->rectangle(100, 50, 225, 175);

    $draw->setStrokeDashArray([20, 5, 20, 5, 5, 5,]);
    $draw->rectangle(275, 50, 400, 175);

    $draw->setStrokeDashArray([20, 5, 20, 5, 5]);
    $draw->rectangle(100, 200, 225, 350);

    $draw->setStrokeDashArray([1, 1, 1, 1, 2, 2, 3, 3, 5, 5, 8, 8, 13, 13, 21, 21, 34, 34, 55, 55, 89, 89, 144, 144, 233, 233, 377, 377, 610, 610, 987, 987, 1597, 1597, 2584, 2584, 4181, 4181,]);

    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Spécifie la position dans le motif pour commencer le pointillé

  • « ImagickDraw::setStrokeDashArray
  • ImagickDraw::setStrokeLineCap »
  • PHP Manual
  • ImagickDraw
  • Spécifie la position dans le motif pour commencer le pointillé

ImagickDraw::setStrokeDashOffset

(PECL imagick 2.0.0)

ImagickDraw::setStrokeDashOffset — Spécifie la position dans le motif pour commencer le pointillé

Description

bool ImagickDraw::setStrokeDashOffset ( float $dash_offset )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie la position dans le motif pour commencer le pointillé.

Liste de paramètres

dash_offset

La position de début du pointillé

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setStrokeDashOffset()

<?php
function setStrokeDashOffset($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(4);
    $draw->setStrokeDashArray([20, 20]);
    $draw->setStrokeDashOffset(0);
    $draw->rectangle(100, 50, 225, 175);

    //Start the dash effect halfway through the solid portion
    $draw->setStrokeDashOffset(10);
    $draw->rectangle(275, 50, 400, 175);

    //Start the dash effect on the space portion
    $draw->setStrokeDashOffset(20);
    $draw->rectangle(100, 200, 225, 350);
    $draw->setStrokeDashOffset(5);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Spécifie la forme à utiliser à la fin des sous-chemins

  • « ImagickDraw::setStrokeDashOffset
  • ImagickDraw::setStrokeLineJoin »
  • PHP Manual
  • ImagickDraw
  • Spécifie la forme à utiliser à la fin des sous-chemins

ImagickDraw::setStrokeLineCap

(PECL imagick 2.0.0)

ImagickDraw::setStrokeLineCap — Spécifie la forme à utiliser à la fin des sous-chemins

Description

bool ImagickDraw::setStrokeLineCap ( int $linecap )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie la forme à utiliser à la fin des sous-chemins.

Liste de paramètres

linecap

Une constante LINECAP_

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setStrokeLineCap()

<?php
function setStrokeLineCap($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(25);

    $lineTypes = [\Imagick::LINECAP_BUTT, \Imagick::LINECAP_ROUND, \Imagick::LINECAP_SQUARE,];

    $offset = 0;

    foreach ($lineTypes as $lineType) {
        $draw->setStrokeLineCap($lineType);
        $draw->line(50 + $offset, 50, 50 + $offset, 250);
        $offset += 50;
    }

    $imagick = new \Imagick();
    $imagick->newImage(300, 300, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Spécifie la forme à utiliser pour dessiner les fins de lignes

  • « ImagickDraw::setStrokeLineCap
  • ImagickDraw::setStrokeMiterLimit »
  • PHP Manual
  • ImagickDraw
  • Spécifie la forme à utiliser pour dessiner les fins de lignes

ImagickDraw::setStrokeLineJoin

(PECL imagick 2.0.0)

ImagickDraw::setStrokeLineJoin — Spécifie la forme à utiliser pour dessiner les fins de lignes

Description

bool ImagickDraw::setStrokeLineJoin ( int $linejoin )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie la forme à utiliser pour dessiner les fins de lignes et les autres formes vectorielles, quand elles utilisent un trait.

Liste de paramètres

linejoin

Une constante de jointure de lignes.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setStrokeLineJoin()

<?php
function setStrokeLineJoin($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(20);

    $offset = 220;

    $lineJoinStyle = [
        \Imagick::LINEJOIN_MITER,
        \Imagick::LINEJOIN_ROUND,
        \Imagick::LINEJOIN_BEVEL,
        ];

    for ($x = 0; $x < count($lineJoinStyle); $x++) {
        $draw->setStrokeLineJoin($lineJoinStyle[$x]);
        $points = [
            ['x' => 40 * 5, 'y' => 10 * 5 + $x * $offset],
            ['x' => 20 * 5, 'y' => 20 * 5 + $x * $offset],
            ['x' => 70 * 5, 'y' => 50 * 5 + $x * $offset],
            ['x' => 40 * 5, 'y' => 10 * 5 + $x * $offset],
        ];

        $draw->polyline($points);
    }

    $image = new \Imagick();
    $image->newImage(500, 700, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Spécifie la limiter miter

  • « ImagickDraw::setStrokeLineJoin
  • ImagickDraw::setStrokeOpacity »
  • PHP Manual
  • ImagickDraw
  • Spécifie la limiter miter

ImagickDraw::setStrokeMiterLimit

(PECL imagick 2.0.0)

ImagickDraw::setStrokeMiterLimit — Spécifie la limiter miter

Description

bool ImagickDraw::setStrokeMiterLimit ( int $miterlimit )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie la limiter miter. Lorsque deux lignes se rejoignent à angle aigu, et que la limite miter a été configuré à "lineJoin", il est possible que le miter dépasse l'épaisseur de la ligne. La limite miter impose un ratio entre la longueur de miter et l'épaisseur de la ligne "lineWidth".

Liste de paramètres

miterlimit

La limiter miter

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setStrokeMiterLimit()

<?php
function setStrokeMiterLimit($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeOpacity(0.6);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(10);

    $yOffset = 100;

    $draw->setStrokeLineJoin(\Imagick::LINEJOIN_MITER);

    for ($y = 0; $y < 3; $y++) {

        $draw->setStrokeMiterLimit(40 * $y);

        $points = [
            ['x' => 22 * 3, 'y' => 15 * 4 + $y * $yOffset],
            ['x' => 20 * 3, 'y' => 20 * 4 + $y * $yOffset],
            ['x' => 70 * 5, 'y' => 45 * 4 + $y * $yOffset],
        ];

        $draw->polygon($points);
    }

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    $image->setImageType(\Imagick::IMGTYPE_PALETTE);
    $image->setImageCompressionQuality(100);
    $image->stripImage();

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Spécifie l'opacité pour dessiner les contours

  • « ImagickDraw::setStrokeMiterLimit
  • ImagickDraw::setStrokePatternURL »
  • PHP Manual
  • ImagickDraw
  • Spécifie l'opacité pour dessiner les contours

ImagickDraw::setStrokeOpacity

(PECL imagick 2.0.0)

ImagickDraw::setStrokeOpacity — Spécifie l'opacité pour dessiner les contours

Description

bool ImagickDraw::setStrokeOpacity ( float $stroke_opacity )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie l'opacité pour dessiner les contours.

Liste de paramètres

stroke_opacity

L'opacité du trait. 1.0 est totalement opaque.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setStrokeOpacity()

<?php
function setStrokeOpacity($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(10);
    $draw->setStrokeOpacity(1);
    $draw->line(100, 80, 400, 125);
    $draw->rectangle(25, 200, 150, 350);
    $draw->setStrokeOpacity(0.5);
    $draw->line(100, 100, 400, 145);
    $draw->rectangle(200, 200, 325, 350);
    $draw->setStrokeOpacity(0.2);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(375, 200, 500, 350);

    $image = new \Imagick();
    $image->newImage(550, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Configure le motif utilisé pour dessiner les contours

  • « ImagickDraw::setStrokeOpacity
  • ImagickDraw::setStrokeWidth »
  • PHP Manual
  • ImagickDraw
  • Configure le motif utilisé pour dessiner les contours

ImagickDraw::setStrokePatternURL

(PECL imagick 2.0.0)

ImagickDraw::setStrokePatternURL — Configure le motif utilisé pour dessiner les contours

Description

bool ImagickDraw::setStrokePatternURL ( string $stroke_url )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le motif utilisé pour dessiner les contours.

Liste de paramètres

stroke_url

L'URL du motif du trait

Valeurs de retour

imagick.imagickdraw.return.success;


Configure la largeur du trait pour dessiner les contours

  • « ImagickDraw::setStrokePatternURL
  • ImagickDraw::setTextAlignment »
  • PHP Manual
  • ImagickDraw
  • Configure la largeur du trait pour dessiner les contours

ImagickDraw::setStrokeWidth

(PECL imagick 2.0.0)

ImagickDraw::setStrokeWidth — Configure la largeur du trait pour dessiner les contours

Description

bool ImagickDraw::setStrokeWidth ( float $stroke_width )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la largeur du trait pour dessiner les contours.

Liste de paramètres

stroke_width

La largeur du trait

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setStrokeWidth()

<?php
function setStrokeWidth($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->line(100, 100, 400, 145);
    $draw->rectangle(100, 200, 225, 350);
    $draw->setStrokeWidth(5);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Spécifie l'alignement du texte

  • « ImagickDraw::setStrokeWidth
  • ImagickDraw::setTextAntialias »
  • PHP Manual
  • ImagickDraw
  • Spécifie l'alignement du texte

ImagickDraw::setTextAlignment

(PECL imagick 2.0.0)

ImagickDraw::setTextAlignment — Spécifie l'alignement du texte

Description

bool ImagickDraw::setTextAlignment ( int $alignment )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie l'alignement du texte à appliquer au texte d'une annotation.

Liste de paramètres

alignment

Une constante ALIGN_

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setTextAlignment()

<?php
function setTextAlignment($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(36);

    $draw->setTextAlignment(\Imagick::ALIGN_LEFT);
    $draw->annotation(250, 75, "Lorem Ipsum!");
    $draw->setTextAlignment(\Imagick::ALIGN_CENTER);
    $draw->annotation(250, 150, "Lorem Ipsum!");
    $draw->setTextAlignment(\Imagick::ALIGN_RIGHT);
    $draw->annotation(250, 225, "Lorem Ipsum!");
    $draw->line(250, 0, 250, 500);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Contrôle l'anti-alisasing du texte

  • « ImagickDraw::setTextAlignment
  • ImagickDraw::setTextDecoration »
  • PHP Manual
  • ImagickDraw
  • Contrôle l'anti-alisasing du texte

ImagickDraw::setTextAntialias

(PECL imagick 2.0.0)

ImagickDraw::setTextAntialias — Contrôle l'anti-alisasing du texte

Description

bool ImagickDraw::setTextAntialias ( bool $antiAlias )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Contrôle l'anti-alisasing du texte. Les textes sont anti-aliasés par défaut.

Liste de paramètres

antiAlias

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setTextAntialias()

<?php
function setTextAntialias($fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor('none');
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(32);
    $draw->setTextAntialias(false);
    $draw->annotation(5, 30, "Lorem Ipsum!");
    $draw->setTextAntialias(true);
    $draw->annotation(5, 65, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(220, 80, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    //Scale the image so that people can see the aliasing.
    $imagick->scaleImage(220 * 6, 80 * 6);
    $imagick->cropImage(640, 480, 0, 0);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Spécifie les ornements de texte

  • « ImagickDraw::setTextAntialias
  • ImagickDraw::setTextEncoding »
  • PHP Manual
  • ImagickDraw
  • Spécifie les ornements de texte

ImagickDraw::setTextDecoration

(PECL imagick 2.0.0)

ImagickDraw::setTextDecoration — Spécifie les ornements de texte

Description

bool ImagickDraw::setTextDecoration ( int $decoration )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie les ornements de texte utilisé pour les annotations.

Liste de paramètres

decoration

Une constante de DECORATION_.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setTextDecoration()

<?php
function setTextDecoration($strokeColor, $fillColor, $backgroundColor, $textDecoration) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->setTextDecoration($textDecoration);
    $draw->annotation(50, 75, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 200, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Spécifie le jeu de caractères

  • « ImagickDraw::setTextDecoration
  • ImagickDraw::setTextInterlineSpacing »
  • PHP Manual
  • ImagickDraw
  • Spécifie le jeu de caractères

ImagickDraw::setTextEncoding

(PECL imagick 2.0.0)

ImagickDraw::setTextEncoding — Spécifie le jeu de caractères

Description

bool ImagickDraw::setTextEncoding ( string $encoding )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie le jeu de caractères à utiliser pour les annotations de texte. Le seul jeu de caractères qui peut être spécifié actuellement est "UTF-8", qui représente l'Unicode sous forme d'une séquence d'octets. Spécifiez une chaîne vide pour utiliser le jeu de caractères du système. Le dessin des textes peut avoir besoin d'une police qui supporte Unicode.

Liste de paramètres

encoding

Le jeu de caractères

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « ImagickDraw::setTextEncoding
  • ImagickDraw::setTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setTextInterlineSpacing

(No version information available, might only be in Git)

ImagickDraw::setTextInterlineSpacing — Description

Description

public void ImagickDraw::setTextInterlineSpacing ( float $spacing )

Sets the text interline spacing.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

spacing

Valeurs de retour


Description

  • « ImagickDraw::setTextInterlineSpacing
  • ImagickDraw::setTextKerning »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setTextInterwordSpacing

(No version information available, might only be in Git)

ImagickDraw::setTextInterwordSpacing — Description

Description

public void ImagickDraw::setTextInterwordSpacing ( float $spacing )

Sets the text interword spacing.

Liste de paramètres

spacing

Valeurs de retour


Description

  • « ImagickDraw::setTextInterwordSpacing
  • ImagickDraw::setTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setTextKerning

(No version information available, might only be in Git)

ImagickDraw::setTextKerning — Description

Description

public void ImagickDraw::setTextKerning ( float $kerning )

Sets the text kerning

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

kerning

Valeurs de retour


Spécifie la couleur de fond d'une rectangle

  • « ImagickDraw::setTextKerning
  • ImagickDraw::setVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Spécifie la couleur de fond d'une rectangle

ImagickDraw::setTextUnderColor

(PECL imagick 2.0.0)

ImagickDraw::setTextUnderColor — Spécifie la couleur de fond d'une rectangle

Description

bool ImagickDraw::setTextUnderColor ( ImagickPixel $under_color )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Spécifie la couleur de fond d'une rectangle à placer sous les textes.

Liste de paramètres

under_color

La couleur de fond

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setTextUnderColor()

<?php
function setTextUnderColor($strokeColor, $fillColor, $backgroundColor, $textUnderColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->annotation(50, 75, "Lorem Ipsum!");
    $draw->setTextUnderColor($textUnderColor);
    $draw->annotation(50, 175, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Configure le vecteur graphique

  • « ImagickDraw::setTextUnderColor
  • ImagickDraw::setViewbox »
  • PHP Manual
  • ImagickDraw
  • Configure le vecteur graphique

ImagickDraw::setVectorGraphics

(PECL imagick 2.0.0)

ImagickDraw::setVectorGraphics — Configure le vecteur graphique

Description

bool ImagickDraw::setVectorGraphics ( string $xml )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure le vecteur graphique associé à l'objet ImagickDraw. Utilisez cette méthode avec ImagickDraw::getVectorGraphics, pour faire persister l'état du vecteur graphique.

Liste de paramètres

xml

Code XML contenant le vecteur graphique

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ImagickDraw::setVectorGraphics()

<?php
function setVectorGraphics() {
    //Setup a draw object with some drawing in it.
    $draw = new \ImagickDraw();
    $draw->setFillColor("red");
    $draw->circle(20, 20, 50, 50);
    $draw->setFillColor("blue");
    $draw->circle(50, 70, 50, 50);
    $draw->rectangle(50, 120, 80, 150);

    //Get the drawing as a string
    $SVG = $draw->getVectorGraphics();

    //$svg is a string, and could be saved anywhere a string can be saved

    //Use the saved drawing to generate a new draw object
    $draw2 = new \ImagickDraw();
    //Apparently the SVG text is missing the root element.
    $draw2->setVectorGraphics("<root>".$SVG."</root>");

    $imagick = new \Imagick();
    $imagick->newImage(200, 200, 'white');
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw2);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Configure la taille du canevas

  • « ImagickDraw::setVectorGraphics
  • ImagickDraw::skewX »
  • PHP Manual
  • ImagickDraw
  • Configure la taille du canevas

ImagickDraw::setViewbox

(PECL imagick 2.0.0)

ImagickDraw::setViewbox — Configure la taille du canevas

Description

bool ImagickDraw::setViewbox ( int $x1 , int $y1 , int $x2 , int $y2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Configure la taille du canevas général, à enregistrer avec les données vectorielles. Généralement, on configure cette valeur avec la même taille que l'image. Lorsque les données vectorielles sont sauvées en SVG ou MVG, la boîte de vue est utilisée pour spécifier la taille de l'image dans laquelle le lecteur vidéo va dessiner les données.

Liste de paramètres

x1

Abscisse gauche

y1

Ordonnée gauche

x2

Abscisse droite

y2

Ordonnée droite

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::setViewBox()

<?php
function setViewBox($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    /*

    Sets the overall canvas size to be recorded with the drawing vector data. Usually this will be specified using the same size as the canvas image. When the vector data is saved to SVG or MVG formats, the viewbox is use to specify the size of the canvas image that a viewer will render the vector data on.

     */

    $draw->circle(250, 250, 250, 0);
    $draw->setviewbox(0, 0, 200, 200);
    $draw->circle(125, 250, 250, 250);
    $draw->translate(250, 125);
    $draw->circle(0, 0, 125, 0);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Biaise les coordonnées dans la direction horizontale

  • « ImagickDraw::setViewbox
  • ImagickDraw::skewY »
  • PHP Manual
  • ImagickDraw
  • Biaise les coordonnées dans la direction horizontale

ImagickDraw::skewX

(PECL imagick 2.0.0)

ImagickDraw::skewX — Biaise les coordonnées dans la direction horizontale

Description

bool ImagickDraw::skewX ( float $degrees )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Biaise les coordonnées dans la direction horizontale.

Liste de paramètres

degrees

Degré de biaisage

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::skewX()

<?php
function skewX($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
               $startX, $startY, $endX, $endY, $skew) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(2);
    $draw->setFillColor($fillColor);
    $draw->rectangle($startX, $startY, $endX, $endY);
    $draw->setFillColor($fillModifiedColor);
    $draw->skewX($skew);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Incline les coordonnées dans la direction verticale

  • « ImagickDraw::skewX
  • ImagickDraw::translate »
  • PHP Manual
  • ImagickDraw
  • Incline les coordonnées dans la direction verticale

ImagickDraw::skewY

(PECL imagick 2.0.0)

ImagickDraw::skewY — Incline les coordonnées dans la direction verticale

Description

bool ImagickDraw::skewY ( float $degrees )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Incline les coordonnées dans la direction verticale.

Liste de paramètres

degrees

Le nombre de degrés d'inclinaison

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::skewY()

<?php
function skewY($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
               $startX, $startY, $endX, $endY, $skew) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(2);
    $draw->setFillColor($fillColor);
    $draw->rectangle($startX, $startY, $endX, $endY);
    $draw->setFillColor($fillModifiedColor);
    $draw->skewY($skew);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Applique une translation

  • « ImagickDraw::skewY
  • ImagickPixel »
  • PHP Manual
  • ImagickDraw
  • Applique une translation

ImagickDraw::translate

(PECL imagick 2.0.0)

ImagickDraw::translate — Applique une translation

Description

bool ImagickDraw::translate ( float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Applique une translation au système de coordonnées actuel, qui déplace l'origine de ce système.

Liste de paramètres

x

Translation horizontale

y

Translation verticale

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ImagickDraw::translate()

<?php
function translate($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
                   $startX, $startY, $endX, $endY, $translateX, $translateY) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $draw->setFillColor($fillModifiedColor);
    $draw->translate($translateX, $translateY);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


La classe ImagickPixel

(PECL imagick 2.0.0)

Synopsis de la classe

ImagickPixel {
bool clear ( void )
__construct ([ string $color ] )
bool destroy ( void )
array getColor ([ bool $normalized = false ] )
string getColorAsString ( void )
int getColorCount ( void )
public mixed getColorQuantum ( void )
float getColorValue ( int $color )
public mixed getColorValueQuantum ( void )
array getHSL ( void )
public int getIndex ( void )
bool isPixelSimilar ( ImagickPixel $color , float $fuzz )
public bool isPixelSimilarQuantum ( string $color [, string $fuzz ] )
bool isSimilar ( ImagickPixel $color , float $fuzz )
bool setColor ( string $color )
public void setcolorcount ( string $colorCount )
bool setColorValue ( int $color , float $value )
public void setColorValueQuantum ( int $color , mixed $value )
bool setHSL ( float $hue , float $saturation , float $luminosity )
public void setIndex ( int $index )
}

Sommaire

  • ImagickPixel::clear — Supprime toutes les ressources associées avec l'objet
  • ImagickPixel::__construct — Le constructeur ImagickPixel
  • ImagickPixel::destroy — Libère les ressources associées avec l'objet
  • ImagickPixel::getColor — Retourne la couleur
  • ImagickPixel::getColorAsString — Retourne une couleur
  • ImagickPixel::getColorCount — Retourne le nombre de couleurs associé avec une couleur
  • ImagickPixel::getColorQuantum — Description
  • ImagickPixel::getColorValue — Récupère la valeur normalisée du canal de la couleur fournie
  • ImagickPixel::getColorValueQuantum — Description
  • ImagickPixel::getHSL — Retourne la couleur HSL normalisée de l'objet ImagickPixel
  • ImagickPixel::getIndex — Description
  • ImagickPixel::isPixelSimilar — Vérifie la distance entre cette couleur et une autre
  • ImagickPixel::isPixelSimilarQuantum — Description
  • ImagickPixel::isSimilar — Vérifie la distance entre 2 couleurs
  • ImagickPixel::setColor — Définit la couleur
  • ImagickPixel::setColorCount — Description
  • ImagickPixel::setColorValue — Définit la valeur normalisée d'un des canaux
  • ImagickPixel::setColorValueQuantum — Description
  • ImagickPixel::setHSL — Définit la couleur HSL normalisée
  • ImagickPixel::setIndex — Description


Supprime toutes les ressources associées avec l'objet

  • « ImagickPixel
  • ImagickPixel::__construct »
  • PHP Manual
  • ImagickPixel
  • Supprime toutes les ressources associées avec l'objet

ImagickPixel::clear

(PECL imagick 2.0.0)

ImagickPixel::clear — Supprime toutes les ressources associées avec l'objet

Description

bool ImagickPixel::clear ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Supprime l'objet ImagickPixel, le laissant dans un statut initial. Supprime également toutes les couleurs associées avec l'objet.

Valeurs de retour

Retourne TRUE en cas de succès.


Le constructeur ImagickPixel

  • « ImagickPixel::clear
  • ImagickPixel::destroy »
  • PHP Manual
  • ImagickPixel
  • Le constructeur ImagickPixel

ImagickPixel::__construct

(PECL imagick 2.0.0)

ImagickPixel::__construct — Le constructeur ImagickPixel

Description

ImagickPixel::__construct ([ string $color ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Construit un objet ImagickPixel. Si une couleur est spécifiée, l'objet est construit, puis initialisé avec cette couleur avant d'être retourné.

Liste de paramètres

color

Une chaîne représentant la couleur optionnelle à utiliser comme valeur initiale de l'objet.

Valeurs de retour

Retourne un objet ImagickPixel en cas de succès ou lance une exception ImagickPixelException si une erreur survient.

Exemples

Exemple #1 Exemple avec ImagickPixel::construct()

<?php
function construct() {

    $columns = 4;

    $exampleColors = array(
        "rgba(100%, 0%, 0%, 0.5)",
        "hsb(33.3333%, 100%,  75%)", // vert moyen
        "hsl(120, 255,   191.25)", //vert moyen
        "graya(50%, 0.5)", //  gris moyen, semi-transparent
        "LightCoral", "none", //"cmyk(0.9, 0.48, 0.83, 0.50)",
        "#f00", //  #rgb
        "#ff0000", //  #rrggbb
        "#ff0000ff", //  #rrggbbaa
        "#ffff00000000", //  #rrrrggggbbbb
        "#ffff00000000ffff", //  #rrrrggggbbbbaaaa
        "rgb(255, 0, 0)", //  un entier dans l'intervalle 0—255 pour chaque composant
        "rgb(100.0%, 0.0%, 0.0%)", //  un ombre à virgule flottante, dans l'intervalle 0—100% pour chaque composant
        "rgb(255, 0, 0)", //  intervalle 0 - 255
        "rgba(255, 0, 0, 1.0)", //  pareil, mais avec une valeur alpha explicite
        "rgb(100%, 0%, 0%)", //  intervalle 0.0% - 100.0%
        "rgba(100%, 0%, 0%, 1.0)", //  pareil, mais avec une valeur alpha explicite
    );

    $draw = new \ImagickDraw();
    $count = 0;
    $black = new \ImagickPixel('rgb(0, 0, 0)');

    foreach ($exampleColors as $exampleColor) {
        $color = new \ImagickPixel($exampleColor);

        $draw->setstrokewidth(1.0);
        $draw->setStrokeColor($black);
        $draw->setFillColor($color);
        $offsetX = ($count % $columns) * 50 + 5;
        $offsetY = intval($count / $columns) * 50 + 5;
        $draw->rectangle(0 + $offsetX, 0 + $offsetY, 40 + $offsetX, 40 + $offsetY);
        $count++;
    }

    $image = new \Imagick();
    $image->newImage(350, 350, "blue");
    $image->setImageFormat("png");
    $image->drawImage($draw);
    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Libère les ressources associées avec l'objet

  • « ImagickPixel::__construct
  • ImagickPixel::getColor »
  • PHP Manual
  • ImagickPixel
  • Libère les ressources associées avec l'objet

ImagickPixel::destroy

(PECL imagick 2.0.0)

ImagickPixel::destroy — Libère les ressources associées avec l'objet

Description

bool ImagickPixel::destroy ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Libère toutes les ressources utilisées par l'objet ImagickPixel et supprime toutes les couleurs associées. L'objet ne doit pas être utilisé par l'appel de cette fonction.

Valeurs de retour

Retourne TRUE en cas de succès.


Retourne la couleur

  • « ImagickPixel::destroy
  • ImagickPixel::getColorAsString »
  • PHP Manual
  • ImagickPixel
  • Retourne la couleur

ImagickPixel::getColor

(PECL imagick 2.0.0)

ImagickPixel::getColor — Retourne la couleur

Description

array ImagickPixel::getColor ([ bool $normalized = false ] )

Retourne la couleur décrite par l'objet ImagickPixel, sous la forme d'un tableau. Si la couleur contient un canal d'opacité, il sera fourni comme quatrième valeur de la liste.

Liste de paramètres

normalized

Valeurs normalisées de la couleur

Valeurs de retour

Un tableau de valeurs de canaux, chacun normalisé si TRUE est fourni comme argument. Lance une exception ImagickPixelException si une erreur survient.

Exemples

Exemple #1 Utilisation simple de la méthode Imagick::getColor()

<?php

// Crée un objet ImagickPixel avec comme couleur prédéfinie 'marron'
$color = new ImagickPixel('brown');

// Défini la couleur pour avoir un canal alpha de 25%
$color->setColorValue(Imagick::COLOR_ALPHA, 64 / 256.0);

$colorInfo = $color->getColor();

echo "Valeurs standards :".PHP_EOL;
print_r($colorInfo);

$colorInfo = $color->getColor(true);

echo "Valeurs normalisées :".PHP_EOL;
print_r($colorInfo);

?>

L'exemple ci-dessus va afficher :

Valeurs standards :
Array
(
    [r] => 165
    [g] => 42
    [b] => 42
    [a] => 0
)
Valeurs normalisées :
Array
(
    [r] => 0.64705882352941
    [g] => 0.16470588235294
    [b] => 0.16470588235294
    [a] => 0.25000381475547
)


Retourne une couleur

  • « ImagickPixel::getColor
  • ImagickPixel::getColorCount »
  • PHP Manual
  • ImagickPixel
  • Retourne une couleur

ImagickPixel::getColorAsString

(PECL imagick 2.1.0)

ImagickPixel::getColorAsString — Retourne une couleur

Description

string ImagickPixel::getColorAsString ( void )

Retourne la couleur de l'objet ImagickPixel, sous la forme d'une chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur de l'objet ImagickPixel, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Utilisation basique de la méthode Imagick::getColorAsString()

<?php

//Crée un objet ImagickPixel avec comme couleur prédéfinie le 'marron'
$color = new ImagickPixel('brown');

$color->setColorValue(Imagick::COLOR_ALPHA, 64 / 256.0);

$colorInfo = $color->getColorAsString();

print_r($colorInfo);
?>

L'exemple ci-dessus va afficher :

rgb(165,42,42)

Notes

Note: Alpha non retourné

Cette méthode ne retourne pas la valeur de l'alpha de la couleur dans la chaîne.


Retourne le nombre de couleurs associé avec une couleur

  • « ImagickPixel::getColorAsString
  • ImagickPixel::getColorQuantum »
  • PHP Manual
  • ImagickPixel
  • Retourne le nombre de couleurs associé avec une couleur

ImagickPixel::getColorCount

(PECL imagick 2.0.0)

ImagickPixel::getColorCount — Retourne le nombre de couleurs associé avec une couleur

Description

int ImagickPixel::getColorCount ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le nombre de couleurs associé avec la couleur.

Valeurs de retour

Retourne le nombre de couleurs, sous la forme d'un entier en cas de succès ou lance une exception ImagickPixelException si une erreur survient.


Description

  • « ImagickPixel::getColorCount
  • ImagickPixel::getColorValue »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::getColorQuantum

(No version information available, might only be in Git)

ImagickPixel::getColorQuantum — Description

Description

public mixed ImagickPixel::getColorQuantum ( void )

Returns the color of the pixel in an array as Quantum values. If ImageMagick was compiled as HDRI these will be floats, otherwise they will be integers.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The quantum value of the color element. Float if ImageMagick was compiled with HDRI, otherwise an int.


Récupère la valeur normalisée du canal de la couleur fournie

  • « ImagickPixel::getColorQuantum
  • ImagickPixel::getColorValueQuantum »
  • PHP Manual
  • ImagickPixel
  • Récupère la valeur normalisée du canal de la couleur fournie

ImagickPixel::getColorValue

(PECL imagick 2.0.0)

ImagickPixel::getColorValue — Récupère la valeur normalisée du canal de la couleur fournie

Description

float ImagickPixel::getColorValue ( int $color )

Récupère la valeur du canal de la couleur spécifiée, sous la forme d'un nombre à virgule flottante compris entre 0 et 1.

Liste de paramètres

color

La couleur pour laquelle la valeur sera récupérée, spécifiée sous forme de constante de couleurs Imagick. Peut être des couleurs RGB, des couleurs CMYK, alpha et opacité, i.e. Imagick::COLOR_BLUE ou Imagick::COLOR_MAGENTA.

Valeurs de retour

La valeur du canal, sous la forme d'un nombre à virgule flottante normalisé, ou lance une exception ImagickPixelException si une erreur survient.

Exemples

Exemple #1 Utilisation basique de la méthode Imagick::getColorValue()

<?php

$color = new ImagickPixel('rgba(90%, 20%, 20%, 0.75)');

echo "La valeur alpha est ".$color->getColorValue(Imagick::COLOR_ALPHA).PHP_EOL;
echo "".PHP_EOL;
echo "La valeur rouge est ".$color->getColorValue(Imagick::COLOR_RED).PHP_EOL;
echo "La valeur verte est ".$color->getColorValue(Imagick::COLOR_GREEN).PHP_EOL;
echo "La valeur bleue est ".$color->getColorValue(Imagick::COLOR_BLUE).PHP_EOL;
echo "".PHP_EOL;
echo "La valeur Cyan est ".$color->getColorValue(Imagick::COLOR_CYAN).PHP_EOL;
echo "La valeur Magenta est ".$color->getColorValue(Imagick::COLOR_MAGENTA).PHP_EOL;
echo "La valeur jaune est ".$color->getColorValue(Imagick::COLOR_YELLOW).PHP_EOL;
echo "La valeur noire est ".$color->getColorValue(Imagick::COLOR_BLACK).PHP_EOL;

?>

L'exemple ci-dessus va afficher :

La valeur alpha est 0.74999618524453

La valeur rouge est 0.90000762951095
La valeur verte est 0.2
La valeur bleue est 0.2

La valeur Cyan est 0.90000762951095
La valeur Magenta est 0.2
La valeur jaune est 0.2
La valeur noire est 0


Description

  • « ImagickPixel::getColorValue
  • ImagickPixel::getHSL »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::getColorValueQuantum

(No version information available, might only be in Git)

ImagickPixel::getColorValueQuantum — Description

Description

public mixed ImagickPixel::getColorValueQuantum ( void )

Gets the quantum value of a color in the ImagickPixel. Return value is a float if ImageMagick was compiled with HDRI, otherwise an integer.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The quantum value of the color element. Float if ImageMagick was compiled with HDRI, otherwise an int.

Exemples

Exemple #1 ImagickPixel::getColorValueQuantum()

<?php
        $color = new \ImagickPixel('rgb(128, 5, 255)');
        $colorRed = $color->getColorValueQuantum(\Imagick::COLOR_RED);
        $colorGreen = $color->getColorValueQuantum(\Imagick::COLOR_GREEN);
        $colorBlue = $color->getColorValueQuantum(\Imagick::COLOR_BLUE);
        $colorAlpha = $color->getColorValueQuantum(\Imagick::COLOR_ALPHA);

        printf(
            "Red: %s Green: %s  Blue %s Alpha: %s",
            $colorRed,
            $colorGreen,
            $colorBlue,
            $colorAlpha
        );

?>


Retourne la couleur HSL normalisée de l'objet ImagickPixel

  • « ImagickPixel::getColorValueQuantum
  • ImagickPixel::getIndex »
  • PHP Manual
  • ImagickPixel
  • Retourne la couleur HSL normalisée de l'objet ImagickPixel

ImagickPixel::getHSL

(PECL imagick 2.0.0)

ImagickPixel::getHSL — Retourne la couleur HSL normalisée de l'objet ImagickPixel

Description

array ImagickPixel::getHSL ( void )

Retourne la couleur HSL normalisée, décrite par l'objet ImagickPixel, dont chacune des trois valeurs sera un nombre décimal, compris entre 0.0 et 1.0.

Valeurs de retour

Retourne la valeur HSL dans un tableau contenant les clés "hue", "saturation" et "luminosity". Lance une exception ImagickPixelException si une erreur survient.

Exemples

Exemple #1 Exemple avec Imagick::getHSL()

<?php

$color = new ImagickPixel('rgb(90%, 10%, 10%)');

$colorInfo = $color->getHSL();

print_r($colorInfo);

?>

L'exemple ci-dessus va afficher :

Array
(
    [hue] => 0
    [saturation] => 0.80001220740379
    [luminosity] => 0.50000762951095
)

Notes

Note:

Disponible avec la version 6.2.9 et supérieure de la bibliothèque ImageMagick.


Description

  • « ImagickPixel::getHSL
  • ImagickPixel::isPixelSimilar »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::getIndex

(No version information available, might only be in Git)

ImagickPixel::getIndex — Description

Description

public int ImagickPixel::getIndex ( void )

Gets the colormap index of the pixel wand.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Vérifie la distance entre cette couleur et une autre

  • « ImagickPixel::getIndex
  • ImagickPixel::isPixelSimilarQuantum »
  • PHP Manual
  • ImagickPixel
  • Vérifie la distance entre cette couleur et une autre

ImagickPixel::isPixelSimilar

(No version information available, might only be in Git)

ImagickPixel::isPixelSimilar — Vérifie la distance entre cette couleur et une autre

Description

bool ImagickPixel::isPixelSimilar ( ImagickPixel $color , float $fuzz )

Vérifie la distance entre la couleur décrite par cet objet ImagickPixel et celle de l'objet fourni. Si la distance entre les deux points est inférieure à la valeur du paramètre fuzz fourni, la couleur est similaire. Cette méthode remplace la méthode ImagickPixel::isSimilar() et normalise correctement la valeur fuzz d'ImageMagick QuantumRange.

Liste de paramètres

color

L'objet ImagickPixel à utiliser pour la comparaison.

fuzz

La distance maximale pour laquelle on considère les couleurs comme similaires. La valeur maximale théorique pour cette valeur est la racine quarré de trois (1.732).

Valeurs de retour

Retourne TRUE en cas de succès.


Description

  • « ImagickPixel::isPixelSimilar
  • ImagickPixel::isSimilar »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::isPixelSimilarQuantum

(No version information available, might only be in Git)

ImagickPixel::isPixelSimilarQuantum — Description

Description

public bool ImagickPixel::isPixelSimilarQuantum ( string $color [, string $fuzz ] )

Returns true if the distance between two colors is less than the specified distance. The fuzz value should be in the range 0-QuantumRange. The maximum value represents the longest possible distance in the colorspace. e.g. from RGB(0, 0, 0) to RGB(255, 255, 255) for the RGB colorspace

Liste de paramètres

color

fuzz

Valeurs de retour


Vérifie la distance entre 2 couleurs

  • « ImagickPixel::isPixelSimilarQuantum
  • ImagickPixel::setColor »
  • PHP Manual
  • ImagickPixel
  • Vérifie la distance entre 2 couleurs

ImagickPixel::isSimilar

(PECL imagick 2.0.0)

ImagickPixel::isSimilar — Vérifie la distance entre 2 couleurs

Description

bool ImagickPixel::isSimilar ( ImagickPixel $color , float $fuzz )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie la distance entre la couleur décrite par l'objet ImagickPixel et celle de l'objet fourni, en plaçant leurs valeurs RGB sur le cube de couleur. Si la distance entre les 2 points est inférieure à la valeur du paramètre fuzz, la couleur est similaire. Obsolète en faveur de la méthode ImagickPixel::isPixelSimilar().

Liste de paramètres

color

L'objet ImagickPixel utilisé pour la comparaison.

fuzz

La distance maximale utilisée pour considérer que les couleurs sont similaires. La valeur maximale théorique est la racine carré de 3 (1.732).

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec ImagickPixel::isSimilar()

<?php
        // Le test ci-dessous a été écrit avec une distance maximale de 255,
        // aussi, nous devons le mettre à l'échelle avec une racine carrée de 3 -
        // la longueur de la diagonale d'un cube.
        $root3 = 1.732050807568877;

        $tests = array(
            ['rgb(245, 0, 0)',      'rgb(255, 0, 0)',   9 / $root3,         false,],
            ['rgb(245, 0, 0)',      'rgb(255, 0, 0)',  10 / $root3,         true,],
            ['rgb(0, 0, 0)',        'rgb(7, 7, 0)',     9 / $root3,         false,],
            ['rgb(0, 0, 0)',        'rgb(7, 7, 0)',    10 / $root3,         true,],
            ['rgba(0, 0, 0, 1)',    'rgba(7, 7, 0, 1)', 9 / $root3,         false,],
            ['rgba(0, 0, 0, 1)',    'rgba(7, 7, 0, 1)',    10 / $root3,     true,],
            ['rgb(128, 128, 128)',  'rgb(128, 128, 120)',   7 / $root3,     false,],
            ['rgb(128, 128, 128)',  'rgb(128, 128, 120)',   8 / $root3,     true,],
            ['rgb(0, 0, 0)',        'rgb(255, 255, 255)',   254.9,          false,],
            ['rgb(0, 0, 0)',        'rgb(255, 255, 255)',   255,            true,],
            ['rgb(255, 0, 0)',      'rgb(0, 255, 255)',     254.9,          false,],
            ['rgb(255, 0, 0)',      'rgb(0, 255, 255)',     255,            true,],
            ['black',               'rgba(0, 0, 0)',        0.0,            true],
            ['black',               'rgba(10, 0, 0, 1.0)',  10.0 / $root3,  true],);

        $output = "<table width='100%' class='infoTable'><thead>
                <tr>
                <th>
                Color 1
                </th>
                <th>
                Color 2
                </th>
                <th>
                    Test distance * 255
                </th>
                <th>
                    Is within distance
                </th>
                </tr>
        </thead>";

        $output .= "<tbody>";

        foreach ($tests as $testInfo) {
            $color1 = $testInfo[0];
            $color2 = $testInfo[1];
            $distance = $testInfo[2];
            $expectation = $testInfo[3];
            $testDistance = ($distance / 255.0);

            $color1Pixel = new \ImagickPixel($color1);
            $color2Pixel = new \ImagickPixel($color2);

            $isSimilar = $color1Pixel->isPixelSimilar($color2Pixel, $testDistance);

            if ($isSimilar !== $expectation) {
                echo "Test distance failed. Color [$color1] compared to color [$color2] is not within distance $testDistance FAILED.".NL;
            }

            $layout = "<tr>
                <td>%s</td>
                <td>%s</td>
                <td>%s</td>
                <td style='text-align: center;'>%s</td>
            </tr>";

            $output .= sprintf(
                $layout,
                $color1,
                $color2,
                $distance,
                $isSimilar ? 'yes' : 'no'
            );
        }

        $output .= "</tbody></table>";

        return $output;

?>


Définit la couleur

  • « ImagickPixel::isSimilar
  • ImagickPixel::setColorCount »
  • PHP Manual
  • ImagickPixel
  • Définit la couleur

ImagickPixel::setColor

(PECL imagick 2.0.0)

ImagickPixel::setColor — Définit la couleur

Description

bool ImagickPixel::setColor ( string $color )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Définit la couleur, décrite par l'objet ImagickPixel, avec une chaîne de caractères (e.g. "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).

Liste de paramètres

color

La définition de la couleur à utiliser afin d'initialiser l'objet ImagickPixel.

Valeurs de retour

Retourne TRUE si la couleur spécifiée a été définie ou FALSE sinon.

Exemples

Exemple #1 Exemple avec ImagickPixel::setColor()

<?php
function setColor() {
    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel('green');
    $fillColor = new \ImagickPixel();
    $fillColor->setColor('rgba(100%, 75%, 0%, 1.0)');

    $draw->setstrokewidth(3.0);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);

    $image = new \Imagick();
    $image->newImage(500, 500, "SteelBlue2");
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Description

  • « ImagickPixel::setColor
  • ImagickPixel::setColorValue »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::setColorCount

(No version information available, might only be in Git)

ImagickPixel::setColorCount — Description

Description

public void ImagickPixel::setcolorcount ( string $colorCount )

Sets the color count associated with this color.

Liste de paramètres

colorCount

Valeurs de retour


Définit la valeur normalisée d'un des canaux

  • « ImagickPixel::setColorCount
  • ImagickPixel::setColorValueQuantum »
  • PHP Manual
  • ImagickPixel
  • Définit la valeur normalisée d'un des canaux

ImagickPixel::setColorValue

(PECL imagick 2.0.0)

ImagickPixel::setColorValue — Définit la valeur normalisée d'un des canaux

Description

bool ImagickPixel::setColorValue ( int $color , float $value )

Définit la valeur du canal spécifié de l'objet à la valeur spécifiée, qui doit être comprise entre 0 et 1. Cette fonction peut être utilisée pour fournir un canal d'opacité à l'objet ImagickPixel.

Liste de paramètres

color

Une constante de couleur Imagick, i.e. \Imagick::COLOR_GREEN ou \Imagick::COLOR_ALPHA.

value

La valeur à définir pour ce canal, comprise entre 0 et 1.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec Imagick::setColorValue()

<?php

$color  = new \ImagickPixel('firebrick');

$color->setColorValue(Imagick::COLOR_ALPHA, 0.5);

print_r($color->getcolor(true));
?>

L'exemple ci-dessus va afficher :

Array
(
    [r] => 0.69803921568627
    [g] => 0.13333333333333
    [b] => 0.13333333333333
    [a] => 0.50000762951095
)


Description

  • « ImagickPixel::setColorValue
  • ImagickPixel::setHSL »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::setColorValueQuantum

(No version information available, might only be in Git)

ImagickPixel::setColorValueQuantum — Description

Description

public void ImagickPixel::setColorValueQuantum ( int $color , mixed $value )

Sets the quantum value of a color element of the ImagickPixel.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

color

Which color element to set e.g. \Imagick::COLOR_GREEN.

value

The quantum value to set the color element to. This should be a float if ImageMagick was compiled with HDRI otherwise an int in the range 0 to Imagick::getQuantum().

Valeurs de retour

Exemples

Exemple #1 ImagickPixel::setColorValueQuantum()

<?php
function setColorValueQuantum() {
    $image = new \Imagick();

    $quantumRange = $image->getQuantumRange();

    $draw = new \ImagickDraw();
    $color = new \ImagickPixel('blue');
    $color->setcolorValueQuantum(\Imagick::COLOR_RED, 128 * $quantumRange['quantumRangeLong'] / 256);

    $draw->setstrokewidth(1.0);
    $draw->setStrokeColor($color);
    $draw->setFillColor($color);
    $draw->rectangle(200, 200, 300, 300);

    $image->newImage(500, 500, "SteelBlue2");
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Définit la couleur HSL normalisée

  • « ImagickPixel::setColorValueQuantum
  • ImagickPixel::setIndex »
  • PHP Manual
  • ImagickPixel
  • Définit la couleur HSL normalisée

ImagickPixel::setHSL

(PECL imagick 2.0.0)

ImagickPixel::setHSL — Définit la couleur HSL normalisée

Description

bool ImagickPixel::setHSL ( float $hue , float $saturation , float $luminosity )

Définit la couleur décrite par l'objet ImagickPixel en utilisant les valeurs normalisées pour la densité, la saturation et la luminosité.

Liste de paramètres

hue

La valeur normalisée pour la densité, décrite par un arc fractionnel (entre 0 et 1) du cercle de densité, dont la valeur zéro correspond à rouge.

saturation

La valeur normalisée pour la saturation, dont 1 correspond à une saturation complète.

luminosity

La valeur normalisée pour la luminosité, compris entre 0 (noir) et 1 (blanc), avec la valeur HS complète à 0.5 de luminosité.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec ImagickPixel::setHSL() pour modifier une couleur

<?php

// Crée un rouge pure
$color = new ImagickPixel('rgb(90%, 10%, 10%)');

// Récupère ses valeurs HSL
$colorInfo = $color->getHSL();

// Effectue une rotation de la teinte de 180 degrés
$newHue = $colorInfo['hue'] + 0.5;
if ($newHue > 1) {
    $newHue = $newHue - 1;
}

// Définit l'objet ImagickPixel à la nouvelle couleur
$colorInfo = $color->setHSL($newHue, $colorInfo['saturation'], $colorInfo['luminosity']);

// Vérifie que la nouvelle couleur est bien bleu/verte
$colorInfo = $color->getcolor();
print_r($colorInfo);

?>

L'exemple ci-dessus va afficher :

Array
(
    [r] => 26
    [g] => 230
    [b] => 230
    [a] => 255
)

Notes

Note:

Disponible avec la version 6.2.9 et supérieure de la bibliothèque ImageMagick.


Description

  • « ImagickPixel::setHSL
  • ImagickPixelIterator »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::setIndex

(No version information available, might only be in Git)

ImagickPixel::setIndex — Description

Description

public void ImagickPixel::setIndex ( int $index )

Sets the colormap index of the pixel wand.

Liste de paramètres

index

Valeurs de retour


La classe ImagickPixelIterator

(PECL imagick 2.0.0)

Synopsis de la classe

ImagickPixelIterator {
bool clear ( void )
__construct ( Imagick $wand )
bool destroy ( void )
array getCurrentIteratorRow ( void )
int getIteratorRow ( void )
array getNextIteratorRow ( void )
array getPreviousIteratorRow ( void )
bool newPixelIterator ( Imagick $wand )
bool newPixelRegionIterator ( Imagick $wand , int $x , int $y , int $columns , int $rows )
bool resetIterator ( void )
bool setIteratorFirstRow ( void )
bool setIteratorLastRow ( void )
bool setIteratorRow ( int $row )
bool syncIterator ( void )
}

Sommaire

  • ImagickPixelIterator::clear — Efface toutes les ressources associées à PixelIterator
  • ImagickPixelIterator::__construct — Le constructeur ImagickPixelIterator
  • ImagickPixelIterator::destroy — Libère les ressources associées à PixelIterator
  • ImagickPixelIterator::getCurrentIteratorRow — Retourne la ligne courante des objets ImagickPixel
  • ImagickPixelIterator::getIteratorRow — Retourne la ligne courante de l'itérateur de pixel
  • ImagickPixelIterator::getNextIteratorRow — Retourne la prochaine ligne de l'itérateur de pixel
  • ImagickPixelIterator::getPreviousIteratorRow — Retourne la ligne précédente
  • ImagickPixelIterator::newPixelIterator — Retourne un nouveau pixel de l'itérateur
  • ImagickPixelIterator::newPixelRegionIterator — Retourne un nouveau pixel de l'itérateur
  • ImagickPixelIterator::resetIterator — Réinitialise l'itérateur de pixel
  • ImagickPixelIterator::setIteratorFirstRow — Définit l'itérateur de pixel sur la première ligne de pixels
  • ImagickPixelIterator::setIteratorLastRow — Définit l'itérateur de pixel sur la dernière ligne de pixels
  • ImagickPixelIterator::setIteratorRow — Définit la ligne de l'itérateur de pixel
  • ImagickPixelIterator::syncIterator — Synchronise l'itérateur de pixel


Efface toutes les ressources associées à PixelIterator

  • « ImagickPixelIterator
  • ImagickPixelIterator::__construct »
  • PHP Manual
  • ImagickPixelIterator
  • Efface toutes les ressources associées à PixelIterator

ImagickPixelIterator::clear

(PECL imagick 2.0.0)

ImagickPixelIterator::clear — Efface toutes les ressources associées à PixelIterator

Description

bool ImagickPixelIterator::clear ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Efface toutes les ressources associées à PixelIterator.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec ImagickPixelIterator::clear()

<?php
function clear($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));

    $imageIterator = $imagick->getPixelRegionIterator(100, 100, 250, 200);

    /* On parcourt les lignes de pixels */
    foreach ($imageIterator as $pixels) {
        /** @var $pixel \ImagickPixel */
        /* On parcourt les pixels de la ligne (colonne) */
        foreach ($pixels as $column => $pixel) {
            if ($column % 2) {
                /* Paint every second pixel black*/
                $pixel->setColor("rgba(0, 0, 0, 0)");
            }
        }
        /* On synchronise l'itérateur, ceci est important à chaque itération */
        $imageIterator->syncIterator();
    }

    $imageIterator->clear();

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Le constructeur ImagickPixelIterator

  • « ImagickPixelIterator::clear
  • ImagickPixelIterator::destroy »
  • PHP Manual
  • ImagickPixelIterator
  • Le constructeur ImagickPixelIterator

ImagickPixelIterator::__construct

(PECL imagick 2.0.0)

ImagickPixelIterator::__construct — Le constructeur ImagickPixelIterator

Description

ImagickPixelIterator::__construct ( Imagick $wand )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Le constructeur de la classe ImagickPixelIterator.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec ImagickPixelIterator::construct()

<?php
function construct($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = new \ImagickPixelIterator($imagick);

    /* On parcourt les lignes de pixels */
    foreach ($imageIterator as $pixels) {
        /* On parcourt les pixels de la ligne (colonne) */
        foreach ($pixels as $column => $pixel) {
            /** @var $pixel \ImagickPixel */
            if ($column % 2) {
                /* On teint tous les deux pixels en noir */
                $pixel->setColor("rgba(0, 0, 0, 0)");
            }
        }
        /* On synchronise l'itérateur, ceci est important à chaque itération */
        $imageIterator->syncIterator();
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Libère les ressources associées à PixelIterator

  • « ImagickPixelIterator::__construct
  • ImagickPixelIterator::getCurrentIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Libère les ressources associées à PixelIterator

ImagickPixelIterator::destroy

(PECL imagick 2.0.0)

ImagickPixelIterator::destroy — Libère les ressources associées à PixelIterator

Description

bool ImagickPixelIterator::destroy ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Libère les ressources associées à PixelIterator.

Valeurs de retour

Retourne TRUE en cas de succès.


Retourne la ligne courante des objets ImagickPixel

  • « ImagickPixelIterator::destroy
  • ImagickPixelIterator::getIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Retourne la ligne courante des objets ImagickPixel

ImagickPixelIterator::getCurrentIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getCurrentIteratorRow — Retourne la ligne courante des objets ImagickPixel

Description

array ImagickPixelIterator::getCurrentIteratorRow ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la ligne courante, en tant que tableau, des objets ImagickPixel depuis l'itérateur de pixel.

Valeurs de retour

Retourne une ligne, en tant que tableau, des objets ImagickPixel, qui peut être elle-même itérée.


Retourne la ligne courante de l'itérateur de pixel

  • « ImagickPixelIterator::getCurrentIteratorRow
  • ImagickPixelIterator::getNextIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Retourne la ligne courante de l'itérateur de pixel

ImagickPixelIterator::getIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getIteratorRow — Retourne la ligne courante de l'itérateur de pixel

Description

int ImagickPixelIterator::getIteratorRow ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la ligne courante de l'itérateur de pixel.

Valeurs de retour

Retourne la position, sous la forme d'un entier de la ligne ou lance une exception ImagickPixelIteratorException si une erreur survient.


Retourne la prochaine ligne de l'itérateur de pixel

  • « ImagickPixelIterator::getIteratorRow
  • ImagickPixelIterator::getPreviousIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Retourne la prochaine ligne de l'itérateur de pixel

ImagickPixelIterator::getNextIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getNextIteratorRow — Retourne la prochaine ligne de l'itérateur de pixel

Description

array ImagickPixelIterator::getNextIteratorRow ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la prochaine ligne, sous la forme d'un tableau, depuis l'itérateur de pixel.

Valeurs de retour

Retourne la prochaine ligne, sous la forme d'un tableau d'objets ImagickPixel, ou lance une exception ImagickPixelIteratorException si une erreur survient.

Exemples

Exemple #1 Exemple avec ImagickPixelIterator::getNextIteratorRow()

<?php
function getNextIteratorRow($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = $imagick->getPixelIterator();

    $count = 0;
    while ($pixels = $imageIterator->getNextIteratorRow()) {
        if (($count % 3) == 0) {
            /* On parcourt les pixels de la ligne (colonne) */
            foreach ($pixels as $column => $pixel) {
                /** @var $pixel \ImagickPixel */
                if ($column % 2) {
                    /* On teint tous les deux pixels en noir */
                    $pixel->setColor("rgba(0, 0, 0, 0)");
                }
            }
            /* On synchronise l'itérateur, ceci est important à chaque itération */
            $imageIterator->syncIterator();
        }

        $count += 1;
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Retourne la ligne précédente

  • « ImagickPixelIterator::getNextIteratorRow
  • ImagickPixelIterator::newPixelIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Retourne la ligne précédente

ImagickPixelIterator::getPreviousIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getPreviousIteratorRow — Retourne la ligne précédente

Description

array ImagickPixelIterator::getPreviousIteratorRow ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la ligne précédente, sous la forme d'un tableau, depuis l'itérateur de pixel.

Valeurs de retour

Retourne la ligne précédente, sous la forme d'un tableau d'objets ImagickPixelWand, ou lance une exception ImagickPixelIteratorException si une erreur survient.


Retourne un nouveau pixel de l'itérateur

  • « ImagickPixelIterator::getPreviousIteratorRow
  • ImagickPixelIterator::newPixelRegionIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Retourne un nouveau pixel de l'itérateur

ImagickPixelIterator::newPixelIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::newPixelIterator — Retourne un nouveau pixel de l'itérateur

Description

bool ImagickPixelIterator::newPixelIterator ( Imagick $wand )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne un nouveau pixel de l'itérateur.

Valeurs de retour

Retourne TRUE en cas de succès.. Lance une exception ImagickPixelIteratorException si une erreur survient.


Retourne un nouveau pixel de l'itérateur

  • « ImagickPixelIterator::newPixelIterator
  • ImagickPixelIterator::resetIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Retourne un nouveau pixel de l'itérateur

ImagickPixelIterator::newPixelRegionIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::newPixelRegionIterator — Retourne un nouveau pixel de l'itérateur

Description

bool ImagickPixelIterator::newPixelRegionIterator ( Imagick $wand , int $x , int $y , int $columns , int $rows )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne un nouveau pixel de l'itérateur.

Liste de paramètres

wand

x

y

columns

rows

Valeurs de retour

Retourne un nouveau ImagickPixelIterator en cas de succès ou lance une exception ImagickPixelIteratorException si une erreur survient.


Réinitialise l'itérateur de pixel

  • « ImagickPixelIterator::newPixelRegionIterator
  • ImagickPixelIterator::setIteratorFirstRow »
  • PHP Manual
  • ImagickPixelIterator
  • Réinitialise l'itérateur de pixel

ImagickPixelIterator::resetIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::resetIterator — Réinitialise l'itérateur de pixel

Description

bool ImagickPixelIterator::resetIterator ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Réinitialise l'itérateur de pixel. Utilisez cette méthode avec ImagickPixelIterator::getNextIteratorRow() pour itérer sur tous les pixels d'un conteneur de pixels.

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec ImagickPixelIterator::resetIterator()

<?php
function resetIterator($imagePath) {

    $imagick = new \Imagick(realpath($imagePath));

    $imageIterator = $imagick->getPixelIterator();

    /* On parcourt les lignes de pixels */
    foreach ($imageIterator as $pixels) {
        /* On parcourt les pixels de la ligne (colonne) */
        foreach ($pixels as $column => $pixel) {
            /** @var $pixel \ImagickPixel */
            if ($column % 2) {

                /* Tous les deux pixels, on ajoute 25% de rouge */
                $pixel->setColorValue(\Imagick::COLOR_RED, 64);
            }
        }
        /* On synchronise l'itérateur, ceci est important à chaque itération */
        $imageIterator->syncIterator();
    }

    $imageIterator->resetiterator();

    /* On parcourt les lignes de pixels */
    foreach ($imageIterator as $pixels) {
        /* On parcourt les pixels de la ligne (colonne) */
        foreach ($pixels as $column => $pixel) {
            /** @var $pixel \ImagickPixel */
            if ($column % 3) {
                $pixel->setColorValue(\Imagick::COLOR_BLUE, 64); /* Tous les deux pixels, on les rend un peu plus bleu */
                //$pixel->setColor("rgba(0, 0, 128, 0)"); /* On teint tous les deux pixels en noir */
            }
        }
        $imageIterator->syncIterator(); /* On synchronise l'itérateur, ceci est important à chaque itération */
    }

    $imageIterator->clear();

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Définit l'itérateur de pixel sur la première ligne de pixels

  • « ImagickPixelIterator::resetIterator
  • ImagickPixelIterator::setIteratorLastRow »
  • PHP Manual
  • ImagickPixelIterator
  • Définit l'itérateur de pixel sur la première ligne de pixels

ImagickPixelIterator::setIteratorFirstRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorFirstRow — Définit l'itérateur de pixel sur la première ligne de pixels

Description

bool ImagickPixelIterator::setIteratorFirstRow ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Définit l'itérateur de pixel sur la première ligne de pixels.

Valeurs de retour

Retourne TRUE en cas de succès.


Définit l'itérateur de pixel sur la dernière ligne de pixels

  • « ImagickPixelIterator::setIteratorFirstRow
  • ImagickPixelIterator::setIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Définit l'itérateur de pixel sur la dernière ligne de pixels

ImagickPixelIterator::setIteratorLastRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorLastRow — Définit l'itérateur de pixel sur la dernière ligne de pixels

Description

bool ImagickPixelIterator::setIteratorLastRow ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Définit l'itérateur de pixel sur la dernière ligne de pixels.

Valeurs de retour

Retourne TRUE en cas de succès.


Définit la ligne de l'itérateur de pixel

  • « ImagickPixelIterator::setIteratorLastRow
  • ImagickPixelIterator::syncIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Définit la ligne de l'itérateur de pixel

ImagickPixelIterator::setIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorRow — Définit la ligne de l'itérateur de pixel

Description

bool ImagickPixelIterator::setIteratorRow ( int $row )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Définit la ligne de l'itérateur de pixel.

Liste de paramètres

row

Valeurs de retour

Retourne TRUE en cas de succès.

Exemples

Exemple #1 Exemple avec ImagickPixelIterator::setIteratorRow()

<?php
function setIteratorRow($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = $imagick->getPixelRegionIterator(200, 100, 200, 200);

    for ($x = 0; $x < 20; $x++) {
        $imageIterator->setIteratorRow($x * 5);
        $pixels = $imageIterator->getCurrentIteratorRow();
        /* On parcourt les pixels de la ligne (colonne) */
        foreach ($pixels as $pixel) {
            /** @var $pixel \ImagickPixel */
            /* On teint tous les pixels en noir */
            $pixel->setColor("rgba(0, 0, 0, 0)");
        }

        /* On synchronise l'itérateur ; ceci est important à chaque itération */
        $imageIterator->syncIterator();
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Synchronise l'itérateur de pixel

  • « ImagickPixelIterator::setIteratorRow
  • ImagickKernel »
  • PHP Manual
  • ImagickPixelIterator
  • Synchronise l'itérateur de pixel

ImagickPixelIterator::syncIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::syncIterator — Synchronise l'itérateur de pixel

Description

bool ImagickPixelIterator::syncIterator ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Synchronise l'itérateur de pixel.

Valeurs de retour

Retourne TRUE en cas de succès.


The ImagickKernel class

(PECL imagick >= 3.3.0)

Introduction

Synopsis de la classe

ImagickKernel {
/* Méthodes */
public void addKernel ( ImagickKernel $ImagickKernel )
public void addUnityKernel ( void )
public static ImagickKernel fromBuiltin ( string $kernelType , string $kernelString )
public static ImagickKernel fromMatrix ( array $matrix [, array $origin ] )
public array getMatrix ( void )
public void scale ( void )
public array separate ( void )
}

Sommaire

  • ImagickKernel::addKernel — Description
  • ImagickKernel::addUnityKernel — Description
  • ImagickKernel::fromBuiltIn — Description
  • ImagickKernel::fromMatrix — Description
  • ImagickKernel::getMatrix — Description
  • ImagickKernel::scale — Description
  • ImagickKernel::separate — Description


Description

  • « ImagickKernel
  • ImagickKernel::addUnityKernel »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::addKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addKernel — Description

Description

public void ImagickKernel::addKernel ( ImagickKernel $ImagickKernel )

Attach another kernel to this kernel to allow them to both be applied in a single morphology or filter function. Returns the new combined kernel.

Liste de paramètres

ImagickKernel

Valeurs de retour

Exemples

Exemple #1 ImagickKernel::addKernel()

<?php
function addKernel($imagePath) {
    $matrix1 = [
        [-1, -1, -1],
        [ 0,  0,  0],
        [ 1,  1,  1],
    ];

    $matrix2 = [
        [-1,  0,  1],
        [-1,  0,  1],
        [-1,  0,  1],
    ];

    $kernel1 = ImagickKernel::fromMatrix($matrix1);
    $kernel2 = ImagickKernel::fromMatrix($matrix2);
    $kernel1->addKernel($kernel2);

    $imagick = new \Imagick(realpath($imagePath));
    $imagick->filter($kernel1);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();

}

?>


Description

  • « ImagickKernel::addKernel
  • ImagickKernel::fromBuiltIn »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::addUnityKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addUnityKernel — Description

Description

public void ImagickKernel::addUnityKernel ( void )

Adds a given amount of the 'Unity' Convolution Kernel to the given pre-scaled and normalized Kernel. This in effect adds that amount of the original image into the resulting convolution kernel. The resulting effect is to convert the defined kernels into blended soft-blurs, unsharp kernels or into sharpening kernels.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 ImagickKernel::addUnityKernel()

<?php

    function renderKernelTable($matrix) {
        $output = "<table class='infoTable'>";

        foreach ($matrix as $row) {
            $output .= "<tr>";
            foreach ($row as $cell) {
                $output .= "<td style='text-align:left'>";
                if ($cell === false) {
                    $output .= "false";
                }
                else {
                    $output .= round($cell, 3);
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
    $output = "Before adding unity kernel: <br/>";
    $output .= renderKernelTable($kernel->getMatrix());
    $kernel->addUnityKernel(0.5);
    $output .= "After adding unity kernel: <br/>";
    $output .= renderKernelTable($kernel->getMatrix());

    $kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
    $output .= "After renormalizing kernel: <br/>";
    $output .= renderKernelTable($kernel->getMatrix());

    echo $output;

?>

Exemple #2 ImagickKernel::addUnityKernel()

<?php
function addUnityKernel($imagePath) {

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = ImagickKernel::fromMatrix($matrix);

    $kernel->scale(4, \Imagick::NORMALIZE_KERNEL_VALUE);
    $kernel->addUnityKernel(0.5);

    $imagick = new \Imagick(realpath($imagePath));
    $imagick->filter($kernel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();

}

?>


Description

  • « ImagickKernel::addUnityKernel
  • ImagickKernel::fromMatrix »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::fromBuiltIn

(PECL imagick >= 3.3.0)

ImagickKernel::fromBuiltIn — Description

Description

public static ImagickKernel ImagickKernel::fromBuiltin ( string $kernelType , string $kernelString )

Create a kernel from a builtin in kernel. See http://www.imagemagick.org/Usage/morphology/#kernel for examples. Currently the 'rotation' symbols are not supported. Example: $diamondKernel = ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "2");

Liste de paramètres

kerneltype

The type of kernel to build e.g. \Imagick::KERNEL_DIAMOND

kernelString

A string that describes the parameters e.g. "4,2.5"

Valeurs de retour

Exemples

Exemple #1 ImagickKernel::fromBuiltin()

<?php

function renderKernel(ImagickKernel $imagickKernel) {
    $matrix = $imagickKernel->getMatrix();

    $imageMargin = 20;

    $tileSize = 20;
    $tileSpace = 4;
    $shadowSigma = 4;
    $shadowDropX = 20;
    $shadowDropY = 0;

    $radius = ($tileSize / 2) * 0.9;

    $rows = count($matrix);
    $columns = count($matrix[0]);

    $imagickDraw = new \ImagickDraw();

    $imagickDraw->setFillColor('#afafaf');
    $imagickDraw->setStrokeColor('none');

    $imagickDraw->translate($imageMargin, $imageMargin);
    $imagickDraw->push();

    ksort($matrix);

    foreach ($matrix as $row) {
        ksort($row);
        $imagickDraw->push();
        foreach ($row as $cell) {
            if ($cell !== false) {
                $color = intval(255 * $cell);
                $colorString = sprintf("rgb(%f, %f, %f)", $color, $color, $color);
                $imagickDraw->setFillColor($colorString);
                $imagickDraw->rectangle(0, 0, $tileSize, $tileSize);
            }
            $imagickDraw->translate(($tileSize + $tileSpace), 0);
        }
        $imagickDraw->pop();
        $imagickDraw->translate(0, ($tileSize + $tileSpace));
    }

    $imagickDraw->pop();

    $width = ($columns * $tileSize) + (($columns - 1) * $tileSpace);
    $height = ($rows * $tileSize) + (($rows - 1) * $tileSpace);

    $imagickDraw->push();
    $imagickDraw->translate($width/2 , $height/2);
    $imagickDraw->setFillColor('rgba(0, 0, 0, 0)');
    $imagickDraw->setStrokeColor('white');
    $imagickDraw->circle(0, 0, $radius - 1, 0);
    $imagickDraw->setStrokeColor('black');
    $imagickDraw->circle(0, 0, $radius, 0);
    $imagickDraw->pop();

    $canvasWidth = $width + (2 * $imageMargin);
    $canvasHeight = $height + (2 * $imageMargin);

    $kernel = new \Imagick();
    $kernel->newPseudoImage(
        $canvasWidth,
        $canvasHeight,
        'canvas:none'
    );

    $kernel->setImageFormat('png');
    $kernel->drawImage($imagickDraw);

    /* create drop shadow on it's own layer */
    $canvas = $kernel->clone();
    $canvas->setImageBackgroundColor(new \ImagickPixel('rgb(0, 0, 0)'));
    $canvas->shadowImage(100, $shadowSigma, $shadowDropX, $shadowDropY);

    $canvas->setImagePage($canvasWidth, $canvasHeight, -5, -5);
    $canvas->cropImage($canvasWidth, $canvasHeight, 0, 0);

    /* composite original text_layer onto shadow_layer */
    $canvas->compositeImage($kernel, \Imagick::COMPOSITE_OVER, 0, 0);
    $canvas->setImageFormat('png');

    return $canvas;
}

function createFromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm) {
    $string = '';

    if ($kernelFirstTerm != false && strlen(trim($kernelFirstTerm)) != 0) {
        $string .= $kernelFirstTerm;

        if ($kernelSecondTerm != false && strlen(trim($kernelSecondTerm)) != 0) {
            $string .= ','.$kernelSecondTerm;
            if ($kernelThirdTerm != false && strlen(trim($kernelThirdTerm)) != 0) {
                $string .= ','.$kernelThirdTerm;
            }
        }
    }

    $kernel = ImagickKernel::fromBuiltIn(
        $kernelType,
        $string
    );

    return $kernel;
}

function fromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm) {
    $diamondKernel = createFromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm);
    $imagick = renderKernel($diamondKernel);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

fromBuiltin(\Imagick::KERNEL_DIAMOND, 2, false, false);

?>


Description

  • « ImagickKernel::fromBuiltIn
  • ImagickKernel::getMatrix »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::fromMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::fromMatrix — Description

Description

public static ImagickKernel ImagickKernel::fromMatrix ( array $matrix [, array $origin ] )

Create a kernel from an 2d matrix of values. Each value should either be a float (if the element should be used) or 'false' if the element should be skipped. For matrices that are odd sizes in both dimensions the the origin pixel will default to the centre of the kernel. For all other kernel sizes the origin pixel must be specified.

Liste de paramètres

array

A matrix (i.e. 2d array) of values that define the kernel. Each element should be either a float value, or FALSE if that element shouldn't be used by the kernel.

array

Which element of the kernel should be used as the origin pixel. e.g. For a 3x3 matrix specifying the origin as [2, 2] would specify that the bottom right element should be the origin pixel.

Valeurs de retour

The generated ImagickKernel.

Exemples

Exemple #1 ImagickKernel::fromMatrix()

<?php

function renderKernel(ImagickKernel $imagickKernel) {
    $matrix = $imagickKernel->getMatrix();

    $imageMargin = 20;

    $tileSize = 20;
    $tileSpace = 4;
    $shadowSigma = 4;
    $shadowDropX = 20;
    $shadowDropY = 0;

    $radius = ($tileSize / 2) * 0.9;

    $rows = count($matrix);
    $columns = count($matrix[0]);

    $imagickDraw = new \ImagickDraw();

    $imagickDraw->setFillColor('#afafaf');
    $imagickDraw->setStrokeColor('none');

    $imagickDraw->translate($imageMargin, $imageMargin);
    $imagickDraw->push();

    ksort($matrix);

    foreach ($matrix as $row) {
        ksort($row);
        $imagickDraw->push();
        foreach ($row as $cell) {
            if ($cell !== false) {
                $color = intval(255 * $cell);
                $colorString = sprintf("rgb(%f, %f, %f)", $color, $color, $color);
                $imagickDraw->setFillColor($colorString);
                $imagickDraw->rectangle(0, 0, $tileSize, $tileSize);
            }
            $imagickDraw->translate(($tileSize + $tileSpace), 0);
        }
        $imagickDraw->pop();
        $imagickDraw->translate(0, ($tileSize + $tileSpace));
    }

    $imagickDraw->pop();

    $width = ($columns * $tileSize) + (($columns - 1) * $tileSpace);
    $height = ($rows * $tileSize) + (($rows - 1) * $tileSpace);

    $imagickDraw->push();
    $imagickDraw->translate($width/2 , $height/2);
    $imagickDraw->setFillColor('rgba(0, 0, 0, 0)');
    $imagickDraw->setStrokeColor('white');
    $imagickDraw->circle(0, 0, $radius - 1, 0);
    $imagickDraw->setStrokeColor('black');
    $imagickDraw->circle(0, 0, $radius, 0);
    $imagickDraw->pop();

    $canvasWidth = $width + (2 * $imageMargin);
    $canvasHeight = $height + (2 * $imageMargin);

    $kernel = new \Imagick();
    $kernel->newPseudoImage(
        $canvasWidth,
        $canvasHeight,
        'canvas:none'
    );

    $kernel->setImageFormat('png');
    $kernel->drawImage($imagickDraw);

    /* create drop shadow on it's own layer */
    $canvas = $kernel->clone();
    $canvas->setImageBackgroundColor(new \ImagickPixel('rgb(0, 0, 0)'));
    $canvas->shadowImage(100, $shadowSigma, $shadowDropX, $shadowDropY);

    $canvas->setImagePage($canvasWidth, $canvasHeight, -5, -5);
    $canvas->cropImage($canvasWidth, $canvasHeight, 0, 0);

    /* composite original text_layer onto shadow_layer */
    $canvas->compositeImage($kernel, \Imagick::COMPOSITE_OVER, 0, 0);
    $canvas->setImageFormat('png');

    return $canvas;
}

function createFromMatrix() {
    $matrix = [
        [0.5, 0, 0.2],
        [0, 1, 0],
        [0.9, 0, false],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);

    return $kernel;
}

function fromMatrix() {
    $kernel = createFromMatrix();
    $imagick = renderKernel($kernel);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Description

  • « ImagickKernel::fromMatrix
  • ImagickKernel::scale »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::getMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::getMatrix — Description

Description

public array ImagickKernel::getMatrix ( void )

Get the 2d matrix of values used in this kernel. The elements are either float for elements that are used or 'false' if the element should be skipped.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A matrix (2d array) of the values that represent the kernel.

Exemples

Exemple #1 ImagickKernel::getMatrix()

<?php

function renderKernelTable($matrix) {
    $output = "<table class='infoTable'>";

    foreach ($matrix as $row) {
        $output .= "<tr>";
        foreach ($row as $cell) {
            $output .= "<td style='text-align:left'>";
            if ($cell === false) {
                $output .= "false";
            }
            else {
                $output .= round($cell, 3);
            }
            $output .= "</td>";
        }
        $output .= "</tr>";
    }

    $output .= "</table>";

    return $output;
}

    $output = "The built-in kernel name 'ring' with parameters of '2,3.5':<br/>";
    $kernel = \ImagickKernel::fromBuiltIn(
        \Imagick::KERNEL_RING,
        "2,3.5"
    );
    $matrix = $kernel->getMatrix();
    $output .= renderKernelTable($matrix);

    echo $output;

?>


Description

  • « ImagickKernel::getMatrix
  • ImagickKernel::separate »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::scale

(PECL imagick >= 3.3.0)

ImagickKernel::scale — Description

Description

public void ImagickKernel::scale ( void )

ScaleKernelInfo() scales the given kernel list by the given amount, with or without normalization of the sum of the kernel values (as per given flags). The exact behaviour of this function depends on the normalization type being used please see http://www.imagemagick.org/api/morphology.php#ScaleKernelInfo for details. Flag should be one of Imagick::NORMALIZE_KERNEL_VALUE, Imagick::NORMALIZE_KERNEL_CORRELATE, Imagick::NORMALIZE_KERNEL_PERCENT or not set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 ImagickKernel::scale()

<?php

    function renderKernelTable($matrix) {
        $output = "<table class='infoTable'>";

        foreach ($matrix as $row) {
            $output .= "<tr>";
            foreach ($row as $cell) {
                $output .= "<td style='text-align:left'>";
                if ($cell === false) {
                    $output .= "false";
                }
                else {
                    $output .= round($cell, 3);
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

    $output = "";

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $kernelClone = clone $kernel;

    $output .= "Start kernel<br/>";
    $output .= renderKernelTable($kernel->getMatrix());

    $output .= "Scaling with NORMALIZE_KERNEL_VALUE. The  <br/>";
    $kernel->scale(2, \Imagick::NORMALIZE_KERNEL_VALUE);
    $output .= renderKernelTable($kernel->getMatrix());

    $kernel = clone $kernelClone;
    $output .= "Scaling by percent<br/>";
    $kernel->scale(2, \Imagick::NORMALIZE_KERNEL_PERCENT);
    $output .= renderKernelTable($kernel->getMatrix());

    $matrix2 = [
        [-1, -1, 1],
        [ -1, false,  1],
        [1, 1, 1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix2);
    $output .= "Scaling by correlate<br/>";
    $kernel->scale(1, \Imagick::NORMALIZE_KERNEL_CORRELATE);
    $output .= renderKernelTable($kernel->getMatrix());

    return $output;
?>


Description

  • « ImagickKernel::scale
  • Extensions relatives aux emails »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::separate

(PECL imagick >= 3.3.0)

ImagickKernel::separate — Description

Description

public array ImagickKernel::separate ( void )

Separates a linked set of kernels and returns an array of ImagickKernels.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 ImagickKernel::separate()

<?php

    function renderKernelTable($matrix) {

        $output = "<table class='infoTable'>";
        foreach ($matrix as $row) {
            $output .= "<tr>";
            foreach ($row as $cell) {
                $output .= "<td style='text-align:left'>";
                if ($cell === false) {
                    $output .= "false";
                }
                else {
                    $output .= round($cell, 3);
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $kernel->scale(4, \Imagick::NORMALIZE_KERNEL_VALUE);
    $diamondKernel = \ImagickKernel::fromBuiltIn(
        \Imagick::KERNEL_DIAMOND,
        "2"
    );

    $kernel->addKernel($diamondKernel);

    $kernelList = $kernel->separate();

    $output = '';
    $count = 0;
    foreach ($kernelList as $kernel) {
        $output .= "<br/>Kernel $count<br/>";
        $output .= renderKernelTable($kernel->getMatrix());
        $count++;
    }

    return $output;

?>


Extensions relatives aux emails

  • Cyrus — Administration Cyrus IMAP
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Cyrus
  • IMAP — IMAP, POP3 et NNTP
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions IMAP
  • Mail
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Mail
  • Mailparse
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Mailparse
  • vpopmail
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • vpopmail Fonctions


Administration Cyrus IMAP

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Cyrus
    • cyrus_authenticate — Identification sur un serveur Cyrus IMAP
    • cyrus_bind — Ajoute une fonction de rappel sur une connexion Cyrus IMAP
    • cyrus_close — Ferme la connexion à un serveur Cyrus IMAP
    • cyrus_connect — Connexion sur un serveur Cyrus IMAP
    • cyrus_query — Envoie une requête à un serveur Cyrus IMAP
    • cyrus_unbind — Supprime ...


Introduction

Note: Cette extension n'est pas disponible sur les plates-formes Windows.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0.


Installation

Pour activer le support Cyrus IMAP et en utiliser les fonctions, vous devez compiler PHP avec l'option --with-cyrus .

Avertissement

Les extensions IMAP, recode, YAZ et Cyrus ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun. Note: Yaz 2.0 et supérieur ne sont pas affectés par ce problème.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit un identifiant de connexion Cyrus IMAP, retournée avec la fonction cyrus_connect().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CYRUS_CONN_NONSYNCLITERAL (entier)
CYRUS_CONN_INITIALRESPONSE (entier)
CYRUS_CALLBACK_NUMBERED (entier)
CYRUS_CALLBACK_NOLITERAL (entier)


Fonctions Cyrus

Sommaire

  • cyrus_authenticate — Identification sur un serveur Cyrus IMAP
  • cyrus_bind — Ajoute une fonction de rappel sur une connexion Cyrus IMAP
  • cyrus_close — Ferme la connexion à un serveur Cyrus IMAP
  • cyrus_connect — Connexion sur un serveur Cyrus IMAP
  • cyrus_query — Envoie une requête à un serveur Cyrus IMAP
  • cyrus_unbind — Supprime ...


Identification sur un serveur Cyrus IMAP

  • « Fonctions Cyrus
  • cyrus_bind »
  • PHP Manual
  • Fonctions Cyrus
  • Identification sur un serveur Cyrus IMAP

cyrus_authenticate

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_authenticate — Identification sur un serveur Cyrus IMAP

Description

void cyrus_authenticate ( resource $connection [, string $mechlist [, string $service [, string $user [, int $minssf [, int $maxssf [, string $authname [, string $password ]]]]]]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Ajoute une fonction de rappel sur une connexion Cyrus IMAP

  • « cyrus_authenticate
  • cyrus_close »
  • PHP Manual
  • Fonctions Cyrus
  • Ajoute une fonction de rappel sur une connexion Cyrus IMAP

cyrus_bind

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_bind — Ajoute une fonction de rappel sur une connexion Cyrus IMAP

Description

bool cyrus_bind ( resource $connection , array $callbacks )

Ajoute une fonction de rappel sur une connexion Cyrus IMAP.

Liste de paramètres

connection

Le gestionnaire de connexion.

callbacks

Un tableau de fonctions de rappel.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Ferme la connexion à un serveur Cyrus IMAP

  • « cyrus_bind
  • cyrus_connect »
  • PHP Manual
  • Fonctions Cyrus
  • Ferme la connexion à un serveur Cyrus IMAP

cyrus_close

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_close — Ferme la connexion à un serveur Cyrus IMAP

Description

bool cyrus_close ( resource $connection )

Ferme la connexion au serveur Cyrus IMAP.

Liste de paramètres

connection

Le gestionnaire de connexion.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Connexion sur un serveur Cyrus IMAP

  • « cyrus_close
  • cyrus_query »
  • PHP Manual
  • Fonctions Cyrus
  • Connexion sur un serveur Cyrus IMAP

cyrus_connect

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_connect — Connexion sur un serveur Cyrus IMAP

Description

resource cyrus_connect ([ string $host [, string $port [, int $flags ]]] )

Connexion à un serveur Cyrus IMAP.

Liste de paramètres

host

Le nom d'hôte du serveur Cyrus IMAP.

port

Le numéro de port.

flags

Valeurs de retour

Retourne un gestionnaire de connexion en cas de succès ou FALSE si une erreur survient.


Envoie une requête à un serveur Cyrus IMAP

  • « cyrus_connect
  • cyrus_unbind »
  • PHP Manual
  • Fonctions Cyrus
  • Envoie une requête à un serveur Cyrus IMAP

cyrus_query

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_query — Envoie une requête à un serveur Cyrus IMAP

Description

array cyrus_query ( resource $connection , string $query )

Envoie une requête à un serveur Cyrus IMAP.

Liste de paramètres

connection

Le gestionnaire de connexion.

query

La requête.

Valeurs de retour

Retourne un tableau associatif contenant les clés suivantes : text, msgno, et keyword.


Supprime ...

  • « cyrus_query
  • IMAP »
  • PHP Manual
  • Fonctions Cyrus
  • Supprime ...

cyrus_unbind

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_unbind — Supprime ...

Description

bool cyrus_unbind ( resource $connection , string $trigger_name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

connection

Le gestionnaire de connexion.

trigger_name

Le nom du trigger.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


IMAP, POP3 et NNTP

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions IMAP
    • imap_8bit — Convertit une chaîne à 8 bits en une chaîne encodée en Quoted-Printable
    • imap_alerts — Retourne toutes les alertes
    • imap_append — Ajoute un message dans une boîte aux lettres
    • imap_base64 — Décode un texte encodé en BASE64
    • imap_binary — Convertit une chaîne à 8 bits en une chaîne à base64
    • imap_body — Lit le corps d'un message
    • imap_bodystruct — Lit la structure d'une section du corps d'un mail
    • imap_check — Vérifie la boîte aux lettres courante
    • imap_clearflag_full — Supprime un flag (drapeau) sur un message
    • imap_close — Termine un flux IMAP
    • imap_create — Alias de imap_createmailbox
    • imap_createmailbox — Crée une nouvelle boîte aux lettres
    • imap_delete — Marque le fichier pour l'effacement, dans la boîte aux lettres courante
    • imap_deletemailbox — Efface une boîte aux lettres
    • imap_errors — Retourne toutes les erreurs IMAP survenues
    • imap_expunge — Efface tous les messages marqués pour l'effacement
    • imap_fetch_overview — Lit le sommaire des en-têtes de messages
    • imap_fetchbody — Retourne une section extraite du corps d'un message
    • imap_fetchheader — Retourne l'en-tête d'un message
    • imap_fetchmime — Récupère les en-têtes MIME pour une section particulière du message
    • imap_fetchstructure — Lit la structure d'un message
    • imap_fetchtext — Alias de imap_body
    • imap_gc — Efface le cache IMAP
    • imap_get_quota — Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles
    • imap_get_quotaroot — Lit les quotas de chaque utilisateur
    • imap_getacl — Retourne le ACL pour la boîte aux lettres
    • imap_getmailboxes — Liste les boîtes aux lettres, et retourne les détails de chacune
    • imap_getsubscribed — Liste toutes les boîtes aux lettres souscrites
    • imap_header — Alias de imap_headerinfo
    • imap_headerinfo — Lit l'en-tête du message
    • imap_headers — Retourne les en-têtes de tous les messages d'une boîte aux lettres
    • imap_last_error — Retourne la dernière erreur survenue
    • imap_list — Lit la liste des boîtes aux lettres
    • imap_listmailbox — Alias de imap_list
    • imap_listscan — Lit la liste des boîtes aux lettres, et y recherche une chaîne
    • imap_listsubscribed — Alias de imap_lsub
    • imap_lsub — Liste toutes les boîtes aux lettres enregistrées
    • imap_mail_compose — Crée un message MIME
    • imap_mail_copy — Copie les messages spécifiés dans une boîte aux lettres
    • imap_mail_move — Déplace des messages dans une boîte aux lettres
    • imap_mail — Envoie un message mail
    • imap_mailboxmsginfo — Lit les informations à propos de la boîte aux lettres courante
    • imap_mime_header_decode — Décode les éléments MIME d'un en-tête
    • imap_msgno — Retourne le numéro de séquence du message pour un UID donné
    • imap_num_msg — Retourne le nombre de messages dans la boîte aux lettres courante
    • imap_num_recent — Retourne le nombre de messages récents dans la boîte aux lettres courante
    • imap_open — Ouvre un flux IMAP vers une boîte aux lettres
    • imap_ping — Vérifie que le flux IMAP est toujours actif
    • imap_qprint — Convertit une chaîne à guillemets en une chaîne à 8 bits
    • imap_rename — Alias de imap_renamemailbox
    • imap_renamemailbox — Renomme une boîte aux lettres
    • imap_reopen — Réouvre un flux IMAP vers une nouvelle boîte aux lettres
    • imap_rfc822_parse_adrlist — Analyse une adresse email
    • imap_rfc822_parse_headers — Analyse un en-tête mail
    • imap_rfc822_write_address — Retourne une adresse email formatée correctement
    • imap_savebody — Sauvegarde une partie spécifique du corps dans un fichier
    • imap_scan — Alias de imap_listscan
    • imap_scanmailbox — Alias de imap_listscan
    • imap_search — Retourne un tableau de messages après recherche
    • imap_set_quota — Modifie le quota d'une boîte aux lettres
    • imap_setacl — Modifie le ACL de la boîte aux lettres
    • imap_setflag_full — Positionne un drapeau sur un message
    • imap_sort — Trie des messages
    • imap_status — Retourne les informations de statut sur une boîte aux lettres
    • imap_subscribe — Souscrit à une boîte aux lettres
    • imap_thread — Retourne l'arbre des messages organisés par thread
    • imap_timeout — Configure ou retourne le timeout
    • imap_uid — Retourne l'UID d'un message
    • imap_undelete — Enlève la marque d'effacement d'un message
    • imap_unsubscribe — Termine la souscription à une boîte aux lettres
    • imap_utf7_decode — Décode une chaîne encodée en UTF-7 modifié
    • imap_utf7_encode — Convertit une chaîne ISO-8859-1 en texte UTF-7 modifié
    • imap_utf8 — Convertit du texte au format MIME en UTF-8


Introduction

Ces fonctions vous permettent d'utiliser le protocole IMAP, mais aussi les protocoles NNTP, POP3 et les boîtes aux lettres locales.

Cependant, soyez prudent, car quelques fonctions IMAP ne fonctionnent pas correctement avec le protocole POP.


Pré-requis

Cette extension requiert la bibliothèque C cliente. Téléchargez cette dernière version à » ftp://ftp.cac.washington.edu/imap/ et compilez-la.

Il est important de ne pas copier les fichiers sources IMAP directement dans le dossier d'inclusion système sous peine de conflits. À la place de cela, créez un nouveau dossier dans le dossier d'inclusion système, comme /usr/local/imap-2000b/ (le chemin et le nom dépendent de votre configuration et de votre version d'IMAP) et dans ce nouveau dossier, créez les dossiers nommés lib/ et include/. Depuis le dossier c-client des sources IMAP, copiez tous les fichiers *.h dans le dossier include/ et tous les fichiers *.c dans le dossier lib/. Additionnellement, lorsque vous compilez IMAP, un fichier nommé c-client.a est crée. Mettez le également dans le dossier lib/ mais renommez le en libc-client.a.

Note:

Pour compiler la bibliothèque C cliente avec SSL et/ou avec le support Kerberos, lisez la doc fournie dans la distribution.

Note: Sur Mandrake Linux, la bibliothèque IMAP (libc-client.a) est compilée sans le support Kerberos. Une version séparée avec SSL (client-PHP4.a) est installée. La bibliothèque doit être recompilée pour ajouter le support Kerberos.


Installation

Pour avoir accès à ces fonctions, vous devez compiler PHP avec l'option --with-imap[=DIR] , où DIR est le préfixe de l'installation du client C. Dans nos exemples, vous pourriez utiliser --with-imap=/usr/local/imap-2000b . Le nom du dossier d'installation dépend de l'emplacement où vous avez créé le dossier, en fonction de la description ci-dessus. Les utilisateurs Windows peuvent inclure la bibliothèque DLL php_imap.dll dans le php.ini.

IMAP n'est pas supporté sur les systèmes plus anciens que Windows 2000. Cela est dû au fait que IMAP utilise les fonctions de chiffrement pour activer les connexions SSL aux serveurs de mails.

Note: Suivant la configuration de la bibliothèque C cliente, vous pouvez aussi avoir besoin d'ajouter --with-imap-ssl=/path/to/openssl/ et/ou --with-kerberos=/path/to/kerberos dans la ligne de configuration PHP.

Avertissement

Les extensions IMAP, recode, YAZ et Cyrus ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun. Note: Yaz 2.0 et supérieur ne sont pas affectés par ce problème.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

NIL (entier)
OP_DEBUG (entier)
OP_READONLY (entier)
Ouvre une boîte aux lettres en lecture seule
OP_ANONYMOUS (entier)
Ne pas utiliser, ou modifier le fichier .newsrc pour les news, (NNTP uniquement).
OP_SHORTCACHE (entier)
OP_SILENT (entier)
OP_PROTOTYPE (entier)
OP_HALFOPEN (entier)
Pour les noms IMAP et NNTP, ouvre une connexion mais n'ouvre pas une boîte aux lettres.
OP_EXPUNGE (entier)
OP_SECURE (entier)
CL_EXPUNGE (entier)
purger automatiquement la boîte aux lettres lors de l'appel de imap_close()
FT_UID (entier)
Le paramètre est un UID.
FT_PEEK (entier)
Ne pas lever le drapeau \Seen (Message lu) s'il n'est pas déjà levé.
FT_NOT (entier)
FT_INTERNAL (entier)
La chaîne renvoyée est au format interne, et ne va pas canoniser les CRLF.
FT_PREFETCHTEXT (entier)
ST_UID (entier)
la séquence contient des UID au lieu de numéros de séquence
ST_SILENT (entier)
ST_SET (entier)
CP_UID (entier)
La séquence de nombres contient des UID
CP_MOVE (entier)
Efface les messages après copie avec imap_mail_copy()
SE_UID (entier)
Retourne des UID à la place de numéros
SE_FREE (entier)
SE_NOPREFETCH (entier)
Ne pas prétélécharger les messages trouvés
SO_FREE (entier)
SO_NOSERVER (entier)
SA_MESSAGES (entier)
SA_RECENT (entier)
SA_UNSEEN (entier)
SA_UIDNEXT (entier)
SA_UIDVALIDITY (entier)
SA_ALL (entier)
LATT_NOINFERIORS (entier)
Cette boîte aux lettres n'a pas d'"enfants" (il n'y a plus de boîtes aux lettres en dessous de celle-ci).
LATT_NOSELECT (entier)
Ceci est juste un container, pas une boîte aux lettres (vous ne pouvez pas l'ouvrir).
LATT_MARKED (entier)
Cette boîte aux lettres est marquée. Utilisé uniquement avec UW-IMAPD.
LATT_UNMARKED (entier)
Cette boîte aux lettres n'est pas marquée. Utilisé uniquement avec UW-IMAPD.
SORTDATE (entier)
Critère de tri pour imap_sort() : Date du message
SORTARRIVAL (entier)
Critère de tri pour imap_sort() : Date d'arrivée
SORTFROM (entier)
Critère de tri pour imap_sort() : Nom de la première boîte aux lettres de l'adresse d'origine (From address)
SORTSUBJECT (entier)
Critère de tri pour imap_sort() : Sujet du message
SORTTO (entier)
Critère de tri pour imap_sort() : Nom de la première boîte aux lettres de destination (To address)
SORTCC (entier)
Critère de tri pour imap_sort() : Nom de la boîte aux lettres de copie cachée (cc address)
SORTSIZE (entier)
Critère de tri pour imap_sort() : Taille du message en octets
TYPETEXT (entier)
TYPEMULTIPART (entier)
TYPEMESSAGE (entier)
TYPEAPPLICATION (entier)
TYPEAUDIO (entier)
TYPEIMAGE (entier)
TYPEVIDEO (entier)
TYPEOTHER (entier)
ENC7BIT (entier)
ENC8BIT (entier)
ENCBINARY (entier)
ENCBASE64 (entier)
ENCQUOTEDPRINTABLE (entier)
ENCOTHER (entier)
IMAP_OPENTIMEOUT (entier)
IMAP_READTIMEOUT (entier)
IMAP_WRITETIMEOUT (entier)
IMAP_CLOSETIMEOUT (entier)
LATT_REFERRAL (entier)
LATT_HASCHILDREN (entier)
LATT_HASNOCHILDREN (entier)
TYPEMODEL (entier)
IMAP_GC_ELT (entier)
Collecte de la mémoire, suppression des caches d'éléments de message.
IMAP_GC_ENV (entier)
Collecte de la mémoire, suppression des enveloppes et corps.
IMAP_GC_TEXTS (entier)
Collecte de la mémoire, suppression des textes.


Fonctions IMAP

Voir aussi

Ce document ne peut entrer dans les détails de tous les sujets abordés. Plus d'informations sont disponibles avec la documentation de la bibliothèque C (docs/internal.txt) ainsi que les RFC suivantes :

  • » RFC2821 : Simple Mail Transfer Protocol (SMTP).
  • » RFC2822 : Standard for ARPA internet text messages.
  • » RFC2060 : Internet Message Access Protocol (IMAP) Version 4rev1.
  • » RFC1939 : Post Office Protocol Version 3 (POP3).
  • » RFC977 : Network News Transfer Protocol (NNTP).
  • » RFC2076 : Common Internet Message Headers.
  • » RFC2045 , » RFC2046 , » RFC2047 , » RFC2048 et » RFC2049: Multipurpose Internet Mail Extensions (MIME).
Une étude approfondie est aussi disponible dans les livres suivants (en anglais) : » Programming Internet Email par David Wood et » Managing IMAP par Dianna Mullet & Kevin Mullet.

Sommaire

  • imap_8bit — Convertit une chaîne à 8 bits en une chaîne encodée en Quoted-Printable
  • imap_alerts — Retourne toutes les alertes
  • imap_append — Ajoute un message dans une boîte aux lettres
  • imap_base64 — Décode un texte encodé en BASE64
  • imap_binary — Convertit une chaîne à 8 bits en une chaîne à base64
  • imap_body — Lit le corps d'un message
  • imap_bodystruct — Lit la structure d'une section du corps d'un mail
  • imap_check — Vérifie la boîte aux lettres courante
  • imap_clearflag_full — Supprime un flag (drapeau) sur un message
  • imap_close — Termine un flux IMAP
  • imap_create — Alias de imap_createmailbox
  • imap_createmailbox — Crée une nouvelle boîte aux lettres
  • imap_delete — Marque le fichier pour l'effacement, dans la boîte aux lettres courante
  • imap_deletemailbox — Efface une boîte aux lettres
  • imap_errors — Retourne toutes les erreurs IMAP survenues
  • imap_expunge — Efface tous les messages marqués pour l'effacement
  • imap_fetch_overview — Lit le sommaire des en-têtes de messages
  • imap_fetchbody — Retourne une section extraite du corps d'un message
  • imap_fetchheader — Retourne l'en-tête d'un message
  • imap_fetchmime — Récupère les en-têtes MIME pour une section particulière du message
  • imap_fetchstructure — Lit la structure d'un message
  • imap_fetchtext — Alias de imap_body
  • imap_gc — Efface le cache IMAP
  • imap_get_quota — Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles
  • imap_get_quotaroot — Lit les quotas de chaque utilisateur
  • imap_getacl — Retourne le ACL pour la boîte aux lettres
  • imap_getmailboxes — Liste les boîtes aux lettres, et retourne les détails de chacune
  • imap_getsubscribed — Liste toutes les boîtes aux lettres souscrites
  • imap_header — Alias de imap_headerinfo
  • imap_headerinfo — Lit l'en-tête du message
  • imap_headers — Retourne les en-têtes de tous les messages d'une boîte aux lettres
  • imap_last_error — Retourne la dernière erreur survenue
  • imap_list — Lit la liste des boîtes aux lettres
  • imap_listmailbox — Alias de imap_list
  • imap_listscan — Lit la liste des boîtes aux lettres, et y recherche une chaîne
  • imap_listsubscribed — Alias de imap_lsub
  • imap_lsub — Liste toutes les boîtes aux lettres enregistrées
  • imap_mail_compose — Crée un message MIME
  • imap_mail_copy — Copie les messages spécifiés dans une boîte aux lettres
  • imap_mail_move — Déplace des messages dans une boîte aux lettres
  • imap_mail — Envoie un message mail
  • imap_mailboxmsginfo — Lit les informations à propos de la boîte aux lettres courante
  • imap_mime_header_decode — Décode les éléments MIME d'un en-tête
  • imap_msgno — Retourne le numéro de séquence du message pour un UID donné
  • imap_num_msg — Retourne le nombre de messages dans la boîte aux lettres courante
  • imap_num_recent — Retourne le nombre de messages récents dans la boîte aux lettres courante
  • imap_open — Ouvre un flux IMAP vers une boîte aux lettres
  • imap_ping — Vérifie que le flux IMAP est toujours actif
  • imap_qprint — Convertit une chaîne à guillemets en une chaîne à 8 bits
  • imap_rename — Alias de imap_renamemailbox
  • imap_renamemailbox — Renomme une boîte aux lettres
  • imap_reopen — Réouvre un flux IMAP vers une nouvelle boîte aux lettres
  • imap_rfc822_parse_adrlist — Analyse une adresse email
  • imap_rfc822_parse_headers — Analyse un en-tête mail
  • imap_rfc822_write_address — Retourne une adresse email formatée correctement
  • imap_savebody — Sauvegarde une partie spécifique du corps dans un fichier
  • imap_scan — Alias de imap_listscan
  • imap_scanmailbox — Alias de imap_listscan
  • imap_search — Retourne un tableau de messages après recherche
  • imap_set_quota — Modifie le quota d'une boîte aux lettres
  • imap_setacl — Modifie le ACL de la boîte aux lettres
  • imap_setflag_full — Positionne un drapeau sur un message
  • imap_sort — Trie des messages
  • imap_status — Retourne les informations de statut sur une boîte aux lettres
  • imap_subscribe — Souscrit à une boîte aux lettres
  • imap_thread — Retourne l'arbre des messages organisés par thread
  • imap_timeout — Configure ou retourne le timeout
  • imap_uid — Retourne l'UID d'un message
  • imap_undelete — Enlève la marque d'effacement d'un message
  • imap_unsubscribe — Termine la souscription à une boîte aux lettres
  • imap_utf7_decode — Décode une chaîne encodée en UTF-7 modifié
  • imap_utf7_encode — Convertit une chaîne ISO-8859-1 en texte UTF-7 modifié
  • imap_utf8 — Convertit du texte au format MIME en UTF-8


Convertit une chaîne à 8 bits en une chaîne encodée en Quoted-Printable

  • « Fonctions IMAP
  • imap_alerts »
  • PHP Manual
  • Fonctions IMAP
  • Convertit une chaîne à 8 bits en une chaîne encodée en Quoted-Printable

imap_8bit

(PHP 4, PHP 5, PHP 7)

imap_8bit — Convertit une chaîne à 8 bits en une chaîne encodée en Quoted-Printable

Description

string imap_8bit ( string $string )

Convertit la chaîne à 8 bits en une chaîne encodée en Quoted-Printable (selon la » RFC 2045, Section 6.7).

Liste de paramètres

string

La chaîne 8 bits à convertir

Valeurs de retour

Retourne une chaîne encodée en Quoted-Printable.

Voir aussi

  • imap_qprint() - Convertit une chaîne à guillemets en une chaîne à 8 bits


Retourne toutes les alertes

  • « imap_8bit
  • imap_append »
  • PHP Manual
  • Fonctions IMAP
  • Retourne toutes les alertes

imap_alerts

(PHP 4, PHP 5, PHP 7)

imap_alerts — Retourne toutes les alertes

Description

array imap_alerts ( void )

Retourne un tableau de tous les messages d'alerte IMAP générés depuis le dernier appel à imap_alerts() ou depuis le début de la page.

Lorsque imap_alerts() est appelée, la pile d'alertes est vidée. Les spécifications IMAP requièrent que ces messages soient passés à l'utilisateur.

Valeurs de retour

Retourne un tableau contenant tous les messages d'alerte IMAP générés ou FALSE si aucun message d'alerte n'est disponible.

Voir aussi

  • imap_errors() - Retourne toutes les erreurs IMAP survenues


Ajoute un message dans une boîte aux lettres

  • « imap_alerts
  • imap_base64 »
  • PHP Manual
  • Fonctions IMAP
  • Ajoute un message dans une boîte aux lettres

imap_append

(PHP 4, PHP 5, PHP 7)

imap_append — Ajoute un message dans une boîte aux lettres

Description

bool imap_append ( resource $imap_stream , string $mailbox , string $message [, string $options = NULL [, string $internal_date = NULL ]] )

Ajoute un message message dans la boîte aux lettres mbox.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation sur la fonction imap_open() pour plus d'informations

message

Le message à ajouter, sous la forme d'une chaîne de caractères

Lors des échanges avec le serveur Cyrus IMAP, vous devrez utiliser "\r\n" comme terminaison de ligne, à la place de "\n" ou l'opération échouera.

options

Si fourni, le paramètre options sera également écrit dans la boîte mailbox

internal_date

Si ce paramètre est défini, il mettra les INTERNALDATE sur le message joint. Le paramètre doit être une chaîne de date qui est conforme aux spécifications du rfc2060 pour une valeur date_time.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.2 | Ajout du support INTERNALDATE à imap_append.

Exemples

Exemple #1 Exemple avec imap_append()

<?php
$stream = imap_open("{imap.example.org}INBOX.Drafts", "username", "password");

$check = imap_check($stream);
echo "Msg Count before append: ". $check->Nmsgs . "\n";

imap_append($stream, "{imap.example.org}INBOX.Drafts"
                   , "From: me@example.com\r\n"
                   . "To: you@example.com\r\n"
                   . "Subject: test\r\n"
                   . "\r\n"
                   . "Ceci est un message de test. Ignorez le.\r\n"
                   );

$check = imap_check($stream);
echo "Nombre de messages après ajout : ". $check->Nmsgs . "\n";

imap_close($stream);
?>


Décode un texte encodé en BASE64

  • « imap_append
  • imap_binary »
  • PHP Manual
  • Fonctions IMAP
  • Décode un texte encodé en BASE64

imap_base64

(PHP 4, PHP 5, PHP 7)

imap_base64 — Décode un texte encodé en BASE64

Description

string imap_base64 ( string $text )

Décode le texte text encodé en BASE64.

Liste de paramètres

text

Le texte encodé.

Valeurs de retour

Retourne le texte décodé, sous la forme d'une chaîne de caractères.

Voir aussi

  • imap_binary() - Convertit une chaîne à 8 bits en une chaîne à base64
  • base64_encode() - Encode une chaîne en MIME base64
  • base64_decode() - Décode une chaîne en MIME base64
  • » RFC2045, Section 6.8


Convertit une chaîne à 8 bits en une chaîne à base64

  • « imap_base64
  • imap_body »
  • PHP Manual
  • Fonctions IMAP
  • Convertit une chaîne à 8 bits en une chaîne à base64

imap_binary

(PHP 4, PHP 5, PHP 7)

imap_binary — Convertit une chaîne à 8 bits en une chaîne à base64

Description

string imap_binary ( string $string )

Convertit la chaîne à 8 bits string en une chaîne à base64 (selon la » RFC2045, Section 6.8).

Liste de paramètres

string

La chaîne 8 bits

Valeurs de retour

Retourne la chaîne encodée en base64.

Voir aussi

  • imap_base64() - Décode un texte encodé en BASE64


Lit le corps d'un message

  • « imap_binary
  • imap_bodystruct »
  • PHP Manual
  • Fonctions IMAP
  • Lit le corps d'un message

imap_body

(PHP 4, PHP 5, PHP 7)

imap_body — Lit le corps d'un message

Description

string imap_body ( resource $imap_stream , int $msg_number [, int $options = 0 ] )

imap_body() retourne le corps du message numéro msg_number de la boîte aux lettres courante.

imap_body() va retourner une copie brute du corps du message. Pour extraire les sous-parties MIME du message, utilisez imap_fetchstructure() pour analyser la structure, et imap_fetchbody() pour extraire une copie d'une des sous-partie.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

msg_number

Le numéro du message

options

Le paramètre options optionnel est un masque qui peut contenir les valeurs suivantes :

  • FT_UID - msg_number est un UID
  • FT_PEEK - Ne pas lever le drapeau \Seen (Message lu) s'il n'est pas déjà levé.
  • FT_INTERNAL - La chaîne renvoyée est au format interne, et ne va pas canoniser les CRLF.

Valeurs de retour

Retourne le corps du message spécifié, sous la forme d'une chaîne de caractères.


Lit la structure d'une section du corps d'un mail

  • « imap_body
  • imap_check »
  • PHP Manual
  • Fonctions IMAP
  • Lit la structure d'une section du corps d'un mail

imap_bodystruct

(PHP 4, PHP 5, PHP 7)

imap_bodystruct — Lit la structure d'une section du corps d'un mail

Description

object imap_bodystruct ( resource $imap_stream , int $msg_number , string $section )

Lit la structure d'une section spécifié du corps d'un mail.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

msg_number

Le numéro du message

section

La section du corps à lire

Valeurs de retour

Retourne les informations dans un objet ; pour une description détaillée de la structure de l'objet ainsi que de ses propriétés, reportez-vous à la fonction imap_fetchstructure().

Voir aussi

  • imap_fetchstructure() - Lit la structure d'un message


Vérifie la boîte aux lettres courante

  • « imap_bodystruct
  • imap_clearflag_full »
  • PHP Manual
  • Fonctions IMAP
  • Vérifie la boîte aux lettres courante

imap_check

(PHP 4, PHP 5, PHP 7)

imap_check — Vérifie la boîte aux lettres courante

Description

object imap_check ( resource $imap_stream )

Vérifie les informations de la boîte aux lettres courante.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

Valeurs de retour

Retourne les informations dans un objet contenant les propriétés suivantes :

  • Date - Date de dernière modification du contenu de la boîte aux lettres en accord avec la » RFC2822
  • Driver - protocole utilisé pour accéder à la boîte aux lettres: POP3, IMAP, NNTP.
  • Mailbox - nom de la boîte aux lettres
  • Nmsgs - nombre de messages de la boîte aux lettres
  • Recent - nombre de messages récents de la boîte aux lettres

Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imap_check()

<?php

$imap_obj = imap_check($imap_stream);
var_dump($imap_obj);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)(5) {
  ["Date"]=>
  string(37) "Wed, 10 Dec 2003 17:56:54 +0100 (CET)"
  ["Driver"]=>
  string(4) "imap"
  ["Mailbox"]=>
  string(54)
  "{www.example.com:143/imap/user="foo@example.com"}INBOX"
  ["Nmsgs"]=>
  int(1)
  ["Recent"]=>
  int(0)
}


Supprime un flag (drapeau) sur un message

  • « imap_check
  • imap_close »
  • PHP Manual
  • Fonctions IMAP
  • Supprime un flag (drapeau) sur un message

imap_clearflag_full

(PHP 4, PHP 5, PHP 7)

imap_clearflag_full — Supprime un flag (drapeau) sur un message

Description

bool imap_clearflag_full ( resource $imap_stream , string $sequence , string $flag [, int $options = 0 ] )

imap_clearflag_full() efface le flag flag dans les messages de la séquence sequence, du flux imap stream.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

sequence

Une séquence de numéro de messages. Vous pouvez énumérer les messages désirées avec la syntaxe X,Y, ou récupérer tous les messages contenus dans un intervalle, avec la syntaxe X:Y

flag

Les flags flag que vous pouvez effacer sont "\\Seen", "\\Answered", "\\Flagged", "\\Deleted" et "\\Draft" (tels que définis dans la » RFC2060)

options

options est un masque de bits, qui accepte uniquement la valeur suivante :

  • ST_UID - la séquence contient des UID au lieu de numéros de séquence

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • imap_setflag_full() - Positionne un drapeau sur un message


Termine un flux IMAP

  • « imap_clearflag_full
  • imap_create »
  • PHP Manual
  • Fonctions IMAP
  • Termine un flux IMAP

imap_close

(PHP 4, PHP 5, PHP 7)

imap_close — Termine un flux IMAP

Description

bool imap_close ( resource $imap_stream [, int $flag = 0 ] )

Termine un flux IMAP.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

flag

S'il est défini à CL_EXPUNGE, la fonction effectuera une purge automatique de la boîte aux lettres avant de la fermer, supprimant tous les messages marqués pour l'effacement. Vous pouvez effectuer la même chose avec la fonction imap_expunge()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • imap_open() - Ouvre un flux IMAP vers une boîte aux lettres


Alias de imap_createmailbox

  • « imap_close
  • imap_createmailbox »
  • PHP Manual
  • Fonctions IMAP
  • Alias de imap_createmailbox

imap_create

(PHP 4, PHP 5, PHP 7)

imap_create — Alias de imap_createmailbox()

Description

Cette fonction est un alias de : imap_createmailbox().


Crée une nouvelle boîte aux lettres

  • « imap_create
  • imap_delete »
  • PHP Manual
  • Fonctions IMAP
  • Crée une nouvelle boîte aux lettres

imap_createmailbox

(PHP 4, PHP 5, PHP 7)

imap_createmailbox — Crée une nouvelle boîte aux lettres

Description

bool imap_createmailbox ( resource $imap_stream , string $mailbox )

Crée une nouvelle boîte aux lettres nommée mailbox.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation sur la fonction imap_open() pour plus d'informations. Les noms contenant des caractères internationaux doivent être encodés par la fonction imap_utf7_encode()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imap_createmailbox()

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
     or die("connexion impossible : " . imap_last_error());

$name1 = "phpnewbox";
$name2 = imap_utf7_encode("phpnewböx"); // phpnewb&w7Y-x

$newname = $name1;

echo "Le nouveau nom sera '$name1'<br />\n";

// Nous allons créer maintenant une nouvelle boîte aux lettres "phptestbox"
// dans votre dossier inbox, vérifier son état et, finalement, la supprimer
// pour remettre votre inbox dans son état initial.

if (@imap_createmailbox($mbox, imap_utf7_encode("{imap.example.org}INBOX.$newname"))) {
    $status = @imap_status($mbox, "{imap.example.org}INBOX.$newname", SA_ALL);
    if ($status) {
        echo "Votre nouvelle boîte '$name1' est dans l'état suivant :<br />\n";
        echo "Messages :   " . $status->messages    . "<br />\n";
        echo "Récent :     " . $status->recent      . "<br />\n";
        echo "Non lus :     " . $status->unseen      . "<br />\n";
        echo "UIDnext :    " . $status->uidnext     . "<br />\n";
        echo "UIDvalidity :" . $status->uidvalidity . "<br />\n";

        if (imap_renamemailbox($mbox, "{imap.example.org}INBOX.$newname", "{imap.example.org}INBOX.$name2")) {
            echo "renommage de la boîte aux lettres '$name1' en '$name2'<br />\n";
            $newname = $name2;
        } else {
            echo "imap_renamemailbox sur la nouvelle boîte aux lettres a échoué : " . imap_last_error() . "<br />\n";
        }
    } else {
        echo "imap_status sur la nouvelle boîte aux lettres a échoué : " . imap_last_error() . "<br />\n";
    }

    if (@imap_deletemailbox($mbox, "{imap.example.org}INBOX.$newname")) {
        echo "nouvelle boite aux lettres supprimée pour remettre tout en état<br />\n";
    } else {
        echo "imap_deletemailbox sur la nouvelle boîte aux lettres a échoué : " . implode("<br />\n", imap_errors()) . "<br />\n";
    }

} else {
    echo "Impossible de créer une nouvelle boîte aux lettres : " . implode("<br />\n", imap_errors()) . "<br />\n";
}

imap_close($mbox);
?>

Voir aussi

  • imap_renamemailbox() - Renomme une boîte aux lettres
  • imap_deletemailbox() - Efface une boîte aux lettres


Marque le fichier pour l'effacement, dans la boîte aux lettres courante

  • « imap_createmailbox
  • imap_deletemailbox »
  • PHP Manual
  • Fonctions IMAP
  • Marque le fichier pour l'effacement, dans la boîte aux lettres courante

imap_delete

(PHP 4, PHP 5, PHP 7)

imap_delete — Marque le fichier pour l'effacement, dans la boîte aux lettres courante

Description

bool imap_delete ( resource $imap_stream , int $msg_number [, int $options = 0 ] )

Marque les messages msg_number pour l'effacement. L'effacement réel n'interviendra que lors de l'appel de la fonction imap_expunge() ou de imap_close() avec le paramètre optionnel CL_EXPUNGE.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

msg_number

Le numéro du message

options

Vous pouvez le définir à FT_UID qui demande à la fonction de traiter l'argument msg_number comme un UID.

Valeurs de retour

Retourne TRUE.

Exemples

Exemple #1 Exemple avec imap_delete()

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
    or die("Connexion impossible : " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);
echo "Nombre de messages avant effacement : " . $check->Nmsgs . "<br />\n";

imap_delete($mbox, 1);

$check = imap_mailboxmsginfo($mbox);
echo "Nombre de messages après effacement : " . $check->Nmsgs . "<br />\n";

imap_expunge($mbox);

$check = imap_mailboxmsginfo($mbox);
echo "Nombre de messages après imap_expunge : " . $check->Nmsgs . "<br />\n";

imap_close($mbox);
?>

Notes

Note:

Les boîtes aux lettres IMAP n'ont pas les flags de leurs messages de sauvegardés entre les connexions, aussi la fonction imap_expunge() doit être appelée pendant la même connexion pour que les messages marquées pour effacement soient réellement purgés.

Voir aussi

  • imap_undelete() - Enlève la marque d'effacement d'un message
  • imap_expunge() - Efface tous les messages marqués pour l'effacement
  • imap_close() - Termine un flux IMAP


Efface une boîte aux lettres

  • « imap_delete
  • imap_errors »
  • PHP Manual
  • Fonctions IMAP
  • Efface une boîte aux lettres

imap_deletemailbox

(PHP 4, PHP 5, PHP 7)

imap_deletemailbox — Efface une boîte aux lettres

Description

bool imap_deletemailbox ( resource $imap_stream , string $mailbox )

Efface la boîte aux lettres spécifiée.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation sur la fonction imap_open() pour plus de détails

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • imap_createmailbox() - Crée une nouvelle boîte aux lettres
  • imap_renamemailbox() - Renomme une boîte aux lettres
  • imap_open() - Ouvre un flux IMAP vers une boîte aux lettres pour le format mbox


Retourne toutes les erreurs IMAP survenues

  • « imap_deletemailbox
  • imap_expunge »
  • PHP Manual
  • Fonctions IMAP
  • Retourne toutes les erreurs IMAP survenues

imap_errors

(PHP 4, PHP 5, PHP 7)

imap_errors — Retourne toutes les erreurs IMAP survenues

Description

array imap_errors ( void )

Cette fonction retourne un tableau de tous les messages d'erreurs IMAP générés depuis le dernier appel à imap_errors() ou depuis le début de la page.

Lorsque imap_errors() est appelée, la pile d'erreurs est vidée.

Valeurs de retour

Cette fonction retourne un tableau contenant tous les messages d'erreur IMAP générés depuis le dernier appel à la fonction imap_errors() ou depuis le début de la page. Retourne FALSE si aucun message d'erreur n'est disponible.

Voir aussi

  • imap_last_error() - Retourne la dernière erreur survenue
  • imap_alerts() - Retourne toutes les alertes


Efface tous les messages marqués pour l'effacement

  • « imap_errors
  • imap_fetch_overview »
  • PHP Manual
  • Fonctions IMAP
  • Efface tous les messages marqués pour l'effacement

imap_expunge

(PHP 4, PHP 5, PHP 7)

imap_expunge — Efface tous les messages marqués pour l'effacement

Description

bool imap_expunge ( resource $imap_stream )

Efface tous les messages marqués pour l'effacement par imap_delete(), imap_mail_move(), ou imap_setflag_full().

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

Valeurs de retour

Retourne TRUE.


Lit le sommaire des en-têtes de messages

  • « imap_expunge
  • imap_fetchbody »
  • PHP Manual
  • Fonctions IMAP
  • Lit le sommaire des en-têtes de messages

imap_fetch_overview

(PHP 4, PHP 5, PHP 7)

imap_fetch_overview — Lit le sommaire des en-têtes de messages

Description

array imap_fetch_overview ( resource $imap_stream , string $sequence [, int $options = 0 ] )

Lit les en-têtes des courriers électroniques de la séquence sequence et retourne un sommaire de leur contenu.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

sequence

Une description de la séquence du message. Vous pouvez énumérer les messages désirés avec la syntaxe X,Y, ou récupérer tous les messages d'un intervalle, avec la syntaxe X:Y

options

sequence va contenir une séquence d'indice de message ou d'UID, si flags contient FT_UID.

Valeurs de retour

Retourne un tableau d'objets décrivant l'en-tête de chaque message. L'objet ne définira une propriété que si elle existe. Les propriétés possibles sont :

  • subject : le sujet du message
  • from : l'expéditeur
  • to : le destinataire
  • date : la date d'expédition
  • message_id : l'identification du message
  • references : la référence sur l'id de ce message
  • in_reply_to : la réponse à cet identifiant de message
  • size : la taille en octets
  • uid : UID du message dans la boîte aux lettres
  • msgno : le numéro de séquence du message dans la boîte
  • recent : ce message est récent
  • flagged : ce message est marqué
  • answered : ce message a donné lieu à une réponse
  • deleted : ce message est marqué pour l'effacement
  • seen : ce message est déjà lu
  • draft : ce message est un brouillon

Exemples

Exemple #1 Exemple avec imap_fetch_overview()

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password")
     or die("Connexion impossible : " . imap_last_error());

$MC = imap_check($mbox);

// Récupère le sommaire pour tous les messages contenus dans INBOX
$result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
foreach ($result as $overview) {
    echo "#{$overview->msgno} ({$overview->date}) - From: {$overview->from}
    {$overview->subject}\n";
}
imap_close($mbox);
?>

Voir aussi

  • imap_fetchheader() - Retourne l'en-tête d'un message


Retourne une section extraite du corps d'un message

  • « imap_fetch_overview
  • imap_fetchheader »
  • PHP Manual
  • Fonctions IMAP
  • Retourne une section extraite du corps d'un message

imap_fetchbody

(PHP 4, PHP 5, PHP 7)

imap_fetchbody — Retourne une section extraite du corps d'un message

Description

string imap_fetchbody ( resource $imap_stream , int $msg_number , string $section [, int $options = 0 ] )

Récupère une section particulière du corps des messages spécifiés. Les parties du corps ne sont pas décodées par cette fonction.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

msg_number

Le numéro du message

section

Le numéro de la section. C'est une chaîne d'entiers, délimités par une virgule qui correspondent aux index dans la liste des sections du message, tel que prévu par la spécification IMAP4.

options

L'option imap_fetchbody() est un masque qui peut contenir les valeurs suivantes :

  • FT_UID - msg_number est un UID
  • FT_PEEK - Ne pas lever le drapeau \Seen (Message lu) s'il n'est pas déjà levé.
  • FT_INTERNAL - La chaîne renvoyée est au format interne, et ne va pas canoniser les CRLF.

Valeurs de retour

Retourne une section particulière du corps des messages spécifiés, sous la forme d'une chaîne de caractères.

Voir aussi

  • imap_savebody() - Sauvegarde une partie spécifique du corps dans un fichier
  • imap_fetchstructure() - Lit la structure d'un message


Retourne l'en-tête d'un message

  • « imap_fetchbody
  • imap_fetchmime »
  • PHP Manual
  • Fonctions IMAP
  • Retourne l'en-tête d'un message

imap_fetchheader

(PHP 4, PHP 5, PHP 7)

imap_fetchheader — Retourne l'en-tête d'un message

Description

string imap_fetchheader ( resource $imap_stream , int $msg_number [, int $options = 0 ] )

imap_fetchheader() retourne l'en-tête brut et complet » RFC2822 du message msgno, sous la forme d'une chaîne.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

msg_number

Le numéro du message

options

Les options possibles sont :

  • FT_UID - msgno est un UID
  • FT_INTERNAL - La chaîne renvoyée est au format "internal" , c'est-à-dire sans canonisation des CRLF
  • FT_PREFETCHTEXT - RFC822.TEXT doit être pré téléchargé en même temps que l'en-tête. Cela réduit le RTT sur une connexion IMAP, si le message complet est souhaité. (e.g. dans une opération de sauvegarde dans un fichier).

Valeurs de retour

Retourne l'en-tête du message spécifié, sous la forme d'une chaîne de caractères.

Voir aussi

  • imap_fetch_overview() - Lit le sommaire des en-têtes de messages


Récupère les en-têtes MIME pour une section particulière du message

  • « imap_fetchheader
  • imap_fetchstructure »
  • PHP Manual
  • Fonctions IMAP
  • Récupère les en-têtes MIME pour une section particulière du message

imap_fetchmime

(PHP 5 >= 5.3.6, PHP 7)

imap_fetchmime — Récupère les en-têtes MIME pour une section particulière du message

Description

string imap_fetchmime ( resource $imap_stream , int $msg_number , string $section [, int $options = 0 ] )

Récupère les en-têtes MIME pour une section particulière du corps d'un message spécifique.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

msg_number

Le numéro du message.

section

Le numéro de la section. C'est une chaîne d'entiers délimités par une virgule qui représente l'index de la liste des sections du corps du message, tel que spécifié par l'IMAP4.

options

Un masque d'une ou plusieurs options suivantes :

  • FT_UID - Le paramètre msg_number est un UID.
  • FT_PEEK - Ne pas placer le drapeau \Seen s'il n'est pas déjà défini.
  • FT_INTERNAL - La chaîne retournée est en un format interne, et ne sera pas canonisée en CRLF.

Valeurs de retour

Retourne les en-têtes MIME d'une section particulière du corps du message spécifié, sous la forme d'une chaîne de caractères.

Voir aussi

  • imap_fetchbody() - Retourne une section extraite du corps d'un message
  • imap_fetchstructure() - Lit la structure d'un message
  • imap_fetchheader() - Retourne l'en-tête d'un message


Lit la structure d'un message

  • « imap_fetchmime
  • imap_fetchtext »
  • PHP Manual
  • Fonctions IMAP
  • Lit la structure d'un message

imap_fetchstructure

(PHP 4, PHP 5, PHP 7)

imap_fetchstructure — Lit la structure d'un message

Description

object imap_fetchstructure ( resource $imap_stream , int $msg_number [, int $options = 0 ] )

imap_fetchstructure() lit la structure du message msg_number.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

msg_number

Le numéro du message

options

Ce paramètre optionnel n'a qu'une seule option, FT_UID, qui demande à la fonction de traiter l'argument msg_number comme un UID.

Valeurs de retour

Retourne un objet avec des propriétés d'enveloppe, de date interne, de taille, de structure de flags et de corps, ainsi qu'un objet pour chaque attachement. La structure est la suivante :

Objets retournés par imap_fetchstructure()
type | Type primaire de corps
encoding | Codage de transfert du corps
ifsubtype | TRUE s'il y a une chaîne de sous type
subtype | sous type MIME
ifdescription | TRUE s'il y a une chaîne de description
description | Chaîne de description du contenu
ifid | TRUE s'il y a une chaîne d'identification
id | Chaîne d'identification
lines | Nombre de lignes
bytes | Nombre d'octets
ifdisposition | TRUE s'il y a une chaîne de disposition
disposition | Chaîne de disposition
ifdparameters | TRUE s'il y a un tableau de paramètres dparameters
dparameters | tableau d'objets où chaque objet a une propriété "attribute" et une propriété "value" correspondant aux paramètres d'en-têtes Content-disposition MIME.
ifparameters | TRUE si le tableau de paramètres existe
parameters | Tableau d'objets où chacun a une propriété "attribute" et une propriété "value".
parts | Tableau d'objets décrivant chaque partie MIME du message

Type primaire de corps (peut varier suivant la bibliothèque utilisée)
0 | text
1 | multipart
2 | message
3 | application
4 | audio
5 | image
6 | video
7 | other

Codage de transfert (peut varier suivant la bibliothèque utilisée)
0 | 7BIT
1 | 8BIT
2 | BINARY
3 | BASE64
4 | QUOTED-PRINTABLE
5 | OTHER

Voir aussi

  • imap_fetchbody() - Retourne une section extraite du corps d'un message
  • imap_bodystruct() - Lit la structure d'une section du corps d'un mail


Alias de imap_body

  • « imap_fetchstructure
  • imap_gc »
  • PHP Manual
  • Fonctions IMAP
  • Alias de imap_body

imap_fetchtext

(PHP 4, PHP 5, PHP 7)

imap_fetchtext — Alias de imap_body()

Description

Cette fonction est un alias de : imap_body().


Efface le cache IMAP

  • « imap_fetchtext
  • imap_get_quota »
  • PHP Manual
  • Fonctions IMAP
  • Efface le cache IMAP

imap_gc

(PHP 5 >= 5.3.0, PHP 7)

imap_gc — Efface le cache IMAP

Description

bool imap_gc ( resource $imap_stream , int $caches )

Supprime toutes les entrées d'un type donné dans le cache IMAP.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

caches

Indique le type de cache à purger. Cela peut être la combinaison des constantes suivantes : IMAP_GC_ELT (cache des éléments de message), IMAP_GC_ENV (enveloppe et corps), IMAP_GC_TEXTS (textes).

Valeurs de retour

Returns TRUE.

Exemples

Exemple #1 Exemple avecimap_gc()

<?php

$mbox = imap_open("{imap.example.org:143}", "username", "password");

imap_gc($mbox, IMAP_GC_ELT);

?>


Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles

  • « imap_gc
  • imap_get_quotaroot »
  • PHP Manual
  • Fonctions IMAP
  • Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles

imap_get_quota

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

imap_get_quota — Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles

Description

array imap_get_quota ( resource $imap_stream , string $quota_root )

Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles.

Pour une version utilisateur, non administrateur, de cette fonction, reportez-vous à la fonction imap_get_quotaroot().

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

quota_root

quota_root doit être de la forme : "user.nom", où "nom" est le nom de la boîte aux lettres que vous souhaitez analyser.

Valeurs de retour

Retourne un tableau contenant les valeurs de quota et courante de la boîte aux lettres quota_root. Le quota représente la taille maximale de votre boîte aux lettres. La valeur courante est l'espace actuellement utilisé par votre boîte aux lettres. imap_get_quota() retournera FALSE en cas d'échec.

Depuis PHP 4.3, la fonction reflète plus fidèlement les fonctionnalités édictée par la » RFC2087. Le tableau retourné a changé pour supporter un nombre illimité de ressources retournées (i.e. messages ou sous-dossiers) avec chaque ressource nommée qui est identifiée par une clé. Chaque clé contient alors un autre tableau avec l'utilisation et le quota. L'exemple ci-dessous montre comment l'utiliser.

Pour des raisons de compatibilité, la méthode d'accès originale est toujours disponible, mais il est recommandé de l'abandonner.

Exemples

Exemple #1 Exemple avec imap_get_quota()

<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
      or die("Impossible de se connecter : " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_value)) {
    echo "Niveau d'utilisation : " . $quota_value['usage'];
    echo "Quota : " . $quota_value['limit'];
}

imap_close($mbox);
?>

Exemple #2 Exemple avec imap_get_quota() 4.3 ou supérieur

<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
      or die("Impossible de se connecter : " . imap_last_error());

$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_values)) {
   $storage = $quota_values['STORAGE'];
   echo "Utilisation actuelle de la capacité de stockage : " .  $storage['usage'];
   echo "Quota actuel de stockage  : " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "Niveau d'utilisation de MESSAGE  : " .  $message['usage'];
   echo "Quota de MESSAGE : " .  $message['limit'];

   /* ...  */
}

imap_close($mbox);
?>

Notes

imap_get_quota() ne fonctionne actuellement qu'avec les bibliothèques c-client2000.

imap_stream doit avoir été créé avec la fonction imap_open(). Ce flux est nécessairement ouvert en tant qu'administrateur du serveur, pour que les droits nécessaires lui soient alloués.

Voir aussi

  • imap_open() - Ouvre un flux IMAP vers une boîte aux lettres
  • imap_set_quota() - Modifie le quota d'une boîte aux lettres
  • imap_get_quotaroot() - Lit les quotas de chaque utilisateur


Lit les quotas de chaque utilisateur

  • « imap_get_quota
  • imap_getacl »
  • PHP Manual
  • Fonctions IMAP
  • Lit les quotas de chaque utilisateur

imap_get_quotaroot

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

imap_get_quotaroot — Lit les quotas de chaque utilisateur

Description

array imap_get_quotaroot ( resource $imap_stream , string $quota_root )

Récupère les quotas de chaque utilisateur. La valeur limite représente l'espace limite alloué pour cette utilisateur pour l'utilisation de sa boîte aux lettres. La valeur de l'utilisation représente la taille actuelle de la boîte aux lettres.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

quota_root

quota_root doit être un nom de boîte aux lettres (i.e. INBOX).

Valeurs de retour

Retourne un tableau d'entiers, contenant les quotas de la boîte aux lettres de l'utilisateur. Toutes les valeurs sont représentées par une clé basée sur le nom de la boîte, et par un tableau représentant le niveau d'utilisation et les limites.

Cette fonction retournera FALSE si une erreur est survenue, et un tableau de données si la réponse du serveur n'a pu être comprise.

Exemples

Exemple #1 Exemple avec imap_get_quotaroot()

<?php
$mbox = imap_open("{imap.example.org}", "kalowsky", "password", OP_HALFOPEN)
      or die("Connexion impossible : " . imap_last_error());

$quota = imap_get_quotaroot($mbox, "INBOX");
if (is_array($quota)) {
   $storage = $quota['STORAGE'];
   echo "STORAGE niveau d'utilisation : " .  $storage['usage'];
   echo "STORAGE taille limite : " .  $storage['limit'];

   $message = $quota['MESSAGE'];
   echo "MESSAGE niveau d'utilisation : " .  $message['usage'];
   echo "MESSAGE taille limite : " .  $message['limit'];

   /* ...  */

}

imap_close($mbox);
?>

Notes

Cette fonction est uniquement accessible aux utilisateurs de la bibliothèque c-client2000 ou plus récent.

imap_stream est une ressource de connexion, obtenue grâce à imap_open(). Cette connexion doit être ouverte avec l'identité de l'utilisateur que l'on étudie.

Voir aussi

  • imap_open() - Ouvre un flux IMAP vers une boîte aux lettres
  • imap_set_quota() - Modifie le quota d'une boîte aux lettres
  • imap_get_quota() - Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles


Retourne le ACL pour la boîte aux lettres

  • « imap_get_quotaroot
  • imap_getmailboxes »
  • PHP Manual
  • Fonctions IMAP
  • Retourne le ACL pour la boîte aux lettres

imap_getacl

(PHP 5, PHP 7)

imap_getacl — Retourne le ACL pour la boîte aux lettres

Description

array imap_getacl ( resource $imap_stream , string $mailbox )

Récupère l'ACL pour la boîte aux lettres donnée.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails.

Valeurs de retour

Retourne un tableau associatif sous la forme "dossier" => "acl".

Exemples

Exemple #1 Exemple avec imap_getacl()

<?php

print_r(imap_getacl($conn_id, 'user.joecool'));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [asubfolder] => lrswipcda
    [anothersubfolder] => lrswipcda
)

Notes

Cette fonction n'est actuellement disponible que pour les utilisateurs de la bibliothèque c-client2000 ou supérieur.

Voir aussi

  • imap_setacl() - Modifie le ACL de la boîte aux lettres


Liste les boîtes aux lettres, et retourne les détails de chacune

  • « imap_getacl
  • imap_getsubscribed »
  • PHP Manual
  • Fonctions IMAP
  • Liste les boîtes aux lettres, et retourne les détails de chacune

imap_getmailboxes

(PHP 4, PHP 5, PHP 7)

imap_getmailboxes — Liste les boîtes aux lettres, et retourne les détails de chacune

Description

array imap_getmailboxes ( resource $imap_stream , string $ref , string $pattern )

Liste les boîtes aux lettres.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'intéresse qu'au niveau courant. '%' passé à pattern ne retournera que les boîtes aux lettres de niveau supérieur; '~/mail/%' sous UW_IMAPD retournera toutes les boîtes aux lettres du dossier ~/mail directory, mais pas leurs enfants.

Valeurs de retour

Retourne un tableau d'objets contenant les informations sur les boîtes aux lettres. Chaque objet possède un attribut de name, qui contient le nom complet de la boîte aux lettres, delimiter qui est le délimiteur hiérarchique et attributes. attributes est un masque de bits, qui contient :

  • LATT_NOINFERIORS - Cette boîte aux lettres n'a pas d'"enfants" (il n'y a plus de boîtes aux lettres en dessous de celle-ci) et ne peut en contenir aucun. Un appel à la fonction imap_createmailbox() ne fonctionnera pas sur cette boîte.

  • LATT_NOSELECT - Ceci est juste un container, pas une boîte aux lettres (vous ne pouvez pas l'ouvrir).

  • LATT_MARKED - Cette boîte aux lettres est marquée. Ceci signifie qu'elle peut contenir des nouveaux messages depuis la dernière fois qu'elle a été vérifiée. Ce marqueur n'est pas fourni avec tous les serveurs IMAP.

  • LATT_UNMARKED - Cette boîte aux lettres n'est pas marquée et ne contient pas de nouveaux messages. Si MARKED ou UNMARKED est fourni, vous pouvez supposer que le serveur IMAP supporte cette fonctionnalité pour cette boîte aux lettres.

Exemples

Exemple #1 Exemple avec imap_getmailboxes()

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
      or die("Connexion impossible : " . imap_last_error());

$list = imap_getmailboxes($mbox, "{imap.example.org}", "*");
if (is_array($list)) {
    foreach ($list as $key => $val) {
        echo "($key) ";
        echo imap_utf7_decode($val->name) . ",";
        echo "'" . $val->delimiter . "',";
        echo $val->attributes . "<br />\n";
    }
} else {
    echo "imap_getmailboxes a échoué : " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Voir aussi

  • imap_getsubscribed() - Liste toutes les boîtes aux lettres souscrites


Liste toutes les boîtes aux lettres souscrites

  • « imap_getmailboxes
  • imap_header »
  • PHP Manual
  • Fonctions IMAP
  • Liste toutes les boîtes aux lettres souscrites

imap_getsubscribed

(PHP 4, PHP 5, PHP 7)

imap_getsubscribed — Liste toutes les boîtes aux lettres souscrites

Description

array imap_getsubscribed ( resource $imap_stream , string $ref , string $pattern )

Liste toutes les boîtes aux lettres souscrites.

imap_getsubscribed() est identique à imap_getmailboxes(), mais ne retourne que les boîtes aux lettres auxquelles l'utilisateur est inscrit.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'intéresse qu'au niveau courant. '%' passé à pattern ne retournera que les boîtes aux lettres de niveau supérieur; '~/mail/%' sous UW_IMAPD retournera toutes les boîtes aux lettres du dossier ~/mail directory, mais pas leurs enfants.

Valeurs de retour

Retourne un tableau d'objets contenant les informations sur les boîtes aux lettres. Chaque objet possède un attribut de name, qui contient le nom complet de la boîte aux lettres, delimiter qui est le délimiteur hiérarchique et attributes. attributes est un masque de bits, qui contient :

  • LATT_NOINFERIORS - Cette boîte aux lettres n'a pas d'"enfants" (il n'y a plus de boîtes aux lettres en dessous de celle-ci).
  • LATT_NOSELECT - Ceci est juste un container, pas une boîte aux lettres (vous ne pouvez pas l'ouvrir).
  • LATT_MARKED - Cette boîte aux lettres est marquée. Utilisé uniquement avec UW-IMAPD.
  • LATT_UNMARKED - Cette boîte aux lettres n'est pas marquée. Utilisé uniquement avec UW-IMAPD.


Alias de imap_headerinfo

  • « imap_getsubscribed
  • imap_headerinfo »
  • PHP Manual
  • Fonctions IMAP
  • Alias de imap_headerinfo

imap_header

(PHP 4, PHP 5, PHP 7)

imap_header — Alias de imap_headerinfo()

Description

Cette fonction est un alias de : imap_headerinfo().


Lit l'en-tête du message

  • « imap_header
  • imap_headers »
  • PHP Manual
  • Fonctions IMAP
  • Lit l'en-tête du message

imap_headerinfo

(PHP 4, PHP 5, PHP 7)

imap_headerinfo — Lit l'en-tête du message

Description

object imap_headerinfo ( resource $imap_stream , int $msg_number [, int $fromlength = 0 [, int $subjectlength = 0 [, string $defaulthost = NULL ]]] )

Récupère les informations sur un numéro de message donné en lisant ses en-têtes.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

msg_number

Le numéro du message

fromlength

Nombre de caractères pour la propriété fetchfrom. Doit être plus grand ou égal à 0.

subjectlength

Nombre de caractères pour la propriété fetchsubject. Doit être plus grand ou égal à 0.

defaulthost

Valeurs de retour

Retourne les informations dans un objet contenant les propriétés suivantes :

  • "toaddress" : toute la ligne d'en-tête to: jusqu'à 1024 caractères
  • "to" : un tableau d'objets issus de la ligne to: avec les propriétés suivantes : personal, adl, mailbox, et host
  • "fromaddress" : toute la ligne d'en-tête from: jusqu'à 1024 caractères
  • "from" : un tableau d'objets issus de la ligne From: avec les propriétés suivantes : personal, adl, mailbox, et host
  • "ccaddress" : toute la ligne d'en-tête cc: jusqu'à 1024 caractères
  • "cc" : un tableau d'objets issus de la ligne cc: avec les propriétés suivantes : personal, adl, mailbox, et host
  • "bccaddress" : toute la ligne d'en-tête bcc: jusqu'à 1024 caractères
  • "bcc" : un tableau d'objets issus de la ligne Bcc: avec les propriétés suivantes : personal, adl, mailbox, et host
  • "reply_toaddress" : toute la ligne d'en-tête Reply_to: jusqu'à 1024 caractères
  • "reply_to" : un tableau d'objets issus de la ligne Reply_to: avec les propriétés suivantes : personal, adl, mailbox, et host
  • "senderaddress" : toute la ligne d'en-tête Sender: jusqu'à 1024 caractères
  • "sender" : un tableau d'objets issus de la ligne Sender: avec les propriétés suivantes : personal, adl, mailbox, et host
  • "return_pathaddress" : toute la ligne d'en-tête Return-path: jusqu'à 1024 caractères
  • "return_path" : un tableau d'objets issus de la ligne Return-path: avec les propriétés suivantes : personal, adl, mailbox, et host
  • remail -
  • "date" : La date du message, telle que trouvée dans les en-têtes
  • "Date" : Identique à "date"
  • "subject" : Le sujet du message
  • "Subject" : Identique à "subject"
  • "in_reply_to" :
  • "message_id" :
  • "newsgroups" :
  • "followup_to" :
  • "references" :
  • "Recent" : R si le message est récent et lu, N si le message est récent et non lu, " " si le message n'est pas récent.
  • "Unseen" : U si le message est non lu ET non récent, " " si le message est non lu et récent
  • "Flagged" : F si le message contient un drapeau, " " sinon
  • "Answered" : A si une réponse a été faite à ce message, " " sinon
  • "Deleted" : D si le message est effacé, " " sinon
  • "Draft" : X si le message est un brouillon, " " sinon
  • "Msgno" : Le numéro du message
  • "MailDate" :
  • "Size" : La taille du message
  • "udate" : Date de l"envoi du message, sous la forme d"une date Unix
  • "fetchfrom" : Ligne "from" formatée afin de tenir dans fromlength caractères
  • "fetchsubject" : Ligne "subject" formatée afin de tenir dans subjectlength caractères

Voir aussi

  • imap_fetch_overview() - Lit le sommaire des en-têtes de messages


Retourne les en-têtes de tous les messages d'une boîte aux lettres

  • « imap_headerinfo
  • imap_last_error »
  • PHP Manual
  • Fonctions IMAP
  • Retourne les en-têtes de tous les messages d'une boîte aux lettres

imap_headers

(PHP 4, PHP 5, PHP 7)

imap_headers — Retourne les en-têtes de tous les messages d'une boîte aux lettres

Description

array imap_headers ( resource $imap_stream )

Retourne les en-têtes de tous les messages d'une boîte aux lettres.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

Valeurs de retour

Retourne un tableau de chaînes contenant les en-têtes des messages : une chaîne par message.


Retourne la dernière erreur survenue

  • « imap_headers
  • imap_list »
  • PHP Manual
  • Fonctions IMAP
  • Retourne la dernière erreur survenue

imap_last_error

(PHP 4, PHP 5, PHP 7)

imap_last_error — Retourne la dernière erreur survenue

Description

string imap_last_error ( void )

imap_last_error() retourne le texte complet de la dernière erreur IMAP (si elle existe) qui est survenue lors de la dernière requête. La pile d'erreur n'est pas touchée. Appeler imap_last_error() successivement, sans de nouvelles erreurs, retournera la même erreur.

Valeurs de retour

Retourne le texte complet du dernier message d'erreur IMAP survenu sur la page courante. Retourne FALSE si aucun message n'est disponible.

Voir aussi

  • imap_errors() - Retourne toutes les erreurs IMAP survenues


Lit la liste des boîtes aux lettres

  • « imap_last_error
  • imap_listmailbox »
  • PHP Manual
  • Fonctions IMAP
  • Lit la liste des boîtes aux lettres

imap_list

(PHP 4, PHP 5, PHP 7)

imap_list — Lit la liste des boîtes aux lettres

Description

array imap_list ( resource $imap_stream , string $ref , string $pattern )

Lit la liste des boîtes aux lettres.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'intéresse qu'au niveau courant. '%' passé à pattern ne retournera que les boîtes aux lettres de niveau supérieur; '~/mail/%' sous UW_IMAPD retournera toutes les boîtes aux lettres du dossier ~/mail directory, mais pas leurs enfants.

Valeurs de retour

Retourne un tableau contenant les noms des boîtes aux lettres.

Exemples

Exemple #1 Exemple avec imap_list()

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
      or die("Connexion impossible : " . imap_last_error());

$list = imap_list($mbox, "{imap.example.org}", "*");
if (is_array($list)) {
    foreach ($list as $val) {
        echo imap_utf7_decode($val) . "\n";
    }
} else {
    echo "imap_list a échoué : " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Voir aussi

  • imap_getmailboxes() - Liste les boîtes aux lettres, et retourne les détails de chacune
  • imap_lsub() - Liste toutes les boîtes aux lettres enregistrées


Alias de imap_list

  • « imap_list
  • imap_listscan »
  • PHP Manual
  • Fonctions IMAP
  • Alias de imap_list

imap_listmailbox

(PHP 4, PHP 5, PHP 7)

imap_listmailbox — Alias de imap_list()

Description

Cette fonction est un alias de : imap_list().


Lit la liste des boîtes aux lettres, et y recherche une chaîne

  • « imap_listmailbox
  • imap_listsubscribed »
  • PHP Manual
  • Fonctions IMAP
  • Lit la liste des boîtes aux lettres, et y recherche une chaîne

imap_listscan

(PHP 4, PHP 5, PHP 7)

imap_listscan — Lit la liste des boîtes aux lettres, et y recherche une chaîne

Description

array imap_listscan ( resource $imap_stream , string $ref , string $pattern , string $content )

Retourne un tableau contenant les noms des boîtes aux lettres qui contiennent la chaîne content dans leur nom.

Cette fonction est similaire à imap_listmailbox(), mais va aussi vérifier la présence de la chaîne content dans les messages de la boîte aux lettres.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'intéresse qu'au niveau courant. '%' passé à pattern ne retournera que les boîtes aux lettres de niveau supérieur; '~/mail/%' sous UW_IMAPD retournera toutes les boîtes aux lettres du dossier ~/mail directory, mais pas leurs enfants.

content

La chaîne cherchée

Valeurs de retour

Retourne un tableau contenant les noms des boîtes aux lettres qui contiennent la chaîne content dans le nom de la boîte aux lettres.

Voir aussi

  • imap_listmailbox() - Alias de imap_list
  • imap_search() - Retourne un tableau de messages après recherche


Alias de imap_lsub

  • « imap_listscan
  • imap_lsub »
  • PHP Manual
  • Fonctions IMAP
  • Alias de imap_lsub

imap_listsubscribed

(PHP 4, PHP 5, PHP 7)

imap_listsubscribed — Alias de imap_lsub()

Description

Cette fonction est un alias de : imap_lsub().


Liste toutes les boîtes aux lettres enregistrées

  • « imap_listsubscribed
  • imap_mail_compose »
  • PHP Manual
  • Fonctions IMAP
  • Liste toutes les boîtes aux lettres enregistrées

imap_lsub

(PHP 4, PHP 5, PHP 7)

imap_lsub — Liste toutes les boîtes aux lettres enregistrées

Description

array imap_lsub ( resource $imap_stream , string $ref , string $pattern )

Récupère un tableau contenant toutes les boîtes aux lettres auxquelles vous avez souscrit.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'intéresse qu'au niveau courant. '%' passé à pattern ne retournera que les boîtes aux lettres de niveau supérieur; '~/mail/%' sous UW_IMAPD retournera toutes les boîtes aux lettres du dossier ~/mail directory, mais pas leurs enfants.

Valeurs de retour

Retourne un tableau contenant toutes les boîtes aux lettres souscrites.

Voir aussi

  • imap_list() - Lit la liste des boîtes aux lettres
  • imap_getmailboxes() - Liste les boîtes aux lettres, et retourne les détails de chacune


Crée un message MIME

  • « imap_lsub
  • imap_mail_copy »
  • PHP Manual
  • Fonctions IMAP
  • Crée un message MIME

imap_mail_compose

(PHP 4, PHP 5, PHP 7)

imap_mail_compose — Crée un message MIME

Description

string imap_mail_compose ( array $envelope , array $body )

Crée un message MIME basé sur l'enveloppe envelope et les sections body.

Liste de paramètres

envelope

Un tableau associatif contenant les champs des en-têtes. Les clés valides sont : "remail", "return_path", "date", "from", "reply_to", "in_reply_to", "subject", "to", "cc", "bcc", "message_id" et "custom_headers" (qui contient un tableau associatif d'autres en-têtes).

body

Un tableau indexé du corps

Un corps est un tableau associatif qui peut contenir les clés suivantes : "type", "encoding", "charset", "type.parameters", "subtype", "id", "description", "disposition.type", "disposition", "contents.data", "lines", "bytes" et "md5".

Valeurs de retour

Retourne le message MIME.

Exemples

Exemple #1 Exemple avec imap_mail_compose()

<?php

$envelope["from"]= "joe@example.com";
$envelope["to"]  = "foo@example.com";
$envelope["cc"]  = "bar@example.com";

$part1["type"] = TYPEMULTIPART;
$part1["subtype"] = "mixed";

$filename = "/tmp/imap.c.gz";
$fp = fopen($filename, "r");
$contents = fread($fp, filesize($filename));
fclose($fp);

$part2["type"] = TYPEAPPLICATION;
$part2["encoding"] = ENCBINARY;
$part2["subtype"] = "octet-stream";
$part2["description"] = basename($filename);
$part2["contents.data"] = $contents;

$part3["type"] = TYPETEXT;
$part3["subtype"] = "plain";
$part3["description"] = "description3";
$part3["contents.data"] = "contents.data3\n\n\n\t";

$body[1] = $part1;
$body[2] = $part2;
$body[3] = $part3;

echo nl2br(imap_mail_compose($envelope, $body));

?>


Copie les messages spécifiés dans une boîte aux lettres

  • « imap_mail_compose
  • imap_mail_move »
  • PHP Manual
  • Fonctions IMAP
  • Copie les messages spécifiés dans une boîte aux lettres

imap_mail_copy

(PHP 4, PHP 5, PHP 7)

imap_mail_copy — Copie les messages spécifiés dans une boîte aux lettres

Description

bool imap_mail_copy ( resource $imap_stream , string $msglist , string $mailbox [, int $options = 0 ] )

Copie les messages email spécifiés par msglist dans la boîte aux lettres nommée mbox.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

msglist

msglist est un intervalle, et pas seulement une liste de numéros de message (comme décrit dans la » RFC2060).

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

options

options est un masque, qui peut contenir une ou plusieurs des valeurs suivantes :

  • CP_UID - la séquence de nombre contient des UIDS
  • CP_MOVE - Efface les messages après copie

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • imap_mail_move() - Déplace des messages dans une boîte aux lettres


Déplace des messages dans une boîte aux lettres

  • « imap_mail_copy
  • imap_mail »
  • PHP Manual
  • Fonctions IMAP
  • Déplace des messages dans une boîte aux lettres

imap_mail_move

(PHP 4, PHP 5, PHP 7)

imap_mail_move — Déplace des messages dans une boîte aux lettres

Description

bool imap_mail_move ( resource $imap_stream , string $msglist , string $mailbox [, int $options = 0 ] )

imap_mail_move() déplace les messages spécifiés par msglist dans la boîte aux lettres mbox.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

msglist

msglist est un intervalle, et pas seulement une liste de messages (comme décrit dans la » RFC2060).

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

options

options est un champ de bits et peut contenir une seule valeur :

  • CP_UID - La séquence de nombres contient des UID

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

imap_mail_move() va marquer l'email original avec un marqueur de suppression, pour effectivement le supprimer, un appel à imap_expunge() est nécessaire.

Voir aussi

  • imap_mail_copy() - Copie les messages spécifiés dans une boîte aux lettres


Envoie un message mail

  • « imap_mail_move
  • imap_mailboxmsginfo »
  • PHP Manual
  • Fonctions IMAP
  • Envoie un message mail

imap_mail

(PHP 4, PHP 5, PHP 7)

imap_mail — Envoie un message mail

Description

bool imap_mail ( string $to , string $subject , string $message [, string $additional_headers = NULL [, string $cc = NULL [, string $bcc = NULL [, string $rpath = NULL ]]]] )

imap_mail() permet d'envoyer des mails avec une gestion correcte des destinataires Cc et Bcc.

Les paramètres to, cc et bcc sont tous des chaînes et sont analysées comme des listes d'adresses » RFC822.

Liste de paramètres

to

Le destinataire

subject

Le sujet du mail

message

Le corps du mail ; voir la fonction imap_mail_compose().

additional_headers

Une chaîne de caractères contenant les en-têtes additionnels à envoyer avec le mail

cc

bcc

Les destinataires spécifiés dans le bcc recevront le mail mais sont exclus des en-têtes.

rpath

Utiliser ce paramètre pour spécifier le chemin de retour en cas d'échec de délivrance du mail. C'est utile lorsque vous utilisez PHP comme client mail pour plusieurs utilisateurs.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mail() - Envoi de mail
  • imap_mail_compose() - Crée un message MIME


Lit les informations à propos de la boîte aux lettres courante

  • « imap_mail
  • imap_mime_header_decode »
  • PHP Manual
  • Fonctions IMAP
  • Lit les informations à propos de la boîte aux lettres courante

imap_mailboxmsginfo

(PHP 4, PHP 5, PHP 7)

imap_mailboxmsginfo — Lit les informations à propos de la boîte aux lettres courante

Description

object imap_mailboxmsginfo ( resource $imap_stream )

imap_mailboxmsginfo() vérifie le statut courant de la boîte aux lettres sur le serveur. C'est similaire à l'utilisation de la fonction imap_status(), mais fournie également la taille totale des messages de la boîte aux lettres, ce qui demande un peu plus de temps à l'exécution.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

Valeurs de retour

Retourne un objet avec les propriétés suivantes :

Propriétés de boîte aux lettres
Date | Date de dernière modification du contenu de la boîte aux lettres (date et heure courantes
Driver | Pilote
Mailbox | Nom de la boîte aux lettres
Nmsgs | Nombre de messages
Recent | Nombre de messages récents
Unread | Nombre de messages non lus
Deleted | Nombre de messages effacés
Size | Taille de la boîte aux lettres

Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imap_mailboxmsginfo()

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
      or die("Connexion impossible : " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);

if ($check) {
    echo "Date : "     . $check->Date    . "<br />\n" ;
    echo "Pilote : "   . $check->Driver  . "<br />\n" ;
    echo "Boîte aux lettres : "  . $check->Mailbox . "<br />\n" ;
    echo "Messages : " . $check->Nmsgs   . "<br />\n" ;
    echo "Récent : "   . $check->Recent  . "<br />\n" ;
    echo "Non lu : "   . $check->Unread  . "<br />\n" ;
    echo "Effacé : "  . $check->Deleted . "<br />\n" ;
    echo "Taille : "     . $check->Size    . "<br />\n" ;
} else {
    echo "imap_mailboxmsginfo() a échoué : " . imap_last_error() . "<br />\n";
}

imap_close($mbox);

?>


Décode les éléments MIME d'un en-tête

  • « imap_mailboxmsginfo
  • imap_msgno »
  • PHP Manual
  • Fonctions IMAP
  • Décode les éléments MIME d'un en-tête

imap_mime_header_decode

(PHP 4, PHP 5, PHP 7)

imap_mime_header_decode — Décode les éléments MIME d'un en-tête

Description

array imap_mime_header_decode ( string $text )

Décode un message MIME qui contient des données non ASCII (voir » RFC2047).

Liste de paramètres

text

Le texte MIME

Valeurs de retour

Les éléments décodés sont retournés dans un tableau d'objets. Chacun de ces objets a deux propriétés : charset et text.

Si l'élément n'a pas été encodé, ou, en d'autres termes, s'il est en clair (plain US_ASCII), la propriété charset est mise à default.

Exemples

Exemple #1 Exemple avec imap_mime_header_decode()

<?php
$text = "=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@example.com>";

$elements = imap_mime_header_decode($text);
for ($i=0; $i<count($elements); $i++) {
    echo "Charset : {$elements[$i]->charset}\n";
    echo "Texte : {$elements[$i]->text}\n\n";
}
?>

L'exemple ci-dessus va afficher :

Charset: ISO-8859-1
Text: Keld Jørn Simonsen

Charset: default
Text:  <keld@example.com>

Dans l'exemple ci-dessus, on trouve deux éléments : le premier a été encodé en ISO-8859-1, et le second est en clair.

Voir aussi

  • imap_utf8() - Convertit du texte au format MIME en UTF-8


Retourne le numéro de séquence du message pour un UID donné

  • « imap_mime_header_decode
  • imap_num_msg »
  • PHP Manual
  • Fonctions IMAP
  • Retourne le numéro de séquence du message pour un UID donné

imap_msgno

(PHP 4, PHP 5, PHP 7)

imap_msgno — Retourne le numéro de séquence du message pour un UID donné

Description

int imap_msgno ( resource $imap_stream , int $uid )

Retourne le numéro de séquence du message pour l'UID uid.

Cette fonction est l'inverse de la fonction imap_uid().

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

uid

L'UID du message

Valeurs de retour

Retourne le numéro de séquence du message pour l'UID uid.

Voir aussi

  • imap_uid() - Retourne l'UID d'un message


Retourne le nombre de messages dans la boîte aux lettres courante

  • « imap_msgno
  • imap_num_recent »
  • PHP Manual
  • Fonctions IMAP
  • Retourne le nombre de messages dans la boîte aux lettres courante

imap_num_msg

(PHP 4, PHP 5, PHP 7)

imap_num_msg — Retourne le nombre de messages dans la boîte aux lettres courante

Description

int imap_num_msg ( resource $imap_stream )

Retourne le nombre de messages dans la boîte aux lettres courante.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

Valeurs de retour

Retourne le nombre de messages dans la boîte aux lettres courante, sous la forme d'un entier.

Voir aussi

  • imap_num_recent() - Retourne le nombre de messages récents dans la boîte aux lettres courante
  • imap_status() - Retourne les informations de statut sur une boîte aux lettres


Retourne le nombre de messages récents dans la boîte aux lettres courante

  • « imap_num_msg
  • imap_open »
  • PHP Manual
  • Fonctions IMAP
  • Retourne le nombre de messages récents dans la boîte aux lettres courante

imap_num_recent

(PHP 4, PHP 5, PHP 7)

imap_num_recent — Retourne le nombre de messages récents dans la boîte aux lettres courante

Description

int imap_num_recent ( resource $imap_stream )

Retourne le nombre de messages récents dans la boîte aux lettres courante.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

Valeurs de retour

Retourne le nombre de messages récents dans la boîte aux lettres courante, sous la forme d'un entier.

Voir aussi

  • imap_num_msg() - Retourne le nombre de messages dans la boîte aux lettres courante
  • imap_status() - Retourne les informations de statut sur une boîte aux lettres


Ouvre un flux IMAP vers une boîte aux lettres

  • « imap_num_recent
  • imap_ping »
  • PHP Manual
  • Fonctions IMAP
  • Ouvre un flux IMAP vers une boîte aux lettres

imap_open

(PHP 4, PHP 5, PHP 7)

imap_open — Ouvre un flux IMAP vers une boîte aux lettres

Description

resource imap_open ( string $mailbox , string $username , string $password [, int $options = 0 [, int $n_retries = 0 [, array $params = NULL ]]] )

Ouvre un flux IMAP vers la boîte aux lettres mailbox.

Cette fonction peut aussi être utilisée pour ouvrir des flots sur des serveurs POP3 et NNTP mais quelques fonctions et fonctionnalités ne sont disponibles qu'avec les serveurs IMAP.

Liste de paramètres

mailbox

Un nom de boîte aux lettres est constitué d'une adresse de serveur, et d'une adresse de boîte sur ce serveur. Le mot réservé INBOX représente la boîte aux lettres de l'utilisateur courant. Les noms de boîtes aux lettres qui contiennent des caractères spéciaux (en dehors de l'espace ASCII) doivent être encodés avec imap_utf7_encode().

L'adresse du serveur, mise entre accolades '{' et '}', est constituée du nom du serveur ou de son adresse IP, d'une spécification de protocole (commençant par '/') et d'un port optionnel (spécifié avec ':').

Cette partie est obligatoire dans les paramètres de la boîte aux lettres.

Tous les noms commençant par { sont des noms distants et sont sous la forme "{" nom_systeme_distant [":" port] [flags] "}" [nom_mailbox] où :

  • remote_system_name : Nom de domaine Internet ou une adresse IP de serveur entouré de guillemets.
  • port : numéro de port TCP (optionnel), la valeur par défaut est la valeur du port pour ce service.
  • flags : options, voir la table suivante.
  • mailbox_name : nom de la mailbox distante, par défaut : INBOX

Flags optionnels pour les noms
Flag | Description
/service=service | service pour l'accès à la mailbox, par défaut : "imap"
/user=user | nom de l'utilisateur distant pour l'identification sur le serveur
/authuser=user | utilisateur distance d'identification ; si spécifié, ce sera le nom de l'utilisateur dont le mot de passe est utilisé (e.g. administrator)
/anonymous | accès distant en anonyme
/debug | la télémétrie d'enregistrement du protocole dans les logs de déboguage de l'application
/secure | ne transmet pas un mot de passe en clair à travers le réseau
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 | équivalent de /service=imap
/pop3 | équivalent de /service=pop3
/nntp | équivalent de /service=nntp
/norsh | ne pas utiliser rsh ou ssh pour établir une session de pré identification IMAP
/ssl | utilise Secure Socket Layer pour crypter la session
/validate-cert | valide les certificats depuis le serveur TLS/SSL (c'est le comportement par défaut)
/novalidate-cert | ne pas valider les certificats depuis le serveur TLS/SSL, nécessaire si le serveur utilise des certificats auto-signés
/tls | force l'utilisation de start-TLS pour chiffrer la session et rejette les connexions aux serveurs qui ne le supporte pas
/notls | n'utilise pas start-TLS pour chiffrer la session, y compris avec les serveurs qui le supporte
/readonly | demande un accès en lecture seule sur mailbox (IMAP uniquement ; ignoré sous NNTP, et une erreur avec SMTP et POP3)

username

Le nom d'utilisateur

password

Le mot de passe associé avec l'utilisateur username

options

options est un masque de bit, qui peut prendre une ou plusieurs des valeurs suivantes :

  • OP_READONLY : Ouvre une boîte aux lettres en lecture seule
  • OP_ANONYMOUS : Ne pas utiliser, ou modifier le fichier .newsrc pour les news (NNTP uniquement)
  • OP_HALFOPEN : Pour les noms IMAP et NNTP, ouvre une connexion mais n'ouvre pas une boîte aux lettres.
  • CL_EXPUNGE : Supprime automatiquement la boîte aux lettres de la liste, lors de la terminaison du flux (voir aussi imap_delete() and imap_expunge())
  • OP_DEBUG : négociations de déboguage du protocole
  • OP_SHORTCACHE : Cache court (elt uniquement)
  • OP_SILENT : Ne pas transmettre les événements (utilisation interne)
  • OP_PROTOTYPE : Retourne le prototype du driver
  • OP_SECURE : Ne pas effectuer des identifications non sécurisées

n_retries

Le nombre maximal de tentatives de connexion.

params

Paramètres de connexion ; les clés peuvent être utilisées pour définir un ou plusieurs paramètres de connexion :

  • DISABLE_AUTHENTICATOR - Désactive les propriétés d'authentification

Valeurs de retour

Retourne un flux IMAP en cas de succès, ou FALSE si une erreur survient.

Historique

Version | Description
5.3.2 | Le paramètre params a été ajouté.
5.2.0 | Le paramètre n_retries a été ajouté.

Exemples

Exemple #1 Différentes utilisations de imap_open()

<?php
// Pour se connecter à un serveur IMAP fonctionnant sur le port 143 de la
// machine locale, faites ceci :
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");

// Pour se connecter à un serveur POP3 fonctionnant sur le port 110 du
// serveur local, faites ceci :
$mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password");

// Pour se connecter à un serveur SSL IMAP ou POP3, ajoutez /ssl
// après la spécification du protocole :
$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");

// Pour se connecter à un serveur SSL IMAP ou POP3 avec un certificat auto-signé
// ajoutez /ssl/novalidate-cert après le protocole :
$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");

// Pour se connecter à un serveur NNTP qui fonctionne sur
// le port 119 de la machine locale on peut utiliser la commande:
$nntp = imap_open ("{localhost:119/nntp}comp.test", "", "");

// Pour se connecter à un serveur distant, remplacez "localhost" par
// le nom ou l'adresse IP de la machine.
?>

Exemple #2 Exemple avec imap_open()

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password");

echo "<h1>Mailboxes</h1>\n";
$folders = imap_listmailbox($mbox, "{imap.example.org:143}", "*");

if ($folders == false) {
    echo "Appel échoué<br />\n";
} else {
    foreach ($folders as $val) {
        echo $val . "<br />\n";
    }
}

echo "<h1>en-têtes dans INBOX</h1>\n";
$headers = imap_headers($mbox);

if ($headers == false) {
    echo "Appel échoué<br />\n";
} else {
    foreach ($headers as $val) {
        echo $val . "<br />\n";
    }
}

imap_close($mbox);
?>

Voir aussi

  • imap_close() - Termine un flux IMAP


Vérifie que le flux IMAP est toujours actif

  • « imap_open
  • imap_qprint »
  • PHP Manual
  • Fonctions IMAP
  • Vérifie que le flux IMAP est toujours actif

imap_ping

(PHP 4, PHP 5, PHP 7)

imap_ping — Vérifie que le flux IMAP est toujours actif

Description

bool imap_ping ( resource $imap_stream )

Vérifie que le flux est toujours actif, en lui envoyant un ping. Cette fonction permet de se rendre compte qu'un mail est arrivé : c'est même la méthode préconisée pour des tests périodiques de vérification du courrier. Cette fonction peut aussi servir à garder une connexion ouverte, avec les serveurs dotés d'un délai d'expiration.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

Valeurs de retour

Retourne TRUE si le flux est toujours actif, FALSE sinon.

Exemples

Exemple #1 Exemple avec imap_ping()

<?php

$imap = imap_open("{imap.example.org}", "mailadmin", "password");

// après une pause
if (!imap_ping($imap)) {
    // effectuez un traitement pour se reconnecter
}

?>


Convertit une chaîne à guillemets en une chaîne à 8 bits

  • « imap_ping
  • imap_rename »
  • PHP Manual
  • Fonctions IMAP
  • Convertit une chaîne à guillemets en une chaîne à 8 bits

imap_qprint

(PHP 4, PHP 5, PHP 7)

imap_qprint — Convertit une chaîne à guillemets en une chaîne à 8 bits

Description

string imap_qprint ( string $string )

Convertit la chaîne à guillemets string en une chaîne à 8 bits (selon la » RFC2045, section 6.7).

Liste de paramètres

string

Une chaîne à guillemets

Valeurs de retour

Retourne une chaîne de caractères à 8 bits.

Voir aussi

  • imap_8bit() - Convertit une chaîne à 8 bits en une chaîne encodée en Quoted-Printable


Alias de imap_renamemailbox

  • « imap_qprint
  • imap_renamemailbox »
  • PHP Manual
  • Fonctions IMAP
  • Alias de imap_renamemailbox

imap_rename

(PHP 4, PHP 5, PHP 7)

imap_rename — Alias de imap_renamemailbox()

Description

Cette fonction est un alias de : imap_renamemailbox().


Renomme une boîte aux lettres

  • « imap_rename
  • imap_reopen »
  • PHP Manual
  • Fonctions IMAP
  • Renomme une boîte aux lettres

imap_renamemailbox

(PHP 4, PHP 5, PHP 7)

imap_renamemailbox — Renomme une boîte aux lettres

Description

bool imap_renamemailbox ( resource $imap_stream , string $old_mbox , string $new_mbox )

imap_renamemailbox() renomme la boîte aux lettres old_mbox en new_mbox (voir la fonction imap_open() pour le format des noms mbox).

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

old_mbox

L'ancien nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

new_mbox

Le nouveau nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • imap_createmailbox() - Crée une nouvelle boîte aux lettres
  • imap_deletemailbox() - Efface une boîte aux lettres


Réouvre un flux IMAP vers une nouvelle boîte aux lettres

  • « imap_renamemailbox
  • imap_rfc822_parse_adrlist »
  • PHP Manual
  • Fonctions IMAP
  • Réouvre un flux IMAP vers une nouvelle boîte aux lettres

imap_reopen

(PHP 4, PHP 5, PHP 7)

imap_reopen — Réouvre un flux IMAP vers une nouvelle boîte aux lettres

Description

bool imap_reopen ( resource $imap_stream , string $mailbox [, int $options = 0 [, int $n_retries = 0 ]] )

Réouvre la connexion spécifiée au serveur IMAP ou NNTP, avec une nouvelle boîtes aux lettres.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

options

options est un masque de bits, qui peut contenir les valeurs suivantes :

  • OP_READONLY - Ouvre une boîte aux lettres en lecture seule
  • OP_ANONYMOUS - Ne pas utiliser, ou modifier le fichier .newsrc pour les news (NNTP uniquement)
  • OP_HALFOPEN - Pour les noms IMAP et NNTP, ouvre une connexion mais n'ouvre pas une boîte aux lettres.
  • OP_EXPUNGE - Supprime silencieusement le flux recyclé
  • CL_EXPUNGE - Supprime automatiquement la boîte aux lettres de la liste, lors de la terminaison du flux. (voir imap_delete() et imap_expunge()).

n_retries

Le nombre maximal de tentatives de connexion

Valeurs de retour

Retourne TRUE si le flux est réouvert, FALSE sinon.

Historique

Version | Description
5.2.0 | Le paramètre n_retries a été ajouté

Exemples

Exemple #1 Exemple avec imap_reopen()

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password") or die(implode(", ", imap_errors()));
// ...
imap_reopen($mbox, "{imap.example.org:143}INBOX.Sent") or die(implode(", ", imap_errors()));
// ..
?>


Analyse une adresse email

  • « imap_reopen
  • imap_rfc822_parse_headers »
  • PHP Manual
  • Fonctions IMAP
  • Analyse une adresse email

imap_rfc822_parse_adrlist

(PHP 4, PHP 5, PHP 7)

imap_rfc822_parse_adrlist — Analyse une adresse email

Description

array imap_rfc822_parse_adrlist ( string $address , string $default_host )

Analyse la chaîne address, tel que définie dans la » RFC2822.

Liste de paramètres

address

Une chaîne de caractères contenant les adresses

default_host

Le nom de l'hôte par défaut

Valeurs de retour

Retourne un tableau d'objets. Les propriétés des objets sont :

  • "mailbox" : Le nom de la boîte aux lettres (nom d'utilisateur)
  • "host" : Le nom de l'hôte
  • "personal" : Le nom personnel
  • "adl" : at domain source route (NDT : ???)

Exemples

Exemple #1 Exemple avec imap_rfc822_parse_adrlist()

<?php

$address_string = "Joe Doe <doe@example.com>, postmaster@example.com, root";
$address_array  = imap_rfc822_parse_adrlist($address_string, "example.com");
if (!is_array($address_array) || count($address_array) < 1) {
    die("Erreur !\n");
}

foreach ($address_array as $id => $val) {
    echo "# $id\n";
    echo "  Boîte   : " . $val->mailbox . "\n";
    echo "  Hôte    : " . $val->host . "\n";
    echo "  Nom    : " . $val->personal . "\n";
    echo "  adl      : " . $val->adl . "\n";
}
?>

L'exemple ci-dessus va afficher :

# 0
  Boîte   : doe
  Hôte    : example.com
  Nom    : Joe Doe
  adl      :
# 1
  Boîte   : postmaster
  hôte    : example.com
  Nom    :
  adl      :
# 2
  Boîte   : root
  Hôte    : example.com
  Nom    :
  adl      :

Voir aussi

  • imap_rfc822_parse_headers() - Analyse un en-tête mail


Analyse un en-tête mail

  • « imap_rfc822_parse_adrlist
  • imap_rfc822_write_address »
  • PHP Manual
  • Fonctions IMAP
  • Analyse un en-tête mail

imap_rfc822_parse_headers

(PHP 4, PHP 5, PHP 7)

imap_rfc822_parse_headers — Analyse un en-tête mail

Description

object imap_rfc822_parse_headers ( string $headers [, string $defaulthost = "UNKNOWN" ] )

Analyse la chaîne headers et retourne un objet contenant différents éléments, similaires à la fonction imap_header().

Liste de paramètres

headers

Les données à analyser

defaulthost

Le nom de l'hôte par défaut

Valeurs de retour

Retourne un objet similaire à celui retourné par la fonction imap_header(), excepté pour les drapeaux et les autres propriétés qui proviennent du serveur IMAP.

Voir aussi

  • imap_rfc822_parse_adrlist() - Analyse une adresse email


Retourne une adresse email formatée correctement

  • « imap_rfc822_parse_headers
  • imap_savebody »
  • PHP Manual
  • Fonctions IMAP
  • Retourne une adresse email formatée correctement

imap_rfc822_write_address

(PHP 4, PHP 5, PHP 7)

imap_rfc822_write_address — Retourne une adresse email formatée correctement

Description

string imap_rfc822_write_address ( string $mailbox , string $host , string $personal )

Retourne une adresse email formatée correctement selon la » RFC2822.

Liste de paramètres

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

host

La partie hôte de l'email

personal

Le nom du propriétaire du compte

Valeurs de retour

Retourne une adresse email, sous la forme d'une chaîne de caractères, formatée correctement selon la » RFC2822.

Exemples

Exemple #1 Exemple avec imap_rfc822_write_address()

<?php
echo imap_rfc822_write_address("hartmut", "example.com", "Hartmut Holzgraefe");
?>

L'exemple ci-dessus va afficher :

Hartmut Holzgraefe <hartmut@example.com>


Sauvegarde une partie spécifique du corps dans un fichier

  • « imap_rfc822_write_address
  • imap_scan »
  • PHP Manual
  • Fonctions IMAP
  • Sauvegarde une partie spécifique du corps dans un fichier

imap_savebody

(PHP 5 >= 5.1.3, PHP 7)

imap_savebody — Sauvegarde une partie spécifique du corps dans un fichier

Description

bool imap_savebody ( resource $imap_stream , mixed $file , int $msg_number [, string $part_number = "" [, int $options = 0 ]] )

Sauvegarde une partie du corps du message spécifié.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

file

Le chemin vers le fichier de sauvegarde, sous la forme d'une chaîne de caractères ou un descripteur de fichier valide retourné par la fonction fopen().

msg_number

Le numéro du message

part_number

Le numéro de la section. C'est une chaîne de caractères d'entiers, délimités par une virgule qui correspondent à l'index dans la liste des sections du corps, tel que prévu par la spécification IMAP4.

options

Un masque qui contient une ou plusieurs des valeurs suivantes :

  • FT_UID - Le numéro msg_number est un UID
  • FT_PEEK - Ne pas définir le drapeau \Seen s'il n'est pas déjà défini
  • FT_INTERNAL - La chaîne de caractères retournée est dans un format interne, qui ne correspondant pas à CRLF.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • imap_fetchbody() - Retourne une section extraite du corps d'un message


Alias de imap_listscan

  • « imap_savebody
  • imap_scanmailbox »
  • PHP Manual
  • Fonctions IMAP
  • Alias de imap_listscan

imap_scan

(PHP 4, PHP 5, PHP 7)

imap_scan — Alias de imap_listscan()

Description

Cette fonction est un alias de : imap_listscan().


Alias de imap_listscan

  • « imap_scan
  • imap_search »
  • PHP Manual
  • Fonctions IMAP
  • Alias de imap_listscan

imap_scanmailbox

(PHP 4, PHP 5, PHP 7)

imap_scanmailbox — Alias de imap_listscan()

Description

Cette fonction est un alias de : imap_listscan().


Retourne un tableau de messages après recherche

  • « imap_scanmailbox
  • imap_set_quota »
  • PHP Manual
  • Fonctions IMAP
  • Retourne un tableau de messages après recherche

imap_search

(PHP 4, PHP 5, PHP 7)

imap_search — Retourne un tableau de messages après recherche

Description

array imap_search ( resource $imap_stream , string $criteria [, int $options = SE_FREE [, string $charset = NIL ]] )

Effectue une recherche dans la boîte aux lettres courante, sur le flux IMAP courant.

Par exemple, pour rechercher les messages non répondus, envoyés par maman, vous pouvez utiliser : "UNANSWERED FROM maman". Les recherches semblent insensibles à la casse. Cette liste de critères est issue du code d'un client C UW et peut être incomplète ou imprécise. (voir aussi » RFC2060, section 6.4.4).

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

criteria

Une chaîne de caractères, délimitée par des espaces, dans laquelle les mots-clés suivants sont acceptés. Tous les arguments à plusieurs mots (e.g. FROM "joey smith") doivent être placés entre guillemets. Les résultats devront correspondre à toutes les entrées criteria.

  • ALL - retourne tous les messages qui vérifient le reste du critère.
  • ANSWERED - tous les messages avec le flag \\ANSWERED
  • BCC "string" - tous les messages avec la chaîne "string" dans le champ Bcc
  • BEFORE "date" - tous les messages avec Date : avant "date"
  • BODY "string" - tous les messages avec "string" dans le corps
  • CC "string" - tous les messages avec "string" dans le champ Cc
  • DELETED - tous les messages effacés
  • FLAGGED - tous les messages avec le flag \\FLAGGED (parfois interprété comme Important ou Urgent)
  • FROM "string" - tous les messages avec la chaîne "string" dans le champ From
  • KEYWORD "string" - tous les messages avec la chaîne "string" comme mot-clé
  • NEW - tous les nouveaux messages
  • OLD - tous les anciens messages
  • ON "date" - tous les messages avec la date "date" comme champ Date
  • RECENT - tous les messages avec le flag \\RECENT
  • SEEN - tous les messages lus (avec le flag\\SEEN flag)
  • SINCE "date" - tous les messages avec la date Date: après "date"
  • SUBJECT "string" - tous les messages avec la chaîne "string" dans le champ Subject
  • TEXT "string" - tous les messages avec le texte "string"
  • TO "string" - tous les messages avec la chaîne "string" dans le champ To
  • UNANSWERED - tous les messages non répondus
  • UNDELETED - tous les messages non effacés
  • UNFLAGGED - tous les messages non marqués
  • UNKEYWORD "string" - tous les messages ne contenant pas le mot-clé "string"
  • UNSEEN - tous les messages non lus

options

Les valeurs pour les flags sont SE_UID, qui fait que le tableau réponse contient les UID plutôt que les numéros de séquence.

charset

Valeurs de retour

Retourne un tableau de numéro de messages ou d'UID.

Retourne FALSE si la recherche n'est pas comprise, ou bien qu'aucun message n'a été trouvé.

Exemples

Exemple #1 Exemple avec imap_search()

<?php
$conn   = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);

$some   = imap_search($conn, 'SUBJECT "HOWTO be Awesome" SINCE "8 August 2008"', SE_UID);
$msgnos = imap_search($conn, 'ALL');
$uids   = imap_search($conn, 'ALL', SE_UID);

print_r($some);
print_r($msgnos);
print_r($uids);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 4
    [1] => 6
    [2] => 11
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)
Array
(
    [0] => 1
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 11
    [5] => 12
)

Voir aussi

  • imap_listscan() - Lit la liste des boîtes aux lettres, et y recherche une chaîne


Modifie le quota d'une boîte aux lettres

  • « imap_search
  • imap_setacl »
  • PHP Manual
  • Fonctions IMAP
  • Modifie le quota d'une boîte aux lettres

imap_set_quota

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

imap_set_quota — Modifie le quota d'une boîte aux lettres

Description

bool imap_set_quota ( resource $imap_stream , string $quota_root , int $quota_limit )

Modifie le quota de la boîte aux lettres quota_root.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

quota_root

La boîte aux lettres dont on doit modifier le quota. Elle doit suivre le format standard IMAP pour une boîte aux lettres : user.name.

quota_limit

La taille maximale (en Ko) pour la boîte quota_root

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imap_set_quota()

<?php
$mbox = imap_open("{imap.example.org:143}", "mailadmin", "password");

if (!imap_set_quota($mbox, "user.kalowsky", 3000)) {
    echo "Échec lors de la définition du quota\n";
    return;
}

imap_close($mbox);
?>

Notes

imap_get_quota() ne fonctionne actuellement qu'avec les bibliothèques c-client2000.

imap_set_quota() requiert que imap_stream ait été ouvert avec un compte d'administrateur, pour avoir les droits nécessaires : elle ne fonctionnera avec aucun autre utilisateur.

Voir aussi

  • imap_open() - Ouvre un flux IMAP vers une boîte aux lettres
  • imap_get_quota() - Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles


Modifie le ACL de la boîte aux lettres

  • « imap_set_quota
  • imap_setflag_full »
  • PHP Manual
  • Fonctions IMAP
  • Modifie le ACL de la boîte aux lettres

imap_setacl

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imap_setacl — Modifie le ACL de la boîte aux lettres

Description

bool imap_setacl ( resource $imap_stream , string $mailbox , string $id , string $rights )

Définit l'ACL pour la boîte aux lettres donnée.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

id

L'identifiant de l'utilisateur dont on veut définir les droits.

rights

Les droits à donner à l'utilisateur. Le fait de passer une chaîne vide effacera l'ACL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Cette fonction n'est actuellement disponible que pour les utilisateurs de la bibliothèque c-client2000 ou supérieur.

Voir aussi

  • imap_getacl() - Retourne le ACL pour la boîte aux lettres


Positionne un drapeau sur un message

  • « imap_setacl
  • imap_sort »
  • PHP Manual
  • Fonctions IMAP
  • Positionne un drapeau sur un message

imap_setflag_full

(PHP 4, PHP 5, PHP 7)

imap_setflag_full — Positionne un drapeau sur un message

Description

bool imap_setflag_full ( resource $imap_stream , string $sequence , string $flag [, int $options = NIL ] )

imap_setflag_full() affecte le flag spécifié aux messages de la sequence donnée.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

sequence

Une séquence de numéro de messages. Vous pouvez énumérer les messages désirés avec la syntaxe X,Y, ou récupérer tous les messages d'un intervalle avec la syntaxe X:Y

flag

Les flags que vous pouvez modifier sont \Seen, \Answered, \Flagged, \Deleted, et \Draft (comme défini dans la » RFC2060).

options

options est un masque de bits, qui accepte uniquement la valeur suivante :

  • ST_UID - la séquence contient des UID au lieu de numéros de séquence.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imap_setflag_full()

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password")
     or die("Connexion impossible : " . imap_last_error());

$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");

echo gettype($status) . "\n";
echo $status . "\n";

imap_close($mbox);
?>

Voir aussi

  • imap_clearflag_full() - Supprime un flag (drapeau) sur un message


Trie des messages

  • « imap_setflag_full
  • imap_status »
  • PHP Manual
  • Fonctions IMAP
  • Trie des messages

imap_sort

(PHP 4, PHP 5, PHP 7)

imap_sort — Trie des messages

Description

array imap_sort ( resource $imap_stream , int $criteria , int $reverse [, int $options = 0 [, string $search_criteria = NULL [, string $charset = NIL ]]] )

Récupère et trie les numéros de messages en fonction des paramètres donnés.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

criteria

Les critères criteria peuvent être un (et un seul) parmi les suivants :

  • SORTDATE : date du message
  • SORTARRIVAL : date d'arrivée
  • SORTFROM : nom de la première boîte aux lettres de l'adresse d'origine (From address)
  • SORTSUBJECT : sujet du message
  • SORTTO : nom de la première boîte aux lettres de destination (To address)
  • SORTCC : nom de la boîte aux lettres de copie cachée (cc address)
  • SORTSIZE : taille du message en octets

reverse

vaut 1 pour signifier : tri inverse

options

Les flags options dont des masques de bits, d'un ou plusieurs des éléments suivants :

  • SE_UID : retourne des UID à la place de numéros
  • SE_NOPREFETCH : ne pas prétélécharger les messages trouvés

search_criteria

charset

Valeurs de retour

Retourne un tableau de numéros de messages triés en fonction des paramètres fournis.


Retourne les informations de statut sur une boîte aux lettres

  • « imap_sort
  • imap_subscribe »
  • PHP Manual
  • Fonctions IMAP
  • Retourne les informations de statut sur une boîte aux lettres

imap_status

(PHP 4, PHP 5, PHP 7)

imap_status — Retourne les informations de statut sur une boîte aux lettres

Description

object imap_status ( resource $imap_stream , string $mailbox , int $options )

Retourne les informations de statut sur la boîte aux lettres mailbox.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

options

Les drapeaux valides sont :

  • SA_MESSAGES - met la valeur de $status->messages au nombre de messages dans la boîte aux lettres.
  • SA_RECENT - met la valeur de $status->recent au nombre de messages récents dans la boîte aux lettres.
  • SA_UNSEEN - met la valeur de $status->unseen au nombre de messages non lus dans la boîte aux lettres.
  • SA_UIDNEXT - met la valeur de $status->uidnext à la prochaine valeur d'uid qui sera utilisée.
  • SA_UIDVALIDITY - met la valeur de $status->uidvalidity à une constante, qui change lorsque l'uid de la boîte aux lettres n'est plus valide.
  • SA_ALL - fixe toutes les valeurs précédentes.

Valeurs de retour

Cette fonction retourne un objet contenant les informations sur le statut. L'objet a les propriétés suivantes : messages, recent, unseen, uidnext, et uidvalidity.

flags est également défini, qui contient un masque contenant une des constantes ci-dessus.

Exemples

Exemple #1 Exemple avec imap_status()

<?php
$mbox = imap_open("{imap.example.com}", "username", "password", OP_HALFOPEN)
      or die("Connexion impossible : " . imap_last_error());

$status = imap_status($mbox, "{imap.example.org}INBOX", SA_ALL);
if ($status) {
  echo "Messages :   " . $status->messages    . "<br />\n";
  echo "Récent :     " . $status->recent      . "<br />\n";
  echo "Non lu :     " . $status->unseen      . "<br />\n";
  echo "Prochain UID:    " . $status->uidnext     . "<br />\n";
  echo "Validité de l'UID:" . $status->uidvalidity . "<br />\n";
} else {
  echo "imap_status a échoué : " . imap_last_error() . "\n";
}

imap_close($mbox);
?>


Souscrit à une boîte aux lettres

  • « imap_status
  • imap_thread »
  • PHP Manual
  • Fonctions IMAP
  • Souscrit à une boîte aux lettres

imap_subscribe

(PHP 4, PHP 5, PHP 7)

imap_subscribe — Souscrit à une boîte aux lettres

Description

bool imap_subscribe ( resource $imap_stream , string $mailbox )

Souscrit à une boîte aux lettres.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • imap_unsubscribe() - Termine la souscription à une boîte aux lettres


Retourne l'arbre des messages organisés par thread

  • « imap_subscribe
  • imap_timeout »
  • PHP Manual
  • Fonctions IMAP
  • Retourne l'arbre des messages organisés par thread

imap_thread

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imap_thread — Retourne l'arbre des messages organisés par thread

Description

array imap_thread ( resource $imap_stream [, int $options = SE_FREE ] )

Retourne l'arbre des messages organisés par thread.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

options

Valeurs de retour

imap_thread() retourne un tableau associatif contenant un arbre de messages organisés par thread par REFERENCES ou FALSE en cas d'erreur.

Chaque message dans la boîte aux lettres courante sera représenté par des entrées sous forme d'arbre dans le tableau résultant :

  • $thread["XX.num"] - numéro du message courant

  • $thread["XX.next"]

  • $thread["XX.branch"]

Exemples

Exemple #1 Exemple avec imap_thread()

<?php

// Ici, nous affichons les threads d'un newsgroup, en HTML

$nntp = imap_open('{news.example.com:119/nntp}some.newsgroup', '', '');
$threads = imap_thread($nntp);

foreach ($threads as $key => $val) {
  $tree = explode('.', $key);
  if ($tree[1] == 'num') {
    $header = imap_headerinfo($nntp, $val);
    echo "<ul>\n\t<li>" . $header->fromaddress . "\n";
  } elseif ($tree[1] == 'branch') {
    echo "\t</li>\n</ul>\n";
  }
}

imap_close($nntp);

?>


Configure ou retourne le timeout

  • « imap_thread
  • imap_uid »
  • PHP Manual
  • Fonctions IMAP
  • Configure ou retourne le timeout

imap_timeout

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

imap_timeout — Configure ou retourne le timeout

Description

mixed imap_timeout ( int $timeout_type [, int $timeout = -1 ] )

Définit ou retourne le timeout imap.

Liste de paramètres

timeout_type

Une valeur parmi les suivantes : IMAP_OPENTIMEOUT, IMAP_READTIMEOUT, IMAP_WRITETIMEOUT, ou IMAP_CLOSETIMEOUT.

timeout

Le timeout, en secondes.

Valeurs de retour

Si le paramètre timeout est défini, cette fonction retourne TRUE en cas de succès et FALSE si une erreur survient.

Si timeout n'est pas fourni ou s'il est évalué à -1, le timeout courant sera retourné sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec imap_timeout()

<?php

echo "Le timeout courant est " . imap_timeout(IMAP_READTIMEOUT) . "\n";

?>


Retourne l'UID d'un message

  • « imap_timeout
  • imap_undelete »
  • PHP Manual
  • Fonctions IMAP
  • Retourne l'UID d'un message

imap_uid

(PHP 4, PHP 5, PHP 7)

imap_uid — Retourne l'UID d'un message

Description

int imap_uid ( resource $imap_stream , int $msg_number )

imap_uid() retourne l'UID pour le message msgno. Un UID est un identifiant unique que ne change jamais, alors que le numéro du message dans la liste des messages peut changer à toute modification de la boîte aux lettres.

C'est la fonction inverse de imap_msgno().

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

msg_number

Le numéro du message.

Valeurs de retour

L'UID d'un message donné.

Notes

Note:

Cette fonctionnalité n'est pas supportée par les boîtes aux lettres POP3.

Voir aussi

  • imap_msgno() - Retourne le numéro de séquence du message pour un UID donné


Enlève la marque d'effacement d'un message

  • « imap_uid
  • imap_unsubscribe »
  • PHP Manual
  • Fonctions IMAP
  • Enlève la marque d'effacement d'un message

imap_undelete

(PHP 4, PHP 5, PHP 7)

imap_undelete — Enlève la marque d'effacement d'un message

Description

bool imap_undelete ( resource $imap_stream , int $msg_number [, int $flags = 0 ] )

Enlève la marque d'effacement du message msg_number, placée avec imap_delete() ou imap_mail_move().

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

msg_number

Le numéro du message

flags

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • imap_delete() - Marque le fichier pour l'effacement, dans la boîte aux lettres courante
  • imap_mail_move() - Déplace des messages dans une boîte aux lettres


Termine la souscription à une boîte aux lettres

  • « imap_undelete
  • imap_utf7_decode »
  • PHP Manual
  • Fonctions IMAP
  • Termine la souscription à une boîte aux lettres

imap_unsubscribe

(PHP 4, PHP 5, PHP 7)

imap_unsubscribe — Termine la souscription à une boîte aux lettres

Description

bool imap_unsubscribe ( resource $imap_stream , string $mailbox )

Termine la souscription à la boîte aux lettres mailbox.

Liste de paramètres

imap_stream

Un flux IMAP retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • imap_subscribe() - Souscrit à une boîte aux lettres


Décode une chaîne encodée en UTF-7 modifié

  • « imap_unsubscribe
  • imap_utf7_encode »
  • PHP Manual
  • Fonctions IMAP
  • Décode une chaîne encodée en UTF-7 modifié

imap_utf7_decode

(PHP 4, PHP 5, PHP 7)

imap_utf7_decode — Décode une chaîne encodée en UTF-7 modifié

Description

string imap_utf7_decode ( string $text )

imap_utf7_decode() décode la chaîne UTF-7 text en ISO-8859-1.

Cette fonction sert à encoder les noms de boîtes aux lettres qui contiennent des caractères internationaux hors de l'espace ASCII.

Liste de paramètres

text

L'encodage UTF-7 modifié est défini dans la » RFC 2060, section 5.1.3 (l'encodage UTF-7 original est lui défini dans » RFC1642).

Valeurs de retour

Retourne une chaîne de caractères encodée ISO-8859-1 et contenant la même séquence de caractères que dans le paramètre text, ou FALSE si text contient une séquence UTF-7 modifiée invalide ou si text contient un caractère qui ne fait pas partie du jeu de caractères ISO-8859-1.

Voir aussi

  • imap_utf7_encode() - Convertit une chaîne ISO-8859-1 en texte UTF-7 modifié


Convertit une chaîne ISO-8859-1 en texte UTF-7 modifié

  • « imap_utf7_decode
  • imap_utf8 »
  • PHP Manual
  • Fonctions IMAP
  • Convertit une chaîne ISO-8859-1 en texte UTF-7 modifié

imap_utf7_encode

(PHP 4, PHP 5, PHP 7)

imap_utf7_encode — Convertit une chaîne ISO-8859-1 en texte UTF-7 modifié

Description

string imap_utf7_encode ( string $data )

Convertit une chaîne data ISO-8859-1 en texte UTF-7 modifié.

Cette fonction sert à encoder les noms de boîtes aux lettres qui contiennent des caractères internationaux hors de l'espace ASCII.

Liste de paramètres

data

Une chaîne de caractères ISO-8859-1.

Valeurs de retour

Retourne les données data encodées avec l'encodage UTF-7 modifié tel que défini dans la » RFC 2060, section 5.1.3 (l'encodage UTF-7 original est lui défini dans » RFC1642).

Voir aussi

  • imap_utf7_decode() - Décode une chaîne encodée en UTF-7 modifié


Convertit du texte au format MIME en UTF-8

  • « imap_utf7_encode
  • Mail »
  • PHP Manual
  • Fonctions IMAP
  • Convertit du texte au format MIME en UTF-8

imap_utf8

(PHP 4, PHP 5, PHP 7)

imap_utf8 — Convertit du texte au format MIME en UTF-8

Description

string imap_utf8 ( string $mime_encoded_text )

Convertit le texte mime_encoded_text en UTF-8.

Liste de paramètres

mime_encoded_text

Une chaîne de caractères encodé MIME. Les spécifications de MIME et UTF8 sont décrites dans les » RFC2047 et » RFC2044.

Valeurs de retour

Retourne une chaîne de caractères encodée UTF-8.

Voir aussi

  • imap_mime_header_decode() - Décode les éléments MIME d'un en-tête


Mail

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Mail
    • ezmlm_hash — Calcule le hachage demandé par EZMLM
    • mail — Envoi de mail


  • « Mail
  • Installation/Configuration »
  • PHP Manual
  • Mail
  • Introduction

Introduction

La fonction mail() permet d'envoyer un mail.


Pré-requis

Pour que la fonction mail() soit disponible, il faut que PHP ait accès au service sendmail sur le serveur, au moment de la compilation. Si vous utilisez un autre programme de mail, comme qmail ou postfix, assurez-vous d'utiliser les bonnes API. PHP va commencer à chercher sendmail dans votre PATH, puis, dans les dossiers suivants : /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. Il est hautement recommandé d'avoir sendmail de disponible dans votre PATH. De plus, l'utilisateur qui compile PHP doit avoir le droit d'accéder à l'exécutable sendmail.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour le mail
Nom | Défaut | Modifiable | Historique
mail.add_x_header | "0" | PHP_INI_PERDIR | Disponible depuis PHP 5.3.0.
mail.log | NULL | PHP_INI_PERDIR | Disponible depuis PHP 5.3.0. (PHP_INI_SYSTEM|PHP_INI_PERDIR)
mail.force_extra_parameters | NULL | PHP_INI_PERDIR | Available since PHP 5.0.0. (PHP_INI_SYSTEM|PHP_INI_PERDIR)
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL | Disponible depuis PHP PHP 4.3.0.
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | PHP_INI_SYSTEM |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mail.add_x_header bool

Ajoute un en-tête X-PHP-Originating-Script qui inclue l'UID du script, suivi par le nom du fichier.

mail.log string

Le chemin de l'historique de tous les appels à la fonction mail(). Les entrées de l'historique incluent le chemin complet vers le script, le numéro de la ligne, les adresses To ainsi que les en-têtes.

mail.force_extra_parameters string

Permet de forcer l'ajout du paramètre spécifié en tant que paramètre supplémentaire pour sendmail. Ces paramètres prendront la place du cinquième paramètre de la fonction mail() quoi qu'il arrive, même en safe mode.

smtp string

Sous Windows seulement : nom de l'hôte ou adresse IP du SMTP que PHP doit utiliser pour envoyer un mail avec la fonction mail().

smtp_port int

Sous Windows seulement : numéro de port à utiliser pour se connecter au serveur SMTP lors de l'envoi de mail avec la fonction mail(); par défaut, c'est 25. Uniquement Disponible depuis PHP 4.3.0.

sendmail_from string

Sous Windows seulement : valeur du champ "From:" qui doit être utilisée lors de l'envoi de mail. Cette directive définira également l'en-tête "Return-Path:".

sendmail_path string

Localisation du programme sendmail : habituellement /usr/sbin/sendmail ou /usr/lib/sendmail. configure essaye de repérer la présence de sendmail par lui-même, et affecte ce résultat par défaut. En cas de problème de localisation, vous pouvez établir une nouvelle valeur par défaut ici.

Tout système n'utilisant pas sendmail doit établir cette directive à la valeur chemin du programme de substitution qui remplace le serveur de mail, si celui-ci existe. Par exemple, les utilisateurs de » Qmail peuvent la définir à /var/qmail/bin/sendmail ou /var/qmail/bin/qmail-inject.

qmail-inject ne requiert aucune option pour traiter correctement le mail.

Cette directive fonctionne également sous Windows. Si elle est définie, smtp, smtp_port et sendmail_from sont ignorés et la commande spécifiée est exécutée.


  • « Types de ressources
  • Fonctions Mail »
  • PHP Manual
  • Mail
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions Mail

Sommaire

  • ezmlm_hash — Calcule le hachage demandé par EZMLM
  • mail — Envoi de mail


Calcule le hachage demandé par EZMLM

  • « Fonctions Mail
  • mail »
  • PHP Manual
  • Fonctions Mail
  • Calcule le hachage demandé par EZMLM

ezmlm_hash

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ezmlm_hash — Calcule le hachage demandé par EZMLM

Description

int ezmlm_hash ( string $addr )

ezmlm_hash() calcule le hachage nécessaire lors de la gestion de listes de diffusion EZMLM avec une base de données MySQL.

Liste de paramètres

addr

L'adresse E-Mail qui doit être hachée.

Valeurs de retour

La valeur du hachage de addr.

Exemples

Exemple #1 Calcul du hachage et enregistrement d'un utilisateur de liste de diffusion

<?php

     $user = "joecool@example.com";
     $hash = ezmlm_hash($user);
     $query = sprintf("INSERT INTO sample VALUES (%s, '%s')", $hash, $user);
     $db->query($query); // utilisation de l'interface PHPLIB

?>


Envoi de mail

  • « ezmlm_hash
  • Mailparse »
  • PHP Manual
  • Fonctions Mail
  • Envoi de mail

mail

(PHP 4, PHP 5, PHP 7)

mail — Envoi de mail

Description

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

Envoie un mail.

Liste de paramètres

to

Le ou les destinataires du mail.

Le formatage de cette chaîne doit correspondre avec la » RFC 2822. Voici quelques exemples :

  • destinataire@example.com
  • destinataire@example.com, autre_destinataire@example.com
  • Destinataire <destinataire@example.com>
  • Destinataire <destinataire@example.com>, Autre destinataire <autre_destinataire@example.com>

subject

Sujet du mail à envoyer.

Attention

Le sujet doit satisfaire à la » RFC 2047.

message

Message à envoyer.

Chaque ligne doit être séparée par un caractère CRLF (\r\n). Les lignes ne doivent pas comporter plus de 70 caractères.

Attention

(Windows uniquement) Lorsque PHP discute directement avec un serveur SMTP, si un point est trouvé en début de ligne, il sera supprimé. Pour éviter ce comportement, remplacez ces occurrences par un double point.

<?php
     $text = str_replace("\n.", "\n..", $text);
?>

additional_headers (optionnel)

Chaîne à insérer à la fin des en-têtes du mail.

Ce paramètre est typiquement utilisé pour ajouter des en-têtes supplémentaires (From, Cc et Bcc). Les en-têtes supplémentaires doivent être séparés par un caractère CRLF (\r\n). Si des données externes sont utilisées pour composer cet en-tête, elles doivent être d'abord nettoyées afin de ne pas injecter des données non désirées dans les en-têtes.

Note:

Lors de l'envoi d'un mail, le mail doit contenir un en-tête From. Il peut être défini par le paramètre additional_headers, ou un par défaut peut être défini dans le php.ini.

Ne pas faire ceci causera un message d'erreur similaire à Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. L'en-tête From, sous Windows, définit également l'en-tête Return-Path.

Note:

Si le message n'est pas reçu, essayez d'utiliser uniquement un caractère LF (\n). Quelques agents de transfert de mail Unix (par exemple » qmail) remplacent le caractère LF par le caractère CRLF automatiquement (ce qui revient à doubler le caractère CR si le caractère CRLF est utilisé). Ceci doit être un dernier recours car cela ne correspond pas à la » RFC 2822.

additional_parameters (optionnel)

Le paramètre additional_parameters peut être utilisé pour passer des drapeaux additionnels comme options à la ligne de commande configurée pour être utilisée pour envoyer les mails en utilisant le paramètre de configuration sendmail_path. Par exemple, ceci peut être utilisé pour définir l'adresse d'expéditeur de l'enveloppe lors de l'utilisation de sendmail avec l'option -f.

Ce paramètre est échappé par la fonction escapeshellcmd() en interne afin de prévenir l'exécution d'une commande. La fonction escapeshellcmd() empêche l'exécution d'une commande, mais autorise l'ajout de paramètres supplémentaires. Pour des raisons de sécurité, il est recommandé pour l'utilisateur de nettoyer ce paramètre afin d'éviter l'ajout de paramètres non désirés à la commande shell.

Depuis que la fonction escapeshellcmd() est appliquée automatiquement, quelques caractères autorisés dans les adresses emails par les RFCs d'internet ne peuvent plus être utilisés. La fonction mail() ne peut autoriser ces caractères, aussi, dans les programme où leur utilisation est nécessaire, vous devriez utiliser une méthode alternative pour l'envoi des emails (comme l'utilisation d'un framework ou d'une librairie.

L'utilisateur sous lequel tourne le serveur web doit être ajouté en tant qu'utilisateur de confiance dans la configuration de sendmail afin que l'en-tête X-Warning ne soit pas ajouté au message lorsque l'expéditeur de l'enveloppe (-f) est défini en utilisant cette méthode. Pour les utilisateurs de sendmail, ce fichier est /etc/mail/trusted-users.

Valeurs de retour

Retourne TRUE si le mail a été accepté pour livraison, FALSE sinon.

Il est important de noter que ce n'est pas parce que le mail a été accepté pour livraison qu'il arrivera à destination.

Historique

Version | Description
4.2.3 | Le paramètre additional_parameters est désactivé dans le safe_mode et la fonction mail() affichera un message d'alerte et retournera FALSE lors de son utilisation.

Exemples

Exemple #1 Envoi d'un mail

Utilisation de la fonction mail() pour envoyer un mail simple :

<?php
// Le message
$message = "Line 1\r\nLine 2\r\nLine 3";

// Dans le cas où nos lignes comportent plus de 70 caractères, nous les coupons en utilisant wordwrap()
$message = wordwrap($message, 70, "\r\n");

// Envoi du mail
mail('caffeinated@example.com', 'Mon Sujet', $message);
?>

Exemple #2 Envoi d'un mail avec des en-têtes supplémentaires

L'ajout d'en-têtes simples, spécifiant au MUA les adresses "From" et "Reply-To" :

<?php
     $to      = 'personne@example.com';
     $subject = 'le sujet';
     $message = 'Bonjour !';
     $headers = 'From: webmaster@example.com' . "\r\n" .
     'Reply-To: webmaster@example.com' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();

     mail($to, $subject, $message, $headers);
 ?>

Exemple #3 Envoi d'un mail avec un paramètre de ligne de commande additionnel

Le paramètre additional_parameters peut être utilisé pour passer un paramètre additionnel au programme configuré à être utilisé pour envoyer les mails en utilisant sendmail_path.

<?php
     mail('personne@example.com', 'le sujet', 'le message', null,
     '-fwebmaster@example.com');
?>

Exemple #4 Envoi de mail HTML

Il est également possible d'envoyer des mails HTML avec la fonction mail().

<?php
     // Plusieurs destinataires
     $to  = 'aidan@example.com' . ', '; // notez la virgule
     $to .= 'wez@example.com';

     // Sujet
     $subject = 'Calendrier des anniversaires pour Août';

     // message
     $message = '
     <html>
      <head>
       <title>Calendrier des anniversaires pour Août</title>
      </head>
      <body>
       <p>Voici les anniversaires à venir au mois d\'Août !</p>
       <table>
        <tr>
         <th>Personne</th><th>Jour</th><th>Mois</th><th>Année</th>
        </tr>
        <tr>
         <td>Josiane</td><td>3</td><td>Août</td><td>1970</td>
        </tr>
        <tr>
         <td>Emma</td><td>26</td><td>Août</td><td>1973</td>
        </tr>
       </table>
      </body>
     </html>
     ';

     // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
     $headers  = 'MIME-Version: 1.0' . "\r\n";
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

     // En-têtes additionnels
     $headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
     $headers .= 'From: Anniversaire <anniversaire@example.com>' . "\r\n";
     $headers .= 'Cc: anniversaire_archive@example.com' . "\r\n";
     $headers .= 'Bcc: anniversaire_verif@example.com' . "\r\n";

     // Envoi
     mail($to, $subject, $message, $headers);
?>

Note:

Si vous prévoyez d'envoyer des mails HTML ou autrement plus complexes, il est recommandé d'utiliser le paquet PEAR » PEAR::Mail_Mime.

Notes

Note:

L'implémentation de la fonction mail() sous Windows diffère de manière significative avec l'implémentation Unix. Tout d'abord, il n'utilise pas un programme local pour composer les messages, mais opère uniquement et directement sur les sockets, ce qui signifie qu'un MTA est nécessairement à l'écoute sur un socket du réseau (qui peut être soit sur le réseau local ou sur une machine distante).

Deuxièmement, les en-têtes personnalisés comme From:, Cc:, Bcc: et Date: ne sont pas interprétés par le MTA dans un premier temps, mais sont analysés par PHP.

De plus, le paramètre to ne doit pas être une adresse sous la forme "Quelque chose <quelqu_un@example.com>". La commande mail n'analysera pas correctement ceci lors de la discussion avec le MTA.

Note:

Il est important de noter que la fonction mail() n'est pas conseillée pour traiter de gros volumes de mails dans une boucle. Cette fonction ouvre et ferme un socket SMTP pour chaque mail, ce qui n'est pas très efficace.

Pour envoyer de gros volumes de mails, reportez-vous aux paquets » PEAR::Mail et » PEAR::Mail_Queue.

Note:

Les RFC suivantes peuvent être utiles : » RFC 1896, » RFC 2045, » RFC 2046, » RFC 2047, » RFC 2048, » RFC 2049 et » RFC 2822.

Voir aussi

  • imap_mail() - Envoie un message mail
  • » PEAR::Mail
  • » PEAR::Mail_Mime


Mailparse

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Mailparse
    • mailparse_determine_best_xfer_encoding — Détermine le meilleur encodage pour un fichier
    • mailparse_msg_create — Crée une ressource email mime
    • mailparse_msg_extract_part_file — Extrait et décode une section de message
    • mailparse_msg_extract_part — Extrait et décode une section de message
    • mailparse_msg_extract_whole_part_file — Extrait une section de message incluant les en-têtes sans décoder l'encodage de transfert
    • mailparse_msg_free — Libère une ressource MIME
    • mailparse_msg_get_part_data — Retourne un tableau associatif avec des informations sur le message
    • mailparse_msg_get_part — Retourne une ressource sur une section d'un message MIME
    • mailparse_msg_get_structure — Retourne un tableau avec les différentes sections MIME du message
    • mailparse_msg_parse_file — Analyse un fichier
    • mailparse_msg_parse — Analyse incrémentalement des données dans un buffer
    • mailparse_rfc822_parse_addresses — Analyse des adresses
    • mailparse_stream_encode — Lit les données dans un fichier, applique l'encodage et envoie le résultat à destfp
    • mailparse_uudecode_all — Scanne les données du fichier et extrait tous les fichiers encodés qui s'y trouvent


Introduction

Mailparse est une extension pour analyser et travailler avec les messages électroniques. Il peut gérer les messages répondant aux » RFC 822 et » RFC 2045 (MIME).

Mailparse est basé sur les flux, ce qui signifie qu'il ne conserve pas en mémoire les copies des fichiers dont il s'occupe - ainsi, il est peut couteux en ressource lorsqu'il traite de gros messages.

Note:

Mailparse nécessite l'extension mbstring.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 4.2.0.


Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mailparse.

Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support mailparse en utilisant l'option de configuration --enable-mailparse .

Les utilisateurs de Windows doivent activer la bibliothèque php_mailparse.dll dans le php.ini pour pouvoir utiliser ces fonctions. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration mailparse
Nom | Défaut | Modifiable | Historique
mailparse.def_charset | "us-ascii" | PHP_INI_ALL | Disponible depuis PHP 4.1.0. Supprimé depuis PHP 4.2.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MAILPARSE_EXTRACT_OUTPUT (entier)
MAILPARSE_EXTRACT_STREAM (entier)
MAILPARSE_EXTRACT_RETURN (entier)


Fonctions Mailparse

Sommaire

  • mailparse_determine_best_xfer_encoding — Détermine le meilleur encodage pour un fichier
  • mailparse_msg_create — Crée une ressource email mime
  • mailparse_msg_extract_part_file — Extrait et décode une section de message
  • mailparse_msg_extract_part — Extrait et décode une section de message
  • mailparse_msg_extract_whole_part_file — Extrait une section de message incluant les en-têtes sans décoder l'encodage de transfert
  • mailparse_msg_free — Libère une ressource MIME
  • mailparse_msg_get_part_data — Retourne un tableau associatif avec des informations sur le message
  • mailparse_msg_get_part — Retourne une ressource sur une section d'un message MIME
  • mailparse_msg_get_structure — Retourne un tableau avec les différentes sections MIME du message
  • mailparse_msg_parse_file — Analyse un fichier
  • mailparse_msg_parse — Analyse incrémentalement des données dans un buffer
  • mailparse_rfc822_parse_addresses — Analyse des adresses
  • mailparse_stream_encode — Lit les données dans un fichier, applique l'encodage et envoie le résultat à destfp
  • mailparse_uudecode_all — Scanne les données du fichier et extrait tous les fichiers encodés qui s'y trouvent


Détermine le meilleur encodage pour un fichier

  • « Fonctions Mailparse
  • mailparse_msg_create »
  • PHP Manual
  • Fonctions Mailparse
  • Détermine le meilleur encodage pour un fichier

mailparse_determine_best_xfer_encoding

(PECL mailparse >= 0.9.0)

mailparse_determine_best_xfer_encoding — Détermine le meilleur encodage pour un fichier

Description

string mailparse_determine_best_xfer_encoding ( resource $fp )

Détermine le meilleur encodage pour le contenu du fichier fourni.

Liste de paramètres

fp

Un pointeur de fichier valide, qui peut être lu.

Valeurs de retour

Retourne un encodage de caractères supporté par le module mbstring.

Exemples

Exemple #1 Exemple avec mailparse_determine_best_xfer_encoding()

<?php

$fp = fopen('somemail.eml', 'r');
echo 'Meilleur encodage : ' . mailparse_determine_best_xfer_encoding($fp);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Meilleur encodage : 7bit


Crée une ressource email mime

  • « mailparse_determine_best_xfer_encoding
  • mailparse_msg_extract_part_file »
  • PHP Manual
  • Fonctions Mailparse
  • Crée une ressource email mime

mailparse_msg_create

(PECL mailparse >= 0.9.0)

mailparse_msg_create — Crée une ressource email mime

Description

resource mailparse_msg_create ( void )

Crée une ressource email MIME.

Valeurs de retour

Retourne un gestionnaire qui pourra être utilisé pour analyser un message.

Voir aussi

  • mailparse_msg_free() - Libère une ressource MIME
  • mailparse_msg_parse_file() - Analyse un fichier


Extrait et décode une section de message

  • « mailparse_msg_create
  • mailparse_msg_extract_part »
  • PHP Manual
  • Fonctions Mailparse
  • Extrait et décode une section de message

mailparse_msg_extract_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_part_file — Extrait et décode une section de message

Description

string mailparse_msg_extract_part_file ( resource $mimemail , mixed $filename [, callable $callbackfunc ] )

Extrait et décode une section de message depuis le fichier fourni.

Le contenu de la section sera encodé suivant son encodage - base64, quoted-printable et texte uuencoded sont supportés.

Liste de paramètres

mimemail

Une ressource valide MIME, créée avec la fonction mailparse_msg_create().

filename

Peut être un nom de fichier ou un flux valide.

callbackfunc

Si défini, ce peut être soit un callback valide qui sera passé à la section extraite, soit NULL pour faire que cette fonction retourne la section extraite.

Si non fourni, le contenu sera envoyé à "stdout".

Valeurs de retour

Si callbackfunc ne vaut pas NULL retourne TRUE en cas de succès.

Si callbackfunc vaut NULL, retourne la section extraite sous la forme d'une chaîne de caractères.

Retourne FALSE si une erreur survient.

Voir aussi

  • mailparse_msg_extract_part() - Extrait et décode une section de message
  • mailparse_msg_extract_whole_part_file() - Extrait une section de message incluant les en-têtes sans décoder l'encodage de transfert


Extrait et décode une section de message

  • « mailparse_msg_extract_part_file
  • mailparse_msg_extract_whole_part_file »
  • PHP Manual
  • Fonctions Mailparse
  • Extrait et décode une section de message

mailparse_msg_extract_part

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_part — Extrait et décode une section de message

Description

void mailparse_msg_extract_part ( resource $mimemail , string $msgbody [, callable $callbackfunc ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.

msgbody

callbackfunc

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • mailparse_msg_extract_part_file() - Extrait et décode une section de message
  • mailparse_msg_extract_whole_part_file() - Extrait une section de message incluant les en-têtes sans décoder l'encodage de transfert


Extrait une section de message incluant les en-têtes sans décoder l'encodage de transfert

  • « mailparse_msg_extract_part
  • mailparse_msg_free »
  • PHP Manual
  • Fonctions Mailparse
  • Extrait une section de message incluant les en-têtes sans décoder l'encodage de transfert

mailparse_msg_extract_whole_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_whole_part_file — Extrait une section de message incluant les en-têtes sans décoder l'encodage de transfert

Description

string mailparse_msg_extract_whole_part_file ( resource $mimemail , string $filename [, callable $callbackfunc ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.

filename

callbackfunc

Valeurs de retour

Voir aussi

  • mailparse_msg_extract_part() - Extrait et décode une section de message
  • mailparse_msg_extract_part_file() - Extrait et décode une section de message


Libère une ressource MIME

  • « mailparse_msg_extract_whole_part_file
  • mailparse_msg_get_part_data »
  • PHP Manual
  • Fonctions Mailparse
  • Libère une ressource MIME

mailparse_msg_free

(PECL mailparse >= 0.9.0)

mailparse_msg_free — Libère une ressource MIME

Description

bool mailparse_msg_free ( resource $mimemail )

Libère une ressource MIME.

Liste de paramètres

mimemail

Une ressource MIME allouée par la fonction mailparse_msg_create() ou la fonction mailparse_msg_parse_file().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • mailparse_msg_create() - Crée une ressource email mime
  • mailparse_msg_parse_file() - Analyse un fichier


Retourne un tableau associatif avec des informations sur le message

  • « mailparse_msg_free
  • mailparse_msg_get_part »
  • PHP Manual
  • Fonctions Mailparse
  • Retourne un tableau associatif avec des informations sur le message

mailparse_msg_get_part_data

(PECL mailparse >= 0.9.0)

mailparse_msg_get_part_data — Retourne un tableau associatif avec des informations sur le message

Description

array mailparse_msg_get_part_data ( resource $mimemail )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.


Retourne une ressource sur une section d'un message MIME

  • « mailparse_msg_get_part_data
  • mailparse_msg_get_structure »
  • PHP Manual
  • Fonctions Mailparse
  • Retourne une ressource sur une section d'un message MIME

mailparse_msg_get_part

(PECL mailparse >= 0.9.0)

mailparse_msg_get_part — Retourne une ressource sur une section d'un message MIME

Description

resource mailparse_msg_get_part ( resource $mimemail , string $mimesection )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.

mimesection


Retourne un tableau avec les différentes sections MIME du message

  • « mailparse_msg_get_part
  • mailparse_msg_parse_file »
  • PHP Manual
  • Fonctions Mailparse
  • Retourne un tableau avec les différentes sections MIME du message

mailparse_msg_get_structure

(PECL mailparse >= 0.9.0)

mailparse_msg_get_structure — Retourne un tableau avec les différentes sections MIME du message

Description

array mailparse_msg_get_structure ( resource $mimemail )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.


Analyse un fichier

  • « mailparse_msg_get_structure
  • mailparse_msg_parse »
  • PHP Manual
  • Fonctions Mailparse
  • Analyse un fichier

mailparse_msg_parse_file

(PECL mailparse >= 0.9.0)

mailparse_msg_parse_file — Analyse un fichier

Description

resource mailparse_msg_parse_file ( string $filename )

Analyse un fichier. C'est la façon optimale d'analyser un email que vous avez sur votre disque.

Liste de paramètres

filename

Chemin vers le fichier contenant le message. Le fichier sera ouvert et envoyé sous forme de flux à l'analyseur.

Valeurs de retour

Retourne une ressource MIME représentant la structure, ou FALSE si une erreur survient.

Voir aussi

  • mailparse_msg_free() - Libère une ressource MIME
  • mailparse_msg_create() - Crée une ressource email mime


Analyse incrémentalement des données dans un buffer

  • « mailparse_msg_parse_file
  • mailparse_rfc822_parse_addresses »
  • PHP Manual
  • Fonctions Mailparse
  • Analyse incrémentalement des données dans un buffer

mailparse_msg_parse

(PECL mailparse >= 0.9.0)

mailparse_msg_parse — Analyse incrémentalement des données dans un buffer

Description

bool mailparse_msg_parse ( resource $mimemail , string $data )

Analyse incrémentalement des données dans une ressource MIME fournie.

Cette fonction vous permet d'envoyer sous forme de flux des portions d'un fichier à la fois, plutôt que de tout lire et de tout analyser en une seule fois.

Liste de paramètres

mimemail

Une ressource MIME valide.

data

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Analyse des adresses

  • « mailparse_msg_parse
  • mailparse_stream_encode »
  • PHP Manual
  • Fonctions Mailparse
  • Analyse des adresses

mailparse_rfc822_parse_addresses

(PECL mailparse >= 0.9.0)

mailparse_rfc822_parse_addresses — Analyse des adresses

Description

array mailparse_rfc822_parse_addresses ( string $addresses )

Analyse une liste d'adresses valides eu égard à la » RFC 822, comme celles trouvées dans l'en-tête To:.

Liste de paramètres

addresses

Une chaîne de caractères contenant les adresses, comme : Wez Furlong <wez@example.com>, doe@example.com

Note:

Cette chaîne de caractères ne doit pas contenir le nom de l'en-tête.

Valeurs de retour

Retourne un tableau de tableaux associatifs contenant les clés suivantes pour chaque adresses :

display | Le nom de l'adresse, aux fins d'affichage. Si cette partie n'est pas définie pour une adresse, il contiendra la même valeur que la clé address.
address | L'adresse email
is_group | TRUE si l'adresse est un newsgroup, FALSE sinon.

Exemples

Exemple #1 Exemple avec mailparse_rfc822_parse_addresses()

<?php

$to = 'Wez Furlong <wez@example.com>, doe@example.com';
var_dump(mailparse_rfc822_parse_addresses($to));

?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  array(3) {
    ["display"]=>
    string(11) "Wez Furlong"
    ["address"]=>
    string(15) "wez@example.com"
    ["is_group"]=>
    bool(false)
  }
  [1]=>
  array(3) {
    ["display"]=>
    string(15) "doe@example.com"
    ["address"]=>
    string(15) "doe@example.com"
    ["is_group"]=>
    bool(false)
  }
}


Lit les données dans un fichier, applique l'encodage et envoie le résultat à destfp

  • « mailparse_rfc822_parse_addresses
  • mailparse_uudecode_all »
  • PHP Manual
  • Fonctions Mailparse
  • Lit les données dans un fichier, applique l'encodage et envoie le résultat à destfp

mailparse_stream_encode

(PECL mailparse >= 0.9.0)

mailparse_stream_encode — Lit les données dans un fichier, applique l'encodage et envoie le résultat à destfp

Description

bool mailparse_stream_encode ( resource $sourcefp , resource $destfp , string $encoding )

Lit les données dans un fichier, applique l'encodage encoding et envoie le résultat à destfp.

Liste de paramètres

sourcefp

Un gestionnaire de fichier valide. Le fichier sera envoyé à l'analyseur sous forme de flux.

destfp

Le gestionnaire de fichier destinataire, dans lequel les données encodées seront écrites.

encoding

Un des encodages de caractères supportés par le module mbstring.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mailparse_stream_encode()

<?php

// Contenu de email.eml : hello, this is some text=hello.
$fp = fopen('email.eml', 'r');

$dest = tmpfile();

mailparse_stream_encode($fp, $dest, "quoted-printable");

rewind($dest);

// Affiche le nouveau contenu du fichier
fpassthru($dest);

?>

L'exemple ci-dessus va afficher :

hello, this is some text=3Dhello.


Scanne les données du fichier et extrait tous les fichiers encodés qui s'y trouvent

  • « mailparse_stream_encode
  • vpopmail »
  • PHP Manual
  • Fonctions Mailparse
  • Scanne les données du fichier et extrait tous les fichiers encodés qui s'y trouvent

mailparse_uudecode_all

(PECL mailparse >= 0.9.0)

mailparse_uudecode_all — Scanne les données du fichier et extrait tous les fichiers encodés qui s'y trouvent

Description

array mailparse_uudecode_all ( resource $fp )

Scanne les données du fichier fourni et extrait, dans un fichier temporaire, tous les fichiers encodés qui s'y trouvent.

Liste de paramètres

fp

Un pointeur de fichier valide.

Valeurs de retour

Retourne un tableau de tableaux associatifs listant les informations sur les noms de fichiers.

filename | Chemin vers le fichier temporaire à créer
origfilename | Le nom de fichier original, pour les sections uuencoded uniquement
La première entrée du fichier est le corps du message. Les entrées suivantes sont les fichiers décodés uuencoded.

Exemples

Exemple #1 Exemple avec mailparse_uudecode_all()

<?php

$text = <<<EOD
To: fred@example.com

hello, this is some text hello.
blah blah blah.

begin 644 test.txt
/=&AI<R!I<R!A('1E<W0*
`
end

EOD;

$fp = tmpfile();
fwrite($fp, $text);

$data = mailparse_uudecode_all($fp);

echo "BODY\n";
readfile($data[0]["filename"]);
echo "UUE ({$data[1]['origfilename']})\n";
readfile($data[1]["filename"]);

// Nettoyage
unlink($data[0]["filename"]);
unlink($data[1]["filename"]);

?>

L'exemple ci-dessus va afficher :

BODY
To: fred@example.com

hello, this is some text hello.
blah blah blah.

UUE (test.txt)
this is a test


vpopmail

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • vpopmail Fonctions
    • vpopmail_add_alias_domain_ex — Ajoute un alias à un domaine virtuel
    • vpopmail_add_alias_domain — Ajout un alias pour un domaine virtuel
    • vpopmail_add_domain_ex — Ajoute un nouveau domaine virtuel
    • vpopmail_add_domain — Ajoute un nouveau domaine virtuel
    • vpopmail_add_user — Ajoute un nouvel utilisateur à un domaine virtuel
    • vpopmail_alias_add — Ajoute un alias virtuel
    • vpopmail_alias_del_domain — Efface tous les alias virtuels d'un domaine
    • vpopmail_alias_del — Efface tous les alias d'un utilisateur
    • vpopmail_alias_get_all — Lit toutes les lignes d'un alias d'un domaine
    • vpopmail_alias_get — Lit toutes les lignes d'un alias d'un domaine
    • vpopmail_auth_user — Valide le mot de passe d'un utilisateur pour un domaine
    • vpopmail_del_domain_ex — Efface un domaine virtuel
    • vpopmail_del_domain — Efface un domaine virtuel
    • vpopmail_del_user — Efface un utilisateur d'un domaine virtuel
    • vpopmail_error — Lit le dernier message d'erreur vpopmail
    • vpopmail_passwd — Remplace le mot de passe d'un utilisateur virtuel
    • vpopmail_set_user_quota — Modifie le quota d'un utilisateur virtuel


Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Cette extension a été retirée de PHP depuis PHP 4.3.0 et maintenant, réside en tant qu'extension » PECL.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/vpopmail.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


  • « Types de ressources
  • vpopmail Fonctions »
  • PHP Manual
  • vpopmail
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


vpopmail Fonctions

Sommaire

  • vpopmail_add_alias_domain_ex — Ajoute un alias à un domaine virtuel
  • vpopmail_add_alias_domain — Ajout un alias pour un domaine virtuel
  • vpopmail_add_domain_ex — Ajoute un nouveau domaine virtuel
  • vpopmail_add_domain — Ajoute un nouveau domaine virtuel
  • vpopmail_add_user — Ajoute un nouvel utilisateur à un domaine virtuel
  • vpopmail_alias_add — Ajoute un alias virtuel
  • vpopmail_alias_del_domain — Efface tous les alias virtuels d'un domaine
  • vpopmail_alias_del — Efface tous les alias d'un utilisateur
  • vpopmail_alias_get_all — Lit toutes les lignes d'un alias d'un domaine
  • vpopmail_alias_get — Lit toutes les lignes d'un alias d'un domaine
  • vpopmail_auth_user — Valide le mot de passe d'un utilisateur pour un domaine
  • vpopmail_del_domain_ex — Efface un domaine virtuel
  • vpopmail_del_domain — Efface un domaine virtuel
  • vpopmail_del_user — Efface un utilisateur d'un domaine virtuel
  • vpopmail_error — Lit le dernier message d'erreur vpopmail
  • vpopmail_passwd — Remplace le mot de passe d'un utilisateur virtuel
  • vpopmail_set_user_quota — Modifie le quota d'un utilisateur virtuel


Ajoute un alias à un domaine virtuel

  • « vpopmail Fonctions
  • vpopmail_add_alias_domain »
  • PHP Manual
  • vpopmail Fonctions
  • Ajoute un alias à un domaine virtuel

vpopmail_add_alias_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_alias_domain_ex — Ajoute un alias à un domaine virtuel

Description

bool vpopmail_add_alias_domain_ex ( string $olddomain , string $newdomain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Ajout un alias pour un domaine virtuel

  • « vpopmail_add_alias_domain_ex
  • vpopmail_add_domain_ex »
  • PHP Manual
  • vpopmail Fonctions
  • Ajout un alias pour un domaine virtuel

vpopmail_add_alias_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_alias_domain — Ajout un alias pour un domaine virtuel

Description

bool vpopmail_add_alias_domain ( string $domain , string $aliasdomain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Ajoute un nouveau domaine virtuel

  • « vpopmail_add_alias_domain
  • vpopmail_add_domain »
  • PHP Manual
  • vpopmail Fonctions
  • Ajoute un nouveau domaine virtuel

vpopmail_add_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_domain_ex — Ajoute un nouveau domaine virtuel

Description

bool vpopmail_add_domain_ex ( string $domain , string $passwd [, string $quota [, string $bounce [, bool $apop ]]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Ajoute un nouveau domaine virtuel

  • « vpopmail_add_domain_ex
  • vpopmail_add_user »
  • PHP Manual
  • vpopmail Fonctions
  • Ajoute un nouveau domaine virtuel

vpopmail_add_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_domain — Ajoute un nouveau domaine virtuel

Description

bool vpopmail_add_domain ( string $domain , string $dir , int $uid , int $gid )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Ajoute un nouvel utilisateur à un domaine virtuel

  • « vpopmail_add_domain
  • vpopmail_alias_add »
  • PHP Manual
  • vpopmail Fonctions
  • Ajoute un nouvel utilisateur à un domaine virtuel

vpopmail_add_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_user — Ajoute un nouvel utilisateur à un domaine virtuel

Description

bool vpopmail_add_user ( string $user , string $domain , string $password [, string $gecos [, bool $apop ]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Ajoute un alias virtuel

  • « vpopmail_add_user
  • vpopmail_alias_del_domain »
  • PHP Manual
  • vpopmail Fonctions
  • Ajoute un alias virtuel

vpopmail_alias_add

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_add — Ajoute un alias virtuel

Description

bool vpopmail_alias_add ( string $user , string $domain , string $alias )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Efface tous les alias virtuels d'un domaine

  • « vpopmail_alias_add
  • vpopmail_alias_del »
  • PHP Manual
  • vpopmail Fonctions
  • Efface tous les alias virtuels d'un domaine

vpopmail_alias_del_domain

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_del_domain — Efface tous les alias virtuels d'un domaine

Description

bool vpopmail_alias_del_domain ( string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Efface tous les alias d'un utilisateur

  • « vpopmail_alias_del_domain
  • vpopmail_alias_get_all »
  • PHP Manual
  • vpopmail Fonctions
  • Efface tous les alias d'un utilisateur

vpopmail_alias_del

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_del — Efface tous les alias d'un utilisateur

Description

bool vpopmail_alias_del ( string $user , string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Lit toutes les lignes d'un alias d'un domaine

  • « vpopmail_alias_del
  • vpopmail_alias_get »
  • PHP Manual
  • vpopmail Fonctions
  • Lit toutes les lignes d'un alias d'un domaine

vpopmail_alias_get_all

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_get_all — Lit toutes les lignes d'un alias d'un domaine

Description

array vpopmail_alias_get_all ( string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Lit toutes les lignes d'un alias d'un domaine

  • « vpopmail_alias_get_all
  • vpopmail_auth_user »
  • PHP Manual
  • vpopmail Fonctions
  • Lit toutes les lignes d'un alias d'un domaine

vpopmail_alias_get

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_get — Lit toutes les lignes d'un alias d'un domaine

Description

array vpopmail_alias_get ( string $alias , string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Valide le mot de passe d'un utilisateur pour un domaine

  • « vpopmail_alias_get
  • vpopmail_del_domain_ex »
  • PHP Manual
  • vpopmail Fonctions
  • Valide le mot de passe d'un utilisateur pour un domaine

vpopmail_auth_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_auth_user — Valide le mot de passe d'un utilisateur pour un domaine

Description

bool vpopmail_auth_user ( string $user , string $domain , string $password [, string $apop ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Efface un domaine virtuel

  • « vpopmail_auth_user
  • vpopmail_del_domain »
  • PHP Manual
  • vpopmail Fonctions
  • Efface un domaine virtuel

vpopmail_del_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_domain_ex — Efface un domaine virtuel

Description

bool vpopmail_del_domain_ex ( string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Efface un domaine virtuel

  • « vpopmail_del_domain_ex
  • vpopmail_del_user »
  • PHP Manual
  • vpopmail Fonctions
  • Efface un domaine virtuel

vpopmail_del_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_domain — Efface un domaine virtuel

Description

bool vpopmail_del_domain ( string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Efface un utilisateur d'un domaine virtuel

  • « vpopmail_del_domain
  • vpopmail_error »
  • PHP Manual
  • vpopmail Fonctions
  • Efface un utilisateur d'un domaine virtuel

vpopmail_del_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_user — Efface un utilisateur d'un domaine virtuel

Description

bool vpopmail_del_user ( string $user , string $domain )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Lit le dernier message d'erreur vpopmail

  • « vpopmail_del_user
  • vpopmail_passwd »
  • PHP Manual
  • vpopmail Fonctions
  • Lit le dernier message d'erreur vpopmail

vpopmail_error

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_error — Lit le dernier message d'erreur vpopmail

Description

string vpopmail_error ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Remplace le mot de passe d'un utilisateur virtuel

  • « vpopmail_error
  • vpopmail_set_user_quota »
  • PHP Manual
  • vpopmail Fonctions
  • Remplace le mot de passe d'un utilisateur virtuel

vpopmail_passwd

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_passwd — Remplace le mot de passe d'un utilisateur virtuel

Description

bool vpopmail_passwd ( string $user , string $domain , string $password [, bool $apop ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Modifie le quota d'un utilisateur virtuel

  • « vpopmail_passwd
  • Extensions sur les mathématiques »
  • PHP Manual
  • vpopmail Fonctions
  • Modifie le quota d'un utilisateur virtuel

vpopmail_set_user_quota

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_set_user_quota — Modifie le quota d'un utilisateur virtuel

Description

bool vpopmail_set_user_quota ( string $user , string $domain , string $quota )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Extensions sur les mathématiques

  • BC Math — Fonctions BCMath
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions BC Math
  • GMP — GNU Multiple Precision
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions GMP
    • GMP — La classe GMP
  • Lapack
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Lapack — La class Lapack
    • LapackException — La classe LapackException
  • Math — Fonctions mathématiques
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Math
  • Fonctions statistiques
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions sur les statistiques
  • Trader — Analyse technique pour les marchands
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Trader


Fonctions BCMath

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions BC Math
    • bcadd — Additionne deux nombres de grande taille
    • bccomp — Compare deux nombres de grande taille
    • bcdiv — Divise deux nombres de grande taille
    • bcmod — Retourne le reste d'une division entre nombres de grande taille
    • bcmul — Multiplie deux nombres de grande taille
    • bcpow — Élève un nombre à une puissance donnée
    • bcpowmod — Calcule le reste modulo d'un nombre élevé à une puissance
    • bcscale — Spécifie le nombre de décimales par défaut pour toutes les fonctions
    • bcsqrt — Récupère la racine carrée d'un nombre de grande taille
    • bcsub — Soustrait un nombre de grande taille d'un autre


Introduction

Pour les calculs mathématiques d'une grande précision, PHP fournit un calculateur binaire, qui supporte n'importe quelle précision et n'importe quelle taille de nombres, représentés sous la forme d'une chaîne de caractères.


Pré-requis

Depuis PHP 4.0.4, libbcmath est fourni dans PHP. Vous n'avez plus besoin de bibliothèques externes pour cette extension.


Installation

Ces fonctions ne sont disponibles que si l'option de configuration --enable-bcmath a été activée lors de la compilation.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration BCmaths
Nom | Défaut | Modifiable | Historique
bcmath.scale | "0" | PHP_INI_ALL |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

bcmath.scale entier

Le nombre de décimales pour toutes les fonctions bcmath. Voir aussi bcscale().


  • « Types de ressources
  • Fonctions BC Math »
  • PHP Manual
  • BC Math
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions BC Math

Sommaire

  • bcadd — Additionne deux nombres de grande taille
  • bccomp — Compare deux nombres de grande taille
  • bcdiv — Divise deux nombres de grande taille
  • bcmod — Retourne le reste d'une division entre nombres de grande taille
  • bcmul — Multiplie deux nombres de grande taille
  • bcpow — Élève un nombre à une puissance donnée
  • bcpowmod — Calcule le reste modulo d'un nombre élevé à une puissance
  • bcscale — Spécifie le nombre de décimales par défaut pour toutes les fonctions
  • bcsqrt — Récupère la racine carrée d'un nombre de grande taille
  • bcsub — Soustrait un nombre de grande taille d'un autre


Additionne deux nombres de grande taille

  • « Fonctions BC Math
  • bccomp »
  • PHP Manual
  • Fonctions BC Math
  • Additionne deux nombres de grande taille

bcadd

(PHP 4, PHP 5, PHP 7)

bcadd — Additionne deux nombres de grande taille

Description

string bcadd ( string $left_operand , string $right_operand [, int $scale ] )

Additionne left_operand et right_operand.

Liste de paramètres

left_operand

L'opérande gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

La somme des deux opérandes, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec bcadd()

<?php
$a = '1.234';
$b = '5';

echo bcadd($a, $b);     // 6
echo bcadd($a, $b, 4);  // 6.2340
?>

Voir aussi

  • bcsub() - Soustrait un nombre de grande taille d'un autre


Compare deux nombres de grande taille

  • « bcadd
  • bcdiv »
  • PHP Manual
  • Fonctions BC Math
  • Compare deux nombres de grande taille

bccomp

(PHP 4, PHP 5, PHP 7)

bccomp — Compare deux nombres de grande taille

Description

int bccomp ( string $left_operand , string $right_operand [, int $scale = int ] )

Compare l'opérande left_operand avec l'opérande right_operand et retourne le résultat sous forme d'un entier.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Le paramètre optionnel scale est utilisé pour définir le nombre de digits après la décimale qui sera utilisé dans la comparaison.

Valeurs de retour

Retourne 0 si les deux opérandes sont égaux, 1 si l'opérande left_operand est plus grand que l'opérande right_operand, -1 sinon.

Exemples

Exemple #1 Exemple avec bccomp()

<?php

echo bccomp('1', '2') . "\n";   // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1

?>


Divise deux nombres de grande taille

  • « bccomp
  • bcmod »
  • PHP Manual
  • Fonctions BC Math
  • Divise deux nombres de grande taille

bcdiv

(PHP 4, PHP 5, PHP 7)

bcdiv — Divise deux nombres de grande taille

Description

string bcdiv ( string $left_operand , string $right_operand [, int $scale = int ] )

Divise l'opérande left_operand par l'opérande right_operand.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne le résultat de la division, sous la forme d'une chaîne de caractères, ou NULL si l'opérande right_operand vaut 0.

Exemples

Exemple #1 Exemple avec bcdiv()

<?php

echo bcdiv('105', '6.55957', 3);  // 16.007

?>

Voir aussi

  • bcmul() - Multiplie deux nombres de grande taille


Retourne le reste d'une division entre nombres de grande taille

  • « bcdiv
  • bcmul »
  • PHP Manual
  • Fonctions BC Math
  • Retourne le reste d'une division entre nombres de grande taille

bcmod

(PHP 4, PHP 5, PHP 7)

bcmod — Retourne le reste d'une division entre nombres de grande taille

Description

string bcmod ( string $left_operand , string $modulus )

Retourne le reste de la division entre left_operand en utilisant modulus.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

modulus

Le modulo, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne le modulo, sous la forme d'une chaîne de caractères, ou NULL si modulus vaut 0.

Exemples

Exemple #1 Exemple avec bcmod()

<?php
echo bcmod('4', '2'); // 0
echo bcmod('2', '4'); // 2
?>

Voir aussi

  • bcdiv() - Divise deux nombres de grande taille


Multiplie deux nombres de grande taille

  • « bcmod
  • bcpow »
  • PHP Manual
  • Fonctions BC Math
  • Multiplie deux nombres de grande taille

bcmul

(PHP 4, PHP 5, PHP 7)

bcmul — Multiplie deux nombres de grande taille

Description

string bcmul ( string $left_operand , string $right_operand [, int $scale = int ] )

Multiplie l'opérande left_operand par l'opérande right_operand.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne le résultat, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec bcmul()

<?php
echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8
?>

Voir aussi

  • bcdiv() - Divise deux nombres de grande taille


Élève un nombre à une puissance donnée

  • « bcmul
  • bcpowmod »
  • PHP Manual
  • Fonctions BC Math
  • Élève un nombre à une puissance donnée

bcpow

(PHP 4, PHP 5, PHP 7)

bcpow — Élève un nombre à une puissance donnée

Description

string bcpow ( string $left_operand , string $right_operand [, int $scale ] )

Élève left_operand à la puissance right_operand.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne le résultat, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec bcpow()

<?php

echo bcpow('4.2', '3', 2); // 74.08

?>

Notes

Note:

bcpow() peut retourner un résultats avec moins de chiffres après la virgule que le parmètre scale indique. Ceci ne se produit que le résultat ne nécessite pas toute la précision autorisée par scale. Par exemple:

Exemple #2 bcpow() exemple pour scale

<?php
echo bcpow('5', '2', 2);     // affiche "25", pas "25.00"
?>

Voir aussi

  • bcpowmod() - Calcule le reste modulo d'un nombre élevé à une puissance
  • bcsqrt() - Récupère la racine carrée d'un nombre de grande taille


Calcule le reste modulo d'un nombre élevé à une puissance

  • « bcpow
  • bcscale »
  • PHP Manual
  • Fonctions BC Math
  • Calcule le reste modulo d'un nombre élevé à une puissance

bcpowmod

(PHP 5, PHP 7)

bcpowmod — Calcule le reste modulo d'un nombre élevé à une puissance

Description

string bcpowmod ( string $left_operand , string $right_operand , string $modulus [, int $scale = int ] )

Utilise la méthode d'exponentiation rapide pour élever le nombre left_operand à la puissance right_operand, et en calculant le reste modulo modulus.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

modulus

Le modulo, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne le résultat, sous la forme d'une chaîne de caractères, ou NULL si modulus vaut 0.

Notes

Note:

Comme cette méthode utilise les opérations de modulo, les nombres non positifs risquent de donner des résultats inattendus.

Exemples

Les deux lignes suivantes produisent le même résultat. La version qui utilise bcpowmod() est bien plus rapide, et accepte des paramètres plus grands.

<?php
$a = bcpowmod($x, $y, $mod);

$b = bcmod(bcpow($x, $y), $mod);

// $a et $b sont égaux.

?>

Voir aussi

  • bcpow() - Élève un nombre à une puissance donnée
  • bcmod() - Retourne le reste d'une division entre nombres de grande taille


Spécifie le nombre de décimales par défaut pour toutes les fonctions

  • « bcpowmod
  • bcsqrt »
  • PHP Manual
  • Fonctions BC Math
  • Spécifie le nombre de décimales par défaut pour toutes les fonctions

bcscale

(PHP 4, PHP 5, PHP 7)

bcscale — Spécifie le nombre de décimales par défaut pour toutes les fonctions

Description

bool bcscale ( int $scale )

Spécifie la précision par défaut pour toutes les fonctions mathématiques sur des nombres de taille arbitraire qui suivent et qui omettent le paramètre scale.

Liste de paramètres

scale

Le facteur de précision.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bcscale()

<?php

// précision par défaut : 3
bcscale(3);
echo bcdiv('105', '6.55957'); // 16.007

// la même chose sans utiliser bcscale()
echo bcdiv('105', '6.55957', 3); // 16.007

?>


Récupère la racine carrée d'un nombre de grande taille

  • « bcscale
  • bcsub »
  • PHP Manual
  • Fonctions BC Math
  • Récupère la racine carrée d'un nombre de grande taille

bcsqrt

(PHP 4, PHP 5, PHP 7)

bcsqrt — Récupère la racine carrée d'un nombre de grande taille

Description

string bcsqrt ( string $operand [, int $scale ] )

Retourne la racine carrée de l'opérande operand.

Liste de paramètres

operand

L'opérande, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne la racine carrée de l'opérande, sous la forme d'une chaîne de caractères, ou NULL si l'opérande operand est négatif.

Exemples

Exemple #1 Exemple avec bcsqrt()

<?php

echo bcsqrt('2', 3); // 1.414

?>

Voir aussi

  • bcpow() - Élève un nombre à une puissance donnée


Soustrait un nombre de grande taille d'un autre

  • « bcsqrt
  • GMP »
  • PHP Manual
  • Fonctions BC Math
  • Soustrait un nombre de grande taille d'un autre

bcsub

(PHP 4, PHP 5, PHP 7)

bcsub — Soustrait un nombre de grande taille d'un autre

Description

string bcsub ( string $left_operand , string $right_operand [, int $scale = int ] )

Soustrait l'opérande right_operand de l'opérande left_operand.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définir la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Le résultat de la soustraction, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec bcsub()

<?php

$a = '1.234';
$b = '5';

echo bcsub($a, $b);     // -3
echo bcsub($a, $b, 4);  // -3.7660

?>

Voir aussi

  • bcadd() - Additionne deux nombres de grande taille


GNU Multiple Precision

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions GMP
    • gmp_abs — Valeur absolue GMP
    • gmp_add — Addition de 2 nombres GMP
    • gmp_and — ET logique
    • gmp_clrbit — Annule un octet
    • gmp_cmp — Compare des nombres GMP
    • gmp_com — Calcule le complémentaire d'un nombre
    • gmp_div_q — Divisions de 2 nombres GMP
    • gmp_div_qr — Divise deux nombres GMP
    • gmp_div_r — Reste de la division de deux nombres GMP
    • gmp_div — Alias de gmp_div_q
    • gmp_divexact — Division exacte de nombres GMP
    • gmp_export — Exportation vers une chaîne binaire
    • gmp_fact — Factorielle GMP
    • gmp_gcd — Calcule le GCD
    • gmp_gcdext — PGCD étendu
    • gmp_hamdist — Distance de Hamming
    • gmp_import — Importation depuis une chaîne binaire
    • gmp_init — Crée un nombre GMP
    • gmp_intval — Convertit un nombre GMP en entier
    • gmp_invert — Modulo inversé
    • gmp_jacobi — Symbole de Jacobi
    • gmp_legendre — Symbole de Legendre
    • gmp_mod — Modulo GMP
    • gmp_mul — Multiplication de 2 nombres GMP
    • gmp_neg — Opposé de nombre GMP
    • gmp_nextprime — Trouve le prochain nombre premier
    • gmp_or — OU logique
    • gmp_perfect_square — Carré parfait GMP
    • gmp_popcount — Comptage de population
    • gmp_pow — Puissance
    • gmp_powm — Puissance et modulo
    • gmp_prob_prime — Nombre GMP probablement premier
    • gmp_random_bits — Génère un nombre aléatoire
    • gmp_random_range — Génère un nombre aléatoire
    • gmp_random_seed — Sets the RNG seed
    • gmp_random — Nombre GMP aléatoire
    • gmp_root — Récupère la partie entière de la n-ème racine
    • gmp_rootrem — Récupère la partie entière et le reste de la n-ème racine
    • gmp_scan0 — Recherche 0
    • gmp_scan1 — Recherche 1
    • gmp_setbit — Modifie un bit
    • gmp_sign — Signe du nombre GMP
    • gmp_sqrt — Racine carrée GMP
    • gmp_sqrtrem — Racine carrée avec reste GMP
    • gmp_strval — Convertit un nombre GMP en chaîne
    • gmp_sub — Soustraction de 2 nombres GMP
    • gmp_testbit — Teste si un octet est défini
    • gmp_xor — OU exclusif logique
  • GMP — La classe GMP


Introduction

Ces fonctions vous permettent de travailler avec des nombres de taille arbitraire, en utilisant la bibliothèque GNU MP.

Ces fonctions ont été ajoutées en PHP 4.0.4.

Note:

La plupart des fonctions GMP accepte des nombres GMP comme arguments. Ils sont montrés dans la documentation comme des objets GMP ; cependant, notez que PHP 5.5 et antérieurs représentent les nombres GMP comme des ressources. La plupart de ces fonctions accepte également des arguments sous la forme de numérique et de chaîne de caractères, tant qu'il est possible de les convertir plus tard en nombre. Aussi, s'il existe une fonction rapide pouvant agir sur des arguments entiers, elle doit être utilisée au lieu d'une fonction moins rapide lorsque les arguments fournis sont des entiers. Ceci est réalisé en tout transparence, aussi, au pire, vous pouvez utiliser des entiers dans chaque fonction qui attend un nombre GMP. Voir aussi la fonction gmp_init().

Note:

Depuis PHP 5.6, vous pouvez utiliser des opérateurs arithmétiques, sur les bits et de comparaison avec les objets GMP retournés depuis les fonctions GMP gmp_init() et autres.

Avertissement

Si vous voulez explicitement spécifier un entier de grande taille, spécifiez-le sous forme de chaîne. Si vous ne le faites pas, PHP va interpréter votre entier et le transformer en une représentation interne, qui vous fera sûrement perdre de la précision, avant même que GMP n'entre en jeu.

Note: Cette extension est disponible sur les plates-formes Windows depuis PHP 5.1.0.


Pré-requis

Vous pouvez télécharger GMP sur le site de » http://gmplib.org/#DOWNLOAD. Ce site propose aussi un manuel GMP.

Vous devez utiliser GMP 2 ou plus récent pour utiliser ces fonctions. Certaines d'entre elles peuvent requérir une version encore plus récente de GMP.


Installation

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP GMP en utilisant l'option --with-gmp .


Types de ressources

Avant PHP 5.6, la plupart des fonctions GMP opère ou retourne des ressources GMP. Depuis PHP 5.6, utilisez les objets GMP à la place des ressources GMP.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

GMP_ROUND_ZERO (entier)
GMP_ROUND_PLUSINF (entier)
GMP_ROUND_MINUSINF (entier)
GMP_MSW_FIRST (integer)
GMP_LSW_FIRST (integer)
GMP_LITTLE_ENDIAN (integer)
GMP_BIG_ENDIAN (integer)
GMP_NATIVE_ENDIAN (integer)
GMP_VERSION (string)
La version de la bibliothèque GMP


Exemples

Exemple #1 Factorielle avec GMP

<?php
function fact($x)
{
    $return = 1;
    for ($i=2; $i <= $x; $i++) {
        $return = gmp_mul($return, $i);
    }
    return $return;
}

echo gmp_strval(fact(1000)) . "\n";
?>

Cet exemple va calculer factorielle de 1000 (un grand nombre) très vite.


Fonctions GMP

Voir aussi

Vous pouvez trouver plus de fonctions dans la section Extensions sur les mathématiques.

Sommaire

  • gmp_abs — Valeur absolue GMP
  • gmp_add — Addition de 2 nombres GMP
  • gmp_and — ET logique
  • gmp_clrbit — Annule un octet
  • gmp_cmp — Compare des nombres GMP
  • gmp_com — Calcule le complémentaire d'un nombre
  • gmp_div_q — Divisions de 2 nombres GMP
  • gmp_div_qr — Divise deux nombres GMP
  • gmp_div_r — Reste de la division de deux nombres GMP
  • gmp_div — Alias de gmp_div_q
  • gmp_divexact — Division exacte de nombres GMP
  • gmp_export — Exportation vers une chaîne binaire
  • gmp_fact — Factorielle GMP
  • gmp_gcd — Calcule le GCD
  • gmp_gcdext — PGCD étendu
  • gmp_hamdist — Distance de Hamming
  • gmp_import — Importation depuis une chaîne binaire
  • gmp_init — Crée un nombre GMP
  • gmp_intval — Convertit un nombre GMP en entier
  • gmp_invert — Modulo inversé
  • gmp_jacobi — Symbole de Jacobi
  • gmp_legendre — Symbole de Legendre
  • gmp_mod — Modulo GMP
  • gmp_mul — Multiplication de 2 nombres GMP
  • gmp_neg — Opposé de nombre GMP
  • gmp_nextprime — Trouve le prochain nombre premier
  • gmp_or — OU logique
  • gmp_perfect_square — Carré parfait GMP
  • gmp_popcount — Comptage de population
  • gmp_pow — Puissance
  • gmp_powm — Puissance et modulo
  • gmp_prob_prime — Nombre GMP probablement premier
  • gmp_random_bits — Génère un nombre aléatoire
  • gmp_random_range — Génère un nombre aléatoire
  • gmp_random_seed — Sets the RNG seed
  • gmp_random — Nombre GMP aléatoire
  • gmp_root — Récupère la partie entière de la n-ème racine
  • gmp_rootrem — Récupère la partie entière et le reste de la n-ème racine
  • gmp_scan0 — Recherche 0
  • gmp_scan1 — Recherche 1
  • gmp_setbit — Modifie un bit
  • gmp_sign — Signe du nombre GMP
  • gmp_sqrt — Racine carrée GMP
  • gmp_sqrtrem — Racine carrée avec reste GMP
  • gmp_strval — Convertit un nombre GMP en chaîne
  • gmp_sub — Soustraction de 2 nombres GMP
  • gmp_testbit — Teste si un octet est défini
  • gmp_xor — OU exclusif logique


Valeur absolue GMP

  • « Fonctions GMP
  • gmp_add »
  • PHP Manual
  • Fonctions GMP
  • Valeur absolue GMP

gmp_abs

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_abs — Valeur absolue GMP

Description

GMP gmp_abs ( GMP $a )

Valeur absolue GMP.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne la valeur absolue de a, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_abs()

<?php
$abs1 = gmp_abs("274982683358");
$abs2 = gmp_abs("-274982683358");

echo gmp_strval($abs1) . "\n";
echo gmp_strval($abs2) . "\n";
?>

L'exemple ci-dessus va afficher :

274982683358
274982683358


Addition de 2 nombres GMP

  • « gmp_abs
  • gmp_and »
  • PHP Manual
  • Fonctions GMP
  • Addition de 2 nombres GMP

gmp_add

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_add — Addition de 2 nombres GMP

Description

GMP gmp_add ( GMP $a , GMP $b )

Addition de 2 nombres GMP.

Liste de paramètres

a

Un nombre à ajouter.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Un nombre à ajouter.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un nombre GMP représentant la somme des arguments.

Exemples

Exemple #1 Exemple avec gmp_add()

<?php
$sum = gmp_add("123456789012345", "76543210987655");
echo gmp_strval($sum) . "\n";
?>

L'exemple ci-dessus va afficher :

200000000000000


ET logique

  • « gmp_add
  • gmp_clrbit »
  • PHP Manual
  • Fonctions GMP
  • ET logique

gmp_and

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_and — ET logique

Description

GMP gmp_and ( GMP $a , GMP $b )

Calcule le ET logique de 2 nombres GMP.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un nombre GMP représentant le ET logique (AND) des 2 arguments.

Exemples

Exemple #1 Exemple avec gmp_and()

<?php
$and1 = gmp_and("0xfffffffff4", "0x4");
$and2 = gmp_and("0xfffffffff4", "0x8");
echo gmp_strval($and1) . "\n";
echo gmp_strval($and2) . "\n";
?>

L'exemple ci-dessus va afficher :

4
0


Annule un octet

  • « gmp_and
  • gmp_cmp »
  • PHP Manual
  • Fonctions GMP
  • Annule un octet

gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_clrbit — Annule un octet

Description

void gmp_clrbit ( GMP $a , int $index )

Met l'octet index à 0 dans le nombre GMP a. L'index commence à zéro.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

index

L'index de l'octet à annuler. L'index 0 représent le dernier octet significatif.

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Exemples

Exemple #1 Exemple avec gmp_clrbit()

<?php
$a = gmp_init("0xff");
gmp_clrbit($a, 0); // l'index commence à zéro
echo gmp_strval($a) . "\n";
?>

L'exemple ci-dessus va afficher :

254

Notes

Note:

Contrairement à la plupart des autres fonctions GMP, gmp_clrbit() doit être appelée avec une ressource GMP existant déjà (en utilisant gmp_init() par exemple). Elle ne sera pas automatiquement créée.

Voir aussi

  • gmp_setbit() - Modifie un bit
  • gmp_testbit() - Teste si un octet est défini


Compare des nombres GMP

  • « gmp_clrbit
  • gmp_com »
  • PHP Manual
  • Fonctions GMP
  • Compare des nombres GMP

gmp_cmp

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_cmp — Compare des nombres GMP

Description

int gmp_cmp ( GMP $a , GMP $b )

Compare deux nombres GMP.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne une valeur positive si a > b, zéro si a = b et négative si a < b.

Exemples

Exemple #1 Exemple avec gmp_cmp()

<?php
$cmp1 = gmp_cmp("1234", "1000"); // plus grand que
$cmp2 = gmp_cmp("1000", "1234"); // plus petit que
$cmp3 = gmp_cmp("1234", "1234"); // égal à

echo "$cmp1 $cmp2 $cmp3\n";
?>

L'exemple ci-dessus va afficher :

1 -1 0


Calcule le complémentaire d'un nombre

  • « gmp_cmp
  • gmp_div_q »
  • PHP Manual
  • Fonctions GMP
  • Calcule le complémentaire d'un nombre

gmp_com

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_com — Calcule le complémentaire d'un nombre

Description

GMP gmp_com ( GMP $a )

Retourne le complémentaire de a.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne le complémentaire de a, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_com()

<?php
$com = gmp_com("1234");
echo gmp_strval($com) . "\n";
?>

L'exemple ci-dessus va afficher :

-1235


Divisions de 2 nombres GMP

  • « gmp_com
  • gmp_div_qr »
  • PHP Manual
  • Fonctions GMP
  • Divisions de 2 nombres GMP

gmp_div_q

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_div_q — Divisions de 2 nombres GMP

Description

GMP gmp_div_q ( GMP $a , GMP $b [, int $round = GMP_ROUND_ZERO ] )

Divise a par b et retourne le résultat entier.

Liste de paramètres

a

Le nombre à diviser.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Le diviseur.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

round

L'arrondi du résultat est défini par round, qui peut prendre l'une des valeurs suivantes :

  • GMP_ROUND_ZERO: Le résultat est tronqué vers 0.
  • GMP_ROUND_PLUSINF: Le résultat est tronqué vers +infinity.
  • GMP_ROUND_MINUSINF:Le résultat est tronqué vers -infinity.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Exemples

Exemple #1 Exemple avec gmp_div_q()

<?php
$div1 = gmp_div_q("100", "5");
echo gmp_strval($div1) . "\n";

$div2 = gmp_div_q("1", "3");
echo gmp_strval($div2) . "\n";

$div3 = gmp_div_q("1", "3", GMP_ROUND_PLUSINF);
echo gmp_strval($div3) . "\n";

$div4 = gmp_div_q("-1", "4", GMP_ROUND_PLUSINF);
echo gmp_strval($div4) . "\n";

$div5 = gmp_div_q("-1", "4", GMP_ROUND_MINUSINF);
echo gmp_strval($div5) . "\n";
?>

L'exemple ci-dessus va afficher :

20
0
1
0
-1

Notes

Note:

Cette fonction peut aussi être appelée gmp_div().

Voir aussi

  • gmp_div_r() - Reste de la division de deux nombres GMP
  • gmp_div_qr() - Divise deux nombres GMP


Divise deux nombres GMP

  • « gmp_div_q
  • gmp_div_r »
  • PHP Manual
  • Fonctions GMP
  • Divise deux nombres GMP

gmp_div_qr

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_div_qr — Divise deux nombres GMP

Description

array gmp_div_qr ( GMP $n , GMP $d [, int $round = GMP_ROUND_ZERO ] )

Divise n par d.

Liste de paramètres

n

Le nombre à diviser.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

d

Le diviseur.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

round

Voir la fonction gmp_div_q() pour une description de l'argument round.

Valeurs de retour

Divise n par d et retourne un tableau, dont le premier élément est [n/d] (le quotient entier de la division) et le second est (n - [n/d] * d) (le reste).

Exemples

Exemple #1 Division de nombres GMP

<?php
$a = gmp_init("0x41682179fbf5");
$res = gmp_div_qr($a, "0xDEFE75");
printf("Résultat : q - %s, r - %s",
       gmp_strval($res[0]), gmp_strval($res[1]));
?>

Voir aussi

  • gmp_div_q() - Divisions de 2 nombres GMP
  • gmp_div_r() - Reste de la division de deux nombres GMP


Reste de la division de deux nombres GMP

  • « gmp_div_qr
  • gmp_div »
  • PHP Manual
  • Fonctions GMP
  • Reste de la division de deux nombres GMP

gmp_div_r

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_div_r — Reste de la division de deux nombres GMP

Description

GMP gmp_div_r ( GMP $n , GMP $d [, int $round = GMP_ROUND_ZERO ] )

Calcul le reste de la division entière de n par d. Le reste a le même signe que n, s'il est différent de zéro.

Liste de paramètres

n

Le nombre à diviser.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

d

Le diviseur.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

round

Voir la fonction gmp_div_q() pour une description du paramètre round.

Valeurs de retour

Retourne le reste, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_div_r()

<?php
$div = gmp_div_r("105", "20");
echo gmp_strval($div) . "\n";
?>

L'exemple ci-dessus va afficher :

5

Voir aussi

  • gmp_div_q() - Divisions de 2 nombres GMP
  • gmp_div_qr() - Divise deux nombres GMP


Alias de gmp_div_q

  • « gmp_div_r
  • gmp_divexact »
  • PHP Manual
  • Fonctions GMP
  • Alias de gmp_div_q

gmp_div

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_div — Alias de gmp_div_q()

Description

Cette fonction est un alias de : gmp_div_q().


Division exacte de nombres GMP

  • « gmp_div
  • gmp_export »
  • PHP Manual
  • Fonctions GMP
  • Division exacte de nombres GMP

gmp_divexact

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_divexact — Division exacte de nombres GMP

Description

GMP gmp_divexact ( GMP $n , GMP $d )

Divise n par d, en utilisant les algorithmes de "division exacte". Cette fonction ne fournit de résultats cohérents que s'il est su par avance que d divise n.

Liste de paramètres

n

Le nombre à diviser.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

d

Le diviseur.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Exemples

Exemple #1 Exemple avec gmp_divexact()

<?php
$div1 = gmp_divexact("10", "2");
echo gmp_strval($div1) . "\n";

$div2 = gmp_divexact("10", "3"); // résultat incohérent
echo gmp_strval($div2) . "\n";
?>

L'exemple ci-dessus va afficher :

5
2863311534


Exportation vers une chaîne binaire

  • « gmp_divexact
  • gmp_fact »
  • PHP Manual
  • Fonctions GMP
  • Exportation vers une chaîne binaire

gmp_export

(PHP 5 >= 5.6.1, PHP 7)

gmp_export — Exportation vers une chaîne binaire

Description

string gmp_export ( GMP $gmpnumber , integer $word_size , integer $options )

Exporte un nombre GMP vers une chaîne binaire.

Liste de paramètres

gmpnumber

Le nombre GMP à exporter.

word_size

La valeur par défaut est 1. Le nombre d'octets dans chaque partie de données binaires. Principalement utilisé avec le paramètre options.

options

La valeur par défaut est GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Valeurs de retour

Retourne une chaîne de caractères ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gmp_export()

<?php
$number = gmp_init(6565);
echo gmp_export($number) . "\n";
?>

L'exemple ci-dessus va afficher :

AA


Factorielle GMP

  • « gmp_export
  • gmp_gcd »
  • PHP Manual
  • Fonctions GMP
  • Factorielle GMP

gmp_fact

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_fact — Factorielle GMP

Description

GMP gmp_fact ( mixed $a )

Calcule la factorielle de a : a!.

Liste de paramètres

a

Le nombre factoriel.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Exemples

Exemple #1 Exemple avec gmp_fact()

<?php
$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";

$fact2 = gmp_fact(50); // 50 * 49 * 48, ... etc
echo gmp_strval($fact2) . "\n";
?>

L'exemple ci-dessus va afficher :

120
30414093201713378043612608166064768844377641568960512000000000000


Calcule le GCD

  • « gmp_fact
  • gmp_gcdext »
  • PHP Manual
  • Fonctions GMP
  • Calcule le GCD

gmp_gcd

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_gcd — Calcule le GCD

Description

GMP gmp_gcd ( GMP $a , GMP $b )

Calcule le PGCD (plus grand commun diviseur) de a et b. Le résultat est toujours positif, même si l'un des deux (ou les deux) nombres est négatif.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un nombre positif GMP qui se divise avec a et b.

Exemples

Exemple #1 Exemple avec gmp_gcd()

<?php
$gcd = gmp_gcd("12", "21");
echo gmp_strval($gcd) . "\n";
?>

L'exemple ci-dessus va afficher :

3


PGCD étendu

  • « gmp_gcd
  • gmp_hamdist »
  • PHP Manual
  • Fonctions GMP
  • PGCD étendu

gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_gcdext — PGCD étendu

Description

array gmp_gcdext ( GMP $a , GMP $b )

Calcule les entiers g, s, et t, tels que a*s + b*t = g = gcd(a,b), où gcd est le pgcd de a et b. La fonction retourne un tableau avec les index g, s et t.

Cette fonction peut être utilisée pour résoudre des équations diophantines linéaires à deux variables. Ces équations n'ont qu'une seule solution entière, et elles sont de la forme : a*x + b*y = c. Pour plus d'informations, voyez les pages » "Diophantine Equation" sur MathWorld, en anglais.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un tableau de nombres GMP.

Exemples

Exemple #1 Résolution d'une équation Diophantine linéaire

<?php
// Résolution de l'équation a*s + b*t = g
// où a = 12, b = 21, g = gcd(12, 21) = 3
$a = gmp_init(12);
$b = gmp_init(21);
$g = gmp_gcd($a, $b);
$r = gmp_gcdext($a, $b);

$check_gcd = (gmp_strval($g) == gmp_strval($r['g']));
$eq_res = gmp_add(gmp_mul($a, $r['s']), gmp_mul($b, $r['t']));
$check_res = (gmp_strval($g) == gmp_strval($eq_res));

if ($check_gcd && $check_res) {
    $fmt = "Solution: %d*%d + %d*%d = %d\n";
    printf($fmt, gmp_strval($a), gmp_strval($r['s']), gmp_strval($b),
    gmp_strval($r['t']), gmp_strval($r['g']));
} else {
    echo "Erreur lors de la résolution de l'équation\n";
}

// Résultat : Solution : 12*2 + 21*-1 = 3
?>


Distance de Hamming

  • « gmp_gcdext
  • gmp_import »
  • PHP Manual
  • Fonctions GMP
  • Distance de Hamming

gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_hamdist — Distance de Hamming

Description

int gmp_hamdist ( GMP $a , GMP $b )

Retourne la distance de Hamming entre a et b. Les deux paramètres doivent être strictement positifs.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Doit être positif.

b

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Doit être positif.

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Exemples

Exemple #1 Exemple avec gmp_hamdist()

<?php
$ham1 = gmp_init("1001010011", 2);
$ham2 = gmp_init("1011111100", 2);
echo gmp_hamdist($ham1, $ham2) . "\n";

/* hamdist est équivalent à : */
echo gmp_popcount(gmp_xor($ham1, $ham2)) . "\n";
?>

L'exemple ci-dessus va afficher :

6
6

Voir aussi

  • gmp_popcount() - Comptage de population
  • gmp_xor() - OU exclusif logique


Importation depuis une chaîne binaire

  • « gmp_hamdist
  • gmp_init »
  • PHP Manual
  • Fonctions GMP
  • Importation depuis une chaîne binaire

gmp_import

(PHP 5 >= 5.6.1, PHP 7)

gmp_import — Importation depuis une chaîne binaire

Description

GMP gmp_import ( string $data , integer $word_size , integer $options )

Importe un nombre GMP depuis une chaîne binaire.

Liste de paramètres

data

La chaîne binaire à importer.

word_size

La valeur par défaut est 1. Le nombre d'octets dans chaque partie de données binaires. Principalement utilisé avec le paramètre options.

options

La valeur par défaut est GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Valeurs de retour

Retourne un nombre GMP ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gmp_import()

<?php
$number = gmp_import("\0");
echo gmp_strval($number) . "\n";

$number = gmp_import("\0\1\2");
echo gmp_strval($number) . "\n";
?>

L'exemple ci-dessus va afficher :

0
528


Crée un nombre GMP

  • « gmp_import
  • gmp_intval »
  • PHP Manual
  • Fonctions GMP
  • Crée un nombre GMP

gmp_init

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_init — Crée un nombre GMP

Description

GMP gmp_init ( mixed $number [, int $base = 0 ] )

Crée un nombre GMP, à partir d'un entier ou d'une chaîne.

Liste de paramètres

number

Un entier ou une chaîne de caractères. La chaîne peut être une représentation décimale, hexadécimale ou octale.

base

La base.

La base peut varier de 2 à 36. Si la base vaut 0 (valeur par défaut), la base actuelle est déterminée depuis les derniers caractères ; si les deux premiers caractères sont 0x ou 0X, on suppose que c'est de l'hexadécimal, sinon, si le premier caractère est "0", on suppose que c'est de l'octal, sinon, on suppose que c'est de la décimale.

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Historique

Version | Description
5.3.2 | Le paramètre base a été étendu de "2 à 36", à "2 à 62" et "-2 à -36".

Notes

Note:

Pour utiliser la base étendue introduite en PHP 5.3.2, vous devez compiler PHP avec GMP 4.2.0 ou supérieur.

Exemples

Exemple #1 Création d'un nombre GMP

<?php
$a = gmp_init(123456);
$b = gmp_init("0xFFFFDEBACDFEDF7200");
?>

Notes

Note:

Il n'est pas nécessaire d'appeler gmp_init() si vous voulez utiliser des entiers ou des chaînes à la place de nombre GMP dans les fonctions GMP, comme gmp_add(). Les arguments de ces fonctions sont automatiquement convertis en nombres GMP, si cette conversion est possible et nécessaire, en utilisant les mêmes règles que gmp_init().


Convertit un nombre GMP en entier

  • « gmp_init
  • gmp_invert »
  • PHP Manual
  • Fonctions GMP
  • Convertit un nombre GMP en entier

gmp_intval

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_intval — Convertit un nombre GMP en entier

Description

int gmp_intval ( GMP $gmpnumber )

convertit un nombre GMP en entier PHP natif.

Liste de paramètres

gmpnumber

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un entier, représentant le nombre gmpnumber.

Exemples

Exemple #1 Exemple avec gmp_intval()

<?php
// Affiche le bon résultat
echo gmp_intval("2147483647") . "\n";

// Affiche un mauvais résultat, hors de portée des entiers PHP
echo gmp_intval("2147483648") . "\n";

// Affiche le bon résultat
echo gmp_strval("2147483648") . "\n";
?>

L'exemple ci-dessus va afficher :

2147483647
2147483647
2147483648

Notes

Avertissement

Retourne un résultat cohérent uniquement si le nombre GMP peut être représenté par un entier PHP (i.e. type long signé). Si vous vous voulez simplement afficher un nombre GMP, utilisez plutôt gmp_strval().


Modulo inversé

  • « gmp_intval
  • gmp_jacobi »
  • PHP Manual
  • Fonctions GMP
  • Modulo inversé

gmp_invert

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_invert — Modulo inversé

Description

GMP gmp_invert ( GMP $a , GMP $b )

Calcule l'inverse de a modulo b.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un nombre GMP en cas de succès, ou FALSE si l'inverse n'existe pas.

Exemples

Exemple #1 Exemple avec gmp_invert()

<?php
echo gmp_invert("5", "10"); // pas d'inverse, n'affiche rien, le résultat est FALSE
$invert = gmp_invert("5", "11");
echo gmp_strval($invert) . "\n";
?>

L'exemple ci-dessus va afficher :

9


Symbole de Jacobi

  • « gmp_invert
  • gmp_legendre »
  • PHP Manual
  • Fonctions GMP
  • Symbole de Jacobi

gmp_jacobi

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_jacobi — Symbole de Jacobi

Description

int gmp_jacobi ( GMP $a , GMP $p )

Calcule le » symbole de Jacobi de a et p. p doit être positif et impair.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

p

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Doit être positif et impair.

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Exemples

Exemple #1 Exemple avec gmp_jacobi()

<?php
echo gmp_jacobi("1", "3") . "\n";
echo gmp_jacobi("2", "3") . "\n";
?>

L'exemple ci-dessus va afficher :

1
0


Symbole de Legendre

  • « gmp_jacobi
  • gmp_mod »
  • PHP Manual
  • Fonctions GMP
  • Symbole de Legendre

gmp_legendre

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_legendre — Symbole de Legendre

Description

int gmp_legendre ( GMP $a , GMP $p )

Calcule le » symbole de Legendre de a et p. p doit être positif et impair.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

p

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Doit être positif et impair.

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Exemples

Exemple #1 Exemple avec gmp_legendre()

<?php
echo gmp_legendre("1", "3") . "\n";
echo gmp_legendre("2", "3") . "\n";
?>

L'exemple ci-dessus va afficher :

1
0


Modulo GMP

  • « gmp_legendre
  • gmp_mul »
  • PHP Manual
  • Fonctions GMP
  • Modulo GMP

gmp_mod

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_mod — Modulo GMP

Description

GMP gmp_mod ( GMP $n , GMP $d )

Calcule n modulo d. Le résultat est toujours positif ou nul, car le signe de d est ignoré.

Liste de paramètres

n

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

d

Le modulo à évaluer.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Exemples

Exemple #1 Exemple avec gmp_mod()

<?php
$mod = gmp_mod("8", "3");
echo gmp_strval($mod) . "\n";
?>

L'exemple ci-dessus va afficher :

2


Multiplication de 2 nombres GMP

  • « gmp_mod
  • gmp_neg »
  • PHP Manual
  • Fonctions GMP
  • Multiplication de 2 nombres GMP

gmp_mul

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_mul — Multiplication de 2 nombres GMP

Description

GMP gmp_mul ( GMP $a , GMP $b )

Multiplie les nombres GMP a et b.

Liste de paramètres

a

Un nombre qui sera multiplié par b.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Un nombre qui sera multiplié par a.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Exemples

Exemple #1 Exemple avec gmp_mul()

<?php
$mul = gmp_mul("12345678", "2000");
echo gmp_strval($mul) . "\n";
?>

L'exemple ci-dessus va afficher :

24691356000


Opposé de nombre GMP

  • « gmp_mul
  • gmp_nextprime »
  • PHP Manual
  • Fonctions GMP
  • Opposé de nombre GMP

gmp_neg

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_neg — Opposé de nombre GMP

Description

GMP gmp_neg ( GMP $a )

Retourne l'opposé de a (-1 * a).

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne -a, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_neg()

<?php
$neg1 = gmp_neg("1");
echo gmp_strval($neg1) . "\n";
$neg2 = gmp_neg("-1");
echo gmp_strval($neg2) . "\n";
?>

L'exemple ci-dessus va afficher :

-1
1


Trouve le prochain nombre premier

  • « gmp_neg
  • gmp_or »
  • PHP Manual
  • Fonctions GMP
  • Trouve le prochain nombre premier

gmp_nextprime

(PHP 5 >= 5.2.0, PHP 7)

gmp_nextprime — Trouve le prochain nombre premier

Description

GMP gmp_nextprime ( int $a )

Trouve le prochain nombre premier.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne le prochain nombre premier plus grand que a, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_nextprime()

<?php
$prime1 = gmp_nextprime(10); // prochain nom premier supérieur à 10
$prime2 = gmp_nextprime(-1000); // prochain nombre premier supérieur à -1000

echo gmp_strval($prime1) . "\n";
echo gmp_strval($prime2) . "\n";
?>

L'exemple ci-dessus va afficher :

11
-997

Notes

Note:

Cette fonction utilise un algorithme probabiliste pour identifier un nombre premier et les chances de récupérer un nombre composite sont extrêmement faibles.


OU logique

  • « gmp_nextprime
  • gmp_perfect_square »
  • PHP Manual
  • Fonctions GMP
  • OU logique

gmp_or

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_or — OU logique

Description

GMP gmp_or ( GMP $a , GMP $b )

Calcule le OU logique de a et b.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Exemples

Exemple #1 Exemple avec gmp_or()

<?php
$or1 = gmp_or("0xfffffff2", "4");
echo gmp_strval($or1, 16) . "\n";
$or2 = gmp_or("0xfffffff2", "2");
echo gmp_strval($or2, 16) . "\n";
?>

L'exemple ci-dessus va afficher :

fffffff6
fffffff2


Carré parfait GMP

  • « gmp_or
  • gmp_popcount »
  • PHP Manual
  • Fonctions GMP
  • Carré parfait GMP

gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_perfect_square — Carré parfait GMP

Description

bool gmp_perfect_square ( GMP $a )

Vérifie si a est un carré parfait.

Liste de paramètres

a

Le nombre à vérifier.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne TRUE si a est un carré parfait, FALSE sinon.

Exemples

Exemple #1 Exemple avec gmp_perfect_square()

<?php
// 3 * 3, carré parfait
var_dump(gmp_perfect_square("9"));

// pas un carré parfait
var_dump(gmp_perfect_square("7"));

// 1234567890 * 1234567890, carré parfait
var_dump(gmp_perfect_square("1524157875019052100"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
bool(true)

Voir aussi

  • gmp_sqrt() - Racine carrée GMP
  • gmp_sqrtrem() - Racine carrée avec reste GMP


Comptage de population

  • « gmp_perfect_square
  • gmp_pow »
  • PHP Manual
  • Fonctions GMP
  • Comptage de population

gmp_popcount

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_popcount — Comptage de population

Description

int gmp_popcount ( GMP $a )

Dénombre la population de a.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

La population de a, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec gmp_popcount()

<?php
$pop1 = gmp_init("10000101", 2); // 3 1's
echo gmp_popcount($pop1) . "\n";
$pop2 = gmp_init("11111110", 2); // 7 1's
echo gmp_popcount($pop2) . "\n";
?>

L'exemple ci-dessus va afficher :

3
7


Puissance

  • « gmp_popcount
  • gmp_powm »
  • PHP Manual
  • Fonctions GMP
  • Puissance

gmp_pow

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_pow — Puissance

Description

GMP gmp_pow ( GMP $base , int $exp )

Élève base à la puissance exp.

Liste de paramètres

base

La base.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

exp

La puissance.

Valeurs de retour

Le nouveau nombre, sous la forme d'un nombre GMP. Dans le cas de 0^0, gmp_pow() retourne 1.

Exemples

Exemple #1 Exemple avec gmp_pow()

<?php
$pow1 = gmp_pow("2", 31);
echo gmp_strval($pow1) . "\n";
$pow2 = gmp_pow("0", 0);
echo gmp_strval($pow2) . "\n";
$pow3 = gmp_pow("2", -1); // Négatif, génère un warning
echo gmp_strval($pow3) . "\n";
?>

L'exemple ci-dessus va afficher :

2147483648
1


Puissance et modulo

  • « gmp_pow
  • gmp_prob_prime »
  • PHP Manual
  • Fonctions GMP
  • Puissance et modulo

gmp_powm

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_powm — Puissance et modulo

Description

GMP gmp_powm ( GMP $base , GMP $exp , GMP $mod )

Calcule (base puissance exp) modulo mod. Si exp est négatif, le résultat est indéfini.

Liste de paramètres

base

La base.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

exp

La puissance.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

mod

Le modulo.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Le nouveau nombre, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_powm()

<?php
$pow1 = gmp_powm("2", "31", "2147483649");
echo gmp_strval($pow1) . "\n";
?>

L'exemple ci-dessus va afficher :

2147483648


Nombre GMP probablement premier

  • « gmp_powm
  • gmp_random_bits »
  • PHP Manual
  • Fonctions GMP
  • Nombre GMP probablement premier

gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_prob_prime — Nombre GMP probablement premier

Description

int gmp_prob_prime ( GMP $a [, int $reps = 10 ] )

La fonction utilise le test de probabilité Miller-Rabin.

Liste de paramètres

a

Le nombre à vérifier.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

reps

reps peut raisonnablement varier de 5 à 10 (par défaut, c'est 10); une valeur supérieure réduit la probabilité qu'un nombre non premier soit identifié comme "probablement" premier.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Si gmp_prob_prime() retourne 0, a est défini comme non premier. Si gmp_prob_prime() retourne 1, alors a est "probablement" premier. Si gmp_prob_prime() retourne 2, alors a est sûrement premier.

Exemples

Exemple #1 Exemple avec gmp_prob_prime()

<?php
// pas premier
echo gmp_prob_prime("6") . "\n";

// probablement premier
echo gmp_prob_prime("1111111111111111111") . "\n";

// premier
echo gmp_prob_prime("11") . "\n";
?>

L'exemple ci-dessus va afficher :

0
1
2


Génère un nombre aléatoire

  • « gmp_prob_prime
  • gmp_random_range »
  • PHP Manual
  • Fonctions GMP
  • Génère un nombre aléatoire

gmp_random_bits

(PHP 5 >= 5.6.3, PHP 7)

gmp_random_bits — Génère un nombre aléatoire

Description

GMP gmp_random_bits ( integer $bits )

Génère un nombre aléatoire. Le nombre sera dans l'intervalle 0 et (2 ** bits) - 1.

Le paramètre bits doit être plus grand que 0, et la valeur maximale sera restreinte par la mémoire disponible.

Liste de paramètres

bits

Le nombre d'octets.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un nombre GMP aléatoire.

Exemples

Exemple #1 Exemple avec gmp_random_bits()

<?php
$rand1 = gmp_random_bits(3); // nombre aléatoire entre 0 et 7
$rand2 = gmp_random_bits(5); // nombre aléatoire entre 0 et 31

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

L'exemple ci-dessus va afficher :

3
15


Génère un nombre aléatoire

  • « gmp_random_bits
  • gmp_random_seed »
  • PHP Manual
  • Fonctions GMP
  • Génère un nombre aléatoire

gmp_random_range

(PHP 5 >= 5.6.3, PHP 7)

gmp_random_range — Génère un nombre aléatoire

Description

GMP gmp_random_range ( GMP $min , GMP $max )

Génère un nombre aléatoire. Le nombre sera dans l'intervalle min et max.

min et max peuvent être tous les deux négatifs, mais min doit toujours être plus petit que max.

Liste de paramètres

min

Un nombre GMP représentant la borne inférieure pour le nombre aléatoire.

max

Un nombre GMP représentant la borne supérieure pour le nombre aléatoire.

Valeurs de retour

Un nombre GMP aléatoire.

Exemples

Exemple #1 Exemple avec gmp_random_range()

<?php
$rand1 = gmp_random_range(0, 100);    // nombre aléatoire entre 0 et 100
$rand2 = gmp_random_range(-100, -10); // nombre aléatoire entre -100 et -10

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

L'exemple ci-dessus va afficher :

42
-67


Sets the RNG seed

  • « gmp_random_range
  • gmp_random »
  • PHP Manual
  • Fonctions GMP
  • Sets the RNG seed

gmp_random_seed

(PHP 7)

gmp_random_seed — Sets the RNG seed

Description

mixed gmp_random_seed ( mixed $seed )

Liste de paramètres

seed

The seed to be set for the gmp_random(), gmp_random_bits(), and gmp_random_range() functions.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Returns NULL on success.

Erreurs / Exceptions

Issues an E_WARNING and returns FALSE if seed is not valid.

Exemples

Exemple #1 gmp_random_seed() example

<?php
// set the seed
gmp_random_seed(100);

var_dump(gmp_strval(gmp_random(1)));

// set the seed to something else
gmp_random_seed(gmp_init(-100));

var_dump(gmp_strval(gmp_random_bits(10)));

// set the seed to something invalid
var_dump(gmp_random_seed('not a number'));

L'exemple ci-dessus va afficher :

string(20) "15370156633245019617"
string(3) "683"

Warning: gmp_random_seed(): Unable to convert variable to GMP - string is not an integer in %s on line %d
bool(false)

Voir aussi

  • gmp_init() - Crée un nombre GMP
  • gmp_random() - Nombre GMP aléatoire
  • gmp_random_bits() - Génère un nombre aléatoire
  • gmp_random_range() - Génère un nombre aléatoire


Nombre GMP aléatoire

  • « gmp_random_seed
  • gmp_root »
  • PHP Manual
  • Fonctions GMP
  • Nombre GMP aléatoire

gmp_random

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_random — Nombre GMP aléatoire

Description

GMP gmp_random ([ int $limiter = 20 ] )

Génère un nombre aléatoire. Ce nombre sera compris entre zéro et le nombre de bits par limb multiplié par limiter. Si limiter est négatif, un nombre négatif est généré.

Un limb est un mécanisme interne de GMP. Le nombre de bits dans un limb n'est pas statique, et peut varier entre les systèmes. En général, le nombre de bits par limb est 16 ou 32, mais ce n'est pas garantit.

Liste de paramètres

limiter

Le limiteur.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Un nombre GMP aléatoire.

Exemples

Exemple #1 Exemple avec gmp_random()

<?php
$rand1 = gmp_random(1); // nombre aléatoire de 0 à 1 * bits par limb
$rand2 = gmp_random(2); // nombre aléatoire de 0 à 2 * bits par limb

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

L'exemple ci-dessus va afficher :

1915834968
8642564075890328087


Récupère la partie entière de la n-ème racine

  • « gmp_random
  • gmp_rootrem »
  • PHP Manual
  • Fonctions GMP
  • Récupère la partie entière de la n-ème racine

gmp_root

(PHP 5 >= 5.6.0, PHP 7)

gmp_root — Récupère la partie entière de la n-ème racine

Description

GMP gmp_root ( GMP $a , int $nth )

Récupère la nth-ème racine de a et retourne la partie entière du résultat.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

nth

La racine positive à prendre de a.

Valeurs de retour

La partie entière de la racine résultante, sous la forme d'un nombre GMP.


Récupère la partie entière et le reste de la n-ème racine

  • « gmp_root
  • gmp_scan0 »
  • PHP Manual
  • Fonctions GMP
  • Récupère la partie entière et le reste de la n-ème racine

gmp_rootrem

(PHP 5 >= 5.6.0, PHP 7)

gmp_rootrem — Récupère la partie entière et le reste de la n-ème racine

Description

array gmp_rootrem ( GMP $a , int $nth )

Récupère la nth-ème racine de a et retourne la partie entière et le reste du résultat.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

nth

La racine positive à prendre de a.

Valeurs de retour

Un tableau contenant deux élément ; le premier est la partie entière de la racine, et le second, le reste. Les deux sont représentés sous la forme d'un nombre GMP.


Recherche 0

  • « gmp_rootrem
  • gmp_scan1 »
  • PHP Manual
  • Fonctions GMP
  • Recherche 0

gmp_scan0

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_scan0 — Recherche 0

Description

int gmp_scan0 ( GMP $a , int $start )

Recherche dans a, en commençant à la position start, vers les bits de poids lourd, jusqu'à ce qu'elle rencontre un bit à 0.

Liste de paramètres

a

Le nombre à analyser.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

start

Le bit de départ.

Valeurs de retour

Retourne l'index du bit trouvé, sous la forme d'un entier. L'index commence à 0.

Exemples

Exemple #1 Exemple avec gmp_scan0()

<?php
// le bit "0" est trouvé à la position 3. l'index commence à 0
$s1 = gmp_init("10111", 2);
echo gmp_scan0($s1, 0) . "\n";

// le bit "0" est trouvé à la position 7. l'index commence à 5
$s2 = gmp_init("101110000", 2);
echo gmp_scan0($s2, 5) . "\n";
?>

L'exemple ci-dessus va afficher :

3
7


Recherche 1

  • « gmp_scan0
  • gmp_setbit »
  • PHP Manual
  • Fonctions GMP
  • Recherche 1

gmp_scan1

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_scan1 — Recherche 1

Description

int gmp_scan1 ( GMP $a , int $start )

Recherche dans a, en commençant à la position start, vers les bits de poids lourd, jusqu'à ce qu'elle rencontre un bit à 1.

Liste de paramètres

a

Le nombre à analyser.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

start

Le bit de départ.

Valeurs de retour

Retourne l'index du bit trouvé, sous la forme d'un entier. Si aucun bit n'est trouvé, -1 sera retourné.

Exemples

Exemple #1 Exemple avec gmp_scan1()

<?php
// "1" bit est trouvé à la position 3. l'index commence à 0
$s1 = gmp_init("01000", 2);
echo gmp_scan1($s1, 0) . "\n";

// "1" bit est trouvé à la position 9. l'index commence à 5
$s2 = gmp_init("01000001111", 2);
echo gmp_scan1($s2, 5) . "\n";
?>

L'exemple ci-dessus va afficher :

3
9


Modifie un bit

  • « gmp_scan1
  • gmp_sign »
  • PHP Manual
  • Fonctions GMP
  • Modifie un bit

gmp_setbit

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_setbit — Modifie un bit

Description

void gmp_setbit ( GMP &$a , int $index [, bool $bit_on = true ] )

Modifie le bit index dans a.

Liste de paramètres

a

La valeur à modifier.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

index

L'index de l'octet à définir. L'index 0 représente l'octet le moins significatif.

bit_on

TRUE pour définir l'octet (défini à 1/on) ; FALSE pour le ré-initialiser (défini à 0/off).

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Exemples

Exemple #1 Exemple avec gmp_setbit() - index 0

<?php
$a = gmp_init("2"); //
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0); // 0b10 devient maintenant 0b11
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

L'exemple ci-dessus va afficher :

2 -> 0b10
3 -> 0b11

Exemple #2 Exemple avec gmp_setbit() - index 1

<?php
$a = gmp_init("0xfd");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 1); // index commence à 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

L'exemple ci-dessus va afficher :

253 -> 0b11111101
255 -> 0b11111111

Exemple #3 Exemple avec gmp_setbit() - annule un octet

<?php
$a = gmp_init("0xff");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0, false); // clear bit at index 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

L'exemple ci-dessus va afficher :

255 -> 0b11111111
254 -> 0b11111110

Notes

Note:

Contrairement à la plupart des autres fonctions GMP, gmp_setbit() doit être appelée avec une ressource GMP existant déjà (en utilisant gmp_init() par exemple). Elle ne sera pas automatiquement créée.

Voir aussi

  • gmp_clrbit() - Annule un octet
  • gmp_testbit() - Teste si un octet est défini


Signe du nombre GMP

  • « gmp_setbit
  • gmp_sqrt »
  • PHP Manual
  • Fonctions GMP
  • Signe du nombre GMP

gmp_sign

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_sign — Signe du nombre GMP

Description

int gmp_sign ( GMP $a )

Vérifie le signe d'un nombre.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne le signe de a : 1 si a est positif, -1 s'il est négatif et 0 si a est égal à zéro.

Exemples

Exemple #1 Exemple avec gmp_sign()

<?php
// positif
echo gmp_sign("500") . "\n";

// negatif
echo gmp_sign("-500") . "\n";

// zéro
echo gmp_sign("0") . "\n";
?>

L'exemple ci-dessus va afficher :

1
-1
0

Voir aussi

  • gmp_abs() - Valeur absolue GMP
  • abs() - Valeur absolue


Racine carrée GMP

  • « gmp_sign
  • gmp_sqrtrem »
  • PHP Manual
  • Fonctions GMP
  • Racine carrée GMP

gmp_sqrt

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_sqrt — Racine carrée GMP

Description

GMP gmp_sqrt ( GMP $a )

Calcule la racine carrée GMP du nombre a.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

La partie entière de la racine carrée, sous la forme d'un nombre GMP.

Exemples

Exemple #1 Exemple avec gmp_sqrt()

<?php
$sqrt1 = gmp_sqrt("9");
$sqrt2 = gmp_sqrt("7");
$sqrt3 = gmp_sqrt("1524157875019052100");

echo gmp_strval($sqrt1) . "\n";
echo gmp_strval($sqrt2) . "\n";
echo gmp_strval($sqrt3) . "\n";
?>

L'exemple ci-dessus va afficher :

3
2
1234567890


Racine carrée avec reste GMP

  • « gmp_sqrt
  • gmp_strval »
  • PHP Manual
  • Fonctions GMP
  • Racine carrée avec reste GMP

gmp_sqrtrem

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_sqrtrem — Racine carrée avec reste GMP

Description

array gmp_sqrtrem ( GMP $a )

Calcule la racine carrée d'un nombre GMP, avec reste.

Liste de paramètres

a

Le nombre à traiter.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne un tableau dont le premier élément est la racine carrée entière de a (voir aussi gmp_sqrt()), et le second est le reste de (i.e., la différence entre a et le carré du premier élément).

Exemples

Exemple #1 Exemple avec gmp_sqrtrem()

<?php
list($sqrt1, $sqrt1rem) = gmp_sqrtrem("9");
list($sqrt2, $sqrt2rem) = gmp_sqrtrem("7");
list($sqrt3, $sqrt3rem) = gmp_sqrtrem("1048576");

echo gmp_strval($sqrt1) . ", " . gmp_strval($sqrt1rem) . "\n";
echo gmp_strval($sqrt2) . ", " . gmp_strval($sqrt2rem) . "\n";
echo gmp_strval($sqrt3) . ", " . gmp_strval($sqrt3rem) . "\n";
?>

L'exemple ci-dessus va afficher :

3, 0
2, 3
1024, 0


Convertit un nombre GMP en chaîne

  • « gmp_sqrtrem
  • gmp_sub »
  • PHP Manual
  • Fonctions GMP
  • Convertit un nombre GMP en chaîne

gmp_strval

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_strval — Convertit un nombre GMP en chaîne

Description

string gmp_strval ( GMP $gmpnumber [, int $base = 10 ] )

Convertit un nombre GMP en chaîne de caractères, dans la base base. La base par défaut est 10.

Liste de paramètres

gmpnumber

Le nombre GMP qui doit être converti.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

base

La base du nombre retourné. Par défaut, vaut 10. Les valeurs possibles vont de 2 à 62 et de -2 à -36.

Valeurs de retour

Le nombre, sous la forme d'une chaîne de caractères.

Historique

Version | Description
5.3.2 | Le paramètre base a été étendu de "2 à 36", à "2 à 62" et "-2 à -36".

Notes

Note:

Pour utiliser la base étendue introduite en PHP 5.3.2, vous devez compiler PHP avec GMP 4.2.0 ou supérieur.

Exemples

Exemple #1 Convertir un nombre GMP en chaîne de caractères

<?php
$a = gmp_init("0x41682179fbf5");
printf("Décimal : %s, 36-based : %s", gmp_strval($a), gmp_strval($a,36));
?>


Soustraction de 2 nombres GMP

  • « gmp_strval
  • gmp_testbit »
  • PHP Manual
  • Fonctions GMP
  • Soustraction de 2 nombres GMP

gmp_sub

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_sub — Soustraction de 2 nombres GMP

Description

GMP gmp_sub ( GMP $a , GMP $b )

Soustrait b de a et retourne le résultat.

Liste de paramètres

a

Le nombre à soustraire.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Le nombre à soustraire de a.

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Exemples

Exemple #1 Exemple avec gmp_sub()

<?php
$sub = gmp_sub("281474976710656", "4294967296"); // 2^48 - 2^32
echo gmp_strval($sub) . "\n";
?>

L'exemple ci-dessus va afficher :

281470681743360


Teste si un octet est défini

  • « gmp_sub
  • gmp_xor »
  • PHP Manual
  • Fonctions GMP
  • Teste si un octet est défini

gmp_testbit

(PHP 5 >= 5.3.0, PHP 7)

gmp_testbit — Teste si un octet est défini

Description

bool gmp_testbit ( GMP $a , int $index )

Teste si un octet est défini.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

index

L'octet à tester

Valeurs de retour

Retourne TRUE si l'octet est défini dans la ressource $a, FALSE sinon.

Erreurs / Exceptions

Une alerte de niveau E_WARNING est émise lorsque le paramètre index est inférieur à 0 ; FALSE sera retourné dans ce cas.

Exemples

Exemple #1 Exemple avec gmp_testbit()

<?php
$n = gmp_init("1000000");
var_dump(gmp_testbit($n, 1));
gmp_setbit($n, 1);
var_dump(gmp_testbit($n, 1));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

  • gmp_setbit() - Modifie un bit
  • gmp_clrbit() - Annule un octet


OU exclusif logique

  • « gmp_testbit
  • GMP »
  • PHP Manual
  • Fonctions GMP
  • OU exclusif logique

gmp_xor

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_xor — OU exclusif logique

Description

GMP gmp_xor ( GMP $a , GMP $b )

calcule le OU exclusif logique de a et b.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Une ressource GMP en PHP 5.5 et antérieurs, ou un objet GMP en PHP 5.6 et suivants.

Exemples

Exemple #1 Exemple avec gmp_xor()

<?php
$xor1 = gmp_init("1101101110011101", 2);
$xor2 = gmp_init("0110011001011001", 2);

$xor3 = gmp_xor($xor1, $xor2);

echo gmp_strval($xor3, 2) . "\n";
?>

L'exemple ci-dessus va afficher :

1011110111000100


La classe GMP

(PHP 5 >= 5.6.0, PHP 7)

Introduction

Un nombre GMP. Ces objets supporte la surcharge des opérateurs arithmétiques, sur les bits et de comparaison.

Note:

Aucune interface orientée objet n'est fournie pour manipuler les objets GMP. Veuillez utiliser l'API procédurale de GMP.

GMP implements Serializable {
}


Lapack

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Lapack — La class Lapack
    • Lapack::eigenValues — Cette fonction retourne les vecteurs propres pour une matrice carré donnée
    • Lapack::identity — Return an identity matrix
    • Lapack::leastSquaresByFactorisation — Calculer la solution des moindres carrés linéaires d'une matrice utilisant factorisation QR
    • Lapack::leastSquaresBySVD — Résoudre le problème des moindres carrés linéaires, en utilisant SVD
    • Lapack::pseudoInverse — Calculer l'inverse d'une matrice
    • Lapack::singularValues — Calcule des valeurs singulières d'une matrice
    • Lapack::solveLinearEquation — Résolution d'un système d'équation linéaire
  • LapackException — La classe LapackException


Introduction

LAPACK est écrit en Fortran 90 et fournit des routines pour la résolution pour les systèmes d'équations linéaires simultanées, les solutions des moindres carrées des systèmes linéaires d'équations, problèmes de vecteurs propres, et les problèmes de valeurs singulières. Cette extension enveloppe la librairie LAPACKE C qui permet d'accéder à plusieurs processus exposés par la librairie. La plupart des fonctions travaillent avec des tableaux de tableaux, représentant des matrices rectangulaires rangées par ordre de ligne - donc une matric de 2 par 2 [1 2; 3 4] serait un tableau (array(1, 2), array(3, 4))


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Lapack nécessite les bibliothèques LAPACK et LAPACKE.


Installation

La plupart des distributions de paquets LAPACK n'inclut pas lapacke, aussi, la façon la plus simple est une compilation depuis la source :

  svn co https://icl.cs.utk.edu/svn/lapack-dev/lapack/trunk lapack
  cd lapack
  mkdir build
  cd build
  cmake -D BUILD_SHARED_LIBS=ON -D LAPACKE=ON ../
  make
  sudo make install


  • « Types de ressources
  • Lapack »
  • PHP Manual
  • Lapack
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


La class Lapack

(PECL lapack >= 0.1.0)

Introduction

LAPACK est écrit en Fortran 90 et fournit des routines pour la résolution pour les systèmes d'équations linéaires simultanées, les solutions des moindres carrées des systèmes linéaires d'équations, problèmes de vecteurs propres, et les problèmes de valeurs singulières. Cette extension enveloppe la librairie LAPACKE C qui permet d'accéder à plusieurs processus exposés par la librairie. La plupart des fonctions travaillent avec des tableaux de tableaux, représentant des matrices rectangulaires rangées par ordre de ligne - donc une matric de 2 par 2 [1 2; 3 4] serait un tableau (array(1, 2), array(3, 4)).

Toutes les fonction sont appelées statiquement, par exemple $eig = Lapack::eigenvalues($a);

Synopsis de la classe

Lapack {
/* Méthodes */
public static array eigenValues ( array $a [, array $left [, array $right ]] )
public static array identity ( int $n )
public static array leastSquaresByFactorisation ( array $a , array $b )
public static array leastSquaresBySVD ( array $a , array $b )
public static array pseudoInverse ( array $a )
public static array singularValues ( array $a )
public static array solveLinearEquation ( array $a , array $b )
}

Sommaire

  • Lapack::eigenValues — Cette fonction retourne les vecteurs propres pour une matrice carré donnée
  • Lapack::identity — Return an identity matrix
  • Lapack::leastSquaresByFactorisation — Calculer la solution des moindres carrés linéaires d'une matrice utilisant factorisation QR
  • Lapack::leastSquaresBySVD — Résoudre le problème des moindres carrés linéaires, en utilisant SVD
  • Lapack::pseudoInverse — Calculer l'inverse d'une matrice
  • Lapack::singularValues — Calcule des valeurs singulières d'une matrice
  • Lapack::solveLinearEquation — Résolution d'un système d'équation linéaire


Cette fonction retourne les vecteurs propres pour une matrice carré donnée

  • « Lapack
  • Lapack::identity »
  • PHP Manual
  • Lapack
  • Cette fonction retourne les vecteurs propres pour une matrice carré donnée

Lapack::eigenValues

(PECL lapack >= 0.1.0)

Lapack::eigenValues — Cette fonction retourne les vecteurs propres pour une matrice carré donnée

Description

public static array Lapack::eigenValues ( array $a [, array $left [, array $right ]] )

Calcul les vecteurs propres pour la matrice carrée, et optionnellement calcul les vecteurs propres droite et gauche.

Liste de paramètres

a

La matrice pour calculer ses vecteurs propres.

left

Paramètre optionnel - si c'est un tableau passé en paramètre, il sera rempli avec les vecteurs propres gauches.

right

Paramètre optionnel - si c'est un tableau passé en paramètre, il sera rempli avec les vecteurs propres droites.

Valeurs de retour

Retourne un tableau de tableaux représentant les vecteurs propres pour le tableau.

Exemples

Exemple #1 Utilisation de la fonction Lapack::eigenValues():

<?php

 $a = array(
     array(-1.01,   0.86,  -4.60,  3.31,  -4.81  ),
     array( 3.98,   0.53,  -7.04,  5.29,   3.55  ),
     array( 3.30,   8.26,  -3.89,  8.20,  -1.51  ),
     array( 4.43,   4.96,  -7.66, -7.33,   6.18  ),
     array( 7.31,  -6.43,  -6.16,  2.47,   5.58  ),
 );

 $result = Lapack::eigenValues($a);

 ?>


Return an identity matrix

  • « Lapack::eigenValues
  • Lapack::leastSquaresByFactorisation »
  • PHP Manual
  • Lapack
  • Return an identity matrix

Lapack::identity

(PECL lapack >= 0.1.0)

Lapack::identity — Return an identity matrix

Description

public static array Lapack::identity ( int $n )

Retourne une matrice d'identité de taille n.

Liste de paramètres

n

La hauteur et la largeur de la matrice d'identité.

Valeurs de retour

Retournera un tableau de n tableaux, chacun contenant n entrées. Les diagonales de la matrice seront 1s, les autres positions 0.


Calculer la solution des moindres carrés linéaires d'une matrice utilisant factorisation QR

  • « Lapack::identity
  • Lapack::leastSquaresBySVD »
  • PHP Manual
  • Lapack
  • Calculer la solution des moindres carrés linéaires d'une matrice utilisant factorisation QR

Lapack::leastSquaresByFactorisation

(PECL lapack >= 0.1.0)

Lapack::leastSquaresByFactorisation — Calculer la solution des moindres carrés linéaires d'une matrice utilisant factorisation QR

Description

public static array Lapack::leastSquaresByFactorisation ( array $a , array $b )

Résoudre le problème des moindres carrés linéaires, trouver min x in || B - Ax || Retourne un tableau représentant x. S'attends à des tableaux de tableaux, et retournera un tableau de tableaux dans la dimension nombre de colonnes de B x nombre de colonnes de A. Utilise la factorisation QR ou LQ sur une matrice A.

Liste de paramètres

a

Matrice A

b

Matrice B

Valeurs de retour

Tableau de matrice de solution

Exemples

Exemple #1 Utilisation de Lapack::leastSquaresByFactorisation():

<?php

 $a = array(
     array( 1.44,  -7.84,  -4.39,   4.53),
     array(-9.96,  -0.28,  -3.24,   3.83),
     array(-7.55,   3.24,   6.27,  -6.64),
     array( 8.34,   8.09,   5.28,   2.06),
     array( 7.08,   2.52,   0.74,  -2.47),
     array(-5.45,  -5.70,  -1.19,   4.70),
 );

 $b = array(
     array( 8.58,   9.35),
     array( 8.26,  -4.43),
     array( 8.48,  -0.70),
     array(-5.28,  -0.26),
     array( 5.72,  -7.36),
     array( 8.93,  -2.52),
 );

 $result = Lapack::leastSquaresByFactorisation($a, $b);
 ?>


Résoudre le problème des moindres carrés linéaires, en utilisant SVD

  • « Lapack::leastSquaresByFactorisation
  • Lapack::pseudoInverse »
  • PHP Manual
  • Lapack
  • Résoudre le problème des moindres carrés linéaires, en utilisant SVD

Lapack::leastSquaresBySVD

(PECL lapack >= 0.1.0)

Lapack::leastSquaresBySVD — Résoudre le problème des moindres carrés linéaires, en utilisant SVD

Description

public static array Lapack::leastSquaresBySVD ( array $a , array $b )

Résoudre le problème des moindres carrés linéaires, trouver min x in || B - Ax || Retourne un tableau représentant x. S'attends à des tableaux de tableaux, et retournera un tableau de tableaux dans la dimension nombre de colonnes de B x nombre de colonnes de A. Utilise SVD avec l'agorithme "diviser pour régner".

Liste de paramètres

a

Matrice A

b

Matrice B

Valeurs de retour

Retourne la solution en un tableau de tableaux.

Exemples

Exemple #1 Utilisation de Lapack::leastSquaresBySVD():

<?php

  $a = array(
      array( 1.44,  -7.84,  -4.39,   4.53),
      array(-9.96,  -0.28,  -3.24,   3.83),
      array(-7.55,   3.24,   6.27,  -6.64),
      array( 8.34,   8.09,   5.28,   2.06),
      array( 7.08,   2.52,   0.74,  -2.47),
      array(-5.45,  -5.70,  -1.19,   4.70),
  );

  $b = array(
      array( 8.58,   9.35),
      array( 8.26,  -4.43),
      array( 8.48,  -0.70),
      array(-5.28,  -0.26),
      array( 5.72,  -7.36),
      array( 8.93,  -2.52),
  );

  $result = Lapack::leastSquaresBySVD($a, $b);

  ?>


Calculer l'inverse d'une matrice

  • « Lapack::leastSquaresBySVD
  • Lapack::singularValues »
  • PHP Manual
  • Lapack
  • Calculer l'inverse d'une matrice

Lapack::pseudoInverse

(PECL lapack >= 0.1.0)

Lapack::pseudoInverse — Calculer l'inverse d'une matrice

Description

public static array Lapack::pseudoInverse ( array $a )

Trouve la pseudo-inverse d'une matrice A.

Liste de paramètres

a

Matrice à inverser

Valeurs de retour

Matrice inversée (tableaux de tableaux).

Exemples

Exemple #1 Utilisation de Lapack::pseudoInverse():

<?php

   $a = array(
       array( 8, 1, 6 ),
       array( 3, 5, 7 ),
       array( 4, 9, 2 ),
   );

   $result = Lapack::pseudoInverse($a);

   ?>


Calcule des valeurs singulières d'une matrice

  • « Lapack::pseudoInverse
  • Lapack::solveLinearEquation »
  • PHP Manual
  • Lapack
  • Calcule des valeurs singulières d'une matrice

Lapack::singularValues

(PECL lapack >= 0.1.0)

Lapack::singularValues — Calcule des valeurs singulières d'une matrice

Description

public static array Lapack::singularValues ( array $a )

Calculer les valeurs singulières d'une matrice A.

Liste de paramètres

a

La matrice des valeurs singulières à calculer

Valeurs de retour

Les valeurs singulières

Exemples

Exemple #1 Utilisation de Lapack::singularValues():

<?php

    $a = array(
        array( 7.52,  -1.10,  -7.95,  1.08  ),
        array(-0.76,   0.62,   9.34, -7.10  ),
        array( 5.13,   6.62,  -5.66,  0.87  ),
        array(-4.75,   8.52,   5.75,  5.30  ),
        array( 1.33,   4.91,  -5.49, -3.52  ),
        array(-2.40,  -6.77,   2.34,  3.95  ),
    );

    $result = Lapack::singularValues($a);

    ?>


Résolution d'un système d'équation linéaire

  • « Lapack::singularValues
  • LapackException »
  • PHP Manual
  • Lapack
  • Résolution d'un système d'équation linéaire

Lapack::solveLinearEquation

(PECL lapack >= 0.1.0)

Lapack::solveLinearEquation — Résolution d'un système d'équation linéaire

Description

public static array Lapack::solveLinearEquation ( array $a , array $b )

La fonction calcul la solution du système d'équations linéaire avec une matrice carré A et de plusieurs côtés droits de B. Résolution de A * X = B pour plusieurs B.

Liste de paramètres

a

Matrice carrée d'équations linéaires

b

Côté droit à résoudre

Valeurs de retour

Matrice X

Exemples

Exemple #1 Utilisation de Lapack::singularValues():

<?php

    $a = array(
        array( 6.80,  -6.05,  -0.45,   8.32,  -9.67   ),
        array(-2.11,  -3.30,   2.58,   2.71,  -5.14   ),
        array( 5.66,   5.36,  -2.70,   4.35,  -7.26   ),
        array( 5.97,  -4.44,   0.27,  -7.17,   6.08   ),
        array( 8.23,   1.08,   9.04,   2.14,  -6.87   ),
    );

    $b = array(
       array(  4.02,  -1.56,   9.81   ),
       array(  6.19,   4.00,  -4.09   ),
       array( -8.22,  -8.67,  -4.57   ),
       array( -7.57,   1.75,  -8.61   ),
       array( -3.03,   2.86,   8.99   ),
    );

    $result = Lapack::solveLinearEquation($a, $b);

    ?>


La classe LapackException

(PECL lapack >= 0.1.0)

Introduction

Exception lancée lorsqu'une erreur est attrapée dans les fonctions LAPACK.

Synopsis de la classe

lapackexception extends Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Fonctions mathématiques

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Math
    • abs — Valeur absolue
    • acos — Arc cosinus
    • acosh — Arc cosinus hyperbolique
    • asin — Arc sinus
    • asinh — Arc sinus hyperbolique
    • atan2 — Arc tangent de deux variables
    • atan — Arc tangente
    • atanh — Arc tangente hyperbolique
    • base_convert — Convertit un nombre entre des bases arbitraires
    • bindec — Convertit de binaire en décimal
    • ceil — Arrondit au nombre supérieur
    • cos — Cosinus
    • cosh — Cosinus hyperbolique
    • decbin — Convertit de décimal en binaire
    • dechex — Convertit de décimal en hexadécimal
    • decoct — Convertit de décimal en octal
    • deg2rad — Convertit un nombre de degrés en radians
    • exp — Calcul l'exponentielle de e
    • expm1 — Calcule précisément exponentiel moins un
    • floor — Arrondit à l'entier inférieur
    • fmod — Retourne le reste de la division
    • getrandmax — Plus grande valeur aléatoire possible
    • hexdec — Convertit de hexadécimal en décimal
    • hypot — Calcul la longueur de l'hypoténuse d'un triangle à angle droit
    • intdiv — Integer division
    • is_finite — Indique si un nombre est fini
    • is_infinite — Indique si un nombre est infini
    • is_nan — Indique si une valeur n'est pas un nombre
    • lcg_value — Générateur de congruence combinée linéaire
    • log10 — Logarithme en base 10
    • log1p — Calcule précisément log(1 + nombre)
    • log — Logarithme naturel (népérien)
    • max — La plus grande valeur
    • min — La plus petite valeur
    • mt_getrandmax — La plus grande valeur aléatoire possible
    • mt_rand — Génère une meilleure valeur aléatoire
    • mt_srand — Initialise une meilleure valeur aléatoire
    • octdec — Conversion d'octal en décimal
    • pi — Retourne la valeur de pi
    • pow — Expression exponentielle
    • rad2deg — Conversion de radians en degrés
    • rand — Génère une valeur aléatoire
    • round — Arrondit un nombre à virgule flottante
    • sin — Sinus
    • sinh — Sinus hyperbolique
    • sqrt — Racine carrée
    • srand — Initialise le générateur de nombres aléatoires
    • tan — Tangente
    • tanh — Tangente hyperbolique


Introduction

Ces fonctions ne sont capables de manipuler que des entiers entier, ou nombres à virgule flottante (float). Si vous avez besoin de manipuler des nombres plus grands, reportez-vous aux fonctions mathématiques sur des nombres de grande taille.

Voir aussi la page du manuel sur les opérateurs arithmétiques.


Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

Constantes mathématiques
Constante | Valeur | Description | Disponibilité
M_PI | 3.14159265358979323846 | Pi |
M_E | 2.7182818284590452354 | e |
M_LOG2E | 1.4426950408889634074 | log_2 e |
M_LOG10E | 0.43429448190325182765 | log_10 e |
M_LN2 | 0.69314718055994530942 | log_e 2 |
M_LN10 | 2.30258509299404568402 | log_e 10 |
M_PI_2 | 1.57079632679489661923 | pi/2 |
M_PI_4 | 0.78539816339744830962 | pi/4 |
M_1_PI | 0.31830988618379067154 | 1/pi |
M_2_PI | 0.63661977236758134308 | 2/pi |
M_SQRTPI | 1.77245385090551602729 | sqrt(pi) | PHP 5.2.0
M_2_SQRTPI | 1.12837916709551257390 | 2/sqrt(pi) |
M_SQRT2 | 1.41421356237309504880 | sqrt(2) |
M_SQRT3 | 1.73205080756887729352 | sqrt(3) | PHP 5.2.0
M_SQRT1_2 | 0.70710678118654752440 | 1/sqrt(2) |
M_LNPI | 1.14472988584940017414 | log_e(pi) | PHP 5.2.0
M_EULER | 0.57721566490153286061 | Constante d'Euler | PHP 5.2.0
PHP_ROUND_HALF_UP | 1 | Arrondi supérieur | PHP 5.3.0
PHP_ROUND_HALF_DOWN | 2 | Arrondi inférieur | PHP 5.3.0
PHP_ROUND_HALF_EVEN | 3 | Arrondi au nombre pair | PHP 5.3.0
PHP_ROUND_HALF_ODD | 4 | Arrondi au nombre impair | PHP 5.3.0
NAN | NAN (pour les nombres décimaux) | N'est pas un nombre, littéralement Not A Number |
INF | INF (pour les nombres décimaux) | L'infinite |

Toutes les constantes dont la version PHP de disponibilité n'est pas renseignée sont disponibles depuis au moins PHP 4.0.0.


Fonctions Math

Sommaire

  • abs — Valeur absolue
  • acos — Arc cosinus
  • acosh — Arc cosinus hyperbolique
  • asin — Arc sinus
  • asinh — Arc sinus hyperbolique
  • atan2 — Arc tangent de deux variables
  • atan — Arc tangente
  • atanh — Arc tangente hyperbolique
  • base_convert — Convertit un nombre entre des bases arbitraires
  • bindec — Convertit de binaire en décimal
  • ceil — Arrondit au nombre supérieur
  • cos — Cosinus
  • cosh — Cosinus hyperbolique
  • decbin — Convertit de décimal en binaire
  • dechex — Convertit de décimal en hexadécimal
  • decoct — Convertit de décimal en octal
  • deg2rad — Convertit un nombre de degrés en radians
  • exp — Calcul l'exponentielle de e
  • expm1 — Calcule précisément exponentiel moins un
  • floor — Arrondit à l'entier inférieur
  • fmod — Retourne le reste de la division
  • getrandmax — Plus grande valeur aléatoire possible
  • hexdec — Convertit de hexadécimal en décimal
  • hypot — Calcul la longueur de l'hypoténuse d'un triangle à angle droit
  • intdiv — Integer division
  • is_finite — Indique si un nombre est fini
  • is_infinite — Indique si un nombre est infini
  • is_nan — Indique si une valeur n'est pas un nombre
  • lcg_value — Générateur de congruence combinée linéaire
  • log10 — Logarithme en base 10
  • log1p — Calcule précisément log(1 + nombre)
  • log — Logarithme naturel (népérien)
  • max — La plus grande valeur
  • min — La plus petite valeur
  • mt_getrandmax — La plus grande valeur aléatoire possible
  • mt_rand — Génère une meilleure valeur aléatoire
  • mt_srand — Initialise une meilleure valeur aléatoire
  • octdec — Conversion d'octal en décimal
  • pi — Retourne la valeur de pi
  • pow — Expression exponentielle
  • rad2deg — Conversion de radians en degrés
  • rand — Génère une valeur aléatoire
  • round — Arrondit un nombre à virgule flottante
  • sin — Sinus
  • sinh — Sinus hyperbolique
  • sqrt — Racine carrée
  • srand — Initialise le générateur de nombres aléatoires
  • tan — Tangente
  • tanh — Tangente hyperbolique


Valeur absolue

  • « Fonctions Math
  • acos »
  • PHP Manual
  • Fonctions Math
  • Valeur absolue

abs

(PHP 4, PHP 5, PHP 7)

abs — Valeur absolue

Description

number abs ( mixed $number )

Retourne la valeur absolue du nombre number.

Liste de paramètres

number

La valeur numérique à traiter

Valeurs de retour

La valeur absolue du nombre number. Si le nombre est un nombre à virgule flottante (float), le type retourné est aussi un nombre à virgule flottante (float), sinon, c'est un entier (entier).

Exemples

Exemple #1 Exemple avec abs()

<?php
echo abs(-4.2); // 4.2 (double/nombre à virgule flottante)
echo abs(5);    // 5 (entier)
echo abs(-5);   // 5 (entier)
?>

Voir aussi

  • gmp_abs() - Valeur absolue GMP
  • gmp_sign() - Signe du nombre GMP


Arc cosinus

  • « abs
  • acosh »
  • PHP Manual
  • Fonctions Math
  • Arc cosinus

acos

(PHP 4, PHP 5, PHP 7)

acos — Arc cosinus

Description

float acos ( float $arg )

Retourne l'arc cosinus de arg. acos() est la fonction inverse de cos(), ce qui signifie que a==cos(acos(a)) pour toute valeur qui soit dans l'intervalle de validité de acos().

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

L'arc cosinus de arg, en radians.

Voir aussi

  • cos() - Cosinus
  • acosh() - Arc cosinus hyperbolique
  • asin() - Arc sinus
  • atan() - Arc tangente


Arc cosinus hyperbolique

  • « acos
  • asin »
  • PHP Manual
  • Fonctions Math
  • Arc cosinus hyperbolique

acosh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

acosh — Arc cosinus hyperbolique

Description

float acosh ( float $arg )

Retourne l'arc cosinus hyperbolique de arg, c'est à dire la valeur dont le cosinus hyperbolique est arg.

Liste de paramètres

arg

La valeur à traiter

Valeurs de retour

L'arc cosinus hyperbolique de arg.

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sur toutes les plate-formes

Voir aussi

  • cosh() - Cosinus hyperbolique
  • acos() - Arc cosinus
  • asinh ()
  • atanh() - Arc tangente hyperbolique


Arc sinus

  • « acosh
  • asinh »
  • PHP Manual
  • Fonctions Math
  • Arc sinus

asin

(PHP 4, PHP 5, PHP 7)

asin — Arc sinus

Description

float asin ( float $arg )

Retourne l'arc sinus de arg (arg en radians). asin() est la fonction inverse de sin(), ce qui signifie que a==sin(asin(a)) pour toute valeur qui soit dans l'intervalle de validité de asin().

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

L'arc sinus de arg, en radians.

Voir aussi

  • sin() - Sinus
  • asinh() - Arc sinus hyperbolique
  • acos() - Arc cosinus
  • atan() - Arc tangente


Arc sinus hyperbolique

  • « asin
  • atan2 »
  • PHP Manual
  • Fonctions Math
  • Arc sinus hyperbolique

asinh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

asinh — Arc sinus hyperbolique

Description

float asinh ( float $arg )

Retourne l'arc sinus hyperbolique de arg, c'est à dire la valeur dont le sinus hyperbolique est arg.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

L'arc sinus hyperbolique de arg

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sur toutes les plate-formes

Voir aussi

  • sinh() - Sinus hyperbolique
  • asin() - Arc sinus
  • acosh() - Arc cosinus hyperbolique
  • atanh() - Arc tangente hyperbolique


Arc tangent de deux variables

  • « asinh
  • atan »
  • PHP Manual
  • Fonctions Math
  • Arc tangent de deux variables

atan2

(PHP 4, PHP 5, PHP 7)

atan2 — Arc tangent de deux variables

Description

float atan2 ( float $y , float $x )

Retourne l'arc tangent de deux variables x et y. La formule est : " arc tangent (y / x) ", et les signes des arguments sont utilisés pour déterminer le quadrant du résultat.

Cette fonction retourne un résultat en radians, entre -PI et PI (inclus).

Liste de paramètres

y

le dividende

x

le diviseur

Valeurs de retour

L'arc tangent de deux variables y/x, en radians.

Voir aussi

  • atan() - Arc tangente


Arc tangente

  • « atan2
  • atanh »
  • PHP Manual
  • Fonctions Math
  • Arc tangente

atan

(PHP 4, PHP 5, PHP 7)

atan — Arc tangente

Description

float atan ( float $arg )

Retourne l'arc tangent de arg, en radians. atan() est la fonction inverse de tan(), ce qui signifie que a==tan(atan(a)) pour toute valeur qui soit dans l'intervalle de validité de atan().

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

L'arc tangent de arg, en radians.

Voir aussi

  • tan() - Tangente
  • atanh() - Arc tangente hyperbolique
  • asin() - Arc sinus
  • acos() - Arc cosinus


Arc tangente hyperbolique

  • « atan
  • base_convert »
  • PHP Manual
  • Fonctions Math
  • Arc tangente hyperbolique

atanh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

atanh — Arc tangente hyperbolique

Description

float atanh ( float $arg )

Retourne l'arc tangente hyperbolique de arg, c'est à dire la valeur dont la tangente hyperbolique est arg.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

L'arc tangente hyperbolique de arg.

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sur toutes les plate-formes

Voir aussi

  • tanh() - Tangente hyperbolique
  • atan ()
  • asinh() - Arc sinus hyperbolique
  • acosh() - Arc cosinus hyperbolique


Convertit un nombre entre des bases arbitraires

  • « atanh
  • bindec »
  • PHP Manual
  • Fonctions Math
  • Convertit un nombre entre des bases arbitraires

base_convert

(PHP 4, PHP 5, PHP 7)

base_convert — Convertit un nombre entre des bases arbitraires

Description

string base_convert ( string $number , int $frombase , int $tobase )

Retourne une chaîne contenant l'argument number représenté dans la base tobase. La base de représentation de number est donnée par frombase. frombase et tobase doivent être compris entre 2 et 36 inclus. Les chiffres supérieurs à 10 des bases supérieures à 10 seront représentés par les lettres de A à Z, avec A = 10 et Z = 35.

Avertissement

base_convert() perdra la précision sur les grands nombres, à cause des propriétés interne des types double et nombre décimal. Lire la section sur les nombres décimaux de ce manuel pour plus d'informations.

Liste de paramètres

number

Le nombre à convertir

frombase

La base number dans laquelle il est

tobase

La base dans laquelle on doit convertir le nombre number

Valeurs de retour

Le nombre number converti dans la base tobase

Exemples

Exemple #1 Exemple avec base_convert()

<?php
$hexadecimal = 'A37334';
echo base_convert($hexadecimal, 16, 2);
?>

L'exemple ci-dessus va afficher :

101000110111001100110100

Voir aussi

  • intval() - Retourne la valeur numérique entière équivalente d'une variable


Convertit de binaire en décimal

  • « base_convert
  • ceil »
  • PHP Manual
  • Fonctions Math
  • Convertit de binaire en décimal

bindec

(PHP 4, PHP 5, PHP 7)

bindec — Convertit de binaire en décimal

Description

number bindec ( string $binary_string )

Retourne la conversion d'un nombre binaire représenté par la chaîne binary_string en décimal.

bindec() convertie un nombre binaire en un entier, ou, si nécessaire (pour des raisons de taille), en nombre décimal.

bindec() interprète toutes les valeurs binary_string comme des valeurs non-signées entières. Ceci est dû au fait que la fonction bindec() voit le premier bit comme un autre ordre de grandeur plutôt que comme le bit de signe.

Liste de paramètres

binary_string

La chaîne binaire à convertir.

Avertissement

Ce paramètre doit être une chaîne de caractères. L'utilisation d'un autre type de données produit des résultats inattendus.

Valeurs de retour

La valeur décimale de binary_string

Exemples

Exemple #1 Exemple avec bindec()

<?php
echo bindec('110011') . "\n";
echo bindec('000110011') . "\n";

echo bindec('111');
?>

L'exemple ci-dessus va afficher :

51
51
7

Exemple #2 bindec() interprète l'entrée comme un entier non-signé

<?php
/*
 * Le plus important dans cet exemple est dans la sortie
 * plutôt que dans le code PHP lui-même.
 */

$magnitude_lower = pow(2, (PHP_INT_SIZE * 8) - 2);
p($magnitude_lower - 1);
p($magnitude_lower, 'Avez-vous vu le changement ? Soyez attentif la prochaine fois...');

p(PHP_INT_MAX, 'PHP_INT_MAX');
p(~PHP_INT_MAX, 'interprété comme étant supérieur à PHP_INT_MAX');

if (PHP_INT_SIZE == 4) {
    $note = 'interprété comme étant le plus grand entier non-signé';
} else {
    $note = 'interprété comme étant le plus grand entier non-signé
              (18446744073709551615) mais faussé par la précision de la virgule flottante';
}
p(-1, $note);

function p($input, $note = '') {
    echo "entrée :        $input\n";

    $format = '%0' . (PHP_INT_SIZE * 8) . 'b';
    $bin = sprintf($format, $input);
    echo "binaire :       $bin\n";

    ini_set('precision', 20);  // Pour plus de lisibilité sur les PC 64 bits.
    $dec = bindec($bin);
    echo 'bindec() :     ' . $dec . "\n";

    if ($note) {
        echo "Note :         $note\n";
    }

    echo "\n";
}
?>

Résultat de l'exemple ci-dessus sur une machine 32 bits :

entrée :        1073741823
binaire :       00111111111111111111111111111111
bindec() :     1073741823

entrée :        1073741824
binaire :       01000000000000000000000000000000
bindec():     1073741824
Note :         Avez-vous vu le changement ? Soyez attentif la prochaine fois...

entrée :        2147483647
binaire :       01111111111111111111111111111111
bindec():     2147483647
Note :         PHP_INT_MAX

entrée :        -2147483648
binaire :       10000000000000000000000000000000
bindec():     2147483648
Note :         interprété comme étant supérieur à PHP_INT_MAX

entrée :        -1
binaire :       11111111111111111111111111111111
bindec():     4294967295
Note :         interprété comme étant le plus grand entier non-signé

Résultat de l'exemple ci-dessus sur une machine 64 bits :

entrée :        4611686018427387903
binaire :       0011111111111111111111111111111111111111111111111111111111111111
bindec() :     4611686018427387903

entrée :        4611686018427387904
binaire :       0100000000000000000000000000000000000000000000000000000000000000
bindec() :     4611686018427387904
Note :         Avez-vous vu le changement ? Soyez attentif la prochaine fois...

entrée :        9223372036854775807
binaire :       0111111111111111111111111111111111111111111111111111111111111111
bindec() :     9223372036854775807
Note :         PHP_INT_MAX

entrée :        -9223372036854775808
binaire :       1000000000000000000000000000000000000000000000000000000000000000
bindec() :     9223372036854775808
Note :         interprété comme étant supérieur à PHP_INT_MAX

entrée :        -1
binaire :       1111111111111111111111111111111111111111111111111111111111111111
bindec() :     18446744073709551616
Note :         interprété comme étant le plus grand entier non-signé
              (18446744073709551615) mais faussé par la précision de la virgule flottante

Notes

Note:

La fonction peut convertir des nombres qui sont trop larges pour tenir dans un type entier ; dans ce cas, ces valeurs seront retournées sous la forme de nombres à virgule flottante.

Voir aussi

  • decbin() - Convertit de décimal en binaire
  • octdec() - Conversion d'octal en décimal
  • hexdec() - Convertit de hexadécimal en décimal
  • base_convert() - Convertit un nombre entre des bases arbitraires


Arrondit au nombre supérieur

  • « bindec
  • cos »
  • PHP Manual
  • Fonctions Math
  • Arrondit au nombre supérieur

ceil

(PHP 4, PHP 5, PHP 7)

ceil — Arrondit au nombre supérieur

Description

float ceil ( float $value )

Retourne l'entier supérieur du nombre value.

Liste de paramètres

value

La valeur à arrondir

Valeurs de retour

La valeur value arrondie à l'entier supérieur. La valeur retournée est un nombre à virgule flottante (nombre décimal), car ces nombres peuvent être plus grands que les entiers.

Exemples

Exemple #1 Exemple avec ceil()

<?php
echo ceil(4.3);    // 5
echo ceil(9.999);  // 10
echo ceil(-3.14);  // -3
?>

Voir aussi

  • floor() - Arrondit à l'entier inférieur
  • round() - Arrondit un nombre à virgule flottante


Cosinus

  • « ceil
  • cosh »
  • PHP Manual
  • Fonctions Math
  • Cosinus

cos

(PHP 4, PHP 5, PHP 7)

cos — Cosinus

Description

float cos ( float $arg )

cos() retourne le cosinus de arg (arg en radians).

Liste de paramètres

arg

L'angle, en radians

Valeurs de retour

Le cosinus de arg.

Exemples

Exemple #1 Exemple avec cos()

<?php

echo cos(M_PI); // -1

?>

Voir aussi

  • acos() - Arc cosinus
  • sin() - Sinus
  • tan() - Tangente
  • deg2rad() - Convertit un nombre de degrés en radians


Cosinus hyperbolique

  • « cos
  • decbin »
  • PHP Manual
  • Fonctions Math
  • Cosinus hyperbolique

cosh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cosh — Cosinus hyperbolique

Description

float cosh ( float $arg )

Retourne le cosinus hyperbolique de arg, défini comme (exp(arg) + exp(-arg))/2.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

Le cosinus hyperbolique de arg.

Voir aussi

  • cos() - Cosinus
  • acosh() - Arc cosinus hyperbolique
  • sinh() - Sinus hyperbolique
  • cosh()


Convertit de décimal en binaire

  • « cosh
  • dechex »
  • PHP Manual
  • Fonctions Math
  • Convertit de décimal en binaire

decbin

(PHP 4, PHP 5, PHP 7)

decbin — Convertit de décimal en binaire

Description

string decbin ( int $number )

Retourne une chaîne contenant la représentation binaire de l'entier number donné en argument.

Liste de paramètres

number

Valeur décimale à convertir

Interval d'entrée sur des machines 32-bit
Paramètre number positif | Paramètre number négatif | Valeur retournée
0 | 0
1 | 1
2 | 10
... progression normale ...
2147483646 | 1111111111111111111111111111110
2147483647 (plus grand entier signé) | 1111111111111111111111111111111 (31 uns)
2147483648 | -2147483648 | 10000000000000000000000000000000
... progression normale ...
4294967294 | -2 | 11111111111111111111111111111110
4294967295 (plus grand entier non-signé) | -1 | 11111111111111111111111111111111 (32 uns)
Interval d'entrée sur des machines 64-bit
Paramètre number positif | Paramètre number négatif | Valeur retournée
0 | 0
1 | 1
2 | 10
... progression normale ...
9223372036854775806 | 111111111111111111111111111111111111111111111111111111111111110
9223372036854775807 (plus grand entier signé) | 111111111111111111111111111111111111111111111111111111111111111 (63 uns)
-9223372036854775808 | 1000000000000000000000000000000000000000000000000000000000000000
... progression normale ...
-2 | 1111111111111111111111111111111111111111111111111111111111111110
-1 | 1111111111111111111111111111111111111111111111111111111111111111 (64 uns)

Valeurs de retour

Une représentation binaire de number.

Exemples

Exemple #1 Exemple avec decbin()

<?php
echo decbin(12) . "\n";
echo decbin(26);
?>

L'exemple ci-dessus va afficher :

1100
11010

Voir aussi

  • bindec() - Convertit de binaire en décimal
  • decoct() - Convertit de décimal en octal
  • dechex() - Convertit de décimal en hexadécimal
  • base_convert() - Convertit un nombre entre des bases arbitraires
  • printf() - Affiche une chaîne de caractères formatée, en utilisant %b, %032b ou %064b comme format
  • sprintf(), en utilisant %b, %032b ou %064b comme format


Convertit de décimal en hexadécimal

  • « decbin
  • decoct »
  • PHP Manual
  • Fonctions Math
  • Convertit de décimal en hexadécimal

dechex

(PHP 4, PHP 5, PHP 7)

dechex — Convertit de décimal en hexadécimal

Description

string dechex ( int $number )

Retourne une chaîne contenant la représentation hexadécimale de l'argument number non-signé.

Le nombre le plus grand pouvant être converti est PHP_INT_MAX * 2 + 1 (ou -1) : sur les plateformes 32-bit, ce sera 4294967295 en décimal, qui fera que la fonction dechex() retournera ffffffff.

Liste de paramètres

number

La valeur décimale à convertir.

Vu que le type entier de PHP est signé, mais que la fonction dechex() ne fonctionne qu'avec des entiers non-signés, les entiers négatifs seront traités comme s'ils étaient non-signés.

Valeurs de retour

Une représentation hexadécimale de number.

Exemples

Exemple #1 Exemple avec dechex()

<?php
echo dechex(10) . "\n";
echo dechex(47);
?>

L'exemple ci-dessus va afficher :

a
2f

Exemple #2 Exemple avec la fonction dechex() avec de gros entiers

<?php
// L'affiche ci-dessous assume que nous sommes sur une platerforme 32-bit.
// Notez que l'affichage est identique pour toutes les valeurs.
echo dechex(-1)."\n";
echo dechex(PHP_INT_MAX * 2 + 1)."\n";
echo dechex(pow(2, 32) - 1)."\n";
?>

L'exemple ci-dessus va afficher :

ffffffff
ffffffff
ffffffff

Voir aussi

  • hexdec() - Convertit de hexadécimal en décimal
  • decbin() - Convertit de décimal en binaire
  • decoct() - Convertit de décimal en octal
  • base_convert() - Convertit un nombre entre des bases arbitraires


Convertit de décimal en octal

  • « dechex
  • deg2rad »
  • PHP Manual
  • Fonctions Math
  • Convertit de décimal en octal

decoct

(PHP 4, PHP 5, PHP 7)

decoct — Convertit de décimal en octal

Description

string decoct ( int $number )

Retourne une chaîne contenant la représentation octale du nombre donné number. Le nombre le plus grand qui puisse être converti est 4294967295 en décimal, ce qui donnera "37777777777".

Liste de paramètres

number

Valeur décimale à convertir

Valeurs de retour

Une représentation octale de number.

Exemples

Exemple #1 Exemple avec decoct()

<?php
echo decoct(15) . "\n";
echo decoct(264);
?>

L'exemple ci-dessus va afficher :

17
410

Voir aussi

  • octdec() - Conversion d'octal en décimal
  • decbin() - Convertit de décimal en binaire
  • dechex() - Convertit de décimal en hexadécimal
  • base_convert() - Convertit un nombre entre des bases arbitraires


Convertit un nombre de degrés en radians

  • « decoct
  • exp »
  • PHP Manual
  • Fonctions Math
  • Convertit un nombre de degrés en radians

deg2rad

(PHP 4, PHP 5, PHP 7)

deg2rad — Convertit un nombre de degrés en radians

Description

float deg2rad ( float $number )

deg2rad() convertit number de degrés en radians.

Liste de paramètres

number

L'angle, en degrés

Valeurs de retour

L'équivalent, en radians, de number.

Exemples

Exemple #1 Exemple avec deg2rad()

<?php

echo deg2rad(45); // 0.785398163397
var_dump(deg2rad(45) === M_PI_4); // bool(true)

?>

Voir aussi

  • rad2deg() - Conversion de radians en degrés


Calcul l'exponentielle de e

  • « deg2rad
  • expm1 »
  • PHP Manual
  • Fonctions Math
  • Calcul l'exponentielle de e

exp

(PHP 4, PHP 5, PHP 7)

exp — Calcul l'exponentielle de e

Description

float exp ( float $arg )

Retourne e, à la puissance arg.

Note:

'e' est le logarithme naturel, ou approximativement 2.718282.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

'e', à la puissance arg.

Exemples

Exemple #1 Exemple avec exp()

<?php
echo exp(12) . "\n";
echo exp(5.7);
?>

L'exemple ci-dessus va afficher :

1.6275E+005
298.87

Voir aussi

  • log() - Logarithme naturel (népérien)
  • pow() - Expression exponentielle


Calcule précisément exponentiel moins un

  • « exp
  • floor »
  • PHP Manual
  • Fonctions Math
  • Calcule précisément exponentiel moins un

expm1

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

expm1 — Calcule précisément exponentiel moins un

Description

float expm1 ( float $arg )

expm1() retourne l'équivalent de exp(arg) - 1 calculé de telle sorte qu'il sera précis, même si la valeur de l'argument arg est proche de 0, un cas où l'expression "exp (arg) - 1" n'est pas précis, du fait de la soustraction de deux nombres quasi-égaux.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

'e' à la puissance arg, moins un.

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sur toutes les plate-formes

Voir aussi

  • log1p() - Calcule précisément log(1 + nombre)
  • exp() - Calcul l'exponentielle de e


Arrondit à l'entier inférieur

  • « expm1
  • fmod »
  • PHP Manual
  • Fonctions Math
  • Arrondit à l'entier inférieur

floor

(PHP 4, PHP 5, PHP 7)

floor — Arrondit à l'entier inférieur

Description

float floor ( float $value )

Retourne l'entier inférieur du nombre value.

Liste de paramètres

value

La valeur numérique à arrondir

Valeurs de retour

floor() retourne l'entier inférieur du nombre value. La valeur retournée est un nombre à virgule flottante, (float) car ces nombres peuvent être plus grands que les entiers.

Exemples

Exemple #1 Exemple avec floor()

<?php
echo floor(4.3);   // 4
echo floor(9.999); // 9
echo floor(-3.14); // -4
?>

Voir aussi

  • ceil() - Arrondit au nombre supérieur
  • round() - Arrondit un nombre à virgule flottante


Retourne le reste de la division

  • « floor
  • getrandmax »
  • PHP Manual
  • Fonctions Math
  • Retourne le reste de la division

fmod

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fmod — Retourne le reste de la division

Description

float fmod ( float $x , float $y )

Retourne le reste de la division de x par y. Ce reste est un nombre à virgule flottante. Le reste (r) est défini par : x = i * y + r, pour un entier i. Si y n'est pas nul, r a le même signe que x et une taille inférieure à celle de y.

Liste de paramètres

x

Le dividende

y

Le diviseur

Valeurs de retour

Le reste de la division de x par y.

Exemples

Exemple #1 Exemple avec fmod()

<?php
$x = 5.7;
$y = 1.3;
$r = fmod($x, $y);
// $r vaut 0.5, parce que 4 * 1.3 + 0.5 = 5.7
?>


Plus grande valeur aléatoire possible

  • « fmod
  • hexdec »
  • PHP Manual
  • Fonctions Math
  • Plus grande valeur aléatoire possible

getrandmax

(PHP 4, PHP 5, PHP 7)

getrandmax — Plus grande valeur aléatoire possible

Description

int getrandmax ( void )

Retourne la plus grande valeur aléatoire possible retournée par rand().

Valeurs de retour

La plus grande valeur aléatoire possible retournée par rand().

Voir aussi

  • rand() - Génère une valeur aléatoire
  • srand() - Initialise le générateur de nombres aléatoires
  • mt_getrandmax() - La plus grande valeur aléatoire possible


Convertit de hexadécimal en décimal

  • « getrandmax
  • hypot »
  • PHP Manual
  • Fonctions Math
  • Convertit de hexadécimal en décimal

hexdec

(PHP 4, PHP 5, PHP 7)

hexdec — Convertit de hexadécimal en décimal

Description

number hexdec ( string $hex_string )

Retourne une chaîne contenant la représentation décimale du nombre hex_string.

hexdec() ignorera tout caractère non-hexadécimal qu'elle rencontrera.

Liste de paramètres

hex_string

La chaîne hexadécimale à convertir

Valeurs de retour

La représentation décimale de hex_string

Exemples

Exemple #1 Exemple avec hexdec()

<?php
var_dump(hexdec("See"));
var_dump(hexdec("ee"));
// both print "int(238)"

var_dump(hexdec("that")); // affiche "int(10)"
var_dump(hexdec("a0")); // affiche "int(160)"
?>

Notes

Note:

La fonction peut convertir des nombres qui sont trop larges pour tenir dans un type entier ; dans ce cas, ces valeurs seront retournées sous la forme de nombres à virgule flottante.

Voir aussi

  • dechex() - Convertit de décimal en hexadécimal
  • bindec() - Convertit de binaire en décimal
  • octdec() - Conversion d'octal en décimal
  • base_convert() - Convertit un nombre entre des bases arbitraires


Calcul la longueur de l'hypoténuse d'un triangle à angle droit

  • « hexdec
  • intdiv »
  • PHP Manual
  • Fonctions Math
  • Calcul la longueur de l'hypoténuse d'un triangle à angle droit

hypot

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

hypot — Calcul la longueur de l'hypoténuse d'un triangle à angle droit

Description

float hypot ( float $x , float $y )

hypot() retourne la longueur de l'hypoténuse d'un triangle à angle droit qui a des cotés d'une longueur x et y ou bien la distance du point (x, y) depuis l'origine. Ceci est l'équivalent de sqrt(x*x + y*y).

Liste de paramètres

x

Longueur du premier côté

y

Longueur du second côté

Valeurs de retour

La longueur calculée de l'hypoténuse


Integer division

  • « hypot
  • is_finite »
  • PHP Manual
  • Fonctions Math
  • Integer division

intdiv

(PHP 7)

intdiv — Integer division

Description

int intdiv ( int $dividend , int $divisor )

Returns the integer quotient of the division of dividend by divisor.

Liste de paramètres

dividend

Number to be divided.

divisor

Number which divides the dividend.

Valeurs de retour

The integer quotient of the division of dividend by divisor.

Erreurs / Exceptions

If divisor is 0, a DivisionByZeroError exception is thrown. If the dividend is PHP_INT_MIN and the divisor is -1, then an ArithmeticError exception is thrown.

Exemples

Exemple #1 intdiv() example

<?php
var_dump(intdiv(3, 2));
var_dump(intdiv(-3, 2));
var_dump(intdiv(3, -2));
var_dump(intdiv(-3, -2));
var_dump(intdiv(PHP_INT_MAX, PHP_INT_MAX));
var_dump(intdiv(PHP_INT_MIN, PHP_INT_MIN));
var_dump(intdiv(PHP_INT_MIN, -1));
var_dump(intdiv(1, 0));
?>
int(1)
int(-1)
int(-1)
int(1)
int(1)
int(1)

Fatal error: Uncaught ArithmeticError: Division of PHP_INT_MIN by -1 is not an integer in %s on line 8
Fatal error: Uncaught DivisionByZeroError: Division by zero in %s on line 9

Voir aussi

  • / - Floating-point division
  • % - Integer modulus
  • fmod() - Floating-point modulo


Indique si un nombre est fini

  • « intdiv
  • is_infinite »
  • PHP Manual
  • Fonctions Math
  • Indique si un nombre est fini

is_finite

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

is_finite — Indique si un nombre est fini

Description

bool is_finite ( float $val )

Vérifie si val est une valeur légale finie sur la plate-forme.

Liste de paramètres

val

La valeur à vérifier

Valeurs de retour

TRUE si val est une valeur finie, c'est à dire une valeur qui peut être représentée par un nombre à virgule flottante PHP sur cette plate-forme, sinon, FALSE.

Voir aussi

  • is_infinite() - Indique si un nombre est infini
  • is_nan() - Indique si une valeur n'est pas un nombre


Indique si un nombre est infini

  • « is_finite
  • is_nan »
  • PHP Manual
  • Fonctions Math
  • Indique si un nombre est infini

is_infinite

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

is_infinite — Indique si un nombre est infini

Description

bool is_infinite ( float $val )

Retourne TRUE si val est infini (positif ou négatif), comme le résultat de log(0) ou une valeur qui est trop grande pour être représentée par un nombre à virgule flottante sur cette plate-forme.

Liste de paramètres

val

La valeur à vérifier

Valeurs de retour

TRUE si val est une valeur infinie, sinon, FALSE.

Voir aussi

  • is_finite() - Indique si un nombre est fini
  • is_nan() - Indique si une valeur n'est pas un nombre


Indique si une valeur n'est pas un nombre

  • « is_infinite
  • lcg_value »
  • PHP Manual
  • Fonctions Math
  • Indique si une valeur n'est pas un nombre

is_nan

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

is_nan — Indique si une valeur n'est pas un nombre

Description

bool is_nan ( float $val )

Vérifie si val est 'not a number' (pas un nombre), comme le résultat de acos(1.01).

Liste de paramètres

val

La valeur à vérifier

Valeurs de retour

Retourne TRUE si val est 'not a number' (pas un nombre), sinon, FALSE.

Exemples

Exemple #1 Exemple avec is_nan()

<?php
// Calcul invalide, doit retourner une
// valeur NaN
$nan = acos(8);

var_dump($nan, is_nan($nan));
?>

L'exemple ci-dessus va afficher :

float(NAN)
bool(true)

Voir aussi

  • is_finite() - Indique si un nombre est fini
  • is_infinite() - Indique si un nombre est infini


Générateur de congruence combinée linéaire

  • « is_nan
  • log10 »
  • PHP Manual
  • Fonctions Math
  • Générateur de congruence combinée linéaire

lcg_value

(PHP 4, PHP 5, PHP 7)

lcg_value — Générateur de congruence combinée linéaire

Description

float lcg_value ( void )

lcg_value() retourne un nombre pseudoaléatoire, compris entre 0 et 1. lcg_value() combine deux générateurs de congruence, de périodes respectives 2^31 - 85 et 2^31 - 249. La période de cette fonction est le produit de ces deux nombres premiers (soit (2^31 - 85)*(2^31 - 249)).

Valeurs de retour

Une valeur pseudoaléatoire, dans l'intervalle de 0 à 1.

Voir aussi

  • rand() - Génère une valeur aléatoire
  • mt_rand() - Génère une meilleure valeur aléatoire


Logarithme en base 10

  • « lcg_value
  • log1p »
  • PHP Manual
  • Fonctions Math
  • Logarithme en base 10

log10

(PHP 4, PHP 5, PHP 7)

log10 — Logarithme en base 10

Description

float log10 ( float $arg )

Retourne le logarithme en base 10 de arg.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

Le logarithme en base 10 de arg.

Voir aussi

  • log() - Logarithme naturel (népérien)


Calcule précisément log(1 + nombre)

  • « log10
  • log »
  • PHP Manual
  • Fonctions Math
  • Calcule précisément log(1 + nombre)

log1p

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

log1p — Calcule précisément log(1 + nombre)

Description

float log1p ( float $number )

log1p() retourne log(1 + number) calculé de telle sorte qu'il sera précis même si la valeur de number est proche de 0. log() ne peut retourner que log(1) dans ce cas par manque de précision.

Liste de paramètres

number

L'argument à traiter

Valeurs de retour

log(1 + number)

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sur toutes les plate-formes

Voir aussi

  • expm1() - Calcule précisément exponentiel moins un
  • log() - Logarithme naturel (népérien)
  • log10() - Logarithme en base 10


Logarithme naturel (népérien)

  • « log1p
  • max »
  • PHP Manual
  • Fonctions Math
  • Logarithme naturel (népérien)

log

(PHP 4, PHP 5, PHP 7)

log — Logarithme naturel (népérien)

Description

float log ( float $arg [, float $base = M_E ] )

Si le paramètre optionnel base est spécifié, log() retourne alors le logarithme en base base, sinon log() retourne le logarithme naturel (ou népérien) de arg.

Liste de paramètres

arg

La valeur pour laquelle on calcule le logarithme

base

La base logarithmique optionnelle à utiliser (par défaut, 'e' et donc, le logarithme naturel).

Valeurs de retour

Le logarithme de arg en base base, si fourni, ou le logarithme naturel.

Voir aussi

  • log10() - Logarithme en base 10
  • exp() - Calcul l'exponentielle de e
  • pow() - Expression exponentielle


La plus grande valeur

  • « log
  • min »
  • PHP Manual
  • Fonctions Math
  • La plus grande valeur

max

(PHP 4, PHP 5, PHP 7)

max — La plus grande valeur

Description

mixed max ( array $values )
mixed max ( mixed $value1 , mixed $value2 [, mixed $... ] )

Si le premier et unique paramètre est un tableau, max() retourne la valeur la plus haute du tableau. Si au moins deux paramètres sont fournis, max() retourne la plus grosse de ces valeurs.

Note:

Les valeurs de différents types seront comparées en utilisant les règles de comparaison standard. Actuellement, une chaîne non numérique sera comparée à un entier, comme s'il s'agissait de la valeur 0, mais plusieurs chaînes seront comparées de façon alphanumérique. La valeur actuelle retournée sera du même type que l'original et aucune conversion de type ne sera appliquée.

Liste de paramètres

values

Un tableau contenant les valeurs.

value1

Toutes comparables value.

value2

Toutes comparables value.

...

Toutes comparables value.

Valeurs de retour

La fonction max() retourne la valeur du paramètre considéré comme "supérieure" suivant la comparaison standard. Si plusieurs valeurs de types différents sont évaluées comme étant égales (i.e. 0 et 'abc'), la première fournie à la fonction sera retournée.

Exemples

Exemple #1 Exemple avec max()

<?php
echo max(2, 3, 1, 6, 7);  // 7
echo max(array(2, 4, 5)); // 5

// La chaîne 'hello', lors de la comparaison avec un entier, est traitée
// comme valant 0. Sachant que les deux valeurs sont égales,
// l'ordre fourni va déterminer le résultat
echo max(0, 'hello');     // 0
echo max('hello', 0);     // hello

// Ici, nous comparons -1 < 0, aussi 'hello' est la plus grande valeur
echo max('hello', -1);    // hello

// Avec plusieurs tableaux de tailles différentes, max retourne
// le plus long
$val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(1, 1, 1, 1)

// Plusieurs tableaux de même longueur sont comparés de la gauche vers la droite
// aussi, dans notre exemple : 2 == 2, but 5 > 4
$val = max(array(2, 4, 8), array(2, 5, 1)); // array(2, 5, 1)

// Si un tableau et un non-tableau sont fournis, le tableau sera toujours
// retourné, sachant que les comparaisons traitent les tableaux comme
// étant plus grand que n'importe quelle valeur
$val = max('string', array(2, 5, 7), 42);   // array(2, 5, 7)

// Si un argument vaut NULL ou est un booléen, il sera comparé avec les autres
// valeurs en utilisant la règle FALSE < TRUE suivant les autres types concernés
// Dans l'exemple ci-dessous, -10 est traité comme valant TRUE dans la comparaison
$val = max(-10, FALSE); // -10

// D'un autre côté, 0 est traité comme valant FALSE, aussi, il est "plus petit que" TRUE
$val = max(0, TRUE); // TRUE
?>

Voir aussi

  • min() - La plus petite valeur
  • count() - Compte tous les éléments d'un tableau ou quelque chose d'un objet


La plus petite valeur

  • « max
  • mt_getrandmax »
  • PHP Manual
  • Fonctions Math
  • La plus petite valeur

min

(PHP 4, PHP 5, PHP 7)

min — La plus petite valeur

Description

mixed min ( array $values )
mixed min ( mixed $value1 , mixed $value2 [, mixed $... ] )

Si le premier et le seul paramètre est un tableau, min() retournera la plus petite valeur contenue dans le tableau. Si le premier paramètre est un entier, une chaîne ou un nombre décimal, vous devez fournir au moins deux paramètres et min() retournera la plus petite de ces valeurs.

Note:

Les valeurs de différents types seront comparées en utilisant les règles de comparaison standard. Actuellement, une chaîne non numérique sera comparée à un entier, comme s'il s'agissait de la valeur 0, mais plusieurs chaînes seront comparées de façon alphanumérique. La valeur actuelle retournée sera du même type que l'original et aucune conversion de type ne sera appliquée.

Liste de paramètres

values

Un tableau contenant les valeurs.

value1

Toutes comparables value.

value2

Toutes comparables value.

...

Toutes comparables value.

Valeurs de retour

La fonction min() retourne la valeur du paramètre considéré comme "inférieure" suivant la comparaison standard. Si plusieurs valeurs de types différents sont évaluées comme étant égales (i.e. 0 et 'abc'), la première fournie à la fonction sera retournée.

Exemples

Exemple #1 Exemple avec min()

<?php
echo min(2, 3, 1, 6, 7);  // 1
echo min(array(2, 4, 5)); // 2

// La chaîne 'hello' lorsque comparée à un entier, est traité comme étant de valeur 0.
// Sachant que les deux valeurs sont égales, l'ordre fourni va déterminer le résultat
echo min(0, 'hello');     // 0
echo min('hello', 0);     // hello

// Ici, nous comparons -1 < 0, aussi, -1 est la valeur la plus basse
echo min('hello', -1);    // -1

// Avec plusieurs tableaux de différentes tailles, min retourne le plus court
$val = min(array(2, 2, 2), array(1, 1, 1, 1)); // array(2, 2, 2)

// Plusieurs tableaux de même taille sont comparés depuis la gauche vers la droite,
// aussi, dans notre exemple : 2 == 2, mais 4 < 5
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)

// Si un tableau et un non-tableau sont fournis, le tableau ne sera jamais retourné
// car les comparaisons traitent les tableaux comme plus grand que n'importe quelle valeur
$val = min('string', array(2, 5, 7), 42);   // string

// Si un argument vaut NULL ou vaut un booléen, il sera comparé avec
// d'autres valeurs en utilisant la règle FALSE < TRUE suivant les autres
// types fournis. Dans l'exemple ci-dessous, à la fois -10 et 10 sont traités
// comme valant TRUE dans la comparaison
$val = min(-10, FALSE, 10); // FALSE
$val = min(-10, NULL, 10);  // NULL

// D'un autre côté, 0 est traité comme valant FALSE, aussi, il est "plus petit que" TRUE
$val = min(0, TRUE); // 0
?>

Voir aussi

  • max() - La plus grande valeur
  • count() - Compte tous les éléments d'un tableau ou quelque chose d'un objet


La plus grande valeur aléatoire possible

  • « min
  • mt_rand »
  • PHP Manual
  • Fonctions Math
  • La plus grande valeur aléatoire possible

mt_getrandmax

(PHP 4, PHP 5, PHP 7)

mt_getrandmax — La plus grande valeur aléatoire possible

Description

int mt_getrandmax ( void )

Retourne la plus grande valeur aléatoire possible que peut retourner la fonction mt_rand() sans argument, ce qui correspond à la valeur maximum qui peut être utilisé pour son paramètre max sans que le résultat soit élargi (et donc moins aléatoire).

Valeurs de retour

Retourne la plus grande valeur aléatoire possible retournée par la fonction mt_rand()

Exemples

Exemple #1 Calcule un nombre flottant aléatoire

<?php
function randomFloat($min = 0, $max = 1) {
    return $min + mt_rand() / mt_getrandmax() * ($max - $min);
}

var_dump(randomFloat());
var_dump(randomFloat(2, 20));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

float(0.91601131712832)
float(16.511210331931)

Voir aussi

  • mt_rand() - Génère une meilleure valeur aléatoire
  • mt_srand() - Initialise une meilleure valeur aléatoire
  • getrandmax() - Plus grande valeur aléatoire possible


Génère une meilleure valeur aléatoire

  • « mt_getrandmax
  • mt_srand »
  • PHP Manual
  • Fonctions Math
  • Génère une meilleure valeur aléatoire

mt_rand

(PHP 4, PHP 5, PHP 7)

mt_rand — Génère une meilleure valeur aléatoire

Description

int mt_rand ( void )
int mt_rand ( int $min , int $max )

De nombreux générateurs de nombres aléatoires provenant de vieilles bibliothèques libcs ont des comportements douteux et sont très lents. Par défaut, PHP utilise le générateur de nombres aléatoires de libc avec la fonction rand(). mt_rand() est une fonction de remplacement, pour cette dernière. Elle utilise un générateur de nombres aléatoire de caractéristique connue, le " » Mersenne Twister " qui est 4 fois plus rapide que la fonction standard libc.

Appelée sans les arguments optionnels min et max, mt_rand() retourne un nombre pseudoaléatoire, entre 0 et mt_getrandmax(). Pour obtenir un nombre entre 5 et 15 inclus, il faut utiliser mt_rand(5,15).

Liste de paramètres

min

Valeur la plus basse qui peut être retournée (par défaut : 0)

max

Valeur la plus haute qui peut être retournée (par défaut : mt_getrandmax()).

Valeurs de retour

Un entier aléatoire compris entre min (ou 0) et max (ou mt_getrandmax(), inclusif), ou FALSE si le paramètre max est inférieur à min.

Historique

Version | Description
5.3.4 | Emet une alerte de niveau E_WARNING et retourne FALSE si le paramètre max < au paramètre min.

Exemples

Exemple #1 Exemple avec mt_rand()

<?php
echo mt_rand() . "\n";
echo mt_rand() . "\n";

echo mt_rand(5, 15);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1604716014
1478613278
6

Notes

Attention

Cette fonction ne génère pas de valeurs sécurisées d'un point de vue cryptologie, et ne doit pas être utilisée dans un contexte de cryptologie. Si vous avez besoin d'un valeur sécurisée d'un point de vue cryptologique, utilisez plutôt random_int(), random_bytes(), ou openssl_random_pseudo_bytes().

Attention

Les valeurs retournées par la fonction mt_rand() sont biaisées par les nombres paires pour les versions de PHP compilées sur les architectures 64-bits lorsque le paramètre max est au-delà de 2^32. Ceci car si max est supérieur à la valeur retournée par mt_getrandmax(), la sortie du générateur de valeur aléatoire doit être élargie.

Voir aussi

  • mt_srand() - Initialise une meilleure valeur aléatoire
  • mt_getrandmax() - La plus grande valeur aléatoire possible
  • openssl_random_pseudo_bytes() - Génère une chaine pseudo-aléatoire d'octets
  • rand() - Génère une valeur aléatoire


Initialise une meilleure valeur aléatoire

  • « mt_rand
  • octdec »
  • PHP Manual
  • Fonctions Math
  • Initialise une meilleure valeur aléatoire

mt_srand

(PHP 4, PHP 5, PHP 7)

mt_srand — Initialise une meilleure valeur aléatoire

Description

void mt_srand ([ int $seed ] )

mt_srand() initialise le générateur de valeurs aléatoires avec seed ou avec une valeur aléatoire si aucun paramètre seed n'est fourni.

Liste de paramètres

seed

Une valeur d'initialisation aléatoire

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
5.2.1 | L'implémentation Mersenne Twister en PHP utilise maintenant un nouvel algorithme d'initialisation, réalisé par Richard Wagner. Des initialisations identiques ne produisent plus la même séquence de valeurs, comme cela pouvait être le cas dans les versions antérieures. Ce comportement ne devrait plus changer.

Exemples

Exemple #1 Exemple avec mt_srand()

<?php
// initialisation avec des microsecondes
function make_seed()
{
  list($usec, $sec) = explode(' ', microtime());
  return (float) $sec + ((float) $usec * 100000);
}
mt_srand(make_seed());
$randval = mt_rand();
?>

Voir aussi

  • mt_rand() - Génère une meilleure valeur aléatoire
  • mt_getrandmax() - La plus grande valeur aléatoire possible
  • srand() - Initialise le générateur de nombres aléatoires


Conversion d'octal en décimal

  • « mt_srand
  • pi »
  • PHP Manual
  • Fonctions Math
  • Conversion d'octal en décimal

octdec

(PHP 4, PHP 5, PHP 7)

octdec — Conversion d'octal en décimal

Description

number octdec ( string $octal_string )

Retourne une chaîne contenant la représentation décimale du nombre octal_string.

Liste de paramètres

octal_string

La chaîne de caractères octale à convertir

Valeurs de retour

La représentation décimale de octal_string

Exemples

Exemple #1 Exemple avec octdec()

<?php
echo octdec('77') . "\n";
echo octdec(decoct(45));
?>

L'exemple ci-dessus va afficher :

63
45

Notes

Note:

La fonction peut convertir des nombres qui sont trop larges pour tenir dans un type entier ; dans ce cas, ces valeurs seront retournées sous la forme de nombres à virgule flottante.

Voir aussi

  • decoct() - Convertit de décimal en octal
  • bindec() - Convertit de binaire en décimal
  • hexdec() - Convertit de hexadécimal en décimal
  • base_convert() - Convertit un nombre entre des bases arbitraires


Retourne la valeur de pi

  • « octdec
  • pow »
  • PHP Manual
  • Fonctions Math
  • Retourne la valeur de pi

pi

(PHP 4, PHP 5, PHP 7)

pi — Retourne la valeur de pi

Description

float pi ( void )

Retourne la valeur de pi. La valeur retournée est de type float, et est à la précision indiquée par la directive precision, indiquée dans le fichier php.ini, qui vaut par défaut 14. De plus, vous pouvez utiliser la constante M_PI, qui retourne un résultat identique à la fonction pi().

Valeurs de retour

La valeur de pi, sous la forme d'un nombre décimal.

Exemples

Exemple #1 Exemple avec pi()

<?php
echo pi(); // 3.1415926535898
echo M_PI; // 3.1415926535898
?>


Expression exponentielle

  • « pi
  • rad2deg »
  • PHP Manual
  • Fonctions Math
  • Expression exponentielle

pow

(PHP 4, PHP 5, PHP 7)

pow — Expression exponentielle

Description

number pow ( number $base , number $exp )

Retourne base élevé à la puissance exp.

Note:

Depuis PHP 5.6, vous pourriez préférer utiliser l'opérateur **.

Liste de paramètres

base

La base à utiliser

exp

L'exponentielle

Valeurs de retour

base élevé à la puissance exp. Si les arguments ne sont pas des entiers négatifs, et que le résultat peut être représenté sous la forme d'un entier, le résultat sera retourné sous la forme d'un entier, sinon, si il sera retourné sous la forme d'un nombre à virgule flottante.

Exemples

Exemple #1 Exemple avec pow()

<?php

var_dump(pow(2, 8)); // int(256)
echo pow(-1, 20); // 1
echo pow(0, 0); // 1

echo pow(-1, 5.5); // PHP >4.0.6  NAN
echo pow(-1, 5.5); // PHP <=4.0.6 1.#IND
?>

Notes

Note:

Cette fonction convertira toutes les entrées en un nombre, y compris pour les valeurs non-scalaires, ce qui peut amener à des résultats imprévisibles.

Voir aussi

  • exp() - Calcul l'exponentielle de e
  • sqrt() - Racine carrée
  • bcpow() - Élève un nombre à une puissance donnée
  • gmp_pow() - Puissance


Conversion de radians en degrés

  • « pow
  • rand »
  • PHP Manual
  • Fonctions Math
  • Conversion de radians en degrés

rad2deg

(PHP 4, PHP 5, PHP 7)

rad2deg — Conversion de radians en degrés

Description

float rad2deg ( float $number )

Convertit number (supposé en radians) en degrés.

Liste de paramètres

number

Une valeur, en radians

Valeurs de retour

L'équivalent de number, en degrés.

Exemples

Exemple #1 Exemple avec rad2deg()

<?php

echo rad2deg(M_PI_4); // 45

?>

Voir aussi

  • deg2rad() - Convertit un nombre de degrés en radians


Génère une valeur aléatoire

  • « rad2deg
  • round »
  • PHP Manual
  • Fonctions Math
  • Génère une valeur aléatoire

rand

(PHP 4, PHP 5, PHP 7)

rand — Génère une valeur aléatoire

Description

int rand ( void )
int rand ( int $min , int $max )

Appelée sans les options min et max, rand() retourne un nombre pseudoaléatoire entre 0 et getrandmax(). Si vous voulez un nombre aléatoire entre 5 et 15 (inclus), par exemple, utilisez rand (5, 15).

Note: Sur quelques plates-formes (par exemple, Windows), mt_getrandmax()est limité à 32767. Si vous désirez une limite supérieure à 32767, en spécifiant min et max, vous serez autorisés à utiliser un intervalle plus grand que mt_getrandmax(), ou bien, utilisez la fonction mt_rand() à la place.

Liste de paramètres

min

La plus petite valeur à retourner (par défaut, 0)

max

La plus grande valeur à retourner (par défaut, mt_getrandmax())

Valeurs de retour

Une valeur pseudoaléatoire, comprise entre min (ou 0) et max (ou mt_getrandmax(), inclusif).

Exemples

Exemple #1 Exemple avec rand()

<?php
echo rand() . "\n";
echo rand() . "\n";

echo rand(5, 15);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

7771
22264
11

Notes

Attention

Cette fonction ne génère pas de valeurs sécurisées d'un point de vue cryptologie, et ne doit pas être utilisée dans un contexte de cryptologie. Si vous avez besoin d'un valeur sécurisée d'un point de vue cryptologique, utilisez plutôt random_int(), random_bytes(), ou openssl_random_pseudo_bytes().

Voir aussi

  • srand() - Initialise le générateur de nombres aléatoires
  • getrandmax() - Plus grande valeur aléatoire possible
  • mt_rand() - Génère une meilleure valeur aléatoire
  • openssl_random_pseudo_bytes() - Génère une chaine pseudo-aléatoire d'octets


Arrondit un nombre à virgule flottante

  • « rand
  • sin »
  • PHP Manual
  • Fonctions Math
  • Arrondit un nombre à virgule flottante

round

(PHP 4, PHP 5, PHP 7)

round — Arrondit un nombre à virgule flottante

Description

float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] )

Retourne la valeur arrondie de val à la précision precision (nombre de chiffres après la virgule). Le paramètre precision peut être négatif ou NULL : c'est sa valeur par défaut.

Note: PHP ne gère pas correctement les chaînes telles que "12 300,2", par défaut. Reportez-vous à la conversion de chaînes.

Liste de paramètres

val

La valeur à arrondir

precision

Le nombre optionnel de décimales à arrondir.

mode

Utilisez une des constantes suivantes pour spécifier le mode d'arrondi.

Constante | Description
PHP_ROUND_HALF_UP | Arrondit val à une précision precision supérieure de décimal en s'éloignant de zéro lorsqu'il est à mi-chemin. Par exemple, 1.5 deviendra 2 et -1.5 deviendra -2.
PHP_ROUND_HALF_DOWN | Arrondit val à une précision precision inférieure de décimal en s'approchant de zéro lorsqu'il est à mi-chemin. Par exemple, 1.5 deviendra 1 et -1.5 deviendra -1.
PHP_ROUND_HALF_EVEN | Arrondit val à la précision precision de décimal vers la prochaine valeur paire.
PHP_ROUND_HALF_ODD | Arrondit val à la précision precision de décimal vers la prochaine valeur impaire.

Valeurs de retour

La valeur arrondie

Exemples

Exemple #1 Exemple avec round()

<?php
echo round(3.4);         // 3
echo round(3.5);         // 4
echo round(3.6);         // 4
echo round(3.6, 0);      // 4
echo round(1.95583, 2);  // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2);    // 5.05
echo round(5.055, 2);    // 5.06
?>

Exemple #2 Exemple avec le paramètre mode

<?php
echo round(9.5, 0, PHP_ROUND_HALF_UP);   // 10
echo round(9.5, 0, PHP_ROUND_HALF_DOWN); // 9
echo round(9.5, 0, PHP_ROUND_HALF_EVEN); // 10
echo round(9.5, 0, PHP_ROUND_HALF_ODD);  // 9

echo round(8.5, 0, PHP_ROUND_HALF_UP);   // 9
echo round(8.5, 0, PHP_ROUND_HALF_DOWN); // 8
echo round(8.5, 0, PHP_ROUND_HALF_EVEN); // 8
echo round(8.5, 0, PHP_ROUND_HALF_ODD);  // 9
?>

Exemple #3 Exemple avec les paramètres mode et precision

<?php
/* Utilisation de PHP_ROUND_HALF_UP avec une précision d'1 décimal */
echo round( 1.55, 1, PHP_ROUND_HALF_UP);   //  1.6
echo round( 1.54, 1, PHP_ROUND_HALF_UP);   //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_UP);   // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_UP);   // -1.5

/* Utilisation de PHP_ROUND_HALF_DOWN avec une précision d'1 decimal */
echo round( 1.55, 1, PHP_ROUND_HALF_DOWN); //  1.5
echo round( 1.54, 1, PHP_ROUND_HALF_DOWN); //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_DOWN); // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_DOWN); // -1.5

/* Utilisation de PHP_ROUND_HALF_EVEN avec une précision d'1 decimal */
echo round( 1.55, 1, PHP_ROUND_HALF_EVEN); //  1.6
echo round( 1.54, 1, PHP_ROUND_HALF_EVEN); //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_EVEN); // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_EVEN); // -1.5

/* Utilisation de PHP_ROUND_HALF_ODD avec une précision d'1 decimal */
echo round( 1.55, 1, PHP_ROUND_HALF_ODD);  //  1.5
echo round( 1.54, 1, PHP_ROUND_HALF_ODD);  //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_ODD);  // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_ODD);  // -1.5
?>

Historique

Version | Description
5.3.0 | Le paramètre mode a été ajouté.
5.2.7 | Le fonctionnement interne de round() a été modifié afin d'être conforme au standard C99.

Voir aussi

  • ceil() - Arrondit au nombre supérieur
  • floor() - Arrondit à l'entier inférieur
  • number_format() - Formate un nombre pour l'affichage


Sinus

  • « round
  • sinh »
  • PHP Manual
  • Fonctions Math
  • Sinus

sin

(PHP 4, PHP 5, PHP 7)

sin — Sinus

Description

float sin ( float $arg )

sin() retourne le sinus de arg (arg in radians).

Liste de paramètres

arg

Une valeur, en radians

Valeurs de retour

Le sinus de arg.

Exemples

Exemple #1 Exemple avec sin()

<?php

// La précision dépend de la directive precision
echo sin(deg2rad(60));  //  0.866025403 ...
echo sin(60);           // -0.304810621 ...

?>

Voir aussi

  • asin() - Arc sinus
  • sinh() - Sinus hyperbolique
  • cos() - Cosinus
  • tan() - Tangente
  • deg2rad() - Convertit un nombre de degrés en radians


Sinus hyperbolique

  • « sin
  • sqrt »
  • PHP Manual
  • Fonctions Math
  • Sinus hyperbolique

sinh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

sinh — Sinus hyperbolique

Description

float sinh ( float $arg )

Retourne le sinus hyperbolique de arg, défini comme (exp(arg) - exp(-arg))/2.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

Le sinus hyperbolique de arg.

Voir aussi

  • sin() - Sinus
  • asinh() - Arc sinus hyperbolique
  • cosh() - Cosinus hyperbolique
  • tanh() - Tangente hyperbolique


Racine carrée

  • « sinh
  • srand »
  • PHP Manual
  • Fonctions Math
  • Racine carrée

sqrt

(PHP 4, PHP 5, PHP 7)

sqrt — Racine carrée

Description

float sqrt ( float $arg )

Retourne la racine carrée de arg.

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

La racine carrée de arg ou la valeur spéciale NAN pour les nombres négatifs.

Exemples

Exemple #1 Exemple avec sqrt()

<?php
// La précision dépend de votre directive precision
echo sqrt(9); // 3
echo sqrt(10); // 3.16227766 ...
?>

Voir aussi

  • pow() - Expression exponentielle


Initialise le générateur de nombres aléatoires

  • « sqrt
  • tan »
  • PHP Manual
  • Fonctions Math
  • Initialise le générateur de nombres aléatoires

srand

(PHP 4, PHP 5, PHP 7)

srand — Initialise le générateur de nombres aléatoires

Description

void srand ([ int $seed ] )

srand() initialise le générateur de nombres aléatoires avec seed, ou avec une valeur aléatoire si aucun paramètre seed n'est fourni.

Note: Vous n'avez pas besoin d'initialiser le générateur de nombres aléatoires avec srand() ou mt_srand(), c'est fait automatiquement.

Liste de paramètres

seed

Valeur d'initialisation, optionnelle

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec srand()

<?php
// initialise avec les microsecondes
function make_seed()
{
  list($usec, $sec) = explode(' ', microtime());
  return (float) $sec + ((float) $usec * 100000);
}
srand(make_seed());
$randval = rand();
?>

Voir aussi

  • rand() - Génère une valeur aléatoire
  • getrandmax() - Plus grande valeur aléatoire possible
  • mt_srand() - Initialise une meilleure valeur aléatoire


Tangente

  • « srand
  • tanh »
  • PHP Manual
  • Fonctions Math
  • Tangente

tan

(PHP 4, PHP 5, PHP 7)

tan — Tangente

Description

float tan ( float $arg )

Retourne la tangente de arg (arg en radians).

Liste de paramètres

arg

L'argument à traiter, en radians

Valeurs de retour

La tangente de arg

Exemples

Exemple #1 Exemple avec tan()

<?php

echo tan(M_PI_4); // 1

?>

Voir aussi

  • atan() - Arc tangente
  • atan2() - Arc tangent de deux variables
  • sin() - Sinus
  • cos() - Cosinus
  • tanh() - Tangente hyperbolique
  • deg2rad() - Convertit un nombre de degrés en radians


Tangente hyperbolique

  • « tan
  • Fonctions statistiques »
  • PHP Manual
  • Fonctions Math
  • Tangente hyperbolique

tanh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

tanh — Tangente hyperbolique

Description

float tanh ( float $arg )

Retourne la tangente hyperbolique de arg, définie comme sinh(arg)/cosh(arg).

Liste de paramètres

arg

L'argument à traiter

Valeurs de retour

La tangente hyperbolique de arg.

Voir aussi

  • tan() - Tangente
  • atanh() - Arc tangente hyperbolique
  • sinh() - Sinus hyperbolique
  • cosh() - Cosinus hyperbolique


Fonctions statistiques

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions sur les statistiques
    • stats_absolute_deviation — Retourne l'écart absolu d'un tableau de valeurs
    • stats_cdf_beta — Fonction CDF pour Distribution BETA. Calcule n'importe quel paramètre de distribution beta des valeurs données pour les autres
    • stats_cdf_binomial — Calcule n'importe quel paramètre de distribution binomiale des valeurs données pour les autres
    • stats_cdf_cauchy — Non documenté
    • stats_cdf_chisquare — Calcule n'importe quel paramètre de distribution Khi-carré des valeurs données pour les autres
    • stats_cdf_exponential — Non documenté
    • stats_cdf_f — Calcule n'importe quel paramètre de distribution F des valeurs données pour les autres
    • stats_cdf_gamma — Calcule n'importe quel paramètre de distribution gamma des valeurs données pour les autres
    • stats_cdf_laplace — Non documenté
    • stats_cdf_logistic — Non documenté
    • stats_cdf_negative_binomial — Calcule n'importe quel paramètre de distribution binomiale négative des valeurs données pour les autres
    • stats_cdf_noncentral_chisquare — Calcule n'importe quel paramètre de distribution non centrale Khi-carré des valeurs données pour les autres
    • stats_cdf_noncentral_f — Calcule n'importe quel paramètre de distribution non centrale F des valeurs données pour les autres
    • stats_cdf_poisson — Calcule n'importe quel paramètre de distribution de Poisson des valeurs données pour les autres
    • stats_cdf_t — Calcule n'importe quel paramètre de distribution T des valeurs données pour les autres
    • stats_cdf_uniform — Non documenté
    • stats_cdf_weibull — Non documenté
    • stats_covariance — Calcule la covariance de deux séries de données
    • stats_den_uniform — Non documenté
    • stats_dens_beta — Non documenté
    • stats_dens_cauchy — Non documenté
    • stats_dens_chisquare — Non documenté
    • stats_dens_exponential — Non documenté
    • stats_dens_f — Description
    • stats_dens_gamma — Non documenté
    • stats_dens_laplace — Non documenté
    • stats_dens_logistic — Non documenté
    • stats_dens_negative_binomial — Non documenté
    • stats_dens_normal — Non documenté
    • stats_dens_pmf_binomial — Non documenté
    • stats_dens_pmf_hypergeometric — Description
    • stats_dens_pmf_poisson — Non documenté
    • stats_dens_t — Non documenté
    • stats_dens_weibull — Non documenté
    • stats_harmonic_mean — Retourne la moyenne harmonique d'un tableau de valeurs
    • stats_kurtosis — Calcule le coefficient d'aplatissement des données dans un tableau
    • stats_rand_gen_beta — Génère l'écart beta aléatoire
    • stats_rand_gen_chisquare — Génère l'écart aléatoire de la distribution Khi-carré avec "df" de degré de liberté de variables aléatoire
    • stats_rand_gen_exponential — Génère un écart aléatoire simple à partir d'une distribution exponentielle avec moyenne "av"
    • stats_rand_gen_f — Génère un écart aléatoire
    • stats_rand_gen_funiform — Génère une valeur décimale uniforme entre les basse (exclusif) et autre (exclusif)
    • stats_rand_gen_gamma — Génère un écart aléatoire d'une distribution gamma
    • stats_rand_gen_ibinomial_negative — Génère un écart aléatoire simple de la distribution négative binomiale. Arguments : n - le nombre d'essai dans la distribution négative binomiale dans lequel l'écart aléatoire sera généré (n > 0), p - la probabilité d'un évènement (0 < p < 1))
    • stats_rand_gen_ibinomial — Génère un écart aléatoire simple d'une distribution binomiale à qui le nombre d'essaie est "n" (n >= 0) et à qui la probabilité d'un évènement de chaque essai est "pp" ([0;1]). Méthode : algorithme BTPE
    • stats_rand_gen_int — Génère un entier aléatoire entre 1 et 2147483562
    • stats_rand_gen_ipoisson — Génère un écart aléatoire simple à partir de la distribution de Poisson avec la moyenne "mu" (mu >= 0.0)
    • stats_rand_gen_iuniform — Génère un entier uniformément distribué entre LOW (inclusif) et HIGH (inclusif)
    • stats_rand_gen_noncenral_chisquare — Génère un écart aléatoire à partir de la distribution non centrale de Khi-carré de "df" degrés de liberté et de paramètre non central "nonc". d doit être >= 1.0, xnonc doit être *gt;= 0.0
    • stats_rand_gen_noncentral_f — Génère l'écart aléatoire à partir de la distribution non centrale de F (ratio variance) avec "dfn" degré de liberté dans le numérateur et "dfd" degré de liberté dans le dénominateur et le paramètre non central "xnonc". Méthode : génère directement le ratio d'une variation Khi-carré non centrale de numérateur à la variation Khi-carré centrale de dénominateur
    • stats_rand_gen_noncentral_t — Génère l'écart aléatoire simple à partir d'une distribution T non centrale
    • stats_rand_gen_normal — Génère un écart aléatoire simple à partir d'une distribution normale avec la moyenne, av, et écart type sd (sd >= 0). Méthode : Renomme SNORM de TOMS légèrement modifié par BWB pour utiliser RANF au lieu de SUNIF
    • stats_rand_gen_t — Génère un écart aléatoire simple à partir de la distribution T
    • stats_rand_get_seeds — Non documenté
    • stats_rand_phrase_to_seeds — Génère deux graines pour le générateur de nombre aléatoire RGN
    • stats_rand_ranf — Retourne un nombre à valeur décimale aléatoire à partir d'une distribution uniforme de 0 - 1 (les points finaux de cet intervalle ne sont pas retourné) en utilisant le générateur courant
    • stats_rand_setall — Non documenté
    • stats_skew — Calcul l'asymétrie des données dans un tableau
    • stats_standard_deviation — Retourne l'écart type
    • stats_stat_binomial_coef — Non documenté
    • stats_stat_correlation — Non documenté
    • stats_stat_gennch — Non documenté
    • stats_stat_independent_t — Non documenté
    • stats_stat_innerproduct — Description
    • stats_stat_noncentral_t — Calcule n'importe quel paramètre de distribution non centrale t des valeurs données pour les autres valeurs
    • stats_stat_paired_t — Non documenté
    • stats_stat_percentile — Non documenté
    • stats_stat_powersum — Non documenté
    • stats_variance — Retourne la variance d'une population


Introduction

Ceci est l'extension statistics. Elle contient quelques douzaines de fonctions pratiques pour des calculs statistiques. Il s'agit d'une enveloppe autour de 2 bibliothèques scientifique, nommée DCDFLIB (Bibliothèque de routines en C pour les Fonctions de Distributions Cumulative, Inverses et Autres paramètres) par B. Brown & J. Lavato et RANDLIB par Barry Brown, James Lavato & Kathy Russel. Inclut les fonctions CD et PD.


Pré-requis

Aucune bibliothèque externe n'est nécessaire. L'extension vient intégrée avec les bibliothèques utilisées.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/stats.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


  • « Types de ressources
  • Fonctions sur les statistiques »
  • PHP Manual
  • Fonctions statistiques
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions sur les statistiques

Sommaire

  • stats_absolute_deviation — Retourne l'écart absolu d'un tableau de valeurs
  • stats_cdf_beta — Fonction CDF pour Distribution BETA. Calcule n'importe quel paramètre de distribution beta des valeurs données pour les autres
  • stats_cdf_binomial — Calcule n'importe quel paramètre de distribution binomiale des valeurs données pour les autres
  • stats_cdf_cauchy — Non documenté
  • stats_cdf_chisquare — Calcule n'importe quel paramètre de distribution Khi-carré des valeurs données pour les autres
  • stats_cdf_exponential — Non documenté
  • stats_cdf_f — Calcule n'importe quel paramètre de distribution F des valeurs données pour les autres
  • stats_cdf_gamma — Calcule n'importe quel paramètre de distribution gamma des valeurs données pour les autres
  • stats_cdf_laplace — Non documenté
  • stats_cdf_logistic — Non documenté
  • stats_cdf_negative_binomial — Calcule n'importe quel paramètre de distribution binomiale négative des valeurs données pour les autres
  • stats_cdf_noncentral_chisquare — Calcule n'importe quel paramètre de distribution non centrale Khi-carré des valeurs données pour les autres
  • stats_cdf_noncentral_f — Calcule n'importe quel paramètre de distribution non centrale F des valeurs données pour les autres
  • stats_cdf_poisson — Calcule n'importe quel paramètre de distribution de Poisson des valeurs données pour les autres
  • stats_cdf_t — Calcule n'importe quel paramètre de distribution T des valeurs données pour les autres
  • stats_cdf_uniform — Non documenté
  • stats_cdf_weibull — Non documenté
  • stats_covariance — Calcule la covariance de deux séries de données
  • stats_den_uniform — Non documenté
  • stats_dens_beta — Non documenté
  • stats_dens_cauchy — Non documenté
  • stats_dens_chisquare — Non documenté
  • stats_dens_exponential — Non documenté
  • stats_dens_f — Description
  • stats_dens_gamma — Non documenté
  • stats_dens_laplace — Non documenté
  • stats_dens_logistic — Non documenté
  • stats_dens_negative_binomial — Non documenté
  • stats_dens_normal — Non documenté
  • stats_dens_pmf_binomial — Non documenté
  • stats_dens_pmf_hypergeometric — Description
  • stats_dens_pmf_poisson — Non documenté
  • stats_dens_t — Non documenté
  • stats_dens_weibull — Non documenté
  • stats_harmonic_mean — Retourne la moyenne harmonique d'un tableau de valeurs
  • stats_kurtosis — Calcule le coefficient d'aplatissement des données dans un tableau
  • stats_rand_gen_beta — Génère l'écart beta aléatoire
  • stats_rand_gen_chisquare — Génère l'écart aléatoire de la distribution Khi-carré avec "df" de degré de liberté de variables aléatoire
  • stats_rand_gen_exponential — Génère un écart aléatoire simple à partir d'une distribution exponentielle avec moyenne "av"
  • stats_rand_gen_f — Génère un écart aléatoire
  • stats_rand_gen_funiform — Génère une valeur décimale uniforme entre les basse (exclusif) et autre (exclusif)
  • stats_rand_gen_gamma — Génère un écart aléatoire d'une distribution gamma
  • stats_rand_gen_ibinomial_negative — Génère un écart aléatoire simple de la distribution négative binomiale. Arguments : n - le nombre d'essai dans la distribution négative binomiale dans lequel l'écart aléatoire sera généré (n > 0), p - la probabilité d'un évènement (0 < p < 1))
  • stats_rand_gen_ibinomial — Génère un écart aléatoire simple d'une distribution binomiale à qui le nombre d'essaie est "n" (n >= 0) et à qui la probabilité d'un évènement de chaque essai est "pp" ([0;1]). Méthode : algorithme BTPE
  • stats_rand_gen_int — Génère un entier aléatoire entre 1 et 2147483562
  • stats_rand_gen_ipoisson — Génère un écart aléatoire simple à partir de la distribution de Poisson avec la moyenne "mu" (mu >= 0.0)
  • stats_rand_gen_iuniform — Génère un entier uniformément distribué entre LOW (inclusif) et HIGH (inclusif)
  • stats_rand_gen_noncenral_chisquare — Génère un écart aléatoire à partir de la distribution non centrale de Khi-carré de "df" degrés de liberté et de paramètre non central "nonc". d doit être >= 1.0, xnonc doit être *gt;= 0.0
  • stats_rand_gen_noncentral_f — Génère l'écart aléatoire à partir de la distribution non centrale de F (ratio variance) avec "dfn" degré de liberté dans le numérateur et "dfd" degré de liberté dans le dénominateur et le paramètre non central "xnonc". Méthode : génère directement le ratio d'une variation Khi-carré non centrale de numérateur à la variation Khi-carré centrale de dénominateur
  • stats_rand_gen_noncentral_t — Génère l'écart aléatoire simple à partir d'une distribution T non centrale
  • stats_rand_gen_normal — Génère un écart aléatoire simple à partir d'une distribution normale avec la moyenne, av, et écart type sd (sd >= 0). Méthode : Renomme SNORM de TOMS légèrement modifié par BWB pour utiliser RANF au lieu de SUNIF
  • stats_rand_gen_t — Génère un écart aléatoire simple à partir de la distribution T
  • stats_rand_get_seeds — Non documenté
  • stats_rand_phrase_to_seeds — Génère deux graines pour le générateur de nombre aléatoire RGN
  • stats_rand_ranf — Retourne un nombre à valeur décimale aléatoire à partir d'une distribution uniforme de 0 - 1 (les points finaux de cet intervalle ne sont pas retourné) en utilisant le générateur courant
  • stats_rand_setall — Non documenté
  • stats_skew — Calcul l'asymétrie des données dans un tableau
  • stats_standard_deviation — Retourne l'écart type
  • stats_stat_binomial_coef — Non documenté
  • stats_stat_correlation — Non documenté
  • stats_stat_gennch — Non documenté
  • stats_stat_independent_t — Non documenté
  • stats_stat_innerproduct — Description
  • stats_stat_noncentral_t — Calcule n'importe quel paramètre de distribution non centrale t des valeurs données pour les autres valeurs
  • stats_stat_paired_t — Non documenté
  • stats_stat_percentile — Non documenté
  • stats_stat_powersum — Non documenté
  • stats_variance — Retourne la variance d'une population


Retourne l'écart absolu d'un tableau de valeurs

  • « Fonctions sur les statistiques
  • stats_cdf_beta »
  • PHP Manual
  • Fonctions sur les statistiques
  • Retourne l'écart absolu d'un tableau de valeurs

stats_absolute_deviation

(PECL stats >= 1.0.0)

stats_absolute_deviation — Retourne l'écart absolu d'un tableau de valeurs

Description

float stats_absolute_deviation ( array $a )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

a

Valeurs de retour


Fonction CDF pour Distribution BETA. Calcule n'importe quel paramètre de distribution beta des valeurs données pour les autres

  • « stats_absolute_deviation
  • stats_cdf_binomial »
  • PHP Manual
  • Fonctions sur les statistiques
  • Fonction CDF pour Distribution BETA. Calcule n'importe quel paramètre de distribution beta des valeurs données pour les autres

stats_cdf_beta

(PECL stats >= 1.0.0)

stats_cdf_beta — Fonction CDF pour Distribution BETA. Calcule n'importe quel paramètre de distribution beta des valeurs données pour les autres

Description

float stats_cdf_beta ( float $par1 , float $par2 , float $par3 , int $which )

Method

Cumulative distribution function (P) is calculated directly by
code associated with the following reference.

DiDinato, A. R. and Morris, A. H. Algorithm 708: Significant
Digit Computation of the Incomplete Beta Function Ratios. ACM
Trans. Math. Softw. 18 (1993), 360-373.

Computation of other parameters involve a seach for a value that
produces the desired value of P. The search relies on the
monotinicity of P with the other parameter.

Note

The beta density is proportional to
t^(A-1) * (1-t)^(B-1)

Arguments

P -- The integral from 0 to X of the chi-square
distribution.
Input range: [0, 1].

Q -- 1-P.
Input range: [0, 1].
P + Q = 1.0.

X -- Upper limit of integration of beta density.
Input range: [0,1].
Search range: [0,1]

Y -- 1-X.
Input range: [0,1].
Search range: [0,1]
X + Y = 1.0.

A -- The first parameter of the beta density.
Input range: (0, +infinity).
Search range: [1D-100,1D100]

B -- The second parameter of the beta density.
Input range: (0, +infinity).
Search range: [1D-100,1D100]

STATUS -- 0 if calculation completed correctly
-I if input parameter number I is out of range
1 if answer appears to be lower than lowest
search bound
2 if answer appears to be higher than greatest
search bound
3 if P + Q .ne. 1
4 if X + Y .ne. 1

BOUND -- Undefined if STATUS is 0

Bound exceeded by parameter number I if STATUS
is negative.

Lower search bound if STATUS is 1.

Upper search bound if STATUS is 2.

Liste de paramètres

par1

par2

par3

which

Integer indicating which of the next four argument
values is to be calculated from the others.
Legal range: 1..4
which = 1 : Calculate P and Q from X,Y,A and B
which = 2 : Calculate X and Y from P,Q,A and B
which = 3 : Calculate A from P,Q,X,Y and B
which = 4 : Calculate B from P,Q,X,Y and A

Valeurs de retour

STATUS -- 0 if calculation completed correctly
-I if input parameter number I is out of range
1 if answer appears to be lower than lowest
search bound
2 if answer appears to be higher than greatest
search bound
3 if P + Q .ne. 1
4 if X + Y .ne. 1


Calcule n'importe quel paramètre de distribution binomiale des valeurs données pour les autres

  • « stats_cdf_beta
  • stats_cdf_cauchy »
  • PHP Manual
  • Fonctions sur les statistiques
  • Calcule n'importe quel paramètre de distribution binomiale des valeurs données pour les autres

stats_cdf_binomial

(PECL stats >= 1.0.0)

stats_cdf_binomial — Calcule n'importe quel paramètre de distribution binomiale des valeurs données pour les autres

Description

float stats_cdf_binomial ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour


Non documenté

  • « stats_cdf_binomial
  • stats_cdf_chisquare »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_cdf_cauchy

(PECL stats >= 1.0.0)

stats_cdf_cauchy — Non documenté

Description

float stats_cdf_cauchy ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour


Calcule n'importe quel paramètre de distribution Khi-carré des valeurs données pour les autres

  • « stats_cdf_cauchy
  • stats_cdf_exponential »
  • PHP Manual
  • Fonctions sur les statistiques
  • Calcule n'importe quel paramètre de distribution Khi-carré des valeurs données pour les autres

stats_cdf_chisquare

(PECL stats >= 1.0.0)

stats_cdf_chisquare — Calcule n'importe quel paramètre de distribution Khi-carré des valeurs données pour les autres

Description

float stats_cdf_chisquare ( float $par1 , float $par2 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

which

Valeurs de retour


Non documenté

  • « stats_cdf_chisquare
  • stats_cdf_f »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_cdf_exponential

(PECL stats >= 1.0.0)

stats_cdf_exponential — Non documenté

Description

float stats_cdf_exponential ( float $par1 , float $par2 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

which

Valeurs de retour


Calcule n'importe quel paramètre de distribution F des valeurs données pour les autres

  • « stats_cdf_exponential
  • stats_cdf_gamma »
  • PHP Manual
  • Fonctions sur les statistiques
  • Calcule n'importe quel paramètre de distribution F des valeurs données pour les autres

stats_cdf_f

(PECL stats >= 1.0.0)

stats_cdf_f — Calcule n'importe quel paramètre de distribution F des valeurs données pour les autres

Description

float stats_cdf_f ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour


Calcule n'importe quel paramètre de distribution gamma des valeurs données pour les autres

  • « stats_cdf_f
  • stats_cdf_laplace »
  • PHP Manual
  • Fonctions sur les statistiques
  • Calcule n'importe quel paramètre de distribution gamma des valeurs données pour les autres

stats_cdf_gamma

(PECL stats >= 1.0.0)

stats_cdf_gamma — Calcule n'importe quel paramètre de distribution gamma des valeurs données pour les autres

Description

float stats_cdf_gamma ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour


Non documenté

  • « stats_cdf_gamma
  • stats_cdf_logistic »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_cdf_laplace

(PECL stats >= 1.0.0)

stats_cdf_laplace — Non documenté

Description

float stats_cdf_laplace ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour


Non documenté

  • « stats_cdf_laplace
  • stats_cdf_negative_binomial »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_cdf_logistic

(PECL stats >= 1.0.0)

stats_cdf_logistic — Non documenté

Description

float stats_cdf_logistic ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour


Calcule n'importe quel paramètre de distribution binomiale négative des valeurs données pour les autres

  • « stats_cdf_logistic
  • stats_cdf_noncentral_chisquare »
  • PHP Manual
  • Fonctions sur les statistiques
  • Calcule n'importe quel paramètre de distribution binomiale négative des valeurs données pour les autres

stats_cdf_negative_binomial

(PECL stats >= 1.0.0)

stats_cdf_negative_binomial — Calcule n'importe quel paramètre de distribution binomiale négative des valeurs données pour les autres

Description

float stats_cdf_negative_binomial ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour


Calcule n'importe quel paramètre de distribution non centrale Khi-carré des valeurs données pour les autres

  • « stats_cdf_negative_binomial
  • stats_cdf_noncentral_f »
  • PHP Manual
  • Fonctions sur les statistiques
  • Calcule n'importe quel paramètre de distribution non centrale Khi-carré des valeurs données pour les autres

stats_cdf_noncentral_chisquare

(PECL stats >= 1.0.0)

stats_cdf_noncentral_chisquare — Calcule n'importe quel paramètre de distribution non centrale Khi-carré des valeurs données pour les autres

Description

float stats_cdf_noncentral_chisquare ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour


Calcule n'importe quel paramètre de distribution non centrale F des valeurs données pour les autres

  • « stats_cdf_noncentral_chisquare
  • stats_cdf_poisson »
  • PHP Manual
  • Fonctions sur les statistiques
  • Calcule n'importe quel paramètre de distribution non centrale F des valeurs données pour les autres

stats_cdf_noncentral_f

(PECL stats >= 1.0.0)

stats_cdf_noncentral_f — Calcule n'importe quel paramètre de distribution non centrale F des valeurs données pour les autres

Description

float stats_cdf_noncentral_f ( float $par1 , float $par2 , float $par3 , float $par4 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

par4

which

Valeurs de retour


Calcule n'importe quel paramètre de distribution de Poisson des valeurs données pour les autres

  • « stats_cdf_noncentral_f
  • stats_cdf_t »
  • PHP Manual
  • Fonctions sur les statistiques
  • Calcule n'importe quel paramètre de distribution de Poisson des valeurs données pour les autres

stats_cdf_poisson

(PECL stats >= 1.0.0)

stats_cdf_poisson — Calcule n'importe quel paramètre de distribution de Poisson des valeurs données pour les autres

Description

float stats_cdf_poisson ( float $par1 , float $par2 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

which

Valeurs de retour


Calcule n'importe quel paramètre de distribution T des valeurs données pour les autres

  • « stats_cdf_poisson
  • stats_cdf_uniform »
  • PHP Manual
  • Fonctions sur les statistiques
  • Calcule n'importe quel paramètre de distribution T des valeurs données pour les autres

stats_cdf_t

(PECL stats >= 1.0.0)

stats_cdf_t — Calcule n'importe quel paramètre de distribution T des valeurs données pour les autres

Description

float stats_cdf_t ( float $par1 , float $par2 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

which

Valeurs de retour


Non documenté

  • « stats_cdf_t
  • stats_cdf_weibull »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_cdf_uniform

(PECL stats >= 1.0.0)

stats_cdf_uniform — Non documenté

Description

float stats_cdf_uniform ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour


Non documenté

  • « stats_cdf_uniform
  • stats_covariance »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_cdf_weibull

(PECL stats >= 1.0.0)

stats_cdf_weibull — Non documenté

Description

float stats_cdf_weibull ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour


Calcule la covariance de deux séries de données

  • « stats_cdf_weibull
  • stats_den_uniform »
  • PHP Manual
  • Fonctions sur les statistiques
  • Calcule la covariance de deux séries de données

stats_covariance

(PECL stats >= 1.0.0)

stats_covariance — Calcule la covariance de deux séries de données

Description

float stats_covariance ( array $a , array $b )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

a

b

Valeurs de retour


Non documenté

  • « stats_covariance
  • stats_dens_beta »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_den_uniform

(PECL stats >= 1.0.0)

stats_den_uniform — Non documenté

Description

float stats_den_uniform ( float $x , float $a , float $b )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

a

b

Valeurs de retour


Non documenté

  • « stats_den_uniform
  • stats_dens_cauchy »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_dens_beta

(PECL stats >= 1.0.0)

stats_dens_beta — Non documenté

Description

float stats_dens_beta ( float $x , float $a , float $b )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

a

b

Valeurs de retour


Non documenté

  • « stats_dens_beta
  • stats_dens_chisquare »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_dens_cauchy

(PECL stats >= 1.0.0)

stats_dens_cauchy — Non documenté

Description

float stats_dens_cauchy ( float $x , float $ave , float $stdev )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

ave

stdev

Valeurs de retour


Non documenté

  • « stats_dens_cauchy
  • stats_dens_exponential »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_dens_chisquare

(PECL stats >= 1.0.0)

stats_dens_chisquare — Non documenté

Description

float stats_dens_chisquare ( float $x , float $dfr )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

dfr

Valeurs de retour


Non documenté

  • « stats_dens_chisquare
  • stats_dens_f »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_dens_exponential

(PECL stats >= 1.0.0)

stats_dens_exponential — Non documenté

Description

float stats_dens_exponential ( float $x , float $scale )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

scale

Valeurs de retour


Description

  • « stats_dens_exponential
  • stats_dens_gamma »
  • PHP Manual
  • Fonctions sur les statistiques
  • Description

stats_dens_f

(PECL stats >= 1.0.0)

stats_dens_f —

Description

float stats_dens_f ( float $x , float $dfr1 , float $dfr2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

dfr1

dfr2

Valeurs de retour


Non documenté

  • « stats_dens_f
  • stats_dens_laplace »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_dens_gamma

(PECL stats >= 1.0.0)

stats_dens_gamma — Non documenté

Description

float stats_dens_gamma ( float $x , float $shape , float $scale )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

shape

scale

Valeurs de retour


Non documenté

  • « stats_dens_gamma
  • stats_dens_logistic »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_dens_laplace

(PECL stats >= 1.0.0)

stats_dens_laplace — Non documenté

Description

float stats_dens_laplace ( float $x , float $ave , float $stdev )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

ave

stdev

Valeurs de retour


Non documenté

  • « stats_dens_laplace
  • stats_dens_negative_binomial »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_dens_logistic

(PECL stats >= 1.0.0)

stats_dens_logistic — Non documenté

Description

float stats_dens_logistic ( float $x , float $ave , float $stdev )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

ave

stdev

Valeurs de retour


Non documenté

  • « stats_dens_logistic
  • stats_dens_normal »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_dens_negative_binomial

(PECL stats >= 1.0.0)

stats_dens_negative_binomial — Non documenté

Description

float stats_dens_negative_binomial ( float $x , float $n , float $pi )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

n

pi

Valeurs de retour


Non documenté

  • « stats_dens_negative_binomial
  • stats_dens_pmf_binomial »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_dens_normal

(PECL stats >= 1.0.0)

stats_dens_normal — Non documenté

Description

float stats_dens_normal ( float $x , float $ave , float $stdev )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

ave

stdev

Valeurs de retour


Non documenté

  • « stats_dens_normal
  • stats_dens_pmf_hypergeometric »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_dens_pmf_binomial

(PECL stats >= 1.0.0)

stats_dens_pmf_binomial — Non documenté

Description

float stats_dens_pmf_binomial ( float $x , float $n , float $pi )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

n

pi

Valeurs de retour


Description

  • « stats_dens_pmf_binomial
  • stats_dens_pmf_poisson »
  • PHP Manual
  • Fonctions sur les statistiques
  • Description

stats_dens_pmf_hypergeometric

(PECL stats >= 1.0.0)

stats_dens_pmf_hypergeometric —

Description

float stats_dens_pmf_hypergeometric ( float $n1 , float $n2 , float $N1 , float $N2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

n1

n2

N1

N2

Valeurs de retour


Non documenté

  • « stats_dens_pmf_hypergeometric
  • stats_dens_t »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_dens_pmf_poisson

(PECL stats >= 1.0.0)

stats_dens_pmf_poisson — Non documenté

Description

float stats_dens_pmf_poisson ( float $x , float $lb )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

lb

Valeurs de retour


Non documenté

  • « stats_dens_pmf_poisson
  • stats_dens_weibull »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_dens_t

(PECL stats >= 1.0.0)

stats_dens_t — Non documenté

Description

float stats_dens_t ( float $x , float $dfr )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

dfr

Valeurs de retour


Non documenté

  • « stats_dens_t
  • stats_harmonic_mean »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_dens_weibull

(PECL stats >= 1.0.0)

stats_dens_weibull — Non documenté

Description

float stats_dens_weibull ( float $x , float $a , float $b )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

a

b

Valeurs de retour


Retourne la moyenne harmonique d'un tableau de valeurs

  • « stats_dens_weibull
  • stats_kurtosis »
  • PHP Manual
  • Fonctions sur les statistiques
  • Retourne la moyenne harmonique d'un tableau de valeurs

stats_harmonic_mean

(PECL stats >= 1.0.0)

stats_harmonic_mean — Retourne la moyenne harmonique d'un tableau de valeurs

Description

number stats_harmonic_mean ( array $a )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

a

Valeurs de retour


Calcule le coefficient d'aplatissement des données dans un tableau

  • « stats_harmonic_mean
  • stats_rand_gen_beta »
  • PHP Manual
  • Fonctions sur les statistiques
  • Calcule le coefficient d'aplatissement des données dans un tableau

stats_kurtosis

(PECL stats >= 1.0.0)

stats_kurtosis — Calcule le coefficient d'aplatissement des données dans un tableau

Description

float stats_kurtosis ( array $a )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

a

Valeurs de retour


Génère l'écart beta aléatoire

  • « stats_kurtosis
  • stats_rand_gen_chisquare »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère l'écart beta aléatoire

stats_rand_gen_beta

(PECL stats >= 1.0.0)

stats_rand_gen_beta — Génère l'écart beta aléatoire

Description

float stats_rand_gen_beta ( float $a , float $b )

Retourne une déviation aléatoire de la distribution beta avec les paramètres A et B. La densité de beta est x^(a-1) * (1-x)^(b-1) / B(a,b) pour 0 < x <. Méthode R. C. H. Cheng.

Liste de paramètres

a

b

Valeurs de retour


Génère l'écart aléatoire de la distribution Khi-carré avec "df" de degré de liberté de variables aléatoire

  • « stats_rand_gen_beta
  • stats_rand_gen_exponential »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère l'écart aléatoire de la distribution Khi-carré avec "df" de degré de liberté de variables aléatoire

stats_rand_gen_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_chisquare — Génère l'écart aléatoire de la distribution Khi-carré avec "df" de degré de liberté de variables aléatoire

Description

float stats_rand_gen_chisquare ( float $df )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

df

Valeurs de retour


Génère un écart aléatoire simple à partir d'une distribution exponentielle avec moyenne "av"

  • « stats_rand_gen_chisquare
  • stats_rand_gen_f »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère un écart aléatoire simple à partir d'une distribution exponentielle avec moyenne "av"

stats_rand_gen_exponential

(PECL stats >= 1.0.0)

stats_rand_gen_exponential — Génère un écart aléatoire simple à partir d'une distribution exponentielle avec moyenne "av"

Description

float stats_rand_gen_exponential ( float $av )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

av

Valeurs de retour


Génère un écart aléatoire

  • « stats_rand_gen_exponential
  • stats_rand_gen_funiform »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère un écart aléatoire

stats_rand_gen_f

(PECL stats >= 1.0.0)

stats_rand_gen_f — Génère un écart aléatoire

Description

float stats_rand_gen_f ( float $dfn , float $dfd )

Génère un écart aléatoire à partir de la distribution F (ratio de variance) avec "dfn" degrés de liberté dans le numérateur et "dfd" degré de liberté dans le dénominateur. Méthode : génère directement le radio des variétés de Khi-carré.

Liste de paramètres

dfn

dfd

Valeurs de retour


Génère une valeur décimale uniforme entre les basse (exclusif) et autre (exclusif)

  • « stats_rand_gen_f
  • stats_rand_gen_gamma »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère une valeur décimale uniforme entre les basse (exclusif) et autre (exclusif)

stats_rand_gen_funiform

(PECL stats >= 1.0.0)

stats_rand_gen_funiform — Génère une valeur décimale uniforme entre les basse (exclusif) et autre (exclusif)

Description

float stats_rand_gen_funiform ( float $low , float $high )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

low

high

Valeurs de retour


Génère un écart aléatoire d'une distribution gamma

  • « stats_rand_gen_funiform
  • stats_rand_gen_ibinomial_negative »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère un écart aléatoire d'une distribution gamma

stats_rand_gen_gamma

(PECL stats >= 1.0.0)

stats_rand_gen_gamma — Génère un écart aléatoire d'une distribution gamma

Description

float stats_rand_gen_gamma ( float $a , float $r )

Génère une déviation aléatoire d'une distribution gamma dont la densité est (A**R)/Gamma(R) * X**(R-1) * Exp(-A*X).

Liste de paramètres

a

Paramètre d'emplacement de la distribution Gamma (a > 0).

r

Paramètre de forme de la distribution Gamma (r > 0).

Valeurs de retour


Génère un écart aléatoire simple de la distribution négative binomiale. Arguments : n - le nombre d'essai dans la distribution négative binomiale dans lequel l'écart aléatoire sera généré (n > 0), p - la probabilité d'un évènement (0 < p < 1))

  • « stats_rand_gen_gamma
  • stats_rand_gen_ibinomial »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère un écart aléatoire simple de la distribution négative binomiale. Arguments : n - le nombre d'essai dans la distribution négative binomiale dans lequel l'écart aléatoire sera généré (n > 0), p - la probabilité d'un évènement (0 < p < 1))

stats_rand_gen_ibinomial_negative

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial_negative — Génère un écart aléatoire simple de la distribution négative binomiale. Arguments : n - le nombre d'essai dans la distribution négative binomiale dans lequel l'écart aléatoire sera généré (n > 0), p - la probabilité d'un évènement (0 < p < 1))

Description

int stats_rand_gen_ibinomial_negative ( int $n , float $p )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

n

p

Valeurs de retour


Génère un écart aléatoire simple d'une distribution binomiale à qui le nombre d'essaie est "n" (n >= 0) et à qui la probabilité d'un évènement de chaque essai est "pp" ([0;1]). Méthode : algorithme BTPE

  • « stats_rand_gen_ibinomial_negative
  • stats_rand_gen_int »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère un écart aléatoire simple d'une distribution binomiale à qui le nombre d'essaie est "n" (n >= 0) et à qui la probabilité d'un évènement de chaque essai est "pp" ([0;1]). Méthode : algorithme BTPE

stats_rand_gen_ibinomial

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial — Génère un écart aléatoire simple d'une distribution binomiale à qui le nombre d'essaie est "n" (n >= 0) et à qui la probabilité d'un évènement de chaque essai est "pp" ([0;1]). Méthode : algorithme BTPE

Description

int stats_rand_gen_ibinomial ( int $n , float $pp )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

n

pp

Valeurs de retour


Génère un entier aléatoire entre 1 et 2147483562

  • « stats_rand_gen_ibinomial
  • stats_rand_gen_ipoisson »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère un entier aléatoire entre 1 et 2147483562

stats_rand_gen_int

(PECL stats >= 1.0.0)

stats_rand_gen_int — Génère un entier aléatoire entre 1 et 2147483562

Description

int stats_rand_gen_int ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour


Génère un écart aléatoire simple à partir de la distribution de Poisson avec la moyenne "mu" (mu >= 0.0)

  • « stats_rand_gen_int
  • stats_rand_gen_iuniform »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère un écart aléatoire simple à partir de la distribution de Poisson avec la moyenne "mu" (mu >= 0.0)

stats_rand_gen_ipoisson

(PECL stats >= 1.0.0)

stats_rand_gen_ipoisson — Génère un écart aléatoire simple à partir de la distribution de Poisson avec la moyenne "mu" (mu >= 0.0)

Description

int stats_rand_gen_ipoisson ( float $mu )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mu

Valeurs de retour


Génère un entier uniformément distribué entre LOW (inclusif) et HIGH (inclusif)

  • « stats_rand_gen_ipoisson
  • stats_rand_gen_noncenral_chisquare »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère un entier uniformément distribué entre LOW (inclusif) et HIGH (inclusif)

stats_rand_gen_iuniform

(PECL stats >= 1.0.0)

stats_rand_gen_iuniform — Génère un entier uniformément distribué entre LOW (inclusif) et HIGH (inclusif)

Description

int stats_rand_gen_iuniform ( int $low , int $high )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

low

high

Valeurs de retour


Génère un écart aléatoire à partir de la distribution non centrale de Khi-carré de "df" degrés de liberté et de paramètre non central "nonc". d doit être >= 1.0, xnonc doit être *gt;= 0.0

  • « stats_rand_gen_iuniform
  • stats_rand_gen_noncentral_f »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère un écart aléatoire à partir de la distribution non centrale de Khi-carré de "df" degrés de liberté et de paramètre non central "nonc". d doit être >= 1.0, xnonc doit être *gt;= 0.0

stats_rand_gen_noncenral_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_noncenral_chisquare — Génère un écart aléatoire à partir de la distribution non centrale de Khi-carré de "df" degrés de liberté et de paramètre non central "nonc". d doit être >= 1.0, xnonc doit être *gt;= 0.0

Description

float stats_rand_gen_noncenral_chisquare ( float $df , float $xnonc )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

df

xnonc

Valeurs de retour


Génère l'écart aléatoire à partir de la distribution non centrale de F (ratio variance) avec "dfn" degré de liberté dans le numérateur et "dfd" degré de liberté dans le dénominateur et le paramètre non central "xnonc". Méthode : génère directement le ratio d'une variation Khi-carré non centrale de n

  • « stats_rand_gen_noncenral_chisquare
  • stats_rand_gen_noncentral_t »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère l'écart aléatoire à partir de la distribution non centrale de F (ratio variance) avec "dfn" degré de liberté dans le numérateur et "dfd" degré de liberté dans le dénominateur et le paramètre non central "xnonc". Méthode : génère directement le ratio d'une variation Khi-carré non centrale de numérateur à la variation Khi-carré centrale de dénominateur

stats_rand_gen_noncentral_f

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_f — Génère l'écart aléatoire à partir de la distribution non centrale de F (ratio variance) avec "dfn" degré de liberté dans le numérateur et "dfd" degré de liberté dans le dénominateur et le paramètre non central "xnonc". Méthode : génère directement le ratio d'une variation Khi-carré non centrale de numérateur à la variation Khi-carré centrale de dénominateur

Description

float stats_rand_gen_noncentral_f ( float $dfn , float $dfd , float $xnonc )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

dfn

dfd

xnonc

Valeurs de retour


Génère l'écart aléatoire simple à partir d'une distribution T non centrale

  • « stats_rand_gen_noncentral_f
  • stats_rand_gen_normal »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère l'écart aléatoire simple à partir d'une distribution T non centrale

stats_rand_gen_noncentral_t

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_t — Génère l'écart aléatoire simple à partir d'une distribution T non centrale

Description

float stats_rand_gen_noncentral_t ( float $df , float $xnonc )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

df

xnonc

Valeurs de retour


Génère un écart aléatoire simple à partir d'une distribution normale avec la moyenne, av, et écart type sd (sd >= 0). Méthode : Renomme SNORM de TOMS légèrement modifié par BWB pour utiliser RANF au lieu de SUNIF

  • « stats_rand_gen_noncentral_t
  • stats_rand_gen_t »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère un écart aléatoire simple à partir d'une distribution normale avec la moyenne, av, et écart type sd (sd >= 0). Méthode : Renomme SNORM de TOMS légèrement modifié par BWB pour utiliser RANF au lieu de SUNIF

stats_rand_gen_normal

(PECL stats >= 1.0.0)

stats_rand_gen_normal — Génère un écart aléatoire simple à partir d'une distribution normale avec la moyenne, av, et écart type sd (sd >= 0). Méthode : Renomme SNORM de TOMS légèrement modifié par BWB pour utiliser RANF au lieu de SUNIF

Description

float stats_rand_gen_normal ( float $av , float $sd )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

av

sd

Valeurs de retour


Génère un écart aléatoire simple à partir de la distribution T

  • « stats_rand_gen_normal
  • stats_rand_get_seeds »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère un écart aléatoire simple à partir de la distribution T

stats_rand_gen_t

(PECL stats >= 1.0.0)

stats_rand_gen_t — Génère un écart aléatoire simple à partir de la distribution T

Description

float stats_rand_gen_t ( float $df )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

df

Valeurs de retour


Non documenté

  • « stats_rand_gen_t
  • stats_rand_phrase_to_seeds »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_rand_get_seeds

(PECL stats >= 1.0.0)

stats_rand_get_seeds — Non documenté

Description

array stats_rand_get_seeds ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour


Génère deux graines pour le générateur de nombre aléatoire RGN

  • « stats_rand_get_seeds
  • stats_rand_ranf »
  • PHP Manual
  • Fonctions sur les statistiques
  • Génère deux graines pour le générateur de nombre aléatoire RGN

stats_rand_phrase_to_seeds

(PECL stats >= 1.0.0)

stats_rand_phrase_to_seeds — Génère deux graines pour le générateur de nombre aléatoire RGN

Description

array stats_rand_phrase_to_seeds ( string $phrase )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

phrase

Valeurs de retour


Retourne un nombre à valeur décimale aléatoire à partir d'une distribution uniforme de 0 - 1 (les points finaux de cet intervalle ne sont pas retourné) en utilisant le générateur courant

  • « stats_rand_phrase_to_seeds
  • stats_rand_setall »
  • PHP Manual
  • Fonctions sur les statistiques
  • Retourne un nombre à valeur décimale aléatoire à partir d'une distribution uniforme de 0 - 1 (les points finaux de cet intervalle ne sont pas retourné) en utilisant le générateur courant

stats_rand_ranf

(PECL stats >= 1.0.0)

stats_rand_ranf — Retourne un nombre à valeur décimale aléatoire à partir d'une distribution uniforme de 0 - 1 (les points finaux de cet intervalle ne sont pas retourné) en utilisant le générateur courant

Description

float stats_rand_ranf ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour


Non documenté

  • « stats_rand_ranf
  • stats_skew »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_rand_setall

(PECL stats >= 1.0.0)

stats_rand_setall — Non documenté

Description

void stats_rand_setall ( int $iseed1 , int $iseed2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iseed1

iseed2

Valeurs de retour


Calcul l'asymétrie des données dans un tableau

  • « stats_rand_setall
  • stats_standard_deviation »
  • PHP Manual
  • Fonctions sur les statistiques
  • Calcul l'asymétrie des données dans un tableau

stats_skew

(PECL stats >= 1.0.0)

stats_skew — Calcul l'asymétrie des données dans un tableau

Description

float stats_skew ( array $a )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

a

Valeurs de retour


Retourne l'écart type

  • « stats_skew
  • stats_stat_binomial_coef »
  • PHP Manual
  • Fonctions sur les statistiques
  • Retourne l'écart type

stats_standard_deviation

(PECL stats >= 1.0.0)

stats_standard_deviation — Retourne l'écart type

Description

float stats_standard_deviation ( array $a [, bool $sample = false ] )

Liste de paramètres

a

Le tableau de données sur lequel l'écart type doit être calculé. Remarque : toutes les valeurs du tableau seront converties en float.

sample

Indique si a est un échantillon. Par défaut : FALSE.

Valeurs de retour

Retourne l'écart type en cas de succès, FALSE si une erreur survient.

Erreurs / Exceptions

Une erreur E_WARNING est émise s'il y a moins de 2 valeurs dans a.


Non documenté

  • « stats_standard_deviation
  • stats_stat_correlation »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_stat_binomial_coef

(PECL stats >= 1.0.0)

stats_stat_binomial_coef — Non documenté

Description

float stats_stat_binomial_coef ( int $x , int $n )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

x

n

Valeurs de retour


Non documenté

  • « stats_stat_binomial_coef
  • stats_stat_gennch »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_stat_correlation

(PECL stats >= 1.0.0)

stats_stat_correlation — Non documenté

Description

float stats_stat_correlation ( array $arr1 , array $arr2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

arr1

arr2

Valeurs de retour


Non documenté

  • « stats_stat_correlation
  • stats_stat_independent_t »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_stat_gennch

(PECL stats >= 1.0.0)

stats_stat_gennch — Non documenté

Description

float stats_stat_gennch ( int $n )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

n

Valeurs de retour


Non documenté

  • « stats_stat_gennch
  • stats_stat_innerproduct »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_stat_independent_t

(PECL stats >= 1.0.0)

stats_stat_independent_t — Non documenté

Description

float stats_stat_independent_t ( array $arr1 , array $arr2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

arr1

arr2

Valeurs de retour


Description

  • « stats_stat_independent_t
  • stats_stat_noncentral_t »
  • PHP Manual
  • Fonctions sur les statistiques
  • Description

stats_stat_innerproduct

(PECL stats >= 1.0.0)

stats_stat_innerproduct —

Description

float stats_stat_innerproduct ( array $arr1 , array $arr2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

arr1

arr2

Valeurs de retour


Calcule n'importe quel paramètre de distribution non centrale t des valeurs données pour les autres valeurs

  • « stats_stat_innerproduct
  • stats_stat_paired_t »
  • PHP Manual
  • Fonctions sur les statistiques
  • Calcule n'importe quel paramètre de distribution non centrale t des valeurs données pour les autres valeurs

stats_stat_noncentral_t

(PECL stats >= 1.0.0)

stats_stat_noncentral_t — Calcule n'importe quel paramètre de distribution non centrale t des valeurs données pour les autres valeurs

Description

float stats_stat_noncentral_t ( float $par1 , float $par2 , float $par3 , int $which )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

par1

par2

par3

which

Valeurs de retour


Non documenté

  • « stats_stat_noncentral_t
  • stats_stat_percentile »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_stat_paired_t

(PECL stats >= 1.0.0)

stats_stat_paired_t — Non documenté

Description

float stats_stat_paired_t ( array $arr1 , array $arr2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

arr1

arr2

Valeurs de retour


Non documenté

  • « stats_stat_paired_t
  • stats_stat_powersum »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_stat_percentile

(PECL stats >= 1.0.0)

stats_stat_percentile — Non documenté

Description

float stats_stat_percentile ( float $df , float $xnonc )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

df

xnonc

Valeurs de retour


Non documenté

  • « stats_stat_percentile
  • stats_variance »
  • PHP Manual
  • Fonctions sur les statistiques
  • Non documenté

stats_stat_powersum

(PECL stats >= 1.0.0)

stats_stat_powersum — Non documenté

Description

float stats_stat_powersum ( array $arr , float $power )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

arr

power

Valeurs de retour


Retourne la variance d'une population

  • « stats_stat_powersum
  • Trader »
  • PHP Manual
  • Fonctions sur les statistiques
  • Retourne la variance d'une population

stats_variance

(PECL stats >= 1.0.0)

stats_variance — Retourne la variance d'une population

Description

float stats_variance ( array $a [, bool $sample = false ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

a

sample

Valeurs de retour


Analyse technique pour les marchands

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
  • Constantes pré-définies
  • Fonctions Trader
    • trader_acos — Vector Trigonometric ACos
    • trader_ad — Chaikin A/D Line
    • trader_add — Ajoute un vecteur arithmétique
    • trader_adosc — Chaikin A/D Oscillator
    • trader_adx — Average Directional Movement Index
    • trader_adxr — Average Directional Movement Index Rating
    • trader_apo — Absolute Price Oscillator
    • trader_aroon — Aroon
    • trader_aroonosc — Aroon Oscillator
    • trader_asin — Vector Trigonometric ASin
    • trader_atan — Calcule l'arc tangente
    • trader_atr — Average True Range
    • trader_avgprice — Average Price
    • trader_bbands — Bollinger Bands
    • trader_beta — Beta
    • trader_bop — Balance Of Power
    • trader_cci — Commodity Channel Index
    • trader_cdl2crows — Two Crows
    • trader_cdl3blackcrows — Three Black Crows
    • trader_cdl3inside — Three Inside Up/Down
    • trader_cdl3linestrike — Three-Line Strike
    • trader_cdl3outside — Three Outside Up/Down
    • trader_cdl3starsinsouth — Three Stars In The South
    • trader_cdl3whitesoldiers — Three Advancing White Soldiers
    • trader_cdlabandonedbaby — Abandoned Baby
    • trader_cdladvanceblock — Advance Block
    • trader_cdlbelthold — Belt-hold
    • trader_cdlbreakaway — Breakaway
    • trader_cdlclosingmarubozu — Closing Marubozu
    • trader_cdlconcealbabyswall — Concealing Baby Swallow
    • trader_cdlcounterattack — Counterattack
    • trader_cdldarkcloudcover — Dark Cloud Cover
    • trader_cdldoji — Doji
    • trader_cdldojistar — Doji Star
    • trader_cdldragonflydoji — Dragonfly Doji
    • trader_cdlengulfing — Engulfing Pattern
    • trader_cdleveningdojistar — Evening Doji Star
    • trader_cdleveningstar — Evening Star
    • trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines
    • trader_cdlgravestonedoji — Gravestone Doji
    • trader_cdlhammer — Hammer
    • trader_cdlhangingman — Hanging Man
    • trader_cdlharami — Harami Pattern
    • trader_cdlharamicross — Harami Cross Pattern
    • trader_cdlhighwave — High-Wave Candle
    • trader_cdlhikkake — Hikkake Pattern
    • trader_cdlhikkakemod — Modified Hikkake Pattern
    • trader_cdlhomingpigeon — Homing Pigeon
    • trader_cdlidentical3crows — Identical Three Crows
    • trader_cdlinneck — Masque In-Neck
    • trader_cdlinvertedhammer — Marteau inversé
    • trader_cdlkicking — Kicking
    • trader_cdlkickingbylength — Kicking - bull/bear déterminé par le plus marubozu
    • trader_cdlladderbottom — Bas de l'échelle
    • trader_cdllongleggeddoji — Doji : longueur des jambes
    • trader_cdllongline — Long Line Candle
    • trader_cdlmarubozu — Marubozu
    • trader_cdlmatchinglow — Matching Low
    • trader_cdlmathold — Mat Hold
    • trader_cdlmorningdojistar — Etoile Doji du matin
    • trader_cdlmorningstar — Etoile du matin
    • trader_cdlonneck — Masque On-Neck
    • trader_cdlpiercing — Masque Piercing
    • trader_cdlrickshawman — Rickshaw Man
    • trader_cdlrisefall3methods — Hausse / Baisse - 3 méthodes
    • trader_cdlseparatinglines — Lignes séparées
    • trader_cdlshootingstar — Etoile filante
    • trader_cdlshortline — Ligne courte de bougie
    • trader_cdlspinningtop — Toupie
    • trader_cdlstalledpattern — Masque bloqué
    • trader_cdlsticksandwich — Sandwich épinglé
    • trader_cdltakuri — Takuri (Dragonfly Doji avec une ombre inférieure très longue)
    • trader_cdltasukigap — Ecart Tasuki
    • trader_cdlthrusting — Masque de poussée
    • trader_cdltristar — Masque Tristar
    • trader_cdlunique3river — Unique 3 River
    • trader_cdlupsidegap2crows — Ecart inversé Two Crows
    • trader_cdlxsidegap3methods — Ecart supérieur/inférieur trois méthodes
    • trader_ceil — Vecteur plafonné
    • trader_cmo — Oscillateur dynamique Chande
    • trader_correl — Coefficient de corrélation de Pearson (r)
    • trader_cos — Vecteur trigonométrique Cos
    • trader_cosh — Vecteur trigonométrique Cosh
    • trader_dema — Moyenne mobile exponentielle double
    • trader_div — Vecteur arithmétique Div
    • trader_dx — Indice de mouvement directionnel
    • trader_ema — Moyenne mobile exponentielle
    • trader_errno — Récupère le code erreur
    • trader_exp — Vecteur arithmétique Exp
    • trader_floor — Niveau du vecteur
    • trader_get_compat — Récupère le mode de compatibilité
    • trader_get_unstable_period — Récupère la période d'instabilité
    • trader_ht_dcperiod — Transformation de Hilbert - Période de cycle dominant
    • trader_ht_dcphase — Transformation de Hilbert - Phase de cycle dominant
    • trader_ht_phasor — Transformation de Hilbert - Composants de la phase
    • trader_ht_sine — Transformation de Hilbert - Onde sinusoïdale
    • trader_ht_trendline — Transformation de Hilbert - Tendance instantanée
    • trader_ht_trendmode — Transformation de Hilbert - Mode tendance vs mode cycle
    • trader_kama — Moyenne mobile adaptative Kaufman
    • trader_linearreg_angle — Angle de régression linéaire
    • trader_linearreg_intercept — Interception de régression linéaire
    • trader_linearreg_slope — Pente de régression linéaire
    • trader_linearreg — Régression linéaire
    • trader_ln — Vecteur de Log naturel
    • trader_log10 — Vecteur Log10
    • trader_ma — Moyenne mobile
    • trader_macd — Moyenne du déplacement Convergence/Divergence
    • trader_macdext — MACD avec un type MA réglable
    • trader_macdfix — Moyen de déplacement Convergence/Divergence fixé à 12/26
    • trader_mama — MESA moyenne mobile adaptative
    • trader_mavp — Moyenne mobile avec durée variable
    • trader_max — Valeur la plus élevée sur une période déterminée
    • trader_maxindex — Indice de la valeur la plus élevée sur une période déterminée
    • trader_medprice — Prix médian
    • trader_mfi — Indice de fluidité de l'argent
    • trader_midpoint — Milieu sur la période
    • trader_midprice — Prix moyen sur la période
    • trader_min — Valeur la plus basse sur une période spécifique
    • trader_minindex — Indice de la valeur la plus basse sur une période déterminée
    • trader_minmax — Valeurs minimales et maximales sur une période donnée
    • trader_minmaxindex — Indices des valeurs minimales et maximales sur une période donnée
    • trader_minus_di — Indicateur minimum directionnel
    • trader_minus_dm — Mouvement minimum directionnel
    • trader_mom — Elan
    • trader_mult — Vecteur arithmétique mult
    • trader_natr — Intervalle réel normalisé moyen
    • trader_obv — Volume de l'équilibre
    • trader_plus_di — Indicateur positif de direction
    • trader_plus_dm — Mouvement directionnel positif
    • trader_ppo — Oscillateur de prix en pourcentage
    • trader_roc — Taux de variation : ((price/prevPrice)-1)*100
    • trader_rocp — Taux de variation en pourcentage : (price-prevPrice)/prevPrice
    • trader_rocr100 — Taux de taux de variation de l'échelle de 100 : (price/prevPrice)*100
    • trader_rocr — Taux de rapport de changement : (price/prevPrice)
    • trader_rsi — Indice de force relative
    • trader_sar — Parabolique SAR
    • trader_sarext — Parabolique SAR - Etendu
    • trader_set_compat — Définit le mode de compatibilité
    • trader_set_unstable_period — Définit une période instable
    • trader_sin — Vecteur trigonométrique sin
    • trader_sinh — Vecteur trigonométrique sinh
    • trader_sma — Moyenne mobile simple
    • trader_sqrt — Vecteur de racine carrée
    • trader_stddev — Déviation standard
    • trader_stoch — Stochastique
    • trader_stochf — Rapidité stochastique
    • trader_stochrsi — Index stochastique relatif fort
    • trader_sub — Vecteur de soustraction arithmétique
    • trader_sum — Résumé
    • trader_t3 — Triple moyenne mobile exponentielle (T3)
    • trader_tan — Vecteur trigonométrie Tan
    • trader_tanh — Vecteur trigonométrie Tanh
    • trader_tema — Triple moyenne mobile exponentielle
    • trader_trange — Intervalle réel
    • trader_trima — Moyenne mobile triangulaire
    • trader_trix — Taux de variation sur une journée (ROC) d'un triple EMA lissé
    • trader_tsf — Prévisions des séries chronologiques
    • trader_typprice — Prix ??typique
    • trader_ultosc — Oscillateur ultime
    • trader_var — Variance
    • trader_wclprice — Prix clos ??pondéré
    • trader_willr — Williams' %R
    • trader_wma — Moyenne mobile pondérée


Introduction

L'extension Trader est une bibliothèque open source libre, basée sur TA-Lib. Elle est dédiée aux développeurs de logiciels commerciaux qui nécessitent d'effectuer une analyse technique des données sur les marchés financiers. En plus de celà, plusieurs indicateurs comme ADX, MACD, RSI, Stochastic, TRIX le chadellier à reconnaissance de masque, mais aussi, divers fonctions arithmétique et algébrique sont présents.

Les calculs peuvent être réalisés en 2 modes : TA-Lib et Metastock. La modification de ces modes en utilisant la fonction trader_set_compat() affectera la façon dont réagissent quelques fonctions Trader.

Quelques fonctions Trader fournissent différents résultats suivant le "point de départ" des données à utiliser. Ce peut être comparé à l'allocation mémoire d'une fonction. Un exemple d'une telle fonction est la moyenne de déplacement exponentiel. Il est possible de contrôler la période instable (la quantité de données à analyser) en utilisant la fonction trader_set_unstable_period().

Une documentation plus complète à propos des indicateurs, des formules et son implémentation dans d'autres langages de programmation peut être trouvée sur la site » tadoc.org.


Pré-requis

L'extension trader est basée sur » TA-Lib. TA-Lib est totalement intégré dans l'extension, aussi, aucune bibliothèque externe n'est nécessaire.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/trader.

Une bibliothèque DLL pour cette extension PECL est disponible à l'adresse » http://windows.php.net/downloads/pecl/releases/trader/.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Trader
Nom | Défaut | Modifiable | Historique
trader.real_precision | 3 | PHP_INI_ALL | Depuis trader 0.2.1
trader.real_round_mode | HALF_DOWN | PHP_INI_ALL | Depuis trader 0.3.0

Voici un éclaircissement sur l'utilisation des directives de configuration.

trader.real_precision integer

Toutes les valeurs des tableaux retournés seront arrondies à cette précision. Cependant, les calculs dans la TA-Lib sont effectués avec des valeurs non-arrondies.

trader.real_round_mode string

Contrôle la politique d'arrondissement des réels trader. Les valeurs valides sont HALF_UP, HALF_DOWN, HALF_EVEN et HALF_ODD. Le comportement est identique à la fonction round() utilisée avec l'argument mode.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

TRADER_MA_TYPE_SMA (entier)
TRADER_MA_TYPE_EMA (entier)
TRADER_MA_TYPE_WMA (entier)
TRADER_MA_TYPE_DEMA (entier)
TRADER_MA_TYPE_TEMA (entier)
TRADER_MA_TYPE_TRIMA (entier)
TRADER_MA_TYPE_KAMA (entier)
TRADER_MA_TYPE_MAMA (entier)
TRADER_MA_TYPE_T3 (entier)
TRADER_REAL_MIN (double)
TRADER_REAL_MAX (double)
TRADER_FUNC_UNST_ADX (entier)
TRADER_FUNC_UNST_ADXR (entier)
TRADER_FUNC_UNST_ATR (entier)
TRADER_FUNC_UNST_CMO (entier)
TRADER_FUNC_UNST_DX (entier)
TRADER_FUNC_UNST_EMA (entier)
TRADER_FUNC_UNST_HT_DCPERIOD (entier)
TRADER_FUNC_UNST_HT_DCPHASE (entier)
TRADER_FUNC_UNST_HT_PHASOR (entier)
TRADER_FUNC_UNST_HT_SINE (entier)
TRADER_FUNC_UNST_HT_TRENDLINE (entier)
TRADER_FUNC_UNST_HT_TRENDMODE (entier)
TRADER_FUNC_UNST_KAMA (entier)
TRADER_FUNC_UNST_MAMA (entier)
TRADER_FUNC_UNST_MFI (entier)
TRADER_FUNC_UNST_MINUS_DI (entier)
TRADER_FUNC_UNST_MINUS_DM (entier)
TRADER_FUNC_UNST_NATR (entier)
TRADER_FUNC_UNST_PLUS_DI (entier)
TRADER_FUNC_UNST_PLUS_DM (entier)
TRADER_FUNC_UNST_RSI (entier)
TRADER_FUNC_UNST_STOCHRSI (entier)
TRADER_FUNC_UNST_T3 (entier)
TRADER_FUNC_UNST_ALL (entier)
TRADER_FUNC_UNST_NONE (entier)
TRADER_COMPATIBILITY_DEFAULT (entier)
TRADER_COMPATIBILITY_METASTOCK (entier)
TRADER_ERR_SUCCESS (entier)
TRADER_ERR_LIB_NOT_INITIALIZE (entier)
TRADER_ERR_BAD_PARAM (entier)
TRADER_ERR_ALLOC_ERR (entier)
TRADER_ERR_GROUP_NOT_FOUND (entier)
TRADER_ERR_FUNC_NOT_FOUND (entier)
TRADER_ERR_INVALID_HANDLE (entier)
TRADER_ERR_INVALID_PARAM_HOLDER (entier)
TRADER_ERR_INVALID_PARAM_HOLDER_TYPE (entier)
TRADER_ERR_INVALID_PARAM_FUNCTION (entier)
TRADER_ERR_INPUT_NOT_ALL_INITIALIZE (entier)
TRADER_ERR_OUTPUT_NOT_ALL_INITIALIZE (entier)
TRADER_ERR_OUT_OF_RANGE_START_INDEX (entier)
TRADER_ERR_OUT_OF_RANGE_END_INDEX (entier)
TRADER_ERR_INVALID_LIST_TYPE (entier)
TRADER_ERR_BAD_OBJECT (entier)
TRADER_ERR_NOT_SUPPORTED (entier)
TRADER_ERR_INTERNAL_ERROR (entier)
TRADER_ERR_UNKNOWN_ERROR (entier)


Fonctions Trader

Sommaire

  • trader_acos — Vector Trigonometric ACos
  • trader_ad — Chaikin A/D Line
  • trader_add — Ajoute un vecteur arithmétique
  • trader_adosc — Chaikin A/D Oscillator
  • trader_adx — Average Directional Movement Index
  • trader_adxr — Average Directional Movement Index Rating
  • trader_apo — Absolute Price Oscillator
  • trader_aroon — Aroon
  • trader_aroonosc — Aroon Oscillator
  • trader_asin — Vector Trigonometric ASin
  • trader_atan — Calcule l'arc tangente
  • trader_atr — Average True Range
  • trader_avgprice — Average Price
  • trader_bbands — Bollinger Bands
  • trader_beta — Beta
  • trader_bop — Balance Of Power
  • trader_cci — Commodity Channel Index
  • trader_cdl2crows — Two Crows
  • trader_cdl3blackcrows — Three Black Crows
  • trader_cdl3inside — Three Inside Up/Down
  • trader_cdl3linestrike — Three-Line Strike
  • trader_cdl3outside — Three Outside Up/Down
  • trader_cdl3starsinsouth — Three Stars In The South
  • trader_cdl3whitesoldiers — Three Advancing White Soldiers
  • trader_cdlabandonedbaby — Abandoned Baby
  • trader_cdladvanceblock — Advance Block
  • trader_cdlbelthold — Belt-hold
  • trader_cdlbreakaway — Breakaway
  • trader_cdlclosingmarubozu — Closing Marubozu
  • trader_cdlconcealbabyswall — Concealing Baby Swallow
  • trader_cdlcounterattack — Counterattack
  • trader_cdldarkcloudcover — Dark Cloud Cover
  • trader_cdldoji — Doji
  • trader_cdldojistar — Doji Star
  • trader_cdldragonflydoji — Dragonfly Doji
  • trader_cdlengulfing — Engulfing Pattern
  • trader_cdleveningdojistar — Evening Doji Star
  • trader_cdleveningstar — Evening Star
  • trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines
  • trader_cdlgravestonedoji — Gravestone Doji
  • trader_cdlhammer — Hammer
  • trader_cdlhangingman — Hanging Man
  • trader_cdlharami — Harami Pattern
  • trader_cdlharamicross — Harami Cross Pattern
  • trader_cdlhighwave — High-Wave Candle
  • trader_cdlhikkake — Hikkake Pattern
  • trader_cdlhikkakemod — Modified Hikkake Pattern
  • trader_cdlhomingpigeon — Homing Pigeon
  • trader_cdlidentical3crows — Identical Three Crows
  • trader_cdlinneck — Masque In-Neck
  • trader_cdlinvertedhammer — Marteau inversé
  • trader_cdlkicking — Kicking
  • trader_cdlkickingbylength — Kicking - bull/bear déterminé par le plus marubozu
  • trader_cdlladderbottom — Bas de l'échelle
  • trader_cdllongleggeddoji — Doji : longueur des jambes
  • trader_cdllongline — Long Line Candle
  • trader_cdlmarubozu — Marubozu
  • trader_cdlmatchinglow — Matching Low
  • trader_cdlmathold — Mat Hold
  • trader_cdlmorningdojistar — Etoile Doji du matin
  • trader_cdlmorningstar — Etoile du matin
  • trader_cdlonneck — Masque On-Neck
  • trader_cdlpiercing — Masque Piercing
  • trader_cdlrickshawman — Rickshaw Man
  • trader_cdlrisefall3methods — Hausse / Baisse - 3 méthodes
  • trader_cdlseparatinglines — Lignes séparées
  • trader_cdlshootingstar — Etoile filante
  • trader_cdlshortline — Ligne courte de bougie
  • trader_cdlspinningtop — Toupie
  • trader_cdlstalledpattern — Masque bloqué
  • trader_cdlsticksandwich — Sandwich épinglé
  • trader_cdltakuri — Takuri (Dragonfly Doji avec une ombre inférieure très longue)
  • trader_cdltasukigap — Ecart Tasuki
  • trader_cdlthrusting — Masque de poussée
  • trader_cdltristar — Masque Tristar
  • trader_cdlunique3river — Unique 3 River
  • trader_cdlupsidegap2crows — Ecart inversé Two Crows
  • trader_cdlxsidegap3methods — Ecart supérieur/inférieur trois méthodes
  • trader_ceil — Vecteur plafonné
  • trader_cmo — Oscillateur dynamique Chande
  • trader_correl — Coefficient de corrélation de Pearson (r)
  • trader_cos — Vecteur trigonométrique Cos
  • trader_cosh — Vecteur trigonométrique Cosh
  • trader_dema — Moyenne mobile exponentielle double
  • trader_div — Vecteur arithmétique Div
  • trader_dx — Indice de mouvement directionnel
  • trader_ema — Moyenne mobile exponentielle
  • trader_errno — Récupère le code erreur
  • trader_exp — Vecteur arithmétique Exp
  • trader_floor — Niveau du vecteur
  • trader_get_compat — Récupère le mode de compatibilité
  • trader_get_unstable_period — Récupère la période d'instabilité
  • trader_ht_dcperiod — Transformation de Hilbert - Période de cycle dominant
  • trader_ht_dcphase — Transformation de Hilbert - Phase de cycle dominant
  • trader_ht_phasor — Transformation de Hilbert - Composants de la phase
  • trader_ht_sine — Transformation de Hilbert - Onde sinusoïdale
  • trader_ht_trendline — Transformation de Hilbert - Tendance instantanée
  • trader_ht_trendmode — Transformation de Hilbert - Mode tendance vs mode cycle
  • trader_kama — Moyenne mobile adaptative Kaufman
  • trader_linearreg_angle — Angle de régression linéaire
  • trader_linearreg_intercept — Interception de régression linéaire
  • trader_linearreg_slope — Pente de régression linéaire
  • trader_linearreg — Régression linéaire
  • trader_ln — Vecteur de Log naturel
  • trader_log10 — Vecteur Log10
  • trader_ma — Moyenne mobile
  • trader_macd — Moyenne du déplacement Convergence/Divergence
  • trader_macdext — MACD avec un type MA réglable
  • trader_macdfix — Moyen de déplacement Convergence/Divergence fixé à 12/26
  • trader_mama — MESA moyenne mobile adaptative
  • trader_mavp — Moyenne mobile avec durée variable
  • trader_max — Valeur la plus élevée sur une période déterminée
  • trader_maxindex — Indice de la valeur la plus élevée sur une période déterminée
  • trader_medprice — Prix médian
  • trader_mfi — Indice de fluidité de l'argent
  • trader_midpoint — Milieu sur la période
  • trader_midprice — Prix moyen sur la période
  • trader_min — Valeur la plus basse sur une période spécifique
  • trader_minindex — Indice de la valeur la plus basse sur une période déterminée
  • trader_minmax — Valeurs minimales et maximales sur une période donnée
  • trader_minmaxindex — Indices des valeurs minimales et maximales sur une période donnée
  • trader_minus_di — Indicateur minimum directionnel
  • trader_minus_dm — Mouvement minimum directionnel
  • trader_mom — Elan
  • trader_mult — Vecteur arithmétique mult
  • trader_natr — Intervalle réel normalisé moyen
  • trader_obv — Volume de l'équilibre
  • trader_plus_di — Indicateur positif de direction
  • trader_plus_dm — Mouvement directionnel positif
  • trader_ppo — Oscillateur de prix en pourcentage
  • trader_roc — Taux de variation : ((price/prevPrice)-1)*100
  • trader_rocp — Taux de variation en pourcentage : (price-prevPrice)/prevPrice
  • trader_rocr100 — Taux de taux de variation de l'échelle de 100 : (price/prevPrice)*100
  • trader_rocr — Taux de rapport de changement : (price/prevPrice)
  • trader_rsi — Indice de force relative
  • trader_sar — Parabolique SAR
  • trader_sarext — Parabolique SAR - Etendu
  • trader_set_compat — Définit le mode de compatibilité
  • trader_set_unstable_period — Définit une période instable
  • trader_sin — Vecteur trigonométrique sin
  • trader_sinh — Vecteur trigonométrique sinh
  • trader_sma — Moyenne mobile simple
  • trader_sqrt — Vecteur de racine carrée
  • trader_stddev — Déviation standard
  • trader_stoch — Stochastique
  • trader_stochf — Rapidité stochastique
  • trader_stochrsi — Index stochastique relatif fort
  • trader_sub — Vecteur de soustraction arithmétique
  • trader_sum — Résumé
  • trader_t3 — Triple moyenne mobile exponentielle (T3)
  • trader_tan — Vecteur trigonométrie Tan
  • trader_tanh — Vecteur trigonométrie Tanh
  • trader_tema — Triple moyenne mobile exponentielle
  • trader_trange — Intervalle réel
  • trader_trima — Moyenne mobile triangulaire
  • trader_trix — Taux de variation sur une journée (ROC) d'un triple EMA lissé
  • trader_tsf — Prévisions des séries chronologiques
  • trader_typprice — Prix ??typique
  • trader_ultosc — Oscillateur ultime
  • trader_var — Variance
  • trader_wclprice — Prix clos ??pondéré
  • trader_willr — Williams' %R
  • trader_wma — Moyenne mobile pondérée


Vector Trigonometric ACos

  • « Fonctions Trader
  • trader_ad »
  • PHP Manual
  • Fonctions Trader
  • Vector Trigonometric ACos

trader_acos

(PECL trader >= 0.2.0)

trader_acos — Vector Trigonometric ACos

Description

array trader_acos ( array $real )

Calcule l'arc cosinus de chaque valeur de real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Chaikin A/D Line

  • « trader_acos
  • trader_add »
  • PHP Manual
  • Fonctions Trader
  • Chaikin A/D Line

trader_ad

(PECL trader >= 0.2.0)

trader_ad — Chaikin A/D Line

Description

array trader_ad ( array $high , array $low , array $close , array $volume )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

volume

Volume échangé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Ajoute un vecteur arithmétique

  • « trader_ad
  • trader_adosc »
  • PHP Manual
  • Fonctions Trader
  • Ajoute un vecteur arithmétique

trader_add

(PECL trader >= 0.2.0)

trader_add — Ajoute un vecteur arithmétique

Description

array trader_add ( array $real0 , array $real1 )

Calcule l'addition vectoriel de real0 en real1 et retourne le vecteur résultant.

Liste de paramètres

real0

Tableau de valeurs réelles.

real1

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Chaikin A/D Oscillator

  • « trader_add
  • trader_adx »
  • PHP Manual
  • Fonctions Trader
  • Chaikin A/D Oscillator

trader_adosc

(PECL trader >= 0.2.0)

trader_adosc — Chaikin A/D Oscillator

Description

array trader_adosc ( array $high , array $low , array $close , array $volume [, integer $fastPeriod [, integer $slowPeriod ]] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

volume

Volume échangé, tableau de valeurs réelles.

fastPeriod

Nombre de période pour le fast MA. Intervalle valide : 2 à 100000.

slowPeriod

Nombre de période pour le MA. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Average Directional Movement Index

  • « trader_adosc
  • trader_adxr »
  • PHP Manual
  • Fonctions Trader
  • Average Directional Movement Index

trader_adx

(PECL trader >= 0.2.0)

trader_adx — Average Directional Movement Index

Description

array trader_adx ( array $high , array $low , array $close [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Average Directional Movement Index Rating

  • « trader_adx
  • trader_apo »
  • PHP Manual
  • Fonctions Trader
  • Average Directional Movement Index Rating

trader_adxr

(PECL trader >= 0.2.0)

trader_adxr — Average Directional Movement Index Rating

Description

array trader_adxr ( array $high , array $low , array $close [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Absolute Price Oscillator

  • « trader_adxr
  • trader_aroon »
  • PHP Manual
  • Fonctions Trader
  • Absolute Price Oscillator

trader_apo

(PECL trader >= 0.2.0)

trader_apo — Absolute Price Oscillator

Description

array trader_apo ( array $real [, integer $fastPeriod [, integer $slowPeriod [, integer $mAType ]]] )

Liste de paramètres

real

Tableau de valeurs réelles.

fastPeriod

Nombre de période pour le fast MA. Intervalle valide : 2 à 100000.

slowPeriod

Nombre de période pour le MA. Intervalle valide : 2 à 100000.

mAType

Type de moyenne mobile. Une constante de la série TRADER_MA_TYPE_* doit être utilisée.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Aroon

  • « trader_apo
  • trader_aroonosc »
  • PHP Manual
  • Fonctions Trader
  • Aroon

trader_aroon

(PECL trader >= 0.2.0)

trader_aroon — Aroon

Description

array trader_aroon ( array $high , array $low [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Aroon Oscillator

  • « trader_aroon
  • trader_asin »
  • PHP Manual
  • Fonctions Trader
  • Aroon Oscillator

trader_aroonosc

(PECL trader >= 0.2.0)

trader_aroonosc — Aroon Oscillator

Description

array trader_aroonosc ( array $high , array $low [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Vector Trigonometric ASin

  • « trader_aroonosc
  • trader_atan »
  • PHP Manual
  • Fonctions Trader
  • Vector Trigonometric ASin

trader_asin

(PECL trader >= 0.2.0)

trader_asin — Vector Trigonometric ASin

Description

array trader_asin ( array $real )

Calcule l'arc sinus de chaque valeur de real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Calcule l'arc tangente

  • « trader_asin
  • trader_atr »
  • PHP Manual
  • Fonctions Trader
  • Calcule l'arc tangente

trader_atan

(PECL trader >= 0.2.0)

trader_atan — Calcule l'arc tangente

Description

array trader_atan ( array $real )

Calcule l'arc tangente de chaque valeur de real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Average True Range

  • « trader_atan
  • trader_avgprice »
  • PHP Manual
  • Fonctions Trader
  • Average True Range

trader_atr

(PECL trader >= 0.2.0)

trader_atr — Average True Range

Description

array trader_atr ( array $high , array $low , array $close [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Average Price

  • « trader_atr
  • trader_bbands »
  • PHP Manual
  • Fonctions Trader
  • Average Price

trader_avgprice

(PECL trader >= 0.2.0)

trader_avgprice — Average Price

Description

array trader_avgprice ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Bollinger Bands

  • « trader_avgprice
  • trader_beta »
  • PHP Manual
  • Fonctions Trader
  • Bollinger Bands

trader_bbands

(PECL trader >= 0.2.0)

trader_bbands — Bollinger Bands

Description

array trader_bbands ( array $real [, integer $timePeriod [, float $nbDevUp [, float $nbDevDn [, integer $mAType ]]]] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

nbDevUp

Multiplicateur d'écart pour la bande supérieure. Intervalle valide : TRADER_REAL_MIN à TRADER_REAL_MAX.

nbDevDn

Multiplicateur d'écart pour la bande inférieure. Intervalle valide : TRADER_REAL_MIN à TRADER_REAL_MAX.

mAType

Type de moyenne mobile. Une constante de la série TRADER_MA_TYPE_* doit être utilisée.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Beta

  • « trader_bbands
  • trader_bop »
  • PHP Manual
  • Fonctions Trader
  • Beta

trader_beta

(PECL trader >= 0.2.0)

trader_beta — Beta

Description

array trader_beta ( array $real0 , array $real1 [, integer $timePeriod ] )

Liste de paramètres

real0

Tableau de valeurs réelles.

real1

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Balance Of Power

  • « trader_beta
  • trader_cci »
  • PHP Manual
  • Fonctions Trader
  • Balance Of Power

trader_bop

(PECL trader >= 0.2.0)

trader_bop — Balance Of Power

Description

array trader_bop ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Commodity Channel Index

  • « trader_bop
  • trader_cdl2crows »
  • PHP Manual
  • Fonctions Trader
  • Commodity Channel Index

trader_cci

(PECL trader >= 0.2.0)

trader_cci — Commodity Channel Index

Description

array trader_cci ( array $high , array $low , array $close [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Two Crows

  • « trader_cci
  • trader_cdl3blackcrows »
  • PHP Manual
  • Fonctions Trader
  • Two Crows

trader_cdl2crows

(PECL trader >= 0.2.0)

trader_cdl2crows — Two Crows

Description

array trader_cdl2crows ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Three Black Crows

  • « trader_cdl2crows
  • trader_cdl3inside »
  • PHP Manual
  • Fonctions Trader
  • Three Black Crows

trader_cdl3blackcrows

(PECL trader >= 0.2.0)

trader_cdl3blackcrows — Three Black Crows

Description

array trader_cdl3blackcrows ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Three Inside Up/Down

  • « trader_cdl3blackcrows
  • trader_cdl3linestrike »
  • PHP Manual
  • Fonctions Trader
  • Three Inside Up/Down

trader_cdl3inside

(PECL trader >= 0.2.0)

trader_cdl3inside — Three Inside Up/Down

Description

array trader_cdl3inside ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Three-Line Strike

  • « trader_cdl3inside
  • trader_cdl3outside »
  • PHP Manual
  • Fonctions Trader
  • Three-Line Strike

trader_cdl3linestrike

(PECL trader >= 0.2.0)

trader_cdl3linestrike — Three-Line Strike

Description

array trader_cdl3linestrike ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Three Outside Up/Down

  • « trader_cdl3linestrike
  • trader_cdl3starsinsouth »
  • PHP Manual
  • Fonctions Trader
  • Three Outside Up/Down

trader_cdl3outside

(PECL trader >= 0.2.0)

trader_cdl3outside — Three Outside Up/Down

Description

array trader_cdl3outside ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Three Stars In The South

  • « trader_cdl3outside
  • trader_cdl3whitesoldiers »
  • PHP Manual
  • Fonctions Trader
  • Three Stars In The South

trader_cdl3starsinsouth

(PECL trader >= 0.2.0)

trader_cdl3starsinsouth — Three Stars In The South

Description

array trader_cdl3starsinsouth ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Three Advancing White Soldiers

  • « trader_cdl3starsinsouth
  • trader_cdlabandonedbaby »
  • PHP Manual
  • Fonctions Trader
  • Three Advancing White Soldiers

trader_cdl3whitesoldiers

(PECL trader >= 0.2.0)

trader_cdl3whitesoldiers — Three Advancing White Soldiers

Description

array trader_cdl3whitesoldiers ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Abandoned Baby

  • « trader_cdl3whitesoldiers
  • trader_cdladvanceblock »
  • PHP Manual
  • Fonctions Trader
  • Abandoned Baby

trader_cdlabandonedbaby

(PECL trader >= 0.2.0)

trader_cdlabandonedbaby — Abandoned Baby

Description

array trader_cdlabandonedbaby ( array $open , array $high , array $low , array $close [, float $penetration ] )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

penetration

Pourcentage de pénétration d'une bougie dans une autre bougie.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Advance Block

  • « trader_cdlabandonedbaby
  • trader_cdlbelthold »
  • PHP Manual
  • Fonctions Trader
  • Advance Block

trader_cdladvanceblock

(PECL trader >= 0.2.0)

trader_cdladvanceblock — Advance Block

Description

array trader_cdladvanceblock ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Belt-hold

  • « trader_cdladvanceblock
  • trader_cdlbreakaway »
  • PHP Manual
  • Fonctions Trader
  • Belt-hold

trader_cdlbelthold

(PECL trader >= 0.2.0)

trader_cdlbelthold — Belt-hold

Description

array trader_cdlbelthold ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Breakaway

  • « trader_cdlbelthold
  • trader_cdlclosingmarubozu »
  • PHP Manual
  • Fonctions Trader
  • Breakaway

trader_cdlbreakaway

(PECL trader >= 0.2.0)

trader_cdlbreakaway — Breakaway

Description

array trader_cdlbreakaway ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Closing Marubozu

  • « trader_cdlbreakaway
  • trader_cdlconcealbabyswall »
  • PHP Manual
  • Fonctions Trader
  • Closing Marubozu

trader_cdlclosingmarubozu

(PECL trader >= 0.2.0)

trader_cdlclosingmarubozu — Closing Marubozu

Description

array trader_cdlclosingmarubozu ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Concealing Baby Swallow

  • « trader_cdlclosingmarubozu
  • trader_cdlcounterattack »
  • PHP Manual
  • Fonctions Trader
  • Concealing Baby Swallow

trader_cdlconcealbabyswall

(PECL trader >= 0.2.0)

trader_cdlconcealbabyswall — Concealing Baby Swallow

Description

array trader_cdlconcealbabyswall ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Counterattack

  • « trader_cdlconcealbabyswall
  • trader_cdldarkcloudcover »
  • PHP Manual
  • Fonctions Trader
  • Counterattack

trader_cdlcounterattack

(PECL trader >= 0.2.0)

trader_cdlcounterattack — Counterattack

Description

array trader_cdlcounterattack ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Dark Cloud Cover

  • « trader_cdlcounterattack
  • trader_cdldoji »
  • PHP Manual
  • Fonctions Trader
  • Dark Cloud Cover

trader_cdldarkcloudcover

(PECL trader >= 0.2.0)

trader_cdldarkcloudcover — Dark Cloud Cover

Description

array trader_cdldarkcloudcover ( array $open , array $high , array $low , array $close [, float $penetration ] )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

penetration

Pourcentage de pénétration d'une bougie dans une autre bougie.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Doji

  • « trader_cdldarkcloudcover
  • trader_cdldojistar »
  • PHP Manual
  • Fonctions Trader
  • Doji

trader_cdldoji

(PECL trader >= 0.2.0)

trader_cdldoji — Doji

Description

array trader_cdldoji ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Doji Star

  • « trader_cdldoji
  • trader_cdldragonflydoji »
  • PHP Manual
  • Fonctions Trader
  • Doji Star

trader_cdldojistar

(PECL trader >= 0.2.0)

trader_cdldojistar — Doji Star

Description

array trader_cdldojistar ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Dragonfly Doji

  • « trader_cdldojistar
  • trader_cdlengulfing »
  • PHP Manual
  • Fonctions Trader
  • Dragonfly Doji

trader_cdldragonflydoji

(PECL trader >= 0.2.0)

trader_cdldragonflydoji — Dragonfly Doji

Description

array trader_cdldragonflydoji ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Engulfing Pattern

  • « trader_cdldragonflydoji
  • trader_cdleveningdojistar »
  • PHP Manual
  • Fonctions Trader
  • Engulfing Pattern

trader_cdlengulfing

(PECL trader >= 0.2.0)

trader_cdlengulfing — Engulfing Pattern

Description

array trader_cdlengulfing ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Evening Doji Star

  • « trader_cdlengulfing
  • trader_cdleveningstar »
  • PHP Manual
  • Fonctions Trader
  • Evening Doji Star

trader_cdleveningdojistar

(PECL trader >= 0.2.0)

trader_cdleveningdojistar — Evening Doji Star

Description

array trader_cdleveningdojistar ( array $open , array $high , array $low , array $close [, float $penetration ] )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

penetration

Pourcentage de pénétration d'une bougie dans une autre bougie.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Evening Star

  • « trader_cdleveningdojistar
  • trader_cdlgapsidesidewhite »
  • PHP Manual
  • Fonctions Trader
  • Evening Star

trader_cdleveningstar

(PECL trader >= 0.2.0)

trader_cdleveningstar — Evening Star

Description

array trader_cdleveningstar ( array $open , array $high , array $low , array $close [, float $penetration ] )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

penetration

Pourcentage de pénétration d'une bougie dans une autre bougie.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Up/Down-gap side-by-side white lines

  • « trader_cdleveningstar
  • trader_cdlgravestonedoji »
  • PHP Manual
  • Fonctions Trader
  • Up/Down-gap side-by-side white lines

trader_cdlgapsidesidewhite

(PECL trader >= 0.2.0)

trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines

Description

array trader_cdlgapsidesidewhite ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Gravestone Doji

  • « trader_cdlgapsidesidewhite
  • trader_cdlhammer »
  • PHP Manual
  • Fonctions Trader
  • Gravestone Doji

trader_cdlgravestonedoji

(PECL trader >= 0.2.0)

trader_cdlgravestonedoji — Gravestone Doji

Description

array trader_cdlgravestonedoji ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Hammer

  • « trader_cdlgravestonedoji
  • trader_cdlhangingman »
  • PHP Manual
  • Fonctions Trader
  • Hammer

trader_cdlhammer

(PECL trader >= 0.2.0)

trader_cdlhammer — Hammer

Description

array trader_cdlhammer ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Hanging Man

  • « trader_cdlhammer
  • trader_cdlharami »
  • PHP Manual
  • Fonctions Trader
  • Hanging Man

trader_cdlhangingman

(PECL trader >= 0.2.0)

trader_cdlhangingman — Hanging Man

Description

array trader_cdlhangingman ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Harami Pattern

  • « trader_cdlhangingman
  • trader_cdlharamicross »
  • PHP Manual
  • Fonctions Trader
  • Harami Pattern

trader_cdlharami

(PECL trader >= 0.2.0)

trader_cdlharami — Harami Pattern

Description

array trader_cdlharami ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Harami Cross Pattern

  • « trader_cdlharami
  • trader_cdlhighwave »
  • PHP Manual
  • Fonctions Trader
  • Harami Cross Pattern

trader_cdlharamicross

(PECL trader >= 0.2.0)

trader_cdlharamicross — Harami Cross Pattern

Description

array trader_cdlharamicross ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


High-Wave Candle

  • « trader_cdlharamicross
  • trader_cdlhikkake »
  • PHP Manual
  • Fonctions Trader
  • High-Wave Candle

trader_cdlhighwave

(PECL trader >= 0.2.0)

trader_cdlhighwave — High-Wave Candle

Description

array trader_cdlhighwave ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Hikkake Pattern

  • « trader_cdlhighwave
  • trader_cdlhikkakemod »
  • PHP Manual
  • Fonctions Trader
  • Hikkake Pattern

trader_cdlhikkake

(PECL trader >= 0.2.0)

trader_cdlhikkake — Hikkake Pattern

Description

array trader_cdlhikkake ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Modified Hikkake Pattern

  • « trader_cdlhikkake
  • trader_cdlhomingpigeon »
  • PHP Manual
  • Fonctions Trader
  • Modified Hikkake Pattern

trader_cdlhikkakemod

(PECL trader >= 0.2.0)

trader_cdlhikkakemod — Modified Hikkake Pattern

Description

array trader_cdlhikkakemod ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Homing Pigeon

  • « trader_cdlhikkakemod
  • trader_cdlidentical3crows »
  • PHP Manual
  • Fonctions Trader
  • Homing Pigeon

trader_cdlhomingpigeon

(PECL trader >= 0.2.0)

trader_cdlhomingpigeon — Homing Pigeon

Description

array trader_cdlhomingpigeon ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Identical Three Crows

  • « trader_cdlhomingpigeon
  • trader_cdlinneck »
  • PHP Manual
  • Fonctions Trader
  • Identical Three Crows

trader_cdlidentical3crows

(PECL trader >= 0.2.0)

trader_cdlidentical3crows — Identical Three Crows

Description

array trader_cdlidentical3crows ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Masque In-Neck

  • « trader_cdlidentical3crows
  • trader_cdlinvertedhammer »
  • PHP Manual
  • Fonctions Trader
  • Masque In-Neck

trader_cdlinneck

(PECL trader >= 0.2.0)

trader_cdlinneck — Masque In-Neck

Description

array trader_cdlinneck ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Marteau inversé

  • « trader_cdlinneck
  • trader_cdlkicking »
  • PHP Manual
  • Fonctions Trader
  • Marteau inversé

trader_cdlinvertedhammer

(PECL trader >= 0.2.0)

trader_cdlinvertedhammer — Marteau inversé

Description

array trader_cdlinvertedhammer ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Kicking

  • « trader_cdlinvertedhammer
  • trader_cdlkickingbylength »
  • PHP Manual
  • Fonctions Trader
  • Kicking

trader_cdlkicking

(PECL trader >= 0.2.0)

trader_cdlkicking — Kicking

Description

array trader_cdlkicking ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Kicking - bull/bear déterminé par le plus marubozu

  • « trader_cdlkicking
  • trader_cdlladderbottom »
  • PHP Manual
  • Fonctions Trader
  • Kicking - bull/bear déterminé par le plus marubozu

trader_cdlkickingbylength

(PECL trader >= 0.2.0)

trader_cdlkickingbylength — Kicking - bull/bear déterminé par le plus marubozu

Description

array trader_cdlkickingbylength ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Bas de l'échelle

  • « trader_cdlkickingbylength
  • trader_cdllongleggeddoji »
  • PHP Manual
  • Fonctions Trader
  • Bas de l'échelle

trader_cdlladderbottom

(PECL trader >= 0.2.0)

trader_cdlladderbottom — Bas de l'échelle

Description

array trader_cdlladderbottom ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Doji : longueur des jambes

  • « trader_cdlladderbottom
  • trader_cdllongline »
  • PHP Manual
  • Fonctions Trader
  • Doji : longueur des jambes

trader_cdllongleggeddoji

(PECL trader >= 0.2.0)

trader_cdllongleggeddoji — Doji : longueur des jambes

Description

array trader_cdllongleggeddoji ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Long Line Candle

  • « trader_cdllongleggeddoji
  • trader_cdlmarubozu »
  • PHP Manual
  • Fonctions Trader
  • Long Line Candle

trader_cdllongline

(PECL trader >= 0.2.0)

trader_cdllongline — Long Line Candle

Description

array trader_cdllongline ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Marubozu

  • « trader_cdllongline
  • trader_cdlmatchinglow »
  • PHP Manual
  • Fonctions Trader
  • Marubozu

trader_cdlmarubozu

(PECL trader >= 0.2.0)

trader_cdlmarubozu — Marubozu

Description

array trader_cdlmarubozu ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Matching Low

  • « trader_cdlmarubozu
  • trader_cdlmathold »
  • PHP Manual
  • Fonctions Trader
  • Matching Low

trader_cdlmatchinglow

(PECL trader >= 0.2.0)

trader_cdlmatchinglow — Matching Low

Description

array trader_cdlmatchinglow ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Mat Hold

  • « trader_cdlmatchinglow
  • trader_cdlmorningdojistar »
  • PHP Manual
  • Fonctions Trader
  • Mat Hold

trader_cdlmathold

(PECL trader >= 0.2.0)

trader_cdlmathold — Mat Hold

Description

array trader_cdlmathold ( array $open , array $high , array $low , array $close [, float $penetration ] )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

penetration

Pourcentage de pénétration d'une bougie dans une autre bougie.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Etoile Doji du matin

  • « trader_cdlmathold
  • trader_cdlmorningstar »
  • PHP Manual
  • Fonctions Trader
  • Etoile Doji du matin

trader_cdlmorningdojistar

(PECL trader >= 0.2.0)

trader_cdlmorningdojistar — Etoile Doji du matin

Description

array trader_cdlmorningdojistar ( array $open , array $high , array $low , array $close [, float $penetration ] )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

penetration

Pourcentage de pénétration d'une bougie dans une autre bougie.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Etoile du matin

  • « trader_cdlmorningdojistar
  • trader_cdlonneck »
  • PHP Manual
  • Fonctions Trader
  • Etoile du matin

trader_cdlmorningstar

(PECL trader >= 0.2.0)

trader_cdlmorningstar — Etoile du matin

Description

array trader_cdlmorningstar ( array $open , array $high , array $low , array $close [, float $penetration ] )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

penetration

Pourcentage de pénétration d'une bougie dans une autre bougie.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Masque On-Neck

  • « trader_cdlmorningstar
  • trader_cdlpiercing »
  • PHP Manual
  • Fonctions Trader
  • Masque On-Neck

trader_cdlonneck

(PECL trader >= 0.2.0)

trader_cdlonneck — Masque On-Neck

Description

array trader_cdlonneck ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Masque Piercing

  • « trader_cdlonneck
  • trader_cdlrickshawman »
  • PHP Manual
  • Fonctions Trader
  • Masque Piercing

trader_cdlpiercing

(PECL trader >= 0.2.0)

trader_cdlpiercing — Masque Piercing

Description

array trader_cdlpiercing ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Rickshaw Man

  • « trader_cdlpiercing
  • trader_cdlrisefall3methods »
  • PHP Manual
  • Fonctions Trader
  • Rickshaw Man

trader_cdlrickshawman

(PECL trader >= 0.2.0)

trader_cdlrickshawman — Rickshaw Man

Description

array trader_cdlrickshawman ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Hausse / Baisse - 3 méthodes

  • « trader_cdlrickshawman
  • trader_cdlseparatinglines »
  • PHP Manual
  • Fonctions Trader
  • Hausse / Baisse - 3 méthodes

trader_cdlrisefall3methods

(PECL trader >= 0.2.0)

trader_cdlrisefall3methods — Hausse / Baisse - 3 méthodes

Description

array trader_cdlrisefall3methods ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Lignes séparées

  • « trader_cdlrisefall3methods
  • trader_cdlshootingstar »
  • PHP Manual
  • Fonctions Trader
  • Lignes séparées

trader_cdlseparatinglines

(PECL trader >= 0.2.0)

trader_cdlseparatinglines — Lignes séparées

Description

array trader_cdlseparatinglines ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Etoile filante

  • « trader_cdlseparatinglines
  • trader_cdlshortline »
  • PHP Manual
  • Fonctions Trader
  • Etoile filante

trader_cdlshootingstar

(PECL trader >= 0.2.0)

trader_cdlshootingstar — Etoile filante

Description

array trader_cdlshootingstar ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Ligne courte de bougie

  • « trader_cdlshootingstar
  • trader_cdlspinningtop »
  • PHP Manual
  • Fonctions Trader
  • Ligne courte de bougie

trader_cdlshortline

(PECL trader >= 0.2.0)

trader_cdlshortline — Ligne courte de bougie

Description

array trader_cdlshortline ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Toupie

  • « trader_cdlshortline
  • trader_cdlstalledpattern »
  • PHP Manual
  • Fonctions Trader
  • Toupie

trader_cdlspinningtop

(PECL trader >= 0.2.0)

trader_cdlspinningtop — Toupie

Description

array trader_cdlspinningtop ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Masque bloqué

  • « trader_cdlspinningtop
  • trader_cdlsticksandwich »
  • PHP Manual
  • Fonctions Trader
  • Masque bloqué

trader_cdlstalledpattern

(PECL trader >= 0.2.0)

trader_cdlstalledpattern — Masque bloqué

Description

array trader_cdlstalledpattern ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Sandwich épinglé

  • « trader_cdlstalledpattern
  • trader_cdltakuri »
  • PHP Manual
  • Fonctions Trader
  • Sandwich épinglé

trader_cdlsticksandwich

(PECL trader >= 0.2.0)

trader_cdlsticksandwich — Sandwich épinglé

Description

array trader_cdlsticksandwich ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Takuri (Dragonfly Doji avec une ombre inférieure très longue)

  • « trader_cdlsticksandwich
  • trader_cdltasukigap »
  • PHP Manual
  • Fonctions Trader
  • Takuri (Dragonfly Doji avec une ombre inférieure très longue)

trader_cdltakuri

(PECL trader >= 0.2.0)

trader_cdltakuri — Takuri (Dragonfly Doji avec une ombre inférieure très longue)

Description

array trader_cdltakuri ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Ecart Tasuki

  • « trader_cdltakuri
  • trader_cdlthrusting »
  • PHP Manual
  • Fonctions Trader
  • Ecart Tasuki

trader_cdltasukigap

(PECL trader >= 0.2.0)

trader_cdltasukigap — Ecart Tasuki

Description

array trader_cdltasukigap ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Masque de poussée

  • « trader_cdltasukigap
  • trader_cdltristar »
  • PHP Manual
  • Fonctions Trader
  • Masque de poussée

trader_cdlthrusting

(PECL trader >= 0.2.0)

trader_cdlthrusting — Masque de poussée

Description

array trader_cdlthrusting ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Masque Tristar

  • « trader_cdlthrusting
  • trader_cdlunique3river »
  • PHP Manual
  • Fonctions Trader
  • Masque Tristar

trader_cdltristar

(PECL trader >= 0.2.0)

trader_cdltristar — Masque Tristar

Description

array trader_cdltristar ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Unique 3 River

  • « trader_cdltristar
  • trader_cdlupsidegap2crows »
  • PHP Manual
  • Fonctions Trader
  • Unique 3 River

trader_cdlunique3river

(PECL trader >= 0.2.0)

trader_cdlunique3river — Unique 3 River

Description

array trader_cdlunique3river ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Ecart inversé Two Crows

  • « trader_cdlunique3river
  • trader_cdlxsidegap3methods »
  • PHP Manual
  • Fonctions Trader
  • Ecart inversé Two Crows

trader_cdlupsidegap2crows

(PECL trader >= 0.2.0)

trader_cdlupsidegap2crows — Ecart inversé Two Crows

Description

array trader_cdlupsidegap2crows ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Ecart supérieur/inférieur trois méthodes

  • « trader_cdlupsidegap2crows
  • trader_ceil »
  • PHP Manual
  • Fonctions Trader
  • Ecart supérieur/inférieur trois méthodes

trader_cdlxsidegap3methods

(PECL trader >= 0.2.0)

trader_cdlxsidegap3methods — Ecart supérieur/inférieur trois méthodes

Description

array trader_cdlxsidegap3methods ( array $open , array $high , array $low , array $close )

Liste de paramètres

open

Prix ouvert, tableau de valeurs réelles.

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Vecteur plafonné

  • « trader_cdlxsidegap3methods
  • trader_cmo »
  • PHP Manual
  • Fonctions Trader
  • Vecteur plafonné

trader_ceil

(PECL trader >= 0.2.0)

trader_ceil — Vecteur plafonné

Description

array trader_ceil ( array $real )

Calcule l'entier supérieur suivant, pour chaque valeur du paramètre real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Oscillateur dynamique Chande

  • « trader_ceil
  • trader_correl »
  • PHP Manual
  • Fonctions Trader
  • Oscillateur dynamique Chande

trader_cmo

(PECL trader >= 0.2.0)

trader_cmo — Oscillateur dynamique Chande

Description

array trader_cmo ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Coefficient de corrélation de Pearson (r)

  • « trader_cmo
  • trader_cos »
  • PHP Manual
  • Fonctions Trader
  • Coefficient de corrélation de Pearson (r)

trader_correl

(PECL trader >= 0.2.0)

trader_correl — Coefficient de corrélation de Pearson (r)

Description

array trader_correl ( array $real0 , array $real1 [, integer $timePeriod ] )

Liste de paramètres

real0

Tableau de valeurs réelles.

real1

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Vecteur trigonométrique Cos

  • « trader_correl
  • trader_cosh »
  • PHP Manual
  • Fonctions Trader
  • Vecteur trigonométrique Cos

trader_cos

(PECL trader >= 0.2.0)

trader_cos — Vecteur trigonométrique Cos

Description

array trader_cos ( array $real )

Calcule le cosinue pour chaque valeur du paramètre real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Vecteur trigonométrique Cosh

  • « trader_cos
  • trader_dema »
  • PHP Manual
  • Fonctions Trader
  • Vecteur trigonométrique Cosh

trader_cosh

(PECL trader >= 0.2.0)

trader_cosh — Vecteur trigonométrique Cosh

Description

array trader_cosh ( array $real )

Calcule le cosinus hyperbolique pour chaque valeur du paramètre real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Moyenne mobile exponentielle double

  • « trader_cosh
  • trader_div »
  • PHP Manual
  • Fonctions Trader
  • Moyenne mobile exponentielle double

trader_dema

(PECL trader >= 0.2.0)

trader_dema — Moyenne mobile exponentielle double

Description

array trader_dema ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Vecteur arithmétique Div

  • « trader_dema
  • trader_dx »
  • PHP Manual
  • Fonctions Trader
  • Vecteur arithmétique Div

trader_div

(PECL trader >= 0.2.0)

trader_div — Vecteur arithmétique Div

Description

array trader_div ( array $real0 , array $real1 )

Divise chaque valeur du paramètre real0 par la valeur correspondante du paramètre real1 et retourne le tableau résultant.

Liste de paramètres

real0

Tableau de valeurs réelles.

real1

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Indice de mouvement directionnel

  • « trader_div
  • trader_ema »
  • PHP Manual
  • Fonctions Trader
  • Indice de mouvement directionnel

trader_dx

(PECL trader >= 0.2.0)

trader_dx — Indice de mouvement directionnel

Description

array trader_dx ( array $high , array $low , array $close [, integer $timePeriod ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Moyenne mobile exponentielle

  • « trader_dx
  • trader_errno »
  • PHP Manual
  • Fonctions Trader
  • Moyenne mobile exponentielle

trader_ema

(PECL trader >= 0.2.0)

trader_ema — Moyenne mobile exponentielle

Description

array trader_ema ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Récupère le code erreur

  • « trader_ema
  • trader_exp »
  • PHP Manual
  • Fonctions Trader
  • Récupère le code erreur

trader_errno

(PECL trader >= 0.3.0)

trader_errno — Récupère le code erreur

Description

integer trader_errno ( void )

Récupère le code erreur de la dernière opération.

Valeurs de retour

Retourne le code erreur identifié par une des constantes TRADER_ERR_*.


Vecteur arithmétique Exp

  • « trader_errno
  • trader_floor »
  • PHP Manual
  • Fonctions Trader
  • Vecteur arithmétique Exp

trader_exp

(PECL trader >= 0.2.0)

trader_exp — Vecteur arithmétique Exp

Description

array trader_exp ( array $real )

Calculate la constante e élevée à la puissance de chaque valeur du paramètre real. Retourne un tableau contenant les données calculées.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Niveau du vecteur

  • « trader_exp
  • trader_get_compat »
  • PHP Manual
  • Fonctions Trader
  • Niveau du vecteur

trader_floor

(PECL trader >= 0.2.0)

trader_floor — Niveau du vecteur

Description

array trader_floor ( array $real )

Calcule l'entier le plus petit suivant, pour chaque valeur du paramètre real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Récupère le mode de compatibilité

  • « trader_floor
  • trader_get_unstable_period »
  • PHP Manual
  • Fonctions Trader
  • Récupère le mode de compatibilité

trader_get_compat

(PECL trader >= 0.2.2)

trader_get_compat — Récupère le mode de compatibilité

Description

integer trader_get_compat ( void )

Récupère le mode de compatibilité qui affecte la façon dont les calculs sont effectués par toutes les fonctions de l'extension.

Valeurs de retour

Retourne l'identifiant du mode de compatibilité.


Récupère la période d'instabilité

  • « trader_get_compat
  • trader_ht_dcperiod »
  • PHP Manual
  • Fonctions Trader
  • Récupère la période d'instabilité

trader_get_unstable_period

(PECL trader >= 0.2.2)

trader_get_unstable_period — Récupère la période d'instabilité

Description

integer trader_get_unstable_period ( integer $functionId )

Récupère le facteur d'instabilité de la période pour une fonction en particulier.

Liste de paramètres

functionId

Identifiant de la fonction du facteur à lire. Les constantes de la série TRADER_FUNC_UNST_* doivent être utilisées.

Valeurs de retour

Retourne le facteur d'instabilité de la période pour la fonction correspondante.


Transformation de Hilbert - Période de cycle dominant

  • « trader_get_unstable_period
  • trader_ht_dcphase »
  • PHP Manual
  • Fonctions Trader
  • Transformation de Hilbert - Période de cycle dominant

trader_ht_dcperiod

(PECL trader >= 0.2.0)

trader_ht_dcperiod — Transformation de Hilbert - Période de cycle dominant

Description

array trader_ht_dcperiod ( array $real )

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Transformation de Hilbert - Phase de cycle dominant

  • « trader_ht_dcperiod
  • trader_ht_phasor »
  • PHP Manual
  • Fonctions Trader
  • Transformation de Hilbert - Phase de cycle dominant

trader_ht_dcphase

(PECL trader >= 0.2.0)

trader_ht_dcphase — Transformation de Hilbert - Phase de cycle dominant

Description

array trader_ht_dcphase ( array $real )

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Transformation de Hilbert - Composants de la phase

  • « trader_ht_dcphase
  • trader_ht_sine »
  • PHP Manual
  • Fonctions Trader
  • Transformation de Hilbert - Composants de la phase

trader_ht_phasor

(PECL trader >= 0.2.0)

trader_ht_phasor — Transformation de Hilbert - Composants de la phase

Description

array trader_ht_phasor ( array $real )

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Transformation de Hilbert - Onde sinusoïdale

  • « trader_ht_phasor
  • trader_ht_trendline »
  • PHP Manual
  • Fonctions Trader
  • Transformation de Hilbert - Onde sinusoïdale

trader_ht_sine

(PECL trader >= 0.2.0)

trader_ht_sine — Transformation de Hilbert - Onde sinusoïdale

Description

array trader_ht_sine ( array $real )

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Transformation de Hilbert - Tendance instantanée

  • « trader_ht_sine
  • trader_ht_trendmode »
  • PHP Manual
  • Fonctions Trader
  • Transformation de Hilbert - Tendance instantanée

trader_ht_trendline

(PECL trader >= 0.2.0)

trader_ht_trendline — Transformation de Hilbert - Tendance instantanée

Description

array trader_ht_trendline ( array $real )

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Transformation de Hilbert - Mode tendance vs mode cycle

  • « trader_ht_trendline
  • trader_kama »
  • PHP Manual
  • Fonctions Trader
  • Transformation de Hilbert - Mode tendance vs mode cycle

trader_ht_trendmode

(PECL trader >= 0.2.0)

trader_ht_trendmode — Transformation de Hilbert - Mode tendance vs mode cycle

Description

array trader_ht_trendmode ( array $real )

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Moyenne mobile adaptative Kaufman

  • « trader_ht_trendmode
  • trader_linearreg_angle »
  • PHP Manual
  • Fonctions Trader
  • Moyenne mobile adaptative Kaufman

trader_kama

(PECL trader >= 0.2.0)

trader_kama — Moyenne mobile adaptative Kaufman

Description

array trader_kama ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Angle de régression linéaire

  • « trader_kama
  • trader_linearreg_intercept »
  • PHP Manual
  • Fonctions Trader
  • Angle de régression linéaire

trader_linearreg_angle

(PECL trader >= 0.2.0)

trader_linearreg_angle — Angle de régression linéaire

Description

array trader_linearreg_angle ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Interception de régression linéaire

  • « trader_linearreg_angle
  • trader_linearreg_slope »
  • PHP Manual
  • Fonctions Trader
  • Interception de régression linéaire

trader_linearreg_intercept

(PECL trader >= 0.2.0)

trader_linearreg_intercept — Interception de régression linéaire

Description

array trader_linearreg_intercept ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Pente de régression linéaire

  • « trader_linearreg_intercept
  • trader_linearreg »
  • PHP Manual
  • Fonctions Trader
  • Pente de régression linéaire

trader_linearreg_slope

(PECL trader >= 0.2.0)

trader_linearreg_slope — Pente de régression linéaire

Description

array trader_linearreg_slope ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Régression linéaire

  • « trader_linearreg_slope
  • trader_ln »
  • PHP Manual
  • Fonctions Trader
  • Régression linéaire

trader_linearreg

(PECL trader >= 0.2.0)

trader_linearreg — Régression linéaire

Description

array trader_linearreg ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Vecteur de Log naturel

  • « trader_linearreg
  • trader_log10 »
  • PHP Manual
  • Fonctions Trader
  • Vecteur de Log naturel

trader_ln

(PECL trader >= 0.2.0)

trader_ln — Vecteur de Log naturel

Description

array trader_ln ( array $real )

Calcule le logarithme naturel pour chaque valeur du paramètre real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Vecteur Log10

  • « trader_ln
  • trader_ma »
  • PHP Manual
  • Fonctions Trader
  • Vecteur Log10

trader_log10

(PECL trader >= 0.2.0)

trader_log10 — Vecteur Log10

Description

array trader_log10 ( array $real )

Calcule le logarithme base-10 pour chaque valeur du paramètre real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Moyenne mobile

  • « trader_log10
  • trader_macd »
  • PHP Manual
  • Fonctions Trader
  • Moyenne mobile

trader_ma

(PECL trader >= 0.2.0)

trader_ma — Moyenne mobile

Description

array trader_ma ( array $real [, integer $timePeriod [, integer $mAType ]] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

mAType

Type de moyenne mobile. Une constante de la série TRADER_MA_TYPE_* doit être utilisée.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Moyenne du déplacement Convergence/Divergence

  • « trader_ma
  • trader_macdext »
  • PHP Manual
  • Fonctions Trader
  • Moyenne du déplacement Convergence/Divergence

trader_macd

(PECL trader >= 0.2.0)

trader_macd — Moyenne du déplacement Convergence/Divergence

Description

array trader_macd ( array $real [, integer $fastPeriod [, integer $slowPeriod [, integer $signalPeriod ]]] )

Liste de paramètres

real

Tableau de valeurs réelles.

fastPeriod

Nombre de période pour le fast MA. Intervalle valide : 2 à 100000.

slowPeriod

Nombre de période pour le MA. Intervalle valide : 2 à 100000.

signalPeriod

Lissage de la ligne du signal (nombre de période). Intervalle valide : 1 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


MACD avec un type MA réglable

  • « trader_macd
  • trader_macdfix »
  • PHP Manual
  • Fonctions Trader
  • MACD avec un type MA réglable

trader_macdext

(PECL trader >= 0.2.0)

trader_macdext — MACD avec un type MA réglable

Description

array trader_macdext ( array $real [, integer $fastPeriod [, integer $fastMAType [, integer $slowPeriod [, integer $slowMAType [, integer $signalPeriod [, integer $signalMAType ]]]]]] )

Liste de paramètres

real

Tableau de valeurs réelles.

fastPeriod

Nombre de période pour le fast MA. Intervalle valide : 2 à 100000.

fastMAType

Type de moyenne mobile pour fast MA. Une constante de la série TRADER_MA_TYPE_* doit être utilisée.

slowPeriod

Nombre de période pour le MA. Intervalle valide : 2 à 100000.

slowMAType

Type de moyenne mobile pour slow MA. Une constante de la série TRADER_MA_TYPE_* doit être utilisée.

signalPeriod

Lissage de la ligne du signal (nombre de période). Intervalle valide : 1 à 100000.

signalMAType

Type de moyenne mobile pour la ligne du signal. Une constante de la série TRADER_MA_TYPE_* doit être utilisée.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Moyen de déplacement Convergence/Divergence fixé à 12/26

  • « trader_macdext
  • trader_mama »
  • PHP Manual
  • Fonctions Trader
  • Moyen de déplacement Convergence/Divergence fixé à 12/26

trader_macdfix

(PECL trader >= 0.2.0)

trader_macdfix — Moyen de déplacement Convergence/Divergence fixé à 12/26

Description

array trader_macdfix ( array $real [, integer $signalPeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

signalPeriod

Lissage de la ligne du signal (nombre de période). Intervalle valide : 1 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


MESA moyenne mobile adaptative

  • « trader_macdfix
  • trader_mavp »
  • PHP Manual
  • Fonctions Trader
  • MESA moyenne mobile adaptative

trader_mama

(PECL trader >= 0.2.0)

trader_mama — MESA moyenne mobile adaptative

Description

array trader_mama ( array $real [, float $fastLimit [, float $slowLimit ]] )

Liste de paramètres

real

Tableau de valeurs réelles.

fastLimit

Limite supérieure de l'algorithme adaptatif. Intervalle valide : 0.01 à 0.99.

slowLimit

Limite inférieure de l'algorithme adaptatif. Intervalle valide : 0.01 à 0.99.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Moyenne mobile avec durée variable

  • « trader_mama
  • trader_max »
  • PHP Manual
  • Fonctions Trader
  • Moyenne mobile avec durée variable

trader_mavp

(PECL trader >= 0.2.0)

trader_mavp — Moyenne mobile avec durée variable

Description

array trader_mavp ( array $real , array $periods [, integer $minPeriod [, integer $maxPeriod [, integer $mAType ]]] )

Liste de paramètres

real

Tableau de valeurs réelles.

periods

Tableau de valeurs réelles.

minPeriod

Une valeur inférieure au minimum sera modifiée en la période minimum. Intervalle valide : 2 à 100000

maxPeriod

Une valeur supérieure au minimum sera modifiée en la période maximale. Intervalle valide : 2 à 100000

mAType

Type de moyenne mobile. Une constante de la série TRADER_MA_TYPE_* doit être utilisée.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Valeur la plus élevée sur une période déterminée

  • « trader_mavp
  • trader_maxindex »
  • PHP Manual
  • Fonctions Trader
  • Valeur la plus élevée sur une période déterminée

trader_max

(PECL trader >= 0.2.0)

trader_max — Valeur la plus élevée sur une période déterminée

Description

array trader_max ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Indice de la valeur la plus élevée sur une période déterminée

  • « trader_max
  • trader_medprice »
  • PHP Manual
  • Fonctions Trader
  • Indice de la valeur la plus élevée sur une période déterminée

trader_maxindex

(PECL trader >= 0.2.0)

trader_maxindex — Indice de la valeur la plus élevée sur une période déterminée

Description

array trader_maxindex ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Prix médian

  • « trader_maxindex
  • trader_mfi »
  • PHP Manual
  • Fonctions Trader
  • Prix médian

trader_medprice

(PECL trader >= 0.2.0)

trader_medprice — Prix médian

Description

array trader_medprice ( array $high , array $low )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Indice de fluidité de l'argent

  • « trader_medprice
  • trader_midpoint »
  • PHP Manual
  • Fonctions Trader
  • Indice de fluidité de l'argent

trader_mfi

(PECL trader >= 0.2.0)

trader_mfi — Indice de fluidité de l'argent

Description

array trader_mfi ( array $high , array $low , array $close , array $volume [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

volume

Volume échangé, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Milieu sur la période

  • « trader_mfi
  • trader_midprice »
  • PHP Manual
  • Fonctions Trader
  • Milieu sur la période

trader_midpoint

(PECL trader >= 0.2.0)

trader_midpoint — Milieu sur la période

Description

array trader_midpoint ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Prix moyen sur la période

  • « trader_midpoint
  • trader_min »
  • PHP Manual
  • Fonctions Trader
  • Prix moyen sur la période

trader_midprice

(PECL trader >= 0.2.0)

trader_midprice — Prix moyen sur la période

Description

array trader_midprice ( array $high , array $low [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Valeur la plus basse sur une période spécifique

  • « trader_midprice
  • trader_minindex »
  • PHP Manual
  • Fonctions Trader
  • Valeur la plus basse sur une période spécifique

trader_min

(PECL trader >= 0.2.0)

trader_min — Valeur la plus basse sur une période spécifique

Description

array trader_min ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Indice de la valeur la plus basse sur une période déterminée

  • « trader_min
  • trader_minmax »
  • PHP Manual
  • Fonctions Trader
  • Indice de la valeur la plus basse sur une période déterminée

trader_minindex

(PECL trader >= 0.2.0)

trader_minindex — Indice de la valeur la plus basse sur une période déterminée

Description

array trader_minindex ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Valeurs minimales et maximales sur une période donnée

  • « trader_minindex
  • trader_minmaxindex »
  • PHP Manual
  • Fonctions Trader
  • Valeurs minimales et maximales sur une période donnée

trader_minmax

(PECL trader >= 0.2.0)

trader_minmax — Valeurs minimales et maximales sur une période donnée

Description

array trader_minmax ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Indices des valeurs minimales et maximales sur une période donnée

  • « trader_minmax
  • trader_minus_di »
  • PHP Manual
  • Fonctions Trader
  • Indices des valeurs minimales et maximales sur une période donnée

trader_minmaxindex

(PECL trader >= 0.2.0)

trader_minmaxindex — Indices des valeurs minimales et maximales sur une période donnée

Description

array trader_minmaxindex ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Indicateur minimum directionnel

  • « trader_minmaxindex
  • trader_minus_dm »
  • PHP Manual
  • Fonctions Trader
  • Indicateur minimum directionnel

trader_minus_di

(PECL trader >= 0.2.0)

trader_minus_di — Indicateur minimum directionnel

Description

array trader_minus_di ( array $high , array $low , array $close [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Mouvement minimum directionnel

  • « trader_minus_di
  • trader_mom »
  • PHP Manual
  • Fonctions Trader
  • Mouvement minimum directionnel

trader_minus_dm

(PECL trader >= 0.2.0)

trader_minus_dm — Mouvement minimum directionnel

Description

array trader_minus_dm ( array $high , array $low [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Elan

  • « trader_minus_dm
  • trader_mult »
  • PHP Manual
  • Fonctions Trader
  • Elan

trader_mom

(PECL trader >= 0.2.0)

trader_mom — Elan

Description

array trader_mom ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Vecteur arithmétique mult

  • « trader_mom
  • trader_natr »
  • PHP Manual
  • Fonctions Trader
  • Vecteur arithmétique mult

trader_mult

(PECL trader >= 0.2.0)

trader_mult — Vecteur arithmétique mult

Description

array trader_mult ( array $real0 , array $real1 )

Calcule le produit scalaire vecteur de real0 avec real1 et retourne le vecteur résultant.

Liste de paramètres

real0

Tableau de valeurs réelles.

real1

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Intervalle réel normalisé moyen

  • « trader_mult
  • trader_obv »
  • PHP Manual
  • Fonctions Trader
  • Intervalle réel normalisé moyen

trader_natr

(PECL trader >= 0.2.0)

trader_natr — Intervalle réel normalisé moyen

Description

array trader_natr ( array $high , array $low , array $close [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Volume de l'équilibre

  • « trader_natr
  • trader_plus_di »
  • PHP Manual
  • Fonctions Trader
  • Volume de l'équilibre

trader_obv

(PECL trader >= 0.2.0)

trader_obv — Volume de l'équilibre

Description

array trader_obv ( array $real , array $volume )

Liste de paramètres

real

Tableau de valeurs réelles.

volume

Volume échangé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Indicateur positif de direction

  • « trader_obv
  • trader_plus_dm »
  • PHP Manual
  • Fonctions Trader
  • Indicateur positif de direction

trader_plus_di

(PECL trader >= 0.2.0)

trader_plus_di — Indicateur positif de direction

Description

array trader_plus_di ( array $high , array $low , array $close [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Mouvement directionnel positif

  • « trader_plus_di
  • trader_ppo »
  • PHP Manual
  • Fonctions Trader
  • Mouvement directionnel positif

trader_plus_dm

(PECL trader >= 0.2.0)

trader_plus_dm — Mouvement directionnel positif

Description

array trader_plus_dm ( array $high , array $low [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Oscillateur de prix en pourcentage

  • « trader_plus_dm
  • trader_roc »
  • PHP Manual
  • Fonctions Trader
  • Oscillateur de prix en pourcentage

trader_ppo

(PECL trader >= 0.2.0)

trader_ppo — Oscillateur de prix en pourcentage

Description

array trader_ppo ( array $real [, integer $fastPeriod [, integer $slowPeriod [, integer $mAType ]]] )

Liste de paramètres

real

Tableau de valeurs réelles.

fastPeriod

Nombre de période pour le fast MA. Intervalle valide : 2 à 100000.

slowPeriod

Nombre de période pour le MA. Intervalle valide : 2 à 100000.

mAType

Type de moyenne mobile. Une constante de la série TRADER_MA_TYPE_* doit être utilisée.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Taux de variation : ((price/prevPrice)-1)*100

  • « trader_ppo
  • trader_rocp »
  • PHP Manual
  • Fonctions Trader
  • Taux de variation : ((price/prevPrice)-1)*100

trader_roc

(PECL trader >= 0.2.0)

trader_roc — Taux de variation : ((price/prevPrice)-1)*100

Description

array trader_roc ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Taux de variation en pourcentage : (price-prevPrice)/prevPrice

  • « trader_roc
  • trader_rocr100 »
  • PHP Manual
  • Fonctions Trader
  • Taux de variation en pourcentage : (price-prevPrice)/prevPrice

trader_rocp

(PECL trader >= 0.2.0)

trader_rocp — Taux de variation en pourcentage : (price-prevPrice)/prevPrice

Description

array trader_rocp ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Taux de taux de variation de l'échelle de 100 : (price/prevPrice)*100

  • « trader_rocp
  • trader_rocr »
  • PHP Manual
  • Fonctions Trader
  • Taux de taux de variation de l'échelle de 100 : (price/prevPrice)*100

trader_rocr100

(PECL trader >= 0.2.0)

trader_rocr100 — Taux de taux de variation de l'échelle de 100 : (price/prevPrice)*100

Description

array trader_rocr100 ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Taux de rapport de changement : (price/prevPrice)

  • « trader_rocr100
  • trader_rsi »
  • PHP Manual
  • Fonctions Trader
  • Taux de rapport de changement : (price/prevPrice)

trader_rocr

(PECL trader >= 0.2.0)

trader_rocr — Taux de rapport de changement : (price/prevPrice)

Description

array trader_rocr ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Indice de force relative

  • « trader_rocr
  • trader_sar »
  • PHP Manual
  • Fonctions Trader
  • Indice de force relative

trader_rsi

(PECL trader >= 0.2.0)

trader_rsi — Indice de force relative

Description

array trader_rsi ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Parabolique SAR

  • « trader_rsi
  • trader_sarext »
  • PHP Manual
  • Fonctions Trader
  • Parabolique SAR

trader_sar

(PECL trader >= 0.2.0)

trader_sar — Parabolique SAR

Description

array trader_sar ( array $high , array $low [, float $acceleration [, float $maximum ]] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

acceleration

Facteur d'accélération utilisé sur la valeur maximale. Intervalle valide : de 0 à TRADER_REAL_MAX.

maximum

Valeur maximale du facteur d'accélération. Intervalle valide : de 0 à TRADER_REAL_MAX.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Parabolique SAR - Etendu

  • « trader_sar
  • trader_set_compat »
  • PHP Manual
  • Fonctions Trader
  • Parabolique SAR - Etendu

trader_sarext

(PECL trader >= 0.2.0)

trader_sarext — Parabolique SAR - Etendu

Description

array trader_sarext ( array $high , array $low [, float $startValue [, float $offsetOnReverse [, float $accelerationInitLong [, float $accelerationLong [, float $accelerationMaxLong [, float $accelerationInitShort [, float $accelerationShort [, float $accelerationMaxShort ]]]]]]]] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

startValue

Valeur et direction de départ. 0 pour Auto, >0 pour Long, <0 pour Short. Intervalle valide : de TRADER_REAL_MIN à TRADER_REAL_MAX.

offsetOnReverse

Pourcentage de décalage ajouté/retiré de l'arrêt initial lors d'une inversion courte/longue. Intervalle valide : de 0 à TRADER_REAL_MAX.

accelerationInitLong

Valeur initiale du facteur d'accélération pour la direction Long. Intervalle valide : de 0 à TRADER_REAL_MAX.

accelerationLong

Facteur d'accélération pour la direction Long. Intervalle valide : de 0 à TRADER_REAL_MAX.

accelerationMaxLong

Valeur maximale du facteur d'accélération pour la direction Long. Intervalle valide : de 0 à TRADER_REAL_MAX.

accelerationInitShort

Valeur initiale du facteur d'accélération pour la direction Short. Intervalle valide : de 0 à TRADER_REAL_MAX.

accelerationShort

Facteur d'accélération pour la direction Short. Intervalle valide : de 0 à TRADER_REAL_MAX.

accelerationMaxShort

Valeur maximale du facteur d'accélération pour la direction Short. Intervalle valide : de 0 à TRADER_REAL_MAX.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Définit le mode de compatibilité

  • « trader_sarext
  • trader_set_unstable_period »
  • PHP Manual
  • Fonctions Trader
  • Définit le mode de compatibilité

trader_set_compat

(PECL trader >= 0.2.2)

trader_set_compat — Définit le mode de compatibilité

Description

void trader_set_compat ( integer $compatId )

Définit le mode de compatibilité qui va affecter la façon dont les calculs vont être effectués par toutes les fonctions de l'extension.

Liste de paramètres

compatId

Identifiant de compatibilité. Les constantes de la série TRADER_COMPATIBILITY_* doivent être utilisées.

Valeurs de retour

Aucune valeur n'est retournée.


Définit une période instable

  • « trader_set_compat
  • trader_sin »
  • PHP Manual
  • Fonctions Trader
  • Définit une période instable

trader_set_unstable_period

(PECL trader >= 0.2.2)

trader_set_unstable_period — Définit une période instable

Description

void trader_set_unstable_period ( integer $functionId , integer $timePeriod )

Influence le facteur instable d'une période pour les fonctions qui en sont sensibles. Plus d'informations concernant les périodes instables peuvent être trouvées sur la page de la documentation de l'API » TA-Lib.

Liste de paramètres

functionId

Identifiant de la fonction du facteur à définir. Les constantes de la série TRADER_FUNC_UNST_* peuvent être utilisées pour affecter la fonction correspondante.

timePeriod

Valeur d'instabilité de la période.

Valeurs de retour

Aucune valeur n'est retournée.


Vecteur trigonométrique sin

  • « trader_set_unstable_period
  • trader_sinh »
  • PHP Manual
  • Fonctions Trader
  • Vecteur trigonométrique sin

trader_sin

(PECL trader >= 0.2.0)

trader_sin — Vecteur trigonométrique sin

Description

array trader_sin ( array $real )

Calcule le sinus de chaque valeur de real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Vecteur trigonométrique sinh

  • « trader_sin
  • trader_sma »
  • PHP Manual
  • Fonctions Trader
  • Vecteur trigonométrique sinh

trader_sinh

(PECL trader >= 0.2.0)

trader_sinh — Vecteur trigonométrique sinh

Description

array trader_sinh ( array $real )

Calcule le sinus hyperbolique pour chaque valeur de real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Moyenne mobile simple

  • « trader_sinh
  • trader_sqrt »
  • PHP Manual
  • Fonctions Trader
  • Moyenne mobile simple

trader_sma

(PECL trader >= 0.2.0)

trader_sma — Moyenne mobile simple

Description

array trader_sma ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Vecteur de racine carrée

  • « trader_sma
  • trader_stddev »
  • PHP Manual
  • Fonctions Trader
  • Vecteur de racine carrée

trader_sqrt

(PECL trader >= 0.2.0)

trader_sqrt — Vecteur de racine carrée

Description

array trader_sqrt ( array $real )

Calcule la racine carrée de chaque valeur de real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Déviation standard

  • « trader_sqrt
  • trader_stoch »
  • PHP Manual
  • Fonctions Trader
  • Déviation standard

trader_stddev

(PECL trader >= 0.2.0)

trader_stddev — Déviation standard

Description

array trader_stddev ( array $real [, integer $timePeriod [, float $nbDev ]] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

nbDev

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Stochastique

  • « trader_stddev
  • trader_stochf »
  • PHP Manual
  • Fonctions Trader
  • Stochastique

trader_stoch

(PECL trader >= 0.2.0)

trader_stoch — Stochastique

Description

array trader_stoch ( array $high , array $low , array $close [, integer $fastK_Period [, integer $slowK_Period [, integer $slowK_MAType [, integer $slowD_Period [, integer $slowD_MAType ]]]]] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

fastK_Period

Période de temps pour construire la ligne Fast-K. Intervalle valide : 1 à 100000.

slowK_Period

Lissage pour réaliser la ligne Slow-K. Intervalle valide : 1 à 100000, habituellement défini à 3.

slowK_MAType

Type de moyenne mobile pour Slow-K. Une constante de la série TRADER_MA_TYPE_* doit être utilisée.

slowD_Period

Lissage pour réaliser la ligne Slow-D. Intervalle valide : 1 à 100000.

slowD_MAType

Type de moyenne mobile pour Slow-D. Une constante de la série TRADER_MA_TYPE_* doit être utilisée.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Rapidité stochastique

  • « trader_stoch
  • trader_stochrsi »
  • PHP Manual
  • Fonctions Trader
  • Rapidité stochastique

trader_stochf

(PECL trader >= 0.2.0)

trader_stochf — Rapidité stochastique

Description

array trader_stochf ( array $high , array $low , array $close [, integer $fastK_Period [, integer $fastD_Period [, integer $fastD_MAType ]]] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

fastK_Period

Période de temps pour construire la ligne Fast-K. Intervalle valide : 1 à 100000.

fastD_Period

Lissage pour réaliser la ligne Fast-D. Intervalle valide : 1 à 100000, habituellement défini à 3.

fastD_MAType

Type de moyenne mobile pour Fast-D. Une constante de la série TRADER_MA_TYPE_* doit être utilisée.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Index stochastique relatif fort

  • « trader_stochf
  • trader_sub »
  • PHP Manual
  • Fonctions Trader
  • Index stochastique relatif fort

trader_stochrsi

(PECL trader >= 0.2.0)

trader_stochrsi — Index stochastique relatif fort

Description

array trader_stochrsi ( array $real [, integer $timePeriod [, integer $fastK_Period [, integer $fastD_Period [, integer $fastD_MAType ]]]] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

fastK_Period

Période de temps pour construire la ligne Fast-K. Intervalle valide : 1 à 100000.

fastD_Period

Lissage pour réaliser la ligne Fast-D. Intervalle valide : 1 à 100000, habituellement défini à 3.

fastD_MAType

Type de moyenne mobile pour Fast-D. Une constante de la série TRADER_MA_TYPE_* doit être utilisée.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Vecteur de soustraction arithmétique

  • « trader_stochrsi
  • trader_sum »
  • PHP Manual
  • Fonctions Trader
  • Vecteur de soustraction arithmétique

trader_sub

(PECL trader >= 0.2.0)

trader_sub — Vecteur de soustraction arithmétique

Description

array trader_sub ( array $real0 , array $real1 )

Calcule la soustraction vectorielle de real1 depuis real0 et retourne le vecteur résultant.

Liste de paramètres

real0

Tableau de valeurs réelles.

real1

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau contenant les données calculées, ou FALSE si une erreur survient.


Résumé

  • « trader_sub
  • trader_t3 »
  • PHP Manual
  • Fonctions Trader
  • Résumé

trader_sum

(PECL trader >= 0.2.0)

trader_sum — Résumé

Description

array trader_sum ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Triple moyenne mobile exponentielle (T3)

  • « trader_sum
  • trader_tan »
  • PHP Manual
  • Fonctions Trader
  • Triple moyenne mobile exponentielle (T3)

trader_t3

(PECL trader >= 0.2.0)

trader_t3 — Triple moyenne mobile exponentielle (T3)

Description

array trader_t3 ( array $real [, integer $timePeriod [, float $vFactor ]] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

vFactor

Facteur de volume. Intervalle valide : 1 à 0.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Vecteur trigonométrie Tan

  • « trader_t3
  • trader_tanh »
  • PHP Manual
  • Fonctions Trader
  • Vecteur trigonométrie Tan

trader_tan

(PECL trader >= 0.2.0)

trader_tan — Vecteur trigonométrie Tan

Description

array trader_tan ( array $real )

Calcule la tangente pour chaque valeur du paramètre real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Vecteur trigonométrie Tanh

  • « trader_tan
  • trader_tema »
  • PHP Manual
  • Fonctions Trader
  • Vecteur trigonométrie Tanh

trader_tanh

(PECL trader >= 0.2.0)

trader_tanh — Vecteur trigonométrie Tanh

Description

array trader_tanh ( array $real )

Calcule la tangente hyperbolique pour chaque valeur du paramètre real et retourne le tableau résultant.

Liste de paramètres

real

Tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Triple moyenne mobile exponentielle

  • « trader_tanh
  • trader_trange »
  • PHP Manual
  • Fonctions Trader
  • Triple moyenne mobile exponentielle

trader_tema

(PECL trader >= 0.2.0)

trader_tema — Triple moyenne mobile exponentielle

Description

array trader_tema ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Intervalle réel

  • « trader_tema
  • trader_trima »
  • PHP Manual
  • Fonctions Trader
  • Intervalle réel

trader_trange

(PECL trader >= 0.2.0)

trader_trange — Intervalle réel

Description

array trader_trange ( array $high , array $low , array $close )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Moyenne mobile triangulaire

  • « trader_trange
  • trader_trix »
  • PHP Manual
  • Fonctions Trader
  • Moyenne mobile triangulaire

trader_trima

(PECL trader >= 0.2.0)

trader_trima — Moyenne mobile triangulaire

Description

array trader_trima ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Taux de variation sur une journée (ROC) d'un triple EMA lissé

  • « trader_trima
  • trader_tsf »
  • PHP Manual
  • Fonctions Trader
  • Taux de variation sur une journée (ROC) d'un triple EMA lissé

trader_trix

(PECL trader >= 0.2.0)

trader_trix — Taux de variation sur une journée (ROC) d'un triple EMA lissé

Description

array trader_trix ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Prévisions des séries chronologiques

  • « trader_trix
  • trader_typprice »
  • PHP Manual
  • Fonctions Trader
  • Prévisions des séries chronologiques

trader_tsf

(PECL trader >= 0.2.0)

trader_tsf — Prévisions des séries chronologiques

Description

array trader_tsf ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Prix ??typique

  • « trader_tsf
  • trader_ultosc »
  • PHP Manual
  • Fonctions Trader
  • Prix ??typique

trader_typprice

(PECL trader >= 0.2.0)

trader_typprice — Prix ??typique

Description

array trader_typprice ( array $high , array $low , array $close )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Oscillateur ultime

  • « trader_typprice
  • trader_var »
  • PHP Manual
  • Fonctions Trader
  • Oscillateur ultime

trader_ultosc

(PECL trader >= 0.2.0)

trader_ultosc — Oscillateur ultime

Description

array trader_ultosc ( array $high , array $low , array $close [, integer $timePeriod1 [, integer $timePeriod2 [, integer $timePeriod3 ]]] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

timePeriod1

Nombres de barres pour la première période. Intervalle valide : de 1 à 100000.

timePeriod2

Nombres de barres pour la seconde période. Intervalle valide : de 1 à 100000.

timePeriod3

Nombres de barres pour la troisième période. Intervalle valide : de 1 à 100000.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Variance

  • « trader_ultosc
  • trader_wclprice »
  • PHP Manual
  • Fonctions Trader
  • Variance

trader_var

(PECL trader >= 0.2.0)

trader_var — Variance

Description

array trader_var ( array $real [, integer $timePeriod [, float $nbDev ]] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

nbDev

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Prix clos ??pondéré

  • « trader_var
  • trader_willr »
  • PHP Manual
  • Fonctions Trader
  • Prix clos ??pondéré

trader_wclprice

(PECL trader >= 0.2.0)

trader_wclprice — Prix clos ??pondéré

Description

array trader_wclprice ( array $high , array $low , array $close )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Williams' %R

  • « trader_wclprice
  • trader_wma »
  • PHP Manual
  • Fonctions Trader
  • Williams' %R

trader_willr

(PECL trader >= 0.2.0)

trader_willr — Williams' %R

Description

array trader_willr ( array $high , array $low , array $close [, integer $timePeriod ] )

Liste de paramètres

high

Prix élevé, tableau de valeurs réelles.

low

Prix bas, tableau de valeurs réelles.

close

Prix fermé, tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Moyenne mobile pondérée

  • « trader_willr
  • Affichage des données non-textuelles »
  • PHP Manual
  • Fonctions Trader
  • Moyenne mobile pondérée

trader_wma

(PECL trader >= 0.2.0)

trader_wma — Moyenne mobile pondérée

Description

array trader_wma ( array $real [, integer $timePeriod ] )

Liste de paramètres

real

Tableau de valeurs réelles.

timePeriod

Nombre de période. Intervalle valide : 2 à 100000.

Valeurs de retour

Retourne un tableau avec les données calculées, ou FALSE si une erreur survient.


Affichage des données non-textuelles

  • FDF — Format de formulaire
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions FDF
  • GnuPG — GNU PG
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions GnuPG
  • haru — Haru PDF
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Polices internes et encodages
    • HaruException — Classe HaruException
    • HaruDoc — Classe HaruDoc
    • HaruPage — Classe HaruPage
    • HaruFont — Classe HaruFont
    • HaruImage — Classe HaruImage
    • HaruEncoder — Classe HaruEncoder
    • HaruOutline — Classe HaruOutline
    • HaruAnnotation — Classe HaruAnnotation
    • HaruDestination — Classe HaruDestination
  • Ming — Ming (flash)
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Ming
    • SWFAction — La classe SWFAction
    • SWFBitmap — La classe SWFBitmap
    • SWFButton — La classe SWFButton
    • SWFDisplayItem — La classe SWFDisplayItem
    • SWFFill — La classe SWFFill
    • SWFFont — La classe SWFFont
    • SWFFontChar — La classe SWFFontChar
    • SWFGradient — La classe SWFGradient
    • SWFMorph — La classe SWFMorph
    • SWFMovie — La classe SWFMovie
    • SWFPrebuiltClip — La classe SWFPrebuiltClip
    • SWFShape — La classe SWFShape
    • SWFSound — La classe SWFSound
    • SWFSoundInstance — La classe SWFSoundInstance
    • SWFSprite — La classe SWFSprite
    • SWFText — La classe SWFText
    • SWFTextField — La classe SWFTextField
    • SWFVideoStream — La classe SWFVideoStream
  • PDF
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions PDF
  • PS — Création de document PostScript
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions PS
  • RPM Reader — Lecture d'en-tête RPM
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions RPM Reader


Format de formulaire

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions FDF
    • fdf_add_doc_javascript — Ajoute du code javascript dans un document FDF
    • fdf_add_template — Ajoute un template dans le document FDF
    • fdf_close — Ferme un document FDF
    • fdf_create — Crée un nouveau document FDF
    • fdf_enum_values — Appelle une fonction utilisateur à chaque valeur FDF
    • fdf_errno — Retourne le code d'erreur de la dernière opération FDF
    • fdf_error — Retourne le message d'erreur FDF
    • fdf_get_ap — Lit l'apparence d'un champ
    • fdf_get_attachment — Extrait un fichier intégré dans un document FDF
    • fdf_get_encoding — Lit la valeur de la clé /Encoding
    • fdf_get_file — Lit la valeur de la clé /F
    • fdf_get_flags — Lit les attributs d'un champ FDF
    • fdf_get_opt — Lit une valeur dans un tableau de valeur d'un champ FDF
    • fdf_get_status — Lit la valeur de la clé /STATUS
    • fdf_get_value — Retourne la valeur d'un champ FDF
    • fdf_get_version — Lit le numéro de version de l'API FDF
    • fdf_header — Émet les en-têtes HTTP spécifiques à FDF
    • fdf_next_field_name — Lit le nom du champ FDF suivant
    • fdf_open_string — Lit un document FDF à partir d'une chaîne de caractères
    • fdf_open — Ouvre un document FDF
    • fdf_remove_item — Configure le cadre FDF de destination pour le formulaire
    • fdf_save_string — Retourne un document FDF sous forme d'une chaîne de caractères
    • fdf_save — Sauvegarde un document FDF
    • fdf_set_ap — Fixe l'apparence d'un champ FDF
    • fdf_set_encoding — Modifie l'encodage des caractères
    • fdf_set_file — Crée un document PDF pour y afficher des données FDF
    • fdf_set_flags — Modifie une option d'un champ
    • fdf_set_javascript_action — Modifie l'action javascript d'un champ
    • fdf_set_on_import_javascript — Ajoute du code Javascript à être exécuté lorsque Acrobat ouvre un FDF
    • fdf_set_opt — Modifie une option d'un champ
    • fdf_set_status — Fixe la valeur de la clé /STATUS
    • fdf_set_submit_form_action — Modifie l'action d'un formulaire
    • fdf_set_target_frame — Configure le cadre de destination pour l'affichage du formulaire
    • fdf_set_value — Modifie la valeur d'un champ FDF
    • fdf_set_version — Modifie le numéro de version du fichier FDF


Introduction

Forms Data Format (FDF) est un format de formulaire pour les documents PDF. Vous pouvez lire la documentation (en anglais) à » http://www.adobe.com/devnet/acrobat/fdftoolkit.html pour plus de détails sur les tenants et les aboutissants.

L'esprit de FDF est similaire à celui des formulaires HTML. Les différences résident dans les moyens de transmission des données au serveur, lorsque le bouton "submit" (soumettre) est pressé (ce qui est du ressort de Form Data Format) et le format de formulaire lui-même (qui est plutôt du ressort de Portable Document Format, PDF). Gérer des données FDF est un des objectifs des fonctions FDF. Mais il y en a d'autres. Vous pouvez aussi prendre un formulaire PDF, et préremplir les champs, sans modifier le formulaire lui-même. Dans ce cas, on va créer un document FDF (fdf_create()), remplir les champs (fdf_set_value()) et l'associer à un fichier PDF (fdf_set_file()). Finalement, le tout sera envoyé au client, avec le type MIME application/vnd.fdf. Le module "Acrobat reader" de votre navigateur va reconnaître ce type MIME, et lire le fichier PDF, puis le remplir avec FDF.

Si vous éditez un fichier FDF avec un éditeur de texte, vous trouverez un catalogue d'objet avec le nom de FDF. Cet objet peut contenir des entrées telles que Fields, F, Status etc. Les entrées les plus couramment utilisées sont Fields, qui indique une liste de champs de contrôle, et F qui contient le nom du fichier PDF a qui appartiennent ces données. Ces entrées sont désignées dans la documentation PDF sous le nom de /F-Key ou /Status-Key. La modification de ces entrées est possible avec les fonctions fdf_set_file() et fdf_set_status(). Les champs sont modifiables avec les fonctions fdf_set_value(), fdf_set_opt() etc.


Pré-requis

Vous aurez besoin du FDF toolkit SDK, disponible sur le site » http://www.adobe.com/devnet/acrobat/fdftoolkit.html. Depuis PHP 4.3.0, vous aurez besoin du SDK version 5.0. La bibliothèque FDF toolkit est disponible sous forme de bibliothèque compilée, éditée par Adobe, sur les systèmes d'exploitation Win32, Linux, Solaris et AIX.


Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/fdf.

Cette extension n'est plus fournie avec PHP depuis PHP 5.3.0.

Note: Si vous rencontrez des problèmes lors de la configuration de FDF avec le support fdftk, vérifiez que le fichier d'en-tête fdftk.h et la bibliothèque libfdftk.so sont à leur place. Le script configure supporte la hiérarchie de dossier de la distribution FDF SDK et l'organisation classique DIR/include et DIR/lib : vous pouvez donc utiliser l'un ou l'autre directement avec la distribution décompressée, ou bien en incluant le fichier d'en-têtes et la bibliothèque appropriée dans votre système, c'est-à-dire dans /usr/local/include et /usr/local/lib. Il ne reste plus qu'à configurer avec --with-fdftk=/usr/local .

Note: Note aux utilisateurs Win32

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : fdftk.dll


Types de ressources

La plupart des fonctions FDF nécessite une ressource de type fdf comme premier argument. Une ressource fdf est une structure qui représente un fichier FDF ouvert. Vous pouvez créer des ressources fdf avec les fonctions fdf_create(), fdf_open() et fdf_open_string().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FDFValue (entier)
FDFStatus (entier)
FDFFile (entier)
FDFID (entier)
FDFFf (entier)
FDFSetFf (entier)
FDFClearFf (entier)
FDFFlags (entier)
FDFSetF (entier)
FDFClrF (entier)
FDFAP (entier)
FDFAS (entier)
FDFAction (entier)
FDFAA (entier)
FDFAPRef (entier)
FDFIF (entier)
FDFEnter (entier)
FDFExit (entier)
FDFDown (entier)
FDFUp (entier)
FDFFormat (entier)
FDFValidate (entier)
FDFKeystroke (entier)
FDFCalculate (entier)
FDFNormalAP (entier)
FDFRolloverAP (entier)
FDFDownAP (entier)


Exemples

Les exemples suivants montrent comment évaluer les données du formulaire.

Exemple #1 Évaluer un document FDF

<?php
// Ouvrir un fichier FDF depuis une chaîne fournie par l'extension PDF
// Le formulaire PDF contient plusieurs champs texte avec les noms de
// volume, date, comment, publisher, preparer, et two boîtes à cocher
// show_publisher et show_preparer.
$fdf = fdf_open_string($HTTP_FDF_DATA);
$volume = fdf_get_value($fdf, "volume");
echo 'Le champ Volume contient la valeur : "<strong>' . $volume . '</strong>"<br />';

$date = fdf_get_value($fdf, "date");
echo 'La valeur du champ date était "<strong>' . $date . '</strong>"<br />';

$comment = fdf_get_value($fdf, "comment");
echo 'La valeur du champ comment était "<strong>' . $comment . '</strong>"<br />';

if (fdf_get_value($fdf, "show_publisher") == "On") {
  $publisher = fdf_get_value($fdf, "publisher");
  echo "La valeur du champ Publisher était : '<strong>" . $publisher . "</strong><br />";
} else
  echo 'La valeur du champ Publisher ne doit pas être affichée.<br />';

if (fdf_get_value($fdf, "show_preparer") == "On") {
  $preparer = fdf_get_value($fdf, "preparer");
  echo 'La valeur du champ Preparer était  "<strong>' . $preparer . '</strong>"<br />';
} else
  echo 'La valeur du champ Preparer ne doit pas être affiché.<br />';
fdf_close($fdf);
?>


Fonctions FDF

Sommaire

  • fdf_add_doc_javascript — Ajoute du code javascript dans un document FDF
  • fdf_add_template — Ajoute un template dans le document FDF
  • fdf_close — Ferme un document FDF
  • fdf_create — Crée un nouveau document FDF
  • fdf_enum_values — Appelle une fonction utilisateur à chaque valeur FDF
  • fdf_errno — Retourne le code d'erreur de la dernière opération FDF
  • fdf_error — Retourne le message d'erreur FDF
  • fdf_get_ap — Lit l'apparence d'un champ
  • fdf_get_attachment — Extrait un fichier intégré dans un document FDF
  • fdf_get_encoding — Lit la valeur de la clé /Encoding
  • fdf_get_file — Lit la valeur de la clé /F
  • fdf_get_flags — Lit les attributs d'un champ FDF
  • fdf_get_opt — Lit une valeur dans un tableau de valeur d'un champ FDF
  • fdf_get_status — Lit la valeur de la clé /STATUS
  • fdf_get_value — Retourne la valeur d'un champ FDF
  • fdf_get_version — Lit le numéro de version de l'API FDF
  • fdf_header — Émet les en-têtes HTTP spécifiques à FDF
  • fdf_next_field_name — Lit le nom du champ FDF suivant
  • fdf_open_string — Lit un document FDF à partir d'une chaîne de caractères
  • fdf_open — Ouvre un document FDF
  • fdf_remove_item — Configure le cadre FDF de destination pour le formulaire
  • fdf_save_string — Retourne un document FDF sous forme d'une chaîne de caractères
  • fdf_save — Sauvegarde un document FDF
  • fdf_set_ap — Fixe l'apparence d'un champ FDF
  • fdf_set_encoding — Modifie l'encodage des caractères
  • fdf_set_file — Crée un document PDF pour y afficher des données FDF
  • fdf_set_flags — Modifie une option d'un champ
  • fdf_set_javascript_action — Modifie l'action javascript d'un champ
  • fdf_set_on_import_javascript — Ajoute du code Javascript à être exécuté lorsque Acrobat ouvre un FDF
  • fdf_set_opt — Modifie une option d'un champ
  • fdf_set_status — Fixe la valeur de la clé /STATUS
  • fdf_set_submit_form_action — Modifie l'action d'un formulaire
  • fdf_set_target_frame — Configure le cadre de destination pour l'affichage du formulaire
  • fdf_set_value — Modifie la valeur d'un champ FDF
  • fdf_set_version — Modifie le numéro de version du fichier FDF


Ajoute du code javascript dans un document FDF

  • « Fonctions FDF
  • fdf_add_template »
  • PHP Manual
  • Fonctions FDF
  • Ajoute du code javascript dans un document FDF

fdf_add_doc_javascript

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_add_doc_javascript — Ajoute du code javascript dans un document FDF

Description

bool fdf_add_doc_javascript ( resource $fdf_document , string $script_name , string $script_code )

Ajoute le code javascript script_code dans le document fdfdoc, qu'Acrobat ajoutera aux scripts de niveau document, une fois le FDF importé.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

script_name

Le nom du script.

script_code

Le code du script. Il est fortement recommandé d'utiliser '\r' comme séparateur de lignes dans le code script_code.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout de code JavaScript à un document FDF

<?php
$fdf = fdf_create();
fdf_add_doc_javascript($fdf, "PlusOne", "function PlusOne(x)\r{\r  return x+1;\r}\r");
fdf_save($fdf);
?>

Cet exemple va créer un document FDF comme celui ci :

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /JavaScript << /Doc [ (PlusOne)(function PlusOne\(x\)\r{\r  return x+1;\r}\r)] >> >>
>>
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF


Ajoute un template dans le document FDF

  • « fdf_add_doc_javascript
  • fdf_close »
  • PHP Manual
  • Fonctions FDF
  • Ajoute un template dans le document FDF

fdf_add_template

(PHP 4, PHP 5, PHP 7)

fdf_add_template — Ajoute un template dans le document FDF

Description

bool fdf_add_template ( resource $fdf_document , int $newpage , string $filename , string $template , int $rename )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Ferme un document FDF

  • « fdf_add_template
  • fdf_create »
  • PHP Manual
  • Fonctions FDF
  • Ferme un document FDF

fdf_close

(PHP 4, PHP 5, PHP 7)

fdf_close — Ferme un document FDF

Description

void fdf_close ( resource $fdf_document )

Ferme le document FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • fdf_open() - Ouvre un document FDF


Crée un nouveau document FDF

  • « fdf_close
  • fdf_enum_values »
  • PHP Manual
  • Fonctions FDF
  • Crée un nouveau document FDF

fdf_create

(PHP 4, PHP 5, PHP 7)

fdf_create — Crée un nouveau document FDF

Description

resource fdf_create ( void )

Crée un nouveau document FDF.

Cette fonction est nécessaire pour ceux qui veulent préremplir les champs d'un formulaire dans un fichier PDF.

Valeurs de retour

Retourne un gestionnaire de document FDF, ou FALSE si une erreur survient.

Exemples

Exemple #1 Préremplir un formulaire PDF

<?php
$outfdf = fdf_create();
fdf_set_value($outfdf, "volume", $volume, 0);

fdf_set_file($outfdf, "http:/testfdf/resultlabel.pdf");
fdf_save($outfdf, "outtest.fdf");
fdf_close($outfdf);
Header("Content-type: application/vnd.fdf");
$fp = fopen("outtest.fdf", "r");
fpassthru($fp);
unlink("outtest.fdf");
?>

Voir aussi

  • fdf_close() - Ferme un document FDF
  • fdf_save() - Sauvegarde un document FDF
  • fdf_open() - Ouvre un document FDF


Appelle une fonction utilisateur à chaque valeur FDF

  • « fdf_create
  • fdf_errno »
  • PHP Manual
  • Fonctions FDF
  • Appelle une fonction utilisateur à chaque valeur FDF

fdf_enum_values

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_enum_values — Appelle une fonction utilisateur à chaque valeur FDF

Description

bool fdf_enum_values ( resource $fdf_document , callable $function [, mixed $userdata ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne le code d'erreur de la dernière opération FDF

  • « fdf_enum_values
  • fdf_error »
  • PHP Manual
  • Fonctions FDF
  • Retourne le code d'erreur de la dernière opération FDF

fdf_errno

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_errno — Retourne le code d'erreur de la dernière opération FDF

Description

int fdf_errno ( void )

Récupère le code d'erreur de la dernière opération FDF.

Un message d'erreur est accessible via la fonction fdf_error() function.

Valeurs de retour

Retourne le code erreur sous la forme d'un entier ou 0 si aucune erreur n'est survenue.

Voir aussi

  • fdf_error() - Retourne le message d'erreur FDF


Retourne le message d'erreur FDF

  • « fdf_errno
  • fdf_get_ap »
  • PHP Manual
  • Fonctions FDF
  • Retourne le message d'erreur FDF

fdf_error

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_error — Retourne le message d'erreur FDF

Description

string fdf_error ([ int $error_code = -1 ] )

Retourne le message d'erreur FDF.

Liste de paramètres

error_code

Un code erreur obtenu avec la fonction fdf_errno(). S'il n'est pas fourni, cette fonction utilise le code erreur interne défini par la dernière opération.

Valeurs de retour

Retourne le message d'erreur sous la forme d'une chaîne de caractères ou la chaîne no error s'il n'y en a pas.

Voir aussi

  • fdf_errno() - Retourne le code d'erreur de la dernière opération FDF


Lit l'apparence d'un champ

  • « fdf_error
  • fdf_get_attachment »
  • PHP Manual
  • Fonctions FDF
  • Lit l'apparence d'un champ

fdf_get_ap

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_ap — Lit l'apparence d'un champ

Description

bool fdf_get_ap ( resource $fdf_document , string $field , int $face , string $filename )

Lit l'apparence du champ field (i.e. la valeur de la clé /AP) et le stocke dans le fichier filename.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

field

face

Les valeurs possibles sont FDFNormalAP, FDFRolloverAP et FDFDownAP.

filename

L'apparence sera stockée dans ce paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Extrait un fichier intégré dans un document FDF

  • « fdf_get_ap
  • fdf_get_encoding »
  • PHP Manual
  • Fonctions FDF
  • Extrait un fichier intégré dans un document FDF

fdf_get_attachment

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_attachment — Extrait un fichier intégré dans un document FDF

Description

array fdf_get_attachment ( resource $fdf_document , string $fieldname , string $savepath )

Extrait le fichier fieldname téléchargé par le biais du champ "file selection", puis le stocke dans le fichier savepath.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

fieldname

savepath

Peut être le nom d'un fichier ou bien un dossier dans lequel le fichier téléchargé sera créé sous son nom original. Tout fichier déjà existant avec le même nom sera écrasé.

Note:

Il semble qu'il n'y ait pas d'autre moyen pour connaître le nom du fichier téléchargé que de le stocker dans un dossier avec savepath puis de lire son nom dans le dossier.

Valeurs de retour

Le tableau retourné contient les champs suivants :

  • path - chemin de stockage du dossier
  • size - taille du fichier stocké en octets
  • type - Type MIMI du fichier, s'il a été fourni dans le document FDF

Exemples

Exemple #1 Enregistrement d'un fichier téléchargé

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
$data = fdf_get_attachment($fdf, "filename", "/tmpdir");
echo "Le fichier téléchargé est stocké dans $data[path]";
?>


Lit la valeur de la clé /Encoding

  • « fdf_get_attachment
  • fdf_get_file »
  • PHP Manual
  • Fonctions FDF
  • Lit la valeur de la clé /Encoding

fdf_get_encoding

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_encoding — Lit la valeur de la clé /Encoding

Description

string fdf_get_encoding ( resource $fdf_document )

Récupère la valeur de la clé /Encoding.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

Valeurs de retour

Retourne l'encodage, sous la forme d'une chaîne de caractères. Une chaîne vide est retournée si le schéma PDFDocEncoding/Unicode est utilisé.

Voir aussi

  • fdf_set_encoding() - Modifie l'encodage des caractères


Lit la valeur de la clé /F

  • « fdf_get_encoding
  • fdf_get_flags »
  • PHP Manual
  • Fonctions FDF
  • Lit la valeur de la clé /F

fdf_get_file

(PHP 4, PHP 5, PHP 7)

fdf_get_file — Lit la valeur de la clé /F

Description

string fdf_get_file ( resource $fdf_document )

Lit la valeur de la clé /F.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

Valeurs de retour

Retourne la valeur de la clé, sous la forme d'une chaîne de caractères.

Voir aussi

  • fdf_set_file() - Crée un document PDF pour y afficher des données FDF


Lit les attributs d'un champ FDF

  • « fdf_get_file
  • fdf_get_opt »
  • PHP Manual
  • Fonctions FDF
  • Lit les attributs d'un champ FDF

fdf_get_flags

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_flags — Lit les attributs d'un champ FDF

Description

int fdf_get_flags ( resource $fdf_document , string $fieldname , int $whichflags )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Lit une valeur dans un tableau de valeur d'un champ FDF

  • « fdf_get_flags
  • fdf_get_status »
  • PHP Manual
  • Fonctions FDF
  • Lit une valeur dans un tableau de valeur d'un champ FDF

fdf_get_opt

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_opt — Lit une valeur dans un tableau de valeur d'un champ FDF

Description

mixed fdf_get_opt ( resource $fdf_document , string $fieldname [, int $element = -1 ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Lit la valeur de la clé /STATUS

  • « fdf_get_opt
  • fdf_get_value »
  • PHP Manual
  • Fonctions FDF
  • Lit la valeur de la clé /STATUS

fdf_get_status

(PHP 4, PHP 5, PHP 7)

fdf_get_status — Lit la valeur de la clé /STATUS

Description

string fdf_get_status ( resource $fdf_document )

Lit la valeur de la clé /STATUS.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

Valeurs de retour

Retourne la valeur de la clé, sous la forme d'une chaîne de caractères.

Voir aussi

  • fdf_set_status() - Fixe la valeur de la clé /STATUS


Retourne la valeur d'un champ FDF

  • « fdf_get_status
  • fdf_get_version »
  • PHP Manual
  • Fonctions FDF
  • Retourne la valeur d'un champ FDF

fdf_get_value

(PHP 4, PHP 5, PHP 7)

fdf_get_value — Retourne la valeur d'un champ FDF

Description

mixed fdf_get_value ( resource $fdf_document , string $fieldname [, int $which = -1 ] )

Retourne la valeur d'un champ FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

which

Les éléments d'un champ tableau peuvent être lus en fournissant ce paramètre optionnel, sous la forme d'un entier dont la plus petite valeur sera 0. Pour les champs qui ne sont pas des tableaux, ce paramètre optionnel sera ignoré.

Valeurs de retour

Retourne la valeur du champ.

Historique

Version | Description
4.3.0 | Le support des tableaux et le paramètre which on été ajoutés.

Voir aussi

  • fdf_set_value() - Modifie la valeur d'un champ FDF


Lit le numéro de version de l'API FDF

  • « fdf_get_value
  • fdf_header »
  • PHP Manual
  • Fonctions FDF
  • Lit le numéro de version de l'API FDF

fdf_get_version

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_version — Lit le numéro de version de l'API FDF

Description

string fdf_get_version ([ resource $fdf_document ] )

Retourne le numéro de version FDF pour le document fdf_document, pour l'API si aucun paramètre n'est donné.

Liste de paramètres

fdf_document

Le gestionnaire de document, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

Valeurs de retour

Retourne la version, sous la forme d'une chaîne de caractères. Pour la version actuelle du FDF toolkit 5.0, le numéro de version est 5.0 et le numéro de version de document est 1.2, 1.3 ou 1.4.

Voir aussi

  • fdf_set_version() - Modifie le numéro de version du fichier FDF


Émet les en-têtes HTTP spécifiques à FDF

  • « fdf_get_version
  • fdf_next_field_name »
  • PHP Manual
  • Fonctions FDF
  • Émet les en-têtes HTTP spécifiques à FDF

fdf_header

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_header — Émet les en-têtes HTTP spécifiques à FDF

Description

void fdf_header ( void )

fdf_header() est une fonction de confort, pour émettre les en-têtes HTTP spécifiques à FDF. Elle permet d'envoyer le type Content-type: avec la valeur application/vnd.fdf.

Valeurs de retour

Aucune valeur n'est retournée.


Lit le nom du champ FDF suivant

  • « fdf_header
  • fdf_open_string »
  • PHP Manual
  • Fonctions FDF
  • Lit le nom du champ FDF suivant

fdf_next_field_name

(PHP 4, PHP 5, PHP 7)

fdf_next_field_name — Lit le nom du champ FDF suivant

Description

string fdf_next_field_name ( resource $fdf_document [, string $fieldname ] )

Lit le nom du champ FDF suivant. Ce nom pourra être utilisé dans plusieurs fonctions.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères. S'il n'est pas fournis, le premier champ sera retourné.

Valeurs de retour

Retourne le nom du champ, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Détecter tous les noms d'un formulaire FDF

<?php
$fdf = fdf_open($HTTP_FDF_DATA);
for ($field = fdf_next_field_name($fdf);
    $field != "";
    $field = fdf_next_field_name($fdf, $field)) {
    echo "field: $field\n";
}
?>

Voir aussi

  • fdf_get_value() - Retourne la valeur d'un champ FDF


Lit un document FDF à partir d'une chaîne de caractères

  • « fdf_next_field_name
  • fdf_open »
  • PHP Manual
  • Fonctions FDF
  • Lit un document FDF à partir d'une chaîne de caractères

fdf_open_string

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_open_string — Lit un document FDF à partir d'une chaîne de caractères

Description

resource fdf_open_string ( string $fdf_data )

Lit un document FDF à partir d'une chaîne de caractères.

Vous pouvez utiliser fdf_open_string() avec la variable $HTTP_FDF_DATA pour traiter des données de formulaires issues de clients distants.

Liste de paramètres

fdf_data

Les données, comme retournés depuis un formulaire PDF ou créés en utilisant les fonctions fdf_create() et fdf_save_string().

Valeurs de retour

Retourne un gestionnaire de document FDF, ou FALSE si une erreur survient.

Exemples

Exemple #1 Accès aux données de formulaire FDF

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

Voir aussi

  • fdf_open() - Ouvre un document FDF
  • fdf_close() - Ferme un document FDF
  • fdf_create() - Crée un nouveau document FDF
  • fdf_save_string() - Retourne un document FDF sous forme d'une chaîne de caractères


Ouvre un document FDF

  • « fdf_open_string
  • fdf_remove_item »
  • PHP Manual
  • Fonctions FDF
  • Ouvre un document FDF

fdf_open

(PHP 4, PHP 5, PHP 7)

fdf_open — Ouvre un document FDF

Description

resource fdf_open ( string $filename )

Ouvre un document FDF.

Vous pouvez également utiliser la fonction fdf_open_string() pour traiter le résultat d'un formulaire PDF issue d'une méthode POST.

Liste de paramètres

filename

Chemin vers le fichier FDF. Ce fichier doit contenir les données telles que retournées par un formulaire PDF ou créées en utilisant les fonctions fdf_create() et fdf_save().

Valeurs de retour

Retourne un gestionnaire de document FDF, ou FALSE si une erreur survient.

Exemples

Exemple #1 Accéder aux données du formulaire

<?php
// Sauve le fichier FDF dans un fichier temporaire.
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Ouvre le fichier temporaire, et utilise les données.
$fdf = fdf_open("test.fdf");
/* ... */
fdf_close($fdf);
?>

Voir aussi

  • fdf_open_string() - Lit un document FDF à partir d'une chaîne de caractères
  • fdf_close() - Ferme un document FDF
  • fdf_create() - Crée un nouveau document FDF
  • fdf_save() - Sauvegarde un document FDF


Configure le cadre FDF de destination pour le formulaire

  • « fdf_open
  • fdf_save_string »
  • PHP Manual
  • Fonctions FDF
  • Configure le cadre FDF de destination pour le formulaire

fdf_remove_item

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_remove_item — Configure le cadre FDF de destination pour le formulaire

Description

bool fdf_remove_item ( resource $fdf_document , string $fieldname , int $item )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne un document FDF sous forme d'une chaîne de caractères

  • « fdf_remove_item
  • fdf_save »
  • PHP Manual
  • Fonctions FDF
  • Retourne un document FDF sous forme d'une chaîne de caractères

fdf_save_string

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_save_string — Retourne un document FDF sous forme d'une chaîne de caractères

Description

string fdf_save_string ( resource $fdf_document )

Retourne un document FDF sous forme d'une chaîne de caractères.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

Valeurs de retour

Retourne le document, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Lire un document FDF sous forme de chaîne de caractères

<?php
$fdf = fdf_create();
fdf_set_value($fdf, "foo", "bar");
$str = fdf_save_string($fdf);
fdf_close($fdf);
echo $str;
?>

L'exemple ci-dessus va afficher :

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /Fields 2 0 R >>
>>
endobj
2 0 obj
[
<< /T (foo)/V (bar)>>
]
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

Voir aussi

  • fdf_open_string() - Lit un document FDF à partir d'une chaîne de caractères
  • fdf_close() - Ferme un document FDF
  • fdf_create() - Crée un nouveau document FDF
  • fdf_save() - Sauvegarde un document FDF


Sauvegarde un document FDF

  • « fdf_save_string
  • fdf_set_ap »
  • PHP Manual
  • Fonctions FDF
  • Sauvegarde un document FDF

fdf_save

(PHP 4, PHP 5, PHP 7)

fdf_save — Sauvegarde un document FDF

Description

bool fdf_save ( resource $fdf_document [, string $filename ] )

Sauvegarde un document FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

filename

Si fourni, le FDF résultant sera écrit dans ce paramètre. Sinon, cette fonction écrira le FDF dans la sortie standard PHP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fdf_close() - Ferme un document FDF
  • fdf_create() - Crée un nouveau document FDF
  • fdf_save_string() - Retourne un document FDF sous forme d'une chaîne de caractères


Fixe l'apparence d'un champ FDF

  • « fdf_save
  • fdf_set_encoding »
  • PHP Manual
  • Fonctions FDF
  • Fixe l'apparence d'un champ FDF

fdf_set_ap

(PHP 4, PHP 5, PHP 7)

fdf_set_ap — Fixe l'apparence d'un champ FDF

Description

bool fdf_set_ap ( resource $fdf_document , string $field_name , int $face , string $filename , int $page_number )

Fixe l'apparence d'un champ FDF (i.e. la valeur de la clé /AP).

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

field_name

face

Les valeurs possibles sont : FDFNormalAP, FDFRolloverAP et FDFDownAP.

filename

page_number

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Modifie l'encodage des caractères

  • « fdf_set_ap
  • fdf_set_file »
  • PHP Manual
  • Fonctions FDF
  • Modifie l'encodage des caractères

fdf_set_encoding

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

fdf_set_encoding — Modifie l'encodage des caractères

Description

bool fdf_set_encoding ( resource $fdf_document , string $encoding )

Modifie l'encodage des caractères du document FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

encoding

Le nom de l'encodage. Les valeurs suivantes sont supportées : "Shift-JIS", "UHC", "GBK" et "BigFive".

Une chaîne de caractères vide replace la valeur par défaut de l'encodage au schéma PDFDocEncoding/Unicode.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Crée un document PDF pour y afficher des données FDF

  • « fdf_set_encoding
  • fdf_set_flags »
  • PHP Manual
  • Fonctions FDF
  • Crée un document PDF pour y afficher des données FDF

fdf_set_file

(PHP 4, PHP 5, PHP 7)

fdf_set_file — Crée un document PDF pour y afficher des données FDF

Description

bool fdf_set_file ( resource $fdf_document , string $url [, string $target_frame ] )

Crée un document PDF pour y afficher des données FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

url

Doit être fourni sous la forme d'une URL absolue.

target_frame

Utilisez ce paramètre pour spécifier la frame dans laquelle le document sera affiché. Vous pouvez également définir la valeur par défaut de ce paramètre en utilisant la fonction fdf_set_target_frame().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Passer des données FDF à un second formulaire

<?php
/* Configure l'en-tête pour Adobe FDF */
fdf_header();

/* Démarre un nouveau fichier FDF */
$fdf = fdf_create();

/* Assigne au champ "foo" la valeur de "bar" */
fdf_set_value($fdf, "foo", "bar");

/* Indique au client d'afficher les données FDF avec "fdf_form.pdf" */
fdf_set_file($fdf, "http://www.example.com/fdf_form.pdf");

/* Affiche le FDF */
fdf_save($fdf);

/* Nettoie */
fdf_close($fdf);
?>

Voir aussi

  • fdf_get_file() - Lit la valeur de la clé /F
  • fdf_set_target_frame() - Configure le cadre de destination pour l'affichage du formulaire


Modifie une option d'un champ

  • « fdf_set_file
  • fdf_set_javascript_action »
  • PHP Manual
  • Fonctions FDF
  • Modifie une option d'un champ

fdf_set_flags

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

fdf_set_flags — Modifie une option d'un champ

Description

bool fdf_set_flags ( resource $fdf_document , string $fieldname , int $whichFlags , int $newFlags )

Modifie une option d'un champ.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

whichFlags

newFlags

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fdf_set_opt() - Modifie une option d'un champ


Modifie l'action javascript d'un champ

  • « fdf_set_flags
  • fdf_set_on_import_javascript »
  • PHP Manual
  • Fonctions FDF
  • Modifie l'action javascript d'un champ

fdf_set_javascript_action

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

fdf_set_javascript_action — Modifie l'action javascript d'un champ

Description

bool fdf_set_javascript_action ( resource $fdf_document , string $fieldname , int $trigger , string $script )

Modifie l'action javascript d'un champ donné.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

trigger

script

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fdf_set_submit_form_action() - Modifie l'action d'un formulaire


Ajoute du code Javascript à être exécuté lorsque Acrobat ouvre un FDF

  • « fdf_set_javascript_action
  • fdf_set_opt »
  • PHP Manual
  • Fonctions FDF
  • Ajoute du code Javascript à être exécuté lorsque Acrobat ouvre un FDF

fdf_set_on_import_javascript

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_set_on_import_javascript — Ajoute du code Javascript à être exécuté lorsque Acrobat ouvre un FDF

Description

bool fdf_set_on_import_javascript ( resource $fdf_document , string $script , bool $before_data_import )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • fdf_add_doc_javascript() - Ajoute du code javascript dans un document FDF
  • fdf_set_javascript_action() - Modifie l'action javascript d'un champ


Modifie une option d'un champ

  • « fdf_set_on_import_javascript
  • fdf_set_status »
  • PHP Manual
  • Fonctions FDF
  • Modifie une option d'un champ

fdf_set_opt

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

fdf_set_opt — Modifie une option d'un champ

Description

bool fdf_set_opt ( resource $fdf_document , string $fieldname , int $element , string $str1 , string $str2 )

Modifie une option d'un champ donné.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

element

str1

str2

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fdf_set_flags() - Modifie une option d'un champ


Fixe la valeur de la clé /STATUS

  • « fdf_set_opt
  • fdf_set_submit_form_action »
  • PHP Manual
  • Fonctions FDF
  • Fixe la valeur de la clé /STATUS

fdf_set_status

(PHP 4, PHP 5, PHP 7)

fdf_set_status — Fixe la valeur de la clé /STATUS

Description

bool fdf_set_status ( resource $fdf_document , string $status )

Fixe la valeur de la clé /STATUS. Lorsqu'un client reçoit un FDF avec un statut positionné, sa valeur sera présenté dans une boîte d'alerte.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

status

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fdf_get_status() - Lit la valeur de la clé /STATUS


Modifie l'action d'un formulaire

  • « fdf_set_status
  • fdf_set_target_frame »
  • PHP Manual
  • Fonctions FDF
  • Modifie l'action d'un formulaire

fdf_set_submit_form_action

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

fdf_set_submit_form_action — Modifie l'action d'un formulaire

Description

bool fdf_set_submit_form_action ( resource $fdf_document , string $fieldname , int $trigger , string $script , int $flags )

Modifie l'action d'un formulaire.

Liste de paramètres

fdf_document

Le gestionnaire de document, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

trigger

script

flags

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fdf_set_javascript_action() - Modifie l'action javascript d'un champ


Configure le cadre de destination pour l'affichage du formulaire

  • « fdf_set_submit_form_action
  • fdf_set_value »
  • PHP Manual
  • Fonctions FDF
  • Configure le cadre de destination pour l'affichage du formulaire

fdf_set_target_frame

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_set_target_frame — Configure le cadre de destination pour l'affichage du formulaire

Description

bool fdf_set_target_frame ( resource $fdf_document , string $frame_name )

Configure le cadre de destination pour l'affichage du résultat PDF défini par fdf_save_file().

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

frame_name

Le nom du cadre, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fdf_save_file()


Modifie la valeur d'un champ FDF

  • « fdf_set_target_frame
  • fdf_set_version »
  • PHP Manual
  • Fonctions FDF
  • Modifie la valeur d'un champ FDF

fdf_set_value

(PHP 4, PHP 5, PHP 7)

fdf_set_value — Modifie la valeur d'un champ FDF

Description

bool fdf_set_value ( resource $fdf_document , string $fieldname , mixed $value [, int $isName ] )

Modifie la valeur d'un champ FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

value

Ce paramètre devra être stocké comme une chaîne de caractères même si c'est un tableau. Dans ce cas, tous les éléments du tableau seront stockés comme un tableau de valeur.

isName

Note:

Dans les anciennes versions de la suite FDF, le dernier paramètre déterminait si la valeur du champs devait être convertie en un nom PDF (isname = 1) ou positionnée comme une chaîne de caractères (isname = 0).

La valeur n'est plus dans la suite actuelle, version 5.0. Pour des raisons de compatibilité, cela est toujours supporté comme un paramètre optionnel depuis PHP 4.3, mais ignoré en interne.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
4.3.0 | Le support des tableaux dans le paramètre value a été ajouté.

Voir aussi

  • fdf_get_value() - Retourne la valeur d'un champ FDF
  • fdf_remove_item() - Configure le cadre FDF de destination pour le formulaire


Modifie le numéro de version du fichier FDF

  • « fdf_set_value
  • GnuPG »
  • PHP Manual
  • Fonctions FDF
  • Modifie le numéro de version du fichier FDF

fdf_set_version

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_set_version — Modifie le numéro de version du fichier FDF

Description

bool fdf_set_version ( resource $fdf_document , string $version )

Modifie le numéro de version du document FDF courant.

Certaines fonctionnalités supportées par cette extension ne sont disponibles que pour les nouvelles versions de FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

version

Le numéro de version. Pour le toolkit FDF courant, ce peut être 1.2, 1.3 ou 1.4.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fdf_get_version() - Lit le numéro de version de l'API FDF


GNU PG

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Signe en clair un texte
  • Fonctions GnuPG
    • gnupg_adddecryptkey — Ajoute une clé pour déchiffrement
    • gnupg_addencryptkey — Ajoute une clé pour chiffrement
    • gnupg_addsignkey — Ajoute une clé pour signer
    • gnupg_cleardecryptkeys — Supprime toutes les clés qui étaient fixées pour déchiffrement auparavant
    • gnupg_clearencryptkeys — Supprime toutes les clés qui étaient fixées pour chiffrement auparavant
    • gnupg_clearsignkeys — Supprime toutes les clés qui étaient fixées pour signature auparavant
    • gnupg_decrypt — Déchiffre un texte donné
    • gnupg_decryptverify — Déchiffre et vérifie un texte donné
    • gnupg_encrypt — Chiffre un texte donné
    • gnupg_encryptsign — Chiffre et signe un texte donné
    • gnupg_export — Exporte une clé
    • gnupg_geterror — Retourne le texte d'erreur, si une fonction échoue
    • gnupg_getprotocol — Retourne le protocole actif courant pour toutes les opérations
    • gnupg_import — Importe une clé
    • gnupg_init — Initialise une connexion
    • gnupg_keyinfo — Retourne un tableau avec les informations à propos de toutes les clés qui correspondent au motif donné
    • gnupg_setarmor — Change la sortie blindée
    • gnupg_seterrormode — Fixe le mode pour error_reporting
    • gnupg_setsignmode — Fixe le mode pour signer
    • gnupg_sign — Signe un texte donné
    • gnupg_verify — Vérifie un texte signé


  • « GnuPG
  • Installation/Configuration »
  • PHP Manual
  • GnuPG
  • Introduction

Introduction

Ce module vous permet d'interagir avec » gnupg.


Pré-requis

L'extension gnupg requiert PHP 4.3. Pour utiliser cette extension dans le style orienté objet, PHP 5 est requis.

Cette extension requiert la » bibliothèque gpgme.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/gnupg.


Constantes pré-définies

GNUPG_SIG_MODE_NORMAL (entier)
GNUPG_SIG_MODE_DETACH (entier)
GNUPG_SIG_MODE_CLEAR (entier)
GNUPG_VALIDITY_UNKNOWN (entier)
GNUPG_VALIDITY_UNDEFINED (entier)
GNUPG_VALIDITY_NEVER (entier)
GNUPG_VALIDITY_MARGINAL (entier)
GNUPG_VALIDITY_FULL (entier)
GNUPG_VALIDITY_ULTIMATE (entier)
GNUPG_PROTOCOL_OpenPGP (entier)
GNUPG_PROTOCOL_CMS (entier)
GNUPG_SIGSUM_VALID (entier)
GNUPG_SIGSUM_GREEN (entier)
GNUPG_SIGSUM_RED (entier)
GNUPG_SIGSUM_KEY_REVOKED (entier)
GNUPG_SIGSUM_KEY_EXPIRED (entier)
GNUPG_SIGSUM_KEY_MISSING (entier)
GNUPG_SIGSUM_SIG_EXPIRED (entier)
GNUPG_SIGSUM_CRL_MISSING (entier)
GNUPG_SIGSUM_CRL_TOO_OLD (entier)
GNUPG_SIGSUM_BAD_POLICY (entier)
GNUPG_SIGSUM_SYS_ERROR (entier)
GNUPG_ERROR_WARNING (entier)
GNUPG_ERROR_EXCEPTION (entier)
GNUPG_ERROR_SILENT (entier)


  • « Constantes pré-définies
  • Signe en clair un texte »
  • PHP Manual
  • GnuPG
  • Exemples

Exemples

Sommaire

  • Signe en clair un texte


Signe en clair un texte

Cet exemple signe en clair un texte donné.

Exemple #1 Exemple avec gnupg clearsign (Style procédural)

<?php
// Initialisation de gnupg
$res = gnupg_init();

// Pas vraiment nécessaire. Clearsign est par défaut.
gnupg_setsignmode($res,GNUPG_SIG_MODE_CLEAR);

// Ajoute une clé avec une passphrase 'test' pour signer
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");

// Signe
$signed = gnupg_sign($res,"just a test");

echo $signed;
?>

Exemple #2 Exemple avec gnupg clearsign (Style orienté objet)

<?php
// Nouvelle classe
$gnupg = new gnupg();

// Pas vraiment nécessaire. Clearsign est par défaut
$gnupg->setsignmode(gnupg::SIG_MODE_CLEAR);

// ajoute une clé avec une passphrase 'test' pour signer
$gnupg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");

// Signe
$signed = $gnupg->sign("just a test");
echo $signed;
?>

Exemple #3 keylistiterator

Cette extension vient aussi avec un Itérateur pour votre trousseau.

<?php
// Crée un nouvel itérateur pour lister toutes les clés publiques qui
// correspondent à 'exemple'$iterator = new gnupg_keylistiterator("example");
foreach($iterator as $fingerprint => $userid){
    echo $fingerprint." -> ".$userid."\n";
}
?>


Fonctions GnuPG

Notes

Cette extension utilise le trousseau de l'usager courant. Ce trousseau est normalement situé dans ~./.gnupg/. Pour spécifier un emplacement différent, enregistrer le chemin de votre trousseau dans la variable d'environnement GNUPGHOME. Voyez putenv pour plus d'information pour savoir comment faire cela.

Certaines fonctions requièrent la spécification d'une clé. Cette spécification peut être quelque chose qui réfère à une clé unique (userid, key-id, fingerprint, ...). Cette documentation utilise les fingerprint dans tous les exemples.

Sommaire

  • gnupg_adddecryptkey — Ajoute une clé pour déchiffrement
  • gnupg_addencryptkey — Ajoute une clé pour chiffrement
  • gnupg_addsignkey — Ajoute une clé pour signer
  • gnupg_cleardecryptkeys — Supprime toutes les clés qui étaient fixées pour déchiffrement auparavant
  • gnupg_clearencryptkeys — Supprime toutes les clés qui étaient fixées pour chiffrement auparavant
  • gnupg_clearsignkeys — Supprime toutes les clés qui étaient fixées pour signature auparavant
  • gnupg_decrypt — Déchiffre un texte donné
  • gnupg_decryptverify — Déchiffre et vérifie un texte donné
  • gnupg_encrypt — Chiffre un texte donné
  • gnupg_encryptsign — Chiffre et signe un texte donné
  • gnupg_export — Exporte une clé
  • gnupg_geterror — Retourne le texte d'erreur, si une fonction échoue
  • gnupg_getprotocol — Retourne le protocole actif courant pour toutes les opérations
  • gnupg_import — Importe une clé
  • gnupg_init — Initialise une connexion
  • gnupg_keyinfo — Retourne un tableau avec les informations à propos de toutes les clés qui correspondent au motif donné
  • gnupg_setarmor — Change la sortie blindée
  • gnupg_seterrormode — Fixe le mode pour error_reporting
  • gnupg_setsignmode — Fixe le mode pour signer
  • gnupg_sign — Signe un texte donné
  • gnupg_verify — Vérifie un texte signé


Ajoute une clé pour déchiffrement

  • « Fonctions GnuPG
  • gnupg_addencryptkey »
  • PHP Manual
  • Fonctions GnuPG
  • Ajoute une clé pour déchiffrement

gnupg_adddecryptkey

(PECL gnupg >= 0.5)

gnupg_adddecryptkey — Ajoute une clé pour déchiffrement

Description

bool gnupg_adddecryptkey ( resource $identifier , string $fingerprint , string $passphrase )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

fingerprint

L'empreinte de la clé.

passphrase

La phrase de passe (comme le mot de passe, mais plus long).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_adddecryptkey() (Style procédural)

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Exemple #2 Exemple avec gnupg_adddecryptkey() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
?>


Ajoute une clé pour chiffrement

  • « gnupg_adddecryptkey
  • gnupg_addsignkey »
  • PHP Manual
  • Fonctions GnuPG
  • Ajoute une clé pour chiffrement

gnupg_addencryptkey

(PECL gnupg >= 0.5)

gnupg_addencryptkey — Ajoute une clé pour chiffrement

Description

bool gnupg_addencryptkey ( resource $identifier , string $fingerprint )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

fingerprint

L'empreinte de la clé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_addencryptkey() (Style procédural)

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
?>

Exemple #2 Exemple avec gnupg_addencryptkey() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
?>


Ajoute une clé pour signer

  • « gnupg_addencryptkey
  • gnupg_cleardecryptkeys »
  • PHP Manual
  • Fonctions GnuPG
  • Ajoute une clé pour signer

gnupg_addsignkey

(PECL gnupg >= 0.5)

gnupg_addsignkey — Ajoute une clé pour signer

Description

bool gnupg_addsignkey ( resource $identifier , string $fingerprint [, string $passphrase ] )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

fingerprint

L'empreinte de la clé.

passphrase

La phrase de passe (comme le mot de passe, mais plus long).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_addsignkey() (Style procédural)

<?php
$res = gnupg_init();
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Exemple #2 Exemple avec gnupg_addsignkey() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg -> addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
?>


Supprime toutes les clés qui étaient fixées pour déchiffrement auparavant

  • « gnupg_addsignkey
  • gnupg_clearencryptkeys »
  • PHP Manual
  • Fonctions GnuPG
  • Supprime toutes les clés qui étaient fixées pour déchiffrement auparavant

gnupg_cleardecryptkeys

(PECL gnupg >= 0.5)

gnupg_cleardecryptkeys — Supprime toutes les clés qui étaient fixées pour déchiffrement auparavant

Description

bool gnupg_cleardecryptkeys ( resource $identifier )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_cleardecryptkeys() (Style procédural)

<?php
$res = gnupg_init();
gnupg_cleardecryptkeys($res);
?>

Exemple #2 Exemple avec gnupg_cleardecryptkeys() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg -> cleardecryptkeys();
?>


Supprime toutes les clés qui étaient fixées pour chiffrement auparavant

  • « gnupg_cleardecryptkeys
  • gnupg_clearsignkeys »
  • PHP Manual
  • Fonctions GnuPG
  • Supprime toutes les clés qui étaient fixées pour chiffrement auparavant

gnupg_clearencryptkeys

(PECL gnupg >= 0.5)

gnupg_clearencryptkeys — Supprime toutes les clés qui étaient fixées pour chiffrement auparavant

Description

bool gnupg_clearencryptkeys ( resource $identifier )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_clearencryptkeys() (Style procédural)

<?php
$res = gnupg_init();
gnupg_clearencryptkeys($res);
?>

Exemple #2 Exemple avec gnupg_clearencryptkeys() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg -> clearencryptkeys();
?>


Supprime toutes les clés qui étaient fixées pour signature auparavant

  • « gnupg_clearencryptkeys
  • gnupg_decrypt »
  • PHP Manual
  • Fonctions GnuPG
  • Supprime toutes les clés qui étaient fixées pour signature auparavant

gnupg_clearsignkeys

(PECL gnupg >= 0.5)

gnupg_clearsignkeys — Supprime toutes les clés qui étaient fixées pour signature auparavant

Description

bool gnupg_clearsignkeys ( resource $identifier )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_clearsignkeys() (Style procédural)

<?php
$res = gnupg_init();
gnupg_clearsignkeys($res);
?>

Exemple #2 Exemple avec gnupg_clearsignkeys() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg -> clearsignkeys();
?>


Déchiffre un texte donné

  • « gnupg_clearsignkeys
  • gnupg_decryptverify »
  • PHP Manual
  • Fonctions GnuPG
  • Déchiffre un texte donné

gnupg_decrypt

(PECL gnupg >= 0.1)

gnupg_decrypt — Déchiffre un texte donné

Description

string gnupg_decrypt ( resource $identifier , string $text )

Déchiffre un texte donné avec les clés qui ont été fixées avec gnupg_adddecryptkey auparavant.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

text

Le texte à déchiffrer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_decrypt() (Style procédural)

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = gnupg_decrypt($res,$encrypted_text);
echo $plain;
?>

Exemple #2 Exemple avec gnupg_encrypt() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = $gpg -> decrypt($encrypted_text);
echo $plain;
?>


Déchiffre et vérifie un texte donné

  • « gnupg_decrypt
  • gnupg_encrypt »
  • PHP Manual
  • Fonctions GnuPG
  • Déchiffre et vérifie un texte donné

gnupg_decryptverify

(PECL gnupg >= 0.2)

gnupg_decryptverify — Déchiffre et vérifie un texte donné

Description

array gnupg_decryptverify ( resource $identifier , string $text , string &$plaintext )

Déchiffre et vérifie un texte donné et retourne les informations à propos de la signature.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

text

Le texte à déchiffrer.

plaintext

Le paramètre plaintext se remplit avec le texte déchiffré.

Valeurs de retour

En cas de succès, cette fonction retourne les informations à propos de la signature et remplit le paramètre plaintext avec le texte déchiffré. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_decryptverify() (Style procédural)

<?php
$plaintext = "";
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$info = gnupg_decryptverify($res,$text,$plaintext);
print_r($info);
?>

Exemple #2 Exemple avec gnupg_decryptverify() (Style orienté objet)

<?php
$plaintext = "";
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$info = $gpg -> decryptverify($text,$plaintext);
print_r($info);
?>


Chiffre un texte donné

  • « gnupg_decryptverify
  • gnupg_encryptsign »
  • PHP Manual
  • Fonctions GnuPG
  • Chiffre un texte donné

gnupg_encrypt

(PECL gnupg >= 0.1)

gnupg_encrypt — Chiffre un texte donné

Description

string gnupg_encrypt ( resource $identifier , string $plaintext )

Chiffre le paramètre plaintext avec les clés qui ont été fixées avec gnupg_addencryptkey auparavant et retourne le texte chiffré.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

plaintext

Le texte à chiffrer.

Valeurs de retour

En cas de succès, cette fonction retourne le texte chiffré. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_encrypt() (Style procédural)

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
$enc = gnupg_encrypt($res, "juste un test");
echo $enc;
?>

Exemple #2 Exemple avec gnupg_encrypt() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$enc = $gpg -> encrypt("juste un test");
echo $enc;
?>


Chiffre et signe un texte donné

  • « gnupg_encrypt
  • gnupg_export »
  • PHP Manual
  • Fonctions GnuPG
  • Chiffre et signe un texte donné

gnupg_encryptsign

(PECL gnupg >= 0.2)

gnupg_encryptsign — Chiffre et signe un texte donné

Description

string gnupg_encryptsign ( resource $identifier , string $plaintext )

Chiffre et signe le paramètre plaintext avec les clés qui ont été fixées avec gnupg_addsignkey et gnupg_addencryptkey auparavant et retourne le texte chiffré et signé.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

plaintext

Le texte à chiffrer.

Valeurs de retour

En cas de succès, cette fonction retourne le texte signé et crypté. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_encryptsign() (Style procédural)

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$enc = gnupg_encryptsign($res, "juste un test");
echo $enc;
?>

Exemple #2 Exemple avec gnupg_encryptsign() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$gpg -> addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$enc = $gpg -> encryptsign("juste un test");
echo $enc;
?>


Exporte une clé

  • « gnupg_encryptsign
  • gnupg_geterror »
  • PHP Manual
  • Fonctions GnuPG
  • Exporte une clé

gnupg_export

(PECL gnupg >= 0.1)

gnupg_export — Exporte une clé

Description

string gnupg_export ( resource $identifier , string $fingerprint )

Exporte la clé fingerprint.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

fingerprint

L'empreinte de la clé.

Valeurs de retour

En cas de succès, cette fonction retourne les données de la clé. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_export() (Style procédural)

<?php
$res = gnupg_init();
$export = gnupg_export($res,"8660281B6051D071D94B5B230549F9DC851566DC");
echo $export;
?>

Exemple #2 Exemple avec gnupg_export() (Style orienté objet)

<?php
$gpg = new gnupg();
$export = $gpg -> export("8660281B6051D071D94B5B230549F9DC851566DC");
?>


Retourne le texte d'erreur, si une fonction échoue

  • « gnupg_export
  • gnupg_getprotocol »
  • PHP Manual
  • Fonctions GnuPG
  • Retourne le texte d'erreur, si une fonction échoue

gnupg_geterror

(PECL gnupg >= 0.1)

gnupg_geterror — Retourne le texte d'erreur, si une fonction échoue

Description

string gnupg_geterror ( resource $identifier )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

Valeurs de retour

Retourne le texte d'erreur si une erreur s'est produite, sinon retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_geterror() (Style procédural)

<?php
$res = gnupg_init();
echo gnupg_geterror($res);
?>

Exemple #2 Exemple avec gnupg_geterror() (Style orienté objet)

<?php
$gpg = new gnupg();
echo $gpg -> geterror();
?>


Retourne le protocole actif courant pour toutes les opérations

  • « gnupg_geterror
  • gnupg_import »
  • PHP Manual
  • Fonctions GnuPG
  • Retourne le protocole actif courant pour toutes les opérations

gnupg_getprotocol

(PECL gnupg >= 0.1)

gnupg_getprotocol — Retourne le protocole actif courant pour toutes les opérations

Description

int gnupg_getprotocol ( resource $identifier )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

Valeurs de retour

Retourne le protocole actif courant, qui peut être un de ceux-ci : GNUPG_PROTOCOL_OpenPGP ou GNUPG_PROTOCOL_CMS.

Exemples

Exemple #1 Exemple avec gnupg_getprotocol() (Style procédural)

<?php
$res = gnupg_init();
echo gnupg_getprotocol($res);
?>

Exemple #2 Exemple avec gnupg_getprotocol() (Style orienté objet)

<?php
$gpg = new gnupg();
echo $gpg -> getprotocol();
?>


Importe une clé

  • « gnupg_getprotocol
  • gnupg_init »
  • PHP Manual
  • Fonctions GnuPG
  • Importe une clé

gnupg_import

(PECL gnupg >= 0.3)

gnupg_import — Importe une clé

Description

array gnupg_import ( resource $identifier , string $keydata )

Importe la clé keydata et retourne un tableau avec les informations à propos du processus d'importation.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

keydata

La clé à importer.

Valeurs de retour

En cas de succès, cette fonction retourne un tableau d'information à propos du processus d'importation. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_import() (Style procédural)

<?php
$res = gnupg_init();
$info = gnupg_import($res,$keydata);
print_r($info);
?>

Exemple #2 Exemple avec gnupg_import() (Style orienté objet)

<?php
$gpg = new gnupg();
$info = $gpg -> import($keydata);
print_r($info);
?>


Initialise une connexion

  • « gnupg_import
  • gnupg_keyinfo »
  • PHP Manual
  • Fonctions GnuPG
  • Initialise une connexion

gnupg_init

(PECL gnupg >= 0.4)

gnupg_init — Initialise une connexion

Description

resource gnupg_init ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une ressource de connexion GnuPG, utilisée par les autres fonctions GnuPG.

Exemples

Exemple #1 Exemple avec gnupg_init() (Style procédural)

<?php
$res = gnupg_init();
?>

Exemple #2 Exemple avec gnupg_init() (Style orienté objet)

<?php
$gpg = new gnupg();
?>


Retourne un tableau avec les informations à propos de toutes les clés qui correspondent au motif donné

  • « gnupg_init
  • gnupg_setarmor »
  • PHP Manual
  • Fonctions GnuPG
  • Retourne un tableau avec les informations à propos de toutes les clés qui correspondent au motif donné

gnupg_keyinfo

(PECL gnupg >= 0.1)

gnupg_keyinfo — Retourne un tableau avec les informations à propos de toutes les clés qui correspondent au motif donné

Description

array gnupg_keyinfo ( resource $identifier , string $pattern )

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

pattern

Le masque à utiliser sur les clés.

Valeurs de retour

Retourne un tableau avec les informations à propos de toutes les clés qui correspondent au motif donné ou retourne FALSE si une erreur s'est produite.

Exemples

Exemple #1 Exemple avec gnupg_keyinfo() (Style procédural)

<?php
$res = gnupg_init();
$info = gnupg_keyinfo($res, 'test');
print_r($info);
?>

Exemple #2 Exemple avec gnupg_keyinfo() (Style orienté objet)

<?php
$gpg = new gnupg();
$info = $gpg -> keyinfo("test");
print_r($info);
?>


Change la sortie blindée

  • « gnupg_keyinfo
  • gnupg_seterrormode »
  • PHP Manual
  • Fonctions GnuPG
  • Change la sortie blindée

gnupg_setarmor

(PECL gnupg >= 0.1)

gnupg_setarmor — Change la sortie blindée

Description

bool gnupg_setarmor ( resource $identifier , int $armor )

Change la sortie blindée.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

armor

Passez une valeur entière différente de zéro à cette fonction pour activer la sortie blindée (valeur par défaut). Passez 0 pour désactiver la sortie blindée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_setarmor() (Style procédural)

<?php
$res = gnupg_init();
gnupg_setarmor($res,1); // Active la sortie blindée;
gnupg_setarmor($res,0); // Désactive la sortie blindée;
?>

Exemple #2 Exemple avec gnupg_setarmor() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg -> setarmor(1); // Active la sortie blindée;
$gpg -> setarmor(0); // Désactive la sortie blindée;
?>


Fixe le mode pour error_reporting

  • « gnupg_setarmor
  • gnupg_setsignmode »
  • PHP Manual
  • Fonctions GnuPG
  • Fixe le mode pour error_reporting

gnupg_seterrormode

(PECL gnupg >= 0.6)

gnupg_seterrormode — Fixe le mode pour error_reporting

Description

void gnupg_seterrormode ( resource $identifier , int $errormode )

Fixe le mode pour error_reporting.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

errormode

Le mode de l'erreur.

errormode prend une constante indiquant quel type de error_reporting devrait être utilisé. Les valeurs possibles sont GNUPG_ERROR_WARNING, GNUPG_ERROR_EXCEPTION et GNUPG_ERROR_SILENT. Par défaut GNUPG_ERROR_SILENT.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec gnupg_seterrormode() (Style procédural)

<?php
$res = gnupg_init();
gnupg_seterrormode($res,GNUPG_ERROR_WARNING); // émet un PHP-Warning dans le cas d'une erreur
?>

Exemple #2 Exemple avec gnupg_seterrormode() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg->seterrormode(gnupg::ERROR_EXCEPTION); // jette une exception dans le cas d'une erreur
?>


Fixe le mode pour signer

  • « gnupg_seterrormode
  • gnupg_sign »
  • PHP Manual
  • Fonctions GnuPG
  • Fixe le mode pour signer

gnupg_setsignmode

(PECL gnupg >= 0.1)

gnupg_setsignmode — Fixe le mode pour signer

Description

bool gnupg_setsignmode ( resource $identifier , int $signmode )

Fixe le mode pour signer.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

sigmode

Le mode de signature.

signmode prend une constante indiquant quel type de signature qui doit être produite. Les valeurs possibles sont : GNUPG_SIG_MODE_NORMAL, GNUPG_SIG_MODE_DETACH et GNUPG_SIG_MODE_CLEAR. Par défaut, GNUPG_SIG_MODE_CLEAR est utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec gnupg_setsignmode() (Style procédural)

<?php
$res = gnupg_init();
gnupg_setsignmode($res,GNUPG_SIG_MODE_DETACH); // produit une signature détachée
?>

Exemple #2 Exemple avec gnupg_setsignmode() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg->setsignmode(gnupg::SIG_MODE_DETACH); // produit une signature détachée
?>


Signe un texte donné

  • « gnupg_setsignmode
  • gnupg_verify »
  • PHP Manual
  • Fonctions GnuPG
  • Signe un texte donné

gnupg_sign

(PECL gnupg >= 0.1)

gnupg_sign — Signe un texte donné

Description

string gnupg_sign ( resource $identifier , string $plaintext )

Signe le paramètre plaintext avec les clés qui ont été fixées avec gnupg_addsignkey auparavant et retourne le texte signé ou la signature, dépendamment de ce qui a été fixé avec gnupg_setsignmode.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

plaintext

Le texte à signer.

Valeurs de retour

En cas de succès, cette fonction retourne le texte signé ou la signature. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_sign() (Style procédural)

<?php
$res = gnupg_init();
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed = gnupg_sign($res, "juste un test");
echo $signed;
?>

Exemple #2 Exemple avec gnupg_sign() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed = $gpg->sign("just a test");
echo $signed;
?>


Vérifie un texte signé

  • « gnupg_sign
  • haru »
  • PHP Manual
  • Fonctions GnuPG
  • Vérifie un texte signé

gnupg_verify

(PECL gnupg >= 0.1)

gnupg_verify — Vérifie un texte signé

Description

array gnupg_verify ( resource $identifier , string $signed_text , string $signature [, string &$plaintext ] )

Vérifie le paramètre signed_text et retourne les informations à propos de la signature.

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

signed_text

Le texte signé.

signature

La signature. Pour vérifier un texte signé en clair, fixez la signature à FALSE.

plaintext

Le texte. Si ce paramètre optionnel est passé, il est rempli avec le plaintext.

Valeurs de retour

En cas de succès, cette fonction retourne des informations à propos de la signature. En cas d'échec, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec gnupg_verify() (Style procédural)

<?php
$plaintext = "";
$res = gnupg_init();
// signé en clair
$info = gnupg_verify($res,$signed_text,false,$plaintext);
print_r($info);
// signature détachée
$info = gnupg_verify($res,$signed_text,$signature);
print_r($info);
?>

Exemple #2 Exemple avec gnupg_verify() (Style orienté objet)

<?php
$plaintext = "";
$gpg = new gnupg();
// signé en clair
$info = $gpg -> verify($signed_text,false,$plaintext);
print_r($info);
// signature détachée
$info = $gpg -> verify($signed_text,$signature);
print_r($info);
?>


Haru PDF

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Exemple d'utilisation de PECL/haru
  • Polices internes et encodages
    • Polices internes
    • Encodages internes
  • HaruException — Classe HaruException
  • HaruDoc — Classe HaruDoc
    • HaruDoc::addPage — Ajoute une nouvelle page au document
    • HaruDoc::addPageLabel — Définit le style de numérotation d'une série de pages
    • HaruDoc::__construct — Construit un nouvel objet HaruDoc
    • HaruDoc::createOutline — Crée une instance HaruOutline
    • HaruDoc::getCurrentEncoder — Récupère l'instance HaruEncoder actuellement utilisée dans le document
    • HaruDoc::getCurrentPage — Retourne la page courante du document
    • HaruDoc::getEncoder — Récupère l'instance HaruEncoder de l'encodage spécifié
    • HaruDoc::getFont — Récupère une instance HaruFont
    • HaruDoc::getInfoAttr — Récupère la valeur courante d'un attribut de document spécifié
    • HaruDoc::getPageLayout — Récupère la disposition courante de la page
    • HaruDoc::getPageMode — Récupère le mode courant de la page
    • HaruDoc::getStreamSize — Récupère la taille du flux temporaire
    • HaruDoc::insertPage — Insère une nouvelle page juste avant la page spécifiée
    • HaruDoc::loadJPEG — Charge une image JPEG
    • HaruDoc::loadPNG — Charge une image PNG
    • HaruDoc::loadRaw — Charge une image RAW
    • HaruDoc::loadTTC — Charge la police avec l'index spécifié depuis le fichier TTC
    • HaruDoc::loadTTF — Charge un fichier de police TTF
    • HaruDoc::loadType1 — Charge la police Type1
    • HaruDoc::output — Écrit les données du document dans un buffer de sortie
    • HaruDoc::readFromStream — Lit les données depuis le flux temporaire
    • HaruDoc::resetError — Réinitialise le statut d'erreur du gestionnaire de document
    • HaruDoc::resetStream — Revient au début du flux temporaire
    • HaruDoc::save — Sauvegarde le document dans le fichier spécifié
    • HaruDoc::saveToStream — Sauvegarde le document dans un flux temporaire
    • HaruDoc::setCompressionMode — Définit le mode de compression pour le document
    • HaruDoc::setCurrentEncoder — Définit l'encodeur courant pour le document
    • HaruDoc::setEncryptionMode — Définit le mode de chiffrement pour le document
    • HaruDoc::setInfoAttr — Définit l'attribut d'information du document
    • HaruDoc::setInfoDateAttr — Définit les attributs d'informations de date et d'heure pour le document
    • HaruDoc::setOpenAction — Définit quelle page est affichée lors de l'ouverture du document
    • HaruDoc::setPageLayout — Définit la façon dont la page doit être affichée
    • HaruDoc::setPageMode — Définit la façon dont le document doit être affiché
    • HaruDoc::setPagesConfiguration — Définit le nombre de pages par jeu de pages
    • HaruDoc::setPassword — Définit les mots de passe de l'utilisateur et du propriétaire pour le document
    • HaruDoc::setPermission — Définit les permissions du document
    • HaruDoc::useCNSEncodings — Active l'encodage chinois simplifié
    • HaruDoc::useCNSFonts — Active les polices chinoises simplifiées internes
    • HaruDoc::useCNTEncodings — Active l'encodage chinois traditionnel
    • HaruDoc::useCNTFonts — Active les polices chinoises traditionnelles internes
    • HaruDoc::useJPEncodings — Active l'encodage japonais
    • HaruDoc::useJPFonts — Active les polices japonaises internes
    • HaruDoc::useKREncodings — Active l'encodage coréen
    • HaruDoc::useKRFonts — Active les polices coréennes internes
  • HaruPage — Classe HaruPage
    • HaruPage::arc — Ajoute un arc au chemin courant
    • HaruPage::beginText — Commence un objet texte et définit la position courante du texte à (0,0)
    • HaruPage::circle — Ajoute un cercle au chemin courant
    • HaruPage::closePath — Ajoute une ligne droite depuis le point courant jusqu'au point de départ du chemin
    • HaruPage::concat — Concatène la matrice de transformation courante et la matrice spécifiée
    • HaruPage::createDestination — Crée une nouvelle instance HaruDestination
    • HaruPage::createLinkAnnotation — Crée une nouvelle instance HaruAnnotation
    • HaruPage::createTextAnnotation — Crée une nouvelle instance HaruAnnotation
    • HaruPage::createURLAnnotation — Crée une nouvelle instance HaruAnnotation instance
    • HaruPage::curveTo2 — Ajoute une courbe de Bézier au chemin courant
    • HaruPage::curveTo3 — Ajoute une courbe de Bézier au chemin courant
    • HaruPage::curveTo — Ajoute une courbe de Bézier au chemin courant
    • HaruPage::drawImage — Affiche une image dans la page
    • HaruPage::ellipse — Ajoute une ellipse au chemin courant
    • HaruPage::endPath — Termine l'objet chemin courant sans effectuer d'opérations de remplissage et de peinture
    • HaruPage::endText — Termine l'objet texte courant
    • HaruPage::eofill — Remplit le chemin courant en utilisant la règle "even-odd"
    • HaruPage::eoFillStroke — Remplit le chemin courant en utilisant la règle "even-odd", puis, peint le chemin
    • HaruPage::fill — Remplit le chemin courant en utilisant des nombres différents de zéro
    • HaruPage::fillStroke — Remplit le chemin en utilisant des nombres différents de zéro, puis peint le chemin
    • HaruPage::getCharSpace — Récupère la valeur courante de l'espacement des caractères
    • HaruPage::getCMYKFill — Récupère la couleur de remplissage courante
    • HaruPage::getCMYKStroke — Récupère la couleur de remplissage courante
    • HaruPage::getCurrentFont — Récupère la police actuellement utilisée
    • HaruPage::getCurrentFontSize — Récupère la taille de la police courante
    • HaruPage::getCurrentPos — Récupère la position courante pour l'affichage
    • HaruPage::getCurrentTextPos — Récupère la position courante pour l'affichage du texte
    • HaruPage::getDash — Récupère le style de tiret courant
    • HaruPage::getFillingColorSpace — Récupère la couleur de remplissage
    • HaruPage::getFlatness — Récupère la planéité de la page
    • HaruPage::getGMode — Récupère le mode courant de graphique
    • HaruPage::getGrayFill — Récupère la couleur courante de remplissage
    • HaruPage::getGrayStroke — Récupère la couleur courante
    • HaruPage::getHeight — Récupère la hauteur de la page
    • HaruPage::getHorizontalScaling — Récupère la valeur courante de l'échelle horizontale
    • HaruPage::getLineCap — Récupère le style courant de fin de lignes
    • HaruPage::getLineJoin — Récupère le style de jointure de lignes
    • HaruPage::getLineWidth — Récupère la largeur courante de la ligne
    • HaruPage::getMiterLimit — Récupère la valeur de la limite de l'anglet
    • HaruPage::getRGBFill — Récupère la couleur courante de remplissage
    • HaruPage::getRGBStroke — Récupère la couleur de peinture courante
    • HaruPage::getStrokingColorSpace — Récupère la couleur de peinture de l'espace courant
    • HaruPage::getTextLeading — Récupère la valeur courante de l'espacement des lignes
    • HaruPage::getTextMatrix — Récupère la matrice de transformation courante du texte de la page
    • HaruPage::getTextRenderingMode — Récupère le mode de rendu courant du texte
    • HaruPage::getTextRise — Récupère la valeur de la levée du texte
    • HaruPage::getTextWidth — Récupère la largeur du texte en utilisant la taille de la police courante, l'espacement des caractères et l'espacement des mots
    • HaruPage::getTransMatrix — Récupère la matrice de transformation courante de la page
    • HaruPage::getWidth — Récupère la largeur de la page
    • HaruPage::getWordSpace — Récupère la valeur courante de l'espacement entre les mots
    • HaruPage::lineTo — Trace une ligne depuis le point courant vers le point spécifié
    • HaruPage::measureText — Calcule le longueur des caractères qui peuvent être inclus sur une ligne de largeur spécifiée
    • HaruPage::moveTextPos — Déplace la position du texte à une position donnée
    • HaruPage::moveTo — Définit le point de départ pour la nouvelle ligne
    • HaruPage::moveToNextLine — Déplace la position du texte au début de la prochaine ligne
    • HaruPage::rectangle — Ajoute un rectangle à la position courante
    • HaruPage::setCharSpace — Définit l'espacement des caractères pour la page
    • HaruPage::setCMYKFill — Définit la couleur de remplissage de la page
    • HaruPage::setCMYKStroke — Définit la couleur de remplissage de la page
    • HaruPage::setDash — Définit le style de tiret pour la page
    • HaruPage::setFlatness — Définit la planéité de la page
    • HaruPage::setFontAndSize — Définit la police et sa taille pour la page
    • HaruPage::setGrayFill — Définit la couleur de remplissage de la page
    • HaruPage::setGrayStroke — Définit la couleur de remplissage de la page
    • HaruPage::setHeight — Définit la hauteur de la page
    • HaruPage::setHorizontalScaling — Définit la graduation horizontale de la page
    • HaruPage::setLineCap — Définit la forme à utiliser à la fin des lignes
    • HaruPage::setLineJoin — Définit le style de jointure de ligne pour la page
    • HaruPage::setLineWidth — Définit la largeur de la ligne pour la page
    • HaruPage::setMiterLimit — Définit la valeur courante de la limite de l'anglet de la page
    • HaruPage::setRGBFill — Définit la couleur de remplissage pour la page
    • HaruPage::setRGBStroke — Définit la couleur de remplissage de la page
    • HaruPage::setRotate — Définit l'angle de rotation de la page
    • HaruPage::setSize — Définit la taille et la direction de la page
    • HaruPage::setSlideShow — Définit le style de transition pour la page
    • HaruPage::setTextLeading — Définit l'espacement entre les lignes du texte pour la page
    • HaruPage::setTextMatrix — Définit la matrice de transformation de texte courante de la page
    • HaruPage::setTextRenderingMode — Définit la matrice de transformation de texte courante de la page
    • HaruPage::setTextRise — Définit la valeur courante de la levée du texte
    • HaruPage::setWidth — Définit la largeur de la page
    • HaruPage::setWordSpace — Définit l'espacement entre les mots pour la page
    • HaruPage::showText — Affiche le texte à la position courante de la page
    • HaruPage::showTextNextLine — Déplace la position courante au début de la prochaine ligne et affiche le texte
    • HaruPage::stroke — Peint le chemin courant
    • HaruPage::textOut — Affiche le texte à la position spécifiée
    • HaruPage::textRect — Affiche le texte d'une région spécifique
  • HaruFont — Classe HaruFont
    • HaruFont::getAscent — Récupère la montée verticale de la police
    • HaruFont::getCapHeight — Récupère la distance depuis la ligne de base des lettres en majuscule
    • HaruFont::getDescent — Récupère la descente verticale de la police
    • HaruFont::getEncodingName — Récupère le nom de l'encodage
    • HaruFont::getFontName — Récupère le nom de la police
    • HaruFont::getTextWidth — Récupère la largeur totale du texte, le nombre de caractères, le nombre de mots et le nombre d'espaces
    • HaruFont::getUnicodeWidth — Récupère la largeur d'un caractère dans une police
    • HaruFont::getXHeight — Récupère la distance depuis la ligne de base des lettres minuscule
    • HaruFont::measureText — Calcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée
  • HaruImage — Classe HaruImage
    • HaruImage::getBitsPerComponent — Récupère le nombre d'octets utilisés pour décrire chaque composant de la couleur de l'image
    • HaruImage::getColorSpace — Récupère le nom de l'espace de couleur de l'image
    • HaruImage::getHeight — Récupère la hauteur de l'image
    • HaruImage::getSize — Récupère la taille de l'image
    • HaruImage::getWidth — Récupère la largeur de l'image
    • HaruImage::setColorMask — Définit le masque de couleur de l'image
    • HaruImage::setMaskImage — Définit le masque de l'image
  • HaruEncoder — Classe HaruEncoder
    • HaruEncoder::getByteType — Récupère le type d'octets dans le texte
    • HaruEncoder::getType — Récupère le type de l'encodeur
    • HaruEncoder::getUnicode — Convertit un caractère en unicode
    • HaruEncoder::getWritingMode — Récupère le mode d'écriture de l'encodeur
  • HaruOutline — Classe HaruOutline
    • HaruOutline::setDestination — Définit la destination pour le contour
    • HaruOutline::setOpened — Définit le statut initial du contour
  • HaruAnnotation — Classe HaruAnnotation
    • HaruAnnotation::setBorderStyle — Définit le style de bordure d'une annotation
    • HaruAnnotation::setHighlightMode — Définit le mode de mise en évidence de l'annotation
    • HaruAnnotation::setIcon — Définit le style de l'icône de l'annotation
    • HaruAnnotation::setOpened — Définit le statut initial de l'annotation
  • HaruDestination — Classe HaruDestination
    • HaruDestination::setFit — Définit l'apparence de la page afin qu'elle tienne dans la fenêtre
    • HaruDestination::setFitB — Définit l'apparence de la page afin qu'elle tienne dans une boite de la page dans la fenêtre
    • HaruDestination::setFitBH — Définit l'apparence de la page afin qu'elle tienne en largeur dans la boite
    • HaruDestination::setFitBV — Définit l'apparence de la page afin qu'elle tienne en hauteur dans la boite
    • HaruDestination::setFitH — Définit l'apparence de la page afin qu'elle tienne en largeur dans la page
    • HaruDestination::setFitR — Définit l'apparence de la page afin qu'elle tienne dans le rectangle spécifié
    • HaruDestination::setFitV — Définit l'apparence de la page afin qu'elle tienne en hauteur dans la fenêtre
    • HaruDestination::setXYZ — Définit l'apparence d'une page


Introduction

L'extension PECL/Haru fournit une API pour la bibliothèque Haru Free PDF : c'est une bibliothèque libre, multiplate-forme, Open Source pour la génération de fichiers PDF.

La bibliothèque Haru (libHaru) peut être trouvée ici : » http://libharu.org.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.


Pré-requis

Vous devez d'abord installer libharu afin de pouvoir utiliser PECL/haru. PECL/haru est testé avec libharu 2.0.8, les anciennes versions pourraient ne pas fonctionner. PECL/haru nécessite PHP 5.1.3 ou supérieur.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/haru.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • haru
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


  • « Constantes pré-définies
  • Exemple d'utilisation de PECL/haru »
  • PHP Manual
  • haru
  • Exemples

Exemples

Sommaire

  • Exemple d'utilisation de PECL/haru


Exemple d'utilisation de PECL/haru

Exemple #1 "Hello world"

<?php

$doc = new HaruDoc;

$doc->setPageMode(HaruDoc::PAGE_MODE_USE_THUMBS); /* affiche les miniatures */

$page = $doc->addPage(); /* ajout d'une page au document */
$page->setSize(HaruPage::SIZE_A4, HaruPage::LANDSCAPE); /* définit la page en A4/paysage */

$courier = $doc->getFont("Courier-Bold"); /* nous allons utiliser cette police interne plus tard */

$page->setRGBStroke(0, 0, 0); /* définit les couleurs */
$page->setRGBFill(0.7, 0.8, 0.9);
$page->rectangle(150, 150, 550, 250); /* dessine un rectangle */

$page->fillStroke(); /* on le trace et on le remplit */

$page->setDash(array(3, 3), 0); /* définit le style "en tiret" sur cette page */
$page->setFontAndSize($courier, 60); /* définit la police et sa taille */

$page->setRGBStroke(0.5, 0.5, 0.1); /* définit la couleur de ligne */
$page->setRGBFill(1, 1, 1); /* définit la couleur de remplissage */

$page->setTextRenderingMode(HaruPage::FILL_THEN_STROKE); /* trace et remplit le texte */

/* affiche le texte */
$page->beginText();
$page->textOut(210, 270, "Hello World!");
$page->endText();

$doc->save("/tmp/test.pdf"); /* sauvegarde le document dans un fichier */

?>

Ouvrez le document dans votre lecteur PDF favori et vous devriez voir un rectangle légèrement bleuté contenant un "Hello World!" en blanc.


  • « Exemple d'utilisation de PECL/haru
  • Polices internes »
  • PHP Manual
  • haru
  • Polices internes et encodages

Polices internes et encodages

Sommaire

  • Polices internes
  • Encodages internes


Polices internes

Ces polices Base14 sont intégrées dans PDF et toutes les lecteurs PDF peuvent les afficher. L'utilisation de ces polices peut baisser la taille du fichier résultat et rendre le processus plus rapide, évitant le chargement de police externe. Cependant, ces polices ne supportent que le jeu de caractères latin1 et vous devez charger des polices externes si vous avez besoin d'utiliser d'autres jeux de caractères.

Les polices Base14 :

  • Courrier

  • Courrier-Gras

  • Courrier-Italique

  • Courrier-Gras et italique

  • Helvetica

  • Helvetica-Gras

  • Helvetica-Italique

  • Helvetica-Gras et italique

  • Times-Roman

  • Times-Gras

  • Times-Italique

  • Times-Gras et italique

  • Symbol

  • ZapfDingbats


Encodages internes

Encodages de jeu de caractères sur un seul octet
Nom | Description
StandardEncoding | L'encodage par défaut de PDF.
MacRomanEncoding | L'encodage par défaut de Mac OS.
WinAnsiEncoding | L'encodage par défaut de Windows.
FontSpecific | L'encodage des polices internes.
ISO8859-2 | Latin2 (Europe de l'est)
ISO8859-3 | Latin3 (Europe de l'ouest)
ISO8859-4 | Latin4 (Europe du nord)
ISO8859-5 | Cyrillique
ISO8859-6 | Arabe
ISO8859-7 | Grec
ISO8859-8 | Hébreu
ISO8859-9 | Latin5 (Turque)
ISO8859-10 | Latin6 (Nordique)
ISO8859-11 | Thaï
ISO8859-13 | Latin7 (Jante baltique)
ISO8859-14 | Latin8 (Celtique)
ISO8859-15 | Latin9
ISO8859-16 | Latin10
CP1250 | MS Windows Codepage 1250.
CP1251 | MS Windows Codepage 1251.
CP1252 | MS Windows Codepage 1252.
CP1253 | MS Windows Codepage 1253.
CP1254 | MS Windows Codepage 1254.
CP1255 | MS Windows Codepage 1255.
CP1256 | MS Windows Codepage 1256.
CP1257 | MS Windows Codepage 1257.
CP1258 | MS Windows Codepage 1258.
KOI8-R | Jeu de caractères cyrillique.
Encodages de jeu de caractères multi-octets
Nom | Description
GB-EUC-H | Encodage EUC-CN.
GB-EUC-V | Version verticale de GB-EUC-H.
GBK-EUC-H | Encodage Microsoft Code Page 936 (lfCharSet 0x86) GBK.
GBK-EUC-V | Version verticale de GBK-EUC-H.
ETen-B5-H | Jeu de caractères Microsoft Code Page 950 (lfCharSet 0x88) Big Five avec les extensions ETen.
ETen-B5-V | Version verticale de ETen-B5-H.
90ms-RKSJ-H | Microsoft Code Page 932, caractère JIS X 0208.
90ms-RKSJ-V | Version verticale de 90ms-RKSJ-V.
90msp-RKSJ-H | Microsoft Code Page 932, caractère JIS X 0208 (proportionnel).
EUC-H | Jeu de caractères JIS X 0208, encodage EUC-JP.
EUC-V | Version verticale de EUC-H.
KSC-EUC-H | Jeu de caractères KS X 1001:1992, encodage EUC-KR.
KSC-EUC-V | Version verticale de KSC-EUC-V.
KSCms-UHC-H | Microsoft Code Page 949 (lfCharSet 0x81), jeu de caractères KS X 1001:1992 et 8822 additionnel hangul, encodage UHC (Unified Hangul Code) (à largeur fixe).
KSCms-UHC-HW-H | Microsoft Code Page 949 (lfCharSet 0x81), jeu de caractères KS X 1001:1992 et 8822 additionnel hangul, encodage UHC (Unified Hangul Code) (à largeur fixe).
KSCms-UHC-HW-V | Version verticale de KSCms-UHC-HW-H.


Classe HaruException

(PECL haru >= 0.0.1)

Introduction

Classe Haru PDF Exception.

Synopsis de la classe

HaruException extends Exception {
/* Inherits */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Classe HaruDoc

(PECL haru >= 0.0.1)

Introduction

Classe Haru PDF Document.

Synopsis de la classe

HaruDoc {
/* Méthodes */
object addPage ( void )
bool addPageLabel ( int $first_page , int $style , int $first_num [, string $prefix = "" ] )
__construct ( void )
object createOutline ( string $title [, object $parent_outline [, object $encoder ]] )
object getCurrentEncoder ( void )
object getCurrentPage ( void )
object getEncoder ( string $encoding )
object getFont ( string $fontname [, string $encoding ] )
string getInfoAttr ( int $type )
int getPageLayout ( void )
int getPageMode ( void )
int getStreamSize ( void )
object insertPage ( object $page )
object loadJPEG ( string $filename )
object loadPNG ( string $filename [, bool $deferred = false ] )
object loadRaw ( string $filename , int $width , int $height , int $color_space )
string loadTTC ( string $fontfile , int $index [, bool $embed = false ] )
string loadTTF ( string $fontfile [, bool $embed = false ] )
string loadType1 ( string $afmfile [, string $pfmfile ] )
bool output ( void )
string readFromStream ( int $bytes )
bool resetError ( void )
bool resetStream ( void )
bool save ( string $file )
bool saveToStream ( void )
bool setCompressionMode ( int $mode )
bool setCurrentEncoder ( string $encoding )
bool setEncryptionMode ( int $mode [, int $key_len = 5 ] )
bool setInfoAttr ( int $type , string $info )
bool setInfoDateAttr ( int $type , int $year , int $month , int $day , int $hour , int $min , int $sec , string $ind , int $off_hour , int $off_min )
bool setOpenAction ( object $destination )
bool setPageLayout ( int $layout )
bool setPageMode ( int $mode )
bool setPagesConfiguration ( int $page_per_pages )
bool setPassword ( string $owner_password , string $user_password )
bool setPermission ( int $permission )
bool useCNSEncodings ( void )
bool useCNSFonts ( void )
bool useCNTEncodings ( void )
bool useCNTFonts ( void )
bool useJPEncodings ( void )
bool useJPFonts ( void )
bool useKREncodings ( void )
bool useKRFonts ( void )
}

Constantes pré-définies

Type | Nom | Description
int | HaruDoc::CS_DEVICE_GRAY |
int | HaruDoc::CS_DEVICE_RGB |
int | HaruDoc::CS_DEVICE_CMYK |
int | HaruDoc::CS_CAL_GRAY |
int | HaruDoc::CS_CAL_RGB |
int | HaruDoc::CS_LAB |
int | HaruDoc::CS_ICC_BASED |
int | HaruDoc::CS_SEPARATION |
int | HaruDoc::CS_DEVICE_N |
int | HaruDoc::CS_INDEXED |
int | HaruDoc::CS_PATTERN |
int | HaruDoc::ENABLE_READ |
int | HaruDoc::ENABLE_PRINT |
int | HaruDoc::ENABLE_EDIT_ALL |
int | HaruDoc::ENABLE_COPY |
int | HaruDoc::ENABLE_EDIT |
int | HaruDoc::ENCRYPT_R2 |
int | HaruDoc::ENCRYPT_R3 |
int | HaruDoc::INFO_AUTHOR |
int | HaruDoc::INFO_CREATOR |
int | HaruDoc::INFO_TITLE |
int | HaruDoc::INFO_SUBJECT |
int | HaruDoc::INFO_KEYWORDS |
int | HaruDoc::INFO_CREATION_DATE |
int | HaruDoc::INFO_MOD_DATE |
int | HaruDoc::COMP_NONE |
int | HaruDoc::COMP_TEXT |
int | HaruDoc::COMP_IMAGE |
int | HaruDoc::COMP_METADATA |
int | HaruDoc::COMP_ALL |
int | HaruDoc::PAGE_LAYOUT_SINGLE |
int | HaruDoc::PAGE_LAYOUT_ONE_COLUMN |
int | HaruDoc::PAGE_LAYOUT_TWO_COLUMN_LEFT |
int | HaruDoc::PAGE_LAYOUT_TWO_COLUMN_RIGHT |
int | HaruDoc::PAGE_MODE_USE_NONE |
int | HaruDoc::PAGE_MODE_USE_OUTLINE |
int | HaruDoc::PAGE_MODE_USE_THUMBS |
int | HaruDoc::PAGE_MODE_FULL_SCREEN |

Sommaire

  • HaruDoc::addPage — Ajoute une nouvelle page au document
  • HaruDoc::addPageLabel — Définit le style de numérotation d'une série de pages
  • HaruDoc::__construct — Construit un nouvel objet HaruDoc
  • HaruDoc::createOutline — Crée une instance HaruOutline
  • HaruDoc::getCurrentEncoder — Récupère l'instance HaruEncoder actuellement utilisée dans le document
  • HaruDoc::getCurrentPage — Retourne la page courante du document
  • HaruDoc::getEncoder — Récupère l'instance HaruEncoder de l'encodage spécifié
  • HaruDoc::getFont — Récupère une instance HaruFont
  • HaruDoc::getInfoAttr — Récupère la valeur courante d'un attribut de document spécifié
  • HaruDoc::getPageLayout — Récupère la disposition courante de la page
  • HaruDoc::getPageMode — Récupère le mode courant de la page
  • HaruDoc::getStreamSize — Récupère la taille du flux temporaire
  • HaruDoc::insertPage — Insère une nouvelle page juste avant la page spécifiée
  • HaruDoc::loadJPEG — Charge une image JPEG
  • HaruDoc::loadPNG — Charge une image PNG
  • HaruDoc::loadRaw — Charge une image RAW
  • HaruDoc::loadTTC — Charge la police avec l'index spécifié depuis le fichier TTC
  • HaruDoc::loadTTF — Charge un fichier de police TTF
  • HaruDoc::loadType1 — Charge la police Type1
  • HaruDoc::output — Écrit les données du document dans un buffer de sortie
  • HaruDoc::readFromStream — Lit les données depuis le flux temporaire
  • HaruDoc::resetError — Réinitialise le statut d'erreur du gestionnaire de document
  • HaruDoc::resetStream — Revient au début du flux temporaire
  • HaruDoc::save — Sauvegarde le document dans le fichier spécifié
  • HaruDoc::saveToStream — Sauvegarde le document dans un flux temporaire
  • HaruDoc::setCompressionMode — Définit le mode de compression pour le document
  • HaruDoc::setCurrentEncoder — Définit l'encodeur courant pour le document
  • HaruDoc::setEncryptionMode — Définit le mode de chiffrement pour le document
  • HaruDoc::setInfoAttr — Définit l'attribut d'information du document
  • HaruDoc::setInfoDateAttr — Définit les attributs d'informations de date et d'heure pour le document
  • HaruDoc::setOpenAction — Définit quelle page est affichée lors de l'ouverture du document
  • HaruDoc::setPageLayout — Définit la façon dont la page doit être affichée
  • HaruDoc::setPageMode — Définit la façon dont le document doit être affiché
  • HaruDoc::setPagesConfiguration — Définit le nombre de pages par jeu de pages
  • HaruDoc::setPassword — Définit les mots de passe de l'utilisateur et du propriétaire pour le document
  • HaruDoc::setPermission — Définit les permissions du document
  • HaruDoc::useCNSEncodings — Active l'encodage chinois simplifié
  • HaruDoc::useCNSFonts — Active les polices chinoises simplifiées internes
  • HaruDoc::useCNTEncodings — Active l'encodage chinois traditionnel
  • HaruDoc::useCNTFonts — Active les polices chinoises traditionnelles internes
  • HaruDoc::useJPEncodings — Active l'encodage japonais
  • HaruDoc::useJPFonts — Active les polices japonaises internes
  • HaruDoc::useKREncodings — Active l'encodage coréen
  • HaruDoc::useKRFonts — Active les polices coréennes internes


Ajoute une nouvelle page au document

  • « HaruDoc
  • HaruDoc::addPageLabel »
  • PHP Manual
  • HaruDoc
  • Ajoute une nouvelle page au document

HaruDoc::addPage

(PECL haru >= 0.0.1)

HaruDoc::addPage — Ajoute une nouvelle page au document

Description

object HaruDoc::addPage ( void )

Ajoute une nouvelle page au document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruPage.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::insertPage() - Insère une nouvelle page juste avant la page spécifiée


Définit le style de numérotation d'une série de pages

  • « HaruDoc::addPage
  • HaruDoc::__construct »
  • PHP Manual
  • HaruDoc
  • Définit le style de numérotation d'une série de pages

HaruDoc::addPageLabel

(PECL haru >= 0.0.1)

HaruDoc::addPageLabel — Définit le style de numérotation d'une série de pages

Description

bool HaruDoc::addPageLabel ( int $first_page , int $style , int $first_num [, string $prefix = "" ] )

Définit le style de numérotation d'une série de pages spécifiées.

Liste de paramètres

first_page

La première page de l'intervalle.

style

Le style de numérotation. Les valeurs suivantes sont autorisées :

  • HaruPage::NUM_STYLE_DECIMAL - le libellé de la page est affiché en utilisant des nombres décimaux.
  • HaruPage::NUM_STYLE_UPPER_ROMAN - le libellé de la page est affiché en utilisant des nombres romains en majuscule.
  • HaruPage::NUM_STYLE_LOWER_ROMAN - le libellé de la page est affiché en utilisant des nombres romains en minuscule.
  • HaruPage::NUM_STYLE_UPPER_LETTER - le libellé de la page est affiché en lettres majuscules (de A à Z).
  • HaruPage::NUM_STYLE_LOWER_LETTERS - le libellé de la page est affiché en lettres minuscules (de a à z).

first_num

Le numéro de la première page de l'intervalle.

prefix

Le préfixe pour le libellé de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Construit un nouvel objet HaruDoc

  • « HaruDoc::addPageLabel
  • HaruDoc::createOutline »
  • PHP Manual
  • HaruDoc
  • Construit un nouvel objet HaruDoc

HaruDoc::__construct

(PECL haru >= 0.0.1)

HaruDoc::__construct — Construit un nouvel objet HaruDoc

Description

HaruDoc::__construct ( void )

Construit un nouvel object HaruDoc.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Crée une instance HaruOutline

  • « HaruDoc::__construct
  • HaruDoc::getCurrentEncoder »
  • PHP Manual
  • HaruDoc
  • Crée une instance HaruOutline

HaruDoc::createOutline

(PECL haru >= 0.0.1)

HaruDoc::createOutline — Crée une instance HaruOutline

Description

object HaruDoc::createOutline ( string $title [, object $parent_outline [, object $encoder ]] )

Crée une nouvelle instance HaruOutline.

Liste de paramètres

title

Le titre de l'objet du nouveau contour.

parent_outline

Une instance valide de HaruOutline ou NULL.

encoder

Une instance valide HaruEncoder ou NULL.

Valeurs de retour

Retourne une nouvelle instance HaruOutline.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère l'instance HaruEncoder actuellement utilisée dans le document

  • « HaruDoc::createOutline
  • HaruDoc::getCurrentPage »
  • PHP Manual
  • HaruDoc
  • Récupère l'instance HaruEncoder actuellement utilisée dans le document

HaruDoc::getCurrentEncoder

(PECL haru >= 0.0.1)

HaruDoc::getCurrentEncoder — Récupère l'instance HaruEncoder actuellement utilisée dans le document

Description

object HaruDoc::getCurrentEncoder ( void )

Récupère l'instance HaruEncoder actuellement utilisée dans le document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'instance HaruEncoder actuellement utilisée dans le document, ou FALSE si l'encodeur n'est pas défini.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::setCurrentEncoder() - Définit l'encodeur courant pour le document


Retourne la page courante du document

  • « HaruDoc::getCurrentEncoder
  • HaruDoc::getEncoder »
  • PHP Manual
  • HaruDoc
  • Retourne la page courante du document

HaruDoc::getCurrentPage

(PECL haru >= 0.0.1)

HaruDoc::getCurrentPage — Retourne la page courante du document

Description

object HaruDoc::getCurrentPage ( void )

Récupère la page courante du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'instance HaruPage en cas de succès, ou FALSE s'il n'y a actuellement pas de page courante.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère l'instance HaruEncoder de l'encodage spécifié

  • « HaruDoc::getCurrentPage
  • HaruDoc::getFont »
  • PHP Manual
  • HaruDoc
  • Récupère l'instance HaruEncoder de l'encodage spécifié

HaruDoc::getEncoder

(PECL haru >= 0.0.1)

HaruDoc::getEncoder — Récupère l'instance HaruEncoder de l'encodage spécifié

Description

object HaruDoc::getEncoder ( string $encoding )

Récupère l'instance HaruEncoder de l'encodage spécifié.

Liste de paramètres

encoding

Le nom de l'encodage. Voir les encodages internes pour la liste des valeurs autorisées.

Valeurs de retour

Retourne l'instance HaruEncoder de l'encodage spécifié.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::setCurrentEncoder() - Définit l'encodeur courant pour le document
  • HaruDoc::getCurrentEncoder() - Récupère l'instance HaruEncoder actuellement utilisée dans le document


Récupère une instance HaruFont

  • « HaruDoc::getEncoder
  • HaruDoc::getInfoAttr »
  • PHP Manual
  • HaruDoc
  • Récupère une instance HaruFont

HaruDoc::getFont

(PECL haru >= 0.0.1)

HaruDoc::getFont — Récupère une instance HaruFont

Description

object HaruDoc::getFont ( string $fontname [, string $encoding ] )

Récupère une instance HaruFont.

Liste de paramètres

fontname

Le nom de la police. Voir les polices internes pour une liste des polices internes. Vous pouvez également utiliser le nom d'une police chargée via HaruDoc::loadTTF(), HaruDoc::loadTTC() et HaruDoc::loadType1().

encoding

L'encodage à utiliser. Voir les encodages internes pour une liste des encodages supportés.

Valeurs de retour

Retourne une instance HaruFont avec le nom de police fontname et l'encodage encoding.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setFontAndSize() - Définit la police et sa taille pour la page
  • HaruPage::getCurrentFont() - Récupère la police actuellement utilisée


Récupère la valeur courante d'un attribut de document spécifié

  • « HaruDoc::getFont
  • HaruDoc::getPageLayout »
  • PHP Manual
  • HaruDoc
  • Récupère la valeur courante d'un attribut de document spécifié

HaruDoc::getInfoAttr

(PECL haru >= 0.0.1)

HaruDoc::getInfoAttr — Récupère la valeur courante d'un attribut de document spécifié

Description

string HaruDoc::getInfoAttr ( int $type )

Récupère la valeur courante d'un attribut de document spécifié.

Liste de paramètres

type

Le type de l'attribut. Les valeurs suivantes sont disponibles :

  • HaruDoc::INFO_AUTHOR
  • HaruDoc::INFO_CREATOR
  • HaruDoc::INFO_TITLE
  • HaruDoc::INFO_SUBJECT
  • HaruDoc::INFO_KEYWORDS
  • HaruDoc::INFO_CREATION_DATE
  • HaruDoc::INFO_MOD_DATE

Valeurs de retour

Retourne la valeur de l'attribut de document spécifié.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::setInfoAttr() - Définit l'attribut d'information du document
  • HaruDoc::setInfoDateAttr() - Définit les attributs d'informations de date et d'heure pour le document


Récupère la disposition courante de la page

  • « HaruDoc::getInfoAttr
  • HaruDoc::getPageMode »
  • PHP Manual
  • HaruDoc
  • Récupère la disposition courante de la page

HaruDoc::getPageLayout

(PECL haru >= 0.0.1)

HaruDoc::getPageLayout — Récupère la disposition courante de la page

Description

int HaruDoc::getPageLayout ( void )

Récupère la disposition courante de la page. Voir HaruDoc::setPageLayout() pour la liste des valeurs possibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la disposition courante de la page définie dans le document ou FALSE si la disposition de la page n'a pas été définie. Voir HaruDoc::setPageLayout() pour une liste des valeurs possibles.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::setPageLayout() - Définit la façon dont la page doit être affichée


Récupère le mode courant de la page

  • « HaruDoc::getPageLayout
  • HaruDoc::getStreamSize »
  • PHP Manual
  • HaruDoc
  • Récupère le mode courant de la page

HaruDoc::getPageMode

(PECL haru >= 0.0.1)

HaruDoc::getPageMode — Récupère le mode courant de la page

Description

int HaruDoc::getPageMode ( void )

Récupère le mode courant de la page. Voir HaruDoc::setPageMode() pour une liste des valeurs possibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le mode actuellement défini pour la page d'un document. Voir HaruDoc::setPageMode() pour une liste de valeurs possibles.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::setPageMode() - Définit la façon dont le document doit être affiché


Récupère la taille du flux temporaire

  • « HaruDoc::getPageMode
  • HaruDoc::insertPage »
  • PHP Manual
  • HaruDoc
  • Récupère la taille du flux temporaire

HaruDoc::getStreamSize

(PECL haru >= 0.0.1)

HaruDoc::getStreamSize — Récupère la taille du flux temporaire

Description

int HaruDoc::getStreamSize ( void )

Récupère la taille du flux temporaire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille des données dans le flux temporaire du document. La taille vaut zéro si le document n'a pas été sauvegardé dans le flux temporaire.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::saveToStream() - Sauvegarde le document dans un flux temporaire
  • HaruDoc::resetStream() - Revient au début du flux temporaire
  • HaruDoc::readFromStream() - Lit les données depuis le flux temporaire


Insère une nouvelle page juste avant la page spécifiée

  • « HaruDoc::getStreamSize
  • HaruDoc::loadJPEG »
  • PHP Manual
  • HaruDoc
  • Insère une nouvelle page juste avant la page spécifiée

HaruDoc::insertPage

(PECL haru >= 0.0.1)

HaruDoc::insertPage — Insère une nouvelle page juste avant la page spécifiée

Description

object HaruDoc::insertPage ( object $page )

Crée une nouvelle page et l'insère juste avant la page spécifiée.

Liste de paramètres

page

Une instance valide HaruPage.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruPage.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::addPage() - Ajoute une nouvelle page au document


Charge une image JPEG

  • « HaruDoc::insertPage
  • HaruDoc::loadPNG »
  • PHP Manual
  • HaruDoc
  • Charge une image JPEG

HaruDoc::loadJPEG

(PECL haru >= 0.0.1)

HaruDoc::loadJPEG — Charge une image JPEG

Description

object HaruDoc::loadJPEG ( string $filename )

Charge l'image JPEG spécifiée.

Liste de paramètres

filename

Un fichier image JPEG valide.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruImage.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::loadPNG() - Charge une image PNG
  • HaruDoc::loadRAW() - Charge une image RAW


Charge une image PNG

  • « HaruDoc::loadJPEG
  • HaruDoc::loadRaw »
  • PHP Manual
  • HaruDoc
  • Charge une image PNG

HaruDoc::loadPNG

(PECL haru >= 0.0.1)

HaruDoc::loadPNG — Charge une image PNG

Description

object HaruDoc::loadPNG ( string $filename [, bool $deferred = false ] )

Charge une image PNG.

Libharu peut être construite sans le support libpng et, dans ce cas, chaque appel à cette fonction résultera en l'envoi d'une exception.

Liste de paramètres

filename

Le nom du fichier image PNG.

deferred

Ne pas charger les données immédiatement. Vous pouvez définir le paramètre deferred à TRUE pour déferrer les données chargées et, dans ce cas, uniquement la taille et la couleur sont chargées immédiatement.

Valeurs de retour

Retourne une instance de la classe HaruImage.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::loadJPEG() - Charge une image JPEG
  • HaruDoc::loadRAW() - Charge une image RAW


Charge une image RAW

  • « HaruDoc::loadPNG
  • HaruDoc::loadTTC »
  • PHP Manual
  • HaruDoc
  • Charge une image RAW

HaruDoc::loadRaw

(PECL haru >= 0.0.1)

HaruDoc::loadRaw — Charge une image RAW

Description

object HaruDoc::loadRaw ( string $filename , int $width , int $height , int $color_space )

Charge une image RAW.

Liste de paramètres

filename

Le nom du fichier image RAW.

width

La largeur de l'image.

height

La hauteur de l'image.

color_space

L'espace de couleur de l'image. Peut être une des valeurs suivantes :

  • HaruDoc::CS_DEVICE_GRAY
  • HaruDoc::CS_DEVICE_RGB
  • HaruDoc::CS_DEVICE_CMYK

Valeurs de retour

Retourne une instance de la classe HaruImage.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::loadJPEG() - Charge une image JPEG
  • HaruDoc::loadPNG() - Charge une image PNG


Charge la police avec l'index spécifié depuis le fichier TTC

  • « HaruDoc::loadRaw
  • HaruDoc::loadTTF »
  • PHP Manual
  • HaruDoc
  • Charge la police avec l'index spécifié depuis le fichier TTC

HaruDoc::loadTTC

(PECL haru >= 0.0.1)

HaruDoc::loadTTC — Charge la police avec l'index spécifié depuis le fichier TTC

Description

string HaruDoc::loadTTC ( string $fontfile , int $index [, bool $embed = false ] )

Charge la police TrueType avec l'index spécifié depuis le fichier de collection TrueType.

Liste de paramètres

fontfile

Le fichier de collection TrueType.

index

L'index de la police dans le fichier de collection.

embed

Lorsque défini à TRUE, les données glyphe seront intégrées dans le fichier PDF, sinon, uniquement la matrice des données sera incluse.

Valeurs de retour

Retourne le nom de la police chargée en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::loadTTF() - Charge un fichier de police TTF
  • HaruDoc::loadType1() - Charge la police Type1


Charge un fichier de police TTF

  • « HaruDoc::loadTTC
  • HaruDoc::loadType1 »
  • PHP Manual
  • HaruDoc
  • Charge un fichier de police TTF

HaruDoc::loadTTF

(PECL haru >= 0.0.1)

HaruDoc::loadTTF — Charge un fichier de police TTF

Description

string HaruDoc::loadTTF ( string $fontfile [, bool $embed = false ] )

Charge le fichier TTF fourni et (optionnellement), l'intègre aux données dans le document.

Liste de paramètres

fontfile

Le fichier TTF à charger.

embed

Lorsque défini à TRUE, les données glyphe de la police seront intégrées dans le fichier PDF, sinon, uniquement la matrice des données sera incluse.

Valeurs de retour

Retourne le nom de la police chargée en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::loadTTC() - Charge la police avec l'index spécifié depuis le fichier TTC
  • HaruDoc::loadType1() - Charge la police Type1


Charge la police Type1

  • « HaruDoc::loadTTF
  • HaruDoc::output »
  • PHP Manual
  • HaruDoc
  • Charge la police Type1

HaruDoc::loadType1

(PECL haru >= 0.0.1)

HaruDoc::loadType1 — Charge la police Type1

Description

string HaruDoc::loadType1 ( string $afmfile [, string $pfmfile ] )

Charge la police Type1 depuis le fichier fourni et l'enregistre dans le document PDF.

Liste de paramètres

afmfile

Chemin vers un fichier AFM.

pfmfile

Chemin vers un fichier PFA/PFB, optionnel. S'il n'est pas défini, les données glyphe de la police seront intégrées dans le document PDF.

Valeurs de retour

Retourne le nom de la police chargée, en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::loadTTC() - Charge la police avec l'index spécifié depuis le fichier TTC
  • HaruDoc::loadTTF() - Charge un fichier de police TTF


Écrit les données du document dans un buffer de sortie

  • « HaruDoc::loadType1
  • HaruDoc::readFromStream »
  • PHP Manual
  • HaruDoc
  • Écrit les données du document dans un buffer de sortie

HaruDoc::output

(PECL haru >= 0.0.1)

HaruDoc::output — Écrit les données du document dans un buffer de sortie

Description

bool HaruDoc::output ( void )

Écrit les données du document dans la sortie standard.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::save() - Sauvegarde le document dans le fichier spécifié


Lit les données depuis le flux temporaire

  • « HaruDoc::output
  • HaruDoc::resetError »
  • PHP Manual
  • HaruDoc
  • Lit les données depuis le flux temporaire

HaruDoc::readFromStream

(PECL haru >= 0.0.1)

HaruDoc::readFromStream — Lit les données depuis le flux temporaire

Description

string HaruDoc::readFromStream ( int $bytes )

Lit les données depuis le flux temporaire.

Liste de paramètres

bytes

Le paramètre bytes spécifie le nombre d'octets à lire, même si le flux peut contenir moins d'octets que désirés.

Valeurs de retour

Retourne les données depuis le flux temporaire.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::saveToStream() - Sauvegarde le document dans un flux temporaire
  • HaruDoc::resetStream() - Revient au début du flux temporaire
  • HaruDoc::getStreamSize() - Récupère la taille du flux temporaire


Réinitialise le statut d'erreur du gestionnaire de document

  • « HaruDoc::readFromStream
  • HaruDoc::resetStream »
  • PHP Manual
  • HaruDoc
  • Réinitialise le statut d'erreur du gestionnaire de document

HaruDoc::resetError

(PECL haru >= 0.0.1)

HaruDoc::resetError — Réinitialise le statut d'erreur du gestionnaire de document

Description

bool HaruDoc::resetError ( void )

Une fois qu'un code erreur est défini, la plupart des opérations, incluant les fonctions I/O, ne peuvent être exécutées. Dans ce cas, si vous voulez continuer une fois que l'erreur a été corrigée, vous devez invoquer cette fonction afin de réinitialiser le statut de l'erreur du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Réussi toujours et retourne TRUE.


Revient au début du flux temporaire

  • « HaruDoc::resetError
  • HaruDoc::save »
  • PHP Manual
  • HaruDoc
  • Revient au début du flux temporaire

HaruDoc::resetStream

(PECL haru >= 0.0.1)

HaruDoc::resetStream — Revient au début du flux temporaire

Description

bool HaruDoc::resetStream ( void )

Revient au début du flux temporaire du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::saveToStream() - Sauvegarde le document dans un flux temporaire
  • HaruDoc::getStreamSize() - Récupère la taille du flux temporaire
  • HaruDoc::readFromStream() - Lit les données depuis le flux temporaire


Sauvegarde le document dans le fichier spécifié

  • « HaruDoc::resetStream
  • HaruDoc::saveToStream »
  • PHP Manual
  • HaruDoc
  • Sauvegarde le document dans le fichier spécifié

HaruDoc::save

(PECL haru >= 0.0.1)

HaruDoc::save — Sauvegarde le document dans le fichier spécifié

Description

bool HaruDoc::save ( string $file )

Sauvegarde le document dans le fichier spécifié.

Liste de paramètres

file

Le fichier dans lequel le document sera sauvegardé.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::output() - Écrit les données du document dans un buffer de sortie


Sauvegarde le document dans un flux temporaire

  • « HaruDoc::save
  • HaruDoc::setCompressionMode »
  • PHP Manual
  • HaruDoc
  • Sauvegarde le document dans un flux temporaire

HaruDoc::saveToStream

(PECL haru >= 0.0.1)

HaruDoc::saveToStream — Sauvegarde le document dans un flux temporaire

Description

bool HaruDoc::saveToStream ( void )

Sauvegarde le document dans un flux temporaire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::resetStream() - Revient au début du flux temporaire
  • HaruDoc::getStreamSize() - Récupère la taille du flux temporaire
  • HaruDoc::readFromStream() - Lit les données depuis le flux temporaire


Définit le mode de compression pour le document

  • « HaruDoc::saveToStream
  • HaruDoc::setCurrentEncoder »
  • PHP Manual
  • HaruDoc
  • Définit le mode de compression pour le document

HaruDoc::setCompressionMode

(PECL haru >= 0.0.1)

HaruDoc::setCompressionMode — Définit le mode de compression pour le document

Description

bool HaruDoc::setCompressionMode ( int $mode )

Définit le mode de compression pour le document. Dans le cas où libharu n'a pas été compilé avec le support Zlib, cette fonction lancera toujours une exception HaruException.

Liste de paramètres

mode

Le mode de compression à utiliser. La valeur est une combinaison des drapeaux suivants :

  • HaruDoc::COMP_NONE - tout le contenu n'est pas compressé.
  • HaruDoc::COMP_TEXT - compression du texte.
  • HaruDoc::COMP_IMAGE - compression des images.
  • HaruDoc::COMP_METADATA - compression des autres données (polices, cmaps).
  • HaruDoc::COMP_ALL - compression de toutes les données.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit l'encodeur courant pour le document

  • « HaruDoc::setCompressionMode
  • HaruDoc::setEncryptionMode »
  • PHP Manual
  • HaruDoc
  • Définit l'encodeur courant pour le document

HaruDoc::setCurrentEncoder

(PECL haru >= 0.0.1)

HaruDoc::setCurrentEncoder — Définit l'encodeur courant pour le document

Description

bool HaruDoc::setCurrentEncoder ( string $encoding )

Définit l'encodeur actuellement utilisé pour le document.

Liste de paramètres

encoding

Le nom de l'encodage à utiliser. Voir les encodages internes pour une liste des valeurs autorisées.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit le mode de chiffrement pour le document

  • « HaruDoc::setCurrentEncoder
  • HaruDoc::setInfoAttr »
  • PHP Manual
  • HaruDoc
  • Définit le mode de chiffrement pour le document

HaruDoc::setEncryptionMode

(PECL haru >= 0.0.1)

HaruDoc::setEncryptionMode — Définit le mode de chiffrement pour le document

Description

bool HaruDoc::setEncryptionMode ( int $mode [, int $key_len = 5 ] )

Définit le mode de chiffrement pour le document. Le mode de chiffrement ne peut être défini avant de définir le mot de passe.

Liste de paramètres

mode

Le mode de chiffrement à utiliser. Peut être un parmi :

  • HaruDoc::ENCRYPT_R2 - utilise l'algorithme "revision2".
  • HaruDoc::ENCRYPT_R3 - utilise l'algorithme "revision3". L'utilisation de cette valeur définit la version de PDF à 1.4.

key_len

La longueur de la clé de chiffrement, en octets. Ce paramètre est optionnel et utilisé uniquement lorsque le mode est HaruDoc::ENCRYPT_R3. La valeur par défaut est 5 (40 octets).

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::setPassword() - Définit les mots de passe de l'utilisateur et du propriétaire pour le document
  • HaruDoc::setPermission() - Définit les permissions du document


Définit l'attribut d'information du document

  • « HaruDoc::setEncryptionMode
  • HaruDoc::setInfoDateAttr »
  • PHP Manual
  • HaruDoc
  • Définit l'attribut d'information du document

HaruDoc::setInfoAttr

(PECL haru >= 0.0.1)

HaruDoc::setInfoAttr — Définit l'attribut d'information du document

Description

bool HaruDoc::setInfoAttr ( int $type , string $info )

Définit un attribut d'information. Utilise l'encodage courant du document.

Liste de paramètres

type

Le type de l'attribut. Peut être un parmi :

  • HaruDoc::INFO_AUTHOR
  • HaruDoc::INFO_CREATOR
  • HaruDoc::INFO_TITLE
  • HaruDoc::INFO_SUBJECT
  • HaruDoc::INFO_KEYWORDS

info

La valeur de l'attribut.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::setInfoDateAttr() - Définit les attributs d'informations de date et d'heure pour le document


Définit les attributs d'informations de date et d'heure pour le document

  • « HaruDoc::setInfoAttr
  • HaruDoc::setOpenAction »
  • PHP Manual
  • HaruDoc
  • Définit les attributs d'informations de date et d'heure pour le document

HaruDoc::setInfoDateAttr

(PECL haru >= 0.0.1)

HaruDoc::setInfoDateAttr — Définit les attributs d'informations de date et d'heure pour le document

Description

bool HaruDoc::setInfoDateAttr ( int $type , int $year , int $month , int $day , int $hour , int $min , int $sec , string $ind , int $off_hour , int $off_min )

Définit les attributs d'informations de date et d'heure pour le document.

Liste de paramètres

type

Le type de l'attribut. Peut être un parmi :

  • HaruDoc::INFO_CREATION_DATE
  • HaruDoc::INFO_MOD_DATE

year

month

Compris entre 1 et 12.

day

Compris entre 1 et 31, 30, 29 ou 28 (différent pour chaque mois).

hour

Compris entre 0 et 23.

min

Compris entre 0 et 59.

sec

Compris entre 0 et 59.

ind

La relation sur la zone vers UTC, peut être "", " ", "+", "-" et "Z".

off_hour

Si ind n'est ni " ", ni "", les valeurs comprises entre 0 et 23 sont valides. Sinon, ce paramètre est ignoré.

off_min

Si ind n'est ni " ", ni "", les valeurs comprises entre 0 et 59 sont valides. Sinon, ce paramètre est ignoré.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::setInfoAttr() - Définit l'attribut d'information du document


Définit quelle page est affichée lors de l'ouverture du document

  • « HaruDoc::setInfoDateAttr
  • HaruDoc::setPageLayout »
  • PHP Manual
  • HaruDoc
  • Définit quelle page est affichée lors de l'ouverture du document

HaruDoc::setOpenAction

(PECL haru >= 0.0.1)

HaruDoc::setOpenAction — Définit quelle page est affichée lors de l'ouverture du document

Description

bool HaruDoc::setOpenAction ( object $destination )

Définit quelle page est affichée lors de l'ouverture du document.

Liste de paramètres

destination

Une instance valide de HaruDestination.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit la façon dont la page doit être affichée

  • « HaruDoc::setOpenAction
  • HaruDoc::setPageMode »
  • PHP Manual
  • HaruDoc
  • Définit la façon dont la page doit être affichée

HaruDoc::setPageLayout

(PECL haru >= 0.0.1)

HaruDoc::setPageLayout — Définit la façon dont la page doit être affichée

Description

bool HaruDoc::setPageLayout ( int $layout )

Définit la façon dont la page doit être affichée.

Liste de paramètres

layout

Les valeurs suivantes sont acceptées :

  • HaruDoc::PAGE_LAYOUT_SINGLE - une seule page est affichée.
  • HaruDoc::PAGE_LAYOUT_ONE_COLUMN - affiche les pages sur une seule colonne.
  • HaruDoc::PAGE_LAYOUT_TWO_COLUMN_LEFT - affiche les pages sur deux colonnes, la première page à gauche.
  • HaruDoc::PAGE_LAYOUT_TWO_COLUMN_RIGHT - affiche les pages sur deux colonnes, la première page à droite.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::getPageLayout() - Récupère la disposition courante de la page


Définit la façon dont le document doit être affiché

  • « HaruDoc::setPageLayout
  • HaruDoc::setPagesConfiguration »
  • PHP Manual
  • HaruDoc
  • Définit la façon dont le document doit être affiché

HaruDoc::setPageMode

(PECL haru >= 0.0.1)

HaruDoc::setPageMode — Définit la façon dont le document doit être affiché

Description

bool HaruDoc::setPageMode ( int $mode )

Définit la façon dont le document doit être affiché.

Liste de paramètres

mode

Les valeurs suivantes sont acceptées :

  • HaruDoc::PAGE_MODE_USE_NONE - affiche le document sans contour, ni miniature.
  • HaruDoc::PAGE_MODE_USE_OUTLINE - affiche le document sans contour.
  • HaruDoc::PAGE_MODE_USE_THUMBS - affiche le document avec le panneau des miniatures.
  • HaruDoc::PAGE_MODE_FULL_SCREEN - affiche le document en mode plein écran.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::getPageMode() - Récupère le mode courant de la page


Définit le nombre de pages par jeu de pages

  • « HaruDoc::setPageMode
  • HaruDoc::setPassword »
  • PHP Manual
  • HaruDoc
  • Définit le nombre de pages par jeu de pages

HaruDoc::setPagesConfiguration

(PECL haru >= 0.0.1)

HaruDoc::setPagesConfiguration — Définit le nombre de pages par jeu de pages

Description

bool HaruDoc::setPagesConfiguration ( int $page_per_pages )

Par défaut, le document a un objet page, en tant que racine pour toutes les pages. Tous les objets pages sont créés en tant que branche de l'objet racine. Un objet page peut contenir uniquement 8191, ainsi, le nombre maximal de pages par document est 8191. Mais vous pouvez modifier ce comportement en définissant le paramètre page_per_pages, et ainsi, l'objet page racine contient 8191 objets pages de plus (et non des pages), qui, chacun contient 8191 pages. Donc, le nombre maximal de pages d'un document devient 8191*page_per_pages.

Liste de paramètres

page_per_pages

Le nombre de pages qu'un objet page peut contenir.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit les mots de passe de l'utilisateur et du propriétaire pour le document

  • « HaruDoc::setPagesConfiguration
  • HaruDoc::setPermission »
  • PHP Manual
  • HaruDoc
  • Définit les mots de passe de l'utilisateur et du propriétaire pour le document

HaruDoc::setPassword

(PECL haru >= 0.0.1)

HaruDoc::setPassword — Définit les mots de passe de l'utilisateur et du propriétaire pour le document

Description

bool HaruDoc::setPassword ( string $owner_password , string $user_password )

Définit les mots de passe utilisateur et propriétaire pour le document. Le fait de définir des mots de passe rend le contenu du document crypté.

Liste de paramètres

owner_password

Le mot de passe du propriétaire, qui modifie les permissions du document. Un mot de passe vide n'est pas accepté. Le mot de passe du propriétaire ne peut être le même que le mot de passe de l'utilisateur.

user_password

Le mot de passe de l'utilisateur. Ne peut être vide.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::setEncryptionMode() - Définit le mode de chiffrement pour le document
  • HaruDoc::setPermission() - Définit les permissions du document


Définit les permissions du document

  • « HaruDoc::setPassword
  • HaruDoc::useCNSEncodings »
  • PHP Manual
  • HaruDoc
  • Définit les permissions du document

HaruDoc::setPermission

(PECL haru >= 0.0.1)

HaruDoc::setPermission — Définit les permissions du document

Description

bool HaruDoc::setPermission ( int $permission )

Définit les permissions pour le document.

Liste de paramètres

permission

Les valeurs sont une combinaison des drapeaux suivants :

  • HaruDoc::ENABLE_READ - l'utilisateur peut lire le document.
  • HaruDoc::ENABLE_PRINT - l'utilisateur peut imprimer le document.
  • HaruDoc::ENABLE_EDIT_ALL - l'utilisateur peut éditer le contenu du document autre que les annotations et les champs de formulaire.
  • HaruDoc::ENABLE_COPY - l'utilisateur peut copier le texte et les graphiques du document.
  • HaruDoc::ENABLE_EDIT - l'utilisateur peut ajouter et modifier les annotations et les champs de formulaire du document.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::setPassword() - Définit les mots de passe de l'utilisateur et du propriétaire pour le document
  • HaruDoc::setEncryptionMode() - Définit le mode de chiffrement pour le document


Active l'encodage chinois simplifié

  • « HaruDoc::setPermission
  • HaruDoc::useCNSFonts »
  • PHP Manual
  • HaruDoc
  • Active l'encodage chinois simplifié

HaruDoc::useCNSEncodings

(PECL haru >= 0.0.1)

HaruDoc::useCNSEncodings — Active l'encodage chinois simplifié

Description

bool HaruDoc::useCNSEncodings ( void )

Active l'encodage chinois simplifié.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::useCNSFonts() - Active les polices chinoises simplifiées internes


Active les polices chinoises simplifiées internes

  • « HaruDoc::useCNSEncodings
  • HaruDoc::useCNTEncodings »
  • PHP Manual
  • HaruDoc
  • Active les polices chinoises simplifiées internes

HaruDoc::useCNSFonts

(PECL haru >= 0.0.1)

HaruDoc::useCNSFonts — Active les polices chinoises simplifiées internes

Description

bool HaruDoc::useCNSFonts ( void )

Active les polices chinoises simplifiées internes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::useCNSEncodings() - Active l'encodage chinois simplifié


Active l'encodage chinois traditionnel

  • « HaruDoc::useCNSFonts
  • HaruDoc::useCNTFonts »
  • PHP Manual
  • HaruDoc
  • Active l'encodage chinois traditionnel

HaruDoc::useCNTEncodings

(PECL haru >= 0.0.1)

HaruDoc::useCNTEncodings — Active l'encodage chinois traditionnel

Description

bool HaruDoc::useCNTEncodings ( void )

Active l'encodage chinois traditionnel.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::useCNTFonts() - Active les polices chinoises traditionnelles internes


Active les polices chinoises traditionnelles internes

  • « HaruDoc::useCNTEncodings
  • HaruDoc::useJPEncodings »
  • PHP Manual
  • HaruDoc
  • Active les polices chinoises traditionnelles internes

HaruDoc::useCNTFonts

(PECL haru >= 0.0.1)

HaruDoc::useCNTFonts — Active les polices chinoises traditionnelles internes

Description

bool HaruDoc::useCNTFonts ( void )

Active les polices chinoises traditionnelles internes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::useCNTEncodings() - Active l'encodage chinois traditionnel


Active l'encodage japonais

  • « HaruDoc::useCNTFonts
  • HaruDoc::useJPFonts »
  • PHP Manual
  • HaruDoc
  • Active l'encodage japonais

HaruDoc::useJPEncodings

(PECL haru >= 0.0.1)

HaruDoc::useJPEncodings — Active l'encodage japonais

Description

bool HaruDoc::useJPEncodings ( void )

Active l'encodage japonais.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::useJPFonts() - Active les polices japonaises internes


Active les polices japonaises internes

  • « HaruDoc::useJPEncodings
  • HaruDoc::useKREncodings »
  • PHP Manual
  • HaruDoc
  • Active les polices japonaises internes

HaruDoc::useJPFonts

(PECL haru >= 0.0.1)

HaruDoc::useJPFonts — Active les polices japonaises internes

Description

bool HaruDoc::useJPFonts ( void )

Active les polices japonaises internes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::useJPEncodings() - Active l'encodage japonais


Active l'encodage coréen

  • « HaruDoc::useJPFonts
  • HaruDoc::useKRFonts »
  • PHP Manual
  • HaruDoc
  • Active l'encodage coréen

HaruDoc::useKREncodings

(PECL haru >= 0.0.1)

HaruDoc::useKREncodings — Active l'encodage coréen

Description

bool HaruDoc::useKREncodings ( void )

Active l'encodage coréen.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::useKRFonts() - Active les polices coréennes internes


Active les polices coréennes internes

  • « HaruDoc::useKREncodings
  • HaruPage »
  • PHP Manual
  • HaruDoc
  • Active les polices coréennes internes

HaruDoc::useKRFonts

(PECL haru >= 0.0.1)

HaruDoc::useKRFonts — Active les polices coréennes internes

Description

bool HaruDoc::useKRFonts ( void )

Active les polices coréennes internes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::useKREncodings() - Active l'encodage coréen


Classe HaruPage

(PECL haru >= 0.0.1)

Introduction

Classe Haru PDF Page.

Synopsis de la classe

HaruPage {
/* Méthodes */
bool arc ( float $x , float $y , float $ray , float $ang1 , float $ang2 )
bool beginText ( void )
bool circle ( float $x , float $y , float $ray )
bool closePath ( void )
bool concat ( float $a , float $b , float $c , float $d , float $x , float $y )
object createDestination ( void )
object createLinkAnnotation ( array $rectangle , object $destination )
object createTextAnnotation ( array $rectangle , string $text [, object $encoder ] )
object createURLAnnotation ( array $rectangle , string $url )
bool curveTo2 ( float $x2 , float $y2 , float $x3 , float $y3 )
bool curveTo3 ( float $x1 , float $y1 , float $x3 , float $y3 )
bool curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )
bool drawImage ( object $image , float $x , float $y , float $width , float $height )
bool ellipse ( float $x , float $y , float $xray , float $yray )
bool endPath ( void )
bool endText ( void )
bool eofill ( void )
bool eoFillStroke ([ bool $close_path = false ] )
bool fill ( void )
bool fillStroke ([ bool $close_path = false ] )
float getCharSpace ( void )
array getCMYKFill ( void )
array getCMYKStroke ( void )
object getCurrentFont ( void )
float getCurrentFontSize ( void )
array getCurrentPos ( void )
array getCurrentTextPos ( void )
array getDash ( void )
int getFillingColorSpace ( void )
float getFlatness ( void )
int getGMode ( void )
float getGrayFill ( void )
float getGrayStroke ( void )
float getHeight ( void )
float getHorizontalScaling ( void )
int getLineCap ( void )
int getLineJoin ( void )
float getLineWidth ( void )
float getMiterLimit ( void )
array getRGBFill ( void )
array getRGBStroke ( void )
int getStrokingColorSpace ( void )
float getTextLeading ( void )
array getTextMatrix ( void )
int getTextRenderingMode ( void )
float getTextRise ( void )
float getTextWidth ( string $text )
array getTransMatrix ( void )
float getWidth ( void )
float getWordSpace ( void )
bool lineTo ( float $x , float $y )
int measureText ( string $text , float $width [, bool $wordwrap = false ] )
bool moveTextPos ( float $x , float $y [, bool $set_leading = false ] )
bool moveTo ( float $x , float $y )
bool moveToNextLine ( void )
bool rectangle ( float $x , float $y , float $width , float $height )
bool setCharSpace ( float $char_space )
bool setCMYKFill ( float $c , float $m , float $y , float $k )
bool setCMYKStroke ( float $c , float $m , float $y , float $k )
bool setDash ( array $pattern , int $phase )
bool setFlatness ( float $flatness )
bool setFontAndSize ( object $font , float $size )
bool setGrayFill ( float $value )
bool setGrayStroke ( float $value )
bool setHeight ( float $height )
bool setHorizontalScaling ( float $scaling )
bool setLineCap ( int $cap )
bool setLineJoin ( int $join )
bool setLineWidth ( float $width )
bool setMiterLimit ( float $limit )
bool setRGBFill ( float $r , float $g , float $b )
bool setRGBStroke ( float $r , float $g , float $b )
bool setRotate ( int $angle )
bool setSize ( int $size , int $direction )
bool setSlideShow ( int $type , float $disp_time , float $trans_time )
bool setTextLeading ( float $text_leading )
bool setTextMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )
bool setTextRenderingMode ( int $mode )
bool setTextRise ( float $rise )
bool setWidth ( float $width )
bool setWordSpace ( float $word_space )
bool showText ( string $text )
bool showTextNextLine ( string $text [, float $word_space = 0 [, float $char_space = 0 ]] )
bool stroke ([ bool $close_path = false ] )
bool textOut ( float $x , float $y , string $text )
bool textRect ( float $left , float $top , float $right , float $bottom , string $text [, int $align = HaruPage::TALIGN_LEFT ] )
}

Constantes pré-définies

Type | Nom | Description
int | HaruPage::GMODE_PAGE_DESCRIPTION |
int | HaruPage::GMODE_TEXT_OBJECT |
int | HaruPage::GMODE_PATH_OBJECT |
int | HaruPage::GMODE_CLIPPING_PATH |
int | HaruPage::GMODE_SHADING |
int | HaruPage::GMODE_INLINE_IMAGE |
int | HaruPage::GMODE_EXTERNAL_OBJECT |
int | HaruPage::BUTT_END |
int | HaruPage::ROUND_END |
int | HaruPage::PROJECTING_SCUARE_END |
int | HaruPage::MITER_JOIN |
int | HaruPage::ROUND_JOIN |
int | HaruPage::BEVEL_JOIN |
int | HaruPage::FILL |
int | HaruPage::STROKE |
int | HaruPage::FILL_THEN_STROKE |
int | HaruPage::INVISIBLE |
int | HaruPage::FILL_CLIPPING |
int | HaruPage::STROKE_CLIPPING |
int | HaruPage::FILL_STROKE_CLIPPING |
int | HaruPage::CLIPPING |
int | HaruPage::TALIGN_LEFT |
int | HaruPage::TALIGN_RIGHT |
int | HaruPage::TALIGN_CENTER |
int | HaruPage::TALIGN_JUSTIFY |
int | HaruPage::SIZE_LETTER |
int | HaruPage::SIZE_LEGAL |
int | HaruPage::SIZE_A3 |
int | HaruPage::SIZE_A4 |
int | HaruPage::SIZE_A5 |
int | HaruPage::SIZE_B4 |
int | HaruPage::SIZE_B5 |
int | HaruPage::SIZE_EXECUTIVE |
int | HaruPage::SIZE_US4x6 |
int | HaruPage::SIZE_US4x8 |
int | HaruPage::SIZE_US5x7 |
int | HaruPage::SIZE_COMM10 |
int | HaruPage::PORTRAIT |
int | HaruPage::LANDSCAPE |
int | HaruPage::TS_WIPE_LIGHT |
int | HaruPage::TS_WIPE_UP |
int | HaruPage::TS_WIPE_LEFT |
int | HaruPage::TS_WIPE_DOWN |
int | HaruPage::TS_BARN_DOORS_HORIZONTAL_OUT |
int | HaruPage::TS_BARN_DOORS_HORIZONTAL_IN |
int | HaruPage::TS_BARN_DOORS_VERTICAL_OUT |
int | HaruPage::TS_BARN_DOORS_VERTICAL_IN |
int | HaruPage::TS_BOX_OUT |
int | HaruPage::TS_BOX_IN |
int | HaruPage::TS_BLINDS_HORIZONTAL |
int | HaruPage::TS_BLINDS_VERTICAL |
int | HaruPage::TS_DISSOLVE |
int | HaruPage::TS_GLITTER_RIGHT |
int | HaruPage::TS_GLITTER_DOWN |
int | HaruPage::TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT |
int | HaruPage::TS_REPLACE |
int | HaruPage::NUM_STYLE_DECIMAL |
int | HaruPage::NUM_STYLE_UPPER_ROMAN |
int | HaruPage::NUM_STYLE_LOWER_ROMAN |
int | HaruPage::NUM_STYLE_UPPER_LETTERS |
int | HaruPage::NUM_STYLE_LOWER_LETTERS |

Sommaire

  • HaruPage::arc — Ajoute un arc au chemin courant
  • HaruPage::beginText — Commence un objet texte et définit la position courante du texte à (0,0)
  • HaruPage::circle — Ajoute un cercle au chemin courant
  • HaruPage::closePath — Ajoute une ligne droite depuis le point courant jusqu'au point de départ du chemin
  • HaruPage::concat — Concatène la matrice de transformation courante et la matrice spécifiée
  • HaruPage::createDestination — Crée une nouvelle instance HaruDestination
  • HaruPage::createLinkAnnotation — Crée une nouvelle instance HaruAnnotation
  • HaruPage::createTextAnnotation — Crée une nouvelle instance HaruAnnotation
  • HaruPage::createURLAnnotation — Crée une nouvelle instance HaruAnnotation instance
  • HaruPage::curveTo2 — Ajoute une courbe de Bézier au chemin courant
  • HaruPage::curveTo3 — Ajoute une courbe de Bézier au chemin courant
  • HaruPage::curveTo — Ajoute une courbe de Bézier au chemin courant
  • HaruPage::drawImage — Affiche une image dans la page
  • HaruPage::ellipse — Ajoute une ellipse au chemin courant
  • HaruPage::endPath — Termine l'objet chemin courant sans effectuer d'opérations de remplissage et de peinture
  • HaruPage::endText — Termine l'objet texte courant
  • HaruPage::eofill — Remplit le chemin courant en utilisant la règle "even-odd"
  • HaruPage::eoFillStroke — Remplit le chemin courant en utilisant la règle "even-odd", puis, peint le chemin
  • HaruPage::fill — Remplit le chemin courant en utilisant des nombres différents de zéro
  • HaruPage::fillStroke — Remplit le chemin en utilisant des nombres différents de zéro, puis peint le chemin
  • HaruPage::getCharSpace — Récupère la valeur courante de l'espacement des caractères
  • HaruPage::getCMYKFill — Récupère la couleur de remplissage courante
  • HaruPage::getCMYKStroke — Récupère la couleur de remplissage courante
  • HaruPage::getCurrentFont — Récupère la police actuellement utilisée
  • HaruPage::getCurrentFontSize — Récupère la taille de la police courante
  • HaruPage::getCurrentPos — Récupère la position courante pour l'affichage
  • HaruPage::getCurrentTextPos — Récupère la position courante pour l'affichage du texte
  • HaruPage::getDash — Récupère le style de tiret courant
  • HaruPage::getFillingColorSpace — Récupère la couleur de remplissage
  • HaruPage::getFlatness — Récupère la planéité de la page
  • HaruPage::getGMode — Récupère le mode courant de graphique
  • HaruPage::getGrayFill — Récupère la couleur courante de remplissage
  • HaruPage::getGrayStroke — Récupère la couleur courante
  • HaruPage::getHeight — Récupère la hauteur de la page
  • HaruPage::getHorizontalScaling — Récupère la valeur courante de l'échelle horizontale
  • HaruPage::getLineCap — Récupère le style courant de fin de lignes
  • HaruPage::getLineJoin — Récupère le style de jointure de lignes
  • HaruPage::getLineWidth — Récupère la largeur courante de la ligne
  • HaruPage::getMiterLimit — Récupère la valeur de la limite de l'anglet
  • HaruPage::getRGBFill — Récupère la couleur courante de remplissage
  • HaruPage::getRGBStroke — Récupère la couleur de peinture courante
  • HaruPage::getStrokingColorSpace — Récupère la couleur de peinture de l'espace courant
  • HaruPage::getTextLeading — Récupère la valeur courante de l'espacement des lignes
  • HaruPage::getTextMatrix — Récupère la matrice de transformation courante du texte de la page
  • HaruPage::getTextRenderingMode — Récupère le mode de rendu courant du texte
  • HaruPage::getTextRise — Récupère la valeur de la levée du texte
  • HaruPage::getTextWidth — Récupère la largeur du texte en utilisant la taille de la police courante, l'espacement des caractères et l'espacement des mots
  • HaruPage::getTransMatrix — Récupère la matrice de transformation courante de la page
  • HaruPage::getWidth — Récupère la largeur de la page
  • HaruPage::getWordSpace — Récupère la valeur courante de l'espacement entre les mots
  • HaruPage::lineTo — Trace une ligne depuis le point courant vers le point spécifié
  • HaruPage::measureText — Calcule le longueur des caractères qui peuvent être inclus sur une ligne de largeur spécifiée
  • HaruPage::moveTextPos — Déplace la position du texte à une position donnée
  • HaruPage::moveTo — Définit le point de départ pour la nouvelle ligne
  • HaruPage::moveToNextLine — Déplace la position du texte au début de la prochaine ligne
  • HaruPage::rectangle — Ajoute un rectangle à la position courante
  • HaruPage::setCharSpace — Définit l'espacement des caractères pour la page
  • HaruPage::setCMYKFill — Définit la couleur de remplissage de la page
  • HaruPage::setCMYKStroke — Définit la couleur de remplissage de la page
  • HaruPage::setDash — Définit le style de tiret pour la page
  • HaruPage::setFlatness — Définit la planéité de la page
  • HaruPage::setFontAndSize — Définit la police et sa taille pour la page
  • HaruPage::setGrayFill — Définit la couleur de remplissage de la page
  • HaruPage::setGrayStroke — Définit la couleur de remplissage de la page
  • HaruPage::setHeight — Définit la hauteur de la page
  • HaruPage::setHorizontalScaling — Définit la graduation horizontale de la page
  • HaruPage::setLineCap — Définit la forme à utiliser à la fin des lignes
  • HaruPage::setLineJoin — Définit le style de jointure de ligne pour la page
  • HaruPage::setLineWidth — Définit la largeur de la ligne pour la page
  • HaruPage::setMiterLimit — Définit la valeur courante de la limite de l'anglet de la page
  • HaruPage::setRGBFill — Définit la couleur de remplissage pour la page
  • HaruPage::setRGBStroke — Définit la couleur de remplissage de la page
  • HaruPage::setRotate — Définit l'angle de rotation de la page
  • HaruPage::setSize — Définit la taille et la direction de la page
  • HaruPage::setSlideShow — Définit le style de transition pour la page
  • HaruPage::setTextLeading — Définit l'espacement entre les lignes du texte pour la page
  • HaruPage::setTextMatrix — Définit la matrice de transformation de texte courante de la page
  • HaruPage::setTextRenderingMode — Définit la matrice de transformation de texte courante de la page
  • HaruPage::setTextRise — Définit la valeur courante de la levée du texte
  • HaruPage::setWidth — Définit la largeur de la page
  • HaruPage::setWordSpace — Définit l'espacement entre les mots pour la page
  • HaruPage::showText — Affiche le texte à la position courante de la page
  • HaruPage::showTextNextLine — Déplace la position courante au début de la prochaine ligne et affiche le texte
  • HaruPage::stroke — Peint le chemin courant
  • HaruPage::textOut — Affiche le texte à la position spécifiée
  • HaruPage::textRect — Affiche le texte d'une région spécifique


Ajoute un arc au chemin courant

  • « HaruPage
  • HaruPage::beginText »
  • PHP Manual
  • HaruPage
  • Ajoute un arc au chemin courant

HaruPage::arc

(PECL haru >= 0.0.1)

HaruPage::arc — Ajoute un arc au chemin courant

Description

bool HaruPage::arc ( float $x , float $y , float $ray , float $ang1 , float $ang2 )

Ajoute un arc au chemin courant.

Liste de paramètres

x

Coordonnée horizontale du centre.

y

Coordonnée verticale du centre.

ray

Le rayon de l'arc.

ang1

L'angle de début.

ang2

L'angle de fin. Doit être supérieur à ang1.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Commence un objet texte et définit la position courante du texte à (0,0)

  • « HaruPage::arc
  • HaruPage::circle »
  • PHP Manual
  • HaruPage
  • Commence un objet texte et définit la position courante du texte à (0,0)

HaruPage::beginText

(PECL haru >= 0.0.1)

HaruPage::beginText — Commence un objet texte et définit la position courante du texte à (0,0)

Description

bool HaruPage::beginText ( void )

Commence un objet texte et définit la position courante du texte à (0,0).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Ajoute un cercle au chemin courant

  • « HaruPage::beginText
  • HaruPage::closePath »
  • PHP Manual
  • HaruPage
  • Ajoute un cercle au chemin courant

HaruPage::circle

(PECL haru >= 0.0.1)

HaruPage::circle — Ajoute un cercle au chemin courant

Description

bool HaruPage::circle ( float $x , float $y , float $ray )

Ajoute un cercle au chemin courant.

Liste de paramètres

x

Coordonnée horizontale du centre.

y

Coordonnée verticale du centre.

ray

Le rayon du cercle.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Ajoute une ligne droite depuis le point courant jusqu'au point de départ du chemin

  • « HaruPage::circle
  • HaruPage::concat »
  • PHP Manual
  • HaruPage
  • Ajoute une ligne droite depuis le point courant jusqu'au point de départ du chemin

HaruPage::closePath

(PECL haru >= 0.0.1)

HaruPage::closePath — Ajoute une ligne droite depuis le point courant jusqu'au point de départ du chemin

Description

bool HaruPage::closePath ( void )

Ajoute une ligne droite depuis le point courant jusqu'au point de départ du chemin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Concatène la matrice de transformation courante et la matrice spécifiée

  • « HaruPage::closePath
  • HaruPage::createDestination »
  • PHP Manual
  • HaruPage
  • Concatène la matrice de transformation courante et la matrice spécifiée

HaruPage::concat

(PECL haru >= 0.0.1)

HaruPage::concat — Concatène la matrice de transformation courante et la matrice spécifiée

Description

bool HaruPage::concat ( float $a , float $b , float $c , float $d , float $x , float $y )

Concatène la matrice de transformation courante et la matrice spécifiée

Liste de paramètres

a

b

c

d

x

y

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Crée une nouvelle instance HaruDestination

  • « HaruPage::concat
  • HaruPage::createLinkAnnotation »
  • PHP Manual
  • HaruPage
  • Crée une nouvelle instance HaruDestination

HaruPage::createDestination

(PECL haru >= 0.0.1)

HaruPage::createDestination — Crée une nouvelle instance HaruDestination

Description

object HaruPage::createDestination ( void )

Crée une nouvelle instance HaruDestination.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruDestination.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Crée une nouvelle instance HaruAnnotation

  • « HaruPage::createDestination
  • HaruPage::createTextAnnotation »
  • PHP Manual
  • HaruPage
  • Crée une nouvelle instance HaruAnnotation

HaruPage::createLinkAnnotation

(PECL haru >= 0.0.1)

HaruPage::createLinkAnnotation — Crée une nouvelle instance HaruAnnotation

Description

object HaruPage::createLinkAnnotation ( array $rectangle , object $destination )

Crée une nouvelle instance HaruAnnotation.

Liste de paramètres

rectangle

Un tableau contenant 4 coordonnées de la zone cliquable.

destination

Instance valide HaruDestination.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruAnnotation.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Crée une nouvelle instance HaruAnnotation

  • « HaruPage::createLinkAnnotation
  • HaruPage::createURLAnnotation »
  • PHP Manual
  • HaruPage
  • Crée une nouvelle instance HaruAnnotation

HaruPage::createTextAnnotation

(PECL haru >= 0.0.1)

HaruPage::createTextAnnotation — Crée une nouvelle instance HaruAnnotation

Description

object HaruPage::createTextAnnotation ( array $rectangle , string $text [, object $encoder ] )

Crée une nouvelle instance HaruAnnotation.

Liste de paramètres

rectangle

Un tableau contenant 4 coordonnées de la zone d'annotation.

text

Le texte à afficher.

encoder

Instance optionnelle HaruEncoder.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruAnnotation.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Crée une nouvelle instance HaruAnnotation instance

  • « HaruPage::createTextAnnotation
  • HaruPage::curveTo2 »
  • PHP Manual
  • HaruPage
  • Crée une nouvelle instance HaruAnnotation instance

HaruPage::createURLAnnotation

(PECL haru >= 0.0.1)

HaruPage::createURLAnnotation — Crée une nouvelle instance HaruAnnotation instance

Description

object HaruPage::createURLAnnotation ( array $rectangle , string $url )

Crée une nouvelle instance HaruAnnotation.

Liste de paramètres

rectangle

Un tableau contenant 4 coordonnées de zone cliquable.

url

L'URL à ouvrir.

Valeurs de retour

Retourne une nouvelle instance de la classe HaruAnnotation.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Ajoute une courbe de Bézier au chemin courant

  • « HaruPage::createURLAnnotation
  • HaruPage::curveTo3 »
  • PHP Manual
  • HaruPage
  • Ajoute une courbe de Bézier au chemin courant

HaruPage::curveTo2

(PECL haru >= 0.0.1)

HaruPage::curveTo2 — Ajoute une courbe de Bézier au chemin courant

Description

bool HaruPage::curveTo2 ( float $x2 , float $y2 , float $x3 , float $y3 )

Ajoute une courbe de Bézier au chemin courant. Le point courant et le point (x2, y2) sont utilisés comme points de contrôle pour la courbe de Bézier et le point courant est déplacé au point (x3, y3).

Liste de paramètres

x2

Un point de contrôle de la courbe de Bézier.

y2

Un point de contrôle de la courbe de Bézier.

x3

La position à laquelle le point courant est déplacé.

x3

La position à laquelle le point courant est déplacé.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Ajoute une courbe de Bézier au chemin courant

  • « HaruPage::curveTo2
  • HaruPage::curveTo »
  • PHP Manual
  • HaruPage
  • Ajoute une courbe de Bézier au chemin courant

HaruPage::curveTo3

(PECL haru >= 0.0.1)

HaruPage::curveTo3 — Ajoute une courbe de Bézier au chemin courant

Description

bool HaruPage::curveTo3 ( float $x1 , float $y1 , float $x3 , float $y3 )

Ajoute une courbe de Bézier au chemin courant. Le point (x1, y1) et le point (x3, y3) sont utilisés comme points de contrôle pour la courbe de Bézier et le point courant est déplacé au point (x3, y3).

Liste de paramètres

x1

Un point de contrôle de la courbe de Bézier.

y1

Un point de contrôle de la courbe de Bézier.

x3

La position à laquelle le point courant est déplacé.

x3

La position à laquelle le point courant est déplacé.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Ajoute une courbe de Bézier au chemin courant

  • « HaruPage::curveTo3
  • HaruPage::drawImage »
  • PHP Manual
  • HaruPage
  • Ajoute une courbe de Bézier au chemin courant

HaruPage::curveTo

(PECL haru >= 0.0.1)

HaruPage::curveTo — Ajoute une courbe de Bézier au chemin courant

Description

bool HaruPage::curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Ajoute une courbe de Bézier au chemin courant. Le point (x1, y1) et le point (x2, y2) sont utilisés comme points de contrôle pour la courbe de Bézier et le point courant est déplacé au point (x3, y3).

Liste de paramètres

x1

Un point de contrôle de la courbe de Bézier.

y1

Un point de contrôle de la courbe de Bézier.

x2

Un point de contrôle de la courbe de Bézier.

y2

Un point de contrôle de la courbe de Bézier.

x3

La position à laquelle le point courant est déplacé.

x3

La position à laquelle le point courant est déplacé.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Affiche une image dans la page

  • « HaruPage::curveTo
  • HaruPage::ellipse »
  • PHP Manual
  • HaruPage
  • Affiche une image dans la page

HaruPage::drawImage

(PECL haru >= 0.0.1)

HaruPage::drawImage — Affiche une image dans la page

Description

bool HaruPage::drawImage ( object $image , float $x , float $y , float $width , float $height )

Affiche une image dans la page.

Liste de paramètres

image

Une instance valide HaruImage.

x

La bordure gauche de la zone, où l'image est affichée.

y

La bordure basse de la zone, où l'image est affichée.

width

La largeur de la zone de l'image.

height

La hauteur de la zone de l'image.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Ajoute une ellipse au chemin courant

  • « HaruPage::drawImage
  • HaruPage::endPath »
  • PHP Manual
  • HaruPage
  • Ajoute une ellipse au chemin courant

HaruPage::ellipse

(PECL haru >= 0.0.1)

HaruPage::ellipse — Ajoute une ellipse au chemin courant

Description

bool HaruPage::ellipse ( float $x , float $y , float $xray , float $yray )

Ajoute une ellipse au chemin courant.

Liste de paramètres

x

Coordonnée horizontale du centre.

y

Coordonnée verticale du centre.

xray

Le rayon de l'ellipse dans la direction x.

yray

Le rayon de l'ellipse dans la direction y.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Termine l'objet chemin courant sans effectuer d'opérations de remplissage et de peinture

  • « HaruPage::ellipse
  • HaruPage::endText »
  • PHP Manual
  • HaruPage
  • Termine l'objet chemin courant sans effectuer d'opérations de remplissage et de peinture

HaruPage::endPath

(PECL haru >= 0.0.1)

HaruPage::endPath — Termine l'objet chemin courant sans effectuer d'opérations de remplissage et de peinture

Description

bool HaruPage::endPath ( void )

Termine l'objet chemin courant sans effectuer d'opérations de remplissage et de peinture.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Termine l'objet texte courant

  • « HaruPage::endPath
  • HaruPage::eofill »
  • PHP Manual
  • HaruPage
  • Termine l'objet texte courant

HaruPage::endText

(PECL haru >= 0.0.1)

HaruPage::endText — Termine l'objet texte courant

Description

bool HaruPage::endText ( void )

Finalise l'objet texte courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Remplit le chemin courant en utilisant la règle "even-odd"

  • « HaruPage::endText
  • HaruPage::eoFillStroke »
  • PHP Manual
  • HaruPage
  • Remplit le chemin courant en utilisant la règle "even-odd"

HaruPage::eofill

(PECL haru >= 0.0.1)

HaruPage::eofill — Remplit le chemin courant en utilisant la règle "even-odd"

Description

bool HaruPage::eofill ( void )

Remplit le chemin courant en utilisant la règle "even-odd".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Remplit le chemin courant en utilisant la règle "even-odd", puis, peint le chemin

  • « HaruPage::eofill
  • HaruPage::fill »
  • PHP Manual
  • HaruPage
  • Remplit le chemin courant en utilisant la règle "even-odd", puis, peint le chemin

HaruPage::eoFillStroke

(PECL haru >= 0.0.1)

HaruPage::eoFillStroke — Remplit le chemin courant en utilisant la règle "even-odd", puis, peint le chemin

Description

bool HaruPage::eoFillStroke ([ bool $close_path = false ] )

Remplit le chemin courant en utilisant la règle "even-odd", puis, peint le chemin.

Liste de paramètres

close_path

Paramètre optionnel. Lorsqu'il est défini à TRUE, la fonction clôt le chemin courant. Par défaut, vaut FALSE.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Remplit le chemin courant en utilisant des nombres différents de zéro

  • « HaruPage::eoFillStroke
  • HaruPage::fillStroke »
  • PHP Manual
  • HaruPage
  • Remplit le chemin courant en utilisant des nombres différents de zéro

HaruPage::fill

(PECL haru >= 0.0.1)

HaruPage::fill — Remplit le chemin courant en utilisant des nombres différents de zéro

Description

bool HaruPage::fill ( void )

Remplit le chemin courant en utilisant des nombres différents de zéro.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Remplit le chemin en utilisant des nombres différents de zéro, puis peint le chemin

  • « HaruPage::fill
  • HaruPage::getCharSpace »
  • PHP Manual
  • HaruPage
  • Remplit le chemin en utilisant des nombres différents de zéro, puis peint le chemin

HaruPage::fillStroke

(PECL haru >= 0.0.1)

HaruPage::fillStroke — Remplit le chemin en utilisant des nombres différents de zéro, puis peint le chemin

Description

bool HaruPage::fillStroke ([ bool $close_path = false ] )

Remplit le chemin en utilisant des nombres différents de zéro, puis peint le chemin.

Liste de paramètres

close_path

Paramètre optionnel. Lorsqu'il vaut TRUE, la fonction clôt le chemin courant. Par défaut, vaut FALSE.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la valeur courante de l'espacement des caractères

  • « HaruPage::fillStroke
  • HaruPage::getCMYKFill »
  • PHP Manual
  • HaruPage
  • Récupère la valeur courante de l'espacement des caractères

HaruPage::getCharSpace

(PECL haru >= 0.0.1)

HaruPage::getCharSpace — Récupère la valeur courante de l'espacement des caractères

Description

float HaruPage::getCharSpace ( void )

Retourne la valeur courante de l'espacement des caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur courante de l'espacement des caractères.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la couleur de remplissage courante

  • « HaruPage::getCharSpace
  • HaruPage::getCMYKStroke »
  • PHP Manual
  • HaruPage
  • Récupère la couleur de remplissage courante

HaruPage::getCMYKFill

(PECL haru >= 0.0.1)

HaruPage::getCMYKFill — Récupère la couleur de remplissage courante

Description

array HaruPage::getCMYKFill ( void )

Récupère la couleur de remplissage courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur de remplissage courante, sous la forme d'un tableau de quatre éléments ("c", "m", "y" et "k").

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la couleur de remplissage courante

  • « HaruPage::getCMYKFill
  • HaruPage::getCurrentFont »
  • PHP Manual
  • HaruPage
  • Récupère la couleur de remplissage courante

HaruPage::getCMYKStroke

(PECL haru >= 0.0.1)

HaruPage::getCMYKStroke — Récupère la couleur de remplissage courante

Description

array HaruPage::getCMYKStroke ( void )

Récupère la couleur de remplissage courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur de remplissage courante, sous la forme d'un tableau de quatre éléments ("c", "m", "y" et "k").

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la police actuellement utilisée

  • « HaruPage::getCMYKStroke
  • HaruPage::getCurrentFontSize »
  • PHP Manual
  • HaruPage
  • Récupère la police actuellement utilisée

HaruPage::getCurrentFont

(PECL haru >= 0.0.1)

HaruPage::getCurrentFont — Récupère la police actuellement utilisée

Description

object HaruPage::getCurrentFont ( void )

Récupère la police actuellement utilisée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la police actuellement utilisée, sous la forme d'une instance HaruFont.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la taille de la police courante

  • « HaruPage::getCurrentFont
  • HaruPage::getCurrentPos »
  • PHP Manual
  • HaruPage
  • Récupère la taille de la police courante

HaruPage::getCurrentFontSize

(PECL haru >= 0.0.1)

HaruPage::getCurrentFontSize — Récupère la taille de la police courante

Description

float HaruPage::getCurrentFontSize ( void )

Récupère la taille de la police courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille de la police courante.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la position courante pour l'affichage

  • « HaruPage::getCurrentFontSize
  • HaruPage::getCurrentTextPos »
  • PHP Manual
  • HaruPage
  • Récupère la position courante pour l'affichage

HaruPage::getCurrentPos

(PECL haru >= 0.0.1)

HaruPage::getCurrentPos — Récupère la position courante pour l'affichage

Description

array HaruPage::getCurrentPos ( void )

Récupère la position courante pour l'affichage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la position courante pour l'affichage, sous la forme d'un tableau de deux éléments - "x" et "y".

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la position courante pour l'affichage du texte

  • « HaruPage::getCurrentPos
  • HaruPage::getDash »
  • PHP Manual
  • HaruPage
  • Récupère la position courante pour l'affichage du texte

HaruPage::getCurrentTextPos

(PECL haru >= 0.0.1)

HaruPage::getCurrentTextPos — Récupère la position courante pour l'affichage du texte

Description

array HaruPage::getCurrentTextPos ( void )

Récupère la position courante pour l'affichage du texte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la position courante pour l'affichage du texte, sous la forme d'un tableau de deux éléments - "x" et "y".

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère le style de tiret courant

  • « HaruPage::getCurrentTextPos
  • HaruPage::getFillingColorSpace »
  • PHP Manual
  • HaruPage
  • Récupère le style de tiret courant

HaruPage::getDash

(PECL haru >= 0.0.1)

HaruPage::getDash — Récupère le style de tiret courant

Description

array HaruPage::getDash ( void )

Récupère le style de tiret courant. Voir HaruPage::setDash() pour plus d'informations sur les styles de tirets.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le style de tiret courant, sous la forme d'un tableau de deux éléments - "pattern" et "phase" ou FALSE si le style de tiret n'a pas été défini.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setDash() - Définit le style de tiret pour la page


Récupère la couleur de remplissage

  • « HaruPage::getDash
  • HaruPage::getFlatness »
  • PHP Manual
  • HaruPage
  • Récupère la couleur de remplissage

HaruPage::getFillingColorSpace

(PECL haru >= 0.0.1)

HaruPage::getFillingColorSpace — Récupère la couleur de remplissage

Description

int HaruPage::getFillingColorSpace ( void )

Récupère la couleur de remplissage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur de remplissage. La valeur est une parmi :

  • HaruDoc::CS_DEVICE_GRAY
  • HaruDoc::CS_DEVICE_RGB
  • HaruDoc::CS_DEVICE_CMYK
  • HaruDoc::CS_CAL_GRAY
  • HaruDoc::CS_CAL_RGB
  • HaruDoc::CS_LAB
  • HaruDoc::CS_ICC_BASED
  • HaruDoc::CS_SEPARATION
  • HaruDoc::CS_DEVICE_N
  • HaruDoc::CS_INDEXED
  • HaruDoc::CS_PATTERN

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la planéité de la page

  • « HaruPage::getFillingColorSpace
  • HaruPage::getGMode »
  • PHP Manual
  • HaruPage
  • Récupère la planéité de la page

HaruPage::getFlatness

(PECL haru >= 0.0.1)

HaruPage::getFlatness — Récupère la planéité de la page

Description

float HaruPage::getFlatness ( void )

Récupère la planéité de la page.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la planéité de la page.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setFlatness() - Définit la planéité de la page


Récupère le mode courant de graphique

  • « HaruPage::getFlatness
  • HaruPage::getGrayFill »
  • PHP Manual
  • HaruPage
  • Récupère le mode courant de graphique

HaruPage::getGMode

(PECL haru >= 0.0.1)

HaruPage::getGMode — Récupère le mode courant de graphique

Description

int HaruPage::getGMode ( void )

Récupère le mode courant de graphique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le mode courant de graphique. La valeur est une parmi :

  • HaruPage::GMODE_PAGE_DESCRIPTION
  • HaruPage::GMODE_TEXT_OBJECT
  • HaruPage::GMODE_PATH_OBJECT
  • HaruPage::GMODE_CLIPPING_PATH
  • HaruPage::GMODE_SHADING
  • HaruPage::GMODE_INLINE_IMAGE
  • HaruPage::GMODE_EXTERNAL_OBJECT

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la couleur courante de remplissage

  • « HaruPage::getGMode
  • HaruPage::getGrayStroke »
  • PHP Manual
  • HaruPage
  • Récupère la couleur courante de remplissage

HaruPage::getGrayFill

(PECL haru >= 0.0.1)

HaruPage::getGrayFill — Récupère la couleur courante de remplissage

Description

float HaruPage::getGrayFill ( void )

Récupère la couleur courante de remplissage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur courante de remplissage.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setGrayFill() - Définit la couleur de remplissage de la page


Récupère la couleur courante

  • « HaruPage::getGrayFill
  • HaruPage::getHeight »
  • PHP Manual
  • HaruPage
  • Récupère la couleur courante

HaruPage::getGrayStroke

(PECL haru >= 0.0.1)

HaruPage::getGrayStroke — Récupère la couleur courante

Description

float HaruPage::getGrayStroke ( void )

Récupère la couleur courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur courante.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setGrayStroke() - Définit la couleur de remplissage de la page


Récupère la hauteur de la page

  • « HaruPage::getGrayStroke
  • HaruPage::getHorizontalScaling »
  • PHP Manual
  • HaruPage
  • Récupère la hauteur de la page

HaruPage::getHeight

(PECL haru >= 0.0.1)

HaruPage::getHeight — Récupère la hauteur de la page

Description

float HaruPage::getHeight ( void )

Récupère la hauteur de la page.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la hauteur de la page.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setHeight() - Définit la hauteur de la page


Récupère la valeur courante de l'échelle horizontale

  • « HaruPage::getHeight
  • HaruPage::getLineCap »
  • PHP Manual
  • HaruPage
  • Récupère la valeur courante de l'échelle horizontale

HaruPage::getHorizontalScaling

(PECL haru >= 0.0.1)

HaruPage::getHorizontalScaling — Récupère la valeur courante de l'échelle horizontale

Description

float HaruPage::getHorizontalScaling ( void )

Récupère la valeur courante de l'échelle horizontale.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur courante de l'échelle horizontale.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setHorizontalScaling() - Définit la graduation horizontale de la page


Récupère le style courant de fin de lignes

  • « HaruPage::getHorizontalScaling
  • HaruPage::getLineJoin »
  • PHP Manual
  • HaruPage
  • Récupère le style courant de fin de lignes

HaruPage::getLineCap

(PECL haru >= 0.0.1)

HaruPage::getLineCap — Récupère le style courant de fin de lignes

Description

int HaruPage::getLineCap ( void )

Récupère le style courant de fin de lignes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le style courant de fin de lignes. La valeur est une parmi :

  • HaruPage::BUTT_END - la ligne est ajustée à la fin du chemin.
  • HaruPage::ROUND_END - la fin de la ligne devient un demi-cercle dont le centre est le point final du chemin.
  • HaruPage::PROJECTING_SCUARE_END - la ligne continue jusqu'au point qui excède de moitié la largeur du point final.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setLineCap() - Définit la forme à utiliser à la fin des lignes


Récupère le style de jointure de lignes

  • « HaruPage::getLineCap
  • HaruPage::getLineWidth »
  • PHP Manual
  • HaruPage
  • Récupère le style de jointure de lignes

HaruPage::getLineJoin

(PECL haru >= 0.0.1)

HaruPage::getLineJoin — Récupère le style de jointure de lignes

Description

int HaruPage::getLineJoin ( void )

Récupère le style de jointure de lignes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le style de jointure de lignes. La valeur est une parmi :

  • HaruPage::MITER_JOIN
  • HaruPage::ROUND_JOIN
  • HaruPage::BEVEL_JOIN

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setLineJoin() - Définit le style de jointure de ligne pour la page


Récupère la largeur courante de la ligne

  • « HaruPage::getLineJoin
  • HaruPage::getMiterLimit »
  • PHP Manual
  • HaruPage
  • Récupère la largeur courante de la ligne

HaruPage::getLineWidth

(PECL haru >= 0.0.1)

HaruPage::getLineWidth — Récupère la largeur courante de la ligne

Description

float HaruPage::getLineWidth ( void )

Récupère la largeur courante de la ligne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la largeur courante de la ligne.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setLineWidth() - Définit la largeur de la ligne pour la page


Récupère la valeur de la limite de l'anglet

  • « HaruPage::getLineWidth
  • HaruPage::getRGBFill »
  • PHP Manual
  • HaruPage
  • Récupère la valeur de la limite de l'anglet

HaruPage::getMiterLimit

(PECL haru >= 0.0.1)

HaruPage::getMiterLimit — Récupère la valeur de la limite de l'anglet

Description

float HaruPage::getMiterLimit ( void )

Récupère la valeur de la limite de l'anglet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur de la limite de l'anglet.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setMiterLimit() - Définit la valeur courante de la limite de l'anglet de la page


Récupère la couleur courante de remplissage

  • « HaruPage::getMiterLimit
  • HaruPage::getRGBStroke »
  • PHP Manual
  • HaruPage
  • Récupère la couleur courante de remplissage

HaruPage::getRGBFill

(PECL haru >= 0.0.1)

HaruPage::getRGBFill — Récupère la couleur courante de remplissage

Description

array HaruPage::getRGBFill ( void )

Récupère la couleur courante de remplissage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur courante de remplissage, sous la forme d'un tableau de 3 éléments : "r", "g" et "b".

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setRGBFill() - Définit la couleur de remplissage pour la page


Récupère la couleur de peinture courante

  • « HaruPage::getRGBFill
  • HaruPage::getStrokingColorSpace »
  • PHP Manual
  • HaruPage
  • Récupère la couleur de peinture courante

HaruPage::getRGBStroke

(PECL haru >= 0.0.1)

HaruPage::getRGBStroke — Récupère la couleur de peinture courante

Description

array HaruPage::getRGBStroke ( void )

Récupère la couleur de peinture courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur de peinture courante.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setRGBStroke() - Définit la couleur de remplissage de la page


Récupère la couleur de peinture de l'espace courant

  • « HaruPage::getRGBStroke
  • HaruPage::getTextLeading »
  • PHP Manual
  • HaruPage
  • Récupère la couleur de peinture de l'espace courant

HaruPage::getStrokingColorSpace

(PECL haru >= 0.0.1)

HaruPage::getStrokingColorSpace — Récupère la couleur de peinture de l'espace courant

Description

int HaruPage::getStrokingColorSpace ( void )

Récupère la couleur de peinture de l'espace courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la couleur de peinture de l'espace courant. La liste des valeurs retournées est la même que pour la fonction HaruPage::getFillingColorSpace().

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getFillingColorSpace() - Récupère la couleur de remplissage


Récupère la valeur courante de l'espacement des lignes

  • « HaruPage::getStrokingColorSpace
  • HaruPage::getTextMatrix »
  • PHP Manual
  • HaruPage
  • Récupère la valeur courante de l'espacement des lignes

HaruPage::getTextLeading

(PECL haru >= 0.0.1)

HaruPage::getTextLeading — Récupère la valeur courante de l'espacement des lignes

Description

float HaruPage::getTextLeading ( void )

Récupère la valeur courante de l'espacement des lignes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur courante de l'espacement des lignes.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setTextLeading() - Définit l'espacement entre les lignes du texte pour la page


Récupère la matrice de transformation courante du texte de la page

  • « HaruPage::getTextLeading
  • HaruPage::getTextRenderingMode »
  • PHP Manual
  • HaruPage
  • Récupère la matrice de transformation courante du texte de la page

HaruPage::getTextMatrix

(PECL haru >= 0.0.1)

HaruPage::getTextMatrix — Récupère la matrice de transformation courante du texte de la page

Description

array HaruPage::getTextMatrix ( void )

Récupère la matrice de transformation courante du texte de la page.

Valeurs de retour

Retourne la matrice de transformation courante du texte de la page, sous la forme d'un tableau de 6 éléments : "a", "b", "c", "d", "x" et "y".

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setTextMatrix() - Définit la matrice de transformation de texte courante de la page


Récupère le mode de rendu courant du texte

  • « HaruPage::getTextMatrix
  • HaruPage::getTextRise »
  • PHP Manual
  • HaruPage
  • Récupère le mode de rendu courant du texte

HaruPage::getTextRenderingMode

(PECL haru >= 0.0.1)

HaruPage::getTextRenderingMode — Récupère le mode de rendu courant du texte

Description

int HaruPage::getTextRenderingMode ( void )

Récupère le mode de rendu courant du texte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le mode de rendu courant du texte. La valeur est une parmi :

  • HaruPage::FILL
  • HaruPage::STROKE
  • HaruPage::FILL_THEN_STROKE
  • HaruPage::INVISIBLE
  • HaruPage::FILL_CLIPPING
  • HaruPage::STROKE_CLIPPING
  • HaruPage::FILL_STROKE_CLIPPING
  • HaruPage::CLIPPING

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setTextRenderingMode() - Définit la matrice de transformation de texte courante de la page


Récupère la valeur de la levée du texte

  • « HaruPage::getTextRenderingMode
  • HaruPage::getTextWidth »
  • PHP Manual
  • HaruPage
  • Récupère la valeur de la levée du texte

HaruPage::getTextRise

(PECL haru >= 0.0.1)

HaruPage::getTextRise — Récupère la valeur de la levée du texte

Description

float HaruPage::getTextRise ( void )

Récupère la valeur de la levée du texte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur courante de la levée du texte.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setTextRise() - Définit la valeur courante de la levée du texte


Récupère la largeur du texte en utilisant la taille de la police courante, l'espacement des caractères et l'espacement des mots

  • « HaruPage::getTextRise
  • HaruPage::getTransMatrix »
  • PHP Manual
  • HaruPage
  • Récupère la largeur du texte en utilisant la taille de la police courante, l'espacement des caractères et l'espacement des mots

HaruPage::getTextWidth

(PECL haru >= 0.0.1)

HaruPage::getTextWidth — Récupère la largeur du texte en utilisant la taille de la police courante, l'espacement des caractères et l'espacement des mots

Description

float HaruPage::getTextWidth ( string $text )

Récupère la largeur du texte en utilisant la taille de la police courante, l'espacement des caractères et l'espacement des mots.

Liste de paramètres

text

Le texte à mesurer.

Valeurs de retour

Retourne la largeur du texte en utilisant la taille de la police courante, l'espacement des caractères et l'espacement des mots.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::measureText() - Calcule le longueur des caractères qui peuvent être inclus sur une ligne de largeur spécifiée


Récupère la matrice de transformation courante de la page

  • « HaruPage::getTextWidth
  • HaruPage::getWidth »
  • PHP Manual
  • HaruPage
  • Récupère la matrice de transformation courante de la page

HaruPage::getTransMatrix

(PECL haru >= 0.0.1)

HaruPage::getTransMatrix — Récupère la matrice de transformation courante de la page

Description

array HaruPage::getTransMatrix ( void )

Récupère la matrice de transformation courante de la page.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la matrice de transformation courante de la page, sous la forme d'un tableau de 6 éléments : "a", "b", "c", "d", "x" and "y".

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::concat() - Concatène la matrice de transformation courante et la matrice spécifiée


Récupère la largeur de la page

  • « HaruPage::getTransMatrix
  • HaruPage::getWordSpace »
  • PHP Manual
  • HaruPage
  • Récupère la largeur de la page

HaruPage::getWidth

(PECL haru >= 0.0.1)

HaruPage::getWidth — Récupère la largeur de la page

Description

float HaruPage::getWidth ( void )

Récupère la largeur de la page.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la largeur de la page.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setWidth() - Définit la largeur de la page


Récupère la valeur courante de l'espacement entre les mots

  • « HaruPage::getWidth
  • HaruPage::lineTo »
  • PHP Manual
  • HaruPage
  • Récupère la valeur courante de l'espacement entre les mots

HaruPage::getWordSpace

(PECL haru >= 0.0.1)

HaruPage::getWordSpace — Récupère la valeur courante de l'espacement entre les mots

Description

float HaruPage::getWordSpace ( void )

Récupère la valeur courante de l'espacement entre les mots.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur courante de l'espacement entre les mots.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setWordSpace() - Définit l'espacement entre les mots pour la page


Trace une ligne depuis le point courant vers le point spécifié

  • « HaruPage::getWordSpace
  • HaruPage::measureText »
  • PHP Manual
  • HaruPage
  • Trace une ligne depuis le point courant vers le point spécifié

HaruPage::lineTo

(PECL haru >= 0.0.1)

HaruPage::lineTo — Trace une ligne depuis le point courant vers le point spécifié

Description

bool HaruPage::lineTo ( float $x , float $y )

Trace une ligne depuis le point courant vers le point spécifié.

Liste de paramètres

x

y

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::curveTo() - Ajoute une courbe de Bézier au chemin courant
  • HaruPage::curveTo2() - Ajoute une courbe de Bézier au chemin courant
  • HaruPage::curveTo3() - Ajoute une courbe de Bézier au chemin courant


Calcule le longueur des caractères qui peuvent être inclus sur une ligne de largeur spécifiée

  • « HaruPage::lineTo
  • HaruPage::moveTextPos »
  • PHP Manual
  • HaruPage
  • Calcule le longueur des caractères qui peuvent être inclus sur une ligne de largeur spécifiée

HaruPage::measureText

(PECL haru >= 0.0.1)

HaruPage::measureText — Calcule le longueur des caractères qui peuvent être inclus sur une ligne de largeur spécifiée

Description

int HaruPage::measureText ( string $text , float $width [, bool $wordwrap = false ] )

Calcule le longueur des caractères qui peuvent être inclus sur une ligne de la largeur spécifiée.

Liste de paramètres

text

Le texte à mesurer.

width

La largeur de la ligne.

wordwrap

Lorsque ce paramètre est défini à TRUE, la fonction émule la troncation des mots en stoppant après le dernier mot entier (délimité par un espace) qui peut être contenu dans la ligne.

Valeurs de retour

Retourne la longueur des caractères qui peuvent être inclus dans la largeur spécifiée. Pour les encodages sur un seul octet, cela revient au nombre de caractères. Pour les encodages multi-octets, ce n'est pas forcément le cas.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruFont::measureText() - Calcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée


Déplace la position du texte à une position donnée

  • « HaruPage::measureText
  • HaruPage::moveTo »
  • PHP Manual
  • HaruPage
  • Déplace la position du texte à une position donnée

HaruPage::moveTextPos

(PECL haru >= 0.0.1)

HaruPage::moveTextPos — Déplace la position du texte à une position donnée

Description

bool HaruPage::moveTextPos ( float $x , float $y [, bool $set_leading = false ] )

Déplace la position du texte à la position donnée. Si la position de départ de la ligne courant est (x1, y1), le début de la prochaine ligne est (x1 + x, y1 + y).

Liste de paramètres

x

La position du texte.

y

La position du texte.

set_leading

Si le paramètre optionnel set_leading vaut TRUE, la fonction défini l'espacement du texte à -y.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::moveToNextLine() - Déplace la position du texte au début de la prochaine ligne


Définit le point de départ pour la nouvelle ligne

  • « HaruPage::moveTextPos
  • HaruPage::moveToNextLine »
  • PHP Manual
  • HaruPage
  • Définit le point de départ pour la nouvelle ligne

HaruPage::moveTo

(PECL haru >= 0.0.1)

HaruPage::moveTo — Définit le point de départ pour la nouvelle ligne

Description

bool HaruPage::moveTo ( float $x , float $y )

Définit le point de départ pour la nouvelle ligne.

Liste de paramètres

x

Coordonnée du nouveau point de départ.

y

Coordonnée du nouveau point de départ.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Déplace la position du texte au début de la prochaine ligne

  • « HaruPage::moveTo
  • HaruPage::rectangle »
  • PHP Manual
  • HaruPage
  • Déplace la position du texte au début de la prochaine ligne

HaruPage::moveToNextLine

(PECL haru >= 0.0.1)

HaruPage::moveToNextLine — Déplace la position du texte au début de la prochaine ligne

Description

bool HaruPage::moveToNextLine ( void )

Déplace la position du texte au début de la prochaine ligne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::moveTextPos() - Déplace la position du texte à une position donnée


Ajoute un rectangle à la position courante

  • « HaruPage::moveToNextLine
  • HaruPage::setCharSpace »
  • PHP Manual
  • HaruPage
  • Ajoute un rectangle à la position courante

HaruPage::rectangle

(PECL haru >= 0.0.1)

HaruPage::rectangle — Ajoute un rectangle à la position courante

Description

bool HaruPage::rectangle ( float $x , float $y , float $width , float $height )

Ajoute un rectangle à la position courante.

Liste de paramètres

x

La bordure gauche du rectangle.

y

La bordure basse du rectangle.

width

La largeur du rectangle.

height

La hauteur du rectangle.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit l'espacement des caractères pour la page

  • « HaruPage::rectangle
  • HaruPage::setCMYKFill »
  • PHP Manual
  • HaruPage
  • Définit l'espacement des caractères pour la page

HaruPage::setCharSpace

(PECL haru >= 0.0.1)

HaruPage::setCharSpace — Définit l'espacement des caractères pour la page

Description

bool HaruPage::setCharSpace ( float $char_space )

Définit l'espacement des caractères pour la page.

Liste de paramètres

char_space

Le nouvel espacement des caractères pour la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getCharSpace() - Récupère la valeur courante de l'espacement des caractères


Définit la couleur de remplissage de la page

  • « HaruPage::setCharSpace
  • HaruPage::setCMYKStroke »
  • PHP Manual
  • HaruPage
  • Définit la couleur de remplissage de la page

HaruPage::setCMYKFill

(PECL haru >= 0.0.1)

HaruPage::setCMYKFill — Définit la couleur de remplissage de la page

Description

bool HaruPage::setCMYKFill ( float $c , float $m , float $y , float $k )

Définit la couleur de remplissage de la page.

Liste de paramètres

c

m

y

k

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getCMYKFill() - Récupère la couleur de remplissage courante


Définit la couleur de remplissage de la page

  • « HaruPage::setCMYKFill
  • HaruPage::setDash »
  • PHP Manual
  • HaruPage
  • Définit la couleur de remplissage de la page

HaruPage::setCMYKStroke

(PECL haru >= 0.0.1)

HaruPage::setCMYKStroke — Définit la couleur de remplissage de la page

Description

bool HaruPage::setCMYKStroke ( float $c , float $m , float $y , float $k )

Définit la couleur de remplissage de la page.

Liste de paramètres

c

m

y

k

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getCMYKStroke() - Récupère la couleur de remplissage courante


Définit le style de tiret pour la page

  • « HaruPage::setCMYKStroke
  • HaruPage::setFlatness »
  • PHP Manual
  • HaruPage
  • Définit le style de tiret pour la page

HaruPage::setDash

(PECL haru >= 0.0.1)

HaruPage::setDash — Définit le style de tiret pour la page

Description

bool HaruPage::setDash ( array $pattern , int $phase )

Définit le style de tiret pour la page.

Liste de paramètres

pattern

Un tableau (8 éléments au maximum) qui contiennent les styles et les trous utilisés pour les lignes de la page.

phase

La phase sur laquelle les masques commencent.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getDash() - Récupère le style de tiret courant


Définit la planéité de la page

  • « HaruPage::setDash
  • HaruPage::setFontAndSize »
  • PHP Manual
  • HaruPage
  • Définit la planéité de la page

HaruPage::setFlatness

(PECL haru >= 0.0.1)

HaruPage::setFlatness — Définit la planéité de la page

Description

bool HaruPage::setFlatness ( float $flatness )

Définit la planéité de la page.

Liste de paramètres

flatness

La planéité pour la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getFlatness() - Récupère la planéité de la page


Définit la police et sa taille pour la page

  • « HaruPage::setFlatness
  • HaruPage::setGrayFill »
  • PHP Manual
  • HaruPage
  • Définit la police et sa taille pour la page

HaruPage::setFontAndSize

(PECL haru >= 0.0.1)

HaruPage::setFontAndSize — Définit la police et sa taille pour la page

Description

bool HaruPage::setFontAndSize ( object $font , float $size )

Définit la police et sa taille pour la page.

Liste de paramètres

font

Une instance valide de HaruFont.

size

La taille de la police.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruDoc::getFont() - Récupère une instance HaruFont


Définit la couleur de remplissage de la page

  • « HaruPage::setFontAndSize
  • HaruPage::setGrayStroke »
  • PHP Manual
  • HaruPage
  • Définit la couleur de remplissage de la page

HaruPage::setGrayFill

(PECL haru >= 0.0.1)

HaruPage::setGrayFill — Définit la couleur de remplissage de la page

Description

bool HaruPage::setGrayFill ( float $value )

Définit la couleur de remplissage de la page.

Liste de paramètres

value

La valeur pour la couleur grise, comprise entre 0 et 1.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getGrayFill() - Récupère la couleur courante de remplissage


Définit la couleur de remplissage de la page

  • « HaruPage::setGrayFill
  • HaruPage::setHeight »
  • PHP Manual
  • HaruPage
  • Définit la couleur de remplissage de la page

HaruPage::setGrayStroke

(PECL haru >= 0.0.1)

HaruPage::setGrayStroke — Définit la couleur de remplissage de la page

Description

bool HaruPage::setGrayStroke ( float $value )

Définit la couleur de remplissage de la page.

Liste de paramètres

value

La valeur pour la couleur grise, comprise entre 0 et 1.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getGrayStroke() - Récupère la couleur courante


Définit la hauteur de la page

  • « HaruPage::setGrayStroke
  • HaruPage::setHorizontalScaling »
  • PHP Manual
  • HaruPage
  • Définit la hauteur de la page

HaruPage::setHeight

(PECL haru >= 0.0.1)

HaruPage::setHeight — Définit la hauteur de la page

Description

bool HaruPage::setHeight ( float $height )

Définit la hauteur de la page.

Liste de paramètres

height

La hauteur de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getHeight() - Récupère la hauteur de la page


Définit la graduation horizontale de la page

  • « HaruPage::setHeight
  • HaruPage::setLineCap »
  • PHP Manual
  • HaruPage
  • Définit la graduation horizontale de la page

HaruPage::setHorizontalScaling

(PECL haru >= 0.0.1)

HaruPage::setHorizontalScaling — Définit la graduation horizontale de la page

Description

bool HaruPage::setHorizontalScaling ( float $scaling )

Définit la graduation horizontale du texte affiché sur la page.

Liste de paramètres

scaling

La graduation horizontal du texte affiché sur la page. La valeur initiale est 100.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getHorizontalScaling() - Récupère la valeur courante de l'échelle horizontale


Définit la forme à utiliser à la fin des lignes

  • « HaruPage::setHorizontalScaling
  • HaruPage::setLineJoin »
  • PHP Manual
  • HaruPage
  • Définit la forme à utiliser à la fin des lignes

HaruPage::setLineCap

(PECL haru >= 0.0.1)

HaruPage::setLineCap — Définit la forme à utiliser à la fin des lignes

Description

bool HaruPage::setLineCap ( int $cap )

Définit la forme à utiliser à la fin des lignes.

Liste de paramètres

cap

Doit être une des valeurs suivantes :

  • HaruPage::BUTT_END - la ligne est ajustée à la fin du chemin.
  • HaruPage::ROUND_END - la fin de la ligne devient un demi-cercle dont le centre est le point final du chemin.
  • HaruPage::PROJECTING_SCUARE_END - la ligne continue jusqu'au point qui excède de moitié la largeur du point final.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getLineCap() - Récupère le style courant de fin de lignes


Définit le style de jointure de ligne pour la page

  • « HaruPage::setLineCap
  • HaruPage::setLineWidth »
  • PHP Manual
  • HaruPage
  • Définit le style de jointure de ligne pour la page

HaruPage::setLineJoin

(PECL haru >= 0.0.1)

HaruPage::setLineJoin — Définit le style de jointure de ligne pour la page

Description

bool HaruPage::setLineJoin ( int $join )

Définit le style de jointure de ligne pour la page.

Liste de paramètres

join

Doit être une des valeurs suivantes :

  • HaruPage::MITER_JOIN
  • HaruPage::ROUND_JOIN
  • HaruPage::BEVEL_JOIN

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getLineJoin() - Récupère le style de jointure de lignes


Définit la largeur de la ligne pour la page

  • « HaruPage::setLineJoin
  • HaruPage::setMiterLimit »
  • PHP Manual
  • HaruPage
  • Définit la largeur de la ligne pour la page

HaruPage::setLineWidth

(PECL haru >= 0.0.1)

HaruPage::setLineWidth — Définit la largeur de la ligne pour la page

Description

bool HaruPage::setLineWidth ( float $width )

Définit la largeur de la ligne pour la page.

Liste de paramètres

width

La largeur de la ligne pour la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getLineWidth() - Récupère la largeur courante de la ligne


Définit la valeur courante de la limite de l'anglet de la page

  • « HaruPage::setLineWidth
  • HaruPage::setRGBFill »
  • PHP Manual
  • HaruPage
  • Définit la valeur courante de la limite de l'anglet de la page

HaruPage::setMiterLimit

(PECL haru >= 0.0.1)

HaruPage::setMiterLimit — Définit la valeur courante de la limite de l'anglet de la page

Description

bool HaruPage::setMiterLimit ( float $limit )

Définit la valeur courante de la limite de l'anglet de la page.

Liste de paramètres

limit

Définit la valeur courante de la limite de l'anglet de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getMiterLimit() - Récupère la valeur de la limite de l'anglet


Définit la couleur de remplissage pour la page

  • « HaruPage::setMiterLimit
  • HaruPage::setRGBStroke »
  • PHP Manual
  • HaruPage
  • Définit la couleur de remplissage pour la page

HaruPage::setRGBFill

(PECL haru >= 0.0.1)

HaruPage::setRGBFill — Définit la couleur de remplissage pour la page

Description

bool HaruPage::setRGBFill ( float $r , float $g , float $b )

Définit la couleur de remplissage de la page. Toutes les valeurs doivent être comprises entre 0 et 1.

Liste de paramètres

r

g

b

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getRGBFill() - Récupère la couleur courante de remplissage


Définit la couleur de remplissage de la page

  • « HaruPage::setRGBFill
  • HaruPage::setRotate »
  • PHP Manual
  • HaruPage
  • Définit la couleur de remplissage de la page

HaruPage::setRGBStroke

(PECL haru >= 0.0.1)

HaruPage::setRGBStroke — Définit la couleur de remplissage de la page

Description

bool HaruPage::setRGBStroke ( float $r , float $g , float $b )

Définit la couleur de remplissage de la page. Toutes les valeurs doivent être comprises entre 0 et 1.

Liste de paramètres

r

g

b

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getRGBStroke() - Récupère la couleur de peinture courante


Définit l'angle de rotation de la page

  • « HaruPage::setRGBStroke
  • HaruPage::setSize »
  • PHP Manual
  • HaruPage
  • Définit l'angle de rotation de la page

HaruPage::setRotate

(PECL haru >= 0.0.1)

HaruPage::setRotate — Définit l'angle de rotation de la page

Description

bool HaruPage::setRotate ( int $angle )

Définit l'angle de rotation de la page.

Liste de paramètres

angle

Doit être un multiple de 90 degrés.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit la taille et la direction de la page

  • « HaruPage::setRotate
  • HaruPage::setSlideShow »
  • PHP Manual
  • HaruPage
  • Définit la taille et la direction de la page

HaruPage::setSize

(PECL haru >= 0.0.1)

HaruPage::setSize — Définit la taille et la direction de la page

Description

bool HaruPage::setSize ( int $size , int $direction )

Modifie la taille et la direction de la page en un format prédéfini.

Liste de paramètres

size

Doit être une des valeurs suivantes :

  • HaruPage::SIZE_LETTER
  • HaruPage::SIZE_LEGAL
  • HaruPage::SIZE_A3
  • HaruPage::SIZE_A4
  • HaruPage::SIZE_A5
  • HaruPage::SIZE_B4
  • HaruPage::SIZE_B5
  • HaruPage::SIZE_EXECUTIVE
  • HaruPage::SIZE_US4x6
  • HaruPage::SIZE_US4x8
  • HaruPage::SIZE_US5x7
  • HaruPage::SIZE_COMM10

direction

Doit être une des valeurs suivantes :

  • HaruPage::PORTRAIT
  • HaruPage::LANDSCAPE

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::setWidth() - Définit la largeur de la page
  • HaruPage::setHeight() - Définit la hauteur de la page


Définit le style de transition pour la page

  • « HaruPage::setSize
  • HaruPage::setTextLeading »
  • PHP Manual
  • HaruPage
  • Définit le style de transition pour la page

HaruPage::setSlideShow

(PECL haru >= 0.0.1)

HaruPage::setSlideShow — Définit le style de transition pour la page

Description

bool HaruPage::setSlideShow ( int $type , float $disp_time , float $trans_time )

Définit le style de transition pour la page.

Liste de paramètres

type

Doit être une des valeurs suivantes :

  • HaruPage::TS_WIPE_RIGHT
  • HaruPage::TS_WIPE_LEFT
  • HaruPage::TS_WIPE_UP
  • HaruPage::TS_WIPE_DOWN
  • HaruPage::TS_BARN_DOORS_HORIZONTAL_OUT
  • HaruPage::TS_BARN_DOORS_HORIZONTAL_IN
  • HaruPage::TS_BARN_DOORS_VERTICAL_OUT
  • HaruPage::TS_BARN_DOORS_VERTICAL_IN
  • HaruPage::TS_BOX_OUT
  • HaruPage::TS_BOX_IN
  • HaruPage::TS_BLINDS_HORIZONTAL
  • HaruPage::TS_BLINDS_VERTICAL
  • HaruPage::TS_DISSOLVE
  • HaruPage::TS_GLITTER_RIGHT
  • HaruPage::TS_GLITTER_DOWN
  • HaruPage::TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT
  • HaruPage::TS_REPLACE

disp_time

Le temps d'affichage de la page, en secondes.

trans_time

La durée de l'effet de transition, en secondes.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit l'espacement entre les lignes du texte pour la page

  • « HaruPage::setSlideShow
  • HaruPage::setTextMatrix »
  • PHP Manual
  • HaruPage
  • Définit l'espacement entre les lignes du texte pour la page

HaruPage::setTextLeading

(PECL haru >= 0.0.1)

HaruPage::setTextLeading — Définit l'espacement entre les lignes du texte pour la page

Description

bool HaruPage::setTextLeading ( float $text_leading )

Définit l'espacement entre les lignes du texte pour la page.

Liste de paramètres

text_leading

Espacement entre les lignes de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getTextLeading() - Récupère la valeur courante de l'espacement des lignes


Définit la matrice de transformation de texte courante de la page

  • « HaruPage::setTextLeading
  • HaruPage::setTextRenderingMode »
  • PHP Manual
  • HaruPage
  • Définit la matrice de transformation de texte courante de la page

HaruPage::setTextMatrix

(PECL haru >= 0.0.1)

HaruPage::setTextMatrix — Définit la matrice de transformation de texte courante de la page

Description

bool HaruPage::setTextMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )

Définit la matrice de transformation de texte de la page.

Liste de paramètres

a

Multiplicateur de largeur.

b

Inclinaison verticale, en radians.

c

Inclinaison horizontale, en radians.

d

Multiplicateur de hauteur.

x

Position horizontale du texte.

y

Position verticale du texte.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getTextMatrix() - Récupère la matrice de transformation courante du texte de la page


Définit la matrice de transformation de texte courante de la page

  • « HaruPage::setTextMatrix
  • HaruPage::setTextRise »
  • PHP Manual
  • HaruPage
  • Définit la matrice de transformation de texte courante de la page

HaruPage::setTextRenderingMode

(PECL haru >= 0.0.1)

HaruPage::setTextRenderingMode — Définit la matrice de transformation de texte courante de la page

Description

bool HaruPage::setTextRenderingMode ( int $mode )

Définit la matrice de transformation de texte de la page.

Liste de paramètres

mode

Doit être une valeur parmi les suivantes :

  • HaruPage::FILL
  • HaruPage::STROKE
  • HaruPage::FILL_THEN_STROKE
  • HaruPage::INVISIBLE
  • HaruPage::FILL_CLIPPING
  • HaruPage::STROKE_CLIPPING
  • HaruPage::FILL_STROKE_CLIPPING
  • HaruPage::CLIPPING

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getTextRenderingMode() - Récupère le mode de rendu courant du texte


Définit la valeur courante de la levée du texte

  • « HaruPage::setTextRenderingMode
  • HaruPage::setWidth »
  • PHP Manual
  • HaruPage
  • Définit la valeur courante de la levée du texte

HaruPage::setTextRise

(PECL haru >= 0.0.1)

HaruPage::setTextRise — Définit la valeur courante de la levée du texte

Description

bool HaruPage::setTextRise ( float $rise )

Définit la valeur courante de la levée du texte.

Liste de paramètres

rise

Valeur courante de la levée du texte.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getTextRise() - Récupère la valeur de la levée du texte


Définit la largeur de la page

  • « HaruPage::setTextRise
  • HaruPage::setWordSpace »
  • PHP Manual
  • HaruPage
  • Définit la largeur de la page

HaruPage::setWidth

(PECL haru >= 0.0.1)

HaruPage::setWidth — Définit la largeur de la page

Description

bool HaruPage::setWidth ( float $width )

Définit la largeur de la page.

Liste de paramètres

width

Largeur de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getWidth() - Récupère la largeur de la page


Définit l'espacement entre les mots pour la page

  • « HaruPage::setWidth
  • HaruPage::showText »
  • PHP Manual
  • HaruPage
  • Définit l'espacement entre les mots pour la page

HaruPage::setWordSpace

(PECL haru >= 0.0.1)

HaruPage::setWordSpace — Définit l'espacement entre les mots pour la page

Description

bool HaruPage::setWordSpace ( float $word_space )

Définit l'espacement entre les mots pour la page.

Liste de paramètres

word_space

Espacement entre les mots de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::getWordSpace() - Récupère la valeur courante de l'espacement entre les mots


Affiche le texte à la position courante de la page

  • « HaruPage::setWordSpace
  • HaruPage::showTextNextLine »
  • PHP Manual
  • HaruPage
  • Affiche le texte à la position courante de la page

HaruPage::showText

(PECL haru >= 0.0.1)

HaruPage::showText — Affiche le texte à la position courante de la page

Description

bool HaruPage::showText ( string $text )

Affiche le texte à la position courante de la page.

Liste de paramètres

text

Le texte à afficher.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::showTextNextLine() - Déplace la position courante au début de la prochaine ligne et affiche le texte
  • HaruPage::textOut() - Affiche le texte à la position spécifiée


Déplace la position courante au début de la prochaine ligne et affiche le texte

  • « HaruPage::showText
  • HaruPage::stroke »
  • PHP Manual
  • HaruPage
  • Déplace la position courante au début de la prochaine ligne et affiche le texte

HaruPage::showTextNextLine

(PECL haru >= 0.0.1)

HaruPage::showTextNextLine — Déplace la position courante au début de la prochaine ligne et affiche le texte

Description

bool HaruPage::showTextNextLine ( string $text [, float $word_space = 0 [, float $char_space = 0 ]] )

Déplace la position courante au début de la prochaine ligne et affiche le texte.

Liste de paramètres

text

Le texte à afficher.

word_space

L'espacement entre les mots.

char_space

L'espacement entre les caractères.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::showText() - Affiche le texte à la position courante de la page
  • HaruPage::textOut() - Affiche le texte à la position spécifiée


Peint le chemin courant

  • « HaruPage::showTextNextLine
  • HaruPage::textOut »
  • PHP Manual
  • HaruPage
  • Peint le chemin courant

HaruPage::stroke

(PECL haru >= 0.0.1)

HaruPage::stroke — Peint le chemin courant

Description

bool HaruPage::stroke ([ bool $close_path = false ] )

Peint le chemin courant.

Liste de paramètres

close_path

Ferme le chemin courant si défini à TRUE.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Affiche le texte à la position spécifiée

  • « HaruPage::stroke
  • HaruPage::textRect »
  • PHP Manual
  • HaruPage
  • Affiche le texte à la position spécifiée

HaruPage::textOut

(PECL haru >= 0.0.1)

HaruPage::textOut — Affiche le texte à la position spécifiée

Description

bool HaruPage::textOut ( float $x , float $y , string $text )

Affiche le texte à la position spécifiée.

Liste de paramètres

x

y

text

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::showTextNextLine() - Déplace la position courante au début de la prochaine ligne et affiche le texte
  • HaruPage::showText() - Affiche le texte à la position courante de la page


Affiche le texte d'une région spécifique

  • « HaruPage::textOut
  • HaruFont »
  • PHP Manual
  • HaruPage
  • Affiche le texte d'une région spécifique

HaruPage::textRect

(PECL haru >= 0.0.1)

HaruPage::textRect — Affiche le texte d'une région spécifique

Description

bool HaruPage::textRect ( float $left , float $top , float $right , float $bottom , string $text [, int $align = HaruPage::TALIGN_LEFT ] )

Affiche le texte d'une région spécifique.

Liste de paramètres

left

Bordure gauche de la zone de texte.

top

Bordure haute de la zone de texte.

right

Bordure droite de la zone de texte.

bottom

Bordure basse de la zone de texte.

text

Le texte à afficher.

align

Alignement du texte. Doit être une valeur parmi :

  • HaruPage::TALING_LEFT
  • HaruPage::TALING_RIGHT
  • HaruPage::TALING_CENTER
  • HaruPage::TALING_JUSTIFY

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.

Voir aussi

  • HaruPage::showTextNextLine() - Déplace la position courante au début de la prochaine ligne et affiche le texte
  • HaruPage::showText() - Affiche le texte à la position courante de la page
  • HaruPage::textOut() - Affiche le texte à la position spécifiée


Classe HaruFont

(PECL haru >= 0.0.1)

Introduction

Classe Haru PDF Font.

Synopsis de la classe

HaruFont {
/* Méthodes */
int getAscent ( void )
int getCapHeight ( void )
int getDescent ( void )
string getEncodingName ( void )
string getFontName ( void )
array getTextWidth ( string $text )
int getUnicodeWidth ( int $character )
int getXHeight ( void )
int measureText ( string $text , float $width , float $font_size , float $char_space , float $word_space [, bool $word_wrap = false ] )
}

Sommaire

  • HaruFont::getAscent — Récupère la montée verticale de la police
  • HaruFont::getCapHeight — Récupère la distance depuis la ligne de base des lettres en majuscule
  • HaruFont::getDescent — Récupère la descente verticale de la police
  • HaruFont::getEncodingName — Récupère le nom de l'encodage
  • HaruFont::getFontName — Récupère le nom de la police
  • HaruFont::getTextWidth — Récupère la largeur totale du texte, le nombre de caractères, le nombre de mots et le nombre d'espaces
  • HaruFont::getUnicodeWidth — Récupère la largeur d'un caractère dans une police
  • HaruFont::getXHeight — Récupère la distance depuis la ligne de base des lettres minuscule
  • HaruFont::measureText — Calcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée


Récupère la montée verticale de la police

  • « HaruFont
  • HaruFont::getCapHeight »
  • PHP Manual
  • HaruFont
  • Récupère la montée verticale de la police

HaruFont::getAscent

(PECL haru >= 0.0.1)

HaruFont::getAscent — Récupère la montée verticale de la police

Description

int HaruFont::getAscent ( void )

Récupère la montée verticale de la police.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la montée verticale de la police.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la distance depuis la ligne de base des lettres en majuscule

  • « HaruFont::getAscent
  • HaruFont::getDescent »
  • PHP Manual
  • HaruFont
  • Récupère la distance depuis la ligne de base des lettres en majuscule

HaruFont::getCapHeight

(PECL haru >= 0.0.1)

HaruFont::getCapHeight — Récupère la distance depuis la ligne de base des lettres en majuscule

Description

int HaruFont::getCapHeight ( void )

Récupère la distance depuis la ligne de base des lettres en majuscule.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la distance depuis la ligne de base des lettres en majuscule.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la descente verticale de la police

  • « HaruFont::getCapHeight
  • HaruFont::getEncodingName »
  • PHP Manual
  • HaruFont
  • Récupère la descente verticale de la police

HaruFont::getDescent

(PECL haru >= 0.0.1)

HaruFont::getDescent — Récupère la descente verticale de la police

Description

int HaruFont::getDescent ( void )

Récupère la descente verticale de la police.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la descente verticale de la police.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère le nom de l'encodage

  • « HaruFont::getDescent
  • HaruFont::getFontName »
  • PHP Manual
  • HaruFont
  • Récupère le nom de l'encodage

HaruFont::getEncodingName

(PECL haru >= 0.0.1)

HaruFont::getEncodingName — Récupère le nom de l'encodage

Description

string HaruFont::getEncodingName ( void )

Récupère le nom de l'encodage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de l'encodage de la police.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère le nom de la police

  • « HaruFont::getEncodingName
  • HaruFont::getTextWidth »
  • PHP Manual
  • HaruFont
  • Récupère le nom de la police

HaruFont::getFontName

(PECL haru >= 0.0.1)

HaruFont::getFontName — Récupère le nom de la police

Description

string HaruFont::getFontName ( void )

Récupère le nom de la police.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de la police.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la largeur totale du texte, le nombre de caractères, le nombre de mots et le nombre d'espaces

  • « HaruFont::getFontName
  • HaruFont::getUnicodeWidth »
  • PHP Manual
  • HaruFont
  • Récupère la largeur totale du texte, le nombre de caractères, le nombre de mots et le nombre d'espaces

HaruFont::getTextWidth

(PECL haru >= 0.0.1)

HaruFont::getTextWidth — Récupère la largeur totale du texte, le nombre de caractères, le nombre de mots et le nombre d'espaces

Description

array HaruFont::getTextWidth ( string $text )

Récupère la largeur totale du texte, le nombre de caractères, le nombre de mots et le nombre d'espaces.

Liste de paramètres

text

Le texte à mesurer.

Valeurs de retour

Retourne la largeur totale d'un texte, le nombre de caractères, le nombre de mots et le nombre d'espaces dans un texte donné.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la largeur d'un caractère dans une police

  • « HaruFont::getTextWidth
  • HaruFont::getXHeight »
  • PHP Manual
  • HaruFont
  • Récupère la largeur d'un caractère dans une police

HaruFont::getUnicodeWidth

(PECL haru >= 0.0.1)

HaruFont::getUnicodeWidth — Récupère la largeur d'un caractère dans une police

Description

int HaruFont::getUnicodeWidth ( int $character )

Récupère la largeur d'un caractère dans une police.

Liste de paramètres

character

Le code du caractère.

Valeurs de retour

Retourne la largeur d'un caractère dans la police.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la distance depuis la ligne de base des lettres minuscule

  • « HaruFont::getUnicodeWidth
  • HaruFont::measureText »
  • PHP Manual
  • HaruFont
  • Récupère la distance depuis la ligne de base des lettres minuscule

HaruFont::getXHeight

(PECL haru >= 0.0.1)

HaruFont::getXHeight — Récupère la distance depuis la ligne de base des lettres minuscule

Description

int HaruFont::getXHeight ( void )

Récupère la distance depuis la ligne de base des lettres minuscule.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la distance depuis la ligne de base des lettres en minuscule.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Calcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée

  • « HaruFont::getXHeight
  • HaruImage »
  • PHP Manual
  • HaruFont
  • Calcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée

HaruFont::measureText

(PECL haru >= 0.0.1)

HaruFont::measureText — Calcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée

Description

int HaruFont::measureText ( string $text , float $width , float $font_size , float $char_space , float $word_space [, bool $word_wrap = false ] )

Calcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée.

Liste de paramètres

text

Le texte qui doit tenir dans la largeur.

width

La largeur de l'endroit dans lequel le texte doit tenir.

font_size

La taille de la police.

char_space

L'espacement des caractères.

word_space

L'espacement des mots.

word_wrap

Lorsque ce paramètre vaut TRUE, la fonction émule la troncation des mots et n'inclut pas la partie courante du mot si l'on a atteint la fin de l'espace.

Valeurs de retour

Retourne le nombre de caractères qui peuvent être inclus dans la largeur spécifiée.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Classe HaruImage

(PECL haru >= 0.0.1)

Introduction

Classe Haru PDF Image.

Synopsis de la classe

HaruImage {
/* Méthodes */
int getBitsPerComponent ( void )
string getColorSpace ( void )
int getHeight ( void )
array getSize ( void )
int getWidth ( void )
bool setColorMask ( int $rmin , int $rmax , int $gmin , int $gmax , int $bmin , int $bmax )
bool setMaskImage ( object $mask_image )
}

Sommaire

  • HaruImage::getBitsPerComponent — Récupère le nombre d'octets utilisés pour décrire chaque composant de la couleur de l'image
  • HaruImage::getColorSpace — Récupère le nom de l'espace de couleur de l'image
  • HaruImage::getHeight — Récupère la hauteur de l'image
  • HaruImage::getSize — Récupère la taille de l'image
  • HaruImage::getWidth — Récupère la largeur de l'image
  • HaruImage::setColorMask — Définit le masque de couleur de l'image
  • HaruImage::setMaskImage — Définit le masque de l'image


Récupère le nombre d'octets utilisés pour décrire chaque composant de la couleur de l'image

  • « HaruImage
  • HaruImage::getColorSpace »
  • PHP Manual
  • HaruImage
  • Récupère le nombre d'octets utilisés pour décrire chaque composant de la couleur de l'image

HaruImage::getBitsPerComponent

(PECL haru >= 0.0.1)

HaruImage::getBitsPerComponent — Récupère le nombre d'octets utilisés pour décrire chaque composant de la couleur de l'image

Description

int HaruImage::getBitsPerComponent ( void )

Récupère le nombre d'octets utilisés pour décrire chaque composant de la couleur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'octets utilisés pour décrire chaque composant de la couleur de l'image.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère le nom de l'espace de couleur de l'image

  • « HaruImage::getBitsPerComponent
  • HaruImage::getHeight »
  • PHP Manual
  • HaruImage
  • Récupère le nom de l'espace de couleur de l'image

HaruImage::getColorSpace

(PECL haru >= 0.0.1)

HaruImage::getColorSpace — Récupère le nom de l'espace de couleur de l'image

Description

string HaruImage::getColorSpace ( void )

Récupère le nom de l'espace de couleur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de l'espace de couleur de l'image. Le nom est une des valeurs suivantes :

  • "DeviceGray"
  • "DeviceRGB"
  • "DeviceCMYK"
  • "Indexed"

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la hauteur de l'image

  • « HaruImage::getColorSpace
  • HaruImage::getSize »
  • PHP Manual
  • HaruImage
  • Récupère la hauteur de l'image

HaruImage::getHeight

(PECL haru >= 0.0.1)

HaruImage::getHeight — Récupère la hauteur de l'image

Description

int HaruImage::getHeight ( void )

Récupère la hauteur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la hauteur de l'image.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la taille de l'image

  • « HaruImage::getHeight
  • HaruImage::getWidth »
  • PHP Manual
  • HaruImage
  • Récupère la taille de l'image

HaruImage::getSize

(PECL haru >= 0.0.1)

HaruImage::getSize — Récupère la taille de l'image

Description

array HaruImage::getSize ( void )

Récupère la taille de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant deux éléments : la hauteur et la largeur, qui contiennent les dimensions de l'image.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère la largeur de l'image

  • « HaruImage::getSize
  • HaruImage::setColorMask »
  • PHP Manual
  • HaruImage
  • Récupère la largeur de l'image

HaruImage::getWidth

(PECL haru >= 0.0.1)

HaruImage::getWidth — Récupère la largeur de l'image

Description

int HaruImage::getWidth ( void )

Récupère la largeur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la largeur de l'image.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit le masque de couleur de l'image

  • « HaruImage::getWidth
  • HaruImage::setMaskImage »
  • PHP Manual
  • HaruImage
  • Définit le masque de couleur de l'image

HaruImage::setColorMask

(PECL haru >= 0.0.1)

HaruImage::setColorMask — Définit le masque de couleur de l'image

Description

bool HaruImage::setColorMask ( int $rmin , int $rmax , int $gmin , int $gmax , int $bmin , int $bmax )

Définit la couleur de transparence de l'image, en utilisant des valeurs RVG. La couleur est affichée en tant que couleur transparente. La couleur de l'espace de l'image doit être RVB.

Liste de paramètres

rmin

Le limite basse de rouge. Doit être comprise entre 0 et 255.

rmax

Le limite haute de rouge. Doit être comprise entre 0 et 255.

gmin

Le limite basse de vert. Doit être comprise entre 0 et 255.

gmax

Le limite haute de vert. Doit être comprise entre 0 et 255.

bmin

Le limite basse de bleu. Doit être comprise entre 0 et 255.

bmax

Le limite haute de bleu. Doit être comprise entre 0 et 255.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit le masque de l'image

  • « HaruImage::setColorMask
  • HaruEncoder »
  • PHP Manual
  • HaruImage
  • Définit le masque de l'image

HaruImage::setMaskImage

(PECL haru >= 0.0.1)

HaruImage::setMaskImage — Définit le masque de l'image

Description

bool HaruImage::setMaskImage ( object $mask_image )

Définit l'image à utiliser en tant que masque. Elle doit être une image de couleur grise sur 1 octet.

Liste de paramètres

mask_image

Une instance valide HaruImage.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Classe HaruEncoder

(PECL haru >= 0.0.1)

Introduction

Classe Haru PDF Encoder Class.

Synopsis de la classe

HaruEncoder {
/* Méthodes */
int getByteType ( string $text , int $index )
int getType ( void )
int getUnicode ( int $character )
int getWritingMode ( void )
}

Constantes pré-définies

Type | Nom | Description
int | HaruEncoder::TYPE_SINGLE_BYTE |
int | HaruEncoder::TYPE_DOUBLE_BYTE |
int | HaruEncoder::TYPE_UNINITIALIZED |
int | HaruEncoder::UNKNOWN |
int | HaruEncoder::WMODE_HORIZONTAL |
int | HaruEncoder::WMODE_VERTICAL |
int | HaruEncoder::BYTE_TYPE_SINGLE |
int | HaruEncoder::BYTE_TYPE_LEAD |
int | HaruEncoder::BYTE_TYPE_TRAIL |
int | HaruEncoder::BYTE_TYPE_UNKNOWN |

Sommaire

  • HaruEncoder::getByteType — Récupère le type d'octets dans le texte
  • HaruEncoder::getType — Récupère le type de l'encodeur
  • HaruEncoder::getUnicode — Convertit un caractère en unicode
  • HaruEncoder::getWritingMode — Récupère le mode d'écriture de l'encodeur


Récupère le type d'octets dans le texte

  • « HaruEncoder
  • HaruEncoder::getType »
  • PHP Manual
  • HaruEncoder
  • Récupère le type d'octets dans le texte

HaruEncoder::getByteType

(PECL haru >= 0.0.1)

HaruEncoder::getByteType — Récupère le type d'octets dans le texte

Description

int HaruEncoder::getByteType ( string $text , int $index )

Récupère le type d'octets dans le texte.

Liste de paramètres

text

Le texte.

index

La position dans le texte.

Valeurs de retour

Retourne le type d'octets dans le texte à une position donnée. Le résultat est une des valeurs suivantes :

  • HaruEncoder::BYTE_TYPE_SINGLE - caractère sur un seul octet.
  • HaruEncoder::BYTE_TYPE_LEAD - premier octet d'un caractère bi-octets.
  • HaruEncoder::BYTE_TYPE_TRAIL - dernier octet d'un caractère bi-octets.
  • HaruEncoder::BYTE_TYPE_UNKNOWN - encodeur invalide ou impossible de détecter le type d'octets.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère le type de l'encodeur

  • « HaruEncoder::getByteType
  • HaruEncoder::getUnicode »
  • PHP Manual
  • HaruEncoder
  • Récupère le type de l'encodeur

HaruEncoder::getType

(PECL haru >= 0.0.1)

HaruEncoder::getType — Récupère le type de l'encodeur

Description

int HaruEncoder::getType ( void )

Récupère le type de l'encodeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le type de l'encodeur. Le résultat est une des valeurs suivantes :

  • HaruEncoder::TYPE_SINGLE_BYTE - l'encodeur est pour les caractères sur un octet.
  • HaruEncoder::TYPE_DOUBLE_BYTE - l'encodeur est pour les caractères multi-octets.
  • HaruEncoder::TYPE_UNINITIALIZED - l'encodeur n'est pas initialisé.
  • HaruEncoder::UNKNOWN - l'encodeur est invalide.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Convertit un caractère en unicode

  • « HaruEncoder::getType
  • HaruEncoder::getWritingMode »
  • PHP Manual
  • HaruEncoder
  • Convertit un caractère en unicode

HaruEncoder::getUnicode

(PECL haru >= 0.0.1)

HaruEncoder::getUnicode — Convertit un caractère en unicode

Description

int HaruEncoder::getUnicode ( int $character )

Convertit le caractère spécifié en unicode.

Liste de paramètres

character

Le code du caractère à convertir.

Valeurs de retour

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Récupère le mode d'écriture de l'encodeur

  • « HaruEncoder::getUnicode
  • HaruOutline »
  • PHP Manual
  • HaruEncoder
  • Récupère le mode d'écriture de l'encodeur

HaruEncoder::getWritingMode

(PECL haru >= 0.0.1)

HaruEncoder::getWritingMode — Récupère le mode d'écriture de l'encodeur

Description

int HaruEncoder::getWritingMode ( void )

Récupère le mode d'écriture de l'encodeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le mode d'écriture de l'encodeur. Le résultat est une des constantes suivantes :

  • HaruEncoder::WMODE_HORIZONTAL - mode d'écriture horizontal.
  • HaruEncoder::WMODE_VERTICAL - mode d'écriture vertical.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Classe HaruOutline

(PECL haru >= 0.0.1)

Introduction

Classe Haru PDF Outline.

Synopsis de la classe

HaruOutline {
/* Méthodes */
bool setDestination ( object $destination )
bool setOpened ( bool $opened )
}

Sommaire

  • HaruOutline::setDestination — Définit la destination pour le contour
  • HaruOutline::setOpened — Définit le statut initial du contour


Définit la destination pour le contour

  • « HaruOutline
  • HaruOutline::setOpened »
  • PHP Manual
  • HaruOutline
  • Définit la destination pour le contour

HaruOutline::setDestination

(PECL haru >= 0.0.1)

HaruOutline::setDestination — Définit la destination pour le contour

Description

bool HaruOutline::setDestination ( object $destination )

Définit un objet de destination qui devient une cible à atteindre lorsque le contour est cliqué.

Liste de paramètres

destination

Une instance valide HaruDestination.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit le statut initial du contour

  • « HaruOutline::setDestination
  • HaruAnnotation »
  • PHP Manual
  • HaruOutline
  • Définit le statut initial du contour

HaruOutline::setOpened

(PECL haru >= 0.0.1)

HaruOutline::setOpened — Définit le statut initial du contour

Description

bool HaruOutline::setOpened ( bool $opened )

Définit si ce noeud est ouvert ou non lorsque le contour est affiché pour la première fois.

Liste de paramètres

opened

TRUE signifie ouvert, FALSE - fermé.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Classe HaruAnnotation

(PECL haru >= 0.0.1)

Introduction

Classe Haru PDF Annotation.

Synopsis de la classe

HaruAnnotation {
/* Méthodes */
bool setBorderStyle ( float $width , int $dash_on , int $dash_off )
bool setHighlightMode ( int $mode )
bool setIcon ( int $icon )
bool setOpened ( bool $opened )
}

Constantes pré-définies

Type | Nom | Description
int | HaruAnnotation::NO_HIGHLIGHT |
int | HaruAnnotation::INVERT_BOX |
int | HaruAnnotation::INVERT_BORDER |
int | HaruAnnotation::DOWN_APPEARANCE |
int | HaruAnnotation::ICON_COMMENT |
int | HaruAnnotation::ICON_KEY |
int | HaruAnnotation::ICON_NOTE |
int | HaruAnnotation::ICON_HELP |
int | HaruAnnotation::ICON_NEW_PARAGRAPH |
int | HaruAnnotation::ICON_PARAGRAPH |
int | HaruAnnotation::ICON_INSERT |

Sommaire

  • HaruAnnotation::setBorderStyle — Définit le style de bordure d'une annotation
  • HaruAnnotation::setHighlightMode — Définit le mode de mise en évidence de l'annotation
  • HaruAnnotation::setIcon — Définit le style de l'icône de l'annotation
  • HaruAnnotation::setOpened — Définit le statut initial de l'annotation


Définit le style de bordure d'une annotation

  • « HaruAnnotation
  • HaruAnnotation::setHighlightMode »
  • PHP Manual
  • HaruAnnotation
  • Définit le style de bordure d'une annotation

HaruAnnotation::setBorderStyle

(PECL haru >= 0.0.1)

HaruAnnotation::setBorderStyle — Définit le style de bordure d'une annotation

Description

bool HaruAnnotation::setBorderStyle ( float $width , int $dash_on , int $dash_off )

Définit le style de bordure de l'annotation. Cette fonction doit être utilisée uniquement avec les annotations.

Liste de paramètres

width

L'épaisseur de la bordure.

dash_on

Le style de la bordure.

dash_off

Le style de la ligne.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit le mode de mise en évidence de l'annotation

  • « HaruAnnotation::setBorderStyle
  • HaruAnnotation::setIcon »
  • PHP Manual
  • HaruAnnotation
  • Définit le mode de mise en évidence de l'annotation

HaruAnnotation::setHighlightMode

(PECL haru >= 0.0.1)

HaruAnnotation::setHighlightMode — Définit le mode de mise en évidence de l'annotation

Description

bool HaruAnnotation::setHighlightMode ( int $mode )

Définit l'apparence de l'annotation lorsqu'elle est cliquée. Cette fonction ne doit être utilisée qu'avec les liens des annotations.

Liste de paramètres

mode

Le mode de mise en évidence de l'annotation. Ne peut prendre que ces valeurs :

  • HaruAnnotation::NO_HIGHLIGHT - aucune mise en évidence.
  • HaruAnnotation::INVERT_BOX - inverse le contenu de l'annotation.
  • HaruAnnotation::INVERT_BORDER - inverse la bordure de l'annotation.
  • HaruAnnotation::DOWN_APPEARANCE - bosseler l'annotation

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit le style de l'icône de l'annotation

  • « HaruAnnotation::setHighlightMode
  • HaruAnnotation::setOpened »
  • PHP Manual
  • HaruAnnotation
  • Définit le style de l'icône de l'annotation

HaruAnnotation::setIcon

(PECL haru >= 0.0.1)

HaruAnnotation::setIcon — Définit le style de l'icône de l'annotation

Description

bool HaruAnnotation::setIcon ( int $icon )

Définit le style de l'icône de l'annotation. Cette fonction ne peut être utilisée qu'avec les annotations.

Liste de paramètres

icon

Le style de l'icône. Peut prendre uniquement les valeurs suivantes :

  • HaruAnnotation::ICON_COMMENT
  • HaruAnnotation::ICON_KEY
  • HaruAnnotation::ICON_NOTE
  • HaruAnnotation::ICON_HELP
  • HaruAnnotation::ICON_NEW_PARAGRAPH
  • HaruAnnotation::ICON_PARAGRAPH
  • HaruAnnotation::ICON_INSERT

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit le statut initial de l'annotation

  • « HaruAnnotation::setIcon
  • HaruDestination »
  • PHP Manual
  • HaruAnnotation
  • Définit le statut initial de l'annotation

HaruAnnotation::setOpened

(PECL haru >= 0.0.1)

HaruAnnotation::setOpened — Définit le statut initial de l'annotation

Description

bool HaruAnnotation::setOpened ( bool $opened )

Définit si l'annotation est initialement affichée ouverte ou non. Cette fonction doit être utilisée uniquement avec les annotations.

Liste de paramètres

opened

TRUE signifie que l'annotation est initialement affichée ouverte, FALSE signifie close.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Classe HaruDestination

(PECL haru >= 0.0.1)

Introduction

Classe Haru PDF Destination.

Synopsis de la classe

HaruDestination {
/* Méthodes */
bool setFit ( void )
bool setFitB ( void )
bool setFitBH ( float $top )
bool setFitBV ( float $left )
bool setFitH ( float $top )
bool setFitR ( float $left , float $bottom , float $right , float $top )
bool setFitV ( float $left )
bool setXYZ ( float $left , float $top , float $zoom )
}

Sommaire

  • HaruDestination::setFit — Définit l'apparence de la page afin qu'elle tienne dans la fenêtre
  • HaruDestination::setFitB — Définit l'apparence de la page afin qu'elle tienne dans une boite de la page dans la fenêtre
  • HaruDestination::setFitBH — Définit l'apparence de la page afin qu'elle tienne en largeur dans la boite
  • HaruDestination::setFitBV — Définit l'apparence de la page afin qu'elle tienne en hauteur dans la boite
  • HaruDestination::setFitH — Définit l'apparence de la page afin qu'elle tienne en largeur dans la page
  • HaruDestination::setFitR — Définit l'apparence de la page afin qu'elle tienne dans le rectangle spécifié
  • HaruDestination::setFitV — Définit l'apparence de la page afin qu'elle tienne en hauteur dans la fenêtre
  • HaruDestination::setXYZ — Définit l'apparence d'une page


Définit l'apparence de la page afin qu'elle tienne dans la fenêtre

  • « HaruDestination
  • HaruDestination::setFitB »
  • PHP Manual
  • HaruDestination
  • Définit l'apparence de la page afin qu'elle tienne dans la fenêtre

HaruDestination::setFit

(PECL haru >= 0.0.1)

HaruDestination::setFit — Définit l'apparence de la page afin qu'elle tienne dans la fenêtre

Description

bool HaruDestination::setFit ( void )

Définit l'apparence de la page afin qu'elle tienne dans la fenêtre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit l'apparence de la page afin qu'elle tienne dans une boite de la page dans la fenêtre

  • « HaruDestination::setFit
  • HaruDestination::setFitBH »
  • PHP Manual
  • HaruDestination
  • Définit l'apparence de la page afin qu'elle tienne dans une boite de la page dans la fenêtre

HaruDestination::setFitB

(PECL haru >= 0.0.1)

HaruDestination::setFitB — Définit l'apparence de la page afin qu'elle tienne dans une boite de la page dans la fenêtre

Description

bool HaruDestination::setFitB ( void )

Définit l'apparence de la page afin qu'elle tienne dans une boite de la page dans la fenêtre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit l'apparence de la page afin qu'elle tienne en largeur dans la boite

  • « HaruDestination::setFitB
  • HaruDestination::setFitBV »
  • PHP Manual
  • HaruDestination
  • Définit l'apparence de la page afin qu'elle tienne en largeur dans la boite

HaruDestination::setFitBH

(PECL haru >= 0.0.1)

HaruDestination::setFitBH — Définit l'apparence de la page afin qu'elle tienne en largeur dans la boite

Description

bool HaruDestination::setFitBH ( float $top )

Définit l'apparence de la page afin qu'elle tienne en largeur dans la boite et définit la position haute de la page à la valeur top.

Liste de paramètres

top

Les coordonnées haute de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit l'apparence de la page afin qu'elle tienne en hauteur dans la boite

  • « HaruDestination::setFitBH
  • HaruDestination::setFitH »
  • PHP Manual
  • HaruDestination
  • Définit l'apparence de la page afin qu'elle tienne en hauteur dans la boite

HaruDestination::setFitBV

(PECL haru >= 0.0.1)

HaruDestination::setFitBV — Définit l'apparence de la page afin qu'elle tienne en hauteur dans la boite

Description

bool HaruDestination::setFitBV ( float $left )

Définit l'apparence de la page afin qu'elle tienne en hauteur dans la boite et définit la position gauche de la page à la valeur de left.

Liste de paramètres

left

Les coordonnées gauche de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit l'apparence de la page afin qu'elle tienne en largeur dans la page

  • « HaruDestination::setFitBV
  • HaruDestination::setFitR »
  • PHP Manual
  • HaruDestination
  • Définit l'apparence de la page afin qu'elle tienne en largeur dans la page

HaruDestination::setFitH

(PECL haru >= 0.0.1)

HaruDestination::setFitH — Définit l'apparence de la page afin qu'elle tienne en largeur dans la page

Description

bool HaruDestination::setFitH ( float $top )

Définit l'apparence de la page afin qu'elle tienne en largeur dans la page et définit la position haute de la page à la valeur top.

Liste de paramètres

top

La position haute de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit l'apparence de la page afin qu'elle tienne dans le rectangle spécifié

  • « HaruDestination::setFitH
  • HaruDestination::setFitV »
  • PHP Manual
  • HaruDestination
  • Définit l'apparence de la page afin qu'elle tienne dans le rectangle spécifié

HaruDestination::setFitR

(PECL haru >= 0.0.1)

HaruDestination::setFitR — Définit l'apparence de la page afin qu'elle tienne dans le rectangle spécifié

Description

bool HaruDestination::setFitR ( float $left , float $bottom , float $right , float $top )

Définit l'apparence de la page afin qu'elle tienne dans le rectangle spécifié.

Liste de paramètres

left

Les coordonnées gauche de la page.

bottom

Les coordonnées du bas de la page.

right

Les coordonnées droite de la page.

top

Les coordonnées du haut de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit l'apparence de la page afin qu'elle tienne en hauteur dans la fenêtre

  • « HaruDestination::setFitR
  • HaruDestination::setXYZ »
  • PHP Manual
  • HaruDestination
  • Définit l'apparence de la page afin qu'elle tienne en hauteur dans la fenêtre

HaruDestination::setFitV

(PECL haru >= 0.0.1)

HaruDestination::setFitV — Définit l'apparence de la page afin qu'elle tienne en hauteur dans la fenêtre

Description

bool HaruDestination::setFitV ( float $left )

Définit l'apparence de la page afin qu'elle tienne en hauteur dans la fenêtre.

Liste de paramètres

left

La position gauche de la page.

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Définit l'apparence d'une page

  • « HaruDestination::setFitV
  • Ming »
  • PHP Manual
  • HaruDestination
  • Définit l'apparence d'une page

HaruDestination::setXYZ

(PECL haru >= 0.0.1)

HaruDestination::setXYZ — Définit l'apparence d'une page

Description

bool HaruDestination::setXYZ ( float $left , float $top , float $zoom )

Définit l'apparence d'une page en utilisant trois paramètres : left, top et zoom.

Liste de paramètres

left

La position gauche de la page.

top

La position haute de la page.

zoom

Le facteur de zoom. La valeur doit être comprise entre 0.08 (8%) et 32 (3200%).

Valeurs de retour

Retourne TRUE en cas de succès.

Erreurs / Exceptions

Émet une exception HaruException en cas d'erreur.


Ming (flash)

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Exemples avec SWFAction
    • Exemple avec SWFSPrite
  • Fonctions Ming
    • ming_keypress — Retourne le drapeau d'action pour keyPress(char)
    • ming_setcubicthreshold — Fixe le niveau de seuil cubique
    • ming_setscale — Définit le facteur d'échelle globale
    • ming_setswfcompression — Définit la compression de sortie SWF
    • ming_useconstants — Utilise un jeu de constantes
    • ming_useswfversion — Définit la version SWF
  • SWFAction — La classe SWFAction
    • SWFAction::__construct — Crée un nouvel objet SWFAction
  • SWFBitmap — La classe SWFBitmap
    • SWFBitmap::__construct — Charge un objet Bitmap
    • SWFBitmap::getHeight — Retourne la hauteur d'un bitmap
    • SWFBitmap::getWidth — Retourne la largeur d'un bitmap
  • SWFButton — La classe SWFButton
    • SWFButton::addAction — Ajoute une action
    • SWFButton::addASound — Associe un son à un bouton
    • SWFButton::addShape — Ajoute une forme à un bouton
    • SWFButton::__construct — Crée un nouveau bouton
    • SWFButton::setAction — Définit l'action
    • SWFButton::setDown — Alias pour addShape(shape, SWFBUTTON_DOWN)
    • SWFButton::setHit — Alias pour addShape(shape, SWFBUTTON_HIT)
    • SWFButton::setMenu — Active un menu sur un bouton
    • SWFButton::setOver — Alias pour addShape(shape, SWFBUTTON_OVER)
    • SWFButton::setUp — Alias pour addShape(shape, SWFBUTTON_UP)
  • SWFDisplayItem — La classe SWFDisplayItem
    • SWFDisplayItem::addAction — Ajoute ce SWFAction à l'instance SWFSprite fournie
    • SWFDisplayItem::addColor — Ajoute une couleur à la transformation de couleur de l'élément
    • SWFDisplayItem::endMask — Une autre façon de définir une interface MASK
    • SWFDisplayItem::getRot — Description
    • SWFDisplayItem::getX — Description
    • SWFDisplayItem::getXScale — Description
    • SWFDisplayItem::getXSkew — Description
    • SWFDisplayItem::getY — Description
    • SWFDisplayItem::getYScale — Description
    • SWFDisplayItem::getYSkew — Description
    • SWFDisplayItem::move — Déplace un objet dans les coordonnées relatives
    • SWFDisplayItem::moveTo — Déplace un objet dans les coordonnées globales
    • SWFDisplayItem::multColor — Multiplie la transformation de couleur d'un élément
    • SWFDisplayItem::remove — Efface l'objet du film
    • SWFDisplayItem::rotate — Rotation, en coordonnées relatives
    • SWFDisplayItem::rotateTo — Tourne l'objet dans les coordonnées globales
    • SWFDisplayItem::scale — Met à l'échelle l'objet dans des coordonnées relatives
    • SWFDisplayItem::scaleTo — Met à l'échelle l'objet dans les coordonnées globales
    • SWFDisplayItem::setDepth — Définit le z-order
    • SWFDisplayItem::setMaskLevel — Définit le niveau de l'interface MASK
    • SWFDisplayItem::setMatrix — Définit la matrice de transformation de l'élément
    • SWFDisplayItem::setName — Définit le nom de l'objet
    • SWFDisplayItem::setRatio — Définit le ratio de l'objet
    • SWFDisplayItem::skewX — Définit le X-skew
    • SWFDisplayItem::skewXTo — Définit le X-skew
    • SWFDisplayItem::skewY — Définit le Y-skew
    • SWFDisplayItem::skewYTo — Définit le Y-skew
  • SWFFill — La classe SWFFill
    • SWFFill::moveTo — Déplace le motif original
    • SWFFill::rotateTo — Définit la rotation du motif
    • SWFFill::scaleTo — Définit l'échelle du motif
    • SWFFill::skewXTo — Définit le motif x-skew
    • SWFFill::skewYTo — Définit le motif y-skew
  • SWFFont — La classe SWFFont
    • SWFFont::__construct — Charge la définition d'une police
    • SWFFont::getAscent — Retourne la montée de la police, ou 0 si non disponible
    • SWFFont::getDescent — Retourne la descente de la police, ou 0 si non disponible
    • SWFFont::getLeading — Retourne l'interlignage de la police, ou 0 si non disponible
    • SWFFont::getShape — Retourne la forme du glyphe d'un caractère, sous la forme d'une chaîne de caractères
    • SWFFont::getUTF8Width — Calcule la largeur d'une chaîne donnée dans une police
    • SWFFont::getWidth — Retourne la largeur de la chaîne
  • SWFFontChar — La classe SWFFontChar
    • SWFFontChar::addChars — Ajoute des caractères à une police pour l'exportation de la police
    • SWFFontChar::addUTF8Chars — Ajoute des caractères à une police pour l'exportation de la police
  • SWFGradient — La classe SWFGradient
    • SWFGradient::addEntry — Ajoute une entrée dans la liste de gradient
    • SWFGradient::__construct — Crée un objet gradient
  • SWFMorph — La classe SWFMorph
    • SWFMorph::__construct — Crée un nouvel objet SWFMorph
    • SWFMorph::getShape1 — Récupère un gestionnaire pour une forme
    • SWFMorph::getShape2 — Récupère un gestionnaire de forme de fin
  • SWFMovie — La classe SWFMovie
    • SWFMovie::add — Ajoute n'importe quelle donnée à une vidéo
    • SWFMovie::addExport — Description
    • SWFMovie::addFont — Description
    • SWFMovie::__construct — Crée un nouvel objet vidéo, représentant une vidéo SWF version 4
    • SWFMovie::importChar — Description
    • SWFMovie::importFont — Description
    • SWFMovie::labelFrame — Nomme une frame
    • SWFMovie::nextFrame — Se déplace sur la prochaine frame d'une animation
    • SWFMovie::output — Affiche la vidéo
    • SWFMovie::remove — Efface une instance d'un objet depuis la liste d'affichage
    • SWFMovie::save — Sauvegarde la vidéo SWF dans un fichier
    • SWFMovie::saveToFile — Description
    • SWFMovie::setbackground — Définit la couleur d'arrière plan
    • SWFMovie::setDimension — Définit les dimensions de la vidéo
    • SWFMovie::setFrames — Définit le nombre de frames dans l'animation
    • SWFMovie::setRate — Définit le débit des frames de l'animation
    • SWFMovie::startSound — Description
    • SWFMovie::stopSound — Description
    • SWFMovie::streamMP3 — Diffuse un fichier MP3
    • SWFMovie::writeExports — Description
  • SWFPrebuiltClip — La classe SWFPrebuiltClip
    • SWFPrebuiltClip::__construct — Retourne un objet SWFPrebuiltClip
  • SWFShape — La classe SWFShape
    • SWFShape::addFill — Ajoute un motif solide à la forme
    • SWFShape::__construct — Crée un nouvel objet SWFShape
    • SWFShape::drawArc — Trace un arc de cercle entre deux angles
    • SWFShape::drawCircle — Trace un cercle, centré sur la position courante
    • SWFShape::drawCubic — Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle
    • SWFShape::drawCubicTo — Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle
    • SWFShape::drawCurve — Trace une courbe (relative)
    • SWFShape::drawCurveTo — Trace une courbe
    • SWFShape::drawGlyph — Dessine le premier caractère d'une chaîne donnée dans la forme en utilisant la définition du glyphe pour la police donnée
    • SWFShape::drawLine — Trace une ligne (relative)
    • SWFShape::drawLineTo — Trace une ligne
    • SWFShape::movePen — Déplace le stylo
    • SWFShape::movePenTo — Déplace le stylo dans la forme
    • SWFShape::setLeftFill — Définit la couleur de la trame de gauche
    • SWFShape::setLine — Définit le style de la forme d'une ligne
    • SWFShape::setRightFill — Définit la couleur de la trame de droite
  • SWFSound — La classe SWFSound
    • SWFSound::__construct — Retourne un nouvel objet SWFSound depuis un fichier donné
  • SWFSoundInstance — La classe SWFSoundInstance
    • SWFSoundInstance::loopCount — Description
    • SWFSoundInstance::loopInPoint — Description
    • SWFSoundInstance::loopOutPoint — Description
    • SWFSoundInstance::noMultiple — Description
  • SWFSprite — La classe SWFSprite
    • SWFSprite::add — Ajoute un objet à un sprite
    • SWFSprite::__construct — Crée un clip vidéo (un sprite)
    • SWFSprite::labelFrame — Libellé d'une image
    • SWFSprite::nextFrame — Déplace la prochaine image de l'animation
    • SWFSprite::remove — Efface l'objet d'un sprite
    • SWFSprite::setFrames — Définit le nombre total d'images dans l'animation
    • SWFSprite::startSound — Description
    • SWFSprite::stopSound — Description
  • SWFText — La classe SWFText
    • SWFText::addString — Dessine une chaîne de caractères
    • SWFText::addUTF8String — Écrit le texte donné dans l'objet SWFText à la position courante, en utilisant la police, la haute, l'espacement et la couleur courants
    • SWFText::__construct — Crée un nouvel objet SWFText
    • SWFText::getAscent — Retourne la montée de la police courante à sa taille courante, ou 0 si elle n'est pas disponible
    • SWFText::getDescent — Retourne la descente de la police courante à sa taille courante, ou 0 si elle n'est pas disponible
    • SWFText::getLeading — Retourne l'interlignage de la police courante à sa taille courante, ou 0 s'il n'est pas disponible
    • SWFText::getUTF8Width — Calcule la largeur de la chaîne donnée dans la police et la taille courante du texte
    • SWFText::getWidth — Calcule la largeur d'une chaîne
    • SWFText::moveTo — Déplace le stylo
    • SWFText::setColor — Définit la couleur courante du texte
    • SWFText::setFont — Définit la police courante
    • SWFText::setHeight — Définit la hauteur de la police courante
    • SWFText::setSpacing — Définit l'espacement de la police courante
  • SWFTextField — La classe SWFTextField
    • SWFTextField::addChars — Ajoute les caractères à la police qui sera disponible dans le champ texte
    • SWFTextField::addString — Concatène la chaîne de caractères donnée avec le champ texte
    • SWFTextField::align — Définit l'alignement du champ texte
    • SWFTextField::__construct — Crée un objet champ de texte
    • SWFTextField::setBounds — Définit la hauteur et la largeur d'un champ texte
    • SWFTextField::setColor — Définit la couleur d'un champ texte
    • SWFTextField::setFont — Définit la police d'un champ texte
    • SWFTextField::setHeight — Définit la hauteur de la police d'un champ de texte
    • SWFTextField::setIndentation — Définit l'indentation de la première ligne
    • SWFTextField::setLeftMargin — Définit la largeur de la marge gauche d'un champ texte
    • SWFTextField::setLineSpacing — Définit l'espacement de ligne d'un champ texte
    • SWFTextField::setMargins — Définit la largeur des marges d'un champ texte
    • SWFTextField::setName — Définit le nom de la variable
    • SWFTextField::setPadding — Définit l'espacement interne d'un champ texte
    • SWFTextField::setRightMargin — Définit la largeur de la marge droite d'un champ texte
  • SWFVideoStream — La classe SWFVideoStream
    • SWFVideoStream::__construct — Retourne un objet SWFVideoStream
    • SWFVideoStream::getNumFrames — Retourne le nombre de frames d'une vidéo
    • SWFVideoStream::setDimension — Définit les dimensions d'une vidéo


Introduction

Avant tout, sachez que Ming n'est pas un acronyme. Ming est une bibliothèque Open Source (LGPL) qui vous permet de créer des animations au format Flash. Ming supporte toutes les fonctionnalités de Flash 4 : les formes (shapes), les gradients, les images bitmaps (JPEG et PNG), les morphing (transformations d'une forme en une autre), les textes, actions, sprites (mini-animations), le streaming MP3 et les transformations de couleurs. Le seul ajout futur est celui des événements sons.

Notez que toutes les distances spécifiées (longueurs, distances, tailles...) sont en "twips", c'est-à-dire 20 unités par pixels. C'est plus ou moins arbitraire, car le lecteur Flash fait une mise à l'échelle avec les valeurs qui lui sont fournies dans la balise embed, ou la frame courante si la balise embed n'est pas utilisée.

Ming propose de nombreux avantages par rapport au module PHP/libswf. Vous pouvez utiliser Ming sur tous les OS où vous pouvez compiler le code, tandis que swf est limité à Windows. Ming vous évite la déconcertante complexité du format SWF, en transformant les éléments des animations en objets PHP. Enfin, Ming est toujours en cours de développement et surveillé par son auteur : si vous souhaitez une nouvelle fonctionnalité, dites-le nous : » http://www.libming.org/.

Ming et tous les objets cités ont été ajoutés en PHP 4.0.5.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.3.0.


Pré-requis

Pour utiliser Ming avec PHP, vous devez d'abord installer la bibliothèque Ming. Le code source et les instructions d'installation sont disponibles sur la page d'accueil de Ming : » http://www.libming.org/, avec des exemples un tutorial et l'actualité Ming.

Téléchargez l'archive Ming. Décompressez-la et allez dans le dossier Ming. Faites "make", puis "make install".

Cela va compiler le fichier libming.so et l'installer dans /usr/lib/, et copier ming.h dans /usr/include/. Éditez la ligne PREFIX= dans le fichier Makefile pour indiquer votre dossier d'installation.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ming.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.3.0

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MING_NEW (entier)
MING_ZLIB (entier)
SWFBUTTON_HIT (entier)
SWFBUTTON_DOWN (entier)
SWFBUTTON_OVER (entier)
SWFBUTTON_UP (entier)
SWFBUTTON_MOUSEUPOUTSIDE (entier)
SWFBUTTON_DRAGOVER (entier)
SWFBUTTON_DRAGOUT (entier)
SWFBUTTON_MOUSEUP (entier)
SWFBUTTON_MOUSEDOWN (entier)
SWFBUTTON_MOUSEOUT (entier)
SWFBUTTON_MOUSEOVER (entier)
SWFFILL_RADIAL_GRADIENT (entier)
SWFFILL_LINEAR_GRADIENT (entier)
SWFFILL_TILED_BITMAP (entier)
SWFFILL_CLIPPED_BITMAP (entier)
SWFTEXTFIELD_HASLENGTH (entier)
SWFTEXTFIELD_NOEDIT (entier)
SWFTEXTFIELD_PASSWORD (entier)
SWFTEXTFIELD_MULTILINE (entier)
SWFTEXTFIELD_WORDWRAP (entier)
SWFTEXTFIELD_DRAWBOX (entier)
SWFTEXTFIELD_NOSELECT (entier)
SWFTEXTFIELD_HTML (entier)
SWFTEXTFIELD_ALIGN_LEFT (entier)
SWFTEXTFIELD_ALIGN_RIGHT (entier)
SWFTEXTFIELD_ALIGN_CENTER (entier)
SWFTEXTFIELD_ALIGN_JUSTIFY (entier)
SWFACTION_ONLOAD (entier)
SWFACTION_ENTERFRAME (entier)
SWFACTION_UNLOAD (entier)
SWFACTION_MOUSEMOVE (entier)
SWFACTION_MOUSEDOWN (entier)
SWFACTION_MOUSEUP (entier)
SWFACTION_KEYDOWN (entier)
SWFACTION_KEYUP (entier)
SWFACTION_DATA (entier)


  • « Constantes pré-définies
  • Exemples avec SWFAction »
  • PHP Manual
  • Ming
  • Exemples

Exemples

Sommaire

  • Exemples avec SWFAction
  • Exemple avec SWFSPrite


Exemples avec SWFAction

Cet exemple simple déplace un carré rouge dans une fenêtre.

Exemple #1 Exemple avec swfaction()

<?php
  $s = new SWFShape();
  $f = $s->addFill(0xff, 0, 0);
  $s->setRightFill($f);

  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $i->setDepth(1);
  $p->nextFrame();

  for ($n=0; $n<5; ++$n) {
    $i->rotate(-15);
    $p->nextFrame();
  }

  $m = new SWFMovie();
  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(6000, 4000);

  $i = $m->add($p);
  $i->setDepth(1);
  $i->moveTo(-500,2000);
  $i->setName("box");

  $m->add(new SWFAction("/box.x += 3;"));
  $m->nextFrame();
  $m->add(new SWFAction("gotoFrame(0); play();"));
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Cet exemple simple va déplacer votre souris vers le bas de l'écran.

Exemple #2 Exemple avec swfaction()

<?php

  $m = new SWFMovie();
  $m->setRate(36.0);
  $m->setDimension(1200, 800);
  $m->setBackground(0, 0, 0);

  /* objet de suivi de la souris - vide, mais suit les mouvements de la souris
     afin d'y récupérer les coordonnées x et y */

  $i = $m->add(new SWFSprite());
  $i->setName('mouse');

  $m->add(new SWFAction("
    startDrag('/mouse', 1); /* '1' signifie que l'on verrouille le sprite à la souris */
  "));

  /* on désactive l'antialiasing, vu que l'on souhaite juste utiliser des carrés */

  $m->add(new SWFAction("
    this.quality = 0;
  "));

  /* modification de la boite */
  $r = new SWFMorph();
  $s = $r->getShape1();

  $s->setLeftFill($s->addFill(0xff, 0xff, 0xff));
  $s->movePenTo(-40, -40);
  $s->drawLine(80, 0);
  $s->drawLine(0, 80);
  $s->drawLine(-80, 0);
  $s->drawLine(0, -80);

  $s = $r->getShape2();

  $s->setLeftFill($s->addFill(0x00, 0x00, 0x00));
  $s->movePenTo(-1, -1);
  $s->drawLine(2, 0);
  $s->drawLine(0, 2);
  $s->drawLine(-2, 0);
  $s->drawLine(0, -2);

  /* conteneur sprite, pour la modification de la boite */

  $box = new SWFSprite();
  $box->add(new SWFAction("
    stop();
  "));
  $i = $box->add($r);

  for ($n=0; $n<=20; ++$n) {
    $i->setRatio($n/20);
    $box->nextFrame();
  }

  /* Ce conteneur de sprite nous permet d'utiliser la même action plusieurs fois */

  $cell = new SWFSprite();
  $i = $cell->add($box);
  $i->setName('box');

  $cell->add(new SWFAction("

    setTarget('box');

    /* ...x signifie la coordonnée en x du parent, i.e. (..).x */
    dx = (/mouse.x + random(6)-3 - ...x)/5;
    dy = (/mouse.y + random(6)-3 - ...y)/5;
    gotoFrame(int(dx*dx + dy*dy));

  "));

  $cell->nextFrame();
  $cell->add(new SWFAction("

    gotoFrame(0);
    play();

  "));

  $cell->nextFrame();

  /* et pour finir, ajoutons quelques cellules à notre vidéo */

  for ($x=0; $x<12; ++$x) {
    for ($y=0; $y<8; ++$y) {
      $i = $m->add($cell);
      $i->moveTo(100*$x+50, 100*$y+50);
    }
  }

  $m->nextFrame();

  $m->add(new SWFAction("

    gotoFrame(1);
    play();

  "));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Idem que l'exemple ci-dessus, mais avec de beaux ballons colorés...

Exemple #3 Exemple avec swfaction()

<?php

  $m = new SWFMovie();
  $m->setDimension(11000, 8000);
  $m->setBackground(0x00, 0x00, 0x00);

  $m->add(new SWFAction("

this.quality = 0;
/frames.visible = 0;
startDrag('/mouse', 1);

  "));

  // la souris suit le sprite
  $t = new SWFSprite();
  $i = $m->add($t);
  $i->setName('mouse');

  $g = new SWFGradient();
  $g->addEntry(0, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.1, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.5, 0xff, 0xff, 0xff, 0x5f);
  $g->addEntry(1.0, 0xff, 0xff, 0xff, 0);

  // une forme en gradient
  $s = new SWFShape();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.03);
  $s->setRightFill($f);
  $s->movePenTo(-600, -600);
  $s->drawLine(1200, 0);
  $s->drawLine(0, 1200);
  $s->drawLine(-1200, 0);
  $s->drawLine(0, -1200);

  // nous devons en faire un sprite, afin de pouvoir le colorer
  $p = new SWFSprite();
  $p->add($s);
  $p->nextFrame();

  // on y ajoute la forme, chaque frame avec une couleur différente
  $q = new SWFSprite();
  $q->add(new SWFAction("gotoFrame(random(7)+1); stop();"));
  $i = $q->add($p);

  $i->multColor(1.0, 1.0, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 0.75, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 0.5, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 1.0);
  $q->nextFrame();

  // et pour finir, celui-ci contient le code action
  $p = new SWFSprite();
  $i = $p->add($q);
  $i->setName('frames');
  $p->add(new SWFAction("

dx = (/:mousex-/:lastx)/3 + random(10)-5;
dy = (/:mousey-/:lasty)/3;
x = /:mousex;
y = /:mousey;
alpha = 100;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("

this.x = x;
this.y = y;
this.alpha = alpha;
x += dx;
y += dy;
dy += 3;
alpha -= 8;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("prevFrame(); play();"));
  $p->nextFrame();

  $i = $m->add($p);
  $i->setName('frames');
  $m->nextFrame();

  $m->add(new SWFAction("

lastx = mousex;
lasty = mousey;
mousex = /mouse.x;
mousey = /mouse.y;

++num;

if (num == 11)
  num = 1;

removeClip('char' & num);
duplicateClip(/frames, 'char' & num, num);

  "));

  $m->nextFrame();
  $m->add(new SWFAction("prevFrame(); play();"));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>


Exemple avec SWFSPrite

Cet exemple va faire tourner un gros carré rouge.

Exemple #1 Exemple avec swfsprite()

<?php
$s = new SWFShape();
$s->setRightFill($s->addFill(0xff, 0, 0));
$s->movePenTo(-500, -500);
$s->drawLineTo(500, -500);
$s->drawLineTo(500, 500);
$s->drawLineTo(-500, 500);
$s->drawLineTo(-500, -500);

$p = new SWFSprite();
$i = $p->add($s);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();

$m = new SWFMovie();
$i = $m->add($p);
$i->moveTo(1500, 1000);
$i->setName("blah");

$m->setBackground(0xff, 0xff, 0xff);
$m->setDimension(3000, 2000);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Fonctions Ming

Sommaire

  • ming_keypress — Retourne le drapeau d'action pour keyPress(char)
  • ming_setcubicthreshold — Fixe le niveau de seuil cubique
  • ming_setscale — Définit le facteur d'échelle globale
  • ming_setswfcompression — Définit la compression de sortie SWF
  • ming_useconstants — Utilise un jeu de constantes
  • ming_useswfversion — Définit la version SWF


Retourne le drapeau d'action pour keyPress(char)

  • « Fonctions Ming
  • ming_setcubicthreshold »
  • PHP Manual
  • Fonctions Ming
  • Retourne le drapeau d'action pour keyPress(char)

ming_keypress

(PHP 5 <= 5.3.0, PECL ming SVN)

ming_keypress — Retourne le drapeau d'action pour keyPress(char)

Description

int ming_keypress ( string $char )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Fixe le niveau de seuil cubique

  • « ming_keypress
  • ming_setscale »
  • PHP Manual
  • Fonctions Ming
  • Fixe le niveau de seuil cubique

ming_setcubicthreshold

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PECL ming SVN)

ming_setcubicthreshold — Fixe le niveau de seuil cubique

Description

void ming_setcubicthreshold ( int $threshold )

Fixe le niveau de seuil cubique pour dessiner des cubes bézier.

Liste de paramètres

threshold

Le niveau du seuil. Un seuil bas est plus significatif, mais génère un fichier de grande taille.

Valeurs de retour

Aucune valeur n'est retournée.


Définit le facteur d'échelle globale

  • « ming_setcubicthreshold
  • ming_setswfcompression »
  • PHP Manual
  • Fonctions Ming
  • Définit le facteur d'échelle globale

ming_setscale

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PECL ming SVN)

ming_setscale — Définit le facteur d'échelle globale

Description

void ming_setscale ( float $scale )

Définit l'échelle du SWF de sortie. Dans le fichier SWF, les coordonnées sont mesurées en TWIPS plutôt qu'en PIXELS. Il y a 20 TWIPS dans 1 pixel.

Liste de paramètres

scale

L'échelle à définir.

Valeurs de retour

Aucune valeur n'est retournée.


Définit la compression de sortie SWF

  • « ming_setscale
  • ming_useconstants »
  • PHP Manual
  • Fonctions Ming
  • Définit la compression de sortie SWF

ming_setswfcompression

(PHP 5.2.1-5.3.0, PHP 7, PECL ming SVN)

ming_setswfcompression — Définit la compression de sortie SWF

Description

void ming_setswfcompression ( int $level )

Définit le degré de compression de sortie SWF.

Liste de paramètres

level

Le nouveau degré de compression. Doit être une valeur entre 1 et 9, inclus.

Valeurs de retour

Aucune valeur n'est retournée.


Utilise un jeu de constantes

  • « ming_setswfcompression
  • ming_useswfversion »
  • PHP Manual
  • Fonctions Ming
  • Utilise un jeu de constantes

ming_useconstants

(PHP 5 <= 5.3.0, PECL ming SVN)

ming_useconstants — Utilise un jeu de constantes

Description

void ming_useconstants ( int $use )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Définit la version SWF

  • « ming_useconstants
  • SWFAction »
  • PHP Manual
  • Fonctions Ming
  • Définit la version SWF

ming_useswfversion

(PHP 4 >= 4.2.0, PHP 5 <= 5.3.0, PECL ming SVN)

ming_useswfversion — Définit la version SWF

Description

void ming_useswfversion ( int $version )

Définit la version SWF à utiliser dans la vidéo. Ceci affecte la comportement de l'Action Script.

Liste de paramètres

version

La version SWF à utiliser.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ming_useswfversion()

<?php

$movie = new SWFMovie();
ming_useswfversion(4); // Flash 4

?>


La classe SWFAction

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

SWFAction.

Synopsis de la classe

SWFAction {
/* Méthodes */
__construct ( string $script )
}

Description

La syntaxe de script est basée sur le langage C, mais avec beaucoup de différences : le bytcode SWF est simplifié pour ne faire que ce dont on a besoin. Actuellement, nous ne pouvons pas implémenter des appels à des fonctions sans d'affreux hacks, car le bytecode a des valeurs de position codées en interne.

Que reste-t-il donc ? le compilateur reconnaît les instances suivantes :

  • break
  • for
  • continue
  • if
  • else
  • do
  • while

Il n'y a pas de données typées ; toutes les valeurs d'une action SWF sont stockées sous la forme de chaînes de caractères. Les fonctions suivantes peuvent être utilisées dans les expressions :

time()
Retourne le nombre de millisecondes effectuées depuis le début d'une vidéo.
random(seed)
Retourne le nombre pseudo-aléatoire dans la rangée 0-seed.
length(expr)
Retourne la longueur de l'expression donnée.
int(number)
Retourne le nombre donné arrondi au nombre inférieur.
concat(expr, expr)
Retourne la concaténation des expressions données.
ord(expr)
Retourne le code ASCII pour le caractère donné.
chr(num)
Retourne le caractère pour le code ASCII donné.
substr(string, location, length)
Retourne la sous chaîne de la longueur length à la position location de la chaîne string donnée.

De plus, les commandes suivantes peuvent être utilisées :

duplicateClip(clip, name, depth)
Duplique la vidéo nommée clip (c'est-à-dire sprite). La nouvelle vidéo a le nom name et est à la profondeur depth.
removeClip(expr)
Efface la vidéo fournie.
trace(expr)
Écrit l'expression donnée dans l'historique des traces.
startDrag(target, lock, [left, top, right, bottom])
Démarre le déplacement de la vidéo target. L'argument lock indique si l'on verrouille la souris : utilisez 0 (FALSE) ou 1 (TRUE).
stopDrag()
Commence le déplacement.
callFrame(expr)
Appel la frame nommée, comme une fonction.
getURL(url, target, [method])
Charge l'URL donnée, dans la cible nommée. L'argument target correspond à la cible du document HTML (comme "_top" ou "_blank"). L'argument optionnel method peut être POST ou GET si vous voulez soumettre les variables au serveur.
loadMovie(url, target)
Charge l'URL donnée dans la cible nommée. L'argument target peut être le nom d'une frame, ou une des valeurs magiques : "_level0" (remplace la vidéo courante) ou "_level1" (charge la nouvelle vidéo au dessus de la vidéo courante).
nextFrame()
Se place sur la prochaine frame.
prevFrame()
Se place sur la dernière (ou, plutôt, précédente) frame.
play()
Commence à jouer la vidéo.
stop()
Arrête de jouer la vidéo.
toggleQuality()
Passe d'une qualité haute à basse, et inversement.
stopSounds()
Arrête de jouer tous les sons.
gotoFrame(num)
Se place sur la frame numéro num. Les numéros de frame commencent à 0.
gotoFrame(name)
Se place sur la frame nommée name.
setTarget(expr)
Définit le contexte de l'action.
L'expression frameLoaded(num) peut être utilisée dans les instructions if et les boucles while pour vérifier si le numéro de frame donné a déjà été chargé.

Les vidéos, c'est à dire des sprites, ont des propriétés. Vous pouvez les lire, en définir quelques unes. Voici la liste :

  • x
  • y
  • xScale
  • yScale
  • currentFrame : (lecture seule)
  • totalFrames : (lecture seule)
  • alpha : degré de transparence
  • visible : 1=on, 0=off
  • width : (lecture seule)
  • height : (lecture seule)
  • rotation
  • target : (lecture seule)
  • framesLoaded : (lecture seule)
  • name
  • dropTarget : (lecture seule)
  • url : (lecture seule)
  • highQuality : 1=high, 0=low
  • focusRect
  • soundBufTime
Donc, définir la position d'un sprite est aussi simple que /box.x = 100;. Pourquoi le slash au début ? C'est la façon dont Flash garde une trace des sprites dans une vidéo, tout comme le système de fichiers Unix : ici, la boite est au premier niveau. Si le sprite nommée "box" a un autre sprite nommé "biff" au dessous, vous pouvez définir sa position comme ceci : /box/biff.x = 100;

Sommaire

  • SWFAction::__construct — Crée un nouvel objet SWFAction


Crée un nouvel objet SWFAction

  • « SWFAction
  • SWFBitmap »
  • PHP Manual
  • SWFAction
  • Crée un nouvel objet SWFAction

SWFAction::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFAction::__construct — Crée un nouvel objet SWFAction

Description

SWFAction::__construct ( string $script )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet SWFAction et y compile le script fourni.

Liste de paramètres

script

Un ActionScript à associer avec l'objet SWFAction. Voir SWFAction pour plus de détails.


La classe SWFBitmap

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

SWFBitmap.

Synopsis de la classe

SWFBitmap {
/* Méthodes */
__construct ( mixed $file [, mixed $alphafile ] )
float getHeight ( void )
float getWidth ( void )
}

Sommaire

  • SWFBitmap::__construct — Charge un objet Bitmap
  • SWFBitmap::getHeight — Retourne la hauteur d'un bitmap
  • SWFBitmap::getWidth — Retourne la largeur d'un bitmap


Charge un objet Bitmap

  • « SWFBitmap
  • SWFBitmap::getHeight »
  • PHP Manual
  • SWFBitmap
  • Charge un objet Bitmap

SWFBitmap::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFBitmap::__construct — Charge un objet Bitmap

Description

SWFBitmap::__construct ( mixed $file [, mixed $alphafile ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet SWFBitmap depuis le fichier file.

Liste de paramètres

Pour les deux paramètres, vous pouvez fournir un pointeur de fichier retourné par la fonction fopen() ou les données de l'image, sous la forme d'une chaîne de caractères binaire.

file

Note:

Nous ne pouvons utiliser que des Jpeg "baseline" (image 0), et non des optimisés "baseline" ou des Jpeg progressifs !

Vous ne pouvez pas importer directement des Png, mais vous devez utiliser l'utilitaire png2dbl pour créer un fichier dbl ("define bits lossless") depuis le Png. La raison de cela est que nous ne voulons pas de dépendance sur la libraire Png dans Ming. Autoconf doit prendre en charge cela mais ne le fait actuellement pas.

alphafile

Un fichier MSK à utiliser en tant que masque Alpha pour les images Jpeg.

Exemples

Exemple #1 Importation d'un fichier DBL

<?php
$s = new SWFShape();
$f = $s->addFill(new SWFBitmap(file_get_contents("image.dbl")));
$s->setRightFill($f);

$s->drawLine(32, 0);
$s->drawLine(0, 32);
$s->drawLine(-32, 0);
$s->drawLine(0, -32);

$m = new SWFMovie();
$m->setDimension(32, 32);
$m->add($s);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Exemple #2 Utilisation d'un masque Alpha

<?php

$s = new SWFShape();

// fichier .msk généré avec l'utilitaire "gif2mask"
$f = $s->addFill(new SWFBitmap(file_get_contents("alphafill.jpg"), file_get_contents("alphafill.msk")));
$s->setRightFill($f);

$s->drawLine(640, 0);
$s->drawLine(0, 480);
$s->drawLine(-640, 0);
$s->drawLine(0, -480);

$c = new SWFShape();
$c->setRightFill($c->addFill(0x99, 0x99, 0x99));
$c->drawLine(40, 0);
$c->drawLine(0, 40);
$c->drawLine(-40, 0);
$c->drawLine(0, -40);

$m = new SWFMovie();
$m->setDimension(640, 480);
$m->setBackground(0xcc, 0xcc, 0xcc);

// dessine l'arrière plan
for ($y=0; $y<480; $y+=40) {
  for ($x=0; $x<640; $x+=80) {
    $i = $m->add($c);
    $i->moveTo($x, $y);
  }

  $y+=40;

  for ($x=40; $x<640; $x+=80) {
    $i = $m->add($c);
    $i->moveTo($x, $y);
  }
}

$m->add($s);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Retourne la hauteur d'un bitmap

  • « SWFBitmap::__construct
  • SWFBitmap::getWidth »
  • PHP Manual
  • SWFBitmap
  • Retourne la hauteur d'un bitmap

SWFBitmap::getHeight

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFBitmap::getHeight — Retourne la hauteur d'un bitmap

Description

float SWFBitmap::getHeight ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la hauteur d'un bitmap.

Valeurs de retour

Retourne la hauteur d'un bitmap en pixels.

Voir aussi

  • SWFBitmap::getWidth() - Retourne la largeur d'un bitmap


Retourne la largeur d'un bitmap

  • « SWFBitmap::getHeight
  • SWFButton »
  • PHP Manual
  • SWFBitmap
  • Retourne la largeur d'un bitmap

SWFBitmap::getWidth

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFBitmap::getWidth — Retourne la largeur d'un bitmap

Description

float SWFBitmap::getWidth ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la largeur d'un bitmap.

Valeurs de retour

Retourne la largeur d'un bitmap, en pixels.

Voir aussi

  • SWFBitmap::getHeight() - Retourne la hauteur d'un bitmap


La classe SWFButton

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

SWFButton.

Synopsis de la classe

SWFButton {
/* Méthodes */
void addAction ( SWFAction $action , int $flags )
SWFSoundInstance addASound ( SWFSound $sound , int $flags )
void addShape ( SWFShape $shape , int $flags )
__construct ( void )
void setAction ( SWFAction $action )
void setDown ( SWFShape $shape )
void setHit ( SWFShape $shape )
void setMenu ( int $flag )
void setOver ( SWFShape $shape )
void setUp ( SWFShape $shape )
}

Sommaire

  • SWFButton::addAction — Ajoute une action
  • SWFButton::addASound — Associe un son à un bouton
  • SWFButton::addShape — Ajoute une forme à un bouton
  • SWFButton::__construct — Crée un nouveau bouton
  • SWFButton::setAction — Définit l'action
  • SWFButton::setDown — Alias pour addShape(shape, SWFBUTTON_DOWN)
  • SWFButton::setHit — Alias pour addShape(shape, SWFBUTTON_HIT)
  • SWFButton::setMenu — Active un menu sur un bouton
  • SWFButton::setOver — Alias pour addShape(shape, SWFBUTTON_OVER)
  • SWFButton::setUp — Alias pour addShape(shape, SWFBUTTON_UP)


Ajoute une action

  • « SWFButton
  • SWFButton::addASound »
  • PHP Manual
  • SWFButton
  • Ajoute une action

SWFButton::addAction

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::addAction — Ajoute une action

Description

void SWFButton::addAction ( SWFAction $action , int $flags )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajout l'action fournie au bouton dans les conditions données.

Liste de paramètres

action

Un objet SWFAction, retourné par SWFAction::__construct().

flags

Les drapeaux flags suivants sont valides : SWFBUTTON_MOUSEOVER, SWFBUTTON_MOUSEOUT, SWFBUTTON_MOUSEUP, SWFBUTTON_MOUSEUPOUTSIDE, SWFBUTTON_MOUSEDOWN, SWFBUTTON_DRAGOUT et SWFBUTTON_DRAGOVER.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFButton::addShape() - Ajoute une forme à un bouton
  • SWFAction


Associe un son à un bouton

  • « SWFButton::addAction
  • SWFButton::addShape »
  • PHP Manual
  • SWFButton
  • Associe un son à un bouton

SWFButton::addASound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::addASound — Associe un son à un bouton

Description

SWFSoundInstance SWFButton::addASound ( SWFSound $sound , int $flags )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Ajoute une forme à un bouton

  • « SWFButton::addASound
  • SWFButton::__construct »
  • PHP Manual
  • SWFButton
  • Ajoute une forme à un bouton

SWFButton::addShape

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::addShape — Ajoute une forme à un bouton

Description

void SWFButton::addShape ( SWFShape $shape , int $flags )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajoute la forme shape fournie au bouton.

Liste de paramètres

shape

Une instance de l'objet SWFShape

flags

Les drapeaux flags suivants sont valides : SWFBUTTON_UP, SWFBUTTON_OVER, SWFBUTTON_DOWN et SWFBUTTON_HIT.

SWFBUTTON_HIT n'est pas toujours affiché, il définit la région du bouton.

Valeurs de retour

Aucune valeur n'est retournée.


Crée un nouveau bouton

  • « SWFButton::addShape
  • SWFButton::setAction »
  • PHP Manual
  • SWFButton
  • Crée un nouveau bouton

SWFButton::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::__construct — Crée un nouveau bouton

Description

SWFButton::__construct ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouveau bouton.

Exemples

Cet exemple simple montre une interaction habituelle avec des boutons : "rollover", "rollon", "mouseup", "mousedown", "noaction".

Exemple #1 à habituelles avec les boutons

<?php

$f = new SWFFont("_serif");

$p = new SWFSprite();

function label($string)
{
  global $f;

  $t = new SWFTextField();
  $t->setFont($f);
  $t->addString($string);
  $t->setHeight(200);
  $t->setBounds(3200, 200);
  return $t;
}

function addLabel($string)
{
  global $p;

  $i = $p->add(label($string));
  $p->nextFrame();
  $p->remove($i);
}

$p->add(new SWFAction("stop();"));
addLabel("NO ACTION");
addLabel("SWFBUTTON_MOUSEUP");
addLabel("SWFBUTTON_MOUSEDOWN");
addLabel("SWFBUTTON_MOUSEOVER");
addLabel("SWFBUTTON_MOUSEOUT");
addLabel("SWFBUTTON_MOUSEUPOUTSIDE");
addLabel("SWFBUTTON_DRAGOVER");
addLabel("SWFBUTTON_DRAGOUT");

function rect($r, $g, $b)
{
  $s = new SWFShape();
  $s->setRightFill($s->addFill($r, $g, $b));
  $s->drawLine(600, 0);
  $s->drawLine(0, 600);
  $s->drawLine(-600, 0);
  $s->drawLine(0, -600);

  return $s;
}

$b = new SWFButton();
$b->addShape(rect(0xff, 0, 0), SWFBUTTON_UP | SWFBUTTON_HIT);
$b->addShape(rect(0, 0xff, 0), SWFBUTTON_OVER);
$b->addShape(rect(0, 0, 0xff), SWFBUTTON_DOWN);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(1);"),
          SWFBUTTON_MOUSEUP);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(2);"),
      SWFBUTTON_MOUSEDOWN);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(3);"),
      SWFBUTTON_MOUSEOVER);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(4);"),
      SWFBUTTON_MOUSEOUT);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(5);"),
      SWFBUTTON_MOUSEUPOUTSIDE);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(6);"),
      SWFBUTTON_DRAGOVER);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(7);"),
      SWFBUTTON_DRAGOUT);

$m = new SWFMovie();
$m->setDimension(4000, 3000);

$i = $m->add($p);
$i->setName("label");
$i->moveTo(400, 1900);

$i = $m->add($b);
$i->moveTo(400, 900);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Cet exemple simple vous permet d'afficher un gros bouton rouge dans la fenêtre. Pas de glisser / déposer, il bouge uniquement.

Exemple #2 Exemple de glisser

<?php

$s = new SWFShape();
$s->setRightFill($s->addFill(0xff, 0, 0));
$s->drawLine(1000,0);
$s->drawLine(0,1000);
$s->drawLine(-1000,0);
$s->drawLine(0,-1000);

$b = new SWFButton();
$b->addShape($s, SWFBUTTON_HIT | SWFBUTTON_UP | SWFBUTTON_DOWN | SWFBUTTON_OVER);

$b->addAction(new SWFAction("startDrag('/test', 0);"), // '0' signifie qu'il n'est pas verrouillé sur la souris
      SWFBUTTON_MOUSEDOWN);

$b->addAction(new SWFAction("stopDrag();"),
      SWFBUTTON_MOUSEUP | SWFBUTTON_MOUSEUPOUTSIDE);

$p = new SWFSprite();
$p->add($b);
$p->nextFrame();

$m = new SWFMovie();
$i = $m->add($p);
$i->setName('test');
$i->moveTo(1000,1000);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Définit l'action

  • « SWFButton::__construct
  • SWFButton::setDown »
  • PHP Manual
  • SWFButton
  • Définit l'action

SWFButton::setAction

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::setAction — Définit l'action

Description

void SWFButton::setAction ( SWFAction $action )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit l'action à exécuter lorsque le bouton est cliqué.

C'est un raccourci pour SWFButton::addAction() appelé avec le drapeau SWFBUTTON_MOUSEUP.

Liste de paramètres

action

Un objet SWFAction, retourné par SWFAction::__construct().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFButton::addAction() - Ajoute une action
  • SWFAction


Alias pour addShape(shape, SWFBUTTON_DOWN)

  • « SWFButton::setAction
  • SWFButton::setHit »
  • PHP Manual
  • SWFButton
  • Alias pour addShape(shape, SWFBUTTON_DOWN)

SWFButton::setDown

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::setDown — Alias pour addShape(shape, SWFBUTTON_DOWN)

Description

void SWFButton::setDown ( SWFShape $shape )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfbutton::setdown() est un alias pour addShape(shape, SWFBUTTON_DOWN).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFButton::addShape() - Ajoute une forme à un bouton
  • SWFAction


Alias pour addShape(shape, SWFBUTTON_HIT)

  • « SWFButton::setDown
  • SWFButton::setMenu »
  • PHP Manual
  • SWFButton
  • Alias pour addShape(shape, SWFBUTTON_HIT)

SWFButton::setHit

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::setHit — Alias pour addShape(shape, SWFBUTTON_HIT)

Description

void SWFButton::setHit ( SWFShape $shape )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfbutton::sethit() est un alias pour addShape(shape, SWFBUTTON_HIT).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFButton::addShape() - Ajoute une forme à un bouton
  • SWFAction


Active un menu sur un bouton

  • « SWFButton::setHit
  • SWFButton::setOver »
  • PHP Manual
  • SWFButton
  • Active un menu sur un bouton

SWFButton::setMenu

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::setMenu — Active un menu sur un bouton

Description

void SWFButton::setMenu ( int $flag )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flag

Ce paramètre peut être utilisé pour un comportement différent des boutons. Vous pouvez le définir à 0 (off) ou 1 (on).

Valeurs de retour

Aucune valeur n'est retournée.


Alias pour addShape(shape, SWFBUTTON_OVER)

  • « SWFButton::setMenu
  • SWFButton::setUp »
  • PHP Manual
  • SWFButton
  • Alias pour addShape(shape, SWFBUTTON_OVER)

SWFButton::setOver

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::setOver — Alias pour addShape(shape, SWFBUTTON_OVER)

Description

void SWFButton::setOver ( SWFShape $shape )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfbutton::setover() est un alias pour addShape(shape, SWFBUTTON_OVER).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFButton::addShape() - Ajoute une forme à un bouton
  • SWFAction


Alias pour addShape(shape, SWFBUTTON_UP)

  • « SWFButton::setOver
  • SWFDisplayItem »
  • PHP Manual
  • SWFButton
  • Alias pour addShape(shape, SWFBUTTON_UP)

SWFButton::setUp

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::setUp — Alias pour addShape(shape, SWFBUTTON_UP)

Description

void SWFButton::setUp ( SWFShape $shape )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfbutton::setup() est un alias pour addShape(shape, SWFBUTTON_UP).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFButton::addShape() - Ajoute une forme à un bouton
  • SWFAction


La classe SWFDisplayItem

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

SWFDisplayItem.

Synopsis de la classe

SWFDisplayItem {
/* Méthodes */
void addAction ( SWFAction $action , int $flags )
void addColor ( int $red , int $green , int $blue [, int $a ] )
void endMask ( void )
float getRot ( void )
float getX ( void )
float getXScale ( void )
float getXSkew ( void )
float getY ( void )
float getYScale ( void )
float getYSkew ( void )
void move ( float $dx , float $dy )
void moveTo ( float $x , float $y )
void multColor ( float $red , float $green , float $blue [, float $a ] )
void remove ( void )
void rotate ( float $angle )
void rotateTo ( float $angle )
void scale ( float $dx , float $dy )
void scaleTo ( float $x [, float $y ] )
void setDepth ( int $depth )
void setMaskLevel ( int $level )
void setMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )
void setName ( string $name )
void setRatio ( float $ratio )
void skewX ( float $ddegrees )
void skewXTo ( float $degrees )
void skewY ( float $ddegrees )
void skewYTo ( float $degrees )
}

Sommaire

  • SWFDisplayItem::addAction — Ajoute ce SWFAction à l'instance SWFSprite fournie
  • SWFDisplayItem::addColor — Ajoute une couleur à la transformation de couleur de l'élément
  • SWFDisplayItem::endMask — Une autre façon de définir une interface MASK
  • SWFDisplayItem::getRot — Description
  • SWFDisplayItem::getX — Description
  • SWFDisplayItem::getXScale — Description
  • SWFDisplayItem::getXSkew — Description
  • SWFDisplayItem::getY — Description
  • SWFDisplayItem::getYScale — Description
  • SWFDisplayItem::getYSkew — Description
  • SWFDisplayItem::move — Déplace un objet dans les coordonnées relatives
  • SWFDisplayItem::moveTo — Déplace un objet dans les coordonnées globales
  • SWFDisplayItem::multColor — Multiplie la transformation de couleur d'un élément
  • SWFDisplayItem::remove — Efface l'objet du film
  • SWFDisplayItem::rotate — Rotation, en coordonnées relatives
  • SWFDisplayItem::rotateTo — Tourne l'objet dans les coordonnées globales
  • SWFDisplayItem::scale — Met à l'échelle l'objet dans des coordonnées relatives
  • SWFDisplayItem::scaleTo — Met à l'échelle l'objet dans les coordonnées globales
  • SWFDisplayItem::setDepth — Définit le z-order
  • SWFDisplayItem::setMaskLevel — Définit le niveau de l'interface MASK
  • SWFDisplayItem::setMatrix — Définit la matrice de transformation de l'élément
  • SWFDisplayItem::setName — Définit le nom de l'objet
  • SWFDisplayItem::setRatio — Définit le ratio de l'objet
  • SWFDisplayItem::skewX — Définit le X-skew
  • SWFDisplayItem::skewXTo — Définit le X-skew
  • SWFDisplayItem::skewY — Définit le Y-skew
  • SWFDisplayItem::skewYTo — Définit le Y-skew


Ajoute ce SWFAction à l'instance SWFSprite fournie

  • « SWFDisplayItem
  • SWFDisplayItem::addColor »
  • PHP Manual
  • SWFDisplayItem
  • Ajoute ce SWFAction à l'instance SWFSprite fournie

SWFDisplayItem::addAction

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::addAction — Ajoute ce SWFAction à l'instance SWFSprite fournie

Description

void SWFDisplayItem::addAction ( SWFAction $action , int $flags )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

action

Un SWFAction, retourné par SWFAction::__construct().

flags

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFAction


Ajoute une couleur à la transformation de couleur de l'élément

  • « SWFDisplayItem::addAction
  • SWFDisplayItem::endMask »
  • PHP Manual
  • SWFDisplayItem
  • Ajoute une couleur à la transformation de couleur de l'élément

SWFDisplayItem::addColor

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::addColor — Ajoute une couleur à la transformation de couleur de l'élément

Description

void SWFDisplayItem::addColor ( int $red , int $green , int $blue [, int $a ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::addcolor() ajoute la couleur à la transformation de couleur de l'élément. La couleur est donnée sous la forme RVB.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.

Valeurs de retour

Aucune valeur n'est retournée.


Une autre façon de définir une interface MASK

  • « SWFDisplayItem::addColor
  • SWFDisplayItem::getRot »
  • PHP Manual
  • SWFDisplayItem
  • Une autre façon de définir une interface MASK

SWFDisplayItem::endMask

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::endMask — Une autre façon de définir une interface MASK

Description

void SWFDisplayItem::endMask ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « SWFDisplayItem::endMask
  • SWFDisplayItem::getX »
  • PHP Manual
  • SWFDisplayItem
  • Description

SWFDisplayItem::getRot

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getRot —

Description

float SWFDisplayItem::getRot ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Description

  • « SWFDisplayItem::getRot
  • SWFDisplayItem::getXScale »
  • PHP Manual
  • SWFDisplayItem
  • Description

SWFDisplayItem::getX

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getX —

Description

float SWFDisplayItem::getX ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFDisplayItem::getY() - Description


Description

  • « SWFDisplayItem::getX
  • SWFDisplayItem::getXSkew »
  • PHP Manual
  • SWFDisplayItem
  • Description

SWFDisplayItem::getXScale

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getXScale —

Description

float SWFDisplayItem::getXScale ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFDisplayItem::getYScale() - Description


Description

  • « SWFDisplayItem::getXScale
  • SWFDisplayItem::getY »
  • PHP Manual
  • SWFDisplayItem
  • Description

SWFDisplayItem::getXSkew

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getXSkew —

Description

float SWFDisplayItem::getXSkew ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFDisplayItem::getYSkew() - Description


Description

  • « SWFDisplayItem::getXSkew
  • SWFDisplayItem::getYScale »
  • PHP Manual
  • SWFDisplayItem
  • Description

SWFDisplayItem::getY

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getY —

Description

float SWFDisplayItem::getY ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFDisplayItem::getX() - Description


Description

  • « SWFDisplayItem::getY
  • SWFDisplayItem::getYSkew »
  • PHP Manual
  • SWFDisplayItem
  • Description

SWFDisplayItem::getYScale

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getYScale —

Description

float SWFDisplayItem::getYScale ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFDisplayItem::getXScale() - Description


Description

  • « SWFDisplayItem::getYScale
  • SWFDisplayItem::move »
  • PHP Manual
  • SWFDisplayItem
  • Description

SWFDisplayItem::getYSkew

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getYSkew —

Description

float SWFDisplayItem::getYSkew ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFDisplayItem::getXSkew() - Description


Déplace un objet dans les coordonnées relatives

  • « SWFDisplayItem::getYSkew
  • SWFDisplayItem::moveTo »
  • PHP Manual
  • SWFDisplayItem
  • Déplace un objet dans les coordonnées relatives

SWFDisplayItem::move

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::move — Déplace un objet dans les coordonnées relatives

Description

void SWFDisplayItem::move ( float $dx , float $dy )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::move() déplace l'objet courant vers (dx,dy) depuis sa position courante.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFDisplayItem::moveTo() - Déplace un objet dans les coordonnées globales


Déplace un objet dans les coordonnées globales

  • « SWFDisplayItem::move
  • SWFDisplayItem::multColor »
  • PHP Manual
  • SWFDisplayItem
  • Déplace un objet dans les coordonnées globales

SWFDisplayItem::moveTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::moveTo — Déplace un objet dans les coordonnées globales

Description

void SWFDisplayItem::moveTo ( float $x , float $y )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::moveto() déplace l'objet courant vers (x,y) dans les coordonnées globales.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFDisplayItem::move() - Déplace un objet dans les coordonnées relatives


Multiplie la transformation de couleur d'un élément

  • « SWFDisplayItem::moveTo
  • SWFDisplayItem::remove »
  • PHP Manual
  • SWFDisplayItem
  • Multiplie la transformation de couleur d'un élément

SWFDisplayItem::multColor

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::multColor — Multiplie la transformation de couleur d'un élément

Description

void SWFDisplayItem::multColor ( float $red , float $green , float $blue [, float $a ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::multcolor() multiplie la transformation de couleur de l'élément par les valeurs données.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie::add().

Liste de paramètres

Ces paramètres sont des nombres à virgule flottante, compris entre 0 et 1.0 :

red

Valeur du composant rouge

green

Valeur du composant vert

blue

Valeur du composant bleu

a

Valeur du composant alpha

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Cet exemple simple modifie l'atmosphère de l'image en une version Halloween.

Exemple #1 Exemple avec swfdisplayitem::multcolor()

<?php

$b = new SWFBitmap(file_get_contents("backyard.jpg"));
// note : utilisez votre propre image :-)
$s = new SWFShape();
$s->setRightFill($s->addFill($b));
$s->drawLine($b->getWidth(), 0);
$s->drawLine(0, $b->getHeight());
$s->drawLine(-$b->getWidth(), 0);
$s->drawLine(0, -$b->getHeight());

$m = new SWFMovie();
$m->setDimension($b->getWidth(), $b->getHeight());

$i = $m->add($s);

for ($n=0; $n<=20; ++$n) {
  $i->multColor(1.0-$n/10, 1.0, 1.0);
  $i->addColor(0xff*$n/20, 0, 0);
  $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Efface l'objet du film

  • « SWFDisplayItem::multColor
  • SWFDisplayItem::rotate »
  • PHP Manual
  • SWFDisplayItem
  • Efface l'objet du film

SWFDisplayItem::remove

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::remove — Efface l'objet du film

Description

void SWFDisplayItem::remove ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::remove() efface un objet de la liste d'affichage du film.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFMovie::add() - Ajoute n'importe quelle donnée à une vidéo


Rotation, en coordonnées relatives

  • « SWFDisplayItem::remove
  • SWFDisplayItem::rotateTo »
  • PHP Manual
  • SWFDisplayItem
  • Rotation, en coordonnées relatives

SWFDisplayItem::rotate

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::rotate — Rotation, en coordonnées relatives

Description

void SWFDisplayItem::rotate ( float $angle )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::rotate() tourne l'objet curant d'un angle angle (en degrés).

Cet objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFDisplayItem::rotateTo() - Tourne l'objet dans les coordonnées globales


Tourne l'objet dans les coordonnées globales

  • « SWFDisplayItem::rotate
  • SWFDisplayItem::scale »
  • PHP Manual
  • SWFDisplayItem
  • Tourne l'objet dans les coordonnées globales

SWFDisplayItem::rotateTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::rotateTo — Tourne l'objet dans les coordonnées globales

Description

void SWFDisplayItem::rotateTo ( float $angle )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::rotateto() définit la rotation de l'objet courant à angle degrés dans les coordonnées globales.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Cet exemple effectue trois rotations de chaînes de caractères depuis l'arrière plan vers le premier plan.

Exemple #1 Exemple avec swfdisplayitem->rotateto()

<?php
$thetext =  "ming!";

$f = new SWFFont("Bauhaus 93.fdb");

$m = new SWFMovie();
$m->setRate(24.0);
$m->setDimension(2400, 1600);
$m->setBackground(0xff, 0xff, 0xff);

// des fonctions avec beaucoup d'arguments arbitraires
// sont toujours de bonne idée ! vraiment !

function text($r, $g, $b, $a, $rot, $x, $y, $scale, $string)
{
  global $f, $m;

  $t = new SWFText();
  $t->setFont($f);
  $t->setColor($r, $g, $b, $a);
  $t->setHeight(960);
  $t->moveTo(-($f->getWidth($string))/2, $f->getAscent()/2);
  $t->addString($string);

  // nous pouvons ajouter des propriétés comme une variable normal PHP,
  // tant que les noms ne sont pas déjà utilisés.
  // e.g., nous ne pouvons pas définir $i->scale, parce que c'est une fonction

  $i = $m->add($t);
  $i->x = $x;
  $i->y = $y;
  $i->rot = $rot;
  $i->s = $scale;
  $i->rotateTo($rot);
  $i->scale($scale, $scale);

  // mais les modifications sont locales à la fonction, donc, nous devons
  // retourner l'objet original.

  return $i;
}

function step($i)
{
  $oldrot = $i->rot;
  $i->rot = 19*$i->rot/20;
  $i->x = (19*$i->x + 1200)/20;
  $i->y = (19*$i->y + 800)/20;
  $i->s = (19*$i->s + 1.0)/20;

  $i->rotateTo($i->rot);
  $i->scaleTo($i->s, $i->s);
  $i->moveTo($i->x, $i->y);

  return $i;
}

$i1 = text(0xff, 0x33, 0x33, 0xff, 900, 1200, 800, 0.03, $thetext);
$i2 = text(0x00, 0x33, 0xff, 0x7f, -560, 1200, 800, 0.04, $thetext);
$i3 = text(0xff, 0xff, 0xff, 0x9f, 180, 1200, 800, 0.001, $thetext);

for ($i=1; $i<=100; ++$i) {
  $i1 = step($i1);
  $i2 = step($i2);
  $i3 = step($i3);

  $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Voir aussi

  • SWFDisplayItem::rotate() - Rotation, en coordonnées relatives


Met à l'échelle l'objet dans des coordonnées relatives

  • « SWFDisplayItem::rotateTo
  • SWFDisplayItem::scaleTo »
  • PHP Manual
  • SWFDisplayItem
  • Met à l'échelle l'objet dans des coordonnées relatives

SWFDisplayItem::scale

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::scale — Met à l'échelle l'objet dans des coordonnées relatives

Description

void SWFDisplayItem::scale ( float $dx , float $dy )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::scale() met à l'échelle l'objet courant par (dx,dy) depuis sa taille courante.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFDisplayItem::scaleTo() - Met à l'échelle l'objet dans les coordonnées globales


Met à l'échelle l'objet dans les coordonnées globales

  • « SWFDisplayItem::scale
  • SWFDisplayItem::setDepth »
  • PHP Manual
  • SWFDisplayItem
  • Met à l'échelle l'objet dans les coordonnées globales

SWFDisplayItem::scaleTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::scaleTo — Met à l'échelle l'objet dans les coordonnées globales

Description

void SWFDisplayItem::scaleTo ( float $x [, float $y ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::scaleto() met à l'échelle l'objet courant à (x,y) dans les coordonnées globales.

Cet objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFDisplayItem::scale() - Met à l'échelle l'objet dans des coordonnées relatives


Définit le z-order

  • « SWFDisplayItem::scaleTo
  • SWFDisplayItem::setMaskLevel »
  • PHP Manual
  • SWFDisplayItem
  • Définit le z-order

SWFDisplayItem::setDepth

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::setDepth — Définit le z-order

Description

void SWFDisplayItem::setDepth ( int $depth )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::setdepth() définit l'objet z-order à depth.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.


Définit le niveau de l'interface MASK

  • « SWFDisplayItem::setDepth
  • SWFDisplayItem::setMatrix »
  • PHP Manual
  • SWFDisplayItem
  • Définit le niveau de l'interface MASK

SWFDisplayItem::setMaskLevel

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::setMaskLevel — Définit le niveau de l'interface MASK

Description

void SWFDisplayItem::setMaskLevel ( int $level )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Définit la matrice de transformation de l'élément

  • « SWFDisplayItem::setMaskLevel
  • SWFDisplayItem::setName »
  • PHP Manual
  • SWFDisplayItem
  • Définit la matrice de transformation de l'élément

SWFDisplayItem::setMatrix

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::setMatrix — Définit la matrice de transformation de l'élément

Description

void SWFDisplayItem::setMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Définit le nom de l'objet

  • « SWFDisplayItem::setMatrix
  • SWFDisplayItem::setRatio »
  • PHP Manual
  • SWFDisplayItem
  • Définit le nom de l'objet

SWFDisplayItem::setName

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::setName — Définit le nom de l'objet

Description

void SWFDisplayItem::setName ( string $name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::setname() définit le nom de l'objet à name, afin qu'il soit identifiable par un script d'action.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté par la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.


Définit le ratio de l'objet

  • « SWFDisplayItem::setName
  • SWFDisplayItem::skewX »
  • PHP Manual
  • SWFDisplayItem
  • Définit le ratio de l'objet

SWFDisplayItem::setRatio

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::setRatio — Définit le ratio de l'objet

Description

void SWFDisplayItem::setRatio ( float $ratio )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::setratio() définit le ratio de l'objet à ratio.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté à la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Cet exemple simple va transformer trois cercles concentrés.

Exemple #1 Exemple avec swfdisplayitem::setname()

<?php

$p = new SWFMorph();

$g = new SWFGradient();
$g->addEntry(0.0, 0, 0, 0);
$g->addEntry(0.16, 0xff, 0xff, 0xff);
$g->addEntry(0.32, 0, 0, 0);
$g->addEntry(0.48, 0xff, 0xff, 0xff);
$g->addEntry(0.64, 0, 0, 0);
$g->addEntry(0.80, 0xff, 0xff, 0xff);
$g->addEntry(1.00, 0, 0, 0);

$s = $p->getShape1();
$f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
$f->scaleTo(0.05);
$s->setLeftFill($f);
$s->movePenTo(-160, -120);
$s->drawLine(320, 0);
$s->drawLine(0, 240);
$s->drawLine(-320, 0);
$s->drawLine(0, -240);

$g = new SWFGradient();
$g->addEntry(0.0, 0, 0, 0);
$g->addEntry(0.16, 0xff, 0, 0);
$g->addEntry(0.32, 0, 0, 0);
$g->addEntry(0.48, 0, 0xff, 0);
$g->addEntry(0.64, 0, 0, 0);
$g->addEntry(0.80, 0, 0, 0xff);
$g->addEntry(1.00, 0, 0, 0);

$s = $p->getShape2();
$f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
$f->scaleTo(0.05);
$f->skewXTo(1.0);
$s->setLeftFill($f);
$s->movePenTo(-160, -120);
$s->drawLine(320, 0);
$s->drawLine(0, 240);
$s->drawLine(-320, 0);
$s->drawLine(0, -240);

$m = new SWFMovie();
$m->setDimension(320, 240);
$i = $m->add($p);
$i->moveTo(160, 120);

for ($n=0; $n<=1.001; $n+=0.01) {
    $i->setRatio($n);
    $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Définit le X-skew

  • « SWFDisplayItem::setRatio
  • SWFDisplayItem::skewXTo »
  • PHP Manual
  • SWFDisplayItem
  • Définit le X-skew

SWFDisplayItem::skewX

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::skewX — Définit le X-skew

Description

void SWFDisplayItem::skewX ( float $ddegrees )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::skewx() ajoute ddegrees au x-skew courant.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFDisplayItem::skewXTo() - Définit le X-skew
  • SWFDisplayItem::skewY() - Définit le Y-skew
  • SWFDisplayItem::skewYTo() - Définit le Y-skew


Définit le X-skew

  • « SWFDisplayItem::skewX
  • SWFDisplayItem::skewY »
  • PHP Manual
  • SWFDisplayItem
  • Définit le X-skew

SWFDisplayItem::skewXTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::skewXTo — Définit le X-skew

Description

void SWFDisplayItem::skewXTo ( float $degrees )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::skewxto() définit le x-skew à degrees.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté avec la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFDisplayItem::skewX() - Définit le X-skew
  • SWFDisplayItem::skewY() - Définit le Y-skew
  • SWFDisplayItem::skewYTo() - Définit le Y-skew


Définit le Y-skew

  • « SWFDisplayItem::skewXTo
  • SWFDisplayItem::skewYTo »
  • PHP Manual
  • SWFDisplayItem
  • Définit le Y-skew

SWFDisplayItem::skewY

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::skewY — Définit le Y-skew

Description

void SWFDisplayItem::skewY ( float $ddegrees )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::skewy() ajoute ddegrees au y-skew courant.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté en utilisant la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFDisplayItem::skewYTo() - Définit le Y-skew
  • SWFDisplayItem::skewX() - Définit le X-skew
  • SWFDisplayItem::skewXTo() - Définit le X-skew


Définit le Y-skew

  • « SWFDisplayItem::skewY
  • SWFFill »
  • PHP Manual
  • SWFDisplayItem
  • Définit le Y-skew

SWFDisplayItem::skewYTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::skewYTo — Définit le Y-skew

Description

void SWFDisplayItem::skewYTo ( float $degrees )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem::skewyto() définit le y-skew à degrees. Pour une valeur de degrees à 1.0, cela signifie que la vue est pivoté de 45 degrés.

L'objet peut être un objet swfshape(), un objet swfbutton(), un objet swftext() ou un objet swfsprite(). Il doit être ajouté en utilisant la fonction swfmovie::add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFDisplayItem::skewY() - Définit le Y-skew
  • SWFDisplayItem::skewX() - Définit le X-skew
  • SWFDisplayItem::skewXTo() - Définit le X-skew


La classe SWFFill

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

L'objet SWFFill vous permet de transformer (mise à l'échelle, skew, rotation) un bitmap et des formes gradient.

Les objets swffill sont créés par la méthode SWFShape::addFill().

Synopsis de la classe

SWFFill {
/* Méthodes */
void moveTo ( float $x , float $y )
void rotateTo ( float $angle )
void scaleTo ( float $x [, float $y ] )
void skewXTo ( float $x )
void skewYTo ( float $y )
}

Sommaire

  • SWFFill::moveTo — Déplace le motif original
  • SWFFill::rotateTo — Définit la rotation du motif
  • SWFFill::scaleTo — Définit l'échelle du motif
  • SWFFill::skewXTo — Définit le motif x-skew
  • SWFFill::skewYTo — Définit le motif y-skew


Déplace le motif original

  • « SWFFill
  • SWFFill::rotateTo »
  • PHP Manual
  • SWFFill
  • Déplace le motif original

SWFFill::moveTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFill::moveTo — Déplace le motif original

Description

void SWFFill::moveTo ( float $x , float $y )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Déplace le motif original aux coordonnées globales données.

Liste de paramètres

x

Coordonnée en X

y

Coordonnée en Y

Valeurs de retour

Aucune valeur n'est retournée.


Définit la rotation du motif

  • « SWFFill::moveTo
  • SWFFill::scaleTo »
  • PHP Manual
  • SWFFill
  • Définit la rotation du motif

SWFFill::rotateTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFill::rotateTo — Définit la rotation du motif

Description

void SWFFill::rotateTo ( float $angle )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit la rotation du motif à l'angle donné.

Liste de paramètres

angle

L'angle de rotation, en degrés.

Valeurs de retour

Aucune valeur n'est retournée.


Définit l'échelle du motif

  • « SWFFill::rotateTo
  • SWFFill::skewXTo »
  • PHP Manual
  • SWFFill
  • Définit l'échelle du motif

SWFFill::scaleTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFill::scaleTo — Définit l'échelle du motif

Description

void SWFFill::scaleTo ( float $x [, float $y ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit l'échelle du motif aux coordonnées données.

Liste de paramètres

x

Coordonnée en X

y

Coordonnée en Y

Valeurs de retour

Aucune valeur n'est retournée.


Définit le motif x-skew

  • « SWFFill::scaleTo
  • SWFFill::skewYTo »
  • PHP Manual
  • SWFFill
  • Définit le motif x-skew

SWFFill::skewXTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFill::skewXTo — Définit le motif x-skew

Description

void SWFFill::skewXTo ( float $x )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit le motif x-skew à x.

Liste de paramètres

x

Lorsque x vaut 1.0, ce sera une progression de 45 degrés en arrière. Une valeur supérieure sera une progression en avant.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFFill::skewYTo() - Définit le motif y-skew


Définit le motif y-skew

  • « SWFFill::skewXTo
  • SWFFont »
  • PHP Manual
  • SWFFill
  • Définit le motif y-skew

SWFFill::skewYTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFill::skewYTo — Définit le motif y-skew

Description

void SWFFill::skewYTo ( float $y )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit le motif y-skew à y.

Liste de paramètres

y

Lorsque y vaut 1.0, ce sera une progression de 45 degrés en arrière. Une valeur supérieure sera une progression en avant.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFFill::skewXTo() - Définit le motif x-skew


La classe SWFFont

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

L'objet SWFFont représente une référence vers la définition de la police, pour une utilisation avec SWFText::setFont() et SWFTextField::setFont().

Synopsis de la classe

SWFFont {
/* Méthodes */
__construct ( string $filename )
float getAscent ( void )
float getDescent ( void )
float getLeading ( void )
string getShape ( int $code )
float getUTF8Width ( string $string )
float getWidth ( string $string )
}

Sommaire

  • SWFFont::__construct — Charge la définition d'une police
  • SWFFont::getAscent — Retourne la montée de la police, ou 0 si non disponible
  • SWFFont::getDescent — Retourne la descente de la police, ou 0 si non disponible
  • SWFFont::getLeading — Retourne l'interlignage de la police, ou 0 si non disponible
  • SWFFont::getShape — Retourne la forme du glyphe d'un caractère, sous la forme d'une chaîne de caractères
  • SWFFont::getUTF8Width — Calcule la largeur d'une chaîne donnée dans une police
  • SWFFont::getWidth — Retourne la largeur de la chaîne


Charge la définition d'une police

  • « SWFFont
  • SWFFont::getAscent »
  • PHP Manual
  • SWFFont
  • Charge la définition d'une police

SWFFont::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::__construct — Charge la définition d'une police

Description

SWFFont::__construct ( string $filename )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Si filename est le nom d'un fichier FDB (i.e., se terminant par l'extension ".fdb"), la fonction chargera la définition depuis ce fichier. Sinon, elle crée une référence de police.

FDB ("font definition block") est une interface simple pour le bloc SWF DefineFont2 qui contient une description complète d'une police. Une telle description peut être créée avec les fichiers de gabarit SWT Generator avec l'utilitaire inclus makefdb : regardez dans le dossier des utilitaires de votre distribution de Ming.

Les polices définies par le navigateur ne contiennent pas d'informations sur les polices autres que leurs noms. Il est convenu que la définition de la police est fournie par le lecteur vidéo. Les polices _serif, _sans, et _typewriter doivent toujours être disponibles. Par exemple :

<?php
$f = newSWFFont("_sans");
?>
vous donnera la police sans-serif standard, probablement la même que <font name="sans-serif"> en HTML.


Retourne la montée de la police, ou 0 si non disponible

  • « SWFFont::__construct
  • SWFFont::getDescent »
  • PHP Manual
  • SWFFont
  • Retourne la montée de la police, ou 0 si non disponible

SWFFont::getAscent

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::getAscent — Retourne la montée de la police, ou 0 si non disponible

Description

float SWFFont::getAscent ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFFont::getDescent() - Retourne la descente de la police, ou 0 si non disponible


Retourne la descente de la police, ou 0 si non disponible

  • « SWFFont::getAscent
  • SWFFont::getLeading »
  • PHP Manual
  • SWFFont
  • Retourne la descente de la police, ou 0 si non disponible

SWFFont::getDescent

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::getDescent — Retourne la descente de la police, ou 0 si non disponible

Description

float SWFFont::getDescent ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFFont::getAscent() - Retourne la montée de la police, ou 0 si non disponible


Retourne l'interlignage de la police, ou 0 si non disponible

  • « SWFFont::getDescent
  • SWFFont::getShape »
  • PHP Manual
  • SWFFont
  • Retourne l'interlignage de la police, ou 0 si non disponible

SWFFont::getLeading

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::getLeading — Retourne l'interlignage de la police, ou 0 si non disponible

Description

float SWFFont::getLeading ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne la forme du glyphe d'un caractère, sous la forme d'une chaîne de caractères

  • « SWFFont::getLeading
  • SWFFont::getUTF8Width »
  • PHP Manual
  • SWFFont
  • Retourne la forme du glyphe d'un caractère, sous la forme d'une chaîne de caractères

SWFFont::getShape

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::getShape — Retourne la forme du glyphe d'un caractère, sous la forme d'une chaîne de caractères

Description

string SWFFont::getShape ( int $code )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Calcule la largeur d'une chaîne donnée dans une police

  • « SWFFont::getShape
  • SWFFont::getWidth »
  • PHP Manual
  • SWFFont
  • Calcule la largeur d'une chaîne donnée dans une police

SWFFont::getUTF8Width

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::getUTF8Width — Calcule la largeur d'une chaîne donnée dans une police

Description

float SWFFont::getUTF8Width ( string $string )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFFont::getWidth() - Retourne la largeur de la chaîne


Retourne la largeur de la chaîne

  • « SWFFont::getUTF8Width
  • SWFFontChar »
  • PHP Manual
  • SWFFont
  • Retourne la largeur de la chaîne

SWFFont::getWidth

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::getWidth — Retourne la largeur de la chaîne

Description

float SWFFont::getWidth ( string $string )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swffont::getwidth() retourne la largeur de la chaîne string, en utilisant la police par défaut. Vous devriez probablement utiliser la version swftext() de cette méthode qui utilise l'échelle du texte de l'objet.

Voir aussi

  • SWFFont::getUTF8Width() - Calcule la largeur d'une chaîne donnée dans une police


La classe SWFFontChar

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

SWFFontChar.

Synopsis de la classe

SWFFontChar {
/* Méthodes */
void addChars ( string $char )
void addUTF8Chars ( string $char )
}

Sommaire

  • SWFFontChar::addChars — Ajoute des caractères à une police pour l'exportation de la police
  • SWFFontChar::addUTF8Chars — Ajoute des caractères à une police pour l'exportation de la police


Ajoute des caractères à une police pour l'exportation de la police

  • « SWFFontChar
  • SWFFontChar::addUTF8Chars »
  • PHP Manual
  • SWFFontChar
  • Ajoute des caractères à une police pour l'exportation de la police

SWFFontChar::addChars

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFontChar::addChars — Ajoute des caractères à une police pour l'exportation de la police

Description

void SWFFontChar::addChars ( string $char )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFFontChar::addUTF8Chars() - Ajoute des caractères à une police pour l'exportation de la police


Ajoute des caractères à une police pour l'exportation de la police

  • « SWFFontChar::addChars
  • SWFGradient »
  • PHP Manual
  • SWFFontChar
  • Ajoute des caractères à une police pour l'exportation de la police

SWFFontChar::addUTF8Chars

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFontChar::addUTF8Chars — Ajoute des caractères à une police pour l'exportation de la police

Description

void SWFFontChar::addUTF8Chars ( string $char )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFFontChar::addChars() - Ajoute des caractères à une police pour l'exportation de la police


La classe SWFGradient

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

SWFGradient.

Synopsis de la classe

SWFGradient {
/* Méthodes */
void addEntry ( float $ratio , int $red , int $green , int $blue [, int $alpha = 255 ] )
__construct ( void )
}

Sommaire

  • SWFGradient::addEntry — Ajoute une entrée dans la liste de gradient
  • SWFGradient::__construct — Crée un objet gradient


Ajoute une entrée dans la liste de gradient

  • « SWFGradient
  • SWFGradient::__construct »
  • PHP Manual
  • SWFGradient
  • Ajoute une entrée dans la liste de gradient

SWFGradient::addEntry

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFGradient::addEntry — Ajoute une entrée dans la liste de gradient

Description

void SWFGradient::addEntry ( float $ratio , int $red , int $green , int $blue [, int $alpha = 255 ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfgradient::addentry() ajoute une entrée dans la liste de gradient. ratio est un nombre compris entre 0 et 1, indiquant l'endroit dans le gradient cette couleur apparaît.

red, green, blue est une couleur (en mode RVB). Le dernier paramètre a est optionnel.

Valeurs de retour

Aucune valeur n'est retournée.


Crée un objet gradient

  • « SWFGradient::addEntry
  • SWFMorph »
  • PHP Manual
  • SWFGradient
  • Crée un objet gradient

SWFGradient::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFGradient::__construct — Crée un objet gradient

Description

SWFGradient::__construct ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfgradient() crée un nouvel objet SWFGradient.

Après avoir ajouter des entrées à votre gradient, vous pouvez utiliser le gradient dans une forme avec la méthode swfshape::addfill().

SWFGradient a les méthodes suivantes : swfgradient::addentry().

Cet exemple simple trace un gradient noir et blanc, en arrière plan et un disque au centre.

Exemple #1 Exemple avec swfgradient()

<?php

  $m = new SWFMovie();
  $m->setDimension(320, 240);

  $s = new SWFShape();

  // premier gradient - noir vers blanc
  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(1.0, 0xff, 0xff, 0xff);

  $f = $s->addFill($g, SWFFILL_LINEAR_GRADIENT);
  $f->scaleTo(0.01);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  $s = new SWFShape();

  // second gradient - gradient radial, depuis le rouge vers transparent
  $g = new SWFGradient();
  $g->addEntry(0.0, 0xff, 0, 0, 0xff);
  $g->addEntry(1.0, 0xff, 0, 0, 0);

  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.005);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>


La classe SWFMorph

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

Ces méthodes ici sont triées étrangement. Il semblerait plus logique d'avoir juste l'objet newSWFMorph (shape1, shape2) ; mais actuellement, shape2 doivent savoir que c'est la deuxième partie d'un morphing. (Ainsi, parce qu'il commence à afficher dès qu'il obtiendra des commandes de dessin - s'il gardait sa propre description de ses formes et écrivait au fur et à mesure, ce serait beaucoup plus facile.).

Synopsis de la classe

SWFMorph {
/* Méthodes */
__construct ( void )
SWFShape getShape1 ( void )
SWFShape getShape2 ( void )
}

Sommaire

  • SWFMorph::__construct — Crée un nouvel objet SWFMorph
  • SWFMorph::getShape1 — Récupère un gestionnaire pour une forme
  • SWFMorph::getShape2 — Récupère un gestionnaire de forme de fin


Crée un nouvel objet SWFMorph

  • « SWFMorph
  • SWFMorph::getShape1 »
  • PHP Manual
  • SWFMorph
  • Crée un nouvel objet SWFMorph

SWFMorph::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMorph::__construct — Crée un nouvel objet SWFMorph

Description

SWFMorph::__construct ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet SWFMorph.

Également appelé "shape tween".

Exemples

Cet exemple simple va effectuer un morphing d'un gros carré rouge vers un petit carré bleu avec une bordure noire.

Exemple #1 Exemple avec swfmorph()

<?php
  $p = new SWFMorph();

  $s = $p->getShape1();
  $s->setLine(0, 0, 0, 0);

  $s->setLeftFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-1000,-1000);
  $s->drawLine(2000,0);
  $s->drawLine(0,2000);
  $s->drawLine(-2000,0);
  $s->drawLine(0,-2000);

  $s = $p->getShape2();
  $s->setLine(60,0,0,0);
  $s->setLeftFill($s->addFill(0, 0, 0xff));
  $s->movePenTo(0,-1000);
  $s->drawLine(1000,1000);
  $s->drawLine(-1000,1000);
  $s->drawLine(-1000,-1000);
  $s->drawLine(1000,-1000);

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setBackground(0xff, 0xff, 0xff);

  $i = $m->add($p);
  $i->moveTo(1500,1000);

  for ($r=0.0; $r<=1.0; $r+=0.1) {
    $i->setRatio($r);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>


Récupère un gestionnaire pour une forme

  • « SWFMorph::__construct
  • SWFMorph::getShape2 »
  • PHP Manual
  • SWFMorph
  • Récupère un gestionnaire pour une forme

SWFMorph::getShape1

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMorph::getShape1 — Récupère un gestionnaire pour une forme

Description

SWFShape SWFMorph::getShape1 ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère la forme de départ pour un morphing.

Valeurs de retour

Retourne un objet SWFShape.

Voir aussi

  • SWFMorph::getShape2() - Récupère un gestionnaire de forme de fin


Récupère un gestionnaire de forme de fin

  • « SWFMorph::getShape1
  • SWFMovie »
  • PHP Manual
  • SWFMorph
  • Récupère un gestionnaire de forme de fin

SWFMorph::getShape2

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMorph::getShape2 — Récupère un gestionnaire de forme de fin

Description

SWFShape SWFMorph::getShape2 ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère la forme de fin d'un morphing.

Valeurs de retour

Retourne un objet SWFShape.

Voir aussi

  • SWFMorph::getShape1() - Récupère un gestionnaire pour une forme


La classe SWFMovie

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

SWFMovie est un objet vidéo représentant la vidéo SWF.

Synopsis de la classe

SWFMovie {
/* Méthodes */
mixed add ( object $instance )
void addExport ( SWFCharacter $char , string $name )
mixed addFont ( SWFFont $font )
__construct ([ int $version ] )
SWFSprite importChar ( string $libswf , string $name )
SWFFontChar importFont ( string $libswf , string $name )
void labelFrame ( string $label )
void nextFrame ( void )
int output ([ int $compression ] )
void remove ( object $instance )
int save ( string $filename [, int $compression = -1 ] )
int saveToFile ( resource $x [, int $compression = -1 ] )
void setbackground ( int $red , int $green , int $blue )
void setDimension ( float $width , float $height )
void setFrames ( int $number )
void setRate ( float $rate )
SWFSoundInstance startSound ( SWFSound $sound )
void stopSound ( SWFSound $sound )
int streamMP3 ( mixed $mp3file [, float $skip = 0 ] )
void writeExports ( void )
}

Sommaire

  • SWFMovie::add — Ajoute n'importe quelle donnée à une vidéo
  • SWFMovie::addExport — Description
  • SWFMovie::addFont — Description
  • SWFMovie::__construct — Crée un nouvel objet vidéo, représentant une vidéo SWF version 4
  • SWFMovie::importChar — Description
  • SWFMovie::importFont — Description
  • SWFMovie::labelFrame — Nomme une frame
  • SWFMovie::nextFrame — Se déplace sur la prochaine frame d'une animation
  • SWFMovie::output — Affiche la vidéo
  • SWFMovie::remove — Efface une instance d'un objet depuis la liste d'affichage
  • SWFMovie::save — Sauvegarde la vidéo SWF dans un fichier
  • SWFMovie::saveToFile — Description
  • SWFMovie::setbackground — Définit la couleur d'arrière plan
  • SWFMovie::setDimension — Définit les dimensions de la vidéo
  • SWFMovie::setFrames — Définit le nombre de frames dans l'animation
  • SWFMovie::setRate — Définit le débit des frames de l'animation
  • SWFMovie::startSound — Description
  • SWFMovie::stopSound — Description
  • SWFMovie::streamMP3 — Diffuse un fichier MP3
  • SWFMovie::writeExports — Description


Ajoute n'importe quelle donnée à une vidéo

  • « SWFMovie
  • SWFMovie::addExport »
  • PHP Manual
  • SWFMovie
  • Ajoute n'importe quelle donnée à une vidéo

SWFMovie::add

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::add — Ajoute n'importe quelle donnée à une vidéo

Description

mixed SWFMovie::add ( object $instance )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajoute un objet SWF à la vidéo courante.

Liste de paramètres

instance

N'importe quelle type d'objet, comme SWFShape, SWFText, SWFFont.

Valeurs de retour

Pour les types affichables (forme, texte, bouton, sprite), cette fonction retourne un SWFDisplayItem, un gestionnaire de l'objet dans une liste d'affichage. Ainsi, vous pouvez ajouter la même forme dans la vidéo plusieurs fois et récupère séparément un gestionnaire pour chacun.

Voir aussi

  • SWFMovie::remove() - Efface une instance d'un objet depuis la liste d'affichage


Description

  • « SWFMovie::add
  • SWFMovie::addFont »
  • PHP Manual
  • SWFMovie
  • Description

SWFMovie::addExport

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::addExport —

Description

void SWFMovie::addExport ( SWFCharacter $char , string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « SWFMovie::addExport
  • SWFMovie::__construct »
  • PHP Manual
  • SWFMovie
  • Description

SWFMovie::addFont

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::addFont —

Description

mixed SWFMovie::addFont ( SWFFont $font )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Crée un nouvel objet vidéo, représentant une vidéo SWF version 4

  • « SWFMovie::addFont
  • SWFMovie::importChar »
  • PHP Manual
  • SWFMovie
  • Crée un nouvel objet vidéo, représentant une vidéo SWF version 4

SWFMovie::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::__construct — Crée un nouvel objet vidéo, représentant une vidéo SWF version 4

Description

SWFMovie::__construct ([ int $version ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet vidéo, représentant une vidéo SWF.

Liste de paramètres

version

La version SWF désirée. Par défaut, 4.


Description

  • « SWFMovie::__construct
  • SWFMovie::importFont »
  • PHP Manual
  • SWFMovie
  • Description

SWFMovie::importChar

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::importChar —

Description

SWFSprite SWFMovie::importChar ( string $libswf , string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFMovie::importFont() - Description


Description

  • « SWFMovie::importChar
  • SWFMovie::labelFrame »
  • PHP Manual
  • SWFMovie
  • Description

SWFMovie::importFont

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::importFont —

Description

SWFFontChar SWFMovie::importFont ( string $libswf , string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFMovie::importChar() - Description


Nomme une frame

  • « SWFMovie::importFont
  • SWFMovie::nextFrame »
  • PHP Manual
  • SWFMovie
  • Nomme une frame

SWFMovie::labelFrame

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::labelFrame — Nomme une frame

Description

void SWFMovie::labelFrame ( string $label )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Se déplace sur la prochaine frame d'une animation

  • « SWFMovie::labelFrame
  • SWFMovie::output »
  • PHP Manual
  • SWFMovie
  • Se déplace sur la prochaine frame d'une animation

SWFMovie::nextFrame

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::nextFrame — Se déplace sur la prochaine frame d'une animation

Description

void SWFMovie::nextFrame ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Se déplace sur la prochaine frame d'une animation.

Valeurs de retour

Aucune valeur n'est retournée.


Affiche la vidéo

  • « SWFMovie::nextFrame
  • SWFMovie::remove »
  • PHP Manual
  • SWFMovie
  • Affiche la vidéo

SWFMovie::output

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::output — Affiche la vidéo

Description

int SWFMovie::output ([ int $compression ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Affiche la vidéo SWFMovie.

N'oubliez pas d'envoyer l'en-tête HTTP Content-Type avant d'utiliser cette fonction afin d'afficher la vidéo dans le navigateur.

Liste de paramètres

compression

Le degré de compression peut être une valeur comprise entre 0 et 9, définissant la compression SWF, similaire à la compression Gzip.

Ce paramètre n'est disponible que depuis Flash MX (6).

Valeurs de retour

Retourne le nombre d'octets écrits, ou FALSE si une erreur survient.

Exemples

Exemple #1 Affiche la vidéo dans un navigateur

<?php
header('Content-type: application/x-shockwave-flash');
$movie->output();
?>

Voir aussi

  • SWFMovie::save() - Sauvegarde la vidéo SWF dans un fichier
  • SWFMovie::saveToFile() - Description


Efface une instance d'un objet depuis la liste d'affichage

  • « SWFMovie::output
  • SWFMovie::save »
  • PHP Manual
  • SWFMovie
  • Efface une instance d'un objet depuis la liste d'affichage

SWFMovie::remove

(PHP 5.2.1-5.3.0, PHP 7, PECL ming SVN)

SWFMovie::remove — Efface une instance d'un objet depuis la liste d'affichage

Description

void SWFMovie::remove ( object $instance )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface l'objet instance fourni depuis la liste d'affichage.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFMovie::add() - Ajoute n'importe quelle donnée à une vidéo


Sauvegarde la vidéo SWF dans un fichier

  • « SWFMovie::remove
  • SWFMovie::saveToFile »
  • PHP Manual
  • SWFMovie
  • Sauvegarde la vidéo SWF dans un fichier

SWFMovie::save

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::save — Sauvegarde la vidéo SWF dans un fichier

Description

int SWFMovie::save ( string $filename [, int $compression = -1 ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sauvegarde la vidéo SWF dans le fichier filename.

Liste de paramètres

filename

Le chemin vers le document SWF.

compression

Le degré de compression peut être une valeur comprise entre 0 et 9, définissant la compression SWF, similaire à la compression Gzip.

Ce paramètre n'est disponible que depuis Flash MX (6).

Valeurs de retour

Retourne le nombre d'octets écrits ou FALSE si une erreur survient.

Voir aussi

  • SWFMovie::output() - Affiche la vidéo
  • SWFMovie::saveToFile() - Description


Description

  • « SWFMovie::save
  • SWFMovie::setbackground »
  • PHP Manual
  • SWFMovie
  • Description

SWFMovie::saveToFile

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::saveToFile —

Description

int SWFMovie::saveToFile ( resource $x [, int $compression = -1 ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

X

compression

Le degré de compression peut être une valeur comprise entre 0 et 9, définissant la compression SWF, similaire à la compression Gzip.

Ce paramètre n'est disponible que depuis Flash MX (6).

Valeurs de retour

Retourne le nombre d'octets écrits, ou FALSE si une erreur survient.

Voir aussi

  • SWFMovie::output() - Affiche la vidéo
  • SWFMovie::save() - Sauvegarde la vidéo SWF dans un fichier


Définit la couleur d'arrière plan

  • « SWFMovie::saveToFile
  • SWFMovie::setDimension »
  • PHP Manual
  • SWFMovie
  • Définit la couleur d'arrière plan

SWFMovie::setbackground

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::setbackground — Définit la couleur d'arrière plan

Description

void SWFMovie::setbackground ( int $red , int $green , int $blue )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit la couleur d'arrière plan.

Pourquoi pas un version rgba ? Avec cette version, vous pourriez vouloir afficher l'arrière plan HTML. Il y a une façon de faire cela mais cela ne fonctionne que sous IE4. Faites une recherche sur le site de » http://www.macromedia.com/ pour plus de détails.

Liste de paramètres

Ces paramètres sont des entiers compris entre 0 et 255 ou des hexadécimaux compris entre 0x00 et 0xFF :

red

Valeur du composant rouge

green

Valeur du composant vert

blue

Valeur du composant bleu

Valeurs de retour

Aucune valeur n'est retournée.


Définit les dimensions de la vidéo

  • « SWFMovie::setbackground
  • SWFMovie::setFrames »
  • PHP Manual
  • SWFMovie
  • Définit les dimensions de la vidéo

SWFMovie::setDimension

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::setDimension — Définit les dimensions de la vidéo

Description

void SWFMovie::setDimension ( float $width , float $height )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit les dimensions de la vidéo en spécifiant la largeur width et la hauteur height.

Liste de paramètres

width

La largeur de la vidéo.

height

La hauteur de la vidéo.

Valeurs de retour

Aucune valeur n'est retournée.


Définit le nombre de frames dans l'animation

  • « SWFMovie::setDimension
  • SWFMovie::setRate »
  • PHP Manual
  • SWFMovie
  • Définit le nombre de frames dans l'animation

SWFMovie::setFrames

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::setFrames — Définit le nombre de frames dans l'animation

Description

void SWFMovie::setFrames ( int $number )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit le nombre total de frames dans l'animation à number.

Liste de paramètres

number

Le nombre de frames.

Valeurs de retour

Aucune valeur n'est retournée.


Définit le débit des frames de l'animation

  • « SWFMovie::setFrames
  • SWFMovie::startSound »
  • PHP Manual
  • SWFMovie
  • Définit le débit des frames de l'animation

SWFMovie::setRate

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::setRate — Définit le débit des frames de l'animation

Description

void SWFMovie::setRate ( float $rate )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Définit le débit des frames de l'animation à rate.

L'animation peut ralentir si le lecteur ne peut pas rendre les frames assez rapidement - si un son est diffusé dans l'animation, les frames seront sacrifiés en faveur du son.

Liste de paramètres

rate

Le débit, en frame par secondes.

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « SWFMovie::setRate
  • SWFMovie::stopSound »
  • PHP Manual
  • SWFMovie
  • Description

SWFMovie::startSound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::startSound —

Description

SWFSoundInstance SWFMovie::startSound ( SWFSound $sound )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFMovie::stopSound() - Description


Description

  • « SWFMovie::startSound
  • SWFMovie::streamMP3 »
  • PHP Manual
  • SWFMovie
  • Description

SWFMovie::stopSound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::stopSound —

Description

void SWFMovie::stopSound ( SWFSound $sound )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFMovie::startSound() - Description


Diffuse un fichier MP3

  • « SWFMovie::stopSound
  • SWFMovie::writeExports »
  • PHP Manual
  • SWFMovie
  • Diffuse un fichier MP3

SWFMovie::streamMP3

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::streamMP3 — Diffuse un fichier MP3

Description

int SWFMovie::streamMP3 ( mixed $mp3file [, float $skip = 0 ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Diffuse le fichier MP3 mp3file fourni.

Cette méthode n'est pas vraiment robuste lors de la gestion des bizarreries (peut ignorer un tag ID3 initial, mais c'est bien tout).

Notez que le film n'est pas assez compact pour contenir le flux MP3 en entier - vous devez ajouter (longueur de la musique * frames par seconde) frames pour y récupérer le flux complet.

Liste de paramètres

mp3file

Peut être un pointeur de fichier retourné par la fonction fopen() ou les données MP3, sous la forme d'une chaîne binaire.

skip

Nombre de secondes à ignorer.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
5.2.0 | Le paramètre skip a été ajouté

Exemples

Exemple #1 Exemple de diffusion

<?php
$m = new SWFMovie();
$m->setRate(12.0);
$m->streamMp3(file_get_contents("distortobass.mp3"));
// utilisez votre propre MP3

// La durée du fichier est 11.85 secondes à 12.0 fps = 142 frames
$m->setFrames(142);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Description

  • « SWFMovie::streamMP3
  • SWFPrebuiltClip »
  • PHP Manual
  • SWFMovie
  • Description

SWFMovie::writeExports

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::writeExports —

Description

void SWFMovie::writeExports ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


La classe SWFPrebuiltClip

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

Introduction

SWFPrebuiltClip.

Synopsis de la classe

SWFPrebuiltClip {
/* Méthodes */
__construct ( mixed $file )
}

Sommaire

  • SWFPrebuiltClip::__construct — Retourne un objet SWFPrebuiltClip


Retourne un objet SWFPrebuiltClip

  • « SWFPrebuiltClip
  • SWFShape »
  • PHP Manual
  • SWFPrebuiltClip
  • Retourne un objet SWFPrebuiltClip

SWFPrebuiltClip::__construct

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

SWFPrebuiltClip::__construct — Retourne un objet SWFPrebuiltClip

Description

SWFPrebuiltClip::__construct ( mixed $file )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


La classe SWFShape

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

SWFShape.

Synopsis de la classe

SWFShape {
/* Méthodes */
SWFFill addFill ( int $red , int $green , int $blue [, int $alpha = 255 ] )
__construct ( void )
void drawArc ( float $r , float $startAngle , float $endAngle )
void drawCircle ( float $r )
int drawCubic ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
int drawCubicTo ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
int drawCurve ( float $controldx , float $controldy , float $anchordx , float $anchordy [, float $targetdx ], float $targetdy )
int drawCurveTo ( float $controlx , float $controly , float $anchorx , float $anchory [, float $targetx ], float $targety )
void drawGlyph ( SWFFont $font , string $character [, int $size ] )
void drawLine ( float $dx , float $dy )
void drawLineTo ( float $x , float $y )
void movePen ( float $dx , float $dy )
void movePenTo ( float $x , float $y )
void setLeftFill ( SWFGradient $fill )
void setLine ( SWFShape $shape )
void setRightFill ( SWFGradient $fill )
}

Sommaire

  • SWFShape::addFill — Ajoute un motif solide à la forme
  • SWFShape::__construct — Crée un nouvel objet SWFShape
  • SWFShape::drawArc — Trace un arc de cercle entre deux angles
  • SWFShape::drawCircle — Trace un cercle, centré sur la position courante
  • SWFShape::drawCubic — Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle
  • SWFShape::drawCubicTo — Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle
  • SWFShape::drawCurve — Trace une courbe (relative)
  • SWFShape::drawCurveTo — Trace une courbe
  • SWFShape::drawGlyph — Dessine le premier caractère d'une chaîne donnée dans la forme en utilisant la définition du glyphe pour la police donnée
  • SWFShape::drawLine — Trace une ligne (relative)
  • SWFShape::drawLineTo — Trace une ligne
  • SWFShape::movePen — Déplace le stylo
  • SWFShape::movePenTo — Déplace le stylo dans la forme
  • SWFShape::setLeftFill — Définit la couleur de la trame de gauche
  • SWFShape::setLine — Définit le style de la forme d'une ligne
  • SWFShape::setRightFill — Définit la couleur de la trame de droite


Ajoute un motif solide à la forme

  • « SWFShape
  • SWFShape::__construct »
  • PHP Manual
  • SWFShape
  • Ajoute un motif solide à la forme

SWFShape::addFill

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::addFill — Ajoute un motif solide à la forme

Description

SWFFill SWFShape::addFill ( int $red , int $green , int $blue [, int $alpha = 255 ] )
SWFFill addFill ( SWFBitmap $bitmap [, int $flags ] )
SWFFill addFill ( SWFGradient $gradient [, int $flags ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

SWFShape::addFill() ajoute un motif solide à la liste des styles de la forme. SWFShape::addFill() accepte trois types différents d'arguments.

red, green, blue est une couleur (en mode RVB). Le dernier paramètre a est optionnel.

L'argument bitmap est un objet SWFBitmap(). L'argument flags peut être une valeur parmi : SWFFILL_CLIPPED_BITMAP, SWFFILL_TILED_BITMAP, SWFFILL_LINEAR_GRADIENT ou SWFFILL_RADIAL_GRADIENT. Par défaut, vaut SWFFILL_TILED_BITMAP pour SWFBitmap et SWFFILL_LINEAR_GRADIENT pour SWFGradient.

L'argument gradient est un objet SWFGradient(). L'argument flags peut être une valeur parmi : SWFFILL_RADIAL_GRADIENT ou SWFFILL_LINEAR_GRADIENT. Par défaut, vaut SWFFILL_LINEAR_GRADIENT.

SWFShape::addFill() retourne un objet SWFFill() pour l'utiliser avec la fonction SWFShape::setLeftFill() et la fonction SWFShape::setRightFill().

Exemples

Cet exemple trace une frame dans un bitmap.

Exemple #1 Exemple avec SWFShape::addFill()

<?php

$p = new SWFMorph();

$b = new SWFBitmap(file_get_contents("alphafill.jpg"));
// utilisez votre propre bitmap
$width = $b->getWidth();
$height = $b->getHeight();

$s = $p->getShape1();
$f = $s->addFill($b, SWFFILL_TILED_BITMAP);
$f->moveTo(-$width/2, -$height/4);
$f->scaleTo(1.0, 0.5);
$s->setLeftFill($f);
$s->movePenTo(-$width/2, -$height/4);
$s->drawLine($width, 0);
$s->drawLine(0, $height/2);
$s->drawLine(-$width, 0);
$s->drawLine(0, -$height/2);

$s = $p->getShape2();
$f = $s->addFill($b, SWFFILL_TILED_BITMAP);

// Ceci n'a pas d'effet !
$f->moveTo(-$width/4, -$height/2);
$f->scaleTo(0.5, 1.0);

$s->setLeftFill($f);
$s->movePenTo(-$width/4, -$height/2);
$s->drawLine($width/2, 0);
$s->drawLine(0, $height);
$s->drawLine(-$width/2, 0);
$s->drawLine(0, -$height);

$m = new SWFMovie();
$m->setDimension($width, $height);
$i = $m->add($p);
$i->moveTo($width/2, $height/2);

for ($n=0; $n<1.001; $n+=0.03) {
    $i->setRatio($n);
    $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Voir aussi

  • SWFShape::setLeftFill() - Définit la couleur de la trame de gauche
  • SWFShape::setRightFill() - Définit la couleur de la trame de droite


Crée un nouvel objet SWFShape

  • « SWFShape::addFill
  • SWFShape::drawArc »
  • PHP Manual
  • SWFShape
  • Crée un nouvel objet SWFShape

SWFShape::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::__construct — Crée un nouvel objet SWFShape

Description

SWFShape::__construct ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet SWFShape.

Exemples

Cet exemple trace une ellipse, en rouge.

Exemple #1 Exemple avec swfshape()

<?php
$s = new SWFShape();
$s->setLine(40, 0x7f, 0, 0);
$s->setRightFill($s->addFill(0xff, 0, 0));
$s->movePenTo(200, 200);
$s->drawLineTo(6200, 200);
$s->drawLineTo(6200, 4600);
$s->drawCurveTo(200, 4600, 200, 200);

$m = new SWFMovie();
$m->setDimension(6400, 4800);
$m->setRate(12.0);
$m->add($s);
$m->nextFrame();

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Trace un arc de cercle entre deux angles

  • « SWFShape::__construct
  • SWFShape::drawCircle »
  • PHP Manual
  • SWFShape
  • Trace un arc de cercle entre deux angles

SWFShape::drawArc

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawArc — Trace un arc de cercle entre deux angles

Description

void SWFShape::drawArc ( float $r , float $startAngle , float $endAngle )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFShape::drawCircle() - Trace un cercle, centré sur la position courante


Trace un cercle, centré sur la position courante

  • « SWFShape::drawArc
  • SWFShape::drawCubic »
  • PHP Manual
  • SWFShape
  • Trace un cercle, centré sur la position courante

SWFShape::drawCircle

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawCircle — Trace un cercle, centré sur la position courante

Description

void SWFShape::drawCircle ( float $r )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle

  • « SWFShape::drawCircle
  • SWFShape::drawCubicTo »
  • PHP Manual
  • SWFShape
  • Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle

SWFShape::drawCubic

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawCubic — Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle

Description

int SWFShape::drawCubic ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFShape::drawCubicTo() - Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle


Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle

  • « SWFShape::drawCubic
  • SWFShape::drawCurve »
  • PHP Manual
  • SWFShape
  • Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle

SWFShape::drawCubicTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawCubicTo — Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle

Description

int SWFShape::drawCubicTo ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFShape::drawCubic() - Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle


Trace une courbe (relative)

  • « SWFShape::drawCubicTo
  • SWFShape::drawCurveTo »
  • PHP Manual
  • SWFShape
  • Trace une courbe (relative)

SWFShape::drawCurve

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawCurve — Trace une courbe (relative)

Description

int SWFShape::drawCurve ( float $controldx , float $controldy , float $anchordx , float $anchordy [, float $targetdx ], float $targetdy )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape::drawcurve() trace une courbe (en utilisant le style de la ligne courante, défini par la fonction swfshape::setline()) depuis la position courante du stylo vers la position relative (anchorx, anchory) en utilisant le point de contrôle relatif (controlx,controly).

Avec 6 paramètres, elle dessine une courbe de Bézier vers le point (x+targetdx, x+targetdy) avec les points de contrôle (x+controldx, y+controldy) et (x+anchordx, y+anchordy).

Voir aussi

  • SWFShape::drawCurve()


Trace une courbe

  • « SWFShape::drawCurve
  • SWFShape::drawGlyph »
  • PHP Manual
  • SWFShape
  • Trace une courbe

SWFShape::drawCurveTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawCurveTo — Trace une courbe

Description

int SWFShape::drawCurveTo ( float $controlx , float $controly , float $anchorx , float $anchory [, float $targetx ], float $targety )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape::drawcurveto() trace une courbe (en utilisant le style de la ligne courante, défini par la fonction swfshape::setline()) depuis la position courante du stylo vers (anchorx,anchory) en utilisant le point de contrôle (controlx,controly).

Avec 6 paramètres, elle trace une courbe de Bézier vers le point (targetx, targety) avec les points de contrôle (controlx, controly) et (anchorx, anchory).

Voir aussi

  • SWFShape::drawCurveTo()


Dessine le premier caractère d'une chaîne donnée dans la forme en utilisant la définition du glyphe pour la police donnée

  • « SWFShape::drawCurveTo
  • SWFShape::drawLine »
  • PHP Manual
  • SWFShape
  • Dessine le premier caractère d'une chaîne donnée dans la forme en utilisant la définition du glyphe pour la police donnée

SWFShape::drawGlyph

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawGlyph — Dessine le premier caractère d'une chaîne donnée dans la forme en utilisant la définition du glyphe pour la police donnée

Description

void SWFShape::drawGlyph ( SWFFont $font , string $character [, int $size ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Trace une ligne (relative)

  • « SWFShape::drawGlyph
  • SWFShape::drawLineTo »
  • PHP Manual
  • SWFShape
  • Trace une ligne (relative)

SWFShape::drawLine

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawLine — Trace une ligne (relative)

Description

void SWFShape::drawLine ( float $dx , float $dy )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape::drawline() trace une ligne (en utilisant le style de la ligne courante défini par la fonction swfshape::setline()) depuis sa position courante vers (dx,dy).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFShape::drawLineTo() - Trace une ligne


Trace une ligne

  • « SWFShape::drawLine
  • SWFShape::movePen »
  • PHP Manual
  • SWFShape
  • Trace une ligne

SWFShape::drawLineTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawLineTo — Trace une ligne

Description

void SWFShape::drawLineTo ( float $x , float $y )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape::setrightfill() trace une ligne (en utilisant le style de la ligne courante, défini par la fonction swfshape::setline()) depuis la position courante du stylo vers le point (x,y) dans l'espace de coordonnées de la forme.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFShape::drawLine() - Trace une ligne (relative)


Déplace le stylo

  • « SWFShape::drawLineTo
  • SWFShape::movePenTo »
  • PHP Manual
  • SWFShape
  • Déplace le stylo

SWFShape::movePen

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::movePen — Déplace le stylo

Description

void SWFShape::movePen ( float $dx , float $dy )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape::setrightfill() déplace le stylo depuis les coordonnées courantes vers (x courant + dx, y courant + dy) dans l'espace de coordonnées de la forme.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFShape::movePenTo() - Déplace le stylo dans la forme


Déplace le stylo dans la forme

  • « SWFShape::movePen
  • SWFShape::setLeftFill »
  • PHP Manual
  • SWFShape
  • Déplace le stylo dans la forme

SWFShape::movePenTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::movePenTo — Déplace le stylo dans la forme

Description

void SWFShape::movePenTo ( float $x , float $y )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape::setrightfill() déplace le stylo vers (x,y) dans l'espace de coordonnées de la forme.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFShape::movePen() - Déplace le stylo


Définit la couleur de la trame de gauche

  • « SWFShape::movePenTo
  • SWFShape::setLine »
  • PHP Manual
  • SWFShape
  • Définit la couleur de la trame de gauche

SWFShape::setLeftFill

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::setLeftFill — Définit la couleur de la trame de gauche

Description

void SWFShape::setLeftFill ( SWFGradient $fill )
void setLeftFill ( int $red , int $green , int $blue [, int $a ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette fonction est utile pour savoir quelle trame est au premier plan.

swfshape::setleftfill() définit la couleur de la trame de gauche. L'objet fill est un objet SWFFill retourné par une des fonctions addFill.

Ceci semble être inversé lorsque vous définissez une forme dans un morph. Si votre navigateur plante, tentez de définir le motif sur un autre côté.

Raccourci pour $swfshape->setleftfill($s->addfill($r, $g, $b [, $a]));.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFShape::setRightFill() - Définit la couleur de la trame de droite


Définit le style de la forme d'une ligne

  • « SWFShape::setLeftFill
  • SWFShape::setRightFill »
  • PHP Manual
  • SWFShape
  • Définit le style de la forme d'une ligne

SWFShape::setLine

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::setLine — Définit le style de la forme d'une ligne

Description

void SWFShape::setLine ( SWFShape $shape )
void setLine ( int $width , int $red , int $green , int $blue [, int $a ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape::setline() définit le style de la forme d'une ligne. width est l'épaisseur de la ligne. Si width vaut 0, le style de la ligne est effacé (alors, tous les autres arguments sont ignorés). Si width est supérieur à 0, alors la couleur de la ligne est définie à red, green, blue. Le dernier paramètre, a, est optionnel.

Vous devez déclarer tous les styles de ligne avant de les utiliser (voir l'exemple).

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Cet exemple simple va dessiner un gros "!#%*@".

Exemple #1 Exemple avec swfshape::setline()

<?php
$s = new SWFShape();
$f1 = $s->addFill(0xff, 0, 0);
$f2 = $s->addFill(0xff, 0x7f, 0);
$f3 = $s->addFill(0xff, 0xff, 0);
$f4 = $s->addFill(0, 0xff, 0);
$f5 = $s->addFill(0, 0, 0xff);

// bogue : nous devons déclarer tous les styles de ligne avant de les utiliser
$s->setLine(40, 0x7f, 0, 0);
$s->setLine(40, 0x7f, 0x3f, 0);
$s->setLine(40, 0x7f, 0x7f, 0);
$s->setLine(40, 0, 0x7f, 0);
$s->setLine(40, 0, 0, 0x7f);

$f = new SWFFont('Techno.fdb');

$s->setRightFill($f1);
$s->setLine(40, 0x7f, 0, 0);
$s->drawGlyph($f, '!');
$s->movePen($f->getWidth('!'), 0);

$s->setRightFill($f2);
$s->setLine(40, 0x7f, 0x3f, 0);
$s->drawGlyph($f, '#');
$s->movePen($f->getWidth('#'), 0);

$s->setRightFill($f3);
$s->setLine(40, 0x7f, 0x7f, 0);
$s->drawGlyph($f, '%');
$s->movePen($f->getWidth('%'), 0);

$s->setRightFill($f4);
$s->setLine(40, 0, 0x7f, 0);
$s->drawGlyph($f, '*');
$s->movePen($f->getWidth('*'), 0);

$s->setRightFill($f5);
$s->setLine(40, 0, 0, 0x7f);
$s->drawGlyph($f, '@');

$m = new SWFMovie();
$m->setDimension(3000,2000);
$m->setRate(12.0);
$i = $m->add($s);
$i->moveTo(1500-$f->getWidth("!#%*@")/2, 1000+$f->getAscent()/2);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Valeurs de retour

Aucune valeur n'est retournée.


Définit la couleur de la trame de droite

  • « SWFShape::setLine
  • SWFSound »
  • PHP Manual
  • SWFShape
  • Définit la couleur de la trame de droite

SWFShape::setRightFill

(No version information available, might only be in Git)

SWFShape::setRightFill — Définit la couleur de la trame de droite

Description

void SWFShape::setRightFill ( SWFGradient $fill )
void setRightFill ( int $red , int $green , int $blue [, int $a ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Raccourci pour $swfshape->setrightfill($s->addfill($r, $g, $b [, $a]));.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFShape::setLeftFill() - Définit la couleur de la trame de gauche


La classe SWFSound

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

SWFSound.

Synopsis de la classe

SWFSound {
/* Méthodes */
__construct ( string $filename [, int $flags = 0 ] )
}

Sommaire

  • SWFSound::__construct — Retourne un nouvel objet SWFSound depuis un fichier donné


Retourne un nouvel objet SWFSound depuis un fichier donné

  • « SWFSound
  • SWFSoundInstance »
  • PHP Manual
  • SWFSound
  • Retourne un nouvel objet SWFSound depuis un fichier donné

SWFSound::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSound::__construct — Retourne un nouvel objet SWFSound depuis un fichier donné

Description

SWFSound::__construct ( string $filename [, int $flags = 0 ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


La classe SWFSoundInstance

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

Les objets SWFSoundInstance sont retournés par les méthodes SWFSprite::startSound() et SWFMovie::startSound().

Synopsis de la classe

SWFSoundInstance {
/* Méthodes */
void loopCount ( int $point )
void loopInPoint ( int $point )
void loopOutPoint ( int $point )
void noMultiple ( void )
}

Sommaire

  • SWFSoundInstance::loopCount — Description
  • SWFSoundInstance::loopInPoint — Description
  • SWFSoundInstance::loopOutPoint — Description
  • SWFSoundInstance::noMultiple — Description


Description

  • « SWFSoundInstance
  • SWFSoundInstance::loopInPoint »
  • PHP Manual
  • SWFSoundInstance
  • Description

SWFSoundInstance::loopCount

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSoundInstance::loopCount —

Description

void SWFSoundInstance::loopCount ( int $point )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

point

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFSoundInstance::loopOutPoint() - Description


Description

  • « SWFSoundInstance::loopCount
  • SWFSoundInstance::loopOutPoint »
  • PHP Manual
  • SWFSoundInstance
  • Description

SWFSoundInstance::loopInPoint

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSoundInstance::loopInPoint —

Description

void SWFSoundInstance::loopInPoint ( int $point )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

point

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFSoundInstance::loopOutPoint() - Description


Description

  • « SWFSoundInstance::loopInPoint
  • SWFSoundInstance::noMultiple »
  • PHP Manual
  • SWFSoundInstance
  • Description

SWFSoundInstance::loopOutPoint

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSoundInstance::loopOutPoint —

Description

void SWFSoundInstance::loopOutPoint ( int $point )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

point

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFSoundInstance::loopInPoint() - Description


Description

  • « SWFSoundInstance::loopOutPoint
  • SWFSprite »
  • PHP Manual
  • SWFSoundInstance
  • Description

SWFSoundInstance::noMultiple

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSoundInstance::noMultiple —

Description

void SWFSoundInstance::noMultiple ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


La classe SWFSprite

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

SWFSprite est également connu sous le nom "movie clip", elle vous permet de créer des objets qui sont animés.

Synopsis de la classe

SWFSprite {
/* Méthodes */
void add ( object $object )
__construct ( void )
void labelFrame ( string $label )
void nextFrame ( void )
void remove ( object $object )
void setFrames ( int $number )
SWFSoundInstance startSound ( SWFSound $sount )
void stopSound ( SWFSound $sount )
}

Sommaire

  • SWFSprite::add — Ajoute un objet à un sprite
  • SWFSprite::__construct — Crée un clip vidéo (un sprite)
  • SWFSprite::labelFrame — Libellé d'une image
  • SWFSprite::nextFrame — Déplace la prochaine image de l'animation
  • SWFSprite::remove — Efface l'objet d'un sprite
  • SWFSprite::setFrames — Définit le nombre total d'images dans l'animation
  • SWFSprite::startSound — Description
  • SWFSprite::stopSound — Description


Ajoute un objet à un sprite

  • « SWFSprite
  • SWFSprite::__construct »
  • PHP Manual
  • SWFSprite
  • Ajoute un objet à un sprite

SWFSprite::add

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::add — Ajoute un objet à un sprite

Description

void SWFSprite::add ( object $object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfsprite::add() ajoute un objet
swfshape(), un objet swfbutton(),
un objet swftext(), un objet swfaction()
ou un objet swfsprite().

Pour les types affichables (swfshape(),
swfbutton(), swftext(),
swfaction() ou swfsprite()),
cette fonction retourne un gestionnaire vers l'objet dans la liste d'affichage.

Valeurs de retour

Aucune valeur n'est retournée.


Crée un clip vidéo (un sprite)

  • « SWFSprite::add
  • SWFSprite::labelFrame »
  • PHP Manual
  • SWFSprite
  • Crée un clip vidéo (un sprite)

SWFSprite::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::__construct — Crée un clip vidéo (un sprite)

Description

SWFSprite::__construct ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet SWFSprite.


Libellé d'une image

  • « SWFSprite::__construct
  • SWFSprite::nextFrame »
  • PHP Manual
  • SWFSprite
  • Libellé d'une image

SWFSprite::labelFrame

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::labelFrame — Libellé d'une image

Description

void SWFSprite::labelFrame ( string $label )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Déplace la prochaine image de l'animation

  • « SWFSprite::labelFrame
  • SWFSprite::remove »
  • PHP Manual
  • SWFSprite
  • Déplace la prochaine image de l'animation

SWFSprite::nextFrame

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::nextFrame — Déplace la prochaine image de l'animation

Description

void SWFSprite::nextFrame ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfsprite::setframes() déplace la prochaine image de l'animation.

Valeurs de retour

Aucune valeur n'est retournée.


Efface l'objet d'un sprite

  • « SWFSprite::nextFrame
  • SWFSprite::setFrames »
  • PHP Manual
  • SWFSprite
  • Efface l'objet d'un sprite

SWFSprite::remove

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::remove — Efface l'objet d'un sprite

Description

void SWFSprite::remove ( object $object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfsprite::remove() efface un objet
swfshape(), un objet swfbutton(),
un objet swftext(), un objet swfaction()
ou un objet swfsprite() d'un sprite.

Valeurs de retour

Aucune valeur n'est retournée.


Définit le nombre total d'images dans l'animation

  • « SWFSprite::remove
  • SWFSprite::startSound »
  • PHP Manual
  • SWFSprite
  • Définit le nombre total d'images dans l'animation

SWFSprite::setFrames

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::setFrames — Définit le nombre total d'images dans l'animation

Description

void SWFSprite::setFrames ( int $number )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfsprite::setframes() définit le nombre total d'images dans l'animation à numberofframes.

Valeurs de retour

Aucune valeur n'est retournée.


Description

  • « SWFSprite::setFrames
  • SWFSprite::stopSound »
  • PHP Manual
  • SWFSprite
  • Description

SWFSprite::startSound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::startSound —

Description

SWFSoundInstance SWFSprite::startSound ( SWFSound $sount )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFSprite::stopSound() - Description


Description

  • « SWFSprite::startSound
  • SWFText »
  • PHP Manual
  • SWFSprite
  • Description

SWFSprite::stopSound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::stopSound —

Description

void SWFSprite::stopSound ( SWFSound $sount )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFSprite::startSound() - Description


La classe SWFText

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

SWFText.

Synopsis de la classe

SWFText {
/* Méthodes */
void addString ( string $string )
void addUTF8String ( string $text )
__construct ( void )
float getAscent ( void )
float getDescent ( void )
float getLeading ( void )
float getUTF8Width ( string $string )
float getWidth ( string $string )
void moveTo ( float $x , float $y )
void setColor ( int $red , int $green , int $blue [, int $a = 255 ] )
void setFont ( SWFFont $font )
void setHeight ( float $height )
void setSpacing ( float $spacing )
}

Sommaire

  • SWFText::addString — Dessine une chaîne de caractères
  • SWFText::addUTF8String — Écrit le texte donné dans l'objet SWFText à la position courante, en utilisant la police, la haute, l'espacement et la couleur courants
  • SWFText::__construct — Crée un nouvel objet SWFText
  • SWFText::getAscent — Retourne la montée de la police courante à sa taille courante, ou 0 si elle n'est pas disponible
  • SWFText::getDescent — Retourne la descente de la police courante à sa taille courante, ou 0 si elle n'est pas disponible
  • SWFText::getLeading — Retourne l'interlignage de la police courante à sa taille courante, ou 0 s'il n'est pas disponible
  • SWFText::getUTF8Width — Calcule la largeur de la chaîne donnée dans la police et la taille courante du texte
  • SWFText::getWidth — Calcule la largeur d'une chaîne
  • SWFText::moveTo — Déplace le stylo
  • SWFText::setColor — Définit la couleur courante du texte
  • SWFText::setFont — Définit la police courante
  • SWFText::setHeight — Définit la hauteur de la police courante
  • SWFText::setSpacing — Définit l'espacement de la police courante


Dessine une chaîne de caractères

  • « SWFText
  • SWFText::addUTF8String »
  • PHP Manual
  • SWFText
  • Dessine une chaîne de caractères

SWFText::addString

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::addString — Dessine une chaîne de caractères

Description

void SWFText::addString ( string $string )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext::addstring() dessine la chaîne string à la position courante. Le stylo est à la position basse du texte ; i.e., le texte ascendant est dans la direction -y.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFText::addUTF8String() - Écrit le texte donné dans l'objet SWFText à la position courante, en utilisant la police, la haute, l'espacement et la couleur courants


Écrit le texte donné dans l'objet SWFText à la position courante, en utilisant la police, la haute, l'espacement et la couleur courants

  • « SWFText::addString
  • SWFText::__construct »
  • PHP Manual
  • SWFText
  • Écrit le texte donné dans l'objet SWFText à la position courante, en utilisant la police, la haute, l'espacement et la couleur courants

SWFText::addUTF8String

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::addUTF8String — Écrit le texte donné dans l'objet SWFText à la position courante, en utilisant la police, la haute, l'espacement et la couleur courants

Description

void SWFText::addUTF8String ( string $text )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFText::addString() - Dessine une chaîne de caractères


Crée un nouvel objet SWFText

  • « SWFText::addUTF8String
  • SWFText::getAscent »
  • PHP Manual
  • SWFText
  • Crée un nouvel objet SWFText

SWFText::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::__construct — Crée un nouvel objet SWFText

Description

SWFText::__construct ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel objet SWFText, prêt pour les manipulation.

Exemples

Cet exemple simple va écrire le gros texte jaune suivant : "PHP génère du flash avec Ming", sur fond blanc.

Exemple #1 Exemple avec swftext()

<?php
$f = new SWFFont("Techno.fdb");
$t = new SWFText();
$t->setFont($f);
$t->moveTo(200, 2400);
$t->setColor(0xff, 0xff, 0);
$t->setHeight(1200);
$t->addString("PHP génère du flash avec Ming");

$m = new SWFMovie();
$m->setDimension(5400, 3600);

$m->add($t);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Retourne la montée de la police courante à sa taille courante, ou 0 si elle n'est pas disponible

  • « SWFText::__construct
  • SWFText::getDescent »
  • PHP Manual
  • SWFText
  • Retourne la montée de la police courante à sa taille courante, ou 0 si elle n'est pas disponible

SWFText::getAscent

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::getAscent — Retourne la montée de la police courante à sa taille courante, ou 0 si elle n'est pas disponible

Description

float SWFText::getAscent ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFText::getDescent() - Retourne la descente de la police courante à sa taille courante, ou 0 si elle n'est pas disponible


Retourne la descente de la police courante à sa taille courante, ou 0 si elle n'est pas disponible

  • « SWFText::getAscent
  • SWFText::getLeading »
  • PHP Manual
  • SWFText
  • Retourne la descente de la police courante à sa taille courante, ou 0 si elle n'est pas disponible

SWFText::getDescent

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::getDescent — Retourne la descente de la police courante à sa taille courante, ou 0 si elle n'est pas disponible

Description

float SWFText::getDescent ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFText::getAscent() - Retourne la montée de la police courante à sa taille courante, ou 0 si elle n'est pas disponible


Retourne l'interlignage de la police courante à sa taille courante, ou 0 s'il n'est pas disponible

  • « SWFText::getDescent
  • SWFText::getUTF8Width »
  • PHP Manual
  • SWFText
  • Retourne l'interlignage de la police courante à sa taille courante, ou 0 s'il n'est pas disponible

SWFText::getLeading

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::getLeading — Retourne l'interlignage de la police courante à sa taille courante, ou 0 s'il n'est pas disponible

Description

float SWFText::getLeading ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Calcule la largeur de la chaîne donnée dans la police et la taille courante du texte

  • « SWFText::getLeading
  • SWFText::getWidth »
  • PHP Manual
  • SWFText
  • Calcule la largeur de la chaîne donnée dans la police et la taille courante du texte

SWFText::getUTF8Width

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::getUTF8Width — Calcule la largeur de la chaîne donnée dans la police et la taille courante du texte

Description

float SWFText::getUTF8Width ( string $string )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • SWFText::getWidth() - Calcule la largeur d'une chaîne


Calcule la largeur d'une chaîne

  • « SWFText::getUTF8Width
  • SWFText::moveTo »
  • PHP Manual
  • SWFText
  • Calcule la largeur d'une chaîne

SWFText::getWidth

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::getWidth — Calcule la largeur d'une chaîne

Description

float SWFText::getWidth ( string $string )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la largeur de rendu de la chaîne string dans la police, l'échelle, l'espacement courante du texte.

Voir aussi

  • SWFText::getUTF8Width() - Calcule la largeur de la chaîne donnée dans la police et la taille courante du texte


Déplace le stylo

  • « SWFText::getWidth
  • SWFText::setColor »
  • PHP Manual
  • SWFText
  • Déplace le stylo

SWFText::moveTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::moveTo — Déplace le stylo

Description

void SWFText::moveTo ( float $x , float $y )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext::moveto() déplace le stylo (ou curseur) aux coordonnées x et y dans l'espace du texte. Si l'un des deux vaut 0, la valeur dans cette dimension reste la même. Ceci est ennuyeux et devrait être fixé.

Valeurs de retour

Aucune valeur n'est retournée.


Définit la couleur courante du texte

  • « SWFText::moveTo
  • SWFText::setFont »
  • PHP Manual
  • SWFText
  • Définit la couleur courante du texte

SWFText::setColor

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::setColor — Définit la couleur courante du texte

Description

void SWFText::setColor ( int $red , int $green , int $blue [, int $a = 255 ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Modifie la couleur courante du texte.

Liste de paramètres

Ces paramètres sont des entiers dans l'intervalle 0 à 255 ou des hexadécimaux compris entre 0x00 et 0xFF :

red

Valeur du composant rouge

green

Valeur du composant vert

blue

Valeur du composant bleu

a

Valeur du composant alpha

Valeurs de retour

Aucune valeur n'est retournée.


Définit la police courante

  • « SWFText::setColor
  • SWFText::setHeight »
  • PHP Manual
  • SWFText
  • Définit la police courante

SWFText::setFont

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::setFont — Définit la police courante

Description

void SWFText::setFont ( SWFFont $font )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext::setfont() définit la police courante à la police font donnée.

Valeurs de retour

Aucune valeur n'est retournée.


Définit la hauteur de la police courante

  • « SWFText::setFont
  • SWFText::setSpacing »
  • PHP Manual
  • SWFText
  • Définit la hauteur de la police courante

SWFText::setHeight

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::setHeight — Définit la hauteur de la police courante

Description

void SWFText::setHeight ( float $height )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext::setheight() définit la hauteur de la police courante à height. Par défaut, vaut 240.

Valeurs de retour

Aucune valeur n'est retournée.


Définit l'espacement de la police courante

  • « SWFText::setHeight
  • SWFTextField »
  • PHP Manual
  • SWFText
  • Définit l'espacement de la police courante

SWFText::setSpacing

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::setSpacing — Définit l'espacement de la police courante

Description

void SWFText::setSpacing ( float $spacing )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext::setspacing() définit l'espacement de la police courante à spacing. Par défaut, vaut 1.0. O signifie que toutes les lettres seront écrites à la même position. Cela ne fonctionne pas vraiment car un léger avancement s'effectue au fil des lettres.

Valeurs de retour

Aucune valeur n'est retournée.


La classe SWFTextField

(PHP 5 <= 5.3.0, PECL ming SVN)

Introduction

SWFTextField.

Synopsis de la classe

SWFTextField {
/* Méthodes */
void addChars ( string $chars )
void addString ( string $string )
void align ( int $alignement )
__construct ([ int $flags ] )
void setBounds ( float $width , float $height )
void setColor ( int $red , int $green , int $blue [, int $a = 255 ] )
void setFont ( SWFFont $font )
void setHeight ( float $height )
void setIndentation ( float $width )
void setLeftMargin ( float $width )
void setLineSpacing ( float $height )
void setMargins ( float $left , float $right )
void setName ( string $name )
void setPadding ( float $padding )
void setRightMargin ( float $width )
}

Sommaire

  • SWFTextField::addChars — Ajoute les caractères à la police qui sera disponible dans le champ texte
  • SWFTextField::addString — Concatène la chaîne de caractères donnée avec le champ texte
  • SWFTextField::align — Définit l'alignement du champ texte
  • SWFTextField::__construct — Crée un objet champ de texte
  • SWFTextField::setBounds — Définit la hauteur et la largeur d'un champ texte
  • SWFTextField::setColor — Définit la couleur d'un champ texte
  • SWFTextField::setFont — Définit la police d'un champ texte
  • SWFTextField::setHeight — Définit la hauteur de la police d'un champ de texte
  • SWFTextField::setIndentation — Définit l'indentation de la première ligne
  • SWFTextField::setLeftMargin — Définit la largeur de la marge gauche d'un champ texte
  • SWFTextField::setLineSpacing — Définit l'espacement de ligne d'un champ texte
  • SWFTextField::setMargins — Définit la largeur des marges d'un champ texte
  • SWFTextField::setName — Définit le nom de la variable
  • SWFTextField::setPadding — Définit l'espacement interne d'un champ texte
  • SWFTextField::setRightMargin — Définit la largeur de la marge droite d'un champ texte


Ajoute les caractères à la police qui sera disponible dans le champ texte

  • « SWFTextField
  • SWFTextField::addString »
  • PHP Manual
  • SWFTextField
  • Ajoute les caractères à la police qui sera disponible dans le champ texte

SWFTextField::addChars

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::addChars — Ajoute les caractères à la police qui sera disponible dans le champ texte

Description

void SWFTextField::addChars ( string $chars )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SWFTextField::addString() - Concatène la chaîne de caractères donnée avec le champ texte


Concatène la chaîne de caractères donnée avec le champ texte

  • « SWFTextField::addChars
  • SWFTextField::align »
  • PHP Manual
  • SWFTextField
  • Concatène la chaîne de caractères donnée avec le champ texte

SWFTextField::addString

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::addString — Concatène la chaîne de caractères donnée avec le champ texte

Description

void SWFTextField::addString ( string $string )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield::setname() concatène la chaîne de caractères string avec le champ texte.

Valeurs de retour

Aucune valeur n'est retournée.


Définit l'alignement du champ texte

  • « SWFTextField::addString
  • SWFTextField::__construct »
  • PHP Manual
  • SWFTextField
  • Définit l'alignement du champ texte

SWFTextField::align

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::align — Définit l'alignement du champ texte

Description

void SWFTextField::align ( int $alignement )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield::align() définit l'alignement du champ texte à alignement. Les valeurs valides pour alignement sont : SWFTEXTFIELD_ALIGN_LEFT, SWFTEXTFIELD_ALIGN_RIGHT, SWFTEXTFIELD_ALIGN_CENTER and SWFTEXTFIELD_ALIGN_JUSTIFY.

Valeurs de retour

Aucune valeur n'est retournée.


Crée un objet champ de texte

  • « SWFTextField::align
  • SWFTextField::setBounds »
  • PHP Manual
  • SWFTextField
  • Crée un objet champ de texte

SWFTextField::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::__construct — Crée un objet champ de texte

Description

SWFTextField::__construct ([ int $flags ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield() crée un nouvel objet champ texte. Les champs de texte sont plus flexibles que les objets swftext() - ils ne peuvent pas être tourner, la mise à l'échelle n'est pas proportionnelle, etc. mais ils peuvent être utilisés en tant qu'entrées de formulaire et ils peuvent utiliser la police définie par le navigateur.

Les drapeaux optionnelles modifient le comportement du champ texte. Voici les valeurs possibles :

  • SWFTEXTFIELD_DRAWBOX - dessine la bordure du champ texte
  • SWFTEXTFIELD_HASLENGTH -
  • SWFTEXTFIELD_HTML - permet un balisage HTML du texte
  • SWFTEXTFIELD_MULTILINE - permet de multiple lignes
  • SWFTEXTFIELD_NOEDIT - indique que le champ ne peut être éditable par l'utilisateur
  • SWFTEXTFIELD_NOSELECT - rend le champ non sélectionnable
  • SWFTEXTFIELD_PASSWORD - cache les données entrées
  • SWFTEXTFIELD_WORDWRAP - permet au texte de revenir à ligne automatiquement
Les drapeaux sont combinables grâce à l'opérateur OR. Par exemple :
<?php
$t = newSWFTextField(SWFTEXTFIELD_PASSWORD | SWFTEXTFIELD_NOEDIT);
?>
crée un champ mot de passe non éditable.

SWFTextField a les méthodes suivantes :
swftextfield::setfont(),
swftextfield::setbounds(),
swftextfield::align(),
swftextfield::setheight(),
swftextfield::setleftmargin(),
swftextfield::setrightmargin(),
swftextfield::setmargins(),
swftextfield::setindentation(),
swftextfield::setlinespacing(),
swftextfield::setcolor(),
swftextfield::setname() et
swftextfield::addstring().


Définit la hauteur et la largeur d'un champ texte

  • « SWFTextField::__construct
  • SWFTextField::setColor »
  • PHP Manual
  • SWFTextField
  • Définit la hauteur et la largeur d'un champ texte

SWFTextField::setBounds

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setBounds — Définit la hauteur et la largeur d'un champ texte

Description

void SWFTextField::setBounds ( float $width , float $height )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield::setbounds() définit la largeur d'un champ texte à width et sa hauteur à height. Si vous ne définissez pas ces valeurs vous-même, Ming tentera de deviner ces valeurs.

Valeurs de retour

Aucune valeur n'est retournée.


Définit la couleur d'un champ texte

  • « SWFTextField::setBounds
  • SWFTextField::setFont »
  • PHP Manual
  • SWFTextField
  • Définit la couleur d'un champ texte

SWFTextField::setColor

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setColor — Définit la couleur d'un champ texte

Description

void SWFTextField::setColor ( int $red , int $green , int $blue [, int $a = 255 ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield::setcolor() définit la couleur d'un champ texte. Par défaut, c'est noir. La couleur est représenté en RVB.

Liste de paramètres

Ces paramètres sont des entiers compris entre 0 et 255, ou des hexadécimaux compris entre 0x00 et 0xFF :

red

Valeur du composant rouge

green

Valeur du composant vert

blue

Valeur du composant bleu

a

Valeur du composant alpha

Valeurs de retour

Aucune valeur n'est retournée.


Définit la police d'un champ texte

  • « SWFTextField::setColor
  • SWFTextField::setHeight »
  • PHP Manual
  • SWFTextField
  • Définit la police d'un champ texte

SWFTextField::setFont

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setFont — Définit la police d'un champ texte

Description

void SWFTextField::setFont ( SWFFont $font )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield::setfont() définit la police d'un champ texte à font.

Valeurs de retour

Aucune valeur n'est retournée.


Définit la hauteur de la police d'un champ de texte

  • « SWFTextField::setFont
  • SWFTextField::setIndentation »
  • PHP Manual
  • SWFTextField
  • Définit la hauteur de la police d'un champ de texte

SWFTextField::setHeight

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setHeight — Définit la hauteur de la police d'un champ de texte

Description

void SWFTextField::setHeight ( float $height )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield::setheight() définit la hauteur de la police d'un champ texte à height. Par défaut, vaut 240.

Valeurs de retour

Aucune valeur n'est retournée.


Définit l'indentation de la première ligne

  • « SWFTextField::setHeight
  • SWFTextField::setLeftMargin »
  • PHP Manual
  • SWFTextField
  • Définit l'indentation de la première ligne

SWFTextField::setIndentation

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setIndentation — Définit l'indentation de la première ligne

Description

void SWFTextField::setIndentation ( float $width )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield::setindentation() définit l'indentation de la première ligne d'un champ texte à width.

Valeurs de retour

Aucune valeur n'est retournée.


Définit la largeur de la marge gauche d'un champ texte

  • « SWFTextField::setIndentation
  • SWFTextField::setLineSpacing »
  • PHP Manual
  • SWFTextField
  • Définit la largeur de la marge gauche d'un champ texte

SWFTextField::setLeftMargin

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setLeftMargin — Définit la largeur de la marge gauche d'un champ texte

Description

void SWFTextField::setLeftMargin ( float $width )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield::setleftmargin() définit la largeur de la marge gauche d'un champ texte à width. Par défaut, vaut 0.

Valeurs de retour

Aucune valeur n'est retournée.


Définit l'espacement de ligne d'un champ texte

  • « SWFTextField::setLeftMargin
  • SWFTextField::setMargins »
  • PHP Manual
  • SWFTextField
  • Définit l'espacement de ligne d'un champ texte

SWFTextField::setLineSpacing

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setLineSpacing — Définit l'espacement de ligne d'un champ texte

Description

void SWFTextField::setLineSpacing ( float $height )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield::setlinespacing() définit l'espacement de ligne d'un champ texte à une hauteur de height. Par défaut, vaut 40.

Valeurs de retour

Aucune valeur n'est retournée.


Définit la largeur des marges d'un champ texte

  • « SWFTextField::setLineSpacing
  • SWFTextField::setName »
  • PHP Manual
  • SWFTextField
  • Définit la largeur des marges d'un champ texte

SWFTextField::setMargins

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setMargins — Définit la largeur des marges d'un champ texte

Description

void SWFTextField::setMargins ( float $left , float $right )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield::setmargins() définit les marges d'un champ texte.

Valeurs de retour

Aucune valeur n'est retournée.


Définit le nom de la variable

  • « SWFTextField::setMargins
  • SWFTextField::setPadding »
  • PHP Manual
  • SWFTextField
  • Définit le nom de la variable

SWFTextField::setName

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setName — Définit le nom de la variable

Description

void SWFTextField::setName ( string $name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield::setname() définit le nom de la variable d'un champ texte à name, pour l'envoi du formulaire et les diverses actions des scripts.

Valeurs de retour

Aucune valeur n'est retournée.


Définit l'espacement interne d'un champ texte

  • « SWFTextField::setName
  • SWFTextField::setRightMargin »
  • PHP Manual
  • SWFTextField
  • Définit l'espacement interne d'un champ texte

SWFTextField::setPadding

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setPadding — Définit l'espacement interne d'un champ texte

Description

void SWFTextField::setPadding ( float $padding )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.


Définit la largeur de la marge droite d'un champ texte

  • « SWFTextField::setPadding
  • SWFVideoStream »
  • PHP Manual
  • SWFTextField
  • Définit la largeur de la marge droite d'un champ texte

SWFTextField::setRightMargin

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setRightMargin — Définit la largeur de la marge droite d'un champ texte

Description

void SWFTextField::setRightMargin ( float $width )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield::setrightmargin() définit la largeur de la marge droite d'un champ texte à width. Par défaut, vaut 0.

Valeurs de retour

Aucune valeur n'est retournée.


La classe SWFVideoStream

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

Introduction

SWFVideoStream.

Synopsis de la classe

SWFVideoStream {
/* Méthodes */
__construct ([ string $file ] )
int getNumFrames ( void )
void setDimension ( int $x , int $y )
}

Sommaire

  • SWFVideoStream::__construct — Retourne un objet SWFVideoStream
  • SWFVideoStream::getNumFrames — Retourne le nombre de frames d'une vidéo
  • SWFVideoStream::setDimension — Définit les dimensions d'une vidéo


Retourne un objet SWFVideoStream

  • « SWFVideoStream
  • SWFVideoStream::getNumFrames »
  • PHP Manual
  • SWFVideoStream
  • Retourne un objet SWFVideoStream

SWFVideoStream::__construct

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

SWFVideoStream::__construct — Retourne un objet SWFVideoStream

Description

SWFVideoStream::__construct ([ string $file ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne le nombre de frames d'une vidéo

  • « SWFVideoStream::__construct
  • SWFVideoStream::setDimension »
  • PHP Manual
  • SWFVideoStream
  • Retourne le nombre de frames d'une vidéo

SWFVideoStream::getNumFrames

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

SWFVideoStream::getNumFrames — Retourne le nombre de frames d'une vidéo

Description

int SWFVideoStream::getNumFrames ( void )

Cette fonction retourne le nombre de frames d'un SWFVideoStream.

Valeurs de retour

Retourne le nombre de frames, sous la forme d'un entier.


Définit les dimensions d'une vidéo

  • « SWFVideoStream::getNumFrames
  • PDF »
  • PHP Manual
  • SWFVideoStream
  • Définit les dimensions d'une vidéo

SWFVideoStream::setDimension

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

SWFVideoStream::setDimension — Définit les dimensions d'une vidéo

Description

void SWFVideoStream::setDimension ( int $x , int $y )

Définit la hauteur et la largeur d'une vidéo.

Liste de paramètres

x

Largeur, en pixels.

y

Hauteur, en pixels.

Valeurs de retour

Aucune valeur n'est retournée.


PDF

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Exemples d'utilisation
  • Fonctions PDF
    • PDF_activate_item — Active un élément de structure ou un autre élément de contenu
    • PDF_add_annotation — [Obsolète] Ajoute une annotation
    • PDF_add_bookmark — [Obsolète] Ajoute un signet dans la page courante
    • PDF_add_launchlink — [Obsolète] Ajoute une annotation de lancement dans la page PDF courante
    • PDF_add_locallink — [Obsolète] Ajoute une annotation de lien dans la page PDF courante
    • PDF_add_nameddest — Crée une destination nommée
    • PDF_add_note — [Obsolète] Ajoute une annotation dans la page PDF courante
    • PDF_add_outline — [Obsolète] Ajoute un signet dans la page courante
    • PDF_add_pdflink — [Obsolète] Ajoute une annotation sur un lien vers un fichier dans la page PDF courante
    • PDF_add_table_cell — Ajoute une cellule à un nouveau tableau ou un tableau existant
    • PDF_add_textflow — Crée un flux de texte ou ajoute du texte à un flux de texte existant
    • PDF_add_thumbnail — [Obsolète] Ajoute une miniature sur la page PDF courante
    • PDF_add_weblink — [Obsolète] Ajoute un lien web sur la page PDF courante
    • PDF_arc — Dessine un arc de cercle PDF dans le sens anti-horaire
    • PDF_arcn — Dessine un arc de cercle dans le sens horaire
    • PDF_attach_file — [Obsolète] Ajoute un fichier attaché à la page PDF
    • PDF_begin_document — Crée un nouveau fichier PDF
    • PDF_begin_font — Commence une définition de police de type 3
    • PDF_begin_glyph — Commence une définition de glyphe pour les polices de type 3
    • PDF_begin_item — Ouvre un élément de structure ou un autre élément de contenu
    • PDF_begin_layer — Commence une interface
    • PDF_begin_page_ext — Ajoute une nouvelle page PDF
    • PDF_begin_page — [Obsolète] Initialise une nouvelle page de document PDF
    • PDF_begin_pattern — Initialise un nouveau pattern PDF
    • PDF_begin_template_ext — Commence une définition de gabarit PDF
    • PDF_begin_template — Initialise un nouveau gabarit PDF (obsolète)
    • PDF_circle — Dessine un cercle dans un document PDF
    • PDF_clip — Modifie le chemin de clipping PDF
    • PDF_close_image — Ferme une image dans un document PDF
    • PDF_close_pdi_page — Ferme la page PDF
    • PDF_close_pdi — Ferme le fichier PDF d'entrée (obsolète)
    • PDF_close — [Obsolète] Ferme le fichier PDF
    • PDF_closepath_fill_stroke — Termine le chemin, dessine les bords et remplit la forme
    • PDF_closepath_stroke — Termine le chemin et dessine les bords
    • PDF_closepath — Termine le chemin PDF courant
    • PDF_concat — Concatène une matrice avec le CTM
    • PDF_continue_text — Affiche du texte à la prochaine ligne PDF
    • PDF_create_3dview — Crée une vue 3D
    • PDF_create_action — Crée une action pour des objets ou des événements
    • PDF_create_annotation — Crée une annotation rectangulaire
    • PDF_create_bookmark — Crée un signet
    • PDF_create_field — Crée un champ de formulaire
    • PDF_create_fieldgroup — Crée un groupe de champs dans un formulaire
    • PDF_create_gstate — Crée un objet graphique
    • PDF_create_pvf — Crée un fichier PDFlib virtuel
    • PDF_create_textflow — Crée un objet de flux de texte
    • PDF_curveto — Dessine une courbe de Bezier
    • PDF_define_layer — Crée une définition d'interface
    • PDF_delete_pvf — Efface un fichier virtuel PDFlib
    • PDF_delete_table — Efface un tableau
    • PDF_delete_textflow — Efface un objet de flux de texte
    • PDF_delete — Efface un objet PDF
    • PDF_encoding_set_char — Ajoute un nom de glyphe et/ou une valeur Unicode
    • PDF_end_document — Ferme un fichier PDF
    • PDF_end_font — Termine une définition de police de type 3
    • PDF_end_glyph — Termine la définition d'un glyphe pour les polices de type 3
    • PDF_end_item — Ferme la structure d'un élément ou un autre élément de contenu
    • PDF_end_layer — Désactive toutes les interfaces actives
    • PDF_end_page_ext — Termine une page
    • PDF_end_page — Termine la page PDF courante
    • PDF_end_pattern — Termine le pattern PDF
    • PDF_end_template — Termine le gabarit PDF
    • PDF_endpath — Termine le chemin courant
    • PDF_fill_imageblock — Remplit un bloc d'image avec des données variables
    • PDF_fill_pdfblock — Remplit un bloc de contenu avec des données variables
    • PDF_fill_stroke — Remplit et passe le pinceau sur le chemin PDF courant
    • PDF_fill_textblock — Remplit un bloc de texte avec des données variables
    • PDF_fill — Remplit le chemin PDF courant avec la couleur courante
    • PDF_findfont — [Obsolète] Prépare une police pour utilisation ultérieure
    • PDF_fit_image — Place une image ou un gabarit PDF
    • PDF_fit_pdi_page — Place une page PDF importée
    • PDF_fit_table — Place un tableau sur la page
    • PDF_fit_textflow — Formate un flux de texte dans un espace rectangulaire
    • PDF_fit_textline — Place un simple ligne de texte
    • PDF_get_apiname — Récupère le nom d'une fonction de l'API qui a échouée
    • PDF_get_buffer — Lit le tampon contenant le fichier PDF généré
    • PDF_get_errmsg — Récupère le texte d'une erreur
    • PDF_get_errnum — Récupère un numéro d'erreur
    • PDF_get_font — [Obsolète] Charge une police
    • PDF_get_fontname — [Obsolète] Lit le nom de la police
    • PDF_get_fontsize — [Obsolète] Gère les polices
    • PDF_get_image_height — [Obsolète] Retourne la hauteur d'une image
    • PDF_get_image_width — [Obsolète] Retourne la largeur d'une image
    • PDF_get_majorversion — [Obsolète] Retourne le numéro de version majeur de PDFlib
    • PDF_get_minorversion — [Obsolète] Retourne le numéro de version mineure de PDFlib
    • PDF_get_parameter — Lit certains paramètres
    • PDF_get_pdi_parameter — Lit des paramètres textuels dans le document PDI (obsolète)
    • PDF_get_pdi_value — Lit des paramètres numériques dans le document PDF d'entrée (obsolète)
    • PDF_get_value — Lit certains paramètres numériques
    • PDF_info_font — Récupère des informations détaillées sur une police chargée
    • PDF_info_matchbox — Récupère les informations d'une boîte
    • PDF_info_table — Récupère les informations d'un tableau
    • PDF_info_textflow — Récupère le statut d'un flux de texte
    • PDF_info_textline — Effectue le formatage d'une ligne de texte et récupère la matrice
    • PDF_initgraphics — Remet à zéro l'environnement graphique PDF
    • PDF_lineto — Dessine une ligne PDF
    • PDF_load_3ddata — Charge un modèle 3D
    • PDF_load_font — Cherche et prépare une police
    • PDF_load_iccprofile — Cherche et prépare un profile ICC
    • PDF_load_image — Ouvre un fichier image
    • PDF_makespotcolor — Place un point de couleur PDF
    • PDF_moveto — Place le point courant PDF
    • PDF_new — Crée un nouvel objet PDF
    • PDF_open_ccitt — [Obsolète] Ouvre une image contenant des données brutes CCITT
    • PDF_open_file — [Obsolète] Ouvre un nouveau fichier PDF
    • PDF_open_gif — [Obsolète] Ouvre une image GIF
    • PDF_open_image_file — [Obsolète] Lit une image depuis un fichier
    • PDF_open_image — [Obsolète] Ouvre une image
    • PDF_open_jpeg — [Obsolète] Ouvre une image JPEG
    • PDF_open_memory_image — [Non supporté] Ouvre une image créée en mémoire par PHP
    • PDF_open_pdi_document — Prépare un document pdi
    • PDF_open_pdi_page — Prépare une page
    • PDF_open_pdi — Ouvre un fichier PDF (obsolète)
    • PDF_open_tiff — [Obsolète] Ouvre une image TIFF
    • PDF_pcos_get_number — Récupère la valeur du chemin pCOS
    • PDF_pcos_get_stream — Récupère le contenu du chemin pCOS
    • PDF_pcos_get_string — Récupère la valeur du chemin pCOS
    • PDF_place_image — [Obsolète] Place une image dans la page
    • PDF_place_pdi_page — [Obsolète] Place une page dans le document
    • PDF_process_pdi — Traite un document PDF importé
    • PDF_rect — Dessine un rectangle
    • PDF_restore — Rétablit l'ancien environnement graphique PDF
    • PDF_resume_page — Réouvre une page
    • PDF_rotate — Configure la rotation
    • PDF_save — Sauve l'environnement graphique courant
    • PDF_scale — Configure l'échelle du document
    • PDF_set_border_color — [Obsolète] Configure la couleur des bords autour des liens et annotations
    • PDF_set_border_dash — [Obsolète] Configure le style des lignes autour des liens des annotations
    • PDF_set_border_style — [Obsolète] Choisit le style de bord autour des liens et annotations
    • PDF_set_char_spacing — [Obsolète] Configure l'espacement des caractères
    • PDF_set_duration — [Obsolète] Configure la durée entre deux pages
    • PDF_set_gstate — Active un objet graphique
    • PDF_set_horiz_scaling — [Obsolète] Configure l'échelle horizontale du texte
    • PDF_set_info_author — [Obsolète] Remplit le champ d'auteur du document
    • PDF_set_info_creator — [Obsolète] Remplit le champ de créateur du document
    • PDF_set_info_keywords — [Obsolète] Remplit le champ de mots-clés du document
    • PDF_set_info_subject — [Obsolète] Remplit le champ de sujet du document
    • PDF_set_info_title — [Obsolète] Remplit le champ de titre du document
    • PDF_set_info — Remplit un champ de l'en-tête de document PDF
    • PDF_set_layer_dependency — Définit les liens entre les interfaces
    • PDF_set_leading — [Obsolète] Configure la distance entre deux lignes de texte
    • PDF_set_parameter — Modifie certains paramètres
    • PDF_set_text_matrix — [Obsolète] Configure la matrice de texte
    • PDF_set_text_pos — Modifie la position du texte
    • PDF_set_text_rendering — [Obsolète] Détermine le rendu du texte
    • PDF_set_text_rise — [Obsolète] Configure l'élévation de texte
    • PDF_set_value — Modifie certains paramètres numériques
    • PDF_set_word_spacing — [Obsolète] Configure l'espace entre deux mots
    • PDF_setcolor — Configure la couleur de dessin et de remplissage
    • PDF_setdash — Configure le mode de pointillé
    • PDF_setdashpattern — Définit un modèle de masque
    • PDF_setflat — Configure la position à plat (flatness)
    • PDF_setfont — Configure la police courante
    • PDF_setgray_fill — [Obsolète] Configure la couleur de remplissage à un niveau de gris
    • PDF_setgray_stroke — [Obsolète] Configure la couleur de dessin à un niveau de gris
    • PDF_setgray — [Obsolète] Configure la couleur de dessin et de remplissage à un niveau de gris
    • PDF_setlinecap — Configure le paramètre de linecap
    • PDF_setlinejoin — Configure le paramètre de linejoin
    • PDF_setlinewidth — Configure la largeur de ligne
    • PDF_setmatrix — Configure la matrice de transformation
    • PDF_setmiterlimit — Configure la "miter limit"
    • PDF_setpolydash — [Obsolète] Configure des pointillés complexes
    • PDF_setrgbcolor_fill — [Obsolète] Choisit la couleur utilisée pour le remplissage
    • PDF_setrgbcolor_stroke — [Obsolète] Choisit la couleur utilisée pour le dessin
    • PDF_setrgbcolor — [Obsolète] Choisit la couleur rgb de remplissage et de dessin
    • PDF_shading_pattern — Définit un masque d'ombrage
    • PDF_shading — Définit un dégradé
    • PDF_shfill — Remplit un espace avec un dégradé
    • PDF_show_boxed — [Obsolète] Affiche le texte dans un cadre
    • PDF_show_xy — Affiche un texte à une position donnée
    • PDF_show — Affiche le texte à la position courante
    • PDF_skew — Incline le système de coordonnées
    • PDF_stringwidth — Retourne la largeur d'un texte avec la police courante
    • PDF_stroke — Dessine la ligne le long du chemin
    • PDF_suspend_page — Suspend une page
    • PDF_translate — Effectue une translation de l'origine du système de coordonnées
    • PDF_utf16_to_utf8 — Convertit une chaîne UTF-16 en UTF-8
    • PDF_utf32_to_utf16 — Convertie une chaîne UTF-32 en UTF-16
    • PDF_utf8_to_utf16 — Convertit une chaîne UTF-8 en UTF-16


Introduction

Les fonctions PDF en PHP peuvent créer des fichiers PDF en utilisant la bibliothèque PDFlib depuis PDFlib GmbH (» www.pdflib.com). Une version restreinte, appelée PDFlib Lite 7 est disponible gratuitement mais n'est plus maintenue depuis 2010. L'intégration de PDFlib pour PHP est toujours activement maintenue par PDFlib GmbH. Elle est principalement destinée aux versions commerciales de PDFlib, mais peut également être utilisée pour l'ancienne version restreinte de PDFlib.

Si vous souhaitez utiliser PDFlib, nous vous conseillons de commencer par les exemples inclus dans le paquet PDFlib, et de vous référer aux manuels au format PDF s'y trouvant. Au minimum, regardez l'exemple hello.php pour une utilisation basique de PDFlib.

Note:

Si vous êtes intéressé par un générateur de PDF libre qui n'utilisent pas de bibliothèques externes PDF, reportez-vous à cette section de la foire aux question.


Pré-requis

PDFlib Lite est disponible en tant que projet open source. Cependant, la licence PDFlib Lite vous autorise une utilisation libre que sous certaines conditions. PDFlib Lite supporte une partie des fonctionnalités de PDFlib ; reportez-vous au site web de PDFlib pour plus de détails. La version complète de PDFlib est disponible en téléchargement sur » http://www.pdflib.com/products/pdflib-family/, mais nécessite l'achat d'une licence commerciale pour l'utiliser.

Problèmes avec les anciennes versions de PDFlib

Toutes les versions de PHP 4 avant le 9 Mars 2000 ne supportent pas les version de PDFlib plus anciennes que la version 3.0.

PDFlib 4.0 ou supérieure est supportée par PHP 4.3.0 et suivant.


Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/pdflib.

Pour inclure le support de la PDFlib dans votre PHP < 4.3.9, il faut compiler PHP avec l'option --with-pdflib[=DIR] . DIR est le dossier d'installation de PDFlib et, par défaut, il vaut /usr/local.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

PDF_new() crée un nouvel objet PDFlib, nécessaire à la plupart des fonctions.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • PDF
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


  • « Constantes pré-définies
  • Exemples d'utilisation »
  • PHP Manual
  • PDF
  • Exemples

Exemples

Sommaire

  • Exemples d'utilisation


Exemples d'utilisation

La plupart des fonctions sont simples d'utilisation. La difficulté réside probablement dans la création de votre premier document PDF. L'exemple suivant devrait vous aider à commencer. Il est développé pour PHP 4 et crée le fichier hello.pdf contenant une seule page. Il crée quelques contenus, charge la police Helvetica-Bold et affiche le texte "Bonjour le monde ! (dit PHP)".

Exemple #1 Exemple issu de la distribution PDFlib pour PHP 4

<?php
$p = PDF_new();

/*  ouvre un nouveau fichier PDF ; insère un nom de fichier pour créer le PDF sur le disque */
if (PDF_begin_document($p, "", "") == 0) {
    die("Error: " . PDF_get_errmsg($p));
}

PDF_set_info($p, "Creator", "hello.php");
PDF_set_info($p, "Author", "Rainer Schaaf");
PDF_set_info($p, "Title", "Bonjour le monde (PHP)!");

PDF_begin_page_ext($p, 595, 842, "");

$font = PDF_load_font($p, "Helvetica-Bold", "winansi", "");

PDF_setfont($p, $font, 24.0);
PDF_set_text_pos($p, 50, 700);
PDF_show($p, "Hello world!");
PDF_continue_text($p, "(dit PHP)");
PDF_end_page_ext($p, "");

PDF_end_document($p, "");

$buf = PDF_get_buffer($p);
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello.pdf");
print $buf;

PDF_delete($p);
?>

L'exemple suivant provient du paquet PDFlib de PHP 5. Il utilise le nouveau gestionnaire d'exception ainsi que la fonctionnalité d'embarquement d'objets, disponible en PHP 5. Il crée un fichier hello.pdf sur une page. Il crée quelques contenus, charge la police Helvetica-Bold et affiche le texte "Bonjour le monde ! (dit PHP)".

Exemple #2 Exemple issu de la distribution PDFlib pour PHP 5

<?php

try {
    $p = new PDFlib();

    /*  ouvre un nouveau fichier PDF ; insère un nom de fichier pour créer le PDF sur le disque */
    if ($p->begin_document("", "") == 0) {
        die("Error: " . $p->get_errmsg());
    }

    $p->set_info("Creator", "hello.php");
    $p->set_info("Author", "Rainer Schaaf");
    $p->set_info("Title", "Bonjour le monde (PHP)!");

    $p->begin_page_ext(595, 842, "");

    $font = $p->load_font("Helvetica-Bold", "winansi", "");

    $p->setfont($font, 24.0);
    $p->set_text_pos(50, 700);
    $p->show("Hello world!");
    $p->continue_text("(dit PHP)");
    $p->end_page_ext("");

    $p->end_document("");

    $buf = $p->get_buffer();
    $len = strlen($buf);

    header("Content-type: application/pdf");
    header("Content-Length: $len");
    header("Content-Disposition: inline; filename=hello.pdf");
    print $buf;
}
catch (PDFlibException $e) {
    die("PDFlib exception occurred in hello sample:\n" .
    "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
    $e->get_errmsg() . "\n");
}
catch (Exception $e) {
    die($e);
}
$p = 0;
?>


Fonctions PDF

Remarque sur les fonctions obsolètes de la PDFlib

Depuis PHP 4.0.5, l'extension PHP pour la PDFlib est officiellement supportée par PDFlib GmbH. Cela signifie que toutes les fonctions décrites dans le manuel de référence de la PDFlib (PDFlib V3.0 ou supérieur) sont supportées par PHP 4 avec exactement la même signification et les mêmes paramètres. Cependant, avec la PDFlib V5.0.4 ou supérieure, tous les paramètres doivent être spécifiés. Pour des raisons de compatibilité, l'implémentation de la PDFlib supporte la plupart des fonctions obsolètes, mais elles doivent être remplacées par leur nouvelle version. PDFlib GmbH ne fournira aucun support pour les problèmes survenant lors de l'utilisation de ces fonctions obsolètes. La documentation de cette section indique les anciennes fonctions comme "obsolètes" et donne la fonction qui doit être utilisée à la place.

Sommaire

  • PDF_activate_item — Active un élément de structure ou un autre élément de contenu
  • PDF_add_annotation — [Obsolète] Ajoute une annotation
  • PDF_add_bookmark — [Obsolète] Ajoute un signet dans la page courante
  • PDF_add_launchlink — [Obsolète] Ajoute une annotation de lancement dans la page PDF courante
  • PDF_add_locallink — [Obsolète] Ajoute une annotation de lien dans la page PDF courante
  • PDF_add_nameddest — Crée une destination nommée
  • PDF_add_note — [Obsolète] Ajoute une annotation dans la page PDF courante
  • PDF_add_outline — [Obsolète] Ajoute un signet dans la page courante
  • PDF_add_pdflink — [Obsolète] Ajoute une annotation sur un lien vers un fichier dans la page PDF courante
  • PDF_add_table_cell — Ajoute une cellule à un nouveau tableau ou un tableau existant
  • PDF_add_textflow — Crée un flux de texte ou ajoute du texte à un flux de texte existant
  • PDF_add_thumbnail — [Obsolète] Ajoute une miniature sur la page PDF courante
  • PDF_add_weblink — [Obsolète] Ajoute un lien web sur la page PDF courante
  • PDF_arc — Dessine un arc de cercle PDF dans le sens anti-horaire
  • PDF_arcn — Dessine un arc de cercle dans le sens horaire
  • PDF_attach_file — [Obsolète] Ajoute un fichier attaché à la page PDF
  • PDF_begin_document — Crée un nouveau fichier PDF
  • PDF_begin_font — Commence une définition de police de type 3
  • PDF_begin_glyph — Commence une définition de glyphe pour les polices de type 3
  • PDF_begin_item — Ouvre un élément de structure ou un autre élément de contenu
  • PDF_begin_layer — Commence une interface
  • PDF_begin_page_ext — Ajoute une nouvelle page PDF
  • PDF_begin_page — [Obsolète] Initialise une nouvelle page de document PDF
  • PDF_begin_pattern — Initialise un nouveau pattern PDF
  • PDF_begin_template_ext — Commence une définition de gabarit PDF
  • PDF_begin_template — Initialise un nouveau gabarit PDF (obsolète)
  • PDF_circle — Dessine un cercle dans un document PDF
  • PDF_clip — Modifie le chemin de clipping PDF
  • PDF_close_image — Ferme une image dans un document PDF
  • PDF_close_pdi_page — Ferme la page PDF
  • PDF_close_pdi — Ferme le fichier PDF d'entrée (obsolète)
  • PDF_close — [Obsolète] Ferme le fichier PDF
  • PDF_closepath_fill_stroke — Termine le chemin, dessine les bords et remplit la forme
  • PDF_closepath_stroke — Termine le chemin et dessine les bords
  • PDF_closepath — Termine le chemin PDF courant
  • PDF_concat — Concatène une matrice avec le CTM
  • PDF_continue_text — Affiche du texte à la prochaine ligne PDF
  • PDF_create_3dview — Crée une vue 3D
  • PDF_create_action — Crée une action pour des objets ou des événements
  • PDF_create_annotation — Crée une annotation rectangulaire
  • PDF_create_bookmark — Crée un signet
  • PDF_create_field — Crée un champ de formulaire
  • PDF_create_fieldgroup — Crée un groupe de champs dans un formulaire
  • PDF_create_gstate — Crée un objet graphique
  • PDF_create_pvf — Crée un fichier PDFlib virtuel
  • PDF_create_textflow — Crée un objet de flux de texte
  • PDF_curveto — Dessine une courbe de Bezier
  • PDF_define_layer — Crée une définition d'interface
  • PDF_delete_pvf — Efface un fichier virtuel PDFlib
  • PDF_delete_table — Efface un tableau
  • PDF_delete_textflow — Efface un objet de flux de texte
  • PDF_delete — Efface un objet PDF
  • PDF_encoding_set_char — Ajoute un nom de glyphe et/ou une valeur Unicode
  • PDF_end_document — Ferme un fichier PDF
  • PDF_end_font — Termine une définition de police de type 3
  • PDF_end_glyph — Termine la définition d'un glyphe pour les polices de type 3
  • PDF_end_item — Ferme la structure d'un élément ou un autre élément de contenu
  • PDF_end_layer — Désactive toutes les interfaces actives
  • PDF_end_page_ext — Termine une page
  • PDF_end_page — Termine la page PDF courante
  • PDF_end_pattern — Termine le pattern PDF
  • PDF_end_template — Termine le gabarit PDF
  • PDF_endpath — Termine le chemin courant
  • PDF_fill_imageblock — Remplit un bloc d'image avec des données variables
  • PDF_fill_pdfblock — Remplit un bloc de contenu avec des données variables
  • PDF_fill_stroke — Remplit et passe le pinceau sur le chemin PDF courant
  • PDF_fill_textblock — Remplit un bloc de texte avec des données variables
  • PDF_fill — Remplit le chemin PDF courant avec la couleur courante
  • PDF_findfont — [Obsolète] Prépare une police pour utilisation ultérieure
  • PDF_fit_image — Place une image ou un gabarit PDF
  • PDF_fit_pdi_page — Place une page PDF importée
  • PDF_fit_table — Place un tableau sur la page
  • PDF_fit_textflow — Formate un flux de texte dans un espace rectangulaire
  • PDF_fit_textline — Place un simple ligne de texte
  • PDF_get_apiname — Récupère le nom d'une fonction de l'API qui a échouée
  • PDF_get_buffer — Lit le tampon contenant le fichier PDF généré
  • PDF_get_errmsg — Récupère le texte d'une erreur
  • PDF_get_errnum — Récupère un numéro d'erreur
  • PDF_get_font — [Obsolète] Charge une police
  • PDF_get_fontname — [Obsolète] Lit le nom de la police
  • PDF_get_fontsize — [Obsolète] Gère les polices
  • PDF_get_image_height — [Obsolète] Retourne la hauteur d'une image
  • PDF_get_image_width — [Obsolète] Retourne la largeur d'une image
  • PDF_get_majorversion — [Obsolète] Retourne le numéro de version majeur de PDFlib
  • PDF_get_minorversion — [Obsolète] Retourne le numéro de version mineure de PDFlib
  • PDF_get_parameter — Lit certains paramètres
  • PDF_get_pdi_parameter — Lit des paramètres textuels dans le document PDI (obsolète)
  • PDF_get_pdi_value — Lit des paramètres numériques dans le document PDF d'entrée (obsolète)
  • PDF_get_value — Lit certains paramètres numériques
  • PDF_info_font — Récupère des informations détaillées sur une police chargée
  • PDF_info_matchbox — Récupère les informations d'une boîte
  • PDF_info_table — Récupère les informations d'un tableau
  • PDF_info_textflow — Récupère le statut d'un flux de texte
  • PDF_info_textline — Effectue le formatage d'une ligne de texte et récupère la matrice
  • PDF_initgraphics — Remet à zéro l'environnement graphique PDF
  • PDF_lineto — Dessine une ligne PDF
  • PDF_load_3ddata — Charge un modèle 3D
  • PDF_load_font — Cherche et prépare une police
  • PDF_load_iccprofile — Cherche et prépare un profile ICC
  • PDF_load_image — Ouvre un fichier image
  • PDF_makespotcolor — Place un point de couleur PDF
  • PDF_moveto — Place le point courant PDF
  • PDF_new — Crée un nouvel objet PDF
  • PDF_open_ccitt — [Obsolète] Ouvre une image contenant des données brutes CCITT
  • PDF_open_file — [Obsolète] Ouvre un nouveau fichier PDF
  • PDF_open_gif — [Obsolète] Ouvre une image GIF
  • PDF_open_image_file — [Obsolète] Lit une image depuis un fichier
  • PDF_open_image — [Obsolète] Ouvre une image
  • PDF_open_jpeg — [Obsolète] Ouvre une image JPEG
  • PDF_open_memory_image — [Non supporté] Ouvre une image créée en mémoire par PHP
  • PDF_open_pdi_document — Prépare un document pdi
  • PDF_open_pdi_page — Prépare une page
  • PDF_open_pdi — Ouvre un fichier PDF (obsolète)
  • PDF_open_tiff — [Obsolète] Ouvre une image TIFF
  • PDF_pcos_get_number — Récupère la valeur du chemin pCOS
  • PDF_pcos_get_stream — Récupère le contenu du chemin pCOS
  • PDF_pcos_get_string — Récupère la valeur du chemin pCOS
  • PDF_place_image — [Obsolète] Place une image dans la page
  • PDF_place_pdi_page — [Obsolète] Place une page dans le document
  • PDF_process_pdi — Traite un document PDF importé
  • PDF_rect — Dessine un rectangle
  • PDF_restore — Rétablit l'ancien environnement graphique PDF
  • PDF_resume_page — Réouvre une page
  • PDF_rotate — Configure la rotation
  • PDF_save — Sauve l'environnement graphique courant
  • PDF_scale — Configure l'échelle du document
  • PDF_set_border_color — [Obsolète] Configure la couleur des bords autour des liens et annotations
  • PDF_set_border_dash — [Obsolète] Configure le style des lignes autour des liens des annotations
  • PDF_set_border_style — [Obsolète] Choisit le style de bord autour des liens et annotations
  • PDF_set_char_spacing — [Obsolète] Configure l'espacement des caractères
  • PDF_set_duration — [Obsolète] Configure la durée entre deux pages
  • PDF_set_gstate — Active un objet graphique
  • PDF_set_horiz_scaling — [Obsolète] Configure l'échelle horizontale du texte
  • PDF_set_info_author — [Obsolète] Remplit le champ d'auteur du document
  • PDF_set_info_creator — [Obsolète] Remplit le champ de créateur du document
  • PDF_set_info_keywords — [Obsolète] Remplit le champ de mots-clés du document
  • PDF_set_info_subject — [Obsolète] Remplit le champ de sujet du document
  • PDF_set_info_title — [Obsolète] Remplit le champ de titre du document
  • PDF_set_info — Remplit un champ de l'en-tête de document PDF
  • PDF_set_layer_dependency — Définit les liens entre les interfaces
  • PDF_set_leading — [Obsolète] Configure la distance entre deux lignes de texte
  • PDF_set_parameter — Modifie certains paramètres
  • PDF_set_text_matrix — [Obsolète] Configure la matrice de texte
  • PDF_set_text_pos — Modifie la position du texte
  • PDF_set_text_rendering — [Obsolète] Détermine le rendu du texte
  • PDF_set_text_rise — [Obsolète] Configure l'élévation de texte
  • PDF_set_value — Modifie certains paramètres numériques
  • PDF_set_word_spacing — [Obsolète] Configure l'espace entre deux mots
  • PDF_setcolor — Configure la couleur de dessin et de remplissage
  • PDF_setdash — Configure le mode de pointillé
  • PDF_setdashpattern — Définit un modèle de masque
  • PDF_setflat — Configure la position à plat (flatness)
  • PDF_setfont — Configure la police courante
  • PDF_setgray_fill — [Obsolète] Configure la couleur de remplissage à un niveau de gris
  • PDF_setgray_stroke — [Obsolète] Configure la couleur de dessin à un niveau de gris
  • PDF_setgray — [Obsolète] Configure la couleur de dessin et de remplissage à un niveau de gris
  • PDF_setlinecap — Configure le paramètre de linecap
  • PDF_setlinejoin — Configure le paramètre de linejoin
  • PDF_setlinewidth — Configure la largeur de ligne
  • PDF_setmatrix — Configure la matrice de transformation
  • PDF_setmiterlimit — Configure la "miter limit"
  • PDF_setpolydash — [Obsolète] Configure des pointillés complexes
  • PDF_setrgbcolor_fill — [Obsolète] Choisit la couleur utilisée pour le remplissage
  • PDF_setrgbcolor_stroke — [Obsolète] Choisit la couleur utilisée pour le dessin
  • PDF_setrgbcolor — [Obsolète] Choisit la couleur rgb de remplissage et de dessin
  • PDF_shading_pattern — Définit un masque d'ombrage
  • PDF_shading — Définit un dégradé
  • PDF_shfill — Remplit un espace avec un dégradé
  • PDF_show_boxed — [Obsolète] Affiche le texte dans un cadre
  • PDF_show_xy — Affiche un texte à une position donnée
  • PDF_show — Affiche le texte à la position courante
  • PDF_skew — Incline le système de coordonnées
  • PDF_stringwidth — Retourne la largeur d'un texte avec la police courante
  • PDF_stroke — Dessine la ligne le long du chemin
  • PDF_suspend_page — Suspend une page
  • PDF_translate — Effectue une translation de l'origine du système de coordonnées
  • PDF_utf16_to_utf8 — Convertit une chaîne UTF-16 en UTF-8
  • PDF_utf32_to_utf16 — Convertie une chaîne UTF-32 en UTF-16
  • PDF_utf8_to_utf16 — Convertit une chaîne UTF-8 en UTF-16


Active un élément de structure ou un autre élément de contenu

  • « Fonctions PDF
  • PDF_add_annotation »
  • PHP Manual
  • Fonctions PDF
  • Active un élément de structure ou un autre élément de contenu

PDF_activate_item

(PECL pdflib >= 2.0.0)

PDF_activate_item — Active un élément de structure ou un autre élément de contenu

Description

bool PDF_activate_item ( resource $pdfdoc , int $id )

Active un élément de structure précédemment créé ou un autre élément de contenu. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


[Obsolète] Ajoute une annotation

  • « PDF_activate_item
  • PDF_add_bookmark »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ajoute une annotation

PDF_add_annotation

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_annotation — [Obsolète] Ajoute une annotation

Description

Cette fonction est obsolète, utilisez la fonction PDF_create_annotation() avec le paramètre type=Text à la place.


[Obsolète] Ajoute un signet dans la page courante

  • « PDF_add_annotation
  • PDF_add_launchlink »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ajoute un signet dans la page courante

PDF_add_bookmark

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_add_bookmark — [Obsolète] Ajoute un signet dans la page courante

Description

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_bookmark() à la place.


[Obsolète] Ajoute une annotation de lancement dans la page PDF courante

  • « PDF_add_bookmark
  • PDF_add_locallink »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ajoute une annotation de lancement dans la page PDF courante

PDF_add_launchlink

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_launchlink — [Obsolète] Ajoute une annotation de lancement dans la page PDF courante

Description

bool PDF_add_launchlink ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $filename )

PDF_add_launchlink() ajoute un lien vers une ressource web.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_action() avec le paramètre type=Launch et la fonction PDF_create_annotation() avec le paramètre type=Link à la place.


[Obsolète] Ajoute une annotation de lien dans la page PDF courante

  • « PDF_add_launchlink
  • PDF_add_nameddest »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ajoute une annotation de lien dans la page PDF courante

PDF_add_locallink

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_locallink — [Obsolète] Ajoute une annotation de lien dans la page PDF courante

Description

bool PDF_add_locallink ( resource $pdfdoc , float $lowerleftx , float $lowerlefty , float $upperrightx , float $upperrighty , int $page , string $dest )

PDF_add_locallink() ajoute une annotation de lien dans la page courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction
PDF_create_action() avec le paramètre
type=GoTo et
la fonction PDF_create_annotation() avec le paramètre
type=Link à la place.


Crée une destination nommée

  • « PDF_add_locallink
  • PDF_add_note »
  • PHP Manual
  • Fonctions PDF
  • Crée une destination nommée

PDF_add_nameddest

(PECL pdflib >= 2.0.0)

PDF_add_nameddest — Crée une destination nommée

Description

bool PDF_add_nameddest ( resource $pdfdoc , string $name , string $optlist )

Crée une destination nommée sur une page arbitraire du document courant. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


[Obsolète] Ajoute une annotation dans la page PDF courante

  • « PDF_add_nameddest
  • PDF_add_outline »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ajoute une annotation dans la page PDF courante

PDF_add_note

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_note — [Obsolète] Ajoute une annotation dans la page PDF courante

Description

bool PDF_add_note ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $contents , string $title , string $icon , int $open )

PDF_add_note() ajoute une annotation dans la page courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec le paramètre type=Text à la place.


[Obsolète] Ajoute un signet dans la page courante

  • « PDF_add_note
  • PDF_add_pdflink »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ajoute un signet dans la page courante

PDF_add_outline

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_outline — [Obsolète] Ajoute un signet dans la page courante

Description

Cette fonction est obsolète, utilisez la fonction PDF_create_bookmark() à la place.


[Obsolète] Ajoute une annotation sur un lien vers un fichier dans la page PDF courante

  • « PDF_add_outline
  • PDF_add_table_cell »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ajoute une annotation sur un lien vers un fichier dans la page PDF courante

PDF_add_pdflink

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_pdflink — [Obsolète] Ajoute une annotation sur un lien vers un fichier dans la page PDF courante

Description

bool PDF_add_pdflink ( resource $pdfdoc , float $bottom_left_x , float $bottom_left_y , float $up_right_x , float $up_right_y , string $filename , int $page , string $dest )

PDF_add_pdflink() ajoute une annotation sur un lien vers un fichier dans la page courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_action() avec le paramètre type=GoToR et la fonction PDF_create_annotation() avec le paramètre type=Link à la place.


Ajoute une cellule à un nouveau tableau ou un tableau existant

  • « PDF_add_pdflink
  • PDF_add_textflow »
  • PHP Manual
  • Fonctions PDF
  • Ajoute une cellule à un nouveau tableau ou un tableau existant

PDF_add_table_cell

(PECL pdflib >= 2.1.0)

PDF_add_table_cell — Ajoute une cellule à un nouveau tableau ou un tableau existant

Description

int PDF_add_table_cell ( resource $pdfdoc , int $table , int $column , int $row , string $text , string $optlist )

Ajoute une cellule à un nouveau tableau ou à un tableau existant.


Crée un flux de texte ou ajoute du texte à un flux de texte existant

  • « PDF_add_table_cell
  • PDF_add_thumbnail »
  • PHP Manual
  • Fonctions PDF
  • Crée un flux de texte ou ajoute du texte à un flux de texte existant

PDF_add_textflow

(PECL pdflib >= 2.1.0)

PDF_add_textflow — Crée un flux de texte ou ajoute du texte à un flux de texte existant

Description

int PDF_add_textflow ( resource $pdfdoc , int $textflow , string $text , string $optlist )

Crée un objet de flux de texte ou ajoute un texte ainsi que des options explicites à un flux de texte existant.


[Obsolète] Ajoute une miniature sur la page PDF courante

  • « PDF_add_textflow
  • PDF_add_weblink »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ajoute une miniature sur la page PDF courante

PDF_add_thumbnail

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_thumbnail — [Obsolète] Ajoute une miniature sur la page PDF courante

Description

bool PDF_add_thumbnail ( resource $pdfdoc , int $image )

pdf_add_thumbnail() ajoute une miniature sur la page courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


[Obsolète] Ajoute un lien web sur la page PDF courante

  • « PDF_add_thumbnail
  • PDF_arc »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ajoute un lien web sur la page PDF courante

PDF_add_weblink

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_weblink — [Obsolète] Ajoute un lien web sur la page PDF courante

Description

bool PDF_add_weblink ( resource $pdfdoc , float $lowerleftx , float $lowerlefty , float $upperrightx , float $upperrighty , string $url )

PDF_add_weblink() ajoute un lien web url sur la page courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction
PDF_create_action() avec le paramètre
type=URI et la fonction
PDF_create_annotation() avec le paramètre
type=Link à la place.


Dessine un arc de cercle PDF dans le sens anti-horaire

  • « PDF_add_weblink
  • PDF_arcn »
  • PHP Manual
  • Fonctions PDF
  • Dessine un arc de cercle PDF dans le sens anti-horaire

PDF_arc

(PHP 4, PECL pdflib >= 1.0.0)

PDF_arc — Dessine un arc de cercle PDF dans le sens anti-horaire

Description

bool PDF_arc ( resource $p , float $x , float $y , float $r , float $alpha , float $beta )

PDF_arc() dessine un arc de cercle.


Dessine un arc de cercle dans le sens horaire

  • « PDF_arc
  • PDF_attach_file »
  • PHP Manual
  • Fonctions PDF
  • Dessine un arc de cercle dans le sens horaire

PDF_arcn

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_arcn — Dessine un arc de cercle dans le sens horaire

Description

bool PDF_arcn ( resource $p , float $x , float $y , float $r , float $alpha , float $beta )

Excepté pour la direction du dessin, cette fonction fonctionne exactement de la même façon que la fonction pdf_arc().


[Obsolète] Ajoute un fichier attaché à la page PDF

  • « PDF_arcn
  • PDF_begin_document »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ajoute un fichier attaché à la page PDF

PDF_attach_file

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_attach_file — [Obsolète] Ajoute un fichier attaché à la page PDF

Description

bool PDF_attach_file ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $filename , string $description , string $author , string $mimetype , string $icon )

PDF_attach_file() ajoute un fichier attaché à la page courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec le paramètre type=FileAttachment à la place.


Crée un nouveau fichier PDF

  • « PDF_attach_file
  • PDF_begin_font »
  • PHP Manual
  • Fonctions PDF
  • Crée un nouveau fichier PDF

PDF_begin_document

(PECL pdflib >= 2.0.0)

PDF_begin_document — Crée un nouveau fichier PDF

Description

int PDF_begin_document ( resource $pdfdoc , string $filename , string $optlist )

Crée un nouveau fichier PDF avec diverses options.


Commence une définition de police de type 3

  • « PDF_begin_document
  • PDF_begin_glyph »
  • PHP Manual
  • Fonctions PDF
  • Commence une définition de police de type 3

PDF_begin_font

(PECL pdflib >= 2.0.0)

PDF_begin_font — Commence une définition de police de type 3

Description

bool PDF_begin_font ( resource $pdfdoc , string $filename , float $a , float $b , float $c , float $d , float $e , float $f , string $optlist )

Commence une définition de police de type 3.


Commence une définition de glyphe pour les polices de type 3

  • « PDF_begin_font
  • PDF_begin_item »
  • PHP Manual
  • Fonctions PDF
  • Commence une définition de glyphe pour les polices de type 3

PDF_begin_glyph

(PECL pdflib >= 2.0.0)

PDF_begin_glyph — Commence une définition de glyphe pour les polices de type 3

Description

bool PDF_begin_glyph ( resource $pdfdoc , string $glyphname , float $wx , float $llx , float $lly , float $urx , float $ury )

Commence une définition de glyphe pour les polices de type 3.


Ouvre un élément de structure ou un autre élément de contenu

  • « PDF_begin_glyph
  • PDF_begin_layer »
  • PHP Manual
  • Fonctions PDF
  • Ouvre un élément de structure ou un autre élément de contenu

PDF_begin_item

(PECL pdflib >= 2.0.0)

PDF_begin_item — Ouvre un élément de structure ou un autre élément de contenu

Description

int PDF_begin_item ( resource $pdfdoc , string $tag , string $optlist )

Ouvre un élément de structure ou un autre élément de structure avec les attributs fournis en tant qu'options.


Commence une interface

  • « PDF_begin_item
  • PDF_begin_page_ext »
  • PHP Manual
  • Fonctions PDF
  • Commence une interface

PDF_begin_layer

(PECL pdflib >= 2.0.0)

PDF_begin_layer — Commence une interface

Description

bool PDF_begin_layer ( resource $pdfdoc , int $layer )

Commence une interface pour les sous-séquences d'affichages sur la page. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction nécessite PDF 1.5.


Ajoute une nouvelle page PDF

  • « PDF_begin_layer
  • PDF_begin_page »
  • PHP Manual
  • Fonctions PDF
  • Ajoute une nouvelle page PDF

PDF_begin_page_ext

(PECL pdflib >= 2.0.0)

PDF_begin_page_ext — Ajoute une nouvelle page PDF

Description

bool PDF_begin_page_ext ( resource $pdfdoc , float $width , float $height , string $optlist )

PDF_begin_page_ext() ajoute une nouvelle page au document et spécifie diverses options. Les paramètres width et height correspondent aux dimensions, en points, de la nouvelle page. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Tailles communes des pages, exprimées en points
Nom | Taille
A0 | 2380 x 3368
A1 | 1684 x 2380
A2 | 1190 x 1684
A3 | 842 x 1190
A4 | 595 x 842
A5 | 421 x 595
A6 | 297 x 421
B5 | 501 x 709
letter (8.5" x 11") | 612 x 792
legal (8.5" x 14") | 612 x 1008
ledger (17" x 11") | 1224 x 792
11" x 17" | 792 x 1224


[Obsolète] Initialise une nouvelle page de document PDF

  • « PDF_begin_page_ext
  • PDF_begin_pattern »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Initialise une nouvelle page de document PDF

PDF_begin_page

(PHP 4, PECL pdflib >= 1.0.0)

PDF_begin_page — [Obsolète] Initialise une nouvelle page de document PDF

Description

bool PDF_begin_page ( resource $pdfdoc , float $width , float $height )

PDF_begin_page() ajoute une nouvelle page au document. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_begin_page_ext() à la place.


Initialise un nouveau pattern PDF

  • « PDF_begin_page
  • PDF_begin_template_ext »
  • PHP Manual
  • Fonctions PDF
  • Initialise un nouveau pattern PDF

PDF_begin_pattern

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_begin_pattern — Initialise un nouveau pattern PDF

Description

int PDF_begin_pattern ( resource $pdfdoc , float $width , float $height , float $xstep , float $ystep , int $painttype )

PDF_begin_pattern() initialise un nouveau pattern.


Commence une définition de gabarit PDF

  • « PDF_begin_pattern
  • PDF_begin_template »
  • PHP Manual
  • Fonctions PDF
  • Commence une définition de gabarit PDF

PDF_begin_template_ext

(PECL pdflib >= 2.1.0)

PDF_begin_template_ext — Commence une définition de gabarit PDF

Description

int PDF_begin_template_ext ( resource $pdfdoc , float $width , float $height , string $optlist )

Commence une nouvelle définition de gabarit PDF.


Initialise un nouveau gabarit PDF (obsolète)

  • « PDF_begin_template_ext
  • PDF_circle »
  • PHP Manual
  • Fonctions PDF
  • Initialise un nouveau gabarit PDF (obsolète)

PDF_begin_template

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_begin_template — Initialise un nouveau gabarit PDF (obsolète)

Description

int PDF_begin_template ( resource $pdfdoc , float $width , float $height )

pdf_begin_template() initialise un nouveau gabarit.

Cette fonction est obsolète depuis PDFlib version 7, utilisez la fonction PDF_begin_template_ext() à la place.


Dessine un cercle dans un document PDF

  • « PDF_begin_template
  • PDF_clip »
  • PHP Manual
  • Fonctions PDF
  • Dessine un cercle dans un document PDF

PDF_circle

(PHP 4, PECL pdflib >= 1.0.0)

PDF_circle — Dessine un cercle dans un document PDF

Description

bool PDF_circle ( resource $pdfdoc , float $x , float $y , float $r )

PDF_circle() dessine un cercle.


Modifie le chemin de clipping PDF

  • « PDF_circle
  • PDF_close_image »
  • PHP Manual
  • Fonctions PDF
  • Modifie le chemin de clipping PDF

PDF_clip

(PHP 4, PECL pdflib >= 1.0.0)

PDF_clip — Modifie le chemin de clipping PDF

Description

bool PDF_clip ( resource $p )

PDF_clip() utilise le chemin courant comme chemin de clipping. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Ferme une image dans un document PDF

  • « PDF_clip
  • PDF_close_pdi_page »
  • PHP Manual
  • Fonctions PDF
  • Ferme une image dans un document PDF

PDF_close_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_close_image — Ferme une image dans un document PDF

Description

bool PDF_close_image ( resource $p , int $image )

PDF_close_image() ferme l'image image, ouverte avec la fonction PDF_open_image().


Ferme la page PDF

  • « PDF_close_image
  • PDF_close_pdi »
  • PHP Manual
  • Fonctions PDF
  • Ferme la page PDF

PDF_close_pdi_page

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_close_pdi_page — Ferme la page PDF

Description

bool PDF_close_pdi_page ( resource $p , int $page )

PDF_close_pdi_page() ferme la page, et libère toutes les ressources liées à celle-ci. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Ferme le fichier PDF d'entrée (obsolète)

  • « PDF_close_pdi_page
  • PDF_close »
  • PHP Manual
  • Fonctions PDF
  • Ferme le fichier PDF d'entrée (obsolète)

PDF_close_pdi

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_close_pdi — Ferme le fichier PDF d'entrée (obsolète)

Description

bool PDF_close_pdi ( resource $p , int $doc )

PDF_close_pdi() ferme toutes les pages ouvertes, et referme le document PDF utilisé en entrée. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis PDFlib version 7, utilisez la fonction PDF_close_pdi_document() à la place.


[Obsolète] Ferme le fichier PDF

  • « PDF_close_pdi
  • PDF_closepath_fill_stroke »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ferme le fichier PDF

PDF_close

(PHP 4, PECL pdflib >= 1.0.0)

PDF_close — [Obsolète] Ferme le fichier PDF

Description

bool PDF_close ( resource $p )

PDF_close() ferme le fichier PDF généré, et libère toutes les ressources qui y était rattachées. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_end_document() à la place.


Termine le chemin, dessine les bords et remplit la forme

  • « PDF_close
  • PDF_closepath_stroke »
  • PHP Manual
  • Fonctions PDF
  • Termine le chemin, dessine les bords et remplit la forme

PDF_closepath_fill_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath_fill_stroke — Termine le chemin, dessine les bords et remplit la forme

Description

bool PDF_closepath_fill_stroke ( resource $p )

PDF_closepath_fill_stroke() termine le chemin, dessine les bords et remplit la forme. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Termine le chemin et dessine les bords

  • « PDF_closepath_fill_stroke
  • PDF_closepath »
  • PHP Manual
  • Fonctions PDF
  • Termine le chemin et dessine les bords

PDF_closepath_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath_stroke — Termine le chemin et dessine les bords

Description

bool PDF_closepath_stroke ( resource $p )

PDF_closepath_stroke() termine le chemin et dessine les bords. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Termine le chemin PDF courant

  • « PDF_closepath_stroke
  • PDF_concat »
  • PHP Manual
  • Fonctions PDF
  • Termine le chemin PDF courant

PDF_closepath

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath — Termine le chemin PDF courant

Description

bool PDF_closepath ( resource $p )

PDF_closepath() termine le chemin courant. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Concatène une matrice avec le CTM

  • « PDF_closepath
  • PDF_continue_text »
  • PHP Manual
  • Fonctions PDF
  • Concatène une matrice avec le CTM

PDF_concat

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_concat — Concatène une matrice avec le CTM

Description

bool PDF_concat ( resource $p , float $a , float $b , float $c , float $d , float $e , float $f )

pdf_concat() concatène une matrice avec le CTM. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Affiche du texte à la prochaine ligne PDF

  • « PDF_concat
  • PDF_create_3dview »
  • PHP Manual
  • Fonctions PDF
  • Affiche du texte à la prochaine ligne PDF

PDF_continue_text

(PHP 4, PECL pdflib >= 1.0.0)

PDF_continue_text — Affiche du texte à la prochaine ligne PDF

Description

bool PDF_continue_text ( resource $p , string $text )

pdf_continue_text() affiche le texte text à la prochaine ligne. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Crée une vue 3D

  • « PDF_continue_text
  • PDF_create_action »
  • PHP Manual
  • Fonctions PDF
  • Crée une vue 3D

PDF_create_3dview

(PECL pdflib >= 2.1.0)

PDF_create_3dview — Crée une vue 3D

Description

int PDF_create_3dview ( resource $pdfdoc , string $username , string $optlist )

Crée une vue 3D.

Cette fonction nécessite PDF 1.6.


Crée une action pour des objets ou des événements

  • « PDF_create_3dview
  • PDF_create_annotation »
  • PHP Manual
  • Fonctions PDF
  • Crée une action pour des objets ou des événements

PDF_create_action

(PECL pdflib >= 2.0.0)

PDF_create_action — Crée une action pour des objets ou des événements

Description

int PDF_create_action ( resource $pdfdoc , string $type , string $optlist )

Crée une action qui peut être utilisée sur diverses objets et événements.


Crée une annotation rectangulaire

  • « PDF_create_action
  • PDF_create_bookmark »
  • PHP Manual
  • Fonctions PDF
  • Crée une annotation rectangulaire

PDF_create_annotation

(PECL pdflib >= 2.0.0)

PDF_create_annotation — Crée une annotation rectangulaire

Description

bool PDF_create_annotation ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $type , string $optlist )

Crée une annotation rectangulaire sur la page courante.


Crée un signet

  • « PDF_create_annotation
  • PDF_create_field »
  • PHP Manual
  • Fonctions PDF
  • Crée un signet

PDF_create_bookmark

(PECL pdflib >= 2.0.0)

PDF_create_bookmark — Crée un signet

Description

int PDF_create_bookmark ( resource $pdfdoc , string $text , string $optlist )

Crée un signet avec diverses options.


Crée un champ de formulaire

  • « PDF_create_bookmark
  • PDF_create_fieldgroup »
  • PHP Manual
  • Fonctions PDF
  • Crée un champ de formulaire

PDF_create_field

(PECL pdflib >= 2.0.0)

PDF_create_field — Crée un champ de formulaire

Description

bool PDF_create_field ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $name , string $type , string $optlist )

Crée un champ de formulaire dans la page courante avec diverses options.


Crée un groupe de champs dans un formulaire

  • « PDF_create_field
  • PDF_create_gstate »
  • PHP Manual
  • Fonctions PDF
  • Crée un groupe de champs dans un formulaire

PDF_create_fieldgroup

(PECL pdflib >= 2.0.0)

PDF_create_fieldgroup — Crée un groupe de champs dans un formulaire

Description

bool PDF_create_fieldgroup ( resource $pdfdoc , string $name , string $optlist )

Crée un groupe de champs avec diverses options dans un formulaire.


Crée un objet graphique

  • « PDF_create_fieldgroup
  • PDF_create_pvf »
  • PHP Manual
  • Fonctions PDF
  • Crée un objet graphique

PDF_create_gstate

(PECL pdflib >= 2.0.0)

PDF_create_gstate — Crée un objet graphique

Description

int PDF_create_gstate ( resource $pdfdoc , string $optlist )

Crée un objet graphique avec diverses options.


Crée un fichier PDFlib virtuel

  • « PDF_create_gstate
  • PDF_create_textflow »
  • PHP Manual
  • Fonctions PDF
  • Crée un fichier PDFlib virtuel

PDF_create_pvf

(PECL pdflib >= 2.0.0)

PDF_create_pvf — Crée un fichier PDFlib virtuel

Description

bool PDF_create_pvf ( resource $pdfdoc , string $filename , string $data , string $optlist )

Crée un fichier virtuel nommé, en lecture seul, depuis les données fournies en mémoire.


Crée un objet de flux de texte

  • « PDF_create_pvf
  • PDF_curveto »
  • PHP Manual
  • Fonctions PDF
  • Crée un objet de flux de texte

PDF_create_textflow

(PECL pdflib >= 2.0.0)

PDF_create_textflow — Crée un objet de flux de texte

Description

int PDF_create_textflow ( resource $pdfdoc , string $text , string $optlist )

Prépare un texte pour formatage ultérieur et crée un objet de flux de texte.


Dessine une courbe de Bezier

  • « PDF_create_textflow
  • PDF_define_layer »
  • PHP Manual
  • Fonctions PDF
  • Dessine une courbe de Bezier

PDF_curveto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_curveto — Dessine une courbe de Bezier

Description

bool PDF_curveto ( resource $p , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

pdf_curveto() dessine une courbe de Bezier à partir du point courant, et en utilisant trois points de contrôle. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Crée une définition d'interface

  • « PDF_curveto
  • PDF_delete_pvf »
  • PHP Manual
  • Fonctions PDF
  • Crée une définition d'interface

PDF_define_layer

(PECL pdflib >= 2.0.0)

PDF_define_layer — Crée une définition d'interface

Description

int PDF_define_layer ( resource $pdfdoc , string $name , string $optlist )

Crée une nouvelle définition d'interface.

Cette fonction nécessite PDF 1.5.


Efface un fichier virtuel PDFlib

  • « PDF_define_layer
  • PDF_delete_table »
  • PHP Manual
  • Fonctions PDF
  • Efface un fichier virtuel PDFlib

PDF_delete_pvf

(PECL pdflib >= 2.0.0)

PDF_delete_pvf — Efface un fichier virtuel PDFlib

Description

int PDF_delete_pvf ( resource $pdfdoc , string $filename )

Efface un fichier virtuel nommé et libère ses structures de données (mais pas le contenu).


Efface un tableau

  • « PDF_delete_pvf
  • PDF_delete_textflow »
  • PHP Manual
  • Fonctions PDF
  • Efface un tableau

PDF_delete_table

(PECL pdflib >= 2.1.0)

PDF_delete_table — Efface un tableau

Description

bool PDF_delete_table ( resource $pdfdoc , int $table , string $optlist )

Efface un tableau ainsi que toutes les données structurées associées.


Efface un objet de flux de texte

  • « PDF_delete_table
  • PDF_delete »
  • PHP Manual
  • Fonctions PDF
  • Efface un objet de flux de texte

PDF_delete_textflow

(PECL pdflib >= 2.0.0)

PDF_delete_textflow — Efface un objet de flux de texte

Description

bool PDF_delete_textflow ( resource $pdfdoc , int $textflow )

Efface un flux de texte ainsi que les structures de données associées.


Efface un objet PDF

  • « PDF_delete_textflow
  • PDF_encoding_set_char »
  • PHP Manual
  • Fonctions PDF
  • Efface un objet PDF

PDF_delete

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_delete — Efface un objet PDF

Description

bool PDF_delete ( resource $pdfdoc )

PDF_delete() efface l'objet PDF et libère toutes les ressources. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Ajoute un nom de glyphe et/ou une valeur Unicode

  • « PDF_delete
  • PDF_end_document »
  • PHP Manual
  • Fonctions PDF
  • Ajoute un nom de glyphe et/ou une valeur Unicode

PDF_encoding_set_char

(PECL pdflib >= 2.0.0)

PDF_encoding_set_char — Ajoute un nom de glyphe et/ou une valeur Unicode

Description

bool PDF_encoding_set_char ( resource $pdfdoc , string $encoding , int $slot , string $glyphname , int $uv )

Ajoute un nom de glyphe et/ou une valeur Unicode à un encodage personnalisé.


Ferme un fichier PDF

  • « PDF_encoding_set_char
  • PDF_end_font »
  • PHP Manual
  • Fonctions PDF
  • Ferme un fichier PDF

PDF_end_document

(PECL pdflib >= 2.0.0)

PDF_end_document — Ferme un fichier PDF

Description

bool PDF_end_document ( resource $pdfdoc , string $optlist )

Ferme un fichier PDF généré et y applique diverses options.


Termine une définition de police de type 3

  • « PDF_end_document
  • PDF_end_glyph »
  • PHP Manual
  • Fonctions PDF
  • Termine une définition de police de type 3

PDF_end_font

(PECL pdflib >= 2.0.0)

PDF_end_font — Termine une définition de police de type 3

Description

bool PDF_end_font ( resource $pdfdoc )

Termine une définition de police de type 3.


Termine la définition d'un glyphe pour les polices de type 3

  • « PDF_end_font
  • PDF_end_item »
  • PHP Manual
  • Fonctions PDF
  • Termine la définition d'un glyphe pour les polices de type 3

PDF_end_glyph

(PECL pdflib >= 2.0.0)

PDF_end_glyph — Termine la définition d'un glyphe pour les polices de type 3

Description

bool PDF_end_glyph ( resource $pdfdoc )

Termine la définition d'un glyphe pour les polices de type 3.


Ferme la structure d'un élément ou un autre élément de contenu

  • « PDF_end_glyph
  • PDF_end_layer »
  • PHP Manual
  • Fonctions PDF
  • Ferme la structure d'un élément ou un autre élément de contenu

PDF_end_item

(PECL pdflib >= 2.0.0)

PDF_end_item — Ferme la structure d'un élément ou un autre élément de contenu

Description

bool PDF_end_item ( resource $pdfdoc , int $id )

Ferme la structure d'un élément ou un autre élément de contenu.


Désactive toutes les interfaces actives

  • « PDF_end_item
  • PDF_end_page_ext »
  • PHP Manual
  • Fonctions PDF
  • Désactive toutes les interfaces actives

PDF_end_layer

(PECL pdflib >= 2.0.0)

PDF_end_layer — Désactive toutes les interfaces actives

Description

bool PDF_end_layer ( resource $pdfdoc )

Désactive toutes les interfaces actives. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction nécessite PDF 1.5.


Termine une page

  • « PDF_end_layer
  • PDF_end_page »
  • PHP Manual
  • Fonctions PDF
  • Termine une page

PDF_end_page_ext

(PECL pdflib >= 2.0.0)

PDF_end_page_ext — Termine une page

Description

bool PDF_end_page_ext ( resource $pdfdoc , string $optlist )

Termine une page et y applique diverses options. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Termine la page PDF courante

  • « PDF_end_page_ext
  • PDF_end_pattern »
  • PHP Manual
  • Fonctions PDF
  • Termine la page PDF courante

PDF_end_page

(PHP 4, PECL pdflib >= 1.0.0)

PDF_end_page — Termine la page PDF courante

Description

bool PDF_end_page ( resource $p )

pdf_end_page() termine la page courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Termine le pattern PDF

  • « PDF_end_page
  • PDF_end_template »
  • PHP Manual
  • Fonctions PDF
  • Termine le pattern PDF

PDF_end_pattern

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_end_pattern — Termine le pattern PDF

Description

bool PDF_end_pattern ( resource $p )

PDF_end_pattern() termine la définition du pattern. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Termine le gabarit PDF

  • « PDF_end_pattern
  • PDF_endpath »
  • PHP Manual
  • Fonctions PDF
  • Termine le gabarit PDF

PDF_end_template

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_end_template — Termine le gabarit PDF

Description

bool PDF_end_template ( resource $p )

PDF_end_template() termine la définition du gabarit. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Termine le chemin courant

  • « PDF_end_template
  • PDF_fill_imageblock »
  • PHP Manual
  • Fonctions PDF
  • Termine le chemin courant

PDF_endpath

(PHP 4, PECL pdflib >= 1.0.0)

PDF_endpath — Termine le chemin courant

Description

bool PDF_endpath ( resource $p )

Termine le chemin courant.


Remplit un bloc d'image avec des données variables

  • « PDF_endpath
  • PDF_fill_pdfblock »
  • PHP Manual
  • Fonctions PDF
  • Remplit un bloc d'image avec des données variables

PDF_fill_imageblock

(PECL pdflib >= 2.0.0)

PDF_fill_imageblock — Remplit un bloc d'image avec des données variables

Description

int PDF_fill_imageblock ( resource $pdfdoc , int $page , string $blockname , int $image , string $optlist )

Remplit un bloc d'image avec des données variables suivant ses propriétés.

Cette fonction est uniquement disponible avec PDFlib Personalization Server (PPS).


Remplit un bloc de contenu avec des données variables

  • « PDF_fill_imageblock
  • PDF_fill_stroke »
  • PHP Manual
  • Fonctions PDF
  • Remplit un bloc de contenu avec des données variables

PDF_fill_pdfblock

(PECL pdflib >= 2.0.0)

PDF_fill_pdfblock — Remplit un bloc de contenu avec des données variables

Description

int PDF_fill_pdfblock ( resource $pdfdoc , int $page , string $blockname , int $contents , string $optlist )

Remplit un bloc de contenu avec des données variables suivant ses propriétés.

Cette fonction est uniquement disponible avec "PDFlib Personalization Server" (PPS).


Remplit et passe le pinceau sur le chemin PDF courant

  • « PDF_fill_pdfblock
  • PDF_fill_textblock »
  • PHP Manual
  • Fonctions PDF
  • Remplit et passe le pinceau sur le chemin PDF courant

PDF_fill_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_fill_stroke — Remplit et passe le pinceau sur le chemin PDF courant

Description

bool PDF_fill_stroke ( resource $p )

PDF_fill_stroke() remplit le chemin courant avec la couleur courante, en appliquant le pinceau courant (stroke). Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Remplit un bloc de texte avec des données variables

  • « PDF_fill_stroke
  • PDF_fill »
  • PHP Manual
  • Fonctions PDF
  • Remplit un bloc de texte avec des données variables

PDF_fill_textblock

(PECL pdflib >= 2.0.0)

PDF_fill_textblock — Remplit un bloc de texte avec des données variables

Description

int PDF_fill_textblock ( resource $pdfdoc , int $page , string $blockname , string $text , string $optlist )

Remplit un bloc de texte avec des données variables suivant ses propriétés.

Cette fonction est uniquement disponible avec "PDFlib Personalization Server" (PPS).


Remplit le chemin PDF courant avec la couleur courante

  • « PDF_fill_textblock
  • PDF_findfont »
  • PHP Manual
  • Fonctions PDF
  • Remplit le chemin PDF courant avec la couleur courante

PDF_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_fill — Remplit le chemin PDF courant avec la couleur courante

Description

bool PDF_fill ( resource $p )

pdf_fill_stroke() remplit le chemin courant avec la couleur courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


[Obsolète] Prépare une police pour utilisation ultérieure

  • « PDF_fill
  • PDF_fit_image »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Prépare une police pour utilisation ultérieure

PDF_findfont

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_findfont — [Obsolète] Prépare une police pour utilisation ultérieure

Description

int PDF_findfont ( resource $p , string $fontname , string $encoding , int $embed )

PDF_findfont() prépare la police fontname pour utilisation ultérieure avec PDF_setfont(). Les dimensions seront chargées et, si embed est non nul, le fichier de police sera vérifié mais pas utilisé. encoding peut prendre une des valeurs suivantes : builtin,macroman, winansi, host, ou bien un encodage défini par l'utilisateur, ou encore le nom d'une CMap. Le paramètre embed est optionnel avant PHP 4.3.5 ou avec PDFlib inférieur à 5.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_load_font() à la place.


Place une image ou un gabarit PDF

  • « PDF_findfont
  • PDF_fit_pdi_page »
  • PHP Manual
  • Fonctions PDF
  • Place une image ou un gabarit PDF

PDF_fit_image

(PECL pdflib >= 2.0.0)

PDF_fit_image — Place une image ou un gabarit PDF

Description

bool PDF_fit_image ( resource $pdfdoc , int $image , float $x , float $y , string $optlist )

Place une image ou un gabarit à une position précise. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Place une page PDF importée

  • « PDF_fit_image
  • PDF_fit_table »
  • PHP Manual
  • Fonctions PDF
  • Place une page PDF importée

PDF_fit_pdi_page

(PECL pdflib >= 2.0.0)

PDF_fit_pdi_page — Place une page PDF importée

Description

bool PDF_fit_pdi_page ( resource $pdfdoc , int $page , float $x , float $y , string $optlist )

Place une page PDF importée sur la page, suivant diverses options. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Place un tableau sur la page

  • « PDF_fit_pdi_page
  • PDF_fit_textflow »
  • PHP Manual
  • Fonctions PDF
  • Place un tableau sur la page

PDF_fit_table

(PECL pdflib >= 2.1.0)

PDF_fit_table — Place un tableau sur la page

Description

string PDF_fit_table ( resource $pdfdoc , int $table , float $llx , float $lly , float $urx , float $ury , string $optlist )

Place un tableau complet ou partiel, sur la page.


Formate un flux de texte dans un espace rectangulaire

  • « PDF_fit_table
  • PDF_fit_textline »
  • PHP Manual
  • Fonctions PDF
  • Formate un flux de texte dans un espace rectangulaire

PDF_fit_textflow

(PECL pdflib >= 2.0.0)

PDF_fit_textflow — Formate un flux de texte dans un espace rectangulaire

Description

string PDF_fit_textflow ( resource $pdfdoc , int $textflow , float $llx , float $lly , float $urx , float $ury , string $optlist )

Formate la portion suivante d'un flux de texte dans un espace rectangulaire.


Place un simple ligne de texte

  • « PDF_fit_textflow
  • PDF_get_apiname »
  • PHP Manual
  • Fonctions PDF
  • Place un simple ligne de texte

PDF_fit_textline

(PECL pdflib >= 2.0.0)

PDF_fit_textline — Place un simple ligne de texte

Description

bool PDF_fit_textline ( resource $pdfdoc , string $text , float $x , float $y , string $optlist )

Place une simple ligne de texte à une position précise. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Récupère le nom d'une fonction de l'API qui a échouée

  • « PDF_fit_textline
  • PDF_get_buffer »
  • PHP Manual
  • Fonctions PDF
  • Récupère le nom d'une fonction de l'API qui a échouée

PDF_get_apiname

(PECL pdflib >= 2.0.0)

PDF_get_apiname — Récupère le nom d'une fonction de l'API qui a échouée

Description

string PDF_get_apiname ( resource $pdfdoc )

Récupère le nom d'une fonction de l'API qui a lancée la dernière exception ou qui a échouée.


Lit le tampon contenant le fichier PDF généré

  • « PDF_get_apiname
  • PDF_get_errmsg »
  • PHP Manual
  • Fonctions PDF
  • Lit le tampon contenant le fichier PDF généré

PDF_get_buffer

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_buffer — Lit le tampon contenant le fichier PDF généré

Description

string PDF_get_buffer ( resource $p )

PDF_get_buffer() lit le contenu du tampon PDF.


Récupère le texte d'une erreur

  • « PDF_get_buffer
  • PDF_get_errnum »
  • PHP Manual
  • Fonctions PDF
  • Récupère le texte d'une erreur

PDF_get_errmsg

(PECL pdflib >= 2.0.0)

PDF_get_errmsg — Récupère le texte d'une erreur

Description

string PDF_get_errmsg ( resource $pdfdoc )

Récupère le texte de la dernière exceptions lancée ou la raison de l'échec lors de l'appel d'une fonction.


Récupère un numéro d'erreur

  • « PDF_get_errmsg
  • PDF_get_font »
  • PHP Manual
  • Fonctions PDF
  • Récupère un numéro d'erreur

PDF_get_errnum

(PECL pdflib >= 2.0.0)

PDF_get_errnum — Récupère un numéro d'erreur

Description

int PDF_get_errnum ( resource $pdfdoc )

Récupère le numéro de la dernière exception lancée ou la raison de l'échec lors de l'appel d'une fonction.


[Obsolète] Charge une police

  • « PDF_get_errnum
  • PDF_get_fontname »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Charge une police

PDF_get_font

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_font — [Obsolète] Charge une police

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre font à la place.


[Obsolète] Lit le nom de la police

  • « PDF_get_font
  • PDF_get_fontsize »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Lit le nom de la police

PDF_get_fontname

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_fontname — [Obsolète] Lit le nom de la police

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_parameter() avec le paramètre fontname à la place.


[Obsolète] Gère les polices

  • « PDF_get_fontname
  • PDF_get_image_height »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Gère les polices

PDF_get_fontsize

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_fontsize — [Obsolète] Gère les polices

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre fontsize à la place.


[Obsolète] Retourne la hauteur d'une image

  • « PDF_get_fontsize
  • PDF_get_image_width »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Retourne la hauteur d'une image

PDF_get_image_height

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_image_height — [Obsolète] Retourne la hauteur d'une image

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre imageheight à la place.


[Obsolète] Retourne la largeur d'une image

  • « PDF_get_image_height
  • PDF_get_majorversion »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Retourne la largeur d'une image

PDF_get_image_width

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_image_width — [Obsolète] Retourne la largeur d'une image

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre imagewidth à la place.


[Obsolète] Retourne le numéro de version majeur de PDFlib

  • « PDF_get_image_width
  • PDF_get_minorversion »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Retourne le numéro de version majeur de PDFlib

PDF_get_majorversion

(PHP 4 >= 4.2.0, PECL pdflib >= 1.0.0)

PDF_get_majorversion — [Obsolète] Retourne le numéro de version majeur de PDFlib

Description

int PDF_get_majorversion ( void )

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre major à la place.


[Obsolète] Retourne le numéro de version mineure de PDFlib

  • « PDF_get_majorversion
  • PDF_get_parameter »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Retourne le numéro de version mineure de PDFlib

PDF_get_minorversion

(PHP 4 >= 4.2.0, PECL pdflib >= 1.0.0)

PDF_get_minorversion — [Obsolète] Retourne le numéro de version mineure de PDFlib

Description

int PDF_get_minorversion ( void )

PDF_get_majorversion() retourne le numéro de version mineure de PDFlib.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre minor à la place.


Lit certains paramètres

  • « PDF_get_minorversion
  • PDF_get_pdi_parameter »
  • PHP Manual
  • Fonctions PDF
  • Lit certains paramètres

PDF_get_parameter

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_get_parameter — Lit certains paramètres

Description

string PDF_get_parameter ( resource $p , string $key , float $modifier )

pdf_get_parameter() lit certains paramètres au format textuel.


Lit des paramètres textuels dans le document PDI (obsolète)

  • « PDF_get_parameter
  • PDF_get_pdi_value »
  • PHP Manual
  • Fonctions PDF
  • Lit des paramètres textuels dans le document PDI (obsolète)

PDF_get_pdi_parameter

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_pdi_parameter — Lit des paramètres textuels dans le document PDI (obsolète)

Description

string PDF_get_pdi_parameter ( resource $p , string $key , int $doc , int $page , int $reserved )

PDF_get_pdi_parameter() lit des paramètres textuels dans le document PDI doc.

Cette fonction est obsolète depuis PDFlib version 7, utilisez la fonction PDF_pcos_get_string() à la place.


Lit des paramètres numériques dans le document PDF d'entrée (obsolète)

  • « PDF_get_pdi_parameter
  • PDF_get_value »
  • PHP Manual
  • Fonctions PDF
  • Lit des paramètres numériques dans le document PDF d'entrée (obsolète)

PDF_get_pdi_value

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_pdi_value — Lit des paramètres numériques dans le document PDF d'entrée (obsolète)

Description

float PDF_get_pdi_value ( resource $p , string $key , int $doc , int $page , int $reserved )

PDF_get_pdi_value() lit des paramètres numériques dans le document PDF d'entrée.

Cette fonction est obsolète depuis PDFlib version 7, utilisez plutôt la fonction PDF_pcos_get_number().


Lit certains paramètres numériques

  • « PDF_get_pdi_value
  • PDF_info_font »
  • PHP Manual
  • Fonctions PDF
  • Lit certains paramètres numériques

PDF_get_value

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_get_value — Lit certains paramètres numériques

Description

float PDF_get_value ( resource $p , string $key , float $modifier )

PDF_get_value() retourne la valeur du paramètre numérique du document p, identifié par key.


Récupère des informations détaillées sur une police chargée

  • « PDF_get_value
  • PDF_info_matchbox »
  • PHP Manual
  • Fonctions PDF
  • Récupère des informations détaillées sur une police chargée

PDF_info_font

(PECL pdflib >= 2.1.0)

PDF_info_font — Récupère des informations détaillées sur une police chargée

Description

float PDF_info_font ( resource $pdfdoc , int $font , string $keyword , string $optlist )

Récupère des informations détaillées sur une police de caractères chargée.


Récupère les informations d'une boîte

  • « PDF_info_font
  • PDF_info_table »
  • PHP Manual
  • Fonctions PDF
  • Récupère les informations d'une boîte

PDF_info_matchbox

(PECL pdflib >= 2.1.0)

PDF_info_matchbox — Récupère les informations d'une boîte

Description

float PDF_info_matchbox ( resource $pdfdoc , string $boxname , int $num , string $keyword )

Récupère les informations d'une boîte de la page courante.


Récupère les informations d'un tableau

  • « PDF_info_matchbox
  • PDF_info_textflow »
  • PHP Manual
  • Fonctions PDF
  • Récupère les informations d'un tableau

PDF_info_table

(PECL pdflib >= 2.1.0)

PDF_info_table — Récupère les informations d'un tableau

Description

float PDF_info_table ( resource $pdfdoc , int $table , string $keyword )

Récupère les informations du dernier tableau placé.


Récupère le statut d'un flux de texte

  • « PDF_info_table
  • PDF_info_textline »
  • PHP Manual
  • Fonctions PDF
  • Récupère le statut d'un flux de texte

PDF_info_textflow

(PECL pdflib >= 2.0.0)

PDF_info_textflow — Récupère le statut d'un flux de texte

Description

float PDF_info_textflow ( resource $pdfdoc , int $textflow , string $keyword )

Récupère le statut courant d'un flux de texte.


Effectue le formatage d'une ligne de texte et récupère la matrice

  • « PDF_info_textflow
  • PDF_initgraphics »
  • PHP Manual
  • Fonctions PDF
  • Effectue le formatage d'une ligne de texte et récupère la matrice

PDF_info_textline

(PECL pdflib >= 2.1.0)

PDF_info_textline — Effectue le formatage d'une ligne de texte et récupère la matrice

Description

float PDF_info_textline ( resource $pdfdoc , string $text , string $keyword , string $optlist )

Effectue le formatage d'une ligne de texte et récupère la matrice.


Remet à zéro l'environnement graphique PDF

  • « PDF_info_textline
  • PDF_lineto »
  • PHP Manual
  • Fonctions PDF
  • Remet à zéro l'environnement graphique PDF

PDF_initgraphics

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_initgraphics — Remet à zéro l'environnement graphique PDF

Description

bool PDF_initgraphics ( resource $p )

pdf_initgraphics() remet à leur valeur initiale toutes les couleurs et les paramètres graphiques. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Dessine une ligne PDF

  • « PDF_initgraphics
  • PDF_load_3ddata »
  • PHP Manual
  • Fonctions PDF
  • Dessine une ligne PDF

PDF_lineto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_lineto — Dessine une ligne PDF

Description

bool PDF_lineto ( resource $p , float $x , float $y )

PDF_lineto() dessine une ligne entre le point courant et un autre point. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Charge un modèle 3D

  • « PDF_lineto
  • PDF_load_font »
  • PHP Manual
  • Fonctions PDF
  • Charge un modèle 3D

PDF_load_3ddata

(PECL pdflib >= 2.1.0)

PDF_load_3ddata — Charge un modèle 3D

Description

int PDF_load_3ddata ( resource $pdfdoc , string $filename , string $optlist )

Charge un modèle 3D depuis un fichier virtuel ou du disque.

Cette fonction nécessite PDF 1.6.


Cherche et prépare une police

  • « PDF_load_3ddata
  • PDF_load_iccprofile »
  • PHP Manual
  • Fonctions PDF
  • Cherche et prépare une police

PDF_load_font

(PECL pdflib >= 2.0.0)

PDF_load_font — Cherche et prépare une police

Description

int PDF_load_font ( resource $pdfdoc , string $fontname , string $encoding , string $optlist )

Recherche une police et la prépare pour une utilisation ultérieure.


Cherche et prépare un profile ICC

  • « PDF_load_font
  • PDF_load_image »
  • PHP Manual
  • Fonctions PDF
  • Cherche et prépare un profile ICC

PDF_load_iccprofile

(PECL pdflib >= 2.0.0)

PDF_load_iccprofile — Cherche et prépare un profile ICC

Description

int PDF_load_iccprofile ( resource $pdfdoc , string $profilename , string $optlist )

Recherche un profile ICC et le prépare pour une utilisation ultérieure.


Ouvre un fichier image

  • « PDF_load_iccprofile
  • PDF_makespotcolor »
  • PHP Manual
  • Fonctions PDF
  • Ouvre un fichier image

PDF_load_image

(PECL pdflib >= 2.0.0)

PDF_load_image — Ouvre un fichier image

Description

int PDF_load_image ( resource $pdfdoc , string $imagetype , string $filename , string $optlist )

Ouvre un fichier image local ou un fichier image virtuel suivant diverses options.


Place un point de couleur PDF

  • « PDF_load_image
  • PDF_moveto »
  • PHP Manual
  • Fonctions PDF
  • Place un point de couleur PDF

PDF_makespotcolor

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_makespotcolor — Place un point de couleur PDF

Description

int PDF_makespotcolor ( resource $p , string $spotname )

pdf_makespotcolor() place un point de couleur, ayant le nom de spotname et comme couleur, la couleur courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Place le point courant PDF

  • « PDF_makespotcolor
  • PDF_new »
  • PHP Manual
  • Fonctions PDF
  • Place le point courant PDF

PDF_moveto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_moveto — Place le point courant PDF

Description

bool PDF_moveto ( resource $p , float $x , float $y )

PDF_moveto() place le point courant aux coordonnées données. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Crée un nouvel objet PDF

  • « PDF_moveto
  • PDF_open_ccitt »
  • PHP Manual
  • Fonctions PDF
  • Crée un nouvel objet PDF

PDF_new

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_new — Crée un nouvel objet PDF

Description

resource PDF_new ( void )

PDF_new() crée un nouvel objet PDF, en utilisant le système de gestion d'erreurs et celui de gestion de la mémoire.


[Obsolète] Ouvre une image contenant des données brutes CCITT

  • « PDF_new
  • PDF_open_file »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ouvre une image contenant des données brutes CCITT

PDF_open_ccitt

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_ccitt — [Obsolète] Ouvre une image contenant des données brutes CCITT

Description

int PDF_open_ccitt ( resource $pdfdoc , string $filename , int $width , int $height , int $BitReverse , int $k , int $Blackls1 )

PDF_open_ccitt() ouvre une image brute CCITT.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_load_image() à la place.


[Obsolète] Ouvre un nouveau fichier PDF

  • « PDF_open_ccitt
  • PDF_open_gif »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ouvre un nouveau fichier PDF

PDF_open_file

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_file — [Obsolète] Ouvre un nouveau fichier PDF

Description

bool PDF_open_file ( resource $p , string $filename )

PDF_open_file() crée un nouveau fichier PDF dans le fichier filename. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_begin_document() à la place.


[Obsolète] Ouvre une image GIF

  • « PDF_open_file
  • PDF_open_image_file »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ouvre une image GIF

PDF_open_gif

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_gif — [Obsolète] Ouvre une image GIF

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_load_image() à la place.


[Obsolète] Lit une image depuis un fichier

  • « PDF_open_gif
  • PDF_open_image »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Lit une image depuis un fichier

PDF_open_image_file

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_image_file — [Obsolète] Lit une image depuis un fichier

Description

int PDF_open_image_file ( resource $p , string $imagetype , string $filename , string $stringparam , int $intparam )

PDF_open_image_file() ouvre une image depuis le fichier filename.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_load_image() à la place.


[Obsolète] Ouvre une image

  • « PDF_open_image_file
  • PDF_open_jpeg »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ouvre une image

PDF_open_image

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_image — [Obsolète] Ouvre une image

Description

int PDF_open_image ( resource $p , string $imagetype , string $source , string $data , int $length , int $width , int $height , int $components , int $bpc , string $params )

PDF_open_image() permet d'accéder à des images de différents formats.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez les fichiers virtuels et la fonction pdf_load_image() à la place.


[Obsolète] Ouvre une image JPEG

  • « PDF_open_image
  • PDF_open_memory_image »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ouvre une image JPEG

PDF_open_jpeg

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_jpeg — [Obsolète] Ouvre une image JPEG

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_load_image() à la place.


[Non supporté] Ouvre une image créée en mémoire par PHP

  • « PDF_open_jpeg
  • PDF_open_pdi_document »
  • PHP Manual
  • Fonctions PDF
  • [Non supporté] Ouvre une image créée en mémoire par PHP

PDF_open_memory_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_memory_image — [Non supporté] Ouvre une image créée en mémoire par PHP

Description

int PDF_open_memory_image ( resource $p , resource $image )

Cette fonction n'est pas supportée par la PDFlib GmbH.


Prépare un document pdi

  • « PDF_open_memory_image
  • PDF_open_pdi_page »
  • PHP Manual
  • Fonctions PDF
  • Prépare un document pdi

PDF_open_pdi_document

(PECL pdflib >= 2.1.0)

PDF_open_pdi_document — Prépare un document pdi

Description

int PDF_open_pdi_document ( resource $p , string $filename , string $optlist )

Ouvre un document PDF physique ou virtuel et le prépare pour une utilisation ultérieure.


Prépare une page

  • « PDF_open_pdi_document
  • PDF_open_pdi »
  • PHP Manual
  • Fonctions PDF
  • Prépare une page

PDF_open_pdi_page

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_pdi_page — Prépare une page

Description

int PDF_open_pdi_page ( resource $p , int $doc , int $pagenumber , string $optlist )

PDF_open_pdi_page() prépare une page pour utilisation ultérieure avec PDF_fit_pdi_page().


Ouvre un fichier PDF (obsolète)

  • « PDF_open_pdi_page
  • PDF_open_tiff »
  • PHP Manual
  • Fonctions PDF
  • Ouvre un fichier PDF (obsolète)

PDF_open_pdi

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_pdi — Ouvre un fichier PDF (obsolète)

Description

int PDF_open_pdi ( resource $pdfdoc , string $filename , string $optlist , int $len )

PDF_open_pdi() ouvre un fichier PDF existant, pour utilisation ultérieure.

Cette fonction est obsolète depuis PDFlib version 7, utilisez la fonction PDF_open_pdi_document() à la place.


[Obsolète] Ouvre une image TIFF

  • « PDF_open_pdi
  • PDF_pcos_get_number »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Ouvre une image TIFF

PDF_open_tiff

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_tiff — [Obsolète] Ouvre une image TIFF

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_load_image() à la place.


Récupère la valeur du chemin pCOS

  • « PDF_open_tiff
  • PDF_pcos_get_stream »
  • PHP Manual
  • Fonctions PDF
  • Récupère la valeur du chemin pCOS

PDF_pcos_get_number

(PECL pdflib >= 2.1.0)

PDF_pcos_get_number — Récupère la valeur du chemin pCOS

Description

float PDF_pcos_get_number ( resource $p , int $doc , string $path )

Récupère la valeur du chemin pCOS.


Récupère le contenu du chemin pCOS

  • « PDF_pcos_get_number
  • PDF_pcos_get_string »
  • PHP Manual
  • Fonctions PDF
  • Récupère le contenu du chemin pCOS

PDF_pcos_get_stream

(PECL pdflib >= 2.1.0)

PDF_pcos_get_stream — Récupère le contenu du chemin pCOS

Description

string PDF_pcos_get_stream ( resource $p , int $doc , string $optlist , string $path )

Récupère le contenu du chemin pCOS.


Récupère la valeur du chemin pCOS

  • « PDF_pcos_get_stream
  • PDF_place_image »
  • PHP Manual
  • Fonctions PDF
  • Récupère la valeur du chemin pCOS

PDF_pcos_get_string

(PECL pdflib >= 2.1.0)

PDF_pcos_get_string — Récupère la valeur du chemin pCOS

Description

string PDF_pcos_get_string ( resource $p , int $doc , string $path )

Récupère la valeur du chemin pCOS.


[Obsolète] Place une image dans la page

  • « PDF_pcos_get_string
  • PDF_place_pdi_page »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Place une image dans la page

PDF_place_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_place_image — [Obsolète] Place une image dans la page

Description

bool PDF_place_image ( resource $pdfdoc , int $image , float $x , float $y , float $scale )

PDF_place_image() place l'image image, dans la page courante, au point de coordonnées (x,y), et la met à l'échelle scale. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_fit_image() à la place.


[Obsolète] Place une page dans le document

  • « PDF_place_image
  • PDF_process_pdi »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Place une page dans le document

PDF_place_pdi_page

(PHP 4 >= 4.0.6, PECL pdflib >= 1.0.0)

PDF_place_pdi_page — [Obsolète] Place une page dans le document

Description

bool PDF_place_pdi_page ( resource $pdfdoc , int $page , float $x , float $y , float $sx , float $sy )

PDF_place_pdi_page() place une page PDI, dans la page courante, aux coordonnées (x, y), et la met à l'échelle. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_fit_pdi_page() à la place.


Traite un document PDF importé

  • « PDF_place_pdi_page
  • PDF_rect »
  • PHP Manual
  • Fonctions PDF
  • Traite un document PDF importé

PDF_process_pdi

(PECL pdflib >= 2.0.0)

PDF_process_pdi — Traite un document PDF importé

Description

int PDF_process_pdi ( resource $pdfdoc , int $doc , int $page , string $optlist )

Traite certains éléments d'un document PDF importé.


Dessine un rectangle

  • « PDF_process_pdi
  • PDF_restore »
  • PHP Manual
  • Fonctions PDF
  • Dessine un rectangle

PDF_rect

(PHP 4, PECL pdflib >= 1.0.0)

PDF_rect — Dessine un rectangle

Description

bool PDF_rect ( resource $p , float $x , float $y , float $width , float $height )

pdf_rect() dessine un rectangle. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Rétablit l'ancien environnement graphique PDF

  • « PDF_rect
  • PDF_resume_page »
  • PHP Manual
  • Fonctions PDF
  • Rétablit l'ancien environnement graphique PDF

PDF_restore

(PHP 4, PECL pdflib >= 1.0.0)

PDF_restore — Rétablit l'ancien environnement graphique PDF

Description

bool PDF_restore ( resource $p )

pdf_restore() rétablit l'ancien environnement graphique, sauvé avec pdf_save(). Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Réouvre une page

  • « PDF_restore
  • PDF_rotate »
  • PHP Manual
  • Fonctions PDF
  • Réouvre une page

PDF_resume_page

(PECL pdflib >= 2.0.0)

PDF_resume_page — Réouvre une page

Description

bool PDF_resume_page ( resource $pdfdoc , string $optlist )

Réouvre une page pour y ajouter plus de contenus.


Configure la rotation

  • « PDF_resume_page
  • PDF_save »
  • PHP Manual
  • Fonctions PDF
  • Configure la rotation

PDF_rotate

(PHP 4, PECL pdflib >= 1.0.0)

PDF_rotate — Configure la rotation

Description

bool PDF_rotate ( resource $p , float $phi )

pdf_rotate() fait pivoter le système de phi degrés. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Sauve l'environnement graphique courant

  • « PDF_rotate
  • PDF_scale »
  • PHP Manual
  • Fonctions PDF
  • Sauve l'environnement graphique courant

PDF_save

(PHP 4, PECL pdflib >= 1.0.0)

PDF_save — Sauve l'environnement graphique courant

Description

bool PDF_save ( resource $p )

pdf_save() sauve l'environnement graphique courant. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure l'échelle du document

  • « PDF_save
  • PDF_set_border_color »
  • PHP Manual
  • Fonctions PDF
  • Configure l'échelle du document

PDF_scale

(PHP 4, PECL pdflib >= 1.0.0)

PDF_scale — Configure l'échelle du document

Description

bool PDF_scale ( resource $p , float $sx , float $sy )

PDF_scale() configure l'échelle du document en coordonnées horizontales et verticales. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


[Obsolète] Configure la couleur des bords autour des liens et annotations

  • « PDF_scale
  • PDF_set_border_dash »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Configure la couleur des bords autour des liens et annotations

PDF_set_border_color

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_border_color — [Obsolète] Configure la couleur des bords autour des liens et annotations

Description

bool PDF_set_border_color ( resource $p , float $red , float $green , float $blue )

PDF_set_border_color() configure la couleur des bords autour des liens et annotations. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec l'option annotcolor à la place.


[Obsolète] Configure le style des lignes autour des liens des annotations

  • « PDF_set_border_color
  • PDF_set_border_style »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Configure le style des lignes autour des liens des annotations

PDF_set_border_dash

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_border_dash — [Obsolète] Configure le style des lignes autour des liens des annotations

Description

bool PDF_set_border_dash ( resource $pdfdoc , float $black , float $white )

pdf_set_border_dash() configure le style des lignes autour des liens. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec l'option dasharray à la place.


[Obsolète] Choisit le style de bord autour des liens et annotations

  • « PDF_set_border_dash
  • PDF_set_char_spacing »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Choisit le style de bord autour des liens et annotations

PDF_set_border_style

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_border_style — [Obsolète] Choisit le style de bord autour des liens et annotations

Description

bool PDF_set_border_style ( resource $pdfdoc , string $style , float $width )

PDF_set_border_style() configure le style des bords de tous les liens et annotations. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec les options borderstyle et linewidth à la place.


[Obsolète] Configure l'espacement des caractères

  • « PDF_set_border_style
  • PDF_set_duration »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Configure l'espacement des caractères

PDF_set_char_spacing

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_char_spacing — [Obsolète] Configure l'espacement des caractères

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre charspacing à la place.


[Obsolète] Configure la durée entre deux pages

  • « PDF_set_char_spacing
  • PDF_set_gstate »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Configure la durée entre deux pages

PDF_set_duration

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_duration — [Obsolète] Configure la durée entre deux pages

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_begin_page_ext() avec le paramètre duration ou la fonction PDF_end_page_ext() à la place.


Active un objet graphique

  • « PDF_set_duration
  • PDF_set_horiz_scaling »
  • PHP Manual
  • Fonctions PDF
  • Active un objet graphique

PDF_set_gstate

(PECL pdflib >= 2.0.0)

PDF_set_gstate — Active un objet graphique

Description

bool PDF_set_gstate ( resource $pdfdoc , int $gstate )

Active un objet graphique.


[Obsolète] Configure l'échelle horizontale du texte

  • « PDF_set_gstate
  • PDF_set_info_author »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Configure l'échelle horizontale du texte

PDF_set_horiz_scaling

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_horiz_scaling — [Obsolète] Configure l'échelle horizontale du texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre horizscaling à la place.


[Obsolète] Remplit le champ d'auteur du document

  • « PDF_set_horiz_scaling
  • PDF_set_info_creator »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Remplit le champ d'auteur du document

PDF_set_info_author

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_author — [Obsolète] Remplit le champ d'auteur du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.


[Obsolète] Remplit le champ de créateur du document

  • « PDF_set_info_author
  • PDF_set_info_keywords »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Remplit le champ de créateur du document

PDF_set_info_creator

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_creator — [Obsolète] Remplit le champ de créateur du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.


[Obsolète] Remplit le champ de mots-clés du document

  • « PDF_set_info_creator
  • PDF_set_info_subject »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Remplit le champ de mots-clés du document

PDF_set_info_keywords

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_keywords — [Obsolète] Remplit le champ de mots-clés du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.


[Obsolète] Remplit le champ de sujet du document

  • « PDF_set_info_keywords
  • PDF_set_info_title »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Remplit le champ de sujet du document

PDF_set_info_subject

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_subject — [Obsolète] Remplit le champ de sujet du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.


[Obsolète] Remplit le champ de titre du document

  • « PDF_set_info_subject
  • PDF_set_info »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Remplit le champ de titre du document

PDF_set_info_title

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_title — [Obsolète] Remplit le champ de titre du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.


Remplit un champ de l'en-tête de document PDF

  • « PDF_set_info_title
  • PDF_set_layer_dependency »
  • PHP Manual
  • Fonctions PDF
  • Remplit un champ de l'en-tête de document PDF

PDF_set_info

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_info — Remplit un champ de l'en-tête de document PDF

Description

bool PDF_set_info ( resource $p , string $key , string $value )

PDF_set_info() remplit l'un des champs d'en-tête du document. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Définit les liens entre les interfaces

  • « PDF_set_info
  • PDF_set_leading »
  • PHP Manual
  • Fonctions PDF
  • Définit les liens entre les interfaces

PDF_set_layer_dependency

(PECL pdflib >= 2.0.0)

PDF_set_layer_dependency — Définit les liens entre les interfaces

Description

bool PDF_set_layer_dependency ( resource $pdfdoc , string $type , string $optlist )

Définit les hiérarchies et les groupes pour les interfaces. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction nécessite PDF 1.5.


[Obsolète] Configure la distance entre deux lignes de texte

  • « PDF_set_layer_dependency
  • PDF_set_parameter »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Configure la distance entre deux lignes de texte

PDF_set_leading

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_leading — [Obsolète] Configure la distance entre deux lignes de texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre leading à la place.


Modifie certains paramètres

  • « PDF_set_leading
  • PDF_set_text_matrix »
  • PHP Manual
  • Fonctions PDF
  • Modifie certains paramètres

PDF_set_parameter

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_parameter — Modifie certains paramètres

Description

bool PDF_set_parameter ( resource $p , string $key , string $value )

PDF_set_parameter() modifie les paramètres PDFlib de type texte. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


[Obsolète] Configure la matrice de texte

  • « PDF_set_parameter
  • PDF_set_text_pos »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Configure la matrice de texte

PDF_set_text_matrix

(PHP 4 <= 4.0.4)

PDF_set_text_matrix — [Obsolète] Configure la matrice de texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_scale(), PDF_translate(), PDF_rotate() ou PDF_skew() à la place.


Modifie la position du texte

  • « PDF_set_text_matrix
  • PDF_set_text_rendering »
  • PHP Manual
  • Fonctions PDF
  • Modifie la position du texte

PDF_set_text_pos

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_pos — Modifie la position du texte

Description

bool PDF_set_text_pos ( resource $p , float $x , float $y )

PDF_set_text_pos() modifie la position du texte. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


[Obsolète] Détermine le rendu du texte

  • « PDF_set_text_pos
  • PDF_set_text_rise »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Détermine le rendu du texte

PDF_set_text_rendering

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_rendering — [Obsolète] Détermine le rendu du texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre textrendering à la place.


[Obsolète] Configure l'élévation de texte

  • « PDF_set_text_rendering
  • PDF_set_value »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Configure l'élévation de texte

PDF_set_text_rise

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_rise — [Obsolète] Configure l'élévation de texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre textrise à la place.


Modifie certains paramètres numériques

  • « PDF_set_text_rise
  • PDF_set_word_spacing »
  • PHP Manual
  • Fonctions PDF
  • Modifie certains paramètres numériques

PDF_set_value

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_value — Modifie certains paramètres numériques

Description

bool PDF_set_value ( resource $p , string $key , float $value )

PDF_set_value() modifie la valeur du paramètre de la PDFlib key par la valeur de value. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


[Obsolète] Configure l'espace entre deux mots

  • « PDF_set_value
  • PDF_setcolor »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Configure l'espace entre deux mots

PDF_set_word_spacing

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_word_spacing — [Obsolète] Configure l'espace entre deux mots

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre wordspacing à la place.


Configure la couleur de dessin et de remplissage

  • « PDF_set_word_spacing
  • PDF_setdash »
  • PHP Manual
  • Fonctions PDF
  • Configure la couleur de dessin et de remplissage

PDF_setcolor

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setcolor — Configure la couleur de dessin et de remplissage

Description

bool PDF_setcolor ( resource $p , string $fstype , string $colorspace , float $c1 , float $c2 , float $c3 , float $c4 )

PDF_setcolor() configure la couleur de dessin et de remplissage. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure le mode de pointillé

  • « PDF_setcolor
  • PDF_setdashpattern »
  • PHP Manual
  • Fonctions PDF
  • Configure le mode de pointillé

PDF_setdash

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setdash — Configure le mode de pointillé

Description

bool PDF_setdash ( resource $pdfdoc , float $b , float $w )

PDF_setdash() configure le mode de pointillé à la taille de b pour les traits noirs, et w pour les traits blancs. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Définit un modèle de masque

  • « PDF_setdash
  • PDF_setflat »
  • PHP Manual
  • Fonctions PDF
  • Définit un modèle de masque

PDF_setdashpattern

(PECL pdflib >= 2.0.0)

PDF_setdashpattern — Définit un modèle de masque

Description

bool PDF_setdashpattern ( resource $pdfdoc , string $optlist )

Définit un modèle de masque suivant une liste d'option. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure la position à plat (flatness)

  • « PDF_setdashpattern
  • PDF_setfont »
  • PHP Manual
  • Fonctions PDF
  • Configure la position à plat (flatness)

PDF_setflat

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setflat — Configure la position à plat (flatness)

Description

bool PDF_setflat ( resource $pdfdoc , float $flatness )

pdf_setflat() configure la position à plat, à une valeur comprise entre 0 et 100 inclus. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure la police courante

  • « PDF_setflat
  • PDF_setgray_fill »
  • PHP Manual
  • Fonctions PDF
  • Configure la police courante

PDF_setfont

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setfont — Configure la police courante

Description

bool PDF_setfont ( resource $pdfdoc , int $font , float $fontsize )

Définit la police de caractère courant en taille fontsize, en utilisant le gestionnaire font retourné par la fonction PDF_load_font(). Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


[Obsolète] Configure la couleur de remplissage à un niveau de gris

  • « PDF_setfont
  • PDF_setgray_stroke »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Configure la couleur de remplissage à un niveau de gris

PDF_setgray_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray_fill — [Obsolète] Configure la couleur de remplissage à un niveau de gris

Description

bool PDF_setgray_fill ( resource $p , float $g )

PDF_setgray_fill() configure la couleur de remplissage à un niveau de gris, entre 0 et 1 inclus. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.


[Obsolète] Configure la couleur de dessin à un niveau de gris

  • « PDF_setgray_fill
  • PDF_setgray »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Configure la couleur de dessin à un niveau de gris

PDF_setgray_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray_stroke — [Obsolète] Configure la couleur de dessin à un niveau de gris

Description

bool PDF_setgray_stroke ( resource $p , float $g )

PDF_setgray_stroke() configure la couleur de dessin à un niveau de gris, entre 0 et 1 inclus. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.


[Obsolète] Configure la couleur de dessin et de remplissage à un niveau de gris

  • « PDF_setgray_stroke
  • PDF_setlinecap »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Configure la couleur de dessin et de remplissage à un niveau de gris

PDF_setgray

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray — [Obsolète] Configure la couleur de dessin et de remplissage à un niveau de gris

Description

bool PDF_setgray ( resource $p , float $g )

PDF_setgray() configure la couleur de dessin et de remplissage au niveau de gris g. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.


Configure le paramètre de linecap

  • « PDF_setgray
  • PDF_setlinejoin »
  • PHP Manual
  • Fonctions PDF
  • Configure le paramètre de linecap

PDF_setlinecap

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinecap — Configure le paramètre de linecap

Description

bool PDF_setlinecap ( resource $p , int $linecap )

PDF_setlinecap() configure le paramètre linecap à une valeur entre 0 et 2 inclusivement.


Configure le paramètre de linejoin

  • « PDF_setlinecap
  • PDF_setlinewidth »
  • PHP Manual
  • Fonctions PDF
  • Configure le paramètre de linejoin

PDF_setlinejoin

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinejoin — Configure le paramètre de linejoin

Description

bool PDF_setlinejoin ( resource $p , int $value )

PDF_setlinejoin() configure le paramètre de linejoin à une valeur entre 0 et 2 inclus. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure la largeur de ligne

  • « PDF_setlinejoin
  • PDF_setmatrix »
  • PHP Manual
  • Fonctions PDF
  • Configure la largeur de ligne

PDF_setlinewidth

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinewidth — Configure la largeur de ligne

Description

bool PDF_setlinewidth ( resource $p , float $width )

PDF_setlinewidth() configure la largeur de ligne à width. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure la matrice de transformation

  • « PDF_setlinewidth
  • PDF_setmiterlimit »
  • PHP Manual
  • Fonctions PDF
  • Configure la matrice de transformation

PDF_setmatrix

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setmatrix — Configure la matrice de transformation

Description

bool PDF_setmatrix ( resource $p , float $a , float $b , float $c , float $d , float $e , float $f )

pdf_setmatrix() configure explicitement la matrice de transformation. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure la "miter limit"

  • « PDF_setmatrix
  • PDF_setpolydash »
  • PHP Manual
  • Fonctions PDF
  • Configure la "miter limit"

PDF_setmiterlimit

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setmiterlimit — Configure la "miter limit"

Description

bool PDF_setmiterlimit ( resource $pdfdoc , float $miter )

PDF_setmiterlimit() configure la "miter limit" à une valeur supérieure ou égale à 1. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


[Obsolète] Configure des pointillés complexes

  • « PDF_setmiterlimit
  • PDF_setrgbcolor_fill »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Configure des pointillés complexes

PDF_setpolydash

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setpolydash — [Obsolète] Configure des pointillés complexes

Description

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_setdashpattern() à la place.


[Obsolète] Choisit la couleur utilisée pour le remplissage

  • « PDF_setpolydash
  • PDF_setrgbcolor_stroke »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Choisit la couleur utilisée pour le remplissage

PDF_setrgbcolor_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor_fill — [Obsolète] Choisit la couleur utilisée pour le remplissage

Description

bool PDF_setrgbcolor_fill ( resource $p , float $red , float $green , float $blue )

PDF_setrgbcolor_fill() choisit la couleur utilisée pour le remplissage. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.


[Obsolète] Choisit la couleur utilisée pour le dessin

  • « PDF_setrgbcolor_fill
  • PDF_setrgbcolor »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Choisit la couleur utilisée pour le dessin

PDF_setrgbcolor_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor_stroke — [Obsolète] Choisit la couleur utilisée pour le dessin

Description

bool PDF_setrgbcolor_stroke ( resource $p , float $red , float $green , float $blue )

PDF_setrgbcolor_stroke() choisit la couleur utilisée pour le dessin. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.


[Obsolète] Choisit la couleur rgb de remplissage et de dessin

  • « PDF_setrgbcolor_stroke
  • PDF_shading_pattern »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Choisit la couleur rgb de remplissage et de dessin

PDF_setrgbcolor

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor — [Obsolète] Choisit la couleur rgb de remplissage et de dessin

Description

bool PDF_setrgbcolor ( resource $p , float $red , float $green , float $blue )

PDF_setrgbcolor() choisit la couleur utilisée pour le dessin et le remplissage. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Cette fonction est obsolète depuis la version 4, utilisez la fonction PDF_setcolor() à la place.


Définit un masque d'ombrage

  • « PDF_setrgbcolor
  • PDF_shading »
  • PHP Manual
  • Fonctions PDF
  • Définit un masque d'ombrage

PDF_shading_pattern

(PECL pdflib >= 2.0.0)

PDF_shading_pattern — Définit un masque d'ombrage

Description

int PDF_shading_pattern ( resource $pdfdoc , int $shading , string $optlist )

Définit un masque d'ombrage en utilisant un objet d'ombrage.

Cette fonction nécessite PDF 1.4 ou supérieur.


Définit un dégradé

  • « PDF_shading_pattern
  • PDF_shfill »
  • PHP Manual
  • Fonctions PDF
  • Définit un dégradé

PDF_shading

(PECL pdflib >= 2.0.0)

PDF_shading — Définit un dégradé

Description

int PDF_shading ( resource $pdfdoc , string $shtype , float $x0 , float $y0 , float $x1 , float $y1 , float $c1 , float $c2 , float $c3 , float $c4 , string $optlist )

Définit un dégradé depuis la couleur courante vers une autre couleur.

Cette fonction nécessite PDF 1.4 ou supérieur.


Remplit un espace avec un dégradé

  • « PDF_shading
  • PDF_show_boxed »
  • PHP Manual
  • Fonctions PDF
  • Remplit un espace avec un dégradé

PDF_shfill

(PECL pdflib >= 2.0.0)

PDF_shfill — Remplit un espace avec un dégradé

Description

bool PDF_shfill ( resource $pdfdoc , int $shading )

Remplit un espace avec un dégradé, basé sur un objet de dégradé.

Cette fonction nécessite PDF 1.4 ou supérieur.


[Obsolète] Affiche le texte dans un cadre

  • « PDF_shfill
  • PDF_show_xy »
  • PHP Manual
  • Fonctions PDF
  • [Obsolète] Affiche le texte dans un cadre

PDF_show_boxed

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show_boxed — [Obsolète] Affiche le texte dans un cadre

Description

int PDF_show_boxed ( resource $p , string $text , float $left , float $top , float $width , float $height , string $mode , string $feature )

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_fit_textline() pour les lignes simples, ou la fonction PDF_*_textflow() pour les lignes multiples à la place.


Affiche un texte à une position donnée

  • « PDF_show_boxed
  • PDF_show »
  • PHP Manual
  • Fonctions PDF
  • Affiche un texte à une position donnée

PDF_show_xy

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show_xy — Affiche un texte à une position donnée

Description

bool PDF_show_xy ( resource $p , string $text , float $x , float $y )

PDF_show_xy() affiche le texte text aux coordonnées x,y. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Affiche le texte à la position courante

  • « PDF_show_xy
  • PDF_skew »
  • PHP Manual
  • Fonctions PDF
  • Affiche le texte à la position courante

PDF_show

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show — Affiche le texte à la position courante

Description

bool PDF_show ( resource $pdfdoc , string $text )

pdf_show() affiche le texte text à la position courante, avec la police et la taille courante. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Incline le système de coordonnées

  • « PDF_show
  • PDF_stringwidth »
  • PHP Manual
  • Fonctions PDF
  • Incline le système de coordonnées

PDF_skew

(PHP 4, PECL pdflib >= 1.0.0)

PDF_skew — Incline le système de coordonnées

Description

bool PDF_skew ( resource $p , float $alpha , float $beta )

PDF_skew() incline le système de coordonnées de alpha degrés dans le sens des abscisses, et de beta degrés dans le sens des ordonnées, respectivement. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne la largeur d'un texte avec la police courante

  • « PDF_skew
  • PDF_stroke »
  • PHP Manual
  • Fonctions PDF
  • Retourne la largeur d'un texte avec la police courante

PDF_stringwidth

(PHP 4, PECL pdflib >= 1.0.0)

PDF_stringwidth — Retourne la largeur d'un texte avec la police courante

Description

float PDF_stringwidth ( resource $p , string $text , int $font , float $fontsize )

PDF_stringwidth() retourne la largeur du texte text en utilisant les paramètres font et size.


Dessine la ligne le long du chemin

  • « PDF_stringwidth
  • PDF_suspend_page »
  • PHP Manual
  • Fonctions PDF
  • Dessine la ligne le long du chemin

PDF_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_stroke — Dessine la ligne le long du chemin

Description

bool PDF_stroke ( resource $p )

PDF_stroke() dessine la ligne le long du chemin courant, avec la couleur courante et la largeur de ligne courante, puis clôt le chemin. Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Suspend une page

  • « PDF_stroke
  • PDF_translate »
  • PHP Manual
  • Fonctions PDF
  • Suspend une page

PDF_suspend_page

(PECL pdflib >= 2.0.0)

PDF_suspend_page — Suspend une page

Description

bool PDF_suspend_page ( resource $pdfdoc , string $optlist )

Suspend la page courante et peut donc être réouverte plus tard avec la fonction PDF_resume_page().


Effectue une translation de l'origine du système de coordonnées

  • « PDF_suspend_page
  • PDF_utf16_to_utf8 »
  • PHP Manual
  • Fonctions PDF
  • Effectue une translation de l'origine du système de coordonnées

PDF_translate

(PHP 4, PECL pdflib >= 1.0.0)

PDF_translate — Effectue une translation de l'origine du système de coordonnées

Description

bool PDF_translate ( resource $p , float $tx , float $ty )

PDF_translate() effectue une translation de l'origine du système de coordonnées d'un vecteur de (tx,ty).


Convertit une chaîne UTF-16 en UTF-8

  • « PDF_translate
  • PDF_utf32_to_utf16 »
  • PHP Manual
  • Fonctions PDF
  • Convertit une chaîne UTF-16 en UTF-8

PDF_utf16_to_utf8

(PECL pdflib >= 2.0.3)

PDF_utf16_to_utf8 — Convertit une chaîne UTF-16 en UTF-8

Description

string PDF_utf16_to_utf8 ( resource $pdfdoc , string $utf16string )

Convertit une chaîne UTF-16 en UTF-8.


Convertie une chaîne UTF-32 en UTF-16

  • « PDF_utf16_to_utf8
  • PDF_utf8_to_utf16 »
  • PHP Manual
  • Fonctions PDF
  • Convertie une chaîne UTF-32 en UTF-16

PDF_utf32_to_utf16

(PECL pdflib >= Unknown future)

PDF_utf32_to_utf16 — Convertie une chaîne UTF-32 en UTF-16

Description

string PDF_utf32_to_utf16 ( resource $pdfdoc , string $utf32string , string $ordering )

Convertie une chaîne UTF-32 en UTF-16.


Convertit une chaîne UTF-8 en UTF-16

  • « PDF_utf32_to_utf16
  • PS »
  • PHP Manual
  • Fonctions PDF
  • Convertit une chaîne UTF-8 en UTF-16

PDF_utf8_to_utf16

(PECL pdflib >= 2.0.3)

PDF_utf8_to_utf16 — Convertit une chaîne UTF-8 en UTF-16

Description

string PDF_utf8_to_utf16 ( resource $pdfdoc , string $utf8string , string $ordering )

Convertit une chaîne UTF-8 en UTF-16.


Création de document PostScript

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions PS
    • ps_add_bookmark — Ajoute un signet à la page courante
    • ps_add_launchlink — Ajoute un lien qui démarre un fichier
    • ps_add_locallink — Ajoute un lien à une page dans le même document
    • ps_add_note — Ajoute une note à la page courante
    • ps_add_pdflink — Ajoute un lien à une page à un second document PDF
    • ps_add_weblink — Ajoute un lien à un emplacement web
    • ps_arc — Dessine un arc dans le sens contraire des aiguilles d'une montre
    • ps_arcn — Dessine un arc dans le sens des aiguilles d'une montre
    • ps_begin_page — Démarre une nouvelle page
    • ps_begin_pattern — Démarre un nouveau motif
    • ps_begin_template — Démarre un nouveau modèle
    • ps_circle — Dessine un cercle
    • ps_clip — Attache le dessin au chemin courant
    • ps_close_image — Ferme l'image et libère la mémoire
    • ps_close — Ferme le document PostScript
    • ps_closepath_stroke — Ferme et trace un chemin
    • ps_closepath — Ferme un chemin
    • ps_continue_text — Continue un texte à la ligne suivante
    • ps_curveto — Dessine une courbe
    • ps_delete — Supprime toutes les ressources d'un document PostScript
    • ps_end_page — Termine une page
    • ps_end_pattern — Termine un motif
    • ps_end_template — Termine un modèle
    • ps_fill_stroke — Remplit et trace le chemin courant
    • ps_fill — Remplit le chemin courant
    • ps_findfont — Charge une police
    • ps_get_buffer — Récupère le tampon complet contenant les données PS générées
    • ps_get_parameter — Récupère certains paramètres
    • ps_get_value — Récupère certaines valeurs
    • ps_hyphenate — Relie un mot
    • ps_include_file — Lit un fichier externe avec du code PostScript brut
    • ps_lineto — Dessine une ligne
    • ps_makespotcolor — Crée une tache de couleur
    • ps_moveto — Fixe le point courant
    • ps_new — Crée un nouvel objet document PostScript
    • ps_open_file — Ouvre un fichier pour écriture
    • ps_open_image_file — Ouvre une image à partir d'un fichier
    • ps_open_image — Lit une image pour placement futur
    • ps_open_memory_image — Prend une image GD et retourne une image à placer dans un document PS
    • ps_place_image — Place une image sur la page
    • ps_rect — Dessine un rectangle
    • ps_restore — Restaure un contexte précédemment sauvegardé
    • ps_rotate — Fixe le facteur de rotation
    • ps_save — Sauvegarde le contexte courant
    • ps_scale — Fixe le facteur de redimensionnement
    • ps_set_border_color — Fixe la couleur des bordures pour les commentaires
    • ps_set_border_dash — Fixe la grandeur des tirets pour les bordures des commentaires
    • ps_set_border_style — Fixe le style de bordure des commentaires
    • ps_set_info — Assigne les champs d'informations d'un document
    • ps_set_parameter — Fixe certains paramètres
    • ps_set_text_pos — Fixe la position l'écriture du texte
    • ps_set_value — Fixe certaines valeurs
    • ps_setcolor — Fixe la couleur courante
    • ps_setdash — Fixe l'apparence d'une ligne pointillée
    • ps_setflat — Fixe la position à plat
    • ps_setfont — Fixe la police à utiliser pour la prochaine écriture
    • ps_setgray — Fixe la valeur de gris
    • ps_setlinecap — Fixe l'apparence des fins de ligne
    • ps_setlinejoin — Fixe comment les lignes connectés sont jointes
    • ps_setlinewidth — Fixe la largeur d'une ligne
    • ps_setmiterlimit — Fixe les limites de l'anglet
    • ps_setoverprintmode — Définit le mode "overprint"
    • ps_setpolydash — Fixe l'apparence d'une ligne pointillée
    • ps_shading_pattern — Crée un motif basé sur le ton
    • ps_shading — Crée un ton pour usage futur
    • ps_shfill — Remplit un espace avec un ton
    • ps_show_boxed — Écriture de texte dans une boîte
    • ps_show_xy2 — Affiche un texte à la position
    • ps_show_xy — Écrit du texte à la position donnée
    • ps_show2 — Affiche un texte à la position courante
    • ps_show — Écrit du texte
    • ps_string_geometry — Récupère les géométries d'une chaîne de caractères
    • ps_stringwidth — Récupère la largeur d'une chaîne de caractères
    • ps_stroke — Dessine le chemin courant
    • ps_symbol_name — Récupère le nom d'un glyphe
    • ps_symbol_width — Récupère la largeur d'un glyphe
    • ps_symbol — Écrit un glyphe
    • ps_translate — Fixe une translation


Introduction

Ce module permet de créer des documents PostScript. Il a beaucoup de similarités avec l'extension pdf. Actuellement, cet API est pratiquement identique et dans la plupart des cas, seuls les préfixes de chaque fonction sont remplacés de pdf_ par ps_. Cela fonctionne aussi pour les fonctions qui n'ont pas de signification dans le document PostScript (par exemple, l'ajout d'hyperliens) mais aura un effet si le document est converti en PDF.

Les documents créés par cette extension sont parfois même supérieurs aux documents créés avec l'extension pdf, parce que les fonctions de rendement de texte de pslib peuvent gérer le crénage, la coupure de mot et les ligatures qui résultent à un bien meilleur affichage de boîte texte.


Pré-requis

Vous devez au moins PHP 4.3.0 et pslib >= 0.1.12. La bibliothèque ps (pslib) est disponible à » http://pslib.sourceforge.net/.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ps.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit une ressource de document PostScript, retournée par la fonction ps_new().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les deux tables suivantes listent toutes les constantes définies par l'extension ps.

Constantes pour line caps
Nom | Description
ps_LINECAP_BUTT |
ps_LINECAP_ROUND |
ps_LINECAP_SQUARED |
Constantes pour line joins
Nom | Description
ps_LINEJOIN_MITER |
ps_LINEJOIN_ROUND |
ps_LINEJOIN_BEVEL |


Fonctions PS

Contact Information

Si vous avez des commentaires, résolutions de bogues, améliorations pour soit cette extension ou pslib alors laissez moi un message à » steinm@php.net. Toute aide est la bienvenue.

Sommaire

  • ps_add_bookmark — Ajoute un signet à la page courante
  • ps_add_launchlink — Ajoute un lien qui démarre un fichier
  • ps_add_locallink — Ajoute un lien à une page dans le même document
  • ps_add_note — Ajoute une note à la page courante
  • ps_add_pdflink — Ajoute un lien à une page à un second document PDF
  • ps_add_weblink — Ajoute un lien à un emplacement web
  • ps_arc — Dessine un arc dans le sens contraire des aiguilles d'une montre
  • ps_arcn — Dessine un arc dans le sens des aiguilles d'une montre
  • ps_begin_page — Démarre une nouvelle page
  • ps_begin_pattern — Démarre un nouveau motif
  • ps_begin_template — Démarre un nouveau modèle
  • ps_circle — Dessine un cercle
  • ps_clip — Attache le dessin au chemin courant
  • ps_close_image — Ferme l'image et libère la mémoire
  • ps_close — Ferme le document PostScript
  • ps_closepath_stroke — Ferme et trace un chemin
  • ps_closepath — Ferme un chemin
  • ps_continue_text — Continue un texte à la ligne suivante
  • ps_curveto — Dessine une courbe
  • ps_delete — Supprime toutes les ressources d'un document PostScript
  • ps_end_page — Termine une page
  • ps_end_pattern — Termine un motif
  • ps_end_template — Termine un modèle
  • ps_fill_stroke — Remplit et trace le chemin courant
  • ps_fill — Remplit le chemin courant
  • ps_findfont — Charge une police
  • ps_get_buffer — Récupère le tampon complet contenant les données PS générées
  • ps_get_parameter — Récupère certains paramètres
  • ps_get_value — Récupère certaines valeurs
  • ps_hyphenate — Relie un mot
  • ps_include_file — Lit un fichier externe avec du code PostScript brut
  • ps_lineto — Dessine une ligne
  • ps_makespotcolor — Crée une tache de couleur
  • ps_moveto — Fixe le point courant
  • ps_new — Crée un nouvel objet document PostScript
  • ps_open_file — Ouvre un fichier pour écriture
  • ps_open_image_file — Ouvre une image à partir d'un fichier
  • ps_open_image — Lit une image pour placement futur
  • ps_open_memory_image — Prend une image GD et retourne une image à placer dans un document PS
  • ps_place_image — Place une image sur la page
  • ps_rect — Dessine un rectangle
  • ps_restore — Restaure un contexte précédemment sauvegardé
  • ps_rotate — Fixe le facteur de rotation
  • ps_save — Sauvegarde le contexte courant
  • ps_scale — Fixe le facteur de redimensionnement
  • ps_set_border_color — Fixe la couleur des bordures pour les commentaires
  • ps_set_border_dash — Fixe la grandeur des tirets pour les bordures des commentaires
  • ps_set_border_style — Fixe le style de bordure des commentaires
  • ps_set_info — Assigne les champs d'informations d'un document
  • ps_set_parameter — Fixe certains paramètres
  • ps_set_text_pos — Fixe la position l'écriture du texte
  • ps_set_value — Fixe certaines valeurs
  • ps_setcolor — Fixe la couleur courante
  • ps_setdash — Fixe l'apparence d'une ligne pointillée
  • ps_setflat — Fixe la position à plat
  • ps_setfont — Fixe la police à utiliser pour la prochaine écriture
  • ps_setgray — Fixe la valeur de gris
  • ps_setlinecap — Fixe l'apparence des fins de ligne
  • ps_setlinejoin — Fixe comment les lignes connectés sont jointes
  • ps_setlinewidth — Fixe la largeur d'une ligne
  • ps_setmiterlimit — Fixe les limites de l'anglet
  • ps_setoverprintmode — Définit le mode "overprint"
  • ps_setpolydash — Fixe l'apparence d'une ligne pointillée
  • ps_shading_pattern — Crée un motif basé sur le ton
  • ps_shading — Crée un ton pour usage futur
  • ps_shfill — Remplit un espace avec un ton
  • ps_show_boxed — Écriture de texte dans une boîte
  • ps_show_xy2 — Affiche un texte à la position
  • ps_show_xy — Écrit du texte à la position donnée
  • ps_show2 — Affiche un texte à la position courante
  • ps_show — Écrit du texte
  • ps_string_geometry — Récupère les géométries d'une chaîne de caractères
  • ps_stringwidth — Récupère la largeur d'une chaîne de caractères
  • ps_stroke — Dessine le chemin courant
  • ps_symbol_name — Récupère le nom d'un glyphe
  • ps_symbol_width — Récupère la largeur d'un glyphe
  • ps_symbol — Écrit un glyphe
  • ps_translate — Fixe une translation


Ajoute un signet à la page courante

  • « Fonctions PS
  • ps_add_launchlink »
  • PHP Manual
  • Fonctions PS
  • Ajoute un signet à la page courante

ps_add_bookmark

(PECL ps >= 1.1.0)

ps_add_bookmark — Ajoute un signet à la page courante

Description

int ps_add_bookmark ( resource $psdoc , string $text [, int $parent = 0 [, int $open = 0 ]] )

Ajoute un signet pour la page courante. Les signets apparaissent normalement dans les lecteurs PDF sur la gauche de la page dans un arbre hiérarchique. Cliquer sur un signet sautera à la page donnée.

La note ne sera pas visible si le document est imprimé ou affiché, mais elle sera visible si le document est converti en PDF, soit par Acrobat Distiller™, soit par Ghostview.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte utilisé pour afficher le signet.

parent

Un signet précédemment créé par cette fonction qui est utilisé comme parent du nouveau signet.

open

Si open n'est pas égal à zéro, le signet sera montré ouvert dans le lecteur PDF.

Valeurs de retour

La valeur retournée est une référence pour le signet. Cela est utilisé seulement si le signet doit être utilisé en tant que parent. La valeur est supérieure à zéro si la fonction réussit. En cas d'erreur, 0 sera retourné.

Voir aussi

  • ps_add_launchlink() - Ajoute un lien qui démarre un fichier
  • ps_add_pdflink() - Ajoute un lien à une page à un second document PDF
  • ps_add_weblink() - Ajoute un lien à un emplacement web


Ajoute un lien qui démarre un fichier

  • « ps_add_bookmark
  • ps_add_locallink »
  • PHP Manual
  • Fonctions PS
  • Ajoute un lien qui démarre un fichier

ps_add_launchlink

(PECL ps >= 1.1.0)

ps_add_launchlink — Ajoute un lien qui démarre un fichier

Description

bool ps_add_launchlink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $filename )

ps_add_launchlink() place un hyperlien à la position donnée pointant vers un programme qui sera démarré lors du clic sur celui-ci. La position source de l'hyperlien est un rectangle avec son coin inférieur gauche à (llx, lly) et son coin haut droit à (urx, ury). Le rectangle a par défaut une mince bordure bleue.

La note ne sera pas visible si le document est imprimé ou affiché, mais elle sera visible si le document est converti en PDF, soit par Acrobat Distiller™, soit par Ghostview.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

llx

La position x du coin inférieur gauche.

lly

La position y du coin inférieur gauche.

urx

La position x du coin supérieur droit.

ury

La position y du coin supérieur droit.

filename

Le chemin où le programme sera démarré, lorsque le lien sera cliqué.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_add_locallink() - Ajoute un lien à une page dans le même document
  • ps_add_pdflink() - Ajoute un lien à une page à un second document PDF
  • ps_add_weblink() - Ajoute un lien à un emplacement web


Ajoute un lien à une page dans le même document

  • « ps_add_launchlink
  • ps_add_note »
  • PHP Manual
  • Fonctions PS
  • Ajoute un lien à une page dans le même document

ps_add_locallink

(PECL ps >= 1.1.0)

ps_add_locallink — Ajoute un lien à une page dans le même document

Description

bool ps_add_locallink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , int $page , string $dest )

ps_add_locallink() place un hyperlien à une position donnée pointant à une page dans le même document. Cliquer sur le lien sautera à la page donnée. La première page dans un document a le numéro 1.

La position source de l'hyperlien est un rectangle avec son coin inférieur gauche à (llx, lly) et son coin supérieur droit à (urx, lly). Le rectangle a par défaut une mince bordure bleue.

La note ne sera pas visible si le document est imprimé ou affiché, mais elle sera visible si le document est converti en PDF, soit par Acrobat Distiller™, soit par Ghostview.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

llx

La position x du coin inférieur gauche.

lly

La position y du coin inférieur gauche.

urx

La position x du coin supérieur droit.

ury

La position y du coin supérieur droit.

page

Le nombre de page affichée lors du clic sur le lien.

dest

Le paramètre dest détermine comment le document sera vu. Il peut être fitpage, fitwidth, fitheight ou fitbbox.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_add_launchlink() - Ajoute un lien qui démarre un fichier
  • ps_add_pdflink() - Ajoute un lien à une page à un second document PDF
  • ps_add_weblink() - Ajoute un lien à un emplacement web


Ajoute une note à la page courante

  • « ps_add_locallink
  • ps_add_pdflink »
  • PHP Manual
  • Fonctions PS
  • Ajoute une note à la page courante

ps_add_note

(PECL ps >= 1.1.0)

ps_add_note — Ajoute une note à la page courante

Description

bool ps_add_note ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $contents , string $title , string $icon , int $open )

ps_add_note() ajoute une note à une certaine position sur la page. Les notes sont comme de petites feuilles rectangulaires avec du texte par dessus, qui peuvent être placées n'importe où sur une page. Elles sont affichées, soit pliées ou dépliées. Si elles sont pliées, l'icône spécifiée est utilisée comme un marqueur.

La note ne sera pas visible si le document est imprimé ou affiché, mais elle sera visible si le document est converti en PDF, soit par Acrobat Distiller™, soit par Ghostview.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

llx

La position x du coin inférieur gauche.

lly

La position y du coin inférieur gauche.

urx

La position x du coin supérieur droit.

ury

La position y du coin supérieur droit.

contents

Le texte de la note.

title

Le titre de la note affiché en tant qu'en-tête de la note.

icon

L'icône montrée si la note est pliée. Le paramètre peut être fixé à comment, insert, note, paragraph, newparagraph, key ou help.

open

Si open n'est pas égal à zéro, la note sera affichée dépliée après l'ouverture du document dans un visualisateur PDF.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_add_pdflink() - Ajoute un lien à une page à un second document PDF
  • ps_add_launchlink() - Ajoute un lien qui démarre un fichier
  • ps_add_locallink() - Ajoute un lien à une page dans le même document
  • ps_add_weblink() - Ajoute un lien à un emplacement web


Ajoute un lien à une page à un second document PDF

  • « ps_add_note
  • ps_add_weblink »
  • PHP Manual
  • Fonctions PS
  • Ajoute un lien à une page à un second document PDF

ps_add_pdflink

(PECL ps >= 1.1.0)

ps_add_pdflink — Ajoute un lien à une page à un second document PDF

Description

bool ps_add_pdflink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $filename , int $page , string $dest )

ps_add_pdflink() place un hyperlien à une position donnée à un second document PDF. Cliquer sur le lien branchera au document à la page donnée. La première page dans un document a le numéro 1.

La position source de l'hyperlien est un rectangle avec son coin inférieur gauche à (llx, lly) et son coin supérieur droit à (urx, lly). Le rectangle a par défaut une mince bordure bleue.

La note ne sera pas visible si le document est imprimé ou affiché, mais elle sera visible si le document est converti en PDF, soit par Acrobat Distiller™, soit par Ghostview.

Liste de paramètres

psdoc

llx

La position x du coin inférieur gauche.

lly

La position y du coin inférieur gauche.

urx

La position x du coin supérieur droit.

ury

La position y du coin supérieur droit.

filename

Le nom du document PDF qui sera ouvert lors du clic sur ce lien.

page

Le numéro de page de la destination du document PDF.

dest

Le paramètre dest détermine comment le document sera vu. Il peut être fitpage, fitwidth, fitheight ou fitbbox.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_add_launchlink() - Ajoute un lien qui démarre un fichier
  • ps_add_locallink() - Ajoute un lien à une page dans le même document
  • ps_add_weblink() - Ajoute un lien à un emplacement web


Ajoute un lien à un emplacement web

  • « ps_add_pdflink
  • ps_arc »
  • PHP Manual
  • Fonctions PS
  • Ajoute un lien à un emplacement web

ps_add_weblink

(PECL ps >= 1.1.0)

ps_add_weblink — Ajoute un lien à un emplacement web

Description

bool ps_add_weblink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $url )

Place un hyperlien à la position donnée à une page web. La position source de l'hyperlien est un rectangle avec son coin inférieur gauche à (llx, lly) et son coin supérieur droit à (urx, ury). Le rectangle a par défaut une mince bordure bleue.

La note ne sera pas visible si le document est imprimé ou affiché, mais elle sera visible si le document est converti en PDF, soit par Acrobat Distiller™, soit par Ghostview.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

llx

La position x du coin inférieur gauche.

lly

La position y du coin inférieur gauche.

urx

La position x du coin supérieur droit.

ury

La position y du coin supérieur droit.

url

L'adresse url du lien hypertexte à être ouvert lors du clic sur ce lien, par exemple http://www.php.net.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_add_launchlink() - Ajoute un lien qui démarre un fichier
  • ps_add_locallink() - Ajoute un lien à une page dans le même document
  • ps_add_pdflink() - Ajoute un lien à une page à un second document PDF


Dessine un arc dans le sens contraire des aiguilles d'une montre

  • « ps_add_weblink
  • ps_arcn »
  • PHP Manual
  • Fonctions PS
  • Dessine un arc dans le sens contraire des aiguilles d'une montre

ps_arc

(PECL ps >= 1.1.0)

ps_arc — Dessine un arc dans le sens contraire des aiguilles d'une montre

Description

bool ps_arc ( resource $psdoc , float $x , float $y , float $radius , float $alpha , float $beta )

Dessine une portion d'un cercle avec un point milieu à (x, y). L'arc débute à un angle de alpha et termine avec un angle de beta. Il est tracé dans le sens contraire des aiguilles d'une montre (utilisez ps_arcn() pour dessiner dans le sens des aiguilles d'une montre). La sous trajectoire ajoutée à la trajectoire courante débute sur l'arc à l'angle alpha et termine sur l'arc à l'angle beta.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du centre du cercle.

y

La position y du centre du cercle.

radius

Le rayon du cercle.

alpha

L'angle de départ donné en degrés.

beta

L'angle de fin donné en degrés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_arcn() - Dessine un arc dans le sens des aiguilles d'une montre


Dessine un arc dans le sens des aiguilles d'une montre

  • « ps_arc
  • ps_begin_page »
  • PHP Manual
  • Fonctions PS
  • Dessine un arc dans le sens des aiguilles d'une montre

ps_arcn

(PECL ps >= 1.1.0)

ps_arcn — Dessine un arc dans le sens des aiguilles d'une montre

Description

bool ps_arcn ( resource $psdoc , float $x , float $y , float $radius , float $alpha , float $beta )

Dessine une portion d'un cercle avec un point milieu à (x, y). L'arc débute à un angle de alpha et termine avec un angle de beta. Il est tracé dans le sens des aiguilles d'une montre (utilisez ps_arc() pour dessiner dans le sens contraire des aiguilles d'une montre). La sous trajectoire ajoutée à la trajectoire courante débute sur l'arc à l'angle beta et termine sur l'arc à l'angle alpha.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du centre du cercle.

y

La position y du centre du cercle.

radius

Le rayon du cercle.

alpha

L'angle de départ donné en degrés.

beta

L'angle de fin donné en degrés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_arc() - Dessine un arc dans le sens contraire des aiguilles d'une montre


Démarre une nouvelle page

  • « ps_arcn
  • ps_begin_pattern »
  • PHP Manual
  • Fonctions PS
  • Démarre une nouvelle page

ps_begin_page

(PECL ps >= 1.1.0)

ps_begin_page — Démarre une nouvelle page

Description

bool ps_begin_page ( resource $psdoc , float $width , float $height )

Démarre une nouvelle page. Bien que les paramètres width et height implique une taille différente des feuilles pour chaque page, cela n'est pas possible dans PostScript. Le premier appel de ps_begin_page() fixera la taille des pages pour le document entier. Des appels consécutifs n'auront aucun effet, à l'exception pour créer une nouvelle page. La situation est différente si vous tentez de convertir le document PostScript en PDF. Cette fonction place des marques pdf à l'intérieur du document qui peuvent fixer la taille pour chaque page individuellement. Le document PDF résultant aura différentes tailles de pages.

Bien que le PostScript ne sait pas les tailles des différentes pages, pslib place une boîte de contour pour chaque page dans le document. La taille est évaluée par quelques lecteurs PostScript et aura précédence sur la BoundingBox dans l'en-tête du document. Ceci peut mener à des résultats non attendus lorsque vous fixez une BoundingBox dont le coin inférieur gauche n'est pas (0, 0), parce que la boîte de contour de la page aura toujours le coin inférieur gauche à (0, 0) et écrasera les configurations globales.

Chaque page est encapsulée en sauvegarde/restauration. Cela signifie, que la plupart des configurations effectuées sur une page ne seront pas retenues sur la page suivante.

S'il n'y a aucun appel de ps_findfond() jusqu'au premier appel de ps_begin_page(), alors l'en-tête du document PostScript sera affichée et le rectangle englobant sera fixé à la taille de la première page. Le coin inférieur gauche de la boîte de contour est fixée à (0, 0). Si ps_findfont() était appelée avant que l'en-tête ne soit déjà affichée, le document n'aura pas un rectangle englobant valide. Afin de prévenir cela, vous devriez appeler ps_set_info() pour fixer le champ d'information BoundingBox et possiblement Orientation avant d'appeler ps_findfont() ou ps_begin_page().

Note:

Jusqu'à la version 0.2.6 de pslib, cette fonction écrasera toujours la BoundingBox et l'Orientation, si elle n'a pas été fixée avant avec la fonction ps_set_info() et que la fonction ps_findfont() n'ait jamais été appelée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

width

La largeur de la page en pixel, par exemple 596 pour le format A4.

height

La hauteur de la page en pixel, par exemple 842 pour le format A4.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_end_page() - Termine une page
  • ps_findfont() - Charge une police
  • ps_set_info() - Assigne les champs d'informations d'un document


Démarre un nouveau motif

  • « ps_begin_page
  • ps_begin_template »
  • PHP Manual
  • Fonctions PS
  • Démarre un nouveau motif

ps_begin_pattern

(PECL ps >= 1.2.0)

ps_begin_pattern — Démarre un nouveau motif

Description

int ps_begin_pattern ( resource $psdoc , float $width , float $height , float $xstep , float $ystep , int $painttype )

Démarre un nouveau motif. Un motif est comme une page contenant par exemple un dessin qui peut être utilisé pour remplir des secteurs. Il est utilisé comme une couleur en appelant ps_setcolor() et en configurant l'emplacement de la couleur au motif.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

width

La largeur du motif en pixel.

height

La hauteur du motif en pixel.

x-step

La distance en pixel de l'emplacement du motif dans la direction horizontale.

y-step

La distance en pixel de l'emplacement du motif dans la direction verticale.

painttype

Doit être 1 ou 2.

Valeurs de retour

L'identifiant du motif ou FALSE si une erreur survient.

Exemples

Exemple #1 Création et utilisation d'un motif

<?php
$ps = ps_new();

if (!ps_open_file($ps, "pattern.ps")) {
  print "Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "pattern.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Exemple de Motif");

$pspattern = ps_begin_pattern($ps, 10.0, 10.0, 10.0, 10.0, 1);
ps_setlinewidth($ps, 0.2);
ps_setcolor($ps, "stroke", "rgb", 0.0, 0.0, 1.0, 0.0);
ps_moveto($ps, 0, 0);
ps_lineto($ps, 7, 7);
ps_stroke($ps);
ps_moveto($ps, 0, 7);
ps_lineto($ps, 7, 0);
ps_stroke($ps);
ps_end_pattern($ps);

ps_begin_page($ps, 596, 842);
ps_setcolor($ps, "both", "pattern", $pspattern, 0.0, 0.0, 0.0);
ps_rect($ps, 50, 400, 200, 200);
ps_fill($ps);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

Voir aussi

  • ps_end_pattern() - Termine un motif
  • ps_setcolor() - Fixe la couleur courante
  • ps_shading_pattern() - Crée un motif basé sur le ton


Démarre un nouveau modèle

  • « ps_begin_pattern
  • ps_circle »
  • PHP Manual
  • Fonctions PS
  • Démarre un nouveau modèle

ps_begin_template

(PECL ps >= 1.2.0)

ps_begin_template — Démarre un nouveau modèle

Description

int ps_begin_template ( resource $psdoc , float $width , float $height )

ps_begin_template() démarre un nouveau modèle. Un modèle est appelé par un formulaire dans le langage PostScript. Il est créé de la même manière qu'un motif, mais est utilisé comme une image. Les modèles sont souvent utilisés pour les dessins qui sont placés plusieurs fois dans le document, par exemple un logo de compagnie. Toutes les fonctions de dessin peuvent être utilisées dans un modèle. Le modèle ne sera pas dessiné tant qu'il n'est pas placé par ps_place_image().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

width

La largeur du modèle en pixels.

height

La hauteur du modèle en pixels.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création et utilisation d'un modèle PostScript

<?php
$ps = ps_new();

if (!ps_open_file($ps, "template.ps")) {
  print "Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "template.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Exemple de Modèle");

$pstemplate = ps_begin_template($ps, 30.0, 30.0);
ps_moveto($ps, 0, 0);
ps_lineto($ps, 30, 30);
ps_moveto($ps, 0, 30);
ps_lineto($ps, 30, 0);
ps_stroke($ps);
ps_end_template($ps);

ps_begin_page($ps, 596, 842);
ps_place_image($ps, $pstemplate, 20.0, 20.0, 1.0);
ps_place_image($ps, $pstemplate, 50.0, 30.0, 0.5);
ps_place_image($ps, $pstemplate, 70.0, 70.0, 0.6);
ps_place_image($ps, $pstemplate, 30.0, 50.0, 1.3);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

Voir aussi

  • ps_end_template() - Termine un modèle


Dessine un cercle

  • « ps_begin_template
  • ps_clip »
  • PHP Manual
  • Fonctions PS
  • Dessine un cercle

ps_circle

(PECL ps >= 1.1.0)

ps_circle — Dessine un cercle

Description

bool ps_circle ( resource $psdoc , float $x , float $y , float $radius )

Dessine un cercle avec son point milieu à (x, y). Le cercle débute et termine à la position (x+radius, y). Si cette fonction est appelée à l'extérieur d'un chemin, elle démarrera un nouveau chemin. Si elle est appelée à l'intérieur d'un chemin, elle ajoutera le cercle comme étant un sous chemin. Si la dernière opération de dessin ne se termine pas au point (x+radius, y) alors il y aura un trou dans le chemin.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du centre du cercle.

y

La position y du centre du cercle.

radius

Le rayon du cercle.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_arc() - Dessine un arc dans le sens contraire des aiguilles d'une montre
  • ps_arcn() - Dessine un arc dans le sens des aiguilles d'une montre


Attache le dessin au chemin courant

  • « ps_circle
  • ps_close_image »
  • PHP Manual
  • Fonctions PS
  • Attache le dessin au chemin courant

ps_clip

(PECL ps >= 1.1.0)

ps_clip — Attache le dessin au chemin courant

Description

bool ps_clip ( resource $psdoc )

Prend le chemin courant et l'utilise pour définir la bordure du secteur à attacher. Tout ce qui est dessiné à l'extérieur de ce secteur ne sera pas visible.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_closepath() - Ferme un chemin


Ferme l'image et libère la mémoire

  • « ps_clip
  • ps_close »
  • PHP Manual
  • Fonctions PS
  • Ferme l'image et libère la mémoire

ps_close_image

(PECL ps >= 1.1.0)

ps_close_image — Ferme l'image et libère la mémoire

Description

void ps_close_image ( resource $psdoc , int $imageid )

Ferme une image et libère ses ressources. Une fois l'image fermée, elle ne peut plus être utilisée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

imageid

Identifiant d'une image retourné par ps_open_image() ou ps_open_image_file().

Valeurs de retour

Retourne NULL en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_open_image() - Lit une image pour placement futur
  • ps_open_image_file() - Ouvre une image à partir d'un fichier


Ferme le document PostScript

  • « ps_close_image
  • ps_closepath_stroke »
  • PHP Manual
  • Fonctions PS
  • Ferme le document PostScript

ps_close

(PECL ps >= 1.1.0)

ps_close — Ferme le document PostScript

Description

bool ps_close ( resource $psdoc )

Ferme le document PostScript.

Cette fonction écrit les dernières informations dans le document PostScript. Elle écrit aussi l'arbre des signets. ps_close() ne libère aucune ressource, ceci peut être fait par ps_delete().

Cette fonction est aussi appelée par ps_delete() si elle n'avait pas été appelée avant.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_open_file() - Ouvre un fichier pour écriture
  • ps_delete() - Supprime toutes les ressources d'un document PostScript


Ferme et trace un chemin

  • « ps_close
  • ps_closepath »
  • PHP Manual
  • Fonctions PS
  • Ferme et trace un chemin

ps_closepath_stroke

(PECL ps >= 1.1.0)

ps_closepath_stroke — Ferme et trace un chemin

Description

bool ps_closepath_stroke ( resource $psdoc )

Connecte le dernier point avec le premier point du chemin et dessine le résultat de la ligne fermée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_closepath() - Ferme un chemin


Ferme un chemin

  • « ps_closepath_stroke
  • ps_continue_text »
  • PHP Manual
  • Fonctions PS
  • Ferme un chemin

ps_closepath

(PECL ps >= 1.1.0)

ps_closepath — Ferme un chemin

Description

bool ps_closepath ( resource $psdoc )

Connecte le dernier point avec le premier point du chemin. Le chemin résultant peut être utilisé comme ligne, remplissage, coupure, etc.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_clip() - Attache le dessin au chemin courant
  • ps_closepath_stroke() - Ferme et trace un chemin


Continue un texte à la ligne suivante

  • « ps_closepath
  • ps_curveto »
  • PHP Manual
  • Fonctions PS
  • Continue un texte à la ligne suivante

ps_continue_text

(PECL ps >= 1.1.0)

ps_continue_text — Continue un texte à la ligne suivante

Description

bool ps_continue_text ( resource $psdoc , string $text )

Écrit un texte une ligne en dessous de la dernière ligne. L'espace entre les lignes est pris avec la valeur "leading" qui doit être fixée avec ps_set_value(). La position actuelle du texte est déterminée par les valeurs "textx" et "texty" qui peuvent être récupérées par ps_get_value().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte à afficher.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_show() - Écrit du texte
  • ps_show_xy() - Écrit du texte à la position donnée
  • ps_show_boxed() - Écriture de texte dans une boîte


Dessine une courbe

  • « ps_continue_text
  • ps_delete »
  • PHP Manual
  • Fonctions PS
  • Dessine une courbe

ps_curveto

(PECL ps >= 1.1.0)

ps_curveto — Dessine une courbe

Description

bool ps_curveto ( resource $psdoc , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

ps_curveto() ajoute une section d'une courbe Bézier cubique décrit par les trois points de contrôle donnés au chemin courant.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x1

Position x du premier point de contrôle.

y1

Position y du premier point de contrôle.

x2

Position x du deuxième point de contrôle.

y2

Position y du deuxième point de contrôle.

x3

Position x du troisième point de contrôle.

y3

Position y du troisième point de contrôle.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_lineto() - Dessine une ligne


Supprime toutes les ressources d'un document PostScript

  • « ps_curveto
  • ps_end_page »
  • PHP Manual
  • Fonctions PS
  • Supprime toutes les ressources d'un document PostScript

ps_delete

(PECL ps >= 1.1.0)

ps_delete — Supprime toutes les ressources d'un document PostScript

Description

bool ps_delete ( resource $psdoc )

Libère principale la mémoire utilisée par le document. Ferme aussi un fichier, s'il n'était pas fermée auparavant avec la fonction ps_close(). Vous devriez dans tous les cas fermer le fichier avec ps_close() avant, car ps_close() ne ferme pas simplement le fichier mais écrit aussi les dernières informations contenant le commentaire PostScript avec le nombre de pages dans le document et ajoute la hiérarchie des signets.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_close() - Ferme le document PostScript


Termine une page

  • « ps_delete
  • ps_end_pattern »
  • PHP Manual
  • Fonctions PS
  • Termine une page

ps_end_page

(PECL ps >= 1.1.0)

ps_end_page — Termine une page

Description

bool ps_end_page ( resource $psdoc )

Termine une page qui a été débutée avec ps_begin_page(). Terminer une page laissera le contexte courant de dessin, qui par exemple requiert de recharger les polices si elles ont été chargées avec la page et fixe plusieurs autres paramètres de dessin comme la largeur des lignes, la couleur...

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_begin_page() - Démarre une nouvelle page


Termine un motif

  • « ps_end_page
  • ps_end_template »
  • PHP Manual
  • Fonctions PS
  • Termine un motif

ps_end_pattern

(PECL ps >= 1.2.0)

ps_end_pattern — Termine un motif

Description

bool ps_end_pattern ( resource $psdoc )

Termine un motif qui a été débuté avec ps_begin_pattern(). Une fois qu'un motif est terminé, il peut être utilisé en tant que couleur pour remplir des secteurs.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_begin_pattern() - Démarre un nouveau motif


Termine un modèle

  • « ps_end_pattern
  • ps_fill_stroke »
  • PHP Manual
  • Fonctions PS
  • Termine un modèle

ps_end_template

(PECL ps >= 1.2.0)

ps_end_template — Termine un modèle

Description

bool ps_end_template ( resource $psdoc )

Termine un modèle qui a été débuté avec ps_begin_template(). Une fois un modèle terminé, il peut être utilisé comme une image.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_begin_template() - Démarre un nouveau modèle


Remplit et trace le chemin courant

  • « ps_end_template
  • ps_fill »
  • PHP Manual
  • Fonctions PS
  • Remplit et trace le chemin courant

ps_fill_stroke

(PECL ps >= 1.1.0)

ps_fill_stroke — Remplit et trace le chemin courant

Description

bool ps_fill_stroke ( resource $psdoc )

Remplit et dessine le chemin construit avec des fonctions de dessin comme ps_lineto() précédemment appelées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_fill() - Remplit le chemin courant
  • ps_stroke() - Dessine le chemin courant


Remplit le chemin courant

  • « ps_fill_stroke
  • ps_findfont »
  • PHP Manual
  • Fonctions PS
  • Remplit le chemin courant

ps_fill

(PECL ps >= 1.1.0)

ps_fill — Remplit le chemin courant

Description

bool ps_fill ( resource $psdoc )

Remplit le chemin construit avec des fonctions de dessin comme ps_lineto() précédemment appelées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_fill_stroke() - Remplit et trace le chemin courant
  • ps_stroke() - Dessine le chemin courant


Charge une police

  • « ps_fill
  • ps_get_buffer »
  • PHP Manual
  • Fonctions PS
  • Charge une police

ps_findfont

(PECL ps >= 1.1.0)

ps_findfont — Charge une police

Description

int ps_findfont ( resource $psdoc , string $fontname , string $encoding [, bool $embed = false ] )

ps_findfont() charge une police pour utilisation ultérieure. Avant que le texte soit écrit avec la police chargée, il doit être fixé avec ps_setfont(). Cette fonction doit avoir le fichier de police métrique "adobe" afin de calculer l'espace utilisé par les caractères. Une police qui est chargée dans une page sera seulement disponible sur cette page. Les polices qui seront utilisées dans le document complet doivent être chargées avant le premier appel de ps_begin_page(). L'appel de ps_findfont() entre les pages rendra cette police disponible pour toutes les pages qui suivent.

Le nom du fichier afm doit être fontname.afm. Si la police doit être incorporée, le fichier fontname.pfb contenant le dessin de la police doit être présent aussi.

L'appel de ps_findfont() avant la première page requiert l'affichage de l'en-tête du postscript qui inclut le BoundingBox pour le document entier. Normalement, le BoundingBox est fixé avec le premier appel de ps_begin_page() qui vient maintenant après ps_findfont(). En conséquence, le BoundingBox n'a pas été fixée et une erreur sera lancée lorsque ps_findfont() sera appelée. Afin de prévenir cette situation, vous devriez appeler la fonction ps_set_parameter() pour fixer le BoundingBox avant que ps_findfont() soit appelée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

fontname

Le nom de la police.

encoding

ps_findfont() essaiera de charger le fichier passé dans le paramètre encoding. Les fichiers d'encodage sont de même syntaxe que ceux utilisés par dvips(1). Ils contiennent un vecteur de police d'encodage (qui n'est actuellement pas utilisé, mais qui doit être présent) et une liste de ligatures en extra pour prolonger la liste des ligatures dérivées du fichier AFM.

encoding peut être NULL ou une chaîne de caractères vide si l'encodage par défaut (TeXBase1) désire être utilisé.

Si l'encodage est fixé à builtin alors il n'y aura pas d'encodage à nouveau et l'encodage spécifique de police sera utilisé. Cela est très utile pour les polices avec symboles.

embed

Si fixé à une valeur >0, la police sera incorporée dans le document. Ceci requiert la présence du fichier dessin (.pfb).

Valeurs de retour

Retourne un identifiant de la police ou zéro en cas d'erreur. L'identifiant est un nombre positif.

Voir aussi

  • ps_begin_page() - Démarre une nouvelle page
  • ps_setfont() - Fixe la police à utiliser pour la prochaine écriture


Récupère le tampon complet contenant les données PS générées

  • « ps_findfont
  • ps_get_parameter »
  • PHP Manual
  • Fonctions PS
  • Récupère le tampon complet contenant les données PS générées

ps_get_buffer

(PECL ps >= 1.1.0)

ps_get_buffer — Récupère le tampon complet contenant les données PS générées

Description

string ps_get_buffer ( resource $psdoc )

Cette fonction n'est pas encore implémentée. Elle retournera toujours une chaîne de caractères vide. L'idée pour une future implémentation est d'écrire le contenu du fichier postscript dans un tampon interne si création en mémoire est demandée et de retourner le contenu du tampon avec la fonction. Présentement, les documents créés en mémoire sont envoyés au navigateur sans utilisation de tampon.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Voir aussi

  • ps_open_file() - Ouvre un fichier pour écriture


Récupère certains paramètres

  • « ps_get_buffer
  • ps_get_value »
  • PHP Manual
  • Fonctions PS
  • Récupère certains paramètres

ps_get_parameter

(PECL ps >= 1.1.0)

ps_get_parameter — Récupère certains paramètres

Description

string ps_get_parameter ( resource $psdoc , string $name [, float $modifier ] )

Récupère plusieurs paramètres qui ont été fixés directement par ps_set_parameter() ou indirectement par une ou d'autres fonctions. Les paramètres sont, par définition, des valeurs de chaîne de caractères. Cette fonction ne peut être utilisée pour récupérer les ressources qui ont été aussi fixées par ps_set_parameter().

Le paramètre name peut avoir une des valeurs suivantes.

fontname

Le nom de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

fontencoding

L'encodage de la police présentement active.

dottedversion

La version la bibliothèque sous-jacente pslib dans le format <majeur>.<mineur>.<sousmineur>

scope

La portée courante du dessin. Peut être un objet, un document, NULL, une page, un motif, un chemin, un modèle, un prolog, une police, un glyphe.

ligaturedisolvechar

Le caractère qui détache une ligature. Si vous utilisez une police qui contient une ligature `ff' et `|` est le caractère à détacher la ligature, alors `f|f' donnera deux `f' au lieu de la ligature `ff'.

imageencoding

L'encodage utilisé pour encoder les images. Peut être soit hex ou 85. L'encodage hex utilise deux octets dans le fichier PostScript, chaque octet dans une image. 85 représente l'encodage Ascii85.

linenumbermode

Fixe à paragraph si des lignes sont numérotées à l'intérieur d'un paragraphe ou box si elles sont numérotées dans une boîte qui l'entoure.

linebreak

Seulement utilisé si le texte est affiché avec ps_show_boxed(). Si fixé à TRUE, un retour au chariot ajoutera un saut de ligne.

parbreak

Seulement utilisé si le texte est affiché avec ps_show_boxed(). Si fixé à TRUE, un retour au chariot démarrera un nouveau paragraphe.

hyphenation

Seulement utilisé si le texte est affiché avec ps_show_boxed(). Si fixé à TRUE, le paragraphe sera divisé si un dictionnaire de trait d'union est fixé et existe.

hyphendict

Nom du fichier du dictionnaire utilisé pour le motif de trait d'union.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

name

Nom du paramètre.

modifier

Un identifiant requis si le paramètre d'une ressource est requis, par exemple, la taille d'une image. Dans ce cas, l'identifiant de la ressource est passé.

Valeurs de retour

Retourne la valeur du paramètre ou FALSE si une erreur survient.

Voir aussi

  • ps_set_parameter() - Fixe certains paramètres


Récupère certaines valeurs

  • « ps_get_parameter
  • ps_hyphenate »
  • PHP Manual
  • Fonctions PS
  • Récupère certaines valeurs

ps_get_value

(PECL ps >= 1.1.0)

ps_get_value — Récupère certaines valeurs

Description

float ps_get_value ( resource $psdoc , string $name [, float $modifier ] )

Récupère plusieurs valeurs qui ont été fixées par ps_set_value(). Les valeurs sont par définition des valeurs de nombre décimal.

Le paramètre name peut avoir une des valeurs suivantes.

fontsize

La taille de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

font

La police présentement active en elle-même.

imagewidth

La largeur de l'image dont l'identifiant est passé dans le paramètre modifier.

imageheight

La hauteur de l'image dont l'identifiant est passé dans le paramètre modifier.

capheight

La hauteur d'une capitale M dans la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

ascender

La hampe de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

descender

Le jambage de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

italicangle

Le paramètre italicangle de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

underlineposition

Le paramètre underlineposition de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

underlinethickness

Le paramètre underlinethickness de la police présentement active ou la police dont l'identifiant est passé dans le paramètre modifier.

textx

La position x courante d'affichage du texte.

texty

La position y courante d'affichage du texte.

textrendering

Le mode courant pour le rendu du texte.

textrise

L'espace par lequel le texte est augmenté au dessus de la ligne de base.

leading

La distance entre les lignes de texte en points.

wordspacing

L'espace entre les mots en tant que multiple de la largeur d'un caractère d'espace.

charspacing

L'espace entre les caractères. Si charspacing est != 0.0, les ligatures seront toujours détachées.

hyphenminchars

Nombre minimal de caractères avant un trait d'union à la fin d'un mot.

parindent

L'indentation des premières n lignes dans un paragraphe.

numindentlines

Nombre de ligne dans un paragraphe à indenter si paraindent != 0.0.

parskip

Distance entre les paragraphes.

linenumberspace

Espace général en face de chaque ligne pour le numéro de ligne.

linenumbersep

Espace entre les lignes et les numéros de lignes.

major

Le numéro de version majeur de pslib.

minor

Le numéro de version mineur de pslib.

subminor, revision

Le numéro de version sous mineur de pslib.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

name

Nom de la valeur.

modifier

Le paramètre modifier spécifie la ressource pour laquelle la valeur sera récupérée. Cela peut être l'ID de la police ou une image.

Valeurs de retour

Retourne la valeur du paramètre ou FALSE.

Voir aussi

  • ps_set_value() - Fixe certaines valeurs


Relie un mot

  • « ps_get_value
  • ps_include_file »
  • PHP Manual
  • Fonctions PS
  • Relie un mot

ps_hyphenate

(PECL ps >= 1.1.1)

ps_hyphenate — Relie un mot

Description

array ps_hyphenate ( resource $psdoc , string $text )

Relie le mot passé. ps_hyphenate() évalue la valeur hyphenminchars (fixé par ps_set_value()) et le paramètre hyphendic (fixé par ps_set_parameter()). hyphendict doit être fixé avant d'appeler cette fonction.

Cette fonction requiert que la configuration locale LC_CTYPE soit correctement faîte. Cela est fait lorsque l'extension est initialisée en utilisant les variables d'environnement. Sur les systèmes Unix, lisez les pages de manuel de locale pour plus d'informations.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

text ne devrait pas contenir de caractères non alpha. Les positions possibles pour les coupures sont retournées dans un tableau de nombre entier. Chaque nombre est la position du caractère dans text après que la liaison puisse avoir lieu.

Valeurs de retour

Un tableau d'entier indiquant la position des coupures possibles dans le texte ou FALSE si une erreur survient.

Exemples

Exemple #1 Coupe un texte

<?php
$word = "Koordinatensystem";
$psdoc = ps_new();
ps_set_parameter($psdoc, "hyphendict", "hyph_de.dic");
$hyphens = ps_hyphenate($psdoc, $word);
for($i=0; $i<strlen($word); $i++) {
  echo $word[$i];
  if(in_array($i, $hyphens))
    echo "-";
}
ps_delete($psdoc);
?>

L'exemple ci-dessus va afficher :

Ko-ordi-na-ten-sys-tem

Voir aussi

  • ps_show_boxed() - Écriture de texte dans une boîte
  • locale(1)


Lit un fichier externe avec du code PostScript brut

  • « ps_hyphenate
  • ps_lineto »
  • PHP Manual
  • Fonctions PS
  • Lit un fichier externe avec du code PostScript brut

ps_include_file

(PECL ps >= 1.3.4)

ps_include_file — Lit un fichier externe avec du code PostScript brut

Description

bool ps_include_file ( resource $psdoc , string $file )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Identifiant de ressource du fichier postscript, tel que retourné par la fonction ps_new().

file

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Dessine une ligne

  • « ps_include_file
  • ps_makespotcolor »
  • PHP Manual
  • Fonctions PS
  • Dessine une ligne

ps_lineto

(PECL ps >= 1.1.0)

ps_lineto — Dessine une ligne

Description

bool ps_lineto ( resource $psdoc , float $x , float $y )

Ajoute une ligne droite à partir du point courant aux coordonnées données au chemin courant. Utilisez ps_moveto() pour fixer le point de départ de la ligne.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du dernier point de la ligne.

y

La position y du dernier point de la ligne.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Dessin d'un rectangle

<?php
$ps = ps_new();
if (!ps_open_file($ps, "rectangle.ps")) {
  print "Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Exemple Lineto");

ps_begin_page($ps, 596, 842);
ps_moveto($ps, 100, 100);
ps_lineto($ps, 100, 200);
ps_lineto($ps, 200, 200);
ps_lineto($ps, 200, 100);
ps_lineto($ps, 100, 100);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

Voir aussi

  • ps_moveto() - Fixe le point courant


Crée une tache de couleur

  • « ps_lineto
  • ps_moveto »
  • PHP Manual
  • Fonctions PS
  • Crée une tache de couleur

ps_makespotcolor

(PECL ps >= 1.1.0)

ps_makespotcolor — Crée une tache de couleur

Description

int ps_makespotcolor ( resource $psdoc , string $name [, int $reserved = 0 ] )

Crée une tache de couleur à partir de la couleur de remplissage courante. La couleur de remplissage doit être définie en espace colorimétrique rgb, cmyk ou gris. Le nom de la tache de couleur peut être un nom arbitraire. Une tache de couleur peut être fixée à n'importe quelle couleur avec ps_setcolor(). Lorsque le document n'est pas imprimé, mais est affiché par un visualisateur PostScript, la couleur donnée dans l'espace de couleur spécifié est utilisé.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

name

Nom de la tache de couleur, par exemple Pantone 5565.

Valeurs de retour

L'ID de la nouvelle tache de couleur ou 0 en cas d'erreur.

Exemples

Exemple #1 Création et utilisation d'une tache de couleur

<?php
$ps = ps_new();
if (!ps_open_file($ps, "spotcolor.ps")) {
  print "Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_info($ps, "Creator", "spotcolor.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Exemple de Tache de Couleur");

ps_begin_page($ps, 596, 842);
ps_setcolor($ps, "fill", "cmyk", 0.37, 0.0, 0.34, 0.34);
$spotcolor = ps_makespotcolor($ps, "PANTONE 5565 C", 0);
ps_setcolor($ps, "fill", "spot", $spotcolor, 0.5, 0.0, 0.0);
ps_moveto($ps, 100, 100);
ps_lineto($ps, 100, 200);
ps_lineto($ps, 200, 200);
ps_lineto($ps, 200, 100);
ps_lineto($ps, 100, 100);
ps_fill($ps);
ps_end_page($ps);

ps_delete($ps);
?>

Cet exemple crée une tache de couleur "PANTONE 5565 C" qui est un vert foncé (olive) et remplit un rectangle avec une intensité de 50%.

Voir aussi

  • ps_setcolor() - Fixe la couleur courante


Fixe le point courant

  • « ps_makespotcolor
  • ps_new »
  • PHP Manual
  • Fonctions PS
  • Fixe le point courant

ps_moveto

(PECL ps >= 1.1.0)

ps_moveto — Fixe le point courant

Description

bool ps_moveto ( resource $psdoc , float $x , float $y )

Fixe le point courant à de nouvelles coordonnées. Si cela est le premier appel de ps_moveto() après qu'un chemin précédent ait été terminé alors il démarrera un nouveau chemin. Si cette fonction est appelée au milieu d'un chemin, elle fixera simplement le point courant et débutera un sous chemin.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du point où se déplacer.

y

La position y du point où se déplacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_lineto() - Dessine une ligne


Crée un nouvel objet document PostScript

  • « ps_moveto
  • ps_open_file »
  • PHP Manual
  • Fonctions PS
  • Crée un nouvel objet document PostScript

ps_new

(PECL ps >= 1.1.0)

ps_new — Crée un nouvel objet document PostScript

Description

resource ps_new ( void )

Crée une nouvelle instance de document. Elle ne crée pas le fichier sur le disque ou dans la mémoire. Elle prépare simplement tout. ps_new() est normalement suivie par un appel de ps_open_file() pour créer le document PostScript.

Valeurs de retour

Ressource d'un document PostScript ou FALSE si une erreur survient. La valeur de retour est passé à toutes les autres fonctions en tant que premier argument.

Voir aussi

  • ps_delete() - Supprime toutes les ressources d'un document PostScript


Ouvre un fichier pour écriture

  • « ps_new
  • ps_open_image_file »
  • PHP Manual
  • Fonctions PS
  • Ouvre un fichier pour écriture

ps_open_file

(PECL ps >= 1.1.0)

ps_open_file — Ouvre un fichier pour écriture

Description

bool ps_open_file ( resource $psdoc [, string $filename ] )

Crée un nouveau fichier sur le disque et écrit le document PostScript à l'intérieur. Le fichier sera fermé lorsque ps_close() sera appelée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

filename

Le nom du fichier PostScript. Si filename n'est pas passé, le document sera créé en mémoire et toutes les écritures iront directement au navigateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_close() - Ferme le document PostScript


Ouvre une image à partir d'un fichier

  • « ps_open_file
  • ps_open_image »
  • PHP Manual
  • Fonctions PS
  • Ouvre une image à partir d'un fichier

ps_open_image_file

(PECL ps >= 1.1.0)

ps_open_image_file — Ouvre une image à partir d'un fichier

Description

int ps_open_image_file ( resource $psdoc , string $type , string $filename [, string $stringparam [, int $intparam = 0 ]] )

Charge une image pour une utilisation ultérieure.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Type de l'image. Les valeurs possibles sont png, jpeg ou eps.

filename

Le nom du fichier contenant les données de l'image.

stringparam

Non utilisé.

intparam

Non utilisé.

Valeurs de retour

Retourne un identifiant de l'image ou zéro en cas d'erreur. L'identifiant est un nombre positive plus grand que 0.

Voir aussi

  • ps_open_image() - Lit une image pour placement futur
  • ps_place_image() - Place une image sur la page
  • ps_close_image() - Ferme l'image et libère la mémoire


Lit une image pour placement futur

  • « ps_open_image_file
  • ps_open_memory_image »
  • PHP Manual
  • Fonctions PS
  • Lit une image pour placement futur

ps_open_image

(PECL ps >= 1.1.0)

ps_open_image — Lit une image pour placement futur

Description

int ps_open_image ( resource $psdoc , string $type , string $source , string $data , int $lenght , int $width , int $height , int $components , int $bpc , string $params )

Lit une image qui est déjà disponible en mémoire. Le paramètre source n'est présentent pas évalué et est assumé d'être memory. Les données de l'image est une séquence de pixels démarrant avec le coin supérieur gauche et termine avec le coin inférieur droit. Chaque pixel consiste de composants de couleur components et chaque composant a bpc bits.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Type de l'image. Les valeurs possibles sont png, jpeg ou eps.

source

Non utilisé.

data

Les données de l'image.

length

La taille des données de l'image.

width

La largeur de l'image.

height

La hauteur de l'image.

components

Le nombre de composant pour chaque pixel. Cela peut être 1 (images à échelle de gris), 3 (images rgb) ou 4 (images cmyk, rgba).

bpc

Nombre de bits par composant (très souvent 8).

params

Valeurs de retour

Retourne l'identifiant de l'image ou zéro en cas d'erreur. L'identifiant est un nombre positif supérieur à 0.

Voir aussi

  • ps_open_image_file() - Ouvre une image à partir d'un fichier
  • ps_place_image() - Place une image sur la page
  • ps_close_image() - Ferme l'image et libère la mémoire


Prend une image GD et retourne une image à placer dans un document PS

  • « ps_open_image
  • ps_place_image »
  • PHP Manual
  • Fonctions PS
  • Prend une image GD et retourne une image à placer dans un document PS

ps_open_memory_image

(PECL ps >= 1.1.0)

ps_open_memory_image — Prend une image GD et retourne une image à placer dans un document PS

Description

int ps_open_memory_image ( resource $psdoc , int $gd )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Identifiant de ressource du fichier postscript, tel que retourné par la fonction ps_new().

gd


Place une image sur la page

  • « ps_open_memory_image
  • ps_rect »
  • PHP Manual
  • Fonctions PS
  • Place une image sur la page

ps_place_image

(PECL ps >= 1.1.0)

ps_place_image — Place une image sur la page

Description

bool ps_place_image ( resource $psdoc , int $imageid , float $x , float $y , float $scale )

Place une image précédemment chargée sur la page. L'image peut être redimensionnée. Si l'image est tournée, vous devrez tourner le système de coordonnées avant avec ps_rotate().

Liste de paramètres

psdoc

Identifiant de ressource PostScript, tel que retourné par ps_new().

imageid

Identifiant d'un fichier postscript retourné par ps_open_image() ou ps_open_image_file().

x

La position x du coin inférieur gauche de l'image.

y

La position y du coin inférieur gauche de l'image.

scale

Le facteur de redimensionnement pour l'image. Un redimensionnement de 1.0 donnera une résolution de 72 dpi, parce que chaque pixel est équivalent à 1 point.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_open_image() - Lit une image pour placement futur
  • ps_open_image_file() - Ouvre une image à partir d'un fichier


Dessine un rectangle

  • « ps_place_image
  • ps_restore »
  • PHP Manual
  • Fonctions PS
  • Dessine un rectangle

ps_rect

(PECL ps >= 1.1.0)

ps_rect — Dessine un rectangle

Description

bool ps_rect ( resource $psdoc , float $x , float $y , float $width , float $height )

Dessine un rectangle avec son coin inférieur gauche à (x, y). Le rectangle débute et termine sur son coin inférieur gauche. Si cette fonction est appelée à l'extérieur d'un chemin, elle démarrera un nouveau chemin. Si elle est appelée à l'intérieur d'un chemin, elle ajoutera le rectangle comme étant un sous chemin. Si la dernière opération de dessin ne se termine pas au coin inférieur gauche alors il y aura un trou dans le chemin.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du coin inférieur gauche du rectangle.

y

La position y du coin inférieur gauche du rectangle.

width

La largeur de l'image.

height

La hauteur de l'image.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_arc() - Dessine un arc dans le sens contraire des aiguilles d'une montre
  • ps_cirle()
  • ps_lineto() - Dessine une ligne


Restaure un contexte précédemment sauvegardé

  • « ps_rect
  • ps_rotate »
  • PHP Manual
  • Fonctions PS
  • Restaure un contexte précédemment sauvegardé

ps_restore

(PECL ps >= 1.1.0)

ps_restore — Restaure un contexte précédemment sauvegardé

Description

bool ps_restore ( resource $psdoc )

Restaure un contexte graphique précédemment sauvegardé. Tout appel de ps_save() doit être accompagné par un appel à ps_restore(). Toutes les transformations de coordonnée, de configurations de style de ligne, de couleur, etc. sont restaurées à l'état avant l'appel de la fonction ps_save().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_save() - Sauvegarde le contexte courant


Fixe le facteur de rotation

  • « ps_restore
  • ps_save »
  • PHP Manual
  • Fonctions PS
  • Fixe le facteur de rotation

ps_rotate

(PECL ps >= 1.1.0)

ps_rotate — Fixe le facteur de rotation

Description

bool ps_rotate ( resource $psdoc , float $rot )

Fixe la rotation d'un système de coordonnées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

rot

Angle de rotation en degrés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Rotation d'un système de coordonnées

<?php
function rectangle($ps) {
    ps_moveto($ps, 0, 0);
    ps_lineto($ps, 0, 50);
    ps_lineto($ps, 50, 50);
    ps_lineto($ps, 50, 0);
    ps_lineto($ps, 0, 0);
    ps_stroke($ps);
}

$ps = ps_new();
if (!ps_open_file($ps, "rotation.ps")) {
  print "Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_info($ps, "Creator", "rotation.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Exemple Rotation");
ps_set_info($ps, "BoundingBox", "0 0 596 842");

$psfont = ps_findfont($ps, "Helvetica", "", 0);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 100, 100);
ps_rotate($ps, 45);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Texte sans rotation");
ps_end_page($ps);

ps_delete($ps);
?>

L'exemple ci-dessus illustre un moyen commun d'effectuer une rotation d'un graphique (dans ce cas, simplement un rectangle) simplement en effectuant la rotation du système de coordonnées. Puisque le système de coordonnées du graphique assume que l'origine est à (0, 0), le système de coordonnées de la page est aussi translaté pour ne pas placer le graphique sur les bord de la page. Portez attention à l'ordre de ps_translate() et ps_rotate(). Dans l'exemple ci-dessus, le rectangle subit une rotation au point (100, 100) dans le système de coordonnées non translaté. Inverser les deux requêtes aura un effet complètement différent.

Afin d'afficher le texte suivant dans sa position originale, toutes les modifications du système de coordonnées sont encapsulées dans ps_save() et ps_restore().

Voir aussi

  • ps_scale() - Fixe le facteur de redimensionnement
  • ps_translate() - Fixe une translation


Sauvegarde le contexte courant

  • « ps_rotate
  • ps_scale »
  • PHP Manual
  • Fonctions PS
  • Sauvegarde le contexte courant

ps_save

(PECL ps >= 1.1.0)

ps_save — Sauvegarde le contexte courant

Description

bool ps_save ( resource $psdoc )

Sauvegarde le contexte graphique courant, contenant les configurations des couleurs, des translations et rotations et quelques autres. Un contexte sauvegardé peut être restauré avec ps_restore().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_restore() - Restaure un contexte précédemment sauvegardé


Fixe le facteur de redimensionnement

  • « ps_save
  • ps_set_border_color »
  • PHP Manual
  • Fonctions PS
  • Fixe le facteur de redimensionnement

ps_scale

(PECL ps >= 1.1.0)

ps_scale — Fixe le facteur de redimensionnement

Description

bool ps_scale ( resource $psdoc , float $x , float $y )

Fixe le redimensionnement horizontal et vertical d'un système de coordonnées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

Facteur de redimensionnement en direction horizontale.

y

Facteur de redimensionnement en direction verticale.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_rotate() - Fixe le facteur de rotation
  • ps_translate() - Fixe une translation


Fixe la couleur des bordures pour les commentaires

  • « ps_scale
  • ps_set_border_dash »
  • PHP Manual
  • Fonctions PS
  • Fixe la couleur des bordures pour les commentaires

ps_set_border_color

(PECL ps >= 1.1.0)

ps_set_border_color — Fixe la couleur des bordures pour les commentaires

Description

bool ps_set_border_color ( resource $psdoc , float $red , float $green , float $blue )

Les liens ajoutés avec une des fonctions telles que ps_add_weblink(), ps_add_pdflink(), etc. seront affichées avec un rectangle entouré lorsque le document postscript est converti en PDF et vu dans un visualisateur PDF. Ce rectangle n'est pas visible dans le document postscript. Cette fonction fixe la couleur de la bordure de la ligne du rectangle.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

red

Le composant rouge de la couleur de la bordure.

green

Le composant vert de la couleur de la bordure.

blue

Le composant bleu de la couleur de la bordure.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_set_border_dash() - Fixe la grandeur des tirets pour les bordures des commentaires
  • ps_set_border_style() - Fixe le style de bordure des commentaires


Fixe la grandeur des tirets pour les bordures des commentaires

  • « ps_set_border_color
  • ps_set_border_style »
  • PHP Manual
  • Fonctions PS
  • Fixe la grandeur des tirets pour les bordures des commentaires

ps_set_border_dash

(PECL ps >= 1.1.0)

ps_set_border_dash — Fixe la grandeur des tirets pour les bordures des commentaires

Description

bool ps_set_border_dash ( resource $psdoc , float $black , float $white )

Les liens ajoutés avec une des fonctions telles que ps_add_weblink(), ps_add_pdflink(), etc. seront affichées avec un rectangle entouré lorsque le document postscript est converti en pdf et vu dans un visualisateur pdf. Ce rectangle n'est pas visible dans le document postscript. Cette fonction fixe la grandeur de la portion de noir et blanc de la ligne de bordure pointillée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

black

La grandeur des pointillés.

white

La grandeur de l'espace entre les pointillés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_set_border_color() - Fixe la couleur des bordures pour les commentaires
  • ps_set_border_style() - Fixe le style de bordure des commentaires


Fixe le style de bordure des commentaires

  • « ps_set_border_dash
  • ps_set_info »
  • PHP Manual
  • Fonctions PS
  • Fixe le style de bordure des commentaires

ps_set_border_style

(PECL ps >= 1.1.0)

ps_set_border_style — Fixe le style de bordure des commentaires

Description

bool ps_set_border_style ( resource $psdoc , string $style , float $width )

Les liens ajoutés avec une des fonctions telles que ps_add_weblink(), ps_add_pdflink(), etc. seront affichées avec un rectangle entouré lorsque le document postscript est converti en PDF et vu dans un visualisateur PDF. Ce rectangle n'est pas visible dans le document postscript. Cette fonction fixe l'apparence et la largeur de la ligne de bordure.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

style

style peut être solid ou dashed.

width

La largeur de la bordure.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_set_border_color() - Fixe la couleur des bordures pour les commentaires
  • ps_set_border_dash() - Fixe la grandeur des tirets pour les bordures des commentaires


Assigne les champs d'informations d'un document

  • « ps_set_border_style
  • ps_set_parameter »
  • PHP Manual
  • Fonctions PS
  • Assigne les champs d'informations d'un document

ps_set_info

(PECL ps >= 1.1.0)

ps_set_info — Assigne les champs d'informations d'un document

Description

bool ps_set_info ( resource $p , string $key , string $val )

ps_set_info() fixe certains champs d'informations du document. Les champs seront montrés en tant que commentaire dans l'en-tête du fichier PostScript. Si le document est converti en PDF, ces champs seront aussi utilisés pour les informations du document.

Le BoundingBox est normalement fixé à la valeur donnée par la première page. Cela fonctionne seulement si ps_findfont() n'a pas été appelée auparavant. Dans ces cas, le BoundingBox sera laissé non fixé à moins que vous le fixé explicitement avec cette fonction.

Cette fonction n'aura plus d'effet lorsque l'en-tête du fichier PostScript a été déjà été écrit. Elle doit être appelée avant la première page ou le premier appel de ps_findfont().

Liste de paramètres

psdoc

Identifiant de ressource PostScript, retourné par ps_new().

key

Le nom du champ d'information à configurer. Les valeurs de noms possibles sont Keywords, Subject, Title, Creator, Author, BoundingBox et Orientation. Soyez attentifs, car certains champs ont des significations spéciales pour les lecteurs PostScript.

value

Les valeurs du champ d'information. Le champ Orientation peut être fixé à soit Portrait ou Landscape. Le BoundingBox est une chaîne de caractères contenant quatre nombres. Les deux premiers sont les coordonnées du coin inférieur gauche de la page. Les deux derniers sont les coordonnées du coin supérieur droit.

Note:

Jusqu'à la version 0.2.6 de pslib, le BoundingBox et Orientation seront toujours écrasés par ps_begin_page(), à moins que ps_findfont() ait été appelée avant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_findfont() - Charge une police
  • ps_begin_page() - Démarre une nouvelle page


Fixe certains paramètres

  • « ps_set_info
  • ps_set_text_pos »
  • PHP Manual
  • Fonctions PS
  • Fixe certains paramètres

ps_set_parameter

(PECL ps >= 1.1.0)

ps_set_parameter — Fixe certains paramètres

Description

bool ps_set_parameter ( resource $psdoc , string $name , string $value )

Fixe plusieurs paramètres qui sont utilisés par beaucoup de fonctions. Les paramètres sont par définition des valeurs de chaîne de caractères.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

name

Pour une liste des noms possibles, voyez ps_get_parameter().

value

La valeur du paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_get_parameters()
  • ps_set_value() - Fixe certaines valeurs


Fixe la position l'écriture du texte

  • « ps_set_parameter
  • ps_set_value »
  • PHP Manual
  • Fonctions PS
  • Fixe la position l'écriture du texte

ps_set_text_pos

(PECL ps >= 1.1.0)

ps_set_text_pos — Fixe la position l'écriture du texte

Description

bool ps_set_text_pos ( resource $psdoc , float $x , float $y )

Fixe la position pour la prochaine écriture de texte. Vous devriez alternativement fixer la valeur x et y séparément en appelant ps_set_value() et choisir textx respectivement texty comme nom de valeur.

Si vous voulez afficher le texte à une certaine position, il est plus facile d'utiliser ps_show_xy() au lieu de configurer la position du texte et d'appeler ps_show().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x de la nouvelle position du texte.

y

La position y de la nouvelle position du texte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Placement de texte à une position donnée

<?php
$ps = ps_new();
if (!ps_open_file($ps, "text.ps")) {
  print "Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Exemple de placement de Texte");

ps_begin_page($ps, 596, 842);
$psfont = ps_findfont($ps, "Helvetica", "", 0);
ps_setfont($ps, $psfont, 8.0);
ps_show_xy($ps, "Du texte à (100, 100)", 100, 100);

ps_set_value($ps, "textx", 100);
ps_set_value($ps, "texty", 120);
ps_show($ps, "Du texte à (100, 120)");
ps_end_page($ps);

ps_delete($ps);
?>

Voir aussi

  • ps_set_value() - Fixe certaines valeurs
  • ps_show() - Écrit du texte


Fixe certaines valeurs

  • « ps_set_text_pos
  • ps_setcolor »
  • PHP Manual
  • Fonctions PS
  • Fixe certaines valeurs

ps_set_value

(PECL ps >= 1.1.0)

ps_set_value — Fixe certaines valeurs

Description

bool ps_set_value ( resource $psdoc , string $name , float $value )

Fixe plusieurs valeurs qui sont utilisées par beaucoup de fonctions. Les paramètres sont par définitions des valeurs de nombre décimal.

Liste de paramètres

Le nom name peut être un des paramètres suivants :

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

textx

Le paramètre name peut être une des valeurs suivantes :

textrendering

Le moyen comme est montré le texte.

textx

La position de coordonnées x pour afficher le texte.

texty

La position de coordonnées y pour afficher le texte.

wordspacing

La distance entre les mots relativement à la largeur des espaces.

leading

La distance entre les lignes en pixels.

value

La valeur du paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_get_value() - Récupère certaines valeurs
  • ps_set_parameter() - Fixe certains paramètres


Fixe la couleur courante

  • « ps_set_value
  • ps_setdash »
  • PHP Manual
  • Fonctions PS
  • Fixe la couleur courante

ps_setcolor

(PECL ps >= 1.1.0)

ps_setcolor — Fixe la couleur courante

Description

bool ps_setcolor ( resource $psdoc , string $type , string $colorspace , float $c1 , float $c2 , float $c3 , float $c4 )

Fixe la couleur pour le dessin, remplissage ou les deux.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Le paramètre type peut être both, fill ou fillstroke.

colorspace

L'espace colorimétrique peut être soit gray, rgb, cmyk, spot, pattern. Dépendamment de l'espace colorimétrique soit le premier, les trois premiers ou tous les paramètres peuvent être utilisés.

c1

Dépendemment de l'espace colorimétrique, cette valeur peut être le composant rouge (rgb), le composant cyan (cmyk), la valeur de gris (gris), l'identifiant de la tache de couleur ou l'identifiant du motif.

c2

Dépendemment de l'espace colorimétrique, cette valeur peut être le composant vert (rgb) ou le composant magenta (cmyk).

c3

Dépendemment de l'espace colorimétrique, cette valeur peut être le composant bleu (rgb) ou le composant jaune (cymk).

c4

Ce paramètre doit être fixé seulement dans l'espace colorimétrique cymk et spécifie le composant noir.

Bogues

Le second paramètre n'est actuellement pas toujours évalué. La couleur est parfois fixée pour remplir et dessiner juste comme fillstroke était passée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Fixe l'apparence d'une ligne pointillée

  • « ps_setcolor
  • ps_setflat »
  • PHP Manual
  • Fonctions PS
  • Fixe l'apparence d'une ligne pointillée

ps_setdash

(PECL ps >= 1.1.0)

ps_setdash — Fixe l'apparence d'une ligne pointillée

Description

bool ps_setdash ( resource $psdoc , float $on , float $off )

Fixe la longueur des portions de noir et blanc d'une ligne pointillée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

on

La grandeur des pointillés.

off

La grandeur des espaces entres les pointillés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_setpolydash() - Fixe l'apparence d'une ligne pointillée


Fixe la position à plat

  • « ps_setdash
  • ps_setfont »
  • PHP Manual
  • Fonctions PS
  • Fixe la position à plat

ps_setflat

(PECL ps >= 1.1.0)

ps_setflat — Fixe la position à plat

Description

bool ps_setflat ( resource $psdoc , float $value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

value

La valeur value doit être entre 0.2 et 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Fixe la police à utiliser pour la prochaine écriture

  • « ps_setflat
  • ps_setgray »
  • PHP Manual
  • Fonctions PS
  • Fixe la police à utiliser pour la prochaine écriture

ps_setfont

(PECL ps >= 1.1.0)

ps_setfont — Fixe la police à utiliser pour la prochaine écriture

Description

bool ps_setfont ( resource $psdoc , int $fontid , float $size )

Fixe une police, qui doit être chargée avant avec ps_findfont(). L'écriture de texte sans configurer une police provoquera une erreur.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

fontid

L'identifiant de la police retourné par ps_findfont().

size

La taille de la police.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_findfont() - Charge une police
  • ps_set_text_pos() - Fixe la position l'écriture du texte pour un exemple.


Fixe la valeur de gris

  • « ps_setfont
  • ps_setlinecap »
  • PHP Manual
  • Fonctions PS
  • Fixe la valeur de gris

ps_setgray

(PECL ps >= 1.1.0)

ps_setgray — Fixe la valeur de gris

Description

bool ps_setgray ( resource $psdoc , float $gray )

Fixe la valeur de gris pour toutes les opérations de dessin suivantes.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

gray

La valeur doit être entre 0 (blanc) et 1 (noir).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_setcolor() - Fixe la couleur courante


Fixe l'apparence des fins de ligne

  • « ps_setgray
  • ps_setlinejoin »
  • PHP Manual
  • Fonctions PS
  • Fixe l'apparence des fins de ligne

ps_setlinecap

(PECL ps >= 1.1.0)

ps_setlinecap — Fixe l'apparence des fins de ligne

Description

bool ps_setlinecap ( resource $psdoc , int $type )

Fixe comment les fins de ligne ressemblent.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Le type de fin de ligne. Les valeurs possibles sont PS_LINECAP_BUTT, PS_LINECAP_ROUND ou PS_LINECAP_SQUARED.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_setlinejoin() - Fixe comment les lignes connectés sont jointes
  • ps_setlinewidth() - Fixe la largeur d'une ligne
  • ps_setmiterlimit() - Fixe les limites de l'anglet


Fixe comment les lignes connectés sont jointes

  • « ps_setlinecap
  • ps_setlinewidth »
  • PHP Manual
  • Fonctions PS
  • Fixe comment les lignes connectés sont jointes

ps_setlinejoin

(PECL ps >= 1.1.0)

ps_setlinejoin — Fixe comment les lignes connectés sont jointes

Description

bool ps_setlinejoin ( resource $psdoc , int $type )

Fixe comment les lignes sont jointes.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Le moyen comment les lignes sont jointes. Les valeurs possibles sont PS_LINEJOIN_MITER, PS_LINEJOIN_ROUND ou PS_LINEJOIN_BEVEL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_setlinecap() - Fixe l'apparence des fins de ligne
  • ps_setlinewidth() - Fixe la largeur d'une ligne
  • ps_setmiterlimit() - Fixe les limites de l'anglet


Fixe la largeur d'une ligne

  • « ps_setlinejoin
  • ps_setmiterlimit »
  • PHP Manual
  • Fonctions PS
  • Fixe la largeur d'une ligne

ps_setlinewidth

(PECL ps >= 1.1.0)

ps_setlinewidth — Fixe la largeur d'une ligne

Description

bool ps_setlinewidth ( resource $psdoc , float $width )

Fixe la largeur d'une ligne pour toutes les opérations de dessin suivantes.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

width

La largeur des lignes en points.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_setlinecap() - Fixe l'apparence des fins de ligne
  • ps_setlinejoin() - Fixe comment les lignes connectés sont jointes
  • ps_setmiterlimit() - Fixe les limites de l'anglet


Fixe les limites de l'anglet

  • « ps_setlinewidth
  • ps_setoverprintmode »
  • PHP Manual
  • Fonctions PS
  • Fixe les limites de l'anglet

ps_setmiterlimit

(PECL ps >= 1.1.0)

ps_setmiterlimit — Fixe les limites de l'anglet

Description

bool ps_setmiterlimit ( resource $psdoc , float $value )

Si deux lignes se joignent dans un petit angle et le joint des lignes est fixé à l'anglet PS_LINEJOIN_MITER, alors la mèche résultante sera vraiment longue. La limite de l'anglet est le ratio maximal de la longueur de l'anglet (la longueur de la mèche) et la largeur de la ligne.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

value

Le ratio maximal entre la grandeur de l'anglet et la largeur de la ligne. De grandes valeurs (> 10) auront pour effet l'affichage de très longues mèches lorsque deux lignes se joignent dans un petit angle. Gardez le par défaut à moins que vous sachiez que vous faites.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_setlinecap() - Fixe l'apparence des fins de ligne
  • ps_setlinejoin() - Fixe comment les lignes connectés sont jointes
  • ps_setlinewidth() - Fixe la largeur d'une ligne


Définit le mode "overprint"

  • « ps_setmiterlimit
  • ps_setpolydash »
  • PHP Manual
  • Fonctions PS
  • Définit le mode "overprint"

ps_setoverprintmode

(PECL ps >= 1.3.0)

ps_setoverprintmode — Définit le mode "overprint"

Description

bool ps_setoverprintmode ( resource $psdoc , int $mode )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Identifiant de ressource du fichier postscript, tel que retourné par la fonction ps_new().

mode

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Fixe l'apparence d'une ligne pointillée

  • « ps_setoverprintmode
  • ps_shading_pattern »
  • PHP Manual
  • Fonctions PS
  • Fixe l'apparence d'une ligne pointillée

ps_setpolydash

(PECL ps >= 1.1.0)

ps_setpolydash — Fixe l'apparence d'une ligne pointillée

Description

bool ps_setpolydash ( resource $psdoc , float $arr )

Fixe la longueur des portions de noir et blanc d'une ligne pointillée. ps_setpolydash() est utilisée pour fixer des motifs pointillés plus compliqués.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

arr

arr est une liste des grandeurs des éléments alternativement pour la portion de noir et de blanc.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Dessin d'une ligne pointillée

<?php
$ps = ps_new();
if (!ps_open_file($ps, "polydash.ps")) {
   print "Impossible d'ouvrir le fichier PostScript\n";
     exit;
}

ps_set_info($ps, "Creator", "polydash.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Exemple Poly dash");

ps_begin_page($ps, 596, 842);
ps_setpolydash($ps, array(10, 5, 2, 5));
ps_moveto($ps, 100, 100);
ps_lineto($ps, 200, 200);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

Cet exemple dessine une ligne avec un point de 10 et de 2 en ligne et des espaces de 5 points entre chacun des points.

Voir aussi

  • ps_setdash() - Fixe l'apparence d'une ligne pointillée


Crée un motif basé sur le ton

  • « ps_setpolydash
  • ps_shading »
  • PHP Manual
  • Fonctions PS
  • Crée un motif basé sur le ton

ps_shading_pattern

(PECL ps >= 1.3.0)

ps_shading_pattern — Crée un motif basé sur le ton

Description

int ps_shading_pattern ( resource $psdoc , int $shadingid , string $optlist )

Crée un motif basé sur le ton, qui doit avoir été créé avant avec ps_shading(). Les motifs de ton peuvent être utilisés comme des motifs réguliers.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

shadingid

L'identifiant de ton créé précédemment avec ps_shading().

optlist

Cet argument n'est pas utilisé présentement.

Valeurs de retour

L'identifiant du motif ou FALSE si une erreur survient.

Voir aussi

  • ps_shading() - Crée un ton pour usage futur
  • ps_shfill() - Remplit un espace avec un ton


Crée un ton pour usage futur

  • « ps_shading_pattern
  • ps_shfill »
  • PHP Manual
  • Fonctions PS
  • Crée un ton pour usage futur

ps_shading

(PECL ps >= 1.3.0)

ps_shading — Crée un ton pour usage futur

Description

int ps_shading ( resource $psdoc , string $type , float $x0 , float $y0 , float $x1 , float $y1 , float $c1 , float $c2 , float $c3 , float $c4 , string $optlist )

Crée un ton, qui peut être utilisé par ps_shfill() ou ps_shading_pattern().

La couleur du ton peut être n'importe quelle couleur d'espace excepté pour pattern.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Le type de ton peut être soit radial ou axial. Chaque ton débute avec la couleur courante de remplissage et termine avec la valeur de couleur donnée passée dans les paramètres c1 à c4 (voyez ps_setcolor() pour leur signification).

x0, x1, y0, y1

Les coordonnées x0, y0, x1, y1 sont le point de début et de fin du ton. Si le type de ton est radial, les deux points sont les points milieux du début et de la fin du cercle.

c1, c2, c3, c4

Voyez ps_setcolor() pour leur signification.

optlist

Si le ton est de type radial, le optlist doit aussi contenir les paramètres r0 et r1 avec le radius du début et de fin du cercle.

Valeurs de retour

Retourne un identifiant du motif ou FALSE si une erreur survient.

Voir aussi

  • ps_shading_pattern() - Crée un motif basé sur le ton
  • ps_shfill() - Remplit un espace avec un ton


Remplit un espace avec un ton

  • « ps_shading
  • ps_show_boxed »
  • PHP Manual
  • Fonctions PS
  • Remplit un espace avec un ton

ps_shfill

(PECL ps >= 1.3.0)

ps_shfill — Remplit un espace avec un ton

Description

bool ps_shfill ( resource $psdoc , int $shadingid )

Remplit un espace avec un ton, qui doit être créé avant avec ps_shading(). Ceci est un moyen alternatif pour créer un motif à partir d'un ton venant de ps_shading_pattern() et d'utiliser le motif comme couleur de remplissage.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

shadingid

L'identifiant de ton créé précédemment avec ps_shading().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_shading() - Crée un ton pour usage futur
  • ps_shading_pattern() - Crée un motif basé sur le ton


Écriture de texte dans une boîte

  • « ps_shfill
  • ps_show_xy2 »
  • PHP Manual
  • Fonctions PS
  • Écriture de texte dans une boîte

ps_show_boxed

(PECL ps >= 1.1.0)

ps_show_boxed — Écriture de texte dans une boîte

Description

int ps_show_boxed ( resource $psdoc , string $text , float $left , float $bottom , float $width , float $height , string $hmode [, string $feature ] )

ps_show_boxed() écrit du texte dans une boîte donnée. Le coin inférieur gauche de la boîte est à (left, bottom). Les coupures de ligne sera insérées où nécessaires. Des espaces multiples sont traités comme une seule. Les tabulations sont traitées comme des espaces.

Le texte sera relié si le paramètre hyphenation est fixé à TRUE et le paramètre hyphendict contient un fichier valide pour un fichier de liaison. L'espace des lignes est pris à partir de la valeur leading. Les paragraphes peuvent être séparés par une ligne vide comme dans TeX. Si la valeur parindent est fixée à une valeur > 0.0, alors les premières n lignes seront indentées. Le nombre n de lignes est fixé par le paramètre numindentlines. Afin de prévenir l'indentation des premiers m paragraphes, fixés la valeur parindentskip à un nombre positif.

Liste de paramètres

psdoc

Identifiant d'un fichier PostScript retourné par ps_new().

text

Le texte à être affiché dans la boîte donnée.

left

La position x du coin inférieur gauche de la boîte.

bottom

La position y du coin inférieur gauche de la boîte.

width

Largeur de la boîte.

height

Hauteur de la boîte.

hmode

Le paramètre hmode peut être "justify", "fulljustify", "right", "left" ou "center". La différence entre "justify" et "fulljustify" affecte simplement la dernière ligne de la boîte. Dans le mode "fulljustify", la dernière ligne sera justifiée de gauche à droite à moins que cela est aussi la dernière ligne du paragraphe. Dans le mode "justify", le texte sera toujours justifié à gauche.

feature

Paramètres utilisés

L'écriture de ps_show_boxed() peut être configuré avec plusieurs paramètres et valeurs qui peuvent être fixés par soit ps_set_parameter() ou ps_set_value(). Près des paramètres et des valeurs qui affectent l'écriture du texte, les paramètres et les valeurs suivantes sont évalués.

leading (valeur)

Distance entre les lignes de bases de deux lignes consécutives.

linebreak (paramètre)

Fixé à TRUE si vous voulez un retour au chariot pour démarrer une nouvelle ligne plutôt que de traiter cela comme un espace. Par défaut, ce paramètre vaut FALSE.

parbreak (paramètre)

Fixé à TRUE si vous voulez un retour au chariot d'une seule ligne pour débuter un nouveau paragraphe plutôt que de traiter cela comme un espace. Par défaut, ce paramètre vaut TRUE.

hyphenation (paramètre)

Fixé à TRUE afin d'activer les liaisons. Cela requiert un dictionnaire fixé par le paramètre hyphendict. Par défaut, ce paramètre vaut FALSE.

hyphendict (paramètre)

Fichier du dictionnaire utilisé pour un motif de liaison (voir plus bas).

hyphenminchar (valeur)

Le nombre de caractères qui doit au moins être à gauche avant ou après le tiret. Cela implique que seuls les mots d'au moins deux fois cette valeur peuvent être liés. La valeur par défaut est trois. Fixer une valeur de zéro résultera de la valeur par défaut.

parindent (valeur)

Fixe le nombre d'espace en pixel pour l'indentation les premières m lignes d'un paragraphe. m peut être configuré avec la valeur "numindentlines".

parskip (valeur)

Fixe le nombre d'espace en extra en pixel entre les paragraphes. Par défaut, en mettant 0, le résultat sera d'une distance normale entre les lignes.

numindentlines (valeur)

Nombre de lignes à partir du début du paragraphe qui sera indentée. Par défaut, cette valeur vaut 1.

parindentskip (valeur)

Nombre de paragraphes dans la boîte à qui les premières lignes ne seront pas indentées. Par défaut, cette valeur vaut 0. Cela est utile pour les paragraphes immédiatement après une section d'en-tête ou de texte qui commence dans une seconde boîte. Dans les deux cas, un devrait être fixé à 1.

linenumbermode (paramètre)

Fixe comment les lignes sont numérotées. Les valeurs possibles sont "box" pour numéroter les lignes dans la boîte au complet ou "paragraph" pour numéroter les lignes dans chaque paragraphe.

linenumberspace (valeur)

L'espace pour la colonne laissé des lignes numérotées contenant le numéro de ligne. Le numéro des lignes sera justifié à droite dans cette colonne. Par défaut, cette valeur vaut 20.

linenumbersep (valeur)

L'espace entre la colonne avec le nombre de lignes et la ligne elle-même. Par défaut, cette valeur vaut 5.

Liaison

Le texte est lié si le paramètre hyphenation est fixé à TRUE et un dictionnaire valide de liaison est fixé. pslib ne fournit pas son propre dictionnaire de liaison, mais utilise un de openoffice, scribus ou koffice. Vous pouvez trouver ces dictionnaires pour différents langages dans un des dossiers suivants si le programme est installé :

  • /usr/share/apps/koffice/hyphdicts/
  • /usr/lib/scribus/dicts/
  • /usr/lib/openoffice/share/dict/ooo/
Présentement, Scribus semble avoir les plus complets dictionnaires de liaison.

Valeurs de retour

Nombre de caractères qui ne peuvent être écrits.

Voir aussi

  • ps_continue_text() - Continue un texte à la ligne suivante


Affiche un texte à la position

  • « ps_show_boxed
  • ps_show_xy »
  • PHP Manual
  • Fonctions PS
  • Affiche un texte à la position

ps_show_xy2

(PECL ps >= 1.1.0)

ps_show_xy2 — Affiche un texte à la position

Description

bool ps_show_xy2 ( resource $psdoc , string $text , int $len , float $xcoor , float $ycoor )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Écrit du texte à la position donnée

  • « ps_show_xy2
  • ps_show2 »
  • PHP Manual
  • Fonctions PS
  • Écrit du texte à la position donnée

ps_show_xy

(PECL ps >= 1.1.0)

ps_show_xy — Écrit du texte à la position donnée

Description

bool ps_show_xy ( resource $psdoc , string $text , float $x , float $y )

Écrit du texte à la position de texte donnée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte à être affiché.

x

La position x du coin inférieur droit de la boîte entourant le texte.

y

La position y du coin inférieur droit de la boîte entourant le texte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_continue_text() - Continue un texte à la ligne suivante
  • ps_show() - Écrit du texte


Affiche un texte à la position courante

  • « ps_show_xy
  • ps_show »
  • PHP Manual
  • Fonctions PS
  • Affiche un texte à la position courante

ps_show2

(PECL ps >= 1.1.0)

ps_show2 — Affiche un texte à la position courante

Description

bool ps_show2 ( resource $psdoc , string $text , int $len )

Affiche le texte à la position courante. N'affiche pas plus de len caractères.

Liste de paramètres

psdoc

Identifiant de ressource d'un fichier postscript, tel que retourné par la fonction ps_new().

text

Le texte à afficher.

len

Le nombre maximal de caractères à afficher.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Écrit du texte

  • « ps_show2
  • ps_string_geometry »
  • PHP Manual
  • Fonctions PS
  • Écrit du texte

ps_show

(PECL ps >= 1.1.0)

ps_show — Écrit du texte

Description

bool ps_show ( resource $psdoc , string $text )

Écrit du texte à la position courante du texte. La position du texte peut être fixée en mettant les positions des coordonnées x et y dans les valeurs textx et texty avec la fonction ps_set_value(). Cette fonction émettra une erreur si une police n'a été fixée auparavant avec ps_setfont().

ps_show() évalue les paramètres et les variables suivantes fixés par ps_set_parameter() et ps_set_value().

charspacing (valeur)

Distance entre deux glyphes consécutifs. Si cette valeur n'est pas égal à zéro, alors toutes les ligatures seront résolues. Les valeurs inférieures à zéro sont autorisées.

kerning (paramètre)

Fixer ce paramètre à FALSE désactivera le crénage. Le crénage est activé par défaut.

ligatures (paramètre)

Fixer ce paramètre à FALSE désactivera l'utilisation des ligatures. Les ligatures sont activées par défaut.

underline (paramètre)

Fixer ce paramètre à TRUE activera le soulignement. Le soulignement est désactivé par défaut.

overline (paramètre)

Fixer ce paramètre à TRUE activera surlignement. Le surlignement est désactivé par défaut.

strikeout (paramètre)

Fixer ce paramètre à TRUE activera le texte barré. Le texte barré est désactivé par défaut.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte à être affiché.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_continue_text() - Continue un texte à la ligne suivante
  • ps_show_xy() - Écrit du texte à la position donnée
  • ps_setfont() - Fixe la police à utiliser pour la prochaine écriture


Récupère les géométries d'une chaîne de caractères

  • « ps_show
  • ps_stringwidth »
  • PHP Manual
  • Fonctions PS
  • Récupère les géométries d'une chaîne de caractères

ps_string_geometry

(PECL ps >= 1.2.0)

ps_string_geometry — Récupère les géométries d'une chaîne de caractères

Description

array ps_string_geometry ( resource $psdoc , string $text [, int $fontid = 0 [, float $size = 0.0 ]] )

ps_string_geometry() est similaire à ps_stringwidth(), mais retourne un tableau des dimensions contenant la largeur, la hampe et le jambage du texte.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte pour lequel la géométrie sera calculée.

fontid

L'identifiant de la police à être utilisée. Si aucune police n'est spécifiée, la police courante sera utilisée.

size

La taille de la police. Si aucune taille n'est spécifiée, la taille courante est utilisée.

Valeurs de retour

Un tableau des dimensions de la chaîne de caractères. L'élément width contient la largeur de la chaîne comme retournée par ps_stringwidth(). L'élément descender contient le maximum de jambage et ascender le maximum de la hampe de la chaîne de caractères.

Voir aussi

  • ps_continue_text() - Continue un texte à la ligne suivante
  • ps_stringwidth() - Récupère la largeur d'une chaîne de caractères


Récupère la largeur d'une chaîne de caractères

  • « ps_string_geometry
  • ps_stroke »
  • PHP Manual
  • Fonctions PS
  • Récupère la largeur d'une chaîne de caractères

ps_stringwidth

(PECL ps >= 1.1.0)

ps_stringwidth — Récupère la largeur d'une chaîne de caractères

Description

float ps_stringwidth ( resource $psdoc , string $text [, int $fontid = 0 [, float $size = 0.0 ]] )

Calcule la largeur d'une chaîne de caractères en points si elle a été écrite dans la police et la taille donnée. Cette fonction requiert le fichier de police métrique "adobe" pour calculer la largeur précise. Si le crénage est activé, il sera pris en compte.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte pour lequel la largeur sera calculée.

fontid

L'identifiant de la police à être utilisée. Si aucune police n'est spécifiée, la police courante sera utilisée.

size

La taille de la police. Si aucune taille n'est spécifiée, la taille courante est utilisée.

Valeurs de retour

Largeur de la chaîne de caractères en points.

Voir aussi

  • ps_string_geometry() - Récupère les géométries d'une chaîne de caractères


Dessine le chemin courant

  • « ps_stringwidth
  • ps_symbol_name »
  • PHP Manual
  • Fonctions PS
  • Dessine le chemin courant

ps_stroke

(PECL ps >= 1.1.0)

ps_stroke — Dessine le chemin courant

Description

bool ps_stroke ( resource $psdoc )

Dessine le chemin construit avec des fonctions de dessin comme ps_lineto() précédemment appelées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_closepath_stroke() - Ferme et trace un chemin
  • ps_fill() - Remplit le chemin courant
  • ps_fill_stroke() - Remplit et trace le chemin courant


Récupère le nom d'un glyphe

  • « ps_stroke
  • ps_symbol_width »
  • PHP Manual
  • Fonctions PS
  • Récupère le nom d'un glyphe

ps_symbol_name

(PECL ps >= 1.2.0)

ps_symbol_name — Récupère le nom d'un glyphe

Description

string ps_symbol_name ( resource $psdoc , int $ord [, int $fontid = 0 ] )

Cette fonction nécessite le fichier de police métrique "adobe" pour savoir quels glyphes sont disponibles.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

ord

Le paramètre ord est la position du glyphe dans le vecteur d'encodage de la police.

fontid

L'identifiant de la police à être utilisée. Si aucune police n'est spécifiée, la police courante sera utilisée.

Valeurs de retour

Le nom d'un glyphe dans la police donnée.

Voir aussi

  • ps_symbol() - Écrit un glyphe
  • ps_symbol_width() - Récupère la largeur d'un glyphe


Récupère la largeur d'un glyphe

  • « ps_symbol_name
  • ps_symbol »
  • PHP Manual
  • Fonctions PS
  • Récupère la largeur d'un glyphe

ps_symbol_width

(PECL ps >= 1.2.0)

ps_symbol_width — Récupère la largeur d'un glyphe

Description

float ps_symbol_width ( resource $psdoc , int $ord [, int $fontid = 0 [, float $size = 0.0 ]] )

Calcule la largeur d'un glyphe en points s'il a été écrit dans la police et la taille donnée. Cette fonction nécessite le fichier de police métrique "adobe" pour calculer la largeur précise.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

ord

La position du glyphe dans le vecteur d'encodage de la police.

fontid

L'identifiant de la police à être utilisée. Si aucune police n'est spécifiée, la police courante sera utilisée.

size

La taille de la police. Si aucune taille n'est spécifiée, la taille courante est utilisée.

Valeurs de retour

La largeur d'un glyphe en points.

Voir aussi

  • ps_symbol() - Écrit un glyphe
  • ps_symbol_name() - Récupère le nom d'un glyphe


Écrit un glyphe

  • « ps_symbol_width
  • ps_translate »
  • PHP Manual
  • Fonctions PS
  • Écrit un glyphe

ps_symbol

(PECL ps >= 1.2.0)

ps_symbol — Écrit un glyphe

Description

bool ps_symbol ( resource $psdoc , int $ord )

Écrit un glyphe à la position ord dans le vecteur d'encodage de la police de la police courante. L'encodage de la police pour une police peut être fixé lors du chargement de la police avec ps_findfont().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

ord

La position du glyphe dans le vecteur d'encodage de la police.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ps_symbol_name() - Récupère le nom d'un glyphe
  • ps_symbol_width() - Récupère la largeur d'un glyphe


Fixe une translation

  • « ps_symbol
  • RPM Reader »
  • PHP Manual
  • Fonctions PS
  • Fixe une translation

ps_translate

(PECL ps >= 1.1.0)

ps_translate — Fixe une translation

Description

bool ps_translate ( resource $psdoc , float $x , float $y )

Fixe un nouveau point initial d'un système de coordonnées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x de l'origine du système de coordonnées translaté.

y

La position y de l'origine du système de coordonnées translaté.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Translation du système de coordonnées

<?php
function rectangle($ps) {
    ps_moveto($ps, 0, 0);
    ps_lineto($ps, 0, 50);
    ps_lineto($ps, 50, 50);
    ps_lineto($ps, 50, 0);
    ps_lineto($ps, 0, 0);
    ps_stroke($ps);
}

$ps = ps_new();
if (!ps_open_file($ps, "translate.ps")) {
  print "Impossible d'ouvrir le fichier PostScript\n";
  exit;
}

ps_set_info($ps, "Creator", "translate.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Exemple Translation");
ps_set_info($ps, "BoundingBox", "0 0 596 842");

$psfont = ps_findfont($ps, "Helvetica", "", 0);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_translate($ps, 500, 750);
rectangle($ps);
ps_translate($ps, -500, -750);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Texte à position initiale");
ps_end_page($ps);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 500, 750);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Texte à position initiale");
ps_end_page($ps);

ps_delete($ps);
?>

L'exemple ci-dessus démontre deux moyens possibles pour placer un graphique (dans ce cas, simplement un rectangle) à n'importe quelle position sur la page, tandis que le graphique en lui-même utilise son propre système de coordonnées. Le truc est de changer l'origine du système de coordonnées courant avant de dessiner le rectangle. La translation doit être défaite après que le graphique ait été dessiné.

Sur la seconde page, une approche plus élégante et légèrement différente est appliquée. Au lieu de défaire la translation avec le deuxième appel de ps_translate(), le contexte graphique est sauvegardé avant les modification du système de coordonnées et restauré après le dessin du rectangle.

Voir aussi

  • ps_scale() - Fixe le facteur de redimensionnement
  • ps_rotate() - Fixe le facteur de rotation


Lecture d'en-tête RPM

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
  • Fonctions RPM Reader
    • rpm_close — Ferme un fichier RPM
    • rpm_get_tag — Récupération d'un tag de l'en-tête d'un fichier RPM
    • rpm_is_valid — Teste la validité du nom du fichier d'un fichier RPM
    • rpm_open — Ouvre un fichier RPM
    • rpm_version — Retourne une chaîne de caractères représentant la version courante de l'extension rpmreader


Introduction

Ce module vous permet de lire les meta-informations enregistrés dans les en-têtes d'un fichier » RedHat Package Manager (» RPM).


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

L'extension RPMReader requiert PHP 5.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/rpmreader.


Types de ressources

Il y a un type de ressource utilisé par le module RPMReader. La ressource est le pointeur de fichier qui identifie le fichier RPM avec lequel il travaille.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

La liste suivante des constantes est utilisée pour obtenir des informations en utilisant la fonction rpm_get_tag(). Ces constantes représentent le numéro de tag qui doit être récupéré d'une section d'en-tête d'un fichier RPM. Les descriptions sont données pour définir ce que les tags représentent.

RPMREADER_MINIMUM (entier)
La valeur minimale valide pour n'importe quel numéro de tag RPM.
RPMREADER_NAME (entier)
Le nom du paquetage RPM.
RPMREADER_VERSION (entier)
La version du paquetage RPM.
RPMREADER_RELEASE (entier)
La mise à jour du paquetage RPM.
RPMREADER_EPOCH (entier)
RPMREADER_SERIAL (entier)
RPMREADER_SUMMARY (entier)
Le récapitulatif du paquetage RPM.
RPMREADER_DESCRIPTION (entier)
La description complète du paquetage RPM.
RPMREADER_BUILDTIME (entier)
La date et l'heure à laquelle le paquetage RPM a été construit.
RPMREADER_BUILDHOST (entier)
Le nom de l'hôte sur lequel le paquetage a été construit.
RPMREADER_INSTALLTIME (entier)
RPMREADER_SIZE (entier)
La taille du paquetage RPM.
RPMREADER_DISTRIBUTION (entier)
RPMREADER_VENDOR (entier)
RPMREADER_GIF (entier)
RPMREADER_XPM (entier)
RPMREADER_LICENSE (entier)
RPMREADER_COPYRIGHT (entier)
RPMREADER_PACKAGER (entier)
RPMREADER_GROUP (entier)
RPMREADER_SOURCE (entier)
RPMREADER_PATCH (entier)
RPMREADER_URL (entier)
RPMREADER_OS (entier)
RPMREADER_ARCH (entier)
RPMREADER_PREIN (entier)
RPMREADER_POSTIN (entier)
RPMREADER_PREUN (entier)
RPMREADER_POSTUN (entier)
RPMREADER_OLDFILENAMES (entier)
Une liste de fichiers dans un paquetage RPM (format obsolète). La manière correcte est maintenant d'utiliser une combinaison de 3 tags (RPMREADER_BASENAMES, RPMREADER_DIRINDEXES, RPMREADER_DIRNAMES) dans ce que RPM appelle maintenant "CompressedFileNames". Ce tag est toujours utilisé dans les anciens fichiers RPM qui n'utilisent pas la méthode "CompressedFileNames" et il est présent pour maintenir une compatibilité.
RPMREADER_FILESIZES (entier)
RPMREADER_FILESTATES (entier)
RPMREADER_FILEMODES (entier)
RPMREADER_FILERDEVS (entier)
RPMREADER_FILEMTIMES (entier)
RPMREADER_FILEMD5S (entier)
RPMREADER_FILELINKTOS (entier)
RPMREADER_FILEFLAGS (entier)
RPMREADER_FILEUSERNAME (entier)
RPMREADER_FILEGROUPNAME (entier)
RPMREADER_ICON (entier)
RPMREADER_SOURCERPM (entier)
RPMREADER_FILEVERIFYFLAGS (entier)
RPMREADER_ARCHIVESIZE (entier)
RPMREADER_PROVIDENAME (entier)
RPMREADER_PROVIDES (entier)
RPMREADER_REQUIREFLAGS (entier)
RPMREADER_REQUIRENAME (entier)
RPMREADER_REQUIREVERSION (entier)
RPMREADER_CONFLICTFLAGS (entier)
RPMREADER_CONFLICTNAME (entier)
RPMREADER_CONFLICTVERSION (entier)
RPMREADER_EXCLUDEARCH (entier)
RPMREADER_EXCLUDEOS (entier)
RPMREADER_EXCLUSIVEARCH (entier)
RPMREADER_EXCLUSIVEOS (entier)
RPMREADER_RPMVERSION (entier)
RPMREADER_TRIGGERSCRIPTS (entier)
RPMREADER_TRIGGERNAME (entier)
RPMREADER_TRIGGERVERSION (entier)
RPMREADER_TRIGGERFLAGS (entier)
RPMREADER_TRIGGERINDEX (entier)
RPMREADER_VERIFYSCRIPT (entier)
RPMREADER_CHANGELOGTIME (entier)
Une liste des dates des entrées du changelog.
RPMREADER_CHANGELOGNAME (entier)
La liste des noms des entrées du changelog.
RPMREADER_CHANGELOGTEXT (entier)
La liste du texte des entrées du changelog.
RPMREADER_PREINPROG (entier)
RPMREADER_POSTINPROG (entier)
RPMREADER_PREUNPROG (entier)
RPMREADER_POSTUNPROG (entier)
RPMREADER_BUILDARCHS (entier)
RPMREADER_OBSOLETENAME (entier)
RPMREADER_OBSOLETES (entier)
RPMREADER_VERIFYSCRIPTPROG (entier)
RPMREADER_TRIGGERSCRIPTPROG (entier)
RPMREADER_COOKIE (entier)
RPMREADER_FILEDEVICES (entier)
RPMREADER_FILEINODES (entier)
RPMREADER_FILELANGS (entier)
RPMREADER_PREFIXES (entier)
RPMREADER_INSTPREFIXES (entier)
RPMREADER_PROVIDEFLAGS (entier)
RPMREADER_PROVIDEVERSION (entier)
RPMREADER_OBSOLETEFLAGS (entier)
RPMREADER_OBSOLETEVERSION (entier)
RPMREADER_DIRINDEXES (entier)
La liste des indices qui rapporte les noms des répertoires et des fichiers dans le paquetage RPM. Ce tag est utilisé en conjonction avec RPMREADER_BASENAMES et RPMREADER_DIRNAMES pour reconstruire les noms des fichiers dans le paquetage RPM enregistré avec la nouvelle méthode "CompressedFileNames" dans RPM.
RPMREADER_BASENAMES (entier)
Une liste des noms des fichiers dans le paquetage RPM sans l'information sur les chemins. Ce tag est utilisé en conjonction avec RPMREADER_BASENAMES et RPMREADER_DIRNAMES pour reconstruire les noms des fichiers dans le paquetage RPM enregistré avec la nouvelle méthode "CompressedFileNames" dans RPM.
RPMREADER_DIRNAMES (entier)
Une liste des noms des répertoires utilisés par les fichiers dans le paquetage RPM. Ce tag est utilisé en conjonction avec RPMREADER_BASENAMES et RPMREADER_DIRNAMES pour reconstruire les noms des fichiers dans le paquetage RPM enregistré avec la nouvelle méthode "CompressedFileNames" dans RPM.
RPMREADER_OPTFLAGS (entier)
RPMREADER_DISTURL (entier)
RPMREADER_PAYLOADFORMAT (entier)
RPMREADER_PAYLOADCOMPRESSOR (entier)
RPMREADER_PAYLOADFLAGS (entier)
RPMREADER_INSTALLCOLOR (entier)
RPMREADER_INSTALLTID (entier)
RPMREADER_REMOVETID (entier)
RPMREADER_RHNPLATFORM (entier)
RPMREADER_PLATFORM (entier)
RPMREADER_PATCHESNAME (entier)
RPMREADER_PATCHESFLAGS (entier)
RPMREADER_PATCHESVERSION (entier)
RPMREADER_CACHECTIME (entier)
RPMREADER_CACHEPKGPATH (entier)
RPMREADER_CACHEPKGSIZE (entier)
RPMREADER_CACHEPKGMTIME (entier)
RPMREADER_FILECOLORS (entier)
RPMREADER_FILECLASS (entier)
RPMREADER_CLASSDICT (entier)
RPMREADER_FILEDEPENDSX (entier)
RPMREADER_FILEDEPENDSN (entier)
RPMREADER_DEPENDSDICT (entier)
RPMREADER_SOURCEPKGID (entier)
RPMREADER_FILECONTEXTS (entier)
RPMREADER_FSCONTEXTS (entier)
RPMREADER_RECONTEXTS (entier)
RPMREADER_POLICIES (entier)
RPMREADER_MAXIMUM (entier)
La valeur maximale valide pour n'importe quel numéro de tag RPM.


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • RPM Reader
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Cet exemple ouvrira un fichier RPM et lira le nom, la version et la date de mise à jour du fichier RPM, affichera les résultats et fermera le fichier RPM.

Exemple #1 Exemple avec RPMReader

<?php

$filename = "/chemin/vers/file.rpm";

// ouverture du fichier
$rpmr = rpm_open($filename);

// récupération du tag "Name"
$name = rpm_get_tag($rpmr, RPMREADER_NAME);

// récupération du tag "Version"
$ver = rpm_get_tag($rpmr, RPMREADER_VERSION);

// récupération du tag "Release"
$rel = rpm_get_tag($rpmr, RPMREADER_RELEASE);

echo "$name-$ver-$rel<br>\n";

// fermeture du fichier
rpm_close($rpmr);

?>


Fonctions RPM Reader

Sommaire

  • rpm_close — Ferme un fichier RPM
  • rpm_get_tag — Récupération d'un tag de l'en-tête d'un fichier RPM
  • rpm_is_valid — Teste la validité du nom du fichier d'un fichier RPM
  • rpm_open — Ouvre un fichier RPM
  • rpm_version — Retourne une chaîne de caractères représentant la version courante de l'extension rpmreader


Ferme un fichier RPM

  • « Fonctions RPM Reader
  • rpm_get_tag »
  • PHP Manual
  • Fonctions RPM Reader
  • Ferme un fichier RPM

rpm_close

(PECL rpmreader >= 0.1.0)

rpm_close — Ferme un fichier RPM

Description

bool rpm_close ( resource $rpmr )

rpm_close() fermera le pointeur de fichier RPM.

Liste de paramètres

rpmr

Une ressource de pointeur de fichier ouverte par rpm_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec rpm_close()

<?php

$file = "/chemin/vers/fichier.rpm";
$rpmr = rpm_open($file);

rpm_close($rpmr);

?>

Voir aussi

  • rpm_open() - Ouvre un fichier RPM


Récupération d'un tag de l'en-tête d'un fichier RPM

  • « rpm_close
  • rpm_is_valid »
  • PHP Manual
  • Fonctions RPM Reader
  • Récupération d'un tag de l'en-tête d'un fichier RPM

rpm_get_tag

(PECL rpmreader >= 0.1.0)

rpm_get_tag — Récupération d'un tag de l'en-tête d'un fichier RPM

Description

mixed rpm_get_tag ( resource $rpmr , int $tagnum )

rpm_get_tag() récupérera un tag donné de l'en-tête du fichier RPM et le retournera.

Liste de paramètres

rpmr

Une ressource de pointeur de fichier correctement ouverte par rpm_open().

tagnum

Le numéro du tag à récupérer de l'en-tête RPM. La valeur peut être spécifiée en utilisant la liste des constantes définies par ce module.

Valeurs de retour

La valeur de retour peut être de type varié dépendamment du paramètre tagnum spécifié à la fonction.

Exemples

Exemple #1 Exemple avec rpm_get_tag()

<?php

$file = "/chemin/vers/fichier.rpm";
$rpmr = rpm_open($file);

$name = rpm_get_tag($rpmr, RPMREADER_NAME);
echo "$name<br />\n";

rpm_close($rpmr);

?>

Voir aussi

  • rpm_open() - Ouvre un fichier RPM
  • rpm_close() - Ferme un fichier RPM


Teste la validité du nom du fichier d'un fichier RPM

  • « rpm_get_tag
  • rpm_open »
  • PHP Manual
  • Fonctions RPM Reader
  • Teste la validité du nom du fichier d'un fichier RPM

rpm_is_valid

(PECL rpmreader >= 0.1.0)

rpm_is_valid — Teste la validité du nom du fichier d'un fichier RPM

Description

bool rpm_is_valid ( string $filename )

rpm_is_valid() testera la validité d'un fichier RPM pour que cela soit un fichier RPM. Ceci n'est pas la même chose que rpm_open() puisqu'elle vérifie seulement la validité du fichier mais ne retourne pas de pointeur de fichier pour être utiliser par d'autres fonctions.

Liste de paramètres

filename

Le nom de fichier du fichier RPM que vous voulez vérifier la validité.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec rpm_is_valid()

<?php

$file = "/chemin/vers/fichier.rpm";

if (rpm_is_valid($file)) {
    echo "Le fichier est reconnu en tant que fichier RPM.<br />\n";
}
else {
    echo "Le fichier n'est pas reconnu en tant que fichier RPM.<br />\n";
}

?>


Ouvre un fichier RPM

  • « rpm_is_valid
  • rpm_version »
  • PHP Manual
  • Fonctions RPM Reader
  • Ouvre un fichier RPM

rpm_open

(PECL rpmreader >= 0.1.0)

rpm_open — Ouvre un fichier RPM

Description

resource rpm_open ( string $filename )

rpm_open() ouvrira un fichier RPM et déterminera si le fichier est un fichier RPM valide.

Liste de paramètres

filename

Le nom du fichier que vous souhaitez ouvrir en tant que fichier RPM.

Valeurs de retour

Si la fonction réussit, alors rpm_open() retournera une ressource de pointeur de fichier du nouveau fichier ouvert. En cas d'erreur, la fonction retournera FALSE.

Exemples

Exemple #1 Exemple avec rpm_open()

<?php

$file = "/chemin/vers/fichier.rpm";
$rpmr = rpm_open($file);

rpm_close($rpmr);

?>

Voir aussi

  • rpm_close() - Ferme un fichier RPM


Retourne une chaîne de caractères représentant la version courante de l'extension rpmreader

  • « rpm_open
  • Extensions sur le contrôle des processus »
  • PHP Manual
  • Fonctions RPM Reader
  • Retourne une chaîne de caractères représentant la version courante de l'extension rpmreader

rpm_version

(PECL rpmreader >= 0.3.0)

rpm_version — Retourne une chaîne de caractères représentant la version courante de l'extension rpmreader

Description

string rpm_version ( void )

rpm_version() retournera la version courante de l'extension rpmreader.

Valeurs de retour

rpm_version() retournera une chaîne de caractères représentant la version de rpmreader actuellement chargée dans PHP.

Exemples

Exemple #1 Exemple avec rpm_version()

<?php

$rpmr_ver = rpm_version();

echo "$rpmr_ver<br />\n";

?>


Extensions sur le contrôle des processus

  • Eio
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Eio
  • Ev
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Watchers
    • Les fonctions de rappel d'un Watcher
    • Modes d'opération périodique d'un watcher
    • Ev — La classe Ev
    • EvCheck — La classe EvCheck
    • EvChild — La classe EvChild
    • EvEmbed — La classe EvEmbed
    • EvFork — La classe EvFork
    • EvIdle — La classe EvIdle
    • EvIo — La classe EvIo
    • EvLoop — La classe EvLoop
    • EvPeriodic — La classe EvPeriodic
    • EvPrepare — La classe EvPrepare
    • EvSignal — La classe EvSignal
    • EvStat — La classe EvStat
    • EvTimer — La classe EvTimer
    • EvWatcher — La classe EvWatcher
  • Expect
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Expect
  • Libevent
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Libevent
  • PCNTL — Contrôle du processus
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions PCNTL
  • POSIX
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions POSIX
  • Exécution de programme — Système d'exécution de programme
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions sur l'exécution de programmes externes
  • pthreads
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Threaded — La classe Threaded
    • Thread — La classe Thread
    • Worker — La classe Worker
    • Collectable — La classe Collectable
    • Modificateurs — Modificateurs de méthodes
    • Pool — La classe Pool
    • Mutex — La classe Mutex
    • Cond — La classe Cond
  • Semaphore — Sémaphore
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Sémaphore
  • Mémoire partagée
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions sur la mémoire partagée
  • Sync
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • SyncMutex — La classe SyncMutex
    • SyncSemaphore — La classe SyncSemaphore
    • SyncEvent — La classe SyncEvent
    • SyncReaderWriter — La classe SyncReaderWriter


Eio

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions Eio
    • eio_busy — Augmente artificiellement la charge. Utile dans le cadre de tests
    • eio_cancel — Annule une requête
    • eio_chmod — Modifie les permissions d'un fichier/dossier
    • eio_chown — Modifie les permissions d'un fichier/dossier
    • eio_close — Ferme un fichier
    • eio_custom — Exécute une demande personnalisée comme l'appel à une des fonctions eio_*
    • eio_dup2 — Duplique un descripteur de fichier
    • eio_event_loop — Boucle libeio tant que les requêtes s'exécutent
    • eio_fallocate — Autorise l'appelant à manipuler directement l'espace disque alloué pour un fichier
    • eio_fchmod — Modifie les permissions sur un fichier
    • eio_fchown — Modifie le propriétaire du fichier
    • eio_fdatasync — Synchronise le statut interne d'un fichier avec le périphérique de stockage
    • eio_fstat — Récupère le statut d'un fichier
    • eio_fstatvfs — Récupère des statistiques sur le système de fichiers
    • eio_fsync — Synchronise le statut interne d'un fichier avec le périphérique de stockage
    • eio_ftruncate — Tronque un fichier
    • eio_futime — Modifie l'heure du dernier accès et de la dernière modification d'un fichier
    • eio_get_event_stream — Récupère le flux représentant une variable utilisée dans les communications internes avec libeio
    • eio_get_last_error — Retourne une chaîne décrivant la dernière erreur associée avec la ressource demandée
    • eio_grp_add — Ajoute une requête au groupe de requêtes
    • eio_grp_cancel — Annule un groupe de requêtes
    • eio_grp_limit — Définit la limite d'un groupe
    • eio_grp — Crée un groupe de requêtes
    • eio_init — (Re-)initialise Eio
    • eio_link — Crée un lien fort sur un fichier
    • eio_lstat — Récupère le statut d'un fichier
    • eio_mkdir — Crée un dossier
    • eio_mknod — Crée un fichier spécial ou ordinaire
    • eio_nop — Ne fait rien, mise à part le fait de parcourir l'ensemble du cycle des requêtes
    • eio_npending — Retourne le nombre de requêtes terminées
    • eio_nready — Retourne le nombre de requêtes pas encore gérées
    • eio_nreqs — Retourne le nombre de requêtes restant à exécuter
    • eio_nthreads — Retourne le nombre de threads actuellement utilisés
    • eio_open — Ouvre un fichier
    • eio_poll — Vérifie s'il reste des requêtes en cours d'exécution
    • eio_read — Lit un descripteur de fichier à une position donnée
    • eio_readahead — Effectue un readahead sur le fichier dans le cache d'une page
    • eio_readdir — Lit le contenu d'un dossier
    • eio_readlink — Lit la valeur d'un lien symbolique
    • eio_realpath — Récupère le nom du chemin absolu canonisé
    • eio_rename — Modifie le nom ou le chemin d'un fichier
    • eio_rmdir — Supprime un dossier
    • eio_seek — Repositionne le curseur d'un fichier ouvert
    • eio_sendfile — Transfère des données entre des descripteurs de fichiers
    • eio_set_max_idle — Définit le nombre maximal de threads inactifs
    • eio_set_max_parallel — Définit le nombre maximal de threads en parallèle
    • eio_set_max_poll_reqs — Définit le nombre maximal de requêtes à exécuter dans une file d'attente
    • eio_set_max_poll_time — Définit la durée maximale de la file d'attente
    • eio_set_min_parallel — Définit le nombre minimum de threads parallèles
    • eio_stat — Récupère le statut d'un fichier
    • eio_statvfs — Récupère les statistiques du système de fichiers
    • eio_symlink — Crée un lien symbolique
    • eio_sync_file_range — Synchronise un segment de fichier avec le disque
    • eio_sync — Valide le cache du buffer sur le disque
    • eio_syncfs — Appel la fonction système Linux syncfs, si disponible
    • eio_truncate — Tronque un fichier
    • eio_unlink — Supprime un nom et éventuellement, le fichier qui s'y réfère
    • eio_utime — Modifie l'heure du dernier accès et de la dernière modification d'un fichier
    • eio_write — Ecrit dans un fichier


Introduction

Cette extension fournit un système POSIX I/O asynchrone via la bibliothèque C » libeio écrit par Marc Lehmann.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.

Avertissement

Il est important de noter que chaque demande est exécuté dans un thread, et l'ordre d'exécution des demandes en attente n'est pas assuré. Pour l'instant, le code suivant n'est pas correct.

Exemple #1 Demandes incorrectes

<?php
// Demande la création d'un lien symbolique $filename vers $link
eio_symlink($filename, $link);

// Demande de déplacement de $filename vers $new_filename
eio_rename($filename, $new_filename);

// Exécution des demandes
eio_event_loop();
?>
Dans l'exemple ci-dessus, la fonction eio_rename() peut se terminer avant la fonction eio_symlink(). Pour résoudre ce problème, vous pouvez appeler la fonction eio_rename() dans la fonction de rappel de la fonction eio_symlink():

Exemple #2 Exécution d'une demande dans la fonction de rappel d'une autre

<?php
function my_symlink_done($filename, $result) {
 // Demande de déplacement de $filename vers $new_filename
 eio_rename($filename, "/path/to/new-name");

 // Exécution des demandes
 eio_event_loop();
}

// Demande de création d'un lien symbolique $filename vers $link
eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_done", $filename);

// Exécution des demandes
eio_event_loop();
?>
Alternativement, vous pouvez créer un groupe de demandes :

Exemple #3 Exécution d'une demande depuis la fonction de rappel d'une autre

<?php
/* Sera appelé lorsque le groupe de demandes aura terminé */
function my_grp_done($data, $result) {
 // ...
}

function my_symlink_done($filename, $result) {
 // Crée une demande eio_rename et l'ajoute au groupe
 $req = eio_rename($filename, "/path/to/new-name");
 eio_grp_add($grp, $req);
 // Vous pouvez vouloir d'autres actions...
}

// Création d'un groupe de demandes
$grp = eio_grp("my_grp_done", "my_grp_data");

// Crée une demande eio_symlink et l'ajoute au groupe
// Passage de $filename à la fonction de rappel
$req = eio_symlink($filename, $link,
  EIO_PRI_DEFAULT, "my_symlink_done", $filename);
eio_grp_add($grp, $req);

// Exécution des demandes
eio_event_loop();
?>
Un groupe est une demande spéciale qui peut cumuler un jeu de demandes eio. Ce mécanisme peut être utile pour créer une demande complexe qui ouvre, lit et ferme un fichier.

Depuis la version 0.3.0 alpha, une variable utilisée dans les communications internes avec libeio peut être récupérée avec la fonction eio_get_event_stream(). La variable peut être utilisé pour lier une boucle d'événements avec d'autres extensions. Vous pouvez organiser une boucle d'événements où libeio et libevent fonctionnent ensemble :

Exemple #4 Utilisation de eio et libevent

<?php
function my_eio_poll($fd, $events, $arg) {
    /* Quelques régulations libevent peuvent venir ici .. */
    if (eio_nreqs()) {
        eio_poll();
    }
    /* .. et ici */
}

function my_res_cb($d, $r) {
    var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

// Ce flux est utilisé pour se lier avec libevent
$fd = eio_get_event_stream();

eio_nop(EIO_PRI_DEFAULT, "my_res_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_res_cb", "mkdir data");
/* d'autres appels eio_* ici ... */

// Définit les drapeaux des événements
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// Définit l'événement de base
event_base_set($event, $base);

// Active l'événement
event_add($event);

// Démarre la boucle des événements
event_base_loop($base);

/* La même chose est disponible via l'interface libevent bufferisée */
?>


Pré-requis

Cette extension contient la bibliothèque » libeio. Aussi, vous n'avez pas à l'installer séparément.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/eio.

Pour des informations complémentaires sur l'installation manuelle, référez-vous au fichier INSTALL inclu dans le paquet.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Il y a deux types de ressources dans cette extension : les demandes, et les groupes de demandes.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes de priorités des demandes :

EIO_PRI_MIN (entier)
Demande un priorité minimal
EIO_PRI_DEFAULT (entier)
Demande un priorité par défaut
EIO_PRI_MAX (entier)
Demande un priorité maximal

Argument whence de la fonction eio_seek() :

EIO_SEEK_SET (entier)
La position est définie pour spécifier le nombre d'octets (offset).
EIO_SEEK_CUR (entier)
La position est définie à sa position courante, à laquelle on ajoute offset octets.
EIO_SEEK_END (entier)
La position est définie à la taille du fichier, à laquelle on ajoute offset octets.

Drapeaux utilisés avec la fonction eio_readdir():

EIO_READDIR_DENTS (entier)
Drapeau de la fonction eio_readdir(). Si spécifié, l'argument résultant de la fonction de rappel devient un tableau contenant les clés suivantes : 'names' - tableau de noms de dossier 'dents' - tableau de tableaux struct eio_dirent contenant les clés suivantes : 'name' - le nom du dossier ; 'type' - une constante EIO_DT_* ; 'inode' - le nombre d'inodes, si disponible, sinon, non spécifié ;
EIO_READDIR_DIRS_FIRST (entier)
Lorsque ce drapeau est spécifié, les noms seront retournés dans un ordre où les dossiers arrivent en premier, dans un ordre optimal suivant les statistiques.
EIO_READDIR_STAT_ORDER (entier)
Lorsque ce drapeau est spécifié, alors les noms seront retournés dans un ordre utilisant uniquement stat. Lorsque vous avez l'intention d'utiliser la fonction stat() sur tous les fichiers du dossier fourni, l'ordre retourné grâce à ce drapeau sera bien plus rapide.
EIO_READDIR_FOUND_UNKNOWN (entier)
EIO_DT_UNKNOWN (entier)
Noeud de type inconnu (assez commun). Un appel à la fonction stat() est nécessaire.
EIO_DT_FIFO (entier)
Noeud de type FIFO
EIO_DT_CHR (entier)
Type de noeud
EIO_DT_MPC (entier)
Noeud de type périphérique à caractères multiplexés (v7+coherent)
EIO_DT_DIR (entier)
Noeud de type dossier
EIO_DT_NAM (entier)
Noeud de type fichier nommé Xenix
EIO_DT_BLK (entier)
Type de noeud
EIO_DT_MPB (entier)
Périphérique de bloc multiplexé (v7+coherent)
EIO_DT_REG (entier)
Type de noeud
EIO_DT_NWK (entier)
EIO_DT_CMP (entier)
Noeud de type réseau HP-UX
EIO_DT_LNK (entier)
Noeud de type lien
EIO_DT_SOCK (entier)
Noeud de type socket
EIO_DT_DOOR (entier)
Noeud de type Solaris door
EIO_DT_WHT (entier)
Noued de type
EIO_DT_MAX (entier)
Valeur maximale du type de noeud

Modes d'accès utilisés par l'argument flags de la fonction eio_open() :

EIO_O_RDONLY (entier)
EIO_O_WRONLY (entier)
EIO_O_RDWR (entier)
EIO_O_NONBLOCK (entier)
EIO_O_APPEND (entier)
EIO_O_CREAT (entier)
EIO_O_TRUNC (entier)
EIO_O_EXCL (entier)
EIO_O_FSYNC (entier)

Drapeaux pour l'argument mode de la fonction eio_open() :

EIO_S_IRUSR (entier)
EIO_S_IWUSR (entier)
EIO_S_IXUSR (entier)
EIO_S_IRGRP (entier)
EIO_S_IWGRP (entier)
EIO_S_IXGRP (entier)
EIO_S_IROTH (entier)
EIO_S_IWOTH (entier)
EIO_S_IXOTH (entier)
EIO_S_IFREG (entier)
EIO_S_IFCHR (entier)
EIO_S_IFBLK (entier)
EIO_S_IFIFO (entier)
EIO_S_IFSOCK (entier)

Drapeaux pour la fonction eio_sync_file_range() :

EIO_SYNC_FILE_RANGE_WAIT_BEFORE (entier)
EIO_SYNC_FILE_RANGE_WRITE (entier)
EIO_SYNC_FILE_RANGE_WAIT_AFTER (entier)

Drapeaux pour la fonction eio_fallocate() :

EIO_FALLOC_FL_KEEP_SIZE (entier)

Note:

Les constantes EIO_S_I* ont la même signification que leurs équivalents POSIX S_I*.

Note:

Les constantes EIO_SYNC_FILE_* ont la même signification que leurs équivalents SYNC_FILE_**.

Note:

Les constantes EIO_O_* ont la même signification que leurs équivalents O_*.


Exemples

Exemple #1 Annulation d'une demande

<?php
 /* Sera appelé lorsque la fonction eio_nop() aura terminé */
 function my_nop_cb($data, $result) {
  echo "my_nop ", $data, "\n";
 }

// L'appel eio_nop() sera annulé
$req = eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "1");
var_dump($req);
eio_cancel($req);

// Cette fois, eio_nop() sera exécuté
eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "2");

// Exécution des demandes
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

resource(4) of type (EIO Request Descriptor)
my_nop 2

Exemple #2 Appel de la fonction eio_chmod()

<?php
$temp_filename = dirname(__FILE__) ."/eio-temp-file.tmp";
touch($temp_filename);

/* Sera appelé lorsque la fonction eio_chmod() aura terminé */
function my_chmod_callback($data, $result) {
    global $temp_filename;

    if ($result == 0 && !is_readable($temp_filename) && is_writable($temp_filename)) {
        echo "eio_chmod_ok";
    }

    @unlink($temp_filename);
}

eio_chmod($temp_filename, 0200, EIO_PRI_DEFAULT, "my_chmod_callback");
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

eio_chmod_ok

Exemple #3 Fabrication d'une demande personnalisée

<?php
/* Fonction de rappel pour la fonction de rappel personnalisée */
function my_custom_callback($data, $result) {
    var_dump($data);
    var_dump(count($result));
    var_dump($result['data_modified']);
    var_dump($result['result']);
}

/* La demande personnalisée */
function my_custom($data) {
    var_dump($data);

    $result  = array(
        'result'        => 1001,
        'data_modified' => "mes données personnalisées",
    );

    return $result;
}

$data = "my_custom_data";
$req = eio_custom("my_custom", EIO_PRI_DEFAULT, "my_custom_callback", $data);
var_dump($req);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

resource(4) of type (EIO Request Descriptor)
string(14) "my_custom_data"
string(14) "my_custom_data"
int(2)
string(26) "mes données personnalisées"
int(1001)

Exemple #4 Création d'un groupe de demandes

<?php
/*
 * Crée un groupe de demandes permettant d'ouvrir, de lire et de fermer un fichier
 */

$temp_filename = dirname(__FILE__) ."/eio-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "some data");
fclose($fp);

/* Sera appelé lorsque le groupe de demandes aura terminé */
function my_grp_done($data, $result) {
 global $temp_filename;
 var_dump($result == 0);
 @unlink($temp_filename);
}

/* Sera appelé lorsque la fonction eio_open() aura terminé */
function my_grp_file_opened_callback($data, $result) {
 global $my_file_fd, $grp;

 $my_file_fd = $result;

 var_dump($result > 0);

 // Crée une demande eio_read() et l'ajoute au groupe
 $req = eio_read($my_file_fd, 4, 0, EIO_PRI_DEFAULT, "my_grp_file_read_callback");
 eio_grp_add($grp, $req);
}

/* Sera appelé lorsque la fonction eio_read() aura terminé */
function my_grp_file_read_callback($data, $result) {
 global $my_file_fd, $grp;

 var_dump($result);

 // Crée une demande eio_close() et l'ajoute au groupe
 $req = eio_close($my_file_fd);
 eio_grp_add($grp, $req);
}

$grp = eio_grp("my_grp_done", "my_grp_data");

// Crée une demande eio_open() et l'ajoute au groupe
$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL,
  EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);
eio_grp_add($grp, $req);
var_dump($grp);

eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

resource(6) of type (EIO Group Descriptor)
bool(true)
string(4) "some"
bool(true)

Exemple #5 Utilisation de eio avec libevent

<?php
function my_eio_poll($fd, $events, $arg) {
    /* Quelques régulations de libevent peuvent venir ici .. */
    if (eio_nreqs()) {
        eio_poll();
    }
    /* .. et ici */
}

function my_nop_cb($d, $r) {
    var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

$fd = eio_get_event_stream();
var_dump($fd);

eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_nop_cb", "nop data");
/* d'autres appels eio_* ici ... */

// Définit les drapeaux de l'événement
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// Définit l'événement de base
event_base_set($event, $base);

// Active l'événement
event_add($event);

// Démarre la boucle d'événements
event_base_loop($base);

/* La mêmme chose est disponible viia l'interface libevent bufferisé */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)
int(0)
string(8) "nop data"
int(0)
string(10) "mkdir data"


Fonctions Eio

Sommaire

  • eio_busy — Augmente artificiellement la charge. Utile dans le cadre de tests
  • eio_cancel — Annule une requête
  • eio_chmod — Modifie les permissions d'un fichier/dossier
  • eio_chown — Modifie les permissions d'un fichier/dossier
  • eio_close — Ferme un fichier
  • eio_custom — Exécute une demande personnalisée comme l'appel à une des fonctions eio_*
  • eio_dup2 — Duplique un descripteur de fichier
  • eio_event_loop — Boucle libeio tant que les requêtes s'exécutent
  • eio_fallocate — Autorise l'appelant à manipuler directement l'espace disque alloué pour un fichier
  • eio_fchmod — Modifie les permissions sur un fichier
  • eio_fchown — Modifie le propriétaire du fichier
  • eio_fdatasync — Synchronise le statut interne d'un fichier avec le périphérique de stockage
  • eio_fstat — Récupère le statut d'un fichier
  • eio_fstatvfs — Récupère des statistiques sur le système de fichiers
  • eio_fsync — Synchronise le statut interne d'un fichier avec le périphérique de stockage
  • eio_ftruncate — Tronque un fichier
  • eio_futime — Modifie l'heure du dernier accès et de la dernière modification d'un fichier
  • eio_get_event_stream — Récupère le flux représentant une variable utilisée dans les communications internes avec libeio
  • eio_get_last_error — Retourne une chaîne décrivant la dernière erreur associée avec la ressource demandée
  • eio_grp_add — Ajoute une requête au groupe de requêtes
  • eio_grp_cancel — Annule un groupe de requêtes
  • eio_grp_limit — Définit la limite d'un groupe
  • eio_grp — Crée un groupe de requêtes
  • eio_init — (Re-)initialise Eio
  • eio_link — Crée un lien fort sur un fichier
  • eio_lstat — Récupère le statut d'un fichier
  • eio_mkdir — Crée un dossier
  • eio_mknod — Crée un fichier spécial ou ordinaire
  • eio_nop — Ne fait rien, mise à part le fait de parcourir l'ensemble du cycle des requêtes
  • eio_npending — Retourne le nombre de requêtes terminées
  • eio_nready — Retourne le nombre de requêtes pas encore gérées
  • eio_nreqs — Retourne le nombre de requêtes restant à exécuter
  • eio_nthreads — Retourne le nombre de threads actuellement utilisés
  • eio_open — Ouvre un fichier
  • eio_poll — Vérifie s'il reste des requêtes en cours d'exécution
  • eio_read — Lit un descripteur de fichier à une position donnée
  • eio_readahead — Effectue un readahead sur le fichier dans le cache d'une page
  • eio_readdir — Lit le contenu d'un dossier
  • eio_readlink — Lit la valeur d'un lien symbolique
  • eio_realpath — Récupère le nom du chemin absolu canonisé
  • eio_rename — Modifie le nom ou le chemin d'un fichier
  • eio_rmdir — Supprime un dossier
  • eio_seek — Repositionne le curseur d'un fichier ouvert
  • eio_sendfile — Transfère des données entre des descripteurs de fichiers
  • eio_set_max_idle — Définit le nombre maximal de threads inactifs
  • eio_set_max_parallel — Définit le nombre maximal de threads en parallèle
  • eio_set_max_poll_reqs — Définit le nombre maximal de requêtes à exécuter dans une file d'attente
  • eio_set_max_poll_time — Définit la durée maximale de la file d'attente
  • eio_set_min_parallel — Définit le nombre minimum de threads parallèles
  • eio_stat — Récupère le statut d'un fichier
  • eio_statvfs — Récupère les statistiques du système de fichiers
  • eio_symlink — Crée un lien symbolique
  • eio_sync_file_range — Synchronise un segment de fichier avec le disque
  • eio_sync — Valide le cache du buffer sur le disque
  • eio_syncfs — Appel la fonction système Linux syncfs, si disponible
  • eio_truncate — Tronque un fichier
  • eio_unlink — Supprime un nom et éventuellement, le fichier qui s'y réfère
  • eio_utime — Modifie l'heure du dernier accès et de la dernière modification d'un fichier
  • eio_write — Ecrit dans un fichier


Augmente artificiellement la charge. Utile dans le cadre de tests

  • « Fonctions Eio
  • eio_cancel »
  • PHP Manual
  • Fonctions Eio
  • Augmente artificiellement la charge. Utile dans le cadre de tests

eio_busy

(PECL eio >= 0.0.1dev)

eio_busy — Augmente artificiellement la charge. Utile dans le cadre de tests

Description

resource eio_busy ( int $delay [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

La fonction eio_busy() augmente artificiellement la charge en prenant un nombre delay de secondes à s'exécuter. Peut être utile pour le débogage, ou les tests.

Liste de paramètres

delay

Le délai, en secondes.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

Cette fonction de rappel est appelée lorsque toutes les requêtes du groupe sont terminées.

data

Variable arbitraire passée à la fonction de rappel callback.

Valeurs de retour

La fonction eio_busy() retourne une ressource de requête en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • eio_nop


Annule une requête

  • « eio_busy
  • eio_chmod »
  • PHP Manual
  • Fonctions Eio
  • Annule une requête

eio_cancel

(PECL eio >= 0.0.1dev)

eio_cancel — Annule une requête

Description

void eio_cancel ( resource $req )

La fonction eio_cancel() annule une requête spécifiée par req.

Liste de paramètres

req

La ressource de la requête.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variable arbitraire passée à la fonction de rappel callback.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec eio_cancel()

<?php
 /* Appelé lorsque eio_nop() est terminé */
 function my_nop_cb($data, $result) {
  echo "my_nop ", $data, "\n";
 }

// Cet appel à la fonction eio_nop() sera annulé
$req = eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "1");
var_dump($req);
eio_cancel($req);

// Cette fois, la fonction eio_nop() sera exécuté
eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "2");

// Traitement des requêtes
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

resource(4) of type (EIO Request Descriptor)
my_nop 2

Voir aussi

  • eio_grp_cancel


Modifie les permissions d'un fichier/dossier

  • « eio_cancel
  • eio_chown »
  • PHP Manual
  • Fonctions Eio
  • Modifie les permissions d'un fichier/dossier

eio_chmod

(PECL eio >= 0.0.1dev)

eio_chmod — Modifie les permissions d'un fichier/dossier

Description

resource eio_chmod ( string $path , int $mode [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

La fonction eio_chmod() modifie les permissions d'un fichier ou d'un dossier. Les nouvelles permissions sont spécifiées par le paramètre mode.

Liste de paramètres

path

Chemin vers le fichier ou le dossier cible.

Avertissement

Éviter les chemin relatif !

mode

Les nouvelles permissions, i.e. 0644.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variable arbitraire à passer à la fonction de rappel callback.

Valeurs de retour

La fonction eio_chmod() retourne la ressource de requête en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • eio_chown


Modifie les permissions d'un fichier/dossier

  • « eio_chmod
  • eio_close »
  • PHP Manual
  • Fonctions Eio
  • Modifie les permissions d'un fichier/dossier

eio_chown

(PECL eio >= 0.0.1dev)

eio_chown — Modifie les permissions d'un fichier/dossier

Description

resource eio_chown ( string $path , int $uid [, int $gid = -1 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]] )

Modifie les permissions d'un fichier ou d'un dossier.

Liste de paramètres

path

Chemin vers le fichier, ou le dossier.

Avertissement

Éviter les chemin relatif !

uid

ID de l'utilisateur. Il sera ignoré si défini à -1.

gid

ID du groupe. Il sera ignoré si défini à -1.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variable arbitraire à passer à la fonction de rappel callback.

Valeurs de retour

eio_chown() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • eio_chmod


Ferme un fichier

  • « eio_chown
  • eio_custom »
  • PHP Manual
  • Fonctions Eio
  • Ferme un fichier

eio_close

(PECL eio >= 0.0.1dev)

eio_close — Ferme un fichier

Description

resource eio_close ( mixed $fd [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_close() ferme un fichier spécifié par le paramètre fd.

Liste de paramètres

fd

Un flux, une ressource de socket, ou un drescripteur du fichier.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variable arbitraire à passer à la fonction de rappel callback.

Valeurs de retour

eio_close() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • eio_open


Exécute une demande personnalisée comme l'appel à une des fonctions eio_*

  • « eio_close
  • eio_dup2 »
  • PHP Manual
  • Fonctions Eio
  • Exécute une demande personnalisée comme l'appel à une des fonctions eio_*

eio_custom

(PECL eio >= 0.0.1dev)

eio_custom — Exécute une demande personnalisée comme l'appel à une des fonctions eio_*

Description

resource eio_custom ( callable $execute , int $pri , callable $callback [, mixed $data = NULL ] )

eio_custom() exécute une fonction personnalisée spécifiée par le paramètre execute et la traitant juste comme les autres fonctions eio_*.

Liste de paramètres

execute

Spécifie la fonction demandée, qui doit correspondre au prototype suivant :

      mixed execute(mixed data);
callback est la fonction de rappel qui doit correspondre au prototype suivant :
      void callback(mixed data, mixed result);
data représente les données passées à execute via l'argument data sans modification de la valeur result retourné par execute

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variable arbitraire à passer à la fonction de rappel callback.

Valeurs de retour

eio_custom() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec eio_custom()

<?php
/* Fonction de rappel pour la fonction de rappel personnalisée */
function my_custom_callback($data, $result) {
    var_dump($data);
    var_dump(count($result));
    var_dump($result['data_modified']);
    var_dump($result['result']);
}

/* La demande personnalisée */
function my_custom($data) {
    var_dump($data);

    $result  = array(
        'result'        => 1001,
        'data_modified' => "mes données personnalisées",
    );

    return $result;
}

$data = "mes données personnalisées";
$req = eio_custom("my_custom", EIO_PRI_DEFAULT, "my_custom_callback", $data);
var_dump($req);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

resource(4) of type (EIO Request Descriptor)
string(14) "mes données personnalisées"
string(14) "mes données personnalisées"
int(2)
string(14) "mes données personnalisées"
int(1001)


Duplique un descripteur de fichier

  • « eio_custom
  • eio_event_loop »
  • PHP Manual
  • Fonctions Eio
  • Duplique un descripteur de fichier

eio_dup2

(PECL eio >= 0.0.1dev)

eio_dup2 — Duplique un descripteur de fichier

Description

resource eio_dup2 ( mixed $fd , mixed $fd2 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_dup2() duplique un descripteur de fichier.

Liste de paramètres

fd

Flux source, ressource de socket, ou descripteur de fichier numérique

fd2

Flux cible, ressource de socket, ou descripteur de fichier numérique

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variable arbitraire à passer à la fonction de rappel callback.

Valeurs de retour

eio_dup2() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.


Boucle libeio tant que les requêtes s'exécutent

  • « eio_dup2
  • eio_fallocate »
  • PHP Manual
  • Fonctions Eio
  • Boucle libeio tant que les requêtes s'exécutent

eio_event_loop

(PECL eio >= 0.0.1dev)

eio_event_loop — Boucle libeio tant que les requêtes s'exécutent

Description

bool eio_event_loop ( void )

eio_event_loop() boucle libeio tant que les requêtes s'exécutent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

eio_event_loop() retourne TRUE en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec eio_event_loop()

<?php
$temp_filename = "eio-temp-file.tmp";
touch($temp_filename);

/* Appelé lorsque eio_chmod() aura terminé */
function my_chmod_callback($data, $result) {
    global $temp_filename;

    if ($result == 0 && !is_readable($temp_filename) && is_writable($temp_filename)) {
        echo "eio_chmod_ok";
    }

    @unlink($temp_filename);
}

eio_chmod($temp_filename, 0200, EIO_PRI_DEFAULT, "my_chmod_callback");
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

eio_chmod_ok

Voir aussi

  • eio_poll


Autorise l'appelant à manipuler directement l'espace disque alloué pour un fichier

  • « eio_event_loop
  • eio_fchmod »
  • PHP Manual
  • Fonctions Eio
  • Autorise l'appelant à manipuler directement l'espace disque alloué pour un fichier

eio_fallocate

(PECL eio >= 0.0.1dev)

eio_fallocate — Autorise l'appelant à manipuler directement l'espace disque alloué pour un fichier

Description

resource eio_fallocate ( mixed $fd , int $mode , int $offset , int $length [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_fallocate() autorise l'appelant à manipuler directement l'espace disque alloué pour le fichier spécifié par le descripteur de fichier fd pour l'intervalle d'octets commençant à offset et se prolongeant sur length octets.

Note: Le fichier doit être ouvert en écriture

La constante EIO_O_CREAT doit être un OU logique avec EIO_O_WRONLY, ou EIO_O_RDWR.

Liste de paramètres

fd

Un flux, une ressource de socket, ou un descripteur de fichier, i.e. retourné par la fonction eio_open().

mode

Actuellement, un seul drapeau est supporté pour le mode : EIO_FALLOC_FL_KEEP_SIZE (identique à la constante POSIX FALLOC_FL_KEEP_SIZE).

offset

Spécifie le début de l'intervalle d'octets.

length

Spécifie la longueur de l'intervalle d'octets.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_fallocate() retourne une ressource de la requête en cas de succès, ou FALSE si une erreur survient.


Modifie les permissions sur un fichier

  • « eio_fallocate
  • eio_fchown »
  • PHP Manual
  • Fonctions Eio
  • Modifie les permissions sur un fichier

eio_fchmod

(PECL eio >= 0.0.1dev)

eio_fchmod — Modifie les permissions sur un fichier

Description

resource eio_fchmod ( mixed $fd , int $mode [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_fchmod() modifie les permissions sur le fichier spécifié par le descripteur de fichier fd.

Liste de paramètres

fd

Un flux, une ressource de socket, ou un descripteur de fichier, i.e. retourné par la fonction eio_open().

mode

Les nouvelles permissions, i.e. 0644.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_fchmod() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • eio_fchown


Modifie le propriétaire du fichier

  • « eio_fchmod
  • eio_fdatasync »
  • PHP Manual
  • Fonctions Eio
  • Modifie le propriétaire du fichier

eio_fchown

(PECL eio >= 0.0.1dev)

eio_fchown — Modifie le propriétaire du fichier

Description

resource eio_fchown ( mixed $fd , int $uid [, int $gid = -1 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]] )

eio_fchown() modifie le propriétaire du fichier spécifié par le descripteur de fichier fd.

Liste de paramètres

fd

Un flux, une ressource de socket, ou un descripteur de fichier.

uid

ID de l'utilisateur. Sera ignoré si vaut -1.

gid

ID du groupe. Sera ignoré sur vaut -1.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires passées à la fonction de rappel callback.

Voir aussi

  • eio_fchmod


Synchronise le statut interne d'un fichier avec le périphérique de stockage

  • « eio_fchown
  • eio_fstat »
  • PHP Manual
  • Fonctions Eio
  • Synchronise le statut interne d'un fichier avec le périphérique de stockage

eio_fdatasync

(PECL eio >= 0.0.1dev)

eio_fdatasync — Synchronise le statut interne d'un fichier avec le périphérique de stockage

Description

resource eio_fdatasync ( mixed $fd [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_fdatasync() synchronise le statut interne d'un fichier avec le périphérique de stockage.

Liste de paramètres

fd

Un flux, une ressource de socket, ou un descripteur de fichier, i.e. retourné par la fonction eio_open().

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_fdatasync() retourne la ressource de la demande en cas de succès, ou FALSE si une erreur survient.


Récupère le statut d'un fichier

  • « eio_fdatasync
  • eio_fstatvfs »
  • PHP Manual
  • Fonctions Eio
  • Récupère le statut d'un fichier

eio_fstat

(PECL eio >= 0.0.1dev)

eio_fstat — Récupère le statut d'un fichier

Description

resource eio_fstat ( mixed $fd , int $pri , callable $callback [, mixed $data ] )

eio_fstat() retourne les informations quant au statut d'un fichier dans l'argument result de la fonction de rappel callback

Liste de paramètres

fd

Un flux, une ressource de socket, ou un descripteur de fichier.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_busy() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 eio_lstat() example

<?php
// Crée un fichier temporaire
$tmp_filename = dirname(__FILE__) ."/eio-file.tmp";
touch($tmp_filename);

/* Sera appelé lorsque la fonction eio_fstat() aura terminé */
function my_res_cb($data, $result) {
 // Devrait afficher un tableau contenant les informations de statut
 var_dump($result);

 if ($data['fd']) {
  // Ferme le fichier temporaire
  eio_close($data['fd']);
  eio_event_loop();
 }
 // Supprime le fichier temporaire
 @unlink($data['file']);
}

/* Sera appelé lorsque la fonction eio_open() aura terminé */
function my_open_cb($data, $result) {
 // Prépare les données pour la fonction de rappel
 $d = array(
  'fd'  => $result,
  'file'=> $data
 );
 // Demande les informations de statut
 eio_fstat($result, EIO_PRI_DEFAULT, "my_res_cb", $d);
 // Exécute les demandes
 eio_event_loop();
}

// Ouvre le fichier temporaire
eio_open($tmp_filename, EIO_O_RDONLY, NULL, EIO_PRI_DEFAULT,
  "my_open_cb", $tmp_filename);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(12) {
 ["st_dev"]=>
  int(2050)
  ["st_ino"]=>
  int(2489159)
  ["st_mode"]=>
  int(33188)
  ["st_nlink"]=>
  int(1)
  ["st_uid"]=>
  int(1000)
  ["st_gid"]=>
  int(100)
  ["st_rdev"]=>
  int(0)
  ["st_blksize"]=>
  int(4096)
  ["st_blocks"]=>
  int(0)
  ["st_atime"]=>
  int(1318239506)
  ["st_mtime"]=>
  int(1318239506)
  ["st_ctime"]=>
  int(1318239506)
}

Voir aussi

  • eio_lstat
  • eio_stat


Récupère des statistiques sur le système de fichiers

  • « eio_fstat
  • eio_fsync »
  • PHP Manual
  • Fonctions Eio
  • Récupère des statistiques sur le système de fichiers

eio_fstatvfs

(PECL eio >= 0.0.1dev)

eio_fstatvfs — Récupère des statistiques sur le système de fichiers

Description

resource eio_fstatvfs ( mixed $fd , int $pri , callable $callback [, mixed $data ] )

eio_fstatvfs() retourne des statistiques sur le système de fichiers dans l'argument result de la fonction de rappel callback.

Liste de paramètres

fd

Un descripteur de fichier d'un fichier contenu dans le système de fichier monté.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variable arbitraire à passer à la fonction de rappel callback.

Valeurs de retour

eio_fstatvfs() retourne la ressource demandée en cas de succès, FALSE si une erreur survient.

Voir aussi

  • eio_statvfs


Synchronise le statut interne d'un fichier avec le périphérique de stockage

  • « eio_fstatvfs
  • eio_ftruncate »
  • PHP Manual
  • Fonctions Eio
  • Synchronise le statut interne d'un fichier avec le périphérique de stockage

eio_fsync

(PECL eio >= 0.0.1dev)

eio_fsync — Synchronise le statut interne d'un fichier avec le périphérique de stockage

Description

resource eio_fsync ( mixed $fd [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

Synchronise le statut interne d'un fichier avec le périphérique de stockage.

Liste de paramètres

fd

Un flux, une ressource de socket, ou un descripteur de fichier.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_fsync() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • eio_sync


Tronque un fichier

  • « eio_fsync
  • eio_futime »
  • PHP Manual
  • Fonctions Eio
  • Tronque un fichier

eio_ftruncate

(PECL eio >= 0.0.1dev)

eio_ftruncate — Tronque un fichier

Description

resource eio_ftruncate ( mixed $fd [, int $offset = 0 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]] )

eio_ftruncate() tronque un fichier régulier décrit par le descripteur fd à la position de length octets.

Liste de paramètres

fd

Un flux, une ressource de socket, ou un descripteur de fichier.

offset

La position depuis le début du fichier.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_ftruncate() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • eio_truncate


Modifie l'heure du dernier accès et de la dernière modification d'un fichier

  • « eio_ftruncate
  • eio_get_event_stream »
  • PHP Manual
  • Fonctions Eio
  • Modifie l'heure du dernier accès et de la dernière modification d'un fichier

eio_futime

(PECL eio >= 0.0.1dev)

eio_futime — Modifie l'heure du dernier accès et de la dernière modification d'un fichier

Description

resource eio_futime ( mixed $fd , float $atime , float $mtime [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_futime() modifie l'heure du dernier accès et de la dernière modification d'un fichier.

Liste de paramètres

fd

Un flux, une ressource de socket, ou un descripteur de fichier, i.e. retourné par la fonction eio_open()

atime

Heure du dernier accès.

mtime

Heure de la dernière modification.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_futime() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • eio_utime


Récupère le flux représentant une variable utilisée dans les communications internes avec libeio

  • « eio_futime
  • eio_get_last_error »
  • PHP Manual
  • Fonctions Eio
  • Récupère le flux représentant une variable utilisée dans les communications internes avec libeio

eio_get_event_stream

(PECL eio >= 0.3.1b)

eio_get_event_stream — Récupère le flux représentant une variable utilisée dans les communications internes avec libeio

Description

mixed eio_get_event_stream ( void )

eio_get_event_stream() récupère un flux représentant une variable utilisée dans les communications internes avec libeio. Peut être utilisé pour lier avec des boucles d'événements fournies par d'autres extensions PECL, comme par exemple libevent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

eio_get_event_stream() retourne un flux en cas de succès, NULL sinon.

Exemples

Exemple #1 Utilisation de eio avec libevent

<?php
function my_eio_poll($fd, $events, $arg) {
    /* Quelques commandes libevent peuvent être effectuées ici .. */
    if (eio_nreqs()) {
        eio_poll();
    }
    /* .. et ici */
}

function my_res_cb($d, $r) {
    var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

$fd = eio_get_event_stream();
var_dump($fd);

eio_nop(EIO_PRI_DEFAULT, "my_res_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_res_cb", "mkdir data");
/* quelques appels à eio_* calls ici ... */

// Définit les drapeaux des événements
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// Définit l'événement de base
event_base_set($event, $base);

// Active l'événement
event_add($event);

// Démarre la boucle des événements
event_base_loop($base);

/* La même chose peut être effectuée avec les interfaces libevent bufferisées */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)
int(0)
string(8) "nop data"
int(0)
string(10) "mkdir data"


Retourne une chaîne décrivant la dernière erreur associée avec la ressource demandée

  • « eio_get_event_stream
  • eio_grp_add »
  • PHP Manual
  • Fonctions Eio
  • Retourne une chaîne décrivant la dernière erreur associée avec la ressource demandée

eio_get_last_error

(PECL eio >= 1.0.0)

eio_get_last_error — Retourne une chaîne décrivant la dernière erreur associée avec la ressource demandée

Description

string eio_get_last_error ( resource $req )

eio_get_last_error() retourne une chaîn edécrivant la dernière erreur associée avec le paramètre req.

Liste de paramètres

req

La ressource demandée

Valeurs de retour

eio_get_last_error() retourne une chaîne décrivant la dernière erreur avec la ressource demandée spécifiée par le paramètre req.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Ajoute une requête au groupe de requêtes

  • « eio_get_last_error
  • eio_grp_cancel »
  • PHP Manual
  • Fonctions Eio
  • Ajoute une requête au groupe de requêtes

eio_grp_add

(PECL eio >= 0.0.1dev)

eio_grp_add — Ajoute une requête au groupe de requêtes

Description

void eio_grp_add ( resource $grp , resource $req )

eio_grp_add() ajoute une requête au groupe de requêtes.

Liste de paramètres

grp

La ressource du groupe de requêtes, retournée par la fonction eio_grp()

req

La ressource de la requête

Valeurs de retour

eio_grp_add() ne retourne aucune valeur.

Exemples

Exemple #1 Le regroupement des requêtes

<?php
/*
 * Crée un groupe de requêtes pour ouvrir, lire et fermer un fichier
 */

// Crée un fichier temporaore, et y écrit quelques octets
$temp_filename = dirname(__FILE__) ."/eio-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "some data");
fclose($fp);

/* Sera appelé lorsque le groupe de requêtes sera terminé */
function my_grp_done($data, $result) {
 var_dump($result == 0);
 @unlink($data);
}

/* Sera appelé lorsque eio_open() aura terminé */
function my_grp_file_opened_callback($data, $result) {
 global $grp;

 // $result doit contenir le descripteur de fichier
 var_dump($result > 0);

 // Crée une requête eio_read() et l'ajoute dans le groupe
 // Passe le descripteur de fichier à la fonction de rappel
 $req = eio_read($result, 4, 0,
   EIO_PRI_DEFAULT, "my_grp_file_read_callback", $result);
 eio_grp_add($grp, $req);
}

/* Sera appelé lorsque eio_read() aura terminé */
function my_grp_file_read_callback($data, $result) {
 global $grp;

 // Lit les octets
 var_dump($result);

 // Crée une requête eio_close() et l'ajoute dans le groupe
 // $data doit contenir le descripteur de fichier
 $req = eio_close($data);
 eio_grp_add($grp, $req);
}

// Crée un groupe de requêtes
$grp = eio_grp("my_grp_done", $temp_filename);
var_dump($grp);

// Crée une requête eio_open() et l'ajoute dans le groupe
$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL,
  EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);
eio_grp_add($grp, $req);

// Exécute les demandes
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

resource(6) of type (EIO Group Descriptor)
bool(true)
string(4) "some"
bool(true)

Voir aussi

  • eio_grp
  • eio_grp_cancel
  • eio_grp_limit


Annule un groupe de requêtes

  • « eio_grp_add
  • eio_grp_limit »
  • PHP Manual
  • Fonctions Eio
  • Annule un groupe de requêtes

eio_grp_cancel

(PECL eio >= 0.0.1dev)

eio_grp_cancel — Annule un groupe de requêtes

Description

void eio_grp_cancel ( resource $grp )

eio_grp_cancel() annule un groupe de requêtes spécifié par la ressource de groupe grp.

Liste de paramètres

grp

La ressource du groupe de requêtes retournée par la fonction eio_grp().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • eio_grp
  • eio_grp_add


Définit la limite d'un groupe

  • « eio_grp_cancel
  • eio_grp »
  • PHP Manual
  • Fonctions Eio
  • Définit la limite d'un groupe

eio_grp_limit

(PECL eio >= 0.0.1dev)

eio_grp_limit — Définit la limite d'un groupe

Description

void eio_grp_limit ( resource $grp , int $limit )

Limite le nombre de requêtes dans un groupe de requêtes.

Liste de paramètres

grp

La ressource du groupe de requêtes.

limit

Nombre de requêtes maximales dans le groupe.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • eio_grp_add


Crée un groupe de requêtes

  • « eio_grp_limit
  • eio_init »
  • PHP Manual
  • Fonctions Eio
  • Crée un groupe de requêtes

eio_grp

(PECL eio >= 0.0.1dev)

eio_grp — Crée un groupe de requêtes

Description

resource eio_grp ( callable $callback [, string $data = NULL ] )

eio_grp() crée un groupe de requêtes.

Liste de paramètres

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_grp() retourne la ressource du groupe de requêtes en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec eio_grp()

<?php
$temp_filename = dirname(__FILE__) ."/eio-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "some data");
fclose($fp);
$my_file_fd = NULL;

/* Sera appelé lorsque le groupe de requêtes aura terminé */
function my_grp_done($data, $result) {
 // Supprime le fichier, si il existe
 @unlink($data);
}

/* Sera appelé lorsque le fichier temporaire sera ouvert */
function my_grp_file_opened_callback($data, $result) {
 global $my_file_fd, $grp;

 $my_file_fd = $result;

 $req = eio_read($my_file_fd, 4, 0,
   EIO_PRI_DEFAULT, "my_grp_file_read_callback");
 eio_grp_add($grp, $req);
}

/* Sera appelé lorsque le fichier aura été lu */
function my_grp_file_read_callback($data, $result) {
 global $my_file_fd, $grp;

 var_dump($result);

 // Crée une requête pour fermer le fichier
 $req = eio_close($my_file_fd);

 // Ajoute la requête au groupe
 eio_grp_add($grp, $req);
}

// Crée un groupe de requêtes
$grp = eio_grp("my_grp_done", $temp_filename);

// Crée une requête
$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL,
  EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);

// Ajoute la requête au groupe
eio_grp_add($grp, $req);

// Exécute les demandes
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(4) "some"

Voir aussi

  • eio_grp_cancel
  • eio_grp_add


(Re-)initialise Eio

  • « eio_grp
  • eio_link »
  • PHP Manual
  • Fonctions Eio
  • (Re-)initialise Eio

eio_init

(PECL eio = 1.0.0)

eio_init — (Re-)initialise Eio

Description

void eio_init ( void )

eio_init() (re-)initialise Eio. Elle alloue la mémoire pour les structures internes de la bibliothèque libeio et Eio lui-même. Vous devez appeler la fonction eio_init() avant d'utiliser les fonctions Eio. Sinon, cette fonction sera appelée en interne dès lors qu'une fonction Eio sera appelée.

Avertissement

Cette fonctionnalité obsolète sera certainement supprimée dans le futur. Depuis Eio 1.1.0, la fonction eio_init() est obsolète. En Eio 1.0.0, en raison des » restrictions de la bibliothèque libeio, vous devez appeler la fonction eio_init() depuis un processus fils. Vous ne devez pas utiliser Eio depuis un processus parent, si vous l'utilisez dans des fils.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Crée un lien fort sur un fichier

  • « eio_init
  • eio_lstat »
  • PHP Manual
  • Fonctions Eio
  • Crée un lien fort sur un fichier

eio_link

(PECL eio >= 0.0.1dev)

eio_link — Crée un lien fort sur un fichier

Description

resource eio_link ( string $path , string $new_path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_link() crée le lien fort new_path sur un fichier spécifié par path.

Liste de paramètres

path

Le chemin du fichier source.

new_path

Le chemin du fichier cible.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

Exemples

Exemple #1 Exemple avec eio_link()

<?php
$filename = dirname(__FILE__)."/symlink.dat";
touch($filename);
$link = dirname(__FILE__)."/symlink.link";
$hardlink = dirname(__FILE__)."/hardlink.link";

function my_hardlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && !is_link($data));
    @unlink($data);

    eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_cb", $link);
}

function my_symlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && is_link($data));

    if (!eio_readlink($data, EIO_PRI_DEFAULT, "my_readlink_cb", NULL)) {
        @unlink($link);
        @unlink($filename);
    }
}

function my_readlink_cb($data, $result) {
    global $filename, $link;
    var_dump($result);

    @unlink($link);
    @unlink($filename);
}

eio_link($filename, $hardlink, EIO_PRI_DEFAULT, "my_hardlink_cb", $hardlink);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
string(%d) "%ssymlink.dat"

Voir aussi

  • eio_symlink


Récupère le statut d'un fichier

  • « eio_link
  • eio_mkdir »
  • PHP Manual
  • Fonctions Eio
  • Récupère le statut d'un fichier

eio_lstat

(PECL eio >= 0.0.1dev)

eio_lstat — Récupère le statut d'un fichier

Description

resource eio_lstat ( string $path , int $pri , callable $callback [, mixed $data = NULL ] )

eio_lstat() retourne les informations de statut du fichier dans l'argument result de la fonction de rappel callback

Liste de paramètres

path

Le chemin du fichier.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_lstat() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec eio_lstat()

<?php
$tmp_filename = dirname(__FILE__). "/eio-file.tmp";
touch($tmp_filename);

function my_res_cb($data, $result) {
    var_dump($data);
    var_dump($result);
}

function my_open_cb($data, $result) {
    eio_close($result);
    eio_event_loop();

    @unlink($data);
}

eio_lstat($tmp_filename, EIO_PRI_DEFAULT, "my_res_cb", "eio_lstat");
eio_open($tmp_filename, EIO_O_RDONLY, NULL,
 EIO_PRI_DEFAULT, "my_open_cb", $tmp_filename);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(9) "eio_lstat"
array(12) {
 ["st_dev"]=>
  int(2050)
  ["st_ino"]=>
  int(2099197)
  ["st_mode"]=>
  int(33188)
  ["st_nlink"]=>
  int(1)
  ["st_uid"]=>
  int(1000)
  ["st_gid"]=>
  int(100)
  ["st_rdev"]=>
  int(0)
  ["st_blksize"]=>
  int(4096)
  ["st_blocks"]=>
  int(0)
  ["st_atime"]=>
  int(1318235777)
  ["st_mtime"]=>
  int(1318235777)
  ["st_ctime"]=>
  int(1318235777)
}

Voir aussi

  • eio_stat
  • eio_fstat


Crée un dossier

  • « eio_lstat
  • eio_mknod »
  • PHP Manual
  • Fonctions Eio
  • Crée un dossier

eio_mkdir

(PECL eio >= 0.0.1dev)

eio_mkdir — Crée un dossier

Description

resource eio_mkdir ( string $path , int $mode [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_mkdir() crée un dossier avec les permissions spécifiées par l'argument mode.

Liste de paramètres

path

Chemin du nouveau dossier.

mode

Mode d'accès, i.e. 0755

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_mkdir() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec eio_mkdir()

<?php
$temp_dirname = "eio-temp-dir";

/* Sera appelé lorsque la fonction eio_mkdir() aura terminé */
function my_mkdir_callback($data, $result) {
 if ($result == 0 && is_dir($temp_dirname)
   && !is_readable($temp_dirname)
   && is_writable($temp_dirname)) {
  echo "eio_mkdir_ok";
 }

 // Supprime le dossier
    if (file_exists($data))
        rmdir($temp_dirname);
}

// Crée un dossier avec comme mode d'accès 0300
eio_mkdir($temp_dirname, 0300, EIO_PRI_DEFAULT, "my_mkdir_callback", $temp_dirname);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

eio_mkdir_ok

Voir aussi

  • eio_rmdir


Crée un fichier spécial ou ordinaire

  • « eio_mkdir
  • eio_nop »
  • PHP Manual
  • Fonctions Eio
  • Crée un fichier spécial ou ordinaire

eio_mknod

(PECL eio >= 0.0.1dev)

eio_mknod — Crée un fichier spécial ou ordinaire

Description

resource eio_mknod ( string $path , int $mode , int $dev [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_mknod() crée un fichier spécial ou ordinaire.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

path

Chemin du nouveau noeud (fichier).

mode

Spécifie à la fois les permissions à utiliser et le type de noeud à créer. Il doit être une combinaison (en utilisant l'opérateur OR) d'un des types de fichier listés ci-dessous, et les permissions pour le nouveau noeud (i.e. 0640). Les types de fichier possibles sont : EIO_S_IFREG(fichier régulier), EIO_S_IFCHR(fichier de caractères), EIO_S_IFBLK(fichier de bloc spécial), EIO_S_IFIFO(FIFO - nommé pipe) et EIO_S_IFSOCK(socket de domaine UNIX). Pour spécifier les permissions, les constantes EIO_S_I* doivent être utilisées.

dev

Si le type de fichier est EIO_S_IFCHR ou EIO_S_IFBLK, alors ce paramètre spécifie le nombre majeur et mineur du nouveay fichier spécial de périphérique créé. Sinon, le paramètre dev sera ignoré. Voir la page du manuel de mknod(2) pour plus de détails.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_mknod() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec eio_mknod()

<?php
// FIFO name
$temp_filename = "/tmp/eio-temp-fifo";

/* Sera appelé lorsque la fonction eio_mknod() aura terminé */
function my_mknod_callback($data, $result) {
    $s = stat($data);
    var_dump($s);

    if ($result == 0) {
        echo "eio_mknod_ok";
    }

    @unlink($data);
}

eio_mknod($temp_filename, EIO_S_IFIFO, 0,
    EIO_PRI_DEFAULT, "my_mknod_callback", $temp_filename);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(26) {
  [0]=>
  int(17)
  [1]=>
  int(2337608)
  [2]=>
  int(4096)
  [3]=>
  int(1)
  [4]=>
  int(1000)
  [5]=>
  int(100)
  [6]=>
  int(0)
  [7]=>
  int(0)
  [8]=>
  int(1318241261)
  [9]=>
  int(1318241261)
  [10]=>
  int(1318241261)
  [11]=>
  int(4096)
  [12]=>
  int(0)
  ["dev"]=>
  int(17)
  ["ino"]=>
  int(2337608)
  ["mode"]=>
  int(4096)
  ["nlink"]=>
  int(1)
  ["uid"]=>
  int(1000)
  ["gid"]=>
  int(100)
  ["rdev"]=>
  int(0)
  ["size"]=>
  int(0)
  ["atime"]=>
  int(1318241261)
  ["mtime"]=>
  int(1318241261)
  ["ctime"]=>
  int(1318241261)
  ["blksize"]=>
  int(4096)
  ["blocks"]=>
  int(0)
}
eio_mknod_ok

Voir aussi

  • eio_open


Ne fait rien, mise à part le fait de parcourir l'ensemble du cycle des requêtes

  • « eio_mknod
  • eio_npending »
  • PHP Manual
  • Fonctions Eio
  • Ne fait rien, mise à part le fait de parcourir l'ensemble du cycle des requêtes

eio_nop

(PECL eio >= 0.0.1dev)

eio_nop — Ne fait rien, mise à part le fait de parcourir l'ensemble du cycle des requêtes

Description

resource eio_nop ([ int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_nop() ne fait rien, mise à part le fait de parcourir l'ensemble du cycle des requêtes. Peut être utile pour le débogage.

Liste de paramètres

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_nop() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • eio_busy


Retourne le nombre de requêtes terminées

  • « eio_nop
  • eio_nready »
  • PHP Manual
  • Fonctions Eio
  • Retourne le nombre de requêtes terminées

eio_npending

(PECL eio >= 0.0.1dev)

eio_npending — Retourne le nombre de requêtes terminées

Description

int eio_npending ( void )

eio_npending() retourne le nombre de requêtes terminées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

eio_npending() retourne le nombre de requêtes terminées.

Voir aussi

  • eio_nreqs
  • eio_nready
  • eio_nthreads


Retourne le nombre de requêtes pas encore gérées

  • « eio_npending
  • eio_nreqs »
  • PHP Manual
  • Fonctions Eio
  • Retourne le nombre de requêtes pas encore gérées

eio_nready

(PECL eio >= 0.0.1dev)

eio_nready — Retourne le nombre de requêtes pas encore gérées

Description

int eio_nready ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

eio_nready() retourne le nombre de requêtes pas encore gérées.

Voir aussi

  • eio_nreqs
  • eio_nready
  • eio_nthreads


Retourne le nombre de requêtes restant à exécuter

  • « eio_nready
  • eio_nthreads »
  • PHP Manual
  • Fonctions Eio
  • Retourne le nombre de requêtes restant à exécuter

eio_nreqs

(PECL eio >= 0.0.1dev)

eio_nreqs — Retourne le nombre de requêtes restant à exécuter

Description

int eio_nreqs ( void )

eio_nreqs() peut être appelée dans une boucle personnalisée appelant la fonction eio_poll().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

eio_nreqs() retourne le nombre de requêtes restant à exécuter.

Exemples

Exemple #1 Exemple avec eio_nreqs()

<?php
function res_cb($data, $result) {
    var_dump($data);
    var_dump($result);
}

eio_nop(EIO_PRI_DEFAULT, "res_cb", "1");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "2");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "3");

while (eio_nreqs()) {
    eio_poll();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "1"
int(0)
string(1) "3"
int(0)
string(1) "2"
int(0)

Voir aussi

  • eio_poll
  • eio_nready


Retourne le nombre de threads actuellement utilisés

  • « eio_nreqs
  • eio_open »
  • PHP Manual
  • Fonctions Eio
  • Retourne le nombre de threads actuellement utilisés

eio_nthreads

(PECL eio >= 0.0.1dev)

eio_nthreads — Retourne le nombre de threads actuellement utilisés

Description

int eio_nthreads ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

eio_nthreads() retourne le nombre de threads actuellement utilisés.

Voir aussi

  • eio_npending
  • eio_nready
  • eio_nreqs


Ouvre un fichier

  • « eio_nthreads
  • eio_poll »
  • PHP Manual
  • Fonctions Eio
  • Ouvre un fichier

eio_open

(PECL eio >= 0.0.1dev)

eio_open — Ouvre un fichier

Description

resource eio_open ( string $path , int $flags , int $mode , int $pri , callable $callback [, mixed $data = NULL ] )

eio_open() ouvre un fichier spécifié par l'argument path avec le mode d'accès spécifié par l'argumentmode.

Liste de paramètres

path

Chemin vers le fichier à ouvrir.

Avertissement

Avec quelques APIs (i.e. PHP-FPM), l'appel peut échouer si vous ne spécifiez pas le chemin complet.

flags

Une constante parmi les constants EIO_O_*, ou bien une combinaison de ces constantes. Les constantes EIO_O_* ont la même signification que les constantes correspondantes O_* définies dans le fichier d'en-têtes C fnctl.h. Par défaut, vaut EIO_O_RDWR.

mode

Une constante parmi les constantes EIO_S_I*, ou bien une combinaison de ces constantes (via l'opérateur OR). Les constantes ont la même signification que les constantes correspondantes S_I* définies dans le fichier d'en-têtes C » sys/stat.h. Requis si un fichier est créé. Sinon, il sera ignoré.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_open() retourne un descripteur de fichier dans l'argument result de la fonction de rappel callback en cas de succès ; sinon, result vaudra -1.

Exemples

Exemple #1 Exempe avec eio_open()

<?php
$temp_filename = "eio-temp-file.tmp";

/* Sera appelé lorsque la fonction eio_close() aura terminé */
function my_close_cb($data, $result) {
 // Zéro indique une exécution avec succès
    var_dump($result == 0);
 @unlink($data);
}

/* Sera appelé lorsque la fonction eio_open() aura terminé */
function my_file_opened_callback($data, $result) {
 // $result doit contenir le descripteur de fichier
    var_dump($result > 0);

    if ($result > 0) {
  // Ferme le fichier
        eio_close($result, EIO_PRI_DEFAULT, "my_close_cb", $data);
        eio_event_loop();
    }
}

// Crée un nouveau fichier pour lecture et écriture
// N'autorise pas les groupes et autres à faire ce que ce soit avec ce fichier
eio_open($temp_filename, EIO_O_CREAT | EIO_O_RDWR, EIO_S_IRUSR | EIO_S_IWUSR,
  EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)

Voir aussi

  • eio_mknod


Vérifie s'il reste des requêtes en cours d'exécution

  • « eio_open
  • eio_read »
  • PHP Manual
  • Fonctions Eio
  • Vérifie s'il reste des requêtes en cours d'exécution

eio_poll

(PECL eio >= 0.0.1dev)

eio_poll — Vérifie s'il reste des requêtes en cours d'exécution

Description

int eio_poll ( void )

eio_poll() peut être utilisé pour implémenter une boucle d'événements spéciale. Pour ceci, la fonction eio_nreqs() peut être utiliser pour tester s'il reste des requêtes à exécuter.

Note:

Applicable uniquement lors de l'implémentation d'une boucle d'événements dans l'espace utilisateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Si une des invocations retourne une valeur différente de zéro, cette valeur sera retournée. Sinon, la fonction retournera 0.

Exemples

Exemple #1 Exemple avec eio_poll()

<?php
function res_cb($data, $result) {
    var_dump($data);
    var_dump($result);
}

eio_nop(EIO_PRI_DEFAULT, "res_cb", "1");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "2");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "3");

while (eio_nreqs()) {
    // Quelques IPC spécifiques ou autres
    eio_poll();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "1"
int(0)
string(1) "3"
int(0)
string(1) "2"
int(0)

Voir aussi

  • eio_nreqs


Lit un descripteur de fichier à une position donnée

  • « eio_poll
  • eio_readahead »
  • PHP Manual
  • Fonctions Eio
  • Lit un descripteur de fichier à une position donnée

eio_read

(PECL eio >= 0.0.1dev)

eio_read — Lit un descripteur de fichier à une position donnée

Description

resource eio_read ( mixed $fd , int $length , int $offset , int $pri , callable $callback [, mixed $data = NULL ] )

eio_read() lit length octets depuis le descripteur de fichier fd à la position offset. Les octets lus sont stockés dans l'argument result de la fonction de rappel callback.

Liste de paramètres

fd

Un flux, une ressource de socket, ou un descripteur de fichier

length

Nombre maximal d'octets à lire.

offset

Position dans le fichier.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_read() stocke les octets lus dans l'argument result de la fonction de rappel callback.

Exemples

Exemple #1 Exemple avec eio_read()

<?php
// Ouvre un fichier temporaire et y écrit quelques octets
$temp_filename = "eio-temp-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "1234567890");
fclose($fp);

/* Sera appelé lorsque la fonction eio_read() aura terminé */
function my_read_cb($data, $result) {
    global $temp_filename;

 // Affiche les octets lus
    var_dump($result);

 // Ferme le fichier
    eio_close($data);
    eio_event_loop();

 // Supprime le fichier temporaire
    @unlink($temp_filename);
}

/* Sera appelé lorsque la fonction eio_open() aura terminé */
function my_file_opened_callback($data, $result) {
 // $result doit contenir le descripteur de fichier
    if ($result > 0) {
  // Lit 5 octets en commençant par le troisième
        eio_read($result, 5, 2, EIO_PRI_DEFAULT, "my_read_cb", $result);
        eio_event_loop();
    } else {
  // eio_open() a échoué
        unlink($data);
    }
}

// Ouvre le fichier en lecture et en écriture
eio_open($temp_filename, EIO_O_RDWR, NULL,
    EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "34567"

Voir aussi

  • eio_open
  • eio_write
  • eio_close
  • eio_event_loop


Effectue un readahead sur le fichier dans le cache d'une page

  • « eio_read
  • eio_readdir »
  • PHP Manual
  • Fonctions Eio
  • Effectue un readahead sur le fichier dans le cache d'une page

eio_readahead

(PECL eio >= 0.0.1dev)

eio_readahead — Effectue un readahead sur le fichier dans le cache d'une page

Description

resource eio_readahead ( mixed $fd , int $offset , int $length [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_readahead() peuple le cache de la page avec les données d'un fichier faisant que les prochains appels à la lecture de ce fichier ne bloquera pas l'I/O du disque. Voir la page du manuel sur READAHEAD(2) pour plus de détails.

Liste de paramètres

fd

Un flux, une ressource de socket ou un descripteur de fichier.

offset

Point de départ à partir de laquelle les données seront lues.

length

Nombre d'octets à lire.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_readahead() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.


Lit le contenu d'un dossier

  • « eio_readahead
  • eio_readlink »
  • PHP Manual
  • Fonctions Eio
  • Lit le contenu d'un dossier

eio_readdir

(PECL eio >= 0.0.1dev)

eio_readdir — Lit le contenu d'un dossier

Description

resource eio_readdir ( string $path , int $flags , int $pri , callable $callback [, string $data = NULL ] )

Lit le contenu complet d'un dossier (via les appels systèmes opendir, readdir et closedir) et retourne soit les noms, soit un tableau suivant la valeur de l'argument flags.

Liste de paramètres

path

Chemin du dossier.

flags

Combinaison de constantes EIO_READDIR_*.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_readdir() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient. Définissez l'argument result de la fonction de rappel callback suivant le drapeau flags utilisé :

EIO_READDIR_DENTS (entier)
Drapeau pour eio_readdir(). Si spécifié, l'argument de résultat de la fonction de rappel devient un tableau contenant les clés suivantes : 'names' - tableau de noms de dossiers 'dents' - tableau de struct eio_dirent - comme un tableau, mais contenant les clés spécifiques suivantes : 'name' - le nom du dossier ; 'type' - une des constantes EIO_DT_* ; 'inode' - le numbre d'inodes, si disponible, sinon ne sera pas spécifié ;
EIO_READDIR_DIRS_FIRST (entier)
Lorsque ce drapeau est spécifié, les noms seront retournés dans un ordre où les dossiers arrivent en premier, et ensuite dans un ordre de statut optimal.
EIO_READDIR_STAT_ORDER (entier)
Lorsque ce drapeau est spécifié, alors les noms seront retournés dans un ordre suivant le statut stat de chaque noeud. Si vous avez prévu d'appliquer la fonction stat() a tous les fichiers du dossier, il vous sera plus rapide d'utiliser ce drapeau.
EIO_READDIR_FOUND_UNKNOWN (entier)

Types de noeud :

EIO_DT_UNKNOWN (entier)
Un noeud de type inconnu (souvent le cas). Une utilisation de la fonction stat() est nécessaire.
EIO_DT_FIFO (entier)
Un noeud de type FIFO
EIO_DT_CHR (entier)
Type de noeud
EIO_DT_MPC (entier)
Un noeud de type périphérique à caractères multiplexés (v7+coherent)
EIO_DT_DIR (entier)
Un noeud de type dossier
EIO_DT_NAM (entier)
Un noeud de type fichier nommé spécialement Xenix
EIO_DT_BLK (entier)
Type de noeud
EIO_DT_MPB (entier)
Bloc multiplexé du périphérique (v7+coherent)
EIO_DT_REG (entier)
Type de noeud
EIO_DT_NWK (entier)
EIO_DT_CMP (entier)
Un noeud de type spécial du réseau HP-UX
EIO_DT_LNK (entier)
Un noeud de type lien
EIO_DT_SOCK (entier)
Un noeud de type socket
EIO_DT_DOOR (entier)
Un noeud de type Solaris door
EIO_DT_WHT (entier)
Type de noeud
EIO_DT_MAX (entier)
Valeur de type de noeud le plus haut possible

Exemples

Exemple #1 Exemple avec eio_readdir()

<?php
/* Is called when eio_readdir() finishes */
function my_readdir_callback($data, $result) {
    echo __FUNCTION__, " called\n";
    echo "donnée : "; var_dump($data);
    echo "résultat : "; var_dump($result);
    echo "\n";
}

eio_readdir("/var/spool/news", EIO_READDIR_STAT_ORDER | EIO_READDIR_DIRS_FIRST,
  EIO_PRI_DEFAULT, "my_readdir_callback");
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

my_readdir_callback called
donnée : NULL
résultat : array(2) {
 ["names"]=>
  array(7) {
   [0]=>
    string(7) "archive"
    [1]=>
    string(8) "articles"
    [2]=>
    string(8) "incoming"
    [3]=>
    string(7) "innfeed"
    [4]=>
    string(8) "outgoing"
    [5]=>
    string(8) "overview"
    [6]=>
    string(3) "tmp"
  }
 ["dents"]=>
  array(7) {
   [0]=>
    array(3)
    {
     ["name"]=>
      string(7)
      "archive"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393265)
    }
   [1]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "articles"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393266)
    }
   [2]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "incoming"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393267)
    }
   [3]=>
    array(3)
    {
     ["name"]=>
      string(7)
      "innfeed"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393269)
    }
   [4]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "outgoing"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393270)
    }
   [5]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "overview"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393271)
    }
   [6]=>
    array(3)
    {
     ["name"]=>
      string(3)
      "tmp"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393272)
    }
  }
}


Lit la valeur d'un lien symbolique

  • « eio_readdir
  • eio_realpath »
  • PHP Manual
  • Fonctions Eio
  • Lit la valeur d'un lien symbolique

eio_readlink

(PECL eio >= 0.0.1dev)

eio_readlink — Lit la valeur d'un lien symbolique

Description

resource eio_readlink ( string $path , int $pri , callable $callback [, string $data = NULL ] )

Liste de paramètres

path

Chemin source du lien symbolique

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_readlink() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec eio_readlink()

<?php
$filename = dirname(__FILE__)."/symlink.dat";
touch($filename);
$link = dirname(__FILE__)."/symlink.link";
$hardlink = dirname(__FILE__)."/hardlink.link";

function my_hardlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && !is_link($data));
    @unlink($data);

    eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_cb", $link);
}

function my_symlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && is_link($data));

    if (!eio_readlink($data, EIO_PRI_DEFAULT, "my_readlink_cb", NULL)) {
        @unlink($link);
        @unlink($filename);
    }
}

function my_readlink_cb($data, $result) {
    global $filename, $link;
    var_dump($result);

    @unlink($link);
    @unlink($filename);
}

eio_link($filename, $hardlink, EIO_PRI_DEFAULT, "my_hardlink_cb", $hardlink);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
string(16) "/tmp/symlink.dat"

Voir aussi

  • eio_symlink


Récupère le nom du chemin absolu canonisé

  • « eio_readlink
  • eio_rename »
  • PHP Manual
  • Fonctions Eio
  • Récupère le nom du chemin absolu canonisé

eio_realpath

(PECL eio >= 0.0.1dev)

eio_realpath — Récupère le nom du chemin absolu canonisé

Description

resource eio_realpath ( string $path , int $pri , callable $callback [, string $data = NULL ] )

eio_realpath() retourne le nom du chemin absolu canonisé dans l'argument result de la fonction de rappel callback.

Liste de paramètres

path

Nom du chemin en version courte.

pri

callback

data

Valeurs de retour

Exemples

Exemple #1 Exemple avec eio_realpath()

<?php
var_dump(getcwd());

function my_realpath_allback($data, $result) {
    var_dump($result);
}

eio_realpath("../", EIO_PRI_DEFAULT, "my_realpath_allback");
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(12) "/home/ruslan"
string(5) "/home"


Modifie le nom ou le chemin d'un fichier

  • « eio_realpath
  • eio_rmdir »
  • PHP Manual
  • Fonctions Eio
  • Modifie le nom ou le chemin d'un fichier

eio_rename

(PECL eio >= 0.0.1dev)

eio_rename — Modifie le nom ou le chemin d'un fichier

Description

resource eio_rename ( string $path , string $new_path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_rename() renomme ou déplace un fichier vers un nouvel endroit.

Liste de paramètres

path

Chemin source

new_path

Chemin cible

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_rename() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec eio_rename()

<?php
$filename = dirname(__FILE__)."/eio-temp-file.dat";
touch($filename);
$new_filename = dirname(__FILE__)."/eio-temp-file-new.dat";

function my_rename_cb($data, $result) {
    global $filename, $new_filename;

    if ($result == 0 && !file_exists($filename) && file_exists($new_filename)) {
        @unlink($new_filename);
        echo "eio_rename_ok";
    } else {
        @unlink($filename);
    }
}

eio_rename($filename, $new_filename, EIO_PRI_DEFAULT, "my_rename_cb", $filename);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

eio_rename_ok


Supprime un dossier

  • « eio_rename
  • eio_seek »
  • PHP Manual
  • Fonctions Eio
  • Supprime un dossier

eio_rmdir

(PECL eio >= 0.0.1dev)

eio_rmdir — Supprime un dossier

Description

resource eio_rmdir ( string $path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_rmdir() supprime un dossier.

Liste de paramètres

path

Chemin du dossier

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_rmdir() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec eio_rmdir()

<?php
$temp_dirname = "eio-temp-dir";
mkdir($temp_dirname);

function my_rmdir_callback($data, $result) {
    if ($result == 0 && !file_exists($data)) {
        echo "eio_rmdir_ok";
    } else if (file_exists($data)) {
        rmdir($data);
    }
}

eio_rmdir($temp_dirname, EIO_PRI_DEFAULT, "my_rmdir_callback", $temp_dirname);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

eio_rmdir_ok

Voir aussi

  • eio_mkdir


Repositionne le curseur d'un fichier ouvert

  • « eio_rmdir
  • eio_sendfile »
  • PHP Manual
  • Fonctions Eio
  • Repositionne le curseur d'un fichier ouvert

eio_seek

(PECL eio >= 0.5.0b)

eio_seek — Repositionne le curseur d'un fichier ouvert

Description

resource eio_seek ( mixed $fd , int $offset , int $whence [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_seek() repositionne le curseur du fichier ouvert spécifié par l'argument fd (qui peut être un flux, une ressource de socket ou un descripteur de fichier) à la position offset suivant la directive whence comme suit :

  • EIO_SEEK_SET - Définit la position à offset octets.
  • EIO_SEEK_CUR - Définit la position à la position courante, plus offset.
  • EIO_SEEK_END - Définit la position à la fin du fichier, plus offset.

Liste de paramètres

fd

Un flux, une ressource de socket, ou un descripteur de fichier numérique

offset

Point de départ depuis lequel les données vont commencer à être lues.

length

Nombre d'octets à lire.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variable arbitraire à passer à la fonction de rappel callback.

Valeurs de retour

eio_seek() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.


Transfère des données entre des descripteurs de fichiers

  • « eio_seek
  • eio_set_max_idle »
  • PHP Manual
  • Fonctions Eio
  • Transfère des données entre des descripteurs de fichiers

eio_sendfile

(PECL eio >= 0.0.1dev)

eio_sendfile — Transfère des données entre des descripteurs de fichiers

Description

resource eio_sendfile ( mixed $out_fd , mixed $in_fd , int $offset , int $length [, int $pri [, callable $callback [, string $data ]]] )

eio_sendfile() copie des données entre un descripteur de fichier et un autre. Voir la page du manuel sur SENDFILE(2) pour plus de détails.

Liste de paramètres

out_fd

Flux, ressource de socket, ou descripteur de fichier pour la sortie. Doit être ouvert en écriture.

in_fd

Flux, ressource de socket, ou descripteur de fichier pour l'entrée. Doit être ouvert en lecture.

offset

Position dans le fichier source.

length

Nombre d'octets à copier.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_sendfile() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.


Définit le nombre maximal de threads inactifs

  • « eio_sendfile
  • eio_set_max_parallel »
  • PHP Manual
  • Fonctions Eio
  • Définit le nombre maximal de threads inactifs

eio_set_max_idle

(PECL eio >= 0.0.1dev)

eio_set_max_idle — Définit le nombre maximal de threads inactifs

Description

void eio_set_max_idle ( int $nthreads )

Liste de paramètres

nthreads

Nombre de threads inactifs.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • eio_set_min_parallel
  • eio_set_max_parallel


Définit le nombre maximal de threads en parallèle

  • « eio_set_max_idle
  • eio_set_max_poll_reqs »
  • PHP Manual
  • Fonctions Eio
  • Définit le nombre maximal de threads en parallèle

eio_set_max_parallel

(PECL eio >= 0.0.1dev)

eio_set_max_parallel — Définit le nombre maximal de threads en parallèle

Description

void eio_set_max_parallel ( int $nthreads )

Liste de paramètres

nthreads

Nombre de threads en parallèle

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • eio_set_min_parallel


Définit le nombre maximal de requêtes à exécuter dans une file d'attente

  • « eio_set_max_parallel
  • eio_set_max_poll_time »
  • PHP Manual
  • Fonctions Eio
  • Définit le nombre maximal de requêtes à exécuter dans une file d'attente

eio_set_max_poll_reqs

(PECL eio >= 0.0.1dev)

eio_set_max_poll_reqs — Définit le nombre maximal de requêtes à exécuter dans une file d'attente

Description

void eio_set_max_poll_reqs ( int $nreqs )

Liste de paramètres

nreqs

Nombre de requêtes

Valeurs de retour

Aucune valeur n'est retournée.


Définit la durée maximale de la file d'attente

  • « eio_set_max_poll_reqs
  • eio_set_min_parallel »
  • PHP Manual
  • Fonctions Eio
  • Définit la durée maximale de la file d'attente

eio_set_max_poll_time

(PECL eio >= 0.0.1dev)

eio_set_max_poll_time — Définit la durée maximale de la file d'attente

Description

void eio_set_max_poll_time ( float $nseconds )

La file d'attente s'interrompt si elle prend plus de nseconds secondes.

Liste de paramètres

nseconds

Nombre de secondes

Valeurs de retour

Aucune valeur n'est retournée.


Définit le nombre minimum de threads parallèles

  • « eio_set_max_poll_time
  • eio_stat »
  • PHP Manual
  • Fonctions Eio
  • Définit le nombre minimum de threads parallèles

eio_set_min_parallel

(PECL eio >= 0.0.1dev)

eio_set_min_parallel — Définit le nombre minimum de threads parallèles

Description

void eio_set_min_parallel ( string $nthreads )

Liste de paramètres

nthreads

Nombre de threads en parallèle.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • eio_set_max_parallel


Récupère le statut d'un fichier

  • « eio_set_min_parallel
  • eio_statvfs »
  • PHP Manual
  • Fonctions Eio
  • Récupère le statut d'un fichier

eio_stat

(PECL eio >= 0.0.1dev)

eio_stat — Récupère le statut d'un fichier

Description

resource eio_stat ( string $path , int $pri , callable $callback [, mixed $data = NULL ] )

eio_stat() retourne les informations de statut d'un fichier dans l'argument result de la fonction de rappel callback

Liste de paramètres

path

Le chemin vers le fichier

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_stat() retourne une ressource demandée en cas de succès, ou FALSE si une erreur survient. En cas de succès, l'argument result de la fonction de rappel callback recevra les données sous la forme d'un tableau.

Exemples

Exemple #1 Exemple avec eio_stat()

<?php
$tmp_filename = "eio-file.tmp";
touch($tmp_filename);

function my_res_cb($data, $result) {
    var_dump($data);
    var_dump($result);
}

function my_open_cb($data, $result) {
    eio_close($result);
    eio_event_loop();

    @unlink($data);
}

eio_stat($tmp_filename, EIO_PRI_DEFAULT, "my_res_cb", "eio_stat");
eio_open($tmp_filename, EIO_O_RDONLY, NULL,
 EIO_PRI_DEFAULT, "my_open_cb", $tmp_filename);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(8) "eio_stat"
array(12) {
  ["st_dev"]=>
  int(2050)
  ["st_ino"]=>
  int(2489173)
  ["st_mode"]=>
  int(33188)
  ["st_nlink"]=>
  int(1)
  ["st_uid"]=>
  int(1000)
  ["st_gid"]=>
  int(100)
  ["st_rdev"]=>
  int(0)
  ["st_blksize"]=>
  int(4096)
  ["st_blocks"]=>
  int(0)
  ["st_atime"]=>
  int(1318250380)
  ["st_mtime"]=>
  int(1318250380)
  ["st_ctime"]=>
  int(1318250380)
}

Voir aussi

  • eio_lstat
  • eio_fstat


Récupère les statistiques du système de fichiers

  • « eio_stat
  • eio_symlink »
  • PHP Manual
  • Fonctions Eio
  • Récupère les statistiques du système de fichiers

eio_statvfs

(PECL eio >= 0.0.1dev)

eio_statvfs — Récupère les statistiques du système de fichiers

Description

resource eio_statvfs ( string $path , int $pri , callable $callback [, mixed $data ] )

eio_statvfs() retourne les informations quant aux statistiques du système de fichiers dans l'argument result de la fonction de rappel callback

Liste de paramètres

path

Nom du chemin d'un fichier contenu dans le système de fichiers monté

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_statvfs() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient. En cas de succès, l'argument result de la fonction de rappel callback recevra les données sous la forme d'un tableau.

Exemples

Exemple #1 Exemple avec eio_statvfs()

<?php
$tmp_filename = '/tmp/eio-file.tmp';
touch($tmp_filename);

function my_statvfs_callback($data, $result) {
    var_dump($data);
    var_dump($result);

 @unlink($data);
}

eio_statvfs($tmp_filename, EIO_PRI_DEFAULT, "my_statvfs_callback", $tmp_filename);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(17) "/tmp/eio-file.tmp"
array(11) {
  ["f_bsize"]=>
  int(4096)
  ["f_frsize"]=>
  int(4096)
  ["f_blocks"]=>
  int(262144)
  ["f_bfree"]=>
  int(262111)
  ["f_bavail"]=>
  int(262111)
  ["f_files"]=>
  int(1540815)
  ["f_ffree"]=>
  int(1540743)
  ["f_favail"]=>
  int(1540743)
  ["f_fsid"]=>
  int(0)
  ["f_flag"]=>
  int(4102)
  ["f_namemax"]=>
  int(255)
}


Crée un lien symbolique

  • « eio_statvfs
  • eio_sync_file_range »
  • PHP Manual
  • Fonctions Eio
  • Crée un lien symbolique

eio_symlink

(PECL eio >= 0.0.1dev)

eio_symlink — Crée un lien symbolique

Description

resource eio_symlink ( string $path , string $new_path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_symlink() crée un lien symbolique new_path vers le chemin path.

Liste de paramètres

path

Chemin source

new_path

Chemin cible

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_symlink() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec eio_symlink()

<?php
$filename = dirname(__FILE__)."/symlink.dat";
touch($filename);
$link = dirname(__FILE__)."/symlink.link";

function my_symlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && is_link($data));

    if (!eio_readlink($data, EIO_PRI_DEFAULT, "my_readlink_cb", NULL)) {
        @unlink($link);
        @unlink($filename);
    }
}

function my_readlink_cb($data, $result) {
    global $filename, $link;
    var_dump($result);

    @unlink($link);
    @unlink($filename);
}

eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_cb", $link);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
string(16) "/tmp/symlink.dat"

Voir aussi

  • eio_link


Synchronise un segment de fichier avec le disque

  • « eio_symlink
  • eio_sync »
  • PHP Manual
  • Fonctions Eio
  • Synchronise un segment de fichier avec le disque

eio_sync_file_range

(PECL eio >= 0.0.1dev)

eio_sync_file_range — Synchronise un segment de fichier avec le disque

Description

resource eio_sync_file_range ( mixed $fd , int $offset , int $nbytes , int $flags [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_sync_file_range() permet un contrôle fin lors de la synchronisation d'un fichier ouvert spécifié par le descripteur de fichier fd avec le disque.

Liste de paramètres

fd

Le descripteur de fichier.

offset

La position de début d'intervalle à partir de laquelle la synchronisation doit s'effectuer.

nbytes

Spécifie la longueur de l'intervalle à synchroniser, en octets. Si nbytes vaut zéro, alors tous les octets depuis la position offset jusqu'à la fin du fichier seront synchronisés.

flags

Un masque. Peut inclure n'importe quelle valeur suivante : EIO_SYNC_FILE_RANGE_WAIT_BEFORE, EIO_SYNC_FILE_RANGE_WRITE, EIO_SYNC_FILE_RANGE_WAIT_AFTER. Ces drapeaux ont la même signification que leurs équivalents SYNC_FILE_RANGE_* (voir la page du manuel sur SYNC_FILE_RANGE(2)).

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_sync_file_range() retourne la ressource demandée, en cas de succès, ou FALSE si une erreur survient.


Valide le cache du buffer sur le disque

  • « eio_sync_file_range
  • eio_syncfs »
  • PHP Manual
  • Fonctions Eio
  • Valide le cache du buffer sur le disque

eio_sync

(PECL eio >= 0.0.1dev)

eio_sync — Valide le cache du buffer sur le disque

Description

resource eio_sync ([ int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

eio_sync() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.


Appel la fonction système Linux syncfs, si disponible

  • « eio_sync
  • eio_truncate »
  • PHP Manual
  • Fonctions Eio
  • Appel la fonction système Linux syncfs, si disponible

eio_syncfs

(PECL eio >= 0.0.1dev)

eio_syncfs — Appel la fonction système Linux syncfs, si disponible

Description

resource eio_syncfs ( mixed $fd [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

Liste de paramètres

fd

Le descripteur de fichier.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_syncfs() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.


Tronque un fichier

  • « eio_syncfs
  • eio_unlink »
  • PHP Manual
  • Fonctions Eio
  • Tronque un fichier

eio_truncate

(PECL eio >= 0.0.1dev)

eio_truncate — Tronque un fichier

Description

resource eio_truncate ( string $path [, int $offset = 0 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]] )

eio_truncate() tronque le fichier régulier nommé par le chemin path à une taille de length octets.

Liste de paramètres

path

Chemin vers le fichier.

offset

Position depuis le début du fichier.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_busy() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • eio_ftruncate


Supprime un nom et éventuellement, le fichier qui s'y réfère

  • « eio_truncate
  • eio_utime »
  • PHP Manual
  • Fonctions Eio
  • Supprime un nom et éventuellement, le fichier qui s'y réfère

eio_unlink

(PECL eio >= 0.0.1dev)

eio_unlink — Supprime un nom et éventuellement, le fichier qui s'y réfère

Description

resource eio_unlink ( string $path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_unlink() supprime un nom depuis le système de fichiers.

Liste de paramètres

path

Chemin vers le fichier.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_unlink() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.


Modifie l'heure du dernier accès et de la dernière modification d'un fichier

  • « eio_unlink
  • eio_write »
  • PHP Manual
  • Fonctions Eio
  • Modifie l'heure du dernier accès et de la dernière modification d'un fichier

eio_utime

(PECL eio >= 0.0.1dev)

eio_utime — Modifie l'heure du dernier accès et de la dernière modification d'un fichier

Description

resource eio_utime ( string $path , float $atime , float $mtime [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

Liste de paramètres

path

Chemin vers le fichier.

atime

Heure du dernier accès.

mtime

Heure de dernière modification.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_utime() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • eio_futime


Ecrit dans un fichier

  • « eio_utime
  • Ev »
  • PHP Manual
  • Fonctions Eio
  • Ecrit dans un fichier

eio_write

(PECL eio >= 0.0.1dev)

eio_write — Ecrit dans un fichier

Description

resource eio_write ( mixed $fd , string $str [, int $length = 0 [, int $offset = 0 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]]] )

eio_write() écrit length octets depuis le paramètre str à la position offset depuis le début du fichier.

Liste de paramètres

fd

Un flux, une ressource de socket, ou un descripteur de fichier, i.e. retourné par la fonction eio_open()

str

Chaîne de caractères source.

length

Nombre maximum d'octets à écrire.

offset

Position depuis le début du fichier.

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);

data

Variables arbitraires à passer à la fonction de rappel callback.

Valeurs de retour

eio_write() retourne la ressource demandée, ou FALSE si une erreur survient.

Voir aussi

  • eio_open


Ev

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Watchers
  • Les fonctions de rappel d'un Watcher
  • Modes d'opération périodique d'un watcher
  • Ev — La classe Ev
    • Ev::backend — Retourne un entier décrivant le backend utilisé par libev
    • Ev::depth — Retourne la profondeur de récursion
    • Ev::embeddableBackends — Retourne le jeu de backends qui sont encapsulés dans les autres boucles d'événements
    • Ev::feedSignal — Simule la réception d'un signal
    • Ev::feedSignalEvent — Simule un événement de signal dans la boucle par défaut
    • Ev::iteration — Retourne le nombre de fois que la boucle d'événement par défaut a été sollicitée pour un nouvel événement
    • Ev::now — Retourne le temps de démarrage de la dernière itération de la boucle d'événement par défaut
    • Ev::nowUpdate — Etablit le temps courant en demandant au kernel ; met à jour le temps retourné par Ev::now pendant l'exécution
    • Ev::recommendedBackends — Retourne un masque d'octets de backends recommandés pour la plateforme courante
    • Ev::resume — Reprend la boucle d'événement par défaut précédemment stoppée
    • Ev::run — Commence la vérification des événements et appelle les fonctions de rappels pour la boucle par défaut
    • Ev::sleep — Bloque le processus pendant un nombre de secondes fourni
    • Ev::stop — Arrête la boucle d'événements par défaut
    • Ev::supportedBackends — Retourne le jeu de backends supportés par la configuration courant de libev
    • Ev::suspend — Suspend la boucle par défaut d'événements
    • Ev::time — Retourne le temps courant depuis l'époque Unix
    • Ev::verify — Effectue des vérifications internes de consistence (pour le débogage)
  • EvCheck — La classe EvCheck
    • EvCheck::__construct — Construit l'objet d'observation EvCheck
    • EvCheck::createStopped — Crée une instance d'un observateur stoppé EvCheck
  • EvChild — La classe EvChild
    • EvChild::__construct — Construit l'objet d'observation EvChild
    • EvChild::createStopped — Crée une instance de l'observateur stoppé EvCheck
    • EvChild::set — Configure l'observateur
  • EvEmbed — La classe EvEmbed
    • EvEmbed::__construct — Construit un objet EvEmbed
    • EvEmbed::createStopped — Crée un objet EvEmbed watcher stoppé
    • EvEmbed::set — Configure le watcher
    • EvEmbed::sweep — Balaye, une seule fois, et de façon non bloquante la boucle interne
  • EvFork — La classe EvFork
    • EvFork::__construct — Construit l'objet observateur EvFork
    • EvFork::createStopped — Crée un instance arrêté de la classe de l'observateur EvFork
  • EvIdle — La classe EvIdle
    • EvIdle::__construct — Construit l'objet observateur EvIdle
    • EvIdle::createStopped — Crée une instance d'un objet observateur EvIdle
  • EvIo — La classe EvIo
    • EvIo::__construct — Construit un nouvel objet EvIo
    • EvIo::createStopped — Crée un objet d'observateur EvIo arrêté
    • EvIo::set — Configure l'observateur
  • EvLoop — La classe EvLoop
    • EvLoop::backend — Retourne un entier décrivant le backend utilisé par libev
    • EvLoop::check — Crée un objet EvCheck associé avec l'instance de la boucle d'événements courante
    • EvLoop::child — Crée un objet EvChild associé avec la boucle d'événements courante
    • EvLoop::__construct — Construit un objet de boucle d'événements
    • EvLoop::defaultLoop — Retourne ou crée la boucle d'événements par défaut
    • EvLoop::embed — Crée une instance de l'observateur EvEmbed associé avec l'objet de l'EvLoop courant
    • EvLoop::fork — Crée un objet EvFork watcher associé avec l'instance de la boucle de l'événement courant
    • EvLoop::idle — Crée un objet EvIdle watcher associé avec l'instance de la boucle de l'événement courant
    • EvLoop::invokePending — Invoque tous les watchers en attente pendant que leurs statuts de file d'attente ne soient réinitialisés
    • EvLoop::io — Crée un objet EvIo watcher associé avec l'instance de la boucle de l'événement courant
    • EvLoop::loopFork — Doit être appelé après un fork
    • EvLoop::now — Retourne le "event loop time" courant
    • EvLoop::nowUpdate — Etablit le temps courant en demandant au kernel, et mise à jour du temps retourné par EvLoop::now pendant l'exécution
    • EvLoop::periodic — Crée un objet EvPeriodic watcher associé avec l'instance de la boucle d'événement courant
    • EvLoop::prepare — Crée un objet EvPrepare watcher associé avec l'instance de la boucle d'événement courant
    • EvLoop::resume — Reprend une boucle d'évément précédemment stoppée
    • EvLoop::run — Commence à vérifier les événements et à appeler les fonctions de rappel de la boucle
    • EvLoop::signal — Crée un objet EvSignal watcher associé avec l'instance de la boucle d'événement courant
    • EvLoop::stat — Crée un objet EvStat watcher associé avec l'instance de la boucle d'événement courant
    • EvLoop::stop — Stoppe la boucle d'événement
    • EvLoop::suspend — Suspend la boucle
    • EvLoop::timer — Crée un objet EvTimer watcher associé avec l'instance de la boucle d'événement courant
    • EvLoop::verify — Effectue des vérifications de consistence interne (pour le débogage)
  • EvPeriodic — La classe EvPeriodic
    • EvPeriodic::again — Arrête et re-démarre le watcher périodique
    • EvPeriodic::at — Retourne le temps absolu auquel ce watcher sera appelé la prochaine fois
    • EvPeriodic::__construct — Construit un objet watcher EvPeriodic
    • EvPeriodic::createStopped — Crée un watcher EvPeriodic stoppé
    • EvPeriodic::set — Configure le watcher
  • EvPrepare — La classe EvPrepare
    • EvPrepare::__construct — Construit un objet de watcher EvPrepare
    • EvPrepare::createStopped — Crée une instance stoppée du watcher EvPrepare
  • EvSignal — La classe EvSignal
    • EvSignal::__construct — Construit un objet watcher EvPeriodic
    • EvSignal::createStopped — Crée un objet watcher EvSignal stoppé
    • EvSignal::set — Configure le watcher
  • EvStat — La classe EvStat
    • EvStat::attr — Retourne la valeur la plus récente détectée par Ev
    • EvStat::__construct — Construit un objet EvStat watcher
    • EvStat::createStopped — Crée un objet EvStat watcher stoppé
    • EvStat::prev — Retourne le jeu précédent retourné par EvStat::attr
    • EvStat::set — Configure le watcher
    • EvStat::stat — Initialise l'appel à stat
  • EvTimer — La classe EvTimer
    • EvTimer::again — Re-démarre le watcher Timer
    • EvTimer::__construct — Construit un objet EvTimer watcher
    • EvTimer::createStopped — Crée un objet EvTimer watcher stoppé
    • EvTimer::set — Configure le watcher
  • EvWatcher — La classe EvWatcher
    • EvWatcher::clear — Efface le statut d'attente de l'observateur
    • EvWatcher::__construct — Constructeur d'objet observateur
    • EvWatcher::feed — Alimente les revents fournis dans la boucle d'événements
    • EvWatcher::getLoop — Retourne la boucle responsable de l'observateur
    • EvWatcher::invoke — Invoque la fonction de rappel de l'observateur avec le masque de bits des événements reçus fournis
    • EvWatcher::keepalive — Garde la boucle active
    • EvWatcher::setCallback — Définit une nouvelle fonction de rappel pour le watcher
    • EvWatcher::start — Démarre le Watcher
    • EvWatcher::stop — Arrête le Watcher


Introduction

Cette extension fournit une interface à la bibliothèque » libev, une boucle d'événements hautement performante, écrite en C.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.

Libev est une boucle d'événements : elle enregistre un intérêt pour certains événements (comme un descripteur de fichier devenu lisible, ou encore une délai d'attente maximal qui survient), elle va gérer les sources de ces événements, et fournir le programme avec ces événements.

Pour réaliser cela, elle va prendre un contrôle plus ou moins total du processus (ou Thread) en exécutant un gestionnaire de boucle d'événements, puis va les communiquer via un mécanisme de fonction de rappel.

L'enregistrement d'intérêts pour certains événements se fait via des observateurs, puis, redonne la main à libev en démarrant ces observateurs.

Pour plus de détails, reportez-vous à la » documentation de libev.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

La bibliothèque libev est incluse dans cette extension. Vous n'avez pas à l'installer séparemment.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ev .


Constantes pré-définies

Cette extension ne définit aucune constante.

La plupart des constantes sont placées dans le squelette de la classe Ev.


Exemples

Exemple #1 Exemple de minuteurs

<?php
// Crée et démarre un minuteur qui se lance après 2 secondes
$w1 = new EvTimer(2, 0, function () {
    echo "2 secondes sont passées\n";
});

// Crée et lance un minuteur qui se lance après 2 secondes, et se répète toutes les secondes
// tant qu'on ne le stoppe pas manuellement
$w2 = new EvTimer(2, 1, function ($w) {
    echo "est appelé chaque seconde, et est lancé après 2 secondes\n";
    echo "itération = ", Ev::iteration(), PHP_EOL;

    // Stoppe le watcher après 5 itérations
    Ev::iteration() == 5 and $w->stop();
    // Stoppe le watcher si les prochains appels provoquent plus de 10 itérations
    Ev::iteration() >= 10 and $w->stop();
});

// Crée un minuteur stoppé. Il restera inactif tant que nous ne le démarrons pas nous même
$w_stopped = EvTimer::createStopped(10, 5, function($w) {
    echo "Fonction de rappel d'un minuteur créé arrêté\n";

    // Stoppe le watcher après 2 itérations
    Ev::iteration() >= 2 and $w->stop();
});

// Boucle tant que Ev::stop() n'est pas appelé ou que tous les watchers ne soient stoppés
Ev::run();

// Démarre et regarde si ca fonctionne
$w_stopped->start();
echo "Exécute une seule itération\n";
Ev::run(Ev::RUN_ONCE);

echo "Redémarre le second watcher et tente de gérer le même événement, mais ne bloque pas\n";
$w2->again();
Ev::run(Ev::RUN_NOWAIT);

$w = new EvTimer(10, 0, function() {});
echo "Exécution d'une boucle bloquante\n";
Ev::run();
echo "END\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

2 secondes sont passées
est appelé chaque seconde, et est lancé après 2 secondes
itération = 1
est appelé chaque seconde, et est lancé après 2 secondes
itération = 2
est appelé chaque seconde, et est lancé après 2 secondes
itération = 3
est appelé chaque seconde, et est lancé après 2 secondes
itération = 4
est appelé chaque seconde, et est lancé après 2 secondes
itération = 5
Exécute une seule itération
Fonction de rappel d'un minuteur créé arrêté
Redémarre le second watcher et tente de gérer le même événement, mais ne bloque pas
Exécution d'une boucle bloquante
est appelé chaque seconde, et est lancé après 2 secondes
itération = 8
est appelé chaque seconde, et est lancé après 2 secondes
itération = 9
est appelé chaque seconde, et est lancé après 2 secondes
itération = 10
END

Exemple #2 Minuteur périodique. Alerte toutes les 10.5 secondes

<?php
$w = new EvPeriodic(0., 10.5, NULL, function ($w, $revents) {
    echo time(), PHP_EOL;
});

Ev::run();
?>

Exemple #3 Minuteur périodique. Utilisation de la fonction de rappel de reprogrammation

<?php
// Alerte toutes les 10.5 secondes

function reschedule_cb ($watcher, $now) {
    return $now + (10.5. - fmod($now, 10.5));
}

$w = new EvPeriodic(0., 0., "reschedule_cb", function ($w, $revents) {
    echo time(), PHP_EOL;
});

Ev::run();
?>

Exemple #4 Minuteur périodique. Alerte toutes les 10.5 secondes, en commençant maintenant

<?php
// Alerte toutes les 10.5 secondes en commençant maintenant
$w = new EvPeriodic(fmod(Ev::now(), 10.5), 10.5, NULL, function ($w, $revents) {
    echo time(), PHP_EOL;
});

Ev::run();
?>

Exemple #5 Attend que STDIN devienne accessible en lecture

<?php
// Attend que STDIN devienne accessible en lecture
$w = new EvIo(STDIN, Ev::READ, function ($watcher, $revents) {
    echo "STDIN est accessible en lecture\n";
});

Ev::run(Ev::RUN_ONCE);
?>

Exemple #6 Utilisation de quelques I/O asynchrones pour accéder à un socket

<?php
/* Utilise quelques I/O asynchrone pour accéder à un socket */

// L'extension `sockets' va continuer d'historiser les alertes
// pour EINPROGRESS, EAGAIN/EWOULDBLOCK etc.
error_reporting(E_ERROR);

$e_nonblocking = array (/*EAGAIN or EWOULDBLOCK*/11, /*EINPROGRESS*/115);

// Récupère le port pour le service WWW
$service_port = getservbyname('www', 'tcp');

// Récupère l'adresse IP pour l'hôte cible
$address = gethostbyname('google.co.uk');

// Crée un socket TCP/IP
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === FALSE) {
    echo "Echec de socket_create() : raison : "
        .socket_strerror(socket_last_error()) . "\n";
}

// Défini le drapeau O_NONBLOCK
socket_set_nonblock($socket);

// On stoppe une fois le délai maximal d'attente atteint
$timeout_watcher = new EvTimer(10.0, 0., function () use ($socket) {
    socket_close($socket);
    Ev::stop(Ev::BREAK_ALL);
});

// Effectue un requête HEAD lorsque le socket est accessible en écriture
$write_watcher = new EvIo($socket, Ev::WRITE, function ($w)
    use ($socket, $timeout_watcher, $e_nonblocking)
{
    // Stoppe le watcher timeout
    $timeout_watcher->stop();
    // Stoppe le watcher write
    $w->stop();

    $in = "HEAD / HTTP/1.1\r\n";
    $in .= "Host: google.co.uk\r\n";
    $in .= "Connection: Close\r\n\r\n";

    if (!socket_write($socket, $in, strlen($in))) {
        trigger_error("Echec lors de l'écriture de $in dans le socket", E_USER_ERROR);
    }

    $read_watcher = new EvIo($socket, Ev::READ, function ($w, $re)
        use ($socket, $e_nonblocking)
    {
        // Le socket est accessible en lecture. recv() a reçu 20 octets en utilisant le mode non bloquant
        $ret = socket_recv($socket, $out, 20, MSG_DONTWAIT);

        if ($ret) {
            echo $out;
        } elseif ($ret === 0) {
            // Tout a été lu
            $w->stop();
            socket_close($socket);
            return;
        }

        // On attrappe EINPROGRESS, EAGAIN, ou EWOULDBLOCK
        if (in_array(socket_last_error(), $e_nonblocking)) {
            return;
        }

        $w->stop();
        socket_close($socket);
    });

    Ev::run();
});

$result = socket_connect($socket, $address, $service_port);

Ev::run();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

HTTP/1.1 301 Moved Permanently
Location: http://www.google.co.uk/
Content-Type: text/html; CHARSET=Windows-1252
Date: Sun, 23 Dec 2012 16:08:27 GMT
Expires: Tue, 22 Jan 2013 16:08:27 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Connection: close

Exemple #7 Encapsule une boucle dans une autre

<?php
/*
* Tente de récupérer une boucle d'événement encapsulable, et l'encapsule dans
* une boucle d'événements par défaut. Si c'est possible, on utilise la boucle
* par défaut. La boucle par défaut est stockée dans $loop_hi, alors que la boucle
* encapsulable est stockée dans $loop_lo( qui est $loop_hi dans le cas où
* aucune boucle encapsulable ne peut être utilisée).
*
* Exemple traduit en PHP de :
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop_hi = EvLoop::defaultLoop();
$loop_lo = NULL;
$embed   = NULL;

/*
* Regarde s'il y a une chance d'en récupérer une qui fonctionne
* (une valeur de drapeau à 0 signifie une auto-détection)
*/
$loop_lo = Ev::embeddableBackends() & Ev::recommendedBackends()
    ? new EvLoop(Ev::embeddableBackends() & Ev::recommendedBackends())
    : 0;

if ($loop_lo) {
    $embed = new EvEmbed($loop_lo, function () {});
} else {
    $loop_lo = $loop_hi;
}
?>

Exemple #8 Encapsule une boucle créée avec le backend kqueue dans la boucle par défaut

<?php
/*
* Vérifie si kqueue est disponible mais non recommandé, et crée un backend kqueue
* pour l'utiliser avec les sockets (ce qui fonctionne avec toutes les implentations kqueue).
* Stocke la boucle d'événements kqueue/uniquement-socket dans loop_socket. (On peut
* également utiliser EVFLAG_NOENV)
*
* Exemple repris depuis :
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop        = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed       = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
    if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
        $embed = new EvEmbed($loop);
    }
}

if (!$socket_loop) {
    $socket_loop = $loop;
}

// Maintenant, on peut utiliser $socket_loop pour toutes les sockets, et $loop pour tout le reste
?>

Exemple #9 Gestion du signal SIGTERM

<?php
$w = new EvSignal(SIGTERM, function ($watcher) {
    echo "On reçoit un SIGTERM\n";
    $watcher->stop();
});

Ev::run();
?>

Exemple #10 Surveillance des modifications dans /var/log/messages

<?php
// Utilisation d'un intervalle de mise à jour de 10 secondes.
$w = new EvStat("/var/log/messages", 8, function ($w) {
    echo "Modification dans /var/log/messages\n";

    $attr = $w->attr();

    if ($attr['nlink']) {
        printf("Taille courante : %ld\n", $attr['size']);
        printf("atime actuel : %ld\n", $attr['atime']);
        printf("mtime actuel : %ld\n", $attr['mtime']);
    } else {
        fprintf(STDERR, "Le fichier `messages` n'est plus ici !");
        $w->stop();
    }
});

Ev::run();
?>

Exemple #11 Surveillance des modifications dans /var/log/messages. On regarde les modifications avec une seconde de délai

<?php
$timer = EvTimer::createStopped(0., 1.02, function ($w) {
    $w->stop();

    $stat = $w->data;

    // 1 seconde après la dernière modification d'un fichier
    printf("Taille actuelle : %ld\n", $stat->attr()['size']);
});

$stat = new EvStat("/var/log/messages", 0., function () use ($timer) {
    // Réinitialise le watcher timer
    $timer->again();
});

$timer->data = $stat;

Ev::run();
?>

Exemple #12 Modification du statut d'un processus

<?php
$pid = pcntl_fork();

if ($pid == -1) {
    fprintf(STDERR, "pcntl_fork a échoué\n");
} elseif ($pid) {
    $w = new EvChild($pid, FALSE, function ($w, $revents) {
        $w->stop();

        printf("Le processus %d est sorti avec un statut %d\n", $w->rpid, $w->rstatus);
    });

    Ev::run();

    // Protection contre les Zombies
    pcntl_wait($status);
} else {
    // On fork le fils
    exit(2);
}
?>


Watchers

Un watcher est un objet créé pour enregistrer des particularités d'un événement. Par exemple, le code suivant attend que STDIN devienne accessible en lecture :

<?php
// Wait until STDIN is readable
$w = new EvIo(STDIN, Ev::READ, function ($watcher, $revents) {
 echo "STDIN est accessible en lecture\n";
});
Ev::run(Ev::RUN_ONCE);
?>

Tous les constructeurs des watchers démarrent automatiquement les watchers. La méthode createStopped stoppe un watcher (i.e. EvIo::createStopped()).

Notez qu'un watcher sera automatiquement stoppé lorsque l'objet watcher est détruit. Toutefois, les objets watchers retournés par les constructeurs ou les méthodes factorielles seront conservés.

Notez également que toutes les méthodes qui modifient les propriétés d'un watcher (set, priority etc.) stoppent et redémarrent automatiquement le watcher s'il est actif, ce qui signifie que les événements en attente seront perdus.

Voir aussi : Les fonctions de rappel des Watchers.


Les fonctions de rappel d'un Watcher

Tous les watchers peuvent être actifs (en attente d'événements) ou inactifs (en pause). Seuls les watchers actifs peuvent avoir leurs fonctions de rappel d'appelées. Toutes les fonctions de rappel seront appelées avec au moins deux arguments : watcher - le watcher, et revents, un masque d'événements reçus.

Les fonctions de rappel des watchers sont passées aux constructeurs des watchers (une classe dérivée de EvWatcher - EvCheck::__construct(), EvChild::__construct() etc.). Une fonction de rappel d'un watcher doit correspondre au prototype suivant :

void callback ([ object $watcher = NULL [, int $revents = NULL ]] )

watcher

L'instance du watcher (d'une classe étendant EvWatcher).

revents

Un watcher recevant les événements.

Chaque type de watcher a un octet d'associé dans revents, aussi, on peut utiliser la même fonction de rappel pour plusieurs watchers. Le masque d'événements est nommé après le type, i.e. EvChild (ou EvLoop::child()) définit EV::CHILD, EvPrepare (ou EvLoop::prepare()) définit Ev::PREPARE, EvPeriodic (ou EvLoop::periodic()) définit Ev::PERIODIC et ainsi de suite, avec comme exception les événements I/O (qui peuvent définir à la fois les octets Ev::READ et Ev::WRITE).


Modes d'opération périodique d'un watcher

Le watcher EvPeriodic fonctionne en différents modes suivant les paramètres offset, interval et reschedule_cb.

  1. Le mode Minuterie absolue. Dans ce mode, interval = 0, reschedule_cb = NULL. L'appel se fera à l'heure d'horloge offset et ne sera pas répété. Il ne sera pas ajusté lorsqu'un bon dans le temps surviendra, aussi, s'il doit être exécuté à January 1st 2014, alors il le sera lorsque l'heure système sera atteinte, ou dépassée.

  2. Le mode Minuterie avec répétition par intervalle. Dans ce mode, interval > 0, reschedule_cb = NULL ; le watcher sera automatiquement programmé pour se terminer à la prochaine durée offset + N * interval (pour un entier N) puis, se répète, indépendamment des sauts dans le temps.

    Il peut être utilisé pour créer des minuteries qui ne dérivent pas en respectant l'horloge système :

    <?php
    $hourly     = EvPeriodic(0, 3600, NULL, function () {
      echo     "une fois par heure\n";
    };
    ?>
    Cela ne signifie pas qu'il y aura toujours 3600 secondes entre chaque appel, mais seulement que la fonction de rappel sera appelée lorsque l'horloge système affichera une heure pleine (UTC).

    La classe EvPeriodic va tenter d'exécuter la fonction de rappel dans ce mode à la prochaine heure possible où time = offset (mod interval), indépendamment des sauts dans le temps.

  3. Le mode reprogrammation manuelle. Dans ce mode, reschedule_cb est un callable.

    interval et offset seront tous les deux ignorés. A la place, chaque fois que le watcher périodique est prévue, la fonction de rappel de reprogrammation (reschedule_cb) sera appelée avec le watcher d'abord, et le temps courant comme second argument.

    Cette fonction de rappel ne doit pas stopper ou détruire ce watcher périodique, ni un autre, et ne doit pas appeler de fonctions ou de méthodes de boucle d'événements. Pour le stopper, retournez 1e30 et stoppez le après. Un watcher EvPrepare peut être utilisé pour réaliser cette tâche.

    Il doit retourner la prochaine heure d'appel, en se basant sur la valeur du temps passé (la plus petite valeur de temps doit être supérieure ou égale au second argument). Il sera appelée, habituellement, juste après que la fonction de rappel ne soit lancée, mais possiblement à d'autres moments.

    Exemple #1 Using reschedule callback

    <?php
    // Chaque 10.5 secondes

    function reschedule_cb ($watcher, $now) {
       return     $now + (10.5. - fmod($now, 10.5));
    }

    $w = new EvPeriodic(0., 0., "reschedule_cb", function ($w, $revents) {
       echo     time(), PHP_EOL;
    });

    Ev::run();
    ?>


La classe Ev

(PECL ev >= 0.2.0)

Introduction

La classe Ev est un squelette fournissant l'accès à la boucle par défaut ainsi qu'à quelques opérations communes.

Synopsis de la classe

final Ev {
/* Constantes */
const integer FLAG_AUTO = 0 ;
const integer FLAG_NOENV = 16777216 ;
const integer FLAG_FORKCHECK = 33554432 ;
const integer FLAG_NOINOTIFY = 1048576 ;
const integer FLAG_SIGNALFD = 2097152 ;
const integer FLAG_NOSIGMASK = 4194304 ;
const integer RUN_NOWAIT = 1 ;
const integer RUN_ONCE = 2 ;
const integer BREAK_CANCEL = 0 ;
const integer BREAK_ONE = 1 ;
const integer BREAK_ALL = 2 ;
const integer MINPRI = -2 ;
const integer MAXPRI = 2 ;
const integer READ = 1 ;
const integer WRITE = 2 ;
const integer TIMER = 256 ;
const integer PERIODIC = 512 ;
const integer SIGNAL = 1024 ;
const integer CHILD = 2048 ;
const integer STAT = 4096 ;
const integer IDLE = 8192 ;
const integer PREPARE = 16384 ;
const integer CHECK = 32768 ;
const integer EMBED = 65536 ;
const integer CUSTOM = 16777216 ;
const integer ERROR = 2147483648 ;
const integer BACKEND_SELECT = 1 ;
const integer BACKEND_POLL = 2 ;
const integer BACKEND_EPOLL = 4 ;
const integer BACKEND_KQUEUE = 8 ;
const integer BACKEND_DEVPOLL = 16 ;
const integer BACKEND_PORT = 32 ;
const integer BACKEND_ALL = 63 ;
const integer BACKEND_MASK = 65535 ;
/* Méthodes */
final public static int backend ( void )
final public static int depth ( void )
final public static void embeddableBackends ( void )
final public static void feedSignal ( int $signum )
final public static void feedSignalEvent ( int $signum )
final public static int iteration ( void )
final public static double now ( void )
final public static void nowUpdate ( void )
final public static void recommendedBackends ( void )
final public static void resume ( void )
final public static void run ([ int $flags ] )
final public static void sleep ( double $seconds )
final public static void stop ([ int $how ] )
final public static void supportedBackends ( void )
final public static void suspend ( void )
final public static double time ( void )
final public static void verify ( void )
}

Constantes pré-définies

Drapeaux passés pour créer une boucle :

Ev::FLAG_AUTO

La valeur par défaut des drapeaux

Ev::FLAG_NOENV

Si ce drapeau est utilisé (ou que le programme exécute setuid ou setgid), libev ne va pas regarder la variable d'environnement LIBEV_FLAGS. Sinon (comportement par défaut), LIBEV_FLAGS va écraser complètement le drapeau s'il est trouvé. Utile pour des tests de performance et pour la recherche de bogues.

Ev::FLAG_FORKCHECK

Fait que libev va vérifier si un fork existe à chaque itération, au lieu d'appeler manuellement la méthode EvLoop::fork(). Ce mécanisme fonctionne en appelant getpid() à chaque itéraiton de la boucle, et ainsi, va ralentir la boucle d'événements qui possèdent beaucoup d'itérations, mais habituellement, ce ralentissement n'est pas notable. La configuration de ce drapeau ne peut pas être écrasée ou spécifiée dans la variable d'environnement LIBEV_FLAGS.

Ev::FLAG_NOINOTIFY

Lorsque ce drapeau est spécifié, libev ne va pas tenter d'utiliser l'API inotify pour ces watchers » ev_stat. Ce drapeau peut être utile pour conserver les descripteurs de fichers inotify, sachant que sinon, chaque boucle utilisant les watchers ev_stat va consommer un gestionnaire inotify.

Ev::FLAG_SIGNALFD

Lorsque ce drapeau est spécifié, libev va tenter d'utiliser l'API signalfd pour ces watchers » ev_signal (et » ev_child ). Cette API délivre les signaux de façon asynchrones, ce qui la rend plus rapide, et peut permettre la récupération des données des signaux en attente. Elle peut également simplifier la gestion des signaux avec les threads, sachant que les signaux sont des propriétés bloquées dans les threads. Signalfd ne sera pas utilisé par défaut.

Ev::FLAG_NOSIGMASK

Lorsque ce drapeau est spécifié, libev ne va pas modifier le masque du signal. Ceci signifie que vous devez vous assurer que les signaux sont déverrouillés avant de les recevoir.

Ce comportement est utile pour la gestion personalisée des signaux, ou la gestion des signaux uniquement dans des threads spécifiques.

Drapeaux à passer à Ev::run() ou à EvLoop::run()

Ev::RUN_NOWAIT

Signifie que la boucle d'événements va regarder si de nouveaux événements sont présents, va gérer ces nouveaux événements, et tous les événements spéciaux, mais ne va pas attendre et bloquer le processus dans le cas où il n'y a pas d'événement, et va retourner après une itération de la boucle. Il est parfois utile de palcer en file et gérer les nouveaux événements pendant de longs calculs, et ce, pour garder le programme actif.

Ev::RUN_ONCE

Signifie que la boucle d'événements va regarder si de nouveaux événements sont présents (et attendre, si nécessaire), et va les gérer, eux et les spéciaux. Elle va bloquer le processus tant qu'au moins un événement arrive (qui peut être un événement interne à libev, aussi, il n'est pas garantie qu'une fonction de rappel enregistrée par l'utilisateur ne soit appelée), et va retourner après une itération de la boucle.

Drapeaux passés à Ev::stop() ou à EvLoop::stop()

Ev::BREAK_CANCEL

Annule l'opération d'annulation.

Ev::BREAK_ONE

Retourne le plus profond appel à Ev::run() (ou EvLoop::run()).

Ev::BREAK_ALL

Retourne le plus proche appel à Ev::run() (ou EvLoop::run()).

Priorités de Watcher :

Ev::MINPRI

Priorité minimale autorisée pour un watcher.

Ev::MAXPRI

Priorité maximale autorisée pour un watcher.

Masques d'octets d'événements (reçus) :

Ev::READ

Le descripteur de fichier dans le watcher EvIo est devenu accessible en lecture.

Ev::WRITE

Le descripteur de fichier dans le watcher EvIo est devenu accessible en écriture.

Ev::TIMER

Le watcher EvTimer a atteint son délai maximal d'attente.

Ev::PERIODIC

Le watcher EvPeriodic a atteint son délai maximal d'attente.

Ev::SIGNAL

Un signal spécifié dans EvSignal::__construct() a été reçu.

Ev::CHILD

Le pid spécifié dans EvChild::__construct() a reçu une modification de statut.

Ev::STAT

Le chemin spécifié dans le watcher EvStat a modifié ses attributs.

Ev::IDLE

Le watcher EvIdle fonctionne lorsqu'il n'a aucune autre tâche à faire avec les autres watchers.

Ev::PREPARE

Tous les watchers EvPrepare sont appelés juste avant le démarrage de Ev::run(). Ainsi, les watchers EvPrepare sont les derniers watchers à être appelés avant le repos de la boucle d'événements, ou la mise en file des nouveaux événements.

Ev::CHECK

Tous les watchers EvCheck sont placés en file d'attente juste après que Ev::run() ait récupéré les nouveaux événements, mais avant, toutes les fonctions de rappel de tous les événements reçus sont placées en file d'attente. Ainsi, les watchers EvCheck seront appelés avant tout autre watcher de même priorité ou de priorité plus basse dans une itération de boucle d'événements.

Ev::EMBED

La boucle d'événements embarquée spécifié dans le watcher EvEmbed a besoin de toute l'attention.

Ev::CUSTOM

Pas encore envoyé (ou utilisé) par libev, mais peut être librement utilisé par les utilisateurs libev pour signaler les watchers (i.e. via la méthode EvWatcher::feed()).

Ev::ERROR

Une erreur inconnue est survenue, le watcher s'est arrêté. Ceci peut arriver car le watcher n'a pas pu être démarré proprement car libev a dépassé la mémoire allouée, une descripteur de fichier a été fermé, ou tout autre problème. Libev considère ceci comme des bogues de l'application. Voir aussi » l'anatomie d'un watcher

Drapeaux de Backend :

Ev::BACKEND_SELECT

select(2) backend

Ev::BACKEND_POLL

poll(2) backend

Ev::BACKEND_EPOLL

Backend epoll(7) spécifique à Linux pour, à la fois, les kernels avant et après 2.6.9.

Ev::BACKEND_KQUEUE

Backend kqueue utilisé sur la plupart des systèmes BSD. Le watcher EvEmbed peut être utilisé pour embarquer une boucle (avec le backend kqueue) dans une autre. Actuellement, une boucle peut tenter de créer une boucle d'événements avec le backend kqueue et l'utiliser uniquement pour les sockets.

Ev::BACKEND_DEVPOLL

Backend Solaris 8. Actuellement non implémenté.

Ev::BACKEND_PORT

Mécanisme de port d'événements Solaris avec un bon rendement.

Ev::BACKEND_ALL

Essai tous les backends (y compris les corrompus). Il n'est pas recommandé de l'utiliser explicitement. Les opérateurs de bits devraient être appliqués ici (i.e. Ev::BACKEND_ALL & ~ Ev::BACKEND_KQUEUE). Utilisez la méthode Ev::recommendedBackends() ou ne spécifiez aucun backend.

Ev::BACKEND_MASK

Pas un backend, mais un masque pour sélectionner tous les bits d'un backend depuis la valeur de flags pour représenter dans un masque n'importe quel backend (i.e. lors de la modification de la variable d'environnement LIBEV_FLAGS).

Note:

Pour la boucle par défaut, pendant la phase d'initialisation du module, Ev enregistre des appels à » ev_loop_fork via pthread_atfork (si disponible).

Note:

Il y a des méthodes fournissant l'accès à la boucle d'événements par défaut dans la classe Ev (i.e. Ev::iteration(), Ev::depth(), etc.) Pour les boucles personnalisées (créées avec EvLoop::__construct()), ces valeurs peuvent être accessibles via les propriétés et les méthodes correspondantes de la classe EvLoop.

L'instance de la boucle d'événements par défaut peut être récupérée via la méthode EvLoop::defaultLoop().

Sommaire

  • Ev::backend — Retourne un entier décrivant le backend utilisé par libev
  • Ev::depth — Retourne la profondeur de récursion
  • Ev::embeddableBackends — Retourne le jeu de backends qui sont encapsulés dans les autres boucles d'événements
  • Ev::feedSignal — Simule la réception d'un signal
  • Ev::feedSignalEvent — Simule un événement de signal dans la boucle par défaut
  • Ev::iteration — Retourne le nombre de fois que la boucle d'événement par défaut a été sollicitée pour un nouvel événement
  • Ev::now — Retourne le temps de démarrage de la dernière itération de la boucle d'événement par défaut
  • Ev::nowUpdate — Etablit le temps courant en demandant au kernel ; met à jour le temps retourné par Ev::now pendant l'exécution
  • Ev::recommendedBackends — Retourne un masque d'octets de backends recommandés pour la plateforme courante
  • Ev::resume — Reprend la boucle d'événement par défaut précédemment stoppée
  • Ev::run — Commence la vérification des événements et appelle les fonctions de rappels pour la boucle par défaut
  • Ev::sleep — Bloque le processus pendant un nombre de secondes fourni
  • Ev::stop — Arrête la boucle d'événements par défaut
  • Ev::supportedBackends — Retourne le jeu de backends supportés par la configuration courant de libev
  • Ev::suspend — Suspend la boucle par défaut d'événements
  • Ev::time — Retourne le temps courant depuis l'époque Unix
  • Ev::verify — Effectue des vérifications internes de consistence (pour le débogage)


Retourne un entier décrivant le backend utilisé par libev

  • « Ev
  • Ev::depth »
  • PHP Manual
  • Ev
  • Retourne un entier décrivant le backend utilisé par libev

Ev::backend

(PECL ev >= 0.2.0)

Ev::backend — Retourne un entier décrivant le backend utilisé par libev

Description

final public static int Ev::backend ( void )

Retourne un entier décrivant le backend utilisé par libev. Voir les drapeaux de Backend.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier (masque d'octets) décrivant le backend utilisé par libev.

Voir aussi

  • EvEmbed
  • Ev::embeddableBackends() - Retourne le jeu de backends qui sont encapsulés dans les autres boucles d'événements
  • Ev::recommendedBackends() - Retourne un masque d'octets de backends recommandés pour la plateforme courante
  • Ev::supportedBackends() - Retourne le jeu de backends supportés par la configuration courant de libev
  • Les drapeaux de Backend


Retourne la profondeur de récursion

  • « Ev::backend
  • Ev::embeddableBackends »
  • PHP Manual
  • Ev
  • Retourne la profondeur de récursion

Ev::depth

(PECL ev >= 0.2.0)

Ev::depth — Retourne la profondeur de récursion

Description

final public static int Ev::depth ( void )

Le nombre de fois où la méthode Ev::run() est entrée, moins le nombre de fois où la méthode Ev::run() est sortie normalement, en d'autres termes, la profondeur de récursion. En dehors de Ev::run(), ce nombre vaut 0. Dans une fonction de rappel, ce nombre vaut 1, tant que la méthode Ev::run() est invoquée récursivement (ou depuis un autre thread), auquel cas, il sera supérieur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

ev_depth() retourne la profondeur de récursion de la boucle par défaut.

Voir aussi

  • Ev::iteration() - Retourne le nombre de fois que la boucle d'événement par défaut a été sollicitée pour un nouvel événement


Retourne le jeu de backends qui sont encapsulés dans les autres boucles d'événements

  • « Ev::depth
  • Ev::feedSignal »
  • PHP Manual
  • Ev
  • Retourne le jeu de backends qui sont encapsulés dans les autres boucles d'événements

Ev::embeddableBackends

(PECL ev >= 0.2.0)

Ev::embeddableBackends — Retourne le jeu de backends qui sont encapsulés dans les autres boucles d'événements

Description

final public static void Ev::embeddableBackends ( void )

Retourne le jeu de backends qui sont encapsulés dans les autres boucles d'événements.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un masque d'octets qui peut contenir les drapeaux de backend combinés avec l'opérateur OR.

Exemples

Exemple #1 Encapsule une boucle créée avec le backend kqueue dans la boucle par défaut

<?php
/*
* Vérifie si kqueue est disponible et crée un backend kqueue
* pour l'utiliser avec des sockets (qui fonctionne habituellement avec n'importe quelle
* implémentation de kqueue).
* Stocke la boucle d'événement kqueue/socket-uniquement dans loop_socket.
* (utilisation optionnelle de EVFLAG_NOENV)
*
* Exemple issue de :
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop        = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed       = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
 if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
  $embed = new EvEmbed($loop);
 }
}

if (!$socket_loop) {
 $socket_loop = $loop;
}

// Maintenant, on utilise $socket_loop pour tous les sockets, et $loop pour tout le reste
?>

Voir aussi

  • EvEmbed
  • Ev::recommendedBackends() - Retourne un masque d'octets de backends recommandés pour la plateforme courante
  • Ev::supportedBackends() - Retourne le jeu de backends supportés par la configuration courant de libev
  • Les drapeaux de Backend
  • Les exemples


Simule la réception d'un signal

  • « Ev::embeddableBackends
  • Ev::feedSignalEvent »
  • PHP Manual
  • Ev
  • Simule la réception d'un signal

Ev::feedSignal

(PECL ev >= 0.2.0)

Ev::feedSignal — Simule la réception d'un signal

Description

final public static void Ev::feedSignal ( int $signum )

Simule la réception d'un signal. Il est sécurisé d'appeler cette fonction à n'importe quel moment, depuis n'importe quel contexte, y compris depuis un gestionnaire de signaux, ou depuis un thread aléatoire. Sa principale utilisation est de personnaliser le gestionnaire de signaux dans le processus.

Contrairement à la méthode Ev::feedSignalEvent(), cette méthode fonctionne suivant la boucle qui a enregistré le signal.

Liste de paramètres

signum

Numéro du signal. Voir la page man de signal(7) pour plus de détails. Vous pouvez utiliser les constantes exportées par l'extension pcntl.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Ev::feedSignalEvent() - Simule un événement de signal dans la boucle par défaut


Simule un événement de signal dans la boucle par défaut

  • « Ev::feedSignal
  • Ev::iteration »
  • PHP Manual
  • Ev
  • Simule un événement de signal dans la boucle par défaut

Ev::feedSignalEvent

(No version information available, might only be in Git)

Ev::feedSignalEvent — Simule un événement de signal dans la boucle par défaut

Description

final public static void Ev::feedSignalEvent ( int $signum )

Simule un événement de signal dans la boucle par défaut. Ev va réagir à cet appel comme si le signal spécifié par le paramètre signal était survenu.

Liste de paramètres

signum

Numéro du signal. Voir la page man de signal(7) pour plus de détails. Voir aussi les constantes exportées par l'extension pcntl.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Ev::feedSignal() - Simule la réception d'un signal


Retourne le nombre de fois que la boucle d'événement par défaut a été sollicitée pour un nouvel événement

  • « Ev::feedSignalEvent
  • Ev::now »
  • PHP Manual
  • Ev
  • Retourne le nombre de fois que la boucle d'événement par défaut a été sollicitée pour un nouvel événement

Ev::iteration

(PECL ev >= 0.2.0)

Ev::iteration — Retourne le nombre de fois que la boucle d'événement par défaut a été sollicitée pour un nouvel événement

Description

final public static int Ev::iteration ( void )

Retourne le nombre de fois que la boucle d'événement par défaut a été sollicitée pour un nouvel événement. Peut être utile comme compteur de génération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de sollicitation de la boucle d'événement par défaut.

Voir aussi

  • Ev::depth() - Retourne la profondeur de récursion


Retourne le temps de démarrage de la dernière itération de la boucle d'événement par défaut

  • « Ev::iteration
  • Ev::nowUpdate »
  • PHP Manual
  • Ev
  • Retourne le temps de démarrage de la dernière itération de la boucle d'événement par défaut

Ev::now

(PECL ev >= 0.2.0)

Ev::now — Retourne le temps de démarrage de la dernière itération de la boucle d'événement par défaut

Description

final public static double Ev::now ( void )

Retourne le temps de démarrage de la dernière itération de la boucle d'événement par défaut. C'est le temps sur lequel les timers (EvTimer et EvPeriodic) se basent, et s'y référer est souvent plus rapide que d'appeler la méthode Ev::time().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de secondes représentant le temps de démarrage de la dernière itération de la boucle d'événement par défaut.

Voir aussi

  • Ev::nowUpdate() - Etablit le temps courant en demandant au kernel ; met à jour le temps retourné par Ev::now pendant l'exécution


Etablit le temps courant en demandant au kernel ; met à jour le temps retourné par Ev::now pendant l'exécution

  • « Ev::now
  • Ev::recommendedBackends »
  • PHP Manual
  • Ev
  • Etablit le temps courant en demandant au kernel ; met à jour le temps retourné par Ev::now pendant l'exécution

Ev::nowUpdate

(PECL ev >= 0.2.0)

Ev::nowUpdate — Etablit le temps courant en demandant au kernel ; met à jour le temps retourné par Ev::now pendant l'exécution

Description

final public static void Ev::nowUpdate ( void )

Etablit le temps courant en demandant au kernel ; met à jour le temps retourné par la méthode Ev::now() pendant l'exécution. Ceci est une opération couteuse, et est habituellement effectuée automatiquement dans la méthode Ev::run().

Cette méthode est rarement utile, mais lorsque des fonctions de rappel d'événement s'exécutent pendant très longtemps sans entrer dans une boucle d'événement, mettre à jour libev avec le temps courant est une bonne idée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Ev::now() - Retourne le temps de démarrage de la dernière itération de la boucle d'événement par défaut


Retourne un masque d'octets de backends recommandés pour la plateforme courante

  • « Ev::nowUpdate
  • Ev::resume »
  • PHP Manual
  • Ev
  • Retourne un masque d'octets de backends recommandés pour la plateforme courante

Ev::recommendedBackends

(PECL ev >= 0.2.0)

Ev::recommendedBackends — Retourne un masque d'octets de backends recommandés pour la plateforme courante

Description

final public static void Ev::recommendedBackends ( void )

Retourne un jeu de tous les backends compilés dans ce binaire de libev, et également recommandée pour cette plateform, ce qui signifie qu'ils devraient fonctionner pour la plupart des types de descripteur de fichiers. Ce jeu est générallement plus petit que celui retourné par la fonction ev_supported_backends(), sachant que, par exemple, kqueue est cassé sur les systèmes BSD et ne sera pas auto-détecté tant qu'il n'est pas requis explicitement. C'est le jeu de backends que libev utilisera lorsqu'aucun ne sera demandé explicitement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un masque d'octets contenant les drapeaux des backends combinés en utilisant l'opérateur OR.

Exemples

Exemple #1 Encapsule une boucle dans une autre

<?php
/*
* Tente de récupérer une boucle d'événement interne, et de l'encapsuler dans
* la boucle d'événement par défaut.
* Si c'est possible, utilisation de la boucle par défaut.
* La boucle par défaut est stockée dans $loop_hi, alors que la boucle interne
* est stockée dans $loop_lo( qui est $loop_hi dans ce cas car aucune boucle interne
* ne peut être utilisée).
*
* Exemple icci de :
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop_hi = EvLoop::defaultLoop();
$loop_lo = NULL;
$embed   = NULL;

/*
* Regarde s'il y a une chance d'en récupérer une qui fonctionne
* (la valeur du drapeau à 0 signifie l'auto-détection)
*/
$loop_lo = Ev::embeddableBackends() & Ev::recommendedBackends()
 ? new EvLoop(Ev::embeddableBackends() & Ev::recommendedBackends())
 : 0;

if ($loop_lo) {
 $embed = new EvEmbed($loop_lo, function () {});
} else {
 $loop_lo = $loop_hi;
}
?>

Voir aussi

  • EvEmbed
  • Ev::embeddableBackends() - Retourne le jeu de backends qui sont encapsulés dans les autres boucles d'événements
  • Ev::supportedBackends() - Retourne le jeu de backends supportés par la configuration courant de libev
  • Les drapeaux de Backend
  • Les exemples


Reprend la boucle d'événement par défaut précédemment stoppée

  • « Ev::recommendedBackends
  • Ev::run »
  • PHP Manual
  • Ev
  • Reprend la boucle d'événement par défaut précédemment stoppée

Ev::resume

(PECL ev >= 0.2.0)

Ev::resume — Reprend la boucle d'événement par défaut précédemment stoppée

Description

final public static void Ev::resume ( void )

Les méthodes Ev::suspend() et Ev::resume() suspendent et reprennent une boucle.

Tous les watchers timer seront suspendus pendant la durée entre la suspension et la reprise et tous les watchers periodic seront reprogrammés (et perdront tous les événements qui seront survenus pendant le temps de cette suspension).

Après l'appel à la méthode Ev::suspend(), il n'est pas autorisé d'appeler une fonction sur la boucle fournie autre que la méthode Ev::resume(). De plus, il n'est pas autorisé d'appeler la méthode Ev::resume() sans un précédent appel à la méthode Ev::suspend().

L'appel à une suspension/reprise a comme effet de bord de mettre à jour le temps de la boucle d'événement (voir la méthode Ev::nowUpdate()).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Ev::suspend() - Suspend la boucle par défaut d'événements


Commence la vérification des événements et appelle les fonctions de rappels pour la boucle par défaut

  • « Ev::resume
  • Ev::sleep »
  • PHP Manual
  • Ev
  • Commence la vérification des événements et appelle les fonctions de rappels pour la boucle par défaut

Ev::run

(PECL ev >= 0.2.0)

Ev::run — Commence la vérification des événements et appelle les fonctions de rappels pour la boucle par défaut

Description

final public static void Ev::run ([ int $flags ] )

Commence la vérification des événements et appelle les fonctions de rappel pour la boucle par défaut. Retourne lorsqu'une fonction de rappel appelle la méthode Ev::stop(), ou lorsque les drapeaux sont différents de zéro (auquel cas, la valeur retournée sera TRUE), ou bien lorsqu'il n'y a plus d'observateur actif qui référence la boucle (EvWatcher::keepalive() vaut TRUE), auquel cas, la valeur retournée sera FALSE. La valeur retournée peut généralement être interprétée comme ceci : si TRUE, il y a encore des travaux à faire.

Liste de paramètres

flags

Le paramètre optionnel flags peut être une des valeurs suivantes :

Liste des valeurs possibles de flags
flags | Description
0 | Le comportement par défaut, décrit ci-dessus
Ev::RUN_ONCE | Bloque au moins un (mise en attente, mais ne boucle plus)
Ev::RUN_NOWAIT | Ne pas bloquer du tout (récupère/gère les événements mais n'attend pas)

Voir les constantes de drapeaux d'exécution.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Ev::stop() - Arrête la boucle d'événements par défaut
  • EvLoop::run() - Commence à vérifier les événements et à appeler les fonctions de rappel de la boucle


Bloque le processus pendant un nombre de secondes fourni

  • « Ev::run
  • Ev::stop »
  • PHP Manual
  • Ev
  • Bloque le processus pendant un nombre de secondes fourni

Ev::sleep

(PECL ev >= 0.2.0)

Ev::sleep — Bloque le processus pendant un nombre de secondes fourni

Description

final public static void Ev::sleep ( double $seconds )

Bloque le processus pendant un nombre de secondes fourni.

Liste de paramètres

seconds

Nombre de secondes

Valeurs de retour

Aucune valeur n'est retournée.


Arrête la boucle d'événements par défaut

  • « Ev::sleep
  • Ev::supportedBackends »
  • PHP Manual
  • Ev
  • Arrête la boucle d'événements par défaut

Ev::stop

(PECL ev >= 0.2.0)

Ev::stop — Arrête la boucle d'événements par défaut

Description

final public static void Ev::stop ([ int $how ] )

Arrête la boucle d'événements par défaut.

Liste de paramètres

how

Une constants parmie les constantes Ev::BREAK_*.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Ev::run() - Commence la vérification des événements et appelle les fonctions de rappels pour la boucle par défaut


Retourne le jeu de backends supportés par la configuration courant de libev

  • « Ev::stop
  • Ev::suspend »
  • PHP Manual
  • Ev
  • Retourne le jeu de backends supportés par la configuration courant de libev

Ev::supportedBackends

(PECL ev >= 0.2.0)

Ev::supportedBackends — Retourne le jeu de backends supportés par la configuration courant de libev

Description

final public static void Ev::supportedBackends ( void )

Retourne le jeu de backends supportés par la configuration courant de libev.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un masque d'octets qui peut contenir les drapeaux de backend combinés en utilisant l'opérateur OR.

Exemples

Exemple #1 Boucle embarqué créé avec le backend kqueue dans la boucle par défaut

<?php
/*
* Vérifie si kqueue est disponible (mais non recommandé) et crée un backend kqueue
* pour l'utiliser avec des sockets (ce qui fonctionne avec n'importe quelle implémentation
* kqueue).
* Stocke la boucle d'événements kqueue (utilisable uniquement via des sockets)
* dans loop_socket. (utilisation optionnelle de EVFLAG_NOENV)
*
* Exemple repris depuis l'URL suivante :
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop        = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed       = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
 if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
  $embed = new EvEmbed($loop);
 }
}

if (!$socket_loop) {
 $socket_loop = $loop;
}

// Maintenant, utilisation de $socket_loop pour toutes les sockets et $loop pour tout le reste
?>

Voir aussi

  • EvEmbed
  • Ev::recommendedBackends() - Retourne un masque d'octets de backends recommandés pour la plateforme courante
  • Ev::embeddableBackends() - Retourne le jeu de backends qui sont encapsulés dans les autres boucles d'événements
  • Les drapeaux de backend
  • Les exemples


Suspend la boucle par défaut d'événements

  • « Ev::supportedBackends
  • Ev::time »
  • PHP Manual
  • Ev
  • Suspend la boucle par défaut d'événements

Ev::suspend

(PECL ev >= 0.2.0)

Ev::suspend — Suspend la boucle par défaut d'événements

Description

final public static void Ev::suspend ( void )

Les méthodes Ev::suspend() et Ev::resume() suspendent et reprennent la boucle par défaut.

Tous les minuteurs des observateurs seront mis en suspend entre une suspension et une reprise, et tous les observateurs périodiques seront remis à jour (aussi, tous les événements survenus pendant cette suspension seront perdus).

Après un appel à la méthode Ev::suspend(), iil n'est pas autorisé d'appeler une fonction sur la boucle fournie autre que la méthode Ev::resume(). De même, il n'est pas autorisé d'appeler la méthode Ev::resume() sans un précédent appel à la méthode Ev::suspend().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Ev::resume() - Reprend la boucle d'événement par défaut précédemment stoppée


Retourne le temps courant depuis l'époque Unix

  • « Ev::suspend
  • Ev::verify »
  • PHP Manual
  • Ev
  • Retourne le temps courant depuis l'époque Unix

Ev::time

(PECL ev >= 0.2.0)

Ev::time — Retourne le temps courant depuis l'époque Unix

Description

final public static double Ev::time ( void )

Retourne le temps courant depuis l'époque Unix. Vous devriez plutôt utiliser la méthode Ev::now().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le temps courant, en nombre de secondes, depuis l'époque Unix.

Voir aussi

  • Ev::now() - Retourne le temps de démarrage de la dernière itération de la boucle d'événement par défaut


Effectue des vérifications internes de consistence (pour le débogage)

  • « Ev::time
  • EvCheck »
  • PHP Manual
  • Ev
  • Effectue des vérifications internes de consistence (pour le débogage)

Ev::verify

(PECL ev >= 0.2.0)

Ev::verify — Effectue des vérifications internes de consistence (pour le débogage)

Description

final public static void Ev::verify ( void )

Effectue des vérifications internes de consistence (pour le débogage de libev) et met fin au programme si une structure de données corrompue a été trouvée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


La classe EvCheck

(PECL ev >= 0.2.0)

Introduction

Les observateurs EvPrepare et EvCheck sont habituellement utilisés ensemble. L'observateur EvPrepare sera appelé avant les blocs du processus, alors que l'observateur EvCheck sera appelé après.

Il n'est pas autorisé d'appeler la méthode EvLoop::run() ou une méthode/fonction similaire qui entre dans la boucle de l'événement courante depuis soit l'observateur EvPrepare, soit l'observateur EvCheck. Toutefois, cela est possible pour toutes les autres boucles que la courante. La cause de cela est qu'il n'est pas nécessaire de vérifier la récursion dans ces observateurs, i.e. la séquence suivante sera toujours : EvPrepare -> blocage -> EvCheck, aussi, avoir un observateur pour chacun n'est pas utile, sachant qu'ils seront toujours appelés ensemble lors de l'appel au blocage.

Le but primaire est d'intégrer d'autres mécanismes d'événements dans la bibliothèque libev, avec une utilisation avancée. Ils peuvent être utilisés, par exemple, pour surveiller les modifications de variables, implémenter des observateurs personnalisés, intégrer net-snmp ou une bibliothèque supplémentaire, et bien plus encore. Ils peuvent être aussi utiles pour mettre en cache des données, et vouloir les afficher après le blocage.

Il est recommandé de fournir une priorité haute à EvCheck (Ev::MAXPRI) afin de s'assurer qu'il sera exécuté avant tout autre observateur de la file (à contrario, peu importe pour l'observateur EvPrepare).

De plus, les observateurs EvCheck ne doivent pas activer/alimenter des événements. Bien que libev supporte cela, ils peuvent être exécutés avant que les autres observateurs EvCheck ne terminent leur travaux.

Synopsis de la classe

EvCheck extends EvWatcher {
/* Propriétés héritées */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Méthodes */
public __construct ( callable $callback [, mixed $data [, int $priority ]] )
final public static object createStopped ( string $callback [, string $data [, string $priority ]] )
/* Méthodes héritées */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Sommaire

  • EvCheck::__construct — Construit l'objet d'observation EvCheck
  • EvCheck::createStopped — Crée une instance d'un observateur stoppé EvCheck


Construit l'objet d'observation EvCheck

  • « EvCheck
  • EvCheck::createStopped »
  • PHP Manual
  • EvCheck
  • Construit l'objet d'observation EvCheck

EvCheck::__construct

(PECL ev >= 0.2.0)

EvCheck::__construct — Construit l'objet d'observation EvCheck

Description

public EvCheck::__construct ( callable $callback [, mixed $data [, int $priority ]] )

Construit l'objet d'observation EvCheck.

Liste de paramètres

callback

Voir les fonctions de rappel des observations.

data

Données personnalisées associées avec l'observateur.

priority

Priorité de l'observateur

Valeurs de retour

Retourne un objet EvCheck en cas de succès.

Voir aussi

  • EvPrepare
  • EvLoop::check() - Crée un objet EvCheck associé avec l'instance de la boucle d'événements courante


Crée une instance d'un observateur stoppé EvCheck

  • « EvCheck::__construct
  • EvChild »
  • PHP Manual
  • EvCheck
  • Crée une instance d'un observateur stoppé EvCheck

EvCheck::createStopped

(PECL ev >= 0.2.0)

EvCheck::createStopped — Crée une instance d'un observateur stoppé EvCheck

Description

final public static object EvCheck::createStopped ( string $callback [, string $data [, string $priority ]] )

Crée une instance d'un observateur stoppé EvCheck.

Liste de paramètres

callback

Voir les fonctions de rappel des observateurs.

data

Données personnalisées à associer avec l'observateur.

priority

Priorité de l'observateur

Valeurs de retour

Retourne l'objet EvCheck en cas de succès.

Voir aussi

  • EvPrepare


La classe EvChild

(PECL ev >= 0.2.0)

Introduction

Les watchers EvChild sont lancés lorsque le processus recoit un SIGCHLD en réponse à des modifications de statut de fils (typiquement, lorsqu'un fils meurt ou sort). Il est permis d'installer un watcher EvChild après que le fils n'ait été forké (ce qui implique qu'il a du déjà exister), tant que la boucle d'événements n'a pas débutée (ou continué depuis un watcher), i.e. forker puis, enregistrer immédiatement un watcher pour le fils est la bonne méthode, mais forker et enregistrer un watcher après quelques itérations de la boucle d'événements ou dans la prochaine invocation de la fonction de rappel n'est pas la bonne méthode.

Il est seulement autorisé d'enregistrer des watchers EvChild dans la boucle par défaut.

Synopsis de la classe

EvChild extends EvWatcher {
/* Propriétés */
public $pid ;
public $rpid ;
public $rstatus ;
/* Propriétés héritées */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Méthodes */
public __construct ( int $pid , bool $trace , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static object createStopped ( int $pid , bool $trace , callable $callback [, mixed $data [, int $priority ]] )
public void set ( int $pid , bool $trace )
/* Méthodes héritées */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Propriétés

pid

Lecture seule. L'ID du processus relatif aux watchers, ou 0 signifiant tous les IDs de processus.

rpid

Lecture seule. L'ID du processus qui a détecté une modification de statut.

rstatus

Lecture seule. Le statut de sortie du processus causé par rpid.

Sommaire

  • EvChild::__construct — Construit l'objet d'observation EvChild
  • EvChild::createStopped — Crée une instance de l'observateur stoppé EvCheck
  • EvChild::set — Configure l'observateur


Construit l'objet d'observation EvChild

  • « EvChild
  • EvChild::createStopped »
  • PHP Manual
  • EvChild
  • Construit l'objet d'observation EvChild

EvChild::__construct

(PECL ev >= 0.2.0)

EvChild::__construct — Construit l'objet d'observation EvChild

Description

public EvChild::__construct ( int $pid , bool $trace , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Construit l'objet d'observateur EvChild.

Appelle la fonction de rappel lorsqu'une modification de statut d'un processus dont l'ID pid (ou de tout PID s'il vaut 0) a été reçue (une modification de statut survient lorsque le processus se termine ou est tué, ou lorsque le paramètre trace vaut TRUE, lorsque le processus est stoppé ou continué). En d'autres termes, lorsque le processus reçoit un SIGCHLD, Ev va récupérer tous les status de sortie/d'attente pour tous les fils modifiés/zombies et va appeler la fonction de rappel.

Il est valide d'installer un observateur sur le fils après qu'un EvChild ne soit sorti, mais avant que la boucle d'événement n'est démarrée sa prochaine itération. Par exemple, d'abord, appelez fork, puis le nouveau processus fils peut sortie, et uniquement là, un observateur EvChild est installé sur le parent pour le nouveau PID.

Vous pourrez accéder aux statuts de sortie/de traçage ainsi qu'aux pid en utilisant les propriétés rstatus et rpid de l'objet d'observation.

Le nombre d'observateurs PID par PID n'est pas limité. Ils seront tous appelés.

La méthode EvChild::createStopped() ne démarre (active) pas le nouvel observateur créé.

Liste de paramètres

pid

Attend les modifications de statut des processus PID (ou tout processus si PID vaut 0).

trace

Si vaut FALSE, n'active l'observateur que lorsque le processus se termine. Sinon (TRUE), active l'observateur lorsque le processus est stoppé ou continué.

callback

Voir les fonctions de rappel des observateurs.

data

Données personnalisées associées avec l'observateur.

priority

Fonctions de rappel de l'observateur

Valeurs de retour

Retourne un objet EvChild en cas de succès.

Voir aussi

  • EvLoop::child() - Crée un objet EvChild associé avec la boucle d'événements courante


Crée une instance de l'observateur stoppé EvCheck

  • « EvChild::__construct
  • EvChild::set »
  • PHP Manual
  • EvChild
  • Crée une instance de l'observateur stoppé EvCheck

EvChild::createStopped

(PECL ev >= 0.2.0)

EvChild::createStopped — Crée une instance de l'observateur stoppé EvCheck

Description

final public static object EvChild::createStopped ( int $pid , bool $trace , callable $callback [, mixed $data [, int $priority ]] )

Identique à EvChild::__construct(), mais ne démarre pas automatiquement l'observateur.

Liste de paramètres

pid

Identique à celui utilisé pour EvChild::__construct()

trace

Identique à celui utilisé pour EvChild::__construct()

callback

Voir les fonctions de rappel des observateurs.

data

Données personnalisées associées avec l'observateur.

priority

Priorité de l'observateur

Valeurs de retour

Voir aussi

  • EvChild::__construct() - Construit l'objet d'observation EvChild
  • EvLoop::child() - Crée un objet EvChild associé avec la boucle d'événements courante


Configure l'observateur

  • « EvChild::createStopped
  • EvEmbed »
  • PHP Manual
  • EvChild
  • Configure l'observateur

EvChild::set

(PECL ev >= 0.2.0)

EvChild::set — Configure l'observateur

Description

public void EvChild::set ( int $pid , bool $trace )

Liste de paramètres

pid

Identique à celui utilisé pour EvChild::__construct()

trace

Identique à celui utilisé pour EvChild::__construct()

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EvChild::__construct() - Construit l'objet d'observation EvChild


La classe EvEmbed

(PECL ev >= 0.2.0)

Introduction

Utilisé pour intégrer une boucle d'événements dans une autre.

Synopsis de la classe

EvEmbed extends EvWatcher {
/* Propriétés */
public $embed ;
/* Méthodes */
public __construct ( object $other [, callable $callback [, mixed $data [, int $priority ]]] )
final public static void createStopped ( object $other [, callable $callback [, mixed $data [, int $priority ]]] )
public void set ( object $other )
public void sweep ( void )
/* Méthodes héritées */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Propriétés

is_active

data

is_pending

priority

embed

Sommaire

  • EvEmbed::__construct — Construit un objet EvEmbed
  • EvEmbed::createStopped — Crée un objet EvEmbed watcher stoppé
  • EvEmbed::set — Configure le watcher
  • EvEmbed::sweep — Balaye, une seule fois, et de façon non bloquante la boucle interne


Construit un objet EvEmbed

  • « EvEmbed
  • EvEmbed::createStopped »
  • PHP Manual
  • EvEmbed
  • Construit un objet EvEmbed

EvEmbed::__construct

(PECL ev >= 0.2.0)

EvEmbed::__construct — Construit un objet EvEmbed

Description

public EvEmbed::__construct ( object $other [, callable $callback [, mixed $data [, int $priority ]]] )

Il s'agit d'un type de watcher avancé qui permet d'intégrer une boucle d'événement dans une autre (actuellement, seuls les événements IO sont supportés dans la boucle interne, les autres types de watcher ne doit pas être utilisés).

Voir la » documentation libev pour plus de détails.

Ce watcher est le plus utile sous les systèmes BSD où kqueue n'est pas utilisé, pour être capable de gérer un grand nombre de sockers. Voir l'exemple ci-dessous.

Liste de paramètres

other

Une instance de EvLoop. La boucle à intégrer ; elle doit être encapsulable (voir la méthode Ev::embeddableBackends()).

callback

Voir les fonctions de rappel des Watcher.

data

Données personnalisées à associer avec le watcher.

priority

Priorité du Watcher

Valeurs de retour

Retourne un objet EvEmbed en cas de succès.

Exemples

Exemple #1 Encapsulage d'une boucle créée avec le gestionnaire kqueue dans la boucle par défaut

<?php
/*
 * Vérifie si kqueue est disponible et crée un gestionnaire kqueue
 * pour l'utiliser avec les sockets (qui fonctionne habituellement avec n'importe quelle implémentation
 * de kqueue. Stocke la boucle d'événement kqueue/socket seulement, dans loop_socket.
 * (optionnellement, utilisation de EVFLAG_NOENV)
 *
 * Exemple issue de
 * http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
 */
$loop        = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed       = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
    if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
        $embed = new EvEmbed($loop);
    }
}

if (!$socket_loop) {
    $socket_loop = $loop;
}

// Maintenant, on utilise $socket_loop pour tous les sockets, et $loop poour tout le reste
?>

Voir aussi

  • Ev::embeddableBackends() - Retourne le jeu de backends qui sont encapsulés dans les autres boucles d'événements


Crée un objet EvEmbed watcher stoppé

  • « EvEmbed::__construct
  • EvEmbed::set »
  • PHP Manual
  • EvEmbed
  • Crée un objet EvEmbed watcher stoppé

EvEmbed::createStopped

(PECL ev >= 0.2.0)

EvEmbed::createStopped — Crée un objet EvEmbed watcher stoppé

Description

final public static void EvEmbed::createStopped ( object $other [, callable $callback [, mixed $data [, int $priority ]]] )

Identique à la méthode EvEmbed::__construct(), mais ne démarre pas automatiquement le watcher.

Liste de paramètres

other

Identique au paramètre de la méthode EvEmbed::__construct()

callback

Voir les fonctions de rappel des Watcher.

data

Données personnalisées à associer avec le watcher.

priority

Priorité du Watcher

Valeurs de retour

Retourne un objet EvEmbed stoppé en cas de succès.

Voir aussi

  • EvEmbed::__construct() - Construit un objet EvEmbed
  • Ev::embeddableBackends() - Retourne le jeu de backends qui sont encapsulés dans les autres boucles d'événements


Configure le watcher

  • « EvEmbed::createStopped
  • EvEmbed::sweep »
  • PHP Manual
  • EvEmbed
  • Configure le watcher

EvEmbed::set

(PECL ev >= 0.2.0)

EvEmbed::set — Configure le watcher

Description

public void EvEmbed::set ( object $other )

Configure le watcher pour utiliser l'objet other de la boucle d'événement.

Liste de paramètres

other

Identique au paramètre de la méthode EvEmbed::__construct()

Valeurs de retour

Aucune valeur n'est retournée.


Balaye, une seule fois, et de façon non bloquante la boucle interne

  • « EvEmbed::set
  • EvFork »
  • PHP Manual
  • EvEmbed
  • Balaye, une seule fois, et de façon non bloquante la boucle interne

EvEmbed::sweep

(PECL ev >= 0.2.0)

EvEmbed::sweep — Balaye, une seule fois, et de façon non bloquante la boucle interne

Description

public void EvEmbed::sweep ( void )

Balaye, une seule fois, et de façon non bloquante la boucle interne. Fonctionne de la même façon que ce qui suit, mais dans une façon plus appropriée pour les boucles internes :

<?php
$other->start(Ev::RUN_NOWAIT);
?>

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EvWatcher::start() - Démarre le Watcher


La classe EvFork

(PECL ev >= 0.2.0)

Introduction

Les watchers Fork sont appelés lorsqu'un fork() a été détecté (habituellement, parce que signalé à libev en appelant la méthode EvLoop::fork()). L'invocation est faite avant que la boucle d'événements ne bloque le suivant et avant l'appel des watchers EvCheck, et seulement dans le fils après le fork. Notez que si quelqu'un appelle EvLoop::fork() dans le mauvais processus, le gestionnaire de fork sera appelé également.

Synopsis de la classe

EvFork extends EvWatcher {
/* Propriétés héritées */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Méthodes */
public __construct ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static object createStopped ( string $callback [, string $data [, string $priority ]] )
/* Méthodes héritées */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Sommaire

  • EvFork::__construct — Construit l'objet observateur EvFork
  • EvFork::createStopped — Crée un instance arrêté de la classe de l'observateur EvFork


Construit l'objet observateur EvFork

  • « EvFork
  • EvFork::createStopped »
  • PHP Manual
  • EvFork
  • Construit l'objet observateur EvFork

EvFork::__construct

(PECL ev >= 0.2.0)

EvFork::__construct — Construit l'objet observateur EvFork

Description

public EvFork::__construct ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Construit l'objet observateur EvFork et démarre l'observateur automatiquement.

Liste de paramètres

callback

Voir aussi les fonctions de rappels pour les observateurs.

data

Données personalisées associées à l'observateur.

priority

Priorité de l'observateur

Valeurs de retour

Retourne l'objet EvFork en cas de succès.

Voir aussi

  • EvLoop::fork() - Crée un objet EvFork watcher associé avec l'instance de la boucle de l'événement courant
  • EvCheck


Crée un instance arrêté de la classe de l'observateur EvFork

  • « EvFork::__construct
  • EvIdle »
  • PHP Manual
  • EvFork
  • Crée un instance arrêté de la classe de l'observateur EvFork

EvFork::createStopped

(PECL ev >= 0.2.0)

EvFork::createStopped — Crée un instance arrêté de la classe de l'observateur EvFork

Description

final public static object EvFork::createStopped ( string $callback [, string $data [, string $priority ]] )

Identique à la méthode EvFork::__construct() mais ne démarre pas automatiquement l'observateur.

Liste de paramètres

callback

Voir les fonctions de rappel d'observateurs.

data

Données personalisées associées avec l'observateur.

priority

Priorité d'observateur

Valeurs de retour

Retourne un objet EvFork (arrêté) en cas de succès.

Voir aussi

  • EvFork::__construct() - Construit l'objet observateur EvFork


La classe EvIdle

(PECL ev >= 0.2.0)

Introduction

Les watchers EvIdle lancent les événements lorsqu'aucun autre événement ayant la même (ou supérieure) priorité n'est en attente (EvPrepare, EvCheck et d'autres watchers EvIdle ne comptent pas recevoir d'événements).

Aussi, tant que le processus est en cours de gestion des sockets ou des délais d'attente maximal (ou même de signaux) de même priorité (ou de priorité supérieure), il ne sera pas lancé. Mais lorsque le processus est au ralenti (ou que seuls des watchers ayant une priorité basse ne sont en attente), les watchers EvIdle seront appelés une fois par itération de la boucle d'événements - et ce, tant qu'ils ne sont pas stoppés, ou que le processus ne recoive plus d'événements et devienne ainsi occupé à gérer les travaux ayant une priorité supérieure.

En plus de maintenir le processus non bloquant (ce qui est utile parfois), les watchers EvIdle sont un bon endroit pour réaliser des "travaux en pseudo-arrière plan", ou remettre des travaux après que la boucle d'événements n'ait gérée les événements exceptionnels.

L'effet le plus notable est que, tant que des watchers idle sont actifs, le processus ne va pas bloquer lors de l'attente de nouveaux événements.

Synopsis de la classe

EvIdle extends EvWatcher {
/* Propriétés héritées */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Méthodes */
public __construct ( callable $callback [, mixed $data [, int $priority ]] )
final public static object createStopped ( string $callback [, mixed $data [, int $priority ]] )
/* Méthodes héritées */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Sommaire

  • EvIdle::__construct — Construit l'objet observateur EvIdle
  • EvIdle::createStopped — Crée une instance d'un objet observateur EvIdle


Construit l'objet observateur EvIdle

  • « EvIdle
  • EvIdle::createStopped »
  • PHP Manual
  • EvIdle
  • Construit l'objet observateur EvIdle

EvIdle::__construct

(PECL ev >= 0.2.0)

EvIdle::__construct — Construit l'objet observateur EvIdle

Description

public EvIdle::__construct ( callable $callback [, mixed $data [, int $priority ]] )

Construit l'objet observateur EvIdle et démarre automatiquement l'observateur.

Liste de paramètres

callback

Voir les fonctions de rappel des observateurs.

data

Données personnalisées associées avec l'observateur.

priority

Priorité de l'observateur

Valeurs de retour

Returne un objet EvIdle en cas de succès.

Voir aussi

  • EvIdle::createStopped() - Crée une instance d'un objet observateur EvIdle
  • EvLoop::idle() - Crée un objet EvIdle watcher associé avec l'instance de la boucle de l'événement courant


Crée une instance d'un objet observateur EvIdle

  • « EvIdle::__construct
  • EvIo »
  • PHP Manual
  • EvIdle
  • Crée une instance d'un objet observateur EvIdle

EvIdle::createStopped

(PECL ev >= 0.2.0)

EvIdle::createStopped — Crée une instance d'un objet observateur EvIdle

Description

final public static object EvIdle::createStopped ( string $callback [, mixed $data [, int $priority ]] )

Identique à la méthode EvIdle::__construct() mais ne démarre pas automatiquement l'observateur.

Liste de paramètres

callback

Voir les fonctions de rappel des observateurs.

data

Données personnalisées avec l'observateur.

priority

Priorité de l'observateur

Valeurs de retour

Retourne un objet EvIdle en cas de succès.

Voir aussi

  • EvIdle::__construct() - Construit l'objet observateur EvIdle
  • EvLoop::idle() - Crée un objet EvIdle watcher associé avec l'instance de la boucle de l'événement courant


La classe EvIo

(PECL ev >= 0.2.0)

Introduction

Les watchers EvIo vérifient si un descripteur de fichier (ou un socket, ou un flux pouvant être transtypé en descripteur de fichier numérique) est accessible en lecture ou en écriture à chaque itération de la boucle d'événements, ou, plus précisemment, lorsque la lecture ne va pas bloquer le processus, et lorsque l'écriture va permettre d'écrire des données. Ce comportement est appelé niveau de lancement car les événements sont gardés tant que la condition persiste. Pour stopper la réception d'événements, stoppez seulement le watcher.

Le nombre d'événements de lecture/écriture des watchers par fd est illimité. Le fait de définir tous les descripteurs de fichiers en mode non-bloquant est généralement une bonne idée (mais ce n'est pas requis).

Une autre chose à savoir, c'est qu'il est très facile de recevoir de fausses notifications de système prêt à la lecture, i.e. la fonction de rappel peut être appelée avec Ev::READ mais une sous-séquence read() peut bloquer en raison du fait qu'il n'y a pas de données. Il est très simple de se retrouver dans cette situation. Aussi, il est recommandé de toujours utiliser des I/O non bloquants : un read() supplémentaire retournant EAGAIN (ou similaire) est plus préférable à un programme qui attend l'arrivée de données.

Si pour une raison ou une autre, il est impossible d'exécuter le fd en mode non-bloquant, alors, séparemment, re-testez si le descripteur de fichier est réellement prêt. Quelques utilisateurs utilisent en plus SIGALRM et un minuteur d'intervalle, juste pour s'assurer qu'aucun blocage infini ne soit présent.

Il est recommandé de toujours utiliser le mode non bloquant.

Synopsis de la classe

EvIo extends EvWatcher {
/* Propriétés */
public $fd ;
public $events ;
/* Propriétés héritées */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Méthodes */
public __construct ( mixed $fd , int $events , callable $callback [, mixed $data [, int $priority ]] )
final public static EvIo createStopped ( mixed $fd , int $events , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void set ( mixed $fd , int $events )
/* Méthodes héritées */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Propriétés

fd

events

Sommaire

  • EvIo::__construct — Construit un nouvel objet EvIo
  • EvIo::createStopped — Crée un objet d'observateur EvIo arrêté
  • EvIo::set — Configure l'observateur


Construit un nouvel objet EvIo

  • « EvIo
  • EvIo::createStopped »
  • PHP Manual
  • EvIo
  • Construit un nouvel objet EvIo

EvIo::__construct

(PECL ev >= 0.2.0)

EvIo::__construct — Construit un nouvel objet EvIo

Description

public EvIo::__construct ( mixed $fd , int $events , callable $callback [, mixed $data [, int $priority ]] )

Construit un nouvel objet EvIo et démarre l'observateur automatiquement.

Liste de paramètres

fd

Peut être un flux ouvert avec la fonction fopen() ou toutes fonctions similaires, descripteurs de fichiers ou sockets.

events

Ev::READ et/ou Ev::WRITE. Voir les masques d'octets.

callback

Voir les fonctions de rappels des observateurs.

data

Données personalisées associées avec l'observateur.

priority

Priorité de l'observateur

Valeurs de retour

Retourne un objet EvIo en cas de succès.

Voir aussi

  • EvIo::createStopped() - Crée un objet d'observateur EvIo arrêté
  • EvLoop::io() - Crée un objet EvIo watcher associé avec l'instance de la boucle de l'événement courant


Crée un objet d'observateur EvIo arrêté

  • « EvIo::__construct
  • EvIo::set »
  • PHP Manual
  • EvIo
  • Crée un objet d'observateur EvIo arrêté

EvIo::createStopped

(PECL ev >= 0.2.0)

EvIo::createStopped — Crée un objet d'observateur EvIo arrêté

Description

final public static EvIo EvIo::createStopped ( mixed $fd , int $events , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Identique à la méthode EvIo::__construct() mais ne démarre pas automatiquement l'observateur.

Liste de paramètres

fd

Identique à la méthode EvIo::__construct()

events

Identique à la méthode EvIo::__construct()

callback

Voir les fonctions de rappels des observateurs.

data

Données personalisées associées avec l'observateur.

priority

Priorité de l'observateur

Valeurs de retour

Retourne un objet EvIo en cas de succès.

Voir aussi

  • EvIo::__construct() - Construit un nouvel objet EvIo
  • EvLoop::io() - Crée un objet EvIo watcher associé avec l'instance de la boucle de l'événement courant


Configure l'observateur

  • « EvIo::createStopped
  • EvLoop »
  • PHP Manual
  • EvIo
  • Configure l'observateur

EvIo::set

(PECL ev >= 0.2.0)

EvIo::set — Configure l'observateur

Description

public void EvIo::set ( mixed $fd , int $events )

Configure l'observateur EvIo.

Liste de paramètres

fd

Identique à la méthode EvIo::__construct()

events

Identique à la méthode EvIo::__construct()

Valeurs de retour

Aucune valeur n'est retournée.


La classe EvLoop

(PECL ev >= 0.2.0)

Introduction

Représente une boucle d'événements qui est toujours distincte de la boucle par défaut. Contrairement à la boucle par défaut, elle ne peut pas gérer les watchers EvChild.

Lorsqu'on utilise les threads, nous devons créer une boucle par thread, et utiliser la boucle par défaut dans le thread parent.

La boucle d'événements par défaut est initialisée automatiquement par Ev. Elle est accessible via les méthodes de la classe Ev ou via la méthode EvLoop::defaultLoop().

Synopsis de la classe

final EvLoop {
/* Propriétés */
public $data ;
public $backend ;
public $is_default_loop ;
public $iteration ;
public $pending ;
public $io_interval ;
public $timeout_interval ;
public $depth ;
/* Méthodes */
public int backend ( void )
final public EvCheck check ( string $callback [, string $data [, string $priority ]] )
final public EvChild child ( string $pid , string $trace , string $callback [, string $data [, string $priority ]] )
public __construct ([ int $flags [, mixed $data = NULL [, double $io_interval = 0.0 [, double $timeout_interval = 0.0 ]]]] )
public static EvLoop defaultLoop ([ int $flags = Ev::FLAG_AUTO [, mixed $data = NULL [, double $io_interval = 0. [, double $timeout_interval = 0. ]]]] )
final public EvEmbed embed ( string $other [, string $callback [, string $data [, string $priority ]]] )
final public EvFork fork ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public EvIdle idle ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void invokePending ( void )
final public EvIo io ( mixed $fd , int $events , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void loopFork ( void )
public double now ( void )
public void nowUpdate ( void )
final public EvPeriodic periodic ( double $offset , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public EvPrepare prepare ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void resume ( void )
public void run ([ int $flags = 0 ] )
final public EvSignal signal ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public EvStat stat ( string $path , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void stop ([ int $how ] )
public void suspend ( void )
final public EvTimer timer ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void verify ( void )
}

Propriétés

data

Données personnalisées à attacher à la boucle

backend

Lecture seule. Les drapeaux du backend indiquant le backend d'événements en cours d'utilisation.

is_default_loop

Lecture seule. TRUE si c'est la boucle d'événements par défaut.

iteration

Le compteur d'itération courant de la boucle. Voir la méthode Ev::iteration().

pending

Le nombre de watchers en attente. 0 indique qu'il n'y a aucun watcher en attente.

io_interval

Une valeur haute pour io_interval permet à libev de passer plus de temps à collecter les événements EvIo, ainsi, plus d'événements peuvent être gérés par itération, mais cela va augmenter la latence. Les délais d'attente maximum (pour à la fois EvPeriodic et EvTimer) ne seront pas affectés. Le fait de définir cette option à une valeur différente de zéro va introduire un appel à sleep() supplémentaire dans la plupart des itérations de la boucle. Le temps de pause assure que libev ne va pas interroger EvIo plus d'une fois pendant cet intervalle, en moyenne. La plupart des programmes peuvent avoir des effets bénéfiques en définissant io_interval à une valeur proche de 0.1, ce qui est en général suffisant pour les serveurs interactifs (et non destinés aux jeux). Il n'y a généralement aucun sens à définir cette valeur à une valeur inférieure à 0.01, sachant que l'on s'approche de la granularité au niveau des durées de la plupart des systèmes.

Voir aussi les » fonctions contrôlant les boucles d'événements.

timeout_interval

Une valeur haute pour timeout_interval permet à libev de passer plus de temps à collecter les délais maximales d'attente, mais à pour conséquence d'accroitre la latence, le stress et l'inexactitude (la fonction de rappel du watcher sera appelée plus tard). Les watchers EvIo ne seront pas affectés. Le fait de définir cette valeur à une valeur non nulle ne va introduire aucune surcharge supplémentaire à libev. Voir aussi les » fonctions contrôlant les boucles d'évéments.

depth

La profondeur de la récursion. Voir la méthode Ev::depth().

Sommaire

  • EvLoop::backend — Retourne un entier décrivant le backend utilisé par libev
  • EvLoop::check — Crée un objet EvCheck associé avec l'instance de la boucle d'événements courante
  • EvLoop::child — Crée un objet EvChild associé avec la boucle d'événements courante
  • EvLoop::__construct — Construit un objet de boucle d'événements
  • EvLoop::defaultLoop — Retourne ou crée la boucle d'événements par défaut
  • EvLoop::embed — Crée une instance de l'observateur EvEmbed associé avec l'objet de l'EvLoop courant
  • EvLoop::fork — Crée un objet EvFork watcher associé avec l'instance de la boucle de l'événement courant
  • EvLoop::idle — Crée un objet EvIdle watcher associé avec l'instance de la boucle de l'événement courant
  • EvLoop::invokePending — Invoque tous les watchers en attente pendant que leurs statuts de file d'attente ne soient réinitialisés
  • EvLoop::io — Crée un objet EvIo watcher associé avec l'instance de la boucle de l'événement courant
  • EvLoop::loopFork — Doit être appelé après un fork
  • EvLoop::now — Retourne le "event loop time" courant
  • EvLoop::nowUpdate — Etablit le temps courant en demandant au kernel, et mise à jour du temps retourné par EvLoop::now pendant l'exécution
  • EvLoop::periodic — Crée un objet EvPeriodic watcher associé avec l'instance de la boucle d'événement courant
  • EvLoop::prepare — Crée un objet EvPrepare watcher associé avec l'instance de la boucle d'événement courant
  • EvLoop::resume — Reprend une boucle d'évément précédemment stoppée
  • EvLoop::run — Commence à vérifier les événements et à appeler les fonctions de rappel de la boucle
  • EvLoop::signal — Crée un objet EvSignal watcher associé avec l'instance de la boucle d'événement courant
  • EvLoop::stat — Crée un objet EvStat watcher associé avec l'instance de la boucle d'événement courant
  • EvLoop::stop — Stoppe la boucle d'événement
  • EvLoop::suspend — Suspend la boucle
  • EvLoop::timer — Crée un objet EvTimer watcher associé avec l'instance de la boucle d'événement courant
  • EvLoop::verify — Effectue des vérifications de consistence interne (pour le débogage)


Retourne un entier décrivant le backend utilisé par libev

  • « EvLoop
  • EvLoop::check »
  • PHP Manual
  • EvLoop
  • Retourne un entier décrivant le backend utilisé par libev

EvLoop::backend

(PECL ev >= 0.2.0)

EvLoop::backend — Retourne un entier décrivant le backend utilisé par libev

Description

public int EvLoop::backend ( void )

Identique à la méthode Ev::backend(), mais pour l'instance de la boucle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier décrivant le backend utilisé par libev. Voir la méthode Ev::backend().

Voir aussi

  • Ev::backend() - Retourne un entier décrivant le backend utilisé par libev


Crée un objet EvCheck associé avec l'instance de la boucle d'événements courante

  • « EvLoop::backend
  • EvLoop::child »
  • PHP Manual
  • EvLoop
  • Crée un objet EvCheck associé avec l'instance de la boucle d'événements courante

EvLoop::check

(PECL ev >= 0.2.0)

EvLoop::check — Crée un objet EvCheck associé avec l'instance de la boucle d'événements courante

Description

final public EvCheck EvLoop::check ( string $callback [, string $data [, string $priority ]] )

Crée un objet EvCheck associé avec l'instance de la boucle d'événements courante.

Liste de paramètres

Tous les paramètres ont la même signification que pour la méthode EvCheck::__construct().

Valeurs de retour

Retourne un objet EvCheck object en cas de succès.

Voir aussi

  • EvCheck::__construct() - Construit l'objet d'observation EvCheck


Crée un objet EvChild associé avec la boucle d'événements courante

  • « EvLoop::check
  • EvLoop::__construct »
  • PHP Manual
  • EvLoop
  • Crée un objet EvChild associé avec la boucle d'événements courante

EvLoop::child

(PECL ev >= 0.2.0)

EvLoop::child — Crée un objet EvChild associé avec la boucle d'événements courante

Description

final public EvChild EvLoop::child ( string $pid , string $trace , string $callback [, string $data [, string $priority ]] )

Crée un objet EvChild associé avec la boucle d'événements courante.

Liste de paramètres

Tous les paramètres ont la même signification que pour la méthode EvChild::__construct().

Valeurs de retour

Retourne un objet EvChild en cas de succès.

Voir aussi

  • EvChild::__construct() - Construit l'objet d'observation EvChild


Construit un objet de boucle d'événements

  • « EvLoop::child
  • EvLoop::defaultLoop »
  • PHP Manual
  • EvLoop
  • Construit un objet de boucle d'événements

EvLoop::__construct

(PECL ev >= 0.2.0)

EvLoop::__construct — Construit un objet de boucle d'événements

Description

public EvLoop::__construct ([ int $flags [, mixed $data = NULL [, double $io_interval = 0.0 [, double $timeout_interval = 0.0 ]]]] )

Construit l'objet de boucle d'événements.

Liste de paramètres

flags

Un des drapeaux de boucle d'événements

data

Données personnalisées à associer avec la boucle.

io_interval

Voir la fonction io_interval

timeout_interval

Voir la fonction timeout_interval

Valeurs de retour

Retourne le nouvel objet EvLoop.

Voir aussi

  • EvLoop::defaultLoop() - Retourne ou crée la boucle d'événements par défaut


Retourne ou crée la boucle d'événements par défaut

  • « EvLoop::__construct
  • EvLoop::embed »
  • PHP Manual
  • EvLoop
  • Retourne ou crée la boucle d'événements par défaut

EvLoop::defaultLoop

(PECL ev >= 0.2.0)

EvLoop::defaultLoop — Retourne ou crée la boucle d'événements par défaut

Description

public static EvLoop EvLoop::defaultLoop ([ int $flags = Ev::FLAG_AUTO [, mixed $data = NULL [, double $io_interval = 0. [, double $timeout_interval = 0. ]]]] )

Si la boucle d'événements par défaut n'est pas créée, la méthode EvLoop::defaultLoop() la crée avec les paramètres spécifiés. Sinon, elle retournera l'instance de l'objet correspondant précédemment créé en ignorant tous les paramètres.

Liste de paramètres

flags

Un des drapeaux de boucle d'évéments

data

Données personnalisées à associer avec la boucle.

io_collect_interval

Voir la fonction io_interval

timeout_collect_interval

Voir la fonction timeout_interval

Valeurs de retour

Retourne l'objet EvLoop en cas de succès.

Voir aussi

  • EvLoop::__construct() - Construit un objet de boucle d'événements


Crée une instance de l'observateur EvEmbed associé avec l'objet de l'EvLoop courant

  • « EvLoop::defaultLoop
  • EvLoop::fork »
  • PHP Manual
  • EvLoop
  • Crée une instance de l'observateur EvEmbed associé avec l'objet de l'EvLoop courant

EvLoop::embed

(PECL ev >= 0.2.0)

EvLoop::embed — Crée une instance de l'observateur EvEmbed associé avec l'objet de l'EvLoop courant

Description

final public EvEmbed EvLoop::embed ( string $other [, string $callback [, string $data [, string $priority ]]] )

Crée une instance de l'observateur EvEmbed associé avec l'objet EvLoop courant.

Liste de paramètres

Tous les paramètres ont la même signification que pour la méthode EvEmbed::__construct().

Valeurs de retour

Retourne l'objet EvEmbed en cas de succès.

Voir aussi

  • EvEmbed::__construct() - Construit un objet EvEmbed


Crée un objet EvFork watcher associé avec l'instance de la boucle de l'événement courant

  • « EvLoop::embed
  • EvLoop::idle »
  • PHP Manual
  • EvLoop
  • Crée un objet EvFork watcher associé avec l'instance de la boucle de l'événement courant

EvLoop::fork

(PECL ev >= 0.2.0)

EvLoop::fork — Crée un objet EvFork watcher associé avec l'instance de la boucle de l'événement courant

Description

final public EvFork EvLoop::fork ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Crée un objet EvFork watcher associé avec l'instance de la boucle de l'événement courant

Liste de paramètres

Tous les paramètres ont la même signification que ceux de la méthode EvFork::__construct().

Valeurs de retour

Retourne l'objet EvFork en cas de succès.

Voir aussi

  • EvFork::__construct() - Construit l'objet observateur EvFork


Crée un objet EvIdle watcher associé avec l'instance de la boucle de l'événement courant

  • « EvLoop::fork
  • EvLoop::invokePending »
  • PHP Manual
  • EvLoop
  • Crée un objet EvIdle watcher associé avec l'instance de la boucle de l'événement courant

EvLoop::idle

(PECL ev >= 0.2.0)

EvLoop::idle — Crée un objet EvIdle watcher associé avec l'instance de la boucle de l'événement courant

Description

final public EvIdle EvLoop::idle ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Crée un objet EvIdle watcher associé avec l'instance de la boucle de l'événement courant

Liste de paramètres

Tous les paramètres ont la même signification que ceux de la méthode EvIdle::__construct()

Valeurs de retour

Retourne un objet EvIdle en cas de succès.

Voir aussi

  • EvIdle::__construct() - Construit l'objet observateur EvIdle


Invoque tous les watchers en attente pendant que leurs statuts de file d'attente ne soient réinitialisés

  • « EvLoop::idle
  • EvLoop::io »
  • PHP Manual
  • EvLoop
  • Invoque tous les watchers en attente pendant que leurs statuts de file d'attente ne soient réinitialisés

EvLoop::invokePending

(PECL ev >= 0.2.0)

EvLoop::invokePending — Invoque tous les watchers en attente pendant que leurs statuts de file d'attente ne soient réinitialisés

Description

public void EvLoop::invokePending ( void )

Invoque tous les watchers en attente pendant que leurs statuts de file d'attente ne soient réinitialisés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Crée un objet EvIo watcher associé avec l'instance de la boucle de l'événement courant

  • « EvLoop::invokePending
  • EvLoop::loopFork »
  • PHP Manual
  • EvLoop
  • Crée un objet EvIo watcher associé avec l'instance de la boucle de l'événement courant

EvLoop::io

(PECL ev >= 0.2.0)

EvLoop::io — Crée un objet EvIo watcher associé avec l'instance de la boucle de l'événement courant

Description

final public EvIo EvLoop::io ( mixed $fd , int $events , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Crée un objet EvIo watcher associé avec l'instance de la boucle de l'événement courant.

Liste de paramètres

Tous les paramètres ont la même signification que ceux de la méthode EvIo::__construct().

Valeurs de retour

Retourne un objet EvIo en cas de succès.

Voir aussi

  • EvIo::__construct() - Construit un nouvel objet EvIo


Doit être appelé après un fork

  • « EvLoop::io
  • EvLoop::now »
  • PHP Manual
  • EvLoop
  • Doit être appelé après un fork

EvLoop::loopFork

(PECL ev >= 0.2.0)

EvLoop::loopFork — Doit être appelé après un fork

Description

public void EvLoop::loopFork ( void )

Doit être appelé après un fork dans le fils, et avant d'entrer ou de continuer la boucle d'événement. Une alternative est d'utiliser la constante Ev::FLAG_FORKCHECK qui appèll cette fonction automatiquement, avec une perte de performance (référez-vous à la » documentation libev).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Retourne le "event loop time" courant

  • « EvLoop::loopFork
  • EvLoop::nowUpdate »
  • PHP Manual
  • EvLoop
  • Retourne le "event loop time" courant

EvLoop::now

(PECL ev >= 0.2.0)

EvLoop::now — Retourne le "event loop time" courant

Description

public double EvLoop::now ( void )

Retourne le "event loop time" courant, qui est la durée pendant laquelle la boucle d'événement reçoit des événements et démarre leurs anaylyses. Ce timestamp ne change pas tant que les fonctions de rappel sont en cours d'exécution, et c'est aussi le temps de base utilisé pour les timers relatifs. Vous pouvez le considérer comme le timestamp de l'événement en cours (ou plus exactement, celui utilisé par libev).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le timestamp de la boucle d'événement, en secondes.

Voir aussi

  • Ev::now() - Retourne le temps de démarrage de la dernière itération de la boucle d'événement par défaut


Etablit le temps courant en demandant au kernel, et mise à jour du temps retourné par EvLoop::now pendant l'exécution

  • « EvLoop::now
  • EvLoop::periodic »
  • PHP Manual
  • EvLoop
  • Etablit le temps courant en demandant au kernel, et mise à jour du temps retourné par EvLoop::now pendant l'exécution

EvLoop::nowUpdate

(PECL ev >= 0.2.0)

EvLoop::nowUpdate — Etablit le temps courant en demandant au kernel, et mise à jour du temps retourné par EvLoop::now pendant l'exécution

Description

public void EvLoop::nowUpdate ( void )

Etablit le temps courant en demandant au kernel, et mise à jour du temps retourné par EvLoop::now() pendant l'exécution. C'est une opération qui est couteuse en terme de performance et qui est habituellement exécutée automatiquement dans la méthode EvLoop::run().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EvLoop::now() - Retourne le "event loop time" courant
  • Ev::nowUpdate() - Etablit le temps courant en demandant au kernel ; met à jour le temps retourné par Ev::now pendant l'exécution


Crée un objet EvPeriodic watcher associé avec l'instance de la boucle d'événement courant

  • « EvLoop::nowUpdate
  • EvLoop::prepare »
  • PHP Manual
  • EvLoop
  • Crée un objet EvPeriodic watcher associé avec l'instance de la boucle d'événement courant

EvLoop::periodic

(PECL ev >= 0.2.0)

EvLoop::periodic — Crée un objet EvPeriodic watcher associé avec l'instance de la boucle d'événement courant

Description

final public EvPeriodic EvLoop::periodic ( double $offset , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Crée un objet EvPeriodic watcher associé avec l'instance de la boucle d'événement courant.

Liste de paramètres

Tous les paramètres ont la même signification que ceux de la méthode EvPeriodic::__construct().

Valeurs de retour

Retourne un objet EvPeriodic en cas de succès.

Voir aussi

  • EvPeriodic::__construct() - Construit un objet watcher EvPeriodic


Crée un objet EvPrepare watcher associé avec l'instance de la boucle d'événement courant

  • « EvLoop::periodic
  • EvLoop::resume »
  • PHP Manual
  • EvLoop
  • Crée un objet EvPrepare watcher associé avec l'instance de la boucle d'événement courant

EvLoop::prepare

(PECL ev >= 0.2.0)

EvLoop::prepare — Crée un objet EvPrepare watcher associé avec l'instance de la boucle d'événement courant

Description

final public EvPrepare EvLoop::prepare ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Crée un objet EvPrepare watcher associé avec l'instance de la boucle d'événement courant.

Liste de paramètres

Tous les paramètres ont la même signification que ceux de la méthode EvPrepare().

Valeurs de retour

Retourne un objet EvPrepare en cas de succès.

Voir aussi

  • EvPrepare::__construct() - Construit un objet de watcher EvPrepare


Reprend une boucle d'évément précédemment stoppée

  • « EvLoop::prepare
  • EvLoop::run »
  • PHP Manual
  • EvLoop
  • Reprend une boucle d'évément précédemment stoppée

EvLoop::resume

(PECL ev >= 0.2.0)

EvLoop::resume — Reprend une boucle d'évément précédemment stoppée

Description

public void EvLoop::resume ( void )

Les méthodes EvLoop::suspend() et EvLoop::resume() suspendent et reprennent une boucle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EvLoop::suspend() - Suspend la boucle
  • Ev::resume() - Reprend la boucle d'événement par défaut précédemment stoppée


Commence à vérifier les événements et à appeler les fonctions de rappel de la boucle

  • « EvLoop::resume
  • EvLoop::signal »
  • PHP Manual
  • EvLoop
  • Commence à vérifier les événements et à appeler les fonctions de rappel de la boucle

EvLoop::run

(PECL ev >= 0.2.0)

EvLoop::run — Commence à vérifier les événements et à appeler les fonctions de rappel de la boucle

Description

public void EvLoop::run ([ int $flags = 0 ] )

Commence à vérifier les événements et à appeler les fonctions de rappel pour la boucle d'événement courant. La méthode s'arrête lorsqu'une fonction de rappel appèle la méthode Ev::stop() ou que les drapeaux sont différents de zéro (auquel cas, la valeur retournée est TRUE) ou lorsqu'il ny' a aucun watcher actif qui référence la boucle (EvWatcher::keepalive() vaut TRUE), auqeul cas, la valeur retournée sera FALSE. La valeur retournée peut générallement être interprétée comme si TRUE, il y a encore des travaux à faire.

Liste de paramètres

flags

Le paramètre optionnel flags peut prendre une des valeurs suivantes :

Liste des valeurs possibles pour flags
flags | Description
0 | Le comportement par défaut, décrit ci-dessus
Ev::RUN_ONCE | Ne bloquer pas plus d'un événement (attend, mais ne boucle pas)
Ev::RUN_NOWAIT | Aucun blocage (récupère, gère les événements, mais n'attend pas)

Voir les constantes des drapeaux d'exécution.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EvLoop::stop() - Stoppe la boucle d'événement
  • Ev::run() - Commence la vérification des événements et appelle les fonctions de rappels pour la boucle par défaut


Crée un objet EvSignal watcher associé avec l'instance de la boucle d'événement courant

  • « EvLoop::run
  • EvLoop::stat »
  • PHP Manual
  • EvLoop
  • Crée un objet EvSignal watcher associé avec l'instance de la boucle d'événement courant

EvLoop::signal

(PECL ev >= 0.2.0)

EvLoop::signal — Crée un objet EvSignal watcher associé avec l'instance de la boucle d'événement courant

Description

final public EvSignal EvLoop::signal ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Crée un objet EvSignal watcher associé avec l'instance de la boucle d'événement courant.

Liste de paramètres

Tous les paramètres ont la même signification que ceux de la méthode EvSignal::__construct().

Valeurs de retour

Retourne un objet EvSignal en cas de succès.

Voir aussi

  • EvSignal::__construct() - Construit un objet watcher EvPeriodic


Crée un objet EvStat watcher associé avec l'instance de la boucle d'événement courant

  • « EvLoop::signal
  • EvLoop::stop »
  • PHP Manual
  • EvLoop
  • Crée un objet EvStat watcher associé avec l'instance de la boucle d'événement courant

EvLoop::stat

(PECL ev >= 0.2.0)

EvLoop::stat — Crée un objet EvStat watcher associé avec l'instance de la boucle d'événement courant

Description

final public EvStat EvLoop::stat ( string $path , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Crée un objet EvStat watcher associé avec l'instance de la boucle d'événement courant.

Liste de paramètres

Tous les paramètres ont la même signification que ceux de la méthode EvSignal::__construct().

Valeurs de retour

Retourne un objet EvStat en cas de succès.

Voir aussi

  • EvSignal::__construct() - Construit un objet watcher EvPeriodic


Stoppe la boucle d'événement

  • « EvLoop::stat
  • EvLoop::suspend »
  • PHP Manual
  • EvLoop
  • Stoppe la boucle d'événement

EvLoop::stop

(PECL ev >= 0.2.0)

EvLoop::stop — Stoppe la boucle d'événement

Description

public void EvLoop::stop ([ int $how ] )

Stoppe la boucle d'événement.

Liste de paramètres

how

Une constante Ev::BREAK_*.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EvLoop::run() - Commence à vérifier les événements et à appeler les fonctions de rappel de la boucle
  • Ev::stop() - Arrête la boucle d'événements par défaut


Suspend la boucle

  • « EvLoop::stop
  • EvLoop::timer »
  • PHP Manual
  • EvLoop
  • Suspend la boucle

EvLoop::suspend

(PECL ev >= 0.2.0)

EvLoop::suspend — Suspend la boucle

Description

public void EvLoop::suspend ( void )

Les méthodes EvLoop::suspend() et EvLoop::resume() suspendent et reprennent une boucle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EvLoop::resume() - Reprend une boucle d'évément précédemment stoppée
  • Ev::suspend() - Suspend la boucle par défaut d'événements


Crée un objet EvTimer watcher associé avec l'instance de la boucle d'événement courant

  • « EvLoop::suspend
  • EvLoop::verify »
  • PHP Manual
  • EvLoop
  • Crée un objet EvTimer watcher associé avec l'instance de la boucle d'événement courant

EvLoop::timer

(PECL ev >= 0.2.0)

EvLoop::timer — Crée un objet EvTimer watcher associé avec l'instance de la boucle d'événement courant

Description

final public EvTimer EvLoop::timer ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Crée un objet EvTimer watcher associé avec l'instance de la boucle d'événement courant.

Liste de paramètres

Tous les paramètres ont la même signification que ceux de la méthode EvTimer::__construct().

Valeurs de retour

Retourne l'objet EvTimer en cas de succès.

Voir aussi

  • EvTimer::__construct() - Construit un objet EvTimer watcher


Effectue des vérifications de consistence interne (pour le débogage)

  • « EvLoop::timer
  • EvPeriodic »
  • PHP Manual
  • EvLoop
  • Effectue des vérifications de consistence interne (pour le débogage)

EvLoop::verify

(PECL ev >= 0.2.0)

EvLoop::verify — Effectue des vérifications de consistence interne (pour le débogage)

Description

public void EvLoop::verify ( void )

Effectue des vérifications de consistence interne (pour le débogage de libev) et stoppe le programme si des structures de données corrompues sont trouvées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Ev::verify() - Effectue des vérifications internes de consistence (pour le débogage)


La classe EvPeriodic

(PECL ev >= 0.2.0)

Introduction

Les watchers périodiques sont des sortes de minuteurs, mais ils sont très polyvalents.

Contrairement à EvTimer, les watchers EvPeriodic ne sont pas basés sur un temps réel (ou un temps relatif, le temps physique qui passe), mais sur un temps d'horloge (temps absolu, calendaire, ou d'horloge). La différence est qu'un temps d'horloge peut être plus rapide ou plus lent qu'un temps réel, et les sauts dans le temps ne sont pas rares (i.e. lors d'un ajustement).

Un watcher EvPeriodic peut être configuré pour être lancé après des points spécifiques dans le temps. Par exemple, si un watcher EvPeriodic est configuré pour se lancer "dans 10 secondes" (i.e. EvLoop::now() + 10.0, i.e. un temps absolu, et non un délai), et que l'horloge système est ré-initialisée à Janvier de l'année dernière, alors cela prendra une année et plus à lancer l'événement (contrairement à EvTimer qui sera lancé 10 secondes après son démarrage, sachant qu'il utilise un délai maximal d'attente relatif).

Comme pour les minuteurs, il est garantie que la fonction de rappel soit appelée uniquement lorsque le point dans le temps où il est supposé se lancer ne soit passé. Si plusieurs minuteurs deviennent prêts en même temps pendant la même itération de boucle, alors ceux dont les valeurs de délai maximal d'attente sont les plus proches seront appelées avant ceux qui ont des valeurs de délai maximal d'attente plus éloignés (mais ceci n'est plus vrai lorsqu'une fonction de rappel appelle récursivement la méthode EvLoop::run()).

Synopsis de la classe

EvPeriodic extends EvWatcher {
/* Propriétés */
public $offset ;
public $interval ;
/* Propriétés héritées */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Méthodes */
public void again ( void )
public double at ( void )
public __construct ( double $offset , string $interval , callable $reschedule_cb , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static EvPeriodic createStopped ( double $offset , double $interval , callable $reschedule_cb , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void set ( double $offset , double $interval )
/* Méthodes héritées */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Propriétés

offset

Lors de la répétition, va contenir la valeur de la position, sinon, ce sera le point absolu dans le temps (la valeur de la position passée à la méthode EvPeriodic::set(), bien que libev peut modifier cette valeur pour une meilleure stabilité numérique).

interval

La valeur de l'intervalle courant. Peut être modifié à tout moment, mais les modifications ne prennent effet que lorsque le minuteur périodique ne se lance, ou lorsque la méthode EvPeriodic::again() est appelée.

Sommaire

  • EvPeriodic::again — Arrête et re-démarre le watcher périodique
  • EvPeriodic::at — Retourne le temps absolu auquel ce watcher sera appelé la prochaine fois
  • EvPeriodic::__construct — Construit un objet watcher EvPeriodic
  • EvPeriodic::createStopped — Crée un watcher EvPeriodic stoppé
  • EvPeriodic::set — Configure le watcher


Arrête et re-démarre le watcher périodique

  • « EvPeriodic
  • EvPeriodic::at »
  • PHP Manual
  • EvPeriodic
  • Arrête et re-démarre le watcher périodique

EvPeriodic::again

(PECL ev >= 0.2.0)

EvPeriodic::again — Arrête et re-démarre le watcher périodique

Description

public void EvPeriodic::again ( void )

Arrête et re-démarre le watcher périodique. Ceci n'est utile que lorsque les attributs ont changé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EvTimer::again() - Re-démarre le watcher Timer


Retourne le temps absolu auquel ce watcher sera appelé la prochaine fois

  • « EvPeriodic::again
  • EvPeriodic::__construct »
  • PHP Manual
  • EvPeriodic
  • Retourne le temps absolu auquel ce watcher sera appelé la prochaine fois

EvPeriodic::at

(PECL ev >= 0.2.0)

EvPeriodic::at — Retourne le temps absolu auquel ce watcher sera appelé la prochaine fois

Description

public double EvPeriodic::at ( void )

Retourne le temps absolu auquel ce watcher sera appelé la prochaine fois. Ce n'est pas la même chose que l'argument de position de la méthode EvPeriodic::set() ou la méthode EvPeriodic::__construct(), mais fonctionne aussi en mode intervalle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le temps absolu auqeul ce watcher sera appelé la prochaine fois, en secondes.


Construit un objet watcher EvPeriodic

  • « EvPeriodic::at
  • EvPeriodic::createStopped »
  • PHP Manual
  • EvPeriodic
  • Construit un objet watcher EvPeriodic

EvPeriodic::__construct

(PECL ev >= 0.2.0)

EvPeriodic::__construct — Construit un objet watcher EvPeriodic

Description

public EvPeriodic::__construct ( double $offset , string $interval , callable $reschedule_cb , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Construit un objet watcher EvPeriodic et le démarre automatiquement. La méthode EvPeriodic::createStopped() crée un watcher périodique stoppé.

Liste de paramètres

offset

Voir les modes d'opération du watcher périodique

interval

Voir les modes d'opération du watcher périodique

reschedule_cb

Fonction de rappel Reschedule. Vous pouvez passer la valeur NULL. Voir les modes d'opération du watcher périodique

callback

Voir les fonctions de rappel des Watchers .

data

Données personnalisées à associer avec le watcher.

priority

Priorité du Watcher

Valeurs de retour

Retourne un objet EvPeriodic en cas de succès.

Exemples

Exemple #1 Periodic timer. Use reschedule callback

<?php
// Toutes les 10.5 secondes

function reschedule_cb ($watcher, $now) {
 return $now + (10.5. - fmod($now, 10.5));
}

$w = new EvPeriodic(0., 0., "reschedule_cb", function ($w, $revents) {
 echo time(), PHP_EOL;
});
Ev::run();
?>

Exemple #2 Timer périodique. Appelé toutes les 10.5 secondes

<?php
// Toutes les 10.5 secondes à partir de maintenant
$w = new EvPeriodic(fmod(Ev::now(), 10.5), 10.5, NULL, function ($w, $revents) {
 echo time(), PHP_EOL;
});
Ev::run();
?>

Exemple #3 Watcher chaque heure

<?php
$hourly = EvPeriodic(0, 3600, NULL, function () {
 echo "une fois par heure\n";
};
?>

Voir aussi

  • Les modes d'opération du watcher périodique
  • EvTimer
  • EvPeriodic::createStopped() - Crée un watcher EvPeriodic stoppé


Crée un watcher EvPeriodic stoppé

  • « EvPeriodic::__construct
  • EvPeriodic::set »
  • PHP Manual
  • EvPeriodic
  • Crée un watcher EvPeriodic stoppé

EvPeriodic::createStopped

(PECL ev >= 0.2.0)

EvPeriodic::createStopped — Crée un watcher EvPeriodic stoppé

Description

final public static EvPeriodic EvPeriodic::createStopped ( double $offset , double $interval , callable $reschedule_cb , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Crée un objet EvPeriodic. Contrairement à la méthode EvPeriodic::__construct(), cette méthode ne démarre pas le watcher automatiquement.

Liste de paramètres

offset

See Periodic watcher operation modes

interval

Voir les modes d'opération du watcher périodique

reschedule_cb

Fonction de rappel Reschedule. Vous pouvez passer la valeur NULL. Voir les modes d'opération du watcher périodique

callback

Voir les fonctions de rappel des Watchers.

data

Données personnalisées à associer avec le watcher.

priority

Priorité du Watcher

Valeurs de retour

Retourne un objet watcher EvPeriodic en cas de succès.

Voir aussi

  • EvPeriodic::__construct() - Construit un objet watcher EvPeriodic
  • EvTimer::createStopped() - Crée un objet EvTimer watcher stoppé


Configure le watcher

  • « EvPeriodic::createStopped
  • EvPrepare »
  • PHP Manual
  • EvPeriodic
  • Configure le watcher

EvPeriodic::set

(PECL ev >= 0.2.0)

EvPeriodic::set — Configure le watcher

Description

public void EvPeriodic::set ( double $offset , double $interval )

(Re-)Configure le watcher EvPeriodic.

Liste de paramètres

offset

La même signification que pour la méthode EvPeriodic::__construct(). Voir les modes d'opération du watcher périodique

interval

La même signification que pour la méthode EvPeriodic::__construct(). Voir les modes d'opération du watcher périodique

Valeurs de retour

Aucune valeur n'est retournée.


La classe EvPrepare

(PECL ev >= 0.2.0)

Introduction

Les observateurs EvPrepare et EvCheck sont habituellement utilisés ensemble. L'observateur EvPrepare sera appelé avant les blocs du processus, alors que l'observateur EvCheck sera appelé après.

Il n'est pas autorisé d'appeler la méthode EvLoop::run() ou une méthode/fonction similaire qui entre dans la boucle de l'événement courante depuis soit l'observateur EvPrepare, soit l'observateur EvCheck. Toutefois, cela est possible pour toutes les autres boucles que la courante. La cause de cela est qu'il n'est pas nécessaire de vérifier la récursion dans ces observateurs, i.e. la séquence suivante sera toujours : EvPrepare -> blocage -> EvCheck, aussi, avoir un observateur pour chacun n'est pas utile, sachant qu'ils seront toujours appelés ensemble lors de l'appel au blocage.

Le but primaire est d'intégrer d'autres mécanismes d'événements dans la bibliothèque libev, avec une utilisation avancée. Ils peuvent être utilisés, par exemple, pour surveiller les modifications de variables, implémenter des observateurs personnalisés, intégrer net-snmp ou une bibliothèque supplémentaire, et bien plus encore. Ils peuvent être aussi utiles pour mettre en cache des données, et vouloir les afficher après le blocage.

Il est recommandé de fournir une priorité haute à EvCheck (Ev::MAXPRI) afin de s'assurer qu'il sera exécuté avant tout autre observateur de la file (à contrario, peu importe pour l'observateur EvPrepare).

De plus, les observateurs EvCheck ne doivent pas activer/alimenter des événements. Bien que libev supporte cela, ils peuvent être exécutés avant que les autres observateurs EvCheck ne terminent leur travaux.

Synopsis de la classe

EvPrepare extends EvWatcher {
/* Propriétés héritées */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Méthodes */
public __construct ( string $callback [, string $data [, string $priority ]] )
final public static EvPrepare createStopped ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
/* Méthodes héritées */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Sommaire

  • EvPrepare::__construct — Construit un objet de watcher EvPrepare
  • EvPrepare::createStopped — Crée une instance stoppée du watcher EvPrepare


Construit un objet de watcher EvPrepare

  • « EvPrepare
  • EvPrepare::createStopped »
  • PHP Manual
  • EvPrepare
  • Construit un objet de watcher EvPrepare

EvPrepare::__construct

(PECL ev >= 0.2.0)

EvPrepare::__construct — Construit un objet de watcher EvPrepare

Description

public EvPrepare::__construct ( string $callback [, string $data [, string $priority ]] )

Construit un objet de watcher EvPrepare. Démarre le watcher automatiquement. Si vous avez besoin d'un watcher stoppé, utilisez plutôt la méthode EvPrepare::createStopped().

Liste de paramètres

callback

Voir les fonctions de rappel des Watchers.

data

Données personnalisées à associer avec le watcher.

priority

Priorité du Watcher

Valeurs de retour

Retourne un objet EvPrepare en cas de succès.

Voir aussi

  • EvCheck


Crée une instance stoppée du watcher EvPrepare

  • « EvPrepare::__construct
  • EvSignal »
  • PHP Manual
  • EvPrepare
  • Crée une instance stoppée du watcher EvPrepare

EvPrepare::createStopped

(PECL ev >= 0.2.0)

EvPrepare::createStopped — Crée une instance stoppée du watcher EvPrepare

Description

final public static EvPrepare EvPrepare::createStopped ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Crée une instance stoppée du watcher EvPrepare. Contrairement à la méthode EvPrepare::__construct(), cette méthode ne démarre pas le watcher automatiquement.

Liste de paramètres

callback

Voir les fonctions de rappel des Watchers.

data

Données personnalisées à associer avec le watcher.

priority

Priorité du Watcher

Valeurs de retour

Retourne un objet EvPrepare en cas de succès.

Voir aussi

  • EvPrepare::__construct() - Construit un objet de watcher EvPrepare
  • EvWatcher::start() - Démarre le Watcher


La classe EvSignal

(PECL ev >= 0.2.0)

Introduction

Les watchers EvSignal vont lancer un événement lorsque le processus reçoit un signal spécifique une ou plusieurs fois. Malgré le fait que les signaux soient asynchrones, libev va tenter de faire de son mieux pour délivrer les signaux de façon synchrone, i.e. tout comme n'importe quel autre événement.

Il n'y a aucune limite pour le nombre de watchers pour le même signal, mais seulement dans la même boucle, i.e. un peu surveiller SIGINT dans la boucle par défaut, et pour SIGIO dans une autre boucle, mais il n'est pas autorisé de surveiller SIGINT à la fois dans la boucle par défaut, et dans une autre boucle au même moment. A ce moment, SIGCHLD est lié de façon permanente à la boucle par défaut.

Si possible et si supporté, libev va installer son gestionnaire avec SA_RESTART (ou équivalent) activé, aussi, les appels système ne devraient pas être interrompus. Dans le cas d'un problème avec les appels système qui se verraient interrompus par des signaux, tous les signaux peuvent être bloqués dans un watcher EvCheck et débloqués dans un watcher EvPrepare.

Synopsis de la classe

EvSignal extends EvWatcher {
/* Propriétés */
public $signum ;
/* Propriétés héritées */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Méthodes */
public __construct ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static EvSignal createStopped ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void set ( int $signum )
/* Méthodes héritées */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Propriétés

signum

Le numéro du signal. Voir les constantes exportées par l'extension pcntl. Voir aussi la page de manuel pour signal(7).

Sommaire

  • EvSignal::__construct — Construit un objet watcher EvPeriodic
  • EvSignal::createStopped — Crée un objet watcher EvSignal stoppé
  • EvSignal::set — Configure le watcher


Construit un objet watcher EvPeriodic

  • « EvSignal
  • EvSignal::createStopped »
  • PHP Manual
  • EvSignal
  • Construit un objet watcher EvPeriodic

EvSignal::__construct

(PECL ev >= 0.2.0)

EvSignal::__construct — Construit un objet watcher EvPeriodic

Description

public EvSignal::__construct ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Construit un objet watcher EvPeriodic et le démarre automatiquement. Pour un watcher périodique stoppé, utilisez plutôt la méthode EvSignal::createStopped().

Liste de paramètres

signum

Numéro du signal. Voir les constantes exportées par l'extension pcntl. Voir aussi la page du manuel système signal(7).

callback

Voir les fonctions de rappel des Watchers.

data

Données personnalisées à associer avec le watcher.

priority

Priorité du Watcher

Valeurs de retour

Retourne un objet EvSignal en cas de succès.

Exemples

Exemple #1 Gestion d'un signal SIGTERM

<?php
$w = new EvSignal(SIGTERM, function ($watcher) {
    echo "Signal SIGTERM reçu !\n";
    $watcher->stop();
});

Ev::run();
?>

Voir aussi

  • EvSignal::createStopped() - Crée un objet watcher EvSignal stoppé


Crée un objet watcher EvSignal stoppé

  • « EvSignal::__construct
  • EvSignal::set »
  • PHP Manual
  • EvSignal
  • Crée un objet watcher EvSignal stoppé

EvSignal::createStopped

(PECL ev >= 0.2.0)

EvSignal::createStopped — Crée un objet watcher EvSignal stoppé

Description

final public static EvSignal EvSignal::createStopped ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Crée un objet watcher EvSignal stoppé. Contrairement à la méthode EvSignal::__construct(), cette méthode ne démarre pas automatiquement le watcher.

Liste de paramètres

signum

Numéro du signal. Voir les constantes exportées par l'extension pcntl. Voir aussi la page de manuel système signal(7).

callback

Voir les fonctions de rappel des Watchers.

data

Données personnalisées à associer avec le watcher.

priority

Priorité du Watcher

Valeurs de retour

Retourne un objet EvSignal en cas de succès.

Voir aussi

  • EvWatcher::start() - Démarre le Watcher
  • EvSignal::__construct() - Construit un objet watcher EvPeriodic


Configure le watcher

  • « EvSignal::createStopped
  • EvStat »
  • PHP Manual
  • EvSignal
  • Configure le watcher

EvSignal::set

(PECL ev >= 0.2.0)

EvSignal::set — Configure le watcher

Description

public void EvSignal::set ( int $signum )

Configure le watcher.

Liste de paramètres

signum

Numéro du signal. Identique que pour le constructeur EvSignal::__construct().

Valeurs de retour

Aucune valeur n'est retournée.


La classe EvStat

(PECL ev >= 0.2.0)

Introduction

La classe EvStat surveille un fichier du système de fichiers afin de regarder toutes modifications de ces attributs. Elle appelle la commande stat() sur ce chemin, à intervalle régulier (ou lorsque l'OS signale une modification) et regarde s'il a été modifié depuis la dernière fois, et appelle la fonction de rappel si c'est le cas.

Le chemin n'a pas besoin d'exister : la modification de "le chemin existe" vers "le chemin n'existe pas est une modification de statut comme un autre. La condition "le chemin n'existe pas" est signifié par la valeur 0 de l'élément 'nlink' (retourné par la méthode EvStat::attr()).

Le chemin ne doit pas se terminer par un slash, ou contenir des composants spéciaux comme '.' ou ... Le chemin doit être absolu : s'il est relatif, et que le dossier de travail change, alors le comportement sera indéfini.

Sachant qu'il n'y a pas d'interface de notification de changement portable, l'implentation portable appelle simplement la commande stat() sur le chemin pour vérifier les modifications. Pour ce cas, un intervalle régulier peut être spécifié. S'il est spécifié, un intervalle de 0.0 (vivement recommandé) alors une valeur par défaut non spécifié sera utilisé (au alantour de 5 secondes, et peut être modifié dynamiquement). libev va également imposer un intervalle minimum qui est actuellement au alentour de 0.1, ce qui est largement suffisant.

Ce type de watcher n'est pas prévu pour un nombre important de watchers EvStat, sachant que même avec les notifications systèmes sur les modifications supportées par l'OS, ceci prend beaucoup de ressources.

Synopsis de la classe

EvStat extends EvWatcher {
/* Propriétés */
public $path ;
public $interval ;
/* Propriétés héritées */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Méthodes */
public array attr ( void )
public __construct ( string $path , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static void createStopped ( string $path , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void prev ( void )
public void set ( string $path , double $interval )
public bool stat ( void )
/* Méthodes héritées */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Propriétés

interval

Lecture seule. La rapidité avec laquelle une modification doit être détectée ; normalement, doit valoir 0.0 pour laisser libev choisir une bonne valeur.

path

Lecture seule. Le chemin vers le fichier dont on souhaite surveiller les modifications de statut.

Sommaire

  • EvStat::attr — Retourne la valeur la plus récente détectée par Ev
  • EvStat::__construct — Construit un objet EvStat watcher
  • EvStat::createStopped — Crée un objet EvStat watcher stoppé
  • EvStat::prev — Retourne le jeu précédent retourné par EvStat::attr
  • EvStat::set — Configure le watcher
  • EvStat::stat — Initialise l'appel à stat


Retourne la valeur la plus récente détectée par Ev

  • « EvStat
  • EvStat::__construct »
  • PHP Manual
  • EvStat
  • Retourne la valeur la plus récente détectée par Ev

EvStat::attr

(PECL ev >= 0.2.0)

EvStat::attr — Retourne la valeur la plus récente détectée par Ev

Description

public array EvStat::attr ( void )

Retourne un tableau des valeurs les plus récentes détectées par Ev.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau des valeurs les plus récentes détectées par Ev (sans le stat courant) :

Liste des clés du tableaux retournés par la méthode EvStat::attr()
Clé | Description
'dev' | ID du périphérique contenant le fichier
'ino' | nombre d'inodes
'mode' | protection
'nlink' | nombre de liens durs
'uid' | ID de l'utilisateur du propriétaire
'size' | taille totale, en octets
'gid' | ID du groupe du propriétaire
'rdev' | ID du périphérique (si fichier spécifial)
'blksize' | taille du bloc pour un système de fichiers I/O
'blocks' | nombre de blocs 512B alloués
'atime' | Date/heure du dernier accès
'ctime' | Date/Heure de la dernière modification de statut
'mtime' | Date/heure de la dernière modification

Voir la page du manuel sur stat(2) pour plus de détails.

Exemples

Exemple #1 Surveillance des modifications dans /var/log/messages

<?php
// Utilisation d'un intervalle de 10 secondes.
$w = new EvStat("/var/log/messages", 8, function ($w) {
    echo "/var/log/messages changed\n";

    $attr = $w->attr();

    if ($attr['nlink']) {
        printf("Current size: %ld\n", $attr['size']);
        printf("Current atime: %ld\n", $attr['atime']);
        printf("Current mtime: %ld\n", $attr['mtime']);
    } else {
        fprintf(STDERR, "`messages` file is not there!");
        $w->stop();
    }
});

Ev::run();
?>

Voir aussi

  • EvStat::prev() - Retourne le jeu précédent retourné par EvStat::attr
  • EvStat::stat() - Initialise l'appel à stat


Construit un objet EvStat watcher

  • « EvStat::attr
  • EvStat::createStopped »
  • PHP Manual
  • EvStat
  • Construit un objet EvStat watcher

EvStat::__construct

(PECL ev >= 0.2.0)

EvStat::__construct — Construit un objet EvStat watcher

Description

public EvStat::__construct ( string $path , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Construit un objet EvStat watcher et démarre le watcher automatiquement.

Liste de paramètres

path

Le chemin pour lequel on attend un modification de statut.

interval

Intervalle de détection d'une modification ; doit valoir normalement 0.0 pour laisser libev choisir la bonne valeur.

callback

Voir les fonctions de rappel Watcher.

data

Données personnalisées à associer avec le watcher.

priority

Les priorités du Watcher

Valeurs de retour

Retourne un objet EvStat watcher en cas de succès.

Exemples

Exemple #1 Sruveillance des modifications dans le dossier /var/log/messages

<?php
// Utilisation d'un intervalle de 10 secondes.
$w = new EvStat("/var/log/messages", 8, function ($w) {
 echo "/var/log/messages changed\n";

 $attr = $w->attr();

 if ($attr['nlink']) {
  printf("Current size: %ld\n", $attr['size']);
  printf("Current atime: %ld\n", $attr['atime']);
  printf("Current mtime: %ld\n", $attr['mtime']);
 } else {
  fprintf(STDERR, "`messages` file is not there!");
  $w->stop();
 }
});

Ev::run();
?>


Crée un objet EvStat watcher stoppé

  • « EvStat::__construct
  • EvStat::prev »
  • PHP Manual
  • EvStat
  • Crée un objet EvStat watcher stoppé

EvStat::createStopped

(PECL ev >= 0.2.0)

EvStat::createStopped — Crée un objet EvStat watcher stoppé

Description

final public static void EvStat::createStopped ( string $path , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Crée un objet EvStat watcher, mais ne le démarre pas automatiquement (contrairement à la méthode EvStat::__construct()).

Liste de paramètres

path

Le chemin pour lequel on doit attendre un changement de statut.

interval

Intervalle de détection de la modification ; doit normalement valoir 0.0 pour laisser libev choisir une bonne valeur.

callback

Voir les fonctions de rappel Watcher.

data

Données personnalisées à associer avec le watcher.

priority

les priorités du Watcher

Valeurs de retour

Retourne un objet EvStat watcher stoppé en cas de succès.

Voir aussi

  • EvStat::__construct() - Construit un objet EvStat watcher
  • EvWatcher::start() - Démarre le Watcher


Retourne le jeu précédent retourné par EvStat::attr

  • « EvStat::createStopped
  • EvStat::set »
  • PHP Manual
  • EvStat
  • Retourne le jeu précédent retourné par EvStat::attr

EvStat::prev

(PECL ev >= 0.2.0)

EvStat::prev — Retourne le jeu précédent retourné par EvStat::attr

Description

public void EvStat::prev ( void )

Identique à la méthode EvStat::attr() mais retourne le jeu précédent de valeurs.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau avec la même structure que le tableau retourné par la méthode EvStat::attr(). Le tableau contiendra les valeurs prédécemment détectées.

Voir aussi

  • EvStat::attr() - Retourne la valeur la plus récente détectée par Ev
  • EvStat::stat() - Initialise l'appel à stat


Configure le watcher

  • « EvStat::prev
  • EvStat::stat »
  • PHP Manual
  • EvStat
  • Configure le watcher

EvStat::set

(PECL ev >= 0.2.0)

EvStat::set — Configure le watcher

Description

public void EvStat::set ( string $path , double $interval )

Configure le watcher.

Liste de paramètres

path

Le chemin pour lequel on attendra un changement de statut.

interval

Intervalle de détection des modifications ; doit normalement valoir 0.0 pour laisser libev choisir une bonne valeur.

Valeurs de retour

Aucune valeur n'est retournée.


Initialise l'appel à stat

  • « EvStat::set
  • EvTimer »
  • PHP Manual
  • EvStat
  • Initialise l'appel à stat

EvStat::stat

(PECL ev >= 0.2.0)

EvStat::stat — Initialise l'appel à stat

Description

public bool EvStat::stat ( void )

Initialise l'appel à stat (mise à jour du cache interne). La commande va appeler stat (en utilisant lstat) sur le chemin spécifié path dans le watcher et définir les valeurs trouvées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si path existe. Sinon, FALSE.

Voir aussi

  • EvStat::attr() - Retourne la valeur la plus récente détectée par Ev
  • EvStat::prev() - Retourne le jeu précédent retourné par EvStat::attr


La classe EvTimer

(PECL ev >= 0.2.0)

Introduction

Les watchers EvTimer sont des watchers relativement simples qui génèrent un événement après une durée fournie, et, optionnellement, se répète dans un intervalle régulier.

Les minuteurs sont basés sur un temps réel, aussi, si un minuteur enregistre un événement qui se termine après une heure et ré-initialise l'horloge système à Janvier de l'an passée, il sera de nouveau hors délai après une heure (approximativement). "Approximativement" car la détection des sauts dans le temps est dur, et certaines inexactitudes sont inévitables.

Il est garantie que la fonction de rappel sera appelée uniquement après l'expiration du délai maximal d'attente (et non exactement à ce moment précis, aussi, sur des systèmes avec une horloge basse résolution, il se peut qu'un petit délai ne soit introduit). Si plusieurs minuteurs deviennent prêts pendant la même itération de boucle, alors celui dont les valeurs du délai d'attente maximal sera la plus proche sera invoqué avant l'autre ayant une priorité identique mais avec une valeur du délai d'attente plus éloignée (mais ceci n'est plus vrai lorsqu'une fonction de rappel appelle récursivement la méthode EvLoop::run()).

Le minuteur lui-même va faire tout ce qu'il lui est possible pour ne pas dériver, mais, si un minuteur est configuré pour se lancer toutes les 10 secondes, alors il va normalement se lancer à intervalle de 10 secondes exactement. Cependant, si le script ne peut pas conserver le minuteur car il prend plus de temps que ses 10 secondes, le minuteur ne pourra se lancer pas plus d'une fois par itération de boucle d'événements.

Synopsis de la classe

EvTimer extends EvWatcher {
/* Propriétés */
public $repeat ;
public $remaining ;
/* Propriétés héritées */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Méthodes */
public void again ( void )
public __construct ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static EvTimer createStopped ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void set ( double $after , double $repeat )
/* Méthodes héritées */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Propriétés

repeat

Si cette propriété vaut 0.0, alors il sera automatiquement stoppée une fois le délai maximal d'attente atteint. S'il est positif, alors le minuteur sera automatiquement configuré à se lancer à chaque seconde en suivant, tant qu'il ne sera pas stoppé manuellement.

remaining

Retourne le temps restant avant que le minuteur ne se lance. Si le minuteur est actif, alors ce temps sera relatif au temps de la boucle d'événements courante, sinon, il sera relatif à la valeur du délai d'attente maximal actuellement configuré.

Aussi, après l'instanciation d'un EvTimer avec une valeur de after à 5.0 et une valeur de repeat à 7.0, remaining retournera 5.0. Lorsque le minuteur est démarré, et qu'une seconde se passe, remaining va retourner 4.0. lorsque le minuteur expire et qu'il est redémarré, il retournera approximativement 7.0 (probablement un peu moins sachant que l'onvocation de la fonction de rappel prend un peu de temps aussi), et ainsi de suite.

Sommaire

  • EvTimer::again — Re-démarre le watcher Timer
  • EvTimer::__construct — Construit un objet EvTimer watcher
  • EvTimer::createStopped — Crée un objet EvTimer watcher stoppé
  • EvTimer::set — Configure le watcher


Re-démarre le watcher Timer

  • « EvTimer
  • EvTimer::__construct »
  • PHP Manual
  • EvTimer
  • Re-démarre le watcher Timer

EvTimer::again

(PECL ev >= 0.2.0)

EvTimer::again — Re-démarre le watcher Timer

Description

public void EvTimer::again ( void )

Cette méthode fonctionne comme si le Timer s'est terminé, et re-commence son cycle. La sémantique exacte est :

  1. si le Timer est en attente, son statut est nettoyé.

  2. si le Time est commencé, mais ne doit pas re-commencer, alors il sera stoppé (comme s'il s'était terminé normalement).

  3. si le Timer doit re-commencer, soit la méthode le démarre si nécessaire (avec la valeur repeat), ou ré-initialise le Time à la valeur de la variable repeat.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EvWatcher::stop() - Arrête le Watcher


Construit un objet EvTimer watcher

  • « EvTimer::again
  • EvTimer::createStopped »
  • PHP Manual
  • EvTimer
  • Construit un objet EvTimer watcher

EvTimer::__construct

(PECL ev >= 0.2.0)

EvTimer::__construct — Construit un objet EvTimer watcher

Description

public EvTimer::__construct ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Construit un objet EvTimer watcher.

Liste de paramètres

after

Configure le time pour lancer le trigger après after secondes.

repeat

Si ce paramètre vaut 0.0, alors le watcher sera automatiquement stoppé lors de le délai maximal d'attente sera atteint. Si ce paramètre est positif, alors le timer va automatiquement lancer le trigger à chaque seconde suivante, et ce, tant qu'il ne sera pas stoppé manuellement.

callback

Voir les fonctions de rappel Watcher.

data

Données personnalisées associées avec le watcher.

priority

Les priorités du Watcher

Valeurs de retour

Retourne un objet EvTimer en cas de succès.

Exemples

Exemple #1 timers simples

<?php
// Crée et démarre un timer lancé après 2 secondes
$w1 = new EvTimer(2, 0, function () {
    echo "2 secondes passées\n";
});

// Crée et démarre un timer lancé après 2 secondes, et le répère toutes les secondes
// tant que nous ne le stoppons pas manuellement
$w2 = new EvTimer(2, 1, function ($w) {
    echo "est appelé chaque seconde, est démarré après 2 secondes\n";
    echo "itération = ", Ev::iteration(), PHP_EOL;

    // Stop the watcher after 5 iterations
    Ev::iteration() == 5 and $w->stop();
    // Stop the watcher if further calls cause more than 10 iterations
    Ev::iteration() >= 10 and $w->stop();
});

// Crée un time stoppé. Il sera inactif tant que nous ne le démarrons pas nous même
$w_stopped = EvTimer::createStopped(10, 5, function($w) {
    echo "Fonction de rappel du timer crée stoppé\n";

    // Stop le watcher après 2 itérations
    Ev::iteration() >= 2 and $w->stop();
});

// Boucle tant que Ev::stop() est appelé ou tant que tous les watchers ne s'arrêtent
Ev::run();

// Démarre et verrouille s'il est en fonctionnement
$w_stopped->start();
echo "Exécution d'une seule itération\n";
Ev::run(Ev::RUN_ONCE);

echo "Redémarre le second watcher et tente de gérer les mêmes événements, mais ne bloque pas\n";
$w2->again();
Ev::run(Ev::RUN_NOWAIT);

$w = new EvTimer(10, 0, function() {});
echo "Exécution d'une boucle bloquante\n";
Ev::run();
echo "FIN\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

2 secondes passées
est appelé chaque seconde, est démarré après 2 secondes
itération = 1
est appelé chaque seconde, est démarré après 2 secondes
itération = 2
est appelé chaque seconde, est démarré après 2 secondes
itération = 3
est appelé chaque seconde, est démarré après 2 secondes
itération = 4
est appelé chaque seconde, est démarré après 2 secondes
itération = 5
Exécution d'une seule itération
Fonction de rappel du timer crée stoppé
Redémarre le second watcher et tente de gérer les mêmes événements, mais ne bloque pas
Exécution d'une boucle bloquante
est appelé chaque seconde, est démarré après 2 secondes
itération = 8
est appelé chaque seconde, est démarré après 2 secondes
itération = 9
est appelé chaque seconde, est démarré après 2 secondes
itération = 10
FIN

Voir aussi

  • EvTimer::createStopped() - Crée un objet EvTimer watcher stoppé
  • EvPeriodic
  • » ev_timer - répétition d'un délai d'attente maximal
  • » Être intelligent avec les délais d'attente maximal


Crée un objet EvTimer watcher stoppé

  • « EvTimer::__construct
  • EvTimer::set »
  • PHP Manual
  • EvTimer
  • Crée un objet EvTimer watcher stoppé

EvTimer::createStopped

(PECL ev >= 0.2.0)

EvTimer::createStopped — Crée un objet EvTimer watcher stoppé

Description

final public static EvTimer EvTimer::createStopped ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Crée un objet EvTimer watcher stoppé. Contrairement à la méthode EvTimer::__construct(), cette méthode ne démarre pas automatiquement le watcher.

Liste de paramètres

after

Configure le time pour lancer un trigger après after secondes.

repeat

Si ce paramètre vaut 0.0, alors le watcher sera automatiquement stoppé une fois le délai maximal d'attente atteint. Si ce paramètre est positif, alors le timer va automatiquement lancer le trigger à chaque seconde suivante, et ce, tant qu'il ne sera pas stoppé manuellement.

callback

Voir les fonctions de rappel Watcher.

data

Données personnelles associées au watcher.

priority

Les priorités du Watcher

Valeurs de retour

Retourne un objet EvTimer watcher en cas de succès.

Exemples

Exemple #1 Surveillance des modifications dans of /var/log/messages. Détecte les mises à jour oubliées en ajoutant une seconde de délai

<?php
$timer = EvTimer::createStopped(0., 1.02, function ($w) {
    $w->stop();

    $stat = $w->data;

    // 1 seconde après la modification la plus récente du fichier
    printf("Current size: %ld\n", $stat->attr()['size']);
});

$stat = new EvStat("/var/log/messages", 0., function () use ($timer) {
    // Réinitialise le watcher timer
    $timer->again();
});

$timer->data = $stat;

Ev::run();
?>

Voir aussi

  • EvTimer::__construct() - Construit un objet EvTimer watcher
  • EvPeriodic


Configure le watcher

  • « EvTimer::createStopped
  • EvWatcher »
  • PHP Manual
  • EvTimer
  • Configure le watcher

EvTimer::set

(PECL ev >= 0.2.0)

EvTimer::set — Configure le watcher

Description

public void EvTimer::set ( double $after , double $repeat )

Configure le watcher

Liste de paramètres

after

Configure le timer du trigger à lancer après after secondes.

repeat

Si ce paramètre vaut 0.0, alors le watcher sera automatiquement stoppé si le délai d'attente maximal est atteint. Si ce paramètre est positif, alors le time va automatiquement lancer le trigger à chaque seconde suivante, tant qu'il ne sera pas stoppé manuellement.

Valeurs de retour

Aucune valeur n'est retournée.


La classe EvWatcher

(PECL ev >= 0.2.0)

Introduction

La classe EvWatcher est une classe de base pour tous les watchers(EvCheck, EvChild etc.). Vu que le constructeur de la classe EvWatcher est abstrait, on ne peut pas (et on ne doit pas) créer des objets EvWatcher directement.

Synopsis de la classe

abstract EvWatcher {
/* Propriétés */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Méthodes */
public int clear ( void )
abstract public __construct ( void )
public void feed ( int $revents )
public EvLoop getLoop ( void )
public void invoke ( int $revents )
public bool keepalive ([ bool $value ] )
public void setCallback ( callable $callback )
public void start ( void )
public void stop ( void )
}

Propriétés

is_active

En lecture seule. TRUE si le watcher est actif, FALSE sinon.

data

Données utilisateur personnalisées associées avec le watcher

is_pending

En lecture seule. Si le watcher est en attente, i.e. si le watcher a des événements en attente, mais que sa fonction de rappel n'a pas encore été appelée, FALSE sinon. Tant que le watcher est en attente (mais non actif), un autre ne peut pas modifier ses priorités.

priority

Integer Intervalle de Ev::MINPRI et Ev::MAXPRI. Les watchers en attente avec une priorité haute seront appelées avant les watchers avec une priorité basse, mais la priorité ne peut pas faire qu'un watcher ne sera jamais exécuté (sauf pour les watchers EvIdle). Les watchers EvIdle fournissent des fonctionalités permettant de supprimer l'invocation lorsque des événements ayant une priorité plus élevée sont en attente.

Sommaire

  • EvWatcher::clear — Efface le statut d'attente de l'observateur
  • EvWatcher::__construct — Constructeur d'objet observateur
  • EvWatcher::feed — Alimente les revents fournis dans la boucle d'événements
  • EvWatcher::getLoop — Retourne la boucle responsable de l'observateur
  • EvWatcher::invoke — Invoque la fonction de rappel de l'observateur avec le masque de bits des événements reçus fournis
  • EvWatcher::keepalive — Garde la boucle active
  • EvWatcher::setCallback — Définit une nouvelle fonction de rappel pour le watcher
  • EvWatcher::start — Démarre le Watcher
  • EvWatcher::stop — Arrête le Watcher


Efface le statut d'attente de l'observateur

  • « EvWatcher
  • EvWatcher::__construct »
  • PHP Manual
  • EvWatcher
  • Efface le statut d'attente de l'observateur

EvWatcher::clear

(PECL ev >= 0.2.0)

EvWatcher::clear — Efface le statut d'attente de l'observateur

Description

public int EvWatcher::clear ( void )

Si l'observateur est en attente, cette méthode efface son statut d'attente (pending) et retourne son bitset revents (comme si sa fonction de rappel avait été invoquée). Si l'observateur n'est pas en attente, cette méthode ne fera rien, et retournera 0.

Quelques fois, il est utile d'interroger un observateur plutôt que d'attendre que sa fonction de rappel ne soit invoquée, et c'est bien ce que permet de faire cette méthode.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Dans le cas où l'observateur est en attente, retourne le bitset revents, comme si sa fonction de rappel était invoquée. Sinon, retourne 0.


Constructeur d'objet observateur

  • « EvWatcher::clear
  • EvWatcher::feed »
  • PHP Manual
  • EvWatcher
  • Constructeur d'objet observateur

EvWatcher::__construct

(PECL ev >= 0.2.0)

EvWatcher::__construct — Constructeur d'objet observateur

Description

abstract public EvWatcher::__construct ( void )

EvWatcher::__construct() est un constructeur d'objet d'observateur, implémenté dans les classes dérivées.


Alimente les revents fournis dans la boucle d'événements

  • « EvWatcher::__construct
  • EvWatcher::getLoop »
  • PHP Manual
  • EvWatcher
  • Alimente les revents fournis dans la boucle d'événements

EvWatcher::feed

(PECL ev >= 0.2.0)

EvWatcher::feed — Alimente les revents fournis dans la boucle d'événements

Description

public void EvWatcher::feed ( int $revents )

Alimente les revents fournis dans la boucle d'événements, comme si l'événement spécifié était survenu dans l'observateur.

Liste de paramètres

revents

Masque de bits de l'observateur de réception d'événements.

Valeurs de retour

Aucune valeur n'est retournée.


Retourne la boucle responsable de l'observateur

  • « EvWatcher::feed
  • EvWatcher::invoke »
  • PHP Manual
  • EvWatcher
  • Retourne la boucle responsable de l'observateur

EvWatcher::getLoop

(PECL ev >= 0.2.0)

EvWatcher::getLoop — Retourne la boucle responsable de l'observateur

Description

public EvLoop EvWatcher::getLoop ( void )

Retourne la boucle responsable de l'observateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet EvLoop responsable de l'observateur.


Invoque la fonction de rappel de l'observateur avec le masque de bits des événements reçus fournis

  • « EvWatcher::getLoop
  • EvWatcher::keepalive »
  • PHP Manual
  • EvWatcher
  • Invoque la fonction de rappel de l'observateur avec le masque de bits des événements reçus fournis

EvWatcher::invoke

(PECL ev >= 0.2.0)

EvWatcher::invoke — Invoque la fonction de rappel de l'observateur avec le masque de bits des événements reçus fournis

Description

public void EvWatcher::invoke ( int $revents )

Invoque la fonction de rappel de l'observateur avec le masque de bits des événements reçus fournis.

Liste de paramètres

revents

Masque de bits de l'observateur qui reçoit les événements.

Valeurs de retour

Aucune valeur n'est retournée.


Garde la boucle active

  • « EvWatcher::invoke
  • EvWatcher::setCallback »
  • PHP Manual
  • EvWatcher
  • Garde la boucle active

EvWatcher::keepalive

(PECL ev >= 0.2.0)

EvWatcher::keepalive — Garde la boucle active

Description

public bool EvWatcher::keepalive ([ bool $value ] )

Garde la boucle active. Avec un paramètre value définit à FALSE, le Watcher n'empêchera pas les méthodes Ev::run()/EvLoop::run() de s'arrêter même si le Watcher est actif.

Les Watchers ont, par défaut, un paramètre value définit à TRUE.

Le fait de nettoyer le statut "keepalive" est utile lors d'un retour des méthodes Ev::run()/EvLoop::run(), auquel cas le Watcher n'est plus désiré. Ce peut être un Watcher socket UDP qui continue de fonctionner longtemps.

Liste de paramètres

value

Si vaut FALSE, le Watcher ne va pas empêcher les méthodes Ev::run()/EvLoop::run() de se terminer, même si le Watcher est actif.

Valeurs de retour

Retourne le précédent statut.

Exemples

Exemple #1 Enregistre un Watcher I/O pour des sockets UDP

<?php
$udp_socket = ...
$udp_watcher = new EvIo($udp_socket, Ev::READ, function () { /* ... */ });
$udp_watcher->keepalive(FALSE);
?>


Définit une nouvelle fonction de rappel pour le watcher

  • « EvWatcher::keepalive
  • EvWatcher::start »
  • PHP Manual
  • EvWatcher
  • Définit une nouvelle fonction de rappel pour le watcher

EvWatcher::setCallback

(PECL ev >= 0.2.0)

EvWatcher::setCallback — Définit une nouvelle fonction de rappel pour le watcher

Description

public void EvWatcher::setCallback ( callable $callback )

Définit une nouvelle fonction de rappel pour le watcher.

Liste de paramètres

callback

Voir les fonctions de rappel pour les Watchers.

Valeurs de retour

Aucune valeur n'est retournée.


Démarre le Watcher

  • « EvWatcher::setCallback
  • EvWatcher::stop »
  • PHP Manual
  • EvWatcher
  • Démarre le Watcher

EvWatcher::start

(PECL ev >= 0.2.0)

EvWatcher::start — Démarre le Watcher

Description

public void EvWatcher::start ( void )

Marque le Watcher comme actif. Notez que seuls les Watchers actifs recevront les événements.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EvWatcher::stop() - Arrête le Watcher


Arrête le Watcher

  • « EvWatcher::start
  • Expect »
  • PHP Manual
  • EvWatcher
  • Arrête le Watcher

EvWatcher::stop

(PECL ev >= 0.2.0)

EvWatcher::stop — Arrête le Watcher

Description

public void EvWatcher::stop ( void )

Marque le Watcher comme étant inactif. Notez que seuls les Watchers actifs recevront les événements.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EvWatcher::start() - Démarre le Watcher


Expect

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Exemples d'Utilisation avec Expect
  • Fonctions Expect
    • expect_expectl — Attend jusqu'à ce que la sortie d'un processus corresponde à un des motifs, un période de temps spécifique est passée ou un EOF est vu
    • expect_popen — Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus


Introduction

Cette extension autorise l'interaction avec des processus à travers PTY. Vous pouvez utiliser l'enveloppe expect:// avec les fonctions de système de fichiers ce qui fourni une interface simple et plus intuitive.


Pré-requis

Ce module utilise les fonctions de la bibliothèque » expect. Vous avez besoin de la libexpect version >= 5.43.0.


Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/expect.

Afin d'utiliser ces fonctions, vous devez compiler PHP avec le support expect en utilisant l'option de configuration --with-expect[=DIR] .

Les utilisateurs de Windows pourront activer php_expect.dll à l'intérieur du php.ini afin d'utiliser ces fonctions. Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Afin de configurer l'extension expect, il y a des options de configuration dans le fichier de configuration php.ini.

Options de configuration Expect
Nom | Défaut | Modifiable | Historique
expect.timeout | "10" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.logfile | "" | PHP_INI_ALL |
expect.match_max | "" | PHP_INI_ALL |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

expect.timeout entier

La période de dépassement du temps pour attendre pour les données, lors de l'utilisation de la fonction expect_expectl().

Une valeur de "-1" désactive le dépassement de temps.

Note:

Une valeur de "0" fait retourner immédiatement la fonction expect_expectl().

expect.loguser booléen

Si expect devrait envoyer toutes les données de sortie à partir du démarrage du processus à stdout. Puisque les programmes interactifs affiche typiquement leur entrée, ceci suffit habituellement pour montrer les deux côtés de la conversation.

expect.logfile string

Nom du fichier, où la sortie à partir du démarrage du processus devrait être écrite. Si ce fichier n'existe pas, il sera créé.

Note:

Si cette configuration n'est pas vide, la sortie est écrite peu importe la valeur de expect.loguser.

expect.match_max integer

Modifie la taille par défaut (200 octets) du buffer utilisé pour faire correspondre les astérisques dans le masque.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

expect_popen() retourne un flux ouvert PTY utilisé par la fonction expect_expectl().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

EXP_GLOB (entier)
Indique que le motif est un motif de style de chaîne de caractères glob.
EXP_EXACT (entier)
Indique que le motif est une chaîne exacte.
EXP_REGEXP (entier)
Indique que le motif est un motif d'expression rationnelle.
EXP_EOF (entier)
Valeur, retournée par expect_expectl(), lorsque EOF est atteint.
EXP_TIMEOUT (entier)
Valeur, retournée par expect_expectl() sur le dépassement du temps en secondes, spécifiée par la valeur expect.timeout
EXP_FULLBUFFER (entier)
Valeur, retournée par expect_expectl() si aucun motif n'a été trouvé.


  • « Constantes pré-définies
  • Exemples d'Utilisation avec Expect »
  • PHP Manual
  • Expect
  • Exemples

Exemples

Sommaire

  • Exemples d'Utilisation avec Expect


Exemples d'Utilisation avec Expect

Exemple #1 Exemple d'Utilisation avec Expect

Cet exemple se connecte à un hôte distant via SSH et affiche le temps d'utilisation distant.

<?php
ini_set("expect.loguser", "Off");

$stream = fopen("expect://ssh root@remotehost uptime", "r");

$cases = array (
    array (0 => "password:", 1 => PASSWORD)
);

switch (expect_expectl ($stream, $cases)) {
    case PASSWORD:
        fwrite ($stream, "password\n");
        break;

    default:
        die ("Une erreur s'est produite lors de la connexion à l'hôte distant !\n");
}

while ($line = fgets($stream)) {
      print $line;
}
fclose ($stream);
?>

L'exemple suivant permet de se connecter à un hôte distant, détermine si le système d'exploitation distant est 32 ou 64 bits, puis, effectue une mise à jour d'un paquet spécifique.

Exemple #2 Autre exemple d'utilisation d'Expect

<?php
ini_set("expect.timeout", -1);
ini_set("expect.loguser", "Off");

$stream = expect_popen("ssh root@remotehost");

while (true) {
    switch (expect_expectl ($stream, array (
            array ("password:", PASSWORD), // SSH demande un mot de passe
            array ("yes/no)?", YESNO), // SSH demande si l'on souhaite stocker l'hôte
            array ("~$ ", SHELL, EXP_EXACT), // Nous avons récupéré un shell !
    ))) {
        case PASSWORD:
            fwrite ($stream, "secret\n");
            break;

        case YESNO:
            fwrite ($stream, "yes\n");
            break;

        case SHELL:
            fwrite ($stream, "uname -a\n");
            while (true) {
                    switch (expect_expectl ($stream, array (
                            array ("~$ ", SHELL, EXP_EXACT), // Nous sommes dans le shell!
                            array ("^Linux.*$", UNAME, EXP_REGEXP), // Affichage de la commande uname -a
                    ), $match)) {
                        case UNAME:
                            $uname .= $match[0];
                            break;

                        case SHELL:
                            // Exécution de la mise à jour :
                            if (strstr ($uname, "x86_64")) {
                                    fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_64bit.rpm\n");
                            } else {
                                    fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_32bit.rpm\n");
                            }
                            fwrite ($stream, "exit\n");
                            break 2;

                        case EXP_TIMEOUT:
                        case EXP_EOF:
                            break 2;

                        default:
                            die ("Une erreur est survenue !\n");
                    }
            }
            break 2;

        case EXP_TIMEOUT:
        case EXP_EOF:
            break 2;

        default:
            die ("Une erreur est survenue !\n");
    }
}

fclose ($stream);
?>


Fonctions Expect

Sommaire

  • expect_expectl — Attend jusqu'à ce que la sortie d'un processus corresponde à un des motifs, un période de temps spécifique est passée ou un EOF est vu
  • expect_popen — Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus


Attend jusqu'à ce que la sortie d'un processus corresponde à un des motifs, un période de temps spécifique est passée ou un EOF est vu

  • « Fonctions Expect
  • expect_popen »
  • PHP Manual
  • Fonctions Expect
  • Attend jusqu'à ce que la sortie d'un processus corresponde à un des motifs, un période de temps spécifique est passée ou un EOF est vu

expect_expectl

(PECL expect >= 0.1.0)

expect_expectl — Attend jusqu'à ce que la sortie d'un processus corresponde à un des motifs, un période de temps spécifique est passée ou un EOF est vu

Description

int expect_expectl ( resource $expect , array $cases [, array &$match ] )

Attend jusqu'à ce que la sortie d'un processus corresponde à un des motifs, un période de temps spécifique est passée ou un EOF est vu.

Si le paramètre match est fourni, alors il est rempli avec le résultat de la recherche. La chaîne de caractères de recherche peut être trouvée dans match[0]. Les sous-chaînes de recherche (selon les parenthèses) dans le motif original peuvent être trouvées dans match[1], match[2] et ainsi de suite jusqu'à match[9] (limité par libexpect).

Liste de paramètres

expect

Un flux de données Expect, ouvert précédemment avec expect_popen().

cases

Un tableau des cas expect. Chaque cas expect est un tableau indexé, comme décrit dans la table suivante :

Expect Case Array
Clé Index | Type Valeur | Description | Est Obligatoire | Valeur par Défaut
0 | string | motif, qui sera vérifié avec la sortie du flux | oui
1 | mixed | valeur, qui sera retournée par cette fonction, si le motif concorde | oui
2 | integer | type de motif, un de : EXP_GLOB, EXP_EXACT ou EXP_REGEXP | non | EXP_GLOB

Valeurs de retour

Retourne une valeur associée avec le motif qui correspond.

En cas d'échec, cette fonction retourne : EXP_EOF, EXP_TIMEOUT ou EXP_FULLBUFFER

Historique

Version | Description
0.2.1 | Avant la version 0.2.1, dans le paramètre match, un résultat en chaîne de caractères était retourné et non un tableau de sous-chaînes de résultat.

Exemples

Exemple #1 Exemple avec expect_expectl()

<?php
// Copie le fichier à partir de l'hôte distant :
ini_set("expect.timeout", 30);

$stream = fopen("expect://scp user@remotehost:/var/log/messages /home/user/messages.txt", "r");

$cases = array(
    // array(masque, valeur à retourner si le masque correspond)
    array("password:", "asked for password"),
    array("yes/no)?",  "asked for yes/no")
);

while (true) {
    switch (expect_expectl($stream, $cases)) {
        case "asked for password":
            fwrite($stream, "my password\n");
            break;
        case "asked for yes/no":
            fwrite($stream, "yes\n");
            break;
        case EXP_TIMEOUT:
        case EXP_EOF:
            break 2; // interrompt à la fois la structure switch et la boucle while
        default:
            die "Une erreur est survenue !";
    }
}

fclose($stream);
?>

Voir aussi

  • expect_popen() - Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus


Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus

  • « expect_expectl
  • Libevent »
  • PHP Manual
  • Fonctions Expect
  • Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus

expect_popen

(PECL expect >= 0.1.0)

expect_popen — Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus

Description

resource expect_popen ( string $command )

Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus.

Liste de paramètres

command

Commande à exécuter.

Valeurs de retour

Retourne un flux de données PTY ouvert au processus stdio, stdout et stderr.

En cas d'erreur, cette fonction retourne FALSE.

Exemples

Exemple #1 Exemple avec expect_popen()

<?php
// Identification au répertoire CVS de PHP.net
$stream = expect_popen ("cvs -d :pserver:anonymous@cvs.php.net:/repository login");
sleep (3);
fwrite ($stream, "phpfi\n");
fclose ($stream);
?>

Voir aussi

  • popen() - Crée un processus de pointeur de fichier


Libevent

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions Libevent
    • event_add — Ajoute un évènement aux évènements monitorés
    • event_base_free — Détruit une base d'évènements
    • event_base_loop — Traitement des évènements
    • event_base_loopbreak — Abandonne une boucle d'évènement
    • event_base_loopexit — Sort d'une boucle après un temps
    • event_base_new — Créer et initialise une nouvelle base d'évènements
    • event_base_priority_init — Assigne le nombre de niveaux de priorités d'évènement
    • event_base_reinit — Réinitialise la base de l'événement après un fork
    • event_base_set — Associe une base avec un évènement
    • event_buffer_base_set — Associe un évènement bufferisé avec une base
    • event_buffer_disable — Désactive un évènement bufferisé
    • event_buffer_enable — Active un évènement bufferisé
    • event_buffer_fd_set — Change un descripteur de fichier pour un évènement bufferisé
    • event_buffer_free — Détruit un évènement bufferisé
    • event_buffer_new — Créer un nouvel évènement bufferisé
    • event_buffer_priority_set — Assigne une priorité à un évènement bufferisé
    • event_buffer_read — Lit des données depuis un évènement bufferisé
    • event_buffer_set_callback — Affecte ou réinitialise les rappels pour un évènement bufferisé
    • event_buffer_timeout_set — Affecte les délais de lecture et écriture pour un évènement bufferisé
    • event_buffer_watermark_set — Affecte la marque pour les évènements en lecture et écriture
    • event_buffer_write — Ecrit des données vers un évènement bufferisé
    • event_del — Supprime un évènement de la liste des évènements surveillés
    • event_free — Libère une ressource d'évènement
    • event_new — Crée un nouvel évènement
    • event_priority_set — Assigne une priorité à un événement
    • event_set — Prépare un évènement
    • event_timer_add — Alias de event_add
    • event_timer_del — Alias de event_del
    • event_timer_new — Alias de event_new
    • event_timer_set — Prépare un événement timer


Introduction

Libevent est une bibliothèque qui fournit un mécanisme permettant d'exécuter une fonction de rappel lorsqu'un événement spécifique intervient sur un descripteur de fichier ou après qu'un délai d'expiration a été atteint.

Pour plus d'informations sur Libevent, rendez-vous sur » http://libevent.org/.


Pré-requis

Cette extension nécessite la bibliothèque » libevent. La version minimale requise est la version 1.4.0.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/libevent.


Types de ressources

Il y a plusieurs types de ressources utilisés par cette extension. Ces ressources sont les événements, la base des événements ainsi que les événements mis en tampon.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

EV_TIMEOUT (entier)
EV_READ (entier)
EV_WRITE (entier)
EV_SIGNAL (entier)
EV_PERSIST (entier)
EVLOOP_NONBLOCK (entier)
EVLOOP_ONCE (entier)


Exemples

Exemple #1 Surveillance de STDIN en utilisant l'API basique

<?php

function print_line($fd, $events, $arg)
{
    static $max_requests = 0;

    $max_requests++;

    if ($max_requests == 10) {
        // Sort de la boucle après 10 écritures
        event_base_loopexit($arg[1]);
    }

    // Affiche la ligne
    echo  fgets($fd);
}

// Création de la base et de l'événement
$base = event_base_new();
$event = event_new();

$fd = STDIN;

// Définit les drapeaux de l'événement
event_set($event, $fd, EV_READ | EV_PERSIST, "print_line", array($event, $base));
// Définit la base de l'événement
event_base_set($event, $base);

// Activation de l'événement
event_add($event);
// Début de la boucle de l'événement
event_base_loop($base);

?>

Exemple #2 Surveillance de STDIN en utilisant l'API des événements mis en tampon

<?php

function print_line($buf, $arg)
{
    static $max_requests;

    $max_requests++;

    if ($max_requests == 10) {
        event_base_loopexit($arg);
    }

    // Affiche la ligne
    echo event_buffer_read($buf, 4096);
}

function error_func($buf, $what, $arg)
{
    // Gestion de l'erreur
}

$base = event_base_new();
$eb = event_buffer_new(STDIN, "print_line", NULL,  "error_func", $base);

event_buffer_base_set($eb,  $base);
event_buffer_enable($eb,  EV_READ);

event_base_loop($base);

?>


Fonctions Libevent

Sommaire

  • event_add — Ajoute un évènement aux évènements monitorés
  • event_base_free — Détruit une base d'évènements
  • event_base_loop — Traitement des évènements
  • event_base_loopbreak — Abandonne une boucle d'évènement
  • event_base_loopexit — Sort d'une boucle après un temps
  • event_base_new — Créer et initialise une nouvelle base d'évènements
  • event_base_priority_init — Assigne le nombre de niveaux de priorités d'évènement
  • event_base_reinit — Réinitialise la base de l'événement après un fork
  • event_base_set — Associe une base avec un évènement
  • event_buffer_base_set — Associe un évènement bufferisé avec une base
  • event_buffer_disable — Désactive un évènement bufferisé
  • event_buffer_enable — Active un évènement bufferisé
  • event_buffer_fd_set — Change un descripteur de fichier pour un évènement bufferisé
  • event_buffer_free — Détruit un évènement bufferisé
  • event_buffer_new — Créer un nouvel évènement bufferisé
  • event_buffer_priority_set — Assigne une priorité à un évènement bufferisé
  • event_buffer_read — Lit des données depuis un évènement bufferisé
  • event_buffer_set_callback — Affecte ou réinitialise les rappels pour un évènement bufferisé
  • event_buffer_timeout_set — Affecte les délais de lecture et écriture pour un évènement bufferisé
  • event_buffer_watermark_set — Affecte la marque pour les évènements en lecture et écriture
  • event_buffer_write — Ecrit des données vers un évènement bufferisé
  • event_del — Supprime un évènement de la liste des évènements surveillés
  • event_free — Libère une ressource d'évènement
  • event_new — Crée un nouvel évènement
  • event_priority_set — Assigne une priorité à un événement
  • event_set — Prépare un évènement
  • event_timer_add — Alias de event_add
  • event_timer_del — Alias de event_del
  • event_timer_new — Alias de event_new
  • event_timer_set — Prépare un événement timer


Ajoute un évènement aux évènements monitorés

  • « Fonctions Libevent
  • event_base_free »
  • PHP Manual
  • Fonctions Libevent
  • Ajoute un évènement aux évènements monitorés

event_add

(PECL libevent >= 0.0.1)

event_add — Ajoute un évènement aux évènements monitorés

Description

bool event_add ( resource $event [, int $timeout = -1 ] )

event_add() planifie l'éxecution de event lorsque l'évènement précisé dans event_set() se produit ou au moins dans le temps précisé par timeout. Si timeout n'est pas renseigné, alors aucun timeout ne sera utilisé. Le paramètre event doit représenter un évènement initialisé par event_set() et event_base_set(). Si event possède déja un timeout, il est remplacé par le nouveau.

Liste de paramètres

event

Ressource event valide.

timeout

timeout optionnel (en microsecondes).

Valeurs de retour

event_add() retourne TRUE en cas de succès ou FALSE si une erreur survient.


Détruit une base d'évènements

  • « event_add
  • event_base_loop »
  • PHP Manual
  • Fonctions Libevent
  • Détruit une base d'évènements

event_base_free

(PECL libevent >= 0.0.1)

event_base_free — Détruit une base d'évènements

Description

void event_base_free ( resource $event_base )

Détruit event_base et libère toutes les ressources associées. Notez qu'il n'est pas possible de détruire une base d'évènements ayant des évènements attachés.

Liste de paramètres

event_base

Ressource de base d'évènements valide.


Traitement des évènements

  • « event_base_free
  • event_base_loopbreak »
  • PHP Manual
  • Fonctions Libevent
  • Traitement des évènements

event_base_loop

(PECL libevent >= 0.0.1)

event_base_loop — Traitement des évènements

Description

int event_base_loop ( resource $event_base [, int $flags = 0 ] )

Démarre la boucle d'évènements pour la base spécifiée.

Liste de paramètres

event_base

Une ressource de base d'évènements valide.

flags

Paramètre optionnel qui peut être une combinaison de EVLOOP_ONCE et EVLOOP_NONBLOCK.

Valeurs de retour

event_base_loop() retourne 0 en cas de succès, -1 en cas d'erreurs et 1 si aucun évènement n'a été enregistré.


Abandonne une boucle d'évènement

  • « event_base_loop
  • event_base_loopexit »
  • PHP Manual
  • Fonctions Libevent
  • Abandonne une boucle d'évènement

event_base_loopbreak

(PECL libevent >= 0.0.1)

event_base_loopbreak — Abandonne une boucle d'évènement

Description

bool event_base_loopbreak ( resource $event_base )

Abandonne la boucle active immédiatement. le comportement est semblable à l'instruction break.

Liste de paramètres

event_base

Une ressource de base d'évènements valide.

Valeurs de retour

event_base_loopbreak() retourne TRUE en cas de succès ou FALSE sinon.


Sort d'une boucle après un temps

  • « event_base_loopbreak
  • event_base_new »
  • PHP Manual
  • Fonctions Libevent
  • Sort d'une boucle après un temps

event_base_loopexit

(PECL libevent >= 0.0.1)

event_base_loopexit — Sort d'une boucle après un temps

Description

bool event_base_loopexit ( resource $event_base [, int $timeout = -1 ] )

La prochaine itération de boucle d'évènement après que le temps expire sera lancée, puis une sortie sera commandée sans bloquer en attente d'autres évènements.

Liste de paramètres

event_base

Une ressource de base d'évènements valide.

timeout

Délai de timeout optionnel (en microsecondes).

Valeurs de retour

event_base_loopexit() retourne TRUE en cas de succès ou FALSE sinon.


Créer et initialise une nouvelle base d'évènements

  • « event_base_loopexit
  • event_base_priority_init »
  • PHP Manual
  • Fonctions Libevent
  • Créer et initialise une nouvelle base d'évènements

event_base_new

(PECL libevent >= 0.0.1)

event_base_new — Créer et initialise une nouvelle base d'évènements

Description

resource event_base_new ( void )

Retourne une nouvelle base d'évènements, qui peut être utilisée plus tard avec event_base_set(), event_base_loop() et les autres fonctions.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

event_base_new() retourne une ressource de base d'évènements valide en cas de succès ou FALSE sinon.


Assigne le nombre de niveaux de priorités d'évènement

  • « event_base_new
  • event_base_reinit »
  • PHP Manual
  • Fonctions Libevent
  • Assigne le nombre de niveaux de priorités d'évènement

event_base_priority_init

(PECL libevent >= 0.0.2)

event_base_priority_init — Assigne le nombre de niveaux de priorités d'évènement

Description

bool event_base_priority_init ( resource $event_base , int $npriorities )

Assigne le nombre de niveaux de priorités d'évènement

Par défaut tous les évènements sont programmés avec la même priorité (npriorities/2). Utiliser event_base_priority_init() permet de changer le nombre de niveaux de priorités et donc d'affecter une priorité unique à chaque évènement.

Liste de paramètres

event_base

Ressource de base d'évènements valide.

npriorities

Nombre de niveaux de priorité.

Valeurs de retour

event_base_priority_init() retourne TRUE en cas de succès ou FALSE sinon.


Réinitialise la base de l'événement après un fork

  • « event_base_priority_init
  • event_base_set »
  • PHP Manual
  • Fonctions Libevent
  • Réinitialise la base de l'événement après un fork

event_base_reinit

(PECL libevent >= 0.1.0)

event_base_reinit — Réinitialise la base de l'événement après un fork

Description

bool event_base_reinit ( resource $event_base )

Quelques mécanismes d'événements ne survivent pas à un fork. La base de l'événement event_base doit être réinitialisée avec cette fonction.

Liste de paramètres

event_base

Ressource de base d'événements qui doit être réinitialisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Associe une base avec un évènement

  • « event_base_reinit
  • event_buffer_base_set »
  • PHP Manual
  • Fonctions Libevent
  • Associe une base avec un évènement

event_base_set

(PECL libevent >= 0.0.1)

event_base_set — Associe une base avec un évènement

Description

bool event_base_set ( resource $event , resource $event_base )

Associe la base event_base avec event.

Liste de paramètres

event

Ressource d'évènement valide.

event_base

Ressource de base d'évènements valide.

Valeurs de retour

event_base_set() retourne TRUE en cas de succès ou FALSE sinon.


Associe un évènement bufferisé avec une base

  • « event_base_set
  • event_buffer_disable »
  • PHP Manual
  • Fonctions Libevent
  • Associe un évènement bufferisé avec une base

event_buffer_base_set

(PECL libevent >= 0.0.1)

event_buffer_base_set — Associe un évènement bufferisé avec une base

Description

bool event_buffer_base_set ( resource $bevent , resource $event_base )

Assigne l'évènement bevent à la base event_base.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.

event_base

Ressource de base d'évènements valide.

Valeurs de retour

event_buffer_base_set() retourne TRUE en cas de succès ou FALSE sinon.


Désactive un évènement bufferisé

  • « event_buffer_base_set
  • event_buffer_enable »
  • PHP Manual
  • Fonctions Libevent
  • Désactive un évènement bufferisé

event_buffer_disable

(PECL libevent >= 0.0.1)

event_buffer_disable — Désactive un évènement bufferisé

Description

bool event_buffer_disable ( resource $bevent , int $events )

Désactive l'évènement bufferisé spécifié.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.

events

Une combinaison de EV_READ et EV_WRITE.

Valeurs de retour

event_buffer_disable() retourne TRUE en cas de succès ou FALSE sinon.


Active un évènement bufferisé

  • « event_buffer_disable
  • event_buffer_fd_set »
  • PHP Manual
  • Fonctions Libevent
  • Active un évènement bufferisé

event_buffer_enable

(PECL libevent >= 0.0.1)

event_buffer_enable — Active un évènement bufferisé

Description

bool event_buffer_enable ( resource $bevent , int $events )

Active l'évènement bufferisé spécifié.

Liste de paramètres

bevent

Active un évènement bufferisé

events

Une combinaison de EV_READ et EV_WRITE.

Valeurs de retour

event_buffer_enable() retourne TRUE en cas de succès ou FALSE sinon.


Change un descripteur de fichier pour un évènement bufferisé

  • « event_buffer_enable
  • event_buffer_free »
  • PHP Manual
  • Fonctions Libevent
  • Change un descripteur de fichier pour un évènement bufferisé

event_buffer_fd_set

(PECL libevent >= 0.0.1)

event_buffer_fd_set — Change un descripteur de fichier pour un évènement bufferisé

Description

void event_buffer_fd_set ( resource $bevent , resource $fd )

Change un descripteur de fichier sur lequel des opérations d'évènement agissent.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.

fd

Flux PHP valide, doit être transtypable vers un descripteur de fichier.


Détruit un évènement bufferisé

  • « event_buffer_fd_set
  • event_buffer_new »
  • PHP Manual
  • Fonctions Libevent
  • Détruit un évènement bufferisé

event_buffer_free

(PECL libevent >= 0.0.1)

event_buffer_free — Détruit un évènement bufferisé

Description

void event_buffer_free ( resource $bevent )

Détruit l'évènement précisé et libère les ressources allouées.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.


Créer un nouvel évènement bufferisé

  • « event_buffer_free
  • event_buffer_priority_set »
  • PHP Manual
  • Fonctions Libevent
  • Créer un nouvel évènement bufferisé

event_buffer_new

(PECL libevent >= 0.0.1)

event_buffer_new — Créer un nouvel évènement bufferisé

Description

resource event_buffer_new ( resource $stream , mixed $readcb , mixed $writecb , mixed $errorcb [, mixed $arg ] )

Libevent propose une couche d'abstraction sur l'API basique. Utiliser des évènements bufferisés vous permet de ne pas vous soucier des I/O manuellement, des buffers d'entrée/sortie auto-remplis sont utilisables à la place.

Liste de paramètres

stream

Une ressource de flux PHP valide. Doit être transtypable vers un descripteur de fichier.

readcb

Fonction de rappel à invoquer s'il y a des données à lire, NULL si aucune fonction de rappel n'est voulue.

writecb

Fonction de rappel à invoquer lorsque le descripteur est disponible en écriture ou NULL si aucune fonction de rappel n'est désirée.

errorcb

Fonction de rappel à invoquer lorsqu'une erreur survient sur le descripteur ou NULL si aucune fonction de rappel n'est désirée.

arg

Un argument à passer à chaque fonction de rappel (optionnel).

Valeurs de retour

event_buffer_new() retourne une nouvelle ressource d'évènement bufferisé en cas de succès ou FALSE sinon.


Assigne une priorité à un évènement bufferisé

  • « event_buffer_new
  • event_buffer_read »
  • PHP Manual
  • Fonctions Libevent
  • Assigne une priorité à un évènement bufferisé

event_buffer_priority_set

(PECL libevent >= 0.0.1)

event_buffer_priority_set — Assigne une priorité à un évènement bufferisé

Description

bool event_buffer_priority_set ( resource $bevent , int $priority )

Assigne une priorité à bevent.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.

priority

Niveau de priorité. Ne peut être inférieur à zéro et ne peut dépasser le niveau maximum de la base d'évènements (voir event_base_priority_init()).

Valeurs de retour

event_buffer_priority_set() retourne TRUE en cas de succès ou FALSE sinon.


Lit des données depuis un évènement bufferisé

  • « event_buffer_priority_set
  • event_buffer_set_callback »
  • PHP Manual
  • Fonctions Libevent
  • Lit des données depuis un évènement bufferisé

event_buffer_read

(PECL libevent >= 0.0.1)

event_buffer_read — Lit des données depuis un évènement bufferisé

Description

string event_buffer_read ( resource $bevent , int $data_size )

Lit des données depuis un évènement bufferisé.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.

data_size

Taille en octets.


Affecte ou réinitialise les rappels pour un évènement bufferisé

  • « event_buffer_read
  • event_buffer_timeout_set »
  • PHP Manual
  • Fonctions Libevent
  • Affecte ou réinitialise les rappels pour un évènement bufferisé

event_buffer_set_callback

(PECL libevent >= 0.0.4)

event_buffer_set_callback — Affecte ou réinitialise les rappels pour un évènement bufferisé

Description

bool event_buffer_set_callback ( resource $event , mixed $readcb , mixed $writecb , mixed $errorcb [, mixed $arg ] )

Affecte ou change les fonctions de rappel pour event.

Liste de paramètres

event

Ressource évènement bufferisé valide.

readcb

Fonction de rappel à invoquer s'il y a des données à lire, ou NULL si aucune fonction de rappel n'est à utiliser.

writecb

Fonction de rappel à appeler lorsque le descripteur est prêt pour écriture, ou NULL si aucune fonction de rappel n'est à utiliser.

errorcb

Fonction de rappel à invoquer lorsqu'une erreur survient sur le descripteur, ne peut pas être NULL.

arg

Un argument optionnel à passer à chaque fonction de rappel.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Affecte les délais de lecture et écriture pour un évènement bufferisé

  • « event_buffer_set_callback
  • event_buffer_watermark_set »
  • PHP Manual
  • Fonctions Libevent
  • Affecte les délais de lecture et écriture pour un évènement bufferisé

event_buffer_timeout_set

(PECL libevent >= 0.0.1)

event_buffer_timeout_set — Affecte les délais de lecture et écriture pour un évènement bufferisé

Description

void event_buffer_timeout_set ( resource $bevent , int $read_timeout , int $write_timeout )

Affecte les délais de lecture et écriture pour un évènement bufferisé

Liste de paramètres

bevent

Ressource d'évènement bufferisée valide.

read_timeout

Délai de lecture (en secondes).

write_timeout

Délai d'écriture (en secondes).


Affecte la marque pour les évènements en lecture et écriture

  • « event_buffer_timeout_set
  • event_buffer_write »
  • PHP Manual
  • Fonctions Libevent
  • Affecte la marque pour les évènements en lecture et écriture

event_buffer_watermark_set

(PECL libevent >= 0.0.1)

event_buffer_watermark_set — Affecte la marque pour les évènements en lecture et écriture

Description

void event_buffer_watermark_set ( resource $bevent , int $events , int $lowmark , int $highmark )

Affecte la marque (seuil) pour les évènements en lecture et écriture. Libevent n'appelle pas de callback en lecture avant qu'il n'y ait au minimum lowmark octets dans le buffer d'entrée; si le buffer en lecture est au delà de highmark, la lecture est stoppée. A la sortie, la callback d'écriture est appelée dès que les données bufferisées tombent sous lowmark.

Liste de paramètres

bevent

Ressource d'évènement bufferisée valide.

events

Une combinaison de EV_READ et EV_WRITE.

lowmark

Marque basse.

highmark

Marque haute.


Ecrit des données vers un évènement bufferisé

  • « event_buffer_watermark_set
  • event_del »
  • PHP Manual
  • Fonctions Libevent
  • Ecrit des données vers un évènement bufferisé

event_buffer_write

(PECL libevent >= 0.0.1)

event_buffer_write — Ecrit des données vers un évènement bufferisé

Description

bool event_buffer_write ( resource $bevent , string $data [, int $data_size = -1 ] )

Ecrit des données vers l'évènement bufferisé indiqué. Les données sont ajoutées au buffer et écrites vers le descripteur lorsqu'il devient accessible en écriture.

Liste de paramètres

bevent

Ressource d'évènement bufferisé valide.

data

Les données à écrire.

data_size

Taille des données (optionnel). event_buffer_write() écrit toutes les data par défaut.

Valeurs de retour

event_buffer_write() retourne TRUE en cas de succès ou FALSE sinon.


Supprime un évènement de la liste des évènements surveillés

  • « event_buffer_write
  • event_free »
  • PHP Manual
  • Fonctions Libevent
  • Supprime un évènement de la liste des évènements surveillés

event_del

(PECL libevent >= 0.0.1)

event_del — Supprime un évènement de la liste des évènements surveillés

Description

bool event_del ( resource $event )

Annule le event.

Liste de paramètres

event

Ressource d'évènement valide.

Valeurs de retour

event_del() retourne TRUE en cas de succès ou FALSE sinon.


Libère une ressource d'évènement

  • « event_del
  • event_new »
  • PHP Manual
  • Fonctions Libevent
  • Libère une ressource d'évènement

event_free

(PECL libevent >= 0.0.1)

event_free — Libère une ressource d'évènement

Description

void event_free ( resource $event )

Libère une ressource d'évènement précédemment créée.

Liste de paramètres

event

Ressource d'évènement valide.


Crée un nouvel évènement

  • « event_free
  • event_priority_set »
  • PHP Manual
  • Fonctions Libevent
  • Crée un nouvel évènement

event_new

(PECL libevent >= 0.0.1)

event_new — Crée un nouvel évènement

Description

resource event_new ( void )

Crée et retourne une nouvelle ressource d'évènement.

Valeurs de retour

event_new() retourne une nouvelle ressource d'évènement en cas de succès ou FALSE sinon.


Assigne une priorité à un événement

  • « event_new
  • event_set »
  • PHP Manual
  • Fonctions Libevent
  • Assigne une priorité à un événement

event_priority_set

(PECL libevent >= 0.0.5)

event_priority_set — Assigne une priorité à un événement

Description

bool event_priority_set ( resource $event , int $priority )

Assigne une priorité à l'événement event.

Liste de paramètres

event

Une ressource d'événement valide.

priority

Niveau de priorité. Ne peut être inférieur à zéro et ne peut excéder le niveau de priorité maximal de la base de l'événement (voir la fonction event_base_priority_init()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Prépare un évènement

  • « event_priority_set
  • event_timer_add »
  • PHP Manual
  • Fonctions Libevent
  • Prépare un évènement

event_set

(PECL libevent >= 0.0.1)

event_set — Prépare un évènement

Description

bool event_set ( resource $event , mixed $fd , int $events , mixed $callback [, mixed $arg ] )

Prépare un évènement pour être utilisé avec event_add(). L'évènement est préparé à appeler la fonction précisée dans callback sur les évènements spécifiés dans events, qui sont une liste de drapeaux : EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE et EV_PERSIST.

Si EV_SIGNAL est spécifiée dans le paramètre events, alors fd est interprété comme numéro de signal.

Après initialisation de l'évènement, utilisez event_base_set() pour associer l'évènement avec sa base.

Dans le cas d'un évènement qui correspond, ces trois arguments sont passés à la fonction callback:

fd

Numéro de signal ou ressource représentant le flux.

events

Un drapeau qui indique l'évènement. Peut être parmi : EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE et EV_PERSIST.

arg

Paramètre optionnel, précédemment passé à event_set() en tant que arg.

Liste de paramètres

event

Ressource d'évènement valide.

fd

Ressource de flux PHP valide. Le flux doit être transtypable vers un descripteur de fichier , donc vous ne pourrez pas utiliser de filtres de flux la plupart du temps.

events

Un ensemble de drapeaux indiquant l'évènement désiré, peut être EV_READ et/ou EV_WRITE. Le drapeau supplémentaire EV_PERSIST fait persister l'évènement jusqu'à ce que event_del() soit appelée, sinon la fonction de callback n'est invoquée qu'une seule fois.

callback

Fonction de rappel à appeler lorsqu'un évènement correspondant survient.

arg

Paramètres optionnels à passer à la callback.

Valeurs de retour

event_set() retourne TRUE en cas de succès ou FALSE sinon.

Historique

Version | Description
0.0.4 | Le support de EV_SIGNAL a été ajouté.


Alias de event_add

  • « event_set
  • event_timer_del »
  • PHP Manual
  • Fonctions Libevent
  • Alias de event_add

event_timer_add

(PECL libevent >= 0.0.2)

event_timer_add — Alias de event_add()

Description

Cette fonction est un alias de : event_add().


Alias de event_del

  • « event_timer_add
  • event_timer_new »
  • PHP Manual
  • Fonctions Libevent
  • Alias de event_del

event_timer_del

(PECL libevent >= 0.0.2)

event_timer_del — Alias de event_del()

Description

Cette fonction est un alias de : event_del().


Alias de event_new

  • « event_timer_del
  • event_timer_set »
  • PHP Manual
  • Fonctions Libevent
  • Alias de event_new

event_timer_new

(PECL libevent >= 0.0.2)

event_timer_new — Alias de event_new()

Description

Cette fonction est un alias de : event_new().


Prépare un événement timer

  • « event_timer_new
  • PCNTL »
  • PHP Manual
  • Fonctions Libevent
  • Prépare un événement timer

event_timer_set

(PECL libevent >= 0.0.2)

event_timer_set — Prépare un événement timer

Description

bool event_timer_set ( resource $event , callable $callback [, mixed $arg ] )

Prépare un événement timer à utiliser avec la fonction event_add(). L'événement est préparé à appeler la fonction spécifiée par le paramètre callback lorsque le délai d'attente maximal de l'événement est dépassé.

Après l'initialisation de l'événement, utilisez la fonction event_base_set() pour associer l'événement avec la base de l'événement.

Dans le cas d'une correspondance de l'événement, ces trois arguments sont passés à la fonction de rappel callback :

fd

Numéro du signal ou ressource indiquant le flux.

events

Un drapeau indiquant l'événement. Ce sera toujours EV_TIMEOUT pour les événements timer.

arg

Paramètre optionnel, précédemment passé à la fonction event_timer_set() comme argument arg.

Liste de paramètres

event

Ressource d'événement valide.

callback

Fonction de rappel à appeler lorsque des événements correspondants surviennent.

arg

Paramètre optionnel de la fonction de rappel.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Contrôle du processus

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
  • Fonctions PCNTL
    • pcntl_alarm — Planifie une alarme pour délivrer un signal
    • pcntl_errno — Alias de pcntl_strerror
    • pcntl_exec — Exécute le programme indiqué dans l'espace courant de processus
    • pcntl_fork — Duplique le process courant
    • pcntl_get_last_error — Récupère le numéro de l'erreur générée par la dernière fonction pcntl utilisée
    • pcntl_getpriority — Retourne la priorité d'un processus
    • pcntl_setpriority — Change la priorité d'un processus
    • pcntl_signal_dispatch — Appelle les gestionnaires de signaux pour chaque signal en attente
    • pcntl_signal — Installe un gestionnaire de signaux
    • pcntl_sigprocmask — Liste et configure les signaux bloqués
    • pcntl_sigtimedwait — Attend un signal dans un délai donné
    • pcntl_sigwaitinfo — Attend un signal
    • pcntl_strerror — Récupère le message d'erreur système associé avec l'errno fourni
    • pcntl_wait — Attend ou retourne le statut d'un processus fils
    • pcntl_waitpid — Attend la fin de l'exécution d'un processus fils
    • pcntl_wexitstatus — Retourne le code d'un processus fils terminé
    • pcntl_wifexited — Vérifie si le code de retour représente une fin normale
    • pcntl_wifsignaled — Retourne TRUE si le code statut représente une fin due à un signal
    • pcntl_wifstopped — Retourne TRUE si le processus fils est stoppé
    • pcntl_wstopsig — Retourne le signal qui a causé l'arrêt du processus fils
    • pcntl_wtermsig — Retourne le signal qui a provoqué la fin du processus fils


Introduction

Le système de contrôle des processus de PHP implémente un système de création, gestion et terminaison des processus comme sous Unix. Cette extension ne doit pas être activée pour une utilisation en serveur web, car les résultats pourraient être inattendus.

Cette documentation explique l'utilisation générale des fonctions du gestionnaire de processus. Pour des informations plus détaillées sur le contrôle des processus Unix, nous vous encourageons à consulter votre documentation système, incluant notamment fork(2), waitpid(2) et signal(2), ou bien à compulser un ouvrage de référence comme "Advanced Programming in the UNIX Environment" par W. Richard Stevens, chez Addison-Wesley.

PCNTL utilise maintenant les ticks comme mécanisme de rappel du gestionnaire de signaux, ce qui est beaucoup plus rapide que la version précédente. Ce changement suit la même sémantique que l'utilisation de ticks. Vous utilisez declare() pour spécifier les endroits de votre programme où les fonctions de rappel peuvent être appelés. Cela vous permet de minimaliser la consommation due à la gestion d'événements asynchrones. Par le passé, compiler PHP avec pcntl revenait toujours à souffrir cette consommation, même si votre script n'utilisait pas pcntl.

Il y a un ajustement à faire pour tous les scripts pcntl basés sur une version antérieure à PHP 4.3.0 afin qu'ils puissent fonctionner : il faut soit utiliser declare() dans la section où vous voulez avoir la fonction de rappel, soit l'activer pour tout le script avec la nouvelle syntaxe globale de declare().

Note: Cette extension n'est pas disponible sur les plates-formes Windows.


Installation

Le support du contrôle des processus n'est pas activé par défaut en PHP. Vous devez compiler la version CLI ou CGI de PHP avec l'option de configuration --enable-pcntl pour activer le support de cette extension.

Note:

Actuellement, ce module ne fonctionne pas sur les environnements non Unix comme Windows.


Constantes pré-définies

La liste suivante représente les signaux supportés par les fonctions de gestion des processus. Reportez-vous au manuel de votre système (signal(7)) pour plus de détails sur ces signaux.

WNOHANG (entier)
WUNTRACED (entier)
SIG_IGN (entier)
SIG_DFL (entier)
SIG_ERR (entier)
SIGHUP (entier)
SIGINT (entier)
SIGQUIT (entier)
SIGILL (entier)
SIGTRAP (entier)
SIGABRT (entier)
SIGIOT (entier)
SIGBUS (entier)
SIGFPE (entier)
SIGKILL (entier)
SIGUSR1 (entier)
SIGSEGV (entier)
SIGUSR2 (entier)
SIGPIPE (entier)
SIGALRM (entier)
SIGTERM (entier)
SIGSTKFLT (entier)
SIGCLD (entier)
SIGCHLD (entier)
SIGCONT (entier)
SIGSTOP (entier)
SIGTSTP (entier)
SIGTTIN (entier)
SIGTTOU (entier)
SIGURG (entier)
SIGXCPU (entier)
SIGXFSZ (entier)
SIGVTALRM (entier)
SIGPROF (entier)
SIGWINCH (entier)
SIGPOLL (entier)
SIGIO (entier)
SIGPWR (entier)
SIGSYS (entier)
SIGBABY (entier)
SIG_BLOCK (entier)
Disponible depuis PHP 5.3.0.
SIG_UNBLOCK (entier)
Disponible depuis PHP 5.3.0.
SIG_SETMASK (entier)
Disponible depuis PHP 5.3.0.
SI_USER (entier)
Disponible depuis PHP 5.3.0.
SI_NOINFO (entier)
Disponible depuis PHP 5.3.0.
SI_KERNEL (entier)
Disponible depuis PHP 5.3.0.
SI_QUEUE (entier)
Disponible depuis PHP 5.3.0.
SI_TIMER (entier)
Disponible depuis PHP 5.3.0.
SI_MSGGQ (entier)
Disponible depuis PHP 5.3.0.
SI_ASYNCIO (entier)
Disponible depuis PHP 5.3.0.
SI_SIGIO (entier)
Disponible depuis PHP 5.3.0.
SI_TKILL (entier)
Disponible depuis PHP 5.3.0.
CLD_EXITED (entier)
Disponible depuis PHP 5.3.0.
CLD_KILLED (entier)
Disponible depuis PHP 5.3.0.
CLD_DUMPED (entier)
Disponible depuis PHP 5.3.0.
CLD_TRAPPED (entier)
Disponible depuis PHP 5.3.0.
CLD_STOPPED (entier)
Disponible depuis PHP 5.3.0.
CLD_CONTINUED (entier)
Disponible depuis PHP 5.3.0.
TRAP_BRKPT (entier)
Disponible depuis PHP 5.3.0.
TRAP_TRACE (entier)
Disponible depuis PHP 5.3.0.
POLL_IN (entier)
Disponible depuis PHP 5.3.0.
POLL_OUT (entier)
Disponible depuis PHP 5.3.0.
POLL_MSG (entier)
Disponible depuis PHP 5.3.0.
POLL_ERR (entier)
Disponible depuis PHP 5.3.0.
POLL_PRI (entier)
Disponible depuis PHP 5.3.0.
POLL_HUP (entier)
Disponible depuis PHP 5.3.0.
ILL_ILLOPC (entier)
Disponible depuis PHP 5.3.0.
ILL_ILLOPN (entier)
Disponible depuis PHP 5.3.0.
ILL_ILLADR (entier)
Disponible depuis PHP 5.3.0.
ILL_ILLTRP (entier)
Disponible depuis PHP 5.3.0.
ILL_PRVOPC (entier)
Disponible depuis PHP 5.3.0.
ILL_PRVREG (entier)
Disponible depuis PHP 5.3.0.
ILL_COPROC (entier)
Disponible depuis PHP 5.3.0.
ILL_BADSTK (entier)
Disponible depuis PHP 5.3.0.
FPE_INTDIV (entier)
Disponible depuis PHP 5.3.0.
FPE_INTOVF (entier)
Disponible depuis PHP 5.3.0.
FPE_FLTDIV (entier)
Disponible depuis PHP 5.3.0.
FPE_FLTOVF (entier)
Disponible depuis PHP 5.3.0.
FPE_FLTUND (entier)
Disponible depuis PHP 5.3.0.
FPE_FLTRES (entier)
Disponible depuis PHP 5.3.0.
FPE_FLTINV (entier)
Disponible depuis PHP 5.3.0.
FPE_FLTSUB (entier)
Disponible depuis PHP 5.3.0.
SEGV_MAPERR (entier)
Disponible depuis PHP 5.3.0.
SEGV_ACCERR (entier)
Disponible depuis PHP 5.3.0.
BUS_ADRALN (entier)
Disponible depuis PHP 5.3.0.
BUS_ADRERR (entier)
Disponible depuis PHP 5.3.0.
BUS_OBJERR (entier)
Disponible depuis PHP 5.3.0.


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • PCNTL
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Cet exemple forke un processus démon, avec un gestionnaire de signaux.

Exemple #1 Exemple de contrôle de processus

<?php
declare(ticks=1);

$pid = pcntl_fork();
if ($pid == -1) {
     die("impossible de forker");
} else if ($pid) {
     exit(); // nous sommes le processus père
} else {
     // nous sommes le processus fils
}

// détachons le processus du terminal
if (posix_setsid() == -1) {
    die("impossible de se détacher du terminal");
}

// configuration des gestionnaires de signaux
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");

// boucle infinie
while (1) {

    // exécution de quelque chose

}

function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // gestion des tâches de terminaison
             exit;
             break;
         case SIGHUP:
             // gestion des tâches de redémarrage
             break;
         default:
             // gestion des autres tâches
     }

}

?>


Fonctions PCNTL

Voir aussi

Un tour par la section sur les fonctions POSIX peut être utile.

Sommaire

  • pcntl_alarm — Planifie une alarme pour délivrer un signal
  • pcntl_errno — Alias de pcntl_strerror
  • pcntl_exec — Exécute le programme indiqué dans l'espace courant de processus
  • pcntl_fork — Duplique le process courant
  • pcntl_get_last_error — Récupère le numéro de l'erreur générée par la dernière fonction pcntl utilisée
  • pcntl_getpriority — Retourne la priorité d'un processus
  • pcntl_setpriority — Change la priorité d'un processus
  • pcntl_signal_dispatch — Appelle les gestionnaires de signaux pour chaque signal en attente
  • pcntl_signal — Installe un gestionnaire de signaux
  • pcntl_sigprocmask — Liste et configure les signaux bloqués
  • pcntl_sigtimedwait — Attend un signal dans un délai donné
  • pcntl_sigwaitinfo — Attend un signal
  • pcntl_strerror — Récupère le message d'erreur système associé avec l'errno fourni
  • pcntl_wait — Attend ou retourne le statut d'un processus fils
  • pcntl_waitpid — Attend la fin de l'exécution d'un processus fils
  • pcntl_wexitstatus — Retourne le code d'un processus fils terminé
  • pcntl_wifexited — Vérifie si le code de retour représente une fin normale
  • pcntl_wifsignaled — Retourne TRUE si le code statut représente une fin due à un signal
  • pcntl_wifstopped — Retourne TRUE si le processus fils est stoppé
  • pcntl_wstopsig — Retourne le signal qui a causé l'arrêt du processus fils
  • pcntl_wtermsig — Retourne le signal qui a provoqué la fin du processus fils


Planifie une alarme pour délivrer un signal

  • « Fonctions PCNTL
  • pcntl_errno »
  • PHP Manual
  • Fonctions PCNTL
  • Planifie une alarme pour délivrer un signal

pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pcntl_alarm — Planifie une alarme pour délivrer un signal

Description

int pcntl_alarm ( int $seconds )

Créé un compte à rebours qui enverra un signal SIGALRM au processus après seconds secondes. Tout appel à pcntl_alarm() annulera les comptes à rebours précédemment configurés.

Liste de paramètres

seconds

Le nombre de secondes à attendre. Si seconds vaut 0, aucune nouvelle alarme ne sera créée.

Valeurs de retour

Retourne le temps en seconde qui reste avant l'exécution de l'alarme précédente, ou 0 si aucune alarme n'était planifiée.


Alias de pcntl_strerror

  • « pcntl_alarm
  • pcntl_exec »
  • PHP Manual
  • Fonctions PCNTL
  • Alias de pcntl_strerror

pcntl_errno

(PHP 5 >= 5.3.4, PHP 7)

pcntl_errno — Alias de pcntl_strerror()

Description

Cette fonction est un alias de : pcntl_strerror()


Exécute le programme indiqué dans l'espace courant de processus

  • « pcntl_errno
  • pcntl_fork »
  • PHP Manual
  • Fonctions PCNTL
  • Exécute le programme indiqué dans l'espace courant de processus

pcntl_exec

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pcntl_exec — Exécute le programme indiqué dans l'espace courant de processus

Description

bool pcntl_exec ( string $path [, array $args [, array $envs ]] )

Exécute le programme indiqué dans l'espace courant de processus.

Liste de paramètres

path

path doit être le chemin vers un binaire exécutable ou un script avec un chemin valide pointant vers un exécutable à la première ligne (par exemple, #!/usr/local/bin/perl). Voir les pages d'aide de votre système concernant execve(2) pour plus d'informations.

args

args est un tableau d'arguments sous la forme de chaînes de caractères passées au programme.

envs

envs est un tableau de chaînes de caractères qui sont passées au programme comme variables d'environnement. Le tableau est de la forme nom => valeur, la clé est le nom de la variable d'environnement et la valeur est la valeur de cette variable.

Valeurs de retour

Retourne FALSE si une erreur survient et ne retourne rien en cas de succès.


Duplique le process courant

  • « pcntl_exec
  • pcntl_get_last_error »
  • PHP Manual
  • Fonctions PCNTL
  • Duplique le process courant

pcntl_fork

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_fork — Duplique le process courant

Description

int pcntl_fork ( void )

pcntl_fork() crée un processus fils, qui ne diffère du processus père que par l'identifiant de processus et l'identifiant PPID. Reportez-vous à la page de man fork(2) pour avoir des détails sur le comportement de cette fonction sur votre système.

Valeurs de retour

En cas de succès, le PID (identifiant de processus) du fils est retourné dans le processus père, et 0 est retourné dans le processus fils. En cas d'échec, -1 est retourné dans le contexte du père, aucun processus fils ne sera créé et PHP générera une erreur.

Exemples

Exemple #1 Exemple avec pcntl_fork()

<?php

$pid = pcntl_fork();
if ($pid == -1) {
     die('duplication impossible');
} else if ($pid) {
     // le père
     pcntl_wait($status); // Protège encore des enfants zombies
} else {
     // le fils
}

?>

Voir aussi

  • pcntl_waitpid() - Attend la fin de l'exécution d'un processus fils
  • pcntl_signal() - Installe un gestionnaire de signaux
  • setproctitle() - Définit le titre du processus


Récupère le numéro de l'erreur générée par la dernière fonction pcntl utilisée

  • « pcntl_fork
  • pcntl_getpriority »
  • PHP Manual
  • Fonctions PCNTL
  • Récupère le numéro de l'erreur générée par la dernière fonction pcntl utilisée

pcntl_get_last_error

(PHP 5 >= 5.3.4, PHP 7)

pcntl_get_last_error — Récupère le numéro de l'erreur générée par la dernière fonction pcntl utilisée

Description

int pcntl_get_last_error ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns error code.

Voir aussi

  • pcntl_strerror() - Récupère le message d'erreur système associé avec l'errno fourni


Retourne la priorité d'un processus

  • « pcntl_get_last_error
  • pcntl_setpriority »
  • PHP Manual
  • Fonctions PCNTL
  • Retourne la priorité d'un processus

pcntl_getpriority

(PHP 5, PHP 7)

pcntl_getpriority — Retourne la priorité d'un processus

Description

int pcntl_getpriority ([ int $pid = getmypid() [, int $process_identifier = PRIO_PROCESS ]] )

pcntl_getpriority() retourne la priorité de pid. Comme les niveaux de priorités changent entre les types de systèmes et les versions de kernel, lisez la page de manuel getpriority(2) de votre système pour des détails spécifiques.

Liste de paramètres

pid

Si non spécifié, le pid du processus courant est utilisé.

process_identifier

Une constante parmi PRIO_PGRP, PRIO_USER ou PRIO_PROCESS.

Valeurs de retour

pcntl_getpriority() retourne la priorité du processus ou FALSE en cas d'erreur. Une valeur numérique plus petite rend la planification plus favorable.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi

  • pcntl_setpriority() - Change la priorité d'un processus


Change la priorité d'un processus

  • « pcntl_getpriority
  • pcntl_signal_dispatch »
  • PHP Manual
  • Fonctions PCNTL
  • Change la priorité d'un processus

pcntl_setpriority

(PHP 5, PHP 7)

pcntl_setpriority — Change la priorité d'un processus

Description

bool pcntl_setpriority ( int $priority [, int $pid = getmypid() [, int $process_identifier = PRIO_PROCESS ]] )

pcntl_setpriority() change la priorité de pid à priority.

Liste de paramètres

priority

priority est généralement une valeur allant de -20 à 20. La priorité par défaut est 0 tandis qu'une valeur numérique plus petite favorise une meilleure planification. Comme les niveaux de priorité changent entre les types de systèmes et les versions de kernel, lisez la page de manuel getpriority(2) de votre système pour des détails spécifiques.

pid

Si non spécifié, le pid du processus courant est utilisé.

process_identifier

Une constante parmi PRIO_PGRP, PRIO_USER ou PRIO_PROCESS.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • pcntl_getpriority() - Retourne la priorité d'un processus


Appelle les gestionnaires de signaux pour chaque signal en attente

  • « pcntl_setpriority
  • pcntl_signal »
  • PHP Manual
  • Fonctions PCNTL
  • Appelle les gestionnaires de signaux pour chaque signal en attente

pcntl_signal_dispatch

(PHP 5 >= 5.3.0, PHP 7)

pcntl_signal_dispatch — Appelle les gestionnaires de signaux pour chaque signal en attente

Description

bool pcntl_signal_dispatch ( void )

La fonction pcntl_signal_dispatch() appelle les gestionnaires de signaux installés par pcntl_signal() pour chaque signal en attente.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pcntl_signal_dispatch()

<?php
echo "Installation d'un gestionnaire de signal...\n";
pcntl_signal(SIGHUP,  function($signo) {
     echo "Gestionnaire de signal appelé!\n";
});

echo "Génération d'un signal SIGHUP à moi-même...\n";
posix_kill(posix_getpid(), SIGHUP);

echo "Envoi...\n";
pcntl_signal_dispatch();

echo "Fait\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Installation d'un gestionnaire de signal...
Génération d'un signal SIGHUP à moi-même...
Envoi...
Gestionnaire de signal appelé!
Fait

Voir aussi

  • pcntl_signal() - Installe un gestionnaire de signaux
  • pcntl_sigprocmask() - Liste et configure les signaux bloqués
  • pcntl_sigwaitinfo() - Attend un signal
  • pcntl_sigtimedwait() - Attend un signal dans un délai donné


Installe un gestionnaire de signaux

  • « pcntl_signal_dispatch
  • pcntl_sigprocmask »
  • PHP Manual
  • Fonctions PCNTL
  • Installe un gestionnaire de signaux

pcntl_signal

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_signal — Installe un gestionnaire de signaux

Description

bool pcntl_signal ( int $signo , callable|int $handler [, bool $restart_syscalls = true ] )

pcntl_signal() installe un nouveau gestionnaire de signaux ou remplace le gestionnaire de signaux courant pour le signal indiqué par le paramètre signo.

Liste de paramètres

signo

Le numéro du signal.

handler

Le gestionnaire de signaux. Peut être un callable, qui sera appelé pour gérer le signal, ou bien l'une des deux constantes globales SIG_IGN ou SIG_DFL, qui vont, respectivement, ignorer le signal ou restaurer le gestionnaire de signaux par défaut.

Si un callable est fourni, il doit implémenter la signature suivante :

void handler ( int $signo )
signo
Le signal à gérer.

Note:

Notez que lorsque vous configurez le gestionnaire avec une méthode d'objet, le compteur de référence de l'objet est incrémenté, ce qui le rend persistant jusqu'à ce que vous changiez le gestionnaire de signaux pour un autre, ou que le script se termine.

restart_syscalls

Le paramètre optionnel restart_syscalls spécifie si l'appel système de redémarrage (restarting) doit être utilisé lorsque ce signal arrive.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
4.3.0 | Depuis PHP 4.3.0, PCNTL utilise les ticks comme mécanisme de signaux de traitement des rappels qui est plus rapide que l'ancien mécanisme. Ce changement suit les mêmes règles que l'utilisation des "user ticks". Vous devriez utiliser la requête declare() pour spécifier l'endroit dans votre programme où les rappels sont autorisés à être utilisés pour le traitement du signal de la fonction proprement dite (comme utilisé dans l'exemple suivant).

Exemples

Exemple #1 Exemple avec pcntl_signal()

<?php
// l'usage des ticks est nécessaire depuis PHP 4.3.0
declare(ticks = 1);

// gestionnaire de signaux système
function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // gestion de l'extinction
             exit;
             break;
         case SIGHUP:
             // gestion du redémarrage
             break;
         case SIGUSR1:
             echo "Reçu le signe SIGUSR1...\n";
             break;
         default:
             // gestion des autres signaux
     }

}

echo "Installation du gestionnaire de signaux...\n";

// Installation des gestionnaires de signaux
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");

// ou bien utilisez un objet (disponible depuis PHP 4.3.0)
// pcntl_signal(SIGUSR1, array($obj, "faire_quelque_chose"));

echo"Génération d'un signal SIGTERM à moi-même...\n";

// envoi de SIGUSR1 à l'identifiant de processus courant
posix_kill(posix_getpid(), SIGUSR1);

echo "Fait\n";

?>

Notes

La fonction pcntl_signal() ne place pas dans une pile les gestionnaires de signaux, mais les remplace.

Voir aussi

  • pcntl_fork() - Duplique le process courant
  • pcntl_waitpid() - Attend la fin de l'exécution d'un processus fils


Liste et configure les signaux bloqués

  • « pcntl_signal
  • pcntl_sigtimedwait »
  • PHP Manual
  • Fonctions PCNTL
  • Liste et configure les signaux bloqués

pcntl_sigprocmask

(PHP 5 >= 5.3.0, PHP 7)

pcntl_sigprocmask — Liste et configure les signaux bloqués

Description

bool pcntl_sigprocmask ( int $how , array $set [, array &$oldset ] )

La fonction pcntl_sigprocmask() ajoute, retire ou configure les signaux bloqués, en fonction du paramètre how.

Liste de paramètres

how

Configure le comportement de pcntl_sigprocmask(). Les valeurs possibles sont :

  • SIG_BLOCK : ajout le signal à la liste des signaux bloquésé.
  • SIG_UNBLOCK: retire le signal de la liste des signaux bloqués.
  • SIG_SETMASK : remplace la liste actuelle de signaux bloqués par une nouvelle liste.

set

Liste de signaux.

oldset

Le paramètre oldset est un tableau qui contient la liste précédente des signaux bloqués.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec pcntl_sigprocmask()

<?php
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));
$oldset = array();
pcntl_sigprocmask(SIG_UNBLOCK, array(SIGHUP), $oldset);
?>

Voir aussi

  • pcntl_sigwaitinfo() - Attend un signal
  • pcntl_sigtimedwait() - Attend un signal dans un délai donné


Attend un signal dans un délai donné

  • « pcntl_sigprocmask
  • pcntl_sigwaitinfo »
  • PHP Manual
  • Fonctions PCNTL
  • Attend un signal dans un délai donné

pcntl_sigtimedwait

(PHP 5 >= 5.3.0, PHP 7)

pcntl_sigtimedwait — Attend un signal dans un délai donné

Description

int pcntl_sigtimedwait ( array $set [, array &$siginfo [, int $seconds = 0 [, int $nanoseconds = 0 ]]] )

La fonction pcntl_sigtimedwait() opère exactement comme pcntl_sigwaitinfo() hormis le fait qu'elle prend deux paramètres supplémentaires : seconds et nanoseconds, qui établissent une durée maximale d'attente.

Liste de paramètres

set

Une liste de signaux à attendre.

siginfo

Le paramètre siginfo reçoit les informations du signal, sous forme de tableau. Voyez pcntl_sigwaitinfo().

seconds

Délai d'attente maximal en secondes.

nanoseconds

Délai d'attente maximal en nanosecondes.

Valeurs de retour

En cas de réussite, pcntl_sigtimedwait() retourne un numéro de signal.

Voir aussi

  • pcntl_sigprocmask() - Liste et configure les signaux bloqués
  • pcntl_sigwaitinfo() - Attend un signal


Attend un signal

  • « pcntl_sigtimedwait
  • pcntl_strerror »
  • PHP Manual
  • Fonctions PCNTL
  • Attend un signal

pcntl_sigwaitinfo

(PHP 5 >= 5.3.0, PHP 7)

pcntl_sigwaitinfo — Attend un signal

Description

int pcntl_sigwaitinfo ( array $set [, array &$siginfo ] )

La fonction pcntl_sigwaitinfo() suspend son exécution jusqu'à la réception d'un des signaux, indiqué dans set. Si un des signaux est déjà en attente (i.e., bloqué par pcntl_sigprocmask()), pcntl_sigwaitinfo() se termine immédiatement.

Liste de paramètres

set

Un tableau de signaux à attendre.

siginfo

Le paramètre siginfo reçoit un tableau contenant les informations sur le signal.

Les éléments suivants sont toujours disponibles pour tous les signaux :

  • signo : numéro de signal
  • errno : un numéro d'erreur
  • code : code de signal

Les éléments suivants peuvent être disponibles pour le signal SIGCHLD :

  • status : valeur de sortie ou signal
  • utime : temps utilisateur consommé
  • stime : temps système consommé
  • pid : numéro de processus appelant
  • uid : identifiant de l'utilisateur appelant, ou du processus appelant

Les éléments suivants peuvent être disponibles pour les signaux SIGILL, SIGFPE, SIGSEGV et SIGBUS :

  • addr : adresse mémoire qui a causé l'erreur

Les éléments suivants peuvent être disponibles pour le signal SIGPOLL :

  • band : événement de band
  • fd : numéro de pointeur de fichier

Valeurs de retour

En cas de succès, pcntl_sigwaitinfo() retourne le numéro du signal.

Exemples

Exemple #1 Exemple avec pcntl_sigwaitinfo()

<?php
echo "Bloque le signal SIGHUP\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));

echo "Envoi du signal SIGHUP à moi-même\n";
posix_kill(posix_getpid(), SIGHUP);

echo "Attente de signaux\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>

Voir aussi

  • pcntl_sigprocmask() - Liste et configure les signaux bloqués
  • pcntl_sigtimedwait() - Attend un signal dans un délai donné


Récupère le message d'erreur système associé avec l'errno fourni

  • « pcntl_sigwaitinfo
  • pcntl_wait »
  • PHP Manual
  • Fonctions PCNTL
  • Récupère le message d'erreur système associé avec l'errno fourni

pcntl_strerror

(PHP 5 >= 5.3.4, PHP 7)

pcntl_strerror — Récupère le message d'erreur système associé avec l'errno fourni

Description

string pcntl_strerror ( int $errno )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

errno

Valeurs de retour

Retourne la description de l'erreur en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • pcntl_get_last_error() - Récupère le numéro de l'erreur générée par la dernière fonction pcntl utilisée


Attend ou retourne le statut d'un processus fils

  • « pcntl_strerror
  • pcntl_waitpid »
  • PHP Manual
  • Fonctions PCNTL
  • Attend ou retourne le statut d'un processus fils

pcntl_wait

(PHP 5, PHP 7)

pcntl_wait — Attend ou retourne le statut d'un processus fils

Description

int pcntl_wait ( int &$status [, int $options = 0 ] )

pcntl_wait() suspend l'exécution du processus courant jusqu'à ce qu'un des processus fils soit terminé, ou qu'un signal soit envoyé pour terminer le processus courant ou pour appeler un gestionnaire. Si le processus est déjà terminé au moment de l'appel de la fonction, c'est-à-dire si le processus est un zombie, alors la fonction se termine immédiatement. Toutes les ressources système utilisées par le processus fils sont libérées. Lisez le manuel de votre système à wait(2) pour avoir des détails spécifiques sur le fonctionnement de wait() sur celui-ci.

Note:

Cette fonction est équivalente à appeler la fonction pcntl_waitpid() avec un pid valant -1 et aucune option.

Liste de paramètres

status

pcntl_wait() va stocker les informations
de statut dans le paramètre status
qui peut être lu avec les fonctions suivantes :
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() et
pcntl_wstopsig().

options

Si wait3 est disponible sur votre système (c'est le cas de la plupart des systèmes BSD-), vous pouvez ajouter le paramètre optionnel options. S'il n'est pas fourni, wait() sera utilisé pour l'appel système. Si wait3 n'est pas disponible, le paramètre options n'aura pas d'effet. La valeur de options est la combinaison de zéro ou plusieurs des constantes suivantes :

Valeurs possibles pour options
WNOHANG | Termine immédiatement si aucun processus ne s'est terminé.
WUNTRACED | Termine pour les processus qui sont stoppés, et pour ceux dont le résultat n'a pas été rapporté.

Valeurs de retour

pcntl_wait() retourne l'identifiant de processus qui s'est terminé, -1 en cas d'erreur ou zéro si WNOHANG a été fourni comme option (disponible sur les systèmes wait3), et qu'aucun processus fils n'était disponible.

Voir aussi

  • pcntl_fork() - Duplique le process courant
  • pcntl_signal() - Installe un gestionnaire de signaux
  • pcntl_wifexited() - Vérifie si le code de retour représente une fin normale
  • pcntl_wifstopped() - Retourne TRUE si le processus fils est stoppé
  • pcntl_wifsignaled() - Retourne TRUE si le code statut représente une fin due à un signal
  • pcntl_wexitstatus() - Retourne le code d'un processus fils terminé
  • pcntl_wtermsig() - Retourne le signal qui a provoqué la fin du processus fils
  • pcntl_wstopsig() - Retourne le signal qui a causé l'arrêt du processus fils
  • pcntl_waitpid() - Attend la fin de l'exécution d'un processus fils


Attend la fin de l'exécution d'un processus fils

  • « pcntl_wait
  • pcntl_wexitstatus »
  • PHP Manual
  • Fonctions PCNTL
  • Attend la fin de l'exécution d'un processus fils

pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_waitpid — Attend la fin de l'exécution d'un processus fils

Description

int pcntl_waitpid ( int $pid , int &$status [, int $options = 0 ] )

Suspend l'exécution du processus courant jusqu'à ce qu'un processus fils spécifié par le paramètre pid ait terminé, qu'un signal ait mis fin à ce processus ou qu'un signal ait appelé un gestionnaire de signaux.

Si le processus fils identifié par pid est déjà terminé au moment de l'appel de cette fonction (on les appelle des processus "zombie"), la fonction se termine immédiatement. Toute ressource système utilisée par le processus fils est libérée. Reportez-vous à la page de man waitpid(2) pour avoir des détails sur le comportement de cette fonction sur votre système.

Liste de paramètres

pid

La valeur de pid peut être une parmi les suivantes :

Valeurs possibles pour pid
< -1 | attend que tous les processus fils dont l'identifiant de groupe est égal à la valeur absolue de pid soient terminés.
-1 | attend que tous les processus fils soient terminés. Ceci est le même comportement que celui de la fonction pcntl_wait().
0 | attend que tous les processus fils dont l'identifiant de groupe est égal à celui du processus courant soient terminés.
> 0 | attend que le processus fils dont l'identifiant est égal à pid soit terminé.

Note:

Si pid vaut -1, cela équivaut à utiliser la fonction pcntl_wait() (minimum options).

status

pcntl_waitpid() enregistrera des informations sur
le statut courant du processus dans le paramètre
status, auquel on peut accéder grâce aux
fonctions suivantes :
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() et
pcntl_wstopsig().

options

Le paramètre options peut prendre la valeur zéro, ou plusieurs des constantes globales suivantes (combinez les avec l'opérateur OR) :

Valeurs possibles de options
WNOHANG | retourne immédiatement si aucun processus fils ne s'est terminé.
WUNTRACED | retourne lorsque les processus fils sont arrêtés et que leur statut n'a pas été mis à jour.

Valeurs de retour

pcntl_waitpid() retourne l'identifiant de processus du processus fils qui s'est terminé, ou bien -1 en cas d'erreur ou encore zéro si WNOHANG a été utilisée et qu'aucun processus fils n'était disponible.

Voir aussi

  • pcntl_fork() - Duplique le process courant
  • pcntl_signal() - Installe un gestionnaire de signaux
  • pcntl_wifexited() - Vérifie si le code de retour représente une fin normale
  • pcntl_wifstopped() - Retourne TRUE si le processus fils est stoppé
  • pcntl_wifsignaled() - Retourne TRUE si le code statut représente une fin due à un signal
  • pcntl_wexitstatus() - Retourne le code d'un processus fils terminé
  • pcntl_wtermsig() - Retourne le signal qui a provoqué la fin du processus fils
  • pcntl_wstopsig() - Retourne le signal qui a causé l'arrêt du processus fils


Retourne le code d'un processus fils terminé

  • « pcntl_waitpid
  • pcntl_wifexited »
  • PHP Manual
  • Fonctions PCNTL
  • Retourne le code d'un processus fils terminé

pcntl_wexitstatus

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wexitstatus — Retourne le code d'un processus fils terminé

Description

int pcntl_wexitstatus ( int $status )

Retourne le code de retour du processus fils. Cette fonction n'est utile que si la fonction pcntl_wifexited() a retourné TRUE.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne le code de retour, sous la forme d'un entier.

Voir aussi

  • pcntl_waitpid() - Attend la fin de l'exécution d'un processus fils
  • pcntl_wifexited() - Vérifie si le code de retour représente une fin normale


Vérifie si le code de retour représente une fin normale

  • « pcntl_wexitstatus
  • pcntl_wifsignaled »
  • PHP Manual
  • Fonctions PCNTL
  • Vérifie si le code de retour représente une fin normale

pcntl_wifexited

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wifexited — Vérifie si le code de retour représente une fin normale

Description

bool pcntl_wifexited ( int $status )

Retourne TRUE si le processus fils a retourné un code qui représente une fin normale.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne TRUE si le processus fils a retourné un code qui représente une fin normale, FALSE sinon.

Voir aussi

  • pcntl_waitpid() - Attend la fin de l'exécution d'un processus fils
  • pcntl_wexitstatus() - Retourne le code d'un processus fils terminé


Retourne TRUE si le code statut représente une fin due à un signal

  • « pcntl_wifexited
  • pcntl_wifstopped »
  • PHP Manual
  • Fonctions PCNTL
  • Retourne TRUE si le code statut représente une fin due à un signal

pcntl_wifsignaled

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wifsignaled — Retourne TRUE si le code statut représente une fin due à un signal

Description

bool pcntl_wifsignaled ( int $status )

Retourne TRUE si le processus fils sort car un signal n'a pu être reçu.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne TRUE si le processus fils sort car un signal n'a pu être reçu, FALSE sinon.

Voir aussi

  • pcntl_waitpid() - Attend la fin de l'exécution d'un processus fils
  • pcntl_signal() - Installe un gestionnaire de signaux


Retourne TRUE si le processus fils est stoppé

  • « pcntl_wifsignaled
  • pcntl_wstopsig »
  • PHP Manual
  • Fonctions PCNTL
  • Retourne TRUE si le processus fils est stoppé

pcntl_wifstopped

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wifstopped — Retourne TRUE si le processus fils est stoppé

Description

bool pcntl_wifstopped ( int $status )

Retourne TRUE si le processus fils est stoppé ; cela n'est possible que si l'appel à pcntl_waitpid() a été fait avec l'option WUNTRACED.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne TRUE si le processus fils est stoppé, FALSE sinon.

Voir aussi

  • pcntl_waitpid() - Attend la fin de l'exécution d'un processus fils


Retourne le signal qui a causé l'arrêt du processus fils

  • « pcntl_wifstopped
  • pcntl_wtermsig »
  • PHP Manual
  • Fonctions PCNTL
  • Retourne le signal qui a causé l'arrêt du processus fils

pcntl_wstopsig

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wstopsig — Retourne le signal qui a causé l'arrêt du processus fils

Description

int pcntl_wstopsig ( int $status )

Retourne le numéro du signal qui a causé l'arrêt du processus fils. Cette fonction est uniquement utile si pcntl_wifstopped() a retourné TRUE.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne le numéro du signal.

Voir aussi

  • pcntl_waitpid() - Attend la fin de l'exécution d'un processus fils
  • pcntl_wifstopped() - Retourne TRUE si le processus fils est stoppé


Retourne le signal qui a provoqué la fin du processus fils

  • « pcntl_wstopsig
  • POSIX »
  • PHP Manual
  • Fonctions PCNTL
  • Retourne le signal qui a provoqué la fin du processus fils

pcntl_wtermsig

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wtermsig — Retourne le signal qui a provoqué la fin du processus fils

Description

int pcntl_wtermsig ( int $status )

Retourne le numéro du signal qui a provoqué la fin du processus fils. Cette fonction est uniquement utile si pcntl_wifsignaled() retourne TRUE.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne le numéro du signal, sous la forme d'un entier.

Voir aussi

  • pcntl_waitpid() - Attend la fin de l'exécution d'un processus fils
  • pcntl_signal() - Installe un gestionnaire de signaux
  • pcntl_wifsignaled() - Retourne TRUE si le code statut représente une fin due à un signal


POSIX

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
    • Constantes posix_access
    • Constantes posix_mknod
    • Constantes posix_setrlimit
  • Fonctions POSIX
    • posix_access — Détermine l'accessibilité d'un fichier
    • posix_ctermid — Retourne le chemin du terminal
    • posix_errno — Alias de posix_get_last_error
    • posix_get_last_error — Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué
    • posix_getcwd — Chemin du dossier de travail courant
    • posix_getegid — Retourne l'ID effectif du groupe du processus courant
    • posix_geteuid — Retourne l'UID effectif de l'utilisateur du processus courant
    • posix_getgid — Retourne l'UID du groupe du processus courant
    • posix_getgrgid — Retourne des informations sur un groupe
    • posix_getgrnam — Retourne des informations sur un groupe
    • posix_getgroups — Retourne les identifiants du groupe du processus courant
    • posix_getlogin — Retourne le nom de login
    • posix_getpgid — Retourne l'id du groupe de processus
    • posix_getpgrp — Retourne l'identifiant du groupe de processus
    • posix_getpid — Retourne l'identifiant du processus courant
    • posix_getppid — Retourne l'identifiant du processus parent
    • posix_getpwnam — Retourne des informations sur un utilisateur
    • posix_getpwuid — Retourne des informations sur un utilisateur
    • posix_getrlimit — Retourne des informations concernant les limites des ressources système
    • posix_getsid — Retourne le sid du processus
    • posix_getuid — Retourne l'ID de l'utilisateur du processus courant
    • posix_initgroups — Calcule la liste des accès de groupe
    • posix_isatty — Détermine si un pointeur de fichier est un terminal interactif
    • posix_kill — Envoie un signal à un processus
    • posix_mkfifo — Crée un fichier FIFO (first in, first out) (un pipe nommé)
    • posix_mknod — Crée un fichier spécial ou ordinaire (POSIX.1)
    • posix_setegid — Modifie le GID réel du processus courant
    • posix_seteuid — Modifie l'identifiant d'utilisateur réel (UID) du processus courant
    • posix_setgid — Fixe le GID effectif du processus courant
    • posix_setpgid — Fixe l'identifiant de groupe de processus
    • posix_setrlimit — Set system resource limits
    • posix_setsid — Fait du processus courant un chef de session
    • posix_setuid — Fixe l'UID effective du processus courant
    • posix_strerror — Lit le message d'erreur associé à un numéro d'erreur POSIX
    • posix_times — Utilisation des ressources
    • posix_ttyname — Retourne le nom de device du terminal
    • posix_uname — Retourne le nom du système


Introduction

Ce module contient une interface aux fonctions définies dans le standard IEEE 1003.1 (POSIX.1) et qui ne sont accessibles que par cette voie.

Avertissement

Les données sensibles peuvent être récupérées avec les fonctions POSIX, e.g. posix_getpwnam() et ses amis. Aucune de ces fonctions, qui effectuent un accès quelconque, ne peuvent fonctionner lorsque le safe mode est actif. Il est cependant extrêmement conseillé de désactiver l'extension POSIX pour tous les utilisateurs (utilisez l'option --disable-posix lors de la compilation) si vous vous trouvez dans un tel environnement.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.


Installation

Le support des fonctions POSIX est activé par défaut. Vous pouvez désactiver ces fonctions en compilant PHP avec l'option --disable-posix .


Constantes pré-définies

Sommaire

  • Constantes posix_access
  • Constantes posix_mknod
  • Constantes posix_setrlimit

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.


Constantes posix_access

  • « Constantes pré-définies
  • Constantes posix_mknod »
  • PHP Manual
  • Constantes pré-définies
  • Constantes posix_access

Constantes posix_access()

Note:

Ces constantes sont disponibles depuis PHP 5.1.0. Notez cependant que quelques unes peuvent ne pas être disponibles sur votre système.

POSIX_F_OK (entier)
Vérifie si le fichier existe.
POSIX_R_OK (entier)
Vérifie si le fichier existe et a les permissions de lecture.
POSIX_W_OK (entier)
Vérifie si le fichier existe et a les permissions d'écriture.
POSIX_X_OK (entier)
Vérifie si le fichier existe et a les permissions d'exécution.


Constantes posix_mknod

  • « Constantes posix_access
  • Constantes posix_setrlimit »
  • PHP Manual
  • Constantes pré-définies
  • Constantes posix_mknod

Constantes posix_mknod()

Note:

Ces constantes sont disponibles depuis PHP 5.1.0. Notez que quelques unes d'entre elles peuvent pas être disponibles sur votre système.

POSIX_S_IFBLK (entier)
Bloque les fichiers spéciaux
POSIX_S_IFCHR (entier)
Caractère des fichiers spéciaux
POSIX_S_IFIFO (entier)
FIFO (pipe nommé) des fichiers spéciaux
POSIX_S_IFREG (entier)
Fichier normal Normal file
POSIX_S_IFSOCK (entier)
Socket


Constantes posix_setrlimit

  • « Constantes posix_mknod
  • Fonctions POSIX »
  • PHP Manual
  • Constantes pré-définies
  • Constantes posix_setrlimit

Constantes posix_setrlimit()

Note:

Ces constantes sont disponibles depuis PHP 7.0.0. Notez que quelques unes d'entre elles peuvent ne pas être disponibles sur votre système.

Note:

Vous devriez lire les notes ci-dessous en plus du manuel utilisateur sur la fonction setrlimit() de votre système spécifique, sachant qu'il peut y avoir une variation dans l'interprétation de ces limites, y accompris entre plusieurs systèmes qui revendiquent appliquer POSIX dans sa globalité.

POSIX_RLIMIT_AS (integer)
La taille maximale de l'espace d'adresse du processus, en octets. Voir aussi la directive de configuration PHP memory_limit.
POSIX_RLIMIT_CORE (integer)
La taille maximale d'un fichier coeur. Si la limite est définie à 0, aucun fichier coeur ne sera généré.
POSIX_RLIMIT_CPU (integer)
La quantité maximale de temps CPU que le processus peut utiliser, en secondes. Lorsque la limite soft est atteinte, un signal SIGXCPU sera émis, qui peut être intercepté avec la fonction pcntl_signal(). Suivant les systèmes, des signaux SIGXCPU peuvent aussi être émis chaque seconde tant que la limite hard est atteinte, auquel cas, un signal SIGKILL non interceptable sera émis. Voir aussi la fonction set_time_limit().
POSIX_RLIMIT_DATA (integer)
La taille maximale d'un segment de données du processus, en octets. Il est peu probable que cela n'est un quelconque effet sur l'exécution de PHP tant qu'une extension est en cours d'utilisation et appelle la fonction brk() ou sbrk().
POSIX_RLIMIT_FSIZE (integer)
La taille maximale des fichiers que le processus peut créer, en octets.
POSIX_RLIMIT_LOCKS (integer)
Le nombre maximal de verrous que le processus peut créer. Ceci n'est supporté que sur de très vieux noyaux Linux.
POSIX_RLIMIT_MEMLOCK (integer)
Le nombre maximal d'octets qui peuvent être verrouillés en mémoire.
POSIX_RLIMIT_MSGQUEUE (integer)
Le nombre maximal d'octets qui peuvent être alloués pour la file d'attente des messages POSIX. PHP n'est pas fourni avec le support de la file d'attente des messages POSIX, aussi, cette limite n'aura aucun effet tant que vous n'utilisez pas une extension qui implémente ce support.
POSIX_RLIMIT_NICE (integer)
La valeur maximale à laquel le processus peut être changé de priorité. La valeur utilisée sera 20 - limit, sachant que les valeurs limites de la ressource ne peuvent pas être négatives.
POSIX_RLIMIT_NOFILE (integer)
Une valeur supérieure au nombre maximal de descripteur de fichier qui peut être ouvert par ce processus.
POSIX_RLIMIT_NPROC (integer)
Le nombre maximal de processus (et/ou de threads, suivant le système) qui peuvent être créés pour l'ID utilisateur réel du processus.
POSIX_RLIMIT_RSS (integer)
La taille maximale du jeu résident du processus, en pages.
POSIX_RLIMIT_RTPRIO (integer)
La priorité maximale temps réel qui peut être défini via les appels systèmes sched_setscheduler() et sched_setparam().
POSIX_RLIMIT_RTTIME (integer)
La quantité maximale de temps CPU, en microsecondes, que le processus peut consoller sans faire un appel système bloquant s'il utilise l'horloge de temps réel.
POSIX_RLIMIT_SIGPENDING (integer)
Le nombre maximal de signaux qui peuvent être mis en file d'attente pour l'ID utilisateur réel du processus.
POSIX_RLIMIT_STACK (integer)
La taille maximale de la pile du processus, en octets.
POSIX_RLIMIT_INFINITY (integer)
Utilisé pour indiquer une valeur infinie pour une limite de ressource.


Fonctions POSIX

Voir aussi

La section sur le contrôle des processus peut aussi vous intéresser.

Sommaire

  • posix_access — Détermine l'accessibilité d'un fichier
  • posix_ctermid — Retourne le chemin du terminal
  • posix_errno — Alias de posix_get_last_error
  • posix_get_last_error — Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué
  • posix_getcwd — Chemin du dossier de travail courant
  • posix_getegid — Retourne l'ID effectif du groupe du processus courant
  • posix_geteuid — Retourne l'UID effectif de l'utilisateur du processus courant
  • posix_getgid — Retourne l'UID du groupe du processus courant
  • posix_getgrgid — Retourne des informations sur un groupe
  • posix_getgrnam — Retourne des informations sur un groupe
  • posix_getgroups — Retourne les identifiants du groupe du processus courant
  • posix_getlogin — Retourne le nom de login
  • posix_getpgid — Retourne l'id du groupe de processus
  • posix_getpgrp — Retourne l'identifiant du groupe de processus
  • posix_getpid — Retourne l'identifiant du processus courant
  • posix_getppid — Retourne l'identifiant du processus parent
  • posix_getpwnam — Retourne des informations sur un utilisateur
  • posix_getpwuid — Retourne des informations sur un utilisateur
  • posix_getrlimit — Retourne des informations concernant les limites des ressources système
  • posix_getsid — Retourne le sid du processus
  • posix_getuid — Retourne l'ID de l'utilisateur du processus courant
  • posix_initgroups — Calcule la liste des accès de groupe
  • posix_isatty — Détermine si un pointeur de fichier est un terminal interactif
  • posix_kill — Envoie un signal à un processus
  • posix_mkfifo — Crée un fichier FIFO (first in, first out) (un pipe nommé)
  • posix_mknod — Crée un fichier spécial ou ordinaire (POSIX.1)
  • posix_setegid — Modifie le GID réel du processus courant
  • posix_seteuid — Modifie l'identifiant d'utilisateur réel (UID) du processus courant
  • posix_setgid — Fixe le GID effectif du processus courant
  • posix_setpgid — Fixe l'identifiant de groupe de processus
  • posix_setrlimit — Set system resource limits
  • posix_setsid — Fait du processus courant un chef de session
  • posix_setuid — Fixe l'UID effective du processus courant
  • posix_strerror — Lit le message d'erreur associé à un numéro d'erreur POSIX
  • posix_times — Utilisation des ressources
  • posix_ttyname — Retourne le nom de device du terminal
  • posix_uname — Retourne le nom du système


Détermine l'accessibilité d'un fichier

  • « Fonctions POSIX
  • posix_ctermid »
  • PHP Manual
  • Fonctions POSIX
  • Détermine l'accessibilité d'un fichier

posix_access

(PHP 5 >= 5.1.0, PHP 7)

posix_access — Détermine l'accessibilité d'un fichier

Description

bool posix_access ( string $file [, int $mode = POSIX_F_OK ] )

posix_access() vérifie les permissions utilisateurs pour un fichier.

Liste de paramètres

file

Le nom du fichier à tester.

mode

Un masque constitué d'une ou plusieurs constantes parmi POSIX_F_OK, POSIX_R_OK, POSIX_W_OK et POSIX_X_OK.

POSIX_R_OK, POSIX_W_OK et POSIX_X_OK vérifie si, respectivement, le fichier existe et a les permissions en lecture, écriture et exécution. POSIX_F_OK vérifie uniquement si le fichier existe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec posix_access()

Cet exemple vérifie si le fichier $file a les permissions en lecture et en écriture, sinon, il affiche un message d'erreur.

<?php

$file = 'un_fichier';

if (posix_access($file, POSIX_R_OK | POSIX_W_OK)) {
    echo 'Le fichier a les permissions en lecture et en écriture !';

} else {
    $error = posix_get_last_error();

    echo "Erreur $error: " . posix_strerror($error);
}

?>

Notes

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

  • posix_get_last_error() - Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué
  • posix_strerror() - Lit le message d'erreur associé à un numéro d'erreur POSIX


Retourne le chemin du terminal

  • « posix_access
  • posix_errno »
  • PHP Manual
  • Fonctions POSIX
  • Retourne le chemin du terminal

posix_ctermid

(PHP 4, PHP 5, PHP 7)

posix_ctermid — Retourne le chemin du terminal

Description

string posix_ctermid ( void )

Génère une chaîne de caractères qui représente le nom du chemin du terminal courant du processus. En cas d'erreur, cette fonction définira l'errno, qui pourra être récupéré en utilisant la fonction posix_get_last_error()

Valeurs de retour

Retourne une chaîne de caractères représentant le nom du chemin du terminal courant en cas de succès. Sinon, FALSE est retourné et errno est défini, qui pourra être récupérer en utilisant la fonction posix_get_last_error().

Exemples

Exemple #1 Exemple avec posix_ctermid()

Cet exemple affichera le chemin du TTY courant.

<?php
echo "L'exécution s'effectue depuis ".posix_ctermid();
?>

Voir aussi

  • posix_ttyname() - Retourne le nom de device du terminal
  • posix_get_last_error() - Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué


Alias de posix_get_last_error

  • « posix_ctermid
  • posix_get_last_error »
  • PHP Manual
  • Fonctions POSIX
  • Alias de posix_get_last_error

posix_errno

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

posix_errno — Alias de posix_get_last_error()

Description

Cette fonction est un alias de : posix_get_last_error().


Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué

  • « posix_errno
  • posix_getcwd »
  • PHP Manual
  • Fonctions POSIX
  • Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué

posix_get_last_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

posix_get_last_error — Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué

Description

int posix_get_last_error ( void )

Retourne le numéro d'erreur retourné par la dernière fonction POSIX qui a échoué. Si vous le message d'erreur associé au numéro d'erreur, utilisez posix_strerror().

Valeurs de retour

Retourne le numéro de la dernière erreur survenue lors d'un appel à une fonction POSIX. Si aucune erreur n'existe, 0 sera retourné.

Exemples

Exemple #1 Exemple avec posix_get_last_error()

Cet exemple tente de terminer un processus bogué, qui a défini la dernière erreur. Nous affichons alors la dernière erreur.

<?php
posix_kill(999459,SIGKILL);
echo 'Erreur retournée : '.posix_get_last_error();
?>

Voir aussi

  • posix_strerror() - Lit le message d'erreur associé à un numéro d'erreur POSIX


Chemin du dossier de travail courant

  • « posix_get_last_error
  • posix_getegid »
  • PHP Manual
  • Fonctions POSIX
  • Chemin du dossier de travail courant

posix_getcwd

(PHP 4, PHP 5, PHP 7)

posix_getcwd — Chemin du dossier de travail courant

Description

string posix_getcwd ( void )

Retourne le chemin absolu du dossier de travail courant. En cas d'erreur, la fonction définira l'errno, qui pourra être récupéré en utilisant la fonction posix_get_last_error()

Valeurs de retour

Retourne une chaîne de caractères représentant le nom du chemin absolu en cas de succès. Si une erreur survient, retourne FALSE et définit l'errno qui pourra être récupéré en utilisant la fonction posix_get_last_error().

Exemples

Exemple #1 Exemple avec posix_getcwd()

Cet exemple retourne le chemin absolu du dossier courant d'exécution du script.

<?php
echo 'Mon dossier courant de travail est : '.posix_getcwd();
?>

Notes

Note:

Cette fonction peut échouer si :

  • vous n'avez pas les droits en lecture ou en recherche
  • le nom du chemin n'existe plus


Retourne l'ID effectif du groupe du processus courant

  • « posix_getcwd
  • posix_geteuid »
  • PHP Manual
  • Fonctions POSIX
  • Retourne l'ID effectif du groupe du processus courant

posix_getegid

(PHP 4, PHP 5, PHP 7)

posix_getegid — Retourne l'ID effectif du groupe du processus courant

Description

int posix_getegid ( void )

Retourne l'ID effectif du groupe du processus courant.

Valeurs de retour

Retourne un entier représentant l'ID effectif du groupe.

Exemples

Exemple #1 Exemple avec posix_getegid()

Cet exemple affichera l'ID effectif du groupe, une fois modifié avec la fonction posix_setegid().

<?php
echo 'Mon ID réel de groupe est : '.posix_getgid(); //20
posix_setegid(40);
echo 'Mon ID réel de groupe est : '.posix_getgid(); //20
echo 'Mon ID effectif de groupe est : '.posix_getegid(); //40
?>

Notes

posix_getegid() est différent de posix_getgid() en le sens où l'identifiant effectif du groupe peut être changé par un appel à la fonction posix_setegid().

Voir aussi

  • posix_getgrgid() - Retourne des informations sur un groupe
  • posix_getgid() - Retourne l'UID du groupe du processus courant
  • posix_setgid() - Fixe le GID effectif du processus courant


Retourne l'UID effectif de l'utilisateur du processus courant

  • « posix_getegid
  • posix_getgid »
  • PHP Manual
  • Fonctions POSIX
  • Retourne l'UID effectif de l'utilisateur du processus courant

posix_geteuid

(PHP 4, PHP 5, PHP 7)

posix_geteuid — Retourne l'UID effectif de l'utilisateur du processus courant

Description

int posix_geteuid ( void )

Retourne l'UID effectif de l'utilisateur du processus courant. Reportez-vous à posix_getpwuid() pour obtenir le nom d'utilisateur.

Valeurs de retour

Retourne l'ID de l'utilisateur, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_geteuid()

Cet exemple affichera l'ID de l'utilisateur courant puis définira l'ID de l'utilisateur effectif dans un ID séparé en utilisant la fonction posix_seteuid(), puis, affichera la différence entre l'ID réel et l'ID effectif.

<?php
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10001
posix_seteuid(10000);
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10000
?>

Voir aussi

  • posix_getpwuid() - Retourne des informations sur un utilisateur
  • posix_getuid() - Retourne l'ID de l'utilisateur du processus courant
  • posix_setuid() - Fixe l'UID effective du processus courant
  • POSIX man page GETEUID(2)


Retourne l'UID du groupe du processus courant

  • « posix_geteuid
  • posix_getgrgid »
  • PHP Manual
  • Fonctions POSIX
  • Retourne l'UID du groupe du processus courant

posix_getgid

(PHP 4, PHP 5, PHP 7)

posix_getgid — Retourne l'UID du groupe du processus courant

Description

int posix_getgid ( void )

Retourne l'ID réel du groupe du processus courant.

Valeurs de retour

Retourne l'ID réel du groupe, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_getgid()

Cet exemple affichera l'ID réel du groupe.

<?php
echo 'Mon ID réel de groupe est : '.posix_getgid(); //20
posix_setegid(40);
echo 'Mon ID réel de groupe est : '.posix_getgid(); //20
echo 'Mon ID effectif de groupe est : '.posix_getegid(); //40
?>

Voir aussi

  • posix_getgrgid() - Retourne des informations sur un groupe
  • posix_getegid() - Retourne l'ID effectif du groupe du processus courant
  • posix_setgid() - Fixe le GID effectif du processus courant
  • POSIX man page GETGID(2)


Retourne des informations sur un groupe

  • « posix_getgid
  • posix_getgrnam »
  • PHP Manual
  • Fonctions POSIX
  • Retourne des informations sur un groupe

posix_getgrgid

(PHP 4, PHP 5, PHP 7)

posix_getgrgid — Retourne des informations sur un groupe

Description

array posix_getgrgid ( int $gid )

Retourne des informations sur un groupe.

Liste de paramètres

gid

L'identifiant du groupe.

Valeurs de retour

Les éléments du tableau retourné sont :

Les informations du groupe
Élément | Description
name | Cet élément contient le nom du groupe. C'est un nom abrégé, habituellement, moins de 16 caractères, représentant le nom du groupe et non le nom du groupe complet.
passwd | Cet élément contient le mot de passe du groupe, crypté. Par exemple, sous les systèmes employant les mots de passe "shadow", un astérisque est retourné.
gid | ID du groupe, doit être le même que le paramètre gid utilisé lors de l'appel à la fonction.
members | C'est un tableau de chaînes de caractères représentant tous les membres du groupe.

Exemples

Exemple #1 Exemple avec posix_getgrgid()

<?php

$groupid   = posix_getegid();
$groupinfo = posix_getgrgid($groupid);

print_r($groupinfo);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Voir aussi

  • posix_getegid() - Retourne l'ID effectif du groupe du processus courant
  • posix_getgrnam() - Retourne des informations sur un groupe
  • filegroup() - Lire le nom du groupe
  • stat() - Renvoie les informations à propos d'un fichier
  • safe_mode_gid
  • POSIX man page GETGRNAM(3)


Retourne des informations sur un groupe

  • « posix_getgrgid
  • posix_getgroups »
  • PHP Manual
  • Fonctions POSIX
  • Retourne des informations sur un groupe

posix_getgrnam

(PHP 4, PHP 5, PHP 7)

posix_getgrnam — Retourne des informations sur un groupe

Description

array posix_getgrnam ( string $name )

Récupère les informations d'un groupe donné.

Liste de paramètres

name

Le nom du groupe

Valeurs de retour

Les éléments du tableau retourné sont :

Les informations du groupe
Élément | Description
name | Cet élément contient le nom du groupe. C'est un nom abrégé, habituellement, contenant moins de 16 caractères. C'est le même que le paramètre name utilisé lors de l'appel à la fonction.
passwd | Cet élément contient le mot de passe du groupe, crypté. Par exemple, sous un système utilisant les mots de passes "shadow", un astérisque est retourné.
gid | L'ID du groupe, sous un format numérique.
members | C'est un tableau de chaînes de caractères pour tous les membres du groupe.

Exemples

Exemple #1 Exemple avec posix_getgrnam()

<?php

$groupinfo = posix_getgrnam("toons");

print_r($groupinfo);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Voir aussi

  • posix_getegid() - Retourne l'ID effectif du groupe du processus courant
  • posix_getgrgid() - Retourne des informations sur un groupe
  • filegroup() - Lire le nom du groupe
  • stat() - Renvoie les informations à propos d'un fichier
  • safe_mode_gid
  • POSIX man page GETGRNAM(3)


Retourne les identifiants du groupe du processus courant

  • « posix_getgrnam
  • posix_getlogin »
  • PHP Manual
  • Fonctions POSIX
  • Retourne les identifiants du groupe du processus courant

posix_getgroups

(PHP 4, PHP 5, PHP 7)

posix_getgroups — Retourne les identifiants du groupe du processus courant

Description

array posix_getgroups ( void )

Retourne les identifiants du groupe du processus courant.

Valeurs de retour

Retourne un tableau contenant les identifiants du groupe du processus courant.

Exemples

Exemple #1 Exemple avec posix_getgroups()

<?php

$groups = posix_getgroups();

print_r($groups);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 4
    [1] => 20
    [2] => 24
    [3] => 25
    [4] => 29
    [5] => 30
    [6] => 33
    [7] => 44
    [8] => 46
    [9] => 104
    [10] => 109
    [11] => 110
    [12] => 1000
)

Voir aussi

  • posix_getgrgid() - Retourne des informations sur un groupe


Retourne le nom de login

  • « posix_getgroups
  • posix_getpgid »
  • PHP Manual
  • Fonctions POSIX
  • Retourne le nom de login

posix_getlogin

(PHP 4, PHP 5, PHP 7)

posix_getlogin — Retourne le nom de login

Description

string posix_getlogin ( void )

Retourne le nom de login de l'utilisateur qui possède le processus courant.

Valeurs de retour

Retourne le nom de login de l'utilisateur, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec posix_getlogin()

<?php
echo posix_getlogin(); //apache
?>

Voir aussi

  • posix_getpwnam() - Retourne des informations sur un utilisateur
  • POSIX man page GETLOGIN(3)


Retourne l'id du groupe de processus

  • « posix_getlogin
  • posix_getpgrp »
  • PHP Manual
  • Fonctions POSIX
  • Retourne l'id du groupe de processus

posix_getpgid

(PHP 4, PHP 5, PHP 7)

posix_getpgid — Retourne l'id du groupe de processus

Description

int posix_getpgid ( int $pid )

Retourne l'id du groupe de processus pour le processus pid ou FALSE si une erreur survient.

Liste de paramètres

pid

L'identifiant du processus.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_getpgid()

<?php
$pid = posix_getppid();
echo posix_getpgid($pid); //35
?>

Notes

Note:

Ce n'est pas une fonction POSIX, mais elle est commune sous BSD et les systèmes Sytem V. Si votre système ne supporte pas cette fonction, alors elle ne sera pas incluse lors de la compilation. Vous devriez vérifier si cette fonction existe avec la fonction function_exists().

Voir aussi

  • posix_getppid() - Retourne l'identifiant du processus parent
  • man page SETPGID(2)


Retourne l'identifiant du groupe de processus

  • « posix_getpgid
  • posix_getpid »
  • PHP Manual
  • Fonctions POSIX
  • Retourne l'identifiant du groupe de processus

posix_getpgrp

(PHP 4, PHP 5, PHP 7)

posix_getpgrp — Retourne l'identifiant du groupe de processus

Description

int posix_getpgrp ( void )

Retourne l'identifiant du groupe de processus du processus courant.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Voir aussi

  • Reportez-vous à POSIX.1 et à getpgrp(2) dans le manuel de votre système POSIX pour plus d'informations sur les groupes de processus.


Retourne l'identifiant du processus courant

  • « posix_getpgrp
  • posix_getppid »
  • PHP Manual
  • Fonctions POSIX
  • Retourne l'identifiant du processus courant

posix_getpid

(PHP 4, PHP 5, PHP 7)

posix_getpid — Retourne l'identifiant du processus courant

Description

int posix_getpid ( void )

Retourne l'identifiant du processus courant.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_getpid()

<?php
echo posix_getpid(); //8805
?>

Voir aussi

  • posix_kill() - Envoie un signal à un processus
  • POSIX man page GETPID(2)


Retourne l'identifiant du processus parent

  • « posix_getpid
  • posix_getpwnam »
  • PHP Manual
  • Fonctions POSIX
  • Retourne l'identifiant du processus parent

posix_getppid

(PHP 4, PHP 5, PHP 7)

posix_getppid — Retourne l'identifiant du processus parent

Description

int posix_getppid ( void )

Retourne l'identifiant du processus parent du processus courant.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_getppid()

<?php
echo posix_getppid(); //8259
?>


Retourne des informations sur un utilisateur

  • « posix_getppid
  • posix_getpwuid »
  • PHP Manual
  • Fonctions POSIX
  • Retourne des informations sur un utilisateur

posix_getpwnam

(PHP 4, PHP 5, PHP 7)

posix_getpwnam — Retourne des informations sur un utilisateur

Description

array posix_getpwnam ( string $username )

Retourne un tableau d'informations sur un utilisateur.

Liste de paramètres

username

Un nom alphanumérique d'utilisateur.

Valeurs de retour

En cas de succès, un tableau avec les éléments suivants est retourné, sinon, FALSE :

Le tableau descriptif d'un utilisateur
Élément | Description
name | Le nom contient le nom de l'utilisateur. Généralement, c'est un nom court, de moins de 16 caractères, mais ce n'est pas son nom réel et complet. Cette valeur devrait correspondre au paramètre username et, donc, il est redondant.
passwd | Contient le mot de passe de l'utilisateur, chiffré. Souvent, dans les systèmes utilisant les mots de passe "fantômes", un astérisque est retourné.
uid | L'UID de l'utilisateur.
gid | L'ID du groupe de l'utilisateur. Utilisez la fonction posix_getgrgid() pour connaître le nom du groupe, et ses membres.
gecos | GECOS est un terme obsolète qui fait référence aux données de finger, sur un système Honeywell. Le champ, cependant, a survécu, et son contenu a été formalisé par POSIX. Le champ contient une liste, séparée par des virgules, qui contient le nom complet de l'utilisateur, son téléphone professionnel, son numéro de téléphone bureau et son numéro de téléphone personnel. Sur la plupart des systèmes, seul le nom est disponible.
dir | Cet élément contient le chemin absolu jusqu'au dossier racine de l'utilisateur.
shell | Cet élément contient le chemin absolu jusqu'au dossier d'exécution du shell de l'utilisateur.

Exemples

Exemple #1 Exemple avec posix_getpwnam()

<?php

$userinfo = posix_getpwnam("tom");

print_r($userinfo);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [gecos]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

Voir aussi

  • posix_getpwuid() - Retourne des informations sur un utilisateur
  • POSIX man page GETPWNAM(3)


Retourne des informations sur un utilisateur

  • « posix_getpwnam
  • posix_getrlimit »
  • PHP Manual
  • Fonctions POSIX
  • Retourne des informations sur un utilisateur

posix_getpwuid

(PHP 4, PHP 5, PHP 7)

posix_getpwuid — Retourne des informations sur un utilisateur

Description

array posix_getpwuid ( int $uid )

Retourne un tableau d'informations sur un utilisateur référencé par son ID.

Liste de paramètres

uid

L'identifiant de l'utilisateur.

Valeurs de retour

Retourne un tableau associatif contenant les éléments suivants :

Le tableau de description d'un utilisateur
Élément | Description
name | Le nom contient le nom de l'utilisateur. Généralement, c'est un nom court, de moins de 16 caractères, mais ce n'est pas son nom réel et complet.
passwd | Contient le mot de passe de l'utilisateur, chiffré. Souvent, dans les systèmes utilisant les mots de passe "fantômes", un astérisque est retourné.
uid | Cette valeur devrait correspondre au paramètre uid et, donc, il est redondant.
gid | L'ID du groupe de l'utilisateur. Utilisez la fonction posix_getgrgid() pour connaître le nom du groupe, et ses membres.
gecos | GECOS est un terme obsolète qui fait référence aux données de finger, sur un système Honeywell. Le champ, cependant, a survécu et son contenu a été formalisé par POSIX. Le champ contient une liste, séparée par des virgules, qui contient le nom complet de l'utilisateur, son téléphone professionnel, son numéro de bureau et son numéro de téléphone personnel. Sur la plupart des systèmes, seul le nom est disponible.
dir | Cet élément contient le chemin absolu jusqu'au dossier racine de l'utilisateur.
shell | Cet élément contient le chemin absolu jusqu'au dossier d'exécution du shell de l'utilisateur.

Exemples

Exemple #1 Exemple avec posix_getpwuid()

<?php

$userinfo = posix_getpwuid(10000);

print_r($userinfo);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [gecos]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

Voir aussi

  • posix_getpwnam() - Retourne des informations sur un utilisateur
  • POSIX man page GETPWNAM(3)


Retourne des informations concernant les limites des ressources système

  • « posix_getpwuid
  • posix_getsid »
  • PHP Manual
  • Fonctions POSIX
  • Retourne des informations concernant les limites des ressources système

posix_getrlimit

(PHP 4, PHP 5, PHP 7)

posix_getrlimit — Retourne des informations concernant les limites des ressources système

Description

array posix_getrlimit ( void )

posix_getrlimit() retourne un tableau d'informations concernant les limites soft et hard de la ressource courante.

Chaque ressource a une limite soft et hard d'associées. La limite soft correspond à la valeur que le noyau force pour la ressource correspondante. La limite hard agit comme un plafond de la limite soft. Un processus non privilégié ne peut que définir sa limite soft en une valeur comprise entre 0 et la limite hard, ce qui ne fera qu'abaisser sa limite hard.

Valeurs de retour

Retourne un tableau associatif d'éléments pour chaque limite définie. Chaque limite a une limite soft et hard.

Liste des limites possibles retournées
Nom de la limite | Description de la limite
core | La taille maximale du coeur du fichier. Lorsqu'elle vaut 0, aucun coeur de fichier n'est créé. Lorsque le coeur des fichiers est plus grand que sa taille, il sera tronqué à cette taille.
totalmem | La taille maximale de la mémoire du processus, en octets.
virtualmem | La taille maximale de la mémoire virtuelle du processus, en octets.
data | La taille maximale du segment de données pour le processus, en octets.
stack | La taille maximale de la pile du processus, en octets.
rss | Le nombre maximal de pages virtuelles résident en RAM.
maxproc | Le nombre maximal de processus qui peuvent être créés pour l'ID utilisateur réel du processus appelé.
memlock | Le nombre maximal d'octets de mémoires pouvant être verrouillés en RAM.
cpu | Le temps que le processus est autorisé à utiliser le CPU.
filesize | La taille maximale du segments de données pour le processus, en octets.
openfiles | le nombre maximal de pointeurs de fichiers ouverts.

Exemples

Exemple #1 Exemple avec posix_getrlimit()

<?php

$limits = posix_getrlimit();

print_r($limits);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [soft core] => 0
    [hard core] => unlimited
    [soft data] => unlimited
    [hard data] => unlimited
    [soft stack] => 8388608
    [hard stack] => unlimited
    [soft totalmem] => unlimited
    [hard totalmem] => unlimited
    [soft rss] => unlimited
    [hard rss] => unlimited
    [soft maxproc] => unlimited
    [hard maxproc] => unlimited
    [soft memlock] => unlimited
    [hard memlock] => unlimited
    [soft cpu] => unlimited
    [hard cpu] => unlimited
    [soft filesize] => unlimited
    [hard filesize] => unlimited
    [soft openfiles] => 1024
    [hard openfiles] => 1024
)

Voir aussi

  • man page GETRLIMIT(2)
  • posix_setrlimit() - Set system resource limits


Retourne le sid du processus

  • « posix_getrlimit
  • posix_getuid »
  • PHP Manual
  • Fonctions POSIX
  • Retourne le sid du processus

posix_getsid

(PHP 4, PHP 5, PHP 7)

posix_getsid — Retourne le sid du processus

Description

int posix_getsid ( int $pid )

Retourne l'ID de session du processus pid. L'ID de session d'un processus est l'ID du groupe du processus du gestionnaire de session.

Liste de paramètres

pid

L'identifiant du processus. S'il est défini à 0, le processus courant est utilisé. Si un pid invalide est fourni, alors FALSE est retourné et une erreur est définie et pourra être récupérée avec la fonction posix_get_last_error().

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_getsid()

<?php
$pid = posix_getpid();
echo posix_getsid($pid); //8805
?>

Voir aussi

  • posix_getpgid() - Retourne l'id du groupe de processus
  • posix_setsid() - Fait du processus courant un chef de session
  • POSIX man page GETSID(2)


Retourne l'ID de l'utilisateur du processus courant

  • « posix_getsid
  • posix_initgroups »
  • PHP Manual
  • Fonctions POSIX
  • Retourne l'ID de l'utilisateur du processus courant

posix_getuid

(PHP 4, PHP 5, PHP 7)

posix_getuid — Retourne l'ID de l'utilisateur du processus courant

Description

int posix_getuid ( void )

Retourne l'ID de l'utilisateur du processus courant.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec posix_getuid()

<?php
echo posix_getuid(); //10000
?>

Voir aussi

  • posix_getpwuid() - Retourne des informations sur un utilisateur
  • POSIX man page GETUID(2)


Calcule la liste des accès de groupe

  • « posix_getuid
  • posix_isatty »
  • PHP Manual
  • Fonctions POSIX
  • Calcule la liste des accès de groupe

posix_initgroups

(PHP 5 >= 5.2.0, PHP 7)

posix_initgroups — Calcule la liste des accès de groupe

Description

bool posix_initgroups ( string $name , int $base_group_id )

Calcule la liste des accès de groupe pour l'utilisateur spécifié par son nom.

Liste de paramètres

name

L'utilisateur pour lequel on doit calculer la liste.

base_group_id

Typiquement, le numéro du groupe depuis le fichier de mot de passe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • La page du manuel Unix d'initgroups(3).


Détermine si un pointeur de fichier est un terminal interactif

  • « posix_initgroups
  • posix_kill »
  • PHP Manual
  • Fonctions POSIX
  • Détermine si un pointeur de fichier est un terminal interactif

posix_isatty

(PHP 4, PHP 5, PHP 7)

posix_isatty — Détermine si un pointeur de fichier est un terminal interactif

Description

bool posix_isatty ( mixed $fd )

Détermine si le pointeur de fichier fd se réfère à un type de terminal de périphérique valide.

Liste de paramètres

fd

Le descripteur de fichier, qui doit être soit une ressource de fichier, soit un entier. Un entier est supposé être un descripteur de fichier qui peut être passé directement à l'appel système sous-jacent.

Dans tous les autres cas, vous devez fournir une ressource de fichier.

Valeurs de retour

Retourne TRUE si fd est un pointeur de fichier connecté à un terminal, FALSE sinon.

Voir aussi

  • posix_ttyname() - Retourne le nom de device du terminal


Envoie un signal à un processus

  • « posix_isatty
  • posix_mkfifo »
  • PHP Manual
  • Fonctions POSIX
  • Envoie un signal à un processus

posix_kill

(PHP 4, PHP 5, PHP 7)

posix_kill — Envoie un signal à un processus

Description

bool posix_kill ( int $pid , int $sig )

Envoie le signal sig au processus pid.

Liste de paramètres

pid

L'identifiant du processus.

sig

Une des constantes de signals PCNTL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • Reportez-vous à la page de manuel de kill(2) de votre système POSIX, qui contient plus de détails sur les identifiants négatifs de processus, les pid spéciaux 0 et -1, et le signal numéro 0.


Crée un fichier FIFO (first in, first out) (un pipe nommé)

  • « posix_kill
  • posix_mknod »
  • PHP Manual
  • Fonctions POSIX
  • Crée un fichier FIFO (first in, first out) (un pipe nommé)

posix_mkfifo

(PHP 4, PHP 5, PHP 7)

posix_mkfifo — Crée un fichier FIFO (first in, first out) (un pipe nommé)

Description

bool posix_mkfifo ( string $pathname , int $mode )

posix_mkfifo() crée un fichier spécial FIFO qui existe dans le système de fichiers, et sert de point de communication bidirectionnel pour les processus.

Liste de paramètres

pathname

Chemin vers le fichier FIFO.

mode

Le second paramètre mode doit être au format octal (i.e. 0644). Les droits donnés à la nouvelle pile FIFO dépendent aussi de la configuration de la fonction umask(). Les droits créées sont (mode & ~umask).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.


Crée un fichier spécial ou ordinaire (POSIX.1)

  • « posix_mkfifo
  • posix_setegid »
  • PHP Manual
  • Fonctions POSIX
  • Crée un fichier spécial ou ordinaire (POSIX.1)

posix_mknod

(PHP 5 >= 5.1.0, PHP 7)

posix_mknod — Crée un fichier spécial ou ordinaire (POSIX.1)

Description

bool posix_mknod ( string $pathname , int $mode [, int $major = 0 [, int $minor = 0 ]] )

Crée un fichier spécial ou ordinaire.

Liste de paramètres

pathname

Le fichier à créer.

mode

Ce paramètre est construit par une manipulation de bits ou par des types de fichier (une des constantes suivantes : POSIX_S_IFREG, POSIX_S_IFCHR, POSIX_S_IFBLK, POSIX_S_IFIFO ou POSIX_S_IFSOCK) et des permissions.

major

L'identifiant majeur du dispositif du noyau (requis lorsque vous utilisez S_IFCHR ou S_IFBLK).

minor

L'identifiant mineur du dispositif du noyau.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec posix_mknod()

<?php

$file = '/tmp/tmpfile';  // nom du fichier
$type = POSIX_S_IFBLK; // type du fichier
$permissions = 0777;     // octal
$major = 1;
$minor = 8;              // /dev/random

if (!posix_mknod($file, $type | $permissions, $major, $minor)) {
    die('Erreur : ' . posix_get_last_error() . ': ' . posix_strerror(posix_get_last_error()));
}

?>

Voir aussi

  • posix_mkfifo() - Crée un fichier FIFO (first in, first out) (un pipe nommé)


Modifie le GID réel du processus courant

  • « posix_mknod
  • posix_seteuid »
  • PHP Manual
  • Fonctions POSIX
  • Modifie le GID réel du processus courant

posix_setegid

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

posix_setegid — Modifie le GID réel du processus courant

Description

bool posix_setegid ( int $gid )

Modifie l'identifiant de groupe réel du processus courant. C'est une fonction de haut niveau, et vous aurez besoin des droits appropriés (généralement ceux du super utilisateur), sur votre système, pour l'utiliser.

Liste de paramètres

gid

L'ID du groupe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec posix_setegid()

Cet exemple affichera l'ID effectif du groupe.

<?php
echo 'Mon ID réel de groupe est : '.posix_getgid(); //20
posix_setegid(40);
echo 'Mon ID réel de groupe est : '.posix_getgid(); //20
echo 'Mon ID effectif de groupe est : '.posix_getegid(); //40
?>

Voir aussi

  • posix_getgrgid() - Retourne des informations sur un groupe
  • posix_getgid() - Retourne l'UID du groupe du processus courant
  • posix_setgid() - Fixe le GID effectif du processus courant


Modifie l'identifiant d'utilisateur réel (UID) du processus courant

  • « posix_setegid
  • posix_setgid »
  • PHP Manual
  • Fonctions POSIX
  • Modifie l'identifiant d'utilisateur réel (UID) du processus courant

posix_seteuid

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

posix_seteuid — Modifie l'identifiant d'utilisateur réel (UID) du processus courant

Description

bool posix_seteuid ( int $uid )

Modifie l'identifiant d'utilisateur réel du processus courant. C'est une fonction de haut niveau, et vous aurez besoin des droits appropriés (généralement ceux du super utilisateur), sur votre système, pour l'utiliser.

Liste de paramètres

uid

L'ID de l'utilisateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • posix_setgid() - Fixe le GID effectif du processus courant


Fixe le GID effectif du processus courant

  • « posix_seteuid
  • posix_setpgid »
  • PHP Manual
  • Fonctions POSIX
  • Fixe le GID effectif du processus courant

posix_setgid

(PHP 4, PHP 5, PHP 7)

posix_setgid — Fixe le GID effectif du processus courant

Description

bool posix_setgid ( int $gid )

Fixe le GID effectif du processus courant. C'est une fonction privilégiée et vous devez avoir les privilèges appropriés (habituellement root) sur le système pour pouvoir l'exécuter. L'ordre approprié est d'abord posix_setgid(), puis posix_setuid().

Note:

Si l'appelant est le super-utilisateur, cette fonction définira également l'ID effectif du groupe.

Liste de paramètres

gid

L'ID du groupe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec posix_setgid()

Cet exemple affichera l'ID effectif du groupe.

<?php
echo 'Mon ID réel de groupe est : '.posix_getgid(); //20
posix_setgid(40);
echo 'Mon ID réel de groupe est : '.posix_getgid(); //40
echo 'Mon ID effectif de groupe est : '.posix_getegid(); //40
?>

Voir aussi

  • posix_getgrgid() - Retourne des informations sur un groupe
  • posix_getgid() - Retourne l'UID du groupe du processus courant


Fixe l'identifiant de groupe de processus

  • « posix_setgid
  • posix_setrlimit »
  • PHP Manual
  • Fonctions POSIX
  • Fixe l'identifiant de groupe de processus

posix_setpgid

(PHP 4, PHP 5, PHP 7)

posix_setpgid — Fixe l'identifiant de groupe de processus

Description

bool posix_setpgid ( int $pid , int $pgid )

Ajoute le processus pid au groupe d'id pgid.

Liste de paramètres

pid

L'ID du processus.

pgid

L'ID du groupe du processus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • Reportez-vous à POSIX.1 et setsid(2) dans le manuel de votre système POSIX pour plus d'informations sur le contrôle de tâche.


Set system resource limits

  • « posix_setpgid
  • posix_setsid »
  • PHP Manual
  • Fonctions POSIX
  • Set system resource limits

posix_setrlimit

(PHP 7)

posix_setrlimit — Set system resource limits

Description

bool posix_setrlimit ( int $resource , int $softlimit , int $hardlimit )

posix_setrlimit() sets the soft and hard limits for a given system resource.

Chaque ressource a une limite soft et hard d'associées. La limite soft correspond à la valeur que le noyau force pour la ressource correspondante. La limite hard agit comme un plafond de la limite soft. Un processus non privilégié ne peut que définir sa limite soft en une valeur comprise entre 0 et la limite hard, ce qui ne fera qu'abaisser sa limite hard.

Liste de paramètres

resource

The resource limit constant corresponding to the limit that is being set.

softlimit

The soft limit, in whatever unit the resource limit requires, or POSIX_RLIMIT_INFINITY.

hardlimit

The hard limit, in whatever unit the resource limit requires, or POSIX_RLIMIT_INFINITY.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • man page SETRLIMIT(2)
  • posix_getrlimit() - Retourne des informations concernant les limites des ressources système


Fait du processus courant un chef de session

  • « posix_setrlimit
  • posix_setuid »
  • PHP Manual
  • Fonctions POSIX
  • Fait du processus courant un chef de session

posix_setsid

(PHP 4, PHP 5, PHP 7)

posix_setsid — Fait du processus courant un chef de session

Description

int posix_setsid ( void )

Fait du processus courant un chef de session.

Valeurs de retour

Retourne l'identifiant de session, ou -1 si une erreur survient.

Voir aussi

  • Reportez-vous à POSIX.1 et setsid(2) dans le manuel de votre système POSIX pour plus d'informations sur le contrôle de tâche.


Fixe l'UID effective du processus courant

  • « posix_setsid
  • posix_strerror »
  • PHP Manual
  • Fonctions POSIX
  • Fixe l'UID effective du processus courant

posix_setuid

(PHP 4, PHP 5, PHP 7)

posix_setuid — Fixe l'UID effective du processus courant

Description

bool posix_setuid ( int $uid )

Fixe l'UID effective de l'utilisateur du processus courant. Vous devez avoir les privilèges nécessaires (traditionnellement ceux du root) sur votre système pour le faire.

Liste de paramètres

uid

L'ID de l'utilisateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec posix_setuid()

Cet exemple affiche l'ID courant de l'utilisateur et en modifie sa valeur.

<?php
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10001
posix_setuid(10000);
echo posix_getuid()."\n"; //10000
echo posix_geteuid()."\n"; //10000
?>

Voir aussi

  • posix_setgid() - Fixe le GID effectif du processus courant
  • posix_seteuid() - Modifie l'identifiant d'utilisateur réel (UID) du processus courant
  • posix_getuid() - Retourne l'ID de l'utilisateur du processus courant
  • posix_geteuid() - Retourne l'UID effectif de l'utilisateur du processus courant


Lit le message d'erreur associé à un numéro d'erreur POSIX

  • « posix_setuid
  • posix_times »
  • PHP Manual
  • Fonctions POSIX
  • Lit le message d'erreur associé à un numéro d'erreur POSIX

posix_strerror

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

posix_strerror — Lit le message d'erreur associé à un numéro d'erreur POSIX

Description

string posix_strerror ( int $errno )

Retourne le message d'erreur POSIX associé au numéro d'erreur errno. Vous pouvez récupérer le paramètre errno en appelant la fonction posix_get_last_error().

Liste de paramètres

errno

Un numéro d'erreur POSIX, retourné par la fonction posix_get_last_error(). Si défini à 0, alors, la chaîne de caractères "Success" est retournée.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec posix_strerror()

Cet exemple tentera de tuer un processus qui n'existe pas, puis, affichera le message d'erreur correspondant.

<?php
posix_kill(50,SIGKILL);
echo posix_strerror(posix_get_last_error())."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

No such process

Voir aussi

  • posix_get_last_error() - Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué


Utilisation des ressources

  • « posix_strerror
  • posix_ttyname »
  • PHP Manual
  • Fonctions POSIX
  • Utilisation des ressources

posix_times

(PHP 4, PHP 5, PHP 7)

posix_times — Utilisation des ressources

Description

array posix_times ( void )

Retourne des informations sur l'utilisation courante du CPU.

Valeurs de retour

Retourne un tableau avec les informations sur l'utilisation du CPU. Les indices sont :

  • ticks - nombre de ticks depuis le dernier démarrage.
  • utime - temps utilisateur utilisé par le processus courant.
  • stime - temps système utilisé par le processus courant.
  • cutime - temps utilisateur utilisé par le processus courant et ses enfants.
  • cstime - temps système utilisé par le processus courant et ses enfants.

Notes

Avertissement

Cette fonction n'est pas fiable, elle peut retourner des valeurs négatives pour des temps élevés.

Exemples

Exemple #1 Exemple avec posix_times()

<?php

$times = posix_times();

print_r($times);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [ticks] => 25814410
    [utime] => 1
    [stime] => 1
    [cutime] => 0
    [cstime] => 0
)


Retourne le nom de device du terminal

  • « posix_times
  • posix_uname »
  • PHP Manual
  • Fonctions POSIX
  • Retourne le nom de device du terminal

posix_ttyname

(PHP 4, PHP 5, PHP 7)

posix_ttyname — Retourne le nom de device du terminal

Description

string posix_ttyname ( mixed $fd )

Retourne une chaîne de caractères pour le chemin absolu du terminal courant qui est ouvert sur le pointeur de fichier. fd.

Liste de paramètres

fd

Le descripteur de fichier, qui doit être soit une ressource de fichier, soit un entier. Un entier est supposé être un descripteur de fichier qui peut être passé directement à l'appel système sous-jacent.

Dans tous les autres cas, vous devez fournir une ressource de fichier.

Valeurs de retour

En cas de succès, retourne une chaîne de caractères correspondant au chemin absolu de fd. En cas d'erreur, retourne FALSE.


Retourne le nom du système

  • « posix_ttyname
  • Exécution de programme »
  • PHP Manual
  • Fonctions POSIX
  • Retourne le nom du système

posix_uname

(PHP 4, PHP 5, PHP 7)

posix_uname — Retourne le nom du système

Description

array posix_uname ( void )

Retourne des informations sur le système.

Posix impose que vous n'ayez pas d'à priori sur le format des chaînes, c'est-à-dire que vous ne devez pas vous attendre à avoir forcément trois chiffres pour la version, par exemple.

Valeurs de retour

Retourne un tableau associatif avec des informations sur le système. Les indices du tableau sont :

  • sysname : nom du système d'exploitation (exemple : Linux)
  • nodename : nom du système (i.e. valiant)
  • release : édition du système d'exploitation (i.e. 2.2.10)
  • version : version du système d'exploitation (e.e. #4 Tue Jul 20 17:01:36 MEST 1999)
  • machine : architecture système (i.e. i586)
  • domainname : Nom de domaine (i.e. example.com)

domainname est une extension GNU et ne fait pas partie de POSIX.1, ce champ n'est donc accessible que sur les systèmes GNU ou lors de l'utilisation de la GNU libc.

Exemples

Exemple #1 Exemple avec posix_uname()

<?php
$uname=posix_uname();
print_r($uname);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [sysname] => Linux
    [nodename] => funbox
    [release] => 2.6.20-15-server
    [version] => #2 SMP Sun Apr 15 07:41:34 UTC 2007
    [machine] => i686
)


Système d'exécution de programme

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions sur l'exécution de programmes externes
    • escapeshellarg — Protège une chaîne de caractères pour utilisation en ligne de commande
    • escapeshellcmd — Protège les caractères spéciaux du Shell
    • exec — Exécute un programme externe
    • passthru — Exécute un programme externe et affiche le résultat brut
    • proc_close — Ferme un processus ouvert par proc_open
    • proc_get_status — Lit les informations concernant un processus ouvert par proc_open
    • proc_nice — Change la priorité d'exécution du processus courant
    • proc_open — Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties
    • proc_terminate — Termine un processus ouvert par proc_open
    • shell_exec — Exécute une commande via le Shell et retourne le résultat sous forme de chaîne
    • system — Exécute un programme externe et affiche le résultat


Introduction

Ces fonctions donnent la possibilité d'exécuter des commandes sur le système lui-même, tout en sécurisant les commandes utilisées.

Note:

Toutes les fonctions d'exécution de programmes appèlent les commandes via cmd.exe sous Windows. Par conséquent, l'utilisateur appelant ces fonctions doit avoir les privilèges appropriés pour les exécuter. La seule exception est la fonction proc_open() avec l'option bypass_shell.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit une ressource process, retournée par la fonction proc_open().


  • « Types de ressources
  • Fonctions sur l'exécution de programmes externes »
  • PHP Manual
  • Exécution de programme
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions sur l'exécution de programmes externes

Notes

Avertissement

Les fichiers ouverts avec un verrou (tout spécialement les sessions ouvertes) doivent être fermés avant l'exécution d'un programme en arrière plan.

Voir aussi

Ces fonctions sont complétées par l'opérateur guillemets obliques. De plus, lorsque le safe mode est activé, vous devez configurer l'option safe_mode_exec_dir.

Sommaire

  • escapeshellarg — Protège une chaîne de caractères pour utilisation en ligne de commande
  • escapeshellcmd — Protège les caractères spéciaux du Shell
  • exec — Exécute un programme externe
  • passthru — Exécute un programme externe et affiche le résultat brut
  • proc_close — Ferme un processus ouvert par proc_open
  • proc_get_status — Lit les informations concernant un processus ouvert par proc_open
  • proc_nice — Change la priorité d'exécution du processus courant
  • proc_open — Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties
  • proc_terminate — Termine un processus ouvert par proc_open
  • shell_exec — Exécute une commande via le Shell et retourne le résultat sous forme de chaîne
  • system — Exécute un programme externe et affiche le résultat


Protège une chaîne de caractères pour utilisation en ligne de commande

  • « Fonctions sur l'exécution de programmes externes
  • escapeshellcmd »
  • PHP Manual
  • Fonctions sur l'exécution de programmes externes
  • Protège une chaîne de caractères pour utilisation en ligne de commande

escapeshellarg

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

escapeshellarg — Protège une chaîne de caractères pour utilisation en ligne de commande

Description

string escapeshellarg ( string $arg )

escapeshellarg() ajoute des guillemets simples autour des chaînes de caractères, et ajoute des guillemets puis échappe les guillemets simples de la chaîne. Cela permet de faire passer directement le paramètre arg comme argument Shell, tout en assurant un maximum de sécurité. escapeshellarg() doit être utilisée pour traiter individuellement chacun des arguments à passer au Shell. Les fonctions Shell sont exec(), system() et les opérateurs guillemets obliques.

Sous Windows, la fonction escapeshellarg(), au lieu de supprimer les signes de pourcentage, remplace les guillemets doubles par des espaces, et ajoute des guillemets doubles autour de la chaîne de caractères.

Liste de paramètres

arg

L'argument à échapper.

Valeurs de retour

La chaîne échappée.

Exemples

Exemple #1 Exemple avec escapeshellarg()

<?php
system('ls '.escapeshellarg($dir));
?>

Voir aussi

  • escapeshellcmd() - Protège les caractères spéciaux du Shell
  • exec() - Exécute un programme externe
  • popen() - Crée un processus de pointeur de fichier
  • system() - Exécute un programme externe et affiche le résultat
  • backtick operator


Protège les caractères spéciaux du Shell

  • « escapeshellarg
  • exec »
  • PHP Manual
  • Fonctions sur l'exécution de programmes externes
  • Protège les caractères spéciaux du Shell

escapeshellcmd

(PHP 4, PHP 5, PHP 7)

escapeshellcmd — Protège les caractères spéciaux du Shell

Description

string escapeshellcmd ( string $command )

escapeshellcmd() échappe tous les caractères de la chaîne command qui pourraient avoir une signification spéciale dans une commande Shell. Cette fonction permet de s'assurer que la commande sera correctement passée à l'exécuteur de commande Shell exec() et system(), ou encore à guillemets obliques.

Les caractères suivants seront échappés : #&;`|*?~<>^()[]{}$\, \x0A et \xFF. ' et " sont échappés que s'ils ne sont pas par paire. Sous Windows, tous ces caractères ainsi que % et ! sont remplacés par un espace.

Liste de paramètres

command

La commande à échapper.

Valeurs de retour

La chaîne échappée.

Exemples

Exemple #1 Exemple avec escapeshellcmd()

<?php
// Nous autorisons un nombre arbitraire d'arguments de façon intentionnel ici.
$command = './configure '.$_POST['configure_options'];

$escaped_command = escapeshellcmd($command);

system($escaped_command);
?>

Avertissement

La fonction escapeshellcmd() doit être utilisée sur toute la chaîne de commande, et elle autorise les personnes mal intentionnées de passer un nombre d'arguments arbitraire. Pour échapper un seul argument, la fonction escapeshellarg() devrait être utilisée à la place.

Historique

Version | Description
5.6.0 | La valeur par défaut pour le paramètre encoding a été modifiée pour être la valeur de l'option de configuration default_charset.
5.4.43, 5.5.27, 5.6.11 | Les points d'exclamation sont remplacés par des espaces.

Voir aussi

  • escapeshellarg() - Protège une chaîne de caractères pour utilisation en ligne de commande
  • exec() - Exécute un programme externe
  • popen() - Crée un processus de pointeur de fichier
  • system() - Exécute un programme externe et affiche le résultat
  • les guillemets obliques


Exécute un programme externe

  • « escapeshellcmd
  • passthru »
  • PHP Manual
  • Fonctions sur l'exécution de programmes externes
  • Exécute un programme externe

exec

(PHP 4, PHP 5, PHP 7)

exec — Exécute un programme externe

Description

string exec ( string $command [, array &$output [, int &$return_var ]] )

exec() exécute la commande command.

Liste de paramètres

command

La commande à exécuter.

output

Si l'argument output est présent, alors ce tableau sera rempli par les lignes retournées par la commande. Les espaces de début et de fin de chaîne, comme \n, ne seront pas inclus dans ce tableau. Il faut noter que si ce tableau contient des éléments, exec() ajoutera les nouvelles lignes à la fin du tableau. Si vous ne voulez pas que les nouveaux éléments soient concaténés, utilisez la fonction unset() avec ce tableau avant de le passer à exec().

return_var

Si l'argument return_var est présent en plus du tableau output, alors le statut de retour d'exécution sera inscrit dans cette variable.

Valeurs de retour

La dernière ligne du résultat de la commande. Pour exécuter une commande et obtenir le résultat sans aucun traitement, il faut utiliser la fonction passthru().

Pour récupérer la sortie de la commande exécutée, assurez-vous de définir et d'utiliser le paramètre output.

Exemples

Exemple #1 Exemple avec exec()

<?php
// Affiche le nom d'utilisateur qui fait tourner le processus php/http
// (sur un système ayant "whoami" dans le chemin d'exécutables)
echo exec('whoami');
?>

Notes

Avertissement

Si vous allez passer des données provenant de l'utilisateur à cette fonction, vous devez utiliser escapeshellarg() ou escapeshellcmd() pour être sûr qu'ils n'endommagent pas le système en exécutant des commandes arbitraires.

Note:

Si vous démarrez un programme en utilisant cette fonction et que vous voulez le laisser tourner en arrière plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier, ou un autre flux de sortie, sinon PHP attendra jusqu'à la fin de l'exécution du programme.

Note: Lorsque le safe mode est activé, vous pouvez uniquement exécuter des programmes qui se situent dans le dossier défini par safe_mode_exec_dir. Pour des raisons pratiques, il n'est actuellement pas permis d''avoir le composant .. dans le chemin de l'exécutable.

Avertissement

Lorsque le safe mode est activé, la chaîne de commande est échappée avec la fonction escapeshellcmd(). Par exemple, echo y | echo x devient echo y \| echo x.

Voir aussi

  • system() - Exécute un programme externe et affiche le résultat
  • passthru() - Exécute un programme externe et affiche le résultat brut
  • escapeshellcmd() - Protège les caractères spéciaux du Shell
  • pcntl_exec() - Exécute le programme indiqué dans l'espace courant de processus
  • les guillemets obliques


Exécute un programme externe et affiche le résultat brut

  • « exec
  • proc_close »
  • PHP Manual
  • Fonctions sur l'exécution de programmes externes
  • Exécute un programme externe et affiche le résultat brut

passthru

(PHP 4, PHP 5, PHP 7)

passthru — Exécute un programme externe et affiche le résultat brut

Description

void passthru ( string $command [, int &$return_var ] )

passthru() est similaire à la fonction exec() car les deux exécutent la commande command. Si l'argument return_var est présent, le code de statut de réponse UNIX y sera placé. Cette fonction devrait être préférée aux commandes exec() ou system() lorsque le résultat attendu est de type binaire, et doit être passé tel quel à un navigateur. Une utilisation classique de cette fonction est l'exécution de l'utilitaire pbmplus qui peut retourner une image. En fixant le résultat du contenu (Content-Type) à image/gif puis en appelant pbmplus pour obtenir une image gif, vous pouvez créer des scripts PHP qui retournent des images.

Liste de paramètres

command

La commande à exécuter.

return_var

Si l'argument return_var est présent, le statut retourné par la commande Unix sera placé dans cette variable.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Avertissement

Si vous allez passer des données provenant de l'utilisateur à cette fonction, vous devez utiliser escapeshellarg() ou escapeshellcmd() pour être sûr qu'ils n'endommagent pas le système en exécutant des commandes arbitraires.

Note:

Si vous démarrez un programme en utilisant cette fonction et que vous voulez le laisser tourner en arrière plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier, ou un autre flux de sortie, sinon PHP attendra jusqu'à la fin de l'exécution du programme.

Note: Lorsque le safe mode est activé, vous pouvez uniquement exécuter des programmes qui se situent dans le dossier défini par safe_mode_exec_dir. Pour des raisons pratiques, il n'est actuellement pas permis d''avoir le composant .. dans le chemin de l'exécutable.

Avertissement

Lorsque le safe mode est activé, la chaîne de commande est échappée avec la fonction escapeshellcmd(). Par exemple, echo y | echo x devient echo y \| echo x.

Voir aussi

  • exec() - Exécute un programme externe
  • system() - Exécute un programme externe et affiche le résultat
  • popen() - Crée un processus de pointeur de fichier
  • escapeshellcmd() - Protège les caractères spéciaux du Shell
  • les guillemets obliques


Ferme un processus ouvert par proc_open

  • « passthru
  • proc_get_status »
  • PHP Manual
  • Fonctions sur l'exécution de programmes externes
  • Ferme un processus ouvert par proc_open

proc_close

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

proc_close — Ferme un processus ouvert par proc_open()

Description

int proc_close ( resource $process )

proc_close() est similaire à pclose() hormis le fait qu'elle fonctionne avec les processus ouverts par proc_open(). proc_close() attend que le processus process se termine, puis retourne son code de sortie. Si vous avez des pipes ouverts avec ce processus, il faut les fermer avec fclose() avant d'appeler cette fonction pour éviter des verrouillages : le processus peut ne pas pouvoir sortir tant que les pipes sont ouverts.

Liste de paramètres

process

La resource proc_open() à fermer

Valeurs de retour

Retourne le code de sortie du processus ou -1 en cas d'echec.

Note:

Si PHP a été compilé avec l'option de configuration --enable-sigchild, la valeur retournée de cette fonction sera indéfinie.


Lit les informations concernant un processus ouvert par proc_open

  • « proc_close
  • proc_nice »
  • PHP Manual
  • Fonctions sur l'exécution de programmes externes
  • Lit les informations concernant un processus ouvert par proc_open

proc_get_status

(PHP 5, PHP 7)

proc_get_status — Lit les informations concernant un processus ouvert par proc_open()

Description

array proc_get_status ( resource $process )

proc_get_status() lit les données concernant le processus process créé avec la fonction proc_open().

Liste de paramètres

process

La ressource proc_open() à évaluer.

Valeurs de retour

Un tableau contenant les informations collectées en cas de succès, et FALSE en cas d'échec. Le tableau retourné contient les éléments suivants :

Élément | Type | Description
command | chaîne de caractères | La commande passée à la fonction proc_open().
pid | entier | identifiant du processus
running | booléen | TRUE si le processus fonctionne toujours et FALSE s'il est terminé.
signaled | booléen | TRUE si le processus fils a été terminé par un signal inconnu. Toujours défini à FALSE sous Windows.
stopped | booléen | TRUE si le processus fils a été stoppé par un signal. Toujours défini à FALSE sous Windows.
exitcode | entier | Le code retourné par le processus (uniquement si l'élément running vaut FALSE). Seul le premier appel à cette fonction retourne une valeur réelle, les prochains appels retournent -1.
termsig | entier | le numéro du signal qui a causé la fin de l'exécution du processus fils (uniquement significatif si signaled vaut TRUE).
stopsig | entier | le numéro du signal qui a causé l'arrêt de l'exécution du processus fils (uniquement significatif si signaled vaut TRUE).

Voir aussi

  • proc_open() - Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties


Change la priorité d'exécution du processus courant

  • « proc_get_status
  • proc_open »
  • PHP Manual
  • Fonctions sur l'exécution de programmes externes
  • Change la priorité d'exécution du processus courant

proc_nice

(PHP 5, PHP 7)

proc_nice — Change la priorité d'exécution du processus courant

Description

bool proc_nice ( int $increment )

proc_nice() modifie la priorité du processus courant par le paramètre spécifié increment. Un paramètre increment positif atténuera la priorité du processus courant, tandis qu'une valeur négative increment augmentera la priorité.

proc_nice() n'est pas lié à proc_open() et ses fonctions associées d'aucune façon.

Liste de paramètres

increment

La valeur de l'incrément de la priorité.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si une erreur survient, par exemple, si l'utilisateur qui tente de changer la priorité d'un processus n'a pas suffisamment de droit pour le faire, une erreur de niveau E_WARNING est générée et FALSE est retourné.

Notes

Note: Disponibilité

proc_nice() n'est disponible que sur les systèmes qui disposent de capacités NICE. NICE est compatible avec : SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3. Par exemple, proc_nice() n'est pas disponible sous Windows.


Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties

  • « proc_nice
  • proc_terminate »
  • PHP Manual
  • Fonctions sur l'exécution de programmes externes
  • Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties

proc_open

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

proc_open — Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties

Description

resource proc_open ( string $cmd , array $descriptorspec , array &$pipes [, string $cwd [, array $env [, array $other_options ]]] )

proc_open() est similaire à popen() mais fournit un plus grand degré de contrôle sur l'exécution du programme.

Liste de paramètres

cmd

La commande à exécuter

descriptorspec

Un tableau indexé, dont les clés représentent le numéro de descripteur et la valeur la méthode avec laquelle PHP va passer ce descripteur au processus fils. 0 est stdin, 1 est stdout, et 2 est stderr.

Chaque élément peut être :

  • Un tableau décrivant le pipe à passer au processus. Le premier élément est le type du descripteur et le second est une option pour le type donné. Les types valides sont pipe (le second élément est soit r pour passer la fin de lecture du pipe au processus, ou w pour passer la fin d'écriture) et file (le second élément est le nom de fichier).
  • Une ressource de flux représentant un descripteur de fichier (e.g. un fichier ouvert, un socket, ou bien STDIN).

Les numéros de pointeurs de fichiers ne sont pas limités à 0, 1 et 2 - vous pouvez spécifier n'importe quel numéro de descripteur valide, et il sera passé au processus fils. Cela permettra à votre script d'inter opérer avec d'autres scripts, et d'être exécuté comme "co-processus". En particulier, c'est très pratique pour passer des mots de passes à des programmes comme PGP, GPG et openssl, avec une méthode très protégée. C'est aussi pratique pour lire des informations de statut fournies par ces programmes, sur des descripteurs auxiliaires.

pipes

Doit être défini en un tableau indexé de pointeurs de fichiers qui correspondent à la fin de n'importe quel descripteur PHP qui sont créés.

cwd

Le dossier initial de travail de la commande. Cela doit être un chemin absolu vers le dossier ou NULL si vous voulez utiliser la valeur par défaut (le dossier de travail du processus courant PHP)

env

Un tableau contenant les variables d'environnement pour la commande qui doit être exécutée, ou NULL pour utiliser le même environnement que le processus PHP courant

other_options

Vous permet de spécifier des options supplémentaires. Les options actuellement supportées sont :

  • suppress_errors (windows uniquement): suppression des erreurs générées par cette fonction lorsque définit à TRUE
  • bypass_shell (windows uniquement): bypass du shell cmd.exe lorsque définit à TRUE

Valeurs de retour

Retourne une ressource représentant le processus, qui pourra être utilisé par la fonction proc_close() lorsque vous n'en aurez plus besoin. En cas d'échec, FALSE sera retourné.

Historique

Version | Description
5.2.1 | Ajout de l'option bypass_shell au paramètre other_options.

Exemples

Exemple #1 Exemple avec proc_open()

<?php
$descriptorspec = array(
   0 => array("pipe", "r"),  // // stdin est un pipe où le processus va lire
   1 => array("pipe", "w"),  // stdout est un pipe où le processus va écrire
   2 => array("file", "/tmp/error-output.txt", "a") // stderr est un fichier
);

$cwd = '/tmp';
$env = array('quelques_options' => 'aeiou');

$process = proc_open('php', $descriptorspec, $pipes, $cwd, $env);

if (is_resource($process)) {
    // $pipes ressemble à :
    // 0 => fichier accessible en écriture, connecté à l'entrée standard du processus fils
    // 1 => fichier accessible en lecture, connecté à la sortie standard du processus fils
    // Toute erreur sera ajoutée au fichier /tmp/error-output.txt

    fwrite($pipes[0], '<?php print_r($_ENV); ?>');
    fclose($pipes[0]);

    echo stream_get_contents($pipes[1]);
    fclose($pipes[1]);

    // Il est important que vous fermiez les pipes avant d'appeler
    // proc_close afin d'éviter un verrouillage.
    $return_value = proc_close($process);

    echo "La commande a retourné $return_value\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [some_option] => aeiou
    [PWD] => /tmp
    [SHLVL] => 1
    [_] => /usr/local/bin/php
)
La commande a retourné 0

Notes

Note:

Compatibilité Windows : les descripteurs au-delà de 2 (stderr) sont accessibles au processus fils, sous la forme de pointeurs hérités, mais comme l'architecture Windows n'associe pas de nombre aux descripteurs de bas niveau, le processus fils n'a, actuellement, aucun moyen d'y accéder. D'un autre coté, stdin, stdout et stderr fonctionnent comme d'habitude.

Note:

Si vous n'avez besoin que d'un processus unidirectionnel, popen() sera plus pratique, car plus simple à utiliser.

Voir aussi

  • popen() - Crée un processus de pointeur de fichier
  • exec() - Exécute un programme externe
  • system() - Exécute un programme externe et affiche le résultat
  • passthru() - Exécute un programme externe et affiche le résultat brut
  • stream_select() - Surveille la modification d'un ou plusieurs flux
  • Les guillemets obliques


Termine un processus ouvert par proc_open

  • « proc_open
  • shell_exec »
  • PHP Manual
  • Fonctions sur l'exécution de programmes externes
  • Termine un processus ouvert par proc_open

proc_terminate

(PHP 5, PHP 7)

proc_terminate — Termine un processus ouvert par proc_open()

Description

bool proc_terminate ( resource $process [, int $signal = 15 ] )

proc_terminate() envoie un signal au processus process (créé avec proc_open()) pour lui indiquer qu'il doit se terminer. proc_terminate() se termine immédiatement après, et n'attend pas l'arrêt réel du processus.

proc_terminate() vous permet de conclure un processus, et de continuer les autres tâches. Vous pouvez tester la présence de votre processus en utilisant la fonction proc_get_status().

Liste de paramètres

process

La ressource proc_open() qui sera fermée.

signal

Ce paramètre optionnel n'est utile que sur les plates-formes POSIX : vous pouvez alors spécifier un signal à envoyer au processus, en utilisant l'appel système kill(2). La valeur par défaut est alors SIGTERM.

Valeurs de retour

Retourne le code de sortie du processus.

Historique

Version | Description
5.2.2 | Les versions précédentes détruisent la ressource resource fournie.

Voir aussi

  • proc_open() - Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties
  • proc_close() - Ferme un processus ouvert par proc_open
  • proc_get_status() - Lit les informations concernant un processus ouvert par proc_open


Exécute une commande via le Shell et retourne le résultat sous forme de chaîne

  • « proc_terminate
  • system »
  • PHP Manual
  • Fonctions sur l'exécution de programmes externes
  • Exécute une commande via le Shell et retourne le résultat sous forme de chaîne

shell_exec

(PHP 4, PHP 5, PHP 7)

shell_exec — Exécute une commande via le Shell et retourne le résultat sous forme de chaîne

Description

string shell_exec ( string $cmd )

shell_exec() est identique aux guillemets obliques.

Liste de paramètres

cmd

La commande à exécuter.

Valeurs de retour

La sortie de l'exécution de la commande ou NULL si une erreur survient ou si la commande ne produit aucune sortie.

Note:

Cette fonction peut retourner NULL lorsqu'une erreur survient mais aussi lorsque le programme ne produit aucune sortie. Il n'est pas possible de détecter les échecs d'exécution en utilisant cette fonction. La fonction exec() doit être utilisée lorsque vous souhaitez récupérer le code de sortie de votre programme.

Exemples

Exemple #1 Exemple avec shell_exec()

<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>

Notes

Note:

Cette fonction est désactivée par le safe-mode

Voir aussi

  • exec() - Exécute un programme externe
  • escapeshellcmd() - Protège les caractères spéciaux du Shell


Exécute un programme externe et affiche le résultat

  • « shell_exec
  • pthreads »
  • PHP Manual
  • Fonctions sur l'exécution de programmes externes
  • Exécute un programme externe et affiche le résultat

system

(PHP 4, PHP 5, PHP 7)

system — Exécute un programme externe et affiche le résultat

Description

string system ( string $command [, int &$return_var ] )

system() est la version PHP de la fonction C qui exécute la commande command et retourne le résultat.

L'appel à la fonction system() tente également d'actualiser le buffer de sortie du serveur web après chaque ligne de sortie si PHP fonctionne en tant que module serveur.

Si vous devez exécuter une commande et récupérer tout le résultat sans aucune intervention, utilisez la fonction passthru().

Liste de paramètres

command

La commande à exécuter.

return_var

Si l'argument return_var est présent, alors le statut retourné de l'exécution de la commande sera écrit dans cette variable.

Valeurs de retour

Retourne la dernière ligne de la sortie de la commande en cas de succès, et FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec system()

<?php
echo '<pre>';

 // Affiche le résultat de la commande "ls" et retourne
 // la dernière lignes dans $last_line. Stocke la valeur retournée
 // par la commande shelle dans $retval.
 $last_line = system('ls', $retval);

 // Affichage d'autres informations
 echo '
</pre>
<hr />La dernière ligne en sortie de la commande : ' . $last_line . '
<hr />Valeur retournée : ' . $retval;
?>

Notes

Avertissement

Si vous allez passer des données provenant de l'utilisateur à cette fonction, vous devez utiliser escapeshellarg() ou escapeshellcmd() pour être sûr qu'ils n'endommagent pas le système en exécutant des commandes arbitraires.

Note:

Si vous démarrez un programme en utilisant cette fonction et que vous voulez le laisser tourner en arrière plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier, ou un autre flux de sortie, sinon PHP attendra jusqu'à la fin de l'exécution du programme.

Note: Lorsque le safe mode est activé, vous pouvez uniquement exécuter des programmes qui se situent dans le dossier défini par safe_mode_exec_dir. Pour des raisons pratiques, il n'est actuellement pas permis d''avoir le composant .. dans le chemin de l'exécutable.

Avertissement

Lorsque le safe mode est activé, la chaîne de commande est échappée avec la fonction escapeshellcmd(). Par exemple, echo y | echo x devient echo y \| echo x.

Voir aussi

  • exec() - Exécute un programme externe
  • passthru() - Exécute un programme externe et affiche le résultat brut
  • popen() - Crée un processus de pointeur de fichier
  • escapeshellcmd() - Protège les caractères spéciaux du Shell
  • pcntl_exec() - Exécute le programme indiqué dans l'espace courant de processus
  • les guillemets obliques


pthreads

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
  • Constantes pré-définies
  • Threaded — La classe Threaded
    • Threaded::chunk — Manipulation
    • Threaded::count — Manipulation
    • Threaded::extend — Manipulation pendant l'exécution
    • Threaded::from — Création
    • Threaded::getTerminationInfo — Détection d'erreur
    • Threaded::isRunning — Détection de statut
    • Threaded::isTerminated — Détection de statut
    • Threaded::isWaiting — Détection de statut
    • Threaded::lock — Synchronisation
    • Threaded::merge — Manipulation
    • Threaded::notify — Synchronisation
    • Threaded::pop — Manipulation
    • Threaded::run — Exécution
    • Threaded::shift — Manipulation
    • Threaded::synchronized — Synchronisation
    • Threaded::unlock — Synchronisation
    • Threaded::wait — Synchronisation
  • Thread — La classe Thread
    • Thread::detach — Exécution
    • Thread::getCreatorId — Identification
    • Thread::getCurrentThread — Identification
    • Thread::getCurrentThreadId — Identification
    • Thread::getThreadId — Identification
    • Thread::globally — Exécution
    • Thread::isJoined — Détection de statut
    • Thread::isStarted — Détection de statut
    • Thread::join — Synchronisation
    • Thread::kill — Exécution
    • Thread::start — Exécution
  • Worker — La classe Worker
    • Worker::getStacked — Analyse de pile
    • Worker::isShutdown — Détection de statut
    • Worker::isWorking — Détection de statut
    • Worker::shutdown — Synchronisation
    • Worker::stack — File d'attente
    • Worker::unstack — File d'attente
  • Collectable — La classe Collectable
    • Collectable::isGarbage — Détermine si un objet a été marqué comme obsolète
    • Collectable::setGarbage — Marque un objet comme obsolète
  • Modificateurs — Modificateurs de méthodes
  • Pool — La classe Pool
    • Pool::collect — Collecte les références des tâches achevées
    • Pool::__construct — Crée un nouveau Pool de Workers
    • Pool::resize — Redimensionne le Pool
    • Pool::shutdown — Arrête tous les Workers
    • Pool::submit — Soumet un objet pour exécution
    • Pool::submitTo — Soumet un objet pour exécution
  • Mutex — La classe Mutex
    • Mutex::create — Crée un Mutex
    • Mutex::destroy — Détruit un Mutex
    • Mutex::lock — Acquière un Mutex
    • Mutex::trylock — Tente d'acquérir un Mutex
    • Mutex::unlock — Libère un Mutex
  • Cond — La classe Cond
    • Cond::broadcast — Diffuse une condition
    • Cond::create — Crée une condition
    • Cond::destroy — Détruit une condition
    • Cond::signal — Signale une condition
    • Cond::wait — Attente d'une condition


Introduction

pthreads est une API orientée objet qui permet le multi-threading en espace utilisateur en PHP. Il inclut tous les outils nécessaires pour créer des applications multi-threadées. Les applications PHP peuvent créer, lire, écrire, exécuter et synchroniser des Threads, des Workers, et des objets Threaded.

Un objet Threaded : Un objet Threaded est la fonctionnalité de base qui permet d'utiliser pthreads. Il expose des méthodes de synchronisation ainsi que divers interfaces utile pour le développeur.

Un objet Thread : L'utilisateur peut implémenter un thread en étendant la déclaration Thread fournie par pthreads et en implémentant la méthode run. N'importe quel membre peut écrire et lire dans n'importe quel contexte avec une référence au Thread, n'importe quel contexte peut aussi exécuter n'importe quelle méthode publique et protégée. La méthode run de l'implémentation est exécutée dans un thread séparé lorsque la méthode start de l'implémentation est appelée depuis le contexte (Thread ou Processus) qui l'a créé. Seul le contexte qui crée un thread peut le démarre ou le rejoindre.

Un objet Worker : Un Thread Worker a un statut persistant, et sera disponible depuis l'appelant pour le démarrer tant que l'objet ne sort pas du scope, ou qu'il n'est pas explicitement éteint. N'importe quel contexte avec une référence peut empiler des objets dans le Worker qui sera exécuté par le Worker dans un Thread séparé. La méthode run d'un Worker est exécutée avant les objets de la pile, ainsi, il peut initialiser les ressources dont les objets auront besoin.

Un Pool: Un Pool de Worker threadés peut être utilités pour distribuer des objets Threaded sur les Workers. La classe Pool implémente cette fonctionnalité et tient compte des références de facon saine. Introduite dans la version v1.0.0, l'implémentation de Pool est la plus simple et efficiente facon d'utiliser de nombreux threads.

Attention

Pool est un objet PHP classique, et donc ses instances ne doivent pas être partagés entre les contextes.

Synchronisation : Tous les objets que pthreads crée possèdent un mécanisme de synchronisation de la forme (familier pour les programmeurs Java) ::wait et ::notify. L'appel à ::wait sur un objet fera que le contexte attendra qu'un autre contexte appelle ::notify sur le même objet. Ceci permet une synchronisation puissante entre les objets Threadés en PHP.

Attention

Tout objet prévu pour être utilisé dans une partie multi-threadé de votre application doit étendre Treaded.

Modificateurs de méthode : Les méthodes protégées des objets Threadés sont protégées par pthreads, aussi, uniquement un contexte peut appeler cette méthode à la fois. Les méthodes privées des objets Threadés peuvent seulement être appelées depuis l'objet Threadé pendant l'exécution.

Stockage des données : En règle générale, tous les types de données pouvant être linéarisés peuvent être utilisés comme membre d'un objet Threadé, ils peuvent être lus, et écrits depuis n'importe quel contexte avec une référence vers l'objet Threadé. Tous les types de données ne sont pas stockés après linéarisation ; les types simples sont stockés sous leur forme initiale. Les types complexes, les tableaux et les objets qui ne sont pas Threadés, sont stockés linéarisés ; ils peuvent être lus et écrits dans l'objet Threadé depuis n'importe quel contexte avec une référence. A l'exception des objets Threadés, toute référence utilisée pour définir un membre d'un objet Threadé est séparé de la référence dans l'objet Threadé ; les mêmes données peuvent être lues directement depuis l'objet Threadé à tout moment par n'importe quel contexte avec une référence vers l'objet Threadé.

Membres statiques : Lorsqu'un nouveau contexte est créé (Thread ou Worker), ils sont généralement copiés, mais les ressources et objects avec un état interne sont nullifiés (pour des raisons de sécurité). Ceci permet alors à la fonction une sorte de stockage local au niveau du thread. Par exemple, lors du démarrage du contexte, une classe dont les membres statiques incluent des informations de connexion vers un serveur de base de données, seules les informations seront copiées, et non la connexion en tant que telle. Ceci permet au nouveau contexte d'initialiser une connexion de la même façon que le contexte qui l'a créé, stockant la connexion au même endroit sans pour autant affecter le contexte original.

Attention

Lorsque print_r, var_dump et d'autres fonctions de débogage sont exécutées, elles n'incluent pas de protection contre la récursion.

Note:

Ressources : Les extensions et les fonctionalités qui définissent des ressoures en PHP ne sont pas préparées pour ce type d'environnement ; pthreads prend des dispositions en matière de ressource à partager entre les contextes, cependant, pour la plupart des ressources, elles devront être considérées comme dangereuses. Un soin et une extrème prudence devront être de mise pour partager les ressources entre les contextes.

Attention

Dans l'environnement d'exécution de pthreads, des restrictions et des limitations sont nécessaires afin de fournir un environnement stable.


Pré-requis

Pthreads requièrt une construction de PHP avec ZTS activé ( --enable-maintainer-zts ou --enable-zts sous Windows ).

Attention

La sécurité des Threads Zend (Zend Thread Safety - ZTS) ne peut pas être activée après construction; c'est une option de compilation.

pthreads devrait compiler tant qu'il y a un entête Posix Threads fonctionnel (pthread.h) ainsi qu'une construction ZTS de PHP, ceci inclut Windows (en utilisant le projet pthread-w32 de redhat).


Installation

Les versions de pthreads sont hébergés par PECL et les sources sur » github. La procédure d'installation la plus simple est la procédure PECL standard : » http://pecl.php.net/package/pthreads.

Les utilisateurs Windows peuvent télécharger des binaires préconstruits depuis le site de » PECL.

Attention

Les utilisateurs Windows doivent également ajouter pthreadVC2.dll (distribué avec Windows) à leur PATH.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

PTHREADS_INHERIT_ALL (integer)
Les options par défaut pour tous les threads, faisant que les pthreads copient les environnements lorsque les nouveaux threads sont démarrés
PTHREADS_INHERIT_NONE (integer)
N'hérite de rien lorsque les nouveaux threads sont démarrés
PTHREADS_INHERIT_INI (integer)
Hérite des entrées INI lorsque les nouveaux threads sont démarrés
PTHREADS_INHERIT_CONSTANTS (integer)
Hérite des constantes déclarées par l'utilisateur lorsque les nouveaux threads sont démarrés
PTHREADS_INHERIT_CLASSES (integer)
Hérite des classes déclarées par l'utilisateur lorsque les nouveaux threads sont démarrés
PTHREADS_INHERIT_FUNCTIONS (integer)
Hérite des fonctions déclarées par l'utilisateur lorsque les nouveaux threads sont démarrés
PTHREADS_INHERIT_INCLUDES (integer)
L'héritage inclus l'information de fichier lorsque les nouveaux threads sont démarrés
PTHREADS_INHERIT_COMMENTS (integer)
Hérite de tous les commentaires lorsque les nouveaux threads sont démarrés
PTHREADS_ALLOW_HEADERS (integer)
Autorise les nouveaux threads à envoyer les en-têtes à la sortie standart (normalement non autorisé)


La classe Threaded

(PECL pthreads >= 2.0.0)

Introduction

Les objets Threaded sont la base de pthreads pour exécuter du code de facon parallèle; ils exposent et incluent des méthodes de synchronisation ainsi que diverses interfaces utiles.

Les objets Threaded fournissent une sécurité native pour le développeur; toutes les opérations sont thread-safe dans le scope de l'objet.

Synopsis de la classe

Threaded implements Traversable , Countable , ArrayAccess {
/* Méthodes */
public array chunk ( integer $size , boolean $preserve )
public integer count ( void )
public bool extend ( string $class )
public Threaded from ( Closure $run [, Closure $construct [, array $args ]] )
public array getTerminationInfo ( void )
public boolean isRunning ( void )
public boolean isTerminated ( void )
public boolean isWaiting ( void )
public boolean lock ( void )
public boolean merge ( mixed $from [, bool $overwrite ] )
public boolean notify ( void )
public boolean pop ( void )
public void run ( void )
public boolean shift ( void )
public mixed synchronized ( Closure $block [, mixed $... ] )
public boolean unlock ( void )
public boolean wait ([ integer $timeout ] )
}

Sommaire

  • Threaded::chunk — Manipulation
  • Threaded::count — Manipulation
  • Threaded::extend — Manipulation pendant l'exécution
  • Threaded::from — Création
  • Threaded::getTerminationInfo — Détection d'erreur
  • Threaded::isRunning — Détection de statut
  • Threaded::isTerminated — Détection de statut
  • Threaded::isWaiting — Détection de statut
  • Threaded::lock — Synchronisation
  • Threaded::merge — Manipulation
  • Threaded::notify — Synchronisation
  • Threaded::pop — Manipulation
  • Threaded::run — Exécution
  • Threaded::shift — Manipulation
  • Threaded::synchronized — Synchronisation
  • Threaded::unlock — Synchronisation
  • Threaded::wait — Synchronisation


Manipulation

  • « Threaded
  • Threaded::count »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::chunk

(PECL pthreads >= 2.0.0)

Threaded::chunk — Manipulation

Description

public array Threaded::chunk ( integer $size , boolean $preserve )

Parcours une partie de la table des propriétés des objets en préservant, optionnellement, les clés.

Liste de paramètres

size

Le nombre d'éléments à parcourir

preserve

Préserve les clés des membres ; par défaut, vaut FALSE

Valeurs de retour

Un tableau d'éléments depuis la table de propriétés des objets.

Exemples

Exemple #1 Parcours une partie de la table des propriétés

<?php
$safe = new Threaded();

while (count($safe) < 10) {
    $safe[] = count($safe);
}

var_dump($safe->chunk(5));
?>

L'exemple ci-dessus va afficher :

array(5) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
  [4]=>
  int(4)
}


Manipulation

  • « Threaded::chunk
  • Threaded::extend »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::count

(PECL pthreads >= 2.0.0)

Threaded::count — Manipulation

Description

public integer Threaded::count ( void )

Retourne le nombre de propriétés pour cet objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Compte les propriétés d'un objet

<?php
$safe = new Threaded();

while (count($safe) < 10) {
    $safe[] = count($safe);
}

var_dump(count($safe));
?>

L'exemple ci-dessus va afficher :

int(10)


Manipulation pendant l'exécution

  • « Threaded::count
  • Threaded::from »
  • PHP Manual
  • Threaded
  • Manipulation pendant l'exécution

Threaded::extend

(PECL pthreads >= 2.0.8)

Threaded::extend — Manipulation pendant l'exécution

Description

public bool Threaded::extend ( string $class )

Rend la classe standart sécurisée au nivau du thread pendant l'exécution.

Liste de paramètres

class

La classe à étendre.

Valeurs de retour

Un booléen indiquant le succès de l'opération.

Exemples

Exemple #1 Héritage à l'exécution

<?php
class My {}

Threaded::extend(My::class);

$my = new My();

var_dump($my instanceof Threaded);
?>

L'exemple ci-dessus va afficher :

bool(true)


Création

  • « Threaded::extend
  • Threaded::getTerminationInfo »
  • PHP Manual
  • Threaded
  • Création

Threaded::from

(PECL pthreads >= 2.0.9)

Threaded::from — Création

Description

public Threaded Threaded::from ( Closure $run [, Closure $construct [, array $args ]] )

Crée un nouvel objet Threaded depuis les closures.

Liste de paramètres

run

La closure à utiliser pour ::run

construct

Le constructeur à utiliser pour l'objet anonyme.

args

Les arguments à passer au constructeur.

Valeurs de retour

Un nouvel objet anonyme Threaded.

Exemples

Exemple #1 Objets sécurisés Thread depuis les closures

<?php
$pool = new Pool(4);
$pool->submit(Collectable::from(function(){
    echo "Bonjour le monde !";
    $this->setGarbage();
}));
/* ... */
$pool->shutdown();
?>

L'exemple ci-dessus va afficher :

Bonjour le monde !


Détection d'erreur

  • « Threaded::from
  • Threaded::isRunning »
  • PHP Manual
  • Threaded
  • Détection d'erreur

Threaded::getTerminationInfo

(PECL pthreads >= 2.0.0)

Threaded::getTerminationInfo — Détection d'erreur

Description

public array Threaded::getTerminationInfo ( void )

Récupère les informations d'une erreur depuis l'objet référencé

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant les informations de l'erreur de l'objet référencé.

Exemples

Exemple #1 Détection des erreurs fatales dans Threads

<?php
class My extends Thread {
    public function run() {
        @not_found();
    }
}

$my = new My();
$my->start();
$my->join();

var_dump($my->isTerminated(), $my->getTerminationInfo());
?>

L'exemple ci-dessus va afficher :

bool(true)
array(4) {
  ["scope"]=>
  string(2) "My"
  ["function"]=>
  string(3) "run"
  ["file"]=>
  string(29) "/usr/src/pthreads/sandbox.php"
  ["line"]=>
  int(4)
}


Détection de statut

  • « Threaded::getTerminationInfo
  • Threaded::isTerminated »
  • PHP Manual
  • Threaded
  • Détection de statut

Threaded::isRunning

(PECL pthreads >= 2.0.0)

Threaded::isRunning — Détection de statut

Description

public boolean Threaded::isRunning ( void )

Demande si l'objet référencé est en cours d'exécution.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen indiquant le statut.

Note:

Un objet est considéré comme étant en cours d'exécution lorsqu'il exécute la méthode run.

Exemples

Exemple #1 Détecte le statut de l'objet référencé

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
var_dump($my->isRunning());
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
?>

L'exemple ci-dessus va afficher :

bool(true)


Détection de statut

  • « Threaded::isRunning
  • Threaded::isWaiting »
  • PHP Manual
  • Threaded
  • Détection de statut

Threaded::isTerminated

(PECL pthreads >= 2.0.0)

Threaded::isTerminated — Détection de statut

Description

public boolean Threaded::isTerminated ( void )

Demande si l'objet référencé s'est terminé durant l'exécution ; si il a subi une erreur fatale ou émis des exceptions qui n'ont pu être attrapées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen indiquant le statut.

Exemples

Exemple #1 Détecte le statut de l'objet référencé

<?php
class My extends Thread {
    public function run() {
        i_do_not_exist();
    }
}
$my = new My();
$my->start();
$my->join();
var_dump($my->isTerminated());
?>

L'exemple ci-dessus va afficher :

bool(true)


Détection de statut

  • « Threaded::isTerminated
  • Threaded::lock »
  • PHP Manual
  • Threaded
  • Détection de statut

Threaded::isWaiting

(PECL pthreads >= 2.0.0)

Threaded::isWaiting — Détection de statut

Description

public boolean Threaded::isWaiting ( void )

Indique si l'objet référencé est en attente d'une notification

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen indiquant le statut

Exemples

Exemple #1 Détecte le statut de l'objet référencé

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$this->done)
                $thread->wait();
        }, $this);
    }

    protected $done;
}
$my = new My();
$my->start();
$my->synchronized(function($thread){
    var_dump(
        $thread->isWaiting());
    $thread->done = true;
    $thread->notify();
}, $my);
?>

L'exemple ci-dessus va afficher :

bool(true)


Synchronisation

  • « Threaded::isWaiting
  • Threaded::merge »
  • PHP Manual
  • Threaded
  • Synchronisation

Threaded::lock

(PECL pthreads >= 2.0.0)

Threaded::lock — Synchronisation

Description

public boolean Threaded::lock ( void )

Verouille la table des propriétés de la table de l'objet référencé

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen indiquant le succès

Exemples

Exemple #1 Verouille les propriétés de l'objet

<?php
class My extends Thread {
    public function run() {
        var_dump($this->lock());
        /** personne ne peut lire, ni écrire **/
        var_dump($this->unlock());
        /** reprise de la lecture et de l'écriture pour tous les autres contextes */
    }
}
$my = new My();
$my->start();
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)


Manipulation

  • « Threaded::lock
  • Threaded::notify »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::merge

(PECL pthreads >= 2.0.0)

Threaded::merge — Manipulation

Description

public boolean Threaded::merge ( mixed $from [, bool $overwrite ] )

Fusionne les données dans l'objet courant

Liste de paramètres

from

Les données à fusionner

overwrite

Ecrase les clés existantes ; par défaut vaut TRUE

Valeurs de retour

Un booléen indiquant le succès.

Exemples

Exemple #1 Fusionne l'objet threadé dans la table des propriétés

<?php
$array = [];

while (count($array) < 10)
    $array[] = count($array);

$stdClass = new stdClass();
$stdClass->foo = "foo";
$stdClass->bar = "bar";
$stdClass->baz = "baz";

$safe = new Threaded();
$safe->merge($array);
$safe->merge($stdClass);

var_dump($safe);
?>

L'exemple ci-dessus va afficher :

object(Threaded)#2 (13) {
  ["0"]=>
  int(0)
  ["1"]=>
  int(1)
  ["2"]=>
  int(2)
  ["3"]=>
  int(3)
  ["4"]=>
  int(4)
  ["5"]=>
  int(5)
  ["6"]=>
  int(6)
  ["7"]=>
  int(7)
  ["8"]=>
  int(8)
  ["9"]=>
  int(9)
  ["foo"]=>
  string(3) "foo"
  ["bar"]=>
  string(3) "bar"
  ["baz"]=>
  string(3) "baz"
}


Synchronisation

  • « Threaded::merge
  • Threaded::pop »
  • PHP Manual
  • Threaded
  • Synchronisation

Threaded::notify

(PECL pthreads >= 2.0.0)

Threaded::notify — Synchronisation

Description

public boolean Threaded::notify ( void )

Envoi une notification à l'objet référencé

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen indiquant le succès

Exemples

Exemple #1 Notifications et attente

<?php
class My extends Thread {
    public function run() {
        /** fait que le thread patiente **/
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
/** envoi la notification au thread qui attend **/
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
var_dump($my->join());
?>

L'exemple ci-dessus va afficher :

bool(true)


Manipulation

  • « Threaded::notify
  • Threaded::run »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::pop

(PECL pthreads >= 2.0.0)

Threaded::pop — Manipulation

Description

public boolean Threaded::pop ( void )

Enlève le dernier élément depuis la table des propriétés de l'objet.

Valeurs de retour

Le dernier élément de la table des propriétés de l'objet.

Exemples

Exemple #1 Enlève le dernier élément depuis la table des propriétés d'un objet threadé

<?php
$safe = new Threaded();

while (count($safe) < 10)
    $safe[] = count($safe);

var_dump($safe->pop());
?>

L'exemple ci-dessus va afficher :

int(9)


Exécution

  • « Threaded::pop
  • Threaded::shift »
  • PHP Manual
  • Threaded
  • Exécution

Threaded::run

(PECL pthreads >= 2.0.0)

Threaded::run — Exécution

Description

public void Threaded::run ( void )

Le développeur doit toujours implément la méthode run pour les objets qui doivent être exécuté.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Manipulation

  • « Threaded::run
  • Threaded::synchronized »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::shift

(PECL pthreads >= 2.0.0)

Threaded::shift — Manipulation

Description

public boolean Threaded::shift ( void )

Enlève le premier élément depuis la table de propriétés de l'objet.

Valeurs de retour

Le premier élément depuis la table de propriétés de l'objet.

Exemples

Exemple #1 Enlève le premier élément depuis la table de propriétés de l'objet threadé

<?php
$safe = new Threaded();

while (count($safe) < 10)
    $safe[] = count($safe);

var_dump($safe->shift());
?>

L'exemple ci-dessus va afficher :

int(0)


Synchronisation

  • « Threaded::shift
  • Threaded::unlock »
  • PHP Manual
  • Threaded
  • Synchronisation

Threaded::synchronized

(PECL pthreads >= 2.0.0)

Threaded::synchronized — Synchronisation

Description

public mixed Threaded::synchronized ( Closure $block [, mixed $... ] )

Exécute le bloc tout en retenant les verrous de synchronisation des objets référencés pour le contexte appelant.

Liste de paramètres

block

Le bloc de code à exécuter

...

Liste variable d'arguments à utiliser comme argument de la fonction

Valeurs de retour

La valeur retournée du bloc

Exemples

Exemple #1 Synchronisation

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
var_dump($my->join());
?>

L'exemple ci-dessus va afficher :

bool(true)


Synchronisation

  • « Threaded::synchronized
  • Threaded::wait »
  • PHP Manual
  • Threaded
  • Synchronisation

Threaded::unlock

(PECL pthreads >= 2.0.0)

Threaded::unlock — Synchronisation

Description

public boolean Threaded::unlock ( void )

Déverouille le stockage des objets référencés pour le contexte appelant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen indiquant le succès.

Exemples

Exemple #1 Verouillage de la table des propriétés de l'objet threadé

<?php
class My extends Thread {
    public function run() {
        var_dump($this->lock());
        /** personne ne peut lire, ni écrire **/
        var_dump($this->unlock());
        /** Reprise des lectures et des écritures pour tous les autres contextes */
    }
}
$my = new My();
$my->start();
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)


Synchronisation

  • « Threaded::unlock
  • Thread »
  • PHP Manual
  • Threaded
  • Synchronisation

Threaded::wait

(PECL pthreads >= 2.0.0)

Threaded::wait — Synchronisation

Description

public boolean Threaded::wait ([ integer $timeout ] )

Fera attendre le contexte appelant une notification depuis l'objet référencé.

Liste de paramètres

timeout

Un délai d'attente maximal optionnel, en microsecondes.

Valeurs de retour

Un booléen indiquant le succès.

Exemples

Exemple #1 Notifications et attente

<?php
class My extends Thread {
    public function run() {
        /** Fait patienter ce thread **/
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
/** Envoi la notification au threadé qui attend **/
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
var_dump($my->join());
?>

L'exemple ci-dessus va afficher :

bool(true)


La classe Thread

(PECL pthreads >= 2.0.0)

Introduction

Quand la méthode start d'un Thread est appelée, le code de la méthode run sera exécuté de façon parallèle dans un Thread séparé.

Après l'exécution de la méthode run, le Thread se terminera immédiatement, il sera rattaché au Thread d'origine par la suite.

Avertissement

S'appuyer sur le moteur pour déterminer quand un Thread sera rattaché peut provoquer un comportement non désiré. Le développeur doit être explicite tant que possible.

Synopsis de la classe

Thread extends Threaded implements Countable , Traversable , ArrayAccess {
/* Méthodes */
public void detach ( void )
public integer getCreatorId ( void )
public static Thread getCurrentThread ( void )
public static integer getCurrentThreadId ( void )
public integer getThreadId ( void )
public static mixed globally ( void )
public boolean isJoined ( void )
public boolean isStarted ( void )
public boolean join ( void )
public void kill ( void )
public boolean start ([ integer $options ] )
/* Méthodes héritées */
public array Threaded::chunk ( integer $size , boolean $preserve )
public integer Threaded::count ( void )
public bool Threaded::extend ( string $class )
public Threaded Threaded::from ( Closure $run [, Closure $construct [, array $args ]] )
public array Threaded::getTerminationInfo ( void )
public boolean Threaded::isRunning ( void )
public boolean Threaded::isTerminated ( void )
public boolean Threaded::isWaiting ( void )
public boolean Threaded::lock ( void )
public boolean Threaded::merge ( mixed $from [, bool $overwrite ] )
public boolean Threaded::notify ( void )
public boolean Threaded::pop ( void )
public void Threaded::run ( void )
public boolean Threaded::shift ( void )
public mixed Threaded::synchronized ( Closure $block [, mixed $... ] )
public boolean Threaded::unlock ( void )
public boolean Threaded::wait ([ integer $timeout ] )
}

Sommaire

  • Thread::detach — Exécution
  • Thread::getCreatorId — Identification
  • Thread::getCurrentThread — Identification
  • Thread::getCurrentThreadId — Identification
  • Thread::getThreadId — Identification
  • Thread::globally — Exécution
  • Thread::isJoined — Détection de statut
  • Thread::isStarted — Détection de statut
  • Thread::join — Synchronisation
  • Thread::kill — Exécution
  • Thread::start — Exécution


Exécution

  • « Thread
  • Thread::getCreatorId »
  • PHP Manual
  • Thread
  • Exécution

Thread::detach

(PECL pthreads >= 2.0.0)

Thread::detach — Exécution

Description

public void Thread::detach ( void )

Détache le thread référencé depuis le contexte appelant ; très dangereux !

Avertissement

Cette méthode peut conduire à un comportement indéfini et non sécurisé. Elle ne doit pas être utilisée normalement, et n'existe que pour des cas avancés bien spécifiques.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Identification

  • « Thread::detach
  • Thread::getCurrentThread »
  • PHP Manual
  • Thread
  • Identification

Thread::getCreatorId

(PECL pthreads >= 2.0.0)

Thread::getCreatorId — Identification

Description

public integer Thread::getCreatorId ( void )

Retourne l'identité du Thread qui a créé le Thread référencé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une identité numérique.

Exemples

Exemple #1 Retourne l'identité du Thread ou du processus qui a créé le Thread référencé

<?php
class My extends Thread {
    public function run() {
        printf("%s a été créé par le Thread #%lu\n", __CLASS__, $this->getCreatorId());
    }
}
$my = new My();
$my->start();
?>

L'exemple ci-dessus va afficher :

My a été créé par le Thread #123456778899


Identification

  • « Thread::getCreatorId
  • Thread::getCurrentThreadId »
  • PHP Manual
  • Thread
  • Identification

Thread::getCurrentThread

(PECL pthreads >= 2.0.0)

Thread::getCurrentThread — Identification

Description

public static Thread Thread::getCurrentThread ( void )

Retourne un référence du thread actuellement en cours d'exécution

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet représentant le thread actuellement en cours d'exécution.

Exemples

Exemple #1 Retourne le thread actuellement en cours d'exécution

<?php
class My extends Thread {
    public function run() {
        var_dump(Thread::getCurrentThread());
    }
}
$my = new My();
$my->start();
?>

L'exemple ci-dessus va afficher :

object(My)#2 (0) {
}


Identification

  • « Thread::getCurrentThread
  • Thread::getThreadId »
  • PHP Manual
  • Thread
  • Identification

Thread::getCurrentThreadId

(PECL pthreads >= 2.0.0)

Thread::getCurrentThreadId — Identification

Description

public static integer Thread::getCurrentThreadId ( void )

Retourne l'identité du thread actuellement en cours d'exécution

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une identité numérique

Exemples

Exemple #1 Retourne l'identité du thread actuellement en cours d'exécution

<?php
class My extends Thread {
    public function run() {
        printf("%s is Thread #%lu\n", __CLASS__, Thread::getCurrentThreadId());
    }
}
$my = new My();
$my->start();
?>

L'exemple ci-dessus va afficher :

My is Thread #123456778899


Identification

  • « Thread::getCurrentThreadId
  • Thread::globally »
  • PHP Manual
  • Thread
  • Identification

Thread::getThreadId

(PECL pthreads >= 2.0.0)

Thread::getThreadId — Identification

Description

public integer Thread::getThreadId ( void )

Retourne l'identité du Thread référencé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une identité numérique.

Exemples

Exemple #1 Retourne l'identité du Thread référencé

<?php
class My extends Thread {
    public function run() {
        printf("%s est le Thread #%lu\n", __CLASS__, $this->getThreadId());
    }
}
$my = new My();
$my->start();
?>

L'exemple ci-dessus va afficher :

My est le Thread #123456778899


Exécution

  • « Thread::getThreadId
  • Thread::isJoined »
  • PHP Manual
  • Thread
  • Exécution

Thread::globally

(PECL pthreads >= 2.0.1)

Thread::globally — Exécution

Description

public static mixed Thread::globally ( void )

Exécute une fonction de rappel dans le scope global

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur retournée par la fonction de rappel.

Exemples

Exemple #1 Exécution dans le scope global

<?php
class My extends Thread {
    public function run() {
        global $std;

        Thread::globally(function(){
            $std = new stdClass;
        });

        var_dump($std);
    }
}
$my = new My();
$my->start();
?>

L'exemple ci-dessus va afficher :

object(stdClass)#3 (0) {
}


Détection de statut

  • « Thread::globally
  • Thread::isStarted »
  • PHP Manual
  • Thread
  • Détection de statut

Thread::isJoined

(PECL pthreads >= 2.0.0)

Thread::isJoined — Détection de statut

Description

public boolean Thread::isJoined ( void )

Indique si le Thread référencé a été joint.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen indiquant le statut de l'opération.

Exemples

Exemple #1 Détecte le statut du Thread référencé

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
var_dump($my->isJoined());
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
?>

L'exemple ci-dessus va afficher :

bool(false)


Détection de statut

  • « Thread::isJoined
  • Thread::join »
  • PHP Manual
  • Thread
  • Détection de statut

Thread::isStarted

(PECL pthreads >= 2.0.0)

Thread::isStarted — Détection de statut

Description

public boolean Thread::isStarted ( void )

Indique si le Thread référencé a été démarré.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen indiquant le statut de l'opération.

Exemples

Exemple #1 Indique si le Thread référencé a été démarré

<?php
$worker = new Worker();
$worker->start();
var_dump($worker->isStarted());
?>

L'exemple ci-dessus va afficher :

bool(true)


Synchronisation

  • « Thread::isStarted
  • Thread::kill »
  • PHP Manual
  • Thread
  • Synchronisation

Thread::join

(PECL pthreads >= 2.0.0)

Thread::join — Synchronisation

Description

public boolean Thread::join ( void )

Fait attendre le contexte appelant du Thread référencé la fin de l'exécution.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen indiquant le succès de l'opération.

Exemples

Exemple #1 Rejoint le Thread référencé

<?php
class My extends Thread {
    public function run() {
        /* ... */
    }
}
$my = new My();
$my->start();
/* ... */
var_dump($my->join());
/* ... */
?>

L'exemple ci-dessus va afficher :

bool(true)


Exécution

  • « Thread::join
  • Thread::start »
  • PHP Manual
  • Thread
  • Exécution

Thread::kill

(PECL pthreads >= 2.0.0)

Thread::kill — Exécution

Description

public void Thread::kill ( void )

Force le thread référencé à se terminer

Avertissement

Le développeur ne devrait pas avoir à forcer le thread à se terminer.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen indiquant le succès.

Exemples

Exemple #1 Termine le thread référencé

<?php
class T extends Thread {
    public function run() {
        $stdin = fopen("php://stdin", "r");
        while(($line = fgets($stdin))) {
            echo $line;
        }
    }
}

$t = new T();
$t->start();

var_dump($t->kill());
?>

L'exemple ci-dessus va afficher :

bool(true)


Exécution

  • « Thread::kill
  • Worker »
  • PHP Manual
  • Thread
  • Exécution

Thread::start

(PECL pthreads >= 2.0.0)

Thread::start — Exécution

Description

public boolean Thread::start ([ integer $options ] )

Démarre un nouveau Thread et exécute la méthode run implémentée.

Liste de paramètres

options

Un masque optionnel de constantes héritées ; par défaut, PTHREADS_INHERIT_ALL

Valeurs de retour

Un booléen indiquant le succès de l'opération.

Exemples

Exemple #1 Démarre les Threads

<?php
class My extends Thread {
    public function run() {
        /** ... **/
    }
}
$my = new My();
var_dump($my->start());
?>

L'exemple ci-dessus va afficher :

bool(true)


La classe Worker

(PECL pthreads >= 2.0.0)

Introduction

Les Threads Worker ont un contexte persistent, aussi, ils peuvent être utilisés via Threads dans la plupart des cas.

Quand un Worker est démarré, la méthode run() sera exécuté, mais le Thread ne s'arrêtera pas tant qu'une des conditions suivantes n'est pas atteinte :

  • le Worker est hors de portée (aucune référence restante) ;

  • le développeur appelle shutdown() ;

  • le script meurt.

Ce qui signifie que le développeur peut réutiliser le contexte tout au long de l'exécution ; placer des objets sur la pile du Worker va entrainer le Worker à exécuter la méthode run() sur les objets empilés.

Avertissement

Le développeur doit retenir des références sur les objets empilés jusqu'a ce qu'ils soient exécutés ou dépilés; la classe Pool fourni un haut niveau d'abstraction sur la fonctionnalité Worker et gérer les références pour le développeur.

Synopsis de la classe

Worker extends Thread implements Traversable , Countable , ArrayAccess {
/* Méthodes */
public integer getStacked ( void )
public boolean isShutdown ( void )
public boolean isWorking ( void )
public boolean shutdown ( void )
public integer stack ( Threaded &$work )
public integer unstack ([ Threaded &$work ] )
/* Méthodes héritées */
public void Thread::detach ( void )
public integer Thread::getCreatorId ( void )
public static Thread Thread::getCurrentThread ( void )
public static integer Thread::getCurrentThreadId ( void )
public integer Thread::getThreadId ( void )
public static mixed Thread::globally ( void )
public boolean Thread::isJoined ( void )
public boolean Thread::isStarted ( void )
public boolean Thread::join ( void )
public void Thread::kill ( void )
public boolean Thread::start ([ integer $options ] )
}

Sommaire

  • Worker::getStacked — Analyse de pile
  • Worker::isShutdown — Détection de statut
  • Worker::isWorking — Détection de statut
  • Worker::shutdown — Synchronisation
  • Worker::stack — File d'attente
  • Worker::unstack — File d'attente


Analyse de pile

  • « Worker
  • Worker::isShutdown »
  • PHP Manual
  • Worker
  • Analyse de pile

Worker::getStacked

(PECL pthreads >= 2.0.0)

Worker::getStacked — Analyse de pile

Description

public integer Worker::getStacked ( void )

Retourne le nombre d'objets en attente d'exécution par le Worker référencé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une valeur numérique.

Exemples

Exemple #1 Retourne le nombre d'objets actuellement en attente d'exécution par le Worker référencé

<?php
class Work extends Threaded {
    /** ... **/

    public function run(){
        /** ... **/
    }
}
$my = new Worker();
/** ... **/
$work = new Work();
$my->stack($work);
/** ... **/
printf("Mon worker a %d travaux en attente\n", $my->getStacked());
/** ... **/
?>

L'exemple ci-dessus va afficher :

Mon worker a 5 travaux en attente


Détection de statut

  • « Worker::getStacked
  • Worker::isWorking »
  • PHP Manual
  • Worker
  • Détection de statut

Worker::isShutdown

(PECL pthreads >= 2.0.0)

Worker::isShutdown — Détection de statut

Description

public boolean Worker::isShutdown ( void )

Indique si le Worker référencé a été arrêté.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen indiquant le statut de l'opération.

Exemples

Exemple #1 Détecte le statut d'un Worker

<?php
$my = new Worker();
$my->start();
var_dump($my->isShutdown());
$my->shutdown();
var_dump($my->isShutdown());
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)


Détection de statut

  • « Worker::isShutdown
  • Worker::shutdown »
  • PHP Manual
  • Worker
  • Détection de statut

Worker::isWorking

(PECL pthreads >= 2.0.0)

Worker::isWorking — Détection de statut

Description

public boolean Worker::isWorking ( void )

Indique si le Worker exécute des Stackables ou non.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen indiquant le statut de l'opération.

Exemples

Exemple #1 Détecte le statut d'un Worker

<?php
$my = new Worker();
$my->start();
/* ... */
if ($my->isWorking()) {
    /* ... le Worker est en train d'exécuter un autre objet */
}
?>


Synchronisation

  • « Worker::isWorking
  • Worker::stack »
  • PHP Manual
  • Worker
  • Synchronisation

Worker::shutdown

(PECL pthreads >= 2.0.0)

Worker::shutdown — Synchronisation

Description

public boolean Worker::shutdown ( void )

Arrête le Worker après l'exécution de tous les objets de la file d'attente.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Eteint le Worker référencé

<?php
$my = new Worker();
$my->start();
/* ... */
var_dump($my->shutdown());
/* ... */
?>

L'exemple ci-dessus va afficher :

bool(true)


File d'attente

  • « Worker::shutdown
  • Worker::unstack »
  • PHP Manual
  • Worker
  • File d'attente

Worker::stack

(PECL pthreads >= 2.0.0)

Worker::stack — File d'attente

Description

public integer Worker::stack ( Threaded &$work )

Ajoute l'objet référencé à la file d'attente du Worker référencé.

Liste de paramètres

work

Un objet threadé à exécuter par le Worker référencé.

Valeurs de retour

La nouvelle taille de la file.

Exemples

Exemple #1 Objets passés aux Workers pour exécution

<?php
class Work extends Threaded {
    /** ... **/

    public function run(){
        /** ... **/
    }
}

$my = new Worker();
$work = new Work();
/** ... **/
var_dump($my->stack($work));
/** ... **/
?>

L'exemple ci-dessus va afficher :

int(1)


File d'attente

  • « Worker::stack
  • Collectable »
  • PHP Manual
  • Worker
  • File d'attente

Worker::unstack

(PECL pthreads >= 2.0.0)

Worker::unstack — File d'attente

Description

public integer Worker::unstack ([ Threaded &$work ] )

Supprime l'objet référencé (ou tous les objets si les paramètres vallent void) depuis la file d'attente du Worker référencé.

Liste de paramètres

work

Un objet threadé, se trouvant dans la pile d'attente

Valeurs de retour

La nouvelle taille de la file d'attente.

Exemples

Exemple #1 Supprime l'objet depuis la pile d'attente des Workers

<?php
class Work extends Threaded {
    public function run() {

    }
}

$my = new Worker();
$work = new Work();
var_dump($my->stack($work));
var_dump($my->unstack($work));
?>

L'exemple ci-dessus va afficher :

int(1)
int(0)


La classe Collectable

(PECL pthreads >= 2.0.8)

Introduction

Représente un objet de collecte de données obsolètes.

Les objets de collecte sont prévus pour être utilisés par la classe Pool, remplaçant les objets Threaded comme unité de travail. Ils fournissent des méthodes pour définir et détecter la possibilité de collecte d'un objet.

Synopsis de la classe

Collectable extends Threaded {
/* Méthodes */
public bool isGarbage ( void )
public void setGarbage ( void )
/* Méthodes héritées */
public array Threaded::chunk ( integer $size , boolean $preserve )
public integer Threaded::count ( void )
public bool Threaded::extend ( string $class )
public Threaded Threaded::from ( Closure $run [, Closure $construct [, array $args ]] )
public array Threaded::getTerminationInfo ( void )
public boolean Threaded::isRunning ( void )
public boolean Threaded::isTerminated ( void )
public boolean Threaded::isWaiting ( void )
public boolean Threaded::lock ( void )
public boolean Threaded::merge ( mixed $from [, bool $overwrite ] )
public boolean Threaded::notify ( void )
public boolean Threaded::pop ( void )
public void Threaded::run ( void )
public boolean Threaded::shift ( void )
public mixed Threaded::synchronized ( Closure $block [, mixed $... ] )
public boolean Threaded::unlock ( void )
public boolean Threaded::wait ([ integer $timeout ] )
}

Sommaire

  • Collectable::isGarbage — Détermine si un objet a été marqué comme obsolète
  • Collectable::setGarbage — Marque un objet comme obsolète


Détermine si un objet a été marqué comme obsolète

  • « Collectable
  • Collectable::setGarbage »
  • PHP Manual
  • Collectable
  • Détermine si un objet a été marqué comme obsolète

Collectable::isGarbage

(PECL pthreads >= 2.0.8)

Collectable::isGarbage — Détermine si un objet a été marqué comme obsolète

Description

public bool Collectable::isGarbage ( void )

Peut être appelé dans Pool::collect() pour déterminir si cet objet est obsolète.

Voir aussi

  • Pool::collect() - Collecte les références des tâches achevées


Marque un objet comme obsolète

  • « Collectable::isGarbage
  • Modificateurs »
  • PHP Manual
  • Collectable
  • Marque un objet comme obsolète

Collectable::setGarbage

(PECL pthreads >= 2.0.8)

Collectable::setGarbage — Marque un objet comme obsolète

Description

public void Collectable::setGarbage ( void )

Doit être appelé une fois par objet, lorsque l'objet a terminé son exécution ou son référencement.

Voir aussi

  • Collectable::isGarbage() - Détermine si un objet a été marqué comme obsolète


Modificateurs de méthodes

Pthreads écrase la fonctionalité des modificateurs de méthodes protégées et privées afin de founir une fonctionalité plus conforme aux objets multi-threads. Pthreads applique cette fonctionalité à tous les objets Threaded depuis leurs créations.

Exemple #1 Exemple de méthode protégée : les méthodes protégées peuvent seulement être exécutées par un seul Thread à la fois.

<?php
class ExampleThread extends Thread {
    public function run() {
        /* Code du thread */
        if ($this->synchronized()) {

        }
    }

    protected function exclusive() {
        /* méthode de synchronisation */
    }
}

$thread = new ExampleThread();
if ($thread->start()) {
    $thread->exclusive();
}
?>

Exemple #2 Exemple de méthode privée : les méthodes privées ne peuvent être exécutées par l'objet Threaded que pendant leur exécution

<?php
class ExampleThread extends Thread {
    public function run() {
        /* Code du thread */
        if ($this->insideonly()) {

        }
    }

    private function insideonly() {
        /* méthode privée */
    }
}

$thread = new ExampleThread();
if ($thread->start()) {
    $thread->insideonly();
}
?>


La classe Pool

(PECL pthreads >= 2.0.0)

Introduction

Un Pool est un conteneur pour, et controllé par, un nombre ajustable de Workers.

Le pooling fournit un niveau élevé d'abstraction sur la fonctionnalité Worker, en incluant la gestion des références dans le sens requis par pthreads.

Synopsis de la classe

Pool {
/* Propriétés */
protected $size ;
protected $class ;
protected $workers ;
protected $work ;
protected $ctor ;
protected $last ;
/* Méthodes */
public void collect ( Callable $collector )
public Pool __construct ( integer $size , string $class [, array $ctor ] )
public void resize ( integer $size )
public void shutdown ( void )
public integer submit ( Threaded $task )
public integer submitTo ( integer $worker , Threaded $task )
}

Propriétés

size

Nombre maximum de Workers que ce pool peut utiliser

class

La classe du Worker

ctor

Les arguments pour le constructeur des nouveaux Workers

workers

références vers les Workers

work

références vers les objets Threaded soumis au Pool

last

offset dans les workers du dernier Worker utilisé

Sommaire

  • Pool::collect — Collecte les références des tâches achevées
  • Pool::__construct — Crée un nouveau Pool de Workers
  • Pool::resize — Redimensionne le Pool
  • Pool::shutdown — Arrête tous les Workers
  • Pool::submit — Soumet un objet pour exécution
  • Pool::submitTo — Soumet un objet pour exécution


Collecte les références des tâches achevées

  • « Pool
  • Pool::__construct »
  • PHP Manual
  • Pool
  • Collecte les références des tâches achevées

Pool::collect

(PECL pthreads >= 2.0.0)

Pool::collect — Collecte les références des tâches achevées

Description

public void Pool::collect ( Callable $collector )

Autorise le Pool à collecter les références déterminées à être des données incorrectes par le collecteur fourni.

Liste de paramètres

collector

Un collecteur

Valeurs de retour

void

Exemples

Exemple #1 Création de Pools

<?php
class MyWork extends Stackable {
    public function __construct() {
        $this->complete = false;
    }

    public function run() {
        printf(
            "Hello from %s in Thread #%lu\n",
            __CLASS__, $this->worker->getThreadId());
        $this->complete = true;
    }

    public function isComplete() {
        return $this->complete;
    }

    protected $complete;
}

class MyWorker extends Worker {

    public function __construct(Something $something) {
        $this->something = $something;
    }

    public function run() {
        /** ... **/
    }
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);
$pool->submit(new MyWork());

usleep(1000);

$pool->collect(function($work){
    return $work->isComplete();
});
var_dump($pool);
?>

L'exemple ci-dessus va afficher :

Hello from MyWork in Thread #140222468777728
object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  array(1) {
    [0]=>
    object(MyWorker)#4 (1) {
      ["something"]=>
      object(Something)#5 (0) {
      }
    }
  }
  ["work":protected]=>
  array(0) {
  }
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(1)
}


Crée un nouveau Pool de Workers

  • « Pool::collect
  • Pool::resize »
  • PHP Manual
  • Pool
  • Crée un nouveau Pool de Workers

Pool::__construct

(PECL pthreads >= 2.0.0)

Pool::__construct — Crée un nouveau Pool de Workers

Description

public Pool Pool::__construct ( integer $size , string $class [, array $ctor ] )

Construit un nouveau Pool de Workers

Liste de paramètres

size

Le nombre maximal de Workers que ce Pool peut créer

class

La classe pour les nouveaux Workers

ctor

Un tableau d'arguments à passer aux nouveaux Workers

Valeurs de retour

Le nouveau Pool

Exemples

Exemple #1 Création d'un Pool

<?php
class MyWorker extends Worker {

    public function __construct(Something $something) {
        $this->something = $something;
    }

    public function run() {
        /** ... **/
    }
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);

var_dump($pool);
?>

L'exemple ci-dessus va afficher :

object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  NULL
  ["work":protected]=>
  NULL
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(0)
}


Redimensionne le Pool

  • « Pool::__construct
  • Pool::shutdown »
  • PHP Manual
  • Pool
  • Redimensionne le Pool

Pool::resize

(PECL pthreads >= 2.0.0)

Pool::resize — Redimensionne le Pool

Description

public void Pool::resize ( integer $size )

Redimensionne le Pool.

Liste de paramètres

size

Le nombre maximal de Workers que ce Pool peut créer

Valeurs de retour

void


Arrête tous les Workers

  • « Pool::resize
  • Pool::submit »
  • PHP Manual
  • Pool
  • Arrête tous les Workers

Pool::shutdown

(PECL pthreads >= 2.0.0)

Pool::shutdown — Arrête tous les Workers

Description

public void Pool::shutdown ( void )

Arrête tous les Workers de ce Pool.

Valeurs de retour

void


Soumet un objet pour exécution

  • « Pool::shutdown
  • Pool::submitTo »
  • PHP Manual
  • Pool
  • Soumet un objet pour exécution

Pool::submit

(PECL pthreads >= 2.0.0)

Pool::submit — Soumet un objet pour exécution

Description

public integer Pool::submit ( Threaded $task )

Soumet la tâche au prochain Worker du Pool

Liste de paramètres

size

La tâche pour exécution

Valeurs de retour

L'identifiant du Worker exécutant l'objet

Exemples

Exemple #1 Soumission de tâches

<?php
class MyWork extends Threaded {

    public function run() {
        /* ... */
    }
}

class MyWorker extends Worker {

    public function __construct(Something $something) {
        $this->something = $something;
    }

    public function run() {
        /** ... **/
    }
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);
$pool->submit(new MyWork());
var_dump($pool);
?>

L'exemple ci-dessus va afficher :

object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  array(1) {
    [0]=>
    object(MyWorker)#4 (1) {
      ["something"]=>
      object(Something)#5 (0) {
      }
    }
  }
  ["work":protected]=>
  array(1) {
    [0]=>
    object(MyWork)#3 (1) {
      ["worker"]=>
      object(MyWorker)#5 (1) {
        ["something"]=>
        object(Something)#6 (0) {
        }
      }
    }
  }
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(1)
}


Soumet un objet pour exécution

  • « Pool::submit
  • Mutex »
  • PHP Manual
  • Pool
  • Soumet un objet pour exécution

Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitTo — Soumet un objet pour exécution

Description

public integer Pool::submitTo ( integer $worker , Threaded $task )

Soumet l'objet au worker spécifié dans le Pool

Liste de paramètres

worker

Le worker pour exécution

size

La tâche, pour exécution

Valeurs de retour

L'identifiant du Worker qui a accepté l'objet

Exemples

Exemple #1 Soumission d'une tâche

<?php
class MyWork extends Threaded {

    public function run() {
        /* ... */
    }
}

class MyWorker extends Worker {

    public function __construct(Something $something) {
        $this->something = $something;
    }

    public function run() {
        /** ... **/
    }
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);
$pool->submit(new MyWork());
var_dump($pool);
?>

L'exemple ci-dessus va afficher :

object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  array(1) {
    [0]=>
    object(MyWorker)#4 (1) {
      ["something"]=>
      object(Something)#5 (0) {
      }
    }
  }
  ["work":protected]=>
  array(1) {
    [0]=>
    object(MyWork)#3 (1) {
      ["worker"]=>
      object(MyWorker)#5 (1) {
        ["something"]=>
        object(Something)#6 (0) {
        }
      }
    }
  }
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(1)
}


La classe Mutex

(PECL pthreads >= 2.0.0)

Introduction

Les méthodes statiques contenues dans la classe Mutex fournissent des accès directs aux fonctionalités Posix Mutex.

Synopsis de la classe

Mutex {
/* Méthodes */
final public static long create ([ boolean $lock ] )
final public static boolean destroy ( long $mutex )
final public static boolean lock ( long $mutex )
final public static boolean trylock ( long $mutex )
final public static boolean unlock ( long $mutex [, boolean $destroy ] )
}

Sommaire

  • Mutex::create — Crée un Mutex
  • Mutex::destroy — Détruit un Mutex
  • Mutex::lock — Acquière un Mutex
  • Mutex::trylock — Tente d'acquérir un Mutex
  • Mutex::unlock — Libère un Mutex


Crée un Mutex

  • « Mutex
  • Mutex::destroy »
  • PHP Manual
  • Mutex
  • Crée un Mutex

Mutex::create

(PECL pthreads >= 2.0.0)

Mutex::create — Crée un Mutex

Description

final public static long Mutex::create ([ boolean $lock ] )

Crée, et optionnellement, verrouille un nouveau Mutex pour l'appelant.

Liste de paramètres

lock

Passer la valeur TRUE pour verrouiller le Mutex pour l'appelant avant de retourner le gestionnaire.

Valeurs de retour

Un nouveau gestionnaire Mutex, et optionnellement, verrouillé.

Exemples

Exemple #1 Création et destruction d'un Mutex

<?php
/** Vous ne pouvez pas utiliser le mot clé "new", un Mutex n'est pas un objet PHP **/
$mutex = Mutex::create();
/** Vous avez l'adresse physique du Mutex **/
var_dump($mutex);
/** Toujours détruire un Mutex que vous avez créé **/
Mutex::destroy($mutex);
?>

L'exemple ci-dessus va afficher :

int(40096976)


Détruit un Mutex

  • « Mutex::create
  • Mutex::lock »
  • PHP Manual
  • Mutex
  • Détruit un Mutex

Mutex::destroy

(PECL pthreads >= 2.0.0)

Mutex::destroy — Détruit un Mutex

Description

final public static boolean Mutex::destroy ( long $mutex )

La destruction des gestionnaires Mutex doit être effectuée explicitement par le programmeur, lorsqu'il a terminé de l'utiliser.

Liste de paramètres

mutex

Un gestionnaire retourné par un appel à la méthodeMutex::create(). Le gestionnaire ne doit pas être verrouillé par un autre Thread lorsque la méthode Mutex::destroy() est appelée.

Valeurs de retour

Un booléen indiquant le statut de l'opération.

Exemples

Exemple #1 Création et destruction d'un Mutex

<?php
/** Vous ne pouvez pas utiliser le mot clé "new", un Mutex n'est pas un objet PHP **/
$mutex = Mutex::create();
/** Vous avez l'adresse physique du Mutex **/
var_dump($mutex);
/** Toujours détruire un Mutex que vous avez créé **/
Mutex::destroy($mutex);
?>

L'exemple ci-dessus va afficher :

int(40096976)


Acquière un Mutex

  • « Mutex::destroy
  • Mutex::trylock »
  • PHP Manual
  • Mutex
  • Acquière un Mutex

Mutex::lock

(PECL pthreads >= 2.0.0)

Mutex::lock — Acquière un Mutex

Description

final public static boolean Mutex::lock ( long $mutex )

Tente de verrouiller le Mutex de l'appelant.

Une tentative de verrouillage d'un Mutex appartenant (verrouillé) à un autre Thread conduit à un blocage.

Liste de paramètres

mutex

Un gestionnaire retourné par un appel à la méthode Mutex::create().

Valeurs de retour

Un booléen indiquant le statut de l'opération.

Exemples

Exemple #1 Verrouillage et déverrouillage d'un Mutex

<?php
/** Vous ne pouvez pas utiliser le mot clé "new", un Mutex n'est pas un objet PHP **/
$mutex = Mutex::create();
/** Vous pouvez maintenant verrouiller le Mutex dans n'importe quel contexte **/
var_dump(Mutex::lock($mutex));
/** Il n'est pas valide que de tenter de détruire un Mutex verrouillé **/
var_dump(Mutex::unlock($mutex));
/** Toujours détruire un Mutex que vous avez créé **/
Mutex::destroy($mutex);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)


Tente d'acquérir un Mutex

  • « Mutex::lock
  • Mutex::unlock »
  • PHP Manual
  • Mutex
  • Tente d'acquérir un Mutex

Mutex::trylock

(PECL pthreads >= 2.0.0)

Mutex::trylock — Tente d'acquérir un Mutex

Description

final public static boolean Mutex::trylock ( long $mutex )

Tente de verrouiller le Mutex de l'appelant sans le bloquer si le Mutex appartient (est verrouillé) à un autre Thread.

Liste de paramètres

mutex

Un gestionnaire retourné par un appel à la méthode Mutex::create().

Valeurs de retour

Un booléen indiquant le succès de l'opération.

Exemples

Exemple #1 Verrouillage et déverrouillage d'un Mutex

<?php
/** Vous ne pouvez pas utiliser le mot clé "new", un Mutex n'est pas un objet PHP **/
$mutex = Mutex::create();
/** Vous ne pouvez maintenant tenter de verrouiller le Mutex dans n'uimporte quel contexte **/
var_dump(Mutex::trylock($mutex));
/** Il n'est pas valide de tenter de détruire un Mutex verrouillé **/
var_dump(Mutex::unlock($mutex));
/** Toujours détruire un Mutex que vous avez créé **/
Mutex::destroy($mutex);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)


Libère un Mutex

  • « Mutex::trylock
  • Cond »
  • PHP Manual
  • Mutex
  • Libère un Mutex

Mutex::unlock

(PECL pthreads >= 2.0.0)

Mutex::unlock — Libère un Mutex

Description

final public static boolean Mutex::unlock ( long $mutex [, boolean $destroy ] )

Tente de déverrouiller le Mutex de l'appelant, et optionnellement, détruit le gestionnaire Mutex. Le Thread appelant doit être le propriétaire du Mutex au moment de l'appel.

Liste de paramètres

mutex

Un gestionnaire retourné par un appel à la méthode Mutex::create().

destroy

Lorsque vaut TRUE, pthreads va détruire le Mutex après un déverrouillage réussi.

Valeurs de retour

Un booléen indiquant le succès de l'opération

Exemples

Exemple #1 Verrouillage et déverrouillage du Mutex

<?php
/** Vous ne pouvez pas utiliser le mot clé "new", un Mutex n'est pas un objet PHP **/
$mutex = Mutex::create();
/** Vous pouvez maintenant verrouiller le Mutex dans n'importe quel contexte **/
var_dump(Mutex::lock($mutex));
/** C'est invalide que de tenter de détruire un Mutex verrouillé **/
var_dump(Mutex::unlock($mutex));
/** Toujours détruire un Mutex que vous avez créé **/
Mutex::destroy($mutex);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)


La classe Cond

(PECL pthreads >= 2.0.0)

Introduction

Les méthodes statiques contenues dans la classe Cond fournissent un accès direct aux variables de condition Posix.

Synopsis de la classe

Cond {
/* Méthodes */
final public static boolean broadcast ( long $condition )
final public static long create ( void )
final public static boolean destroy ( long $condition )
final public static boolean signal ( long $condition )
final public static boolean wait ( long $condition , long $mutex [, long $timeout ] )
}

Sommaire

  • Cond::broadcast — Diffuse une condition
  • Cond::create — Crée une condition
  • Cond::destroy — Détruit une condition
  • Cond::signal — Signale une condition
  • Cond::wait — Attente d'une condition


Diffuse une condition

  • « Cond
  • Cond::create »
  • PHP Manual
  • Cond
  • Diffuse une condition

Cond::broadcast

(PECL pthreads >= 2.0.0)

Cond::broadcast — Diffuse une condition

Description

final public static boolean Cond::broadcast ( long $condition )

Diffuse à tous les Threads un verrou sur un appel à la méthode Cond::wait().

Liste de paramètres

condition

Un gestionnaire de variable de condition, retourné par un appel à la méthode Cond::create().

Valeurs de retour

Un booléen indiquant le succès de l'opération.

Exemples

Exemple #1 Diffusion d'une condition

<?php
/** Vous ne pouvez pas utiliser le mot clé "new", une Cond n'est pas un objet PHP **/
$cond = Cond::create();
/** L'appelant doit verrouiller le Mutex associé avant un appel à diffuser **/
var_dump(Cond::broadcast($cond));
/** Toujours détruire une Cond que vous avez créé **/
Cond::destroy($cond);
?>

L'exemple ci-dessus va afficher :

bool(true)


Crée une condition

  • « Cond::broadcast
  • Cond::destroy »
  • PHP Manual
  • Cond
  • Crée une condition

Cond::create

(PECL pthreads >= 2.0.0)

Cond::create — Crée une condition

Description

final public static long Cond::create ( void )

Crée une nouvelle variable de condition pour l'appelant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un gestionnaire vers une variable de condition.

Exemples

Exemple #1 Création et destruction d'une condition

<?php
/** Vous ne pouvez pas utiliser le mot clé "new", une Cond n'est pas un objet PHP **/
$cond = Cond::create();
/** Vous pouvez maintenant utiliser la Cond dans n'importe quel contexte **/
var_dump($cond);
/** Toujours détruire une Cond que vous avez créé **/
Cond::destroy($cond);
?>

L'exemple ci-dessus va afficher :

int(4540682)


Détruit une condition

  • « Cond::create
  • Cond::signal »
  • PHP Manual
  • Cond
  • Détruit une condition

Cond::destroy

(PECL pthreads >= 2.0.0)

Cond::destroy — Détruit une condition

Description

final public static boolean Cond::destroy ( long $condition )

La destruction des gestionnaires de variable de condition doit être explicitement effectuée par le programmeur lorsqu'il a terminé d'utiliser la variable de condition. Aucun Thread ne doit bloquer sur un appel à la méthode Cond::wait() lorsque l'appel à la méthode Cond::destroy() survient.

Liste de paramètres

condition

Un gestionnaire de variable de condition, retourné par un appel à la méthode Cond::create()

Valeurs de retour

Un booléen indiquant le succès de l'opération.

Exemples

Exemple #1 Création et destruction d'une condition

<?php
/** Vous ne pouvez pas utiliser le mot clé "new", une Cond n'est pas un objet PHP **/
$cond = Cond::create();
/** Vous pouvez maintenant utiliser la Cond dans n'importe quel contexte **/
var_dump($cond);
/** Toujours détruire une Cond que vous avez créé **/
Cond::destroy($cond);
?>

L'exemple ci-dessus va afficher :

int(4540682)


Signale une condition

  • « Cond::destroy
  • Cond::wait »
  • PHP Manual
  • Cond
  • Signale une condition

Cond::signal

(PECL pthreads >= 2.0.0)

Cond::signal — Signale une condition

Description

final public static boolean Cond::signal ( long $condition )

Liste de paramètres

condition

Un gestionnaire retourné par un appel à la méthode Cond::create()

Valeurs de retour

Un booléen indiquant le succès de l'opération.

Exemples

Exemple #1 Signallement d'une condition

<?php
/** Vous ne pouvez pas utiliser le mot clé "new", une Cond n'est pas un objet PHP **/
$cond = Cond::create();
/** L'appelant doit verrouiller le Mutex associé avant un appel à diffuser **/
var_dump(Cond::signal($cond));
/** Toujours détruire une Cond que vous avez créé **/
Cond::destroy($cond);
?>

L'exemple ci-dessus va afficher :

bool(true)


Attente d'une condition

  • « Cond::signal
  • Semaphore »
  • PHP Manual
  • Cond
  • Attente d'une condition

Cond::wait

(PECL pthreads >= 2.0.0)

Cond::wait — Attente d'une condition

Description

final public static boolean Cond::wait ( long $condition , long $mutex [, long $timeout ] )

Attend un signal sur une variable de condition, en spécifiant, optionnellement un délai d'attente maximal.

Liste de paramètres

condition

Un gestionnaire, retourné par un appel à la méthode Cond::create().

mutex

Un gestionnaire retourné par un appel à la méthode Mutex::create() et appartenant (verrouillé) par l'appelant.

timeout

Un délai d'attente, optionnel, en microsecondes.

Valeurs de retour

Un booléen indiquant le succès de l'opération.

Exemples

Exemple #1 Attente des conditions

<?php
/** NOTEZ QUE CET EXEMPLE VA FREEZER LE PROCESSUS **/
$mutex = Mutex::create(true);
/** Vous ne pouvez pas utiliser le mot clé "new", une Cond n'est pas un objet PHP **/
$cond = Cond::create();
/** L'appelant doit verrouiller le Mutex associé avant un appel à diffuser **/
var_dump(Cond::wait($cond, $mutex));
/** Toujours détruire une Cond que vous avez créé **/
Cond::destroy($cond);
Mutex::unlock($mutex);
Mutex::destroy($mutex);
?>

L'exemple ci-dessus va afficher :

int(49685473)


Sémaphore

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Sémaphore
    • ftok — Convertit un chemin et un identifiant de projet en une clé System V IPC
    • msg_get_queue — Crée ou s'attache à une file de messages
    • msg_queue_exists — Vérifie si une file de messages existe
    • msg_receive — Reçoit un message depuis une file de messages
    • msg_remove_queue — Détruit une file de messages
    • msg_send — Envoie un message dans une file
    • msg_set_queue — Modifie des informations dans la file de messages
    • msg_stat_queue — Retourne des informations sur la file de messages
    • sem_acquire — Réserve un sémaphore
    • sem_get — Retourne un identifiant de sémaphore
    • sem_release — Libère un sémaphore
    • sem_remove — Détruit un sémaphore
    • shm_attach — Crée ou ouvre un segment de mémoire partagée
    • shm_detach — Libère un segment de mémoire partagée
    • shm_get_var — Lit une variable dans la mémoire partagée
    • shm_has_var — Vérifie si une variable existe en mémoire partagée
    • shm_put_var — Insère ou modifie une variable de la mémoire partagée
    • shm_remove_var — Efface une variable de la mémoire partagée
    • shm_remove — Supprime un segment de mémoire partagée sous Unix


Introduction

Ce module fournit une interface pour les fonctions de type System V IPC. Cela inclut les sémaphores, la mémoire partagée et le système de communication inter-processus (IPC).

Les sémaphores peuvent être utilisés pour fournir un accès exclusif à certaines ressources de la machine, ou pour limiter le nombre de processus qui utilisent en même temps une ressource.

Ce module fournit aussi un système de mémoire partagée, qui utilise la mémoire partagée System V. Cette mémoire partagée permet d'accéder à des variables globales. Les différents démons httpd et même d'autres programmes (tels que Perl, C...) permettent un tel échange de données globales. N'oubliez pas que la mémoire partagée n'est pas protégée contre l'accès simultané. Il vous faudra utiliser les sémaphores pour assurer la synchronisation.

Limites de la mémoire partagée sous Unix OS
SHMMAX | Taille maximale de mémoire partagée, par défaut, 131072 octets.
SHMMIN | Taille minimale de mémoire partagée, par défaut, 1 octet.
SHMMNI | Nombre maximal de segments de mémoire partagée, par défaut 100.
SHMSEG | Taille maximale de mémoire partagée par processus, par défaut 6.

Ces fonctions permettent d'envoyer et de recevoir des messages de/vers d'autres processus. Elles offrent une interface simple et efficace pour échanger des données entre processus, sans avoir besoin d'utiliser un autre socket UNIX.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.


Installation

Le support de ces fonctions n'est pas activé par défaut. Pour activer le support des sémaphores System V, compilez PHP avec l'option --enable-sysvsem . Pour activer le support de la mémoire partagée System V, compilez PHP avec l'option --enable-sysvshm . Pour activer le support des messages System V, compilez PHP avec l'option --enable-sysvmsg .


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour les sémaphores
Nom | Défaut | Modifiable | Historique
sysvshm.init_mem | 10000 | PHP_INI_SYSTEM |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

sysvshm.init_mem int

La taille par défaut du segment de mémoire partagée.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes des messages System V
Constante | Type | Changelog
MSG_IPC_NOWAIT | entier |
MSG_EAGAIN | entier | Depuis 5.2.0
MSG_ENOMSG | entier | Depuis 5.2.0
MSG_NOERROR | entier |
MSG_EXCEPT | entier |


Fonctions Sémaphore

Sommaire

  • ftok — Convertit un chemin et un identifiant de projet en une clé System V IPC
  • msg_get_queue — Crée ou s'attache à une file de messages
  • msg_queue_exists — Vérifie si une file de messages existe
  • msg_receive — Reçoit un message depuis une file de messages
  • msg_remove_queue — Détruit une file de messages
  • msg_send — Envoie un message dans une file
  • msg_set_queue — Modifie des informations dans la file de messages
  • msg_stat_queue — Retourne des informations sur la file de messages
  • sem_acquire — Réserve un sémaphore
  • sem_get — Retourne un identifiant de sémaphore
  • sem_release — Libère un sémaphore
  • sem_remove — Détruit un sémaphore
  • shm_attach — Crée ou ouvre un segment de mémoire partagée
  • shm_detach — Libère un segment de mémoire partagée
  • shm_get_var — Lit une variable dans la mémoire partagée
  • shm_has_var — Vérifie si une variable existe en mémoire partagée
  • shm_put_var — Insère ou modifie une variable de la mémoire partagée
  • shm_remove_var — Efface une variable de la mémoire partagée
  • shm_remove — Supprime un segment de mémoire partagée sous Unix


Convertit un chemin et un identifiant de projet en une clé System V IPC

  • « Fonctions Sémaphore
  • msg_get_queue »
  • PHP Manual
  • Fonctions Sémaphore
  • Convertit un chemin et un identifiant de projet en une clé System V IPC

ftok

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ftok — Convertit un chemin et un identifiant de projet en une clé System V IPC

Description

int ftok ( string $pathname , string $proj )

Convertit le paramètre pathname d'un fichier existant, et de l'identifiant de projet proj, en un entier integer à utiliser avec la fonction shmop_open() et d'autres fonctions System V IPC.

Liste de paramètres

pathname

Chemin vers un fichier accessible.

proj

Identifiant du projet. Doit être un seul caractère.

Valeurs de retour

En cas de succès, la valeur retournée sera la valeur de la clé créée, sinon, -1 sera retourné.

Voir aussi

  • shmop_open() - Crée ou ouvre un bloc de mémoire partagée
  • sem_get() - Retourne un identifiant de sémaphore


Crée ou s'attache à une file de messages

  • « ftok
  • msg_queue_exists »
  • PHP Manual
  • Fonctions Sémaphore
  • Crée ou s'attache à une file de messages

msg_get_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_get_queue — Crée ou s'attache à une file de messages

Description

resource msg_get_queue ( int $key [, int $perms = 0666 ] )

msg_get_queue() retourne une ressource qui peut être utilisée avec les files de messages System V et la clé key. Le premier appel à la fonction va créer la file de messages, avec les droits optionnels de perms. Un second appel à msg_get_queue() avec la même clé key retournera une autre ressource de file de messages, mais les deux identifiants aboutissent à la même file de messages.

Liste de paramètres

key

Identifiant numérique du message dans la file

perms

Permission dans la file. Par défaut, vaut 0666. Si la file de messages existe déjà, le paramètre perms sera ignoré.

Valeurs de retour

Retourne une ressource qui peut être utilisée pour accéder à la file de messages System V.

Voir aussi

  • msg_remove_queue() - Détruit une file de messages
  • msg_receive() - Reçoit un message depuis une file de messages
  • msg_send() - Envoie un message dans une file
  • msg_stat_queue() - Retourne des informations sur la file de messages
  • msg_set_queue() - Modifie des informations dans la file de messages


Vérifie si une file de messages existe

  • « msg_get_queue
  • msg_receive »
  • PHP Manual
  • Fonctions Sémaphore
  • Vérifie si une file de messages existe

msg_queue_exists

(PHP 5 >= 5.3.0, PHP 7)

msg_queue_exists — Vérifie si une file de messages existe

Description

bool msg_queue_exists ( int $key )

Vérifie si la file de messages représenté par la clé key existe.

Liste de paramètres

key

La clé de la file.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • msg_remove_queue() - Détruit une file de messages
  • msg_receive() - Reçoit un message depuis une file de messages
  • msg_stat_queue() - Retourne des informations sur la file de messages


Reçoit un message depuis une file de messages

  • « msg_queue_exists
  • msg_remove_queue »
  • PHP Manual
  • Fonctions Sémaphore
  • Reçoit un message depuis une file de messages

msg_receive

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_receive — Reçoit un message depuis une file de messages

Description

bool msg_receive ( resource $queue , int $desiredmsgtype , int &$msgtype , int $maxsize , mixed &$message [, bool $unserialize = true [, int $flags = 0 [, int &$errorcode ]]] )

msg_receive() reçoit le premier message de la file queue, le type est spécifié par desiredmsgtype.

Liste de paramètres

queue

desiredmsgtype

Si desiredmsgtype vaut 0, le premier message de la file est retourné. Si desiredmsgtype vaut plus que 0, alors le premier message de ce type sera retourné. Si desiredmsgtype vaut moins que 0, le premier message de la file ayant un type inférieur ou égal à la valeur absolue de desiredmsgtype sera retourné. Si aucun message ne correspond aux critères, votre script attendra la venue d'un tel message dans la file. Vous pouvez éviter ce blocage en précisant l'option MSG_IPC_NOWAIT dans le paramètre flags.

msgtype

Le type de message qui a été reçu sera stocké dans ce paramètre.

maxsize

La taille maximale de message est fixée par maxsize ; si le message de la file est plus grand que cette taille, la fonction échouera (à moins que vous n'utilisiez une option flags, décrite ci-dessous).

message

Le message reçu sera stocké dans le paramètre message, à moins qu'il n'y ait eu des erreurs de réception du message.

unserialize

Quand c'est le cas, le message est traité comme s'il avait été linéarisé avec le même mécanisme que le module de session. Le message sera alors délinéarisé, puis retourné au script. Cela vous permettra de recevoir facilement des tableaux ou des objets complexes dans votre script, émis par d'autres scripts PHP, ou, si vous utilisez WDDX, depuis n'importe quelle source compatible WDDX.

Si unserialize vaut FALSE, le message sera retourné intact, et sans modifier les valeurs binaires.

flags

Le paramètre flags permet de passer des options pour configurer les appels msgrcv. Par défaut, il vaut 0, mais vous pouvez spécifier une ou plusieurs options en les combinant avec l'opérateur OR).

Options de la fonction msg_receive()
MSG_IPC_NOWAIT | S'il n'y a pas de message du type desiredmsgtype, retourne immédiatement et n'attend pas. La fonction échouera et retournera un entier correspondant à MSG_ENOMSG.
MSG_EXCEPT | En utilisant cette option en combinaison avec un type desiredmsgtype supérieur à 0, la fonction va lire le premier message qui n'est pas du type demandé par desiredmsgtype.
MSG_NOERROR | Si le message est plus grand que maxsize, cette option va tronquer le message à la taille de maxsize et ne signalera pas d'erreur.

errorcode

Si la fonction échoue, le paramètre optionnel errorcode sera défini à la valeur de la variable système errno.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Lors de la réception réussie d'un message, la file est mise à jour comme ceci : msg_lrpid prend la valeur de l'identifiant de processus du processus appelant, msg_qnum est décrémenté de 1 et msg_rtime prend la date et l'heure courante.

Voir aussi

  • msg_remove_queue() - Détruit une file de messages
  • msg_send() - Envoie un message dans une file
  • msg_stat_queue() - Retourne des informations sur la file de messages
  • msg_set_queue() - Modifie des informations dans la file de messages


Détruit une file de messages

  • « msg_receive
  • msg_send »
  • PHP Manual
  • Fonctions Sémaphore
  • Détruit une file de messages

msg_remove_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_remove_queue — Détruit une file de messages

Description

bool msg_remove_queue ( resource $queue )

msg_remove_queue() détruit la file de messages identifiée par queue. Utiliser uniquement cette fonction lorsque tous les processus ont fini de travailler dans la file de messages, et que vous voulez libérer les ressources.

Liste de paramètres

queue

Une ressource, représentant la file des messages

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • msg_get_queue() - Crée ou s'attache à une file de messages
  • msg_receive() - Reçoit un message depuis une file de messages
  • msg_stat_queue() - Retourne des informations sur la file de messages
  • msg_set_queue() - Modifie des informations dans la file de messages


Envoie un message dans une file

  • « msg_remove_queue
  • msg_set_queue »
  • PHP Manual
  • Fonctions Sémaphore
  • Envoie un message dans une file

msg_send

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_send — Envoie un message dans une file

Description

bool msg_send ( resource $queue , int $msgtype , mixed $message [, bool $serialize = true [, bool $blocking = true [, int &$errorcode ]]] )

msg_send() envoie le message message de type msgtype (qui DOIT être plus grand que 0) à la file de messages identifiée par queue.

Liste de paramètres

queue

msgtype

message

serialize

Le paramètre optionnel serialize contrôle la méthode d'envoi du message message. serialize vaut par défaut TRUE ce qui signifie que le message message sera linéarisé en utilisant le même mécanisme que celui qui est utilisé par les sessions, avant d'être envoyé à la file de message. Cela permet d'envoyer des tableaux et des objets complexes à d'autres scripts PHP, ou bien, si vous utilisez l'extension WDDX, d'échanger des messages avec des clients compatibles WDDX.

blocking

Si le message est trop grand pour être stocké par la file, votre script attendra jusqu'à ce qu'un autre processus lise dans la file un message, et libère assez de place pour votre message. C'est le mode bloquant : vous pouvez éviter ce mode en utilisant le paramètre blocking avec la valeur FALSE : dans ce cas, msg_send() retournera immédiatement FALSE si le message est trop gros pour la file. Il assignera alors au paramètre errorcode la valeur de MSG_EAGAIN, indiquant que vous devriez essayer d'envoyer à nouveau votre message, un peu plus tard.

errorcode

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Lors de l'émission réussie d'un message, la file est mise à jour comme ceci : msg_lrpid prend la valeur de l'identifiant de processus du processus appelant, msg_qnum est décrémenté de 1 et msg_rtime prend la date et l'heure courante.

Voir aussi

  • msg_remove_queue() - Détruit une file de messages
  • msg_receive() - Reçoit un message depuis une file de messages
  • msg_stat_queue() - Retourne des informations sur la file de messages
  • msg_set_queue() - Modifie des informations dans la file de messages


Modifie des informations dans la file de messages

  • « msg_send
  • msg_stat_queue »
  • PHP Manual
  • Fonctions Sémaphore
  • Modifie des informations dans la file de messages

msg_set_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_set_queue — Modifie des informations dans la file de messages

Description

bool msg_set_queue ( resource $queue , array $data )

msg_set_queue() vous permet de modifier certaines valeurs comme msg_perm.uid, msg_perm.gid, msg_perm.mode et msg_qbytes, qui sont des champs de la structure qui héberge la file de message.

Modifier la structure de données requiert que PHP fonctionne avec le même utilisateur que celui qui a créé la file, qui possède la file (comme déterminé par les champs msg_perm.xxx), ou qu'il fonctionne avec les droits de super-utilisateur. Les droits de super-utilisateur sont nécessaires pour affecter à msg_qbytes des valeurs supérieures aux limites du système.

Liste de paramètres

queue

Une ressource, représentant la file des messages

data

Vous devez spécifier les valeurs désirées en définissant la valeur des clés que vous voulez récupérer dans le tableau data.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • msg_remove_queue() - Détruit une file de messages
  • msg_receive() - Reçoit un message depuis une file de messages
  • msg_stat_queue() - Retourne des informations sur la file de messages
  • msg_get_queue() - Crée ou s'attache à une file de messages


Retourne des informations sur la file de messages

  • « msg_set_queue
  • sem_acquire »
  • PHP Manual
  • Fonctions Sémaphore
  • Retourne des informations sur la file de messages

msg_stat_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_stat_queue — Retourne des informations sur la file de messages

Description

array msg_stat_queue ( resource $queue )

msg_stat_queue() retourne des informations sur la file de messages identifiée par queue. C'est une fonction pratique pour connaître le processus qui a émis le message qui vient d'être reçu.

Liste de paramètres

queue

Une ressource, représentant la file des messages

Valeurs de retour

La valeur retournée par la fonction est un tableau dont les index et valeurs sont les suivants :

Structure de réponse de msg_stat_queue()
msg_perm.uid | L'uid du propriétaire de la file.
msg_perm.gid | Le gid du propriétaire de la file.
msg_perm.mode | Le mode d'accès à la file.
msg_stime | L'heure du dernier message envoyé à la file.
msg_rtime | L'heure du dernier message émis par la file.
msg_ctime | L'heure de modification de la file.
msg_qnum | Le nombre de messages en attente dans la file.
msg_qbytes | Le nombre d'octets maximum autorisé dans un message de la file d'attente. Sous Linux, cette valeur peut être lue et modifiée via le fichier /proc/sys/kernel/msgmnb.
msg_lspid | Le pid du processus qui a envoyé le dernier message à la file.
msg_lrpid | Le pid du processus qui a reçu le dernier message de la file.

Voir aussi

  • msg_remove_queue() - Détruit une file de messages
  • msg_receive() - Reçoit un message depuis une file de messages
  • msg_get_queue() - Crée ou s'attache à une file de messages
  • msg_set_queue() - Modifie des informations dans la file de messages


Réserve un sémaphore

  • « msg_stat_queue
  • sem_get »
  • PHP Manual
  • Fonctions Sémaphore
  • Réserve un sémaphore

sem_acquire

(PHP 4, PHP 5, PHP 7)

sem_acquire — Réserve un sémaphore

Description

bool sem_acquire ( resource $sem_identifier )

sem_acquire() se bloque (si nécessaire) jusqu'à ce que le sémaphore puisse être réservé. Un processus qui tente de réserver un sémaphore qu'il a déjà réservé restera en attente indéfinie, si cette acquisition excède le nombre max_acquire de réservations simultanées.

À la fin d'un script, tous les sémaphores réservés mais non explicitement libérés, seront libérés automatiquement, et une alerte sera générée.

Liste de paramètres

sem_identifier

sem_identifier est une ressource de sémaphore, obtenue de la fonction sem_get().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • sem_get() - Retourne un identifiant de sémaphore
  • sem_release() - Libère un sémaphore


Retourne un identifiant de sémaphore

  • « sem_acquire
  • sem_release »
  • PHP Manual
  • Fonctions Sémaphore
  • Retourne un identifiant de sémaphore

sem_get

(PHP 4, PHP 5, PHP 7)

sem_get — Retourne un identifiant de sémaphore

Description

resource sem_get ( int $key [, int $max_acquire = 1 [, int $perm = 0666 [, int $auto_release = 1 ]]] )

sem_get() retourne un identifiant qui pourra être utilisé pour accéder à un sémaphore System V.

Un deuxième appel à sem_get() avec la même clé retournera un identifiant différent, mais les deux identifiants permettront d'accéder au même sémaphore.

Liste de paramètres

key

max_acquire

Le nombre de processus qui peuvent réserver simultanément le sémaphore est précisé dans le paramètre max_acquire.

perm

Les permissions du sémaphore. Actuellement, cette valeur n'est affectée que si le processus est le seul processus actuellement attaché au sémaphore.

auto_release

Le paramètre optionnel auto_release spécifie si le sémaphore doit être automatiquement libéré à la fermeture.

Valeurs de retour

Retourne une ressource de sémaphore en cas de succès, et FALSE en cas d'erreur.

Notes

Avertissement

Lorsque vous utilisez la fonction sem_get() pour accéder à un sémaphore créé en dehors de PHP, veuillez noter que le sémaphore doit avoir été créé comme un jeu de 3 sémaphores (par exemple, en spécifiant 3 comme paramètre nsems lors de l'appel à la fonction C semget()), sinon, PHP ne sera pas capable d'accéder à ce sémaphore.

Voir aussi

  • sem_acquire() - Réserve un sémaphore
  • sem_release() - Libère un sémaphore
  • ftok() - Convertit un chemin et un identifiant de projet en une clé System V IPC


Libère un sémaphore

  • « sem_get
  • sem_remove »
  • PHP Manual
  • Fonctions Sémaphore
  • Libère un sémaphore

sem_release

(PHP 4, PHP 5, PHP 7)

sem_release — Libère un sémaphore

Description

bool sem_release ( resource $sem_identifier )

sem_release() libère le sémaphore sem_identifier, s'il a été réservé par le processus courant, sinon génère une erreur.

Après libération du sémaphore, sem_acquire() peut être appelé pour le réserver à nouveau.

Liste de paramètres

sem_identifier

Une ressource, représentant un sémaphore, telle que retournée par la fonction sem_get().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • sem_get() - Retourne un identifiant de sémaphore
  • sem_acquire() - Réserve un sémaphore


Détruit un sémaphore

  • « sem_release
  • shm_attach »
  • PHP Manual
  • Fonctions Sémaphore
  • Détruit un sémaphore

sem_remove

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

sem_remove — Détruit un sémaphore

Description

bool sem_remove ( resource $sem_identifier )

sem_remove() supprime le sémaphore donné.

Après suppression du sémaphore, il n'est plus utilisable.

Liste de paramètres

sem_identifier

Une ressource représentant un sémaphore, telle que retournée par la fonction sem_get().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • sem_get() - Retourne un identifiant de sémaphore
  • sem_release() - Libère un sémaphore
  • sem_acquire() - Réserve un sémaphore


Crée ou ouvre un segment de mémoire partagée

  • « sem_remove
  • shm_detach »
  • PHP Manual
  • Fonctions Sémaphore
  • Crée ou ouvre un segment de mémoire partagée

shm_attach

(PHP 4, PHP 5, PHP 7)

shm_attach — Crée ou ouvre un segment de mémoire partagée

Description

resource shm_attach ( int $key [, int $memsize [, int $perm = 0666 ]] )

shm_attach() retourne un identifiant qui permettra d'accéder à la mémoire partagée de type System V. Au premier appel, la mémoire sera créée, avec la taille memsize et avec les permissions perm

Aux appels suivants avec la même clé key, shm_attach() retournera un nouvel identifiant, mais cet identifiant accédera toujours à la même portion de mémoire partagée. Dans ce cas, memsize et perm seront ignorés.

Liste de paramètres

key

Un identifiant numérique de la mémoire partagée

memsize

La taille mémoire. S'il n'est pas fourni, vaut par défaut la valeur de sysvshm.init_mem du fichier php.ini, sinon 10000 octets.

perm

Les permissions (optionnelles). Par défaut, vaut 0666.

Valeurs de retour

Retourne un identifiant de mémoire partagée.

Historique

Version | Description
5.3.0 | La fonction retourne une ressource à la place d'un entier.

Notes

Note:

Puisque cette fonction retourne un entier avant PHP 5.3.0, pour assurer la portabilité, le retour de la fonction peut être casté en entier:

<?php
// Crée un fichier temporaire et retourne son chemin
$tmp = tempnam('/tmp', 'PHP');

// Récupère le jeton du fichier
$key = ftok($tmp, 'a');

// Attache la ressource SHM resource, notez le cast après
$id = shm_attach($key);

if($id === false) {
   die('Unable to create the shared memory segment');
}

// Cast vers l'entier, car depuis PHP 5.3.0 l'id de ressource
// est retourné et il peut être utilisé pour le cast en entier
$id = (integer) $id;
?>

Voir aussi

  • shm_detach() - Libère un segment de mémoire partagée
  • ftok() - Convertit un chemin et un identifiant de projet en une clé System V IPC


Libère un segment de mémoire partagée

  • « shm_attach
  • shm_get_var »
  • PHP Manual
  • Fonctions Sémaphore
  • Libère un segment de mémoire partagée

shm_detach

(PHP 4, PHP 5, PHP 7)

shm_detach — Libère un segment de mémoire partagée

Description

bool shm_detach ( resource $shm_identifier )

shm_detach() libère le segment de mémoire partagée identifié par shm_identifier et créé par shm_attach(). N'oubliez pas que cette mémoire partagée existe toujours sous Unix, et que les données sont toujours accessibles.

Liste de paramètres

shm_identifier

Une ressource représentant la mémoire partagée, telle que retournée par la fonction shm_attach()

Valeurs de retour

shm_detach() retourne toujours TRUE.

Voir aussi

  • shm_attach() - Crée ou ouvre un segment de mémoire partagée
  • shm_remove() - Supprime un segment de mémoire partagée sous Unix
  • shm_remove_var() - Efface une variable de la mémoire partagée


Lit une variable dans la mémoire partagée

  • « shm_detach
  • shm_has_var »
  • PHP Manual
  • Fonctions Sémaphore
  • Lit une variable dans la mémoire partagée

shm_get_var

(PHP 4, PHP 5, PHP 7)

shm_get_var — Lit une variable dans la mémoire partagée

Description

mixed shm_get_var ( resource $shm_identifier , int $variable_key )

shm_get_var() retourne la variable repérée par variable_key, dans le segment de mémoire partagée identifié par shm_identifier. La variable est toujours présente en mémoire partagée.

Liste de paramètres

shm_identifier

Segment de mémoire partagée, obtenu depuis la fonction shm_attach().

variable_key

La clé de la variable.

Valeurs de retour

Retourne la variable correspondant à la clé donnée.

Voir aussi

  • shm_has_var() - Vérifie si une variable existe en mémoire partagée
  • shm_put_var() - Insère ou modifie une variable de la mémoire partagée


Vérifie si une variable existe en mémoire partagée

  • « shm_get_var
  • shm_put_var »
  • PHP Manual
  • Fonctions Sémaphore
  • Vérifie si une variable existe en mémoire partagée

shm_has_var

(PHP 5 >= 5.3.0, PHP 7)

shm_has_var — Vérifie si une variable existe en mémoire partagée

Description

bool shm_has_var ( resource $shm_identifier , int $variable_key )

Vérifie si une variable existe en mémoire partagée.

Liste de paramètres

shm_identifier

Le segment de mémoire partagée, obtenu avec shm_attach().

variable_key

Le nom de la variable.

Valeurs de retour

Retourne TRUE si la variable existe, et FALSE sinon;

Voir aussi

  • shm_get_var() - Lit une variable dans la mémoire partagée
  • shm_put_var() - Insère ou modifie une variable de la mémoire partagée


Insère ou modifie une variable de la mémoire partagée

  • « shm_has_var
  • shm_remove_var »
  • PHP Manual
  • Fonctions Sémaphore
  • Insère ou modifie une variable de la mémoire partagée

shm_put_var

(PHP 4, PHP 5, PHP 7)

shm_put_var — Insère ou modifie une variable de la mémoire partagée

Description

bool shm_put_var ( resource $shm_identifier , int $variable_key , mixed $variable )

shm_put_var() insère ou modifie la variable variable avec la clé variable_key dans le segment de mémoire shm_identifier.

Des alertes (niveau E_WARNING) seront émises si shm_identifier n'est pas un segment de mémoire type System V valide, ou s'il n'y a pas assez de mémoire pour votre requête.

Liste de paramètres

shm_identifier

Une ressource, représentant la mémoire partagée, telle que retournée par la fonction shm_attach()

variable_key

La clé de la variable.

variable

La variable. Tous les types de variables supportés par la fonction serialize() peuvent être utilisés : cela signifie que tous les types, sauf les ressources et quelques objets internes, peuvent être linéarisés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • shm_get_var() - Lit une variable dans la mémoire partagée
  • shm_has_var() - Vérifie si une variable existe en mémoire partagée


Efface une variable de la mémoire partagée

  • « shm_put_var
  • shm_remove »
  • PHP Manual
  • Fonctions Sémaphore
  • Efface une variable de la mémoire partagée

shm_remove_var

(PHP 4, PHP 5, PHP 7)

shm_remove_var — Efface une variable de la mémoire partagée

Description

bool shm_remove_var ( resource $shm_identifier , int $variable_key )

Efface la variable variable_key de la mémoire partagée shm_identifier et libère la mémoire.

Liste de paramètres

shm_identifier

L'identifiant de la mémoire partagée, tel que retourné par la fonction shm_attach()

variable_key

La clé de la variable.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • shm_remove() - Supprime un segment de mémoire partagée sous Unix


Supprime un segment de mémoire partagée sous Unix

  • « shm_remove_var
  • Mémoire partagée »
  • PHP Manual
  • Fonctions Sémaphore
  • Supprime un segment de mémoire partagée sous Unix

shm_remove

(PHP 4, PHP 5, PHP 7)

shm_remove — Supprime un segment de mémoire partagée sous Unix

Description

bool shm_remove ( resource $shm_identifier )

shm_remove() supprime le segment de mémoire partagée shm_identifier. Toutes les données seront supprimées.

Liste de paramètres

shm_identifier

L'identifiant de mémoire partagée, tel que retourné par la fonction shm_attach()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • shm_remove_var() - Efface une variable de la mémoire partagée


Mémoire partagée

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
  • Fonctions sur la mémoire partagée
    • shmop_close — Ferme un bloc de mémoire partagée
    • shmop_delete — Détruit un bloc de mémoire partagée
    • shmop_open — Crée ou ouvre un bloc de mémoire partagée
    • shmop_read — Lit des données à partir d'un bloc
    • shmop_size — Lire la taille du bloc de mémoire partagée
    • shmop_write — Écrire dans un bloc de mémoire partagée


Introduction

Shmop est un ensemble de fonctions simples pour gérer la mémoire partagée avec PHP (lecture, écriture, création et suppression de segments de mémoire partagée UNIX).

Note: Les versions de Windows plus anciennes que Windows 2000 ne supportent pas la mémoire partagée.

Note: En PHP 4.0.3, ces fonctions étaient préfixées avec shm au lieu de shmop.


  • « Pré-requis
  • Configuration à l'exécution »
  • PHP Manual
  • Installation/Configuration
  • Installation

Installation

Pour utiliser les fonctions shmop, compilez PHP avec l'option --enable-shmop .


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • Mémoire partagée
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • Mémoire partagée
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Exemple #1 Introduction à la mémoire partagée

<?php

// Crée 100 octets de mémoire partagée avec un identifiant système "0xff3"
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if(!$shm_id) {
  echo "Impossible de créer la mémoire partagée\n";
}

// Lire la taille de la mémoire partagée
$shm_size = shmop_size($shm_id);
echo "Un bloc de SHM de taille " . $shm_size . " a été créé.\n";

// Ecriture d'une chaîne de test dans ce segment
$shm_bytes_written = shmop_write($shm_id, "Mon bloc de mémoire partagée", 0);
if ($shm_bytes_written != strlen("Mon bloc de mémoire partagée")) {
  echo "Impossible d'écrire toutes les données en mémoire\n";
}

// Lecture du segment
$my_string = shmop_read($shm_id, 0, $shm_size);
if(!$my_string) {
  echo "Impossible de lire toutes les données en mémoire\n";
}
echo "Les données mises en mémoire partagées sont : " . $my_string . "\n";

// Maintenant, effaçons le bloc, et fermons le segment de mémoire
if(!shmop_delete($shm_id)) {
  echo "Impossible d'effacer le segment de mémoire";
}
shmop_close($shm_id);

?>


Fonctions sur la mémoire partagée

Sommaire

  • shmop_close — Ferme un bloc de mémoire partagée
  • shmop_delete — Détruit un bloc de mémoire partagée
  • shmop_open — Crée ou ouvre un bloc de mémoire partagée
  • shmop_read — Lit des données à partir d'un bloc
  • shmop_size — Lire la taille du bloc de mémoire partagée
  • shmop_write — Écrire dans un bloc de mémoire partagée


Ferme un bloc de mémoire partagée

  • « Fonctions sur la mémoire partagée
  • shmop_delete »
  • PHP Manual
  • Fonctions sur la mémoire partagée
  • Ferme un bloc de mémoire partagée

shmop_close

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_close — Ferme un bloc de mémoire partagée

Description

void shmop_close ( int $shmid )

shmop_close() sert à fermer un bloc de mémoire partagée.

Liste de paramètres

shmid

Identifiant de mémoire partagée créé par shmop_open().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Fermeture d'un bloc de mémoire partagée

<?php
shmop_close($shm_id);
?>

Cet exemple ferme le bloc de mémoire partagée identifié par $shm_id.

Voir aussi

  • shmop_open() - Crée ou ouvre un bloc de mémoire partagée


Détruit un bloc de mémoire partagée

  • « shmop_close
  • shmop_open »
  • PHP Manual
  • Fonctions sur la mémoire partagée
  • Détruit un bloc de mémoire partagée

shmop_delete

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_delete — Détruit un bloc de mémoire partagée

Description

bool shmop_delete ( int $shmid )

shmop_delete() sert à détruire un bloc de mémoire partagée.

Liste de paramètres

shmid

Identifiant de mémoire partagée créé par shmop_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Effacement d'un bloc de mémoire partagée

<?php
shmop_delete($shm_id);
?>

Ce exemple efface le bloc de mémoire partagée identifié par $shm_id.


Crée ou ouvre un bloc de mémoire partagée

  • « shmop_delete
  • shmop_read »
  • PHP Manual
  • Fonctions sur la mémoire partagée
  • Crée ou ouvre un bloc de mémoire partagée

shmop_open

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_open — Crée ou ouvre un bloc de mémoire partagée

Description

int shmop_open ( int $key , string $flags , int $mode , int $size )

shmop_open() peut créer ou ouvrir un bloc de mémoire partagée.

Liste de paramètres

key

Identifiant système pour le bloc de mémoire partagé. Ce paramètre peut être passé comme un décimal ou un hexadécimal.

flags

Vous pouvez utiliser :

  • "a" pour accès (utilise SHM_RDONLY pour shmat) utilisez cette option pour ouvrir un bloc déjà existant en lecture seule.
  • "c" pour création (utilise IPC_CREATE) utilisez cette option pour créer un nouveau bloc, ou, si un segment avec le même identifiant existe, essayer d'y accéder en lecture et écriture.
  • "w" pour accès en lecture et écriture. Utilisez cette option lorsque vous devez accéder en lecture et écriture à un segment de mémoire partagée. C'est le cas le plus courant.
  • "n" crée un nouveau segment de mémoire partagée (utilise IPC_CREATE|IPC_EXCL). Utilisez cette option lorsque vous voulez créer un nouveau segment de mémoire partagée sauf s'il en existe déjà un corrompu avec la même option. Ceci est très pratique pour des raisons de sécurité, pour éviter des trous de sécurité qui exploiteraient la course aux ressources.

mode

Les permissions que vous donnez à ce bloc. Ce sont les mêmes que pour les fichiers. Ces permissions doivent être passées sous forme d'octal (i.e. 0644).

size

La taille du bloc mémoire partagé que vous voulez créer, en octets

Note:

Note : Les troisième et quatrième paramètres doivent être passés à 0 si vous voulez ouvrir un bloc de mémoire partagée déjà existant.

Valeurs de retour

En cas de succès, shmop_open() retourne un identifiant que vous pouvez utiliser pour accéder à la mémoire que vous venez de créer. FALSE sera retourné si une erreur survient.

Exemples

Exemple #1 Créer un nouveau bloc de mémoire partagée Shmop

<?php
$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>

Cet exemple ouvre un nouveau bloc de mémoire partagée, dont l'identifiant est retourné par ftok().

Voir aussi

  • shmop_close() - Ferme un bloc de mémoire partagée
  • shmop_delete() - Détruit un bloc de mémoire partagée


Lit des données à partir d'un bloc

  • « shmop_open
  • shmop_size »
  • PHP Manual
  • Fonctions sur la mémoire partagée
  • Lit des données à partir d'un bloc

shmop_read

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_read — Lit des données à partir d'un bloc

Description

string shmop_read ( int $shmid , int $start , int $count )

shmop_read() lit une chaîne dans un bloc de mémoire partagée.

Liste de paramètres

shmid

L'identifiant du bloc mémoire partagé, créé par la fonction shmop_open()

start

Position depuis laquelle on doit commencer à lire

count

Le nombre d'octets à lire

Valeurs de retour

Retourne les données ou FALSE si une erreur survient.

Exemples

Exemple #1 Lit un bloc de mémoire partagée

<?php
$shm_data = shmop_read($shm_id, 0, 50);
?>

Cet exemple lit 50 octets dans le bloc de mémoire partagée et les place dans $shm_data.

Voir aussi

  • shmop_write() - Écrire dans un bloc de mémoire partagée


Lire la taille du bloc de mémoire partagée

  • « shmop_read
  • shmop_write »
  • PHP Manual
  • Fonctions sur la mémoire partagée
  • Lire la taille du bloc de mémoire partagée

shmop_size

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_size — Lire la taille du bloc de mémoire partagée

Description

int shmop_size ( int $shmid )

shmop_size() sert à connaître la taille en octets d'un bloc de mémoire partagée.

Liste de paramètres

shmid

L'identifiant du bloc mémoire partagé créé par la fonction shmop_open()

Valeurs de retour

Retourne un entier, qui représente le nombre d'octets qu'occupe la mémoire partagée.

Exemples

Exemple #1 Lit la taille d'un bloc de mémoire partagée

<?php
$shm_size = shmop_size($shm_id);
?>

Cet exemple lit la taille du bloc identifié par $shm_id, et la place dans $shm_size.


Écrire dans un bloc de mémoire partagée

  • « shmop_size
  • Sync »
  • PHP Manual
  • Fonctions sur la mémoire partagée
  • Écrire dans un bloc de mémoire partagée

shmop_write

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_write — Écrire dans un bloc de mémoire partagée

Description

int shmop_write ( int $shmid , string $data , int $offset )

shmop_write() écrit une chaîne dans un bloc de mémoire partagée.

Liste de paramètres

shmid

L'identifiant du bloc mémoire partagé, créé par la fonction shmop_open()

data

Une chaîne à écrire dans le bloc de la mémoire partagée

offset

Spécifie la position à partir de laquelle les données doivent être écrites dans la mémoire partagée.

Valeurs de retour

La taille des données écrites, ou FALSE si une erreur survient.

Exemples

Exemple #1 Écrit un bloc de mémoire partagée

<?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?>

Cet exemple écrit les données de la chaîne $my_string dans un bloc de mémoire partagée. $shm_bytes_written représentera le nombre d'octets écrits.

Voir aussi

  • shmop_read() - Lit des données à partir d'un bloc


Sync

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • SyncMutex — La classe SyncMutex
    • SyncMutex::__construct — Construit un nouvel objet SyncMutex
    • SyncMutex::lock — Obtient un verrou exclusif
    • SyncMutex::unlock — Déverouille le mutex
  • SyncSemaphore — La classe SyncSemaphore
    • SyncSemaphore::__construct — Construit un nouvel objet SyncSemaphore
    • SyncSemaphore::lock — Décrémente le compteur de l'objet SyncSemaphore ou attend
    • SyncSemaphore::unlock — Incrémente le compteur de l'objet SyncSemaphore
  • SyncEvent — La classe SyncEvent
    • SyncEvent::__construct — Construit un nouvel objet SyncEvent
    • SyncEvent::fire — Lance/défini l'événement
    • SyncEvent::reset — Réinitialise manuellement un événement
    • SyncEvent::wait — Attend que l'objet SyncEvent ne soit lancé
  • SyncReaderWriter — La classe SyncReaderWriter
    • SyncReaderWriter::__construct — Construit un nouvel objet SyncReaderWriter
    • SyncReaderWriter::readlock — Obtiens un verrou de lecture
    • SyncReaderWriter::readunlock — Libère un verrou de lecture
    • SyncReaderWriter::writelock — Obtiens un verrou d'écriture exclusif
    • SyncReaderWriter::writeunlock — Libère un verrou d'écriture


Introduction

L'extension 'sync' introduit la synchronisation d'objets cross-plateforme en PHP. Les Mutex nommés ou non, les sémaphores, les événements, et les objets de lecture-écriture profiteront d'une synchronisation au niveau de l'OS autant sur les systèmes POSIX (i.e. Linux) et sur les systèmes Windows.

Un nettoyage automatique des objets ayant obtenus une synchronisation a lieu lors du démontage de l'extension. Cela signifie que si PHP termine prématurément un script (i.e. le script dépasse sa durée maximale d'exécution), les objets ne seront pas laissés dans un état inconnu. La seule exception à ce mécanisme est si PHP lui même crash (i.e. un dépassement de buffer interne).

La synchronisation des objets non nommés n'a pas d'utilité en dehors d'un scénario multithreadé. Les objets non nommés sont plus utiles en conjonction de l'extension PECL pthreads.

Note:

Les objets nommés requiert une attention supplémentaire pour être utilisés sur tous les systèmes. Si un objet est instancié avec un jeu spécifique de paramètres, il doit toujours être instancié avec ces pramètres ou l'objet se terminera probablement dans un statut non consistent jusqu'au prochain redémarrage ou jusqu'à ce qu'un administrateur ne les nettoie.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Un système avec le support POSIX des sémaphores (sem_open()) ou fonctionnant sous Windows.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/sync.


  • « Types de ressources
  • SyncMutex »
  • PHP Manual
  • Sync
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


La classe SyncMutex

(PECL sync >= 1.0.0)

Introduction

Une implémentation cross-plateforme, native des objets Mutex nommés ou non.

Un Mutex est un objet d'exclusion mutuel qui restreint l'accès à une ressource partagée (i.e. un fichier) à une seule instance. Les Mutex comptables acquière le mutex une seule fois et, en interne, traque le nombre de fois que le mutex est verrouillé. Le Mutex est déverouillé dès qu'il sort du scope ou s'il est déverrouillé le même nombre de fois qu'il n'a été verrouillé.

Synopsis de la classe

SyncMutex {
/* Méthodes */
public __construct ([ string $name ] )
public bool lock ([ integer $wait ] )
public bool unlock ([ bool $all ] )
}

Sommaire

  • SyncMutex::__construct — Construit un nouvel objet SyncMutex
  • SyncMutex::lock — Obtient un verrou exclusif
  • SyncMutex::unlock — Déverouille le mutex


Construit un nouvel objet SyncMutex

  • « SyncMutex
  • SyncMutex::lock »
  • PHP Manual
  • SyncMutex
  • Construit un nouvel objet SyncMutex

SyncMutex::__construct

(PECL sync >= 1.0.0)

SyncMutex::__construct — Construit un nouvel objet SyncMutex

Description

public SyncMutex::__construct ([ string $name ] )

Construit un objet comptable nommé ou non.

Liste de paramètres

name

Le nom du mutex s'il s'agit d'un objet mutex nommé.

Note:

Si le nom existe déjà, il doit être capable d'être ouvert par l'utilisateur courant exécutant le processus, ou bien une exception sera lancée avec le message d'erreur correspondant.

Valeurs de retour

Le nouvel objet SyncMutex. Une exception est lancée si le mutex ne peut être créé ou ouvert.

Exemples

Exemple #1 Exemple avec SyncMutex::__construct() et un mutex nommé avec un délai d'attente maximal pour le verrou

<?php
$mutex = new SyncMutex("UniqueName");

if (!$mutex->lock(3000))
{
    echo "Impossible de verrouiller le mutex.";

    exit();
}

/* ... */

$mutex->unlock();
?>

Exemple #2 Exemple avec SyncMutex::__construct() et un mutex non nommé

<?php
$mutex = new SyncMutex();

$mutex->lock();

/* ... */

$mutex->unlock();
?>

Voir aussi

  • SyncMutex::lock() - Obtient un verrou exclusif
  • SyncMutex::unlock() - Déverouille le mutex


Obtient un verrou exclusif

  • « SyncMutex::__construct
  • SyncMutex::unlock »
  • PHP Manual
  • SyncMutex
  • Obtient un verrou exclusif

SyncMutex::lock

(PECL sync >= 1.0.0)

SyncMutex::lock — Obtient un verrou exclusif

Description

public bool SyncMutex::lock ([ integer $wait ] )

Obtient un verrou exclusif sur un objet SyncMutex. Si le verrou est déjà acquis, alors cette méthode va incrémenter le compteur interne.

Liste de paramètres

wait

Le nombre de millisecondes à attendre pour l'obtention du verrou exclusif. Une valeur -1 signifie que l'on attend indéfiniement.

Valeurs de retour

Un booléen ayant comme valeur TRUE si le verrou est obtenu, FALSE sinon.

Exemples

Exemple #1 Exemple avec SyncMutex::lock()

<?php
$mutex = new SyncMutex("UniqueName");

if (!$mutex->lock(3000))
{
    echo "Impossible de verrouiller le mutex.";

    exit();
}

/* ... */

$mutex->unlock();
?>

Voir aussi

  • SyncMutex::unlock() - Déverouille le mutex


Déverouille le mutex

  • « SyncMutex::lock
  • SyncSemaphore »
  • PHP Manual
  • SyncMutex
  • Déverouille le mutex

SyncMutex::unlock

(PECL sync >= 1.0.0)

SyncMutex::unlock — Déverouille le mutex

Description

public bool SyncMutex::unlock ([ bool $all ] )

Décrémente le compteur interne d'un objet SyncMutex. Lorsque le compteur interne atteint zéro, le verrou actuel de l'objet est libéré.

Liste de paramètres

all

Spécifie si l'on doit ou non définir le compteur interne à zéro et donc, libérer le verrou.

Valeurs de retour

Un booléen valant TRUE si l'opération de déverrouillage est un succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec SyncMutex::unlock()

<?php
$mutex = new SyncMutex("UniqueName");

$mutex->lock();

/* ... */

$mutex->unlock();
?>

Voir aussi

  • SyncMutex::lock() - Obtient un verrou exclusif


La classe SyncSemaphore

(PECL sync >= 1.0.0)

Introduction

Une implémentation cross-plateforme, native des objets Sémaphore nommés ou non.

Un sémaphore réstreint l'accès à une ressource limitée à un nombre limité d'instances. Les sémaphores diffèrent des mutexes dans le sens où il permet à plus d'une instance à accéder à une ressource en même temps, alors que le mutex ne permet qu'une seule instance à la fois.

Synopsis de la classe

SyncSemaphore {
/* Méthodes */
public __construct ([ string $name [, integer $initialval [, bool $autounlock ]]] )
public bool lock ([ integer $wait ] )
public bool unlock ([ integer &$prevcount ] )
}

Sommaire

  • SyncSemaphore::__construct — Construit un nouvel objet SyncSemaphore
  • SyncSemaphore::lock — Décrémente le compteur de l'objet SyncSemaphore ou attend
  • SyncSemaphore::unlock — Incrémente le compteur de l'objet SyncSemaphore


Construit un nouvel objet SyncSemaphore

  • « SyncSemaphore
  • SyncSemaphore::lock »
  • PHP Manual
  • SyncSemaphore
  • Construit un nouvel objet SyncSemaphore

SyncSemaphore::__construct

(PECL sync >= 1.0.0)

SyncSemaphore::__construct — Construit un nouvel objet SyncSemaphore

Description

public SyncSemaphore::__construct ([ string $name [, integer $initialval [, bool $autounlock ]]] )

Construit un sémaphore nommé ou non.

Liste de paramètres

name

Le nom du sémaphore s'il est nommé.

Note:

Si le nom existe déjà, l'objet doit pouvoir être ouvert par l'utilisateur courant qui exécute le processus, ou une exception sera émise contenant le message d'erreur.

initialval

La valeur initiale du sémaphore. Ce sera le nombre de verrous qui peuvent être obtenus.

autounlock

Spécifie si l'on doit ou non déverouiller automatiquement le sémaphore à la fin du script PHP.

Avertissement

Si l'objet est un sémaphore nommé dont l'autounlock vaut FALSE, l'objet est verrouillé, et le script PHP se termine avant que l'objet ne soit déverouillé, alors le sémaphore sous-jacent se terminera dans un statut non consistent.

Valeurs de retour

Le nouvel objet SyncSemaphore. Une exception sera émise si le sémaphore ne peut être créé ou ouvert.

Exemples

Exemple #1 Exemple avec SyncSemaphore::__construct()

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
    echo "Impossible de verrouiller le sémaphore.";

    exit();
}

/* ... */

$semaphore->unlock();
?>

Voir aussi

  • SyncSemaphore::lock() - Décrémente le compteur de l'objet SyncSemaphore ou attend
  • SyncSemaphore::unlock() - Incrémente le compteur de l'objet SyncSemaphore


Décrémente le compteur de l'objet SyncSemaphore ou attend

  • « SyncSemaphore::__construct
  • SyncSemaphore::unlock »
  • PHP Manual
  • SyncSemaphore
  • Décrémente le compteur de l'objet SyncSemaphore ou attend

SyncSemaphore::lock

(PECL sync >= 1.0.0)

SyncSemaphore::lock — Décrémente le compteur de l'objet SyncSemaphore ou attend

Description

public bool SyncSemaphore::lock ([ integer $wait ] )

Décrémente le compteur de l'objet SyncSemaphore ou attend que le sémaphore soit à une valeur différente de zéro.

Liste de paramètres

wait

Le nombre de millisecondes à attendre le sémaphore. Une valuer à -1 signifie que l'on attend indéfiniement.

Valeurs de retour

TRUE si l'opération de verouillage a été un succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec SyncSemaphore::lock()

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
    echo "Impossible de déverouiller le sémaphore.";

    exit();
}

/* ... */

$semaphore->unlock();
?>

Voir aussi

  • SyncSemaphore::unlock() - Incrémente le compteur de l'objet SyncSemaphore


Incrémente le compteur de l'objet SyncSemaphore

  • « SyncSemaphore::lock
  • SyncEvent »
  • PHP Manual
  • SyncSemaphore
  • Incrémente le compteur de l'objet SyncSemaphore

SyncSemaphore::unlock

(PECL sync >= 1.0.0)

SyncSemaphore::unlock — Incrémente le compteur de l'objet SyncSemaphore

Description

public bool SyncSemaphore::unlock ([ integer &$prevcount ] )

Incrémente le compteur de l'objet SyncSemaphore.

Liste de paramètres

prevcount

Retourne le compteur précédent du sémaphore.

Valeurs de retour

TRUE si le déverouillage a été un succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec SyncSemaphore::unlock()

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
    echo "Impossible de déverouiller le sémaphore.";

    exit();
}

/* ... */

$semaphore->unlock();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • SyncSemaphore::lock() - Décrémente le compteur de l'objet SyncSemaphore ou attend


La classe SyncEvent

(PECL sync >= 1.0.0)

Introduction

Une implémentation cross-plateforme, native des objets d'événements nommés ou non. Les objets d'événements à la fois automatique et manuelle sont supportés.

Un objet d'évément, attend, sans mise en file, que les objets soient lancés/définis. Une instance attend sur l'objet d'événement tandis qu'une autre lance/définie l'événement. Les objets d'événements sont utiles tout au long d'un processus long (i.e. vérifier pour voir si un téléchargement de données doit être analysé).

Synopsis de la classe

SyncEvent {
/* Méthodes */
public __construct ([ string $name [, bool $manual ]] )
public bool fire ( void )
public bool reset ( void )
public bool wait ([ integer $wait ] )
}

Sommaire

  • SyncEvent::__construct — Construit un nouvel objet SyncEvent
  • SyncEvent::fire — Lance/défini l'événement
  • SyncEvent::reset — Réinitialise manuellement un événement
  • SyncEvent::wait — Attend que l'objet SyncEvent ne soit lancé


Construit un nouvel objet SyncEvent

  • « SyncEvent
  • SyncEvent::fire »
  • PHP Manual
  • SyncEvent
  • Construit un nouvel objet SyncEvent

SyncEvent::__construct

(PECL sync >= 1.0.0)

SyncEvent::__construct — Construit un nouvel objet SyncEvent

Description

public SyncEvent::__construct ([ string $name [, bool $manual ]] )

Construit un objet d'événement nommé ou non.

Liste de paramètres

name

Le nom de l'événement si c'est un objet d'événement nommé.

Note:

Si le nom existe déjà, on doit être capable de l'ouvrir avec l'utilisateur courant qui exécute le processus, ou une exception sera émise avec le contenu du message d'erreur.

manual

Spécifie si l'objet d'événement doit être ou non réinitialisé manuellement.

Note:

La réinitialisation manuelle des objets d'événements permet la mise en attente des processus tant que l'objet n'est pas réinitialisé.

Valeurs de retour

Le nouvel objet SyncEvent. Une exception est lancée si l'objet d'événement ne peut être créé ou ouvert.

Exemples

Exemple #1 Exemple avec SyncEvent::__construct()

<?php
// Dans une application web :
$event = new SyncEvent("GetAppReport");
$event->fire();

// Dans un cron :
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Voir aussi

  • SyncEvent::fire() - Lance/défini l'événement
  • SyncEvent::reset() - Réinitialise manuellement un événement
  • SyncEvent::wait() - Attend que l'objet SyncEvent ne soit lancé


Lance/défini l'événement

  • « SyncEvent::__construct
  • SyncEvent::reset »
  • PHP Manual
  • SyncEvent
  • Lance/défini l'événement

SyncEvent::fire

(PECL sync >= 1.0.0)

SyncEvent::fire — Lance/défini l'événement

Description

public bool SyncEvent::fire ( void )

Lance/défini un objet SyncEvent. Conserve plusieurs threads en attente si l'objet d'événement a été créé avec une valeur manuelle à TRUE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'événement a été lancé, FALSE sinon.

Exemples

Exemple #1 Exemple avec SyncEvent::fire()

<?php
// Dans une application web :
$event = new SyncEvent("GetAppReport");
$event->fire();

// Dans un cron :
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Voir aussi

  • SyncEvent::reset() - Réinitialise manuellement un événement
  • SyncEvent::wait() - Attend que l'objet SyncEvent ne soit lancé


Réinitialise manuellement un événement

  • « SyncEvent::fire
  • SyncEvent::wait »
  • PHP Manual
  • SyncEvent
  • Réinitialise manuellement un événement

SyncEvent::reset

(PECL sync >= 1.0.0)

SyncEvent::reset — Réinitialise manuellement un événement

Description

public bool SyncEvent::reset ( void )

Réinitialise un objet SyncEvent qui a été lancé/défini. Seulement valide pour les objets d'événement manuels.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'objet a été réinitialisé avec succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec SyncEvent::reset()

<?php
// Dans une application web :
$event = new SyncEvent("DemoApplication", true);
$event->wait();

// Dans un cron :
$event = new SyncEvent("DemoApplication", true);
$event->reset();
/* ... Effectuer quelques tâches de maintenance ... */
$event->fire();
?>

Voir aussi

  • SyncEvent::fire() - Lance/défini l'événement
  • SyncEvent::reset()
  • SyncEvent::wait() - Attend que l'objet SyncEvent ne soit lancé


Attend que l'objet SyncEvent ne soit lancé

  • « SyncEvent::reset
  • SyncReaderWriter »
  • PHP Manual
  • SyncEvent
  • Attend que l'objet SyncEvent ne soit lancé

SyncEvent::wait

(PECL sync >= 1.0.0)

SyncEvent::wait — Attend que l'objet SyncEvent ne soit lancé

Description

public bool SyncEvent::wait ([ integer $wait ] )

Attend que l'objet SyncEvent ne soit lancé.

Liste de paramètres

wait

Le nombre de millisecondes à attendre que l'événement ne soit lancé. Une valeur de -1 signifie que l'on attend indéfiniement.

Valeurs de retour

Un booléen valant TRUE signifie que l'événement a été émis, FALSE sinon.

Exemples

Exemple #1 Exemple avec SyncEvent::wait()

<?php
// Dans une application web :
$event = new SyncEvent("GetAppReport");
$event->fire();

// Dans un cron :
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Voir aussi

  • SyncEvent::fire() - Lance/défini l'événement


La classe SyncReaderWriter

(PECL sync >= 1.0.0)

Introduction

Une implémentation cross-plateforme, native des objets lecture-écriture nommés ou non.

Un objet lecture-écriture autorisent plusieurs lectures, ou une écriture à accéder à une ressource. C'est une solution efficace pour gérer les ressources où l'accès est originalement en lecture seule mais qu'un accès en écriture est occasionnellement nécessaire.

Synopsis de la classe

SyncReaderWriter {
/* Méthodes */
public __construct ([ string $name [, bool $autounlock ]] )
public bool readlock ([ integer $wait ] )
public bool readunlock ( void )
public bool writelock ([ integer $wait ] )
public bool writeunlock ( void )
}

Sommaire

  • SyncReaderWriter::__construct — Construit un nouvel objet SyncReaderWriter
  • SyncReaderWriter::readlock — Obtiens un verrou de lecture
  • SyncReaderWriter::readunlock — Libère un verrou de lecture
  • SyncReaderWriter::writelock — Obtiens un verrou d'écriture exclusif
  • SyncReaderWriter::writeunlock — Libère un verrou d'écriture


Construit un nouvel objet SyncReaderWriter

  • « SyncReaderWriter
  • SyncReaderWriter::readlock »
  • PHP Manual
  • SyncReaderWriter
  • Construit un nouvel objet SyncReaderWriter

SyncReaderWriter::__construct

(PECL sync >= 1.0.0)

SyncReaderWriter::__construct — Construit un nouvel objet SyncReaderWriter

Description

public SyncReaderWriter::__construct ([ string $name [, bool $autounlock ]] )

Construit un objet de lecture/écriture nommé ou non.

Liste de paramètres

name

Le nom de l'objet s'il est nommé.

Note:

Si le nom existe déjà, l'objet doit pouvoir être ouvert avec l'utilisateur courant qui exécute le processus, ou une exception sera émise contenant le message d'erreur.

autounlock

Spécifie si l'on doit déverrouiller automatiquement l'objet à la fin du script PHP.

Avertissement

Si l'objet est un objet de lecture/écriture avec l'autounlock à FALSE, l'objet est verrouillé en lecture ou en écriture, et le script PHP va se terminer avant le déverouillage de l'objet, et donc, l'objet sous-jacent se terminera dans un statut non consistent.

Valeurs de retour

Le nouvel objet SyncReaderWriter. Une exception est émise si l'objet de lecture/écriture ne peut être créé ou ouvert.

Exemples

Exemple #1 Exemple avec SyncReaderWriter::__construct()

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();

$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Voir aussi

  • SyncReaderWriter::readlock() - Obtiens un verrou de lecture
  • SyncReaderWriter::readunlock() - Libère un verrou de lecture
  • SyncReaderWriter::writelock() - Obtiens un verrou d'écriture exclusif
  • SyncReaderWriter::writeunlock() - Libère un verrou d'écriture


Obtiens un verrou de lecture

  • « SyncReaderWriter::__construct
  • SyncReaderWriter::readunlock »
  • PHP Manual
  • SyncReaderWriter
  • Obtiens un verrou de lecture

SyncReaderWriter::readlock

(PECL sync >= 1.0.0)

SyncReaderWriter::readlock — Obtiens un verrou de lecture

Description

public bool SyncReaderWriter::readlock ([ integer $wait ] )

Obtiens un verrou de lecture sur un objet SyncReaderWriter.

Liste de paramètres

wait

Le nombre de millisecondes à attente un verrou. Une valeur de -1 signifie que l'on attend indéfiniement.

Valeurs de retour

TRUE si le verrou a été obtenu, FALSE sinon.

Exemples

Exemple #1 Exemple avec SyncReaderWriter::readlock()

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();
?>

Voir aussi

  • SyncReaderWriter::readunlock() - Libère un verrou de lecture


Libère un verrou de lecture

  • « SyncReaderWriter::readlock
  • SyncReaderWriter::writelock »
  • PHP Manual
  • SyncReaderWriter
  • Libère un verrou de lecture

SyncReaderWriter::readunlock

(PECL sync >= 1.0.0)

SyncReaderWriter::readunlock — Libère un verrou de lecture

Description

public bool SyncReaderWriter::readunlock ( void )

Libère un verrou de lecture sur un objet SyncReaderWriter.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la libération du verrou a été un succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec SyncReaderWriter::readunlock()

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();
?>

Voir aussi

  • SyncReaderWriter::readlock() - Obtiens un verrou de lecture


Obtiens un verrou d'écriture exclusif

  • « SyncReaderWriter::readunlock
  • SyncReaderWriter::writeunlock »
  • PHP Manual
  • SyncReaderWriter
  • Obtiens un verrou d'écriture exclusif

SyncReaderWriter::writelock

(PECL sync >= 1.0.0)

SyncReaderWriter::writelock — Obtiens un verrou d'écriture exclusif

Description

public bool SyncReaderWriter::writelock ([ integer $wait ] )

Obtiens un verrou d'écriture exclusif sur un objet SyncReaderWriter.

Liste de paramètres

wait

Le nombre de millisecondes à attendre le verrou. Une valeur de -1 signifie que l'on attend indéfiniement.

Valeurs de retour

TRUE si le verrou a été obtenu, FALSE sinon.

Exemples

Exemple #1 Exemple avec SyncReaderWriter::writelock()

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Voir aussi

  • SyncReaderWriter::writeunlock() - Libère un verrou d'écriture


Libère un verrou d'écriture

  • « SyncReaderWriter::writelock
  • Autres extensions basiques »
  • PHP Manual
  • SyncReaderWriter
  • Libère un verrou d'écriture

SyncReaderWriter::writeunlock

(PECL sync >= 1.0.0)

SyncReaderWriter::writeunlock — Libère un verrou d'écriture

Description

public bool SyncReaderWriter::writeunlock ( void )

Libère un verrou d'écriture sur un objet SyncReaderWriter.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la libération a été un succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec SyncReaderWriter::writeunlock()

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Voir aussi

  • SyncReaderWriter::writelock() - Obtiens un verrou d'écriture exclusif


Autres extensions basiques

  • GeoIP — Localisation géographique des IPs
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions GeoIP
  • FANN — FANN (Fast Artificial Neural Network)
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Fann
    • FANNConnection — The FANNConnection class
  • JSON — Notation Objet JavaScript
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • JsonSerializable — L'interface JsonSerializable
    • Fonctions JSON
  • Judy — Les tableaux Judy
    • Introduction
    • Installation/Configuration
    • Judy — La classe Judy
    • Fonctions Judy
  • Lua
    • Introduction
    • Installation/Configuration
    • Lua — La classe Lua
    • LuaClosure — La classe LuaClosure
  • Misc. — Fonctions diverses
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions diverses
    • Historique des modifications
  • Parsekit
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Parsekit
  • SPL — Bibliothèque standard PHP (SPL)
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Structures des données
    • Itérateurs
    • Interfaces
    • Exceptions
    • Fonctions SPL
    • Gestion des fichiers
    • Classes et interfaces diverses
  • Types SPL — Gestion des types SPL
    • Introduction
    • Installation/Configuration
    • SplType — La classe SplType
    • SplInt — La classe SplInt
    • SplFloat — La classe SplFloat
    • SplEnum — La classe SplEnum
    • SplBool — La classe SplBool
    • SplString — La classe SplString
  • Flux
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Filtres de flux
    • Contextes de flux
    • Erreurs de flux
    • Exemples
    • php_user_filter — La classe php_user_filter
    • streamWrapper — La classe streamWrapper
    • Fonctions sur les flux
  • Tidy
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • tidy — La classe tidy
    • tidyNode — La classe tidyNode
    • Fonctions Tidy
  • Tokenizer
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Tokenizer
  • URLs
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions URL
  • V8js — Intégration du moteur Javascript V8
    • Introduction
    • Installation/Configuration
    • Exemples
    • V8Js — La classe V8Js
    • V8JsException — La classe V8JsException
  • Yaml — Linéarisation de données YAML
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Callbacks
    • Fonctions Yaml
  • Yaf — Yaf (i.e. Yet Another Framework)
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Application Configuration
    • Yaf_Application — La classe Yaf_Application
    • Yaf_Bootstrap_Abstract — La classe Yaf_Bootstrap_Abstract
    • Yaf_Dispatcher — La classe Yaf_Dispatcher
    • Yaf_Config_Abstract — La classe Yaf_Config_Abstract
    • Yaf_Config_Ini — La classe Yaf_Config_Ini
    • Yaf_Config_Simple — La classe Yaf_Config_Simple
    • Yaf_Controller_Abstract — la classe Yaf_Controller_Abstract
    • Yaf_Action_Abstract — La classe Yaf_Action_Abstract
    • Yaf_View_Interface — La classe Yaf_View_Interface
    • Yaf_View_Simple — La classe Yaf_View_Simple
    • Yaf_Loader — La classe Yaf_Loader
    • Yaf_Plugin_Abstract — La classe Yaf_Plugin_Abstract
    • Yaf_Registry — La classe Yaf_Registry
    • Yaf_Request_Abstract — La classe Yaf_Request_Abstract
    • Yaf_Request_Http — La classe Yaf_Request_Http
    • Yaf_Request_Simple — La classe Yaf_Request_Simple
    • Yaf_Response_Abstract — La classe Yaf_Response_Abstract
    • Yaf_Route_Interface — La classe Yaf_Route_Interface
    • Yaf_Route_Map — La classe Yaf_Route_Map
    • Yaf_Route_Regex — La classe Yaf_Route_Regex
    • Yaf_Route_Rewrite — La classe Yaf_Route_Rewrite
    • Yaf_Router — La classe Yaf_Router
    • Yaf_Route_Simple — La classe Yaf_Route_Simple
    • Yaf_Route_Static — La classe Yaf_Route_Static
    • Yaf_Route_Supervar — La classe Yaf_Route_Supervar
    • Yaf_Session — La classe Yaf_Session
    • Yaf_Exception — La classe Yaf_Exception
    • Yaf_Exception_TypeError — La classe Yaf_Exception_TypeError
    • Yaf_Exception_StartupError — La classe Yaf_Exception_StartupError
    • Yaf_Exception_DispatchFailed — La classe Yaf_Exception_DispatchFailed
    • Yaf_Exception_RouterFailed — La classe Yaf_Exception_RouterFailed
    • Yaf_Exception_LoadFailed — La classe Yaf_Exception_LoadFailed
    • Yaf_Exception_LoadFailed_Module — La classe Yaf_Exception_LoadFailed_Module
    • Yaf_Exception_LoadFailed_Controller — La classe Yaf_Exception_LoadFailed_Controller
    • Yaf_Exception_LoadFailed_Action — La classe Yaf_Exception_LoadFailed_Action
    • Yaf_Exception_LoadFailed_View — La classe Yaf_Exception_LoadFailed_View
  • Taint
    • Introduction
    • Installation/Configuration
    • More Details
    • Fonctions Taint


Localisation géographique des IPs

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions GeoIP
    • geoip_asnum_by_name — Récupère l'ASN (Autonomous System Numbers)
    • geoip_continent_code_by_name — Lit de code de continent d'une IP
    • geoip_country_code_by_name — Récupère les deux lettres du code pays
    • geoip_country_code3_by_name — Récupère les trois lettres du code pays
    • geoip_country_name_by_name — Récupère le nom complet du pays
    • geoip_database_info — Récupère les informations de la base de données GeoIP
    • geoip_db_avail — Vérifie si la base de données GeoIP est disponible
    • geoip_db_filename — Retourne le nom du fichier contenant la base de données GeoIP spécifiée
    • geoip_db_get_all_info — Retourne des informations détaillées sur tous les types de bases de données GeoIP
    • geoip_domain_by_name — Récupère le second niveau du nom de domaine
    • geoip_id_by_name — Récupère le type de la connexion Internet
    • geoip_isp_by_name — Récupère le nom du fournisseur d'accès
    • geoip_netspeedcell_by_name — Récupère la vitesse de la connexion Internet
    • geoip_org_by_name — Récupère le nom de l'organisation
    • geoip_record_by_name — Récupère les informations enregistrées correspondant au nom de l'hôte ou à l'adresse IP, trouvées dans la base de données GeoIP
    • geoip_region_by_name — Récupère le code pays et la région
    • geoip_region_name_by_code — Retourne le nom de la région pour un pays et un code de région
    • geoip_setup_custom_directory — Défini un dossier personnalisé pour la base de données GeoIP
    • geoip_time_zone_by_country_and_region — Retourne le fuseau horaire de certains pays et région du globe


Introduction

L'extension GeoIP permet de localiser une adresse IP. La ville, l'état, le pays, la longitude, la latitude et d'autres informations comme l'ISP et le type de connexion peuvent être obtenus grâce à GeoIP.


Pré-requis

Cette extension nécessite la bibliothèque GeoIP version 1.4.0 ou suivant. Vous pouvez récupérer la dernière version sur » http://www.maxmind.com/app/c et la compiler vous-même.

Par défaut, vous ne pouvez qu'accéder à la base de données Free GeoIP Country ou GeoLite City. Bien que ce module peut fonctionner avec d'autres types de bases de données, vous devez acheter une licence commerciale sur » Maxmind.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/geoip.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

GeoIP Options de configuration
Nom | Défaut | Modifiable | Historique
geoip.custom_directory | "" | PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

geoip.custom_directory string

Vide par défaut, mais peut être utilisé pour charger une base de données différente de celle inclut dans la librairie.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

GEOIP_COUNTRY_EDITION (entier)
GEOIP_REGION_EDITION_REV0 (entier)
GEOIP_CITY_EDITION_REV0 (entier)
GEOIP_ORG_EDITION (entier)
GEOIP_ISP_EDITION (entier)
GEOIP_CITY_EDITION_REV1 (entier)
GEOIP_REGION_EDITION_REV1 (entier)
GEOIP_PROXY_EDITION (entier)
GEOIP_ASNUM_EDITION (entier)
GEOIP_NETSPEED_EDITION (entier)
GEOIP_DOMAIN_EDITION (entier)

Les constantes suivantes sont utilisées pour la rapidité réseau :

GEOIP_UNKNOWN_SPEED (entier)
GEOIP_DIALUP_SPEED (entier)
GEOIP_CABLEDSL_SPEED (entier)
GEOIP_CORPORATE_SPEED (entier)


Fonctions GeoIP

Sommaire

  • geoip_asnum_by_name — Récupère l'ASN (Autonomous System Numbers)
  • geoip_continent_code_by_name — Lit de code de continent d'une IP
  • geoip_country_code_by_name — Récupère les deux lettres du code pays
  • geoip_country_code3_by_name — Récupère les trois lettres du code pays
  • geoip_country_name_by_name — Récupère le nom complet du pays
  • geoip_database_info — Récupère les informations de la base de données GeoIP
  • geoip_db_avail — Vérifie si la base de données GeoIP est disponible
  • geoip_db_filename — Retourne le nom du fichier contenant la base de données GeoIP spécifiée
  • geoip_db_get_all_info — Retourne des informations détaillées sur tous les types de bases de données GeoIP
  • geoip_domain_by_name — Récupère le second niveau du nom de domaine
  • geoip_id_by_name — Récupère le type de la connexion Internet
  • geoip_isp_by_name — Récupère le nom du fournisseur d'accès
  • geoip_netspeedcell_by_name — Récupère la vitesse de la connexion Internet
  • geoip_org_by_name — Récupère le nom de l'organisation
  • geoip_record_by_name — Récupère les informations enregistrées correspondant au nom de l'hôte ou à l'adresse IP, trouvées dans la base de données GeoIP
  • geoip_region_by_name — Récupère le code pays et la région
  • geoip_region_name_by_code — Retourne le nom de la région pour un pays et un code de région
  • geoip_setup_custom_directory — Défini un dossier personnalisé pour la base de données GeoIP
  • geoip_time_zone_by_country_and_region — Retourne le fuseau horaire de certains pays et région du globe


Récupère l'ASN (Autonomous System Numbers)

  • « Fonctions GeoIP
  • geoip_continent_code_by_name »
  • PHP Manual
  • Fonctions GeoIP
  • Récupère l'ASN (Autonomous System Numbers)

geoip_asnum_by_name

(PECL geoip >= 1.1.0)

geoip_asnum_by_name — Récupère l'ASN (Autonomous System Numbers)

Description

string geoip_asnum_by_name ( string $hostname )

La fonction geoip_asnum_by_name() va récupérer l'ASN (Autonomous System Numbers) associé avec l'adresse IP.

Liste de paramètres

hostname

Le nom d'hôte ou l'adresse IP.

Valeurs de retour

Retourne l'ASN en cas de succès, ou FALSE si l'adresse ne peut être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_asnum_by_name()

Cet exemple va afficher l'ASN pour l'hôte www.example.com.

<?php
$asn = geoip_asnum_by_name('www.example.com');

if ($asn) {
    echo 'L\'ASN est : ' $asn;
}
?>

L'exemple ci-dessus va afficher :

L'ASN est : AS15133 EdgeCast Networks, Inc


Lit de code de continent d'une IP

  • « geoip_asnum_by_name
  • geoip_country_code_by_name »
  • PHP Manual
  • Fonctions GeoIP
  • Lit de code de continent d'une IP

geoip_continent_code_by_name

(PECL geoip >= 1.0.3)

geoip_continent_code_by_name — Lit de code de continent d'une IP

Description

string geoip_continent_code_by_name ( string $hostname )

geoip_continent_code_by_name() retourne le code en deux lettre du continent correspondant à un nom d'hôte ou une adresse IP.

Liste de paramètres

hostname

Le nom d'hôte ou l'adresse IP qui est étudiée.

Valeurs de retour

Retourne le code en deux lettre du nom de continent, en cas de succès, et FALSE si l'adresse n'a pas pu être trouvée dans la base.

Continent codes
Code | Nom du contient
AF | Afrique
AN | Antarctique
AS | Asie
EU | Europe
NA | Amérique du nord
OC | Océanie
SA | Amérique du sud

Exemples

Exemple #1 Exemple avec geoip_continent_code_by_name()

Ce script va afficher le continent de l'hôte example.com.

<?php
$continent = geoip_continent_code_by_name('www.example.com');
if ($continent) {
    echo 'Cet hôte est situé en : ' . $continent;
}
?>

L'exemple ci-dessus va afficher :

Cet hôte est situé en : NA

Voir aussi

  • geoip_country_code_by_name() - Récupère les deux lettres du code pays


Récupère les deux lettres du code pays

  • « geoip_continent_code_by_name
  • geoip_country_code3_by_name »
  • PHP Manual
  • Fonctions GeoIP
  • Récupère les deux lettres du code pays

geoip_country_code_by_name

(PECL geoip >= 0.2.0)

geoip_country_code_by_name — Récupère les deux lettres du code pays

Description

string geoip_country_code_by_name ( string $hostname )

La fonction geoip_country_code_by_name() retourne les deux lettres du code pays correspondant au nom de l'hôte ou à l'adresse IP.

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne les deux lettres du code pays ISO en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_country_code_by_name()

Cet exemple affiche la localisation de l'hôte example.com.

<?php
$country = geoip_country_code_by_name('www.example.com');
if ($country) {
    echo 'Localisation de cet hôte : ' . $country;
}
?>

L'exemple ci-dessus va afficher :

Localisation de cet hôte : US

Notes

Attention

Reportez-vous à la page » http://www.maxmind.com/en/iso3166 pour une liste complète des valeurs retournées possibles, incluant les codes spéciaux.

Voir aussi

  • geoip_country_code3_by_name() - Récupère les trois lettres du code pays
  • geoip_country_name_by_name() - Récupère le nom complet du pays


Récupère les trois lettres du code pays

  • « geoip_country_code_by_name
  • geoip_country_name_by_name »
  • PHP Manual
  • Fonctions GeoIP
  • Récupère les trois lettres du code pays

geoip_country_code3_by_name

(PECL geoip >= 0.2.0)

geoip_country_code3_by_name — Récupère les trois lettres du code pays

Description

string geoip_country_code3_by_name ( string $hostname )

La fonction geoip_country_code3_by_name() retourne les trois lettres du code pays correspondant au nom de l'hôte ou à l'adresse IP.

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne les trois lettres do code pays en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_country_code3_by_name()

Cet exemple affiche où est localisé l'hôte example.com.

<?php
$country = geoip_country_code3_by_name('www.example.com');
if ($country) {
    echo 'Localisation de cet hôte : ' . $country;
}
?>

L'exemple ci-dessus va afficher :

Localisation de cet hôte : USA

Voir aussi

  • geoip_country_code_by_name() - Récupère les deux lettres du code pays
  • geoip_country_name_by_name() - Récupère le nom complet du pays


Récupère le nom complet du pays

  • « geoip_country_code3_by_name
  • geoip_database_info »
  • PHP Manual
  • Fonctions GeoIP
  • Récupère le nom complet du pays

geoip_country_name_by_name

(PECL geoip >= 0.2.0)

geoip_country_name_by_name — Récupère le nom complet du pays

Description

string geoip_country_name_by_name ( string $hostname )

La fonction geoip_country_name_by_name() retourne le nom complet du pays correspondant au nom de l'hôte ou à l'adresse IP.

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne le nom du pays en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_country_name_by_name()

Cet exemple affiche la localisation de l'hôte example.com.

<?php
$country = geoip_country_name_by_name('www.example.com');
if ($country) {
    echo 'Localisation de cet hôte : ' . $country;
}
?>

L'exemple ci-dessus va afficher :

Localisation de cet hôte : United States

Voir aussi

  • geoip_country_code_by_name() - Récupère les deux lettres du code pays
  • geoip_country_code3_by_name() - Récupère les trois lettres du code pays


Récupère les informations de la base de données GeoIP

  • « geoip_country_name_by_name
  • geoip_db_avail »
  • PHP Manual
  • Fonctions GeoIP
  • Récupère les informations de la base de données GeoIP

geoip_database_info

(PECL geoip >= 0.2.0)

geoip_database_info — Récupère les informations de la base de données GeoIP

Description

string geoip_database_info ([ int $database = GEOIP_COUNTRY_EDITION ] )

La fonction geoip_database_info() retourne la version de la base de données GeoIP tel que définie dans le fichier binaire.

Si cette fonction est appelée sans argument, elle retourne la version de la GeoIP Free Country Edition.

Liste de paramètres

database

Le type de base de données, en tant qu'entier. Vous pouvez utiliser diverses constantes définies avec cette extension (ie: GEOIP_*_EDITION).

Valeurs de retour

Retourne la version correspondante de la base de données, ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec geoip_database_info()

Cet exemple affiche les informations contenues dans la base de données.

<?php
print geoip_database_info(GEOIP_COUNTRY_EDITION);
?>

L'exemple ci-dessus va afficher :

GEO-106FREE 20060801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved


Vérifie si la base de données GeoIP est disponible

  • « geoip_database_info
  • geoip_db_filename »
  • PHP Manual
  • Fonctions GeoIP
  • Vérifie si la base de données GeoIP est disponible

geoip_db_avail

(PECL geoip >= 1.0.1)

geoip_db_avail — Vérifie si la base de données GeoIP est disponible

Description

bool geoip_db_avail ( int $database )

La fonction geoip_db_avail() vérifie si la base de données correspondant est disponible et peut être ouverte sur le disque.

La fonction n'indique pas si le fichier est une base de données valide, mais uniquement si elle est lisible.

Liste de paramètres

database

Le type de de base de données, sous la forme d'un entier. Vous pouvez utiliser diverses constantes, définies avec cette extension (ie: GEOIP_*_EDITION).

Valeurs de retour

Retourne TRUE si la base de données existe, FALSE si elle n'est pas trouvée, ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec geoip_db_avail()

Ceci affichera la version de la base de données courante.

<?php

if (geoip_db_avail(GEOIP_COUNTRY_EDITION))
    print geoip_database_info(GEOIP_COUNTRY_EDITION);
?>

L'exemple ci-dessus va afficher :

GEO-106FREE 20080801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved


Retourne le nom du fichier contenant la base de données GeoIP spécifiée

  • « geoip_db_avail
  • geoip_db_get_all_info »
  • PHP Manual
  • Fonctions GeoIP
  • Retourne le nom du fichier contenant la base de données GeoIP spécifiée

geoip_db_filename

(PECL geoip >= 1.0.1)

geoip_db_filename — Retourne le nom du fichier contenant la base de données GeoIP spécifiée

Description

string geoip_db_filename ( int $database )

La fonction geoip_db_filename() retourne le nom du fichier contenant la base de données GeoIP spécifiée.

La fonction n'indique pas si le fichier existe ou non sur le disque, mais uniquement l'endroit dans lequel la bibliothèque cherche la base de données.

Liste de paramètres

database

Le type de base de données, sous la forme d'un entier. Vous pouvez utiliser diverses constantes, définies avec cette extension (ie: GEOIP_*_EDITION).

Valeurs de retour

Retourne le nom du fichier de la base de données correspondant, ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec geoip_db_filename()

Ceci affichera le nom du fichier correspondant à la base de données.

<?php

print geoip_db_filename(GEOIP_COUNTRY_EDITION);

?>

L'exemple ci-dessus va afficher :

/usr/share/GeoIP/GeoIP.dat


Retourne des informations détaillées sur tous les types de bases de données GeoIP

  • « geoip_db_filename
  • geoip_domain_by_name »
  • PHP Manual
  • Fonctions GeoIP
  • Retourne des informations détaillées sur tous les types de bases de données GeoIP

geoip_db_get_all_info

(PECL geoip >= 1.0.1)

geoip_db_get_all_info — Retourne des informations détaillées sur tous les types de bases de données GeoIP

Description

array geoip_db_get_all_info ( void )

La fonction geoip_db_get_all_info() retourne des informations détaillées, sous la forme d'un tableau multidimensionnel, sur tous les types de bases de données GeoIP.

Cette fonction est disponible même si aucune base de données n'est installée. Elle listera simplement les bases de données comme étant non disponibles.

Les noms des différentes clés du tableau associatif retourné, sont les suivantes :

  • "available" : Booléen, indique si la base de données est disponible (voir la fonction geoip_db_avail())
  • "description" : La description de la base de données
  • "filename" : Le nom du fichier contenant la base de données sur le disque (voir la fonction geoip_db_filename())

Valeurs de retour

Retourne un tableau associatif.

Exemples

Exemple #1 Exemple avec geoip_db_get_all_info()

Ceci affichera un tableau contenant toutes les informations.

<?php
$infos = geoip_db_get_all_info();
if (is_array($infos)) {
    var_dump($infos);
}
?>

L'exemple ci-dessus va afficher :

array(11) {
  [1]=>
  array(3) {
    ["available"]=>
    bool(true)
    ["description"]=>
    string(21) "GeoIP Country Edition"
    ["filename"]=>
    string(32) "/usr/share/GeoIP/GeoIP.dat"
  }

[ ... ]

  [11]=>
  array(3) {
    ["available"]=>
    bool(false)
    ["description"]=>
    string(25) "GeoIP Domain Name Edition"
    ["filename"]=>
    string(38) "/usr/share/GeoIP/GeoIPDomain.dat"
  }
}

Exemple #2 Exemple avec geoip_db_get_all_info()

Vous pouvez utiliser diverses constantes comme clés, pour récupérer uniquement des parties d'informations.

<?php
$infos = geoip_db_get_all_info();
if ($infos[GEOIP_COUNTRY_EDITION]['available']) {
    echo $infos[GEOIP_COUNTRY_EDITION]['description'];
}
?>

L'exemple ci-dessus va afficher :

GeoIP Country Edition


Récupère le second niveau du nom de domaine

  • « geoip_db_get_all_info
  • geoip_id_by_name »
  • PHP Manual
  • Fonctions GeoIP
  • Récupère le second niveau du nom de domaine

geoip_domain_by_name

(PECL geoip >= 1.1.0)

geoip_domain_by_name — Récupère le second niveau du nom de domaine

Description

string geoip_domain_by_name ( string $hostname )

La fonction geoip_domain_by_name() va retourner le second niveau du domaine associé avec un nom d'hôte ou l'adresse IP.

Cette fonction n'est actuellement disponible que pour les utilisateurs qui ont acheté une édition commerciale GeoIP Domain. Une alerte sera émise si la bonne base de données ne peut être trouvée.

Liste de paramètres

hostname

Le nom d'hôte ou l'adresse IP.

Valeurs de retour

Retourne le nom de domaine en cas de succès, ou FALSE si l'adresse ne peut être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_domain_by_name()

Cet exemple va afficher le domaine associé avec l'IP 61.106.139.1.

<?php
$domain = geoip_domain_by_name('61.106.139.1');

if ($domain) {
    echo 'Le domaine est : '. $domain;
}

?>

L'exemple ci-dessus va afficher :

Le domaine est : von.co.kr


Récupère le type de la connexion Internet

  • « geoip_domain_by_name
  • geoip_isp_by_name »
  • PHP Manual
  • Fonctions GeoIP
  • Récupère le type de la connexion Internet

geoip_id_by_name

(PECL geoip >= 0.2.0)

geoip_id_by_name — Récupère le type de la connexion Internet

Description

int geoip_id_by_name ( string $hostname )

La fonction geoip_id_by_name() retourne le type de connexion internet correspondant au nom de l'hôte ou à l'adresse IP.

La valeur retournée est de type numérique et peut être comparée aux constantes suivantes :

  • GEOIP_UNKNOWN_SPEED
  • GEOIP_DIALUP_SPEED
  • GEOIP_CABLEDSL_SPEED
  • GEOIP_CORPORATE_SPEED

Liste de paramètres

hostname

Le nom d'hôte ou l'adresse IP dont le type de connexion doit être examiné.

Valeurs de retour

Retourne le type de connexion.

Exemples

Exemple #1 Exemple avec geoip_id_by_name()

Cet exemple affiche le type de connexion de l'hôte example.com.

<?php
$netspeed = geoip_id_by_name('www.example.com');

echo 'La connexion est du type ';

switch ($netspeed) {
    case GEOIP_DIALUP_SPEED:
        echo 'dial-up';
        break;
    case GEOIP_CABLEDSL_SPEED:
        echo 'cable ou DSL';
        break;
    case GEOIP_CORPORATE_SPEED:
        echo 'corporate';
        break;
    case GEOIP_UNKNOWN_SPEED:
    default:
        echo 'inconnu';
}
?>

L'exemple ci-dessus va afficher :

La connexion est du type corporate


Récupère le nom du fournisseur d'accès

  • « geoip_id_by_name
  • geoip_netspeedcell_by_name »
  • PHP Manual
  • Fonctions GeoIP
  • Récupère le nom du fournisseur d'accès

geoip_isp_by_name

(PECL geoip >= 1.0.2)

geoip_isp_by_name — Récupère le nom du fournisseur d'accès

Description

string geoip_isp_by_name ( string $hostname )

La fonction geoip_isp_by_name() retourne le nom de l'ISP dont l'IP est assignée.

Cette fonction est actuellement disponible qu'aux utilisateurs qui ont achetés une édition commerciale de GeoIP ISP. Un avertissement sera émis si la base de données ne peut être localisée.

Liste de paramètres

hostname

Le nom d'hôte ou l'adresse IP.

Valeurs de retour

Retourne le nom ISP en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_isp_by_name()

Ceci affichera le nom ISP pour l'hôte example.com.

<?php
$isp = geoip_isp_by_name('www.example.com');
if ($isp) {
    echo 'L\'IP de l\'hôte provient de l\'ISP : ' . $isp;
}
?>

L'exemple ci-dessus va afficher :

L'IP de l'hôte provient de l'ISP : ICANN c/o Internet Assigned Numbers Authority


Récupère la vitesse de la connexion Internet

  • « geoip_isp_by_name
  • geoip_org_by_name »
  • PHP Manual
  • Fonctions GeoIP
  • Récupère la vitesse de la connexion Internet

geoip_netspeedcell_by_name

(PECL geoip >= 1.1.0)

geoip_netspeedcell_by_name — Récupère la vitesse de la connexion Internet

Description

string geoip_netspeedcell_by_name ( string $hostname )

La fonction geoip_netspeedcell_by_name() va retourner le type de connexion Internet ainsi que sa vitesse, suivant un nom d'hôte ou une adresse IP.

Cette fonction n'est disponible que lors de l'utilisation de la version 1.4.8 de la bibliothèque GeoIP, ou supérieures.

Cette fonction est actuellement uniquement disponible pour les utilisateurs qui ont acheté une édition commerciale GeoIP NetSpeedCell. Une alerte sera émise si la bonne base de données ne peut être trouvée.

La valeur retournée sera une chaîne de caractères dont les valeurs communues sont :

  • Cable/DSL
  • Dialup
  • Cellular
  • Corporate

Liste de paramètres

hostname

Le nom d'hôte, ou l'adresse IP.

Valeurs de retour

Retourne la vitesse de la connexion en cas de succès, ou FALSE si l'adresse ne peut être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_netspeedcell_by_name()

Cet exemple va afficher la vitesse de la connexion de l'hôte example.com.

<?php
$netspeed = geoip_netspeedcell_by_name('www.example.com');

if ($netspeed) {
    echo 'Le type de connexion est : '. $netspeed;
}
?>

L'exemple ci-dessus va afficher :

Le type de connexion est : Corporate


Récupère le nom de l'organisation

  • « geoip_netspeedcell_by_name
  • geoip_record_by_name »
  • PHP Manual
  • Fonctions GeoIP
  • Récupère le nom de l'organisation

geoip_org_by_name

(PECL geoip >= 0.2.0)

geoip_org_by_name — Récupère le nom de l'organisation

Description

string geoip_org_by_name ( string $hostname )

La fonction geoip_org_by_name() retourne le nom de l'organisation auquel l'adresse IP est assignée.

Cette fonction est actuellement uniquement disponible aux utilisateurs qui ont acheté une licence commerciale GeoIP Organization, ISP ou AS Edition. Une alerte sera émise si la base de données ne peut pas être trouvée.

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne le nom de l'organisation en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_org_by_name()

Cet exemple affiche le nom de l'organisation pour l'hôte example.com.

<?php
$org = geoip_org_by_name('www.example.com');
if ($org) {
    echo 'Nom de l\'organisation : ' . $org;
}
?>

L'exemple ci-dessus va afficher :

Nom de l'organisation : ICANN c/o Internet Assigned Numbers Authority


Récupère les informations enregistrées correspondant au nom de l'hôte ou à l'adresse IP, trouvées dans la base de données GeoIP

  • « geoip_org_by_name
  • geoip_region_by_name »
  • PHP Manual
  • Fonctions GeoIP
  • Récupère les informations enregistrées correspondant au nom de l'hôte ou à l'adresse IP, trouvées dans la base de données GeoIP

geoip_record_by_name

(PECL geoip >= 0.2.0)

geoip_record_by_name — Récupère les informations enregistrées correspondant au nom de l'hôte ou à l'adresse IP, trouvées dans la base de données GeoIP

Description

array geoip_record_by_name ( string $hostname )

La fonction geoip_record_by_name() retourne les informations enregistrées correspondant au nom de l'hôte ou à l'adresse IP.

Cette fonction est disponible pour les bases de données GeoLite City Edition et la version commerciale GeoIP City Edition. Une alerte sera émise si la base de données n'a pu être trouvée.

Les noms des différentes clés du tableau associatif retourné sont les suivantes :

  • "continent_code" : Code du continent sur 2 lettres (disponible depuis la version 1.0.4 avec libgeoip 1.4.3 ou supérieure)
  • "country_code" : Les deux lettres du code pays (Voir geoip_country_code_by_name())
  • "country_code3" : Code pays sur 3 lettres (Voir la fonction geoip_country_code3_by_name())
  • "country_name" : Nom du pays (Voir la fonction geoip_country_name_by_name())
  • "region" : Le code région (ex: CA pour California)
  • "city" : La ville.
  • "postal_code" : Le code postal, FSA ou Zip.
  • "latitude" : La latitude.
  • "longitude" : La longitude.
  • "dma_code" : Code de la zone de marché (Uniquement pour les USA et le Canada)
  • "area_code" : Le code PSTN (ex : 212)

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne un tableau associatif en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Historique

Version | Description
1.0.4 | Ajout de continent_code avec la bibliothèque GeoIP 1.4.3 ou supérieure uniquement
1.0.3 | Ajout de country_code3 et de country_name

Exemples

Exemple #1 Exemple avec geoip_record_by_name()

Cet exemple affiche le tableau contenant l'enregistrement de l'hôte example.com.

<?php
$record = geoip_record_by_name('www.example.com');
if ($record) {
    print_r($record);
}
?>

L'exemple ci-dessus va afficher :

Array
(
    [continent_code] => NA
    [country_code] => US
    [country_code3] => USA
    [country_name] => United States
    [region] => CA
    [city] => Marina Del Rey
    [postal_code] =>
    [latitude] => 33.9776992798
    [longitude] => -118.435096741
    [dma_code] => 803
    [area_code] => 310
)


Récupère le code pays et la région

  • « geoip_record_by_name
  • geoip_region_name_by_code »
  • PHP Manual
  • Fonctions GeoIP
  • Récupère le code pays et la région

geoip_region_by_name

(PECL geoip >= 0.2.0)

geoip_region_by_name — Récupère le code pays et la région

Description

array geoip_region_by_name ( string $hostname )

La fonction geoip_region_by_name() retourne le pays et la région correspondant au nom de l'hôte ou à l'adresse IP.

Cette fonction est actuellement uniquement disponible pour les utilisateurs qui ont acheté une licence commerciale GeoIP Region Edition. Une alerte sera émise si la base de données n'a pu être trouvée.

Les noms des différentes clés du tableau retourné sont les suivants :

  • "country_code" : Les deux lettres du code pays (Voir la fonction geoip_country_code_by_name())
  • "region" : Le code région (ex: CA pour California)

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne un tableau associatif en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple #1 Exemple avec geoip_region_by_name()

Cet exemple affiche le tableau contenant le code pays et la région de l'hôte example.com.

<?php
$region = geoip_region_by_name('www.example.com');
if ($region) {
    print_r($region);
}
?>

L'exemple ci-dessus va afficher :

Array
(
    [country_code] => US
    [region] => CA
)


Retourne le nom de la région pour un pays et un code de région

  • « geoip_region_by_name
  • geoip_setup_custom_directory »
  • PHP Manual
  • Fonctions GeoIP
  • Retourne le nom de la région pour un pays et un code de région

geoip_region_name_by_code

(PECL geoip >= 1.0.4)

geoip_region_name_by_code — Retourne le nom de la région pour un pays et un code de région

Description

string geoip_region_name_by_code ( string $country_code , string $region_code )

geoip_region_name_by_code() retourne le nom de la région correspondant à un couple pays et région.

Aux États-Unis d'Amérique, la région correspond à l'abréviation en deux lettres de l'état. Au Canada, cette région correspond à l'abréviation de la province ou du territoire, tel qu'attribué par Poste Canada.

Pour le reste du monde, GeoIP utiliser les codes FIPS 10-4 pour représenter les régions. Vous pouvez vérifier le site » http://www.maxmind.com/app/fips10_4 pour une liste détaillée des codes FIPS 10-4.

Cette fonction est toujours disponible, si vous utilisez GeoIP Library version 1.4.1 ou plus récent. Les données sont issues directement de GeoIP Library et non pas d'une table de référence.

Liste de paramètres

country_code

Le code de pays, en deux lettres (voyez geoip_country_code_by_name())

region_code

Le code de région en deux lettres (voyez geoip_region_by_name())

Valeurs de retour

Retourne le nom de la région en cas de succès, ou FALSE si le pays, la région ou la combinaison des deux n'a pas pu être trouvé.

Exemples

Exemple #1 Exemple avec geoip_region_name_by_code() pour les USA et le Canada

Ce script va afficher le nom de la région pour la région QC au CA.

<?php
$region = geoip_region_name_by_code('CA', 'QC');
if ($region) {
    echo 'Nom de la région CA/QC : ' . $region;
}
?>

L'exemple ci-dessus va afficher :

Nom de la région CA/QC: Quebec

Exemple #2 Exemple avec geoip_region_name_by_code() en utilisant les codes FIPS

Ce script va afficher le nom de la région pour la région 01 au JP (Japon).

<?php
$region = geoip_region_name_by_code('JP', '01');
if ($region) {
    echo 'Nom de la région JP/01: ' . $region;
}
?>

L'exemple ci-dessus va afficher :

Nom de la région JP/01: Aichi


Défini un dossier personnalisé pour la base de données GeoIP

  • « geoip_region_name_by_code
  • geoip_time_zone_by_country_and_region »
  • PHP Manual
  • Fonctions GeoIP
  • Défini un dossier personnalisé pour la base de données GeoIP

geoip_setup_custom_directory

(PECL geoip >= 1.1.0)

geoip_setup_custom_directory — Défini un dossier personnalisé pour la base de données GeoIP

Description

void geoip_setup_custom_directory ( string $path )

La fonction geoip_setup_custom_directory() va modifier le dossier par défaut de la base données GeoIP. Ceci est équivalent à modifier l'option de configuration geoip.custom_directory.

Liste de paramètres

path

Le chemin complet où se trouve la base de données GeoIP sur le disque.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec geoip_setup_custom_directory()

Cet exemple va modifier le chemin par défaut vers la base de données GeoIP.

<?php

geoip_setup_custom_directory('/un/autre/chemin');

print geoip_db_filename(GEOIP_COUNTRY_EDITION);

?>

L'exemple ci-dessus va afficher :

/un/autre/chemin/GeoIP.dat


Retourne le fuseau horaire de certains pays et région du globe

  • « geoip_setup_custom_directory
  • FANN »
  • PHP Manual
  • Fonctions GeoIP
  • Retourne le fuseau horaire de certains pays et région du globe

geoip_time_zone_by_country_and_region

(PECL geoip >= 1.0.4)

geoip_time_zone_by_country_and_region — Retourne le fuseau horaire de certains pays et région du globe

Description

string geoip_time_zone_by_country_and_region ( string $country_code [, string $region_code ] )

geoip_time_zone_by_country_and_region() retourne le fuseau horaire correspondant à un pays et une région.

Aux États-Unis d'Amérique, la région correspond à l'abréviation en deux lettres de l'état. Au Canada, cette région correspond à l'abréviation de la province ou du territoire, tel qu'attribué par Poste Canada.

Pour le reste du monde, GeoIP utiliser les codes FIPS 10-4 pour représenter les régions. Vous pouvez vérifier le site » http://www.maxmind.com/app/fips10_4 pour une liste détaillée des codes FIPS 10-4.

Cette fonction est toujours disponible, si vous utilisez GeoIP Library version 1.4.1 ou plus récent. Les données sont issues directement de GeoIP Library et non pas d'une table de référence.

Liste de paramètres

country_code

Le code de pays, en deux lettres (voyez geoip_country_code_by_name())

region_code

Le code de région en deux lettres (voyez geoip_region_by_name())

Valeurs de retour

Retourne le fuseau horaire en cas de succès, et FALSE si le pays, la région ou la combinaison des deux n'a pas pu être trouvé.

Exemples

Exemple #1 Exemple avec geoip_time_zone_by_country_and_region() pour les USA et Canada

Ce script va afficher le fuseau horaire pour le Québec, au Canada.

<?php
$timezone = geoip_time_zone_by_country_and_region('CA', 'QC');
if ($timezone) {
    echo 'Fuseau horaire de CA/QC : ' . $timezone;
}
?>

L'exemple ci-dessus va afficher :

Fuseau horaire de CA/QC : America/Montreal

Exemple #2 Exemple avec geoip_time_zone_by_country_and_region() et les codes FIPS

Ce script va afficher le fuseau horaire du Japon, région 01 (Aichi).

<?php
$timezone = geoip_time_zone_by_country_and_region('JP', '01');
if ($timezone) {
    echo 'Fuseau horaire de JP/01 : ' . $timezone;
}
?>

L'exemple ci-dessus va afficher :

Fuseau horaire de JP/01 : Asia/Tokyo


FANN (Fast Artificial Neural Network)

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • XOR training
  • Fonctions Fann
    • fann_cascadetrain_on_data — Trains on an entire dataset, for a period of time using the Cascade2 training algorithm
    • fann_cascadetrain_on_file — Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm.
    • fann_clear_scaling_params — Clears scaling parameters
    • fann_copy — Crée une copie d'une structure fann
    • fann_create_from_file — Consruit une propagation de retour du réseau neuronal depuis un fichier de configuration
    • fann_create_shortcut_array — Crée une propagation de retour standart de réseau neuronal qui n'est pas totalement connecté, et a des connexions raccourcies
    • fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
    • fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected
    • fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes
    • fann_create_standard — Creates a standard fully connected backpropagation neural network
    • fann_create_train_from_callback — Crée la structure de données d'entrainement depuis une fonction fournie par l'utilisateur
    • fann_create_train — Crée une structure vide de données d'entrainement
    • fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters
    • fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters
    • fann_descale_train — Descale input and output data based on previously calculated parameters
    • fann_destroy_train — Détruit les données d'entrainement
    • fann_destroy — Détruit le réseau en entier, et libère proprement toute la mémoire associée
    • fann_duplicate_train_data — Retourne une copie exact des données d'entrainement fann
    • fann_get_activation_function — Returns the activation function
    • fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number
    • fann_get_bias_array — Get the number of bias in each layer in the network
    • fann_get_bit_fail_limit — Returns the bit fail limit used during training
    • fann_get_bit_fail — The number of fail bits
    • fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions
    • fann_get_cascade_activation_functions — Returns the cascade activation functions
    • fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses
    • fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses
    • fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction
    • fann_get_cascade_candidate_limit — Return the candidate limit
    • fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs
    • fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs
    • fann_get_cascade_max_out_epochs — Returns the maximum out epochs
    • fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs
    • fann_get_cascade_min_out_epochs — Returns the minimum out epochs
    • fann_get_cascade_num_candidate_groups — Returns the number of candidate groups
    • fann_get_cascade_num_candidates — Returns the number of candidates used during training
    • fann_get_cascade_output_change_fraction — Returns the cascade output change fraction
    • fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs
    • fann_get_cascade_weight_multiplier — Returns the weight multiplier
    • fann_get_connection_array — Récupère les connexions dans le réseau
    • fann_get_connection_rate — Récupère le taux de connexion lorsque le réseau a été créé
    • fann_get_errno — Retourne le numéro de la dernière erreur
    • fann_get_errstr — Retourne le dernier message d'erreur
    • fann_get_layer_array — Get the number of neurons in each layer in the network
    • fann_get_learning_momentum — Returns the learning momentum
    • fann_get_learning_rate — Returns the learning rate
    • fann_get_MSE — Reads the mean square error from the network
    • fann_get_network_type — Get the type of neural network it was created as
    • fann_get_num_input — Récupère le nombre de neurones entrants
    • fann_get_num_layers — Récupère le nombre de couches du réseau neuronal
    • fann_get_num_output — Récupère le nombre de neurones sortants
    • fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
    • fann_get_quickprop_mu — Retourne le facteur mu
    • fann_get_rprop_decrease_factor — Retourne le facteur d'accroissement utilisé pendant l'entrainement RPROP
    • fann_get_rprop_delta_max — Retourne la taille maximale de l'étape
    • fann_get_rprop_delta_min — Retourne la taille minimale de l'étape
    • fann_get_rprop_delta_zero — Retourne la taille initiale de l'étape
    • fann_get_rprop_increase_factor — Retourne le facteur croissant utilisé pendant l'entrainement RPROP
    • fann_get_sarprop_step_error_shift — Retourne le décalage de l'erreur lors de l'étape sarprop
    • fann_get_sarprop_step_error_threshold_factor — Retourne le facteur de seuil d'erreur lors de l'étape sarprop
    • fann_get_sarprop_temperature — Retourne la température sarprop
    • fann_get_sarprop_weight_decay_shift — Retourne le changement décroissant du poids sarprop
    • fann_get_total_connections — Récupère le nombre total de connexions dans la totalité du réseau
    • fann_get_total_neurons — Récupère le nombre total de neurones dans la totalité du réseau
    • fann_get_train_error_function — Retourne la fonction d'erreur utilisée pendant l'entrainement
    • fann_get_train_stop_function — Retourne la fonction d'arrêt utilisée pendant l'entrainement
    • fann_get_training_algorithm — Retourne l'algorithme d'entrainement
    • fann_init_weights — Initialise les poids en utilisant les algorythme Widrow et Nguyen
    • fann_length_train_data — Retourne le nombre de masques d'entrainement dans les données d'entrainement
    • fann_merge_train_data — Fusionne les données d'entrainement
    • fann_num_input_train_data — Retourne le nombre d'entrées dans chaque masque d'entrainement dans les données d'entrainement
    • fann_num_output_train_data — Retourne le nombre de sortie dans chaque masque d'entrainement dans les données d'entrainement
    • fann_print_error — Affiche le message d'erreur
    • fann_randomize_weights — Donne à chaque connexion un poids aléatoire compris entre min_weight et max_weight
    • fann_read_train_from_file — Lit un fichier contenant les données d'entrainement
    • fann_reset_errno — Réinitialise le numéro de la dernière erreur
    • fann_reset_errstr — Réinitialise le message de la dernière erreur
    • fann_reset_MSE — Réinitialise l'erreur quadratique moyenne du réseau
    • fann_run — Exécute les entrées via le réseau neuronal
    • fann_save_train — Sauvegarde la structure d'entrainement dans un fichier
    • fann_save — Sauvegarde le réseau complet dans un fichier de configuration
    • fann_scale_input_train_data — Met à l'échelle les entrées dans les données d'entrainement à l'intervalle spécifié
    • fann_scale_input — Met à l'échelle les données dans le vecteur d'entrée avant de les donner à ANN, en se basant sur les paramètres précédemment calculés
    • fann_scale_output_train_data — Met à l'échelle les sorties dans les données d'entrainement à l'intervalle spécifié
    • fann_scale_output — Met à l'échelle les données dans le vecteur de sortie avant de les passer à ANN, en se basant sur les paramètres précédemment calculés
    • fann_scale_train_data — Met à l'échelle les entrées et les sorties dans les données d'entrainement à l'intervalle spécifié
    • fann_scale_train — Met à l'échelle les données d'entrée et de sortie en se basant sur les paramètres précédemment calculés
    • fann_set_activation_function_hidden — Défini la fonction d'activation pour toutes les couches cachées
    • fann_set_activation_function_layer — Défini la fonction d'activation pour tous les neurones de la couche spécifiée
    • fann_set_activation_function_output — Défini la fonction d'activation pour la couche d'entrée
    • fann_set_activation_function — Défini la fonction d'activation pour le neurone et la couche spécifiés
    • fann_set_activation_steepness_hidden — Défini la raideur de la pente d'activation pour tous les neurones des couches cachées
    • fann_set_activation_steepness_layer — Défini la pente d'activation pour tous les neurones dans la couche dont le numéro est fourni
    • fann_set_activation_steepness_output — Défini la raideur de la pente d'activation dans la couche de sortie
    • fann_set_activation_steepness — Défini la pente d'activation pour le neurone et le numéro de couche donnés
    • fann_set_bit_fail_limit — Défini le bit sûr limite, utilisé pendant l'entrainement
    • fann_set_callback — Défini la fonction de rappel à utiliser pendant l'entrainement
    • fann_set_cascade_activation_functions — Défini le tableau des fonctions d'activation candidate en cascade
    • fann_set_cascade_activation_steepnesses — Défini le tableaux des raideurs d'activation candidate en cascade
    • fann_set_cascade_candidate_change_fraction — Défini la fraction de modification candidate en cascade
    • fann_set_cascade_candidate_limit — Défini la limite candidate
    • fann_set_cascade_candidate_stagnation_epochs — Défini le nombre d'époques de stagnation candidates en cascade
    • fann_set_cascade_max_cand_epochs — Défini l'époque maximale candidate
    • fann_set_cascade_max_out_epochs — Défini l'époque maximale de sortie
    • fann_set_cascade_min_cand_epochs — Défini l'époque minimale candidate
    • fann_set_cascade_min_out_epochs — Défini l'époque minimale de sortie
    • fann_set_cascade_num_candidate_groups — Défini le nombre de groupes candidats
    • fann_set_cascade_output_change_fraction — Défini la fraction de modification de sortie en cascade
    • fann_set_cascade_output_stagnation_epochs — Défini le nombre d'époques de stagnation en cascade de sortie
    • fann_set_cascade_weight_multiplier — Défini le multiplicateur de poids
    • fann_set_error_log — Défini l'endroit où les erreurs seront historisées
    • fann_set_input_scaling_params — Calcule les paramètres d'échelle d'entrée pour une utilisation future, en se basant sur les données d'entrainement
    • fann_set_learning_momentum — Défini la dynamique d'apprentissage
    • fann_set_learning_rate — Défini le taux d'apprentissage
    • fann_set_output_scaling_params — Calcule les paramètres d'échelle de sortie pour une utilisation future, en se basant sur les données d'entrainement
    • fann_set_quickprop_decay — Défini le facteur décroissant quickprop
    • fann_set_quickprop_mu — Défini le facteur quickprop mu
    • fann_set_rprop_decrease_factor — Défini le facteur de diminution utilisé pendant l'entrainement RPROP
    • fann_set_rprop_delta_max — Défini la taille maximale de l'étape
    • fann_set_rprop_delta_min — Défini la taille minimale de l'étape
    • fann_set_rprop_delta_zero — Défini la taille de l'étape initiale
    • fann_set_rprop_increase_factor — Défini le facteur d'augmentation utilisé pendant l'entrainement RPROP
    • fann_set_sarprop_step_error_shift — Défini le changement de l'étape d'erreur sarprop
    • fann_set_sarprop_step_error_threshold_factor — Défini le facteur de seuil de l'étape d'erreur sarprop
    • fann_set_sarprop_temperature — Défini la températeur sarprop
    • fann_set_sarprop_weight_decay_shift — Défini le changement décroissant du poids de sarprop
    • fann_set_scaling_params — Calcule les paramètres d'échelles d'entrée et de sortie utilisés en se basant sur les données d'entrainement
    • fann_set_train_error_function — Défini la fonction d'erreur utilisée pendant l'entrainement
    • fann_set_train_stop_function — Défini la fonction d'arrêt à utiliser durant l'entrainement
    • fann_set_training_algorithm — Défini l'algorithme d'entrainement
    • fann_set_weight_array — Défini les connexions dans le réseau
    • fann_set_weight — Défini une connexion dans le réseau
    • fann_shuffle_train_data — Mélange les données d'entrainement, et rend aléaloire leurs ordres
    • fann_subset_train_data — Retourne une copie d'un sous-jeu de données d'entrainement
    • fann_test_data — Effectue un test sur un jeu de données d'entrainement et calcule le MSE pour ces données
    • fann_test — Effectue un test avec un jeu d'entrées et un jeu de sorties désirées
    • fann_train_epoch — Effectue un entrainement avec un jeu de données d'entrainement
    • fann_train_on_data — Effectue un entrainement sur un jeu de données complet pour une période de temps
    • fann_train_on_file — Effectue un entrainement sur un jeu complet de données, qui peut être lu depuis un fichier, pour une période de temps
    • fann_train — Effectue un entrainement sur une itération avec un jeu d'entrées, et un jeu de sorties désirées
  • FANNConnection — The FANNConnection class
    • FANNConnection::__construct — Le constructeur de connexion
    • FANNConnection::getFromNeuron — Retourne la position du neurone de départ
    • FANNConnection::getToNeuron — Retourne la position du neurone de fin
    • FANNConnection::getWeight — Retourne le poids de la connexion
    • FANNConnection::setWeight — Défini le poids de la connexion


Introduction

PHP binding for FANN (Fast Artificial Neural Network) Library which implements multilayer artificial neural networks with support for both fully connected and sparsely connected networks. It includes a framework for easy handling of training data sets. It is easy to use, versatile, well documented, and fast.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

PHP >= 5.2.0 and libfann >= 2.1.0


Installation

The FANN PHP extension should work on all Linux systems.

  • FANN Library Installation
  • PECL Installation
  • Manual Installation

FANN Library Installation

Before you start installation make sure that libfann is installed on your system. It's part of the main repository in the most Linux distributions (search for fann). You need a development version.

If it is not installed, you need to install it first. Either download it from the » official site or get it from your distro repository. For example on Fedora:

$ sudo yum install fann-devel
or Ubuntu:

$ sudo apt-get install libfann-dev

If the library is re-installed manually, then all old library file should be removed before re-installing otherwise the old library version could be linked.

PECL Installation

This extension is available on PECL. The installation is very simple. Just run:

$ sudo pecl install fann

Manual Installation

For developers and people interested in the latest changes, you can compile the driver from the latest source code on » Github. Go to Github and click the "Download ZIP" button. Then run:

$ unzip php-fann-master.zip
$ cd php-fann-master
$ phpize
$ ./configure
$ make all
$ sudo make install

Make the following changes to php.ini:

  • Make sure the extension_dir variable is pointing to the directory containing fann.so. The build will display where it is installing the PHP driver with output that looks something like:

Installing '/usr/lib/php/extensions/no-debug-non-zts-20060613/fann.so'
    Make sure that it is the same as the PHP extension directory by runnning:

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/no-debug-non-zts-20060613 =>
                   /usr/lib/php/extensions/no-debug-non-zts-20060613
    If it's not, change the extension_dir in php.ini or move fann.so.

  • To load the extension on PHP startup, add a line:

extension=fann.so


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Training algorithms
FANN_TRAIN_INCREMENTAL (integer)
Standard backpropagation algorithm, where the weights are updated after each training pattern. This means that the weights are updated many times during a single epoch. For this reason some problems, will train very fast with this algorithm, while other more advanced problems will not train very well.
FANN_TRAIN_BATCH (integer)
Standard backpropagation algorithm, where the weights are updated after calculating the mean square error for the whole training set. This means that the weights are only updated once during a epoch. For this reason some problems, will train slower with this algorithm. But since the mean square error is calculated more correctly than in incremental training, some problems will reach a better solutions with this algorithm.
FANN_TRAIN_RPROP (integer)
A more advanced batch training algorithm which achieves good results for many problems. The RPROP training algorithm is adaptive, and does therefore not use the learning_rate. Some other parameters can however be set to change the way the RPROP algorithm works, but it is only recommended for users with insight in how the RPROP training algorithm works. The RPROP training algorithm is described by [Riedmiller and Braun, 1993], but the actual learning algorithm used here is the iRPROP- training algorithm which is described by [Igel and Husken, 2000] which is an variety of the standard RPROP training algorithm.
FANN_TRAIN_QUICKPROP (integer)
A more advanced batch training algorithm which achieves good results for many problems. The quickprop training algorithm uses the learning_rate parameter along with other more advanced parameters, but it is only recommended to change these advanced parameters, for users with insight in how the quickprop training algorithm works. The quickprop training algorithm is described by [Fahlman, 1988].
FANN_TRAIN_SARPROP (integer)
Even more advance training algorithm. Only for version 2.2
Activation functions
FANN_LINEAR (integer)
Linear activation function.
FANN_THRESHOLD (integer)
Threshold activation function.
FANN_THRESHOLD_SYMMETRIC (integer)
Threshold activation function.
FANN_SIGMOID (integer)
Sigmoid activation function.
FANN_SIGMOID_STEPWISE (integer)
Stepwise linear approximation to sigmoid.
FANN_SIGMOID_SYMMETRIC (integer)
Symmetric sigmoid activation function, aka. tanh.
FANN_SIGMOID_SYMMETRIC_STEPWISE (integer)
Stepwise linear approximation to symmetric sigmoid
FANN_GAUSSIAN (integer)
Gaussian activation function.
FANN_GAUSSIAN_SYMMETRIC (integer)
Symmetric gaussian activation function.
FANN_GAUSSIAN_STEPWISE (integer)
Stepwise gaussian activation function.
FANN_ELLIOT (integer)
Fast (sigmoid like) activation function defined by David Elliott.
FANN_ELLIOT_SYMMETRIC (integer)
Fast (symmetric sigmoid like) activation function defined by David Elliott.
FANN_LINEAR_PIECE (integer)
Bounded linear activation function.
FANN_LINEAR_PIECE_SYMMETRIC (integer)
Bounded linear activation function.
FANN_SIN_SYMMETRIC (integer)
Periodical sinus activation function.
FANN_COS_SYMMETRIC (integer)
Periodical cosinus activation function.
FANN_SIN (integer)
Periodical sinus activation function.
FANN_COS (integer)
Periodical cosinus activation function.
Error function used during training
FANN_ERRORFUNC_LINEAR (integer)
Standard linear error function.
FANN_ERRORFUNC_TANH (integer)
Tanh error function, usually better but can require a lower learning rate. This error function agressively targets outputs that differ much from the desired, while not targetting outputs that only differ a little that much. This activation function is not recommended for cascade training and incremental training.
Stop criteria used during training
FANN_STOPFUNC_MSE (integer)
Stop criteria is Mean Square Error (MSE) value.
FANN_STOPFUNC_BIT (integer)
Stop criteria is number of bits that fail. The number of bits means the number of output neurons which differs more than the bit fail limit (see fann_get_bit_fail_limit, fann_set_bit_fail_limit). The bits are counted in all of the training data, so this number can be higher than the number of training data.
Definition of network types used by fann_get_network_type()
FANN_NETTYPE_LAYER (integer)
Each layer only has connections to the next layer.
FANN_NETTYPE_SHORTCUT (integer)
Each layer has connections to all following layers
Errors
FANN_E_NO_ERROR (integer)
No error.
FANN_E_CANT_OPEN_CONFIG_R (integer)
Unable to open configuration file for reading.
FANN_E_CANT_OPEN_CONFIG_W (integer)
Unable to open configuration file for writing.
FANN_E_WRONG_CONFIG_VERSION (integer)
Wrong version of configuration file.
FANN_E_CANT_READ_CONFIG (integer)
Error reading info from configuration file.
FANN_E_CANT_READ_NEURON (integer)
Error reading neuron info from configuration file.
FANN_E_CANT_READ_CONNECTIONS (integer)
Error reading connections from configuration file.
FANN_E_WRONG_NUM_CONNECTIONS (integer)
Number of connections not equal to the number expected.
FANN_E_CANT_OPEN_TD_W (integer)
Unable to open train data file for writing.
FANN_E_CANT_OPEN_TD_R (integer)
Unable to open train data file for reading.
FANN_E_CANT_READ_TD (integer)
Error reading training data from file.
FANN_E_CANT_ALLOCATE_MEM (integer)
Unable to allocate memory.
FANN_E_CANT_TRAIN_ACTIVATION (integer)
Unable to train with the selected activation function.
FANN_E_CANT_USE_ACTIVATION (integer)
Unable to use the selected activation function.
FANN_E_TRAIN_DATA_MISMATCH (integer)
Irreconcilable differences between two struct fann_train_data structures.
FANN_E_CANT_USE_TRAIN_ALG (integer)
Unable to use the selected training algorithm.
FANN_E_TRAIN_DATA_SUBSET (integer)
Trying to take subset which is not within the training set.
FANN_E_INDEX_OUT_OF_BOUND (integer)
Index is out of bound.
FANN_E_SCALE_NOT_PRESENT (integer)
Scaling parameters not present.
FANN_E_INPUT_NO_MATCH (integer)
The number of input neurons in the ann data do not match
FANN_E_OUTPUT_NO_MATCH (integer)
The number of output neurons in the ann and data do not match.


  • « Constantes pré-définies
  • XOR training »
  • PHP Manual
  • FANN
  • Exemples

Exemples

Sommaire

  • XOR training


XOR training

This example shows how to train data for XOR function

Exemple #1 xor.data file

4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1

Exemple #2 Simple train

<?php
$num_input = 2;
$num_output = 1;
$num_layers = 3;
$num_neurons_hidden = 3;
$desired_error = 0.001;
$max_epochs = 500000;
$epochs_between_reports = 1000;

$ann = fann_create_standard($num_layers, $num_input, $num_neurons_hidden, $num_output);

if ($ann) {
    fann_set_activation_function_hidden($ann, FANN_SIGMOID_SYMMETRIC);
    fann_set_activation_function_output($ann, FANN_SIGMOID_SYMMETRIC);

    $filename = dirname(__FILE__) . "/xor.data";
    if (fann_train_on_file($ann, $filename, $max_epochs, $epochs_between_reports, $desired_error))
        fann_save($ann, dirname(__FILE__) . "/xor_float.net");

    fann_destroy($ann);
}
?>

This example shows how to read and run data for XOR function

Exemple #3 Simple test

<?php
$train_file = (dirname(__FILE__) . "/xor_float.net");
if (!is_file($train_file))
    die("The file xor_float.net has not been created! Please run simple_train.php to generate it");

$ann = fann_create_from_file($train_file);
if (!$ann)
    die("ANN could not be created");

$input = array(-1, 1);
$calc_out = fann_run($ann, $input);
printf("xor test (%f,%f) -> %f\n", $input[0], $input[1], $calc_out[0]);
fann_destroy($ann);
?>


Fonctions Fann

Sommaire

  • fann_cascadetrain_on_data — Trains on an entire dataset, for a period of time using the Cascade2 training algorithm
  • fann_cascadetrain_on_file — Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm.
  • fann_clear_scaling_params — Clears scaling parameters
  • fann_copy — Crée une copie d'une structure fann
  • fann_create_from_file — Consruit une propagation de retour du réseau neuronal depuis un fichier de configuration
  • fann_create_shortcut_array — Crée une propagation de retour standart de réseau neuronal qui n'est pas totalement connecté, et a des connexions raccourcies
  • fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
  • fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes
  • fann_create_standard — Creates a standard fully connected backpropagation neural network
  • fann_create_train_from_callback — Crée la structure de données d'entrainement depuis une fonction fournie par l'utilisateur
  • fann_create_train — Crée une structure vide de données d'entrainement
  • fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters
  • fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters
  • fann_descale_train — Descale input and output data based on previously calculated parameters
  • fann_destroy_train — Détruit les données d'entrainement
  • fann_destroy — Détruit le réseau en entier, et libère proprement toute la mémoire associée
  • fann_duplicate_train_data — Retourne une copie exact des données d'entrainement fann
  • fann_get_activation_function — Returns the activation function
  • fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number
  • fann_get_bias_array — Get the number of bias in each layer in the network
  • fann_get_bit_fail_limit — Returns the bit fail limit used during training
  • fann_get_bit_fail — The number of fail bits
  • fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions
  • fann_get_cascade_activation_functions — Returns the cascade activation functions
  • fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses
  • fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses
  • fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction
  • fann_get_cascade_candidate_limit — Return the candidate limit
  • fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs
  • fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs
  • fann_get_cascade_max_out_epochs — Returns the maximum out epochs
  • fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs
  • fann_get_cascade_min_out_epochs — Returns the minimum out epochs
  • fann_get_cascade_num_candidate_groups — Returns the number of candidate groups
  • fann_get_cascade_num_candidates — Returns the number of candidates used during training
  • fann_get_cascade_output_change_fraction — Returns the cascade output change fraction
  • fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs
  • fann_get_cascade_weight_multiplier — Returns the weight multiplier
  • fann_get_connection_array — Récupère les connexions dans le réseau
  • fann_get_connection_rate — Récupère le taux de connexion lorsque le réseau a été créé
  • fann_get_errno — Retourne le numéro de la dernière erreur
  • fann_get_errstr — Retourne le dernier message d'erreur
  • fann_get_layer_array — Get the number of neurons in each layer in the network
  • fann_get_learning_momentum — Returns the learning momentum
  • fann_get_learning_rate — Returns the learning rate
  • fann_get_MSE — Reads the mean square error from the network
  • fann_get_network_type — Get the type of neural network it was created as
  • fann_get_num_input — Récupère le nombre de neurones entrants
  • fann_get_num_layers — Récupère le nombre de couches du réseau neuronal
  • fann_get_num_output — Récupère le nombre de neurones sortants
  • fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
  • fann_get_quickprop_mu — Retourne le facteur mu
  • fann_get_rprop_decrease_factor — Retourne le facteur d'accroissement utilisé pendant l'entrainement RPROP
  • fann_get_rprop_delta_max — Retourne la taille maximale de l'étape
  • fann_get_rprop_delta_min — Retourne la taille minimale de l'étape
  • fann_get_rprop_delta_zero — Retourne la taille initiale de l'étape
  • fann_get_rprop_increase_factor — Retourne le facteur croissant utilisé pendant l'entrainement RPROP
  • fann_get_sarprop_step_error_shift — Retourne le décalage de l'erreur lors de l'étape sarprop
  • fann_get_sarprop_step_error_threshold_factor — Retourne le facteur de seuil d'erreur lors de l'étape sarprop
  • fann_get_sarprop_temperature — Retourne la température sarprop
  • fann_get_sarprop_weight_decay_shift — Retourne le changement décroissant du poids sarprop
  • fann_get_total_connections — Récupère le nombre total de connexions dans la totalité du réseau
  • fann_get_total_neurons — Récupère le nombre total de neurones dans la totalité du réseau
  • fann_get_train_error_function — Retourne la fonction d'erreur utilisée pendant l'entrainement
  • fann_get_train_stop_function — Retourne la fonction d'arrêt utilisée pendant l'entrainement
  • fann_get_training_algorithm — Retourne l'algorithme d'entrainement
  • fann_init_weights — Initialise les poids en utilisant les algorythme Widrow et Nguyen
  • fann_length_train_data — Retourne le nombre de masques d'entrainement dans les données d'entrainement
  • fann_merge_train_data — Fusionne les données d'entrainement
  • fann_num_input_train_data — Retourne le nombre d'entrées dans chaque masque d'entrainement dans les données d'entrainement
  • fann_num_output_train_data — Retourne le nombre de sortie dans chaque masque d'entrainement dans les données d'entrainement
  • fann_print_error — Affiche le message d'erreur
  • fann_randomize_weights — Donne à chaque connexion un poids aléatoire compris entre min_weight et max_weight
  • fann_read_train_from_file — Lit un fichier contenant les données d'entrainement
  • fann_reset_errno — Réinitialise le numéro de la dernière erreur
  • fann_reset_errstr — Réinitialise le message de la dernière erreur
  • fann_reset_MSE — Réinitialise l'erreur quadratique moyenne du réseau
  • fann_run — Exécute les entrées via le réseau neuronal
  • fann_save_train — Sauvegarde la structure d'entrainement dans un fichier
  • fann_save — Sauvegarde le réseau complet dans un fichier de configuration
  • fann_scale_input_train_data — Met à l'échelle les entrées dans les données d'entrainement à l'intervalle spécifié
  • fann_scale_input — Met à l'échelle les données dans le vecteur d'entrée avant de les donner à ANN, en se basant sur les paramètres précédemment calculés
  • fann_scale_output_train_data — Met à l'échelle les sorties dans les données d'entrainement à l'intervalle spécifié
  • fann_scale_output — Met à l'échelle les données dans le vecteur de sortie avant de les passer à ANN, en se basant sur les paramètres précédemment calculés
  • fann_scale_train_data — Met à l'échelle les entrées et les sorties dans les données d'entrainement à l'intervalle spécifié
  • fann_scale_train — Met à l'échelle les données d'entrée et de sortie en se basant sur les paramètres précédemment calculés
  • fann_set_activation_function_hidden — Défini la fonction d'activation pour toutes les couches cachées
  • fann_set_activation_function_layer — Défini la fonction d'activation pour tous les neurones de la couche spécifiée
  • fann_set_activation_function_output — Défini la fonction d'activation pour la couche d'entrée
  • fann_set_activation_function — Défini la fonction d'activation pour le neurone et la couche spécifiés
  • fann_set_activation_steepness_hidden — Défini la raideur de la pente d'activation pour tous les neurones des couches cachées
  • fann_set_activation_steepness_layer — Défini la pente d'activation pour tous les neurones dans la couche dont le numéro est fourni
  • fann_set_activation_steepness_output — Défini la raideur de la pente d'activation dans la couche de sortie
  • fann_set_activation_steepness — Défini la pente d'activation pour le neurone et le numéro de couche donnés
  • fann_set_bit_fail_limit — Défini le bit sûr limite, utilisé pendant l'entrainement
  • fann_set_callback — Défini la fonction de rappel à utiliser pendant l'entrainement
  • fann_set_cascade_activation_functions — Défini le tableau des fonctions d'activation candidate en cascade
  • fann_set_cascade_activation_steepnesses — Défini le tableaux des raideurs d'activation candidate en cascade
  • fann_set_cascade_candidate_change_fraction — Défini la fraction de modification candidate en cascade
  • fann_set_cascade_candidate_limit — Défini la limite candidate
  • fann_set_cascade_candidate_stagnation_epochs — Défini le nombre d'époques de stagnation candidates en cascade
  • fann_set_cascade_max_cand_epochs — Défini l'époque maximale candidate
  • fann_set_cascade_max_out_epochs — Défini l'époque maximale de sortie
  • fann_set_cascade_min_cand_epochs — Défini l'époque minimale candidate
  • fann_set_cascade_min_out_epochs — Défini l'époque minimale de sortie
  • fann_set_cascade_num_candidate_groups — Défini le nombre de groupes candidats
  • fann_set_cascade_output_change_fraction — Défini la fraction de modification de sortie en cascade
  • fann_set_cascade_output_stagnation_epochs — Défini le nombre d'époques de stagnation en cascade de sortie
  • fann_set_cascade_weight_multiplier — Défini le multiplicateur de poids
  • fann_set_error_log — Défini l'endroit où les erreurs seront historisées
  • fann_set_input_scaling_params — Calcule les paramètres d'échelle d'entrée pour une utilisation future, en se basant sur les données d'entrainement
  • fann_set_learning_momentum — Défini la dynamique d'apprentissage
  • fann_set_learning_rate — Défini le taux d'apprentissage
  • fann_set_output_scaling_params — Calcule les paramètres d'échelle de sortie pour une utilisation future, en se basant sur les données d'entrainement
  • fann_set_quickprop_decay — Défini le facteur décroissant quickprop
  • fann_set_quickprop_mu — Défini le facteur quickprop mu
  • fann_set_rprop_decrease_factor — Défini le facteur de diminution utilisé pendant l'entrainement RPROP
  • fann_set_rprop_delta_max — Défini la taille maximale de l'étape
  • fann_set_rprop_delta_min — Défini la taille minimale de l'étape
  • fann_set_rprop_delta_zero — Défini la taille de l'étape initiale
  • fann_set_rprop_increase_factor — Défini le facteur d'augmentation utilisé pendant l'entrainement RPROP
  • fann_set_sarprop_step_error_shift — Défini le changement de l'étape d'erreur sarprop
  • fann_set_sarprop_step_error_threshold_factor — Défini le facteur de seuil de l'étape d'erreur sarprop
  • fann_set_sarprop_temperature — Défini la températeur sarprop
  • fann_set_sarprop_weight_decay_shift — Défini le changement décroissant du poids de sarprop
  • fann_set_scaling_params — Calcule les paramètres d'échelles d'entrée et de sortie utilisés en se basant sur les données d'entrainement
  • fann_set_train_error_function — Défini la fonction d'erreur utilisée pendant l'entrainement
  • fann_set_train_stop_function — Défini la fonction d'arrêt à utiliser durant l'entrainement
  • fann_set_training_algorithm — Défini l'algorithme d'entrainement
  • fann_set_weight_array — Défini les connexions dans le réseau
  • fann_set_weight — Défini une connexion dans le réseau
  • fann_shuffle_train_data — Mélange les données d'entrainement, et rend aléaloire leurs ordres
  • fann_subset_train_data — Retourne une copie d'un sous-jeu de données d'entrainement
  • fann_test_data — Effectue un test sur un jeu de données d'entrainement et calcule le MSE pour ces données
  • fann_test — Effectue un test avec un jeu d'entrées et un jeu de sorties désirées
  • fann_train_epoch — Effectue un entrainement avec un jeu de données d'entrainement
  • fann_train_on_data — Effectue un entrainement sur un jeu de données complet pour une période de temps
  • fann_train_on_file — Effectue un entrainement sur un jeu complet de données, qui peut être lu depuis un fichier, pour une période de temps
  • fann_train — Effectue un entrainement sur une itération avec un jeu d'entrées, et un jeu de sorties désirées


Trains on an entire dataset, for a period of time using the Cascade2 training algorithm

  • « Fonctions Fann
  • fann_cascadetrain_on_file »
  • PHP Manual
  • Fonctions Fann
  • Trains on an entire dataset, for a period of time using the Cascade2 training algorithm

fann_cascadetrain_on_data

(PECL fann >= 1.0.0)

fann_cascadetrain_on_data — Trains on an entire dataset, for a period of time using the Cascade2 training algorithm

Description

bool fann_cascadetrain_on_data ( resource $ann , resource $data , int $max_neurons , int $neurons_between_reports , float $desired_error )

The cascade output change fraction is a number between 0 and 1 determining how large a fraction the fann_get_MSE() value should change within fann_get_cascade_output_stagnation_epochs() during training of the output connections, in order for the training not to stagnate. If the training stagnates, the training of the output connections will be ended and new candidates will be prepared.

This training uses the parameters set using the fann_set_cascade_..., but it also uses another training algorithm as it’s internal training algorithm. This algorithm can be set to either FANN_TRAIN_RPROP or FANN_TRAIN_QUICKPROP by fann_set_training_algorithm(), and the parameters set for these training algorithms will also affect the cascade training.

Liste de paramètres

ann

Ressource de réseau de neurones.

data

Ressource de données d'entrainement du réseau de neurones.

max_neurons

The maximum number of neurons to be added to neural network.

neurons_between_reports

The number of neurons between printing a status report. A value of zero means no reports should be printed.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on which stop function is chosen by fann_set_train_stop_function()

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_train_on_data() - Effectue un entrainement sur un jeu de données complet pour une période de temps
  • fann_cascadetrain_on_file() - Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm.


Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm.

  • « fann_cascadetrain_on_data
  • fann_clear_scaling_params »
  • PHP Manual
  • Fonctions Fann
  • Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm.

fann_cascadetrain_on_file

(PECL fann >= 1.0.0)

fann_cascadetrain_on_file — Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm.

Description

bool fann_cascadetrain_on_file ( resource $ann , string $filename , int $max_neurons , int $neurons_between_reports , float $desired_error )

Does the same as fann_cascadetrain_on_data(), but reads the training data directly from a file.

Liste de paramètres

ann

Ressource de réseau de neurones.

filename

The maximum number of neurons to be added to neural network

max_neurons

The number of neurons between printing a status report to stdout. A value of zero means no reports should be printed.

neurons_between_reports

The number of neurons between printing a status report. A value of zero means no reports should be printed.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on which stop function is chosen by fann_set_train_stop_function().

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_train_on_data() - Effectue un entrainement sur un jeu de données complet pour une période de temps
  • fann_cascadetrain_on_data() - Trains on an entire dataset, for a period of time using the Cascade2 training algorithm


Clears scaling parameters

  • « fann_cascadetrain_on_file
  • fann_copy »
  • PHP Manual
  • Fonctions Fann
  • Clears scaling parameters

fann_clear_scaling_params

(PECL fann >= 1.0.0)

fann_clear_scaling_params — Clears scaling parameters

Description

bool fann_clear_scaling_params ( resource $ann )

Clears scaling parameters.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Crée une copie d'une structure fann

  • « fann_clear_scaling_params
  • fann_create_from_file »
  • PHP Manual
  • Fonctions Fann
  • Crée une copie d'une structure fann

fann_copy

(PECL fann >= 1.0.0)

fann_copy — Crée une copie d'une structure fann

Description

resource fann_copy ( resource $ann )

Crée une copie d'une structure fann.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Retourne une copie du réseau neuronal en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • fann_test() - Effectue un test avec un jeu d'entrées et un jeu de sorties désirées


Consruit une propagation de retour du réseau neuronal depuis un fichier de configuration

  • « fann_copy
  • fann_create_shortcut_array »
  • PHP Manual
  • Fonctions Fann
  • Consruit une propagation de retour du réseau neuronal depuis un fichier de configuration

fann_create_from_file

(PECL fann >= 1.0.0)

fann_create_from_file — Consruit une propagation de retour du réseau neuronal depuis un fichier de configuration

Description

resource fann_create_from_file ( string $configuration_file )

Consruit une propagation de retour du réseau neuronal depuis un fichier de configuration, qui a été sauvegardée par la fonction fann_save().

Liste de paramètres

configuration_file

Le chemin vers le fichier de configuration.

Valeurs de retour

Retourne une ressource de réseau de neurones en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • fann_save() - Sauvegarde le réseau complet dans un fichier de configuration


Crée une propagation de retour standart de réseau neuronal qui n'est pas totalement connecté, et a des connexions raccourcies

  • « fann_create_from_file
  • fann_create_shortcut »
  • PHP Manual
  • Fonctions Fann
  • Crée une propagation de retour standart de réseau neuronal qui n'est pas totalement connecté, et a des connexions raccourcies

fann_create_shortcut_array

(PECL fann >= 1.0.0)

fann_create_shortcut_array — Crée une propagation de retour standart de réseau neuronal qui n'est pas totalement connecté, et a des connexions raccourcies

Description

resource fann_create_shortcut_array ( int $num_layers , array $layers )

Crée une propagation de retour standart de réseau neuronal qui n'est pas totalement connecté, et a des connexions raccourcies en utilisant un tableau de tailles de couches.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

num_layers

Le nombre total de couches, incluant les couches d'entrée et de sortie.

layers

Un tableau de tailles de couches.

Valeurs de retour

Retourne une ressource représentant le réseau neurinal en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network


Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

  • « fann_create_shortcut_array
  • fann_create_sparse_array »
  • PHP Manual
  • Fonctions Fann
  • Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

fann_create_shortcut

(PECL fann >= 1.0.0)

fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

Description

reference fann_create_shortcut ( int $num_layers , int $num_neurons1 , int $num_neurons2 [, int $... ] )

Creates a standard backpropagation neural network, which is not fully connected and which also has shortcut connections.

Shortcut connections are connections that skip layers. A fully connected network with shortcut connections, is a network where all neurons are connected to all neurons in later layers. Including direct connections from the input layer to the output layer.

Liste de paramètres

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

...

Number of neurons in other layers.

Valeurs de retour

Returns a neural network resource on success, or FALSE on error.

Voir aussi

  • fann_create_shortcut_array() - Crée une propagation de retour standart de réseau neuronal qui n'est pas totalement connecté, et a des connexions raccourcies
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network


Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

  • « fann_create_shortcut
  • fann_create_sparse »
  • PHP Manual
  • Fonctions Fann
  • Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

fann_create_sparse_array

(PECL fann >= 1.0.0)

fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

Description

ReturnType fann_create_sparse_array ( float $connection_rate , int $num_layers , array $layers )

Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes.

Liste de paramètres

connection_rate

The connection rate controls how many connections there will be in the network. If the connection rate is set to 1, the network will be fully connected, but if it is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield the same result as fann_create_standard().

num_layers

The total number of layers including the input and the output layer.

layers

An array of layer sizes.

Valeurs de retour

Returns a neural network resource on success, or FALSE on error.

Voir aussi

  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard backpropagation neural network, which is not fully connected

  • « fann_create_sparse_array
  • fann_create_standard_array »
  • PHP Manual
  • Fonctions Fann
  • Creates a standard backpropagation neural network, which is not fully connected

fann_create_sparse

(PECL fann >= 1.0.0)

fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected

Description

ReturnType fann_create_sparse ( float $connection_rate , int $num_layers , int $num_neurons1 , int $num_neurons2 [, int $... ] )

Creates a standard backpropagation neural network, which is not fully connected.

Liste de paramètres

connection_rate

The connection rate controls how many connections there will be in the network. If the connection rate is set to 1, the network will be fully connected, but if it is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield the same result as fann_create_standard().

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

...

Number of neurons in other layers.

Valeurs de retour

Returns a neural network resource on success, or FALSE on error.

Voir aussi

  • fann_create_sparse_array() - Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard fully connected backpropagation neural network using an array of layer sizes

  • « fann_create_sparse
  • fann_create_standard »
  • PHP Manual
  • Fonctions Fann
  • Creates a standard fully connected backpropagation neural network using an array of layer sizes

fann_create_standard_array

(PECL fann >= 1.0.0)

fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes

Description

resource fann_create_standard_array ( int $num_layers , array $layers )

Creates a standard fully connected backpropagation neural network.

There will be a bias neuron in each layer (except the output layer), and this bias neuron will be connected to all neurons in the next layer. When running the network, the bias nodes always emits 1.

To destroy a neural network use the fann_destroy() function.

Liste de paramètres

num_layers

The total number of layers including the input and the output layer.

layers

An array of layer sizes.

Valeurs de retour

Returns a neural network resource on success, or FALSE on error.

Voir aussi

  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard fully connected backpropagation neural network

  • « fann_create_standard_array
  • fann_create_train_from_callback »
  • PHP Manual
  • Fonctions Fann
  • Creates a standard fully connected backpropagation neural network

fann_create_standard

(PECL fann >= 1.0.0)

fann_create_standard — Creates a standard fully connected backpropagation neural network

Description

resource fann_create_standard ( int $num_layers , int $num_neurons1 , int $num_neurons2 [, int $... ] )

Creates a standard fully connected backpropagation neural network.

There will be a bias neuron in each layer (except the output layer), and this bias neuron will be connected to all neurons in the next layer. When running the network, the bias nodes always emits 1.

To destroy a neural network use the fann_destroy() function.

Liste de paramètres

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

...

Number of neurons in other layers.

Valeurs de retour

Returns a neural network resource on success, or FALSE on error.

Voir aussi

  • fann_create_standard_array() - Creates a standard fully connected backpropagation neural network using an array of layer sizes
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Crée la structure de données d'entrainement depuis une fonction fournie par l'utilisateur

  • « fann_create_standard
  • fann_create_train »
  • PHP Manual
  • Fonctions Fann
  • Crée la structure de données d'entrainement depuis une fonction fournie par l'utilisateur

fann_create_train_from_callback

(PECL fann >= 1.0.0)

fann_create_train_from_callback — Crée la structure de données d'entrainement depuis une fonction fournie par l'utilisateur

Description

resource fann_create_train_from_callback ( int $num_data , int $num_input , int $num_output , callable $user_function )

Crée la structure de données d'entrainement depuis une fonction fournie par l'utilisateur. Sachant que les données d'entrainement sont numérotées (donnée 1, donnée 2...), l'utilisateur doit écrire une fonction qui reçoit le numéro du jeu de données d'entrainement (d'entrée et de sortie) et elle doit retourner le jeu.

Liste de paramètres

num_data

Le nombre de données d'entrainement

num_input

Le nombre d'entrées par données d'entrainement

num_output

Le nombre de sorties par données d'entrainement

user_function

La fonction fournie par l'utilisateur doit avoir les paramètres suivants :

  • num - Le numéro du jeu de données d'entrainement
  • num_input - Le nombre d'entrées par données d'entrainement
  • num_output - Le nombre de sorties par données d'entrainement

La fonction doit retourner un tableau associatif avec les clés input et output et deux valeurs de tableaux pour les entrées et les sorties.

Valeurs de retour

Retourne une ressource de données d'entrainement en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fann_create_train_from_callback()

<?php
function create_train_callback($num_data, $num_input, $num_output) {
    return array(
        "input" => array_fill(0, $num_input, 1),
        "output" => array_fill(0, $num_output, 1),
    );
}

$num_data = 3;
$num_input = 2;
$num_output = 1;
$train_data = fann_create_train_from_callback($num_data, $num_input, $num_output, "create_train_callback");
if ($train_data) {
    // Do something with $train_data
}
?>

Voir aussi

  • fann_read_train_from_file() - Lit un fichier contenant les données d'entrainement
  • fann_train_on_data() - Effectue un entrainement sur un jeu de données complet pour une période de temps
  • fann_destroy_train() - Détruit les données d'entrainement
  • fann_save_train() - Sauvegarde la structure d'entrainement dans un fichier


Crée une structure vide de données d'entrainement

  • « fann_create_train_from_callback
  • fann_descale_input »
  • PHP Manual
  • Fonctions Fann
  • Crée une structure vide de données d'entrainement

fann_create_train

(PECL fann >= 1.0.0)

fann_create_train — Crée une structure vide de données d'entrainement

Description

resource fann_create_train ( int $num_data , int $num_input , int $num_output )

Crée une structure vide de données d'entrainement.

Liste de paramètres

num_data

Le nombre de données d'entrainement

num_input

Le nombre d'entrées par données d'entrainement

num_output

Le nombre de sorties par données d'entrainement

Valeurs de retour

Retourne une ressource de données d'entrainement en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • fann_read_train_from_file() - Lit un fichier contenant les données d'entrainement
  • fann_train_on_data() - Effectue un entrainement sur un jeu de données complet pour une période de temps
  • fann_destroy_train() - Détruit les données d'entrainement
  • fann_save_train() - Sauvegarde la structure d'entrainement dans un fichier


Scale data in input vector after get it from ann based on previously calculated parameters

  • « fann_create_train
  • fann_descale_output »
  • PHP Manual
  • Fonctions Fann
  • Scale data in input vector after get it from ann based on previously calculated parameters

fann_descale_input

(PECL fann >= 1.0.0)

fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters

Description

bool fann_descale_input ( resource $ann , array $input_vector )

Scale data in input vector after get it from ann based on previously calculated parameters.

Liste de paramètres

ann

Ressource de réseau de neurones.

input_vector

Input vector that will be descaled

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_scale_input() - Met à l'échelle les données dans le vecteur d'entrée avant de les donner à ANN, en se basant sur les paramètres précédemment calculés
  • fann_descale_output() - Scale data in output vector after get it from ann based on previously calculated parameters


Scale data in output vector after get it from ann based on previously calculated parameters

  • « fann_descale_input
  • fann_descale_train »
  • PHP Manual
  • Fonctions Fann
  • Scale data in output vector after get it from ann based on previously calculated parameters

fann_descale_output

(PECL fann >= 1.0.0)

fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters

Description

bool fann_descale_output ( resource $ann , array $output_vector )

Scale data in output vector after get it from ann based on previously calculated parameters.

Liste de paramètres

ann

Ressource de réseau de neurones.

output_vector

Output vector that will be descaled

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_scale_output() - Met à l'échelle les données dans le vecteur de sortie avant de les passer à ANN, en se basant sur les paramètres précédemment calculés
  • fann_descale_input() - Scale data in input vector after get it from ann based on previously calculated parameters


Descale input and output data based on previously calculated parameters

  • « fann_descale_output
  • fann_destroy_train »
  • PHP Manual
  • Fonctions Fann
  • Descale input and output data based on previously calculated parameters

fann_descale_train

(PECL fann >= 1.0.0)

fann_descale_train — Descale input and output data based on previously calculated parameters

Description

bool fann_descale_train ( resource $ann , resource $train_data )

Descale input and output data based on previously calculated parameters.

Liste de paramètres

ann

Ressource de réseau de neurones.

train_data

Ressource de données d'entrainement du réseau de neurones.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_scale_train() - Met à l'échelle les données d'entrée et de sortie en se basant sur les paramètres précédemment calculés
  • fann_set_scaling_params() - Calcule les paramètres d'échelles d'entrée et de sortie utilisés en se basant sur les données d'entrainement


Détruit les données d'entrainement

  • « fann_descale_train
  • fann_destroy »
  • PHP Manual
  • Fonctions Fann
  • Détruit les données d'entrainement

fann_destroy_train

(PECL fann >= 1.0.0)

fann_destroy_train — Détruit les données d'entrainement

Description

bool fann_destroy_train ( resource $train_data )

Détruit les données d'entrainement.

Liste de paramètres

train_data

Ressource de données d'entrainement du réseau de neurones.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Détruit le réseau en entier, et libère proprement toute la mémoire associée

  • « fann_destroy_train
  • fann_duplicate_train_data »
  • PHP Manual
  • Fonctions Fann
  • Détruit le réseau en entier, et libère proprement toute la mémoire associée

fann_destroy

(PECL fann >= 1.0.0)

fann_destroy — Détruit le réseau en entier, et libère proprement toute la mémoire associée

Description

bool fann_destroy ( resource $ann )

Détruit le réseau en entier, et libère proprement toute la mémoire associée.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Retourne une copie exact des données d'entrainement fann

  • « fann_destroy
  • fann_get_activation_function »
  • PHP Manual
  • Fonctions Fann
  • Retourne une copie exact des données d'entrainement fann

fann_duplicate_train_data

(PECL fann >= 1.0.0)

fann_duplicate_train_data — Retourne une copie exact des données d'entrainement fann

Description

resource fann_duplicate_train_data ( resource $data )

Retourne une copie exact des données d'entrainement fann, sous la forme d'une ressource.

Liste de paramètres

data

Ressource de données d'entrainement du réseau de neurones.

Valeurs de retour

Retourne une ressource de données d'entrainement en cas de succès, ou FALSE si une erreur survient.


Returns the activation function

  • « fann_duplicate_train_data
  • fann_get_activation_steepness »
  • PHP Manual
  • Fonctions Fann
  • Returns the activation function

fann_get_activation_function

(PECL fann >= 1.0.0)

fann_get_activation_function — Returns the activation function

Description

int fann_get_activation_function ( resource $ann , int $layer , int $neuron )

Get the activation function for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to get activation functions for the neurons in the input layer.

The return value is one of the activation functions constants.

Liste de paramètres

ann

Ressource de réseau de neurones.

layer

Layer number.

neuron

Neuron number.

Valeurs de retour

Learning functions constant or -1 if the neuron is not defined in the neural network, or FALSE on error.

Voir aussi

  • fann_set_activation_function_layer() - Défini la fonction d'activation pour tous les neurones de la couche spécifiée
  • fann_set_activation_function_hidden() - Défini la fonction d'activation pour toutes les couches cachées
  • fann_set_activation_function_output() - Défini la fonction d'activation pour la couche d'entrée
  • fann_set_activation_steepness() - Défini la pente d'activation pour le neurone et le numéro de couche donnés
  • fann_set_activation_function() - Défini la fonction d'activation pour le neurone et la couche spécifiés


Returns the activation steepness for supplied neuron and layer number

  • « fann_get_activation_function
  • fann_get_bias_array »
  • PHP Manual
  • Fonctions Fann
  • Returns the activation steepness for supplied neuron and layer number

fann_get_activation_steepness

(PECL fann >= 1.0.0)

fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number

Description

float fann_get_activation_steepness ( resource $ann , int $layer , int $neuron )

Get the activation steepness for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to get activation steepness for the neurons in the input layer.

The steepness of an activation function says something about how fast the activation function goes from the minimum to the maximum. A high value for the activation function will also give a more agressive training.

When training neural networks where the output values should be at the extremes (usually 0 and 1, depending on the activation function), a steep activation function can be used (e.g. 1.0).

The default activation steepness is 0.5.

Liste de paramètres

ann

Ressource de réseau de neurones.

layer

Layer number

neuron

Neuron number

Valeurs de retour

The activation steepness for the neuron or -1 if the neuron is not defined in the neural network, or FALSE on error.

Voir aussi

  • fann_set_activation_function() - Défini la fonction d'activation pour le neurone et la couche spécifiés
  • fann_set_activation_steepness_layer() - Défini la pente d'activation pour tous les neurones dans la couche dont le numéro est fourni
  • fann_set_activation_steepness_hidden() - Défini la raideur de la pente d'activation pour tous les neurones des couches cachées
  • fann_set_activation_steepness_output() - Défini la raideur de la pente d'activation dans la couche de sortie
  • fann_set_activation_steepness() - Défini la pente d'activation pour le neurone et le numéro de couche donnés


Get the number of bias in each layer in the network

  • « fann_get_activation_steepness
  • fann_get_bit_fail_limit »
  • PHP Manual
  • Fonctions Fann
  • Get the number of bias in each layer in the network

fann_get_bias_array

(PECL fann >= 1.0.0)

fann_get_bias_array — Get the number of bias in each layer in the network

Description

array fann_get_bias_array ( resource $ann )

Get the number of bias in each layer in the network.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

An array of numbers of bias in each layer


Returns the bit fail limit used during training

  • « fann_get_bias_array
  • fann_get_bit_fail »
  • PHP Manual
  • Fonctions Fann
  • Returns the bit fail limit used during training

fann_get_bit_fail_limit

(PECL fann >= 1.0.0)

fann_get_bit_fail_limit — Returns the bit fail limit used during training

Description

float fann_get_bit_fail_limit ( resource $ann )

Returns the bit fail limit used during training.

The bit fail limit is used during training where the stop function is set to FANN_STOPFUNC_BIT.

The limit is the maximum accepted difference between the desired output and the actual output during training. Each output that diverges more than this limit is counted as an error bit. This difference is divided by two when dealing with symmetric activation functions, so that symmetric and not symmetric activation functions can use the same limit.

The default bit fail limit is 0.35.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The bit fail limit, or FALSE on error.

Voir aussi

  • fann_set_bit_fail_limit() - Défini le bit sûr limite, utilisé pendant l'entrainement


The number of fail bits

  • « fann_get_bit_fail_limit
  • fann_get_cascade_activation_functions_count »
  • PHP Manual
  • Fonctions Fann
  • The number of fail bits

fann_get_bit_fail

(PECL fann >= 1.0.0)

fann_get_bit_fail — The number of fail bits

Description

int fann_get_bit_fail ( resource $ann )

The number of fail bits; means the number of output neurons which differ more than the bit fail limit (see fann_get_bit_fail_limit(), fann_set_bit_fail_limit()). The bits are counted in all of the training data, so this number can be higher than the number of training data.

This value is reset by fann_reset_MSE() and updated by all the same functions which also updates the MSE value (e.g. fann_test_data(), fann_train_epoch())

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The number of bits fail, or FALSE on error.

Voir aussi

  • fann_get_MSE() - Reads the mean square error from the network
  • fann_reset_MSE() - Réinitialise l'erreur quadratique moyenne du réseau
  • fann_test_data() - Effectue un test sur un jeu de données d'entrainement et calcule le MSE pour ces données
  • fann_train_epoch() - Effectue un entrainement avec un jeu de données d'entrainement
  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training
  • fann_set_bit_fail_limit() - Défini le bit sûr limite, utilisé pendant l'entrainement


Returns the number of cascade activation functions

  • « fann_get_bit_fail
  • fann_get_cascade_activation_functions »
  • PHP Manual
  • Fonctions Fann
  • Returns the number of cascade activation functions

fann_get_cascade_activation_functions_count

(PECL fann >= 1.0.0)

fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions

Description

int fann_get_cascade_activation_functions_count ( resource $ann )

The number of activation functions in the fann_get_cascade_activation_functions() array.

The default number of activation functions is 6.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The number of cascade activation functions, or FALSE on error.

Voir aussi

  • fann_get_cascade_activation_functions() - Returns the cascade activation functions
  • fann_set_cascade_activation_functions() - Défini le tableau des fonctions d'activation candidate en cascade


Returns the cascade activation functions

  • « fann_get_cascade_activation_functions_count
  • fann_get_cascade_activation_steepnesses_count »
  • PHP Manual
  • Fonctions Fann
  • Returns the cascade activation functions

fann_get_cascade_activation_functions

(PECL fann >= 1.0.0)

fann_get_cascade_activation_functions — Returns the cascade activation functions

Description

array fann_get_cascade_activation_functions ( resource $ann )

The cascade activation functions array is an array of the different activation functions used by the candidates

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

The default activation functions are FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN, FANN_GAUSSIAN_SYMMETRIC, FANN_ELLIOT, FANN_ELLIOT_SYMMETRIC.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The cascade activation functions, or FALSE on error.

Voir aussi

  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_set_cascade_activation_functions() - Défini le tableau des fonctions d'activation candidate en cascade


The number of activation steepnesses

  • « fann_get_cascade_activation_functions
  • fann_get_cascade_activation_steepnesses »
  • PHP Manual
  • Fonctions Fann
  • The number of activation steepnesses

fann_get_cascade_activation_steepnesses_count

(PECL fann >= 1.0.0)

fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses

Description

int fann_get_cascade_activation_steepnesses_count ( resource $ann )

The number of activation steepnesses in the fann_get_cascade_activation_functions() array.

The default number of activation steepnesses is 4.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The number of activation steepnesses, or FALSE on error.

Voir aussi

  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_set_cascade_activation_functions() - Défini le tableau des fonctions d'activation candidate en cascade


Returns the cascade activation steepnesses

  • « fann_get_cascade_activation_steepnesses_count
  • fann_get_cascade_candidate_change_fraction »
  • PHP Manual
  • Fonctions Fann
  • Returns the cascade activation steepnesses

fann_get_cascade_activation_steepnesses

(PECL fann >= 1.0.0)

fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses

Description

array fann_get_cascade_activation_steepnesses ( resource $ann )

The cascade activation steepnesses array is an array of the different activation functions used by the candidates.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

The default activation steepnesses are {0.25, 0.50, 0.75, 1.00}.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The cascade activation steepnesses, or FALSE on error.

Voir aussi

  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses
  • fann_set_cascade_activation_steepnesses() - Défini le tableaux des raideurs d'activation candidate en cascade


Returns the cascade candidate change fraction

  • « fann_get_cascade_activation_steepnesses
  • fann_get_cascade_candidate_limit »
  • PHP Manual
  • Fonctions Fann
  • Returns the cascade candidate change fraction

fann_get_cascade_candidate_change_fraction

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction

Description

float fann_get_cascade_candidate_change_fraction ( resource $ann )

The cascade candidate change fraction is a number between 0 and 1 determining how large a fraction the fann_get_MSE() value should change within fann_get_cascade_candidate_stagnation_epochs() during training of the candidate neurons, in order for the training not to stagnate. If the training stagnates, the training of the candidate neurons will be ended and the best candidate will be selected.

It means that if the MSE does not change by a fraction of fann_get_cascade_candidate_change_fraction() during a period of fann_get_cascade_candidate_stagnation_epochs(), the training of the candidate neurons is stopped because the training has stagnated.

If the cascade candidate change fraction is low, the candidate neurons will be trained more and if the fraction is high they will be trained less.

The default cascade candidate change fraction is 0.01, which is equalent to a 1% change in MSE.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The cascade candidate change fraction, or FALSE on error.

Voir aussi

  • fann_set_cascade_candidate_change_fraction() - Défini la fraction de modification candidate en cascade
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_cascade_candidate_stagnation_epochs() - Returns the number of cascade candidate stagnation epochs


Return the candidate limit

  • « fann_get_cascade_candidate_change_fraction
  • fann_get_cascade_candidate_stagnation_epochs »
  • PHP Manual
  • Fonctions Fann
  • Return the candidate limit

fann_get_cascade_candidate_limit

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_limit — Return the candidate limit

Description

float fann_get_cascade_candidate_limit ( resource $ann )

The candidate limit is a limit for how much the candidate neuron may be trained. The limit is a limit on the proportion between the MSE and candidate score.

Set this to a lower value to avoid overfitting and to a higher if overfitting is not a problem.

The default candidate limit is 1000.0.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The candidate limit, or FALSE on error.

Voir aussi

  • fann_set_cascade_candidate_limit() - Défini la limite candidate


Returns the number of cascade candidate stagnation epochs

  • « fann_get_cascade_candidate_limit
  • fann_get_cascade_max_cand_epochs »
  • PHP Manual
  • Fonctions Fann
  • Returns the number of cascade candidate stagnation epochs

fann_get_cascade_candidate_stagnation_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs

Description

float fann_get_cascade_candidate_stagnation_epochs ( resource $ann )

The number of cascade candidate stagnation epochs determines the number of epochs training is allowed to continue without changing the MSE by a fraction of fann_get_cascade_candidate_change_fraction().

See more info about this parameter in fann_get_cascade_candidate_change_fraction().

The default number of cascade candidate stagnation epochs is 12.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The number of cascade candidate stagnation epochs, or FALSE on error.

Voir aussi

  • fann_set_cascade_candidate_stagnation_epochs() - Défini le nombre d'époques de stagnation candidates en cascade
  • fann_get_cascade_candidate_change_fraction() - Returns the cascade candidate change fraction


Returns the maximum candidate epochs

  • « fann_get_cascade_candidate_stagnation_epochs
  • fann_get_cascade_max_out_epochs »
  • PHP Manual
  • Fonctions Fann
  • Returns the maximum candidate epochs

fann_get_cascade_max_cand_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs

Description

int fann_get_cascade_max_cand_epochs ( resource $ann )

The maximum candidate epochs determines the maximum number of epochs the input connections to the candidates may be trained before adding a new candidate neuron.

The default max candidate epochs is 150.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The maximum candidate epochs, or FALSE on error.

Voir aussi

  • fann_set_cascade_max_cand_epochs() - Défini l'époque maximale candidate


Returns the maximum out epochs

  • « fann_get_cascade_max_cand_epochs
  • fann_get_cascade_min_cand_epochs »
  • PHP Manual
  • Fonctions Fann
  • Returns the maximum out epochs

fann_get_cascade_max_out_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_max_out_epochs — Returns the maximum out epochs

Description

int fann_get_cascade_max_out_epochs ( resource $ann )

The maximum out epochs determines the maximum number of epochs the output connections may be trained after adding a new candidate neuron.

The default max out epochs is 150.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The maximum out epochs, or FALSE on error.

Voir aussi

  • fann_set_cascade_max_out_epochs() - Défini l'époque maximale de sortie


Returns the minimum candidate epochs

  • « fann_get_cascade_max_out_epochs
  • fann_get_cascade_min_out_epochs »
  • PHP Manual
  • Fonctions Fann
  • Returns the minimum candidate epochs

fann_get_cascade_min_cand_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs

Description

int fann_get_cascade_min_cand_epochs ( resource $ann )

The minimum candidate epochs determines the minimum number of epochs the input connections to the candidates may be trained before adding a new candidate neuron.

The default min candidate epochs is 50.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The minimum candidate epochs, or FALSE on error.

Voir aussi

  • fann_set_cascade_min_cand_epochs() - Défini l'époque minimale candidate


Returns the minimum out epochs

  • « fann_get_cascade_min_cand_epochs
  • fann_get_cascade_num_candidate_groups »
  • PHP Manual
  • Fonctions Fann
  • Returns the minimum out epochs

fann_get_cascade_min_out_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_min_out_epochs — Returns the minimum out epochs

Description

int fann_get_cascade_min_out_epochs ( resource $ann )

The minimum out epochs determines the minimum number of epochs the output connections must be trained after adding a new candidate neuron.

The default min out epochs is 50.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The minimum out epochs, or FALSE on error.

Voir aussi

  • fann_set_cascade_min_out_epochs() - Défini l'époque minimale de sortie


Returns the number of candidate groups

  • « fann_get_cascade_min_out_epochs
  • fann_get_cascade_num_candidates »
  • PHP Manual
  • Fonctions Fann
  • Returns the number of candidate groups

fann_get_cascade_num_candidate_groups

(PECL fann >= 1.0.0)

fann_get_cascade_num_candidate_groups — Returns the number of candidate groups

Description

int fann_get_cascade_num_candidate_groups ( resource $ann )

The number of candidate groups is the number of groups of identical candidates which will be used during training.

This number can be used to have more candidates without having to define new parameters for the candidates.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this parameter.

The default number of candidate groups is 2.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The number of candidate groups, or FALSE on error.

Voir aussi

  • fann_set_cascade_num_candidate_groups() - Défini le nombre de groupes candidats


Returns the number of candidates used during training

  • « fann_get_cascade_num_candidate_groups
  • fann_get_cascade_output_change_fraction »
  • PHP Manual
  • Fonctions Fann
  • Returns the number of candidates used during training

fann_get_cascade_num_candidates

(PECL fann >= 1.0.0)

fann_get_cascade_num_candidates — Returns the number of candidates used during training

Description

int fann_get_cascade_num_candidates ( resource $ann )

The number of candidates used during training (calculated by multiplying
fann_get_cascade_activation_functions_count(),
fann_get_cascade_activation_steepnesses_count() and
fann_get_cascade_num_candidate_groups()).

The actual candidates is defined by the fann_get_cascade_activation_functions() and fann_get_cascade_activation_steepnesses() arrays. These arrays define the activation functions and activation steepnesses used for the candidate neurons. If there are 2 activation functions in the activation function array and 3 steepnesses in the steepness array, then there will be 2x3=6 different candidates which will be trained. These 6 different candidates can be copied into several candidate groups, where the only difference between these groups is the initial weights. If the number of groups is set to 2, then the number of candidate neurons will be 2x3x2=12. The number of candidate groups is defined by fann_set_cascade_num_candidate_groups().

The default number of candidates is 6x4x2 = 48

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The number of candidates used during training, or FALSE on error.

Voir aussi

  • fann_get_cascade_activation_functions() - Returns the cascade activation functions
  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses
  • fann_get_cascade_num_candidate_groups() - Returns the number of candidate groups


Returns the cascade output change fraction

  • « fann_get_cascade_num_candidates
  • fann_get_cascade_output_stagnation_epochs »
  • PHP Manual
  • Fonctions Fann
  • Returns the cascade output change fraction

fann_get_cascade_output_change_fraction

(PECL fann >= 1.0.0)

fann_get_cascade_output_change_fraction — Returns the cascade output change fraction

Description

float fann_get_cascade_output_change_fraction ( resource $ann )

The cascade output change fraction is a number between 0 and 1 determining how large a fraction of the fann_get_MSE() value should change within fann_get_cascade_output_stagnation_epochs() during training of the output connections, in order for the training not to stagnate. If the training stagnates, the training of the output connections will be ended and new candidates will be prepared.

It means that if the MSE does not change by a fraction of fann_get_cascade_output_change_fraction() during a period of fann_get_cascade_output_stagnation_epochs(), the training of the output connections is stopped because the training has stagnated.

If the cascade output change fraction is low, the output connections will be trained more and if the fraction is high, they will be trained less.

The default cascade output change fraction is 0.01, which is equalent to a 1% change in MSE.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The cascade output change fraction, or FALSE on error.

Voir aussi

  • fann_set_cascade_output_change_fraction() - Défini la fraction de modification de sortie en cascade
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_cascade_output_stagnation_epochs() - Returns the number of cascade output stagnation epochs


Returns the number of cascade output stagnation epochs

  • « fann_get_cascade_output_change_fraction
  • fann_get_cascade_weight_multiplier »
  • PHP Manual
  • Fonctions Fann
  • Returns the number of cascade output stagnation epochs

fann_get_cascade_output_stagnation_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs

Description

int fann_get_cascade_output_stagnation_epochs ( resource $ann )

The number of cascade output stagnation epochs determines the number of epochs training is allowed to continue without changing the MSE by a fraction of fann_get_cascade_output_change_fraction().

See more info about this parameter in fann_get_cascade_output_change_fraction().

The default number of cascade output stagnation epochs is 12.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The number of cascade output stagnation epochs, or FALSE on error.

Voir aussi

  • fann_set_cascade_output_stagnation_epochs() - Défini le nombre d'époques de stagnation en cascade de sortie
  • fann_get_cascade_output_change_fraction() - Returns the cascade output change fraction


Returns the weight multiplier

  • « fann_get_cascade_output_stagnation_epochs
  • fann_get_connection_array »
  • PHP Manual
  • Fonctions Fann
  • Returns the weight multiplier

fann_get_cascade_weight_multiplier

(PECL fann >= 1.0.0)

fann_get_cascade_weight_multiplier — Returns the weight multiplier

Description

float fann_get_cascade_weight_multiplier ( resource $ann )

The weight multiplier is a parameter which is used to multiply the weights from the candidate neuron before adding the neuron to the neural network. This parameter is usually between 0 and 1, and is used to make the training a bit less aggressive.

The default weight multiplier is 0.4.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The weight multiplier, or FALSE on error.

Voir aussi

  • fann_set_cascade_weight_multiplier() - Défini le multiplicateur de poids


Récupère les connexions dans le réseau

  • « fann_get_cascade_weight_multiplier
  • fann_get_connection_rate »
  • PHP Manual
  • Fonctions Fann
  • Récupère les connexions dans le réseau

fann_get_connection_array

(PECL fann >= 1.0.0)

fann_get_connection_array — Récupère les connexions dans le réseau

Description

array fann_get_connection_array ( resource $ann )

Récupère les connexions dans le réseau.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Un tableau de connexions dans le réseau.


Récupère le taux de connexion lorsque le réseau a été créé

  • « fann_get_connection_array
  • fann_get_errno »
  • PHP Manual
  • Fonctions Fann
  • Récupère le taux de connexion lorsque le réseau a été créé

fann_get_connection_rate

(PECL fann >= 1.0.0)

fann_get_connection_rate — Récupère le taux de connexion lorsque le réseau a été créé

Description

float fann_get_connection_rate ( resource $ann )

Récupère le taux de connexion lorsque le réseau a été créé.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Le taux de connexion utilisé lorsque le réseau a été créé, ou FALSE si une erreur survient.


Retourne le numéro de la dernière erreur

  • « fann_get_connection_rate
  • fann_get_errstr »
  • PHP Manual
  • Fonctions Fann
  • Retourne le numéro de la dernière erreur

fann_get_errno

(PECL fann >= 1.0.0)

fann_get_errno — Retourne le numéro de la dernière erreur

Description

int fann_get_errno ( resource $errdat )

Retourne le numéro de la dernière erreur.

Liste de paramètres

errdat

Soit une ressource de réseau de neurones, soit une ressource de données d'entrainement d'un réseau de neurones.

Valeurs de retour

Le numéro de l'erreur, ou FALSE si une erreur survient.

Voir aussi

  • fann_reset_errno() - Réinitialise le numéro de la dernière erreur
  • fann_get_errstr() - Retourne le dernier message d'erreur


Retourne le dernier message d'erreur

  • « fann_get_errno
  • fann_get_layer_array »
  • PHP Manual
  • Fonctions Fann
  • Retourne le dernier message d'erreur

fann_get_errstr

(PECL fann >= 1.0.0)

fann_get_errstr — Retourne le dernier message d'erreur

Description

string fann_get_errstr ( resource $errdat )

Retourne le dernier message d'erreur.

Liste de paramètres

errdat

Soit une ressource de réseau de neurones, soit une ressource de données d'entrainement d'un réseau de neurones.

Valeurs de retour

Le dernier message d'erreur, ou FALSE si une erreur survient.

Voir aussi

  • fann_reset_errstr() - Réinitialise le message de la dernière erreur
  • fann_get_errno() - Retourne le numéro de la dernière erreur


Get the number of neurons in each layer in the network

  • « fann_get_errstr
  • fann_get_learning_momentum »
  • PHP Manual
  • Fonctions Fann
  • Get the number of neurons in each layer in the network

fann_get_layer_array

(PECL fann >= 1.0.0)

fann_get_layer_array — Get the number of neurons in each layer in the network

Description

array fann_get_layer_array ( resource $ann )

Get the number of neurons in each layer in the neural network.

Bias is not included so the layers match the fann_create functions.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

An array of numbers of neurons in each leayer


Returns the learning momentum

  • « fann_get_layer_array
  • fann_get_learning_rate »
  • PHP Manual
  • Fonctions Fann
  • Returns the learning momentum

fann_get_learning_momentum

(PECL fann >= 1.0.0)

fann_get_learning_momentum — Returns the learning momentum

Description

float fann_get_learning_momentum ( resource $ann )

The learning momentum can be used to speed up FANN_TRAIN_INCREMENTAL training. A too high momentum will however not benefit training. Setting momentum to 0 will be the same as not using the momentum parameter. The recommended value of this parameter is between 0.0 and 1.0.

The default momentum is 0.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

The learning momentum, or FALSE on error.

Voir aussi

  • fann_set_learning_momentum() - Défini la dynamique d'apprentissage
  • fann_set_training_algorithm() - Défini l'algorithme d'entrainement


Returns the learning rate

  • « fann_get_learning_momentum
  • fann_get_MSE »
  • PHP Manual
  • Fonctions Fann
  • Returns the learning rate

fann_get_learning_rate

(PECL fann >= 1.0.0)

fann_get_learning_rate — Returns the learning rate

Description

float fann_get_learning_rate ( resource $ann )

The learning rate is used to determine how aggressive training should be for some of the training algorithms (FANN_TRAIN_INCREMENTAL, FANN_TRAIN_BATCH, FANN_TRAIN_QUICKPROP). Do however note that it is not used in FANN_TRAIN_RPROP.

The default learning rate is 0.7.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The learning rate, or FALSE on error.

Voir aussi

  • fann_set_learning_rate() - Défini le taux d'apprentissage
  • fann_set_training_algorithm() - Défini l'algorithme d'entrainement


Reads the mean square error from the network

  • « fann_get_learning_rate
  • fann_get_network_type »
  • PHP Manual
  • Fonctions Fann
  • Reads the mean square error from the network

fann_get_MSE

(PECL fann >= 1.0.0)

fann_get_MSE — Reads the mean square error from the network

Description

float fann_get_MSE ( resource $ann )

Reads the mean square error from the network.

Reads the mean square error from the network. This value is calculated during training or testing and can therefore sometimes be a bit off if the weights have been changed since the last calculation of the value.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The mean square error, or FALSE on error.

Voir aussi

  • fann_test_data() - Effectue un test sur un jeu de données d'entrainement et calcule le MSE pour ces données


Get the type of neural network it was created as

  • « fann_get_MSE
  • fann_get_num_input »
  • PHP Manual
  • Fonctions Fann
  • Get the type of neural network it was created as

fann_get_network_type

(PECL fann >= 1.0.0)

fann_get_network_type — Get the type of neural network it was created as

Description

int fann_get_network_type ( resource $ann )

Get the type of neural network it was created as.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Network type constant, or FALSE on error.


Récupère le nombre de neurones entrants

  • « fann_get_network_type
  • fann_get_num_layers »
  • PHP Manual
  • Fonctions Fann
  • Récupère le nombre de neurones entrants

fann_get_num_input

(PECL fann >= 1.0.0)

fann_get_num_input — Récupère le nombre de neurones entrants

Description

int fann_get_num_input ( resource $ann )

Récupère le nombre de neurones entrants.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Le nombre de neurones entrants, ou FALSE si une erreur survient.


Récupère le nombre de couches du réseau neuronal

  • « fann_get_num_input
  • fann_get_num_output »
  • PHP Manual
  • Fonctions Fann
  • Récupère le nombre de couches du réseau neuronal

fann_get_num_layers

(PECL fann >= 1.0.0)

fann_get_num_layers — Récupère le nombre de couches du réseau neuronal

Description

int fann_get_num_layers ( resource $ann )

Récupère le nombre de couches du réseau neuronal.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Le nombre de couches du réseau neuronal, ou FALSE si une erreur survient.


Récupère le nombre de neurones sortants

  • « fann_get_num_layers
  • fann_get_quickprop_decay »
  • PHP Manual
  • Fonctions Fann
  • Récupère le nombre de neurones sortants

fann_get_num_output

(PECL fann >= 1.0.0)

fann_get_num_output — Récupère le nombre de neurones sortants

Description

int fann_get_num_output ( resource $ann )

Récupère le nombre de neurones sortants.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Le nombre de neurones sortants, ou FALSE si une erreur survient.


Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

  • « fann_get_num_output
  • fann_get_quickprop_mu »
  • PHP Manual
  • Fonctions Fann
  • Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

fann_get_quickprop_decay

(PECL fann >= 1.0.0)

fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

Description

float fann_get_quickprop_decay ( resource $ann )

The decay is a small negative valued number which is a factor that the weights should decrease in each iteration during quickprop training. This is used to make sure that the weights do not become too high during training.

The default decay is -0.0001.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

The decay, or FALSE on error.

Voir aussi

  • fann_set_quickprop_decay() - Défini le facteur décroissant quickprop


Retourne le facteur mu

  • « fann_get_quickprop_decay
  • fann_get_rprop_decrease_factor »
  • PHP Manual
  • Fonctions Fann
  • Retourne le facteur mu

fann_get_quickprop_mu

(PECL fann >= 1.0.0)

fann_get_quickprop_mu — Retourne le facteur mu

Description

float fann_get_quickprop_mu ( resource $ann )

Le facteur mu est utilisé pour accroître et décroitre la taille de l'étape durant l'entrainement quickprop. Le facteur mu doit toujours être inférieur à 1, sachant que sinon, il va décroitre la taille de l'étape alors qu'il est supposé l'accroitre.

Le facteur mu par défaut est 1.75.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Le facteur mu, ou FALSE si une erreur survient.

Voir aussi

  • fann_set_quickprop_mu() - Défini le facteur quickprop mu


Retourne le facteur d'accroissement utilisé pendant l'entrainement RPROP

  • « fann_get_quickprop_mu
  • fann_get_rprop_delta_max »
  • PHP Manual
  • Fonctions Fann
  • Retourne le facteur d'accroissement utilisé pendant l'entrainement RPROP

fann_get_rprop_decrease_factor

(PECL fann >= 1.0.0)

fann_get_rprop_decrease_factor — Retourne le facteur d'accroissement utilisé pendant l'entrainement RPROP

Description

float fann_get_rprop_decrease_factor ( resource $ann )

Le facteur de décroissement est une valeur plus petite que 1, qui est utilisé pour décroitre la taille de l'étape pendant l'entrainement RPROP.

Le facteur de décroissement par défaut est 0.5.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Le facteur de décroissement, ou FALSE si une erreur survient.

Voir aussi

  • fann_set_rprop_decrease_factor() - Défini le facteur de diminution utilisé pendant l'entrainement RPROP


Retourne la taille maximale de l'étape

  • « fann_get_rprop_decrease_factor
  • fann_get_rprop_delta_min »
  • PHP Manual
  • Fonctions Fann
  • Retourne la taille maximale de l'étape

fann_get_rprop_delta_max

(PECL fann >= 1.0.0)

fann_get_rprop_delta_max — Retourne la taille maximale de l'étape

Description

float fann_get_rprop_delta_max ( resource $ann )

La taille maximale de l'étape est un nombre positif déterminant combien la taille de l'étape peut être au maximum.

Le delta maximal par défaut est de 50.0.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

La taille maximale de l'étape, ou FALSE si une erreur survient.

Voir aussi

  • fann_set_rprop_delta_max() - Défini la taille maximale de l'étape
  • fann_get_rprop_delta_min() - Retourne la taille minimale de l'étape


Retourne la taille minimale de l'étape

  • « fann_get_rprop_delta_max
  • fann_get_rprop_delta_zero »
  • PHP Manual
  • Fonctions Fann
  • Retourne la taille minimale de l'étape

fann_get_rprop_delta_min

(PECL fann >= 1.0.0)

fann_get_rprop_delta_min — Retourne la taille minimale de l'étape

Description

float fann_get_rprop_delta_min ( resource $ann )

La taille minimale de l'étape est un petit nombre positif déterminant combien la taille de l'étape peut être au minimal.

La valeur minimale du delta par défaut est de 0.0.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

La taille minimale de l'étape, ou FALSE si une erreur survient.

Voir aussi

  • fann_set_rprop_delta_min() - Défini la taille minimale de l'étape


Retourne la taille initiale de l'étape

  • « fann_get_rprop_delta_min
  • fann_get_rprop_increase_factor »
  • PHP Manual
  • Fonctions Fann
  • Retourne la taille initiale de l'étape

fann_get_rprop_delta_zero

(PECL fann >= 1.0.0)

fann_get_rprop_delta_zero — Retourne la taille initiale de l'étape

Description

ReturnType fann_get_rprop_delta_zero ( resource $ann )

La taille initiale de l'étape est un nombre positif déterminant la taille initialie de l'étape.

Le delta par défaut est de 0.1.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

La taille initiale de l'étape, ou FALSE si une erreur survient.

Voir aussi

  • fann_set_rprop_delta_zero() - Défini la taille de l'étape initiale
  • fann_get_rprop_delta_min() - Retourne la taille minimale de l'étape
  • fann_get_rprop_delta_max() - Retourne la taille maximale de l'étape


Retourne le facteur croissant utilisé pendant l'entrainement RPROP

  • « fann_get_rprop_delta_zero
  • fann_get_sarprop_step_error_shift »
  • PHP Manual
  • Fonctions Fann
  • Retourne le facteur croissant utilisé pendant l'entrainement RPROP

fann_get_rprop_increase_factor

(PECL fann >= 1.0.0)

fann_get_rprop_increase_factor — Retourne le facteur croissant utilisé pendant l'entrainement RPROP

Description

float fann_get_rprop_increase_factor ( resource $ann )

Le facteur croissant est une valeur supérieure à 1, qui est utilisé pour croitre la taille de l'étape pendant l'entrainement RPROP.

Le facteur croissant par défaut est de 1.2.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Le facteur croissant, ou FALSE si une erreur survient.

Voir aussi

  • fann_set_rprop_increase_factor() - Défini le facteur d'augmentation utilisé pendant l'entrainement RPROP


Retourne le décalage de l'erreur lors de l'étape sarprop

  • « fann_get_rprop_increase_factor
  • fann_get_sarprop_step_error_threshold_factor »
  • PHP Manual
  • Fonctions Fann
  • Retourne le décalage de l'erreur lors de l'étape sarprop

fann_get_sarprop_step_error_shift

(PECL fann >= 1.0.0)

fann_get_sarprop_step_error_shift — Retourne le décalage de l'erreur lors de l'étape sarprop

Description

float fann_get_sarprop_step_error_shift ( resource $ann )

Retourne le décalage de l'erreur lors de l'étape sarprop.

Le décalage par défaut de l'erreur lors de l'étape est 1.385.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Le décalage de l'erreur lors de l'étape sarprop, ou FALSE si une erreur survient.

Voir aussi

  • fann_set_sarprop_step_error_shift() - Défini le changement de l'étape d'erreur sarprop


Retourne le facteur de seuil d'erreur lors de l'étape sarprop

  • « fann_get_sarprop_step_error_shift
  • fann_get_sarprop_temperature »
  • PHP Manual
  • Fonctions Fann
  • Retourne le facteur de seuil d'erreur lors de l'étape sarprop

fann_get_sarprop_step_error_threshold_factor

(PECL fann >= 1.0.0)

fann_get_sarprop_step_error_threshold_factor — Retourne le facteur de seuil d'erreur lors de l'étape sarprop

Description

float fann_get_sarprop_step_error_threshold_factor ( resource $ann )

Retourne le facteur de seuil d'erreur lors de l'étape sarprop.

Le facteur par défaut est 0.1.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Le facteur de seuil d'erreur lors de l'étape sarprop, ou FALSE si une erreur survient.

Voir aussi

  • fann_set_sarprop_step_error_threshold_factor() - Défini le facteur de seuil de l'étape d'erreur sarprop


Retourne la température sarprop

  • « fann_get_sarprop_step_error_threshold_factor
  • fann_get_sarprop_weight_decay_shift »
  • PHP Manual
  • Fonctions Fann
  • Retourne la température sarprop

fann_get_sarprop_temperature

(PECL fann >= 1.0.0)

fann_get_sarprop_temperature — Retourne la température sarprop

Description

float fann_get_sarprop_temperature ( resource $ann )

Retourne la température sarprop.

La température par défaut est 0.015.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

La température sarprop, ou FALSE si une erreur survient.

Voir aussi

  • fann_set_sarprop_temperature() - Défini la températeur sarprop


Retourne le changement décroissant du poids sarprop

  • « fann_get_sarprop_temperature
  • fann_get_total_connections »
  • PHP Manual
  • Fonctions Fann
  • Retourne le changement décroissant du poids sarprop

fann_get_sarprop_weight_decay_shift

(PECL fann >= 1.0.0)

fann_get_sarprop_weight_decay_shift — Retourne le changement décroissant du poids sarprop

Description

float fann_get_sarprop_weight_decay_shift ( resource $ann )

Le changement décroissant du poids sarprop.

Le delta maximal par défaut est -6.644.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Le changement décroissant du poids sarprop, ou FALSE si une erreur survient.

Voir aussi

  • fann_set_sarprop_weight_decay_shift() - Défini le changement décroissant du poids de sarprop


Récupère le nombre total de connexions dans la totalité du réseau

  • « fann_get_sarprop_weight_decay_shift
  • fann_get_total_neurons »
  • PHP Manual
  • Fonctions Fann
  • Récupère le nombre total de connexions dans la totalité du réseau

fann_get_total_connections

(PECL fann >= 1.0.0)

fann_get_total_connections — Récupère le nombre total de connexions dans la totalité du réseau

Description

int fann_get_total_connections ( resource $ann )

Récupère le nombre total de connexions dans la totalité du réseau.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Le nombre total de connexions dans la totalité du réseau, ou FALSE si une erreur survient.


Récupère le nombre total de neurones dans la totalité du réseau

  • « fann_get_total_connections
  • fann_get_train_error_function »
  • PHP Manual
  • Fonctions Fann
  • Récupère le nombre total de neurones dans la totalité du réseau

fann_get_total_neurons

(PECL fann >= 1.0.0)

fann_get_total_neurons — Récupère le nombre total de neurones dans la totalité du réseau

Description

int fann_get_total_neurons ( resource $ann )

Récupère le nombre total de neurones dans la totalité du réseau. Ce nombre n'inclut pas les neurones de polarisation - un réseau 2-4-2 a 2+4+2 +2(polarisants) = 10 neurones.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Le nombre total de neurones dans la totalité du réseau, ou FALSE si une erreur survient.


Retourne la fonction d'erreur utilisée pendant l'entrainement

  • « fann_get_total_neurons
  • fann_get_train_stop_function »
  • PHP Manual
  • Fonctions Fann
  • Retourne la fonction d'erreur utilisée pendant l'entrainement

fann_get_train_error_function

(PECL fann >= 1.0.0)

fann_get_train_error_function — Retourne la fonction d'erreur utilisée pendant l'entrainement

Description

int fann_get_train_error_function ( resource $ann )

Retourne la fonction d'erreur utilisée pendant l'entrainement.

Les fonctions d'erreur sont décrites dans la page sur les constantes des fonctions d'erreur.

La fonction d'erreur par défaut est FANN_ERRORFUNC_TANH.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

La constante de fonction d'erreur ou FALSE si une erreur survient.

Voir aussi

  • fann_set_train_error_function() - Défini la fonction d'erreur utilisée pendant l'entrainement


Retourne la fonction d'arrêt utilisée pendant l'entrainement

  • « fann_get_train_error_function
  • fann_get_training_algorithm »
  • PHP Manual
  • Fonctions Fann
  • Retourne la fonction d'arrêt utilisée pendant l'entrainement

fann_get_train_stop_function

(PECL fann >= 1.0.0)

fann_get_train_stop_function — Retourne la fonction d'arrêt utilisée pendant l'entrainement

Description

int fann_get_train_stop_function ( resource $ann )

Retourne la fonction d'arrêt utilisée pendant l'entrainement.

Les fonctions d'arrêt sont décrites dans les constantes des fonctions d'arrêt.

La fonction d'arrêt par défaut est FANN_STOPFUNC_MSE.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

La constante de fonction d'arrêt, ou FALSE si une erreur survient.

Voir aussi

  • fann_set_train_stop_function() - Défini la fonction d'arrêt à utiliser durant l'entrainement


Retourne l'algorithme d'entrainement

  • « fann_get_train_stop_function
  • fann_init_weights »
  • PHP Manual
  • Fonctions Fann
  • Retourne l'algorithme d'entrainement

fann_get_training_algorithm

(PECL fann >= 1.0.0)

fann_get_training_algorithm — Retourne l'algorithme d'entrainement

Description

int fann_get_training_algorithm ( resource $ann )

Retourne l'algorithme d'entrainement. Cet algorithme d'entrainement est utilisé par fann_train_on_data() et les fonctions associées.

Notez que cet algorithme est également utilisé pendant fann_cascadetrain_on_data(), bien que seules les constantes FANN_TRAIN_RPROP et FANN_TRAIN_QUICKPROP sont autorisées pendant l'entrainement en cascade.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

La constante de l'algorithme d'entrainement ou FALSE si une erreur survient.

Voir aussi

  • fann_set_training_algorithm() - Défini l'algorithme d'entrainement


Initialise les poids en utilisant les algorythme Widrow et Nguyen

  • « fann_get_training_algorithm
  • fann_length_train_data »
  • PHP Manual
  • Fonctions Fann
  • Initialise les poids en utilisant les algorythme Widrow et Nguyen

fann_init_weights

(PECL fann >= 1.0.0)

fann_init_weights — Initialise les poids en utilisant les algorythme Widrow et Nguyen

Description

bool fann_init_weights ( resource $ann , resource $train_data )

Initialise les poids en utilisant les algorythme Widrow et Nguyen.

Cette fonction a un fonctionnement similaire à la fonction fann_randomize_weights(). Elle va utiliser l'algorythme développé par Derrick Nguyen et Bernard Widrow pour définir les poids de telle façon à ce que l'entrainement devienne plus rapide. Cette technique n'est pas toujours couronnée de succès, et dans quelques cas, peut être moins efficace qu'une initialisation purement aléatoire.

L'algorythme requiert l'accès à l'intervalle de données entrantes (par exemple, les entrées la plus petit et la plus grande), et aceepte aussi un second argument, les données, qui sont les données d'entrainement qui seront utilisés pour l'entrainement du réseau.

Liste de paramètres

ann

Ressource de réseau de neurones.

train_data

Ressource de données d'entrainement du réseau de neurones.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_randomize_weights() - Donne à chaque connexion un poids aléatoire compris entre min_weight et max_weight
  • fann_read_train_from_file() - Lit un fichier contenant les données d'entrainement


Retourne le nombre de masques d'entrainement dans les données d'entrainement

  • « fann_init_weights
  • fann_merge_train_data »
  • PHP Manual
  • Fonctions Fann
  • Retourne le nombre de masques d'entrainement dans les données d'entrainement

fann_length_train_data

(PECL fann >= 1.0.0)

fann_length_train_data — Retourne le nombre de masques d'entrainement dans les données d'entrainement

Description

int fann_length_train_data ( resource $data )

Retourne le nombre de masques d'entrainement dans les données d'entrainement.

Liste de paramètres

data

Ressource de données d'entrainement du réseau de neurones.

Valeurs de retour

Le nombre d'éléments dans les données d'entrainement, ou FALSE si une erreur survient.


Fusionne les données d'entrainement

  • « fann_length_train_data
  • fann_num_input_train_data »
  • PHP Manual
  • Fonctions Fann
  • Fusionne les données d'entrainement

fann_merge_train_data

(PECL fann >= 1.0.0)

fann_merge_train_data — Fusionne les données d'entrainement

Description

resource fann_merge_train_data ( resource $data1 , resource $data2 )

Fusionne les données data1 et data2 dans un nouveau jeux de données d'entrainement.

Liste de paramètres

data1

Ressource de données d'entrainement du réseau de neurones.

data2

Ressource de données d'entrainement du réseau de neurones.

Valeurs de retour

Nouveau jeux de données d'entrainement, ou FALSE si une erreur survient.


Retourne le nombre d'entrées dans chaque masque d'entrainement dans les données d'entrainement

  • « fann_merge_train_data
  • fann_num_output_train_data »
  • PHP Manual
  • Fonctions Fann
  • Retourne le nombre d'entrées dans chaque masque d'entrainement dans les données d'entrainement

fann_num_input_train_data

(PECL fann >= 1.0.0)

fann_num_input_train_data — Retourne le nombre d'entrées dans chaque masque d'entrainement dans les données d'entrainement

Description

int fann_num_input_train_data ( resource $data )

Retourne le nombre d'entrées dans chaque masque d'entrainement dans les données d'entrainement.

Liste de paramètres

data

Ressource de données d'entrainement du réseau de neurones.

Valeurs de retour

Le nombre d'entrées, ou FALSE si une erreur survient.

Voir aussi

  • fann_length_train_data() - Retourne le nombre de masques d'entrainement dans les données d'entrainement
  • fann_num_output_train_data() - Retourne le nombre de sortie dans chaque masque d'entrainement dans les données d'entrainement


Retourne le nombre de sortie dans chaque masque d'entrainement dans les données d'entrainement

  • « fann_num_input_train_data
  • fann_print_error »
  • PHP Manual
  • Fonctions Fann
  • Retourne le nombre de sortie dans chaque masque d'entrainement dans les données d'entrainement

fann_num_output_train_data

(PECL fann >= 1.0.0)

fann_num_output_train_data — Retourne le nombre de sortie dans chaque masque d'entrainement dans les données d'entrainement

Description

int fann_num_output_train_data ( resource $data )

Retourne le nombre de sortie dans chaque masque d'entrainement dans les données d'entrainement.

Liste de paramètres

data

Ressource de données d'entrainement du réseau de neurones.

Valeurs de retour

Le nombre de sortie, ou FALSE si une erreur survient.

Voir aussi

  • fann_length_train_data() - Retourne le nombre de masques d'entrainement dans les données d'entrainement
  • fann_num_input_train_data() - Retourne le nombre d'entrées dans chaque masque d'entrainement dans les données d'entrainement


Affiche le message d'erreur

  • « fann_num_output_train_data
  • fann_randomize_weights »
  • PHP Manual
  • Fonctions Fann
  • Affiche le message d'erreur

fann_print_error

(PECL fann >= 1.0.0)

fann_print_error — Affiche le message d'erreur

Description

void fann_print_error ( string $errdat )

Affiche le message d'erreur.

Liste de paramètres

errdat

Soit une ressource de réseau de neurones, soit une ressource de données d'entrainement d'un réseau de neurones.

Valeurs de retour

Aucune valeur retournée.

Voir aussi

  • fann_get_errstr() - Retourne le dernier message d'erreur


Donne à chaque connexion un poids aléatoire compris entre min_weight et max_weight

  • « fann_print_error
  • fann_read_train_from_file »
  • PHP Manual
  • Fonctions Fann
  • Donne à chaque connexion un poids aléatoire compris entre min_weight et max_weight

fann_randomize_weights

(PECL fann >= 1.0.0)

fann_randomize_weights — Donne à chaque connexion un poids aléatoire compris entre min_weight et max_weight

Description

bool fann_randomize_weights ( resource $ann , float $min_weight , float $max_weight )

Donne à chaque connexion un poids aléatoire compris entre min_weight et max_weight.

Depuis le début, les poids sont aléatoires, dans un intervalle -0.1 et 0.1.

Liste de paramètres

ann

Ressource de réseau de neurones.

min_weight

Valeur minimale du poids

max_weight

Valeur maximale du poids

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_init_weights() - Initialise les poids en utilisant les algorythme Widrow et Nguyen


Lit un fichier contenant les données d'entrainement

  • « fann_randomize_weights
  • fann_reset_errno »
  • PHP Manual
  • Fonctions Fann
  • Lit un fichier contenant les données d'entrainement

fann_read_train_from_file

(PECL fann >= 1.0.0)

fann_read_train_from_file — Lit un fichier contenant les données d'entrainement

Description

resource fann_read_train_from_file ( string $filename )

Lit un fichier contenant les données d'entrainement.

Liste de paramètres

filename

Le fichier d'entrée au format suivant :

num_train_data num_input num_output
inputdata séparé par un espace
outputdata séparé par un espace

.
.
.

inputdata séparé par un espace
outputdata séparé par un espace

Valeurs de retour

Retourne une ressource de données d'entrainement en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec fann_read_train_from_file()

<?php
$train_data = fann_read_train_from_file("xor.data");
if ($train_data) {
    // Faites quelque chose avec $train_data pour la fonction XOR
}
?>

Contenu de xor.data

4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1

Voir aussi

  • fann_train_on_data() - Effectue un entrainement sur un jeu de données complet pour une période de temps
  • fann_destroy_train() - Détruit les données d'entrainement
  • fann_save_train() - Sauvegarde la structure d'entrainement dans un fichier


Réinitialise le numéro de la dernière erreur

  • « fann_read_train_from_file
  • fann_reset_errstr »
  • PHP Manual
  • Fonctions Fann
  • Réinitialise le numéro de la dernière erreur

fann_reset_errno

(PECL fann >= 1.0.0)

fann_reset_errno — Réinitialise le numéro de la dernière erreur

Description

void fann_reset_errno ( resource $errdat )

Réinitialise le numéro de la dernière erreur.

Liste de paramètres

errdat

Soit une ressource de réseau de neurones, soit une ressource de données d'entrainement d'un réseau de neurones.

Valeurs de retour

Aucune valeur retournée.

Voir aussi

  • fann_get_errno() - Retourne le numéro de la dernière erreur
  • fann_reset_errstr() - Réinitialise le message de la dernière erreur


Réinitialise le message de la dernière erreur

  • « fann_reset_errno
  • fann_reset_MSE »
  • PHP Manual
  • Fonctions Fann
  • Réinitialise le message de la dernière erreur

fann_reset_errstr

(PECL fann >= 1.0.0)

fann_reset_errstr — Réinitialise le message de la dernière erreur

Description

void fann_reset_errstr ( resource $errdat )

Réinitialise le message de la dernière erreur.

Liste de paramètres

errdat

Soit une ressource de réseau de neurones, soit une ressource de données d'entrainement d'un réseau de neurones.

Valeurs de retour

Aucune valeur retournée.

Voir aussi

  • fann_get_errstr() - Retourne le dernier message d'erreur
  • fann_reset_errno() - Réinitialise le numéro de la dernière erreur


Réinitialise l'erreur quadratique moyenne du réseau

  • « fann_reset_errstr
  • fann_run »
  • PHP Manual
  • Fonctions Fann
  • Réinitialise l'erreur quadratique moyenne du réseau

fann_reset_MSE

(PECL fann >= 1.0.0)

fann_reset_MSE — Réinitialise l'erreur quadratique moyenne du réseau

Description

bool fann_reset_MSE ( string $ann )

Réinitialise l'erreur quadratique moyenne du réseau.

Cette fonction réinitialise également le nombre d'octets en échec.

Liste de paramètres

ann

Ressource de réseau de neurones.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training


Exécute les entrées via le réseau neuronal

  • « fann_reset_MSE
  • fann_save_train »
  • PHP Manual
  • Fonctions Fann
  • Exécute les entrées via le réseau neuronal

fann_run

(PECL fann >= 1.0.0)

fann_run — Exécute les entrées via le réseau neuronal

Description

array fann_run ( resource $ann , array $input )

Exécute les entrées via le réseau neuronal, retourne un tableau de sorties, le nombre de neurones dans la couche de sortie.

Liste de paramètres

ann

Ressource de réseau de neurones.

input

Tableau de valeurs d'entrées

Valeurs de retour

Tableau de valeurs de sorties, ou FALSE si une erreur survient.


Sauvegarde la structure d'entrainement dans un fichier

  • « fann_run
  • fann_save »
  • PHP Manual
  • Fonctions Fann
  • Sauvegarde la structure d'entrainement dans un fichier

fann_save_train

(PECL fann >= 1.0.0)

fann_save_train — Sauvegarde la structure d'entrainement dans un fichier

Description

bool fann_save_train ( resource $data , string $file_name )

Sauvegarde la structure d'entrainement dans un fichier, dont le format est spécifié dans la fonction fann_read_train_from_file().

Liste de paramètres

data

Ressource de données d'entrainement du réseau de neurones.

file_name

Le nom du fichier où la sauvegarde à lieu.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_read_train_from_file() - Lit un fichier contenant les données d'entrainement


Sauvegarde le réseau complet dans un fichier de configuration

  • « fann_save_train
  • fann_scale_input_train_data »
  • PHP Manual
  • Fonctions Fann
  • Sauvegarde le réseau complet dans un fichier de configuration

fann_save

(PECL fann >= 1.0.0)

fann_save — Sauvegarde le réseau complet dans un fichier de configuration

Description

bool fann_save ( resource $ann , string $configuration_file )

Sauvegarde le réseau complet dans un fichier de configuration.

Le fichier de configuration contient toutes les informations sur le réseau neuronal, et active la fonction fann_create_from_file() pour créer une copie exacte du réseau neuronal, et tous les paramètres associés au réseau neuronal.

Ces trois paramètres (fann_set_callback(), fann_set_error_log(), fann_set_user_data()) ne sont PAS sauvegardés dans le fichier car ils ne peuvent pas être portés en toute sécurité dans un endroit différent. De même, les paramètres temporaires générés pendant l'entrainement comme fann_get_MSE() ne sont pas sauvegardés.

Liste de paramètres

ann

Ressource de réseau de neurones.

configuration_file

Le chemin vers le fichier de configuration.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_create_from_file() - Consruit une propagation de retour du réseau neuronal depuis un fichier de configuration


Met à l'échelle les entrées dans les données d'entrainement à l'intervalle spécifié

  • « fann_save
  • fann_scale_input »
  • PHP Manual
  • Fonctions Fann
  • Met à l'échelle les entrées dans les données d'entrainement à l'intervalle spécifié

fann_scale_input_train_data

(PECL fann >= 1.0.0)

fann_scale_input_train_data — Met à l'échelle les entrées dans les données d'entrainement à l'intervalle spécifié

Description

bool fann_scale_input_train_data ( resource $train_data , float $new_min , float $new_max )

Met à l'échelle les entrées dans les données d'entrainement à l'intervalle spécifié.

Liste de paramètres

train_data

Ressource de données d'entrainement du réseau de neurones.

new_min

Nouveau minimum après la mise à l'échelle des entrées dans les données d'entrainement.

new_max

Nouveau maximum après la mise à l'échelle des entrées dans les données d'entrainement.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_scale_output_train_data() - Met à l'échelle les sorties dans les données d'entrainement à l'intervalle spécifié
  • fann_scale_train_data() - Met à l'échelle les entrées et les sorties dans les données d'entrainement à l'intervalle spécifié


Met à l'échelle les données dans le vecteur d'entrée avant de les donner à ANN, en se basant sur les paramètres précédemment calculés

  • « fann_scale_input_train_data
  • fann_scale_output_train_data »
  • PHP Manual
  • Fonctions Fann
  • Met à l'échelle les données dans le vecteur d'entrée avant de les donner à ANN, en se basant sur les paramètres précédemment calculés

fann_scale_input

(PECL fann >= 1.0.0)

fann_scale_input — Met à l'échelle les données dans le vecteur d'entrée avant de les donner à ANN, en se basant sur les paramètres précédemment calculés

Description

bool fann_scale_input ( resource $ann , array $input_vector )

Met à l'échelle les données dans le vecteur d'entrée avant de les donner à ANN, en se basant sur les paramètres précédemment calculés.

Liste de paramètres

ann

Ressource de réseau de neurones.

input_vector

Vecteur d'entrée qui va être mise à l'échelle

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_descale_input() - Scale data in input vector after get it from ann based on previously calculated parameters
  • fann_scale_output() - Met à l'échelle les données dans le vecteur de sortie avant de les passer à ANN, en se basant sur les paramètres précédemment calculés


Met à l'échelle les sorties dans les données d'entrainement à l'intervalle spécifié

  • « fann_scale_input
  • fann_scale_output »
  • PHP Manual
  • Fonctions Fann
  • Met à l'échelle les sorties dans les données d'entrainement à l'intervalle spécifié

fann_scale_output_train_data

(PECL fann >= 1.0.0)

fann_scale_output_train_data — Met à l'échelle les sorties dans les données d'entrainement à l'intervalle spécifié

Description

bool fann_scale_output_train_data ( resource $train_data , float $new_min , float $new_max )

Met à l'échelle les sorties dans les données d'entrainement à l'intervalle spécifié.

Liste de paramètres

train_data

Ressource de données d'entrainement du réseau de neurones.

new_min

Nouveau minimum après la mise à l'échelle des sorties dans les données d'entrainement.

new_max

Nouveau maximum après la mise à l'échelle des sorties dans les données d'entrainement.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_scale_input_train_data() - Met à l'échelle les entrées dans les données d'entrainement à l'intervalle spécifié
  • fann_scale_train_data() - Met à l'échelle les entrées et les sorties dans les données d'entrainement à l'intervalle spécifié


Met à l'échelle les données dans le vecteur de sortie avant de les passer à ANN, en se basant sur les paramètres précédemment calculés

  • « fann_scale_output_train_data
  • fann_scale_train_data »
  • PHP Manual
  • Fonctions Fann
  • Met à l'échelle les données dans le vecteur de sortie avant de les passer à ANN, en se basant sur les paramètres précédemment calculés

fann_scale_output

(PECL fann >= 1.0.0)

fann_scale_output — Met à l'échelle les données dans le vecteur de sortie avant de les passer à ANN, en se basant sur les paramètres précédemment calculés

Description

bool fann_scale_output ( resource $ann , array $output_vector )

Met à l'échelle les données dans le vecteur de sortie avant de les passer à ANN, en se basant sur les paramètres précédemment calculés.

Liste de paramètres

ann

Ressource de réseau de neurones.

output_vector

Vecteur de sortie qui sera mis à l'échelle

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_descale_output() - Scale data in output vector after get it from ann based on previously calculated parameters
  • fann_scale_input() - Met à l'échelle les données dans le vecteur d'entrée avant de les donner à ANN, en se basant sur les paramètres précédemment calculés


Met à l'échelle les entrées et les sorties dans les données d'entrainement à l'intervalle spécifié

  • « fann_scale_output
  • fann_scale_train »
  • PHP Manual
  • Fonctions Fann
  • Met à l'échelle les entrées et les sorties dans les données d'entrainement à l'intervalle spécifié

fann_scale_train_data

(PECL fann >= 1.0.0)

fann_scale_train_data — Met à l'échelle les entrées et les sorties dans les données d'entrainement à l'intervalle spécifié

Description

bool fann_scale_train_data ( resource $train_data , float $new_min , float $new_max )

Met à l'échelle les entrées et les sorties dans les données d'entrainement à l'intervalle spécifié.

Liste de paramètres

train_data

Ressource de données d'entrainement du réseau de neurones.

new_min

Nouvelle valeur minimale après la mise à l'échelle des entrées et des sorties dans les données d'entrainement.

new_max

Nouvelle valeur maximale après la mise à l'échelle des entrées et des sorties dans les données d'entrainement.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_scale_output_train_data() - Met à l'échelle les sorties dans les données d'entrainement à l'intervalle spécifié
  • fann_scale_input_train_data() - Met à l'échelle les entrées dans les données d'entrainement à l'intervalle spécifié


Met à l'échelle les données d'entrée et de sortie en se basant sur les paramètres précédemment calculés

  • « fann_scale_train_data
  • fann_set_activation_function_hidden »
  • PHP Manual
  • Fonctions Fann
  • Met à l'échelle les données d'entrée et de sortie en se basant sur les paramètres précédemment calculés

fann_scale_train

(PECL fann >= 1.0.0)

fann_scale_train — Met à l'échelle les données d'entrée et de sortie en se basant sur les paramètres précédemment calculés

Description

bool fann_scale_train ( resource $ann , resource $train_data )

Met à l'échelle les données d'entrée et de sortie en se basant sur les paramètres précédemment calculés.

Liste de paramètres

ann

Ressource de réseau de neurones.

train_data

Ressource de données d'entrainement du réseau de neurones.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_descale_train() - Descale input and output data based on previously calculated parameters
  • fann_set_scaling_params() - Calcule les paramètres d'échelles d'entrée et de sortie utilisés en se basant sur les données d'entrainement


Défini la fonction d'activation pour toutes les couches cachées

  • « fann_scale_train
  • fann_set_activation_function_layer »
  • PHP Manual
  • Fonctions Fann
  • Défini la fonction d'activation pour toutes les couches cachées

fann_set_activation_function_hidden

(PECL fann >= 1.0.0)

fann_set_activation_function_hidden — Défini la fonction d'activation pour toutes les couches cachées

Description

bool fann_set_activation_function_hidden ( resource $ann , int $activation_function )

Défini la fonction d'activation pour toutes les couches cachées.

Liste de paramètres

ann

Ressource de réseau de neurones.

activation_function

La constante de fonctions d'activation.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_set_activation_function() - Défini la fonction d'activation pour le neurone et la couche spécifiés
  • fann_set_activation_function_layer() - Défini la fonction d'activation pour tous les neurones de la couche spécifiée
  • fann_set_activation_function_output() - Défini la fonction d'activation pour la couche d'entrée
  • fann_set_activation_steepness() - Défini la pente d'activation pour le neurone et le numéro de couche donnés


Défini la fonction d'activation pour tous les neurones de la couche spécifiée

  • « fann_set_activation_function_hidden
  • fann_set_activation_function_output »
  • PHP Manual
  • Fonctions Fann
  • Défini la fonction d'activation pour tous les neurones de la couche spécifiée

fann_set_activation_function_layer

(PECL fann >= 1.0.0)

fann_set_activation_function_layer — Défini la fonction d'activation pour tous les neurones de la couche spécifiée

Description

bool fann_set_activation_function_layer ( resource $ann , int $activation_function , int $layer )

Défini la fonction d'activation pour tous les neurones de la couche dont le numéro est layer, en comptant la couche d'entrée comme étant la couche numéro 0.

Il n'est pas possible de définir les fonctions d'activation pour les neurones de la couche d'entrée.

Liste de paramètres

ann

Ressource de réseau de neurones.

activation_function

La constante de fonctions d'activation.

layer

Le numéro de la couche.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_set_activation_function() - Défini la fonction d'activation pour le neurone et la couche spécifiés
  • fann_set_activation_function_hidden() - Défini la fonction d'activation pour toutes les couches cachées
  • fann_set_activation_function_output() - Défini la fonction d'activation pour la couche d'entrée
  • fann_set_activation_steepness() - Défini la pente d'activation pour le neurone et le numéro de couche donnés


Défini la fonction d'activation pour la couche d'entrée

  • « fann_set_activation_function_layer
  • fann_set_activation_function »
  • PHP Manual
  • Fonctions Fann
  • Défini la fonction d'activation pour la couche d'entrée

fann_set_activation_function_output

(PECL fann >= 1.0.0)

fann_set_activation_function_output — Défini la fonction d'activation pour la couche d'entrée

Description

bool fann_set_activation_function_output ( resource $ann , int $activation_function )

Défini la fonction d'activation pour la couche d'entrée.

Liste de paramètres

ann

Ressource de réseau de neurones.

activation_function

La constante de fonctions d'activation.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_set_activation_function() - Défini la fonction d'activation pour le neurone et la couche spécifiés
  • fann_set_activation_function_layer() - Défini la fonction d'activation pour tous les neurones de la couche spécifiée
  • fann_set_activation_function_hidden() - Défini la fonction d'activation pour toutes les couches cachées
  • fann_set_activation_steepness() - Défini la pente d'activation pour le neurone et le numéro de couche donnés


Défini la fonction d'activation pour le neurone et la couche spécifiés

  • « fann_set_activation_function_output
  • fann_set_activation_steepness_hidden »
  • PHP Manual
  • Fonctions Fann
  • Défini la fonction d'activation pour le neurone et la couche spécifiés

fann_set_activation_function

(PECL fann >= 1.0.0)

fann_set_activation_function — Défini la fonction d'activation pour le neurone et la couche spécifiés

Description

bool fann_set_activation_function ( resource $ann , int $activation_function , int $layer , int $neuron )

Défini la fonction d'activation pour le neurone numéro neuron dans la couche numéro layer, en comptant la couche d'entrée comme étant la couche numéro 0.

Il n'est pas possible de définir les fonctions d'activation pour les neurones de la couche d'entrée.

Lors du choix d'une fonction d'activation, il est important de noter que les fonctions d'activation ont un intervalle différent. FANN_SIGMOID est, i.e. dans l'intervalle 0 - 1 alors que FANN_SIGMOID_SYMMETRIC est dans l'intervalle -1 - 1 et FANN_LINEAR n'est pas lié.

La valeur de la fonction d'activation fournie doit être une constante parmi les fonctions d'activation.

La valeur retournée est une constante parmi les fonctions d'activation.

Liste de paramètres

ann

Ressource de réseau de neurones.

activation_function

La constante de fonctions d'activation.

layer

Le numéro de la couche.

neuron

Le numéro du neurone.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_set_activation_function_layer() - Défini la fonction d'activation pour tous les neurones de la couche spécifiée
  • fann_set_activation_function_hidden() - Défini la fonction d'activation pour toutes les couches cachées
  • fann_set_activation_function_output() - Défini la fonction d'activation pour la couche d'entrée
  • fann_set_activation_steepness() - Défini la pente d'activation pour le neurone et le numéro de couche donnés
  • fann_get_activation_function() - Returns the activation function


Défini la raideur de la pente d'activation pour tous les neurones des couches cachées

  • « fann_set_activation_function
  • fann_set_activation_steepness_layer »
  • PHP Manual
  • Fonctions Fann
  • Défini la raideur de la pente d'activation pour tous les neurones des couches cachées

fann_set_activation_steepness_hidden

(PECL fann >= 1.0.0)

fann_set_activation_steepness_hidden — Défini la raideur de la pente d'activation pour tous les neurones des couches cachées

Description

bool fann_set_activation_steepness_hidden ( resource $ann , float $activation_steepness )

Défini la raideur de la pente d'activation pour tous les neurones des couches cachées.

Liste de paramètres

ann

Ressource de réseau de neurones.

activation_steepness

La pente d'activation.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_set_activation_steepness() - Défini la pente d'activation pour le neurone et le numéro de couche donnés
  • fann_set_activation_steepness_layer() - Défini la pente d'activation pour tous les neurones dans la couche dont le numéro est fourni
  • fann_set_activation_steepness_output() - Défini la raideur de la pente d'activation dans la couche de sortie
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Défini la fonction d'activation pour le neurone et la couche spécifiés


Défini la pente d'activation pour tous les neurones dans la couche dont le numéro est fourni

  • « fann_set_activation_steepness_hidden
  • fann_set_activation_steepness_output »
  • PHP Manual
  • Fonctions Fann
  • Défini la pente d'activation pour tous les neurones dans la couche dont le numéro est fourni

fann_set_activation_steepness_layer

(PECL fann >= 1.0.0)

fann_set_activation_steepness_layer — Défini la pente d'activation pour tous les neurones dans la couche dont le numéro est fourni

Description

bool fann_set_activation_steepness_layer ( resource $ann , float $activation_steepness , int $layer )

Défini la pente d'activation pour tous les neurones dans la couche numéro layer, en comptant la couche d'entrée comme la couche numéro 0.

Il n'est pas possible de définir la pente d'activation pour les neurones de la couche d'entrée.

Liste de paramètres

ann

Ressource de réseau de neurones.

activation_steepness

La pente d'activation.

layer

Le numéro de la couche.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_set_activation_steepness() - Défini la pente d'activation pour le neurone et le numéro de couche donnés
  • fann_set_activation_steepness_hidden() - Défini la raideur de la pente d'activation pour tous les neurones des couches cachées
  • fann_set_activation_steepness_output() - Défini la raideur de la pente d'activation dans la couche de sortie
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Défini la fonction d'activation pour le neurone et la couche spécifiés


Défini la raideur de la pente d'activation dans la couche de sortie

  • « fann_set_activation_steepness_layer
  • fann_set_activation_steepness »
  • PHP Manual
  • Fonctions Fann
  • Défini la raideur de la pente d'activation dans la couche de sortie

fann_set_activation_steepness_output

(PECL fann >= 1.0.0)

fann_set_activation_steepness_output — Défini la raideur de la pente d'activation dans la couche de sortie

Description

bool fann_set_activation_steepness_output ( resource $ann , float $activation_steepness )

Défini la raideur de la pente d'activation dans la couche de sortie.

Liste de paramètres

ann

Ressource de réseau de neurones.

activation_steepness

La raideur de la pente d'activation.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_set_activation_steepness() - Défini la pente d'activation pour le neurone et le numéro de couche donnés
  • fann_set_activation_steepness_layer() - Défini la pente d'activation pour tous les neurones dans la couche dont le numéro est fourni
  • fann_set_activation_steepness_hidden() - Défini la raideur de la pente d'activation pour tous les neurones des couches cachées
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Défini la fonction d'activation pour le neurone et la couche spécifiés


Défini la pente d'activation pour le neurone et le numéro de couche donnés

  • « fann_set_activation_steepness_output
  • fann_set_bit_fail_limit »
  • PHP Manual
  • Fonctions Fann
  • Défini la pente d'activation pour le neurone et le numéro de couche donnés

fann_set_activation_steepness

(PECL fann >= 1.0.0)

fann_set_activation_steepness — Défini la pente d'activation pour le neurone et le numéro de couche donnés

Description

bool fann_set_activation_steepness ( resource $ann , float $activation_steepness , int $layer , int $neuron )

Défini la pente d'activation pour le neurone numéro neuron dans la couche numéro layer, en comptant la couche d'entrée comme la couche numéro 0.

Il n'est pas possible de définir la pente d'activation pour les neurones dans la couche d'entrée.

La pente d'une fonction d'activation indique une valeur signifiant la rapidité de la fonction d'activation pour aller du minimum au maximum. Une valeur ahute pour la fonction d'activation va également produire un entrainement plus agressif.

Lors d'un entrainement sur des réseaux neuronaux, où les valeurs de sortie doivent être aux extrèmes (habituellement, 0 et 1, suivant la fonction d'activation), une fonction de pente d'activation peut être utilisée (i.e. 1.0).

La pente d'activation par défaut est 0.5.

Liste de paramètres

ann

Ressource de réseau de neurones.

activation_steepness

La pente d'activation.

layer

Le numéro de la couche.

neuron

Le numéro du neurone.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_set_activation_steepness_layer() - Défini la pente d'activation pour tous les neurones dans la couche dont le numéro est fourni
  • fann_set_activation_steepness_hidden() - Défini la raideur de la pente d'activation pour tous les neurones des couches cachées
  • fann_set_activation_steepness_output() - Défini la raideur de la pente d'activation dans la couche de sortie
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Défini la fonction d'activation pour le neurone et la couche spécifiés


Défini le bit sûr limite, utilisé pendant l'entrainement

  • « fann_set_activation_steepness
  • fann_set_callback »
  • PHP Manual
  • Fonctions Fann
  • Défini le bit sûr limite, utilisé pendant l'entrainement

fann_set_bit_fail_limit

(PECL fann >= 1.0.0)

fann_set_bit_fail_limit — Défini le bit sûr limite, utilisé pendant l'entrainement

Description

bool fann_set_bit_fail_limit ( resource $ann , float $bit_fail_limit )

Défini le bit sûr limite, utilisé pendant l'entrainement.

Liste de paramètres

ann

Ressource de réseau de neurones.

bit_fail_limit

Le bit sûr limite.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training


Défini la fonction de rappel à utiliser pendant l'entrainement

  • « fann_set_bit_fail_limit
  • fann_set_cascade_activation_functions »
  • PHP Manual
  • Fonctions Fann
  • Défini la fonction de rappel à utiliser pendant l'entrainement

fann_set_callback

(PECL fann >= 1.0.0)

fann_set_callback — Défini la fonction de rappel à utiliser pendant l'entrainement

Description

bool fann_set_callback ( resource $ann , collable $callback )

Défini la fonction de rappel à utiliser pendant l'entrainement. Elle sera appelée depuis la fonction fann_train_on_data() ou la fonction fann_train_on_file().

Liste de paramètres

ann

Ressource de réseau de neurones.

callback

La fonction de rappel fourni prendra les paramètres suivants :

  • ann - Une ressource représentant le réseau neuronal
  • train - Une ressource représentant les données d'entrainement ou NULL si appelé depuis la fonction fann_train_on_file()
  • max_epochs - Le nombre maximal d'époques que l'entrainement doit continuer
  • epochs_between_reports - Le nombre d'époques entre les appels à cette fonction
  • desired_error - Le choix entre
fann_get_MSE() et
fann_get_bit_fail(), suivant la fonction d'arrêt
choisie par la fonction fann_set_train_stop_function()
  • epochs - L'époque courante

La fonction de rappel doit retourner TRUE. Si elle retourne FALSE, l'entrainement se terminera.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_train_on_data() - Effectue un entrainement sur un jeu de données complet pour une période de temps
  • fann_train_on_file() - Effectue un entrainement sur un jeu complet de données, qui peut être lu depuis un fichier, pour une période de temps


Défini le tableau des fonctions d'activation candidate en cascade

  • « fann_set_callback
  • fann_set_cascade_activation_steepnesses »
  • PHP Manual
  • Fonctions Fann
  • Défini le tableau des fonctions d'activation candidate en cascade

fann_set_cascade_activation_functions

(PECL fann >= 1.0.0)

fann_set_cascade_activation_functions — Défini le tableau des fonctions d'activation candidate en cascade

Description

bool fann_set_cascade_activation_functions ( resource $ann , array $cascade_activation_functions )

Défini le tableau des fonctions d'activation candidate en cascade.

Voir la fonction fann_get_cascade_num_candidates() pour savoir quels neurones candidats seront générés par ce tableau.

Liste de paramètres

ann

Ressource de réseau de neurones.

cascade_activation_functions

Le tableau des fonctions d'activation candidate en cascade.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_set_cascade_activation_functions()


Défini le tableaux des raideurs d'activation candidate en cascade

  • « fann_set_cascade_activation_functions
  • fann_set_cascade_candidate_change_fraction »
  • PHP Manual
  • Fonctions Fann
  • Défini le tableaux des raideurs d'activation candidate en cascade

fann_set_cascade_activation_steepnesses

(PECL fann >= 1.0.0)

fann_set_cascade_activation_steepnesses — Défini le tableaux des raideurs d'activation candidate en cascade

Description

bool fann_set_cascade_activation_steepnesses ( resource $ann , array $cascade_activation_steepnesses_count )

Défini le tableaux des raideurs d'activation candidate en cascade.

Voir la fonction fann_get_cascade_num_candidates() pour savoir quels neurones candidats seront générés par ce tableau.

Liste de paramètres

ann

Ressource de réseau de neurones.

cascade_activation_steepnesses_count

Le tableaux des raideurs d'activation candidate en cascade.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses


Défini la fraction de modification candidate en cascade

  • « fann_set_cascade_activation_steepnesses
  • fann_set_cascade_candidate_limit »
  • PHP Manual
  • Fonctions Fann
  • Défini la fraction de modification candidate en cascade

fann_set_cascade_candidate_change_fraction

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_change_fraction — Défini la fraction de modification candidate en cascade

Description

bool fann_set_cascade_candidate_change_fraction ( resource $ann , float $cascade_candidate_change_fraction )

Défini la fraction de modification candidate en cascade.

Liste de paramètres

ann

Ressource de réseau de neurones.

cascade_candidate_change_fraction

La fraction de modification candidate en cascade.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_cascade_candidate_change_fraction() - Returns the cascade candidate change fraction


Défini la limite candidate

  • « fann_set_cascade_candidate_change_fraction
  • fann_set_cascade_candidate_stagnation_epochs »
  • PHP Manual
  • Fonctions Fann
  • Défini la limite candidate

fann_set_cascade_candidate_limit

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_limit — Défini la limite candidate

Description

bool fann_set_cascade_candidate_limit ( resource $ann , float $cascade_candidate_limit )

Défini la limite candidate.

Liste de paramètres

ann

Ressource de réseau de neurones.

cascade_candidate_limit

La limite candidate.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_cascade_candidate_limit() - Return the candidate limit


Défini le nombre d'époques de stagnation candidates en cascade

  • « fann_set_cascade_candidate_limit
  • fann_set_cascade_max_cand_epochs »
  • PHP Manual
  • Fonctions Fann
  • Défini le nombre d'époques de stagnation candidates en cascade

fann_set_cascade_candidate_stagnation_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_stagnation_epochs — Défini le nombre d'époques de stagnation candidates en cascade

Description

bool fann_set_cascade_candidate_stagnation_epochs ( resource $ann , int $cascade_candidate_stagnation_epochs )

Défini le nombre d'époques de stagnation candidates en cascade.

Liste de paramètres

ann

Ressource de réseau de neurones.

cascade_candidate_stagnation_epochs

Le nombre d'époques de stagnation candidates en cascade.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_cascade_candidate_stagnation_epochs() - Returns the number of cascade candidate stagnation epochs


Défini l'époque maximale candidate

  • « fann_set_cascade_candidate_stagnation_epochs
  • fann_set_cascade_max_out_epochs »
  • PHP Manual
  • Fonctions Fann
  • Défini l'époque maximale candidate

fann_set_cascade_max_cand_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_max_cand_epochs — Défini l'époque maximale candidate

Description

bool fann_set_cascade_max_cand_epochs ( resource $ann , int $cascade_max_cand_epochs )

Défini l'époque maximale candidate.

Liste de paramètres

ann

Ressource de réseau de neurones.

cascade_max_cand_epochs

L'époque maximale candidate.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_cascade_max_cand_epochs() - Returns the maximum candidate epochs


Défini l'époque maximale de sortie

  • « fann_set_cascade_max_cand_epochs
  • fann_set_cascade_min_cand_epochs »
  • PHP Manual
  • Fonctions Fann
  • Défini l'époque maximale de sortie

fann_set_cascade_max_out_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_max_out_epochs — Défini l'époque maximale de sortie

Description

bool fann_set_cascade_max_out_epochs ( resource $ann , int $cascade_max_out_epochs )

Défini l'époque maximale de sortie.

Liste de paramètres

ann

Ressource de réseau de neurones.

cascade_max_out_epochs

L'époque maximale de sortie.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_cascade_max_out_epochs() - Returns the maximum out epochs


Défini l'époque minimale candidate

  • « fann_set_cascade_max_out_epochs
  • fann_set_cascade_min_out_epochs »
  • PHP Manual
  • Fonctions Fann
  • Défini l'époque minimale candidate

fann_set_cascade_min_cand_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_min_cand_epochs — Défini l'époque minimale candidate

Description

bool fann_set_cascade_min_cand_epochs ( resource $ann , int $cascade_min_cand_epochs )

Défini l'époque minimale candidate.

Liste de paramètres

ann

Ressource de réseau de neurones.

cascade_min_cand_epochs

L'époque minimale candidate.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_cascade_min_cand_epochs() - Returns the minimum candidate epochs


Défini l'époque minimale de sortie

  • « fann_set_cascade_min_cand_epochs
  • fann_set_cascade_num_candidate_groups »
  • PHP Manual
  • Fonctions Fann
  • Défini l'époque minimale de sortie

fann_set_cascade_min_out_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_min_out_epochs — Défini l'époque minimale de sortie

Description

bool fann_set_cascade_min_out_epochs ( resource $ann , int $cascade_min_out_epochs )

Défini l'époque minimale de sortie.

Liste de paramètres

ann

Ressource de réseau de neurones.

cascade_min_out_epochs

L'époque minimale de sortie.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_cascade_min_out_epochs() - Returns the minimum out epochs


Défini le nombre de groupes candidats

  • « fann_set_cascade_min_out_epochs
  • fann_set_cascade_output_change_fraction »
  • PHP Manual
  • Fonctions Fann
  • Défini le nombre de groupes candidats

fann_set_cascade_num_candidate_groups

(PECL fann >= 1.0.0)

fann_set_cascade_num_candidate_groups — Défini le nombre de groupes candidats

Description

bool fann_set_cascade_num_candidate_groups ( resource $ann , int $cascade_num_candidate_groups )

Défini le nombre de groupes candidats.

Liste de paramètres

ann

Ressource de réseau de neurones.

cascade_num_candidate_groups

Le nombre de groupes candidats.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_cascade_num_candidate_groups() - Returns the number of candidate groups


Défini la fraction de modification de sortie en cascade

  • « fann_set_cascade_num_candidate_groups
  • fann_set_cascade_output_stagnation_epochs »
  • PHP Manual
  • Fonctions Fann
  • Défini la fraction de modification de sortie en cascade

fann_set_cascade_output_change_fraction

(PECL fann >= 1.0.0)

fann_set_cascade_output_change_fraction — Défini la fraction de modification de sortie en cascade

Description

bool fann_set_cascade_output_change_fraction ( resource $ann , float $cascade_output_change_fraction )

Défini la fraction de modification de sortie en cascade.

Liste de paramètres

ann

Ressource de réseau de neurones.

cascade_output_change_fraction

La fraction de modification de sortie en cascade.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_cascade_output_change_fraction() - Returns the cascade output change fraction


Défini le nombre d'époques de stagnation en cascade de sortie

  • « fann_set_cascade_output_change_fraction
  • fann_set_cascade_weight_multiplier »
  • PHP Manual
  • Fonctions Fann
  • Défini le nombre d'époques de stagnation en cascade de sortie

fann_set_cascade_output_stagnation_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_output_stagnation_epochs — Défini le nombre d'époques de stagnation en cascade de sortie

Description

bool fann_set_cascade_output_stagnation_epochs ( resource $ann , int $cascade_output_stagnation_epochs )

Défini le nombre d'époques de stagnation en cascade de sortie.

Liste de paramètres

ann

Ressource de réseau de neurones.

cascade_output_stagnation_epochs

Le nombre d'époques de stagnation en cascade de sortie.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_cascade_output_stagnation_epochs() - Returns the number of cascade output stagnation epochs


Défini le multiplicateur de poids

  • « fann_set_cascade_output_stagnation_epochs
  • fann_set_error_log »
  • PHP Manual
  • Fonctions Fann
  • Défini le multiplicateur de poids

fann_set_cascade_weight_multiplier

(PECL fann >= 1.0.0)

fann_set_cascade_weight_multiplier — Défini le multiplicateur de poids

Description

bool fann_set_cascade_weight_multiplier ( resource $ann , float $cascade_weight_multiplier )

Défini le multiplicateur de poids.

Liste de paramètres

ann

Ressource de réseau de neurones.

cascade_weight_multiplier

Le multiplicateur de poids.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_cascade_weight_multiplier() - Returns the weight multiplier


Défini l'endroit où les erreurs seront historisées

  • « fann_set_cascade_weight_multiplier
  • fann_set_input_scaling_params »
  • PHP Manual
  • Fonctions Fann
  • Défini l'endroit où les erreurs seront historisées

fann_set_error_log

(PECL fann >= 1.0.0)

fann_set_error_log — Défini l'endroit où les erreurs seront historisées

Description

void fann_set_error_log ( resource $errdat , string $log_file )

Défini l'endroit où les erreurs seront historisées.

Liste de paramètres

errdat

Soit une ressource de réseau de neurones, soit une ressource de données d'entrainement d'un réseau de neurones.

log_file

Le chemin du fichier d'historisation.

Valeurs de retour

Aucune valeur retournée.


Calcule les paramètres d'échelle d'entrée pour une utilisation future, en se basant sur les données d'entrainement

  • « fann_set_error_log
  • fann_set_learning_momentum »
  • PHP Manual
  • Fonctions Fann
  • Calcule les paramètres d'échelle d'entrée pour une utilisation future, en se basant sur les données d'entrainement

fann_set_input_scaling_params

(PECL fann >= 1.0.0)

fann_set_input_scaling_params — Calcule les paramètres d'échelle d'entrée pour une utilisation future, en se basant sur les données d'entrainement

Description

bool fann_set_input_scaling_params ( resource $ann , resource $train_data , float $new_input_min , float $new_input_max )

Calcule les paramètres d'échelle d'entrée pour une utilisation future, en se basant sur les données d'entrainement.

Liste de paramètres

ann

Ressource de réseau de neurones.

train_data

Ressource de données d'entrainement du réseau de neurones.

new_input_min

La limite inférieure souhaitée dans les données d'entrée après mise à l'échelle (pas strictement suivi)

new_input_max

La limite supérieure souhaitée dans les données d'entrée après mise à l'échelle (pas strictement suivi)

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_set_output_scaling_params() - Calcule les paramètres d'échelle de sortie pour une utilisation future, en se basant sur les données d'entrainement


Défini la dynamique d'apprentissage

  • « fann_set_input_scaling_params
  • fann_set_learning_rate »
  • PHP Manual
  • Fonctions Fann
  • Défini la dynamique d'apprentissage

fann_set_learning_momentum

(PECL fann >= 1.0.0)

fann_set_learning_momentum — Défini la dynamique d'apprentissage

Description

bool fann_set_learning_momentum ( resource $ann , float $learning_momentum )

Défini la dynamique d'apprentissage.

Plus d'informations disponible sur la page de documentation de la fonction fann_get_learning_momentum().

Liste de paramètres

ann

Ressource de réseau de neurones.

learning_momentum

La dynamique d'apprentissage.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_learning_momentum() - Returns the learning momentum
  • fann_set_training_algorithm() - Défini l'algorithme d'entrainement


Défini le taux d'apprentissage

  • « fann_set_learning_momentum
  • fann_set_output_scaling_params »
  • PHP Manual
  • Fonctions Fann
  • Défini le taux d'apprentissage

fann_set_learning_rate

(PECL fann >= 1.0.0)

fann_set_learning_rate — Défini le taux d'apprentissage

Description

bool fann_set_learning_rate ( resource $ann , float $learning_rate )

Défini le taux d'apprentissage.

Plus d'informations disponible sur la page de la documentation de la fonction fann_get_learning_rate().

Liste de paramètres

ann

Ressource de réseau de neurones.

learning_rate

Le taux d'apprentissage.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_learning_rate() - Returns the learning rate
  • fann_set_training_algorithm() - Défini l'algorithme d'entrainement


Calcule les paramètres d'échelle de sortie pour une utilisation future, en se basant sur les données d'entrainement

  • « fann_set_learning_rate
  • fann_set_quickprop_decay »
  • PHP Manual
  • Fonctions Fann
  • Calcule les paramètres d'échelle de sortie pour une utilisation future, en se basant sur les données d'entrainement

fann_set_output_scaling_params

(PECL fann >= 1.0.0)

fann_set_output_scaling_params — Calcule les paramètres d'échelle de sortie pour une utilisation future, en se basant sur les données d'entrainement

Description

bool fann_set_output_scaling_params ( resource $ann , resource $train_data , float $new_output_min , float $new_output_max )

Calcule les paramètres d'échelle de sortie pour une utilisation future, en se basant sur les données d'entrainement.

Liste de paramètres

ann

Ressource de réseau de neurones.

train_data

Ressource de données d'entrainement du réseau de neurones.

new_output_min

La limite inférieure souhaitée dans les données de sortie après mise à l'échelle (pas strictement suivi)

new_output_max

La limite supérieur souhaitée dans les données de sortie après mise à l'échelle (pas strictement suivi)

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_set_input_scaling_params() - Calcule les paramètres d'échelle d'entrée pour une utilisation future, en se basant sur les données d'entrainement


Défini le facteur décroissant quickprop

  • « fann_set_output_scaling_params
  • fann_set_quickprop_mu »
  • PHP Manual
  • Fonctions Fann
  • Défini le facteur décroissant quickprop

fann_set_quickprop_decay

(PECL fann >= 1.0.0)

fann_set_quickprop_decay — Défini le facteur décroissant quickprop

Description

bool fann_set_quickprop_decay ( resource $ann , float $quickprop_decay )

Défini le facteur décroissant quickprop.

Liste de paramètres

ann

Ressource de réseau de neurones.

quickprop_decay

Le facteur décroissant quickprop.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_quickprop_decay() - Returns the decay which is a factor that weights should decrease in each iteration during quickprop training


Défini le facteur quickprop mu

  • « fann_set_quickprop_decay
  • fann_set_rprop_decrease_factor »
  • PHP Manual
  • Fonctions Fann
  • Défini le facteur quickprop mu

fann_set_quickprop_mu

(PECL fann >= 1.0.0)

fann_set_quickprop_mu — Défini le facteur quickprop mu

Description

bool fann_set_quickprop_mu ( resource $ann , float $quickprop_mu )

Défini le facteur quickprop mu.

Liste de paramètres

ann

Ressource de réseau de neurones.

quickprop_mu

Le facteur mu.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_quickprop_mu() - Retourne le facteur mu


Défini le facteur de diminution utilisé pendant l'entrainement RPROP

  • « fann_set_quickprop_mu
  • fann_set_rprop_delta_max »
  • PHP Manual
  • Fonctions Fann
  • Défini le facteur de diminution utilisé pendant l'entrainement RPROP

fann_set_rprop_decrease_factor

(PECL fann >= 1.0.0)

fann_set_rprop_decrease_factor — Défini le facteur de diminution utilisé pendant l'entrainement RPROP

Description

bool fann_set_rprop_decrease_factor ( resource $ann , float $rprop_decrease_factor )

Défini le facteur de diminution utilisé pendant l'entrainement RPROP.

Liste de paramètres

ann

Ressource de réseau de neurones.

rprop_decrease_factor

Le facteur de diminution.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_rprop_decrease_factor() - Retourne le facteur d'accroissement utilisé pendant l'entrainement RPROP


Défini la taille maximale de l'étape

  • « fann_set_rprop_decrease_factor
  • fann_set_rprop_delta_min »
  • PHP Manual
  • Fonctions Fann
  • Défini la taille maximale de l'étape

fann_set_rprop_delta_max

(PECL fann >= 1.0.0)

fann_set_rprop_delta_max — Défini la taille maximale de l'étape

Description

bool fann_set_rprop_delta_max ( resource $ann , float $rprop_delta_max )

La taille maximale de l'étape est un nombre positif déterminant combien la taille maximale de l'étape peut être.

Liste de paramètres

ann

Ressource de réseau de neurones.

rprop_delta_max

La taille maximale de l'étape.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_rprop_delta_max() - Retourne la taille maximale de l'étape
  • fann_get_rprop_delta_min() - Retourne la taille minimale de l'étape


Défini la taille minimale de l'étape

  • « fann_set_rprop_delta_max
  • fann_set_rprop_delta_zero »
  • PHP Manual
  • Fonctions Fann
  • Défini la taille minimale de l'étape

fann_set_rprop_delta_min

(PECL fann >= 1.0.0)

fann_set_rprop_delta_min — Défini la taille minimale de l'étape

Description

bool fann_set_rprop_delta_min ( resource $ann , float $rprop_delta_min )

La taille minimale de l'étape est un petit nombre positif déterminant combien la taille minimale de l'étape peut être.

Liste de paramètres

ann

Ressource de réseau de neurones.

rprop_delta_min

La taille minimale de l'étape.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_rprop_delta_min() - Retourne la taille minimale de l'étape


Défini la taille de l'étape initiale

  • « fann_set_rprop_delta_min
  • fann_set_rprop_increase_factor »
  • PHP Manual
  • Fonctions Fann
  • Défini la taille de l'étape initiale

fann_set_rprop_delta_zero

(PECL fann >= 1.0.0)

fann_set_rprop_delta_zero — Défini la taille de l'étape initiale

Description

bool fann_set_rprop_delta_zero ( resource $ann , float $rprop_delta_zero )

Défini la taille de l'étape initiale ; doit être un nombre positif.

Liste de paramètres

ann

Ressource de réseau de neurones.

rprop_delta_zero

La taille de l'étape initiale.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_rprop_delta_zero() - Retourne la taille initiale de l'étape
  • fann_get_rprop_delta_min() - Retourne la taille minimale de l'étape
  • fann_get_rprop_delta_max() - Retourne la taille maximale de l'étape


Défini le facteur d'augmentation utilisé pendant l'entrainement RPROP

  • « fann_set_rprop_delta_zero
  • fann_set_sarprop_step_error_shift »
  • PHP Manual
  • Fonctions Fann
  • Défini le facteur d'augmentation utilisé pendant l'entrainement RPROP

fann_set_rprop_increase_factor

(PECL fann >= 1.0.0)

fann_set_rprop_increase_factor — Défini le facteur d'augmentation utilisé pendant l'entrainement RPROP

Description

bool fann_set_rprop_increase_factor ( resource $ann , float $rprop_increase_factor )

Défini le facteur d'augmentation utilisé pendant l'entrainement RPROP.

Liste de paramètres

ann

Ressource de réseau de neurones.

rprop_increase_factor

Le facteur d'augmentation.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_rprop_increase_factor() - Retourne le facteur croissant utilisé pendant l'entrainement RPROP


Défini le changement de l'étape d'erreur sarprop

  • « fann_set_rprop_increase_factor
  • fann_set_sarprop_step_error_threshold_factor »
  • PHP Manual
  • Fonctions Fann
  • Défini le changement de l'étape d'erreur sarprop

fann_set_sarprop_step_error_shift

(PECL fann >= 1.0.0)

fann_set_sarprop_step_error_shift — Défini le changement de l'étape d'erreur sarprop

Description

bool fann_set_sarprop_step_error_shift ( resource $ann , float $sarprop_step_error_shift )

Défini le changement de l'étape d'erreur sarprop.

Liste de paramètres

ann

Ressource de réseau de neurones.

sarprop_step_error_shift

Le changement de l'étape d'erreur sarprop.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_sarprop_step_error_shift() - Retourne le décalage de l'erreur lors de l'étape sarprop


Défini le facteur de seuil de l'étape d'erreur sarprop

  • « fann_set_sarprop_step_error_shift
  • fann_set_sarprop_temperature »
  • PHP Manual
  • Fonctions Fann
  • Défini le facteur de seuil de l'étape d'erreur sarprop

fann_set_sarprop_step_error_threshold_factor

(PECL fann >= 1.0.0)

fann_set_sarprop_step_error_threshold_factor — Défini le facteur de seuil de l'étape d'erreur sarprop

Description

bool fann_set_sarprop_step_error_threshold_factor ( resource $ann , float $sarprop_step_error_threshold_factor )

Défini le facteur de seuil de l'étape d'erreur sarprop.

Liste de paramètres

ann

Ressource de réseau de neurones.

sarprop_step_error_threshold_factor

Le facteur de seuil de l'étape d'erreur sarprop.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_sarprop_step_error_threshold_factor() - Retourne le facteur de seuil d'erreur lors de l'étape sarprop


Défini la températeur sarprop

  • « fann_set_sarprop_step_error_threshold_factor
  • fann_set_sarprop_weight_decay_shift »
  • PHP Manual
  • Fonctions Fann
  • Défini la températeur sarprop

fann_set_sarprop_temperature

(PECL fann >= 1.0.0)

fann_set_sarprop_temperature — Défini la températeur sarprop

Description

bool fann_set_sarprop_temperature ( resource $ann , float $sarprop_temperature )

Défini la températeur sarprop.

Liste de paramètres

ann

Ressource de réseau de neurones.

sarprop_temperature

La températeur sarprop.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_sarprop_temperature() - Retourne la température sarprop


Défini le changement décroissant du poids de sarprop

  • « fann_set_sarprop_temperature
  • fann_set_scaling_params »
  • PHP Manual
  • Fonctions Fann
  • Défini le changement décroissant du poids de sarprop

fann_set_sarprop_weight_decay_shift

(PECL fann >= 1.0.0)

fann_set_sarprop_weight_decay_shift — Défini le changement décroissant du poids de sarprop

Description

bool fann_set_sarprop_weight_decay_shift ( resource $ann , float $sarprop_weight_decay_shift )

Défini le changement décroissant du poids de sarprop.

Liste de paramètres

ann

Ressource de réseau de neurones.

sarprop_weight_decay_shift

Le changement décroissant du poids de sarprop.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_sarprop_weight_decay_shift() - Retourne le changement décroissant du poids sarprop


Calcule les paramètres d'échelles d'entrée et de sortie utilisés en se basant sur les données d'entrainement

  • « fann_set_sarprop_weight_decay_shift
  • fann_set_train_error_function »
  • PHP Manual
  • Fonctions Fann
  • Calcule les paramètres d'échelles d'entrée et de sortie utilisés en se basant sur les données d'entrainement

fann_set_scaling_params

(PECL fann >= 1.0.0)

fann_set_scaling_params — Calcule les paramètres d'échelles d'entrée et de sortie utilisés en se basant sur les données d'entrainement

Description

bool fann_set_scaling_params ( resource $ann , resource $train_data , float $new_input_min , float $new_input_max , float $new_output_min , float $new_output_max )

Calcule les paramètres d'échelles d'entrée et de sortie utilisés en se basant sur les données d'entrainement.

Liste de paramètres

ann

Ressource de réseau de neurones.

train_data

Ressource de données d'entrainement du réseau de neurones.

new_input_min

La limite inférieure souhaitée dans les données d'entrée après mise à l'échelle (pas strictement suivie)

new_input_max

La limite supérieure souhaitée dans les données d'entrée après mise à l'échelle (pas strictement suivie)

new_output_min

La limite inférieure souhaitée dans les données de sortie après mise à l'échelle (pas strictement suivie)

new_output_max

La limite supérieure souhaitée dans les données de sortie après mise à l'échelle (pas strictement suivie)

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_set_input_scaling_params() - Calcule les paramètres d'échelle d'entrée pour une utilisation future, en se basant sur les données d'entrainement
  • fann_set_output_scaling_params() - Calcule les paramètres d'échelle de sortie pour une utilisation future, en se basant sur les données d'entrainement


Défini la fonction d'erreur utilisée pendant l'entrainement

  • « fann_set_scaling_params
  • fann_set_train_stop_function »
  • PHP Manual
  • Fonctions Fann
  • Défini la fonction d'erreur utilisée pendant l'entrainement

fann_set_train_error_function

(PECL fann >= 1.0.0)

fann_set_train_error_function — Défini la fonction d'erreur utilisée pendant l'entrainement

Description

bool fann_set_train_error_function ( resource $ann , int $error_function )

Défini la fonction d'erreur utilisée pendant l'entrainement.

Les fonctions d'erreur sont décrites dans la page de la documentation sur les constantes des fonctions d'erreur.

Liste de paramètres

ann

Ressource de réseau de neurones.

error_function

Une constante de fonction d'erreur

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_train_error_function() - Retourne la fonction d'erreur utilisée pendant l'entrainement


Défini la fonction d'arrêt à utiliser durant l'entrainement

  • « fann_set_train_error_function
  • fann_set_training_algorithm »
  • PHP Manual
  • Fonctions Fann
  • Défini la fonction d'arrêt à utiliser durant l'entrainement

fann_set_train_stop_function

(PECL fann >= 1.0.0)

fann_set_train_stop_function — Défini la fonction d'arrêt à utiliser durant l'entrainement

Description

bool fann_set_train_stop_function ( resource $ann , int $stop_function )

Défini la fonction d'arrêt à utiliser durant l'entrainement.

Les fonctions d'arrêt sont décrites dans la page de la documentation sur les constantes des fonctions d'arrêt.

Liste de paramètres

ann

Ressource de réseau de neurones.

stop_function

Une constante de fonction d'arrêt.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_train_stop_function() - Retourne la fonction d'arrêt utilisée pendant l'entrainement


Défini l'algorithme d'entrainement

  • « fann_set_train_stop_function
  • fann_set_weight_array »
  • PHP Manual
  • Fonctions Fann
  • Défini l'algorithme d'entrainement

fann_set_training_algorithm

(PECL fann >= 1.0.0)

fann_set_training_algorithm — Défini l'algorithme d'entrainement

Description

bool fann_set_training_algorithm ( resource $ann , int $training_algorithm )

Défini l'algorithme d'entrainement.

Plus d'informations disponible sur la page de la fonction fann_get_training_algorithm().

Liste de paramètres

ann

Ressource de réseau de neurones.

training_algorithm

Une constante d'algorithme d'entrainement

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_get_training_algorithm() - Retourne l'algorithme d'entrainement


Défini les connexions dans le réseau

  • « fann_set_training_algorithm
  • fann_set_weight »
  • PHP Manual
  • Fonctions Fann
  • Défini les connexions dans le réseau

fann_set_weight_array

(PECL fann >= 1.0.0)

fann_set_weight_array — Défini les connexions dans le réseau

Description

bool fann_set_weight_array ( resource $ann , array $connections )

Défini les connexions dans le réseau.

Seuls les poids peuvent être changés ; les connexions et les poids sont ignorés s'ils n'existent pas déjà dans le réseau.

Liste de paramètres

ann

Ressource de réseau de neurones.

connections

Un tableau d'objets FANNConnection

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Défini une connexion dans le réseau

  • « fann_set_weight_array
  • fann_shuffle_train_data »
  • PHP Manual
  • Fonctions Fann
  • Défini une connexion dans le réseau

fann_set_weight

(PECL fann >= 1.0.0)

fann_set_weight — Défini une connexion dans le réseau

Description

bool fann_set_weight ( resource $ann , int $from_neuron , int $to_neuron , float $weight )

Défini une connexion dans le réseau.

Liste de paramètres

ann

Ressource de réseau de neurones.

from_neuron

Le neurone où la connexion commence

to_neuron

Le neurone où la connexion se termine

weight

Taille de la connexion

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Mélange les données d'entrainement, et rend aléaloire leurs ordres

  • « fann_set_weight
  • fann_subset_train_data »
  • PHP Manual
  • Fonctions Fann
  • Mélange les données d'entrainement, et rend aléaloire leurs ordres

fann_shuffle_train_data

(PECL fann >= 1.0.0)

fann_shuffle_train_data — Mélange les données d'entrainement, et rend aléaloire leurs ordres

Description

bool fann_shuffle_train_data ( resource $train_data )

Mélange les données d'entrainement, et rend aléaloire leurs ordres. Ceci est recommandé pour un entrainement incrémental, alors qu'il n'a aucune influence sur le lot d'entrainement.

Liste de paramètres

train_data

Ressource de données d'entrainement du réseau de neurones.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Retourne une copie d'un sous-jeu de données d'entrainement

  • « fann_shuffle_train_data
  • fann_test_data »
  • PHP Manual
  • Fonctions Fann
  • Retourne une copie d'un sous-jeu de données d'entrainement

fann_subset_train_data

(PECL fann >= 1.0.0)

fann_subset_train_data — Retourne une copie d'un sous-jeu de données d'entrainement

Description

resource fann_subset_train_data ( resource $data , int $pos , int $length )

Retourne une copie du sous-jeu de données d'entrainement, en commençant à la position pos et des length éléments suivants.

Le code fann_subset_train_data(train_data, 0, fann_length_train_data(train_data)) réalise la même chose que la fonction fann_duplicate_train_data().

Liste de paramètres

data

Ressource de données d'entrainement du réseau de neurones.

pos

Position de départ.

length

Le nombre d'éléments copiés.

Valeurs de retour

Retourne une ressource de données d'entrainement en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • fann_duplicate_train_data() - Retourne une copie exact des données d'entrainement fann


Effectue un test sur un jeu de données d'entrainement et calcule le MSE pour ces données

  • « fann_subset_train_data
  • fann_test »
  • PHP Manual
  • Fonctions Fann
  • Effectue un test sur un jeu de données d'entrainement et calcule le MSE pour ces données

fann_test_data

(PECL fann >= 1.0.0)

fann_test_data — Effectue un test sur un jeu de données d'entrainement et calcule le MSE pour ces données

Description

float fann_test_data ( resource $ann , resource $data )

Effectue un test sur un jeu de données d'entrainement et calcule le MSE pour ces données.

Cette fonction met à jour le MSE à sa valeur la plus sûre.

Liste de paramètres

ann

Ressource de réseau de neurones.

data

Ressource de données d'entrainement du réseau de neurones.

Valeurs de retour

Le MSE mis à jour, ou FALSE si une erreur survient.

Voir aussi

  • fann_train_on_data() - Effectue un entrainement sur un jeu de données complet pour une période de temps
  • fann_train_epoch() - Effectue un entrainement avec un jeu de données d'entrainement
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_training_algorithm() - Défini l'algorithme d'entrainement


Effectue un test avec un jeu d'entrées et un jeu de sorties désirées

  • « fann_test_data
  • fann_train_epoch »
  • PHP Manual
  • Fonctions Fann
  • Effectue un test avec un jeu d'entrées et un jeu de sorties désirées

fann_test

(PECL fann >= 1.0.0)

fann_test — Effectue un test avec un jeu d'entrées et un jeu de sorties désirées

Description

bool fann_test ( resource $ann , array $input , array $desired_output )

Effectue un test avec un jeu d'entrées et un jeu de sorties désirées. Cette opération met à jour l'erreur quadratique moyenne, mais ne modifie en aucune façon le réseau.

Liste de paramètres

ann

Ressource de réseau de neurones.

input

Un tableau d'entrées. Ce tableau doit être d'une longueur exacte de fann_get_num_input().

desired_output

Un tableau de sorties désirées. Ce tableau doit être d'une longueur exacte fann_get_num_output().

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_test_data() - Effectue un test sur un jeu de données d'entrainement et calcule le MSE pour ces données
  • fann_train() - Effectue un entrainement sur une itération avec un jeu d'entrées, et un jeu de sorties désirées
  • fann_get_num_input() - Récupère le nombre de neurones entrants
  • fann_get_num_output() - Récupère le nombre de neurones sortants


Effectue un entrainement avec un jeu de données d'entrainement

  • « fann_test
  • fann_train_on_data »
  • PHP Manual
  • Fonctions Fann
  • Effectue un entrainement avec un jeu de données d'entrainement

fann_train_epoch

(PECL fann >= 1.0.0)

fann_train_epoch — Effectue un entrainement avec un jeu de données d'entrainement

Description

float fann_train_epoch ( resource $ann , resource $data )

Effectue un entrainement avec un jeu de données d'entrainement. Une époque correspond au fait que toutes les données d'entrainement sont considérées comme étant exactement uniques.

Cette fonction retourne l'erreur MSE sachant qu'elle est calculée soit avant, soit pendant l'entrainement actuel. Ce n'est pas le MSE actuel après l'époque d'entrainement, sachant que ce calcul nécessite le parcours de la totalité du jeu de données d'entrainement au moins une fois. Il est donc plus adéquate d'utiliser cette valeur pendant l'entrainement.

L'algorithme d'entrainement utilisé par cette fonction est choisi par la fonction fann_set_training_algorithm().

Liste de paramètres

ann

Ressource de réseau de neurones.

data

Ressource de données d'entrainement du réseau de neurones.

Valeurs de retour

Le MSE, ou FALSE si une erreur survient.

Voir aussi

  • fann_train_on_data() - Effectue un entrainement sur un jeu de données complet pour une période de temps
  • fann_test_data() - Effectue un test sur un jeu de données d'entrainement et calcule le MSE pour ces données
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_training_algorithm() - Défini l'algorithme d'entrainement


Effectue un entrainement sur un jeu de données complet pour une période de temps

  • « fann_train_epoch
  • fann_train_on_file »
  • PHP Manual
  • Fonctions Fann
  • Effectue un entrainement sur un jeu de données complet pour une période de temps

fann_train_on_data

(PECL fann >= 1.0.0)

fann_train_on_data — Effectue un entrainement sur un jeu de données complet pour une période de temps

Description

bool fann_train_on_data ( resource $ann , resource $data , int $max_epochs , int $epochs_between_reports , float $desired_error )

Effectue un entrainement sur un jeu de données complet pour une période de temps.

Cet entrainement utiise l'algorithme d'entrainement choisi par la fonction fann_set_training_algorithm() et le jeu de paramètres pour ces algorithmes d'entrainement.

Liste de paramètres

ann

Ressource de réseau de neurones.

data

Ressource de données d'entrainement du réseau de neurones.

max_epochs

Le nombre maximal d'époques que l'entrainement doit durer

epochs_between_reports

Le nombre d'époques entre les appels à la fonction de rappel. Une valeur de zéro signifie que la fonction utilisateur ne sera jamais appelée.

desired_error

Le fann_get_MSE() ou le fann_get_bit_fail() voulu, suivant la fonction d'arrêt choisie par la fonction fann_set_train_stop_function()

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_train_on_file() - Effectue un entrainement sur un jeu complet de données, qui peut être lu depuis un fichier, pour une période de temps
  • fann_train_epoch() - Effectue un entrainement avec un jeu de données d'entrainement
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_train_stop_function() - Défini la fonction d'arrêt à utiliser durant l'entrainement
  • fann_set_training_algorithm() - Défini l'algorithme d'entrainement
  • fann_set_callback() - Défini la fonction de rappel à utiliser pendant l'entrainement


Effectue un entrainement sur un jeu complet de données, qui peut être lu depuis un fichier, pour une période de temps

  • « fann_train_on_data
  • fann_train »
  • PHP Manual
  • Fonctions Fann
  • Effectue un entrainement sur un jeu complet de données, qui peut être lu depuis un fichier, pour une période de temps

fann_train_on_file

(PECL fann >= 1.0.0)

fann_train_on_file — Effectue un entrainement sur un jeu complet de données, qui peut être lu depuis un fichier, pour une période de temps

Description

bool fann_train_on_file ( resource $ann , string $filename , int $max_epochs , int $epochs_between_reports , float $desired_error )

Effectue un entrainement sur un jeu complet de données, qui peut être lu depuis un fichier, pour une période de temps.

Cet entrainement utilise l'algorithme d'entrainement choisi par la fonction fann_set_training_algorithm() et le jeu de paramètres pour ces algorithmes d'entrainement.

Liste de paramètres

ann

Ressource de réseau de neurones.

filename

Le fichier contenant les données d'entrainement

max_epochs

Le nombre maximal d'époques que l'entrainement doit traiter

epochs_between_reports

Le nombre maximal d'époques entre l'appel à la fonction utilisateur. Une valeur de zéro signifie que la fonction utilisateur n'est pas appelée.

desired_error

Le fann_get_MSE() ou le fann_get_bit_fail() voulu, suivant la fonction d'arrêt choisi par la fonction fann_set_train_stop_function()

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_train_on_data() - Effectue un entrainement sur un jeu de données complet pour une période de temps
  • fann_train_epoch() - Effectue un entrainement avec un jeu de données d'entrainement
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_train_stop_function() - Défini la fonction d'arrêt à utiliser durant l'entrainement
  • fann_set_training_algorithm() - Défini l'algorithme d'entrainement
  • fann_set_callback() - Défini la fonction de rappel à utiliser pendant l'entrainement


Effectue un entrainement sur une itération avec un jeu d'entrées, et un jeu de sorties désirées

  • « fann_train_on_file
  • FANNConnection »
  • PHP Manual
  • Fonctions Fann
  • Effectue un entrainement sur une itération avec un jeu d'entrées, et un jeu de sorties désirées

fann_train

(PECL fann >= 1.0.0)

fann_train — Effectue un entrainement sur une itération avec un jeu d'entrées, et un jeu de sorties désirées

Description

bool fann_train ( resource $ann , array $input , array $desired_output )

Effectue un entrainement sur une itération avec un jeu d'entrées, et un jeu de sorties désirées. Cet entrainement est toujours un entrainement incrémental, sachant que seulement un masque est présenté.

Liste de paramètres

ann

Ressource de réseau de neurones.

input

Un tableau d'entrées. Ce tableau doit être exactement d'une longueur de fann_get_num_input().

desired_output

Un tableau de sorties désirées. Ce tableau doit être exactement d'une longueur de fann_get_num_output().

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • fann_train_on_data() - Effectue un entrainement sur un jeu de données complet pour une période de temps
  • fann_train_epoch() - Effectue un entrainement avec un jeu de données d'entrainement
  • fann_get_num_input() - Récupère le nombre de neurones entrants
  • fann_get_num_output() - Récupère le nombre de neurones sortants


The FANNConnection class

(No version information available, might only be in Git)

Introduction

FANNConnection is used for the neural network connection. The objects of this class are used in fann_get_connection_array() and fann_set_weight_array().

Synopsis de la classe

FANNConnection {
/* Propriétés */
public $from_neuron ;
public $to_neuron ;
public $weight ;
/* Méthodes */
public __construct ( int $from_neuron , int $to_neuron , float $weight )
public int getFromNeuron ( void )
public int getToNeuron ( void )
public void getWeight ( void )
public bool setWeight ( float $weight )
}

Propriétés

from_neuron

The neuron where the connection starts.

to_neuron

The neuron where the connection ends.

weight

The weight of the connection.

Sommaire

  • FANNConnection::__construct — Le constructeur de connexion
  • FANNConnection::getFromNeuron — Retourne la position du neurone de départ
  • FANNConnection::getToNeuron — Retourne la position du neurone de fin
  • FANNConnection::getWeight — Retourne le poids de la connexion
  • FANNConnection::setWeight — Défini le poids de la connexion


Le constructeur de connexion

  • « FANNConnection
  • FANNConnection::getFromNeuron »
  • PHP Manual
  • FANNConnection
  • Le constructeur de connexion

FANNConnection::__construct

(PECL fann >= 1.0.0)

FANNConnection::__construct — Le constructeur de connexion

Description

public FANNConnection::__construct ( int $from_neuron , int $to_neuron , float $weight )

Crée une nouvelle connexion et initialise ces paramètres. Après avoir créée la connexion, seul le poids peut être modifié.

Liste de paramètres

from_neuron

Le numéro de la position du neurone de départ.

to_neuron

Le numéro de la position du neurone de fin.

weight

La valeur de poids de la connexion.


Retourne la position du neurone de départ

  • « FANNConnection::__construct
  • FANNConnection::getToNeuron »
  • PHP Manual
  • FANNConnection
  • Retourne la position du neurone de départ

FANNConnection::getFromNeuron

(PECL fann >= 1.0.0)

FANNConnection::getFromNeuron — Retourne la position du neurone de départ

Description

public int FANNConnection::getFromNeuron ( void )

Retourne la position du neurone de départ.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La position du neurone de départ.


Retourne la position du neurone de fin

  • « FANNConnection::getFromNeuron
  • FANNConnection::getWeight »
  • PHP Manual
  • FANNConnection
  • Retourne la position du neurone de fin

FANNConnection::getToNeuron

(PECL fann >= 1.0.0)

FANNConnection::getToNeuron — Retourne la position du neurone de fin

Description

public int FANNConnection::getToNeuron ( void )

Retourne la position du neurone de fin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La position du neurone de fin.


Retourne le poids de la connexion

  • « FANNConnection::getToNeuron
  • FANNConnection::setWeight »
  • PHP Manual
  • FANNConnection
  • Retourne le poids de la connexion

FANNConnection::getWeight

(PECL fann >= 1.0.0)

FANNConnection::getWeight — Retourne le poids de la connexion

Description

public void FANNConnection::getWeight ( void )

Retourne le poids de la connexion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le poids de la connexion.


Défini le poids de la connexion

  • « FANNConnection::getWeight
  • JSON »
  • PHP Manual
  • FANNConnection
  • Défini le poids de la connexion

FANNConnection::setWeight

(PECL fann >= 1.0.0)

FANNConnection::setWeight — Défini le poids de la connexion

Description

public bool FANNConnection::setWeight ( float $weight )

Défini le poids de la connexion.

Cette méthode est différente de la fonction fann_set_weight(). Elle ne met pas à jour la valeur du poids sur le réseau. La valeur du réseau est mise à jour seulement après l'appel à la fonction fann_set_weight_array().

Liste de paramètres

weight

Le poids de la connexion.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Notation Objet JavaScript

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • JsonSerializable — L'interface JsonSerializable
    • JsonSerializable::jsonSerialize — Spécifie les données qui doivent être linéarisées en JSON
  • Fonctions JSON
    • json_decode — Décode une chaîne JSON
    • json_encode — Retourne la représentation JSON d'une valeur
    • json_last_error_msg — Retourne le message de la dernière erreur survenue lors de l'appel à la fonction json_encode() ou json_decode()
    • json_last_error — Retourne la dernière erreur JSON


Introduction

Cette extension implémente le format d'échange de données » JavaScript Object Notation (JSON). Le décodage est géré par un moteur d'analyse basé sur le JSON_checker écrit par Douglas Crockford.

Note:

PHP implémente un sur-ensemble de JSON tel que spécifié dans la » RFC 7159 originale.


Installation

Depuis PHP 5.2.0, l'extension JSON est fournie et compilée dans PHP par défaut.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/json


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes suivantes indiquent le type d'erreur retournée par la fonction json_last_error().

JSON_ERROR_NONE (entier)
Aucune erreur n'est survenue. Disponible depuis PHP 5.3.0.
JSON_ERROR_DEPTH (entier)
La profondeur maximale de la pile a été atteinte. Disponible depuis PHP 5.3.0.
JSON_ERROR_STATE_MISMATCH (entier)
Survient avec un underflow ou avec une inadéquation des modes. Disponible depuis PHP 5.3.0.
JSON_ERROR_CTRL_CHAR (entier)
Erreur lors du contrôle des caractères ; probablement un encodage incorrect. Disponible depuis PHP 5.3.0.
JSON_ERROR_SYNTAX (entier)
Erreur de syntaxe. Disponible depuis PHP 5.3.0.
JSON_ERROR_UTF8 (entier)
Caractères UTF-8 mal formés, probablement mal encodés. Cette constante est disponible depuis PHP 5.3.3.
JSON_ERROR_RECURSION (integer)

L'objet ou le tableau passé à la fonction json_encode() inclut les références récursives et ne peuvent être encodées. Si l'option JSON_PARTIAL_OUTPUT_ON_ERROR a été fournie, NULL sera encodé à la place de la référence récursive.

Cette constante est disponible depuis PHP 5.5.0.

JSON_ERROR_INF_OR_NAN (integer)

La valeur passée à la fonction json_encode() inclut soit NAN, soit INF. Si l'option JSON_PARTIAL_OUTPUT_ON_ERROR a été fournie, 0 sera encodé à la place de ces nombres spéciaux.

Cette constante est disponible depuis PHP 5.5.0.

JSON_ERROR_UNSUPPORTED_TYPE (integer)

Une valeur d'un type non supporté a été fournie à la fonction json_encode(), comme par exemple une resource. Si l'option JSON_PARTIAL_OUTPUT_ON_ERROR a été fournie, NULL sera encodé à la place de la valeur non supportée.

Cette constante est disponible depuis PHP 5.5.0.

Les constantes suivantes peuvent être combinées pour former des options de json_encode().

JSON_HEX_TAG (entier)
Tous les caractères < et > sont convertis en séquences \u003C et \u003E. Disponible depuis PHP 5.3.0.
JSON_HEX_AMP (entier)
Tous les caractères & sont convertis en \u0026. Disponible depuis PHP 5.3.0.
JSON_HEX_APOS (entier)
Tous les guillemets ' sont convertis en \u0027. Disponible depuis PHP 5.3.0.
JSON_HEX_QUOT (entier)
Tous les guillemets doubles " sont convertis en \u0022. Disponible depuis PHP 5.3.0.
JSON_FORCE_OBJECT (entier)
Produit un objet plutôt qu'un tableau, lorsqu'un tableau non-associatif est utilisé. C'est particulièrement utile lorsque le destinataire du résultat attend un objet, et que le tableau est vide. Disponible depuis PHP 5.3.0.
JSON_NUMERIC_CHECK (entier)
Encode les chaînes numériques en tant que nombres. Disponible depuis PHP 5.3.3.
JSON_BIGINT_AS_STRING (entier)
Encode les gros entiers sous forme d'une chaîne de caractères. Disponible depuis PHP 5.4.0.
JSON_PRETTY_PRINT (entier)
Utilise des espaces dans les données retournées pour les formater. Disponible depuis PHP 5.4.0.
JSON_UNESCAPED_SLASHES (entier)
Ne pas échapper les caractères /. Disponible depuis PHP 5.4.0.
JSON_UNESCAPED_UNICODE (entier)
Encode les caractères multi-octets Unicode littéralement (le comportement par défaut est de les échapper, i.e. \uXXXX). Disponible depuis PHP 5.4.0.
JSON_PRESERVE_ZERO_FRACTION (integer)
S'assure que les valeurs de type float sont toujours encodées comme valeur de type float. Disponible depuis PHP 5.6.6.


L'interface JsonSerializable

(PHP 5 >= 5.4.0, PHP 7)

Introduction

Les objets implémentant l'interface JsonSerializable peuvent personnaliser leur représentation JSON lors de l'encodage avec la fonction json_encode().

Sommaire de l'Interface

JsonSerializable {
/* Méthodes */
abstract public mixed jsonSerialize ( void )
}

Sommaire

  • JsonSerializable::jsonSerialize — Spécifie les données qui doivent être linéarisées en JSON


Spécifie les données qui doivent être linéarisées en JSON

  • « JsonSerializable
  • Fonctions JSON »
  • PHP Manual
  • JsonSerializable
  • Spécifie les données qui doivent être linéarisées en JSON

JsonSerializable::jsonSerialize

(PHP 5 >= 5.4.0, PHP 7)

JsonSerializable::jsonSerialize — Spécifie les données qui doivent être linéarisées en JSON

Description

abstract public mixed JsonSerializable::jsonSerialize ( void )

Linéarise l'objet en une valeur qui peut être linéarisé nativement par la fonction json_encode().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les données qui peuvent être linéarisées par la fonction json_encode(), qui peuvent être des valeurs de n'importe quel type autre qu'une ressource.

Exemples

Exemple #1 Exemple avec JsonSerializable::jsonSerialize() retournant un tableau

<?php
class ArrayValue implements JsonSerializable {
    public function __construct(array $array) {
        $this->array = $array;
    }

    public function jsonSerialize() {
        return $this->array;
    }
}

$array = [1, 2, 3];
echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

L'exemple ci-dessus va afficher :

[
    1,
    2,
    3
]

Exemple #2 Exemple avec JsonSerializable::jsonSerialize() retournant un tableau associatif

<?php
class ArrayValue implements JsonSerializable {
    public function __construct(array $array) {
        $this->array = $array;
    }

    public function jsonSerialize() {
        return $this->array;
    }
}

$array = ['foo' => 'bar', 'quux' => 'baz'];
echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

L'exemple ci-dessus va afficher :

{
    "foo": "bar",
    "quux": "baz"
}

Exemple #3 Exemple avec JsonSerializable::jsonSerialize() retournant un entier

<?php
class IntegerValue implements JsonSerializable {
    public function __construct($number) {
        $this->number = (integer) $number;
    }

    public function jsonSerialize() {
        return $this->number;
    }
}

echo json_encode(new IntegerValue(1), JSON_PRETTY_PRINT);
?>

L'exemple ci-dessus va afficher :

1

Exemple #4 Exemple avec JsonSerializable::jsonSerialize() retournant une chaîne de caractères

<?php
class StringValue implements JsonSerializable {
    public function __construct($string) {
        $this->string = (string) $string;
    }

    public function jsonSerialize() {
        return $this->string;
    }
}

echo json_encode(new StringValue('Hello!'), JSON_PRETTY_PRINT);
?>

L'exemple ci-dessus va afficher :

"Hello!"


Fonctions JSON

Sommaire

  • json_decode — Décode une chaîne JSON
  • json_encode — Retourne la représentation JSON d'une valeur
  • json_last_error_msg — Retourne le message de la dernière erreur survenue lors de l'appel à la fonction json_encode() ou json_decode()
  • json_last_error — Retourne la dernière erreur JSON


Décode une chaîne JSON

  • « Fonctions JSON
  • json_encode »
  • PHP Manual
  • Fonctions JSON
  • Décode une chaîne JSON

json_decode

(PHP 5 >= 5.2.0, PECL json >= 1.2.0, PHP 7)

json_decode — Décode une chaîne JSON

Description

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

Récupère une chaîne encodée JSON et la convertit en une variable PHP.

Liste de paramètres

json

La chaîne json à décoder.

Cette fonction ne traite qu'avec des chaînes encodées avec UTF-8.

Note:

PHP implémente un sur-ensemble de JSON tel que spécifié dans la » RFC 7159 originale.

assoc

Lorsque ce paramètre vaut TRUE, l'objet retourné sera converti en un tableau associatif.

depth

Définit la profondeur de récursion.

options

Un masque d'options JSON decode. Actuellement, seul JSON_BIGINT_AS_STRING est supporté (par défaut, les gros entiers sont convertis en nombres à virgule flottante)

Valeurs de retour

Retourne la valeur encodée dans le paramètre json dans le type PHP approprié. Les valeurs true, false et null sont retournées respectivement comme TRUE, FALSE et NULL. NULL est retourné si le paramètre json n'a pu être décodé ou si les données encodées sont plus profondes que la limite de récursion fournie.

Exemples

Exemple #1 Exemple avec json_decode()

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($json, true));

?>

L'exemple ci-dessus va afficher :

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

Exemple #2 Accès à des propriétés d'objet invalides

Accéder à des éléments d'un objet qui contiennent des caractères non permis par la convention de nommage de PHP (i.e. le trait d'union) peut être effectué en encapsulant le nom de l'élément avec des crochets et des apostrophes.

<?php

$json = '{"foo-bar": 12345}';

$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345

?>

Exemple #3 Erreurs habituelles lors de l'utilisation de la fonction json_decode()

<?php

// Les chaînes suivantes sont valides en JavaScript mais pas en JSON

// Le nom et la valeur doivent être entourés de guillemets doubles.
// Les guillemets simples ne sont pas valides.
$bad_json = "{ 'bar': 'baz' }";
json_decode($bad_json); // null

// Le nom doit être entouré de guillemets doubles.
$bad_json = '{ bar: "baz" }';
json_decode($bad_json); // null

// La virgule de fin n'est pas autorisée.
$bad_json = '{ bar: "baz", }';
json_decode($bad_json); // null

?>

Exemple #4 Erreurs avec le paramètre depth

<?php
// Encodage dles données.
$json = json_encode(
    array(
        1 => array(
            'English' => array(
                'One',
                'January'
            ),
            'French' => array(
                'Une',
                'Janvier'
            )
        )
    )
);

// Définition des erreurs
$constants = get_defined_constants(true);
$json_errors = array();
foreach ($constants["json"] as $name => $value) {
 if (!strncmp($name, "JSON_ERROR_", 11)) {
  $json_errors[$value] = $name;
 }
}

// Affichage des erreurs pour les différentes profondeurs.
foreach (range(4, 3, -1) as $depth) {
    var_dump(json_decode($json, true, $depth));
    echo 'Dernière erreur : ', $json_errors[json_last_error()], PHP_EOL, PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

array(1) {
  [1]=>
  array(2) {
    ["English"]=>
    array(2) {
      [0]=>
      string(3) "One"
      [1]=>
      string(7) "January"
    }
    ["French"]=>
    array(2) {
      [0]=>
      string(3) "Une"
      [1]=>
      string(7) "Janvier"
    }
  }
}
Dernière erreur : JSON_ERROR_NONE

NULL
Dernière erreur : JSON_ERROR_DEPTH

Exemple #5 Exemple avec json_decode() et de gros entiers

<?php
$json = '{"number": 12345678901234567890}';

var_dump(json_decode($json));
var_dump(json_decode($json, false, 512, JSON_BIGINT_AS_STRING));

?>

L'exemple ci-dessus va afficher :

object(stdClass)#1 (1) {
  ["number"]=>
  float(1.2345678901235E+19)
}
object(stdClass)#1 (1) {
  ["number"]=>
  string(20) "12345678901234567890"
}

Notes

Note:

La spécification JSON ne fait pas partie de Javascript mais d'un sous-projet de Javascript.

Note:

Si une erreur survient lors du décodage, la fonction json_last_error() (ou json_last_error_msg() avec PHP5.5+) pourra être utilisée pour déterminer la nature exacte de l'erreur.

Historique

Version | Description
5.6.0 | Les variantes invalides qui ne sont pas en minuscule de true, false et null ne sont plus acceptées comme entrées valides, et vont générer des alertes.
5.4.0 | Le paramètre options a été ajouté.
5.3.0 | Ajout du paramètre optionnel depth. La profondeur de récursion par défaut a augmenté de 128 à 512
5.2.3 | La limite a été élevée de 20 à 128
5.2.1 | Ajout du support du décodage JSON des types basiques.

Voir aussi

  • json_encode() - Retourne la représentation JSON d'une valeur
  • json_last_error() - Retourne la dernière erreur JSON
  • json_last_error_msg() - Retourne le message de la dernière erreur survenue lors de l'appel à la fonction json_encode() ou json_decode()


Retourne la représentation JSON d'une valeur

  • « json_decode
  • json_last_error_msg »
  • PHP Manual
  • Fonctions JSON
  • Retourne la représentation JSON d'une valeur

json_encode

(PHP 5 >= 5.2.0, PECL json >= 1.2.0, PHP 7)

json_encode — Retourne la représentation JSON d'une valeur

Description

string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )

Retourne une chaîne contenant la représentation JSON de la valeur value.

Liste de paramètres

value

La valeur à encoder. Peut être de n'importe quel type, excepté une ressource.

Toutes les chaînes doivent être encodées UTF-8.

Note:

PHP implémente un sur-ensemble de JSON tel que spécifié dans la » RFC 7159 originale.

options

Masque composé des constantes JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE. Le comportement de ces constantes est décrit sur la page des constantes JSON.

depth

Définit la profondeur maximale. Doit être supérieur à zéro.

Valeurs de retour

Retourne une chaîne encodé JSON ou FALSE si une erreur survient.

Historique

Version | Description
5.6.6 | Ajout de la constante JSON_PRESERVE_ZERO_FRACTION pour le paramètre option.
5.5.0 | Ajout du paramètre depth.
5.4.0 | Les options JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES et JSON_UNESCAPED_UNICODE ont été ajoutées.
5.3.3 | L'option JSON_NUMERIC_CHECK a été ajoutée.
5.3.0 | Le paramètre options a été ajouté.

Exemples

Exemple #1 Exemple avec json_encode()

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

L'exemple ci-dessus va afficher :

{"a":1,"b":2,"c":3,"d":4,"e":5}

Exemple #2 Exemple avec json_encode() montrant quelques options en action

<?php
$a = array('<foo>',"'bar'",'"baz"','&blong&', "\xc3\xa9");

echo "Normal : ",  json_encode($a), "\n";
echo "Tags : ",    json_encode($a, JSON_HEX_TAG), "\n";
echo "Apos : ",    json_encode($a, JSON_HEX_APOS), "\n";
echo "Quot : ",    json_encode($a, JSON_HEX_QUOT), "\n";
echo "Amp : ",     json_encode($a, JSON_HEX_AMP), "\n";
echo "Unicode : ", json_encode($a, JSON_UNESCAPED_UNICODE), "\n";
echo "Toutes : ",     json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), "\n\n";

$b = array();

echo "Tableau vide sous forme de tableau : ", json_encode($b), "\n";
echo "Tableau vide sous forme d'objet : ", json_encode($b, JSON_FORCE_OBJECT), "\n\n";

$c = array(array(1,2,3));

echo "Tableau non-associatif sous forme de tableau : ", json_encode($c), "\n";
echo "Tableau non-associatif sous forme d'objet : ", json_encode($c, JSON_FORCE_OBJECT), "\n\n";

$d = array('foo' => 'bar', 'baz' => 'long');

echo "Tableau associatif affiché comme objet: ", json_encode($d), "\n";
echo "Tableau associatif affiché comme objet: ", json_encode($d, JSON_FORCE_OBJECT), "\n\n";
?>

L'exemple ci-dessus va afficher :

Normal : ["<foo>","'bar'","\"baz\"","&blong&","\u00e9"]
Tags : ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"]
Apos : ["<foo>","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"]
Quot : ["<foo>","'bar'","\u0022baz\u0022","&blong&","\u00e9"]
Amp : ["<foo>","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"]
Unicode : ["<foo>","'bar'","\"baz\"","&blong&","é"]
Toutes : ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","é"]

Tableau vide sous forme de tableau : []
Tableau vide sous forme d'objet : {}

Tableau non-associatif sous forme de tableau : [[1,2,3]]
Tableau non-associatif sous forme d'objet : {"0":{"0":1,"1":2,"2":3}}

Tableau associatif affiché comme objet: {"foo":"bar","baz":"long"}
Tableau associatif affiché comme objet: {"foo":"bar","baz":"long"}

Exemple #3 Exemple avec l'option JSON_NUMERIC_CHECK

<?php
echo "Les chaînes représentant des nombres sont automatiquement convertis en nombres".PHP_EOL;
$numbers = array('+123123', '-123123', '1.2e3', '0.00001');
var_dump(
 $numbers,
 json_encode($numbers, JSON_NUMERIC_CHECK)
);
echo "Chaînes contenant des nombres non formattés proprement".PHP_EOL;
$strings = array('+a33123456789', 'a123');
var_dump(
 $strings,
 json_encode($strings, JSON_NUMERIC_CHECK)
);
?>

L'exemple ci-dessus va afficher :

Les chaînes représentant des nombres sont automatiquement convertis en nombres
array(4) {
  [0]=>
  string(7) "+123123"
  [1]=>
  string(7) "-123123"
  [2]=>
  string(5) "1.2e3"
  [3]=>
  string(7) "0.00001"
}
string(28) "[123123,-123123,1200,1.0e-5]"
Chaînes contenant des nombres non formattés proprement
array(2) {
  [0]=>
  string(13) "+a33123456789"
  [1]=>
  string(4) "a123"
}
string(24) "["+a33123456789","a123"]"

Exemple #4 Exemple avec un tableau séquentiel et un tableau non-séquentiel

<?php
echo "Tableau séquentiel".PHP_EOL;
$sequential = array("foo", "bar", "baz", "blong");
var_dump(
 $sequential,
 json_encode($sequential)
);

echo PHP_EOL."Tableau non-séquentiel".PHP_EOL;
$nonsequential = array(1=>"foo", 2=>"bar", 3=>"baz", 4=>"blong");
var_dump(
 $nonsequential,
 json_encode($nonsequential)
);

echo PHP_EOL."Tableau séquentiel avec une clé supprimée".PHP_EOL;
unset($sequential[1]);
var_dump(
 $sequential,
 json_encode($sequential)
);
?>

L'exemple ci-dessus va afficher :

Tableau séquentiel
array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(27) "["foo","bar","baz","blong"]"

Tableau non-séquentiel
array(4) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(3) "baz"
  [4]=>
  string(5) "blong"
}
string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}"

Tableau séquentiel avec une clé supprimée
array(3) {
  [0]=>
  string(3) "foo"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(33) "{"0":"foo","2":"baz","3":"blong"}"

Exemple #5 Exemple avec l'option JSON_PRESERVE_ZERO_FRACTION

<?php
var_dump(json_encode(12.0, JSON_PRESERVE_ZERO_FRACTION));
var_dump(json_encode(12.0));
?>

L'exemple ci-dessus va afficher :

string(4) "12.0"
string(2) "12"

Notes

Note:

Lorsqu'une erreur survient lors de l'encodage, la fonction json_last_error() peut être utilisée pour déterminer la nature exacte de l'erreur.

Note:

Lors de l'encodage d'un tableau, si les clés ne sont pas sous la forme d'une séquence numérique continue commençant à 0, toutes les clés seront encodées sous forme de chaînes de caractères, et spécifiées explicitement pour chaque paire clé-valeur.

Note:

Tout comme l'encodeur JSON de référence, la fonction json_encode() génèrera un JSON qui est une valeur simple (ni un objet, ni un tableau) si une chaîne de caractère, un entier, un nombre à virgule flottante, ou un booléen est fourni en entrée pour le paramètre value. Bien que certains décodeurs acceptent ces valeurs comme JSON valide, d'autres ne les acceptent pas, sachant que la spécification est ambiguë sur ce point.

Pour résumer, testez toujours que votre décodeur JSON peut gérer la sortie que vous générez depuis la fonction json_encode().

Voir aussi

  • JsonSerializable
  • json_decode() - Décode une chaîne JSON
  • json_last_error() - Retourne la dernière erreur JSON
  • serialize() - Génère une représentation stockable d'une valeur


Retourne le message de la dernière erreur survenue lors de l'appel à la fonction json_encode() ou json_decode()

  • « json_encode
  • json_last_error »
  • PHP Manual
  • Fonctions JSON
  • Retourne le message de la dernière erreur survenue lors de l'appel à la fonction json_encode() ou json_decode()

json_last_error_msg

(PHP 5 >= 5.5.0, PHP 7)

json_last_error_msg — Retourne le message de la dernière erreur survenue lors de l'appel à la fonction json_encode() ou json_decode()

Description

string json_last_error_msg ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le message d'erreur en cas de succès, "No Error" si aucune erreur n'est survenue, ou FALSE si une erreur survient.

Voir aussi

  • json_last_error() - Retourne la dernière erreur JSON


Retourne la dernière erreur JSON

  • « json_last_error_msg
  • Judy »
  • PHP Manual
  • Fonctions JSON
  • Retourne la dernière erreur JSON

json_last_error

(PHP 5 >= 5.3.0, PHP 7)

json_last_error — Retourne la dernière erreur JSON

Description

int json_last_error ( void )

json_last_error() retourne la dernière erreur, s'il y en a eu, survenue lors de la dernière opération d'encodage/décodage JSON.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une des constantes suivantes :

Codes d'erreur JSON
Constante | Signification | Disponibilité
JSON_ERROR_NONE | Aucune erreur n'est survenue |
JSON_ERROR_DEPTH | La profondeur maximale de la pile a été atteinte |
JSON_ERROR_STATE_MISMATCH | JSON invalide ou mal formé |
JSON_ERROR_CTRL_CHAR | Erreur lors du contrôle des caractères ; probablement un encodage incorrect |
JSON_ERROR_SYNTAX | Erreur de syntaxe |
JSON_ERROR_UTF8 | Caractères UTF-8 malformés, possiblement mal encodés | PHP 5.3.3
JSON_ERROR_RECURSION | Une ou plusieurs références récursives sont présentes dans la valeur à encoder | PHP 5.5.0
JSON_ERROR_INF_OR_NAN | Une ou plusieurs valeurs NAN ou INF sont présentes dans la valeurs à encoder. | PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE | Une valeur d'un type qui ne peut être encodée a été fournie | PHP 5.5.0

Exemples

Exemple #1 Exemple avec json_last_error()

<?php
// Une chaîne JSON valide
$json[] = '{"Organisation": "Équipe de Documentation PHP"}';

// Une chaîne json invalide qui va générer une erreur de syntaxe,
// ici, utilisation de ' au lieu de "
$json[] = "{'Organisation': 'Équipe de Documentation PHP'}";

foreach ($json as $string) {
    echo 'Décodage : ' . $string;
    json_decode($string);

    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            echo ' - Aucune erreur';
        break;
        case JSON_ERROR_DEPTH:
            echo ' - Profondeur maximale atteinte';
        break;
        case JSON_ERROR_STATE_MISMATCH:
            echo ' - Inadéquation des modes ou underflow';
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Erreur lors du contrôle des caractères';
        break;
        case JSON_ERROR_SYNTAX:
            echo ' - Erreur de syntaxe ; JSON malformé';
        break;
        case JSON_ERROR_UTF8:
            echo ' - Caractères UTF-8 malformés, probablement une erreur d\'encodage';
        break;
        default:
            echo ' - Erreur inconnue';
        break;
    }

    echo PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

Décodage : {"Organisation": "Équipe de Documentation PHP"} - Aucune erreur
Décodage : {'Organisation': 'Équipe de Documentation PHP'} - Erreur de syntaxe ; JSON malformé

Exemple #2 Exemple avec json_last_error() et json_encode()

<?php
// Une séquence UTF8 invalide
$text = "\xB1\x31";

$json  = json_encode($text);
$error = json_last_error();

var_dump($json, $error === JSON_ERROR_UTF8);
?>

L'exemple ci-dessus va afficher :

string(4) "null"
bool(true)

Voir aussi

  • json_last_error_msg() - Retourne le message de la dernière erreur survenue lors de l'appel à la fonction json_encode() ou json_decode()
  • json_decode() - Décode une chaîne JSON
  • json_encode() - Retourne la représentation JSON d'une valeur


Les tableaux Judy

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Judy — La classe Judy
    • Judy::byCount — Trouve le N ième index présent dans le tableau Judy
    • Judy::__construct — Construit un nouvel objet Judy
    • Judy::count — Compte le nombre d'éléments dans le tableau Judy
    • Judy::__destruct — Détruit l'objet Judy
    • Judy::first — Recherche le premier index dans le tableau Judy
    • Judy::firstEmpty — Recherche le premier index absent dans le tableau Judy
    • Judy::free — Vide entiérement le tableau Judy
    • Judy::getType — Retourne le type du tableau Judy
    • Judy::last — Recherche le dernier index dans le tableau Judy
    • Judy::lastEmpty — Recherche le dernier index absent dans le tableau Judy
    • Judy::memoryUsage — Retourne la mémoire utilisée par le tableau Judy
    • Judy::next — Recherche le prochain index dans le tableau Judy
    • Judy::nextEmpty — Recherche le prochain index absent dans le tableau Judy
    • Judy::offsetExists — Indique si une position existe dans un tableau
    • Judy::offsetGet — Position à lire
    • Judy::offsetSet — Position à assigner
    • Judy::offsetUnset — Position à supprimer
    • Judy::prev — Recherche le précédent index dans le tableau Judy
    • Judy::prevEmpty — Recherche le précédent index absent dans le tableau Judy
    • Judy::size — Retourne le nombre d'éléments dans le tableau Judy
  • Fonctions Judy
    • judy_type — Retourne le type de tableau Judy
    • judy_version — Retourne ou affiche la version actuelle de PHP Judy


Introduction

PHP Judy est une extension PECL basée sur la » librairie C Judy qui implémente des tableaux dynamiques clairsemés.

Un tableau Judy est une structure associative de données complexe mais extrêmement rapide pour stocker et rechercher des valeurs utilisant des entiers ou des chaînes de caractères pour les clés. À l'inverse des tableaux traditionnels, les tableaux Judy peuvent être éparses; c'est à dire qu'ils peuvent avoir une large quantitée d'indices non-assignés.

Un tableau Judy consomme de la mémoire uniquement lorsqu'il est peuplé alors qu'il peut s'élargir en prenant avantage de toute la mémoire disponible. Les principaux bénéfices de Judy sont : évolutivité, performance, l'efficacité de mémoire et la facilité d'utilisation. Les tableaux Judy sont conçus pour croître dans la gamme des peta-éléments, évoluant aux alentours de O(log-base-256) -- 1 plus l'accés RAM à 256 x population.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Cette extension require la » librairie C Judy.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/judy

Installation sur système Linux

A partir des sources

Télécharger et installer » libJudy, puis :

     phpize
     ./configure --with-judy[=DIR]
     make
     make test
     make install

Ubuntu/Debian

libJudy peut-être installé avec apt-get :

     apt-get install libjudydebian1 libjudy-dev
Puis en installant l'extension Judy pour PHP via PECL ou bien à partir des sources.

Installation sur système Windows

Télécharger » libJudy, puis extraire les sources, ouvrir l'invite de commande de Visual Studio et naviguer à la source du répertoire. Puis executer :

build
Ceci crée "Judy.lib", copier le fichier dans le dossier de librairie php-sdk et renommer le fichier en "libJudy.lib" puis copier et include le fichier "judy.h" dans le dossier d'includes php-sdk.

Ensuite, l'extension PHP Judy peut-être installée depuis PECL ou bien à partir des sources en décompressant le fichier pecl/judy dans le dossier de build où les scripts de builds seront capables de le trouver, e.g.:

    C:\php\pecl\judy\
Si les sources de PHP se situent dans:
    C:\php\src\
Les étapes suivantes suivent les mêmes étapes que n'importe quelle extension:
    buildconf
    configure --with-judy=shared
    nmake

Installation sur système Mac OS X

Télécharger et installer » libJudy. Puis installer l'extension Judy depuis PECL ou bien à partir des sources.


  • « Configuration à l'exécution
  • Judy »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


La classe Judy

(PECL judy >= 0.1.1)

Introduction

La classe Judy implémente l'interface ArrayAccess ainsi que l'interface Iterator. Une fois instancié, l'objet peut etre accédé comme un tableau PHP.

Un objet PHP Judy (tableau Judy) peut être de l'un des types suivant :

  • Judy::BITSET
  • Judy::INT_TO_INT
  • Judy::INT_TO_MIXED
  • Judy::STRING_TO_INT
  • Judy::STRING_TO_MIXED

Exemple #1 Example de tableau Judy

<?php
    $judy = new Judy(Judy::INT_TO_MIXED);
    $judy[1] = "one";
    $judy[2] = array('a', 'b', 'c');
    $judy[3] = new Judy(Judy::BITSET);
?>

Synopsis de la classe

Judy implements ArrayAccess , Iterator {
/* Constants */
const integer BITSET = 1 ;
const integer INT_TO_INT = 2 ;
const integer INT_TO_MIXED = 3 ;
const integer STRING_TO_INT = 4 ;
const integer STRING_TO_MIXED = 5 ;
/* Méthodes */
public int byCount ( int $nth_index )
public __construct ( int $judy_type )
public int count ([ int $index_start = 0 [, int $index_end = -1 ]] )
public void __destruct ( void )
public mixed first ([ mixed $index ] )
public int firstEmpty ([ mixed $index = 0 ] )
public int free ( void )
public int getType ( void )
public void last ([ string $index ] )
public int lastEmpty ([ int $index = -1 ] )
public int memoryUsage ( void )
public mixed next ( mixed $index )
public int nextEmpty ( int $index )
public bool offsetExists ( mixed $offset )
public mixed offsetGet ( mixed $offset )
public bool offsetSet ( mixed $offset , mixed $value )
public bool offsetUnset ( mixed $offset )
public mixed prev ( mixed $index )
public int prevEmpty ( mixed $index )
public void size ( void )
}

Constantes pré-définies

Judy::BITSET

Définit le tableau Judy en tant que Bitset avec un entier pour les clés et un booléen pour les valeurs

Judy::INT_TO_INT

Définit le tableau Judy avec pour clé/valeur des entiers, et seulement des entiers.

Judy::INT_TO_MIXED

Définit le tableau Judy avec pour clés des entiers et n'importe quel type pour les valeurs.

Judy::STRING_TO_INT

Définit le tableau Judy avec pour clés une chaîne de caractères et un entier pour les valeurs.

Judy::STRING_TO_MIXED

Définit le tableau Judy avec pour clés une chaîne de caractères et n'importe quel type pour les valeurs.

Sommaire

  • Judy::byCount — Trouve le N ième index présent dans le tableau Judy
  • Judy::__construct — Construit un nouvel objet Judy
  • Judy::count — Compte le nombre d'éléments dans le tableau Judy
  • Judy::__destruct — Détruit l'objet Judy
  • Judy::first — Recherche le premier index dans le tableau Judy
  • Judy::firstEmpty — Recherche le premier index absent dans le tableau Judy
  • Judy::free — Vide entiérement le tableau Judy
  • Judy::getType — Retourne le type du tableau Judy
  • Judy::last — Recherche le dernier index dans le tableau Judy
  • Judy::lastEmpty — Recherche le dernier index absent dans le tableau Judy
  • Judy::memoryUsage — Retourne la mémoire utilisée par le tableau Judy
  • Judy::next — Recherche le prochain index dans le tableau Judy
  • Judy::nextEmpty — Recherche le prochain index absent dans le tableau Judy
  • Judy::offsetExists — Indique si une position existe dans un tableau
  • Judy::offsetGet — Position à lire
  • Judy::offsetSet — Position à assigner
  • Judy::offsetUnset — Position à supprimer
  • Judy::prev — Recherche le précédent index dans le tableau Judy
  • Judy::prevEmpty — Recherche le précédent index absent dans le tableau Judy
  • Judy::size — Retourne le nombre d'éléments dans le tableau Judy


Trouve le N ième index présent dans le tableau Judy

  • « Judy
  • Judy::__construct »
  • PHP Manual
  • Judy
  • Trouve le N ième index présent dans le tableau Judy

Judy::byCount

(PECL judy >= 0.1.1)

Judy::byCount — Trouve le N ième index présent dans le tableau Judy

Description

public int Judy::byCount ( int $nth_index )

Trouve le N ième index présent dans le tableau Judy.

Liste de paramètres

nth_index

N ième index à retourner. Si nth_index égale 1, alors cela retournera le premier index du tableau.

Valeurs de retour

Retourne l'index se trouvant à la N ième position.


Construit un nouvel objet Judy

  • « Judy::byCount
  • Judy::count »
  • PHP Manual
  • Judy
  • Construit un nouvel objet Judy

Judy::__construct

(PECL judy >= 0.1.1)

Judy::__construct — Construit un nouvel objet Judy

Description

public Judy::__construct ( int $judy_type )

Construit un nouvel objet Judy. Un objet Judy peut-être utilisé comme un tableau PHP.

Liste de paramètres

judy_type

Le type Judy à utiliser.

Valeurs de retour

Retourne la nouvelle instance Judy.


Compte le nombre d'éléments dans le tableau Judy

  • « Judy::__construct
  • Judy::__destruct »
  • PHP Manual
  • Judy
  • Compte le nombre d'éléments dans le tableau Judy

Judy::count

(PECL judy >= 0.1.1)

Judy::count — Compte le nombre d'éléments dans le tableau Judy

Description

public int Judy::count ([ int $index_start = 0 [, int $index_end = -1 ]] )

Compte le nombre d'éléments dans le tableau Judy.

Liste de paramètres

index_start

Commence à compter à partir de l'index donné. La valeur par défaut est le premier index.

index_end

Arrête de compter lorsque l'index donné est atteind. La valeur par défaut est le dernier index.

Valeurs de retour

Retourne le nombre d'éléments.


Détruit l'objet Judy

  • « Judy::count
  • Judy::first »
  • PHP Manual
  • Judy
  • Détruit l'objet Judy

Judy::__destruct

(PECL judy >= 0.1.1)

Judy::__destruct — Détruit l'objet Judy

Description

public void Judy::__destruct ( void )

Détruit l'objet Judy.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Recherche le premier index dans le tableau Judy

  • « Judy::__destruct
  • Judy::firstEmpty »
  • PHP Manual
  • Judy
  • Recherche le premier index dans le tableau Judy

Judy::first

(PECL judy >= 0.1.1)

Judy::first — Recherche le premier index dans le tableau Judy

Description

public mixed Judy::first ([ mixed $index ] )

Recherche le premier index présent qui est égal ou supérieur que l'index passé (inclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.


Recherche le premier index absent dans le tableau Judy

  • « Judy::first
  • Judy::free »
  • PHP Manual
  • Judy
  • Recherche le premier index absent dans le tableau Judy

Judy::firstEmpty

(PECL judy >= 0.1.1)

Judy::firstEmpty — Recherche le premier index absent dans le tableau Judy

Description

public int Judy::firstEmpty ([ mixed $index = 0 ] )

Recherche le premier index absent qui est égal ou supérieur que l'index passé (inclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.


Vide entiérement le tableau Judy

  • « Judy::firstEmpty
  • Judy::getType »
  • PHP Manual
  • Judy
  • Vide entiérement le tableau Judy

Judy::free

(PECL judy >= 0.1.1)

Judy::free — Vide entiérement le tableau Judy

Description

public int Judy::free ( void )

Vide entiérement le tableau Judy

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Retourne le type du tableau Judy

  • « Judy::free
  • Judy::last »
  • PHP Manual
  • Judy
  • Retourne le type du tableau Judy

Judy::getType

(PECL judy >= 0.1.1)

Judy::getType — Retourne le type du tableau Judy

Description

public int Judy::getType ( void )

Retourne un entier correspondant au type Judy de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier correspondant au type Judy.


Recherche le dernier index dans le tableau Judy

  • « Judy::getType
  • Judy::lastEmpty »
  • PHP Manual
  • Judy
  • Recherche le dernier index dans le tableau Judy

Judy::last

(PECL judy >= 0.1.1)

Judy::last — Recherche le dernier index dans le tableau Judy

Description

public void Judy::last ([ string $index ] )

Recherche le dernier index présent qui est égal ou inférieur à l'index passé (inclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.


Recherche le dernier index absent dans le tableau Judy

  • « Judy::last
  • Judy::memoryUsage »
  • PHP Manual
  • Judy
  • Recherche le dernier index absent dans le tableau Judy

Judy::lastEmpty

(PECL judy >= 0.1.1)

Judy::lastEmpty — Recherche le dernier index absent dans le tableau Judy

Description

public int Judy::lastEmpty ([ int $index = -1 ] )

Recherche le dernier index absent qui est égal ou inférieur à l'index passé (inclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.


Retourne la mémoire utilisée par le tableau Judy

  • « Judy::lastEmpty
  • Judy::next »
  • PHP Manual
  • Judy
  • Retourne la mémoire utilisée par le tableau Judy

Judy::memoryUsage

(PECL judy >= 0.1.1)

Judy::memoryUsage — Retourne la mémoire utilisée par le tableau Judy

Description

public int Judy::memoryUsage ( void )

Retourne la mémoire utilisée par le tableau Judy.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la mémoire utilisée en octets.


Recherche le prochain index dans le tableau Judy

  • « Judy::memoryUsage
  • Judy::nextEmpty »
  • PHP Manual
  • Judy
  • Recherche le prochain index dans le tableau Judy

Judy::next

(PECL judy >= 0.1.1)

Judy::next — Recherche le prochain index dans le tableau Judy

Description

public mixed Judy::next ( mixed $index )

Recherche le prochain index présent qui est supérieur à l'index passé (exclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.


Recherche le prochain index absent dans le tableau Judy

  • « Judy::next
  • Judy::offsetExists »
  • PHP Manual
  • Judy
  • Recherche le prochain index absent dans le tableau Judy

Judy::nextEmpty

(PECL judy >= 0.1.1)

Judy::nextEmpty — Recherche le prochain index absent dans le tableau Judy

Description

public int Judy::nextEmpty ( int $index )

Recherche le prochain index absent qui est supérieur à l'index passé (exclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.


Indique si une position existe dans un tableau

  • « Judy::nextEmpty
  • Judy::offsetGet »
  • PHP Manual
  • Judy
  • Indique si une position existe dans un tableau

Judy::offsetExists

(PECL judy >= 0.1.1)

Judy::offsetExists — Indique si une position existe dans un tableau

Description

public bool Judy::offsetExists ( mixed $offset )

Indique si une position existe.

Liste de paramètres

offset

Une position à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Position à lire

  • « Judy::offsetExists
  • Judy::offsetSet »
  • PHP Manual
  • Judy
  • Position à lire

Judy::offsetGet

(PECL judy >= 0.1.1)

Judy::offsetGet — Position à lire

Description

public mixed Judy::offsetGet ( mixed $offset )

Retourne la valeur à la position donnée.

Liste de paramètres

offset

La position à lire.

Valeurs de retour

Peut retourner n'importe quel type de valeur.


Position à assigner

  • « Judy::offsetGet
  • Judy::offsetUnset »
  • PHP Manual
  • Judy
  • Position à assigner

Judy::offsetSet

(PECL judy >= 0.1.1)

Judy::offsetSet — Position à assigner

Description

public bool Judy::offsetSet ( mixed $offset , mixed $value )

Assigne une valeur à une position donnée.

Liste de paramètres

offset

La position à laquelle assigner une valeur.

value

La valeur à assigner.

Valeurs de retour

Aucune valeur n'est retournée.


Position à supprimer

  • « Judy::offsetSet
  • Judy::prev »
  • PHP Manual
  • Judy
  • Position à supprimer

Judy::offsetUnset

(PECL judy >= 0.1.1)

Judy::offsetUnset — Position à supprimer

Description

public bool Judy::offsetUnset ( mixed $offset )

Supprime une position.

Liste de paramètres

offset

La position à supprimer.

Valeurs de retour

Aucune valeur n'est retournée.


Recherche le précédent index dans le tableau Judy

  • « Judy::offsetUnset
  • Judy::prevEmpty »
  • PHP Manual
  • Judy
  • Recherche le précédent index dans le tableau Judy

Judy::prev

(PECL judy >= 0.1.1)

Judy::prev — Recherche le précédent index dans le tableau Judy

Description

public mixed Judy::prev ( mixed $index )

Recherche le précédent index présent qui est inférieur à l'index passé (exclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.


Recherche le précédent index absent dans le tableau Judy

  • « Judy::prev
  • Judy::size »
  • PHP Manual
  • Judy
  • Recherche le précédent index absent dans le tableau Judy

Judy::prevEmpty

(PECL judy >= 0.1.1)

Judy::prevEmpty — Recherche le précédent index absent dans le tableau Judy

Description

public int Judy::prevEmpty ( mixed $index )

Recherche le précédent index absent qui est inférieur l'index passé (exclusif).

Liste de paramètres

index

L'index peut-être un entier ou une chaîne de caractére coresspondant à l'index où la recherche commence.

Valeurs de retour

Retourne l'index du tableau correspondant.


Retourne le nombre d'éléments dans le tableau Judy

  • « Judy::prevEmpty
  • Fonctions Judy »
  • PHP Manual
  • Judy
  • Retourne le nombre d'éléments dans le tableau Judy

Judy::size

(PECL judy >= 0.1.1)

Judy::size — Retourne le nombre d'éléments dans le tableau Judy

Description

public void Judy::size ( void )

Cette méthode est un alias de Judy::count.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier.


Fonctions Judy

Sommaire

  • judy_type — Retourne le type de tableau Judy
  • judy_version — Retourne ou affiche la version actuelle de PHP Judy


Retourne le type de tableau Judy

  • « Fonctions Judy
  • judy_version »
  • PHP Manual
  • Fonctions Judy
  • Retourne le type de tableau Judy

judy_type

(PECL judy >= 0.1.1)

judy_type — Retourne le type de tableau Judy

Description

int judy_type ( Judy $array )

judy_type() Retourne un entier correspondant au type Judy pour le tableau passé en paramétre.

Liste de paramètres

array

Le tableau Judy à tester.

Valeurs de retour

Retourne un entier correspondant au type Judy.


Retourne ou affiche la version actuelle de PHP Judy

  • « judy_type
  • Lua »
  • PHP Manual
  • Fonctions Judy
  • Retourne ou affiche la version actuelle de PHP Judy

judy_version

(PECL judy >= 0.1.1)

judy_version — Retourne ou affiche la version actuelle de PHP Judy

Description

string judy_version ( void )

Retourne une chaîne de caractéres contenant la version de PHP Judy. Si la valeur retournée n'est pas utilisée, la chaîne de caractéres est affichées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractéres contenant la version de PHP Judy.


Lua

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Lua — La classe Lua
    • Lua::assign — Assigne une variable PHP à Lua
    • Lua::call — Appelle les fonctions Lua
    • Lua::__construct — Constructeur Lua
    • Lua::eval — Évalue une chaîne comme du code Lua
    • Lua::getVersion — Le but de getversion
    • Lua::include — Analyse un fichier de script Lua
    • Lua::registerCallback — Enregistre une fonction PHP en Lua
  • LuaClosure — La classe LuaClosure
    • LuaClosure::__invoke — Appelle luaclosure


Introduction

"Lua est un langage de script puissant, rapide, léger et embarquable." Cette extension embarque l'interpréteur Lua et offre une API orienté objet des fonctions et des variables Lua.


Pré-requis

Pour utiliser cette extension, vous devez avoir d'installer Lua, disponible sur la page du » projet Lua.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/lua.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


  • « Configuration à l'exécution
  • Lua »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


La classe Lua

(PECL lua >=0.9.0)

Introduction

Synopsis de la classe

Lua {
/* Constantes */
const string LUA_VERSION = Lua 5.1.4 ;
/* Méthodes */
public mixed assign ( string $name , string $value )
public mixed call ( callable $lua_func [, array $args [, int $use_self = 0 ]] )
public mixed __call ( callable $lua_func [, array $args [, int $use_self = 0 ]] )
public __construct ( string $lua_script_file = NULL )
public mixed eval ( string $statements )
public string getVersion ( void )
public mixed include ( string $file )
public mixed registerCallback ( string $name , callable $function )
}

Constantes pré-définies

Lua::LUA_VERSION

Sommaire

  • Lua::assign — Assigne une variable PHP à Lua
  • Lua::call — Appelle les fonctions Lua
  • Lua::__construct — Constructeur Lua
  • Lua::eval — Évalue une chaîne comme du code Lua
  • Lua::getVersion — Le but de getversion
  • Lua::include — Analyse un fichier de script Lua
  • Lua::registerCallback — Enregistre une fonction PHP en Lua


Assigne une variable PHP à Lua

  • « Lua
  • Lua::call »
  • PHP Manual
  • Lua
  • Assigne une variable PHP à Lua

Lua::assign

(PECL lua >=0.9.0)

Lua::assign — Assigne une variable PHP à Lua

Description

public mixed Lua::assign ( string $name , string $value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

value

Valeurs de retour

Retourne $this ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec Lua::assign()

<?php
$lua = new Lua();
$lua->assign("php_var", array(1=>1, 2, 3)); //lua table index begin with 1
$lua->eval(<<<CODE
    print(php_var);
CODE
);
?>

L'exemple ci-dessus va afficher :

Array
 (
     [1] => 1
     [2] => 2
     [3] => 3
 )


Appelle les fonctions Lua

  • « Lua::assign
  • Lua::__construct »
  • PHP Manual
  • Lua
  • Appelle les fonctions Lua

Lua::call

Lua::__call

(PECL lua >=0.9.0)

Lua::call -- Lua::__call — Appelle les fonctions Lua

Description

public mixed Lua::call ( callable $lua_func [, array $args [, int $use_self = 0 ]] )
public mixed Lua::__call ( callable $lua_func [, array $args [, int $use_self = 0 ]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

lua_func

Nom de la fonction en Lua

args

Arguments à passer à la fonction Lua

use_self

Si l'on doit ou pas utiliser self

Valeurs de retour

Retourne le résultat de la fonction appelée, NULL si des arguments incorrects sont passés, ou bien FALSE pour les autres types d'échec.

Exemples

Exemple #1 Exemple avec Lua::call()

<?php
$lua = new Lua();
$lua->eval(<<<CODE
    function dummy(foo, bar)
        print(foo, ",", bar)
    end
CODE
);
$lua->call("dummy", array("Lua", "geiliable\n"));
$lua->dummy("Lua", "geiliable"); // __call()
var_dump($lua->call(array("table", "concat"), array(array(1=>1, 2=>2, 3=>3), "-")));
?>

L'exemple ci-dessus va afficher :

Lua,geiliable
Lua,geiliable
string(5) "1-2-3"

Voir aussi

  • __call()


Constructeur Lua

  • « Lua::call
  • Lua::eval »
  • PHP Manual
  • Lua
  • Constructeur Lua

Lua::__construct

(PECL lua >=0.9.0)

Lua::__construct — Constructeur Lua

Description

public Lua::__construct ( string $lua_script_file = NULL )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

lua_script_file

Valeurs de retour


Évalue une chaîne comme du code Lua

  • « Lua::__construct
  • Lua::getVersion »
  • PHP Manual
  • Lua
  • Évalue une chaîne comme du code Lua

Lua::eval

(PECL lua >=0.9.0)

Lua::eval — Évalue une chaîne comme du code Lua

Description

public mixed Lua::eval ( string $statements )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

statements

Valeurs de retour

Retourne le résultat du code évalué, NULL si de mauvais arguments sont passés, ou bien FALSE pour tout autre type d'erreur.

Exemples

Exemple #1 Exemple avec Lua::eval()

<?php
$lua = new Lua();
$lua->eval(<<<CODE
    print(2);
CODE
);
?>

L'exemple ci-dessus va afficher :

2


Le but de getversion

  • « Lua::eval
  • Lua::include »
  • PHP Manual
  • Lua
  • Le but de getversion

Lua::getVersion

(PECL lua >=0.9.0)

Lua::getVersion — Le but de getversion

Description

public string Lua::getVersion ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne Lua::LUA_VERSION.


Analyse un fichier de script Lua

  • « Lua::getVersion
  • Lua::registerCallback »
  • PHP Manual
  • Lua
  • Analyse un fichier de script Lua

Lua::include

(PECL lua >=0.9.0)

Lua::include — Analyse un fichier de script Lua

Description

public mixed Lua::include ( string $file )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

file

Valeurs de retour

Retourne le résultat du code inclu, NULL si de mauvais arguments sont passés, ou FALSE pour tout autre erreur.


Enregistre une fonction PHP en Lua

  • « Lua::include
  • LuaClosure »
  • PHP Manual
  • Lua
  • Enregistre une fonction PHP en Lua

Lua::registerCallback

(No version information available, might only be in Git)

Lua::registerCallback — Enregistre une fonction PHP en Lua

Description

public mixed Lua::registerCallback ( string $name , callable $function )

Enregistre une fonction PHP en Lua, portant le nom de "$name".

Liste de paramètres

name

function

Une fonction de rappel PHP valide

Valeurs de retour

Retourne $this, NULL si de mauvais arguments sont passés, ou FALSE si une erreur d'un autre type survient.

Exemples

Exemple #1 Exemple avec Lua::registerCallback()

<?php
$lua = new Lua();
$lua->registerCallback("echo", "var_dump");
$lua->eval(<<<CODE
    echo({1, 2, 3});
CODE
);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [1]=>
  float(1)
  [2]=>
  float(2)
  [3]=>
  float(3)
}


La classe LuaClosure

(PECL lua >=0.9.0)

Introduction

LuaClosure est une classe pour LUA_TFUNCTION.

Synopsis de la classe

LuaClosure {
/* Méthodes */
public void __invoke ( mixed $arg [, mixed $... ] )
}

Sommaire

  • LuaClosure::__invoke — Appelle luaclosure


Appelle luaclosure

  • « LuaClosure
  • Misc. »
  • PHP Manual
  • LuaClosure
  • Appelle luaclosure

LuaClosure::__invoke

(PECL lua >=0.9.0)

LuaClosure::__invoke — Appelle luaclosure

Description

public void LuaClosure::__invoke ( mixed $arg [, mixed $... ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

arg

...

Valeurs de retour

Exemples

Exemple #1 Exemple avec LuaClosure::__invoke()

<?php
$lua = new Lua();
$closure = $lua->eval(<<<CODE
    return (function ()
        print("hello world")
    end)
CODE
);

$lua->call($closure);
/* après PHP 5.3 */
$closure();
?>

L'exemple ci-dessus va afficher :

hello worldhello world


Fonctions diverses

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions diverses
    • connection_aborted — Indique si l'internaute a abandonné la connexion HTTP
    • connection_status — Retourne les bits de statut de la connexion HTTP
    • constant — Retourne la valeur d'une constante
    • define — Définit une constante
    • defined — Vérifie l'existence d'une constante
    • die — Alias de la fonction exit
    • eval — Exécute une chaîne comme un script PHP
    • exit — Affiche un message et termine le script courant
    • get_browser — Indique les capacités du navigateur client
    • __halt_compiler — Stoppe l'exécution du compilateur
    • highlight_file — Colorisation syntaxique d'un fichier
    • highlight_string — Applique la syntaxe colorisée à du code PHP
    • ignore_user_abort — Active l'interruption de script sur déconnexion du visiteur
    • pack — Compacte des données dans une chaîne binaire
    • php_check_syntax — Vérifie la syntaxe PHP (et exécute) d'un fichier spécifique
    • php_strip_whitespace — Retourne la source sans commentaires, ni espaces blancs
    • show_source — Alias de highlight_file
    • sleep — Arrête l'exécution durant quelques secondes
    • sys_getloadavg — Récupère la charge moyenne du système
    • time_nanosleep — Attendre pendant un nombre de secondes et de nanosecondes
    • time_sleep_until — Arrête le script pendant une durée spécifiée
    • uniqid — Génère un identifiant unique
    • unpack — Déconditionne des données depuis une chaîne binaire
    • usleep — Arrête l'exécution durant quelques microsecondes
  • Historique des modifications


Introduction

Ces fonctions ont été placées là, car elles ne rentraient dans aucune autre catégorie.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration divers
Nom | Défaut | Modifiable | Historique
ignore_user_abort | "0" | PHP_INI_ALL |
highlight.string | "#DD0000" | PHP_INI_ALL |
highlight.comment | "#FF8000" | PHP_INI_ALL |
highlight.keyword | "#007700" | PHP_INI_ALL |
highlight.bg | "#FFFFFF" | PHP_INI_ALL | Supprimé en PHP 5.4.0.
highlight.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ignore_user_abort bool

FALSE par défaut. Si changée à TRUE les scripts ne se termineront pas après que l'annulation par le client de leur connexion.

Voir aussi ignore_user_abort().

highlight.bg string
highlight.comment string
highlight.default string
highlight.html string
highlight.keyword string
highlight.string string

Couleurs utilisées pour le mode de coloration syntaxique. Ces options peuvent prendre n'importe quelles valeurs valides dans <font color="??????">.

browscap string

Nom du fichier de descriptif des clients HTML. (e.g.: browscap.ini) Voir aussi get_browser().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CONNECTION_ABORTED (entier)
CONNECTION_NORMAL (entier)
CONNECTION_TIMEOUT (entier)
__COMPILER_HALT_OFFSET__ (entier)
Ajouté en PHP 5.1.


Fonctions diverses

Sommaire

  • connection_aborted — Indique si l'internaute a abandonné la connexion HTTP
  • connection_status — Retourne les bits de statut de la connexion HTTP
  • constant — Retourne la valeur d'une constante
  • define — Définit une constante
  • defined — Vérifie l'existence d'une constante
  • die — Alias de la fonction exit
  • eval — Exécute une chaîne comme un script PHP
  • exit — Affiche un message et termine le script courant
  • get_browser — Indique les capacités du navigateur client
  • __halt_compiler — Stoppe l'exécution du compilateur
  • highlight_file — Colorisation syntaxique d'un fichier
  • highlight_string — Applique la syntaxe colorisée à du code PHP
  • ignore_user_abort — Active l'interruption de script sur déconnexion du visiteur
  • pack — Compacte des données dans une chaîne binaire
  • php_check_syntax — Vérifie la syntaxe PHP (et exécute) d'un fichier spécifique
  • php_strip_whitespace — Retourne la source sans commentaires, ni espaces blancs
  • show_source — Alias de highlight_file
  • sleep — Arrête l'exécution durant quelques secondes
  • sys_getloadavg — Récupère la charge moyenne du système
  • time_nanosleep — Attendre pendant un nombre de secondes et de nanosecondes
  • time_sleep_until — Arrête le script pendant une durée spécifiée
  • uniqid — Génère un identifiant unique
  • unpack — Déconditionne des données depuis une chaîne binaire
  • usleep — Arrête l'exécution durant quelques microsecondes


Indique si l'internaute a abandonné la connexion HTTP

  • « Fonctions diverses
  • connection_status »
  • PHP Manual
  • Fonctions diverses
  • Indique si l'internaute a abandonné la connexion HTTP

connection_aborted

(PHP 4, PHP 5, PHP 7)

connection_aborted — Indique si l'internaute a abandonné la connexion HTTP

Description

int connection_aborted ( void )

Indique si l'internaute a abandonné la connexion HTTP.

Valeurs de retour

Retourne 1 si le client est déconnecté, 0 sinon.

Voir aussi

  • connection_status() - Retourne les bits de statut de la connexion HTTP
  • ignore_user_abort() - Active l'interruption de script sur déconnexion du visiteur
  • Gestionnaire de connexion pour une description complète du gestionnaire de connexion en PHP.


Retourne les bits de statut de la connexion HTTP

  • « connection_aborted
  • constant »
  • PHP Manual
  • Fonctions diverses
  • Retourne les bits de statut de la connexion HTTP

connection_status

(PHP 4, PHP 5, PHP 7)

connection_status — Retourne les bits de statut de la connexion HTTP

Description

int connection_status ( void )

Retourne les bits de statut de la connexion HTTP.

Valeurs de retour

Retourne les bits de statut de la connexion, qui peuvent être utilisés avec les constantes CONNECTION_XXX pour déterminer le statut de la connexion.

Voir aussi

  • connection_aborted() - Indique si l'internaute a abandonné la connexion HTTP
  • ignore_user_abort() - Active l'interruption de script sur déconnexion du visiteur
  • Gestionnaire de connexion pour une description complète du gestionnaire de connexion en PHP.


Retourne la valeur d'une constante

  • « connection_status
  • define »
  • PHP Manual
  • Fonctions diverses
  • Retourne la valeur d'une constante

constant

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

constant — Retourne la valeur d'une constante

Description

mixed constant ( string $name )

Retourne la valeur de la constante name.

constant() est pratique lorsque vous devez lire la valeur d'une constante, mais que vous ne connaissez son nom que durant l'exécution du script. Par exemple, ce nom peut être le résultat d'une fonction.

Cette fonction fonctionne également avec les constantes de classe.

Liste de paramètres

name

Le nom de la constante.

Valeurs de retour

Retourne la valeur de la constante, ou NULL si la constante n'est pas définie.

Erreurs / Exceptions

Une alerte de niveau E_WARNING sera générée si la constante n'est pas définie.

Exemples

Exemple #1 Exemple avec constant()

<?php

define("MAXSIZE", 100);

echo MAXSIZE;
echo constant("MAXSIZE"); // identique à la ligne précédente

interface bar {
    const test = 'foobar!';
}

class foo {
    const test = 'foobar!';
}

$const = 'test';

var_dump(constant('bar::'. $const)); // string(7) "foobar!"
var_dump(constant('foo::'. $const)); // string(7) "foobar!"

?>

Voir aussi

  • define() - Définit une constante
  • defined() - Vérifie l'existence d'une constante
  • La section sur les constantes


Définit une constante

  • « constant
  • defined »
  • PHP Manual
  • Fonctions diverses
  • Définit une constante

define

(PHP 4, PHP 5, PHP 7)

define — Définit une constante

Description

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

Définit une constante à l'exécution.

Liste de paramètres

name

Le nom de la constante.

value

La valeur de la constante ; seuls les scalaires et les valeurs NULL sont autorisées. Depuis PHP 7, il est également possible d'utiliser la valeur array. Les valeurs scalaires sont les valeurs entier, nombre décimal, chaîne de caractères ou booléen. Il est techniquement possible de définir des constantes de type ressource, mais cela est fortement déconseillé, et peut causer des comportements inattendus.

case_insensitive

S'il vaut TRUE, le nom de la constante sera insensible à la casse : CONSTANT et Constant représentent des valeurs identiques.

Note:

Les constantes insensibles à la casse sont stockées en minuscule.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
7.0.0 | Les valeurs array sont autorisées.

Exemples

Exemple #1 Définition d'une constante

<?php
define("CONSTANT", "Bonjour le monde.");
echo CONSTANT; // affiche "Bonjour le monde."
echo Constant; // affiche "Constant" et émet une alerte

define("GREETING", "Salut toi.", true);
echo GREETING; // affiche "Salut toi."
echo Greeting; // affiche "Salut toi."

// Fonctionne depuis PHP 7
define('ANIMALS', array(
    'chien',
    'chat',
    'oiseaux'
));
echo ANIMALS[1]; // affiche "chat"

?>

Voir aussi

  • defined() - Vérifie l'existence d'une constante
  • constant() - Retourne la valeur d'une constante
  • La section sur les constantes


Vérifie l'existence d'une constante

  • « define
  • die »
  • PHP Manual
  • Fonctions diverses
  • Vérifie l'existence d'une constante

defined

(PHP 4, PHP 5, PHP 7)

defined — Vérifie l'existence d'une constante

Description

bool defined ( string $name )

Vérifie l'existence d'une constante.

Note:

Si vous voulez vérifier si une variable existe, utilisez isset() car defined() ne s'applique qu'aux constantes. Si vous voulez voir si une fonction existe, utilisez function_exists().

Liste de paramètres

name

Le nom de la constante.

Valeurs de retour

Retourne TRUE si le nom de la constante fournie par le paramètre name a été définie, FALSE sinon.

Exemples

Exemple #1 Vérifier la présence de constantes avec defined()

<?php
/* Notez que le nom de la constante est entre guillemets. Cet exemple vérifie
 * si la chaîne 'TEST' est le nom de la constante nommée TEST */
if (defined('TEST')) {
    echo TEST;
}
?>

Voir aussi

  • define() - Définit une constante
  • constant() - Retourne la valeur d'une constante
  • get_defined_constants() - Retourne la liste des constantes et leurs valeurs
  • function_exists() - Indique si une fonction est définie
  • La section sur les constantes


Alias de la fonction exit

  • « defined
  • eval »
  • PHP Manual
  • Fonctions diverses
  • Alias de la fonction exit

die

(PHP 4, PHP 5, PHP 7)

die — Alias de la fonction exit

Description

Ce constructeur de langage est équivalent à exit().


Exécute une chaîne comme un script PHP

  • « die
  • exit »
  • PHP Manual
  • Fonctions diverses
  • Exécute une chaîne comme un script PHP

eval

(PHP 4, PHP 5, PHP 7)

eval — Exécute une chaîne comme un script PHP

Description

mixed eval ( string $code )

Évalue le code fourni comme étant du code PHP.

Attention

La construction de langage eval() est très dangereuse car elle autorise l'exécution de code PHP arbitraire. Son utilisation est vivement déconseillée. Si vous avez soigneusement vérifié qu'il n'y a pas d'autres options que de l'utiliser, gardez une attention toute particulière à ne pas y passer de données provenant d'un utilisateur sans les avoir précédemment validées minutieusement.

Liste de paramètres

code

Code PHP valide à évaluer.

Le code ne doit pas être entouré de balises PHP ouvrante et fermante, i.e. 'echo "Hi!";' doit être passé au lieu de '<? echo "Hi!"; >'. Il est toujours possible de quitter et de retourner en mode PHP en utilisant les balises PHP appropriées, i.e. 'echo "En mode PHP !"; ?>En mode HTML !<?php echo "Retour en mode PHP !";'.

Mise à part cela, le code PHP passé doit être valide. Ceci inclut que toutes les instructions doivent se terminer par un point-virgule. 'echo "Hi!"' par exemple résultera en une erreur fatale, alors que 'echo "Hi!";' fonctionnera.

Une instruction return terminera immédiatement l'évaluation du code.

Le code sera exécuté dans le scope du code appelant la fonction eval(). Aussi, toutes les variables définies ou modifiées dans l'appel à la fonction eval() resteront visibles après la fin de l'exécution de la fonction.

Valeurs de retour

eval() retourne NULL sauf si return est appelé dans le code évalué, auquel cas la valeur passée à return est retournée. Dans le cas d'une erreur de syntaxe dans le code évalué, eval() retourne FALSE et l'exécution du code suivant continue normalement. Il n'est pas possible d'attraper l'erreur d'analyse de la fonction eval() en utilisant la fonction set_error_handler().

Exemples

Exemple #1 Exemple avec eval() - concaténation de texte

<?php
$string = 'tasse';
$name = 'café';
$str = 'Ceci est une $string avec mon $name dedans.<br />';
echo $str;
eval( "\$str = \"$str\";" );
echo $str;
?>

L'exemple ci-dessus va afficher :

Ceci est une $string avec mon $name dedans.
Ceci est une tasse avec mon café dedans.

Notes

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Astuce

Comme pour toutes les fonctions qui affichent directement des résultats au navigateur, vous pouvez utiliser les fonctions de gestion des sorties pour capturer le contenu de cette fonction et le sauver, par exemple, dans une chaîne.

Note:

Dans le cas d'une erreur fatale dans le code évalué, l'ensemble du script se terminera.

Voir aussi

  • call_user_func() - Appelle une fonction de rappel fournie par le premier argument


Affiche un message et termine le script courant

  • « eval
  • get_browser »
  • PHP Manual
  • Fonctions diverses
  • Affiche un message et termine le script courant

exit

(PHP 4, PHP 5, PHP 7)

exit — Affiche un message et termine le script courant

Description

void exit ([ string $status ] )
void exit ( int $status )

Termine le script courant. Les fonctions d'extinction et les destructeurs d'objets seront toujours exécutés même si exit est appelé.

exit est une construction de langage et peut être appelé sans parenthèse si aucun paramètre status n'est passé.

Liste de paramètres

status

Si status est une chaîne de caractères, cette fonction affichera le status juste avant de sortir.

Si le paramètre status est un entier, cette valeur pourra être utilisée comme statut de sortie et ne sera pas affichée. Le statut de sortie peut être dans l'intervalle 0-255, le statut de sortie 255 est réservé par PHP et ne doit pas être utilisé. Le statut 0 est utilisé pour terminer le programme avec succès.

Note: PHP >= 4.2.0 n'affiche pas le message status si c'est un entier.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec exit

<?php

$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
    or exit("Impossible d'ouvrir le fichier ($filename)");

?>

Exemple #2 Exemple avec exit et un code d'erreur

<?php

// Quitte normalement
exit;
exit();
exit(0);

// Quitte avec un code d'erreur
exit(1);
exit(0376); // octal

?>

Exemple #3 Exemple d'exécution des fonctions d'extinction et des destructeurs d'objets

<?php
class Foo
{
    public function __destruct()
    {
        echo 'Destructeur : ' . __METHOD__ . '()' . PHP_EOL;
    }
}

function shutdown()
{
    echo 'Arrêt : ' . __FUNCTION__ . '()' . PHP_EOL;
}

$foo = new Foo();
register_shutdown_function('shutdown');

exit();
echo 'Ceci ne sera jamais affiché.';
?>

L'exemple ci-dessus va afficher :

 Arrêt : shutdown()
 Destructeur : Foo::__destruct()

Notes

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Note:

Cette construction de langage est équivalente à die().

Voir aussi

  • register_shutdown_function() - Enregistre une fonction de rappel pour exécution à l'extinction


Indique les capacités du navigateur client

  • « exit
  • __halt_compiler »
  • PHP Manual
  • Fonctions diverses
  • Indique les capacités du navigateur client

get_browser

(PHP 4, PHP 5, PHP 7)

get_browser — Indique les capacités du navigateur client

Description

mixed get_browser ([ string $user_agent [, bool $return_array = false ]] )

get_browser() essaie de déterminer les capacités du navigateur client. Cela se fait en lisant les informations dans le fichier browscap.ini.

Liste de paramètres

user_agent

L'entête user agent à analyser. Par défaut, la valeur de l'en-tête User-Agent est utilisé; cependant, vous pouvez l'altérer (i.e. cherche d'autres informations sur le navigateur) en passant ce paramètre.

Vous pouvez annuler ce paramètre en y passant la valeur NULL.

return_array

Si définit à TRUE, cette fonction retournera un tableau au lieu d'un objet.

Valeurs de retour

Les informations sont retournées sous forme d'un objet, dont les différents membres contiendront des informations, telles que les versions majeures et mineures et des chaînes d'identification ; des booléens pour des caractéristiques telles que frames, JavaScript, et cookies ; et ainsi de suite.

La valeur cookies indique simplement que le navigateur est capable d'accepter les cookies, et n'indique pas si l'utilisateur les a activé sur son navigateur. Le seul moyen de tester l'activation des cookies est d'en poser un avec la fonction setcookie(), de recharger la page et de vérifier que le cookie existe toujours.

Exemples

Exemple #1 Exemple avec get_browser() : liste des capacités du navigateur du client web

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
print_r($browser);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)

Notes

Note:

Afin de pouvoir fonctionner, la directive de configuration browscap dans le fichier php.ini doit pointer vers le fichier browscap.ini de votre système.

browscap.ini n'est pas distribué avec PHP, mais vous pouvez le télécharger sur » php_browscap.ini.

Bien que browscap.ini contienne des informations sur de très nombreux navigateur, il incombe à l'utilisateur de conserver sa base de données à jour. Le format du fichier est très simple à comprendre.


Stoppe l'exécution du compilateur

  • « get_browser
  • highlight_file »
  • PHP Manual
  • Fonctions diverses
  • Stoppe l'exécution du compilateur

__halt_compiler

(PHP 5 >= 5.1.0, PHP 7)

__halt_compiler — Stoppe l'exécution du compilateur

Description

void __halt_compiler ( void )

Stoppe l'exécution du compilateur. Ceci peut être très utile pour embarquer des données dans des scripts PHP, comme des fichiers d'installation.

L'octet de la position du début des données peut être déterminé par la constante __COMPILER_HALT_OFFSET__ qui n'est définie que s'il y a une fonction __halt_compiler() présente dans le fichier.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec __halt_compiler()

<?php

// Ouverture d'un fichier
$fp = fopen(__FILE__, 'r');

// Déplace le pointeur de fichier vers les données
fseek($fp, __COMPILER_HALT_OFFSET__);

// Puis, on l'affiche
var_dump(stream_get_contents($fp));

// La fin de l'exécution du script
__halt_compiler(); les données d'installation (eg. tar, gz, PHP, etc..)

Notes

Note:

__halt_compiler() ne peut être utilisé que depuis une portée extérieure.


Colorisation syntaxique d'un fichier

  • « __halt_compiler
  • highlight_string »
  • PHP Manual
  • Fonctions diverses
  • Colorisation syntaxique d'un fichier

highlight_file

(PHP 4, PHP 5, PHP 7)

highlight_file — Colorisation syntaxique d'un fichier

Description

mixed highlight_file ( string $filename [, bool $return = false ] )

Affiche la syntaxe colorisée du fichier filename, en utilisant les couleurs définies dans le moteur interne de PHP.

De nombreux serveurs sont configurés pour automatiquement afficher le source colorisé, avec l'extension phps. Par exemple, example.phps va afficher le source du script. Pour activer cette fonctionnalité, utilisez cette ligne dans httpd.conf :

AddType application/x-httpd-php-source .phps

Liste de paramètres

filename

Le chemin vers le fichier PHP à coloriser.

return

En passant ce paramètre à TRUE, la fonction retourne le code colorisé au lieu de l'afficher.

Valeurs de retour

Si le second paramètre optionnel return vaut TRUE alors highlight_file() retournera le code généré, au lieu de l'afficher. Si le second paramètre ne vaut pas TRUE alors highlight_file() retournera TRUE en cas de succès, et FALSE sinon.

Historique

Version | Description
4.2.1 | Cette fonction est désormais affectée par safe_mode et open_basedir.

Notes

Attention

Beaucoup de soin doit être apporté lors de l'utilisation de highlight_file() pour s'assurer que vous ne révélez pas d'informations critiques telles que des mots de passe ou d'autres informations qui pourraient créer des fuites d'informations.

Note:

Lorsque le paramètre return est utilisé, cette fonction utilise en interne le buffer de sortie, il ne peut donc pas être utilisé dans la fonction de rappel ob_start().

Voir aussi

  • highlight_string() - Applique la syntaxe colorisée à du code PHP
  • Les directives INI de coloration


Applique la syntaxe colorisée à du code PHP

  • « highlight_file
  • ignore_user_abort »
  • PHP Manual
  • Fonctions diverses
  • Applique la syntaxe colorisée à du code PHP

highlight_string

(PHP 4, PHP 5, PHP 7)

highlight_string — Applique la syntaxe colorisée à du code PHP

Description

mixed highlight_string ( string $str [, bool $return = false ] )

Affiche ou retourne le code HTML de la version colorisée du code PHP contenu dans le paramètre str, en utilisant les couleurs du système interne de colorisation de PHP.

Liste de paramètres

str

Le code PHP à coloriser. Doit également inclure les balises d'ouverture.

return

Définir ce paramètre à TRUE pour faire que cette fonction retourne le code colorisé.

Valeurs de retour

Si le second paramètre optionnel return est fourni, et vaut TRUE alors highlight_string() retournera la chaîne colorisée au lieu de l'afficher immédiatement. Si le second paramètre ne vaut pas TRUE alors highlight_string() retournera TRUE en cas de succès, et FALSE sinon.

Exemples

Exemple #1 Exemple avec highlight_string()

<?php
highlight_string('<?php phpinfo(); ?>');
?>

Cet exemple affichera (en PHP 4):

<code><font color="#000000">
<font color="#0000BB">&lt;?php phpinfo</font><font color="#007700">(); </font><font color="#0000BB">?&gt;</font>
</font>
</code>

Cet exemple affichera (en PHP 5):

<code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php phpinfo</span><span style="color: #007700">(); </span><span style="color: #0000BB">?&gt;</span>
</span>
</code>

Notes

Note:

Lorsque le paramètre return est utilisé, cette fonction utilise en interne le buffer de sortie, il ne peut donc pas être utilisé dans la fonction de rappel ob_start().

Le code HTML généré est sujet à changement.

Voir aussi

  • highlight_file() - Colorisation syntaxique d'un fichier
  • Les directives INI de coloration


Active l'interruption de script sur déconnexion du visiteur

  • « highlight_string
  • pack »
  • PHP Manual
  • Fonctions diverses
  • Active l'interruption de script sur déconnexion du visiteur

ignore_user_abort

(PHP 4, PHP 5, PHP 7)

ignore_user_abort — Active l'interruption de script sur déconnexion du visiteur

Description

int ignore_user_abort ([ string $value ] )

ignore_user_abort() active l'option qui fait que, lors de la déconnexion du client Web, le script poursuit son exécution.

Lorsque PHP est exécuté comme script en ligne de commande, et que le tty du script est fermé sans que le script soit terminé, alors le script s'arrêtera dès qu'il essaiera d'écrire quelque chose, à moins que value soit TRUE

Liste de paramètres

value

Si fourni, la fonction va attribuer à la directive ignore_user_abort la valeur de value. Si omis, cette fonction ne fait que retourner la valeur de la configuration courante.

Valeurs de retour

Retourne la configuration précédente, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec ignore_user_abort()

<?php
// Ignore la déconnexion de l'utilisateur et autorise
// le script à continuer de s'exécuter
ignore_user_abort(true);
set_time_limit(0);

echo 'Test du gestionnaire de connexion de PHP';

// Exécution d'une boucle infinie surveillant
// l'activité de l'utilisateur. Soit il clique en dehors
// de la page, soit il clique sur le boutton "Stop".
while(1)
{
    // La connexion a-t-elle échoué ?
    if(connection_status() != CONNECTION_NORMAL)
    {
        break;
    }

    // On attend 10 secondes
    sleep(10);
}

// Si c'est atteint, alors l'instruction 'break'
// sera lancée depuis la boucle infinie

// Aussi, nous pouvons à ce niveau entrer des informations dans l'historique,
// ou exécuter d'autres taches nécessaires, sans pour autant être dépendant
// du navigateur.
?>

Notes

PHP ne détecte pas la déconnexion du client Web jusqu'à ce qu'une tentative d'envoi soit faite. La simple utilisation d'un echo ne garantit pas que l'information est envoyée, voir la fonction flush().

Voir aussi

  • connection_aborted() - Indique si l'internaute a abandonné la connexion HTTP
  • connection_status() - Retourne les bits de statut de la connexion HTTP
  • Gestionnaire de connexion pour une description complète du gestionnaire de connexion en PHP.


Compacte des données dans une chaîne binaire

  • « ignore_user_abort
  • php_check_syntax »
  • PHP Manual
  • Fonctions diverses
  • Compacte des données dans une chaîne binaire

pack

(PHP 4, PHP 5, PHP 7)

pack — Compacte des données dans une chaîne binaire

Description

string pack ( string $format [, mixed $args [, mixed $... ]] )

Compacte les arguments args dans une chaîne binaire, suivant le format format.

Le concept vient du Perl et tout le formatage fonctionne de la même façon qu'en Perl, mais quelques formats manquent encore (comme "u").

Notez que la distinction entre signé et non signé n'affecte que la fonction unpack(), tandis que la fonction pack() fournira le même résultat pour les deux formats.

Liste de paramètres

format

La chaîne de caractères format consiste en des codes de format suivis par un argument répéteur optionnel. Le répéteur peut être soit une valeur entière, soit * pour une répétition jusqu'à la fin des données d'entrées. Pour a, A, h, H, le répéteur spécifie combien de caractères d'une donnée est pris, pour @, c'est la position absolue où l'on insère les prochaines données, pour tout le reste, le répéteur spécifie combien d'arguments de données sont consommés et compactés dans la chaîne binaire résultante.

Les formats actuellement acceptés sont :

Caractères de formatage pour pack()
Code | Description
a | NUL - Une chaîne complétée avec NULL
A | SPACE - Une chaîne complétée avec un espace
h | Chaîne hexadécimale h, bit de poids faible en premier
H | Chaîne hexadécimale H, bit de poids fort en premier
c | Caractère signé
C | Caractère non signé
s | entier court signé (toujours sur 16 bits, ordre des octets dépendant de la machine)
S | entier court non signé (toujours 16 bits, ordre des octets dépendant de la machine)
n | entier court non signé (toujours 16 bits, ordre des octets big endian)
v | entier court non signé (toujours 16 bits, ordre des octets little endian)
i | entier signé (taille et ordre des octets dépendants de la machine)
I | entier non signé (taille et ordre des octets dépendants de la machine)
l | entier long signé (toujours 32 bits, ordre des octets dépendant de la machine)
L | entier long non signé (toujours 32 bits, ordre des octets dépendant de la machine)
N | entier long non signé (toujours 32 bits, ordre des octets big endian)
V | entier long non signé (toujours 32 bits, ordre des octets little endian)
q | entier doublement long signé (toujours 64 bits, ordre des octets dépendant de la machine)
Q | entier doublement long non signé (toujours 64 bits, ordre des octets dépendant de la machine)
J | entier doublement long non signé (toujours 64 bits, ordre des octets big endian)
P | entier doublement long non signé (toujours 64 bits, ordre des octets little endian)
f | nombre à virgule flottante (taille et représentation dépendantes de la machine)
d | nombre à virgule flottante double (taille et représentation dépendantes de la machine)
x | caractère NUL
X | Recule d'un caractère
Z | Chaîne complétée par la valeur NULL (nouveau en PHP 5.5)
@ Remplit avec des NUL jusqu'à la position absolue

args

Valeurs de retour

Retourne une chaîne de caractères binaire contenant les données.

Historique

Version | Description
5.6.3 | Les codes "q", "Q", "J" et "P" codes ont été ajoutés pour travailler avec les nombres 64 bits.
5.5.0 | Le code "Z" a été ajouté et dont le comportement est identique à "a" en Perl.

Exemples

Exemple #1 Exemple avec pack()

<?php
$binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66);
?>

La chaîne binaire résultante aura 6 octets de long, et contiendra la séquence 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

Notes

Attention

Notez que PHP stocke en interne les valeurs integer comme valeurs signées dépendantes de la machine (type C long). Les opérations sur les entiers qui mènent à des chiffres en dehors de l'espace de définition de l'integer seront stockées dans des float. Lors de l'empaquetage de ses flottants en entiers, ils sont transtypés vers le type entier. Ceci peut éventuellement mener à une représentation inattendue des octets.

Le cas le plus classique est l'empaquetage de nombres non signés qui seraient représentables dans le type integer si celui-ci était non signé. Sur les systèmes ayant un integer d'une taille de 32-bits, le transtypage résulte en un octet identique que si le type integer était non signé (même si cela reste dépendant de l'implémentation non signé vers signé, du standard C). Sur les systèmes ayant un integer d'une taille de 64-bits, le float n'a souvent pas une mantisse assez large pour contenir la valeur sans perte de précision. Si ces systèmes possèdent aussi un type C natif int 64-bits (la plupart des *NIX ne l'ont pas), le seul moyen d'utiliser le format de paquetage I dans les hautes valeurs est de créer des valeurs integer négatives avec la même représentation des octets que la valeur non signées voulue correspondante.

Voir aussi

  • unpack() - Déconditionne des données depuis une chaîne binaire


Vérifie la syntaxe PHP (et exécute) d'un fichier spécifique

  • « pack
  • php_strip_whitespace »
  • PHP Manual
  • Fonctions diverses
  • Vérifie la syntaxe PHP (et exécute) d'un fichier spécifique

php_check_syntax

(PHP 5 <= 5.0.4)

php_check_syntax — Vérifie la syntaxe PHP (et exécute) d'un fichier spécifique

Description

bool php_check_syntax ( string $filename [, string &$error_message ] )

Effectue une vérification de la syntaxe du fichier filename pour y trouver des erreurs de script.

Ceci est similaire à utiliser la commande php -l depuis la ligne de commande mise à part que php_check_syntax() exécutera (mais n'affichera rien) le fichier filename vérifié.

Par exemple, si une fonction est définie dans filename, cette fonction sera disponible pour le fichier qui exécute php_check_syntax(), mais l'affichage depuis filename sera supprimée.

Note:

Pour des raisons techniques, cette fonction est obsolète et supprimée de PHP. Utilisez à la place php -l somefile.php depuis la ligne de commande.

Liste de paramètres

filename

Le nom du fichier à vérifier.

error_message

Si le paramètre error_message est utilisé, il contiendra le message d'erreur généré par la vérification de la syntaxe. error_message est passé par référence.

Valeurs de retour

Retourne TRUE si la vérification a réussie, et FALSE si la vérification échoue ou si le fichier filename n'a pu être ouvert.

Historique

Version | Description
5.0.5 | Cette fonction a été supprimée de PHP.
5.0.3 | Appel à exit() après php_check_syntax() cause une erreur de segmentation.
5.0.1 | error_message est passé par référence.

Exemples

php -l somefile.php

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Parse error: unexpected T_STRING in /tmp/somefile.php on line 81

Voir aussi

  • include - include
  • is_readable() - Indique si un fichier existe et est accessible en lecture


Retourne la source sans commentaires, ni espaces blancs

  • « php_check_syntax
  • show_source »
  • PHP Manual
  • Fonctions diverses
  • Retourne la source sans commentaires, ni espaces blancs

php_strip_whitespace

(PHP 5, PHP 7)

php_strip_whitespace — Retourne la source sans commentaires, ni espaces blancs

Description

string php_strip_whitespace ( string $filename )

Retourne le code source PHP du paramètre filename en ayant supprimé les commentaires ainsi que les espaces. Cela peut être utile pour comparer la quantité de code avec la quantité de commentaire dans votre code. Cela revient à utiliser la commande php -w depuis la ligne de commande.

Liste de paramètres

filename

Chemin vers le fichier PHP.

Valeurs de retour

Le code source nettoyé sera retourné en cas de succès ou une chaîne vide en cas d'échec.

Note:

Cette fonction fonctionne comme décrite depuis PHP 5.0.1. Avant, elle ne retournait qu'une chaîne vide. Pour plus de détails concernant ce bogue ainsi que son comportement précédent, lisez le rapport de bogue » #29606.

Exemples

Exemple #1 Exemple avec php_strip_whitespace()

<?php
// Commentaire PHP ici

/*
 * Un autre commentaire PHP
 */

echo        php_strip_whitespace(__FILE__);
// Les nouvelles lignes sont considérées comme des espaces et sont donc également effacées :
do_nothing();
?>

L'exemple ci-dessus va afficher :

<?php
 echo php_strip_whitespace(__FILE__); do_nothing(); ?>

Notez que les commentaires PHP ne sont plus là, tout comme les espaces et les nouvelles lignes après le premier echo.


Alias de highlight_file

  • « php_strip_whitespace
  • sleep »
  • PHP Manual
  • Fonctions diverses
  • Alias de highlight_file

show_source

(PHP 4, PHP 5, PHP 7)

show_source — Alias de highlight_file()

Description

Cette fonction est un alias de : highlight_file().


Arrête l'exécution durant quelques secondes

  • « show_source
  • sys_getloadavg »
  • PHP Manual
  • Fonctions diverses
  • Arrête l'exécution durant quelques secondes

sleep

(PHP 4, PHP 5, PHP 7)

sleep — Arrête l'exécution durant quelques secondes

Description

int sleep ( int $seconds )

Arrête l'exécution du programme pendant seconds secondes.

Liste de paramètres

seconds

Le temps d'arret, en nombre de secondes.

Valeurs de retour

Retourne zéro en cas de succès, ou FALSE si une erreur survient.

Si l'appel est interrompu par un signal, la fonction sleep() retournera une valeur différente de zéro. Sous Windows, la valeur sera toujours de 192 (la valeur de la constante WAIT_IO_COMPLETION de l'API Windows). Sous les autres plateformes, la valeur retournée sera le nombre de secondes restantes à la fonction sleep().

Erreurs / Exceptions

Si le nombre seconds spécifié est négatif, cette fonction génère une alerte de niveau E_WARNING.

Historique

Version | Description
5.3.4 | Avant PHP 5.3.4, sous Windows, sleep() retournait toujours NULL, indépendamment du fait que la fonction ait été interrompue ou non.

Exemples

Exemple #1 Exemple avec sleep()

<?php

// Heure actuelle
echo date('h:i:s') . "\n";

// Stoppe pour 10 secondes
sleep(10);

// retour !
echo date('h:i:s') . "\n";

?>

Cet exemple affichera (après 10 secondes) :

05:31:23
05:31:33

Voir aussi

  • usleep() - Arrête l'exécution durant quelques microsecondes
  • time_nanosleep() - Attendre pendant un nombre de secondes et de nanosecondes
  • time_sleep_until() - Arrête le script pendant une durée spécifiée
  • set_time_limit() - Fixe le temps maximum d'exécution d'un script


Récupère la charge moyenne du système

  • « sleep
  • time_nanosleep »
  • PHP Manual
  • Fonctions diverses
  • Récupère la charge moyenne du système

sys_getloadavg

(PHP 5 >= 5.1.3, PHP 7)

sys_getloadavg — Récupère la charge moyenne du système

Description

array sys_getloadavg ( void )

Retourne trois échantillons représentant la charge moyenne du système (le nombre de processus dans le système qui est dans le processus de roulement en attente) depuis les dernières 1, 5 et 15 minutes, respectivement.

Valeurs de retour

Retourne un array avec trois échantillons (dernières 1, 5 et 15 minutes).

Exemples

Exemple #1 Exemple avec sys_getloadavg()

<?php
$load = sys_getloadavg();
if ($load[0] > 80) {
    header('HTTP/1.1 503 Too busy, try again later');
    die('Server too busy. Please try again later.');
}
?>

Notes

Note: Cette fonction n'est pas implémentée sous Windows.


Attendre pendant un nombre de secondes et de nanosecondes

  • « sys_getloadavg
  • time_sleep_until »
  • PHP Manual
  • Fonctions diverses
  • Attendre pendant un nombre de secondes et de nanosecondes

time_nanosleep

(PHP 5, PHP 7)

time_nanosleep — Attendre pendant un nombre de secondes et de nanosecondes

Description

mixed time_nanosleep ( int $seconds , int $nanoseconds )

time_nanosleep() impose un délai d'exécution de seconds secondes et nanoseconds nanosecondes.

Liste de paramètres

seconds

Doit être un entier non-négatif.

nanoseconds

Doit être un entier non-négatif, inférieur à 1 milliard.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si le délai est interrompu par un signal, un tableau associatif sera retourné avec les éléments :

  • seconds : nombre de secondes restantes dans le délai
  • nanoseconds : nombre de nanosecondes restantes dans le délai

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sous Windows.

Exemples

Exemple #1 Exemple avec time_nanosleep()

<?php
// Attention ! Cela ne fonctionnera pas comme prévu si un tableau est retourné
if (time_nanosleep(0, 500000000)) {
    echo "Dors pendant une demie seconde.\n";
}

// Ceci est meilleur :
if (time_nanosleep(0, 500000000) === true) {
    echo "Dors pendant une demie seconde.\n";
}

// Et ceci est la meilleur façon :
$nano = time_nanosleep(2, 100000);

if ($nano === true) {
    echo "Dors pendant 2 secondes et 100 microsecondes.\n";
} elseif ($nano === false) {
    echo "Le délai a échoué.\n";
} elseif (is_array($nano)) {
    $seconds = $nano['seconds'];
    $nanoseconds = $nano['nanoseconds'];
    echo "Interrompu par un signal.\n";
    echo "Temps restant : $seconds secondes, $nanoseconds nanosecondes.";
}
?>

Voir aussi

  • sleep() - Arrête l'exécution durant quelques secondes
  • usleep() - Arrête l'exécution durant quelques microsecondes
  • time_sleep_until() - Arrête le script pendant une durée spécifiée
  • set_time_limit() - Fixe le temps maximum d'exécution d'un script


Arrête le script pendant une durée spécifiée

  • « time_nanosleep
  • uniqid »
  • PHP Manual
  • Fonctions diverses
  • Arrête le script pendant une durée spécifiée

time_sleep_until

(PHP 5 >= 5.1.0, PHP 7)

time_sleep_until — Arrête le script pendant une durée spécifiée

Description

bool time_sleep_until ( float $timestamp )

Arrête le script jusqu'à l'instant indiqué par le paramètre timestamp.

Liste de paramètres

timestamp

Le timestamp correspondant à l'instant où le script doit se réveiller.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sous Windows.

Erreurs / Exceptions

Si l'instant indiqué par timestamp est dans le passé, time_sleep_until() générera une alerte de niveau E_WARNING.

Exemples

Exemple #1 Exemple avec time_sleep_until()

<?php

// Retourne false et génère une alerte
var_dump(time_sleep_until(time()-1));

// Fonctionnera que sur les ordinateurs rapides, stoppera le script 0.2 secondes
var_dump(time_sleep_until(microtime(true)+0.2));

?>

Notes

Note: Tous les signaux seront délivrés une fois la reprise du script.

Voir aussi

  • sleep() - Arrête l'exécution durant quelques secondes
  • usleep() - Arrête l'exécution durant quelques microsecondes
  • time_nanosleep() - Attendre pendant un nombre de secondes et de nanosecondes
  • set_time_limit() - Fixe le temps maximum d'exécution d'un script


Génère un identifiant unique

  • « time_sleep_until
  • unpack »
  • PHP Manual
  • Fonctions diverses
  • Génère un identifiant unique

uniqid

(PHP 4, PHP 5, PHP 7)

uniqid — Génère un identifiant unique

Description

string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )

Génère un identifiant unique, préfixé, basé sur la date et heure courante en microsecondes.

Avertissement

Cette fonction ne crée pas une chaîne aléatoire ni non-devinable. Cette fonction ne peut être utilisée dans un but de sécurité. Utilisez une fonction/générateur sécurisé, aléatoire et cryptologique, ainsi que son hash pour créer des ID sécurisés.

Liste de paramètres

prefix

Peut être utile, par exemple, pour identifier facilement différents hôtes, si vous générez simultanément des fichiers depuis plusieurs hôtes, à la même microseconde.

Sans prefix (préfixe vide), la chaîne retournée fera 13 caractères. Si more_entropy est à TRUE, elle fera 23 caractères.

more_entropy

Si le paramètre optionnel more_entropy est TRUE, uniqid() ajoutera une entropie "combined LCG" à la fin de la valeur retournée, ce qui augmente la probabilité de l'unicité du résultat.

Valeurs de retour

Retourne un identifiant unique, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec uniqid()

<?php
/* Un identifiant unique, comme : 4b3403665fea6 */
printf("uniqid(): %s\r\n", uniqid());

/* Nous pouvons également préfixer l'identifiant unique,
 * ce qui revient à :
 *
 * $uniqid = $prefix . uniqid();
 * $uniqid = uniqid($prefix);
 */
printf("uniqid('php_'): %s\r\n", uniqid('php_'));

/* Nous pouvons aussi activer le paramètre more_entropy,
 * requis par quelques systèmes, comme Cygwin. Ceci fera que
 * uniqid() produira une valeur comme : 4b340550242239.64159797
 */
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>

Notes

Attention

Cette fonction ne génère pas un jeton cryptographiquement sécurisé. En fait, sans passer aucun paramètre supplémentaire, la valeur retournée est à peine différente de celle renvoyée par la fonction microtime(). Si vous devez générer des jetons cryptographiques de sécurité, utilisez la fonction openssl_random_pseudo_bytes().

Note:

Sous Cygwin, le paramètre more_entropy doit être passé à TRUE pour que cette fonction fonctionne.


Déconditionne des données depuis une chaîne binaire

  • « uniqid
  • usleep »
  • PHP Manual
  • Fonctions diverses
  • Déconditionne des données depuis une chaîne binaire

unpack

(PHP 4, PHP 5, PHP 7)

unpack — Déconditionne des données depuis une chaîne binaire

Description

array unpack ( string $format , string $data )

Déconditionne les données data depuis une chaîne binaire avec le format format.

Les données déconditionnées sont stockées dans un tableau. Pour cela, il faut donner un nom à chaque format utilisé et les séparer par des slash (/). Si un argument de répétition est présent, alors chacune des clés du tableau aura un numéro de séquence derrière le nom fourni.

Liste de paramètres

format

Voir la fonction pack() pour une explication des codes de format.

data

Les données conditionnées.

Valeurs de retour

Retourne un tableau associatif contenant les éléments déconditionnés d'une chaîne binaire.

Historique

Version Description
5.5.0

Des modifications ont été effectuées pour aligner le comportement de cette fonction avec Perl :

Le code "a" ne supprime plus les octets NULL finaux.

Le code "A" supprime maintenant tous les espaces blancs ASCII finaux (espace, tabulation, nouvelles lignes, retour à la ligne, et octets NULL).

Le code "Z" a été ajouté pour les chaînes complétées par des caractères NULL, et supprime les octets NULL finaux.

Exemples

Exemple #1 Exemple avec unpack()

<?php
$binarydata = "\x04\x00\xa0\x00";
$array = unpack("cchars/nint", $binarydata);
?>

Le tableau résultant contiendra les entrées "chars" avec les valeurs 4 et "int" avec 160.

Exemple #2 Exemple avec unpack() et un argument de répétition

<?php
$binarydata = "\x04\x00\xa0\x00";
$array = unpack("c2chars/nint", $binarydata);
?>

Le tableau résultant contiendra les entrées "chars1", "chars2" et "int".

Notes

Attention

Il faut noter que PHP gère les valeurs en interne sous forme signée. Si vous déconditionnez une valeur qui est aussi grande que la taille utilisée en interne par PHP, le résultat se trouvera être un nombre négatif, même s'il a été déconditionné avec l'option " non signé ".

Attention

Attention, si vous ne nommez pas un élément, une chaîne vide sera utilisée. Si vous ne nommez pas plus d'un élément, cela signifie que quelques données seront écrasées lorsque les clés sont identiques, comme ceci :

Exemple #3 Exemple avec unpack() avec des clés non nommées

<?php
$binarydata = "\x32\x42\x00\xa0";
$array = unpack("c2/n", $binarydata);
var_dump($array);
?>

Le tableau résultant contiendra les entrées "1" avec la valeur 160 et "2" avec 66. La première valeur depuis le spécificateur c est écrasé par la première valeur depuis le spécificateur n.

Voir aussi

  • pack() - Compacte des données dans une chaîne binaire


Arrête l'exécution durant quelques microsecondes

  • « unpack
  • Historique des modifications »
  • PHP Manual
  • Fonctions diverses
  • Arrête l'exécution durant quelques microsecondes

usleep

(PHP 4, PHP 5, PHP 7)

usleep — Arrête l'exécution durant quelques microsecondes

Description

void usleep ( int $micro_seconds )

Arrête l'exécution d'un programme durant un laps de temps.

Liste de paramètres

micro_seconds

Durée de l'arrêt, en microsecondes. Une microseconde est un millionième de seconde.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec usleep()

<?php

// Heure courante
echo date('h:i:s') . "\n";

// Stoppe pour 2 secondes
usleep(2000000);

// Retour !
echo date('h:i:s') . "\n";

?>

L'exemple ci-dessus va afficher :

11:13:28
11:13:30

Voir aussi

  • sleep() - Arrête l'exécution durant quelques secondes
  • time_nanosleep() - Attendre pendant un nombre de secondes et de nanosecondes
  • time_sleep_until() - Arrête le script pendant une durée spécifiée
  • set_time_limit() - Fixe le temps maximum d'exécution d'un script


Historique des modifications

Les modifications suivantes ont été apportées aux classes/fonctions/méthodes de cette extension.

Version | Function | Description
7.0.0 | define | Les valeurs array sont autorisées.
5.6.3 | pack | Les codes "q", "Q", "J" et "P" codes ont été ajoutés pour travailler avec les nombres 64 bits.
5.5.0 | pack | Le code "Z" a été ajouté et dont le comportement est identique à "a" en Perl.
 | unpack | Des modifications ont été effectuées pour aligner le comportement de cette fonction avec Perl : Le code "a" ne supprime plus les octets NULL finaux. Le code "A" supprime maintenant tous les espaces blancs ASCII finaux (espace, tabulation, nouvelles lignes, retour à la ligne, et octets NULL). Le code "Z" a été ajouté pour les chaînes complétées par des caractères NULL, et supprime les octets NULL finaux.
5.3.4 | sleep | Avant PHP 5.3.4, sous Windows, sleep retournait toujours NULL, indépendamment du fait que la fonction ait été interrompue ou non.
5.3.0 | time_nanosleep | Cette fonction est maintenant disponible sous Windows.
 | time_sleep_until | Cette fonction est maintenant disponible sous Windows.
5.0.5 | php_check_syntax | Cette fonction a été supprimée de PHP.
5.0.3 | php_check_syntax | Appel à exit après php_check_syntax cause une erreur de segmentation.
5.0.1 | php_check_syntax | error_message est passé par référence.
4.2.1 | highlight_file | Cette fonction est désormais affectée par safe_mode et open_basedir.


Parsekit

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Parsekit
    • parsekit_compile_file — Compile un fichier PHP et retourne le tableau d'opcode résultant
    • parsekit_compile_string — Compile une chaîne de code PHP et retourne le tableau d'opcode résultant
    • parsekit_func_arginfo — Retourne des informations concernant les arguments d'une fonction


Introduction

Ces fonctions vous permettent d'analyser en cours de fonctionnement l'opcode compilé depuis vos scripts PHP.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/parsekit.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

PARSEKIT_QUIET (entier)
Retourne tous les détails mais sans les entrées NULL non nécessaire.
PARSEKIT_SIMPLE (entier)
Retourne une notation opcode abrégée.
PARSEKIT_EXTENDED_VALUE (entier)
Flag d'un noeud opcode
PARSEKIT_RESULT_CONST (entier)
Flag d'un noeud opcode
PARSEKIT_RESULT_EA_TYPE (entier)
Flag d'un noeud opcode
PARSEKIT_RESULT_JMP_ADDR (entier)
Flag d'un noeud opcode
PARSEKIT_RESULT_OPARRAY (entier)
Flag d'un noeud opcode
PARSEKIT_RESULT_OPLINE (entier)
Flag d'un noeud opcode
PARSEKIT_RESULT_VAR (entier)
Flag d'un noeud opcode
PARSEKIT_USAGE_UNKNOWN (entier)
Flag d'un noeud opcode
PARSEKIT_ZEND_INTERNAL_CLASS (entier)
Type de la classe
PARSEKIT_ZEND_USER_CLASS (entier)
Type de la classe
PARSEKIT_ZEND_EVAL_CODE (entier)
Type de la fonction
PARSEKIT_ZEND_INTERNAL_FUNCTION (entier)
Type de la fonction
PARSEKIT_ZEND_OVERLOADED_FUNCTION (entier)
Type de la fonction
PARSEKIT_ZEND_OVERLOADED_FUNCTION_TEMPORARY (entier) PHP >= 5.0.0
Type de la fonction
PARSEKIT_ZEND_USER_FUNCTION (entier)
Type de la fonction
PARSEKIT_IS_CONST (entier)
Type du noeud
PARSEKIT_IS_TMP_VAR (entier)
Type du noeud
PARSEKIT_IS_UNUSED (entier)
Type du noeud
PARSEKIT_IS_VAR (entier)
Type du noeud
PARSEKIT_ZEND_ADD (entier)
Opcode
PARSEKIT_ZEND_ADD_ARRAY_ELEMENT (entier)
Opcode
PARSEKIT_ZEND_ADD_CHAR (entier)
Opcode
PARSEKIT_ZEND_ADD_INTERFACE (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ADD_STRING (entier)
Opcode
PARSEKIT_ZEND_ADD_VAR (entier)
Opcode
PARSEKIT_ZEND_ASSIGN (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_ADD (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_BW_AND (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_BW_OR (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_BW_XOR (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_CONCAT (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_DIM (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ASSIGN_DIV (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_MOD (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_MUL (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ASSIGN_REF (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_SL (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_SR (entier)
Opcode
PARSEKIT_ZEND_ASSIGN_SUB (entier)
Opcode
PARSEKIT_ZEND_BEGIN_SILENCE (entier)
Opcode
PARSEKIT_ZEND_BOOL (entier)
Opcode
PARSEKIT_ZEND_BOOL_NOT (entier)
Opcode
PARSEKIT_ZEND_BOOL_XOR (entier)
Opcode
PARSEKIT_ZEND_BRK (entier)
Opcode
PARSEKIT_ZEND_BW_AND (entier)
Opcode
PARSEKIT_ZEND_BW_NOT (entier)
Opcode
PARSEKIT_ZEND_BW_OR (entier)
Opcode
PARSEKIT_ZEND_BW_XOR (entier)
Opcode
PARSEKIT_ZEND_CASE (entier)
Opcode
PARSEKIT_ZEND_CAST (entier)
Opcode
PARSEKIT_ZEND_CATCH (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_CLONE (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_CONCAT (entier)
Opcode
PARSEKIT_ZEND_CONT (entier)
Opcode
PARSEKIT_ZEND_DECLARE_CLASS (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_DECLARE_FUNCTION (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_DECLARE_INHERITED_CLASS (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_DIV (entier)
Opcode
PARSEKIT_ZEND_DO_FCALL (entier)
Opcode
PARSEKIT_ZEND_DO_FCALL_BY_NAME (entier)
Opcode
PARSEKIT_ZEND_ECHO (entier)
Opcode
PARSEKIT_ZEND_END_SILENCE (entier)
Opcode
PARSEKIT_ZEND_EXIT (entier)
Opcode
PARSEKIT_ZEND_EXT_FCALL_BEGIN (entier)
Opcode
PARSEKIT_ZEND_EXT_FCALL_END (entier)
Opcode
PARSEKIT_ZEND_EXT_NOP (entier)
Opcode
PARSEKIT_ZEND_EXT_STMT (entier)
Opcode
PARSEKIT_ZEND_FETCH_CLASS (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_FETCH_CONSTANT (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_FUNC_ARG (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_IS (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_R (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_RW (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_TMP_VAR (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_UNSET (entier)
Opcode
PARSEKIT_ZEND_FETCH_DIM_W (entier)
Opcode
PARSEKIT_ZEND_FETCH_FUNC_ARG (entier)
Opcode
PARSEKIT_ZEND_FETCH_IS (entier)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_FUNC_ARG (entier)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_IS (entier)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_R (entier)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_RW (entier)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_UNSET (entier)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_W (entier)
Opcode
PARSEKIT_ZEND_FETCH_R (entier)
Opcode
PARSEKIT_ZEND_FETCH_RW (entier)
Opcode
PARSEKIT_ZEND_FETCH_UNSET (entier)
Opcode
PARSEKIT_ZEND_FETCH_W (entier)
Opcode
PARSEKIT_ZEND_FE_FETCH (entier)
Opcode
PARSEKIT_ZEND_FE_RESET (entier)
Opcode
PARSEKIT_ZEND_FREE (entier)
Opcode
PARSEKIT_ZEND_HANDLE_EXCEPTION (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IMPORT_CLASS (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IMPORT_CONST (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IMPORT_FUNCTION (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INCLUDE_OR_EVAL (entier)
Opcode
PARSEKIT_ZEND_INIT_ARRAY (entier)
Opcode
PARSEKIT_ZEND_INIT_CTOR_CALL (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INIT_FCALL_BY_NAME (entier)
Opcode
PARSEKIT_ZEND_INIT_METHOD_CALL (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INIT_STATIC_METHOD_CALL (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INIT_STRING (entier)
Opcode
PARSEKIT_ZEND_INSTANCEOF (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY (entier) PHP < 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY_DIM_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY_PROP_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY_VAR (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IS_EQUAL (entier)
Opcode
PARSEKIT_ZEND_IS_IDENTICAL (entier)
Opcode
PARSEKIT_ZEND_IS_NOT_EQUAL (entier)
Opcode
PARSEKIT_ZEND_IS_NOT_IDENTICAL (entier)
Opcode
PARSEKIT_ZEND_IS_SMALLER (entier)
Opcode
PARSEKIT_ZEND_IS_SMALLER_OR_EQUAL (entier)
Opcode
PARSEKIT_ZEND_JMP (entier)
Opcode
PARSEKIT_ZEND_JMPNZ (entier)
Opcode
PARSEKIT_ZEND_JMPNZ_EX (entier)
Opcode
PARSEKIT_ZEND_JMPZ (entier)
Opcode
PARSEKIT_ZEND_JMPZNZ (entier)
Opcode
PARSEKIT_ZEND_JMPZ_EX (entier)
Opcode
PARSEKIT_ZEND_JMP_NO_CTOR (entier)
Opcode
PARSEKIT_ZEND_MOD (entier)
Opcode
PARSEKIT_ZEND_MUL (entier)
Opcode
PARSEKIT_ZEND_NEW (entier)
Opcode
PARSEKIT_ZEND_NOP (entier)
Opcode
PARSEKIT_ZEND_OP_DATA (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_POST_DEC (entier)
Opcode
PARSEKIT_ZEND_POST_DEC_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_POST_INC (entier)
Opcode
PARSEKIT_ZEND_POST_INC_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_PRE_DEC (entier)
Opcode
PARSEKIT_ZEND_PRE_DEC_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_PRE_INC (entier)
Opcode
PARSEKIT_ZEND_PRE_INC_OBJ (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_PRINT (entier)
Opcode
PARSEKIT_ZEND_QM_ASSIGN (entier)
Opcode
PARSEKIT_ZEND_RAISE_ABSTRACT_ERROR (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_RECV (entier)
Opcode
PARSEKIT_ZEND_RECV_INIT (entier)
Opcode
PARSEKIT_ZEND_RETURN (entier)
Opcode
PARSEKIT_ZEND_SEND_REF (entier)
Opcode
PARSEKIT_ZEND_SEND_VAL (entier)
Opcode
PARSEKIT_ZEND_SEND_VAR (entier)
Opcode
PARSEKIT_ZEND_SEND_VAR_NO_REF (entier)
Opcode
PARSEKIT_ZEND_SL (entier)
Opcode
PARSEKIT_ZEND_SR (entier)
Opcode
PARSEKIT_ZEND_SUB (entier)
Opcode
PARSEKIT_ZEND_SWITCH_FREE (entier)
Opcode
PARSEKIT_ZEND_THROW (entier) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_TICKS (entier)
Opcode
PARSEKIT_ZEND_UNSET_DIM_OBJ (entier)
Opcode
PARSEKIT_ZEND_UNSET_VAR (entier)
Opcode
PARSEKIT_ZEND_VERIFY_ABSTRACT_CLASS (entier) PHP >= 5.0.0
Opcode


Fonctions Parsekit

Sommaire

  • parsekit_compile_file — Compile un fichier PHP et retourne le tableau d'opcode résultant
  • parsekit_compile_string — Compile une chaîne de code PHP et retourne le tableau d'opcode résultant
  • parsekit_func_arginfo — Retourne des informations concernant les arguments d'une fonction


Compile un fichier PHP et retourne le tableau d'opcode résultant

  • « Fonctions Parsekit
  • parsekit_compile_string »
  • PHP Manual
  • Fonctions Parsekit
  • Compile un fichier PHP et retourne le tableau d'opcode résultant

parsekit_compile_file

(PECL parsekit >= 0.2.0)

parsekit_compile_file — Compile un fichier PHP et retourne le tableau d'opcode résultant

Description

array parsekit_compile_file ( string $filename [, array &$errors [, int $options = PARSEKIT_QUIET ]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

filename

Une chaîne contenant le nom du fichier à compiler. Similaire à l'argument de include.

&errors

Un hash 2D des erreurs (incluant les erreurs fatales) rencontrées pendant la compilation. Retourné par référence.

options

Soit PARSEKIT_QUIET, soit PARSEKIT_SIMPLE. Pour produire plusieurs degrés de retour dans la chaîne retournée.

Valeurs de retour

Retourne un tableau complexe multidimensionnel, structuré comme ci-dessous.

Exemples

Exemple #1 Exemple avec parsekit_compile_file()

<?php
var_dump(parsekit_compile_file('bonjour_le_monde.php', $errors, PARSEKIT_SIMPLE));
?>

L'exemple ci-dessus va afficher :

array(5) {
  [0]=>
  string(37) "ZEND_ECHO UNUSED 'Bonjour le monde' UNUSED"
  [1]=>
  string(30) "ZEND_RETURN UNUSED NULL UNUSED"
  [2]=>
  string(42) "ZEND_HANDLE_EXCEPTION UNUSED UNUSED UNUSED"
  ["function_table"]=>
  NULL
  ["class_table"]=>
  NULL
}

Voir aussi

  • parsekit_compile_string() - Compile une chaîne de code PHP et retourne le tableau d'opcode résultant


Compile une chaîne de code PHP et retourne le tableau d'opcode résultant

  • « parsekit_compile_file
  • parsekit_func_arginfo »
  • PHP Manual
  • Fonctions Parsekit
  • Compile une chaîne de code PHP et retourne le tableau d'opcode résultant

parsekit_compile_string

(PECL parsekit >= 0.2.0)

parsekit_compile_string — Compile une chaîne de code PHP et retourne le tableau d'opcode résultant

Description

array parsekit_compile_string ( string $phpcode [, array &$errors [, int $options = PARSEKIT_QUIET ]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

phpcode

Une chaîne contenant du code PHP. Similaire à l'argument de eval().

&errors

Un hash 2D des erreurs (incluant les erreurs fatales) rencontrées pendant la compilation. Retourné par référence.

options

Soit PARSEKIT_QUIET, soit PARSEKIT_SIMPLE. Pour produire plusieurs degrés de retour dans la chaîne retournée.

Valeurs de retour

Retourne un tableau complexe multidimensionnel, structuré comme ci-dessous.

Exemples

Exemple #1 Exemple avec parsekit_compile_string()

<?php
  $ops = parsekit_compile_string('
echo "Foo\n";
', $errors, PARSEKIT_QUIET);

  var_dump($ops);
?>

L'exemple ci-dessus va afficher :

array(20) {
  ["type"]=>
  int(4)
  ["type_name"]=>
  string(14) "ZEND_EVAL_CODE"
  ["fn_flags"]=>
  int(0)
  ["num_args"]=>
  int(0)
  ["required_num_args"]=>
  int(0)
  ["pass_rest_by_reference"]=>
  bool(false)
  ["uses_this"]=>
  bool(false)
  ["line_start"]=>
  int(0)
  ["line_end"]=>
  int(0)
  ["return_reference"]=>
  bool(false)
  ["refcount"]=>
  int(1)
  ["last"]=>
  int(3)
  ["size"]=>
  int(3)
  ["T"]=>
  int(0)
  ["last_brk_cont"]=>
  int(0)
  ["current_brk_cont"]=>
  int(-1)
  ["backpatch_count"]=>
  int(0)
  ["done_pass_two"]=>
  bool(true)
  ["filename"]=>
  string(17) "Parsekit Compiler"
  ["opcodes"]=>
  array(3) {
    [8594800]=>
    array(5) {
      ["opcode"]=>
      int(40)
      ["opcode_name"]=>
      string(9) "ZEND_ECHO"
      ["flags"]=>
      int(768)
      ["op1"]=>
      array(3) {
        ["type"]=>
        int(1)
        ["type_name"]=>
        string(8) "IS_CONST"
        ["constant"]=>
        &string(4) "Foo
"
      }
      ["lineno"]=>
      int(2)
    }
    ["859484C"]=>
    array(6) {
      ["opcode"]=>
      int(62)
      ["opcode_name"]=>
      string(11) "ZEND_RETURN"
      ["flags"]=>
      int(16777984)
      ["op1"]=>
      array(3) {
        ["type"]=>
        int(1)
        ["type_name"]=>
        string(8) "IS_CONST"
        ["constant"]=>
        &NULL
      }
      ["extended_value"]=>
      int(0)
      ["lineno"]=>
      int(3)
    }
    [8594898]=>
    array(4) {
      ["opcode"]=>
      int(149)
      ["opcode_name"]=>
      string(21) "ZEND_HANDLE_EXCEPTION"
      ["flags"]=>
      int(0)
      ["lineno"]=>
      int(3)
    }
  }
}

Voir aussi

  • parsekit_compile_file() - Compile un fichier PHP et retourne le tableau d'opcode résultant


Retourne des informations concernant les arguments d'une fonction

  • « parsekit_compile_string
  • SPL »
  • PHP Manual
  • Fonctions Parsekit
  • Retourne des informations concernant les arguments d'une fonction

parsekit_func_arginfo

(PECL parsekit >= 0.3.0)

parsekit_func_arginfo — Retourne des informations concernant les arguments d'une fonction

Description

array parsekit_func_arginfo ( mixed $function )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

function

Une chaîne décrivant une fonction ou un tableau décrivant une classe/méthode.

Valeurs de retour

Retourne un tableau contenant les informations sur les arguments.

Exemples

Exemple #1 Exemple avec parsekit_func_arginfo()

<?php
function foo($bar, stdClass $baz, &$bomb, $bling = false) {
}

var_dump(parsekit_func_arginfo('foo'));
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  array(3) {
    ["name"]=>
    string(3) "bar"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(false)
  }
  [1]=>
  array(4) {
    ["name"]=>
    string(3) "baz"
    ["class_name"]=>
    string(8) "stdClass"
    ["allow_null"]=>
    bool(false)
    ["pass_by_reference"]=>
    bool(false)
  }
  [2]=>
  array(3) {
    ["name"]=>
    string(4) "bomb"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(true)
  }
  [3]=>
  array(3) {
    ["name"]=>
    string(5) "bling"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(false)
  }
}


Bibliothèque standard PHP (SPL)

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Structures des données
    • SplDoublyLinkedList — La classe SplDoublyLinkedList
    • SplStack — La classe SplStack
    • SplQueue — La classe SplQueue
    • SplHeap — La classe SplHeap
    • SplMaxHeap — La classe SplMaxHeap
    • SplMinHeap — La classe SplMinHeap
    • SplPriorityQueue — La classe SplPriorityQueue
    • SplFixedArray — La classe SplFixedArray
    • SplObjectStorage — La classe SplObjectStorage
  • Itérateurs
    • AppendIterator — La classe AppendIterator
    • ArrayIterator — La classe ArrayIterator
    • CachingIterator — La classe CachingIterator
    • CallbackFilterIterator — La classe CallbackFilterIterator
    • DirectoryIterator — La classe DirectoryIterator
    • EmptyIterator — La classe EmptyIterator
    • FilesystemIterator — La classe FilesystemIterator
    • FilterIterator — La classe FilterIterator
    • GlobIterator — La classe GlobIterator
    • InfiniteIterator — La classe InfiniteIterator
    • IteratorIterator — La classe IteratorIterator
    • LimitIterator — La classe LimitIterator
    • MultipleIterator — La classe MultipleIterator
    • NoRewindIterator — La classe NoRewindIterator
    • ParentIterator — La classe ParentIterator
    • RecursiveArrayIterator — La classe RecursiveArrayIterator
    • RecursiveCachingIterator — La classe RecursiveCachingIterator
    • RecursiveCallbackFilterIterator — La classe RecursiveCallbackFilterIterator
    • RecursiveDirectoryIterator — La classe RecursiveDirectoryIterator
    • RecursiveFilterIterator — La classe RecursiveFilterIterator
    • RecursiveIteratorIterator — La classe RecursiveIteratorIterator
    • RecursiveRegexIterator — La classe RecursiveRegexIterator
    • RecursiveTreeIterator — La classe RecursiveTreeIterator
    • La classe RegexIterator
  • Interfaces
    • Countable — L'interface Countable
    • OuterIterator — L'interface OuterIterator
    • RecursiveIterator — La classe RecursiveIterator
    • SeekableIterator — L'interface SeekableIterator
  • Exceptions
    • BadFunctionCallException — La classe BadFunctionCallException
    • BadMethodCallException — La classe BadMethodCallException
    • DomainException — La classe DomainException
    • InvalidArgumentException — La classe InvalidArgumentException
    • LengthException — La classe LengthException
    • LogicException — La classe LogicException
    • OutOfBoundsException — La classe OutOfBoundsException
    • OutOfRangeException — La classe OutOfRangeException
    • OverflowException — La classe OverflowException
    • RangeException — La classe RangeException
    • RuntimeException — La classe RuntimeException
    • UnderflowException — La classe UnderflowException
    • UnexpectedValueException — La classe UnexpectedValueException
  • Fonctions SPL
    • class_implements — Retourne les interfaces implémentées par une classe ou une interface donnée
    • class_parents — Retourne la classe parente d'une classe
    • class_uses — Retourne le trait utilisé par une classe donnée.
    • iterator_apply — Appelle une fonction pour tous les éléments d'un itérateur
    • iterator_count — Compte de nombre d'éléments dans un itérateur
    • iterator_to_array — Copie un itérateur dans un tableau
    • spl_autoload_call — Essai toutes les fonctions __autoload() enregistrées pour charger la classe demandée
    • spl_autoload_extensions — Enregistre et retourne l'extension du fichier par défaut pour spl_autoload
    • spl_autoload_functions — Retourne toutes les fonctions __autoload() enregistrées
    • spl_autoload_register — Enregistre une fonction en tant qu'implémentation de __autoload()
    • spl_autoload_unregister — Efface une fonction donnée de l'implémentation __autoload()
    • spl_autoload — Implémentation par défaut d'__autoload()
    • spl_classes — Retourne les classes SPL disponibles
    • spl_object_hash — Retourne l'identifiant de hashage pour un objet donné
  • Gestion des fichiers
    • SplFileInfo — La classe SplFileInfo
    • SplFileObject — La classe SplFileObject
    • SplTempFileObject — La classe SplTempFileObject
  • Classes et interfaces diverses
    • ArrayObject — La classe ArrayObject
    • SplObserver — L'interface SplObserver
    • SplSubject — L'interface SplSubject


Introduction

La bibliothèque standard PHP (SPL) est une collection d'interfaces et de classes qui ont été créées afin de résoudre les problèmes communs.

Aucune bibliothèque externe n'est nécessaire pour construire cette extension. Elle est disponible et compilée par défaut depuis PHP 5.0.0.

SPL fournit des structures de données, un ensemble d'itérateur pour traverser des objets, des interfaces, un ensemble d'exceptions standards ainsi qu'un certain nombre de classes pour travailler avec des fichiers. SPL fournit aussi un jeu de fonctions telle que spl_autoload_register().


Installation

Cette extension est disponible et compilée par défaut depuis PHP 5.0.0.

Note:

Depuis PHP 5.3.0, cette extension ne peut être désactivé et est donc, toujours disponible.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Avertissement

SPL utilise des constantes de classe depuis PHP 5.1. Les versions antérieures utilisaient des constantes globales sous la forme RIT_LEAVES_ONLY.


Structures des données

Sommaire

  • SplDoublyLinkedList
  • SplStack
  • SplQueue
  • SplHeap
  • SplMaxHeap
  • SplMinHeap
  • SplPriorityQueue
  • SplFixedArray
  • SplObjectStorage

SPL fournit un jeu de structures de données standard. Elles sont regroupées ici par implémentation, ce qui définit généralement leur champ d'application.

Liste doublement chaînées

Une liste doublement chaînée (Doubly Linked List ou DLL) est une liste de noeud liés dans les deux sens aux autres noeuds. Les opérations d'itérateurs peuvent se faire dans les deux sens, en addition ou en suppression, avec un coût de O(1) lorsque la structure sous-jacente est une DLL. Elle fournit également un support pratique pour les piles et les queues.

  • SplDoublyLinkedList
    • SplStack
    • SplQueue

Tas

Les tas sont des structures de type arbre, qui suivent une propriété caractéristique : chaque noeud est plus grand ou égal que ses enfants, lorsqu'on les compare avec la méthode implémentée de comparaison, qui est globale au tas.

  • SplHeap
    • SplMaxHeap
    • SplMinHeap
  • SplPriorityQueue

Tableaux

Les Array sont des structures qui stockent les données d'une manière contiguë, et accessible via des index. Ne les confondez pas avec les tableau de PHP : ces tableaux sont implémentés comme des tables de hashage ordonnées.

  • SplFixedArray

Carte (Map)

Une carte est une structure de données qui stocke des paire clé/valeur. Les tableaux PHP peuvent très bien servir de cartes entre des chaînes ou entiers et des valeurs. SPL fournit un objet de type carte pour les données. Cette carte peut aussi servir d'ensemble d'objets.

  • SplObjectStorage


La classe SplDoublyLinkedList

(PHP 5 >= 5.3.0, PHP 7)

Introduction

La classe SplDoublyLinkedList fournit l'interface principale pour les listes doublement chaînées.

Synopsis de la classe

SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Méthodes */
public __construct ( void )
public void add ( mixed $index , mixed $newval )
public mixed bottom ( void )
public int count ( void )
public mixed current ( void )
public int getIteratorMode ( void )
public bool isEmpty ( void )
public mixed key ( void )
public void next ( void )
public bool offsetExists ( mixed $index )
public mixed offsetGet ( mixed $index )
public void offsetSet ( mixed $index , mixed $newval )
public void offsetUnset ( mixed $index )
public mixed pop ( void )
public void prev ( void )
public void push ( mixed $value )
public void rewind ( void )
public string serialize ( void )
public void setIteratorMode ( int $mode )
public mixed shift ( void )
public mixed top ( void )
public void unserialize ( string $serialized )
public void unshift ( mixed $value )
public bool valid ( void )
}

Sommaire

  • SplDoublyLinkedList::add — Ajoute/insert une nouvelle valeur à l'index spécifié
  • SplDoublyLinkedList::bottom — Le noeud parent à partir duquel la liste découle
  • SplDoublyLinkedList::__construct — Construit une nouvelle liste
  • SplDoublyLinkedList::count — Compte le nombre d'éléments de la liste
  • SplDoublyLinkedList::current — Retourne l'entrée courante du tableau
  • SplDoublyLinkedList::getIteratorMode — Retourne le mode de l'itérateur
  • SplDoublyLinkedList::isEmpty — Vérifie si la liste est vide
  • SplDoublyLinkedList::key — Retourne l'index du noeud courant
  • SplDoublyLinkedList::next — Se déplace à l'entrée suivante
  • SplDoublyLinkedList::offsetExists — Vérifie si un index existe
  • SplDoublyLinkedList::offsetGet — Retourne la valeur d'un index
  • SplDoublyLinkedList::offsetSet — Spécifie la nouvelle valeur de l'index
  • SplDoublyLinkedList::offsetUnset — Efface la valeur d'un index
  • SplDoublyLinkedList::pop — Dépile et retourne le dernier élément de la liste
  • SplDoublyLinkedList::prev — Recule d'un élément
  • SplDoublyLinkedList::push — Ajoute un élément à la fin de la liste
  • SplDoublyLinkedList::rewind — Replace l'itérateur au début
  • SplDoublyLinkedList::serialize — Sérialise la liste
  • SplDoublyLinkedList::setIteratorMode — Définit le mode d'itération
  • SplDoublyLinkedList::shift — Déplace un noeud de la liste
  • SplDoublyLinkedList::top — Récupère le dernier noeud de la liste
  • SplDoublyLinkedList::unserialize — Désérialise la liste
  • SplDoublyLinkedList::unshift — Ajoute un élément à la liste
  • SplDoublyLinkedList::valid — Vérifie si la liste contient encore des noeuds


Ajoute/insert une nouvelle valeur à l'index spécifié

  • « SplDoublyLinkedList
  • SplDoublyLinkedList::bottom »
  • PHP Manual
  • SplDoublyLinkedList
  • Ajoute/insert une nouvelle valeur à l'index spécifié

SplDoublyLinkedList::add

(PHP 5 >= 5.5.0, PHP 7)

SplDoublyLinkedList::add — Ajoute/insert une nouvelle valeur à l'index spécifié

Description

public void SplDoublyLinkedList::add ( mixed $index , mixed $newval )

Insert la valeur newval à l'index index spécifié, en faisant passer la valeur précédente à cet index (ainsi que toutes les valeurs en dessous).

Liste de paramètres

index

L'index où la nouvelle valeur doit être insérée.

newval

La nouvelle valeur pour l'index index.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception OutOfRangeException lorsque index est en dehors de l'intervalle ou lorsque index ne peut être analysé comme un entier.


Le noeud parent à partir duquel la liste découle

  • « SplDoublyLinkedList::add
  • SplDoublyLinkedList::__construct »
  • PHP Manual
  • SplDoublyLinkedList
  • Le noeud parent à partir duquel la liste découle

SplDoublyLinkedList::bottom

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::bottom — Le noeud parent à partir duquel la liste découle

Description

public mixed SplDoublyLinkedList::bottom ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du premier noeud.

Erreurs / Exceptions

Lance une exception RuntimeException lorsque la structure de données est vide.


Construit une nouvelle liste

  • « SplDoublyLinkedList::bottom
  • SplDoublyLinkedList::count »
  • PHP Manual
  • SplDoublyLinkedList
  • Construit une nouvelle liste

SplDoublyLinkedList::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::__construct — Construit une nouvelle liste

Description

public SplDoublyLinkedList::__construct ( void )

Construit une nouvelle liste.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplDoublyLinkedList::__construct()

<?php
$dll = new SplDoublyLinkedList();

$dll->push(2);
$dll->push(3);
$dll->unshift(5);

var_dump($dll);
?>

L'exemple ci-dessus va afficher :

object(SplDoublyLinkedList)#1 (2) {
  ["flags":"SplDoublyLinkedList":private]=>
  int(0)
  ["dllist":"SplDoublyLinkedList":private]=>
  array(3) {
    [0]=>
    int(5)
    [1]=>
    int(2)
    [2]=>
    int(3)
  }
}


Compte le nombre d'éléments de la liste

  • « SplDoublyLinkedList::__construct
  • SplDoublyLinkedList::current »
  • PHP Manual
  • SplDoublyLinkedList
  • Compte le nombre d'éléments de la liste

SplDoublyLinkedList::count

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::count — Compte le nombre d'éléments de la liste

Description

public int SplDoublyLinkedList::count ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'éléments de la liste.


Retourne l'entrée courante du tableau

  • « SplDoublyLinkedList::count
  • SplDoublyLinkedList::getIteratorMode »
  • PHP Manual
  • SplDoublyLinkedList
  • Retourne l'entrée courante du tableau

SplDoublyLinkedList::current

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::current — Retourne l'entrée courante du tableau

Description

public mixed SplDoublyLinkedList::current ( void )

Retourne l'entrée courante du tableau.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du noeud courant.


Retourne le mode de l'itérateur

  • « SplDoublyLinkedList::current
  • SplDoublyLinkedList::isEmpty »
  • PHP Manual
  • SplDoublyLinkedList
  • Retourne le mode de l'itérateur

SplDoublyLinkedList::getIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::getIteratorMode — Retourne le mode de l'itérateur

Description

public int SplDoublyLinkedList::getIteratorMode ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le mode et les drapeaux qui affectent l'itérateur.


Vérifie si la liste est vide

  • « SplDoublyLinkedList::getIteratorMode
  • SplDoublyLinkedList::key »
  • PHP Manual
  • SplDoublyLinkedList
  • Vérifie si la liste est vide

SplDoublyLinkedList::isEmpty

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::isEmpty — Vérifie si la liste est vide

Description

public bool SplDoublyLinkedList::isEmpty ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne si la liste est vide, ou non.


Retourne l'index du noeud courant

  • « SplDoublyLinkedList::isEmpty
  • SplDoublyLinkedList::next »
  • PHP Manual
  • SplDoublyLinkedList
  • Retourne l'index du noeud courant

SplDoublyLinkedList::key

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::key — Retourne l'index du noeud courant

Description

public mixed SplDoublyLinkedList::key ( void )

Retourne l'index du noeud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index du noeud courant.


Se déplace à l'entrée suivante

  • « SplDoublyLinkedList::key
  • SplDoublyLinkedList::offsetExists »
  • PHP Manual
  • SplDoublyLinkedList
  • Se déplace à l'entrée suivante

SplDoublyLinkedList::next

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::next — Se déplace à l'entrée suivante

Description

public void SplDoublyLinkedList::next ( void )

Se déplace à l'entrée suivante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Vérifie si un index existe

  • « SplDoublyLinkedList::next
  • SplDoublyLinkedList::offsetGet »
  • PHP Manual
  • SplDoublyLinkedList
  • Vérifie si un index existe

SplDoublyLinkedList::offsetExists

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetExists — Vérifie si un index existe

Description

public bool SplDoublyLinkedList::offsetExists ( mixed $index )

Liste de paramètres

index

L'index à vérifier.

Valeurs de retour

TRUE si l'index existe, FALSE sinon.


Retourne la valeur d'un index

  • « SplDoublyLinkedList::offsetExists
  • SplDoublyLinkedList::offsetSet »
  • PHP Manual
  • SplDoublyLinkedList
  • Retourne la valeur d'un index

SplDoublyLinkedList::offsetGet

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetGet — Retourne la valeur d'un index

Description

public mixed SplDoublyLinkedList::offsetGet ( mixed $index )

Liste de paramètres

index

L'index désiré.

Valeurs de retour

La valeur de l'index.

Erreurs / Exceptions

Lance une exception OutOfRangeException lorsque index est en dehors des limites ou lorsque index ne peut être analysé comme un entier.


Spécifie la nouvelle valeur de l'index

  • « SplDoublyLinkedList::offsetGet
  • SplDoublyLinkedList::offsetUnset »
  • PHP Manual
  • SplDoublyLinkedList
  • Spécifie la nouvelle valeur de l'index

SplDoublyLinkedList::offsetSet

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetSet — Spécifie la nouvelle valeur de l'index

Description

public void SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval )

Définit la valeur de l'index à la valeur newval.

Liste de paramètres

index

L'index à définir.

newval

La nouvelle valeur pour l'index.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception OutOfRangeException lorsque index est en dehors des limites ou lorsque index ne peut être analysé comme un entier.


Efface la valeur d'un index

  • « SplDoublyLinkedList::offsetSet
  • SplDoublyLinkedList::pop »
  • PHP Manual
  • SplDoublyLinkedList
  • Efface la valeur d'un index

SplDoublyLinkedList::offsetUnset

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetUnset — Efface la valeur d'un index

Description

public void SplDoublyLinkedList::offsetUnset ( mixed $index )

Efface la valeur d'un index.

Liste de paramètres

index

L'index à effacer.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception OutOfRangeException lorsque index est en dehors des limites ou lorsque index ne peut être analysé en tant qu'entier.


Dépile et retourne le dernier élément de la liste

  • « SplDoublyLinkedList::offsetUnset
  • SplDoublyLinkedList::prev »
  • PHP Manual
  • SplDoublyLinkedList
  • Dépile et retourne le dernier élément de la liste

SplDoublyLinkedList::pop

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::pop — Dépile et retourne le dernier élément de la liste

Description

public mixed SplDoublyLinkedList::pop ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur du dernier élément de la liste.

Erreurs / Exceptions

Lance une exception RuntimeException lorsque la structure de données est vide.


Recule d'un élément

  • « SplDoublyLinkedList::pop
  • SplDoublyLinkedList::push »
  • PHP Manual
  • SplDoublyLinkedList
  • Recule d'un élément

SplDoublyLinkedList::prev

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::prev — Recule d'un élément

Description

public void SplDoublyLinkedList::prev ( void )

Déplace l'itérateur à l'élément précédent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Ajoute un élément à la fin de la liste

  • « SplDoublyLinkedList::prev
  • SplDoublyLinkedList::rewind »
  • PHP Manual
  • SplDoublyLinkedList
  • Ajoute un élément à la fin de la liste

SplDoublyLinkedList::push

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::push — Ajoute un élément à la fin de la liste

Description

public void SplDoublyLinkedList::push ( mixed $value )

Ajoute un élément à la fin de la liste.

Liste de paramètres

value

La valeur à ajouter.

Valeurs de retour

Aucune valeur n'est retournée.


Replace l'itérateur au début

  • « SplDoublyLinkedList::push
  • SplDoublyLinkedList::serialize »
  • PHP Manual
  • SplDoublyLinkedList
  • Replace l'itérateur au début

SplDoublyLinkedList::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::rewind — Replace l'itérateur au début

Description

public void SplDoublyLinkedList::rewind ( void )

Replace l'itérateur au début.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Sérialise la liste

  • « SplDoublyLinkedList::rewind
  • SplDoublyLinkedList::setIteratorMode »
  • PHP Manual
  • SplDoublyLinkedList
  • Sérialise la liste

SplDoublyLinkedList::serialize

(PHP 5 >= 5.4.0, PHP 7)

SplDoublyLinkedList::serialize — Sérialise la liste

Description

public string SplDoublyLinkedList::serialize ( void )

Sérialise la liste.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La chaine sérialisée.

Voir aussi

  • SplDoublyLinkedList::unserialize() - Désérialise la liste


Définit le mode d'itération

  • « SplDoublyLinkedList::serialize
  • SplDoublyLinkedList::shift »
  • PHP Manual
  • SplDoublyLinkedList
  • Définit le mode d'itération

SplDoublyLinkedList::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::setIteratorMode — Définit le mode d'itération

Description

public void SplDoublyLinkedList::setIteratorMode ( int $mode )

Liste de paramètres

mode

Il y a 2 jeux de modes que l'on peut définir :

  • La direction de l'itérateur :
    • SplDoublyLinkedList::IT_MODE_LIFO (pile)
    • SplDoublyLinkedList::IT_MODE_FIFO (file d'attente)
  • Le comportement de l'itérateur :
    • SplDoublyLinkedList::IT_MODE_DELETE (les éléments sont effacés par l'itérateur)
    • SplDoublyLinkedList::IT_MODE_KEEP (les éléments sont traversés par l'itérateur)

Le mode par défaut est : SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLnkedList::IT_MODE_KEEP

Valeurs de retour

Aucune valeur n'est retournée.


Déplace un noeud de la liste

  • « SplDoublyLinkedList::setIteratorMode
  • SplDoublyLinkedList::top »
  • PHP Manual
  • SplDoublyLinkedList
  • Déplace un noeud de la liste

SplDoublyLinkedList::shift

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::shift — Déplace un noeud de la liste

Description

public mixed SplDoublyLinkedList::shift ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du noeud déplacé.

Erreurs / Exceptions

Lance une exception RuntimeException lorsque la structure de données est vide.


Récupère le dernier noeud de la liste

  • « SplDoublyLinkedList::shift
  • SplDoublyLinkedList::unserialize »
  • PHP Manual
  • SplDoublyLinkedList
  • Récupère le dernier noeud de la liste

SplDoublyLinkedList::top

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::top — Récupère le dernier noeud de la liste

Description

public mixed SplDoublyLinkedList::top ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du dernier noeud.

Erreurs / Exceptions

Lance une exception RuntimeException lorsque la structure de données est vide.


Désérialise la liste

  • « SplDoublyLinkedList::top
  • SplDoublyLinkedList::unshift »
  • PHP Manual
  • SplDoublyLinkedList
  • Désérialise la liste

SplDoublyLinkedList::unserialize

(PHP 5 >= 5.4.0, PHP 7)

SplDoublyLinkedList::unserialize — Désérialise la liste

Description

public void SplDoublyLinkedList::unserialize ( string $serialized )

Désérialise la liste, depuis SplDoublyLinkedList::serialize().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

serialized

La chaine sérialisée.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SplDoublyLinkedList::serialize() - Sérialise la liste


Ajoute un élément à la liste

  • « SplDoublyLinkedList::unserialize
  • SplDoublyLinkedList::valid »
  • PHP Manual
  • SplDoublyLinkedList
  • Ajoute un élément à la liste

SplDoublyLinkedList::unshift

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::unshift — Ajoute un élément à la liste

Description

public void SplDoublyLinkedList::unshift ( mixed $value )

Ajoute un élément ayant pour valeur value au début de la liste.

Liste de paramètres

value

La valeur.

Valeurs de retour

Aucune valeur n'est retournée.


Vérifie si la liste contient encore des noeuds

  • « SplDoublyLinkedList::unshift
  • SplStack »
  • PHP Manual
  • SplDoublyLinkedList
  • Vérifie si la liste contient encore des noeuds

SplDoublyLinkedList::valid

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::valid — Vérifie si la liste contient encore des noeuds

Description

public bool SplDoublyLinkedList::valid ( void )

Vérifie si la liste contient encore des noeuds.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la liste contient encore des noeuds, FALSE sinon.


La classe SplStack

(PHP 5 >= 5.3.0, PHP 7)

Introduction

La classe SplStack fournit l'interface de base pour implémenter une pile, basée sur une liste doublement chaînée.

Synopsis de la classe

SplStack extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Méthodes */
__construct ( void )
void setIteratorMode ( int $mode )
/* Méthodes héritées */
public void SplDoublyLinkedList::add ( mixed $index , mixed $newval )
public mixed SplDoublyLinkedList::bottom ( void )
public int SplDoublyLinkedList::count ( void )
public mixed SplDoublyLinkedList::current ( void )
public int SplDoublyLinkedList::getIteratorMode ( void )
public bool SplDoublyLinkedList::isEmpty ( void )
public mixed SplDoublyLinkedList::key ( void )
public void SplDoublyLinkedList::next ( void )
public bool SplDoublyLinkedList::offsetExists ( mixed $index )
public mixed SplDoublyLinkedList::offsetGet ( mixed $index )
public void SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval )
public void SplDoublyLinkedList::offsetUnset ( mixed $index )
public mixed SplDoublyLinkedList::pop ( void )
public void SplDoublyLinkedList::prev ( void )
public void SplDoublyLinkedList::push ( mixed $value )
public void SplDoublyLinkedList::rewind ( void )
public string SplDoublyLinkedList::serialize ( void )
public void SplDoublyLinkedList::setIteratorMode ( int $mode )
public mixed SplDoublyLinkedList::shift ( void )
public mixed SplDoublyLinkedList::top ( void )
public void SplDoublyLinkedList::unserialize ( string $serialized )
public void SplDoublyLinkedList::unshift ( mixed $value )
public bool SplDoublyLinkedList::valid ( void )
}

Sommaire

  • SplStack::__construct — Construit une nouvelle pile, en utilisant une liste
  • SplStack::setIteratorMode — Définit le mode de l'itérateur


Construit une nouvelle pile, en utilisant une liste

  • « SplStack
  • SplStack::setIteratorMode »
  • PHP Manual
  • SplStack
  • Construit une nouvelle pile, en utilisant une liste

SplStack::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplStack::__construct — Construit une nouvelle pile, en utilisant une liste

Description

SplStack::__construct ( void )

Construit une nouvelle pile vide.

Note:

Cette méthode définit automatiquement le mode de l'itérateur à SplDoublyLinkedList::IT_MODE_LIFO.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplStack::__construct()

<?php
$q = new SplStack();

$q[] = 1;
$q[] = 2;
$q[] = 3;

foreach ($q as $elem)  {
 echo $elem."\n";
}
?>

L'exemple ci-dessus va afficher :

3
2
1


Définit le mode de l'itérateur

  • « SplStack::__construct
  • SplQueue »
  • PHP Manual
  • SplStack
  • Définit le mode de l'itérateur

SplStack::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplStack::setIteratorMode — Définit le mode de l'itérateur

Description

void SplStack::setIteratorMode ( int $mode )

Liste de paramètres

mode

Il n'y a qu'un seul paramètre de l'itérateur que vous pouvez modifier.

  • Le comportement de l'itérateur :
    • SplDoublyLinkedList::IT_MODE_DELETE (Les éléments sont effacés par l'itérateur)
    • SplDoublyLinkedList::IT_MODE_KEEP (Les éléments sont traversés par l'itérateur)

Le mode par défaut est 0x2 : SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_KEEP

Avertissement

La direction de l'itérateur ne peut plus être modifiée pour SplStacks. Si vous tentez de le faire, une exception RuntimeException sera émise.

Valeurs de retour

Aucune valeur n'est retournée.


La classe SplQueue

(PHP 5 >= 5.3.0, PHP 7)

Introduction

La classe SplQueue fournit l'interface d'implémentation d'une queue, basée sur une liste doublement chaînée.

Synopsis de la classe

SplQueue extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Méthodes */
__construct ( void )
mixed dequeue ( void )
void enqueue ( mixed $value )
void setIteratorMode ( int $mode )
/* Méthodes héritées */
public void SplDoublyLinkedList::add ( mixed $index , mixed $newval )
public mixed SplDoublyLinkedList::bottom ( void )
public int SplDoublyLinkedList::count ( void )
public mixed SplDoublyLinkedList::current ( void )
public int SplDoublyLinkedList::getIteratorMode ( void )
public bool SplDoublyLinkedList::isEmpty ( void )
public mixed SplDoublyLinkedList::key ( void )
public void SplDoublyLinkedList::next ( void )
public bool SplDoublyLinkedList::offsetExists ( mixed $index )
public mixed SplDoublyLinkedList::offsetGet ( mixed $index )
public void SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval )
public void SplDoublyLinkedList::offsetUnset ( mixed $index )
public mixed SplDoublyLinkedList::pop ( void )
public void SplDoublyLinkedList::prev ( void )
public void SplDoublyLinkedList::push ( mixed $value )
public void SplDoublyLinkedList::rewind ( void )
public string SplDoublyLinkedList::serialize ( void )
public void SplDoublyLinkedList::setIteratorMode ( int $mode )
public mixed SplDoublyLinkedList::shift ( void )
public mixed SplDoublyLinkedList::top ( void )
public void SplDoublyLinkedList::unserialize ( string $serialized )
public void SplDoublyLinkedList::unshift ( mixed $value )
public bool SplDoublyLinkedList::valid ( void )
}

Sommaire

  • SplQueue::__construct — Construit une nouvelle file d'attente, en utilisant une liste
  • SplQueue::dequeue — Supprime un noeud de la file d'attente
  • SplQueue::enqueue — Ajoute un élément à la file d'attente
  • SplQueue::setIteratorMode — Définit le mode de l'itérateur


Construit une nouvelle file d'attente, en utilisant une liste

  • « SplQueue
  • SplQueue::dequeue »
  • PHP Manual
  • SplQueue
  • Construit une nouvelle file d'attente, en utilisant une liste

SplQueue::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::__construct — Construit une nouvelle file d'attente, en utilisant une liste

Description

SplQueue::__construct ( void )

Construit une nouvelle file d'attente vide.

Note:

Cette méthode définit automatiquement le mode de l'itérateur à SplDoublyLinkedList::IT_MODE_FIFO.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplQueue::__construct()

<?php
$q = new SplQueue();

$q[] = 1;
$q[] = 2;
$q[] = 3;

foreach ($q as $elem)  {
 echo $elem."\n";
}
?>

L'exemple ci-dessus va afficher :

1
2
3

Exemple #2 Gestion des tâches avec SplQueue

<?php
$q = new SplQueue();
$q->setIteratorMode(SplQueue::IT_MODE_DELETE);

// ... on place quelques tâches dans la file d'attente ...

// On les traite
foreach ($q as $task) {
    // ... traitement de la tâche $task ...

    // Ajout d'une nouvelle tâche dans la file d'attente
    $q[] = $newTask;
    // ...
}
?>


Supprime un noeud de la file d'attente

  • « SplQueue::__construct
  • SplQueue::enqueue »
  • PHP Manual
  • SplQueue
  • Supprime un noeud de la file d'attente

SplQueue::dequeue

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::dequeue — Supprime un noeud de la file d'attente

Description

mixed SplQueue::dequeue ( void )

Supprime la valeur value du haut de la file d'attente.

Note:

SplQueue::dequeue() est un alias de SplDoublyLinkedList::shift().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du noeud supprimé.


Ajoute un élément à la file d'attente

  • « SplQueue::dequeue
  • SplQueue::setIteratorMode »
  • PHP Manual
  • SplQueue
  • Ajoute un élément à la file d'attente

SplQueue::enqueue

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::enqueue — Ajoute un élément à la file d'attente

Description

void SplQueue::enqueue ( mixed $value )

Ajoute la valeur value à la fin de la file d'attente.

Note:

SplQueue::enqueue() est un alias de SplDoublyLinkedList::push().

Liste de paramètres

value

La valeur à ajouter à la file d'attente.

Valeurs de retour

Aucune valeur n'est retournée.


Définit le mode de l'itérateur

  • « SplQueue::enqueue
  • SplHeap »
  • PHP Manual
  • SplQueue
  • Définit le mode de l'itérateur

SplQueue::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::setIteratorMode — Définit le mode de l'itérateur

Description

void SplQueue::setIteratorMode ( int $mode )

Liste de paramètres

mode

Il n'y a qu'un paramètre de l'itérateur que vous pouvez modifier.

  • Le comportement de l'itérateur (l'un ou l'autre) :
    • SplDoublyLinkedList::IT_MODE_DELETE (Les éléments sont effacés par l'itérateur)
    • SplDoublyLinkedList::IT_MODE_KEEP (Les éléments sont traversés par l'itérateur)

Le mode par défaut est : SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_KEEP

Avertissement

La direction de l'itérateur ne peut pas être modifiée pour les objets SplQueues : c'est toujours SplDoublyLinkedList::IT_MODE_FIFO.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une exception RuntimeException lors du changement de direction de l'itération avec la constante SplDoublyLinkedList::IT_MODE_LIFO.


La classe SplHeap

(PHP 5 >= 5.3.0, PHP 7)

Introduction

La classe SplHeap fournit l'interface pour un tas.

Synopsis de la classe

abstract SplHeap implements Iterator , Countable {
/* Méthodes */
public __construct ( void )
abstract protected int compare ( mixed $value1 , mixed $value2 )
public int count ( void )
public mixed current ( void )
public mixed extract ( void )
public void insert ( mixed $value )
public bool isEmpty ( void )
public mixed key ( void )
public void next ( void )
public void recoverFromCorruption ( void )
public void rewind ( void )
public mixed top ( void )
public bool valid ( void )
}

Sommaire

  • SplHeap::compare — Compare deux éléments
  • SplHeap::__construct — Construit un nouveau tas vide
  • SplHeap::count — Compte le nombre d'éléments dans le tas
  • SplHeap::current — Retourne le noeud courant, pointé par l'itérateur
  • SplHeap::extract — Extrait un noeud du haut du tas
  • SplHeap::insert — Insère un élément dans le tas
  • SplHeap::isEmpty — Vérifie si le tas est vide
  • SplHeap::key — Retourne l'index du noeud courant
  • SplHeap::next — Se déplace au noeud suivant
  • SplHeap::recoverFromCorruption — Répare un tas
  • SplHeap::rewind — Revient au début de l'itérateur
  • SplHeap::top — Récupère le premier noeud du tas
  • SplHeap::valid — Vérifie si le tas contient des noeuds


Compare deux éléments

  • « SplHeap
  • SplHeap::__construct »
  • PHP Manual
  • SplHeap
  • Compare deux éléments

SplHeap::compare

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::compare — Compare deux éléments

Description

abstract protected int SplHeap::compare ( mixed $value1 , mixed $value2 )

Compare la valeur value1 et la valeur value2.

Avertissement

L'envoi d'exception dans SplHeap::compare() peut le corrompre et le placer dans un statut bloqué. Vous pouvez le débloquer en appelant la méthode SplHeap::recoverFromCorruption(). Cependant, des éléments peuvent ne pas avoir été placés correctement.

Liste de paramètres

value1

La valeur du premier noeud à comparer.

value2

La valeur du second noeud à comparer.

Valeurs de retour

Le résultat de la comparaison ; un entier positif si value1 est plus grand que value2, 0 s'ils sont égaux, ou un entier négatif sinon.

Note:

Avoir plusieurs éléments avec la même valeur dans un tas n'est pas recommandé. Cela peut conduire en une position arbitraire.


Construit un nouveau tas vide

  • « SplHeap::compare
  • SplHeap::count »
  • PHP Manual
  • SplHeap
  • Construit un nouveau tas vide

SplHeap::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::__construct — Construit un nouveau tas vide

Description

public SplHeap::__construct ( void )

Construit un nouveau tas vide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Compte le nombre d'éléments dans le tas

  • « SplHeap::__construct
  • SplHeap::current »
  • PHP Manual
  • SplHeap
  • Compte le nombre d'éléments dans le tas

SplHeap::count

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::count — Compte le nombre d'éléments dans le tas

Description

public int SplHeap::count ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'éléments dans le tas.


Retourne le noeud courant, pointé par l'itérateur

  • « SplHeap::count
  • SplHeap::extract »
  • PHP Manual
  • SplHeap
  • Retourne le noeud courant, pointé par l'itérateur

SplHeap::current

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::current — Retourne le noeud courant, pointé par l'itérateur

Description

public mixed SplHeap::current ( void )

Récupère la structure des données du noeud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du noeud courant.


Extrait un noeud du haut du tas

  • « SplHeap::current
  • SplHeap::insert »
  • PHP Manual
  • SplHeap
  • Extrait un noeud du haut du tas

SplHeap::extract

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::extract — Extrait un noeud du haut du tas

Description

public mixed SplHeap::extract ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du noeud extrait.

Erreurs / Exceptions

Lance une exception RuntimeException lorsque la structure de données est vide.


Insère un élément dans le tas

  • « SplHeap::extract
  • SplHeap::isEmpty »
  • PHP Manual
  • SplHeap
  • Insère un élément dans le tas

SplHeap::insert

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::insert — Insère un élément dans le tas

Description

public void SplHeap::insert ( mixed $value )

Insère la valeur value dans le tas.

Liste de paramètres

value

La valeur à insérer.

Valeurs de retour

Aucune valeur n'est retournée.


Vérifie si le tas est vide

  • « SplHeap::insert
  • SplHeap::key »
  • PHP Manual
  • SplHeap
  • Vérifie si le tas est vide

SplHeap::isEmpty

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::isEmpty — Vérifie si le tas est vide

Description

public bool SplHeap::isEmpty ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne si le tas est vide, ou non.


Retourne l'index du noeud courant

  • « SplHeap::isEmpty
  • SplHeap::next »
  • PHP Manual
  • SplHeap
  • Retourne l'index du noeud courant

SplHeap::key

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::key — Retourne l'index du noeud courant

Description

public mixed SplHeap::key ( void )

Retourne l'index du noeud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index du noeud courant.


Se déplace au noeud suivant

  • « SplHeap::key
  • SplHeap::recoverFromCorruption »
  • PHP Manual
  • SplHeap
  • Se déplace au noeud suivant

SplHeap::next

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::next — Se déplace au noeud suivant

Description

public void SplHeap::next ( void )

Se déplace au noeud suivant. Ceci va supprimer le plus haut noeud de la pile.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Répare un tas

  • « SplHeap::next
  • SplHeap::rewind »
  • PHP Manual
  • SplHeap
  • Répare un tas

SplHeap::recoverFromCorruption

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::recoverFromCorruption — Répare un tas

Description

public void SplHeap::recoverFromCorruption ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Revient au début de l'itérateur

  • « SplHeap::recoverFromCorruption
  • SplHeap::top »
  • PHP Manual
  • SplHeap
  • Revient au début de l'itérateur

SplHeap::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::rewind — Revient au début de l'itérateur

Description

public void SplHeap::rewind ( void )

Revient au début de l'itérateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Récupère le premier noeud du tas

  • « SplHeap::rewind
  • SplHeap::valid »
  • PHP Manual
  • SplHeap
  • Récupère le premier noeud du tas

SplHeap::top

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::top — Récupère le premier noeud du tas

Description

public mixed SplHeap::top ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du premier noeud.

Erreurs / Exceptions

Lance une exception RuntimeException lorsque la structure de données est vide.


Vérifie si le tas contient des noeuds

  • « SplHeap::top
  • SplMaxHeap »
  • PHP Manual
  • SplHeap
  • Vérifie si le tas contient des noeuds

SplHeap::valid

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::valid — Vérifie si le tas contient des noeuds

Description

public bool SplHeap::valid ( void )

Vérifie si le tas contient encore des noeuds.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le tas contient encore des noeuds, FALSE sinon.


La classe SplMaxHeap

(PHP 5 >= 5.3.0, PHP 7)

Introduction

La classe SplMaxHeap fournit l'interface pour un tas, et conserve le maximum sur le haut.

Synopsis de la classe

SplMaxHeap extends SplHeap implements Iterator , Countable {
/* Méthodes */
protected int compare ( mixed $value1 , mixed $value2 )
/* Méthodes héritées */
abstract protected int SplHeap::compare ( mixed $value1 , mixed $value2 )
public int SplHeap::count ( void )
public mixed SplHeap::current ( void )
public mixed SplHeap::extract ( void )
public void SplHeap::insert ( mixed $value )
public bool SplHeap::isEmpty ( void )
public mixed SplHeap::key ( void )
public void SplHeap::next ( void )
public void SplHeap::recoverFromCorruption ( void )
public void SplHeap::rewind ( void )
public mixed SplHeap::top ( void )
public bool SplHeap::valid ( void )
}

Sommaire

  • SplMaxHeap::compare — Compare deux éléments


Compare deux éléments

  • « SplMaxHeap
  • SplMinHeap »
  • PHP Manual
  • SplMaxHeap
  • Compare deux éléments

SplMaxHeap::compare

(PHP 5 >= 5.3.0, PHP 7)

SplMaxHeap::compare — Compare deux éléments

Description

protected int SplMaxHeap::compare ( mixed $value1 , mixed $value2 )

Compare la valeur value1 avec la valeur value2.

Liste de paramètres

value1

La valeur du premier noeud à comparer.

value2

La valeur du second noeud à comparer.

Valeurs de retour

Le résultat de la comparaison ; un entier positif si la valeur value1 est plus grande que la valeur value2, 0 si les valeurs sont égales, et un entier négatif sinon.

Note:

Avoir plusieurs éléments avec la même valeur dans un tas n'est pas recommandé. Cela peut conduire en des positions arbitraires.


La classe SplMinHeap

(PHP 5 >= 5.3.0, PHP 7)

Introduction

La classe SplMinHeap fournit une interface pour un tas, qui conserve le minimum sur le haut.

Synopsis de la classe

SplMinHeap extends SplHeap implements Iterator , Countable {
/* Méthodes */
protected int compare ( mixed $value1 , mixed $value2 )
/* Méthodes héritées */
abstract protected int SplHeap::compare ( mixed $value1 , mixed $value2 )
public int SplHeap::count ( void )
public mixed SplHeap::current ( void )
public mixed SplHeap::extract ( void )
public void SplHeap::insert ( mixed $value )
public bool SplHeap::isEmpty ( void )
public mixed SplHeap::key ( void )
public void SplHeap::next ( void )
public void SplHeap::recoverFromCorruption ( void )
public void SplHeap::rewind ( void )
public mixed SplHeap::top ( void )
public bool SplHeap::valid ( void )
}

Sommaire

  • SplMinHeap::compare — Compare deux éléments


Compare deux éléments

  • « SplMinHeap
  • SplPriorityQueue »
  • PHP Manual
  • SplMinHeap
  • Compare deux éléments

SplMinHeap::compare

(PHP 5 >= 5.3.0, PHP 7)

SplMinHeap::compare — Compare deux éléments

Description

protected int SplMinHeap::compare ( mixed $value1 , mixed $value2 )

Compare la valeur value1 avec la valeur value2.

Liste de paramètres

value1

La valeur du premier noeud à comparer.

value2

La valeur du second noeud à comparer.

Valeurs de retour

Le résultat de la comparaison ; un entier positif si la valeur value1 est plus petite que la valeur value2, 0 si les valeurs sont égales, et un entier négatif sinon.

Note:

Avoir plusieurs éléments avec la même valeur dans un tas n'est pas recommandé. Cela peut conduire en des positions arbitraires.


La classe SplPriorityQueue

(PHP 5 >= 5.3.0, PHP 7)

Introduction

La classe SplPriorityQueue fournit les fonctionnalités d'une queue à priorités, implémentées avec une pile maximale.

Synopsis de la classe

SplPriorityQueue implements Iterator , Countable {
/* Méthodes */
public __construct ( void )
public int compare ( mixed $priority1 , mixed $priority2 )
public int count ( void )
public mixed current ( void )
public mixed extract ( void )
public void insert ( mixed $value , mixed $priority )
public bool isEmpty ( void )
public mixed key ( void )
public void next ( void )
public void recoverFromCorruption ( void )
public void rewind ( void )
public void setExtractFlags ( int $flags )
public mixed top ( void )
public bool valid ( void )
}

Sommaire

  • SplPriorityQueue::compare — Compare deux priorités
  • SplPriorityQueue::__construct — Construit une nouvelle file d'attente vide
  • SplPriorityQueue::count — Compte le nombre d'éléments dans la file d'attente
  • SplPriorityQueue::current — Retourne le noeud courant, pointé par l'itérateur
  • SplPriorityQueue::extract — Extrait un noeud depuis le haut du tas
  • SplPriorityQueue::insert — Insère un élément dans la file d'attente
  • SplPriorityQueue::isEmpty — Vérifie si la file est vide
  • SplPriorityQueue::key — Retourne l'index du noeud courant
  • SplPriorityQueue::next — Se déplace sur le prochain noeud
  • SplPriorityQueue::recoverFromCorruption — Répare une file d'attente
  • SplPriorityQueue::rewind — Revient au début de l'itérateur
  • SplPriorityQueue::setExtractFlags — Définit le mode d'extraction
  • SplPriorityQueue::top — Récupère le noeud du haut de la file d'attente
  • SplPriorityQueue::valid — Vérifie si la file d'attente contient encore des noeuds


Compare deux priorités

  • « SplPriorityQueue
  • SplPriorityQueue::__construct »
  • PHP Manual
  • SplPriorityQueue
  • Compare deux priorités

SplPriorityQueue::compare

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::compare — Compare deux priorités

Description

public int SplPriorityQueue::compare ( mixed $priority1 , mixed $priority2 )

Compare la valeur priority1 avec la valeur priority2.

Liste de paramètres

priority1

La priorité du premier noeud à comparer.

priority2

La priorité du second noeud à comparer.

Valeurs de retour

Le résultat de la comparaison ; un entier positif si la valeur priority1 est plus grande que la valeur priority2, 0 si les valeurs sont égales, et un entier négatif sinon.

Note:

Avoir plusieurs éléments avec la même priorité fera qu'ils n'auront pas d'ordre particulier.


Construit une nouvelle file d'attente vide

  • « SplPriorityQueue::compare
  • SplPriorityQueue::count »
  • PHP Manual
  • SplPriorityQueue
  • Construit une nouvelle file d'attente vide

SplPriorityQueue::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::__construct — Construit une nouvelle file d'attente vide

Description

public SplPriorityQueue::__construct ( void )

Construit une nouvelle file d'attente vide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Compte le nombre d'éléments dans la file d'attente

  • « SplPriorityQueue::__construct
  • SplPriorityQueue::current »
  • PHP Manual
  • SplPriorityQueue
  • Compte le nombre d'éléments dans la file d'attente

SplPriorityQueue::count

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::count — Compte le nombre d'éléments dans la file d'attente

Description

public int SplPriorityQueue::count ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'éléments dans la file d'attente.


Retourne le noeud courant, pointé par l'itérateur

  • « SplPriorityQueue::count
  • SplPriorityQueue::extract »
  • PHP Manual
  • SplPriorityQueue
  • Retourne le noeud courant, pointé par l'itérateur

SplPriorityQueue::current

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::current — Retourne le noeud courant, pointé par l'itérateur

Description

public mixed SplPriorityQueue::current ( void )

Récupère le noeud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur ou la priorité (ou les deux) du noeud courant, suivant le drapeau d'extraction.


Extrait un noeud depuis le haut du tas

  • « SplPriorityQueue::current
  • SplPriorityQueue::insert »
  • PHP Manual
  • SplPriorityQueue
  • Extrait un noeud depuis le haut du tas

SplPriorityQueue::extract

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::extract — Extrait un noeud depuis le haut du tas

Description

public mixed SplPriorityQueue::extract ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur ou la priorité (ou les deux) du noeud extrait, suivant le drapeau d'extraction.


Insère un élément dans la file d'attente

  • « SplPriorityQueue::extract
  • SplPriorityQueue::isEmpty »
  • PHP Manual
  • SplPriorityQueue
  • Insère un élément dans la file d'attente

SplPriorityQueue::insert

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::insert — Insère un élément dans la file d'attente

Description

public void SplPriorityQueue::insert ( mixed $value , mixed $priority )

Insère la valeur value avec la priorité priority dans la file d'attente.

Liste de paramètres

value

La valeur à insérer.

priority

La priorité associée.

Valeurs de retour

Aucune valeur n'est retournée.


Vérifie si la file est vide

  • « SplPriorityQueue::insert
  • SplPriorityQueue::key »
  • PHP Manual
  • SplPriorityQueue
  • Vérifie si la file est vide

SplPriorityQueue::isEmpty

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::isEmpty — Vérifie si la file est vide

Description

public bool SplPriorityQueue::isEmpty ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne si la file d'attente est vide, ou non.


Retourne l'index du noeud courant

  • « SplPriorityQueue::isEmpty
  • SplPriorityQueue::next »
  • PHP Manual
  • SplPriorityQueue
  • Retourne l'index du noeud courant

SplPriorityQueue::key

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::key — Retourne l'index du noeud courant

Description

public mixed SplPriorityQueue::key ( void )

Retourne l'index du noeud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index du noeud courant.


Se déplace sur le prochain noeud

  • « SplPriorityQueue::key
  • SplPriorityQueue::recoverFromCorruption »
  • PHP Manual
  • SplPriorityQueue
  • Se déplace sur le prochain noeud

SplPriorityQueue::next

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::next — Se déplace sur le prochain noeud

Description

public void SplPriorityQueue::next ( void )

Se déplace sur le prochain noeud.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Répare une file d'attente

  • « SplPriorityQueue::next
  • SplPriorityQueue::rewind »
  • PHP Manual
  • SplPriorityQueue
  • Répare une file d'attente

SplPriorityQueue::recoverFromCorruption

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::recoverFromCorruption — Répare une file d'attente

Description

public void SplPriorityQueue::recoverFromCorruption ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Revient au début de l'itérateur

  • « SplPriorityQueue::recoverFromCorruption
  • SplPriorityQueue::setExtractFlags »
  • PHP Manual
  • SplPriorityQueue
  • Revient au début de l'itérateur

SplPriorityQueue::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::rewind — Revient au début de l'itérateur

Description

public void SplPriorityQueue::rewind ( void )

Replace l'itérateur au début.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Définit le mode d'extraction

  • « SplPriorityQueue::rewind
  • SplPriorityQueue::top »
  • PHP Manual
  • SplPriorityQueue
  • Définit le mode d'extraction

SplPriorityQueue::setExtractFlags

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::setExtractFlags — Définit le mode d'extraction

Description

public void SplPriorityQueue::setExtractFlags ( int $flags )

Liste de paramètres

flags

Définit ce qui sera extrait par la fonction
SplPriorityQueue::current(),
SplPriorityQueue::top() et
SplPriorityQueue::extract().

  • SplPriorityQueue::EXTR_DATA (0x00000001): Extrait les données
  • SplPriorityQueue::EXTR_PRIORITY (0x00000002): Extrait la priorité
  • SplPriorityQueue::EXTR_BOTH (0x00000003): Extrait un tableau contenant les deux

Le mode par défaut vaut : SplPriorityQueue::EXTR_DATA.

Valeurs de retour

Aucune valeur n'est retournée.


Récupère le noeud du haut de la file d'attente

  • « SplPriorityQueue::setExtractFlags
  • SplPriorityQueue::valid »
  • PHP Manual
  • SplPriorityQueue
  • Récupère le noeud du haut de la file d'attente

SplPriorityQueue::top

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::top — Récupère le noeud du haut de la file d'attente

Description

public mixed SplPriorityQueue::top ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur ou la priorité (ou les deux) du premier noeud, suivant le drapeau d'extraction.


Vérifie si la file d'attente contient encore des noeuds

  • « SplPriorityQueue::top
  • SplFixedArray »
  • PHP Manual
  • SplPriorityQueue
  • Vérifie si la file d'attente contient encore des noeuds

SplPriorityQueue::valid

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::valid — Vérifie si la file d'attente contient encore des noeuds

Description

public bool SplPriorityQueue::valid ( void )

Vérifie si la file d'attente contient encore des noeuds.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la file d'attente contient encore des noeuds, FALSE sinon.


La classe SplFixedArray

(PHP 5 >= 5.3.0, PHP 7)

Introduction

La classe SplFixedArray fournit les fonctionnalités principales d'un tableau. La différence majeure entre un objet SplFixedArray et un tableau standard de PHP est que SplFixedArray est de taille fixe, et n'utilise que des entier dans ses index. L'avantage est alors qu'il est plus rapide que les tableaux.

Synopsis de la classe

SplFixedArray implements Iterator , ArrayAccess , Countable {
/* Méthodes */
public __construct ([ int $size = 0 ] )
public int count ( void )
public mixed current ( void )
public static SplFixedArray fromArray ( array $array [, bool $save_indexes = true ] )
public int getSize ( void )
public int key ( void )
public void next ( void )
public bool offsetExists ( int $index )
public mixed offsetGet ( int $index )
public void offsetSet ( int $index , mixed $newval )
public void offsetUnset ( int $index )
public void rewind ( void )
public int setSize ( int $size )
public array toArray ( void )
public bool valid ( void )
public void __wakeup ( void )
}

Exemples

Exemple #1 Exemple avec SplFixedArray

<?php
// Initialisation d'un tableau avec une taille fixe
$array = new SplFixedArray(5);

$array[1] = 2;
$array[4] = "foo";

var_dump($array[0]); // NULL
var_dump($array[1]); // int(2)

var_dump($array["4"]); // string(3) "foo"

// Augmentation de la taille à 10
$array->setSize(10);

$array[9] = "asdf";

// Réduction de taille de 2
$array->setSize(2);

// Les lignes suivantes émettent une RuntimeException : index invalide ou hors de l'intervalle
try {
    var_dump($array["non-numeric"]);
} catch(RuntimeException $re) {
    echo "RuntimeException : ".$re->getMessage()."\n";
}

try {
    var_dump($array[-1]);
} catch(RuntimeException $re) {
    echo "RuntimeException : ".$re->getMessage()."\n";
}

try {
    var_dump($array[5]);
} catch(RuntimeException $re) {
    echo "RuntimeException : ".$re->getMessage()."\n";
}
?>

L'exemple ci-dessus va afficher :

NULL
int(2)
string(3) "foo"
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range

Sommaire

  • SplFixedArray::__construct — Construit un nouveau SplFixedArray
  • SplFixedArray::count — Retourne la taille du tableau à taille fixe
  • SplFixedArray::current — Lit l'élément courant du tableau à taille fixe
  • SplFixedArray::fromArray — Importe un tableau PHP dans un tableau à taille fixe
  • SplFixedArray::getSize — Lit la taille du tableau à taille fixe
  • SplFixedArray::key — Retourne l'index de la position courante
  • SplFixedArray::next — Déplace l'itérateur à l'élément suivant
  • SplFixedArray::offsetExists — Vérifie si l'index demandé existe
  • SplFixedArray::offsetGet — Retourne la valeur à l'index donné
  • SplFixedArray::offsetSet — Affecte une valeur à un index donné
  • SplFixedArray::offsetUnset — Détruit l'élément à un index donné
  • SplFixedArray::rewind — Remet l'itérateur au début du tableau à taille fixe
  • SplFixedArray::setSize — Change la taille d'un tableau à taille fixe
  • SplFixedArray::toArray — Retourne un tableau PHP à partir d'un tableau à taille fixe
  • SplFixedArray::valid — Vérifie si le tableau contient encore un élément
  • SplFixedArray::__wakeup — Ré-initialise le tableau après sa dé-linéarisation


Construit un nouveau SplFixedArray

  • « SplFixedArray
  • SplFixedArray::count »
  • PHP Manual
  • SplFixedArray
  • Construit un nouveau SplFixedArray

SplFixedArray::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::__construct — Construit un nouveau SplFixedArray

Description

public SplFixedArray::__construct ([ int $size = 0 ] )

Initialise un tableau fixe avec un nombre de valeurs NULL égales au paramètre size.

Liste de paramètres

size

La taille du tableau à taille fixe. Attends un nombre compris entre 0 et PHP_INT_MAX.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception InvalidArgumentException lorsque size est négatif. number.

Émets une alerte de niveau E_WARNING lorsque size ne peut être analysé comme un nombre.

Exemples

Exemple #1 Exemple avec SplFixedArray::__construct()

<?php
$array = new SplFixedArray(5);

$array[1] = 2;
$array[4] = "foo";

foreach($array as $v) {
  var_dump($v);
}
?>

L'exemple ci-dessus va afficher :

NULL
int(2)
NULL
NULL
string(3) "foo"


Retourne la taille du tableau à taille fixe

  • « SplFixedArray::__construct
  • SplFixedArray::current »
  • PHP Manual
  • SplFixedArray
  • Retourne la taille du tableau à taille fixe

SplFixedArray::count

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::count — Retourne la taille du tableau à taille fixe

Description

public int SplFixedArray::count ( void )

Retourne la taille du tableau à taille fixe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille du tableau à taille fixe.

Exemples

Exemple #1 Exemple avec SplFixedArray::count()

<?php
$array = new SplFixedArray(5);
echo $array->count() . "\n";
echo count($array) . "\n";
?>

L'exemple ci-dessus va afficher :

5
5

Notes

Note:

Cette méthode est fonctionnellement équivalente à la méthode SplFixedArray::getSize().

Note:

Le nombre d'éléments est toujours égal à la taille du jeu, parce que toutes les valeurs sont initialisées avec la valeur NULL.

Voir aussi

  • SplFixedArray::getSize() - Lit la taille du tableau à taille fixe


Lit l'élément courant du tableau à taille fixe

  • « SplFixedArray::count
  • SplFixedArray::fromArray »
  • PHP Manual
  • SplFixedArray
  • Lit l'élément courant du tableau à taille fixe

SplFixedArray::current

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::current — Lit l'élément courant du tableau à taille fixe

Description

public mixed SplFixedArray::current ( void )

Lit l'élément courant du tableau à taille fixe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur de l'élément courant.

Erreurs / Exceptions

Lance une exception RuntimeException lorsque le pointeur interne du tableau pointe vers un index invalide ou s'il est supérieur à la taille de ce dernier.


Importe un tableau PHP dans un tableau à taille fixe

  • « SplFixedArray::current
  • SplFixedArray::getSize »
  • PHP Manual
  • SplFixedArray
  • Importe un tableau PHP dans un tableau à taille fixe

SplFixedArray::fromArray

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::fromArray — Importe un tableau PHP dans un tableau à taille fixe

Description

public static SplFixedArray SplFixedArray::fromArray ( array $array [, bool $save_indexes = true ] )

Importe le tableau PHP array dans un tableau à taille fixe.

Liste de paramètres

array

La tableau à importer.

save_indexes

Tente de préserver les index numérique du tableau original.

Valeurs de retour

Retourne un objet SplFixedArray avec le même contenu que le tableau passé en argument.

Exemples

Exemple #1 Exemple avec SplFixedArray::fromArray()

<?php
$fa = SplFixedArray::fromArray(array(1 => 1, 0 => 2, 3 => 3));

var_dump($fa);

$fa = SplFixedArray::fromArray(array(1 => 1, 0 => 2, 3 => 3), false);

var_dump($fa);
?>

L'exemple ci-dessus va afficher :

object(SplFixedArray)#1 (4) {
  [0]=>
  int(2)
  [1]=>
  int(1)
  [2]=>
  NULL
  [3]=>
  int(3)
}
object(SplFixedArray)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Lit la taille du tableau à taille fixe

  • « SplFixedArray::fromArray
  • SplFixedArray::key »
  • PHP Manual
  • SplFixedArray
  • Lit la taille du tableau à taille fixe

SplFixedArray::getSize

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::getSize — Lit la taille du tableau à taille fixe

Description

public int SplFixedArray::getSize ( void )

Lit la taille du tableau à taille fixe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille du tableau à taille fixe.

Exemples

Exemple #1 Exemple avec SplFixedArray::getSize()

<?php
$array = new SplFixedArray(5);
echo $array->getSize()."\n";
$array->setSize(10);
echo $array->getSize()."\n";
?>

L'exemple ci-dessus va afficher :

5
10

Notes

Note:

Cette méthode est fonctionnellement équivalente à la méthode SplFixedArray::count().

Voir aussi

  • SplFixedArray::count() - Retourne la taille du tableau à taille fixe


Retourne l'index de la position courante

  • « SplFixedArray::getSize
  • SplFixedArray::next »
  • PHP Manual
  • SplFixedArray
  • Retourne l'index de la position courante

SplFixedArray::key

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::key — Retourne l'index de la position courante

Description

public int SplFixedArray::key ( void )

Retourne l'index de la position courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index de la position courante.


Déplace l'itérateur à l'élément suivant

  • « SplFixedArray::key
  • SplFixedArray::offsetExists »
  • PHP Manual
  • SplFixedArray
  • Déplace l'itérateur à l'élément suivant

SplFixedArray::next

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::next — Déplace l'itérateur à l'élément suivant

Description

public void SplFixedArray::next ( void )

Déplace l'itérateur à l'élément suivant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Vérifie si l'index demandé existe

  • « SplFixedArray::next
  • SplFixedArray::offsetGet »
  • PHP Manual
  • SplFixedArray
  • Vérifie si l'index demandé existe

SplFixedArray::offsetExists

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetExists — Vérifie si l'index demandé existe

Description

public bool SplFixedArray::offsetExists ( int $index )

Vérifie si l'index index existe.

Liste de paramètres

index

L'index à vérifier.

Valeurs de retour

TRUE si l'index index existe, sinon FALSE


Retourne la valeur à l'index donné

  • « SplFixedArray::offsetExists
  • SplFixedArray::offsetSet »
  • PHP Manual
  • SplFixedArray
  • Retourne la valeur à l'index donné

SplFixedArray::offsetGet

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetGet — Retourne la valeur à l'index donné

Description

public mixed SplFixedArray::offsetGet ( int $index )

Retourne la valeur à l'index index.

Liste de paramètres

index

L'index de la valeur demandée.

Valeurs de retour

La valeur spécifiée à l'index index.

Erreurs / Exceptions

Lance une exception RuntimeException lorsque index est en dehors de la taille définie du tableau ou lorsque index n'a pu être analysé comme un entier.


Affecte une valeur à un index donné

  • « SplFixedArray::offsetGet
  • SplFixedArray::offsetUnset »
  • PHP Manual
  • SplFixedArray
  • Affecte une valeur à un index donné

SplFixedArray::offsetSet

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetSet — Affecte une valeur à un index donné

Description

public void SplFixedArray::offsetSet ( int $index , mixed $newval )

Affecte la valeur newval à l'index index.

Liste de paramètres

index

L'index à affecter.

newval

La valeur à assigner à l'index index.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception RuntimeException lorsque index est en dehors de la taille définie du tableau ou lorsque index n'a pu être analysé comme un entier.


Détruit l'élément à un index donné

  • « SplFixedArray::offsetSet
  • SplFixedArray::rewind »
  • PHP Manual
  • SplFixedArray
  • Détruit l'élément à un index donné

SplFixedArray::offsetUnset

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetUnset — Détruit l'élément à un index donné

Description

public void SplFixedArray::offsetUnset ( int $index )

Détruit l'élément à l'index index.

Liste de paramètres

index

L'index de l'élément à détruire.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception RuntimeException lorsque index est en dehors de la taille du tableau ou lorsque index n'a pu être analysé comme un entier.


Remet l'itérateur au début du tableau à taille fixe

  • « SplFixedArray::offsetUnset
  • SplFixedArray::setSize »
  • PHP Manual
  • SplFixedArray
  • Remet l'itérateur au début du tableau à taille fixe

SplFixedArray::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::rewind — Remet l'itérateur au début du tableau à taille fixe

Description

public void SplFixedArray::rewind ( void )

Remet l'itérateur au début du tableau à taille fixe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Change la taille d'un tableau à taille fixe

  • « SplFixedArray::rewind
  • SplFixedArray::toArray »
  • PHP Manual
  • SplFixedArray
  • Change la taille d'un tableau à taille fixe

SplFixedArray::setSize

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::setSize — Change la taille d'un tableau à taille fixe

Description

public int SplFixedArray::setSize ( int $size )

Change la taille d'un tableau à la taille fixe size. Si size est inférieur à la taille courante du tableau, toutes les valeurs après la nouvelle taille seront ignorées. Si size est plus grand que la taille courante du tableau, le tableau sera complété par des valeurs de type NULL.

Liste de paramètres

size

La nouvelle taille du tableau. Doit être une valeur entre 0 et PHP_INT_MAX.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception InvalidArgumentException lorsque size est inférieur à zéro.

Émets une alerte de type E_WARNING lorsque size ne peut être utilisé comme un nombre.

Exemples

Exemple #1 Exemple avec SplFixedArray::setSize()

<?php
   $array = new SplFixedArray(5);
   echo $array->getSize()."\n";
   $array->setSize(10);
   echo $array->getSize()."\n";
?>

L'exemple ci-dessus va afficher :

5
10


Retourne un tableau PHP à partir d'un tableau à taille fixe

  • « SplFixedArray::setSize
  • SplFixedArray::valid »
  • PHP Manual
  • SplFixedArray
  • Retourne un tableau PHP à partir d'un tableau à taille fixe

SplFixedArray::toArray

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::toArray — Retourne un tableau PHP à partir d'un tableau à taille fixe

Description

public array SplFixedArray::toArray ( void )

Retourne un tableau PHP à partir d'un tableau à taille fixe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau PHP à partir d'un tableau à taille fixe.

Exemples

Exemple #1 Exemple avec SplFixedArray::toArray()

<?php
$fa = new SplFixedArray(3);
$fa[0] = 0;
$fa[2] = 2;
var_dump($fa->toArray());
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  int(0)
  [1]=>
  NULL
  [2]=>
  int(2)
}


Vérifie si le tableau contient encore un élément

  • « SplFixedArray::toArray
  • SplFixedArray::__wakeup »
  • PHP Manual
  • SplFixedArray
  • Vérifie si le tableau contient encore un élément

SplFixedArray::valid

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::valid — Vérifie si le tableau contient encore un élément

Description

public bool SplFixedArray::valid ( void )

Vérifie si le tableau contient encore un élément.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le tableau contient encore un élément, FALSE sinon.


Ré-initialise le tableau après sa dé-linéarisation

  • « SplFixedArray::valid
  • SplObjectStorage »
  • PHP Manual
  • SplFixedArray
  • Ré-initialise le tableau après sa dé-linéarisation

SplFixedArray::__wakeup

(PHP 5 >= 5.5.0, PHP 7)

SplFixedArray::__wakeup — Ré-initialise le tableau après sa dé-linéarisation

Description

public void SplFixedArray::__wakeup ( void )

Ré-initialise le tableau après sa dé-linéarisation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


La classe SplObjectStorage

(PHP 5 >= 5.3.0, PHP 7)

Introduction

La classe SplObjectStorage fournit une carte d'objets ou de données, ou encore, en ignorant les index, un ensemble d'objets. Ce double objectif est utile dans de nombreuses situations, où il faut identifier de manière unique des objets.

Synopsis de la classe

SplObjectStorage implements Countable , Iterator , Serializable , ArrayAccess {
/* Méthodes */
public void addAll ( SplObjectStorage $storage )
public void attach ( object $object [, mixed $data = NULL ] )
public bool contains ( object $object )
public int count ( void )
public object current ( void )
public void detach ( object $object )
public string getHash ( object $object )
public mixed getInfo ( void )
public int key ( void )
public void next ( void )
public bool offsetExists ( object $object )
public mixed offsetGet ( object $object )
public void offsetSet ( object $object [, mixed $data = NULL ] )
public void offsetUnset ( object $object )
public void removeAll ( SplObjectStorage $storage )
public void removeAllExcept ( SplObjectStorage $storage )
public void rewind ( void )
public string serialize ( void )
public void setInfo ( mixed $data )
public void unserialize ( string $serialized )
public bool valid ( void )
}

Exemples

Exemple #1 Exemple avec SplObjectStorage, sous forme d'ensemble d'objets

<?php
// Un ensemble d'objets
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;

$s->attach($o1);
$s->attach($o2);

var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));

$s->detach($o2);

var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Exemple #2 Exemple avec SplObjectStorage, sous forme de carte

<?php
// Une carte d'objets
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;

$s[$o1] = "data for object 1";
$s[$o2] = array(1,2,3);

if (isset($s[$o2])) {
    var_dump($s[$o2]);
}
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Sommaire

  • SplObjectStorage::addAll — Ajoute tous les objets d'un autre stockage
  • SplObjectStorage::attach — Ajoute un objet dans le stockage
  • SplObjectStorage::contains — Vérifie si un stockage contient un objet
  • SplObjectStorage::count — Retourne le nombre d'objets dans le stockage
  • SplObjectStorage::current — Retourne l'objet courant
  • SplObjectStorage::detach — Retire un objet du stockage
  • SplObjectStorage::getHash — Calcule un identifiant unique pour les objets contenus
  • SplObjectStorage::getInfo — Retourne les données associés à l'élément en cours
  • SplObjectStorage::key — Retourne l'index de l'objet courant
  • SplObjectStorage::next — Passe au prochain élément
  • SplObjectStorage::offsetExists — Vérifie si un objet existe dans le stockage
  • SplObjectStorage::offsetGet — Retourne les données associées à un objet
  • SplObjectStorage::offsetSet — Associe des données à un stockage
  • SplObjectStorage::offsetUnset — Retire un objet du stockage
  • SplObjectStorage::removeAll — Retire les objets d'un stockage qui appartienne à un autre stockage
  • SplObjectStorage::removeAllExcept — Supprime tous les objets du stockage courant sauf ceux contenus dans d'autres stockages
  • SplObjectStorage::rewind — Remet l'itérateur au début
  • SplObjectStorage::serialize — Linéarise un stockage
  • SplObjectStorage::setInfo — Modifie les données associée à l'élément courant
  • SplObjectStorage::unserialize — Délinéarise un stockage à partir de sa forme en chaîne
  • SplObjectStorage::valid — Vérifie si l'élément courant est valide


Ajoute tous les objets d'un autre stockage

  • « SplObjectStorage
  • SplObjectStorage::attach »
  • PHP Manual
  • SplObjectStorage
  • Ajoute tous les objets d'un autre stockage

SplObjectStorage::addAll

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::addAll — Ajoute tous les objets d'un autre stockage

Description

public void SplObjectStorage::addAll ( SplObjectStorage $storage )

Ajoute tous les objets de l'ensemble storage.

Liste de paramètres

storage

Le stockage à importer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::addAll()

<?php
$o = new StdClass;
$a = new SplObjectStorage();
$a[$o] = "hello";

$b = new SplObjectStorage();
$b->addAll($a);
echo $b[$o]."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

hello

Voir aussi

  • SplObjectStorage::removeAll() - Retire les objets d'un stockage qui appartienne à un autre stockage


Ajoute un objet dans le stockage

  • « SplObjectStorage::addAll
  • SplObjectStorage::contains »
  • PHP Manual
  • SplObjectStorage
  • Ajoute un objet dans le stockage

SplObjectStorage::attach

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::attach — Ajoute un objet dans le stockage

Description

public void SplObjectStorage::attach ( object $object [, mixed $data = NULL ] )

Ajoute un objet dans le stockage, et lui associe éventuellement des données.

Liste de paramètres

object

L'objet à ajouter.

data

Les données à associer avec l'objet.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::attach()

<?php
$o1 = new StdClass;
$o2 = new StdClass;
$s = new SplObjectStorage();
$s->attach($o1); // Similaire à $s[$o1] = NULL;
$s->attach($o2, "hello"); // Similaire à $s[$o2] = "hello";

var_dump($s[$o1]);
var_dump($s[$o2]);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

NULL
string(5) "hello"

Historique

Version | Description
5.3.0 | Ajout du paramètre data.

Voir aussi

  • SplObjectStorage::detach() - Retire un objet du stockage
  • SplObjectStorage::offsetSet() - Associe des données à un stockage


Vérifie si un stockage contient un objet

  • « SplObjectStorage::attach
  • SplObjectStorage::count »
  • PHP Manual
  • SplObjectStorage
  • Vérifie si un stockage contient un objet

SplObjectStorage::contains

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::contains — Vérifie si un stockage contient un objet

Description

public bool SplObjectStorage::contains ( object $object )

Vérifie si le stockage contient l'objet object.

Liste de paramètres

object

L'objet à rechercher.

Valeurs de retour

Retourne TRUE si l'objet est dans le stockage, et FALSE sinon.

Exemples

Exemple #1 Exemple avec SplObjectStorage::contains()

<?php
$o1 = new StdClass;
$o2 = new StdClass;

$s = new SplObjectStorage();

$s[$o1] = "hello";
var_dump($s->contains($o1));
var_dump($s->contains($o2));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)

Voir aussi

  • SplObjectStorage::offsetExists() - Vérifie si un objet existe dans le stockage


Retourne le nombre d'objets dans le stockage

  • « SplObjectStorage::contains
  • SplObjectStorage::current »
  • PHP Manual
  • SplObjectStorage
  • Retourne le nombre d'objets dans le stockage

SplObjectStorage::count

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::count — Retourne le nombre d'objets dans le stockage

Description

public int SplObjectStorage::count ( void )

Compte le nombre d'objets dans le stockage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre d'objets dans le stockage.

Exemples

Exemple #1 Exemple avec SplObjectStorage::count()

<?php
$s = new SplObjectStorage();
$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1);
$s->attach($o2);
$s->attach($o1);
var_dump($s->count());
var_dump(count($s));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(2)
int(2)

Voir aussi

  • SplObjectStorage::attach() - Ajoute un objet dans le stockage
  • SplObjectStorage::detach() - Retire un objet du stockage


Retourne l'objet courant

  • « SplObjectStorage::count
  • SplObjectStorage::detach »
  • PHP Manual
  • SplObjectStorage
  • Retourne l'objet courant

SplObjectStorage::current

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::current — Retourne l'objet courant

Description

public object SplObjectStorage::current ( void )

Retourne l'objet courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet à la position courante.

Exemples

Exemple #1 Exemple avec SplObjectStorage::current()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // similar to current($s)
    $data   = $s->getInfo();

    var_dump($object);
    var_dump($data);
    $s->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)#2 (0) {
}
string(2) "d1"
object(stdClass)#3 (0) {
}
string(2) "d2"

Voir aussi

  • SplObjectStorage::rewind() - Remet l'itérateur au début
  • SplObjectStorage::key() - Retourne l'index de l'objet courant
  • SplObjectStorage::next() - Passe au prochain élément
  • SplObjectStorage::valid() - Vérifie si l'élément courant est valide
  • SplObjectStorage::getInfo() - Retourne les données associés à l'élément en cours


Retire un objet du stockage

  • « SplObjectStorage::current
  • SplObjectStorage::getHash »
  • PHP Manual
  • SplObjectStorage
  • Retire un objet du stockage

SplObjectStorage::detach

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::detach — Retire un objet du stockage

Description

public void SplObjectStorage::detach ( object $object )

Retire un objet du stockage.

Liste de paramètres

object

L'objet à retirer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::detach()

<?php
$o = new StdClass;
$s = new SplObjectStorage();
$s->attach($o);
var_dump(count($s));
$s->detach($o);
var_dump(count($s));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)
int(0)

Voir aussi

  • SplObjectStorage::attach() - Ajoute un objet dans le stockage
  • SplObjectStorage::removeAll() - Retire les objets d'un stockage qui appartienne à un autre stockage


Calcule un identifiant unique pour les objets contenus

  • « SplObjectStorage::detach
  • SplObjectStorage::getInfo »
  • PHP Manual
  • SplObjectStorage
  • Calcule un identifiant unique pour les objets contenus

SplObjectStorage::getHash

(PHP 5 >= 5.4.0, PHP 7)

SplObjectStorage::getHash — Calcule un identifiant unique pour les objets contenus

Description

public string SplObjectStorage::getHash ( object $object )

Cette méthode calcule un identifiant pour les objets ajoutés dans l'objet SplObjectStorage.

L'implémentation dans SplObjectStorage retourne la même valeur que spl_object_hash().

Cet objet de stockage ne doit pas contenir plus d'un objet avec le même identifiant. Aussi, il peut être utilisé pour implémenter un jeu (une collection de valeurs uniques) où la qualité d'un objet unique est déterminé par la valeur retournée par cette fonction.

Liste de paramètres

object

L'objet dont nous devons calculer l'identifiant.

Valeurs de retour

Une chaîne de caractères représentant l'identifiant calculé.

Erreurs / Exceptions

Une exception RuntimeException est émise lorsque la valeur retournée n'est pas une chaîne de caractères.

Exemples

Exemple #1 Exemple avec SplObjectStorage::getHash()

<?php
class OneSpecimenPerClassStorage extends SplObjectStorage {
    public function getHash($o) {
        return get_class($o);
    }
}
class A {}

$s = new OneSpecimenPerClassStorage;
$o1 = new stdClass;
$o2 = new stdClass;
$o3 = new A;

$s[$o1] = 1;
//$o2 est considéré comme égal à $o1, et donc, la valeur est remplacée
$s[$o2] = 2;
$s[$o3] = 3;

//ceci est considéré comme égal aux objets précédents
// aussi, ils peuvent être utilisés pour accéder aux valeurs y étant stockées
$p1 = new stdClass;
$p2 = new A;
echo $s[$p1], "\n";
echo $s[$p2], "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

2
3

Voir aussi

  • spl_object_hash() - Retourne l'identifiant de hashage pour un objet donné


Retourne les données associés à l'élément en cours

  • « SplObjectStorage::getHash
  • SplObjectStorage::key »
  • PHP Manual
  • SplObjectStorage
  • Retourne les données associés à l'élément en cours

SplObjectStorage::getInfo

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::getInfo — Retourne les données associés à l'élément en cours

Description

public mixed SplObjectStorage::getInfo ( void )

Retourne les données, ou informations, associées avec l'objet actuellement pointé dans l'itérateur courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les données associées avec la position courante.

Exemples

Exemple #1 Exemple avec SplObjectStorage::getInfo()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // similaire à current($s)
    $data   = $s->getInfo();

    var_dump($object);
    var_dump($data);
    $s->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)#2 (0) {
}
string(2) "d1"
object(stdClass)#3 (0) {
}
string(2) "d2"

Voir aussi

  • SplObjectStorage::current() - Retourne l'objet courant
  • SplObjectStorage::rewind() - Remet l'itérateur au début
  • SplObjectStorage::key() - Retourne l'index de l'objet courant
  • SplObjectStorage::next() - Passe au prochain élément
  • SplObjectStorage::valid() - Vérifie si l'élément courant est valide
  • SplObjectStorage::setInfo() - Modifie les données associée à l'élément courant


Retourne l'index de l'objet courant

  • « SplObjectStorage::getInfo
  • SplObjectStorage::next »
  • PHP Manual
  • SplObjectStorage
  • Retourne l'index de l'objet courant

SplObjectStorage::key

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::key — Retourne l'index de l'objet courant

Description

public int SplObjectStorage::key ( void )

Retourne l'index de l'objet courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index de la position courante dans l'itérateur.

Exemples

Exemple #1 Exemple avec SplObjectStorage::key()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // similaire à current($s)

    var_dump($index);
    var_dump($object);
    $s->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
object(stdClass)#2 (0) {
}
int(1)
object(stdClass)#3 (0) {
}

Voir aussi

  • SplObjectStorage::rewind() - Remet l'itérateur au début
  • SplObjectStorage::current() - Retourne l'objet courant
  • SplObjectStorage::next() - Passe au prochain élément
  • SplObjectStorage::valid() - Vérifie si l'élément courant est valide


Passe au prochain élément

  • « SplObjectStorage::key
  • SplObjectStorage::offsetExists »
  • PHP Manual
  • SplObjectStorage
  • Passe au prochain élément

SplObjectStorage::next

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::next — Passe au prochain élément

Description

public void SplObjectStorage::next ( void )

Avance l'itérateur d'un élément dans le stockage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::next()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // similaire à current($s)

    var_dump($index);
    var_dump($object);
    $s->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
object(stdClass)#2 (0) {
}
int(1)
object(stdClass)#3 (0) {
}

Voir aussi

  • SPLObjectStorage::rewind() - Remet l'itérateur au début


Vérifie si un objet existe dans le stockage

  • « SplObjectStorage::next
  • SplObjectStorage::offsetGet »
  • PHP Manual
  • SplObjectStorage
  • Vérifie si un objet existe dans le stockage

SplObjectStorage::offsetExists

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetExists — Vérifie si un objet existe dans le stockage

Description

public bool SplObjectStorage::offsetExists ( object $object )

Vérifie si un objet existe dans un stockage.

Note:

SplObjectStorage::offsetExists() est un alias de la méthode SplObjectStorage::contains().

Liste de paramètres

object

L'objet à rechercher.

Valeurs de retour

Retourne TRUE si l'objet existe, et FALSE sinon.

Exemples

Exemple #1 Exemple avec SplObjectStorage::offsetExists()

<?php
$s = new SplObjectStorage;
$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1);

var_dump($s->offsetExists($o1)); // Similar to isset($s[$o1])
var_dump($s->offsetExists($o2)); // Similar to isset($s[$o2])
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)

Voir aussi

  • SplObjectStorage::offsetSet() - Associe des données à un stockage
  • SplObjectStorage::offsetGet() - Retourne les données associées à un objet
  • SplObjectStorage::offsetUnset() - Retire un objet du stockage


Retourne les données associées à un objet

  • « SplObjectStorage::offsetExists
  • SplObjectStorage::offsetSet »
  • PHP Manual
  • SplObjectStorage
  • Retourne les données associées à un objet

SplObjectStorage::offsetGet

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetGet — Retourne les données associées à un objet

Description

public mixed SplObjectStorage::offsetGet ( object $object )

Retourne les données associées à un objet dans le stockage.

Liste de paramètres

object

L'objet à rechercher.

Valeurs de retour

Les données précédemment associées avec l'objet.

Erreurs / Exceptions

Lance une exception UnexpectedValueException lorsque object n'a pû être trouvé.

Exemples

Exemple #1 Exemple avec SplObjectStorage::offsetGet()

<?php
$s = new SplObjectStorage;

$o1 = new StdClass;
$o2 = new StdClass;

$s[$o1] = "hello";
$s->attach($o2);

var_dump($s->offsetGet($o1)); // Similaire à $s[$o1]
var_dump($s->offsetGet($o2)); // Similaire à $s[$o2]
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "hello"
NULL

Voir aussi

  • SplObjectStorage::offsetSet() - Associe des données à un stockage
  • SplObjectStorage::offsetExists() - Vérifie si un objet existe dans le stockage
  • SplObjectStorage::offsetUnset() - Retire un objet du stockage


Associe des données à un stockage

  • « SplObjectStorage::offsetGet
  • SplObjectStorage::offsetUnset »
  • PHP Manual
  • SplObjectStorage
  • Associe des données à un stockage

SplObjectStorage::offsetSet

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetSet — Associe des données à un stockage

Description

public void SplObjectStorage::offsetSet ( object $object [, mixed $data = NULL ] )

Associe des données à un objet du stockage.

Note:

SplObjectStorage::offsetSet() est un alias de SplObjectStorage::attach().

Liste de paramètres

object

L'objet à qui il faut associer les données.

data

Les données à associer avec l'objet.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::offsetSet()

<?php
$s = new SplObjectStorage;

$o1 = new StdClass;

$s->offsetSet($o1, "hello"); // Similaire à $s[$o1] = "hello";

var_dump($s[$o1]);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "hello"

Voir aussi

  • SplObjectStorage::attach() - Ajoute un objet dans le stockage
  • SplObjectStorage::offsetGet() - Retourne les données associées à un objet
  • SplObjectStorage::offsetExists() - Vérifie si un objet existe dans le stockage
  • SplObjectStorage::offsetUnset() - Retire un objet du stockage


Retire un objet du stockage

  • « SplObjectStorage::offsetSet
  • SplObjectStorage::removeAll »
  • PHP Manual
  • SplObjectStorage
  • Retire un objet du stockage

SplObjectStorage::offsetUnset

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetUnset — Retire un objet du stockage

Description

public void SplObjectStorage::offsetUnset ( object $object )

Retire un objet du stockage.

Note:

SplObjectStorage::offsetUnset() est un alias de SplObjectStorage::detach().

Liste de paramètres

object

L'objet à retirer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::offsetUnset()

<?php
$o = new StdClass;
$s = new SplObjectStorage();
$s->attach($o);
var_dump(count($s));
$s->offsetUnset($o); // similaire à unset($s[$o])
var_dump(count($s));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)
int(0)

Voir aussi

  • SplObjectStorage::offsetGet() - Retourne les données associées à un objet
  • SplObjectStorage::offsetSet() - Associe des données à un stockage
  • SplObjectStorage::offsetExists() - Vérifie si un objet existe dans le stockage


Retire les objets d'un stockage qui appartienne à un autre stockage

  • « SplObjectStorage::offsetUnset
  • SplObjectStorage::removeAllExcept »
  • PHP Manual
  • SplObjectStorage
  • Retire les objets d'un stockage qui appartienne à un autre stockage

SplObjectStorage::removeAll

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::removeAll — Retire les objets d'un stockage qui appartienne à un autre stockage

Description

public void SplObjectStorage::removeAll ( SplObjectStorage $storage )

Retire les objets d'un stockage qui appartienne à un autre stockage.

Liste de paramètres

storage

Le stockage contenant les éléments à retirer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::removeAll()

<?php
$o1 = new StdClass;
$o2 = new StdClass;
$a = new SplObjectStorage();
$a[$o1] = "foo";

$b = new SplObjectStorage();
$b[$o1] = "bar";
$b[$o2] = "gee";

var_dump(count($b));
$b->removeAll($a);
var_dump(count($b));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(2)
int(1)

Voir aussi

  • SplObjectStorage::addAll() - Ajoute tous les objets d'un autre stockage


Supprime tous les objets du stockage courant sauf ceux contenus dans d'autres stockages

  • « SplObjectStorage::removeAll
  • SplObjectStorage::rewind »
  • PHP Manual
  • SplObjectStorage
  • Supprime tous les objets du stockage courant sauf ceux contenus dans d'autres stockages

SplObjectStorage::removeAllExcept

(PHP 5 >= 5.3.6, PHP 7)

SplObjectStorage::removeAllExcept — Supprime tous les objets du stockage courant sauf ceux contenus dans d'autres stockages

Description

public void SplObjectStorage::removeAllExcept ( SplObjectStorage $storage )

Supprime tous les objets du stockage courant sauf ceux contenus dans d'autres stockages.

Liste de paramètres

storage

Le stockage contenant les éléments à ne pas supprimer du stockage courant.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::removeAllExcept()

<?php
$a = (object) 'a';
$b = (object) 'b';
$c = (object) 'c';

$foo = new SplObjectStorage;
$foo->attach($a);
$foo->attach($b);

$bar = new SplObjectStorage;
$bar->attach($b);
$bar->attach($c);

$foo->removeAllExcept($bar);
var_dump($foo->contains($a));
var_dump($foo->contains($b));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)


Remet l'itérateur au début

  • « SplObjectStorage::removeAllExcept
  • SplObjectStorage::serialize »
  • PHP Manual
  • SplObjectStorage
  • Remet l'itérateur au début

SplObjectStorage::rewind

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::rewind — Remet l'itérateur au début

Description

public void SplObjectStorage::rewind ( void )

Remet l'itérateur au début.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::rewind()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // similaire à current($s)
    $data   = $s->getInfo();

    var_dump($object);
    var_dump($data);
    $s->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)
int(0)

Voir aussi

  • SplObjectStorage::next() - Passe au prochain élément


Linéarise un stockage

  • « SplObjectStorage::rewind
  • SplObjectStorage::setInfo »
  • PHP Manual
  • SplObjectStorage
  • Linéarise un stockage

SplObjectStorage::serialize

(PHP 5 >= 5.2.2, PHP 7)

SplObjectStorage::serialize — Linéarise un stockage

Description

public string SplObjectStorage::serialize ( void )

Retourne une chaîne représentant un stockage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères représentant le stockage.

Exemples

Exemple #1 Exemple avec SplObjectStorage::serialize()

<?php
$s = new SplObjectStorage;
$o = new StdClass;
$s[$o] = "data";

echo $s->serialize()."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

x:i:1;O:8:"stdClass":0:{},s:4:"data";;m:a:0:{}

Voir aussi

  • SplObjectStorage::unserialize() - Délinéarise un stockage à partir de sa forme en chaîne


Modifie les données associée à l'élément courant

  • « SplObjectStorage::serialize
  • SplObjectStorage::unserialize »
  • PHP Manual
  • SplObjectStorage
  • Modifie les données associée à l'élément courant

SplObjectStorage::setInfo

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::setInfo — Modifie les données associée à l'élément courant

Description

public void SplObjectStorage::setInfo ( mixed $data )

Associe des données, ou informations, à l'objet courant de l'itérateur.

Liste de paramètres

data

Les données à associer avec la position courante de l'itérateur.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::setInfo()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $s->setInfo("new");
    $s->next();
}
var_dump($s[$o1]);
var_dump($s[$o2]);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(3) "new"
string(3) "new"

Voir aussi

  • SplObjectStorage::current() - Retourne l'objet courant
  • SplObjectStorage::rewind() - Remet l'itérateur au début
  • SplObjectStorage::key() - Retourne l'index de l'objet courant
  • SplObjectStorage::next() - Passe au prochain élément
  • SplObjectStorage::valid() - Vérifie si l'élément courant est valide
  • SplObjectStorage::getInfo() - Retourne les données associés à l'élément en cours


Délinéarise un stockage à partir de sa forme en chaîne

  • « SplObjectStorage::setInfo
  • SplObjectStorage::valid »
  • PHP Manual
  • SplObjectStorage
  • Délinéarise un stockage à partir de sa forme en chaîne

SplObjectStorage::unserialize

(PHP 5 >= 5.2.2, PHP 7)

SplObjectStorage::unserialize — Délinéarise un stockage à partir de sa forme en chaîne

Description

public void SplObjectStorage::unserialize ( string $serialized )

Délinéarise un stockage à partir de sa forme en chaîne.

Liste de paramètres

serialized

La représentation linéarisée d'un stockage.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplObjectStorage::unserialize()

<?php
$s1 = new SplObjectStorage;
$s2 = new SplObjectStorage;
$o = new StdClass;
$s1[$o] = "data";

$s2->unserialize($s1->serialize());

var_dump(count($s2));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)

Voir aussi

  • SplObjectStorage::serialize() - Linéarise un stockage


Vérifie si l'élément courant est valide

  • « SplObjectStorage::unserialize
  • Itérateurs »
  • PHP Manual
  • SplObjectStorage
  • Vérifie si l'élément courant est valide

SplObjectStorage::valid

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::valid — Vérifie si l'élément courant est valide

Description

public bool SplObjectStorage::valid ( void )

Vérifie si l'élément courant est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'élément courant est valide, et FALSE sinon.

Exemples

Exemple #1 Exemple avec SplObjectStorage::valid()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    echo $s->key()."\n";
    $s->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0
1

Voir aussi

  • SplObjectStorage::current() - Retourne l'objet courant
  • SplObjectStorage::getInfo() - Retourne les données associés à l'élément en cours


Itérateurs

Sommaire

  • AppendIterator
  • ArrayIterator
  • CachingIterator
  • CallbackFilterIterator
  • DirectoryIterator
  • EmptyIterator
  • FilesystemIterator
  • FilterIterator
  • GlobIterator
  • InfiniteIterator
  • IteratorIterator
  • LimitIterator
  • MultipleIterator
  • NoRewindIterator
  • ParentIterator
  • RecursiveArrayIterator
  • RecursiveCachingIterator
  • RecursiveCallbackFilterIterator
  • RecursiveDirectoryIterator
  • RecursiveFilterIterator
  • RecursiveIteratorIterator
  • RecursiveRegexIterator
  • RecursiveTreeIterator
  • La classe RegexIterator

SPL fournit un jeu d'itérateurs pour gérer les objets.

Arbre de la classe SPL Iterators

  • ArrayIterator
    • RecursiveArrayIterator
  • EmptyIterator
  • IteratorIterator
    • AppendIterator
    • CachingIterator
      • RecursiveCachingIterator
    • FilterIterator
      • CallbackFilterIterator
        • RecursiveCallbackFilterIterator
      • RecursiveFilterIterator
        • ParentIterator
      • RegexIterator
        • RecursiveRegexIterator
    • InfiniteIterator
    • LimitIterator
    • NoRewindIterator
  • MultipleIterator
  • RecursiveIteratorIterator
    • RecursiveTreeIterator
  • DirectoryIterator (extends SplFileInfo)
    • FilesystemIterator
      • GlobIterator
      • RecursiveDirectoryIterator


La classe AppendIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Un itérateur qui itère sur plusieurs itérateurs les uns après les autres.

Synopsis de la classe

AppendIterator extends IteratorIterator implements OuterIterator {
/* Méthodes */
public __construct ( void )
public void append ( Iterator $iterator )
public mixed current ( void )
public ArrayIterator getArrayIterator ( void )
public Iterator getInnerIterator ( void )
public int getIteratorIndex ( void )
public scalar key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
/* Méthodes héritées */
public IteratorIterator::__construct ( Traversable $iterator )
public mixed IteratorIterator::current ( void )
public Traversable IteratorIterator::getInnerIterator ( void )
public scalar IteratorIterator::key ( void )
public void IteratorIterator::next ( void )
public void IteratorIterator::rewind ( void )
public bool IteratorIterator::valid ( void )
}

Sommaire

  • AppendIterator::append — Ajoute un itérateur à la fin
  • AppendIterator::__construct — Construit un objet AppendIterator
  • AppendIterator::current — Lit la valeur courante
  • AppendIterator::getArrayIterator — Récupère le ArrayIterator
  • AppendIterator::getInnerIterator — Lit l'itérateur interne
  • AppendIterator::getIteratorIndex — Lit l'index d'un itérateur
  • AppendIterator::key — Lit la clé courante
  • AppendIterator::next — Passe à l'élément suivant
  • AppendIterator::rewind — Remet l'itérateur au début
  • AppendIterator::valid — Vérifie la validité de l'élément courant


Ajoute un itérateur à la fin

  • « AppendIterator
  • AppendIterator::__construct »
  • PHP Manual
  • AppendIterator
  • Ajoute un itérateur à la fin

AppendIterator::append

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::append — Ajoute un itérateur à la fin

Description

public void AppendIterator::append ( Iterator $iterator )

Ajoute un itérateur à la fin.

Liste de paramètres

iterator

L'itérateur à ajouter.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec AppendIterator::append()

<?php
$array_a = new ArrayIterator(array('a', 'b', 'c'));
$array_b = new ArrayIterator(array('d', 'e', 'f'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $current) {
    echo $current;
}
?>

L'exemple ci-dessus va afficher :

abcdef

Voir aussi

  • AppendIterator::__construct() - Construit un objet AppendIterator


Construit un objet AppendIterator

  • « AppendIterator::append
  • AppendIterator::current »
  • PHP Manual
  • AppendIterator
  • Construit un objet AppendIterator

AppendIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::__construct — Construit un objet AppendIterator

Description

public AppendIterator::__construct ( void )

Construit un objet AppendIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Itère un AppendIterator avec la structure foreach

<?php
$pizzas   = new ArrayIterator(array('Margarita', 'Siciliana', 'Hawaii'));
$toppings = new ArrayIterator(array('Cheese', 'Anchovies', 'Olives', 'Pineapple', 'Ham'));

$appendIterator = new AppendIterator;
$appendIterator->append($pizzas);
$appendIterator->append($toppings);

foreach ($appendIterator as $key => $item) {
    echo $key . ' => ' . $item . PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

0 => Margarita
1 => Siciliana
2 => Hawaii
0 => Cheese
1 => Anchovies
2 => Olives
3 => Pineapple
4 => Ham

Exemple #2 Itère un AppendIterator avec l'API AppendIterator

<?php
$pizzas   = new ArrayIterator(array('Margarita', 'Siciliana', 'Hawaii'));
$toppings = new ArrayIterator(array('Cheese', 'Anchovies', 'Olives', 'Pineapple', 'Ham'));

$appendIterator = new AppendIterator;
$appendIterator->append($pizzas);
$appendIterator->append($toppings);

while ($appendIterator->valid()) {
    printf(
        '%s => %s => %s%s',
        $appendIterator->getIteratorIndex(),
        $appendIterator->key(),
        $appendIterator->current(),
        PHP_EOL
    );
    $appendIterator->next();
}
?>

L'exemple ci-dessus va afficher :

0 => 0 => Margarita
0 => 1 => Siciliana
0 => 2 => Hawaii
1 => 0 => Cheese
1 => 1 => Anchovies
1 => 2 => Olives
1 => 3 => Pineapple
1 => 4 => Ham

Notes

Attention

Lors de l'utilisation de iterator_to_array() pour copier les valeurs d'un AppendIterator dans un tableau, vous devez définir le paramètre optionnel use_key à FALSE. Lorsque use_key ne vaut pas FALSE, toutes les clés survenant de nouveaux dans l'itérateur inférieur seront écrasées dans le tableau résultant. Il n'y a aucun moyen de préserver les clés originales.

Voir aussi

  • AppendIterator::append() - Ajoute un itérateur à la fin


Lit la valeur courante

  • « AppendIterator::__construct
  • AppendIterator::getArrayIterator »
  • PHP Manual
  • AppendIterator
  • Lit la valeur courante

AppendIterator::current

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::current — Lit la valeur courante

Description

public mixed AppendIterator::current ( void )

Lit la valeur courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur courante si elle est valide, et NULL sinon.

Voir aussi

  • Iterator::current() - Retourne l'élément courant
  • AppendIterator::key() - Lit la clé courante
  • AppendIterator::valid() - Vérifie la validité de l'élément courant
  • AppendIterator::next() - Passe à l'élément suivant
  • AppendIterator::rewind() - Remet l'itérateur au début


Récupère le ArrayIterator

  • « AppendIterator::current
  • AppendIterator::getInnerIterator »
  • PHP Manual
  • AppendIterator
  • Récupère le ArrayIterator

AppendIterator::getArrayIterator

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::getArrayIterator — Récupère le ArrayIterator

Description

public ArrayIterator AppendIterator::getArrayIterator ( void )

Cette méthode récupère l'intance de la classe ArrayIterator qui est utilisé pour stocker les itérateurs ajoutés avec la méthode AppendIterator::append().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un ArrayIterator contenant les itérateurs ajoutés.

Voir aussi

  • AppendIterator::getInnerIterator() - Lit l'itérateur interne


Lit l'itérateur interne

  • « AppendIterator::getArrayIterator
  • AppendIterator::getIteratorIndex »
  • PHP Manual
  • AppendIterator
  • Lit l'itérateur interne

AppendIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::getInnerIterator — Lit l'itérateur interne

Description

public Iterator AppendIterator::getInnerIterator ( void )

Cette méthode retourne l'itérateur interne courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur interne courant, ou NULL s'il n'y en a pas.

Exemples

Exemple #1 Exemple avec AppendIterator::getInnerIterator()

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new RegexIterator($array_a, '/^[ac]/');

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $current) {
    $inner = $iterator->getInnerIterator();
    if ($inner instanceOf RegexIterator) {
        echo 'Filtré : ';
    } else {
        echo 'Original : ';
    }
    echo $current . PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

Original : aardwolf
Original : bear
Original : capybara
Filtré : aardwolf
Filtré : capybara

Voir aussi

  • AppendIterator::getIteratorIndex() - Lit l'index d'un itérateur


Lit l'index d'un itérateur

  • « AppendIterator::getInnerIterator
  • AppendIterator::key »
  • PHP Manual
  • AppendIterator
  • Lit l'index d'un itérateur

AppendIterator::getIteratorIndex

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::getIteratorIndex — Lit l'index d'un itérateur

Description

public int AppendIterator::getIteratorIndex ( void )

Lit l'index de l'itérateur courant interne.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier, qui représente l'index, commençant à 0, de l'itérateur courant.

Exemples

Exemple #1 Exemple avec AppendIterator.getIteratorIndex()

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new ArrayIterator(array('apple', 'orange', 'lemon'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $key => $current) {
    echo $iterator->getIteratorIndex() . '  ' . $key . ' ' . $current . PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

0  a aardwolf
0  b bear
0  c capybara
1  0 apple
1  1 orange
1  2 lemon

Voir aussi

  • AppendIterator::getInnerIterator() - Lit l'itérateur interne
  • AppendIterator::getArrayIterator() - Récupère le ArrayIterator


Lit la clé courante

  • « AppendIterator::getIteratorIndex
  • AppendIterator::next »
  • PHP Manual
  • AppendIterator
  • Lit la clé courante

AppendIterator::key

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::key — Lit la clé courante

Description

public scalar AppendIterator::key ( void )

Lit la clé courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé courante si c'est possible, et NULL sinon.

Exemples

Exemple #1 Exemple avec AppendIterator::key()

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new ArrayIterator(array('apple', 'orange', 'lemon'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

// Itération manuelle
$iterator->rewind();
while ($iterator->valid()) {
    echo $iterator->key() . ' ' . $iterator->current() . PHP_EOL;
    $iterator->next();
}

echo PHP_EOL;

// Avec foreach
foreach ($iterator as $key => $current) {
    echo $key . ' ' . $current . PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

a aardwolf
b bear
c capybara
0 apple
1 orange
2 lemon

a aardwolf
b bear
c capybara
0 apple
1 orange
2 lemon

Voir aussi

  • Iterator::key() - Retourne la clé de l'élément courant
  • AppendIterator::current() - Lit la valeur courante
  • AppendIterator::valid() - Vérifie la validité de l'élément courant
  • AppendIterator::next() - Passe à l'élément suivant
  • AppendIterator::rewind() - Remet l'itérateur au début


Passe à l'élément suivant

  • « AppendIterator::key
  • AppendIterator::rewind »
  • PHP Manual
  • AppendIterator
  • Passe à l'élément suivant

AppendIterator::next

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::next — Passe à l'élément suivant

Description

public void AppendIterator::next ( void )

Passe à l'élément suivant. Si le prochain élément est un autre itérateur, alors il remet cet itérateur à zéro.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Iterator::next() - Se déplace sur l'élément suivant
  • AppendIterator::current() - Lit la valeur courante
  • AppendIterator::key() - Lit la clé courante
  • AppendIterator::valid() - Vérifie la validité de l'élément courant
  • AppendIterator::rewind() - Remet l'itérateur au début


Remet l'itérateur au début

  • « AppendIterator::next
  • AppendIterator::valid »
  • PHP Manual
  • AppendIterator
  • Remet l'itérateur au début

AppendIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::rewind — Remet l'itérateur au début

Description

public void AppendIterator::rewind ( void )

Remet l'itérateur au premier élément.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Iterator::rewind() - Replace l'itérateur sur le premier élément
  • AppendIterator::current() - Lit la valeur courante
  • AppendIterator::key() - Lit la clé courante
  • AppendIterator::next() - Passe à l'élément suivant
  • AppendIterator::valid() - Vérifie la validité de l'élément courant


Vérifie la validité de l'élément courant

  • « AppendIterator::rewind
  • ArrayIterator »
  • PHP Manual
  • AppendIterator
  • Vérifie la validité de l'élément courant

AppendIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::valid — Vérifie la validité de l'élément courant

Description

public bool AppendIterator::valid ( void )

Vérifie la validité de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'itérateur courant est valide, FALSE sinon.

Voir aussi

  • AppendIterator::current() - Lit la valeur courante
  • AppendIterator::key() - Lit la clé courante
  • AppendIterator::next() - Passe à l'élément suivant
  • AppendIterator::rewind() - Remet l'itérateur au début


La classe ArrayIterator

(PHP 5, PHP 7)

Introduction

Cet itérateur permet de réinitialiser et de modifier les valeurs et les clés lors de l'itération de tableaux et d'objets.

Lorsque vous voulez passer en revue le même tableau plusieurs fois, vous devez instancier ArrayObject et le laisser créer les objets ArrayIterator qui s'y réfèrent, soit en utilisant l'instruction foreach, soit en appelant la méthode getIterator()() manuellement.

Synopsis de la classe

ArrayIterator implements ArrayAccess , SeekableIterator , Countable , Serializable {
/* Méthodes */
public void append ( mixed $value )
public void asort ( void )
public __construct ([ mixed $array = array() [, int $flags = 0 ]] )
public int count ( void )
public mixed current ( void )
public array getArrayCopy ( void )
public void getFlags ( void )
public mixed key ( void )
public void ksort ( void )
public void natcasesort ( void )
public void natsort ( void )
public void next ( void )
public void offsetExists ( string $index )
public mixed offsetGet ( string $index )
public void offsetSet ( string $index , string $newval )
public void offsetUnset ( string $index )
public void rewind ( void )
public void seek ( int $position )
public string serialize ( void )
public void setFlags ( string $flags )
public void uasort ( string $cmp_function )
public void uksort ( string $cmp_function )
public string unserialize ( string $serialized )
public bool valid ( void )
}

Sommaire

  • ArrayIterator::append — Ajoute un élément
  • ArrayIterator::asort — Trie un tableau par les valeurs
  • ArrayIterator::__construct — Construit un ArrayIterator
  • ArrayIterator::count — Compte les éléments
  • ArrayIterator::current — Retourne l'entrée courante du tableau
  • ArrayIterator::getArrayCopy — Récupère la copie d'un tableau
  • ArrayIterator::getFlags — Récupère un comportement
  • ArrayIterator::key — Retourne la clé courante du tableau
  • ArrayIterator::ksort — Trie un tableau par les clés
  • ArrayIterator::natcasesort — Trie naturellement un tableau, en ne tenant pas compte de la casse
  • ArrayIterator::natsort — Trie naturellement un tableau
  • ArrayIterator::next — Se déplace vers la prochaine entrée
  • ArrayIterator::offsetExists — Vérifie si une position existe
  • ArrayIterator::offsetGet — Récupère la valeur pour une position
  • ArrayIterator::offsetSet — Définit la valeur d'une position
  • ArrayIterator::offsetUnset — Efface la valeur d'une position
  • ArrayIterator::rewind — Revient à la position initiale
  • ArrayIterator::seek — Avance à une position donnée
  • ArrayIterator::serialize — Linéarisation
  • ArrayIterator::setFlags — Définit des comportements
  • ArrayIterator::uasort — Tri défini par l'utilisateur
  • ArrayIterator::uksort — Trie défini par l'utilisateur
  • ArrayIterator::unserialize — Délinéarisation
  • ArrayIterator::valid — Vérifie si un tableau contient d'autres entrées


Ajoute un élément

  • « ArrayIterator
  • ArrayIterator::asort »
  • PHP Manual
  • ArrayIterator
  • Ajoute un élément

ArrayIterator::append

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::append — Ajoute un élément

Description

public void ArrayIterator::append ( mixed $value )

Ajoute une valeur comme dernier élément.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

value

La valeur à ajouter.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

Cette méthode ne peut être appelée lorsque ArrayIterator se réfère à un objet.

Voir aussi

  • ArrayIterator::next() - Se déplace vers la prochaine entrée


Trie un tableau par les valeurs

  • « ArrayIterator::append
  • ArrayIterator::__construct »
  • PHP Manual
  • ArrayIterator
  • Trie un tableau par les valeurs

ArrayIterator::asort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::asort — Trie un tableau par les valeurs

Description

public void ArrayIterator::asort ( void )

Trie un tableau par les valeurs.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ArrayIterator::ksort() - Trie un tableau par les clés
  • ArrayIterator::natcasesort() - Trie naturellement un tableau, en ne tenant pas compte de la casse
  • ArrayIterator::natsort() - Trie naturellement un tableau


Construit un ArrayIterator

  • « ArrayIterator::asort
  • ArrayIterator::count »
  • PHP Manual
  • ArrayIterator
  • Construit un ArrayIterator

ArrayIterator::__construct

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::__construct — Construit un ArrayIterator

Description

public ArrayIterator::__construct ([ mixed $array = array() [, int $flags = 0 ]] )

Construit un objet ArrayIterator.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

array

Le tableau ou l'objet à itérer.

flags

Drapeaux permettant de contrôler le comportement de l'objet ArrayIterator. Voir la documentation de la méthode ArrayIterator::setFlags().

Valeurs de retour

Un objet ArrayIterator.

Erreurs / Exceptions

ArrayIterator::__construct() émet une exception InvalidArgumentException si une variable autre qu'un tableau ou un objet est fourni.

Voir aussi

  • ArrayIterator::getArrayCopy() - Récupère la copie d'un tableau


Compte les éléments

  • « ArrayIterator::__construct
  • ArrayIterator::current »
  • PHP Manual
  • ArrayIterator
  • Compte les éléments

ArrayIterator::count

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::count — Compte les éléments

Description

public int ArrayIterator::count ( void )

Récupère le nombre d'éléments d'un tableau ou le nombre de propriétés publiques d'un objet..

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre d'éléments ou d'attributs publics du array associatif ou de l'object, respectivement.

Voir aussi

  • ArrayIterator::getFlags() - Récupère un comportement


Retourne l'entrée courante du tableau

  • « ArrayIterator::count
  • ArrayIterator::getArrayCopy »
  • PHP Manual
  • ArrayIterator
  • Retourne l'entrée courante du tableau

ArrayIterator::current

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::current — Retourne l'entrée courante du tableau

Description

public mixed ArrayIterator::current ( void )

Retourne l'entrée courante du tableau.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'entrée courante du tableau.

Exemples

Exemple #1 Exemple avec ArrayIterator::current()

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

for($iterator = $arrayobject->getIterator();
    $iterator->valid();
    $iterator->next()) {

    echo $iterator->key() . ' => ' . $iterator->current() . "\n";
}
?>

L'exemple ci-dessus va afficher :

1 => one
2 => two
3 => three


Récupère la copie d'un tableau

  • « ArrayIterator::current
  • ArrayIterator::getFlags »
  • PHP Manual
  • ArrayIterator
  • Récupère la copie d'un tableau

ArrayIterator::getArrayCopy

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::getArrayCopy — Récupère la copie d'un tableau

Description

public array ArrayIterator::getArrayCopy ( void )

Récupère la copie d'un tableau.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une copie d'un tableau, ou un tableau de propriétés publiques si ArrayIterator se réfère à un objet.

Voir aussi

  • ArrayIterator::valid() - Vérifie si un tableau contient d'autres entrées


Récupère un comportement

  • « ArrayIterator::getArrayCopy
  • ArrayIterator::key »
  • PHP Manual
  • ArrayIterator
  • Récupère un comportement

ArrayIterator::getFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayIterator::getFlags — Récupère un comportement

Description

public void ArrayIterator::getFlags ( void )

Récupère le comportement courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le comportement courant.

Voir aussi

  • ArrayIterator::valid() - Vérifie si un tableau contient d'autres entrées


Retourne la clé courante du tableau

  • « ArrayIterator::getFlags
  • ArrayIterator::ksort »
  • PHP Manual
  • ArrayIterator
  • Retourne la clé courante du tableau

ArrayIterator::key

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::key — Retourne la clé courante du tableau

Description

public mixed ArrayIterator::key ( void )

Retourne la clé courante du tableau.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé courante du tableau.

Exemples

Exemple #1 Exemple avec ArrayIterator::key()

<?php
$array = array('key' => 'value');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

echo $iterator->key(); //key
?>


Trie un tableau par les clés

  • « ArrayIterator::key
  • ArrayIterator::natcasesort »
  • PHP Manual
  • ArrayIterator
  • Trie un tableau par les clés

ArrayIterator::ksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::ksort — Trie un tableau par les clés

Description

public void ArrayIterator::ksort ( void )

Trie un tableau par les clés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ArrayIterator::asort() - Trie un tableau par les valeurs
  • ArrayIterator::natcasesort() - Trie naturellement un tableau, en ne tenant pas compte de la casse
  • ArrayIterator::natsort() - Trie naturellement un tableau


Trie naturellement un tableau, en ne tenant pas compte de la casse

  • « ArrayIterator::ksort
  • ArrayIterator::natsort »
  • PHP Manual
  • ArrayIterator
  • Trie naturellement un tableau, en ne tenant pas compte de la casse

ArrayIterator::natcasesort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::natcasesort — Trie naturellement un tableau, en ne tenant pas compte de la casse

Description

public void ArrayIterator::natcasesort ( void )

Trie les entrées par les valeurs, en utilisant un algorithme insensible à la casse d'ordre naturel.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ArrayIterator::asort() - Trie un tableau par les valeurs
  • ArrayIterator::ksort() - Trie un tableau par les clés
  • ArrayIterator::natsort() - Trie naturellement un tableau
  • natcasesort() - Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse


Trie naturellement un tableau

  • « ArrayIterator::natcasesort
  • ArrayIterator::next »
  • PHP Manual
  • ArrayIterator
  • Trie naturellement un tableau

ArrayIterator::natsort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::natsort — Trie naturellement un tableau

Description

public void ArrayIterator::natsort ( void )

Trie les entrées par les valeurs, en utilisant l'algorithme d'ordre naturel.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ArrayIterator::asort() - Trie un tableau par les valeurs
  • ArrayIterator::ksort() - Trie un tableau par les clés
  • ArrayIterator::natcasesort() - Trie naturellement un tableau, en ne tenant pas compte de la casse
  • natsort() - Trie un tableau avec l'algorithme à "ordre naturel"


Se déplace vers la prochaine entrée

  • « ArrayIterator::natsort
  • ArrayIterator::offsetExists »
  • PHP Manual
  • ArrayIterator
  • Se déplace vers la prochaine entrée

ArrayIterator::next

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::next — Se déplace vers la prochaine entrée

Description

public void ArrayIterator::next ( void )

Se déplace vers la prochaine entrée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayIterator::next()

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

L'exemple ci-dessus va afficher :

0 => zero
1 => one


Vérifie si une position existe

  • « ArrayIterator::next
  • ArrayIterator::offsetGet »
  • PHP Manual
  • ArrayIterator
  • Vérifie si une position existe

ArrayIterator::offsetExists

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::offsetExists — Vérifie si une position existe

Description

public void ArrayIterator::offsetExists ( string $index )

Vérifie si une position existe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

La position à vérifier.

Valeurs de retour

TRUE si la position existe, FALSE sinon.

Voir aussi

  • ArrayIterator::valid() - Vérifie si un tableau contient d'autres entrées


Récupère la valeur pour une position

  • « ArrayIterator::offsetExists
  • ArrayIterator::offsetSet »
  • PHP Manual
  • ArrayIterator
  • Récupère la valeur pour une position

ArrayIterator::offsetGet

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::offsetGet — Récupère la valeur pour une position

Description

public mixed ArrayIterator::offsetGet ( string $index )

Récupère la valeur pour une position donnée.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

La position dont on doit récupérer la valeur.

Valeurs de retour

La valeur à la position index.

Voir aussi

  • ArrayIterator::offsetSet() - Définit la valeur d'une position
  • ArrayIterator::offsetUnSet() - Efface la valeur d'une position


Définit la valeur d'une position

  • « ArrayIterator::offsetGet
  • ArrayIterator::offsetUnset »
  • PHP Manual
  • ArrayIterator
  • Définit la valeur d'une position

ArrayIterator::offsetSet

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::offsetSet — Définit la valeur d'une position

Description

public void ArrayIterator::offsetSet ( string $index , string $newval )

Définit la valeur pour une position donnée.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

L'index à définir.

newval

La nouvelle valeur à stocker à l'index donné.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ArrayIterator::offsetGet() - Récupère la valeur pour une position
  • ArrayIterator::offsetUnset() - Efface la valeur d'une position


Efface la valeur d'une position

  • « ArrayIterator::offsetSet
  • ArrayIterator::rewind »
  • PHP Manual
  • ArrayIterator
  • Efface la valeur d'une position

ArrayIterator::offsetUnset

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::offsetUnset — Efface la valeur d'une position

Description

public void ArrayIterator::offsetUnset ( string $index )

Efface la valeur d'une position.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

La position à effacer.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ArrayIterator::offsetGet() - Récupère la valeur pour une position
  • ArrayIterator::offsetSet() - Définit la valeur d'une position


Revient à la position initiale

  • « ArrayIterator::offsetUnset
  • ArrayIterator::seek »
  • PHP Manual
  • ArrayIterator
  • Revient à la position initiale

ArrayIterator::rewind

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::rewind — Revient à la position initiale

Description

public void ArrayIterator::rewind ( void )

Revient à la position initiale.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayIterator::rewind()

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';
$arrayobject[] = 'two';

$iterator = $arrayobject->getIterator();

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); // revient au début
echo $iterator->key(); //0
?>


Avance à une position donnée

  • « ArrayIterator::rewind
  • ArrayIterator::serialize »
  • PHP Manual
  • ArrayIterator
  • Avance à une position donnée

ArrayIterator::seek

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::seek — Avance à une position donnée

Description

public void ArrayIterator::seek ( int $position )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

position

La position désirée.

Valeurs de retour

Aucune valeur n'est retournée.


Linéarisation

  • « ArrayIterator::seek
  • ArrayIterator::setFlags »
  • PHP Manual
  • ArrayIterator
  • Linéarisation

ArrayIterator::serialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayIterator::serialize — Linéarisation

Description

public string ArrayIterator::serialize ( void )

Linéarisation.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un ArrayIterator, linéarisé.

Voir aussi

  • ArrayIterator::unserialize() - Délinéarisation


Définit des comportements

  • « ArrayIterator::serialize
  • ArrayIterator::uasort »
  • PHP Manual
  • ArrayIterator
  • Définit des comportements

ArrayIterator::setFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayIterator::setFlags — Définit des comportements

Description

public void ArrayIterator::setFlags ( string $flags )

Définit des comportements.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flags

Un masque, comme suit :

  • 0 = Les propriétés d'un objet ont leur fonctionnalité normale lorsqu'on y accède comme des listes (var_dump, foreach, etc.).
  • 1 = Les indices d'un tableau peuvent être accédés comme des propriétés en mode lecture/écriture.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ArrayIterator::getFlags() - Récupère un comportement


Tri défini par l'utilisateur

  • « ArrayIterator::setFlags
  • ArrayIterator::uksort »
  • PHP Manual
  • ArrayIterator
  • Tri défini par l'utilisateur

ArrayIterator::uasort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::uasort — Tri défini par l'utilisateur

Description

public void ArrayIterator::uasort ( string $cmp_function )

Trie les entrées par les valeurs, en utilisant une fonction définie par l'utilisateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

cmp_function

La fonction de comparaison à utiliser pour le tri.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ArrayIterator::uksort() - Trie défini par l'utilisateur
  • usort() - Trie un tableau en utilisant une fonction de comparaison


Trie défini par l'utilisateur

  • « ArrayIterator::uasort
  • ArrayIterator::unserialize »
  • PHP Manual
  • ArrayIterator
  • Trie défini par l'utilisateur

ArrayIterator::uksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::uksort — Trie défini par l'utilisateur

Description

public void ArrayIterator::uksort ( string $cmp_function )

Trie les entrées par les clés, en utilisant une fonction définie par l'utilisateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

cmp_function

La fonction de comparaison pour le tri.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ArrayIterator::uasort() - Tri défini par l'utilisateur
  • uksort() - Trie un tableau par ses clés en utilisant une fonction de rappel


Délinéarisation

  • « ArrayIterator::uksort
  • ArrayIterator::valid »
  • PHP Manual
  • ArrayIterator
  • Délinéarisation

ArrayIterator::unserialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayIterator::unserialize — Délinéarisation

Description

public string ArrayIterator::unserialize ( string $serialized )

Délinéarisation.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

serialized

L'objet ArrayIterator linéarisé.

Valeurs de retour

The ArrayIterator.

Voir aussi

  • ArrayIterator::serialize() - Linéarisation


Vérifie si un tableau contient d'autres entrées

  • « ArrayIterator::unserialize
  • CachingIterator »
  • PHP Manual
  • ArrayIterator
  • Vérifie si un tableau contient d'autres entrées

ArrayIterator::valid

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::valid — Vérifie si un tableau contient d'autres entrées

Description

public bool ArrayIterator::valid ( void )

Vérifie si un tableau contient d'autres entrées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'itérateur est valide, FALSE sinon.

Exemples

Exemple #1 Exemple avec ArrayIterator::valid()

<?php
$array = array('1' => 'one');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

var_dump($iterator->valid()); //bool(true)

$iterator->next(); // avance au prochain élément

//bool(false) car il n'y a qu'un seul élément dans le tableau
var_dump($iterator->valid());
?>


La classe CachingIterator

(PHP 5, PHP 7)

Introduction

Cet objet supporte les itérations en cache sur un autre itérateur.

Synopsis de la classe

CachingIterator extends IteratorIterator implements OuterIterator , ArrayAccess , Countable {
/* Constantes */
const integer CALL_TOSTRING = 1 ;
const integer CATCH_GET_CHILD = 16 ;
const integer TOSTRING_USE_KEY = 2 ;
const integer TOSTRING_USE_CURRENT = 4 ;
const integer TOSTRING_USE_INNER = 8 ;
const integer FULL_CACHE = 256 ;
/* Méthodes */
public __construct ( Iterator $iterator [, int $flags = self::CALL_TOSTRING ] )
public int count ( void )
public void current ( void )
public array getCache ( void )
public int getFlags ( void )
public Iterator getInnerIterator ( void )
public void hasNext ( void )
public scalar key ( void )
public void next ( void )
public void offsetExists ( string $index )
public void offsetGet ( string $index )
public void offsetSet ( string $index , string $newval )
public void offsetUnset ( string $index )
public void rewind ( void )
public void setFlags ( int $flags )
public void __toString ( void )
public void valid ( void )
}

Constantes pré-définies

CachingIterator::CALL_TOSTRING

Convertit tous les éléments en chaines.

CachingIterator::CATCH_GET_CHILD

N'envoie aucune exception lors de la tentative d'accéder à un enfant.

CachingIterator::TOSTRING_USE_KEY

Utilise key lors de la conversion en chaine.

CachingIterator::TOSTRING_USE_CURRENT

Utilise current lors de la conversion en chaine.

CachingIterator::TOSTRING_USE_INNER

Utilise inner lors de la conversion en chaine.

CachingIterator::FULL_CACHE

Met en cache toutes les données lues.

Sommaire

  • CachingIterator::__construct — Construit un nouvel objet CachingIterator pour l'itérateur
  • CachingIterator::count — Le nombre d'éléments de l'itérateur
  • CachingIterator::current — Retourne l'élément courant
  • CachingIterator::getCache — Lit le contenu du cache
  • CachingIterator::getFlags — Lit les options utilisées
  • CachingIterator::getInnerIterator — Retourne l'itérateur sous-jacent
  • CachingIterator::hasNext — Vérifie si l'itérateur interne a un élément suivant valide
  • CachingIterator::key — Retourne l'index de l'élément courant
  • CachingIterator::next — Déplace l'itérateur à la position suivante
  • CachingIterator::offsetExists — Vérifie l'existence d'un offset
  • CachingIterator::offsetGet — L'élément à lire à la position donnée
  • CachingIterator::offsetSet — Affecte un nouvel élément à la position donnée
  • CachingIterator::offsetUnset — Détruit un élément à l'offset indiqué
  • CachingIterator::rewind — Replace l'itérateur au début
  • CachingIterator::setFlags — Modifie les options du CachingIterator
  • CachingIterator::__toString — Retourne la représentation de l'élément courant sous forme de chaîne
  • CachingIterator::valid — Vérifie si l'élément courant est valide


Construit un nouvel objet CachingIterator pour l'itérateur

  • « CachingIterator
  • CachingIterator::count »
  • PHP Manual
  • CachingIterator
  • Construit un nouvel objet CachingIterator pour l'itérateur

CachingIterator::__construct

(PHP 5, PHP 7)

CachingIterator::__construct — Construit un nouvel objet CachingIterator pour l'itérateur

Description

public CachingIterator::__construct ( Iterator $iterator [, int $flags = self::CALL_TOSTRING ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

Iterator à mettre en cache

flags

Champ d'options.


Le nombre d'éléments de l'itérateur

  • « CachingIterator::__construct
  • CachingIterator::current »
  • PHP Manual
  • CachingIterator
  • Le nombre d'éléments de l'itérateur

CachingIterator::count

(PHP 5 >= 5.2.2, PHP 7)

CachingIterator::count — Le nombre d'éléments de l'itérateur

Description

public int CachingIterator::count ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le nombre d'éléments de l'itérateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre d'éléments sur lequel travaille l'itérateur.


Retourne l'élément courant

  • « CachingIterator::count
  • CachingIterator::getCache »
  • PHP Manual
  • CachingIterator
  • Retourne l'élément courant

CachingIterator::current

(PHP 5, PHP 7)

CachingIterator::current — Retourne l'élément courant

Description

public void CachingIterator::current ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'élément courant de l'itération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Suivant le type de l'élément courant.

Voir aussi

  • Iterator::current() - Retourne l'élément courant


Lit le contenu du cache

  • « CachingIterator::current
  • CachingIterator::getFlags »
  • PHP Manual
  • CachingIterator
  • Lit le contenu du cache

CachingIterator::getCache

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::getCache — Lit le contenu du cache

Description

public array CachingIterator::getCache ( void )

Lit le contenu du cache.

Note:

Le drapeau CachingIterator::FULL_CACHE doit être utilisé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant les éléments du cache.

Erreurs / Exceptions

Lance une exception BadMethodCallException lorsque le drapeau CachingIterator::FULL_CACHE n'est pas utilisé.

Exemples

Exemple #1 Exemple avec CachingIterator::getCache()

<?php
$iterator = new ArrayIterator(array(1, 2, 3));
$cache    = new CachingIterator($iterator, CachingIterator::FULL_CACHE);

$cache->next();
$cache->next();
var_dump($cache->getCache());

$cache->next();
var_dump($cache->getCache());
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Lit les options utilisées

  • « CachingIterator::getCache
  • CachingIterator::getInnerIterator »
  • PHP Manual
  • CachingIterator
  • Lit les options utilisées

CachingIterator::getFlags

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::getFlags — Lit les options utilisées

Description

public int CachingIterator::getFlags ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Lit le champ d'options utilisé par cet objet CachingIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Description...


Retourne l'itérateur sous-jacent

  • « CachingIterator::getFlags
  • CachingIterator::hasNext »
  • PHP Manual
  • CachingIterator
  • Retourne l'itérateur sous-jacent

CachingIterator::getInnerIterator

(PHP 5, PHP 7)

CachingIterator::getInnerIterator — Retourne l'itérateur sous-jacent

Description

public Iterator CachingIterator::getInnerIterator ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne l'itérateur utilisé par le constructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet qui implémente l'interface Iterator.


Vérifie si l'itérateur interne a un élément suivant valide

  • « CachingIterator::getInnerIterator
  • CachingIterator::key »
  • PHP Manual
  • CachingIterator
  • Vérifie si l'itérateur interne a un élément suivant valide

CachingIterator::hasNext

(PHP 5, PHP 7)

CachingIterator::hasNext — Vérifie si l'itérateur interne a un élément suivant valide

Description

public void CachingIterator::hasNext ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne l'index de l'élément courant

  • « CachingIterator::hasNext
  • CachingIterator::next »
  • PHP Manual
  • CachingIterator
  • Retourne l'index de l'élément courant

CachingIterator::key

(PHP 5, PHP 7)

CachingIterator::key — Retourne l'index de l'élément courant

Description

public scalar CachingIterator::key ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Cette méthode retourne l'index de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Déplace l'itérateur à la position suivante

  • « CachingIterator::key
  • CachingIterator::offsetExists »
  • PHP Manual
  • CachingIterator
  • Déplace l'itérateur à la position suivante

CachingIterator::next

(PHP 5, PHP 7)

CachingIterator::next — Déplace l'itérateur à la position suivante

Description

public void CachingIterator::next ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Déplace l'itérateur à la position suivante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Vérifie l'existence d'un offset

  • « CachingIterator::next
  • CachingIterator::offsetGet »
  • PHP Manual
  • CachingIterator
  • Vérifie l'existence d'un offset

CachingIterator::offsetExists

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetExists — Vérifie l'existence d'un offset

Description

public void CachingIterator::offsetExists ( string $index )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

L'index qui est étudié.

Valeurs de retour

Retourne TRUE si un élément existe à la position indiquée, et FALSE sinon.


L'élément à lire à la position donnée

  • « CachingIterator::offsetExists
  • CachingIterator::offsetSet »
  • PHP Manual
  • CachingIterator
  • L'élément à lire à la position donnée

CachingIterator::offsetGet

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetGet — L'élément à lire à la position donnée

Description

public void CachingIterator::offsetGet ( string $index )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

L'index de l'élément à lire

Valeurs de retour

Description...


Affecte un nouvel élément à la position donnée

  • « CachingIterator::offsetGet
  • CachingIterator::offsetUnset »
  • PHP Manual
  • CachingIterator
  • Affecte un nouvel élément à la position donnée

CachingIterator::offsetSet

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetSet — Affecte un nouvel élément à la position donnée

Description

public void CachingIterator::offsetSet ( string $index , string $newval )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

L'index de l'élément à affecter.

newval

La nouvelle valeur de index.

Valeurs de retour

Aucune valeur n'est retournée.


Détruit un élément à l'offset indiqué

  • « CachingIterator::offsetSet
  • CachingIterator::rewind »
  • PHP Manual
  • CachingIterator
  • Détruit un élément à l'offset indiqué

CachingIterator::offsetUnset

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetUnset — Détruit un élément à l'offset indiqué

Description

public void CachingIterator::offsetUnset ( string $index )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

L'index de l'élément qui sera détruit.

Valeurs de retour

Aucune valeur n'est retournée.


Replace l'itérateur au début

  • « CachingIterator::offsetUnset
  • CachingIterator::setFlags »
  • PHP Manual
  • CachingIterator
  • Replace l'itérateur au début

CachingIterator::rewind

(PHP 5, PHP 7)

CachingIterator::rewind — Replace l'itérateur au début

Description

public void CachingIterator::rewind ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Replace l'itérateur au début.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Modifie les options du CachingIterator

  • « CachingIterator::rewind
  • CachingIterator::__toString »
  • PHP Manual
  • CachingIterator
  • Modifie les options du CachingIterator

CachingIterator::setFlags

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::setFlags — Modifie les options du CachingIterator

Description

public void CachingIterator::setFlags ( int $flags )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Modifie les options de l'itérateur CachingIterator.

Liste de paramètres

flags

Champ d'option à configurer.

Valeurs de retour

Aucune valeur n'est retournée.


Retourne la représentation de l'élément courant sous forme de chaîne

  • « CachingIterator::setFlags
  • CachingIterator::valid »
  • PHP Manual
  • CachingIterator
  • Retourne la représentation de l'élément courant sous forme de chaîne

CachingIterator::__toString

(PHP 5, PHP 7)

CachingIterator::__toString — Retourne la représentation de l'élément courant sous forme de chaîne

Description

public void CachingIterator::__toString ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la représentation de l'élément courant sous forme de chaîne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La représentation de l'élément courant.


Vérifie si l'élément courant est valide

  • « CachingIterator::__toString
  • CallbackFilterIterator »
  • PHP Manual
  • CachingIterator
  • Vérifie si l'élément courant est valide

CachingIterator::valid

(PHP 5, PHP 7)

CachingIterator::valid — Vérifie si l'élément courant est valide

Description

public void CachingIterator::valid ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie si l'élément courant est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


La classe CallbackFilterIterator

(PHP 5 >= 5.4.0, PHP 7)

Introduction

Synopsis de la classe

CallbackFilterIterator extends FilterIterator implements OuterIterator {
/* Méthodes */
public __construct ( Iterator $iterator , callable $callback )
public string accept ( void )
/* Méthodes héritées */
public abstract bool FilterIterator::accept ( void )
public FilterIterator::__construct ( Iterator $iterator )
public mixed FilterIterator::current ( void )
public Iterator FilterIterator::getInnerIterator ( void )
public mixed FilterIterator::key ( void )
public void FilterIterator::next ( void )
public void FilterIterator::rewind ( void )
public bool FilterIterator::valid ( void )
}

Exemples

La fonction de rappel doit accepter jusqu'à trois arguments : l'élément courant, la clé courante et l'itérateur courant, respectivement.

Exemple #1 Arguments disponibles pour la fonction de rappel

<?php

/**
 * Fonction de rappel pour CallbackFilterIterator
 *
 * @param $current   Valeur de l'élément courant
 * @param $key       Clé de l'élément courant
 * @param $iterator  Itérateur à filtrer
 * @return boolean   TRUE pour accepter l'élément courant, FALSE sinon
 */
function my_callback($current, $key, $iterator) {
    // Votre filtre ici
}

?>

N'importe quel callable peut être utilisé ; comme une chaîne de caractères contenant un nom de fonction, un tableau pour une méthode, ou une fonction anonyme.

Exemple #2 Exemples simples de fonction de rappel

<?php

$dir = new FilesystemIterator(__DIR__);

// Filtre les gros fichiers ( > 100MB)
function is_large_file($current) {
    return $current->isFile() && $current->getSize() > 104857600;
}
$large_files = new CallbackFilterIterator($dir, 'is_large_file');

// Filtre les dossiers
$files = new CallbackFilterIterator($dir, function ($current, $key, $iterator) {
    return $current->isDir() && ! $iterator->isDot();
});

?>

Sommaire

  • CallbackFilterIterator::accept — Appel la fonction de rappel avec la valeur courante, la clé courante, et l'itérateur interne comme arguments
  • CallbackFilterIterator::__construct — Crée un itérateur filtré depuis un autre itérateur


Appel la fonction de rappel avec la valeur courante, la clé courante, et l'itérateur interne comme arguments

  • « CallbackFilterIterator
  • CallbackFilterIterator::__construct »
  • PHP Manual
  • CallbackFilterIterator
  • Appel la fonction de rappel avec la valeur courante, la clé courante, et l'itérateur interne comme arguments

CallbackFilterIterator::accept

(PHP 5 >= 5.4.0, PHP 7)

CallbackFilterIterator::accept — Appel la fonction de rappel avec la valeur courante, la clé courante, et l'itérateur interne comme arguments

Description

public string CallbackFilterIterator::accept ( void )

Cette méthode appelle la fonction de rappel avec la valeur courante, la clé courante et l'itérateur interne.

La fonction de rappel doit retourner TRUE si l'élément courant est accepté, FALSE sinon.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE pour accepter l'élément courant, FALSE sinon.

Voir aussi

  • Exemple avec CallbackFilterIterator
  • CallbackFilterIterator::__construct() - Crée un itérateur filtré depuis un autre itérateur


Crée un itérateur filtré depuis un autre itérateur

  • « CallbackFilterIterator::accept
  • DirectoryIterator »
  • PHP Manual
  • CallbackFilterIterator
  • Crée un itérateur filtré depuis un autre itérateur

CallbackFilterIterator::__construct

(PHP 5 >= 5.4.0, PHP 7)

CallbackFilterIterator::__construct — Crée un itérateur filtré depuis un autre itérateur

Description

public CallbackFilterIterator::__construct ( Iterator $iterator , callable $callback )

Crée un itérateur filtré en utilisant la fonction de rappel callback pour déterminer quels éléments sont acceptés ou rejetés.

Liste de paramètres

iterator

L'itérateur à filtrer.

callback

La fonction de rappel, qui doit retourner TRUE pour accepter l'élément courant, FALSE sinon. Voir aussi les exemples.

Peut être n'importe quelle valeur vaide de type callable.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Exemples avec CallbackFilterIterator
  • CallbackFilterIterator::accept() - Appel la fonction de rappel avec la valeur courante, la clé courante, et l'itérateur interne comme arguments


La classe DirectoryIterator

(PHP 5, PHP 7)

Introduction

La classe DirectoryIterator fournit une interface simple pour lire le contenu d'un système de fichiers.

Synopsis de la classe

DirectoryIterator extends SplFileInfo implements SeekableIterator {
/* Méthodes */
public __construct ( string $path )
public DirectoryIterator current ( void )
public int getATime ( void )
public string getBasename ([ string $suffix ] )
public int getCTime ( void )
public string getExtension ( void )
public string getFilename ( void )
public int getGroup ( void )
public int getInode ( void )
public int getMTime ( void )
public int getOwner ( void )
public string getPath ( void )
public string getPathname ( void )
public int getPerms ( void )
public int getSize ( void )
public string getType ( void )
public bool isDir ( void )
public bool isDot ( void )
public bool isExecutable ( void )
public bool isFile ( void )
public bool isLink ( void )
public bool isReadable ( void )
public bool isWritable ( void )
publicstring key ( void )
publicvoid next ( void )
public void rewind ( void )
public void seek ( int $position )
public string __toString ( void )
public bool valid ( void )
}

Historique

Version | Description
5.1.2 | DirectoryIterator étend SplFileInfo.

Sommaire

  • DirectoryIterator::__construct — Construit un nouvel itérateur de dossier à partir d'un chemin
  • DirectoryIterator::current — Retourne l'élément courant du DirectoryIterator
  • DirectoryIterator::getATime — Lit la date et l'heure du dernier accès à un fichier
  • DirectoryIterator::getBasename — Lit le nom de dossier de l'élément DirectoryIterator
  • DirectoryIterator::getCTime — Récupère l'heure de création de l'inode d'un fichier
  • DirectoryIterator::getExtension — Récupère l'extension du fichier
  • DirectoryIterator::getFilename — Retourne le nom de l'entrée courante du dossier
  • DirectoryIterator::getGroup — Récupère le groupe d'un fichier
  • DirectoryIterator::getInode — Récupère l'inode d'un fichier
  • DirectoryIterator::getMTime — Récupère l'heure de la dernière modification d'un fichier
  • DirectoryIterator::getOwner — Récupère le propriétaire d'un fichier
  • DirectoryIterator::getPath — Retourne le chemin du dossier
  • DirectoryIterator::getPathname — Retourne le chemin et le nom de l'entrée courante du dossier
  • DirectoryIterator::getPerms — Récupère les permissions d'un fichier
  • DirectoryIterator::getSize — Récupère la taille d'un fichier
  • DirectoryIterator::getType — Récupère le type d'un fichier
  • DirectoryIterator::isDir — Vérifie si un fichier est un dossier
  • DirectoryIterator::isDot — Retourne TRUE si l'entrée courante est '.' ou '..'
  • DirectoryIterator::isExecutable — Vérifie si le fichier est exécutable
  • DirectoryIterator::isFile — Vérifie si l'entrée est un fichier normal
  • DirectoryIterator::isLink — Vérifie si le fichier est un lien symbolique
  • DirectoryIterator::isReadable — Vérifie si le fichier est accessible en lecture
  • DirectoryIterator::isWritable — Vérifie si le fichier peut être modifié
  • DirectoryIterator::key — Retourne l'entrée courante du dossier
  • DirectoryIterator::next — Se déplace vers la prochaine entrée
  • DirectoryIterator::rewind — Revient au début du dossier
  • DirectoryIterator::seek — Déplace le pointeur dans un itérateur DirectoryIterator
  • DirectoryIterator::__toString — Lit le nom du fichier
  • DirectoryIterator::valid — Vérifie si le répertoire contient encore des entrées


Construit un nouvel itérateur de dossier à partir d'un chemin

  • « DirectoryIterator
  • DirectoryIterator::current »
  • PHP Manual
  • DirectoryIterator
  • Construit un nouvel itérateur de dossier à partir d'un chemin

DirectoryIterator::__construct

(PHP 5, PHP 7)

DirectoryIterator::__construct — Construit un nouvel itérateur de dossier à partir d'un chemin

Description

public DirectoryIterator::__construct ( string $path )

Construit un nouvel itérateur de dossier à partir d'un chemin.

Liste de paramètres

path

Le chemin du dossier à parcourir.

Erreurs / Exceptions

Émet une exception UnexpectedValueException si le paramètre path ne peut pas être ouvert.

Émet une exception RuntimeException si le paramètre path est une chaîne vide.

Historique

Version | Description
5.3.0 | Émet une exception UnexpectedValueException si le paramètre path ne peut être ouvert.
5.1.3 | Émet une exception RuntimeException si le paramètre path est une chaîne vide.
5.1.0 | Émet une exception RuntimeException en cas d'erreur. Précédemment, une exception Exception était lancée.

Exemples

Exemple #1 Exemple avec DirectoryIterator::__construct()

Cet exemple va lister le contenu du dossier qui contient le script.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if (!$fileinfo->isDot()) {
        var_dump($fileinfo->getFilename());
    }
}
?>

Voir aussi

  • SplFileInfo
  • Iterator


Retourne l'élément courant du DirectoryIterator

  • « DirectoryIterator::__construct
  • DirectoryIterator::getATime »
  • PHP Manual
  • DirectoryIterator
  • Retourne l'élément courant du DirectoryIterator

DirectoryIterator::current

(PHP 5, PHP 7)

DirectoryIterator::current — Retourne l'élément courant du DirectoryIterator

Description

public DirectoryIterator DirectoryIterator::current ( void )

Retourne l'élément courant du DirectoryIterator

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'élément courant du DirectoryIterator

Exemples

Exemple #1 Exemple avec DirectoryIterator::current()

Cet exemple liste tout le contenu du dossier courant.

<?php
$iterator = new DirectoryIterator(__DIR__);
while($iterator->valid()) {
    $file = $iterator->current();
    echo $iterator->key() . " => " . $file->getFilename() . "\n";
    $iterator->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0 => .
1 => ..
2 => apple.jpg
3 => banana.jpg
4 => index.php
5 => pear.jpg

Voir aussi

  • DirectoryIterator::key() - Retourne l'entrée courante du dossier
  • DirectoryIterator::next() - Se déplace vers la prochaine entrée
  • DirectoryIterator::rewind() - Revient au début du dossier
  • DirectoryIterator::valid() - Vérifie si le répertoire contient encore des entrées
  • Iterator::current() - Retourne l'élément courant


Lit la date et l'heure du dernier accès à un fichier

  • « DirectoryIterator::current
  • DirectoryIterator::getBasename »
  • PHP Manual
  • DirectoryIterator
  • Lit la date et l'heure du dernier accès à un fichier

DirectoryIterator::getATime

(PHP 5, PHP 7)

DirectoryIterator::getATime — Lit la date et l'heure du dernier accès à un fichier

Description

public int DirectoryIterator::getATime ( void )

Récupère la date et l'heure du dernier accès au fichier courant de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La date et l'heure du dernier accès au fichier, sous forme de timestamp Unix.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getATime()

Affiche la liste des fichiers dans le dossier courant, avec leur date d'accès.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " " . $fileinfo->getATime() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg 1240047118
banana.jpg 1240065176
index.php 1240047208
pear.jpg 12240047979

Voir aussi

  • DirectoryIterator::getCTime() - Récupère l'heure de création de l'inode d'un fichier
  • DirectoryIterator::getMTime() - Récupère l'heure de la dernière modification d'un fichier
  • fileatime() - Renvoie la date à laquelle le fichier a été accédé pour la dernière fois


Lit le nom de dossier de l'élément DirectoryIterator

  • « DirectoryIterator::getATime
  • DirectoryIterator::getCTime »
  • PHP Manual
  • DirectoryIterator
  • Lit le nom de dossier de l'élément DirectoryIterator

DirectoryIterator::getBasename

(PHP 5 >= 5.2.2, PHP 7)

DirectoryIterator::getBasename — Lit le nom de dossier de l'élément DirectoryIterator

Description

public string DirectoryIterator::getBasename ([ string $suffix ] )

Lit le nom de dossier de l'élément DirectoryIterator.

Liste de paramètres

suffix

Si le nom du dossier se termine par le suffixe suffix, il sera retiré.

Valeurs de retour

Le nom du dossier courant.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getBasename()

Cet exemple va retourner le chemin complet et le nom de dossier sans le suffixe .jpg, pour les fichiers dans le dossier contenant le script.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getBasename() . "\n";
        echo $fileinfo->getBasename('.jpg') . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg
apple
banana.jpg
banana
index.php
index.php
pear.jpg
pear

Voir aussi

  • DirectoryIterator::getFilename() - Retourne le nom de l'entrée courante du dossier
  • DirectoryIterator::getPath() - Retourne le chemin du dossier
  • DirectoryIterator::getPathname() - Retourne le chemin et le nom de l'entrée courante du dossier
  • basename() - Retourne le nom de la composante finale d'un chemin
  • pathinfo() - Retourne des informations sur un chemin système


Récupère l'heure de création de l'inode d'un fichier

  • « DirectoryIterator::getBasename
  • DirectoryIterator::getExtension »
  • PHP Manual
  • DirectoryIterator
  • Récupère l'heure de création de l'inode d'un fichier

DirectoryIterator::getCTime

(PHP 5, PHP 7)

DirectoryIterator::getCTime — Récupère l'heure de création de l'inode d'un fichier

Description

public int DirectoryIterator::getCTime ( void )

Récupère l'heure de modification du fichier courant de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la date de dernière modification du fichier, sous forme de timestamp Unix.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getCTime()

Cet exemple montre comment afficher le nom du fichier et la date de dernière modification dans le dossier courant.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " modifié à " . $fileinfo->getCTime() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg modifié à 1240398312
banana.jpg modifié à 1238605440
index.php modifié à 1240398935
pear.jpg modifié à 1237423740

Voir aussi

  • DirectoryIterator::getATime() - Lit la date et l'heure du dernier accès à un fichier
  • DirectoryIterator::getMTime() - Récupère l'heure de la dernière modification d'un fichier
  • filectime() - Renvoie la date de dernière modification de l'inode d'un fichier


Récupère l'extension du fichier

  • « DirectoryIterator::getCTime
  • DirectoryIterator::getFilename »
  • PHP Manual
  • DirectoryIterator
  • Récupère l'extension du fichier

DirectoryIterator::getExtension

(PHP 5 >= 5.3.6, PHP 7)

DirectoryIterator::getExtension — Récupère l'extension du fichier

Description

public string DirectoryIterator::getExtension ( void )

Récupère l'extension du fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant l'extension du fichier, ou une chaîne de caractères vide si le fichier n'a pas d'extension.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getExtension()

<?php

$directory = new DirectoryIterator(__DIR__);
foreach ($directory as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getExtension() . "\n";
    }
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

php
txt
jpg
gz

Notes

Note:

Cette méthode n'est disponible que depuis PHP 5.3.6. Une autre façon d'obtenir l'extension est d'utiliser la fonction pathinfo().

<?php
$extension = pathinfo($fileinfo->getFilename(), PATHINFO_EXTENSION);
?>

Voir aussi

  • DirectoryIterator::getFilename() - Retourne le nom de l'entrée courante du dossier
  • DirectoryIterator::getBasename() - Lit le nom de dossier de l'élément DirectoryIterator
  • pathinfo() - Retourne des informations sur un chemin système


Retourne le nom de l'entrée courante du dossier

  • « DirectoryIterator::getExtension
  • DirectoryIterator::getGroup »
  • PHP Manual
  • DirectoryIterator
  • Retourne le nom de l'entrée courante du dossier

DirectoryIterator::getFilename

(PHP 5, PHP 7)

DirectoryIterator::getFilename — Retourne le nom de l'entrée courante du dossier

Description

public string DirectoryIterator::getFilename ( void )

Retourne le nom de l'entrée courante de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du fichier courant dans l'itérateur DirectoryIterator.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getFilename()

Cet exemple liste le contenu du dossier contenant le script.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    echo $fileinfo->getFilename() . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Voir aussi

  • DirectoryIterator::getBasename() - Lit le nom de dossier de l'élément DirectoryIterator
  • DirectoryIterator::getPath() - Retourne le chemin du dossier
  • DirectoryIterator::getPathname() - Retourne le chemin et le nom de l'entrée courante du dossier
  • pathinfo() - Retourne des informations sur un chemin système


Récupère le groupe d'un fichier

  • « DirectoryIterator::getFilename
  • DirectoryIterator::getInode »
  • PHP Manual
  • DirectoryIterator
  • Récupère le groupe d'un fichier

DirectoryIterator::getGroup

(PHP 5, PHP 7)

DirectoryIterator::getGroup — Récupère le groupe d'un fichier

Description

public int DirectoryIterator::getGroup ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère le groupe d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'identifiant du groupe du fichier courant dans l'itérateur DirectoryIterator, au format numérique.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getGroup()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
$groupid  = $iterator->getGroup();
echo 'Le dossier appartient au groupe ' . $groupid . "\n";
print_r(posix_getgrgid($groupid));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le dossier appartient au groupe 42
Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Voir aussi

  • DirectoryIterator::getiNode() - Récupère l'inode d'un fichier
  • DirectoryIterator::getOwner() - Récupère le propriétaire d'un fichier
  • DirectoryIterator::getPerms() - Récupère les permissions d'un fichier
  • filegroup() - Lire le nom du groupe
  • posix_getgrgid() - Retourne des informations sur un groupe


Récupère l'inode d'un fichier

  • « DirectoryIterator::getGroup
  • DirectoryIterator::getMTime »
  • PHP Manual
  • DirectoryIterator
  • Récupère l'inode d'un fichier

DirectoryIterator::getInode

(PHP 5, PHP 7)

DirectoryIterator::getInode — Récupère l'inode d'un fichier

Description

public int DirectoryIterator::getInode ( void )

Récupère l'inode d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro d'inode du fichier.

Exemples

Exemple #1 Exemple avec sDirectoryIterator::getInode()

Cet exemple affiche le numéro d'inode du dossier contenant le script.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
echo $iterator->getInode();
?>

Voir aussi

  • DirectoryIterator::getGroup() - Récupère le groupe d'un fichier
  • DirectoryIterator::getOwner() - Récupère le propriétaire d'un fichier
  • DirectoryIterator::getPerms() - Récupère les permissions d'un fichier
  • fileinode() - Lit le numéro d'inode du fichier


Récupère l'heure de la dernière modification d'un fichier

  • « DirectoryIterator::getInode
  • DirectoryIterator::getOwner »
  • PHP Manual
  • DirectoryIterator
  • Récupère l'heure de la dernière modification d'un fichier

DirectoryIterator::getMTime

(PHP 5, PHP 7)

DirectoryIterator::getMTime — Récupère l'heure de la dernière modification d'un fichier

Description

public int DirectoryIterator::getMTime ( void )

Récupère l'heure de la dernière modification du fichier courant de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La date de dernière modification du fichier, sous forme de timestamp Unix.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getMTime()

Affiche la liste de fichiers du dossier, avec leur date de modification.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " " . $fileinfo->getMTime() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg 1240047118
banana.jpg 1240065176
index.php 1240047208
pear.jpg 12240047979

Voir aussi

  • DirectoryIterator::getATime() - Lit la date et l'heure du dernier accès à un fichier
  • DirectoryIterator::getCTime() - Récupère l'heure de création de l'inode d'un fichier
  • filemtime() - Lit la date de dernière modification du fichier


Récupère le propriétaire d'un fichier

  • « DirectoryIterator::getMTime
  • DirectoryIterator::getPath »
  • PHP Manual
  • DirectoryIterator
  • Récupère le propriétaire d'un fichier

DirectoryIterator::getOwner

(PHP 5, PHP 7)

DirectoryIterator::getOwner — Récupère le propriétaire d'un fichier

Description

public int DirectoryIterator::getOwner ( void )

Récupère le propriétaire du fichier courant de l'itérateur DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du propriétaire du fichier, au format numérique.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getOwner()

Cet exemple affiche le propriétaire d'un fichier, dans le dossier courant.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
print_r(posix_getpwuid($iterator->getOwner()));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name] => tom
    [passwd] => x
    [uid] => 501
    [gid] => 42
    [gecos] => Tom Cat
    [dir] => /home/tom
    [shell] => /bin/bash
)

Voir aussi

  • DirectoryIterator::getGroup() - Récupère le groupe d'un fichier
  • DirectoryIterator::getiNode() - Récupère l'inode d'un fichier
  • DirectoryIterator::getPerms() - Récupère les permissions d'un fichier
  • posix_getpwuid() - Retourne des informations sur un utilisateur


Retourne le chemin du dossier

  • « DirectoryIterator::getOwner
  • DirectoryIterator::getPathname »
  • PHP Manual
  • DirectoryIterator
  • Retourne le chemin du dossier

DirectoryIterator::getPath

(PHP 5, PHP 7)

DirectoryIterator::getPath — Retourne le chemin du dossier

Description

public string DirectoryIterator::getPath ( void )

Retourne le chemin du dossier du fichier courant dans l'objet DirectoryIterator, sans le nom du fichier lui-même.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin du fichier courant, omettant le nom du fichier, et le séparateur final.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getPath()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
echo $iterator->getPath();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/home/examples/public_html

Voir aussi

  • DirectoryIterator::getBasename() - Lit le nom de dossier de l'élément DirectoryIterator
  • DirectoryIterator::getFilename() - Retourne le nom de l'entrée courante du dossier
  • DirectoryIterator::getPathname() - Retourne le chemin et le nom de l'entrée courante du dossier
  • pathinfo() - Retourne des informations sur un chemin système


Retourne le chemin et le nom de l'entrée courante du dossier

  • « DirectoryIterator::getPath
  • DirectoryIterator::getPerms »
  • PHP Manual
  • DirectoryIterator
  • Retourne le chemin et le nom de l'entrée courante du dossier

DirectoryIterator::getPathname

(PHP 5, PHP 7)

DirectoryIterator::getPathname — Retourne le chemin et le nom de l'entrée courante du dossier

Description

public string DirectoryIterator::getPathname ( void )

Retourne le chemin et le nom de l'entrée courante du dossier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin et le nom du fichier courant. Les dossier ne portent pas de slash final.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getPathname()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    echo $fileinfo->getPathname() . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/home/examples/.
/home/examples/..
/home/examples/apple.jpg
/home/examples/banana.jpg
/home/examples/getpathname.php
/home/examples/pear.jpg

Voir aussi

  • DirectoryIterator::getBasename() - Lit le nom de dossier de l'élément DirectoryIterator
  • DirectoryIterator::getFilename() - Retourne le nom de l'entrée courante du dossier
  • DirectoryIterator::getPath() - Retourne le chemin du dossier
  • pathinfo() - Retourne des informations sur un chemin système


Récupère les permissions d'un fichier

  • « DirectoryIterator::getPathname
  • DirectoryIterator::getSize »
  • PHP Manual
  • DirectoryIterator
  • Récupère les permissions d'un fichier

DirectoryIterator::getPerms

(PHP 5, PHP 7)

DirectoryIterator::getPerms — Récupère les permissions d'un fichier

Description

public int DirectoryIterator::getPerms ( void )

Récupère les permissions d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les permissions du fichier, sous forme d'entier.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getPerms()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if (!$fileinfo->isDot()) {
        $octal_perms = substr(sprintf('%o', $fileinfo->getPerms()), -4);
        echo $fileinfo->getFilename() . " " . $octal_perms . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg 0644
banana.jpg 0644
index.php 0744
pear.jpg 0644

Voir aussi

  • DirectoryIterator::isExecutable() - Vérifie si le fichier est exécutable
  • DirectoryIterator::isReadable() - Vérifie si le fichier est accessible en lecture
  • DirectoryIterator::isWritable() - Vérifie si le fichier peut être modifié


Récupère la taille d'un fichier

  • « DirectoryIterator::getPerms
  • DirectoryIterator::getType »
  • PHP Manual
  • DirectoryIterator
  • Récupère la taille d'un fichier

DirectoryIterator::getSize

(PHP 5, PHP 7)

DirectoryIterator::getSize — Récupère la taille d'un fichier

Description

public int DirectoryIterator::getSize ( void )

Récupère la taille du fichier courant de l'itérateur DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille du fichier, en octets.

Exemples

Exemple #1 Exemple avec DirectoryIterator::getSize()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " " . $fileinfo->getSize() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg 15385
banana.jpg 15190
example.php 170
pear.jpg 34406

Voir aussi

  • filesize() - Lit la taille d'un fichier


Récupère le type d'un fichier

  • « DirectoryIterator::getSize
  • DirectoryIterator::isDir »
  • PHP Manual
  • DirectoryIterator
  • Récupère le type d'un fichier

DirectoryIterator::getType

(PHP 5, PHP 7)

DirectoryIterator::getType — Récupère le type d'un fichier

Description

public string DirectoryIterator::getType ( void )

Détermine le type du fichier courant dans l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères représentant le type de fichier. Cela peut être file (fichier normal), link (lien), ou dir (dossier).

Exemples

Exemple #1 Exemple avec DirectoryIterator::getType()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    echo $fileinfo->getFilename() . " " . $fileinfo->getType() . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

. dir
.. dir
apple.jpg file
banana.jpg file
example.php file
pear.jpg file

Voir aussi

  • DirectoryIterator::isDir() - Vérifie si un fichier est un dossier
  • DirectoryIterator::isDot() - Retourne TRUE si l'entrée courante est '.' ou '..'
  • DirectoryIterator::isFile() - Vérifie si l'entrée est un fichier normal
  • DirectoryIterator::isLink() - Vérifie si le fichier est un lien symbolique


Vérifie si un fichier est un dossier

  • « DirectoryIterator::getType
  • DirectoryIterator::isDot »
  • PHP Manual
  • DirectoryIterator
  • Vérifie si un fichier est un dossier

DirectoryIterator::isDir

(PHP 5, PHP 7)

DirectoryIterator::isDir — Vérifie si un fichier est un dossier

Description

public bool DirectoryIterator::isDir ( void )

Détermine si l'élément courant du dossier DirectoryIterator est un dossier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si c'est un dossier, FALSE sinon.

Exemples

Exemple #1 Exemple avec DirectoryIterator::isDir()

Cet exemple liste les dossiers dans le dossier courant.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isDir()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

.
..
apples
bananas
pears

Voir aussi

  • DirectoryIterator::getType() - Récupère le type d'un fichier
  • DirectoryIterator::isDot() - Retourne TRUE si l'entrée courante est '.' ou '..'
  • DirectoryIterator::isFile() - Vérifie si l'entrée est un fichier normal
  • DirectoryIterator::isLink() - Vérifie si le fichier est un lien symbolique


Retourne TRUE si l'entrée courante est '.' ou '..'

  • « DirectoryIterator::isDir
  • DirectoryIterator::isExecutable »
  • PHP Manual
  • DirectoryIterator
  • Retourne TRUE si l'entrée courante est '.' ou '..'

DirectoryIterator::isDot

(PHP 5, PHP 7)

DirectoryIterator::isDot — Retourne TRUE si l'entrée courante est '.' ou '..'

Description

public bool DirectoryIterator::isDot ( void )

Vérifie si l'élément courant est un dossier et, est soit ., soit ...

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'entrée est . ou .., FALSE sinon.

Exemples

Exemple #1 Exemple avec DirectoryIterator::isDot()

Cet exemple va lister tous les fichiers, en omettant les dossiers . et ...

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if (!$fileinfo->isDot()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg
banana.jpg
example.php
pears.jpg

Voir aussi

  • DirectoryIterator::getType() - Récupère le type d'un fichier
  • DirectoryIterator::isDir() - Vérifie si un fichier est un dossier
  • DirectoryIterator::isFile() - Vérifie si l'entrée est un fichier normal
  • DirectoryIterator::isLink() - Vérifie si le fichier est un lien symbolique


Vérifie si le fichier est exécutable

  • « DirectoryIterator::isDot
  • DirectoryIterator::isFile »
  • PHP Manual
  • DirectoryIterator
  • Vérifie si le fichier est exécutable

DirectoryIterator::isExecutable

(PHP 5, PHP 7)

DirectoryIterator::isExecutable — Vérifie si le fichier est exécutable

Description

public bool DirectoryIterator::isExecutable ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie si le fichier courant dans l'itérateur DirectoryIterator est exécutable.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'entrée est exécutable, FALSE sinon.

Exemples

Exemple #1 Exemple avec DirectoryIterator::isExecutable()

Cet exemple liste les fichiers dans le dossier, contenant le script courant.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isExecutable()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

exemple.php
monscript.sh

Voir aussi

  • DirectoryIterator::isReadable() - Vérifie si le fichier est accessible en lecture
  • DirectoryIterator::isWritable() - Vérifie si le fichier peut être modifié
  • DirectoryIterator::getPerms() - Récupère les permissions d'un fichier


Vérifie si l'entrée est un fichier normal

  • « DirectoryIterator::isExecutable
  • DirectoryIterator::isLink »
  • PHP Manual
  • DirectoryIterator
  • Vérifie si l'entrée est un fichier normal

DirectoryIterator::isFile

(PHP 5, PHP 7)

DirectoryIterator::isFile — Vérifie si l'entrée est un fichier normal

Description

public bool DirectoryIterator::isFile ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie si l'entrée est un fichier normal.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'entrée est un fichier régulier, (et que ce n'est ni un lien ni un dossier) FALSE sinon.

Exemples

Exemple #1 Exemple avec DirectoryIterator::isFile()

Cet exempe va lister tous les fichiers normaux du dossier courant.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

pomme.jpg
banane.jpg
exemple.php
poire.jpg

Voir aussi

  • DirectoryIterator::getType() - Récupère le type d'un fichier
  • DirectoryIterator::isDir() - Vérifie si un fichier est un dossier
  • DirectoryIterator::isDot() - Retourne TRUE si l'entrée courante est '.' ou '..'
  • DirectoryIterator::isLink() - Vérifie si le fichier est un lien symbolique


Vérifie si le fichier est un lien symbolique

  • « DirectoryIterator::isFile
  • DirectoryIterator::isReadable »
  • PHP Manual
  • DirectoryIterator
  • Vérifie si le fichier est un lien symbolique

DirectoryIterator::isLink

(PHP 5, PHP 7)

DirectoryIterator::isLink — Vérifie si le fichier est un lien symbolique

Description

public bool DirectoryIterator::isLink ( void )

Vérifie si l'élément courant de l'objet DirectoryIterator est un lien symbolique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'entrée est un lien symbolique, FALSE sinon.

Exemples

Exemple #1 Exemple avec DirectoryIterator::isLink()

Cet exemple contient une fonction récursive qui va supprimer une arborescence complète de fichiers.

<?php
/**
 * Cette fonction supprime récursivement tous les fichiers d'un dossier,
 * sans suivre les liens symboliques
 *
 * @param string $path chemin du dossier à supprimer.
 */
function removeDir($path) {
    $dir = new DirectoryIterator($path);
    foreach ($dir as $fileinfo) {
        if ($fileinfo->isFile() || $fileinfo->isLink()) {
            unlink($fileinfo->getPathName());
        } elseif (!$fileinfo->isDot() && $fileinfo->isDir()) {
            removeDir($fileinfo->getPathName());
        }
    }
    rmdir($path);
}

removeDir('foo');
?>

Voir aussi

  • DirectoryIterator::getType() - Récupère le type d'un fichier
  • DirectoryIterator::isDir() - Vérifie si un fichier est un dossier
  • DirectoryIterator::isDot() - Retourne TRUE si l'entrée courante est '.' ou '..'
  • DirectoryIterator::isFile() - Vérifie si l'entrée est un fichier normal


Vérifie si le fichier est accessible en lecture

  • « DirectoryIterator::isLink
  • DirectoryIterator::isWritable »
  • PHP Manual
  • DirectoryIterator
  • Vérifie si le fichier est accessible en lecture

DirectoryIterator::isReadable

(PHP 5, PHP 7)

DirectoryIterator::isReadable — Vérifie si le fichier est accessible en lecture

Description

public bool DirectoryIterator::isReadable ( void )

Vérifie si l'élément courant de l'objet DirectoryIterator est accessible en lecture.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si le fichier est accessible en lecture, FALSE sinon.

Exemples

Exemple #1 Exemple avec DirectoryIterator::isReadable()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isReadable()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg
banana.jpg
example.php
pears.jpg

Voir aussi

  • DirectoryIterator::isExecutable() - Vérifie si le fichier est exécutable
  • DirectoryIterator::isWritable() - Vérifie si le fichier peut être modifié
  • DirectoryIterator::getPerms() - Récupère les permissions d'un fichier


Vérifie si le fichier peut être modifié

  • « DirectoryIterator::isReadable
  • DirectoryIterator::key »
  • PHP Manual
  • DirectoryIterator
  • Vérifie si le fichier peut être modifié

DirectoryIterator::isWritable

(PHP 5, PHP 7)

DirectoryIterator::isWritable — Vérifie si le fichier peut être modifié

Description

public bool DirectoryIterator::isWritable ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie si le fichier courant de l'objet DirectoryIterator est accessible en écriture.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si le fichier est accessible en écriture, FALSE sinon.

Exemples

Exemple #1 Exemple avec DirectoryIterator::isWritable()

Cet exemple liste les fichiers et les dossiers qui peuvent être ouverts en écriture dans le dossier courant.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isWritable()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apples.txt
bananas.html
pears

Voir aussi

  • DirectoryIterator::getPerms() - Récupère les permissions d'un fichier
  • DirectoryIterator::isExecutable() - Vérifie si le fichier est exécutable
  • DirectoryIterator::isReadable() - Vérifie si le fichier est accessible en lecture


Retourne l'entrée courante du dossier

  • « DirectoryIterator::isWritable
  • DirectoryIterator::next »
  • PHP Manual
  • DirectoryIterator
  • Retourne l'entrée courante du dossier

DirectoryIterator::key

(PHP 5, PHP 7)

DirectoryIterator::key — Retourne l'entrée courante du dossier

Description

publicstring DirectoryIterator::key ( void )

Retourne l'entrée courante de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'entrée courante du dossier.

Exemples

Exemple #1 Exemple avec DirectoryIterator::key()

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if (!$fileinfo->isDot()) {
        echo $fileinfo->key() . " => " . $fileinfo->getFilename() . "\n";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0 => apple.jpg
1 => banana.jpg
2 => index.php
3 => pear.jpg

Voir aussi

  • DirectoryIterator::current() - Retourne l'élément courant du DirectoryIterator
  • DirectoryIterator::next() - Se déplace vers la prochaine entrée
  • DirectoryIterator::rewind() - Revient au début du dossier
  • DirectoryIterator::valid() - Vérifie si le répertoire contient encore des entrées
  • Iterator::key() - Retourne la clé de l'élément courant


Se déplace vers la prochaine entrée

  • « DirectoryIterator::key
  • DirectoryIterator::rewind »
  • PHP Manual
  • DirectoryIterator
  • Se déplace vers la prochaine entrée

DirectoryIterator::next

(PHP 5, PHP 7)

DirectoryIterator::next — Se déplace vers la prochaine entrée

Description

publicvoid DirectoryIterator::next ( void )

Se déplace vers le prochain élément de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec DirectoryIterator::next()

Liste le contenu du dossier courant avec une boucle.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
while($iterator->valid()) {
    echo $iterator->getFilename() . "\n";
    $iterator->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Voir aussi

  • DirectoryIterator::current() - Retourne l'élément courant du DirectoryIterator
  • DirectoryIterator::key() - Retourne l'entrée courante du dossier
  • DirectoryIterator::rewind() - Revient au début du dossier
  • DirectoryIterator::valid() - Vérifie si le répertoire contient encore des entrées
  • Iterator::next() - Se déplace sur l'élément suivant


Revient au début du dossier

  • « DirectoryIterator::next
  • DirectoryIterator::seek »
  • PHP Manual
  • DirectoryIterator
  • Revient au début du dossier

DirectoryIterator::rewind

(PHP 5, PHP 7)

DirectoryIterator::rewind — Revient au début du dossier

Description

public void DirectoryIterator::rewind ( void )

Revient au début de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec DirectoryIterator::rewind()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); //rewinding to the beginning
echo $iterator->key(); //0
?>

Voir aussi

  • DirectoryIterator::current() - Retourne l'élément courant du DirectoryIterator
  • DirectoryIterator::key() - Retourne l'entrée courante du dossier
  • DirectoryIterator::next() - Se déplace vers la prochaine entrée
  • DirectoryIterator::valid() - Vérifie si le répertoire contient encore des entrées
  • Iterator::rewind() - Replace l'itérateur sur le premier élément


Déplace le pointeur dans un itérateur DirectoryIterator

  • « DirectoryIterator::rewind
  • DirectoryIterator::__toString »
  • PHP Manual
  • DirectoryIterator
  • Déplace le pointeur dans un itérateur DirectoryIterator

DirectoryIterator::seek

(PHP 5 >= 5.3.0, PHP 7)

DirectoryIterator::seek — Déplace le pointeur dans un itérateur DirectoryIterator

Description

public void DirectoryIterator::seek ( int $position )

Déplace le pointeur dans un itérateur DirectoryIterator.

Liste de paramètres

position

La position à atteindre (les positions commencent à zéro).

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec DirectoryIterator::seek()

Recherche le 4eme élément dans le dossier contenant le script courant. Les deux premiers sont généralement . et ..

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
$iterator->seek(3);
if ($iterator->valid()) {
    echo $iterator->getFilename();
} else {
    echo 'Pas de fichier en position 3';
}
?>

Voir aussi

  • DirectoryIterator::rewind() - Revient au début du dossier
  • DirectoryIterator::next() - Se déplace vers la prochaine entrée
  • SeekableIterator::seek() - Recherche une position


Lit le nom du fichier

  • « DirectoryIterator::seek
  • DirectoryIterator::valid »
  • PHP Manual
  • DirectoryIterator
  • Lit le nom du fichier

DirectoryIterator::__toString

(PHP 5, PHP 7)

DirectoryIterator::__toString — Lit le nom du fichier

Description

public string DirectoryIterator::__toString ( void )

Lit le nom du fichier de l'élément DirectoryIterator courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du fichier courant de l'élément DirectoryIterator.

Exemples

Exemple #1 Exemple avec DirectoryIterator::__toString()

Cet exemple va lister les éléments du dossier courant.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    echo $fileinfo;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Voir aussi

  • DirectoryIterator::getFilename() - Retourne le nom de l'entrée courante du dossier
  • la méthode magique __toString


Vérifie si le répertoire contient encore des entrées

  • « DirectoryIterator::__toString
  • EmptyIterator »
  • PHP Manual
  • DirectoryIterator
  • Vérifie si le répertoire contient encore des entrées

DirectoryIterator::valid

(PHP 5, PHP 7)

DirectoryIterator::valid — Vérifie si le répertoire contient encore des entrées

Description

public bool DirectoryIterator::valid ( void )

Vérifie si l'objet DirectoryIterator contient encore des fichiers.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la position est valide, et FALSE sinon;

Exemples

Exemple #1 Exemple avec DirectoryIterator::valid()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));

// Loop to end of iterator
while($iterator->valid()) {
    $iterator->next();
}

$iterator->valid(); // FALSE
$iterator->rewind();
$iterator->valid(); // TRUE

?>

Voir aussi

  • DirectoryIterator::current() - Retourne l'élément courant du DirectoryIterator
  • DirectoryIterator::key() - Retourne l'entrée courante du dossier
  • DirectoryIterator::next() - Se déplace vers la prochaine entrée
  • DirectoryIterator::rewind() - Revient au début du dossier
  • Iterator::valid() - Vérifie si la position courante est valide


La classe EmptyIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

La classe EmptyIterator crée un objet itérateur vide.

Synopsis de la classe

EmptyIterator implements Iterator {
/* Méthodes */
public mixed current ( void )
public scalar key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
}

Sommaire

  • EmptyIterator::current — La méthode EmptyIterator::current
  • EmptyIterator::key — The key() method
  • EmptyIterator::next — La méthode EmptyIterator::next
  • EmptyIterator::rewind — La méthode EmptyIterator::rewind
  • EmptyIterator::valid — La méthode EmptyIterator::valid


La méthode EmptyIterator::current

  • « EmptyIterator
  • EmptyIterator::key »
  • PHP Manual
  • EmptyIterator
  • La méthode EmptyIterator::current

EmptyIterator::current

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::current — La méthode EmptyIterator::current()

Description

public mixed EmptyIterator::current ( void )

Cette méthode ne doit pas être appelée. Elle émet une exception en cas d'accès.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Erreurs / Exceptions

Émet une exception Exception.

Valeurs de retour

Aucune valeur n'est retournée.


The key() method

  • « EmptyIterator::current
  • EmptyIterator::next »
  • PHP Manual
  • EmptyIterator
  • The key() method

EmptyIterator::key

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::key — The key() method

Description

public scalar EmptyIterator::key ( void )

Cette méthode ne doit pas être appelée. Elle émet une exception en cas d'accès.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Erreurs / Exceptions

Émet une exception Exception si elle est appelée.

Valeurs de retour

Aucune valeur n'est retournée.


La méthode EmptyIterator::next

  • « EmptyIterator::key
  • EmptyIterator::rewind »
  • PHP Manual
  • EmptyIterator
  • La méthode EmptyIterator::next

EmptyIterator::next

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::next — La méthode EmptyIterator::next()

Description

public void EmptyIterator::next ( void )

Aucune opération. Rien à faire.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


La méthode EmptyIterator::rewind

  • « EmptyIterator::next
  • EmptyIterator::valid »
  • PHP Manual
  • EmptyIterator
  • La méthode EmptyIterator::rewind

EmptyIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::rewind — La méthode EmptyIterator::rewind()

Description

public void EmptyIterator::rewind ( void )

EmptyIterator::rewind()

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


La méthode EmptyIterator::valid

  • « EmptyIterator::rewind
  • FilesystemIterator »
  • PHP Manual
  • EmptyIterator
  • La méthode EmptyIterator::valid

EmptyIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::valid — La méthode EmptyIterator::valid()

Description

public bool EmptyIterator::valid ( void )

La méthode EmptyIterator::valid().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

FALSE


La classe FilesystemIterator

(PHP 5 >= 5.3.0, PHP 7)

Introduction

L'itérateur FilesystemIterator.

Synopsis de la classe

FilesystemIterator extends DirectoryIterator implements SeekableIterator {
/* Constantes */
const integer CURRENT_AS_PATHNAME = 32 ;
const integer CURRENT_AS_FILEINFO = 0 ;
const integer CURRENT_AS_SELF = 16 ;
const integer CURRENT_MODE_MASK = 240 ;
const integer KEY_AS_PATHNAME = 0 ;
const integer KEY_AS_FILENAME = 256 ;
const integer FOLLOW_SYMLINKS = 512 ;
const integer KEY_MODE_MASK = 3840 ;
const integer NEW_CURRENT_AND_KEY = 256 ;
const integer SKIP_DOTS = 4096 ;
const integer UNIX_PATHS = 8192 ;
/* Méthodes */
public __construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )
public mixed current ( void )
public int getFlags ( void )
public string key ( void )
public void next ( void )
public void rewind ( void )
public void setFlags ([ int $flags ] )
/* Méthodes héritées */
public DirectoryIterator DirectoryIterator::current ( void )
public int DirectoryIterator::getATime ( void )
public string DirectoryIterator::getBasename ([ string $suffix ] )
public int DirectoryIterator::getCTime ( void )
public string DirectoryIterator::getExtension ( void )
public string DirectoryIterator::getFilename ( void )
public int DirectoryIterator::getGroup ( void )
public int DirectoryIterator::getInode ( void )
public int DirectoryIterator::getMTime ( void )
public int DirectoryIterator::getOwner ( void )
public string DirectoryIterator::getPath ( void )
public string DirectoryIterator::getPathname ( void )
public int DirectoryIterator::getPerms ( void )
public int DirectoryIterator::getSize ( void )
public string DirectoryIterator::getType ( void )
public bool DirectoryIterator::isDir ( void )
public bool DirectoryIterator::isDot ( void )
public bool DirectoryIterator::isExecutable ( void )
public bool DirectoryIterator::isFile ( void )
public bool DirectoryIterator::isLink ( void )
public bool DirectoryIterator::isReadable ( void )
public bool DirectoryIterator::isWritable ( void )
publicstring DirectoryIterator::key ( void )
publicvoid DirectoryIterator::next ( void )
public void DirectoryIterator::rewind ( void )
public void DirectoryIterator::seek ( int $position )
public string DirectoryIterator::__toString ( void )
public bool DirectoryIterator::valid ( void )
}

Constantes pré-définies

FilesystemIterator::CURRENT_AS_PATHNAME

FilesystemIterator::current() retourne le nom du chemin.

FilesystemIterator::CURRENT_AS_FILEINFO

FilesystemIterator::current() retourne un objet SplFileInfo.

FilesystemIterator::CURRENT_AS_SELF

FilesystemIterator::current() retourne $this (le FilesystemIterator).

FilesystemIterator::CURRENT_MODE_MASK

Masque FilesystemIterator::current().

FilesystemIterator::KEY_AS_PATHNAME

FilesystemIterator::key() retourne le nom de chemin.

FilesystemIterator::KEY_AS_FILENAME

FilesystemIterator::key() retourne le nom du fichier.

FilesystemIterator::FOLLOW_SYMLINKS

Makes RecursiveDirectoryIterator::hasChildren() follow symlinks.

FilesystemIterator::KEY_MODE_MASK

Masque FilesystemIterator::key().

FilesystemIterator::NEW_CURRENT_AND_KEY

Identique à FilesystemIterator::KEY_AS_FILENAME | FilesystemIterator::CURRENT_AS_FILEINFO.

FilesystemIterator::SKIP_DOTS

Ignore les fichiers points (. et ..).

FilesystemIterator::UNIX_PATHS

Les chemins utilisen le séparateur de dossier de type Unix, soit le slash, indépendamment du système de fonctionnement.

Historique

Version | Description
5.3.1 | Ajout de FilesystemIterator::FOLLOW_SYMLINKS

Sommaire

  • FilesystemIterator::__construct — Construit un objet FilesystemIterator
  • FilesystemIterator::current — Lit le fichier courant
  • FilesystemIterator::getFlags — Lit les options activées
  • FilesystemIterator::key — Lit le nom du fichier
  • FilesystemIterator::next — Passe au fichier suivant
  • FilesystemIterator::rewind — Recommence à lire le dossier
  • FilesystemIterator::setFlags — Configure les options


Construit un objet FilesystemIterator

  • « FilesystemIterator
  • FilesystemIterator::current »
  • PHP Manual
  • FilesystemIterator
  • Construit un objet FilesystemIterator

FilesystemIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::__construct — Construit un objet FilesystemIterator

Description

public FilesystemIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )

Construit un objet FilesystemIterator, configuré avec le chemin path.

Liste de paramètres

path

Le chemin du dossier dans lequel on va travailler.

flags

Les options qui affectent le comportement des méthodes. La liste des options est disponible dans les constantes de FilesystemIterator. Elles peuvent aussi être activées ultérieurement avec FilesystemIterator::setFlags().

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une exception UnexpectedValueException si le chemin path est introuvable.

Exemples

Exemple #1 Exemple avec FilesystemIterator::__construct()

<?php
$it = new FilesystemIterator(dirname(__FILE__));
foreach ($it as $fileinfo) {
    echo $fileinfo->getFilename() . "\n";
}
?>

L'exemple ci-dessus va afficher :

apples.jpg
banana.jpg
example.php

Voir aussi

  • FilesystemIterator::setFlags() - Configure les options
  • DirectoryIterator::__construct() - Construit un nouvel itérateur de dossier à partir d'un chemin


Lit le fichier courant

  • « FilesystemIterator::__construct
  • FilesystemIterator::getFlags »
  • PHP Manual
  • FilesystemIterator
  • Lit le fichier courant

FilesystemIterator::current

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::current — Lit le fichier courant

Description

public mixed FilesystemIterator::current ( void )

Lit les informations sur le fichier courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du fichier, les informations du fichier, ou bien $this, en fonction des options utilisées. Voyez la liste des constantes FilesystemIterator.

Exemples

Exemple #1 Exemple avec FilesystemIterator::current()

Cet exemple va tester la liste des fichiers dans le script courant.

<?php
$iterator = new FilesystemIterator(__DIR__, FilesystemIterator::CURRENT_AS_PATHNAME);
foreach ($iterator as $fileinfo) {
    echo $iterator->current() . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/www/examples/apple.jpg
/www/examples/banana.jpg
/www/examples/example.php

Voir aussi

  • Les constantes FilesystemIterator
  • DirectoryIterator::current() - Retourne l'élément courant du DirectoryIterator
  • DirectoryIterator::getFileName() - Retourne le nom de l'entrée courante du dossier


Lit les options activées

  • « FilesystemIterator::current
  • FilesystemIterator::key »
  • PHP Manual
  • FilesystemIterator
  • Lit les options activées

FilesystemIterator::getFlags

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::getFlags — Lit les options activées

Description

public int FilesystemIterator::getFlags ( void )

Lit les options activées, telles qu'elles ont été configurées avec FilesystemIterator::__construct() ou FilesystemIterator::setFlags().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur des options configurées.

Voir aussi

  • FilesystemIterator::__construct() - Construit un objet FilesystemIterator
  • FilesystemIterator::setFlags() - Configure les options


Lit le nom du fichier

  • « FilesystemIterator::getFlags
  • FilesystemIterator::next »
  • PHP Manual
  • FilesystemIterator
  • Lit le nom du fichier

FilesystemIterator::key

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::key — Lit le nom du fichier

Description

public string FilesystemIterator::key ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin ou le nom du fichier, suivant les options activées. Voyez les Constantes de FilesystemIterator.

Exemples

Exemple #1 Exemple avec FilesystemIterator::key()

Cet exemple va afficher le contenu du dossier qui contient le script en cours.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_FILENAME);
foreach ($iterator as $fileinfo) {
    echo $iterator->key() . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg
banana.jpg
example.php

Voir aussi

  • Constantes de FilesystemIterator
  • DirectoryIterator::key() - Retourne l'entrée courante du dossier
  • DirectoryIterator::getFilename() - Retourne le nom de l'entrée courante du dossier
  • DirectoryIterator::getPathname() - Retourne le chemin et le nom de l'entrée courante du dossier


Passe au fichier suivant

  • « FilesystemIterator::key
  • FilesystemIterator::rewind »
  • PHP Manual
  • FilesystemIterator
  • Passe au fichier suivant

FilesystemIterator::next

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::next — Passe au fichier suivant

Description

public void FilesystemIterator::next ( void )

Passe au fichier suivant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec FilesystemIterator::next()

Liste le contenu du dossier avec une boucle.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__));
while($iterator->valid()) {
    echo $iterator->getFilename() . "\n";
    $iterator->next();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg
banana.jpg
example.php

Voir aussi

  • DirectoryIterator::next() - Se déplace vers la prochaine entrée


Recommence à lire le dossier

  • « FilesystemIterator::next
  • FilesystemIterator::setFlags »
  • PHP Manual
  • FilesystemIterator
  • Recommence à lire le dossier

FilesystemIterator::rewind

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::rewind — Recommence à lire le dossier

Description

public void FilesystemIterator::rewind ( void )

Recommence à lire le dossier à zéro.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec FilesystemIterator::rewind()

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_FILENAME);

echo $iterator->key() . "\n";

$iterator->next();
echo $iterator->key() . "\n";

$iterator->rewind();
echo $iterator->key() . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple.jpg
banana.jpg
apple.jpg

Voir aussi

  • DirectoryIterator::rewind() - Revient au début du dossier


Configure les options

  • « FilesystemIterator::rewind
  • FilterIterator »
  • PHP Manual
  • FilesystemIterator
  • Configure les options

FilesystemIterator::setFlags

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::setFlags — Configure les options

Description

public void FilesystemIterator::setFlags ([ int $flags ] )

Configure les options.

Liste de paramètres

flags

Les options à configurer. Voir la liste des constantes de FilesystemIterator.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec FilesystemIterator::key()

Cet exemple illustre la différence entre les options FilesystemIterator::KEY_AS_PATHNAME et FilesystemIterator::KEY_AS_FILENAME.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_PATHNAME);
echo "Clé comme nom de chemin : \n";
foreach ($iterator as $key => $fileinfo) {
    echo $key . "\n";
}

$iterator->setFlags(FilesystemIterator::KEY_AS_FILENAME);
echo "\nClé comme nom de fichier : \n";
foreach ($iterator as $key => $fileinfo) {
    echo $key . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Clé comme nom de chemin :
/www/examples/apple.jpg
/www/examples/banana.jpg
/www/examples/example.php

Clé comme nom de fichier :
apple.jpg
banana.jpg
example.php

Voir aussi

  • FilesystemIterator::__construct() - Construit un objet FilesystemIterator
  • FilesystemIterator::getFlags() - Lit les options activées


La classe FilterIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Cet itérateur abstrait filtre les valeurs indésirables. Cette classe doit être étendue pour implémenter des opérateurs personnalisés. La méthode FilterIterator::accept() doit être implémentée dans la sous-classe.

Synopsis de la classe

abstract FilterIterator extends IteratorIterator implements OuterIterator {
/* Méthodes */
public abstract bool accept ( void )
public __construct ( Iterator $iterator )
public mixed current ( void )
public Iterator getInnerIterator ( void )
public mixed key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
}

Sommaire

  • FilterIterator::accept — Vérifie si l'élément courant de l'itérateur est acceptable
  • FilterIterator::__construct — Construit un filterIterator
  • FilterIterator::current — Récupère la valeur de l'élément courant
  • FilterIterator::getInnerIterator — Récupère l'itérateur interne
  • FilterIterator::key — Récupère la clé courante
  • FilterIterator::next — Déplace l'itérateur à la position suivante
  • FilterIterator::rewind — Replace l'itérateur au début
  • FilterIterator::valid — Vérifie si l'élément courant est valide


Vérifie si l'élément courant de l'itérateur est acceptable

  • « FilterIterator
  • FilterIterator::__construct »
  • PHP Manual
  • FilterIterator
  • Vérifie si l'élément courant de l'itérateur est acceptable

FilterIterator::accept

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::accept — Vérifie si l'élément courant de l'itérateur est acceptable

Description

public abstract bool FilterIterator::accept ( void )

Vérifie si l'élément courant est acceptable par le filtre courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'élément courant est acceptable, et sinon FALSE.

Exemples

Exemple #1 Exemple avec FilterIterator::accept()

<?php
// Cet itérateur filtre toutes les valeurs de moins de 10 caractères
class LengthFilterIterator extends FilterIterator {

    public function accept() {
        // n'accepte une chaîne que si elle fait 10 chars ou plus
        return strlen(parent::current()) >= 10;
    }

}

$arrayIterator = new ArrayIterator(array('test1', 'plus de 10 caractères'));
$lengthFilter = new LengthFilterIterator($arrayIterator);

foreach ($lengthFilter as $value) {
    echo $value . "\n";
}
?>

L'exemple ci-dessus va afficher :

plus de 10 caractères


Construit un filterIterator

  • « FilterIterator::accept
  • FilterIterator::current »
  • PHP Manual
  • FilterIterator
  • Construit un filterIterator

FilterIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::__construct — Construit un filterIterator

Description

public FilterIterator::__construct ( Iterator $iterator )

Construit un nouveau FilterIterator, qui consiste à passer le paramètre iterator après y avoir appliqué les filtres.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur à filtrer.

Valeurs de retour

L'objet FilterIterator.

Voir aussi

  • LimitIterator::__construct() - Construit un nouvel objet LimitIterator


Récupère la valeur de l'élément courant

  • « FilterIterator::__construct
  • FilterIterator::getInnerIterator »
  • PHP Manual
  • FilterIterator
  • Récupère la valeur de l'élément courant

FilterIterator::current

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::current — Récupère la valeur de l'élément courant

Description

public mixed FilterIterator::current ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère la valeur de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur de l'élément courant.

Voir aussi

  • FilterIterator::key() - Récupère la clé courante
  • FilterIterator::next() - Déplace l'itérateur à la position suivante


Récupère l'itérateur interne

  • « FilterIterator::current
  • FilterIterator::key »
  • PHP Manual
  • FilterIterator
  • Récupère l'itérateur interne

FilterIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::getInnerIterator — Récupère l'itérateur interne

Description

public Iterator FilterIterator::getInnerIterator ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère l'itérateur interne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur interne.


Récupère la clé courante

  • « FilterIterator::getInnerIterator
  • FilterIterator::next »
  • PHP Manual
  • FilterIterator
  • Récupère la clé courante

FilterIterator::key

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::key — Récupère la clé courante

Description

public mixed FilterIterator::key ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère la clé courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé courante.

Voir aussi

  • FilterIterator::next() - Déplace l'itérateur à la position suivante
  • FilterIterator::current() - Récupère la valeur de l'élément courant


Déplace l'itérateur à la position suivante

  • « FilterIterator::key
  • FilterIterator::rewind »
  • PHP Manual
  • FilterIterator
  • Déplace l'itérateur à la position suivante

FilterIterator::next

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::next — Déplace l'itérateur à la position suivante

Description

public void FilterIterator::next ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Déplace l'itérateur à la position suivante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • FilterIterator::current() - Récupère la valeur de l'élément courant
  • FilterIterator::next()


Replace l'itérateur au début

  • « FilterIterator::next
  • FilterIterator::valid »
  • PHP Manual
  • FilterIterator
  • Replace l'itérateur au début

FilterIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::rewind — Replace l'itérateur au début

Description

public void FilterIterator::rewind ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Replace l'itérateur au début.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • FilterIterator::current() - Récupère la valeur de l'élément courant
  • FilterIterator::key() - Récupère la clé courante
  • FilterIterator::next() - Déplace l'itérateur à la position suivante


Vérifie si l'élément courant est valide

  • « FilterIterator::rewind
  • GlobIterator »
  • PHP Manual
  • FilterIterator
  • Vérifie si l'élément courant est valide

FilterIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::valid — Vérifie si l'élément courant est valide

Description

public bool FilterIterator::valid ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Vérifie si l'élément courant est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'élément courant est valide, FALSE sinon.


La classe GlobIterator

(PHP 5 >= 5.3.0, PHP 7)

Introduction

Passe en revue un système de fichiers, de manière similaire à la fonction glob().

Synopsis de la classe

GlobIterator extends FilesystemIterator implements SeekableIterator , Countable {
/* Méthodes */
public __construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )
public int count ( void )
/* Méthodes héritées */
public FilesystemIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )
public mixed FilesystemIterator::current ( void )
public int FilesystemIterator::getFlags ( void )
public string FilesystemIterator::key ( void )
public void FilesystemIterator::next ( void )
public void FilesystemIterator::rewind ( void )
public void FilesystemIterator::setFlags ([ int $flags ] )
}

Sommaire

  • GlobIterator::__construct — Construit un itérateur de type glob
  • GlobIterator::count — Lit le nombre de dossiers et fichiers


Construit un itérateur de type glob

  • « GlobIterator
  • GlobIterator::count »
  • PHP Manual
  • GlobIterator
  • Construit un itérateur de type glob

GlobIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

GlobIterator::__construct — Construit un itérateur de type glob

Description

public GlobIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )

Construit un itérateur de type glob.

Liste de paramètres

path

Le chemin du dossier.

flags

Les options, qui peuvent être un champ de bits de constantes de classe FilesystemIterator.

Exemples

Exemple #1 Exemple avec GlobIterator

<?php
$iterator = new GlobIterator('*.dll',  FilesystemIterator::KEY_AS_FILENAME);

if (!$iterator->count()) {
    echo 'No matches';
} else {
    $n = 0;

    printf("Matched  %d item(s)\r\n", $iterator->count());

    foreach ($iterator as $item) {
        printf("[%d] %s\r\n", ++$n, $iterator->key());
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Matched 2 item(s)
[1] php5ts.dll
[2] php_gd2.dll

Voir aussi

  • DirectoryIterator::__construct() - Construit un nouvel itérateur de dossier à partir d'un chemin
  • GlobIterator::count() - Lit le nombre de dossiers et fichiers
  • glob() - Recherche des chemins qui vérifient un masque


Lit le nombre de dossiers et fichiers

  • « GlobIterator::__construct
  • InfiniteIterator »
  • PHP Manual
  • GlobIterator
  • Lit le nombre de dossiers et fichiers

GlobIterator::count

(PHP 5 >= 5.3.0, PHP 7)

GlobIterator::count — Lit le nombre de dossiers et fichiers

Description

public int GlobIterator::count ( void )

Lit le nombre de dossiers et fichiers trouvés par l'expression Glob.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre de dossiers et fichiers est retourné sous forme d'entier.

Exemples

Exemple #1 Exemple avec GlobIterator::count()

<?php
$iterator = new GlobIterator('*.xml');

printf("Trouvé %d élément(s)\r\n", $iterator->count());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Matched 8 item(s)

Voir aussi

  • GlobIterator::__construct() - Construit un itérateur de type glob
  • count() - Compte tous les éléments d'un tableau ou quelque chose d'un objet
  • glob() - Recherche des chemins qui vérifient un masque


La classe InfiniteIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

La classe InfiniteIterator permet l'itération infinie sur un itérateur sans avoir besoin de remettre à zéro manuellement dès que la fin est atteinte.

Synopsis de la classe

InfiniteIterator extends IteratorIterator implements OuterIterator {
/* Méthodes */
public __construct ( Iterator $iterator )
public void next ( void )
/* Méthodes héritées */
public IteratorIterator::__construct ( Traversable $iterator )
public mixed IteratorIterator::current ( void )
public Traversable IteratorIterator::getInnerIterator ( void )
public scalar IteratorIterator::key ( void )
public void IteratorIterator::next ( void )
public void IteratorIterator::rewind ( void )
public bool IteratorIterator::valid ( void )
}

Sommaire

  • InfiniteIterator::__construct — Construit un InfiniteIterator
  • InfiniteIterator::next — Avance l'itérateur ou le replace au début


Construit un InfiniteIterator

  • « InfiniteIterator
  • InfiniteIterator::next »
  • PHP Manual
  • InfiniteIterator
  • Construit un InfiniteIterator

InfiniteIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

InfiniteIterator::__construct — Construit un InfiniteIterator

Description

public InfiniteIterator::__construct ( Iterator $iterator )

Construit un InfiniteIterator pour un Iterator.

Liste de paramètres

iterator

L'itérateur à passer infiniment.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception E_RECOVERABLE_ERROR si le paramètre iterator n'est pas un Iterator.

Exemples

Exemple #1 Exemple avec InfiniteIterator::__construct()

<?php
$arrayit  = new ArrayIterator(array('cat','dog'));
$infinite = new InfiniteIterator($arrayit);
$limit    = new LimitIterator($infinite, 0, 7);
foreach($limit as $value)
{
    echo "$value\n";
}
?>

L'exemple ci-dessus va afficher :

cat
dog
cat
dog
cat
dog
cat

Voir aussi

  • InfiniteIterator::next() - Avance l'itérateur ou le replace au début


Avance l'itérateur ou le replace au début

  • « InfiniteIterator::__construct
  • IteratorIterator »
  • PHP Manual
  • InfiniteIterator
  • Avance l'itérateur ou le replace au début

InfiniteIterator::next

(PHP 5 >= 5.1.0, PHP 7)

InfiniteIterator::next — Avance l'itérateur ou le replace au début

Description

public void InfiniteIterator::next ( void )

Avance l'Iterator interne au prochain élément s'il existe, ou bien le replace au début si le prochain élément n'existe pas.

Note:

InfiniteIterator s'arrête si l'Iterator est vide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • InfiniteIterator::__construct() - Construit un InfiniteIterator


La classe IteratorIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Cet itérateur permet la conversion de n'importe quel objet Traversable en un itérateur. Il est important de comprendre que la plupart des classes qui n'implémentent pas l'interface Iterator, ne le font pas car elles ne disposent pas de toutes les méthodes des itérateurs. Si c'est le cas, des mécanismes doivent être mis en place pour l'éviter, car autrement, cela produirait des exceptions ou des erreurs fatales.

Synopsis de la classe

IteratorIterator implements OuterIterator {
/* Méthodes */
public __construct ( Traversable $iterator )
public mixed current ( void )
public Traversable getInnerIterator ( void )
public scalar key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
}

Notes

Note:

Cette classe permet l'accès aux méthodes de l'itérateur interne via l'appel à la méthode magique __call.

Sommaire

  • IteratorIterator::__construct — Crée un itérateur à partir d'un objet traversable
  • IteratorIterator::current — Lit la valeur courante
  • IteratorIterator::getInnerIterator — Retourne l'itérateur interne
  • IteratorIterator::key — Lit la clé de l'élément courant
  • IteratorIterator::next — Avance au prochain élément
  • IteratorIterator::rewind — Retourne au premier élément
  • IteratorIterator::valid — Vérifie si un itérateur est valide


Crée un itérateur à partir d'un objet traversable

  • « IteratorIterator
  • IteratorIterator::current »
  • PHP Manual
  • IteratorIterator
  • Crée un itérateur à partir d'un objet traversable

IteratorIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::__construct — Crée un itérateur à partir d'un objet traversable

Description

public IteratorIterator::__construct ( Traversable $iterator )

Crée un itérateur à partir d'un objet traversable.

Liste de paramètres

iterator

L'itérateur traversable.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Traversable


Lit la valeur courante

  • « IteratorIterator::__construct
  • IteratorIterator::getInnerIterator »
  • PHP Manual
  • IteratorIterator
  • Lit la valeur courante

IteratorIterator::current

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::current — Lit la valeur courante

Description

public mixed IteratorIterator::current ( void )

Lit la valeur de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur de l'élément courant.

Voir aussi

  • IteratorIterator::key() - Lit la clé de l'élément courant


Retourne l'itérateur interne

  • « IteratorIterator::current
  • IteratorIterator::key »
  • PHP Manual
  • IteratorIterator
  • Retourne l'itérateur interne

IteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::getInnerIterator — Retourne l'itérateur interne

Description

public Traversable IteratorIterator::getInnerIterator ( void )

Retourne l'itérateur interne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur interne, fourni au constructeur IteratorIterator::__construct().

Voir aussi

  • Iterator
  • OuterIterator


Lit la clé de l'élément courant

  • « IteratorIterator::getInnerIterator
  • IteratorIterator::next »
  • PHP Manual
  • IteratorIterator
  • Lit la clé de l'élément courant

IteratorIterator::key

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::key — Lit la clé de l'élément courant

Description

public scalar IteratorIterator::key ( void )

Lit la clé de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé de l'élément courant.

Voir aussi

  • IteratorIterator::current() - Lit la valeur courante


Avance au prochain élément

  • « IteratorIterator::key
  • IteratorIterator::rewind »
  • PHP Manual
  • IteratorIterator
  • Avance au prochain élément

IteratorIterator::next

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::next — Avance au prochain élément

Description

public void IteratorIterator::next ( void )

Avance au prochain élément.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • IteratorIterator::rewind() - Retourne au premier élément
  • IteratorIterator::valid() - Vérifie si un itérateur est valide


Retourne au premier élément

  • « IteratorIterator::next
  • IteratorIterator::valid »
  • PHP Manual
  • IteratorIterator
  • Retourne au premier élément

IteratorIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::rewind — Retourne au premier élément

Description

public void IteratorIterator::rewind ( void )

Retourne au premier élément.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • IteratorIterator::next() - Avance au prochain élément
  • IteratorIterator::valid() - Vérifie si un itérateur est valide


Vérifie si un itérateur est valide

  • « IteratorIterator::rewind
  • LimitIterator »
  • PHP Manual
  • IteratorIterator
  • Vérifie si un itérateur est valide

IteratorIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::valid — Vérifie si un itérateur est valide

Description

public bool IteratorIterator::valid ( void )

Vérifie si un itérateur est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'itérateur est valide, et FALSE sinon.

Voir aussi

  • iterator_count() - Compte de nombre d'éléments dans un itérateur
  • IteratorIterator::current() - Lit la valeur courante


La classe LimitIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

La classe LimitIterator permet d'itérer sur une partie limitée d'entités depuis un Iterator.

Synopsis de la classe

LimitIterator extends IteratorIterator implements OuterIterator {
/* Méthodes */
public __construct ( Iterator $iterator [, int $offset = 0 [, int $count = -1 ]] )
public mixed current ( void )
public Iterator getInnerIterator ( void )
public int getPosition ( void )
public mixed key ( void )
public void next ( void )
public void rewind ( void )
public int seek ( int $position )
public bool valid ( void )
}

Exemples

Exemple #1 Exemple d'utilisation de LimitIterator

<?php

// Creér un itérateur à limiter
$fruits = new ArrayIterator(array(
    'apple',
    'banana',
    'cherry',
    'damson',
    'elderberry'
));

// Boucle sur les 3 premiers fruits uniquement
foreach (new LimitIterator($fruits, 0, 3) as $fruit) {
    var_dump($fruit);
}

echo "\n";

// Boucle depuis le 3ème fruit jusqu'au dernier
// Note: la clé démarre à zéro pour apple
foreach (new LimitIterator($fruits, 2) as $fruit) {
    var_dump($fruit);
}

?>

L'exemple ci-dessus va afficher :

string(5) "apple"
string(6) "banana"
string(6) "cherry"

string(6) "cherry"
string(6) "damson"
string(10) "elderberry"

Sommaire

  • LimitIterator::__construct — Construit un nouvel objet LimitIterator
  • LimitIterator::current — Récupère l'élément courant
  • LimitIterator::getInnerIterator — Récupère l'itérateur interne
  • LimitIterator::getPosition — Retourne la position courante
  • LimitIterator::key — Récupère la clé courante
  • LimitIterator::next — Déplace l'itérateur à la position suivante
  • LimitIterator::rewind — Replace l'itérateur au début
  • LimitIterator::seek — Place l'itérateur à une position donnée
  • LimitIterator::valid — Vérifie si l'élément courant est valide


Construit un nouvel objet LimitIterator

  • « LimitIterator
  • LimitIterator::current »
  • PHP Manual
  • LimitIterator
  • Construit un nouvel objet LimitIterator

LimitIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::__construct — Construit un nouvel objet LimitIterator

Description

public LimitIterator::__construct ( Iterator $iterator [, int $offset = 0 [, int $count = -1 ]] )

Construit un nouvel objet LimitIterator,depuis iterator avec un offset et une limite maximum count

Liste de paramètres

iterator

L'Iterator à limiter.

offset

Position optionnelle de la limite.

count

Nombre optionnelle de la limite.

Valeurs de retour

Le nouvel objet LimitIterator.

Erreurs / Exceptions

Envoie une OutOfRangeException si offset est inférieur à 0 ou si count est inférieur à -1.

Exemples

Exemple #1 Exemple LimitIterator::__construct()

<?php
$ait = new ArrayIterator(array('a', 'b', 'c', 'd', 'e'));
$lit = new LimitIterator($ait, 1, 3);
foreach ($lit as $value) {
    echo $value . "\n";
}
?>

L'exemple ci-dessus va afficher :

b
c
d

Voir aussi

  • Exemples LimitIterator


Récupère l'élément courant

  • « LimitIterator::__construct
  • LimitIterator::getInnerIterator »
  • PHP Manual
  • LimitIterator
  • Récupère l'élément courant

LimitIterator::current

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::current — Récupère l'élément courant

Description

public mixed LimitIterator::current ( void )

Récupère l'élément courant de l'Iterator interne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'élément courant ou NULL si il n'y en a pas.

Voir aussi

  • LimitIterator::key() - Récupère la clé courante
  • LimitIterator::next() - Déplace l'itérateur à la position suivante
  • LimitIterator::rewind() - Replace l'itérateur au début
  • LimitIterator::seek() - Place l'itérateur à une position donnée
  • LimitIterator::valid() - Vérifie si l'élément courant est valide


Récupère l'itérateur interne

  • « LimitIterator::current
  • LimitIterator::getPosition »
  • PHP Manual
  • LimitIterator
  • Récupère l'itérateur interne

LimitIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::getInnerIterator — Récupère l'itérateur interne

Description

public Iterator LimitIterator::getInnerIterator ( void )

Récupère l'Iterator interne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur interne passé à LimitIterator::__construct().

Voir aussi

  • LimitIterator::__construct() - Construit un nouvel objet LimitIterator
  • IteratorIterator::getInnerIterator() - Retourne l'itérateur interne


Retourne la position courante

  • « LimitIterator::getInnerIterator
  • LimitIterator::key »
  • PHP Manual
  • LimitIterator
  • Retourne la position courante

LimitIterator::getPosition

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::getPosition — Retourne la position courante

Description

public int LimitIterator::getPosition ( void )

Retourne la position (partant de zéro) de l'itérateur interne Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La position courante.

Exemples

Exemple #1 Exemple LimitIterator::getPosition()

<?php
$fruits = array(
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry',
    'd' => 'damson',
    'e' => 'elderberry'
);
$array_it = new ArrayIterator($fruits);
$limit_it = new LimitIterator($array_it, 2, 3);
foreach ($limit_it as $item) {
    echo $limit_it->getPosition() . ' ' . $item . "\n";
}
?>

L'exemple ci-dessus va afficher :

2 cherry
3 damson
4 elderberry

Voir aussi

  • FilterIterator::key() - Récupère la clé courante


Récupère la clé courante

  • « LimitIterator::getPosition
  • LimitIterator::next »
  • PHP Manual
  • LimitIterator
  • Récupère la clé courante

LimitIterator::key

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::key — Récupère la clé courante

Description

public mixed LimitIterator::key ( void )

Récupère la clé courante de l'itérateur interne Iterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé de l'élément courant.

Voir aussi

  • LimitIterator::getPosition() - Retourne la position courante
  • LimitIterator::current() - Récupère l'élément courant
  • LimitIterator::next() - Déplace l'itérateur à la position suivante
  • LimitIterator::rewind() - Replace l'itérateur au début
  • LimitIterator::seek() - Place l'itérateur à une position donnée
  • LimitIterator::valid() - Vérifie si l'élément courant est valide


Déplace l'itérateur à la position suivante

  • « LimitIterator::key
  • LimitIterator::rewind »
  • PHP Manual
  • LimitIterator
  • Déplace l'itérateur à la position suivante

LimitIterator::next

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::next — Déplace l'itérateur à la position suivante

Description

public void LimitIterator::next ( void )

Déplace l'itérateur à la position suivante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • LimitIterator::current() - Récupère l'élément courant
  • LimitIterator::key() - Récupère la clé courante
  • LimitIterator::rewind() - Replace l'itérateur au début
  • LimitIterator::seek() - Place l'itérateur à une position donnée
  • LimitIterator::valid() - Vérifie si l'élément courant est valide


Replace l'itérateur au début

  • « LimitIterator::next
  • LimitIterator::seek »
  • PHP Manual
  • LimitIterator
  • Replace l'itérateur au début

LimitIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::rewind — Replace l'itérateur au début

Description

public void LimitIterator::rewind ( void )

Replace l'itérateur à la position précisée dans LimitIterator::__construct().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • LimitIterator::current() - Récupère l'élément courant
  • LimitIterator::key() - Récupère la clé courante
  • LimitIterator::next() - Déplace l'itérateur à la position suivante
  • LimitIterator::seek() - Place l'itérateur à une position donnée
  • LimitIterator::valid() - Vérifie si l'élément courant est valide


Place l'itérateur à une position donnée

  • « LimitIterator::rewind
  • LimitIterator::valid »
  • PHP Manual
  • LimitIterator
  • Place l'itérateur à une position donnée

LimitIterator::seek

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::seek — Place l'itérateur à une position donnée

Description

public int LimitIterator::seek ( int $position )

Déplace l'itérateur interne à la position position.

Liste de paramètres

position

La position sur laquelle on souhaite se placer.

Valeurs de retour

Retourne la position après déplacement.

Erreurs / Exceptions

Envoie une OutOfBoundsException si la position est hors des limites indiquées dans LimitIterator::__construct().

Voir aussi

  • LimitIterator::current() - Récupère l'élément courant
  • LimitIterator::key() - Récupère la clé courante
  • LimitIterator::rewind() - Replace l'itérateur au début
  • LimitIterator::next() - Déplace l'itérateur à la position suivante
  • LimitIterator::valid() - Vérifie si l'élément courant est valide


Vérifie si l'élément courant est valide

  • « LimitIterator::seek
  • MultipleIterator »
  • PHP Manual
  • LimitIterator
  • Vérifie si l'élément courant est valide

LimitIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::valid — Vérifie si l'élément courant est valide

Description

public bool LimitIterator::valid ( void )

Vérifie si l'élément courant est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • LimitIterator::current() - Récupère l'élément courant
  • LimitIterator::key() - Récupère la clé courante
  • LimitIterator::rewind() - Replace l'itérateur au début
  • LimitIterator::next() - Déplace l'itérateur à la position suivante
  • LimitIterator::seek() - Place l'itérateur à une position donnée


La classe MultipleIterator

(PHP 5 >= 5.3.0, PHP 7)

Introduction

Un intérateur qui itère séquentiellement sur plusieurs itérateurs.

Synopsis de la classe

MultipleIterator implements Iterator {
/* Constantes */
const integer MIT_NEED_ANY = 0 ;
const integer MIT_NEED_ALL = 1 ;
const integer MIT_KEYS_NUMERIC = 0 ;
const integer MIT_KEYS_ASSOC = 2 ;
/* Méthodes */
public __construct ([ int $flags = MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC ] )
public void attachIterator ( Iterator $iterator [, string $infos ] )
public bool containsIterator ( Iterator $iterator )
public int countIterators ( void )
public array current ( void )
public void detachIterator ( Iterator $iterator )
public int getFlags ( void )
public array key ( void )
public void next ( void )
public void rewind ( void )
public void setFlags ( int $flags )
public bool valid ( void )
}

Constantes pré-définies

MultipleIterator::MIT_NEED_ANY

N'impose pas que les itérateurs soient tous valides dans une itération.

MultipleIterator::MIT_NEED_ALL

Impose que les itérateurs soient tous valides dans une itération.

MultipleIterator::MIT_KEYS_NUMERIC

Les clés sont créés à partir des positions des itérateurs.

MultipleIterator::MIT_KEYS_ASSOC

Les clés sont créés à partir des informations associées des itérateurs.

Sommaire

  • MultipleIterator::attachIterator — Attache un itérateur
  • MultipleIterator::__construct — Construit un nouvel objet MultipleIterator
  • MultipleIterator::containsIterator — Vérifie si un itérateur est attaché
  • MultipleIterator::countIterators — Récupère le nombre d'instances d'itérateurs attachés
  • MultipleIterator::current — Récupère les instantes des itérateurs attachés
  • MultipleIterator::detachIterator — Détache un itérateur
  • MultipleIterator::getFlags — Récupère les informations d'un drapeau
  • MultipleIterator::key — Récupère les instances des itérateurs enregistrés
  • MultipleIterator::next — Déplace vers l'avant toutes les instances des itérateurs attachés
  • MultipleIterator::rewind — Réinitialise toutes les instances d'itérateurs attachés
  • MultipleIterator::setFlags — Définit des drapeaux
  • MultipleIterator::valid — Vérifie la validité d'un sous-itérateur


Attache un itérateur

  • « MultipleIterator
  • MultipleIterator::__construct »
  • PHP Manual
  • MultipleIterator
  • Attache un itérateur

MultipleIterator::attachIterator

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::attachIterator — Attache un itérateur

Description

public void MultipleIterator::attachIterator ( Iterator $iterator [, string $infos ] )

Attache un itérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

Le nouvel itérateur à attacher.

infos

Les informations de l'itérateur, qui doivent être un entier, une chaîne de caractères ou NULL.

Valeurs de retour

Erreurs / Exceptions

Une exception IllegalValueException si le paramètre iterator est invalide, ou si infos est une information déjà associée.

Voir aussi

  • MultipleIterator::__construct() - Construit un nouvel objet MultipleIterator


Construit un nouvel objet MultipleIterator

  • « MultipleIterator::attachIterator
  • MultipleIterator::containsIterator »
  • PHP Manual
  • MultipleIterator
  • Construit un nouvel objet MultipleIterator

MultipleIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::__construct — Construit un nouvel objet MultipleIterator

Description

public MultipleIterator::__construct ([ int $flags = MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC ] )

Construit un nouvel objet MultipleIterator.

Liste de paramètres

flags

Le drapeau à définir, suivant les constantes.

  • MultipleIterator::MIT_NEED_ALL ou MultipleIterator::MIT_NEED_ANY
  • MultipleIterator::MIT_KEYS_NUMERIC ou MultipleIterator::MIT_KEYS_ASSOC

Par défaut, vaut MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Itère un MultipleIterator

<?php
$people = new ArrayIterator(array('John', 'Jane', 'Jack', 'Judy'));
$roles  = new ArrayIterator(array('Developer', 'Scrum Master', 'Project Owner'));

$team = new MultipleIterator($flags);
$team->attachIterator($people, 'person');
$team->attachIterator($roles, 'role');

foreach ($team as $member) {
    print_r($member);
}
?>

Affichage avec $flags = MIT_NEED_ALL|MIT_KEYS_NUMERIC

Array
(
    [0] => John
    [1] => Developer
)
Array
(
    [0] => Jane
    [1] => Scrum Master
)
Array
(
    [0] => Jack
    [1] => Project Owner
)

Affichage avec $flags = MIT_NEED_ANY|MIT_KEYS_NUMERIC

Array
(
    [0] => John
    [1] => Developer
)
Array
(
    [0] => Jane
    [1] => Scrum Master
)
Array
(
    [0] => Jack
    [1] => Project Owner
)
Array
(
    [0] => Judy
    [1] =>
)

Affichage avec $flags = MIT_NEED_ALL|MIT_KEYS_ASSOC

Array
(
    [person] => John
    [role] => Developer
)
Array
(
    [person] => Jane
    [role] => Scrum Master
)
Array
(
    [person] => Jack
    [role] => Project Owner
)

Affichage avec $flags = MIT_NEED_ANY|MIT_KEYS_ASSOC

Array
(
    [person] => John
    [role] => Developer
)
Array
(
    [person] => Jane
    [role] => Scrum Master
)
Array
(
    [person] => Jack
    [role] => Project Owner
)
Array
(
    [person] => Judy
    [role] =>
)

Voir aussi

  • Les constantes
  • MultipleIterator::valid() - Vérifie la validité d'un sous-itérateur


Vérifie si un itérateur est attaché

  • « MultipleIterator::__construct
  • MultipleIterator::countIterators »
  • PHP Manual
  • MultipleIterator
  • Vérifie si un itérateur est attaché

MultipleIterator::containsIterator

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::containsIterator — Vérifie si un itérateur est attaché

Description

public bool MultipleIterator::containsIterator ( Iterator $iterator )

Vérifie si un itérateur est attaché.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • MultipleIterator::valid() - Vérifie la validité d'un sous-itérateur


Récupère le nombre d'instances d'itérateurs attachés

  • « MultipleIterator::containsIterator
  • MultipleIterator::current »
  • PHP Manual
  • MultipleIterator
  • Récupère le nombre d'instances d'itérateurs attachés

MultipleIterator::countIterators

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::countIterators — Récupère le nombre d'instances d'itérateurs attachés

Description

public int MultipleIterator::countIterators ( void )

Récupère le nombre d'instances d'itérateurs attachés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre d'instances d'itérateurs attachés (sous la forme d'un entier).

Voir aussi

  • MultipleIterator::containsIterator() - Vérifie si un itérateur est attaché


Récupère les instantes des itérateurs attachés

  • « MultipleIterator::countIterators
  • MultipleIterator::detachIterator »
  • PHP Manual
  • MultipleIterator
  • Récupère les instantes des itérateurs attachés

MultipleIterator::current

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::current — Récupère les instantes des itérateurs attachés

Description

public array MultipleIterator::current ( void )

Récupère les instantes courantes des itérateurs attachés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant les valeurs courantes de chaque itérateur attaché, ou FALSE si aucun itérateur n'est attaché.

Erreurs / Exceptions

Une exception RuntimeException si le mode MIT_NEED_ALL est défini et au moins un itérateur invalide. Ou une exception IllegalValueException si une clé vaut NULL et que le mode MIT_KEYS_ASSOC est défini.

Voir aussi

  • MultipleIterator::valid() - Vérifie la validité d'un sous-itérateur


Détache un itérateur

  • « MultipleIterator::current
  • MultipleIterator::getFlags »
  • PHP Manual
  • MultipleIterator
  • Détache un itérateur

MultipleIterator::detachIterator

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::detachIterator — Détache un itérateur

Description

public void MultipleIterator::detachIterator ( Iterator $iterator )

Détache un itérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur à détacher.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • MultipleIterator::attachIterator() - Attache un itérateur


Récupère les informations d'un drapeau

  • « MultipleIterator::detachIterator
  • MultipleIterator::key »
  • PHP Manual
  • MultipleIterator
  • Récupère les informations d'un drapeau

MultipleIterator::getFlags

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::getFlags — Récupère les informations d'un drapeau

Description

public int MultipleIterator::getFlags ( void )

Récupère les informations d'un drapeau.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les informations d'un drapeau, sous la forme d'un entier.

Voir aussi

  • Les constantes
  • MultipleIterator::__construct() - Construit un nouvel objet MultipleIterator
  • MultipleIterator::setFlags() - Définit des drapeaux


Récupère les instances des itérateurs enregistrés

  • « MultipleIterator::getFlags
  • MultipleIterator::next »
  • PHP Manual
  • MultipleIterator
  • Récupère les instances des itérateurs enregistrés

MultipleIterator::key

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::key — Récupère les instances des itérateurs enregistrés

Description

public array MultipleIterator::key ( void )

Récupère les clés des instances des itérateurs enregistrés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de tous les itérateurs enregistrés, ou FALSE si aucun sous-itérateur n'est attaché.

Erreurs / Exceptions

Une exception LogicException si le mode MIT_NEED_ALL est défini, et au moins un itérateur attaché invalide.

L'appel à cette méthode depuis foreach provoque une alerte de type "Illegal type returned".

Voir aussi

  • MultipleIterator::current() - Récupère les instantes des itérateurs attachés


Déplace vers l'avant toutes les instances des itérateurs attachés

  • « MultipleIterator::key
  • MultipleIterator::rewind »
  • PHP Manual
  • MultipleIterator
  • Déplace vers l'avant toutes les instances des itérateurs attachés

MultipleIterator::next

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::next — Déplace vers l'avant toutes les instances des itérateurs attachés

Description

public void MultipleIterator::next ( void )

Déplace vers l'avant toutes les instances des itérateurs attachés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • MultipleIterator::rewind() - Réinitialise toutes les instances d'itérateurs attachés


Réinitialise toutes les instances d'itérateurs attachés

  • « MultipleIterator::next
  • MultipleIterator::setFlags »
  • PHP Manual
  • MultipleIterator
  • Réinitialise toutes les instances d'itérateurs attachés

MultipleIterator::rewind

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::rewind — Réinitialise toutes les instances d'itérateurs attachés

Description

public void MultipleIterator::rewind ( void )

Réinitialise toutes les instances d'itérateurs attachés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • MultipleIterator::next() - Déplace vers l'avant toutes les instances des itérateurs attachés


Définit des drapeaux

  • « MultipleIterator::rewind
  • MultipleIterator::valid »
  • PHP Manual
  • MultipleIterator
  • Définit des drapeaux

MultipleIterator::setFlags

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::setFlags — Définit des drapeaux

Description

public void MultipleIterator::setFlags ( int $flags )

Définit des drapeaux.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flags

Le drapeau à définir, suivant les constantes disponibles

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Les constantes
  • MultipleIterator::__construct() - Construit un nouvel objet MultipleIterator
  • MultipleIterator::getFlags() - Récupère les informations d'un drapeau


Vérifie la validité d'un sous-itérateur

  • « MultipleIterator::setFlags
  • NoRewindIterator »
  • PHP Manual
  • MultipleIterator
  • Vérifie la validité d'un sous-itérateur

MultipleIterator::valid

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::valid — Vérifie la validité d'un sous-itérateur

Description

public bool MultipleIterator::valid ( void )

Vérifie la validité d'un sous-itérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si un ou tous les sous-itérateurs sont valides, suivant les drapeaux, FALSE sinon.

Voir aussi

  • MultipleIterator::__construct() - Construit un nouvel objet MultipleIterator


La classe NoRewindIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Un itérateur qui ne peut pas être remis à zéro.

Synopsis de la classe

NoRewindIterator extends IteratorIterator {
/* Méthodes */
public __construct ( Iterator $iterator )
public mixed current ( void )
public iterator getInnerIterator ( void )
public mixed key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
/* Méthodes héritées */
public IteratorIterator::__construct ( Traversable $iterator )
public mixed IteratorIterator::current ( void )
public Traversable IteratorIterator::getInnerIterator ( void )
public scalar IteratorIterator::key ( void )
public void IteratorIterator::next ( void )
public void IteratorIterator::rewind ( void )
public bool IteratorIterator::valid ( void )
}

Sommaire

  • NoRewindIterator::__construct — Construit un nouvel objet NoRewindIterator
  • NoRewindIterator::current — Récupère la valeur courante
  • NoRewindIterator::getInnerIterator — Récupère l'itérateur interne
  • NoRewindIterator::key — Récupère la clé courante
  • NoRewindIterator::next — Se déplace vers le prochain élément
  • NoRewindIterator::rewind — Réinitialise l'itérateur interne
  • NoRewindIterator::valid — Valide un itérateur


Construit un nouvel objet NoRewindIterator

  • « NoRewindIterator
  • NoRewindIterator::current »
  • PHP Manual
  • NoRewindIterator
  • Construit un nouvel objet NoRewindIterator

NoRewindIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::__construct — Construit un nouvel objet NoRewindIterator

Description

public NoRewindIterator::__construct ( Iterator $iterator )

Construit un nouvel objet NoRewindIterator.

Liste de paramètres

iterator

L'itérateur à utiliser.

Valeurs de retour

Un objet NoRewindIterator() basé sur l'itérateur iterator fourni.

Exemples

Exemple #1 Exemple avec NoRewindIterator::__construct()

La seconde boucle n'affiche rien car l'itérateur ne peut être utilisé qu'une seule fois sans être réinitialisé.

<?php
$fruit = array('apple', 'banana', 'cranberry');

$arr = new ArrayObject($fruit);
$it  = new NoRewindIterator($arr->getIterator());

echo "Fruit A:\n";
foreach( $it as $item ) {
    echo $item . "\n";
}

echo "Fruit B:\n";
foreach( $it as $item ) {
    echo $item . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fruit A:
apple
banana
cranberry
Fruit B:

Voir aussi

  • NoRewindIterator::valid() - Valide un itérateur


Récupère la valeur courante

  • « NoRewindIterator::__construct
  • NoRewindIterator::getInnerIterator »
  • PHP Manual
  • NoRewindIterator
  • Récupère la valeur courante

NoRewindIterator::current

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::current — Récupère la valeur courante

Description

public mixed NoRewindIterator::current ( void )

Récupère la valeur courante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur courante.

Voir aussi

  • NoRewindIterator::key() - Récupère la clé courante


Récupère l'itérateur interne

  • « NoRewindIterator::current
  • NoRewindIterator::key »
  • PHP Manual
  • NoRewindIterator
  • Récupère l'itérateur interne

NoRewindIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::getInnerIterator — Récupère l'itérateur interne

Description

public iterator NoRewindIterator::getInnerIterator ( void )

Récupère l'itérateur interne, passé via la méthode NoRewindIterator.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur interne, passé via le constructeur NoRewindIterator::__construct().

Voir aussi

  • NoRewindIterator::valid() - Valide un itérateur


Récupère la clé courante

  • « NoRewindIterator::getInnerIterator
  • NoRewindIterator::next »
  • PHP Manual
  • NoRewindIterator
  • Récupère la clé courante

NoRewindIterator::key

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::key — Récupère la clé courante

Description

public mixed NoRewindIterator::key ( void )

Récupère la clé courante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé courante.

Voir aussi

  • NoRewindIterator::next() - Se déplace vers le prochain élément


Se déplace vers le prochain élément

  • « NoRewindIterator::key
  • NoRewindIterator::rewind »
  • PHP Manual
  • NoRewindIterator
  • Se déplace vers le prochain élément

NoRewindIterator::next

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::next — Se déplace vers le prochain élément

Description

public void NoRewindIterator::next ( void )

Se déplace vers le prochain élément.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • NoRewindIterator::rewind() - Réinitialise l'itérateur interne


Réinitialise l'itérateur interne

  • « NoRewindIterator::next
  • NoRewindIterator::valid »
  • PHP Manual
  • NoRewindIterator
  • Réinitialise l'itérateur interne

NoRewindIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::rewind — Réinitialise l'itérateur interne

Description

public void NoRewindIterator::rewind ( void )

Réinitialise l'itérateur interne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec NoRewindIterator::rewind()

Cet exemple démontre que l'appel à cette méthode sur un objet NoRewindIterator n'a aucun effet.

<?php
$fruits = array("lemon", "orange", "apple", "pear");

$noRewindIterator = new NoRewindIterator(new ArrayIterator($fruits));

echo $noRewindIterator->current() . "\n";
$noRewindIterator->next();
// Maintenant, on réinitialise l'itérateur (rien ne doit survenir)
$noRewindIterator->rewind();
echo $noRewindIterator->current() . "\n";
?>

L'exemple ci-dessus va afficher :

lemon
orange


Valide un itérateur

  • « NoRewindIterator::rewind
  • ParentIterator »
  • PHP Manual
  • NoRewindIterator
  • Valide un itérateur

NoRewindIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::valid — Valide un itérateur

Description

public bool NoRewindIterator::valid ( void )

Vérifie si un itérateur est valide.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • NoRewindIterator::getInnerIterator() - Récupère l'itérateur interne


La classe ParentIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Ce sous-type de FilterIterator permet la récursivité au moyen de RecursiveIteratorIterator et il ne montre alors que les éléments ayant des enfants.

Synopsis de la classe

ParentIterator extends RecursiveFilterIterator implements RecursiveIterator , OuterIterator {
/* Méthodes */
public bool accept ( void )
public __construct ( RecursiveIterator $iterator )
public ParentIterator getChildren ( void )
public bool hasChildren ( void )
public void next ( void )
public void rewind ( void )
}

Sommaire

  • ParentIterator::accept — Détermine si l'élément courant a des fils
  • ParentIterator::__construct — Construit un nouvel objet ParentIterator
  • ParentIterator::getChildren — Retourne le fils de l'itérateur interne contenu dans ParentIterator
  • ParentIterator::hasChildren — Vérifie si l'élément courant de l'itérateur interne a un fils
  • ParentIterator::next — Déplace l'itérateur à la position suivante
  • ParentIterator::rewind — Replace l'itérateur au début


Détermine si l'élément courant a des fils

  • « ParentIterator
  • ParentIterator::__construct »
  • PHP Manual
  • ParentIterator
  • Détermine si l'élément courant a des fils

ParentIterator::accept

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::accept — Détermine si l'élément courant a des fils

Description

public bool ParentIterator::accept ( void )

Détermine si l'élément courant a des fils.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'élément courant est acceptable, FALSE sinon.

Voir aussi

  • ParentIterator::hasChildren() - Vérifie si l'élément courant de l'itérateur interne a un fils
  • FilterIterator::accept() - Vérifie si l'élément courant de l'itérateur est acceptable


Construit un nouvel objet ParentIterator

  • « ParentIterator::accept
  • ParentIterator::getChildren »
  • PHP Manual
  • ParentIterator
  • Construit un nouvel objet ParentIterator

ParentIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::__construct — Construit un nouvel objet ParentIterator

Description

public ParentIterator::__construct ( RecursiveIterator $iterator )

Construit un nouvel objet ParentIterator sur un itérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur sur lequel nous devons construire le nouvel objet.

Valeurs de retour

L'objet ParentIterator.


Retourne le fils de l'itérateur interne contenu dans ParentIterator

  • « ParentIterator::__construct
  • ParentIterator::hasChildren »
  • PHP Manual
  • ParentIterator
  • Retourne le fils de l'itérateur interne contenu dans ParentIterator

ParentIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::getChildren — Retourne le fils de l'itérateur interne contenu dans ParentIterator

Description

public ParentIterator ParentIterator::getChildren ( void )

Retourne le fils de l'itérateur interne contenu dans ParentIterator.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet.


Vérifie si l'élément courant de l'itérateur interne a un fils

  • « ParentIterator::getChildren
  • ParentIterator::next »
  • PHP Manual
  • ParentIterator
  • Vérifie si l'élément courant de l'itérateur interne a un fils

ParentIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::hasChildren — Vérifie si l'élément courant de l'itérateur interne a un fils

Description

public bool ParentIterator::hasChildren ( void )

Vérifie si l'élément courant de l'itérateur interne a un fils.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Déplace l'itérateur à la position suivante

  • « ParentIterator::hasChildren
  • ParentIterator::rewind »
  • PHP Manual
  • ParentIterator
  • Déplace l'itérateur à la position suivante

ParentIterator::next

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::next — Déplace l'itérateur à la position suivante

Description

public void ParentIterator::next ( void )

Déplace l'itérateur à la position suivante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Replace l'itérateur au début

  • « ParentIterator::next
  • RecursiveArrayIterator »
  • PHP Manual
  • ParentIterator
  • Replace l'itérateur au début

ParentIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::rewind — Replace l'itérateur au début

Description

public void ParentIterator::rewind ( void )

Replace l'itérateur au début.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


La classe RecursiveArrayIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Cet itérateur permet la suppression et la modification de valeurs et clés durant l'itération sur des tableaux et des objets, de la même façon que ArrayIterator. De plus, il est possible d'itérer sur l'élément courant.

Synopsis de la classe

RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator {
/* Méthodes */
public RecursiveArrayIterator getChildren ( void )
public bool hasChildren ( void )
/* Méthodes héritées */
public void ArrayIterator::append ( mixed $value )
public void ArrayIterator::asort ( void )
public ArrayIterator::__construct ([ mixed $array = array() [, int $flags = 0 ]] )
public int ArrayIterator::count ( void )
public mixed ArrayIterator::current ( void )
public array ArrayIterator::getArrayCopy ( void )
public void ArrayIterator::getFlags ( void )
public mixed ArrayIterator::key ( void )
public void ArrayIterator::ksort ( void )
public void ArrayIterator::natcasesort ( void )
public void ArrayIterator::natsort ( void )
public void ArrayIterator::next ( void )
public void ArrayIterator::offsetExists ( string $index )
public mixed ArrayIterator::offsetGet ( string $index )
public void ArrayIterator::offsetSet ( string $index , string $newval )
public void ArrayIterator::offsetUnset ( string $index )
public void ArrayIterator::rewind ( void )
public void ArrayIterator::seek ( int $position )
public string ArrayIterator::serialize ( void )
public void ArrayIterator::setFlags ( string $flags )
public void ArrayIterator::uasort ( string $cmp_function )
public void ArrayIterator::uksort ( string $cmp_function )
public string ArrayIterator::unserialize ( string $serialized )
public bool ArrayIterator::valid ( void )
}

Sommaire

  • RecursiveArrayIterator::getChildren — Retourne un itérateur pour l'entrée courante
  • RecursiveArrayIterator::hasChildren — Vérifie si l'entrée courante est un tableau ou un objet


Retourne un itérateur pour l'entrée courante

  • « RecursiveArrayIterator
  • RecursiveArrayIterator::hasChildren »
  • PHP Manual
  • RecursiveArrayIterator
  • Retourne un itérateur pour l'entrée courante

RecursiveArrayIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveArrayIterator::getChildren — Retourne un itérateur pour l'entrée courante

Description

public RecursiveArrayIterator RecursiveArrayIterator::getChildren ( void )

Retourne un itérateur pour l'entrée de l'itérateur courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un itérateur pour l'entrée courante, si c'est un tableau ou un objet.

Erreurs / Exceptions

Une exception InvalidArgumentException sera émise si l'entrée courante ne contient pas un tableau ou un objet.

Exemples

Exemple #1 Exemple avec RecursiveArrayIterator::getChildren()

<?php
$fruits = array("a" => "lemon", "b" => "orange", array("a" => "apple", "p" => "pear"));

$iterator = new RecursiveArrayIterator($fruits);

while ($iterator->valid()) {

    if ($iterator->hasChildren()) {
        // Affiche tous les fils
        foreach ($iterator->getChildren() as $key => $value) {
            echo $key . ' : ' . $value . "\n";
        }
    } else {
        echo "Aucun fils.\n";
    }

    $iterator->next();
}
?>

L'exemple ci-dessus va afficher :

Aucun fils.
Aucun fils.
a : apple
p : pear

Voir aussi

  • RecursiveArrayIterator::hasChildren() - Vérifie si l'entrée courante est un tableau ou un objet


Vérifie si l'entrée courante est un tableau ou un objet

  • « RecursiveArrayIterator::getChildren
  • RecursiveCachingIterator »
  • PHP Manual
  • RecursiveArrayIterator
  • Vérifie si l'entrée courante est un tableau ou un objet

RecursiveArrayIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveArrayIterator::hasChildren — Vérifie si l'entrée courante est un tableau ou un objet

Description

public bool RecursiveArrayIterator::hasChildren ( void )

Vérifie si l'entrée courante est un tableau ou un objet pour lequel un itérateur peut être obtenu via la méthode RecursiveArrayIterator::getChildren().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'entrée courante est un tableau ou un objet, FALSE sinon.

Exemples

Exemple #1 Exemple avec RecursiveArrayIterator::hasChildren()

<?php
$fruits = array("a" => "lemon", "b" => "orange", array("a" => "apple", "p" => "pear"));

$iterator = new RecursiveArrayIterator($fruits);

while ($iterator->valid()) {

    // Vérifie s'il y a des fils
    if ($iterator->hasChildren()) {
        // Affiche tous les fils
        foreach ($iterator->getChildren() as $key => $value) {
            echo $key . ' : ' . $value . "\n";
        }
    } else {
        echo "Aucun fils.\n";
    }

    $iterator->next();
}
?>

L'exemple ci-dessus va afficher :

Aucun fils.
Aucun fils.
a : apple
p : pear

Voir aussi

  • RecursiveArrayIterator::getChildren() - Retourne un itérateur pour l'entrée courante


La classe RecursiveCachingIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

...

Synopsis de la classe

RecursiveCachingIterator extends CachingIterator implements Countable , ArrayAccess , OuterIterator , RecursiveIterator {
/* Méthodes */
public __construct ( Iterator $iterator [, string $flags = self::CALL_TOSTRING ] )
public RecursiveCachingIterator getChildren ( void )
public bool hasChildren ( void )
/* Méthodes héritées */
public CachingIterator::__construct ( Iterator $iterator [, int $flags = self::CALL_TOSTRING ] )
public int CachingIterator::count ( void )
public void CachingIterator::current ( void )
public array CachingIterator::getCache ( void )
public int CachingIterator::getFlags ( void )
public Iterator CachingIterator::getInnerIterator ( void )
public void CachingIterator::hasNext ( void )
public scalar CachingIterator::key ( void )
public void CachingIterator::next ( void )
public void CachingIterator::offsetExists ( string $index )
public void CachingIterator::offsetGet ( string $index )
public void CachingIterator::offsetSet ( string $index , string $newval )
public void CachingIterator::offsetUnset ( string $index )
public void CachingIterator::rewind ( void )
public void CachingIterator::setFlags ( int $flags )
public void CachingIterator::__toString ( void )
public void CachingIterator::valid ( void )
}

Sommaire

  • RecursiveCachingIterator::__construct — Constructeur
  • RecursiveCachingIterator::getChildren — Retourne le fils de l'itérateur interne comme un CachingRecursiveIterator
  • RecursiveCachingIterator::hasChildren — Vérifie si l'élément courant de l'itérateur interne a un fils


Constructeur

  • « RecursiveCachingIterator
  • RecursiveCachingIterator::getChildren »
  • PHP Manual
  • RecursiveCachingIterator
  • Constructeur

RecursiveCachingIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

RecursiveCachingIterator::__construct — Constructeur

Description

public RecursiveCachingIterator::__construct ( Iterator $iterator [, string $flags = self::CALL_TOSTRING ] )

Construit un nouvel objet RecursiveCachingIterator, qui pourra ensuite être passé comme itérateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur à utiliser.

flags

Le drapeau. Utilisez la constante CALL_TOSTRING pour appeler RecursiveCachingIterator::__toString() sur tous les éléments (par défaut), et/ou la constante CATCH_GET_CHILD pour attraper toutes les exceptions émises lorsque l'on tente de récupérer des fils.

Valeurs de retour

Le nouvel objet RecursiveCachingIterator.

Voir aussi

  • CachingIterator::__construct() - Construit un nouvel objet CachingIterator pour l'itérateur


Retourne le fils de l'itérateur interne comme un CachingRecursiveIterator

  • « RecursiveCachingIterator::__construct
  • RecursiveCachingIterator::hasChildren »
  • PHP Manual
  • RecursiveCachingIterator
  • Retourne le fils de l'itérateur interne comme un CachingRecursiveIterator

RecursiveCachingIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveCachingIterator::getChildren — Retourne le fils de l'itérateur interne comme un CachingRecursiveIterator

Description

public RecursiveCachingIterator RecursiveCachingIterator::getChildren ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le fils de l'itérateur, sous la forme d'un RecursiveCachingIterator.


Vérifie si l'élément courant de l'itérateur interne a un fils

  • « RecursiveCachingIterator::getChildren
  • RecursiveCallbackFilterIterator »
  • PHP Manual
  • RecursiveCachingIterator
  • Vérifie si l'élément courant de l'itérateur interne a un fils

RecursiveCachingIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveCachingIterator::hasChildren — Vérifie si l'élément courant de l'itérateur interne a un fils

Description

public bool RecursiveCachingIterator::hasChildren ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'élément courant a un fils, FALSE sinon.


La classe RecursiveCallbackFilterIterator

(PHP 5 >= 5.4.0, PHP 7)

Introduction

Synopsis de la classe

RecursiveCallbackFilterIterator extends CallbackFilterIterator implements OuterIterator , RecursiveIterator {
/* Méthodes */
public __construct ( RecursiveIterator $iterator , string $callback )
public RecursiveCallbackFilterIterator getChildren ( void )
public bool hasChildren ( void )
/* Méthodes héritées */
public string CallbackFilterIterator::accept ( void )
}

Exemples

La fonction de rappel doit accepter jusqu'à 3 arguments : l'élément courant, la clé courante, et l'itérateur courant, respectivement.

Exemple #1 Arguments disponibles pour la fonction de rappel

<?php

/**
 * Fonction de rappel pour RecursiveCallbackFilterIterator
 *
 * @param $current   La valeur de l'élément courant
 * @param $key       La clé de l'élément courant
 * @param $iterator  Itérateur à filtrer
 * @return boolean   TRUE pour accepter l'élément courant, FASLE sinon
 */
function my_callback($current, $key, $iterator) {
    // Votre filtre ici
}

?>

Le filtrage d'un itérateur récursif implique généralement 2 conditions. La première est que, pour autoriser la récursion, la fonction de rappel doit retourner TRUE si l'élément de l'itérateur courant a un fils. La seconde est une condition de filtrage normale, comme la vérification de la taille de fichier ou la vérification de l'extension comme dans l'exemple suivant.

Exemple #2 Exemple simple d'une fonction de rappel récursive

<?php

$dir = new RecursiveDirectoryIterator(__DIR__);

// Filtrage des gros fichiers ( > 100MB)
$files = new RecursiveCallbackFilterIterator($dir, function ($current, $key, $iterator) {
    // Permet la récursion
    if ($iterator->hasChildren()) {
        return TRUE;
    }
    // Vérifie les gros fichiers
    if ($current->isFile() && $current->getSize() > 104857600) {
        return TRUE;
    }
    return FALSE;
});

foreach (new RecursiveIteratorIterator($files) as $file) {
    echo $file->getPathname() . PHP_EOL;
}

?>

Sommaire

  • RecursiveCallbackFilterIterator::__construct — Crée un objet RecursiveCallbackFilterIterator depuis une interface RecursiveIterator
  • RecursiveCallbackFilterIterator::getChildren — Retourne l'itérateur fils interne contenu dans un RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::hasChildren — Vérifie si l'élément courant de l'itérateur interne a un fils


Crée un objet RecursiveCallbackFilterIterator depuis une interface RecursiveIterator

  • « RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::getChildren »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Crée un objet RecursiveCallbackFilterIterator depuis une interface RecursiveIterator

RecursiveCallbackFilterIterator::__construct

(PHP 5 >= 5.4.0, PHP 7)

RecursiveCallbackFilterIterator::__construct — Crée un objet RecursiveCallbackFilterIterator depuis une interface RecursiveIterator

Description

public RecursiveCallbackFilterIterator::__construct ( RecursiveIterator $iterator , string $callback )

Crée un itérateur filtré depuis une interface RecursiveIterator en utilisant la fonction de rappel callback pour déterminer les éléments acceptés ou rejetés.

Liste de paramètres

iterator

L'itérateur récursif à filtrer.

callback

La fonction de rappel, qui doit retourner TRUE pour accepter l'élément courant, FALSE sinon. Voir aussi les exemples.

Peut être n'importe quelle valeur de type callable.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Exemples RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::getChildren() - Retourne l'itérateur fils interne contenu dans un RecursiveCallbackFilterIterator
  • RecursiveCallbackFilteriterator::hasChildren() - Vérifie si l'élément courant de l'itérateur interne a un fils


Retourne l'itérateur fils interne contenu dans un RecursiveCallbackFilterIterator

  • « RecursiveCallbackFilterIterator::__construct
  • RecursiveCallbackFilterIterator::hasChildren »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Retourne l'itérateur fils interne contenu dans un RecursiveCallbackFilterIterator

RecursiveCallbackFilterIterator::getChildren

(PHP 5 >= 5.4.0, PHP 7)

RecursiveCallbackFilterIterator::getChildren — Retourne l'itérateur fils interne contenu dans un RecursiveCallbackFilterIterator

Description

public RecursiveCallbackFilterIterator RecursiveCallbackFilterIterator::getChildren ( void )

Récupère le fils filtré de l'itérateur interne.

RecursiveCallbackFilterIterator::hasChildren() doit être utilisé pour déterminer s'il y a des fils qui peuvent être récupérés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un RecursiveCallbackFilterIterator contenant le fils.

Voir aussi

  • Exemples avec RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::__construct() - Crée un objet RecursiveCallbackFilterIterator depuis une interface RecursiveIterator
  • RecursiveCallbackFilteriterator::hasChildren() - Vérifie si l'élément courant de l'itérateur interne a un fils


Vérifie si l'élément courant de l'itérateur interne a un fils

  • « RecursiveCallbackFilterIterator::getChildren
  • RecursiveDirectoryIterator »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Vérifie si l'élément courant de l'itérateur interne a un fils

RecursiveCallbackFilterIterator::hasChildren

(PHP 5 >= 5.4.0, PHP 7)

RecursiveCallbackFilterIterator::hasChildren — Vérifie si l'élément courant de l'itérateur interne a un fils

Description

public bool RecursiveCallbackFilterIterator::hasChildren ( void )

Retourne TRUE si l'élément courant a un fils, FALSE sinon.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if the current element has children, FALSE otherwise.

Exemples

Exemple #1 Exemple avec RecursiveCallbackFilterIterator::hasChildren()

<?php

$dir = new RecursiveDirectoryIterator(__DIR__);

// Itération récursive sur des fichiers XML
$files = new RecursiveCallbackFilterIterator($dir, function ($current, $key, $iterator) {
    // Autorise la récursion dans les dossiers
    if ($iterator->hasChildren()) {
        return TRUE;
    }
    // Vérifie le fichier XML
    if (!strcasecmp($current->getExtension(), 'xml')) {
        return TRUE;
    }
    return FALSE;
});

?>

Voir aussi

  • Exemples avec RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::__construct() - Crée un objet RecursiveCallbackFilterIterator depuis une interface RecursiveIterator
  • RecursiveCallbackFilteriterator::getChildren() - Retourne l'itérateur fils interne contenu dans un RecursiveCallbackFilterIterator


La classe RecursiveDirectoryIterator

(PHP 5, PHP 7)

Introduction

La classe RecursiveDirectoryIterator fournit un moyen d'itérer récursivement sur des dossiers d'un système de fichiers.

Synopsis de la classe

RecursiveDirectoryIterator extends FileSystemIterator implements SeekableIterator , RecursiveIterator {
/* Méthodes */
public __construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )
public mixed getChildren ( void )
public string getSubPath ( void )
public string getSubPathname ( void )
public bool hasChildren ([ bool $allow_links = false ] )
public string key ( void )
public void next ( void )
public void rewind ( void )
/* Méthodes héritées */
public FilesystemIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )
public mixed FilesystemIterator::current ( void )
public int FilesystemIterator::getFlags ( void )
public string FilesystemIterator::key ( void )
public void FilesystemIterator::next ( void )
public void FilesystemIterator::rewind ( void )
public void FilesystemIterator::setFlags ([ int $flags ] )
}

Historique

Version | Description
5.3.0 | FilesystemIterator devient la classe parente. Avant, la classe mère était DirectoryIterator.
5.3.0 | Implémente SeekableIterator.
5.2.11, 5.3.1 | Ajout de RecursiveDirectoryIterator::FOLLOW_SYMLINKS

Sommaire

  • RecursiveDirectoryIterator::__construct — Construit un objet RecursiveDirectoryIterator
  • RecursiveDirectoryIterator::getChildren — Retourne un itérateur pour l'entrée courante si c'est un dossier
  • RecursiveDirectoryIterator::getSubPath — Récupère le sous-chemin
  • RecursiveDirectoryIterator::getSubPathname — Récupère le sous-chemin et le nom du fichier
  • RecursiveDirectoryIterator::hasChildren — Vérifie si l'entrée courante est un dossier et n'est pas '.' ou '..'
  • RecursiveDirectoryIterator::key — Retourne le chemin et le nom de l'entrée courante du dossier
  • RecursiveDirectoryIterator::next — Se déplace vers la prochaine entrée
  • RecursiveDirectoryIterator::rewind — Revient à la position initiale dans le dossier


Construit un objet RecursiveDirectoryIterator

  • « RecursiveDirectoryIterator
  • RecursiveDirectoryIterator::getChildren »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Construit un objet RecursiveDirectoryIterator

RecursiveDirectoryIterator::__construct

(PHP 5 >= 5.1.2, PHP 7)

RecursiveDirectoryIterator::__construct — Construit un objet RecursiveDirectoryIterator

Description

public RecursiveDirectoryIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )

Construit un objet RecursiveDirectoryIterator() concernant le dossier souhaité.

Liste de paramètres

path

Chemin du dossier sur lequel itérer.

flags

Drapeaux à passer pour changer le comportement de l'itérateur. Une liste de drapeaux peut être trouvée dans la liste des constantes de FilesystemIterator. Elles peuvent aussi être renseignées plus tard au moyen de FilesystemIterator::setFlags()

Valeurs de retour

Retourne l'instance créee de RecursiveDirectoryIterator.

Erreurs / Exceptions

Envoie une UnexpectedValueException si le path n'est pas accessible ou n'est pas un dossier.

Exemples

Exemple #1 Exemple avec RecursiveDirectoryIterator

<?php

$directory = '/tmp';

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

$it->rewind();
while($it->valid()) {

    if (!$it->isDot()) {
        echo 'SubPathName: ' . $it->getSubPathName() . "\n";
        echo 'SubPath:     ' . $it->getSubPath() . "\n";
        echo 'Key:         ' . $it->key() . "\n\n";
    }

    $it->next();
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SubPathName: fruit/apple.xml
SubPath:     fruit
Key:         /tmp/fruit/apple.xml

SubPathName: stuff.xml
SubPath:
Key:         /tmp/stuff.xml

SubPathName: veggies/carrot.xml
SubPath:     veggies
Key:         /tmp/veggies/carrot.xml

Voir aussi

  • FilesystemIterator::__construct() - Construit un objet FilesystemIterator
  • RecursiveIteratorIterator::__construct() - Construit un objet RecursiveIteratorIterator
  • Constantes de FilesystemIterator


Retourne un itérateur pour l'entrée courante si c'est un dossier

  • « RecursiveDirectoryIterator::__construct
  • RecursiveDirectoryIterator::getSubPath »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Retourne un itérateur pour l'entrée courante si c'est un dossier

RecursiveDirectoryIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveDirectoryIterator::getChildren — Retourne un itérateur pour l'entrée courante si c'est un dossier

Description

public mixed RecursiveDirectoryIterator::getChildren ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du fichier, des informations sur le fichier ou $this suivant le drapeau utilisé. Voir les constantes FilesystemIterator.


Récupère le sous-chemin

  • « RecursiveDirectoryIterator::getChildren
  • RecursiveDirectoryIterator::getSubPathname »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Récupère le sous-chemin

RecursiveDirectoryIterator::getSubPath

(PHP 5 >= 5.1.0, PHP 7)

RecursiveDirectoryIterator::getSubPath — Récupère le sous-chemin

Description

public string RecursiveDirectoryIterator::getSubPath ( void )

Récupère le sous-chemin.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le sous-chemin (le sous-dossier).

Voir aussi

  • RecursiveDirectoryIterator::getSubPathName() - Récupère le sous-chemin et le nom du fichier
  • RecursiveDirectoryIterator::key() - Retourne le chemin et le nom de l'entrée courante du dossier


Récupère le sous-chemin et le nom du fichier

  • « RecursiveDirectoryIterator::getSubPath
  • RecursiveDirectoryIterator::hasChildren »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Récupère le sous-chemin et le nom du fichier

RecursiveDirectoryIterator::getSubPathname

(PHP 5 >= 5.1.0, PHP 7)

RecursiveDirectoryIterator::getSubPathname — Récupère le sous-chemin et le nom du fichier

Description

public string RecursiveDirectoryIterator::getSubPathname ( void )

Récupère le sous-chemin et le nom du fichier.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le sous-chemin (sous-dossier) et le nom du fichier.

Voir aussi

  • RecursiveDirectoryIterator::getSubPath() - Récupère le sous-chemin
  • RecursiveDirectoryIterator::key() - Retourne le chemin et le nom de l'entrée courante du dossier


Vérifie si l'entrée courante est un dossier et n'est pas '.' ou '..'

  • « RecursiveDirectoryIterator::getSubPathname
  • RecursiveDirectoryIterator::key »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Vérifie si l'entrée courante est un dossier et n'est pas '.' ou '..'

RecursiveDirectoryIterator::hasChildren

(PHP 5, PHP 7)

RecursiveDirectoryIterator::hasChildren — Vérifie si l'entrée courante est un dossier et n'est pas '.' ou '..'

Description

public bool RecursiveDirectoryIterator::hasChildren ([ bool $allow_links = false ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

allow_links

Valeurs de retour

Vérifie si l'entrée courante est un dossier et n'est pas '.' ou '..'.


Retourne le chemin et le nom de l'entrée courante du dossier

  • « RecursiveDirectoryIterator::hasChildren
  • RecursiveDirectoryIterator::next »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Retourne le chemin et le nom de l'entrée courante du dossier

RecursiveDirectoryIterator::key

(PHP 5, PHP 7)

RecursiveDirectoryIterator::key — Retourne le chemin et le nom de l'entrée courante du dossier

Description

public string RecursiveDirectoryIterator::key ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin et le nom de l'entrée courante du dossier.


Se déplace vers la prochaine entrée

  • « RecursiveDirectoryIterator::key
  • RecursiveDirectoryIterator::rewind »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Se déplace vers la prochaine entrée

RecursiveDirectoryIterator::next

(PHP 5, PHP 7)

RecursiveDirectoryIterator::next — Se déplace vers la prochaine entrée

Description

public void RecursiveDirectoryIterator::next ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Revient à la position initiale dans le dossier

  • « RecursiveDirectoryIterator::next
  • RecursiveFilterIterator »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Revient à la position initiale dans le dossier

RecursiveDirectoryIterator::rewind

(PHP 5, PHP 7)

RecursiveDirectoryIterator::rewind — Revient à la position initiale dans le dossier

Description

public void RecursiveDirectoryIterator::rewind ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


La classe RecursiveFilterIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Cet itérateur abstrait filtre les valeurs non souhaitée d'un RecursiveIterator. Cette classe devrait être étendue afin d'implémenter des filtres personnalisés. La méthode RecursiveFilterIterator::accept() est abstraite, et doit être implémentée dans la classe étendant RecursiveIterator.

Synopsis de la classe

abstract RecursiveFilterIterator extends FilterIterator implements OuterIterator , RecursiveIterator {
/* Méthodes */
public __construct ( RecursiveIterator $iterator )
public RecursiveFilterIterator getChildren ( void )
public bool hasChildren ( void )
/* Méthodes héritées */
public abstract bool FilterIterator::accept ( void )
public FilterIterator::__construct ( Iterator $iterator )
public mixed FilterIterator::current ( void )
public Iterator FilterIterator::getInnerIterator ( void )
public mixed FilterIterator::key ( void )
public void FilterIterator::next ( void )
public void FilterIterator::rewind ( void )
public bool FilterIterator::valid ( void )
}

Sommaire

  • RecursiveFilterIterator::__construct — Crée un objet RecursiveFilterIterator depuis un objet RecursiveIterator
  • RecursiveFilterIterator::getChildren — Retourne l'itérateur interne contenu dans un objet RecursiveFilterIterator
  • RecursiveFilterIterator::hasChildren — Vérifie si un fils existe pour l'itérateur interne de l'élément courant


Crée un objet RecursiveFilterIterator depuis un objet RecursiveIterator

  • « RecursiveFilterIterator
  • RecursiveFilterIterator::getChildren »
  • PHP Manual
  • RecursiveFilterIterator
  • Crée un objet RecursiveFilterIterator depuis un objet RecursiveIterator

RecursiveFilterIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

RecursiveFilterIterator::__construct — Crée un objet RecursiveFilterIterator depuis un objet RecursiveIterator

Description

public RecursiveFilterIterator::__construct ( RecursiveIterator $iterator )

Crée un objet RecursiveFilterIterator depuis un objet RecursiveIterator.

Liste de paramètres

iterator

L'objet RecursiveIterator à filtrer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec RecursiveFilterIterator()

<?php
class TestsOnlyFilter extends RecursiveFilterIterator {
    public function accept() {
        // Accepte l'élément courant si nous pouvons le parcourir
        // ou si sa valeur commence par "test"
        return $this->hasChildren() || (strpos($this->current(), "test") !== FALSE);
    }
}

$array    = array("test1", array("taste2", "test3", "test4"), "test5");
$iterator = new RecursiveArrayIterator($array);
$filter   = new TestsOnlyFilter($iterator);

foreach(new RecursiveIteratorIterator($filter) as $key => $value)
{
    echo $value . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

test1
test3
test4
test5

Exemple #2 Exemple avec RecursiveFilterIterator()

<?php
class StartsWithFilter extends RecursiveFilterIterator {

    protected $word;

    public function __construct(RecursiveIterator $rit, $word) {
        $this->word = $word;
        parent::__construct($rit);
    }

    public function accept() {
        return $this->hasChildren() OR strpos($this->current(), $this->word) === 0;
    }

    public function getChildren() {
        return new self($this->getInnerIterator()->getChildren(), $this->word);
    }
}

$array    = array("test1", array("taste2", "test3", "test4"), "test5");
$iterator = new RecursiveArrayIterator($array);
$filter   = new StartsWithFilter($iterator, "test");

foreach(new RecursiveIteratorIterator($filter) as $key => $value)
{
    echo $value . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

test1
test3
test4
test5

Voir aussi

  • RecursiveFilterIterator::getChildren() - Retourne l'itérateur interne contenu dans un objet RecursiveFilterIterator
  • RecursiveFilterIterator::hasChildren() - Vérifie si un fils existe pour l'itérateur interne de l'élément courant
  • FilterIterator::accept() - Vérifie si l'élément courant de l'itérateur est acceptable


Retourne l'itérateur interne contenu dans un objet RecursiveFilterIterator

  • « RecursiveFilterIterator::__construct
  • RecursiveFilterIterator::hasChildren »
  • PHP Manual
  • RecursiveFilterIterator
  • Retourne l'itérateur interne contenu dans un objet RecursiveFilterIterator

RecursiveFilterIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveFilterIterator::getChildren — Retourne l'itérateur interne contenu dans un objet RecursiveFilterIterator

Description

public RecursiveFilterIterator RecursiveFilterIterator::getChildren ( void )

Retourne l'itérateur interne contenu dans l'objet RecursiveFilterIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet RecursiveFilterIterator contenant le fils de l'itérateur interne.

Voir aussi

  • RecursiveFilterIterator::hasChildren() - Vérifie si un fils existe pour l'itérateur interne de l'élément courant
  • RecursiveIterator::getChildren() - Récupère l'itérateur de l'entrée courante


Vérifie si un fils existe pour l'itérateur interne de l'élément courant

  • « RecursiveFilterIterator::getChildren
  • RecursiveIteratorIterator »
  • PHP Manual
  • RecursiveFilterIterator
  • Vérifie si un fils existe pour l'itérateur interne de l'élément courant

RecursiveFilterIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveFilterIterator::hasChildren — Vérifie si un fils existe pour l'itérateur interne de l'élément courant

Description

public bool RecursiveFilterIterator::hasChildren ( void )

Vérifie si un fils existe pour l'itérateur interne de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'itérateur interne a un fils, FALSE sinon.

Voir aussi

  • RecursiveFilterIterator::getChildren() - Retourne l'itérateur interne contenu dans un objet RecursiveFilterIterator
  • RecursiveIterator::hasChildren() - Vérifie si un itérateur peut être créé depuis l'entrée courante


La classe RecursiveIteratorIterator

(PHP 5, PHP 7)

Introduction

Peut être utilisé pour itérer sur des itérateurs, récursivement.

Synopsis de la classe

RecursiveIteratorIterator implements OuterIterator {
/* Constantes */
const integer LEAVES_ONLY = 0 ;
const integer SELF_FIRST = 1 ;
const integer CHILD_FIRST = 2 ;
const integer CATCH_GET_CHILD = 16 ;
/* Méthodes */
public void beginChildren ( void )
public void beginIteration ( void )
public RecursiveIterator callGetChildren ( void )
public bool callHasChildren ( void )
public __construct ( Traversable $iterator [, int $mode = RecursiveIteratorIterator::LEAVES_ONLY [, int $flags = 0 ]] )
public mixed current ( void )
public void endChildren ( void )
public void endIteration ( void )
public int getDepth ( void )
public iterator getInnerIterator ( void )
public mixed getMaxDepth ( void )
public RecursiveIterator getSubIterator ([ int $level ] )
public mixed key ( void )
public void next ( void )
public void nextElement ( void )
public void rewind ( void )
public void setMaxDepth ([ string $max_depth = -1 ] )
public bool valid ( void )
/* Méthodes héritées */
public Iterator OuterIterator::getInnerIterator ( void )
}

Constantes pré-définies

RecursiveIteratorIterator::LEAVES_ONLY

RecursiveIteratorIterator::SELF_FIRST

RecursiveIteratorIterator::CHILD_FIRST

RecursiveIteratorIterator::CATCH_GET_CHILD

Sommaire

  • RecursiveIteratorIterator::beginChildren — Commence un fils
  • RecursiveIteratorIterator::beginIteration — Commence une itération
  • RecursiveIteratorIterator::callGetChildren — Récupère un fils
  • RecursiveIteratorIterator::callHasChildren — Vérifie si un fils existe
  • RecursiveIteratorIterator::__construct — Construit un objet RecursiveIteratorIterator
  • RecursiveIteratorIterator::current — Accède à la valeur de l'élément courant
  • RecursiveIteratorIterator::endChildren — Termine un fils
  • RecursiveIteratorIterator::endIteration — Termine un itérateur
  • RecursiveIteratorIterator::getDepth — Récupère la profondeur courante de la récursivité de l'itérateur
  • RecursiveIteratorIterator::getInnerIterator — Récupère l'itérateur interne
  • RecursiveIteratorIterator::getMaxDepth — Récupère la profondeur maximale
  • RecursiveIteratorIterator::getSubIterator — L'itérateur secondaire actif courant
  • RecursiveIteratorIterator::key — Accède à la clé courante
  • RecursiveIteratorIterator::next — Déplace l'itérateur à la position suivante
  • RecursiveIteratorIterator::nextElement — Élément suivant
  • RecursiveIteratorIterator::rewind — Replace l'itérateur au début
  • RecursiveIteratorIterator::setMaxDepth — Définit la profondeur maximale
  • RecursiveIteratorIterator::valid — Vérifie si la position courante est valide


Commence un fils

  • « RecursiveIteratorIterator
  • RecursiveIteratorIterator::beginIteration »
  • PHP Manual
  • RecursiveIteratorIterator
  • Commence un fils

RecursiveIteratorIterator::beginChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::beginChildren — Commence un fils

Description

public void RecursiveIteratorIterator::beginChildren ( void )

Est appelé après l'appel à la méthode RecursiveIteratorIterator::getChildren(), ainsi qu'à la méthode RecursiveIteratorIterator::rewind() associé.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Commence une itération

  • « RecursiveIteratorIterator::beginChildren
  • RecursiveIteratorIterator::callGetChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Commence une itération

RecursiveIteratorIterator::beginIteration

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::beginIteration — Commence une itération

Description

public void RecursiveIteratorIterator::beginIteration ( void )

Appelé lorsque l'itération commence (après le premier appel à la méthode RecursiveIteratorIterator::rewind()).

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Récupère un fils

  • « RecursiveIteratorIterator::beginIteration
  • RecursiveIteratorIterator::callHasChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Récupère un fils

RecursiveIteratorIterator::callGetChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::callGetChildren — Récupère un fils

Description

public RecursiveIterator RecursiveIteratorIterator::callGetChildren ( void )

Récupère le fils de l'élément courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet RecursiveIterator().


Vérifie si un fils existe

  • « RecursiveIteratorIterator::callGetChildren
  • RecursiveIteratorIterator::__construct »
  • PHP Manual
  • RecursiveIteratorIterator
  • Vérifie si un fils existe

RecursiveIteratorIterator::callHasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::callHasChildren — Vérifie si un fils existe

Description

public bool RecursiveIteratorIterator::callHasChildren ( void )

Appelé pour chaque élément pour tester si un fils est disponible.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'élément a un fils, FALSE sinon.


Construit un objet RecursiveIteratorIterator

  • « RecursiveIteratorIterator::callHasChildren
  • RecursiveIteratorIterator::current »
  • PHP Manual
  • RecursiveIteratorIterator
  • Construit un objet RecursiveIteratorIterator

RecursiveIteratorIterator::__construct

(PHP 5 >= 5.1.3, PHP 7)

RecursiveIteratorIterator::__construct — Construit un objet RecursiveIteratorIterator

Description

public RecursiveIteratorIterator::__construct ( Traversable $iterator [, int $mode = RecursiveIteratorIterator::LEAVES_ONLY [, int $flags = 0 ]] )

Crée un objet RecursiveIteratorIterator depuis un objet RecursiveIterator.

Liste de paramètres

iterator

L'itérateur utilisé pour la construction. Soit la méthode RecursiveIterator ou de la méthode IteratorAggregate.

mode

Le mode (optionnel). Les valeurs possibles sont :

  • RecursiveIteratorIterator::LEAVES_ONLY - Valeur par défaut. Liste uniquement les feuilles de l'itération.
  • RecursiveIteratorIterator::SELF_FIRST - Liste les feuilles et les parents de l'itération, avec les parents présentés en premier.
  • RecursiveIteratorIterator::CHILD_FIRST - Liste les feuilles et les parents de l'itération, avec les feuilles présentées en premier.

flags

Drapeau optionnel. Les valeurs possibles sont RecursiveIteratorIterator::CATCH_GET_CHILD utilisé pour ignorer les exceptions lançées depuis les appels à la méthode RecursiveIteratorIterator::getChildren().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Parcours d'un RecursiveIteratorIterator

<?php
$array = array(
    array(
        array(
            array(
                'leaf-0-0-0-0',
                'leaf-0-0-0-1'
            ),
            'leaf-0-0-0'
        ),
        array(
            array(
                'leaf-0-1-0-0',
                'leaf-0-1-0-1'
            ),
            'leaf-0-1-0'
        ),
        'leaf-0-0'
    )
);

$iterator = new RecursiveIteratorIterator(
    new RecursiveArrayIterator($array),
    $mode
);
foreach ($iterator as $key => $leaf) {
    echo "$key => $leaf", PHP_EOL;
}
?>

Affichage avec $mode = RecursiveIteratorIterator::LEAVES_ONLY

0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
0 => leaf-0-0-0
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
0 => leaf-0-1-0
0 => leaf-0-0

Affichage avec $mode = RecursiveIteratorIterator::SELF_FIRST

0 => Array
0 => Array
0 => Array
0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
1 => leaf-0-0-0
1 => Array
0 => Array
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
1 => leaf-0-1-0
2 => leaf-0-0

Affichage avec $mode = RecursiveIteratorIterator::CHILD_FIRST

0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
0 => Array
1 => leaf-0-0-0
0 => Array
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
0 => Array
1 => leaf-0-1-0
1 => Array
2 => leaf-0-0
0 => Array


Accède à la valeur de l'élément courant

  • « RecursiveIteratorIterator::__construct
  • RecursiveIteratorIterator::endChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Accède à la valeur de l'élément courant

RecursiveIteratorIterator::current

(PHP 5, PHP 7)

RecursiveIteratorIterator::current — Accède à la valeur de l'élément courant

Description

public mixed RecursiveIteratorIterator::current ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur de l'élément courant.


Termine un fils

  • « RecursiveIteratorIterator::current
  • RecursiveIteratorIterator::endIteration »
  • PHP Manual
  • RecursiveIteratorIterator
  • Termine un fils

RecursiveIteratorIterator::endChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::endChildren — Termine un fils

Description

public void RecursiveIteratorIterator::endChildren ( void )

Appelé lorsque l'on termine le bouclage d'un niveau.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Termine un itérateur

  • « RecursiveIteratorIterator::endChildren
  • RecursiveIteratorIterator::getDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Termine un itérateur

RecursiveIteratorIterator::endIteration

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::endIteration — Termine un itérateur

Description

public void RecursiveIteratorIterator::endIteration ( void )

Appelé lorsqu'un itérateur se termine (lorsque la méthode RecursiveIteratorIterator::valid() retourne FALSE pour la première fois).

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Récupère la profondeur courante de la récursivité de l'itérateur

  • « RecursiveIteratorIterator::endIteration
  • RecursiveIteratorIterator::getInnerIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Récupère la profondeur courante de la récursivité de l'itérateur

RecursiveIteratorIterator::getDepth

(PHP 5, PHP 7)

RecursiveIteratorIterator::getDepth — Récupère la profondeur courante de la récursivité de l'itérateur

Description

public int RecursiveIteratorIterator::getDepth ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La profondeur courante de la récursivité de l'itérateur.


Récupère l'itérateur interne

  • « RecursiveIteratorIterator::getDepth
  • RecursiveIteratorIterator::getMaxDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Récupère l'itérateur interne

RecursiveIteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::getInnerIterator — Récupère l'itérateur interne

Description

public iterator RecursiveIteratorIterator::getInnerIterator ( void )

Récupère le sous-itérateur courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le sous-itérateur courant.


Récupère la profondeur maximale

  • « RecursiveIteratorIterator::getInnerIterator
  • RecursiveIteratorIterator::getSubIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Récupère la profondeur maximale

RecursiveIteratorIterator::getMaxDepth

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::getMaxDepth — Récupère la profondeur maximale

Description

public mixed RecursiveIteratorIterator::getMaxDepth ( void )

Récupère la profondeur maximale autorisée.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La profondeur maximale autorisée ou FALSE si une profondeur infinie est autorisée.

Voir aussi

  • RecursiveIteratorIterator::setMaxDepth() - Définit la profondeur maximale


L'itérateur secondaire actif courant

  • « RecursiveIteratorIterator::getMaxDepth
  • RecursiveIteratorIterator::key »
  • PHP Manual
  • RecursiveIteratorIterator
  • L'itérateur secondaire actif courant

RecursiveIteratorIterator::getSubIterator

(PHP 5, PHP 7)

RecursiveIteratorIterator::getSubIterator — L'itérateur secondaire actif courant

Description

public RecursiveIterator RecursiveIteratorIterator::getSubIterator ([ int $level ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

level

Valeurs de retour

L'itérateur secondaire actif courant.


Accède à la clé courante

  • « RecursiveIteratorIterator::getSubIterator
  • RecursiveIteratorIterator::next »
  • PHP Manual
  • RecursiveIteratorIterator
  • Accède à la clé courante

RecursiveIteratorIterator::key

(PHP 5, PHP 7)

RecursiveIteratorIterator::key — Accède à la clé courante

Description

public mixed RecursiveIteratorIterator::key ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé courante.


Déplace l'itérateur à la position suivante

  • « RecursiveIteratorIterator::key
  • RecursiveIteratorIterator::nextElement »
  • PHP Manual
  • RecursiveIteratorIterator
  • Déplace l'itérateur à la position suivante

RecursiveIteratorIterator::next

(PHP 5, PHP 7)

RecursiveIteratorIterator::next — Déplace l'itérateur à la position suivante

Description

public void RecursiveIteratorIterator::next ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Élément suivant

  • « RecursiveIteratorIterator::next
  • RecursiveIteratorIterator::rewind »
  • PHP Manual
  • RecursiveIteratorIterator
  • Élément suivant

RecursiveIteratorIterator::nextElement

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::nextElement — Élément suivant

Description

public void RecursiveIteratorIterator::nextElement ( void )

Appelé lorsque l'élément suivant est disponible.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Replace l'itérateur au début

  • « RecursiveIteratorIterator::nextElement
  • RecursiveIteratorIterator::setMaxDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Replace l'itérateur au début

RecursiveIteratorIterator::rewind

(PHP 5, PHP 7)

RecursiveIteratorIterator::rewind — Replace l'itérateur au début

Description

public void RecursiveIteratorIterator::rewind ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Définit la profondeur maximale

  • « RecursiveIteratorIterator::rewind
  • RecursiveIteratorIterator::valid »
  • PHP Manual
  • RecursiveIteratorIterator
  • Définit la profondeur maximale

RecursiveIteratorIterator::setMaxDepth

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::setMaxDepth — Définit la profondeur maximale

Description

public void RecursiveIteratorIterator::setMaxDepth ([ string $max_depth = -1 ] )

Définit la profondeur maximale autorisée.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

max_depth

La profondeur maximale autorisée. -1 sera utilisé pour une profondeur infinie.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une Exception si max_depth est inférieur à -1.


Vérifie si la position courante est valide

  • « RecursiveIteratorIterator::setMaxDepth
  • RecursiveRegexIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Vérifie si la position courante est valide

RecursiveIteratorIterator::valid

(PHP 5, PHP 7)

RecursiveIteratorIterator::valid — Vérifie si la position courante est valide

Description

public bool RecursiveIteratorIterator::valid ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la position courante est valide, FALSE sinon.


La classe RecursiveRegexIterator

(PHP 5 >= 5.2.0, PHP 7)

Introduction

Cet itérateur récursif peut filtrer un autre itérateur récursif à l'aide d'une expression rationnelle.

Synopsis de la classe

RecursiveRegexIterator extends RegexIterator implements RecursiveIterator {
/* Méthodes */
public __construct ( RecursiveIterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )
public RecursiveRegexIterator getChildren ( void )
public bool hasChildren ( void )
/* Méthodes héritées */
public RecursiveIterator RecursiveIterator::getChildren ( void )
public bool RecursiveIterator::hasChildren ( void )
public bool RegexIterator::accept ( void )
public int RegexIterator::getFlags ( void )
public int RegexIterator::getMode ( void )
public int RegexIterator::getPregFlags ( void )
public string RegexIterator::getRegex ( void )
public void RegexIterator::setFlags ( int $flags )
public void RegexIterator::setMode ( int $mode )
public void RegexIterator::setPregFlags ( int $preg_flags )
}

Sommaire

  • RecursiveRegexIterator::__construct — Crée un nouveau RecursiveRegexIterator
  • RecursiveRegexIterator::getChildren — Retourne un itérateur depuis l'entrée courante
  • RecursiveRegexIterator::hasChildren — Vérifie si un itérateur peut être obtenu depuis l'entrée courante


Crée un nouveau RecursiveRegexIterator

  • « RecursiveRegexIterator
  • RecursiveRegexIterator::getChildren »
  • PHP Manual
  • RecursiveRegexIterator
  • Crée un nouveau RecursiveRegexIterator

RecursiveRegexIterator::__construct

(PHP 5 >= 5.2.0, PHP 7)

RecursiveRegexIterator::__construct — Crée un nouveau RecursiveRegexIterator

Description

public RecursiveRegexIterator::__construct ( RecursiveIterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )

Crée un nouvel itérateur d'expression rationnelle.

Liste de paramètres

iterator

L'itérateur récursif sur lequel l'expression rationnelle sera appliquée.

regex

L'expression rationnelle.

mode

Le mode de l'opération ; voir le détail de la méthode RegexIterator::setMode() pour une liste des modes disponibles.

flags

Drapeaux spéciaux ; voir le détail de la méthode RegexIterator::setFlags() pour une liste des drapeaux disponibles.

preg_flags

Les drapeaux de l'expression rationnelle. Ils dépendent du mode d'opération utilisé :

RegexIterator preg_flags
Mode de l'opération | Drapeaux disponibles
RecursiveRegexIterator::ALL_MATCHES | Voir la fonction preg_match_all().
RecursiveRegexIterator::GET_MATCH | Voir la fonction preg_match().
RecursiveRegexIterator::MATCH | Voir la fonction preg_match().
RecursiveRegexIterator::REPLACE | Aucun.
RecursiveRegexIterator::SPLIT | Voir la fonction preg_split().

Exemples

Exemple #1 Exemple avec RecursiveRegexIterator::__construct()

Crée un nouveau RegexIterator qui filtre toutes les chaînes qui commencent par 'test'.

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
    RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $key1 => $value1) {

    if ($rRegexIterator->hasChildren()) {

        // Affiche tous les fils
        echo "Fils : ";
        foreach ($rRegexIterator->getChildren() as $key => $value) {
            echo $value . " ";
        }
        echo "\n";
    } else {
        echo "Aucun fils disponible\n";
    }

}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Aucun fils disponible
Fils : test4 test5

Voir aussi

  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • preg_match_all() - Expression rationnelle globale
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard
  • preg_split() - Éclate une chaîne par expression rationnelle


Retourne un itérateur depuis l'entrée courante

  • « RecursiveRegexIterator::__construct
  • RecursiveRegexIterator::hasChildren »
  • PHP Manual
  • RecursiveRegexIterator
  • Retourne un itérateur depuis l'entrée courante

RecursiveRegexIterator::getChildren

(PHP 5 >= 5.2.0, PHP 7)

RecursiveRegexIterator::getChildren — Retourne un itérateur depuis l'entrée courante

Description

public RecursiveRegexIterator RecursiveRegexIterator::getChildren ( void )

Retourne un itérateur depuis l'entrée courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un itérateur depuis l'entrée courante, s'il peut être itéré par l'itérateur interne.

Erreurs / Exceptions

Une exception InvalidArgumentException sera émise si l'entrée courante ne contient aucune valeur qui peut être itérée par l'itérateur interne.

Exemples

Exemple #1 Exemple avec RecursiveRegexIterator::getChildren()

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
    RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $key1 => $value1) {

    if ($rRegexIterator->hasChildren()) {

        // Affiche tous les fils
        echo "Fils : ";
        foreach ($rRegexIterator->getChildren() as $key => $value) {
            echo $value . " ";
        }
        echo "\n";
    } else {
        echo "Aucun fils de disponible\n";
    }

}
?>

L'exemple ci-dessus va afficher :

Aucun fils de disponible
Fils : test4 test5

Voir aussi

  • RecursiveRegexIterator::hasChildren() - Vérifie si un itérateur peut être obtenu depuis l'entrée courante


Vérifie si un itérateur peut être obtenu depuis l'entrée courante

  • « RecursiveRegexIterator::getChildren
  • RecursiveTreeIterator »
  • PHP Manual
  • RecursiveRegexIterator
  • Vérifie si un itérateur peut être obtenu depuis l'entrée courante

RecursiveRegexIterator::hasChildren

(PHP 5 >= 5.2.0, PHP 7)

RecursiveRegexIterator::hasChildren — Vérifie si un itérateur peut être obtenu depuis l'entrée courante

Description

public bool RecursiveRegexIterator::hasChildren ( void )

Vérifie si un itérateur peut être obtenu depuis l'entrée courante. Cet itérateur peut être obtenu via la méthode RecursiveRegexIterator::getChildren().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si un itérateur peut être obtenu depuis l'entrée courante, FALSE sinon.

Exemples

Exemple #1 Exemple avec RecursiveRegexIterator::hasChildren()

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
    RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $value) {
    var_dump($rRegexIterator->hasChildren());
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

  • RecursiveRegexIterator::getChildren() - Retourne un itérateur depuis l'entrée courante


La classe RecursiveTreeIterator

(PHP 5 >= 5.3.0, PHP 7)

Introduction

Permet l'itération d'un RecursiveIterator pour générer un arbre graphique ASCII.

Synopsis de la classe

RecursiveTreeIterator extends RecursiveIteratorIterator implements OuterIterator {
/* Constantes */
const integer BYPASS_CURRENT = 4 ;
const integer BYPASS_KEY = 8 ;
const integer PREFIX_LEFT = 0 ;
const integer PREFIX_MID_HAS_NEXT = 1 ;
const integer PREFIX_MID_LAST = 2 ;
const integer PREFIX_END_HAS_NEXT = 3 ;
const integer PREFIX_END_LAST = 4 ;
const integer PREFIX_RIGHT = 5 ;
/* Méthodes */
public void beginChildren ( void )
public RecursiveIterator beginIteration ( void )
public RecursiveIterator callGetChildren ( void )
public bool callHasChildren ( void )
public __construct ( RecursiveIterator|IteratorAggregate $it [, int $flags = RecursiveTreeIterator::BYPASS_KEY [, int $cit_flags = CachingIterator::CATCH_GET_CHILD [, int $mode = RecursiveIteratorIterator::SELF_FIRST ]]] )
public string current ( void )
public void endChildren ( void )
public void endIteration ( void )
public string getEntry ( void )
public void getPostfix ( void )
public string getPrefix ( void )
public string key ( void )
public void next ( void )
public void nextElement ( void )
public void rewind ( void )
public void setPrefixPart ( int $part , string $value )
public bool valid ( void )
/* Méthodes héritées */
public void RecursiveIteratorIterator::beginChildren ( void )
public void RecursiveIteratorIterator::beginIteration ( void )
public RecursiveIterator RecursiveIteratorIterator::callGetChildren ( void )
public bool RecursiveIteratorIterator::callHasChildren ( void )
public RecursiveIteratorIterator::__construct ( Traversable $iterator [, int $mode = RecursiveIteratorIterator::LEAVES_ONLY [, int $flags = 0 ]] )
public mixed RecursiveIteratorIterator::current ( void )
public void RecursiveIteratorIterator::endChildren ( void )
public void RecursiveIteratorIterator::endIteration ( void )
public int RecursiveIteratorIterator::getDepth ( void )
public iterator RecursiveIteratorIterator::getInnerIterator ( void )
public mixed RecursiveIteratorIterator::getMaxDepth ( void )
public RecursiveIterator RecursiveIteratorIterator::getSubIterator ([ int $level ] )
public mixed RecursiveIteratorIterator::key ( void )
public void RecursiveIteratorIterator::next ( void )
public void RecursiveIteratorIterator::nextElement ( void )
public void RecursiveIteratorIterator::rewind ( void )
public void RecursiveIteratorIterator::setMaxDepth ([ string $max_depth = -1 ] )
public bool RecursiveIteratorIterator::valid ( void )
}

Constantes pré-définies

RecursiveTreeIterator::BYPASS_CURRENT

RecursiveTreeIterator::BYPASS_KEY

RecursiveTreeIterator::PREFIX_LEFT

RecursiveTreeIterator::PREFIX_MID_HAS_NEXT

RecursiveTreeIterator::PREFIX_MID_LAST

RecursiveTreeIterator::PREFIX_END_HAS_NEXT

RecursiveTreeIterator::PREFIX_END_LAST

RecursiveTreeIterator::PREFIX_RIGHT

Sommaire

  • RecursiveTreeIterator::beginChildren — Début d'un fils
  • RecursiveTreeIterator::beginIteration — Début d'une itération
  • RecursiveTreeIterator::callGetChildren — Récupère un fils
  • RecursiveTreeIterator::callHasChildren — Vérifie la présence d'un fils
  • RecursiveTreeIterator::__construct — Construit un nouvel objet RecursiveTreeIterator
  • RecursiveTreeIterator::current — Récupère l'élément courant
  • RecursiveTreeIterator::endChildren — Fin d'un fils
  • RecursiveTreeIterator::endIteration — Fin de l'itération
  • RecursiveTreeIterator::getEntry — Récupère l'entrée courante
  • RecursiveTreeIterator::getPostfix — Récupère le suffixe
  • RecursiveTreeIterator::getPrefix — Récupère le préfixe
  • RecursiveTreeIterator::key — Récupère la clé de l'élément courant
  • RecursiveTreeIterator::next — Se déplace sur l'élément suivant
  • RecursiveTreeIterator::nextElement — Prochain élément
  • RecursiveTreeIterator::rewind — Réinitialise la position de l'itérateur
  • RecursiveTreeIterator::setPrefixPart — Définit une partie du préfixe
  • RecursiveTreeIterator::valid — Vérifie la validité


Début d'un fils

  • « RecursiveTreeIterator
  • RecursiveTreeIterator::beginIteration »
  • PHP Manual
  • RecursiveTreeIterator
  • Début d'un fils

RecursiveTreeIterator::beginChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::beginChildren — Début d'un fils

Description

public void RecursiveTreeIterator::beginChildren ( void )

Appelé lorsque la récursion commence un niveau inférieur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Début d'une itération

  • « RecursiveTreeIterator::beginChildren
  • RecursiveTreeIterator::callGetChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Début d'une itération

RecursiveTreeIterator::beginIteration

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::beginIteration — Début d'une itération

Description

public RecursiveIterator RecursiveTreeIterator::beginIteration ( void )

Appelé lorsque l'itération commence (après le premier appel à la méthode RecursiveTreeIterator::rewind()).

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet RecursiveIterator.


Récupère un fils

  • « RecursiveTreeIterator::beginIteration
  • RecursiveTreeIterator::callHasChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Récupère un fils

RecursiveTreeIterator::callGetChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::callGetChildren — Récupère un fils

Description

public RecursiveIterator RecursiveTreeIterator::callGetChildren ( void )

Récupère un fils de l'élément courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet RecursiveIterator.


Vérifie la présence d'un fils

  • « RecursiveTreeIterator::callGetChildren
  • RecursiveTreeIterator::__construct »
  • PHP Manual
  • RecursiveTreeIterator
  • Vérifie la présence d'un fils

RecursiveTreeIterator::callHasChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::callHasChildren — Vérifie la présence d'un fils

Description

public bool RecursiveTreeIterator::callHasChildren ( void )

Appelé pour chaque élément pour tester s'il a un fils ou non.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE s'il a un fils, FALSE sinon.


Construit un nouvel objet RecursiveTreeIterator

  • « RecursiveTreeIterator::callHasChildren
  • RecursiveTreeIterator::current »
  • PHP Manual
  • RecursiveTreeIterator
  • Construit un nouvel objet RecursiveTreeIterator

RecursiveTreeIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::__construct — Construit un nouvel objet RecursiveTreeIterator

Description

 public RecursiveTreeIterator::__construct
  ( RecursiveIterator|IteratorAggregate $it
 [, int $flags = RecursiveTreeIterator::BYPASS_KEY
 [, int $cit_flags = CachingIterator::CATCH_GET_CHILD
 [, int $mode = RecursiveIteratorIterator::SELF_FIRST
]]] )

Construit un nouvel objet RecursiveTreeIterator depuis l'itérateur récursif fourni.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

it

L'objet RecursiveIterator ou l'objet IteratorAggregate sur lequel on doit itérer.

flags

Les drapeaux fournis peuvent affecter le comportement de quelques méthodes. Une liste des drapeaux peut être trouvée dans la section sur les constantes prédéfinies de RecursiveTreeIterator.

caching_it_flags

Drapeaux qui affectent le comportement de la méthode RecursiveCachingIterator utilisée en interne.

mode

Drapeaux qui affectent le comportement de la méthode RecursiveIteratorIterator utilisée en interne.

Valeurs de retour

Aucune valeur n'est retournée.


Récupère l'élément courant

  • « RecursiveTreeIterator::__construct
  • RecursiveTreeIterator::endChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Récupère l'élément courant

RecursiveTreeIterator::current

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::current — Récupère l'élément courant

Description

public string RecursiveTreeIterator::current ( void )

Récupère l'élément courant, avec son préfixe et son suffixe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'élément courant, avec son préfixe et son suffixe.


Fin d'un fils

  • « RecursiveTreeIterator::current
  • RecursiveTreeIterator::endIteration »
  • PHP Manual
  • RecursiveTreeIterator
  • Fin d'un fils

RecursiveTreeIterator::endChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::endChildren — Fin d'un fils

Description

public void RecursiveTreeIterator::endChildren ( void )

Appelé lorsque la récursion termine un niveau inférieur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Fin de l'itération

  • « RecursiveTreeIterator::endChildren
  • RecursiveTreeIterator::getEntry »
  • PHP Manual
  • RecursiveTreeIterator
  • Fin de l'itération

RecursiveTreeIterator::endIteration

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::endIteration — Fin de l'itération

Description

public void RecursiveTreeIterator::endIteration ( void )

Appelé lors de la fin de l'itération (lorsque la méthode RecursiveTreeIterator::valid() retourne FALSE pour la première fois).

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Récupère l'entrée courante

  • « RecursiveTreeIterator::endIteration
  • RecursiveTreeIterator::getPostfix »
  • PHP Manual
  • RecursiveTreeIterator
  • Récupère l'entrée courante

RecursiveTreeIterator::getEntry

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::getEntry — Récupère l'entrée courante

Description

public string RecursiveTreeIterator::getEntry ( void )

Récupère la partie de l'arbre construit pour l'élément courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la partie de l'arbre construit pour l'élément courant.


Récupère le suffixe

  • « RecursiveTreeIterator::getEntry
  • RecursiveTreeIterator::getPrefix »
  • PHP Manual
  • RecursiveTreeIterator
  • Récupère le suffixe

RecursiveTreeIterator::getPostfix

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::getPostfix — Récupère le suffixe

Description

public void RecursiveTreeIterator::getPostfix ( void )

Récupère la chaîne à placer après l'élément courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la chaîne à placer après l'élément courant.


Récupère le préfixe

  • « RecursiveTreeIterator::getPostfix
  • RecursiveTreeIterator::key »
  • PHP Manual
  • RecursiveTreeIterator
  • Récupère le préfixe

RecursiveTreeIterator::getPrefix

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::getPrefix — Récupère le préfixe

Description

public string RecursiveTreeIterator::getPrefix ( void )

Récupère la chaîne à placer devant l'élément courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la chaîne à placer devant l'élément courant.


Récupère la clé de l'élément courant

  • « RecursiveTreeIterator::getPrefix
  • RecursiveTreeIterator::next »
  • PHP Manual
  • RecursiveTreeIterator
  • Récupère la clé de l'élément courant

RecursiveTreeIterator::key

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::key — Récupère la clé de l'élément courant

Description

public string RecursiveTreeIterator::key ( void )

Récupère la clé de l'élément courant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Récupère la clé de l'élément courant.


Se déplace sur l'élément suivant

  • « RecursiveTreeIterator::key
  • RecursiveTreeIterator::nextElement »
  • PHP Manual
  • RecursiveTreeIterator
  • Se déplace sur l'élément suivant

RecursiveTreeIterator::next

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::next — Se déplace sur l'élément suivant

Description

public void RecursiveTreeIterator::next ( void )

Se déplace sur l'élément suivant.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Prochain élément

  • « RecursiveTreeIterator::next
  • RecursiveTreeIterator::rewind »
  • PHP Manual
  • RecursiveTreeIterator
  • Prochain élément

RecursiveTreeIterator::nextElement

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::nextElement — Prochain élément

Description

public void RecursiveTreeIterator::nextElement ( void )

Appelé lorsque le prochain élément devient disponible.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Réinitialise la position de l'itérateur

  • « RecursiveTreeIterator::nextElement
  • RecursiveTreeIterator::setPrefixPart »
  • PHP Manual
  • RecursiveTreeIterator
  • Réinitialise la position de l'itérateur

RecursiveTreeIterator::rewind

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::rewind — Réinitialise la position de l'itérateur

Description

public void RecursiveTreeIterator::rewind ( void )

Réinitialise la position de l'itérateur au premier élément du premier niveau de l'itérateur interne.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Définit une partie du préfixe

  • « RecursiveTreeIterator::rewind
  • RecursiveTreeIterator::valid »
  • PHP Manual
  • RecursiveTreeIterator
  • Définit une partie du préfixe

RecursiveTreeIterator::setPrefixPart

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::setPrefixPart — Définit une partie du préfixe

Description

public void RecursiveTreeIterator::setPrefixPart ( int $part , string $value )

Définit une partie du préfixe utilisé par l'arbre graphique.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

part

Une constante parmi les constantes RecursiveTreeIterator::PREFIX_*.

value

La valeur à assigner à la partie du préfixe spécifiée par le paramètre part.

Valeurs de retour

Aucune valeur n'est retournée.


Vérifie la validité

  • « RecursiveTreeIterator::setPrefixPart
  • La classe RegexIterator »
  • PHP Manual
  • RecursiveTreeIterator
  • Vérifie la validité

RecursiveTreeIterator::valid

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::valid — Vérifie la validité

Description

public bool RecursiveTreeIterator::valid ( void )

Vérifie si la position courante est valide.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la position courante est valide, FALSE sinon.


La classe RegexIterator

(No version information available, might only be in Git)

Introduction

Cet itérateur sert pour réaliser un filtre basé sur une expression rationnelle.

Synopsis de la classe

RegexIterator extends FilterIterator {
/* Constantes */
const integer MATCH = 0 ;
const integer GET_MATCH = 1 ;
const integer ALL_MATCHES = 2 ;
const integer SPLIT = 3 ;
const integer REPLACE = 4 ;
const integer USE_KEY = 1 ;
/* Méthodes */
public __construct ( Iterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )
public bool accept ( void )
public int getFlags ( void )
public int getMode ( void )
public int getPregFlags ( void )
public string getRegex ( void )
public void setFlags ( int $flags )
public void setMode ( int $mode )
public void setPregFlags ( int $preg_flags )
/* Méthodes héritées */
public abstract bool FilterIterator::accept ( void )
public FilterIterator::__construct ( Iterator $iterator )
public mixed FilterIterator::current ( void )
public Iterator FilterIterator::getInnerIterator ( void )
public mixed FilterIterator::key ( void )
public void FilterIterator::next ( void )
public void FilterIterator::rewind ( void )
public bool FilterIterator::valid ( void )
}

Constantes pré-définies

Modes d'opération de RegexIterator

RegexIterator::ALL_MATCHES

Retourne toutes les occurrences de l'élément courant (voyez preg_match_all()).

RegexIterator::GET_MATCH

Retourne la première occurrence de l'élément courant (voyez preg_match()).

RegexIterator::MATCH

Effectue une recherche simple pour l'élément courant (voyez preg_match()).

RegexIterator::REPLACE

Remplace l'élément courant (voyez preg_replace() ; pas encore totalement implémenté).

RegexIterator::SPLIT

Retourne les valeurs séparées pour l'élément courant (voyez preg_split()).

Dréapeaux RegexIterator

RegexIterator::USE_KEY

Option spéciale : travaille sur la clé au lieu de la valeur.

Sommaire

  • RegexIterator::accept — Récupère le statut d'acceptation
  • RegexIterator::__construct — Crée un nouvel objet RegexIterator
  • RegexIterator::getFlags — Récupère les drapeaux
  • RegexIterator::getMode — Retourne le mode de l'opération
  • RegexIterator::getPregFlags — Retourne les drapeaux de l'expression rationnelle
  • RegexIterator::getRegex — Retourne l'expression rationnelle courante
  • RegexIterator::setFlags — Définit les drapeaux
  • RegexIterator::setMode — Définit le mode de l'opération
  • RegexIterator::setPregFlags — Définit les drapeaux de l'expression rationnelle


Récupère le statut d'acceptation

  • « La classe RegexIterator
  • RegexIterator::__construct »
  • PHP Manual
  • La classe RegexIterator
  • Récupère le statut d'acceptation

RegexIterator::accept

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::accept — Récupère le statut d'acceptation

Description

public bool RegexIterator::accept ( void )

Applique l'expression rationnelle à (string) RegexIterator::current()
(ou RegexIterator::key() si le drapeau
RegexIterator::USE_KEY est défini).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si une correspondance est trouvée, FALSE sinon.

Exemples

Exemple #1 Exemple avec RegexIterator::accept()

Cet exemple montre que seuls les éléments correspondant à l'expression rationnelle sont acceptés.

<?php
$names = new ArrayIterator(array('Ann', 'Bob', 'Charlie', 'David'));
$filter = new RegexIterator($names, '/^[B-D]/');
foreach ($filter as $name) {
    echo $name . PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

Bob
Charlie
David

Voir aussi

  • Les constantes RegexIterator
  • RegexIterator::setFlags() - Définit les drapeaux


Crée un nouvel objet RegexIterator

  • « RegexIterator::accept
  • RegexIterator::getFlags »
  • PHP Manual
  • La classe RegexIterator
  • Crée un nouvel objet RegexIterator

RegexIterator::__construct

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::__construct — Crée un nouvel objet RegexIterator

Description

public RegexIterator::__construct ( Iterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )

Crée un nouvel objet RegexIterator qui filtre un itérateur Iterator en utilisant une expression rationnelle.

Liste de paramètres

iterator

L'itérateur sur lequel l'expression rationnelle sera appliquée.

regex

L'expression rationnelle.

mode

Le mode de l'opération, voir la méthode RegexIterator::setMode() pour une liste des modes.

flags

Drapeaux spéciaux, voir la méthode RegexIterator::setFlags() pour une liste des drapeaux disponibles.

preg_flags

Les drapeaux de l'expression rationnelle. Ils dépendant du mode de l'opération :

RegexIterator preg_flags
Mode de l'opération | Drapeaux disponibles
RegexIterator::ALL_MATCHES | Voir la fonction preg_match_all().
RegexIterator::GET_MATCH | Voir la fonction preg_match().
RegexIterator::MATCH | Voir la fonction preg_match().
RegexIterator::REPLACE | Aucun.
RegexIterator::SPLIT | Voir la fonction preg_split().

Exemples

Exemple #1 Exemple avec RegexIterator::__construct()

Crée un nouvel objet RegexIterator qui filtre toutes les chaînes commençant par 'test'.

<?php
$arrayIterator = new ArrayIterator(array('test 1', 'another test', 'test 123'));
$regexIterator = new RegexIterator($arrayIterator, '/^test/');

foreach ($regexIterator as $value) {
    echo $value . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

test 1
test 123

Voir aussi

  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • preg_match_all() - Expression rationnelle globale
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard
  • preg_split() - Éclate une chaîne par expression rationnelle


Récupère les drapeaux

  • « RegexIterator::__construct
  • RegexIterator::getMode »
  • PHP Manual
  • La classe RegexIterator
  • Récupère les drapeaux

RegexIterator::getFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::getFlags — Récupère les drapeaux

Description

public int RegexIterator::getFlags ( void )

Retourne les drapeaux, voir la méthode RegexIterator::setFlags() pour une liste complète.

Valeurs de retour

Retourne les drapeaux.

Exemples

Exemple #1 Exemple avec RegexIterator::getFlags()

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/');
$regexIterator->setFlags(RegexIterator::USE_KEY);

if ($regexIterator->getFlags() & RegexIterator::USE_KEY) {
    echo 'Filtrage basé sur les clés du tableaux.';
} else {
    echo 'Filtrage basé sur les valeurs du tableaux.';
}
?>

L'exemple ci-dessus va afficher :

Filtrage basé sur les clés du tableaux.

Voir aussi

  • RegexIterator::setFlags() - Définit les drapeaux


Retourne le mode de l'opération

  • « RegexIterator::getFlags
  • RegexIterator::getPregFlags »
  • PHP Manual
  • La classe RegexIterator
  • Retourne le mode de l'opération

RegexIterator::getMode

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::getMode — Retourne le mode de l'opération

Description

public int RegexIterator::getMode ( void )

Retourne le mode de l'opération, voir la méthode RegexIterator::setMode() pour une liste complète.

Valeurs de retour

Retourne le mode de l'opération.

Exemples

Exemple #1 Exemple avec RegexIterator::getMode()

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^[a-z]+/', RegexIterator::GET_MATCH);

$mode = $regexIterator->getMode();
if ($mode & RegexIterator::GET_MATCH) {
    echo 'Getting the match for each item.';
} elseif ($mode & RegexIterator::ALL_MATCHES) {
    echo 'Getting all matches for each item.';
} elseif ($mode & RegexIterator::MATCH) {
    echo 'Getting each item if it matches.';
} elseif ($mode & RegexIterator::SPLIT) {
    echo 'Getting split pieces of each.';
}
?>

L'exemple ci-dessus va afficher :

Getting the match for each item.

Voir aussi

  • RegexIterator::setMode() - Définit le mode de l'opération


Retourne les drapeaux de l'expression rationnelle

  • « RegexIterator::getMode
  • RegexIterator::getRegex »
  • PHP Manual
  • La classe RegexIterator
  • Retourne les drapeaux de l'expression rationnelle

RegexIterator::getPregFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::getPregFlags — Retourne les drapeaux de l'expression rationnelle

Description

public int RegexIterator::getPregFlags ( void )

Retourne les drapeaux de l'expression rationnelle, voir la méthode RegexIterator::__construct() pour une liste complète.

Valeurs de retour

Retourne les drapeaux de l'expression rationnelle.

Exemples

Exemple #1 Exemple avec RegexIterator::getPregFlags()

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/\s/', RegexIterator::SPLIT);
$regexIterator->setPregFlags(PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE);

if ($regexIterator->getPregFlags() & PREG_SPLIT_NO_EMPTY) {
    echo 'Ignore les éléments vides';
} else {
    echo 'Éléments vides pris en compte';
}

?>

L'exemple ci-dessus va afficher :

Ignore les éléments vides

Voir aussi

  • RegexIterator::setPregFlags() - Définit les drapeaux de l'expression rationnelle


Retourne l'expression rationnelle courante

  • « RegexIterator::getPregFlags
  • RegexIterator::setFlags »
  • PHP Manual
  • La classe RegexIterator
  • Retourne l'expression rationnelle courante

RegexIterator::getRegex

(PHP 5 >= 5.4.0, PHP 7)

RegexIterator::getRegex — Retourne l'expression rationnelle courante

Description

public string RegexIterator::getRegex ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'expression rationnelle courante sous forme d'une chaine de caractères.


Définit les drapeaux

  • « RegexIterator::getRegex
  • RegexIterator::setMode »
  • PHP Manual
  • La classe RegexIterator
  • Définit les drapeaux

RegexIterator::setFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::setFlags — Définit les drapeaux

Description

public void RegexIterator::setFlags ( int $flags )

Définit les drapeaux.

Liste de paramètres

flags

Les drapeaux à définir, un masque de constantes de classe.

Les drapeaux disponibles sont listés ci-dessous. Leurs significations actuelles sont décrites dans la section sur les constantes prédéfinies.

Drapeaux pour RegexIterator
Valeur | Constante
1 | RegexIterator::USE_KEY

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec RegexIterator::setFlags()

Crée un nouvel objet RegexIterator qui filtre toutes les entrées dont les clés du tableau commencent par 'test'.

<?php
$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/');
$regexIterator->setFlags(RegexIterator::USE_KEY);

foreach ($regexIterator as $key => $value) {
    echo $key . ' => ' . $value . "\n";
}
?>

L'exemple ci-dessus va afficher :

teststr2 => another test

Voir aussi

  • RegexIterator::getFlags() - Récupère les drapeaux


Définit le mode de l'opération

  • « RegexIterator::setFlags
  • RegexIterator::setPregFlags »
  • PHP Manual
  • La classe RegexIterator
  • Définit le mode de l'opération

RegexIterator::setMode

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::setMode — Définit le mode de l'opération

Description

public void RegexIterator::setMode ( int $mode )

Définit le mode de l'opération.

Liste de paramètres

mode

Le mode de l'opération.

Les modes disponibles sont listés ci-dessous. Leurs significations actuelles sont décrites dans la section sur les constantes prédéfinies.

Les modes pour RegexIterator
Valeur | Constante
0 | RegexIterator::MATCH
1 | RegexIterator::GET_MATCH
2 | RegexIterator::ALL_MATCHES
3 | RegexIterator::SPLIT
4 | RegexIterator::REPLACE

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec RegexIterator::setMode()

<?php
$test = array ('str1' => 'test 1', 'test str2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
// Filtre tout ce qui commence par 'test ' suivi par un ou plusieurs nombres.
$regexIterator = new RegexIterator($arrayIterator, '/^test (\d+)/');
// Mode de l'opération : Remplace la valeur actuelle par celle trouvée par l'expression rationnelle
$regexIterator->setMode(RegexIterator::GET_MATCH);

foreach ($regexIterator as $key => $value) {
    // Affiche le(s) nombre(s) qui correspond(ent)
    echo $key . ' => ' . $value[1] . PHP_EOL;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

str1 => 1
str3 => 123

Voir aussi

  • RegexIterator::getMode() - Retourne le mode de l'opération


Définit les drapeaux de l'expression rationnelle

  • « RegexIterator::setMode
  • Interfaces »
  • PHP Manual
  • La classe RegexIterator
  • Définit les drapeaux de l'expression rationnelle

RegexIterator::setPregFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::setPregFlags — Définit les drapeaux de l'expression rationnelle

Description

public void RegexIterator::setPregFlags ( int $preg_flags )

Définit les drapeaux de l'expression rationnelle.

Liste de paramètres

preg_flags

Les drapeaux de l'expression rationnelle. Voir la méthode RegexIterator::__construct() pour une liste de tous les drapeaux disponibles.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec RegexIterator::setPregFlags()

Crée un nouvel objet RegexIterator qui filtre toutes les entrées dont les clés commencent par 'test'.

<?php
$test = array ('test 1', 'another test', 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/', RegexIterator::GET_MATCH);

$regexIterator->setPregFlags(PREG_OFFSET_CAPTURE);

foreach ($regexIterator as $key => $value) {
    var_dump($value);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(4) "test"
    [1]=>
    int(0)
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(4) "test"
    [1]=>
    int(0)
  }
}

Voir aussi

  • RegexIterator::getPregFlags() - Retourne les drapeaux de l'expression rationnelle


Interfaces

Sommaire

  • Countable
  • OuterIterator
  • RecursiveIterator
  • SeekableIterator

SPL fournit un jeu d'interfaces.

Voir aussi le mot réservé Interfaces et Classes prédéfinies

Liste des interfaces

  • Countable
  • OuterIterator
  • RecursiveIterator
  • SeekableIterator
  • SplObserver
  • SplSubject


L'interface Countable

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Les classes qui implémentent l'interface Countable peuvent être utilisées avec la fonction count().

Sommaire de l'Interface

Countable {
/* Méthodes */
abstract public int count ( void )
}

Sommaire

  • Countable::count — Compte le nombre d'éléments d'un objet


Compte le nombre d'éléments d'un objet

  • « Countable
  • OuterIterator »
  • PHP Manual
  • Countable
  • Compte le nombre d'éléments d'un objet

Countable::count

(PHP 5 >= 5.1.0, PHP 7)

Countable::count — Compte le nombre d'éléments d'un objet

Description

abstract public int Countable::count ( void )

Countable::count() est exécutée lorsque la fonction count() est appelée sur un objet qui implémente l'interface Countable.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre compté, sous forme integer.

Note:

La valeur retournée est forcée en integer.

Exemples

Exemple #1 Exemple avec Countable::count()

<?php
class myCounter implements Countable {
    private $count = 0;
    public function count() {
        return ++$this->count;
    }
}

$counter = new myCounter;

for($i=0; $i<10; ++$i) {
    echo "J'ai été compté " . count($counter) . " fois\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

J'ai été compté 1 fois
J'ai été compté 2 fois
J'ai été compté 3 fois
J'ai été compté 4 fois
J'ai été compté 5 fois
J'ai été compté 6 fois
J'ai été compté 7 fois
J'ai été compté 8 fois
J'ai été compté 9 fois
J'ai été compté 10 fois


L'interface OuterIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Les classes implémentant la classe OuterIterator peuvent être utilisées pour itérer sur des itérateurs.

Sommaire de l'Interface

OuterIterator extends Iterator {
/* Méthodes */
public Iterator getInnerIterator ( void )
/* Méthodes héritées */
abstract public mixed Iterator::current ( void )
abstract public scalar Iterator::key ( void )
abstract public void Iterator::next ( void )
abstract public void Iterator::rewind ( void )
abstract public boolean Iterator::valid ( void )
}

Sommaire

  • OuterIterator::getInnerIterator — Retourne l'itérateur interne pour l'entrée courante


Retourne l'itérateur interne pour l'entrée courante

  • « OuterIterator
  • RecursiveIterator »
  • PHP Manual
  • OuterIterator
  • Retourne l'itérateur interne pour l'entrée courante

OuterIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

OuterIterator::getInnerIterator — Retourne l'itérateur interne pour l'entrée courante

Description

public Iterator OuterIterator::getInnerIterator ( void )

Retourne l'itérateur interne pour l'entrée courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur interne pour l'entrée courante.


La classe RecursiveIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Les classes qui implémentent RecursiveIterator peut être utilisées pour itérer sur d'autres itérateurs récursivement.

Sommaire de l'Interface

RecursiveIterator extends Iterator {
/* Méthodes */
public RecursiveIterator getChildren ( void )
public bool hasChildren ( void )
/* Méthodes héritées */
abstract public mixed Iterator::current ( void )
abstract public scalar Iterator::key ( void )
abstract public void Iterator::next ( void )
abstract public void Iterator::rewind ( void )
abstract public boolean Iterator::valid ( void )
}

Sommaire

  • RecursiveIterator::getChildren — Récupère l'itérateur de l'entrée courante
  • RecursiveIterator::hasChildren — Vérifie si un itérateur peut être créé depuis l'entrée courante


Récupère l'itérateur de l'entrée courante

  • « RecursiveIterator
  • RecursiveIterator::hasChildren »
  • PHP Manual
  • RecursiveIterator
  • Récupère l'itérateur de l'entrée courante

RecursiveIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIterator::getChildren — Récupère l'itérateur de l'entrée courante

Description

public RecursiveIterator RecursiveIterator::getChildren ( void )

Retourne l'itérateur pour l'entrée courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Li'térateur pour l'entrée courante.

Voir aussi

  • RecursiveIterator::hasChildren() - Vérifie si un itérateur peut être créé depuis l'entrée courante


Vérifie si un itérateur peut être créé depuis l'entrée courante

  • « RecursiveIterator::getChildren
  • SeekableIterator »
  • PHP Manual
  • RecursiveIterator
  • Vérifie si un itérateur peut être créé depuis l'entrée courante

RecursiveIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIterator::hasChildren — Vérifie si un itérateur peut être créé depuis l'entrée courante

Description

public bool RecursiveIterator::hasChildren ( void )

Vérifie si un itérateur peut être créé depuis l'entrée courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'entrée courante peut être parcouru, FALSE sinon.

Voir aussi

  • RecursiveIterator::getChildren() - Récupère l'itérateur de l'entrée courante


L'interface SeekableIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

L'itérateur SeekableIterator.

Sommaire de l'Interface

SeekableIterator extends Iterator {
/* Méthodes */
abstract public void seek ( int $position )
/* Méthodes héritées */
abstract public mixed Iterator::current ( void )
abstract public scalar Iterator::key ( void )
abstract public void Iterator::next ( void )
abstract public void Iterator::rewind ( void )
abstract public boolean Iterator::valid ( void )
}

Exemple #1 Utilisation simple

Cet exemple montre comment crée une classe SeekableIterator personnalisée, qui gère une position invalide.

<?php
class MySeekableIterator implements SeekableIterator {

    private $position;

    private $array = array(
        "premier élément",
        "second élément",
        "troisième élément",
        "quatriéme élément"
    );

    /* Méthode requis pour l'interface SeekableIterator */

    public function seek($position) {
      if (!isset($this->array[$position])) {
          throw new OutOfBoundsException("position invalide ($position)");
      }

      $this->position = $position;
    }

    /* Méthodes requises par l'interface Iterator */

    public function rewind() {
        $this->position = 0;
    }

    public function current() {
        return $this->array[$this->position];
    }

    public function key() {
        return $this->position;
    }

    public function next() {
        ++$this->position;
    }

    public function valid() {
        return isset($this->array[$this->position]);
    }
}

try {

    $it = new MySeekableIterator;
    echo $it->current(), "\n";

    $it->seek(2);
    echo $it->current(), "\n";

    $it->seek(1);
    echo $it->current(), "\n";

    $it->seek(10);

} catch (OutOfBoundsException $e) {
    echo $e->getMessage();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

premier élément
troisième élément
second élément
position invalide (10)

Sommaire

  • SeekableIterator::seek — Recherche une position


Recherche une position

  • « SeekableIterator
  • Exceptions »
  • PHP Manual
  • SeekableIterator
  • Recherche une position

SeekableIterator::seek

(PHP 5 >= 5.1.0, PHP 7)

SeekableIterator::seek — Recherche une position

Description

abstract public void SeekableIterator::seek ( int $position )

Recherche la position donnée dans l'itérateur.

Liste de paramètres

position

La position à atteindre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

L'implémentations doit émettre une exception OutOfBoundsException si la position position n'est pas atteignable.

Exemples

Exemple #1 Exemple avec SeekableIterator::seek()

Déplace l'itérateur à la position 3 (ArrayIterator implémente SeekableIterator).

<?php
$array = array("apple", "banana", "cherry", "damson", "elderberry");
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

damson

Voir aussi

  • SeekableIterator
  • Iterator


Exceptions

Sommaire

  • BadFunctionCallException
  • BadMethodCallException
  • DomainException
  • InvalidArgumentException
  • LengthException
  • LogicException
  • OutOfBoundsException
  • OutOfRangeException
  • OverflowException
  • RangeException
  • RuntimeException
  • UnderflowException
  • UnexpectedValueException

SPL fournit un jeu d'exceptions standards.

Voir aussi le mot réservé Exceptions prédéfinies

Arbre de la classe SPL Exceptions

  • LogicException (étend la classe Exception)
    • BadFunctionCallException
      • BadMethodCallException
    • DomainException
    • InvalidArgumentException
    • LengthException
    • OutOfRangeException
  • RuntimeException (étend la classe Exception)
    • OutOfBoundsException
    • OverflowException
    • RangeException
    • UnderflowException
    • UnexpectedValueException


La classe BadFunctionCallException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception émise si une fonction de rappel n'existe pas ou si certains de ses arguments sont manquants.

Synopsis de la classe

BadFunctionCallException extends LogicException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe BadMethodCallException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception émise si une méthode de rappel n'existe pas ou si certains de ses arguments sont manquants.

Synopsis de la classe

BadMethodCallException extends BadFunctionCallException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe DomainException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception lancée si une valeur n'adhère pas à un domaine de données défini et valide.

Synopsis de la classe

DomainException extends LogicException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe InvalidArgumentException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception émise si un argument ne correspond pas au type attendu.

Synopsis de la classe

InvalidArgumentException extends LogicException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe LengthException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception émise si une taille est invalide.

Synopsis de la classe

LengthException extends LogicException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe LogicException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception qui représente les erreurs dans la logique du programme. Ce type d'exceptions doit obligatoirement faire l'objet d'une correction de votre code.

Synopsis de la classe

LogicException extends Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe OutOfBoundsException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception émise quand une valeur n'est pas une clé valide. Elle représente les erreurs qui ne peuvent pas être détectées au moment de la compilation.

Synopsis de la classe

OutOfBoundsException extends RuntimeException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe OutOfRangeException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception émise lorsqu'un index illégal est demandé. Elle représente les erreurs qui devraient être détectées au moment de la compilation.

Synopsis de la classe

OutOfRangeException extends LogicException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe OverflowException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception émise lors de l'ajout d'un élément à un conteneur plein.

Synopsis de la classe

OverflowException extends RuntimeException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe RangeException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception émise pour indiquer des erreurs d'intervalle lors de l'exécution du programme. Normalement, cela signifie qu'il y a une erreur arithmétique autre qu'un débordement. C'est l'équivalent en cours d'exécution de DomainException.

Synopsis de la classe

RangeException extends RuntimeException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe RuntimeException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception émise quand une erreur est rencontrée durant l'exécution.

Synopsis de la classe

RuntimeException extends Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe UnderflowException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception émise lorsqu'une opération invalide est effectuée sur un conteneur vide, tel qu'une suppression d'élément.

Synopsis de la classe

UnderflowException extends RuntimeException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


La classe UnexpectedValueException

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Exception émise si une valeur ne fait pas partie d'une liste de valeurs. Typiquement, elle survient lorsqu'une fonction appelle une autre fonction et attend que la valeur retournée soit d'un certain type ou d'une certaine valeur, sans inclure les erreurs relatives à l'arithmétique ou au buffer.

Synopsis de la classe

UnexpectedValueException extends RuntimeException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Fonctions SPL

Sommaire

  • class_implements — Retourne les interfaces implémentées par une classe ou une interface donnée
  • class_parents — Retourne la classe parente d'une classe
  • class_uses — Retourne le trait utilisé par une classe donnée.
  • iterator_apply — Appelle une fonction pour tous les éléments d'un itérateur
  • iterator_count — Compte de nombre d'éléments dans un itérateur
  • iterator_to_array — Copie un itérateur dans un tableau
  • spl_autoload_call — Essai toutes les fonctions __autoload() enregistrées pour charger la classe demandée
  • spl_autoload_extensions — Enregistre et retourne l'extension du fichier par défaut pour spl_autoload
  • spl_autoload_functions — Retourne toutes les fonctions __autoload() enregistrées
  • spl_autoload_register — Enregistre une fonction en tant qu'implémentation de __autoload()
  • spl_autoload_unregister — Efface une fonction donnée de l'implémentation __autoload()
  • spl_autoload — Implémentation par défaut d'__autoload()
  • spl_classes — Retourne les classes SPL disponibles
  • spl_object_hash — Retourne l'identifiant de hashage pour un objet donné


Retourne les interfaces implémentées par une classe ou une interface donnée

  • « Fonctions SPL
  • class_parents »
  • PHP Manual
  • Fonctions SPL
  • Retourne les interfaces implémentées par une classe ou une interface donnée

class_implements

(PHP 5 >= 5.1.0, PHP 7)

class_implements — Retourne les interfaces implémentées par une classe ou une interface donnée

Description

array class_implements ( mixed $class [, bool $autoload = true ] )

Cette fonction retourne un tableau avec les noms des interfaces que la classe class ainsi que ses parents implémentent.

Liste de paramètres

class

Un objet (instance) ou une chaîne de caractères (nom de la classe ou de l'interface).

autoload

Si TRUE, autorise cette fonction à charger la classe automatiquement grâce à la méthode magique __autoload().

Valeurs de retour

Retourne un tableau ou FALSE en cas d'erreur.

Historique

Version | Description
5.1.0 | Ajout de l'option pour passer le paramètre class en tant que chaîne de caractères. Ajout du paramètre autoload.

Exemples

Exemple #1 Exemple avec class_implements()

<?php

interface foo { }
class bar implements foo {}

print_r(class_implements(new bar));

// Depuis PHP 5.1.0, vous pouvez aussi spécifier le paramètre comme une chaîne de caractères
print_r(class_implements('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// Utilisez __autoload pour charger la classe 'non_chargée'
print_r(class_implements('non_chargée', true));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [foo] => foo
)

Array
(
    [interface_de_non_chargée] => interface_de_non_chargée
)

Voir aussi

  • class_parents() - Retourne la classe parente d'une classe
  • get_declared_interfaces() - Retourne un tableau avec toutes les interfaces déclarées


Retourne la classe parente d'une classe

  • « class_implements
  • class_uses »
  • PHP Manual
  • Fonctions SPL
  • Retourne la classe parente d'une classe

class_parents

(PHP 5 >= 5.1.0, PHP 7)

class_parents — Retourne la classe parente d'une classe

Description

array class_parents ( mixed $class [, bool $autoload = true ] )

class_parents() retourne un tableau avec le nom des classes parentes de la classe class.

Liste de paramètres

class

Un objet (instance) ou une chaîne de caractères (nom de la classe).

autoload

Si TRUE, autorise cette fonction à charger la classe automatiquement grâce à la méthode magique __autoload().

Valeurs de retour

Retourne un tableau ou FALSE en cas d'erreur.

Historique

Version | Description
5.1.0 | Ajout de l'option pour passer le paramètre en tant que chaîne de caractères

Exemples

Exemple #1 Exemple avec class_parents()

<?php

class foo { }
class bar extends foo {}

print_r(class_parents(new bar));

// Depuis PHP 5.1.0, vous pouvez aussi spécifier le paramètre comme une chaîne de caractères
print_r(class_implements('bar'));

function __autoload($class_name) {
require_once $class_name . '.php';
}

// Utilisez __autoload pour charger la classe 'non_chargée'
print_r(class_implements('non_chargée', true));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [foo] => foo
)

Array
(
   [parent_de_non_chargée] => parent_de_non_chargée
)

Voir aussi

  • class_implements() - Retourne les interfaces implémentées par une classe ou une interface donnée


Retourne le trait utilisé par une classe donnée.

  • « class_parents
  • iterator_apply »
  • PHP Manual
  • Fonctions SPL
  • Retourne le trait utilisé par une classe donnée.

class_uses

(PHP 5 >= 5.4.0, PHP 7)

class_uses — Retourne le trait utilisé par une classe donnée.

Description

array class_uses ( mixed $class [, bool $autoload = true ] )

Cette fonction retourne un tableau représentant les noms des traits que la classe donnée utilise. Les traits des classes parentes ne sont pas représentés.

Liste de paramètres

class

Un objet ou un nom de classe sous forme de chaine.

autoload

Si oui ou non l'auto-chargement __autoload() doit être déclenché.

Valeurs de retour

Un tableau en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemples pour class_uses()

<?php

trait foo { }
class bar {
  use foo;
}

print_r(class_uses(new bar));

print_r(class_uses('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// utilise __autoload pour charger la classe 'not_loaded'
print_r(class_uses('not_loaded', true));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [foo] => foo
)

Array
(
    [foo] => foo
)

Array
(
    [trait_of_not_loaded] => trait_of_not_loaded
)

Voir aussi

  • class_parents() - Retourne la classe parente d'une classe
  • get_declared_traits() - Retourne un tableau contenant tous les traits déclarés


Appelle une fonction pour tous les éléments d'un itérateur

  • « class_uses
  • iterator_count »
  • PHP Manual
  • Fonctions SPL
  • Appelle une fonction pour tous les éléments d'un itérateur

iterator_apply

(PHP 5 >= 5.1.0, PHP 7)

iterator_apply — Appelle une fonction pour tous les éléments d'un itérateur

Description

int iterator_apply ( Traversable $iterator , callable $function [, array $args ] )

Appelle une fonction pour tous les éléments d'un itérateur.

Liste de paramètres

iterator

La classe à itérer.

function

La fonction à appeler à chaque élément.

Note: La fonction doit retourner TRUE afin de continuer d'itérer à travers l'itérateur nommé par le paramètre iterator.

args

Les arguments à passer à la fonction de rappel.

Valeurs de retour

Retourne le nombre d'itération.

Exemples

Exemple #1 Exemple avec iterator_apply()

<?php
function print_caps(Iterator $iterator) {
    echo strtoupper($iterator->current()) . "\n";
    return TRUE;
}

$it = new ArrayIterator(array("Apples", "Bananas", "Cherries"));
iterator_apply($it, "print_caps", array($it));
?>

L'exemple ci-dessus va afficher :

APPLES
BANANAS
CHERRIES

Voir aussi

  • array_walk() - Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau


Compte de nombre d'éléments dans un itérateur

  • « iterator_apply
  • iterator_to_array »
  • PHP Manual
  • Fonctions SPL
  • Compte de nombre d'éléments dans un itérateur

iterator_count

(PHP 5 >= 5.1.0, PHP 7)

iterator_count — Compte de nombre d'éléments dans un itérateur

Description

int iterator_count ( Traversable $iterator )

Compte les éléments dans un itérateur. Il n'est pas garantie que la fonction iterator_count() conserve la position courante de l'itérateur iterator.

Liste de paramètres

iterator

L'itérateur dont il faut compter les éléments.

Valeurs de retour

Le nombre d'éléments dans l'itérateur iterator.

Exemples

Exemple #1 Exemple avec iterator_count()

<?php
$iterator = new ArrayIterator(array('recipe'=>'crêpes', 'oeufs', 'lait', 'farine'));
var_dump(iterator_count($iterator));
?>

L'exemple ci-dessus va afficher :

int(4)

Exemple #2 Exemple avec iterator_count() qui modifie la position

<?php
$iterator = new ArrayIterator(['one', 'two', 'three']);
var_dump($iterator->current());
var_dump(iterator_count($iterator));
var_dump($iterator->current());
?>

L'exemple ci-dessus va afficher :

string(3) "one"
int(3)
NULL

Exemple #3 Exemple avec iterator_count() dans une boucle foreach

<?php
$iterator = new ArrayIterator(['one', 'two', 'three']);
foreach ($iterator as $key => $value) {
    echo "$key: $value (", iterator_count($iterator), ")\n";
}?>

L'exemple ci-dessus va afficher :

0: one (3)


Copie un itérateur dans un tableau

  • « iterator_count
  • spl_autoload_call »
  • PHP Manual
  • Fonctions SPL
  • Copie un itérateur dans un tableau

iterator_to_array

(PHP 5 >= 5.1.0, PHP 7)

iterator_to_array — Copie un itérateur dans un tableau

Description

array iterator_to_array ( Traversable $iterator [, bool $use_keys = true ] )

Copie les éléments d'un itérateur dans un tableau.

Liste de paramètres

iterator

L'itérateur à copier.

use_keys

S'il faut utiliser les éléments de l'itérateur comme clé.

En PHP 5.5 et suivants, si une clé est un array ou un object, une alerte sera générée. Les clés NULL seront converties en une chaîne vide, les clés de type double seront tronquées en leurs parties integer, les clés de type resource génèreront une alerte et seront converties en identifiant de la ressource, et les clés de type boolean seront converties en entiers.

Valeurs de retour

Un tableau contenant les éléments de l'itérateur iterator.

Historique

Version | Description
5.5.0 | iterator_to_array() supporte désormais les clés de types autres que integer et string lorsque le paramètre use_keys est activé.
5.2.1 | Ajout du paramètre use_keys.

Exemples

Exemple #1 Exemple avec iterator_to_array()

<?php
$iterator = new ArrayIterator(array('recipe'=>'crêpes', 'oeufs', 'lait', 'farine'));
var_dump(iterator_to_array($iterator, true));
var_dump(iterator_to_array($iterator, false));
?>

L'exemple ci-dessus va afficher :

array(4) {
  ["recipe"]=>
  string(7) "crêpes"
  [0]=>
  string(5) "oeufs"
  [1]=>
  string(4) "lait"
  [2]=>
  string(6) "farine"
}
array(4) {
  [0]=>
  string(7) "crêpes"
  [1]=>
  string(5) "oeufs"
  [2]=>
  string(4) "lait"
  [3]=>
  string(6) "farine"
}


Essai toutes les fonctions __autoload() enregistrées pour charger la classe demandée

  • « iterator_to_array
  • spl_autoload_extensions »
  • PHP Manual
  • Fonctions SPL
  • Essai toutes les fonctions __autoload() enregistrées pour charger la classe demandée

spl_autoload_call

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_call — Essai toutes les fonctions __autoload() enregistrées pour charger la classe demandée

Description

void spl_autoload_call ( string $class_name )

Cette fonction peut être utilisée pour rechercher manuellement une classe ou une interface en utilisant les fonctions enregistrées __autoload.

Liste de paramètres

class_name

Le nom de la classe cherchée.

Valeurs de retour

Aucune valeur n'est retournée.


Enregistre et retourne l'extension du fichier par défaut pour spl_autoload

  • « spl_autoload_call
  • spl_autoload_functions »
  • PHP Manual
  • Fonctions SPL
  • Enregistre et retourne l'extension du fichier par défaut pour spl_autoload

spl_autoload_extensions

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_extensions — Enregistre et retourne l'extension du fichier par défaut pour spl_autoload

Description

string spl_autoload_extensions ([ string $file_extensions ] )

Cette fonction peut modifier et vérifier l'extension du fichier pour spl_autoload().

Liste de paramètres

file_extensions

Lorsqu'appelée sans argument, elle retourne simplement la liste courante des extensions, séparées par une virgule. Pour modifier cette liste, appelez simplement la fonction avec la nouvelle liste d'extensions à utiliser dans un chaîne de caractères, dont chaque extension sera séparée par une virgule.

Valeurs de retour

Une liste d'extensions de fichier, délimitée par une virgule pour spl_autoload().


Retourne toutes les fonctions __autoload() enregistrées

  • « spl_autoload_extensions
  • spl_autoload_register »
  • PHP Manual
  • Fonctions SPL
  • Retourne toutes les fonctions __autoload() enregistrées

spl_autoload_functions

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_functions — Retourne toutes les fonctions __autoload() enregistrées

Description

array spl_autoload_functions ( void )

Récupère toutes les fonctions __autoload() enregistrées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant toutes les fonctions __autoload enregistrées. Si la pile d'autoload n'est pas active, alors la valeur de retour sera FALSE. Si aucune fonction n'est enregistrée, la valeur retournée sera un tableau vide.


Enregistre une fonction en tant qu'implémentation de __autoload()

  • « spl_autoload_functions
  • spl_autoload_unregister »
  • PHP Manual
  • Fonctions SPL
  • Enregistre une fonction en tant qu'implémentation de __autoload()

spl_autoload_register

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_register — Enregistre une fonction en tant qu'implémentation de __autoload()

Description

bool spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )

spl_autoload_register() enregistre une fonction dans la pile __autoload() fournie. Si la pile n'est pas encore active, elle est activée.

Si votre code dispose déjà d'une fonction __autoload(), alors cette fonction doit explicitement enregistrer la pile __autoload. Ceci est du au fait que spl_autoload_register() remplace le cache du moteur pour la fonction __autoload() par soit spl_autoload(), soit spl_autoload_call().

Si vous devez utiliser plusieurs fonctions d'autochargement, la fonction spl_autoload_register() est faite pour cela. Elle crée une file d'attente de fonctions d'autochargement, et les exécute les unes après les autres, dans l'ordre où elles ont été définies. A contrario, la fonction __autoload() ne peut être définie qu'une seule fois.

Liste de paramètres

autoload_function

La fonction __autoload() à enregistrer. Si aucun paramètre n'est fourni, alors, l'implémentation par défaut de la fonction spl_autoload() sera enregistrée.

throw

Ce paramètre spécifie si spl_autoload_register() doit lancer des exceptions lorsque le paramètre autoload_function n'a pu être enregistré.

prepend

Si ce paramètre vaut TRUE, spl_autoload_register() ajoutera la fonction au début de la pile de l'autoloader au lieu de l'ajouter à la fin de la pile.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Ajout du support des espaces de noms.
5.3.0 | Le paramètre prepend a été ajouté.

Exemples

Exemple #1 Exemple avec spl_autoload_register() comme remplacement d'une fonction __autoload()

<?php

// function __autoload($class) {
//     include 'classes/' . $class . '.class.php';
// }

function my_autoloader($class) {
    include 'classes/' . $class . '.class.php';
}

spl_autoload_register('my_autoloader');

// Ou, en utilisant une fonction anonyme à partir de PHP 5.3.0
spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

?>

Exemple #2 Exemple avec spl_autoload_register() où la classe n'est pas chargée

<?php

namespace Foobar;

class Foo {
    static public function test($name) {
        print '[['. $name .']]';
    }
}

spl_autoload_register(__NAMESPACE__ .'\Foo::test'); // Depuis PHP 5.3.0

new InexistentClass;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

[[Foobar\InexistentClass]]
Fatal error: Class 'Foobar\InexistentClass' not found in ...

Voir aussi

  • __autoload() - Tente de charger une classe indéfinie


Efface une fonction donnée de l'implémentation __autoload()

  • « spl_autoload_register
  • spl_autoload »
  • PHP Manual
  • Fonctions SPL
  • Efface une fonction donnée de l'implémentation __autoload()

spl_autoload_unregister

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_unregister — Efface une fonction donnée de l'implémentation __autoload()

Description

bool spl_autoload_unregister ( mixed $autoload_function )

Efface une fonction de la pile autoload. Si la pile est active et vide après l'effacement de la fonction donnée, alors elle sera désactivée.

Lorsque cette fonction active une pile autoload, toutes les fonctions __autoload existantes ne seront pas réactivées.

Liste de paramètres

autoload_function

La fonction autoload à enregistrer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Implémentation par défaut d'__autoload()

  • « spl_autoload_unregister
  • spl_classes »
  • PHP Manual
  • Fonctions SPL
  • Implémentation par défaut d'__autoload()

spl_autoload

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload — Implémentation par défaut d'__autoload()

Description

void spl_autoload ( string $class_name [, string $file_extensions = spl_autoload_extensions() ] )

Cette fonction est prévue pour être utilisée comme implémentation par défaut pour __autoload(). Si rien de plus n'est spécifié et que spl_autoload_register() est appelé sans aucun paramètre, alors cette fonction sera utilisée pour tous les futures appels à __autoload().

Liste de paramètres

class_name

Le nom de la classe (et de l'espace de noms), en minuscule, à instancier.

file_extensions

Par défaut, la fonction vérifie tous les chemins d'inclusion qui pourraient contenir des noms de fichier ajoutés par le nom de classe, utilisant les extensions .inc et .php.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception de type LogicException lorsque la classe n'est pas trouvée, et qu'il n'y a aucun autre auto-chargeur d'enregistré.


Retourne les classes SPL disponibles

  • « spl_autoload
  • spl_object_hash »
  • PHP Manual
  • Fonctions SPL
  • Retourne les classes SPL disponibles

spl_classes

(PHP 5, PHP 7)

spl_classes — Retourne les classes SPL disponibles

Description

array spl_classes ( void )

spl_classes() retourne un tableau avec la liste des classes SPL actuellement disponibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les classes SPL actuellement disponibles.

Exemples

Exemple #1 Exemple avec spl_classes()

<?php

print_r(spl_classes());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [ArrayObject] => ArrayObject
    [ArrayIterator] => ArrayIterator
    [CachingIterator] => CachingIterator
    [RecursiveCachingIterator] => RecursiveCachingIterator
    [DirectoryIterator] => DirectoryIterator
    [FilterIterator] => FilterIterator
    [LimitIterator] => LimitIterator
    [ParentIterator] => ParentIterator
    [RecursiveDirectoryIterator] => RecursiveDirectoryIterator
    [RecursiveIterator] => RecursiveIterator
    [RecursiveIteratorIterator] => RecursiveIteratorIterator
    [SeekableIterator] => SeekableIterator
    [SimpleXMLIterator] => SimpleXMLIterator
)


Retourne l'identifiant de hashage pour un objet donné

  • « spl_classes
  • Gestion des fichiers »
  • PHP Manual
  • Fonctions SPL
  • Retourne l'identifiant de hashage pour un objet donné

spl_object_hash

(PHP 5 >= 5.2.0, PHP 7)

spl_object_hash — Retourne l'identifiant de hashage pour un objet donné

Description

string spl_object_hash ( object $obj )

Cette fonction retourne un identifiant unique pour l'objet. Cet identifiant peut être utilisé comme clé de hashage pour stocker les objets ou pour les identifier, tant que l'objet n'est pas détruit. Une fois l'objet détruit, l'identifiant peut être réutilisé pour d'autres objets.

Liste de paramètres

object

N'importe quel objet.

Valeurs de retour

Une chaîne de caractères unique pour chaque objet existant et qui sera toujours identique pour chaque objet.

Exemples

Exemple #1 Exemple avec spl_object_hash()

<?php
$id = spl_object_hash($object);
$storage[$id] = $object;
?>

Notes

Note:

Lorsqu'un objet est détruit, son identifiant de hashage pourra être réutilisé pour d'autres objets.


Gestion des fichiers

Sommaire

  • SplFileInfo
  • SplFileObject
  • SplTempFileObject

SPL fournit des classes pour travailler sur les fichiers.


La classe SplFileInfo

(PHP 5 >= 5.1.2, PHP 7)

Introduction

La classe SplFileInfo fournit une interface de haut niveau avec les informations de fichiers.

Synopsis de la classe

SplFileInfo {
/* Méthodes */
public __construct ( string $file_name )
public int getATime ( void )
public string getBasename ([ string $suffix ] )
public int getCTime ( void )
public string getExtension ( void )
public SplFileInfo getFileInfo ([ string $class_name ] )
public string getFilename ( void )
public int getGroup ( void )
public int getInode ( void )
public string getLinkTarget ( void )
public int getMTime ( void )
public int getOwner ( void )
public string getPath ( void )
public SplFileInfo getPathInfo ([ string $class_name ] )
public string getPathname ( void )
public int getPerms ( void )
public string getRealPath ( void )
public int getSize ( void )
public string getType ( void )
public bool isDir ( void )
public bool isExecutable ( void )
public bool isFile ( void )
public bool isLink ( void )
public bool isReadable ( void )
public bool isWritable ( void )
public SplFileObject openFile ([ string $open_mode = "r" [, bool $use_include_path = false [, resource $context = NULL ]]] )
public void setFileClass ([ string $class_name = "SplFileObject" ] )
public void setInfoClass ([ string $class_name = "SplFileInfo" ] )
public void __toString ( void )
}

Sommaire

  • SplFileInfo::__construct — Construit un nouvel objet SplFileInfo
  • SplFileInfo::getATime — Lit la date de dernier accès au fichier
  • SplFileInfo::getBasename — Lit le nom du fichier
  • SplFileInfo::getCTime — Lit la date de modification du fichier
  • SplFileInfo::getExtension — Récupère l'extension d'un fichier
  • SplFileInfo::getFileInfo — Obtient un objet SplFileInfo pour un fichier
  • SplFileInfo::getFilename — Lit le nom du fichier
  • SplFileInfo::getGroup — Lit le groupe d'appartenance du fichier
  • SplFileInfo::getInode — Lit le inode du fichier
  • SplFileInfo::getLinkTarget — Lit la cible d'un lien symbolique
  • SplFileInfo::getMTime — Lit la date de dernière modification
  • SplFileInfo::getOwner — Lit le propriétaire du fichier
  • SplFileInfo::getPath — Le le chemin sans le nom de fichier
  • SplFileInfo::getPathInfo — Crée un objet SplFileInfo pour un chemin
  • SplFileInfo::getPathname — Lit le chemin d'un fichier
  • SplFileInfo::getPerms — Lit les droits d'un fichier
  • SplFileInfo::getRealPath — Lit le chemin absolu d'un fichier
  • SplFileInfo::getSize — Lit la taille d'un fichier
  • SplFileInfo::getType — Lit le type de fichier
  • SplFileInfo::isDir — Indique si le fichier est un dossier
  • SplFileInfo::isExecutable — Indique si un fichier est exécutable
  • SplFileInfo::isFile — Indique si un fichier est un véritable fichier
  • SplFileInfo::isLink — Indique si un fichier est un lien
  • SplFileInfo::isReadable — Indique si le fichier est lisible
  • SplFileInfo::isWritable — Indique si on peut écrire dans un fichier
  • SplFileInfo::openFile — Crée un objet SplFileObject pour le fichier
  • SplFileInfo::setFileClass — Configure la classe utilisée avec SplFileInfo::openFile
  • SplFileInfo::setInfoClass — Configure la classe utilisée par SplFileInfo::getFileInfo et SplFileInfo::getPathInfo
  • SplFileInfo::__toString — Retourne le chemin d'un fichier sous forme de chaîne


Construit un nouvel objet SplFileInfo

  • « SplFileInfo
  • SplFileInfo::getATime »
  • PHP Manual
  • SplFileInfo
  • Construit un nouvel objet SplFileInfo

SplFileInfo::__construct

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::__construct — Construit un nouvel objet SplFileInfo

Description

public SplFileInfo::__construct ( string $file_name )

Crée un nouvel objet SplFileInfo pour le nom de fichier indiqué. Le fichier n'a pas besoin d'être lisible ou même d'exister.

Liste de paramètres

file_name

Le chemin jusqu'au fichier.

Exemples

Exemple #1 Exemple avec SplFileInfo::__construct()

<?php
$info = new SplFileInfo('example.php');
if ($info->isFile()) {
    echo $info->getRealPath();
}
?>


Lit la date de dernier accès au fichier

  • « SplFileInfo::__construct
  • SplFileInfo::getBasename »
  • PHP Manual
  • SplFileInfo
  • Lit la date de dernier accès au fichier

SplFileInfo::getATime

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getATime — Lit la date de dernier accès au fichier

Description

public int SplFileInfo::getATime ( void )

Lit la date de dernier accès au fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la date de dernier accès au fichier.

Erreurs / Exceptions

Émet une exception RunTimeException en cas d'erreur.

Voir aussi

  • fileatime() - Renvoie la date à laquelle le fichier a été accédé pour la dernière fois


Lit le nom du fichier

  • « SplFileInfo::getATime
  • SplFileInfo::getCTime »
  • PHP Manual
  • SplFileInfo
  • Lit le nom du fichier

SplFileInfo::getBasename

(PHP 5 >= 5.2.2, PHP 7)

SplFileInfo::getBasename — Lit le nom du fichier

Description

public string SplFileInfo::getBasename ([ string $suffix ] )

Cette méthode retourne le nom du fichier, dossier ou lien sans le chemin.

Liste de paramètres

suffix

Un suffixe optionnel à omettre dans le nom de fichier retourné.

Valeurs de retour

Retourne le nom du fichier, sans les informations de chemin.

Exemples

Exemple #1 Exemple avec SplFileInfo::getBasename()

<?php
$info = new SplFileInfo('file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename('.txt'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(8) "file.txt"
string(8) "file.txt"
string(4) "file"

Voir aussi

  • SplFileInfo::getFilename() - Lit le nom du fichier


Lit la date de modification du fichier

  • « SplFileInfo::getBasename
  • SplFileInfo::getExtension »
  • PHP Manual
  • SplFileInfo
  • Lit la date de modification du fichier

SplFileInfo::getCTime

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getCTime — Lit la date de modification du fichier

Description

public int SplFileInfo::getCTime ( void )

Retourne la date de modification du fichier. La date est au format timestamp Unix.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La date de dernier changement, sous forme de timestamp Unix.

Erreurs / Exceptions

Émet une exception RunTimeException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SplFileInfo::getCTime()

<?php
$info = new SplFileInfo(__FILE__);
echo 'Dernière modification : ' . date('g:i a', $info->getCTime());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Dernière modification : 1:49 pm

Voir aussi

  • filectime() - Renvoie la date de dernière modification de l'inode d'un fichier


Récupère l'extension d'un fichier

  • « SplFileInfo::getCTime
  • SplFileInfo::getFileInfo »
  • PHP Manual
  • SplFileInfo
  • Récupère l'extension d'un fichier

SplFileInfo::getExtension

(PHP 5 >= 5.3.6, PHP 7)

SplFileInfo::getExtension — Récupère l'extension d'un fichier

Description

public string SplFileInfo::getExtension ( void )

Récupère l'extension d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant l'extension du fichier, ou une chaîne vide si le fichier n'a pas d'extension.

Exemples

Exemple #1 Exemple avec SplFileInfo::getExtension()

<?php

$info = new SplFileInfo('foo.txt');
var_dump($info->getExtension());

$info = new SplFileInfo('photo.jpg');
var_dump($info->getExtension());

$info = new SplFileInfo('something.tar.gz');
var_dump($info->getExtension());

?>

L'exemple ci-dessus va afficher :

string(3) "txt"
string(3) "jpg"
string(2) "gz"

Notes

Note:

Cette méthode n'est disponible que depuis PHP 5.3.6. Une autre façon de récupérer l'extension est d'utiliser la fonction pathinfo().

<?php
$extension = pathinfo($info->getFilename(), PATHINFO_EXTENSION);
?>

Voir aussi

  • SplFileInfo::getFilename() - Lit le nom du fichier
  • SplFileInfo::getBasename() - Lit le nom du fichier
  • pathinfo() - Retourne des informations sur un chemin système


Obtient un objet SplFileInfo pour un fichier

  • « SplFileInfo::getExtension
  • SplFileInfo::getFilename »
  • PHP Manual
  • SplFileInfo
  • Obtient un objet SplFileInfo pour un fichier

SplFileInfo::getFileInfo

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getFileInfo — Obtient un objet SplFileInfo pour un fichier

Description

public SplFileInfo SplFileInfo::getFileInfo ([ string $class_name ] )

Cette méthode obtient un objet SplFileInfo pour un fichier.

Liste de paramètres

class_name

Le nom de la classe SplFileInfo dérivée à utiliser.

Valeurs de retour

Un objet SplFileInfo créé pour le fichier.

Voir aussi

  • SplFileInfo::setInfoClass() - Configure la classe utilisée par SplFileInfo::getFileInfo et SplFileInfo::getPathInfo


Lit le nom du fichier

  • « SplFileInfo::getFileInfo
  • SplFileInfo::getGroup »
  • PHP Manual
  • SplFileInfo
  • Lit le nom du fichier

SplFileInfo::getFilename

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getFilename — Lit le nom du fichier

Description

public string SplFileInfo::getFilename ( void )

Lit le nom du fichier, sans chemin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du fichier.

Exemples

Exemple #1 Exemple avec SplFileInfo::getFilename()

<?php
$info = new SplFileInfo('foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('/path/to/foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/svn.php');
var_dump($info->getFilename());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(7) "foo.txt"
string(7) "foo.txt"
string(0) ""
string(11) "svn.php"

Voir aussi

  • SplFileInfo::getBasename() - Lit le nom du fichier


Lit le groupe d'appartenance du fichier

  • « SplFileInfo::getFilename
  • SplFileInfo::getInode »
  • PHP Manual
  • SplFileInfo
  • Lit le groupe d'appartenance du fichier

SplFileInfo::getGroup

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getGroup — Lit le groupe d'appartenance du fichier

Description

public int SplFileInfo::getGroup ( void )

Lit le groupe d'appartenance du fichier. L'identifiant du groupe est un entier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'identifiant du groupe est un entier.

Erreurs / Exceptions

Émet une exception RunTimeException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SplFileInfo::getGroup()

<?php
$info = new SplFileInfo(__FILE__);
print_r(posix_getgrgid($info->getGroup()));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  • posix_getgrgid() - Retourne des informations sur un groupe


Lit le inode du fichier

  • « SplFileInfo::getGroup
  • SplFileInfo::getLinkTarget »
  • PHP Manual
  • SplFileInfo
  • Lit le inode du fichier

SplFileInfo::getInode

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getInode — Lit le inode du fichier

Description

public int SplFileInfo::getInode ( void )

Lit le numéro de inode du fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de inode du fichier.

Erreurs / Exceptions

Émet une RuntimeException en cas d'erreur.

Voir aussi

  • fileinode() - Lit le numéro d'inode du fichier


Lit la cible d'un lien symbolique

  • « SplFileInfo::getInode
  • SplFileInfo::getMTime »
  • PHP Manual
  • SplFileInfo
  • Lit la cible d'un lien symbolique

SplFileInfo::getLinkTarget

(PHP 5 >= 5.2.2, PHP 7)

SplFileInfo::getLinkTarget — Lit la cible d'un lien symbolique

Description

public string SplFileInfo::getLinkTarget ( void )

Lit la cible d'un lien symbolique.

Note:

Le chemin indiqué n'est pas toujours le chemin réel sur le système de fichiers. Utilisez SplFileInfo::getRealPath() pour déterminer le véritable chemin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la cible du lien symbolique.

Erreurs / Exceptions

Émet une exception RuntimeException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SplFileInfo::getLinkTarget()

<?php
$info = new SplFileInfo('/Users/bbieber/workspace');
if ($info->isLink()) {
    var_dump($info->getLinkTarget());
    var_dump($info->getRealPath());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(19) "Documents/workspace"
string(34) "/Users/bbieber/Documents/workspace"

Voir aussi

  • SplFileInfo::isLink() - Indique si un fichier est un lien
  • SplFileInfo::getRealPath() - Lit le chemin absolu d'un fichier


Lit la date de dernière modification

  • « SplFileInfo::getLinkTarget
  • SplFileInfo::getOwner »
  • PHP Manual
  • SplFileInfo
  • Lit la date de dernière modification

SplFileInfo::getMTime

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getMTime — Lit la date de dernière modification

Description

public int SplFileInfo::getMTime ( void )

Lit la date de dernière modification du contenu du fichier. La date retournée est au format timestamp Unix.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne au format timestamp Unix.

Voir aussi

  • filemtime() - Lit la date de dernière modification du fichier


Lit le propriétaire du fichier

  • « SplFileInfo::getMTime
  • SplFileInfo::getPath »
  • PHP Manual
  • SplFileInfo
  • Lit le propriétaire du fichier

SplFileInfo::getOwner

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getOwner — Lit le propriétaire du fichier

Description

public int SplFileInfo::getOwner ( void )

Lit le propriétaire du fichier. Le propriétaire est un entier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le propriétaire du fichier, au format entier.

Erreurs / Exceptions

Émet une exception RunTimeException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SplFileInfo::getOwner()

<?php
$info = new SplFileInfo('file.txt');
print_r(posix_getpwuid($info->getOwner()));
?>

Voir aussi

  • posix_getpwuid() - Retourne des informations sur un utilisateur
  • SplFileInfo::getGroup() - Lit le groupe d'appartenance du fichier


Le le chemin sans le nom de fichier

  • « SplFileInfo::getOwner
  • SplFileInfo::getPathInfo »
  • PHP Manual
  • SplFileInfo
  • Le le chemin sans le nom de fichier

SplFileInfo::getPath

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPath — Le le chemin sans le nom de fichier

Description

public string SplFileInfo::getPath ( void )

Retourne le nom du chemin sans le nom de fichier, ou un slash final.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin du fichier.

Exemples

Exemple #1 Exemple avec SplFileInfo::getPath()

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->getPath());

$info = new SplFileInfo('/usr/');
var_dump($info->getPath());?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(8) "/usr/bin"
string(4) "/usr"

Voir aussi

  • SplFileInfo::getRealPath() - Lit le chemin absolu d'un fichier
  • SplFileInfo::getFilename() - Lit le nom du fichier
  • SplFileInfo::getPathInfo() - Crée un objet SplFileInfo pour un chemin


Crée un objet SplFileInfo pour un chemin

  • « SplFileInfo::getPath
  • SplFileInfo::getPathname »
  • PHP Manual
  • SplFileInfo
  • Crée un objet SplFileInfo pour un chemin

SplFileInfo::getPathInfo

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPathInfo — Crée un objet SplFileInfo pour un chemin

Description

public SplFileInfo SplFileInfo::getPathInfo ([ string $class_name ] )

Crée un objet SplFileInfo pour le dossier qui contient le fichier courant.

Liste de paramètres

class_name

Le nom d'une classe qui dérive de SplFileInfo.

Valeurs de retour

Retourne un objet SplFileInfo pour le dossier qui contient le fichier courant.

Exemples

Exemple #1 Exemple avec SplFileInfo::getPathInfo()

<?php
$info = new SplFileInfo('/usr/bin/php');
$parent_info = $info->getPathInfo();
var_dump($parent_info->getRealPath());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(8) "/usr/bin"

Voir aussi

  • SplFileInfo::setInfoClass() - Configure la classe utilisée par SplFileInfo::getFileInfo et SplFileInfo::getPathInfo


Lit le chemin d'un fichier

  • « SplFileInfo::getPathInfo
  • SplFileInfo::getPerms »
  • PHP Manual
  • SplFileInfo
  • Lit le chemin d'un fichier

SplFileInfo::getPathname

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPathname — Lit le chemin d'un fichier

Description

public string SplFileInfo::getPathname ( void )

Retourne le chemin d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le chemin d'un fichier.

Exemples

Exemple #1 Exemple avec SplFileInfo::getPathname()

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->getPathname());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(12) "/usr/bin/php"

Voir aussi

  • SplFileInfo::getRealPath() - Lit le chemin absolu d'un fichier


Lit les droits d'un fichier

  • « SplFileInfo::getPathname
  • SplFileInfo::getRealPath »
  • PHP Manual
  • SplFileInfo
  • Lit les droits d'un fichier

SplFileInfo::getPerms

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPerms — Lit les droits d'un fichier

Description

public int SplFileInfo::getPerms ( void )

Lit les droits d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les droits d'un fichier, sous forme d'entier.

Exemples

Exemple #1 Exemple avec SplFileInfo::getPerms()

<?php
$info = new SplFileInfo('/tmp');
echo substr(sprintf('%o', $info->getPerms()), -4);

$info = new SplFileInfo(__FILE__);
echo substr(sprintf('%o', $info->getPerms()), -4);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1777
0644


Lit le chemin absolu d'un fichier

  • « SplFileInfo::getPerms
  • SplFileInfo::getSize »
  • PHP Manual
  • SplFileInfo
  • Lit le chemin absolu d'un fichier

SplFileInfo::getRealPath

(PHP 5 >= 5.2.2, PHP 7)

SplFileInfo::getRealPath — Lit le chemin absolu d'un fichier

Description

public string SplFileInfo::getRealPath ( void )

Cette méthode résout tous les liens symboliques, les chemins relatifs et retourne le véritable chemin qui mène à un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin du fichier ou FALSE si le fichier n'existe pas.

Exemples

Exemple #1 Exemple avec SplFileInfo::getRealPath()

<?php
$info = new SplFileInfo('/..//./../../'.__FILE__);
var_dump($info->getRealPath());

$info = new SplFileInfo('/tmp');
var_dump($info->getRealPath());

$info = new SplFileInfo('/I/Do/Not/Exist');
var_dump($info->getRealPath());

$info = new SplFileInfo("");
var_dump($info->getRealPath());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(28) "/private/tmp/phptempfile.php"
string(12) "/private/tmp"
bool(false)
string(12) "/private/tmp"

Voir aussi

  • SplFileInfo::isLink() - Indique si un fichier est un lien
  • realpath() - Retourne le chemin canonique absolu


Lit la taille d'un fichier

  • « SplFileInfo::getRealPath
  • SplFileInfo::getType »
  • PHP Manual
  • SplFileInfo
  • Lit la taille d'un fichier

SplFileInfo::getSize

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getSize — Lit la taille d'un fichier

Description

public int SplFileInfo::getSize ( void )

Retourne la taille d'un fichier, en octets.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La taille du fichier, en octets.

Erreurs / Exceptions

Une exception RuntimeException sera émise si le fichier n'existe pas, ou si une erreur survient.

Voir aussi

  • filesize() - Lit la taille d'un fichier


Lit le type de fichier

  • « SplFileInfo::getSize
  • SplFileInfo::isDir »
  • PHP Manual
  • SplFileInfo
  • Lit le type de fichier

SplFileInfo::getType

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getType — Lit le type de fichier

Description

public string SplFileInfo::getType ( void )

Retourne le type de fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une string représentant le type de fichier. Cela peut être file, link, ou dir

Erreurs / Exceptions

Émet une exception RuntimeException.

Exemples

Exemple #1 Exemple avec SplFileInfo::getType()

<?php

$info = new SplFileInfo(__FILE__);
echo $info->getType().PHP_EOL;

$info = new SplFileInfo(dirname(__FILE__));
echo $info->getType();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

file
dir


Indique si le fichier est un dossier

  • « SplFileInfo::getType
  • SplFileInfo::isExecutable »
  • PHP Manual
  • SplFileInfo
  • Indique si le fichier est un dossier

SplFileInfo::isDir

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isDir — Indique si le fichier est un dossier

Description

public bool SplFileInfo::isDir ( void )

Indique si le fichier est un dossier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le fichier est un dossier, et FALSE sinon.

Exemples

Exemple #1 Exemple avec SplFileInfo::isDir()

<?php
$d = new SplFileInfo(dirname(__FILE__));
var_dump($d->isDir());

$d = new SplFileInfo(__FILE__);
var_dump($d->isDir());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)


Indique si un fichier est exécutable

  • « SplFileInfo::isDir
  • SplFileInfo::isFile »
  • PHP Manual
  • SplFileInfo
  • Indique si un fichier est exécutable

SplFileInfo::isExecutable

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isExecutable — Indique si un fichier est exécutable

Description

public bool SplFileInfo::isExecutable ( void )

SplFileInfo::isExecutable() indique si un fichier est exécutable.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le fichier est exécutable, FALSE sinon.

Exemples

Exemple #1 Exemple avec SplFileInfo::isExecutable()

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->isExecutable());

$info = new SplFileInfo('/usr/bin');
var_dump($info->isExecutable());

$info = new SplFileInfo('foo');
var_dump($info->isExecutable());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
bool(false)


Indique si un fichier est un véritable fichier

  • « SplFileInfo::isExecutable
  • SplFileInfo::isLink »
  • PHP Manual
  • SplFileInfo
  • Indique si un fichier est un véritable fichier

SplFileInfo::isFile

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isFile — Indique si un fichier est un véritable fichier

Description

public bool SplFileInfo::isFile ( void )

Indique si un fichier existe et est un véritable fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le fichier existe et qu'il est un véritable fichier (et non pas un lien) et FALSE sinon.

Exemples

Exemple #1 Exemple avec SplFileInfo::isFile()

<?php
$info = new SplFileInfo(__FILE__);
var_dump($info->isFile());

$info = new SplFileInfo(dirname(__FILE__));
var_dump($info->isFile());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)


Indique si un fichier est un lien

  • « SplFileInfo::isFile
  • SplFileInfo::isReadable »
  • PHP Manual
  • SplFileInfo
  • Indique si un fichier est un lien

SplFileInfo::isLink

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isLink — Indique si un fichier est un lien

Description

public bool SplFileInfo::isLink ( void )

Cette méthode indique si un fichier référencé par SplFileInfo est un lien.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le fichier est un lien, et FALSE sinon.

Exemples

Exemple #1 Exemple avec SplFileInfo::isLink()

<?php
$info = new SplFileInfo('/chemin/vers/un/lien');
if ($info->isLink()) {
    echo 'Le véritable chemin est '.$info->getRealPath();
}
?>

Voir aussi

  • SplFileInfo::getRealPath() - Lit le chemin absolu d'un fichier


Indique si le fichier est lisible

  • « SplFileInfo::isLink
  • SplFileInfo::isWritable »
  • PHP Manual
  • SplFileInfo
  • Indique si le fichier est lisible

SplFileInfo::isReadable

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isReadable — Indique si le fichier est lisible

Description

public bool SplFileInfo::isReadable ( void )

Indique si le fichier est lisible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le fichier est lisible, et FALSE sinon.

Exemples

Exemple #1 Exemple avec SplFileInfo::isReadable()

<?php
$info = new SplFileInfo(__FILE__);
var_dump($info->isReadable());

$info = new SplFileInfo('foo');
var_dump($info->isReadable());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)


Indique si on peut écrire dans un fichier

  • « SplFileInfo::isReadable
  • SplFileInfo::openFile »
  • PHP Manual
  • SplFileInfo
  • Indique si on peut écrire dans un fichier

SplFileInfo::isWritable

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isWritable — Indique si on peut écrire dans un fichier

Description

public bool SplFileInfo::isWritable ( void )

Vérifie si le fichier a les autorisations en écriture.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le fichier peut être écrit, et FALSE sinon;


Crée un objet SplFileObject pour le fichier

  • « SplFileInfo::isWritable
  • SplFileInfo::setFileClass »
  • PHP Manual
  • SplFileInfo
  • Crée un objet SplFileObject pour le fichier

SplFileInfo::openFile

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::openFile — Crée un objet SplFileObject pour le fichier

Description

public SplFileObject SplFileInfo::openFile ([ string $open_mode = "r" [, bool $use_include_path = false [, resource $context = NULL ]]] )

Crée un objet SplFileObject pour le fichier. Cette fonction est utile car SplFileObject contient des méthodes supplémentaires pour manipuler des fichiers alors que SplFileInfo n'est utile que pour lire des informations, comme les attributs d'un fichier.

Liste de paramètres

open_mode

Le mode d'ouverture du fichier. Voyez la fonction fopen() pour connaître les différents modes. La valeur par défaut est lecture seule.

use_include_path

Lorsque définit à TRUE, le nom du fichier est également recherché dans include_path

context

Reportez-vous à la section contexte de ce manuel pour une description des contextes.

Valeurs de retour

Le fichier ouvert, sous forme d'objet SplFileObject.

Erreurs / Exceptions

Une exception RuntimeException si le fichier ne peut être ouvert (par exemple, droits d'accès insuffisants).

Exemples

Exemple #1 Exemple avec SplFileInfo::openFile()

<?php
$fileinfo = new SplFileInfo('/tmp/foo.txt');

if ($fileinfo->isWritable()) {

    $fileobj = $fileinfo->openFile('a');

    $fileobj->fwrite("appended this sample text");
}
?>

Voir aussi

  • SplFileObject
  • stream_context_create() - Crée un contexte de flux
  • fopen() - Ouvre un fichier ou une URL


Configure la classe utilisée avec SplFileInfo::openFile

  • « SplFileInfo::openFile
  • SplFileInfo::setInfoClass »
  • PHP Manual
  • SplFileInfo
  • Configure la classe utilisée avec SplFileInfo::openFile

SplFileInfo::setFileClass

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::setFileClass — Configure la classe utilisée avec SplFileInfo::openFile()

Description

public void SplFileInfo::setFileClass ([ string $class_name = "SplFileObject" ] )

Utilisez cette méthode pour définir une classe personnalisée qui sera utilisée lorsque SplFileInfo::openFile() est appelé. Le nom de la classe passé à cette méthode doit être SplFileObject ou une classe dérivé de SplFileObject.

Liste de paramètres

class_name

Le nom de la classe utilisée par SplFileInfo::openFile().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFileInfo::setFileClass()

<?php
// Créée une classe qui étend SplFileObject
class MyFoo extends SplFileObject {}

$info = new SplFileInfo(__FILE__);
// Configure la classe à utiliser
$info->setFileClass('MyFoo');
var_dump($info->openFile());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(MyFoo)#2 (0) { }

Voir aussi

  • SplFileInfo::openFile() - Crée un objet SplFileObject pour le fichier


Configure la classe utilisée par SplFileInfo::getFileInfo et SplFileInfo::getPathInfo

  • « SplFileInfo::setFileClass
  • SplFileInfo::__toString »
  • PHP Manual
  • SplFileInfo
  • Configure la classe utilisée par SplFileInfo::getFileInfo et SplFileInfo::getPathInfo

SplFileInfo::setInfoClass

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::setInfoClass — Configure la classe utilisée par SplFileInfo::getFileInfo() et SplFileInfo::getPathInfo()

Description

public void SplFileInfo::setInfoClass ([ string $class_name = "SplFileInfo" ] )

Utilisez cette méthode pour configurer une classe personnalisée à utiliser avec les méthodes getFileInfo() et getPathInfo(). La classe utilisée doit hériter de SplFileInfo.

Liste de paramètres

class_name

Le nom de la classe à utiliser.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFileInfo::setFileClass()

<?php
// Define a class which extends SplFileInfo
class MyFoo extends SplFileInfo {}

$info = new SplFileInfo('foo');
// Configure la classe à utiliser
$info->setInfoClass('MyFoo');
var_dump($info->getFileInfo());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(MyFoo)#2 (0) { }

Voir aussi

  • SplFileInfo::getFileInfo() - Obtient un objet SplFileInfo pour un fichier


Retourne le chemin d'un fichier sous forme de chaîne

  • « SplFileInfo::setInfoClass
  • SplFileObject »
  • PHP Manual
  • SplFileInfo
  • Retourne le chemin d'un fichier sous forme de chaîne

SplFileInfo::__toString

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::__toString — Retourne le chemin d'un fichier sous forme de chaîne

Description

public void SplFileInfo::__toString ( void )

Retourne le chemin d'un fichier sous forme de chaîne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le chemin, sous forme de chaîne.

Exemples

Exemple #1 Exemple avec SplFileInfo::__toString()

<?php
$info = new SplFileInfo('foo');
var_dump($info->__toString());
echo $info.PHP_EOL;

$info = new SplFileInfo('/usr/bin/php');
var_dump($info->__toString());
echo $info.PHP_EOL;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(3) "foo"
foo
string(12) "/usr/bin/php"
/usr/bin/php


La classe SplFileObject

(PHP 5 >= 5.1.0, PHP 7)

Introduction

La classe SplFileObject offre une interface orientée objet pour un fichier.

Synopsis de la classe

SplFileObject extends SplFileInfo implements RecursiveIterator , SeekableIterator {
/* Constantes */
const integer DROP_NEW_LINE = 1 ;
const integer READ_AHEAD = 2 ;
const integer SKIP_EMPTY = 4 ;
const integer READ_CSV = 8 ;
/* Méthodes */
public string|array current ( void )
public bool eof ( void )
public bool fflush ( void )
public string fgetc ( void )
 public array fgetcsv
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] )
public string fgets ( void )
public string fgetss ([ string $allowable_tags ] )
public bool flock ( int $operation [, int &$wouldblock ] )
public int fpassthru ( void )
public int fputcsv ( array $fields [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\" ]]] )
public string fread ( int $length )
public mixed fscanf ( string $format [, mixed &$... ] )
public int fseek ( int $offset [, int $whence = SEEK_SET ] )
public array fstat ( void )
public int ftell ( void )
public bool ftruncate ( int $size )
public int fwrite ( string $str [, int $length ] )
public void getChildren ( void )
public array getCsvControl ( void )
public int getFlags ( void )
public int getMaxLineLen ( void )
public bool hasChildren ( void )
public int key ( void )
public void next ( void )
public void rewind ( void )
public void seek ( int $line_pos )
 public void setCsvControl
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] )
public void setFlags ( int $flags )
public void setMaxLineLen ( int $max_len )
public void __toString ( void )
public bool valid ( void )
/* Méthodes héritées */
public SplFileInfo::__construct ( string $file_name )
public int SplFileInfo::getATime ( void )
public string SplFileInfo::getBasename ([ string $suffix ] )
public int SplFileInfo::getCTime ( void )
public string SplFileInfo::getExtension ( void )
public SplFileInfo SplFileInfo::getFileInfo ([ string $class_name ] )
public string SplFileInfo::getFilename ( void )
public int SplFileInfo::getGroup ( void )
public int SplFileInfo::getInode ( void )
public string SplFileInfo::getLinkTarget ( void )
public int SplFileInfo::getMTime ( void )
public int SplFileInfo::getOwner ( void )
public string SplFileInfo::getPath ( void )
public SplFileInfo SplFileInfo::getPathInfo ([ string $class_name ] )
public string SplFileInfo::getPathname ( void )
public int SplFileInfo::getPerms ( void )
public string SplFileInfo::getRealPath ( void )
public int SplFileInfo::getSize ( void )
public string SplFileInfo::getType ( void )
public bool SplFileInfo::isDir ( void )
public bool SplFileInfo::isExecutable ( void )
public bool SplFileInfo::isFile ( void )
public bool SplFileInfo::isLink ( void )
public bool SplFileInfo::isReadable ( void )
public bool SplFileInfo::isWritable ( void )
public SplFileObject SplFileInfo::openFile ([ string $open_mode = "r" [, bool $use_include_path = false [, resource $context = NULL ]]] )
public void SplFileInfo::setFileClass ([ string $class_name = "SplFileObject" ] )
public void SplFileInfo::setInfoClass ([ string $class_name = "SplFileInfo" ] )
public void SplFileInfo::__toString ( void )
}

Constantes pré-définies

SplFileObject::DROP_NEW_LINE

Supprime les nouvelles lignes à la fin d'une ligne.

SplFileObject::READ_AHEAD

Lecture sur rewind/next.

SplFileObject::SKIP_EMPTY

Ignore les lignes vierges du fichier. Ceci nécessite l'activation du drapeau READ_AHEAD afin de fonctionner comme attendu.

SplFileObject::READ_CSV

Lit les lignes en tant que lignes CSV.

Historique

Version | Description
5.3.9 | La valeur de SplFileObject::SKIP_EMPTY est maintenant de 4. Précédemment, la valeur était de 6.

Sommaire

  • SplFileObject::__construct — Construit un nouvel objet fichier
  • SplFileObject::current — Récupère la ligne courante d'un fichier
  • SplFileObject::eof — Vérifie si la fin du fichier est atteinte
  • SplFileObject::fflush — Écrit l'affichage dans le fichier
  • SplFileObject::fgetc — Récupère un caractère depuis le fichier
  • SplFileObject::fgetcsv — Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV
  • SplFileObject::fgets — Récupère une ligne d'un fichier
  • SplFileObject::fgetss — Récupère une ligne d'un fichier et supprime les balises HTML
  • SplFileObject::flock — Verrouille ou déverrouille un fichier
  • SplFileObject::fpassthru — Affiche toutes les données en attente sur un pointeur de fichier
  • SplFileObject::fputcsv — Écrit un tableau sous la forme d'une ligne CSV
  • SplFileObject::fread — Lit depuis un fichier
  • SplFileObject::fscanf — Analyse une entrée d'un fichier suivant un format donné
  • SplFileObject::fseek — Se déplace à une position donnée
  • SplFileObject::fstat — Récupère les informations d'un fichier
  • SplFileObject::ftell — Retourne la position courant dans le fichier
  • SplFileObject::ftruncate — Coupe le fichier à une longueur donnée
  • SplFileObject::fwrite — Écrit dans le fichier
  • SplFileObject::getChildren — Récupère le fils
  • SplFileObject::getCsvControl — Récupère les options pour CSV
  • SplFileObject::getCurrentLine — Alias de SplFileObject::fgets
  • SplFileObject::getFlags — Récupère les drapeaux pour l'objet SplFileObject
  • SplFileObject::getMaxLineLen — Récupère la longueur maximale d'une ligne
  • SplFileObject::hasChildren — Vérifie si SplFileObject a un fils
  • SplFileObject::key — Récupère le numéro de la ligne courant
  • SplFileObject::next — Se déplace sur la prochaine ligne
  • SplFileObject::rewind — Réinitialise le fichier à la première ligne
  • SplFileObject::seek — Se déplace sur une ligne spécifique
  • SplFileObject::setCsvControl — Définit les options CSV
  • SplFileObject::setFlags — Définit les drapeaux pour l'objet SplFileObject
  • SplFileObject::setMaxLineLen — Définit la longueur maximale d'une ligne
  • SplFileObject::__toString — Alias de SplFileObject::current
  • SplFileObject::valid — Vérifie si la fin du fichier a été atteinte


Construit un nouvel objet fichier

  • « SplFileObject
  • SplFileObject::current »
  • PHP Manual
  • SplFileObject
  • Construit un nouvel objet fichier

SplFileObject::__construct

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::__construct — Construit un nouvel objet fichier

Description

public SplFileObject::__construct ( string $filename [, string $open_mode = "r" [, bool $use_include_path = false [, resource $context ]]] )

Construit un nouvel objet fichier.

Liste de paramètres

filename

Le fichier à lire.

Astuce

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activé. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.

open_mode

Le mode utilisé pour ouvrir le fichier. Voir la fonction fopen() pour une liste de tous les modes disponibles.

use_include_path

Si l'on doit chercher dans l'include_path le fichier filename.

context

Une ressource de contexte valide créée avec la fonction stream_context_create().

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception RuntimeException si le fichier filename n'a pu être ouvert.

Exemples

Exemple #1 Exemple avec SplFileObject::__construct()

Cet exemple ouvre le fichier courant et parcourt son contenu ligne par ligne.

<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $line_num => $line) {
    echo "La ligne n°$line_num est : $line";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

La ligne n°0 est : <?php
La ligne n°1 est : $file = new SplFileObject(__FILE__);
La ligne n°2 est : foreach ($file as $line_num => $line) {
La ligne n°3 est :     echo "Line $line_num is $line";
La ligne n°4 est : }
La ligne n°5 est : ?>

Voir aussi

  • SplFileInfo::openFile() - Crée un objet SplFileObject pour le fichier
  • fopen() - Ouvre un fichier ou une URL


Récupère la ligne courante d'un fichier

  • « SplFileObject::__construct
  • SplFileObject::eof »
  • PHP Manual
  • SplFileObject
  • Récupère la ligne courante d'un fichier

SplFileObject::current

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::current — Récupère la ligne courante d'un fichier

Description

public string|array SplFileObject::current ( void )

Récupère la ligne courante d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Récupère la ligne courante d'un fichier. Si le drapeau SplFileObject::READ_CSV est défini, cette méthode retournera un tableau contenant la ligne courante analysée comme étant une donnée CSV.

Exemples

Exemple #1 Exemple avec SplFileObject::current()

<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $k => $line) {
   echo ($file->key() + 1) . ': ' . $file->current();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1: <?php
2: $file = new SplFileObject(__FILE__);
3: foreach ($file as $line) {
4:     echo ($file->key() + 1) . ': ' . $file->current();
5: }
6: ?>

Voir aussi

  • SplFileObject::key() - Récupère le numéro de la ligne courant
  • SplFileObject::seek() - Se déplace sur une ligne spécifique
  • SplFileObject::next() - Se déplace sur la prochaine ligne
  • SplFileObject::rewind() - Réinitialise le fichier à la première ligne
  • SplFileObject::valid() - Vérifie si la fin du fichier a été atteinte


Vérifie si la fin du fichier est atteinte

  • « SplFileObject::current
  • SplFileObject::fflush »
  • PHP Manual
  • SplFileObject
  • Vérifie si la fin du fichier est atteinte

SplFileObject::eof

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::eof — Vérifie si la fin du fichier est atteinte

Description

public bool SplFileObject::eof ( void )

Vérifie si la fin du fichier est atteinte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la fin du fichier a été atteinte, FALSE sinon.

Exemples

Exemple #1 Exemple avec SplFileObject::eof()

<?php
$file = new SplFileObject("fruits.txt");
while ( ! $file->eof()) {
    echo $file->fgets();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

apple
banana
cherry
date
elderberry

Voir aussi

  • SplFileObject::valid() - Vérifie si la fin du fichier a été atteinte
  • feof() - Teste la fin du fichier


Écrit l'affichage dans le fichier

  • « SplFileObject::eof
  • SplFileObject::fgetc »
  • PHP Manual
  • SplFileObject
  • Écrit l'affichage dans le fichier

SplFileObject::fflush

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fflush — Écrit l'affichage dans le fichier

Description

public bool SplFileObject::fflush ( void )

Force l'écriture de tous les buffers d'affichage dans le fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::fflush()

<?php
$file = new SplFileObject('misc.txt', 'r+');
$file->rewind();
$file->fwrite("Foo");
$file->fflush();
$file->ftruncate($file->ftell());
?>

Voir aussi

  • SplFileObject::fwrite() - Écrit dans le fichier


Récupère un caractère depuis le fichier

  • « SplFileObject::fflush
  • SplFileObject::fgetcsv »
  • PHP Manual
  • SplFileObject
  • Récupère un caractère depuis le fichier

SplFileObject::fgetc

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetc — Récupère un caractère depuis le fichier

Description

public string SplFileObject::fgetc ( void )

Récupère un caractère depuis le fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant un seul caractère lu depuis le fichier, ou FALSE si la fin du fichier a été atteinte.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple avec SplFileObject::fgetc()

<?php
$file = new SplFileObject('file.txt');
while (false !== ($char = $file->fgetc())) {
    echo "$char\n";
}
?>

Voir aussi

  • SplFileObject::fgets() - Récupère une ligne d'un fichier


Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV

  • « SplFileObject::fgetc
  • SplFileObject::fgets »
  • PHP Manual
  • SplFileObject
  • Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV

SplFileObject::fgetcsv

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetcsv — Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV

Description

 public array SplFileObject::fgetcsv
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] )

Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV et retourne un tableau contenant tous les champs lus.

Liste de paramètres

delimiter

Le délimiteur de champs (un seul caractère). Par défaut, ce sera une virgule ou la valeur définie en utilisant la méthode SplFileObject::setCsvControl().

enclosure

Le caractère utilisé pour entourer la valeur d'un champ (un seul caractère). Par défaut, ce sera un guillemet double ou bien la valeur définie en utilisant la méthode SplFileObject::setCsvControl().

escape

Le caractère d'échappement (un seul caractère). Par défaut, ce sera un anti-slash (\) ou bien la valeur définie en utilisant la méthode SplFileObject::setCsvControl().

Valeurs de retour

Retourne un tableau indexé contenant tous les champs lus, ou FALSE si une erreur survient.

Note:

Une ligne vide d'un fichier CSV sera retourné sous la forme d'un tableau contenu un seul champ NULL sauf si vous utilisez SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE, auquel cas, les lignes vides seront ignorées.

Exemples

Exemple #1 Exemple avec SplFileObject::fgetcsv()

<?php
$file = new SplFileObject("data.csv");
while (!$file->eof()) {
    var_dump($file->fgetcsv());
}
?>

Exemple #2 Exemple avec SplFileObject::READ_CSV

<?php
$file = new SplFileObject("animals.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
    list($animal, $class, $legs) = $row;
    printf("Un %s est un %s avec %d jambes\n", $animal, $class, $legs);
}
?>

Contenu de animals.csv

crocodile,reptile,4
dauphin,mammifère,0
canard,oiseau,2
koala,mammifère,4
saumon,poisson,0

L'exemple ci-dessus va afficher quelque chose de similaire à :

Un crocodile est un reptile avec 4 jambes
Un dauphin est un mammifère avec 0 jambes
Un canard est un oiseau avec 2 jambes
Un koala est un mammifère avec 4 jambes
Un saumon est un poisson avec 0 jambes

Voir aussi

  • SplFileObject::setCsvControl() - Définit les options CSV
  • SplFileObject::setFlags() - Définit les drapeaux pour l'objet SplFileObject
  • SplFileObject::READ_CSV
  • SplFileObject::current() - Récupère la ligne courante d'un fichier


Récupère une ligne d'un fichier

  • « SplFileObject::fgetcsv
  • SplFileObject::fgetss »
  • PHP Manual
  • SplFileObject
  • Récupère une ligne d'un fichier

SplFileObject::fgets

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgets — Récupère une ligne d'un fichier

Description

public string SplFileObject::fgets ( void )

Récupère une ligne d'un fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères contenant la prochaine ligne d'un fichier, ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une exception RuntimeException si le fichier ne peut être lu.

Exemples

Exemple #1 Exemple avec SplFileObject::fgets()

Cet exemple affiche seulement le contenu du fichier file.txt ligne par ligne.

<?php
$file = new SplFileObject("file.txt");
while (!$file->eof()) {
    echo $file->fgets();
}
?>

Voir aussi

  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • SplFileObject::fgetss() - Récupère une ligne d'un fichier et supprime les balises HTML
  • SplFileObject::fgetc() - Récupère un caractère depuis le fichier
  • SplFileObject::current() - Récupère la ligne courante d'un fichier


Récupère une ligne d'un fichier et supprime les balises HTML

  • « SplFileObject::fgets
  • SplFileObject::flock »
  • PHP Manual
  • SplFileObject
  • Récupère une ligne d'un fichier et supprime les balises HTML

SplFileObject::fgetss

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetss — Récupère une ligne d'un fichier et supprime les balises HTML

Description

public string SplFileObject::fgetss ([ string $allowable_tags ] )

Identique à la méthode SplFileObject::fgets(), sauf que la méthode SplFileObject::fgetss() tente de supprimer toutes les balises HTML et PHP du texte lu.

Liste de paramètres

allowable_tags

Paramètre optionnel pour spécifier les balises qui ne doivent pas être supprimées.

Valeurs de retour

Retourne une chaîne de caractères contenant la prochaine ligne du fichier dont les balises HTML et PHP ont été supprimées, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::fgetss()

<?php
$str = <<<EOD
<html><body>
 <p>Bienvenue ! Aujourdh'ui, nous sommes le <?php echo(date('jS')); ?> de <?= date('F'); ?>.</p>
</body></html>
Texte en dehors d'un bloc HTML.
EOD;
file_put_contents("sample.php", $str);

$file = new SplFileObject("sample.php");
while (!$file->eof()) {
    echo $file->fgetss();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

 Bienvenue ! Aujourdh'ui, nous sommes le  de .

Texte en dehors d'un bloc HTML.

Voir aussi

  • fgetss() - Renvoie la ligne courante du fichier et élimine les balises HTML
  • SplFileObject::fgets() - Récupère une ligne d'un fichier
  • SplFileObject::fgetc() - Récupère un caractère depuis le fichier
  • SplFileObject::current() - Récupère la ligne courante d'un fichier


Verrouille ou déverrouille un fichier

  • « SplFileObject::fgetss
  • SplFileObject::fpassthru »
  • PHP Manual
  • SplFileObject
  • Verrouille ou déverrouille un fichier

SplFileObject::flock

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::flock — Verrouille ou déverrouille un fichier

Description

public bool SplFileObject::flock ( int $operation [, int &$wouldblock ] )

Verrouille ou déverrouille un fichier, de la même façon que la fonction flock().

Liste de paramètres

operation

Le paramètre operation peut prendre une des constantes suivantes :

  • LOCK_SH pour acquérir un verrou partagé (lecture).
  • LOCK_EX pour acquérir un verrou exclusif (écriture).
  • LOCK_UN pour déverrouiller le fichier (partagé ou exclusif).
  • LOCK_NB pour ne pas bloquer durant le verrouillage (non supporté sous Windows).

wouldblock

Définit à TRUE si le verrou doit être bloquant (condition pour l'errno EWOULDBLOCK).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::flock()

<?php
$file = new SplFileObject("/tmp/lock.txt", "w");
if ($file->flock(LOCK_EX)) { // verrou exclusif
    $file->ftruncate(0);     // coupe le fichier
    $file->fwrite("Écrire quelque chose ici\n");
    $file->flock(LOCK_UN);   // libère le verrou
} else {
    echo "Impossible de récupérer le verrou !";
}
?>

Voir aussi

  • flock() - Verrouille le fichier


Affiche toutes les données en attente sur un pointeur de fichier

  • « SplFileObject::flock
  • SplFileObject::fputcsv »
  • PHP Manual
  • SplFileObject
  • Affiche toutes les données en attente sur un pointeur de fichier

SplFileObject::fpassthru

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fpassthru — Affiche toutes les données en attente sur un pointeur de fichier

Description

public int SplFileObject::fpassthru ( void )

Lit la fin d'un pointeur de fichier depuis la position courante et écrit le résultat dans le buffer d'affichage.

Vous devez appeler la méthode SplFileObject::rewind() pour réinitialiser le pointeur de fichier si vous avez déjà écrit des données dans le fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de caractères lus et passés au buffer d'affichage.

Exemples

Exemple #1 Exemple avec SplFileObject::fpassthru()

<?php

// Ouvre le fichier en mode binaire
$file = new SplFileObject("./img/ok.png", "rb");

// Envoi les en-têtes
header("Content-Type: image/png");
header("Content-Length: " . $file->getSize());

// Envoi l'image et met fin au script
$file->fpassthru();
exit;

?>

Voir aussi

  • fpassthru() - Affiche le reste du fichier


Écrit un tableau sous la forme d'une ligne CSV

  • « SplFileObject::fpassthru
  • SplFileObject::fread »
  • PHP Manual
  • SplFileObject
  • Écrit un tableau sous la forme d'une ligne CSV

SplFileObject::fputcsv

(PHP 5 >= 5.4.0, PHP 7)

SplFileObject::fputcsv — Écrit un tableau sous la forme d'une ligne CSV

Description

 public int SplFileObject::fputcsv
  ( array $fields
 [, string $delimiter = ","
 [, string $enclosure = '"'
 [, string $escape = "\"
]]] )

Écrit un tableau fields sous la forme d'une ligne CSV.

Liste de paramètres

fields

Un tableau de valeurs.

delimiter

Le paramètre optionnel delimiter définit le délimiteur de champs (un seul caractère).

enclosure

Le paramètre optionnel enclosure définit le caractère entourant le champ (un seul caractère).

escape

Le paramètre optionnel escape définit le caractère d'échappement (un seul caractère).

Valeurs de retour

Retourne la longueur de la chaîne écrite ou FALSE si une erreur survient.

Retourne FALSE, et n'écrit pas la ligne CSV dans le fichier si le paramètre delimiter ou le paramètre enclosure n'est pas un caractère unique.

Erreurs / Exceptions

An E_WARNING level error is issued if the delimiter or enclosure parameter is not a single character.

Historique

Version | Description
5.5.21, 5.6.5 | Ajout du paramètre escape.

Exemples

Exemple #1 Exemple avec SplFileObject::fputcsv()

<?php

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);

$file = new SplFileObject('file.csv', 'w');

foreach ($list as $fields) {
    $file->fputcsv($fields);
}

?>

L'exemple suivant va écrire la ligne suivante dans le fichier file.csv :

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Voir aussi

  • fputcsv() - Formate une ligne en CSV et l'écrit dans un fichier
  • SplFileObject::fgetcsv() - Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV


Lit depuis un fichier

  • « SplFileObject::fputcsv
  • SplFileObject::fscanf »
  • PHP Manual
  • SplFileObject
  • Lit depuis un fichier

SplFileObject::fread

(PHP 5 >= 5.5.11, PHP 7)

SplFileObject::fread — Lit depuis un fichier

Description

public string SplFileObject::fread ( int $length )

Lit un nombre donnée d'octets depuis le fichier.

Liste de paramètres

length

Le nombre d'octets à lire.

Valeurs de retour

Retourne la chaîne lue depuis le fichier ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::fread()

<?php
// Récupère le contenu d'un fichier dans une chaîne de caractères
$filename = "/usr/local/something.txt";
$file = new SplFileObject($filename, "r");
$contents = $file->fread($file->getSize());
?>

Notes

Note:

Notez que SplFileObject::fread() lit depuis la position courante du pointeur de fichier. Utilisez la méthode SplFileObject::ftell() pour trouver la position courante du pointeur, et la méthode SplFileObject::rewind() (ou SplFileObject::fseek()) pour réinitialiser la position du pointeur.

Voir aussi

  • fread() - Lecture du fichier en mode binaire


Analyse une entrée d'un fichier suivant un format donné

  • « SplFileObject::fread
  • SplFileObject::fseek »
  • PHP Manual
  • SplFileObject
  • Analyse une entrée d'un fichier suivant un format donné

SplFileObject::fscanf

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fscanf — Analyse une entrée d'un fichier suivant un format donné

Description

public mixed SplFileObject::fscanf ( string $format [, mixed &$... ] )

Lit une ligne depuis un fichier et l'analyse suivant le format format spécifié, décrit dans la documentation de la fonction sprintf().

Les espaces blancs dans la chaîne format correspondent aux espaces blancs dans la ligne du fichier. Ceci signifie que une tabulation (\t) dans le format va correspondre à un seul caractère blanc dans le flux d'entrée.

Liste de paramètres

format

Le format, tel que décrit dans la documentation de la fonction sprintf().

...

Les valeurs optionnelles assignées.

Valeurs de retour

Si seul 1 paramètre est passé à cette méthode, la valeur analysée sera retournée sous la forme d'un tableau. Sinon, si les paramètres optionnelles sont passés, la fonction retournera le nombre de valeurs assignées. Les paramètres optionnels doivent être passés par référence.

Exemples

Exemple #1 Exemple avec SplFileObject::fscanf()

<?php
$file = new SplFileObject("misc.txt");
while ($userinfo = $file->fscanf("%s %s %s")) {
    list ($name, $profession, $countrycode) = $userinfo;
    // Faire des opérations sur $name $profession $countrycode
}
?>

Contenu de users.txt

javier   argonaut    pe
hiroshi  sculptor    jp
robert   slacker     us
luigi    florist     it

Voir aussi

  • fscanf() - Analyse un fichier en fonction d'un format


Se déplace à une position donnée

  • « SplFileObject::fscanf
  • SplFileObject::fstat »
  • PHP Manual
  • SplFileObject
  • Se déplace à une position donnée

SplFileObject::fseek

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fseek — Se déplace à une position donnée

Description

public int SplFileObject::fseek ( int $offset [, int $whence = SEEK_SET ] )

Se déplace à une position donnée d'un fichier, mesurée en octets depuis le début du fichier, obtenue en ajoutant offset à la position spécifiée par le paramètre whence.

Liste de paramètres

offset

La position. Une valeur négative peut être utilisée pour se déplacer en arrière dans le fichier, ce qui peut être utile lorsque SEEK_END est utilisé comme valeur du paramètre whence.

whence

Les valeurs pour le paramètre whence sont :

  • SEEK_SET - La position sera égale à offset octets.
  • SEEK_CUR - La position sera égale à la position courante, plus offset.
  • SEEK_END - La position sera égale à la fin du fichier, plus offset.

Si whence n'est pas spécifié, il prendra la valeur SEEK_SET.

Valeurs de retour

Retourne 0 si le déplacement s'est effectué avec succès, -1 sinon. Notez que la tentative de déplacement après la fin du fichier n'est pas considérée comme une erreur.

Exemples

Exemple #1 Exemple avec SplFileObject::fseek()

<?php
$file = new SplFileInfo("somefile.txt");

// Lecture de la première ligne
$data = $file->fgets();

// Se déplace au début du fichier
// Identique à $file->rewind();
$file->fseek(0);
?>

Voir aussi

  • fseek() - Modifie la position du pointeur de fichier


Récupère les informations d'un fichier

  • « SplFileObject::fseek
  • SplFileObject::ftell »
  • PHP Manual
  • SplFileObject
  • Récupère les informations d'un fichier

SplFileObject::fstat

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fstat — Récupère les informations d'un fichier

Description

public array SplFileObject::fstat ( void )

Récupère les informations d'un fichier. Comportement identique à la fonction fstat().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant toutes les statistiques d'un fichier ; le format de ce tableau est décrit en détail dans la page du manuel sur la fonction stat().

Exemples

Exemple #1 Exemple avec SplFileObject::fstat()

<?php
$file = new SplFileObject("/etc/passwd");
$stat = $file->fstat();

// Affiche uniquement la partie associative
print_r(array_slice($stat, 13));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [dev] => 771
    [ino] => 488704
    [mode] => 33188
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 1114
    [atime] => 1061067181
    [mtime] => 1056136526
    [ctime] => 1056136526
    [blksize] => 4096
    [blocks] => 8
)

Voir aussi

  • fstat() - Lit les informations sur un fichier à partir d'un pointeur de fichier
  • stat() - Renvoie les informations à propos d'un fichier


Retourne la position courant dans le fichier

  • « SplFileObject::fstat
  • SplFileObject::ftruncate »
  • PHP Manual
  • SplFileObject
  • Retourne la position courant dans le fichier

SplFileObject::ftell

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::ftell — Retourne la position courant dans le fichier

Description

public int SplFileObject::ftell ( void )

Retourne la position du pointeur de fichier, qui représentant la position courant dans le flux du fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la position du pointeur de fichier, sous la forme d'un entier ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::ftell()

<?php
$file = new SplFileObject("/etc/passwd");

// Lit la première ligne
$data = $file->fgets();

// Où sommes-nous ?
echo $file->ftell();
?>

Voir aussi

  • ftell() - Renvoie la position courante du pointeur de fichier


Coupe le fichier à une longueur donnée

  • « SplFileObject::ftell
  • SplFileObject::fwrite »
  • PHP Manual
  • SplFileObject
  • Coupe le fichier à une longueur donnée

SplFileObject::ftruncate

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::ftruncate — Coupe le fichier à une longueur donnée

Description

public bool SplFileObject::ftruncate ( int $size )

Coupe le fichier à une longueur de size octets.

Liste de paramètres

size

La taille à couper.

Note:

Si size est plus grand que le fichier, la portion récupérée sera complétée par des octets vides.

Si size est plus petit que le fichier, le reste du fichier sera perdu.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::ftruncate()

<?php
// Crée un fichier contenant "Hello World!"
$file = new SplFileObject("/tmp/ftruncate", "w+");
$file->fwrite("Hello World!");

// Coupe 5 octets
$file->ftruncate(5);

// Réinitialise et lit les données
$file->rewind();
echo $file->fgets();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Hello

Voir aussi

  • ftruncate() - Tronque un fichier


Écrit dans le fichier

  • « SplFileObject::ftruncate
  • SplFileObject::getChildren »
  • PHP Manual
  • SplFileObject
  • Écrit dans le fichier

SplFileObject::fwrite

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fwrite — Écrit dans le fichier

Description

public int SplFileObject::fwrite ( string $str [, int $length ] )

Écrit le contenu du paramètre str dans le fichier.

Liste de paramètres

str

La chaîne de caractères à écrire dans le fichier.

length

Si l'argument length est fourni, l'écriture s'arrêtera après l'écriture de length octets ou bien lorsque la fin de la chaîne de caractères sera atteinte ; suivant ce qui survient en premier.

Valeurs de retour

Retourne le nombre d'octets écrits, ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::fwrite()

<?php
$file = new SplFileObject("fwrite.txt", "w");
$written = $file->fwrite("12345");
echo "$written octets ont été écrits dans le fichier";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

5 octets ont été écrits dans le fichier

Voir aussi

  • fwrite() - Écrit un fichier en mode binaire


Récupère le fils

  • « SplFileObject::fwrite
  • SplFileObject::getCsvControl »
  • PHP Manual
  • SplFileObject
  • Récupère le fils

SplFileObject::getChildren

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::getChildren — Récupère le fils

Description

public void SplFileObject::getChildren ( void )

Un objet SplFileObject ne peut pas avoir de fils, aussi, cette méthode retournera toujours NULL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • RecursiveIterator::getChildren() - Récupère l'itérateur de l'entrée courante


Récupère les options pour CSV

  • « SplFileObject::getChildren
  • SplFileObject::getCurrentLine »
  • PHP Manual
  • SplFileObject
  • Récupère les options pour CSV

SplFileObject::getCsvControl

(PHP 5 >= 5.2.0, PHP 7)

SplFileObject::getCsvControl — Récupère les options pour CSV

Description

public array SplFileObject::getCsvControl ( void )

Récupère le délimiteur ainsi que le caractère utilisé pour entourer les champs lors d'une analyse CSV des données.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau indexé contenant le caractère utilisé pour délimiter les champs ainsi que celui utilisé pour les entourer.

Exemples

Exemple #1 Exemple avec SplFileObject::getCsvControl()

<?php
$file = new SplFileObject("data.txt");
print_r($file->getCsvControl());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => ,
    [1] => "
)

Voir aussi

  • SplFileObject::setCsvControl() - Définit les options CSV
  • SplFileObject::fgetcsv() - Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV


Alias de SplFileObject::fgets

  • « SplFileObject::getCsvControl
  • SplFileObject::getFlags »
  • PHP Manual
  • SplFileObject
  • Alias de SplFileObject::fgets

SplFileObject::getCurrentLine

(PHP 5 >= 5.1.2, PHP 7)

SplFileObject::getCurrentLine — Alias de SplFileObject::fgets()

Description

Cette méthode est un alias de la méthode SplFileObject::fgets().


Récupère les drapeaux pour l'objet SplFileObject

  • « SplFileObject::getCurrentLine
  • SplFileObject::getMaxLineLen »
  • PHP Manual
  • SplFileObject
  • Récupère les drapeaux pour l'objet SplFileObject

SplFileObject::getFlags

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::getFlags — Récupère les drapeaux pour l'objet SplFileObject

Description

public int SplFileObject::getFlags ( void )

Récupère les drapeaux définis pour l'instance de l'objet SplFileObject, sous la forme d'un entier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier représentant les drapeaux.

Exemples

Exemple #1 Exemple avec SplFileObject::getFlags()

<?php
$file = new SplFileObject(__FILE__, "r");

if ($file->getFlags() & SplFileObject::SKIP_EMPTY) {
    echo "Lignes vides ignorées\n";
} else {
    echo "Lignes vides prises en compte\n";
}

$file->setFlags(SplFileObject::SKIP_EMPTY);

if ($file->getFlags() & SplFileObject::SKIP_EMPTY) {
    echo "Lignes vides ignorées\n";
} else {
    echo "Lignes vides prises en compte\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Lignes vides prises en compte
Lignes vides ignorées

Voir aussi

  • SplFileObject::setFlags() - Définit les drapeaux pour l'objet SplFileObject


Récupère la longueur maximale d'une ligne

  • « SplFileObject::getFlags
  • SplFileObject::hasChildren »
  • PHP Manual
  • SplFileObject
  • Récupère la longueur maximale d'une ligne

SplFileObject::getMaxLineLen

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::getMaxLineLen — Récupère la longueur maximale d'une ligne

Description

public int SplFileObject::getMaxLineLen ( void )

Récupère la longueur maximale d'une ligne, telle que définie par la méthode SplFileObject::setMaxLineLen().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la longueur maximale d'une ligne si elle a été définie avec la méthode SplFileObject::setMaxLineLen() ; par défaut, 0.

Exemples

Exemple #1 Exemple avec SplFileObject::getMaxLineLen()

<?php
$file = new SplFileObject("file.txt");
var_dump($file->getMaxLineLen());

$file->setMaxLineLen(20);
var_dump($file->getMaxLineLen());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
int(20)

Voir aussi

  • Classname::Method()


Vérifie si SplFileObject a un fils

  • « SplFileObject::getMaxLineLen
  • SplFileObject::key »
  • PHP Manual
  • SplFileObject
  • Vérifie si SplFileObject a un fils

SplFileObject::hasChildren

(PHP 5 >= 5.1.2, PHP 7)

SplFileObject::hasChildren — Vérifie si SplFileObject a un fils

Description

public bool SplFileObject::hasChildren ( void )

Un objet SplFileObject ne peut pas avoir de fils, aussi, cette méthode retournera toujours FALSE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours FALSE

Voir aussi

  • RecursiveIterator::hasChildren() - Vérifie si un itérateur peut être créé depuis l'entrée courante


Récupère le numéro de la ligne courant

  • « SplFileObject::hasChildren
  • SplFileObject::next »
  • PHP Manual
  • SplFileObject
  • Récupère le numéro de la ligne courant

SplFileObject::key

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::key — Récupère le numéro de la ligne courant

Description

public int SplFileObject::key ( void )

Récupère le numéro de la ligne courant.

Note:

Ce nombre peut ne pas être exact si la méthode SplFileObject::setMaxLineLen() est utilisée pour lire une longueur fixe du fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de la ligne courante.

Exemples

Exemple #1 Exemple avec SplFileObject::key()

<?php
$file = new SplFileObject("lipsum.txt");
foreach ($file as $line) {
    echo $file->key() . ". " . $line;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
1. Duis nec sapien felis, ac sodales nisl.
2. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Exemple #2 Exemple avec SplFileObject::key() et SplFileObject::setMaxLineLen()

<?php
$file = new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach ($file as $line) {
    echo $file->key() . ". " . $line . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0. Lorem ipsum dolor s
1. it amet, consectetu
2. r adipiscing elit.
3.

4. Duis nec sapien fel
5. is, ac sodales nisl
6. .

7. Lorem ipsum dolor s
8. it amet, consectetu
9. r adipiscing elit.

Voir aussi

  • SplFileObject::current() - Récupère la ligne courante d'un fichier
  • SplFileObject::seek() - Se déplace sur une ligne spécifique
  • SplFileObject::next() - Se déplace sur la prochaine ligne
  • SplFileObject::rewind() - Réinitialise le fichier à la première ligne
  • SplFileObject::valid() - Vérifie si la fin du fichier a été atteinte


Se déplace sur la prochaine ligne

  • « SplFileObject::key
  • SplFileObject::rewind »
  • PHP Manual
  • SplFileObject
  • Se déplace sur la prochaine ligne

SplFileObject::next

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::next — Se déplace sur la prochaine ligne

Description

public void SplFileObject::next ( void )

Se déplace sur la prochaine ligne du fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFileObject::next()

<?php
// Lit le fichier ligne par ligne
$file = new SplFileObject("misc.txt");
while (!$file->eof()) {
    echo $file->current();
    $file->next();
}
?>

Voir aussi

  • SplFileObject::current() - Récupère la ligne courante d'un fichier
  • SplFileObject::key() - Récupère le numéro de la ligne courant
  • SplFileObject::seek() - Se déplace sur une ligne spécifique
  • SplFileObject::rewind() - Réinitialise le fichier à la première ligne
  • SplFileObject::valid() - Vérifie si la fin du fichier a été atteinte


Réinitialise le fichier à la première ligne

  • « SplFileObject::next
  • SplFileObject::seek »
  • PHP Manual
  • SplFileObject
  • Réinitialise le fichier à la première ligne

SplFileObject::rewind

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::rewind — Réinitialise le fichier à la première ligne

Description

public void SplFileObject::rewind ( void )

Réinitialise le fichier à la première ligne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception RuntimeException si la réinitialisation a échouée.

Exemples

Exemple #1 Exemple avec SplFileObject::rewind()

<?php
$file = new SplFileObject("misc.txt");

// Boucle sur le fichier
foreach ($file as $line) { }

// Se réinitialise sur la première ligne
$file->rewind();

// Affiche la première ligne
echo $file->current();
?>

Voir aussi

  • SplFileObject::current() - Récupère la ligne courante d'un fichier
  • SplFileObject::key() - Récupère le numéro de la ligne courant
  • SplFileObject::seek() - Se déplace sur une ligne spécifique
  • SplFileObject::next() - Se déplace sur la prochaine ligne
  • SplFileObject::valid() - Vérifie si la fin du fichier a été atteinte


Se déplace sur une ligne spécifique

  • « SplFileObject::rewind
  • SplFileObject::setCsvControl »
  • PHP Manual
  • SplFileObject
  • Se déplace sur une ligne spécifique

SplFileObject::seek

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::seek — Se déplace sur une ligne spécifique

Description

public void SplFileObject::seek ( int $line_pos )

Se déplace sur une ligne spécifique du fichier.

Liste de paramètres

line_pos

Le numéro de la ligne (en commençant par 0) sur laquelle on se déplace.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception LogicException si line_pos est négatif.

Exemples

Exemple #1 Exemple avec SplFileObject::seek()

Cet exemple affiche la 3ème ligne du script, qui sera trouvée à la position n°2.

<?php
$file = new SplFileObject(__FILE__);
$file->seek(2);
echo $file->current();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

$file->seek(2);

Voir aussi

  • SplFileObject::current() - Récupère la ligne courante d'un fichier
  • SplFileObject::key() - Récupère le numéro de la ligne courant
  • SplFileObject::next() - Se déplace sur la prochaine ligne
  • SplFileObject::rewind() - Réinitialise le fichier à la première ligne
  • SplFileObject::valid() - Vérifie si la fin du fichier a été atteinte


Définit les options CSV

  • « SplFileObject::seek
  • SplFileObject::setFlags »
  • PHP Manual
  • SplFileObject
  • Définit les options CSV

SplFileObject::setCsvControl

(PHP 5 >= 5.2.0, PHP 7)

SplFileObject::setCsvControl — Définit les options CSV

Description

 public void SplFileObject::setCsvControl
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] )

Définit le délimiteur ainsi que le caractère utilisé pour entourer les champs CSV analysés.

Liste de paramètres

delimiter

Le délimiteur de champs (un seul caractère).

enclosure

Le caractère utilisé pour entourer le champ (un seul caractère).

escape

Le caractère utilisé pour échapper les données (un seul caractère).

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFileObject::setCsvControl()

<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl('|');
foreach ($file as $row) {
    list ($fruit, $quantity) = $row;
    // Opération sur les données
}
?>

Contenu de data.csv

<?php
apples|20
bananas|14
cherries|87
?>

Voir aussi

  • SplFileObject::getCsvControl() - Récupère les options pour CSV
  • SplFileObject::fgetcsv() - Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV


Définit les drapeaux pour l'objet SplFileObject

  • « SplFileObject::setCsvControl
  • SplFileObject::setMaxLineLen »
  • PHP Manual
  • SplFileObject
  • Définit les drapeaux pour l'objet SplFileObject

SplFileObject::setFlags

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::setFlags — Définit les drapeaux pour l'objet SplFileObject

Description

public void SplFileObject::setFlags ( int $flags )

Définit les drapeaux à utiliser par l'objet SplFileObject.

Liste de paramètres

flags

Un masque de drapeaux à définir. Voir les constantes SplFileObject pour une liste complète.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SplFileObject::setFlags()

<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $fields) {
    var_dump($fields);
}
?>

Voir aussi

  • SplFileObject::getFlags() - Récupère les drapeaux pour l'objet SplFileObject


Définit la longueur maximale d'une ligne

  • « SplFileObject::setFlags
  • SplFileObject::__toString »
  • PHP Manual
  • SplFileObject
  • Définit la longueur maximale d'une ligne

SplFileObject::setMaxLineLen

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::setMaxLineLen — Définit la longueur maximale d'une ligne

Description

public void SplFileObject::setMaxLineLen ( int $max_len )

Définit la longueur maximale d'une ligne.

Liste de paramètres

max_len

La longueur maximale d'une ligne.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception DomainException lorsque max_len est inférieur à zéro.

Exemples

Exemple #1 Exemple avec SplFileObject::setMaxLineLen()

<?php
$file = new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach ($file as $line) {
    echo $line . "\n";
}
?>

Contents of lipsum.txt

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Duis nec sapien felis, ac sodales nisl.
Nulla vitae magna vitae purus aliquet consequat.

L'exemple ci-dessus va afficher quelque chose de similaire à :

Lorem ipsum dolor s
it amet, consectetu
r adipiscing elit.

Duis nec sapien fel
is, ac sodales nisl
.

Nulla vitae magna v
itae purus aliquet
consequat.

Voir aussi

  • Classname::Method()


Alias de SplFileObject::current

  • « SplFileObject::setMaxLineLen
  • SplFileObject::valid »
  • PHP Manual
  • SplFileObject
  • Alias de SplFileObject::current

SplFileObject::__toString

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::__toString — Alias de SplFileObject::current()

Description

public void SplFileObject::__toString ( void )

Cette méthode est un alias de la méthode SplFileObject::current().


Vérifie si la fin du fichier a été atteinte

  • « SplFileObject::__toString
  • SplTempFileObject »
  • PHP Manual
  • SplFileObject
  • Vérifie si la fin du fichier a été atteinte

SplFileObject::valid

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::valid — Vérifie si la fin du fichier a été atteinte

Description

public bool SplFileObject::valid ( void )

Vérifie si la fin du fichier a été atteinte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la fin n'est pas atteinte, FALSE sinon.

Exemples

Exemple #1 Exemple avec SplFileObject::valid()

<?php
// Boucle sur le fichier, ligne par ligne
$file = new SplFileObject("file.txt");
while ($file->valid()) {
    echo $file->fgets();
}
?>

Voir aussi

  • SplFileObject::current() - Récupère la ligne courante d'un fichier
  • SplFileObject::key() - Récupère le numéro de la ligne courant
  • SplFileObject::seek() - Se déplace sur une ligne spécifique
  • SplFileObject::next() - Se déplace sur la prochaine ligne
  • SplFileObject::rewind() - Réinitialise le fichier à la première ligne


La classe SplTempFileObject

(PHP 5 >= 5.1.2, PHP 7)

Introduction

La classe SplTempFileObject offre une interface orientée objet pour un fichier temporaire.

Synopsis de la classe

SplTempFileObject extends SplFileObject implements SeekableIterator , RecursiveIterator {
/* Méthodes */
public __construct ([ int $max_memory ] )
/* Méthodes héritées */
public string|array SplFileObject::current ( void )
public bool SplFileObject::eof ( void )
public bool SplFileObject::fflush ( void )
public string SplFileObject::fgetc ( void )
 public array SplFileObject::fgetcsv
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] )
public string SplFileObject::fgets ( void )
public string SplFileObject::fgetss ([ string $allowable_tags ] )
public bool SplFileObject::flock ( int $operation [, int &$wouldblock ] )
public int SplFileObject::fpassthru ( void )
 public int SplFileObject::fputcsv
  ( array $fields
 [, string $delimiter = ","
 [, string $enclosure = '"'
 [, string $escape = "\"
]]] )
public string SplFileObject::fread ( int $length )
public mixed SplFileObject::fscanf ( string $format [, mixed &$... ] )
public int SplFileObject::fseek ( int $offset [, int $whence = SEEK_SET ] )
public array SplFileObject::fstat ( void )
public int SplFileObject::ftell ( void )
public bool SplFileObject::ftruncate ( int $size )
public int SplFileObject::fwrite ( string $str [, int $length ] )
public void SplFileObject::getChildren ( void )
public array SplFileObject::getCsvControl ( void )
public int SplFileObject::getFlags ( void )
public int SplFileObject::getMaxLineLen ( void )
public bool SplFileObject::hasChildren ( void )
public int SplFileObject::key ( void )
public void SplFileObject::next ( void )
public void SplFileObject::rewind ( void )
public void SplFileObject::seek ( int $line_pos )
 public void SplFileObject::setCsvControl
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] )
public void SplFileObject::setFlags ( int $flags )
public void SplFileObject::setMaxLineLen ( int $max_len )
public void SplFileObject::__toString ( void )
public bool SplFileObject::valid ( void )
}

Sommaire

  • SplTempFileObject::__construct — Construit un nouvel objet représentant un fichier temporaire


Construit un nouvel objet représentant un fichier temporaire

  • « SplTempFileObject
  • Classes et interfaces diverses »
  • PHP Manual
  • SplTempFileObject
  • Construit un nouvel objet représentant un fichier temporaire

SplTempFileObject::__construct

(PHP 5 >= 5.1.2, PHP 7)

SplTempFileObject::__construct — Construit un nouvel objet représentant un fichier temporaire

Description

public SplTempFileObject::__construct ([ int $max_memory ] )

Construit un nouvel objet représentant un fichier temporaire.

Liste de paramètres

max_memory

La mémoire maximale (en octets, par défaut, 2 Mo) à utiliser pour le fichier temporaire. Si un fichier temporaire dépasse cette taille, il sera déplacé sur le système de fichiers, dans le dossier des fichiers temporaires.

Si max_memory est négatif, seule la mémoire sera utilisée. Si max_memory vaut zéro, la mémoire ne sera pas utilisée.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance un exception RuntimeException si une erreur survient.

Exemples

Exemple #1 Exemple avec SplTempFileObject()

Cet exemple écrit un fichier temporaire en mémoire dans lequel nous allons pouvoir écrire et lire des données.

<?php
$temp = new SplTempFileObject();
$temp->fwrite("This is the first line\n");
$temp->fwrite("And this is the second.\n");
echo $temp->ftell() . " octets écrits dans le fichier temporaire.\n\n";

// Rewind and read what was written
$temp->rewind();
foreach ($temp as $line) {
    echo $line;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

47 octets écrits dans le fichier temporaire.

This is the first line
And this is the second.

Voir aussi

  • SplFileObject
  • Flux PHP input/output (pour php://temp et php://memory)


Classes et interfaces diverses

Sommaire

  • ArrayObject
  • SplObserver
  • SplSubject

Classes et interfaces qui n'appartiennent pas aux autres catégories SPL.


La classe ArrayObject

(PHP 5, PHP 7)

Introduction

Cette classe permet aux objets de fonctionner comme des tableaux.

Synopsis de la classe

ArrayObject implements IteratorAggregate , ArrayAccess , Serializable , Countable {
/* Constantes */
const integer STD_PROP_LIST = 1 ;
const integer ARRAY_AS_PROPS = 2 ;
/* Méthodes */
public __construct ([ mixed $input = [] [, int $flags = 0 [, string $iterator_class = "ArrayIterator" ]]] )
public void append ( mixed $value )
public void asort ( void )
public int count ( void )
public array exchangeArray ( mixed $input )
public array getArrayCopy ( void )
public int getFlags ( void )
public ArrayIterator getIterator ( void )
public string getIteratorClass ( void )
public void ksort ( void )
public void natcasesort ( void )
public void natsort ( void )
public bool offsetExists ( mixed $index )
public mixed offsetGet ( mixed $index )
public void offsetSet ( mixed $index , mixed $newval )
public void offsetUnset ( mixed $index )
public string serialize ( void )
public void setFlags ( int $flags )
public void setIteratorClass ( string $iterator_class )
public void uasort ( callable $cmp_function )
public void uksort ( callable $cmp_function )
public void unserialize ( string $serialized )
}

Constantes pré-définies

Options de ArrayObject

ArrayObject::STD_PROP_LIST

Les propriétés de l'objet ont leur fonctionnement normal lorsqu'on y accède depuis la liste (var_dump(), foreach, etc.).

ArrayObject::ARRAY_AS_PROPS

Il est possible d'accéder aux éléments comme des propriétés (lecture et écritre).

Historique

Version | Description
5.3.0 | Implémente Serializable.

Sommaire

  • ArrayObject::append — Ajoute la valeur à la fin d'un tableau
  • ArrayObject::asort — Trie les éléments par valeur
  • ArrayObject::__construct — Construit un nouvel objet tableau
  • ArrayObject::count — Retourne le nombre de propriétés publiques dans l'objet ArrayObject
  • ArrayObject::exchangeArray — Remplace un tableau par un autre
  • ArrayObject::getArrayCopy — Crée une copie de l'objet ArrayObject
  • ArrayObject::getFlags — Lit les options de comportement
  • ArrayObject::getIterator — Crée un nouvel itérateur à partir d'un objet ArrayObject
  • ArrayObject::getIteratorClass — Lit le nom de la classe de ArrayObject
  • ArrayObject::ksort — Trie un tableau par clé
  • ArrayObject::natcasesort — Trie un tableau en utilisant le tri naturel sans la casse
  • ArrayObject::natsort — Trie les éléments avec un tri naturel
  • ArrayObject::offsetExists — Vérifie si un index existe
  • ArrayObject::offsetGet — Retourne la valeur de l'index spécifié
  • ArrayObject::offsetSet — Définie $newval comme valeur à l'$index spécifié
  • ArrayObject::offsetUnset — Efface la valeur à l'$index spécifié
  • ArrayObject::serialize — Linéarise un ArrayObject
  • ArrayObject::setFlags — Configure les options de comportement
  • ArrayObject::setIteratorClass — Définit le nom de la classe de l'itérateur pour l'objet ArrayObject
  • ArrayObject::uasort — Trie les éléments avec une fonction utilisateur
  • ArrayObject::uksort — Trie les éléments par clé avec une fonction utilisateur
  • ArrayObject::unserialize — Délinéarisation d'un ArrayObject


Ajoute la valeur à la fin d'un tableau

  • « ArrayObject
  • ArrayObject::asort »
  • PHP Manual
  • ArrayObject
  • Ajoute la valeur à la fin d'un tableau

ArrayObject::append

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::append — Ajoute la valeur à la fin d'un tableau

Description

public void ArrayObject::append ( mixed $value )

Ajoute un élément en dernier dans le tableau.

Note:

Cette méthode ne peut pas être appelée lorsque l'objet ArrayObject a été construit à partir d'un autre objet. Utilisez alors la méthode ArrayObject::offsetSet().

Liste de paramètres

value

La valeur ajoutée.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::append()

<?php
$arrayobj = new ArrayObject(array('first','second','third'));
$arrayobj->append('fourth');
$arrayobj->append(array('five', 'six'));
var_dump($arrayobj);
?>

L'exemple ci-dessus va afficher :

object(ArrayObject)#1 (5) {
  [0]=>
  string(5) "first"
  [1]=>
  string(6) "second"
  [2]=>
  string(5) "third"
  [3]=>
  string(6) "fourth"
  [4]=>
  array(2) {
    [0]=>
    string(4) "five"
    [1]=>
    string(3) "six"
  }
}

Voir aussi

  • ArrayObject::offsetSet() - Définie $newval comme valeur à l'$index spécifié


Trie les éléments par valeur

  • « ArrayObject::append
  • ArrayObject::__construct »
  • PHP Manual
  • ArrayObject
  • Trie les éléments par valeur

ArrayObject::asort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::asort — Trie les éléments par valeur

Description

public void ArrayObject::asort ( void )

Trie les éléments par valeur, tout en conservant la corrélation entre les clés et les valeurs. Ce tri sert lorsqu'il faut trier un tableau associatif, et conserver la relation entre les index et leur valeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::asort()

<?php
$fruits = array("d" => "citron", "a" => "orange", "b" => "banane", "c" => "pomme");
$fruitArrayObject = new ArrayObject($fruits);
$fruitArrayObject->asort();

foreach ($fruitArrayObject as $key => $val) {
    echo "$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

b = banane
d = citron
a = orange
c = pomme

Les fruits ont été trié en ordre alphabétique, et leur clé associée a été conservée.

Voir aussi

  • ArrayObject::ksort() - Trie un tableau par clé
  • ArrayObject::natsort() - Trie les éléments avec un tri naturel
  • ArrayObject::natcasesort() - Trie un tableau en utilisant le tri naturel sans la casse
  • ArrayObject::uasort() - Trie les éléments avec une fonction utilisateur
  • ArrayObject::uksort() - Trie les éléments par clé avec une fonction utilisateur


Construit un nouvel objet tableau

  • « ArrayObject::asort
  • ArrayObject::count »
  • PHP Manual
  • ArrayObject
  • Construit un nouvel objet tableau

ArrayObject::__construct

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::__construct — Construit un nouvel objet tableau

Description

public ArrayObject::__construct ([ mixed $input = [] [, int $flags = 0 [, string $iterator_class = "ArrayIterator" ]]] )

Construit un nouvel objet tableau.

Liste de paramètres

input

Le paramètre input accepte un tableau ou un autre objet.

flags

Option de contrôle du comportement de l'objet ArrayObject. Voir la méthode ArrayObject::setFlags().

iterator_class

Spécifie la classe qui sera utilisée pour les itérations de l'objet ArrayObject.

Valeurs de retour

Retourne un objet ArrayObject en cas de succès.

Erreurs / Exceptions

Lance une exception InvalidArgumentException lorsque :

  • Le paramètre input n'est ni un tableau, ni un objet
  • Le paramètre flags n'est pas un entier
  • Le paramètre iterator_class n'est pas un objet implémentant la classe Iterator

Exemples

Exemple #1 Exemple avec ArrayObject::__construct()

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

var_dump($arrayobject);
?>

L'exemple ci-dessus va afficher :

object(ArrayObject)#1 (3) {
  [1]=>
  string(3) "one"
  [2]=>
  string(3) "two"
  [3]=>
  string(5) "three"
}

Voir aussi

  • ArrayObject::setflags() - Configure les options de comportement


Retourne le nombre de propriétés publiques dans l'objet ArrayObject

  • « ArrayObject::__construct
  • ArrayObject::exchangeArray »
  • PHP Manual
  • ArrayObject
  • Retourne le nombre de propriétés publiques dans l'objet ArrayObject

ArrayObject::count

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::count — Retourne le nombre de propriétés publiques dans l'objet ArrayObject

Description

public int ArrayObject::count ( void )

Lit le nombre de propriétés publiques dans l'objet ArrayObject

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de propriétés publiques dans l'objet ArrayObject.

Note:

Lorsque l'objet ArrayObject est construit à partir d'un tableau, toutes les propriétés sont publiques.

Exemples

Exemple #1 Exemple avec ArrayObject::count()

<?php
class Example {
    public $public = 'prop:public';
    private $prv   = 'prop:private';
    protected $prt = 'prop:protected';
}

$arrayobj = new ArrayObject(new Example());
var_dump($arrayobj->count());

$arrayobj = new ArrayObject(array('premier','second','troisième'));
var_dump($arrayobj->count());
?>

L'exemple ci-dessus va afficher :

int(1)
int(3)


Remplace un tableau par un autre

  • « ArrayObject::count
  • ArrayObject::getArrayCopy »
  • PHP Manual
  • ArrayObject
  • Remplace un tableau par un autre

ArrayObject::exchangeArray

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::exchangeArray — Remplace un tableau par un autre

Description

public array ArrayObject::exchangeArray ( mixed $input )

Remplace le tableau courant par un autre tableau ou un objet.

Liste de paramètres

input

Le nouveau tableau ou objet à utiliser.

Valeurs de retour

Retourne l'ancien tableau.

Exemples

Exemple #1 Exemple avec ArrayObject::exchangeArray()

<?php
// Tableaux de fruits
$fruits = array("citrons" => 1, "oranges" => 4, "bananes" => 5, "pommes" => 10);
// Tableau de villes en Europe
$locations = array('Amsterdam', 'Paris', 'Londres');

$fruitsArrayObject = new ArrayObject($fruits);

// Échange des fruits par des villes
$old = $fruitsArrayObject->exchangeArray($locations);
print_r($old);
print_r($fruitsArrayObject);

?>

L'exemple ci-dessus va afficher :

Array
(
    [citrons] => 1
    [oranges] => 4
    [bananes] => 5
    [pommes] => 10
)
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [0] => Amsterdam
            [1] => Paris
            [2] => Londres
        )

)


Crée une copie de l'objet ArrayObject

  • « ArrayObject::exchangeArray
  • ArrayObject::getFlags »
  • PHP Manual
  • ArrayObject
  • Crée une copie de l'objet ArrayObject

ArrayObject::getArrayCopy

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::getArrayCopy — Crée une copie de l'objet ArrayObject

Description

public array ArrayObject::getArrayCopy ( void )

Exporte l'objet ArrayObject vers un tableau.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une copie du tableau. Lorsque l'objet ArrayObject est un objet, le tableau retourné contient les propriétés publiques de cet objet.

Exemples

Exemple #1 Exemple avec ArrayObject::getArrayCopy()

<?php
// Liste de fruits
$fruits = array("citrons" => 1, "oranges" => 4, "bananes" => 5, "pommes" => 10);

$fruitsArrayObject = new ArrayObject($fruits);
$fruitsArrayObject['poires'] = 4;

// Crée un copie des tableaux
$copy = $fruitsArrayObject->getArrayCopy();
print_r($copy);

?>

L'exemple ci-dessus va afficher :

Array
(
    [citrons] => 1
    [oranges] => 4
    [bananes] => 5
    [pommes] => 10
    [poires] => 4
)


Lit les options de comportement

  • « ArrayObject::getArrayCopy
  • ArrayObject::getIterator »
  • PHP Manual
  • ArrayObject
  • Lit les options de comportement

ArrayObject::getFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::getFlags — Lit les options de comportement

Description

public int ArrayObject::getFlags ( void )

Lit les options de comportement de l'objet ArrayObject. Voyez la méthode ArrayObject::setFlags pour obtenir une liste d'options disponibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les options de comportement de l'objet ArrayObject.

Exemples

Exemple #1 Exemple avec ArrayObject::getFlags()

<?php
// Liste de fruits
$fruits = array("citrons" => 1, "oranges" => 4, "bananes" => 5, "pommes" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Liste les options courantes
$flags = $fruitsArrayObject->getFlags();
var_dump($flags);

// Configure de nouvelles options
$fruitsArrayObject->setFlags(ArrayObject::ARRAY_AS_PROPS);

// Lit les nouvelles options
$flags = $fruitsArrayObject->getFlags();
var_dump($flags);
?>

L'exemple ci-dessus va afficher :

int(0)
int(2)

Voir aussi

  • La méthode ArrayObject::setFlags


Crée un nouvel itérateur à partir d'un objet ArrayObject

  • « ArrayObject::getFlags
  • ArrayObject::getIteratorClass »
  • PHP Manual
  • ArrayObject
  • Crée un nouvel itérateur à partir d'un objet ArrayObject

ArrayObject::getIterator

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::getIterator — Crée un nouvel itérateur à partir d'un objet ArrayObject

Description

public ArrayIterator ArrayObject::getIterator ( void )

Crée un nouvel itérateur à partir d'un objet ArrayObject.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un itérateur depuis un ArrayObject.

Exemples

Exemple #1 Exemple avec ArrayObject::getIterator()

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

L'exemple ci-dessus va afficher :

1 => one
2 => two
3 => three


Lit le nom de la classe de ArrayObject

  • « ArrayObject::getIterator
  • ArrayObject::ksort »
  • PHP Manual
  • ArrayObject
  • Lit le nom de la classe de ArrayObject

ArrayObject::getIteratorClass

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::getIteratorClass — Lit le nom de la classe de ArrayObject

Description

public string ArrayObject::getIteratorClass ( void )

Lit le nom de la classe utilisé par l'itérateur de tableau utilisé par ArrayObject::getIterator().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de la classe d'itérateur utilisé par cet objet.

Exemples

Exemple #1 Exemple avec ArrayObject::getIteratorClass()

<?php
// ArrayIterator personnalisé (hérite de ArrayIterator)
class MonArrayIterator extends ArrayIterator {
    // implementation personnalisée
}

// Tableau de fruits
$fruits = array("citrons" => 1, "oranges" => 4, "bananes" => 5, "pommes" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Lit le nom de la classe courante
$className = $fruitsArrayObject->getIteratorClass();
var_dump($className);

// Configure le nom de la nouvelle classe
$fruitsArrayObject->setIteratorClass('MyArrayIterator');

// Lit le nom de la classe du nouvel itérateur
$className = $fruitsArrayObject->getIteratorClass();
var_dump($className);
?>

L'exemple ci-dessus va afficher :

tring(13) "ArrayIterator"
string(15) "MonArrayIterator"

Voir aussi

  • La méthode ArrayObject::setIteratorClass


Trie un tableau par clé

  • « ArrayObject::getIteratorClass
  • ArrayObject::natcasesort »
  • PHP Manual
  • ArrayObject
  • Trie un tableau par clé

ArrayObject::ksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::ksort — Trie un tableau par clé

Description

public void ArrayObject::ksort ( void )

Trie les éléments par clé, en conservant la relation avec les éléments. C'est le tri classique sur les tableaux associatifs.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::ksort()

<?php
$fruits = array("d" => "citron", "a" => "orange", "b" => "banane", "c" => "pomme");
$fruitArrayObject = new ArrayObject($fruits);
$fruitArrayObject->ksort();

foreach ($fruitArrayObject as $key => $val) {
    echo "$key = $val\n";
}
 ?>

L'exemple ci-dessus va afficher :

a = orange
b = banane
c = pomme
d = citron

Voir aussi

  • ArrayObject::asort() - Trie les éléments par valeur
  • ArrayObject::natsort() - Trie les éléments avec un tri naturel
  • ArrayObject::natcasesort() - Trie un tableau en utilisant le tri naturel sans la casse
  • ArrayObject::uasort() - Trie les éléments avec une fonction utilisateur
  • ArrayObject::uksort() - Trie les éléments par clé avec une fonction utilisateur


Trie un tableau en utilisant le tri naturel sans la casse

  • « ArrayObject::ksort
  • ArrayObject::natsort »
  • PHP Manual
  • ArrayObject
  • Trie un tableau en utilisant le tri naturel sans la casse

ArrayObject::natcasesort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::natcasesort — Trie un tableau en utilisant le tri naturel sans la casse

Description

public void ArrayObject::natcasesort ( void )

Cette méthode est la version insensible à la casse de ArrayObject::natsort.

Cette méthode implémente un algorithme de tri qui ordonne les chaînes alpha-numérique de la même façon qu'un humain le ferait. Ceci est décrit comme un tri naturel.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::natcasesort()

<?php
$array = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');

$arr1 = new ArrayObject($array);
$arr2 = clone $arr1;

$arr1->asort();
echo "Tri standard\n";
print_r($arr1);

$arr2->natcasesort();
echo "\nTri naturel\n";
print_r($arr2);
?>

L'exemple ci-dessus va afficher :

Tri standard
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [0] => IMG0.png
            [5] => IMG3.png
            [4] => img1.png
            [2] => img10.png
            [1] => img12.png
            [3] => img2.png
        )

)

Tri naturel
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [0] => IMG0.png
            [4] => img1.png
            [3] => img2.png
            [5] => IMG3.png
            [2] => img10.png
            [1] => img12.png
        )

)

For more information see: Martin Pool's » Natural Order String Comparison page.

Voir aussi

  • ArrayObject::asort() - Trie les éléments par valeur
  • ArrayObject::ksort() - Trie un tableau par clé
  • ArrayObject::natsort() - Trie les éléments avec un tri naturel
  • ArrayObject::uasort() - Trie les éléments avec une fonction utilisateur
  • ArrayObject::uksort() - Trie les éléments par clé avec une fonction utilisateur


Trie les éléments avec un tri naturel

  • « ArrayObject::natcasesort
  • ArrayObject::offsetExists »
  • PHP Manual
  • ArrayObject
  • Trie les éléments avec un tri naturel

ArrayObject::natsort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::natsort — Trie les éléments avec un tri naturel

Description

public void ArrayObject::natsort ( void )

Cette méthode implémente un algorithme de tri qui place les chaînes alphanumériques dans le même ordre que celui qu'un humain utiliserait, tout en conservant la corrélation entre les clé et les valeurs. Ceci porte le nom de tri naturel. Par exemple, le tri naturel se distingue du tri informatique, tel qu'utilisé dans ArrayObject::asort, comme illustré ci-dessous.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::natsort()

<?php
$array = array("img12.png", "img10.png", "img2.png", "img1.png");

$arr1 = new ArrayObject($array);
$arr2 = clone $arr1;

$arr1->asort();
echo "Tri standard\n";
print_r($arr1);

$arr2->natsort();
echo "\nTri en ordre naturel\n";
print_r($arr2);
?>

L'exemple ci-dessus va afficher :

Tri standard
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [3] => img1.png
            [1] => img10.png
            [0] => img12.png
            [2] => img2.png
        )

)

Tri en ordre naturel
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [3] => img1.png
            [2] => img2.png
            [1] => img10.png
            [0] => img12.png
        )

)

Pour plus d'informations, voyez le site de Martin Pool » Natural Order String Comparison.

Voir aussi

  • ArrayObject::asort() - Trie les éléments par valeur
  • ArrayObject::ksort() - Trie un tableau par clé
  • ArrayObject::natcasesort() - Trie un tableau en utilisant le tri naturel sans la casse
  • ArrayObject::uasort() - Trie les éléments avec une fonction utilisateur
  • ArrayObject::uksort() - Trie les éléments par clé avec une fonction utilisateur


Vérifie si un index existe

  • « ArrayObject::natsort
  • ArrayObject::offsetGet »
  • PHP Manual
  • ArrayObject
  • Vérifie si un index existe

ArrayObject::offsetExists

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::offsetExists — Vérifie si un index existe

Description

public bool ArrayObject::offsetExists ( mixed $index )

Liste de paramètres

index

L'index à vérifier.

Valeurs de retour

TRUE if the requested index exists, otherwise FALSE

Exemples

Exemple #1 Exemple avec ArrayObject::offsetExists()

<?php
$arrayobj = new ArrayObject(array('zero', 'one', 'example'=>'e.g.'));
var_dump($arrayobj->offsetExists(1));
var_dump($arrayobj->offsetExists('example'));
var_dump($arrayobj->offsetExists('notfound'));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)


Retourne la valeur de l'index spécifié

  • « ArrayObject::offsetExists
  • ArrayObject::offsetSet »
  • PHP Manual
  • ArrayObject
  • Retourne la valeur de l'index spécifié

ArrayObject::offsetGet

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::offsetGet — Retourne la valeur de l'index spécifié

Description

public mixed ArrayObject::offsetGet ( mixed $index )

Liste de paramètres

index

L'index demandé.

Valeurs de retour

La valeur à l'index ou NULL.

Erreurs / Exceptions

Produit une alerte de niveau E_NOTICE lorsque l'index spécifié n'existe pas.

Exemples

Exemple #1 Exemple avec ArrayObject::offsetGet()

<?php
$arrayobj = new ArrayObject(array('zero', 7, 'example'=>'e.g.'));
var_dump($arrayobj->offsetGet(1));
var_dump($arrayobj->offsetGet('example'));
var_dump($arrayobj->offsetExists('notfound'));
?>

L'exemple ci-dessus va afficher :

int(7)
string(4) "e.g."
bool(false)


Définie $newval comme valeur à l'$index spécifié

  • « ArrayObject::offsetGet
  • ArrayObject::offsetUnset »
  • PHP Manual
  • ArrayObject
  • Définie $newval comme valeur à l'$index spécifié

ArrayObject::offsetSet

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::offsetSet — Définie $newval comme valeur à l'$index spécifié

Description

public void ArrayObject::offsetSet ( mixed $index , mixed $newval )

Définit newval comme valeur à l'index index spécifié.

Liste de paramètres

index

L'index à définir.

newval

La nouvelle valeur de l'index index.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::offsetSet()

<?php
class Example {
    public $property = 'prop:public';
}
$arrayobj = new ArrayObject(new Example());
$arrayobj->offsetSet(4, 'four');
$arrayobj->offsetSet('group', array('g1', 'g2'));
var_dump($arrayobj);

$arrayobj = new ArrayObject(array('zero','one'));
$arrayobj->offsetSet(null, 'last');
var_dump($arrayobj);
?>

L'exemple ci-dessus va afficher :

object(ArrayObject)#1 (3) {
  ["property"]=>
  string(11) "prop:public"
  [4]=>
  string(4) "four"
  ["group"]=>
  array(2) {
    [0]=>
    string(2) "g1"
    [1]=>
    string(2) "g2"
  }
}
object(ArrayObject)#3 (3) {
  [0]=>
  string(4) "zero"
  [1]=>
  string(3) "one"
  [2]=>
  string(4) "last"
}

Voir aussi

  • ArrayObject::append() - Ajoute la valeur à la fin d'un tableau


Efface la valeur à l'$index spécifié

  • « ArrayObject::offsetSet
  • ArrayObject::serialize »
  • PHP Manual
  • ArrayObject
  • Efface la valeur à l'$index spécifié

ArrayObject::offsetUnset

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::offsetUnset — Efface la valeur à l'$index spécifié

Description

public void ArrayObject::offsetUnset ( mixed $index )

Efface la valeur à l'$index spécifié.

Liste de paramètres

index

L'index à effacer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::offsetUnset()

<?php
$arrayobj = new ArrayObject(array(0=>'zero',2=>'two'));
$arrayobj->offsetUnset(2);
var_dump($arrayobj);
?>

L'exemple ci-dessus va afficher :

object(ArrayObject)#1 (1) {
  [0]=>
  string(4) "zero"
}


Linéarise un ArrayObject

  • « ArrayObject::offsetUnset
  • ArrayObject::setFlags »
  • PHP Manual
  • ArrayObject
  • Linéarise un ArrayObject

ArrayObject::serialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayObject::serialize — Linéarise un ArrayObject

Description

public string ArrayObject::serialize ( void )

Linéarise un ArrayObject.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La représentation linéarisée d'un objet ArrayObject.

Exemples

Exemple #1 Exemple avec ArrayObject::serialize()

<?php
$o = new ArrayObject();

$s1 = serialize($o);
$s2 = $o->serialize();

var_dump($s1);
var_dump($s2);
?>

L'exemple ci-dessus va afficher :

string(45) "C:11:"ArrayObject":21:{x:i:0;a:0:{};m:a:0:{}}"
string(21) "x:i:0;a:0:{};m:a:0:{}"

Voir aussi

  • ArrayObject::unserialize() - Délinéarisation d'un ArrayObject
  • serialize() - Génère une représentation stockable d'une valeur
  • Linéarisation d'objets


Configure les options de comportement

  • « ArrayObject::serialize
  • ArrayObject::setIteratorClass »
  • PHP Manual
  • ArrayObject
  • Configure les options de comportement

ArrayObject::setFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::setFlags — Configure les options de comportement

Description

public void ArrayObject::setFlags ( int $flags )

Configure les options qui changent le comportement des objets ArrayObject.

Liste de paramètres

flags

Le nouveau comportement ArrayObject. Cela peut être un champ de bits ou des constantes nommées. L'utilisation des constantes est fortement encouragée, pour assurer la compatibilité avec les futures versions.

Les options de comportement disponibles sont listées ci-dessous. Leur signification est décrite dans les constantes prédéfinies.

Options de comportement de ArrayObject
Valeur | Constante
1 | ArrayObject::STD_PROP_LIST
2 | ArrayObject::ARRAY_AS_PROPS

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::setFlags()

<?php
// Liste de fruits
$fruits = array("citrons" => 1, "oranges" => 4, "bananes" => 5, "pommes" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Utilisation des clés de tableau comme propriété
var_dump($fruitsArrayObject->citrons);
// Configure le tableau pour que les clé de tableau puisse être utilisée comme propriétés
$fruitsArrayObject->setFlags(ArrayObject::ARRAY_AS_PROPS);
// Essaie à nouveau
var_dump($fruitsArrayObject->citrons);

?>

L'exemple ci-dessus va afficher :

NULL
int(1)


Définit le nom de la classe de l'itérateur pour l'objet ArrayObject

  • « ArrayObject::setFlags
  • ArrayObject::uasort »
  • PHP Manual
  • ArrayObject
  • Définit le nom de la classe de l'itérateur pour l'objet ArrayObject

ArrayObject::setIteratorClass

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::setIteratorClass — Définit le nom de la classe de l'itérateur pour l'objet ArrayObject

Description

public void ArrayObject::setIteratorClass ( string $iterator_class )

Définit le nom de la classe de l'itérateur du tableau, utilisé par ArrayObject::getIterator().

Liste de paramètres

iterator_class

Le nom de la classe de l'itérateur à utiliser pour itérer sur cet objet.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::setIteratorClass()

<?php
// ArrayIterator personnalisé (hérite de ArrayIterator)
class MonArrayIterator extends ArrayIterator {
    // implementation personnelle
}

// Liste de fruits
$fruits = array("citrons" => 1, "oranges" => 4, "bananes" => 5, "pommes" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Affecte le nouveau nom de classe d'itération
$fruitsArrayObject->setIteratorClass('MyArrayIterator');
print_r($fruitsArrayObject->getIterator());

?>

L'exemple ci-dessus va afficher :

MonArrayIterator Object
(
    [storage:ArrayIterator:private] => ArrayObject Object
        (
            [storage:ArrayObject:private] => Array
                (
                    [citrons] => 1
                    [oranges] => 4
                    [bananes] => 5
                    [pommes] => 10
                )

        )

)


Trie les éléments avec une fonction utilisateur

  • « ArrayObject::setIteratorClass
  • ArrayObject::uksort »
  • PHP Manual
  • ArrayObject
  • Trie les éléments avec une fonction utilisateur

ArrayObject::uasort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::uasort — Trie les éléments avec une fonction utilisateur

Description

public void ArrayObject::uasort ( callable $cmp_function )

Cette fonction trie les éléments tout en conservant leur correlation avec la clé associée, en utilisant une fonction de comparaison utilisateur.

Cette fonction sert lors du tri de tableaux associatifs, où l'ordre des éléments est important.

Liste de paramètres

cmp_function

La fonction cmp_function doit accepter deux paramètres, qui contiendront les éléments. La fonction de comparaison doit retourner un entier qui peut être négatif, nul ou positif, suivant que le premier paramètre est considéré comme inférieur, égal ou supérieur au second.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::uasort()

<?php
// Fonction de comparaison
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

// Les tableaux à trier
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
$arrayObject = new ArrayObject($array);
print_r($arrayObject);

// Trie et affiche le tableau
$arrayObject->uasort('cmp');
print_r($arrayObject);
?>

L'exemple ci-dessus va afficher :

ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [a] => 4
            [b] => 8
            [c] => -1
            [d] => -9
            [e] => 2
            [f] => 5
            [g] => 3
            [h] => -4
        )

)
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [d] => -9
            [h] => -4
            [c] => -1
            [e] => 2
            [g] => 3
            [a] => 4
            [f] => 5
            [b] => 8
        )

)

Voir aussi

  • ArrayObject::asort() - Trie les éléments par valeur
  • ArrayObject::ksort() - Trie un tableau par clé
  • ArrayObject::natsort() - Trie les éléments avec un tri naturel
  • ArrayObject::natcasesort() - Trie un tableau en utilisant le tri naturel sans la casse
  • ArrayObject::uksort() - Trie les éléments par clé avec une fonction utilisateur


Trie les éléments par clé avec une fonction utilisateur

  • « ArrayObject::uasort
  • ArrayObject::unserialize »
  • PHP Manual
  • ArrayObject
  • Trie les éléments par clé avec une fonction utilisateur

ArrayObject::uksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::uksort — Trie les éléments par clé avec une fonction utilisateur

Description

public void ArrayObject::uksort ( callable $cmp_function )

Cette fonction trie les clés des éléments en utilisant une fonction utilisateur de comparaison. La correlation entre les clés et les éléments est conservée.

Liste de paramètres

cmp_function

La fonction de rappel pour les comparaisons.

La fonction cmp_function doit accepter deux paramètres, qui contiendront les clés des éléments. La fonction de comparaison doit retourner un entier qui peut être négatif, nul ou positif, suivant que le premier paramètre est considéré comme inférieur, égal ou supérieur au second.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ArrayObject::uksort()

<?php
function cmp($a, $b) {
    $a = preg_replace('@^(le|la|les|un|une|des) @', '', $a);
    $b = preg_replace('@^(le|la|les|un|une|des) @', '', $b);
    return strcasecmp($a, $b);
}

$array = array("Jean" => 1, "la Terre" => 2, "une pomme" => 3, "une banane" => 4);
$arrayObject = new ArrayObject($array);
$arrayObject->uksort('cmp');

foreach ($arrayObject as $key => $value) {
    echo "$key: $value\n";
}
?>

L'exemple ci-dessus va afficher :

une banane: 4
Jean: 1
une pomme: 3
la Terre: 2

Voir aussi

  • ArrayObject::asort() - Trie les éléments par valeur
  • ArrayObject::ksort() - Trie un tableau par clé
  • ArrayObject::natsort() - Trie les éléments avec un tri naturel
  • ArrayObject::natcasesort() - Trie un tableau en utilisant le tri naturel sans la casse
  • ArrayObject::uasort() - Trie les éléments avec une fonction utilisateur


Délinéarisation d'un ArrayObject

  • « ArrayObject::uksort
  • SplObserver »
  • PHP Manual
  • ArrayObject
  • Délinéarisation d'un ArrayObject

ArrayObject::unserialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayObject::unserialize — Délinéarisation d'un ArrayObject

Description

public void ArrayObject::unserialize ( string $serialized )

Délinéarise d'un objet ArrayObject linéarisé.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

serialized

L'objet ArrayObject linéarisé.

Valeurs de retour

The unserialized ArrayObject.

Voir aussi

  • ArrayIterator::serialize() - Linéarisation
  • unserialize() - Crée une variable PHP à partir d'une valeur linéarisée
  • Linéarisation d'objets


L'interface SplObserver

(PHP 5 >= 5.1.0, PHP 7)

Introduction

L'interface SplObserver est utilisée conjointement avec la classe SplSubject pour l'implémentation du patron de conception Observateur.

Sommaire de l'Interface

SplObserver {
/* Méthodes */
abstract public void update ( SplSubject $subject )
}

Sommaire

  • SplObserver::update — Réception d'une mise à jour depuis un sujet


Réception d'une mise à jour depuis un sujet

  • « SplObserver
  • SplSubject »
  • PHP Manual
  • SplObserver
  • Réception d'une mise à jour depuis un sujet

SplObserver::update

(PHP 5 >= 5.1.0, PHP 7)

SplObserver::update — Réception d'une mise à jour depuis un sujet

Description

abstract public void SplObserver::update ( SplSubject $subject )

Cette méthode est appelée lorsqu'un des objets SplSubject depuis lequel l'observateur est attaché, appelle la méthode SplSubject::notify().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

subject

L'objet SplSubject notifiant l'observateur d'une mise à jour.

Valeurs de retour

Aucune valeur n'est retournée.


L'interface SplSubject

(PHP 5 >= 5.1.0, PHP 7)

Introduction

L'interface SplSubject est utilisée conjointement avec la classe SplObserver pour l'implémentation du patron de conception Observateur.

Sommaire de l'Interface

SplSubject {
/* Méthodes */
abstract public void attach ( SplObserver $observer )
abstract public void detach ( SplObserver $observer )
abstract public void notify ( void )
}

Sommaire

  • SplSubject::attach — Attache un SplObserver
  • SplSubject::detach — Détache un observateur
  • SplSubject::notify — Notifie un observateur


Attache un SplObserver

  • « SplSubject
  • SplSubject::detach »
  • PHP Manual
  • SplSubject
  • Attache un SplObserver

SplSubject::attach

(PHP 5 >= 5.1.0, PHP 7)

SplSubject::attach — Attache un SplObserver

Description

abstract public void SplSubject::attach ( SplObserver $observer )

Attache un SplObserver. Il sera ainsi notifier des mises à jour.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

observer

L'observateur SplObserver à attacher.

Valeurs de retour

Aucune valeur n'est retournée.


Détache un observateur

  • « SplSubject::attach
  • SplSubject::notify »
  • PHP Manual
  • SplSubject
  • Détache un observateur

SplSubject::detach

(PHP 5 >= 5.1.0, PHP 7)

SplSubject::detach — Détache un observateur

Description

abstract public void SplSubject::detach ( SplObserver $observer )

Détache un observateur d'un sujet. Il ne sera ainsi plus notifier des mises à jour.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

observer

L'observateur SplObserver à détacher.

Valeurs de retour

Aucune valeur n'est retournée.


Notifie un observateur

  • « SplSubject::detach
  • Types SPL »
  • PHP Manual
  • SplSubject
  • Notifie un observateur

SplSubject::notify

(PHP 5 >= 5.1.0, PHP 7)

SplSubject::notify — Notifie un observateur

Description

abstract public void SplSubject::notify ( void )

Notifie tous les observateurs attachés.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Gestion des types SPL

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • SplType — La classe SplType
    • SplType::__construct — Crée une nouvelle valeur d'un certain type
  • SplInt — La classe SplInt
  • SplFloat — La classe SplFloat
  • SplEnum — La classe SplEnum
    • SplEnum::getConstList — Retourne toutes les constantes sous la forme d'un tableau
  • SplBool — La classe SplBool
  • SplString — La classe SplString


Introduction

Cette extension tend à aider les développeurs à faire de PHP un langage à type fort; cela peut être une bonne solution pour assurer le typage scalaire. Il fournit des classes pour gérer des objets tels que integer, float, bool, enum, etc.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/SPL_Types.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


  • « Configuration à l'exécution
  • SplType »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


La classe SplType

(PECL spl_types >= 0.1.0)

Introduction

Classe parente pour tous les types SPL.

Synopsis de la classe

abstract SplType {
/* Constants */
const NULL __default = null ;
/* Méthodes */
__construct ([ mixed $initial_value [, bool $strict ]] )
}

Constantes pré-définies

SplType::__default

Sommaire

  • SplType::__construct — Crée une nouvelle valeur d'un certain type


Crée une nouvelle valeur d'un certain type

  • « SplType
  • SplInt »
  • PHP Manual
  • SplType
  • Crée une nouvelle valeur d'un certain type

SplType::__construct

(PECL spl_types >= 0.1.0)

SplType::__construct — Crée une nouvelle valeur d'un certain type

Description

SplType::__construct ([ mixed $initial_value [, bool $strict ]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

initial_value

Type et valeur par défaut dépendent de la classe de l'extension.

strict

Si l'on doit définir l'objet strictement.

Erreurs / Exceptions

Lance une exception UnexpectedValueException si un type non compatible est fourni.


La classe SplInt

(PECL spl_types >= 0.1.0)

Introduction

La classe SplInt est utilisée pour assurer le typage fort du type integer.

Synopsis de la classe

SplInt extends SplType {
/* Constantes */
const integer __default = 0 ;
/* Méthodes héritées */
SplType::__construct ([ mixed $initial_value [, bool $strict ]] )
}

Constantes pré-définies

SplInt::__default

Exemples

Exemple #1 Exemple d'utilisation de la classe SplInt

<?php
$int = new SplInt(94);

try {
    $int = 'Try to cast a string value for fun';
} catch (UnexpectedValueException $uve) {
    echo $uve->getMessage() . PHP_EOL;
}

echo $int . PHP_EOL;
?>

L'exemple ci-dessus va afficher :

Value not an integer
94


La classe SplFloat

(PECL spl_types >= 0.1.0)

Introduction

La classe SplFloat est utilisée pour assurer le typage fort du type float.

Synopsis de la classe

SplFloat extends SplType {
/* Constantes */
const float __default = 0 ;
/* Méthodes héritées */
SplType::__construct ([ mixed $initial_value [, bool $strict ]] )
}

Constantes pré-définies

SplFloat::__default

Exemples

Exemple #1 Exemple d'utilisation de la classe SplFloat

<?php
$float = new SplFloat(3.154);
$newFloat = new SplFloat(3);

try {
    $float = 'Try to cast a string value for fun';
} catch (UnexpectedValueException $uve) {
    echo $uve->getMessage() . PHP_EOL;
}

echo $float . PHP_EOL;
echo $newFloat . PHP_EOL;
?>

L'exemple ci-dessus va afficher :

Value not a float
3.154
3


La classe SplEnum

(PECL spl_types >= 0.1.0)

Introduction

La classe SplEnum est utilisée pour émuler et créer des objets d'énumération nativement en PHP.

Synopsis de la classe

SplEnum extends SplType {
/* Constantes */
const NULL __default = null ;
/* Méthodes */
public array getConstList ([ bool $include_default = false ] )
/* Méthodes héritées */
SplType::__construct ([ mixed $initial_value [, bool $strict ]] )
}

Constantes pré-définies

SplEnum::__default

Exemples

Exemple #1 Exemple d'utilisation de la classe SplEnum

<?php
class Month extends SplEnum {
    const __default = self::January;

    const January = 1;
    const February = 2;
    const March = 3;
    const April = 4;
    const May = 5;
    const June = 6;
    const July = 7;
    const August = 8;
    const September = 9;
    const October = 10;
    const November = 11;
    const December = 12;
}

echo new Month(Month::June) . PHP_EOL;

try {
 new Month(13);
} catch (UnexpectedValueException $uve) {
 echo $uve->getMessage() . PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

6
Value not a const in enum Month

Sommaire

  • SplEnum::getConstList — Retourne toutes les constantes sous la forme d'un tableau


Retourne toutes les constantes sous la forme d'un tableau

  • « SplEnum
  • SplBool »
  • PHP Manual
  • SplEnum
  • Retourne toutes les constantes sous la forme d'un tableau

SplEnum::getConstList

(PECL spl_types >= 0.1.0)

SplEnum::getConstList — Retourne toutes les constantes sous la forme d'un tableau

Description

public array SplEnum::getConstList ([ bool $include_default = false ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

include_default

Si l'on doit ou non inclure la propriété __default.

Valeurs de retour

Exemples

Exemple #1 Exemple avec SplEnum::getConstList()

<?php
$bool = new SplBool;
var_dump($bool->getConstList(true));
?>

L'exemple ci-dessus va afficher :

array(3) {
  ["__default"]=>
  bool(false)
  ["false"]=>
  bool(false)
  ["true"]=>
  bool(true)
}


La classe SplBool

(PECL spl_types >= 0.1.0)

Introduction

La classe SplBool est utilisée pour assurer le typage fort du type booléen.

Synopsis de la classe

SplBool extends SplEnum {
/* Constantes */
const boolean __default = false ;
const boolean false = false ;
const boolean true = true ;
/* Méthodes héritées */
public array SplEnum::getConstList ([ bool $include_default = false ] )
}

Constantes pré-définies

SplBool::__default

SplBool::false

SplBool::true

Exemples

Exemple #1 Exemple d'utilisation de la classe SplBool

<?php
$true = new SplBool(true);
if ($true) {
    echo "TRUE\n";
}

$false = new SplBool;
if ($false) {
    echo "FALSE\n";
}
?>

L'exemple ci-dessus va afficher :

TRUE


La classe SplString

(PECL spl_types >= 0.1.0)

Introduction

La classe SplString sert à assurer le typage fort des chaînes.

Synopsis de la classe

SplString extends SplType {
/* Constantes */
const string __default = '' ;
/* Méthodes héritées */
SplType::__construct ([ mixed $initial_value [, bool $strict ]] )
}

Constantes pré-définies

SplString::__default

Exemples

Exemple #1 Exemple d'utilisation SplString

<?php
$string = new SplString("Testing");

try {
    $string = array();
} catch (UnexpectedValueException $uve) {
    echo $uve->getMessage() . PHP_EOL;
}

var_dump($string);
echo $string; // Affiche : "Testing"
?>

L'exemple ci-dessus va afficher :

Value not a string
object(SplString)#1 (1) {
  ["__default"]=>
  string(7) "Testing"
}
Testing


Flux

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Classes Stream
  • Constantes pré-définies
  • Filtres de flux
  • Contextes de flux
  • Erreurs de flux
  • Exemples
    • Exemple de classe enregistrée comme gestionnaire de flux
  • php_user_filter — La classe php_user_filter
    • php_user_filter::filter — Appelé lors de l'application d'un filtre
    • php_user_filter::onClose — Appelé lors de la fermeture du filtre
    • php_user_filter::onCreate — Appelé lors de la création du filtre
  • streamWrapper — La classe streamWrapper
    • streamWrapper::__construct — Construit un nouveau gestionnaire de flux
    • streamWrapper::__destruct — Détruit un gestionnaire de flux existant
    • streamWrapper::dir_closedir — Ferme une ressource de dossier
    • streamWrapper::dir_opendir — Ouvre un dossier en lecture
    • streamWrapper::dir_readdir — Lit un fichier dans un dossier
    • streamWrapper::dir_rewinddir — Remet au début une ressource de dossier
    • streamWrapper::mkdir — Crée un dossier
    • streamWrapper::rename — Renomme un fichier ou un dossier
    • streamWrapper::rmdir — Supprime un dossier
    • streamWrapper::stream_cast — Lit la ressource sous-jacente de flux
    • streamWrapper::stream_close — Ferme une ressource de flux
    • streamWrapper::stream_eof — Tests for end-of-file on a file pointer
    • streamWrapper::stream_flush — Expédie le contenu
    • streamWrapper::stream_lock — Verrouillage logique de fichiers
    • streamWrapper::stream_metadata — Change les metadata du flux
    • streamWrapper::stream_open — Opens file or URL
    • streamWrapper::stream_read — Lit dans le flux
    • streamWrapper::stream_seek — Place le pointeur de flux à une position
    • streamWrapper::stream_set_option — Change les options du flux
    • streamWrapper::stream_stat — Lit les informations sur une ressource de fichier
    • streamWrapper::stream_tell — Lit la position courante dans un flux
    • streamWrapper::stream_truncate — Tronque un flux
    • streamWrapper::stream_write — Écrit dans un flux
    • streamWrapper::unlink — Efface un fichier
    • streamWrapper::url_stat — Lit les informations sur un fichier
  • Fonctions sur les flux
    • set_socket_blocking — Alias de stream_set_blocking
    • stream_bucket_append — Ajoute un compartiment au corps
    • stream_bucket_make_writeable — Retourne un objet de compartiment depuis le corps pour des opérations sur celui-ci
    • stream_bucket_new — Crée un nouveau compartiment pour l'utiliser sur le flux courant
    • stream_bucket_prepend — Ajout initial d'un bucket dans une brigade
    • stream_context_create — Crée un contexte de flux
    • stream_context_get_default — Lit le contexte par défaut des flux
    • stream_context_get_options — Lit la valeur des options pour un flux/gestionnaire/contexte
    • stream_context_get_params — Lit les paramètres d'un contexte
    • stream_context_set_default — Configure le contexte par défaut des flux
    • stream_context_set_option — Configure une option pour un flux/gestionnaire/contexte
    • stream_context_set_params — Configure les paramètres pour un flux/gestionnaire/contexte
    • stream_copy_to_stream — Copie des données depuis un flux vers un autre
    • stream_encoding — Définit le jeu de caractères pour l'encodage du flux
    • stream_filter_append — Attache un filtre à un flux en fin de liste
    • stream_filter_prepend — Attache un filtre à un flux en début de liste
    • stream_filter_register — Enregistre un filtre de flux
    • stream_filter_remove — Retire un filtre d'un flux
    • stream_get_contents — Lit tout un flux dans une chaîne
    • stream_get_filters — Liste les filtres enregistrés
    • stream_get_line — Lit une ligne dans un flux
    • stream_get_meta_data — Lit les en-têtes et données méta des flux
    • stream_get_transports — Liste les gestionnaires de transports de sockets disponibles
    • stream_get_wrappers — Liste les gestionnaires de flux
    • stream_is_local — Vérifie si un flux est local
    • stream_notification_callback — Une fonction de rappel pour le paramètre de contexte notification
    • stream_register_wrapper — Alias de stream_wrapper_register
    • stream_resolve_include_path — Résout un nom de fichier suivant les règles du chemin d'inclusion
    • stream_select — Surveille la modification d'un ou plusieurs flux
    • stream_set_blocking — Configure le mode bloquant d'un flux
    • stream_set_chunk_size — Change la taille du segment du flux
    • stream_set_read_buffer — Configure le buffer de lecture d'un flux
    • stream_set_timeout — Configure la durée d'expiration d'un flux
    • stream_set_write_buffer — Configure le buffer d'écriture d'un flux
    • stream_socket_accept — Accepte une connexion sur un socket créé par stream_socket_server
    • stream_socket_client — Ouvre une connexion socket Internet ou Unix
    • stream_socket_enable_crypto — Active ou non le chiffrement, pour un socket déjà connecté
    • stream_socket_get_name — Lit le nom de la socket locale ou distante
    • stream_socket_pair — Crée une paire de sockets connectées et indissociables
    • stream_socket_recvfrom — Lit des données depuis un socket, connecté ou pas
    • stream_socket_sendto — Envoie un message au socket, connecté ou pas
    • stream_socket_server — Crée un socket serveur Unix ou Internet
    • stream_socket_shutdown — Arrête une connexion full-duplex
    • stream_supports_lock — Indique si le flux supporte les verrous
    • stream_wrapper_register — Enregistre un gestionnaire d'URL
    • stream_wrapper_restore — Restaure un gestionnaire d'URL supprimé
    • stream_wrapper_unregister — Supprime un gestionnaire d'URL


Introduction

Les flux ("streams" en anglais) ont été introduits en PHP 4.3.0 comme méthode de généralisation des fichiers, sockets, connexions réseau, données compressées et autres opérations du même type, qui partagent des opérations communes. Dans sa définition la plus simple, un flux est une ressource qui présente des capacités de flux : c'est-à-dire que ces objets peuvent être lus ou recevoir des écritures de manière linéaire, et dispose aussi de moyen d'accéder à des positions arbitraires dans le flux.

Un gestionnaire (littéralement, wrapper en anglais), est une fonction qui indique comment le flux se comporte spécifiquement. C'est le cas du gestionnaire http, qui sait comment traduire une URL en une requête HTTP/1.0 sur un serveur distant. Il existe de nombreux gestionnaires intégrés à PHP par défaut (voir Liste des protocoles et des gestionnaires supportés), et, de plus, des gestionnaires spécifiques peuvent être ajoutés dans les scripts PHP avec la fonction stream_register_wrapper(), ou bien directement par une autre extension, en utilisant l'API C de Working with streams. Grâce à la souplesse des gestionnaires qui peuvent être ajoutés à PHP, il n'y a pas de limites aux possibilités offertes. Pour connaître la liste des gestionnaires actuellement enregistrés, utilisez la fonction stream_get_wrappers().

Un flux est référencé comme : scheme://target

  • scheme(chaîne de caractères) - Le nom du gestionnaire a utiliser. Par exemple, file, http, https, ftp, ftps, compress.zlib, compress.bz. et php.. Voir Liste des protocoles et des gestionnaires supportés pour une liste complète des gestionnaires enregistrés de PHP. Si aucun gestionnaire n'est spécifié, la fonction par défaut est utilisée (typiquement, file://).
  • target - Dépend du gestionnaire utilisé. Pour les flux relatifs aux systèmes de fichiers, c'est typiquement un chemin et un nom de fichier du fichier désiré. Pour les flux relatifs aux réseaux, c'est typiquement le nom d'hôte, souvent avec un chemin apposé. Voir aussi Liste des protocoles et des gestionnaires supportés pour une description des cibles des flux intégrés.

Note:

Des informations sur l'utilisation des flux dans le code source de PHP peuvent être trouvées dans l'API des flux pour les auteurs d'extensions PHP.


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Configuration à l'exécution
  • Classes Stream


Installation

Les flux font partie de PHP depuis la version 4.3.0. Aucune étape supplémentaire n'est requise pour les activer.


  • « Installation
  • Classes Stream »
  • PHP Manual
  • Installation/Configuration
  • Configuration à l'exécution

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.


Classes Stream

Des gestionnaires personnalisés peuvent être enregistrés via la fonction stream_register_wrapper(), en utilisant la définition de classe décrite dans ce manuel.

La classe php_user_filter est prédéfinie. C'est une classe abstraite à utiliser avec les filtres personnalisés. Voyez le manuel de la fonction stream_register_filter() pour plus de détails sur les implémentations de filtres utilisateurs.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constante | Description
STREAM_FILTER_READ | Utilisée avec stream_filter_append() et stream_filter_prepend() pour indiquer que le filtre spécifié ne doit être appliqué qu'après la lecture.
STREAM_FILTER_WRITE | Utilisée avec stream_filter_append() et stream_filter_prepend() pour indiquer que le filtre spécifié ne doit être appliqué qu'après l' écriture.
STREAM_FILTER_ALL | Cette constante est équivalente à STREAM_FILTER_READ | STREAM_FILTER_WRITE
PSFS_PASS_ON * | Le code retourné indique que le filtre utilisateur retourne des données dans $out.
PSFS_FEED_ME * | Le code retourné indique que le filtre utilisateur ne retourne pas de données dans $out (i.e. aucune donnée disponible).
PSFS_ERR_FATAL * | Le code retourné indique que le filtre utilisateur a produit une erreur fatale. (i.e. données invalides reçues).
PSFS_FLAG_NORMAL | Opérations normales de lecture et écriture.
PSFS_FLAG_FLUSH_INC | Écriture incrémentale.
PSFS_FLAG_FLUSH_CLOSE | Écriture en bloc, à la fermeture.
STREAM_USE_PATH | Option indiquant si stream a utilisé l'include_path .
STREAM_REPORT_ERRORS | Option indiquant si le gestionnaire est responsable pour la levée des erreurs avec trigger_error() durant l'ouverture du flux. Si cette constante n'existe pas, vous ne devez pas émettre d'erreurs.
STREAM_CLIENT_ASYNC_CONNECT * | Ouvre un socket client en mode asynchrone. Cette option doit être utilisée avec l'option STREAM_CLIENT_CONNECT. À utiliser avec la fonction stream_socket_client().
STREAM_CLIENT_CONNECT * | Ouvre un socket client. Les sockets clients doivent toujours inclure ce flag. À utiliser avec la fonction stream_socket_client().
STREAM_CLIENT_PERSISTENT * | Le socket client ouvert avec stream_socket_client() doit rester persistant entre chaque page chargée.
STREAM_SERVER_BIND * | Appel un flux créé avec la fonction stream_socket_server() pour s'identifier sur la cible définie. Les sockets serveur doivent toujours utiliser cette constante.
STREAM_SERVER_LISTEN * | Appel un flux créé avec stream_socket_server() et utilise la constante STREAM_SERVER_BIND pour commencer à écouter le socket. Les connexions orientées transports (comme TCP) doivent utiliser cet option sinon le socket serveur ne sera pas activée. Utiliser cette option pour les connexions basses de transports, comme UDP, est une erreur.
STREAM_NOTIFY_RESOLVE * | Une adresse distante requise pour ce flux a été résolue, ou bien la résolution a échoué. Voir le paramètre severity pour avoir une indication sur l'événement survenu.
STREAM_NOTIFY_CONNECT | Une connexion avec une ressource externe a été établie.
STREAM_NOTIFY_AUTH_REQUIRED | Une autorisation supplémentaire est demandée pour accéder à la ressource spécifiée. Typiquement utilisé avec le niveau d'alerte severity de la constante STREAM_NOTIFY_SEVERITY_ERR.
STREAM_NOTIFY_MIME_TYPE_IS | Le type mime de la ressource a été identifié : voir le paramètre message pour une description du type découvert.
STREAM_NOTIFY_FILE_SIZE_IS | La taille de la ressource a été découverte.
STREAM_NOTIFY_REDIRECTED | La ressource externe a redirigé le flux vers un endroit différent. Voir le paramètre message.
STREAM_NOTIFY_PROGRESS | Indique l'actuelle progression du transfert du flux dans bytes_transferred et peut-être bytes_max également.
STREAM_NOTIFY_COMPLETED * | Il n'y a plus de données disponibles sur le flux.
STREAM_NOTIFY_FAILURE | Une erreur générique est intervenue sur le flux, consultez les paramètres message et message_code pour plus de détails.
STREAM_NOTIFY_AUTH_RESULT | L'autorisation est terminée (avec succès ou pas).
STREAM_NOTIFY_SEVERITY_INFO | Notification normale, aucune erreur signalée.
STREAM_NOTIFY_SEVERITY_WARN | Erreur non critique. Le traitement continue.
STREAM_NOTIFY_SEVERITY_ERR | Une erreur critique est survenu. Le traitement ne peut continuer.
STREAM_IPPROTO_ICMP + | Fournit un socket ICMP.
STREAM_IPPROTO_IP + | Fournit un socket IP.
STREAM_IPPROTO_RAW + | Fournit un socket RAW.
STREAM_IPPROTO_TCP + | Fournit un socket TCP.
STREAM_IPPROTO_UDP + | Fournit un socket UDP.
STREAM_PF_INET + | Protocole Internet version 4 (IPv4).
STREAM_PF_INET6 + | Protocole internet version 6(IPv6).
STREAM_PF_UNIX + | Protocoles internes des systèmes Unix.
STREAM_SOCK_DGRAM + | Fournit des datagrammes, qui sont des messages sans connectivité (UDP, par exemple).
STREAM_SOCK_RAW + | Fournit un socket brut, qui fournit un accès aux protocoles et interfaces internes du réseau. Habituellement, ce type de socket n'est disponible qu'à l'utilisateur root.
STREAM_SOCK_RDM + | Fournit un socket RDM (Reliably-delivered messages).
STREAM_SOCK_SEQPACKET + | Fournit un socket de flux de paquets en séquence.
STREAM_SOCK_STREAM + | Fournit un flux en séquence bi-directionnel avec un mécanisme de transmission pour les données "out-of-band" (TCP par exemple).
STREAM_SHUT_RD | Utilisé avec stream_socket_shutdown() pour désactiver les réceptions futures. Disponible depuis PHP 5.2.1.
STREAM_SHUT_WR | Utilisé avec stream_socket_shutdown() pour désactiver les transmissions futures. Disponible depuis PHP 5.2.1.
STREAM_SHUT_RDWR | Utilisé avec stream_socket_shutdown() pour désactiver les réceptions et transmissions futures. Disponible depuis PHP 5.2.1.
STREAM_CAST_FOR_SELECT | Transtypage de flux, lorsque stream_select() appelle stream_cast().
STREAM_CAST_AS_STREAM | Transtypage de flux, lorsque stream_cast() est appelé autrement (voir ci-dessus).
STREAM_META_TOUCH | Utilisé avec stream_metadata(), pour spécifier un appel touch().
STREAM_META_OWNER | Utilisé avec stream_metadata(), pour spécifier un appel chown().
STREAM_META_OWNER_NAME | Utilisé avec stream_metadata(), pour spécifier un appel chown().
STREAM_META_GROUP | Utilisé avec stream_metadata(), pour spécifier un appel chgrp().
STREAM_META_GROUP_NAME | Utilisé avec stream_metadata(), pour spécifier un appel chgrp().
STREAM_META_ACCESS | Utilisé avec stream_metadata(), pour spécifier un appel chmod().

Note: Les constantes marquées avec une * sont uniquement disponibles depuis PHP 5.0.0.

Note: Les constantes marquées avec une + sont disponibles depuis PHP 5.1.0 et sont faites pour être utilisées avec la fonction stream_socket_pair(). Notez que quelques-unes de ces constantes peuvent ne pas être disponibles sur votre système.

Note: Les constantes STREAM_META_* sont disponibles depuis PHP 5.4.0 et doivent être utilisées avec stream_metadata().


Filtres de flux

Un filtre est une fonction finale qui effectue des opérations sur les données qui sont lues ou écrites dans un flux. Un nombre arbitraire de filtres peuvent être ajoutés sur un flux. Des filtres personnalisés peuvent aussi être ajoutés avec la fonction stream_register_filter(), ou bien dans une extension avec l'API C de Working with streams. Pour connaître la liste des gestionnaires actuellement enregistrés, utilisez la fonction stream_get_filters().


Contextes de flux

Un contexte est un jeu de paramètres et d'options spécifiques à un gestionnaire qui modifie ou améliore le comportement d'un flux. Les contextes sont créés en utilisant la fonction stream_context_create() et peuvent être donnés aux fonctions de création de flux sur le système de fichiers (i.e. fopen(), file(), file_get_contents(), etc.).

Les options peuvent être spécifiées en appelant stream_context_create() ou, plus tard, avec stream_context_set_option(). Une liste des options spécifiques aux gestionnaires peut être trouvée dans le chapitre Options et paramètres de contexte.

Parameters peut être spécifié pour contexts en utilisant la fonction stream_context_set_params().


Erreurs de flux

Comme avec n'importe quel fichier ou socket, les opérations sur un flux peuvent échouer pour une grande variété de raisons (par exemple : impossible de se connecter au serveur distant, fichier introuvable, etc.). Un flux peut aussi échouer parce que le gestionnaire n'est pas configuré sur le système en cours. Voyez le tableau retourné par la fonction stream_get_wrappers() pour connaître la liste des gestionnaires configurés sur votre installation de PHP. Comme avec la plupart des fonctions internes de PHP, si une erreur survient, un message de type E_WARNING sera généré pour indiquer la nature de l'erreur.


Exemples

Sommaire

  • Exemple de classe enregistrée comme gestionnaire de flux

Exemple #1 Exemples avec file_get_contents()

<?php
/* Lit un fichier local dans le dossier /home/bar */
$localfile = file_get_contents("/home/bar/foo.txt");

/* Identique au précédent, mais utilise explicitement le gestionnaire FILE */
$localfile = file_get_contents("file:///home/bar/foo.txt");

/* Lit un fichier distant sur le serveur www.example.com avec le protocole HTTP */
$httpfile  = file_get_contents("http://www.example.com/foo.txt");

/* Lit le même fichier sur le serveur www.example.com avec le protocole HTTPS */
$httpsfile = file_get_contents("https://www.example.com/foo.txt");

/* Lit un fichier distant sur le serveur ftp.example.com en utilisant le protocole FTP */
$ftpfile   = file_get_contents("ftp://user:pass@ftp.example.com/foo.txt");

/* Lit un fichier distant sur le serveur ftp.example.com en utilisant le protocole FTPS */
$ftpsfile  = file_get_contents("ftps://user:pass@ftp.example.com/foo.txt");
?>

Exemple #2 Envoi d'une requête de type POST sur un serveur sécurisé

<?php
/* Envoi d'une requête POST sur le serveur https://secure.example.com/form_action.php
 * Inclusion des variables "foo" et "bar"
 */

$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");

$data = "foo=" . urlencode("Value for Foo") . "&bar=" . urlencode("Value for Bar");

fwrite($sock, "POST /form_action.php HTTP/1.0\r\n");
fwrite($sock, "Host: secure.example.com\r\n");
fwrite($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fwrite($sock, "Content-length: " . strlen($data) . "\r\n");
fwrite($sock, "Accept: */*\r\n");
fwrite($sock, "\r\n");
fwrite($sock, $data);

$headers = "";
while ($str = trim(fgets($sock, 4096)))
$headers .= "$str\n";

echo "\n";

$body = "";
while (!feof($sock))
$body .= fgets($sock, 4096);

fclose($sock);
?>

Exemple #3 Écrire des données dans un fichier compressé

<?php
/* Création d'un fichier compressé contenant une chaîne arbitraire
 * Le fichier peut être lu en utilisant le gestionnaire compress.zlib
 * ou simplement decompresse; en ligne de commande avec 'gzip -d foo-bar.txt.gz'
 */
$fp = fopen("compress.zlib://foo-bar.txt.gz","w");
if (!$fp) die("Impossible de créer le fichier.");

fwrite($fp, "Ceci est un test.\n");

fclose($fp);
?>


Exemple de classe enregistrée comme gestionnaire de flux

L'exemple ci-dessous implémente un gestionnaire de protocole var:// qui permet d'écrire et lire une variable globale en utilisant les fonctions standard de fichier, telle que fread(). Le protocole var:// implémenté ci-dessous, va, à partir d'une URL "var://foo" accéder à la variable globale $GLOBALS["foo"].

Exemple #1 Un flux pour lire et écrire des variables globales

<?php

class VariableStream {
    var $position;
    var $varname;

    function stream_open($path, $mode, $options, &$opened_path)
    {
        $url = parse_url($path);
        $this->varname = $url["host"];
        $this->position = 0;

        return true;
    }

    function stream_read($count)
    {
        $ret = substr($GLOBALS[$this->varname], $this->position, $count);
        $this->position += strlen($ret);
        return $ret;
    }

    function stream_write($data)
    {
        $left = substr($GLOBALS[$this->varname], 0, $this->position);
        $right = substr($GLOBALS[$this->varname], $this->position + strlen($data));
        $GLOBALS[$this->varname] = $left . $data . $right;
        $this->position += strlen($data);
        return strlen($data);
    }

    function stream_tell()
    {
        return $this->position;
    }

    function stream_eof()
    {
        return $this->position >= strlen($GLOBALS[$this->varname]);
    }

    function stream_seek($offset, $whence)
    {
        switch ($whence) {
            case SEEK_SET:
                if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) {
                     $this->position = $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_CUR:
                if ($offset >= 0) {
                     $this->position += $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_END:
                if (strlen($GLOBALS[$this->varname]) + $offset >= 0) {
                     $this->position = strlen($GLOBALS[$this->varname]) + $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            default:
                return false;
        }
    }

    function stream_metadata($path, $option, $var)
    {
  if($option == STREAM_META_TOUCH) {
   $url = parse_url($path);
         $varname = $url["host"];
   if(!isset($GLOBALS[$varname])) {
          $GLOBALS[$varname] = '';
   }
   return true;
  }
  return false;
    }
}
stream_wrapper_register("var", "VariableStream")
    or die("Failed to register protocol");

$myvar = "";

$fp = fopen("var://myvar", "r+");

fwrite($fp, "line1\n");
fwrite($fp, "line2\n");
fwrite($fp, "line3\n");

rewind($fp);
while (!feof($fp)) {
    echo fgets($fp);
}
fclose($fp);
var_dump($myvar);

?>

L'exemple ci-dessus va afficher :

line1
line2
line3
string(18) "line1
line2
line3
"


La classe php_user_filter

(PHP 5, PHP 7)

Introduction

Les fils de cette classe sont passés à la fonction stream_filter_register().

Synopsis de la classe

php_user_filter {
/* Propriétés */
public $filtername ;
public $params ;
/* Méthodes */
public int filter ( resource $in , resource $out , int &$consumed , bool $closing )
public void onClose ( void )
public bool onCreate ( void )
}

Propriétés

filtername

Nom du filtre à enregistrer par la fonction stream_filter_append().

params

Sommaire

  • php_user_filter::filter — Appelé lors de l'application d'un filtre
  • php_user_filter::onClose — Appelé lors de la fermeture du filtre
  • php_user_filter::onCreate — Appelé lors de la création du filtre


Appelé lors de l'application d'un filtre

  • « php_user_filter
  • php_user_filter::onClose »
  • PHP Manual
  • php_user_filter
  • Appelé lors de l'application d'un filtre

php_user_filter::filter

(PHP 5, PHP 7)

php_user_filter::filter — Appelé lors de l'application d'un filtre

Description

public int php_user_filter::filter ( resource $in , resource $out , int &$consumed , bool $closing )

Cette méthode est appelée lorsque les données sont lues depuis le flux attaché, ou écrites sur le flux attaché (lors de l'utilisation de la fonction fread() ou la fonction fwrite()).

Liste de paramètres

in

Le paramètre in est une ressource pointant vers un bucket brigade qui contient un ou plusieurs objets bucket contenant les données à filtrer.

out

Le paramètre out est une ressource pointant vers un second bucket brigade dans lequel vos bucket modifiés doivent être placés.

consumed

Le paramètre consumed, qui doit toujours être déclaré par référence, doit être incrémenté par la longueur des données filtrés par votre filtre. Dans la plupart des cas, cela signifie que vous devez incrémenter le paramètre consumed par $bucket->datalen pour chaque $bucket.

closing

Si le flux est dans un processus de fermeture (et donc, c'est la dernière passe via la chaîne de filtrage), le paramètre closing sera défini à TRUE.

Valeurs de retour

La méthode filter() doit retourner au final une de ces trois valeurs.

Valeur retournée | Signification
PSFS_PASS_ON | Le processus de filtrage s'est terminé avec succès, et les données sont disponibles dans le paramètre out bucket brigade.
PSFS_FEED_ME | Le processus de filtrage s'est terminé avec succès, cependant, aucune donnée n'est disponible pour être retourné. Plus de données sont requis depuis le flux ou avant filtrage.
PSFS_ERR_FATAL (défaut) | Le filtre a rencontré une erreur fatale et ne peut continuer.


Appelé lors de la fermeture du filtre

  • « php_user_filter::filter
  • php_user_filter::onCreate »
  • PHP Manual
  • php_user_filter
  • Appelé lors de la fermeture du filtre

php_user_filter::onClose

(PHP 5, PHP 7)

php_user_filter::onClose — Appelé lors de la fermeture du filtre

Description

public void php_user_filter::onClose ( void )

Cette méthode est appelée lors de la fermeture du filtre (typiquement, c'est aussi le cas lors de la fermeture du flux), et est exécutée après l'appel à la méthode flush. Si des ressources avaient été allouées ou initialisées pendant onCreate(), c'est alors le moment de les détruire ou de les rendre à disposition.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur retournée est ignorée.


Appelé lors de la création du filtre

  • « php_user_filter::onClose
  • streamWrapper »
  • PHP Manual
  • php_user_filter
  • Appelé lors de la création du filtre

php_user_filter::onCreate

(PHP 5, PHP 7)

php_user_filter::onCreate — Appelé lors de la création du filtre

Description

public bool php_user_filter::onCreate ( void )

Cette méthode est appelée lors de l'instanciation de l'objet de la classe de filtrage. Si votre filtre alloue ou initialise d'autres ressources (comme un buffer), c'est la place pour le faire.

Lorsque votre filtre est instancié et que yourfilter->onCreate() est appelé, un nombre de propriétés sera disponible comme montré dans la table ci-dessous.

Propriétés | Contenus
FilterClass->filtername | Une chaîne contenant le nom utilisé pour instancier le filtre. Les filtres peuvent être enregistrés sous plusieurs noms ou avec des jokers. Utilisez cette propriété pour déterminer quel est le nom qui a été utilisé.
FilterClass->params | Le contenu du pramètre params passé à la fonction stream_filter_append() ou la fonction stream_filter_prepend().
FilterClass->stream | La ressource du flux à filtrer. Ne peut être disponible que lors de l'appel à la méthode filter() lorsque le paramètre closing est défini à FALSE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Votre implémentation de cette méthode doit retourner FALSE si une erreur survient, ou TRUE en cas de succès.


La classe streamWrapper

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

Introduction

Permet la création de gestionnaires de protocoles et de flux, à utiliser avec toutes les fonctions système, telles que fopen(), fread() etc.).

Note:

Cette classe n'est pas une classe concrète : c'est juste un prototype d'une classe qui définirait son propre protocole.

Note:

Implémenter les méthodes d'une manière qui n'est pas décrite dans la documentation peut mener à des comportements indéfinis.

Une instance de cette classe est initialisée aussitôt que les fonctions de flux tentent d'accéder à une ressource avec un protocole.

Synopsis de la classe

streamWrapper {
/* Propriétés */
public resource $context ;
/* Méthodes */
__construct ( void )
__destruct ( void )
public bool dir_closedir ( void )
public bool dir_opendir ( string $path , int $options )
public string dir_readdir ( void )
public bool dir_rewinddir ( void )
public bool mkdir ( string $path , int $mode , int $options )
public bool rename ( string $path_from , string $path_to )
public bool rmdir ( string $path , int $options )
public resource stream_cast ( int $cast_as )
public void stream_close ( void )
public bool stream_eof ( void )
public bool stream_flush ( void )
public bool stream_lock ( int $operation )
public bool stream_metadata ( string $path , int $option , mixed $value )
public bool stream_open ( string $path , string $mode , int $options , string &$opened_path )
public string stream_read ( int $count )
public bool stream_seek ( int $offset , int $whence = SEEK_SET )
public bool stream_set_option ( int $option , int $arg1 , int $arg2 )
public array stream_stat ( void )
public int stream_tell ( void )
public bool stream_truncate ( int $new_size )
public int stream_write ( string $data )
public bool unlink ( string $path )
public array url_stat ( string $path , int $flags )
}

Propriétés

resource context

Le contexte courant, ou NULL si aucun contexte n'a été passé à la fonction.

Utilisez la fonction stream_context_get_options() pour analyser le contexte.

Note:

Cette propriété doit être public, pour que PHP puisse la remplir avec la ressource de contexte.

Historique

Version | Description
5.0.0 | Ajout de la propriété context.

Voir aussi

  • Exemple de classe enregistrée comme gestionnaire de flux
  • stream_wrapper_register()
  • stream_wrapper_unregister()
  • stream_wrapper_restore()

Sommaire

  • streamWrapper::__construct — Construit un nouveau gestionnaire de flux
  • streamWrapper::__destruct — Détruit un gestionnaire de flux existant
  • streamWrapper::dir_closedir — Ferme une ressource de dossier
  • streamWrapper::dir_opendir — Ouvre un dossier en lecture
  • streamWrapper::dir_readdir — Lit un fichier dans un dossier
  • streamWrapper::dir_rewinddir — Remet au début une ressource de dossier
  • streamWrapper::mkdir — Crée un dossier
  • streamWrapper::rename — Renomme un fichier ou un dossier
  • streamWrapper::rmdir — Supprime un dossier
  • streamWrapper::stream_cast — Lit la ressource sous-jacente de flux
  • streamWrapper::stream_close — Ferme une ressource de flux
  • streamWrapper::stream_eof — Tests for end-of-file on a file pointer
  • streamWrapper::stream_flush — Expédie le contenu
  • streamWrapper::stream_lock — Verrouillage logique de fichiers
  • streamWrapper::stream_metadata — Change les metadata du flux
  • streamWrapper::stream_open — Opens file or URL
  • streamWrapper::stream_read — Lit dans le flux
  • streamWrapper::stream_seek — Place le pointeur de flux à une position
  • streamWrapper::stream_set_option — Change les options du flux
  • streamWrapper::stream_stat — Lit les informations sur une ressource de fichier
  • streamWrapper::stream_tell — Lit la position courante dans un flux
  • streamWrapper::stream_truncate — Tronque un flux
  • streamWrapper::stream_write — Écrit dans un flux
  • streamWrapper::unlink — Efface un fichier
  • streamWrapper::url_stat — Lit les informations sur un fichier


Construit un nouveau gestionnaire de flux

  • « streamWrapper
  • streamWrapper::__destruct »
  • PHP Manual
  • streamWrapper
  • Construit un nouveau gestionnaire de flux

streamWrapper::__construct

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::__construct — Construit un nouveau gestionnaire de flux

Description

streamWrapper::__construct ( void )

Appelé à la création du gestionnaire de flux, juste avant streamWrapper::stream_open().

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Détruit un gestionnaire de flux existant

  • « streamWrapper::__construct
  • streamWrapper::dir_closedir »
  • PHP Manual
  • streamWrapper
  • Détruit un gestionnaire de flux existant

streamWrapper::__destruct

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::__destruct — Détruit un gestionnaire de flux existant

Description

streamWrapper::__destruct ( void )

Appelé lors de la fermeture du gestionnaire de flux, tout de suite après l'appel à la méthode streamWrapper::stream_flush().

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Ferme une ressource de dossier

  • « streamWrapper::__destruct
  • streamWrapper::dir_opendir »
  • PHP Manual
  • streamWrapper
  • Ferme une ressource de dossier

streamWrapper::dir_closedir

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::dir_closedir — Ferme une ressource de dossier

Description

public bool streamWrapper::dir_closedir ( void )

Cette méthode est appelée en réponse à la fonction closedir().

Toutes les ressources qui étaient verrouillées ou allouées, durant l'ouverture et l'utilisation du flux de dossiers, doivent être libérées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • closedir() - Ferme le pointeur sur le dossier
  • streamWrapper::dir_opendir() - Ouvre un dossier en lecture


Ouvre un dossier en lecture

  • « streamWrapper::dir_closedir
  • streamWrapper::dir_readdir »
  • PHP Manual
  • streamWrapper
  • Ouvre un dossier en lecture

streamWrapper::dir_opendir

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::dir_opendir — Ouvre un dossier en lecture

Description

public bool streamWrapper::dir_opendir ( string $path , int $options )

Cette méthode est appelée en réponse à opendir().

Liste de paramètres

path

Spécifie l'URL qui a été passée à opendir().

Note:

L'URL peut être découpée avec parse_url().

options

S'il faut appliquer le safe_mode ou pas (0x04).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • opendir() - Ouvre un dossier, et récupère un pointeur dessus
  • streamWrapper::dir_closedir() - Ferme une ressource de dossier
  • parse_url() - Analyse une URL et retourne ses composants


Lit un fichier dans un dossier

  • « streamWrapper::dir_opendir
  • streamWrapper::dir_rewinddir »
  • PHP Manual
  • streamWrapper
  • Lit un fichier dans un dossier

streamWrapper::dir_readdir

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::dir_readdir — Lit un fichier dans un dossier

Description

public string streamWrapper::dir_readdir ( void )

Cette méthode est appelée en réponse à readdir().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Doit retourner une chaîne de caractères représentant le prochain nom de fichier, ou FALSE s'i n'y a pas d'autre fichier.

Note:

La valeur retournée sera transtypée en chaîne de caractères.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Exemples

Exemple #1 Liste des fichiers d'une archive tar

<?php
class streamWrapper {
    protected $fp;

    public function dir_opendir($path, $options) {
        $url = parse_url($path);

        $path = $url["host"] . $url["path"];

        if (!is_readable($path)) {
            trigger_error("$path n'est pas lisible pour moi", E_USER_NOTICE);
            return false;
        }
        if (!is_file($path)) {
            trigger_error("$path n'est pas un fichier", E_USER_NOTICE);
            return false;
        }

        $this->fp = fopen($path, "rb");
        return true;
    }

    public function dir_readdir() {
        // Extract the header for this entry
        $header      = fread($this->fp, 512);
        $data = unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1filetype/a100link/a100linkedfile", $header);

        // Trim the filename and filesize
        $filename    = trim($data["filename"]);

        // Pas de fichier, nous sommes à la fin de l'archive
        if (!$filename) {
            return false;
        }

        $octal_bytes = trim($data["size"]);
        // Filesize is defined in octects
        $bytes       = octdec($octal_bytes);

        // tar arrondit les tailles de fichiers au multiple de 512 suivant
        $rest        = $bytes % 512;
        if ($rest > 0) {
            $bytes      += 512 - $rest;
        }

        // Lecture du fichier
        fseek($this->fp, $bytes, SEEK_CUR);

        return $filename;
    }

    public function dir_closedir() {
        return fclose($this->fp);
    }

    public function dir_rewinddir() {
        return fseek($this->fp, 0, SEEK_SET);
    }
}

stream_wrapper_register("tar", "streamWrapper");
$handle = opendir("tar://example.tar");
while (false !== ($file = readdir($handle))) {
    var_dump($file);
}

echo "Remise au début..\n";
rewind($handle);
var_dump(readdir($handle));

closedir($handle);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(13) "construct.xml"
string(16) "dir-closedir.xml"
string(15) "dir-opendir.xml"
string(15) "dir-readdir.xml"
string(17) "dir-rewinddir.xml"
string(9) "mkdir.xml"
string(10) "rename.xml"
string(9) "rmdir.xml"
string(15) "stream-cast.xml"
string(16) "stream-close.xml"
string(14) "stream-eof.xml"
string(16) "stream-flush.xml"
string(15) "stream-lock.xml"
string(15) "stream-open.xml"
string(15) "stream-read.xml"
string(15) "stream-seek.xml"
string(21) "stream-set-option.xml"
string(15) "stream-stat.xml"
string(15) "stream-tell.xml"
string(16) "stream-write.xml"
string(10) "unlink.xml"
string(12) "url-stat.xml"
Remise à zéro..
string(13) "construct.xml"

Voir aussi

  • readdir() - Lit une entrée du dossier


Remet au début une ressource de dossier

  • « streamWrapper::dir_readdir
  • streamWrapper::mkdir »
  • PHP Manual
  • streamWrapper
  • Remet au début une ressource de dossier

streamWrapper::dir_rewinddir

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::dir_rewinddir — Remet au début une ressource de dossier

Description

public bool streamWrapper::dir_rewinddir ( void )

Cette méthode est appelée en réponse à rewinddir().

Doit remettre à zéro le curseur géré par streamWrapper::dir_readdir(). i.e.: le prochain appel à streamWrapper::dir_readdir() doit retourner le premier fichier du dossier retourné par streamWrapper::dir_opendir().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • rewinddir() - Retourne à la première entrée du dossier
  • streamWrapper::dir_readdir() - Lit un fichier dans un dossier


Crée un dossier

  • « streamWrapper::dir_rewinddir
  • streamWrapper::rename »
  • PHP Manual
  • streamWrapper
  • Crée un dossier

streamWrapper::mkdir

(PHP 5, PHP 7)

streamWrapper::mkdir — Crée un dossier

Description

public bool streamWrapper::mkdir ( string $path , int $mode , int $options )

Cette méthode est appelée en réponse à mkdir().

Note:

Afin d'appeler le bon message d'erreur, cette méthode ne doit pas être définie, si le gestionnaire ne supporte pas la création des dossiers.

Liste de paramètres

path

Le dossier à créer.

mode

La valeur passée à mkdir().

options

Un champ de valeurs, telles que STREAM_MKDIR_RECURSIVE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Notes

Note:

La propriété streamWrapper::$context est mise à jour si un contexte valide est passé à la fonction.

Voir aussi

  • mkdir() - Crée un dossier
  • streamwrapper::rmdir() - Supprime un dossier


Renomme un fichier ou un dossier

  • « streamWrapper::mkdir
  • streamWrapper::rmdir »
  • PHP Manual
  • streamWrapper
  • Renomme un fichier ou un dossier

streamWrapper::rename

(PHP 5, PHP 7)

streamWrapper::rename — Renomme un fichier ou un dossier

Description

public bool streamWrapper::rename ( string $path_from , string $path_to )

Cette méthode est appelée en réponse à rename().

Doit renommer le fichier path_from en path_to

Note:

Afin d'appeler le bon message d'erreur, cette méthode ne doit pas être définie, si le gestionnaire ne supporte pas le renommage de fichiers.

Liste de paramètres

path_from

L'URL du fichier en cours.

path_to

La nouvelle URL path_from avec laquelle le fichier doit être renommé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Notes

Note:

La propriété streamWrapper::$context est mise à jour si un contexte valide est passé à la fonction.

Voir aussi

  • rename() - Renomme un fichier ou un dossier


Supprime un dossier

  • « streamWrapper::rename
  • streamWrapper::stream_cast »
  • PHP Manual
  • streamWrapper
  • Supprime un dossier

streamWrapper::rmdir

(PHP 5, PHP 7)

streamWrapper::rmdir — Supprime un dossier

Description

public bool streamWrapper::rmdir ( string $path , int $options )

Cette méthode est appelée en réponse à rmdir().

Note:

Afin d'appeler le bon message d'erreur, cette méthode ne doit pas être définie, si le gestionnaire ne supporte pas la suppression des dossiers.

Liste de paramètres

path

L'URL du dossier à effacer.

options

Un champ de bits telles que STREAM_MKDIR_RECURSIVE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Notes

Note:

La propriété streamWrapper::$context est mise à jour si un contexte valide est passé à la fonction.

Voir aussi

  • rmdir() - Efface un dossier
  • streamwrapper::mkdir() - Crée un dossier
  • streamwrapper::unlink() - Efface un fichier


Lit la ressource sous-jacente de flux

  • « streamWrapper::rmdir
  • streamWrapper::stream_close »
  • PHP Manual
  • streamWrapper
  • Lit la ressource sous-jacente de flux

streamWrapper::stream_cast

(PHP 5 >= 5.3.0, PHP 7)

streamWrapper::stream_cast — Lit la ressource sous-jacente de flux

Description

public resource streamWrapper::stream_cast ( int $cast_as )

Cette méthode est appelée en réponse à stream_select().

Liste de paramètres

cast_as

Peut être une des valeurs parmi STREAM_CAST_FOR_SELECT si stream_select() est la fonction appelante, stream_cast() ou STREAM_CAST_AS_STREAM si stream_cast() est appelée pour les autres cas.

Valeurs de retour

Doit retourner le flux sous-jacent, utilisé par le gestionnaire, et sinon FALSE.

Voir aussi

  • stream_select() - Surveille la modification d'un ou plusieurs flux


Ferme une ressource de flux

  • « streamWrapper::stream_cast
  • streamWrapper::stream_eof »
  • PHP Manual
  • streamWrapper
  • Ferme une ressource de flux

streamWrapper::stream_close

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_close — Ferme une ressource de flux

Description

public void streamWrapper::stream_close ( void )

Cette méthode est appelée en réponse à fclose().

Toutes les ressources qui étaient verrouillées, ou allouées par le gestionnaire doivent être libérées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • fclose() - Ferme un fichier
  • streamWrapper::dir_closedir() - Ferme une ressource de dossier


Tests for end-of-file on a file pointer

  • « streamWrapper::stream_close
  • streamWrapper::stream_flush »
  • PHP Manual
  • streamWrapper
  • Tests for end-of-file on a file pointer

streamWrapper::stream_eof

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_eof — Tests for end-of-file on a file pointer

Description

public bool streamWrapper::stream_eof ( void )

Cette méthode est appelée en réponse à feof().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Doit retourner TRUE si le curseur est à la fin du flux, et que plus aucune donnée n'est disponible, et FALSE sinon.

Notes

Avertissement

Lors de la lecture complète d'un fichier (par exemple, par
la fonction file_get_contents()), PHP
appellera la fonction streamWrapper::stream_read()
suivie de la fonction streamWrapper::stream_eof()
dans une boucle, mais tant que la fonction
streamWrapper::stream_read() retournera une
chaîne non vide, la valeur retournée de la fonction
streamWrapper::stream_eof() sera ignorée.

Voir aussi

  • feof() - Teste la fin du fichier


Expédie le contenu

  • « streamWrapper::stream_eof
  • streamWrapper::stream_lock »
  • PHP Manual
  • streamWrapper
  • Expédie le contenu

streamWrapper::stream_flush

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_flush — Expédie le contenu

Description

public bool streamWrapper::stream_flush ( void )

Cette méthode est appelée en réponse à fflush() et lorsque le flux est fermé alors que des données non-envoyées y ont été écrites avant.

Si vous avez mis des données en cache dans votre flux, mais que vous ne les avez pas stocké, vous devez le faire maintenant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Doit retourner TRUE si les données en cache ont pu être sauvées correctement ( ou s'il n'y avait pas de données dans le cache), ou FALSE si les données n'ont pu être stockées.

Notes

Note:

Si non implémentée, FALSE sera utilisée comme valeur de retour.

Voir aussi

  • fflush() - Envoie tout le contenu généré dans un fichier


Verrouillage logique de fichiers

  • « streamWrapper::stream_flush
  • streamWrapper::stream_metadata »
  • PHP Manual
  • streamWrapper
  • Verrouillage logique de fichiers

streamWrapper::stream_lock

(PHP 5, PHP 7)

streamWrapper::stream_lock — Verrouillage logique de fichiers

Description

public bool streamWrapper::stream_lock ( int $operation )

Cette méthode est appelée en réponse à flock(), parfois avec file_put_contents() (si l'option flags contient LOCK_EX), stream_set_blocking() et quand on ferme le flux (LOCK_UN).

Liste de paramètres

operation

operation est une des suivantes :

  • LOCK_SH pour obtenir le verrou partagé (lecture)
  • LOCK_EX pour obtenir le verrou exclusif (écriture)
  • LOCK_UN pour lire le verrou (partagé ou exclusif)
  • LOCK_NB si vous voulez que flock() bloque pour le verrouillage (non supporté sur Windows).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet un E_WARNING si l'appel à cette méthode échoue (i.e., pas implémentée).

Voir aussi

  • stream_set_blocking() - Configure le mode bloquant d'un flux
  • flock() - Verrouille le fichier


Change les metadata du flux

  • « streamWrapper::stream_lock
  • streamWrapper::stream_open »
  • PHP Manual
  • streamWrapper
  • Change les metadata du flux

streamWrapper::stream_metadata

(PHP 5 >= 5.4.0, PHP 7)

streamWrapper::stream_metadata — Change les metadata du flux

Description

public bool streamWrapper::stream_metadata ( string $path , int $option , mixed $value )

Cette méthode est appelée pour changer les métadonnées du flux. Elle est invoquée lorsque l'une des fonctions suivantes est appelée sur un flux:

  • touch()
  • chmod()
  • chown()
  • chgrp()
Veuillez noter que certaines de ces opérations peuvent ne pas être disponibles sur votre système.

Liste de paramètres

path

Le chemin du fichier ou l'URL pour laquelle changer les métadonnées. Notez que dans le cas d'une URL, elle doit utiliser le délimiteur ://, les autres formes d'URL ne sont pas supportées.

option

A choisir parmi :

  • STREAM_META_TOUCH (La méthode a été appelée suite à touch())
  • STREAM_META_OWNER_NAME (La méthode a été appelée suite à chown() avec un paramètre de type chaine)
  • STREAM_META_OWNER (La méthode a été appelée suite à chown())
  • STREAM_META_GROUP_NAME (La méthode a été appelée suite à chgrp())
  • STREAM_META_GROUP (La méthode a été appelée suite à chgrp())
  • STREAM_META_ACCESS (La méthode a été appelée suite à chmod())

value

Si option est

  • STREAM_META_TOUCH : Array consistant en deux arguments de la fonction touch().
  • STREAM_META_OWNER_NAME ou STREAM_META_GROUP_NAME: Le nom du propriétaire user/group sous forme de string.
  • STREAM_META_OWNER ou STREAM_META_GROUP: La valeur du propriétaire user/group sous forme integer.
  • STREAM_META_ACCESS : L'argument de chmod() sous forme integer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si option n'est pas implémentée, FALSE devrait être retourné.

Voir aussi

  • touch() - Modifie la date de modification et de dernier accès d'un fichier
  • chmod() - Change le mode du fichier
  • chown() - Change le propriétaire du fichier
  • chgrp() - Change le groupe d'un fichier


Opens file or URL

  • « streamWrapper::stream_metadata
  • streamWrapper::stream_read »
  • PHP Manual
  • streamWrapper
  • Opens file or URL

streamWrapper::stream_open

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_open — Opens file or URL

Description

public bool streamWrapper::stream_open ( string $path , string $mode , int $options , string &$opened_path )

Cette méthode est appelée immédiatement après l'initialisation du gestionnaire (par exemple, par fopen() et file_get_contents()).

Liste de paramètres

path

L'URL qui est passée à la fonction originale.

Note:

L'URL peut être découpée à l'aide de parse_url(). Noter que seules les URLs délimitées par :// sont supportées. : et :/, bien que techniquement valides, ne sont pas supportés.

mode

Le mode utilisée pour ouvrir le fichier, tel que documenté pour fopen().

Note:

N'oubliez pas de vérifier si mode est valide pour le chemin path demandé.

options

Contient les options supplémentaires pour le flux. Il peut contenir une ou plusieurs constantes parmi les suivantes, combinées par des OR.

Option | Description
STREAM_USE_PATH | Si path est relatif recherche la ressource en incluant l'include_path.
STREAM_REPORT_ERRORS | Si cette option est active, vous êtes responsable pour émettre une erreur, avec trigger_error() durant l'ouverture du flux. Si cette option n'est pas activée, vous ne devez pas émettre d'erreur.

opened_path

Si le chemin path est ouvert correctement, et que la constante STREAM_USE_PATH est configurée via options, alors opened_path doit contenir le chemin complet qui a été réellement ouvert.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Notes

Note:

La propriété streamWrapper::$context est mise à jour si un contexte valide est passé à la fonction.

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • parse_url() - Analyse une URL et retourne ses composants


Lit dans le flux

  • « streamWrapper::stream_open
  • streamWrapper::stream_seek »
  • PHP Manual
  • streamWrapper
  • Lit dans le flux

streamWrapper::stream_read

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_read — Lit dans le flux

Description

public string streamWrapper::stream_read ( int $count )

Cette méthode est appelée en réponse à fread() et fgets().

Note:

N'oubliez pas de modifier la position de lecture et écriture du nombre d'octets qui ont pu être lus.

Liste de paramètres

count

Le nombre d'octets qui ont pu être lus, à partir de la position courante.

Valeurs de retour

S'il y a moins que count octets disponibles, il faut en retourner autant que possible. S'il n'y a plus de données disponibles, il faut retourner FALSE ou une chaîne vide.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Note:

Si la valeur de retour est plus grande que count, une erreur E_WARNING sera émise, et les données excédentaires seront perdues.

Notes

Note:

streamWrapper::stream_eof() est appelé directement après streamWrapper::stream_read() pour vérifier si EOF a été atteint. Si la fonction n'est pas implémenté, EOF est utilisé.

Avertissement

Lors de la lecture complète d'un fichier (par exemple, par
la fonction file_get_contents()), PHP
appellera la fonction streamWrapper::stream_read()
suivie de la fonction streamWrapper::stream_eof()
dans une boucle, mais tant que la fonction
streamWrapper::stream_read() retournera une
chaîne non vide, la valeur retournée de la fonction
streamWrapper::stream_eof() sera ignorée.

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier


Place le pointeur de flux à une position

  • « streamWrapper::stream_read
  • streamWrapper::stream_set_option »
  • PHP Manual
  • streamWrapper
  • Place le pointeur de flux à une position

streamWrapper::stream_seek

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_seek — Place le pointeur de flux à une position

Description

public bool streamWrapper::stream_seek ( int $offset , int $whence = SEEK_SET )

Cette méthode est appelée en réponse à fseek().

La position de lecture/écriture doit être modifiée pour refléter la nouvelle position offset et whence.

Liste de paramètres

offset

La position à rechercher dans le flux.

whence

Les valeurs possibles sont :

  • SEEK_SET : la nouvelle position vaut offset octets.
  • SEEK_CUR : la nouvelle position vaut la position courante plus offset.
  • SEEK_END : la nouvelle position vaut la fin de fichier plus offset.

Valeurs de retour

Retourne TRUE si la position a été mise à jour, FALSE sinon.

Notes

Note:

Si elle n'est pas implémentée, FALSE sera utilisée comme valeur de retour.

Note:

En cas de succès,
streamWrapper::stream_tell() est appelée
directement après streamWrapper::stream_seek().
Si streamWrapper::stream_tell() échoue,
la valeur retournée à la fonction appelante FALSE.

Note:

Toutes les opérations de déplacement sur un flux ne nécessitent pas obligatoirement l'utilisation de cette fonction. Les flux PHP ont la lecture en mémoire tampon d'activé par défaut (voir aussi la fonction stream_set_read_buffer()) ainsi que la déplacement dans ce flux, pouvant être effectué en déplaçant le pointeur du buffer.

Voir aussi

  • fseek() - Modifie la position du pointeur de fichier


Change les options du flux

  • « streamWrapper::stream_seek
  • streamWrapper::stream_stat »
  • PHP Manual
  • streamWrapper
  • Change les options du flux

streamWrapper::stream_set_option

(PHP 5 >= 5.3.0, PHP 7)

streamWrapper::stream_set_option — Change les options du flux

Description

public bool streamWrapper::stream_set_option ( int $option , int $arg1 , int $arg2 )

Cette méthode est appelée pour modifier les options du flux.

Liste de paramètres

option

Une des constantes parmi :

  • STREAM_OPTION_BLOCKING (Cette méthode est appelée en réponse à stream_set_blocking())
  • STREAM_OPTION_READ_TIMEOUT (Cette méthode est appelée en réponse à stream_set_timeout())
  • STREAM_OPTION_WRITE_BUFFER (Cette méthode est appelée en réponse à stream_set_write_buffer())

arg1

Si option vaut

  • STREAM_OPTION_BLOCKING : mode bloquant demandé (1 signifie bloquant, 0 non-bloquant).
  • STREAM_OPTION_READ_TIMEOUT : le délai d'expiration en secondes.
  • STREAM_OPTION_WRITE_BUFFER : le mode de buffer (STREAM_BUFFER_NONE ou STREAM_BUFFER_FULL).

arg2

Si option vaut

  • STREAM_OPTION_BLOCKING : cette option n'est pas active.
  • STREAM_OPTION_READ_TIMEOUT : le délai d'expiration en microsecondes.
  • STREAM_OPTION_WRITE_BUFFER : la taille du buffer demandé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si option n'est pas implémentée, FALSE doit être retourné.

Voir aussi

  • stream_set_blocking() - Configure le mode bloquant d'un flux
  • stream_set_timeout() - Configure la durée d'expiration d'un flux
  • stream_set_write_buffer() - Configure le buffer d'écriture d'un flux


Lit les informations sur une ressource de fichier

  • « streamWrapper::stream_set_option
  • streamWrapper::stream_tell »
  • PHP Manual
  • streamWrapper
  • Lit les informations sur une ressource de fichier

streamWrapper::stream_stat

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_stat — Lit les informations sur une ressource de fichier

Description

public array streamWrapper::stream_stat ( void )

Cette méthode est appelée en réponse à fstat().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir stat().

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Voir aussi

  • stat() - Renvoie les informations à propos d'un fichier
  • streamwrapper::url_stat() - Lit les informations sur un fichier


Lit la position courante dans un flux

  • « streamWrapper::stream_stat
  • streamWrapper::stream_truncate »
  • PHP Manual
  • streamWrapper
  • Lit la position courante dans un flux

streamWrapper::stream_tell

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_tell — Lit la position courante dans un flux

Description

public int streamWrapper::stream_tell ( void )

Cette méthode est appelée en réponse à ftell() pour déterminer la position courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Doit retourner la position courante dans le flux.

Voir aussi

  • streamWrapper::stream_tell()


Tronque un flux

  • « streamWrapper::stream_tell
  • streamWrapper::stream_write »
  • PHP Manual
  • streamWrapper
  • Tronque un flux

streamWrapper::stream_truncate

(PHP 5 >= 5.4.0, PHP 7)

streamWrapper::stream_truncate — Tronque un flux

Description

public bool streamWrapper::stream_truncate ( int $new_size )

Répondra à une opération de tronquature effectuée au moyen de ftruncate().

Liste de paramètres

new_size

La nouvelle taille.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ftruncate() - Tronque un fichier


Écrit dans un flux

  • « streamWrapper::stream_truncate
  • streamWrapper::unlink »
  • PHP Manual
  • streamWrapper
  • Écrit dans un flux

streamWrapper::stream_write

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_write — Écrit dans un flux

Description

public int streamWrapper::stream_write ( string $data )

Cette méthode est appelée en réponse à fwrite().

Note:

N'oubliez pas de mettre à jour la position courante dans le flux, du nombre d'octets qui ont pu être lu.

Liste de paramètres

data

Les données qui doivent être stockées dans le flux sous-jacent.

Note:

S'il n'y a pas de place dans le stockage, il faut en stocker autant que possible.

Valeurs de retour

Doit retourner le nombre d'octets qui ont pu être stockés correctement, et 0 si aucun n'a pu être stocké.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Note:

Si la valeur de retour est plus grand que la taille de data, une alerte E_WARNING sera émise, et la valeur retournée sera tronquée à sa longueur.

Voir aussi

  • fwrite() - Écrit un fichier en mode binaire


Efface un fichier

  • « streamWrapper::stream_write
  • streamWrapper::url_stat »
  • PHP Manual
  • streamWrapper
  • Efface un fichier

streamWrapper::unlink

(PHP 5, PHP 7)

streamWrapper::unlink — Efface un fichier

Description

public bool streamWrapper::unlink ( string $path )

Cette méthode est appelé en réponse à unlink().

Note:

Afin que le message d'erreur approprié soit retourné, cette méthode doit NE PAS être définie, si le flux ne supporte pas l'effacement de fichiers.

Liste de paramètres

path

L'URL du fichier qui doit être effacé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Notes

Note:

La propriété streamWrapper::$context est mise à jour si un contexte valide est passé à la fonction.

Voir aussi

  • unlink() - Efface un fichier
  • streamWrapper::rmdir() - Supprime un dossier


Lit les informations sur un fichier

  • « streamWrapper::unlink
  • Fonctions sur les flux »
  • PHP Manual
  • streamWrapper
  • Lit les informations sur un fichier

streamWrapper::url_stat

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::url_stat — Lit les informations sur un fichier

Description

public array streamWrapper::url_stat ( string $path , int $flags )

Cette méthode est appelée en réponse à toutes les fonctions liées à stat(), telles que :

  • chmod() (uniquement quand safe_mode est activé)
  • copy()
  • fileperms()
  • fileinode()
  • filesize()
  • fileowner()
  • filegroup()
  • fileatime()
  • filemtime()
  • filectime()
  • filetype()
  • is_writable()
  • is_readable()
  • is_executable()
  • is_file()
  • is_dir()
  • is_link()
  • file_exists()
  • lstat()
  • stat()
  • SplFileInfo::getPerms()
  • SplFileInfo::getInode()
  • SplFileInfo::getSize()
  • SplFileInfo::getOwner()
  • SplFileInfo::getGroup()
  • SplFileInfo::getATime()
  • SplFileInfo::getMTime()
  • SplFileInfo::getCTime()
  • SplFileInfo::getType()
  • SplFileInfo::isWritable()
  • SplFileInfo::isReadable()
  • SplFileInfo::isExecutable()
  • SplFileInfo::isFile()
  • SplFileInfo::isDir()
  • SplFileInfo::isLink()
  • RecursiveDirectoryIterator::hasChildren()

Liste de paramètres

path

Le chemin du fichier ou l'URL à analyser. Noter que dans le cas des URLs, elles doivent être délimitées par ://. Tout autre format n'est pas supporté.

flags

Les options supplémentaires activées par l'API des flux. Elle peut contenir une ou plusieurs constantes des constantes suivantes, combinées par OR :

Option | Description
STREAM_URL_STAT_LINK | Pour les ressources qui ont la capacité de se lier à d'autres ressources (comme une redirection HTTP ou bien un lien symbolique). Cette option indique que les informations lues doivent concerner le lien lui-même, et non pas la ressource pointée par le lien. Cette option est activée en réponse à un appel à lstat(), is_link() ou filetype().
STREAM_URL_STAT_QUIET | Si cette option est activée, votre gestionnaire ne doit pas émettre d'erreurs. Si cette option n'est pas activée, vous êtes responsables du rapport d'erreur, en appelant la fonction trigger_error() durant l'analyse du chemin.

Valeurs de retour

Doit retourne autant d'éléments que stat() retourne. Les valeurs inconnues ou indisponibles doivent prendre une valeur raisonnable (généralement, 0).

Erreurs / Exceptions

Émet une alerte E_WARNING si l'appel à cette méthode échoue (i.e. pas implémenté).

Notes

Note:

La propriété streamWrapper::$context est mise à jour si un contexte valide est passé à la fonction.

Voir aussi

  • stat() - Renvoie les informations à propos d'un fichier
  • streamwrapper::stream_stat() - Lit les informations sur une ressource de fichier


Fonctions sur les flux

Sommaire

  • set_socket_blocking — Alias de stream_set_blocking
  • stream_bucket_append — Ajoute un compartiment au corps
  • stream_bucket_make_writeable — Retourne un objet de compartiment depuis le corps pour des opérations sur celui-ci
  • stream_bucket_new — Crée un nouveau compartiment pour l'utiliser sur le flux courant
  • stream_bucket_prepend — Ajout initial d'un bucket dans une brigade
  • stream_context_create — Crée un contexte de flux
  • stream_context_get_default — Lit le contexte par défaut des flux
  • stream_context_get_options — Lit la valeur des options pour un flux/gestionnaire/contexte
  • stream_context_get_params — Lit les paramètres d'un contexte
  • stream_context_set_default — Configure le contexte par défaut des flux
  • stream_context_set_option — Configure une option pour un flux/gestionnaire/contexte
  • stream_context_set_params — Configure les paramètres pour un flux/gestionnaire/contexte
  • stream_copy_to_stream — Copie des données depuis un flux vers un autre
  • stream_encoding — Définit le jeu de caractères pour l'encodage du flux
  • stream_filter_append — Attache un filtre à un flux en fin de liste
  • stream_filter_prepend — Attache un filtre à un flux en début de liste
  • stream_filter_register — Enregistre un filtre de flux
  • stream_filter_remove — Retire un filtre d'un flux
  • stream_get_contents — Lit tout un flux dans une chaîne
  • stream_get_filters — Liste les filtres enregistrés
  • stream_get_line — Lit une ligne dans un flux
  • stream_get_meta_data — Lit les en-têtes et données méta des flux
  • stream_get_transports — Liste les gestionnaires de transports de sockets disponibles
  • stream_get_wrappers — Liste les gestionnaires de flux
  • stream_is_local — Vérifie si un flux est local
  • stream_notification_callback — Une fonction de rappel pour le paramètre de contexte notification
  • stream_register_wrapper — Alias de stream_wrapper_register
  • stream_resolve_include_path — Résout un nom de fichier suivant les règles du chemin d'inclusion
  • stream_select — Surveille la modification d'un ou plusieurs flux
  • stream_set_blocking — Configure le mode bloquant d'un flux
  • stream_set_chunk_size — Change la taille du segment du flux
  • stream_set_read_buffer — Configure le buffer de lecture d'un flux
  • stream_set_timeout — Configure la durée d'expiration d'un flux
  • stream_set_write_buffer — Configure le buffer d'écriture d'un flux
  • stream_socket_accept — Accepte une connexion sur un socket créé par stream_socket_server
  • stream_socket_client — Ouvre une connexion socket Internet ou Unix
  • stream_socket_enable_crypto — Active ou non le chiffrement, pour un socket déjà connecté
  • stream_socket_get_name — Lit le nom de la socket locale ou distante
  • stream_socket_pair — Crée une paire de sockets connectées et indissociables
  • stream_socket_recvfrom — Lit des données depuis un socket, connecté ou pas
  • stream_socket_sendto — Envoie un message au socket, connecté ou pas
  • stream_socket_server — Crée un socket serveur Unix ou Internet
  • stream_socket_shutdown — Arrête une connexion full-duplex
  • stream_supports_lock — Indique si le flux supporte les verrous
  • stream_wrapper_register — Enregistre un gestionnaire d'URL
  • stream_wrapper_restore — Restaure un gestionnaire d'URL supprimé
  • stream_wrapper_unregister — Supprime un gestionnaire d'URL


Alias de stream_set_blocking

  • « Fonctions sur les flux
  • stream_bucket_append »
  • PHP Manual
  • Fonctions sur les flux
  • Alias de stream_set_blocking

set_socket_blocking

(PHP 4, PHP 5)

set_socket_blocking — Alias de stream_set_blocking()

Avertissement

Cette alias était obsolète depuis PHP 5.3.0 et a été supprimé depuis PHP 7.0.0.

Description

Cette fonction est un alias de : stream_set_blocking()

Avertissement

Cette alias était obsolète depuis PHP 5.3.0 et a été supprimé depuis PHP 7.0.0.


Ajoute un compartiment au corps

  • « set_socket_blocking
  • stream_bucket_make_writeable »
  • PHP Manual
  • Fonctions sur les flux
  • Ajoute un compartiment au corps

stream_bucket_append

(PHP 5, PHP 7)

stream_bucket_append — Ajoute un compartiment au corps

Description

void stream_bucket_append ( resource $brigade , object $bucket )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne un objet de compartiment depuis le corps pour des opérations sur celui-ci

  • « stream_bucket_append
  • stream_bucket_new »
  • PHP Manual
  • Fonctions sur les flux
  • Retourne un objet de compartiment depuis le corps pour des opérations sur celui-ci

stream_bucket_make_writeable

(PHP 5, PHP 7)

stream_bucket_make_writeable — Retourne un objet de compartiment depuis le corps pour des opérations sur celui-ci

Description

object stream_bucket_make_writeable ( resource $brigade )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Crée un nouveau compartiment pour l'utiliser sur le flux courant

  • « stream_bucket_make_writeable
  • stream_bucket_prepend »
  • PHP Manual
  • Fonctions sur les flux
  • Crée un nouveau compartiment pour l'utiliser sur le flux courant

stream_bucket_new

(PHP 5, PHP 7)

stream_bucket_new — Crée un nouveau compartiment pour l'utiliser sur le flux courant

Description

object stream_bucket_new ( resource $stream , string $buffer )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Ajout initial d'un bucket dans une brigade

  • « stream_bucket_new
  • stream_context_create »
  • PHP Manual
  • Fonctions sur les flux
  • Ajout initial d'un bucket dans une brigade

stream_bucket_prepend

(PHP 5, PHP 7)

stream_bucket_prepend — Ajout initial d'un bucket dans une brigade

Description

void stream_bucket_prepend ( resource $brigade , object $bucket )

Cette fonction peut être appelée pour ajouter un bucket dans une bucket brigade. Elle est typiquement appelée depuis la méthode php_user_filter::filter().

Liste de paramètres

brigade

brigade est une ressource pointant vers une bucket brigade qui contient un ou plusieurs objets bucket.

bucket

Un objet bucket.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec stream_bucket_prepend()

<?php

class foo extends php_user_filter {
  protected $calls = 0;
  public function filter($in, $out, &$consumed, $closing) {
    while ($bucket = stream_bucket_make_writeable($in)) {
      $consumed += $bucket->datalen;
      if ($this->calls++ == 2) {
        // Ce bucket va apparaître avant tout autre bucket.
        stream_bucket_prepend($in, $bucket);
      }
    }
    return PSFS_FEED_ME;
  }
}
stream_filter_register('test', 'foo');
print  file_get_contents('php://filter/read=test/resource=foo');
?>


Crée un contexte de flux

  • « stream_bucket_prepend
  • stream_context_get_default »
  • PHP Manual
  • Fonctions sur les flux
  • Crée un contexte de flux

stream_context_create

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_context_create — Crée un contexte de flux

Description

resource stream_context_create ([ array $options [, array $params ]] )

Crée et retourne un contexte de flux, avec les paramètres fournis par options.

Liste de paramètres

options

Doit être un tableau associatif, au format $arr['wrapper']['option'] = $value. Référez-vous aux options de contexte pour une liste des wrappers et des options disponibles.

Par défaut, c'est un tableau vide.

params

Doit être un tableau associatif de format $arr['parameter'] = $value. Référez-vous à la documentation sur les paramètres de contexte pour une liste des paramètres de flux standards.

Valeurs de retour

Une ressource représentant le contexte du flux.

Historique

Version | Description
5.3.0 | Ajout de l'argument optionnel params.

Exemples

Exemple #1 Exemple avec stream_context_create()

<?php
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

/* Envoi une requête HTTP vers www.example.com
   avec les en-têtes additionnels ci-dessus */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>

Voir aussi

  • stream_context_set_option() - Configure une option pour un flux/gestionnaire/contexte
  • La liste des gestionnaires (Liste des protocoles et des gestionnaires supportés)
  • Les options de contexte (Options et paramètres de contexte)


Lit le contexte par défaut des flux

  • « stream_context_create
  • stream_context_get_options »
  • PHP Manual
  • Fonctions sur les flux
  • Lit le contexte par défaut des flux

stream_context_get_default

(PHP 5 >= 5.1.0, PHP 7)

stream_context_get_default — Lit le contexte par défaut des flux

Description

resource stream_context_get_default ([ array $options ] )

stream_context_get_default() retourne le contexte par défaut qui est utilisé avec les fonctions de fichiers comme fopen(), file_get_contents(), etc, lorsqu'elles sont utilisées sans paramètre de contexte. Les options du contexte par défaut peuvent être spécifiées optionnellement avec la même syntaxe que pour stream_context_create().

Liste de paramètres

options
options doit être un tableau associatif de tableaux associatifs, au format $arr['wrapper']['option'] = $value.

Note:

Depuis PHP 5.3.0, la fonction stream_context_set_default() peut être utilisée pour configurer le contexte par défaut.

Valeurs de retour

Une resource de contexte de flux.

Exemples

Exemple #1 Exemple avec stream_context_get_default()

<?php
$default_opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar",
    'proxy'=>"tcp://10.54.1.39:8000"
  )
);

$alternate_opts = array(
  'http'=>array(
    'method'=>"POST",
    'header'=>"Content-type: application/x-www-form-urlencoded\r\n" .
              "Content-length: " . strlen("baz=bomb"),
    'content'=>"baz=bomb"
  )
);

$default = stream_context_get_default($default_opts);
$alternate = stream_context_create($alternate_opts);

/* Envoie une requête GET classique à un serveur proxy 10.54.1.39
 * vers www.example.com, en utilisant les options de contexte spécifiées
 * dans $default_opts
 */
readfile('http://www.example.com');

/* Envoie une requête POST directement à www.example.com
 * Utilise les options de contexte de $alternate_opts
 */
readfile('http://www.example.com', false, $alternate);

?>

Voir aussi

  • stream_context_create() - Crée un contexte de flux
  • Liste des gestionnaires supportés avec les options de contexte (Liste des protocoles et des gestionnaires supportés).


Lit la valeur des options pour un flux/gestionnaire/contexte

  • « stream_context_get_default
  • stream_context_get_params »
  • PHP Manual
  • Fonctions sur les flux
  • Lit la valeur des options pour un flux/gestionnaire/contexte

stream_context_get_options

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_context_get_options — Lit la valeur des options pour un flux/gestionnaire/contexte

Description

array stream_context_get_options ( resource $stream_or_context )

stream_context_get_options() retourne un tableau contenant la liste des options pour le flux ou le contexte stream_or_context.

Liste de paramètres

stream_or_context

Le stream ou context dont il faut lire les options.

Valeurs de retour

Retourne un tableau associatif contenant les options.

Exemples

Exemple #1 Exemple avec stream_context_get_options()

<?php
$params = array("method" => "POST");

stream_context_set_default(array("http" => $params));

var_dump(stream_context_get_options(stream_context_get_default()));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  ["http"]=>
  array(1) {
    ["method"]=>
    string(4) "POST"
  }
}


Lit les paramètres d'un contexte

  • « stream_context_get_options
  • stream_context_set_default »
  • PHP Manual
  • Fonctions sur les flux
  • Lit les paramètres d'un contexte

stream_context_get_params

(PHP 5 >= 5.3.0, PHP 7)

stream_context_get_params — Lit les paramètres d'un contexte

Description

array stream_context_get_params ( resource $stream_or_context )

stream_context_get_params() lit les paramètres du contexte ou du flux stream_or_context.

Liste de paramètres

stream_or_context

Une ressource de flux ou de contexte.

Valeurs de retour

Retourne un tableau associatif contenant les options de contexte et leur valeur.

Exemples

Exemple #1 Exemple avec stream_context_get_params()

Exemple simple.

<?php
$ctx = stream_context_create();
$params = array("notification" => "stream_notification_callback");
stream_context_set_params($ctx, $params);

var_dump(stream_context_get_params($ctx));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["notification"]=>
  string(28) "stream_notification_callback"
  ["options"]=>
  array(0) {
  }
}

Voir aussi

  • stream_context_set_option() - Configure une option pour un flux/gestionnaire/contexte
  • stream_context_get_params()
  • stream_context_set_params() - Configure les paramètres pour un flux/gestionnaire/contexte


Configure le contexte par défaut des flux

  • « stream_context_get_params
  • stream_context_set_option »
  • PHP Manual
  • Fonctions sur les flux
  • Configure le contexte par défaut des flux

stream_context_set_default

(PHP 5 >= 5.3.0, PHP 7)

stream_context_set_default — Configure le contexte par défaut des flux

Description

resource stream_context_set_default ( array $options )

Configure le contexte par défaut des flux qui sera utilisé à chaque fois qu'un fichier sera manipulé (fopen(), file_get_contents(), etc...) sans paramètre de contexte. Il utilise la même syntaxe que stream_context_create().

Liste de paramètres

options

Les options à configurer pour le contexte par défaut.

Note:

options doit être un tableau associatif de tableaux associatifs, au format $arr['gestionnaire']['option'] = $valeur.

Valeurs de retour

Retourne le contexte de flux par défaut.

Exemples

Exemple #1 Exemple avec stream_context_set_default()

<?php
$default_opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar",
    'proxy'=>"tcp://10.54.1.39:8000"
  )
);

$default = stream_context_set_default($default_opts);

/* Envoie une requête GET au serveur de proxy 10.54.1.39
 * pour www.example.com, en utilisant les options de contexte spécifiées dans $default_opts
 */
readfile('http://www.example.com');
?>

Voir aussi

  • stream_context_create() - Crée un contexte de flux
  • stream_context_get_default() - Lit le contexte par défaut des flux
  • Liste des gestionnaires de flux avec leurs options de contexte (Liste des protocoles et des gestionnaires supportés).


Configure une option pour un flux/gestionnaire/contexte

  • « stream_context_set_default
  • stream_context_set_params »
  • PHP Manual
  • Fonctions sur les flux
  • Configure une option pour un flux/gestionnaire/contexte

stream_context_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_context_set_option — Configure une option pour un flux/gestionnaire/contexte

Description

bool stream_context_set_option ( resource $stream_or_context , string $wrapper , string $option , mixed $value )
bool stream_context_set_option ( resource $stream_or_context , array $options )

stream_context_set_option() définit une option pour le contexte spécifié. La valeur value est définie pour l'option pour le contexte wrapper.

Liste de paramètres

stream_or_context

Le flux ou la ressource de contexte sur lequel on applique l'option.

options

L'option à définir au contexte par défaut.

Note:

Le paramètre options doit être un tableau associatif de tableaux associatifs, au format $arr['wrapper']['option'] = $value.

Voyez la section sur les contextes pour connaître la liste des paramètres standard de flux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure les paramètres pour un flux/gestionnaire/contexte

  • « stream_context_set_option
  • stream_copy_to_stream »
  • PHP Manual
  • Fonctions sur les flux
  • Configure les paramètres pour un flux/gestionnaire/contexte

stream_context_set_params

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_context_set_params — Configure les paramètres pour un flux/gestionnaire/contexte

Description

bool stream_context_set_params ( resource $stream_or_context , array $params )

stream_context_set_params() définit les paramètres pour le contexte spécifié.

Liste de paramètres

stream_or_context

Le flux ou le contexte sur lequel on applique les paramètres.

params

Un tableau de paramètres à définir.

Note:

Le paramètre params doit être un tableau associatif, au format : $params['paramname'] = "paramvalue";.

Paramètres supportés

Paramètres | Usage
notification | Nom de la fonction utilisateur appelée dès qu'un flux génère une notification.
options | Un tableau d'option, comme pour les options et parametres de contexte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • stream_notification_callback() - Une fonction de rappel pour le paramètre de contexte notification


Copie des données depuis un flux vers un autre

  • « stream_context_set_params
  • stream_encoding »
  • PHP Manual
  • Fonctions sur les flux
  • Copie des données depuis un flux vers un autre

stream_copy_to_stream

(PHP 5, PHP 7)

stream_copy_to_stream — Copie des données depuis un flux vers un autre

Description

int stream_copy_to_stream ( resource $source , resource $dest [, int $maxlength = -1 [, int $offset = 0 ]] )

Fait une copie jusqu'à maxlength octets de données depuis la position courante du pointeur (ou depuis la position offset, si spécifié) dans le flux source vers le paramètre dest. Si maxlength n'est pas spécifié, tout le reste du flux source sera copié.

Liste de paramètres

source

Le flux de source

dest

Le flux de destination

maxlength

Nombre maximal d'octets à copier

offset

L'offset où démarrer la copie de données

Valeurs de retour

Retourne le nombre total d'octets copiés, ou FALSE si une erreur survient.

Historique

Version | Description
5.1.0 | Ajout du paramètre offset

Exemples

Exemple #1 Exemple avec stream_copy_to_stream()

<?php
$src = fopen('http://www.example.com', 'r');
$dest1 = fopen('first1k.txt', 'w');
$dest2 = fopen('remainder.txt', 'w');

echo stream_copy_to_stream($src, $dest1, 1024) . " octets copiés vers first1k.txt\n";
echo stream_copy_to_stream($src, $dest2) . " octets copiés vers remainder.txt\n";

?>

Voir aussi

  • copy() - Copie un fichier


Définit le jeu de caractères pour l'encodage du flux

  • « stream_copy_to_stream
  • stream_filter_append »
  • PHP Manual
  • Fonctions sur les flux
  • Définit le jeu de caractères pour l'encodage du flux

stream_encoding

(No version information available, might only be in Git)

stream_encoding — Définit le jeu de caractères pour l'encodage du flux

Description

bool stream_encoding ( resource $stream [, string $encoding ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Attache un filtre à un flux en fin de liste

  • « stream_encoding
  • stream_filter_prepend »
  • PHP Manual
  • Fonctions sur les flux
  • Attache un filtre à un flux en fin de liste

stream_filter_append

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_filter_append — Attache un filtre à un flux en fin de liste

Description

resource stream_filter_append ( resource $stream , string $filtername [, int $read_write [, mixed $params ]] )

stream_filter_append() ajoute le filtre filtername à la liste de filtres attachés au flux stream.

Liste de paramètres

stream

Le flux cible.

filtername

Le nom du filtre.

read_write

Par défaut, stream_filter_append() va ajouter le filtre à la liste de filtres de lecture si le fichier a été ouvert en mode lecture (r et/ou +). Le filtre sera aussi attaché à la liste des filtres de lecture si le fichier a été ouvert en mode lecture (w, a et/ou +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, et/ou STREAM_FILTER_ALL peuvent aussi être utilisées dans le paramètre read_write pour contrôler ce comportement.

params

Ce filtre sera ajouté avec les paramètres params à la fin de la liste des filtres, et sera ainsi appelé à la fin des opérations de filtres. Pour ajouter un filtre au début de la liste, utilisez la fonction stream_filter_prepend().

Valeurs de retour

Retourne une ressource en cas de succès, ou FALSE si une erreur survient. La ressource peut être utilisée pour se référer à l'instance de ce filtre lors d'un appel à la fonction stream_filter_remove().

FALSE est retourné si stream n'est pas une ressource ou si filtername ne peut être atteint.

Historique

Version | Description
5.1.0 | Avant PHP 5.1.0, cette fonction retournait TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Contrôler l'application des filtres

<?php
// Ouverture d'un fichier de test en lecture/écriture
$fp = fopen('test.txt', 'w+');

/* On applique le filtre ROT13 au flux d'écriture, mais pas à
 * celui de lecture */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

/* On ajoute un simple chaîne dans le fichier, il sera
 * transformé par ROT13 à l'écriture */
fwrite($fp, "Ceci est un test\n");

/* On revient au début du fichier */
rewind($fp);

/* On lit le contenu du fichier.
 * Si on appliquait le filtre ROT13 nous aurions la
 * chaîne dans son étât d'origine */
fpassthru($fp);

fclose($fp);

/* Résultat attendu
   ----------------

Guvf vf n grfg

*/
?>

Notes

Note: Quand vous utilisez des filtres personnalisés
stream_register_filter() doit être appelée avant stream_filter_append() pour enregistrer le filtre sous le nom de filtername.

Note: Les données du flux (locales et distantes) sont retournées en morceaux, les données non acheminées étant conservées dans le tampon interne. Lorsqu'un nouveau filtre est ajouté à la fin du flux, les données dans le tampon interne sont passées dans le nouveau filtre à ce moment-là. Ceci est différent du comportement de stream_filter_prepend().

Note: Quand un filtre est ajouté pour la lecture et l'écriture, deux instances du filtres sont créées. stream_filter_prepend() doit être appelée deux fois avec STREAM_FILTER_READ et STREAM_FILTER_WRITE pour obtenir les ressources de filtres.

Voir aussi

  • stream_filter_register() - Enregistre un filtre de flux
  • stream_filter_prepend() - Attache un filtre à un flux en début de liste
  • stream_get_filters() - Liste les filtres enregistrés


Attache un filtre à un flux en début de liste

  • « stream_filter_append
  • stream_filter_register »
  • PHP Manual
  • Fonctions sur les flux
  • Attache un filtre à un flux en début de liste

stream_filter_prepend

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_filter_prepend — Attache un filtre à un flux en début de liste

Description

resource stream_filter_prepend ( resource $stream , string $filtername [, int $read_write [, mixed $params ]] )

stream_filter_prepend() ajoute le filtre filtername à la liste de filtres attachés au flux stream.

Liste de paramètres

stream

Le flux cible.

filtername

Le nom du filtre.

read_write

Par défaut, stream_filter_prepend() va attacher le filtre à la chaîne de filtre de lectures si le fichier a été ouvert en lecture (i.e. mode r, et/ou +). Le filtre va aussi être attaché à la chaîne de filtres d'écriture si le fichier a été ouvert en écriture (i.e. mode w, a, et/ou +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, et/ou STREAM_FILTER_ALL peuvent aussi être passés dans le paramètre read_write pour imposer le comportement désiré. Voyez stream_filter_append() pour un exemple d'utilisation de ce paramètre.

params

Le filtre sera ajouté avec les paramètres spécifiés dans params, au début de la liste, et sera ainsi appelé en premier dans les opérations du flux. Pour ajouter un filtre à la fin de la liste, utilisez stream_filter_append().

Valeurs de retour

Retourne une ressource en cas de succès, ou FALSE si une erreur survient. La ressource peut être utilisée pour se référer à cette instance de filtre pendant un appel à la fonction stream_filter_remove().

FALSE est retourné si stream n'est pas une ressource, ou si filtername ne peut être atteint.

Historique

Version | Description
5.1.0 | Avant PHP 5.1.0, cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Quand vous utilisez des filtres personnalisés
stream_register_filter() doit être appelée avant stream_filter_prepend() pour enregistrer le filtre sous le nom de filtername.

Note: Les données du flux (locales et distantes) sont retournées en morceaux, les données non acheminées étant conservées dans le tampon interne. Lorsqu'un nouveau filtre est ajouté au début du flux, les données dans le tampon interne ne sont pas passées dans le nouveau filtre à ce moment là. Ceci est différent du comportement de stream_filter_append().

Note: Quand un filtre est ajouté pour la lecture et l'écriture, deux instances du filtres sont créées. stream_filter_prepend() doit être appelée deux fois avec STREAM_FILTER_READ et STREAM_FILTER_WRITE pour obtenir les ressources de filtres.

Voir aussi

  • stream_filter_register() - Enregistre un filtre de flux
  • stream_filter_append() - Attache un filtre à un flux en fin de liste


Enregistre un filtre de flux

  • « stream_filter_prepend
  • stream_filter_remove »
  • PHP Manual
  • Fonctions sur les flux
  • Enregistre un filtre de flux

stream_filter_register

(PHP 5, PHP 7)

stream_filter_register — Enregistre un filtre de flux

Description

bool stream_filter_register ( string $filtername , string $classname )

stream_filter_register() vous permet d'implémenter votre propre filtre de flux, à utiliser avec les fonctions d'accès aux données externes (comme fopen(), fread(), etc.).

Liste de paramètres

filtername

Le nom du filtre à enregistrer.

classname

Pour créer une classe de filtre, vous devez définir une classe qui étend la classe php_user_filter. Lorsque vous réalisez des opérations de lecture et d'écriture dans le flux auquel votre filtre est attaché, PHP passera les données à travers votre filtre (et tous les autres filtres attachés), de façon à ce que les données soient modifiées tel que désiré. Vous devez implémenter les méthodes tel que décrit dans php_user_filter, sous peine de comportements indéfinis.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

stream_filter_register() doit toujours retourner FALSE si le paramètre filtername est déjà défini.

Exemples

Exemple #1 Filtre sur les lettres majuscules sur le flux foo-bar.txt

L'exemple ci-dessous implémente un filtre appelé strtoupper, sur le flux foo-bar.txt, qui passe en majuscule toutes les lettres écrites/lues depuis ce flux.

<?php

/* Définition de la classe */
class strtoupper_filter extends php_user_filter {
  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      $bucket->data = strtoupper($bucket->data);
      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }
}

/* Enregistrement de notre filtre avec PHP */
stream_filter_register("strtoupper", "strtoupper_filter")
    or die("Erreur lors de l'enregistrement du filtre");

$fp = fopen("foo-bar.txt", "w");

/* Attachement du filtre enregistré au flux que l'on vient d'ouvrir */
stream_filter_append($fp, "strtoupper");

fwrite($fp, "Ligne1\n");
fwrite($fp, "Mot - 2\n");
fwrite($fp, "Facile comme 123\n");

fclose($fp);

/* Lecture du contenu
 */
readfile("foo-bar.txt");

?>

L'exemple ci-dessus va afficher :

LIGNE1
MOT - 2
FACILE COMME 123

Exemple #2 Enregistrement d'une classe de filtre générique pour correspondre avec de multiples noms de filtres

<?php

/* Définition de la classe*/
class string_filter extends php_user_filter {
  var $mode;

  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      if ($this->mode == 1) {
        $bucket->data = strtoupper($bucket->data);
      } elseif ($this->mode == 0) {
        $bucket->data = strtolower($bucket->data);
      }

      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }

  function onCreate()
  {
    if ($this->filtername == 'str.toupper') {
      $this->mode = 1;
    } elseif ($this->filtername == 'str.tolower') {
      $this->mode = 0;
    } else {
      /* Quelques autres filtres str.* sont demandés,
          traitement de l'erreur avec PHP */
      return false;
    }

    return true;
  }
}

/* Enregistrement de notre filtre avec PHP */
stream_filter_register("str.*", "string_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attachement du filtre enregistré au flux que l'on vient d'ouvrir
    Nous pouvons alternativement passer à str.tolower ici */
stream_filter_append($fp, "str.toupper");

fwrite($fp, "Ligne1\n");
fwrite($fp, "Mot - 2\n");
fwrite($fp, "Facile comme 123\n");

fclose($fp);

/* Lecture du contenu
 */
readfile("foo-bar.txt");

?>

L'exemple ci-dessus va afficher :

LINE1
MOT - 2
FACILE COMME 123

Voir aussi

  • stream_wrapper_register() - Enregistre un gestionnaire d'URL
  • stream_filter_append() - Attache un filtre à un flux en fin de liste
  • stream_filter_prepend() - Attache un filtre à un flux en début de liste


Retire un filtre d'un flux

  • « stream_filter_register
  • stream_get_contents »
  • PHP Manual
  • Fonctions sur les flux
  • Retire un filtre d'un flux

stream_filter_remove

(PHP 5 >= 5.1.0, PHP 7)

stream_filter_remove — Retire un filtre d'un flux

Description

bool stream_filter_remove ( resource $stream_filter )

stream_filter_remove() retire un filtre d'un flux,
précédemment ajouté avec stream_filter_prepend() ou
stream_filter_append(). Toutes les données qui restent
dans les buffer internes seront traitées par le filtre,
avant que ce dernier ne soit supprimé.

Liste de paramètres

stream_filter

Le filtre de flux à supprimer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Refiltrage dynamique d'un flux

<?php
/* Ouverture d'un fichier de tests pour l'écriture et la lecture */
$fp = fopen("test.txt", "rw");

$rot13_filter = stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
fwrite($fp, "Ceci est ");
stream_filter_remove($rot13_filter);
fwrite($fp, "un test\n");

rewind($fp);
fpassthru($fp);
fclose($fp);

?>

L'exemple ci-dessus va afficher :

Prpv rfg un test

Voir aussi

  • stream_filter_register() - Enregistre un filtre de flux
  • stream_filter_append() - Attache un filtre à un flux en fin de liste
  • stream_filter_prepend() - Attache un filtre à un flux en début de liste


Lit tout un flux dans une chaîne

  • « stream_filter_remove
  • stream_get_filters »
  • PHP Manual
  • Fonctions sur les flux
  • Lit tout un flux dans une chaîne

stream_get_contents

(PHP 5, PHP 7)

stream_get_contents — Lit tout un flux dans une chaîne

Description

string stream_get_contents ( resource $handle [, int $maxlength = -1 [, int $offset = -1 ]] )

stream_get_contents() est identique à file_get_contents(), sauf qu'elle opère sur un pointeur de fichier déjà ouvert et retourne le contenu restant, allant jusqu'à maxlength octets, dans une chaîne et commençant à la position offset.

Liste de paramètres

handle (resource)

Une ressource de flux (e.g. retournée par la fonction fopen())

maxlength (entier)

Le nombre maximal d'octets à lire. Par défaut, -1 (lit tout le contenu restant du buffer).

offset (entier)

Se déplace à la position spécifiée avant la lecture. Si le nombre passé est négatif, aucun déplacement ne sera effectué et la lecture commencera de la position courante.

Valeurs de retour

Retourne une chaîne de caractères ou FALSE si une erreur survient.

Historique

Version | Description
5.1.0 | Le paramètre offset a été ajouté.

Exemples

Exemple #1 Exemple avec stream_get_contents()

<?php

if ($stream = fopen('http://www.example.com', 'r')) {
    // affiche toute la page, en commençant à la position 10
    echo stream_get_contents($stream, -1, 10);

    fclose($stream);
}

if ($stream = fopen('http://www.exemple.net', 'r')) {
    // Affichage des 5 premiers octets
    echo stream_get_contents($stream, 5);

    fclose($stream);
}

?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fread() - Lecture du fichier en mode binaire
  • fpassthru() - Affiche le reste du fichier


Liste les filtres enregistrés

  • « stream_get_contents
  • stream_get_line »
  • PHP Manual
  • Fonctions sur les flux
  • Liste les filtres enregistrés

stream_get_filters

(PHP 5, PHP 7)

stream_get_filters — Liste les filtres enregistrés

Description

array stream_get_filters ( void )

stream_get_filters() lit la liste des filtres enregistrés.

Valeurs de retour

Retourne un tableau indexé contenant la liste des filtres de flux disponibles sur le système.

Exemples

Exemple #1 Exemple avec stream_get_filters()

<?php
$streamlist = stream_get_filters();
print_r($streamlist);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array (
  [0] => string.rot13
  [1] => string.toupper
  [2] => string.tolower
  [3] => string.base64
  [4] => string.quoted-printable
)

Voir aussi

  • stream_filter_register() - Enregistre un filtre de flux
  • stream_get_wrappers() - Liste les gestionnaires de flux


Lit une ligne dans un flux

  • « stream_get_filters
  • stream_get_meta_data »
  • PHP Manual
  • Fonctions sur les flux
  • Lit une ligne dans un flux

stream_get_line

(PHP 5, PHP 7)

stream_get_line — Lit une ligne dans un flux

Description

string stream_get_line ( resource $handle , int $length [, string $ending ] )

stream_get_line() lit une ligne dans la ressource handle.

La lecture se termine quand length octets ont été lus, quand la chaîne spécifiée par ending a été rencontrée (mais ne sera pas inclue dans la valeur retournée), ou si EOF survient : n'importe lequel des trois qui survient en premier.

Cette fonction est presque identique à fgets() hormis le fait qu'elle permet d'utiliser un délimiteur de ligne différent des caractères standards de \n, \r et \r\n, et ne retourne pas le délimiteur lui-même.

Liste de paramètres

handle

Une ressource valide de fichier.

length

Le nombre d'octets à lire dans la ressource.

ending

Un délimiteur de chaîne optionnel.

Valeurs de retour

stream_get_line() lit une ligne de taille maximale length dans le flux handle.

Si une erreur survient, stream_get_line() retourne FALSE.

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fgetc() - Lit un caractère dans un fichier


Lit les en-têtes et données méta des flux

  • « stream_get_line
  • stream_get_transports »
  • PHP Manual
  • Fonctions sur les flux
  • Lit les en-têtes et données méta des flux

stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_get_meta_data — Lit les en-têtes et données méta des flux

Description

array stream_get_meta_data ( resource $stream )

Retourne les informations disponibles sur le flux stream.

Liste de paramètres

stream

Le flux peut être n'importe quel flux créé par les fonctions fopen(), fsockopen() ou pfsockopen().

Valeurs de retour

Le tableau résultant peut contenir les éléments suivants :

  • timed_out (booléen) : TRUE si le flux a atteint de délai d'expiration en attendant des données durant le dernier appel aux fonctions fread() et fgets().

  • blocked (booléen) : TRUE si le flux est en mode bloquant. Voir aussi stream_set_blocking().

  • eof (booléen) : TRUE si le flux a atteint la fin du fichier. Notez que pour les sockets, cette valeur peut être TRUE même si unread_bytes est non nul. Pour déterminer s'il reste des données à lire, utilisez plutôt la fonction feof().

  • unread_bytes (entier) : le nombre d'octets actuellement placés dans le buffer interne à PHP.

    Note: Vous ne devriez pas utiliser cette valeur dans un script.

  • stream_type (chaîne de caractères) : un nom, qui décrit l'implémentation sous-jacente de flux.

  • wrapper_type (chaîne de caractères) : un nom qui décrit le gestionnaire de protocole pour ce flux. Voyez Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les gestionnaires.

  • wrapper_data (mixed) : des données spécifiques au gestionnaire liés à ce flux. Voyez Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les gestionnaires et leurs données.

  • mode (chaîne de caractères) : le type d'accès requis pour ce flux ( voir le tableau 1 de la référence de la fonction fopen())

  • seekable (booléen) : si on peut rechercher dans le flux courant.

  • uri (chaîne de caractères) : l'URI/nom de fichier associé à ce flux.

Exemples

Exemple #1 Exemple avec stream_get_meta_data()

<?php
$url = 'http://www.example.com/';

if (!$fp = fopen($url, 'r')) {
    trigger_error("Impossible d'ouvrir l'URL ($url)", E_USER_ERROR);
}

$meta = stream_get_meta_data($fp);

print_r($meta);

fclose($fp);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [wrapper_data] => Array
        (
            [0] => HTTP/1.1 200 OK
            [1] => Server: Apache/2.2.3 (Red Hat)
            [2] => Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
            [3] => ETag: "b300b4-1b6-4059a80bfd280"
            [4] => Accept-Ranges: bytes
            [5] => Content-Type: text/html; CHARSET=Windows-1252
            [6] => Set-Cookie: FOO=BAR; expires=Fri, 21-Dec-2012 12:00:00 GMT; path=/; domain=.example.com
            [6] => Connection: close
            [7] => Date: Fri, 16 Oct 2009 12:00:00 GMT
            [8] => Age: 1164
            [9] => Content-Length: 438
        )

    [wrapper_type] => http
    [stream_type] => tcp_socket/ssl
    [mode] => r
    [unread_bytes] => 438
    [seekable] =>
    [uri] => http://www.example.com/
    [timed_out] =>
    [blocked] => 1
    [eof] =>
)

Notes

Note:

Cette fonction ne fonctionne pas sur les sockets créées avec l'extension socket.

Voir aussi

  • get_headers() - Retourne tous les en-têtes envoyés par le serveur en réponse à une requête HTTP
  • $http_response_header


Liste les gestionnaires de transports de sockets disponibles

  • « stream_get_meta_data
  • stream_get_wrappers »
  • PHP Manual
  • Fonctions sur les flux
  • Liste les gestionnaires de transports de sockets disponibles

stream_get_transports

(PHP 5, PHP 7)

stream_get_transports — Liste les gestionnaires de transports de sockets disponibles

Description

array stream_get_transports ( void )

stream_get_transports() retourne un tableau indexé contenant les noms des transports de sockets disponibles pour le système.

Valeurs de retour

Retourne un tableau indexé de nom de sockets de transport.

Exemples

Exemple #1 Exemple avec stream_get_transports()

<?php
$xportlist = stream_get_transports();
print_r($xportlist);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array (
  [0] => tcp
  [1] => udp
  [2] => unix
  [3] => udg
)
?>

Voir aussi

  • stream_get_filters() - Liste les filtres enregistrés
  • stream_get_wrappers() - Liste les gestionnaires de flux


Liste les gestionnaires de flux

  • « stream_get_transports
  • stream_is_local »
  • PHP Manual
  • Fonctions sur les flux
  • Liste les gestionnaires de flux

stream_get_wrappers

(PHP 5, PHP 7)

stream_get_wrappers — Liste les gestionnaires de flux

Description

array stream_get_wrappers ( void )

stream_get_wrappers() lit la liste des gestionnaires de flux disponibles sur le système courant.

Valeurs de retour

stream_get_wrappers() retourne un tableau indexé contenant le nom de tous les gestionnaires de flux disponibles sur le système.

Exemples

Exemple #1 Exemple avec stream_get_wrappers()

<?php
print_r(stream_get_wrappers());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => php
    [1] => file
    [2] => http
    [3] => ftp
    [4] => compress.bzip2
    [5] => compress.zlib
)

Exemple #2 Vérification de l'existence d'un gestionnaire de flux

<?php
// Vérification de l'existence d'un gestionnaire de flux bzip2
if (in_array('compress.bzip2', stream_get_wrappers())) {
    echo 'compress.bzip2:// support actif.';
} else {
    echo 'compress.bzip2:// support inactif.';
}
?>

Voir aussi

  • stream_wrapper_register() - Enregistre un gestionnaire d'URL


Vérifie si un flux est local

  • « stream_get_wrappers
  • stream_notification_callback »
  • PHP Manual
  • Fonctions sur les flux
  • Vérifie si un flux est local

stream_is_local

(PHP 5 >= 5.2.4, PHP 7)

stream_is_local — Vérifie si un flux est local

Description

bool stream_is_local ( mixed $stream_or_url )

stream_is_local() vérifie si le flux ou l'URL stream_or_url est local au système ou non.

Liste de paramètres

stream_or_url

La ressource de flux ou l'URL à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec stream_is_local()

Exemple simple.

<?php
var_dump(stream_is_local("http://example.com"));
var_dump(stream_is_local("/etc"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)


Une fonction de rappel pour le paramètre de contexte notification

  • « stream_is_local
  • stream_register_wrapper »
  • PHP Manual
  • Fonctions sur les flux
  • Une fonction de rappel pour le paramètre de contexte notification

stream_notification_callback

(PHP 5 >= 5.2.0, PHP 7)

stream_notification_callback — Une fonction de rappel pour le paramètre de contexte notification

Description

void stream_notification_callback ( int $notification_code , int $severity , string $message , int $message_code , int $bytes_transferred , int $bytes_max )

Une fonction de rappel de type callable, utilisée par le paramètre de contexte notification, appelé lors d'un événement.

Note:

Ce n'est pas une réelle fonction, uniquement un prototype de la façon dont la fonction doit être.

Liste de paramètres

notification_code

Une des constantes de notification STREAM_NOTIFY_*.

severity

Une des constantes de notification STREAM_NOTIFY_SEVERITY_*.

message

Passé si un message descriptif est disponible pour cet événement.

message_code

Passé si un code de message descriptif est disponible pour cet événement.

La signification de cette valeur dépend du gestionnaire spécifique utilisé.

bytes_transferred

Si c'est possible, bytes_transferred sera rempli.

bytes_max

Si c'est possible, bytes_max sera rempli.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec stream_notification_callback()

<?php
function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {

    switch($notification_code) {
        case STREAM_NOTIFY_RESOLVE:
        case STREAM_NOTIFY_AUTH_REQUIRED:
        case STREAM_NOTIFY_COMPLETED:
        case STREAM_NOTIFY_FAILURE:
        case STREAM_NOTIFY_AUTH_RESULT:
            var_dump($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max);
            /* Ignore */
            break;

        case STREAM_NOTIFY_REDIRECTED:
            echo "Redirection vers : ", $message;
            break;

        case STREAM_NOTIFY_CONNECT:
            echo "Connecté...";
            break;

        case STREAM_NOTIFY_FILE_SIZE_IS:
            echo "Récupération de la taille du fichier : ", $bytes_max;
            break;

        case STREAM_NOTIFY_MIME_TYPE_IS:
            echo "Type mime trouvé : ", $message;
            break;

        case STREAM_NOTIFY_PROGRESS:
            echo "En cours de téléchargement, déjà ", $bytes_transferred, " octets transférés";
            break;
    }
    echo "\n";
}

$ctx = stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

file_get_contents("http://php.net/contact", false, $ctx);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Connecté...
Type mime trouvé : text/html; CHARSET=Windows-1252
Redirection vers : http://no.php.net/contact
Connecté...
Récupération de la taille du fichier : 0
Type mime trouvé : text/html; CHARSET=Windows-1252
Redirection vers : http://no.php.net/contact.php
Connecté...
Récupération de la taille du fichier : 4589
Type mime trouvé : text/html;CHARSET=Windows-1252
En cours de téléchargement, déjà 0 octets transférés
En cours de téléchargement, déjà 0 octets transférés
En cours de téléchargement, déjà 0 octets transférés
En cours de téléchargement, déjà 1440 octets transférés
En cours de téléchargement, déjà 2880 octets transférés
En cours de téléchargement, déjà 4320 octets transférés
En cours de téléchargement, déjà 5760 octets transférés
En cours de téléchargement, déjà 6381 octets transférés
En cours de téléchargement, déjà 7002 octets transférés

Exemple #2 Barre de progression simple pour un client de téléchargement en ligne de commande

<?php
function usage($argv) {
    echo "Utilisation :\n";
    printf("\tphp %s <http://example.com/file> <localfile>\n", $argv[0]);
    exit(1);
}

function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {
    static $filesize = null;

    switch($notification_code) {
    case STREAM_NOTIFY_RESOLVE:
    case STREAM_NOTIFY_AUTH_REQUIRED:
    case STREAM_NOTIFY_COMPLETED:
    case STREAM_NOTIFY_FAILURE:
    case STREAM_NOTIFY_AUTH_RESULT:
        /* Ignore */
        break;

    case STREAM_NOTIFY_REDIRECTED:
        echo "Redirection vers : ", $message, "\n";
        break;

    case STREAM_NOTIFY_CONNECT:
        echo "Connecté...\n";
        break;

    case STREAM_NOTIFY_FILE_SIZE_IS:
        $filesize = $bytes_max;
        echo "Taille du fichier : ", $filesize, "\n";
        break;

    case STREAM_NOTIFY_MIME_TYPE_IS:
        echo "Type Mime : ", $message, "\n";
        break;

    case STREAM_NOTIFY_PROGRESS:
        if ($bytes_transferred > 0) {
            if (!isset($filesize)) {
                printf("\rTaille du fichier inconnue.. %2d kb done..", $bytes_transferred/1024);
            } else {
                $length = (int)(($bytes_transferred/$filesize)*100);
                printf("\r[%-100s] %d%% (%2d/%2d kb)", str_repeat("=", $length). ">", $length, ($bytes_transferred/1024), $filesize/1024);
            }
        }
        break;
    }
}

isset($argv[1], $argv[2]) or usage($argv);

$ctx = stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

$fp = fopen($argv[1], "r", false, $ctx);
if (is_resource($fp) && file_put_contents($argv[2], $fp)) {
    echo "\nFait !\n";
    exit(0);
}

$err = error_get_last();
echo "\nErrrrreurr..\n", $err["message"], "\n";
exit(1);
?>

Exécutez l'exemple ci-dessus avec : php -n fetch.php http://no2.php.net/get/php-5-LATEST.tar.bz2/from/this/mirror php-latest.tar.bz2 affichera quelque chose similaire à :

Connecté...
Type Mime : text/html; CHARSET=Windows-1252
Redirection vers : http://no2.php.net/distributions/php-5.2.5.tar.bz2
Connecté...
Taille du fichier : 7773024
Type Mime : application/octet-stream
[========================================>                                                           ] 40% (3076/7590 kb)

Voir aussi

  • Paramètres de contexte


Alias de stream_wrapper_register

  • « stream_notification_callback
  • stream_resolve_include_path »
  • PHP Manual
  • Fonctions sur les flux
  • Alias de stream_wrapper_register

stream_register_wrapper

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_register_wrapper — Alias de stream_wrapper_register()

Description

Cette fonction est un alias de : stream_wrapper_register().


Résout un nom de fichier suivant les règles du chemin d'inclusion

  • « stream_register_wrapper
  • stream_select »
  • PHP Manual
  • Fonctions sur les flux
  • Résout un nom de fichier suivant les règles du chemin d'inclusion

stream_resolve_include_path

(PHP 5 >= 5.3.2, PHP 7)

stream_resolve_include_path — Résout un nom de fichier suivant les règles du chemin d'inclusion

Description

string stream_resolve_include_path ( string $filename )

Résout le nom de fichier filename en utilisant le chemin d'inclusion, en utilisant les mêmes règles que les fonctions fopen()/include.

Liste de paramètres

filename

Le nom de fichier à résoudre.

Valeurs de retour

Retourne une chaîne de caractères contenant le nom de fichier absolu résolu, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec stream_resolve_include_path()

Exemple simple d'utilisation.

<?php
var_dump(stream_resolve_include_path("test.php"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(22) "/var/www/html/test.php"


Surveille la modification d'un ou plusieurs flux

  • « stream_resolve_include_path
  • stream_set_blocking »
  • PHP Manual
  • Fonctions sur les flux
  • Surveille la modification d'un ou plusieurs flux

stream_select

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_select — Surveille la modification d'un ou plusieurs flux

Description

int stream_select ( array &$read , array &$write , array &$except , int $tv_sec [, int $tv_usec = 0 ] )

stream_select() accepte un tableau de flux et attend que l'un d'entre eux change de statut. Cette opération est équivalente à ce que fait la fonction socket_select(), hormis le fait qu'elle travaille sur un flux.

Liste de paramètres

read

Les flux qui sont listés dans le paramètre read seront surveillés en lecture, c'est-à-dire si de nouveaux octets sont disponibles en lecture (pour être précis, si une lecture ne bloquera pas, ce qui inclut aussi les flux qui sont en fin de fichier, auquel cas un appel à la fonction fread() retournera une chaîne de taille 0).

write

Les flux qui sont listés dans le paramètre write seront surveillés en écriture (pour être précis, si une écriture ne bloquera pas).

except

Les flux qui sont listés dans le paramètre except seront surveillés pour voir si une exception est levée.

Note:

Lorsque stream_select() se termine, les tableaux read, write et except sont modifiés pour indiquer quels flux ont actuellement changé de statut.

Vous n'êtes pas obligés de remplir tous les tableaux arguments de la fonction stream_select(). Vous pouvez les laisser et utiliser un tableau vide, ou encore NULL. De plus, n'oubliez pas que ces tableaux sont passés par référence et seront modifiés une fois que stream_select() s'achève.
tv_sec

Les paramètres tv_sec et tv_usec forment le délai d'expiration, tv_sec spécifie le nombre de secondes tandis que tv_usec, le nombre de microsecondes. Le paramètre timeout représente la limite supérieure du temps que stream_select() doit attendre avant de se terminer. Si tv_sec et tv_usec sont tous les deux définis à 0, , stream_select() n'attendra pas de données - à la place, elle se terminera immédiatement, indiquant le statut courant du flux.

Si tv_sec vaut NULL, stream_select() peut se bloquer indéfiniment, se terminant uniquement lorsqu'un événement sur un des flux surveillés survient (ou si un signal interrompt l'appel système).

Avertissement

Utiliser un valeur de 0 vous permet de tester instantanément le statut des flux, mais il faut savoir qu'il n'est pas recommandé d'utiliser 0 dans une boucle, car cela va faire consommer énormément de processeur à votre script.

Il est bien mieux de spécifier une valeur de quelques secondes, même si vous devez surveiller et exécuter différents codes de manière simultanée. Par exemple, utiliser une valeur d'au moins 200000 microsecondes, vous réduirez considérablement la consommation processeur de votre script.

N'oubliez pas que la valeur d'expiration est la durée maximale d'attente, si rien ne se passe : stream_select() retournera un résultat dès que l'un des flux soumis est prêt à l'utilisation.

tv_usec

Voyez la description de tv_sec.

Valeurs de retour

En cas de succès, stream_select() retourne le nombre de flux qui ont évolué, ce qui peut être 0, si le délai d'expiration a été atteint avant que les flux n'évoluent. En cas d'erreur, la fonction retournera FALSE et un avertissement sera renvoyé (cela peut apparaître si l'appel système est interrompu par un signal entrant).

Exemples

Exemple #1 Exemple avec stream_select()

Cet exemple surveille si des données arrivent pour être lues soit dans $stream1, soit dans $stream2. Si le délai d'expiration vaut 0, la fonction se termine immédiatement :

<?php
/* Preparation du tableau de flux lecture */
$read   = array($stream1, $stream2);
$write  = NULL;
$except = NULL;
if (false === ($num_changed_streams = stream_select($read, $write, $except, 0))) {
    /* Gestion d'erreur */
} elseif ($num_changed_streams > 0) {
    /* Au moins un des flux a évolué  */
}
?>

Notes

Note:

À cause d'une limitation du moteur Zend actuel, il n'est pas possible de passer la valeur NULL directement comme paramètre d'une fonction qui s'attend à des paramètres passés par référence. Au lieu de cela, il est recommandé d'utiliser une variable temporaire, ou une expression dont le membre de gauche est une variable temporaire. Comme ceci :

<?php
$e = NULL;
stream_select($r, $w, $e, 0);
?>

Note:

Assurez-vous de bien utiliser l'opérateur === lorsque vous recherchez des erreurs. Comme stream_select() peut retourner 0, une comparaison effectuée à l'aide de == l'évaluerait à TRUE :

<?php
$e = NULL;
if (false === stream_select($r, $w, $e, 0)) {
    echo "stream_select() failed\n";
}
?>

Note:

Si vous avez écrit ou lu dans un flux qui est retourné dans les tableaux de flux, soyez bien conscient que ces flux n'ont peut être pas écrit ou lu la totalité des données demandées. Soyez en mesure de lire un seul octet.

Note:

Quelques flux (comme zlib) ne peuvent pas être sélectionnés par cette fonction.

Note:

Notes aux utilisateurs de Windows : stream_select() utilisé sur une pipe retournée par proc_open() peut causer la perte de données sous Windows 98.

Utiliser la fonction stream_select() sur un pointeur de fichier retourné par proc_open() échouera et retournera FALSE sous Windows.

Voir aussi

  • stream_set_blocking() - Configure le mode bloquant d'un flux


Configure le mode bloquant d'un flux

  • « stream_select
  • stream_set_chunk_size »
  • PHP Manual
  • Fonctions sur les flux
  • Configure le mode bloquant d'un flux

stream_set_blocking

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_set_blocking — Configure le mode bloquant d'un flux

Description

bool stream_set_blocking ( resource $stream , bool $mode )

stream_set_blocking() configure le mode bloquant du flux stream.

Cette fonction fonctionne pour tous les flux qui supportent le mode non-bloquant (actuellement, les fichiers et les flux de sockets).

Liste de paramètres

stream

Le flux.

mode

Si mode vaut FALSE, stream sera configuré en mode non-bloquant, et s'il vaut TRUE, stream sera configuré en mode bloquant. Cet appel affecte les fonctions telles que fgets() et fread() qui lisent dans des flux. En mode non-bloquant, la fonction fgets() s'exécute juste après son appel, alors qu'en mode bloquant, elle attendra des données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Cette fonction s'appelait jadis set_socket_blocking() puis socket_set_blocking() mais leur usage est déconseillé.

Voir aussi

  • stream_select() - Surveille la modification d'un ou plusieurs flux


Change la taille du segment du flux

  • « stream_set_blocking
  • stream_set_read_buffer »
  • PHP Manual
  • Fonctions sur les flux
  • Change la taille du segment du flux

stream_set_chunk_size

(PHP 5 >= 5.4.0, PHP 7)

stream_set_chunk_size — Change la taille du segment du flux

Description

int stream_set_chunk_size ( resource $fp , int $chunk_size )

Change la taille du segment du flux.

Liste de paramètres

fp

Le flux en question.

chunk_size

La nouvelle taille de segment désirée.

Valeurs de retour

Retourne la taille précédente du segment en cas de succès.

Retournera FALSE si chunk_size est inférieur à 1 ou plus grand que PHP_INT_MAX.

Erreurs / Exceptions

Délivrera une erreur E_WARNING si chunk_size est inférieur à 1 ou plus grand que PHP_INT_MAX.


Configure le buffer de lecture d'un flux

  • « stream_set_chunk_size
  • stream_set_timeout »
  • PHP Manual
  • Fonctions sur les flux
  • Configure le buffer de lecture d'un flux

stream_set_read_buffer

(PHP 5 >= 5.3.3, PHP 7)

stream_set_read_buffer — Configure le buffer de lecture d'un flux

Description

int stream_set_read_buffer ( resource $stream , int $buffer )

Configure le buffer de lecture d'un flux. Equivalent à stream_set_write_buffer(), mais pour les opérations de lecture.

Liste de paramètres

stream

Le pointeur de fichier.

buffer

Le nombre d'octets à mettre en buffer. Si buffer vaut 0 alors les opérations sont sans buffer. Cela garantit que les opérations avec fread() sont achevées avant que d'autres processus ne soient autorisés à lire dans le flux de sortie.

Valeurs de retour

Retourne 0 en cas de succès, ou une autre valeur si la requête échoue.

Voir aussi

  • stream_set_write_buffer() - Configure le buffer d'écriture d'un flux


Configure la durée d'expiration d'un flux

  • « stream_set_read_buffer
  • stream_set_write_buffer »
  • PHP Manual
  • Fonctions sur les flux
  • Configure la durée d'expiration d'un flux

stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_set_timeout — Configure la durée d'expiration d'un flux

Description

bool stream_set_timeout ( resource $stream , int $seconds [, int $microseconds = 0 ] )

stream_set_timeout() configure la durée d'expiration du flux stream, exprimé comme la durée de seconds secondes et microseconds microsecondes.

Lorsque le flux se termine, la clé 'timed_out' du tableau retourné par stream_get_meta_data() est définie à TRUE, cependant, aucune erreur ou alerte n'est générée.

Liste de paramètres

stream

Le flux cible.

seconds

Le nombre de secondes entières du délai d'expiration.

microseconds

Le nombre de microsecondes entières du délai d'expiration.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
4.3.0 | Depuis PHP 4.3, cette fonction peut (potentiellement) fonctionner avec n'importe quel flux. Avant PHP 4.3, les flux utilisant des sockets sont les seuls qui soient supportés dans le coeur de PHP, même si les autres extensions pourraient supporter cette fonction.

Exemples

Exemple #1 Exemple avec stream_set_timeout()

<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
     echo "Impossible d'ouvrir\n";
} else {

  fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
  stream_set_timeout($fp, 2);
  $res = fread($fp, 2000);

  $info = stream_get_meta_data($fp);
  fclose($fp);

  if ($info['timed_out']) {
     echo 'Délai de connexion dépassé !';
  } else {
     echo $res;
  }

}
?>

Notes

Note:

Cette fonction ne fonctionne pas avec les opérations avancées comme stream_socket_recvfrom(), utilisez plutôt stream_select() avec une durée d'expiration en paramètre.

Cette fonction était appelée auparavant set_socket_timeout(), et aussi socket_set_timeout(), mais ces appellations sont obsolètes.

Voir aussi

  • fsockopen() - Ouvre un socket de connexion Internet ou Unix
  • fopen() - Ouvre un fichier ou une URL


Configure le buffer d'écriture d'un flux

  • « stream_set_timeout
  • stream_socket_accept »
  • PHP Manual
  • Fonctions sur les flux
  • Configure le buffer d'écriture d'un flux

stream_set_write_buffer

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_set_write_buffer — Configure le buffer d'écriture d'un flux

Description

int stream_set_write_buffer ( resource $stream , int $buffer )

stream_set_write_buffer() configure le buffer d'écriture du flux stream à la taille de buffer octets.

Liste de paramètres

stream

Le pointeur de fichier.

buffer

Le nombre d'octets à mettre en buffer. Si buffer vaut 0 alors les opérations sont sans buffer. Cela garantit que les opérations avec fwrite() sont achevées avant que d'autres processus ne soient autorisés à écrire dans le flux de sortie.

Valeurs de retour

Retourne 0 en cas de succès, ou un autre valeur si la requête échoue.

Exemples

Exemple #1 Exemple avec stream_set_write_buffer()

L'exemple ci-dessous illustre l'utilisation de stream_set_write_buffer() pour créer un flux non bufferisé.

<?php
$fp = fopen($file, "w");
if ($fp) {
  if (stream_set_write_buffer($fp, 0) !== 0) {
      // la modification du buffer a échoué
  }
  fwrite($fp, $output);
  fclose($fp);
}
?>

Voir aussi

  • fopen() - Ouvre un fichier ou une URL
  • fwrite() - Écrit un fichier en mode binaire


Accepte une connexion sur un socket créé par stream_socket_server

  • « stream_set_write_buffer
  • stream_socket_client »
  • PHP Manual
  • Fonctions sur les flux
  • Accepte une connexion sur un socket créé par stream_socket_server

stream_socket_accept

(PHP 5, PHP 7)

stream_socket_accept — Accepte une connexion sur un socket créé par stream_socket_server()

Description

resource stream_socket_accept ( resource $server_socket [, float $timeout = ini_get("default_socket_timeout") [, string &$peername ]] )

Accepte une connexion sur un socket créé précédemment avec stream_socket_server().

Liste de paramètres

server_socket

Le socket serveur depuis lequel accepter une connexion.

timeout

Remplace le délai d'expiration par défaut du socket. Ce délai doit être donné en secondes.

peername

Le nom (adresse) du client connecté, si fourni et si disponible pour le transport sélectionné.

Note:

Peut également être déterminé plus tard, en utilisant la fonction stream_socket_get_name().

Valeurs de retour

Retourne un flux vers la connexion socket acceptée ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction ne doit pas être utilisée avec les sockets serveur UDP. À la place, utilisez les fonctions stream_socket_recvfrom() et stream_socket_sendto().

Voir aussi

  • stream_socket_server() - Crée un socket serveur Unix ou Internet
  • stream_socket_get_name() - Lit le nom de la socket locale ou distante
  • stream_set_blocking() - Configure le mode bloquant d'un flux
  • stream_set_timeout() - Configure la durée d'expiration d'un flux
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fgetss() - Renvoie la ligne courante du fichier et élimine les balises HTML
  • fwrite() - Écrit un fichier en mode binaire
  • fclose() - Ferme un fichier
  • feof() - Teste la fin du fichier
  • Fonctions cURL


Ouvre une connexion socket Internet ou Unix

  • « stream_socket_accept
  • stream_socket_enable_crypto »
  • PHP Manual
  • Fonctions sur les flux
  • Ouvre une connexion socket Internet ou Unix

stream_socket_client

(PHP 5, PHP 7)

stream_socket_client — Ouvre une connexion socket Internet ou Unix

Description

resource stream_socket_client ( string $remote_socket [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") [, int $flags = STREAM_CLIENT_CONNECT [, resource $context ]]]]] )

Initie un flux ou une connexion datagramme avec la destination remote_socket. Le type de socket créé est déterminé par le transport spécifié avec le formatage URL suivant : transport://target. Pour un socket Internet, (AF_INET) comme TCP et UDP, la cible de remote_socket sera une adresse IP ou un nom d'hôte. Pour un socket Unix, la cible doit être un fichier de socket du système.

Note:

Le flux sera par défaut ouvert en mode bloquant. Vous pouvez le passer en mode non bloquant en utilisant la fonction stream_set_blocking().

Liste de paramètres

remote_socket

L'adresse du socket.

errno

Contiendra le numéro de l'erreur système si la connexion échoue.

errstr

Contiendra le message de l'erreur système si la connexion échoue.

timeout

Délai d'expiration, en secondes, pour l'appel système connect().

Note: Ce paramètre n'est appliqué que pour les connexions qui ne sont pas asynchrones.

Note:

Pour définir un délai d'expiration lors de la lecture/écriture de données via un socket, utilisez la fonction stream_set_timeout(), vu que le paramètre timeout n'est appliqué que lors de la connexion au socket.

flags

Champ de bits qui peut être la combinaison de n'importe quelles options de connexion. Actuellement, les valeurs possibles pour ces options sont STREAM_CLIENT_CONNECT (défaut), STREAM_CLIENT_ASYNC_CONNECT et STREAM_CLIENT_PERSISTENT.

context

Une ressource de contexte valide, créée par la fonction stream_context_create().

Valeurs de retour

En cas de succès, une ressource de flux est retournée, qui peut être utilisée
avec d'autres fonctions de fichiers, comme
fgets(), fgetss(),
fwrite(), fclose(), et
feof(), FALSE si une erreur survient.

Erreurs / Exceptions

Si l'appel échoue, stream_socket_client() va retourner FALSE et si les paramètres optionnels errno et errstr sont fournis, ils recevront l'erreur exacte qui est survenue dans le système lors de l'appel à connect(). Si la valeur retournée dans errno est 0 et que la fonction a retourné FALSE, c'est une indication que l'erreur est survenue avant l'appel à connect(). Cela est probablement dû à un problème d'initialisation du socket. Notez que errno eterrstr doivent être passés par référence.

Exemples

Exemple #1 Exemple avec stream_socket_client()

<?php
$fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    fwrite($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
    while (!feof($fp)) {
        echo fgets($fp, 1024);
    }
    fclose($fp);
}
?>

Exemple #2 Utilisation de connexions UDP

Lit la date et l'heure sur un service UDP de type "daytime" (port 13) sur votre propre machine :

<?php
$fp = stream_socket_client("udp://127.0.0.1:13", $errno, $errstr);
if (!$fp) {
    echo "ERREUR : $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Notes

Avertissement

Les sockets UDP sembleront parfois s'ouvrir sans erreur, même si l'hôte distant n'est pas accessible. Cette erreur ne deviendra apparente que lorsque vous essaierez de lire ou écrire des données avec cet socket. La raison à cela est que UDP est un protocole sans connexion, ce qui signifie que le système d'exploitation n'a pas à établir de lien pour le socket, jusqu'à ce qu'il commence à échanger des données.

Note: Lors de la spécification d'adresses IPv6 au format numérique (e.g. fe80::1) vous devez placer l'adresse IP entre crochets. Par exemple : tcp://[fe80::1]:80.

Note:

Suivant votre environnement, les sockets Unix ou le délai d'expiration peuvent ne pas être disponibles. Une liste des transports disponibles sur le système est accessible via stream_get_transports(). Voyez Liste des modes de transport de sockets disponibles pour une liste de transports natifs.

Voir aussi

  • stream_socket_server() - Crée un socket serveur Unix ou Internet
  • stream_set_blocking() - Configure le mode bloquant d'un flux
  • stream_set_timeout() - Configure la durée d'expiration d'un flux
  • stream_select() - Surveille la modification d'un ou plusieurs flux
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fgetss() - Renvoie la ligne courante du fichier et élimine les balises HTML
  • fwrite() - Écrit un fichier en mode binaire
  • fclose() - Ferme un fichier
  • feof() - Teste la fin du fichier
  • Fonctions cURL


Active ou non le chiffrement, pour un socket déjà connecté

  • « stream_socket_client
  • stream_socket_get_name »
  • PHP Manual
  • Fonctions sur les flux
  • Active ou non le chiffrement, pour un socket déjà connecté

stream_socket_enable_crypto

(PHP 5 >= 5.1.0, PHP 7)

stream_socket_enable_crypto — Active ou non le chiffrement, pour un socket déjà connecté

Description

mixed stream_socket_enable_crypto ( resource $stream , bool $enable [, int $crypto_type [, resource $session_stream ]] )

Active ou non le chiffrement, pour un socket déjà connecté.

Une fois les paramètres de chiffrement définis, le chiffrement peut être activé et désactivé dynamiquement en passant TRUE ou FALSE dans le paramètre enable.

Liste de paramètres

stream

La ressource de flux.

enable

Active ou non le chiffrement sur le flux.

crypto_type

Configure le chiffrement sur le flux. Les méthodes valides sont

  • STREAM_CRYPTO_METHOD_SSLv2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv3_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv23_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_TLS_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv2_SERVER
  • STREAM_CRYPTO_METHOD_SSLv3_SERVER
  • STREAM_CRYPTO_METHOD_SSLv23_SERVER
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLS_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

Si omis, l'option de contexte crypto_type sur le contexte SSL du flux sera utilisée à la place.

session_stream

Initialise le flux avec la configuration issue du paramètre session_stream.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si la négociation a échoué ou 0 s'il n'y a pas assez de données et que vous devez essayer encore (uniquement pour les sockets non-bloquants).

Historique

Version | Description
5.6.0 | Ajout des constantes STREAM_CRYPTO_METHOD_ANY_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, STREAM_CRYPTO_METHOD_ANY_SERVER, STREAM_CRYPTO_METHOD_TLSv1_0_SERVER, STREAM_CRYPTO_METHOD_TLSv1_1_SERVER, STREAM_CRYPTO_METHOD_TLSv1_2_SERVER.
5.6.0 | Le paramètre crypto_type est maintenant optionnel.

Exemples

Exemple #1 Exemple avec stream_socket_enable_crypto()

<?php
$fp = stream_socket_client("tcp://myproto.example.com:31337", $errno, $errstr, 30);
if (!$fp) {
    die("Impossible de se connecter : $errstr ($errno)");
}

/* Activation du chiffrement durant l'identification */
stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp, "USER god\r\n");
fwrite($fp, "PASS secret\r\n");

/* Désactivation du chiffrement pour le reste */
stream_socket_enable_crypto($fp, false);

while ($motd = fgets($fp)) {
    echo $motd;
}

fclose($fp);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  • Fonctions OpenSSL
    •

  • Liste des modes de transport de sockets disponibles
    •


Lit le nom de la socket locale ou distante

  • « stream_socket_enable_crypto
  • stream_socket_pair »
  • PHP Manual
  • Fonctions sur les flux
  • Lit le nom de la socket locale ou distante

stream_socket_get_name

(PHP 5, PHP 7)

stream_socket_get_name — Lit le nom de la socket locale ou distante

Description

string stream_socket_get_name ( resource $handle , bool $want_peer )

stream_socket_get_name() retourne le nom du socket local ou distant pour la connexion handle.

Liste de paramètres

handle

Le socket dont il faut lire le nom.

want_peer

Si ce paramètre vaut TRUE le nom du socket remote (distant) sera retourné, et si ce paramètre vaut FALSE le socket local (local) sera retourné.

Valeurs de retour

Le nom du socket.

Voir aussi

  • stream_socket_accept() - Accepte une connexion sur un socket créé par stream_socket_server


Crée une paire de sockets connectées et indissociables

  • « stream_socket_get_name
  • stream_socket_recvfrom »
  • PHP Manual
  • Fonctions sur les flux
  • Crée une paire de sockets connectées et indissociables

stream_socket_pair

(PHP 5 >= 5.1.0, PHP 7)

stream_socket_pair — Crée une paire de sockets connectées et indissociables

Description

array stream_socket_pair ( int $domain , int $type , int $protocol )

stream_socket_pair() crée une paire de sockets connectées et indissociables. Cette fonction est communément utilisée en IPC (InterProcess Communication).

Liste de paramètres

domain

La famille de protocole à utiliser : STREAM_PF_INET, STREAM_PF_INET6 ou STREAM_PF_UNIX

type

Le type de communication à utiliser : STREAM_SOCK_DGRAM, STREAM_SOCK_RAW, STREAM_SOCK_RDM, STREAM_SOCK_SEQPACKET ou STREAM_SOCK_STREAM

protocol

Le protocole à utiliser : STREAM_IPPROTO_ICMP, STREAM_IPPROTO_IP, STREAM_IPPROTO_RAW, STREAM_IPPROTO_TCP ou STREAM_IPPROTO_UDP

Note: Consultez la liste des constantes de flux pour plus de détails sur chaque constante.

Valeurs de retour

Retourne un tableau contenant les ressources des deux sockets en cas de succès, ou FALSE en cas d'échec.

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sous Windows.

Exemples

Exemple #1 Exemple avec stream_socket_pair()

Cet exemple montre une utilisation basique de stream_socket_pair() dans une communication inter-processus.

<?php

$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP);
$pid     = pcntl_fork();

if ($pid == -1) {
  die('Impossible de forker');

} else if ($pid) {
  /* parent */
  fclose($sockets[0]);

  fwrite($sockets[1], "PID enfant : $pid\n");
  echo fgets($sockets[1]);

  fclose($sockets[1]);

} else {
  /* enfant */
  fclose($sockets[1]);

  fwrite($sockets[0], "message de l'enfant\n");
  echo fgets($sockets[0]);

  fclose($sockets[0]);
}

     ?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PID enfant : 1378
message de l'enfant


Lit des données depuis un socket, connecté ou pas

  • « stream_socket_pair
  • stream_socket_sendto »
  • PHP Manual
  • Fonctions sur les flux
  • Lit des données depuis un socket, connecté ou pas

stream_socket_recvfrom

(PHP 5, PHP 7)

stream_socket_recvfrom — Lit des données depuis un socket, connecté ou pas

Description

string stream_socket_recvfrom ( resource $socket , int $length [, int $flags = 0 [, string &$address ]] )

stream_socket_recvfrom() accepte les données depuis un socket distant, jusqu'à un total de length octets.

Liste de paramètres

socket

Le socket distant.

length

Le nombre d'octets à recevoir de socket.

flags

La valeur de flags peut être la combinaison des constantes suivantes :

Valeurs possibles pour flags
STREAM_OOB | Traite les données en mode OOB (out-of-band).
STREAM_PEEK | Lit des données depuis le socket, mais n'utilise pas le buffer. Les prochains appels à fread() ou stream_socket_recvfrom() liront les mêmes données.

address

Si le paramètre address est fourni, il recevra l'adresse du socket distant.

Valeurs de retour

Retourne les données lues, sous forme de chaîne de caractères

Exemples

Exemple #1 Exemple avec stream_socket_recvfrom()

<?php
/* Ouvre un socket sur le port 1234 de localhost */
$server = stream_socket_server('tcp://127.0.0.1:1234');

/* Accepte une connexion */
$socket = stream_socket_accept($server);

/* Lit un paquet (1500 est la taille classique MTU) de données OOB */
echo "Received Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";

/* Lit les données normales in-band, mais ne modifie rien */
echo "Data: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";

/* Relit le même paquet, mais vide le buffer. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500) . "'\n";

/* Terminaison */
fclose($socket);
fclose($server);
?>

Notes

Note:

Si le message reçu est plus grand que length, les données supplémentaires peuvent être détruites, suivant le type de socket utilisé (par exemple UDP).

Note:

L'appel de stream_socket_recvfrom() sur les flux basés sur le socket, après l'appel de fonctions de flux basé sur un tampon (comme fread() ou stream_get_line()) lit directement les données à partir du socket et évite l'utilisation du tampon avec le flux.

Voir aussi

  • stream_socket_sendto() - Envoie un message au socket, connecté ou pas
  • stream_socket_client() - Ouvre une connexion socket Internet ou Unix
  • stream_socket_server() - Crée un socket serveur Unix ou Internet


Envoie un message au socket, connecté ou pas

  • « stream_socket_recvfrom
  • stream_socket_server »
  • PHP Manual
  • Fonctions sur les flux
  • Envoie un message au socket, connecté ou pas

stream_socket_sendto

(PHP 5, PHP 7)

stream_socket_sendto — Envoie un message au socket, connecté ou pas

Description

int stream_socket_sendto ( resource $socket , string $data [, int $flags = 0 [, string $address ]] )

stream_socket_sendto() envoie les données data au socket socket.

Liste de paramètres

socket

Le socket vers lequel envoyer les données data.

data

Les données à envoyer.

flags

La valeur de flags peut être la combinaison des constantes suivantes :

Valeurs possibles pour flags
STREAM_OOB Traite les données en mode OOB (out-of-band).

address

L'adresse du socket est spécifiée lorsque le socket est créé, et sera utilisé si une autre adresse n'est pas spécifiée dans le paramètre address.

Quand elle est fournie, elle doit être au format IP numérique (version 4 ou 6).

Valeurs de retour

Retourne le code de résultat, sous forme d'entier.

Exemples

Exemple #1 Exemple avec stream_socket_sendto()

<?php
/* Ouvre un socket sur le port 1234 de localhost */
$socket = stream_socket_client('tcp://127.0.0.1:1234');

/* Envoie des données directement */
fwrite($socket, "Normal data transmit.");

/* Envoie d'autre données, en mode out of band. */
stream_socket_sendto($socket, "Mode out of Band.", STREAM_OOB);

/* Fin */
fclose($socket);
?>

Voir aussi

  • stream_socket_recvfrom() - Lit des données depuis un socket, connecté ou pas
  • stream_socket_client() - Ouvre une connexion socket Internet ou Unix
  • stream_socket_server() - Crée un socket serveur Unix ou Internet


Crée un socket serveur Unix ou Internet

  • « stream_socket_sendto
  • stream_socket_shutdown »
  • PHP Manual
  • Fonctions sur les flux
  • Crée un socket serveur Unix ou Internet

stream_socket_server

(PHP 5, PHP 7)

stream_socket_server — Crée un socket serveur Unix ou Internet

Description

resource stream_socket_server ( string $local_socket [, int &$errno [, string &$errstr [, int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN [, resource $context ]]]] )

stream_socket_server() crée un flux ou un datagramme sur le socket spécifié local_socket.

stream_socket_server() ne fait que créer un socket et, pour accepter des connexions, vous devez utiliser stream_socket_accept().

Liste de paramètres

local_socket

Le type de socket créé est déterminé par le transport spécifié avec le formatage URL suivant : transport://target.

Pour un socket Internet,(AF_INET) comme TCP et UDP, la cible de remote_socket sera une adresse IP ou un nom d'hôte suivi de deux points et d'un numéro de port. Pour un socket Unix, la cible doit être un fichier de socket du système.

En fonction de votre environnement, les sockets de domaine Unix peuvent être indisponibles. Une liste des transports disponibles est accessible via stream_get_transports(). Voyez Liste des modes de transport de sockets disponibles pour connaître la liste des transports natifs.

errno

Si les arguments optionnels errno et errstr sont présents, ils seront configurés pour indiquer le niveau d'erreur actuel des fonctions système socket(), bind() et listen(). Si la valeur retournée dans errno est 0, et que la fonction retourne FALSE, c'est une indication que l'erreur est survenue avant l'appel à bind(). Ceci est probablement dû à un problème d'initialisation du socket. Notez que les arguments errno et errstr seront toujours passés par référence.

errstr

Voyez la description de errno.

flags

Un champ de bits, qui peut être la combinaison de n'importe quelle option de création de socket.

Note:

Pour les sockets UDP, vous devez utiliser la constante STREAM_SERVER_BIND comme valeur du paramètre flags.

context

Valeurs de retour

Retourne le flux créé, ou bien FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec stream_socket_server()

<?php
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
  echo "$errstr ($errno)<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fputs ($conn, 'L\'heure locale est ' . date('n/j/Y g:i a') . "\n");
    fclose ($conn);
  }
  fclose($socket);
}
?>

L'exemple ci-dessous vous montre comment lire la date et l'heure sur un service UDP (port 13) sur votre propre machine, tel que présenté avec la fonction stream_socket_client() :

Note: La plupart des systèmes ont besoin d'un accès administrateur pour ouvrir un socket sur les ports en dessous de 1024.

Exemple #2 Utiliser un serveur de socket UDP

<?php
$socket = stream_socket_server("udp://0.0.0.0:13", $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
  echo "ERROR: $errno - $errstr<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, date("D M j H:i:s Y\r\n"));
    fclose($conn);
  }
  fclose($socket);
}
?>

Notes

Note: Lors de la spécification d'adresses IPv6 au format numérique (e.g. fe80::1) vous devez placer l'adresse IP entre crochets. Par exemple : tcp://[fe80::1]:80.

Voir aussi

  • stream_socket_client() - Ouvre une connexion socket Internet ou Unix
  • stream_set_blocking() - Configure le mode bloquant d'un flux
  • stream_set_timeout() - Configure la durée d'expiration d'un flux
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fgetss() - Renvoie la ligne courante du fichier et élimine les balises HTML
  • fwrite() - Écrit un fichier en mode binaire
  • fclose() - Ferme un fichier
  • feof() - Teste la fin du fichier
  • Extension Curl


Arrête une connexion full-duplex

  • « stream_socket_server
  • stream_supports_lock »
  • PHP Manual
  • Fonctions sur les flux
  • Arrête une connexion full-duplex

stream_socket_shutdown

(PHP 5 >= 5.2.1, PHP 7)

stream_socket_shutdown — Arrête une connexion full-duplex

Description

bool stream_socket_shutdown ( resource $stream , int $how )

Arrête (partiellement ou non) une connexion full-duplex.

Note:

Le ou les buffers associés peuvent ou non être vidés.

Liste de paramètres

stream

Un flux ouvert (ouvert avec la fonction stream_socket_client(), par exemple)

how

Une des constantes suivantes : STREAM_SHUT_RD (désactive les réceptions futures), STREAM_SHUT_WR (désactive les transmissions futures) ou STREAM_SHUT_RDWR (désactive les réceptions ou les transmissions futures).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec stream_socket_shutdown()

<?php

$server = stream_socket_server('tcp://127.0.0.1:1337');
$client = stream_socket_client('tcp://127.0.0.1:1337');

var_dump(fputs($client, "Bonjour"));

stream_socket_shutdown($client, STREAM_SHUT_WR);
var_dump(fputs($client, "Bonjour")); // ne fonctionne actuellement pas

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(5)

Notice: fputs(): send of 5 bytes failed with errno=32 Broken pipe in test.php on line 9
int(0)

Voir aussi

  • fclose() - Ferme un fichier


Indique si le flux supporte les verrous

  • « stream_socket_shutdown
  • stream_wrapper_register »
  • PHP Manual
  • Fonctions sur les flux
  • Indique si le flux supporte les verrous

stream_supports_lock

(PHP 5 >= 5.3.0, PHP 7)

stream_supports_lock — Indique si le flux supporte les verrous

Description

bool stream_supports_lock ( resource $stream )

Indique si le flux supporte les verrous via la fonction flock().

Liste de paramètres

stream

Le flux à tester.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • flock() - Verrouille le fichier


Enregistre un gestionnaire d'URL

  • « stream_supports_lock
  • stream_wrapper_restore »
  • PHP Manual
  • Fonctions sur les flux
  • Enregistre un gestionnaire d'URL

stream_wrapper_register

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

stream_wrapper_register — Enregistre un gestionnaire d'URL

Description

bool stream_wrapper_register ( string $protocol , string $classname [, int $flags = 0 ] )

stream_wrapper_register() permet d'implémenter des gestionnaires de protocole et de flux, à utiliser avec toutes les autres fonctions de fichiers, comme fopen(), fread(), etc.

Liste de paramètres

protocol

Le nom du gestionnaire à enregistrer.

classname

La classe qui implémente le protocole protocol.

flags

Doit être configuré à STREAM_IS_URL si protocol est un protocole à URL. Par défaut, cette option vaut 0, et est valable pour les flux locaux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

stream_wrapper_register() retourne FALSE si le protocole protocol a déjà un gestionnaire.

Historique

Version | Description
5.2.4 | Ajout du paramètre flags.

Exemples

Exemple #1 Comment enregistrer un gestionnaire de flux

<?php
$existed = in_array("var", stream_get_wrappers());
if ($existed) {
    stream_wrapper_unregister("var");
}
stream_wrapper_register("var", "VariableStream");
$myvar = "";

$fp = fopen("var://myvar", "r+");

fwrite($fp, "line1\n");
fwrite($fp, "line2\n");
fwrite($fp, "line3\n");

rewind($fp);
while (!feof($fp)) {
    echo fgets($fp);
}
fclose($fp);
var_dump($myvar);

if ($existed) {
    stream_wrapper_restore("var");
}

?>

L'exemple ci-dessus va afficher :

line1
line2
line3
string(18) "line1
line2
line3
"

Voir aussi

  • Le prototype de classe streamWrapper
  • Exemple de classe enregistrée comme gestionnaire de flux
  • stream_wrapper_unregister() - Supprime un gestionnaire d'URL
  • stream_wrapper_restore() - Restaure un gestionnaire d'URL supprimé
  • stream_get_wrappers() - Liste les gestionnaires de flux


Restaure un gestionnaire d'URL supprimé

  • « stream_wrapper_register
  • stream_wrapper_unregister »
  • PHP Manual
  • Fonctions sur les flux
  • Restaure un gestionnaire d'URL supprimé

stream_wrapper_restore

(PHP 5 >= 5.1.0, PHP 7)

stream_wrapper_restore — Restaure un gestionnaire d'URL supprimé

Description

bool stream_wrapper_restore ( string $protocol )

Restaure le gestionnaire protocol précédemment supprimé avec stream_wrapper_unregister().

Liste de paramètres

protocol

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Supprime un gestionnaire d'URL

  • « stream_wrapper_restore
  • Tidy »
  • PHP Manual
  • Fonctions sur les flux
  • Supprime un gestionnaire d'URL

stream_wrapper_unregister

(PHP 5 >= 5.1.0, PHP 7)

stream_wrapper_unregister — Supprime un gestionnaire d'URL

Description

bool stream_wrapper_unregister ( string $protocol )

Supprime le gestionnaire d'URL avec le protocole protocol. Une fois que le gestionnaire est retiré, vous pouvez installer le vôtre, avec la fonction stream_wrapper_register() ou le réactiver plus tard avec stream_wrapper_restore().

Liste de paramètres

protocol

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Tidy

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Exemple Tidy
  • tidy — La classe tidy
    • tidy::body — Retourne un objet TidyNode, commencé à partir de la balise <body>
    • tidy::cleanRepair — Effectue les opérations de nettoyage et de réparation préparées pour un fichier HTML
    • tidy::__construct — Construit un nouvel objet tidy
    • tidy::diagnose — Établit le diagnostic pour le document analysé et réparé
    • tidy::$errorBuffer — Retourne les alertes et erreurs qui sont survenues lors de l'analyse du document
    • tidy::getConfig — Lit la configuration Tidy courante
    • tidy::getHtmlVer — Détecte le version du code HTML utilisée dans un document
    • Tidy::getopt — Retourne la valeur de l'option de configuration Tidy
    • tidy::getOptDoc — Retourne la documentation pour le nom de l'option donnée
    • tidy::getRelease — Retourne la date de publication (version) de la bibliothèque Tidy
    • tidy::getStatus — Retourne le statut du document spécifié
    • tidy::head — Retourne un objet tidyNode à partir de la balise <head>
    • tidy::html — Retourne un objet tidyNode commençant à la balise <html>
    • tidy::isXhtml — Indique si le document est un document XHTML
    • tidy::isXml — Indique si le document est un document XML générique (non HTML/XHTML)
    • tidy::parseFile — Analyse les balises d'un fichier ou d'une URI
    • tidy::parseString — Analyse un document HTML contenu dans une chaîne
    • tidy::repairFile — Répare un fichier et le renvoie en tant que chaîne
    • tidy::repairString — Répare une chaîne HTML en utilisant un fichier de configuration optionnel
    • tidy::root — Retourne un objet tidyNode représentant la racine du document HTML
  • tidyNode — La classe tidyNode
    • tidyNode::getParent — Retourne le noeud parent du noeud courant
    • tidyNode::hasChildren — Indique si le noeud a des enfants
    • tidyNode::hasSiblings — Indique si le noeud a des frères
    • tidyNode::isAsp — Vérifie si le noeud est du code ASP
    • tidyNode::isComment — Indique si le noeud représente un commentaire
    • tidyNode::isHtml — Indique si le noeud est une partie d'un document HTML
    • tidyNode::isJste — Indique si ce noeud est JSTE
    • tidyNode::isPhp — Indique si un noeud contient du code PHP
    • tidyNode::isText — Indique si le noeud représente du texte (sans balise)
  • Fonctions Tidy
    • ob_tidyhandler — Fonction de rappel ob_start pour réparer le buffer
    • tidy_access_count — Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document
    • tidy_config_count — Retourne le nombre d'erreurs de configuration Tidy rencontrées dans le document
    • tidy_error_count — Retourne le nombre d'erreurs Tidy rencontrées dans le document
    • tidy_get_output — Retourne une chaîne représentant les balises telles qu'analysées par Tidy
    • tidy_load_config — Charge un fichier de configuration ASCII Tidy avec l'encodage spécifié
    • tidy_reset_config — Redonne les valeurs de configuration par défaut de Tidy
    • tidy_save_config — Sauve la configuration courante dans un fichier
    • tidy_set_encoding — Modifie le jeu de caractères pour les entrées/sorties de l'analyseur Tidy
    • tidy_setopt — Modifie la valeur de l'option de configuration Tidy
    • tidy_warning_count — Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié


Introduction

Tidy est une interface avec la bibliothèque Tidy HTML, pour nettoyer et manipuler les documents HTML, et les traiter sous forme de balises hiérarchisées.


Pré-requis

Pour utiliser Tidy, vous devez disposer de la bibliothèque libtidy, qui est téléchargeable sur le site de » http://tidy.sourceforge.net/.


Installation

Tidy est packagé avec PHP 5 et supérieur et est installé grâce à l'option de configuration --with-tidy

Les utilisateurs de PHP 4 doivent utiliser la (vieille) extension PECL ici: » http://pecl.php.net/package/tidy.

Note:

Tidy 1.0 fonctionne avec PHP 4, alors que des versions plus récentes fonctionnent avec PHP 5 et supérieur.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Tidy
Nom | Défaut | Modifiable | Historique
tidy.default_config | "" | PHP_INI_SYSTEM |
tidy.clean_output | "0" | PHP_INI_USER | PHP_INI_PERDIR avant PHP 5.4.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

tidy.default_config string

Chemin par défaut pour le fichier de configuration Tidy.

tidy.clean_output boolean

Activer ou désactiver la réparation du HTML par Tidy

Avertissement

N'activez pas tidy.clean_output si vous générez autre chose que du HTML, comme des images dynamiques.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Chaque TIDY_TAG_XXX représente un balise HTML. Par exemple, TIDY_TAG_A représente la balise "<a href="XX">link</a>". Chaque TIDY_ATTR_XXX représente un attribut HTML. Par exemple, TIDY_ATTR_HREF représentera l'attribut href dans l'exemple précédent.

Les constantes suivantes sont définies par cette extension :

Constantes des balises tidy
constante
TIDY_TAG_UNKNOWN
TIDY_TAG_A
TIDY_TAG_ABBR
TIDY_TAG_ACRONYM
TIDY_TAG_ALIGN
TIDY_TAG_APPLET
TIDY_TAG_AREA
TIDY_TAG_B
TIDY_TAG_BASE
TIDY_TAG_BASEFONT
TIDY_TAG_BDO
TIDY_TAG_BGSOUND
TIDY_TAG_BIG
TIDY_TAG_BLINK
TIDY_TAG_BLOCKQUOTE
TIDY_TAG_BODY
TIDY_TAG_BR
TIDY_TAG_BUTTON
TIDY_TAG_CAPTION
TIDY_TAG_CENTER
TIDY_TAG_CITE
TIDY_TAG_CODE
TIDY_TAG_COL
TIDY_TAG_COLGROUP
TIDY_TAG_COMMENT
TIDY_TAG_DD
TIDY_TAG_DEL
TIDY_TAG_DFN
TIDY_TAG_DIR
TIDY_TAG_DIV
TIDY_TAG_DL
TIDY_TAG_DT
TIDY_TAG_EM
TIDY_TAG_EMBED
TIDY_TAG_FIELDSET
TIDY_TAG_FONT
TIDY_TAG_FORM
TIDY_TAG_FRAME
TIDY_TAG_FRAMESET
TIDY_TAG_H1
TIDY_TAG_H2
TIDY_TAG_H3
TIDY_TAG_H4
TIDY_TAG_H5
TIDY_TAG_H6
TIDY_TAG_HEAD
TIDY_TAG_HR
TIDY_TAG_HTML
TIDY_TAG_I
TIDY_TAG_IFRAME
TIDY_TAG_ILAYER
TIDY_TAG_IMG
TIDY_TAG_INPUT
TIDY_TAG_INS
TIDY_TAG_ISINDEX
TIDY_TAG_KBD
TIDY_TAG_KEYGEN
TIDY_TAG_LABEL
TIDY_TAG_LAYER
TIDY_TAG_LEGEND
TIDY_TAG_LI
TIDY_TAG_LINK
TIDY_TAG_LISTING
TIDY_TAG_MAP
TIDY_TAG_MARQUEE
TIDY_TAG_MENU
TIDY_TAG_META
TIDY_TAG_MULTICOL
TIDY_TAG_NOBR
TIDY_TAG_NOEMBED
TIDY_TAG_NOFRAMES
TIDY_TAG_NOLAYER
TIDY_TAG_NOSAVE
TIDY_TAG_NOSCRIPT
TIDY_TAG_OBJECT
TIDY_TAG_OL
TIDY_TAG_OPTGROUP
TIDY_TAG_OPTION
TIDY_TAG_P
TIDY_TAG_PARAM
TIDY_TAG_PLAINTEXT
TIDY_TAG_PRE
TIDY_TAG_Q
TIDY_TAG_RP
TIDY_TAG_RT
TIDY_TAG_RTC
TIDY_TAG_RUBY
TIDY_TAG_S
TIDY_TAG_SAMP
TIDY_TAG_SCRIPT
TIDY_TAG_SELECT
TIDY_TAG_SERVER
TIDY_TAG_SERVLET
TIDY_TAG_SMALL
TIDY_TAG_SPACER
TIDY_TAG_SPAN
TIDY_TAG_STRIKE
TIDY_TAG_STRONG
TIDY_TAG_STYLE
TIDY_TAG_SUB
TIDY_TAG_TABLE
TIDY_TAG_TBODY
TIDY_TAG_TD
TIDY_TAG_TEXTAREA
TIDY_TAG_TFOOT
TIDY_TAG_TH
TIDY_TAG_THEAD
TIDY_TAG_TITLE
TIDY_TAG_TR
TIDY_TAG_TT
TIDY_TAG_U
TIDY_TAG_UL
TIDY_TAG_VAR
TIDY_TAG_WBR
TIDY_TAG_XMP

Constantes des attributs tidy
Constante
TIDY_ATTR_UNKNOWN
TIDY_ATTR_ABBR
TIDY_ATTR_ACCEPT
TIDY_ATTR_ACCEPT_CHARSET
TIDY_ATTR_ACCESSKEY
TIDY_ATTR_ACTION
TIDY_ATTR_ADD_DATE
TIDY_ATTR_ALIGN
TIDY_ATTR_ALINK
TIDY_ATTR_ALT
TIDY_ATTR_ARCHIVE
TIDY_ATTR_AXIS
TIDY_ATTR_BACKGROUND
TIDY_ATTR_BGCOLOR
TIDY_ATTR_BGPROPERTIES
TIDY_ATTR_BORDER
TIDY_ATTR_BORDERCOLOR
TIDY_ATTR_BOTTOMMARGIN
TIDY_ATTR_CELLPADDING
TIDY_ATTR_CELLSPACING
TIDY_ATTR_CHAR
TIDY_ATTR_CHAROFF
TIDY_ATTR_CHARSET
TIDY_ATTR_CHECKED
TIDY_ATTR_CITE
TIDY_ATTR_CLASS
TIDY_ATTR_CLASSID
TIDY_ATTR_CLEAR
TIDY_ATTR_CODE
TIDY_ATTR_CODEBASE
TIDY_ATTR_CODETYPE
TIDY_ATTR_COLOR
TIDY_ATTR_COLS
TIDY_ATTR_COLSPAN
TIDY_ATTR_COMPACT
TIDY_ATTR_CONTENT
TIDY_ATTR_COORDS
TIDY_ATTR_DATA
TIDY_ATTR_DATAFLD
TIDY_ATTR_DATAPAGESIZE
TIDY_ATTR_DATASRC
TIDY_ATTR_DATETIME
TIDY_ATTR_DECLARE
TIDY_ATTR_DEFER
TIDY_ATTR_DIR
TIDY_ATTR_DISABLED
TIDY_ATTR_ENCODING
TIDY_ATTR_ENCTYPE
TIDY_ATTR_FACE
TIDY_ATTR_FOR
TIDY_ATTR_FRAME
TIDY_ATTR_FRAMEBORDER
TIDY_ATTR_FRAMESPACING
TIDY_ATTR_GRIDX
TIDY_ATTR_GRIDY
TIDY_ATTR_HEADERS
TIDY_ATTR_HEIGHT
TIDY_ATTR_HREF
TIDY_ATTR_HREFLANG
TIDY_ATTR_HSPACE
TIDY_ATTR_HTTP_EQUIV
TIDY_ATTR_ID
TIDY_ATTR_ISMAP
TIDY_ATTR_LABEL
TIDY_ATTR_LANG
TIDY_ATTR_LANGUAGE
TIDY_ATTR_LAST_MODIFIED
TIDY_ATTR_LAST_VISIT
TIDY_ATTR_LEFTMARGIN
TIDY_ATTR_LINK
TIDY_ATTR_LONGDESC
TIDY_ATTR_LOWSRC
TIDY_ATTR_MARGINHEIGHT
TIDY_ATTR_MARGINWIDTH
TIDY_ATTR_MAXLENGTH
TIDY_ATTR_MEDIA
TIDY_ATTR_METHOD
TIDY_ATTR_MULTIPLE
TIDY_ATTR_NAME
TIDY_ATTR_NOHREF
TIDY_ATTR_NORESIZE
TIDY_ATTR_NOSHADE
TIDY_ATTR_NOWRAP
TIDY_ATTR_OBJECT
TIDY_ATTR_OnAFTERUPDATE
TIDY_ATTR_OnBEFOREUNLOAD
TIDY_ATTR_OnBEFOREUPDATE
TIDY_ATTR_OnBLUR
TIDY_ATTR_OnCHANGE
TIDY_ATTR_OnCLICK
TIDY_ATTR_OnDATAAVAILABLE
TIDY_ATTR_OnDATASETCHANGED
TIDY_ATTR_OnDATASETCOMPLETE
TIDY_ATTR_OnDBLCLICK
TIDY_ATTR_OnERRORUPDATE
TIDY_ATTR_OnFOCUS
TIDY_ATTR_OnKEYDOWN
TIDY_ATTR_OnKEYPRESS
TIDY_ATTR_OnKEYUP
TIDY_ATTR_OnLOAD
TIDY_ATTR_OnMOUSEDOWN
TIDY_ATTR_OnMOUSEMOVE
TIDY_ATTR_OnMOUSEOUT
TIDY_ATTR_OnMOUSEOVER
TIDY_ATTR_OnMOUSEUP
TIDY_ATTR_OnRESET
TIDY_ATTR_OnROWENTER
TIDY_ATTR_OnROWEXIT
TIDY_ATTR_OnSELECT
TIDY_ATTR_OnSUBMIT
TIDY_ATTR_OnUNLOAD
TIDY_ATTR_PROFILE
TIDY_ATTR_PROMPT
TIDY_ATTR_RBSPAN
TIDY_ATTR_READONLY
TIDY_ATTR_REL
TIDY_ATTR_REV
TIDY_ATTR_RIGHTMARGIN
TIDY_ATTR_ROWS
TIDY_ATTR_ROWSPAN
TIDY_ATTR_RULES
TIDY_ATTR_SCHEME
TIDY_ATTR_SCOPE
TIDY_ATTR_SCROLLING
TIDY_ATTR_SELECTED
TIDY_ATTR_SHAPE
TIDY_ATTR_SHOWGRID
TIDY_ATTR_SHOWGRIDX
TIDY_ATTR_SHOWGRIDY
TIDY_ATTR_SIZE
TIDY_ATTR_SPAN
TIDY_ATTR_SRC
TIDY_ATTR_STANDBY
TIDY_ATTR_START
TIDY_ATTR_STYLE
TIDY_ATTR_SUMMARY
TIDY_ATTR_TABINDEX
TIDY_ATTR_TARGET
TIDY_ATTR_TEXT
TIDY_ATTR_TITLE
TIDY_ATTR_TOPMARGIN
TIDY_ATTR_TYPE
TIDY_ATTR_USEMAP
TIDY_ATTR_VALIGN
TIDY_ATTR_VALUE
TIDY_ATTR_VALUETYPE
TIDY_ATTR_VERSION
TIDY_ATTR_VLINK
TIDY_ATTR_VSPACE
TIDY_ATTR_WIDTH
TIDY_ATTR_WRAP
TIDY_ATTR_XML_LANG
TIDY_ATTR_XML_SPACE
TIDY_ATTR_XMLNS

Constantes de types de noeud tidy
Constante | Description
TIDY_NODETYPE_ROOT | Noeud racine
TIDY_NODETYPE_DOCTYPE | doctype
TIDY_NODETYPE_COMMENT | commentaire HTML
TIDY_NODETYPE_PROCINS | Instruction d'analyse
TIDY_NODETYPE_TEXT | Texte
TIDY_NODETYPE_START | Balise de début
TIDY_NODETYPE_END | Balise de fin
TIDY_NODETYPE_STARTEND | Balise vide
TIDY_NODETYPE_CDATA | CDATA
TIDY_NODETYPE_SECTION | section XML
TIDY_NODETYPE_ASP | code ASP
TIDY_NODETYPE_JSTE | code JSTE
TIDY_NODETYPE_PHP | code PHP
TIDY_NODETYPE_XMLDECL | Déclaration XML


  • « Constantes pré-définies
  • Exemple Tidy »
  • PHP Manual
  • Tidy
  • Exemples

Exemples

Sommaire

  • Exemple Tidy


Exemple Tidy

Ce simple exemple montre l'utilisation de base de Tidy.

Exemple #1 Utilisation de base de Tidy

<?php
ob_start();
?>
<html>un document HTML</html>
<?php
$html = ob_get_clean();

// Configuration
$config = array(
           'indent'         => true,
           'output-xhtml'   => true,
           'wrap'           => 200);

// Tidy
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();

// Affichage
echo $tidy;
?>


La classe tidy

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

Introduction

Une balise HTML, telle que détectée par tidy.

Synopsis de la classe

tidy {
/* Propriétés */
string $errorBuffer;
/* Méthodes */
tidyNode body ( void )
bool cleanRepair ( void )
__construct ([ string $filename [, mixed $config [, string $encoding [, bool $use_include_path ]]]] )
bool diagnose ( void )
array getConfig ( void )
int getHtmlVer ( void )
mixed getOpt ( string $option )
string getOptDoc ( string $optname )
string getRelease ( void )
int getStatus ( void )
tidyNode head ( void )
tidyNode html ( void )
bool isXhtml ( void )
bool isXml ( void )
bool parseFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )
bool parseString ( string $input [, mixed $config [, string $encoding ]] )
string repairFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )
string repairString ( string $data [, mixed $config [, string $encoding ]] )
tidyNode root ( void )
}

Sommaire

  • tidy::body — Retourne un objet TidyNode, commencé à partir de la balise <body>
  • tidy::cleanRepair — Effectue les opérations de nettoyage et de réparation préparées pour un fichier HTML
  • tidy::__construct — Construit un nouvel objet tidy
  • tidy::diagnose — Établit le diagnostic pour le document analysé et réparé
  • tidy::$errorBuffer — Retourne les alertes et erreurs qui sont survenues lors de l'analyse du document
  • tidy::getConfig — Lit la configuration Tidy courante
  • tidy::getHtmlVer — Détecte le version du code HTML utilisée dans un document
  • Tidy::getopt — Retourne la valeur de l'option de configuration Tidy
  • tidy::getOptDoc — Retourne la documentation pour le nom de l'option donnée
  • tidy::getRelease — Retourne la date de publication (version) de la bibliothèque Tidy
  • tidy::getStatus — Retourne le statut du document spécifié
  • tidy::head — Retourne un objet tidyNode à partir de la balise <head>
  • tidy::html — Retourne un objet tidyNode commençant à la balise <html>
  • tidy::isXhtml — Indique si le document est un document XHTML
  • tidy::isXml — Indique si le document est un document XML générique (non HTML/XHTML)
  • tidy::parseFile — Analyse les balises d'un fichier ou d'une URI
  • tidy::parseString — Analyse un document HTML contenu dans une chaîne
  • tidy::repairFile — Répare un fichier et le renvoie en tant que chaîne
  • tidy::repairString — Répare une chaîne HTML en utilisant un fichier de configuration optionnel
  • tidy::root — Retourne un objet tidyNode représentant la racine du document HTML


Retourne un objet TidyNode, commencé à partir de la balise <body>

  • « tidy
  • tidy::cleanRepair »
  • PHP Manual
  • tidy
  • Retourne un objet TidyNode, commencé à partir de la balise <body>

tidy::body

tidy_get_body

(PHP 5, PHP 7, PECL tidy 0.5.2-1.0)

tidy::body -- tidy_get_body — Retourne un objet TidyNode, commencé à partir de la balise <body>

Description

Style orienté objet

tidyNode tidy::body ( void )

Style procédural

tidyNode tidy_get_body ( tidy $object )

Retourne un objet TidyNode commençant à partir de la balise <body>.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne un objet tidyNode en commençant par la balise <body> de l'arbre analysé tidy.

Exemples

Exemple #1 Exemple avec tidy::getBody()

<?php
$html = '
<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>paragraph</p>
 </body>
</html>';

$tidy = tidy_parse_string($html);

$body = tidy_get_body($tidy);
echo $body->value;
?>

L'exemple ci-dessus va afficher :

<body>
 <p>paragraph</p>
</body>

Notes

Note: Cette fonction n'est disponible qu'avec le Zend Engine 2, c'est à dire PHP >= 5.0.0.

Voir aussi

  • tidy::head() - Retourne un objet tidyNode à partir de la balise <head>
  • tidy::html() - Retourne un objet tidyNode commençant à la balise <html>


Effectue les opérations de nettoyage et de réparation préparées pour un fichier HTML

  • « tidy::body
  • tidy::__construct »
  • PHP Manual
  • tidy
  • Effectue les opérations de nettoyage et de réparation préparées pour un fichier HTML

tidy::cleanRepair

tidy_clean_repair

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::cleanRepair -- tidy_clean_repair — Effectue les opérations de nettoyage et de réparation préparées pour un fichier HTML

Description

Style orienté objet

bool tidy::cleanRepair ( void )

Style procédural

bool tidy_clean_repair ( tidy $object )

Nettoie et répare l'objet Tidy object passé en argument.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec tidy::cleanrepair()

<?php
$html = '<p>test</I>';

$tidy = tidy_parse_string($html);
$tidy->cleanRepair();

echo $tidy;
?>

L'exemple ci-dessus va afficher :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
 <head>
  <title></title>
 </head>
 <body>
  <p>test</p>
 </body>
</html>

Voir aussi

  • tidy::repairFile() - Répare un fichier et le renvoie en tant que chaîne
  • tidy::repairString() - Répare une chaîne HTML en utilisant un fichier de configuration optionnel


Construit un nouvel objet tidy

  • « tidy::cleanRepair
  • tidy::diagnose »
  • PHP Manual
  • tidy
  • Construit un nouvel objet tidy

tidy::__construct

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::__construct — Construit un nouvel objet tidy

Description

tidy::__construct ([ string $filename [, mixed $config [, string $encoding [, bool $use_include_path ]]]] )

construit un nouvel objet tidy.

Liste de paramètres

filename

Si le paramètre filename est fourni, cette fonction lira également ce fichier et initialisera l'objet avec ce fichier, agissant de la même façon que la fonction tidy_parse_file().

config

La configuration config peut être passée sous forme de tableau ou de chaîne de caractères. Si une chaîne de caractères est passée, elle est interprétée comme le nom du fichier de configuration, et sinon, elle est interprétée comme les options elles-mêmes.

Pour une explication sur chaque option, voyez » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Le paramètre encoding configure l'encodage pour les documents d'entrée et de sortie. Les valeurs possibles sont ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

use_include_path

Indique s'il faut rechercher le fichier dans l' include_path.

Valeurs de retour

Retourne un nouvel objet tidy.

Exemples

Exemple #1 Exemple avec tidy::__construct()

<?php

$html = <<< HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>title</title></head>
<body>
<p>paragraph <bt />
text</p>
</body></html>

HTML;

$tidy = new tidy();
$tidy->ParseString($html);

$tidy->cleanRepair();

if ($tidy->errorBuffer) {
    echo "Les erreurs suivantes ont été détectées :\n";
    echo $tidy->errorBuffer;
}

?>

L'exemple ci-dessus va afficher :

Les erreurs suivantes ont été détectées :
line 8 column 14 - Error: <bt> is not recognized!
line 8 column 14 - Warning: discarding unexpected <bt>

Voir aussi

  • tidy::parseFile() - Analyse les balises d'un fichier ou d'une URI
  • tidy::parseString() - Analyse un document HTML contenu dans une chaîne


Établit le diagnostic pour le document analysé et réparé

  • « tidy::__construct
  • tidy::$errorBuffer »
  • PHP Manual
  • tidy
  • Établit le diagnostic pour le document analysé et réparé

tidy::diagnose

tidy_diagnose

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::diagnose -- tidy_diagnose — Établit le diagnostic pour le document analysé et réparé

Description

Style orienté objet

bool tidy::diagnose ( void )

Style procédural

bool tidy_diagnose ( tidy $object )

Lance un diagnostic sur l'objet object Tidy donné, en ajoutant quelques informations concernant le document dans la pile d'erreurs.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec tidy::diagnose()

<?php

$html = <<< HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<p>paragraph</p>
HTML;

$tidy = tidy_parse_string($html);
$tidy->cleanRepair();

// notez la différence entre les deux sorties
echo $tidy->errorBuffer . "\n";

$tidy->diagnose();
echo $tidy->errorBuffer;

?>

L'exemple ci-dessus va afficher :

line 4 column 1 - Warning: <p> isn't allowed in <head> elements
line 4 column 1 - Warning: inserting missing 'title' element
line 4 column 1 - Warning: <p> isn't allowed in <head> elements
line 4 column 1 - Warning: inserting missing 'title' element
Info: Doctype given is "-//W3C//DTD XHTML 1.0 Strict//EN"
Info: Document content looks like XHTML 1.0 Strict
2 warnings, 0 errors were found!

Voir aussi

  • tidy::errorBuffer()


Retourne les alertes et erreurs qui sont survenues lors de l'analyse du document

  • « tidy::diagnose
  • tidy::getConfig »
  • PHP Manual
  • tidy
  • Retourne les alertes et erreurs qui sont survenues lors de l'analyse du document

tidy::$errorBuffer

tidy_get_error_buffer

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::$errorBuffer -- tidy_get_error_buffer — Retourne les alertes et erreurs qui sont survenues lors de l'analyse du document

Description

Style orienté objet (propriété) :

string $tidy->errorBuffer;

Style procédural:

string tidy_get_error_buffer ( tidy $tidy )

Retourne les erreurs et les avertissements rencontrés lors de l'analyse du document spécifié.

Liste de paramètres

tidy

L'objet Tidy

Valeurs de retour

Retourne le buffer d'erreurs sous forme de chaîne de caractères.

Exemples

Exemple #1 Exemple avec tidy_get_error_buffer()

<?php
$html = '<p>paragraph</p>';

$tidy = tidy_parse_string($html);

echo tidy_get_error_buffer($tidy);
/* ou en OO: */
echo $tidy->errorBuffer;
?>

L'exemple ci-dessus va afficher :

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: inserting missing 'title' element

Voir aussi

  • tidy_access_count() - Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document
  • tidy_error_count() - Retourne le nombre d'erreurs Tidy rencontrées dans le document
  • tidy_warning_count() - Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié


Lit la configuration Tidy courante

  • « tidy::$errorBuffer
  • tidy::getHtmlVer »
  • PHP Manual
  • tidy
  • Lit la configuration Tidy courante

tidy::getConfig

tidy_get_config

(PHP 5, PHP 7, PECL tidy >= 0.7.0)

tidy::getConfig -- tidy_get_config — Lit la configuration Tidy courante

Description

Style orienté objet

array tidy::getConfig ( void )

Style procédural

array tidy_get_config ( tidy $object )

Retourne un tableau avec les options de configuration utilisées par l'objet object Tidy spécifié.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne un tableau d'options de configurations.

Pour une explication sur chaque option, voyez » http://tidy.sourceforge.net/docs/quickref.html.

Exemples

Exemple #1 Exemple avec tidy::getConfig()

<?php
$html = '<p>test</p>';
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap' => 200);

$tidy = tidy_parse_string($html, $config);

print_r($tidy->getConfig());
?>

L'exemple ci-dessus va afficher :

Array
(
    [indent-spaces] => 2
    [wrap] => 200
    [tab-size] => 8
    [char-encoding] => 1
    [input-encoding] => 3
    [output-encoding] => 1
    [newline] => 1
    [doctype-mode] => 1
    [doctype] =>
    [repeated-attributes] => 1
    [alt-text] =>
    [slide-style] =>
    [error-file] =>
    [output-file] =>
    [write-back] =>
    [markup] => 1
    [show-warnings] => 1
    [quiet] =>
    [indent] => 1
    [hide-endtags] =>
    [input-xml] =>
    [output-xml] => 1
    [output-xhtml] => 1
    [output-html] =>
    [add-xml-decl] =>
    [uppercase-tags] =>
    [uppercase-attributes] =>
    [bare] =>
    [clean] =>
    [logical-emphasis] =>
    [drop-proprietary-attributes] =>
    [drop-font-tags] =>
    [drop-empty-paras] => 1
    [fix-bad-comments] => 1
    [break-before-br] =>
    [split] =>
    [numeric-entities] =>
    [quote-marks] =>
    [quote-nbsp] => 1
    [quote-ampersand] => 1
    [wrap-attributes] =>
    [wrap-script-literals] =>
    [wrap-sections] => 1
    [wrap-asp] => 1
    [wrap-jste] => 1
    [wrap-php] => 1
    [fix-backslash] => 1
    [indent-attributes] =>
    [assume-xml-procins] =>
    [add-xml-space] =>
    [enclose-text] =>
    [enclose-block-text] =>
    [keep-time] =>
    [word-2000] =>
    [tidy-mark] =>
    [gnu-emacs] =>
    [gnu-emacs-file] =>
    [literal-attributes] =>
    [show-body-only] =>
    [fix-uri] => 1
    [lower-literals] => 1
    [hide-comments] =>
    [indent-cdata] =>
    [force-output] => 1
    [show-errors] => 6
    [ascii-chars] => 1
    [join-classes] =>
    [join-styles] => 1
    [escape-cdata] =>
    [language] =>
    [ncr] => 1
    [output-bom] => 2
    [replace-color] =>
    [css-prefix] =>
    [new-inline-tags] =>
    [new-blocklevel-tags] =>
    [new-empty-tags] =>
    [new-pre-tags] =>
    [accessibility-check] => 0
    [vertical-space] =>
    [punctuation-wrap] =>
    [merge-divs] => 1
)

Voir aussi

  • tidy_reset_config() - Redonne les valeurs de configuration par défaut de Tidy
  • tidy_save_config() - Sauve la configuration courante dans un fichier


Détecte le version du code HTML utilisée dans un document

  • « tidy::getConfig
  • Tidy::getopt »
  • PHP Manual
  • tidy
  • Détecte le version du code HTML utilisée dans un document

tidy::getHtmlVer

tidy_get_html_ver

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::getHtmlVer -- tidy_get_html_ver — Détecte le version du code HTML utilisée dans un document

Description

Style orienté objet

int tidy::getHtmlVer ( void )

Style procédural

int tidy_get_html_ver ( tidy $object )

Retourne la version détectée du code HTML pour l'objet object Tidy spécifié.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne la version HTML détectée.

Avertissement

tidy_get_html_ver() n'est pas encore implémentée dans la bibliothèque Tidylib elle-même ; de ce fait, elle retournera toujours 0.


Retourne la valeur de l'option de configuration Tidy

  • « tidy::getHtmlVer
  • tidy::getOptDoc »
  • PHP Manual
  • tidy
  • Retourne la valeur de l'option de configuration Tidy

Tidy::getopt

tidy_getopt

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

Tidy::getopt -- tidy_getopt — Retourne la valeur de l'option de configuration Tidy

Description

Style orienté objet

mixed tidy::getOpt ( string $option )

Style procédural

mixed tidy_getopt ( tidy $object , string $option )

tidy_getopt() retourne la valeur de l'option spécifiée option pour l'objet object. Le type retourné dépend du type de l'option spécifiée option.

Liste de paramètres

object

L'objet Tidy

option

Pour une explication sur chaque option, voyez » http://tidy.sourceforge.net/docs/quickref.html.

Valeurs de retour

Retourne la valeur spécifiée par l'option option. Le type de la valeur dépend de l'option elle-même.

Exemples

Exemple #1 Exemple avec Tidy::getopt()

<?php

$html ='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Titre</title></head>
 <body>

  <p><img src="img.png"></p>

  </body></html>';

 $config = array('accessibility-check' => 3,
 'alt-text' => 'du texte');

 $tidy = new tidy();
 $tidy->parseString($html, $config);

 var_dump($tidy->getOpt('accessibility-check')); //entier
 var_dump($tidy->getOpt('lower-literals'));      //booléen
 var_dump($tidy->getOpt('alt-text'));            //chaîne

 ?>

L'exemple ci-dessus va afficher :

int(3)
bool(true)
string(8) "du texte"


Retourne la documentation pour le nom de l'option donnée

  • « Tidy::getopt
  • tidy::getRelease »
  • PHP Manual
  • tidy
  • Retourne la documentation pour le nom de l'option donnée

tidy::getOptDoc

tidy_get_opt_doc

(PHP 5 >= 5.1.0, PHP 7)

tidy::getOptDoc -- tidy_get_opt_doc — Retourne la documentation pour le nom de l'option donnée

Description

Style orienté objet

string tidy::getOptDoc ( string $optname )

Style procédural

string tidy_get_opt_doc ( tidy $object , string $optname )

Retourne la documentation pour le nom de l'option donnée.

Note:

Vous devez posséder au moins libtidy datant du 25 avril 2005 pour que cette fonction soit disponible.

Liste de paramètres

object

L'objet Tidy

optname

Le nom de l'option

Valeurs de retour

Retourne une chaîne de caractères si l'option existe et qu'elle possède de la documentation ou FALSE autrement.

Exemples

Exemple #1 Affichage de toutes les options avec leur documentation et leur valeur par défaut

<?php

$tidy = new tidy;
$config = $tidy->getConfig();

ksort($config);

foreach ($config as $opt => $val) {

    if (!$doc = $tidy->getOptDoc($opt))
        $doc = 'aucune documentation disponible!';

    $val = ($tidy->getOpt($opt) === true)  ? 'true'  : $val;
    $val = ($tidy->getOpt($opt) === false) ? 'false' : $val;

    echo "<p><b>$opt</b> (défaut : '$val')<br />".
         "$doc</p><hr />\n";
}

?>

Voir aussi

  • tidy::getconfig() - Lit la configuration Tidy courante
  • tidy::getopt() - Retourne la valeur de l'option de configuration Tidy


Retourne la date de publication (version) de la bibliothèque Tidy

  • « tidy::getOptDoc
  • tidy::getStatus »
  • PHP Manual
  • tidy
  • Retourne la date de publication (version) de la bibliothèque Tidy

tidy::getRelease

tidy_get_release

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::getRelease -- tidy_get_release — Retourne la date de publication (version) de la bibliothèque Tidy

Description

Style orienté objet

string tidy::getRelease ( void )

Style procédural

string tidy_get_release ( void )

Retourne la date de publication (version) de la bibliothèque Tidy.

Valeurs de retour

Retourne une chaîne contenant la date de publication de la bibliothèque Tidy.


Retourne le statut du document spécifié

  • « tidy::getRelease
  • tidy::head »
  • PHP Manual
  • tidy
  • Retourne le statut du document spécifié

tidy::getStatus

tidy_get_status

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::getStatus -- tidy_get_status — Retourne le statut du document spécifié

Description

Style orienté objet

int tidy::getStatus ( void )

Style procédural

int tidy_get_status ( tidy $object )

Retourne le statut de l'objet object Tidy spécifié. Elle retourne 0 si aucune erreur/avertissement n'a été rencontrée, 1 pour les avertissements d'accessibilité, et 2 pour les erreurs.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne 0 si aucune alerte ou erreur n'est survenue; 1 si des alertes ou des erreurs d'accessibilité ont été identifiées, et 2 pour des erreurs.

Exemples

Exemple #1 Exemple avec tidy::getStatus()

<?php
$html = '<p>paragraphe</i>';
$tidy = tidy_parse_string($html);

$html2 = '<bogus>test</bogus>';
$tidy2 = tidy_parse_string($html2);

echo tidy_get_status($tidy); //1

echo tidy_get_status($tidy2); //2
?>


Retourne un objet tidyNode à partir de la balise <head>

  • « tidy::getStatus
  • tidy::html »
  • PHP Manual
  • tidy
  • Retourne un objet tidyNode à partir de la balise <head>

tidy::head

tidy_get_head

(PHP 5, PHP 7, PECL tidy 0.5.2-1.0.0)

tidy::head -- tidy_get_head — Retourne un objet tidyNode à partir de la balise <head>

Description

Style orienté objet

tidyNode tidy::head ( void )

Style procédural

tidyNode tidy_get_head ( tidy $object )

Retourne un objet tidyNode à partir de la balise <head>.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne l'objet tidyNode.

Exemples

Exemple #1 Exemple avec tidy::head()

<?php
$html = '
<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>paragraph</p>
 </body>
</html>';

$tidy = tidy_parse_string($html);

$head = tidy_get_head($tidy);
echo $head->value;
?>

L'exemple ci-dessus va afficher :

<head>
 <title>test</title>
</head>

Notes

Note: Cette fonction n'est disponible qu'avec le Zend Engine 2, c'est à dire PHP >= 5.0.0.

Voir aussi

  • tidy::body() - Retourne un objet TidyNode, commencé à partir de la balise <body>
  • tidy::html() - Retourne un objet tidyNode commençant à la balise <html>


Retourne un objet tidyNode commençant à la balise <html>

  • « tidy::head
  • tidy::isXhtml »
  • PHP Manual
  • tidy
  • Retourne un objet tidyNode commençant à la balise <html>

tidy::html

tidy_get_html

(PHP 5, PHP 7, PECL tidy 0.5.2-1.0.0)

tidy::html -- tidy_get_html — Retourne un objet tidyNode commençant à la balise <html>

Description

Style orienté objet

tidyNode tidy::html ( void )

Style procédural

tidyNode tidy_get_html ( tidy $object )

Retourne un objet tidyNode commençant à la balise <html>.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne l'objet tidyNode.

Exemples

Exemple #1 Exemple avec tidy::html()

<?php
$html = '
<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>paragraph</p>
 </body>
</html>';

$tidy = tidy_parse_string($html);

$html = $tidy->html();
echo $html->value;
?>

L'exemple ci-dessus va afficher :

<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>paragraph</p>
 </body>
</html>

Notes

Note: Cette fonction n'est disponible qu'avec le Zend Engine 2, c'est à dire PHP >= 5.0.0.

Voir aussi

  • tidy::body() - Retourne un objet TidyNode, commencé à partir de la balise <body>
  • tidy::head() - Retourne un objet tidyNode à partir de la balise <head>


Indique si le document est un document XHTML

  • « tidy::html
  • tidy::isXml »
  • PHP Manual
  • tidy
  • Indique si le document est un document XHTML

tidy::isXhtml

tidy_is_xhtml

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::isXhtml -- tidy_is_xhtml — Indique si le document est un document XHTML

Description

Style orienté objet

bool tidy::isXhtml ( void )

Style procédural

bool tidy_is_xhtml ( tidy $object )

Indique si le document est un document XHTML.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne TRUE si l'objet Tidy object spécifié est un document XHTML, ou FALSE sinon.

Avertissement

Cette fonction n'est pas encore implémentée par la bibliothèque Tidylib elle-même, donc elle retournera toujours FALSE.


Indique si le document est un document XML générique (non HTML/XHTML)

  • « tidy::isXhtml
  • tidy::parseFile »
  • PHP Manual
  • tidy
  • Indique si le document est un document XML générique (non HTML/XHTML)

tidy::isXml

tidy_is_xml

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::isXml -- tidy_is_xml — Indique si le document est un document XML générique (non HTML/XHTML)

Description

Style orienté objet

bool tidy::isXml ( void )

Style procédural

bool tidy_is_xml ( tidy $object )

tidy_is_xml() retourne TRUE si l'objet object Tidy est un document XML générique (non HTML/XHTML) ou FALSE sinon.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Cette fonction retourne TRUE si l'objet tidy spécifié est une document XML générique (non HTML/XHTML), ou FALSE sinon.

Avertissement

Cette fonction n'est pas encore implémentée par la bibliothèque Tidylib elle-même, donc elle retournera toujours FALSE.


Analyse les balises d'un fichier ou d'une URI

  • « tidy::isXml
  • tidy::parseString »
  • PHP Manual
  • tidy
  • Analyse les balises d'un fichier ou d'une URI

tidy::parseFile

tidy_parse_file

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::parseFile -- tidy_parse_file — Analyse les balises d'un fichier ou d'une URI

Description

Style orienté objet

bool tidy::parseFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )

Style procédural

tidy tidy_parse_file ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )

Analyse le fichier spécifié.

Liste de paramètres

filename

Si le paramètre filename est fourni, cette fonction va aussi lire ce fichier, et initialiser l'objet avec ce fichier, de la même façon que tidy_parse_file().

config

La configuration config peut être passée sous forme de tableau ou de chaîne de caractères. Si une chaîne de caractères est passée, elle est interprétée comme le nom du fichier de configuration, et sinon, elle est interprétée comme les options elles-mêmes.

Pour une explication sur chaque option, voyez » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Le paramètre encoding configure l'encodage pour les documents d'entrée et de sortie. Les valeurs possibles sont ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

use_include_path

Active la recherche dans l' include_path.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec tidy::parseFile()

<?php
$tidy = tidy_parse_file('file.html');

$tidy->cleanRepair();

if(!empty($tidy->error_buf)) {
   echo 'Les erreurs et avertissements suivants ont été recontrés :'."\n";
   echo $tidy->error_buf;
}
?>

Notes

Note: Les paramètres optionnels config et encoding ont été ajoutés en Tidy 2.0.

Voir aussi

  • tidy::parsestring() - Analyse un document HTML contenu dans une chaîne
  • tidy::repairfile() - Répare un fichier et le renvoie en tant que chaîne
  • tidy::repairstring() - Répare une chaîne HTML en utilisant un fichier de configuration optionnel


Analyse un document HTML contenu dans une chaîne

  • « tidy::parseFile
  • tidy::repairFile »
  • PHP Manual
  • tidy
  • Analyse un document HTML contenu dans une chaîne

tidy::parseString

tidy_parse_string

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::parseString -- tidy_parse_string — Analyse un document HTML contenu dans une chaîne

Description

Style orienté objet

bool tidy::parseString ( string $input [, mixed $config [, string $encoding ]] )

Style procédural

tidy tidy_parse_string ( string $input [, mixed $config [, string $encoding ]] )

Analyse un document contenu dans une chaîne.

Liste de paramètres

input

Les données à analyser.

config

La configuration config peut être passée sous forme de tableau ou de chaîne de caractères. Si une chaîne de caractères est passée, elle est interprétée comme le nom du fichier de configuration, et sinon, elle est interprétée comme les options elles-mêmes.

Pour une explication sur chaque option, voyez » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Le paramètre encoding configure l'encodage pour les documents d'entrée et de sortie. Les valeurs possibles sont ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

Valeurs de retour

Retourne une nouvelle instance tidy.

Exemples

Exemple #1 Exemple avec tidy::parseString()

<?php
ob_start();
?>

<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>erreur<br />une autre ligne</p>
 </body>
</html>

<?php
$buffer = ob_get_clean();
$config = array('indent' => TRUE,
   'output-xhtml' => TRUE,
   'wrap', 200);

$tidy = tidy_parse_string($buffer, $config, 'UTF8');

$tidy->cleanRepair();

echo $tidy;
?>

L'exemple ci-dessus va afficher :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>
   test
  </title>
 </head>
 <body>
  <p>
   erreur<br />
   une autre ligne
  </p>
 </body>
</html>

Notes

Note: Les paramètres optionnels config et encoding ont été ajoutés en Tidy 2.0.

Voir aussi

  • tidy::parseFile() - Analyse les balises d'un fichier ou d'une URI
  • tidy::repairFile() - Répare un fichier et le renvoie en tant que chaîne
  • tidy::repairString() - Répare une chaîne HTML en utilisant un fichier de configuration optionnel


Répare un fichier et le renvoie en tant que chaîne

  • « tidy::parseString
  • tidy::repairString »
  • PHP Manual
  • tidy
  • Répare un fichier et le renvoie en tant que chaîne

tidy::repairFile

tidy_repair_file

(PHP 5, PHP 7, PECL tidy >= 0.7.0)

tidy::repairFile -- tidy_repair_file — Répare un fichier et le renvoie en tant que chaîne

Description

Style orienté objet

string tidy::repairFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )

Style procédural

string tidy_repair_file ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )

Répare le fichier fourni et le renvoie sous la forme d'une chaîne.

Liste de paramètres

filename

Le fichier à réparer.

config

La configuration config peut être passée sous forme de tableau ou de chaîne de caractères. Si une chaîne de caractères est passée, elle est interprétée comme le nom du fichier de configuration, et sinon, elle est interprétée comme les options elles-mêmes.

Pour une explication sur chaque option, voyez http://tidy.sourceforge.net/docs/quickref.html.

encoding

Le paramètre encoding configure l'encodage pour les documents d'entrée et de sortie. Les valeurs possibles sont ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

use_include_path

Indique s'il faut chercher le fichier dans l' include_path.

Valeurs de retour

Retourne le contenu réparée, sous forme de chaîne.

Exemples

Exemple #1 Exemple avec tidy::repairFile()

<?php
$file = 'file.html';

$repaired = tidy_repair_file($file);
rename($file, $file . '.bak');

file_put_contents($file, $repaired);
?>

Notes

Note: Les paramètres optionnels config et encoding ont été ajoutés en Tidy 2.0.

Voir aussi

  • tidy::parseFile() - Analyse les balises d'un fichier ou d'une URI
  • tidy::parseString() - Analyse un document HTML contenu dans une chaîne
  • tidy::repairString() - Répare une chaîne HTML en utilisant un fichier de configuration optionnel


Répare une chaîne HTML en utilisant un fichier de configuration optionnel

  • « tidy::repairFile
  • tidy::root »
  • PHP Manual
  • tidy
  • Répare une chaîne HTML en utilisant un fichier de configuration optionnel

tidy::repairString

tidy_repair_string

(PHP 5, PHP 7, PECL tidy >= 0.7.0)

tidy::repairString -- tidy_repair_string — Répare une chaîne HTML en utilisant un fichier de configuration optionnel

Description

Style orienté objet

string tidy::repairString ( string $data [, mixed $config [, string $encoding ]] )

Style procédural

string tidy_repair_string ( string $data [, mixed $config [, string $encoding ]] )

Répare la chaîne data.

Liste de paramètres

data

Les données à réparer.

config

La configuration config peut être passée sous forme de tableau ou de chaîne de caractères. Si une chaîne de caractères est passée, elle est interprétée comme le nom du fichier de configuration, et sinon, elle est interprétée comme les options elles-mêmes.

Lisez » http://tidy.sourceforge.net/docs/quickref.html pour une explication sur chaque option.

encoding

Le paramètre encoding configure l'encodage pour les documents d'entrée et de sortie. Les valeurs possibles sont ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

Valeurs de retour

Retourne la chaîne réparée.

Exemples

Exemple #1 Exemple avec tidy::repairString()

<?php
ob_start();
?>

<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>error</i>
 </body>
</html>

<?php

$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);

echo $tidy;
?>

L'exemple ci-dessus va afficher :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>error</p>
 </body>
</html>

Notes

Note: Les paramètres optionnels config et encoding ont été ajoutés en Tidy 2.0.

Voir aussi

  • tidy::parseFile() - Analyse les balises d'un fichier ou d'une URI
  • tidy::parseString() - Analyse un document HTML contenu dans une chaîne
  • tidy::repairFile() - Répare un fichier et le renvoie en tant que chaîne


Retourne un objet tidyNode représentant la racine du document HTML

  • « tidy::repairString
  • tidyNode »
  • PHP Manual
  • tidy
  • Retourne un objet tidyNode représentant la racine du document HTML

tidy::root

tidy_get_root

(PHP 5, PHP 7, PECL tidy 0.5.2-1.0.0)

tidy::root -- tidy_get_root — Retourne un objet tidyNode représentant la racine du document HTML

Description

Style orienté objet

tidyNode tidy::root ( void )

Style procédural

tidyNode tidy_get_root ( tidy $object )

Retourne un objet tidyNode représentant la racine de l'arbre Tidy analysé.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne l'objet tidyNode.

Exemples

Exemple #1 Exemple avec tidy::root()

<?php

$html = <<< HTML
  <html><body>

    <p>paragraphe</p>
    <br/>

   </body></html>
  HTML;

  $tidy = tidy_parse_string($html);
  dump_nodes($tidy->root(), 1);

  function dump_nodes($node, $indent) {

    if($node->hasChildren()) {
      foreach($node->child as $child) {
        echo str_repeat('.', $indent*2) . ($child->name ? $child->name : '"'.$child->value.'"'). "\n";

        dump_nodes($child, $indent+1);
      }
    }

  }
?>

L'exemple ci-dessus va afficher :

..html
....head
......title
....body
......p
........"paragraphe"
......br

Notes

Note: Cette fonction n'est disponible qu'avec le Zend Engine 2, c'est à dire PHP >= 5.0.0.


La classe tidyNode

(PHP 5 >= 5.0.1, PHP 7)

Introduction

Une balise HTML dans un fichier HTML, tel que détecté par Tidy.

Synopsis de la classe

tidyNode {
/* Propriétés */
string $value;
string $name;
int $type;
int $line;
int $column;
bool $proprietary;
int $id;
array $attribute;
array $child;
/* Méthodes */
tidyNode getParent ( void )
bool hasChildren ( void )
bool hasSiblings ( void )
bool isAsp ( void )
bool isComment ( void )
bool isHtml ( void )
bool isJste ( void )
bool isPhp ( void )
bool isText ( void )
}

Propriétés

value

La représentation HTML du noeud, incluant les balises d'encadrement.

name

Le nom de la balise HTML

type

Le type de balise (une constante de type, e.g. TIDY_NODETYPE_PHP)

line

Le numéro de ligne auquel la balise commence

column

Le numéro de colonne où la balise commence

proprietary

Indique que la balise est une balise propriétaire

id

L'ID de la balise (une des constantes de balise, e.g. TIDY_TAG_FRAME)

attribute

Un tableau de chaînes, représentant les noms d'attributs (les clés), du noeud courant.

child

Un tableau d'objets tidyNode, représentant les enfants du noeud courant.

Version | Description
5.1.0 | line, column et proprietary a été ajouté

Sommaire

  • tidyNode::getParent — Retourne le noeud parent du noeud courant
  • tidyNode::hasChildren — Indique si le noeud a des enfants
  • tidyNode::hasSiblings — Indique si le noeud a des frères
  • tidyNode::isAsp — Vérifie si le noeud est du code ASP
  • tidyNode::isComment — Indique si le noeud représente un commentaire
  • tidyNode::isHtml — Indique si le noeud est une partie d'un document HTML
  • tidyNode::isJste — Indique si ce noeud est JSTE
  • tidyNode::isPhp — Indique si un noeud contient du code PHP
  • tidyNode::isText — Indique si le noeud représente du texte (sans balise)


Retourne le noeud parent du noeud courant

  • « tidyNode
  • tidyNode::hasChildren »
  • PHP Manual
  • tidyNode
  • Retourne le noeud parent du noeud courant

tidyNode::getParent

(PHP 5 >= 5.2.2, PHP 7)

tidyNode::getParent — Retourne le noeud parent du noeud courant

Description

tidyNode tidyNode::getParent ( void )

Retourne le noeud parent du noeud courant.

Exemples

Exemple #1 Exemple avec tidyNode::hasChildren()

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* code JSTE  */
  alert('Hello World');
#>
 </head>
 <body>
 Hello World
 </body>
</html>

HTML;

$tidy = tidy_parse_string($html);
$num = 0;

$node = $tidy->html()->child[0]->child[0];

var_dump($node->getparent()->name);
?>

L'exemple ci-dessus va afficher :

string(4) "head"

Valeurs de retour

Retourne un tidyNode si le noeud a un parent, ou NULL sinon.


Indique si le noeud a des enfants

  • « tidyNode::getParent
  • tidyNode::hasSiblings »
  • PHP Manual
  • tidyNode
  • Indique si le noeud a des enfants

tidyNode::hasChildren

(PHP 5 >= 5.0.1, PHP 7)

tidyNode::hasChildren — Indique si le noeud a des enfants

Description

bool tidyNode::hasChildren ( void )

Indique si le noeud courant a des enfants.

Valeurs de retour

Retourne TRUE si le noeud a des enfants, FALSE sinon.

Exemples

Exemple #1 Exemple avec tidyNode::hasChildren()

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* code JSTE */
  alert('Hello World');
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

// La balise head
var_dump($tidy->html()->child[0]->hasChildren());

// Le PHP dans la balise head
var_dump($tidy->html()->child[0]->child[0]->hasChildren());

?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Notes

Note:

Cette fonction était appelée tidy_node::has_children() dans PHP 4/Tidy 1.


Indique si le noeud a des frères

  • « tidyNode::hasChildren
  • tidyNode::isAsp »
  • PHP Manual
  • tidyNode
  • Indique si le noeud a des frères

tidyNode::hasSiblings

(PHP 5 >= 5.0.1, PHP 7)

tidyNode::hasSiblings — Indique si le noeud a des frères

Description

bool tidyNode::hasSiblings ( void )

Indique si le noeud courant a des noeuds frères.

Valeurs de retour

Retourne TRUE si le noeud a des frères, FALSE sinon.

Exemples

Exemple #1 Exemple avec tidyNode::hasSiblings()

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* code JSTE  */
  alert('Hello World');
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP  */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

// La balise html
var_dump($tidy->html()->hasSiblings());

// La balise head
var_dump($tidy->html()->child[0]->hasSiblings());

?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Notes

Note:

Cette fonction était appelée tidy_node::has_siblings() dans PHP 4/Tidy 1.


Vérifie si le noeud est du code ASP

  • « tidyNode::hasSiblings
  • tidyNode::isComment »
  • PHP Manual
  • tidyNode
  • Vérifie si le noeud est du code ASP

tidyNode::isAsp

(PHP 5 >= 5.0.1, PHP 7)

tidyNode::isAsp — Vérifie si le noeud est du code ASP

Description

bool tidyNode::isAsp ( void )

Vérifie si le noeud est du code ASP.

Valeurs de retour

Retourne TRUE si le noeud est du code ASP, FALSE sinon.

Exemples

Exemple #1 Extrait di code ASP depuis un document HTML mixte

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* code JSTE */
  alert('Hello World');
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // Vérifie si le noeud courant est du type requis
    if($node->{"isAsp()) {
        echo "\n\n# Noeud $node_type #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // Vérifie si le noeud courant a des enfants
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

L'exemple ci-dessus va afficher :

# Noeud asp #1
<%
  /* code ASP */
  response.write("Hello World!")
%>

Notes

Note:

Cette fonction était nommée tidy_node::is_asp() en PHP 4/Tidy 1.


Indique si le noeud représente un commentaire

  • « tidyNode::isAsp
  • tidyNode::isHtml »
  • PHP Manual
  • tidyNode
  • Indique si le noeud représente un commentaire

tidyNode::isComment

(PHP 5 >= 5.0.1, PHP 7)

tidyNode::isComment — Indique si le noeud représente un commentaire

Description

bool tidyNode::isComment ( void )

Indique si le document est un commentaire.

Valeurs de retour

Retourne TRUE si le document est un commentaire, FALSE sinon.

Exemples

Exemple #1 Extrait les commentais depuis un document HTML

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* code JSTE */
  alert('Hello World');
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP  */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // Vérifie si le noeud courant est du type demandé
    if($node->{"isComment()) {
        echo "\n\n# Noeud commentaire #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // Vérifie si le noeud courant a des enfants
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

L'exemple ci-dessus va afficher :

# Noeud jste #1
<#
  /* code JSTE */
  alert('Hello World');
#>

Notes

Note:

Cette fonction était appelée tidy_node::is_comment() dans PHP 4/Tidy 1.


Indique si le noeud est une partie d'un document HTML

  • « tidyNode::isComment
  • tidyNode::isJste »
  • PHP Manual
  • tidyNode
  • Indique si le noeud est une partie d'un document HTML

tidyNode::isHtml

(PHP 5 >= 5.0.1, PHP 7)

tidyNode::isHtml — Indique si le noeud est une partie d'un document HTML

Description

bool tidyNode::isHtml ( void )

Indique si le noeud courant est une partie de document HTML.

Valeurs de retour

Retourne TRUE si le noeud est une partie de document HTML, FALSE sinon.

Exemples

Exemple #1 Extrait du code HTML depuis un document mixte

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* code JSTE */
  alert('Hello World');
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {
    // Vérifie si le noeud courant est du type demandé
    if($node->{isHtml()) {
        echo "\n\n# Noeud Html #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // Vérifie si le noeud courant a des enfants
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

L'exemple ci-dessus va afficher :

# Noeud html #1
<html>
<head>
<?php echo '<title>title</title>'; ?><#
  /* code JSTE */
  alert('Hello World');
#>
<title></title>
</head>
<body>
<?php
  // code PHP
  echo 'hello world!';
?><%
  /* code ASP */
  response.write("Hello World!")
%><!-- Comments -->
Hello WorldOutside HTML
</body>
</html>

# Noeud html #2
<head>
<?php echo '<title>title</title>'; ?><#
  /* code JSTE */
  alert('Hello World');
#>
<title></title>
</head>

# Noeud html #3
<?php echo '<title>title</title>'; ?>

# Noeud html #4
<#
  /* code JSTE */
  alert('Hello World');
#>

# Noeud html #5
<title></title>

# Noeud html #6
<body>
<?php
  // code PHP
  echo 'hello world!';
?><%
  /* code ASP */
  response.write("Hello World!")
%><!-- Comments -->
Hello WorldOutside HTML
</body>

# Noeud html #7
<?php
  // code PHP
  echo 'hello world!';
?>

# Noeud html #8
<%
  /* code ASP */
  response.write("Hello World!")
%>

# Noeud html #9
<!-- Comments -->

# Noeud html #10
Hello World

# Noeud html #11
Outside HTML

Notes

Note:

Cette fonction était appelée tidy_node::is_html() dans PHP 4/Tidy 1.


Indique si ce noeud est JSTE

  • « tidyNode::isHtml
  • tidyNode::isPhp »
  • PHP Manual
  • tidyNode
  • Indique si ce noeud est JSTE

tidyNode::isJste

(PHP 5 >= 5.0.1, PHP 7)

tidyNode::isJste — Indique si ce noeud est JSTE

Description

bool tidyNode::isJste ( void )

Indique si le noeud courant est un JSTE.

Valeurs de retour

Retourne TRUE si le noeud est du JSTE, FALSE sinon.

Exemples

Exemple #1 Extrait du code JSTE depuis un document HTML

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* code JSTE */
  alert('Hello World');
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // Vérifie si le noeud courant est du type demandé
    if($node->{"isJste()) {
        echo "\n\n# Noeud jste #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // Vérifie si le noeud courant a des enfants
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

L'exemple ci-dessus va afficher :

# Noeud jste #1
<#
  /* code JSTE */
  alert('Hello World');
#>

Notes

Note:

Cette fonction était appelée tidy_node::is_jste() dans PHP 4/Tidy 1.


Indique si un noeud contient du code PHP

  • « tidyNode::isJste
  • tidyNode::isText »
  • PHP Manual
  • tidyNode
  • Indique si un noeud contient du code PHP

tidyNode::isPhp

(PHP 5 >= 5.0.1, PHP 7)

tidyNode::isPhp — Indique si un noeud contient du code PHP

Description

bool tidyNode::isPhp ( void )

Indique si un noeud contient du code PHP.

Valeurs de retour

Retourne TRUE si le noeud courant est du code PHP, FALSE sinon.

Exemples

Exemple #1 Récupération de code PHP dans un document HTML

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* code JSTE */
  alert('Hello World');
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // Vérifie si le noeud courant est du type demandé
    if($node->{"isPhp()) {
        echo "\n\n# Noeud php #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // Vérifie si le noeud courant a des enfants
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

L'exemple ci-dessus va afficher :

# Noeud PHP #1
<?php echo '<title>Titre</title>'; ?>

# Noeud PHP #2
<?php
  // code PHP
  echo 'hello world!';
?>

Notes

Note:

Cette fonction était nommée tidy_node::is_php() en PHP 4/Tidy 1.


Indique si le noeud représente du texte (sans balise)

  • « tidyNode::isPhp
  • Fonctions Tidy »
  • PHP Manual
  • tidyNode
  • Indique si le noeud représente du texte (sans balise)

tidyNode::isText

(PHP 5 >= 5.0.1, PHP 7)

tidyNode::isText — Indique si le noeud représente du texte (sans balise)

Description

bool tidyNode::isText ( void )

Indique si le noeud parent représente du texte (sans balise).

Valeurs de retour

Retourne TRUE si le noeud représente un texte, FALSE sinon.

Exemples

Exemple #1 Extrait du texte depuis un document HTML mixte

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* code JSTE */
  alert('Hello World');
#>
</head>
<body>

<?php
  // code PHP
  echo 'hello world!';
?>

<%
  /* code ASP */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // Vérifie si le noeud courant est du type demandé
    if($node->{"isText()) {
        echo "\n\n# Noeud texte #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // Vérifie si le noeud courant a des enfants
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

L'exemple ci-dessus va afficher :

# Noeud text #1
Hello World

# Noeud text #2
Outside HTML

Notes

Note:

Cette fonction était appelée tidy_node::is_text() dans PHP 4/Tidy 1.


Fonctions Tidy

Sommaire

  • ob_tidyhandler — Fonction de rappel ob_start pour réparer le buffer
  • tidy_access_count — Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document
  • tidy_config_count — Retourne le nombre d'erreurs de configuration Tidy rencontrées dans le document
  • tidy_error_count — Retourne le nombre d'erreurs Tidy rencontrées dans le document
  • tidy_get_output — Retourne une chaîne représentant les balises telles qu'analysées par Tidy
  • tidy_load_config — Charge un fichier de configuration ASCII Tidy avec l'encodage spécifié
  • tidy_reset_config — Redonne les valeurs de configuration par défaut de Tidy
  • tidy_save_config — Sauve la configuration courante dans un fichier
  • tidy_set_encoding — Modifie le jeu de caractères pour les entrées/sorties de l'analyseur Tidy
  • tidy_setopt — Modifie la valeur de l'option de configuration Tidy
  • tidy_warning_count — Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié


Fonction de rappel ob_start pour réparer le buffer

  • « Fonctions Tidy
  • tidy_access_count »
  • PHP Manual
  • Fonctions Tidy
  • Fonction de rappel ob_start pour réparer le buffer

ob_tidyhandler

(PHP 5, PHP 7)

ob_tidyhandler — Fonction de rappel ob_start pour réparer le buffer

Description

string ob_tidyhandler ( string $input [, int $mode ] )

Fonction de rappel pour la fonction ob_start() afin de réparer le buffer.

Liste de paramètres

input

Le buffer.

mode

Le mode du buffer.

Valeurs de retour

Retourne le buffer modifié.

Exemples

Exemple #1 Exemple avec ob_tidyhandler()

<?php
ob_start('ob_tidyhandler');

echo '<p>test</i>';
?>

L'exemple ci-dessus va afficher :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

Voir aussi

  • ob_start() - Enclenche la temporisation de sortie


Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document

  • « ob_tidyhandler
  • tidy_config_count »
  • PHP Manual
  • Fonctions Tidy
  • Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document

tidy_access_count

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_access_count — Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document

Description

int tidy_access_count ( tidy $object )

tidy_access_count() retourne le nombre d'alertes d'accessibilité trouvées dans le document spécifié.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne le nombre d'alertes.

Exemples

Exemple #1 Exemple avec tidy_access_count()

<?php

$html ='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Title</title></head>
<body>

<p><img src="img.png"></p>

</body></html>';

// sélectionne le degrès d'accessibilité : 1, 2 or 3
$config = array('accessibility-check' => 3);

$tidy = new tidy();
$tidy->parseString($html, $config);
$tidy->cleanRepair();

/* N'oubliez jamais d'appeler ceci ! */
$tidy->diagnose();

echo tidy_access_count($tidy); //5

?>

Notes

Note:

Du fait du comportement de la TidyLib, vous devez appeler tidy_diagnose() avant tidy_access_count() sinon la fonction retournera toujours 0. Vous devez également activer l'option accessibility-check.

Voir aussi

  • tidy_error_count() - Retourne le nombre d'erreurs Tidy rencontrées dans le document
  • tidy_warning_count() - Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié


Retourne le nombre d'erreurs de configuration Tidy rencontrées dans le document

  • « tidy_access_count
  • tidy_error_count »
  • PHP Manual
  • Fonctions Tidy
  • Retourne le nombre d'erreurs de configuration Tidy rencontrées dans le document

tidy_config_count

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_config_count — Retourne le nombre d'erreurs de configuration Tidy rencontrées dans le document

Description

int tidy_config_count ( tidy $object )

tidy_config_count() retourne le nombre d'erreurs rencontrées dans la configuration de l'objet object Tidy spécifié.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne le nombre d'erreurs.

Exemples

Exemple #1 Exemple avec tidy_config_count()

<?php
$html = '<p>test</I>';

$config = array('doctype' => 'bogus');

$tidy = tidy_parse_string($html, $config);

/* Affichera 1, car 'bogus' n'est pas un doctype valide */
echo tidy_config_count($tidy);
?>


Retourne le nombre d'erreurs Tidy rencontrées dans le document

  • « tidy_config_count
  • tidy_get_output »
  • PHP Manual
  • Fonctions Tidy
  • Retourne le nombre d'erreurs Tidy rencontrées dans le document

tidy_error_count

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_error_count — Retourne le nombre d'erreurs Tidy rencontrées dans le document

Description

int tidy_error_count ( tidy $object )

tidy_error_count() retourne le nombre d'erreurs Tidy rencontrées dans le document spécifié.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne le nombre d'erreur.

Exemples

Exemple #1 Exemple avec tidy_error_count()

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1

echo $tidy->errorBuffer;
?>

L'exemple ci-dessus va afficher :

 1
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 8 - Warning: discarding unexpected </i>
line 2 column 1 - Error: <bogustag> is not recognized!
line 2 column 1 - Warning: discarding unexpected <bogustag>
line 2 column 16 - Warning: discarding unexpected </bogustag>
line 1 column 1 - Warning: inserting missing 'title' element

Voir aussi

  • tidy_access_count() - Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document
  • tidy_warning_count() - Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié


Retourne une chaîne représentant les balises telles qu'analysées par Tidy

  • « tidy_error_count
  • tidy_load_config »
  • PHP Manual
  • Fonctions Tidy
  • Retourne une chaîne représentant les balises telles qu'analysées par Tidy

tidy_get_output

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_get_output — Retourne une chaîne représentant les balises telles qu'analysées par Tidy

Description

string tidy_get_output ( tidy $object )

Retourne une chaîne représentant les balises telles qu'analysées par Tidy.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne les balises analysées par Tidy.

Exemples

Exemple #1 Exemple avec tidy_get_output()

<?php

$html = '<p>paragraph</i>';
$tidy = tidy_parse_string($html);

$tidy->cleanRepair();

echo tidy_get_output($tidy);
?>

L'exemple ci-dessus va afficher :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>paragraph</p>
</body>
</html>


Charge un fichier de configuration ASCII Tidy avec l'encodage spécifié

  • « tidy_get_output
  • tidy_reset_config »
  • PHP Manual
  • Fonctions Tidy
  • Charge un fichier de configuration ASCII Tidy avec l'encodage spécifié

tidy_load_config

(PECL tidy >= 0.5.2)

tidy_load_config — Charge un fichier de configuration ASCII Tidy avec l'encodage spécifié

Description

void tidy_load_config ( string $filename , string $encoding )

Charge le fichier de configuration Tidy avec le jeu de caractères encoding.

Liste de paramètres

filename

encoding

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.


Redonne les valeurs de configuration par défaut de Tidy

  • « tidy_load_config
  • tidy_save_config »
  • PHP Manual
  • Fonctions Tidy
  • Redonne les valeurs de configuration par défaut de Tidy

tidy_reset_config

(PECL tidy >= 0.7.0)

tidy_reset_config — Redonne les valeurs de configuration par défaut de Tidy

Description

bool tidy_reset_config ( void )

Restaure la configuration par défaut de Tidy.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.


Sauve la configuration courante dans un fichier

  • « tidy_reset_config
  • tidy_set_encoding »
  • PHP Manual
  • Fonctions Tidy
  • Sauve la configuration courante dans un fichier

tidy_save_config

(PECL tidy >= 0.5.2)

tidy_save_config — Sauve la configuration courante dans un fichier

Description

bool tidy_save_config ( string $filename )

Sauve la configuration courante dans le fichier filename. Seules les valeurs différentes des valeurs par défaut sont sauvées.

Liste de paramètres

filename

Chemin vers le fichier de configuration.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.

Voir aussi

  • tidy_get_config() - Lit la configuration Tidy courante
  • tidy_getopt() - Retourne la valeur de l'option de configuration Tidy
  • tidy_reset_config() - Redonne les valeurs de configuration par défaut de Tidy
  • tidy_setopt() - Modifie la valeur de l'option de configuration Tidy


Modifie le jeu de caractères pour les entrées/sorties de l'analyseur Tidy

  • « tidy_save_config
  • tidy_setopt »
  • PHP Manual
  • Fonctions Tidy
  • Modifie le jeu de caractères pour les entrées/sorties de l'analyseur Tidy

tidy_set_encoding

(PECL tidy >= 0.5.2)

tidy_set_encoding — Modifie le jeu de caractères pour les entrées/sorties de l'analyseur Tidy

Description

bool tidy_set_encoding ( string $encoding )

Modifie le jeu de caractères pour les entrées/sorties de l'analyseur Tidy.

Liste de paramètres

encoding

La valeurs possibles de encoding sont ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.


Modifie la valeur de l'option de configuration Tidy

  • « tidy_set_encoding
  • tidy_warning_count »
  • PHP Manual
  • Fonctions Tidy
  • Modifie la valeur de l'option de configuration Tidy

tidy_setopt

(PECL tidy >= 0.5.2)

tidy_setopt — Modifie la valeur de l'option de configuration Tidy

Description

bool tidy_setopt ( string $option , mixed $value )

tidy_setopt() configure l'option option avec la nouvelle valeur value.

Liste de paramètres

option

Le nom de l'option. Pour une explication sur chaque option, voyez » http://tidy.sourceforge.net/docs/quickref.html.

value

La valeur de l'option.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec tidy_setopt()

<?php
$html = '<p>test</i>';

$tidy = tidy_parse_string($html);

tidy_setopt('indent', FALSE);
?>

Notes

Note: Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.

Voir aussi

  • tidy_getopt() - Retourne la valeur de l'option de configuration Tidy
  • tidy_get_config() - Lit la configuration Tidy courante
  • tidy_reset_config() - Redonne les valeurs de configuration par défaut de Tidy
  • tidy_save_config() - Sauve la configuration courante dans un fichier


Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié

  • « tidy_setopt
  • Tokenizer »
  • PHP Manual
  • Fonctions Tidy
  • Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié

tidy_warning_count

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_warning_count — Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié

Description

int tidy_warning_count ( tidy $object )

Retourne le nombre d'avertissements Tidy rencontrés pour le document spécifié.

Liste de paramètres

object

L'objet Tidy

Valeurs de retour

Retourne le nombre d'alertes.

Exemples

Exemple #1 Exemple avec tidy_warning_count()

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1
echo tidy_warning_count($tidy) . "\n"; //5
?>

Voir aussi

  • tidy_error_count() - Retourne le nombre d'erreurs Tidy rencontrées dans le document
  • tidy_access_count() - Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document


Tokenizer

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions Tokenizer
    • token_get_all — Scinde un code source en éléments de base
    • token_name — Retourne le nom d'un élément de code source


Introduction

Les fonctions tokenizer fournissent une interface au tokenizer PHP interne au moteur Zend. En utilisant ces fonctions, vous pouvez écrire vos propres outils d'analyse ou de modification de code source PHP, sans avoir à vous soucier de la spécification du langage au niveau lexical.

Voir aussi l'appendice sur les tokens.


Installation

À partir de PHP 4.3.0, ces fonctions sont activées par défaut. Pour les anciennes versions, vous devez compiler PHP avec l'option --enable-tokenizer . Vous pouvez désactiver le support de l'extension tokenizer avec l'option --disable-tokenizer .

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note: Le support automatique du tokenizer est disponible depuis PHP 4.3.0.


Constantes pré-définies

Lorsque l'extension est compilée dans PHP ou chargée dynamiquement au démarrage, les jetons listés dans la Liste des tokens de l'analyseur sont définis comme des constantes.


Exemples

Voici un exemple simple de script PHP utilisant le tokenizer ; il lit un fichier PHP, supprime tous les commentaires de la source, et affiche uniquement le code.

Exemple #1 Supprime les commentaires avec le tokenizer

<?php
/*
* T_ML_COMMENT n'existe pas en PHP 5.
* Les lignes suivantes le définisse afin de rendre
* compatible notre code.
*
* Ensuite, les 2 lignes définissent T_DOC_COMMENT uniquement pour PHP 5,
* que nous masquons en T_ML_COMMENT pour PHP 4.
*/
if (!defined('T_ML_COMMENT')) {
   define('T_ML_COMMENT', T_COMMENT);
} else {
   define('T_DOC_COMMENT', T_ML_COMMENT);
}

$source = file_get_contents('example.php');
$tokens = token_get_all($source);

foreach ($tokens as $token) {
   if (is_string($token)) {
       // un simple caractère token
       echo $token;
   } else {
       // tableau token
       list($id, $text) = $token;

       switch ($id) {
           case T_COMMENT:
           case T_ML_COMMENT: // nous avons défini ceci
           case T_DOC_COMMENT: // et ceci
               // Aucune action sur les commentaires
               break;

           default:
               // rien d'autre -> affiche "as is"
               echo $text;
               break;
       }
   }
}
?>


Fonctions Tokenizer

Sommaire

  • token_get_all — Scinde un code source en éléments de base
  • token_name — Retourne le nom d'un élément de code source


Scinde un code source en éléments de base

  • « Fonctions Tokenizer
  • token_name »
  • PHP Manual
  • Fonctions Tokenizer
  • Scinde un code source en éléments de base

token_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

token_get_all — Scinde un code source en éléments de base

Description

array token_get_all ( string $source [, int $flags = 0 ] )

token_get_all() analyse la chaîne donnée source en utilisant l'analyseur lexical du moteur Zend.

Pour une liste des tokens, voir Liste des tokens de l'analyseur, ou utilisez la fonction token_name() pour traduire une valeur token dans une représentation sous forme de chaîne de caractères.

Liste de paramètres

source

Le source PHP à analyser.

flags

Drapeux valides :

  • TOKEN_PARSE - Reconnait la possibilité d'utiliser les mots réservés dans des contextes spécifiques.

Valeurs de retour

Un tableau contenant la liste des descriptions des éléments. Chaque élément du tableau peut être un caractère unique (i.e.: ;, ., >, !, etc.), ou un tableau contenant un identifiant de token dans l'élément 0, la représentation textuelle originale de ce token dans l'élément 1, et le numéro de la ligne dans l'élément 2.

Historique

Version | Description
7.0.0 | Ajout du paramère optionnel flags avec le drapeau TOKEN_PARSE.
5.2.2 | Les numéros de lignes sont retournés dans l'élément 2

Exemples

Exemple #1 Exemple avec token_get_all()

<?php
$tokens = token_get_all('<?php echo; ?>');

foreach ($tokens as $token) {
    if (is_array($token)) {
        echo "Line {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Line 1: T_OPEN_TAG ('<?php ')
Line 1: T_ECHO ('echo')
Line 1: T_WHITESPACE (' ')
Line 1: T_CLOSE_TAG ('?>')

Exemple #2 Exemple d'utilisation incorrecte de la fonction token_get_all()

<?php
$tokens = token_get_all('/* commentaire */');

foreach ($tokens as $token) {
    if (is_array($token)) {
        echo "Ligne {$token[2]} : ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ligne 1 : T_INLINE_HTML ('/* comment */')
Notez que dans le précédent exemple la chaîne est analsée comme une T_INLINE_HTML plutôt que T_COMMENT, ce qui aurait pu être attendu. Ceci est dû au fait qu'aucune balise ouvrante n'a été utilisée dans le code fourni. Cela correspond à mettre une commentaire en dehors des balises PHP dans un fichier classique.

Exemple #3 token_get_all() dans une classe en utilisant un mot réservé

<?php

$source = <<<'code'
<?php

class A
{
    const PUBLIC = 1;
}
code;

$tokens = token_get_all($source, TOKEN_PARSE);

foreach ($tokens as $token) {
    if (is_array($token)) {
        echo token_name($token[0]) , PHP_EOL;
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

T_OPEN_TAG
T_WHITESPACE
T_CLASS
T_WHITESPACE
T_STRING
T_CONST
T_WHITESPACE
T_STRING
T_LNUMBER
Sans le drapeau TOKEN_PARSE, le pénultième jeton (T_STRING) aurait du être T_PUBLIC.

Voir aussi

  • token_name() - Retourne le nom d'un élément de code source


Retourne le nom d'un élément de code source

  • « token_get_all
  • URLs »
  • PHP Manual
  • Fonctions Tokenizer
  • Retourne le nom d'un élément de code source

token_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

token_name — Retourne le nom d'un élément de code source

Description

string token_name ( int $token )

token_name() retourne le nom symbolique correspondant à la valeur d'un token PHP.

Liste de paramètres

token

La valeur du token.

Valeurs de retour

Le nom symbolique du token donné.

Exemples

Exemple #1 Exemple avec token_name()

<?php
// 260 est la valeur token pour le token T_EVAL
echo token_name(260);        // -> "T_EVAL"

// une constante token renvoit vers son propre nom
echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>

Voir aussi

  • Liste des tokens de l'analyseur PHP


URLs

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions URL
    • base64_decode — Décode une chaîne en MIME base64
    • base64_encode — Encode une chaîne en MIME base64
    • get_headers — Retourne tous les en-têtes envoyés par le serveur en réponse à une requête HTTP
    • get_meta_tags — Extrait toutes les balises méta d'un fichier HTML
    • http_build_query — Génère une chaîne de requête en encodage URL
    • parse_url — Analyse une URL et retourne ses composants
    • rawurldecode — Décode une chaîne URL
    • rawurlencode — Encode une chaîne en URL, selon la RFC 3986
    • urldecode — Décode une chaîne encodée URL
    • urlencode — Encode une chaîne en URL


  • « URLs
  • Installation/Configuration »
  • PHP Manual
  • URLs
  • Introduction

Introduction

Travaux avec les chaînes URL : encodage, décodage et analyse.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes suivantes sont prévues pour être utilisées avec la fonction parse_url() et sont disponibles depuis PHP 5.1.2.

PHP_URL_SCHEME (entier)
PHP_URL_HOST (entier)
Affiche le nom d'hôte de l'URL analysée.
PHP_URL_PORT (entier)
Affiche le port de l'URL analysée.
PHP_URL_USER (entier)
Affiche l'utilisateur de l'URL analysée.
PHP_URL_PASS (entier)
Affiche le mot de passe de l'URL analysée.
PHP_URL_PATH (entier)
Affiche le chemin de l'URL analysée.
PHP_URL_QUERY (entier)
Affiche la requête de l'URL analysée.
PHP_URL_FRAGMENT (entier)
Affiche le fragment (la chaîne après le caractère #) de l'URL analysée.

Les constantes suivantes sont prévues pour être utilisées avec http_build_query().

PHP_QUERY_RFC1738 (entier)
L'encodage est effectué conformément à la » RFC 1738 et le type de média application/x-www-form-urlencoded, ce qui implique que les espaces sont encodés avec des signes plus (+).
PHP_QUERY_RFC3986 (entier)
L'encodage est effectué conformément à la » RFC 3986, et les espaces seront encodés en utilisant le signe pourcentage (%20).


Fonctions URL

Sommaire

  • base64_decode — Décode une chaîne en MIME base64
  • base64_encode — Encode une chaîne en MIME base64
  • get_headers — Retourne tous les en-têtes envoyés par le serveur en réponse à une requête HTTP
  • get_meta_tags — Extrait toutes les balises méta d'un fichier HTML
  • http_build_query — Génère une chaîne de requête en encodage URL
  • parse_url — Analyse une URL et retourne ses composants
  • rawurldecode — Décode une chaîne URL
  • rawurlencode — Encode une chaîne en URL, selon la RFC 3986
  • urldecode — Décode une chaîne encodée URL
  • urlencode — Encode une chaîne en URL


Décode une chaîne en MIME base64

  • « Fonctions URL
  • base64_encode »
  • PHP Manual
  • Fonctions URL
  • Décode une chaîne en MIME base64

base64_decode

(PHP 4, PHP 5, PHP 7)

base64_decode — Décode une chaîne en MIME base64

Description

string base64_decode ( string $data [, bool $strict = false ] )

Décode encoded_data.

Liste de paramètres

data

Les données à décoder.

strict

Retourne FALSE si l'entrée contient des caractères hors de l'alphabet base64.

Valeurs de retour

Retourne les données décodées ou FALSE si une erreur survient. Les informations initiales peuvent être binaires.

Historique

Version | Description
5.2.0 | Le paramètre strict a été ajouté

Exemples

Exemple #1 Exemple avec base64_decode()

<?php
$str = 'Q2VjaSBlc3QgdW5lIGNoYe5uZSBlbmNvZOll';
echo base64_decode($str);
?>

L'exemple ci-dessus va afficher :

Ceci est une chaîne encodée

Voir aussi

  • base64_encode() - Encode une chaîne en MIME base64
  • » RFC 2045, section 6.8


Encode une chaîne en MIME base64

  • « base64_decode
  • get_headers »
  • PHP Manual
  • Fonctions URL
  • Encode une chaîne en MIME base64

base64_encode

(PHP 4, PHP 5, PHP 7)

base64_encode — Encode une chaîne en MIME base64

Description

string base64_encode ( string $data )

Encode data en base64.

Cet encodage est fait pour permettre aux informations binaires d'être manipulées par les systèmes qui ne gèrent pas correctement les 8 bits, comme les corps de mail.

Une chaîne encodée base64 prend environ 33 % de plus que les données initiales.

Liste de paramètres

data

Les données à encoder.

Valeurs de retour

Les données encodées, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec base64_encode()

<?php
$str = 'Ceci est une chaîne encodée';
echo base64_encode($str);
?>

L'exemple ci-dessus va afficher :

Q2VjaSBlc3QgdW5lIGNoYe5uZSBlbmNvZOll

Voir aussi

  • base64_decode() - Décode une chaîne en MIME base64
  • chunk_split() - Scinde une chaîne
  • convert_uuencode() - Encode une chaîne de caractères en utilisant l'algorithme uuencode
  • » RFC 2045, section 6.8


Retourne tous les en-têtes envoyés par le serveur en réponse à une requête HTTP

  • « base64_encode
  • get_meta_tags »
  • PHP Manual
  • Fonctions URL
  • Retourne tous les en-têtes envoyés par le serveur en réponse à une requête HTTP

get_headers

(PHP 5, PHP 7)

get_headers — Retourne tous les en-têtes envoyés par le serveur en réponse à une requête HTTP

Description

array get_headers ( string $url [, int $format = 0 ] )

get_headers() retourne un tableau avec les en-têtes envoyés par le serveur en réponse à une requête HTTP.

Liste de paramètres

url

L'URL cible.

format

Si le paramètre optionnel format est défini à 1, get_headers() analyse la réponse et définit les index du tableau.

Valeurs de retour

Retourne un tableau indexé ou associatif contenant les en-têtes, ou FALSE si une erreur survient.

Historique

Version | Description
5.1.3 | Cette fonction utilise le contexte de flux de défaut, qui peut être fixé/changé avec la fonction stream_context_set_default().

Exemples

Exemple #1 Exemple avec get_headers()

<?php
$url = 'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url, 1));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Sat, 29 May 2004 12:28:13 GMT
    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    [4] => ETag: "3f80f-1b6-3e1cb03b"
    [5] => Accept-Ranges: bytes
    [6] => Content-Length: 438
    [7] => Connection: close
    [8] => Content-Type: text/html
)

Array
(
    [0] => HTTP/1.1 200 OK
    [Date] => Sat, 29 May 2004 12:28:14 GMT
    [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
    [ETag] => "3f80f-1b6-3e1cb03b"
    [Accept-Ranges] => bytes
    [Content-Length] => 438
    [Connection] => close
    [Content-Type] => text/html
)

Exemple #2 Exemple avec get_headers() en utilisant HEAD

<?php
// Par défaut, get_headers utilise une requête GET pour récupérer les
// en-têtes. Si vous voulez plutôt envoyer une requête HEAD, vous pouvez le
// faire en utilisant un contexte de flux :
stream_context_set_default(
    array(
        'http' => array(
            'method' => 'HEAD'
        )
    )
);
$headers = get_headers('http://example.com');
?>

Voir aussi

  • apache_request_headers() - Récupère tous les en-têtes HTTP de la requête


Extrait toutes les balises méta d'un fichier HTML

  • « get_headers
  • http_build_query »
  • PHP Manual
  • Fonctions URL
  • Extrait toutes les balises méta d'un fichier HTML

get_meta_tags

(PHP 4, PHP 5, PHP 7)

get_meta_tags — Extrait toutes les balises méta d'un fichier HTML

Description

array get_meta_tags ( string $filename [, bool $use_include_path = false ] )

get_meta_tags() ouvre le fichier filename et l'analyse ligne par ligne à la recherche de balises "meta". L'analyse cesse lors de la rencontre de la balise </head>.

Liste de paramètres

filename

Le chemin vers un fichier HTML, sous la forme d'une chaîne de caractères. Ce peut être un fichier local ou une URL.

Exemple #1 Ce que la fonction get_meta_tags() analyse

<meta name="author" content="name">
<meta name="keywords" content="php documentation">
<meta name="DESCRIPTION" content="a php manual">
<meta name="geo.position" content="49.33;-86.59">
</head> <!-- cesse l'analyse ici -->
Attention au format des nouvelles lignes : PHP utilise une fonction native pour analyser le fichier, et les fichiers Mac ne seront pas reconnus.

use_include_path

Si le paramètre optionnel use_include_path vaut TRUE, get_meta_tags() recherchera aussi le fichier dans l'include_path. Ce paramètre est utilisé pour des fichiers locaux, non des URLs.

Valeurs de retour

Retourne un tableau contenant toutes les balises méta analysées.

La valeur de la propriété sera utilisée comme clé du tableau, et sa valeur comme valeur correspondante de la clé. Vous pourrez ainsi passer en revue facilement ce tableau avec les fonctions de tableau standard. Les caractères spéciaux présents dans la valeur seront replacés par un souligné ("_"), et le reste est converti en minuscules. Si deux balises méta possèdent le même nom, seule la dernière sera retournée.

Exemples

Exemple #2 Ce que la fonction get_meta_tags() retourne

<?php
// Supposons que les balises ci-dessus sont disponibles sur example.com
$tags = get_meta_tags('http://www.example.com/');

// Notez que les clés sont en minuscule, et
// le . a été remplacé par _ dans la clé
echo $tags['author'];       // nom
echo $tags['keywords'];     // documentation php
echo $tags['description'];  // n manuel PHP
echo $tags['geo_position']; // 49.33;-86.59
?>

Notes

Note:

Seules les balises méta avec un attribut name seront parsées. Les guillemets ne sont pas nécessaires.

Voir aussi

  • htmlentities() - Convertit tous les caractères éligibles en entités HTML
  • urlencode() - Encode une chaîne en URL


Génère une chaîne de requête en encodage URL

  • « get_meta_tags
  • parse_url »
  • PHP Manual
  • Fonctions URL
  • Génère une chaîne de requête en encodage URL

http_build_query

(PHP 5, PHP 7)

http_build_query — Génère une chaîne de requête en encodage URL

Description

string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )

Génère une chaîne en encodage URL, construite à partir du tableau indexé ou associatif query_data.

Liste de paramètres

query_data

Peut être un tableau ou un objet contenant des propriétés.

Si query_data est un tableau, alors ce peut être un tableau à une ou plusieurs dimensions.

Si query_data est un objet, alors seuls les attributs publics seront utilisés dans le résultat.

numeric_prefix

Si des indices numériques sont utilisés dans le tableau de base et que numeric_prefix est fourni, il sera utilisé pour préfixer les noms des index pour les éléments du tableau de base seulement.

Cela permet de générer des noms de variables valides, si les données sont ensuite décodées par PHP ou une application CGI.

arg_separator

arg_separator.output est utilisée pour séparer les arguments mais peut être modifiée en spécifiant ce paramètre.

enc_type

Par défaut, vaut PHP_QUERY_RFC1738.

Si enc_type vaut PHP_QUERY_RFC1738, alors l'encodage est effectué conformément à la » RFC 1738 et les espaces du type de média application/x-www-form-urlencoded, qui est impacté par ce choix, seront encodés sous la forme d'un signe plus (+).

Si enc_type vaut PHP_QUERY_RFC3986, alors l'encodage est effectué conformément à la » RFC 3986, et les espaces seront encodés en signe pourcent (%20).

Valeurs de retour

Retourne une chaîne de caractères encodée URL.

Historique

Version | Description
5.4.0 | Le paramètre enc_type a été ajouté.
5.1.3 | Les crochets sont échappés.
5.1.2 | Le paramètre arg_separator a été ajouté.

Exemples

Exemple #1 Utilisation simple de http_build_query()

<?php
$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');

echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&amp;');

?>

L'exemple ci-dessus va afficher :

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor

Exemple #2 http_build_query() avec tableau indexé

<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');

echo http_build_query($data) . "\n";
echo http_build_query($data, 'myvar_');
?>

L'exemple ci-dessus va afficher :

0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor

Exemple #3 http_build_query() avec tableau complexe

<?php
$data = array('user'=>array('name'=>'Bob Smith',
                            'age'=>47,
                            'sex'=>'M',
                            'dob'=>'5/12/1956'),
              'pastimes'=>array('golf', 'opera', 'poker', 'rap'),
              'children'=>array('bobby'=>array('age'=>12,
                                               'sex'=>'M'),
                                'sally'=>array('age'=>8,
                                               'sex'=>'F')),
              'CEO');

echo http_build_query($data, 'flags_');
?>

cet exemple va afficher : (sur plusieurs lignes pour la lisibilité)

user%5Bname%5D=Bob+Smith&user%5Bage%5D=47&user%5Bsex%5D=M&
user%5Bdob%5D=5%2F12%2F1956&pastimes%5B0%5D=golf&pastimes%5B1%5D=opera&
pastimes%5B2%5D=poker&pastimes%5B3%5D=rap&children%5Bbobby%5D%5Bage%5D=12&
children%5Bbobby%5D%5Bsex%5D=M&children%5Bsally%5D%5Bage%5D=8&
children%5Bsally%5D%5Bsex%5D=F&flags_0=CEO

Note:

Seuls les éléments indexés numériquement ("CEO") dans le tableau de base sont préfixés. Les autres indices numériques à d'autres niveaux n'ont pas besoin de l'être pour avoir des noms valides.

Exemple #4 Utilisation de http_build_query() avec un objet

<?php
class parentClass {
    public    $pub      = 'publicParent';
    protected $prot     = 'protectedParent';
    private   $priv     = 'privateParent';
    public    $pub_bar  = Null;
    protected $prot_bar = Null;
    private   $priv_bar = Null;

    public function __construct(){
        $this->pub_bar  = new childClass();
        $this->prot_bar = new childClass();
        $this->priv_bar = new childClass();
    }
}

class childClass {
    public    $pub  = 'publicChild';
    protected $prot = 'protectedChild';
    private   $priv = 'privateChild';
}

$parent = new parentClass();

echo http_build_query($parent);
?>

L'exemple ci-dessus va afficher :

pub=publicParent&pub_bar%5Bpub%5D=publicChild

Voir aussi

  • parse_str() - Analyse une requête HTTP
  • parse_url() - Analyse une URL et retourne ses composants
  • urlencode() - Encode une chaîne en URL
  • array_walk() - Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau


Analyse une URL et retourne ses composants

  • « http_build_query
  • rawurldecode »
  • PHP Manual
  • Fonctions URL
  • Analyse une URL et retourne ses composants

parse_url

(PHP 4, PHP 5, PHP 7)

parse_url — Analyse une URL et retourne ses composants

Description

mixed parse_url ( string $url [, int $component = -1 ] )

Cette fonction analyse une URL et retourne un tableau associatif contenant tous les éléments qui y sont présents.

Cette fonction n'est pas faite pour valider l'URL fournie, elle ne fait que la découper en parties listées ci-dessous. Les URL partielles sont également acceptées, la fonction parse_url() fera de son mieux pour les analyser correctement.

Liste de paramètres

url

L'URL à analyser. Les caractères invalides sont remplacés par des caractères soulignés _.

component

Peut être une des constantes parmi PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY ou PHP_URL_FRAGMENT pour récupérer uniquement une partie de l'URL en tant que chaîne de caractères (sauf lorsque PHP_URL_PORT est fourni ; dans ce cas, la valeur retournée sera un entier).

Valeurs de retour

Pour les URL vraiment mal formées, parse_url() peut retourner FALSE.

Si le paramètre component est omis, un array associatif est retourné. Au moins un élément sera présent dans le tableau. Voici les clés potentielles de ce tableau:

  • scheme - e.g. http
  • host
  • port
  • user
  • pass
  • path
  • query - après le point d'interrogation "?"
  • fragment - après le croisillon (dièse) "#"

Si le paramètre component est spécifié, parse_url() retourne une string (ou un entier dans le cas d'utilisation de la constante PHP_URL_PORT)au lieu d'un array. Si le composent demandé n'existe pas dans l'URL, NULL sera retourné.

Historique

Version | Description
5.4.7 | Correction de la reconnaissance de l'hôte lorsque le schéma est omis et que un séparateur est présent en début de chaîne.
5.3.3 | Suppression du E_WARNING émis lorsque l'URL était invalide.
5.1.2 | Ajout du paramètre component

Exemples

Exemple #1 Exemple avec parse_url()

<?php
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';

var_dump(parse_url($url));
var_dump(parse_url($url, PHP_URL_SCHEME));
var_dump(parse_url($url, PHP_URL_USER));
var_dump(parse_url($url, PHP_URL_PASS));
var_dump(parse_url($url, PHP_URL_HOST));
var_dump(parse_url($url, PHP_URL_PORT));
var_dump(parse_url($url, PHP_URL_PATH));
var_dump(parse_url($url, PHP_URL_QUERY));
var_dump(parse_url($url, PHP_URL_FRAGMENT));
?>

L'exemple ci-dessus va afficher :

array(8) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(8) "hostname"
  ["port"]=>
  int(9090)
  ["user"]=>
  string(8) "username"
  ["pass"]=>
  string(8) "password"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(9) "arg=value"
  ["fragment"]=>
  string(6) "anchor"
}
string(4) "http"
string(8) "username"
string(8) "password"
string(8) "hostname"
int(9090)
string(5) "/path"
string(9) "arg=value"
string(6) "anchor"

Exemple #2 Exemple avec la fonction parse_url() sans schéma

<?php
$url = '//www.example.com/path?googleguy=googley';

// Avant PHP 5.4.7, le chemin sera "//www.example.com/path"
var_dump(parse_url($url));
?>

L'exemple ci-dessus va afficher :

array(3) {
  ["host"]=>
  string(15) "www.example.com"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(17) "googleguy=googley"
}

Notes

Note:

Cette fonction ne fonctionne pas avec les URLs relatives.

Note:

parse_url() a été créée tout spécialement pour analyser les URL et non les URI. Cependant, pour des raisons de compatibilité adjacente, PHP fait une exception pour le schéma file:// où les triples slashs (file:///...) sont autorisés. Tous les autres schémas sont invalides.

Voir aussi

  • pathinfo() - Retourne des informations sur un chemin système
  • parse_str() - Analyse une requête HTTP
  • http_build_query() - Génère une chaîne de requête en encodage URL
  • dirname() - Renvoie le chemin du dossier parent
  • basename() - Retourne le nom de la composante finale d'un chemin
  • » RFC 3986


Décode une chaîne URL

  • « parse_url
  • rawurlencode »
  • PHP Manual
  • Fonctions URL
  • Décode une chaîne URL

rawurldecode

(PHP 4, PHP 5, PHP 7)

rawurldecode — Décode une chaîne URL

Description

string rawurldecode ( string $str )

rawurldecode() retourne la chaîne str dont les séquences de caractères %xy, avec xy deux valeurs hexadécimales, auront été remplacées par le caractère ASCII correspondant.

Liste de paramètres

str

L'URL à décoder.

Valeurs de retour

Retourne l'URL décodée, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec rawurldecode()

<?php

echo rawurldecode('foo%20bar%40baz'); // foo bar@baz

?>

Notes

Note:

rawurldecode() ne décode pas le symbole d'addition ("+") contrairement à la fonction urldecode().

Voir aussi

  • rawurlencode() - Encode une chaîne en URL, selon la RFC 3986
  • urldecode() - Décode une chaîne encodée URL
  • urlencode() - Encode une chaîne en URL
  • » RFC 3986


Encode une chaîne en URL, selon la RFC 3986

  • « rawurldecode
  • urldecode »
  • PHP Manual
  • Fonctions URL
  • Encode une chaîne en URL, selon la RFC 3986

rawurlencode

(PHP 4, PHP 5, PHP 7)

rawurlencode — Encode une chaîne en URL, selon la RFC 3986

Description

string rawurlencode ( string $str )

Encode la chaîne fournie, en accord avec la » RFC 3986.

Liste de paramètres

str

L'URL à encoder.

Valeurs de retour

Retourne une chaîne dont tous les caractères non alphanumériques (hormis

-_.~
) auront été remplacés par des séquences %xy (%), avec xy, deux valeurs hexadécimales. Ce codage est conforme à la » RFC 3986 qui évite que les caractères spéciaux soient interprétés comme des délimiteurs, et pour protéger les URL lors du transfert (contrairement à certains systèmes email).

Note:

Avant PHP 5.3.0, rawurlencode encodait les tildes (~) suivant la » RFC 1738.

Historique

Version | Description
5.3.4 | Les caractères tildes (~) ne sont plus encodés lorsque la fonction rawurlencode() est utilisée avec les chaînes EBCDIC.
5.3.0 | Conformité avec la » RFC 3986.

Exemples

Exemple #1 Exemple avec rawurlencode()

<?php
echo '<a href="ftp://user:', rawurlencode('foo @+%/'),
     '@ftp.example.com/x.txt">';
?>

L'exemple ci-dessus va afficher :

<a href="ftp://user:foo%20%40%2B%25%2F@ftp.example.com/x.txt">

Ou, si vous transmettez un composant PATH_INFO d'une URL :

Exemple #2 Exemple avec rawurlencode()

<?php
echo '<a href="http://example.com/department_list_script/',
    rawurlencode('sales and marketing/Miami'), '">';
?>

L'exemple ci-dessus va afficher :

<a href="http://example.com/department_list_script/sales%20and%20marketing%2FMiami">

Voir aussi

  • rawurldecode() - Décode une chaîne URL
  • urldecode() - Décode une chaîne encodée URL
  • urlencode() - Encode une chaîne en URL
  • » RFC 3986


Décode une chaîne encodée URL

  • « rawurlencode
  • urlencode »
  • PHP Manual
  • Fonctions URL
  • Décode une chaîne encodée URL

urldecode

(PHP 4, PHP 5, PHP 7)

urldecode — Décode une chaîne encodée URL

Description

string urldecode ( string $str )

Décode toutes les séquences %## et les remplace par leur valeur. Les caractères '+' sont décodés en un caractère d'espacement.

Liste de paramètres

str

La chaîne de caractères à décoder.

Valeurs de retour

Retourne la chaîne de caractères décodée.

Exemples

Exemple #1 Exemple avec urldecode()

<?php
$query = "my=apples&are=green+and+red";

foreach (explode('&', $query) as $chunk) {
    $param = explode("=", $chunk);

    if ($param) {
        printf("La valeur du paramètre \"%s\" est \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));
    }
}
?>

Notes

Avertissement

Les superglobales $_GET et $_REQUEST sont déjà décodées. Utiliser urldecode() sur un élément de $_GET ou $_REQUEST peut avoir des conséquences inattendues et dangereuses.

Voir aussi

  • urlencode() - Encode une chaîne en URL
  • rawurlencode() - Encode une chaîne en URL, selon la RFC 3986
  • rawurldecode() - Décode une chaîne URL
  • » RFC 3986


Encode une chaîne en URL

  • « urldecode
  • V8js »
  • PHP Manual
  • Fonctions URL
  • Encode une chaîne en URL

urlencode

(PHP 4, PHP 5, PHP 7)

urlencode — Encode une chaîne en URL

Description

string urlencode ( string $str )

Cette fonction est utile lors de l'encodage d'une chaîne de caractères à utiliser dans la partie d'une URL, comme façon simple de passer des variables vers la page suivante.

Liste de paramètres

str

La chaîne de caractères à encoder.

Valeurs de retour

Retourne une chaîne dont les caractères non alphanumériques (hormis -_.) sont remplacés par des séquences commençant par un caractère pourcentage (%), suivi de deux chiffres hexadécimaux. Les espaces sont remplacés par des signes plus (+). Ce codage est celui qui est utilisé pour poster des informations dans les formulaires HTML. Le type MIME est application/x-www-form-urlencoded. Ce codage est différent de celui spécifié dans la » RFC 3986 (voir rawurlencode()) : pour des raisons historiques, les espaces sont remplacés par des signes plus (+).

Exemples

Exemple #1 Exemple avec urlencode()

<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>

Exemple #2 Exemple avec urlencode() et htmlentities()

<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>

Notes

Note:

Faites bien attention aux variables qui ressemblent à des entités HTML, comme &amp;, &copy; et &pound;, qui sont analysées par le client web et remplacées par leur valeur. C'est un vrai problème qui a été montré par le W3C depuis longtemps. La référence est ici : » http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2.

PHP supporte le remplacement de séparateur d'arguments par un point-virgule, comme recommandé par le W3C, grâce à la directive arg_separator du fichier php.ini. Malheureusement, la plupart des clients web n'envoient pas leurs données de formulaire avec des points-virgules. Une solution plus portable est d'utiliser &amp; à la place de & comme séparateur. Vous n'avez alors pas à changer la directive arg_separator . Laissez-la à &, mais encodez vos URL en utilisant htmlentities() ou htmlspecialchars().

Voir aussi

  • urldecode() - Décode une chaîne encodée URL
  • htmlentities() - Convertit tous les caractères éligibles en entités HTML
  • rawurlencode() - Encode une chaîne en URL, selon la RFC 3986
  • rawurldecode() - Décode une chaîne URL
  • » RFC 3986


Intégration du moteur Javascript V8

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Exemples
  • V8Js — La classe V8Js
    • V8Js::__construct — Construit un nouvel objet V8Js
    • V8Js::executeString — Exécute une chaîne comme du code Javascript
    • V8Js::getExtensions — Retourne un tableau contenant les extensions enregistrées
    • V8Js::getPendingException — Retourne l'exception Javascript non attrapée restante
    • V8Js::registerExtension — Enregistre des extensions Javascript pour V8Js
  • V8JsException — La classe V8JsException
    • V8JsException::getJsFileName — Le but de getJsFileName
    • V8JsException::getJsLineNumber — Le but de getJsLineNumber
    • V8JsException::getJsSourceLine — Le but de getJsSourceLine
    • V8JsException::getJsTrace — Le but de getJsTrace


  • « V8js
  • Installation/Configuration »
  • PHP Manual
  • V8js
  • Introduction

Introduction

Cette extension embarque le » moteur Javascript V8 dans PHP.


Pré-requis

PHP 5.3.3+ et la bibliothèque V8 ainsi que ses en-têtes qui doivent être installés dans les bons répertoires.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/v8js


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration V8js
Nom | Défaut | Modifiable | Historique
v8js.max_disposed_contexts | 25 | PHP_INI_ALL |
v8js.flags |  | PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

v8js.max_disposed_contexts integer

Définit une limite pour les contextes disposés avant de forcer V8 à effectuer une passe de collecte de mémoire.

v8js.flags string

Définit les drapeaux de la ligne de commande V8. La liste des drapeaux disponibles peut être récupérée depuis la ligne de commande en utilisant l'option --help. Par exemple :

$ php -r 'ini_set("v8js.flags", "--help"); new V8Js;' | less

Note:

Pour que ces drapeaux soient effectifs lors de l'exécution, l'appel à la fonction ini_set() doit avoir été effectué avant l'instanciation de tout objet V8Js !


Exemples

Utilisation simple

Exemple #1 Exécution d'un Javascript simple

<?php

$v8 = new V8Js();

/* basic.js */
$JS = <<< EOT
len = print('Bonjour' + ' le ' + 'monde !' + "\\n");
len;
EOT;

try {
  var_dump($v8->executeString($JS, 'basic.js'));
} catch (V8JsException $e) {
  var_dump($e);
}

?>

L'exemple ci-dessus va afficher :

Bonjour le monde !
int(19)


La classe V8Js

(PECL v8js >= 0.1.0)

Introduction

C'est la classe de base de l'extension V8Js. Chaque instance créée depuis cette classe a son propre contexte dans lequel tout le Javascript est compilé et exécuté.

Voir V8Js::__construct() pour plus d'informations.

Synopsis de la classe

V8Js {
/* Constantes */
const string V8_VERSION ;
const integer FLAG_NONE = 1 ;
const integer FLAG_FORCE_ARRAY = 2 ;
/* Méthodes */
public __construct ([ string $object_name = "PHP" [, array $variables = array() [, array $extensions = array() [, bool $report_uncaught_exceptions = TRUE ]]]] )
public mixed executeString ( string $script [, string $identifier = "V8Js::executeString()" [, int $flags = V8Js::FLAG_NONE ]] )
public static array getExtensions ( void )
public V8JsException getPendingException ( void )
public static bool registerExtension ( string $extension_name , string $script [, array $dependencies = array() [, bool $auto_enable = FALSE ]] )
}

Constantes pré-définies

V8Js::V8_VERSION

La version du moteur Javascript V8.

V8Js::FLAG_NONE

Aucun drapeau.

V8Js::FLAG_FORCE_ARRAY

Force tous les objets JS à être des tableaux associatifs en PHP.

Sommaire

  • V8Js::__construct — Construit un nouvel objet V8Js
  • V8Js::executeString — Exécute une chaîne comme du code Javascript
  • V8Js::getExtensions — Retourne un tableau contenant les extensions enregistrées
  • V8Js::getPendingException — Retourne l'exception Javascript non attrapée restante
  • V8Js::registerExtension — Enregistre des extensions Javascript pour V8Js


Construit un nouvel objet V8Js

  • « V8Js
  • V8Js::executeString »
  • PHP Manual
  • V8Js
  • Construit un nouvel objet V8Js

V8Js::__construct

(PECL v8js >= 0.1.0)

V8Js::__construct — Construit un nouvel objet V8Js

Description

 public V8Js::__construct
  ([ string $object_name = "PHP"
 [, array $variables = array()
 [, array $extensions = array()
 [, bool $report_uncaught_exceptions = TRUE
]]]] )

Construit un nouvel objet V8Js.

Liste de paramètres

object_name

Le nom de l'objet passé à Javascript.

variables

Une liste des variables PHP qui seront disponibles en Javascript. Doit être un tableau associatif au format array("nom-pour-js" => "nom-de-la-variable-php"). Par défaut, un tableau vide.

extensions

Liste des extensions enregistrées en utilisant la méthode V8Js::registerExtension(), qui devraient être disponibles dans le contexte Javascript de l'objet V8Js créé.

Note:

Les extensions enregistrées de telle façon qu'elles soient automatiquement actives n'ont pas besoin d'être listées dans ce tableau. De plus, si une extension a des dépendances, celles-ci peuvent être omises. Par défaut, un tableau vide.

report_uncaught_exceptions

Contrôle si les exceptions Javascript non attrapées sont reportées immédiatement ou non. Par défaut, vaut TRUE. Si défini à FALSE, l'exception non attrapée peut être accédée en utilisant la méthode V8Js::getPendingException().

Valeurs de retour

Retourne un nouvel objet de contexte V8Js.


Exécute une chaîne comme du code Javascript

  • « V8Js::__construct
  • V8Js::getExtensions »
  • PHP Manual
  • V8Js
  • Exécute une chaîne comme du code Javascript

V8Js::executeString

(PECL v8js >= 0.1.0)

V8Js::executeString — Exécute une chaîne comme du code Javascript

Description

public mixed V8Js::executeString ( string $script [, string $identifier = "V8Js::executeString()" [, int $flags = V8Js::FLAG_NONE ]] )

Compile et exécute la chaîne passée par le paramètre script comme du code Javascript.

Liste de paramètres

script

La chaîne à exécuter.

identifier

Identifiant pour le code exécuté. Utilisé lors du débogage.

flags

Drapeaux d'exécution. Cette valeur doit être une des constantes V8Js::FLAG_*, et vaut par défaut V8Js::FLAG_NONE.

  • V8Js::FLAG_NONE : aucun drapeau

  • V8Js::FLAG_FORCE_ARRAY : force tous les objets Javascript passés à PHP à être des tableaux associatifs

Valeurs de retour

Retourne la dernière variable instanciée dans le code Javascript, convertie en variable PHP de type correspondant.


Retourne un tableau contenant les extensions enregistrées

  • « V8Js::executeString
  • V8Js::getPendingException »
  • PHP Manual
  • V8Js
  • Retourne un tableau contenant les extensions enregistrées

V8Js::getExtensions

(PECL v8js >= 0.1.0)

V8Js::getExtensions — Retourne un tableau contenant les extensions enregistrées

Description

public static array V8Js::getExtensions ( void )

Cette fonction retourne un tableau contenant les extensions Javascript enregistrées en utilisant la méthode V8Js::registerExtension().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les extensions enregistrées ou un tableau vide s'il n'y en a aucune.


Retourne l'exception Javascript non attrapée restante

  • « V8Js::getExtensions
  • V8Js::registerExtension »
  • PHP Manual
  • V8Js
  • Retourne l'exception Javascript non attrapée restante

V8Js::getPendingException

(PECL v8js >= 0.1.0)

V8Js::getPendingException — Retourne l'exception Javascript non attrapée restante

Description

public V8JsException V8Js::getPendingException ( void )

Retourne toute exception Javascript non attrapée restante depuis un ou plusieurs appel(s) à la méthode V8Js::executeString(), sous forme de V8JsException.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet V8JsException ou NULL.


Enregistre des extensions Javascript pour V8Js

  • « V8Js::getPendingException
  • V8JsException »
  • PHP Manual
  • V8Js
  • Enregistre des extensions Javascript pour V8Js

V8Js::registerExtension

(PECL v8js >= 0.1.0)

V8Js::registerExtension — Enregistre des extensions Javascript pour V8Js

Description

public static bool V8Js::registerExtension ( string $extension_name , string $script [, array $dependencies = array() [, bool $auto_enable = FALSE ]] )

Enregistre le code Javascript passé par le paramètre script comme extension à utiliser dans les contextes V8Js.

Liste de paramètres

extension_name

Nom de l'extension à enregistrer.

script

Le code Javascript à enregistrer.

dependencies

Un tableau de noms d'extensions dont l'extension en cours d'enregistrement dépend. Chacune d'elles sera activée automatiquement lors du chargement de cette extension.

Note:

Toutes les extensions, y compris les dépendances, doivent être enregistrées avant la création de tout objet V8Js les utilisant.

auto_enable

Si défini à TRUE, l'extension sera activée automatiquement dans tous les contextes V8Js.

Valeurs de retour

Retourne TRUE si l'extension a été enregistrée avec succès, FALSE sinon.


La classe V8JsException

(PECL v8js >= 0.1.0)

Introduction

Synopsis de la classe

V8JsException extends Exception {
/* Propriétés */
protected $JsFileName ;
protected $JsLineNumber ;
protected $JsSourceLine ;
protected $JsTrace ;
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes */
final public string getJsFileName ( void )
final public int getJsLineNumber ( void )
final public string getJsSourceLine ( void )
final public string getJsTrace ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

JsFileName

JsLineNumber

JsSourceLine

JsTrace

Sommaire

  • V8JsException::getJsFileName — Le but de getJsFileName
  • V8JsException::getJsLineNumber — Le but de getJsLineNumber
  • V8JsException::getJsSourceLine — Le but de getJsSourceLine
  • V8JsException::getJsTrace — Le but de getJsTrace


Le but de getJsFileName

  • « V8JsException
  • V8JsException::getJsLineNumber »
  • PHP Manual
  • V8JsException
  • Le but de getJsFileName

V8JsException::getJsFileName

(PECL v8js >= 0.1.0)

V8JsException::getJsFileName — Le but de getJsFileName

Description

final public string V8JsException::getJsFileName ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getJsLineNumber

  • « V8JsException::getJsFileName
  • V8JsException::getJsSourceLine »
  • PHP Manual
  • V8JsException
  • Le but de getJsLineNumber

V8JsException::getJsLineNumber

(PECL v8js >= 0.1.0)

V8JsException::getJsLineNumber — Le but de getJsLineNumber

Description

final public int V8JsException::getJsLineNumber ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getJsSourceLine

  • « V8JsException::getJsLineNumber
  • V8JsException::getJsTrace »
  • PHP Manual
  • V8JsException
  • Le but de getJsSourceLine

V8JsException::getJsSourceLine

(PECL v8js >= 0.1.0)

V8JsException::getJsSourceLine — Le but de getJsSourceLine

Description

final public string V8JsException::getJsSourceLine ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getJsTrace

  • « V8JsException::getJsSourceLine
  • Yaml »
  • PHP Manual
  • V8JsException
  • Le but de getJsTrace

V8JsException::getJsTrace

(PECL v8js >= 0.1.0)

V8JsException::getJsTrace — Le but de getJsTrace

Description

final public string V8JsException::getJsTrace ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Linéarisation de données YAML

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Callbacks
    • Analyse des fonctions de rappel
    • Emission des fonctions de rappel
  • Fonctions Yaml
    • yaml_emit_file — Envoie une représentation YAML vers un fichier
    • yaml_emit — Retourne une chaîne représentant une valeur YAML
    • yaml_parse_file — Analyse un flux YAML depuis un fichier
    • yaml_parse_url — Analyse un flux YAML depuis une URL
    • yaml_parse — Analyse un flux YAML


Introduction

Cette extension donne accès au standard de linéarisation » YAML Ain't Markup Language (YAML). L'analyse syntaxique et la production de données sont effectuées par la bibliothèque » LibYAML.


Pré-requis

Cette extension nécessite la » bibliothèque C LibYAML en version 0.1.0 ou plus pour être installée.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/yaml.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Yaml
Nom | Défaut | Modifiable | Historique
yaml.decode_binary | 0 | PHP_INI_ALL |
yaml.decode_php | 1 | PHP_INI_ALL |
yaml.decode_timestamp | 0 | PHP_INI_ALL |
yaml.output_canonical | 0 | PHP_INI_ALL |
yaml.output_indent | 2 | PHP_INI_ALL |
yaml.output_width | 80 | PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

yaml.decode_binary boolean

Off par défaut ; si mis à on, permet le décodage des entités binaires base64 ayant le tag explicite "tag:yaml.org,2002:binary".

yaml.decode_php boolean

Activé par défaut, mais pouvant être désactivé pour éviter la délinéarisation des objets PHP linéarisés ayant la valise "!php/object".

yaml.decode_timestamp integer

Contrôle le décodage des scalaires implicites et explicites "tag:yaml.org,2002:timestamp" dans le flux du document YAML. La valeur par défaut est 0, elle n'appliquera aucun décodage. Mis à 1, strtotime() sera utilisé pour analyser le timestamp comme un timestamp Unix timestamp. Mis à 2, date_create() sera utilisée pour analyser le timestamp via un objet DateTime.

yaml.output_canonical boolean

Off par défaut ; si mis à on, une sortie canonique sera utilisée.

yaml.output_indent integer

Nombres d'espaces pour l'indentation. Un entier entre 1 et 10 est requis.

yaml.output_width integer

Précise la largeur de ligne. -1 signifie illimité.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Styles scalaires utilisés par les fonctions de rappel de yaml_parse()
YAML_ANY_SCALAR_STYLE (entier)
YAML_PLAIN_SCALAR_STYLE (entier)
YAML_SINGLE_QUOTED_SCALAR_STYLE (entier)
YAML_DOUBLE_QUOTED_SCALAR_STYLE (entier)
YAML_LITERAL_SCALAR_STYLE (entier)
YAML_FOLDED_SCALAR_STYLE (entier)
Tags utilisables pour les fonctions de rappel yaml_parse()
YAML_NULL_TAG (chaîne de caractères)
"tag:yaml.org,2002:null"
YAML_BOOL_TAG (chaîne de caractères)
"tag:yaml.org,2002:bool"
YAML_STR_TAG (chaîne de caractères)
"tag:yaml.org,2002:str"
YAML_INT_TAG (chaîne de caractères)
"tag:yaml.org,2002:int"
YAML_FLOAT_TAG (chaîne de caractères)
"tag:yaml.org,2002:float"
YAML_TIMESTAMP_TAG (chaîne de caractères)
"tag:yaml.org,2002:timestamp"
YAML_SEQ_TAG (chaîne de caractères)
"tag:yaml.org,2002:seq"
YAML_MAP_TAG (chaîne de caractères)
"tag:yaml.org,2002:map"
YAML_PHP_TAG (chaîne de caractères)
"!php/object"
Types d'encodages pour yaml_emit()
YAML_ANY_ENCODING (entier)
Laisse l'émetteur choisir l'encodage.
YAML_UTF8_ENCODING (entier)
Encode en UTF8.
YAML_UTF16LE_ENCODING (entier)
Encode en UTF16LE.
YAML_UTF16BE_ENCODING (entier)
Encode en UTF16BE.
Types de coupure de lignes pour yaml_emit()
YAML_ANY_BREAK (entier)
Laisse l'émetteur choisir le caractère de coupure de ligne.
YAML_CR_BREAK (entier)
Utilise \r comme caractère de coupure (style Mac).
YAML_LN_BREAK (entier)
Utilise \n comme caractère de coupure (style Unix).
YAML_CRLN_BREAK (entier)
Utilise \r\n comme caractère de coupure (style DOS).


Exemples

Exemple #1 Exemples Yaml

<?php
$addr = array(
    "given" => "Chris",
    "family"=> "Dumars",
    "address"=> array(
        "lines"=> "458 Walkman Dr.
        Suite #292",
        "city"=> "Royal Oak",
        "state"=> "MI",
        "postal"=> 48046,
      ),
  );
$invoice = array (
    "invoice"=> 34843,
    "date"=> "2001-01-23",
    "bill-to"=> $addr,
    "ship-to"=> $addr,
    "product"=> array(
        array(
            "sku"=> "BL394D",
            "quantity"=> 4,
            "description"=> "Basketball",
            "price"=> 450,
          ),
        array(
            "sku"=> "BL4438H",
            "quantity"=> 1,
            "description"=> "Super Hoop",
            "price"=> 2392,
          ),
      ),
    "tax"=> 251.42,
    "total"=> 4443.52,
    "comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
    );

// genère un représentation YAML de invoice
$yaml = yaml_emit($invoice);
var_dump($yaml);

// convertit la syntaxe YAML vers une variable PHP
$parsed = yaml_parse($yaml);

// vérifie que la conversion a produit une structure équivalente
var_dump($parsed == $invoice);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(631) "---
invoice: 34843
date: "2001-01-23"
bill-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
"
bool(true)


Callbacks

Sommaire

  • Analyse des fonctions de rappel
  • Emission des fonctions de rappel


Analyse des fonctions de rappel

L'analyse des fonctions de rappel est invoquée par les fonctions yaml_parse(), yaml_parse_file() ou yaml_parse_url() lorsqu'une balise YAML enregistrée est rencontrée. La fonction de rappel est appelée avec la valeur de l'entité de la balise, la balise, et les drapeaux indiquant le type scalaire de l'entité. La fonction de rappel doit retourner les données que l'analyseur YAML doit émettre pour cette entité.

Exemple #1 Exemple d'analyse de fonction de rappel

<?php
/**
 * Fonction de rappel analysant une balise YAML.
 * @param mixed $value Données depuis le fichier YAML
 * @param string $tag Balise émise par la fonction de rappel
 * @param int $flags Type scalaire de l'entité (voir YAML_*_SCALAR_STYLE)
 * @return mixed Valeur que l'analyseur YAML doit émettre pour la valeur donnée
 */
function tag_callback ($value, $tag, $flags) {
  var_dump(func_get_args()); // débogage
  return "Hello {$value}";
}

$yaml = <<<YAML
greeting: !example/hello World
YAML;

$result = yaml_parse($yaml, 0, $ndocs, array(
    '!example/hello' => 'tag_callback',
  ));

var_dump($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  string(5) "World"
  [1]=>
  string(14) "!example/hello"
  [2]=>
  int(1)
}
array(1) {
  ["greeting"]=>
  string(11) "Hello World"
}


Emission des fonctions de rappel

L'émission des fonctions de rappel est invoquée lorsqu'un instance d'une classe enregistrée est émise via la fonction yaml_emit() ou la fonction yaml_emit_file(). La fonction de rappel reçoit l'objet à émettre. La fonction de rappel doit retourner un tableau contenant 2 clés : "tag" et "data". La valeur associée avec la clé "tag" doit être une chaîne à utiliser comme balise YAML dans la sortie. La valeur associée avec la clé "data" sera encodé YAML et émise à la place de l'objet intercepté.

Exemple #1 Exemple d'émission des fonctions de rappel

<?php
class EmitExample {
  public $data;    // les données peuvent être de n'importe quel type valide pecl/yaml

  public function __construct ($d) {
    $this->data = $d;
  }

  /**
   * Yaml émet une fonction de rappel, référencée par un appel à yaml_emit par le nom de la classe
   *
   * Il est attendu de retourner un tableau contenant 2 valeurs :
   *   - 'tag': balise personnalisée pour cette linéarisation
   *   - 'data': valeur à convertir en yaml (array, string, bool, number)
   *
   * @param object $obj Objet à émettre
   * @return array Balise et données associées à émettre
   */
  public static function yamlEmit (EmitExample $obj) {
    return array(
      'tag' => '!example/emit',
      'data' => $obj->data,
    );
  }
}

$emit_callbacks = array(
  'EmitExample' => array('EmitExample', 'yamlEmit')
);

$t = new EmitExample(array('a','b','c'));
$yaml = yaml_emit(
  array(
    'example' => $t,
  ),
  YAML_ANY_ENCODING,
  YAML_ANY_BREAK,
  $emit_callbacks
);
var_dump($yaml);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(43) "---
example: !example/emit
- a
- b
- c
...
"


Fonctions Yaml

Sommaire

  • yaml_emit_file — Envoie une représentation YAML vers un fichier
  • yaml_emit — Retourne une chaîne représentant une valeur YAML
  • yaml_parse_file — Analyse un flux YAML depuis un fichier
  • yaml_parse_url — Analyse un flux YAML depuis une URL
  • yaml_parse — Analyse un flux YAML


Envoie une représentation YAML vers un fichier

  • « Fonctions Yaml
  • yaml_emit »
  • PHP Manual
  • Fonctions Yaml
  • Envoie une représentation YAML vers un fichier

yaml_emit_file

(PECL yaml >= 0.5.0)

yaml_emit_file — Envoie une représentation YAML vers un fichier

Description

bool yaml_emit_file ( string $filename , mixed $data [, int $encoding = YAML_ANY_ENCODING [, int $linebreak = YAML_ANY_BREAK [, array $callbacks = null ]]] )

Génère une représentation YAML de la donnée data dans le fichier filename.

Liste de paramètres

filename

Chemin vers un fichier.

data

Donnée à encoder. Peut être de tout type sauf resource.

encoding

Encodage des caractères en sortie choisi parmi YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING.

linebreak

Caractère de fin de ligne choisi parmi YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK.

callbacks

Gestionnaires de contenu pour l'émission de noeud YAML. Doit être un tableau associatif de paires "nom de classe" => callable. Voir l'émission de fonctions de rappel pour plus de détails.

Valeurs de retour

Retourne TRUE en cas de succès.

Historique

Version | Description
1.1.0 | Le paramètre callbacks a été ajouté.

Voir aussi

  • yaml_emit() - Retourne une chaîne représentant une valeur YAML
  • yaml_parse() - Analyse un flux YAML


Retourne une chaîne représentant une valeur YAML

  • « yaml_emit_file
  • yaml_parse_file »
  • PHP Manual
  • Fonctions Yaml
  • Retourne une chaîne représentant une valeur YAML

yaml_emit

(PECL yaml >= 0.5.0)

yaml_emit — Retourne une chaîne représentant une valeur YAML

Description

string yaml_emit ( mixed $data [, int $encoding = YAML_ANY_ENCODING [, int $linebreak = YAML_ANY_BREAK [, array $callbacks = null ]]] )

Génère une représentation YAML de la donnée data.

Liste de paramètres

data

Les données à encoder. Peut être de tout type sauf resource.

encoding

Encodage des caractères en sortie choisi parmi YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING.

linebreak

Caractère de fin de ligne choisi parmi YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK.

callbacks

Gestionnaires de contenu pour l'émission de noeud YAML. Doit être un tableau associatif de paires "nom de classe" => callable. Voir l'émission de fonctions de rappel pour plus de détails.

Valeurs de retour

Retourne une chaîne YAML en cas de succès.

Historique

Version | Description
1.1.0 | Le paramètre callbacks a été ajouté.

Exemples

Exemple #1 Exemple yaml_emit()

<?php
$addr = array(
    "given" => "Chris",
    "family"=> "Dumars",
    "address"=> array(
        "lines"=> "458 Walkman Dr.
        Suite #292",
        "city"=> "Royal Oak",
        "state"=> "MI",
        "postal"=> 48046,
      ),
  );
$invoice = array (
    "invoice"=> 34843,
    "date"=> 980208000,
    "bill-to"=> $addr,
    "ship-to"=> $addr,
    "product"=> array(
        array(
            "sku"=> "BL394D",
            "quantity"=> 4,
            "description"=> "Basketball",
            "price"=> 450,
          ),
        array(
            "sku"=> "BL4438H",
            "quantity"=> 1,
            "description"=> "Super Hoop",
            "price"=> 2392,
          ),
      ),
    "tax"=> 251.42,
    "total"=> 4443.52,
    "comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
  );
var_dump(yaml_emit($invoice));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(628) "---
invoice: 34843
date: 980208000
bill-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
"

Voir aussi

  • yaml_emit_file() - Envoie une représentation YAML vers un fichier
  • yaml_parse() - Analyse un flux YAML


Analyse un flux YAML depuis un fichier

  • « yaml_emit
  • yaml_parse_url »
  • PHP Manual
  • Fonctions Yaml
  • Analyse un flux YAML depuis un fichier

yaml_parse_file

(PECL yaml >= 0.4.0)

yaml_parse_file — Analyse un flux YAML depuis un fichier

Description

mixed yaml_parse_file ( string $filename [, int $pos = 0 [, int &$ndocs [, array $callbacks = null ]]] )

Convertit tout ou partie d'un document YAML provenant d'un fichier vers une variable PHP.

Liste de paramètres

filename

Chemin vers le fichier.

pos

Le document à extraire du flux (-1 pour tous les documents, 0 pour le premier, ...).

ndocs

Si ndocs est fourni, alors il est rempli avec le nombre de documents trouvés dans le flux.

callbacks

Analyseurs de contenu pour les noeuds YAML. Tableau associatif tag YAML => callable. Voir l'analyse des fonctions de rappel pour plus de détails.

Valeurs de retour

Retourne la valeur encodée de filename dans le type PHP approprié ou FALSE si une erreur survient. Si pos vaut -1 un tableau sera retourné avec pour chaque valeur, un document trouvé dans le flux.

Notes

Avertissement

Le fait de traiter une entrée utilisateur non sécurisée avec yaml_parse_file() est dangereux si l'utilisation de unserialize() est activé pour les noeuds utilisant la balise !php/object. Ce comportement peut être désactivé en utilisant la configuration ini yaml.decode_php.

Voir aussi

  • yaml_parse() - Analyse un flux YAML
  • yaml_parse_url() - Analyse un flux YAML depuis une URL
  • yaml_emit() - Retourne une chaîne représentant une valeur YAML


Analyse un flux YAML depuis une URL

  • « yaml_parse_file
  • yaml_parse »
  • PHP Manual
  • Fonctions Yaml
  • Analyse un flux YAML depuis une URL

yaml_parse_url

(PECL yaml >= 0.4.0)

yaml_parse_url — Analyse un flux YAML depuis une URL

Description

mixed yaml_parse_url ( string $url [, int $pos = 0 [, int &$ndocs [, array $callbacks = null ]]] )

Convertit tout ou partie d'un document YAML provenant d'une URL vers une variable PHP.

Liste de paramètres

url

url doit être de la forme "scheme://...". PHP cherchera le protocole pour cette URL. Si aucun protocole n'a été enregistré pour ce flux, PHP émettra une notice pour vous aider à trouver le problème et continuera.

pos

Le document à extraire du flux (-1 pour tous les documents, 0 pour le premier, ...).

ndocs

Si ndocs est fourni, alors il est rempli avec le nombre de documents trouvés dans le flux.

callbacks

Analyseurs de contenu pour les noeuds YAML. Tableau associatif tag YAML => callable. Voir l'analyse des fonctions de rappel pour plus d'informations.

Valeurs de retour

Retourne la valeur encodée de url dans le type PHP approprié ou FALSE si une erreur survient. Si pos vaut -1, un tableau sera retourné avec pour chaque valeur, un document trouvé dans le flux.

Notes

Avertissement

Le fait de traiter une entrée utilisateur non sécurisée avec yaml_parse_url() est dangereux si l'utilisation de unserialize() est activé pour les noeuds utilisant la balise !php/object. Ce comportement peut être désactivé en utilisant la configuration ini yaml.decode_php.

Voir aussi

  • yaml_parse() - Analyse un flux YAML
  • yaml_parse_file() - Analyse un flux YAML depuis un fichier
  • yaml_emit() - Retourne une chaîne représentant une valeur YAML


Analyse un flux YAML

  • « yaml_parse_url
  • Yaf »
  • PHP Manual
  • Fonctions Yaml
  • Analyse un flux YAML

yaml_parse

(PECL yaml >= 0.4.0)

yaml_parse — Analyse un flux YAML

Description

mixed yaml_parse ( string $input [, int $pos = 0 [, int &$ndocs [, array $callbacks = null ]]] )

Convertit tout ou partie d'un document YAML provenant d'une chaîne vers une variable PHP.

Liste de paramètres

input

La chaîne à analyser comme document YAML.

pos

Le document à extraire du flux (-1 pour tous les documents, 0 pour le premier, ...).

ndocs

Si le paramètre ndocs est fourni, alors il est rempli avec le nombre de documents trouvés dans le flux.

callbacks

Analyseurs de contenu pour les noeuds YAML. Tableau associatif tag YAML => callable. Voir l'analyse des fonctions de rappel pour plus d'informations.

Valeurs de retour

Retourne la valeur encodée de input dans le type PHP approprié ou FALSE si une erreur survient. Si pos vaut -1, un tableau sera retourné avec pour chaque valeur un document trouvé dans le flux.

Exemples

Exemple #1 Exemple yaml_parse()

<?php
$yaml = <<<EOD
---
invoice: 34843
date: "2001-01-23"
bill-to: &id001
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to: *id001
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
EOD;

$parsed = yaml_parse($yaml);
var_dump($parsed);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(8) {
  ["invoice"]=>
  int(34843)
  ["date"]=>
  string(10) "2001-01-23"
  ["bill-to"]=>
  &array(3) {
    ["given"]=>
    string(5) "Chris"
    ["family"]=>
    string(6) "Dumars"
    ["address"]=>
    array(4) {
      ["lines"]=>
      string(34) "458 Walkman Dr.
        Suite #292"
      ["city"]=>
      string(9) "Royal Oak"
      ["state"]=>
      string(2) "MI"
      ["postal"]=>
      int(48046)
    }
  }
  ["ship-to"]=>
  &array(3) {
    ["given"]=>
    string(5) "Chris"
    ["family"]=>
    string(6) "Dumars"
    ["address"]=>
    array(4) {
      ["lines"]=>
      string(34) "458 Walkman Dr.
        Suite #292"
      ["city"]=>
      string(9) "Royal Oak"
      ["state"]=>
      string(2) "MI"
      ["postal"]=>
      int(48046)
    }
  }
  ["product"]=>
  array(2) {
    [0]=>
    array(4) {
      ["sku"]=>
      string(6) "BL394D"
      ["quantity"]=>
      int(4)
      ["description"]=>
      string(10) "Basketball"
      ["price"]=>
      int(450)
    }
    [1]=>
    array(4) {
      ["sku"]=>
      string(7) "BL4438H"
      ["quantity"]=>
      int(1)
      ["description"]=>
      string(10) "Super Hoop"
      ["price"]=>
      int(2392)
    }
  }
  ["tax"]=>
  float(251.42)
  ["total"]=>
  float(4443.52)
  ["comments"]=>
  string(68) "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338."
}

Notes

Avertissement

Le fait de traiter une entrée utilisateur non sécurisée avec yaml_parse() est dangereux si l'utilisation de unserialize() est activé pour les noeuds utilisant la balise !php/object. Ce comportement peut être désactivé en utilisant la configuration ini yaml.decode_php.

Voir aussi

  • yaml_parse_file() - Analyse un flux YAML depuis un fichier
  • yaml_parse_url() - Analyse un flux YAML depuis une URL
  • yaml_emit() - Retourne une chaîne représentant une valeur YAML


Yaf (i.e. Yet Another Framework)

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Application Configuration
  • Yaf_Application — La classe Yaf_Application
    • Yaf_Application::app — Récupère une instance de l'application
    • Yaf_Application::bootstrap — Appelle bootstrap
    • Yaf_Application::clearLastError — Efface les informations de la dernière erreur
    • Yaf_Application::__clone — Yaf_Application ne peut être clôné
    • Yaf_Application::__construct — Constructeur de Yaf_Application
    • Yaf_Application::__destruct — Le but de __destruct
    • Yaf_Application::environ — Récupère la propriété environ
    • Yaf_Application::execute — Exécute une fonction de rappel
    • Yaf_Application::getAppDirectory — Récupère le dossier de l'application
    • Yaf_Application::getConfig — Récupère une instance de configuration
    • Yaf_Application::getDispatcher — Récupère une instance Yaf_Dispatcher
    • Yaf_Application::getLastErrorMsg — Récupère le message de la dernière erreur survenue
    • Yaf_Application::getLastErrorNo — Récupère le code de la dernière erreur survenue
    • Yaf_Application::getModules — Récupère les noms des modules définis
    • Yaf_Application::run — Démarre Yaf_Application
    • Yaf_Application::setAppDirectory — Modifie le dossier de l'application
    • Yaf_Application::__sleep — Yaf_Application ne peut être linéarisé
    • Yaf_Application::__wakeup — Yaf_Application ne peut être dé-linéarisé
  • Yaf_Bootstrap_Abstract — La classe Yaf_Bootstrap_Abstract
  • Yaf_Dispatcher — La classe Yaf_Dispatcher
    • Yaf_Dispatcher::autoRender — Active/désactive le rendu automatique
    • Yaf_Dispatcher::catchException — Active/désactive la récupération des exceptions
    • Yaf_Dispatcher::__clone — Yaf_Dispatcher ne peut être clôner
    • Yaf_Dispatcher::__construct — Constructeur de Yaf_Dispatcher
    • Yaf_Dispatcher::disableView — Désactive le moteur de visualisation
    • Yaf_Dispatcher::dispatch — Envoi une demande
    • Yaf_Dispatcher::enableView — Active le rendu de la vue
    • Yaf_Dispatcher::flushInstantly — Active/désactive l'envoi instantané
    • Yaf_Dispatcher::getApplication — Récupère l'application
    • Yaf_Dispatcher::getInstance — Récupère l'instance du module d'envoi
    • Yaf_Dispatcher::getRequest — Récupère l'instance demandée
    • Yaf_Dispatcher::getRouter — Récupère l'instance routeur
    • Yaf_Dispatcher::initView — Initialise la vue et la retourne
    • Yaf_Dispatcher::registerPlugin — Enregistre un plugin
    • Yaf_Dispatcher::returnResponse — Le but de returnResponse
    • Yaf_Dispatcher::setDefaultAction — Modifie le nom par défaut de l'action
    • Yaf_Dispatcher::setDefaultController — Modifie le nom par défaut du controlleur
    • Yaf_Dispatcher::setDefaultModule — Modifie le nom par défaut du module
    • Yaf_Dispatcher::setErrorHandler — Définit un gestionnaire d'erreur personnalisé
    • Yaf_Dispatcher::setRequest — Le but de setRequest
    • Yaf_Dispatcher::setView — Définit un moteur de visualisation personnalisé
    • Yaf_Dispatcher::__sleep — Yaf_Dispatcher ne peut être linéarisé
    • Yaf_Dispatcher::throwException — Active/désactive le lancement d'exceptions
    • Yaf_Dispatcher::__wakeup — Yaf_Dispatcher ne peut être linéarisé
  • Yaf_Config_Abstract — La classe Yaf_Config_Abstract
    • Yaf_Config_Abstract::get — Permet de récupérer une valeur
    • Yaf_Config_Abstract::readonly — Vérifie si une configuration est en lecture seule
    • Yaf_Config_Abstract::set — Permet de définir une valeur
    • Yaf_Config_Abstract::toArray — Transforme en tableau
  • Yaf_Config_Ini — La classe Yaf_Config_Ini
    • Yaf_Config_Ini::__construct — Constructeur Yaf_Config_Ini
    • Yaf_Config_Ini::count — Le but de count
    • Yaf_Config_Ini::current — Le but de current
    • Yaf_Config_Ini::__get — Le but de __get
    • Yaf_Config_Ini::__isset — Le but de __isset
    • Yaf_Config_Ini::key — Le but de key
    • Yaf_Config_Ini::next — Le but de next
    • Yaf_Config_Ini::offsetExists — Le but de offsetExists
    • Yaf_Config_Ini::offsetGet — Le but de offsetGet
    • Yaf_Config_Ini::offsetSet — Le but de offsetSet
    • Yaf_Config_Ini::offsetUnset — Le but de offsetUnset
    • Yaf_Config_Ini::readonly — Le but de readonly
    • Yaf_Config_Ini::rewind — Le but de rewind
    • Yaf_Config_Ini::__set — Le but de __set
    • Yaf_Config_Ini::toArray — Retourne un tableau PHP
    • Yaf_Config_Ini::valid — Le but de valid
  • Yaf_Config_Simple — La classe Yaf_Config_Simple
    • Yaf_Config_Simple::__construct — Le but de __construct
    • Yaf_Config_Simple::count — Le but de count
    • Yaf_Config_Simple::current — Le but de current
    • Yaf_Config_Simple::__get — Le but de __get
    • Yaf_Config_Simple::__isset — Le but de __isset
    • Yaf_Config_Simple::key — Le but de key
    • Yaf_Config_Simple::next — Le but de next
    • Yaf_Config_Simple::offsetExists — Le but de offsetExists
    • Yaf_Config_Simple::offsetGet — Le but de offsetGet
    • Yaf_Config_Simple::offsetSet — Le but de offsetSet
    • Yaf_Config_Simple::offsetUnset — Le but de offsetUnset
    • Yaf_Config_Simple::readonly — Le but de readonly
    • Yaf_Config_Simple::rewind — Le but de rewind
    • Yaf_Config_Simple::__set — Le but de __set
    • Yaf_Config_Simple::toArray — Retourne un tableau PHP
    • Yaf_Config_Simple::valid — Le but de valid
  • Yaf_Controller_Abstract — la classe Yaf_Controller_Abstract
    • Yaf_Controller_Abstract::__clone — Yaf_Controller_Abstract ne peut être clôner
    • Yaf_Controller_Abstract::__construct — Constructeur de Yaf_Controller_Abstract
    • Yaf_Controller_Abstract::display — Le but de display
    • Yaf_Controller_Abstract::forward — Transfère vers une autre action
    • Yaf_Controller_Abstract::getInvokeArg — Le but de getInvokeArg
    • Yaf_Controller_Abstract::getInvokeArgs — Le but de getInvokeArgs
    • Yaf_Controller_Abstract::getModuleName — Récupère le nom du module
    • Yaf_Controller_Abstract::getRequest — Récupère l'objet de la demande courante
    • Yaf_Controller_Abstract::getResponse — Récupère l'objet de la réponse courante
    • Yaf_Controller_Abstract::getView — Récupère le moteur de visualisation
    • Yaf_Controller_Abstract::getViewpath — Le but de getViewpath
    • Yaf_Controller_Abstract::init — Initialisation du contrôleur
    • Yaf_Controller_Abstract::initView — Le but de initView
    • Yaf_Controller_Abstract::redirect — Redirige vers une URL
    • Yaf_Controller_Abstract::render — Affiche le rendu du template
    • Yaf_Controller_Abstract::setViewpath — Le but de setViewpath
  • Yaf_Action_Abstract — La classe Yaf_Action_Abstract
    • Yaf_Action_Abstract::execute — Point d'entrée de l'action
    • Yaf_Action_Abstract::getController — Récupère l'objet contrôleur
  • Yaf_View_Interface — La classe Yaf_View_Interface
    • Yaf_View_Interface::assign — Assigne une valeur au moteur de rendu
    • Yaf_View_Interface::display — Construit et affiche un template
    • Yaf_View_Interface::getScriptPath — Le but de getScriptPath
    • Yaf_View_Interface::render — Construit un template
    • Yaf_View_Interface::setScriptPath — Le but de setScriptPath
  • Yaf_View_Simple — La classe Yaf_View_Simple
    • Yaf_View_Simple::assign — Assigne une ou plusieurs variables
    • Yaf_View_Simple::assignRef — Le but de assignRef
    • Yaf_View_Simple::clear — Efface les valeurs assignées
    • Yaf_View_Simple::__construct — Constructeur de la classe Yaf_View_Simple
    • Yaf_View_Simple::display — Construit et affiche
    • Yaf_View_Simple::eval — Évalue un template
    • Yaf_View_Simple::__get — Récupère une variable assignée
    • Yaf_View_Simple::getScriptPath — Récupère le dossier contenant les templates
    • Yaf_View_Simple::__isset — Le but de __isset
    • Yaf_View_Simple::render — Construit un template
    • Yaf_View_Simple::__set — Définit une valeur du moteur
    • Yaf_View_Simple::setScriptPath — Définit le dossier contenant les templates
  • Yaf_Loader — La classe Yaf_Loader
    • Yaf_Loader::autoload — Le but de autoload
    • Yaf_Loader::clearLocalNamespace — Le but de clearLocalNamespace
    • Yaf_Loader::__clone — Le but de __clone
    • Yaf_Loader::__construct — Le but de __construct
    • Yaf_Loader::getInstance — Le but de getInstance
    • Yaf_Loader::getLibraryPath — Récupère le chemin de la bibliothèque
    • Yaf_Loader::getLocalNamespace — Le but de getLocalNamespace
    • Yaf_Loader::import — Le but de import
    • Yaf_Loader::isLocalName — Le but de isLocalName
    • Yaf_Loader::registerLocalNamespace — Enregistre le préfixe local de la classe
    • Yaf_Loader::setLibraryPath — Modifie le chemin de la bibliothèque
    • Yaf_Loader::__sleep — Le but de __sleep
    • Yaf_Loader::__wakeup — Le but de __wakeup
  • Yaf_Plugin_Abstract — La classe Yaf_Plugin_Abstract
    • Yaf_Plugin_Abstract::dispatchLoopShutdown — Le but de dispatchLoopShutdown
    • Yaf_Plugin_Abstract::dispatchLoopStartup — Le but de dispatchLoopStartup
    • Yaf_Plugin_Abstract::postDispatch — Le but de postDispatch
    • Yaf_Plugin_Abstract::preDispatch — Le but de preDispatch
    • Yaf_Plugin_Abstract::preResponse — Le but de preResponse
    • Yaf_Plugin_Abstract::routerShutdown — Le but de routerShutdown
    • Yaf_Plugin_Abstract::routerStartup — Hook RouterStartup
  • Yaf_Registry — La classe Yaf_Registry
    • Yaf_Registry::__clone — Le but de __clone
    • Yaf_Registry::__construct — Constructeur de la classe Yaf_Registry
    • Yaf_Registry::del — Supprime un élément du registre
    • Yaf_Registry::get — Récupère un élément depuis le registre
    • Yaf_Registry::has — Vérifie si un élément existe
    • Yaf_Registry::set — Ajoute un élément au registre
  • Yaf_Request_Abstract — La classe Yaf_Request_Abstract
    • Yaf_Request_Abstract::getActionName — Le but de getActionName
    • Yaf_Request_Abstract::getBaseUri — Le but de getBaseUri
    • Yaf_Request_Abstract::getControllerName — Le but de getControllerName
    • Yaf_Request_Abstract::getEnv — Récupère une variable ENV
    • Yaf_Request_Abstract::getException — Le but de getException
    • Yaf_Request_Abstract::getLanguage — Le but de getLanguage
    • Yaf_Request_Abstract::getMethod — Le but de getMethod
    • Yaf_Request_Abstract::getModuleName — Le but de getModuleName
    • Yaf_Request_Abstract::getParam — Le but de getParam
    • Yaf_Request_Abstract::getParams — Le but de getParams
    • Yaf_Request_Abstract::getRequestUri — Le but de getRequestUri
    • Yaf_Request_Abstract::getServer — Récupère une variable SERVER
    • Yaf_Request_Abstract::isCli — Le but de isCli
    • Yaf_Request_Abstract::isDispatched — Le but de isDispatched
    • Yaf_Request_Abstract::isGet — Le but de isGet
    • Yaf_Request_Abstract::isHead — Le but de isHead
    • Yaf_Request_Abstract::isOptions — Le but de isOptions
    • Yaf_Request_Abstract::isPost — Le but de isPost
    • Yaf_Request_Abstract::isPut — Le but de isPut
    • Yaf_Request_Abstract::isRouted — Le but de isRouted
    • Yaf_Request_Abstract::isXmlHttpRequest — Le but de isXmlHttpRequest
    • Yaf_Request_Abstract::setActionName — Le but de setActionName
    • Yaf_Request_Abstract::setBaseUri — Défini l'URI de base
    • Yaf_Request_Abstract::setControllerName — Le but de setControllerName
    • Yaf_Request_Abstract::setDispatched — Le but de setDispatched
    • Yaf_Request_Abstract::setModuleName — Le but de setModuleName
    • Yaf_Request_Abstract::setParam — Le but de setParam
    • Yaf_Request_Abstract::setRequestUri — Le but de setRequestUri
    • Yaf_Request_Abstract::setRouted — Le but de setRouted
  • Yaf_Request_Http — La classe Yaf_Request_Http
    • Yaf_Request_Http::__clone — Le but de __clone
    • Yaf_Request_Http::__construct — Constructeur de __construct
    • Yaf_Request_Http::get — Récupère la variable depuis le client
    • Yaf_Request_Http::getCookie — Récupère une variable Cookie
    • Yaf_Request_Http::getFiles — Le but de getFiles
    • Yaf_Request_Http::getPost — Récupère une variable POST
    • Yaf_Request_Http::getQuery — Récupère un paramètre de la requête
    • Yaf_Request_Http::getRequest — Le but de getRequest
    • Yaf_Request_Http::isXmlHttpRequest — Vérifie s'il s'agit d'une requête Ajax
  • Yaf_Request_Simple — La classe Yaf_Request_Simple
    • Yaf_Request_Simple::__clone — Le but de __clone
    • Yaf_Request_Simple::__construct — Constructeur de __construct
    • Yaf_Request_Simple::get — Le but de get
    • Yaf_Request_Simple::getCookie — Le but de getCookie
    • Yaf_Request_Simple::getFiles — Le but de getFiles
    • Yaf_Request_Simple::getPost — Le but de getPost
    • Yaf_Request_Simple::getQuery — Le but de getQuery
    • Yaf_Request_Simple::getRequest — Le but de getRequest
    • Yaf_Request_Simple::isXmlHttpRequest — Le but de isXmlHttpRequest
  • Yaf_Response_Abstract — La classe Yaf_Response_Abstract
    • Yaf_Response_Abstract::appendBody — Ajoute le corps
    • Yaf_Response_Abstract::clearBody — Le but de clearBody
    • Yaf_Response_Abstract::clearHeaders — Le but de clearHeaders
    • Yaf_Response_Abstract::__clone — Le but de __clone
    • Yaf_Response_Abstract::__construct — Le but de __construct
    • Yaf_Response_Abstract::__destruct — Le but de __destruct
    • Yaf_Response_Abstract::getBody — Récupère un contenu existant
    • Yaf_Response_Abstract::getHeader — Le but de getHeader
    • Yaf_Response_Abstract::prependBody — Le but de prependBody
    • Yaf_Response_Abstract::response — Envoi la réponse
    • Yaf_Response_Abstract::setAllHeaders — Le but de setAllHeaders
    • Yaf_Response_Abstract::setBody — Définit le contenu de la réponse
    • Yaf_Response_Abstract::setHeader — Le but de setHeader
    • Yaf_Response_Abstract::setRedirect — Le but de setRedirect
    • Yaf_Response_Abstract::__toString — Le but de __toString
  • Yaf_Route_Interface — La classe Yaf_Route_Interface
    • Yaf_Route_Interface::assemble — Assemble une requête
    • Yaf_Route_Interface::route — Route une requête
  • Yaf_Route_Map — La classe Yaf_Route_Map
    • Yaf_Route_Map::assemble — Assemble une URL
    • Yaf_Route_Map::__construct — Le but de __construct
    • Yaf_Route_Map::route — Le but route
  • Yaf_Route_Regex — La classe Yaf_Route_Regex
    • Yaf_Route_Regex::assemble — Assemble une URL
    • Yaf_Route_Regex::__construct — Contructeur Yaf_Route_Regex
    • Yaf_Route_Regex::route — Le but de route
  • Yaf_Route_Rewrite — La classe Yaf_Route_Rewrite
    • Yaf_Route_Rewrite::assemble — Assemble une URL
    • Yaf_Route_Rewrite::__construct — Constructeur Yaf_Route_Rewrite
    • Yaf_Route_Rewrite::route — Le but de route
  • Yaf_Router — La classe Yaf_Router
    • Yaf_Router::addConfig — Ajoute une route définie dans la configuration d'un routeur
    • Yaf_Router::addRoute — Ajoute une nouvelle route dans un routeur
    • Yaf_Router::__construct — Constructeur de la classe Yaf_Router
    • Yaf_Router::getCurrentRoute — Récupère le nom effectif de la route
    • Yaf_Router::getRoute — Récupère une route via son nom
    • Yaf_Router::getRoutes — Récupère les routes enregistrées
    • Yaf_Router::route — Le but de route
  • Yaf_Route_Simple — La classe Yaf_Route_Simple
    • Yaf_Route_Simple::assemble — Assemble une URL
    • Yaf_Route_Simple::__construct — Constructeur de la classe Yaf_Route_Simple
    • Yaf_Route_Simple::route — Route une requête
  • Yaf_Route_Static — La classe Yaf_Route_Static
    • Yaf_Route_Static::assemble — Assemble une URL
    • Yaf_Route_Static::match — Le but de match
    • Yaf_Route_Static::route — Route une requête
  • Yaf_Route_Supervar — La classe Yaf_Route_Supervar
    • Yaf_Route_Supervar::assemble — Assemble une URL
    • Yaf_Route_Supervar::__construct — Le but de __construct
    • Yaf_Route_Supervar::route — Le but de route
  • Yaf_Session — La classe Yaf_Session
    • Yaf_Session::__clone — Le but de __clone
    • Yaf_Session::__construct — Le constructeur de __construct
    • Yaf_Session::count — Le but de count
    • Yaf_Session::current — Le but de current
    • Yaf_Session::del — Le but de del
    • Yaf_Session::__get — Le but de __get
    • Yaf_Session::getInstance — Le but de getInstance
    • Yaf_Session::has — Le but de has
    • Yaf_Session::__isset — Le but de __isset
    • Yaf_Session::key — Le but de key
    • Yaf_Session::next — Le but de next
    • Yaf_Session::offsetExists — Le but de offsetExists
    • Yaf_Session::offsetGet — Le but de offsetGet
    • Yaf_Session::offsetSet — Le but de offsetSet
    • Yaf_Session::offsetUnset — Le but de offsetUnset
    • Yaf_Session::rewind — Le but de rewind
    • Yaf_Session::__set — Le but de __set
    • Yaf_Session::__sleep — Le but de __sleep
    • Yaf_Session::start — Le but de start
    • Yaf_Session::__unset — Le but de __unset
    • Yaf_Session::valid — Le but de valid
    • Yaf_Session::__wakeup — Le but de __wakeup
  • Yaf_Exception — La classe Yaf_Exception
    • Yaf_Exception::__construct — Le but de __construct
    • Yaf_Exception::getPrevious — Le but de getPrevious
  • Yaf_Exception_TypeError — La classe Yaf_Exception_TypeError
  • Yaf_Exception_StartupError — La classe Yaf_Exception_StartupError
  • Yaf_Exception_DispatchFailed — La classe Yaf_Exception_DispatchFailed
  • Yaf_Exception_RouterFailed — La classe Yaf_Exception_RouterFailed
  • Yaf_Exception_LoadFailed — La classe Yaf_Exception_LoadFailed
  • Yaf_Exception_LoadFailed_Module — La classe Yaf_Exception_LoadFailed_Module
  • Yaf_Exception_LoadFailed_Controller — La classe Yaf_Exception_LoadFailed_Controller
  • Yaf_Exception_LoadFailed_Action — La classe Yaf_Exception_LoadFailed_Action
  • Yaf_Exception_LoadFailed_View — La classe Yaf_Exception_LoadFailed_View


Introduction

L'extension Yet Another Framework(Yaf) est un framework PHP, utilisé pour le développement d'application web.

Yaf requiert une version PHP 5.2.1 ou supérieur. Les versions plus anciennes peuvent ne pas fonctionner.

Un benchmark de Yaf peut être vu sur la page des » performances Yaf.

Pour un démarrage rapide, référez-vous à ces tutoriaux.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/yaf.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Yaf
Nom | Défaut | Modifiable | Historique
yaf.library |  | sa valeur PHP_INI_ALL |
yaf.action_prefer | 0 | sa valeur PHP_INI_ALL |
yaf.lowcase_path | 0 | sa valeur PHP_INI_ALL |
yaf.use_spl_autoload | 0 | sa valeur PHP_INI_ALL |
yaf.forward_limit | 5 | sa valeur PHP_INI_ALL |
yaf.name_suffix | 1 | sa valeur PHP_INI_ALL |
yaf.name_separator |  | sa valeur PHP_INI_ALL |
yaf.cache_config | 0 | sa valeur PHP_INI_SYSTEM |
yaf.environ | product | sa valeur PHP_INI_SYSTEM |
yaf.use_namespace | 0 | sa valeur PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

yaf.library string

Le chemin vers la bibliothèque globale ; Yaf_loader cherchera dans ce dossier la bibliothèque globale.

yaf.action_prefer integer

S'il n'y a qu'une seule partie dans PATH_INFO, doit être considéré comme un contrôleur ou une action.

Si cette option est activée, elle sera considérée comme un nom d'action.

yaf.lowcase_path integer

Si l'on doit mettre en minuscule le chemin lors de l'autochargement de la classe.

yaf.use_spl_autoload integer

Lorsque cette valeur est active, si Yaf_Loader ne trouve pas une classe, il retournera FALSE, et donnera ensuite la chance aux autres fonctions au chargement automatique d'être appelées.

Lorsque cette valeur est désactivée, si Yaf_Loader ne peut pas trouver une classe, il retournera TRUE, et fera échouer l'autochargement de la classe immédiatement.

Note:

Yaf enregistrera son chargeur lors de l'instanciation de Yaf_Application, aussi, tous les autres chargeurs automatiques qui sont enregistrés avant l'instanciation seront appelés avant Yaf_Loader::autoload().

Lorsque cette valeur est désactivé (Off par défaut), la méthode Yaf_Loader::autoload() retournera toujours TRUE.

yaf.forward_limit integer

Le nombre maximal de redirection ; par défaut, 5. Cela signifie que vous pouvez avoir un nombre maximal de 5 redirections dans la pile des redirections.

Ceci est une protection contre les Yaf_Controller_Abstract::forward() récursifs.

yaf.name_suffix integer

Lorsqu'activé, Yaf_Loader identifiera une classe par son suffixe pour décider si c'est bien une classe MVC.

Lorsque désactivé, Yaf_Loader regardera le préfixe du nom de la classe.

yaf.name_separator string

Lorsque non vide, Yaf_Loader identifiera le suffixe de la classe à l'aide de ce séparateur.

Par exemple, lorsque cette option contient la valeur "_", Yaf_Loader prendra Index_Controller comme une classe contrôleur, et IndexController comme une classe normale.

yaf.cache_config integer

Si activé, et dans le même temps, vous utilisez un fichier de configuration au format ini comme paramètre de la méthode Yaf_Application(), le résultat de la compilation du fichier de configuration au format ini sera mis en cache dans le processus PHP.

Note:

Yaf examine le flag mtime du fichier ini, et s'il a été modifié depuis la dernière compilation, Yaf le rechargera.

Avertissement

Yaf utilise le chemin vers le fichier ini comme clé de l'entrée du cache, aussi, n'utilisez pas un chemin absolu pour votre chemin vers le fichier ini, sinon, il se pourrait qu'il y ait des conflit si deux applications utilisent le même chemin relatif pour le chemin vers le fichier de configuration ini.

yaf.environ string

La valeur est "product" par défaut ; utilisé par Yaf pour récupérer la section de configuration d'un fichier de configuration au format ini.

Si la valeur est bien "product", Yaf utilisera la section nommée "product" dans le fichier de configuration au format ini (le premier paramètre de la classe Yaf_Application) comme configuration finale pour la classe Yaf_Application.

yaf.use_namespace integer

Ne fonctionne que depuis PHP 5.3 ; si cette option est activée, toutes les classes de Yaf seront nommées via des espaces de noms.

Par exemple :

Yaf_Route_Rewrite => \Yaf\Route\Rewrite
Yaf_Request_Http  => \Yaf\Request\Http
Il y a une exception à ce principe, comme par exemple la classe Yaf_Controller_Abstract. Le dernier composant est un mot clé PHP, ne pouvant pas être utilisé comme nom de classe ; aussi, pour de tel cas :
Yaf_Controller_Abstract => \Yaf\Controller_Abstract
Yaf_Route_Static => \Yaf\Route_Static


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

YAF_VERSION (chaîne de caractères)
YAF_ENVIRON (chaîne de caractères)
YAF_ERR_STARTUP_FAILED (entier)
YAF_ERR_ROUTE_FAILED (entier)
YAF_ERR_DISPATCH_FAILED (entier)
YAF_ERR_AUTOLOAD_FAILED (entier)
YAF_ERR_NOTFOUND_MODULE (entier)
YAF_ERR_NOTFOUND_CONTROLLER (entier)
YAF_ERR_NOTFOUND_ACTION (entier)
YAF_ERR_NOTFOUND_VIEW (entier)
YAF_ERR_CALL_FAILED (entier)
YAF_ERR_TYPE_ERROR (entier)


Exemples

Exemple #1 Une architecture classique d'une application

- index.php
- .htaccess
+ conf
  |- application.ini //configuration de l'application
- application/
  - Bootstrap.php
  + controllers
     - Index.php //controlleur par défaut
  + views
     |+ index
        - index.phtml //template d'affichage pour l'action par défaut
  + modules
  - library
  - models
  - plugins

Exemple #2 Entry

index.php dans le premier dossier est le seul point d'entrée de votre application ; vous devez re-diriger toutes les requêtes vers ce fichier (vous pouvez utiliser un fichier .htaccess avec Apache + php_mod)

<?php
define("APPLICATION_PATH",  dirname(__FILE__));

$app  = new Yaf_Application(APPLICATION_PATH . "/conf/application.ini");
$app->bootstrap() //appel des méthodes bootstrap définies dans le fichier Bootstrap.php
 ->run();
?>

Exemple #3 Règle de ré-écriture des requêtes

#for apache (.htaccess)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php

#for nginx
server {
  listen ****;
  server_name  domain.com;
  root   document_root;
  index  index.php index.html index.htm;

  if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php/$1 last;
  }
}

#for lighttpd
$HTTP["host"] =~ "(www.)?domain.com$" {
  url.rewrite = (
     "^/(.+)/?$"  => "/index.php/$1",
  )
}

Exemple #4 Configuration de l'application

[yaf]
;APPLICATION_PATH est la constante définie dans index.php
application.directory=APPLICATION_PATH "/application/"

;section de production héritée de la section yaf
[product:yaf]
foo=bar

Exemple #5 Controlleur par défaut

<?php
class IndexController extends Yaf_Controller_Abstract {
   /* action par défaut */
   public function indexAction() {
       $this->_view->word = "hello world";
       // ou
       // $this->getView()->word = "hello world";
   }
}
?>

Exemple #6 Template de rendu par défaut

<html>
 <head>
   <title>Hello World</title>
 </head>
 <body>
   <?php echo $word;?>
 </body>
</html>

Exemple #7 Exécution de l'application

L'exemple ci-dessus va afficher quelque chose de similaire à :

<html>
 <head>
   <title>Hello World</title>
 </head>
 <body>
   hello world
 </body>
</html>

Note:

vous pouvez aussi générer l'exemple ci-dessus en utilisant un générateur de code Yaf, qui peut être trouvé sur yaf@github.


Application Configuration

Vous devez fournir un tableau de configuration, ou un fichier au format ini de configuration (voir le chemin Yaf_Config_Ini) de la méthode Yaf_Application::__construct().

Yaf va fusionner automatiquement les configurations de l'application et celles de l'utilisateur. Les configurations d'application sont préfixées par "yaf." ou par "application.". Si à la fois "yaf." et "application." existent, "application." prendra l'avantage.

Exemple #1 Exemple avec un tableau PHP

<?php
    $configs = array(
            "application" => array(
                "directory" => dirname(__FILE__),
                "dispatcher" => array(
                      "catchException" => 0,
                    ),
                "view" => array(
                       "ext" => "phtml",
                    ),
                ),
           );
    $app = new Yaf_Application($configs);
?>

Exemple #2 Exemple avec un fichier ini

[yaf]
yaf.directory = APPLICATION_PATH "/appliation"
yaf.dispatcher.catchException = 0

[product : yaf]
; la configuration utilisateur va ici

Configuration d'application Yaf
Nom | Défaut | Historique
application.directory |  |
application.ext | "php" |
application.view.ext | "phtml" |
application.modules | "index" |
application.library | application.directory . "/library" |
application.library.directory | application.directory . "/library" |
application.library.namespace | "" |
application.bootstrap | application.directory . "/Bootstrap" . application.ext |
application.baseUri | "" |
application.dispatcher.defaultRoute |  |
application.dispatcher.throwException | 1 |
application.dispatcher.catchException | 0 |
application.dispatcher.defaultModule | "index" |
application.dispatcher.defaultController | "index" |
application.dispatcher.defaultAction | "index" |
application.system |  |

Voici un éclaircissement sur l'utilisation des directives de configuration.

application.directory string

Le dossier de l'application ; il contient les dossiers "controllers", "views", "models" et "plugins".

Note:

Cette entrée de configuration est la seule qui n'a pas de valeur par défaut. Vous devez toujours la définir manuellement.

application.ext string

L'extension de fichier du script PHP, utilisé dans la classe autoloading(Yaf_Loader).

application.view.ext string

L'extension du fichier de script du template de visualisation.

application.modules string

Une liste séparée par une virgule de modules enregistrés, utilisés dans le processus de routage, et spécialement lorsqu'il y a plus de trois segments dans le PATH_INFO

Yaf doit avoir un moyen de savoir si le premier segment est un nom de module ou pas.

application.library string

Le dossier local de la bibliothèque, voir Yaf_Loader et yaf.library.

Note:

Depuis Yaf 2.1.6, cette entrée de configuration peut être un tableau. Le chemin de la bibliothèque tente d'utiliser la valeur de application.library.directory

application.library.directory string

Alias de application.library. Introduit en Yaf 2.1.6.

application.library.namespace string

Préfixes séparés par une virgule d'espace de noms locaux de la bibliothèque.

Introduit en Yaf 2.1.6

application.bootstrap string

Un chemin absolu du script de la classe Bootstrap.

application.baseUri string

Utilisé pour supprimer un préfixe fixé d'une URI de requête dans le processus de routage. Par exemple, une requête dont l'URI est "/prefix/controller/action". Si vous définissez application.baseUri à "/prefix", alors seul "/controller/action" sera pris comme PATH_INFO dans le processus de routage.

En général, il n'est pas nécessaire de définir cette valeur.

application.dispatcher.throwException bool

Si vaut On, Yaf lancera une exception lorsqu'une erreur surviendra. Voir aussi la méthode Yaf_Dispatcher::throwException().

application.dispatcher.catchException bool

Si vaut On, Yaf transmettra les erreurs aux controlleurs/actions, lorsqu'il rencontrera une exception non attrapable. Voir aussi la méthode Yaf_Dispatcher::catchException().

application.dispatcher.defaultRoute string

La route par défaut, si elle n'est pas spécifié, la route statique sera utilisée. Voir la méthode Yaf_Router::addRoute().

application.dispatcher.defaultModule string

Le nom de module par défaut. Voir aussi la méthode Yaf_Dispatcher::setDefaultModule().

application.dispatcher.defaultController string

Le nom par défaut du controlleur. Voir aussi la méthode Yaf_Dispatcher::setDefaultController().

application.dispatcher.defaultAction string

Le nom par défaut de l'action. Voir aussi la méthode Yaf_Dispatcher::setDefaultAction().

application.system string

Définit une configuration Yaf au moment de l'exécution dans application.ini, comme ceci : application.system.lowcase_path

Note:

seules les options de configuration PHP_INI_ALL peuvent être définies de cette façon.


La classe Yaf_Application

(No version information available, might only be in Git)

Introduction

Yaf_Application fournit une installation de bootstrap pour les applications qui fournissent des ressources ré-utilisables, des modules communs basés sur des classes de bootstrap.

Note:

Yaf_Application implémente un squelette de masque, et Yaf_Application ne peut être sérialisé, ni dé-sérialisé ce qui peut poser des problèmes lorsque vous tentez d'utiliser PHPUnit pour écrire des cas de test pour Yaf.

Vous devriez utiliser les annotations @backupGlobals de PHPUnit pour contrôler la sauvegarde et la restauration des opérations pour les variables globales. Ceci peut régler le problème.

Synopsis de la classe

final Yaf_Application {
/* Propriétés */
protected $config ;
protected $dispatcher ;
protected static $_app ;
protected $_modules ;
protected $_running ;
protected $_environ ;
/* Méthodes */
public static void app ( void )
public void bootstrap ([ Yaf_Bootstrap_Abstract $bootstrap ] )
public Yaf_Application clearLastError ( void )
private void __clone ( void )
public __construct ( mixed $config [, string $envrion ] )
public void __destruct ( void )
public void environ ( void )
public void execute ( callable $entry , string $... )
public Yaf_Application getAppDirectory ( void )
public Yaf_Config_Abstract getConfig ( void )
public Yaf_Dispatcher getDispatcher ( void )
public string getLastErrorMsg ( void )
public int getLastErrorNo ( void )
public array getModules ( void )
public void run ( void )
public Yaf_Application setAppDirectory ( string $directory )
private void __sleep ( void )
private void __wakeup ( void )
}

Propriétés

config

dispatcher

_app

_modules

_running

_environ

Sommaire

  • Yaf_Application::app — Récupère une instance de l'application
  • Yaf_Application::bootstrap — Appelle bootstrap
  • Yaf_Application::clearLastError — Efface les informations de la dernière erreur
  • Yaf_Application::__clone — Yaf_Application ne peut être clôné
  • Yaf_Application::__construct — Constructeur de Yaf_Application
  • Yaf_Application::__destruct — Le but de __destruct
  • Yaf_Application::environ — Récupère la propriété environ
  • Yaf_Application::execute — Exécute une fonction de rappel
  • Yaf_Application::getAppDirectory — Récupère le dossier de l'application
  • Yaf_Application::getConfig — Récupère une instance de configuration
  • Yaf_Application::getDispatcher — Récupère une instance Yaf_Dispatcher
  • Yaf_Application::getLastErrorMsg — Récupère le message de la dernière erreur survenue
  • Yaf_Application::getLastErrorNo — Récupère le code de la dernière erreur survenue
  • Yaf_Application::getModules — Récupère les noms des modules définis
  • Yaf_Application::run — Démarre Yaf_Application
  • Yaf_Application::setAppDirectory — Modifie le dossier de l'application
  • Yaf_Application::__sleep — Yaf_Application ne peut être linéarisé
  • Yaf_Application::__wakeup — Yaf_Application ne peut être dé-linéarisé


Récupère une instance de l'application

  • « Yaf_Application
  • Yaf_Application::bootstrap »
  • PHP Manual
  • Yaf_Application
  • Récupère une instance de l'application

Yaf_Application::app

(Yaf >=1.0.0)

Yaf_Application::app — Récupère une instance de l'application

Description

public static void Yaf_Application::app ( void )

Récupère l'instance Yaf_Application, que vous pouvez aussi récupérer en utilisant la méthode Yaf_Dispatcher::getApplication().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une instance Yaf_Application ; si aucune instante Yaf_Application n'avait été initialisé auparavant, NULL sera retourné.

Voir aussi

  • Yaf_Dispatcher::getApplication() - Récupère l'application


Appelle bootstrap

  • « Yaf_Application::app
  • Yaf_Application::clearLastError »
  • PHP Manual
  • Yaf_Application
  • Appelle bootstrap

Yaf_Application::bootstrap

(Yaf >=1.0.0)

Yaf_Application::bootstrap — Appelle bootstrap

Description

public void Yaf_Application::bootstrap ([ Yaf_Bootstrap_Abstract $bootstrap ] )

Exécute un Bootstrap, toutes les méthodes définies dans le Bootstrap et nommées avec un préfixe "_init" seront appelées dans l'ordre de leurs déclarations si le paramètre bootstrap n'est pas fourni, Yaf recherchera un Bootstrap dans le dossier de l'application.

Liste de paramètres

bootstrap

Une instance Yaf_Bootstrap_Abstract.

Valeurs de retour

Une instance de la classe Yaf_Application.

Exemples

Exemple #1 Exemple avec A Bootstrap()

<?php
/**
 * Ce fichier doit être dans le APPLICATION_PATH . "/application/"(qui a été défini dans la configuration passée à Yaf_Application).
 * et être nommé Bootstrap.php, aussi, Yaf_Application peut le trouver
 */
class Bootstrap extends Yaf_Bootstrap_Abstract {
    function _initConfig(Yaf_Dispatcher $dispatcher) {
        echo "1er appel\n";
    }

    function _initPlugin($dispatcher) {
        echo "2ème appel\n";
    }
}
?>

Exemple #2 Exemple avec Yaf_Application::bootstrap()

<?php

defined('APPLICATION_PATH')                  // APPLICATION_PATH sera utilisé dans le fichier de configuration ini
    || define('APPLICATION_PATH', __DIR__)); //__DIR__ a été introduit après PHP 5.3

$application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
$application->bootstrap();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1st called
2nd called

Voir aussi

  • Yaf_Bootstrap_Abstract


Efface les informations de la dernière erreur

  • « Yaf_Application::bootstrap
  • Yaf_Application::__clone »
  • PHP Manual
  • Yaf_Application
  • Efface les informations de la dernière erreur

Yaf_Application::clearLastError

(Yaf >=2.1.2)

Yaf_Application::clearLastError — Efface les informations de la dernière erreur

Description

public Yaf_Application Yaf_Application::clearLastError ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Application::clearLastError()

<?php
function error_handler($errno, $errstr, $errfile, $errline) {
   Yaf_Application::app()->clearLastError();
   var_dump(Yaf_Application::app()->getLastErrorNo());
}

$config = array(
 "application" => array(
   "directory" => "/tmp/notexists",
     "dispatcher" => array(
       "throwException" => 0, //lance une erreur au lieu de lancer une exception lorsqu'une erreur survient
      ),
  ),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)


Yaf_Application ne peut être clôné

  • « Yaf_Application::clearLastError
  • Yaf_Application::__construct »
  • PHP Manual
  • Yaf_Application
  • Yaf_Application ne peut être clôné

Yaf_Application::__clone

(Yaf >=1.0.0)

Yaf_Application::__clone — Yaf_Application ne peut être clôné

Description

private void Yaf_Application::__clone ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Constructeur de Yaf_Application

  • « Yaf_Application::__clone
  • Yaf_Application::__destruct »
  • PHP Manual
  • Yaf_Application
  • Constructeur de Yaf_Application

Yaf_Application::__construct

(Yaf >=1.0.0)

Yaf_Application::__construct — Constructeur de Yaf_Application

Description

public Yaf_Application::__construct ( mixed $config [, string $envrion ] )

Instancie un objet Yaf_Application.

Liste de paramètres

config

Un chemin vers le fichier de configuration ini, ou un tableau de configuration.

Si un fichier de configuration est fourni, il doit contenir une section nommée telle que spécifiée par le paramètre yaf.environ, qui est "product" par défaut.

Note:

Si vous utilisez un fichier de configuration au format ini pour la configuration de votre application, vous devriez utiliser la méthode yaf.cache_config à la place pour améliorer les performances.

Et l'entrée de configuration (et sa valeur par défaut) listée ci-dessous :

Exemple #1 Un exemple de fichier de configuration au format ini

[product]
;Doit toujours être défini ; aucune valeur par défaut
application.directory=APPLICATION_PATH

;Les configurations suivantes ont une valeur par défaut, vous n'avez pas besoin de les définir
application.library = APPLICATION_PATH . "/library"
application.dispatcher.throwException=1
application.dispatcher.catchException=1

application.baseUri=""

;Le nom du script PHP
ap.ext=php

;Le nom du template de visualisation
ap.view.ext=phtml

ap.dispatcher.defaultModuel=Index
ap.dispatcher.defaultController=Index
ap.dispatcher.defaultAction=index

;Les modules définis
ap.modules=Index

envrion

La section à charger comme configuration finale.

Valeurs de retour

Exemples

Exemple #2 Exemple avec Yaf_Application::__construct()

<?php
defined('APPLICATION_PATH')                  // APPLICATION_PATH sera utilisé dans le fichier de configuration ini
    || define('APPLICATION_PATH', __DIR__)); //__DIR__ a été introduit après PHP 5.3

$application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
$application->bootstrap()->run();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Exemple #3 Exemple avec Yaf_Application::__construct()

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** YAf_Application */
$application = new Yaf_Application($config);
$application->bootstrap()->run();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  • Yaf_Config_Ini
    •


Le but de __destruct

  • « Yaf_Application::__construct
  • Yaf_Application::environ »
  • PHP Manual
  • Yaf_Application
  • Le but de __destruct

Yaf_Application::__destruct

(Yaf >=1.0.0)

Yaf_Application::__destruct — Le but de __destruct

Description

public void Yaf_Application::__destruct ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère la propriété environ

  • « Yaf_Application::__destruct
  • Yaf_Application::execute »
  • PHP Manual
  • Yaf_Application
  • Récupère la propriété environ

Yaf_Application::environ

(Yaf >=1.0.0)

Yaf_Application::environ — Récupère la propriété environ

Description

public void Yaf_Application::environ ( void )

Récupère la propriété yaf.environ qui a été défini dans yaf.environ, qui a comme valeur par défaut "product".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Application::environ()

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->environ());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

product


Exécute une fonction de rappel

  • « Yaf_Application::environ
  • Yaf_Application::getAppDirectory »
  • PHP Manual
  • Yaf_Application
  • Exécute une fonction de rappel

Yaf_Application::execute

(Yaf >=1.0.0)

Yaf_Application::execute — Exécute une fonction de rappel

Description

public void Yaf_Application::execute ( callable $entry , string $... )

Cette méthode est habituellement utilisée pour exécuter Yaf_Application dans un crontab. Le crontab peut aussi utiliser le mécanisme d'autoloader et de Bootstrap.

Liste de paramètres

entry

Une fonction de rappel valide.

...

Paramètres à passer à la fonction de rappel

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Application::execute()

<?php
function main($argc, $argv) {
}

$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
$application->execute("main", $argc,  $argv);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


Récupère le dossier de l'application

  • « Yaf_Application::execute
  • Yaf_Application::getConfig »
  • PHP Manual
  • Yaf_Application
  • Récupère le dossier de l'application

Yaf_Application::getAppDirectory

(Yaf >=2.1.4)

Yaf_Application::getAppDirectory — Récupère le dossier de l'application

Description

public Yaf_Application Yaf_Application::getAppDirectory ( void )

Liste de paramètres

directory

Valeurs de retour


Récupère une instance de configuration

  • « Yaf_Application::getAppDirectory
  • Yaf_Application::getDispatcher »
  • PHP Manual
  • Yaf_Application
  • Récupère une instance de configuration

Yaf_Application::getConfig

(Yaf >=1.0.0)

Yaf_Application::getConfig — Récupère une instance de configuration

Description

public Yaf_Config_Abstract Yaf_Application::getConfig ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une instance de la classe Yaf_Config_Abstract.

Exemples

Exemple #1 Exemple avec Yaf_Application::getConfig()

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->getConfig());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Yaf_Config_Simple Object
(
    [_config:protected] => Array
        (
            [application] => Array
                (
                    [directory] => /home/laruence/local/www/htdocs/application
                )

        )

    [_readonly:protected] => 1
)


Récupère une instance Yaf_Dispatcher

  • « Yaf_Application::getConfig
  • Yaf_Application::getLastErrorMsg »
  • PHP Manual
  • Yaf_Application
  • Récupère une instance Yaf_Dispatcher

Yaf_Application::getDispatcher

(Yaf >=1.0.0)

Yaf_Application::getDispatcher — Récupère une instance Yaf_Dispatcher

Description

public Yaf_Dispatcher Yaf_Application::getDispatcher ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Application::getDispatcher()

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->getDispatcher());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Yaf_Dispatcher Object
(
    [_router:protected] => Yaf_Router Object
        (
            [_routes:protected] => Array
                (
                    [_default] => Yaf_Route_Static Object
                        (
                        )

                )

            [_current:protected] =>
        )

    [_view:protected] =>
    [_request:protected] => Yaf_Request_Http Object
        (
            [module] =>
            [controller] =>
            [action] =>
            [method] => Cli
            [params:protected] => Array
                (
                )

            [language:protected] =>
            [_exception:protected] =>
            [_base_uri:protected] =>
            [uri:protected] =>
            [dispatched:protected] =>
            [routed:protected] =>
        )

    [_plugins:protected] => Array
        (
        )

    [_auto_render:protected] => 1
    [_return_response:protected] =>
    [_instantly_flush:protected] =>
    [_default_module:protected] => Index
    [_default_controller:protected] => Index
    [_default_action:protected] => index
    [_response] => Yaf_Response_Cli Object
        (
            [_header:protected] => Array
                (
                )

            [_body:protected] =>
            [_sendheader:protected] =>
        )

)


Récupère le message de la dernière erreur survenue

  • « Yaf_Application::getDispatcher
  • Yaf_Application::getLastErrorNo »
  • PHP Manual
  • Yaf_Application
  • Récupère le message de la dernière erreur survenue

Yaf_Application::getLastErrorMsg

(Yaf >=2.1.2)

Yaf_Application::getLastErrorMsg — Récupère le message de la dernière erreur survenue

Description

public string Yaf_Application::getLastErrorMsg ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Application::getLastErrorMsg()

<?php
function error_handler($errno, $errstr, $errfile, $errline) {
   var_dump(Yaf_Application::app()->getLastErrorMsg());
}

$config = array(
 "application" => array(
   "directory" => "/tmp/notexists",
     "dispatcher" => array(
       "throwException" => 0, //lance une erreur au lieu de lancer une exception lorsqu'une erreur survient
      ),
  ),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(69) "Could not find controller script /tmp/notexists/controllers/Index.php"


Récupère le code de la dernière erreur survenue

  • « Yaf_Application::getLastErrorMsg
  • Yaf_Application::getModules »
  • PHP Manual
  • Yaf_Application
  • Récupère le code de la dernière erreur survenue

Yaf_Application::getLastErrorNo

(Yaf >=2.1.2)

Yaf_Application::getLastErrorNo — Récupère le code de la dernière erreur survenue

Description

public int Yaf_Application::getLastErrorNo ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Application::getLastErrorNo()

<?php
function error_handler($errno, $errstr, $errfile, $errline) {
   var_dump(Yaf_Application::app()->getLastErrorNo());
   var_dump(Yaf_Application::app()->getLastErrorNo() == YAF_ERR_NOTFOUND_CONTROLLER);
}

$config = array(
  "application" => array(
   "directory" => "/tmp/notexists",
     "dispatcher" => array(
       "throwException" => 0, //lancement d'une erreur au lieu de lancer une exception lorsqu'une erreur survient
      ),
  ),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(516)
bool(true)


Récupère les noms des modules définis

  • « Yaf_Application::getLastErrorNo
  • Yaf_Application::run »
  • PHP Manual
  • Yaf_Application
  • Récupère les noms des modules définis

Yaf_Application::getModules

(Yaf >=1.0.0)

Yaf_Application::getModules — Récupère les noms des modules définis

Description

public array Yaf_Application::getModules ( void )

Récupère la liste des modules définis dans la configuration ; si aucun n'est défini, il y aura toujours un module nommé "Index".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Application::getModules()

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->getModules());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Index
)


Démarre Yaf_Application

  • « Yaf_Application::getModules
  • Yaf_Application::setAppDirectory »
  • PHP Manual
  • Yaf_Application
  • Démarre Yaf_Application

Yaf_Application::run

(Yaf >=1.0.0)

Yaf_Application::run — Démarre Yaf_Application

Description

public void Yaf_Application::run ( void )

Exécute une Yaf_Application, permet à Yaf_Application d'accepter une requête, et route la requête, gère le contrôleur et l'action, et affiche la réponse. Retourne la réponse au client.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Modifie le dossier de l'application

  • « Yaf_Application::run
  • Yaf_Application::__sleep »
  • PHP Manual
  • Yaf_Application
  • Modifie le dossier de l'application

Yaf_Application::setAppDirectory

(Yaf >=2.1.4)

Yaf_Application::setAppDirectory — Modifie le dossier de l'application

Description

public Yaf_Application Yaf_Application::setAppDirectory ( string $directory )

Liste de paramètres

directory

Valeurs de retour


Yaf_Application ne peut être linéarisé

  • « Yaf_Application::setAppDirectory
  • Yaf_Application::__wakeup »
  • PHP Manual
  • Yaf_Application
  • Yaf_Application ne peut être linéarisé

Yaf_Application::__sleep

(Yaf >=1.0.0)

Yaf_Application::__sleep — Yaf_Application ne peut être linéarisé

Description

private void Yaf_Application::__sleep ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Yaf_Application ne peut être dé-linéarisé

  • « Yaf_Application::__sleep
  • Yaf_Bootstrap_Abstract »
  • PHP Manual
  • Yaf_Application
  • Yaf_Application ne peut être dé-linéarisé

Yaf_Application::__wakeup

(Yaf >=1.0.0)

Yaf_Application::__wakeup — Yaf_Application ne peut être dé-linéarisé

Description

private void Yaf_Application::__wakeup ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe Yaf_Bootstrap_Abstract

(No version information available, might only be in Git)

Introduction

Bootstrap est un mécanisme utilisé pour réaliser des configurations initiales avant l'exécution d'une application.

Les utilisateurs peuvent définir leur propre classe de Bootstrap héritant de la classe Yaf_Bootstrap_Abstract

Toutes les méthodes déclarées dans la classe Bootstrap commençant par "_init", seront appelées par la méthode Yaf_Application::bootstrap() une par une, et en suivant leur ordre de définition.

Exemples

Exemple #1 Bootstrap example

<?php
   /* La classe bootstrap doit être définie ici : ./application/Bootstrap.php */
   class Bootstrap extends Yaf_Bootstrap_Abstract {
        public function _initConfig(Yaf_Dispatcher $dispatcher) {
            var_dump(__METHOD__);
        }
        public function _initPlugin(Yaf_Dispatcher $dispatcher) {
            var_dump(__METHOD__);
        }
   }

   $config = array(
       "application" => array(
           "directory" => dirname(__FILE__) . "/application/",
       ),
   );

   $app = new Yaf_Application($config);
   $app->bootstrap();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(22) "Bootstrap::_initConfig"
string(22) "Bootstrap::_initPlugin"

Synopsis de la classe

abstract Yaf_Bootstrap_Abstract {
/* Propriétés */
/* Méthodes */
}


La classe Yaf_Dispatcher

(Yaf >=1.0.0)

Introduction

Le but de Yaf_Dispatcher est d'initialiser l'environnement de la requête, router la requête entrante, et distribuer les actions découvertes ; il aggrège toutes les réponses et les retourne une fois le processus terminé.

Yaf_Dispatcher implémente également le masque du squelette, ce qui signifie qu'une seule instace de cette classe ne peut être disponible à la fois. Ceci lui permet aussi d'agir comme un registre dans lequel les autres objets du processus de distribution peuvent s'inscrire.

Synopsis de la classe

final Yaf_Dispatcher {
/* Propriétés */
protected $_router ;
protected $_view ;
protected $_request ;
protected $_plugins ;
protected static $_instance ;
protected $_auto_render ;
protected $_return_response ;
protected $_instantly_flush ;
protected $_default_module ;
protected $_default_controller ;
protected $_default_action ;
/* Méthodes */
public Yaf_Dispatcher autoRender ([ bool $flag ] )
public Yaf_Dispatcher catchException ([ bool $flag ] )
private void __clone ( void )
public __construct ( void )
public bool disableView ( void )
public Yaf_Response_Abstract dispatch ( Yaf_Request_Abstract $request )
public Yaf_Dispatcher enableView ( void )
public Yaf_Dispatcher flushInstantly ([ bool $flag ] )
public Yaf_Application getApplication ( void )
public static Yaf_Dispatcher getInstance ( void )
public Yaf_Request_Abstract getRequest ( void )
public Yaf_Router getRouter ( void )
public Yaf_View_Interface initView ( string $templates_dir [, array $options ] )
public Yaf_Dispatcher registerPlugin ( Yaf_Plugin_Abstract $plugin )
public Yaf_Dispatcher returnResponse ( bool $flag )
public Yaf_Dispatcher setDefaultAction ( string $action )
public Yaf_Dispatcher setDefaultController ( string $controller )
public Yaf_Dispatcher setDefaultModule ( string $module )
public Yaf_Dispatcher setErrorHandler ( call $callback , int $error_types )
public Yaf_Dispatcher setRequest ( Yaf_Request_Abstract $request )
public Yaf_Dispatcher setView ( Yaf_View_Interface $view )
private void __sleep ( void )
public Yaf_Dispatcher throwException ([ bool $flag ] )
private void __wakeup ( void )
}

Propriétés

_router

_view

_request

_plugins

_instance

_auto_render

_return_response

_instantly_flush

_default_module

_default_controller

_default_action

Sommaire

  • Yaf_Dispatcher::autoRender — Active/désactive le rendu automatique
  • Yaf_Dispatcher::catchException — Active/désactive la récupération des exceptions
  • Yaf_Dispatcher::__clone — Yaf_Dispatcher ne peut être clôner
  • Yaf_Dispatcher::__construct — Constructeur de Yaf_Dispatcher
  • Yaf_Dispatcher::disableView — Désactive le moteur de visualisation
  • Yaf_Dispatcher::dispatch — Envoi une demande
  • Yaf_Dispatcher::enableView — Active le rendu de la vue
  • Yaf_Dispatcher::flushInstantly — Active/désactive l'envoi instantané
  • Yaf_Dispatcher::getApplication — Récupère l'application
  • Yaf_Dispatcher::getInstance — Récupère l'instance du module d'envoi
  • Yaf_Dispatcher::getRequest — Récupère l'instance demandée
  • Yaf_Dispatcher::getRouter — Récupère l'instance routeur
  • Yaf_Dispatcher::initView — Initialise la vue et la retourne
  • Yaf_Dispatcher::registerPlugin — Enregistre un plugin
  • Yaf_Dispatcher::returnResponse — Le but de returnResponse
  • Yaf_Dispatcher::setDefaultAction — Modifie le nom par défaut de l'action
  • Yaf_Dispatcher::setDefaultController — Modifie le nom par défaut du controlleur
  • Yaf_Dispatcher::setDefaultModule — Modifie le nom par défaut du module
  • Yaf_Dispatcher::setErrorHandler — Définit un gestionnaire d'erreur personnalisé
  • Yaf_Dispatcher::setRequest — Le but de setRequest
  • Yaf_Dispatcher::setView — Définit un moteur de visualisation personnalisé
  • Yaf_Dispatcher::__sleep — Yaf_Dispatcher ne peut être linéarisé
  • Yaf_Dispatcher::throwException — Active/désactive le lancement d'exceptions
  • Yaf_Dispatcher::__wakeup — Yaf_Dispatcher ne peut être linéarisé


Active/désactive le rendu automatique

  • « Yaf_Dispatcher
  • Yaf_Dispatcher::catchException »
  • PHP Manual
  • Yaf_Dispatcher
  • Active/désactive le rendu automatique

Yaf_Dispatcher::autoRender

(Yaf >=1.0.0)

Yaf_Dispatcher::autoRender — Active/désactive le rendu automatique

Description

public Yaf_Dispatcher Yaf_Dispatcher::autoRender ([ bool $flag ] )

Yaf_Dispatcher affiche automatiquement le contenu après la répartition d'une requête entrante ; vous pouvez désactiver cet affichage en appelant cette méthode avec le paramètre flag à TRUE.

Note:

vous pouvez tout simplement retourner FALSE dans une action pour éviter l'auto-affichage de cette action.

Liste de paramètres

flag

booléen

Note:

Depuis la version 2.2.0, si ce paramètre n'est pas fourni, alors le statut courant sera retourné.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Dispatcher::autoRender()

<?php
class IndexController extends Yaf_Controller_Abstract {
     /* la méthode d'initialisation sera appelée aussitôt que le contrôleur est initialisé */
     public function init() {
         if ($this->getRequest()->isXmlHttpRequest()) {
             // ne pas afficher après une requête AJAX
             // nous afficherons une chaîne json
             Yaf_Dispatcher::getInstance()->autoRender(FALSE);
         }
     }

}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


Active/désactive la récupération des exceptions

  • « Yaf_Dispatcher::autoRender
  • Yaf_Dispatcher::__clone »
  • PHP Manual
  • Yaf_Dispatcher
  • Active/désactive la récupération des exceptions

Yaf_Dispatcher::catchException

(Yaf >=1.0.0)

Yaf_Dispatcher::catchException — Active/désactive la récupération des exceptions

Description

public Yaf_Dispatcher Yaf_Dispatcher::catchException ([ bool $flag ] )

Lorsque application.dispatcher.throwException est actif (vous pouvez aussi appeler la méthode Yaf_Dispatcher::throwException(TRUE)() pourl'activer), Yaf émettra une exception lorsqu'une erreur survient au lieu d'émettre une erreur.

Si vous activez Yaf_Dispatcher::catchException() (peut aussi être activé via application.dispatcher.catchException), toutes les exceptions non-capturées le seront par la méthode ErrorController::error si vous en avez définie une.

Liste de paramètres

flag

Un booléen.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Dispatcher::catchException()

/* if you defined a ErrorController like following */
<?php
class ErrorController extends Yaf_Controller_Abstract {
     /**
      * vous pouvez aussi appeler Yaf_Request_Abstract::getException pour récupérer
      * les exceptions non-capturées.
      */
     public function errorAction($exception) {
        /* Une erreur survient ! */
        switch ($exception->getCode()) {
            case YAF_ERR_NOTFOUND_MODULE:
            case YAF_ERR_NOTFOUND_CONTROLLER:
            case YAF_ERR_NOTFOUND_ACTION:
            case YAF_ERR_NOTFOUND_VIEW:
                echo 404, ":", $exception->getMessage();
                break;
            default :
                $message = $exception->getMessage();
                echo 0, ":", $exception->getMessage();
                break;
        }
     }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/* Maintenant, si une erreur survient, en supposant un accès à un controlleur existant pas (ou vous pouvez lancer une exception vous-même) : */
404:Could not find controller script **/application/controllers/No-exists-controller.php

Voir aussi

  • Yaf_Dispatcher::throwException() - Active/désactive le lancement d'exceptions
  • Yaf_Dispatcher::setErrorHandler() - Définit un gestionnaire d'erreur personnalisé


Yaf_Dispatcher ne peut être clôner

  • « Yaf_Dispatcher::catchException
  • Yaf_Dispatcher::__construct »
  • PHP Manual
  • Yaf_Dispatcher
  • Yaf_Dispatcher ne peut être clôner

Yaf_Dispatcher::__clone

(Yaf >=1.0.0)

Yaf_Dispatcher::__clone — Yaf_Dispatcher ne peut être clôner

Description

private void Yaf_Dispatcher::__clone ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Constructeur de Yaf_Dispatcher

  • « Yaf_Dispatcher::__clone
  • Yaf_Dispatcher::disableView »
  • PHP Manual
  • Yaf_Dispatcher
  • Constructeur de Yaf_Dispatcher

Yaf_Dispatcher::__construct

(Yaf >=1.0.0)

Yaf_Dispatcher::__construct — Constructeur de Yaf_Dispatcher

Description

public Yaf_Dispatcher::__construct ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Désactive le moteur de visualisation

  • « Yaf_Dispatcher::__construct
  • Yaf_Dispatcher::dispatch »
  • PHP Manual
  • Yaf_Dispatcher
  • Désactive le moteur de visualisation

Yaf_Dispatcher::disableView

(Yaf >=1.0.0)

Yaf_Dispatcher::disableView — Désactive le moteur de visualisation

Description

public bool Yaf_Dispatcher::disableView ( void )

Désactive le moteur de visualisation, utilisé par les applications pour lesquelles l'utilisation s'occupe lui même de l'affichage.

Note:

Vous pouvez simplement retourner FALSE dans une action pour éviter que l'affichage de l'action ne se produise.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Envoi une demande

  • « Yaf_Dispatcher::disableView
  • Yaf_Dispatcher::enableView »
  • PHP Manual
  • Yaf_Dispatcher
  • Envoi une demande

Yaf_Dispatcher::dispatch

(Yaf >=1.0.0)

Yaf_Dispatcher::dispatch — Envoi une demande

Description

public Yaf_Response_Abstract Yaf_Dispatcher::dispatch ( Yaf_Request_Abstract $request )

Cette méthode réalise les lourds travaux de la classe Yaf_Dispatcher. Elle prend un objet en paramètre.

Le processus de répartition comporte 3 événements distincts :

  • Routing
  • Dispatching
  • Response
Le premier ne prend place qu'une seule fois, utilisant les valeurs de l'objet de requête lorsque dispatch() est appelé. Le second prend place dans une boucle ; une requête peut soit indiquer plusieurs actions à répartir, soit le controlleur ou un plugin peut réinitialiser l'objet de requête pour forcer des actions supplémentaires au répartiteur (voir Yaf_Plugin_Abstract). Lorsque tout ceci est fait, la classe Yaf_Dispatcher retourne une réponse.

Liste de paramètres

request

Valeurs de retour


Active le rendu de la vue

  • « Yaf_Dispatcher::dispatch
  • Yaf_Dispatcher::flushInstantly »
  • PHP Manual
  • Yaf_Dispatcher
  • Active le rendu de la vue

Yaf_Dispatcher::enableView

(Yaf >=1.0.0)

Yaf_Dispatcher::enableView — Active le rendu de la vue

Description

public Yaf_Dispatcher Yaf_Dispatcher::enableView ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Active/désactive l'envoi instantané

  • « Yaf_Dispatcher::enableView
  • Yaf_Dispatcher::getApplication »
  • PHP Manual
  • Yaf_Dispatcher
  • Active/désactive l'envoi instantané

Yaf_Dispatcher::flushInstantly

(Yaf >=1.0.0)

Yaf_Dispatcher::flushInstantly — Active/désactive l'envoi instantané

Description

public Yaf_Dispatcher Yaf_Dispatcher::flushInstantly ([ bool $flag ] )

Liste de paramètres

flag

Booléen

Note:

Depuis la version 2.2.0, si ce paramètre n'est pas fourni, alors le statut courant sera retourné.

Valeurs de retour


Récupère l'application

  • « Yaf_Dispatcher::flushInstantly
  • Yaf_Dispatcher::getInstance »
  • PHP Manual
  • Yaf_Dispatcher
  • Récupère l'application

Yaf_Dispatcher::getApplication

(Yaf >=1.0.0)

Yaf_Dispatcher::getApplication — Récupère l'application

Description

public Yaf_Application Yaf_Dispatcher::getApplication ( void )

Récupère l'instance Yaf_Application. Identique à la méthode Yaf_Application::app().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • Yaf_Application::app() - Récupère une instance de l'application


Récupère l'instance du module d'envoi

  • « Yaf_Dispatcher::getApplication
  • Yaf_Dispatcher::getRequest »
  • PHP Manual
  • Yaf_Dispatcher
  • Récupère l'instance du module d'envoi

Yaf_Dispatcher::getInstance

(Yaf >=1.0.0)

Yaf_Dispatcher::getInstance — Récupère l'instance du module d'envoi

Description

public static Yaf_Dispatcher Yaf_Dispatcher::getInstance ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère l'instance demandée

  • « Yaf_Dispatcher::getInstance
  • Yaf_Dispatcher::getRouter »
  • PHP Manual
  • Yaf_Dispatcher
  • Récupère l'instance demandée

Yaf_Dispatcher::getRequest

(Yaf >=1.0.0)

Yaf_Dispatcher::getRequest — Récupère l'instance demandée

Description

public Yaf_Request_Abstract Yaf_Dispatcher::getRequest ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère l'instance routeur

  • « Yaf_Dispatcher::getRequest
  • Yaf_Dispatcher::initView »
  • PHP Manual
  • Yaf_Dispatcher
  • Récupère l'instance routeur

Yaf_Dispatcher::getRouter

(Yaf >=1.0.0)

Yaf_Dispatcher::getRouter — Récupère l'instance routeur

Description

public Yaf_Router Yaf_Dispatcher::getRouter ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Initialise la vue et la retourne

  • « Yaf_Dispatcher::getRouter
  • Yaf_Dispatcher::registerPlugin »
  • PHP Manual
  • Yaf_Dispatcher
  • Initialise la vue et la retourne

Yaf_Dispatcher::initView

(Yaf >=1.0.0)

Yaf_Dispatcher::initView — Initialise la vue et la retourne

Description

public Yaf_View_Interface Yaf_Dispatcher::initView ( string $templates_dir [, array $options ] )

Liste de paramètres

templates_dir

options

Valeurs de retour


Enregistre un plugin

  • « Yaf_Dispatcher::initView
  • Yaf_Dispatcher::returnResponse »
  • PHP Manual
  • Yaf_Dispatcher
  • Enregistre un plugin

Yaf_Dispatcher::registerPlugin

(Yaf >=1.0.0)

Yaf_Dispatcher::registerPlugin — Enregistre un plugin

Description

public Yaf_Dispatcher Yaf_Dispatcher::registerPlugin ( Yaf_Plugin_Abstract $plugin )

Enregistre une plugin (voir Yaf_Plugin_Abstract). Générallement, l'enregistrement d'un plugin se situe dans le bootstrap (voir Yaf_Bootstrap_Abstract).

Liste de paramètres

plugin

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Dispatcher::registerPlugin()

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract {
  public function _initPlugin(Yaf_Dispatcher $dispatcher) {
    /**
    * Yaf suppose que les scripts de plugin se trouvent dans [application.directory] .  "/plugins"
    * dans ce cas, il serait :
    * [application.directory] . "/plugins/" . "User" . [application.ext]
    */
    $user = new UserPlugin();
    $dispatcher->registerPlugin($user);
  }
}
?>

Voir aussi

  • Yaf_Plugin_Abstract
  • Yaf_Bootstrap_Abstract


Le but de returnResponse

  • « Yaf_Dispatcher::registerPlugin
  • Yaf_Dispatcher::setDefaultAction »
  • PHP Manual
  • Yaf_Dispatcher
  • Le but de returnResponse

Yaf_Dispatcher::returnResponse

(Yaf >=1.0.0)

Yaf_Dispatcher::returnResponse — Le but de returnResponse

Description

public Yaf_Dispatcher Yaf_Dispatcher::returnResponse ( bool $flag )

Liste de paramètres

flag

Valeurs de retour


Modifie le nom par défaut de l'action

  • « Yaf_Dispatcher::returnResponse
  • Yaf_Dispatcher::setDefaultController »
  • PHP Manual
  • Yaf_Dispatcher
  • Modifie le nom par défaut de l'action

Yaf_Dispatcher::setDefaultAction

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultAction — Modifie le nom par défaut de l'action

Description

public Yaf_Dispatcher Yaf_Dispatcher::setDefaultAction ( string $action )

Liste de paramètres

action

Valeurs de retour


Modifie le nom par défaut du controlleur

  • « Yaf_Dispatcher::setDefaultAction
  • Yaf_Dispatcher::setDefaultModule »
  • PHP Manual
  • Yaf_Dispatcher
  • Modifie le nom par défaut du controlleur

Yaf_Dispatcher::setDefaultController

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultController — Modifie le nom par défaut du controlleur

Description

public Yaf_Dispatcher Yaf_Dispatcher::setDefaultController ( string $controller )

Liste de paramètres

controller

Valeurs de retour


Modifie le nom par défaut du module

  • « Yaf_Dispatcher::setDefaultController
  • Yaf_Dispatcher::setErrorHandler »
  • PHP Manual
  • Yaf_Dispatcher
  • Modifie le nom par défaut du module

Yaf_Dispatcher::setDefaultModule

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultModule — Modifie le nom par défaut du module

Description

public Yaf_Dispatcher Yaf_Dispatcher::setDefaultModule ( string $module )

Liste de paramètres

module

Valeurs de retour


Définit un gestionnaire d'erreur personnalisé

  • « Yaf_Dispatcher::setDefaultModule
  • Yaf_Dispatcher::setRequest »
  • PHP Manual
  • Yaf_Dispatcher
  • Définit un gestionnaire d'erreur personnalisé

Yaf_Dispatcher::setErrorHandler

(Yaf >=1.0.0)

Yaf_Dispatcher::setErrorHandler — Définit un gestionnaire d'erreur personnalisé

Description

public Yaf_Dispatcher Yaf_Dispatcher::setErrorHandler ( call $callback , int $error_types )

Définit un gestionnaire d'erreur personnalisé pour Yaf. Lorsque application.dispatcher.throwException est désactivé, Yaf va lancer une erreur attrapable lorsqu'une erreur inattendue survient.

Aussi, ce gestionnaire d'erreur sera appelé lorsqu'une erreur survient.

Liste de paramètres

callback

Une fonction de rappel.

error_types

Valeurs de retour

Voir aussi

  • Yaf_Dispatcher::throwException() - Active/désactive le lancement d'exceptions
  • Yaf_Application::getLastErrorNo() - Récupère le code de la dernière erreur survenue
  • Yaf_Application::getLastErrorMsg() - Récupère le message de la dernière erreur survenue


Le but de setRequest

  • « Yaf_Dispatcher::setErrorHandler
  • Yaf_Dispatcher::setView »
  • PHP Manual
  • Yaf_Dispatcher
  • Le but de setRequest

Yaf_Dispatcher::setRequest

(Yaf >=1.0.0)

Yaf_Dispatcher::setRequest — Le but de setRequest

Description

public Yaf_Dispatcher Yaf_Dispatcher::setRequest ( Yaf_Request_Abstract $request )

Liste de paramètres

plugin

Valeurs de retour


Définit un moteur de visualisation personnalisé

  • « Yaf_Dispatcher::setRequest
  • Yaf_Dispatcher::__sleep »
  • PHP Manual
  • Yaf_Dispatcher
  • Définit un moteur de visualisation personnalisé

Yaf_Dispatcher::setView

(Yaf >=1.0.0)

Yaf_Dispatcher::setView — Définit un moteur de visualisation personnalisé

Description

public Yaf_Dispatcher Yaf_Dispatcher::setView ( Yaf_View_Interface $view )

Cette méthode fournit une solution si vous souhaitez utiliser un moteur de visualisation personnalisé au lieu de celui proposé par Yaf_View_Simple

Liste de paramètres

view

Une instance de la classe Yaf_View_Interface.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Dispatcher::setView()

<?php
require "/path/to/smarty/Smarty.class.php";

class Smarty_Adapter implements Yaf_View_Interface
{
    /**
     * Objet Smarty
     * @var Smarty
     */
    public $_smarty;

    /**
     * Constructeur
     *
     * @param string $tmplPath
     * @param array $extraParams
     * @return void
     */
    public function __construct($tmplPath = null, $extraParams = array()) {
        $this->_smarty = new Smarty;

        if (null !== $tmplPath) {
            $this->setScriptPath($tmplPath);
        }

        foreach ($extraParams as $key => $value) {
            $this->_smarty->$key = $value;
        }
    }

    /**
     * Définit le chemin vers les templates
     *
     * @param string $path Le dossier à définir comme chemin.
     * @return void
     */
    public function setScriptPath($path)
    {
        if (is_readable($path)) {
            $this->_smarty->template_dir = $path;
            return;
        }

        throw new Exception('Chemin invalide fourni');
    }

    /**
     * Assigne une variable à une template
     *
     * @param string $key Le nom de la variable.
     * @param mixed $val La valeur de la variable.
     * @return void
     */
    public function __set($key, $val)
    {
        $this->_smarty->assign($key, $val);
    }

    /**
     * Autorise l'utilisation de empty() et isset()
     *
     * @param string $key
     * @return boolean
     */
    public function __isset($key)
    {
        return (null !== $this->_smarty->get_template_vars($key));
    }

    /**
     * Autorise unset() sur des proporiétés d'objet
     *
     * @param string $key
     * @return void
     */
    public function __unset($key)
    {
        $this->_smarty->clear_assign($key);
    }

    /**
     * Assigne les variables au template
     *
     * Autorise la définition d'une clé spécifique à une valeur spécifique,
     * OU le passage d'un tableau de clé=> valeur pour une définition en masse.
     *
     * @see __set()
     * @param string|array $spec La stratégie d'assignement à utiliser (clé our
     * tableau de clé=>valeur)
     * @param mixed $value (Optionnel) Si on assigne une variable nommée, utilise ce paramètre comme valeur.
     * @return void
     */
    public function assign($spec, $value = null) {
        if (is_array($spec)) {
            $this->_smarty->assign($spec);
            return;
        }

        $this->_smarty->assign($spec, $value);
    }

    /**
     * Efface toutes les variables assignées
     *
     * Efface toutes les variables assignées à Yaf_View via
     * {@link assign()} ou en surchargeant la propriété
     * ({@link __get()}/{@link __set()}).
     *
     * @return void
     */
    public function clearVars() {
        $this->_smarty->clear_all_assign();
    }

    /**
     * Exécute un template et retourne le résultat.
     *
     * @param string $name The template to process.
     * @return string The output.
     */
    public function render($name, $value = NULL) {
        return $this->_smarty->fetch($name);
    }

    public function display($name, $value = NULL) {
        echo $this->_smarty->fetch($name);
    }

}
?>

Exemple #2 Exemple avec Yaf_Dispatcher::setView()

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract {

    /**
     * il y a quelques options de configuration pour smarty dans
     * la configuration :
     *
     * smarty.left_delimiter   = "{{"
     * smarty.right_delimiter  = "}}"
     * smarty.template_dir     = APPLICATION_PATH "/views/scripts/"
     * smarty.compile_dir      = APPLICATION_PATH "/views/templates_c/"
     * smarty.cache_dir        = APPLICATION_PATH "/views/templates_d/"
     *
     */
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initLocalName() {
        /** nous plaçons la classe Smarty_Adapter dans le dossier local de bibliothèques */
        Yaf_Loader::getInstance()->registerLocalNamespace('Smarty');
    }

    public function _initSmarty(Yaf_Dispatcher $dispatcher) {
        $smarty = new Smarty_Adapter(null, Yaf_Registry::get("config")->get("smarty"));
        $dispatcher->setView($smarty);
        /* maintenant, le moteur de rendu Smarty devient le moteur de visualisation
           par défaut de Yaf */
    }
}
?>

Voir aussi

  • Yaf_View_Interface
  • Yaf_View_Simple


Yaf_Dispatcher ne peut être linéarisé

  • « Yaf_Dispatcher::setView
  • Yaf_Dispatcher::throwException »
  • PHP Manual
  • Yaf_Dispatcher
  • Yaf_Dispatcher ne peut être linéarisé

Yaf_Dispatcher::__sleep

(Yaf >=1.0.0)

Yaf_Dispatcher::__sleep — Yaf_Dispatcher ne peut être linéarisé

Description

private void Yaf_Dispatcher::__sleep ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Active/désactive le lancement d'exceptions

  • « Yaf_Dispatcher::__sleep
  • Yaf_Dispatcher::__wakeup »
  • PHP Manual
  • Yaf_Dispatcher
  • Active/désactive le lancement d'exceptions

Yaf_Dispatcher::throwException

(Yaf >=1.0.0)

Yaf_Dispatcher::throwException — Active/désactive le lancement d'exceptions

Description

public Yaf_Dispatcher Yaf_Dispatcher::throwException ([ bool $flag ] )

Active/désactive le lancement d'exception lorsqu'une erreur inattendue survient. Lorsqu'activé, Yaf lancera une exception au lieu de déclencher des erreurs attrapables.

Vous pouvez également utiliser application.dispatcher.throwException pour arriver au même résultat.

Liste de paramètres

flag

Un booléen.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Dispatcher::throwexception()

<?php

$config = array(
    'application' => array(
        'directory' => dirname(__FILE__),
    ),
);
$app = new Yaf_Application($config);

$app->getDispatcher()->throwException(true);

try {
    $app->run();
} catch (Yaf_Exception $e) {
    var_dump($e->getMessage());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(59) "Could not find controller script /tmp/controllers/Index.php"

Exemple #2 Exemple avec Yaf_Dispatcher::throwexception()

<?php

$config = array(
    'application' => array(
        'directory' => dirname(__FILE__),
    ),
);
$app = new Yaf_Application($config);

$app->getDispatcher()->throwException(false);

$app->run();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Catchable fatal error:  Yaf_Application::run(): Could not find controller script /tmp/controllers/Index.php in /tmp/1.php on line 12

Voir aussi

  • Yaf_Dispatcher::catchException() - Active/désactive la récupération des exceptions
  • Yaf_Exception


Yaf_Dispatcher ne peut être linéarisé

  • « Yaf_Dispatcher::throwException
  • Yaf_Config_Abstract »
  • PHP Manual
  • Yaf_Dispatcher
  • Yaf_Dispatcher ne peut être linéarisé

Yaf_Dispatcher::__wakeup

(Yaf >=1.0.0)

Yaf_Dispatcher::__wakeup — Yaf_Dispatcher ne peut être linéarisé

Description

private void Yaf_Dispatcher::__wakeup ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe Yaf_Config_Abstract

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

abstract Yaf_Config_Abstract {
/* Propriétés */
protected $_config ;
protected $_readonly ;
/* Méthodes */
abstract public mixed get ( string $name , mixed $value )
abstract public bool readonly ( void )
abstract public Yaf_Config_Abstract set ( void )
abstract public array toArray ( void )
}

Propriétés

_config

_readonly

Sommaire

  • Yaf_Config_Abstract::get — Permet de récupérer une valeur
  • Yaf_Config_Abstract::readonly — Vérifie si une configuration est en lecture seule
  • Yaf_Config_Abstract::set — Permet de définir une valeur
  • Yaf_Config_Abstract::toArray — Transforme en tableau


Permet de récupérer une valeur

  • « Yaf_Config_Abstract
  • Yaf_Config_Abstract::readonly »
  • PHP Manual
  • Yaf_Config_Abstract
  • Permet de récupérer une valeur

Yaf_Config_Abstract::get

(Yaf >=1.0.0)

Yaf_Config_Abstract::get — Permet de récupérer une valeur

Description

abstract public mixed Yaf_Config_Abstract::get ( string $name , mixed $value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Vérifie si une configuration est en lecture seule

  • « Yaf_Config_Abstract::get
  • Yaf_Config_Abstract::set »
  • PHP Manual
  • Yaf_Config_Abstract
  • Vérifie si une configuration est en lecture seule

Yaf_Config_Abstract::readonly

(Yaf >=1.0.0)

Yaf_Config_Abstract::readonly — Vérifie si une configuration est en lecture seule

Description

abstract public bool Yaf_Config_Abstract::readonly ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Permet de définir une valeur

  • « Yaf_Config_Abstract::readonly
  • Yaf_Config_Abstract::toArray »
  • PHP Manual
  • Yaf_Config_Abstract
  • Permet de définir une valeur

Yaf_Config_Abstract::set

(Yaf >=1.0.0)

Yaf_Config_Abstract::set — Permet de définir une valeur

Description

abstract public Yaf_Config_Abstract Yaf_Config_Abstract::set ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Transforme en tableau

  • « Yaf_Config_Abstract::set
  • Yaf_Config_Ini »
  • PHP Manual
  • Yaf_Config_Abstract
  • Transforme en tableau

Yaf_Config_Abstract::toArray

(Yaf >=1.0.0)

Yaf_Config_Abstract::toArray — Transforme en tableau

Description

abstract public array Yaf_Config_Abstract::toArray ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe Yaf_Config_Ini

(Yaf >=1.0.0)

Introduction

Yaf_Config_Ini permet aux développeurs de stocker des données de configuration au format INI et de les lire dans l'application en utilisant une syntaxe interne orientée objet. Le format INI est prévu pour fournir à la fois la possibilité d'avoir une configuration hiérarchique des clés des données, ainsi qu'un héritage entre les sections des données de configuration. La hiérarchie des données de configuration est supportée en séparant les clés avec un point ou une virgule. Une section peut étendre ou hériter d'une autre section en faisant suivre le nom de la section avec le caractère ":", suivi du nom de la section depuis laquelles les données sont héritées.

Note:

Yaf_Config_Ini utilise la fonction PHP parse_ini_file(). Reportez-vous à la documentation de cette fonction afin de mieux apprécier son comportement, ainsi propagé à Yaf_Config_Ini, comme la façon dont sont gérées les valeurs spéciales "TRUE", "FALSE", "yes", "no", et "NULL".

Synopsis de la classe

Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator , ArrayAccess , Countable {
/* Propriétés */
/* Méthodes */
public __construct ( string $config_file [, string $section ] )
public void count ( void )
public void current ( void )
public void __get ([ string $name ] )
public void __isset ( string $name )
public void key ( void )
public void next ( void )
public void offsetExists ( string $name )
public void offsetGet ( string $name )
public void offsetSet ( string $name , string $value )
public void offsetUnset ( string $name )
public void readonly ( void )
public void rewind ( void )
public void __set ( string $name , mixed $value )
public array toArray ( void )
public void valid ( void )
/* Méthodes héritées */
abstract public mixed Yaf_Config_Abstract::get ( string $name , mixed $value )
abstract public bool Yaf_Config_Abstract::readonly ( void )
abstract public Yaf_Config_Abstract Yaf_Config_Abstract::set ( void )
abstract public array Yaf_Config_Abstract::toArray ( void )
}

Propriétés

_config

_readonly

Exemples

Exemple #1 Exemple avec Yaf_Config_Ini()

Cet exemple illustre une utilisation basique de Yaf_Config_Ini permettant de charger les données de configuration depuis un fichier INI. Dans cet exemple, il y a des données de configuration pour à la fois un système de production et une système de test. En raison du fait que les données de configuration du système de test sont très similaires à celles de production, la section de test hérite de la section de production. Aussi, cette décision est arbitraire, et aurait pu être écrite dans l'autre sens, avec une section de production qui hérite de la section de test, mais ce n'aurait pas pu être le cas pour des cas plus complexes. On suppose ici que les données de configuration suivantes sont contenues dans le chemin /path/to/config.ini :

; Données de configuration pour le site de production
[production]
webhost                  = www.example.com
database.adapter         = pdo_mysql
database.params.host     = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname   = dbname

; Données de configuration pour le site de test, héritées depuis celui de production
; et écrasant les valeurs nécessaires
[staging : production]
database.params.host     = dev.example.com
database.params.username = devuser
database.params.password = devsecret
<?php
$config = new Yaf_Config_Ini('/path/to/config.ini', 'staging');

var_dump($config->database->params->host);
var_dump($config->database->params->dbname);
var_dump($config->get("database.params.username"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(15) "dev.example.com"
string(6) "dbname"
string(7) "devuser

Sommaire

  • Yaf_Config_Ini::__construct — Constructeur Yaf_Config_Ini
  • Yaf_Config_Ini::count — Le but de count
  • Yaf_Config_Ini::current — Le but de current
  • Yaf_Config_Ini::__get — Le but de __get
  • Yaf_Config_Ini::__isset — Le but de __isset
  • Yaf_Config_Ini::key — Le but de key
  • Yaf_Config_Ini::next — Le but de next
  • Yaf_Config_Ini::offsetExists — Le but de offsetExists
  • Yaf_Config_Ini::offsetGet — Le but de offsetGet
  • Yaf_Config_Ini::offsetSet — Le but de offsetSet
  • Yaf_Config_Ini::offsetUnset — Le but de offsetUnset
  • Yaf_Config_Ini::readonly — Le but de readonly
  • Yaf_Config_Ini::rewind — Le but de rewind
  • Yaf_Config_Ini::__set — Le but de __set
  • Yaf_Config_Ini::toArray — Retourne un tableau PHP
  • Yaf_Config_Ini::valid — Le but de valid


Constructeur Yaf_Config_Ini

  • « Yaf_Config_Ini
  • Yaf_Config_Ini::count »
  • PHP Manual
  • Yaf_Config_Ini
  • Constructeur Yaf_Config_Ini

Yaf_Config_Ini::__construct

(Yaf >=1.0.0)

Yaf_Config_Ini::__construct — Constructeur Yaf_Config_Ini

Description

public Yaf_Config_Ini::__construct ( string $config_file [, string $section ] )

Constructeur de la classe Yaf_Config_Ini.

Liste de paramètres

config_file

Chemin vers un fichier de configuration INI.

section

La section du fichier INI à analyser.

Valeurs de retour


Le but de count

  • « Yaf_Config_Ini::__construct
  • Yaf_Config_Ini::current »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de count

Yaf_Config_Ini::count

(Yaf >=1.0.0)

Yaf_Config_Ini::count — Le but de count

Description

public void Yaf_Config_Ini::count ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de current

  • « Yaf_Config_Ini::count
  • Yaf_Config_Ini::__get »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de current

Yaf_Config_Ini::current

(Yaf >=1.0.0)

Yaf_Config_Ini::current — Le but de current

Description

public void Yaf_Config_Ini::current ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __get

  • « Yaf_Config_Ini::current
  • Yaf_Config_Ini::__isset »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de __get

Yaf_Config_Ini::__get

(Yaf >=1.0.0)

Yaf_Config_Ini::__get — Le but de __get

Description

public void Yaf_Config_Ini::__get ([ string $name ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de __isset

  • « Yaf_Config_Ini::__get
  • Yaf_Config_Ini::key »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de __isset

Yaf_Config_Ini::__isset

(Yaf >=1.0.0)

Yaf_Config_Ini::__isset — Le but de __isset

Description

public void Yaf_Config_Ini::__isset ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de key

  • « Yaf_Config_Ini::__isset
  • Yaf_Config_Ini::next »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de key

Yaf_Config_Ini::key

(Yaf >=1.0.0)

Yaf_Config_Ini::key — Le but de key

Description

public void Yaf_Config_Ini::key ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de next

  • « Yaf_Config_Ini::key
  • Yaf_Config_Ini::offsetExists »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de next

Yaf_Config_Ini::next

(Yaf >=1.0.0)

Yaf_Config_Ini::next — Le but de next

Description

public void Yaf_Config_Ini::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de offsetExists

  • « Yaf_Config_Ini::next
  • Yaf_Config_Ini::offsetGet »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de offsetExists

Yaf_Config_Ini::offsetExists

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetExists — Le but de offsetExists

Description

public void Yaf_Config_Ini::offsetExists ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de offsetGet

  • « Yaf_Config_Ini::offsetExists
  • Yaf_Config_Ini::offsetSet »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de offsetGet

Yaf_Config_Ini::offsetGet

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetGet — Le but de offsetGet

Description

public void Yaf_Config_Ini::offsetGet ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de offsetSet

  • « Yaf_Config_Ini::offsetGet
  • Yaf_Config_Ini::offsetUnset »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de offsetSet

Yaf_Config_Ini::offsetSet

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetSet — Le but de offsetSet

Description

public void Yaf_Config_Ini::offsetSet ( string $name , string $value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

value

Valeurs de retour


Le but de offsetUnset

  • « Yaf_Config_Ini::offsetSet
  • Yaf_Config_Ini::readonly »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de offsetUnset

Yaf_Config_Ini::offsetUnset

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetUnset — Le but de offsetUnset

Description

public void Yaf_Config_Ini::offsetUnset ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de readonly

  • « Yaf_Config_Ini::offsetUnset
  • Yaf_Config_Ini::rewind »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de readonly

Yaf_Config_Ini::readonly

(Yaf >=1.0.0)

Yaf_Config_Ini::readonly — Le but de readonly

Description

public void Yaf_Config_Ini::readonly ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de rewind

  • « Yaf_Config_Ini::readonly
  • Yaf_Config_Ini::__set »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de rewind

Yaf_Config_Ini::rewind

(Yaf >=1.0.0)

Yaf_Config_Ini::rewind — Le but de rewind

Description

public void Yaf_Config_Ini::rewind ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __set

  • « Yaf_Config_Ini::rewind
  • Yaf_Config_Ini::toArray »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de __set

Yaf_Config_Ini::__set

(Yaf >=1.0.0)

Yaf_Config_Ini::__set — Le but de __set

Description

public void Yaf_Config_Ini::__set ( string $name , mixed $value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

value

Valeurs de retour


Retourne un tableau PHP

  • « Yaf_Config_Ini::__set
  • Yaf_Config_Ini::valid »
  • PHP Manual
  • Yaf_Config_Ini
  • Retourne un tableau PHP

Yaf_Config_Ini::toArray

(Yaf >=1.0.0)

Yaf_Config_Ini::toArray — Retourne un tableau PHP

Description

public array Yaf_Config_Ini::toArray ( void )

Retourne un tableau PHP depuis la classe Yaf_Config_Ini.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de valid

  • « Yaf_Config_Ini::toArray
  • Yaf_Config_Simple »
  • PHP Manual
  • Yaf_Config_Ini
  • Le but de valid

Yaf_Config_Ini::valid

(Yaf >=1.0.0)

Yaf_Config_Ini::valid — Le but de valid

Description

public void Yaf_Config_Ini::valid ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe Yaf_Config_Simple

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Config_Simple extends Yaf_Config_Abstract implements Iterator , ArrayAccess , Countable {
/* Propriétés */
protected $_readonly ;
/* Méthodes */
public __construct ( string $config_file [, string $section ] )
public void count ( void )
public void current ( void )
public void __get ([ string $name ] )
public void __isset ( string $name )
public void key ( void )
public void next ( void )
public void offsetExists ( string $name )
public void offsetGet ( string $name )
public void offsetSet ( string $name , string $value )
public void offsetUnset ( string $name )
public void readonly ( void )
public void rewind ( void )
public void __set ( string $name , string $value )
public array toArray ( void )
public void valid ( void )
/* Méthodes héritées */
abstract public mixed Yaf_Config_Abstract::get ( string $name , mixed $value )
abstract public bool Yaf_Config_Abstract::readonly ( void )
abstract public Yaf_Config_Abstract Yaf_Config_Abstract::set ( void )
abstract public array Yaf_Config_Abstract::toArray ( void )
}

Propriétés

_config

_readonly

Sommaire

  • Yaf_Config_Simple::__construct — Le but de __construct
  • Yaf_Config_Simple::count — Le but de count
  • Yaf_Config_Simple::current — Le but de current
  • Yaf_Config_Simple::__get — Le but de __get
  • Yaf_Config_Simple::__isset — Le but de __isset
  • Yaf_Config_Simple::key — Le but de key
  • Yaf_Config_Simple::next — Le but de next
  • Yaf_Config_Simple::offsetExists — Le but de offsetExists
  • Yaf_Config_Simple::offsetGet — Le but de offsetGet
  • Yaf_Config_Simple::offsetSet — Le but de offsetSet
  • Yaf_Config_Simple::offsetUnset — Le but de offsetUnset
  • Yaf_Config_Simple::readonly — Le but de readonly
  • Yaf_Config_Simple::rewind — Le but de rewind
  • Yaf_Config_Simple::__set — Le but de __set
  • Yaf_Config_Simple::toArray — Retourne un tableau PHP
  • Yaf_Config_Simple::valid — Le but de valid


Le but de __construct

  • « Yaf_Config_Simple
  • Yaf_Config_Simple::count »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de __construct

Yaf_Config_Simple::__construct

(Yaf >=1.0.0)

Yaf_Config_Simple::__construct — Le but de __construct

Description

public Yaf_Config_Simple::__construct ( string $config_file [, string $section ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

config_file

section

Valeurs de retour


Le but de count

  • « Yaf_Config_Simple::__construct
  • Yaf_Config_Simple::current »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de count

Yaf_Config_Simple::count

(Yaf >=1.0.0)

Yaf_Config_Simple::count — Le but de count

Description

public void Yaf_Config_Simple::count ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de current

  • « Yaf_Config_Simple::count
  • Yaf_Config_Simple::__get »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de current

Yaf_Config_Simple::current

(Yaf >=1.0.0)

Yaf_Config_Simple::current — Le but de current

Description

public void Yaf_Config_Simple::current ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __get

  • « Yaf_Config_Simple::current
  • Yaf_Config_Simple::__isset »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de __get

Yaf_Config_Simple::__get

(Yaf >=1.0.0)

Yaf_Config_Simple::__get — Le but de __get

Description

public void Yaf_Config_Simple::__get ([ string $name ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de __isset

  • « Yaf_Config_Simple::__get
  • Yaf_Config_Simple::key »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de __isset

Yaf_Config_Simple::__isset

(Yaf >=1.0.0)

Yaf_Config_Simple::__isset — Le but de __isset

Description

public void Yaf_Config_Simple::__isset ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de key

  • « Yaf_Config_Simple::__isset
  • Yaf_Config_Simple::next »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de key

Yaf_Config_Simple::key

(Yaf >=1.0.0)

Yaf_Config_Simple::key — Le but de key

Description

public void Yaf_Config_Simple::key ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de next

  • « Yaf_Config_Simple::key
  • Yaf_Config_Simple::offsetExists »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de next

Yaf_Config_Simple::next

(Yaf >=1.0.0)

Yaf_Config_Simple::next — Le but de next

Description

public void Yaf_Config_Simple::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de offsetExists

  • « Yaf_Config_Simple::next
  • Yaf_Config_Simple::offsetGet »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de offsetExists

Yaf_Config_Simple::offsetExists

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetExists — Le but de offsetExists

Description

public void Yaf_Config_Simple::offsetExists ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de offsetGet

  • « Yaf_Config_Simple::offsetExists
  • Yaf_Config_Simple::offsetSet »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de offsetGet

Yaf_Config_Simple::offsetGet

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetGet — Le but de offsetGet

Description

public void Yaf_Config_Simple::offsetGet ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de offsetSet

  • « Yaf_Config_Simple::offsetGet
  • Yaf_Config_Simple::offsetUnset »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de offsetSet

Yaf_Config_Simple::offsetSet

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetSet — Le but de offsetSet

Description

public void Yaf_Config_Simple::offsetSet ( string $name , string $value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

value

Valeurs de retour


Le but de offsetUnset

  • « Yaf_Config_Simple::offsetSet
  • Yaf_Config_Simple::readonly »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de offsetUnset

Yaf_Config_Simple::offsetUnset

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetUnset — Le but de offsetUnset

Description

public void Yaf_Config_Simple::offsetUnset ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de readonly

  • « Yaf_Config_Simple::offsetUnset
  • Yaf_Config_Simple::rewind »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de readonly

Yaf_Config_Simple::readonly

(Yaf >=1.0.0)

Yaf_Config_Simple::readonly — Le but de readonly

Description

public void Yaf_Config_Simple::readonly ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de rewind

  • « Yaf_Config_Simple::readonly
  • Yaf_Config_Simple::__set »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de rewind

Yaf_Config_Simple::rewind

(Yaf >=1.0.0)

Yaf_Config_Simple::rewind — Le but de rewind

Description

public void Yaf_Config_Simple::rewind ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __set

  • « Yaf_Config_Simple::rewind
  • Yaf_Config_Simple::toArray »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de __set

Yaf_Config_Simple::__set

(Yaf >=1.0.0)

Yaf_Config_Simple::__set — Le but de __set

Description

public void Yaf_Config_Simple::__set ( string $name , string $value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

value

Valeurs de retour


Retourne un tableau PHP

  • « Yaf_Config_Simple::__set
  • Yaf_Config_Simple::valid »
  • PHP Manual
  • Yaf_Config_Simple
  • Retourne un tableau PHP

Yaf_Config_Simple::toArray

(Yaf >=1.0.0)

Yaf_Config_Simple::toArray — Retourne un tableau PHP

Description

public array Yaf_Config_Simple::toArray ( void )

Retourne un tableau PHP depuis la classe Yaf_Config_Simple.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de valid

  • « Yaf_Config_Simple::toArray
  • Yaf_Controller_Abstract »
  • PHP Manual
  • Yaf_Config_Simple
  • Le but de valid

Yaf_Config_Simple::valid

(Yaf >=1.0.0)

Yaf_Config_Simple::valid — Le but de valid

Description

public void Yaf_Config_Simple::valid ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


la classe Yaf_Controller_Abstract

(Yaf >=1.0.0)

Introduction

Yaf_Controller_Abstract est le coeur du système Yaf ; architecture MVC (pour Model-View-Controller) permettant de séparer la logique applicative de la logique d'affichage.

Tous les controlleurs personnalisés doivent hérités de la classe Yaf_Controller_Abstract.

Vous devriez vous apercevoir que vous ne pouvez pas définir de fonction __construct pour votre controlleur personnalisé, aussi, la classe Yaf_Controller_Abstract fournit une méthode magique pour cela : Yaf_Controller_Abstract::init().

Si vous avez défini une méthode init() dans votre controlleur personnalisé, elle sera appelée lors de l'instanciation de votre contrôleur.

Les actions peuvent avoir des arguments, lorsqu'une requête arrive, s'il y a la même variable dans les paramètres de la requête (voir Yaf_Request_Abstract::getParam()) après le routage, Yaf les passera à la méthode de l'action (voir la méthode Yaf_Action_Abstract::execute()).

Note:

Ces arguments sont directement récupérés sans filtrage ; il serait plus prudent de les analyser avant de les utiliser.

Synopsis de la classe

abstract Yaf_Controller_Abstract {
/* Propriétés */
public $actions ;
protected $_module ;
protected $_name ;
protected $_request ;
protected $_response ;
protected $_invoke_args ;
protected $_view ;
/* Méthodes */
final private void __clone ( void )
final private __construct ( void )
protected bool display ( string $tpl [, array $parameters ] )
public void forward ( string $action [, array $paramters ] )
public void getInvokeArg ( string $name )
public void getInvokeArgs ( void )
public string getModuleName ( void )
public Yaf_Request_Abstract getRequest ( void )
public Yaf_Response_Abstract getResponse ( void )
public Yaf_View_Interface getView ( void )
public void getViewpath ( void )
public void init ( void )
public void initView ([ array $options ] )
public bool redirect ( string $url )
protected string render ( string $tpl [, array $parameters ] )
public void setViewpath ( string $view_directory )
}

Propriétés

actions

Vous pouvez aussi définir une méthode d'action dans un script PHP séparé en utilisant cette propriété et Yaf_Action_Abstract.

Exemple #1 Définission d'une action dans un fichier séparé

<?php
class IndexController extends Yaf_Controller_Abstract {
    protected $actions = array(
        /** maintenant dummyAction est défini dans un fichier séparé */
        "dummy" => "actions/Dummy_action.php",
    );

    /* la méthode de l'action peut avoir des arguments */
    public indexAction($name, $id) {
       /* $name et $id sont des données brûtes non sécurisées */
       assert($name == $this->getRequest()->getParam("name"));
       assert($id   == $this->_request->getParam("id"));
    }
}
?>

Exemple #2 Dummy_action.php

<?php
class DummyAction extends Yaf_Action_Abstract {
    /* une classe d'action doit définir cette méthode comme point d'entrée */
    public execute() {
    }
}
?>

_module

Nom du module

_name

Nom du contrôleur

_request

L'objet de la requête courante

_response

L'objet de la réponse courante

_invoke_args

_view

Le moteur de visualisation

Sommaire

  • Yaf_Controller_Abstract::__clone — Yaf_Controller_Abstract ne peut être clôner
  • Yaf_Controller_Abstract::__construct — Constructeur de Yaf_Controller_Abstract
  • Yaf_Controller_Abstract::display — Le but de display
  • Yaf_Controller_Abstract::forward — Transfère vers une autre action
  • Yaf_Controller_Abstract::getInvokeArg — Le but de getInvokeArg
  • Yaf_Controller_Abstract::getInvokeArgs — Le but de getInvokeArgs
  • Yaf_Controller_Abstract::getModuleName — Récupère le nom du module
  • Yaf_Controller_Abstract::getRequest — Récupère l'objet de la demande courante
  • Yaf_Controller_Abstract::getResponse — Récupère l'objet de la réponse courante
  • Yaf_Controller_Abstract::getView — Récupère le moteur de visualisation
  • Yaf_Controller_Abstract::getViewpath — Le but de getViewpath
  • Yaf_Controller_Abstract::init — Initialisation du contrôleur
  • Yaf_Controller_Abstract::initView — Le but de initView
  • Yaf_Controller_Abstract::redirect — Redirige vers une URL
  • Yaf_Controller_Abstract::render — Affiche le rendu du template
  • Yaf_Controller_Abstract::setViewpath — Le but de setViewpath


Yaf_Controller_Abstract ne peut être clôner

  • « Yaf_Controller_Abstract
  • Yaf_Controller_Abstract::__construct »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Yaf_Controller_Abstract ne peut être clôner

Yaf_Controller_Abstract::__clone

(Yaf >=1.0.0)

Yaf_Controller_Abstract::__clone — Yaf_Controller_Abstract ne peut être clôner

Description

final private void Yaf_Controller_Abstract::__clone ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Constructeur de Yaf_Controller_Abstract

  • « Yaf_Controller_Abstract::__clone
  • Yaf_Controller_Abstract::display »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Constructeur de Yaf_Controller_Abstract

Yaf_Controller_Abstract::__construct

(Yaf >=1.0.0)

Yaf_Controller_Abstract::__construct — Constructeur de Yaf_Controller_Abstract

Description

final private Yaf_Controller_Abstract::__construct ( void )

Yaf_Controller_Abstract::__construct() est final, ce qui signifie qu'il ne peut pas être surchargé. Pour cela, reportez-vous plutôt à la méthode Yaf_Controller_Abstract::init().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • Yaf_Controller_Abstract::init() - Initialisation du contrôleur


Le but de display

  • « Yaf_Controller_Abstract::__construct
  • Yaf_Controller_Abstract::forward »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Le but de display

Yaf_Controller_Abstract::display

(Yaf >=1.0.0)

Yaf_Controller_Abstract::display — Le but de display

Description

protected bool Yaf_Controller_Abstract::display ( string $tpl [, array $parameters ] )

Liste de paramètres

tpl

parameters

Valeurs de retour


Transfère vers une autre action

  • « Yaf_Controller_Abstract::display
  • Yaf_Controller_Abstract::getInvokeArg »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Transfère vers une autre action

Yaf_Controller_Abstract::forward

(Yaf >=1.0.0)

Yaf_Controller_Abstract::forward — Transfère vers une autre action

Description

public void Yaf_Controller_Abstract::forward ( string $action [, array $paramters ] )
public void Yaf_Controller_Abstract::forward ( string $controller , string $action [, array $paramters ] )
public void Yaf_Controller_Abstract::forward ( string $module , string $controller , string $action [, array $paramters ] )

Transfère le processus d'exécution courant vers une autre action.

Note:

Cette méthode ne bascule pas vers l'action de destination immédiatement ; ce sera le cas un fois le flux courant terminé.

Liste de paramètres

module

Nom du module de destination ; si NULL est fourni, alors le nom du module par défaut sera utilisé

controller

Nom du contrôleur de destination

action

Nom de l'action de destination

paramters

Arguments d'appel

Exemples

Exemple #1 Exemple avec Yaf_Controller_Abstract::forward()

<?php
class IndexController extends Yaf_Controller_Abstract
{
    public function indexAction(){
         $logined = $_SESSION["login"];
         if (!$logined) {
             $this->forward("login", array("from" => "Index")); // transfère vers l'action 'login'
             return FALSE;  // ceci est important ; cela termine le flux d'exécution courant
                            // et indique à Yaf de ne pas effectuer auto-affichage
         }

         // autres processus
    }

    public function loginAction() {
        echo "login, redirected from ", $this->_request->getParam("from") , " action";
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

   login, redirected from Index action

Valeurs de retour

Retourne FALSE en cas d'échec.

Voir aussi

  • Yaf_Request_Abstrace::getParam()


Le but de getInvokeArg

  • « Yaf_Controller_Abstract::forward
  • Yaf_Controller_Abstract::getInvokeArgs »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Le but de getInvokeArg

Yaf_Controller_Abstract::getInvokeArg

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getInvokeArg — Le but de getInvokeArg

Description

public void Yaf_Controller_Abstract::getInvokeArg ( string $name )

Liste de paramètres

name

Valeurs de retour


Le but de getInvokeArgs

  • « Yaf_Controller_Abstract::getInvokeArg
  • Yaf_Controller_Abstract::getModuleName »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Le but de getInvokeArgs

Yaf_Controller_Abstract::getInvokeArgs

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getInvokeArgs — Le but de getInvokeArgs

Description

public void Yaf_Controller_Abstract::getInvokeArgs ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le nom du module

  • « Yaf_Controller_Abstract::getInvokeArgs
  • Yaf_Controller_Abstract::getRequest »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Récupère le nom du module

Yaf_Controller_Abstract::getModuleName

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getModuleName — Récupère le nom du module

Description

public string Yaf_Controller_Abstract::getModuleName ( void )

Récupère le nom du controlleur du module.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère l'objet de la demande courante

  • « Yaf_Controller_Abstract::getModuleName
  • Yaf_Controller_Abstract::getResponse »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Récupère l'objet de la demande courante

Yaf_Controller_Abstract::getRequest

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getRequest — Récupère l'objet de la demande courante

Description

public Yaf_Request_Abstract Yaf_Controller_Abstract::getRequest ( void )

Récupère l'objet de la demande courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une instance de la classe Yaf_Request_Abstract.


Récupère l'objet de la réponse courante

  • « Yaf_Controller_Abstract::getRequest
  • Yaf_Controller_Abstract::getView »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Récupère l'objet de la réponse courante

Yaf_Controller_Abstract::getResponse

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getResponse — Récupère l'objet de la réponse courante

Description

public Yaf_Response_Abstract Yaf_Controller_Abstract::getResponse ( void )

Récupère l'objet de la réponse courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une instance de la classe Yaf_Response_Abstract.


Récupère le moteur de visualisation

  • « Yaf_Controller_Abstract::getResponse
  • Yaf_Controller_Abstract::getViewpath »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Récupère le moteur de visualisation

Yaf_Controller_Abstract::getView

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getView — Récupère le moteur de visualisation

Description

public Yaf_View_Interface Yaf_Controller_Abstract::getView ( void )

Récupère le moteur de visualisation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getViewpath

  • « Yaf_Controller_Abstract::getView
  • Yaf_Controller_Abstract::init »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Le but de getViewpath

Yaf_Controller_Abstract::getViewpath

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getViewpath — Le but de getViewpath

Description

public void Yaf_Controller_Abstract::getViewpath ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Initialisation du contrôleur

  • « Yaf_Controller_Abstract::getViewpath
  • Yaf_Controller_Abstract::initView »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Initialisation du contrôleur

Yaf_Controller_Abstract::init

(Yaf >=1.0.0)

Yaf_Controller_Abstract::init — Initialisation du contrôleur

Description

public void Yaf_Controller_Abstract::init ( void )

La méthode Yaf_Controller_Abstract::__construct() est finale, ce qui signifie qu'elle ne peut être surchargée. Les utilisateurs peuvent définir la méthode Yaf_Controller_Abstract::init(), qui sera appelée après l'instanciation de l'objet contrôleur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • Yaf_Controller_Abstract::__construct() - Constructeur de Yaf_Controller_Abstract


Le but de initView

  • « Yaf_Controller_Abstract::init
  • Yaf_Controller_Abstract::redirect »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Le but de initView

Yaf_Controller_Abstract::initView

(Yaf >=1.0.0)

Yaf_Controller_Abstract::initView — Le but de initView

Description

public void Yaf_Controller_Abstract::initView ([ array $options ] )

Liste de paramètres

options

Valeurs de retour


Redirige vers une URL

  • « Yaf_Controller_Abstract::initView
  • Yaf_Controller_Abstract::render »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Redirige vers une URL

Yaf_Controller_Abstract::redirect

(Yaf >=1.0.0)

Yaf_Controller_Abstract::redirect — Redirige vers une URL

Description

public bool Yaf_Controller_Abstract::redirect ( string $url )

Redirige vers une URL en utilisant un en-tête 302.

Liste de paramètres

url

une URL

Valeurs de retour

Retourne un booléen.


Affiche le rendu du template

  • « Yaf_Controller_Abstract::redirect
  • Yaf_Controller_Abstract::setViewpath »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Affiche le rendu du template

Yaf_Controller_Abstract::render

(Yaf >=1.0.0)

Yaf_Controller_Abstract::render — Affiche le rendu du template

Description

protected string Yaf_Controller_Abstract::render ( string $tpl [, array $parameters ] )

Liste de paramètres

tpl

parameters

Valeurs de retour


Le but de setViewpath

  • « Yaf_Controller_Abstract::render
  • Yaf_Action_Abstract »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Le but de setViewpath

Yaf_Controller_Abstract::setViewpath

(Yaf >=1.0.0)

Yaf_Controller_Abstract::setViewpath — Le but de setViewpath

Description

public void Yaf_Controller_Abstract::setViewpath ( string $view_directory )

Liste de paramètres

view_directory

Valeurs de retour


La classe Yaf_Action_Abstract

(Yaf >=1.0.0)

Introduction

Une action peut être définie dans un fichier séparé en Yaf (voir Yaf_Controller_Abstract). Ce peut être aussi une instance de la classe Yaf_Action_Abstract.

Bien que ce doit être un point d'entrée pouvant être appelé par Yaf (depuis PHP 5.3, il i a une nouvelle méthode magique __invoke, mais Yaf ne fonctionne pas qu'avec PHP 5.3+ et ainsi, Yaf choisit une autre méthode magique à exécuter), vous devez implémenter la méthode abstraite Yaf_Action_Abstract::execute() dans la classe personnalisée de l'action.

Synopsis de la classe

Yaf_Action_Abstract extends Yaf_Controller_Abstract {
/* Propriétés */
protected $_controller ;
/* Méthodes */
abstract publicmixed execute ([ mixed $arg [, mixed $... ]] )
publicYaf_Controller_Abstract getController ( void )
/* Méthodes héritées */
final private void Yaf_Controller_Abstract::__clone ( void )
final private Yaf_Controller_Abstract::__construct ( void )
protected bool Yaf_Controller_Abstract::display ( string $tpl [, array $parameters ] )
public void Yaf_Controller_Abstract::forward ( string $action [, array $paramters ] )
public void Yaf_Controller_Abstract::getInvokeArg ( string $name )
public void Yaf_Controller_Abstract::getInvokeArgs ( void )
public string Yaf_Controller_Abstract::getModuleName ( void )
public Yaf_Request_Abstract Yaf_Controller_Abstract::getRequest ( void )
public Yaf_Response_Abstract Yaf_Controller_Abstract::getResponse ( void )
public Yaf_View_Interface Yaf_Controller_Abstract::getView ( void )
public void Yaf_Controller_Abstract::getViewpath ( void )
public void Yaf_Controller_Abstract::init ( void )
public void Yaf_Controller_Abstract::initView ([ array $options ] )
public bool Yaf_Controller_Abstract::redirect ( string $url )
protected string Yaf_Controller_Abstract::render ( string $tpl [, array $parameters ] )
public void Yaf_Controller_Abstract::setViewpath ( string $view_directory )
}

Propriétés

_module

_name

_request

_response

_invoke_args

_view

_controller

Sommaire

  • Yaf_Action_Abstract::execute — Point d'entrée de l'action
  • Yaf_Action_Abstract::getController — Récupère l'objet contrôleur


Point d'entrée de l'action

  • « Yaf_Action_Abstract
  • Yaf_Action_Abstract::getController »
  • PHP Manual
  • Yaf_Action_Abstract
  • Point d'entrée de l'action

Yaf_Action_Abstract::execute

(Yaf >=1.0.0)

Yaf_Action_Abstract::execute — Point d'entrée de l'action

Description

abstract publicmixed Yaf_Action_Abstract::execute ([ mixed $arg [, mixed $... ]] )

L'utilisateur doit toujours définir cette méthode pour une action ; c'est le point d'entrée de l'action. La méthode Yaf_Action_Abstract::execute() peut avoir des arguments.

Note:

La valeur récupérée depuis la requête n'est pas sécurisée. Vous devriez effectuer quelques filtres avant de l'utiliser.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Action_Abstract::execute()

<?php
/**
 * Un exemple de contrôleur
 */
class ProductController extends Yaf_Controller_Abstract {
      protected $actions = array(
          "index" => "actions/Index.php",
      );
}
?>

Exemple #2 Exemple avec Yaf_Action_Abstract::execute()

<?php
/**
 * ListAction
 */
class ListAction extends Yaf_Action_Abstract {
     public function execute ($name, $id) {
         assert($name == $this->getRequest()->getParam("name"));
         assert($id   == $this->getRequest()->getParam("id"));
     }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/**
 * Supposons que nous utilisons la route Yaf_Route_Static
 * pour la requête : http://yourdomain/product/list/name/yaf/id/22
 * Voici le résultat :
 */
 bool(true)
 bool(true)

Voir aussi


Récupère l'objet contrôleur

  • « Yaf_Action_Abstract::execute
  • Yaf_View_Interface »
  • PHP Manual
  • Yaf_Action_Abstract
  • Récupère l'objet contrôleur

Yaf_Action_Abstract::getController

(Yaf >=1.0.0)

Yaf_Action_Abstract::getController — Récupère l'objet contrôleur

Description

publicYaf_Controller_Abstract Yaf_Action_Abstract::getController ( void )

Récupère l'objet représentant le contrôleur courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une instance de la classe Yaf_Controller_Abstract.


La classe Yaf_View_Interface

(Yaf >=1.0.0)

Introduction

Yaf fournit la possibilité aux développeurs d'utiliser des moteurs de viasualisation personnalisés au lieu de celui fourni par défaut (Yaf_View_Simple). Pour voir un exemple d'utilisation, reportez-vous à la documentation sur la méthode Yaf_Dispatcher::setView().

Synopsis de la classe

Yaf_View_Interface {
/* Méthodes */
abstract public bool assign ( string $name [, string $value ] )
abstract public bool display ( string $tpl [, array $tpl_vars ] )
abstract public void getScriptPath ( void )
abstract public string render ( string $tpl [, array $tpl_vars ] )
abstract public void setScriptPath ( string $template_dir )
}

Sommaire

  • Yaf_View_Interface::assign — Assigne une valeur au moteur de rendu
  • Yaf_View_Interface::display — Construit et affiche un template
  • Yaf_View_Interface::getScriptPath — Le but de getScriptPath
  • Yaf_View_Interface::render — Construit un template
  • Yaf_View_Interface::setScriptPath — Le but de setScriptPath


Assigne une valeur au moteur de rendu

  • « Yaf_View_Interface
  • Yaf_View_Interface::display »
  • PHP Manual
  • Yaf_View_Interface
  • Assigne une valeur au moteur de rendu

Yaf_View_Interface::assign

(Yaf >=1.0.0)

Yaf_View_Interface::assign — Assigne une valeur au moteur de rendu

Description

abstract public bool Yaf_View_Interface::assign ( string $name [, string $value ] )

Assigne une valeur au moteur de rendu, la rendant ainsi disponible directement par son nom au sein du template.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

value

Valeurs de retour


Construit et affiche un template

  • « Yaf_View_Interface::assign
  • Yaf_View_Interface::getScriptPath »
  • PHP Manual
  • Yaf_View_Interface
  • Construit et affiche un template

Yaf_View_Interface::display

(Yaf >=1.0.0)

Yaf_View_Interface::display — Construit et affiche un template

Description

abstract public bool Yaf_View_Interface::display ( string $tpl [, array $tpl_vars ] )

Construit et affiche immédiatement le résultat.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

tpl

tpl_vars

Valeurs de retour


Le but de getScriptPath

  • « Yaf_View_Interface::display
  • Yaf_View_Interface::render »
  • PHP Manual
  • Yaf_View_Interface
  • Le but de getScriptPath

Yaf_View_Interface::getScriptPath

(Yaf >=1.0.0)

Yaf_View_Interface::getScriptPath — Le but de getScriptPath

Description

abstract public void Yaf_View_Interface::getScriptPath ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Construit un template

  • « Yaf_View_Interface::getScriptPath
  • Yaf_View_Interface::setScriptPath »
  • PHP Manual
  • Yaf_View_Interface
  • Construit un template

Yaf_View_Interface::render

(Yaf >=1.0.0)

Yaf_View_Interface::render — Construit un template

Description

abstract public string Yaf_View_Interface::render ( string $tpl [, array $tpl_vars ] )

Construit un template et retourne le résultat.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

tpl

tpl_vars

Valeurs de retour


Le but de setScriptPath

  • « Yaf_View_Interface::render
  • Yaf_View_Simple »
  • PHP Manual
  • Yaf_View_Interface
  • Le but de setScriptPath

Yaf_View_Interface::setScriptPath

(Yaf >=1.0.0)

Yaf_View_Interface::setScriptPath — Le but de setScriptPath

Description

abstract public void Yaf_View_Interface::setScriptPath ( string $template_dir )

Définit le dossier de base contenant les templates. Habituellement, ce dossier est défini en utilisant la classe Yaf_Dispatcher.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

template_dir

Un chemin absolu vers le dossier contenant les templates ; Par défaut, Yaf_Dispatcher utilise application.directory . "/views".

Valeurs de retour


La classe Yaf_View_Simple

(Yaf >=1.0.0)

Introduction

La classe Yaf_View_Simple est un moteur de template interne pour Yaf ; il est simple mais très rapide, et ne supporte que les templates de scripts PHP.

Synopsis de la classe

Yaf_View_Simple implements Yaf_View_Interface {
/* Propriétés */
protected $_tpl_vars ;
protected $_tpl_dir ;
/* Méthodes */
public bool assign ( string $name [, mixed $value ] )
public bool assignRef ( string $name , mixed &$value )
public bool clear ([ string $name ] )
final public __construct ( string $template_dir [, array $options ] )
public bool display ( string $tpl [, array $tpl_vars ] )
public string eval ( string $tpl_content [, array $tpl_vars ] )
public void __get ([ string $name ] )
public string getScriptPath ( void )
public void __isset ( string $name )
public string render ( string $tpl [, array $tpl_vars ] )
public void __set ( string $name , mixed $value )
public bool setScriptPath ( string $template_dir )
}

Propriétés

_tpl_vars

_tpl_dir

Sommaire

  • Yaf_View_Simple::assign — Assigne une ou plusieurs variables
  • Yaf_View_Simple::assignRef — Le but de assignRef
  • Yaf_View_Simple::clear — Efface les valeurs assignées
  • Yaf_View_Simple::__construct — Constructeur de la classe Yaf_View_Simple
  • Yaf_View_Simple::display — Construit et affiche
  • Yaf_View_Simple::eval — Évalue un template
  • Yaf_View_Simple::__get — Récupère une variable assignée
  • Yaf_View_Simple::getScriptPath — Récupère le dossier contenant les templates
  • Yaf_View_Simple::__isset — Le but de __isset
  • Yaf_View_Simple::render — Construit un template
  • Yaf_View_Simple::__set — Définit une valeur du moteur
  • Yaf_View_Simple::setScriptPath — Définit le dossier contenant les templates


Assigne une ou plusieurs variables

  • « Yaf_View_Simple
  • Yaf_View_Simple::assignRef »
  • PHP Manual
  • Yaf_View_Simple
  • Assigne une ou plusieurs variables

Yaf_View_Simple::assign

(Yaf >=1.0.0)

Yaf_View_Simple::assign — Assigne une ou plusieurs variables

Description

public bool Yaf_View_Simple::assign ( string $name [, mixed $value ] )

Assigne une ou plusieurs variables au moteur de visualisation.

Liste de paramètres

name

Une chaîne de caractères ou un tableau.

Si c'est une chaîne de caractères, alors l'argument $value est requis.

value

Valeurs de différents types.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_View_Simple::assign()

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $this->getView()->assign("foo", "bar");
        $this->_view->assign( array( "key" => "value", "name" => "value"));
    }
?>

Exemple #2 Exemple avec template()

<html>
 <head>
  <title><?php echo $foo; ?></title>
 </head>
<body>
  <?php
    foreach ($this->_tpl_vars as $name => value) {
         echo $$name; // ou echo $this->_tpl_vars[$name];
    }
  ?>
</body>
</html>

Voir aussi

  • Yaf_View_Simple::assignRef() - Le but de assignRef
  • Yaf_View_Interface::clear()
  • Yaf_View_Simple::__set() - Définit une valeur du moteur


Le but de assignRef

  • « Yaf_View_Simple::assign
  • Yaf_View_Simple::clear »
  • PHP Manual
  • Yaf_View_Simple
  • Le but de assignRef

Yaf_View_Simple::assignRef

(Yaf >=1.0.0)

Yaf_View_Simple::assignRef — Le but de assignRef

Description

public bool Yaf_View_Simple::assignRef ( string $name , mixed &$value )

Contrairement à la méthode Yaf_View_Simple::assign(), cette méthode assigne la référence à une valeur du moteur.

Liste de paramètres

name

Le nom sous forme de chaîne de caractères à utiliser pour accéder à la valeur dans le template.

value

Différents types de valeur.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_View_Simple::assignRef()

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $value = "bar";
        $this->getView()->assign("foo", $value);

        /* Notez qu'il y avait un bogue avant la version 2.1.4 de Yaf,
         * qui faisait que l'affichage était "bar";
         */
        $dummy = $this->getView()->render("index/index.phtml");
        echo $value;

        // Ne pas utiliser l'auto-affichage
        Yaf_Dispatcher::getInstance()->autoRender(FALSE);
    }
?>

Exemple #2 Exemple avec template()

<html>
 <head>
  <title><?php echo $foo;  $foo = "changed"; ?></title>
 </head>
<body>
</body>
</html>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/* L'accès à l'index du contrôleur résultera en : */
changed

Voir aussi

  • Yaf_View_Simple::assign() - Assigne une ou plusieurs variables
  • Yaf_View_Simple::__set() - Définit une valeur du moteur


Efface les valeurs assignées

  • « Yaf_View_Simple::assignRef
  • Yaf_View_Simple::__construct »
  • PHP Manual
  • Yaf_View_Simple
  • Efface les valeurs assignées

Yaf_View_Simple::clear

(Yaf >=2.2.0)

Yaf_View_Simple::clear — Efface les valeurs assignées

Description

public bool Yaf_View_Simple::clear ([ string $name ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Nom de la variable assignée.

Si vide, toutes les variables assignées seront effacées.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_View_Simple::clear()

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $this->getView()->clear("foo")->clear("bar"); // Efface "foo" et "bar"
        $this->_view->clear(); // Efface toutes les variables assignées
    }
?>

Voir aussi

  • Yaf_View_Simple::assignRef() - Le but de assignRef
  • Yaf_View_Interface::assign() - Assigne une valeur au moteur de rendu
  • Yaf_View_Simple::__set() - Définit une valeur du moteur


Constructeur de la classe Yaf_View_Simple

  • « Yaf_View_Simple::clear
  • Yaf_View_Simple::display »
  • PHP Manual
  • Yaf_View_Simple
  • Constructeur de la classe Yaf_View_Simple

Yaf_View_Simple::__construct

(Yaf >=1.0.0)

Yaf_View_Simple::__construct — Constructeur de la classe Yaf_View_Simple

Description

final public Yaf_View_Simple::__construct ( string $template_dir [, array $options ] )

Liste de paramètres

template_dir

Le dossier de base contenant les templates ; par défaut, c'est APPLICATION . "/views".

options

Options pour le moteur, depuis Yaf 2.1.13, vous pouvez utiliser
      la balise courte "<?=$var?>" dans votre template (suivant "short_open_tag"),
      ainsi devient disponible une option nommée "short_tag", que vous pouvez
      désactiver pour ne pas utiliser short_tag dans vos templates.

Exemples

Exemple #1 Exemple avec Yaf_View_Simple::__constructor()

<?php
   define ("TEMPLATE_DIRECTORY", APPLICATOIN_PATH . '/views');
   $view = new Yaf_View_Simple(TEMPLATE_DIRECTORY, array(
                           'short_tag' => false //N'autorise pas l'utilisation des balises courtes dans le template
   ));
?>

Valeurs de retour


Construit et affiche

  • « Yaf_View_Simple::__construct
  • Yaf_View_Simple::eval »
  • PHP Manual
  • Yaf_View_Simple
  • Construit et affiche

Yaf_View_Simple::display

(Yaf >=1.0.0)

Yaf_View_Simple::display — Construit et affiche

Description

public bool Yaf_View_Simple::display ( string $tpl [, array $tpl_vars ] )

Construit le template et affiche immédiatement le résultat.

Liste de paramètres

tpl

tpl_vars

Valeurs de retour


Évalue un template

  • « Yaf_View_Simple::display
  • Yaf_View_Simple::__get »
  • PHP Manual
  • Yaf_View_Simple
  • Évalue un template

Yaf_View_Simple::eval

(Yaf >=2.2.0)

Yaf_View_Simple::eval — Évalue un template

Description

public string Yaf_View_Simple::eval ( string $tpl_content [, array $tpl_vars ] )

Évalue un template et retourne le résultat.

Liste de paramètres

tpl_content

Le template.

tpl_vars

Valeurs de retour


Récupère une variable assignée

  • « Yaf_View_Simple::eval
  • Yaf_View_Simple::getScriptPath »
  • PHP Manual
  • Yaf_View_Simple
  • Récupère une variable assignée

Yaf_View_Simple::__get

(Yaf >=1.0.0)

Yaf_View_Simple::__get — Récupère une variable assignée

Description

public void Yaf_View_Simple::__get ([ string $name ] )

Récupère une variable assignée.

Note:

Ce paramètre peut être vide depuis la version 2.1.11

Liste de paramètres

name

Le nom de la variable assignée.

Si ce paramètre est vide, toutes les variables assignées seront retournées.

Valeurs de retour


Récupère le dossier contenant les templates

  • « Yaf_View_Simple::__get
  • Yaf_View_Simple::__isset »
  • PHP Manual
  • Yaf_View_Simple
  • Récupère le dossier contenant les templates

Yaf_View_Simple::getScriptPath

(Yaf >=1.0.0)

Yaf_View_Simple::getScriptPath — Récupère le dossier contenant les templates

Description

public string Yaf_View_Simple::getScriptPath ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __isset

  • « Yaf_View_Simple::getScriptPath
  • Yaf_View_Simple::render »
  • PHP Manual
  • Yaf_View_Simple
  • Le but de __isset

Yaf_View_Simple::__isset

(Yaf >=1.0.0)

Yaf_View_Simple::__isset — Le but de __isset

Description

public void Yaf_View_Simple::__isset ( string $name )

Liste de paramètres

name

Valeurs de retour


Construit un template

  • « Yaf_View_Simple::__isset
  • Yaf_View_Simple::__set »
  • PHP Manual
  • Yaf_View_Simple
  • Construit un template

Yaf_View_Simple::render

(Yaf >=1.0.0)

Yaf_View_Simple::render — Construit un template

Description

public string Yaf_View_Simple::render ( string $tpl [, array $tpl_vars ] )

Construit un template et retourne le résultat.

Liste de paramètres

tpl

tpl_vars

Valeurs de retour


Définit une valeur du moteur

  • « Yaf_View_Simple::render
  • Yaf_View_Simple::setScriptPath »
  • PHP Manual
  • Yaf_View_Simple
  • Définit une valeur du moteur

Yaf_View_Simple::__set

(Yaf >=1.0.0)

Yaf_View_Simple::__set — Définit une valeur du moteur

Description

public void Yaf_View_Simple::__set ( string $name , mixed $value )

C'est une alternative à la méthode Yaf_View_Simple::assign(), mais aussi la façon la plus simple de définir une valeur.

Liste de paramètres

name

Le nom d'une valeur, sous forme de chaîne de caractères.

value

Différents types de valeur.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_View_Simple::__set()

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $this->getView()->foo = "bar"; // Identique à assign("foo", "bar");
    }
?>

Voir aussi

  • Yaf_View_Simple::assignRef() - Le but de assignRef
  • Yaf_View_Interface::assign() - Assigne une valeur au moteur de rendu


Définit le dossier contenant les templates

  • « Yaf_View_Simple::__set
  • Yaf_Loader »
  • PHP Manual
  • Yaf_View_Simple
  • Définit le dossier contenant les templates

Yaf_View_Simple::setScriptPath

(Yaf >=1.0.0)

Yaf_View_Simple::setScriptPath — Définit le dossier contenant les templates

Description

public bool Yaf_View_Simple::setScriptPath ( string $template_dir )

Liste de paramètres

template_dir

Valeurs de retour


La classe Yaf_Loader

(Yaf >=1.0.0)

Introduction

Yaf_Loader introduit une solution d'autochargement compréhensive pour Yaf.

La première fois qu'une instance de la classe Yaf_Application est récupérée, Yaf_Loader instancie un squelette, et l'enregistre avec spl_autoload. Vous pouvez récupérer cette instance en utilisant la méthode Yaf_Loader::getInstance().

Yaf_Loader tente de charger une classe en une fois ; si cette tentative échoue, et suivant la configuration de yaf.use_spl_auload (si défini à On), Yaf_Loader::autoload() retournera FALSE, rendant ainsi la main aux autres fonctions d'auto-chargement. Si cette option de configuration vaut Off (par défaut), Yaf_Loader::autoload() retournera TRUE,et, le plus important, une alerte bien utile sera émise (très utile pour trouver la classe qui n'arrive pas à se charger).

Note:

Veuillez conserver yaf.use_spl_autoload à Off à moins qu'il y a d'autres bibliothèques qui possèdent son propre système de chargement et puissent ré-écrire ce comportement.

Par défaut, Yaf_Loader se charge de toutes les bibliothèques (classe définie par des scripts) stockées dans le dossier global des bibliothèques, quui est défini dans le fichier php.ini(yaf.library).

Si vous voulez que la classe Yaf_Loader cherche des classes (ou des bibliothèques) dans le dossier des classes locales (qui est défini dans le fichier application.ini, et par défaut, vaut application.directory . "/library"), vous devez enregistrer le préfixe de la classe en utilisant la méthode Yaf_Loader::registerLocalNameSpace()

Voyons quelques exemples (en supposant que APPLICATION_PATH vaut application.directory):

Exemple #1 Exemple de configuration

// Supposons les options de configuration du php.ini suivantes :
yaf.library = "/global_dir"

// Supposons les options de configuration de application.ini suivantes :
application.library = APPLICATION_PATH "/library"
Supposons que l'espace de noms suivant est enregistré :

Exemple #2 Enregistrement de localnamespace

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
     public function _initLoader($dispatcher) {
          Yaf_Loader::getInstance()->registerLocalNameSpace(array("Foo", "Bar"));
     }
?>
Alors, les exemples d'autochargements seront :

Exemple #3 Load class example

class Foo_Bar_Test =>
  // APPLICATION_PATH/library/Foo/Bar/Test.php

class GLO_Name  =>
  // /global_dir/Glo/Name.php

class BarNon_Test
  // /global_dir/Barnon/Test.php
Depuis PHP 5.3, vous pouvez utiliser les espaces de noms :

Exemple #4 Exemple de chargement de classe via des espaces de noms

class \Foo\Bar\Dummy =>
   // APPLICATION_PATH/library/Foo/Bar/Dummy.php

class \FooBar\Bar\Dummy =>
   // /global_dir/FooBar/Bar/Dummy.php

Vous pouvez noter que tous les noms de dossiers commençent par une lettre majuscule ; vous pouvez utiliser une lettre minuscule en définissant l'option de configuration yaf.lowcase_path = On dans le fichier php.ini.

Yaf_Loader est également prévu pour charger les classes MVC, et la règle est :

Exemple #5 Exemple de chargement de classe MVC

Controller Classes =>
// APPLICATION_PATH/controllers/

Model Classes =>
// APPLICATION_PATH/models/

Plugin Classes =>
// APPLICATION_PATH/plugins/
Yaf identifie un suffixe de classe (comportement par défaut, vous pouvez également modifier ce comportement via l'option de configuration yaf.name_suffix) pour décider si c'est une classe MVC :

Exemple #6 Distinctions d'une classe MVC

Controller Classes =>
    // ***Controller

Model Classes =>
    // ***Model

Plugin Classes =>
    // ***Plugin
quelques exemples :

Exemple #7 Exemple de chargement MVC

class IndexController
    // APPLICATION_PATH/controllers/Index.php

class DataModel =>
   // APPLICATION_PATH/models/Data.php

class DummyPlugin =>
  // APPLICATION_PATH/plugins/Dummy.php

class A_B_TestModel =>
  // APPLICATION_PATH/models/A/B/Test.php

Note:

Depuis la version 2.1.18, Yaf supporte l'autochargement des constructeurs pour les scripts utilisateurs (ce qui signifie que l'autochargement est déclenché par un script PHP utilisateur, i.e. accès à une propriété statique du contrôleur dans le Bootstrap ou les plugins), mais l'autochargement tente uniquement de localiser le script contenant la classe du contrôleur dans le dossier par défaut du module, qui est "APPLICATION_PATH/controllers/".

aussi, le dossier sera affecté par yaf.lowcase_path.

Synopsis de la classe

Yaf_Loader {
/* Propriétés */
protected $_local_ns ;
protected $_library ;
protected $_global_library ;
static $_instance ;
/* Méthodes */
public void autoload ( void )
public void clearLocalNamespace ( void )
private void __clone ( void )
private __construct ( void )
public static void getInstance ( void )
public Yaf_Loader getLibraryPath ([ bool $is_global = false ] )
public void getLocalNamespace ( void )
public static void import ( void )
public void isLocalName ( void )
public void registerLocalNamespace ( mixed $prefix )
public Yaf_Loader setLibraryPath ( string $directory [, bool $is_global = false ] )
private void __sleep ( void )
private void __wakeup ( void )
}

Propriétés

_local_ns

_library

Par défaut, cette valeur vaut application.directory . "/library" ; vous pouvez modifier ce comportement soit via l'option de configuration application.ini(application.library), soit en appelant la méthode Yaf_Loader::setLibraryPath().

_global_library

_instance

Sommaire

  • Yaf_Loader::autoload — Le but de autoload
  • Yaf_Loader::clearLocalNamespace — Le but de clearLocalNamespace
  • Yaf_Loader::__clone — Le but de __clone
  • Yaf_Loader::__construct — Le but de __construct
  • Yaf_Loader::getInstance — Le but de getInstance
  • Yaf_Loader::getLibraryPath — Récupère le chemin de la bibliothèque
  • Yaf_Loader::getLocalNamespace — Le but de getLocalNamespace
  • Yaf_Loader::import — Le but de import
  • Yaf_Loader::isLocalName — Le but de isLocalName
  • Yaf_Loader::registerLocalNamespace — Enregistre le préfixe local de la classe
  • Yaf_Loader::setLibraryPath — Modifie le chemin de la bibliothèque
  • Yaf_Loader::__sleep — Le but de __sleep
  • Yaf_Loader::__wakeup — Le but de __wakeup


Le but de autoload

  • « Yaf_Loader
  • Yaf_Loader::clearLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • Le but de autoload

Yaf_Loader::autoload

(Yaf >=1.0.0)

Yaf_Loader::autoload — Le but de autoload

Description

public void Yaf_Loader::autoload ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de clearLocalNamespace

  • « Yaf_Loader::autoload
  • Yaf_Loader::__clone »
  • PHP Manual
  • Yaf_Loader
  • Le but de clearLocalNamespace

Yaf_Loader::clearLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::clearLocalNamespace — Le but de clearLocalNamespace

Description

public void Yaf_Loader::clearLocalNamespace ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __clone

  • « Yaf_Loader::clearLocalNamespace
  • Yaf_Loader::__construct »
  • PHP Manual
  • Yaf_Loader
  • Le but de __clone

Yaf_Loader::__clone

(Yaf >=1.0.0)

Yaf_Loader::__clone — Le but de __clone

Description

private void Yaf_Loader::__clone ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __construct

  • « Yaf_Loader::__clone
  • Yaf_Loader::getInstance »
  • PHP Manual
  • Yaf_Loader
  • Le but de __construct

Yaf_Loader::__construct

(Yaf >=1.0.0)

Yaf_Loader::__construct — Le but de __construct

Description

private Yaf_Loader::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getInstance

  • « Yaf_Loader::__construct
  • Yaf_Loader::getLibraryPath »
  • PHP Manual
  • Yaf_Loader
  • Le but de getInstance

Yaf_Loader::getInstance

(Yaf >=1.0.0)

Yaf_Loader::getInstance — Le but de getInstance

Description

public static void Yaf_Loader::getInstance ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le chemin de la bibliothèque

  • « Yaf_Loader::getInstance
  • Yaf_Loader::getLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • Récupère le chemin de la bibliothèque

Yaf_Loader::getLibraryPath

(Yaf >=2.1.4)

Yaf_Loader::getLibraryPath — Récupère le chemin de la bibliothèque

Description

public Yaf_Loader Yaf_Loader::getLibraryPath ([ bool $is_global = false ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getLocalNamespace

  • « Yaf_Loader::getLibraryPath
  • Yaf_Loader::import »
  • PHP Manual
  • Yaf_Loader
  • Le but de getLocalNamespace

Yaf_Loader::getLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::getLocalNamespace — Le but de getLocalNamespace

Description

public void Yaf_Loader::getLocalNamespace ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de import

  • « Yaf_Loader::getLocalNamespace
  • Yaf_Loader::isLocalName »
  • PHP Manual
  • Yaf_Loader
  • Le but de import

Yaf_Loader::import

(Yaf >=1.0.0)

Yaf_Loader::import — Le but de import

Description

public static void Yaf_Loader::import ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de isLocalName

  • « Yaf_Loader::import
  • Yaf_Loader::registerLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • Le but de isLocalName

Yaf_Loader::isLocalName

(Yaf >=1.0.0)

Yaf_Loader::isLocalName — Le but de isLocalName

Description

public void Yaf_Loader::isLocalName ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Enregistre le préfixe local de la classe

  • « Yaf_Loader::isLocalName
  • Yaf_Loader::setLibraryPath »
  • PHP Manual
  • Yaf_Loader
  • Enregistre le préfixe local de la classe

Yaf_Loader::registerLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::registerLocalNamespace — Enregistre le préfixe local de la classe

Description

public void Yaf_Loader::registerLocalNamespace ( mixed $prefix )

Enregistre le préfixe local de la classe ; Yaf_Loader va chercher les classes dans deux dossiers de bibliothèques : celui configuré via la directive de configuration application.library.directory(dans le fichier application.ini) qui est appelé 'dossier local de bibliothèques' et l'autre, configuré via la directive yaf.library (dans le fichier php.ini) qui est appelé 'dossier global de bibliothèques', vu qu'il peut être partagé par plusieurs applications sur le même serveur.

Lorsque l'auto-chargement est appelé, Yaf_Loader va déterminer quel dossier de bibliothèques la recherche doit s'effectuer en examinant le préfixe du nom de la classe demandée. Si le préfixe est enregistré comme local, alors la recherche se fera dans le dossier local de bibliothèques, sinon, la recherche se fera dans le dossier global de bibliothèques.

Note:

Si yaf.library n'est pas configuré, alors le dossier global de bibliothèques sera le dossier local de bibliothèques. Dans ce cas, tous les auto-chargements rechercheront les classes dans le dossier local de bibliothèques. Mais si vous voulez renforcer votre application Yaf, il est conseillé de toujours enregistrer vos propres classes comme classes locales.

Liste de paramètres

prefix

une chaîne ou un tableau de noms de préfixe de classe. Toutes les classes dont le préfixe est local seront chargées depuis un chemin vers une bibliothèque locale.

Valeurs de retour

Un booléen.

Exemples

Exemple #1 Exemple avec Yaf_Loader::registerLocalNamespace()

<?php
$loader = Yaf_Loader::getInstance('/local/library/', '/global/library');
$loader->registerLocalNamespace("Baidu");
$loader->registerLocalNamespace(array("Sina", "Weibo"));

$loader->autoload("Baidu_Name"); // cherche dans '/local/library/'
$loader->autoload("Sina");       // cherche dans '/local/library/'
$loader->autoload("Global_Name");// cherche dans '/global/library/'
$loader->autoload("Foo_Bar");    // cherche dans '/global/library/'

?>


Modifie le chemin de la bibliothèque

  • « Yaf_Loader::registerLocalNamespace
  • Yaf_Loader::__sleep »
  • PHP Manual
  • Yaf_Loader
  • Modifie le chemin de la bibliothèque

Yaf_Loader::setLibraryPath

(Yaf >=2.1.4)

Yaf_Loader::setLibraryPath — Modifie le chemin de la bibliothèque

Description

public Yaf_Loader Yaf_Loader::setLibraryPath ( string $directory [, bool $is_global = false ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __sleep

  • « Yaf_Loader::setLibraryPath
  • Yaf_Loader::__wakeup »
  • PHP Manual
  • Yaf_Loader
  • Le but de __sleep

Yaf_Loader::__sleep

(Yaf >=1.0.0)

Yaf_Loader::__sleep — Le but de __sleep

Description

private void Yaf_Loader::__sleep ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __wakeup

  • « Yaf_Loader::__sleep
  • Yaf_Plugin_Abstract »
  • PHP Manual
  • Yaf_Loader
  • Le but de __wakeup

Yaf_Loader::__wakeup

(Yaf >=1.0.0)

Yaf_Loader::__wakeup — Le but de __wakeup

Description

private void Yaf_Loader::__wakeup ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe Yaf_Plugin_Abstract

(Yaf >=1.0.0)

Introduction

Les plugins vous apportent la possibilité d'étendre et de personnaliser facilement le framework.

Les plugins sont des classes. La définition actuelle d'une classe varie suivant le composant -- vous pouvez avoir besoin d'implémenter cette interface, mais il s'agit belle et bien d'une classe en tant que tel.

Un plugin peut être chargé dans Yaf en utilisant la méthode Yaf_Dispatcher::registerPlugin(), une fois enregistré. Toutes les méthodes implémentées par le plugin sur cette interface seront appelées au moment voulu.

Exemples

Exemple #1 Exemple d'un plugin

<?php
   /* La classe bootstrap doit être définie ici : ./application/Bootstrap.php */
   class Bootstrap extends Yaf_Bootstrap_Abstract {
        public function _initPlugin(Yaf_Dispatcher $dispatcher) {
            /* Enregistre un plugin */
            $dispatcher->registerPlugin(new TestPlugin());
        }
   }

   /* La classe du plugin doit être placée ici : ./application/plugins/ */
   class TestPlugin extends Yaf_Plugin_Abstract {
        public function routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            /* avant le routage, l'utilisateur peut faire quelques ré-écritures d'URL */
            var_dump("routerStartup");
        }
        public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            /* le routage est terminé, l'utilisateur peut vérifier l'identifiant */
            var_dump("routerShutdown");
        }
        public function dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            var_dump("dispatchLoopStartup");
        }
        public function preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            var_dump("preDispatch");
        }
        public function postDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            var_dump("postDispatch");
        }
        public function dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            /* Dernier partie : l'utilisateur peut s'identifier ou implémenter l'interface */
            var_dump("dispatchLoopShutdown");
        }
   }

   Class IndexController extends Yaf_Controller_Abstract {
        public function indexAction() {
            return FALSE; //prevent rendering
        }
   }

   $config = array(
       "application" => array(
           "directory" => dirname(__FILE__) . "/application/",
       ),
   );

   $app = new Yaf_Application($config);
   $app->bootstrap()->run();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(13) "routerStartup"
string(14) "routerShutdown"
string(19) "dispatchLoopStartup"
string(11) "preDispatch"
string(12) "postDispatch"
string(20) "dispatchLoopShutdown"

Synopsis de la classe

Yaf_Plugin_Abstract {
/* Méthodes */
public void dispatchLoopShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void dispatchLoopStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void postDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void preDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void preResponse ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void routerShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void routerStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
}

Sommaire

  • Yaf_Plugin_Abstract::dispatchLoopShutdown — Le but de dispatchLoopShutdown
  • Yaf_Plugin_Abstract::dispatchLoopStartup — Le but de dispatchLoopStartup
  • Yaf_Plugin_Abstract::postDispatch — Le but de postDispatch
  • Yaf_Plugin_Abstract::preDispatch — Le but de preDispatch
  • Yaf_Plugin_Abstract::preResponse — Le but de preResponse
  • Yaf_Plugin_Abstract::routerShutdown — Le but de routerShutdown
  • Yaf_Plugin_Abstract::routerStartup — Hook RouterStartup


Le but de dispatchLoopShutdown

  • « Yaf_Plugin_Abstract
  • Yaf_Plugin_Abstract::dispatchLoopStartup »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Le but de dispatchLoopShutdown

Yaf_Plugin_Abstract::dispatchLoopShutdown

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::dispatchLoopShutdown — Le but de dispatchLoopShutdown

Description

public void Yaf_Plugin_Abstract::dispatchLoopShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

C'est le dernier hook dans le système hook de Yaf ; si un plugin personnalisé implémente cette méthode, alors elle sera appelé lorsque la boucle d'attribution aura terminé.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

request

response

Valeurs de retour

Voir aussi

  • Yaf_Plugin_Abstract::routerStartup() - Hook RouterStartup
  • Yaf_Plugin_Abstract::routerShutdown() - Le but de routerShutdown
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Le but de dispatchLoopStartup
  • Yaf_Plugin_Abstract::preDispatch() - Le but de preDispatch
  • Yaf_Plugin_Abstract::postDispatch() - Le but de postDispatch


Le but de dispatchLoopStartup

  • « Yaf_Plugin_Abstract::dispatchLoopShutdown
  • Yaf_Plugin_Abstract::postDispatch »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Le but de dispatchLoopStartup

Yaf_Plugin_Abstract::dispatchLoopStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::dispatchLoopStartup — Le but de dispatchLoopStartup

Description

public void Yaf_Plugin_Abstract::dispatchLoopStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

request

response

Valeurs de retour


Le but de postDispatch

  • « Yaf_Plugin_Abstract::dispatchLoopStartup
  • Yaf_Plugin_Abstract::preDispatch »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Le but de postDispatch

Yaf_Plugin_Abstract::postDispatch

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::postDispatch — Le but de postDispatch

Description

public void Yaf_Plugin_Abstract::postDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

request

response

Valeurs de retour


Le but de preDispatch

  • « Yaf_Plugin_Abstract::postDispatch
  • Yaf_Plugin_Abstract::preResponse »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Le but de preDispatch

Yaf_Plugin_Abstract::preDispatch

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::preDispatch — Le but de preDispatch

Description

public void Yaf_Plugin_Abstract::preDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

request

response

Valeurs de retour


Le but de preResponse

  • « Yaf_Plugin_Abstract::preDispatch
  • Yaf_Plugin_Abstract::routerShutdown »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Le but de preResponse

Yaf_Plugin_Abstract::preResponse

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::preResponse — Le but de preResponse

Description

public void Yaf_Plugin_Abstract::preResponse ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

request

response

Valeurs de retour


Le but de routerShutdown

  • « Yaf_Plugin_Abstract::preResponse
  • Yaf_Plugin_Abstract::routerStartup »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Le but de routerShutdown

Yaf_Plugin_Abstract::routerShutdown

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::routerShutdown — Le but de routerShutdown

Description

public void Yaf_Plugin_Abstract::routerShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

Ce hook sera lancé lorsque le processus route sera terminé ; il est habituellement utilisé pour une vérification du login.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

request

response

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Plugin_Abstract::routerShutdown()

<?php
class UserInitPlugin extends Yaf_Plugin_Abstract {

    public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
        $controller = $request->getControllerName();

        /**
         * L'utilisation du controller d'accès n'est pas nécessaire pour les APIs
         */
        if (in_array(strtolower($controller), array(
            'api',
        ))) {
            return TRUE;
        }

        if (Yaf_Session::getInstance()->has("login")) {
            return TRUE;
        }

        /* Echec de la varification des accès, ré-identification nécessaire */
        $response->redirect("http://yourdomain.com/login/");
        return FALSE;
    }
?>

Voir aussi

  • Yaf_Plugin_Abstract::routerStartup() - Hook RouterStartup
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Le but de dispatchLoopStartup
  • Yaf_Plugin_Abstract::preDispatch() - Le but de preDispatch
  • Yaf_Plugin_Abstract::postDispatch() - Le but de postDispatch
  • Yaf_Plugin_Abstract::dispatchLoopShutdown() - Le but de dispatchLoopShutdown


Hook RouterStartup

  • « Yaf_Plugin_Abstract::routerShutdown
  • Yaf_Registry »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Hook RouterStartup

Yaf_Plugin_Abstract::routerStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::routerStartup — Hook RouterStartup

Description

public void Yaf_Plugin_Abstract::routerStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

C'est le premier hook dans le plugin système des hooks Yaf ; si un plugin personnalisé implémente cette méthode, alors elle sera appelée avant de router la requête.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

request

response

Valeurs de retour

Voir aussi

  • Yaf_Plugin_Abstract::routerShutdown() - Le but de routerShutdown
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Le but de dispatchLoopStartup
  • Yaf_Plugin_Abstract::preDispatch() - Le but de preDispatch
  • Yaf_Plugin_Abstract::postDispatch() - Le but de postDispatch
  • Yaf_Plugin_Abstract::dispatchLoopShutdown() - Le but de dispatchLoopShutdown


La classe Yaf_Registry

(Yaf >=1.0.0)

Introduction

Toutes les méthodes de la classe Yaf_Registry sont déclarées en statique, les rendant ainsi accessible de façon universelle. Ceci permet de récupérer ou de définir des données personnalisées depuis n'importe quel endroit de votre code.

Synopsis de la classe

Yaf_Registry {
/* Propriétés */
static $_instance ;
protected $_entries ;
/* Méthodes */
private void __clone ( void )
private __construct ( void )
public static void del ( string $name )
public static mixed get ( string $name )
public static bool has ( string $name )
public static bool set ( string $name , string $value )
}

Propriétés

_instance

_entries

Sommaire

  • Yaf_Registry::__clone — Le but de __clone
  • Yaf_Registry::__construct — Constructeur de la classe Yaf_Registry
  • Yaf_Registry::del — Supprime un élément du registre
  • Yaf_Registry::get — Récupère un élément depuis le registre
  • Yaf_Registry::has — Vérifie si un élément existe
  • Yaf_Registry::set — Ajoute un élément au registre


Le but de __clone

  • « Yaf_Registry
  • Yaf_Registry::__construct »
  • PHP Manual
  • Yaf_Registry
  • Le but de __clone

Yaf_Registry::__clone

(Yaf >=1.0.0)

Yaf_Registry::__clone — Le but de __clone

Description

private void Yaf_Registry::__clone ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Constructeur de la classe Yaf_Registry

  • « Yaf_Registry::__clone
  • Yaf_Registry::del »
  • PHP Manual
  • Yaf_Registry
  • Constructeur de la classe Yaf_Registry

Yaf_Registry::__construct

(Yaf >=1.0.0)

Yaf_Registry::__construct — Constructeur de la classe Yaf_Registry

Description

private Yaf_Registry::__construct ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Supprime un élément du registre

  • « Yaf_Registry::__construct
  • Yaf_Registry::get »
  • PHP Manual
  • Yaf_Registry
  • Supprime un élément du registre

Yaf_Registry::del

(Yaf >=1.0.0)

Yaf_Registry::del — Supprime un élément du registre

Description

public static void Yaf_Registry::del ( string $name )

Supprime un élément du registre.

Liste de paramètres

name

Valeurs de retour


Récupère un élément depuis le registre

  • « Yaf_Registry::del
  • Yaf_Registry::has »
  • PHP Manual
  • Yaf_Registry
  • Récupère un élément depuis le registre

Yaf_Registry::get

(Yaf >=1.0.0)

Yaf_Registry::get — Récupère un élément depuis le registre

Description

public static mixed Yaf_Registry::get ( string $name )

Récupère un élément depuis le registre.

Liste de paramètres

name

Valeurs de retour


Vérifie si un élément existe

  • « Yaf_Registry::get
  • Yaf_Registry::set »
  • PHP Manual
  • Yaf_Registry
  • Vérifie si un élément existe

Yaf_Registry::has

(Yaf >=1.0.0)

Yaf_Registry::has — Vérifie si un élément existe

Description

public static bool Yaf_Registry::has ( string $name )

Vérifie si un élément existe.

Liste de paramètres

name

Valeurs de retour


Ajoute un élément au registre

  • « Yaf_Registry::has
  • Yaf_Request_Abstract »
  • PHP Manual
  • Yaf_Registry
  • Ajoute un élément au registre

Yaf_Registry::set

(Yaf >=1.0.0)

Yaf_Registry::set — Ajoute un élément au registre

Description

public static bool Yaf_Registry::set ( string $name , string $value )

Ajoute un élément au registre.

Liste de paramètres

name

value

Valeurs de retour


La classe Yaf_Request_Abstract

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Request_Abstract {
/* Constants */
const string SCHEME_HTTP = http ;
const string SCHEME_HTTPS = https ;
/* Propriétés */
public $module ;
public $controller ;
public $action ;
public $method ;
protected $params ;
protected $language ;
protected $_exception ;
protected $_base_uri ;
protected $uri ;
protected $dispatched ;
protected $routed ;
/* Méthodes */
public void getActionName ( void )
public void getBaseUri ( void )
public void getControllerName ( void )
public void getEnv ( string $name [, string $default ] )
public void getException ( void )
public void getLanguage ( void )
public void getMethod ( void )
public void getModuleName ( void )
public void getParam ( string $name [, string $default ] )
public void getParams ( void )
public void getRequestUri ( void )
public void getServer ( string $name [, string $default ] )
public void isCli ( void )
public void isDispatched ( void )
public void isGet ( void )
public void isHead ( void )
public void isOptions ( void )
public void isPost ( void )
public void isPut ( void )
public void isRouted ( void )
public void isXmlHttpRequest ( void )
public void setActionName ( string $action )
public bool setBaseUri ( string $uir )
public void setControllerName ( string $controller )
public void setDispatched ( void )
public void setModuleName ( string $module )
public void setParam ( string $name [, string $value ] )
public void setRequestUri ( string $uir )
public void setRouted ([ string $flag ] )
}

Propriétés

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Constantes pré-définies

Yaf_Request_Abstract::SCHEME_HTTP

Yaf_Request_Abstract::SCHEME_HTTPS

Sommaire

  • Yaf_Request_Abstract::getActionName — Le but de getActionName
  • Yaf_Request_Abstract::getBaseUri — Le but de getBaseUri
  • Yaf_Request_Abstract::getControllerName — Le but de getControllerName
  • Yaf_Request_Abstract::getEnv — Récupère une variable ENV
  • Yaf_Request_Abstract::getException — Le but de getException
  • Yaf_Request_Abstract::getLanguage — Le but de getLanguage
  • Yaf_Request_Abstract::getMethod — Le but de getMethod
  • Yaf_Request_Abstract::getModuleName — Le but de getModuleName
  • Yaf_Request_Abstract::getParam — Le but de getParam
  • Yaf_Request_Abstract::getParams — Le but de getParams
  • Yaf_Request_Abstract::getRequestUri — Le but de getRequestUri
  • Yaf_Request_Abstract::getServer — Récupère une variable SERVER
  • Yaf_Request_Abstract::isCli — Le but de isCli
  • Yaf_Request_Abstract::isDispatched — Le but de isDispatched
  • Yaf_Request_Abstract::isGet — Le but de isGet
  • Yaf_Request_Abstract::isHead — Le but de isHead
  • Yaf_Request_Abstract::isOptions — Le but de isOptions
  • Yaf_Request_Abstract::isPost — Le but de isPost
  • Yaf_Request_Abstract::isPut — Le but de isPut
  • Yaf_Request_Abstract::isRouted — Le but de isRouted
  • Yaf_Request_Abstract::isXmlHttpRequest — Le but de isXmlHttpRequest
  • Yaf_Request_Abstract::setActionName — Le but de setActionName
  • Yaf_Request_Abstract::setBaseUri — Défini l'URI de base
  • Yaf_Request_Abstract::setControllerName — Le but de setControllerName
  • Yaf_Request_Abstract::setDispatched — Le but de setDispatched
  • Yaf_Request_Abstract::setModuleName — Le but de setModuleName
  • Yaf_Request_Abstract::setParam — Le but de setParam
  • Yaf_Request_Abstract::setRequestUri — Le but de setRequestUri
  • Yaf_Request_Abstract::setRouted — Le but de setRouted


Le but de getActionName

  • « Yaf_Request_Abstract
  • Yaf_Request_Abstract::getBaseUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de getActionName

Yaf_Request_Abstract::getActionName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getActionName — Le but de getActionName

Description

public void Yaf_Request_Abstract::getActionName ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getBaseUri

  • « Yaf_Request_Abstract::getActionName
  • Yaf_Request_Abstract::getControllerName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de getBaseUri

Yaf_Request_Abstract::getBaseUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::getBaseUri — Le but de getBaseUri

Description

public void Yaf_Request_Abstract::getBaseUri ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getControllerName

  • « Yaf_Request_Abstract::getBaseUri
  • Yaf_Request_Abstract::getEnv »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de getControllerName

Yaf_Request_Abstract::getControllerName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getControllerName — Le but de getControllerName

Description

public void Yaf_Request_Abstract::getControllerName ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère une variable ENV

  • « Yaf_Request_Abstract::getControllerName
  • Yaf_Request_Abstract::getException »
  • PHP Manual
  • Yaf_Request_Abstract
  • Récupère une variable ENV

Yaf_Request_Abstract::getEnv

(Yaf >=1.0.0)

Yaf_Request_Abstract::getEnv — Récupère une variable ENV

Description

public void Yaf_Request_Abstract::getEnv ( string $name [, string $default ] )

Récupère une variable ENV.

Liste de paramètres

name

Le nom de la variable.

default

Si ce paramètre est fourni, la valeur sera retournée si la variable ne peut pas être récupérée.

Valeurs de retour

Voir aussi

  • Yaf_Request_Abstract::getServer
  • Yaf_Request_Abstract::getParam


Le but de getException

  • « Yaf_Request_Abstract::getEnv
  • Yaf_Request_Abstract::getLanguage »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de getException

Yaf_Request_Abstract::getException

(Yaf >=1.0.0)

Yaf_Request_Abstract::getException — Le but de getException

Description

public void Yaf_Request_Abstract::getException ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getLanguage

  • « Yaf_Request_Abstract::getException
  • Yaf_Request_Abstract::getMethod »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de getLanguage

Yaf_Request_Abstract::getLanguage

(Yaf >=1.0.0)

Yaf_Request_Abstract::getLanguage — Le but de getLanguage

Description

public void Yaf_Request_Abstract::getLanguage ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getMethod

  • « Yaf_Request_Abstract::getLanguage
  • Yaf_Request_Abstract::getModuleName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de getMethod

Yaf_Request_Abstract::getMethod

(Yaf >=1.0.0)

Yaf_Request_Abstract::getMethod — Le but de getMethod

Description

public void Yaf_Request_Abstract::getMethod ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getModuleName

  • « Yaf_Request_Abstract::getMethod
  • Yaf_Request_Abstract::getParam »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de getModuleName

Yaf_Request_Abstract::getModuleName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getModuleName — Le but de getModuleName

Description

public void Yaf_Request_Abstract::getModuleName ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getParam

  • « Yaf_Request_Abstract::getModuleName
  • Yaf_Request_Abstract::getParams »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de getParam

Yaf_Request_Abstract::getParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParam — Le but de getParam

Description

public void Yaf_Request_Abstract::getParam ( string $name [, string $default ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

default

Valeurs de retour


Le but de getParams

  • « Yaf_Request_Abstract::getParam
  • Yaf_Request_Abstract::getRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de getParams

Yaf_Request_Abstract::getParams

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParams — Le but de getParams

Description

public void Yaf_Request_Abstract::getParams ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getRequestUri

  • « Yaf_Request_Abstract::getParams
  • Yaf_Request_Abstract::getServer »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de getRequestUri

Yaf_Request_Abstract::getRequestUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::getRequestUri — Le but de getRequestUri

Description

public void Yaf_Request_Abstract::getRequestUri ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère une variable SERVER

  • « Yaf_Request_Abstract::getRequestUri
  • Yaf_Request_Abstract::isCli »
  • PHP Manual
  • Yaf_Request_Abstract
  • Récupère une variable SERVER

Yaf_Request_Abstract::getServer

(Yaf >=1.0.0)

Yaf_Request_Abstract::getServer — Récupère une variable SERVER

Description

public void Yaf_Request_Abstract::getServer ( string $name [, string $default ] )

Récupère une variable SERVER.

Liste de paramètres

name

Le nom de la variable.

default

Si ce paramètre est fourni, la valeur sera retournée si la variable ne peut pas être récupérée.

Valeurs de retour

Voir aussi

  • Yaf_Request_Abstract::getParam
  • Yaf_Request_Abstract::getEnv


Le but de isCli

  • « Yaf_Request_Abstract::getServer
  • Yaf_Request_Abstract::isDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de isCli

Yaf_Request_Abstract::isCli

(Yaf >=1.0.0)

Yaf_Request_Abstract::isCli — Le but de isCli

Description

public void Yaf_Request_Abstract::isCli ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de isDispatched

  • « Yaf_Request_Abstract::isCli
  • Yaf_Request_Abstract::isGet »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de isDispatched

Yaf_Request_Abstract::isDispatched

(Yaf >=1.0.0)

Yaf_Request_Abstract::isDispatched — Le but de isDispatched

Description

public void Yaf_Request_Abstract::isDispatched ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de isGet

  • « Yaf_Request_Abstract::isDispatched
  • Yaf_Request_Abstract::isHead »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de isGet

Yaf_Request_Abstract::isGet

(Yaf >=1.0.0)

Yaf_Request_Abstract::isGet — Le but de isGet

Description

public void Yaf_Request_Abstract::isGet ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de isHead

  • « Yaf_Request_Abstract::isGet
  • Yaf_Request_Abstract::isOptions »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de isHead

Yaf_Request_Abstract::isHead

(Yaf >=1.0.0)

Yaf_Request_Abstract::isHead — Le but de isHead

Description

public void Yaf_Request_Abstract::isHead ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de isOptions

  • « Yaf_Request_Abstract::isHead
  • Yaf_Request_Abstract::isPost »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de isOptions

Yaf_Request_Abstract::isOptions

(Yaf >=1.0.0)

Yaf_Request_Abstract::isOptions — Le but de isOptions

Description

public void Yaf_Request_Abstract::isOptions ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de isPost

  • « Yaf_Request_Abstract::isOptions
  • Yaf_Request_Abstract::isPut »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de isPost

Yaf_Request_Abstract::isPost

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPost — Le but de isPost

Description

public void Yaf_Request_Abstract::isPost ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de isPut

  • « Yaf_Request_Abstract::isPost
  • Yaf_Request_Abstract::isRouted »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de isPut

Yaf_Request_Abstract::isPut

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPut — Le but de isPut

Description

public void Yaf_Request_Abstract::isPut ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de isRouted

  • « Yaf_Request_Abstract::isPut
  • Yaf_Request_Abstract::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de isRouted

Yaf_Request_Abstract::isRouted

(Yaf >=1.0.0)

Yaf_Request_Abstract::isRouted — Le but de isRouted

Description

public void Yaf_Request_Abstract::isRouted ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de isXmlHttpRequest

  • « Yaf_Request_Abstract::isRouted
  • Yaf_Request_Abstract::setActionName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de isXmlHttpRequest

Yaf_Request_Abstract::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Abstract::isXmlHttpRequest — Le but de isXmlHttpRequest

Description

public void Yaf_Request_Abstract::isXmlHttpRequest ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de setActionName

  • « Yaf_Request_Abstract::isXmlHttpRequest
  • Yaf_Request_Abstract::setBaseUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de setActionName

Yaf_Request_Abstract::setActionName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setActionName — Le but de setActionName

Description

public void Yaf_Request_Abstract::setActionName ( string $action )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

action

Valeurs de retour


Défini l'URI de base

  • « Yaf_Request_Abstract::setActionName
  • Yaf_Request_Abstract::setControllerName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Défini l'URI de base

Yaf_Request_Abstract::setBaseUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::setBaseUri — Défini l'URI de base

Description

public bool Yaf_Request_Abstract::setBaseUri ( string $uir )

Défini l'URI de base utilisé lors de la phase de routage de la demande. Aussi, si une demande survient avec l'URI a/b/c, et que l'URI de base est "a/b", suel "/c" sera utilisé lors de la phase de routage.

Note:

Générallement, vous n'avez pas à le définir, Yaf va le déterminer automatiquement.

Liste de paramètres

uir

l'URI de base

Valeurs de retour

Retourne un booléen.


Le but de setControllerName

  • « Yaf_Request_Abstract::setBaseUri
  • Yaf_Request_Abstract::setDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de setControllerName

Yaf_Request_Abstract::setControllerName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setControllerName — Le but de setControllerName

Description

public void Yaf_Request_Abstract::setControllerName ( string $controller )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

controller

Valeurs de retour


Le but de setDispatched

  • « Yaf_Request_Abstract::setControllerName
  • Yaf_Request_Abstract::setModuleName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de setDispatched

Yaf_Request_Abstract::setDispatched

(Yaf >=1.0.0)

Yaf_Request_Abstract::setDispatched — Le but de setDispatched

Description

public void Yaf_Request_Abstract::setDispatched ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de setModuleName

  • « Yaf_Request_Abstract::setDispatched
  • Yaf_Request_Abstract::setParam »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de setModuleName

Yaf_Request_Abstract::setModuleName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setModuleName — Le but de setModuleName

Description

public void Yaf_Request_Abstract::setModuleName ( string $module )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

module

Valeurs de retour


Le but de setParam

  • « Yaf_Request_Abstract::setModuleName
  • Yaf_Request_Abstract::setRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de setParam

Yaf_Request_Abstract::setParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::setParam — Le but de setParam

Description

public void Yaf_Request_Abstract::setParam ( string $name [, string $value ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

value

Valeurs de retour


Le but de setRequestUri

  • « Yaf_Request_Abstract::setParam
  • Yaf_Request_Abstract::setRouted »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de setRequestUri

Yaf_Request_Abstract::setRequestUri

(Yaf >=2.1.0)

Yaf_Request_Abstract::setRequestUri — Le but de setRequestUri

Description

public void Yaf_Request_Abstract::setRequestUri ( string $uir )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

uir

Valeurs de retour


Le but de setRouted

  • « Yaf_Request_Abstract::setRequestUri
  • Yaf_Request_Http »
  • PHP Manual
  • Yaf_Request_Abstract
  • Le but de setRouted

Yaf_Request_Abstract::setRouted

(Yaf >=1.0.0)

Yaf_Request_Abstract::setRouted — Le but de setRouted

Description

public void Yaf_Request_Abstract::setRouted ([ string $flag ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flag

Valeurs de retour


La classe Yaf_Request_Http

(Yaf >=1.0.0)

Introduction

Toutes les requêtes depuis le client sont initialisées comme Yaf_Request_Http. Vous pouvez récupérer les diverses informations, tel que l'URI de requêtes et les paramètres POST via les méthodes de cette classe.

Note:

Pour des raisons de sécurité, $_GET/$_POST sont accessibles en lecture seule dans Yaf, ce qui signifie que si vous définissez une valeur à ces variables globales, vous ne pourrez pas les récupérer via les méthode Yaf_Request_Http::getQurey() ou Yaf_Request_Http::getPost().

Mais vous pouvez avoir des cas où cette fonctionalité est nécessaire, comme lors de test unitaire, par exemple. Aussi, Yaf peut être construit avec l'option --enable-yaf-debug, ce qui va permettre à Yaf de lire une valeur utilisateur définie par un script.

Dans ce cas, Yaf va émettre une alerte de niveau E_STRICT pour vous le rappeler : "Strict Standards: you are running yaf in debug mode".

Synopsis de la classe

Yaf_Request_Http extends Yaf_Request_Abstract {
/* Propriétés */
/* Méthodes */
private void __clone ( void )
public __construct ([ string $request_uri [, string $base_uri ]] )
public mixed get ( string $name [, string $default ] )
public mixed getCookie ( string $name [, string $default ] )
public void getFiles ( void )
public mixed getPost ( string $name [, string $default ] )
public mixed getQuery ( string $name [, string $default ] )
public void getRequest ( void )
public bool isXmlHttpRequest ( void )
/* Méthodes héritées */
public void Yaf_Request_Abstract::getActionName ( void )
public void Yaf_Request_Abstract::getBaseUri ( void )
public void Yaf_Request_Abstract::getControllerName ( void )
public void Yaf_Request_Abstract::getEnv ( string $name [, string $default ] )
public void Yaf_Request_Abstract::getException ( void )
public void Yaf_Request_Abstract::getLanguage ( void )
public void Yaf_Request_Abstract::getMethod ( void )
public void Yaf_Request_Abstract::getModuleName ( void )
public void Yaf_Request_Abstract::getParam ( string $name [, string $default ] )
public void Yaf_Request_Abstract::getParams ( void )
public void Yaf_Request_Abstract::getRequestUri ( void )
public void Yaf_Request_Abstract::getServer ( string $name [, string $default ] )
public void Yaf_Request_Abstract::isCli ( void )
public void Yaf_Request_Abstract::isDispatched ( void )
public void Yaf_Request_Abstract::isGet ( void )
public void Yaf_Request_Abstract::isHead ( void )
public void Yaf_Request_Abstract::isOptions ( void )
public void Yaf_Request_Abstract::isPost ( void )
public void Yaf_Request_Abstract::isPut ( void )
public void Yaf_Request_Abstract::isRouted ( void )
public void Yaf_Request_Abstract::isXmlHttpRequest ( void )
public void Yaf_Request_Abstract::setActionName ( string $action )
public bool Yaf_Request_Abstract::setBaseUri ( string $uir )
public void Yaf_Request_Abstract::setControllerName ( string $controller )
public void Yaf_Request_Abstract::setDispatched ( void )
public void Yaf_Request_Abstract::setModuleName ( string $module )
public void Yaf_Request_Abstract::setParam ( string $name [, string $value ] )
public void Yaf_Request_Abstract::setRequestUri ( string $uir )
public void Yaf_Request_Abstract::setRouted ([ string $flag ] )
}

Propriétés

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Sommaire

  • Yaf_Request_Http::__clone — Le but de __clone
  • Yaf_Request_Http::__construct — Constructeur de __construct
  • Yaf_Request_Http::get — Récupère la variable depuis le client
  • Yaf_Request_Http::getCookie — Récupère une variable Cookie
  • Yaf_Request_Http::getFiles — Le but de getFiles
  • Yaf_Request_Http::getPost — Récupère une variable POST
  • Yaf_Request_Http::getQuery — Récupère un paramètre de la requête
  • Yaf_Request_Http::getRequest — Le but de getRequest
  • Yaf_Request_Http::isXmlHttpRequest — Vérifie s'il s'agit d'une requête Ajax


Le but de __clone

  • « Yaf_Request_Http
  • Yaf_Request_Http::__construct »
  • PHP Manual
  • Yaf_Request_Http
  • Le but de __clone

Yaf_Request_Http::__clone

(Yaf >=1.0.0)

Yaf_Request_Http::__clone — Le but de __clone

Description

private void Yaf_Request_Http::__clone ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Constructeur de __construct

  • « Yaf_Request_Http::__clone
  • Yaf_Request_Http::get »
  • PHP Manual
  • Yaf_Request_Http
  • Constructeur de __construct

Yaf_Request_Http::__construct

(Yaf >=1.0.0)

Yaf_Request_Http::__construct — Constructeur de __construct

Description

public Yaf_Request_Http::__construct ([ string $request_uri [, string $base_uri ]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère la variable depuis le client

  • « Yaf_Request_Http::__construct
  • Yaf_Request_Http::getCookie »
  • PHP Manual
  • Yaf_Request_Http
  • Récupère la variable depuis le client

Yaf_Request_Http::get

(Yaf >=1.0.0)

Yaf_Request_Http::get — Récupère la variable depuis le client

Description

public mixed Yaf_Request_Http::get ( string $name [, string $default ] )

Récupère la variable depuis le client ; cette méthode va chercher le paramètre name dans les paramètres de la requête ; si le nom n'est pas trouvé, alors la recherche se poursuivra dans les variables POST, GET, Cookie, Server.

Liste de paramètres

name

Le nom de la variable.

default

Si ce paramètre est fourni, la valeur sera retournée si la variable ne peut pas être récupérée.

Valeurs de retour

Voir aussi

  • Yaf_Request_Http::getQuery
  • Yaf_Request_Http::getPost
  • Yaf_Request_Http::getCookie
  • Yaf_Request_Http::getServer
  • Yaf_Request_Http::getParam


Récupère une variable Cookie

  • « Yaf_Request_Http::get
  • Yaf_Request_Http::getFiles »
  • PHP Manual
  • Yaf_Request_Http
  • Récupère une variable Cookie

Yaf_Request_Http::getCookie

(Yaf >=1.0.0)

Yaf_Request_Http::getCookie — Récupère une variable Cookie

Description

public mixed Yaf_Request_Http::getCookie ( string $name [, string $default ] )

Récupère une variable Cookie.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Le nom du cookie.

default

Si ce paramètre est fourni, la valeur sera retournée si le cookie ne peut être récupéré.

Valeurs de retour

Voir aussi

  • Yaf_Request_Http::get
  • Yaf_Request_Http::getQuery
  • Yaf_Request_Http::getPost
  • Yaf_Request_Http::getServer
  • Yaf_Request_Http::getParam


Le but de getFiles

  • « Yaf_Request_Http::getCookie
  • Yaf_Request_Http::getPost »
  • PHP Manual
  • Yaf_Request_Http
  • Le but de getFiles

Yaf_Request_Http::getFiles

(Yaf >=1.0.0)

Yaf_Request_Http::getFiles — Le but de getFiles

Description

public void Yaf_Request_Http::getFiles ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère une variable POST

  • « Yaf_Request_Http::getFiles
  • Yaf_Request_Http::getQuery »
  • PHP Manual
  • Yaf_Request_Http
  • Récupère une variable POST

Yaf_Request_Http::getPost

(Yaf >=1.0.0)

Yaf_Request_Http::getPost — Récupère une variable POST

Description

public mixed Yaf_Request_Http::getPost ( string $name [, string $default ] )

Récupère une variable POST.

Liste de paramètres

name

Le nom de la variable.

default

Si ce paramètre est fourni, la valeur sera retournée lorsque la variable ne peut être récupérée.

Valeurs de retour

Voir aussi

  • Yaf_Request_Http::get
  • Yaf_Request_Http::getQuery
  • Yaf_Request_Http::getCookie
  • Yaf_Request_Http::getServer
  • Yaf_Request_Http::getParam


Récupère un paramètre de la requête

  • « Yaf_Request_Http::getPost
  • Yaf_Request_Http::getRequest »
  • PHP Manual
  • Yaf_Request_Http
  • Récupère un paramètre de la requête

Yaf_Request_Http::getQuery

(Yaf >=1.0.0)

Yaf_Request_Http::getQuery — Récupère un paramètre de la requête

Description

public mixed Yaf_Request_Http::getQuery ( string $name [, string $default ] )

Récupère une variable GET.

Liste de paramètres

name

Le nom de la variable.

default

Si ce paramètre est fourni, la valeur sera retournée si la variable ne peut être récupérée.

Valeurs de retour

Voir aussi

  • Yaf_Request_Http::get
  • Yaf_Request_Http::getPost
  • Yaf_Request_Http::getCookie
  • Yaf_Request_Http::getServer
  • Yaf_Request_Http::getParam


Le but de getRequest

  • « Yaf_Request_Http::getQuery
  • Yaf_Request_Http::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Http
  • Le but de getRequest

Yaf_Request_Http::getRequest

(Yaf >=1.0.0)

Yaf_Request_Http::getRequest — Le but de getRequest

Description

public void Yaf_Request_Http::getRequest ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Vérifie s'il s'agit d'une requête Ajax

  • « Yaf_Request_Http::getRequest
  • Yaf_Request_Simple »
  • PHP Manual
  • Yaf_Request_Http
  • Vérifie s'il s'agit d'une requête Ajax

Yaf_Request_Http::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Http::isXmlHttpRequest — Vérifie s'il s'agit d'une requête Ajax

Description

public bool Yaf_Request_Http::isXmlHttpRequest ( void )

Vérifie s'il s'agit d'une requête Ajax.

Note:

Cette méthode dépend de l'en-tête de la requête : HTTP_X_REQUESTED_WITH, quelques bibliothèques Javascript ne définissent pas cet en-tête lors d'une requête Ajax.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe Yaf_Request_Simple

(Yaf >=1.0.0)

Introduction

Yaf_Request_Simple est particulièrement utilisé pour les tests, i.e. pour simuler des requêtes spécifiques en mode CLI.

Synopsis de la classe

Yaf_Request_Simple extends Yaf_Request_Abstract {
/* Constants */
const string SCHEME_HTTP = http ;
const string SCHEME_HTTPS = https ;
/* Propriétés */
/* Méthodes */
private void __clone ( void )
public __construct ([ string $method [, string $module [, string $controller [, string $action [, array $params ]]]]] )
public void get ( void )
public void getCookie ( void )
public void getFiles ( void )
public void getPost ( void )
public void getQuery ( void )
public void getRequest ( void )
public void isXmlHttpRequest ( void )
/* Méthodes héritées */
public void Yaf_Request_Abstract::getActionName ( void )
public void Yaf_Request_Abstract::getBaseUri ( void )
public void Yaf_Request_Abstract::getControllerName ( void )
public void Yaf_Request_Abstract::getEnv ( string $name [, string $default ] )
public void Yaf_Request_Abstract::getException ( void )
public void Yaf_Request_Abstract::getLanguage ( void )
public void Yaf_Request_Abstract::getMethod ( void )
public void Yaf_Request_Abstract::getModuleName ( void )
public void Yaf_Request_Abstract::getParam ( string $name [, string $default ] )
public void Yaf_Request_Abstract::getParams ( void )
public void Yaf_Request_Abstract::getRequestUri ( void )
public void Yaf_Request_Abstract::getServer ( string $name [, string $default ] )
public void Yaf_Request_Abstract::isCli ( void )
public void Yaf_Request_Abstract::isDispatched ( void )
public void Yaf_Request_Abstract::isGet ( void )
public void Yaf_Request_Abstract::isHead ( void )
public void Yaf_Request_Abstract::isOptions ( void )
public void Yaf_Request_Abstract::isPost ( void )
public void Yaf_Request_Abstract::isPut ( void )
public void Yaf_Request_Abstract::isRouted ( void )
public void Yaf_Request_Abstract::isXmlHttpRequest ( void )
public void Yaf_Request_Abstract::setActionName ( string $action )
public bool Yaf_Request_Abstract::setBaseUri ( string $uir )
public void Yaf_Request_Abstract::setControllerName ( string $controller )
public void Yaf_Request_Abstract::setDispatched ( void )
public void Yaf_Request_Abstract::setModuleName ( string $module )
public void Yaf_Request_Abstract::setParam ( string $name [, string $value ] )
public void Yaf_Request_Abstract::setRequestUri ( string $uir )
public void Yaf_Request_Abstract::setRouted ([ string $flag ] )
}

Propriétés

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Constantes pré-définies

Yaf_Request_Simple::SCHEME_HTTP

Yaf_Request_Simple::SCHEME_HTTPS

Sommaire

  • Yaf_Request_Simple::__clone — Le but de __clone
  • Yaf_Request_Simple::__construct — Constructeur de __construct
  • Yaf_Request_Simple::get — Le but de get
  • Yaf_Request_Simple::getCookie — Le but de getCookie
  • Yaf_Request_Simple::getFiles — Le but de getFiles
  • Yaf_Request_Simple::getPost — Le but de getPost
  • Yaf_Request_Simple::getQuery — Le but de getQuery
  • Yaf_Request_Simple::getRequest — Le but de getRequest
  • Yaf_Request_Simple::isXmlHttpRequest — Le but de isXmlHttpRequest


Le but de __clone

  • « Yaf_Request_Simple
  • Yaf_Request_Simple::__construct »
  • PHP Manual
  • Yaf_Request_Simple
  • Le but de __clone

Yaf_Request_Simple::__clone

(Yaf >=1.0.0)

Yaf_Request_Simple::__clone — Le but de __clone

Description

private void Yaf_Request_Simple::__clone ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Constructeur de __construct

  • « Yaf_Request_Simple::__clone
  • Yaf_Request_Simple::get »
  • PHP Manual
  • Yaf_Request_Simple
  • Constructeur de __construct

Yaf_Request_Simple::__construct

(Yaf >=1.0.0)

Yaf_Request_Simple::__construct — Constructeur de __construct

Description

public Yaf_Request_Simple::__construct ([ string $method [, string $module [, string $controller [, string $action [, array $params ]]]]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de get

  • « Yaf_Request_Simple::__construct
  • Yaf_Request_Simple::getCookie »
  • PHP Manual
  • Yaf_Request_Simple
  • Le but de get

Yaf_Request_Simple::get

(Yaf >=1.0.0)

Yaf_Request_Simple::get — Le but de get

Description

public void Yaf_Request_Simple::get ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getCookie

  • « Yaf_Request_Simple::get
  • Yaf_Request_Simple::getFiles »
  • PHP Manual
  • Yaf_Request_Simple
  • Le but de getCookie

Yaf_Request_Simple::getCookie

(Yaf >=1.0.0)

Yaf_Request_Simple::getCookie — Le but de getCookie

Description

public void Yaf_Request_Simple::getCookie ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getFiles

  • « Yaf_Request_Simple::getCookie
  • Yaf_Request_Simple::getPost »
  • PHP Manual
  • Yaf_Request_Simple
  • Le but de getFiles

Yaf_Request_Simple::getFiles

(Yaf >=1.0.0)

Yaf_Request_Simple::getFiles — Le but de getFiles

Description

public void Yaf_Request_Simple::getFiles ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getPost

  • « Yaf_Request_Simple::getFiles
  • Yaf_Request_Simple::getQuery »
  • PHP Manual
  • Yaf_Request_Simple
  • Le but de getPost

Yaf_Request_Simple::getPost

(Yaf >=1.0.0)

Yaf_Request_Simple::getPost — Le but de getPost

Description

public void Yaf_Request_Simple::getPost ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getQuery

  • « Yaf_Request_Simple::getPost
  • Yaf_Request_Simple::getRequest »
  • PHP Manual
  • Yaf_Request_Simple
  • Le but de getQuery

Yaf_Request_Simple::getQuery

(Yaf >=1.0.0)

Yaf_Request_Simple::getQuery — Le but de getQuery

Description

public void Yaf_Request_Simple::getQuery ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getRequest

  • « Yaf_Request_Simple::getQuery
  • Yaf_Request_Simple::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Simple
  • Le but de getRequest

Yaf_Request_Simple::getRequest

(Yaf >=1.0.0)

Yaf_Request_Simple::getRequest — Le but de getRequest

Description

public void Yaf_Request_Simple::getRequest ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de isXmlHttpRequest

  • « Yaf_Request_Simple::getRequest
  • Yaf_Response_Abstract »
  • PHP Manual
  • Yaf_Request_Simple
  • Le but de isXmlHttpRequest

Yaf_Request_Simple::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Simple::isXmlHttpRequest — Le but de isXmlHttpRequest

Description

public void Yaf_Request_Simple::isXmlHttpRequest ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe Yaf_Response_Abstract

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Response_Abstract {
/* Constantes */
const string DEFAULT_BODY = "content" ;
/* Propriétés */
protected $_header ;
protected $_body ;
protected $_sendheader ;
/* Méthodes */
public bool appendBody ( string $content [, string $key ] )
public bool clearBody ([ string $key ] )
public void clearHeaders ( void )
private void __clone ( void )
public __construct ( void )
public void __destruct ( void )
public mixed getBody ([ string $key ] )
public void getHeader ( void )
public bool prependBody ( string $content [, string $key ] )
public void response ( void )
protected void setAllHeaders ( void )
public bool setBody ( string $content [, string $key ] )
public void setHeader ( void )
public void setRedirect ( void )
private void __toString ( void )
}

Propriétés

_header

_body

_sendheader

Sommaire

  • Yaf_Response_Abstract::appendBody — Ajoute le corps
  • Yaf_Response_Abstract::clearBody — Le but de clearBody
  • Yaf_Response_Abstract::clearHeaders — Le but de clearHeaders
  • Yaf_Response_Abstract::__clone — Le but de __clone
  • Yaf_Response_Abstract::__construct — Le but de __construct
  • Yaf_Response_Abstract::__destruct — Le but de __destruct
  • Yaf_Response_Abstract::getBody — Récupère un contenu existant
  • Yaf_Response_Abstract::getHeader — Le but de getHeader
  • Yaf_Response_Abstract::prependBody — Le but de prependBody
  • Yaf_Response_Abstract::response — Envoi la réponse
  • Yaf_Response_Abstract::setAllHeaders — Le but de setAllHeaders
  • Yaf_Response_Abstract::setBody — Définit le contenu de la réponse
  • Yaf_Response_Abstract::setHeader — Le but de setHeader
  • Yaf_Response_Abstract::setRedirect — Le but de setRedirect
  • Yaf_Response_Abstract::__toString — Le but de __toString


Ajoute le corps

  • « Yaf_Response_Abstract
  • Yaf_Response_Abstract::clearBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • Ajoute le corps

Yaf_Response_Abstract::appendBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::appendBody — Ajoute le corps

Description

public bool Yaf_Response_Abstract::appendBody ( string $content [, string $key ] )

Ajoute le contenu dans un bloc de contenu existant.

Liste de paramètres

body

Le contenu.

key

La clé du contenu ; vous pouvez définir un contenu avec sa clé ; si vous n'en spécifiez pas, alors Yaf_Response_Abstract::DEFAULT_BODY sera utilisé.

Note:

ce paramètre a été introduit en version 2.2.0.

Valeurs de retour

Un booléen.

Exemples

Exemple #1 Exemple avec Yaf_Response_Abstract::appendBody()

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->prependBody(" World");

echo $response;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Hello World

Voir aussi

  • Yaf_Config_Ini

Voir aussi

  • Yaf_Response_Abstract::getBody() - Récupère un contenu existant
  • Yaf_Response_Abstract::setBody() - Définit le contenu de la réponse
  • Yaf_Response_Abstract::prependBody() - Le but de prependBody
  • Yaf_Response_Abstract::clearBody() - Le but de clearBody


Le but de clearBody

  • « Yaf_Response_Abstract::appendBody
  • Yaf_Response_Abstract::clearHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • Le but de clearBody

Yaf_Response_Abstract::clearBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearBody — Le but de clearBody

Description

public bool Yaf_Response_Abstract::clearBody ([ string $key ] )

Supprime le contenu existant.

Liste de paramètres

key

La clé du contenu ; si vous n'en spécifiez pas, tous les contenus seront supprimés.

Note:

Ce paramètre a été introduit depuis la version 2.2.0.

Valeurs de retour

Voir aussi

  • Yaf_Response_Abstract::setBody() - Définit le contenu de la réponse
  • Yaf_Response_Abstract::appendBody() - Ajoute le corps
  • Yaf_Response_Abstract::prependBody() - Le but de prependBody
  • Yaf_Response_Abstract::getBody() - Récupère un contenu existant


Le but de clearHeaders

  • « Yaf_Response_Abstract::clearBody
  • Yaf_Response_Abstract::__clone »
  • PHP Manual
  • Yaf_Response_Abstract
  • Le but de clearHeaders

Yaf_Response_Abstract::clearHeaders

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearHeaders — Le but de clearHeaders

Description

public void Yaf_Response_Abstract::clearHeaders ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __clone

  • « Yaf_Response_Abstract::clearHeaders
  • Yaf_Response_Abstract::__construct »
  • PHP Manual
  • Yaf_Response_Abstract
  • Le but de __clone

Yaf_Response_Abstract::__clone

(Yaf >=1.0.0)

Yaf_Response_Abstract::__clone — Le but de __clone

Description

private void Yaf_Response_Abstract::__clone ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __construct

  • « Yaf_Response_Abstract::__clone
  • Yaf_Response_Abstract::__destruct »
  • PHP Manual
  • Yaf_Response_Abstract
  • Le but de __construct

Yaf_Response_Abstract::__construct

(Yaf >=1.0.0)

Yaf_Response_Abstract::__construct — Le but de __construct

Description

public Yaf_Response_Abstract::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __destruct

  • « Yaf_Response_Abstract::__construct
  • Yaf_Response_Abstract::getBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • Le but de __destruct

Yaf_Response_Abstract::__destruct

(Yaf >=1.0.0)

Yaf_Response_Abstract::__destruct — Le but de __destruct

Description

public void Yaf_Response_Abstract::__destruct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère un contenu existant

  • « Yaf_Response_Abstract::__destruct
  • Yaf_Response_Abstract::getHeader »
  • PHP Manual
  • Yaf_Response_Abstract
  • Récupère un contenu existant

Yaf_Response_Abstract::getBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::getBody — Récupère un contenu existant

Description

public mixed Yaf_Response_Abstract::getBody ([ string $key ] )

Récupère un contenu existant.

Liste de paramètres

key

La clé du contenu ; si vous n'en spécifiez pas une, alors Yaf_Response_Abstract::DEFAULT_BODY sera utilisé. Si vous passez la valeur NULL, alors tous les contenus seront retournés sous la forme d'un tableau.

Note:

Ce paramètre a été introduit en version 2.2.0.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Response_Abstract::getBody()

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

var_dump($response->getBody()); //default
var_dump($response->getBody(Yaf_Response_Abstract::DEFAULT_BODY)); //identique à ci-dessus
var_dump($response->getBody("footer"));
var_dump($response->getBody(NULL)); //récupère tout
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "Hello"
string(5) "Hello"
string(6) " World"
array(2) {
  ["content"]=>
  string(5) "Hello"
  ["footer"]=>
  string(6) " World"
}

Voir aussi

  • Yaf_Response_Abstract::setBody() - Définit le contenu de la réponse
  • Yaf_Response_Abstract::appendBody() - Ajoute le corps
  • Yaf_Response_Abstract::prependBody() - Le but de prependBody
  • Yaf_Response_Abstract::clearBody() - Le but de clearBody


Le but de getHeader

  • « Yaf_Response_Abstract::getBody
  • Yaf_Response_Abstract::prependBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • Le but de getHeader

Yaf_Response_Abstract::getHeader

(Yaf >=1.0.0)

Yaf_Response_Abstract::getHeader — Le but de getHeader

Description

public void Yaf_Response_Abstract::getHeader ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de prependBody

  • « Yaf_Response_Abstract::getHeader
  • Yaf_Response_Abstract::response »
  • PHP Manual
  • Yaf_Response_Abstract
  • Le but de prependBody

Yaf_Response_Abstract::prependBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::prependBody — Le but de prependBody

Description

public bool Yaf_Response_Abstract::prependBody ( string $content [, string $key ] )

Ajout un contenu à un bloc de contenu existant.

Liste de paramètres

body

Le contenu.

key

La clé du contenu ; vous pouvez spécifier un contenu avec une clé ; si vous n'en spécifiez pas, alors Yaf_Response_Abstract::DEFAULT_BODY sera utilisé.

Note:

Ce paramètre a été introduit en version 2.2.0.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Response_Abstract::prependBody()

<?php
$response = new Yaf_Response_Http();

$response->setBody("World")->prependBody("Hello ");

echo $response;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Hello World

Voir aussi

  • Yaf_Response_Abstract::getBody() - Récupère un contenu existant
  • Yaf_Response_Abstract::setBody() - Définit le contenu de la réponse
  • Yaf_Response_Abstract::appendBody() - Ajoute le corps
  • Yaf_Response_Abstract::clearBody() - Le but de clearBody


Envoi la réponse

  • « Yaf_Response_Abstract::prependBody
  • Yaf_Response_Abstract::setAllHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • Envoi la réponse

Yaf_Response_Abstract::response

(Yaf >=1.0.0)

Yaf_Response_Abstract::response — Envoi la réponse

Description

public void Yaf_Response_Abstract::response ( void )

Envoi la réponse.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Response_Abstract::response()

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

$response->response();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Hello World

Voir aussi

  • Yaf_Response_Abstract::setBody() - Définit le contenu de la réponse
  • Yaf_Response_Abstract::clearBody() - Le but de clearBody


Le but de setAllHeaders

  • « Yaf_Response_Abstract::response
  • Yaf_Response_Abstract::setBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • Le but de setAllHeaders

Yaf_Response_Abstract::setAllHeaders

(Yaf >=1.0.0)

Yaf_Response_Abstract::setAllHeaders — Le but de setAllHeaders

Description

protected void Yaf_Response_Abstract::setAllHeaders ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Définit le contenu de la réponse

  • « Yaf_Response_Abstract::setAllHeaders
  • Yaf_Response_Abstract::setHeader »
  • PHP Manual
  • Yaf_Response_Abstract
  • Définit le contenu de la réponse

Yaf_Response_Abstract::setBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::setBody — Définit le contenu de la réponse

Description

public bool Yaf_Response_Abstract::setBody ( string $content [, string $key ] )

Définit le contenu de la réponse.

Liste de paramètres

body

Le contenu.

key

La clé du contenu ; vous pouvez définir un contenu avec une clé ; si vous ne la spécifiez pas, alors Yaf_Response_Abstract::DEFAULT_BODY sera utilisé.

Note:

Ce paramètre a été introduit en 2.2.0..

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Response_Abstract::setBody()

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

print_r($response);
echo $response;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Yaf_Response_Http Object
(
    [_header:protected] => Array
        (
        )

    [_body:protected] => Array
        (
            [content] => Hello
            [footer] =>  World
        )

    [_sendheader:protected] => 1
    [_response_code:protected] => 200
)
Hello World

Voir aussi

  • Yaf_Response_Abstract::getBody() - Récupère un contenu existant
  • Yaf_Response_Abstract::appendBody() - Ajoute le corps
  • Yaf_Response_Abstract::prependBody() - Le but de prependBody
  • Yaf_Response_Abstract::clearBody() - Le but de clearBody


Le but de setHeader

  • « Yaf_Response_Abstract::setBody
  • Yaf_Response_Abstract::setRedirect »
  • PHP Manual
  • Yaf_Response_Abstract
  • Le but de setHeader

Yaf_Response_Abstract::setHeader

(Yaf >=1.0.0)

Yaf_Response_Abstract::setHeader — Le but de setHeader

Description

public void Yaf_Response_Abstract::setHeader ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de setRedirect

  • « Yaf_Response_Abstract::setHeader
  • Yaf_Response_Abstract::__toString »
  • PHP Manual
  • Yaf_Response_Abstract
  • Le but de setRedirect

Yaf_Response_Abstract::setRedirect

(Yaf >=1.0.0)

Yaf_Response_Abstract::setRedirect — Le but de setRedirect

Description

public void Yaf_Response_Abstract::setRedirect ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __toString

  • « Yaf_Response_Abstract::setRedirect
  • Yaf_Route_Interface »
  • PHP Manual
  • Yaf_Response_Abstract
  • Le but de __toString

Yaf_Response_Abstract::__toString

(Yaf >=1.0.0)

Yaf_Response_Abstract::__toString — Le but de __toString

Description

private void Yaf_Response_Abstract::__toString ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe Yaf_Route_Interface

(Yaf >=1.0.0)

Introduction

Yaf_Route_Interface est utilisé par les développeurs pour définir des routes personnalisées.

Synopsis de la classe

Yaf_Route_Interface {
/* Méthodes */
abstract public string assemble ( array $info [, array $query ] )
abstract public bool route ( Yaf_Request_Abstract $request )
}

Sommaire

  • Yaf_Route_Interface::assemble — Assemble une requête
  • Yaf_Route_Interface::route — Route une requête


Assemble une requête

  • « Yaf_Route_Interface
  • Yaf_Route_Interface::route »
  • PHP Manual
  • Yaf_Route_Interface
  • Assemble une requête

Yaf_Route_Interface::assemble

(Yaf >=2.3.0)

Yaf_Route_Interface::assemble — Assemble une requête

Description

abstract public string Yaf_Route_Interface::assemble ( array $info [, array $query ] )

Cette méthode retourne une URL suivant les informations de l'argument, et ajoute la chaîne de requête à l'URL suivant la requête de l'argument.

Une route doit implémenter cette méthode suivant ces propres règles, et faire une progression inversée.

Liste de paramètres

info

query

Valeurs de retour


Route une requête

  • « Yaf_Route_Interface::assemble
  • Yaf_Route_Map »
  • PHP Manual
  • Yaf_Route_Interface
  • Route une requête

Yaf_Route_Interface::route

(Yaf >=1.0.0)

Yaf_Route_Interface::route — Route une requête

Description

abstract public bool Yaf_Route_Interface::route ( Yaf_Request_Abstract $request )

Yaf_Route_Interface::route() est la seule méthode qu'une route personnalisée doit implémentée.

Note:

Depuis 2.3.0, il y a une autre méthode d'implémentée : Yaf_Route_Interface::assemble().

Si cette méthode retourne TRUE, alors le processus route se terminera. Sinon, Yaf_Router appellera la prochaine route de la pile des routes.

Cette méthode définira le résultat de la route au paramètre de la
requête, en appelant les méthodes
Yaf_Request_Abstract::setControllerName(),
Yaf_Request_Abstract::setActionName() et
Yaf_Request_Abstract::setModuleName().

Cette méthode doit également appeler la méthode Yaf_Request_Abstract::setRouted() en dernier pour router la requête.

Liste de paramètres

request

Une instance de la classe Yaf_Request_Abstract.

Valeurs de retour


La classe Yaf_Route_Map

(Yaf >=1.0.0)

Introduction

La classe Yaf_Route_Map est une route interne ; elle va simplement convertir le point final d'une URI (la partie de l'URI qui vient après l'URI de base : voir la méthode Yaf_Request_Abstract::setBaseUri()) en un nom de contrôleur, ou un nom d'action (suivant le paramètre passé au constructeur Yaf_Route_Map::__construct()) en se basant sur les règles suivantes : A => contrôleur A. A/B/C => contrôleur A_B_C. A/B/C/D/E => contrôleur A_B_C_D_E.

Si le second paramètre du constructeur Yaf_Route_Map::__construct() est spécifié, alors seule la partie avant le délimiteur de l'URI sera utilisée pour le routage, la partie après sera elle utilisée pour router les paramètres de la demande (voir l'exemple dans la documentation de la méthode Yaf_Route_Map::__construct()).

Synopsis de la classe

Yaf_Route_Map implements Yaf_Route_Interface {
/* Propriétés */
protected $_ctl_router ;
protected $_delimeter ;
/* Méthodes */
public string assemble ( array $info [, array $query ] )
public __construct ([ string $controller_prefer = false [, string $delimiter = "" ]] )
public bool route ( Yaf_Request_Abstract $request )
}

Propriétés

_ctl_router

_delimeter

Sommaire

  • Yaf_Route_Map::assemble — Assemble une URL
  • Yaf_Route_Map::__construct — Le but de __construct
  • Yaf_Route_Map::route — Le but route


Assemble une URL

  • « Yaf_Route_Map
  • Yaf_Route_Map::__construct »
  • PHP Manual
  • Yaf_Route_Map
  • Assemble une URL

Yaf_Route_Map::assemble

(Yaf >=2.3.0)

Yaf_Route_Map::assemble — Assemble une URL

Description

public string Yaf_Route_Map::assemble ( array $info [, array $query ] )

Assemble une URL.

Liste de paramètres

info

query

Exemples

Exemple #1 Exemple avec Yaf_Route_Map::assemble()

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Map();

$router->addRoute("map", $route);

var_dump($router->getRoute('map')->assemble(
                        array(
                                ':c' => 'foo_bar'
                        ),
                        array(
                                'tkey1' => 'tval1',
                                'tkey2' => 'tval2'
                        )
                   )
);

$route = new Yaf_Route_Map(true, '_');
$router->addRoute("map", $route);

var_dump($router->getRoute('map')->assemble(
                        array(
                                ':a' => 'foo_bar'
                        ),
                        array(
                                'tkey1' => 'tval1',
                                'tkey2' => 'tval2'
                        )
                   )
);

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(%d) "/foo/bar?tkey1=tval1&tkey2=tval2"
string(%d) "/foo/bar/_/tkey1/tval1/tkey2/tval2"

Valeurs de retour


Le but de __construct

  • « Yaf_Route_Map::assemble
  • Yaf_Route_Map::route »
  • PHP Manual
  • Yaf_Route_Map
  • Le but de __construct

Yaf_Route_Map::__construct

(Yaf >=1.0.0)

Yaf_Route_Map::__construct — Le but de __construct

Description

public Yaf_Route_Map::__construct ([ string $controller_prefer = false [, string $delimiter = "" ]] )

Liste de paramètres

controller_prefer

Permet de considérer le résultat comme étant un contrôleur ou une action.

delimiter

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Route_Map()

<?php
   /**
    * Ajoute une route de type carte à la pile de routes Yaf_Router
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Map());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/* Pour http://yourdomain.com/product/foo/bar
 * la route contiendra les valeurs suivantes :
 */
array(
  "controller" => "product_foo_bar",
)

Exemple #2 Exemple avec Yaf_Route_Map()

<?php
   /**
    * Ajoute une route de type carte à la pile de routes Yaf_Router
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Map(true, "_"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/* Pour http://yourdomain.com/user/list/_/foo/22
 * la route contiendra les valeurs suivantes :
 */
array(
    "action" => "user_list",
)

/**
 * et les paramètres de la requête :
 */
array(
  "foo"   => 22,
)

Exemple #3 Exemple avec Yaf_Route_Map()

<?php
   /**
    * Ajoute une route de type carte à la pile de routes Yaf_Router en appelant addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "map",         //Yaf_Route_Map route
           "controllerPrefer" => FALSE,
           "delimiter"        => "#!",
           ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Voir aussi

  • Yaf_Router::addRoute() - Ajoute une nouvelle route dans un routeur
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite


Le but route

  • « Yaf_Route_Map::__construct
  • Yaf_Route_Regex »
  • PHP Manual
  • Yaf_Route_Map
  • Le but route

Yaf_Route_Map::route

(Yaf >=1.0.0)

Yaf_Route_Map::route — Le but route

Description

public bool Yaf_Route_Map::route ( Yaf_Request_Abstract $request )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

request

Valeurs de retour


La classe Yaf_Route_Regex

(Yaf >=1.0.0)

Introduction

Yaf_Route_Regex est la route la plus fexible de toutes les routes internes de Yaf.

Synopsis de la classe

Yaf_Route_Regex extends Yaf_Route_Interface implements Yaf_Route_Interface {
/* Propriétés */
protected $_route ;
protected $_default ;
protected $_maps ;
protected $_verify ;
/* Méthodes */
public string assemble ( array $info [, array $query ] )
public __construct ( string $match , array $route [, array $map [, array $verify [, string $reverse ]]] )
public bool route ( Yaf_Request_Abstract $request )
/* Méthodes héritées */
abstract public string Yaf_Route_Interface::assemble ( array $info [, array $query ] )
abstract public bool Yaf_Route_Interface::route ( Yaf_Request_Abstract $request )
}

Propriétés

_route

_default

_maps

_verify

Sommaire

  • Yaf_Route_Regex::assemble — Assemble une URL
  • Yaf_Route_Regex::__construct — Contructeur Yaf_Route_Regex
  • Yaf_Route_Regex::route — Le but de route


Assemble une URL

  • « Yaf_Route_Regex
  • Yaf_Route_Regex::__construct »
  • PHP Manual
  • Yaf_Route_Regex
  • Assemble une URL

Yaf_Route_Regex::assemble

(Yaf >=2.3.0)

Yaf_Route_Regex::assemble — Assemble une URL

Description

public string Yaf_Route_Regex::assemble ( array $info [, array $query ] )

Assemble une URL.

Liste de paramètres

info

query

Exemples

Exemple #1 Exemple avec Yaf_Route_Regex::assemble()

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Regex(
            "#^/product/([^/]+)/([^/])+#",
            array(
                'controller' => "product",  //route to product controller,
                ),
            array(),
            array(),
            '/:m/:c/:a'
        );

$router->addRoute("regex", $route);

var_dump($router->getRoute('regex')->assemble(
            array(
                ':m' => 'module',
                ':c' => 'controller',
                ':a' => 'action'
                ),
            array(
                'tkey1' => 'tval1',
                'tkey2' =>
                'tval2'
                )
            )
        );

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(49) "/module/controller/action?tkey1=tval1&tkey2=tval2"

Valeurs de retour


Contructeur Yaf_Route_Regex

  • « Yaf_Route_Regex::assemble
  • Yaf_Route_Regex::route »
  • PHP Manual
  • Yaf_Route_Regex
  • Contructeur Yaf_Route_Regex

Yaf_Route_Regex::__construct

(Yaf >=1.0.0)

Yaf_Route_Regex::__construct — Contructeur Yaf_Route_Regex

Description

public Yaf_Route_Regex::__construct ( string $match , array $route [, array $map [, array $verify [, string $reverse ]]] )

Liste de paramètres

match

Un masque de Regex complet à utiliser pour y faire correspondre une requête URI ; si aucune correspondance n'est trouvée, Yaf_Route_Regex retournera FALSE.

route

Lorsque le masque trouve une correspondance dans la requête URI, Yaf_Route_Regex utilisera ce paramètre pour décider quel m/c/a doit être routé.

Les éléments du tableau m/c/a sont optionnels ; si vous n'assignez pas de valeurs spécifiques à ces éléments, ils seront routés vers la route par défaut.

map

Un tableau permettant d'assigner les noms aux éléments trouvés via le masque.

verify

reverse

une chaîne de caractères, utilisé pour assembler l'url. Voir la méthode Yaf_Route_Regex::assemble().

Note:

Ce paramètre a été introduite en version 2.3.0

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Route_Regex()

<?php
   /**
    * Ajoute une route Regex à la pile de routes Yaf_Router
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/([^/]+)/([^/])+#", //correspond à la requête URI "/product"
           array(
               'controller' => "product",  //route vers le controlleur produit,
           ),
           array(
              1 => "name",   // maintenant, vous pouvez appeler $request->getParam("name")
              2 => "id",     // pour récupérer la première capture du masque.
           )
        )
    );
?>

Exemple #2 Exemple avec Yaf_Route_Regex (depuis la version 2.3.0)()

<?php
   /**
    * Utilise le résultat des correspondances comme nom MVC
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/([^/]+)/([^/])+#i", //trouve l'URI demandée après "/product"
           array(
              'controller' => ":name", // route vers :name, qui correspond à $1 dans le résultat de la correspondance
                                       // comme nom du contrôleur
           ),
           array(
              1 => "name",   // maintenant, vous pouvez appeler $request->getParam("name")
              2 => "id",     // pour récupérer la première capture du masque de correspondance
           )
        )
    );
?>

Exemple #3 Exemple avec Yaf_Route_Regex() et la capture du nom (depuis 2.3.0)

<?php
   /**
    * Use match result as MVC name
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/(?<name>[^/]+)/([^/])+#i", //trouve le dernier "/product" de l'URI demandé
           array(
           'controller' => ":name", // route vers :name,
                                    // qui est le groupe de capture 'name' dans le résultat des correspondances comme nom du contrôleur
           ),
           array(
              2 => "id",     // pour récupérer la première capture dans le masque de recherche.
           )
        )
    );
?>

Exemple #4 Exemple avec Yaf_Route_Regex()

<?php
   /**
    * Ajoute une route Regex à la pile de routes Yaf_Router en appelant addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "regex",          //la route Yaf_Route_Regex
           "match" => "#(.*)#",         //correspondance arbitraire à la requête URI
           "route" => array(
               'controller' => "product",  //route vers le controlleur produit,
               'action'     => "dummy",    //route pour l'action dummy
           ),
           "map" => array(
              1 => "uri",   // maintenant, vous pouvez appeler $request->getParam("uri")
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Voir aussi

  • Yaf_Router::addRoute() - Ajoute une nouvelle route dans un routeur
  • Yaf_Router::addConfig() - Ajoute une route définie dans la configuration d'un routeur
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Le but de route

  • « Yaf_Route_Regex::__construct
  • Yaf_Route_Rewrite »
  • PHP Manual
  • Yaf_Route_Regex
  • Le but de route

Yaf_Route_Regex::route

(Yaf >=1.0.0)

Yaf_Route_Regex::route — Le but de route

Description

public bool Yaf_Route_Regex::route ( Yaf_Request_Abstract $request )

Route une requête entrante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

request

Valeurs de retour

Si le masque fourni par le troisième paramètre de la méthode Yaf_Route_Regex::_construct() correspond avec la requête URI, TRUE sera retourné, sinon FALSE.


La classe Yaf_Route_Rewrite

(Yaf >=1.0.0)

Introduction

Pour des exemples d'utilisation, reportez-vous à la section d'exemple sur la page du manuel concernant Yaf_Route_Rewrite::__construct().

Synopsis de la classe

Yaf_Route_Rewrite extends Yaf_Route_Interface implements Yaf_Route_Interface {
/* Propriétés */
protected $_route ;
protected $_default ;
protected $_verify ;
/* Méthodes */
public string assemble ( array $info [, array $query ] )
public __construct ( string $match , array $route [, array $verify ] )
public bool route ( Yaf_Request_Abstract $request )
/* Méthodes héritées */
abstract public string Yaf_Route_Interface::assemble ( array $info [, array $query ] )
abstract public bool Yaf_Route_Interface::route ( Yaf_Request_Abstract $request )
}

Propriétés

_route

_default

_verify

Sommaire

  • Yaf_Route_Rewrite::assemble — Assemble une URL
  • Yaf_Route_Rewrite::__construct — Constructeur Yaf_Route_Rewrite
  • Yaf_Route_Rewrite::route — Le but de route


Assemble une URL

  • « Yaf_Route_Rewrite
  • Yaf_Route_Rewrite::__construct »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Assemble une URL

Yaf_Route_Rewrite::assemble

(Yaf >=2.3.0)

Yaf_Route_Rewrite::assemble — Assemble une URL

Description

public string Yaf_Route_Rewrite::assemble ( array $info [, array $query ] )

Assemble une URL.

Liste de paramètres

info

query

Exemples

Exemple #1 Exemple avec Yaf_Route_Rewrite::assemble()

router = new Yaf_Router();

$route  = new Yaf_Route_Rewrite(
                "/product/:name/:id/*",
                array(
                        'controller' => "product",
                ),
                array()
);

$router->addRoute("rewrite", $route);

var_dump($router->getRoute('rewrite')->assemble(
                        array(
                                ':name' => 'foo',
                                ':id' => 'bar',
                                ':tmpkey1' => 'tmpval1'
                        ),
                        array(
                                'tkey1' => 'tval1',
                                'tkey2' => 'tval2'
                             )
                        )
);

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(57) "/product/foo/bar/tmpkey1/tmpval1/?tkey1=tval1&tkey2=tval2"

Valeurs de retour


Constructeur Yaf_Route_Rewrite

  • « Yaf_Route_Rewrite::assemble
  • Yaf_Route_Rewrite::route »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Constructeur Yaf_Route_Rewrite

Yaf_Route_Rewrite::__construct

(Yaf >=1.0.0)

Yaf_Route_Rewrite::__construct — Constructeur Yaf_Route_Rewrite

Description

public Yaf_Route_Rewrite::__construct ( string $match , array $route [, array $verify ] )

Liste de paramètres

match

Un masque à utiliser sur une requête URI. Si aucune correspondance n'y est trouvée, Yaf_Route_Rewrite retournera FALSE.

Vous pouvez utiliser le style :name pour nommer le segment recherché, et utiliser le caractère * pour récupérer le reste du segment de l'URL.

route

Lorsque le masque trouve une correspondance sur la requête URI, Yaf_Route_Rewrite utilisera ce paramètre pour savoir quel module/controller/action doit être routé.

Les éléments du tableau module/controller/action sont optionnels, si vous ne les assignez pas en une valeur spécifique, ils seront routés vers la cible par défaut.

verify

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Route_Rewrite()

<?php
   /**
    * Ajoute une route de réécriture à la pile de routes de Yaf_Router
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_rewrite(
           "/product/:name/:id/*", //correspond à la requête URI "/product"
           array(
               'controller' => "product",  //route vers le controlleur produit,
           ),
        )
    );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/* Pour http://yourdomain.com/product/foo/22/foo/bar
 * la route résultante aura les valeurs suivantes :
 */
array(
  "controller" => "product",
  "module"     => "index", //(default)
  "action"     => "index", //(default)
)

/**
 * et les paramètres de la requête :
 */
array(
  "name" => "foo",
  "id"   => 22,
  "foo"  => bar
)

Exemple #2 Exemple avec Yaf_Route_Rewrite()

<?php
   /**
    * Ajoute une route de réécriture à la pile de route Yaf_Router
    * en appelant addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "rewrite",        //route Yaf_Route_Rewrite
           "match" => "/user-list/:id", //correspond uniquement à /user/list/?/
           "route" => array(
               'controller' => "user",  //route vers le contrôleur utilisateur
               'action'     => "list",  //route vers la liste des actions
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/* Pour http://yourdomain.com/user-list/22
 * la route résultera en les valeurs suivantes :
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(default)
)

/**
 * et les paramètres de la requête :
 */
array(
  "id"   => 22,
)

Exemple #3 Exemple avec Yaf_Route_Rewrite (depuis 2.3.0)()

<?php
   /**
    * Ajout d'une route de ré-écriture utilisée pour chercher un résultat du type m/c/a
    */
    $config = array(
        "name" => array(
           "type"  => "rewrite",
           "match" => "/user-list/:a/:id", //correspond uniquement à /user-list/*
           "route" => array(
               'controller' => "user",   //route vers le contrôleur user,
               'action'     => ":a",     //route vers l'action :a
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/* pour http://yourdomain.com/user-list/list/22
 * la route va correspondre aux valeurs suivantes :
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(par défaut)
)

/**
 * et les paramètres demandés :
 */
array(
  "id"   => 22,
)

Voir aussi

  • Yaf_Router::addRoute() - Ajoute une nouvelle route dans un routeur
  • Yaf_Router::addConfig() - Ajoute une route définie dans la configuration d'un routeur
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Map


Le but de route

  • « Yaf_Route_Rewrite::__construct
  • Yaf_Router »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Le but de route

Yaf_Route_Rewrite::route

(Yaf >=1.0.0)

Yaf_Route_Rewrite::route — Le but de route

Description

public bool Yaf_Route_Rewrite::route ( Yaf_Request_Abstract $request )

Liste de paramètres

request

Valeurs de retour


La classe Yaf_Router

(Yaf >=1.0.0)

Introduction

Yaf_Router est le framework standard pour le routage. Le routage est le fait de prendre la partie finale d'une URI (la partie de l'URI qui vient après l'URI de base : voir la méthode Yaf_Request_Abstract::setBaseUri()), et la décompose en paramètres pour déterminer quel module, contrôleur, et action de ce contrôleur doivent recevoir la requête. Cette valeur de module, de contrôleur, d'action et d'autres paramètres sont empaquetés dans un objet Yaf_Request_Abstract qui sera ensuite analysé par Yaf_Dispatcher. Le routage intervient uniquement lorsqu'une requête est initialement reçue et avant l'envoi au premier contrôleur. Yaf_Router est prévu pour autoriser les fonctionnalités similaires au mod_rewrite en utilisant des structures PHP. Ces structures sont basés sur le routage en Ruby on Rails et ne nécessitent aucun connaissance en ré-écriture d'URL de serveur web. Elles sont prévues pour fonctionner avec une seule règle Apache mod_rewrite (une parmis) :

Exemple #1 Règle de ré-écriture pour Apache

RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php
ou (préféré) :

Exemple #2 Règle de ré-écriture pour Apache

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Si vous utilisez Lighttpd, la règle suivante est valide :

Exemple #3 Règle de ré-écriture pour Lighttpd

url.rewrite-once = (
  ".*\?(.*)$" => "/index.php?$1",
  ".*\.(js|ico|gif|jpg|png|css|html)$" => "$0",
  "" => "/index.php"
)
Si vous utilisez Nginx, la règle suivante est valide :

Exemple #4 Règle de ré-écriture pour Nginx

server {
  listen ****;
  server_name  yourdomain.com;
  root   document_root;
  index  index.php index.html;

  if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php/$1 last;
  }
}

Routage par défaut

Yaf_Router est fourni préconfiguré avec un routage par défaut Yaf_Route_Static, qui décompose les URIs en forme de contrôleur/action. De plus, un nom de module peut être spécifié comme premier élément du chemin, autorisant ainsi les URIs sous la forme module/contrôleur/action. Et finalement, les paramètres ajoutés à l'URI seront détectés aussi par défaut - contrôleur/action/var1/value1/var2/value2.

Note:

Le nom du module doit être défini dans la configuration, par exemple application.module="Index,Foo,Bar" dans ce cas, uniquement index, foo et bar peuvent être considérés comme nom de module ; si la configuration n'existe pas, seul le module nommé "Index" sera utilisable.

Voici quelques exemples sur la façon dont ces routages sont détectés :

Exemple #5 Exemple avec Yaf_Route_Static (route par défaut)

// Supposons la configuration suivante :
$conf = array(
   "application" => array(
      "modules" => "Index,Blog",
   ),
);

Que le contrôleur :
http://example/news
    controller == news
Qu'une action (lorsqu'on définit yaf.action_prefer=1 en php.ini)
    action  == news

Module invalide lié à un nom de contrôleur :
http://example/foo
    controller == foo

Module + contrôleur :
http://example/blog/archive
    module     == blog
    controller == archive

Module + contrôleur + action :
http://example/blog/archive/list
    module     == blog
    controller == archive
    action     == list

Module + contrôleur + action + paramètres :
http://example/blog/archive/list/sort/alpha/date/desc
    module     == blog
    controller == archive
    action     == list
    sort       == alpha
    date       == desc

Synopsis de la classe

Yaf_Router {
/* Propriétés */
protected $_routes ;
protected $_current ;
/* Méthodes */
public bool addConfig ( Yaf_Config_Abstract $config )
public bool addRoute ( string $name , Yaf_Route_Abstract $route )
public __construct ( void )
public string getCurrentRoute ( void )
public Yaf_Route_Interface getRoute ( string $name )
public mixed getRoutes ( void )
public bool route ( Yaf_Request_Abstract $request )
}

Propriétés

_routes

Pile des routes enregistrées.

_current

Après la phase de routage, ceci indique le nom de la route utilisé pour router la demande courante. Vous pouvez récupérer ce nom en utilisant la méthode Yaf_Router::getCurrentRoute().

Sommaire

  • Yaf_Router::addConfig — Ajoute une route définie dans la configuration d'un routeur
  • Yaf_Router::addRoute — Ajoute une nouvelle route dans un routeur
  • Yaf_Router::__construct — Constructeur de la classe Yaf_Router
  • Yaf_Router::getCurrentRoute — Récupère le nom effectif de la route
  • Yaf_Router::getRoute — Récupère une route via son nom
  • Yaf_Router::getRoutes — Récupère les routes enregistrées
  • Yaf_Router::route — Le but de route


Ajoute une route définie dans la configuration d'un routeur

  • « Yaf_Router
  • Yaf_Router::addRoute »
  • PHP Manual
  • Yaf_Router
  • Ajoute une route définie dans la configuration d'un routeur

Yaf_Router::addConfig

(Yaf >=1.0.0)

Yaf_Router::addConfig — Ajoute une route définie dans la configuration d'un routeur

Description

public bool Yaf_Router::addConfig ( Yaf_Config_Abstract $config )

Ajoute une route définie dans la configuration dans la pile des routes de la classe Yaf_Router.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une instance de la classe Yaf_Config_Abstract qui doit contenir une ou plusieurs configurations de routes valides.

Exemples

Exemple #1 Exemple avec application.ini()

;l'ordre est très important, le premier de la liste sera appelé en premier

;une route de réécriture matchant la requête /product/*/*
routes.route_name.type="rewrite"
routes.route_name.match="/product/:name/:value"
routes.route_name.route.controller=product
routes.route_name.route.action=info

;une route regex matchant la requête /list/*/*
routes.route_name1.type="regex"
routes.route_name1.match="#^list/([^/]*)/([^/]*)#"
routes.route_name1.route.controller=Index
routes.route_name1.route.action=action
routes.route_name1.map.1=name
routes.route_name1.map.2=value

;une route simple matchant /**?c=controller&a=action&m=module
routes.route_name2.type="simple"
routes.route_name2.controller=c
routes.route_name2.module=m
routes.route_name2.action=a

;une route simple matchant /**?r=PATH_INFO
routes.route_name3.type="supervar"
routes.route_name3.varname=r

;une route de type carte matchant n'importe quelle requête du contrôleur
routes.route_name4.type="map"
routes.route_name4.controllerPrefer=TRUE
routes.route_namer.delimiter="#!"

Exemple #2 Exemple avec Yaf_Dispatcher::autoConfig()

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initRoute(Yaf_Dispatcher $dispatcher) {
        $router = $dispatcher->getRouter();
        /**
         * Nous pouvons ajouter quelques routes préfédinies dans le
         * fichier de configuration application.ini
         */
        $router->addConfig(Yaf_Registry::get("config")->routes);
    }
?>

Voir aussi

  • Yaf_Router::addRoute() - Ajoute une nouvelle route dans un routeur
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Ajoute une nouvelle route dans un routeur

  • « Yaf_Router::addConfig
  • Yaf_Router::__construct »
  • PHP Manual
  • Yaf_Router
  • Ajoute une nouvelle route dans un routeur

Yaf_Router::addRoute

(Yaf >=1.0.0)

Yaf_Router::addRoute — Ajoute une nouvelle route dans un routeur

Description

public bool Yaf_Router::addRoute ( string $name , Yaf_Route_Abstract $route )

Par défaut, Yaf_Router utilise une instance de la classe Yaf_Route_Static comme route par défaut. Vous pouvez ajouter de nouvelles routes dans la pile des routes du routeur en appelant cette méthode.

La nouvelle route sera appelée avant l'ancien de la pile de routes, et si la nouvelle route retourne TRUE, le processus du routeur s'arrêtera. Sinon, la ou les anciennes anciennes routes de la pile seront appelées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Dispatcher::autoRender()

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initRoute(Yaf_Dispatcher $dispatcher) {
        $router = $dispatcher->getRouter();
        /**
         * Nous pouvons ajouter des routes définies dans le fichier de
         * configuration application.ini
         */
        $router->addConfig(Yaf_Registry::get("config")->routes);
        /**
         * Ajoute une route de réécriture, matchant la requête
         * http://***/product/list/22/foo et dont le résultat sera :
         *
         *  [module] =>
         *  [controller] => product
         *  [action] => info
         *  [method] => GET
         *  [params:protected] => Array
         *      (
         *          [id] => 22
         *          [name] => foo
         *      )
         *
         */
        $route  = new Yaf_Route_Rewrite(
            "/product/list/:id/:name",
            array(
                "controller" => "product",
                "action"     => "info",
            )
        );

        $router->addRoute('dummy', $route);
    }
?>

Voir aussi

  • Yaf_Router::addConfig() - Ajoute une route définie dans la configuration d'un routeur
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Constructeur de la classe Yaf_Router

  • « Yaf_Router::addRoute
  • Yaf_Router::getCurrentRoute »
  • PHP Manual
  • Yaf_Router
  • Constructeur de la classe Yaf_Router

Yaf_Router::__construct

(Yaf >=1.0.0)

Yaf_Router::__construct — Constructeur de la classe Yaf_Router

Description

public Yaf_Router::__construct ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le nom effectif de la route

  • « Yaf_Router::__construct
  • Yaf_Router::getRoute »
  • PHP Manual
  • Yaf_Router
  • Récupère le nom effectif de la route

Yaf_Router::getCurrentRoute

(Yaf >=1.0.0)

Yaf_Router::getCurrentRoute — Récupère le nom effectif de la route

Description

public string Yaf_Router::getCurrentRoute ( void )

Récupère le nom de la route actuellement en utilisation dans le processus routeur.

Note:

Vous devriez appeler cette méthode une fois le processus routeur terminé, sachant qu'avant la fin du processus, cette méthode retourne toujours NULL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de la route effective, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Enregistre quelques routes dans le Bootstrap

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initRoute(Yaf_Dispatcher $dispatcher) {
        $router = $dispatcher->getRouter();
        $rewrite_route  = new Yaf_Route_Rewrite(
            "/product/list/:page",
            array(
                "controller" => "product",
                "action"     => "list",
            )
        );

        $regex_route  = new Yaf_Route_Rewrite(
            "#^/product/info/(\d+)",
            array(
                "controller" => "product",
                "action"     => "info",
            )
        );

        $router->addRoute('rewrite', $rewrite_route)->addRoute('regex', $regex_route);
    }

    /**
     * Enregistre un plugin
     */
    public function __initPlugins(Yaf_Dispatcher $dispatcher) {
        $dispatcher->registerPlugin(new DummyPlugin());
    }
?>

Exemple #2 plugin Dummy.php (sous le dossier application.directory/plugins)

<?php
class DummyPlugin extends Yaf_Plugin_Abstract {

    public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
         var_dump(Yaf_Dispatcher::getInstance()->getRouter()->getCurrentRoute());
    }
?>
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/* Pour http://yourdomain.com/product/list/1
 * DummyPlugin affichera :
 */
string(7) "rewrite"

/* Pour http://yourdomain.com/product/info/34
 * DummyPlugin affichera :
 */
string(5) "regex"

/* Pour toutes les autres requêtes URI
 * DummyPlugin affichera :
 */
string(8) "_default"

Voir aussi

  • Yaf_Bootstrap_Abstract
  • Yaf_Plugin_Abstract
  • Yaf_Router::addRoute() - Ajoute une nouvelle route dans un routeur


Récupère une route via son nom

  • « Yaf_Router::getCurrentRoute
  • Yaf_Router::getRoutes »
  • PHP Manual
  • Yaf_Router
  • Récupère une route via son nom

Yaf_Router::getRoute

(Yaf >=1.0.0)

Yaf_Router::getRoute — Récupère une route via son nom

Description

public Yaf_Route_Interface Yaf_Router::getRoute ( string $name )

Récupère une route via son nom.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • Yaf_Bootstrap_Abstract
  • Yaf_Plugin_Abstract
  • Yaf_Router::addRoute() - Ajoute une nouvelle route dans un routeur
  • Yaf_Router::getCurrentRoute() - Récupère le nom effectif de la route


Récupère les routes enregistrées

  • « Yaf_Router::getRoute
  • Yaf_Router::route »
  • PHP Manual
  • Yaf_Router
  • Récupère les routes enregistrées

Yaf_Router::getRoutes

(Yaf >=1.0.0)

Yaf_Router::getRoutes — Récupère les routes enregistrées

Description

public mixed Yaf_Router::getRoutes ( void )

Récupère les routes enregistrées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de route

  • « Yaf_Router::getRoutes
  • Yaf_Route_Simple »
  • PHP Manual
  • Yaf_Router
  • Le but de route

Yaf_Router::route

(Yaf >=1.0.0)

Yaf_Router::route — Le but de route

Description

public bool Yaf_Router::route ( Yaf_Request_Abstract $request )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe Yaf_Route_Simple

(Yaf >=1.0.0)

Introduction

Yaf_Route_Simple va analyser la chaîne de requête et y trouver les informations quant à la route.

Tout ce que vous avez à faire est de dire à Yaf_Route_Simple la clé dans $_GET représentant le module, celle représentant le contrôleur, et celle représentant l'action.

Yaf_Route_Simple::route() retourne toujours TRUE, aussi, il est important de mettre Yaf_Route_Simple au début de la pilte de routes, sinon, toutes les autres routes ne seront pas appelées.

Synopsis de la classe

Yaf_Route_Simple implements Yaf_Route_Interface {
/* Propriétés */
protected $controller ;
protected $module ;
protected $action ;
/* Méthodes */
public string assemble ( array $info [, array $query ] )
public __construct ( string $module_name , string $controller_name , string $action_name )
public bool route ( Yaf_Request_Abstract $request )
}

Propriétés

controller

module

action

Sommaire

  • Yaf_Route_Simple::assemble — Assemble une URL
  • Yaf_Route_Simple::__construct — Constructeur de la classe Yaf_Route_Simple
  • Yaf_Route_Simple::route — Route une requête


Assemble une URL

  • « Yaf_Route_Simple
  • Yaf_Route_Simple::__construct »
  • PHP Manual
  • Yaf_Route_Simple
  • Assemble une URL

Yaf_Route_Simple::assemble

(Yaf >=2.3.0)

Yaf_Route_Simple::assemble — Assemble une URL

Description

public string Yaf_Route_Simple::assemble ( array $info [, array $query ] )

Assemble une URL.

Liste de paramètres

info

query

Exemples

Exemple #1 Exemple avec Yaf_Route_Simple::assemble()

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Simple('m', 'c', 'a');

$router->addRoute("simple", $route);

var_dump($router->getRoute('simple')->assemble(
            array(
                ':a' => 'yafaction',
                'tkey' => 'tval',
                ':c' => 'yafcontroller',
                ':m' => 'yafmodule'
                ),
            array(
                'tkey1' => 'tval1',
                'tkey2' => 'tval2'
                )
            ));

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(64) "?m=yafmodule&c=yafcontroller&a=yafaction&tkey1=tval1&tkey2=tval2"

Valeurs de retour


Constructeur de la classe Yaf_Route_Simple

  • « Yaf_Route_Simple::assemble
  • Yaf_Route_Simple::route »
  • PHP Manual
  • Yaf_Route_Simple
  • Constructeur de la classe Yaf_Route_Simple

Yaf_Route_Simple::__construct

(Yaf >=1.0.0)

Yaf_Route_Simple::__construct — Constructeur de la classe Yaf_Route_Simple

Description

public Yaf_Route_Simple::__construct ( string $module_name , string $controller_name , string $action_name )

Yaf_Route_Simple récupère les informations sur la route depuis la chaîne de requête. Les paramètres de ce constructeur seront utilisés comme clés lors de la recherche des informations sur la route dans $_GET.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

module_name

Le nom de la clé dans les informations de module.

controller_name

Le nom de la clé dans les informations du contrôleur.

action_name

Le nom de la clé dans les informations de l'action.

Valeurs de retour

Retourne toujours TRUE.

Exemples

Exemple #1 Exemple avec Yaf_Route_Simple::route()

<?php
   $route = new Yaf_Route_Simple("m", "controller", "act");
   Yaf_Router::getInstance()->addRoute("simple", $route);
?>

Exemple #2 Exemple avec Yaf_Route_Simple::route()

Request: http://yourdomain.com/path/?controller=a&act=b
=> module = default(index), controller = a, action = b

Request: http://yourdomain.com/path
=> module = default(index), controller = default(index), action = default(index)

Voir aussi

  • Yaf_Route_Supervar::route() - Le but de route
  • Yaf_Route_Static::route() - Route une requête
  • Yaf_Route_Regex::route() - Le but de route
  • Yaf_Route_Rewrite::route() - Le but de route
  • Yaf_Route_Map::route() - Le but route


Route une requête

  • « Yaf_Route_Simple::__construct
  • Yaf_Route_Static »
  • PHP Manual
  • Yaf_Route_Simple
  • Route une requête

Yaf_Route_Simple::route

(Yaf >=1.0.0)

Yaf_Route_Simple::route — Route une requête

Description

public bool Yaf_Route_Simple::route ( Yaf_Request_Abstract $request )

Voir la méthode Yaf_Route_Simple::__construct().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

request

Valeurs de retour

Retourne toujours TRUE.

Voir aussi

  • Yaf_Route_Supervar::route() - Le but de route
  • Yaf_Route_Static::route() - Route une requête
  • Yaf_Route_Regex::route() - Le but de route
  • Yaf_Route_Rewrite::route() - Le but de route
  • Yaf_Route_Map::route() - Le but route


La classe Yaf_Route_Static

(Yaf >=1.0.0)

Introduction

Par défaut, Yaf_Router n'a qu'une Yaf_Route_Static comme route par défaut.

Et Yaf_Route_Static est prévu pour gérer 80% des besoins.

Veuillez noter qu'il n'est pas nécessaire d'instancier la classe Yaf_Route_Static, et qu'il n'est pas nécessaire de l'ajouter dans la pile des routes de la classe Yaf_Router vu qu'elle sera toujours présente dans la pile des routes de la classe Yaf_Router et qu'elle sera toujours appelée au dernier moment.

Synopsis de la classe

Yaf_Route_Static implements Yaf_Router {
/* Méthodes */
public string assemble ( array $info [, array $query ] )
public void match ( string $uri )
public bool route ( Yaf_Request_Abstract $request )
}

Sommaire

  • Yaf_Route_Static::assemble — Assemble une URL
  • Yaf_Route_Static::match — Le but de match
  • Yaf_Route_Static::route — Route une requête


Assemble une URL

  • « Yaf_Route_Static
  • Yaf_Route_Static::match »
  • PHP Manual
  • Yaf_Route_Static
  • Assemble une URL

Yaf_Route_Static::assemble

(Yaf >=2.3.0)

Yaf_Route_Static::assemble — Assemble une URL

Description

public string Yaf_Route_Static::assemble ( array $info [, array $query ] )

Assemble une URL.

Liste de paramètres

info

query

Exemples

Exemple #1 Exemple avec Yaf_Route_Static::assemble()

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Static();

$router->addRoute("static", $route);

var_dump($router->getRoute('static')->assemble(
            array(
                ':a' => 'yafaction',
                'tkey' => 'tval',
                ':c' => 'yafcontroller',
                ':m' => 'yafmodule'
            ),
        )
);

var_dump($router->getRoute('static')->assemble(
            array(
                ':a' => 'yafaction',
                'tkey' => 'tval',
                ':c' => 'yafcontroller',
                ':m' => 'yafmodule'
            ),
            array(
                'tkey1' => 'tval1',
                'tkey2' => 'tval2'
            )
        )
);

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(%d) "/yafmodule/yafcontroller/yafaction"
string(%d) "/yafmodule/yafcontroller/yafaction?tkey1=tval1&tkey2=tval2"

Valeurs de retour


Le but de match

  • « Yaf_Route_Static::assemble
  • Yaf_Route_Static::route »
  • PHP Manual
  • Yaf_Route_Static
  • Le but de match

Yaf_Route_Static::match

(Yaf >=1.0.0)

Yaf_Route_Static::match — Le but de match

Description

public void Yaf_Route_Static::match ( string $uri )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

uri

Valeurs de retour


Route une requête

  • « Yaf_Route_Static::match
  • Yaf_Route_Supervar »
  • PHP Manual
  • Yaf_Route_Static
  • Route une requête

Yaf_Route_Static::route

(Yaf >=1.0.0)

Yaf_Route_Static::route — Route une requête

Description

public bool Yaf_Route_Static::route ( Yaf_Request_Abstract $request )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

request

Valeurs de retour

Retourne toujours TRUE.

Exemples

Exemple #1 Exemple avec Yaf_Route_Static::route()

// Supposons qu'il n'y a qu'un module défini : index
Request: http://yourdomain.com/a/b
=> module = index, controller=a, action=b

//Supposons ap.action_prefer = On
Request: http://yourdomain.com/b
=> module = default(index), controller = default(index), action = b

//Supposons ap.action_prefer = Off
Request: http://yourdomain.com/b
=> module = default(index), controller = b, action = default(index)

Requête : http://yourdomain.com/a/b/foo/bar/test/a/id/4
=> module = default(index), controller = a, action = b, request parameters: foo = bar, test = a, id = 4

Voir aussi

  • Yaf_Route_Supervar::route() - Le but de route
  • Yaf_Route_Simple::route() - Route une requête
  • Yaf_Route_Regex::route() - Le but de route
  • Yaf_Route_Rewrite::route() - Le but de route
  • Yaf_Route_Map::route() - Le but route


La classe Yaf_Route_Supervar

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Route_Supervar implements Yaf_Route_Interface {
/* Propriétés */
protected $_var_name ;
/* Méthodes */
public string assemble ( array $info [, array $query ] )
public __construct ( string $supervar_name )
public bool route ( Yaf_Request_Abstract $request )
}

Propriétés

_var_name

Sommaire

  • Yaf_Route_Supervar::assemble — Assemble une URL
  • Yaf_Route_Supervar::__construct — Le but de __construct
  • Yaf_Route_Supervar::route — Le but de route


Assemble une URL

  • « Yaf_Route_Supervar
  • Yaf_Route_Supervar::__construct »
  • PHP Manual
  • Yaf_Route_Supervar
  • Assemble une URL

Yaf_Route_Supervar::assemble

(Yaf >=2.3.0)

Yaf_Route_Supervar::assemble — Assemble une URL

Description

public string Yaf_Route_Supervar::assemble ( array $info [, array $query ] )

Assemble une URL.

Liste de paramètres

info

query

Exemples

Exemple #1 Exemple avec Yaf_Route_Supervar::assemble()

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Supervar('r');

$router->addRoute("supervar", $route);

var_dump($router->getRoute('supervar')->assemble(
        array(
              ':a' => 'yafaction',
              'tkey' => 'tval',
              ':c' => 'yafcontroller',
              ':m' => 'yafmodule'
        ),
        array(
              'tkey1' => 'tval1',
              'tkey2' => 'tval2'
        )
));

try {
var_dump($router->getRoute('supervar')->assemble(
        array(
              ':a' => 'yafaction',
              'tkey' => 'tval',
              ':m' => 'yafmodule'
        ),
        array(
              'tkey1' => 'tval1',
              'tkey2' => 'tval2',
              1 => array(),
        )
));
} catch (Exception $e) {
    var_dump($e->getMessage());
}

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(%d) "?r=/yafmodule/yafcontroller/yafaction&tkey1=tval1&tkey2=tval2"
string(%d) "You need to specify the controller by ':c'"

Valeurs de retour


Le but de __construct

  • « Yaf_Route_Supervar::assemble
  • Yaf_Route_Supervar::route »
  • PHP Manual
  • Yaf_Route_Supervar
  • Le but de __construct

Yaf_Route_Supervar::__construct

(Yaf >=1.0.0)

Yaf_Route_Supervar::__construct — Le but de __construct

Description

public Yaf_Route_Supervar::__construct ( string $supervar_name )

Yaf_Route_Supervar est similaire à Yaf_Route_Static, à la différence près que Yaf_Route_Supervar cherchera les informations quant au chemin dans la chaîne de requête, et que le paramètre supervar_name est une clé.

Liste de paramètres

supervar_name

Le nom de la clé.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Route_Supervar()

<?php
   /**
    * Ajoute une route supervar à la pile Yaf_Router
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Supervar("r"));
    );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/** Pour la requête : http://yourdomain.com/xx/oo/?r=/ctr/act/var/value
  * L'affichage sera :
  */
  array (
    "module"   => index(default),
    "controller" => ctr,
    "action"     => act,
    "params"     => array(
          "var" => value,
     )
  )

Voir aussi

  • Yaf_Router::addRoute() - Ajoute une nouvelle route dans un routeur
  • Yaf_Router::addConfig() - Ajoute une route définie dans la configuration d'un routeur
  • Yaf_Route_Static
  • Yaf_Route_Regex
  • Yaf_Route_Simple
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Le but de route

  • « Yaf_Route_Supervar::__construct
  • Yaf_Session »
  • PHP Manual
  • Yaf_Route_Supervar
  • Le but de route

Yaf_Route_Supervar::route

(Yaf >=1.0.0)

Yaf_Route_Supervar::route — Le but de route

Description

public bool Yaf_Route_Supervar::route ( Yaf_Request_Abstract $request )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

request

Valeurs de retour

S'il y a une clé (qui a été définie dans Yaf_Route_Supervar::__construct()) dans $_GET, TRUE sera retourné, FALSE sinon.


La classe Yaf_Session

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Session implements Iterator , ArrayAccess , Countable {
/* Propriétés */
protected static $_instance ;
protected $_session ;
protected $_started ;
/* Méthodes */
private void __clone ( void )
private __construct ( void )
public void count ( void )
public void current ( void )
public void del ( string $name )
public void __get ( string $name )
public static void getInstance ( void )
public void has ( string $name )
public void __isset ( string $name )
public void key ( void )
public void next ( void )
public void offsetExists ( string $name )
public void offsetGet ( string $name )
public void offsetSet ( string $name , string $value )
public void offsetUnset ( string $name )
public void rewind ( void )
public void __set ( string $name , string $value )
private void __sleep ( void )
public void start ( void )
public void __unset ( string $name )
public void valid ( void )
private void __wakeup ( void )
}

Propriétés

_instance

_session

_started

Sommaire

  • Yaf_Session::__clone — Le but de __clone
  • Yaf_Session::__construct — Le constructeur de __construct
  • Yaf_Session::count — Le but de count
  • Yaf_Session::current — Le but de current
  • Yaf_Session::del — Le but de del
  • Yaf_Session::__get — Le but de __get
  • Yaf_Session::getInstance — Le but de getInstance
  • Yaf_Session::has — Le but de has
  • Yaf_Session::__isset — Le but de __isset
  • Yaf_Session::key — Le but de key
  • Yaf_Session::next — Le but de next
  • Yaf_Session::offsetExists — Le but de offsetExists
  • Yaf_Session::offsetGet — Le but de offsetGet
  • Yaf_Session::offsetSet — Le but de offsetSet
  • Yaf_Session::offsetUnset — Le but de offsetUnset
  • Yaf_Session::rewind — Le but de rewind
  • Yaf_Session::__set — Le but de __set
  • Yaf_Session::__sleep — Le but de __sleep
  • Yaf_Session::start — Le but de start
  • Yaf_Session::__unset — Le but de __unset
  • Yaf_Session::valid — Le but de valid
  • Yaf_Session::__wakeup — Le but de __wakeup


Le but de __clone

  • « Yaf_Session
  • Yaf_Session::__construct »
  • PHP Manual
  • Yaf_Session
  • Le but de __clone

Yaf_Session::__clone

(Yaf >=1.0.0)

Yaf_Session::__clone — Le but de __clone

Description

private void Yaf_Session::__clone ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le constructeur de __construct

  • « Yaf_Session::__clone
  • Yaf_Session::count »
  • PHP Manual
  • Yaf_Session
  • Le constructeur de __construct

Yaf_Session::__construct

(Yaf >=1.0.0)

Yaf_Session::__construct — Le constructeur de __construct

Description

private Yaf_Session::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de count

  • « Yaf_Session::__construct
  • Yaf_Session::current »
  • PHP Manual
  • Yaf_Session
  • Le but de count

Yaf_Session::count

(Yaf >=1.0.0)

Yaf_Session::count — Le but de count

Description

public void Yaf_Session::count ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de current

  • « Yaf_Session::count
  • Yaf_Session::del »
  • PHP Manual
  • Yaf_Session
  • Le but de current

Yaf_Session::current

(Yaf >=1.0.0)

Yaf_Session::current — Le but de current

Description

public void Yaf_Session::current ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de del

  • « Yaf_Session::current
  • Yaf_Session::__get »
  • PHP Manual
  • Yaf_Session
  • Le but de del

Yaf_Session::del

(Yaf >=1.0.0)

Yaf_Session::del — Le but de del

Description

public void Yaf_Session::del ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de __get

  • « Yaf_Session::del
  • Yaf_Session::getInstance »
  • PHP Manual
  • Yaf_Session
  • Le but de __get

Yaf_Session::__get

(Yaf >=1.0.0)

Yaf_Session::__get — Le but de __get

Description

public void Yaf_Session::__get ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de getInstance

  • « Yaf_Session::__get
  • Yaf_Session::has »
  • PHP Manual
  • Yaf_Session
  • Le but de getInstance

Yaf_Session::getInstance

(Yaf >=1.0.0)

Yaf_Session::getInstance — Le but de getInstance

Description

public static void Yaf_Session::getInstance ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de has

  • « Yaf_Session::getInstance
  • Yaf_Session::__isset »
  • PHP Manual
  • Yaf_Session
  • Le but de has

Yaf_Session::has

(Yaf >=1.0.0)

Yaf_Session::has — Le but de has

Description

public void Yaf_Session::has ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de __isset

  • « Yaf_Session::has
  • Yaf_Session::key »
  • PHP Manual
  • Yaf_Session
  • Le but de __isset

Yaf_Session::__isset

(Yaf >=1.0.0)

Yaf_Session::__isset — Le but de __isset

Description

public void Yaf_Session::__isset ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de key

  • « Yaf_Session::__isset
  • Yaf_Session::next »
  • PHP Manual
  • Yaf_Session
  • Le but de key

Yaf_Session::key

(Yaf >=1.0.0)

Yaf_Session::key — Le but de key

Description

public void Yaf_Session::key ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de next

  • « Yaf_Session::key
  • Yaf_Session::offsetExists »
  • PHP Manual
  • Yaf_Session
  • Le but de next

Yaf_Session::next

(Yaf >=1.0.0)

Yaf_Session::next — Le but de next

Description

public void Yaf_Session::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de offsetExists

  • « Yaf_Session::next
  • Yaf_Session::offsetGet »
  • PHP Manual
  • Yaf_Session
  • Le but de offsetExists

Yaf_Session::offsetExists

(Yaf >=1.0.0)

Yaf_Session::offsetExists — Le but de offsetExists

Description

public void Yaf_Session::offsetExists ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de offsetGet

  • « Yaf_Session::offsetExists
  • Yaf_Session::offsetSet »
  • PHP Manual
  • Yaf_Session
  • Le but de offsetGet

Yaf_Session::offsetGet

(Yaf >=1.0.0)

Yaf_Session::offsetGet — Le but de offsetGet

Description

public void Yaf_Session::offsetGet ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de offsetSet

  • « Yaf_Session::offsetGet
  • Yaf_Session::offsetUnset »
  • PHP Manual
  • Yaf_Session
  • Le but de offsetSet

Yaf_Session::offsetSet

(Yaf >=1.0.0)

Yaf_Session::offsetSet — Le but de offsetSet

Description

public void Yaf_Session::offsetSet ( string $name , string $value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

value

Valeurs de retour


Le but de offsetUnset

  • « Yaf_Session::offsetSet
  • Yaf_Session::rewind »
  • PHP Manual
  • Yaf_Session
  • Le but de offsetUnset

Yaf_Session::offsetUnset

(Yaf >=1.0.0)

Yaf_Session::offsetUnset — Le but de offsetUnset

Description

public void Yaf_Session::offsetUnset ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de rewind

  • « Yaf_Session::offsetUnset
  • Yaf_Session::__set »
  • PHP Manual
  • Yaf_Session
  • Le but de rewind

Yaf_Session::rewind

(Yaf >=1.0.0)

Yaf_Session::rewind — Le but de rewind

Description

public void Yaf_Session::rewind ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __set

  • « Yaf_Session::rewind
  • Yaf_Session::__sleep »
  • PHP Manual
  • Yaf_Session
  • Le but de __set

Yaf_Session::__set

(Yaf >=1.0.0)

Yaf_Session::__set — Le but de __set

Description

public void Yaf_Session::__set ( string $name , string $value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

value

Valeurs de retour


Le but de __sleep

  • « Yaf_Session::__set
  • Yaf_Session::start »
  • PHP Manual
  • Yaf_Session
  • Le but de __sleep

Yaf_Session::__sleep

(Yaf >=1.0.0)

Yaf_Session::__sleep — Le but de __sleep

Description

private void Yaf_Session::__sleep ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de start

  • « Yaf_Session::__sleep
  • Yaf_Session::__unset »
  • PHP Manual
  • Yaf_Session
  • Le but de start

Yaf_Session::start

(Yaf >=1.0.0)

Yaf_Session::start — Le but de start

Description

public void Yaf_Session::start ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __unset

  • « Yaf_Session::start
  • Yaf_Session::valid »
  • PHP Manual
  • Yaf_Session
  • Le but de __unset

Yaf_Session::__unset

(Yaf >=1.0.0)

Yaf_Session::__unset — Le but de __unset

Description

public void Yaf_Session::__unset ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de valid

  • « Yaf_Session::__unset
  • Yaf_Session::__wakeup »
  • PHP Manual
  • Yaf_Session
  • Le but de valid

Yaf_Session::valid

(Yaf >=1.0.0)

Yaf_Session::valid — Le but de valid

Description

public void Yaf_Session::valid ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de __wakeup

  • « Yaf_Session::valid
  • Yaf_Exception »
  • PHP Manual
  • Yaf_Session
  • Le but de __wakeup

Yaf_Session::__wakeup

(Yaf >=1.0.0)

Yaf_Session::__wakeup — Le but de __wakeup

Description

private void Yaf_Session::__wakeup ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe Yaf_Exception

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Exception extends Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes */
public __construct ( void )
public void getPrevious ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Sommaire

  • Yaf_Exception::__construct — Le but de __construct
  • Yaf_Exception::getPrevious — Le but de getPrevious


Le but de __construct

  • « Yaf_Exception
  • Yaf_Exception::getPrevious »
  • PHP Manual
  • Yaf_Exception
  • Le but de __construct

Yaf_Exception::__construct

(Yaf >=1.0.0)

Yaf_Exception::__construct — Le but de __construct

Description

public Yaf_Exception::__construct ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Le but de getPrevious

  • « Yaf_Exception::__construct
  • Yaf_Exception_TypeError »
  • PHP Manual
  • Yaf_Exception
  • Le but de getPrevious

Yaf_Exception::getPrevious

(Yaf >=1.0.0)

Yaf_Exception::getPrevious — Le but de getPrevious

Description

public void Yaf_Exception::getPrevious ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe Yaf_Exception_TypeError

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Exception_TypeError extends Yaf_Exception {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


La classe Yaf_Exception_StartupError

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Exception_StartupError extends Yaf_Exception {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


La classe Yaf_Exception_DispatchFailed

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Exception_DispatchFailed extends Yaf_Exception {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


La classe Yaf_Exception_RouterFailed

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Exception_RouterFailed extends Yaf_Exception {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


La classe Yaf_Exception_LoadFailed

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Exception_LoadFailed extends Yaf_Exception {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


La classe Yaf_Exception_LoadFailed_Module

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Exception_LoadFailed_Module extends Yaf_Exception_LoadFailed {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


La classe Yaf_Exception_LoadFailed_Controller

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Exception_LoadFailed_Controller extends Yaf_Exception_LoadFailed {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


La classe Yaf_Exception_LoadFailed_Action

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Exception_LoadFailed_Action extends Yaf_Exception_LoadFailed {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


La classe Yaf_Exception_LoadFailed_View

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

Yaf_Exception_LoadFailed_View extends Yaf_Exception_LoadFailed {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


Taint

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • More Details
    • Fonctions et requêtes qui seront marqués comme chaînes non propres
    • Fonctions et requêtes qui vérifiront si la chaîne est propre
    • Fonctions qui ne nettoiront pas une chaîne non propre
  • Fonctions Taint
    • is_tainted — Vérifie si une chaîne est nettoyée
    • taint — Nettoie une chaîne
    • untaint — Ne nettoie pas une chaîne


Introduction

Taint est une extension dont le but est de détecter les codes XSS. Cette extension peut être utilisée pour mettre en lumière certaines vulnérabilités concernant des injections sql, des injections shell, etc.

Lorsque taint est actif, si vous passez une chaîne non propre (provenant de $_GET, $_POST ou $_COOKIE) à des fonctions, taint vous en alertera.

Exemple #1 Exemple avec Taint()

<?php
$a = trim($_GET['a']);

$file_name = '/tmp' .  $a;
$output    = "Welcome, {$a} !!!";
$var       = "output";
$sql       = "Select *  from " . $a;
$sql      .= "ooxx";

echo $output;

print $$var;

include($file_name);

mysql_query($sql);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Warning: main() [function.echo]: Attempt to echo a string that might be tainted

Warning: main() [function.echo]: Attempt to print a string that might be tainted

Warning: include() [function.include]: File path contains data that might be tainted

Warning: mysql_query() [function.mysql-query]: SQL statement contains data that might be tainted


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/taint.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Taint Options de configuration
Nom | Défaut | Modifiable | Historique
taint.enable | 0 | sa valeur PHP_INI_SYS |
taint.error_level | E_WARNING | sa valeur PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

taint.enable integer

Si l'on doit activer taint.

taint.error_level integer

le type d'erreur que taint va reporter lorsqu'il trouvera une chaîne non propre.


  • « Configuration à l'exécution
  • More Details »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


More Details

Sommaire

  • Fonctions et requêtes qui seront marqués comme chaînes non propres
  • Fonctions et requêtes qui vérifiront si la chaîne est propre
  • Fonctions qui ne nettoiront pas une chaîne non propre


Fonctions et requêtes qui seront marqués comme chaînes non propres

Fonction/Requête | Depuis
= (assignement) | 0.1.0
. (concat) | 0.1.0
"{$var}" (substitution de variable) | 0.1.0
.= (assignement de concaténation) | 0.1.0
strval | 0.3.0
explode | 0.3.0
implode | 0.3.0
sprintf | 0.3.0
vsprintf | 0.3.0
trim | 0.4.0
rtrim | 0.4.0
ltrim | 0.4.0


Fonctions et requêtes qui vérifiront si la chaîne est propre

Fonction/Requêtes | Depuis
Requêtes basiques
eval | 0.1.0
include/include_once | 0.1.0
require/require_once | 0.1.0
Fonctions d'affichage
echo | 0.1.0
print | 0.1.0
printf | 0.1.0
file_put_contents | 0.1.0
Fonctions du système de fichiers
fopen | 0.2.0
opendir | 0.2.0
basename | 0.2.0
dirname | 0.2.0
file | 0.2.0
pathinfo | 0.2.0
Fonctions de base de données
mysql_query | 0.2.0
mysqli_query/MySQLi::query | 0.2.0
sqlite_query/SqliteDataBase::query | 0.3.0
sqlite_single_query/SqliteDataBase::singleQuery | 0.3.0
oci_parse | 0.3.0
PDO::query | 0.3.0
PDO::prepare | 0.3.0
Fonctions de ligne de commande
system | 0.1.0
exec | 0.1.0
proc_open | 0.1.0
passthru | 0.1.0
shell_exec | 0.3.0


Fonctions qui ne nettoiront pas une chaîne non propre

Function | Since
addslashes | 0.1.0
addcslashes | 0.1.0
htmlspecialchars | 0.1.0
htmlentities | 0.1.0
escapeshellcmd | 0.1.0
mysql_escape_string | 0.1.0
mysql_real_escape_string | 0.1.0
mysqli_escape_string/MySQLi::escape_string | 0.1.0
mysqli_real_escape_string/MySQLi::real_escape_string | 0.1.0
sqlite_escape_string/SqliteDataBase::escapeString | 0.3.0
PDO::quote | 0.3.0


Fonctions Taint

Sommaire

  • is_tainted — Vérifie si une chaîne est nettoyée
  • taint — Nettoie une chaîne
  • untaint — Ne nettoie pas une chaîne


Vérifie si une chaîne est nettoyée

  • « Fonctions Taint
  • taint »
  • PHP Manual
  • Fonctions Taint
  • Vérifie si une chaîne est nettoyée

is_tainted

(PECL taint >=0.1.0)

is_tainted — Vérifie si une chaîne est nettoyée

Description

bool is_tainted ( string $string )

Vérifie si une chaîne est nettoyée.

Liste de paramètres

string

Valeurs de retour

Retourne TRUE si la chaîne est nettoyée, FALSE sinon.


Nettoie une chaîne

  • « is_tainted
  • untaint »
  • PHP Manual
  • Fonctions Taint
  • Nettoie une chaîne

taint

(PECL taint >=0.1.0)

taint — Nettoie une chaîne

Description

bool taint ( string &$string [, string $... ] )

Rend une chaîne propre. Utilisé uniquement dans un but de test.

Liste de paramètres

string

...

Valeurs de retour

Retourne TRUE si la transformation a eu lieu, et retournera toujours TRUE si l'extension taint n'est pas activée.


Ne nettoie pas une chaîne

  • « taint
  • Autres services »
  • PHP Manual
  • Fonctions Taint
  • Ne nettoie pas une chaîne

untaint

(PECL taint >=0.1.0)

untaint — Ne nettoie pas une chaîne

Description

bool untaint ( string &$string [, string $... ] )

Ne nettoie pas une chaîne.

Liste de paramètres

string

...

Valeurs de retour


Autres services

  • chdb — Base de données de hachage constante
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • chdb — La classe chdb
    • Fonctions chdb
  • cURL — Bibliothèque d'URL client
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions cURL
    • CURLFile — La classe CURLFile
  • Event
    • Introduction
    • Installation/Configuration
    • Exemples
    • Les drapeaux d'événements
    • A propos de la persistence des événements
    • Fonctions de rappel des événements
    • Construction d'un événement de type signal
    • Event — La classe Event
    • EventBase — La classe EventBase
    • EventBuffer — La classe EventBuffer
    • EventBufferEvent — La classe EventBufferEvent
    • A propos des fonctions de rappel du buffer d'événements
    • EventConfig — La classe EventConfig
    • EventDnsBase — La classe EventDnsBase
    • EventHttp — La classe EventHttp
    • EventHttpConnection — La classe EventHttpConnection
    • EventHttpRequest — La classe EventHttpRequest
    • EventListener — La classe EventListener
    • EventSslContext — La classe EventSslContext
    • EventUtil — La classe EventUtil
  • FAM — Moniteur d'altération de fichiers
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions FAM
  • FTP
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions FTP
  • Gearman
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • GearmanClient — La classe GearmanClient
    • GearmanJob — La classe GearmanJob
    • GearmanTask — La classe GearmanTask
    • GearmanWorker — La classe GearmanWorker
    • GearmanException — La classe GearmanException
  • Gopher — Net Gopher
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Gopher
  • Gupnp
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Gupnp
  • Hyperwave API
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Integration with Apache
    • Hyperwave API Fonctions
  • LDAP — Lightweight Directory Access Protocol
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Utiliser les fonctions LDAP de PHP
    • Exemples
    • Fonctions LDAP
  • Memcache
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Memcache — La classe Memcache
    • Fonctions Memcache
  • Memcached
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Délai d'expiration
    • Fonctions de rappel
    • Support des sessions
    • Memcached — La classe Memcached
    • MemcachedException — La classe MemcachedException
  • mqseries
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • mqseries Fonctions
  • Réseau
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions réseaux
  • RRD — RRDtool
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions RRD
    • RRDCreator — La classe RRDCreator
    • RRDGraph — La classe RRDGraph
    • RRDUpdater — La classe RRDUpdater
  • SAM — SAM - Messagerie asynchrone
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions SAM
  • SNMP
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions SNMP
    • SNMP — La classe SNMP
    • SNMPException — La classe SNMPException
  • Sockets
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Erreurs de socket
    • Fonctions sur les sockets
  • SSH2 — Fonctions Shell2 sécurisé
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Shell2
  • Stomp — Client Stomp
    • Introduction
    • Installation/Configuration
    • Exemples
    • Fonctions Stomp
    • Stomp — La classe Stomp
    • StompFrame — La classe StompFrame
    • StompException — La classe StompException
  • SVM — Support Vector Machine
    • Introduction
    • Installation/Configuration
    • Exemples
    • SVM — La classe SVM
    • SVMModel — La classe SVMModel
  • SVN — Subversion
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions SVN
  • TCP — TCP Wrappers
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions TCP
  • Varnish
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • VarnishAdmin — La classe VarnishAdmin
    • VarnishStat — La classe VarnishStat
    • VarnishLog — La classe VarnishLog
  • YAZ
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • YAZ Fonctions
  • YP/NIS
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions YP/NIS
  • 0MQ messaging — ZMQ
    • Introduction
    • Installation/Configuration
    • ZMQ — La classe ZMQ
    • ZMQContext — La classe ZMQContext
    • ZMQSocket — La classe ZMQSocket
    • ZMQPoll — La classe ZMQPoll
    • ZMQDevice — La classe ZMQDevice
  • ZooKeeper
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • ZooKeeper — The ZooKeeper class


Base de données de hachage constante

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • chdb — La classe chdb
    • chdb::__construct — Crée une nouvelle instance chdb
    • chdb::get — Récupère la valeur associée à une clé
  • Fonctions chdb
    • chdb_create — Crée un fichier chdb


Introduction

CHDB (base de données de hachage constante) est une base de données clé-valeur rapide pour les données constantes, réalisée en utilisant un fichier mappé en mémoire, et fournissant les fonctionnalités suivantes :

  • Chargement initial extrêmement rapide, suivant la taille de la base de données.

  • Seules les pages du fichier qui sont actuellement utilisées sont chargées depuis le disque.

  • Une fois la page chargée, elle est partagée entre plusieurs processus.

  • Les pages chargées sont mises en cache entre les requêtes et les processus.

Une utilisation typique de CHDB est une alternative rapide pour définir plusieurs constantes PHP.

CHDB est implémenté en interne comme une table de hachage utilisant une fonction de » hachage parfait, garantissant ainsi un temps de recherche inégalé.


Pré-requis

Ce module utilise » cmph (version 0.9) pour fournir la fonction » de hachage parfaite.

cmph 0.9 est nécessaire pour installer ce module.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/chdb

» cmph (version 0.9) est nécessaire pour installer cette extension. Si cmph est insatallé dans un dossier non standard, utilisez l'option --with-libcmph-dir=DIR , où DIR est le préfixe d'installation cmph.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • chdb
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Exemples

Exemple #1 Création d'un fichier

<?php

$data = array(
    'key1' => 'value1',
    'key2' => 'value2',
    // ...
);
chdb_create('data.chdb', $data);

?>

L'exemple ci-dessus génère un fichier chdb nommé data.chdb et contenant les paires clé-valeur définies dans $data.

Exemple #2 Chargement et affichage d'un fichier file

<?php

$chdb = new chdb('data.chdb');
$value1 = $chdb->get('key1');
$value2 = $chdb->get('key2');

echo $value1, PHP_EOL;
echo $value2, PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

value1
value2


La classe chdb

(PECL chdb >= 0.1.0)

Introduction

Représente un fichier chdb chargé.

Synopsis de la classe

chdb {
/* Methodes */
public __construct ( string $pathname )
public string get ( string $key )
}

Sommaire

  • chdb::__construct — Crée une nouvelle instance chdb
  • chdb::get — Récupère la valeur associée à une clé


Crée une nouvelle instance chdb

  • « chdb
  • chdb::get »
  • PHP Manual
  • chdb
  • Crée une nouvelle instance chdb

chdb::__construct

(PECL chdb >= 0.1.0)

chdb::__construct — Crée une nouvelle instance chdb

Description

public chdb::__construct ( string $pathname )

Charge un fichier chdb, en le mappant en mémoire.

Note:

Bien que quelques vérifications sont effectuées sur le fichier spécifié, elles le sont surtout pour éviter les erreurs courantes (par exemple, charger un fichier qui n'est pas une base de données chdb, ou bien un fichier qui n'est pas compatible avec le système courant). Un fichier chdb construit de manière malveillante peut être dangereux s'il est chargé, aussi, les fichiers chdb doivent être partagés et traités avec les mêmes protections utilisées pour les bibliothèques partagées PHP.

Liste de paramètres

pathname

Le nom du fichier à charger.

Erreurs / Exceptions

Lance une exception si le fichier chdb n'a pu être chargé avec succès.

Note:

Un fichier chdb valide peut ne pas être chargé s'il a été créé sur une architecture avec un endian différent, avec une version de chdb différente, ou si le fichier est trop gros pour être mappé en mémoire (dans le cas de gros fichier sur les architectures 32-bit). Dans ces cas, le chargement échoue en lançant une exception, mais sans effectuer d'opération illégale.


Récupère la valeur associée à une clé

  • « chdb::__construct
  • Fonctions chdb »
  • PHP Manual
  • chdb
  • Récupère la valeur associée à une clé

chdb::get

(PECL chdb >= 0.1.0)

chdb::get — Récupère la valeur associée à une clé

Description

public string chdb::get ( string $key )

Récupère la valeur associée avec une clé depuis la base de données chdb.

Liste de paramètres

key

La clé dont nous voulons récupérer la valeur.

Valeurs de retour

Retourne une chaîne de caractères contenant la valeur associée avec le paramètre key fourni, ou NULL si la clé n'a pu être trouvée.

Exemples

Exemple #1 Exemple avec chdb::get()

<?php

$data = array(
    'key1' => 'value1',
    'key2' => 'value2',
    // ...
);
chdb_create('data.chdb', $data);

$chdb = new chdb('data.chdb');
$value1 = $chdb->get('key1');
$value2 = $chdb->get('key2');

echo $value1, PHP_EOL;
echo $value2, PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

value1
value2


  • « chdb::get
  • chdb_create »
  • PHP Manual
  • chdb
  • Fonctions chdb

Fonctions chdb

Sommaire

  • chdb_create — Crée un fichier chdb


Crée un fichier chdb

  • « Fonctions chdb
  • cURL »
  • PHP Manual
  • Fonctions chdb
  • Crée un fichier chdb

chdb_create

(PECL chdb >= 0.1.0)

chdb_create — Crée un fichier chdb

Description

bool chdb_create ( string $pathname , array $data )

chdb_create() crée un fichier chdb contenant les paires clé-valeur spécifiées.

Note:

Les fichiers chdb ne sont pas portables entre les environnements little-endian et big-endian. Mise à part cela, ils sont portables sur les différentes architectures. De plus, la compatibilité entre les différentes versions de chdb n'est pas garantie.

Liste de paramètres

pathname

Le nom du fichier à créer.

Si un fichier avec le même nom existe déjà, il sera écrasé.

data

Un tableau contenant les paires clé-valeur à stocker dans le fichier chdb.

Les valeurs et les clés sont converties en chaîne de caractères avant d'être écrites dans le fichier, vu que chdb ne supporte que les chaînes de caractères. Notez que les chaînes binaires sont également supportées, que ce soit comme clé ou comme valeur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une exception si le fichier chdb n'a pu être créé.

Exemples

Exemple #1 Exemple avec chdb_create()

<?php

$data = array(
    'key1' => 'value1',
    'key2' => 'value2',
    // ...
);
chdb_create('data.chdb', $data);

?>

L'exemple ci-dessus génère un fichier chdb nommé data.chdb, contenant les paires clé-valeur définies dans la variable $data.


Bibliothèque d'URL client

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Exemple avec curl
  • Fonctions cURL
    • curl_close — Ferme une session CURL
    • curl_copy_handle — Copie une ressource cURL avec toutes ses préférences
    • curl_errno — Retourne le dernier message d'erreur cURL
    • curl_error — Retourne une chaîne contenant le dernier message d'erreur cURL
    • curl_escape — Encode URL la chaîne fournie
    • curl_exec — Exécute une session cURL
    • curl_file_create — Crée un objet CURLFile
    • curl_getinfo — Lit les informations détaillant un transfert cURL
    • curl_init — Initialise une session cURL
    • curl_multi_add_handle — Ajoute une ressource cURL à un cURL multiple
    • curl_multi_close — Termine un jeu de sessions cURL
    • curl_multi_exec — Exécute les sous-requêtes de la session cURL
    • curl_multi_getcontent — Retourne le contenu obtenu avec l'option CURLOPT_RETURNTRANSFER
    • curl_multi_info_read — Lit les informations sur les transferts actuels
    • curl_multi_init — Retourne un nouveau cURL multiple
    • curl_multi_remove_handle — Retire une ressource cURL d'un cURL multiple
    • curl_multi_select — Attend une activité sur n'importe quelle connexion curl_multi
    • curl_multi_setopt — Définit une option pour le gestionnaire multiple cURL
    • curl_multi_strerror — Retourne la description d'un code erreur
    • curl_pause — Met en pause, ou sort de la pause une connexion
    • curl_reset — Ré-initialise toutes les options d'un gestionnaire de session libcurl
    • curl_setopt_array — Fixe plusieurs options pour un transfert cURL
    • curl_setopt — Définit une option de transmission cURL
    • curl_share_close — Ferme un gestionnaire partagé cURL
    • curl_share_init — Initialise un gestionnaire partagé cURL
    • curl_share_setopt — Définit une option du gestionnaire partagé cURL
    • curl_strerror — Retourne la chaîne descriptive du code erreur fourni
    • curl_unescape — Décode l'URL fourni
    • curl_version — Retourne la version courante de cURL
  • CURLFile — La classe CURLFile
    • CURLFile::__construct — Crée un objet CURLFile
    • CURLFile::getFilename — Récupère le nom du fichier
    • CURLFile::getMimeType — Récupère le type MIME
    • CURLFile::getPostFilename — Récupère le nom de fichier pour POST
    • CURLFile::setMimeType — Définit le type MIME
    • CURLFile::setPostFilename — Définit le nom du fichier pour POST
    • CURLFile::__wakeup — Gestionnaire de délinéarisation


Introduction

PHP supporte libcurl, une bibliothèque créée par Daniel Stenberg, qui vous permet de vous connecter et de communiquer avec différents types de serveurs, et ce, avec différents types de protocoles. libcurl supporte actuellement les protocoles http, https, ftp, gopher, telnet, DICT, file et LDAP. libcurl supporte également les certificats HTTPS, HTTP POST, HTTP PUT, le téléchargement FTP (ceci pouvant également être effectué via l'extension ftp de PHP), les formulaires de téléchargement HTTP, les serveurs mandataires (proxy), les cookies et l'identification utilisateur/mot de passe.


Pré-requis

Afin de pouvoir utiliser les fonctions cURL dans PHP, vous devez installer le paquet » libcurl. PHP requiert libcurl version 7.10.5 ou supérieur.


Installation

Pour utiliser cURL depuis les scripts PHP, vous devez compiler celui-ci avec l'option --with-curl[=DIR] où DIR est le chemin jusqu'au dossier contenant les dossiers lib et include. Dans le dossier include, il doit se trouver un dossier appelé curl, qui contient notamment les fichiers easy.h et curl.h. Il doit aussi se trouver un fichier nommé libcurl.a dans le dossier lib. À partir de PHP 4.3.0, vous pouvez aussi configurer PHP pour qu'il utilise cURL comme gestionnaire d'URL avec l'option --with-curlwrappers . Cette fonctionnalité a été déplacée en PECL depuis PHP 5.5.0.

Note: Note aux utilisateurs Win32
Afin d'activer ce module dans l'environnement Windows, libeay32.dll et ssleay32.dll doivent être présents dans votre PATH. Vous n'avez pas besoin de libcurl.dll du site cURL.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration cURL
Nom | Défaut | Modifiable | Historique
curl.cainfo | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.7.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

curl.cainfo string

Une valeur par défaut pour l'option CURLOPT_CAINFO. Ce doit être un chemin absolu.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit 2 types de ressources : un gestionnaire cURL et un gestionnaire multiple cURL.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Une description ainsi que la façon dont on utilise ces constantes se trouvent dans la documentation des fonctions curl_setopt(), curl_multi_setopt() et curl_getinfo().

CURLOPT_AUTOREFERER (entier)
Disponible depuis PHP 5.1.0
CURLOPT_COOKIESESSION (entier)
Disponible depuis PHP 5.1.0
CURLOPT_DNS_USE_GLOBAL_CACHE (entier)
CURLOPT_DNS_CACHE_TIMEOUT (entier)
CURLOPT_FTP_SSL (entier)
Disponible depuis PHP 5.2.0
CURLFTPSSL_TRY (entier)
Disponible depuis PHP 5.2.0
CURLFTPSSL_ALL (entier)
Disponible depuis PHP 5.2.0
CURLFTPSSL_CONTROL (entier)
Disponible depuis PHP 5.2.0
CURLFTPSSL_NONE (entier)
Disponible depuis PHP 5.2.0
CURLOPT_PRIVATE (entier)
Disponible depuis PHP 5.2.4
CURLOPT_FTPSSLAUTH (entier)
Disponible depuis PHP 5.1.0
CURLOPT_PORT (entier)
CURLOPT_FILE (entier)
CURLOPT_INFILE (entier)
CURLOPT_INFILESIZE (entier)
CURLOPT_URL (entier)
CURLOPT_PROXY (entier)
CURLOPT_VERBOSE (entier)
CURLOPT_HEADER (entier)
CURLOPT_HTTPHEADER (entier)
CURLOPT_NOPROGRESS (entier)
CURLOPT_NOBODY (entier)
CURLOPT_FAILONERROR (entier)
CURLOPT_UPLOAD (entier)
CURLOPT_POST (entier)
CURLOPT_FTPLISTONLY (entier)
CURLOPT_FTPAPPEND (entier)
CURLOPT_FTP_CREATE_MISSING_DIRS (entier)
CURLOPT_NETRC (entier)
CURLOPT_FOLLOWLOCATION (entier)
Cette constante n'est pas disponible lorsque open_basedir ou safe_mode est actif.
CURLOPT_FTPASCII (entier)
CURLOPT_PUT (entier)
CURLOPT_MUTE (entier)
CURLOPT_USERPWD (entier)
CURLOPT_PROXYUSERPWD (entier)
CURLOPT_RANGE (entier)
CURLOPT_TIMEOUT (entier)
CURLOPT_TIMEOUT_MS (entier)
CURLOPT_TCP_NODELAY (entier)
Disponible depuis PHP 5.2.1
CURLOPT_POSTFIELDS (entier)
CURLOPT_PROGRESSFUNCTION (entier)
Disponible depuis PHP 5.3.0
CURLOPT_REFERER (entier)
CURLOPT_USERAGENT (entier)
CURLOPT_FTPPORT (entier)
CURLOPT_FTP_USE_EPSV (entier)
CURLOPT_LOW_SPEED_LIMIT (entier)
CURLOPT_LOW_SPEED_TIME (entier)
CURLOPT_RESUME_FROM (entier)
CURLOPT_COOKIE (entier)
CURLOPT_SSLCERT (entier)
CURLOPT_SSLCERTPASSWD (entier)
CURLOPT_WRITEHEADER (entier)
CURLOPT_SSL_VERIFYHOST (entier)
CURLOPT_COOKIEFILE (entier)
CURLOPT_SSLVERSION (entier)
CURL_SSLVERSION_DEFAULT (integer)
CURL_SSLVERSION_TLSv1 (integer)
CURL_SSLVERSION_SSLv2 (integer)
CURL_SSLVERSION_SSLv3 (integer)
CURL_SSLVERSION_TLSv1_0 (integer)
Disponible depuis PHP 5.5.19 et 5.6.3
CURL_SSLVERSION_TLSv1_1 (integer)
Disponible depuis PHP 5.5.19 et 5.6.3
CURL_SSLVERSION_TLSv1_2 (integer)
Disponible depuis PHP 5.5.19 et 5.6.3
CURLOPT_TIMECONDITION (entier)
CURLOPT_TIMEVALUE (entier)
CURLOPT_CUSTOMREQUEST (entier)
CURLOPT_STDERR (entier)
CURLOPT_TRANSFERTEXT (entier)
CURLOPT_RETURNTRANSFER (entier)
CURLOPT_QUOTE (entier)
CURLOPT_POSTQUOTE (entier)
CURLOPT_INTERFACE (entier)
CURLOPT_KRB4LEVEL (entier)
CURLOPT_HTTPPROXYTUNNEL (entier)
CURLOPT_FILETIME (entier)
CURLOPT_WRITEFUNCTION (entier)
CURLOPT_READFUNCTION (entier)
CURLOPT_PASSWDFUNCTION (entier)
CURLOPT_HEADERFUNCTION (entier)
CURLOPT_MAXREDIRS (entier)
CURLOPT_MAXCONNECTS (entier)
CURLOPT_CLOSEPOLICY (entier)
Supprimé en PHP 5.6.0.
CURLOPT_FRESH_CONNECT (entier)
CURLOPT_FORBID_REUSE (entier)
CURLOPT_RANDOM_FILE (entier)
CURLOPT_EGDSOCKET (entier)
CURLOPT_CONNECTTIMEOUT (entier)
CURLOPT_CONNECTTIMEOUT_MS (entier)
CURLOPT_SSL_VERIFYPEER (entier)
CURLOPT_CAINFO (entier)
CURLOPT_CAPATH (entier)
CURLOPT_COOKIEJAR (entier)
CURLOPT_SSL_CIPHER_LIST (entier)
CURLOPT_BINARYTRANSFER (entier)
CURLOPT_NOSIGNAL (entier)
CURLOPT_PROXYTYPE (entier)
Disponible depuis cURL 7.10.
CURLOPT_BUFFERSIZE (entier)
CURLOPT_HTTPGET (entier)
CURLOPT_HTTP_VERSION (entier)
CURLOPT_SSLKEY (entier)
CURLOPT_SSLKEYTYPE (entier)
CURLOPT_SSLKEYPASSWD (entier)
CURLOPT_SSLENGINE (entier)
CURLOPT_SSLENGINE_DEFAULT (entier)
CURLOPT_SSLCERTTYPE (entier)
CURLOPT_CRLF (entier)
CURLOPT_ENCODING (entier)
CURLOPT_PROXYPORT (entier)
CURLOPT_UNRESTRICTED_AUTH (entier)
CURLOPT_FTP_USE_EPRT (entier)
CURLOPT_HTTP200ALIASES (entier)
CURLOPT_HTTPAUTH (entier)
CURLAUTH_BASIC (entier)
CURLAUTH_DIGEST (entier)
CURLAUTH_GSSNEGOTIATE (entier)
CURLAUTH_NTLM (entier)
CURLAUTH_ANY (entier)
CURLAUTH_ANYSAFE (entier)
CURLOPT_PROXYAUTH (entier)
CURLOPT_MAX_RECV_SPEED_LARGE (entier)
Disponible depuis PHP 5.4.0 et cURL 7.15.5
CURLOPT_MAX_SEND_SPEED_LARGE (entier)
Disponible depuis PHP 5.4.0 et cURL 7.15.5
CURLCLOSEPOLICY_LEAST_RECENTLY_USED (entier)
Supprimé en PHP 5.6.0.
CURLCLOSEPOLICY_LEAST_TRAFFIC (entier)
Supprimé en PHP 5.6.0.
CURLCLOSEPOLICY_SLOWEST (entier)
Supprimé en PHP 5.6.0.
CURLCLOSEPOLICY_CALLBACK (entier)
Supprimé en PHP 5.6.0.
CURLCLOSEPOLICY_OLDEST (entier)
Supprimé en PHP 5.6.0.
CURLINFO_PRIVATE (entier)
Disponible depuis PHP 5.2.4
CURLINFO_EFFECTIVE_URL (entier)
CURLINFO_HTTP_CODE (entier)
CURLINFO_HEADER_OUT (entier)
Disponible depuis PHP 5.1.3
CURLINFO_HEADER_SIZE (entier)
CURLINFO_REQUEST_SIZE (entier)
CURLINFO_TOTAL_TIME (entier)
CURLINFO_NAMELOOKUP_TIME (entier)
CURLINFO_CONNECT_TIME (entier)
CURLINFO_PRETRANSFER_TIME (entier)
CURLINFO_SIZE_UPLOAD (entier)
CURLINFO_SIZE_DOWNLOAD (entier)
CURLINFO_SPEED_DOWNLOAD (entier)
CURLINFO_SPEED_UPLOAD (entier)
CURLINFO_FILETIME (entier)
CURLINFO_SSL_VERIFYRESULT (entier)
CURLINFO_CONTENT_LENGTH_DOWNLOAD (entier)
CURLINFO_CONTENT_LENGTH_UPLOAD (entier)
CURLINFO_STARTTRANSFER_TIME (entier)
CURLINFO_CONTENT_TYPE (entier)
CURLINFO_REDIRECT_TIME (entier)
CURLINFO_REDIRECT_COUNT (entier)
CURLINFO_REDIRECT_URL (string)
Disponible depuis PHP 5.3.7
CURLINFO_PRIMARY_IP (string)
Disponible depuis PHP 5.4.7
CURLINFO_PRIMARY_PORT (integer)
Disponible depuis PHP 5.4.7
CURLINFO_LOCAL_IP (string)
Disponible depuis PHP 5.4.7
CURLINFO_LOCAL_PORT (integer)
Disponible depuis PHP 5.4.7
CURL_TIMECOND_IFMODSINCE (entier)
CURL_TIMECOND_IFUNMODSINCE (entier)
CURL_TIMECOND_LASTMOD (entier)
CURL_VERSION_IPV6 (entier)
CURL_VERSION_KERBEROS4 (entier)
CURL_VERSION_SSL (entier)
CURL_VERSION_LIBZ (entier)
CURLVERSION_NOW (entier)
CURLE_OK (entier)
CURLE_UNSUPPORTED_PROTOCOL (entier)
CURLE_FAILED_INIT (entier)
CURLE_URL_MALFORMAT (entier)
CURLE_URL_MALFORMAT_USER (entier)
CURLE_COULDNT_RESOLVE_PROXY (entier)
CURLE_COULDNT_RESOLVE_HOST (entier)
CURLE_COULDNT_CONNECT (entier)
CURLE_FTP_WEIRD_SERVER_REPLY (entier)
CURLE_FTP_ACCESS_DENIED (entier)
CURLE_FTP_USER_PASSWORD_INCORRECT (entier)
CURLE_FTP_WEIRD_PASS_REPLY (entier)
CURLE_FTP_WEIRD_USER_REPLY (entier)
CURLE_FTP_WEIRD_PASV_REPLY (entier)
CURLE_FTP_WEIRD_227_FORMAT (entier)
CURLE_FTP_CANT_GET_HOST (entier)
CURLE_FTP_CANT_RECONNECT (entier)
CURLE_FTP_COULDNT_SET_BINARY (entier)
CURLE_PARTIAL_FILE (entier)
CURLE_FTP_COULDNT_RETR_FILE (entier)
CURLE_FTP_WRITE_ERROR (entier)
CURLE_FTP_QUOTE_ERROR (entier)
CURLE_HTTP_NOT_FOUND (entier)
CURLE_WRITE_ERROR (entier)
CURLE_MALFORMAT_USER (entier)
CURLE_FTP_COULDNT_STOR_FILE (entier)
CURLE_READ_ERROR (entier)
CURLE_OUT_OF_MEMORY (entier)
CURLE_OPERATION_TIMEOUTED (entier)
CURLE_FTP_COULDNT_SET_ASCII (entier)
CURLE_FTP_PORT_FAILED (entier)
CURLE_FTP_COULDNT_USE_REST (entier)
CURLE_FTP_COULDNT_GET_SIZE (entier)
CURLE_HTTP_RANGE_ERROR (entier)
CURLE_HTTP_POST_ERROR (entier)
CURLE_SSL_CONNECT_ERROR (entier)
CURLE_FTP_BAD_DOWNLOAD_RESUME (entier)
CURLE_FILE_COULDNT_READ_FILE (entier)
CURLE_LDAP_CANNOT_BIND (entier)
CURLE_LDAP_SEARCH_FAILED (entier)
CURLE_LIBRARY_NOT_FOUND (entier)
CURLE_FUNCTION_NOT_FOUND (entier)
CURLE_ABORTED_BY_CALLBACK (entier)
CURLE_BAD_FUNCTION_ARGUMENT (entier)
CURLE_BAD_CALLING_ORDER (entier)
CURLE_HTTP_PORT_FAILED (entier)
CURLE_BAD_PASSWORD_ENTERED (entier)
CURLE_TOO_MANY_REDIRECTS (entier)
CURLE_UNKNOWN_TELNET_OPTION (entier)
CURLE_TELNET_OPTION_SYNTAX (entier)
CURLE_OBSOLETE (entier)
CURLE_SSL_PEER_CERTIFICATE (entier)
CURLE_GOT_NOTHING (entier)
CURLE_SSL_ENGINE_NOTFOUND (entier)
CURLE_SSL_ENGINE_SETFAILED (entier)
CURLE_SEND_ERROR (entier)
CURLE_RECV_ERROR (entier)
CURLE_SHARE_IN_USE (entier)
CURLE_SSL_CERTPROBLEM (entier)
CURLE_SSL_CIPHER (entier)
CURLE_SSL_CACERT (entier)
CURLE_BAD_CONTENT_ENCODING (entier)
CURLE_LDAP_INVALID_URL (entier)
CURLE_FILESIZE_EXCEEDED (entier)
CURLE_FTP_SSL_FAILED (entier)
CURLFTPAUTH_DEFAULT (entier)
Disponible depuis PHP 5.1.0
CURLFTPAUTH_SSL (entier)
Disponible depuis PHP 5.1.0
CURLFTPAUTH_TLS (entier)
Disponible depuis PHP 5.1.0
CURLPROXY_HTTP (entier)
Disponible depuis cURL 7.10.
CURLPROXY_SOCKS4 (integer)
Disponible depuis PHP 5.2.10 et cURL 7.10.
CURLPROXY_SOCKS5 (entier)
Disponible depuis cURL 7.10.
CURL_NETRC_OPTIONAL (entier)
CURL_NETRC_IGNORED (entier)
CURL_NETRC_REQUIRED (entier)
CURL_HTTP_VERSION_NONE (entier)
CURL_HTTP_VERSION_1_0 (entier)
CURL_HTTP_VERSION_1_1 (entier)
CURLM_CALL_MULTI_PERFORM (entier)
CURLM_OK (entier)
CURLM_BAD_HANDLE (entier)
CURLM_BAD_EASY_HANDLE (entier)
CURLM_OUT_OF_MEMORY (entier)
CURLM_INTERNAL_ERROR (entier)
CURLMSG_DONE (entier)
CURLOPT_KEYPASSWD (entier)
CURLOPT_SSH_AUTH_TYPES (entier)
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 (entier)
CURLOPT_SSH_PRIVATE_KEYFILE (entier)
CURLOPT_SSH_PUBLIC_KEYFILE (entier)
CURLMOPT_PIPELINING (entier)
Disponible depuis PHP 5.5.0 et cURL 7.16.0.
CURLMOPT_MAXCONNECTS (entier)
Disponible depuis PHP 5.5.0 et cURL 7.16.3.
CURLSSH_AUTH_ANY (entier)
CURLSSH_AUTH_DEFAULT (entier)
CURLSSH_AUTH_HOST (entier)
CURLSSH_AUTH_KEYBOARD (entier)
CURLSSH_AUTH_NONE (entier)
CURLSSH_AUTH_PASSWORD (entier)
CURLSSH_AUTH_PUBLICKEY (entier)
CURL_WRAPPERS_ENABLED (entier)
Défini si PHP a été configuré avec l'option --with-curlwrappers . Déplacé en PECL depuis PHP 5.5.0.
CURLPAUSE_ALL (integer)
Disponible en PHP 5.5.0 et cURL 7.18.0.
CURLPAUSE_CONT (integer)
Disponible en PHP 5.5.0 et cURL 7.18.0.
CURLPAUSE_RECV (integer)
Disponible en PHP 5.5.0 et cURL 7.18.0.
CURLPAUSE_RECV_CONT (integer)
Disponible en PHP 5.5.0 et cURL 7.18.0.
CURLPAUSE_SEND (integer)
Disponible en PHP 5.5.0 et cURL 7.18.0.
CURLPAUSE_SEND_CONT (integer)
Disponible en PHP 5.5.0 et cURL 7.18.0.
CURLPROXY_SOCKS4A (integer)
Disponible depuis PHP 5.5.23, PHP 5.6.7 et cURL 7.18.0.
CURLPROXY_SOCKS5_HOSTNAME (integer)
Disponible depuis PHP 5.5.23, PHP 5.6.7 et cURL 7.18.0.


  • « Constantes pré-définies
  • Exemple avec curl »
  • PHP Manual
  • cURL
  • Exemples

Exemples

Sommaire

  • Exemple avec curl


Exemple avec curl

Une fois PHP compilé avec le support cURL, vous pouvez commencer à utiliser les fonctions cURL. La première des choses à faire est d'initialiser une session cURL avec la fonction curl_init(), puis, vous pouvez définir toutes vos options pour le transfert avec la fonction curl_setopt(), et enfin, vous pouvez exécuter la session avec curl_exec() et y mettre fin avec la fonction curl_close(). Voici un exemple qui utilise les fonctions cURL pour récupérer la page d'accueil du site example.com dans un fichier :

Exemple #1 Utilisation du module cURL pour récupérer la page d'accueil de example.com

<?php

$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>


Fonctions cURL

Sommaire

  • curl_close — Ferme une session CURL
  • curl_copy_handle — Copie une ressource cURL avec toutes ses préférences
  • curl_errno — Retourne le dernier message d'erreur cURL
  • curl_error — Retourne une chaîne contenant le dernier message d'erreur cURL
  • curl_escape — Encode URL la chaîne fournie
  • curl_exec — Exécute une session cURL
  • curl_file_create — Crée un objet CURLFile
  • curl_getinfo — Lit les informations détaillant un transfert cURL
  • curl_init — Initialise une session cURL
  • curl_multi_add_handle — Ajoute une ressource cURL à un cURL multiple
  • curl_multi_close — Termine un jeu de sessions cURL
  • curl_multi_exec — Exécute les sous-requêtes de la session cURL
  • curl_multi_getcontent — Retourne le contenu obtenu avec l'option CURLOPT_RETURNTRANSFER
  • curl_multi_info_read — Lit les informations sur les transferts actuels
  • curl_multi_init — Retourne un nouveau cURL multiple
  • curl_multi_remove_handle — Retire une ressource cURL d'un cURL multiple
  • curl_multi_select — Attend une activité sur n'importe quelle connexion curl_multi
  • curl_multi_setopt — Définit une option pour le gestionnaire multiple cURL
  • curl_multi_strerror — Retourne la description d'un code erreur
  • curl_pause — Met en pause, ou sort de la pause une connexion
  • curl_reset — Ré-initialise toutes les options d'un gestionnaire de session libcurl
  • curl_setopt_array — Fixe plusieurs options pour un transfert cURL
  • curl_setopt — Définit une option de transmission cURL
  • curl_share_close — Ferme un gestionnaire partagé cURL
  • curl_share_init — Initialise un gestionnaire partagé cURL
  • curl_share_setopt — Définit une option du gestionnaire partagé cURL
  • curl_strerror — Retourne la chaîne descriptive du code erreur fourni
  • curl_unescape — Décode l'URL fourni
  • curl_version — Retourne la version courante de cURL


Ferme une session CURL

  • « Fonctions cURL
  • curl_copy_handle »
  • PHP Manual
  • Fonctions cURL
  • Ferme une session CURL

curl_close

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_close — Ferme une session CURL

Description

void curl_close ( resource $ch )

Ferme une session cURL et libère toutes les ressources réservées. L'identifiant cURL ch est aussi effacé.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Initialise une session cURL et récupère une page web

<?php
// création d'une nouvelle ressource cURL
$ch = curl_init();

// configuration de l'URL et d'autres options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// récupération de l'URL et affichage sur le naviguateur
curl_exec($ch);

// fermeture de la session cURL
curl_close($ch);
?>

Voir aussi

  • curl_init() - Initialise une session cURL
  • curl_multi_close() - Termine un jeu de sessions cURL


Copie une ressource cURL avec toutes ses préférences

  • « curl_close
  • curl_errno »
  • PHP Manual
  • Fonctions cURL
  • Copie une ressource cURL avec toutes ses préférences

curl_copy_handle

(PHP 5, PHP 7)

curl_copy_handle — Copie une ressource cURL avec toutes ses préférences

Description

resource curl_copy_handle ( resource $ch )

Copie une ressource cURL, retournant une nouvelle ressource cURL avec les mêmes préférences.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne une nouvelle ressource cURL.

Exemples

Exemple #1 Copie d'une ressource cURL

<?php
// crée une nouvelle ressource cURL
$ch = curl_init();

// assigne URL et autres options appropriées
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/');
curl_setopt($ch, CURLOPT_HEADER, 0);

// copie la ressource
$ch2 = curl_copy_handle($ch);

// attrape l'URL (http://www.example.com/) et le passe au navigateur
curl_exec($ch2);

// ferme les ressources curl et libère les ressources systèmes
curl_close($ch2);
curl_close($ch);
?>


Retourne le dernier message d'erreur cURL

  • « curl_copy_handle
  • curl_error »
  • PHP Manual
  • Fonctions cURL
  • Retourne le dernier message d'erreur cURL

curl_errno

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

curl_errno — Retourne le dernier message d'erreur cURL

Description

int curl_errno ( resource $ch )

Retourne le numéro d'erreur de la dernière opération cURL.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne le numéro de l'erreur ou 0 si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec curl_errno()

<?php
// Création d'un gestionnaire curl vers une URL inexistante
$ch = curl_init('http://404.php.net/');

// Exécution
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);

// Vérifie si une erreur survient
if(curl_errno($ch))
{
    echo 'Erreur Curl : ' . curl_error($ch);
}

// Fermeture du gestionnaire
curl_close($ch);
?>

Voir aussi

  • curl_error() - Retourne une chaîne contenant le dernier message d'erreur cURL
  • » les codes erreurs cURL


Retourne une chaîne contenant le dernier message d'erreur cURL

  • « curl_errno
  • curl_escape »
  • PHP Manual
  • Fonctions cURL
  • Retourne une chaîne contenant le dernier message d'erreur cURL

curl_error

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

curl_error — Retourne une chaîne contenant le dernier message d'erreur cURL

Description

string curl_error ( resource $ch )

Retourne un message clair représentant la dernière erreur cURL.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne le message d'erreur ou '' (chaîne vide) si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec curl_error()

<?php
// Création d'un gestionnaire curl vers une URL inexistante
$ch = curl_init('http://404.php.net/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if(curl_exec($ch) === false)
{
    echo 'Erreur Curl : ' . curl_error($ch);
}
else
{
    echo 'L\'opération s\'est terminée sans aucune erreur';
}

// Fermeture du gestionnaire
curl_close($ch);
?>

Voir aussi

  • curl_errno() - Retourne le dernier message d'erreur cURL
  • » Curl error codes


Encode URL la chaîne fournie

  • « curl_error
  • curl_exec »
  • PHP Manual
  • Fonctions cURL
  • Encode URL la chaîne fournie

curl_escape

(PHP 5 >= 5.5.0, PHP 7)

curl_escape — Encode URL la chaîne fournie

Description

string curl_escape ( resource $ch , string $str )

Cette fonction URL-encode la chaîne fournie suivant la » RFC 3986.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

str

La chaîne à encoder.

Valeurs de retour

Retourne la chaîne encodée ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec curl_escape()

<?php
// Crée un gestionnaire curl
$ch = curl_init();

// Echappe une chaîne utilisé comme paramètre GET
$location = curl_escape($ch, 'Hofbräuhaus / München');
// Résultat : Hofbr%C3%A4uhaus%20%2F%20M%C3%BCnchen

// Compose une URL avec la chaîne échappée
$url = "http://example.com/add_location.php?location={$location}";
// Résultat: http://example.com/add_location.php?location=Hofbr%C3%A4uhaus%20%2F%20M%C3%BCnchen

// Envoi la requête HTTP et ferme le gestionnaire
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
?>

Voir aussi

  • curl_unescape() - Décode l'URL fourni
  • urlencode() - Encode une chaîne en URL
  • rawurlencode() - Encode une chaîne en URL, selon la RFC 3986
  • » RFC 3986


Exécute une session cURL

  • « curl_escape
  • curl_file_create »
  • PHP Manual
  • Fonctions cURL
  • Exécute une session cURL

curl_exec

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_exec — Exécute une session cURL

Description

mixed curl_exec ( resource $ch )

Exécute la session cURL fournie.

Cette fonction doit être appelée après l'initialisation et le paramétrage d'une session cURL.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Cependant, si l'option CURLOPT_RETURNTRANSFER est définie, la fonction retournera le résultat en cas de succès, et FALSE si une erreur survient.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Récupère le contenu d'une page web

<?php
// Création d'une nouvelle ressource cURL
$ch = curl_init();

// Configuration de l'URL et d'autres options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// Récupération de l'URL et affichage sur le naviguateur
curl_exec($ch);

// Fermeture de la session cURL
curl_close($ch);
?>

Voir aussi

  • curl_multi_exec() - Exécute les sous-requêtes de la session cURL


Crée un objet CURLFile

  • « curl_exec
  • curl_getinfo »
  • PHP Manual
  • Fonctions cURL
  • Crée un objet CURLFile

curl_file_create

(PHP 5 >= 5.5.0, PHP 7)

curl_file_create — Crée un objet CURLFile

Description

Cette fonction est un alias de : CURLFile::__construct()


Lit les informations détaillant un transfert cURL

  • « curl_file_create
  • curl_init »
  • PHP Manual
  • Fonctions cURL
  • Lit les informations détaillant un transfert cURL

curl_getinfo

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

curl_getinfo — Lit les informations détaillant un transfert cURL

Description

mixed curl_getinfo ( resource $ch [, int $opt = 0 ] )

curl_getinfo() lit les informations concernant le transfert ch.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

opt

Ce paramètre peut prendre l'une des valeurs suivantes :

  • CURLINFO_EFFECTIVE_URL : dernière URL réelle
  • CURLINFO_HTTP_CODE : dernier code HTTP reçu
  • CURLINFO_FILETIME : date distante du document, et -1 si la date du document distant est inconnue.
  • CURLINFO_TOTAL_TIME : durée de la transaction en secondes pour le dernier transfert
  • CURLINFO_NAMELOOKUP_TIME : durée de résolution du nom de domaine en secondes
  • CURLINFO_CONNECT_TIME : durée d'établissement de la connexion en secondes
  • CURLINFO_PRETRANSFER_TIME : durée en secondes, entre le début de la transaction et de début du transfert de fichiers
  • CURLINFO_STARTTRANSFER_TIME : durée en secondes jusqu'à ce que le premier octet soit sur le point d'être transféré
  • CURLINFO_REDIRECT_COUNT : Nombre de redirections, avec l'option CURLOPT_FOLLOWLOCATION activée
  • CURLINFO_REDIRECT_TIME : durée en secondes de toutes les étapes de redirection avant que la transaction finale ne soit débutée, avec l'option CURLOPT_FOLLOWLOCATION activée
  • CURLINFO_REDIRECT_URL - Avec l'option CURLOPT_FOLLOWLOCATION désactivée: URL de redirection trouvée dans la dernière transaction, qui devra être interrogé manuellement par la suite. Si l'option CURLOPT_FOLLOWLOCATION est activée : cette valeur est vide. Dans ce cas, l'url de redirection est disponible dans CURLINFO_EFFECTIVE_URL
  • CURLINFO_PRIMARY_IP - Adresse IP de la plus récente connexion
  • CURLINFO_PRIMARY_PORT - Port de destination de la plus récente connexion
  • CURLINFO_LOCAL_IP - Adresse IP locale (source) de la plus récente connexion
  • CURLINFO_LOCAL_PORT - Port local (source) de la plus récente connexion
  • CURLINFO_SIZE_UPLOAD : nombre total d'octets envoyés
  • CURLINFO_SIZE_DOWNLOAD : nombre total d'octets téléchargés
  • CURLINFO_SPEED_DOWNLOAD : vitesse moyenne de téléchargement
  • CURLINFO_SPEED_UPLOAD : vitesse moyenne d'envoi
  • CURLINFO_HEADER_SIZE : taille des en-têtes reçus
  • CURLINFO_HEADER_OUT : la chaîne de requête envoyée. Pour que cela fonctionne, appelez curl_setopt() avec l'option CURLINFO_HEADER_OUT.
  • CURLINFO_REQUEST_SIZE : taille totale des requêtes envoyées. Actuellement, uniquement pour les requêtes HTTP
  • CURLINFO_SSL_VERIFYRESULT : résultat de la vérification de la certification SSL demandée par CURLOPT_SSL_VERIFYPEER
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD : taille du corps du téléchargement, lu dans l'en-tête Content-Length:
  • CURLINFO_CONTENT_LENGTH_UPLOAD : taille spécifiée de l'envoi.
  • CURLINFO_CONTENT_TYPE : Content-Type: du document demandé. NULL indique que le serveur n'a pas envoyé d'en-tête Content-Type:
  • CURLINFO_PRIVATE - Données privées associées avec le gestionnaire cURL, précédement défini avec l'option CURLOPT_PRIVATE de la fonction curl_setopt()

Valeurs de retour

Si opt est fourni, la valeur sera retournée. Sinon, ce sera un tableau associatif contenant les éléments suivants (qui correspond à opt), ou FALSE si une erreur survient :

  • "url"
  • "content_type"
  • "http_code"
  • "header_size"
  • "request_size"
  • "filetime"
  • "ssl_verify_result"
  • "redirect_count"
  • "total_time"
  • "namelookup_time"
  • "connect_time"
  • "pretransfer_time"
  • "size_upload"
  • "size_download"
  • "speed_download"
  • "speed_upload"
  • "download_content_length"
  • "upload_content_length"
  • "starttransfer_time"
  • "redirect_time"
  • "certinfo"
  • "primary_ip"
  • "primary_port"
  • "local_ip"
  • "local_port"
  • "redirect_url"
  • "request_header" (Existe seulement si CURLINFO_HEADER_OUT est utilisé via un appel à curl_setopt())
Veuillez noter que les données privées ne sont pas incluses dans le tableau associatif et doivent être récupérées individuellement avec l'option CURLINFO_PRIVATE.

Historique

Version | Description
5.4.7 | Ajout de CURLINFO_PRIMARY_IP, CURLINFO_PRIMARY_PORT, CURLINFO_LOCAL_IP et CURLINFO_LOCAL_PORT.
5.3.7 | Ajout de CURLINFO_REDIRECT_URL.
5.2.4 | Ajout de CURLINFO_PRIVATE.
5.1.3 | Ajout de CURLINFO_HEADER_OUT.

Exemples

Exemple #1 Exemple avec curl_getinfo()

<?php
// Création d'un gestionnaire curl
$ch = curl_init('http://www.yahoo.com/');

// Exécution
curl_exec($ch);

// Vérification si une erreur est survenue
if(!curl_errno($ch))
{
 $info = curl_getinfo($ch);

 echo 'La requête a mis ' . $info['total_time'] . ' secondes à être envoyée à ' . $info['url'];
}

// Fermeture du gestionnaire
curl_close($ch);
?>

Notes

Note:

Les informations founies par cette fonction sont conservées si la connexion est réutilisée. La donnée précédemment utilisée est donc retournée à moins que celle-ci ne soit écrasée en interne entre temps.


Initialise une session cURL

  • « curl_getinfo
  • curl_multi_add_handle »
  • PHP Manual
  • Fonctions cURL
  • Initialise une session cURL

curl_init

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_init — Initialise une session cURL

Description

resource curl_init ([ string $url = NULL ] )

Initialise une nouvelle session et retourne un identifiant de session cURL à utiliser avec les fonctions curl_setopt(), curl_exec() et curl_close().

Liste de paramètres

url

Si fourni, alors CURLOPT_URL prendra cette valeur. Vous pouvez manuellement fixer cette valeur avec la fonction curl_setopt().

Note:

Le protocole file est désactivé par cURL si open_basedir est défini.

Valeurs de retour

Retourne une session cURL en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Initialiser une session cURL et récupérer une page web

<?php
// initialisation de la session
$ch = curl_init();

// configuration des options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// exécution de la session
curl_exec($ch);

// fermeture des ressources
curl_close($ch);
?>

Voir aussi

  • curl_close() - Ferme une session CURL
  • curl_multi_init() - Retourne un nouveau cURL multiple


Ajoute une ressource cURL à un cURL multiple

  • « curl_init
  • curl_multi_close »
  • PHP Manual
  • Fonctions cURL
  • Ajoute une ressource cURL à un cURL multiple

curl_multi_add_handle

(PHP 5, PHP 7)

curl_multi_add_handle — Ajoute une ressource cURL à un cURL multiple

Description

int curl_multi_add_handle ( resource $mh , resource $ch )

Ajoute la session ch au gestionnaire multiple mh

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne 0 en cas de succès, ou un des codes erreurs CURLM_XXX.

Exemples

Exemple #1 Exemple avec curl_multi_add_handle()

Cet exemple crée deux gestionnaires cURL, les ajoute à un gestionnaire multiple, et les exécute de façon asynchrone.

<?php
// Création des ressources cURL
$ch1 = curl_init();
$ch2 = curl_init();

// Définit l'URL ainsi que d'autres options
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

// Création du gestionnaire multiple
$mh = curl_multi_init();

// Ajoute les deux gestionnaires
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$running=null;
// Exécute le gestionnaire
do {
    curl_multi_exec($mh,$running);
} while($running > 0);

// Ferme tous les gestionnaires
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>

Voir aussi

  • curl_multi_remove_handle() - Retire une ressource cURL d'un cURL multiple
  • curl_multi_init() - Retourne un nouveau cURL multiple
  • curl_init() - Initialise une session cURL


Termine un jeu de sessions cURL

  • « curl_multi_add_handle
  • curl_multi_exec »
  • PHP Manual
  • Fonctions cURL
  • Termine un jeu de sessions cURL

curl_multi_close

(PHP 5, PHP 7)

curl_multi_close — Termine un jeu de sessions cURL

Description

void curl_multi_close ( resource $mh )

Ferme un jeu de gestionnaires cURL.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec curl_multi_close()

Cet exemple crée deux gestionnaires cURL, les ajoute à un gestionnaire multiple, et les exécute de façon asynchrone.

<?php
// Création des ressources
$ch1 = curl_init();
$ch2 = curl_init();

// Définit l'URL ainsi que d'autres options
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

// Création du gestionnaire cURL multiple
$mh = curl_multi_init();

// Ajout des deux gestionnaires
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$running=null;
// Exécute le gestionnaire
do {
    curl_multi_exec($mh,$running);
} while ($running > 0);
// Ferme les gestionnaires
curl_multi_remove_handle($mh, $ch1);
curl_close($ch1);
curl_multi_remove_handle($mh, $ch2);
curl_close($ch2);
curl_multi_close($mh);

?>

Voir aussi

  • curl_multi_init() - Retourne un nouveau cURL multiple
  • curl_close() - Ferme une session CURL


Exécute les sous-requêtes de la session cURL

  • « curl_multi_close
  • curl_multi_getcontent »
  • PHP Manual
  • Fonctions cURL
  • Exécute les sous-requêtes de la session cURL

curl_multi_exec

(PHP 5, PHP 7)

curl_multi_exec — Exécute les sous-requêtes de la session cURL

Description

int curl_multi_exec ( resource $mh , int &$still_running )

Exécute chaque gestionnaire de la pile. Cette méthode peut être appelée même si un gestionnaire à besoin de lire ou d'écrire des données.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

still_running

Une référence à un drapeau, qui annonce si les opérations sont toujours en cours.

Valeurs de retour

Un code cURL, défini dans les constantes prédéfinies cURL.

Note:

Cette fonction retourne que des erreurs au regard de la pile. Des problèmes surviennent toujours sur des transferts individuels même lorsque cette fonction retourne CURLM_OK.

Exemples

Exemple #1 Exemple avec curl_multi_exec()

Cet exemple crée deux gestionnaires cURL, les ajoute à un gestionnaire multiple, et les exécute de façon asynchrone.

<?php
// Création des ressources cURL
$ch1 = curl_init();
$ch2 = curl_init();

// Définit l'URL ainsi que d'autres options
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

// Création du gestionnaire multiple
$mh = curl_multi_init();

// Ajoute les deux gestionnaires
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$active = null;
// Exécute le gestionnaire
do {
    $mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active && $mrc == CURLM_OK) {
    if (curl_multi_select($mh) != -1) {
        do {
            $mrc = curl_multi_exec($mh, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }
}

// Ferme les gestionnaires
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

Voir aussi

  • curl_multi_init() - Retourne un nouveau cURL multiple
  • curl_multi_select() - Attend une activité sur n'importe quelle connexion curl_multi
  • curl_exec() - Exécute une session cURL


Retourne le contenu obtenu avec l'option CURLOPT_RETURNTRANSFER

  • « curl_multi_exec
  • curl_multi_info_read »
  • PHP Manual
  • Fonctions cURL
  • Retourne le contenu obtenu avec l'option CURLOPT_RETURNTRANSFER

curl_multi_getcontent

(PHP 5, PHP 7)

curl_multi_getcontent — Retourne le contenu obtenu avec l'option CURLOPT_RETURNTRANSFER

Description

string curl_multi_getcontent ( resource $ch )

Si CURLOPT_RETURNTRANSFER est une option définie pour un gestionnaire spécifique, alors cette fonction retournera le contenu de ce gestionnaire cURL, sous la forme d'une chaîne de caractères.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne le contenu du gestionnaire cURL, si CURLOPT_RETURNTRANSFER est défini.

Voir aussi

  • curl_multi_init() - Retourne un nouveau cURL multiple


Lit les informations sur les transferts actuels

  • « curl_multi_getcontent
  • curl_multi_init »
  • PHP Manual
  • Fonctions cURL
  • Lit les informations sur les transferts actuels

curl_multi_info_read

(PHP 5, PHP 7)

curl_multi_info_read — Lit les informations sur les transferts actuels

Description

array curl_multi_info_read ( resource $mh [, int &$msgs_in_queue = NULL ] )

Appel le gestionnaire multiple s'il y a des messages ou des informations issus des transferts individuels. Les messages peuvent inclure des informations comme un code erreur du transfert, ou juste le fait que le transfert est terminé.

Les appels répétés à cette fonction retournera un nouveau résultat à chaque fois, tant que FALSE n'est pas retourné, indiquant qu'il n'y a plus rien à récupérer pour le moment. L'entier présent dans le paramètre msgs_in_queue représente le nombre de messages restant une fois cette fonction appelée.

Avertissement

Les données pointées par la ressource retournée, ne survivront pas à l'appel de la fonction curl_multi_remove_handle().

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

msgs_in_queue

Nombre de messages encore présents dans la file d'attente

Valeurs de retour

Retourne un tableau associatif contenant le message en cas de succès, FALSE si une erreur survient.

Contenu du tableau retourné
Key: | Value:
msg | La constante CURLMSG_DONE. Les autres valeurs retournées sont actuellement non disponibles.
result | Une des constantes CURLE_*. Si tout s'est bien déroulé, la constante CURLE_OK sera retournée.
handle | Ressource de type curl indiquant le gestionnaire concerné.

Exemples

Exemple #1 Exemple avec curl_multi_info_read()

<?php

$urls = array(
   "http://www.cnn.com/",
   "http://www.bbc.co.uk/",
   "http://www.yahoo.com/"
);

$mh = curl_multi_init();

foreach ($urls as $i => $url) {
    $conn[$i] = curl_init($url);
    curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);
    curl_multi_add_handle($mh, $conn[$i]);
}

do {
    $status = curl_multi_exec($mh, $active);
    $info = curl_multi_info_read($mh);
    if (false !== $info) {
        var_dump($info);
    }
} while ($status === CURLM_CALL_MULTI_PERFORM || $active);

foreach ($urls as $i => $url) {
    $res[$i] = curl_multi_getcontent($conn[$i]);
    curl_close($conn[$i]);
}

var_dump(curl_multi_info_read($mh));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(5) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(7) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(6) of type (curl)
}
bool(false)

Historique

Version | Description
5.2.0 | Le paramètre msgs_in_queue a été ajouté.

Voir aussi

  • curl_multi_init() - Retourne un nouveau cURL multiple


Retourne un nouveau cURL multiple

  • « curl_multi_info_read
  • curl_multi_remove_handle »
  • PHP Manual
  • Fonctions cURL
  • Retourne un nouveau cURL multiple

curl_multi_init

(PHP 5, PHP 7)

curl_multi_init — Retourne un nouveau cURL multiple

Description

resource curl_multi_init ( void )

Autorise l'exécution de multiples gestionnaires cURL de façon asynchrone.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un gestionnaire cURL multiple en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec curl_multi_init()

Cet exemple crée deux gestionnaires cURL, les ajoute à un gestionnaire multiple, et les exécute de façon asynchrone.

<?php
// Création des ressources cURL
$ch1 = curl_init();
$ch2 = curl_init();

// Définit l'URL ainsi que d'autres options
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

// Création du gestionnaire multiple cURL
$mh = curl_multi_init();

// Ajoute les deux gestionnaires
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$active = null;
// Exécute le gestionnaire
do {
    $mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active && $mrc == CURLM_OK) {
    if (curl_multi_select($mh) != -1) {
        do {
            $mrc = curl_multi_exec($mh, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }
}

// Ferme les gestionnaires
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

Voir aussi

  • curl_init() - Initialise une session cURL
  • curl_multi_close() - Termine un jeu de sessions cURL


Retire une ressource cURL d'un cURL multiple

  • « curl_multi_init
  • curl_multi_select »
  • PHP Manual
  • Fonctions cURL
  • Retire une ressource cURL d'un cURL multiple

curl_multi_remove_handle

(PHP 5, PHP 7)

curl_multi_remove_handle — Retire une ressource cURL d'un cURL multiple

Description

int curl_multi_remove_handle ( resource $mh , resource $ch )

Retire un gestionnaire ch donné du gestionnaire mh. Lorsque le gestionnaire ch a été retiré, il est de nouveau parfaitement correct d'exécuter la fonction curl_exec() sur ce gestionnaire. Le fait de retirer le gestionnaire ch en cours d'utilisation stoppe tous les transferts en cours.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne 0 en cas de succès, ou un des codes erreurs CURLM_XXX.

Voir aussi

  • curl_init() - Initialise une session cURL
  • curl_multi_init() - Retourne un nouveau cURL multiple
  • curl_multi_add_handle() - Ajoute une ressource cURL à un cURL multiple


Attend une activité sur n'importe quelle connexion curl_multi

  • « curl_multi_remove_handle
  • curl_multi_setopt »
  • PHP Manual
  • Fonctions cURL
  • Attend une activité sur n'importe quelle connexion curl_multi

curl_multi_select

(PHP 5, PHP 7)

curl_multi_select — Attend une activité sur n'importe quelle connexion curl_multi

Description

int curl_multi_select ( resource $mh [, float $timeout = 1.0 ] )

Patiente tant qu'il y a de l'activité sur une des connexions curl_multi.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

timeout

Durée maximale, en secondes, à attendre une réponse.

Valeurs de retour

Retourne le nombre de sockets contenues dans le jeu de sockets, en cas de succès. Cela peut être 0 s'il n'y a eu aucune activité sur aucun des sockets. En cas d'échec, la fonction retournera -1 sur un échec de sélection ou lors d'un dépassement du délai d'attente (depuis l'appel du sous système de sélection).

Voir aussi

  • curl_multi_init() - Retourne un nouveau cURL multiple


Définit une option pour le gestionnaire multiple cURL

  • « curl_multi_select
  • curl_multi_strerror »
  • PHP Manual
  • Fonctions cURL
  • Définit une option pour le gestionnaire multiple cURL

curl_multi_setopt

(PHP 5 >= 5.5.0, PHP 7)

curl_multi_setopt — Définit une option pour le gestionnaire multiple cURL

Description

bool curl_multi_setopt ( resource $mh , int $option , mixed $value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mh

option

Une des constantes CURLMOPT_*.

value

La valeur à définir pour le paramètre option.

value doit être un int pour les valeurs suivantes du paramètres option :

Option | Définit le paramètre value à
CURLMOPT_PIPELINING | 1 pour activer, 0 pour désactiver. L'activation du pipelining sur un gestionnaire multiple va faire qu'il va tenter de réaliser un pipelining HTTP autant que possible pour les transferts utilisant ce gestionnaire. Cela signifie que, si vous ajouter un second gestionnaire qui peut utiliser une connexion existante, la seconde demande sera "pipé" sur la même connexion.
CURLMOPT_MAXCONNECTS | Nombre maximal de connexions ouvertes simultanément que libcurl peut mettre en cache. Par défaut, vaut 10. Lorsque le cache est complet, curl ferme la plus ancienne connexion du cache, afin d'éviter que le nombre de connexions ouvertes n'augmente.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne la description d'un code erreur

  • « curl_multi_setopt
  • curl_pause »
  • PHP Manual
  • Fonctions cURL
  • Retourne la description d'un code erreur

curl_multi_strerror

(PHP 5 >= 5.5.0, PHP 7)

curl_multi_strerror — Retourne la description d'un code erreur

Description

string curl_multi_strerror ( int $errornum )

Retourne le message d'erreur décrivant le code erreur CURLM fourni.

Liste de paramètres

errornum

Une constante parmi les constantes de » codes erreurs CURLM.

Valeurs de retour

Retourne la description d'un code erreur valide, NULL sinon.

Exemples

Exemple #1 Exemple avec curl_multi_strerror()

<?php
// Crée des gestionnaires cURL
$ch1 = curl_init("http://example.com"/);
$ch2 = curl_init("http://php.net/");

// Crée un gestionnaire multiple cURL
$mh = curl_multi_init();

// Ajoute les gestionnaires dans le gestionnaire multiple
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);

// Exécute le gestionnaire multiple
do {
    $status = curl_multi_exec($mh, $active);
    // Vérification des erreurs
    if($status > 0) {
        // Affiche le message d'erreur
        echo "ERREUR !\n " . curl_multi_strerror($status);
    }
} while ($status === CURLM_CALL_MULTI_PERFORM || $active);
?>

Voir aussi

  • curl_strerror() - Retourne la chaîne descriptive du code erreur fourni
  • » les codes erreurs cURL


Met en pause, ou sort de la pause une connexion

  • « curl_multi_strerror
  • curl_reset »
  • PHP Manual
  • Fonctions cURL
  • Met en pause, ou sort de la pause une connexion

curl_pause

(PHP 5 >= 5.5.0, PHP 7)

curl_pause — Met en pause, ou sort de la pause une connexion

Description

int curl_pause ( resource $ch , int $bitmask )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

bitmask

Une constante parmi CURLPAUSE_*.

Valeurs de retour

Retourne un code erreur (CURLE_OK correspond à aucune erreur).


Ré-initialise toutes les options d'un gestionnaire de session libcurl

  • « curl_pause
  • curl_setopt_array »
  • PHP Manual
  • Fonctions cURL
  • Ré-initialise toutes les options d'un gestionnaire de session libcurl

curl_reset

(PHP 5 >= 5.5.0, PHP 7)

curl_reset — Ré-initialise toutes les options d'un gestionnaire de session libcurl

Description

void curl_reset ( resource $ch )

Cette fonction ré-initialise toutes les options définies sur le gestionnaire cURL donné en leurs valeurs par défaut.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec curl_reset()

<?php
// Crée un gestionnaire cURL
$ch = curl_init();

// Définit l'option CURLOPT_USERAGENT
curl_setopt($ch, CURLOPT_USERAGENT, "Mon user-agent de test");

// Ré-initialise toutes les options définies précédemment
curl_reset($ch);

// Envoi la requête HTTP
curl_setopt($ch, CURLOPT_URL, 'http://example.com/');
curl_exec($ch); // le user-agent précédemment défini ne sera pas envoyé, il a été ré-initialisé par la fonction curl_reset

// Ferme le gestionnaire
curl_close($ch);
?>

Notes

Note:

La fonction curl_reset() va également ré-initialiser l'URL fourni comme paramètre de la fonction curl_init().

Voir aussi

  • curl_setopt() - Définit une option de transmission cURL


Fixe plusieurs options pour un transfert cURL

  • « curl_reset
  • curl_setopt »
  • PHP Manual
  • Fonctions cURL
  • Fixe plusieurs options pour un transfert cURL

curl_setopt_array

(PHP 5 >= 5.1.3, PHP 7)

curl_setopt_array — Fixe plusieurs options pour un transfert cURL

Description

bool curl_setopt_array ( resource $ch , array $options )

Fixe plusieurs options pour une session cURL. Cette fonction est utile pour configurer un grand nombre d'options cURL sans appeler à chaque fois curl_setopt().

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

options

Un tableau spécifiant quelles options à fixer avec leurs valeurs. Les clés devraient être des constantes valides de curl_setopt() ou leur entier équivalent.

Valeurs de retour

Retourne TRUE si toutes les options ont été fixées correctement. Si une option ne peut pas être fixée correctement, FALSE est retourné immédiatement, en ignorant toutes les options futures dans le tableau options.

Exemples

Exemple #1 Initialisation d'une nouvelle session cURL et récupération d'une page web

<?php
// crée une nouvelle ressource cURL
$ch = curl_init();

// fixe l'URL et les autres options appropriées
$options = array(CURLOPT_URL => 'http://www.example.com/',
                 CURLOPT_HEADER => false
                );

curl_setopt_array($ch, $options);

// attrape l'URL et la passe au navigateur
curl_exec($ch);

// ferme la ressource cURL et libère les ressources systèmes
curl_close($ch);
?>

Avant PHP 5.1.3, cette fonction peut être simulée avec :

Exemple #2 Notre propre implémentation de la fonction curl_setopt_array()

<?php
if (!function_exists('curl_setopt_array')) {
   function curl_setopt_array(&$ch, $curl_options)
   {
       foreach ($curl_options as $option => $value) {
           if (!curl_setopt($ch, $option, $value)) {
               return false;
           }
       }
       return true;
   }
}
?>

Notes

Note:

Avec la fonction curl_setopt(), le fait de passer un tableau comme valeur de la constante CURLOPT_POST fera que les données seront encodées comme multipart/form-data, tandis que le fait de passer une chaîne encodée URL fera que les données seront encodées comme application/x-www-form-urlencoded.

Voir aussi

  • curl_setopt() - Définit une option de transmission cURL


Définit une option de transmission cURL

  • « curl_setopt_array
  • curl_share_close »
  • PHP Manual
  • Fonctions cURL
  • Définit une option de transmission cURL

curl_setopt

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_setopt — Définit une option de transmission cURL

Description

bool curl_setopt ( resource $ch , int $option , mixed $value )

curl_setopt() définit l'option de transfert cURL option, avec la valeur value pour la requête ch.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

option

L'option CURLOPT_XXX à définir.

value

La valeur à définir pour option.

value doit être un bool pour les valeurs suivantes du paramètre option :

Option | Définissez le paramètre value à | Notes
CURLOPT_AUTOREFERER | TRUE pour spécifier automatiquement le champ Referer: dans les requêtes où une redirection Location: suit.
CURLOPT_BINARYTRANSFER | TRUE pour retourner les données brutes (données binaires) lorsque CURLOPT_RETURNTRANSFER est utilisé. | Depuis PHP 5.1.3, cette option n'a aucun effet : l'affichage brute sera toujours retourné lorsque l'option CURLOPT_RETURNTRANSFER est utilisé.
CURLOPT_COOKIESESSION | TRUE pour marquer ceci comme un nouveau cookie "session". Cela forcera libcurl à ignorer tous les cookies qui sont prêts à être chargés qui sont des "cookies de session" provenant des sessions antérieures. Par défaut, libcurl enregistre et charge toujours tous les cookies, indépendamment s'ils sont des cookies de session ou pas. Les cookies de session sont des cookies sans date d'expiration et existeront que pour cette "session" seulement.
CURLOPT_CERTINFO | TRUE pour sortir les informations de certification SSL vers STDERR pour les transferts sécurisés. | Ajouté en cURL version 7.19.1. Disponible depuis PHP 5.3.2. Requiert CURLOPT_VERBOSE d'être activé.
CURLOPT_CONNECT_ONLY | TRUE indique à la bibliothèque d'effectuer toutes les configurations nécessaires à l'authentification et la connexion au proxy, mais ne transfère aucune donnée. Cette option est implémentée pour HTTP, SMTP et POP3. | Ajouté en cURL 7.15.2. Disponible depuis PHP 5.5.0.
CURLOPT_CRLF | TRUE pour convertir les nouvelles lignes Unix en nouvelles lignes CRLF pendant le transfert.
CURLOPT_DNS_USE_GLOBAL_CACHE | TRUE pour utiliser un cache DNS global. Cette option n'est pas compatible avec les threads et est activée par défaut.
CURLOPT_FAILONERROR | TRUE pour que PHP traite, avec des traces, les codes HTTP supérieurs ou égaux à 400. Le comportement par défaut est de retourner la page normalement, en ignorant ce code.
CURLOPT_FILETIME | TRUE pour tenter de récupérer la date de modification du document distant. Vous pouvez également retrouver cette valeur en utilisant l'option CURLINFO_FILETIME avec curl_getinfo().
CURLOPT_FOLLOWLOCATION | TRUE pour suivre toutes les en-têtes "Location: " que le serveur envoie dans les en-têtes HTTP (notez que cette fonction est récursive et que PHP suivra toutes les en-têtes "Location: " qu'il trouvera à moins que CURLOPT_MAXREDIRS ne soit définie).
CURLOPT_FORBID_REUSE | TRUE pour forcer la connexion à se fermer explicitement lorsque le processus est terminé et ne sera pas mise en cache pour être réutilisée.
CURLOPT_FRESH_CONNECT | TRUE pour forcer à utiliser une nouvelle connexion au lieu de celle en cache.
CURLOPT_FTP_USE_EPRT | TRUE pour utiliser EPRT (et LPRT) lors de l'activation des téléchargements FTP. Utilisez FALSE pour désactiver EPRT et LPRT et ainsi, n'utiliser que PORT.
CURLOPT_FTP_USE_EPSV | TRUE pour tenter tout d'abord une commande EPSV pour les transferts FTP avant de revenir à une commande PASV. Définissez cette option à FALSE pour désactiver EPSV.
CURLOPT_FTP_CREATE_MISSING_DIRS | TRUE pour créer les dossiers intermédiaires lorsqu'une opération FTP est demandée sur un chemin qui n'existe pas.
CURLOPT_FTPAPPEND | TRUE pour que PHP ajoute les informations au fichier distant, plutôt que de l'écraser.
CURLOPT_TCP_NODELAY | Spécifie si l'option TCP_NODELAY doit être définie ou non (1 = défini, 0 = non défini). L'option vaut 0 par défaut. | Disponible depuis PHP 5.2.1 pour les versions compilées avec libcurl 7.11.2 ou supérieur.
CURLOPT_FTPASCII | Un alias de CURLOPT_TRANSFERTEXT. Utilisez celui-là à la place.
CURLOPT_FTPLISTONLY | TRUE pour ne lister que les noms d'un dossier FTP.
CURLOPT_HEADER | TRUE pour inclure l'en-tête dans la valeur de retour.
CURLINFO_HEADER_OUT | TRUE pour suivre la chaîne de requête handle. | Disponible depuis PHP 5.1.3. Le préfixe CURLINFO_ est intentionnel.
CURLOPT_HTTPGET | TRUE pour réinitialiser la méthode de requête HTTP à GET. Sachant que GET est la valeur par défaut, cela n'est uniquement nécessaire que si la méthode de requête a été changée.
CURLOPT_HTTPPROXYTUNNEL | TRUE pour effectuer un tunnel à travers un proxy HTTP.
CURLOPT_MUTE | TRUE pour que PHP soit totalement silencieux concernant toutes les fonctions cURL. | Supprimé en cURL 7.15.5 (Vous pouvez utiliser CURLOPT_RETURNTRANSFER à la place)
CURLOPT_NETRC | TRUE pour que PHP analyse votre fichier ~./netrc et utilise votre nom de compte et mot de passe sur le site distant que vous souhaitez contacter.
CURLOPT_NOBODY | TRUE pour que le corps du transfert ne soit pas inclus dans la valeur de retour. La méthode de demande est définie à HEAD. Le fait de modifier cette option à la valeur FALSE ne modifie pas la méthode GET.
CURLOPT_NOPROGRESS

TRUE pour désactiver la barre de progression des transferts cURL.

Note:

PHP définit automatiquement cette option à TRUE. Ne changez cette valeur que le temps du déboguage.

CURLOPT_NOSIGNAL | TRUE pour ignorer toutes les fonctions cURL qui cause l'envoi d'un signal au processus PHP. Activée par défaut dans les SAPI multithreadés, les options d'expiration peut toujours être utilisées. | Ajouté dans cURL 7.10.
CURLOPT_POST | TRUE pour que PHP fasse un HTTP POST. Un POST est un encodage normal application/x-www-form-urlencoded, utilisé couramment par les formulaires HTML.
CURLOPT_PUT | TRUE pour que le chargement se fasse par HTTP PUT. Le fichier à charger doit être fixé avec les options CURLOPT_INFILE et CURLOPT_INFILESIZE.
CURLOPT_RETURNTRANSFER | TRUE retourne directement le transfert sous forme de chaîne de la valeur retournée par curl_exec() au lieu de l'afficher directement.
CURLOPT_SAFE_UPLOAD | TRUE désactive le support du préfixe @ pour l'envoi de fichiers dans CURLOPT_POSTFIELDS, ce qui signifie que les valeurs commençant avec @ peuvent être passées comme paramètres sans danger. CURLFile devrait être utilisé pour les envois de fichiers. | Ajouté dans PHP 5.5.0 avec comme valeur par défaut, FALSE. PHP 5.6.0 modifie la valeur par défaut à TRUE.
CURLOPT_SSL_VERIFYPEER | FALSE pour arrêter CURL de vérifier le certificat. Les certificats alternatifs peuvent être spécifiés avec l'option CURLOPT_CAINFO (ajouté dans CURL 7.9.8) ou un répertoire de certificat peut être spécifié avec l'option CURLOPT_CAPATH. | TRUE par défaut depuis cURL 7.10. Paquet installé par défaut depuis cURL 7.10.
CURLOPT_TRANSFERTEXT | TRUE pour utiliser le mode ASCII pour les transferts FTP. Pour LDAP, il récupère les données en texte plein au lieu d'HTML. Sur les systèmes Windows, STDOUT ne sera pas définie en mode binaire.
CURLOPT_UNRESTRICTED_AUTH | TRUE pour garder l'envoi du nom de l'utilisateur ainsi que le mot de passe lorsque l'on suit les chemins (en utilisant CURLOPT_FOLLOWLOCATION), même si le nom d'hôte change.
CURLOPT_UPLOAD | TRUE pour que PHP prépare un chargement.
CURLOPT_VERBOSE | TRUE pour afficher tous les événements. Écrit la sortie sur STDERR ou dans le fichier spécifié en utilisant CURLOPT_STDERR.

value doit être un integer pour les valeurs suivantes du paramètres option :

Option | Définissez le paramètre value à | Notes
CURLOPT_BUFFERSIZE | La taille du buffer à utiliser pour chaque lecture. Cependant, il n'y a aucune garantie que cette requête soit accomplie. | Ajouté en cURL 7.10.
CURLOPT_CLOSEPOLICY Une des valeurs de CURLCLOSEPOLICY_*.

Note:

Cette option est obsolète, sachant qu'elle n'a jamais été implémenté en cURL, et n'a jamais eu aucun effet.

Supprimé en PHP 5.6.0.
CURLOPT_CONNECTTIMEOUT | Le nombre de secondes à attendre durant la tentative de connexion. Utilisez 0 pour attendre indéfiniment.
CURLOPT_CONNECTTIMEOUT_MS | Le nombre de millisecondes à attendre durant la tentative de connexion. Utilisez 0 pour attendre indéfiniment. Si libcurl est construit pour utiliser le système standard de résolution de noms, cette partie de la connexion utilisera toujours la seconde résolution pour le délai d'attente maximal avec un délai d'attente maximal minimum autorisé d'une seconde. | Ajouté en cURL 7.16.2. Disponible depuis PHP 5.2.3.
CURLOPT_DNS_CACHE_TIMEOUT | Le temps en seconde que CURL doit conserver les entrées DNS en mémoire. Cette option est définie à 120 secondes (2 minutes) par défaut.
CURLOPT_FTPSSLAUTH | La méthode d'identification FTP, lorsqu'elle est activée : CURLFTPAUTH_SSL (tente SSL en premier), CURLFTPAUTH_TLS (tente TLS en premier) ou CURLFTPAUTH_DEFAULT (laisse cURL décider). | Ajouté en cURL 7.12.2.
CURLOPT_HTTP_VERSION | CURL_HTTP_VERSION_NONE (défaut, laisse cURL décider la version à utiliser), CURL_HTTP_VERSION_1_0 (force HTTP/1.0), ou CURL_HTTP_VERSION_1_1 (force HTTP/1.1).
CURLOPT_HTTPAUTH

La méthode d'identification HTTP à utiliser. Ces options sont : CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY et CURLAUTH_ANYSAFE.

Vous pouvez utiliser le séparateur | ou un opérateur pour combiner plus d'une méthode. Si vous faites cela, CURL interrogera le serveur pour voir quelles sont les méthodes supportées et prendra la meilleur.

CURLAUTH_ANY est un alias pour CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLAUTH_ANYSAFE est un alias pour CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLOPT_INFILESIZE | La taille attendue, en octets, du fichier lors du téléchargement d'un fichier depuis un site distant. Notez que l'utilisation de cette option n'arrêtera pas libcurl d'envoyer de plus de données, de la même façon que ce qui est envoyé dépend de l'option CURLOPT_READFUNCTION.
CURLOPT_LOW_SPEED_LIMIT | La vitesse de transfert minimale en octets par secondes en dessous de laquelle, et pendant CURLOPT_LOW_SPEED_TIME secondes, PHP considérera qu'elle est trop lente, et annulera le transfert.
CURLOPT_LOW_SPEED_TIME | Le temps en secondes, pendant lequel si le transfert reste en dessous de CURLOPT_LOW_SPEED_LIMIT, PHP considérera que la connexion est trop lente, et l'annulera.
CURLOPT_MAXCONNECTS | Le nombre maximal de connexions persistantes autorisées. Lorsque la limite est atteinte, l'option CURLOPT_CLOSEPOLICY est utilisé pour afficher les connexions fermées.
CURLOPT_MAXREDIRS | Le nombre maximal de redirections HTTP à suivre. Utilisez cette option avec l'option CURLOPT_FOLLOWLOCATION.
CURLOPT_PORT | Le numéro du port de connexion, à la place de la valeur par défaut utilisée par le protocole.
CURLOPT_POSTREDIR | Un masque de valeur de 1 (301 Moved Permanently), 2 (302 Found) and 4 (303 See Other) si la méthode HTTP POST doit être maintenu quand CURLOPT_FOLLOWLOCATION est défini et un type spécifique de redirection se produit.. | Ajouté dans cURL 7.19.1. Disponible depuis PHP 5.3.2.
CURLOPT_PROTOCOLS

Champ de bits de valeurs CURLPROTO_*. S'il est utilisé, ce champ limite les protocoles qui peuvent être utilisés durant un transfert. Cela vous permet de limiter le nombre de protocoles utilisés par la libcurl, tout en la compilant avec un grand nombre d'entre eux. Par défaut, libcurl va accepter tous les protocoles qu'elle supporte. Voyez aussi CURLOPT_REDIR_PROTOCOLS.

Les options valides de protocoles sont : CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP, CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO_FILE, CURLPROTO_TFTP, CURLPROTO_ALL

Ajouté en cURL 7.19.4.
CURLOPT_PROXYAUTH | La méthode d'identification HTTP à utiliser pour la connexion à un proxy. Utilisez la même méthode que celle décrite dans CURLOPT_HTTPAUTH. Pour une identification avec un proxy, seuls CURLAUTH_BASIC et CURLAUTH_NTLM sont actuellement supportés. | Ajouté en CURL 7.10.7.
CURLOPT_PROXYPORT | Le numéro du port du proxy à utiliser pour la connexion. Ce numéro de port peut également être défini dans l'option CURLOPT_PROXY.
CURLOPT_PROXYTYPE | Soit CURLPROXY_HTTP (par défaut), soit CURLPROXY_SOCKS5. | Ajouté en cURL 7.10.
CURLOPT_REDIR_PROTOCOLS | Champ de bits de constantes CURLPROTO_*. S'il est utilisé, ce champ limite les protocoles que libcurl peut utiliser pour un transfert, après une redirection lorsque CURLOPT_FOLLOWLOCATION est actif. Cela permet de spécifier une sous-partie des protocoles compilés avec libcurl. Par défaut, libcurl va autoriser tous les protocoles, hormis FILE et SCP. C'est une différence importante avec les versions précédents la 7.19.4, qui suivaient inconditionnellement tous les protocoles supportés. Voyez aussi CURLOPT_PROTOCOLS pour connaître la liste des valeurs des constantes. | Ajoutés en cURL 7.19.4.
CURLOPT_RESUME_FROM | L'offset, en octets, à partir duquel vous voulez commencer le transfert.
CURLOPT_SSL_VERIFYHOST | 1 pour vérifier l'existence d'un nom commun dans le certificat SSL. 2 pour vérifier l'existence d'un nom commun et vérifier qu'il correspond avec le nom d'hôte fourni. En environnement de production, la valeur de cette option doit être conservée à 2 (valeur par défaut). | Support pour la valeur 1 supprimé en cURL 7.28.1
CURLOPT_SSLVERSION Une valeur parmi CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1 (5) or CURL_SSLVERSION_TLSv1_2 (6).

Note:

Dans votre intérêt, il est préférable de ne pas définir cette valeur et utiliser la valeur par défaut. Définir à 2 ou 3 est très dangereux sachant le nombre de vulnérabilité présentes dans SSLv2 et SSLv3.

CURLOPT_TIMECONDITION | Comment CURLOPT_TIMEVALUE est traité. Utilisez CURL_TIMECOND_IFMODSINCE pour retourner la page uniquement si elle a été modifiée depuis le temps spécifié par CURLOPT_TIMEVALUE. Si elle n'a pas été modifiée, un en-tête HTTP "304 Not Modified" sera retourné en supposant que CURLOPT_HEADER vaut TRUE. Utilisez CURL_TIMECOND_IFUNMODSINCE pour faire l'inverse. CURL_TIMECOND_IFMODSINCE est par défaut.
CURLOPT_TIMEOUT | Le temps maximum d'exécution de la fonction cURL.
CURLOPT_TIMEOUT_MS | Le nombre maximal de millisecondes autorisé aux fonctions cURL pour l'exécution. Si libcurl est construit pour utiliser le système standard de résolution de noms, cette partie de la connexion utilisera toujours la seconde résolution pour le délai d'attente maximal avec un délai d'attente maximal minimum autorisé d'une seconde. | Ajouté en cURL 7.16.2. Disponible depuis PHP 5.2.3.
CURLOPT_TIMEVALUE | Le temps en secondes depuis le 1er janvier 1970. Cette valeur sera utilisée comme spécifié dans l'option CURLOPT_TIMECONDITION. Par défaut, CURL_TIMECOND_IFMODSINCE sera utilisée.
CURLOPT_MAX_RECV_SPEED_LARGE | Si un téléchargement en réception excède cette vitesse (comptée en octets par seconde) sur une moyenne cumulée durant le transfert, le transfert se mettra en pause pour conserver la moyenne inférieure ou égales à la valeur de ce paramètre. Par défaut, la vitesse est illimitée. | Ajouté en cURL 7.15.5. Disponible depuis PHP 5.4.0.
CURLOPT_MAX_SEND_SPEED_LARGE | Si un téléchargement en émission excède cette vitesse (comptée en octets par seconde) sur une moyenne cumulée durant le transfert, le transfert se mettra en pause pour conserver la moyenne inférieure ou égales à la valeur de ce paramètre. Par défaut, la vitesse est illimitée. | Ajouté en cURL 7.15.5. Disponible depuis PHP 5.4.0.
CURLOPT_SSH_AUTH_TYPES | Un masque constitué d'une ou plusieurs constantes suivantes : CURLSSH_AUTH_PUBLICKEY, CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEYBOARD. Utilisez la constante CURLSSH_AUTH_ANY pour laisser libcurl en choisir une pour vous. | Ajouté en cURL 7.16.1.
CURLOPT_IPRESOLVE | Autorise une application à sélectionner le type d'adresse IP à utiliser lors de la résolution des noms d'hôtes. Ceci n'est intéressant que lors de l'utilisation des noms d'hôtes qui résolvent les adresses en utilisant plus d'une version d'IP ; les valeurs possibles sont CURL_IPRESOLVE_WHATEVER, CURL_IPRESOLVE_V4, CURL_IPRESOLVE_V6 ; par défaut, vaut CURL_IPRESOLVE_WHATEVER. | Ajouté en cURL 7.10.8.

value doit être une chaîne pour les valeurs suivantes du paramètres option :

Option | Définissez le paramètre value à | Notes
CURLOPT_CAINFO | Le nom d'un fichier contenant un ou plusieurs certificats pour vérifier la concordance. Cela n'a de sens que si vous l'utilisez en combinaison de l'option CURLOPT_SSL_VERIFYPEER. | Nécessite un chemin absolu.
CURLOPT_CAPATH | Un dossier qui contient les certificats. Utilisez cette option avec l'option CURLOPT_SSL_VERIFYPEER.
CURLOPT_COOKIE | Le contenu de l'en-tête "Cookie: ", à transmettre dans l'en-tête HTTP. Notez que les cookies sont séparées par des points-virgule, suivi d'un d'espace (e.g., "fruit=pomme; couleur=rouge")
CURLOPT_COOKIEFILE | Le nom du fichier contenant les données de cookie. Le fichier de cookie peut être au format Netscape, ou simplement des en-têtes HTTP écrits dans un fichier. Si le nom est une chaîne de caractère vide, aucun cookie n'est chargé, mais le gestionnaire est toujours actif.
CURLOPT_COOKIEJAR | Le nom de fichier pour y sauvegarder tous les cookies internes lorsque la connexion se ferme, par exemple après un appel à curl_close.
CURLOPT_CUSTOMREQUEST

Une méthode de requête qui sera utilisée à la place de "GET" ou "HEAD" lors des requêtes HTTP. Cette commande est pratique pour effectuer un "DELETE" ou une autre commande HTTP exotique. Les valeurs valides sont "GET", "POST", "CONNECT" et plus ; i.e. n'entrez pas une requête HTTP ici. Pour le moment, entrez "GET /index.html HTTP/1.0\r\n\r\n" serait incorrect.

Note:

N'utilisez pas cette commande sans vous assurer que le serveur l'accepte.

CURLOPT_EGDSOCKET | Comme CURLOPT_RANDOM_FILE excepté que vous passez une chaîne qui contient un nom de fichier vers le socket Entropy Gathering Daemon.
CURLOPT_ENCODING | Le contenu des en-têtes "Accept-Encoding: " et active le décodage de la réponse. Les encodages supportés sont "identity", "deflate" et "gzip". Si une chaîne vide "" est utilisé, un en-tête contenant tous les types d'encodage supportés est envoyé. | Ajouté en cURL 7.10.
CURLOPT_FTPPORT | La valeur qui sera utilisée pour récupérer l'adresse IP utilisée pour l'instruction FTP "PORT". L'instruction PORT indique au serveur distant de se connecter à cette adresse IP. La chaîne peut être une adresse IP, un nom d'hôte, un nom d'interface réseau (sous UNIX), ou juste '-', pour utiliser les IP par défaut du système.
CURLOPT_INTERFACE | Le nom de l'interface à utiliser. Cela peut être le nom d'une interface, une adresse IP ou encore le nom de l'hôte.
CURLOPT_KEYPASSWD | Le mot de passé nécessaire pour utiliser la clé privée CURLOPT_SSLKEY ou la clé privée CURLOPT_SSH_PRIVATE_KEYFILE. | Added in cURL 7.16.1.
CURLOPT_KRB4LEVEL | Le degré de sécurité KRB4 (Kerberos 4). Chacune des valeurs (dans l'ordre du plus petit au plus grand) suivantes sont valides : "clear", "safe", "confidential", "private".. Si la chaîne passée ne correspond pas à une de ces valeurs, la valeur "private" sera définie. Positionner cette valeur à NULL revient à désactiver la sécurité KRB4. Actuellement, la sécurité KRB4 fonctionne uniquement avec les transaction FTP.
CURLOPT_POSTFIELDS | Toutes les données à passer lors d'une opération de HTTP POST. Pour envoyer un fichier, préfixez le nom du fichier avec un @ et utilisez le chemin complet. Le type de fichier peut être explicitement spécifié en faisant suivre le nom du fichier par le type au format ';type=mimetype'. Ce paramètre peut être passé sous la forme d'une chaîne encodée URL, comme 'para1=val1&para2=val2&...' ou sous la forme d'un tableau dont le nom du champ est la clé, et les données du champ la valeur. Si le paramètre value est un tableau, l'en-tête Content-Type sera définie à multipart/form-data. Depuis PHP 5.2.0, value doit être un tableau si les fichiers sont passés à cette option avec le préfixe @. Depuis PHP 5.5.0, le préfixe @ est obsolète et les fichiers peuvent être envoyés en utilisant CURLFile. Le préfixe @ peut être désactivé, pour passer sans danger des valeurs commençant par @, en définissant l'option CURLOPT_SAFE_UPLOAD à TRUE.
CURLOPT_PROXY | Le nom du proxy HTTP au tunnel qui le demande.
CURLOPT_PROXYUSERPWD | Un nom d'utilisateur et un mot de passe formatés sous la forme "[username]:[password]" à utiliser pour la connexion avec le proxy.
CURLOPT_RANDOM_FILE | Un nom de fichier à utiliser pour interroger le générateur de nombre aléatoire pour SSL.
CURLOPT_RANGE | La plage de valeurs à récupérer sous la forme "X-Y", où les valeurs de X ou Y peuvent être omises. Le transfert HTTP supporte aussi plusieurs intervalles, séparés par des virgules : "X-Y,N-M".
CURLOPT_REFERER | Le contenu de l'en-tête "Referer: " à utiliser dans une requête HTTP.
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 | Une chaîne contenant 32 digits hexédécimaux. La chaîne doit être la somme MD5 de la clé publique de l'hôte distant, et libcurl rejètera la connexion à l'hôte tant que les sommes MD5 ne corresponderont pas. Cette option n'est valable que pour les transferts SCP et SFTP. | Ajouté en cURL 7.17.1.
CURLOPT_SSH_PUBLIC_KEYFILE | Le nom du fichier pour la clé publique. Si non utilisé, libcurl utilisera pas défaut $HOME/.ssh/id_dsa.pub si la variable d'environnement $HOME est définie, et seulement "id_dsa.pub" si HOME n'est pas définie. | Ajouté en cURL 7.16.1.
CURLOPT_SSH_PRIVATE_KEYFILE | Le nom du fichier pour la clé privée. Si non utilisé, libcurl utilisera pas défaut $HOME/.ssh/id_dsa si la variable d'environnement $HOME est définie, et seulement "id_dsa" si HOME n'est pas définie. Si le fichier est protégé par un mot de passe, définissez le avec la constante CURLOPT_KEYPASSWD. | Ajouté en cURL 7.16.1.
CURLOPT_SSL_CIPHER_LIST | Une liste de chiffrements à utiliser avec SSL. Par exemple, RC4-SHA et TLSv1 sont des listes valides de chiffrements.
CURLOPT_SSLCERT | Le nom de fichier du certificat, au format PEM.
CURLOPT_SSLCERTPASSWD | Le mot de passe nécessaire pour utiliser le certificat CURLOPT_SSLCERT.
CURLOPT_SSLCERTTYPE | Le format de votre certificat. Les formats supportés sont "PEM" (par défaut), "DER", et "ENG". | Ajouté en cURL 7.9.3.
CURLOPT_SSLENGINE | L'identifiant pour le moteur de chiffrement de votre clé privée spécifié dans CURLOPT_SSLKEY.
CURLOPT_SSLENGINE_DEFAULT | L'identifiant pour le moteur de chiffrement utilisé pour les opérations de chiffrement asymétrique.
CURLOPT_SSLKEY | Un nom de fichier contenant votre clé privée SSL.
CURLOPT_SSLKEYPASSWD

Le mot de passe secret utilisé par votre clé SSL privée spécifié dans CURLOPT_SSLKEY.

Note:

Du fait que cette option contient un mot de passe sensible, souvenez-vous de conserver le script PHP qui le contient en toute sécurité.

CURLOPT_SSLKEYTYPE | Le type de votre clé SSL privée spécifié dans CURLOPT_SSLKEY. Les types de clé supportés sont "PEM" (par défaut), "DER", et "ENG".
CURLOPT_URL | L'URL à récupérer. Vous pouvez aussi choisir cette valeur lors de l'appel à curl_init().
CURLOPT_USERAGENT | Le contenu de l'en-tête "User-Agent: " à utiliser dans une requête HTTP.
CURLOPT_USERPWD | Un nom d'utilisateur et un mot de passe formatés sous la forme "[username]:[password]" à utiliser pour la connexion.

value doit être un tableau pour les valeurs suivantes du paramètres option :

Option | Définissez le paramètre value à | Notes
CURLOPT_HTTP200ALIASES | Un tableau de réponses HTTP 200 qui sera traité comme réponses valides et non comme des erreurs. | Ajouté en CURL 7.10.3.
CURLOPT_HTTPHEADER | Un tableau de champs d'en-têtes HTTP à définir, au format array('Content-type: text/plain', 'Content-length: 100')
CURLOPT_POSTQUOTE | Un tableau de commandes FTP à exécuter sur le serveur après que la requête FTP se soit exécutée.
CURLOPT_QUOTE | Un tableau de commandes FTP à exécuter sur le serveur avant la requête FTP.

value doit être une ressource (utilisant fopen(), par exemple) pour les valeurs suivantes du paramètre option :

Option | Définissez le paramètre value à
CURLOPT_FILE | Le fichier où sera écrit le transfert. Par défaut, STDOUT (la fenêtre du navigateur).
CURLOPT_INFILE | Le fichier lu par le transfert lors du chargement.
CURLOPT_STDERR | Un chemin alternatif à utiliser pour afficher les erreurs au lieu de STDERR.
CURLOPT_WRITEHEADER | Le fichier où sera écrit les parties d'en-tête du transfert.

value doit être le nom d'une fonction ou d'une Closure valide pour les valeurs suivantes du paramètres option :

Option | Définissez le paramètre value à
CURLOPT_HEADERFUNCTION | Une fonction de rappel acceptant deux paramètres. Le premier est la ressource cURL, le second, une chaîne de caractères avec les données d'en-têtes à écrire. Ces données d'en-têtes doivent être écrites par cette fonction de rappel. Le nombre d'octets écrit sera retourné.
CURLOPT_PASSWDFUNCTION | Une fonction de rappel qui prend trois paramètres. Le premier est la ressource CURL, le second, une chaîne contenant un mot de passe de prompt et le troisième, est la longueur maximale du mot de passe. Retourne une chaîne contenant le mot de passe.
CURLOPT_PROGRESSFUNCTION

Une fonction de rappel qui prend cinq arguments. Le premier est la ressource cURL, le second est le nombre total d'octets attendu à télécharger pendant le transfert, le troisième est le nombre d'octets téléchargés, le quatrième est le total d'octets attendu à uploader pendant le transfert, et le cinquième est le nombre d'octets uploadés.

Note:

The callback is only called when the CURLOPT_NOPROGRESS option is set to FALSE.

Return a non-zero value to abort the transfer. In which case, the transfer will set a CURLE_ABORTED_BY_CALLBACK error.

CURLOPT_READFUNCTION | Une fonction de rappel qui prend trois paramètres. Le premier est une ressource cURL, le second, une ressource de flux fournie à cURL via l'option CURLOPT_INFILE, et le troisième, la quantité maximale de données à lire. La fonction de rappel doit retourner une chaîne dont la taille est inférieure ou égale à la quantité de données demandées, habituellement en les lisant depuis la ressource de flux passée. Elle doit retourner une chaîne vide pour signaler la fin EOF.
CURLOPT_WRITEFUNCTION | Une fonction de rappel qui prend deux paramètres. Le premier est la ressource CURL et le second, une chaîne contenant les données à écrire. En utilisant cette fonction de rappel, il devient de votre responsabilité d'écrire les données. Doit retourner le nombre exact d'octets écrits ou le transfert échouera avec une erreur.

Autres valeurs :

Option | Définit le paramètre value en
CURLOPT_SHARE | Un résultat de la fonction curl_share_init(). Fait que le gestionnaire cURL va utiliser les données depuis le gestionnaire partagé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.6.0 | CURL_SAFE_UPLOAD vaut maintenant TRUE par défaut.
5.6.0 | Suppression de CURLOPT_CLOSEPOLICY et des valeurs associées.
5.5.0 | Ajoute la ressource cURL comme premier argument à la fonction de rappel CURLOPT_PROGRESSFUNCTION.
5.5.0 | Introduction de la constante CURLOPT_SHARE.
5.3.0 | Introduction de la constante CURLOPT_PROGRESSFUNCTION.
5.2.10 | Ajout de CURLOPT_PROTOCOLS et CURLOPT_REDIR_PROTOCOLS.
5.1.0 | Ajout de CURLOPT_AUTOREFERER, CURLOPT_BINARYTRANSFER, CURLOPT_FTPSSLAUTH, CURLOPT_PROXYAUTH et CURLOPT_TIMECONDITION.
5.0.0 | Ajout de CURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE et CURLOPT_HTTP200ALIASES.

Exemples

Exemple #1 Initialisation d'une nouvelle session CURL et recherche d'une page Web

<?php
// Création d'une ressource cURL
$ch = curl_init();

// Définition de l'URL et autres options appropriées
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);

// Récupération de l'URL et passage au navigateur
curl_exec($ch);

// Fermeture de la ressource cURL et libération des ressources systèmes
curl_close($ch);
?>

Exemple #2 Télécharger un fichier sur un serveur

<?php

/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/

$ch = curl_init();

$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');

curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);
?>

L'exemple ci-dessus va afficher :

Array
(
    [name] => Foo
)
Array
(
    [file] => Array
        (
            [name] => test.png
            [type] => image/png
            [tmp_name] => /tmp/phpcpjNeQ
            [error] => 0
            [size] => 279
        )

)

Notes

Note:

Le fait de passer un tableau à la constante CURLOPT_POSTFIELDS encodera les données comme multipart/form-data, tandis que le fait de passer une chaîne encodée URL encodera les données comme application/x-www-form-urlencoded.

Voir aussi

  • curl_setopt_array() - Fixe plusieurs options pour un transfert cURL


Ferme un gestionnaire partagé cURL

  • « curl_setopt
  • curl_share_init »
  • PHP Manual
  • Fonctions cURL
  • Ferme un gestionnaire partagé cURL

curl_share_close

(PHP 5 >= 5.5.0, PHP 7)

curl_share_close — Ferme un gestionnaire partagé cURL

Description

void curl_share_close ( resource $sh )

Ferme un gestionnaire partagé cURL et libère toutes les ressources associées.

Liste de paramètres

sh

Un gestionnaire partagé cURL retourné par la fonction curl_share_init()

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exempe avec curl_share_setopt()

Cet exemple va créer un gestionnaire partagé cURL, y ajoute deux gestionnaires cURL, puis, va les exécuter avec les cookies de données partagés.

<?php
// Crée un gestionnaire partagé cURL, et le définit pour partager les cookies de données
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// Initialise le premier gestionnaire cURL, et y assigne le gestionnaire partagé
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Exécute le premier gestion cURL
curl_exec($ch1);

// Initialise le second gestionnaire cURL, et y assigne le gestionnaire partagé
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Exécute le second gestionnaire cURL.
// Tous les cookies du gestionnaire $ch1 sont partagés avec le gestionnaire $ch2.
curl_exec($ch2);

// Ferme le gestionnaire partagé cURL
curl_share_close($sh);

// Ferme les gestionnaires cURL
curl_close($ch1);
curl_close($ch2);
?>

Voir aussi

  • curl_share_init() - Initialise un gestionnaire partagé cURL


Initialise un gestionnaire partagé cURL

  • « curl_share_close
  • curl_share_setopt »
  • PHP Manual
  • Fonctions cURL
  • Initialise un gestionnaire partagé cURL

curl_share_init

(PHP 5 >= 5.5.0, PHP 7)

curl_share_init — Initialise un gestionnaire partagé cURL

Description

resource curl_share_init ( void )

Autorise le partage de données entre gestionnaires cURL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une ressource de type "cURL Share Handle".

Exemples

Exemple #1 Exemple avec curl_share_init()

Cet exemple va créer un gestionnaire partagé cURL, y ajouter deux gestionnaires cURL, puis, va les exécuter avec des cookies de données partagées.

<?php
// Crée un gestionnaire partagé cURL, et le définit pour partager les données de cookies
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// Initialise le premier gestionnaire cURL, et y assigne le gestionnaire partagé
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Exécute le premier gestionnaire cURL
curl_exec($ch1);

// Initialise le second gestionnaire cURL et y assigne le gestionnaire partagé
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Exécute le second gestionnaire cURL.
// Tous les cookies du gestionnaire $ch1 sont partagés avec le gestionnaire $ch2.
curl_exec($ch2);

// Ferme le gestionnaire partagé cURL
curl_share_close($sh);

// Ferme les gestionnaires cURL
curl_close($ch1);
curl_close($ch2);
?>

Voir aussi

  • curl_share_setopt() - Définit une option du gestionnaire partagé cURL
  • curl_share_close() - Ferme un gestionnaire partagé cURL


Définit une option du gestionnaire partagé cURL

  • « curl_share_init
  • curl_strerror »
  • PHP Manual
  • Fonctions cURL
  • Définit une option du gestionnaire partagé cURL

curl_share_setopt

(PHP 5 >= 5.5.0, PHP 7)

curl_share_setopt — Définit une option du gestionnaire partagé cURL

Description

bool curl_share_setopt ( resource $sh , int $option , string $value )

Définit une option sur le gestionnaire partagé cURL fourni.

Liste de paramètres

sh

Un gestionnaire cURL retourné par la fonction curl_share_init().

option

Option | Description
CURLSHOPT_SHARE | Spécifie un type de données qui doivent être partagées.
CURLSHOPT_UNSHARE | Spécifie un type de données qui ne doivent plus être partagées.

value

Valeur | Description
CURL_LOCK_DATA_COOKIE | Cookie de données partagées.
CURL_LOCK_DATA_DNS | Cache DNS partagé. Notez que lorsque vous utilisez des gestionnaires multiples cURL, chaque gestionnaire ajouté au même gestionnaire multiple partage le cache DNS par défaut..
CURL_LOCK_DATA_SSL_SESSION | Identifiants de session partagés SSL, réduisant le temps passé sur la négociation SSL lors d'une reconnection sur le même serveur. Notez que les identifiants de session SSL sont ré-utilisés dans le même gestionnaire par défaut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec curl_share_setopt()

Cet exemple va créer un gestionnaire partagé cURL, y ajoute deux gestionnaires cURL, puis, les exécute avec des cookies de données partagées.

<?php
// Crée un gestionnaire partagé cURL et le définit pour partager les cookies de données
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// Initialise le premier gestionnaire cURL et y assigne le gestionnaire partagé
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Exécute le premier gestionnaire cURL
curl_exec($ch1);

// Initialise le secon gestionnaire cURL et y assigne le gestionnaire partagé
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Exécute le second gestionnaire cURL
// Tous les cookies depuis le gestionnaire $ch1 sont partagés avec le gestionnaire $ch2
curl_exec($ch2);

// Ferme le gestionnaire partagé cURL
curl_share_close($sh);

// Ferme les gestionnaires cURL
curl_close($ch1);
curl_close($ch2);
?>


Retourne la chaîne descriptive du code erreur fourni

  • « curl_share_setopt
  • curl_unescape »
  • PHP Manual
  • Fonctions cURL
  • Retourne la chaîne descriptive du code erreur fourni

curl_strerror

(PHP 5 >= 5.5.0, PHP 7)

curl_strerror — Retourne la chaîne descriptive du code erreur fourni

Description

string curl_strerror ( int $errornum )

Retourne le message d'erreur décrivant le code erreur fourni.

Liste de paramètres

errornum

Une constante parmi les constantes » des codes erreurs cURL.

Valeurs de retour

Retourne la description de l'erreur ou NULL pour un code erreur invalide.

Exemples

Exemple #1 Exemple avec curl_errno()

<?php
// Crée un gestionnaire curl avec une erreur dans le protocole de l'URL utilisée
$ch = curl_init("htp://example.com/");

// Envoi la requête
curl_exec($ch);

// Vérifie les erreurs et affiche le message d'erreur
if($errno = curl_errno($ch)) {
    $error_message = curl_strerror($errno);
    echo "cURL error ({$errno}):\n {$error_message}";
}

// Ferme le gestionnaire
curl_close($ch);
?>

L'exemple ci-dessus va afficher :

cURL error (1):
 Unsupported protocol

Voir aussi

  • curl_errno() - Retourne le dernier message d'erreur cURL
  • curl_error() - Retourne une chaîne contenant le dernier message d'erreur cURL
  • » Les codes erreurs Curl


Décode l'URL fourni

  • « curl_strerror
  • curl_version »
  • PHP Manual
  • Fonctions cURL
  • Décode l'URL fourni

curl_unescape

(PHP 5 >= 5.5.0, PHP 7)

curl_unescape — Décode l'URL fourni

Description

string curl_unescape ( resource $ch , string $str )

Cette fonction décode l'URL fourni.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

str

L'URL encodé, à décoder.

Valeurs de retour

Retourne la chaîne décodée ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec curl_escape()

<?php
// Création d'un gestionnaire curl
$ch = curl_init('http://example.com/redirect.php');

// Envoi une requête HTTP et suit les redirections
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);

// Récupère la dernière URL effective
$effective_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
// ie. "http://example.com/show_location.php?loc=M%C3%BCnchen"

// Décode l'URL
$effective_url_decoded = curl_unescape($ch, $effective_url);
// "http://example.com/show_location.php?loc=München"

// Ferme le gestionnaire
curl_close($ch);
?>

Notes

Note:

curl_unescape() ne décode pas les symboles "plus" (+) en espaces, alors que c'est le comportement de la fonction urldecode().

Voir aussi

  • curl_escape() - Encode URL la chaîne fournie
  • urlencode() - Encode une chaîne en URL
  • urldecode() - Décode une chaîne encodée URL
  • rawurlencode() - Encode une chaîne en URL, selon la RFC 3986
  • rawurldecode() - Décode une chaîne URL


Retourne la version courante de cURL

  • « curl_unescape
  • CURLFile »
  • PHP Manual
  • Fonctions cURL
  • Retourne la version courante de cURL

curl_version

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_version — Retourne la version courante de cURL

Description

array curl_version ([ int $age = CURLVERSION_NOW ] )

Retourne des informations sur la version cURL.

Liste de paramètres

age

Valeurs de retour

Retourne un tableau associatif contenant les éléments suivants :

Indice | Description de la valeur
version_number | numéro de version cURL 24 bit
version | numéro de version cURL, sous la forme d'une chaîne de caractères
ssl_version_number | numéro de version OpenSSL 24 bit
ssl_version | numéro de version OpenSSL, sous la forme d'une chaîne de caractères
libz_version | numéro de version zlib, sous la forme d'une chaîne de caractères
host | Informations sur l'hôte sur lequel cURL a été construit
age |
features | Un masque de constantes CURL_VERSION_XXX
protocols | Un tableau de noms de protocoles supportés par cURL

Exemples

Exemple #1 Exemple avec curl_version()

Cet exemple analyse les fonctionnalités disponibles dans la version courante de cURL en utilisant le masque 'features' retourné par la fonction curl_version().

<?php
// Récupère la version de cURL, sous la forme d'un tableau
$version = curl_version();

// Voici les champs qui peuvent être utilisés
// afin de vérifier les fonctionnalités présentes dans cURL
$bitfields = Array(
             'CURL_VERSION_IPV6',
             'CURL_VERSION_KERBEROS4',
             'CURL_VERSION_SSL',
             'CURL_VERSION_LIBZ'
             );

foreach($bitfields as $feature)
{
    echo $feature . ($version['features'] & constant($feature) ? ' présente' : ' absente');
    echo PHP_EOL;
}
?>


La classe CURLFile

(PHP 5 >= 5.5.0, PHP 7)

Introduction

CURLFile doit être utilisé pour transférer un fichier avec des constantes CURLOPT_POSTFIELDS.

Synopsis de la classe

CURLFile {
/* Propriétés */
public $name ;
public $mime ;
public $postname ;
/* Méthodes */
public __construct ( string $filename [, string $mimetype [, string $postname ]] )
public string getFilename ( void )
public string getMimeType ( void )
public string getPostFilename ( void )
public void setMimeType ( string $mime )
public void setPostFilename ( string $postname )
public void __wakeup ( void )
}

Propriétés

name

Nom du fichier à télécharger.

mime

Type MIME du fichier (par défaut, application/octet-stream).

postname

Le nom du fichier dans les données téléchargées (par défaut, la propriété name).

Voir aussi

  • curl_setopt()

Sommaire

  • CURLFile::__construct — Crée un objet CURLFile
  • CURLFile::getFilename — Récupère le nom du fichier
  • CURLFile::getMimeType — Récupère le type MIME
  • CURLFile::getPostFilename — Récupère le nom de fichier pour POST
  • CURLFile::setMimeType — Définit le type MIME
  • CURLFile::setPostFilename — Définit le nom du fichier pour POST
  • CURLFile::__wakeup — Gestionnaire de délinéarisation


Crée un objet CURLFile

  • « CURLFile
  • CURLFile::getFilename »
  • PHP Manual
  • CURLFile
  • Crée un objet CURLFile

CURLFile::__construct

curl_file_create

(PHP 5 >= 5.5.0, PHP 7)

CURLFile::__construct -- curl_file_create — Crée un objet CURLFile

Description

Style orienté objet

public CURLFile::__construct ( string $filename [, string $mimetype [, string $postname ]] )

Style procédural

CURLFile curl_file_create ( string $filename [, string $mimetype [, string $postname ]] )

Crée un objet CURLFile, utilisé pour télécharger un fichier avec CURLOPT_POSTFIELDS.

Liste de paramètres

filename

Chemin vers le fichier à télécharger.

mimetype

Type MIME du fichier.

postname

Nom du fichier à utiliser dans les données téléchargées.

Valeurs de retour

Retourne un objet CURLFile.

Exemples

Exemple #1 Exemple avec CURLFile::__construct()

Style orienté objet

<?php
/* http://example.com/upload.php:
<?php var_dump($_FILES); ?>
*/

// Crée un gestionnaire cURL
$ch = curl_init('http://example.com/upload.php');

// Crée un objet CURLFile
$cfile = new CURLFile('cats.jpg','image/jpeg','test_name');

// Assigne les données POST
$data = array('test_file' => $cfile);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// Exécute le gestionnaire
curl_exec($ch);
?>

Style procédural

<?php
/* http://example.com/upload.php:
<?php var_dump($_FILES); ?>
*/

// Crée un gestionnaire cURL
$ch = curl_init('http://example.com/upload.php');

// Crée un objet CURLFile
$cfile = curl_file_create('cats.jpg','image/jpeg','test_name');

// Assigne les données POST
$data = array('test_file' => $cfile);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// Exécute le gestionnaire
curl_exec($ch);
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["test_file"]=>
  array(5) {
    ["name"]=>
    string(9) "test_name"
    ["type"]=>
    string(10) "image/jpeg"
    ["tmp_name"]=>
    string(14) "/tmp/phpPC9Kbx"
    ["error"]=>
    int(0)
    ["size"]=>
    int(46334)
  }
}

Voir aussi

  • curl_setopt() - Définit une option de transmission cURL


Récupère le nom du fichier

  • « CURLFile::__construct
  • CURLFile::getMimeType »
  • PHP Manual
  • CURLFile
  • Récupère le nom du fichier

CURLFile::getFilename

(PHP 5 >= 5.5.0, PHP 7)

CURLFile::getFilename — Récupère le nom du fichier

Description

public string CURLFile::getFilename ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du fichier.


Récupère le type MIME

  • « CURLFile::getFilename
  • CURLFile::getPostFilename »
  • PHP Manual
  • CURLFile
  • Récupère le type MIME

CURLFile::getMimeType

(PHP 5 >= 5.5.0, PHP 7)

CURLFile::getMimeType — Récupère le type MIME

Description

public string CURLFile::getMimeType ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le type MIME.


Récupère le nom de fichier pour POST

  • « CURLFile::getMimeType
  • CURLFile::setMimeType »
  • PHP Manual
  • CURLFile
  • Récupère le nom de fichier pour POST

CURLFile::getPostFilename

(PHP 5 >= 5.5.0, PHP 7)

CURLFile::getPostFilename — Récupère le nom de fichier pour POST

Description

public string CURLFile::getPostFilename ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du fichier pour POST.


Définit le type MIME

  • « CURLFile::getPostFilename
  • CURLFile::setPostFilename »
  • PHP Manual
  • CURLFile
  • Définit le type MIME

CURLFile::setMimeType

(PHP 5 >= 5.5.0, PHP 7)

CURLFile::setMimeType — Définit le type MIME

Description

public void CURLFile::setMimeType ( string $mime )

Liste de paramètres

mime

Type MIME à utiliser dans les données POST.

Valeurs de retour

Aucune valeur n'est retournée.


Définit le nom du fichier pour POST

  • « CURLFile::setMimeType
  • CURLFile::__wakeup »
  • PHP Manual
  • CURLFile
  • Définit le nom du fichier pour POST

CURLFile::setPostFilename

(PHP 5 >= 5.5.0, PHP 7)

CURLFile::setPostFilename — Définit le nom du fichier pour POST

Description

public void CURLFile::setPostFilename ( string $postname )

Liste de paramètres

postname

Nom du fichier à utiliser pour les données POST.

Valeurs de retour

Aucune valeur n'est retournée.


Gestionnaire de délinéarisation

  • « CURLFile::setPostFilename
  • Event »
  • PHP Manual
  • CURLFile
  • Gestionnaire de délinéarisation

CURLFile::__wakeup

(PHP 5 >= 5.5.0, PHP 7)

CURLFile::__wakeup — Gestionnaire de délinéarisation

Description

public void CURLFile::__wakeup ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

CURLFile n'est pas linéarisable.


Event

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Exemples
  • Les drapeaux d'événements
  • A propos de la persistence des événements
  • Fonctions de rappel des événements
  • Construction d'un événement de type signal
  • Event — La classe Event
    • Event::add — Bascule un évènement en attente
    • Event::addSignal — Alias de la méthode Event::add
    • Event::addTimer — Alias de Event::add
    • Event::__construct — Construit un objet Event
    • Event::del — Supprime un événement de la liste des événements surveillés
    • Event::delSignal — Alias de Event::del
    • Event::delTimer — Alias de Event::del
    • Event::free — Supprime une événement de la liste des événements surveillés et libère les ressources associées
    • Event::getSupportedMethods — Retourne un tableau contenant les noms des méthodes supportées par cette version de Libevent
    • Event::pending — Détecte si l'événement est en attente ou programmé
    • Event::set — Re-configure l'événement
    • Event::setPriority — Défini la priorité de l'événement
    • Event::setTimer — Re-configure un événement timer
    • Event::signal — Construit un objet d'événement signal
    • Event::timer — Construit un objet d'événement timer
  • EventBase — La classe EventBase
    • EventBase::__construct — Construit un objet EventBase
    • EventBase::dispatch — Distribut les événements en attente
    • EventBase::exit — Stoppe la distribution des événements
    • EventBase::free — Libère les ressources allouées pour l'événement de base
    • EventBase::getFeatures — Retourne un masque des fonctionalités supportées
    • EventBase::getMethod — Retourne la méthode d'événement utilisée
    • EventBase::getTimeOfDayCached — Retourne le temps de l'événement courant
    • EventBase::gotExit — Vérifie s'il a été demandé à la boucle d'événements de sortir
    • EventBase::gotStop — Vérifie s'il a été demandé à la boucle d'événements de s'arrêter
    • EventBase::loop — Distribue les événements en attente
    • EventBase::priorityInit — Défini le nombre de propriétés par événement de base
    • EventBase::reInit — Re-initialise l'événement de base (après un fork)
    • EventBase::stop — Demande à event_base de stopper la distribution d'événements
  • EventBuffer — La classe EventBuffer
    • EventBuffer::add — Ajoute des données à la fin du tampon d'événement
    • EventBuffer::addBuffer — Déplace toutes les données du tampon fourni dans l'instance courante EventBuffer
    • EventBuffer::appendFrom — Déplace le nombre d'octets fourni depuis un tampon source vers la fin du tampon courant
    • EventBuffer::__construct — Construit un objet EventBuffer
    • EventBuffer::copyout — Copie le nombre d'octets spécifié depuis le début du tampon
    • EventBuffer::drain — Supprime un nombre spécifié d'octets depuis le début du tampon sans copier les données
    • EventBuffer::enableLocking — Description
    • EventBuffer::expand — Réserve de l'espace dans le tampon
    • EventBuffer::freeze — Permet d'empécher les appels qui tentent de modifier un tampon d'événements de réussir
    • EventBuffer::lock — Acquière un verrou sur le buffer
    • EventBuffer::prepend — Ajoute des données au début du buffer
    • EventBuffer::prependBuffer — Déplace toutes les données depuis le buffer source vers le début du buffer courant
    • EventBuffer::pullup — Linéarise les données du buffer et retourne le contenu du buffer sous la forme d'une chaîne
    • EventBuffer::read — Lit les données d'un evbuffer, et vide les octets lus
    • EventBuffer::readFrom — Lit des données depuis un fichier et les place à la fin du tampon
    • EventBuffer::readLine — Extrait une ligne depuis le début du tampon
    • EventBuffer::search — Recherche dans le tampon une occurrence d'une chaîne
    • EventBuffer::searchEol — Cherche dans le tampon une occurrence de fin de ligne
    • EventBuffer::substr — Soustrait une portion des données du tampon
    • EventBuffer::unfreeze — Ré-active les appels qui permettent de modifier un buffer d'événements
    • EventBuffer::unlock — Libère un verrou acquis avec EventBuffer::lock
    • EventBuffer::write — Ecrit le contenu du buffer dans un fichier ou dans un socket
  • EventBufferEvent — La classe EventBufferEvent
    • EventBufferEvent::close — Ferme le descripteur de fichier associé avec le buffer d'événements courant
    • EventBufferEvent::connect — Connecte le descripteur de fichier du tampon d'événement à l'adresse fournie, ou au socket UNIX
    • EventBufferEvent::connectHost — Connexion à un hôte
    • EventBufferEvent::__construct — Construit un objet EventBufferEvent
    • EventBufferEvent::createPair — Crée deux événements de tampon connectés l'un à l'autre
    • EventBufferEvent::disable — Désactive les événements de lecture, d'écriture ou des deux sur un événement de tampon
    • EventBufferEvent::enable — Active les événements de lecture, d'écriture, ou des deux, sur un événement de tampon
    • EventBufferEvent::free — Libère un événement de tampon
    • EventBufferEvent::getDnsErrorString — Retourne une chaîne décrivant la dernière erreur DNS
    • EventBufferEvent::getEnabled — Retourne un masque d'événements actuellement actifs sur le tampon d'événements
    • EventBufferEvent::getInput — Retourne le tampon d'entrée associé avec le tampon d'événements courant
    • EventBufferEvent::getOutput — Retourne le tampon de sortie associé avec le tampon d'événement courant
    • EventBufferEvent::read — Lit les données du tampon
    • EventBufferEvent::readBuffer — Vide le contenu entier du tampon d'entrée et le place dans le tampon
    • EventBufferEvent::setCallbacks — Assigne les fonctions de rappel pour la lecture, l'écriture, et les statuts d'événements
    • EventBufferEvent::setPriority — Assigne une priorité pour un tampon d'événements
    • EventBufferEvent::setTimeouts — Défini le mode lecture et écriture pour le délai d'attente maximal d'un tampon d'événement
    • EventBufferEvent::setWatermark — Active la lecture, et/ou l'écriture des filigranes
    • EventBufferEvent::sslError — Retourne l'erreur OpenSSL la plus récente rapportée par le tampon d'événement
    • EventBufferEvent::sslFilter — Crée un nouveau tampon d'événement SSL, dont les données seront envoyées via un autre tampon d'événement
    • EventBufferEvent::sslGetCipherInfo — Retourne une description textuelle d'un cipher
    • EventBufferEvent::sslGetCipherName — Retourne le nom du cipher courant pour la connexion SSL
    • EventBufferEvent::sslGetCipherVersion — Retourne la version du cipher utilisé pour la connexion SSL courante
    • EventBufferEvent::sslGetProtocol — Retourne le nom du protocole utilisé pour la connexion SSL courante
    • EventBufferEvent::sslRenegotiate — Demande au tampon d'événement de commencer une renégociation SSL
    • EventBufferEvent::sslSocket — Crée un nouveau tampon SSL dont ces données seront envoyées via un socket SSL
    • EventBufferEvent::write — Ajoute des données dans un tampon d'événement de sortie
    • EventBufferEvent::writeBuffer — Ajoute le contenu entier d'un tampon dans un tampon d'événement de sortie
  • A propos des fonctions de rappel du buffer d'événements
  • EventConfig — La classe EventConfig
    • EventConfig::avoidMethod — Demande à libevent d'ignorer une méthode d'événement spécifique
    • EventConfig::__construct — Construit un objet EventConfig
    • EventConfig::requireFeatures — Entre dans une fonctionalité de méthode d'événement demandée par l'application
    • EventConfig::setMaxDispatchInterval — Evite l'inversion des priorités
  • EventDnsBase — La classe EventDnsBase
    • EventDnsBase::addNameserverIp — Ajoute un serveur de noms à la base DNS
    • EventDnsBase::addSearch — Ajoute un domaine à la liste des domaines utilisés pour la recherche
    • EventDnsBase::clearSearch — Supprime tous les suffixes courants de recherche
    • EventDnsBase::__construct — Construit un objet EventDnsBase
    • EventDnsBase::countNameservers — Récupère le nombre de serveurs de noms configurés
    • EventDnsBase::loadHosts — Charge un fichier hosts (au même format que /etc/hosts)
    • EventDnsBase::parseResolvConf — Analyse le fichier resolv.conf
    • EventDnsBase::setOption — Définit la valeur d'une option de configuration
    • EventDnsBase::setSearchNdots — Définit le paramètre 'ndots' pour les recherches
  • EventHttp — La classe EventHttp
    • EventHttp::accept — Autorise un serveur HTTP à accepter les connexions sur le socket ou la ressource spécifiée
    • EventHttp::addServerAlias — Ajoute un alias du serveur pour l'objet serveur HTTP
    • EventHttp::bind — Lie un serveur HTTP sur une adresse et un port spécifiés
    • EventHttp::__construct — Construit un objet EventHttp (le serveur HTTP)
    • EventHttp::removeServerAlias — Supprime un alias sur le serveur
    • EventHttp::setAllowedMethods — Définit les méthodes HTTP supportées et acceptées dans les requêtes sur ce serveur, et passées aux fonctions de rappel utilisateurs
    • EventHttp::setCallback — Définit une fonction de rapppel pour une URI spécifique
    • EventHttp::setDefaultCallback — Définit la fonction de rappel par défaut pour gérer les requêtes qui ne sont pas attrappées par des fonctions de rappel spécifiques
    • EventHttp::setMaxBodySize — Définit la taille maximale du corps de la demande
    • EventHttp::setMaxHeadersSize — Définit la taille maximale des en-têtes HTTP
    • EventHttp::setTimeout — Définit le délai d'attente maximal pour une requête HTTP
  • EventHttpConnection — La classe EventHttpConnection
    • EventHttpConnection::__construct — Construit un objet EventHttpConnection
    • EventHttpConnection::getBase — Retourne la base d'événement associée avec la connexion
    • EventHttpConnection::getPeer — Récupère l'adresse et le port distant associés avec la connexion
    • EventHttpConnection::makeRequest — Effectue une requête HTTP sur la connexion spécifiée
    • EventHttpConnection::setCloseCallback — Défini une fonction de rappel lors de la fermeture de la connexion
    • EventHttpConnection::setLocalAddress — Définit l'adresse IP depuis laquelle les connexions HTTP sont effectuées
    • EventHttpConnection::setLocalPort — Définit le port local depuis lequel les connexions sont effectuées
    • EventHttpConnection::setMaxBodySize — Définit la taille maximale du corps pour la connexion
    • EventHttpConnection::setMaxHeadersSize — Définit la taille maximale des en-têtes
    • EventHttpConnection::setRetries — Définit le nombre de tentatives pour la connexion
    • EventHttpConnection::setTimeout — Définit le délai d'attente maximal pour la connexion
  • EventHttpRequest — La classe EventHttpRequest
    • EventHttpRequest::addHeader — Ajoute un en-tête HTTP aux en-têtes de la requête
    • EventHttpRequest::cancel — Annule une requête HTTP en attente
    • EventHttpRequest::clearHeaders — Supprime tous les en-têtes depuis la liste des en-têtes de la requête
    • EventHttpRequest::closeConnection — Ferme les connexions HTTP associées
    • EventHttpRequest::__construct — Construit un objet EventHttpRequest
    • EventHttpRequest::findHeader — Cherche la valeur d'un en-tête
    • EventHttpRequest::free — Libère l'objet et supprime les événements associés
    • EventHttpRequest::getBufferEvent — Retourne l'objet EventBufferEvent
    • EventHttpRequest::getCommand — Retourne la commande de la requête (méthode)
    • EventHttpRequest::getConnection — Retourne un objet EventHttpConnection
    • EventHttpRequest::getHost — Retourne l'hôte demandé
    • EventHttpRequest::getInputBuffer — Retourne le buffer d'entrée
    • EventHttpRequest::getInputHeaders — Retourne le tableau associatif contenant les en-têtes d'entrée
    • EventHttpRequest::getOutputBuffer — Retourne le buffer de sortie de la requête
    • EventHttpRequest::getOutputHeaders — Retourne un tableau associatif contenant les en-têtes de sortie
    • EventHttpRequest::getResponseCode — Retourne le code de la réponse
    • EventHttpRequest::getUri — Retourne l'URI de la requête
    • EventHttpRequest::removeHeader — Supprime un en-tête HTTP depuis les en-têtes de la requête
    • EventHttpRequest::sendError — Envoi un message d'erreur HTML au client
    • EventHttpRequest::sendReply — Envoi une réponse HTML au client
    • EventHttpRequest::sendReplyChunk — Envoi un autre bloc de données comme partie d'un bloc de réponse entrant
    • EventHttpRequest::sendReplyEnd — Complète un bloc de réponse, en libérant la requête
    • EventHttpRequest::sendReplyStart — Initialise un bloc de réponse
  • EventListener — La classe EventListener
    • EventListener::__construct — Crée un nouvel écouteur de connexion associé avec la base d'événement
    • EventListener::disable — Désactive un objet d'écoute d'événement de connexion
    • EventListener::enable — Active un objet d'écoute d'événement de connexion
    • EventListener::getBase — Retourne la base d'événement associée avec l'écouteur d'événements
    • EventListener::getSocketName — Récupère l'adresse courant pour laquelle le socket d'écoute est lié
    • EventListener::setCallback — Le but de setCallback
    • EventListener::setErrorCallback — Définit la fonction de rappel sur l'évènement d'erreur
  • EventSslContext — La classe EventSslContext
    • EventSslContext::__construct — Construit un contexte OpenSSL à utiliser avec les classes Event
  • EventUtil — La classe EventUtil
    • EventUtil::__construct — Le constructeur
    • EventUtil::getLastSocketErrno — Retourne le numéro d'erreur le plus récemment survenu sur le socket
    • EventUtil::getLastSocketError — Retourne l'erreur la plus récemment survenue sur le socket
    • EventUtil::getSocketFd — Retourne le descripteur de fichier d'un socket ou d'un flux
    • EventUtil::getSocketName — Récupère l'adresse courant liée au socket
    • EventUtil::setSocketOption — Définit les options du socket
    • EventUtil::sslRandPoll — Génère l'entropie via OpenSSL RAND_poll()


Introduction

Ceci est une extension pour planifier efficacement les I/O, les temps et les signaux basés sur les événements en utilisant le meilleur mécanisme I/O disponible sur une plateforme spécifique. C'est un portage de libevent pour l'infrastructure PHP.

Note:

Notez que le support Windows a été introduit en event-1.9.0.

La version 1.0.0 introduit une nouvelle API orientée objet (cassant ainsi la compatibilité ascendante), et ainsi que le support de libevent 2+, incluant les écoutes HTTP, DNS, OpenSSL et des événements.

Note:

Notez que event-1.0.0 et supérieur n'est pas compatible avec les versions précédentes.


Pré-requis

Cette extension requiert la bibliothèque » libevent. La plupart des distributions modernes fournissent des paquets pour libevent.

Les fonctionalités OpenSSL requièrent la bibliothèque » OpenSSL.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/event.


Exemples

Exemple #1 Client HTTP simple

<?php
// Lecture de la fonction de rappel
function readcb($bev, $base) {
    //$input = $bev->input; //$bev->getInput();

    //$pos = $input->search("TTP");
    $pos = $bev->input->search("TTP");

    while (($n = $bev->input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

// Fonction de rappel de l'événement
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connecté.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "erreur DNS : ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Fermeture\n";
        $base->exit();
        exit("Fait !\n");
    }
}

if ($argc != 3) {
    echo <<<EOS
Trivial HTTP 0.x client
Syntax: php {$argv[0]} [hostname] [resource]
Example: php {$argv[0]} www.google.com /

EOS;
    exit();
}

$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // Nous utilisons une résolution DNS asynchrone
if (!$dns_base) {
    exit("Echec dans l'initialisation de la base DNS\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
    "readcb", /* writecb */ NULL, "eventcb"
);
if (!$bev) {
    exit("Echec dans la création du socket bufferevent\n");
}

//$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

$output = $bev->output; //$bev->getOutput();
if (!$output->add(
    "GET {$argv[2]} HTTP/1.0\r\n".
    "Host: {$argv[1]}\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Echec dans l'ajout de la requête dans le buffer de sortie\n");
}

if (!$bev->connectHost($dns_base, $argv[1], 80, EventUtil::AF_UNSPEC)) {
    exit("Connexion impossible à l'hôte {$argv[1]}\n");
}

$base->dispatch();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Connected.
HTTP/1.1 301 Moved Permanently
Date: Fri, 01 Mar 2013 18:47:48 GMT
Location: http://www.google.co.uk/
Content-Type: text/html; CHARSET=Windows-1252
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Age: 133438
Expires: Sat, 30 Mar 2013 05:39:28 GMT
Connection: close

<HTML><HEAD><meta http-equiv="content-type" content="text/html;CHARSET=Windows-1252">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.co.uk/">here</A>.
</BODY></HTML>
Closing
Done

Exemple #2 Client HTTP en utilisant une résolution DNS asynchrone

<?php
/*
 * 1. Connexion à 127.0.0.1 sur le port 80
 * en utilisant EventBufferEvent::connect().
 *
 * 2. Requête /index.cphp via HTTP/1.0
 * en utilisant le buffer de sortie.
 *
 * 3. Lecture asynchrone de la réponse et l'affiche dans stdout.
 */

// Lecture de la fonction de rappel
function readcb($bev, $base) {
    $input = $bev->getInput();

    while (($n = $input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

// Fonction de rappel de l'événement
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connecté.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Erreur DNS : ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Fermeture\n";
        $base->exit();
        exit("Fait !\n");
    }
}

$base = new EventBase();

echo "étape n°1\n";
$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS);
if (!$bev) {
    exit("Echec lors de la création du socket bufferevent\n");
}

echo "étape n°2\n";
$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

echo "étape n°3\n";
// Envoi de la requête
$output = $bev->getOutput();
if (!$output->add(
    "GET /index.cphp HTTP/1.0\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Echec lors de l'ajout de la requête dans le buffer de sortie\n");
}

/* COnnexion à l'hôte de façon synchrone.
Nous connaissons l'IP, nous n'avons donc pas besoin de résolution DNS. */
if (!$bev->connect("127.0.0.1:80")) {
    exit("Impossible de se connecter à l'hôte\n");
}

// Diffuse les événements en attente
$base->dispatch();
?>

Exemple #3 Serveur d'affichage

<?php
/*
 * Serveur d'affichage simpple basé sur les écoutes de connexion libevent.
 *
 * Utilisation :
 * 1) Dans un terminal, exécutez :
 *
 * $ php listener.php 9881
 *
 * 2) Dans un autre terminal, ouvrez une connexion, i.e. :
 *
 * $ nc 127.0.0.1 9881
 *
 * 3) Commencez à taper. Le serveur devrait répéter les entrées.
 */

class MyListenerConnection {
    private $bev, $base;

    public function __destruct() {
        $this->bev->free();
    }

    public function __construct($base, $fd) {
        $this->base = $base;

        $this->bev = new EventBufferEvent($base, $fd, EventBufferEvent::OPT_CLOSE_ON_FREE);

        $this->bev->setCallbacks(array($this, "echoReadCallback"), NULL,
            array($this, "echoEventCallback"), NULL);

        if (!$this->bev->enable(Event::READ)) {
            echo "Echec dans l'activation de READ\n";
            return;
        }
    }

    public function echoReadCallback($bev, $ctx) {
        // Copie toutes les données depuis le buffer d'entrée vers le buffer de sortie

        // Variant #1
        $bev->output->addBuffer($bev->input);

        /* Variant #2 */
        /*
        $input    = $bev->getInput();
        $output = $bev->getOutput();
        $output->addBuffer($input);
        */
    }

    public function echoEventCallback($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Erreur depuis bufferevent\n";
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            //$bev->free();
            $this->__destruct();
        }
    }
}

class MyListener {
    public $base,
        $listener,
        $socket;
    private $conn = array();

    public function __destruct() {
        foreach ($this->conn as &$c) $c = NULL;
    }

    public function __construct($port) {
        $this->base = new EventBase();
        if (!$this->base) {
            echo "Impossible d'ouvrir la base de l'événement";
            exit(1);
        }

        // Variant #1
        /*
        $this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        if (!socket_bind($this->socket, '0.0.0.0', $port)) {
            echo "Impossible de lier le socket\n";
            exit(1);
        }
        $this->listener = new EventListener($this->base,
            array($this, "acceptConnCallback"), $this->base,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1, $this->socket);
         */

        // Variant #2
         $this->listener = new EventListener($this->base,
             array($this, "acceptConnCallback"), $this->base,
             EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE, -1,
             "0.0.0.0:$port");

        if (!$this->listener) {
            echo "Impossible de créer l'écouteur";
            exit(1);
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }

    public function dispatch() {
        $this->base->dispatch();
    }

    // Cette fonction de rappel est appelée lorsqu'il y a des données à lire sur $bev
    public function acceptConnCallback($listener, $fd, $address, $ctx) {
        // Nous avons une nouvelle connexion ! On définit un bufferevent pour elle. */
        $base = $this->base;
        $this->conn[] = new MyListenerConnection($base, $fd);
    }

    public function accept_error_cb($listener, $ctx) {
        $base = $this->base;

        fprintf(STDERR, "On recoit une erreur %d (%s) sur l'écouteur. "
            ."Arrêt.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $base->exit(NULL);
    }
}

$port = 9808;

if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$l = new MyListener($port);
$l->dispatch();
?>

Exemple #4 Serveur d'affichage SSL

<?php
/*
 * Serveur d'affichage SSL
 *
 * Pour tester :
 * 1) Exécutez :
 * $ php examples/ssl-echo-server/server.php 9998
 *
 * 2) dans un autre terminal, exécutez :
 * $ socat - SSL:127.0.0.1:9998,verify=1,cafile=examples/ssl-echo-server/cert.pem
 */

class MySslEchoServer {
    public $port,
        $base,
        $bev,
        $listener,
        $ctx;

    function __construct ($port, $host = "127.0.0.1") {
        $this->port = $port;
        $this->ctx = $this->init_ssl();
        if (!$this->ctx) {
            exit("Echec lors de la création du contexte SSL\n");
        }

        $this->base = new EventBase();
        if (!$this->base) {
            exit("Impossible d'ouvrir la base de l'événement\n");
        }

        $this->listener = new EventListener($this->base,
            array($this, "ssl_accept_cb"), $this->ctx,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1, "$host:$port");
        if (!$this->listener) {
            exit("Impossible de créer l'écouteur\n");
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }
    function dispatch() {
        $this->base->dispatch();
    }

    // Cette fonction de rappel est appelée lorsqu'il y a des données à lire sur $bev.
    function ssl_read_cb($bev, $ctx) {
        $in = $bev->input; //$bev->getInput();

        printf("Réception de %zu octets\n", $in->length);
        printf("----- données ----\n");
        printf("%ld:\t%s\n", (int) $in->length, $in->pullup(-1));

        $bev->writeBuffer($in);
    }

    // Cette fonction de rappel est appelée lorsque des erreurs surviennent sur l'écouteur d'événement,
    // i.e. la connexion se ferme, ou une erreur survient
    function ssl_event_cb($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            // Récupère les erreurs depuis la pile d'erreur SSL
            while ($err = $bev->sslError()) {
                fprintf(STDERR, "Erreur Bufferevent %s.\n", $err);
            }
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            $bev->free();
        }
    }

    // Cette fonction de rappel est appelée lorsqu'un client accepte une nouvelle connexion
    function ssl_accept_cb($listener, $fd, $address, $ctx) {
        // Nous avons une nouvelle connexion ! On définit un bufferevent pour elle.
        $this->bev = EventBufferEvent::sslSocket($this->base, $fd, $this->ctx,
            EventBufferEvent::SSL_ACCEPTING, EventBufferEvent::OPT_CLOSE_ON_FREE);

        if (!$this->bev) {
            echo "Echec lors de la création du buffer SSL\n";
            $this->base->exit(NULL);
            exit(1);
        }

        $this->bev->enable(Event::READ);
        $this->bev->setCallbacks(array($this, "ssl_read_cb"), NULL,
            array($this, "ssl_event_cb"), NULL);
    }

    // Cette fonction de rappel est appelée lorsqu'on échoue à définir une nouvelle connexion pour un client
    function accept_error_cb($listener, $ctx) {
        fprintf(STDERR, "On reçoit une erreur %d (%s) sur l'écouteur. "
            ."Arrêt.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $this->base->exit(NULL);
    }

    // Initialise les structures SSL ; crée un EventSslContext
    // Optionnellement, crée des certificats auto-signés
    function init_ssl() {
        // Nous *devons* avoir l'entropie. Sinon, il n'y a aucun intérêt à crypter.
        if (!EventUtil::sslRandPoll()) {
            exit("Echec de EventUtil::sslRandPoll\n");
        }

        $local_cert = __DIR__."/cert.pem";
        $local_pk   = __DIR__."/privkey.pem";

        if (!file_exists($local_cert) || !file_exists($local_pk)) {
            echo "Impossible de lire $local_cert ni $local_pk file. Pour générer une clé\n",
                "et un certificat auto-signé, exécutez :\n",
                "  openssl genrsa -out $local_pk 2048\n",
                "  openssl req -new -key $local_pk -out cert.req\n",
                "  openssl x509 -req -days 365 -in cert.req -signkey $local_pk -out $local_cert\n";

            return FALSE;
        }

        $ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, array (
             EventSslContext::OPT_LOCAL_CERT  => $local_cert,
             EventSslContext::OPT_LOCAL_PK    => $local_pk,
             //EventSslContext::OPT_PASSPHRASE  => "echo server",
             EventSslContext::OPT_VERIFY_PEER => true,
             EventSslContext::OPT_ALLOW_SELF_SIGNED => false,
        ));

        return $ctx;
    }
}

// Autorise l'écrasement du port
$port = 9999;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Port invalide\n");
}

$l = new MySslEchoServer($port);
$l->dispatch();
?>

Exemple #5 Gestionnaire de signal

<?php
/*
Dans un terminal, exécutez :

$ php examples/signal.php

Dans un autre terminal, trouvez le pid et envoyé le signal SIGTERM, i.e. :

$ ps aux | grep examp
ruslan    3976  0.2  0.0 139896 11256 pts/1    S+   10:25   0:00 php examples/signal.php
ruslan    3978  0.0  0.0   9572   864 pts/2    S+   10:26   0:00 grep --color=auto examp
$ kill -TERM 3976

Dans le premier terminal, vous devriez attrapper ce qui suit :

On attrappe le signal 15
*/
class MyEventSignal {
    private $base;

    function __construct($base) {
        $this->base = $base;
    }

    function eventSighandler($no, $c) {
        echo "On attrappe le signal $no\n";
        event_base_loopexit($c->base);
    }
}

$base = event_base_new();
$c    = new MyEventSignal($base);
$no   = SIGTERM;
$ev   = evsignal_new($base, $no, array($c,'eventSighandler'), $c);

evsignal_add($ev);

event_base_loop($base);
?>

Exemple #6 Utilisation d'une boucle libevent pour réaliser les requêtes de l'extension `eio'

<?php
// Fonction de rappel pour eio_nop()
function my_nop_cb($d, $r) {
    echo "étape 6\n";
}

$dir = "/tmp/abc-eio-temp";
if (file_exists($dir)) {
    rmdir($dir);
}

echo "étape 1\n";

$base = new EventBase();

echo "étape 2\n";

eio_init();

eio_mkdir($dir, 0750, EIO_PRI_DEFAULT, "my_nop_cb");

$event = new Event($base, eio_get_event_stream(),
    Event::READ | Event::PERSIST, function ($fd, $events, $base) {
    echo "step 5\n";

    while (eio_nreqs()) {
        eio_poll();
    }

    $base->stop();
}, $base);

echo "étape 3\n";

$event->add();

echo "étape 4\n";

$base->dispatch();

echo "Fait !\n";
?>

Exemple #7 Divers

<?php
/* {{{ Configuration & méthodes supportées */
echo "Méthodes supportées :\n";
foreach (Event::getSupportedMethods() as $m) {
    echo $m, PHP_EOL;
}

// On désactive la méthode "select"
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "La méthode `select' a été désactivée\n";
}

// Crée un event_base associé à la configuration
$base = new EventBase($cfg);
echo "Méthode d'événement utilisée : ", $base->getMethod(), PHP_EOL;

echo "fonctionalités :\n";
$features = $base->getFeatures();
($features & EventConfig::FEATURE_ET) and print("ET - edge-triggered IO\n");
($features & EventConfig::FEATURE_O1) and print("O1 - O(1) operation for adding/deletting events\n");
($features & EventConfig::FEATURE_FDS) and print("FDS - arbitrary file descriptor types, and not just sockets\n");

// Nécessite la fonctionalité FDS
if ($cfg->requireFeatures(EventConfig::FEATURE_FDS)) {
    echo "La fonctionalité FDS est maintenant requise\n";

    $base = new EventBase($cfg);
    ($base->getFeatures() & EventConfig::FEATURE_FDS)
        and print("FDS - type de descripteur de fichiers arbitraire, et non uniquement les sockets\n");
}
/* }}} */

/* {{{ Base */
$base = new EventBase();
$event = new Event($base, STDIN, Event::READ | Event::PERSIST, function ($fd, $events, $arg) {
    static $max_iterations = 0;

    if (++$max_iterations >= 5) {
        /* on sort après 5 itérations avec un délai maximal d'attente de 2.33 secondes */
        echo "Arrêt...\n";
        $arg[0]->exit(2.33);
    }

    echo fgets($fd);
}, array (&$base));

$event->add();
$base->loop();
/* Base }}} */
?>

Exemple #8 Serveur HTTP simple

<?php
/*
 * Serveur HTTP simple.
 *
 * Pour le tester :
 * 1) Exécutez-le sur le port de votre choix, i.e. :
 * $ php examples/http.php 8010
 * 2) Dans un autre terminal, connectez-vous sur une adresse de ce port
 * et effectuez des requêtes GET ou POST (les autres types sont désactivées dans cet exemple), i.e. :
 * $ nc -t 127.0.0.1 8010
 * POST /about HTTP/1.0
 * Content-Type: text/plain
 * Content-Length: 4
 * Connection: close
 * (press Enter)
 *
 * Il devrait afficher :
 * a=12
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * $ nc -t 127.0.0.1 8010
 * GET /dump HTTP/1.0
 * Content-Type: text/plain
 * Content-Encoding: UTF-8
 * Connection: close
 * (press Enter)
 *
 * Il devrait afficher :
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 * (press Enter)
 *
 * $ nc -t 127.0.0.1 8010
 * GET /unknown HTTP/1.0
 * Connection: close
 *
 * Il devrait afficher :
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * 3) Voir ce que le serveur affiche dans le terminal précédent.
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 2;

    if (++$counter >= $max_requests)  {
        echo "Le compteur a atteint le nombre maximal de requête ($max_requests). Sortie !\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "Requête :"; var_dump($req);
    echo "Données :"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Commande :", $req->getCommand(), PHP_EOL;
    echo "URI :", $req->getUri(), PHP_EOL;
    echo "En-têtes en entrée :"; var_dump($req->getInputHeaders());
    echo "En-têtes en sortie :"; var_dump($req->getOutputHeaders());

    echo "\n >> Envoi de la réponse ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    echo "\n >> Lecture du buffer d'entrée ...\n";
    $buf = $req->getInputBuffer();
    while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
        echo $s, PHP_EOL;
    }
    echo "Il n'y a plus de données dans le buffer\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI : ", $req->getUri(), PHP_EOL;
    echo "\n >> Envoi de la réponse ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Envoi de la réponse ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Port invalide");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "valeur de données personnalisées");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a=12
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close
(press Enter)

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Exemple #9 Serveur HTTPS simple

<?php
/*
 * Serveur HTTPS simple.
 *
 * 1) Exécutez le serveur : `php examples/https.php 9999`
 * 2) Testez le : `php examples/ssl-connection.php 9999`
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 200;

    if (++$counter >= $max_requests)  {
        echo "Le compteur a atteint le nombre maximal de requêtes ($max_requests). Sortie\n";
        exit();
    }

    echo __METHOD__, " appelée\n";
    echo "Requête :"; var_dump($req);
    echo "Données :"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Commande :", $req->getCommand(), PHP_EOL;
    echo "URI :", $req->getUri(), PHP_EOL;
    echo "En-têtes d'entrée :"; var_dump($req->getInputHeaders());
    echo "En-têtes de sortie :"; var_dump($req->getOutputHeaders());

    echo "\n >> Envoi de la réponse ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    $buf = $req->getInputBuffer();
    echo "\n >> Lecture du buffer d'entrée (", $buf->length, ") ...\n";
    while ($s = $buf->read(1024)) {
        echo $s;
    }
    echo "\nIl n'y a plus de données dans le buffer\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI : ", $req->getUri(), PHP_EOL;
    echo "\n >> Envoi de la réponse ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Envoi de la réponse ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_400($req) {
    $req->sendError(400);
}

function _init_ssl() {
    $local_cert = __DIR__."/ssl-echo-server/cert.pem";
    $local_pk   = __DIR__."/ssl-echo-server/privkey.pem";

    $ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, array (
        EventSslContext::OPT_LOCAL_CERT  => $local_cert,
        EventSslContext::OPT_LOCAL_PK    => $local_pk,
        //EventSslContext::OPT_PASSPHRASE  => "test",
        EventSslContext::OPT_ALLOW_SELF_SIGNED => true,
    ));

    return $ctx;
}

$port = 9999;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Port invalide");
}
$ip = '0.0.0.0';

$base = new EventBase();
$ctx  = _init_ssl();
$http = new EventHttp($base, $ctx);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setCallback("/err400", "_http_400");
$http->setDefaultCallback("_http_default", "Valeur des données personnalisées");

$http->bind($ip, $port);
$base->dispatch();

Exemple #10 Connexion OpenSSL

<?php
/*
 * Exemple de Client OpenSSL.
 *
 * Utilisation :
 * 1) Exécutez un serveur, i.e. :
 * $ php examples/https.php 9999
 *
 * 2) Lancez le client dans un autre terminal :
 * $ php examples/ssl-connection.php 9999
 */

function _request_handler($req, $base) {
    echo __FUNCTION__, PHP_EOL;

    if (is_null($req)) {
        echo "Délai d'attente maximal atteint\n";
    } else {
        $response_code = $req->getResponseCode();

        if ($response_code == 0) {
            echo "Connexion refusée\n";
        } elseif ($response_code != 200) {
            echo "Réponse innatendue : $response_code\n";
        } else {
            echo "Succès : $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Corps :\n";
            while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
                echo $s, PHP_EOL;
            }
        }
    }

    $base->exit(NULL);
}

function _init_ssl() {
    $ctx = new EventSslContext(EventSslContext::SSLv3_CLIENT_METHOD, array ());

    return $ctx;
}

// Autorise l'écrasement du port
$port = 9999;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Port invalide\n");
}
$host = '127.0.0.1';

$ctx = _init_ssl();
if (!$ctx) {
    trigger_error("Echec lors de la création du contexte SSL", E_USER_ERROR);
}

$base = new EventBase();
if (!$base) {
    trigger_error("Echec dans l'initialisation de la base d'événement", E_USER_ERROR);
}

$conn = new EventHttpConnection($base, NULL, $host, $port, $ctx);
$conn->setTimeout(50);

$req = new EventHttpRequest("_request_handler", $base);
$req->addHeader("Host", $host, EventHttpRequest::OUTPUT_HEADER);
$buf = $req->getOutputBuffer();
$buf->add("<html>HTML TEST</html>");
//$req->addHeader("Content-Length", $buf->length, EventHttpRequest::OUTPUT_HEADER);
//$req->addHeader("Connection", "close", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_POST, "/dump");

$base->dispatch();
echo "FIN\n";
?>

Exemple #11 Exemple avec EventHttpConnection::makeRequest()

<?php
function _request_handler($req, $base) {
    echo __FUNCTION__, PHP_EOL;

    if (is_null($req)) {
        echo "Délai d'attente maximal atteint\n";
    } else {
        $response_code = $req->getResponseCode();

        if ($response_code == 0) {
            echo "Connexion refusée\n";
        } elseif ($response_code != 200) {
            echo "Réponse innatendue : $response_code\n";
        } else {
            echo "Succès : $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Corps :\n";
            while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
                echo $s, PHP_EOL;
            }
        }
    }

    $base->exit(NULL);
}

$address = "127.0.0.1";
$port = 80;

$base = new EventBase();
$conn = new EventHttpConnection($base, NULL, $address, $port);
$conn->setTimeout(5);
$req = new EventHttpRequest("_request_handler", $base);

$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER);
$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp");

$base->loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

_request_handler
Succès : 200
Corps :
PHP, date:
2013-03-13T20:27:52+05:00

Exemple #12 Ecoute d'une connexion en se basant sur un socket de domaine Unix

<?php
/*
 * Serveur d'écoute en se basant sur un écouteur de connexion libevent.
 *
 * Utilisation :
 * 1) Dans un terminal, exécutez :
 *
 * $ php unix-domain-listener.php [path-to-socket]
 *
 * 2) Dans un autre terminal, ouvrez la connexion
 * vers le socket, i.e. :
 *
 * $ socat - GOPEN:/tmp/1.sock
 *
 * 3) Commencez à taper. Le serveur doit répéter les entrées.
 */

class MyListenerConnection {
    private $bev, $base;

    public function __destruct() {
        if ($this->bev) {
            $this->bev->free();
        }
    }

    public function __construct($base, $fd) {
        $this->base = $base;

        $this->bev = new EventBufferEvent($base, $fd, EventBufferEvent::OPT_CLOSE_ON_FREE);

        $this->bev->setCallbacks(array($this, "echoReadCallback"), NULL,
            array($this, "echoEventCallback"), NULL);

        if (!$this->bev->enable(Event::READ)) {
            echo "Echec dans l'activation de READ\n";
            return;
        }
    }

    public function echoReadCallback($bev, $ctx) {
        // Copie toutes les données depuis le buffer d'entrée dans le buffer de sortie
        $bev->output->addBuffer($bev->input);
    }

    public function echoEventCallback($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Erreur depuis bufferevent\n";
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            $bev->free();
            $bev = NULL;
        }
    }
}

class MyListener {
    public $base,
        $listener,
        $socket;
    private $conn = array();

    public function __destruct() {
        foreach ($this->conn as &$c) $c = NULL;
    }

    public function __construct($sock_path) {
        $this->base = new EventBase();
        if (!$this->base) {
            echo "Couldn't open event base";
            exit(1);
        }

        if (file_exists($sock_path)) {
            unlink($sock_path);
        }

         $this->listener = new EventListener($this->base,
             array($this, "acceptConnCallback"), $this->base,
             EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE, -1,
             "unix:$sock_path");

        if (!$this->listener) {
            trigger_error("Impossible de créer l'écouteur", E_USER_ERROR);
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }

    public function dispatch() {
        $this->base->dispatch();
    }

    // Cette fonction de rappel sera appelée lorsqu'il y aura des données à lire sur $bev
    public function acceptConnCallback($listener, $fd, $address, $ctx) {
        // Nous avons une nouvelle connexion ! On définit un bufferevent pour elle. */
        $base = $this->base;
        $this->conn[] = new MyListenerConnection($base, $fd);
    }

    public function accept_error_cb($listener, $ctx) {
        $base = $this->base;

        fprintf(STDERR, "On reçoit une erreur %d (%s) sur l'écouteur. "
            ."Shutting down.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $base->exit(NULL);
    }
}

if ($argc <= 1) {
    exit("Le chemin vers le socket n'est pas fourni\n");
}
$sock_path = $argv[1];

$l = new MyListener($sock_path);
$l->dispatch();
?>

Exemple #13 Exemple de serveur SMTP

<?php
 /*
 * Auteur : Andrew Rose <hello at andrewrose dot co dot uk>
 *
 * Utilisation :
 * 1) On prépare le certificat cert.pem et la clé privée privkey.pem.
 * 2) On démarre le script du serveur
 * 3) On ouvre la connexion TLS, i.e. :
 *      $ openssl s_client -connect localhost:25 -starttls smtp -crlf
 * 4) On commence à tester les commandes listées dans la méthode `cmd` ci-dessous.
 */

class Handler {
    public $domainName = FALSE;
    public $connections = [];
    public $buffers = [];
    public $maxRead = 256000;

    public function __construct() {
        $this->ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, [
            EventSslContext::OPT_LOCAL_CERT  => 'cert.pem',
            EventSslContext::OPT_LOCAL_PK    => 'privkey.pem',
            //EventSslContext::OPT_PASSPHRASE  => '',
            EventSslContext::OPT_VERIFY_PEER => false, // modifier en TRUE avec les certificats authentiques
            EventSslContext::OPT_ALLOW_SELF_SIGNED => true // modifier en FALSE avec les certificats authentiques
        ]);

        $this->base = new EventBase();
        if (!$this->base) {
            exit("Impossible d'ouvrir la base de l'événement\n");
        }

        if (!$this->listener = new EventListener($this->base,
            [$this, 'ev_accept'],
            $this->ctx,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1,
            '0.0.0.0:25'))
        {
            exit("Impossible de créer l'écouteur\n");
        }

        $this->listener->setErrorCallback([$this, 'ev_error']);
        $this->base->dispatch();
    }

    public function ev_accept($listener, $fd, $address, $ctx) {
        static $id = 0;
        $id += 1;

        $this->connections[$id]['clientData'] = '';
        $this->connections[$id]['cnx'] = new EventBufferEvent($this->base, $fd,
            EventBufferEvent::OPT_CLOSE_ON_FREE);

        if (!$this->connections[$id]['cnx']) {
            echo "Echec lors de la création du buffer\n";
            $this->base->exit(NULL);
            exit(1);
        }

        $this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL,
            [$this, 'ev_error'], $id);
        $this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);

        $this->ev_write($id, '220 '.$this->domainName." wazzzap?\r\n");
    }

    function ev_error($listener, $ctx) {
        $errno = EventUtil::getLastSocketErrno();

        fprintf(STDERR, "On reçoit l'erreur %d (%s) sur l'écouteur. On stoppe.\n",
            $errno, EventUtil::getLastSocketError());

        if ($errno != 0) {
            $this->base->exit(NULL);
            exit();
        }
    }

    public function ev_close($id) {
        $this->connections[$id]['cnx']->disable(Event::READ | Event::WRITE);
        unset($this->connections[$id]);
    }

    protected function ev_write($id, $string) {
        echo 'S('.$id.'): '.$string;
        $this->connections[$id]['cnx']->write($string);
    }

    public function ev_read($buffer, $id) {
        while($buffer->input->length > 0) {
            $this->connections[$id]['clientData'] .= $buffer->input->read($this->maxRead);
            $clientDataLen = strlen($this->connections[$id]['clientData']);

            if($this->connections[$id]['clientData'][$clientDataLen-1] == "\n"
                && $this->connections[$id]['clientData'][$clientDataLen-2] == "\r")
            {
                // Supprime les caractères \r\n à la fin
                $line = substr($this->connections[$id]['clientData'], 0,
                    strlen($this->connections[$id]['clientData']) - 2);

                $this->connections[$id]['clientData'] = '';
                $this->cmd($buffer, $id, $line);
            }
        }
    }

    protected function cmd($buffer, $id, $line) {
        switch ($line) {
            case strncmp('EHLO ', $line, 4):
                $this->ev_write($id, "250-STARTTLS\r\n");
                $this->ev_write($id, "250 OK ehlo\r\n");
                break;

            case strncmp('HELO ', $line, 4):
                $this->ev_write($id, "250-STARTTLS\r\n");
                $this->ev_write($id, "250 OK helo\r\n");
                break;

            case strncmp('QUIT', $line, 3):
                $this->ev_write($id, "250 OK quit\r\n");
                $this->ev_close($id);
                break;

            case strncmp('STARTTLS', $line, 3):
                $this->ev_write($id, "220 Ready to start TLS\r\n");
                $this->connections[$id]['cnx'] = EventBufferEvent::sslFilter($this->base,
                    $this->connections[$id]['cnx'], $this->ctx,
                    EventBufferEvent::SSL_ACCEPTING,
                    EventBufferEvent::OPT_CLOSE_ON_FREE);
                $this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL, [$this, 'ev_error'], $id);
                $this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);
                break;

            default:
                echo 'Commande inconnue : '.$line."\n";
                break;
        }
    }
}

new Handler();


Les drapeaux d'événements

Event::READ Ce drapeau indique que l'événement devient actif lorsque le descripteur de fichier fourni (habituellement une ressource de flux ou un socket) est prêt à être lu.

Event::WRITE Ce drapeau indique que l'événement devient actif lorsque le descripteur de fichier fourni (habituellement, une ressource de flux ou un socket) est prêt à être lu.

Event::SIGNAL Ce drapeau est utilisé pour implémenter la détection de signaux. Voir la création d'un événement de type signal ci-dessous.

Event::TIMEOUT Ce drapeau indique que l'événement devient actif après l'expiration d'un délai maximal. Le drapeau Event::TIMEOUT est ignoré lors de la construction d'un événement : un délai peut être défini lors de l'ajout de l'événement, ou non. Il est défini dans l'argument $what de la fonction de rappel lorsque le délai maximal est atteint.

Voir aussi » la programmation réseau facile, portable et non bloquante avec Libevent ; les travaux avec les événements et leurs drapeaux


A propos de la persistence des événements

Par défaut, dès qu'un événement en attente devient actif (car son descripteur de fichier est prêt à être lu ou écrit, ou parce que son délai d'attente maximal est atteint), il n'est plus en attente dès lors que sa fonction de rappel est exécutée. Aussi, pour rendre de nouveau l'événement en attente, une façon est d'appeler la méthode Event::add() dans la fonction de rappel.

Si le drapeau Event::PERSIST est défini sur l'événement, alors il est persistent. Cela signifie que l'événement reste en attente y compris lorsque sa fonction de rappel est activée. La méthode Event::del() peut être appelé pour le passer en non-attente.

Le délai maximal d'attente sur un événement persistent est réinitialisé dès lors que sa fonction de rappel est exécutée. Aussi, si un événement a comme drapeaux Event::READ | Event::PERSIST et un délai d'attente fixé à 5 secondes, l'événement devient actif :

  1. Lorsque le socket ou le descripteur de fichier est prêt pour la lecture.

  2. Lorsque 5 secondes ont passé depuis la dernière activation de l'événement.

Voir aussi » la programmation réseau rapide, portable et non-bloquante avec Libevent ; A propos des événements persistents


Fonctions de rappel des événements

Si une fonction de rappel est enregistrée pour un événement, elle sera appelée lorsque l'événement devient actif. Pour associer une fonction de rappel avec un événement, il convient de la passer avec un type callable à la méthode Event::__construct(), Event::set(), ou toute autre méthode factorielle comme Event::timer().

Une fonction de rappel d'événement doit correspondre au prototype suivant :

void callback ([ mixed $fd = NULL [, int $what [, mixed $arg = NULL ]]] )

fd

Un descripteur de fichier, une ressource de flux, ou un socket associé avec l'événement. Pour les événements de type signal, fd correspond au numéro du signal.

what

Masque d'octets de tous les événements lancés.

arg

Données utilisateurs personnalisées.

La méthode Event::timer() attend une fonction de rappel qui correspond au prototype suivant :

void callback ([ mixed $arg = NULL ] )

arg

Données utilisateurs personnalitées.

La méthode Event::signal() attend une fonction de rappel correspondant au prototype suivant :

void callback ([ int $signum [, mixed $arg = NULL ]] )

signum

Le numéro du signal lancé (i.e. SIGTERM).

arg

Données utilisateurs personnalisées.


Construction d'un événement de type signal

Un événement peut aussi surveiller les signaux de style POSIX.
Pour construire un gestionnaire pour un signal, utilisez la méthode
Event::__construct() avec le drapeau
Event::SIGNAL ou la méthode factorielle
Event::signal().

Exemple #1 Gestion d'un signal SIGTERM

<?php
/*
Lancez cet exemple dans un terminal :

$ php examples/signal.php

Dans un autre terminal, trouvez le pid, et lancez le signal SIGTERM, i.e.:

$ ps aux | grep examp
ruslan    3976  0.2  0.0 139896 11256 pts/1    S+   10:25   0:00 php examples/signal.php
ruslan    3978  0.0  0.0   9572   864 pts/2    S+   10:26   0:00 grep --color=auto examp
$ kill -TERM 3976

Dans le premier terminal, vous devriez attraper ceci :

Caught signal 15
*/
class MyEventSignal {
    private $base, $ev;

    public function __construct($base) {
        $this->base = $base;
        $this->ev = Event::signal($base, SIGTERM, array($this, 'eventSighandler'));
        $this->ev->add();
    }

    public function eventSighandler($no, $c) {
        echo "Caught signal $no\n";
        $this->base->exit();
    }
}

$base = new EventBase();
$c    = new MyEventSignal($base);

$base->loop();
?>

Notez que les fonctions de rappel d'un signal sont exécutées dans la boucle d'événement après que le signal ne soit survenu, aussi, il est plus sécurité pour le signal d'appeler des fonctions depuis la boucle que vous n'êtez pas supposé d'appeler depuis un gestionnaire de signaux POSIX classique.

Voir aussi la » programmation réseau facile, protable et non bloquante avec Libevent ; Construction d'un événement de type signal.


La classe Event

(PECL event >= 1.2.6-beta)

Introduction

La classe Event représente et lance un événement sur un descripteur de fichier devenu prêt pour une lecture ou une écriture ; un descripteur de fichier devient prêt pour une lecture ou une écriture (I/O uniquement) ; un délai d'attente expiré ; un signal survenant ; un événement lancé par l'utilisateur.

Chaque événement est associé avec un EventBase. Cependant, l'événement ne sera jamais lancé tant qu'il n'a pas été ajouté (via la méthode Event::add()). Un événement ajouté reste dans un staut d'attente tant que l'événement enregistré ne survient pas, le passant ainsi en statut actif. Pour gérer les événements, l'utilisateur doit enregistrer une fonction de rappel qui sera appelée lorsque l'événement devient actif. Si l'événement est configuré comme persistent, il restera en attente. S'il n'est pas persistent, il ne sera plus en attente lorsque sa fonction de rappel sera exécutée. La méthode Event::del() supprime l'événement, il n'est alors plus en attente. En appelant la méthode Event::add(), il sera ajouté de nouveau.

Synopsis de la classe

final Event {
/* Constantes */
const integer ET = 32 ;
const integer PERSIST = 16 ;
const integer READ = 2 ;
const integer WRITE = 4 ;
const integer SIGNAL = 8 ;
const integer TIMEOUT = 1 ;
/* Propriétés */
public readonly bool $pending ;
/* Méthodes */
public bool add ([ double $timeout ] )
public bool addSignal ([ double $timeout ] )
public bool addTimer ([ double $timeout ] )
public __construct ( EventBase $base , mixed $fd , int $what , callable $cb [, mixed $arg = NULL ] )
public bool del ( void )
public bool delSignal ( void )
public bool delTimer ( void )
public void free ( void )
public static array getSupportedMethods ( void )
public bool pending ( int $flags )
public bool set ( EventBase $base , mixed $fd [, int $what [, callable $cb [, mixed $arg ]]] )
public bool setPriority ( int $priority )
public bool setTimer ( EventBase $base , callable $cb [, mixed $arg ] )
public static Event signal ( EventBase $base , int $signum , callable $cb [, mixed $arg ] )
public static Event timer ( EventBase $base , callable $cb [, mixed $arg ] )
}

Propriétés

pending

Si l'événement est en attente. Voir la section : A propos de la persistence des événements.

Constantes pré-définies

Event::ET

Indique que l'événement doit être lancé, si la base d'événement sous-jacente supporte ce type d'événement. Ceci affecte la sémantique de Event::READ et de Event::WRITE.

Event::PERSIST

Indique que l'événement est persistent. Voir la section : A propos de la persistence des événements.

Event::READ

Ce drapeau indique qu'un événement devient actif lorsque le descripteur de fichier fourni (habituellement, une ressource de flux ou un socket) est prêt pour une lecture.

Event::WRITE

Ce drapeau indique qu'un événement devient actif lorsque le descripteur de fichier fourni (habituellement, une ressource de flux ou un socket) est prêt pour une écriture.

Event::SIGNAL

Utilisé pour implémenter une détection de signal. Voir la section ci-dessous sur la construction d'un événement de type signal.

Event::TIMEOUT

Ce drapeau indique qu'un événement devient actif après l'expiration de ce délai d'attente maximal.

Le drapeau Event::TIMEOUT est ignoré lors de la construction d'un événement : il peut être indiqué ou non lors de l'ajout de l'événement. Il doit être défini dans l'argument $what de la fonction de rappel lorsqu'un délai d'attente maximal est survenu.

Sommaire

  • Event::add — Bascule un évènement en attente
  • Event::addSignal — Alias de la méthode Event::add
  • Event::addTimer — Alias de Event::add
  • Event::__construct — Construit un objet Event
  • Event::del — Supprime un événement de la liste des événements surveillés
  • Event::delSignal — Alias de Event::del
  • Event::delTimer — Alias de Event::del
  • Event::free — Supprime une événement de la liste des événements surveillés et libère les ressources associées
  • Event::getSupportedMethods — Retourne un tableau contenant les noms des méthodes supportées par cette version de Libevent
  • Event::pending — Détecte si l'événement est en attente ou programmé
  • Event::set — Re-configure l'événement
  • Event::setPriority — Défini la priorité de l'événement
  • Event::setTimer — Re-configure un événement timer
  • Event::signal — Construit un objet d'événement signal
  • Event::timer — Construit un objet d'événement timer


Bascule un évènement en attente

  • « Event
  • Event::addSignal »
  • PHP Manual
  • Event
  • Bascule un évènement en attente

Event::add

(PECL libevent >= 0.0.1)

Event::add — Bascule un évènement en attente

Description

public bool Event::add ([ double $timeout ] )

Bascule un évènement en attente. Un évènement qui n'a pas le statut en attente ne se lancera jamais, et le callback de l'évènement ne se sera jamais appelé. En utilisant Event::del() un évènement peut être re-planifié par l'utilisateur quand il veut.

Si Event::add() est appelé sur un évènement déjà en attente, libevent va le laisser en attente et le re-planifier avec le nouveau timeout (si donné). Dans le cas ou le timeout n'est pas spécifié Event::add() n'a aucun effet.

Liste de paramètres

timeout

Timeout en secondes.

Valeurs de retour

Retourne TRUE en cas de succès, sinon FALSE

Voir aussi

  • Event::addSignal() - Alias de la méthode Event::add
  • Event::addTimer() - Alias de Event::add
  • Event::del() - Supprime un événement de la liste des événements surveillés


Alias de la méthode Event::add

  • « Event::add
  • Event::addTimer »
  • PHP Manual
  • Event
  • Alias de la méthode Event::add

Event::addSignal

(PECL event >= 1.2.6-beta)

Event::addSignal — Alias de la méthode Event::add()

Description

public bool Event::addSignal ([ double $timeout ] )

La méthode Event::addSignal() est un alias de la méthode Event::add().

Exemples

Exemple #1 Exemple avec Event::addSignal()

<?php
/*
Lancer ceci dans un terminal :

$ php examples/signal.php

Dans un autre terminal, retrouvez le pid et lancez SIGTERM, e.g.:

$ ps aux | grep examp
ruslan    3976  0.2  0.0 139896 11256 pts/1    S+   10:25   0:00 php examples/signal.php
ruslan    3978  0.0  0.0   9572   864 pts/2    S+   10:26   0:00 grep --color=auto examp
$ kill -TERM 3976

Dans un troisième terminal, vous devriez pouvoir attrapper ceci :

Caught signal 15
*/
class MyEventSignal {
    private $base, $ev;

    public function __construct($base) {
        $this->base = $base;
        $this->ev = Event::signal($base, SIGTERM, array($this, 'eventSighandler'));
        $this->ev->addSignal();
    }

    public function eventSighandler($no, $c) {
        echo "Caught signal $no\n";
        $this->base->exit();
    }
}

$base = new EventBase();
$c    = new MyEventSignal($base);

$base->loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Caught signal 15

Voir aussi

  • Event::add() - Bascule un évènement en attente
  • Event::del() - Supprime un événement de la liste des événements surveillés
  • Event::delSignal() - Alias de Event::del
  • Event::signal() - Construit un objet d'événement signal


Alias de Event::add

  • « Event::addSignal
  • Event::__construct »
  • PHP Manual
  • Event
  • Alias de Event::add

Event::addTimer

(PECL event >= 1.2.6-beta)

Event::addTimer — Alias de Event::add()

Description

public bool Event::addTimer ([ double $timeout ] )

La méthode Event::addTimer() est un alias de la méthode Event::add().

Valeurs de retour

Exemples

Exemple #1 Exemple avec Event::addTimer()

<?php
$base = new EventBase();
$n = 2;
$e = Event::timer($base, function($n) use (&$e) {
    echo "$n secondes passées\n";
    $e->delTimer();
}, $n);
$e->addTimer($n);
$base->loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

2 secondes passées

Voir aussi

  • Event::add() - Bascule un évènement en attente
  • Event::del() - Supprime un événement de la liste des événements surveillés
  • Event::delTimer() - Alias de Event::del


Construit un objet Event

  • « Event::addTimer
  • Event::del »
  • PHP Manual
  • Event
  • Construit un objet Event

Event::__construct

(PECL event >= 1.2.6-beta)

Event::__construct — Construit un objet Event

Description

public Event::__construct ( EventBase $base , mixed $fd , int $what , callable $cb [, mixed $arg = NULL ] )

Construit un objet Event.

Liste de paramètres

base

La base d'événement à associer.

fd

Ressource de flux, ressource de socket, ou descripteur numérique de fichier. Pour les événements timer, passez comme valeur -1. Pour les événements de type signal, passez le numéro du signal, i.e. SIGHUP.

what

Drapeaux d'événements. Voir les drapeaux d'événements pour plus de détails.

cb

La fonction de rappel de l'événement. Voir les fonctions de rappel d'événements pour plus de détails.

arg

Données personnalisées. Si spécifié, elles seront passées à la fonction de rappel lorsque l'événement aura lancé les triggers.

Valeurs de retour

Retourne l'objet Event.

Voir aussi

  • Event::signal() - Construit un objet d'événement signal
  • Event::timer() - Construit un objet d'événement timer


Supprime un événement de la liste des événements surveillés

  • « Event::__construct
  • Event::delSignal »
  • PHP Manual
  • Event
  • Supprime un événement de la liste des événements surveillés

Event::del

(PECL libevent >= 0.0.1)

Event::del — Supprime un événement de la liste des événements surveillés

Description

public bool Event::del ( void )

Supprime un événement du jeu d'événements surveillés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • Event::add() - Bascule un évènement en attente


Alias de Event::del

  • « Event::del
  • Event::delTimer »
  • PHP Manual
  • Event
  • Alias de Event::del

Event::delSignal

(PECL event >= 1.2.6-beta)

Event::delSignal — Alias de Event::del()

Description

public bool Event::delSignal ( void )

La méthode Event::delSignal() est un alias de la méthode Event::del().

Voir aussi

  • Event::del() - Supprime un événement de la liste des événements surveillés


Alias de Event::del

  • « Event::delSignal
  • Event::free »
  • PHP Manual
  • Event
  • Alias de Event::del

Event::delTimer

(PECL event >= 1.2.6-beta)

Event::delTimer — Alias de Event::del()

Description

public bool Event::delTimer ( void )

La méthode Event::delTimer() est un alias de la méthode Event::del().

Voir aussi

  • Event::del() - Supprime un événement de la liste des événements surveillés


Supprime une événement de la liste des événements surveillés et libère les ressources associées

  • « Event::delTimer
  • Event::getSupportedMethods »
  • PHP Manual
  • Event
  • Supprime une événement de la liste des événements surveillés et libère les ressources associées

Event::free

(PECL libevent >= 0.0.1)

Event::free — Supprime une événement de la liste des événements surveillés et libère les ressources associées

Description

public void Event::free ( void )

Supprime un événement de la liste des événements surveillées par libevent, et libère les ressources allouées à cet événement.

Avertissement

La méthode Event::free() ne détruit actuellement pas l'objet en tant que tel. Pour détruire l'objet complètement, appelez la fonction unset() ou assignez-lui la valeur NULL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • Event::__construct() - Construit un objet Event


Retourne un tableau contenant les noms des méthodes supportées par cette version de Libevent

  • « Event::free
  • Event::pending »
  • PHP Manual
  • Event
  • Retourne un tableau contenant les noms des méthodes supportées par cette version de Libevent

Event::getSupportedMethods

(PECL event >= 1.2.6-beta)

Event::getSupportedMethods — Retourne un tableau contenant les noms des méthodes supportées par cette version de Libevent

Description

public static array Event::getSupportedMethods ( void )

Retourne un tableau contenant les noms des méthodes supportées par cette version de Libevent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau.

Voir aussi

  • EventConfig


Détecte si l'événement est en attente ou programmé

  • « Event::getSupportedMethods
  • Event::set »
  • PHP Manual
  • Event
  • Détecte si l'événement est en attente ou programmé

Event::pending

(PECL event >= 1.2.6-beta)

Event::pending — Détecte si l'événement est en attente ou programmé

Description

public bool Event::pending ( int $flags )

Détecte si l'événement est en attente ou programmé.

Liste de paramètres

flags

Une ou plusieurs des constantes suivantes :
Event::READ,
Event::WRITE,
Event::TIMEOUT,
Event::SIGNAL.

Valeurs de retour

Retourne TRUE si l'événement est en attente ou programmé, FALSE sinon.


Re-configure l'événement

  • « Event::pending
  • Event::setPriority »
  • PHP Manual
  • Event
  • Re-configure l'événement

Event::set

(PECL libevent >= 0.0.1)

Event::set — Re-configure l'événement

Description

public bool Event::set ( EventBase $base , mixed $fd [, int $what [, callable $cb [, mixed $arg ]]] )

Re-configure l'événement. Notez que cette fonction n'appelle pas la fonction obsolète event_set de libevent. Elle appelle plutot la fonction event_assign.

Liste de paramètres

base

La base d'événement à associer.

fd

Un flux, une ressource de socket, ou un descripteur de fichier ; pourles événements de type signal, passez -1.

what

Voir les drapeaux d'événements.

cb

La fonction de rappel de l'événement. Voir les fonctions de rappel d'événements.

arg

Données personnalisées à associer avec l'événement. Elles seront passées à la fonction de rappel lorsque l'événement deviendra actif.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Défini la priorité de l'événement

  • « Event::set
  • Event::setTimer »
  • PHP Manual
  • Event
  • Défini la priorité de l'événement

Event::setPriority

(PECL event >= 1.2.6-beta)

Event::setPriority — Défini la priorité de l'événement

Description

public bool Event::setPriority ( int $priority )

Défini la priorité de l'événement.

Liste de paramètres

priority

La priorité de l'événement.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Re-configure un événement timer

  • « Event::setPriority
  • Event::signal »
  • PHP Manual
  • Event
  • Re-configure un événement timer

Event::setTimer

(PECL event >= 1.2.6-beta)

Event::setTimer — Re-configure un événement timer

Description

public bool Event::setTimer ( EventBase $base , callable $cb [, mixed $arg ] )

Re-configure un événement timer. Notez que cette méthode n'appelle pas la fonction obsolète event_set de libevent. Elle appelle plutôt la fonction event_assign.

Liste de paramètres

base

La base d'événement à associer.

cb

La fonction de rappel de l'événement timer. Voir les fonctions de rappel d'événements.

arg

Données personnalisées. Si spécifié, elles seront passées à la fonction de rappel lorsque l'événement lancera les triggers.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • Event::__construct() - Construit un objet Event
  • Event::timer() - Construit un objet d'événement timer


Construit un objet d'événement signal

  • « Event::setTimer
  • Event::timer »
  • PHP Manual
  • Event
  • Construit un objet d'événement signal

Event::signal

(PECL event >= 1.2.6-beta)

Event::signal — Construit un objet d'événement signal

Description

public static Event Event::signal ( EventBase $base , int $signum , callable $cb [, mixed $arg ] )

Construit un objet d'événement signal. C'est une méthode simple pour créer un événement de signal. Notez que la méthode générique Event::__construct() peut construire aussi un objet d'événement de signal.

Liste de paramètres

base

L'objet de base d'événement associé.

signum

Le numéro du signal.

cb

La fonction de rappel de l'événement signal. Voir les fonctions de rappel d'événements.

arg

Données personnalisées. Si spécifié, elles seront passées à la fonction de rappel lorsque l'événement lancera les triggers.

Valeurs de retour

Retourne un objet d'événement en cas de succès, FALSE sinon.

Voir aussi

  • La construction d'événement de signal


Construit un objet d'événement timer

  • « Event::signal
  • EventBase »
  • PHP Manual
  • Event
  • Construit un objet d'événement timer

Event::timer

(PECL event >= 1.2.6-beta)

Event::timer — Construit un objet d'événement timer

Description

public static Event Event::timer ( EventBase $base , callable $cb [, mixed $arg ] )

Construit un objet d'événement timer. Il s'agit d'une méthode simple pour créer un événement timer. Notez que la méthode générique Event::__construct() peut aussi construire des objets d'événements signal.

Liste de paramètres

base

L'objet de base d'événement associé.

cb

La fonction de rappel d'événement signal. Voir les fonctions de rappel d'événements.

arg

Données personnalisées. Si spécifié, elles seront passées à la fonction de rappel lorsque l'événement lancera les triggers.

Valeurs de retour

Retourne un objet d'événement en cas de succès, FALSE sinon.


La classe EventBase

(PECL event >= 1.2.6-beta)

Introduction

La classe EventBase représente la structure de base d'un événement libevent. Elle contient un jeu d'événements et peut vérifier quels sont les événements actifs.

Chaque événement de base a une méthode ou un backend utilisé pour déterminer quels sont les événements prêts. Ces méthodes sont : select, poll, epoll, kqueue, devpoll, evport et win32.

Pour configurer un événement de base à utiliser, ou éviter un backend spécifique, la classe EventConfig peut être utilisée.

Avertissement

Ne détruisez pas l'objet EventBase tant que les ressources associées aux objets Event ne sont pas libérées. Sinon, cela mènera à des résultats totalement indéfinis !

Synopsis de la classe

final EventBase {
/* Constants */
const integer LOOP_ONCE = 1 ;
const integer LOOP_NONBLOCK = 2 ;
const integer NOLOCK = 1 ;
const integer STARTUP_IOCP = 4 ;
const integer NO_CACHE_TIME = 8 ;
const integer EPOLL_USE_CHANGELIST = 16 ;
/* Méthodes */
public __construct ([ EventConfig $cfg ] )
public void dispatch ( void )
public bool exit ([ double $timeout ] )
public void free ( void )
public int getFeatures ( void )
public string getMethod ( void )
public double getTimeOfDayCached ( void )
public bool gotExit ( void )
public bool gotStop ( void )
public bool loop ([ int $flags ] )
public bool priorityInit ( int $n_priorities )
public bool reInit ( void )
public bool stop ( void )
}

Constantes pré-définies

EventBase::LOOP_ONCE

Drapeau utilisé avec la méthode EventBase::loop() qui signifie : "blocage tant que libevent a un événement actif, puis, sortie une fois que tous les événements actifs ont exécuté leurs fonctions de rappel".

EventBase::LOOP_NONBLOCK

Drapeau utilisé avec la méthode EventBase::loop() qui signifie : "ne pas bloquer : regarde quels sont les événements prêts actuellement, exécute leurs fonctions de rappel avec une priorité haute, puis, on sort".

EventBase::NOLOCK

Drapeau de configuration. Ne pas verrouiller la base de l'événement, même si un verrouillage avait été mis en place.

EventBase::STARTUP_IOCP

Drapeau de configuration spécifique à Windows. Active le répartiteur IOCP au démarrage.

EventBase::NO_CACHE_TIME

Drapeau de configuration. Au lieu de vérifier le temps courant chaque fois que la boucle d'événement est prête à exécuter la fonction de rappel, le temps sera vérifié a chaque fois que le délai maximal d'attente pour la fonction de rappel sera atteint.

EventBase::EPOLL_USE_CHANGELIST

Si vous utilisez le backend epoll, ce drapeau signifie qu'il est sécurisé d'utiliser le code interne de modification de liste interne à Libevent pour mettre en lot les ajouts et les suppressions afin de tenter de minimiser le plus possible le nombre d'appels système..

Le fait de définir ce drapeau rend le code plus rapide, mais il peut se confronter à un bogue Linux : il n'est pas sécurisé d'utiliser ce drapeau en la présence d'un fds clôné par dup() ou une de ces variantes. Ceci produirait un comportement étrange et très difficile à diagnostiquer.

Ce drapeau peut aussi être activé en définissant la variable d'environnement EVENT_EPOLL_USE_CHANGELIST.

Ce drapeau n'a aucun effet si on l'utlise avec un autre backend que epoll.

Sommaire

  • EventBase::__construct — Construit un objet EventBase
  • EventBase::dispatch — Distribut les événements en attente
  • EventBase::exit — Stoppe la distribution des événements
  • EventBase::free — Libère les ressources allouées pour l'événement de base
  • EventBase::getFeatures — Retourne un masque des fonctionalités supportées
  • EventBase::getMethod — Retourne la méthode d'événement utilisée
  • EventBase::getTimeOfDayCached — Retourne le temps de l'événement courant
  • EventBase::gotExit — Vérifie s'il a été demandé à la boucle d'événements de sortir
  • EventBase::gotStop — Vérifie s'il a été demandé à la boucle d'événements de s'arrêter
  • EventBase::loop — Distribue les événements en attente
  • EventBase::priorityInit — Défini le nombre de propriétés par événement de base
  • EventBase::reInit — Re-initialise l'événement de base (après un fork)
  • EventBase::stop — Demande à event_base de stopper la distribution d'événements


Construit un objet EventBase

  • « EventBase
  • EventBase::dispatch »
  • PHP Manual
  • EventBase
  • Construit un objet EventBase

EventBase::__construct

(PECL event >= 1.2.6-beta)

EventBase::__construct — Construit un objet EventBase

Description

public EventBase::__construct ([ EventConfig $cfg ] )

Construit un objet EventBase.

Liste de paramètres

cfg

Optionnel - Un objet EventConfig.

Valeurs de retour

Retourne un objet EventBase.

Voir aussi

  • EventConfig


Distribut les événements en attente

  • « EventBase::__construct
  • EventBase::exit »
  • PHP Manual
  • EventBase
  • Distribut les événements en attente

EventBase::dispatch

(PECL event >= 1.2.6-beta)

EventBase::dispatch — Distribut les événements en attente

Description

public void EventBase::dispatch ( void )

Attend que les événements deviennent actifs, et exécute leurs fonctions de rappel. Identique à la méthode EventBase::loop() mais sans drapeau.

Avertissement

Ne détruisez pas l'objet EventBase tant que les ressources associées aux objets Event ne sont pas libérées. Sinon, cela mènera à des résultats totalement indéfinis !

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventBase::loop() - Distribue les événements en attente


Stoppe la distribution des événements

  • « EventBase::dispatch
  • EventBase::free »
  • PHP Manual
  • EventBase
  • Stoppe la distribution des événements

EventBase::exit

(PECL event >= 1.2.6-beta)

EventBase::exit — Stoppe la distribution des événements

Description

public bool EventBase::exit ([ double $timeout ] )

Demande à l'événement de base de stopper la distribution des événements, optionnellement après un nombre de secondes fourni.

Liste de paramètres

timeout

Optionnel - Nombre de secondes après lequel l'événement de base doit stopper la distribution d'événements.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventBase::stop() - Demande à event_base de stopper la distribution d'événements


Libère les ressources allouées pour l'événement de base

  • « EventBase::exit
  • EventBase::getFeatures »
  • PHP Manual
  • EventBase
  • Libère les ressources allouées pour l'événement de base

EventBase::free

(PECL event >= 1.10.0)

EventBase::free — Libère les ressources allouées pour l'événement de base

Description

public void EventBase::free ( void )

Désalloue les ressources allouées par libevent pour l'objet EventBase.

Avertissement

La méthode EventBase::free() ne détruit pas l'objet lui-même. Pour détruire l'objet complètement, appelez la fonction unset() ou assignez-lui la valeur NULL.

Cette méthode ne désalloue, ni ne détache aucun événement qui serait actuellement associé avec l'objet EventBase, ni ne ferme aucun de leur socket ; gardez cela en tête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventBase::__construct() - Construit un objet EventBase


Retourne un masque des fonctionalités supportées

  • « EventBase::free
  • EventBase::getMethod »
  • PHP Manual
  • EventBase
  • Retourne un masque des fonctionalités supportées

EventBase::getFeatures

(PECL event >= 1.2.6-beta)

EventBase::getFeatures — Retourne un masque des fonctionalités supportées

Description

public int EventBase::getFeatures ( void )

Retourne un masque des fonctionalités supportées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier représentant un masque des fonctionalités supportées. Voir les constantes EventConfig::FEATURE_*.

Exemples

Exemple #1 Exemple avec EventBase::getFeatures()

<?php
// Mise à l'écart de la méthode "select"
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "Mise à l'écart de la méthode `select'\n";
}

$base = new EventBase($cfg);

echo "Fonctionalités :\n";
$features = $base->getFeatures();
($features & EventConfig::FEATURE_ET) and print("ET - edge-triggered IO\n");
($features & EventConfig::FEATURE_O1) and print("O1 - O(1) operation for adding/deletting events\n");
($features & EventConfig::FEATURE_FDS) and print("FDS - arbitrary file descriptor types, and not just sockets\n");
?>

Voir aussi

  • EventBase::getMethod() - Retourne la méthode d'événement utilisée
  • EventConfig


Retourne la méthode d'événement utilisée

  • « EventBase::getFeatures
  • EventBase::getTimeOfDayCached »
  • PHP Manual
  • EventBase
  • Retourne la méthode d'événement utilisée

EventBase::getMethod

(PECL event >= 1.2.6-beta)

EventBase::getMethod — Retourne la méthode d'événement utilisée

Description

public string EventBase::getMethod ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères représentant la méthode d'événement utilisée (backend).

Exemples

Exemple #1 Exemple avec EventBase::getMethod()

<?php
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "Mise à l'écart de la méthode `select'\n";
}

// Crée un event_base associé avec la configuration
$base = new EventBase($cfg);
echo "Méthode d'événement utilisée : ", $base->getMethod(), PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Mise à l'écart de la méthode `select'
Méthode d'événement utilisée : epoll

Voir aussi

  • EventBase::getFeatures() - Retourne un masque des fonctionalités supportées


Retourne le temps de l'événement courant

  • « EventBase::getMethod
  • EventBase::gotExit »
  • PHP Manual
  • EventBase
  • Retourne le temps de l'événement courant

EventBase::getTimeOfDayCached

(PECL event >= 1.2.6-beta)

EventBase::getTimeOfDayCached — Retourne le temps de l'événement courant

Description

public double EventBase::getTimeOfDayCached ( void )

En cas de succès, retourne le temps courant (tel que retourné par la fonction gettimeofday()), en analysant la valeur mise en cache dans base si possible, et en appelant la fonction gettimeofday() ou la fonction clock_gettime() si aucun temps n'est disponible en cache.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le temps de l'événement. En cas d'échec, retourne NULL.


Vérifie s'il a été demandé à la boucle d'événements de sortir

  • « EventBase::getTimeOfDayCached
  • EventBase::gotStop »
  • PHP Manual
  • EventBase
  • Vérifie s'il a été demandé à la boucle d'événements de sortir

EventBase::gotExit

(PECL event >= 1.2.6-beta)

EventBase::gotExit — Vérifie s'il a été demandé à la boucle d'événements de sortir

Description

public bool EventBase::gotExit ( void )

Vérifie s'il a été demandé à la boucle d'événements de sortir via la méthode EventBase::exit().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE s'il a été demandé à la boucle d'événements de sortir via la méthode EventBase::exit(), FALSE sinon.

Voir aussi

  • EventBase::exit() - Stoppe la distribution des événements
  • EventBase::stop() - Demande à event_base de stopper la distribution d'événements
  • EventBase::gotStop() - Vérifie s'il a été demandé à la boucle d'événements de s'arrêter


Vérifie s'il a été demandé à la boucle d'événements de s'arrêter

  • « EventBase::gotExit
  • EventBase::loop »
  • PHP Manual
  • EventBase
  • Vérifie s'il a été demandé à la boucle d'événements de s'arrêter

EventBase::gotStop

(PECL event >= 1.2.6-beta)

EventBase::gotStop — Vérifie s'il a été demandé à la boucle d'événements de s'arrêter

Description

public bool EventBase::gotStop ( void )

Vérifie s'il a été demandé à la boucle d'événements de s'arrêter via la méthode EventBase::stop().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE s'il a été demandé à la boucle d'événements de s'arrêter via la méthode EventBase::stop(), FALSE sinon.

Voir aussi

  • EventBase::exit() - Stoppe la distribution des événements
  • EventBase::stop() - Demande à event_base de stopper la distribution d'événements
  • EventBase::gotExit() - Vérifie s'il a été demandé à la boucle d'événements de sortir


Distribue les événements en attente

  • « EventBase::gotStop
  • EventBase::priorityInit »
  • PHP Manual
  • EventBase
  • Distribue les événements en attente

EventBase::loop

(PECL event >= 1.2.6-beta)

EventBase::loop — Distribue les événements en attente

Description

public bool EventBase::loop ([ int $flags ] )

Attend que les événements deviennent actifs, puis, exécute leurs fonctions de rappel.

Avertissement

Ne détruisez pas l'objet EventBase tant que les ressources associées aux objets Event ne sont pas libérées. Sinon, cela mènera à des résultats totalement indéfinis !

Liste de paramètres

flags

Drapeaux optionnels. Une constante EventBase::LOOP_*. Voir les constantes EventBase.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventBase::dispatch() - Distribut les événements en attente


Défini le nombre de propriétés par événement de base

  • « EventBase::loop
  • EventBase::reInit »
  • PHP Manual
  • EventBase
  • Défini le nombre de propriétés par événement de base

EventBase::priorityInit

(PECL event >= 1.2.6-beta)

EventBase::priorityInit — Défini le nombre de propriétés par événement de base

Description

public bool EventBase::priorityInit ( int $n_priorities )

Défini le nombre de propriétés par événement de base.

Liste de paramètres

n_priorities

Le nombre de propriétés par événement de base.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • Event::setPriority() - Défini la priorité de l'événement


Re-initialise l'événement de base (après un fork)

  • « EventBase::priorityInit
  • EventBase::stop »
  • PHP Manual
  • EventBase
  • Re-initialise l'événement de base (après un fork)

EventBase::reInit

(PECL event >= 1.2.6-beta)

EventBase::reInit — Re-initialise l'événement de base (après un fork)

Description

public bool EventBase::reInit ( void )

Re-initialise l'événement de base. Doiit être appelée après un fork.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Demande à event_base de stopper la distribution d'événements

  • « EventBase::reInit
  • EventBuffer »
  • PHP Manual
  • EventBase
  • Demande à event_base de stopper la distribution d'événements

EventBase::stop

(PECL event >= 1.2.6-beta)

EventBase::stop — Demande à event_base de stopper la distribution d'événements

Description

public bool EventBase::stop ( void )

Demande à event_base de stopper la distribution d'événements.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventBase::exit() - Stoppe la distribution des événements
  • EventBase::gotStop() - Vérifie s'il a été demandé à la boucle d'événements de s'arrêter


La classe EventBuffer

(PECL event >= 1.5.0)

Introduction

La classe EventBuffer représente "evbuffer" de Libevent, un utilitaire pour les I/O bufferisés.

Les buffers d'événements sont générallement utiles pour réaliser la partie buffer d'un réseau I/O bufferisé.

Synopsis de la classe

EventBuffer {
/* Constants */
const integer EOL_ANY = 0 ;
const integer EOL_CRLF = 1 ;
const integer EOL_CRLF_STRICT = 2 ;
const integer EOL_LF = 3 ;
const integer PTR_SET = 0 ;
const integer PTR_ADD = 1 ;
/* Propriétés */
public readonly int $length ;
public readonly int $contiguous_space ;
/* Méthodes */
public bool add ( string $data )
public bool addBuffer ( EventBuffer $buf )
public int appendFrom ( EventBuffer $buf , int $len )
public __construct ( void )
public int copyout ( string &$data , int $max_bytes )
public bool drain ( int $len )
public void enableLocking ( void )
public bool expand ( int $len )
public bool freeze ( bool $at_front )
public void lock ( void )
public bool prepend ( string $data )
public bool prependBuffer ( EventBuffer $buf )
public string pullup ( int $size )
public string read ( int $max_bytes )
public int read ( mixed $fd , int $howmuch )
public string readLine ( int $eol_style )
public mixed search ( string $what [, int $start = -1 [, int $end = -1 ]] )
public mixed searchEol ([ int $start = -1 [, int $eol_style = EventBuffer::EOL_ANY ]] )
public string substr ( int $start [, int $length ] )
public bool unfreeze ( bool $at_front )
public bool unlock ( void )
public int write ( mixed $fd [, int $howmuch ] )
}

Propriétés

length

Le nombre d'octets stockés dans un buffer d'événement.

contiguous_space

Le nombre d'octets stockés de façon contigues au début du buffer. Les octets dans un buffer peuvent être stockés dans plusieurs parties séparées de la mémoire ; cette propriété retourne le nombre d'octets actuellement stockés dans la première partie.

Constantes pré-définies

EventBuffer::EOL_ANY

La fin de ligne est une séquence de nombre représentent un retour charriot et une nouvelle ligne. Ce format n'est pas très utile ; il existe encore seulement pour des raisons de compatibilité ascendante.

EventBuffer::EOL_CRLF

La fin de ligne est un retour charriot optionnel, suivi par une nouvelle ligne. (En d'autres termes, c'est soit "\r\n", soit "\n"). Ce format est utile pour analyser les protocoles Internet basés sur du texte ; le standard veut qu'on utilise "\r\n" mais quelques clients fournissent seulement "\n".

EventBuffer::EOL_CRLF_STRICT

La fin de ligne est un simple retour charriot, suivant par une simple nouvelle ligne (aussi connu comme "\r\n". Les valeurs ASCII sont 0x0D 0x0A).

EventBuffer::EOL_LF

La fin de ligne est un simple caractère de nouvelle ligne (aussi connu comme "\n". La valeur ASCII est 0x0A).

EventBuffer::PTR_SET

Drapeau utilisé comme argument de la méthode EventBuffer::setPosition(). Si ce drapeau est spécifié, la position du pointeur est déplacé à une position absolue du buffer.

EventBuffer::PTR_ADD

Identique à EventBuffer::PTR_SET, sauf que ce drapeau fait que la méthode EventBuffer::setPosition() se déplace à une position en arrière par rapport au numéro d'octers spécifié (au lieu de définir une position absolue).

Sommaire

  • EventBuffer::add — Ajoute des données à la fin du tampon d'événement
  • EventBuffer::addBuffer — Déplace toutes les données du tampon fourni dans l'instance courante EventBuffer
  • EventBuffer::appendFrom — Déplace le nombre d'octets fourni depuis un tampon source vers la fin du tampon courant
  • EventBuffer::__construct — Construit un objet EventBuffer
  • EventBuffer::copyout — Copie le nombre d'octets spécifié depuis le début du tampon
  • EventBuffer::drain — Supprime un nombre spécifié d'octets depuis le début du tampon sans copier les données
  • EventBuffer::enableLocking — Description
  • EventBuffer::expand — Réserve de l'espace dans le tampon
  • EventBuffer::freeze — Permet d'empécher les appels qui tentent de modifier un tampon d'événements de réussir
  • EventBuffer::lock — Acquière un verrou sur le buffer
  • EventBuffer::prepend — Ajoute des données au début du buffer
  • EventBuffer::prependBuffer — Déplace toutes les données depuis le buffer source vers le début du buffer courant
  • EventBuffer::pullup — Linéarise les données du buffer et retourne le contenu du buffer sous la forme d'une chaîne
  • EventBuffer::read — Lit les données d'un evbuffer, et vide les octets lus
  • EventBuffer::readFrom — Lit des données depuis un fichier et les place à la fin du tampon
  • EventBuffer::readLine — Extrait une ligne depuis le début du tampon
  • EventBuffer::search — Recherche dans le tampon une occurrence d'une chaîne
  • EventBuffer::searchEol — Cherche dans le tampon une occurrence de fin de ligne
  • EventBuffer::substr — Soustrait une portion des données du tampon
  • EventBuffer::unfreeze — Ré-active les appels qui permettent de modifier un buffer d'événements
  • EventBuffer::unlock — Libère un verrou acquis avec EventBuffer::lock
  • EventBuffer::write — Ecrit le contenu du buffer dans un fichier ou dans un socket


Ajoute des données à la fin du tampon d'événement

  • « EventBuffer
  • EventBuffer::addBuffer »
  • PHP Manual
  • EventBuffer
  • Ajoute des données à la fin du tampon d'événement

EventBuffer::add

(PECL event >= 1.2.6-beta)

EventBuffer::add — Ajoute des données à la fin du tampon d'événement

Description

public bool EventBuffer::add ( string $data )

Ajoute des données à la fin du tampon d'événement.

Liste de paramètres

data

Chaîne de caractères à ajouter à la fin du tampon.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventBuffer::addBuffer() - Déplace toutes les données du tampon fourni dans l'instance courante EventBuffer


Déplace toutes les données du tampon fourni dans l'instance courante EventBuffer

  • « EventBuffer::add
  • EventBuffer::appendFrom »
  • PHP Manual
  • EventBuffer
  • Déplace toutes les données du tampon fourni dans l'instance courante EventBuffer

EventBuffer::addBuffer

(PECL event >= 1.2.6-beta)

EventBuffer::addBuffer — Déplace toutes les données du tampon fourni dans l'instance courante EventBuffer

Description

public bool EventBuffer::addBuffer ( EventBuffer $buf )

Déplace toutes les données du tampon fourni par le paramètre buf à la fin de l'EventBuffer courant. C'est un ajout destructeur. Les données du premier tampon sont déplacées dans l'autre. Cependant, aucune copie mémoire ne survient.

Liste de paramètres

buf

L'objet source EventBuffer.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventBuffer::add() - Ajoute des données à la fin du tampon d'événement


Déplace le nombre d'octets fourni depuis un tampon source vers la fin du tampon courant

  • « EventBuffer::addBuffer
  • EventBuffer::__construct »
  • PHP Manual
  • EventBuffer
  • Déplace le nombre d'octets fourni depuis un tampon source vers la fin du tampon courant

EventBuffer::appendFrom

(PECL event >= 1.6.0)

EventBuffer::appendFrom — Déplace le nombre d'octets fourni depuis un tampon source vers la fin du tampon courant

Description

public int EventBuffer::appendFrom ( EventBuffer $buf , int $len )

Déplace le nombre d'octets fourni depuis un tampon source, vers la fin du tampon courant. S'il n'y a pas assez d'octets de disponible, tous les octets disponibles seront déplacés du tampon source.

Liste de paramètres

buf

Tampon source.

len

Valeurs de retour

Retourne le nombre d'octets lu.

Historique

Version | Description
1.6.0 | La méthode EventBuffer::appendFrom() a été renommée en EventBuffer::appendFrom().

Voir aussi

  • EventBuffer::copyout() - Copie le nombre d'octets spécifié depuis le début du tampon
  • EventBuffer::drain() - Supprime un nombre spécifié d'octets depuis le début du tampon sans copier les données
  • EventBuffer::pullup() - Linéarise les données du buffer et retourne le contenu du buffer sous la forme d'une chaîne
  • EventBuffer::readLine() - Extrait une ligne depuis le début du tampon
  • EventBuffer::read() - Lit les données d'un evbuffer, et vide les octets lus


Construit un objet EventBuffer

  • « EventBuffer::appendFrom
  • EventBuffer::copyout »
  • PHP Manual
  • EventBuffer
  • Construit un objet EventBuffer

EventBuffer::__construct

(PECL event >= 1.2.6-beta)

EventBuffer::__construct — Construit un objet EventBuffer

Description

public EventBuffer::__construct ( void )

Construit un objet EventBuffer.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet EventBuffer.


Copie le nombre d'octets spécifié depuis le début du tampon

  • « EventBuffer::__construct
  • EventBuffer::drain »
  • PHP Manual
  • EventBuffer
  • Copie le nombre d'octets spécifié depuis le début du tampon

EventBuffer::copyout

(PECL event >= 1.2.6-beta)

EventBuffer::copyout — Copie le nombre d'octets spécifié depuis le début du tampon

Description

public int EventBuffer::copyout ( string &$data , int $max_bytes )

Fonctionne de la même façon que la méthode EventBuffer::read(), mais ne vide pas les données du tampon. i.e. la méthode copie les premiers max_bytes octets depuis le début du tampon dans le paramètre data. S'il y a moins de max_bytes octets disponibles, la méthode copie tous les octets présents.

Liste de paramètres

data

Chaîne de sortie.

max_bytes

Le nombre d'octets à copier.

Valeurs de retour

Retourne le nombre d'octets copiés, ou -1 si une erreur survient.

Voir aussi

  • EventBuffer::read() - Lit les données d'un evbuffer, et vide les octets lus
  • EventBuffer::appendFrom() - Déplace le nombre d'octets fourni depuis un tampon source vers la fin du tampon courant


Supprime un nombre spécifié d'octets depuis le début du tampon sans copier les données

  • « EventBuffer::copyout
  • EventBuffer::enableLocking »
  • PHP Manual
  • EventBuffer
  • Supprime un nombre spécifié d'octets depuis le début du tampon sans copier les données

EventBuffer::drain

(PECL event >= 1.2.6-beta)

EventBuffer::drain — Supprime un nombre spécifié d'octets depuis le début du tampon sans copier les données

Description

public bool EventBuffer::drain ( int $len )

Fonctionne de la même manière que la méthode EventBuffer::read() excepté le fait que les données supprimées ne sont pas copiées : elles sont seulement supprimer du début du tampon.

Liste de paramètres

len

Le nombre d'octets à supprimer depuis le tampon.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventBuffer::read() - Lit les données d'un evbuffer, et vide les octets lus
  • EventBuffer::appendFrom() - Déplace le nombre d'octets fourni depuis un tampon source vers la fin du tampon courant


Description

  • « EventBuffer::drain
  • EventBuffer::expand »
  • PHP Manual
  • EventBuffer
  • Description

EventBuffer::enableLocking

(PECL event >= 1.2.6-beta)

EventBuffer::enableLocking —

Description

public void EventBuffer::enableLocking ( void )

Active le verrouillage de l'EventBuffer, lui permettant ainsi de pouvoir être utilisé de façon sécurisé par plusieurs threads à la fois. Lorsque le verrouillage est activé, le verrou sera placé lorsque les fonctions de rappel seront appelées. Ce comportement peut conduire à des verrous morts si vous n'êtes pas attentif.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • » Evbuffers and Thread-safety


Réserve de l'espace dans le tampon

  • « EventBuffer::enableLocking
  • EventBuffer::freeze »
  • PHP Manual
  • EventBuffer
  • Réserve de l'espace dans le tampon

EventBuffer::expand

(PECL event >= 1.2.6-beta)

EventBuffer::expand — Réserve de l'espace dans le tampon

Description

public bool EventBuffer::expand ( int $len )

Modifie le dernier bloc mémoire du tampon, ou en ajoute un nouveau, faisant ainsi que la taille du tampon augmente de sorte à contenir len octets sans avoir à faire de futures allocations supplémentaires.

Liste de paramètres

len

Le nombre d'octets à réserver pour le tampon.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Permet d'empécher les appels qui tentent de modifier un tampon d'événements de réussir

  • « EventBuffer::expand
  • EventBuffer::lock »
  • PHP Manual
  • EventBuffer
  • Permet d'empécher les appels qui tentent de modifier un tampon d'événements de réussir

EventBuffer::freeze

(PECL event >= 1.2.6-beta)

EventBuffer::freeze — Permet d'empécher les appels qui tentent de modifier un tampon d'événements de réussir

Description

public bool EventBuffer::freeze ( bool $at_front )

Permet d'empécher les appels qui tentent de modifier un tampon d'événements de réussir.

Liste de paramètres

at_front

Permet de désactiver les modifitications en début ou en fin de tampon.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventBuffer::unfreeze() - Ré-active les appels qui permettent de modifier un buffer d'événements


Acquière un verrou sur le buffer

  • « EventBuffer::freeze
  • EventBuffer::prepend »
  • PHP Manual
  • EventBuffer
  • Acquière un verrou sur le buffer

EventBuffer::lock

(PECL event >= 1.2.6-beta)

EventBuffer::lock — Acquière un verrou sur le buffer

Description

public void EventBuffer::lock ( void )

Acquière un verrou sur le buffer. Peut être utilisé de paire avec la méthode EventBuffer::unlock() pour réaliser un jeu d'opérations atomique, i.e. thread-safe. Notez qu'il n'est pas nécessaire de verrouiller les buffers pour les opérations individuelles. Lorsque le verrou est actif, (voir EventBuffer::enableLocking()) les opérations individuelles sur les buffers d'événements sont déjà atomiques.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventBuffer::unlock() - Libère un verrou acquis avec EventBuffer::lock


Ajoute des données au début du buffer

  • « EventBuffer::lock
  • EventBuffer::prependBuffer »
  • PHP Manual
  • EventBuffer
  • Ajoute des données au début du buffer

EventBuffer::prepend

(PECL event >= 1.2.6-beta)

EventBuffer::prepend — Ajoute des données au début du buffer

Description

public bool EventBuffer::prepend ( string $data )

Ajoute des données au début du buffer.

Liste de paramètres

data

Chaîne de caractères à ajouter au début du buffer.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, FALSE.

Voir aussi

  • EventBuffer::prependBuffer() - Déplace toutes les données depuis le buffer source vers le début du buffer courant
  • EventBuffer::add() - Ajoute des données à la fin du tampon d'événement
  • EventBuffer::addBuffer() - Déplace toutes les données du tampon fourni dans l'instance courante EventBuffer


Déplace toutes les données depuis le buffer source vers le début du buffer courant

  • « EventBuffer::prepend
  • EventBuffer::pullup »
  • PHP Manual
  • EventBuffer
  • Déplace toutes les données depuis le buffer source vers le début du buffer courant

EventBuffer::prependBuffer

(PECL event >= 1.2.6-beta)

EventBuffer::prependBuffer — Déplace toutes les données depuis le buffer source vers le début du buffer courant

Description

public bool EventBuffer::prependBuffer ( EventBuffer $buf )

Fonctionne exactement comme la méthode EventBuffer::addBuffer(), excepté le fait qu'elle déplace les données au début du buffer.

Liste de paramètres

buf

Buffer source.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, FALSE.

Voir aussi

  • EventBuffer::add() - Ajoute des données à la fin du tampon d'événement
  • EventBuffer::addBuffer() - Déplace toutes les données du tampon fourni dans l'instance courante EventBuffer
  • EventBuffer::prepend() - Ajoute des données au début du buffer


Linéarise les données du buffer et retourne le contenu du buffer sous la forme d'une chaîne

  • « EventBuffer::prependBuffer
  • EventBuffer::read »
  • PHP Manual
  • EventBuffer
  • Linéarise les données du buffer et retourne le contenu du buffer sous la forme d'une chaîne

EventBuffer::pullup

(PECL event >= 1.2.6-beta)

EventBuffer::pullup — Linéarise les données du buffer et retourne le contenu du buffer sous la forme d'une chaîne

Description

public string EventBuffer::pullup ( int $size )

Linéarise les premiers size octets du buffer, les copie ou les bouge comme nécessaire pour assurer qu'ils soient contigus et le fait d'occuper la même partie de la mémoire. Si la taille est négative, la fonction linéatise la totalité du buffer.

Avertissement

L'appel à la méthode EventBuffer::pullup() avec une taille très grande ralentie l'exécution, sachant qu'elle peut potentiellement avoir besoin de copier le contenu entier du buffer.

Liste de paramètres

size

Le nombre d'octets qui doivent être contigus dans le buffer.

Valeurs de retour

Si size est supérieur au nombre d'octets du buffer, la fonction retournera NULL. Sinon, EventBuffer::pullup() retournera une chaîne de caractères.

Voir aussi

  • EventBuffer::copyout() - Copie le nombre d'octets spécifié depuis le début du tampon
  • EventBuffer::drain() - Supprime un nombre spécifié d'octets depuis le début du tampon sans copier les données
  • EventBuffer::read() - Lit les données d'un evbuffer, et vide les octets lus
  • EventBuffer::readLine() - Extrait une ligne depuis le début du tampon
  • EventBuffer::appendFrom() - Déplace le nombre d'octets fourni depuis un tampon source vers la fin du tampon courant


Lit les données d'un evbuffer, et vide les octets lus

  • « EventBuffer::pullup
  • EventBuffer::readFrom »
  • PHP Manual
  • EventBuffer
  • Lit les données d'un evbuffer, et vide les octets lus

EventBuffer::read

(PECL event >= 1.6.0)

EventBuffer::read — Lit les données d'un evbuffer, et vide les octets lus

Description

public string EventBuffer::read ( int $max_bytes )

Lit les premiers max_bytes octets depuis le tampon et vide les octets lus. Si le paramètre max_bytes représente plus d'octets que de disponible dans le tampon, l'ensemble des octets disponibles seront lus.

Liste de paramètres

max_bytes

Le nombre maximal d'octets à lire depuis le tampon.

Valeurs de retour

Retourne la chaîne lue, ou FALSE si une erreur survient.

Historique

Version | Description
1.6.0 | La méthode EventBuffer::read() a été renommée en EventBuffer::read(). EventBuffer::read() ne prend maintenant qu'un seul argument : max_bytes ; elle retourne maintenant une chaîne au lieu d'un entier.

Voir aussi

  • EventBuffer::copyout() - Copie le nombre d'octets spécifié depuis le début du tampon
  • EventBuffer::drain() - Supprime un nombre spécifié d'octets depuis le début du tampon sans copier les données
  • EventBuffer::pullup() - Linéarise les données du buffer et retourne le contenu du buffer sous la forme d'une chaîne
  • EventBuffer::readLine() - Extrait une ligne depuis le début du tampon
  • EventBuffer::appendFrom() - Déplace le nombre d'octets fourni depuis un tampon source vers la fin du tampon courant


Lit des données depuis un fichier et les place à la fin du tampon

  • « EventBuffer::read
  • EventBuffer::readLine »
  • PHP Manual
  • EventBuffer
  • Lit des données depuis un fichier et les place à la fin du tampon

EventBuffer::readFrom

(PECL event >= 1.7.0)

EventBuffer::readFrom — Lit des données depuis un fichier et les place à la fin du tampon

Description

public int EventBuffer::read ( mixed $fd , int $howmuch )

Lit des données depuis le fichier fd et les place à la fin du tampon.

Liste de paramètres

fd

Un socket, un flux, ou un descripteur de fichier numérique.

howmuch

Nombre maximal d'octets à lire.

Valeurs de retour

Retourne le nombre d'octets lu, ou FALSE si une erreur survient.

Voir aussi

  • EventBuffer::copyout() - Copie le nombre d'octets spécifié depuis le début du tampon
  • EventBuffer::drain() - Supprime un nombre spécifié d'octets depuis le début du tampon sans copier les données
  • EventBuffer::pullup() - Linéarise les données du buffer et retourne le contenu du buffer sous la forme d'une chaîne
  • EventBuffer::readLine() - Extrait une ligne depuis le début du tampon
  • EventBuffer::appendFrom() - Déplace le nombre d'octets fourni depuis un tampon source vers la fin du tampon courant


Extrait une ligne depuis le début du tampon

  • « EventBuffer::readFrom
  • EventBuffer::search »
  • PHP Manual
  • EventBuffer
  • Extrait une ligne depuis le début du tampon

EventBuffer::readLine

(PECL event >= 1.2.6-beta)

EventBuffer::readLine — Extrait une ligne depuis le début du tampon

Description

public string EventBuffer::readLine ( int $eol_style )

Extrait une ligne depuis le début du tampon et la retourne dans une nouvelle chaîne allouée. S'il n'y a pas de ligne complète à lire, la méthode retourne NULL. La terminaison de la ligne n'est pas incluse dans la chaîne copiée.

Liste de paramètres

eol_style

Une constante EventBuffer:EOL_*.

Valeurs de retour

En cas de succès, retourne la ligne lue depuis le tampon, NULL sinon.

Voir aussi

  • EventBuffer::copyout() - Copie le nombre d'octets spécifié depuis le début du tampon
  • EventBuffer::drain() - Supprime un nombre spécifié d'octets depuis le début du tampon sans copier les données
  • EventBuffer::pullup() - Linéarise les données du buffer et retourne le contenu du buffer sous la forme d'une chaîne
  • EventBuffer::read() - Lit les données d'un evbuffer, et vide les octets lus
  • EventBuffer::appendFrom() - Déplace le nombre d'octets fourni depuis un tampon source vers la fin du tampon courant


Recherche dans le tampon une occurrence d'une chaîne

  • « EventBuffer::readLine
  • EventBuffer::searchEol »
  • PHP Manual
  • EventBuffer
  • Recherche dans le tampon une occurrence d'une chaîne

EventBuffer::search

(PECL event >= 1.2.6-beta)

EventBuffer::search — Recherche dans le tampon une occurrence d'une chaîne

Description

public mixed EventBuffer::search ( string $what [, int $start = -1 [, int $end = -1 ]] )

Recherche dans le tampon une occurrence de la chaîne what. La méthode retourne la position numérique de la chaîne recherchée, ou FALSE si la chaîne n'a pu être trouvée.

Si l'argument start est fourni, ce sera la position à partir de laquelle la recherche doit commencer ; sinon, la recherche sera réalisée depuis le début de la chaîne. Si l'argument end est fourni, la recherche sera réalisée entre les positions de début et de fin du tampon.

Liste de paramètres

what

Chaîne à chercher.

start

Position de départ de la recherche.

end

Position de fin de la recherche.

Valeurs de retour

Retourne la position numérique de la première occurrence de la chaîne dans le tampon, ou FALSE si la chaîne n'a pas été trouvée.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple avec EventBuffer::search()

<?php
// Compte le nombre d'occurrence de la chaîne 'str' dans le tampon 'buf'
function count_instances($buf, $str) {
    $total = 0;
    $p     = 0;
    $i     = 0;

    while (1) {
        $p = $buf->search($str, $p);
        if ($p === FALSE) {
            break;
        }
        ++$total;
        ++$p;
    }

    return $total;
}

$buf = new EventBuffer();
$buf->add("Some string within a string inside another string");
var_dump(count_instances($buf, "str"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)

Voir aussi

  • EventBuffer::searchEol() - Cherche dans le tampon une occurrence de fin de ligne


Cherche dans le tampon une occurrence de fin de ligne

  • « EventBuffer::search
  • EventBuffer::substr »
  • PHP Manual
  • EventBuffer
  • Cherche dans le tampon une occurrence de fin de ligne

EventBuffer::searchEol

(PECL event >= 1.5.0)

EventBuffer::searchEol — Cherche dans le tampon une occurrence de fin de ligne

Description

public mixed EventBuffer::searchEol ([ int $start = -1 [, int $eol_style = EventBuffer::EOL_ANY ]] )

Cherche dans le tampon une occurrence de fin de ligne spécifié par le paramètre eol_style. La méthode retourne la position numérique de la chaîne, ou FALSE si la chaîne n'a pas été trouvée.

Si l'argument start est fourni, il représente la position où la recherche commencera ; sinon, la recherche sera effectuée depuis le début de la chaîne. Si l'argument end est fourni, la recherche sera réalisée entre les positions de début et de fin du tampon.

Liste de paramètres

start

Position de début de recherche.

eol_style

Une constante EventBuffer:EOL_*.

Valeurs de retour

Retourne la position numérique de la première occurrence du symbole de fin de ligne dans le tampon, ou bien FALSE s'il n'a pas été trouvé.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi

  • EventBuffer::search() - Recherche dans le tampon une occurrence d'une chaîne


Soustrait une portion des données du tampon

  • « EventBuffer::searchEol
  • EventBuffer::unfreeze »
  • PHP Manual
  • EventBuffer
  • Soustrait une portion des données du tampon

EventBuffer::substr

(PECL event >= 1.6.0)

EventBuffer::substr — Soustrait une portion des données du tampon

Description

public string EventBuffer::substr ( int $start [, int $length ] )

Soustrait une taille de length octets du tampon, en commençant à la position start.

Liste de paramètres

start

La position de départ des données à soustraire.

length

Nombre maximal d'octets à soustraire.

Valeurs de retour

Retourne les données soustraites sous la forme d'une chaîne de caractères en cas de succès, ou bien FALSE si une erreur survient.

Voir aussi

  • EventBuffer::read() - Lit les données d'un evbuffer, et vide les octets lus


Ré-active les appels qui permettent de modifier un buffer d'événements

  • « EventBuffer::substr
  • EventBuffer::unlock »
  • PHP Manual
  • EventBuffer
  • Ré-active les appels qui permettent de modifier un buffer d'événements

EventBuffer::unfreeze

(PECL event >= 1.2.6-beta)

EventBuffer::unfreeze — Ré-active les appels qui permettent de modifier un buffer d'événements

Description

public bool EventBuffer::unfreeze ( bool $at_front )

Ré-active les appels qui permettent de modifier un buffer d'événements.

Liste de paramètres

at_front

Si l'on doit activer les événements au début ou à la fin du buffer.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, FALSE.

Voir aussi

  • EventBuffer::freeze() - Permet d'empécher les appels qui tentent de modifier un tampon d'événements de réussir


Libère un verrou acquis avec EventBuffer::lock

  • « EventBuffer::unfreeze
  • EventBuffer::write »
  • PHP Manual
  • EventBuffer
  • Libère un verrou acquis avec EventBuffer::lock

EventBuffer::unlock

(PECL event >= 1.2.6-beta)

EventBuffer::unlock — Libère un verrou acquis avec EventBuffer::lock

Description

public bool EventBuffer::unlock ( void )

Libère un verrou acquis avec la méthode EventBuffer::lock().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès. Sinon, FALSE.

Voir aussi

  • EventBuffer::lock() - Acquière un verrou sur le buffer


Ecrit le contenu du buffer dans un fichier ou dans un socket

  • « EventBuffer::unlock
  • EventBufferEvent »
  • PHP Manual
  • EventBuffer
  • Ecrit le contenu du buffer dans un fichier ou dans un socket

EventBuffer::write

(PECL event >= 1.6.0)

EventBuffer::write — Ecrit le contenu du buffer dans un fichier ou dans un socket

Description

public int EventBuffer::write ( mixed $fd [, int $howmuch ] )

Ecrit le contenu du buffer dans un descripteur de fichier. Le buffer sera vidé après l'écriture avec succès des derniers octets.

Liste de paramètres

fd

Ressource de socket, flux, ou un descripteur numérique de fichier associé avec un socket.

howmuch

Le nombre maximal d'octets à écrire.

Valeurs de retour

Retourne le nombre d'octets écrits, ou FALSE si une erreur survient.

Voir aussi

  • EventBuffer::read() - Lit les données d'un evbuffer, et vide les octets lus


La classe EventBufferEvent

(PECL event >= 1.2.6-beta)

Introduction

Représente un buffer d'événement Libevent.

Habituellement, une application veut mettre en buffer des données en plus de juste répondre à des événements. Lorsque nous voulons écrire des données, par exemple, le mécanisme habituel ressemble à :

  1. On décide que l'on veut écrire des données dans une connexion ; placez ces données dans un buffer.

  2. On attend que la connexion devienne accessible en écriture

  3. On écrit autant de données que l'on peut

  4. On se souvient de la quantité écrite, et si on a encore plus de données à écrire, on attend que la connexion redevienne accessible en écriture.

Ce mécanisme de mise en buffer I/O est suffisament commune pour que Libevent fournisse un mécanisme générique pour cela. Un buffer d'événement consiste en un transport sous-jacent (comme un socket), un buffer de lecture, et un buffer d'écriture. Au lieu d'un événement classique, qui fournit des fonctions de rappel lorsque le transport sous-jacent est prêt à être lu ou écrit, un buffer d'événement appelle ses fonctions de rappel fournis par l'utilisateur lorsqu'il a lu ou écrit suffisament de données.

Synopsis de la classe

final EventBufferEvent {
/* Constants */
const integer READING = 1 ;
const integer WRITING = 2 ;
const integer EOF = 16 ;
const integer ERROR = 32 ;
const integer TIMEOUT = 64 ;
const integer CONNECTED = 128 ;
const integer OPT_CLOSE_ON_FREE = 1 ;
const integer OPT_THREADSAFE = 2 ;
const integer OPT_DEFER_CALLBACKS = 4 ;
const integer OPT_UNLOCK_CALLBACKS = 8 ;
const integer SSL_OPEN = 0 ;
const integer SSL_CONNECTING = 1 ;
const integer SSL_ACCEPTING = 2 ;
/* Propriétés */
public integer $fd ;
public integer $priority ;
public readonly EventBuffer $input ;
public readonly EventBuffer $output ;
/* Méthodes */
public void close ( void )
public bool connect ( string $addr )
public bool connectHost ( EventDnsBase $dns_base , string $hostname , int $port [, int $family = EventUtil::AF_UNSPEC ] )
public __construct ( EventBase $base [, mixed $socket = NULL [, int $options = 0 [, callable $readcb = NULL [, callable $writecb = NULL [, callable $eventcb = NULL ]]]]] )
public static array createPair ( EventBase $base [, int $options = 0 ] )
public bool disable ( int $events )
public bool enable ( int $events )
public void free ( void )
public string getDnsErrorString ( void )
public int getEnabled ( void )
public EventBuffer getInput ( void )
public EventBuffer getOutput ( void )
public string read ( int $size )
public bool readBuffer ( EventBuffer $buf )
public void setCallbacks ( callable $readcb , callable $writecb , callable $eventcb [, string $arg ] )
public bool setPriority ( int $priority )
public bool setTimeouts ( float $timeout_read , float $timeout_write )
public void setWatermark ( int $events , int $lowmark , int $highmark )
public string sslError ( void )
public static EventBufferEvent sslFilter ( EventBase $base , EventBufferEvent $underlying , EventSslContext $ctx , int $state [, int $options = 0 ] )
public string sslGetCipherInfo ( void )
public string sslGetCipherName ( void )
public string sslGetCipherVersion ( void )
public string sslGetProtocol ( void )
public void sslRenegotiate ( void )
public static EventBufferEvent sslSocket ( EventBase $base , mixed $socket , EventSslContext $ctx , int $state [, int $options ] )
public bool write ( string $data )
public bool writeBuffer ( EventBuffer $buf )
}

Propriétés

fd

Descripteur de fichier numérique associé avec le buffer d'événement. Normalement, représent un socket lié. Vaut NULL s'il n'y a aucun descripteur de fichier (socket) associé avec le buffer d'événement.

priority

La priorité de l'événement, utilisée pour implémenter le buffer d'événement.

input

Objet de buffer d'entrée sous-jacent (EventBuffer)

output

Objet de buffer de sortie sous-jacent (EventBuffer)

Constantes pré-définies

EventBufferEvent::READING

Un événement survient pendant l'opération de lecture sur le bufferevent. Voir les autres drapeaux pour connaître le type d'événement.

EventBufferEvent::WRITING

Un événement survient pendant une opération d'écriture sur le bufferevent. Voir les autres drapeaux pour connaître le type d'événement.

EventBufferEvent::EOF

On récupère une indication de fin de fichier sur le buffer d'événement.

EventBufferEvent::ERROR

Une erreur survient pendant une opération bufferevent. Pour plus d'informations sur l'erreur, appelez la méthode EventUtil::getLastSocketErrno() et/ou EventUtil::getLastSocketError().

EventBufferEvent::TIMEOUT

EventBufferEvent::CONNECTED

Termine une connexion demandée sur le bufferevent.

EventBufferEvent::OPT_CLOSE_ON_FREE

Lorsque le buffer d'événement est libéré, ferme le transport sous-jacent. Ceci va clôre le socket sous-jacent, libérer le buffer d'événement sous-jacent, etc.

EventBufferEvent::OPT_THREADSAFE

Alloue automatiquement des verrous pour le bufferevent, afin de rendre sécurisé l'utilisation de plusieurs threads.

EventBufferEvent::OPT_DEFER_CALLBACKS

Lorsque ce drapeau est défini, le bufferevent reporte toutes ses fonctions de rappel. Voir » la documentation sur la programmation réseau rapide, portable, non bloquante avec Libevent, le report des fonctions de rappel.

EventBufferEvent::OPT_UNLOCK_CALLBACKS

Par défaut, lorsque le bufferevent est défini pour être sécurisé au niveau des threads, le verrou du buffer d'événement est maintenu, y compris si une fonction de rappel utilisateur est appelée. La définition de cette option permet à Libevent de libérer le verrou du buffer d'événement lorsque la fonction de rappel est appelée.

EventBufferEvent::SSL_OPEN

La négociation SSL se fait

EventBufferEvent::SSL_CONNECTING

SSL effectue actuellement la négociation comme client

EventBufferEvent::SSL_ACCEPTING

SSL effectue actuellement la négociation comme serveur

Sommaire

  • EventBufferEvent::close — Ferme le descripteur de fichier associé avec le buffer d'événements courant
  • EventBufferEvent::connect — Connecte le descripteur de fichier du tampon d'événement à l'adresse fournie, ou au socket UNIX
  • EventBufferEvent::connectHost — Connexion à un hôte
  • EventBufferEvent::__construct — Construit un objet EventBufferEvent
  • EventBufferEvent::createPair — Crée deux événements de tampon connectés l'un à l'autre
  • EventBufferEvent::disable — Désactive les événements de lecture, d'écriture ou des deux sur un événement de tampon
  • EventBufferEvent::enable — Active les événements de lecture, d'écriture, ou des deux, sur un événement de tampon
  • EventBufferEvent::free — Libère un événement de tampon
  • EventBufferEvent::getDnsErrorString — Retourne une chaîne décrivant la dernière erreur DNS
  • EventBufferEvent::getEnabled — Retourne un masque d'événements actuellement actifs sur le tampon d'événements
  • EventBufferEvent::getInput — Retourne le tampon d'entrée associé avec le tampon d'événements courant
  • EventBufferEvent::getOutput — Retourne le tampon de sortie associé avec le tampon d'événement courant
  • EventBufferEvent::read — Lit les données du tampon
  • EventBufferEvent::readBuffer — Vide le contenu entier du tampon d'entrée et le place dans le tampon
  • EventBufferEvent::setCallbacks — Assigne les fonctions de rappel pour la lecture, l'écriture, et les statuts d'événements
  • EventBufferEvent::setPriority — Assigne une priorité pour un tampon d'événements
  • EventBufferEvent::setTimeouts — Défini le mode lecture et écriture pour le délai d'attente maximal d'un tampon d'événement
  • EventBufferEvent::setWatermark — Active la lecture, et/ou l'écriture des filigranes
  • EventBufferEvent::sslError — Retourne l'erreur OpenSSL la plus récente rapportée par le tampon d'événement
  • EventBufferEvent::sslFilter — Crée un nouveau tampon d'événement SSL, dont les données seront envoyées via un autre tampon d'événement
  • EventBufferEvent::sslGetCipherInfo — Retourne une description textuelle d'un cipher
  • EventBufferEvent::sslGetCipherName — Retourne le nom du cipher courant pour la connexion SSL
  • EventBufferEvent::sslGetCipherVersion — Retourne la version du cipher utilisé pour la connexion SSL courante
  • EventBufferEvent::sslGetProtocol — Retourne le nom du protocole utilisé pour la connexion SSL courante
  • EventBufferEvent::sslRenegotiate — Demande au tampon d'événement de commencer une renégociation SSL
  • EventBufferEvent::sslSocket — Crée un nouveau tampon SSL dont ces données seront envoyées via un socket SSL
  • EventBufferEvent::write — Ajoute des données dans un tampon d'événement de sortie
  • EventBufferEvent::writeBuffer — Ajoute le contenu entier d'un tampon dans un tampon d'événement de sortie


Ferme le descripteur de fichier associé avec le buffer d'événements courant

  • « EventBufferEvent
  • EventBufferEvent::connect »
  • PHP Manual
  • EventBufferEvent
  • Ferme le descripteur de fichier associé avec le buffer d'événements courant

EventBufferEvent::close

(PECL event >= 1.10.0)

EventBufferEvent::close — Ferme le descripteur de fichier associé avec le buffer d'événements courant

Description

public void EventBufferEvent::close ( void )

Ferme le descripteur de fichier associé avec le buffer d'événements courant.

Cette méthode peut être utilisée dans les cas où l'option EventBufferEvent::OPT_CLOSE_ON_FREE n'est pas appropriée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Connecte le descripteur de fichier du tampon d'événement à l'adresse fournie, ou au socket UNIX

  • « EventBufferEvent::close
  • EventBufferEvent::connectHost »
  • PHP Manual
  • EventBufferEvent
  • Connecte le descripteur de fichier du tampon d'événement à l'adresse fournie, ou au socket UNIX

EventBufferEvent::connect

(PECL event >= 1.2.6-beta)

EventBufferEvent::connect — Connecte le descripteur de fichier du tampon d'événement à l'adresse fournie, ou au socket UNIX

Description

public bool EventBufferEvent::connect ( string $addr )

Connecte le descripteur de fichier du tampon d'événement à l'adresse fournie (optionnellement, en fournissant le port), ou au socket UNIX.

Si le socket n'est pas assigné au tampon d'événements, cette méthode alloue un nouveau socket et le rend non bloquant en interne.

Pour résoudre les noms DNS (de façon asynchrone), utilisez la méthode EventBufferEvent::connectHost().

Liste de paramètres

addr

Doit contenir une adresse IP avec, optionnellement, le numéro du port, ou un chemin vers le socket UNIX. Les formats reconnus sont :

[IPv6Address]:port
[IPv6Address]
IPv6Address
IPv4Address:port
IPv4Address
unix:path
Notez que le préfixe 'unix:' n'est actuellement pas sensible à la casse.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec EventBufferEvent::connect()

<?php
/*
 * 1. Connexion à l'adresse 127.0.0.1 sur le port 80
 * en appelant la méthode EventBufferEvent::connect().
 *
 * 2. Demande /index.cphp via HTTP/1.0
 * en utilisant le tampon de sortie.
 *
 * 3. Lit la réponse de façon asynchrone, et l'affiche dans stdout.
 */

/* Fonction de rappel de lecture */
function readcb($bev, $base) {
    $input = $bev->getInput();

    while (($n = $input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

/* Fonction de rappel d'événement */
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connecté.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Erreur DNS : ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Fermeture\n";
        $base->exit();
        exit("Fait !\n");
    }
}

$base = new EventBase();

echo "étape 1\n";
$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS);
if (!$bev) {
    exit("Echec lors de la création du socket bufferevent\n");
}

echo "étape 2\n";
$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

echo "étape 3\n";
/* Envoi la demande */
$output = $bev->getOutput();
if (!$output->add(
    "GET /index.cphp HTTP/1.0\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Echec lors de l'ajout de la demande dans le tampon de sortie\n");
}

/* Connection à l'hôte de façon asynchrone.
 * Nous connaissons l'IP, et donc, nous n'avons pas besoin de résolution DNS. */
if (!$bev->connect("127.0.0.1:80")) {
    exit("Impossible de se connecter à l'hôte\n");
}

/* Distribue les événements en attente */
$base->dispatch();

L'exemple ci-dessus va afficher quelque chose de similaire à :

étape 1
étape 2
étape 3
Connecté.
HTTP/1.1 200 OK
Server: nginx/1.2.6
Date: Sat, 09 Mar 2013 10:06:58 GMT
Content-Type: text/html; CHARSET=Windows-1252
Connection: close
X-Powered-By: PHP/5.4.11--pl2-gentoo

sdfsdfsf
Fermeture
Fait !

Exemple #2 Connexion à un socket UNIX, lecture de la réponse depuis le serveur, et affichage dans une console

<?php
class MyUnixSocketClient {
    private $base, $bev;

    function __construct($base, $sock_path) {
        $this->base = $base;
        $this->bev = new EventBufferEvent($base, NULL, EventBufferEvent::OPT_CLOSE_ON_FREE,
            array ($this, "read_cb"), NULL, array ($this, "event_cb"));

        if (!$this->bev->connect("unix:$sock_path")) {
            trigger_error("Echec lors de la connexion au socket `$sock_path'", E_USER_ERROR);
        }

        $this->bev->enable(Event::READ);
    }

    function __destruct() {
        if ($this->bev) {
            $this->bev->free();
            $this->bev = NULL;
        }
    }

    function dispatch() {
        $this->base->dispatch();
    }

    function read_cb($bev, $unused) {
        $in = $bev->input;

        printf("Réception de %ld octets\n", $in->length);
        printf("----- données ----\n");
        printf("%ld:\t%s\n", (int) $in->length, $in->pullup(-1));

        $this->bev->free();
        $this->bev = NULL;
        $this->base->exit(NULL);
    }

    function event_cb($bev, $events, $unused) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Erreur depuis bufferevent\n";
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            $bev->free();
            $bev = NULL;
        } elseif ($events & EventBufferEvent::CONNECTED) {
            $bev->output->add("test\n");
        }
    }
}

if ($argc <= 1) {
    exit("Le chemin vers le socket n'est pas fourni\n");
}
$sock_path = $argv[1];

$base = new EventBase();
$cl = new MyUnixSocketClient($base, $sock_path);
$cl->dispatch();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Réception de 5 octets
----- données ----
5:  test

Voir aussi

  • EventBufferEvent::connectHost() - Connexion à un hôte


Connexion à un hôte

  • « EventBufferEvent::connect
  • EventBufferEvent::__construct »
  • PHP Manual
  • EventBufferEvent
  • Connexion à un hôte

EventBufferEvent::connectHost

(PECL event >= 1.2.6-beta)

EventBufferEvent::connectHost — Connexion à un hôte

Description

public bool EventBufferEvent::connectHost ( EventDnsBase $dns_base , string $hostname , int $port [, int $family = EventUtil::AF_UNSPEC ] )

Résout le nom d'hôte DNS, recherche de l'adresse du type family (constante EventUtil::AF_*). Si la résolution du nom échoue, la fonction de rappel de l'événement sera appelé avec un événement d'erreur. Si la résolution réussit, une tentative de connexion sera émise, tout comme le fait la méthode EventBufferEvent::connect().

Le paramètre dns_base est optionnel. Il peut valoir NULL, ou bien un objet créé avec la méthode EventDnsBase::__construct(). Pour une résolution de nom d'hôte asynchrone, passez une ressource d'événement de base DNS valide. Sinon, la résolution du nom d'hôte sera bloquante.

Note:

EventDnsBase n'est disponible que si Event est configuré avec l'option --with-event-extra (bibliothèque event_extra, le support des fonctionalités spécifiques à libevent incluant HTTP, DNS et RPC).

Note:

EventBufferEvent::connectHost() requiert libevent-2.0.3-alpha ou suivants.

Liste de paramètres

dns_base

Objet EventDnsBase dans le cas où le DNS doit être résolu de façon asynchrone. Sinon, NULL.

hostname

Le nom d'hôte sur lequel la connexion tente d'être faite. Les formats reconnus sont :

www.example.com (hostname)
 1.2.3.4 (ipv4address)
 ::1 (ipv6address)
[::1] ([ipv6address])

port

Le numéro du port

family

Famille de l'adresse.
EventUtil::AF_UNSPEC,
EventUtil::AF_INET ou
EventUtil::AF_INET6. Voir les
constantes EventUtil.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec EventBufferEvent::connectHost()

<?php
/* Fonction de rappel de lecture */
function readcb($bev, $base) {
    //$input = $bev->input; //$bev->getInput();

    //$pos = $input->search("TTP");
    $pos = $bev->input->search("TTP");

    while (($n = $bev->input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

/* Fonction de rappel de l'événement */
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connecté.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Erreur DNS : ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Fermeture\n";
        $base->exit();
        exit("Fait !\n");
    }
}

$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // Résolution DNS asynchrone
if (!$dns_base) {
    exit("Echec de l'initialisation de la base DNS\n");
}

$bev = new EventBufferEvent($base, /* utilisation d'un socket interne */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
    "readcb", /* writecb */ NULL, "eventcb", $base
);
if (!$bev) {
    exit("Echec lors de la création du socket bufferevent\n");
}

//$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

$output = $bev->output; //$bev->getOutput();
if (!$output->add(
    "GET {$argv[2]} HTTP/1.0\r\n".
    "Host: {$argv[1]}\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Echec lors de l'ajout de la demande dans le tampon de sortie\n");
}

if (!$bev->connectHost($dns_base, $argv[1], 80, EventUtil::AF_UNSPEC)) {
    exit("Impossible de se connecter à l'hôte {$argv[1]}\n");
}

$base->dispatch();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Connecté.
HTTP/1.0 301 Moved Permanently
Location: http://www.google.co.uk/
Content-Type: text/html; CHARSET=Windows-1252
Date: Sat, 09 Mar 2013 12:21:19 GMT
Expires: Mon, 08 Apr 2013 12:21:19 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN

<HTML><HEAD><meta http-equiv="content-type" content="text/html;CHARSET=Windows-1252">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.co.uk/">here</A>.
</BODY></HTML>
Fermeture
Fait !

Voir aussi

  • EventBufferEvent::connect() - Connecte le descripteur de fichier du tampon d'événement à l'adresse fournie, ou au socket UNIX


Construit un objet EventBufferEvent

  • « EventBufferEvent::connectHost
  • EventBufferEvent::createPair »
  • PHP Manual
  • EventBufferEvent
  • Construit un objet EventBufferEvent

EventBufferEvent::__construct

(PECL event >= 1.2.6-beta)

EventBufferEvent::__construct — Construit un objet EventBufferEvent

Description

public EventBufferEvent::__construct ( EventBase $base [, mixed $socket = NULL [, int $options = 0 [, callable $readcb = NULL [, callable $writecb = NULL [, callable $eventcb = NULL ]]]]] )

Crée un tampon d'événement sur un socket, un flux, ou un descripteur de fichier. Le fait de passer la valeur NULL au paramètre socket signifie que le socket doit être créé ultérieurement, i.e. via la méthode EventBufferEvent::connect().

Liste de paramètres

base

Evenement de base qui doit être associé avec le nouveau tampon d'événement.

socket

Doit être créé comme flux (non nécessairement via l'extension sockets)

options

Une constante parmi les constantes EventBufferEvent::OPT_*, ou 0.

readcb

Fonction de rappel pour les événements de lecture. Voir aussi les fonctions de rappel des tampon d'événement.

writecb

Fonction de rappel pour les événements d'écriture. Voir aussi les fonctions de rappel des tampon d'événement.

eventcb

Fonction de rappel pour les événements de changement de statut. Voir aussi les fonctions de rappel des tampon d'événement.

arg

Une variable qui sera passée à toutes les fonctions de rappel.

Valeurs de retour

Retourne une ressource de tampon d'événement, associée à la ressource de socket.

Voir aussi

  • EventBufferEvent::sslFilter() - Crée un nouveau tampon d'événement SSL, dont les données seront envoyées via un autre tampon d'événement
  • EventBufferEvent::sslSocket() - Crée un nouveau tampon SSL dont ces données seront envoyées via un socket SSL


Crée deux événements de tampon connectés l'un à l'autre

  • « EventBufferEvent::__construct
  • EventBufferEvent::disable »
  • PHP Manual
  • EventBufferEvent
  • Crée deux événements de tampon connectés l'un à l'autre

EventBufferEvent::createPair

(PECL event >= 1.2.6-beta)

EventBufferEvent::createPair — Crée deux événements de tampon connectés l'un à l'autre

Description

public static array EventBufferEvent::createPair ( EventBase $base [, int $options = 0 ] )

Retourne un tableau de deux objets EventBufferEvent connectés l'un à l'autre. Toutes les options habituelles sont supportées, sauf pour EventBufferEvent::OPT_CLOSE_ON_FREE qui n'a aucun effet, et EventBufferEvent::OPT_DEFER_CALLBACKS qui est toujours activé.

Liste de paramètres

base

Evenement de base associé.

options

Constantes EventBufferEvent::OPT_* combinées avec l'opérateur OR.

Valeurs de retour

Retourne un tableau de deux objets EventBufferEvent connectés à l'un à l'autre.

Historique

Version | Description
1.9.0 | La méthode est maintenant statique.


Désactive les événements de lecture, d'écriture ou des deux sur un événement de tampon

  • « EventBufferEvent::createPair
  • EventBufferEvent::enable »
  • PHP Manual
  • EventBufferEvent
  • Désactive les événements de lecture, d'écriture ou des deux sur un événement de tampon

EventBufferEvent::disable

(PECL event >= 1.2.6-beta)

EventBufferEvent::disable — Désactive les événements de lecture, d'écriture ou des deux sur un événement de tampon

Description

public bool EventBufferEvent::disable ( int $events )

Désactive les événements Event::READ,
Event::WRITE, ou
Event::READ|Event::WRITE
sur un événement de tampon.

Liste de paramètres

events

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventBufferEvent::enable() - Active les événements de lecture, d'écriture, ou des deux, sur un événement de tampon


Active les événements de lecture, d'écriture, ou des deux, sur un événement de tampon

  • « EventBufferEvent::disable
  • EventBufferEvent::free »
  • PHP Manual
  • EventBufferEvent
  • Active les événements de lecture, d'écriture, ou des deux, sur un événement de tampon

EventBufferEvent::enable

(PECL event >= 1.2.6-beta)

EventBufferEvent::enable — Active les événements de lecture, d'écriture, ou des deux, sur un événement de tampon

Description

public bool EventBufferEvent::enable ( int $events )

Active les événements Event::READ,
Event::WRITE, ou
Event::READ|Event::WRITE
sur un événément de tampon.

Liste de paramètres

events

Event::READ, Event::WRITE, ou Event::READ|Event::WRITE sur un événement de tampon.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventBufferEvent::disable() - Désactive les événements de lecture, d'écriture ou des deux sur un événement de tampon


Libère un événement de tampon

  • « EventBufferEvent::enable
  • EventBufferEvent::getDnsErrorString »
  • PHP Manual
  • EventBufferEvent
  • Libère un événement de tampon

EventBufferEvent::free

(PECL event >= 1.2.6-beta)

EventBufferEvent::free — Libère un événement de tampon

Description

public void EventBufferEvent::free ( void )

Libère toutes les ressources allouées par un événement de tampon.

Habituellement, il n'est pas nécessaire d'appeler cette méthode, sachant que normalement, la libération totale des ressources associées s'effectue dans les destructeurs internes de l'objet. Cependant, il se peut qu'un long script alloue beaucoup d'instances, ou bien qu'un script utilise énormément de mémoire ; dans ces cas, il peut être nécessaire de libérer les ressources aussi vite que possible. Aussi, l'utilisation de la méthode EventBufferEvent::free() peut être utile pour protéger l'exécution du script d'atteindre la valeur de memory_limit.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Retourne une chaîne décrivant la dernière erreur DNS

  • « EventBufferEvent::free
  • EventBufferEvent::getEnabled »
  • PHP Manual
  • EventBufferEvent
  • Retourne une chaîne décrivant la dernière erreur DNS

EventBufferEvent::getDnsErrorString

(PECL event >= 1.2.6-beta)

EventBufferEvent::getDnsErrorString — Retourne une chaîne décrivant la dernière erreur DNS

Description

public string EventBufferEvent::getDnsErrorString ( void )

Retourne une chaîne décrivant la dernière erreur DNS lors de l'exécution de la méthode EventBufferEvent::connectHost() ou une chaîne vide s'il n'y a aucune erreur DNS de détectée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne décrivant l'erreur DNS, ou une chaîne vide s'il n'y a aucune erreur.

Voir aussi

  • EventBufferEvent::connectHost() - Connexion à un hôte


Retourne un masque d'événements actuellement actifs sur le tampon d'événements

  • « EventBufferEvent::getDnsErrorString
  • EventBufferEvent::getInput »
  • PHP Manual
  • EventBufferEvent
  • Retourne un masque d'événements actuellement actifs sur le tampon d'événements

EventBufferEvent::getEnabled

(PECL event >= 1.2.6-beta)

EventBufferEvent::getEnabled — Retourne un masque d'événements actuellement actifs sur le tampon d'événements

Description

public int EventBufferEvent::getEnabled ( void )

Retourne un masque d'événements actuellement actifs sur le tampon d'événements.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier représentant un masque d'événements actuellement actifs sur le tampon d'événements.

Voir aussi

  • EventBufferEvent::enable() - Active les événements de lecture, d'écriture, ou des deux, sur un événement de tampon
  • EventBufferEvent::disable() - Désactive les événements de lecture, d'écriture ou des deux sur un événement de tampon


Retourne le tampon d'entrée associé avec le tampon d'événements courant

  • « EventBufferEvent::getEnabled
  • EventBufferEvent::getOutput »
  • PHP Manual
  • EventBufferEvent
  • Retourne le tampon d'entrée associé avec le tampon d'événements courant

EventBufferEvent::getInput

(PECL event >= 1.2.6-beta)

EventBufferEvent::getInput — Retourne le tampon d'entrée associé avec le tampon d'événements courant

Description

public EventBuffer EventBufferEvent::getInput ( void )

Retourne le tampon d'entrée associé avec le tampon d'événements courant. Un tampon d'entrée est un stockage pour les données à lire.

Notez qu'il y a aussi des propriétés d' entrée pour la classe EventBufferEvent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une instance du tampon d'entrée EventBuffer associé avec le tampon d'événements courant.

Exemples

Exemple #1 Fonction de rappel pour un événement de lecture sur le tampon

<?php
function readcb($bev, $base) {
    $input = $bev->input; //$bev->getInput();

    while (($n = $input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}
?>

Voir aussi

  • EventBufferEvent::getOutput() - Retourne le tampon de sortie associé avec le tampon d'événement courant


Retourne le tampon de sortie associé avec le tampon d'événement courant

  • « EventBufferEvent::getInput
  • EventBufferEvent::read »
  • PHP Manual
  • EventBufferEvent
  • Retourne le tampon de sortie associé avec le tampon d'événement courant

EventBufferEvent::getOutput

(PECL event >= 1.2.6-beta)

EventBufferEvent::getOutput — Retourne le tampon de sortie associé avec le tampon d'événement courant

Description

public EventBuffer EventBufferEvent::getOutput ( void )

Retourne le tampon de sortie associé avec le tampon d'événement courant. Un tampon de sortie est un stockage pour les données à écrire.

Notez qu'il y a aussi des propriétés de sortie pour la classe EventBufferEvent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une instance du tampon de sortie EventBuffer associé avec le tampon d'événements courant.

Exemples

Exemple #1 Exemple avec EventBufferEvent::getOutput()

<?php
$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // Utilisation de la résolution async DNS
if (!$dns_base) {
    exit("Echec lors de l'initialisation de la base DNS\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
    "readcb", /* writecb */ NULL, "eventcb", $base
);
if (!$bev) {
    exit("Echec lors de la création du socket bufferevent\n");
}

$bev->enable(Event::READ | Event::WRITE);

$output = $bev->getOutput();
if (!$output->add(
    "GET {$argv[2]} HTTP/1.0\r\n".
    "Host: {$argv[1]}\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Echec lors de l'ajout de la demande dans le tampon de sortie\n");
}

/* ... */
?>

Voir aussi

  • EventBufferEvent::getInput() - Retourne le tampon d'entrée associé avec le tampon d'événements courant


Lit les données du tampon

  • « EventBufferEvent::getOutput
  • EventBufferEvent::readBuffer »
  • PHP Manual
  • EventBufferEvent
  • Lit les données du tampon

EventBufferEvent::read

(PECL event >= 1.2.6-beta)

EventBufferEvent::read — Lit les données du tampon

Description

public string EventBufferEvent::read ( int $size )

Supprime les size octets du tampon d'entrée. Retourne une chaîne de données lues depuis le tampon d'entrée.

Liste de paramètres

size

Nombre maximal d'octets à lire

Valeurs de retour

Retourne la chaîne de données lues depuis le tampon d'entrée.

Voir aussi

  • EventBufferEvent::readBuffer() - Vide le contenu entier du tampon d'entrée et le place dans le tampon


Vide le contenu entier du tampon d'entrée et le place dans le tampon

  • « EventBufferEvent::read
  • EventBufferEvent::setCallbacks »
  • PHP Manual
  • EventBufferEvent
  • Vide le contenu entier du tampon d'entrée et le place dans le tampon

EventBufferEvent::readBuffer

(PECL event >= 1.2.6-beta)

EventBufferEvent::readBuffer — Vide le contenu entier du tampon d'entrée et le place dans le tampon

Description

public bool EventBufferEvent::readBuffer ( EventBuffer $buf )

Vide le contenu entier du tampon d'entrée et le place dans le tampon buf.

Liste de paramètres

buf

Tampon cible

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventBufferEvent::read() - Lit les données du tampon


Assigne les fonctions de rappel pour la lecture, l'écriture, et les statuts d'événements

  • « EventBufferEvent::readBuffer
  • EventBufferEvent::setPriority »
  • PHP Manual
  • EventBufferEvent
  • Assigne les fonctions de rappel pour la lecture, l'écriture, et les statuts d'événements

EventBufferEvent::setCallbacks

(PECL event >= 1.2.6-beta)

EventBufferEvent::setCallbacks — Assigne les fonctions de rappel pour la lecture, l'écriture, et les statuts d'événements

Description

public void EventBufferEvent::setCallbacks ( callable $readcb , callable $writecb , callable $eventcb [, string $arg ] )

Assigne les fonctions de rappel pour la lecture, l'écriture, et les statuts d'événements.

Liste de paramètres

readcb

Fonction de rappel pour un événement de lecture. Voir les fonctions de rappel pour les tampons d'événements.

writecb

Fonction de rappel pour un événement d'écriture. Voir les fonctions de rappel pour les tampons d'événements.

eventcb

Fonction de rappel pour un événement de modification de statut. Voir les fonctions de rappel pour les tampons d'événements.

arg

Une variable qui sera passée à toutes les fonctions de rappel.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventBufferEvent::__construct() - Construit un objet EventBufferEvent


Assigne une priorité pour un tampon d'événements

  • « EventBufferEvent::setCallbacks
  • EventBufferEvent::setTimeouts »
  • PHP Manual
  • EventBufferEvent
  • Assigne une priorité pour un tampon d'événements

EventBufferEvent::setPriority

(PECL event >= 1.2.6-beta)

EventBufferEvent::setPriority — Assigne une priorité pour un tampon d'événements

Description

public bool EventBufferEvent::setPriority ( int $priority )

Assigne une priorité pour un tampon d'événements.

Avertissement

Uniquement supporté pour les sockets de tampon d'événements.

Liste de paramètres

priority

Valeur de la priorité.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Défini le mode lecture et écriture pour le délai d'attente maximal d'un tampon d'événement

  • « EventBufferEvent::setPriority
  • EventBufferEvent::setWatermark »
  • PHP Manual
  • EventBufferEvent
  • Défini le mode lecture et écriture pour le délai d'attente maximal d'un tampon d'événement

EventBufferEvent::setTimeouts

(PECL event >= 1.2.6-beta)

EventBufferEvent::setTimeouts — Défini le mode lecture et écriture pour le délai d'attente maximal d'un tampon d'événement

Description

public bool EventBufferEvent::setTimeouts ( float $timeout_read , float $timeout_write )

Défini le mode lecture et écriture pour le délai d'attente maximal d'un tampon d'événement.

Liste de paramètres

timeout_read

La lecture du délai d'attente maximal

timeout_write

L'écriture du délai d'attente maximal

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Active la lecture, et/ou l'écriture des filigranes

  • « EventBufferEvent::setTimeouts
  • EventBufferEvent::sslError »
  • PHP Manual
  • EventBufferEvent
  • Active la lecture, et/ou l'écriture des filigranes

EventBufferEvent::setWatermark

(PECL event >= 1.2.6-beta)

EventBufferEvent::setWatermark — Active la lecture, et/ou l'écriture des filigranes

Description

public void EventBufferEvent::setWatermark ( int $events , int $lowmark , int $highmark )

Active la lecture, l'écriture ou les deux pour les filigranes d'un tampon d'événement.

Un filigrane de tampon d'événement est une portion, une valeur spécifiant le nombre d'octets à lire ou à écrire avant d'appeler la fonction de rappel. Par défaut, chaque événement de lecture/écriture lance une fonction de rappel. Voir ausi la page suivante (en anglais) : » Fast portable non-blocking network programming with Libevent: Callbacks and watermarks

Liste de paramètres

events

Masque de constantes Event::READ, Event::WRITE, ou les deux.

lowmark

Valeur minimale du filigrane.

highmark

Valeur maximale du filigrane. La valeur 0 signifie "aucune limite".

Valeurs de retour

Aucune valeur n'est retournée.


Retourne l'erreur OpenSSL la plus récente rapportée par le tampon d'événement

  • « EventBufferEvent::setWatermark
  • EventBufferEvent::sslFilter »
  • PHP Manual
  • EventBufferEvent
  • Retourne l'erreur OpenSSL la plus récente rapportée par le tampon d'événement

EventBufferEvent::sslError

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslError — Retourne l'erreur OpenSSL la plus récente rapportée par le tampon d'événement

Description

public string EventBufferEvent::sslError ( void )

Retourne l'erreur OpenSSL la plus récente rapportée par le tampon d'événement.

Note:

Cette méthode n'est disponible que si Event a été compilé avec le support OpenSSL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la chaîne d'erreur OpenSSL rapporté par le tampon d'événement ou $false; s'il n'y a plus aucune erreur à retourner.

Exemples

Exemple #1 Exemple avec EventBufferEvent::sslError()

<?php
// Cette fonction de rappel sera appelée lorsque des événements surviennent
// sur l'écouteur d'événements, i.e. fermeture de connexion, ou lorsqu'une
// erreur survient.
function ssl_event_cb($bev, $events, $ctx) {
    if ($events & EventBufferEvent::ERROR) {
        // Récupère les erreurs depuis la pile des erreurs SSL
        while ($err = $bev->sslError()) {
            fprintf(STDERR, "Bufferevent error %s.\n", $err);
        }
    }

    if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
        $bev->free();
    }
}
?>

Voir aussi

  • EventBufferEvent::sslRenegotiate() - Demande au tampon d'événement de commencer une renégociation SSL


Crée un nouveau tampon d'événement SSL, dont les données seront envoyées via un autre tampon d'événement

  • « EventBufferEvent::sslError
  • EventBufferEvent::sslGetCipherInfo »
  • PHP Manual
  • EventBufferEvent
  • Crée un nouveau tampon d'événement SSL, dont les données seront envoyées via un autre tampon d'événement

EventBufferEvent::sslFilter

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslFilter — Crée un nouveau tampon d'événement SSL, dont les données seront envoyées via un autre tampon d'événement

Description

public static EventBufferEvent EventBufferEvent::sslFilter ( EventBase $base , EventBufferEvent $underlying , EventSslContext $ctx , int $state [, int $options = 0 ] )

Crée un nouveau tampon d'événement SSL, dont les données seront envoyées via un autre tampon d'événement.

Note:

Cette méthode n'est disponible que si Event a été compilé avec le support OpenSSL.

Liste de paramètres

base

Evenement de base associé.

underlying

Un socket de tampon d'événement à utiliser pour ce SSL.

ctx

Objet de la classe EventSslContext.

state

Le statut courant de la connexion SSL :
EventBufferEvent::SSL_OPEN,
EventBufferEvent::SSL_ACCEPTING ou
EventBufferEvent::SSL_CONNECTING.

options

Une ou plusieurs options de tampon d'événement.

Valeurs de retour

Retourne un nouvel objet EventBufferEvent SSL.

Exemples

Exemple #1 Exemple de serveur SMTP

<?php
 /*
 * Auteur : Andrew Rose <hello at andrewrose dot co dot uk>
 *
 * Utilisation :
 * 1) On prépare le certificat cert.pem et la clé privée privkey.pem.
 * 2) On démarre le script du serveur
 * 3) On ouvre la connexion TLS, i.e. :
 *      $ openssl s_client -connect localhost:25 -starttls smtp -crlf
 * 4) On commence à tester les commandes listées dans la méthode `cmd` ci-dessous.
 */

class Handler {
    public $domainName = FALSE;
    public $connections = [];
    public $buffers = [];
    public $maxRead = 256000;

    public function __construct() {
        $this->ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, [
            EventSslContext::OPT_LOCAL_CERT  => 'cert.pem',
            EventSslContext::OPT_LOCAL_PK    => 'privkey.pem',
            //EventSslContext::OPT_PASSPHRASE  => '',
            EventSslContext::OPT_VERIFY_PEER => false, // modifier en TRUE avec les certificats authentiques
            EventSslContext::OPT_ALLOW_SELF_SIGNED => true // modifier en FALSE avec les certificats authentiques
        ]);

        $this->base = new EventBase();
        if (!$this->base) {
            exit("Impossible d'ouvrir la base de l'événement\n");
        }

        if (!$this->listener = new EventListener($this->base,
            [$this, 'ev_accept'],
            $this->ctx,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1,
            '0.0.0.0:25'))
        {
            exit("Impossible de créer l'écouteur\n");
        }

        $this->listener->setErrorCallback([$this, 'ev_error']);
        $this->base->dispatch();
    }

    public function ev_accept($listener, $fd, $address, $ctx) {
        static $id = 0;
        $id += 1;

        $this->connections[$id]['clientData'] = '';
        $this->connections[$id]['cnx'] = new EventBufferEvent($this->base, $fd,
            EventBufferEvent::OPT_CLOSE_ON_FREE);

        if (!$this->connections[$id]['cnx']) {
            echo "Echec lors de la création du buffer\n";
            $this->base->exit(NULL);
            exit(1);
        }

        $this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL,
            [$this, 'ev_error'], $id);
        $this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);

        $this->ev_write($id, '220 '.$this->domainName." wazzzap?\r\n");
    }

    function ev_error($listener, $ctx) {
        $errno = EventUtil::getLastSocketErrno();

        fprintf(STDERR, "On reçoit l'erreur %d (%s) sur l'écouteur. On stoppe.\n",
            $errno, EventUtil::getLastSocketError());

        if ($errno != 0) {
            $this->base->exit(NULL);
            exit();
        }
    }

    public function ev_close($id) {
        $this->connections[$id]['cnx']->disable(Event::READ | Event::WRITE);
        unset($this->connections[$id]);
    }

    protected function ev_write($id, $string) {
        echo 'S('.$id.'): '.$string;
        $this->connections[$id]['cnx']->write($string);
    }

    public function ev_read($buffer, $id) {
        while($buffer->input->length > 0) {
            $this->connections[$id]['clientData'] .= $buffer->input->read($this->maxRead);
            $clientDataLen = strlen($this->connections[$id]['clientData']);

            if($this->connections[$id]['clientData'][$clientDataLen-1] == "\n"
                && $this->connections[$id]['clientData'][$clientDataLen-2] == "\r")
            {
                // Supprime les caractères \r\n à la fin
                $line = substr($this->connections[$id]['clientData'], 0,
                    strlen($this->connections[$id]['clientData']) - 2);

                $this->connections[$id]['clientData'] = '';
                $this->cmd($buffer, $id, $line);
            }
        }
    }

    protected function cmd($buffer, $id, $line) {
        switch ($line) {
            case strncmp('EHLO ', $line, 4):
                $this->ev_write($id, "250-STARTTLS\r\n");
                $this->ev_write($id, "250 OK ehlo\r\n");
                break;

            case strncmp('HELO ', $line, 4):
                $this->ev_write($id, "250-STARTTLS\r\n");
                $this->ev_write($id, "250 OK helo\r\n");
                break;

            case strncmp('QUIT', $line, 3):
                $this->ev_write($id, "250 OK quit\r\n");
                $this->ev_close($id);
                break;

            case strncmp('STARTTLS', $line, 3):
                $this->ev_write($id, "220 Ready to start TLS\r\n");
                $this->connections[$id]['cnx'] = EventBufferEvent::sslFilter($this->base,
                    $this->connections[$id]['cnx'], $this->ctx,
                    EventBufferEvent::SSL_ACCEPTING,
                    EventBufferEvent::OPT_CLOSE_ON_FREE);
                $this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL, [$this, 'ev_error'], $id);
                $this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);
                break;

            default:
                echo 'Commande inconnue : '.$line."\n";
                break;
        }
    }
}

new Handler();

Voir aussi

  • EventBufferEvent::sslSocket() - Crée un nouveau tampon SSL dont ces données seront envoyées via un socket SSL


Retourne une description textuelle d'un cipher

  • « EventBufferEvent::sslFilter
  • EventBufferEvent::sslGetCipherName »
  • PHP Manual
  • EventBufferEvent
  • Retourne une description textuelle d'un cipher

EventBufferEvent::sslGetCipherInfo

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherInfo — Retourne une description textuelle d'un cipher

Description

public string EventBufferEvent::sslGetCipherInfo ( void )

Récupère la description du cipher courant via la fonction SSL_CIPHER_description de l'API SSL (voir la page man de SSL_CIPHER_get_name(3)).

Note:

Cette fonction n'est disponible que si Event a été compilé avec le support OpenSSL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une description textuelle du cipher en cas de succès, ou bien FALSE si une erreur survient.


Retourne le nom du cipher courant pour la connexion SSL

  • « EventBufferEvent::sslGetCipherInfo
  • EventBufferEvent::sslGetCipherVersion »
  • PHP Manual
  • EventBufferEvent
  • Retourne le nom du cipher courant pour la connexion SSL

EventBufferEvent::sslGetCipherName

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherName — Retourne le nom du cipher courant pour la connexion SSL

Description

public string EventBufferEvent::sslGetCipherName ( void )

Récupère le nom du cipher courant pour la connexion SSL.

Note:

Cette fonction n'est disponible que si Event a été compilé avec le support OpenSSL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du cipher courant pour la connexion SSL ou FALSE si une erreur survient.


Retourne la version du cipher utilisé pour la connexion SSL courante

  • « EventBufferEvent::sslGetCipherName
  • EventBufferEvent::sslGetProtocol »
  • PHP Manual
  • EventBufferEvent
  • Retourne la version du cipher utilisé pour la connexion SSL courante

EventBufferEvent::sslGetCipherVersion

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherVersion — Retourne la version du cipher utilisé pour la connexion SSL courante

Description

public string EventBufferEvent::sslGetCipherVersion ( void )

Récupère la version du cipher utilisé pour la connexion SSL courante.

Note:

Cette fonction n'est disponible que si Event a été compilé avec le support OpenSSL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la version du cipher utilisé pour la connexion SSL courante ou FALSE si une erreur survient.


Retourne le nom du protocole utilisé pour la connexion SSL courante

  • « EventBufferEvent::sslGetCipherVersion
  • EventBufferEvent::sslRenegotiate »
  • PHP Manual
  • EventBufferEvent
  • Retourne le nom du protocole utilisé pour la connexion SSL courante

EventBufferEvent::sslGetProtocol

(PECL event >= 1.10.0)

EventBufferEvent::sslGetProtocol — Retourne le nom du protocole utilisé pour la connexion SSL courante

Description

public string EventBufferEvent::sslGetProtocol ( void )

Retourne le nom du protocole utilisé pour la connexion SSL courante.

Note:

Cette fonction n'est disponible que si Event a été compilé avec le support OpenSSL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du protocole utilisé pour la connexion SSL courante.


Demande au tampon d'événement de commencer une renégociation SSL

  • « EventBufferEvent::sslGetProtocol
  • EventBufferEvent::sslSocket »
  • PHP Manual
  • EventBufferEvent
  • Demande au tampon d'événement de commencer une renégociation SSL

EventBufferEvent::sslRenegotiate

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslRenegotiate — Demande au tampon d'événement de commencer une renégociation SSL

Description

public void EventBufferEvent::sslRenegotiate ( void )

Demande au tampon d'événement de commencer une renégociation SSL.

Avertissement

L'appel à cette méthode demande à SSL une renégociation, et au tampon d'événement d'appeler la fonction de rappel propriée. C'est une méthode très avancée ; elle ne doit être appelée que si vous savez parfaitement ce que vous faîtes, tout spécialement depuis quelques versions SSL où des failles de sécurité ont été mises à jour lors de renégociation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Crée un nouveau tampon SSL dont ces données seront envoyées via un socket SSL

  • « EventBufferEvent::sslRenegotiate
  • EventBufferEvent::write »
  • PHP Manual
  • EventBufferEvent
  • Crée un nouveau tampon SSL dont ces données seront envoyées via un socket SSL

EventBufferEvent::sslSocket

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslSocket — Crée un nouveau tampon SSL dont ces données seront envoyées via un socket SSL

Description

public static EventBufferEvent EventBufferEvent::sslSocket ( EventBase $base , mixed $socket , EventSslContext $ctx , int $state [, int $options ] )

Crée un nouveau tampon SSL dont ces données seront envoyées via un socket SSL.

Liste de paramètres

base

Evenement de base associé.

socket

Socket à utiliser pour ce SSL. Peut-être un flux, une ressource de socket, un descripteur numérique de fichier, ou NULL. Si le paramètre socket vaut NULL, on imagine que le descripteur de fichier pour ce socket sera sssigné ultérieurement via la méthode EventBufferEvent::connectHost().

ctx

Objet de la classe EventSslContext.

state

Le statut courant de la connexion SSL :
EventBufferEvent::SSL_OPEN,
EventBufferEvent::SSL_ACCEPTING ou
EventBufferEvent::SSL_CONNECTING.

options

Les options du tampon d'événement.

Valeurs de retour

Retourne un objet EventBufferEvent.

Voir aussi

  • EventBufferEvent::sslFilter() - Crée un nouveau tampon d'événement SSL, dont les données seront envoyées via un autre tampon d'événement


Ajoute des données dans un tampon d'événement de sortie

  • « EventBufferEvent::sslSocket
  • EventBufferEvent::writeBuffer »
  • PHP Manual
  • EventBufferEvent
  • Ajoute des données dans un tampon d'événement de sortie

EventBufferEvent::write

(PECL event >= 1.2.6-beta)

EventBufferEvent::write — Ajoute des données dans un tampon d'événement de sortie

Description

public bool EventBufferEvent::write ( string $data )

Ajoute des données dans un tampon d'événement de sortie.

Liste de paramètres

data

Données à ajouter dans le tampon.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventBufferEvent::writeBuffer() - Ajoute le contenu entier d'un tampon dans un tampon d'événement de sortie


Ajoute le contenu entier d'un tampon dans un tampon d'événement de sortie

  • « EventBufferEvent::write
  • A propos des fonctions de rappel du buffer d'événements »
  • PHP Manual
  • EventBufferEvent
  • Ajoute le contenu entier d'un tampon dans un tampon d'événement de sortie

EventBufferEvent::writeBuffer

(PECL event >= 1.2.6-beta)

EventBufferEvent::writeBuffer — Ajoute le contenu entier d'un tampon dans un tampon d'événement de sortie

Description

public bool EventBufferEvent::writeBuffer ( EventBuffer $buf )

Ajoute le contenu entier d'un tampon dans un tampon d'événement de sortie.

Liste de paramètres

buf

Objet EventBuffer source.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventBufferEvent::write() - Ajoute des données dans un tampon d'événement de sortie


A propos des fonctions de rappel du buffer d'événements

Un objet de la classe EventBufferEvent représente un buffer d'événements. La nature asynchrone d'I/O réalisée par Libevent implique qu'un socket (ou tout autre type de descripteur de fichiers) n'est pas toujours disponible. Event invoque les fonctions de rappel correspondant lorsque la ressource devient disponible pour une lecture ou une écriture, ou lorsque des événements surviennent (i.e. une erreur, une fin de ligne, etc.).

Les fonctions de rappel de lecture et d'écriture doivent correspondre au prototype suivant :

void callback ([ EventBufferEvent $bev = NULL [, mixed $arg = NULL ]] )

bev

Objet EventBufferEvent associé.

arg

Variable personnalisée attachée à toutes les fonctions de rappel via la méthode EventBufferEvent::__construct() ou la méthode EventBufferEvent::setCallbacks().

Une fonction de rappel d'événement doit correspondante au prototype suivant :

void callback ([ EventBufferEvent $bev = NULL [, int $events = 0 [, mixed $arg = NULL ]]] )

bev

Objet EventBufferEvent associé.

events

Masque d'octets d'événements :
EventBufferEvent::READING,
EventBufferEvent::WRITING,
EventBufferEvent::EOL,
EventBufferEvent::ERROR et
EventBufferEvent::TIMEOUT. Voir les
constantes EventBufferEvent.

arg

Variable personnalisée attachée à toutes les fonctions de rappel via la méthode EventBufferEvent::__construct() ou la méthode EventBufferEvent::setCallbacks().


La classe EventConfig

(PECL event >= 1.2.6-beta)

Introduction

Représente la structure de configuration qui peut être utilisée dans la construction de la classe EventBase.

Synopsis de la classe

final EventConfig {
/* Constants */
const integer FEATURE_ET = 1 ;
const integer FEATURE_O1 = 2 ;
const integer FEATURE_FDS = 4 ;
/* Méthodes */
public bool avoidMethod ( string $method )
public __construct ( void )
public bool requireFeatures ( int $feature )
public void setMaxDispatchInterval ( int $max_interval , int $max_callbacks , int $min_priority )
}

Constantes pré-définies

EventConfig::FEATURE_ET

Requiert une méthode du backend qui supporte les I/O edge-triggered.

EventConfig::FEATURE_O1

Requiert une méthode du backend où ajouter ou supprimer un seul événement, ou d'avoir un seul événement qui devient actif.

EventConfig::FEATURE_FDS

Requiert une méthode du backend qui peut supporter des types de descripteur de fichier arbitraire, et non pas seulement des sockets.

Sommaire

  • EventConfig::avoidMethod — Demande à libevent d'ignorer une méthode d'événement spécifique
  • EventConfig::__construct — Construit un objet EventConfig
  • EventConfig::requireFeatures — Entre dans une fonctionalité de méthode d'événement demandée par l'application
  • EventConfig::setMaxDispatchInterval — Evite l'inversion des priorités


Demande à libevent d'ignorer une méthode d'événement spécifique

  • « EventConfig
  • EventConfig::__construct »
  • PHP Manual
  • EventConfig
  • Demande à libevent d'ignorer une méthode d'événement spécifique

EventConfig::avoidMethod

(PECL event >= 1.2.6-beta)

EventConfig::avoidMethod — Demande à libevent d'ignorer une méthode d'événement spécifique

Description

public bool EventConfig::avoidMethod ( string $method )

Demande à libevent d'ignorer une méthode d'événement spécifique. Voir la » création d'un événement de base.

Liste de paramètres

method

La méthode à ignorer. Voir les constantes EventConfig.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec EventConfig::avoidMethod()

<?php
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "Méthode `select' ignorée\n";
}
?>

Voir aussi

  • EventBase::__construct() - Construit un objet EventBase


Construit un objet EventConfig

  • « EventConfig::avoidMethod
  • EventConfig::requireFeatures »
  • PHP Manual
  • EventConfig
  • Construit un objet EventConfig

EventConfig::__construct

(PECL event >= 1.2.6-beta)

EventConfig::__construct — Construit un objet EventConfig

Description

public EventConfig::__construct ( void )

Construit un objet EventConfig qui pourra être passé au constructeur EventBase::__construct().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet EventConfig.

Exemples

Exemple #1 Exemple avec EventConfig::__construct()

<?php
// On ignore la méthode "select"
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "Méthode `select' ignorée\n";
}

// Crée un event_base associé avec la configuration
$base = new EventBase($cfg);

/* Maintenant, $base est configuré pour ignorer la méthode select */
?>

Voir aussi

  • EventBase::__construct() - Construit un objet EventBase


Entre dans une fonctionalité de méthode d'événement demandée par l'application

  • « EventConfig::__construct
  • EventConfig::setMaxDispatchInterval »
  • PHP Manual
  • EventConfig
  • Entre dans une fonctionalité de méthode d'événement demandée par l'application

EventConfig::requireFeatures

(PECL event >= 1.2.6-beta)

EventConfig::requireFeatures — Entre dans une fonctionalité de méthode d'événement demandée par l'application

Description

public bool EventConfig::requireFeatures ( int $feature )

Entre dans une fonctionalité de méthode d'événement demandée par l'application.

Liste de paramètres

feature

Masque de fonctionalités demandées. Voir les constantes EventConfig::FEATURE_*.

Valeurs de retour

Exemples

Exemple #1 Exemple avec EventConfig::requireFeatures()

<?php
$cfg = new EventConfig();

// Crée un event_base associé avec la configuration
$base = new EventBase($cfg);

// Demande de la fonctionalité FDS
if ($cfg->requireFeatures(EventConfig::FEATURE_FDS)) {
    echo "Fonctionalité FDS demandée\n";

    $base = new EventBase($cfg);
    ($base->getFeatures() & EventConfig::FEATURE_FDS)
        and print("FDS - types arbitraire de descripteur de fichier et non pas juste des sockets\n");
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fonctionalité FDS demandée
FDS - types arbitraire de descripteur de fichier et non pas juste des sockets

Voir aussi

  • EventBase::getFeatures() - Retourne un masque des fonctionalités supportées


Evite l'inversion des priorités

  • « EventConfig::requireFeatures
  • EventDnsBase »
  • PHP Manual
  • EventConfig
  • Evite l'inversion des priorités

EventConfig::setMaxDispatchInterval

(No version information available, might only be in Git)

EventConfig::setMaxDispatchInterval — Evite l'inversion des priorités

Description

public void EventConfig::setMaxDispatchInterval ( int $max_interval , int $max_callbacks , int $min_priority )

Evite l'inversion des priorités en limitant le nombre de fonctions de rappel d'événements en basse priorité qui peuvent être invoquées avant de vérifier la présence d'événements de haute priorité.

Note:

Disponible depuis libevent 2.1.0-alpha.

Liste de paramètres

max_interval

Un intervalle après lequel Libevent va arrêter l'exécution des fonctions de rappel et vérifier la présence d'autres événements, ou 0 s'il ne doit pas y avoir de tel intervalle.

max_callbacks

Un nombre de fonctions de rappel après lequel Libevent doit arrêter l'exécution des fonctions de rappel et vérifier la présence d'autres événements, ou -1 s'il ne doit pas y avoir de telle limite.

min_priority

Une priorité en dessous de laquelle max_interval et max_callbacks ne doivent pas être pris en compte. Si défini à 0, ils seront pris en compte pour les événements de n'importe quelle priorité ; si défini à 1, ils seront pris en compte pour les événements de priorité 1 et ainsi de suite.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


La classe EventDnsBase

(PECL event >= 1.2.6-beta)

Introduction

Représente la structure de base DNS de Libevent. Utilisé pour résoudre les DNS de façon asynchrone, pour analyser les fichiers de configuration comme resolv.conf etc.

Synopsis de la classe

final EventDnsBase {
/* Constants */
const integer OPTION_SEARCH = 1 ;
const integer OPTION_NAMESERVERS = 2 ;
const integer OPTION_MISC = 4 ;
const integer OPTION_HOSTSFILE = 8 ;
const integer OPTIONS_ALL = 15 ;
/* Méthodes */
public bool addNameserverIp ( string $ip )
public void addSearch ( string $domain )
public void clearSearch ( void )
public __construct ( EventBase $base , bool $initialize )
public int countNameservers ( void )
public bool loadHosts ( string $hosts )
public bool parseResolvConf ( int $flags , string $filename )
public bool setOption ( string $option , string $value )
public bool setSearchNdots ( int $ndots )
}

Constantes pré-définies

EventDnsBase::OPTION_SEARCH

Demande à lire le domaine et recherche les champs depuis le fichier resolv.conf et l'option ndots, et les utilise pour décider quel domaine (s'il y en a) doit être utilisé pour chercher les noms d'hôtes qui ne sont pas totalement qualifiés.

EventDnsBase::OPTION_NAMESERVERS

Demande à connaître les noms des serveurs depuis le fichier resolv.conf.

EventDnsBase::OPTION_MISC

EventDnsBase::OPTION_HOSTSFILE

Demande à lire une liste d'hôtes depuis le fichier /etc/hosts comme partie du chargement du fichier resolv.conf.

EventDnsBase::OPTIONS_ALL

Demande à connaître tout le contenu du fichier resolv.conf.

Sommaire

  • EventDnsBase::addNameserverIp — Ajoute un serveur de noms à la base DNS
  • EventDnsBase::addSearch — Ajoute un domaine à la liste des domaines utilisés pour la recherche
  • EventDnsBase::clearSearch — Supprime tous les suffixes courants de recherche
  • EventDnsBase::__construct — Construit un objet EventDnsBase
  • EventDnsBase::countNameservers — Récupère le nombre de serveurs de noms configurés
  • EventDnsBase::loadHosts — Charge un fichier hosts (au même format que /etc/hosts)
  • EventDnsBase::parseResolvConf — Analyse le fichier resolv.conf
  • EventDnsBase::setOption — Définit la valeur d'une option de configuration
  • EventDnsBase::setSearchNdots — Définit le paramètre 'ndots' pour les recherches


Ajoute un serveur de noms à la base DNS

  • « EventDnsBase
  • EventDnsBase::addSearch »
  • PHP Manual
  • EventDnsBase
  • Ajoute un serveur de noms à la base DNS

EventDnsBase::addNameserverIp

(PECL event >= 1.2.6-beta)

EventDnsBase::addNameserverIp — Ajoute un serveur de noms à la base DNS

Description

public bool EventDnsBase::addNameserverIp ( string $ip )

Ajoute un serveur de noms à evdns_base.

Liste de paramètres

ip

La chaîne représentant le serveur de noms ; soit une adresse IPv4, soit une adresse IPv6, soit une adresse IPv4 avec un port (IPv4:Port), soit une adresse IPv6 avec un port ([IPv6]:Port).

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Ajoute un domaine à la liste des domaines utilisés pour la recherche

  • « EventDnsBase::addNameserverIp
  • EventDnsBase::clearSearch »
  • PHP Manual
  • EventDnsBase
  • Ajoute un domaine à la liste des domaines utilisés pour la recherche

EventDnsBase::addSearch

(PECL event >= 1.2.6-beta)

EventDnsBase::addSearch — Ajoute un domaine à la liste des domaines utilisés pour la recherche

Description

public void EventDnsBase::addSearch ( string $domain )

Ajoute un domaine à la liste des domaines utilisés pour la recherche.

Liste de paramètres

domain

Le domaine à ajouter pour la recherche.

Valeurs de retour

Aucune valeur n'est retournée.


Supprime tous les suffixes courants de recherche

  • « EventDnsBase::addSearch
  • EventDnsBase::__construct »
  • PHP Manual
  • EventDnsBase
  • Supprime tous les suffixes courants de recherche

EventDnsBase::clearSearch

(PECL event >= 1.2.6-beta)

EventDnsBase::clearSearch — Supprime tous les suffixes courants de recherche

Description

public void EventDnsBase::clearSearch ( void )

Supprime tous les suffixes courants de recherche depuis la base DNS ; la méthode EventDnsBase::addSearch() ajoute un suffixe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventDnsBase::addSearch() - Ajoute un domaine à la liste des domaines utilisés pour la recherche


Construit un objet EventDnsBase

  • « EventDnsBase::clearSearch
  • EventDnsBase::countNameservers »
  • PHP Manual
  • EventDnsBase
  • Construit un objet EventDnsBase

EventDnsBase::__construct

(PECL event >= 1.2.6-beta)

EventDnsBase::__construct — Construit un objet EventDnsBase

Description

public EventDnsBase::__construct ( EventBase $base , bool $initialize )

Construit un objet EventDnsBase.

Liste de paramètres

base

Evénement de base.

initialize

Si l'argument initialize vaut TRUE, il tentera de configurer la sensibilité de base du DNS fournie par le système opérant. Sinon, il laissera l'événement de base DNS vide, avec aucun serveur de noms ou options de configuré. Plus tard, la base du DNS devra être configurée manuellement, i.e. avec la méthode EventDnsBase::parseResolvConf().

Valeurs de retour

Retourne un objet EventDnsBase.


Récupère le nombre de serveurs de noms configurés

  • « EventDnsBase::__construct
  • EventDnsBase::loadHosts »
  • PHP Manual
  • EventDnsBase
  • Récupère le nombre de serveurs de noms configurés

EventDnsBase::countNameservers

(PECL event >= 1.2.6-beta)

EventDnsBase::countNameservers — Récupère le nombre de serveurs de noms configurés

Description

public int EventDnsBase::countNameservers ( void )

Récupère le nombre de serveurs de noms configurés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de serveurs de noms configurés (pas nécessairement le nombre de serveurs de noms en cours de fonctionnement). Ceci est utile pour vérifier si nos appels aux diverses fonctions de configuration des serveurs de noms ont réussi ou non.


Charge un fichier hosts (au même format que /etc/hosts)

  • « EventDnsBase::countNameservers
  • EventDnsBase::parseResolvConf »
  • PHP Manual
  • EventDnsBase
  • Charge un fichier hosts (au même format que /etc/hosts)

EventDnsBase::loadHosts

(PECL event >= 1.2.6-beta)

EventDnsBase::loadHosts — Charge un fichier hosts (au même format que /etc/hosts)

Description

public bool EventDnsBase::loadHosts ( string $hosts )

Charge un fichier hosts (au même format que /etc/hosts).

Liste de paramètres

hosts

Chemin vers le fichier hosts.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Analyse le fichier resolv.conf

  • « EventDnsBase::loadHosts
  • EventDnsBase::setOption »
  • PHP Manual
  • EventDnsBase
  • Analyse le fichier resolv.conf

EventDnsBase::parseResolvConf

(PECL event >= 1.2.6-beta)

EventDnsBase::parseResolvConf — Analyse le fichier resolv.conf

Description

public bool EventDnsBase::parseResolvConf ( int $flags , string $filename )

Analyse le fichier resolv.conf, et y lit toutes les options pprésentes.

Liste de paramètres

flags

Détermine les informations à analyser depuis le fichier resolv.conf. Voir la page du manuel système du fichier resolv.conf pour connaitre son format.

Les directives suivantes ne sont pas analysées dans le fichier : sortlist, rotate, no-check-names, inet6, debug.

Si cette fonction rencontre une erreur, les valeurs retournées possibles sont :

  • 1 = échec lors de l'ouverture du fichier
  • 2 = échec lors de la récupération des informations du fichier
  • 3 = fichier trop grand
  • 4 = dépassement mémoire
  • 5 = lecture trop courte du fichier
  • 6 = aucun serveur de noms listé dans le fichier

filename

Chemin vers le fichier resolv.conf.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Définit la valeur d'une option de configuration

  • « EventDnsBase::parseResolvConf
  • EventDnsBase::setSearchNdots »
  • PHP Manual
  • EventDnsBase
  • Définit la valeur d'une option de configuration

EventDnsBase::setOption

(PECL event >= 1.2.6-beta)

EventDnsBase::setOption — Définit la valeur d'une option de configuration

Description

public bool EventDnsBase::setOption ( string $option , string $value )

Définit la valeur d'une option de configuration.

Liste de paramètres

option

Les options de configuration actuellement disponibles sont : "ndots", "timeout", "max-timeouts", "max-inflight" et "attempts".

value

La valeur de l'option.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Définit le paramètre 'ndots' pour les recherches

  • « EventDnsBase::setOption
  • EventHttp »
  • PHP Manual
  • EventDnsBase
  • Définit le paramètre 'ndots' pour les recherches

EventDnsBase::setSearchNdots

(PECL event >= 1.2.6-beta)

EventDnsBase::setSearchNdots — Définit le paramètre 'ndots' pour les recherches

Description

public bool EventDnsBase::setSearchNdots ( int $ndots )

Définit le paramètre 'ndots' pour les recherches. Définit le nombre de points qui, lorsqu'ils sont trouvés dans un nom, fait que la première requête se déroule sans recherche de domaine.

Liste de paramètres

ndots

Le nombre de points.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


La classe EventHttp

(PECL event >= 1.4.0-beta)

Introduction

Représente le serveur HTTP.

Synopsis de la classe

final EventHttp {
/* Méthodes */
public bool accept ( mixed $socket )
public bool addServerAlias ( string $alias )
public void bind ( string $address , int $port )
public __construct ( EventBase $base [, EventSslContext $ctx = NULL ] )
public bool removeServerAlias ( string $alias )
public void setAllowedMethods ( int $methods )
public void setCallback ( string $path , string $cb [, string $arg ] )
public void setDefaultCallback ( string $cb [, string $arg ] )
public void setMaxBodySize ( int $value )
public void setMaxHeadersSize ( int $value )
public void setTimeout ( int $value )
}

Sommaire

  • EventHttp::accept — Autorise un serveur HTTP à accepter les connexions sur le socket ou la ressource spécifiée
  • EventHttp::addServerAlias — Ajoute un alias du serveur pour l'objet serveur HTTP
  • EventHttp::bind — Lie un serveur HTTP sur une adresse et un port spécifiés
  • EventHttp::__construct — Construit un objet EventHttp (le serveur HTTP)
  • EventHttp::removeServerAlias — Supprime un alias sur le serveur
  • EventHttp::setAllowedMethods — Définit les méthodes HTTP supportées et acceptées dans les requêtes sur ce serveur, et passées aux fonctions de rappel utilisateurs
  • EventHttp::setCallback — Définit une fonction de rapppel pour une URI spécifique
  • EventHttp::setDefaultCallback — Définit la fonction de rappel par défaut pour gérer les requêtes qui ne sont pas attrappées par des fonctions de rappel spécifiques
  • EventHttp::setMaxBodySize — Définit la taille maximale du corps de la demande
  • EventHttp::setMaxHeadersSize — Définit la taille maximale des en-têtes HTTP
  • EventHttp::setTimeout — Définit le délai d'attente maximal pour une requête HTTP


Autorise un serveur HTTP à accepter les connexions sur le socket ou la ressource spécifiée

  • « EventHttp
  • EventHttp::addServerAlias »
  • PHP Manual
  • EventHttp
  • Autorise un serveur HTTP à accepter les connexions sur le socket ou la ressource spécifiée

EventHttp::accept

(PECL event >= 1.2.6-beta)

EventHttp::accept — Autorise un serveur HTTP à accepter les connexions sur le socket ou la ressource spécifiée

Description

public bool EventHttp::accept ( mixed $socket )

Autorise un serveur HTTP à accepter les connexions sur le socket ou la ressource spécifiée. Le socket doit être prêt à accepter les connexions.

Peut être appelé plusieurs fois pour accepter les connexions sur différents sockets.

Note:

Pour lier un socket, une connexion listen et une connexion accept sur le socket en un seul appel, utilisez la méthode EventHttp::bind(). EventHttp::accept() n'est nécessaire que si un socket est prêt à accepter les connexions.

Liste de paramètres

socket

Socket, flux, ou descripteur numérique de fichier représentant un socket prêt à accepter les connexions.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec EventHttp::accept()

<?php
$base = new EventBase();
$http = new EventHttp($base);

$addresses = array (
     8091 => "127.0.0.1",
     8092 => "127.0.0.2",
);
$i = 0;

$socket = array();

foreach ($addresses as $port => $ip) {
    echo $ip, " ", $port, PHP_EOL;
    $socket[$i] = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    if (!socket_bind($socket[$i], $ip, $port)) {
        exit("échec de socket_bind\n");
    }
    socket_listen($socket[$i], 0);
    socket_set_nonblock($socket[$i]);

    if (!$http->accept($socket[$i])) {
        echo "L'acceptation a échouée\n";
        exit(1);
    }

    ++$i;
}

$http->setCallback("/some-page", function() {
 echo "(some-page)\n";
    echo "URI : ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
    echo "OK\n";
});

$http->setDefaultCallback(function($req) {
    echo "URI : ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
    echo "OK\n";
});

$signal = Event::signal($base, SIGINT, function () use ($base) {
    echo "SIGINT reçu. Arrêt...\n";
    $base->stop();
});
$signal->add();

$base->dispatch();
echo "END\n";

// Nous ne fermons pas les sockets, sachant que Libevent définit
// déjà les drapeaux CLOSE_ON_FREE et CLOSE_ON_EXEC sur le descripteur
// de fichier avec les sockets.
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Client:
$ nc 127.0.0.1 8091
GET /about HTTP/1.0
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Server:
127.0.0.1 8091
127.0.0.2 8092
URI : /about
OK

Voir aussi

  • EventHttp::bind() - Lie un serveur HTTP sur une adresse et un port spécifiés


Ajoute un alias du serveur pour l'objet serveur HTTP

  • « EventHttp::accept
  • EventHttp::bind »
  • PHP Manual
  • EventHttp
  • Ajoute un alias du serveur pour l'objet serveur HTTP

EventHttp::addServerAlias

(PECL event >= 1.4.0-beta)

EventHttp::addServerAlias — Ajoute un alias du serveur pour l'objet serveur HTTP

Description

public bool EventHttp::addServerAlias ( string $alias )

Ajoute un alias du serveur pour l'objet serveur HTTP.

Liste de paramètres

alias

L'alias à ajouter.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec EventHttp::addServerAlias()

<?php
$base = new EventBase();
$http = new EventHttp($base);

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$http->bind("127.0.0.1", 8088)) {
    exit("bind(1) a échoué\n");
};

if (!$http->addServerAlias("local.net")) {
    exit("Impossible d'ajouter l'alias du serveur\n");
}

$http->setCallback("/about", function($req) {
    echo "URI : ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
});
$base->dispatch();
?>

Voir aussi

  • EventHttp::removeServerAlias() - Supprime un alias sur le serveur


Lie un serveur HTTP sur une adresse et un port spécifiés

  • « EventHttp::addServerAlias
  • EventHttp::__construct »
  • PHP Manual
  • EventHttp
  • Lie un serveur HTTP sur une adresse et un port spécifiés

EventHttp::bind

(PECL event >= 1.2.6-beta)

EventHttp::bind — Lie un serveur HTTP sur une adresse et un port spécifiés

Description

public void EventHttp::bind ( string $address , int $port )

Lie un serveur HTTP sur une adresse et un port spécifiés.

Peut être appelée plusieurs fois pour lier le même serveur HTTP sur plusieurs ports.

Liste de paramètres

address

Une chaîne de caractères contenant l'adresse IP à écouter.

port

Le numéro de port sur lequel l'écoute s'effectuera.

Valeurs de retour

Returns TRUE on success. Otherwise FALSE.

Exemples

Exemple #1 Exemple avec EventHttp::bind()

<?php
$base = new EventBase();
$http = new EventHttp($base);

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$http->bind("127.0.0.1", 8088)) {
    exit("bind(1) a échoué\n");
};
if (!$http->bind("127.0.0.1", 8089)) {
    exit("bind(2) a échoué\n");

};

$http->setCallback("/about", function($req) {
    echo "URI : ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
    echo "OK\n";
});

$base->dispatch();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Client:

$ nc 127.0.0.1 8088
GET /about HTTP/1.0
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

$ nc 127.0.0.1 8089
GET /unknown HTTP/1.0
Connection: close

HTTP/1.1 404 Not Found
Content-Type: text/html
Date: Wed, 13 Mar 2013 04:14:41 GMT
Content-Length: 149
Connection: close

<html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL /unknown was not found on this server.</p></body></html>

Server:
URI: /about
OK

Voir aussi

  • EventHttp::accept() - Autorise un serveur HTTP à accepter les connexions sur le socket ou la ressource spécifiée


Construit un objet EventHttp (le serveur HTTP)

  • « EventHttp::bind
  • EventHttp::removeServerAlias »
  • PHP Manual
  • EventHttp
  • Construit un objet EventHttp (le serveur HTTP)

EventHttp::__construct

(PECL event >= 1.2.6-beta)

EventHttp::__construct — Construit un objet EventHttp (le serveur HTTP)

Description

public EventHttp::__construct ( EventBase $base [, EventSslContext $ctx = NULL ] )

Construit l'objet serveur HTTP.

Liste de paramètres

base

Evénement de base associé.

ctx

L'objet de la classe EventSslContext. Transforme un serveur HTTP en un serveur HTTPS. Cela signifie que si le paramètre ctx est configuré correctement, alors le buffer d'événements sous-jacent ser abasé sur des sockets OpenSSL. Aussi, tout le trafic passera via SSL ou TLS.

Note:

Ce paramètre n'est disponible que si Event a été compilé avec le support d'OpenSSL, et seulement à partir de la version Libevent 2.1.0-alpha ou supérieures.

Valeurs de retour

Retourne un objet EventHttp.

Historique

Version | Description
1.9.0 | Ajout du support d'OpenSSL (ctx).

Exemples

Exemple #1 Serveur HTTP simple

<?php
/*
 * Serveur HTTP simple.
 *
 * Pour le tester :
 * 1) Exécutez-le sur le port de votre choix, i.e. :
 * $ php examples/http.php 8010
 * 2) Dans un autre terminal, connectez-vous sur une adresse de ce port
 * et effectuez une requête GET ou POST (les autres sont désactivées ici),
 * i.e. :
 * $ nc -t 127.0.0.1 8010
 * POST /about HTTP/1.0
 * Content-Type: text/plain
 * Content-Length: 4
 * Connection: close
 * (press Enter)
 *
 * Il devrait afficher :
 * a=12
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * $ nc -t 127.0.0.1 8010
 * GET /dump HTTP/1.0
 * Content-Type: text/plain
 * Content-Encoding: UTF-8
 * Connection: close
 * (press Enter)
 *
 * Il devrait afficher :
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 * (press Enter)
 *
 * $ nc -t 127.0.0.1 8010
 * GET /unknown HTTP/1.0
 * Connection: close
 *
 * Il devrait afficher :
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * 3) Regardez ce que le serveur affiche sur le précédent terminal.
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 2;

    if (++$counter >= $max_requests)  {
        echo "Counter reached max requests $max_requests. Exiting\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "request:"; var_dump($req);
    echo "data:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Command:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Input headers:"; var_dump($req->getInputHeaders());
    echo "Output headers:"; var_dump($req->getOutputHeaders());

    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    echo "\n >> Reading input buffer ...\n";
    $buf = $req->getInputBuffer();
    while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
        echo $s, PHP_EOL;
    }
    echo "No more data in the buffer\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "custom data value");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a=12
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close
(press Enter)

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close


Supprime un alias sur le serveur

  • « EventHttp::__construct
  • EventHttp::setAllowedMethods »
  • PHP Manual
  • EventHttp
  • Supprime un alias sur le serveur

EventHttp::removeServerAlias

(PECL event >= 1.4.0-beta)

EventHttp::removeServerAlias — Supprime un alias sur le serveur

Description

public bool EventHttp::removeServerAlias ( string $alias )

Supprime un alias sur le serveur, précédemment ajouté avec la méthode EventHttp::addServerAlias()

Liste de paramètres

alias

L'alias à supprimer.

Valeurs de retour

Retourne TRUE en cas de succès, FALSEsinon.

Voir aussi

  • EventHttp::addServerAlias() - Ajoute un alias du serveur pour l'objet serveur HTTP


Définit les méthodes HTTP supportées et acceptées dans les requêtes sur ce serveur, et passées aux fonctions de rappel utilisateurs

  • « EventHttp::removeServerAlias
  • EventHttp::setCallback »
  • PHP Manual
  • EventHttp
  • Définit les méthodes HTTP supportées et acceptées dans les requêtes sur ce serveur, et passées aux fonctions de rappel utilisateurs

EventHttp::setAllowedMethods

(PECL event >= 1.4.0-beta)

EventHttp::setAllowedMethods — Définit les méthodes HTTP supportées et acceptées dans les requêtes sur ce serveur, et passées aux fonctions de rappel utilisateurs

Description

public void EventHttp::setAllowedMethods ( int $methods )

Définit les méthodes HTTP supportées et acceptées dans les requêtes sur ce serveur, et passées aux fonctions de rappel utilisateurs.

Si non supportées, elles génèreront une réponse "405 Method not allowed".

Par défaut, les méthodes suivantes sont incluses : GET, POST, HEAD, PUT, et DELETE. Voir les constantes EventHttpRequest::CMD_*.

Liste de paramètres

methods

Un masque de constantes EventHttpRequest::CMD_*.

Valeurs de retour

Aucune valeur n'est retournée.


Définit une fonction de rapppel pour une URI spécifique

  • « EventHttp::setAllowedMethods
  • EventHttp::setDefaultCallback »
  • PHP Manual
  • EventHttp
  • Définit une fonction de rapppel pour une URI spécifique

EventHttp::setCallback

(PECL event >= 1.4.0-beta)

EventHttp::setCallback — Définit une fonction de rapppel pour une URI spécifique

Description

public void EventHttp::setCallback ( string $path , string $cb [, string $arg ] )

Définit une fonction de rapppel pour une URI spécifique.

Liste de paramètres

path

L'URI pour laquelle la fonction de rappel doit être invoquée.

cb

La fonction de rappel callable qui sera invoquée lors d'une demande sur l'URI path. Elle doit correspondre au prototype suivant :

void callback ([ EventHttpRequest $req = NULL [, mixed $arg = NULL ]] )

req

Un objet EventHttpRequest.

arg

Données personnalisées.

arg

Données personnalisées.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec EventHttp::setCallback()

<?php
/*
 * Serveur HTTP simple.
 *
 * Pour le tester :
 * 1) Exécutez-le sur le port de votre choix, i.e. :
 * $ php examples/http.php 8010
 * 2) Dans un autre terminal, connectez-vous sur une adresse de ce port
 * et réalisez une requête GET ou POST (les autres sont désactivées ici), i.e.:
 * $ nc -t 127.0.0.1 8010
 * POST /about HTTP/1.0
 * Content-Type: text/plain
 * Content-Length: 4
 * Connection: close
 * (press Enter)
 *
 * Il devrait afficher :
 * a=12
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * 3) Voir ce qu'affiche le serveur sur le précédent terminal.
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 2;

    if (++$counter >= $max_requests)  {
        echo "Counter reached max requests $max_requests. Exiting\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "request:"; var_dump($req);
    echo "data:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Command:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Input headers:"; var_dump($req->getInputHeaders());
    echo "Output headers:"; var_dump($req->getOutputHeaders());

    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    echo "\n >> Reading input buffer ...\n";
    $buf = $req->getInputBuffer();
    while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
        echo $s, PHP_EOL;
    }
    echo "No more data in the buffer\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "custom data value");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

a=12
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Voir aussi

  • EventHttp::setDefaultCallback() - Définit la fonction de rappel par défaut pour gérer les requêtes qui ne sont pas attrappées par des fonctions de rappel spécifiques


Définit la fonction de rappel par défaut pour gérer les requêtes qui ne sont pas attrappées par des fonctions de rappel spécifiques

  • « EventHttp::setCallback
  • EventHttp::setMaxBodySize »
  • PHP Manual
  • EventHttp
  • Définit la fonction de rappel par défaut pour gérer les requêtes qui ne sont pas attrappées par des fonctions de rappel spécifiques

EventHttp::setDefaultCallback

(PECL event >= 1.4.0-beta)

EventHttp::setDefaultCallback — Définit la fonction de rappel par défaut pour gérer les requêtes qui ne sont pas attrappées par des fonctions de rappel spécifiques

Description

public void EventHttp::setDefaultCallback ( string $cb [, string $arg ] )

Définit la fonction de rappel par défaut pour gérer les requêtes qui ne sont pas attrappées par des fonctions de rappel spécifiques.

Liste de paramètres

cb

La fonction de rappel de type callable. Elle doit correspondre au prototype suivant :

void callback ([ EventHttpRequest $req = NULL [, mixed $arg = NULL ]] )

req

EventHttpRequest Objet.

arg

Données personnalisées.

arg

Données personnalisées fournies par l'utilisateur à la fonction de rappel.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec EventHttp::setDefaultCallback()

<?php
$base = new EventBase();
$http = new EventHttp($base);

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$http->bind("127.0.0.1", 8088)) {
    exit("Échec de bind(1)\n");
};

$http->setDefaultCallback(function($req) {
    echo "URI : ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
});

$base->dispatch();
?>

Voir aussi

  • EventHttp::setCallback() - Définit une fonction de rapppel pour une URI spécifique


Définit la taille maximale du corps de la demande

  • « EventHttp::setDefaultCallback
  • EventHttp::setMaxHeadersSize »
  • PHP Manual
  • EventHttp
  • Définit la taille maximale du corps de la demande

EventHttp::setMaxBodySize

(PECL event >= 1.4.0-beta)

EventHttp::setMaxBodySize — Définit la taille maximale du corps de la demande

Description

public void EventHttp::setMaxBodySize ( int $value )

Définit la taille maximale du corps de la demande.

Liste de paramètres

value

La taille du corps, en octets.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventHttp::setMaxHeadersSize() - Définit la taille maximale des en-têtes HTTP


Définit la taille maximale des en-têtes HTTP

  • « EventHttp::setMaxBodySize
  • EventHttp::setTimeout »
  • PHP Manual
  • EventHttp
  • Définit la taille maximale des en-têtes HTTP

EventHttp::setMaxHeadersSize

(PECL event >= 1.4.0-beta)

EventHttp::setMaxHeadersSize — Définit la taille maximale des en-têtes HTTP

Description

public void EventHttp::setMaxHeadersSize ( int $value )

Définit la taille maximale des en-têtes HTTP.

Liste de paramètres

value

La taille maximale des en-têtes, en octets.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventHttp::setMaxHeadersSize()


Définit le délai d'attente maximal pour une requête HTTP

  • « EventHttp::setMaxHeadersSize
  • EventHttpConnection »
  • PHP Manual
  • EventHttp
  • Définit le délai d'attente maximal pour une requête HTTP

EventHttp::setTimeout

(PECL event >= 1.4.0-beta)

EventHttp::setTimeout — Définit le délai d'attente maximal pour une requête HTTP

Description

public void EventHttp::setTimeout ( int $value )

Définit le délai d'attente maximal pour une requête HTTP.

Liste de paramètres

value

Le délai d'attente maximal, en secondes.

Valeurs de retour

Aucune valeur n'est retournée.


La classe EventHttpConnection

(PECL event >= 1.4.0-beta)

Introduction

Représente une connexion HTTP.

Synopsis de la classe

EventHttpConnection {
/* Méthodes */
public __construct ( EventBase $base , EventDnsBase $dns_base , string $address , int $port [, EventSslContext $ctx = NULL ] )
public EventBase getBase ( void )
public void getPeer ( string &$address , int &$port )
public bool makeRequest ( EventHttpRequest $req , int $type , string $uri )
public void setCloseCallback ( callable $callback [, mixed $data ] )
public void setLocalAddress ( string $address )
public void setLocalPort ( int $port )
public void setMaxBodySize ( string $max_size )
public void setMaxHeadersSize ( string $max_size )
public void setRetries ( int $retries )
public void setTimeout ( int $timeout )
}

Sommaire

  • EventHttpConnection::__construct — Construit un objet EventHttpConnection
  • EventHttpConnection::getBase — Retourne la base d'événement associée avec la connexion
  • EventHttpConnection::getPeer — Récupère l'adresse et le port distant associés avec la connexion
  • EventHttpConnection::makeRequest — Effectue une requête HTTP sur la connexion spécifiée
  • EventHttpConnection::setCloseCallback — Défini une fonction de rappel lors de la fermeture de la connexion
  • EventHttpConnection::setLocalAddress — Définit l'adresse IP depuis laquelle les connexions HTTP sont effectuées
  • EventHttpConnection::setLocalPort — Définit le port local depuis lequel les connexions sont effectuées
  • EventHttpConnection::setMaxBodySize — Définit la taille maximale du corps pour la connexion
  • EventHttpConnection::setMaxHeadersSize — Définit la taille maximale des en-têtes
  • EventHttpConnection::setRetries — Définit le nombre de tentatives pour la connexion
  • EventHttpConnection::setTimeout — Définit le délai d'attente maximal pour la connexion


Construit un objet EventHttpConnection

  • « EventHttpConnection
  • EventHttpConnection::getBase »
  • PHP Manual
  • EventHttpConnection
  • Construit un objet EventHttpConnection

EventHttpConnection::__construct

(PECL event >= 1.2.6-beta)

EventHttpConnection::__construct — Construit un objet EventHttpConnection

Description

public EventHttpConnection::__construct ( EventBase $base , EventDnsBase $dns_base , string $address , int $port [, EventSslContext $ctx = NULL ] )

Construit un objet EventHttpConnection.

Liste de paramètres

base

Base d'événement associé.

dns_base

Si vaut NULL, la résolution du nom d'hôte sera bloquante.

address

L'adresse de connexion.

port

Le port de connexion.

ctx

L'objet de la classe EventSslContext. Active OpenSSL.

Note:

Ce paramètre n'est disponible que si Event a été compilé avec le support OpenSSL, et uniquement avec la version Libevent 2.1.0-alpha et supérieures.

Valeurs de retour

Retourne un objet EventHttpConnection.

Historique

Version | Description
1.9.0 | Ajout du support d'OpenSSL (ctx).


Retourne la base d'événement associée avec la connexion

  • « EventHttpConnection::__construct
  • EventHttpConnection::getPeer »
  • PHP Manual
  • EventHttpConnection
  • Retourne la base d'événement associée avec la connexion

EventHttpConnection::getBase

(PECL event >= 1.2.6-beta)

EventHttpConnection::getBase — Retourne la base d'événement associée avec la connexion

Description

public EventBase EventHttpConnection::getBase ( void )

Retourne la base d'événement associée avec la connexion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'objet EventBase associé avec la connexion en cas de succès, FALSE sinon.


Récupère l'adresse et le port distant associés avec la connexion

  • « EventHttpConnection::getBase
  • EventHttpConnection::makeRequest »
  • PHP Manual
  • EventHttpConnection
  • Récupère l'adresse et le port distant associés avec la connexion

EventHttpConnection::getPeer

(PECL event >= 1.2.6-beta)

EventHttpConnection::getPeer — Récupère l'adresse et le port distant associés avec la connexion

Description

public void EventHttpConnection::getPeer ( string &$address , int &$port )

Récupère l'adresse et le port distant associés avec la connexion.

Liste de paramètres

address

Adresse du pair.

port

Port du pair.

Valeurs de retour

Aucune valeur n'est retournée.


Effectue une requête HTTP sur la connexion spécifiée

  • « EventHttpConnection::getPeer
  • EventHttpConnection::setCloseCallback »
  • PHP Manual
  • EventHttpConnection
  • Effectue une requête HTTP sur la connexion spécifiée

EventHttpConnection::makeRequest

(PECL event >= 1.4.0-beta)

EventHttpConnection::makeRequest — Effectue une requête HTTP sur la connexion spécifiée

Description

public bool EventHttpConnection::makeRequest ( EventHttpRequest $req , int $type , string $uri )

Effectue une requête HTTP sur la connexion spécifiée. Le paramètre type sera une constante EventHttpRequest::CMD_*.

Liste de paramètres

req

L'objet représentant la connexion sur laquelle la requête sera envoyée.

type

Une constante EventHttpRequest::CMD_*.

uri

L'URI associé à la requête.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

Exemple #1 Exemple avec EventHttpConnection::makeRequest()

<?php
function _request_handler($req, $base) {
    echo __FUNCTION__, PHP_EOL;

    if (is_null($req)) {
        echo "Timed out\n";
    } else {
        $response_code = $req->getResponseCode();

        if ($response_code == 0) {
            echo "Connexion refusée\n";
        } elseif ($response_code != 200) {
            echo "Réponse inatendue : $response_code\n";
        } else {
            echo "Succès : $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Corps :\n";
            while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
                echo $s, PHP_EOL;
            }
        }
    }

    $base->exit(NULL);
}

$address = "127.0.0.1";
$port = 80;

$base = new EventBase();
$conn = new EventHttpConnection($base, NULL, $address, $port);
$conn->setTimeout(5);
$req = new EventHttpRequest("_request_handler", $base);

$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER);
$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp");

$base->loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

_request_handler
Succès : 200
Corps :
PHP, date:
2013-03-13T20:27:52+05:00

Voir aussi

  • EventHttpRequest::addHeader() - Ajoute un en-tête HTTP aux en-têtes de la requête


Défini une fonction de rappel lors de la fermeture de la connexion

  • « EventHttpConnection::makeRequest
  • EventHttpConnection::setLocalAddress »
  • PHP Manual
  • EventHttpConnection
  • Défini une fonction de rappel lors de la fermeture de la connexion

EventHttpConnection::setCloseCallback

(PECL event >= 1.8.0)

EventHttpConnection::setCloseCallback — Défini une fonction de rappel lors de la fermeture de la connexion

Description

public void EventHttpConnection::setCloseCallback ( callable $callback [, mixed $data ] )

Défini une fonction de rappel lors de la fermeture de la connexion.

Liste de paramètres

callback

Fonction de rappel à appeler lors de la fermeture de la connexion. Doit correspondre au prototype suivant :

void callback ([ EventHttpConnection $conn = NULL [, mixed $arg = NULL ]] )

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec EventHttpConnection::setCloseCallback()

<?php
/*
 * Setting up close-connection callback
 *
 * The script handles closed connections using HTTP API.
 *
 * Usage:
 * 1) Launch the server:
 * $ php examples/http_closecb.php 4242
 *
 * 2) Launch a client in another terminal. Telnet-like
 * session should look like the following:
 *
 * $ nc -t 127.0.0.1 4242
 * GET / HTTP/1.0
 * Connection: close
 *
 * The server will output something similar to the following:
 *
 * HTTP/1.0 200 OK
 * Content-Type: multipart/x-mixed-replace;boundary=boundarydonotcross
 * Connection: close
 *
 * <html>
 *
 * 3) Terminate the client connection abruptly,
 * i.e. kill the process, or just press Ctrl-C.
 *
 * 4) Check if the server called _close_callback.
 * The script should output "_close_callback" string to standard output.
 *
 * 5) Check if the server's process has no orphaned connections,
 * e.g. with `lsof` utility.
 */

function _close_callback($conn)
{
    echo __FUNCTION__, PHP_EOL;
}

function _http_default($req, $dummy)
{
    $conn = $req->getConnection();
    $conn->setCloseCallback('_close_callback', NULL);

    /*
    By enabling Event::READ we protect the server against unclosed conections.
    This is a peculiarity of Libevent. The library disables Event::READ events
     on this connection, and the server is not notified about terminated
    connections.

    So each time client terminates connection abruptly, we get an orphaned
    connection. For instance, the following is a part of `lsof -p $PID | grep TCP`
    command after client has terminated connection:

    57-php     15057 ruslan  6u  unix 0xffff8802fb59c780   0t0  125187 socket
    58:php     15057 ruslan  7u  IPv4             125189   0t0     TCP *:4242 (LISTEN)
    59:php     15057 ruslan  8u  IPv4             124342   0t0     TCP localhost:4242->localhost:37375 (CLOSE_WAIT)

    where $PID is our process ID.

    The following block of code fixes such kind of orphaned connections.
     */
    $bev = $req->getBufferEvent();
    $bev->enable(Event::READ);
    // Nous devons le libérer explicitement. Voir
EventHttpRequest::getConnection()
$bev->free(); // Nous devons le libérer explicitement

    $req->addHeader(
        'Content-Type',
        'multipart/x-mixed-replace;boundary=boundarydonotcross',
        EventHttpRequest::OUTPUT_HEADER
    );

    $buf = new EventBuffer();
    $buf->add('<html>');

    $req->sendReply(200, "OK");
    $req->sendReplyChunk($buf);
}

$port = 4242;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);

$http->setDefaultCallback("_http_default", NULL);
$http->bind("0.0.0.0", $port);
$base->loop();

?>


Définit l'adresse IP depuis laquelle les connexions HTTP sont effectuées

  • « EventHttpConnection::setCloseCallback
  • EventHttpConnection::setLocalPort »
  • PHP Manual
  • EventHttpConnection
  • Définit l'adresse IP depuis laquelle les connexions HTTP sont effectuées

EventHttpConnection::setLocalAddress

(PECL event >= 1.2.6-beta)

EventHttpConnection::setLocalAddress — Définit l'adresse IP depuis laquelle les connexions HTTP sont effectuées

Description

public void EventHttpConnection::setLocalAddress ( string $address )

Définit l'adresse IP depuis laquelle les connexions HTTP sont effectuées.

Liste de paramètres

address

L'adresse IIP depuis laquelle les connexions HTTP sont effectuées.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventHttpConnection::setLocalPort() - Définit le port local depuis lequel les connexions sont effectuées


Définit le port local depuis lequel les connexions sont effectuées

  • « EventHttpConnection::setLocalAddress
  • EventHttpConnection::setMaxBodySize »
  • PHP Manual
  • EventHttpConnection
  • Définit le port local depuis lequel les connexions sont effectuées

EventHttpConnection::setLocalPort

(PECL event >= 1.2.6-beta)

EventHttpConnection::setLocalPort — Définit le port local depuis lequel les connexions sont effectuées

Description

public void EventHttpConnection::setLocalPort ( int $port )

Définit le port local depuis lequel les connexions sont effectuées.

Liste de paramètres

port

Le numéro du port.

Valeurs de retour

Voir aussi

  • EventHttpConnection::setLocalAddress() - Définit l'adresse IP depuis laquelle les connexions HTTP sont effectuées


Définit la taille maximale du corps pour la connexion

  • « EventHttpConnection::setLocalPort
  • EventHttpConnection::setMaxHeadersSize »
  • PHP Manual
  • EventHttpConnection
  • Définit la taille maximale du corps pour la connexion

EventHttpConnection::setMaxBodySize

(PECL event >= 1.2.6-beta)

EventHttpConnection::setMaxBodySize — Définit la taille maximale du corps pour la connexion

Description

public void EventHttpConnection::setMaxBodySize ( string $max_size )

Définit la taille maximale du corps pour la connexion.

Liste de paramètres

max_size

La taille maximale du cors, en octets.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventHttpConnection::setMaxHeadersSize() - Définit la taille maximale des en-têtes


Définit la taille maximale des en-têtes

  • « EventHttpConnection::setMaxBodySize
  • EventHttpConnection::setRetries »
  • PHP Manual
  • EventHttpConnection
  • Définit la taille maximale des en-têtes

EventHttpConnection::setMaxHeadersSize

(PECL event >= 1.2.6-beta)

EventHttpConnection::setMaxHeadersSize — Définit la taille maximale des en-têtes

Description

public void EventHttpConnection::setMaxHeadersSize ( string $max_size )

Définit la taille maximale des en-têtes pour la connexion.

Liste de paramètres

max_size

La taille maximale des en-têtes, en octets.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventHttpConnection::setMaxBodySize() - Définit la taille maximale du corps pour la connexion


Définit le nombre de tentatives pour la connexion

  • « EventHttpConnection::setMaxHeadersSize
  • EventHttpConnection::setTimeout »
  • PHP Manual
  • EventHttpConnection
  • Définit le nombre de tentatives pour la connexion

EventHttpConnection::setRetries

(PECL event >= 1.2.6-beta)

EventHttpConnection::setRetries — Définit le nombre de tentatives pour la connexion

Description

public void EventHttpConnection::setRetries ( int $retries )

Définit le nombre de tentatives pour la connexion.

Liste de paramètres

retries

Le nombre limite de tentatives. -1 signifie indéfiniement.

Valeurs de retour

Aucune valeur n'est retournée.


Définit le délai d'attente maximal pour la connexion

  • « EventHttpConnection::setRetries
  • EventHttpRequest »
  • PHP Manual
  • EventHttpConnection
  • Définit le délai d'attente maximal pour la connexion

EventHttpConnection::setTimeout

(PECL event >= 1.2.6-beta)

EventHttpConnection::setTimeout — Définit le délai d'attente maximal pour la connexion

Description

public void EventHttpConnection::setTimeout ( int $timeout )

Définit le délai d'attente maximal pour la connexion.

Liste de paramètres

timeout

Le délai d'attente maximal, en secondes.

Valeurs de retour

Aucune valeur n'est retournée.


La classe EventHttpRequest

(PECL event >= 1.4.0-beta)

Introduction

Représente une requête HTTP.

Synopsis de la classe

EventHttpRequest {
/* Constants */
const integer CMD_GET = 1 ;
const integer CMD_POST = 2 ;
const integer CMD_HEAD = 4 ;
const integer CMD_PUT = 8 ;
const integer CMD_DELETE = 16 ;
const integer CMD_OPTIONS = 32 ;
const integer CMD_TRACE = 64 ;
const integer CMD_CONNECT = 128 ;
const integer CMD_PATCH = 256 ;
const integer INPUT_HEADER = 1 ;
const integer OUTPUT_HEADER = 2 ;
/* Méthodes */
public bool addHeader ( string $key , string $value , int $type )
public void cancel ( void )
public void clearHeaders ( void )
public void closeConnection ( void )
public __construct ( callable $callback [, mixed $data = NULL ] )
public void findHeader ( string $key , string $type )
public void free ( void )
public EventBufferEvent closeConnection ( void )
public void getCommand ( void )
public EventHttpConnection closeConnection ( void )
public string getHost ( void )
public EventBuffer getInputBuffer ( void )
public array getInputHeaders ( void )
public EventBuffer getOutputBuffer ( void )
public void getOutputHeaders ( void )
public int getResponseCode ( void )
public string getUri ( void )
public void removeHeader ( string $key , string $type )
public void sendError ( int $error [, string $reason = NULL ] )
public void sendReply ( int $code , string $reason [, EventBuffer $buf ] )
public void sendReplyChunk ( EventBuffer $buf )
public void sendReplyEnd ( void )
public void sendReplyStart ( int $code , string $reason )
}

Constantes pré-définies

EventHttpRequest::CMD_GET

méthode GET (commande)

EventHttpRequest::CMD_POST

méthode POST (commande)

EventHttpRequest::CMD_HEAD

méthode HEAD (commande)

EventHttpRequest::CMD_PUT

méthode PUT (commande)

EventHttpRequest::CMD_DELETE

commande DELETE (méthode)

EventHttpRequest::CMD_OPTIONS

méthode OPTIONS (commande)

EventHttpRequest::CMD_TRACE

méthode TRACE (commande)

EventHttpRequest::CMD_CONNECT

méthode CONNECT (commande)

EventHttpRequest::CMD_PATCH

méthode PATCH (commande)

EventHttpRequest::INPUT_HEADER

Demande le type d'en-tête d'entrée.

EventHttpRequest::OUTPUT_HEADER

Demande le type d'en-tête de sortie.

Sommaire

  • EventHttpRequest::addHeader — Ajoute un en-tête HTTP aux en-têtes de la requête
  • EventHttpRequest::cancel — Annule une requête HTTP en attente
  • EventHttpRequest::clearHeaders — Supprime tous les en-têtes depuis la liste des en-têtes de la requête
  • EventHttpRequest::closeConnection — Ferme les connexions HTTP associées
  • EventHttpRequest::__construct — Construit un objet EventHttpRequest
  • EventHttpRequest::findHeader — Cherche la valeur d'un en-tête
  • EventHttpRequest::free — Libère l'objet et supprime les événements associés
  • EventHttpRequest::getBufferEvent — Retourne l'objet EventBufferEvent
  • EventHttpRequest::getCommand — Retourne la commande de la requête (méthode)
  • EventHttpRequest::getConnection — Retourne un objet EventHttpConnection
  • EventHttpRequest::getHost — Retourne l'hôte demandé
  • EventHttpRequest::getInputBuffer — Retourne le buffer d'entrée
  • EventHttpRequest::getInputHeaders — Retourne le tableau associatif contenant les en-têtes d'entrée
  • EventHttpRequest::getOutputBuffer — Retourne le buffer de sortie de la requête
  • EventHttpRequest::getOutputHeaders — Retourne un tableau associatif contenant les en-têtes de sortie
  • EventHttpRequest::getResponseCode — Retourne le code de la réponse
  • EventHttpRequest::getUri — Retourne l'URI de la requête
  • EventHttpRequest::removeHeader — Supprime un en-tête HTTP depuis les en-têtes de la requête
  • EventHttpRequest::sendError — Envoi un message d'erreur HTML au client
  • EventHttpRequest::sendReply — Envoi une réponse HTML au client
  • EventHttpRequest::sendReplyChunk — Envoi un autre bloc de données comme partie d'un bloc de réponse entrant
  • EventHttpRequest::sendReplyEnd — Complète un bloc de réponse, en libérant la requête
  • EventHttpRequest::sendReplyStart — Initialise un bloc de réponse


Ajoute un en-tête HTTP aux en-têtes de la requête

  • « EventHttpRequest
  • EventHttpRequest::cancel »
  • PHP Manual
  • EventHttpRequest
  • Ajoute un en-tête HTTP aux en-têtes de la requête

EventHttpRequest::addHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::addHeader — Ajoute un en-tête HTTP aux en-têtes de la requête

Description

public bool EventHttpRequest::addHeader ( string $key , string $value , int $type )

Ajoute un en-tête HTTP aux en-têtes de la requête.

Liste de paramètres

key

Nom de l'en-tête.

value

Valeur de l'en-tête.

type

Une des constantes EventHttpRequest::*_HEADER.

Valeurs de retour

Retourne TRUE en cas de succès. FALSE sinon.

Voir aussi

  • EventHttpRequest::removeHeader() - Supprime un en-tête HTTP depuis les en-têtes de la requête


Annule une requête HTTP en attente

  • « EventHttpRequest::addHeader
  • EventHttpRequest::clearHeaders »
  • PHP Manual
  • EventHttpRequest
  • Annule une requête HTTP en attente

EventHttpRequest::cancel

(PECL event >= 1.4.0-beta)

EventHttpRequest::cancel — Annule une requête HTTP en attente

Description

public void EventHttpRequest::cancel ( void )

Annule une requête HTTP en attente.

Annule une requête HTTP entrante. La fonction de rappel associée avec cette requête ne sera pas exécutée, et l'objet de la requête, libéré. Si la requête est en cours de traitement, l'objet EventHttpConnection correspondant sera ré-initialisé.

Une requête ne peut être annulée si sa fonction de rappel a déjà été exécutée. Une requête peut être annulée depuis sa fonction de rappel.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Supprime tous les en-têtes depuis la liste des en-têtes de la requête

  • « EventHttpRequest::cancel
  • EventHttpRequest::closeConnection »
  • PHP Manual
  • EventHttpRequest
  • Supprime tous les en-têtes depuis la liste des en-têtes de la requête

EventHttpRequest::clearHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::clearHeaders — Supprime tous les en-têtes depuis la liste des en-têtes de la requête

Description

public void EventHttpRequest::clearHeaders ( void )

Supprime tous les en-têtes depuis la liste des en-têtes de la requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventHttpRequest::addHeader() - Ajoute un en-tête HTTP aux en-têtes de la requête


Ferme les connexions HTTP associées

  • « EventHttpRequest::clearHeaders
  • EventHttpRequest::__construct »
  • PHP Manual
  • EventHttpRequest
  • Ferme les connexions HTTP associées

EventHttpRequest::closeConnection

(PECL event >= 1.8.0)

EventHttpRequest::closeConnection — Ferme les connexions HTTP associées

Description

public void EventHttpRequest::closeConnection ( void )

Ferme les connexions HTTP associées avec la requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Construit un objet EventHttpRequest

  • « EventHttpRequest::closeConnection
  • EventHttpRequest::findHeader »
  • PHP Manual
  • EventHttpRequest
  • Construit un objet EventHttpRequest

EventHttpRequest::__construct

(PECL event >= 1.4.0-beta)

EventHttpRequest::__construct — Construit un objet EventHttpRequest

Description

public EventHttpRequest::__construct ( callable $callback [, mixed $data = NULL ] )

Construit un objet EventHttpRequest.

Liste de paramètres

callback

Fonction de rappel appelée avec le chemin demandé. Doit correspondre au prototype suivant :

void callback ([ EventHttpRequest $req = NULL [, mixed $arg = NULL ]] )
data

Données utilisateur personnalisées à passer à la fonction de rappel.

Valeurs de retour

Retourne un objet EventHttpRequest.

Exemples

Exemple #1 Exemple avec EventHttpRequest::__construct()

<?php

function _request_handler($req, $base) {
    echo __FUNCTION__, PHP_EOL;

    if (is_null($req)) {
        echo "Délai d'exécution maximal atteint\n";
    } else {
        $response_code = $req->getResponseCode();

        if ($response_code == 0) {
            echo "Connexion refusée\n";
        } elseif ($response_code != 200) {
            echo "Réponse innatendue : $response_code\n";
        } else {
            echo "Succès : $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Body:\n";
            while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
                echo $s, PHP_EOL;
            }
        }
    }

    $base->exit(NULL);
}

$address = "127.0.0.1";
$port = 80;

$base = new EventBase();
$conn = new EventHttpConnection($base, NULL, $address, $port);
$conn->setTimeout(5);
$req = new EventHttpRequest("_request_handler", $base);

$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER);
$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp");

$base->loop();
?>

Voir aussi

  • EventHttpRequest::cancel() - Annule une requête HTTP en attente
  • EventHttpRequest::addHeader() - Ajoute un en-tête HTTP aux en-têtes de la requête


Cherche la valeur d'un en-tête

  • « EventHttpRequest::__construct
  • EventHttpRequest::free »
  • PHP Manual
  • EventHttpRequest
  • Cherche la valeur d'un en-tête

EventHttpRequest::findHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::findHeader — Cherche la valeur d'un en-tête

Description

public void EventHttpRequest::findHeader ( string $key , string $type )

Cherche la valeur d'un en-tête.

Liste de paramètres

key

Le nom de l'en-tête.

type

Une des constantes EventHttpRequest::*_HEADER.

Valeurs de retour

Retourne NULL si l'en-tête n'a pas été trouvé.

Voir aussi

  • EventHttpRequest::addHeader() - Ajoute un en-tête HTTP aux en-têtes de la requête


Libère l'objet et supprime les événements associés

  • « EventHttpRequest::findHeader
  • EventHttpRequest::getBufferEvent »
  • PHP Manual
  • EventHttpRequest
  • Libère l'objet et supprime les événements associés

EventHttpRequest::free

(PECL event >= 1.4.0-beta)

EventHttpRequest::free — Libère l'objet et supprime les événements associés

Description

public void EventHttpRequest::free ( void )

Libère l'objet et supprime les événements associés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Retourne l'objet EventBufferEvent

  • « EventHttpRequest::free
  • EventHttpRequest::getCommand »
  • PHP Manual
  • EventHttpRequest
  • Retourne l'objet EventBufferEvent

EventHttpRequest::getBufferEvent

(PECL event >= 1.8.0)

EventHttpRequest::getBufferEvent — Retourne l'objet EventBufferEvent

Description

public EventBufferEvent EventHttpRequest::closeConnection ( void )

Retourne l'objet EventBufferEvent qui représente l'événement de buffer que la connexion utilise.

Avertissement

Le compteur de référence de l'objet retourné sera incrémenté de un pour protéger les structures interne contre des destructions prématurés quand la méthode est appelé depuis une fonction de rappel. L'objet EventBufferEvent doit donc être libéré explicitement via la méthode EventBufferEvent::free(). Sinon il y aura une fuite de mémoire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet EventBufferEvent.

Voir aussi

  • EventHttpRequest::getConnection() - Retourne un objet EventHttpConnection


Retourne la commande de la requête (méthode)

  • « EventHttpRequest::getBufferEvent
  • EventHttpRequest::getConnection »
  • PHP Manual
  • EventHttpRequest
  • Retourne la commande de la requête (méthode)

EventHttpRequest::getCommand

(PECL event >= 1.4.0-beta)

EventHttpRequest::getCommand — Retourne la commande de la requête (méthode)

Description

public void EventHttpRequest::getCommand ( void )

Retourne la commande de la requête ; une des constantes EventHttpRequest::CMD_* .

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la commande de la requête ; une des constantes EventHttpRequest::CMD_* .


Retourne un objet EventHttpConnection

  • « EventHttpRequest::getCommand
  • EventHttpRequest::getHost »
  • PHP Manual
  • EventHttpRequest
  • Retourne un objet EventHttpConnection

EventHttpRequest::getConnection

(PECL event >= 1.8.0)

EventHttpRequest::getConnection — Retourne un objet EventHttpConnection

Description

public EventHttpConnection EventHttpRequest::closeConnection ( void )

Retourne un objet EventHttpConnection qui représente une connexion HTTP associée à la requête.

Avertissement

L'API Libevent autorise les objets de requête HTTP à ne pas être liés à une connexion HTTP. Toutefois, nous ne pouvons pas dissocié EventHttpRequest de EventHttpConnection. Aussi, nous construisons l'objet EventHttpConnection à la volée. Vu que nous n'avons aucune information sur l'événement de vase, la base DNS, ni sur la fonction de rappel associée à la fermeture de la connexion, nous positionnons ces champs indéfinis.

La méthode EventHttpRequest::getConnection() est habituellement utile lorsque nous devons définir une fonction de rappel à associer à la fermeture de la connexion. Voir la méthode EventHttpConnection::setCloseCallback().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet EventHttpConnection.

Voir aussi

  • EventHttpConnection::setCloseCallback() - Défini une fonction de rappel lors de la fermeture de la connexion
  • EventHttpRequest::getBufferEvent() - Retourne l'objet EventBufferEvent


Retourne l'hôte demandé

  • « EventHttpRequest::getConnection
  • EventHttpRequest::getInputBuffer »
  • PHP Manual
  • EventHttpRequest
  • Retourne l'hôte demandé

EventHttpRequest::getHost

(PECL event >= 1.4.0-beta)

EventHttpRequest::getHost — Retourne l'hôte demandé

Description

public string EventHttpRequest::getHost ( void )

Retourne l'hôte demandé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'hôte demandé.

Voir aussi

  • EventHttpRequest::getUri() - Retourne l'URI de la requête
  • EventHttpRequest::getCommand() - Retourne la commande de la requête (méthode)


Retourne le buffer d'entrée

  • « EventHttpRequest::getHost
  • EventHttpRequest::getInputHeaders »
  • PHP Manual
  • EventHttpRequest
  • Retourne le buffer d'entrée

EventHttpRequest::getInputBuffer

(PECL event >= 1.4.0-beta)

EventHttpRequest::getInputBuffer — Retourne le buffer d'entrée

Description

public EventBuffer EventHttpRequest::getInputBuffer ( void )

Retourne le buffer d'entrée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le buffer d'entrée.

Voir aussi

  • EventHttpRequest::getOutputBuffer() - Retourne le buffer de sortie de la requête


Retourne le tableau associatif contenant les en-têtes d'entrée

  • « EventHttpRequest::getInputBuffer
  • EventHttpRequest::getOutputBuffer »
  • PHP Manual
  • EventHttpRequest
  • Retourne le tableau associatif contenant les en-têtes d'entrée

EventHttpRequest::getInputHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::getInputHeaders — Retourne le tableau associatif contenant les en-têtes d'entrée

Description

public array EventHttpRequest::getInputHeaders ( void )

Retourne le tableau associatif contenant les en-têtes d'entrée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le tableau associatif contenant les en-têtes d'entrée.

Voir aussi

  • EventHttpRequest::getOutputHeaders() - Retourne un tableau associatif contenant les en-têtes de sortie


Retourne le buffer de sortie de la requête

  • « EventHttpRequest::getInputHeaders
  • EventHttpRequest::getOutputHeaders »
  • PHP Manual
  • EventHttpRequest
  • Retourne le buffer de sortie de la requête

EventHttpRequest::getOutputBuffer

(PECL event >= 1.4.0-beta)

EventHttpRequest::getOutputBuffer — Retourne le buffer de sortie de la requête

Description

public EventBuffer EventHttpRequest::getOutputBuffer ( void )

Retourne le buffer de sortie de la requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le buffer de sortie de la requête.

Voir aussi

  • EventHttpRequest::getInputBuffer() - Retourne le buffer d'entrée


Retourne un tableau associatif contenant les en-têtes de sortie

  • « EventHttpRequest::getOutputBuffer
  • EventHttpRequest::getResponseCode »
  • PHP Manual
  • EventHttpRequest
  • Retourne un tableau associatif contenant les en-têtes de sortie

EventHttpRequest::getOutputHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::getOutputHeaders — Retourne un tableau associatif contenant les en-têtes de sortie

Description

public void EventHttpRequest::getOutputHeaders ( void )

Retourne un tableau associatif contenant les en-têtes de sortie.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • EventHttpRequest::getInputHeaders() - Retourne le tableau associatif contenant les en-têtes d'entrée


Retourne le code de la réponse

  • « EventHttpRequest::getOutputHeaders
  • EventHttpRequest::getUri »
  • PHP Manual
  • EventHttpRequest
  • Retourne le code de la réponse

EventHttpRequest::getResponseCode

(PECL event >= 1.4.0-beta)

EventHttpRequest::getResponseCode — Retourne le code de la réponse

Description

public int EventHttpRequest::getResponseCode ( void )

Retourne le code de la réponse.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le code de la réponse.

Voir aussi

  • EventHttpRequest::getCommand() - Retourne la commande de la requête (méthode)
  • EventHttpRequest::getHost() - Retourne l'hôte demandé
  • EventHttpRequest::getUri() - Retourne l'URI de la requête


Retourne l'URI de la requête

  • « EventHttpRequest::getResponseCode
  • EventHttpRequest::removeHeader »
  • PHP Manual
  • EventHttpRequest
  • Retourne l'URI de la requête

EventHttpRequest::getUri

(PECL event >= 1.4.0-beta)

EventHttpRequest::getUri — Retourne l'URI de la requête

Description

public string EventHttpRequest::getUri ( void )

Retourne l'URI de la requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'URI de la requête.

Voir aussi

  • EventHttpRequest::getCommand() - Retourne la commande de la requête (méthode)
  • EventHttpRequest::getHost() - Retourne l'hôte demandé
  • EventHttpRequest::getResponseCode() - Retourne le code de la réponse


Supprime un en-tête HTTP depuis les en-têtes de la requête

  • « EventHttpRequest::getUri
  • EventHttpRequest::sendError »
  • PHP Manual
  • EventHttpRequest
  • Supprime un en-tête HTTP depuis les en-têtes de la requête

EventHttpRequest::removeHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::removeHeader — Supprime un en-tête HTTP depuis les en-têtes de la requête

Description

public void EventHttpRequest::removeHeader ( string $key , string $type )

Supprime un en-tête HTTP depuis les en-têtes de la requête.

Liste de paramètres

key

Le nom de l'en-tête.

type

Une constante EventHttpRequest::*_HEADER.

Valeurs de retour

Supprime un en-tête HTTP depuis les en-têtes de la requête.

Voir aussi

  • EventHttpRequest::addHeader() - Ajoute un en-tête HTTP aux en-têtes de la requête


Envoi un message d'erreur HTML au client

  • « EventHttpRequest::removeHeader
  • EventHttpRequest::sendReply »
  • PHP Manual
  • EventHttpRequest
  • Envoi un message d'erreur HTML au client

EventHttpRequest::sendError

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendError — Envoi un message d'erreur HTML au client

Description

public void EventHttpRequest::sendError ( int $error [, string $reason = NULL ] )

Envoi un message d'erreur HTML au client.

Liste de paramètres

error

Le code erreur HTTP.

reason

Une brève explication de l'erreur. Si vaut NULL, la signification standart du code erreur sera utilisée.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec EventHttpRequest::sendError()

<?php
function _http_400($req) {
    $req->sendError(400);
}

$base = new EventBase();
$http = new EventHttp($base);

$http->setCallback("/err400", "_http_400");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

Voir aussi

  • EventHttpRequest::sendReply() - Envoi une réponse HTML au client


Envoi une réponse HTML au client

  • « EventHttpRequest::sendError
  • EventHttpRequest::sendReplyChunk »
  • PHP Manual
  • EventHttpRequest
  • Envoi une réponse HTML au client

EventHttpRequest::sendReply

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReply — Envoi une réponse HTML au client

Description

public void EventHttpRequest::sendReply ( int $code , string $reason [, EventBuffer $buf ] )

Envoi une réponse HTML au client. Le corps de la réponse contient les données du paramètre optionnel buf.

Liste de paramètres

code

Le code réponse HTTP à envoyer.

reason

Un bref message à envoyer avec le code réponse.

buf

Le corps de la réponse.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventHttpRequest::sendError() - Envoi un message d'erreur HTML au client
  • EventHttpRequest::sendReplyChunk() - Envoi un autre bloc de données comme partie d'un bloc de réponse entrant


Envoi un autre bloc de données comme partie d'un bloc de réponse entrant

  • « EventHttpRequest::sendReply
  • EventHttpRequest::sendReplyEnd »
  • PHP Manual
  • EventHttpRequest
  • Envoi un autre bloc de données comme partie d'un bloc de réponse entrant

EventHttpRequest::sendReplyChunk

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyChunk — Envoi un autre bloc de données comme partie d'un bloc de réponse entrant

Description

public void EventHttpRequest::sendReplyChunk ( EventBuffer $buf )

Envoi un autre bloc de données comme partie d'un bloc de réponse entrant. Après l'appel de cette méthode, le paramètre buf sera vide.

Liste de paramètres

buf

Le bloc de données à envoyer comme partie de la réponse.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventHttpRequest::sendReplyStart() - Initialise un bloc de réponse
  • EventHttpRequest::sendReplyEnd() - Complète un bloc de réponse, en libérant la requête


Complète un bloc de réponse, en libérant la requête

  • « EventHttpRequest::sendReplyChunk
  • EventHttpRequest::sendReplyStart »
  • PHP Manual
  • EventHttpRequest
  • Complète un bloc de réponse, en libérant la requête

EventHttpRequest::sendReplyEnd

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyEnd — Complète un bloc de réponse, en libérant la requête

Description

public void EventHttpRequest::sendReplyEnd ( void )

Complète un bloc de réponse, en libérant la requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventHttpRequest::sendReplyStart() - Initialise un bloc de réponse
  • EventHttpRequest::sendReplyChunk() - Envoi un autre bloc de données comme partie d'un bloc de réponse entrant


Initialise un bloc de réponse

  • « EventHttpRequest::sendReplyEnd
  • EventListener »
  • PHP Manual
  • EventHttpRequest
  • Initialise un bloc de réponse

EventHttpRequest::sendReplyStart

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyStart — Initialise un bloc de réponse

Description

public void EventHttpRequest::sendReplyStart ( int $code , string $reason )

Initialise une réponse qui utilise les en-têtes Transfer-Encoding chunked.

Ceci permet l'appelant à diffuser la réponse au client, et est utile lorsque toutes les données de la réponse ne sont pas immédiatement disponibles, ou bien lors d'envoi de réponses trop volumineuses.

L'appelant doit fournir les blocs de données avec la méthode EventHttpRequest::sendReplyChunk() et compléter la réponse en appelant la méthode EventHttpRequest::sendReplyEnd().

Liste de paramètres

code

Le code réponse HTTP à envoyer.

reason

Un bref message à envoyer avec le code réponse.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • EventHttpRequest::sendReplyChunk() - Envoi un autre bloc de données comme partie d'un bloc de réponse entrant
  • EventHttpRequest::sendReplyEnd() - Complète un bloc de réponse, en libérant la requête


La classe EventListener

(PECL event >= 1.5.0)

Introduction

Représente une écoute de connexion.

Synopsis de la classe

final EventListener {
/* Constants */
const integer OPT_LEAVE_SOCKETS_BLOCKING = 1 ;
const integer OPT_CLOSE_ON_FREE = 2 ;
const integer OPT_CLOSE_ON_EXEC = 4 ;
const integer OPT_REUSEABLE = 8 ;
const integer OPT_THREADSAFE = 16 ;
/* Propriétés */
public readonly int $fd ;
/* Méthodes */
public __construct ( EventBase $base , callable $cb , mixed $data , int $flags , int $backlog , mixed $target )
public bool disable ( void )
public bool enable ( void )
public void getBase ( void )
public static bool getSocketName ( string &$address [, mixed &$port ] )
public void setCallback ( callable $cb [, mixed $arg = NULL ] )
public void setErrorCallback ( string $cb )
}

Propriétés

fd

Descripteur de fichier numérique du socket sous-jacent (Ajout en event-1.6.0).

Constantes pré-définies

EventListener::OPT_LEAVE_SOCKETS_BLOCKING

Par défaut, Libevent passe en mode non bloquant les descripteurs de fichiers ou sockets sous-jacents. Ce drapeau indique de les laisser non bloquant.

EventListener::OPT_CLOSE_ON_FREE

Si cette option est définie, l'écoute de la connexion ferme son socket sous-jacent lorsque l'objet EventListener est libéré.

EventListener::OPT_CLOSE_ON_EXEC

Si cette option est définie, l'écoute de la connexion définit le drapeau de fermeture à l'exécution sur le socket d'écoute sous-jacent. Voir la documentation de la plateforme pour plus d'informations sur fcntl et FD_CLOEXEC.

EventListener::OPT_REUSEABLE

Par défaut sur quelques plateformes, une fois qu'un socket d'écoute est fermé, aucun autre socket ne peut être lié sur le même port tant qu'un certain temps ne s'est pas écoulé. Le fait de définir cette option fait que Libevent va marquer ce socket comme réutilisable, aussi, une fois clos, un autre socket peut être ouvert pour écouter le même port.

EventListener::OPT_THREADSAFE

Verrouillage de l'allocation pour l'écouteur ; ainsi, il est sécurisé de l'utiliser depuis plusieurs threads.

Sommaire

  • EventListener::__construct — Crée un nouvel écouteur de connexion associé avec la base d'événement
  • EventListener::disable — Désactive un objet d'écoute d'événement de connexion
  • EventListener::enable — Active un objet d'écoute d'événement de connexion
  • EventListener::getBase — Retourne la base d'événement associée avec l'écouteur d'événements
  • EventListener::getSocketName — Récupère l'adresse courant pour laquelle le socket d'écoute est lié
  • EventListener::setCallback — Le but de setCallback
  • EventListener::setErrorCallback — Définit la fonction de rappel sur l'évènement d'erreur


Crée un nouvel écouteur de connexion associé avec la base d'événement

  • « EventListener
  • EventListener::disable »
  • PHP Manual
  • EventListener
  • Crée un nouvel écouteur de connexion associé avec la base d'événement

EventListener::__construct

(PECL event >= 1.2.6-beta)

EventListener::__construct — Crée un nouvel écouteur de connexion associé avec la base d'événement

Description

public EventListener::__construct ( EventBase $base , callable $cb , mixed $data , int $flags , int $backlog , mixed $target )

Crée un nouvel écouteur de connexion associé avec la base d'événement.

Liste de paramètres

base

Base d'événement associée.

cb

Un callable qui sera invoqué lorsqu'une nouvelle connexion sera reçue.

data

Données utilisateur personnalisées attachées au paramètre cb.

flags

Un masque de constantes EventListener::OPT_*. Voir les constantes EventListener.

backlog

Contrôle le nombre maximal de connexions en attente que la pile réseau autorise à patienter dans un statut "non encore accepté" ; voir la documentation de la fonction listen de votre système pour plus de détails. Si le paramètre backlog est négatif, Libevent tente de récupérer une bonne valeur pour ce paramètre ; s'il vaut zéro, Event présume que la fonction système listen a déjà été appelée sur le socket (target).

target

Peut être une chaîne de caractères, une ressource de socket, ou un flux associé avec un socket. Dans le cas où ce paramètre est une chaîne de caractères, elle sera analysée comme adresse IP. Elle sera analysée comme sochet de domaine UNIX si elle est préfixée par 'unix:', par exemple, 'unix:/tmp/my.sock'.

Valeurs de retour

Retourne un objet EventListener représentant l'écouteur d'événement de connexion.

Historique

Version | Description
1.5.0 | Le suppot des sockets de domaine UNIX a été ajouté.

Exemples

Exemple #1 Exemple avec EventListener::__construct()

<?php
/*
 * Un simple serveur d'écho, basé sur un écouteur de connexion libevent.
 *
 * Utilisation :
 * 1) Dans un terminal Windows, exécutez :
 *
 * $ php listener.php 9881
 *
 * 2) Dans un autre terminal Windows, ouvrez la connexion suivante :
 *
 * $ nc 127.0.0.1 9881
 *
 * 3) Commencez à taper. Le serveur devrait répéter les entrées.
 */

class MyListenerConnection {
    private $bev, $base;

    public function __destruct() {
        $this->bev->free();
    }

    public function __construct($base, $fd) {
        $this->base = $base;

        $this->bev = new EventBufferEvent($base, $fd, EventBufferEvent::OPT_CLOSE_ON_FREE);

        $this->bev->setCallbacks(array($this, "echoReadCallback"), NULL,
            array($this, "echoEventCallback"), NULL);

        if (!$this->bev->enable(Event::READ)) {
            echo "Impossible d'activer READ\n";
            return;
        }
    }

    public function echoReadCallback($bev, $ctx) {
        // Copie toutes les données depuis le buffer d'entrée vers le buffer de sortie

        // Variant #1
        $bev->output->addBuffer($bev->input);

        /* Variant #2 */
        /*
        $input    = $bev->getInput();
        $output = $bev->getOutput();
        $output->addBuffer($input);
        */
    }

    public function echoEventCallback($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Erreur depuis bufferevent\n";
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            //$bev->free();
            $this->__destruct();
        }
    }
}

class MyListener {
    public $base,
        $listener,
        $socket;
    private $conn = array();

    public function __destruct() {
        foreach ($this->conn as &$c) $c = NULL;
    }

    public function __construct($port) {
        $this->base = new EventBase();
        if (!$this->base) {
            echo "Impossible d'ouvrir la base de l'événement";
            exit(1);
        }

        // Variant #1
        /*
        $this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        if (!socket_bind($this->socket, '0.0.0.0', $port)) {
            echo "Impossible de lier le socket\n";
            exit(1);
        }
        $this->listener = new EventListener($this->base,
            array($this, "acceptConnCallback"), $this->base,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1, $this->socket);
         */

        // Variant #2
         $this->listener = new EventListener($this->base,
             array($this, "acceptConnCallback"), $this->base,
             EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE, -1,
             "0.0.0.0:$port");

        if (!$this->listener) {
            echo "Couldn't create listener";
            exit(1);
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }

    public function dispatch() {
        $this->base->dispatch();
    }

    // Cette fonction de rappel est appelée lorsqu'il y a des données à lire depuis $bev
    public function acceptConnCallback($listener, $fd, $address, $ctx) {
        // Nous avons une nouvelle connexion ! On lui définit un bufferevent. */
        $base = $this->base;
        $this->conn[] = new MyListenerConnection($base, $fd);
    }

    public function accept_error_cb($listener, $ctx) {
        $base = $this->base;

        fprintf(STDERR, "Erreur reçue %d (%s) sur l'écouteur. "
            ."Shutting down.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $base->exit(NULL);
    }
}

$port = 9808;

if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Port invalide");
}

$l = new MyListener($port);
$l->dispatch();
?>


Désactive un objet d'écoute d'événement de connexion

  • « EventListener::__construct
  • EventListener::enable »
  • PHP Manual
  • EventListener
  • Désactive un objet d'écoute d'événement de connexion

EventListener::disable

(PECL event >= 1.2.6-beta)

EventListener::disable — Désactive un objet d'écoute d'événement de connexion

Description

public bool EventListener::disable ( void )

Désactive un objet d'écoute d'événement de connexion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventListener::enable() - Active un objet d'écoute d'événement de connexion


Active un objet d'écoute d'événement de connexion

  • « EventListener::disable
  • EventListener::getBase »
  • PHP Manual
  • EventListener
  • Active un objet d'écoute d'événement de connexion

EventListener::enable

(PECL event >= 1.2.6-beta)

EventListener::enable — Active un objet d'écoute d'événement de connexion

Description

public bool EventListener::enable ( void )

Active un objet d'écoute d'événement de connexion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • EventListener::disable() - Désactive un objet d'écoute d'événement de connexion


Retourne la base d'événement associée avec l'écouteur d'événements

  • « EventListener::enable
  • EventListener::getSocketName »
  • PHP Manual
  • EventListener
  • Retourne la base d'événement associée avec l'écouteur d'événements

EventListener::getBase

(PECL event >= 1.2.6-beta)

EventListener::getBase — Retourne la base d'événement associée avec l'écouteur d'événements

Description

public void EventListener::getBase ( void )

Retourne la base d'événement associée avec l'écouteur d'événements.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la base d'événement associée avec l'écouteur d'événements.


Récupère l'adresse courant pour laquelle le socket d'écoute est lié

  • « EventListener::getBase
  • EventListener::setCallback »
  • PHP Manual
  • EventListener
  • Récupère l'adresse courant pour laquelle le socket d'écoute est lié

EventListener::getSocketName

(PECL event >= 1.5.0)

EventListener::getSocketName — Récupère l'adresse courant pour laquelle le socket d'écoute est lié

Description

public static bool EventListener::getSocketName ( string &$address [, mixed &$port ] )

Récupère l'adresse courant pour laquelle le socket d'écoute est lié.

Liste de paramètres

address

Paramètre de sortie. L'adresse IP suivant la famille d'adresse du socket.

port

Paramètre de sortie. Le port sur lequel le socket est lié.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Le but de setCallback

  • « EventListener::getSocketName
  • EventListener::setErrorCallback »
  • PHP Manual
  • EventListener
  • Le but de setCallback

EventListener::setCallback

(PECL event >= 1.2.6-beta)

EventListener::setCallback — Le but de setCallback

Description

public void EventListener::setCallback ( callable $cb [, mixed $arg = NULL ] )

Place une fonction de rappel pour l'événement de connexion, et, optionnellement, des arguments pour cette fonction de rappel.

Liste de paramètres

cb

La nouvelle fonction de rappel pour les nouvelles connexions. Ignoré si vaut NULL.

Doit correspondre au prototype suivant :

void callback ([ EventListener $listener = NULL [, mixed $fd = NULL [, array $address = NULL [, mixed $arg = NULL ]]]] )

listener

L'objet EventListener.

fd

Le descripteur de fichier ou une ressource associée à l'écoute.

address

Tableau de deux éléments : l'adresse IP et le port du serveur.

arg

Données utilisateur personnalisées attachées à la fonction de rappel.

arg

Données utilisateur personnalisées attachées à la fonction de rappel. Ignoré si vaut NULL.

Valeurs de retour

Aucune valeur n'est retournée.


Définit la fonction de rappel sur l'évènement d'erreur

  • « EventListener::setCallback
  • EventSslContext »
  • PHP Manual
  • EventListener
  • Définit la fonction de rappel sur l'évènement d'erreur

EventListener::setErrorCallback

(PECL event >= 1.2.6-beta)

EventListener::setErrorCallback — Définit la fonction de rappel sur l'évènement d'erreur

Description

public void EventListener::setErrorCallback ( string $cb )

Définit la fonction de rappel sur l'évènement d'erreur.

Liste de paramètres

cb

La fonction de rappel pour l'erreur. Doit correspondre au prototype suivant :

void callback ([ EventListener $listener = NULL [, mixed $data = NULL ]] )

listener

L'objet EventListener.

data

Données personnalisées de l'utilisateur à associer à la fonction de rappel.

Valeurs de retour

Voir aussi

  • EventListener::setCallback() - Le but de setCallback


La classe EventSslContext

(PECL event >= 1.2.6-beta)

Introduction

Représente la structure SSL_CTX. Fournit des méthodes et des propriétés pour configurer le contexte SSL.

Synopsis de la classe

final EventSslContext {
/* Constantes */
const integer SSLv2_CLIENT_METHOD = 1 ;
const integer SSLv3_CLIENT_METHOD = 2 ;
const integer SSLv23_CLIENT_METHOD = 3 ;
const integer TLS_CLIENT_METHOD = 4 ;
const integer SSLv2_SERVER_METHOD = 5 ;
const integer SSLv3_SERVER_METHOD = 6 ;
const integer SSLv23_SERVER_METHOD = 7 ;
const integer TLS_SERVER_METHOD = 8 ;
const integer OPT_LOCAL_CERT = 1 ;
const integer OPT_LOCAL_PK = 2 ;
const integer OPT_PASSPHRASE = 3 ;
const integer OPT_CA_FILE = 4 ;
const integer OPT_CA_PATH = 5 ;
const integer OPT_ALLOW_SELF_SIGNED = 6 ;
const integer OPT_VERIFY_PEER = 7 ;
const integer OPT_VERIFY_DEPTH = 8 ;
const integer OPT_CIPHERS = 9 ;
/* Propriétés */
public string $local_cert ;
public string $local_pk ;
/* Méthodes */
public __construct ( string $method , string $options )
}

Propriétés

local_cert

Chemin vers le fichier contenant le certificat sur le système de fichiers. Ce doit être un fichier encodé PEM qui contient les certificats. Il peut, optionnellement, contenir la chaîne du certificat de l'émetteur.

local_pk

Chemin vers le fichier contenant la clé privée locale.

Constantes pré-définies

EventSslContext::SSLv2_CLIENT_METHOD

Méthode cliente SSLv2. Voir la page du manuel sur SSL_CTX_new(3).

EventSslContext::SSLv3_CLIENT_METHOD

Méthode cliente SSLv3. Voir la page du manuel sur SSL_CTX_new(3).

EventSslContext::SSLv23_CLIENT_METHOD

Méthode cliente SSLv23. Voir la page du manuel sur SSL_CTX_new(3).

EventSslContext::TLS_CLIENT_METHOD

Méthode cliente TLS. Voir la page du manuel sur SSL_CTX_new(3).

EventSslContext::SSLv2_SERVER_METHOD

Méthode serveur SSLv2. Voir la page du manuel sur SSL_CTX_new(3).

EventSslContext::SSLv3_SERVER_METHOD

Méthode serveur SSLv3. Voir la page du manuel sur SSL_CTX_new(3).

EventSslContext::SSLv23_SERVER_METHOD

Méthode serveur SSLv23. Voir la page du manuel sur SSL_CTX_new(3).

EventSslContext::TLS_SERVER_METHOD

Méthode serveur TLS. Voir la page du manuel sur SSL_CTX_new(3).

EventSslContext::OPT_LOCAL_CERT

Clé pour un élément du tableau contenant les options, utilisé dans la méthode EventSslContext::__construct(). Les options pointent vers le chemin du certificat local.

EventSslContext::OPT_LOCAL_PK

Clé pour un élément du tableau contenant les options, utilisé dans la méthode EventSslContext::__construct(). Les options pointent vers le chemin de la clé privée.

EventSslContext::OPT_PASSPHRASE

Clé pour un élément du tableau contenant les options, utilisé dans la méthode EventSslContext::__construct(). Représente la passphrase du certificat.

EventSslContext::OPT_CA_FILE

Clé pour un élément du tableau contenant les options, utilisé dans la méthode EventSslContext::__construct(). Représente le chemin vers le fichier de l'autorité du certificat.

EventSslContext::OPT_CA_PATH

Clé pour un élément du tableau contenant les options, utilisé dans la méthode EventSslContext::__construct(). Représente le chemin dans lequel on doit chercher le fichier de l'autorité du certificat.

EventSslContext::OPT_ALLOW_SELF_SIGNED

Clé pour un élément du tableau contenant les options, utilisé dans la méthode EventSslContext::__construct(). Représente une option qui autorise les certificats auto-signés.

EventSslContext::OPT_VERIFY_PEER

Clé pour un élément du tableau contenant les options, utilisé dans la méthode EventSslContext::__construct(). Représente une option qui indique à Event de vérifier les pairs.

EventSslContext::OPT_VERIFY_DEPTH

Clé pour un élément du tableau contenant les options, utilisé dans la méthode EventSslContext::__construct(). Représente la profondeur maximale de la vérification de la chaîne du certificat qui doit être autorisée pour le contexte SSL.

EventSslContext::OPT_CIPHERS

Clé pour un élément du tableau contenant les options, utilisé dans la méthode EventSslContext::__construct(). Représente la liste cipher pour le contexte SSL.

Sommaire

  • EventSslContext::__construct — Construit un contexte OpenSSL à utiliser avec les classes Event


Construit un contexte OpenSSL à utiliser avec les classes Event

  • « EventSslContext
  • EventUtil »
  • PHP Manual
  • EventSslContext
  • Construit un contexte OpenSSL à utiliser avec les classes Event

EventSslContext::__construct

(PECL event >= 1.2.6-beta)

EventSslContext::__construct — Construit un contexte OpenSSL à utiliser avec les classes Event

Description

public EventSslContext::__construct ( string $method , string $options )

Crée un contexte SSL contenant le pointeur vers SSL_CTX (voir le manuel système).

Liste de paramètres

method

Une des constantes EventSslContext::*_METHOD.

options

Un tableau associatif d'options de contexte SSL. Une des constantes EventSslContext::OPT_*.

Valeurs de retour

Retourne un objet EventSslContext.

Exemples

Exemple #1 Exemple avec EventSslContext::__construct()

<?php
$ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, array(
     EventSslContext::OPT_LOCAL_CERT        => $local_cert,
     EventSslContext::OPT_LOCAL_PK          => $local_pk,
     EventSslContext::OPT_PASSPHRASE        => "echo server",
     EventSslContext::OPT_VERIFY_PEER       => true,
     EventSslContext::OPT_ALLOW_SELF_SIGNED => false,
));
?>


La classe EventUtil

(PECL event >= 1.5.0)

Introduction

La classe EventUtil est un squelette avec des méthodes et des constantes supplémentaires.

Synopsis de la classe

final EventUtil {
/* Constantes */
const integer AF_INET = 2 ;
const integer AF_INET6 = 10 ;
const integer AF_UNSPEC = 0 ;
const integer LIBEVENT_VERSION_NUMBER = 33559808 ;
const integer SO_DEBUG = 1 ;
const integer SO_REUSEADDR = 2 ;
const integer SO_KEEPALIVE = 9 ;
const integer SO_DONTROUTE = 5 ;
const integer SO_LINGER = 13 ;
const integer SO_BROADCAST = 6 ;
const integer SO_OOBINLINE = 10 ;
const integer SO_SNDBUF = 7 ;
const integer SO_RCVBUF = 8 ;
const integer SO_SNDLOWAT = 19 ;
const integer SO_RCVLOWAT = 18 ;
const integer SO_SNDTIMEO = 21 ;
const integer SO_RCVTIMEO = 20 ;
const integer SO_TYPE = 3 ;
const integer SO_ERROR = 4 ;
const integer SOL_SOCKET = 1 ;
const integer SOL_TCP = 6 ;
const integer SOL_UDP = 17 ;
const integer IPPROTO_IP = 0 ;
const integer IPPROTO_IPV6 = 41 ;
/* Méthodes */
abstract public __construct ( void )
public static int getLastSocketErrno ([ mixed $socket = NULL ] )
public static string getLastSocketError ([ mixed $socket ] )
public static int getSocketFd ( mixed $socket )
public static bool getSocketName ( mixed $socket , string &$address [, mixed &$port ] )
public static bool setSocketOption ( mixed $socket , int $level , int $optname , mixed $optval )
public static void sslRandPoll ( void )
}

Constantes pré-définies

EventUtil::AF_INET

Famille d'adresses IPv4

EventUtil::AF_INET6

Famille d'adresses IPv6

EventUtil::AF_UNSPEC

Famille d'adresses IP non spécifiée

EventUtil::SO_DEBUG

Option du socket. Active le débogage du socket.Uniquement autorisé pour les processus avec la capacité CAP_NET_ADMIN ou un ID d'utilisateur effectif de 0. (Ajouté en event-1.6.0.)

EventUtil::SO_REUSEADDR

Option du socket. Indique que les règles utilisées dans la validation des adresses fournies dans un appel à bind(2) doivent autorisées la ré-utilisation des adresses locales. Voir la page de manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SO_KEEPALIVE

Option du socket. Active l'envoi de messages keep-alive sur les sockets de connexion. Attend un entier. Voir la page de manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SO_DONTROUTE

Option du socket. Voir la page de manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SO_LINGER

Option du socket. Lorsqu'actif, un appel à close(2) ou à shutdown(2) ne va pas retourner tant que tous les messages de la file d'attente du socket n'ont pas été envoyés, ou que le délai d'attente maximal du linger ne sera pas atteint. Sinon, les appels retourneront immédiatement et la fermeture sera faite en arrière plan. Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SO_BROADCAST

Option du socket. Indique si la transmission des messages de broadcast est supportée. Voir la page de manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SO_OOBINLINE

Option du socket. Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SO_SNDBUF

Option du socket. Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SO_RCVBUF

Option du socket. Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SO_SNDLOWAT

Option du socket. Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SO_RCVLOWAT

Option du socket. Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SO_SNDTIMEO

Option du socket. Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SO_RCVTIMEO

Option du socket. Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SO_TYPE

Option du socket. Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SO_ERROR

Option du socket. Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SOL_SOCKET

Option du socket. Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SOL_TCP

Option du socket. Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::SOL_UDP

Option du socket. Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::IPPROTO_IP

Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::IPPROTO_IPV6

Voir la page du manuel sur socket(7). (Ajouté en event-1.6.0.)

EventUtil::LIBEVENT_VERSION_NUMBER

Numéro de version de Libevent au moment où l'extension Event a été compilée avec la bibliothèque.

Sommaire

  • EventUtil::__construct — Le constructeur
  • EventUtil::getLastSocketErrno — Retourne le numéro d'erreur le plus récemment survenu sur le socket
  • EventUtil::getLastSocketError — Retourne l'erreur la plus récemment survenue sur le socket
  • EventUtil::getSocketFd — Retourne le descripteur de fichier d'un socket ou d'un flux
  • EventUtil::getSocketName — Récupère l'adresse courant liée au socket
  • EventUtil::setSocketOption — Définit les options du socket
  • EventUtil::sslRandPoll — Génère l'entropie via OpenSSL RAND_poll()


Le constructeur

  • « EventUtil
  • EventUtil::getLastSocketErrno »
  • PHP Manual
  • EventUtil
  • Le constructeur

EventUtil::__construct

(PECL event >= 1.2.6-beta)

EventUtil::__construct — Le constructeur

Description

abstract public EventUtil::__construct ( void )

EventUtil est un squelette. Aussi, le constructeur est obstrait, et il est donc impossible de créer des objets en se basant sur cette classe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Retourne le numéro d'erreur le plus récemment survenu sur le socket

  • « EventUtil::__construct
  • EventUtil::getLastSocketError »
  • PHP Manual
  • EventUtil
  • Retourne le numéro d'erreur le plus récemment survenu sur le socket

EventUtil::getLastSocketErrno

(PECL event >= 1.2.6-beta)

EventUtil::getLastSocketErrno — Retourne le numéro d'erreur le plus récemment survenu sur le socket

Description

public static int EventUtil::getLastSocketErrno ([ mixed $socket = NULL ] )

Retourne le numéro d'erreur le plus récemment survenu sur le socket (errno).

Liste de paramètres

socket

Ressource de socket, flux ou descripteur de fichier de socket.

Valeurs de retour

Retourne le numéro d'erreur le plus récemment survenu sur le socket (errno).

Voir aussi

  • EventUtil::getLastSocketError() - Retourne l'erreur la plus récemment survenue sur le socket


Retourne l'erreur la plus récemment survenue sur le socket

  • « EventUtil::getLastSocketErrno
  • EventUtil::getSocketFd »
  • PHP Manual
  • EventUtil
  • Retourne l'erreur la plus récemment survenue sur le socket

EventUtil::getLastSocketError

(PECL event >= 1.2.6-beta)

EventUtil::getLastSocketError — Retourne l'erreur la plus récemment survenue sur le socket

Description

public static string EventUtil::getLastSocketError ([ mixed $socket ] )

Retourne l'erreur la plus récemment survenue sur le socket.

Liste de paramètres

socket

Ressource de socket, flux, ou descripteur de fichier de socket.

Valeurs de retour

Retourne l'erreur la plus récemment survenue sur le socket.

Voir aussi

  • EventUtil::getLastSocketErrno() - Retourne le numéro d'erreur le plus récemment survenu sur le socket


Retourne le descripteur de fichier d'un socket ou d'un flux

  • « EventUtil::getLastSocketError
  • EventUtil::getSocketName »
  • PHP Manual
  • EventUtil
  • Retourne le descripteur de fichier d'un socket ou d'un flux

EventUtil::getSocketFd

(PECL event >= 1.7.0)

EventUtil::getSocketFd — Retourne le descripteur de fichier d'un socket ou d'un flux

Description

public static int EventUtil::getSocketFd ( mixed $socket )

Retourne le descripteur numérique de fichier d'un socket ou d'un flux spécifié par le paramètre socket, comme le fait l'extension Event en interne pour toutes les méthodes acceptant un socket ou un flux.

Liste de paramètres

socket

Socket ou flux.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon. EventUtil::getSocketFd() retourne FALSE dans le cas où le type du fichier n'a pu être reconnu, ou bien lorsque le descripteur du fichier associé avec le paramètre socket n'est pas valide.


Récupère l'adresse courant liée au socket

  • « EventUtil::getSocketFd
  • EventUtil::setSocketOption »
  • PHP Manual
  • EventUtil
  • Récupère l'adresse courant liée au socket

EventUtil::getSocketName

(PECL event >= 1.5.0)

EventUtil::getSocketName — Récupère l'adresse courant liée au socket

Description

public static bool EventUtil::getSocketName ( mixed $socket , string &$address [, mixed &$port ] )

Récupère l'adresse courant liée au socket.

Liste de paramètres

socket

Ressource de socket, flux, ou descripteur de fichier de socket.

address

Paramètre de sortie. Adresse IP ou le chemin du domaine UNIX du socket, suivant la famille d'adresse du socket.

port

Paramètre de sortie. Le port lié au socket. N'a pas de sens pour les sockets de domaine UNIX.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Définit les options du socket

  • « EventUtil::getSocketName
  • EventUtil::sslRandPoll »
  • PHP Manual
  • EventUtil
  • Définit les options du socket

EventUtil::setSocketOption

(PECL event >= 1.6.0)

EventUtil::setSocketOption — Définit les options du socket

Description

public static bool EventUtil::setSocketOption ( mixed $socket , int $level , int $optname , mixed $optval )

Définit les options du socket.

Liste de paramètres

socket

Ressource de socket, flux, ou descripteur de fichier numérique associé avec le socket.

level

Une constante EventUtil::SOL_*. Spécifie le niveau du protocole dans lequel résident les options. Par exemple, pour récupérer les options au niveau socket, le paramètre level doit être positionné à la valeur EventUtil::SOL_SOCKET. Les autres niveaux, comme TCP, peuvent être utilisés en spécifiant le numéro du protocole de ce niveau. Les numéros des protocoles peuvent être retrouvés en utilisant la fonction getprotobyname(). Voir aussi les constantes EventUtil.

optname

Nom de l'option (type). A la même signification que le paramètre correspondant de la fonction socket_get_option(). Voir aussi les constantes EventUtil.

optval

Accepte les mêmes valeurs que le paramètre optval de la fonction socket_get_option().

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Voir aussi

  • socket_get_option() - Lit les options du socket
  • socket_set_option() - Modifie les options de socket


Génère l'entropie via OpenSSL RAND_poll()

  • « EventUtil::setSocketOption
  • FAM »
  • PHP Manual
  • EventUtil
  • Génère l'entropie via OpenSSL RAND_poll()

EventUtil::sslRandPoll

(PECL event >= 1.2.6-beta)

EventUtil::sslRandPoll — Génère l'entropie via OpenSSL RAND_poll()

Description

public static void EventUtil::sslRandPoll ( void )

Génère l'entropie via OpenSSL RAND_poll() (voir le manuel système).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Moniteur d'altération de fichiers

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions FAM
    • fam_cancel_monitor — Termine le monitoring
    • fam_close — Ferme la connexion FAM
    • fam_monitor_collection — Surveille les changements d'une collection de fichiers dans un dossier
    • fam_monitor_directory — Surveiller les changements dans un dossier
    • fam_monitor_file — Surveille un fichier régulier pour les changements
    • fam_next_event — Retourne le prochain événement FAM en attente
    • fam_open — Ouvre une connexion vers le démon FAM
    • fam_pending — Vérifie si des événements FAM sont disponibles
    • fam_resume_monitor — Reprend un monitoring suspendu
    • fam_suspend_monitor — Suspend temporairement le monitoring


Introduction

FAM surveille les fichiers et les dossiers, notifiant les applications intéressées sur les modifications. Plus d'informations sur FAM sont disponibles sur » http://oss.sgi.com/projects/fam/.

Un script PHP peut spécifier une liste de fichiers à surveiller par FAM, en utilisant les fonctions fournies par cette extension.

Le processus FAM débute lors de la première connexion à une application utilisant FAM. Le processus se termine lorsque toutes les connexions ont été fermées.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.


Pré-requis

Cette extension utilisent les fonctions de la bibliothèque » FAM, développé par SGI. Toutefois, vous devez installer la bibliothèque FAM.


Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/fam.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0


Types de ressources

Il y a deux types de ressources utilisées par le module FAM. La première est la connexion au service FAM, retournée par la fonction fam_open(), et la seconde, une ressource de moniteur, retournée par les fonctions fam_monitor_XXX.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes d'événements FAM
Constante | Description
FAMChanged (entier) | Une valeur qui a été modifiée pour un fichier ou un dossier. Elle est accessible via fstat(1).
FAMDeleted (entier) | Un fichier ou un dossier a été effacé.
FAMStartExecuting (entier) | Un fichier exécutable a été lancé.
FAMStopExecuting (entier) | Un fichier exécutable a fini de s'exécuter.
FAMCreated (entier) | Un fichier a été créé dans un dossier.
FAMMoved (entier) | Cet événement ne se produit jamais.
FAMAcknowledge (entier) | Événement survenu en réponse à fam_cancel_monitor().
FAMExists (entier) | Un événement survenu suite à une commande de surveillance d'un fichier ou d'un dossier. Lorsque le dossier est sous surveillance, un événement est généré pour ce dossier et tous ses fichiers.
FAMEndExist (entier) | Un événement après le dernier événement.


Fonctions FAM

Sommaire

  • fam_cancel_monitor — Termine le monitoring
  • fam_close — Ferme la connexion FAM
  • fam_monitor_collection — Surveille les changements d'une collection de fichiers dans un dossier
  • fam_monitor_directory — Surveiller les changements dans un dossier
  • fam_monitor_file — Surveille un fichier régulier pour les changements
  • fam_next_event — Retourne le prochain événement FAM en attente
  • fam_open — Ouvre une connexion vers le démon FAM
  • fam_pending — Vérifie si des événements FAM sont disponibles
  • fam_resume_monitor — Reprend un monitoring suspendu
  • fam_suspend_monitor — Suspend temporairement le monitoring


Termine le monitoring

  • « Fonctions FAM
  • fam_close »
  • PHP Manual
  • Fonctions FAM
  • Termine le monitoring

fam_cancel_monitor

(PHP 5 <= 5.0.5)

fam_cancel_monitor — Termine le monitoring

Description

bool fam_cancel_monitor ( resource $fam , resource $fam_monitor )

Termine la surveillance d'une ressource.

De plus un événement FAMAcknowledge survient.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

fam_monitor

Une ressource retournée par une des fonctions fam_monitor_XXX.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fam_monitor_file() - Surveille un fichier régulier pour les changements
  • fam_monitor_directory() - Surveiller les changements dans un dossier
  • fam_monitor_collection() - Surveille les changements d'une collection de fichiers dans un dossier
  • fam_suspend_monitor() - Suspend temporairement le monitoring


Ferme la connexion FAM

  • « fam_cancel_monitor
  • fam_monitor_collection »
  • PHP Manual
  • Fonctions FAM
  • Ferme la connexion FAM

fam_close

(PHP 5 <= 5.0.5)

fam_close — Ferme la connexion FAM

Description

void fam_close ( resource $fam )

Ferme une connexion au service FAM.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • fam_monitor_open()


Surveille les changements d'une collection de fichiers dans un dossier

  • « fam_close
  • fam_monitor_directory »
  • PHP Manual
  • Fonctions FAM
  • Surveille les changements d'une collection de fichiers dans un dossier

fam_monitor_collection

(PHP 5 <= 5.0.5)

fam_monitor_collection — Surveille les changements d'une collection de fichiers dans un dossier

Description

resource fam_monitor_collection ( resource $fam , string $dirname , int $depth , string $mask )

Surveille une collection de fichiers dans le dossier spécifié.

Une événement FAM sera généré lorsque le statut d'un fichier changera. Les codes des événements possibles sont décrit en détail dans la partie constantes de cette section.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

dirname

Chemin vers le dossier contenant les fichiers à surveiller

depth

La profondeur maximale de recherche à partir de ce dossier

mask

Un masque restreignant les noms de fichier

Valeurs de retour

Retourne une ressource ou FALSE si une erreur survient.

Voir aussi

  • fam_monitor_file() - Surveille un fichier régulier pour les changements
  • fam_monitor_directory() - Surveiller les changements dans un dossier
  • fam_cancel_monitor() - Termine le monitoring
  • fam_suspend_monitor() - Suspend temporairement le monitoring
  • fam_resume_monitor() - Reprend un monitoring suspendu


Surveiller les changements dans un dossier

  • « fam_monitor_collection
  • fam_monitor_file »
  • PHP Manual
  • Fonctions FAM
  • Surveiller les changements dans un dossier

fam_monitor_directory

(PHP 5 <= 5.0.5)

fam_monitor_directory — Surveiller les changements dans un dossier

Description

resource fam_monitor_directory ( resource $fam , string $dirname )

Surveiller un dossier et tous ses fichiers.

Un événement FAM sera généré à chaque fois que le statut du dossier (i.e. le résultat de la fonction stat() sur ce dossier) ou de son contenu (ie. le résultat de readdir()) changera.

Les codes des événements possibles sont décrit en détail dans la partie constantes de cette section.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

dirname

Chemin vers le dossier surveillé

Valeurs de retour

Retourne une ressource ou FALSE si une erreur survient.

Voir aussi

  • fam_monitor_file() - Surveille un fichier régulier pour les changements
  • fam_monitor_collection() - Surveille les changements d'une collection de fichiers dans un dossier
  • fam_cancel_monitor() - Termine le monitoring
  • fam_suspend_monitor() - Suspend temporairement le monitoring
  • fam_resume_monitor() - Reprend un monitoring suspendu


Surveille un fichier régulier pour les changements

  • « fam_monitor_directory
  • fam_next_event »
  • PHP Manual
  • Fonctions FAM
  • Surveille un fichier régulier pour les changements

fam_monitor_file

(PHP 5 <= 5.0.5)

fam_monitor_file — Surveille un fichier régulier pour les changements

Description

resource fam_monitor_file ( resource $fam , string $filename )

Met en place le monitoring pour un fichier. Un événement FAM sera généré à chaque fois que le statut du fichier (i.e. le résultat de la fonction stat() sur ce fichier) changera.

Les codes des événements possibles sont décrit en détail dans la partie constantes de cette section.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

filename

Chemin vers le fichier surveillé

Valeurs de retour

Retourne une ressource ou FALSE si une erreur survient.

Voir aussi

  • fam_monitor_directory() - Surveiller les changements dans un dossier
  • fam_monitor_collection() - Surveille les changements d'une collection de fichiers dans un dossier
  • fam_cancel_monitor() - Termine le monitoring
  • fam_suspend_monitor() - Suspend temporairement le monitoring
  • fam_resume_monitor() - Reprend un monitoring suspendu


Retourne le prochain événement FAM en attente

  • « fam_monitor_file
  • fam_open »
  • PHP Manual
  • Fonctions FAM
  • Retourne le prochain événement FAM en attente

fam_next_event

(PHP 5 <= 5.0.5)

fam_next_event — Retourne le prochain événement FAM en attente

Description

array fam_next_event ( resource $fam )

Retourne l'événement FAM suivant dans la file d'attente.

Cette fonction bloquera jusqu'a ce qu'un événement soit disponible, ce qui peut être vérifié en appelant fam_pending().

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

Valeurs de retour

Retourne un tableau contenant un code événement FAM dans l'entrée "code", le chemin vers le fichier ciblé dans l'entrée "filename" et optionnellement un nom d'hôte dans l'entrée "hostname".

Les codes événements possibles sont détaillés dans la partie constantes de cette section.

Voir aussi

  • fam_pending() - Vérifie si des événements FAM sont disponibles


Ouvre une connexion vers le démon FAM

  • « fam_next_event
  • fam_pending »
  • PHP Manual
  • Fonctions FAM
  • Ouvre une connexion vers le démon FAM

fam_open

(PHP 5 <= 5.0.5)

fam_open — Ouvre une connexion vers le démon FAM

Description

resource fam_open ([ string $appname ] )

Ouvre une connexion vers le démon du service FAM.

Liste de paramètres

appname

chaîne de caractères identifiant l'application pour les journaux de logs.

Valeurs de retour

Retourne une ressource représentant une connexion à un service FAM en cas de succès, ou FALSE si une erreur survient.

Voir aussi

  • fam_close() - Ferme la connexion FAM


Vérifie si des événements FAM sont disponibles

  • « fam_open
  • fam_resume_monitor »
  • PHP Manual
  • Fonctions FAM
  • Vérifie si des événements FAM sont disponibles

fam_pending

(PHP 5 <= 5.0.5)

fam_pending — Vérifie si des événements FAM sont disponibles

Description

int fam_pending ( resource $fam )

Vérifie si des événements FAM sont disponibles.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

Valeurs de retour

Retourne une valeur différente de zéro si des évènements sont disponibles pour être récupérés avec fam_next_event().

Voir aussi

  • fam_next_event() - Retourne le prochain événement FAM en attente


Reprend un monitoring suspendu

  • « fam_pending
  • fam_suspend_monitor »
  • PHP Manual
  • Fonctions FAM
  • Reprend un monitoring suspendu

fam_resume_monitor

(PHP 5 <= 5.0.5)

fam_resume_monitor — Reprend un monitoring suspendu

Description

bool fam_resume_monitor ( resource $fam , resource $fam_monitor )

Reprend le monitoring d'une ressource précédemment suspendu avec fam_suspend_monitor().

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

fam_monitor

Une ressource retournée par une des fonctions fam_monitor_XXX

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fam_suspend_monitor() - Suspend temporairement le monitoring


Suspend temporairement le monitoring

  • « fam_resume_monitor
  • FTP »
  • PHP Manual
  • Fonctions FAM
  • Suspend temporairement le monitoring

fam_suspend_monitor

(PHP 5 <= 5.0.5)

fam_suspend_monitor — Suspend temporairement le monitoring

Description

bool fam_suspend_monitor ( resource $fam , resource $fam_monitor )

fam_suspend_monitor() suspend temporairement le monitoring d'une ressource.

Le monitoring peut être repris par la suite à l'aide de fam_resume_monitor() sans avoir à en recréer un nouveau.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

fam_monitor

Une ressource retournée par une des fonctions fam_monitor_XXX

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • fam_cancel_monitor() - Termine le monitoring
  • fam_resume_monitor() - Reprend un monitoring suspendu


FTP

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
  • Fonctions FTP
    • ftp_alloc — Alloue de l'espace pour un téléchargement de fichier
    • ftp_cdup — Change de dossier et passe au dossier parent
    • ftp_chdir — Modifie le dossier FTP courant
    • ftp_chmod — Modifie les droits d'un fichier via FTP
    • ftp_close — Ferme une connexion FTP
    • ftp_connect — Ouvre une connexion FTP
    • ftp_delete — Efface un fichier sur un serveur FTP
    • ftp_exec — Exécute une commande sur un serveur FTP
    • ftp_fget — Télécharge un fichier via FTP dans un fichier local
    • ftp_fput — Charge un fichier sur un serveur FTP
    • ftp_get_option — Lit différentes options pour la connexion FTP courante
    • ftp_get — Télécharge un fichier depuis un serveur FTP
    • ftp_login — Identification sur un serveur FTP
    • ftp_mdtm — Retourne la date de dernière modification d'un fichier sur un serveur FTP
    • ftp_mkdir — Crée un dossier sur un serveur FTP
    • ftp_nb_continue — Reprend le téléchargement d'un fichier (non bloquant)
    • ftp_nb_fget — Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
    • ftp_nb_fput — Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)
    • ftp_nb_get — Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
    • ftp_nb_put — Envoie un fichier sur un serveur FTP (non-bloquant)
    • ftp_nlist — Retourne la liste des fichiers d'un dossier
    • ftp_pasv — Active ou désactive le mode passif
    • ftp_put — Charge un fichier sur un serveur FTP
    • ftp_pwd — Retourne le nom du dossier courant
    • ftp_quit — Alias de ftp_close
    • ftp_raw — Envoie une commande FTP brute
    • ftp_rawlist — Fait une liste détaillée des fichiers d'un dossier
    • ftp_rename — Renomme un fichier sur un serveur FTP
    • ftp_rmdir — Efface un dossier FTP
    • ftp_set_option — Modifie les options de la connexion FTP
    • ftp_site — Exécute la commande SITE sur un serveur FTP
    • ftp_size — Retourne la taille d'un fichier
    • ftp_ssl_connect — Ouvre une connexion FTP sécurisée avec SSL
    • ftp_systype — Retourne un identifiant de type de serveur FTP


Introduction

Les fonctions de cette extension implémentent l'accès au client à un serveur de fichier qui gère le protocole FTP comme défini dans la RFC » http://www.faqs.org/rfcs/rfc959. Cette extension permet un accès détaillé au serveur FTP fournissant un éventail de commandes pour vos scripts. Si vous voulez seulement lire ou écrire un fichier sur un serveur FTP, utilisez plutôt le gestionnaire ftp:// avec les fonctions de système de fichiers qui fournissent une interface simple et intuitive.


Installation

Pour activer le module FTP de votre configuration PHP, il faut utiliser l'option --enable-ftp .

La version Windows de PHP 5 inclut le support de cette extension. Vous n'avez pas à charger d'autres extensions pour utiliser ces fonctions.

Depuis PHP 7.0.0 sous Windows, cette extension est toujours construite comme extension partagée, aussi, vous devez l'activer dans le php.ini.


Types de ressources

Cette extension utilise une ressource représentant l'identifiant du lien de connexion FTP, retournée par la fonction ftp_connect() ou la fonction ftp_ssl_connect().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FTP_ASCII (entier)

FTP_TEXT (entier)

FTP_BINARY (entier)

FTP_IMAGE (entier)

FTP_TIMEOUT_SEC (entier)

Voir ftp_set_option() pour les détails.

Les constantes suivantes ont été introduites en PHP 4.3.0.

FTP_AUTOSEEK (entier)

Voir ftp_set_option() pour les détails.

FTP_AUTORESUME (entier)

Détermine automatiquement la position de reprise (RESUME) et la position de début pour les requêtes GET et PUT (ne fonctionne qu'avec FTP_AUTOSEEK)

FTP_FAILED (entier)

Le mode asynchrone a échoué

FTP_FINISHED (entier)

Le mode asynchrone a terminé

FTP_MOREDATA (entier)

Le mode asynchrone est encore actif


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • FTP
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Exemple #1 Exemple avec FTP

<?php
// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
    echo "La connexion FTP a échoué !";
    echo "Tentative de connexion au serveur $ftp_server pour l'utilisateur $ftp_user_name";
    exit;
} else {
    echo "Connexion au serveur $ftp_server, pour l'utilisateur $ftp_user_name";
}

// Chargement d'un fichier
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// Vérification du status du chargement
if (!$upload) {
    echo "Le chargement FTP a échoué!";
} else {
    echo "Chargement de $source_file vers $ftp_server en tant que $destination_file";
}

// Fermeture du flux FTP
ftp_close($conn_id);
?>


Fonctions FTP

Sommaire

  • ftp_alloc — Alloue de l'espace pour un téléchargement de fichier
  • ftp_cdup — Change de dossier et passe au dossier parent
  • ftp_chdir — Modifie le dossier FTP courant
  • ftp_chmod — Modifie les droits d'un fichier via FTP
  • ftp_close — Ferme une connexion FTP
  • ftp_connect — Ouvre une connexion FTP
  • ftp_delete — Efface un fichier sur un serveur FTP
  • ftp_exec — Exécute une commande sur un serveur FTP
  • ftp_fget — Télécharge un fichier via FTP dans un fichier local
  • ftp_fput — Charge un fichier sur un serveur FTP
  • ftp_get_option — Lit différentes options pour la connexion FTP courante
  • ftp_get — Télécharge un fichier depuis un serveur FTP
  • ftp_login — Identification sur un serveur FTP
  • ftp_mdtm — Retourne la date de dernière modification d'un fichier sur un serveur FTP
  • ftp_mkdir — Crée un dossier sur un serveur FTP
  • ftp_nb_continue — Reprend le téléchargement d'un fichier (non bloquant)
  • ftp_nb_fget — Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
  • ftp_nb_fput — Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)
  • ftp_nb_get — Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
  • ftp_nb_put — Envoie un fichier sur un serveur FTP (non-bloquant)
  • ftp_nlist — Retourne la liste des fichiers d'un dossier
  • ftp_pasv — Active ou désactive le mode passif
  • ftp_put — Charge un fichier sur un serveur FTP
  • ftp_pwd — Retourne le nom du dossier courant
  • ftp_quit — Alias de ftp_close
  • ftp_raw — Envoie une commande FTP brute
  • ftp_rawlist — Fait une liste détaillée des fichiers d'un dossier
  • ftp_rename — Renomme un fichier sur un serveur FTP
  • ftp_rmdir — Efface un dossier FTP
  • ftp_set_option — Modifie les options de la connexion FTP
  • ftp_site — Exécute la commande SITE sur un serveur FTP
  • ftp_size — Retourne la taille d'un fichier
  • ftp_ssl_connect — Ouvre une connexion FTP sécurisée avec SSL
  • ftp_systype — Retourne un identifiant de type de serveur FTP


Alloue de l'espace pour un téléchargement de fichier

  • « Fonctions FTP
  • ftp_cdup »
  • PHP Manual
  • Fonctions FTP
  • Alloue de l'espace pour un téléchargement de fichier

ftp_alloc

(PHP 5, PHP 7)

ftp_alloc — Alloue de l'espace pour un téléchargement de fichier

Description

bool ftp_alloc ( resource $ftp_stream , int $filesize [, string &$result ] )

ftp_alloc() envoie la commande FTP ALLO pour allouer un espace sur le serveur FTP de filesize octets.

Note:

De nombreux serveur FTP ne supportent pas cette commande. Ces serveurs peuvent retourner un code d'erreur (FALSE) qui indique que la commande n'est pas supportée, ou (TRUE) pour dire que la préallocation n'est pas nécessaire : le client continue alors ses opérations de la même façon. À cause de cela, il est préférable de n'utiliser cette fonction qu'avec les serveurs qui requièrent spécifiquement cette fonction.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

filesize

Le nombre d'octets à allouer.

result

Une représentation textuelle de la réponse du serveur qui sera retournée par référence dans result si une variable est fournie.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_alloc()

<?php

$file = "/home/user/myfile";

// Connexion au serveur
$conn_id = ftp_connect('ftp.example.com');
$login_result = ftp_login($conn_id, 'anonymous', 'user@example.com');

if (ftp_alloc($conn_id, filesize($file), $result)) {
  echo "Espace alloué avec succès sur le serveur. Envoi de $file.\n";
  ftp_put($conn_id, '/incomming/myfile', $file, FTP_BINARY);
} else {
  echo "Impossible d'allouer l'espace sur le serveur. Réponse du serveur : $result\n";
}

ftp_close($conn_id);

?>

Voir aussi

  • ftp_put() - Charge un fichier sur un serveur FTP
  • ftp_fput() - Charge un fichier sur un serveur FTP


Change de dossier et passe au dossier parent

  • « ftp_alloc
  • ftp_chdir »
  • PHP Manual
  • Fonctions FTP
  • Change de dossier et passe au dossier parent

ftp_cdup

(PHP 4, PHP 5, PHP 7)

ftp_cdup — Change de dossier et passe au dossier parent

Description

bool ftp_cdup ( resource $ftp_stream )

ftp_cdup() change de dossier et passe au dossier parent.

Liste de paramètres

ftp_stream

L'identifiant du lien de la connexion FTP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_cdup()

<?php
// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec nom d'utilisateur et mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Modifie le dossier courant en html
ftp_chdir($conn_id, 'html');

echo ftp_pwd($conn_id); // /html

// Retour au dossier parent
if (ftp_cdup($conn_id)) {
  echo "succès de cdup\n";
} else {
  echo "Echec de cdup\n";
}

echo ftp_pwd($conn_id); // /

ftp_close($conn_id);
?>

Voir aussi

  • ftp_chdir() - Modifie le dossier FTP courant
  • ftp_pwd() - Retourne le nom du dossier courant


Modifie le dossier FTP courant

  • « ftp_cdup
  • ftp_chmod »
  • PHP Manual
  • Fonctions FTP
  • Modifie le dossier FTP courant

ftp_chdir

(PHP 4, PHP 5, PHP 7)

ftp_chdir — Modifie le dossier FTP courant

Description

bool ftp_chdir ( resource $ftp_stream , string $directory )

ftp_chdir() modifie le dossier courant en directory.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

directory

Le dossier cible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si le changement échoue, PHP lancera également une alerte.

Exemples

Exemple #1 Exemple avec ftp_chdir()

<?php

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
    die("Echec de la connexion FTP !");
}

echo "Dossier courant : " . ftp_pwd($conn_id) . "\n";

// Tentative de modification du dossier en "somedir"
if (ftp_chdir($conn_id, "somedir")) {
    echo "Le dossier courant est maintenant : " . ftp_pwd($conn_id) . "\n";
} else {
    echo "Impossible de changer de dossier\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi

  • ftp_cdup() - Change de dossier et passe au dossier parent
  • ftp_pwd() - Retourne le nom du dossier courant


Modifie les droits d'un fichier via FTP

  • « ftp_chdir
  • ftp_close »
  • PHP Manual
  • Fonctions FTP
  • Modifie les droits d'un fichier via FTP

ftp_chmod

(PHP 5, PHP 7)

ftp_chmod — Modifie les droits d'un fichier via FTP

Description

int ftp_chmod ( resource $ftp_stream , int $mode , string $filename )

ftp_chmod() modifie les droits d'accès au fichier filename sur le serveur FTP ftp_stream, en lui attribuant les droits de mode, spécifié sous la forme d'un entier en base octale.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

mode

La nouvelle permission, donnée en tant que valeur octale.

filename

Le fichier distant.

Valeurs de retour

Retourne les nouvelles permissions du fichier en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_chmod()

<?php
$file = 'public_html/index.php';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tentative de modification des permissions du fichier $file en 644
if (ftp_chmod($conn_id, 0644, $file) !== false) {
 echo "Les permissions du fichier $file ont été modifiées avec succès en 644\n";
} else {
 echo "Impossible de modifier les permissions du fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi

  • chmod() - Change le mode du fichier


Ferme une connexion FTP

  • « ftp_chmod
  • ftp_connect »
  • PHP Manual
  • Fonctions FTP
  • Ferme une connexion FTP

ftp_close

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ftp_close — Ferme une connexion FTP

Description

bool ftp_close ( resource $ftp_stream )

ftp_close() ferme la connexion ftp_stream et libère les ressources.

Note:

Après avoir appelé cette fonction, vous ne pouvez plus utiliser l'ancienne connexion, et vous devez en ouvrir une nouvelle avec ftp_connect().

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_close()

<?php

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Affichage du dossier courant
echo ftp_pwd($conn_id); // /

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi

  • ftp_connect() - Ouvre une connexion FTP


Ouvre une connexion FTP

  • « ftp_close
  • ftp_delete »
  • PHP Manual
  • Fonctions FTP
  • Ouvre une connexion FTP

ftp_connect

(PHP 4, PHP 5, PHP 7)

ftp_connect — Ouvre une connexion FTP

Description

resource ftp_connect ( string $host [, int $port = 21 [, int $timeout = 90 ]] )

ftp_connect() ouvre une connexion FTP avec l'hôte host.

Liste de paramètres

host

L'adresse du serveur FTP. Ce paramètre ne doit jamais avoir de slash final et ne doit pas être préfixé par ftp://.

port

Ce paramètre spécifie un numéro de port alternatif pour la connexion. S'il est omis ou définie à zéro, alors le port par défaut utilisé sera 21.

timeout

Ce paramètre spécifie le délai de connexion pour toutes les opérations de sous séquences du réseau. S'il est omis, la valeur par défaut sera 90 secondes. Le délai de connexion peut être modifié et interrogé à n'importe quel moment avec les moments ftp_set_option() et ftp_get_option().

Valeurs de retour

Retourne un flux FTP en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_connect()

<?php

$ftp_server = "ftp.example.com";

// Mise en place d'une connexion
$conn_id = ftp_connect($ftp_server) or die("Impossible de se connecter au serveur $ftp_server");

?>

Voir aussi

  • ftp_close() - Ferme une connexion FTP
  • ftp_ssl_connect() - Ouvre une connexion FTP sécurisée avec SSL


Efface un fichier sur un serveur FTP

  • « ftp_connect
  • ftp_exec »
  • PHP Manual
  • Fonctions FTP
  • Efface un fichier sur un serveur FTP

ftp_delete

(PHP 4, PHP 5, PHP 7)

ftp_delete — Efface un fichier sur un serveur FTP

Description

bool ftp_delete ( resource $ftp_stream , string $path )

ftp_delete() efface le fichier path sur un serveur FTP.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

path

Le fichier à effacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_delete()

<?php
$file = 'public_html/old.txt';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tente d'effacer le fichier $file
if (ftp_delete($conn_id, $file)) {
 echo "$file effacé avec succès\n";
} else {
 echo "Impossible d'effacer le fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>


Exécute une commande sur un serveur FTP

  • « ftp_delete
  • ftp_fget »
  • PHP Manual
  • Fonctions FTP
  • Exécute une commande sur un serveur FTP

ftp_exec

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

ftp_exec — Exécute une commande sur un serveur FTP

Description

bool ftp_exec ( resource $ftp_stream , string $command )

ftp_exec() envoie une commande SITE EXEC au serveur FTP, pour qu'il exécute le programme command.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

command

La commande à exécuter.

Valeurs de retour

Retourne TRUE si la commande a été exécutée avec succès (le serveur envoie le code réponse : 200); sinon, retourne FALSE.

Exemples

Exemple #1 Exemple avec ftp_exec()

<?php

// Initialisation de la variable
$command = 'ls -al >files.txt';

// Initialisation de la connexion
$conn_id = ftp_connect($ftp_server);

// Identification
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Éxécution d'une commande
if (ftp_exec($conn_id, $command)) {
    echo "$command a été exécuté avec succès\n";
} else {
    echo "Impossible d\'exécuter : $command\n";
}

// Fermeture de la connexion
ftp_close($conn_id);

?>

Voir aussi

  • ftp_raw() - Envoie une commande FTP brute


Télécharge un fichier via FTP dans un fichier local

  • « ftp_exec
  • ftp_fput »
  • PHP Manual
  • Fonctions FTP
  • Télécharge un fichier via FTP dans un fichier local

ftp_fget

(PHP 4, PHP 5, PHP 7)

ftp_fget — Télécharge un fichier via FTP dans un fichier local

Description

bool ftp_fget ( resource $ftp_stream , resource $handle , string $remote_file , int $mode [, int $resumepos = 0 ] )

ftp_fget() télécharge le fichier remote_file depuis le serveur FTP et l'écrit dans le fichier identifié par handle.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

handle

Un pointeur de fichier ouvert dans lequel on écrit les données.

remote_file

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

resumepos

La position du fichier distant à partir de laquelle le téléchargement commence.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_fget()

<?php

// Chemin vers le fichier distant
$remote_file = 'somefile.txt';
$local_file = 'localfile.txt';

// Ouverture du fichier pour écriture
$handle = fopen($local_file, 'w');

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tente de téléchargement le fichier $remote_file et de le sauvegarder dans $handle
if (ftp_fget($conn_id, $handle, $remote_file, FTP_ASCII, 0)) {
 echo "Ecriture dans le fichier $local_file avec succès\n";
} else {
 echo "Il y a un problème lors du téléchargement du fichier $remote_file dans $local_file\n";
}

// Fermeture de la connexion et du pointeur de fichier
ftp_close($conn_id);
fclose($handle);
?>

Voir aussi

  • ftp_get() - Télécharge un fichier depuis un serveur FTP
  • ftp_nb_get() - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
  • ftp_nb_fget() - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)


Charge un fichier sur un serveur FTP

  • « ftp_fget
  • ftp_get_option »
  • PHP Manual
  • Fonctions FTP
  • Charge un fichier sur un serveur FTP

ftp_fput

(PHP 4, PHP 5, PHP 7)

ftp_fput — Charge un fichier sur un serveur FTP

Description

bool ftp_fput ( resource $ftp_stream , string $remote_file , resource $handle , int $mode [, int $startpos = 0 ] )

ftp_fput() charge les données issues du fichier identifié par handle jusqu'à la fin du fichier.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le chemin vers le fichier distant.

handle

Un pointeur de fichier ouvert sur le fichier local. La lecture s'arrête à la fin du fichier.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

startpos

La position dans le fichier distant à partir de laquelle le téléchargement commencera.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_fput()

<?php

// Ouverture de quelques fichiers pour lecture
$file = 'somefile.txt';
$fp = fopen($file, 'r');

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tente de charger le fichier $file
if (ftp_fput($conn_id, $file, $fp, FTP_ASCII)) {
    echo "Chargement avec succès du fichier $file\n";
} else {
    echo "Il y a eu un problème lors du chargement du fichier $file\n";
}

// Fermeture de la connexion et du pointeur de fichier
ftp_close($conn_id);
fclose($fp);

?>

Voir aussi

  • ftp_put() - Charge un fichier sur un serveur FTP
  • ftp_nb_fput() - Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)
  • ftp_nb_put() - Envoie un fichier sur un serveur FTP (non-bloquant)


Lit différentes options pour la connexion FTP courante

  • « ftp_fput
  • ftp_get »
  • PHP Manual
  • Fonctions FTP
  • Lit différentes options pour la connexion FTP courante

ftp_get_option

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ftp_get_option — Lit différentes options pour la connexion FTP courante

Description

mixed ftp_get_option ( resource $ftp_stream , int $option )

ftp_get_option() retourne la valeur de l'option option depuis la connexion FTP spécifiée.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

option

Actuellement, les options suivantes sont supportées :

Options FTP supportées
FTP_TIMEOUT_SEC | Retourne le délai de connexion courant utilisé pour les opérations sur le réseau.
FTP_AUTOSEEK | Retourne TRUE si cette option est active, FALSE sinon.

Valeurs de retour

Retourne la valeur en cas de succès, ou FALSE si l'option option n'est pas supportée. Dans le dernier cas, un message d'alerte est également envoyé.

Exemples

Exemple #1 Exemple avec ftp_get_option()

<?php
// Récupération du délai de connexion du flux FTP courant
$timeout = ftp_get_option($conn_id, FTP_TIMEOUT_SEC);
?>

Voir aussi

  • ftp_set_option() - Modifie les options de la connexion FTP


Télécharge un fichier depuis un serveur FTP

  • « ftp_get_option
  • ftp_login »
  • PHP Manual
  • Fonctions FTP
  • Télécharge un fichier depuis un serveur FTP

ftp_get

(PHP 4, PHP 5, PHP 7)

ftp_get — Télécharge un fichier depuis un serveur FTP

Description

bool ftp_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode [, int $resumepos = 0 ] )

ftp_get() télécharge le fichier remote_file depuis le serveur FTP, et le sauve dans le fichier local local_file.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

local_file

Le chemin vers le fichier local (sera écrasé si le fichier existe déjà).

remote_file

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

resumepos

La position dans le fichier distant à partir duquel on commence le téléchargement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_get()

<?php

// Définition de quelques variables
$local_file = 'local.zip';
$server_file = 'server.zip';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tentative de téléchargement du fichier $server_file et sauvegarde dans le fichier $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
    echo "Le fichier $local_file a été écris avec succès\n";
} else {
    echo "Il y a un problème\n";
}

// Fermeture de la connexion
ftp_close($conn_id);

?>

Voir aussi

  • ftp_pasv() - Active ou désactive le mode passif
  • ftp_fget() - Télécharge un fichier via FTP dans un fichier local
  • ftp_nb_get() - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
  • ftp_nb_fget() - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)


Identification sur un serveur FTP

  • « ftp_get
  • ftp_mdtm »
  • PHP Manual
  • Fonctions FTP
  • Identification sur un serveur FTP

ftp_login

(PHP 4, PHP 5, PHP 7)

ftp_login — Identification sur un serveur FTP

Description

bool ftp_login ( resource $ftp_stream , string $username , string $password )

ftp_login() identifie le flux FTP sur le serveur, avec le nom d'utilisateur username et le mot de passe password.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

username

Le nom de l'utilisateur (USER).

password

Le mot de passe (PASS).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si l'identification échoue, PHP lancera une alerte.

Exemples

Exemple #1 Exemple avec ftp_login()

<?php

$ftp_server = "ftp.example.com";
$ftp_user = "foo";
$ftp_pass = "bar";

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

// Tentative d'identification
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
    echo "Connecté en tant que $ftp_user@$ftp_server\n";
} else {
    echo "Connexion impossible en tant que $ftp_user\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>


Retourne la date de dernière modification d'un fichier sur un serveur FTP

  • « ftp_login
  • ftp_mkdir »
  • PHP Manual
  • Fonctions FTP
  • Retourne la date de dernière modification d'un fichier sur un serveur FTP

ftp_mdtm

(PHP 4, PHP 5, PHP 7)

ftp_mdtm — Retourne la date de dernière modification d'un fichier sur un serveur FTP

Description

int ftp_mdtm ( resource $ftp_stream , string $remote_file )

ftp_mdtm() lit la date de dernière modification d'un fichier distant.

Note:

Tous les serveurs ne supportent pas cette fonctionnalité !

Note:

ftp_mdtm() ne fonctionne pas avec les dossiers.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le fichier depuis lequel on doit extraire la date de dernière modification.

Valeurs de retour

Retourne la date de dernière modification en tant que timestamp Unix en cas de succès, ou -1 si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_mdtm()

<?php

$file = 'somefile.txt';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

//  Récupération de la date de dernière modification
$buff = ftp_mdtm($conn_id, $file);

if ($buff != -1) {
    // somefile.txt was last modified on: March 26 2003 14:16:41.
    echo "$file a été modifié pour la dernière fois : " . date("F d Y H:i:s.", $buff);
} else {
    echo "Impossible de récupérer mdtime";
}

// Fermeture de la connexion
ftp_close($conn_id);

?>


Crée un dossier sur un serveur FTP

  • « ftp_mdtm
  • ftp_nb_continue »
  • PHP Manual
  • Fonctions FTP
  • Crée un dossier sur un serveur FTP

ftp_mkdir

(PHP 4, PHP 5, PHP 7)

ftp_mkdir — Crée un dossier sur un serveur FTP

Description

string ftp_mkdir ( resource $ftp_stream , string $directory )

ftp_mkdir() crée le dossier nommé directory sur le serveur FTP.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

directory

Le nom du dossier qui doit être créé.

Valeurs de retour

Retourne le nom du dossier créé en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_mkdir()

<?php

$dir = 'www';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identication avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tentative de création du dossier $dir
if (ftp_mkdir($conn_id, $dir)) {
 echo "Le dossier $dir a été créé avec succès\n";
} else {
 echo "Il y a eu un problème lors de la création du dossier $dir\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi

  • ftp_rmdir() - Efface un dossier FTP


Reprend le téléchargement d'un fichier (non bloquant)

  • « ftp_mkdir
  • ftp_nb_fget »
  • PHP Manual
  • Fonctions FTP
  • Reprend le téléchargement d'un fichier (non bloquant)

ftp_nb_continue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_continue — Reprend le téléchargement d'un fichier (non bloquant)

Description

int ftp_nb_continue ( resource $ftp_stream )

ftp_nb_continue() reprend le téléchargement d'un fichier sur la connexion ftp_stream, de manière asynchrone.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

Valeurs de retour

Retourne FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple #1 Exemple avec ftp_nb_continue()

<?php

// Initialisation du téléchargement
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Continue le téléchargement...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu une erreur pendant le téléchargement du fichier...";
   exit(1);
}
?>


Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)

  • « ftp_nb_continue
  • ftp_nb_fput »
  • PHP Manual
  • Fonctions FTP
  • Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)

ftp_nb_fget

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_fget — Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)

Description

int ftp_nb_fget ( resource $ftp_stream , resource $handle , string $remote_file , int $mode [, int $resumepos = 0 ] )

ftp_nb_fget() lit le fichier remote_file présent sur le serveur FTP ftp_stream.

La différence entre cette fonction et ftp_fget() est que cette fonction peut lire le fichier de manière asynchrone, afin que votre programme fasse autre chose pendant que le fichier est téléchargé.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

handle

Un pointeur de fichier ouvert dans lequel les données sont écrites.

remote_file

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soir FTP_ASCII ou FTP_BINARY.

resumepos

La position dans le fichier distant à partir de laquelle le téléchargement doit commencer.

Valeurs de retour

Retourne FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple #1 Exemple avec ftp_nb_fget()

<?php

// Ouverture de quelques fichiers pour lecture
$file = 'index.php';
$fp = fopen($file, 'w');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Initialise le téléchargement
$ret = ftp_nb_fget($conn_id, $fp, $file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Faites ce que vous voulez...
   echo ".";

   // Continue le téléchargement...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu une erreur pendant le téléchargement du fichier...";
   exit(1);
}

// Ferme le pointeur de fichier
fclose($fp);
?>

Voir aussi

  • ftp_nb_get() - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
  • ftp_nb_continue() - Reprend le téléchargement d'un fichier (non bloquant)
  • ftp_fget() - Télécharge un fichier via FTP dans un fichier local
  • ftp_get() - Télécharge un fichier depuis un serveur FTP


Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)

  • « ftp_nb_fget
  • ftp_nb_get »
  • PHP Manual
  • Fonctions FTP
  • Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)

ftp_nb_fput

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_fput — Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)

Description

int ftp_nb_fput ( resource $ftp_stream , string $remote_file , resource $handle , int $mode [, int $startpos = 0 ] )

ftp_nb_fput() écrit le fichier remote_file présent sur la machine locale, sur le serveur FTP ftp_stream.

La différence entre cette fonction et ftp_fput() est que cette fonction peut lire le fichier de manière asynchrone, afin que votre programme fasse autre chose pendant que le fichier soit téléchargé.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le chemin vers le fichier distant.

handle

Un pointeur de fichier vers un fichier local. La lecture s'arrête à la fin du fichier.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

startpos

La position dans le fichier distant à partir de laquelle le téléchargement commencera.

Valeurs de retour

Retourne FTP_FAILED, FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple #1 Exemple avec ftp_nb_fput()

<?php

$file = 'index.php';

$fp = fopen($file, 'r');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Initialise le chargement
$ret = ftp_nb_fput($conn_id, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Faites ce que vous voulez...
   echo ".";

   // Continue le chargement...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu un problème lors du chargement du fichier...";
   exit(1);
}

fclose($fp);
?>

Voir aussi

  • ftp_nb_put() - Envoie un fichier sur un serveur FTP (non-bloquant)
  • ftp_nb_continue() - Reprend le téléchargement d'un fichier (non bloquant)
  • ftp_put() - Charge un fichier sur un serveur FTP
  • ftp_fput() - Charge un fichier sur un serveur FTP


Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)

  • « ftp_nb_fput
  • ftp_nb_put »
  • PHP Manual
  • Fonctions FTP
  • Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)

ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_get — Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)

Description

int ftp_nb_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode [, int $resumepos = 0 ] )

ftp_nb_get() lit le fichier remote_file présent sur le serveur FTP ftp_stream et le sauvegarde dans un fichier local.

La différence entre cette fonction et ftp_fget() est que cette fonction peut lire le fichier de manière asynchrone, afin que votre programme fasse autre chose pendant que le fichier est téléchargé.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

local_file

Le chemin vers le fichier local (sera écrasé si le fichier existe déjà).

remote_file

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soit FTP_ASCII ou FTP_BINARY.

resumepos

La position dans le fichier distant à partir de laquelle le téléchargement doit commencer.

Valeurs de retour

Retourne FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple #1 Exemple avec ftp_nb_get()

<?php

// Initialise le téléchargement
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Faites ce que vous voulez...
   echo ".";

   // Continue le téléchargement...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu un problème lors du téléchargement...";
   exit(1);
}
?>

Exemple #2 Reprise d'un téléchargement avec ftp_nb_get()

<?php

// Initialise
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
                      filesize("test"));
// Ou : $ret = ftp_nb_get($my_connection, "test", "README",
//                           FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

   // Faites ce que vous voulez...
   echo ".";

   // Continue le téléchargement...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu un problème lors du téléchargement du fichier...";
   exit(1);
}
?>

Exemple #3 Reprise d'un téléchargement à la position 100 dans un nouveau fichier avec ftp_nb_get()

<?php

// Désactive l'Autoseek
ftp_set_option($my_connection, FTP_AUTOSEEK, false);

// Initialisation
$ret = ftp_nb_get($my_connection, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

   /* ... */

   // Continue le téléchargement...
   $ret = ftp_nb_continue($my_connection);
}
?>

Dans l'exemple ci-dessus, newfile est 100 octets plus petit que README sur le site FTP, car nous avons commencé à lire à l'offset 100. Si nous n'avions pas désactivé l'option FTP_AUTOSEEK, les premiers 100 octets du fichier newfile seraient complétés avec '\0'.

Voir aussi

  • ftp_nb_fget() - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
  • ftp_nb_continue() - Reprend le téléchargement d'un fichier (non bloquant)
  • ftp_fget() - Télécharge un fichier via FTP dans un fichier local
  • ftp_get() - Télécharge un fichier depuis un serveur FTP


Envoie un fichier sur un serveur FTP (non-bloquant)

  • « ftp_nb_get
  • ftp_nlist »
  • PHP Manual
  • Fonctions FTP
  • Envoie un fichier sur un serveur FTP (non-bloquant)

ftp_nb_put

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_put — Envoie un fichier sur un serveur FTP (non-bloquant)

Description

int ftp_nb_put ( resource $ftp_stream , string $remote_file , string $local_file , int $mode [, int $startpos = 0 ] )

ftp_nb_put() écrit le fichier remote_file présent sur la machine locale, sur le serveur FTP ftp_stream.

La différence entre cette fonction et ftp_put() est que cette fonction peut lire le fichier de manière asynchrone, afin que votre programme fasse autre chose pendant que le fichier soit téléchargé.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le chemin vers le fichier distant.

local_file

Le chemin vers le fichier local.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

startpos

La position dans le fichier distant à partir de laquelle le téléchargement commencera.

Valeurs de retour

Retourne FTP_FAILED, FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple #1 Exemple avec ftp_nb_put()

<?php

// Initialisation du chargement
$ret = ftp_nb_put($my_connection, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Faites ce que vous voulez...
   echo ".";

   // Continue le chargement...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu un problème lors du chargement du fichier...";
   exit(1);
}
?>

Exemple #2 Reprise d'un chargement avec ftp_nb_put()

<?php

// Initialisation
$ret = ftp_nb_put($my_connection, "test.remote", "test.local",
                      FTP_BINARY, ftp_size("test.remote"));
// Ou : $ret = ftp_nb_put($my_connection, "test.remote", "test.local",
//                           FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

   // Faites ce que vous voulez...
   echo ".";

   // Continue le chargement...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu un problème lors du chargement...";
   exit(1);
}
?>

Voir aussi

  • ftp_nb_fput() - Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)
  • ftp_nb_continue() - Reprend le téléchargement d'un fichier (non bloquant)
  • ftp_put() - Charge un fichier sur un serveur FTP
  • ftp_fput() - Charge un fichier sur un serveur FTP


Retourne la liste des fichiers d'un dossier

  • « ftp_nb_put
  • ftp_pasv »
  • PHP Manual
  • Fonctions FTP
  • Retourne la liste des fichiers d'un dossier

ftp_nlist

(PHP 4, PHP 5, PHP 7)

ftp_nlist — Retourne la liste des fichiers d'un dossier

Description

array ftp_nlist ( resource $ftp_stream , string $directory )

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

directory

Le dossier à lister. Ce paramètre peut également inclure des arguments, e.g. ftp_nlist($conn_id, "-la /your/dir"); Notez que ce paramètre n'est pas échappé, il peut donc y avoir des comportements non-désirés si le nom des fichiers contient des espaces ou d'autres caractères.

Valeurs de retour

Retourne un tableau de nom de fichiers présent dans le dossier spécifié en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_nlist()

<?php

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Récupération du contenu d'un dossier
$contents = ftp_nlist($conn_id, ".");

// Affichage de $contents
var_dump($contents);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  string(11) "public_html"
  [1]=>
  string(10) "public_ftp"
  [2]=>
  string(3) "www"

Voir aussi

  • ftp_rawlist() - Fait une liste détaillée des fichiers d'un dossier


Active ou désactive le mode passif

  • « ftp_nlist
  • ftp_put »
  • PHP Manual
  • Fonctions FTP
  • Active ou désactive le mode passif

ftp_pasv

(PHP 4, PHP 5, PHP 7)

ftp_pasv — Active ou désactive le mode passif

Description

bool ftp_pasv ( resource $ftp_stream , bool $pasv )

ftp_pasv() active ou non le mode passif. En mode passif, les données de connexion sont initiées par le client, plutôt que par le serveur. Ce mode peut être nécessaire lorsque le client est derrière un pare-feu.

Notez que ftp_pasv() ne peut être appelée qu'après une identification réussie, sinon, la fonction échouera.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

pasv

Si TRUE, le mode passif est activé, sinon, il est désactivé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_pasv()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Activation du mode passif
ftp_pasv($conn_id, true);

// Chargement d'un fichier
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "Le fichier $file a été chargé avec succès\n";
} else {
 echo "Il y a eu un problème lors du chargement du fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>


Charge un fichier sur un serveur FTP

  • « ftp_pasv
  • ftp_pwd »
  • PHP Manual
  • Fonctions FTP
  • Charge un fichier sur un serveur FTP

ftp_put

(PHP 4, PHP 5, PHP 7)

ftp_put — Charge un fichier sur un serveur FTP

Description

bool ftp_put ( resource $ftp_stream , string $remote_file , string $local_file , int $mode [, int $startpos = 0 ] )

ftp_put() enregistre le fichier local_file sur le serveur FTP.

Liste de paramètres

ftp_stream

L'identifiant du lien de la connexion FTP.

remote_file

Le chemin vers le fichier distant.

local_file

Le chemin vers le fichier local.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

startpos

La position dans le fichier distant à partir de laquelle le téléchargement commencera.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_put()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Charge un fichier
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "Le fichier $file a été chargé avec succès\n";
} else {
 echo "Il y a eu un problème lors du chargement du fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi

  • ftp_pasv() - Active ou désactive le mode passif
  • ftp_fput() - Charge un fichier sur un serveur FTP
  • ftp_nb_fput() - Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)
  • ftp_nb_put() - Envoie un fichier sur un serveur FTP (non-bloquant)


Retourne le nom du dossier courant

  • « ftp_put
  • ftp_quit »
  • PHP Manual
  • Fonctions FTP
  • Retourne le nom du dossier courant

ftp_pwd

(PHP 4, PHP 5, PHP 7)

ftp_pwd — Retourne le nom du dossier courant

Description

string ftp_pwd ( resource $ftp_stream )

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

Valeurs de retour

Retourne le nom du dossier courant ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_pwd()

<?php

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Change le dossier en public_html
ftp_chdir($conn_id, 'public_html');

// Affiche le dossier courant
echo ftp_pwd($conn_id); // /public_html

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi

  • ftp_chdir() - Modifie le dossier FTP courant
  • ftp_cdup() - Change de dossier et passe au dossier parent


Alias de ftp_close

  • « ftp_pwd
  • ftp_raw »
  • PHP Manual
  • Fonctions FTP
  • Alias de ftp_close

ftp_quit

(PHP 4, PHP 5, PHP 7)

ftp_quit — Alias de ftp_close()

Description

Cette fonction est un alias de : ftp_close().


Envoie une commande FTP brute

  • « ftp_quit
  • ftp_rawlist »
  • PHP Manual
  • Fonctions FTP
  • Envoie une commande FTP brute

ftp_raw

(PHP 5, PHP 7)

ftp_raw — Envoie une commande FTP brute

Description

array ftp_raw ( resource $ftp_stream , string $command )

ftp_raw() envoie la commande FTP brute command au serveur FTP identifié par ftp_stream.

Liste de paramètres

ftp_stream

La ressource de connexion FTP.

command

La commande à exécuter.

Valeurs de retour

Retourne la réponse du serveur en tant que tableau de chaînes. Aucune analyse n'est faite sur la chaîne réponse, ni si ftp_raw() détermine si la commande a réussi.

Exemples

Exemple #1 Utilisation de ftp_raw() pour s'identifier manuellement sur un serveur FTP

<?php
$fp = ftp_connect("ftp.example.com");

/* Ceci est l'équivalent de  :
   ftp_login($fp, "joeblow", "secret");
 */

ftp_raw($fp, "USER joeblow");
ftp_raw($fp, "PASS secret");
?>

Voir aussi

  • ftp_exec() - Exécute une commande sur un serveur FTP


Fait une liste détaillée des fichiers d'un dossier

  • « ftp_raw
  • ftp_rename »
  • PHP Manual
  • Fonctions FTP
  • Fait une liste détaillée des fichiers d'un dossier

ftp_rawlist

(PHP 4, PHP 5, PHP 7)

ftp_rawlist — Fait une liste détaillée des fichiers d'un dossier

Description

mixed ftp_rawlist ( resource $ftp_stream , string $directory [, bool $recursive = false ] )

ftp_rawlist() exécute la commande FTP LIST, et retourne le résultat dans un tableau.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

directory

Le chemin vers le dossier. Peut inclure les arguments pour la commande LIST.

recursive

Si défini à TRUE, la commande sera LIST -R.

Valeurs de retour

Retourne un tableau où les éléments correspondent à une ligne de texte. Retourne FALSE lorsque le paramètre directory est invalide.

La sortie n'est jamais analysée. L'identifiant du type système retourné par la fonction ftp_systype() peut être utilisé pour déterminer comment les résultats doivent être interprétés.

Exemples

Exemple #1 Exemple avec ftp_rawlist()

<?php

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Récupère la liste des fichiers de /
$buff = ftp_rawlist($conn_id, '/');

// Fermeture de la connexion
ftp_close($conn_id);

// Affiche le buffer
var_dump($buff);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  string(65) "drwxr-x---   3 vincent  vincent      4096 Jul 12 12:16 public_ftp"
  [1]=>
  string(66) "drwxr-x---  15 vincent  vincent      4096 Nov  3 21:31 public_html"
  [2]=>
  string(73) "lrwxrwxrwx   1 vincent  vincent        11 Jul 12 12:16 www -> public_html"
}

Voir aussi

  • ftp_nlist() - Retourne la liste des fichiers d'un dossier


Renomme un fichier sur un serveur FTP

  • « ftp_rawlist
  • ftp_rmdir »
  • PHP Manual
  • Fonctions FTP
  • Renomme un fichier sur un serveur FTP

ftp_rename

(PHP 4, PHP 5, PHP 7)

ftp_rename — Renomme un fichier sur un serveur FTP

Description

bool ftp_rename ( resource $ftp_stream , string $oldname , string $newname )

ftp_rename() renomme le fichier ou le dossier oldname en newname, sur le serveur ftp_stream.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

oldname

L'ancien nom du dossier / fichier.

newname

Le nouveau nom.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_rename()

<?php
$old_file = 'somefile.txt.bak';
$new_file = 'somefile.txt';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tentative de renommage de $old_file en $new_file
if (ftp_rename($conn_id, $old_file, $new_file)) {
 echo "Renommage avec succès de $old_file en $new_file\n";
} else {
 echo "Il y a eu un problème lors du renommage de $old_file en $new_file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>


Efface un dossier FTP

  • « ftp_rename
  • ftp_set_option »
  • PHP Manual
  • Fonctions FTP
  • Efface un dossier FTP

ftp_rmdir

(PHP 4, PHP 5, PHP 7)

ftp_rmdir — Efface un dossier FTP

Description

bool ftp_rmdir ( resource $ftp_stream , string $directory )

ftp_rmdir() efface le dossier directory.

Liste de paramètres

ftp_stream

L'identification du lien de connexion FTP.

directory

Le dossier à effacer. Ce doit être soit un chemin absolu, soit un chemin relatif vers un dossier vide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_rmdir()

<?php

$dir = 'www/';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tentative d'effacement du dossier $dir
if (ftp_rmdir($conn_id, $dir)) {
    echo "Le dossier $dir a été effacé avec succès\n";
} else {
    echo "Il y a eu un problème lors de l'effacement du dossier $dir\n";
}

ftp_close($conn_id);

?>

Voir aussi

  • ftp_mkdir() - Crée un dossier sur un serveur FTP


Modifie les options de la connexion FTP

  • « ftp_rmdir
  • ftp_site »
  • PHP Manual
  • Fonctions FTP
  • Modifie les options de la connexion FTP

ftp_set_option

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ftp_set_option — Modifie les options de la connexion FTP

Description

bool ftp_set_option ( resource $ftp_stream , int $option , mixed $value )

ftp_set_option() contrôle diverses options de connexion pour une connexion FTP.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

option

Actuellement, les options suivantes sont supportées :

Options FTP supportées
FTP_TIMEOUT_SEC | Modifie le délai de connexion en secondes utilisé pour toutes les fonctions au réseau. value doit être un entier plus grand que 0. Le délai de connexion par défaut est de 90 secondes.
FTP_AUTOSEEK | Lorsqu'actif, les requêtes GET ou PUT avec un paramètre resumepos ou startpos se positionnera d'abord à la position désirée dans le fichier. Ceci est actif par défaut.

value

Ce paramètre dépend de l'option option que l'on veut modifier.

Valeurs de retour

Retourne TRUE si l'option a pû être modifiée, FALSE sinon. Un message d'alerte sera envoyé si option n'est pas supportée ou bien si la valeur value ne correspond pas à la valeur attendue pour l'option option donnée.

Exemples

Exemple #1 Exemple avec ftp_set_option()

<?php
// Définition du délai de connexion à 10 secondes
ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 10);
?>

Voir aussi

  • ftp_get_option() - Lit différentes options pour la connexion FTP courante


Exécute la commande SITE sur un serveur FTP

  • « ftp_set_option
  • ftp_size »
  • PHP Manual
  • Fonctions FTP
  • Exécute la commande SITE sur un serveur FTP

ftp_site

(PHP 4, PHP 5, PHP 7)

ftp_site — Exécute la commande SITE sur un serveur FTP

Description

bool ftp_site ( resource $ftp_stream , string $command )

ftp_site() exécute la commande SITE sur le serveur FTP.

Les commandes SITE ne sont pas normalisées, et peuvent varier d'un serveur à l'autre. Elles permettent de gérer notamment les permissions de fichiers, et les groupes.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

command

La commande SITE. Notez que ce paramètre n'est pas échappé, il peut donc y avoir des comportements non-désirés si le nom des fichiers contient des espaces ou d'autres caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Envoi d'une commande SITE à un serveur FTP

<?php
// Connexion au serveur FTP
$conn = ftp_connect('ftp.example.com');
if (!$conn) die('Impossible de se connecter au serveur ftp.example.com');

// Identification avec l'utilisateur "user" et le mot de passe "pass"
if (!ftp_login($conn, 'user', 'pass')) die('Erreur d\'identification au serveur ftp.example.com');

// Résultat : commande "SITE CHMOD 0600 /home/user/privatefile" sur le serveur ftp
if (ftp_site($conn, 'CHMOD 0600 /home/user/privatefile')) {
   echo "La commande a été exécutée avec succès.\n";
} else {
   die('La commande a échouée.');
}
?>

Voir aussi

  • ftp_raw() - Envoie une commande FTP brute


Retourne la taille d'un fichier

  • « ftp_site
  • ftp_ssl_connect »
  • PHP Manual
  • Fonctions FTP
  • Retourne la taille d'un fichier

ftp_size

(PHP 4, PHP 5, PHP 7)

ftp_size — Retourne la taille d'un fichier

Description

int ftp_size ( resource $ftp_stream , string $remote_file )

ftp_size() retourne la taille d'un fichier donné en octets.

Note:

Tous les serveurs ne supportent pas cette fonctionnalité.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le fichier distant.

Valeurs de retour

Retourne la taille du fichier en cas de succès, ou -1 si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_size()

<?php

$file = 'somefile.txt';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Récupération de la taille du fichier $file
$res = ftp_size($conn_id, $file);

if ($res != -1) {
    echo "La taille du fichier $file est de $res octets";
} else {
    echo "Impossible de récupérer la taille du fichier";
}

// Fermeture de la connexion
ftp_close($conn_id);

?>

Voir aussi

  • ftp_rawlist() - Fait une liste détaillée des fichiers d'un dossier


Ouvre une connexion FTP sécurisée avec SSL

  • « ftp_size
  • ftp_systype »
  • PHP Manual
  • Fonctions FTP
  • Ouvre une connexion FTP sécurisée avec SSL

ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_ssl_connect — Ouvre une connexion FTP sécurisée avec SSL

Description

resource ftp_ssl_connect ( string $host [, int $port = 21 [, int $timeout = 90 ]] )

ftp_ssl_connect() ouvre explicitement une connexion FTP sécurisée avec SSL sur l'hôte host spécifié.

Note: Pourquoi cette fonction peut ne pas exister ?

ftp_ssl_connect() n'est disponible que si le module ftp et le support OpenSSL sont compilés statiquement dans PHP, cela signifie que, sous Windows, cette fonction sera indéfinie dans la version officielle de PHP. Afin d'utiliser cette fonction sous Windows, vous devez compiler vos propres binaires PHP.

Note:

ftp_ssl_connect() n'est pas prévu pour fonctionner avec sFTP. Pour utiliser sFTP avec PHP, reportez-vous à la fonction ssh2_sftp().

Liste de paramètres

host

L'adresse FTP du serveur. Ce paramètre ne doit pas comporter de slash final et ne doit pas être préfixé par ftp://.

port

Ce paramètre spécifie un port alternatif de connexion. S'il est omis ou défini à zéro, alors le port par défaut FTP, 21, sera utilisé.

timeout

Ce paramètre spécifie le délai de connexion pour toutes les opérations sur le réseau. S'il est omis, la valeur par défaut sera de 90 secondes. Ce délai de connexion peut être modifié et consulté à tout moment avec les fonctions ftp_set_option() et ftp_get_option().

Valeurs de retour

Retourne un flux SSL-FTP en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.2.2 | Cette fonction retourne FALSE lorsqu'elle ne peut pas utiliser une connexion SSL, au lieu d'utiliser à la place une connexion non-SSL.

Exemples

Exemple #1 Exemple avec ftp_ssl_connect()

<?php

// Mise en place d'une connexion basique
$conn_id = ftp_ssl_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

echo ftp_pwd($conn_id);

// Fermeture de la connexion SSL
ftp_close($conn_id);
?>

Voir aussi

  • ftp_connect() - Ouvre une connexion FTP


Retourne un identifiant de type de serveur FTP

  • « ftp_ssl_connect
  • Gearman »
  • PHP Manual
  • Fonctions FTP
  • Retourne un identifiant de type de serveur FTP

ftp_systype

(PHP 4, PHP 5, PHP 7)

ftp_systype — Retourne un identifiant de type de serveur FTP

Description

string ftp_systype ( resource $ftp_stream )

ftp_systype() retourne le type de serveur FTP distant.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

Valeurs de retour

Retourne le type de serveur distant ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ftp_systype()

<?php

// Connexion ftp
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'user', 'password');

// Récupération du type de serveur
if ($type = ftp_systype($ftp)) {
    echo "Example.com est exécuté par $type\n";
} else {
    echo "Impossible de récupérer le type du serveur";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Example.com est exécuté par UNIX


Gearman

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
  • GearmanClient — La classe GearmanClient
    • GearmanClient::addOptions — Ajoute des options au client
    • GearmanClient::addServer — Ajoute un serveur de tâches au client
    • GearmanClient::addServers — Ajoute une liste de serveurs de tâches au client
    • GearmanClient::addTask — Ajoute une tâche à exécuter en parallèle
    • GearmanClient::addTaskBackground — Ajoute une tâche d'arrière-plan pour une exécution en parallèle
    • GearmanClient::addTaskHigh — Ajoute une tâche de forte priorité à effectuer en parallèle
    • GearmanClient::addTaskHighBackground — Ajoute une tâche de fond de forte priorité à effectuer en parallèle
    • GearmanClient::addTaskLow — Ajoute une tâche de faible priorité à effectuer en parallèle
    • GearmanClient::addTaskLowBackground — Ajoute une tâche de fond de faible priorité à effectuer en parallèle
    • GearmanClient::addTaskStatus — Ajoute une tâche pour obtenir le statut
    • GearmanClient::clearCallbacks — Efface toutes les fonctions de rappel des tâches
    • GearmanClient::clone — Crée une copie de l'objet GearmanClient
    • GearmanClient::__construct — Crée une instance GearmanClient
    • GearmanClient::context — Récupère le contexte de l'application
    • GearmanClient::data — Récupère les données de l'application (obsolète)
    • GearmanClient::do — Exécute une seule tâche et retourne le résultat (obsolète)
    • GearmanClient::doBackground — Exécute une tâche en arrière-plan
    • GearmanClient::doHigh — Exécute une seule tâche en priorité haute
    • GearmanClient::doHighBackground — Exécute une tâche en priorité haute en arrière plan
    • GearmanClient::doJobHandle — Récupère le gestionnaire de travaux pour la tâche en cours
    • GearmanClient::doLow — Exécute une seule tâche en priorité basse
    • GearmanClient::doLowBackground — Exécute une tâche en priorité basse en arrière-plan
    • GearmanClient::doNormal — Exécute une tâche et retourne le résultat
    • GearmanClient::doStatus — Récupère le statut de la tâche en cours
    • GearmanClient::echo — Envoi des données à tous les serveurs de travaux afin de vérifier qu'ils les affichent en retour (obsolète)
    • GearmanClient::error — Retourne la dernière erreur rencontrée sous forme de chaîne de caractères
    • GearmanClient::getErrno — Récupère la valeur d'errno
    • GearmanClient::jobStatus — Récupère le statut d'un travail en arrière-plan
    • GearmanClient::ping — Envoi des données à tous les serveurs de tâches pour s'assurer qu'ils sont toujours en fonctionnement
    • GearmanClient::removeOptions — Supprime les options du client
    • GearmanClient::returnCode — Récupère le dernier code Gearman retourné
    • GearmanClient::runTasks — Exécute une liste de tâches en parallèle
    • GearmanClient::setClientCallback — Définit une fonction de rappel lorsqu'un paquet de données est reçu pour une tâche (obsolète)
    • GearmanClient::setCompleteCallback — Définit une fonction à appeler une fois la tâche terminée
    • GearmanClient::setContext — Définit le contexte d'une application
    • GearmanClient::setCreatedCallback — Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente
    • GearmanClient::setData — Définit les données de l'application (obsolète)
    • GearmanClient::setDataCallback — Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche
    • GearmanClient::setExceptionCallback — Définit une fonction de rappel pour les exceptions émises par l'agent
    • GearmanClient::setFailCallback — Définit une fonction de rappel à appeler lorsqu'un travail échoue
    • GearmanClient::setOptions — Définit les options du client
    • GearmanClient::setStatusCallback — Définit une fonction de rappel pour collecter les statuts d'une tâche
    • GearmanClient::setTimeout — Définit le délai d'attente d'une activité du socket I/O
    • GearmanClient::setWarningCallback — Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent
    • GearmanClient::setWorkloadCallback — Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales
    • GearmanClient::timeout — Récupère la valeur du délai d'activité du socket I/O
  • GearmanJob — La classe GearmanJob
    • GearmanJob::complete — Envoie les résultats ainsi que le statut complet (obsolète)
    • GearmanJob::__construct — Crée une nouvelle instance GearmanJob
    • GearmanJob::data — Envoie des données pour un travail en cours d'exécution (obsolète)
    • GearmanJob::exception — Envoie une exception pour un travail en cours d'exécution (obsolète)
    • GearmanJob::fail — Envoie un statut d'échec (obsolète)
    • GearmanJob::functionName — Récupère le nom de la fonction
    • GearmanJob::handle — Récupère le gestionnaire de travaux
    • GearmanJob::returnCode — Récupère le dernier code retourné
    • GearmanJob::sendComplete — Envoie le résultat ainsi que le statut complet
    • GearmanJob::sendData — Envoie les données pour un travail en cours d'exécution
    • GearmanJob::sendException — Envoie une exception pour un travail en cours d'exécution
    • GearmanJob::sendFail — Envoie un statut d'échec
    • GearmanJob::sendStatus — Envoie un statut
    • GearmanJob::sendWarning — Envoie une alerte
    • GearmanJob::setReturn — Définit une valeur de retour
    • GearmanJob::status — Envoie un statut (obsolète)
    • GearmanJob::unique — Récupère l'identifiant unique
    • GearmanJob::warning — Envoie une alerte (obsolète)
    • GearmanJob::workload — Récupère la charge de travail
    • GearmanJob::workloadSize — Récupère la taille de la charge de travail
  • GearmanTask — La classe GearmanTask
    • GearmanTask::__construct — Crée une instance GearmanTask
    • GearmanTask::create — Crée une tâche (obsolète)
    • GearmanTask::data — Récupère les données retournées par une tâche
    • GearmanTask::dataSize — Récupère la taille des données retournées
    • GearmanTask::function — Récupère le nom de la fonction associée (obsolète)
    • GearmanTask::functionName — Récupère le nom de la fonction associée
    • GearmanTask::isKnown — Vérifie si une tâche est connue
    • GearmanTask::isRunning — Vérifie si la tâche est actuellement en fonctionnement
    • GearmanTask::jobHandle — Récupère le gestionnaire de travaux
    • GearmanTask::recvData — Lit le travail ou les données retournées par une tâche dans un buffer
    • GearmanTask::returnCode — Récupère le dernier code retourné
    • GearmanTask::sendData — Envoie des données pour une tâche (obsolète)
    • GearmanTask::sendWorkload — Envoie les données pour une tâche
    • GearmanTask::taskDenominator — Récupère le dénominateur du taux de réalisation
    • GearmanTask::taskNumerator — Récupère le numérateur du taux de réalisation
    • GearmanTask::unique — Récupère l'identifiant unique de la tâche
    • GearmanTask::uuid — Récupère l'identifiant unique pour une tâche (obsolète)
  • GearmanWorker — La classe GearmanWorker
    • GearmanWorker::addFunction — Enregistre et ajoute une fonction de rappel
    • GearmanWorker::addOptions — Ajout des options à l'agent
    • GearmanWorker::addServer — Ajoute un serveur de travaux
    • GearmanWorker::addServers — Ajoute plusieurs serveurs de travaux
    • GearmanWorker::clone — Crée une copie d'un agent
    • GearmanWorker::__construct — Crée une instance GearmanWorker
    • GearmanWorker::echo — Test la réponse d'un serveur de travaux
    • GearmanWorker::error — Récupère la dernière erreur survenue
    • GearmanWorker::getErrno — Récupère la errno
    • GearmanWorker::options — Récupère les options de l'agent
    • GearmanWorker::register — Enregistre une fonction sur un serveur de travaux
    • GearmanWorker::removeOptions — Supprime des options de l'agent
    • GearmanWorker::returnCode — Récupère le dernier code Gearman retourné
    • GearmanWorker::setId — Définit un identifiant au worker
    • GearmanWorker::setOptions — Définit les options de l'agent
    • GearmanWorker::setTimeout — Définit le délai d'attente maximal d'activité du socket I/O
    • GearmanWorker::timeout — Récupère le délai d'attente de l'activité du socket I/O
    • GearmanWorker::unregister — Supprime une fonction des serveurs de travaux
    • GearmanWorker::unregisterAll — Supprime toutes les fonctions des serveurs de travaux
    • GearmanWorker::wait — Attente une activité d'un ou plusieurs serveurs de travaux
    • GearmanWorker::work — Attend et exécute un travail
  • GearmanException — La classe GearmanException


Introduction

» Gearman est un framework applicatif générique pour distribuer des tâches à plusieurs machines ou plusieurs processus. Il permet à une application d'effectuer des tâches en parallèle, de distribuer la charge de calcul et de faire des appels de fonctions entre plusieurs langages. Ce framework peut être utilisé dans nombre d'applications, des sites web haute-disponibilité au transport d'événements de réplication de base de données.

Cette extension fournit des classes pour écrire des clients ou des agents Gearman.


Pré-requis

Cette extension nécessite les bibliothèques » libgearman, » libevent and » uuid ainsi qu'un serveur Gearman.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/gearman


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Valeurs de retour. Cherchez toujours une chaîne de caractères d'erreur dans GearmanClient::error() ou GearmanWorker() car davantage de détails peuvent être disponibles :

GEARMAN_SUCCESS (entier)
Quelque soit l'action entreprise, elle a été couronnée de succès.
GEARMAN_IO_WAIT (entier)
En mode non-bloquant, un événement qui aurait été bloquant a été atteint.
GEARMAN_ERRNO (entier)
Une erreur système. Cherchez dans GearmanClient::errno() ou GearmanWorker::errno() le code d'erreur système qui a été retourné.
GEARMAN_NO_ACTIVE_FDS (entier)
GearmanClient::wait() ou GearmanWorker() a été appelé sans connexion.
GEARMAN_UNEXPECTED_PACKET (entier)
Indique que quelque chose de grave est survenu dans gearmand. S'applique seulement à GearmanWorker.
GEARMAN_GETADDRINFO (entier)
La résolution DNS a échoué (hôte ou port invalide, etc).
GEARMAN_NO_SERVERS (entier)
Aucun appel à GearmanClient::addServer() n'a été fait avant de soumettre une tâche.
GEARMAN_LOST_CONNECTION (entier)
Perte de connexion pendant une requête.
GEARMAN_MEMORY_ALLOCATION_FAILURE (entier)
L'allocation mémoire a échoué (plus de mémoire disponible).
GEARMAN_SERVER_ERROR (entier)
Quelque chose s'est mal passé avec le serveur Gearman qui n'a pas pu traiter la requête comme il se doit.
GEARMAN_WORK_DATA (entier)
Un code d'erreur de notification obtenu avec GearmanClient::returnCode() lors de l'utilisation de GearmanClient::do(). Envoyé pour mettre à jour le cliet avec les données de la tâche courante. Un agent l'utilise quand il a besoin d'envoyer des mises à jour, d'envoyer des résultats partiels ou pour évacuer les données lors de tâches longues.
GEARMAN_WORK_WARNING (entier)
Un code d'erreur de notification obtenu avec GearmanClient::returnCode() lors de l'utilisation de GearmanClient::do(). Met à jour le client avec un avertissement. Le comportement est le même qu'avec GEARMAN_WORK_DATA, sauf qu'il devrait être traité comme un avertissement plutôt que comme les données d'une réponse normale.
GEARMAN_WORK_STATUS (entier)
Un code d'erreur de notification obtenu avec GearmanClient::returnCode() lors de l'utilisation de GearmanClient::do(). Envoyé pour mettre à jour le statut d'une tâche longue. Utilisez GearmanClient::doStatus() pour obtenir le pourcentage de complétion de la tâche.
GEARMAN_WORK_EXCEPTION (entier)
Un code d'erreur de notification obtenu avec GearmanClient::returnCode() lors de l'utilisation de GearmanClient::do(). Indique qu'une tâche a échoué en levant une exception donnée.
GEARMAN_WORK_FAIL (entier)
Un code d'erreur de notification obtenu avec GearmanClient::returnCode() lors de l'utilisation de GearmanClient::do(). Indique qu'une tâche a échoué.
GEARMAN_COULD_NOT_CONNECT (entier)
Echec de la connexion aux serveurs.
GEARMAN_INVALID_FUNCTION_NAME (entier)
Tentative de référencement d'une fonction avec un nom NULL ou utilisation de l'interface de rappel sans spécifier les rappels.
GEARMAN_INVALID_WORKER_FUNCTION (entier)
Tentative de référencement d'une fonction avec une fonction de rappel NULL.
GEARMAN_NO_REGISTERED_FUNCTIONS (entier)
Quand un agent reçoit une tâche pour une fonction qu'il n'a pas référencée.
GEARMAN_NO_JOBS (entier)
Pour un agent non-bloquant, quand GearmanWorker::work() n'a aucune tâche active.
GEARMAN_ECHO_DATA_CORRUPTION (entier)
Après GearmanClient::echo() ou GearmanWorker::echo(), les données retournées ne correspondent pas aux données envoyées.
GEARMAN_NEED_WORKLOAD_FN (entier)
Quand le client a fait le choix de diffuser la charge de travail sur une tâche, mais n'a pas spécifié de fonction de retour de la charge de travail.
GEARMAN_PAUSE (entier)
Pour l'interface de tâche cliente non-bloquante, peut être retourné à partir du retour de la tâche pour "mettre en pause" l'appel et le retour de GearmanClient::runTasks(). Appelez de nouveau GearmanClient::runTasks() pour continuer.
GEARMAN_UNKNOWN_STATE (entier)
Erreur d'état client/agent interne.
GEARMAN_SEND_BUFFER_TOO_SMALL (entier)
Erreur interne : a essayé d'évacuer davantage de données que possible dans un paquet atomique, à cause de tailles de tampons codées en dur.
GEARMAN_TIMEOUT (entier)
La limite de temps de l'agent/du client a été atteinte.

Les options GearmanClient :

GEARMAN_CLIENT_GENERATE_UNIQUE (integer)
Génère un identifiant unique (UUID) pour chaque tache.
GEARMAN_CLIENT_NON_BLOCKING (entier)
Lance le client en mode non-bloquant.
GEARMAN_CLIENT_UNBUFFERED_RESULT (entier)
Permet au client de lire les données par paquets plutôt que ce soit la bibliothèque qui mette en tampon les données et les transmette.
GEARMAN_CLIENT_FREE_TASKS (entier)
Libère automatiquement les objets des tâches une fois celles-ci effectées. C'est le paramétrage par défaut de cette extension pour éviter les fuites de mémoire.

Les options GearmanWorker :

GEARMAN_WORKER_NON_BLOCKING (entier)
Lance l'agent en mode non-bloquant.
GEARMAN_WORKER_GRAB_UNIQ (entier)
Retourne l'identifiant unique alloué au client en plus du descripteur de tâche.

Configuration de base de Gearman :

GEARMAN_DEFAULT_TCP_HOST (chaîne de caractères)
GEARMAN_DEFAULT_TCP_PORT (entier)
GEARMAN_DEFAULT_SOCKET_TIMEOUT (entier)
GEARMAN_DEFAULT_SOCKET_SEND_SIZE (entier)
GEARMAN_DEFAULT_SOCKET_RECV_SIZE (entier)
GEARMAN_MAX_ERROR_SIZE (entier)
GEARMAN_PACKET_HEADER_SIZE (entier)
GEARMAN_JOB_HANDLE_SIZE (entier)
GEARMAN_OPTION_SIZE (entier)
GEARMAN_UNIQUE_SIZE (entier)
GEARMAN_MAX_COMMAND_ARGS (entier)
GEARMAN_ARGS_BUFFER_SIZE (entier)
GEARMAN_SEND_BUFFER_SIZE (entier)
GEARMAN_RECV_BUFFER_SIZE (entier)
GEARMAN_WORKER_WAIT_TIMEOUT (entier)


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • Gearman
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Exemple #1 Client et agen Gearman simple

Cet exemple montre un client et un agent simple. Le client envoie une chaîne de caractères au serveur de travaux, et l'agent inverse la chaîne de caractères et la retourne. Le travail est exécuté de façon synchronisée.

<?php

# Crée un nouveau client.
$gmclient= new GearmanClient();

# Ajoute un serveur par défaut (localhost).
$gmclient->addServer();

echo "Envoie du travail\n";

# Envoie le travail d'inversion
do
{
  $result = $gmclient->do("reverse", "Hello!");

  # Vérifie les paquets et les erreurs retournés.
  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      echo "Données : $result\n";
      break;
    case GEARMAN_WORK_STATUS:
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Statut : $numerator/$denominator complete\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Échec\n";
      exit;
    case GEARMAN_SUCCESS:
      echo "Succès: $result\n";
      break;
    default:
      echo "Code retourné : " . $gmclient->returnCode() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

?>
<?php

echo "Début\n";

# Crée un nouvel agent.
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" avec le serveur. Modifie la fonction
# de l'agent en "reverse_fn_fast" pour en améliorer la rapidité avec aucun affichage.
$gmworker->addFunction("reverse", "reverse_fn");

print "Attente d'un travail...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code : " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Travail reçu : " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Charge de l'agent : $workload ($workload_size)\n";

  # Cette boucle n'est pas nécessaire, mais montre simplement le fonctionnement
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Envoie du statut : " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x, $workload_size);
    sleep(1);
  }

  $result= strrev($workload);
  echo "Résultat : $result\n";

  # On retourne ce que l'on veut au client.
  return $result;
}

# Une version plus simple et moins verbeuse de la fonction ci-dessus pourrait être :
function reverse_fn_fast($job)
{
  return strrev($job->workload());
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

% php reverse_worker.php
Début
Attente d'un travail...
Travail reçu : H:foo.local:36
Charge de l'agent : Hello! (6)
Envoie du statut : 1/6 complete
Envoie du statut : 2/6 complete
Envoie du statut : 3/6 complete
Envoie du statut : 4/6 complete
Envoie du statut : 5/6 complete
Envoie du statut : 6/6 complete
Résultat : !olleH

% php reverse_client.php
Début
Envoie du travail
Statut : 1/6 complete
Statut : 2/6 complete
Statut : 3/6 complete
Statut : 4/6 complete
Statut : 5/6 complete
Statut : 6/6 complete
Succès : !olleH


  • « Utilisation simple
  • »
  • PHP Manual
  • Exemples

Exemple #1 Client et agent Gearman simple, en arrière-plan

Cet exemple montre un client et un agent simple. Le client envoie une chaîne de caractères au serveur de travaux en tant que travail d'arrière-plan, et l'agent renverse la chaîne de caractères. Notez que vu l'exécution asynchrone de l'agent, le client n'attend pas la fin et qu'il sort (y compris lorsqu'il ne reçoit pas les résultats).

<?php

# Crée un objet client
$gmclient= new GearmanClient();

# Ajoute un serveur par défaut (localhost)
$gmclient->addServer();

# Exécute le client en arrière-plan
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo "Mauvais code retour\n";
  exit;
}

echo "fait !\n";

?>
<?php

echo "Début\n";

# Crée un nouvel agent
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" sur le serveur. Modifie la fonction de l'agent en
# "reverse_fn_fast" pour une exécution plus rapide sans affichage.
$gmworker->addFunction("reverse", "reverse_fn");

print "Attente d'un travail...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code : " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Travail reçu : " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Charge de l'agent : $workload ($workload_size)\n";

  # Cette boucle n'est pas nécessaire, mais nous l'utilisons pour en comprendre le fonctionnement
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Envoi du statut : " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x, $workload_size);
    sleep(1);
  }

  $result= strrev($workload);
  echo "Résultat : $result\n";

  # Retourne ce que l'on veut au client.
  return $result;
}

# Une version plus simple et moins vebeuse de la fonction ci-dessus serait :
function reverse_fn_fast($job)
{
  return strrev($job->workload());
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

% php reverse_worker.php
Début
Attente d'un travail...
Travail reçu : H:foo.local:41
Charge de l'agent : this is a test (14)
1/14 complete
2/14 complete
3/14 complete
4/14 complete
5/14 complete
6/14 complete
7/14 complete
8/14 complete
9/14 complete
10/14 complete
11/14 complete
12/14 complete
13/14 complete
14/14 complete
Résultat : tset a si siht

% php reverse_client_bg.php
Fait !


  • «
  • GearmanClient »
  • PHP Manual
  • Exemples

Exemple #1 Client et agent Gearman simple, avec la soumission de tâches

Dans cet exemple, le client "reverse" a été étendu pour exécuter 2 tâches en parallèle. L'agent "reverse" est inchangé, mise à part qu'il retourne des données durant le processus.

<?php

# Crée un client gearman
$gmc= new GearmanClient();

# Ajoute un serveur par défaut (localhost)
$gmc->addServer();

# Enregistre quelques fonctions de rappel
$gmc->setCreatedCallback("reverse_created");
$gmc->setDataCallback("reverse_data");
$gmc->setStatusCallback("reverse_status");
$gmc->setCompleteCallback("reverse_complete");
$gmc->setFailCallback("reverse_fail");

# Définit quelques données arbitraires pour l'application
$data['foo'] = 'bar';

# Ajoute 2 tâches
$task= $gmc->addTask("reverse", "foo", $data);
$task2= $gmc->addTaskLow("reverse", "bar", NULL);

# Exécute les tâches en parallèle (en assumant plusieurs agents)
if (! $gmc->runTasks())
{
    echo "ERREUR " . $gmc->error() . "\n";
    exit;
}

echo "Fait !\n";

function reverse_created($task)
{
    echo "Créé : " . $task->jobHandle() . "\n";
}

function reverse_status($task)
{
    echo "STATUT : " . $task->jobHandle() . " - " . $task->taskNumerator() .
         "/" . $task->taskDenominator() . "\n";
}

function reverse_complete($task)
{
    echo "TERMINÉ : " . $task->jobHandle() . ", " . $task->data() . "\n";
}

function reverse_fail($task)
{
    echo "ÉCHEC : " . $task->jobHandle() . "\n";
}

function reverse_data($task)
{
    echo "DONNÉES : " . $task->data() . "\n";
}

?>
<?php

echo "Début\n";

# Crée un nouvel agent.
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" avecle serveur. Modifie la fonction de l'agent en
# "reverse_fn_fast" pour être plus rapide sans affichage.
$gmworker->addFunction("reverse", "reverse_fn");

print "Attente d'un travail...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code : " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Travail reçu : " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Charge de l'agent : $workload ($workload_size)\n";

  # Cette boucle n'est pas nécessaire, mais nous l'utilisons pour en comprendre le fonctionnement
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Envoi du statut : " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Résultat : $result\n";

  # Retourne ce que l'on veut au client.
  return $result;
}

# Une version plus simple et moins vebeuse de la fonction ci-dessus serait :
function reverse_fn_fast($job)
{
  return strrev($job->workload());
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

% php reverse_worker.php
Début
Attente d'un travail...
Travail reçu : H:foo.local:45
Charge de l'agent : foo (3)
1/3 complete
2/3 complete
3/3 complete
Result: oof
Travail reçu : H:foo.local:44
Charge de l'agent : bar (3)
1/3 complete
2/3 complete
3/3 complete
Résultat : rab

% php reverse_client_task.php
Créé : H:foo.local:44
Créé : H:foo.local:45
STATUT : H:foo.local:45 - 1/3
DONNÉES : f
STATUT : H:foo.local:45 - 2/3
DONNÉES : o
STATUT : H:foo.local:45 - 3/3
DONNÉES : o
TERMINÉ : H:foo.local:45, oof
STATUT : H:foo.local:44 - 1/3
DONNÉES : b
STATUT : H:foo.local:44 - 2/3
DONNÉES : a
STATUT : H:foo.local:44 - 3/3
DONNÉES : r
TERMINÉ : H:foo.local:44, rab
FAIT


La classe GearmanClient

(PECL gearman >= 0.5.0)

Introduction

Représente une classe pour se connecter à un serveur de tâches Gearman et lui soumettre des requêtes pour appliquer des fonctions sur les données fournies. La fonction appliquée doit faire partie de celles référencées par un agent Gearman et les données traitées restent opaques du point de vue du serveur de tâches.

Synopsis de la classe

GearmanClient {
/* Méthodes */
public bool addOptions ( int $options )
public bool addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] )
public bool addServers ([ string $servers = 127.0.0.1:4730 ] )
public GearmanTask addTask ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskHigh ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskHighBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskLow ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskLowBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskStatus ( string $job_handle [, string &$context ] )
public bool clearCallbacks ( void )
public GearmanClient clone ( void )
public __construct ( void )
public string context ( void )
public string data ( void )
public string do ( string $function_name , string $workload [, string $unique ] )
public string doBackground ( string $function_name , string $workload [, string $unique ] )
public string doHigh ( string $function_name , string $workload [, string $unique ] )
public string doHighBackground ( string $function_name , string $workload [, string $unique ] )
public string doJobHandle ( void )
public string doLow ( string $function_name , string $workload [, string $unique ] )
public string doLowBackground ( string $function_name , string $workload [, string $unique ] )
public string doNormal ( string $function_name , string $workload [, string $unique ] )
public array doStatus ( void )
public bool echo ( string $workload )
public string error ( void )
public int getErrno ( void )
public array jobStatus ( string $job_handle )
public bool ping ( string $workload )
public bool removeOptions ( int $options )
public int returnCode ( void )
public bool runTasks ( void )
public void setClientCallback ( callable $callback )
public bool setCompleteCallback ( callable $callback )
public bool setContext ( string $context )
public bool setCreatedCallback ( string $callback )
public bool setData ( string $data )
public bool setDataCallback ( callable $callback )
public bool setExceptionCallback ( callable $callback )
public bool setFailCallback ( callable $callback )
public bool setOptions ( int $options )
public bool setStatusCallback ( callable $callback )
public bool setTimeout ( int $timeout )
public bool setWarningCallback ( callable $callback )
public bool setWorkloadCallback ( callable $callback )
public int timeout ( void )
}

Sommaire

  • GearmanClient::addOptions — Ajoute des options au client
  • GearmanClient::addServer — Ajoute un serveur de tâches au client
  • GearmanClient::addServers — Ajoute une liste de serveurs de tâches au client
  • GearmanClient::addTask — Ajoute une tâche à exécuter en parallèle
  • GearmanClient::addTaskBackground — Ajoute une tâche d'arrière-plan pour une exécution en parallèle
  • GearmanClient::addTaskHigh — Ajoute une tâche de forte priorité à effectuer en parallèle
  • GearmanClient::addTaskHighBackground — Ajoute une tâche de fond de forte priorité à effectuer en parallèle
  • GearmanClient::addTaskLow — Ajoute une tâche de faible priorité à effectuer en parallèle
  • GearmanClient::addTaskLowBackground — Ajoute une tâche de fond de faible priorité à effectuer en parallèle
  • GearmanClient::addTaskStatus — Ajoute une tâche pour obtenir le statut
  • GearmanClient::clearCallbacks — Efface toutes les fonctions de rappel des tâches
  • GearmanClient::clone — Crée une copie de l'objet GearmanClient
  • GearmanClient::__construct — Crée une instance GearmanClient
  • GearmanClient::context — Récupère le contexte de l'application
  • GearmanClient::data — Récupère les données de l'application (obsolète)
  • GearmanClient::do — Exécute une seule tâche et retourne le résultat (obsolète)
  • GearmanClient::doBackground — Exécute une tâche en arrière-plan
  • GearmanClient::doHigh — Exécute une seule tâche en priorité haute
  • GearmanClient::doHighBackground — Exécute une tâche en priorité haute en arrière plan
  • GearmanClient::doJobHandle — Récupère le gestionnaire de travaux pour la tâche en cours
  • GearmanClient::doLow — Exécute une seule tâche en priorité basse
  • GearmanClient::doLowBackground — Exécute une tâche en priorité basse en arrière-plan
  • GearmanClient::doNormal — Exécute une tâche et retourne le résultat
  • GearmanClient::doStatus — Récupère le statut de la tâche en cours
  • GearmanClient::echo — Envoi des données à tous les serveurs de travaux afin de vérifier qu'ils les affichent en retour (obsolète)
  • GearmanClient::error — Retourne la dernière erreur rencontrée sous forme de chaîne de caractères
  • GearmanClient::getErrno — Récupère la valeur d'errno
  • GearmanClient::jobStatus — Récupère le statut d'un travail en arrière-plan
  • GearmanClient::ping — Envoi des données à tous les serveurs de tâches pour s'assurer qu'ils sont toujours en fonctionnement
  • GearmanClient::removeOptions — Supprime les options du client
  • GearmanClient::returnCode — Récupère le dernier code Gearman retourné
  • GearmanClient::runTasks — Exécute une liste de tâches en parallèle
  • GearmanClient::setClientCallback — Définit une fonction de rappel lorsqu'un paquet de données est reçu pour une tâche (obsolète)
  • GearmanClient::setCompleteCallback — Définit une fonction à appeler une fois la tâche terminée
  • GearmanClient::setContext — Définit le contexte d'une application
  • GearmanClient::setCreatedCallback — Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente
  • GearmanClient::setData — Définit les données de l'application (obsolète)
  • GearmanClient::setDataCallback — Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche
  • GearmanClient::setExceptionCallback — Définit une fonction de rappel pour les exceptions émises par l'agent
  • GearmanClient::setFailCallback — Définit une fonction de rappel à appeler lorsqu'un travail échoue
  • GearmanClient::setOptions — Définit les options du client
  • GearmanClient::setStatusCallback — Définit une fonction de rappel pour collecter les statuts d'une tâche
  • GearmanClient::setTimeout — Définit le délai d'attente d'une activité du socket I/O
  • GearmanClient::setWarningCallback — Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent
  • GearmanClient::setWorkloadCallback — Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales
  • GearmanClient::timeout — Récupère la valeur du délai d'activité du socket I/O


Ajoute des options au client

  • « GearmanClient
  • GearmanClient::addServer »
  • PHP Manual
  • GearmanClient
  • Ajoute des options au client

GearmanClient::addOptions

(PECL gearman >= 0.6.0)

GearmanClient::addOptions — Ajoute des options au client

Description

public bool GearmanClient::addOptions ( int $options )

Ajoute une ou plusieurs options à celles déjà présentes.

Liste de paramètres

options

Les options à ajouter. Une des constantes suivantes ou la combinaison de constantes en utilisant l'opérateur de manipulation de bit ("|"): GEARMAN_CLIENT_GENERATE_UNIQUE, GEARMAN_CLIENT_NON_BLOCKING, GEARMAN_CLIENT_UNBUFFERED_RESULT ou GEARMAN_CLIENT_FREE_TASKS.

Valeurs de retour

Retourne toujours TRUE.


Ajoute un serveur de tâches au client

  • « GearmanClient::addOptions
  • GearmanClient::addServers »
  • PHP Manual
  • GearmanClient
  • Ajoute un serveur de tâches au client

GearmanClient::addServer

(PECL gearman >= 0.5.0)

GearmanClient::addServer — Ajoute un serveur de tâches au client

Description

public bool GearmanClient::addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] )

Ajoute un serveur de tâches à une liste de serveurs qui peuvent être utilisés pour accomplir une tâche. Aucune entrée/sortie sur un socket n'est faite ici; le serveur est juste ajouté à la liste.

Liste de paramètres

host

Le nom d'hôte du serveur de travaux.

port

Le port du serveur de travaux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout de deux serveurs

<?php

# Crée notre objet client.
$gmclient= new GearmanClient();

# Ajoute deux serveurs de tâches, le premier écoutant sur le port par défaut, 4730
$gmclient->addServer("10.0.0.1");
$gmclient->addServer("10.0.0.2", 7003);

?>

Voir aussi

  • GearmanClient::addServers() - Ajoute une liste de serveurs de tâches au client


Ajoute une liste de serveurs de tâches au client

  • « GearmanClient::addServer
  • GearmanClient::addTask »
  • PHP Manual
  • GearmanClient
  • Ajoute une liste de serveurs de tâches au client

GearmanClient::addServers

(PECL gearman >= 0.5.0)

GearmanClient::addServers — Ajoute une liste de serveurs de tâches au client

Description

public bool GearmanClient::addServers ([ string $servers = 127.0.0.1:4730 ] )

Ajoute une liste de serveurs de tâches qui peuvent être utilisés pour accomplir une tâche. Aucune entrée/sortie sur un socket n'est faite ici; les serveurs sont juste ajoutés à la liste complète de serveurs.

Liste de paramètres

servers

Une liste de serveurs, séparés par des virgules, chacun étant spécifié selon le format 'host:port'.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout de deux serveurs

<?php

# Crée notre objet client.
$gmclient= new GearmanClient();

# Ajoute plusieurs serveurs de tâches, le premier écoutant sur le port par défaut, 4730
$gmclient->addServers("10.0.0.1,10.0.0.2:7003");

?>

Voir aussi

  • GearmanClient::addServer() - Ajoute un serveur de tâches au client


Ajoute une tâche à exécuter en parallèle

  • « GearmanClient::addServers
  • GearmanClient::addTaskBackground »
  • PHP Manual
  • GearmanClient
  • Ajoute une tâche à exécuter en parallèle

GearmanClient::addTask

(PECL gearman >= 0.5.0)

GearmanClient::addTask — Ajoute une tâche à exécuter en parallèle

Description

public GearmanTask GearmanClient::addTask ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Ajoute une tâche à exécuter en parallèle d'autres tâches. Appelez cette méthode pour toutes les tâches à exécuter en parallèle, puis, appelez la méthode GearmanClient::runTasks() pour exécuter les tâches. Notez qu'il est nécessaire d'avoir assez d'agents disponibles pour exécuter en parallèle toutes les tâches.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

context

Contexte de l'application à associer avec une tâche

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Un objet GearmanTask ou FALSE si l tâche n'a pu être ajoutée.

Exemples

Exemple #1 Ajout de 2 tâches

<?php

# Crée un client gearman
$gmclient= new GearmanClient();

# Ajoute le serveur de travaux par défaut
$gmclient->addServer();

# Défini une fonction à appeler lorsque le travail est terminé
$gmclient->setCompleteCallback("complete");

# Ajoute une tâche exécutant la fonction "reverse" sur la chaîne "Hello World!"
$gmclient->addTask("reverse", "Hello World!", null, "1");

# Ajoute une autre tâche exécutant la fonction "reverse" sur la chaîne "!dlroW olleH"
$gmclient->addTask("reverse", "!dlroW olleH", null, "2");

# Exécute les tâches
$gmclient->runTasks();

function complete($task)
{
  print "Terminé : " . $task->unique() . ", " . $task->data() . "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Terminé : 2, Hello World!
Terminé : 1, !dlroW olleH

Exemple #2 Ajout de 2 tâches en passant le contexte de l'application

<?php

$client = new GearmanClient();
$client->addServer();

# Défini une fonction à appeler lorsque le travail est terminé
$client->setCompleteCallback("reverse_complete");

# Ajout de quelques tâches contenant un marqueur à l'emplacement duquel le résultat doit être placé
$results = array();
$client->addTask("reverse", "Hello World!", &$results, "t1");
$client->addTask("reverse", "!dlroW olleH", &$results, "t2");

$client->runTasks();

# Le résultat doit être maintenant contenu dans les fonctions de rappel
foreach ($results as $id => $result)
   echo $id . ": " . $result['handle'] . ", " . $result['data'] . "\n";

function reverse_complete($task, $results)
{
   $results[$task->unique()] = array("handle"=>$task->jobHandle(), "data"=>$task->data());
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

t2: H.foo:21, Hello World!
t1: H:foo:22, !dlroW olleH

Voir aussi

  • GearmanClient::addTaskHigh() - Ajoute une tâche de forte priorité à effectuer en parallèle
  • GearmanClient::addTaskLow() - Ajoute une tâche de faible priorité à effectuer en parallèle
  • GearmanClient::addTaskBackground() - Ajoute une tâche d'arrière-plan pour une exécution en parallèle
  • GearmanClient::addTaskHighBackground() - Ajoute une tâche de fond de forte priorité à effectuer en parallèle
  • GearmanClient::addTaskLowBackground() - Ajoute une tâche de fond de faible priorité à effectuer en parallèle
  • GearmanClient::runTasks() - Exécute une liste de tâches en parallèle


Ajoute une tâche d'arrière-plan pour une exécution en parallèle

  • « GearmanClient::addTask
  • GearmanClient::addTaskHigh »
  • PHP Manual
  • GearmanClient
  • Ajoute une tâche d'arrière-plan pour une exécution en parallèle

GearmanClient::addTaskBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskBackground — Ajoute une tâche d'arrière-plan pour une exécution en parallèle

Description

public GearmanTask GearmanClient::addTaskBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Ajoute une tâche d'arrière-plan pour une exécution en parallèle d'autres tâches. Appelez cette méthode pour toutes les tâches à exécuter en parallèle, puis, appelez la méthode GearmanClient::runTasks() pour réaliser les tâches.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

context

Contexte de l'application à associer avec une tâche

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Un objet GearmanTask ou FALSE si la tâche n'a pu être ajoutée.

Exemples

Exemple #1 2 tâches dont une en arrière-plan

Cet exemple montre la différence entre l'exécution en arrière-plan et une exécution normale. Le client ajoute 2 tâches qui doivent exécuter la même fonction, mais une a été ajoutée avec la méthode addTaskBackground(). Une fonction de rappel est définie afin de surveiller la progression du travail. Un agent simple avec un délai artificiel rapporte la progression et le client la traite via la fonction de rappel. 2 agents sont exécutés dans cet exemple. Notez que la tâche en arrière-plan n'est pas affichée par le client.

<?php

# Le script client

# Crée un client Gearman
$gmc= new GearmanClient();

# Ajoute un serveur de travaux par défaut
$gmc->addServer();

# Définit 2 fonctions de rappel afin de surveiller la progression
$gmc->setCompleteCallback("reverse_complete");
$gmc->setStatusCallback("reverse_status");

# Ajoute une tâche pour la fonction "reverse"
$task= $gmc->addTask("reverse", "Hello World!", null, "1");

# Ajoute une autre tâche, mais cette fois, en arrière-plan
$task= $gmc->addTaskBackground("reverse", "!dlroW olleH", null, "2");

if (! $gmc->runTasks())
{
    echo "ERREUR " . $gmc->error() . "\n";
    exit;
}

echo "FAIT\n";

function reverse_status($task)
{
    echo "STATUT : " . $task->unique() . ", " . $task->jobHandle() . " - " . $task->taskNumerator() .
         "/" . $task->taskDenominator() . "\n";
}

function reverse_complete($task)
{
    echo "TERMINÉ : " . $task->unique() . ", " . $task->data() . "\n";
}

?>
<?php

# Le script de l'agent

echo "Début\n";

# Crée un agent.
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" sur ce serveur.
$gmworker->addFunction("reverse", "reverse_fn");

print "Attente d'un travail...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Travail reçu : " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Charge de l'agent : $workload ($workload_size)\n";

  # Cette boucle n'est pas nécessaire, mais permet de comprendre le fonctionnement
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Envoi du statut : " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Résultat : $result\n";

  # On retourne au client ce que l'on veut.
  return $result;
}

?>

L'agent affiche, pour les 2 travaux :

Travail reçu : H:foo.local:65
Charge de l'agent : !dlroW olleH (12)
1/12 complete
Travail reçu : H:foo.local:66
Charge de l'agent : Hello World! (12)
Envoi du statut : 1/12 complete
Envoi du statut : 2/12 complete
Envoi du statut : 2/12 complete
Envoi du statut : 3/12 complete
Envoi du statut : 3/12 complete
Envoi du statut : 4/12 complete
Envoi du statut : 4/12 complete
Envoi du statut : 5/12 complete
Envoi du statut : 5/12 complete
Envoi du statut : 6/12 complete
Envoi du statut : 6/12 complete
Envoi du statut : 7/12 complete
Envoi du statut : 7/12 complete
Envoi du statut : 8/12 complete
Envoi du statut : 8/12 complete
Envoi du statut : 9/12 complete
Envoi du statut : 9/12 complete
Envoi du statut : 10/12 complete
Envoi du statut : 10/12 complete
Envoi du statut : 11/12 complete
Envoi du statut : 11/12 complete
Envoi du statut : 12/12 complete
Envoi du statut : 12/12 complete
Résultat : !dlroW olleH
Résultat : Hello World!

Affichage du client :

STATUT : 1, H:foo.local:66 - 1/12
STATUT : 1, H:foo.local:66 - 2/12
STATUT : 1, H:foo.local:66 - 3/12
STATUT : 1, H:foo.local:66 - 4/12
STATUT : 1, H:foo.local:66 - 5/12
STATUT : 1, H:foo.local:66 - 6/12
STATUT : 1, H:foo.local:66 - 7/12
STATUT : 1, H:foo.local:66 - 8/12
STATUT : 1, H:foo.local:66 - 9/12
STATUT : 1, H:foo.local:66 - 10/12
STATUT : 1, H:foo.local:66 - 11/12
STATUT : 1, H:foo.local:66 - 12/12
TERMINÉ : 1, !dlroW olleH
FAIT

Voir aussi

  • GearmanClient::addTask() - Ajoute une tâche à exécuter en parallèle
  • GearmanClient::addTaskHigh() - Ajoute une tâche de forte priorité à effectuer en parallèle
  • GearmanClient::addTaskLow() - Ajoute une tâche de faible priorité à effectuer en parallèle
  • GearmanClient::addTaskHighBackground() - Ajoute une tâche de fond de forte priorité à effectuer en parallèle
  • GearmanClient::addTaskLowBackground() - Ajoute une tâche de fond de faible priorité à effectuer en parallèle
  • GearmanClient::runTasks() - Exécute une liste de tâches en parallèle


Ajoute une tâche de forte priorité à effectuer en parallèle

  • « GearmanClient::addTaskBackground
  • GearmanClient::addTaskHighBackground »
  • PHP Manual
  • GearmanClient
  • Ajoute une tâche de forte priorité à effectuer en parallèle

GearmanClient::addTaskHigh

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHigh — Ajoute une tâche de forte priorité à effectuer en parallèle

Description

public GearmanTask GearmanClient::addTaskHigh ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Ajoute une tâche de forte priorité à effectuer en parallèle d'autres tâches. Appelez cette méthode pour que toutes les tâches soient menées de front, puis appelez GearmanClient::runTasks() pour faire le travail. Les tâches avec une forte priorité seront sélectionnée dans la queue avant celle de priorité plus faible.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

context

Contexte de l'application à associer avec une tâche

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Un objet GearmanTask ou FALSE si la tâche ne peut pas être ajoutée.

Exemples

Exemple #1 Une tâche de forte priorité en même temps que deux tâches normales

Une tâche de forte priorité est ajoutée en plus de deux autres tâches. Un seul agent est disponible, de telle façon que les tâches s'exécutent une à une, avec celle de forte priorité en premier.

<?php

# crée le client Gearman
$gmc= new GearmanClient();

# ajoute le serveur par défaut
$gmc->addServer();

# fixe le retour quand la tâche est complétée
$gmc->setCompleteCallback("inverse_complete");

# ajoute des tâches, l'une ayant une forte priorité
$task= $gmc->addTask("inverse", "Bonjour le monde!", null, "1");
$task= $gmc->addTaskHigh("inverse", "!ednom el ruojnoB", null, "2");
$task= $gmc->addTask("inverse", "Bonjour le monde!", null, "3");

if (! $gmc->runTasks())
{
    echo "ERROR " . $gmc->error() . "\n";
    exit;
}
echo "Fait\n";

function inverse_complete($task)
{
    echo "Complétée : " . $task->unique() . ", " . $task->data() . "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Complétée : 2, Bonjour le monde!
Complétée : 3, !ednom el ruojnoB
Complétée : 1, !ednom el ruojnoB
Fait

Voir aussi

  • GearmanClient::addTask() - Ajoute une tâche à exécuter en parallèle
  • GearmanClient::addTaskLow() - Ajoute une tâche de faible priorité à effectuer en parallèle
  • GearmanClient::addTaskBackground() - Ajoute une tâche d'arrière-plan pour une exécution en parallèle
  • GearmanClient::addTaskHighBackground() - Ajoute une tâche de fond de forte priorité à effectuer en parallèle
  • GearmanClient::addTaskLowBackground() - Ajoute une tâche de fond de faible priorité à effectuer en parallèle
  • GearmanClient::runTasks() - Exécute une liste de tâches en parallèle


Ajoute une tâche de fond de forte priorité à effectuer en parallèle

  • « GearmanClient::addTaskHigh
  • GearmanClient::addTaskLow »
  • PHP Manual
  • GearmanClient
  • Ajoute une tâche de fond de forte priorité à effectuer en parallèle

GearmanClient::addTaskHighBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHighBackground — Ajoute une tâche de fond de forte priorité à effectuer en parallèle

Description

public GearmanTask GearmanClient::addTaskHighBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Ajoute une tâche de fond de forte priorité à effectuer en parallèle d'autres tâches. Appelez cette méthode pour que toutes les tâches soient menées de front, puis appelez GearmanClient::runTasks() pour faire le travail. Les tâches avec une forte priorité seront sélectionnée dans la queue avant celle de priorité plus faible.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

context

Contexte de l'application à associer avec une tâche

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Un objet GearmanTask ou FALSE si la tâche ne peut pas être ajoutée.

Voir aussi

  • GearmanClient::addTask() - Ajoute une tâche à exécuter en parallèle
  • GearmanClient::addTaskHigh() - Ajoute une tâche de forte priorité à effectuer en parallèle
  • GearmanClient::addTaskLow() - Ajoute une tâche de faible priorité à effectuer en parallèle
  • GearmanClient::addTaskBackground() - Ajoute une tâche d'arrière-plan pour une exécution en parallèle
  • GearmanClient::addTaskLowBackground() - Ajoute une tâche de fond de faible priorité à effectuer en parallèle
  • GearmanClient::runTasks() - Exécute une liste de tâches en parallèle


Ajoute une tâche de faible priorité à effectuer en parallèle

  • « GearmanClient::addTaskHighBackground
  • GearmanClient::addTaskLowBackground »
  • PHP Manual
  • GearmanClient
  • Ajoute une tâche de faible priorité à effectuer en parallèle

GearmanClient::addTaskLow

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLow — Ajoute une tâche de faible priorité à effectuer en parallèle

Description

public GearmanTask GearmanClient::addTaskLow ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Ajoute une tâche de faible priorité à effectuer en parallèle d'autres tâches. Appelez cette méthode pour que toutes les tâches soient menées de front, puis appelez GearmanClient::runTasks() pour faire le travail. Les tâches avec une faible priorité seront sélectionnée dans la queue après celle de priorité plus forte.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

context

Contexte de l'application à associer avec une tâche

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Un objet GearmanTask ou FALSE si la tâche ne peut pas être ajoutée.

Exemples

Exemple #1 Une tâche de faible priorité en même temps que deux tâches normales

Une tâche de faible priorité est ajoutée en plus de deux autres tâches. Un seul agent est disponible, de telle façon que les tâches s'exécutent une à une, avec celle de faible priorité en dernier.

<?php

# crée le client Gearman
$gmc= new GearmanClient();

# ajoute le serveur par défaut
$gmc->addServer();

# fixe le retour quand la tâche est complétée
$gmc->setCompleteCallback("inverse_complete");

# ajoute des tâches, l'une ayant une faible priorité
$task= $gmc->addTask("inverse", "Bonjour le monde!", null, "1");
$task= $gmc->addTaskLow("inverse", "!ednom el ruojnoB", null, "2");
$task= $gmc->addTask("inverse", "Bonjour le monde!", null, "3");

if (! $gmc->runTasks())
{
    echo "ERROR " . $gmc->error() . "\n";
    exit;
}
echo "Fait\n";

function inverse_complete($task)
{
    echo "Complétée : " . $task->unique() . ", " . $task->data() . "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Complétée : 3, !ednom el ruojnoB
Complétée : 1, !ednom el ruojnoB
Complétée : 2, Bonjour le monde!
Fait

Voir aussi

  • GearmanClient::addTask() - Ajoute une tâche à exécuter en parallèle
  • GearmanClient::addTaskHigh() - Ajoute une tâche de forte priorité à effectuer en parallèle
  • GearmanClient::addTaskBackground() - Ajoute une tâche d'arrière-plan pour une exécution en parallèle
  • GearmanClient::addTaskHighBackground() - Ajoute une tâche de fond de forte priorité à effectuer en parallèle
  • GearmanClient::addTaskLowBackground() - Ajoute une tâche de fond de faible priorité à effectuer en parallèle
  • GearmanClient::runTasks() - Exécute une liste de tâches en parallèle


Ajoute une tâche de fond de faible priorité à effectuer en parallèle

  • « GearmanClient::addTaskLow
  • GearmanClient::addTaskStatus »
  • PHP Manual
  • GearmanClient
  • Ajoute une tâche de fond de faible priorité à effectuer en parallèle

GearmanClient::addTaskLowBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLowBackground — Ajoute une tâche de fond de faible priorité à effectuer en parallèle

Description

public GearmanTask GearmanClient::addTaskLowBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Ajoute une tâche de fond de faible priorité à effectuer en parallèle d'autres tâches. Appelez cette méthode pour que toutes les tâches soient menées de front, puis appelez GearmanClient::runTasks() pour faire le travail. Les tâches avec une faible priorité seront sélectionnée dans la queue après celle de priorité plus forte.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

context

Contexte de l'application à associer avec une tâche

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Un objet GearmanTask ou FALSE si la tâche ne peut pas être ajoutée.

Voir aussi

  • GearmanClient::addTask() - Ajoute une tâche à exécuter en parallèle
  • GearmanClient::addTaskHigh() - Ajoute une tâche de forte priorité à effectuer en parallèle
  • GearmanClient::addTaskLow() - Ajoute une tâche de faible priorité à effectuer en parallèle
  • GearmanClient::addTaskBackground() - Ajoute une tâche d'arrière-plan pour une exécution en parallèle
  • GearmanClient::addTaskHighBackground() - Ajoute une tâche de fond de forte priorité à effectuer en parallèle
  • GearmanClient::runTasks() - Exécute une liste de tâches en parallèle


Ajoute une tâche pour obtenir le statut

  • « GearmanClient::addTaskLowBackground
  • GearmanClient::clearCallbacks »
  • PHP Manual
  • GearmanClient
  • Ajoute une tâche pour obtenir le statut

GearmanClient::addTaskStatus

(PECL gearman >= 0.5.0)

GearmanClient::addTaskStatus — Ajoute une tâche pour obtenir le statut

Description

public GearmanTask GearmanClient::addTaskStatus ( string $job_handle [, string &$context ] )

Utilisé pour demander le statut au serveur Gearman, qui appellera le retour de statut spécifié (grâce à GearmanClient::setStatusCallback()).

Liste de paramètres

job_handle

Les descripteur pour la tâche dont on souhaite le statut

context

Les données à passer au retour de statut, généralement une référence à un tableau ou à un objet

Valeurs de retour

Un objet GearmanTask.

Exemples

Exemple #1 Surveiller l'accomplissement de plusieurs tâches de fond

Un délai artificiel est introduit dans l'agent de cet exemple pour simuler un processus long. Il n'y a qu'un agent qui est lancé dans cet exemple.

<?php

/* crée notre objet */
$gmclient= new GearmanClient();

/* ajoute le serveur par défaut */
$gmclient->addServer();

/* lance une tâche de fond et sauvegarde les descripteurs */
$handles = array();
$handles[0] = $gmclient->doBackground("inverse", "Bonjour le monde!");
$handles[1] = $gmclient->doBackground("inverse", "!ednom el ruojnoB");

$gmclient->setStatusCallback("inverse_statut");

/* Interroge le serveur pour voir quand les tâches de fond se terminent; */
/* une meilleure méthode consiste à appeler les retours d'événement */
do
{
   /* Utilise la variable de contexte pour savoir combien de tâches ont été effectuées */
   $done = 0;
   $gmclient->addTaskStatus($handles[0], &$done);
   $gmclient->addTaskStatus($handles[1], &$done);
   $gmclient->runTasks();
   echo "Fait : $done\n";
   sleep(1);
}
while ($done != 2);

function inverse_statut($task, $done)
{
   if (!$task->isKnown())
      $done++;
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 0
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 1
Fait : 2

Voir aussi

  • GearmanClient::setStatusCallback() - Définit une fonction de rappel pour collecter les statuts d'une tâche


Efface toutes les fonctions de rappel des tâches

  • « GearmanClient::addTaskStatus
  • GearmanClient::clone »
  • PHP Manual
  • GearmanClient
  • Efface toutes les fonctions de rappel des tâches

GearmanClient::clearCallbacks

(PECL gearman >= 0.5.0)

GearmanClient::clearCallbacks — Efface toutes les fonctions de rappel des tâches

Description

public bool GearmanClient::clearCallbacks ( void )

Efface toutes les fonctions de rappel des tâches précédemment définies.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours TRUE.

Voir aussi

  • GearmanClient::setDataCallback() - Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche
  • GearmanClient::setCompleteCallback() - Définit une fonction à appeler une fois la tâche terminée
  • GearmanClient::setCreatedCallback() - Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente
  • GearmanClient::setExceptionCallback() - Définit une fonction de rappel pour les exceptions émises par l'agent
  • GearmanClient::setFailCallback() - Définit une fonction de rappel à appeler lorsqu'un travail échoue
  • GearmanClient::setStatusCallback() - Définit une fonction de rappel pour collecter les statuts d'une tâche
  • GearmanClient::setWarningCallback() - Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent
  • GearmanClient::setWorkloadCallback() - Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales


Crée une copie de l'objet GearmanClient

  • « GearmanClient::clearCallbacks
  • GearmanClient::__construct »
  • PHP Manual
  • GearmanClient
  • Crée une copie de l'objet GearmanClient

GearmanClient::clone

(PECL gearman >= 0.5.0)

GearmanClient::clone — Crée une copie de l'objet GearmanClient

Description

public GearmanClient GearmanClient::clone ( void )

Crée une copie de l'objet GearmanClient.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une classe GearmanClient en cas de succès, FALSE si une erreur survient.


Crée une instance GearmanClient

  • « GearmanClient::clone
  • GearmanClient::context »
  • PHP Manual
  • GearmanClient
  • Crée une instance GearmanClient

GearmanClient::__construct

(PECL gearman >= 0.5.0)

GearmanClient::__construct — Crée une instance GearmanClient

Description

public GearmanClient::__construct ( void )

Crée une instance GearmanClient représentant un client qui se connecte à un serveur de tâches et y enregistre des tâches à effectuer.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet GearmanClient.

Voir aussi

  • GearmanClient::clone() - Crée une copie de l'objet GearmanClient


Récupère le contexte de l'application

  • « GearmanClient::__construct
  • GearmanClient::data »
  • PHP Manual
  • GearmanClient
  • Récupère le contexte de l'application

GearmanClient::context

(PECL gearman >= 0.6.0)

GearmanClient::context — Récupère le contexte de l'application

Description

public string GearmanClient::context ( void )

Récupère le contexte de l'application précédemment définie avec la méthode GearmanClient::setContext().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les données de contexte identiques à celles définies avec la fonction GearmanClient::setContext()

Voir aussi

  • GearmanClient::setContext() - Définit le contexte d'une application


Récupère les données de l'application (obsolète)

  • « GearmanClient::context
  • GearmanClient::do »
  • PHP Manual
  • GearmanClient
  • Récupère les données de l'application (obsolète)

GearmanClient::data

(PECL gearman <= 0.5.0)

GearmanClient::data — Récupère les données de l'application (obsolète)

Description

public string GearmanClient::data ( void )

Récupère les données de l'application précédemment définies avec la méthode GearmanClient::setData().

Note:

Cette méthode a été remplacée par la méthode GearmanClient::setContext() en version 0.6.0 de l'extension Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les mêmes données que celles définies avec la méthode GearmanClient::setData()

Voir aussi

  • GearmanClient::setData() - Définit les données de l'application (obsolète)


Exécute une seule tâche et retourne le résultat (obsolète)

  • « GearmanClient::data
  • GearmanClient::doBackground »
  • PHP Manual
  • GearmanClient
  • Exécute une seule tâche et retourne le résultat (obsolète)

GearmanClient::do

(PECL gearman >= 0.5.0)

GearmanClient::do — Exécute une seule tâche et retourne le résultat (obsolète)

Description

public string GearmanClient::do ( string $function_name , string $workload [, string $unique ] )

La méthode GearmanClient::do() est obsolète depuis pecl/gearman 1.0.0. Utilisez la méthode GearmanClient::doNormal() à la place.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Une représentation sous forme de chaîne de caractères du résultat de l'exécution de la tâche.

Exemples

Exemple #1 Soumission d'une seule tâche avec un retour immédiat

<?php

# Code du client

echo "Début\n";

# Crée un client.
$gmclient= new GearmanClient();

# Ajoute un serveur par défaut (localhost).
$gmclient->addServer();

echo "Envoi d'un travail\n";

$result = $gmclient->doNormal("reverse", "Hello!");

echo "Succès : $result\n";

?>
<?php

echo "Début\n";

# Crée un agent.
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" avec le serveur. Modifie la fonction en
# "reverse_fn_fast" pour une exécution plus rapide sans affiche.
$gmworker->addFunction("reverse", "reverse_fn");

print "Attente d'un travail...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  return strrev($job->workload());
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Début
Envoi d'un travail
Succès : !olleH

Exemple #2 Soumission d'un travail et récupération incrémentale du statut

Un travail est soumis et le script boucle pour récupérer les informations de statut. L'agent a un délai artificiel pour récupérer les résultats lors d'une exécution longue d'un travail mais aussi l'envoi des statuts et des données. Chaque sous-séquence appèle la méthode GearmanClient::do() permettant de produire des informations de statut sur le travail en cours.

<?php

# Code du client

# Crée un client.
$gmclient= new GearmanClient();

# Ajoute un serveur par défaut (localhost).
$gmclient->addServer();

echo "Envoi d'un travail\n";

# Envoi du travail
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");
  # Vérifie les paquets et les erreurs retournés.

  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      echo "Données : $result\n";
      break;
    case GEARMAN_WORK_STATUS:
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Statut : $numerator/$denominator complete\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Échec\n";
      exit;
    case GEARMAN_SUCCESS:
      break;
    default:
      echo "RET : " . $gmclient->returnCode() . "\n";
      echo "Erreur : " . $gmclient->error() . "\n";
      echo "N° de l'erreur : " . $gmclient->getErrno() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Succès : $result\n";

?>
<?php

# Code de l'agent

echo "Début\n";

# Crée un nouvel agent.
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" avec le serveur.
$gmworker->addFunction("reverse", "reverse_fn");

print "Attente d'un travail...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Travail reçu : " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Charge de l'agent: $workload ($workload_size)\n";

  # Cette boucle n'est pas nécessaire, mais montre le fonctionnement
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Envoi du statut : " + $x + 1 . "/$workload_size complete\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Résultat : $result\n";

  # Nous retournons ce que l'on souhaite au client.
  return $result;
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

L'agent affiche :

Début
Attente d'un travail...
Travail reçu : H:foo.local:106
Charge de l'agent : Hello! (6)
1/6 complete
2/6 complete
3/6 complete
4/6 complete
5/6 complete
6/6 complete
Résultat : !olleH

Le client affiche :

Début
Envoi d'un travail
Statut : 1/6 complete
Données : H
Statut : 2/6 complete
Données : e
Statut : 3/6 complete
Données : l
Statut : 4/6 complete
Données : l
Statut : 5/6 complete
Données : o
Statut : 6/6 complete
Données : !
Succès : !olleH

Voir aussi

  • GearmanClient::doHigh() - Exécute une seule tâche en priorité haute
  • GearmanClient::doLow() - Exécute une seule tâche en priorité basse
  • GearmanClient::doBackground() - Exécute une tâche en arrière-plan
  • GearmanClient::doHighBackground() - Exécute une tâche en priorité haute en arrière plan
  • GearmanClient::doLowBackground() - Exécute une tâche en priorité basse en arrière-plan


Exécute une tâche en arrière-plan

  • « GearmanClient::do
  • GearmanClient::doHigh »
  • PHP Manual
  • GearmanClient
  • Exécute une tâche en arrière-plan

GearmanClient::doBackground

(PECL gearman >= 0.5.0)

GearmanClient::doBackground — Exécute une tâche en arrière-plan

Description

public string GearmanClient::doBackground ( string $function_name , string $workload [, string $unique ] )

Exécute une tâche en arrière-plan, retourne le gestionnaire de travaux qui pourra être utilisé pour récupérer le statut de la tâche en cours.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Le gestionnaire de travaux pour la tâche soumise.

Exemples

Exemple #1 Soumet et surveille un travail en arrière-plan

L'agent de cet exemple a un délai artificiel introduit pour simuler un travail dont l'exécution prend beaucoup de temps. Le script du client vérifie périodiquement le statut du travail en cours.

<?php

/* Crée un client */
$gmclient= new GearmanClient();

/* Ajoute un serveur par défaut */
$gmclient->addServer();

/* Exécute le client */
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo "Code retour erroné\n";
  exit;
}

$done = false;
do
{
   sleep(3);
   $stat = $gmclient->jobStatus($job_handle);
   if (!$stat[0]) // the job is known so it is not done
      $done = true;
   echo "Exécution : " . ($stat[1] ? "true" : "false") . ", numérateur : " . $stat[2] . ", dénominateur : " . $stat[3] . "\n";
}
while(!$done);

echo "fait !\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Exécution : true, numérateur : 3, dénominateur : 14
Exécution : true, numérateur : 6, dénominateur : 14
Exécution : true, numérateur : 9, dénominateur : 14
Exécution : true, numérateur : 12, dénominateur : 14
Exécution : false, numérateur : 0, dénominateur : 0
fait !

Voir aussi

  • GearmanClient::doNormal() - Exécute une tâche et retourne le résultat
  • GearmanClient::doHigh() - Exécute une seule tâche en priorité haute
  • GearmanClient::doLow() - Exécute une seule tâche en priorité basse
  • GearmanClient::doHighBackground() - Exécute une tâche en priorité haute en arrière plan
  • GearmanClient::doLowBackground() - Exécute une tâche en priorité basse en arrière-plan


Exécute une seule tâche en priorité haute

  • « GearmanClient::doBackground
  • GearmanClient::doHighBackground »
  • PHP Manual
  • GearmanClient
  • Exécute une seule tâche en priorité haute

GearmanClient::doHigh

(PECL gearman >= 0.5.0)

GearmanClient::doHigh — Exécute une seule tâche en priorité haute

Description

public string GearmanClient::doHigh ( string $function_name , string $workload [, string $unique ] )

Exécute une seule tâche en priorité haute et retourne une représentation du résultat sous la forme d'une chaîne de caractères. C'est aux fonctions GearmanClient et GearmanWorker d'accorder le format du résultat. Les tâches en priorités hautes seront exécutées avant celles dont la priorité est normale, voire, basse dans la file d'attente.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Le résultat de la tâche sous la forme d'une chaîne de caractères.

Voir aussi

  • GearmanClient::doNormal() - Exécute une tâche et retourne le résultat
  • GearmanClient::doLow() - Exécute une seule tâche en priorité basse
  • GearmanClient::doBackground() - Exécute une tâche en arrière-plan
  • GearmanClient::doHighBackground() - Exécute une tâche en priorité haute en arrière plan
  • GearmanClient::doLowBackground() - Exécute une tâche en priorité basse en arrière-plan


Exécute une tâche en priorité haute en arrière plan

  • « GearmanClient::doHigh
  • GearmanClient::doJobHandle »
  • PHP Manual
  • GearmanClient
  • Exécute une tâche en priorité haute en arrière plan

GearmanClient::doHighBackground

(PECL gearman >= 0.5.0)

GearmanClient::doHighBackground — Exécute une tâche en priorité haute en arrière plan

Description

public string GearmanClient::doHighBackground ( string $function_name , string $workload [, string $unique ] )

Exécute une tâche en priorité haute en arrière plan, et retourne un gestionnaire de travail qui peut être utilisé pour récupérer le statut de la tâche. Les tâches en priorité haute seront exécutées avant les normales et les basses de la file d'attente.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Le gestionnaire de travail de la tâche ajoutée.

Voir aussi

  • GearmanClient::doNormal() - Exécute une tâche et retourne le résultat
  • GearmanClient::doHigh() - Exécute une seule tâche en priorité haute
  • GearmanClient::doLow() - Exécute une seule tâche en priorité basse
  • GearmanClient::doBackground() - Exécute une tâche en arrière-plan
  • GearmanClient::doLowBackground() - Exécute une tâche en priorité basse en arrière-plan


Récupère le gestionnaire de travaux pour la tâche en cours

  • « GearmanClient::doHighBackground
  • GearmanClient::doLow »
  • PHP Manual
  • GearmanClient
  • Récupère le gestionnaire de travaux pour la tâche en cours

GearmanClient::doJobHandle

(PECL gearman >= 0.5.0)

GearmanClient::doJobHandle — Récupère le gestionnaire de travaux pour la tâche en cours

Description

public string GearmanClient::doJobHandle ( void )

Récupère le gestionnaire de travaux pour la tâche en cours. Il peut être utilisé lors de multiples appels à la méthode GearmanClient::doNormal(). Le gestionnaire de travaux peut alors être utilisé pour récupérer les informations sur la tâche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le gestionnaire de travaux pour la tâche en cours.

Voir aussi

  • GearmanClient::jobStatus() - Récupère le statut d'un travail en arrière-plan


Exécute une seule tâche en priorité basse

  • « GearmanClient::doJobHandle
  • GearmanClient::doLowBackground »
  • PHP Manual
  • GearmanClient
  • Exécute une seule tâche en priorité basse

GearmanClient::doLow

(PECL gearman >= 0.5.0)

GearmanClient::doLow — Exécute une seule tâche en priorité basse

Description

public string GearmanClient::doLow ( string $function_name , string $workload [, string $unique ] )

Exécute une seule tâche en priorité basse et retourne une représentation sous forme de chaîne de caractères du résultat. Il convient aux méthodes GearmanClient et GearmanWorker de valider le format du résultat. Les tâches dont la priorité est normale ou haute seront traitées en priorité par rapport aux tâches dont la priorité est basse dans la file d'attente.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Une représentation sous forme de chaîne de caractères du résultat de la tâche en cours.

Voir aussi

  • GearmanClient::doNormal() - Exécute une tâche et retourne le résultat
  • GearmanClient::doHigh() - Exécute une seule tâche en priorité haute
  • GearmanClient::doBackground() - Exécute une tâche en arrière-plan
  • GearmanClient::doHighBackground() - Exécute une tâche en priorité haute en arrière plan
  • GearmanClient::doLowBackground() - Exécute une tâche en priorité basse en arrière-plan


Exécute une tâche en priorité basse en arrière-plan

  • « GearmanClient::doLow
  • GearmanClient::doNormal »
  • PHP Manual
  • GearmanClient
  • Exécute une tâche en priorité basse en arrière-plan

GearmanClient::doLowBackground

(PECL gearman >= 0.5.0)

GearmanClient::doLowBackground — Exécute une tâche en priorité basse en arrière-plan

Description

public string GearmanClient::doLowBackground ( string $function_name , string $workload [, string $unique ] )

Exécute une tâche en priorité basse en arrière-plan, puis, retourne le gestionnaire de travaux qui pourra être utilisé pour récupérer le statut de la tâche en cours. Les tâches dont la priorité est normale et haute auront la priorité sur celle dont la priorité est basse dans la file d'attente.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Le gestionnaire de travaux de la tâche soumise.

Voir aussi

  • GearmanClient::doNormal() - Exécute une tâche et retourne le résultat
  • GearmanClient::doHigh() - Exécute une seule tâche en priorité haute
  • GearmanClient::doLow() - Exécute une seule tâche en priorité basse
  • GearmanClient::doBackground() - Exécute une tâche en arrière-plan
  • GearmanClient::doHighBackground() - Exécute une tâche en priorité haute en arrière plan


Exécute une tâche et retourne le résultat

  • « GearmanClient::doLowBackground
  • GearmanClient::doStatus »
  • PHP Manual
  • GearmanClient
  • Exécute une tâche et retourne le résultat

GearmanClient::doNormal

(No version information available, might only be in Git)

GearmanClient::doNormal — Exécute une tâche et retourne le résultat

Description

public string GearmanClient::doNormal ( string $function_name , string $workload [, string $unique ] )

Exécute une tâche et retourne une chaîne de caractères représentant le résultat. Il appartient aux classes GearmanClient et GearmanWorker d'accepter le format du résultat.

Liste de paramètres

function_name

Une fonction enregistrée que le travailleur va exécuter

workload

Données linéarisées à analyser

unique

Un identifiant unique utilisé pour identifier une tâche particulière

Valeurs de retour

Une chaîne de caractères représentant le résultat de la tâche exécutée.

Exemples

Exemple #1 Soumission d'une tâche avec un retour immédiat

<?php

?>
<?php

# Code client

echo "Début\n";

# Création de notre objet client.
$gmclient= new GearmanClient();

# Ajout du serveur par défaut (localhost).
$gmclient->addServer();

echo "Envoi de la tâche\n";

$result = $gmclient->doNormal("reverse", "Hello!");

echo "Succès : $result\n";

?>
<?php

echo "Début\n";

# Création de l'objet worker.
$gmworker= new GearmanWorker();

# Ajout du serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" avec le serveur. Modifie la fonction worker
# en "reverse_fn_fast" pour un worker plus rapide avec aucune sortie.
$gmworker->addFunction("reverse", "reverse_fn");

print "Attente d'une tâche...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code : " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  return strrev($job->workload());
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Début
Envoi de la tâche
Succès : !olleH

Exemple #2 Soumission d'une tâche et récupération incrémentale du statut

Une tâche est soumise et le script boucle pour récupérer les informations de statut. Le worker a un délai artificiel qui le transforme en une tâche longue et envoie le statut et les données lorsque l'exécution survient. Chaque sous-appel à la fonction GearmanClient::doNormal() produit des informations de statut sur la tâche en cours.

<?php

# Code client

# Création de notre objet client.
$gmclient= new GearmanClient();

# Ajout du srveur par défaut (localhost).
$gmclient->addServer();

echo "Envoi de la tâche\n";

# Envoi de la tâche reverse
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");
  # Vérifie les paquets retournés ainsi que les erreurs.

  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      echo "Données : $result\n";
      break;
    case GEARMAN_WORK_STATUS:
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Statut : $numerator/$denominator terminé\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Échec\n";
      exit;
    case GEARMAN_SUCCESS:
      break;
    default:
      echo "RET : " . $gmclient->returnCode() . "\n";
      echo "Erreur : " . $gmclient->error() . "\n";
      echo "Errno : " . $gmclient->getErrno() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Success: $result\n";

?>
<?php

# Code du worker

echo "Début\n";

# Création de notre objet worker.
$gmworker= new GearmanWorker();

# Ajout du serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre la fonction "reverse" avec le serveur.
$gmworker->addFunction("reverse", "reverse_fn");

print "Attente d'une tâche...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code : " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Tâche reçue : " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Workload : $workload ($workload_size)\n";

  # This status loop is not needed, just showing how it works
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Envoi du statut : " + $x + 1 . "/$workload_size terminé\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Résultat : $result\n";

  # Retourne ce que l'on souhaite retourner au client.
  return $result;
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Worker output:

Début
Attente d'une tâche...
Tâche reçue : H:foo.local:106
Workload : Hello! (6)
1/6 terminé
2/6 terminé
3/6 terminé
4/6 terminé
5/6 terminé
6/6 terminé
Résultat : !olleH

Sortie client :

Début
Envoi de la tâche
Statut : 1/6 terminé
Données : H
Statut : 2/6 terminé
Données : e
Statut : 3/6 terminé
Données : l
Statut : 4/6 terminé
Données : l
Status: 5/6 terminé
Données : o
Statut : 6/6 terminé
Données : !
Succè s: !olleH

Voir aussi

  • GearmanClient::doHigh() - Exécute une seule tâche en priorité haute
  • GearmanClient::doLow() - Exécute une seule tâche en priorité basse
  • GearmanClient::doBackground() - Exécute une tâche en arrière-plan
  • GearmanClient::doHighBackground() - Exécute une tâche en priorité haute en arrière plan
  • GearmanClient::doLowBackground() - Exécute une tâche en priorité basse en arrière-plan


Récupère le statut de la tâche en cours

  • « GearmanClient::doNormal
  • GearmanClient::echo »
  • PHP Manual
  • GearmanClient
  • Récupère le statut de la tâche en cours

GearmanClient::doStatus

(PECL gearman >= 0.5.0)

GearmanClient::doStatus — Récupère le statut de la tâche en cours

Description

public array GearmanClient::doStatus ( void )

Retourne le statut de la tâche en cours. Il pourra être utilisé lors de multiples appels à la méthode GearmanClient::doNormal().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau représentant le pourcentage de réalisation fourni sous la forme d'une fraction, dont le premier élément est le numérateur, et le second, le dénominateur.

Exemples

Exemple #1 Récupère le statut d'un travail dont l'exécution prend du temps

L'agent dans cet exemple a un délai artificiel ajouté lors de l'exécution de la fonction. Après chaque délai, il appèle la méthode GearmanJob::status() dont le client récupère l'information.

<?php

echo "Début\n";

# Crée un client.
$gmclient= new GearmanClient();

# Ajoute un serveur par défaut (localhost).
$gmclient->addServer();

echo "Envoi d'un travail\n";

# Envoi du travail
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");

  # Vérifie les différents paquets et erreurs retournés.
  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      break;
    case GEARMAN_WORK_STATUS:
      # Récupère le statut du travail en cours
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Statut : $numerator/$denominator complete\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Échec \n";
      exit;
    case GEARMAN_SUCCESS:
      break;
    default:
      echo "RET : " . $gmclient->returnCode() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Succès : $result\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Début
Envoi d'un travail
Statut : 1/6 complete
Statut : 2/6 complete
Statut : 3/6 complete
Statut : 4/6 complete
Statut : 5/6 complete
Statut : 6/6 complete
Succès : !olleH

Voir aussi

  • GearmanClient::doNormal() - Exécute une tâche et retourne le résultat
  • GearmanJob::status() - Envoie un statut (obsolète)


Envoi des données à tous les serveurs de travaux afin de vérifier qu'ils les affichent en retour (obsolète)

  • « GearmanClient::doStatus
  • GearmanClient::error »
  • PHP Manual
  • GearmanClient
  • Envoi des données à tous les serveurs de travaux afin de vérifier qu'ils les affichent en retour (obsolète)

GearmanClient::echo

(PECL gearman >= 0.5.0)

GearmanClient::echo — Envoi des données à tous les serveurs de travaux afin de vérifier qu'ils les affichent en retour (obsolète)

Description

public bool GearmanClient::echo ( string $workload )

La méthode GearmanClient::echo() est obsolète depuis pecl/gearman 1.0.0. Utilisez la méthode GearmanClient::ping() à la place.

Liste de paramètres

workload

Données arbitraires linéarisées

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne la dernière erreur rencontrée sous forme de chaîne de caractères

  • « GearmanClient::echo
  • GearmanClient::getErrno »
  • PHP Manual
  • GearmanClient
  • Retourne la dernière erreur rencontrée sous forme de chaîne de caractères

GearmanClient::error

(PECL gearman >= 0.5.0)

GearmanClient::error — Retourne la dernière erreur rencontrée sous forme de chaîne de caractères

Description

public string GearmanClient::error ( void )

Retourne la dernière erreur rencontrée sous forme de chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères humainement lisibile représentant la dernière erreur survenue.

Voir aussi

  • GearmanClient::getErrno() - Récupère la valeur d'errno


Récupère la valeur d'errno

  • « GearmanClient::error
  • GearmanClient::jobStatus »
  • PHP Manual
  • GearmanClient
  • Récupère la valeur d'errno

GearmanClient::getErrno

(PECL gearman >= 0.5.0)

GearmanClient::getErrno — Récupère la valeur d'errno

Description

public int GearmanClient::getErrno ( void )

Retourne la valeur d'errno dans le vas d'une valeur de retour GEARMAN_ERRNO.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une valeur d'errno Gearman valide.

Voir aussi

  • GearmanClient::error() - Retourne la dernière erreur rencontrée sous forme de chaîne de caractères


Récupère le statut d'un travail en arrière-plan

  • « GearmanClient::getErrno
  • GearmanClient::ping »
  • PHP Manual
  • GearmanClient
  • Récupère le statut d'un travail en arrière-plan

GearmanClient::jobStatus

gearman_job_status

(PECL gearman >= 0.5.0)

GearmanClient::jobStatus -- gearman_job_status — Récupère le statut d'un travail en arrière-plan

Description

Style orienté objet (méthode) :

public array GearmanClient::jobStatus ( string $job_handle )

Récupère le statut d'un travail en arrière-plan pour le gestionnaire de travaux fourni. Les informations de statut spécifient si le travail est connu, si le travail est actuellement en cours d'exécution, ainsi que le pourcentage de réalisation.

Liste de paramètres

job_handle

Le gestionnaire de travaux assigné par le serveur Gearman

Valeurs de retour

Un tableau contenant les informations de statut pour le travail correspondant au gestionnaire de travaux fourni. Le premier élément est un booléen indiquant si le travail est connu, le second est un booléen indiquant si le travail est en cours d'exécution, le troisième et le quatrième correspondent au numérateur et dénominateur du pourcentage de réalisation.

Exemples

Exemple #1 Surveille le statut d'un travail en arrière-plan mettant du temps à s'exécuter

<?php

/* Crée un client */
$gmclient= new GearmanClient();

/* Ajoute un serveur par défaut */
$gmclient->addServer();

/* Exécute le client */
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo "Mauvais code retour\n";
  exit;
}

$done = false;
do
{
   sleep(3);
   $stat = $gmclient->jobStatus($job_handle);
   if (!$stat[0]) // le travail est connu, signifiant qu'il n'est pas terminé
      $done = true;
   echo "Exécution : " . ($stat[1] ? "true" : "false") . ", numérateur : " . $stat[2] . ", dénominateur : " . $stat[3] . "\n";
}
while(!$done);

echo "fait !\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Exécution : true, numérateur : 3, dénominateur : 14
Exécution : true, numérateur : 6, dénominateur : 14
Exécution : true, numérateur : 9, dénominateur : 14
Exécution : true, numérateur : 12, dénominateur : 14
Exécution : false, numérateur : 0, dénominateur : 0
fait !

Voir aussi

  • GearmanClient::doStatus() - Récupère le statut de la tâche en cours


Envoi des données à tous les serveurs de tâches pour s'assurer qu'ils sont toujours en fonctionnement

  • « GearmanClient::jobStatus
  • GearmanClient::removeOptions »
  • PHP Manual
  • GearmanClient
  • Envoi des données à tous les serveurs de tâches pour s'assurer qu'ils sont toujours en fonctionnement

GearmanClient::ping

(No version information available, might only be in Git)

GearmanClient::ping — Envoi des données à tous les serveurs de tâches pour s'assurer qu'ils sont toujours en fonctionnement

Description

public bool GearmanClient::ping ( string $workload )

Envoi de données arbitraires à tous les serveurs de tâches pour s'assurer qu'ils sont bien en fonctionnement. Les données envoyées ne sont en aucun cas utilisées ou analysées. L'utilisation primaire de cette fonction est lors des tests et du débogage.

Liste de paramètres

workload

Quelques données arbitraires qui seront retournées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Supprime les options du client

  • « GearmanClient::ping
  • GearmanClient::returnCode »
  • PHP Manual
  • GearmanClient
  • Supprime les options du client

GearmanClient::removeOptions

(PECL gearman >= 0.6.0)

GearmanClient::removeOptions — Supprime les options du client

Description

public bool GearmanClient::removeOptions ( int $options )

Supprime une ou plusieurs options.

Liste de paramètres

options

Les options à supprimer.

Valeurs de retour

Retourne toujours TRUE.


Récupère le dernier code Gearman retourné

  • « GearmanClient::removeOptions
  • GearmanClient::runTasks »
  • PHP Manual
  • GearmanClient
  • Récupère le dernier code Gearman retourné

GearmanClient::returnCode

(PECL gearman >= 0.5.0)

GearmanClient::returnCode — Récupère le dernier code Gearman retourné

Description

public int GearmanClient::returnCode ( void )

Retourne le dernier code Gearman retourné.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un code retour Gearman valide.


Exécute une liste de tâches en parallèle

  • « GearmanClient::returnCode
  • GearmanClient::setClientCallback »
  • PHP Manual
  • GearmanClient
  • Exécute une liste de tâches en parallèle

GearmanClient::runTasks

(PECL gearman >= 0.5.0)

GearmanClient::runTasks — Exécute une liste de tâches en parallèle

Description

public bool GearmanClient::runTasks ( void )

Pour un jeu de tâches précédemment ajoutées avec les méthodes GearmanClient::addTask(),
GearmanClient::addTaskHigh(), GearmanClient::addTaskLow(),
GearmanClient::addTaskBackground(), GearmanClient::addTaskHighBackground(), ou
GearmanClient::addTaskLowBackground(), cette méthode
démarre l'exécution des tâches en parallèle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanClient::addTask() - Ajoute une tâche à exécuter en parallèle


Définit une fonction de rappel lorsqu'un paquet de données est reçu pour une tâche (obsolète)

  • « GearmanClient::runTasks
  • GearmanClient::setCompleteCallback »
  • PHP Manual
  • GearmanClient
  • Définit une fonction de rappel lorsqu'un paquet de données est reçu pour une tâche (obsolète)

GearmanClient::setClientCallback

(PECL gearman <= 0.5.0)

GearmanClient::setClientCallback — Définit une fonction de rappel lorsqu'un paquet de données est reçu pour une tâche (obsolète)

Description

public void GearmanClient::setClientCallback ( callable $callback )

Définit une fonction de rappel lorsqu'un paquet de données est reçu pour une tâche. La fonction de rappel prend un seul argument, un objet GearmanTask.

Note:

Cette méthode a été remplacée par la méthode GearmanClient::setDataCallback() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

callback

Une fonction ou une méthode à appeler

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanClient::setCompleteCallback() - Définit une fonction à appeler une fois la tâche terminée
  • GearmanClient::setCreatedCallback() - Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente
  • GearmanClient::setDataCallback() - Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche
  • GearmanClient::setExceptionCallback() - Définit une fonction de rappel pour les exceptions émises par l'agent
  • GearmanClient::setFailCallback() - Définit une fonction de rappel à appeler lorsqu'un travail échoue
  • GearmanClient::setStatusCallback() - Définit une fonction de rappel pour collecter les statuts d'une tâche
  • GearmanClient::setWarningCallback() - Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent
  • GearmanClient::setWorkloadCallback() - Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales


Définit une fonction à appeler une fois la tâche terminée

  • « GearmanClient::setClientCallback
  • GearmanClient::setContext »
  • PHP Manual
  • GearmanClient
  • Définit une fonction à appeler une fois la tâche terminée

GearmanClient::setCompleteCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCompleteCallback — Définit une fonction à appeler une fois la tâche terminée

Description

public bool GearmanClient::setCompleteCallback ( callable $callback )

Définit une fonction à appeler lorsqu'une tâche se termine. La fonction de rappel doit accepter un seul argument, un objet GearmanTask.

Liste de paramètres

callback

Une fonction à appeler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanClient::setDataCallback() - Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche
  • GearmanClient::setCreatedCallback() - Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente
  • GearmanClient::setExceptionCallback() - Définit une fonction de rappel pour les exceptions émises par l'agent
  • GearmanClient::setFailCallback() - Définit une fonction de rappel à appeler lorsqu'un travail échoue
  • GearmanClient::setStatusCallback() - Définit une fonction de rappel pour collecter les statuts d'une tâche
  • GearmanClient::setWarningCallback() - Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent
  • GearmanClient::setWorkloadCallback() - Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales


Définit le contexte d'une application

  • « GearmanClient::setCompleteCallback
  • GearmanClient::setCreatedCallback »
  • PHP Manual
  • GearmanClient
  • Définit le contexte d'une application

GearmanClient::setContext

(PECL gearman >= 0.6.0)

GearmanClient::setContext — Définit le contexte d'une application

Description

public bool GearmanClient::setContext ( string $context )

Définit une chaîne arbitraire à fournir comme contexte de l'application qui pourra être récupérée plus tard via la méthode GearmanClient::context().

Liste de paramètres

context

Données de contexte

Valeurs de retour

Retourne toujours TRUE.

Voir aussi

  • GearmanClient::context() - Récupère le contexte de l'application


Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente

  • « GearmanClient::setContext
  • GearmanClient::setData »
  • PHP Manual
  • GearmanClient
  • Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente

GearmanClient::setCreatedCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCreatedCallback — Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente

Description

public bool GearmanClient::setCreatedCallback ( string $callback )

Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente du serveur de travaux gearman. La fonction de rappel doit accepter un seul argument, un objet GearmanClient.

Liste de paramètres

callback

Une fonction à appeler

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanClient::setDataCallback() - Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche
  • GearmanClient::setCompleteCallback() - Définit une fonction à appeler une fois la tâche terminée
  • GearmanClient::setExceptionCallback() - Définit une fonction de rappel pour les exceptions émises par l'agent
  • GearmanClient::setFailCallback() - Définit une fonction de rappel à appeler lorsqu'un travail échoue
  • GearmanClient::setStatusCallback() - Définit une fonction de rappel pour collecter les statuts d'une tâche
  • GearmanClient::setWarningCallback() - Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent
  • GearmanClient::setWorkloadCallback() - Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales


Définit les données de l'application (obsolète)

  • « GearmanClient::setCreatedCallback
  • GearmanClient::setDataCallback »
  • PHP Manual
  • GearmanClient
  • Définit les données de l'application (obsolète)

GearmanClient::setData

(PECL gearman <= 0.5.0)

GearmanClient::setData — Définit les données de l'application (obsolète)

Description

public bool GearmanClient::setData ( string $data )

Définit les données de l'application qui pourront ensuite être récupérées via la méthode GearmanClient::data().

Note:

Cette méthode a été remplacée par la méthode GearmanCient::setContext() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

data

Valeurs de retour

Retourne toujours TRUE.

Voir aussi

  • GearmanClient::data() - Récupère les données de l'application (obsolète)


Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche

  • « GearmanClient::setData
  • GearmanClient::setExceptionCallback »
  • PHP Manual
  • GearmanClient
  • Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche

GearmanClient::setDataCallback

(PECL gearman >= 0.6.0)

GearmanClient::setDataCallback — Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche

Description

public bool GearmanClient::setDataCallback ( callable $callback )

Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche. La fonction de rappel doit accepter un seul argument, un objet GearmanTask.

Liste de paramètres

callback

Une fonction ou une méthode à appeler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanClient::setCompleteCallback() - Définit une fonction à appeler une fois la tâche terminée
  • GearmanClient::setCreatedCallback() - Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente
  • GearmanClient::setExceptionCallback() - Définit une fonction de rappel pour les exceptions émises par l'agent
  • GearmanClient::setFailCallback() - Définit une fonction de rappel à appeler lorsqu'un travail échoue
  • GearmanClient::setStatusCallback() - Définit une fonction de rappel pour collecter les statuts d'une tâche
  • GearmanClient::setWarningCallback() - Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent
  • GearmanClient::setWorkloadCallback() - Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales


Définit une fonction de rappel pour les exceptions émises par l'agent

  • « GearmanClient::setDataCallback
  • GearmanClient::setFailCallback »
  • PHP Manual
  • GearmanClient
  • Définit une fonction de rappel pour les exceptions émises par l'agent

GearmanClient::setExceptionCallback

(PECL gearman >= 0.5.0)

GearmanClient::setExceptionCallback — Définit une fonction de rappel pour les exceptions émises par l'agent

Description

public bool GearmanClient::setExceptionCallback ( callable $callback )

Spécifie une fonction à appeler lorsqu'un agent émet une exception.

Liste de paramètres

callback

Fonction à appeler lorsque l'agent émet une exception.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanClient::setDataCallback() - Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche
  • GearmanClient::setCompleteCallback() - Définit une fonction à appeler une fois la tâche terminée
  • GearmanClient::setCreatedCallback() - Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente
  • GearmanClient::setFailCallback() - Définit une fonction de rappel à appeler lorsqu'un travail échoue
  • GearmanClient::setStatusCallback() - Définit une fonction de rappel pour collecter les statuts d'une tâche
  • GearmanClient::setWarningCallback() - Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent
  • GearmanClient::setWorkloadCallback() - Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales


Définit une fonction de rappel à appeler lorsqu'un travail échoue

  • « GearmanClient::setExceptionCallback
  • GearmanClient::setOptions »
  • PHP Manual
  • GearmanClient
  • Définit une fonction de rappel à appeler lorsqu'un travail échoue

GearmanClient::setFailCallback

(PECL gearman >= 0.5.0)

GearmanClient::setFailCallback — Définit une fonction de rappel à appeler lorsqu'un travail échoue

Description

public bool GearmanClient::setFailCallback ( callable $callback )

Définit une fonction de rappel à utiliser lorsqu'une tâche échoue. La fonction doit accepter un seul argument, un objet GearmanTask.

Liste de paramètres

callback

Une fonction à appeler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanClient::setDataCallback() - Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche
  • GearmanClient::setCompleteCallback() - Définit une fonction à appeler une fois la tâche terminée
  • GearmanClient::setCreatedCallback() - Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente
  • GearmanClient::setExceptionCallback() - Définit une fonction de rappel pour les exceptions émises par l'agent
  • GearmanClient::setStatusCallback() - Définit une fonction de rappel pour collecter les statuts d'une tâche
  • GearmanClient::setWarningCallback() - Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent
  • GearmanClient::setWorkloadCallback() - Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales


Définit les options du client

  • « GearmanClient::setFailCallback
  • GearmanClient::setStatusCallback »
  • PHP Manual
  • GearmanClient
  • Définit les options du client

GearmanClient::setOptions

(PECL gearman >= 0.5.0)

GearmanClient::setOptions — Définit les options du client

Description

public bool GearmanClient::setOptions ( int $options )

Définit une ou plusieurs options du client.

Liste de paramètres

options

Les options à définir.

Valeurs de retour

Retourne toujours TRUE.


Définit une fonction de rappel pour collecter les statuts d'une tâche

  • « GearmanClient::setOptions
  • GearmanClient::setTimeout »
  • PHP Manual
  • GearmanClient
  • Définit une fonction de rappel pour collecter les statuts d'une tâche

GearmanClient::setStatusCallback

(PECL gearman >= 0.5.0)

GearmanClient::setStatusCallback — Définit une fonction de rappel pour collecter les statuts d'une tâche

Description

public bool GearmanClient::setStatusCallback ( callable $callback )

Définit une fonction de rappel à utiliser pour récupérer les informations de statut mis à jour depuis l'agent. La fonction doit accepter un seul argument, un objet GearmanTask.

Liste de paramètres

callback

Une fonction à appeler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanClient::setDataCallback() - Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche
  • GearmanClient::setCompleteCallback() - Définit une fonction à appeler une fois la tâche terminée
  • GearmanClient::setCreatedCallback() - Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente
  • GearmanClient::setExceptionCallback() - Définit une fonction de rappel pour les exceptions émises par l'agent
  • GearmanClient::setFailCallback() - Définit une fonction de rappel à appeler lorsqu'un travail échoue
  • GearmanClient::setWarningCallback() - Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent
  • GearmanClient::setWorkloadCallback() - Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales


Définit le délai d'attente d'une activité du socket I/O

  • « GearmanClient::setStatusCallback
  • GearmanClient::setWarningCallback »
  • PHP Manual
  • GearmanClient
  • Définit le délai d'attente d'une activité du socket I/O

GearmanClient::setTimeout

(PECL gearman >= 0.6.0)

GearmanClient::setTimeout — Définit le délai d'attente d'une activité du socket I/O

Description

public bool GearmanClient::setTimeout ( int $timeout )

Définit le délai d'attente d'une activité du socket I/O.

Liste de paramètres

timeout

Un intervalle de temps, en millisecondes.

Valeurs de retour

Retourne toujours TRUE.


Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent

  • « GearmanClient::setTimeout
  • GearmanClient::setWorkloadCallback »
  • PHP Manual
  • GearmanClient
  • Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent

GearmanClient::setWarningCallback

(PECL gearman >= 0.5.0)

GearmanClient::setWarningCallback — Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent

Description

public bool GearmanClient::setWarningCallback ( callable $callback )

Définit une fonction à appeler lorsqu'un agent lance une alerte. La fonction de rappel doit accepter un seul argument, un objet GearmanTask.

Liste de paramètres

callback

Une fonction à appeler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanClient::setDataCallback() - Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche
  • GearmanClient::setCompleteCallback() - Définit une fonction à appeler une fois la tâche terminée
  • GearmanClient::setCreatedCallback() - Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente
  • GearmanClient::setExceptionCallback() - Définit une fonction de rappel pour les exceptions émises par l'agent
  • GearmanClient::setFailCallback() - Définit une fonction de rappel à appeler lorsqu'un travail échoue
  • GearmanClient::setStatusCallback() - Définit une fonction de rappel pour collecter les statuts d'une tâche
  • GearmanClient::setWorkloadCallback() - Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales


Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales

  • « GearmanClient::setWarningCallback
  • GearmanClient::timeout »
  • PHP Manual
  • GearmanClient
  • Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales

GearmanClient::setWorkloadCallback

(PECL gearman >= 0.5.0)

GearmanClient::setWorkloadCallback — Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales

Description

public bool GearmanClient::setWorkloadCallback ( callable $callback )

Définit une fonction à appeler lorsqu'un agent a besoin d'envoyer des données avant la fin d'un travail. Un agent peut le faire lorsqu'il doit envoyer des mises à jour, envoyer des résultats partiels, ou envoyer des données en temps réel lors de l'exécution de travaux qui prennent beaucoup de temps. La fonction de rappel doit accepter un seul argument, un objet GearmanTask.

Liste de paramètres

callback

Une fonction à appeler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanClient::setDataCallback() - Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche
  • GearmanClient::setCompleteCallback() - Définit une fonction à appeler une fois la tâche terminée
  • GearmanClient::setCreatedCallback() - Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente
  • GearmanClient::setExceptionCallback() - Définit une fonction de rappel pour les exceptions émises par l'agent
  • GearmanClient::setFailCallback() - Définit une fonction de rappel à appeler lorsqu'un travail échoue
  • GearmanClient::setStatusCallback() - Définit une fonction de rappel pour collecter les statuts d'une tâche
  • GearmanClient::setWarningCallback() - Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent


Récupère la valeur du délai d'activité du socket I/O

  • « GearmanClient::setWorkloadCallback
  • GearmanJob »
  • PHP Manual
  • GearmanClient
  • Récupère la valeur du délai d'activité du socket I/O

GearmanClient::timeout

(PECL gearman >= 0.6.0)

GearmanClient::timeout — Récupère la valeur du délai d'activité du socket I/O

Description

public int GearmanClient::timeout ( void )

Retourne la valeur du délai, en millisecondes, à attendre une activité du socket I/O.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le délai d'attente, en millisecondes, d'une activité I/O. Une valeur négative signifie que le délai est infinie.

Voir aussi

  • GearmanClient::setTimeout() - Définit le délai d'attente d'une activité du socket I/O


La classe GearmanJob

(PECL gearman >= 0.5.0)

Introduction

Synopsis de la classe

GearmanJob {
/* Méthodes */
public bool complete ( string $result )
public __construct ( void )
public bool data ( string $data )
public bool exception ( string $exception )
public bool fail ( void )
public string functionName ( void )
public string handle ( void )
public int returnCode ( void )
public bool sendComplete ( string $result )
public bool sendData ( string $data )
public bool sendException ( string $exception )
public bool sendFail ( void )
public bool sendStatus ( int $numerator , int $denominator )
public bool sendWarning ( string $warning )
public bool setReturn ( int $gearman_return_t )
public bool status ( int $numerator , int $denominator )
public string unique ( void )
public bool warning ( string $warning )
public string workload ( void )
public int workloadSize ( void )
}

Sommaire

  • GearmanJob::complete — Envoie les résultats ainsi que le statut complet (obsolète)
  • GearmanJob::__construct — Crée une nouvelle instance GearmanJob
  • GearmanJob::data — Envoie des données pour un travail en cours d'exécution (obsolète)
  • GearmanJob::exception — Envoie une exception pour un travail en cours d'exécution (obsolète)
  • GearmanJob::fail — Envoie un statut d'échec (obsolète)
  • GearmanJob::functionName — Récupère le nom de la fonction
  • GearmanJob::handle — Récupère le gestionnaire de travaux
  • GearmanJob::returnCode — Récupère le dernier code retourné
  • GearmanJob::sendComplete — Envoie le résultat ainsi que le statut complet
  • GearmanJob::sendData — Envoie les données pour un travail en cours d'exécution
  • GearmanJob::sendException — Envoie une exception pour un travail en cours d'exécution
  • GearmanJob::sendFail — Envoie un statut d'échec
  • GearmanJob::sendStatus — Envoie un statut
  • GearmanJob::sendWarning — Envoie une alerte
  • GearmanJob::setReturn — Définit une valeur de retour
  • GearmanJob::status — Envoie un statut (obsolète)
  • GearmanJob::unique — Récupère l'identifiant unique
  • GearmanJob::warning — Envoie une alerte (obsolète)
  • GearmanJob::workload — Récupère la charge de travail
  • GearmanJob::workloadSize — Récupère la taille de la charge de travail


Envoie les résultats ainsi que le statut complet (obsolète)

  • « GearmanJob
  • GearmanJob::__construct »
  • PHP Manual
  • GearmanJob
  • Envoie les résultats ainsi que le statut complet (obsolète)

GearmanJob::complete

(PECL gearman <= 0.5.0)

GearmanJob::complete — Envoie les résultats ainsi que le statut complet (obsolète)

Description

public bool GearmanJob::complete ( string $result )

Envoie les résultats ainsi que le statut complet mis à jour pour ce travail.

Note:

Cette méthode a été remplacée par la méthode GearmanJob::sendComplete() dans la version 0.6.0 de l'extension Gearman.

Liste de paramètres

result

Les données linéarisées du résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanJob::sendFail() - Envoie un statut d'échec
  • GearmanJob::setReturn() - Définit une valeur de retour


Crée une nouvelle instance GearmanJob

  • « GearmanJob::complete
  • GearmanJob::data »
  • PHP Manual
  • GearmanJob
  • Crée une nouvelle instance GearmanJob

GearmanJob::__construct

(PECL gearman >= 0.5.0)

GearmanJob::__construct — Crée une nouvelle instance GearmanJob

Description

public GearmanJob::__construct ( void )

Crée une nouvelle instance GearmanJob représentant un travail assigné à un agent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet GearmanJob.


Envoie des données pour un travail en cours d'exécution (obsolète)

  • « GearmanJob::__construct
  • GearmanJob::exception »
  • PHP Manual
  • GearmanJob
  • Envoie des données pour un travail en cours d'exécution (obsolète)

GearmanJob::data

(PECL gearman <= 0.5.0)

GearmanJob::data — Envoie des données pour un travail en cours d'exécution (obsolète)

Description

public bool GearmanJob::data ( string $data )

Envoie des données vers un serveur de travaux (et à tous les clients à l'écoute) pour ce travail.

Note:

Cette méthode a été remplacée par la méthode GearmanJob::sendData() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

data

Données linéarisées arbitraires.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanJob::workload() - Récupère la charge de travail
  • GearmanTask::data() - Récupère les données retournées par une tâche


Envoie une exception pour un travail en cours d'exécution (obsolète)

  • « GearmanJob::data
  • GearmanJob::fail »
  • PHP Manual
  • GearmanJob
  • Envoie une exception pour un travail en cours d'exécution (obsolète)

GearmanJob::exception

(PECL gearman <= 0.5.0)

GearmanJob::exception — Envoie une exception pour un travail en cours d'exécution (obsolète)

Description

public bool GearmanJob::exception ( string $exception )

Envoie l'exception fournie lorsque ce travail est en cours d'exécution.

Note:

Cette méthode a été remplacée par la méthode GearmanJob::sendException() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

exception

Une description d'exception.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanJob::setReturn() - Définit une valeur de retour
  • GearmanJob::sendStatus() - Envoie un statut
  • GearmanJob::sendWarning() - Envoie une alerte


Envoie un statut d'échec (obsolète)

  • « GearmanJob::exception
  • GearmanJob::functionName »
  • PHP Manual
  • GearmanJob
  • Envoie un statut d'échec (obsolète)

GearmanJob::fail

(PECL gearman <= 0.5.0)

GearmanJob::fail — Envoie un statut d'échec (obsolète)

Description

public bool GearmanJob::fail ( void )

Envoie un statut d'échec pour ce travail, indiquant que le travail a échoué de façon inattendu (à contrario d'un échec avec une émission d'une exception donnée).

Note:

Cette méthode a été remplacée par la méthode GearmanJob::sendFail() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanJob::sendException() - Envoie une exception pour un travail en cours d'exécution
  • GearmanJob::setReturn() - Définit une valeur de retour
  • GearmanJob::sendStatus() - Envoie un statut
  • GearmanJob::sendWarning() - Envoie une alerte


Récupère le nom de la fonction

  • « GearmanJob::fail
  • GearmanJob::handle »
  • PHP Manual
  • GearmanJob
  • Récupère le nom de la fonction

GearmanJob::functionName

(PECL gearman >= 0.5.0)

GearmanJob::functionName — Récupère le nom de la fonction

Description

public string GearmanJob::functionName ( void )

Retourne le nom de la fonction pour ce travail. C'est la fonction exécutée par l'agent pour exécuter le travail.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de la fonction.

Voir aussi

  • GearmanTask::function() - Récupère le nom de la fonction associée (obsolète)


Récupère le gestionnaire de travaux

  • « GearmanJob::functionName
  • GearmanJob::returnCode »
  • PHP Manual
  • GearmanJob
  • Récupère le gestionnaire de travaux

GearmanJob::handle

(PECL gearman >= 0.5.0)

GearmanJob::handle — Récupère le gestionnaire de travaux

Description

public string GearmanJob::handle ( void )

Retourne le gestionnaire de travaux assigné par le serveur de travaux.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un gestionnaire de travaux.

Voir aussi

  • GearmanTask::jobHandle() - Récupère le gestionnaire de travaux


Récupère le dernier code retourné

  • « GearmanJob::handle
  • GearmanJob::sendComplete »
  • PHP Manual
  • GearmanJob
  • Récupère le dernier code retourné

GearmanJob::returnCode

(PECL gearman >= 0.5.0)

GearmanJob::returnCode — Récupère le dernier code retourné

Description

public int GearmanJob::returnCode ( void )

Retourne le dernier code retourné par le serveur de travaux.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un code de retour valide Gearman.

Voir aussi

  • GearmanTask::returnCode() - Récupère le dernier code retourné


Envoie le résultat ainsi que le statut complet

  • « GearmanJob::returnCode
  • GearmanJob::sendData »
  • PHP Manual
  • GearmanJob
  • Envoie le résultat ainsi que le statut complet

GearmanJob::sendComplete

(PECL gearman >= 0.6.0)

GearmanJob::sendComplete — Envoie le résultat ainsi que le statut complet

Description

public bool GearmanJob::sendComplete ( string $result )

Envoie les données du résultat ainsi que le statut complet mis à jour pour ce travail.

Liste de paramètres

result

Les données linéarisées du résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanJob::sendFail() - Envoie un statut d'échec
  • GearmanJob::setReturn() - Définit une valeur de retour


Envoie les données pour un travail en cours d'exécution

  • « GearmanJob::sendComplete
  • GearmanJob::sendException »
  • PHP Manual
  • GearmanJob
  • Envoie les données pour un travail en cours d'exécution

GearmanJob::sendData

(PECL gearman >= 0.6.0)

GearmanJob::sendData — Envoie les données pour un travail en cours d'exécution

Description

public bool GearmanJob::sendData ( string $data )

Envoie les données au serveur de travaux (et à tous les clients à l'écoute) pour ce travail.

Liste de paramètres

data

Données linéarisées arbitraires.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanJob::workload() - Récupère la charge de travail
  • GearmanTask::data() - Récupère les données retournées par une tâche


Envoie une exception pour un travail en cours d'exécution

  • « GearmanJob::sendData
  • GearmanJob::sendFail »
  • PHP Manual
  • GearmanJob
  • Envoie une exception pour un travail en cours d'exécution

GearmanJob::sendException

(PECL gearman >= 0.6.0)

GearmanJob::sendException — Envoie une exception pour un travail en cours d'exécution

Description

public bool GearmanJob::sendException ( string $exception )

Envoie l'exception fournie lors de l'exécution de ce travail.

Liste de paramètres

exception

Une description d'exception.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanJob::setReturn() - Définit une valeur de retour
  • GearmanJob::sendStatus() - Envoie un statut
  • GearmanJob::sendWarning() - Envoie une alerte


Envoie un statut d'échec

  • « GearmanJob::sendException
  • GearmanJob::sendStatus »
  • PHP Manual
  • GearmanJob
  • Envoie un statut d'échec

GearmanJob::sendFail

(PECL gearman >= 0.6.0)

GearmanJob::sendFail — Envoie un statut d'échec

Description

public bool GearmanJob::sendFail ( void )

Envoie un statut d'échec pour ce travail, indiquant que le travail a échoué de façon inatendue (à contrario d'une erreur émettant une exception).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanJob::sendException() - Envoie une exception pour un travail en cours d'exécution
  • GearmanJob::setReturn() - Définit une valeur de retour
  • GearmanJob::sendStatus() - Envoie un statut
  • GearmanJob::sendWarning() - Envoie une alerte


Envoie un statut

  • « GearmanJob::sendFail
  • GearmanJob::sendWarning »
  • PHP Manual
  • GearmanJob
  • Envoie un statut

GearmanJob::sendStatus

(PECL gearman >= 0.6.0)

GearmanJob::sendStatus — Envoie un statut

Description

public bool GearmanJob::sendStatus ( int $numerator , int $denominator )

Envoie des informations de statut au serveur de travaux ainsi qu'à tous les clients à l'écoute. Utilisez cette méthode pour spécifier le pourcentage de réalisation du travail courant.

Liste de paramètres

numerator

Le numérateur du taux de réalisation, sous forme d'une fraction.

denominator

Le dénominateur du taux de réalisation, sous forme d'une fraction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanClient::jobStatus() - Récupère le statut d'un travail en arrière-plan
  • GearmanTask::taskDenominator() - Récupère le dénominateur du taux de réalisation
  • GearmanTask::taskNumerator() - Récupère le numérateur du taux de réalisation


Envoie une alerte

  • « GearmanJob::sendStatus
  • GearmanJob::setReturn »
  • PHP Manual
  • GearmanJob
  • Envoie une alerte

GearmanJob::sendWarning

(PECL gearman >= 0.6.0)

GearmanJob::sendWarning — Envoie une alerte

Description

public bool GearmanJob::sendWarning ( string $warning )

Envoie une alerte pour ce travail pendant son exécution.

Liste de paramètres

warning

Un message d'alerte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanJob::sendComplete() - Envoie le résultat ainsi que le statut complet
  • GearmanJob::sendException() - Envoie une exception pour un travail en cours d'exécution
  • GearmanJob::sendFail() - Envoie un statut d'échec


Définit une valeur de retour

  • « GearmanJob::sendWarning
  • GearmanJob::status »
  • PHP Manual
  • GearmanJob
  • Définit une valeur de retour

GearmanJob::setReturn

(PECL gearman >= 0.5.0)

GearmanJob::setReturn — Définit une valeur de retour

Description

public bool GearmanJob::setReturn ( int $gearman_return_t )

Définit une valeur de retour pour ce travail, indiquant la façon dont s'est terminée ce travail.

Liste de paramètres

gearman_return_t

Une valeur de retour valide Gearman.

Valeurs de retour


Envoie un statut (obsolète)

  • « GearmanJob::setReturn
  • GearmanJob::unique »
  • PHP Manual
  • GearmanJob
  • Envoie un statut (obsolète)

GearmanJob::status

(PECL gearman <= 0.5.0)

GearmanJob::status — Envoie un statut (obsolète)

Description

public bool GearmanJob::status ( int $numerator , int $denominator )

Envoie des informations de statut au serveur de travaux ainsi qu'à tous les clients à l'écoute. Utilisez cette méthode pour spécifier le pourcentage de réalisation d'un travail.

Note:

Cette méthode a été remplacée par la méthode GearmanJob::sendStatus() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

numerator

Le numérateur du taux de réalisation, sous forme d'une fraction.

denominator

Le dénominateur du taux de réalisation, sous forme d'une fraction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanClient::jobStatus() - Récupère le statut d'un travail en arrière-plan
  • GearmanTask::taskDenominator() - Récupère le dénominateur du taux de réalisation
  • GearmanTask::taskNumerator() - Récupère le numérateur du taux de réalisation


Récupère l'identifiant unique

  • « GearmanJob::status
  • GearmanJob::warning »
  • PHP Manual
  • GearmanJob
  • Récupère l'identifiant unique

GearmanJob::unique

(PECL gearman >= 0.5.0)

GearmanJob::unique — Récupère l'identifiant unique

Description

public string GearmanJob::unique ( void )

Retourne l'identifiant unique pour ce travail. L'identifiant est assigné par le client.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'identifiant unique.

Voir aussi

  • GearmanClient::do() - Exécute une seule tâche et retourne le résultat (obsolète)
  • GearmanTask::uuid() - Récupère l'identifiant unique pour une tâche (obsolète)


Envoie une alerte (obsolète)

  • « GearmanJob::unique
  • GearmanJob::workload »
  • PHP Manual
  • GearmanJob
  • Envoie une alerte (obsolète)

GearmanJob::warning

(PECL gearman <= 0.5.0)

GearmanJob::warning — Envoie une alerte (obsolète)

Description

public bool GearmanJob::warning ( string $warning )

Envoie une alerte pour ce travail lors de son exécution.

Note:

Cette méthode a été remplacée par la méthode GearmanJob::sendWarning() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

warning

Un message d'alerte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • GearmanJob::sendComplete() - Envoie le résultat ainsi que le statut complet
  • GearmanJob::sendException() - Envoie une exception pour un travail en cours d'exécution
  • GearmanJob::sendFail() - Envoie un statut d'échec


Récupère la charge de travail

  • « GearmanJob::warning
  • GearmanJob::workloadSize »
  • PHP Manual
  • GearmanJob
  • Récupère la charge de travail

GearmanJob::workload

(PECL gearman >= 0.5.0)

GearmanJob::workload — Récupère la charge de travail

Description

public string GearmanJob::workload ( void )

Récupère la charge pour ce travail. Ce sont les données linéarisées à analyser par l'agent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les données linéarisées.

Voir aussi

  • GearmanClient::do() - Exécute une seule tâche et retourne le résultat (obsolète)
  • GearmanJob::workloadSize() - Récupère la taille de la charge de travail


Récupère la taille de la charge de travail

  • « GearmanJob::workload
  • GearmanTask »
  • PHP Manual
  • GearmanJob
  • Récupère la taille de la charge de travail

GearmanJob::workloadSize

(PECL gearman >= 0.5.0)

GearmanJob::workloadSize — Récupère la taille de la charge de travail

Description

public int GearmanJob::workloadSize ( void )

Retourne la taille de la charge pour ce travail (les données que l'agent doit traiter) en octets.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La taille, en octets.

Voir aussi

  • GearmanJob::workload() - Récupère la charge de travail


La classe GearmanTask

(PECL gearman >= 0.5.0)

Introduction

Synopsis de la classe

GearmanTask {
/* Méthodes */
public __construct ( void )
public GearmanTask create ( void )
public string data ( void )
public int dataSize ( void )
public string function ( void )
public string functionName ( void )
public bool isKnown ( void )
public bool isRunning ( void )
public string jobHandle ( void )
public array recvData ( int $data_len )
public int returnCode ( void )
public int sendData ( string $data )
public int sendWorkload ( string $data )
public int taskDenominator ( void )
public int taskNumerator ( void )
public string unique ( void )
public string uuid ( void )
}

Sommaire

  • GearmanTask::__construct — Crée une instance GearmanTask
  • GearmanTask::create — Crée une tâche (obsolète)
  • GearmanTask::data — Récupère les données retournées par une tâche
  • GearmanTask::dataSize — Récupère la taille des données retournées
  • GearmanTask::function — Récupère le nom de la fonction associée (obsolète)
  • GearmanTask::functionName — Récupère le nom de la fonction associée
  • GearmanTask::isKnown — Vérifie si une tâche est connue
  • GearmanTask::isRunning — Vérifie si la tâche est actuellement en fonctionnement
  • GearmanTask::jobHandle — Récupère le gestionnaire de travaux
  • GearmanTask::recvData — Lit le travail ou les données retournées par une tâche dans un buffer
  • GearmanTask::returnCode — Récupère le dernier code retourné
  • GearmanTask::sendData — Envoie des données pour une tâche (obsolète)
  • GearmanTask::sendWorkload — Envoie les données pour une tâche
  • GearmanTask::taskDenominator — Récupère le dénominateur du taux de réalisation
  • GearmanTask::taskNumerator — Récupère le numérateur du taux de réalisation
  • GearmanTask::unique — Récupère l'identifiant unique de la tâche
  • GearmanTask::uuid — Récupère l'identifiant unique pour une tâche (obsolète)


Crée une instance GearmanTask

  • « GearmanTask
  • GearmanTask::create »
  • PHP Manual
  • GearmanTask
  • Crée une instance GearmanTask

GearmanTask::__construct

(PECL gearman >= 0.5.0)

GearmanTask::__construct — Crée une instance GearmanTask

Description

public GearmanTask::__construct ( void )

Crée une instance GearmanTask représentant une tâche à soumettre au serveur de tâches.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet GearmanTask.


Crée une tâche (obsolète)

  • « GearmanTask::__construct
  • GearmanTask::data »
  • PHP Manual
  • GearmanTask
  • Crée une tâche (obsolète)

GearmanTask::create

(PECL gearman <= 0.5.0)

GearmanTask::create — Crée une tâche (obsolète)

Description

public GearmanTask GearmanTask::create ( void )

Retourne un nouvel objet GearmanTask.

Note:

Cette méthode a été supprimée depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet GearmanTask ou FALSE si une erreur survient.


Récupère les données retournées par une tâche

  • « GearmanTask::create
  • GearmanTask::dataSize »
  • PHP Manual
  • GearmanTask
  • Récupère les données retournées par une tâche

GearmanTask::data

(PECL gearman >= 0.5.0)

GearmanTask::data — Récupère les données retournées par une tâche

Description

public string GearmanTask::data ( void )

Retourne les données retournées d'une tâche par un agent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les données linéarisées, ou FALSE s'il n'y a aucune donnée.

Voir aussi

  • GearmanTask::dataSize() - Récupère la taille des données retournées


Récupère la taille des données retournées

  • « GearmanTask::data
  • GearmanTask::function »
  • PHP Manual
  • GearmanTask
  • Récupère la taille des données retournées

GearmanTask::dataSize

(PECL gearman >= 0.5.0)

GearmanTask::dataSize — Récupère la taille des données retournées

Description

public int GearmanTask::dataSize ( void )

Retourne la taille des données retournées d'une tâche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La taille des données, ou FALSE s'il n'y a pas de données.

Voir aussi

  • GearmanTask::data() - Récupère les données retournées par une tâche


Récupère le nom de la fonction associée (obsolète)

  • « GearmanTask::dataSize
  • GearmanTask::functionName »
  • PHP Manual
  • GearmanTask
  • Récupère le nom de la fonction associée (obsolète)

GearmanTask::function

(PECL gearman <= 0.5.0)

GearmanTask::function — Récupère le nom de la fonction associée (obsolète)

Description

public string GearmanTask::function ( void )

Retourne le nom de la fonction associée à cette tâche, i.e., la fonction appelée par l'agent Gearman.

Note:

Cette méthode a été remplacée par la méthode GearmanTask::functionName() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un nom de fonction.


Récupère le nom de la fonction associée

  • « GearmanTask::function
  • GearmanTask::isKnown »
  • PHP Manual
  • GearmanTask
  • Récupère le nom de la fonction associée

GearmanTask::functionName

(PECL gearman >= 0.6.0)

GearmanTask::functionName — Récupère le nom de la fonction associée

Description

public string GearmanTask::functionName ( void )

Retourne le nom de la fonction associée à cette tâche, i.e., la fonction appelée par l'agent Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un nom de fonction.


Vérifie si une tâche est connue

  • « GearmanTask::functionName
  • GearmanTask::isRunning »
  • PHP Manual
  • GearmanTask
  • Vérifie si une tâche est connue

GearmanTask::isKnown

(PECL gearman >= 0.5.0)

GearmanTask::isKnown — Vérifie si une tâche est connue

Description

public bool GearmanTask::isKnown ( void )

Récupère les informations de statut si la tâche est connue sur le serveur de travaux.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la tâche est connue, FALSE sinon.


Vérifie si la tâche est actuellement en fonctionnement

  • « GearmanTask::isKnown
  • GearmanTask::jobHandle »
  • PHP Manual
  • GearmanTask
  • Vérifie si la tâche est actuellement en fonctionnement

GearmanTask::isRunning

(PECL gearman >= 0.5.0)

GearmanTask::isRunning — Vérifie si la tâche est actuellement en fonctionnement

Description

public bool GearmanTask::isRunning ( void )

Indique si la tâche est actuellement en fonctionnement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la tâche est en fonctionnement, FALSE sinon.


Récupère le gestionnaire de travaux

  • « GearmanTask::isRunning
  • GearmanTask::recvData »
  • PHP Manual
  • GearmanTask
  • Récupère le gestionnaire de travaux

GearmanTask::jobHandle

gearman_job_handle

(PECL gearman >= 0.5.0)

GearmanTask::jobHandle -- gearman_job_handle — Récupère le gestionnaire de travaux

Description

public string GearmanTask::jobHandle ( void )

Récupère le gestionnaire de travaux pour cette tâche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le gestionnaire de travaux.

Voir aussi

  • GearmanClient::doJobHandle() - Récupère le gestionnaire de travaux pour la tâche en cours


Lit le travail ou les données retournées par une tâche dans un buffer

  • « GearmanTask::jobHandle
  • GearmanTask::returnCode »
  • PHP Manual
  • GearmanTask
  • Lit le travail ou les données retournées par une tâche dans un buffer

GearmanTask::recvData

(PECL gearman >= 0.5.0)

GearmanTask::recvData — Lit le travail ou les données retournées par une tâche dans un buffer

Description

public array GearmanTask::recvData ( int $data_len )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

data_len

Longueur des données à lire.

Valeurs de retour

Un tableau dont le premier élément est la longueur des données lues, et le second, le buffer de données. Retourne FALSE si la lecture échoue.

Voir aussi

  • GearmanTask::sendData() - Envoie des données pour une tâche (obsolète)


Récupère le dernier code retourné

  • « GearmanTask::recvData
  • GearmanTask::sendData »
  • PHP Manual
  • GearmanTask
  • Récupère le dernier code retourné

GearmanTask::returnCode

(PECL gearman >= 0.5.0)

GearmanTask::returnCode — Récupère le dernier code retourné

Description

public int GearmanTask::returnCode ( void )

Retourne le dernier code retourné par Gearman pour une tâche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un code valide de retour Gearman.

Voir aussi

  • GearmanClient::returnCode() - Récupère le dernier code Gearman retourné


Envoie des données pour une tâche (obsolète)

  • « GearmanTask::returnCode
  • GearmanTask::sendWorkload »
  • PHP Manual
  • GearmanTask
  • Envoie des données pour une tâche (obsolète)

GearmanTask::sendData

(PECL gearman <= 0.5.0)

GearmanTask::sendData — Envoie des données pour une tâche (obsolète)

Description

public int GearmanTask::sendData ( string $data )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

data

Données à envoyer à l'agent.

Valeurs de retour

La longueur des données envoyées, ou FALSE si l'envoi a échoué.

Voir aussi

  • GearmanTask::recvData() - Lit le travail ou les données retournées par une tâche dans un buffer


Envoie les données pour une tâche

  • « GearmanTask::sendData
  • GearmanTask::taskDenominator »
  • PHP Manual
  • GearmanTask
  • Envoie les données pour une tâche

GearmanTask::sendWorkload

(PECL gearman >= 0.6.0)

GearmanTask::sendWorkload — Envoie les données pour une tâche

Description

public int GearmanTask::sendWorkload ( string $data )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

data

Données à envoyer à l'agent.

Valeurs de retour

La longueur des données çà envoyer, ou FALSE si l'envoi échoue.

Voir aussi

  • GearmanTask::recvData() - Lit le travail ou les données retournées par une tâche dans un buffer


Récupère le dénominateur du taux de réalisation

  • « GearmanTask::sendWorkload
  • GearmanTask::taskNumerator »
  • PHP Manual
  • GearmanTask
  • Récupère le dénominateur du taux de réalisation

GearmanTask::taskDenominator

(PECL gearman >= 0.5.0)

GearmanTask::taskDenominator — Récupère le dénominateur du taux de réalisation

Description

public int GearmanTask::taskDenominator ( void )

Retourne le dénominateur du taux de réalisation de la tâche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un nombre entre 0 et 100, ou FALSE s'il ne peut être déterminé.

Voir aussi

  • GearmanTask::taskNumerator() - Récupère le numérateur du taux de réalisation


Récupère le numérateur du taux de réalisation

  • « GearmanTask::taskDenominator
  • GearmanTask::unique »
  • PHP Manual
  • GearmanTask
  • Récupère le numérateur du taux de réalisation

GearmanTask::taskNumerator

(PECL gearman >= 0.5.0)

GearmanTask::taskNumerator — Récupère le numérateur du taux de réalisation

Description

public int GearmanTask::taskNumerator ( void )

Retourne le numérateur du taux de réalisation de la tâche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un nombre entre 0 et 100, ou FALSE s'il ne peut être déterminé.

Voir aussi

  • GearmanTask::taskDenominator() - Récupère le dénominateur du taux de réalisation


Récupère l'identifiant unique de la tâche

  • « GearmanTask::taskNumerator
  • GearmanTask::uuid »
  • PHP Manual
  • GearmanTask
  • Récupère l'identifiant unique de la tâche

GearmanTask::unique

(PECL gearman >= 0.6.0)

GearmanTask::unique — Récupère l'identifiant unique de la tâche

Description

public string GearmanTask::unique ( void )

Retourne l'identifiant unique de la tâche. Il est assigné par la méthode GearmanClient, contrairement au gestionnaire de travaux qui est défini par le serveur de travaux Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'identifiant unique, ou FALSE si aucun identifiant n'a été assigné.

Voir aussi

  • GearmanClient::do() - Exécute une seule tâche et retourne le résultat (obsolète)
  • GearmanClient::addTask() - Ajoute une tâche à exécuter en parallèle


Récupère l'identifiant unique pour une tâche (obsolète)

  • « GearmanTask::unique
  • GearmanWorker »
  • PHP Manual
  • GearmanTask
  • Récupère l'identifiant unique pour une tâche (obsolète)

GearmanTask::uuid

(PECL gearman <= 0.5.0)

GearmanTask::uuid — Récupère l'identifiant unique pour une tâche (obsolète)

Description

public string GearmanTask::uuid ( void )

Retourne l'identifiant unique pour une tâche. Il est assigné par la méthode GearmanClient, contrairement au gestionnaire de travaux qui est défini par le serveur de travaux Gearman.

Note:

Cette méthode a été remplacée par la méthode GearmanTask::unique() depuis la version 0.6.0 de l'extension Gearman.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'identifiant unique, ou FALSE si aucun identifiant n'est assigné.

Voir aussi

  • GearmanClient::do() - Exécute une seule tâche et retourne le résultat (obsolète)
  • GearmanClient::addTask() - Ajoute une tâche à exécuter en parallèle


La classe GearmanWorker

(PECL gearman >= 0.5.0)

Introduction

Synopsis de la classe

GearmanWorker {
/* Méthodes */
public bool addFunction ( string $function_name , callable $function [, mixed &$context [, int $timeout ]] )
public bool addOptions ( int $option )
public bool addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] )
public bool addServers ( string $servers = 127.0.0.1:4730 )
public void clone ( void )
public __construct ( void )
public bool echo ( string $workload )
public string error ( void )
public int getErrno ( void )
public int options ( void )
public bool register ( string $function_name [, int $timeout ] )
public bool removeOptions ( int $option )
public int returnCode ( void )
public bool setId ( string $id )
public bool setOptions ( int $option )
public bool setTimeout ( int $timeout )
public int timeout ( void )
public bool unregister ( string $function_name )
public bool unregisterAll ( void )
public bool wait ( void )
public bool work ( void )
}

Sommaire

  • GearmanWorker::addFunction — Enregistre et ajoute une fonction de rappel
  • GearmanWorker::addOptions — Ajout des options à l'agent
  • GearmanWorker::addServer — Ajoute un serveur de travaux
  • GearmanWorker::addServers — Ajoute plusieurs serveurs de travaux
  • GearmanWorker::clone — Crée une copie d'un agent
  • GearmanWorker::__construct — Crée une instance GearmanWorker
  • GearmanWorker::echo — Test la réponse d'un serveur de travaux
  • GearmanWorker::error — Récupère la dernière erreur survenue
  • GearmanWorker::getErrno — Récupère la errno
  • GearmanWorker::options — Récupère les options de l'agent
  • GearmanWorker::register — Enregistre une fonction sur un serveur de travaux
  • GearmanWorker::removeOptions — Supprime des options de l'agent
  • GearmanWorker::returnCode — Récupère le dernier code Gearman retourné
  • GearmanWorker::setId — Définit un identifiant au worker
  • GearmanWorker::setOptions — Définit les options de l'agent
  • GearmanWorker::setTimeout — Définit le délai d'attente maximal d'activité du socket I/O
  • GearmanWorker::timeout — Récupère le délai d'attente de l'activité du socket I/O
  • GearmanWorker::unregister — Supprime une fonction des serveurs de travaux
  • GearmanWorker::unregisterAll — Supprime toutes les fonctions des serveurs de travaux
  • GearmanWorker::wait — Attente une activité d'un ou plusieurs serveurs de travaux
  • GearmanWorker::work — Attend et exécute un travail


Enregistre et ajoute une fonction de rappel

  • « GearmanWorker
  • GearmanWorker::addOptions »
  • PHP Manual
  • GearmanWorker
  • Enregistre et ajoute une fonction de rappel

GearmanWorker::addFunction

(PECL gearman >= 0.5.0)

GearmanWorker::addFunction — Enregistre et ajoute une fonction de rappel

Description

public bool GearmanWorker::addFunction ( string $function_name , callable $function [, mixed &$context [, int $timeout ]] )

Enregistre une fonction de rappel avec le serveur de travaux et spécifie un rappel correspondant à cette fonction. Optionnellement, fixe des données de contexte de l'application à utiliser lorsque la fonction de rappel est appelée, ainsi qu'un délai maximal d'exécution.

Liste de paramètres

function_name

Le nom de la fonction à enregistrer avec le serveur de travaux

function

Une fonction de rappel à appeler lorsqu'un travail est soumis

context

Une référence à des données de contexte de l'application qui peuvent être modifiées par la fonction de l'agent.

timeout

Un intervalle de temps, en secondes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Agent simple qui utilise des données de contexte de l'application

<?php

# Crée un agent Gearman
$worker= new GearmanWorker();

# Ajoute le serveur par défaut (localhost)
$worker->addServer();

# Définit une variable qui contient les données de l'application
$count= 0;

# Ajoute la fonction "reverse"
$worker->addFunction("reverse", "reverse_cb", $count);

# Démarre l'agent
while ($worker->work());

function reverse_cb($job, &$count)
{
  $count++;
  return "$count: " . strrev($job->workload());
}

?>

Exécution d'un client qui soumet 2 travaux pour la fonction reverse affichera quelque chose comme :

1: olleh
2: dlrow

Voir aussi

  • GearmanClient::do() - Exécute une seule tâche et retourne le résultat (obsolète)


Ajout des options à l'agent

  • « GearmanWorker::addFunction
  • GearmanWorker::addServer »
  • PHP Manual
  • GearmanWorker
  • Ajout des options à l'agent

GearmanWorker::addOptions

(PECL gearman >= 0.6.0)

GearmanWorker::addOptions — Ajout des options à l'agent

Description

public bool GearmanWorker::addOptions ( int $option )

Ajout une ou des options à l'agent.

Liste de paramètres

option

Les options à ajouter

Valeurs de retour

Retourne toujours TRUE.

Voir aussi

  • GearmanWorker::options() - Récupère les options de l'agent
  • GearmanClient::setOptions() - Définit les options du client
  • GearmanClient::removeOptions() - Supprime les options du client


Ajoute un serveur de travaux

  • « GearmanWorker::addOptions
  • GearmanWorker::addServers »
  • PHP Manual
  • GearmanWorker
  • Ajoute un serveur de travaux

GearmanWorker::addServer

(PECL gearman >= 0.5.0)

GearmanWorker::addServer — Ajoute un serveur de travaux

Description

public bool GearmanWorker::addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] )

Ajoute un serveur de travaux à cet agent. Il sera ajouter à une liste de serveurs à utiliser pour exécuter les travaux. Aucun socket I/O n'intervient ici.

Liste de paramètres

host

Le nom d'hôte du serveur de travaux.

port

Le port du serveur de travaux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout de serveurs Gearman

<?php
$worker= new GearmanWorker();
$worker->addServer("10.0.0.1");
$worker->addServer("10.0.0.2", 7003);
?>

Voir aussi

  • GearmanWorker::addServers() - Ajoute plusieurs serveurs de travaux


Ajoute plusieurs serveurs de travaux

  • « GearmanWorker::addServer
  • GearmanWorker::clone »
  • PHP Manual
  • GearmanWorker
  • Ajoute plusieurs serveurs de travaux

GearmanWorker::addServers

(PECL gearman >= 0.5.0)

GearmanWorker::addServers — Ajoute plusieurs serveurs de travaux

Description

public bool GearmanWorker::addServers ( string $servers = 127.0.0.1:4730 )

Ajoute un ou plusieurs serveurs de travaux à l'agent. Ils seront ajoutés à une liste de serveurs qui pourront être utilisés pour exécuter des travaux. Aucun socket I/O n'intervient ici.

Liste de paramètres

servers

Une liste de serveurs de travaux séparés par une virgule, au format hôte:port. Si le port n'est pas spécifié, la valeur par défaut utilisée sera 4730.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout de 2 serveurs de travaux

<?php

$worker= new GearmanWorker();
$worker->addServers("10.0.0.1,10.0.0.2:7003");

?>

Voir aussi

  • GearmanWorker::addServer() - Ajoute un serveur de travaux


Crée une copie d'un agent

  • « GearmanWorker::addServers
  • GearmanWorker::__construct »
  • PHP Manual
  • GearmanWorker
  • Crée une copie d'un agent

GearmanWorker::clone

(PECL gearman >= 0.5.0)

GearmanWorker::clone — Crée une copie d'un agent

Description

public void GearmanWorker::clone ( void )

Crée une copie d'un agent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet GearmanWorker.


Crée une instance GearmanWorker

  • « GearmanWorker::clone
  • GearmanWorker::echo »
  • PHP Manual
  • GearmanWorker
  • Crée une instance GearmanWorker

GearmanWorker::__construct

(PECL gearman >= 0.5.0)

GearmanWorker::__construct — Crée une instance GearmanWorker

Description

public GearmanWorker::__construct ( void )

Crée une nouvelle instance de GearmanWorker représentant un agent qui se connecte au serveur de travaux et accepte des tâches à exécuter.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet GearmanWorker.

Voir aussi

  • GearmanWorker::clone() - Crée une copie d'un agent


Test la réponse d'un serveur de travaux

  • « GearmanWorker::__construct
  • GearmanWorker::error »
  • PHP Manual
  • GearmanWorker
  • Test la réponse d'un serveur de travaux

GearmanWorker::echo

(PECL gearman >= 0.6.0)

GearmanWorker::echo — Test la réponse d'un serveur de travaux

Description

public bool GearmanWorker::echo ( string $workload )

Envoie les données à tous les serveurs de travaux pour vérifier si ils les retournent. C'est une fonction de test pour vérifier si les serveurs de travaux répondent correctement.

Liste de paramètres

workload

Données linéarisées arbitraires.

Valeurs de retour

Retourne une valeur standard Gearman.

Voir aussi

  • GearmanClient::echo() - Envoi des données à tous les serveurs de travaux afin de vérifier qu'ils les affichent en retour (obsolète)


Récupère la dernière erreur survenue

  • « GearmanWorker::echo
  • GearmanWorker::getErrno »
  • PHP Manual
  • GearmanWorker
  • Récupère la dernière erreur survenue

GearmanWorker::error

(PECL gearman >= 0.5.0)

GearmanWorker::error — Récupère la dernière erreur survenue

Description

public string GearmanWorker::error ( void )

Retourne la dernière erreur survenue, sous la forme d'une chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une erreur, sous la forme d'une chaîne de caractères.

Voir aussi

  • GearmanWorker::getErrno() - Récupère la errno


Récupère la errno

  • « GearmanWorker::error
  • GearmanWorker::options »
  • PHP Manual
  • GearmanWorker
  • Récupère la errno

GearmanWorker::getErrno

(PECL gearman >= 0.5.0)

GearmanWorker::getErrno — Récupère la errno

Description

public int GearmanWorker::getErrno ( void )

Retourne la valeur de errno dans le cas d'une valeur de retour GEARMAN_ERRNO.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une errno valide.

Voir aussi

  • GearmanWorker::error() - Récupère la dernière erreur survenue


Récupère les options de l'agent

  • « GearmanWorker::getErrno
  • GearmanWorker::register »
  • PHP Manual
  • GearmanWorker
  • Récupère les options de l'agent

GearmanWorker::options

(PECL gearman >= 0.6.0)

GearmanWorker::options — Récupère les options de l'agent

Description

public int GearmanWorker::options ( void )

Récupère les options précédemment définies pour l 'agent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les options actuellement définies pour l'agent.

Voir aussi

  • GearmanWorker::setOptions() - Définit les options de l'agent


Enregistre une fonction sur un serveur de travaux

  • « GearmanWorker::options
  • GearmanWorker::removeOptions »
  • PHP Manual
  • GearmanWorker
  • Enregistre une fonction sur un serveur de travaux

GearmanWorker::register

(PECL gearman >= 0.6.0)

GearmanWorker::register — Enregistre une fonction sur un serveur de travaux

Description

public bool GearmanWorker::register ( string $function_name [, int $timeout ] )

Enregistre un nom de fonction avec un serveur de travaux avec un optionnel délai maximal d'exécution. Ce délai spécifie le nombre de secondes que le serveur doit attendre avant de marquer une tâche comme ayant échouée. Si ce délai est défini à zéro, il n'y aura aucun délai.

Liste de paramètres

function_name

Le nom de la fonction à enregistrer avec le serveur de travaux.

timeout

Un intervalle de temps, en secondes.

Valeurs de retour

Une valeur de retour Gearman standard.

Voir aussi

  • GearmanWorker::unregister() - Supprime une fonction des serveurs de travaux
  • GearmanWorker::unregisterAll() - Supprime toutes les fonctions des serveurs de travaux


Supprime des options de l'agent

  • « GearmanWorker::register
  • GearmanWorker::returnCode »
  • PHP Manual
  • GearmanWorker
  • Supprime des options de l'agent

GearmanWorker::removeOptions

(PECL gearman >= 0.6.0)

GearmanWorker::removeOptions — Supprime des options de l'agent

Description

public bool GearmanWorker::removeOptions ( int $option )

Supprime une ou plusieurs options de l'agent.

Liste de paramètres

option

Les options à supprimer

Valeurs de retour

Retourne toujours TRUE.

Voir aussi

  • GearmanWorker::options() - Récupère les options de l'agent
  • GearmanWorker::setOptions() - Définit les options de l'agent
  • GearmanWorker::addOptions() - Ajout des options à l'agent


Récupère le dernier code Gearman retourné

  • « GearmanWorker::removeOptions
  • GearmanWorker::setId »
  • PHP Manual
  • GearmanWorker
  • Récupère le dernier code Gearman retourné

GearmanWorker::returnCode

(PECL gearman >= 0.5.0)

GearmanWorker::returnCode — Récupère le dernier code Gearman retourné

Description

public int GearmanWorker::returnCode ( void )

Retourne le dernier code Gearman retourné.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un code de retour Gearman valide.

Voir aussi

  • GearmanWorker::error() - Récupère la dernière erreur survenue
  • GearmanWorker::getErrno() - Récupère la errno


Définit un identifiant au worker

  • « GearmanWorker::returnCode
  • GearmanWorker::setOptions »
  • PHP Manual
  • GearmanWorker
  • Définit un identifiant au worker

GearmanWorker::setId

(No version information available, might only be in Git)

GearmanWorker::setId — Définit un identifiant au worker

Description

public bool GearmanWorker::setId ( string $id )

Assigne au worker un identifiant, permettant ainsi qu'il soit identifiable lorsque gearmand demande la liste des workers disponibles.

Liste de paramètres

id

Un identifiant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec GearmanWorker::setId()

Définit un identifiant à un worker simple.

<?php
$worker= new GearmanWorker();
$worker->setId('test');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Run the following command:
gearadmin --workers

Output:
30 ::3a3a:3361:3361:3a33%976303667 - : test


Définit les options de l'agent

  • « GearmanWorker::setId
  • GearmanWorker::setTimeout »
  • PHP Manual
  • GearmanWorker
  • Définit les options de l'agent

GearmanWorker::setOptions

(PECL gearman >= 0.5.0)

GearmanWorker::setOptions — Définit les options de l'agent

Description

public bool GearmanWorker::setOptions ( int $option )

Définit une ou plusieurs options de l'agent.

Liste de paramètres

option

Les options à définir.

Valeurs de retour

Retourne toujours TRUE.

Voir aussi

  • GearmanWorker::options() - Récupère les options de l'agent
  • GearmanWorker::addOptions() - Ajout des options à l'agent
  • GearmanWorker::removeOptions() - Supprime des options de l'agent
  • GearmanClient::setOptions() - Définit les options du client


Définit le délai d'attente maximal d'activité du socket I/O

  • « GearmanWorker::setOptions
  • GearmanWorker::timeout »
  • PHP Manual
  • GearmanWorker
  • Définit le délai d'attente maximal d'activité du socket I/O

GearmanWorker::setTimeout

(PECL gearman >= 0.6.0)

GearmanWorker::setTimeout — Définit le délai d'attente maximal d'activité du socket I/O

Description

public bool GearmanWorker::setTimeout ( int $timeout )

Définit l'intervalle de temps à attendre une activité du socket I/O.

Liste de paramètres

timeout

Un intervalle de temps, en millisecondes. Une valeur négative indique que le délai sera infini.

Valeurs de retour

Retourne toujours TRUE.

Exemples

Exemple #1 Un agent simple qui attend 5 secondes

<?php

echo "Début\n";

# Crée un nouvel agent.
$gmworker= new GearmanWorker();

# Ajoute un serveur par défaut (localhost).
$gmworker->addServer();

# Enregistre une fonction "reverse" avec le serveur.
$gmworker->addFunction("reverse", "reverse_fn");

# Définit le délai d'attente à 5 secondes
$gmworker->setTimeout(5000);

echo "Attente d'un travail...\n";
while(@$gmworker->work() || $gmworker->returnCode() == GEARMAN_TIMEOUT)
{
  if ($gmworker->returnCode() == GEARMAN_TIMEOUT)
  {
    # Normalement, vous devriez faire quelques lignes utiles ici...
    echo "Délai d'attente expiré. Attente du prochain travail...\n";
    continue;
  }

  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

echo "Fait\n";

function reverse_fn($job)
{
  return strrev($job->workload());
}

?>

L'exécution d'un agent avec aucun travail de soumis générera un affichage qui ressemblera à quelques choses comme :

Début
Attente d'un travail...
Délai d'attente expiré. Attente du prochain travail...
Délai d'attente expiré. Attente du prochain travail...
Délai d'attente expiré. Attente du prochain travail...

Voir aussi

  • GearmanWorker::timeout() - Récupère le délai d'attente de l'activité du socket I/O


Récupère le délai d'attente de l'activité du socket I/O

  • « GearmanWorker::setTimeout
  • GearmanWorker::unregister »
  • PHP Manual
  • GearmanWorker
  • Récupère le délai d'attente de l'activité du socket I/O

GearmanWorker::timeout

(PECL gearman >= 0.6.0)

GearmanWorker::timeout — Récupère le délai d'attente de l'activité du socket I/O

Description

public int GearmanWorker::timeout ( void )

Retourne le délai d'attente courant, en millisecondes, de l'activité du socket I/O.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une période de temps, en millisecondes. Une valeur négative indique que le délai est infini.

Voir aussi

  • GearmanWorker::setTimeout() - Définit le délai d'attente maximal d'activité du socket I/O


Supprime une fonction des serveurs de travaux

  • « GearmanWorker::timeout
  • GearmanWorker::unregisterAll »
  • PHP Manual
  • GearmanWorker
  • Supprime une fonction des serveurs de travaux

GearmanWorker::unregister

(PECL gearman >= 0.6.0)

GearmanWorker::unregister — Supprime une fonction des serveurs de travaux

Description

public bool GearmanWorker::unregister ( string $function_name )

Supprime une fonction des serveurs de travaux, faisant ainsi qu'aucun travail ne sera envoyé à l'agent pour cette fonction.

Liste de paramètres

function_name

Le nom d'une fonction à supprimer du serveur de travaux.

Valeurs de retour

Une valeur de retour standard Gearman.

Voir aussi

  • GearmanWorker::register() - Enregistre une fonction sur un serveur de travaux
  • GearmanWorker::unregisterAll() - Supprime toutes les fonctions des serveurs de travaux


Supprime toutes les fonctions des serveurs de travaux

  • « GearmanWorker::unregister
  • GearmanWorker::wait »
  • PHP Manual
  • GearmanWorker
  • Supprime toutes les fonctions des serveurs de travaux

GearmanWorker::unregisterAll

(PECL gearman >= 0.6.0)

GearmanWorker::unregisterAll — Supprime toutes les fonctions des serveurs de travaux

Description

public bool GearmanWorker::unregisterAll ( void )

Supprime toutes les fonctions précédemment enregistrées, s'assurant ainsi qu'aucun travail ne sera envoyé à l'agent avec ces fonctions.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une valeur de retour standard Gearman.

Voir aussi

  • GearmanWorker::register() - Enregistre une fonction sur un serveur de travaux
  • GearmanWorker::unregister() - Supprime une fonction des serveurs de travaux


Attente une activité d'un ou plusieurs serveurs de travaux

  • « GearmanWorker::unregisterAll
  • GearmanWorker::work »
  • PHP Manual
  • GearmanWorker
  • Attente une activité d'un ou plusieurs serveurs de travaux

GearmanWorker::wait

(PECL gearman >= 0.6.0)

GearmanWorker::wait — Attente une activité d'un ou plusieurs serveurs de travaux

Description

public bool GearmanWorker::wait ( void )

Met à attente l'agent d'une activité d'un ou plusieurs serveurs de travaux lors d'un fonctionnement en mode I/O non bloquant. En cas d'échec, une alerte de niveau E_WARNING sera émise avec le contenu de la dernière erreur Gearman survenue.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exécution d'un agent en mode non bloquant

<?php

echo "Début\n";

# Crée un nouvel agent
$worker= new GearmanWorker();

# Rend l'agent non bloquant
$worker->addOptions(GEARMAN_WORKER_NON_BLOCKING);

# Ajoute un serveur par défaut (localhost, port 4730)
$worker->addServer();

# Ajoute une fonction "reverse"
$worker->addFunction('reverse', 'reverse_fn');

# Tente de récupérer un travail
while (@$worker->work() ||
       $worker->returnCode() == GEARMAN_IO_WAIT ||
       $worker->returnCode() == GEARMAN_NO_JOBS)
{
  if ($worker->returnCode() == GEARMAN_SUCCESS)
    continue;

  echo "Attente du premier travail...\n";
  if (!@$worker->wait())
  {
    if ($worker->returnCode() == GEARMAN_NO_ACTIVE_FDS)
    {
      # Nous ne sommes connectés à aucun serveur ; nous attendons donc un peu
      # avant de tenter une reconnexion.
      sleep(5);
      continue;
    }
    break;
  }
}

echo "Erreur de l'agent : " . $worker->error() . "\n";

function reverse_fn($job)
{
  return strrev($job->workload());
}

?>

Voir aussi

  • GearmanWorker::work() - Attend et exécute un travail


Attend et exécute un travail

  • « GearmanWorker::wait
  • GearmanException »
  • PHP Manual
  • GearmanWorker
  • Attend et exécute un travail

GearmanWorker::work

(PECL gearman >= 0.5.0)

GearmanWorker::work — Attend et exécute un travail

Description

public bool GearmanWorker::work ( void )

Attend un travail et appèle la fonction de rappel correspondante. Émets une alerte de type E_WARNING contenant la dernière erreur Gearman survenue si le code retourné n'est pas une des constantes suivantes : GEARMAN_SUCCESS, GEARMAN_IO_WAIT, ou GEARMAN_WORK_FAIL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec GearmanWorker::work()

<?php

# Crée un agent
$worker = new GearmanWorker();

# Ajoute un serveur de travaux par défaut (localhost)
$worker->addServer();

# Ajoute la fonction "reverse"
$worker->addFunction("reverse", "my_reverse_function");

# Démarre l'écoute de l'agent afin de récupérer un travail
while ($worker->work());

function my_reverse_function($job)
{
  return strrev($job->workload());
}

?>

Voir aussi

  • GearmanWorker::addFunction() - Enregistre et ajoute une fonction de rappel


La classe GearmanException

(PECL gearman >= 0.5.0)

Introduction

Synopsis de la classe

GearmanException extends Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes */
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Net Gopher

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Exemple simple
  • Fonctions Gopher
    • gopher_parsedir — Transpose une entrée d'un dossier formaté gopher dans un tableau associatif


Introduction

Le protocole gopher, comme définie par la » RFC 1436, est généralement considéré comme l'ancêtre du protocole moderne HTTP. Cependant, gopher a été également conçu pour fournir des références à des ressources non-gopher comme telnet, wais, nntp et, toujours, http. Cette extension ajoute le support gopher aux gestionnaires d'URL, et fournit une fonction utile gopher_parsedir() pour lister les dossiers formatés gopher.


Installation

Prérequis : PHP version 4.3.0 ou supérieure.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/net_gopher


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes Net_Gopher
Constante | Valeur | Description
GOPHER_DOCUMENT | 0 | Document standard text/plain.
GOPHER_DIRECTORY | 1 | Une ressource contenant une liste de dossiers formatée gopher.
GOPHER_BINHEX | 4 | Un fichier binaire encodé BinHex.
GOPHER_DOSBINARY | 5 | Une archive binaire formaté DOS.
GOPHER_UUENCODED | 6 | Un fichier UUEncoded.
GOPHER_BINARY | 9 | Un fichier binaire générique.
GOPHER_INFO | 255 | Une entrée informative.
GOPHER_HTTP | 254 | Une référence vers une ressource HTTP.
GOPHER_UNKNOWN | -1 | Une entrée non reconnue.


  • « Constantes pré-définies
  • Exemple simple »
  • PHP Manual
  • Gopher
  • Exemples

Exemples

Sommaire

  • Exemple simple


  • « Exemples
  • Fonctions Gopher »
  • PHP Manual
  • Exemples
  • Exemple simple

Exemple simple

<?php
readfile("gopher://gopher.example.com/somedocument");
?>


Fonctions Gopher

Sommaire

  • gopher_parsedir — Transpose une entrée d'un dossier formaté gopher dans un tableau associatif


Transpose une entrée d'un dossier formaté gopher dans un tableau associatif

  • « Fonctions Gopher
  • Gupnp »
  • PHP Manual
  • Fonctions Gopher
  • Transpose une entrée d'un dossier formaté gopher dans un tableau associatif

gopher_parsedir

(PECL net_gopher >= 0.1)

gopher_parsedir — Transpose une entrée d'un dossier formaté gopher dans un tableau associatif

Description

array gopher_parsedir ( string $dirent )

gopher_parsedir() transpose une entrée d'un dossier formaté gopher dans un tableau associatif.

Gopher retourne des documents text/plain pour les documents demandés. Une requête vers un dossier (comme /) retournera des séries de lignes encodées à chaque ligne est une entrée du dossier ou une ligne d'informations.

Liste de paramètres

dirent

L'entrée du dossier.

Valeurs de retour

Retourne un tableau associatif dont les composants sont :

  • type - Une constante GOPHER_XXX.
  • title - Le nom de la ressource.
  • path - Le chemin vers la ressource.
  • host - Le nom du domaine de l'hôte qui possède ce document (ou dossier).
  • port - Le port de connexion sur l'hôte host.

En cas d'échec, l'entrée additionnelle data du tableau retourné contiendra la ligne analysée.

Exemples

Exemple #1 Affichage hypothétique depuis gopher://gopher.example.com/

0All about my gopher site.               /allabout.txt               gopher.example.com    70
9A picture of my cat.                    /pics/cat.png               gopher.example.com    70
1A collection of my writings.            /stories                    gopher.example.com    70
hThe HTTP version of this site.          URL:http://www.example.com  gopher.example.com    70
1Mirror of this site in Spain.           /                           gopher.ejemplo.co.es  70
iWelcome to my gopher site.                                          error.host            1
iPlease select one of the options above                              error.host            1
iSend complaints to /dev/null                                        error.host            1
iLong live gopher!                                                   error.host            1

Dans l'exemple précédent, le dossier racine de gopher.example.com reconnaît un DOCUMENT identifié par 0 et se trouvant à l'adresse gopher://gopher.example.com:70/allabout.txt. Il reconnaît également deux autres dossiers (qui ont leur propre liste de fichiers) à l'adresse gopher://gopher.exmaple.com:70/stories et à l'adresse gopher://gopher.ejemplo.co.es:70/. Il y a également un fichier binaire, un lien vers une url HTTP et plusieurs lignes d'informations.

En passant chaque ligne du listing de ce dossier à la fonction gopher_parsedir(), un tableau associatif est formé contenant une version analysée des données.

Exemple #2 Exemple avec gopher_parsedir()

<?php

$directory = file("gopher://gopher.example.com");

foreach($directory as $dirent) {
    print_r(gopher_parsedir($dirent));
}
?>

L'exemple ci-dessus va afficher :

Array (
  [type] => 0
  [title] => All about my gopher site.
  [path] => /allabout.txt
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 9
  [title] => A picture of my cat.
  [path] => /pics/cat.png
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 1
  [title] => A collection of my writings.
  [path] => /stories
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 254
  [title] => The HTTP version of this site.
  [path] => URL:http://www.example.com
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 1
  [title] => Mirror of this site in Spain.
  [path] => /
  [host] => gopher.ejemplo.co.es
  [port] => 70
)
Array (
  [type] => 255
  [title] => Welcome to my gopher site.
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Please select one of the options above.
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Send complaints to /dev/null
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Long live gopher!
  [path] =>
  [host] => error.host
  [port] => 1
)


Gupnp

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Parcours des périphériques et des services
    • Implémentation du périphérique BinaryLight
  • Fonctions Gupnp
    • gupnp_context_get_host_ip — Récupère l'adresse IP
    • gupnp_context_get_port — Récupère le port
    • gupnp_context_get_subscription_timeout — Récupère le délai d'expiration lors de la souscription aux événements
    • gupnp_context_host_path — Démarre l'hébergement
    • gupnp_context_new — Crée un nouveau contexte
    • gupnp_context_set_subscription_timeout — Définit le délai d'attente des événements de sousscription
    • gupnp_context_timeout_add — Définit une fonction à appeler à intervalle régulier
    • gupnp_context_unhost_path — Interrompt l'hébergement
    • gupnp_control_point_browse_start — Commence la recherche
    • gupnp_control_point_browse_stop — Interrompt la recherche
    • gupnp_control_point_callback_set — Définit la fonction de rappel pour le point de contrôle
    • gupnp_control_point_new — Crée un nouveau point de contrôle
    • gupnp_device_action_callback_set — Définit la fonction de rappel pour un périphérique
    • gupnp_device_info_get_service — Récupère le service avec son type
    • gupnp_device_info_get — Récupère les informations d'un périphérique racine
    • gupnp_root_device_get_available — Vérifie si un périphérique racine est disponible
    • gupnp_root_device_get_relative_location — Récupère le chemin relatif d'un périphérique racine
    • gupnp_root_device_new — Crée un nouveau périphérique racine
    • gupnp_root_device_set_available — Définit si le périphérique racine est disponible ou non
    • gupnp_root_device_start — Démarre la boucle principale
    • gupnp_root_device_stop — Interrompt la boucle principale
    • gupnp_service_action_get — Récupère les arguments de l'action spécifiée
    • gupnp_service_action_return_error — Retourne le code erreur
    • gupnp_service_action_return — Retourne le succès de l'action
    • gupnp_service_action_set — Définit les valeurs à retourner par une action spécifique
    • gupnp_service_freeze_notify — Suspend les notifications
    • gupnp_service_info_get_introspection — Récupère l'introspection des ressources du service
    • gupnp_service_info_get — Récupère les informations complètes d'un service
    • gupnp_service_introspection_get_state_variable — Retourne le statut de la variable d'une donnée
    • gupnp_service_notify — Notifie les clients connectés
    • gupnp_service_proxy_action_get — Envoi l'action au service et récupère la valeur
    • gupnp_service_proxy_action_set — Envoie une action au service et définit la valeur
    • gupnp_service_proxy_add_notify — Définit une fonction de rappel pour la notification de modification d'une variable
    • gupnp_service_proxy_callback_set — Définit la fonction de rappel pour un service de proxy pour un signal donné
    • gupnp_service_proxy_get_subscribed — Vérifie si la souscription à un service est valide
    • gupnp_service_proxy_remove_notify — Annule une notification de modification de variable
    • gupnp_service_proxy_send_action — Envoie une action avec plusieurs paramètres de façon synchrone
    • gupnp_service_proxy_set_subscribed — S'abonne (se désabonne) à un service
    • gupnp_service_thaw_notify — Envoie toutes les notifications en attente et arrête la mise en file d'attente de nouvelles


Introduction

GUPnP est un framework open source orienté objet pour créer des périphériques UPnP et des points de contrôle, écrit en C en utilisant GObject et libsoup. Cette extension s'appuie sur GUPnP et fournit une API similaire. Toutes les sources ainsi qu'une documentation complémentaire peuvent être obtenues depuis le » site officiel.


Pré-requis

Afin d'utiliser les fonctions PECL/Gupnp, vous devez installer la » bibilothèque gUPnP version 0.12.7 ou suivante. Elles nécessitent aussi glib-2.0, gssdp-1.0, libsoup-2.4 ou suivantes.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/gupnp

Note: Si ./configure n'arrive pas à trouver les fichiers libgupnp (par exemple, si ils ont été installés dans un dossier personnalisé), utilisez la commande ./configure --with-gupnp=$PREFIX, où $PREFIX représente le chemin d'installation de libgupnp.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

GUPNP_TYPE_BOOLEAN (entier)
GUPNP_TYPE_INT (entier)
GUPNP_TYPE_LONG (entier)
GUPNP_TYPE_DOUBLE (entier)
GUPNP_TYPE_FLOAT (entier)
GUPNP_TYPE_STRING (entier)
GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE (entier)
GUPNP_SIGNAL_DEVICE_PROXY_UNAVAILABLE (entier)
GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE (entier)
GUPNP_SIGNAL_SERVICE_PROXY_UNAVAILABLE (entier)
GUPNP_SIGNAL_ACTION_INVOKED (entier)
GUPNP_SIGNAL_NOTIFY_FAILED (entier)
GUPNP_SIGNAL_SUBSCRIPTION_LOST (entier)
GUPNP_CONTROL_ERROR_INVALID_ACTION (entier)
GUPNP_CONTROL_ERROR_INVALID_ARGS (entier)
GUPNP_CONTROL_ERROR_OUT_OF_SYNC (entier)
GUPNP_CONTROL_ERROR_ACTION_FAILED (entier)


  • « Constantes pré-définies
  • Parcours des périphériques et des services »
  • PHP Manual
  • Gupnp
  • Exemples

Exemples

Sommaire

  • Parcours des périphériques et des services
  • Implémentation du périphérique BinaryLight


Parcours des périphériques et des services

Cet exemple montre comment obtenir des informations sur tous les périphériques et les services. Une boucle infinie (en utilisant CLI) est démarrée et si un périphérique ou un service disponible est trouvé, la fonction de rappel correspondante sera appelée.

Exemple #1 Recherche tous les périphériques et services UPnP.

<?php

/* Fonction de rappel pour les périphériques disponibles */
function device_proxy_available_cb($proxy, $arg)
{
    $info = gupnp_device_info_get($proxy);

    $type = $info['device_type'];
    $location = $info['location'];

    printf("Device available:\n");
    printf("\ttype:     %s\n", $type);
    printf("\tlocation: %s\n", $location);
}

/* Fonction de rappel pour les services disponibles */
function service_proxy_available_cb($proxy, $arg)
{
    $info = gupnp_service_info_get($proxy);

    $type = $info['service_type'];
    $location = $info['location'];

    printf("Service available:\n");
    printf("\ttype:     %s\n", $type);
    printf("\tlocation: %s\n", $location);
}

/* Création du contexte UPnP */
$context = gupnp_context_new();
if (!$context) {
    printf("Error creating the GUPnP context\n");
    exit(-1);
}

/* Nous sommes intéressé par tout ! */
$cp = gupnp_control_point_new($context, "ssdp:all");

/* Définit les fonctions de rappel */
gupnp_control_point_callback_set($cp,
    GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE, 'device_proxy_available_cb');
gupnp_control_point_callback_set($cp,
    GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE, 'service_proxy_available_cb');

/* Commence le parcours (boucle infinie, il faut utiliser le raccourci clavier Ctrl-C pour l'interrompre) */
gupnp_control_point_browse_start($cp);

?>


Implémentation du périphérique BinaryLight

Ceci est un exemple de périphérique/service UPnP, implémentant les services BinaryLight et SwitchPower pour émuler une interruption de lumière.

L'interface utilisateur a été simplifiée afin de montrer les conceptes et les méthodes basiques.

Exemple #1 Implémentation d'un serveur lumineux

<?php

/* Définit la cible */
function set_target_cb($service, $action, $arg)
{
    /* Récupère la nouvelle valeur cible */
    $target = gupnp_service_action_get($action, 'NewTargetValue', GUPNP_TYPE_BOOLEAN);

    /* Si la nouvelle cible ne correspond pas au statut courant, on modifie
       le statut et nous émettons une notification de modification du statut. */
    if ($target != $GLOBALS['status']) {
        $GLOBALS['status'] = $target;
        gupnp_service_notify($service, 'Status', GUPNP_TYPE_BOOLEAN, $GLOBALS['status']);
        printf("The light is now %s.\n", $GLOBALS['status'] ? "on" : "off");
    }

    /* Retourne le succès de l'opération au client */
    gupnp_service_action_return($action);
}

/* Récupère la cible */
function get_target_cb($service, $action, $arg)
{
    gupnp_service_action_set($action, 'RetTargetValue', GUPNP_TYPE_BOOLEAN, $GLOBALS['status']);
    gupnp_service_action_return($action);
}

/* Récupère le statut */
function get_status_cb($service, $action, $arg)
{
    gupnp_service_action_set($action, 'ResultStatus', GUPNP_TYPE_BOOLEAN, $GLOBALS['status']);
    gupnp_service_action_return($action);
}

/* Par défaut, la lumière est éteinte */
$GLOBALS['status'] = false;
printf("The light is now %s.\n", $GLOBALS['status'] ? "on" : "off");

/* Création du contexte UPnP */
$context = gupnp_context_new();
if (!$context) {
    printf("Erreur lors de la création du contexte GUPnP\n");
    exit(-1);
}

/* Héberge le dossier qui contient le fichier de description du périphérique et du service */
gupnp_context_host_path($context, "./web", "");

/* Crée un nouveau périphérique racine */
$location = "/BinaryLight.xml";
$dev = gupnp_root_device_new($context, $location);
gupnp_root_device_set_available($dev, true);

/* Récupère le service de modification de lumière depuis le périphérique racine */
$service_type = "urn:schemas-upnp-org:service:SwitchPower:1";
$service = gupnp_device_info_get_service($dev, $service_type);
if (!$service) {
    die("Impossible de récupérer le service SwitchPower1\n");
}

/* Définit la fonction de rappel pour l'action GetStatus */
gupnp_device_action_callback_set($service, GUPNP_SIGNAL_ACTION_INVOKED, "GetStatus",
    "get_status_cb", "action data, GetStatus");

/* Définit la fonction de rappel pour l'action GetTarget */
gupnp_device_action_callback_set($service, GUPNP_SIGNAL_ACTION_INVOKED, "GetTarget",
    "get_target_cb", "action data, GetTarget");

/* Définit la fonction de rappel pour l'action SetTarget */
gupnp_device_action_callback_set($service, GUPNP_SIGNAL_ACTION_INVOKED, "SetTarget",
    "set_target_cb", "action data, SetTarget");

/* Exécute la boucle principale */
gupnp_root_device_start($dev);

?>

Exemple #2 Implémentation du client lumineux

<?php

function service_proxy_available_cb($proxy, $arg)
{
    $mode = $arg['mode'];

    printf("Set subscribed\n");
    gupnp_service_proxy_set_subscribed($proxy, true);

    /* Ajout une notification si le statut a changé */
    if (!gupnp_service_proxy_add_notify($proxy, "Status",
            GUPNP_TYPE_BOOLEAN, "status_changed_cb", NULL)) {
        printf("Echec de l'ajout de la notification\n");
    }

    if ($mode == 'TOGGLE') {
        /* Nous basculons, aussi, en premier lieu, nous récupérons le statut courant */
        $target = gupnp_service_proxy_action_get($proxy, 'GetStatus', 'ResultStatus', GUPNP_TYPE_BOOLEAN);

        /* Et ensuite, nous basculons */
        $target = ! $target;
    } else {
        /* Mode est un booléen, aussi, la cible est le mode que nous venons de choisir
           enumeration values. */
        $target = ($mode == 'ON') ? true : false;
    }

    /* Définit la cible */
    if (!gupnp_service_proxy_action_set($proxy, 'SetTarget', 'NewTargetValue', $target, GUPNP_TYPE_BOOLEAN)) {
        printf("Impossible de basculer\n");
    } else {
        printf("Set switch to %s.\n", $target ? "on" : "off");
    }

    /* Arrêt de la recherche */
    gupnp_control_point_browse_stop($arg['cp']);
}

function status_changed_cb($variable, $value, $arg)
{
    printf("Le statut a changé\n");
    printf("\tvariable name: %s\n", $variable);
    printf("\tvalue: %s\n", (int)$value);
    printf("\n");
}

/* Vérifie et analyse les arguments de la ligne de commande */
if (count($argv) != 2) {
    printf("Usage: light-client.php [on|off|toggle]\n");
    exit(-1);
}

if ($argv[1] == "on") {
    $mode = 'ON';
} elseif ($argv[1] == "off") {
    $mode = 'OFF';
} elseif ($argv[1] == "toggle") {
    $mode = 'TOGGLE';
} else {
    usage ();
    exit(-1);
}

/* Crée un contexte UPnP */
$context = gupnp_context_new();
if (!$context) {
    printf("Erreur lors de la création du contexte GUPnP\n");
    exit(-1);
}

/* Crée un point de contrôle, et cherche les services SwitchPower */
$cp = gupnp_control_point_new ($context,
        "urn:schemas-upnp-org:service:SwitchPower:1");

/* Connexion à la fonction de rappel utilisée lorsque le service est trouvé */
$cb = "service_proxy_available_cb";
$arg = array('mode' => $mode, 'cp' => $cp);
gupnp_control_point_callback_set($cp, GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE, $cb, $arg);

/* Commence la recherche */
gupnp_control_point_browse_start($cp);

?>


Fonctions Gupnp

Sommaire

  • gupnp_context_get_host_ip — Récupère l'adresse IP
  • gupnp_context_get_port — Récupère le port
  • gupnp_context_get_subscription_timeout — Récupère le délai d'expiration lors de la souscription aux événements
  • gupnp_context_host_path — Démarre l'hébergement
  • gupnp_context_new — Crée un nouveau contexte
  • gupnp_context_set_subscription_timeout — Définit le délai d'attente des événements de sousscription
  • gupnp_context_timeout_add — Définit une fonction à appeler à intervalle régulier
  • gupnp_context_unhost_path — Interrompt l'hébergement
  • gupnp_control_point_browse_start — Commence la recherche
  • gupnp_control_point_browse_stop — Interrompt la recherche
  • gupnp_control_point_callback_set — Définit la fonction de rappel pour le point de contrôle
  • gupnp_control_point_new — Crée un nouveau point de contrôle
  • gupnp_device_action_callback_set — Définit la fonction de rappel pour un périphérique
  • gupnp_device_info_get_service — Récupère le service avec son type
  • gupnp_device_info_get — Récupère les informations d'un périphérique racine
  • gupnp_root_device_get_available — Vérifie si un périphérique racine est disponible
  • gupnp_root_device_get_relative_location — Récupère le chemin relatif d'un périphérique racine
  • gupnp_root_device_new — Crée un nouveau périphérique racine
  • gupnp_root_device_set_available — Définit si le périphérique racine est disponible ou non
  • gupnp_root_device_start — Démarre la boucle principale
  • gupnp_root_device_stop — Interrompt la boucle principale
  • gupnp_service_action_get — Récupère les arguments de l'action spécifiée
  • gupnp_service_action_return_error — Retourne le code erreur
  • gupnp_service_action_return — Retourne le succès de l'action
  • gupnp_service_action_set — Définit les valeurs à retourner par une action spécifique
  • gupnp_service_freeze_notify — Suspend les notifications
  • gupnp_service_info_get_introspection — Récupère l'introspection des ressources du service
  • gupnp_service_info_get — Récupère les informations complètes d'un service
  • gupnp_service_introspection_get_state_variable — Retourne le statut de la variable d'une donnée
  • gupnp_service_notify — Notifie les clients connectés
  • gupnp_service_proxy_action_get — Envoi l'action au service et récupère la valeur
  • gupnp_service_proxy_action_set — Envoie une action au service et définit la valeur
  • gupnp_service_proxy_add_notify — Définit une fonction de rappel pour la notification de modification d'une variable
  • gupnp_service_proxy_callback_set — Définit la fonction de rappel pour un service de proxy pour un signal donné
  • gupnp_service_proxy_get_subscribed — Vérifie si la souscription à un service est valide
  • gupnp_service_proxy_remove_notify — Annule une notification de modification de variable
  • gupnp_service_proxy_send_action — Envoie une action avec plusieurs paramètres de façon synchrone
  • gupnp_service_proxy_set_subscribed — S'abonne (se désabonne) à un service
  • gupnp_service_thaw_notify — Envoie toutes les notifications en attente et arrête la mise en file d'attente de nouvelles


Récupère l'adresse IP

  • « Fonctions Gupnp
  • gupnp_context_get_port »
  • PHP Manual
  • Fonctions Gupnp
  • Récupère l'adresse IP

gupnp_context_get_host_ip

(PECL gupnp >= 0.1.0)

gupnp_context_get_host_ip — Récupère l'adresse IP

Description

string gupnp_context_get_host_ip ( resource $context )

Récupère l'adresse IP utilisée.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

Valeurs de retour

Retourne l'adresse IP du contexte courant, et FALSE si une erreur survient.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et récupère l'adresse de l'hôte

<?php

/* Crée le contexte UPnP */
$context = gupnp_context_new();

if (!$context) {
 die("Erreur lors de la création du contexte GUPnP\n");
}

/* Récupère l'adresse IP du contexte UPnP */
$ip = gupnp_context_get_host_ip($context);
echo $ip;

?>

Voir aussi

  • gupnp_context_new() - Crée un nouveau contexte
  • gupnp_context_get_port() - Récupère le port


Récupère le port

  • « gupnp_context_get_host_ip
  • gupnp_context_get_subscription_timeout »
  • PHP Manual
  • Fonctions Gupnp
  • Récupère le port

gupnp_context_get_port

(PECL gupnp >= 0.1.0)

gupnp_context_get_port — Récupère le port

Description

int gupnp_context_get_port ( resource $context )

Récupère le port sur lequel fonctionne le serveur SOAP.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

Valeurs de retour

Retourne le numéro du port pour le contexte courant et FALSE si une erreur survient.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et récupère le numéro du port

<?php

/* Crée le contexte UPnP */
$context = gupnp_context_new();

if (!$context) {
 die("Erreur lors de la création du contexte GUPnP\n");
}

/* Récupère le numéro du port du contexte UPnP */
$port = gupnp_context_get_port($context);
echo $port;

?>

Voir aussi

  • gupnp_context_new() - Crée un nouveau contexte
  • gupnp_context_get_host_ip() - Récupère l'adresse IP


Récupère le délai d'expiration lors de la souscription aux événements

  • « gupnp_context_get_port
  • gupnp_context_host_path »
  • PHP Manual
  • Fonctions Gupnp
  • Récupère le délai d'expiration lors de la souscription aux événements

gupnp_context_get_subscription_timeout

(PECL gupnp >= 0.1.0)

gupnp_context_get_subscription_timeout — Récupère le délai d'expiration lors de la souscription aux événements

Description

int gupnp_context_get_subscription_timeout ( resource $context )

Récupère le délai d'expiration lors de la souscription (en secondes) ou 0 signifiant qu'il n'y a pas de délai d'attente.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

Valeurs de retour

Le délai d'attente lors de la souscription aux événements, en secondes.

Voir aussi

  • gupnp_context_new() - Crée un nouveau contexte
  • gupnp_context_set_subscription_timeout() - Définit le délai d'attente des événements de sousscription


Démarre l'hébergement

  • « gupnp_context_get_subscription_timeout
  • gupnp_context_new »
  • PHP Manual
  • Fonctions Gupnp
  • Démarre l'hébergement

gupnp_context_host_path

(PECL gupnp >= 0.1.0)

gupnp_context_host_path — Démarre l'hébergement

Description

bool gupnp_context_host_path ( resource $context , string $local_path , string $server_path )

Démarre l'hébergement de local_path sur server_path. Les fichiers avec le chemin local_path.LOCALE (si ils existent) seront servis lorsque LOCALE est spécifié dans l'en-tête Accept-Language de la requête.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

local_path

Chemin vers le fichier ou le dossier local à héberger.

server_path

Chemin du serveur Web où local_path doit être hébergé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et définit le chemin de l'hôte

<?php

/* Crée le contexte UPnP */
$context = gupnp_context_new();

if (!$context) {
 die("Erreur lors de la création du contexte GUPnP\n");
}

/* Héberge le dossier courant */
gupnp_context_host_path($context, "./web", "");

?>

Voir aussi

  • gupnp_context_new() - Crée un nouveau contexte
  • gupnp_context_unhost_path() - Interrompt l'hébergement


Crée un nouveau contexte

  • « gupnp_context_host_path
  • gupnp_context_set_subscription_timeout »
  • PHP Manual
  • Fonctions Gupnp
  • Crée un nouveau contexte

gupnp_context_new

(PECL gupnp >= 0.1.0)

gupnp_context_new — Crée un nouveau contexte

Description

resource gupnp_context_new ([ string $host_ip [, int $port = 0 ]] )

Crée un nouveau contexte avec le host_ip et le port spécifié.

Liste de paramètres

host_ip

L'adresse IP de l'hôte local, ou NULL pour utiliser l'adresse IP de la première interface qui n'est pas une interface de boucle locale.

port

Le port à utiliser, ou 0 si vous ne voulez pas vous préoccuper du port à utiliser.

Valeurs de retour

Un identifiant de contexte.

Exemples

Exemple #1 Crée un nouveau contexte UPnP

<?php

/* Crée un contexte UPnP */
$context = gupnp_context_new();

if (!$context) {
 die("Erreur lors de la création du contexte GUPnP\n");
}

?>

Erreurs / Exceptions

Émet une alerte de type E_WARNING si la création du contexte échoue.


Définit le délai d'attente des événements de sousscription

  • « gupnp_context_new
  • gupnp_context_timeout_add »
  • PHP Manual
  • Fonctions Gupnp
  • Définit le délai d'attente des événements de sousscription

gupnp_context_set_subscription_timeout

(PECL gupnp >= 0.1.0)

gupnp_context_set_subscription_timeout — Définit le délai d'attente des événements de sousscription

Description

void gupnp_context_set_subscription_timeout ( resource $context , int $timeout )

Définit le délai d'attente des événements de souscription (en secondes). Notez que chaque souscription côté client sera automatiquement renouvelée.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

timeout

Le délai d'attente des événements de souscription, en secondes. Utilisez la valeur 0 si vous ne voulez pas que les événements de souscription échouent en raison d'un quelconque délai d'attente.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • gupnp_context_new() - Crée un nouveau contexte
  • gupnp_context_get_subscription_timeout() - Récupère le délai d'expiration lors de la souscription aux événements


Définit une fonction à appeler à intervalle régulier

  • « gupnp_context_set_subscription_timeout
  • gupnp_context_unhost_path »
  • PHP Manual
  • Fonctions Gupnp
  • Définit une fonction à appeler à intervalle régulier

gupnp_context_timeout_add

(PECL gupnp >= 0.1.0)

gupnp_context_timeout_add — Définit une fonction à appeler à intervalle régulier

Description

bool gupnp_context_timeout_add ( resource $context , int $timeout , mixed $callback [, mixed $arg ] )

Définit une fonction à appeler à intervalle régulier.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

timeout

Un délai d'attente, en millisecondes.

callback

La fonction de rappel à appeler à chaque période de temps définie par le paramètre timeout. Typiquement, la fonction de rappel prend les arguments arg.

arg

Données utilisateur pour le callback.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et définit la fonction de rappel

<?php

$user_data = "user data";

function timeout_cb($arg)
{
    printf("Call timeout_cb, user data: '%s'", $arg);
    return true;
}

/* Crée un contexte UPnP */
$context = gupnp_context_new();

if (!$context) {
 die("Erreur lors de la création du contexte GUPnP\n");
}

/* Crée un périphérique racine */
$dev = gupnp_root_device_new($context, "/devicedesc.xml");

/* Définit la fonction de rappel */
gupnp_context_timeout_add($context, 5000, "timeout_cb", $user_data);

/* Exécution de la boucle principale */
gupnp_root_device_start($dev);

?>

Erreurs / Exceptions

Émet une alerte de type E_WARNING lorsque la fonction de rappel n'est pas valide.

Voir aussi

  • gupnp_context_new() - Crée un nouveau contexte


Interrompt l'hébergement

  • « gupnp_context_timeout_add
  • gupnp_control_point_browse_start »
  • PHP Manual
  • Fonctions Gupnp
  • Interrompt l'hébergement

gupnp_context_unhost_path

(PECL gupnp >= 0.1.0)

gupnp_context_unhost_path — Interrompt l'hébergement

Description

bool gupnp_context_unhost_path ( resource $context , string $server_path )

Interrompt l'hébergement d'un fichier ou d'un dossier sur le chemin server_path.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

server_path

Chemin du serveur Web où est localisé le fichier ou le dossier hébergé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_context_new() - Crée un nouveau contexte
  • gupnp_context_host_path() - Démarre l'hébergement


Commence la recherche

  • « gupnp_context_unhost_path
  • gupnp_control_point_browse_stop »
  • PHP Manual
  • Fonctions Gupnp
  • Commence la recherche

gupnp_control_point_browse_start

(PECL gupnp >= 0.1.0)

gupnp_control_point_browse_start — Commence la recherche

Description

bool gupnp_control_point_browse_start ( resource $cpoint )

Commence la recherche et appel la fonction de rappel définie par l'utilisateur.

Liste de paramètres

cpoint

Un identifiant de point de contrôle, retourné par la fonction gupnp_control_point_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et commence la recherche

<?php

function device_proxy_available_cb($proxy, $arg)
{
    $info = gupnp_device_info_get($proxy);

    $type = $info['device_type'];
    $location = $info['location'];

    printf("Device available:\n");
    printf("type:     %s\n", $type);
    printf("location: %s\n", $location);
}

/* Crée un nouveau contexte UPnP */
$context = gupnp_context_new();

if (!$context) {
 die("Erreur lors de la création du contexte GUPnP\n");
}

/* Nous sommes intéresser par tout ! */
$cp = gupnp_control_point_new($context, "ssdp:all");

gupnp_control_point_callback_set($cp,
    GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE, 'device_proxy_available_cb');

/* Commence la recherche */
gupnp_control_point_browse_start($cp);

?>

Voir aussi

  • gupnp_control_point_new() - Crée un nouveau point de contrôle
  • gupnp_control_point_browse_stop() - Interrompt la recherche


Interrompt la recherche

  • « gupnp_control_point_browse_start
  • gupnp_control_point_callback_set »
  • PHP Manual
  • Fonctions Gupnp
  • Interrompt la recherche

gupnp_control_point_browse_stop

(PECL gupnp >= 0.1.0)

gupnp_control_point_browse_stop — Interrompt la recherche

Description

bool gupnp_control_point_browse_stop ( resource $cpoint )

Interrompt la recherche et appel la fonction de rappel définie par l'utilisateur.

Liste de paramètres

cpoint

Un identifiant de point de contrôle, retourné par la fonction gupnp_control_point_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_control_point_new() - Crée un nouveau point de contrôle
  • gupnp_control_point_browse_start() - Commence la recherche


Définit la fonction de rappel pour le point de contrôle

  • « gupnp_control_point_browse_stop
  • gupnp_control_point_new »
  • PHP Manual
  • Fonctions Gupnp
  • Définit la fonction de rappel pour le point de contrôle

gupnp_control_point_callback_set

(PECL gupnp >= 0.1.0)

gupnp_control_point_callback_set — Définit la fonction de rappel pour le point de contrôle

Description

bool gupnp_control_point_callback_set ( resource $cpoint , int $signal , mixed $callback [, mixed $arg ] )

Définit la fonction de rappel pour le point de contrôle pour un signal donné.

Liste de paramètres

cpoint

Un identifiant de point de contrôle, retourné par la fonction gupnp_control_point_new().

signal

La valeur du signal. Le signal peut prendre une des valeurs suivantes :

GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE
Émis lorsqu'un nouveau périphérique devient disponible.
GUPNP_SIGNAL_DEVICE_PROXY_UNAVAILABLE
Émis lorsqu'un périphérique devient indisponible.
GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE
Émis lorsqu'un nouveau service devient disponible.
GUPNP_SIGNAL_SERVICE_PROXY_UNAVAILABLE
Émis lorsqu'un service devient indisponible.

callback

La fonction de rappel pour un signal spécifique. Typiquement, la fonction de rappel prend 2 arguments. Le paramètre proxy sera le premier, et arg, le second.

arg

Données utilisateur pour la fonction de rappel callback.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'un nouveau contexte UPnP et commence la recherche

<?php

function device_proxy_available_cb($proxy, $arg)
{
    $info = gupnp_device_info_get($proxy);

    $type = $info['device_type'];
    $location = $info['location'];

    printf("Device available:\n");
    printf("type:     %s\n", $type);
    printf("location: %s\n", $location);
}

/* Crée un contexte UPnP */
$context = gupnp_context_new();

if (!$context) {
 die("Erreur lors de la création du contexte GUPnP\n");
}

/* Nous sommes intéressé par tout ! */
$cp = gupnp_control_point_new($context, "ssdp:all");

gupnp_control_point_callback_set($cp,
    GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE, 'device_proxy_available_cb');

/* Démarre la recherche */
gupnp_control_point_browse_start($cp);

?>

Erreurs / Exceptions

Émets une alerte de type E_WARNING si la fonction de rappel n'est pas valide.

Voir aussi

  • gupnp_control_point_new() - Crée un nouveau point de contrôle
  • gupnp_control_point_browse_start() - Commence la recherche


Crée un nouveau point de contrôle

  • « gupnp_control_point_callback_set
  • gupnp_device_action_callback_set »
  • PHP Manual
  • Fonctions Gupnp
  • Crée un nouveau point de contrôle

gupnp_control_point_new

(PECL gupnp >= 0.1.0)

gupnp_control_point_new — Crée un nouveau point de contrôle

Description

resource gupnp_control_point_new ( resource $context , string $target )

Crée un nouveau point de contrôle avec la cible spécifiée.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

target

La cible de recherche. target doit être un service ou un nom de périphérique, comme urn:schemas-upnp-org:service:WANIPConnection:1 ou urn:schemas-upnp-org:device:MediaRenderer:1.

Valeurs de retour

Un identifiant de point de contrôle.


Définit la fonction de rappel pour un périphérique

  • « gupnp_control_point_new
  • gupnp_device_info_get_service »
  • PHP Manual
  • Fonctions Gupnp
  • Définit la fonction de rappel pour un périphérique

gupnp_device_action_callback_set

(PECL gupnp >= 0.1.0)

gupnp_device_action_callback_set — Définit la fonction de rappel pour un périphérique

Description

bool gupnp_device_action_callback_set ( resource $root_device , int $signal , string $action_name , mixed $callback [, mixed $arg ] )

Définit une fonction de rappel pour un signal et une action.

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par la fonction gupnp_root_device_new().

signal

La valeur du signal. Le signal peut prendre une des valeurs suivantes :

GUPNP_SIGNAL_ACTION_INVOKED
Émis lorsqu'une action est invoquée. Le gestionnaire doit exécuter l'action et doit appeler soit la fonction gupnp_service_action_return(), soit la fonction gupnp_service_action_return_error().
GUPNP_SIGNAL_NOTIFY_FAILED
Émis lorsqu'une notification au client échoue.

action_name

Le nom de l'action.

callback

La fonction de rappel pour un certain signal. Typiquement, la fonction de rappel prend 3 arguments. Le premier est le paramètre service, le second, l'identifiant du paramètre action (dans le cas d'un signal GUPNP_SIGNAL_ACTION_INVOKED) ou le message du paramètre error (dans le cas d'un signal GUPNP_SIGNAL_NOTIFY_FAILED), et le troisième, le paramètre arg.

arg

Les données utilisateur pour la fonction de rappel callback.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une alerte de type E_WARNING lorsque la fonction de rappel n'est pas valide, ou lorsque le signal n'est pas valide.

Voir aussi

  • gupnp_root_device_new() - Crée un nouveau périphérique racine


Récupère le service avec son type

  • « gupnp_device_action_callback_set
  • gupnp_device_info_get »
  • PHP Manual
  • Fonctions Gupnp
  • Récupère le service avec son type

gupnp_device_info_get_service

(PECL gupnp >= 0.1.0)

gupnp_device_info_get_service — Récupère le service avec son type

Description

resource gupnp_device_info_get_service ( resource $root_device , string $type )

Récupère le service avec son type, ou FALSE si le service n'a pu être trouvé.

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par la fonction gupnp_root_device_new().

type

Le type du service à récupérer.

Valeurs de retour

Un identifiant de service.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et récupère des informations sur le service du périphérique

<?php

/* Crée un contexte UPnP */
$context = gupnp_context_new();

if (!$context) {
 die("Erreur lors de la création du contexte GUPnP\n");
}

/* Création d'un périphérique racine */
$location = "/BinaryLight1.xml";
$dev = gupnp_root_device_new($context, $location);

/* Définit le périphérique racine comme disponble */
gupnp_root_device_set_available($dev, true);

/* Récupère le service de basculement depuis le périphérique racine */
$service_type = "urn:schemas-upnp-org:service:SwitchPower:1";
$service = gupnp_device_info_get_service($dev, $service_type);
if (!$service) {
    die("Impossible de récupérer le service SwitchPower1\n");
}

?>


Récupère les informations d'un périphérique racine

  • « gupnp_device_info_get_service
  • gupnp_root_device_get_available »
  • PHP Manual
  • Fonctions Gupnp
  • Récupère les informations d'un périphérique racine

gupnp_device_info_get

(PECL gupnp >= 0.1.0)

gupnp_device_info_get — Récupère les informations d'un périphérique racine

Description

array gupnp_device_info_get ( resource $root_device )

Récupère les informations d'un périphérique racine.

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par la fonction gupnp_root_device_new().

Valeurs de retour

Retourne un tableau contenant les informations sur un périphérique racine (comme la localisation, l'URL, l'UDN, etc.).


Vérifie si un périphérique racine est disponible

  • « gupnp_device_info_get
  • gupnp_root_device_get_relative_location »
  • PHP Manual
  • Fonctions Gupnp
  • Vérifie si un périphérique racine est disponible

gupnp_root_device_get_available

(PECL gupnp >= 0.1.0)

gupnp_root_device_get_available — Vérifie si un périphérique racine est disponible

Description

bool gupnp_root_device_get_available ( resource $root_device )

Vérifie si le périphérique racine root_device est disponible ou non (en plus de son existance).

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par la fonction gupnp_root_device_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_root_device_set_available() - Définit si le périphérique racine est disponible ou non


Récupère le chemin relatif d'un périphérique racine

  • « gupnp_root_device_get_available
  • gupnp_root_device_new »
  • PHP Manual
  • Fonctions Gupnp
  • Récupère le chemin relatif d'un périphérique racine

gupnp_root_device_get_relative_location

(PECL gupnp >= 0.1.0)

gupnp_root_device_get_relative_location — Récupère le chemin relatif d'un périphérique racine

Description

string gupnp_root_device_get_relative_location ( resource $root_device )

Récupère le chemin relatif d'un périphérique racine.

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par la fonction gupnp_root_device_new().

Valeurs de retour

Le chemin relatif du périphérique racine.


Crée un nouveau périphérique racine

  • « gupnp_root_device_get_relative_location
  • gupnp_root_device_set_available »
  • PHP Manual
  • Fonctions Gupnp
  • Crée un nouveau périphérique racine

gupnp_root_device_new

(PECL gupnp >= 0.1.0)

gupnp_root_device_new — Crée un nouveau périphérique racine

Description

resource gupnp_root_device_new ( resource $context , string $location , string $description_dir )

Crée un nouveau périphérique racine, télécharge et analyse automatiquement sa localisation.

Liste de paramètres

context

Un identifiant de contexte, retourné par la fonction gupnp_context_new().

location

Localisation du fichier de description de ce périphérique, relatif à la racine HTTP.

Valeurs de retour

Un identifiant de périphérique racine.

Exemples

Exemple #1 Crée un nouveau contexte UPnP et récupère les informations de service du périphérique

<?php

/* Crée un contexte UPnP */
$context = gupnp_context_new();

if (!$context) {
 die("Erreur lors de la création du contexte GUPnP\n");
}

/* Crée le périphérique racine */
$location = "/BinaryLight1.xml";
$dev = gupnp_root_device_new($context, $location);

?>

Voir aussi

  • gupnp_root_device_set_available() - Définit si le périphérique racine est disponible ou non
  • gupnp_root_device_start() - Démarre la boucle principale
  • gupnp_root_device_stop() - Interrompt la boucle principale


Définit si le périphérique racine est disponible ou non

  • « gupnp_root_device_new
  • gupnp_root_device_start »
  • PHP Manual
  • Fonctions Gupnp
  • Définit si le périphérique racine est disponible ou non

gupnp_root_device_set_available

(PECL gupnp >= 0.1.0)

gupnp_root_device_set_available — Définit si le périphérique racine est disponible ou non

Description

bool gupnp_root_device_set_available ( resource $root_device , bool $available )

Contrôle si le périphérique racine est disponible ou non (annonce sa présence).

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par gupnp_root_device_new().

available

Définissez à TRUE si root_device doit être disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_root_device_get_available() - Vérifie si un périphérique racine est disponible


Démarre la boucle principale

  • « gupnp_root_device_set_available
  • gupnp_root_device_stop »
  • PHP Manual
  • Fonctions Gupnp
  • Démarre la boucle principale

gupnp_root_device_start

(PECL gupnp >= 0.1.0)

gupnp_root_device_start — Démarre la boucle principale

Description

bool gupnp_root_device_start ( resource $root_device )

Démarre la boucle principale du serveur racine.

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par gupnp_root_device_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_root_device_stop() - Interrompt la boucle principale


Interrompt la boucle principale

  • « gupnp_root_device_start
  • gupnp_service_action_get »
  • PHP Manual
  • Fonctions Gupnp
  • Interrompt la boucle principale

gupnp_root_device_stop

(PECL gupnp >= 0.1.0)

gupnp_root_device_stop — Interrompt la boucle principale

Description

bool gupnp_root_device_stop ( resource $root_device )

Interrompt la boucle principale du serveur racine.

Liste de paramètres

root_device

Un identifiant de périphérique racine, retourné par la fonction gupnp_root_device_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_root_device_start() - Démarre la boucle principale


Récupère les arguments de l'action spécifiée

  • « gupnp_root_device_stop
  • gupnp_service_action_return_error »
  • PHP Manual
  • Fonctions Gupnp
  • Récupère les arguments de l'action spécifiée

gupnp_service_action_get

(PECL gupnp >= 0.1.0)

gupnp_service_action_get — Récupère les arguments de l'action spécifiée

Description

mixed gupnp_service_action_get ( resource $action , string $name , int $type )

Récupère les arguments de l'action spécifiée.

Liste de paramètres

action

Un identifiant d'action du service.

name

Le nom de la variable à récupérer.

type

Le type de la variable à récupérer. Peut être une des valeurs suivantes :

GUPNP_TYPE_BOOLEAN
Le type de la variable est un booléen.
GUPNP_TYPE_INT
Le type de la variable est un entier.
GUPNP_TYPE_LONG
Le type de la variable est un long.
GUPNP_TYPE_DOUBLE
Le type de la variable est un double.
GUPNP_TYPE_FLOAT
Le type de la variable est un nombre à virgule flottante.
GUPNP_TYPE_STRING
Le type de la variable est une chaîne de caractères.

Valeurs de retour

La valeur de la variable.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si le type de la variable n'est pas correctement défini.

Voir aussi

  • gupnp_service_action_set() - Définit les valeurs à retourner par une action spécifique


Retourne le code erreur

  • « gupnp_service_action_get
  • gupnp_service_action_return »
  • PHP Manual
  • Fonctions Gupnp
  • Retourne le code erreur

gupnp_service_action_return_error

(PECL gupnp >= 0.1.0)

gupnp_service_action_return_error — Retourne le code erreur

Description

bool gupnp_service_action_return_error ( resource $action , int $error_code [, string $error_description ] )

Retourne le code erreur.

Liste de paramètres

action

Un identifiant d'action du service.

error_code

Le code erreur. Le signal peut être une des valeurs suivantes, ou défini par l'utilisateur :

GUPNP_CONTROL_ERROR_INVALID_ACTION
Le nom de l'action est invalide.
GUPNP_CONTROL_ERROR_INVALID_ARGS
Les arguments de l'action sont invalides.
GUPNP_CONTROL_ERROR_OUT_OF_SYNC
N'est plus synchronisé (obsolète).
GUPNP_CONTROL_ERROR_ACTION_FAILED
L'action a échoué.

error_description

La description de l'erreur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_service_action_return() - Retourne le succès de l'action


Retourne le succès de l'action

  • « gupnp_service_action_return_error
  • gupnp_service_action_set »
  • PHP Manual
  • Fonctions Gupnp
  • Retourne le succès de l'action

gupnp_service_action_return

(PECL gupnp >= 0.1.0)

gupnp_service_action_return — Retourne le succès de l'action

Description

bool gupnp_service_action_return ( resource $action )

Retourne le succès de l'action.

Liste de paramètres

action

Un identifiant d'action du service.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_service_action_return_error() - Retourne le code erreur


Définit les valeurs à retourner par une action spécifique

  • « gupnp_service_action_return
  • gupnp_service_freeze_notify »
  • PHP Manual
  • Fonctions Gupnp
  • Définit les valeurs à retourner par une action spécifique

gupnp_service_action_set

(PECL gupnp >= 0.1.0)

gupnp_service_action_set — Définit les valeurs à retourner par une action spécifique

Description

bool gupnp_service_action_set ( resource $action , string $name , int $type , mixed $value )

Définit les valeurs à retourner par une action spécifique.

Liste de paramètres

action

Un identifiant d'action du service.

name

Le nom de la variable à récupérer.

type

Le type de la variable à récupérer. Peut être une des valeurs suivantes :

GUPNP_TYPE_BOOLEAN
Le type de la variable est un booléen.
GUPNP_TYPE_INT
Le type de la variable est un entier.
GUPNP_TYPE_LONG
Le type de la variable est un long.
GUPNP_TYPE_DOUBLE
Le type de la variable est un double.
GUPNP_TYPE_FLOAT
Le type de la variable est un nombre à virgule flottante.
GUPNP_TYPE_STRING
Le type de la variable est une chaîne de caractères.

value

La valeur de la variable à récupérer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si le type de la variable n'est pas correctement défini ou si la valeur n'est pas du type défini.

Voir aussi

  • gupnp_service_action_get() - Récupère les arguments de l'action spécifiée


Suspend les notifications

  • « gupnp_service_action_set
  • gupnp_service_info_get_introspection »
  • PHP Manual
  • Fonctions Gupnp
  • Suspend les notifications

gupnp_service_freeze_notify

(PECL gupnp >= 0.1.0)

gupnp_service_freeze_notify — Suspend les notifications

Description

bool gupnp_service_freeze_notify ( resource $service )

Fait que les nouvelles notifications sont placées en file d'attente tant que la fonction gupnp_service_thaw_notify() n'est pas appelée.

Liste de paramètres

service

Un identifiant de service.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_service_notify() - Notifie les clients connectés
  • gupnp_service_thaw_notify() - Envoie toutes les notifications en attente et arrête la mise en file d'attente de nouvelles


Récupère l'introspection des ressources du service

  • « gupnp_service_freeze_notify
  • gupnp_service_info_get »
  • PHP Manual
  • Fonctions Gupnp
  • Récupère l'introspection des ressources du service

gupnp_service_info_get_introspection

(PECL gupnp >= 0.1.0)

gupnp_service_info_get_introspection — Récupère l'introspection des ressources du service

Description

mixed gupnp_service_info_get_introspection ( resource $proxy [, mixed $callback [, mixed $arg ]] )

Récupère l'introspection des ressources du service ou enregistre une fonction de rappel si le paramètre correspondant est fourni.

Liste de paramètres

proxy

Un identifiant de proxy du service.

callback

La fonction de rappel à appeler lors l'objet d'introspection est prêt. Typiquement, la fonction de rappel prend 3 paramètres. Le premier est le paramètre introspection, le second, le paramètre error, et le troisième, le paramètre arg.

arg

Les données utilisateur pour la fonction de rappel callback.

Valeurs de retour

Retourne TRUE si la fonction de rappel a été définie. Retourne l'identifiant de l'introspection si la fonction de rappel a été omise.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si la fonction de rappel n'est pas valide.


Récupère les informations complètes d'un service

  • « gupnp_service_info_get_introspection
  • gupnp_service_introspection_get_state_variable »
  • PHP Manual
  • Fonctions Gupnp
  • Récupère les informations complètes d'un service

gupnp_service_info_get

(PECL gupnp >= 0.1.0)

gupnp_service_info_get — Récupère les informations complètes d'un service

Description

array gupnp_service_info_get ( resource $proxy )

Récupère les informations complètes d'un service.

Liste de paramètres

proxy

Un identifiant de proxy du service.

Valeurs de retour

Retourne un tableau contenant les informations d'un service (comme la localisation, l'URL, l'UDN, etc.).


Retourne le statut de la variable d'une donnée

  • « gupnp_service_info_get
  • gupnp_service_notify »
  • PHP Manual
  • Fonctions Gupnp
  • Retourne le statut de la variable d'une donnée

gupnp_service_introspection_get_state_variable

(PECL gupnp >= 0.1.0)

gupnp_service_introspection_get_state_variable — Retourne le statut de la variable d'une donnée

Description

array gupnp_service_introspection_get_state_variable ( resource $introspection , string $variable_name )

Retourne le statut de la variable d'une donnée, par son nom fourni par le paramètre variable_name dans ce service.

Liste de paramètres

introspection

Un identifiant d'introspection.

variable_name

Le nom de la variable à récupérer.

Valeurs de retour

Retourne le statut de la variable d'une donnée, ou FALSE.


Notifie les clients connectés

  • « gupnp_service_introspection_get_state_variable
  • gupnp_service_proxy_action_get »
  • PHP Manual
  • Fonctions Gupnp
  • Notifie les clients connectés

gupnp_service_notify

(PECL gupnp >= 0.1.0)

gupnp_service_notify — Notifie les clients connectés

Description

bool gupnp_service_notify ( resource $service , string $name , int $type , mixed $value )

Notifie les clients connectés que la propriété a changé en la valeur spécifiée.

Liste de paramètres

service

Un identifiant de service.

name

Le nom de la variable.

type

Le type de la variable. Peut être une des valeurs suivantes :

GUPNP_TYPE_BOOLEAN
Le type de la variable est un booléen.
GUPNP_TYPE_INT
Le type de la variable est un entier.
GUPNP_TYPE_LONG
Le type de la variable est un long.
GUPNP_TYPE_DOUBLE
Le type de la variable est un double.
GUPNP_TYPE_FLOAT
Le type de la variable est un nombre à virgule flottante.
GUPNP_TYPE_STRING
Le type de la variable est une chaîne de caractères.

value

La valeur de la variable.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si le type de la variable n'est pas correctement définie, ou si la valeur ne correspond au type défini.

Voir aussi

  • gupnp_service_freeze_notify() - Suspend les notifications
  • gupnp_service_thaw_notify() - Envoie toutes les notifications en attente et arrête la mise en file d'attente de nouvelles


Envoi l'action au service et récupère la valeur

  • « gupnp_service_notify
  • gupnp_service_proxy_action_set »
  • PHP Manual
  • Fonctions Gupnp
  • Envoi l'action au service et récupère la valeur

gupnp_service_proxy_action_get

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_action_get — Envoi l'action au service et récupère la valeur

Description

mixed gupnp_service_proxy_action_get ( resource $proxy , string $action , string $name , int $type )

Envoi l'action avec les paramètres au service via le proxy de façon synchrone, et récupère la valeur.

Liste de paramètres

proxy

Un identifiant de proxy du service.

action

Une action.

name

Le nom de l'action.

type

Le type de la variable à récupérer. Le type peut être une des valeurs suivantes :

GUPNP_TYPE_BOOLEAN
Le type de la variable est un booléen.
GUPNP_TYPE_INT
Le type de la variable est un entier.
GUPNP_TYPE_LONG
Le type de la variable est un long.
GUPNP_TYPE_DOUBLE
Le type de la variable est un double.
GUPNP_TYPE_FLOAT
Le type de la variable est un nombre à virgule flottante.
GUPNP_TYPE_STRING
Le type de la variable est une chaîne de caractères.

Valeurs de retour

Retourne la valeur de l'action.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si le type défini de l'action est incorrect, ou si l'envoi de l'action est impossible.

Voir aussi

  • gupnp_service_proxy_action_set() - Envoie une action au service et définit la valeur
  • gupnp_service_proxy_send_action() - Envoie une action avec plusieurs paramètres de façon synchrone


Envoie une action au service et définit la valeur

  • « gupnp_service_proxy_action_get
  • gupnp_service_proxy_add_notify »
  • PHP Manual
  • Fonctions Gupnp
  • Envoie une action au service et définit la valeur

gupnp_service_proxy_action_set

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_action_set — Envoie une action au service et définit la valeur

Description

bool gupnp_service_proxy_action_set ( resource $proxy , string $action , string $name , mixed $value , int $type )

Envoie une action avec des paramètres au service exposé par un proxy de façon synchrone, et définit la valeur.

Liste de paramètres

proxy

Un identifiant de service de proxy.

action

Une action.

name

Le nom de l'action.

value

La valeur de l'action.

type

Le type de l'action. Le type peut être une des valeurs suivantes :

GUPNP_TYPE_BOOLEAN
Le type de la variable est un booléen.
GUPNP_TYPE_INT
Le type de la variable est un entier.
GUPNP_TYPE_LONG
Le type de la variable est un long.
GUPNP_TYPE_DOUBLE
Le type de la variable est un double.
GUPNP_TYPE_FLOAT
Le type de la variable est un nombre à virgule flottante.
GUPNP_TYPE_STRING
Le type de la variable est une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si le type n'est pas correctement défini, ou si l'on ne peut envoyer l'action.

Voir aussi

  • gupnp_service_proxy_action_get() - Envoi l'action au service et récupère la valeur
  • gupnp_service_proxy_send_action() - Envoie une action avec plusieurs paramètres de façon synchrone


Définit une fonction de rappel pour la notification de modification d'une variable

  • « gupnp_service_proxy_action_set
  • gupnp_service_proxy_callback_set »
  • PHP Manual
  • Fonctions Gupnp
  • Définit une fonction de rappel pour la notification de modification d'une variable

gupnp_service_proxy_add_notify

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_add_notify — Définit une fonction de rappel pour la notification de modification d'une variable

Description

bool gupnp_service_proxy_add_notify ( resource $proxy , string $value , int $type , mixed $callback [, mixed $arg ] )

Définit une fonction de rappel à appeler à chaque réception d'une notification de modification d'une variable.

Liste de paramètres

proxy

Un identifiant de service de proxy.

value

La variable pour laquelle nous devons ajouter une notification.

type

Le type de l'action. Le type peut être une des valeurs suivantes :

GUPNP_TYPE_BOOLEAN
Le type de la variable est un booléen.
GUPNP_TYPE_INT
Le type de la variable est un entier.
GUPNP_TYPE_LONG
Le type de la variable est un long.
GUPNP_TYPE_DOUBLE
Le type de la variable est un double.
GUPNP_TYPE_FLOAT
Le type de la variable est un nombre à virgule flottante.
GUPNP_TYPE_STRING
Le type de la variable est une chaîne de caractères.

callback

La fonction de rappel à appeler lors de modification de variables. Typiquement, la fonction de rappel prend 3 paramètres ; le premier, le paramètre variable, le second, le paramètre value, et le troisième, arg.

arg

Données utilisateur pour la fonction de rappel callback.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_service_proxy_remove_notify() - Annule une notification de modification de variable


Définit la fonction de rappel pour un service de proxy pour un signal donné

  • « gupnp_service_proxy_add_notify
  • gupnp_service_proxy_get_subscribed »
  • PHP Manual
  • Fonctions Gupnp
  • Définit la fonction de rappel pour un service de proxy pour un signal donné

gupnp_service_proxy_callback_set

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_callback_set — Définit la fonction de rappel pour un service de proxy pour un signal donné

Description

bool gupnp_service_proxy_callback_set ( resource $proxy , int $signal , mixed $callback [, mixed $arg ] )

Définit la fonction de rappel pour un service de proxy pour un signal donné.

Liste de paramètres

proxy

Un identifiant de service de proxy.

signal

La valeur du signal.

GUPNP_SIGNAL_SUBSCRIPTION_LOST
Émis lorsque la souscription à ce service a été perdue en raison d'une erreur sur la condition.

callback

La fonction de rappel pour un signal donné. Typiquement, la fonction de rappel prend 2 arguments ; le premier, le paramètre error, et le second, le paramètre arg.

arg

Données utilisateur pour la fonction de rappel callback.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une alerte de type E_WARNING lorsque la fonction de rappel n'est pas valide ou lorsque le signal n'est pas valide.


Vérifie si la souscription à un service est valide

  • « gupnp_service_proxy_callback_set
  • gupnp_service_proxy_remove_notify »
  • PHP Manual
  • Fonctions Gupnp
  • Vérifie si la souscription à un service est valide

gupnp_service_proxy_get_subscribed

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_get_subscribed — Vérifie si la souscription à un service est valide

Description

bool gupnp_service_proxy_get_subscribed ( resource $proxy )

Vérifie si la souscription à un service est valide.

Liste de paramètres

proxy

Un identifiant à un service de proxy.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_service_proxy_set_subscribed() - S'abonne (se désabonne) à un service


Annule une notification de modification de variable

  • « gupnp_service_proxy_get_subscribed
  • gupnp_service_proxy_send_action »
  • PHP Manual
  • Fonctions Gupnp
  • Annule une notification de modification de variable

gupnp_service_proxy_remove_notify

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_remove_notify — Annule une notification de modification de variable

Description

bool gupnp_service_proxy_remove_notify ( resource $proxy , string $value )

Annule une notification de modification de variable.

Liste de paramètres

proxy

un identifiant de service de proxy.

value

La variable dont nous souhaitons ajouter une notification.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_service_proxy_add_notify() - Définit une fonction de rappel pour la notification de modification d'une variable


Envoie une action avec plusieurs paramètres de façon synchrone

  • « gupnp_service_proxy_remove_notify
  • gupnp_service_proxy_set_subscribed »
  • PHP Manual
  • Fonctions Gupnp
  • Envoie une action avec plusieurs paramètres de façon synchrone

gupnp_service_proxy_send_action

(PECL gupnp >= 0.2.0)

gupnp_service_proxy_send_action — Envoie une action avec plusieurs paramètres de façon synchrone

Description

array gupnp_service_proxy_send_action ( resource $proxy , string $action , array $in_params , array $out_params )

Envoie une action avec les paramètres in_params au service exposé par le proxy de façon synchrone et retourne out_params avec des valeurs, ou FALSE si une erreur survient.

Liste de paramètres

proxy

Un identifiant de service de proxy.

action

Une action.

in_params

Un tableau de paramètres. Chaque entrée de in_params est supposée contenir un tableau de nom, type et valeur de chaque paramètre.

out_params

Un tableau de paramètres résultants. Chaque entrée de out_params est supposée contenir un tableau de nom, type de chaque paramètre.

Valeurs de retour

Retourne le tableau de valeurs out_params ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une alerte de type E_WARNING si le paramètre in_params ou le paramètre out_params n'est pas correctement défini, ou si l'action n'a pu être envoyée.

Voir aussi

  • gupnp_service_proxy_action_get() - Envoi l'action au service et récupère la valeur
  • gupnp_service_proxy_action_set() - Envoie une action au service et définit la valeur


S'abonne (se désabonne) à un service

  • « gupnp_service_proxy_send_action
  • gupnp_service_thaw_notify »
  • PHP Manual
  • Fonctions Gupnp
  • S'abonne (se désabonne) à un service

gupnp_service_proxy_set_subscribed

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_set_subscribed — S'abonne (se désabonne) à un service

Description

bool gupnp_service_proxy_set_subscribed ( resource $proxy , bool $subscribed )

S'abonne (se désabonne) à un service.

Liste de paramètres

proxy

Un identifiant de service de proxy.

subscribed

Définit à TRUE pour s'abonne au service.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_service_proxy_get_subscribed() - Vérifie si la souscription à un service est valide


Envoie toutes les notifications en attente et arrête la mise en file d'attente de nouvelles

  • « gupnp_service_proxy_set_subscribed
  • Hyperwave API »
  • PHP Manual
  • Fonctions Gupnp
  • Envoie toutes les notifications en attente et arrête la mise en file d'attente de nouvelles

gupnp_service_thaw_notify

(PECL gupnp >= 0.1.0)

gupnp_service_thaw_notify — Envoie toutes les notifications en attente et arrête la mise en file d'attente de nouvelles

Description

bool gupnp_service_thaw_notify ( resource $service )

Envoie toutes les notifications en attente et arrête la mise en file d'attente de nouvelles.

Liste de paramètres

service

Un identifiant de service.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • gupnp_service_notify() - Notifie les clients connectés
  • gupnp_service_freeze_notify() - Suspend les notifications


Hyperwave API

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Integration with Apache
  • Hyperwave API Fonctions
    • hw_api::checkin — Archive un objet
    • hw_api::checkout — Extrait un objet
    • hw_api::children — Retourne le fils d'un objet
    • hw_api::content — Retourne le contenu d'un objet
    • hw_api::copy — Copie physique
    • hw_api::dbstat — Retourne des statistiques sur le serveur de bases
    • hw_api::dcstat — Retourne des statistiques sur le serveur de cache de document
    • hw_api::dstanchors — Liste toutes les ancres de destination
    • hw_api::dstofsrcanchor — Retourne la destination d'une ancre source
    • hw_api::find — Recherche des objets
    • hw_api::ftstat — Retourne des statistiques sur le serveur de textes
    • hw_api::hwstat — Retourne les statistiques sur le serveur Hyperwave
    • hw_api::identify — S'identifie auprès du serveur Hyperwave
    • hw_api::info — Retourne des informations sur la configuration du serveur
    • hw_api::insert — Insère un nouvel objet
    • hw_api::insertanchor — Insère un nouvel objet de type ancre
    • hw_api::insertcollection — Insère un nouvel objet de type collection
    • hw_api::insertdocument — Insère un nouvel objet de type document
    • hw_api::link — Crée un lien vers un objet
    • hw_api::lock — Verrouille un objet
    • hw_api::move — Déplace un objet d'une collection à l'autre
    • hw_api::object — Lit les informations d'attribut
    • hw_api::objectbyanchor — Retourne l'objet propriétaire d'une ancre
    • hw_api::parents — Retourne le parent d'un objet
    • hw_api::remove — Efface un objet
    • hw_api::replace — Remplace un objet
    • hw_api::setcommittedversion — Valide une version autre que la dernière
    • hw_api::srcanchors — Retourne la liste de toutes les ancres
    • hw_api::srcsofdst — Retourne les sources d'un objet de destination
    • hw_api::unlock — Déverrouille un objet HyperWave verrouillé
    • hw_api::user — Retourne le propriétaire d'un objet
    • hw_api::userlist — Retourne la liste des utilisateurs connectés
    • hw_api_attribute::key — Retourne la clé d'un attribut
    • hw_api_attribute::langdepvalue — Retourne la valeur d'un attribut dans une langue
    • hw_api_attribute::value — Retourne la valeur d'un attribut
    • hw_api_attribute::values — Retourne toutes les valeurs de l'attribut
    • hw_api_content::mimetype — Retourne le type MIME
    • hw_api_content::read — Lit le contenu
    • hw_api_error::count — Retourne le nombre d'erreurs
    • hw_api_error::reason — Retourne la première raison d'erreur
    • hw_api_object::assign — Clone un objet
    • hw_api_object::attreditable — Vérifie si un attribut est éditable
    • hw_api_object::count — Retourne le nombre d'attributs
    • hw_api_object::insert — Insère un nouvel attribut HyperWave
    • hw_api_object::remove — Supprime un attribut HyperWave
    • hw_api_object::title — Retourne le titre de l'attribut
    • hw_api_object::value — Retourne la valeur de l'attribut
    • hw_api_reason::description — Retourne la description d'une raison
    • hw_api_reason::type — Retourne le type de raison
    • hwapi_attribute_new — Crée une nouvelle instance de la classe hw_api_attribute
    • hwapi_content_new — Crée une nouvelle instance de la classe hw_api_content
    • hwapi_hgcsp — Retourne un objet de classe hw_api
    • hwapi_object_new — Crée une nouvelle instance de la classe hwapi_object_new


Introduction

Hyperwave a été développé à l'» IICM à Graz. Le projet a commencé avec le nom de Hyper-G, puis il est devenu Hyperwave, lors de sa commercialisation en 1996.

Hyperwave n'est pas un logiciel libre. Sa version courante, la 5.5, est disponible à » http://www.hyperwave.com/. Une version limitée dans le temps est disponible gratuitement (30 jours).

Hyperwave est un système d'information comparable à une base de données (HIS, Hyperwave Information Server). Il se concentre sur le stockage et la gestion de documents. Un document peut être n'importe quelle pièce de données qui peut être stockée dans un fichier. Chaque document est accompagné de son propre enregistrement. L'enregistrement contient les métadonnées du document. Les métadonnées sont des listes d'attributs qui peuvent être manipulés par l'utilisateur. Certains attributs sont gérés par le serveur Hyperwave, les autres peuvent être modifiés par l'utilisateur.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.2.0.


Pré-requis

Depuis 2001, il y a un SDK Hyperwave disponible. Il supporte Java, JavaScript et C++. Cette extension PHP est basée sur l'interface C++. Pour activer le support hwapi de PHP, vous devez installer le SDK d'abord.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/hwapi.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.2.0

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration HyperWave
Nom | Défaut | Modifiable | Historique
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.


  • « Types de ressources
  • Integration with Apache »
  • PHP Manual
  • Hyperwave API
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Integration with Apache

The Hyperwave extension is best used when PHP is compiled as an Apache module. In such a case the underlying Hyperwave server can be hidden from users almost completely if Apache uses its rewriting engine. The following instructions will explain this.

Since PHP with Hyperwave support built into Apache is intended to replace the native Hyperwave solution based on Wavemaster, we will assume that the Apache server will only serve as a Hyperwave web interface for these examples. This is not necessary but it simplifies the configuration. The concept is quite simple. First of all you need a PHP script which evaluates the $_ENV['PATH_INFO'] variable and treats its value as the name of a Hyperwave object. Let's call this script 'Hyperwave'. The URL http://your.hostname/Hyperwave/name_of_object would than return the Hyperwave object with the name 'name_of_object'. Depending on the type of the object the script has to react accordingly. If it is a collection, it will probably return a list of children. If it is a document it will return the mime type and the content. A slight improvement can be achieved if the Apache rewriting engine is used. From the users point of view it would be more straight forward if the URL http://your.hostname/name_of_object would return the object. The rewriting rule is quite easy:

RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]
Now every URL relates to an object in the Hyperwave server. This causes a simple to solve problem. There is no way to execute a different script, e.g. for searching, than the 'Hyperwave' script. This can be fixed with another rewriting rule like the following:
RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]
This will reserve the directory /usr/local/apache/htdocs/hw for additional scripts and other files. Just make sure this rule is evaluated before the one above. There is just a little drawback: all Hyperwave objects whose name starts with 'hw/' will be shadowed. So, make sure you don't use such names. If you need more directories, e.g. for images just add more rules or place them all in one directory. Before you put those instructions, don't forget to turn on the rewriting engine with
RewriteEngine on
You will need scripts:
  • to return the object itself
  • to allow searching
  • to identify yourself
  • to set your profile
  • one for each additional function like to show the object attributes, to show information about users, to show the status of the server, etc.

As an alternative to the Rewrite Engine, you can also consider using the Apache ErrorDocument directive, but be aware, that ErrorDocument redirected pages cannot receive POST data.


Hyperwave API Fonctions

intégration dans Apache

L'intégration avec Apache ainsi que d'autres serveurs est décrit dans un chapitre séparé.

Classes

L'API fournie avec l'extension HW_API est complètement orientée objet. Elle est très similaire à l'interface C++ du SDK Hyperwave. Elle est constituée des classes suivantes :

  • HW_API
  • HW_API_Object
  • HW_API_Attribute
  • HW_API_Error
  • HW_API_Content
  • HW_API_Reason
Certains classes basiques comme HW_API_String, HW_API_String_Array, etc., qui existent dans le SDK Hyperwave SDK n'ont pas été implémentées, car PHP a de puissants ersatz pour elles.

Chaque classe dispose de certaines méthodes, dont les noms sont identiques à leur alter ego du SDK Hyperwave SDK. Le passage des arguments à ces fonctions diffère de toutes les autres extensions PHP, mais est proche de l'API C++ du SDK Hyperwave. Au lieu de passer plusieurs paramètres, ils sont tous placés dans un tableau associatif, et transmis sous la forme d'un seul paramètre. Les paramètres les plus communs sont listés ci-dessous. Si d'autres paramètres sont nécessaires, ils seront documentés à chaque cas.

  • objectIdentifier Le nom ou l'identifiant de l'objet, e.g. "rootcollection", "0x873A8768 0x00000002".
  • parentIdentifier Le nom ou l'identifiant de l'objet qui est considéré comme parent.
  • object Une instance de la classe HW_API_Object.
  • parameters Une instance de la classe HW_API_Object.
  • version La version de l'objet.
  • mode Un entier qui détermine la méthode d'exécution de l'opération.
  • attributeSelector Un tableau de chaînes de caractères, chacun contenant le nom d'un attribut. C'est le cas si vous lisez des enregistrements d'objets, et que vous voulez inclure certains attributs.
  • objectQuery Une requête pour sélectionner certains objets dans une liste. Elle est utilisée pour réduire le nombre d'objets qui a été livré par une fonction comme hw_api::children() ou hw_api::find().

Note:

Les méthodes retournant un booléen peuvent retourner TRUE, FALSE ou un objet HW_API_Error.

Sommaire

  • hw_api::checkin — Archive un objet
  • hw_api::checkout — Extrait un objet
  • hw_api::children — Retourne le fils d'un objet
  • hw_api::content — Retourne le contenu d'un objet
  • hw_api::copy — Copie physique
  • hw_api::dbstat — Retourne des statistiques sur le serveur de bases
  • hw_api::dcstat — Retourne des statistiques sur le serveur de cache de document
  • hw_api::dstanchors — Liste toutes les ancres de destination
  • hw_api::dstofsrcanchor — Retourne la destination d'une ancre source
  • hw_api::find — Recherche des objets
  • hw_api::ftstat — Retourne des statistiques sur le serveur de textes
  • hw_api::hwstat — Retourne les statistiques sur le serveur Hyperwave
  • hw_api::identify — S'identifie auprès du serveur Hyperwave
  • hw_api::info — Retourne des informations sur la configuration du serveur
  • hw_api::insert — Insère un nouvel objet
  • hw_api::insertanchor — Insère un nouvel objet de type ancre
  • hw_api::insertcollection — Insère un nouvel objet de type collection
  • hw_api::insertdocument — Insère un nouvel objet de type document
  • hw_api::link — Crée un lien vers un objet
  • hw_api::lock — Verrouille un objet
  • hw_api::move — Déplace un objet d'une collection à l'autre
  • hw_api::object — Lit les informations d'attribut
  • hw_api::objectbyanchor — Retourne l'objet propriétaire d'une ancre
  • hw_api::parents — Retourne le parent d'un objet
  • hw_api::remove — Efface un objet
  • hw_api::replace — Remplace un objet
  • hw_api::setcommittedversion — Valide une version autre que la dernière
  • hw_api::srcanchors — Retourne la liste de toutes les ancres
  • hw_api::srcsofdst — Retourne les sources d'un objet de destination
  • hw_api::unlock — Déverrouille un objet HyperWave verrouillé
  • hw_api::user — Retourne le propriétaire d'un objet
  • hw_api::userlist — Retourne la liste des utilisateurs connectés
  • hw_api_attribute::key — Retourne la clé d'un attribut
  • hw_api_attribute::langdepvalue — Retourne la valeur d'un attribut dans une langue
  • hw_api_attribute::value — Retourne la valeur d'un attribut
  • hw_api_attribute::values — Retourne toutes les valeurs de l'attribut
  • hw_api_content::mimetype — Retourne le type MIME
  • hw_api_content::read — Lit le contenu
  • hw_api_error::count — Retourne le nombre d'erreurs
  • hw_api_error::reason — Retourne la première raison d'erreur
  • hw_api_object::assign — Clone un objet
  • hw_api_object::attreditable — Vérifie si un attribut est éditable
  • hw_api_object::count — Retourne le nombre d'attributs
  • hw_api_object::insert — Insère un nouvel attribut HyperWave
  • hw_api_object::remove — Supprime un attribut HyperWave
  • hw_api_object::title — Retourne le titre de l'attribut
  • hw_api_object::value — Retourne la valeur de l'attribut
  • hw_api_reason::description — Retourne la description d'une raison
  • hw_api_reason::type — Retourne le type de raison
  • hwapi_attribute_new — Crée une nouvelle instance de la classe hw_api_attribute
  • hwapi_content_new — Crée une nouvelle instance de la classe hw_api_content
  • hwapi_hgcsp — Retourne un objet de classe hw_api
  • hwapi_object_new — Crée une nouvelle instance de la classe hwapi_object_new


Archive un objet

  • « Hyperwave API Fonctions
  • hw_api::checkout »
  • PHP Manual
  • Hyperwave API Fonctions
  • Archive un objet

hw_api::checkin

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::checkin — Archive un objet

Description

bool hw_api::checkin ( array $parameter )

Archive un objet ou une hiérarchie d'objets. Le paramètre obligatoire parameter contient un "objectIdentifier" et les éléments optionnels "version", "comment", "mode" et "objectQuery". "version" spécifie la version de l'objet. Elle est constituée de versions majeure et mineure, séparées par des virgules. Si une version n'existe pas, la version mineure est incrémentée. "mode" peut être l'une des constantes suivantes :

HW_API_CHECKIN_NORMAL
Archive et valide l'objet. L'objet doit être un document.
HW_API_CHECKIN_RECURSIVE
Si l'objet à archiver est une collection, tous les fils seront vérifiés récursivement, s'ils sont des documents. Tenter d'archiver une collection générera une erreur.
HW_API_CHECKIN_FORCE_VERSION_CONTROL
Archive un objet même s'il ne passe pas sous le contrôle de versions.
HW_API_CHECKIN_REVERT_IF_NOT_CHANGED
Vérifie s'il existe une version différente de la dernière version. À moins que cela ne soit le cas, l'objet sera alors archivé.
HW_API_CHECKIN_KEEP_TIME_MODIFIED
Conserve la date de modification de l'objet le plus récent.
HW_API_CHECKIN_NO_AUTO_COMMIT
L'objet n'est pas automatiquement validé lors de l'archivage.

Liste de paramètres

parameter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • hw_api::checkout


Extrait un objet

  • « hw_api::checkin
  • hw_api::children »
  • PHP Manual
  • Hyperwave API Fonctions
  • Extrait un objet

hw_api::checkout

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::checkout — Extrait un objet

Description

bool hw_api::checkout ( array $parameter )

Extrait un objet ou toute une hiérarchie d'objets.

Liste de paramètres

parameter

Le paramètre parameter contient l'élément obligatoire "objectIdentifier" et les éléments optionnels "version", "mode" et "objectQuery". "mode" peut prendre l'une des valeurs suivantes :

HW_API_CHECKIN_NORMAL
Extrait un objet. L'objet doit être un document.
HW_API_CHECKIN_RECURSIVE
Si l'objet à extraire est une collection, tous les fils seront extraits récursivement si ce sont des documents. Extraire une collection générera une erreur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • hw_api::checkin


Retourne le fils d'un objet

  • « hw_api::checkout
  • hw_api::content »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne le fils d'un objet

hw_api::children

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::children — Retourne le fils d'un objet

Description

array hw_api::children ( array $parameter )

Retrouve le fils d'une collection ou l'attribut d'un document. Le fils peut être ensuite filtré en spécifiant une requête d'objet.

Liste de paramètres

parameter

Le paramètre parameter contient les éléments requis "objectIdentifier" et les éléments optionnels "attributeSelector" et "objectQuery".

Valeurs de retour

La valeur retournée est un tableau d'objets de type HW_API_Object ou HW_API_Error.

Voir aussi

  • hw_api::parents


Retourne le contenu d'un objet

  • « hw_api::children
  • hw_api::copy »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne le contenu d'un objet

hw_api::content

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::content — Retourne le contenu d'un objet

Description

HW_API_Content hw_api::content ( array $parameter )

Retourne le contenu d'un document sous la forme d'un objet de type hw_api_content.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectidentifier" et l'élément optionnel "returnvalues". Le mode peut être l'une des constantes suivantes : HW_API_CONTENT_ALLLINKS, HW_API_CONTENT_REACHABLELINKS ou HW_API_CONTENT_PLAIN.

HW_API_CONTENT_ALLLINKS signifie qu'il faut insérer toutes les ancres même si la destination n'est pas accessible.

HW_API_CONTENT_REACHABLELINKS indique à hw_api_content() qu'il faut insérer uniquement les destinations accessibles, et HW_API_CONTENT_PLAIN conduit à un document sans aucun lien.

Valeurs de retour

Retourne une instance de la classe hw_api_content.


Copie physique

  • « hw_api::content
  • hw_api::dbstat »
  • PHP Manual
  • Hyperwave API Fonctions
  • Copie physique

hw_api::copy

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::copy — Copie physique

Description

hw_api_content hw_api::copy ( array $parameter )

Fait une copie physique incluant le contenu éventuel, et retourne un nouvel objet ou un objet d'erreur.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires "objectIdentifier" et "destinationParentIdentifier" et l'élément optionnel "attributeSelector".

Valeurs de retour

Retourne la copie de l'objet.

Voir aussi

  • hw_api::move
  • hw_api::link


Retourne des statistiques sur le serveur de bases

  • « hw_api::copy
  • hw_api::dcstat »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne des statistiques sur le serveur de bases

hw_api::dbstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::dbstat — Retourne des statistiques sur le serveur de bases

Description

hw_api_object hw_api::dbstat ( array $parameter )

Retourne des statistiques sur le serveur de bases.

Liste de paramètres

parameter

Valeurs de retour

Voir aussi

  • hw_api::dcstat
  • hw_api::hwstat
  • hw_api::ftstat


Retourne des statistiques sur le serveur de cache de document

  • « hw_api::dbstat
  • hw_api::dstanchors »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne des statistiques sur le serveur de cache de document

hw_api::dcstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::dcstat — Retourne des statistiques sur le serveur de cache de document

Description

hw_api_object hw_api::dcstat ( array $parameter )

Retourne des statistiques sur le serveur de cache de document.

Liste de paramètres

parameter

Valeurs de retour

Voir aussi

  • hw_api::dbstat
  • hw_api::hwstat
  • hw_api::ftstat


Liste toutes les ancres de destination

  • « hw_api::dcstat
  • hw_api::dstofsrcanchor »
  • PHP Manual
  • Hyperwave API Fonctions
  • Liste toutes les ancres de destination

hw_api::dstanchors

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::dstanchors — Liste toutes les ancres de destination

Description

array hw_api::dstanchors ( array $parameter )

Liste toutes les ancres de destination.

Liste de paramètres

parameter

Le paramètre parameter contient l'élément obligatoire "objectIdentifier" et les éléments optionnels "attributeSelector" et "objectQuery".

Valeurs de retour

Voir aussi

  • hw_api::srcanchors


Retourne la destination d'une ancre source

  • « hw_api::dstanchors
  • hw_api::find »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne la destination d'une ancre source

hw_api::dstofsrcanchor

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::dstofsrcanchor — Retourne la destination d'une ancre source

Description

hw_api_object hw_api::dstofsrcanchor ( array $parameter )

Retourne l'objet de destination sur lequel pointe l'ancre source spécifiée. L'objet de destination peut être une ancre de destination ou un document entier.

Liste de paramètres

parameter

Le paramètre parameter contient l'élément obligatoire "objectIdentifier" et le paramètre optionnel "attributeSelector".

Valeurs de retour

Voir aussi

  • hw_api::srcanchors
  • hw_api::dstanchors
  • hw_api::objectbyanchor


Recherche des objets

  • « hw_api::dstofsrcanchor
  • hw_api::ftstat »
  • PHP Manual
  • Hyperwave API Fonctions
  • Recherche des objets

hw_api::find

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::find — Recherche des objets

Description

array hw_api::find ( array $parameter )

Recherche des objets grâce à leur clé d'exécution et/ou grâce à une requête en texte plein. Les objets trouvés peuvent alors être filtrés à nouveau par une requête optionnelle. Les objets sont triés par importance. La seconde opération de recherche est relativement lente, et ses résultats peuvent être limités à certaines valeurs. Cela permet de réaliser des recherches incrémentales, chacune retournant un sous-ensemble de tous les documents trouvés, en partant d'un index donné.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires "objectquery", "scope", "languages" et "attributeselector". En cas de recherche incrémentale, les éléments optionnels "startIndex", "numberOfObjectsToGet" et "exactMatchUnit" peuvent aussi être passés.

Valeurs de retour


Retourne des statistiques sur le serveur de textes

  • « hw_api::find
  • hw_api::hwstat »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne des statistiques sur le serveur de textes

hw_api::ftstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::ftstat — Retourne des statistiques sur le serveur de textes

Description

hw_api_object hw_api::ftstat ( array $parameter )

Retourne des statistiques sur le serveur de textes.

Liste de paramètres

parameter

Valeurs de retour

Voir aussi

  • hw_api::dcstat
  • hw_api::dbstat
  • hw_api::hwstat


Retourne les statistiques sur le serveur Hyperwave

  • « hw_api::ftstat
  • hw_api::identify »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne les statistiques sur le serveur Hyperwave

hw_api::hwstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::hwstat — Retourne les statistiques sur le serveur Hyperwave

Description

hw_api_object hw_api::hwstat ( array $parameter )

Retourne les statistiques sur le serveur Hyperwave.

Liste de paramètres

parameter

Valeurs de retour

Voir aussi

  • hw_api::dcstat
  • hw_api::dbstat
  • hw_api::ftstat


S'identifie auprès du serveur Hyperwave

  • « hw_api::hwstat
  • hw_api::info »
  • PHP Manual
  • Hyperwave API Fonctions
  • S'identifie auprès du serveur Hyperwave

hw_api::identify

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::identify — S'identifie auprès du serveur Hyperwave

Description

bool hw_api::identify ( array $parameter )

S'identifie auprès du serveur Hyperwave.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires "username" et "password".

Valeurs de retour

Retourne un objet du type HW_API_Error si l'identification a échoué, ou bien TRUE si cela a fonctionné.


Retourne des informations sur la configuration du serveur

  • « hw_api::identify
  • hw_api::insert »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne des informations sur la configuration du serveur

hw_api::info

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::info — Retourne des informations sur la configuration du serveur

Description

array hw_api::info ( array $parameter )

Retourne des informations sur la configuration du serveur.

Liste de paramètres

parameter

Valeurs de retour

Voir aussi

  • hw_api::dcstat
  • hw_api::dbstat
  • hw_api::ftstat
  • hw_api::hwstat


Insère un nouvel objet

  • « hw_api::info
  • hw_api::insertanchor »
  • PHP Manual
  • Hyperwave API Fonctions
  • Insère un nouvel objet

hw_api::insert

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::insert — Insère un nouvel objet

Description

hw_api_object hw_api::insert ( array $parameter )

Insère un nouvel objet. Le type d'objet peut être "user", "group", "document" ou "anchor". Suivant le type de l'autre objet, des attributs supplémentaires doivent être assignés.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires "object" et "content" (si l'objet est un document) et les éléments optionnels "parameters", "mode" et "attributeSelector". "object" doit contenir tous les attributs de l'objet. "parameters" est un objet qu contient les attributs supplémentaires, comme ceux de destination (attribut "Parent"). "content" est une combinaison des constantes suivantes :

HW_API_INSERT_NORMAL
L'objet est inséré sur le serveur.
HW_API_INSERT_FORCE_VERSION_CONTROL
HW_API_INSERT_AUTOMATIC_CHECKOUT
HW_API_INSERT_PLAIN
HW_API_INSERT_KEEP_TIME_MODIFIED
HW_API_INSERT_DELAY_INDEXING

Valeurs de retour

Voir aussi

  • hw_api::replace


Insère un nouvel objet de type ancre

  • « hw_api::insert
  • hw_api::insertcollection »
  • PHP Manual
  • Hyperwave API Fonctions
  • Insère un nouvel objet de type ancre

hw_api::insertanchor

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::insertanchor — Insère un nouvel objet de type ancre

Description

hw_api_object hw_api::insertanchor ( array $parameter )

Cette fonction est un raccourci pour hwapi_insert(). Elle insère un objet de type ancre ("anchor") et assigne les attributs nécessaires.

Liste de paramètres

parameter

Le paramètre parameter contient les éléments obligatoires "object" et "documentIdentifier" et les éléments optionnels "destinationIdentifier", "parameter", "hint" et "attributeSelector". L'élément "documentIdentifier" spécifie le document d'insertion de l'ancre. La cible de l'ancre est spécifiée par "destinationIdentifier" s'il existe. Si la cible n'existe pas, l'élément "hint" doit être configuré avec le nom de l'objet qui est prévu pour être inséré ultérieurement. Une fois que l'insertion a été faite, la cible sera résolue automatiquement.

Valeurs de retour

Voir aussi

  • hw_api::insert
  • hw_api::insertdocument
  • hw_api::insertcollection


Insère un nouvel objet de type collection

  • « hw_api::insertanchor
  • hw_api::insertdocument »
  • PHP Manual
  • Hyperwave API Fonctions
  • Insère un nouvel objet de type collection

hw_api::insertcollection

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::insertcollection — Insère un nouvel objet de type collection

Description

hw_api_object hw_api::insertcollection ( array $parameter )

Cette fonction est un raccourci pour la fonction hwapi_insert(). Elle insère un objet de type collection et lui assigne certains attributs obligatoires.

Liste de paramètres

parameter

parameter est un tableau qui contient les éléments obligatoires "object" et "parentIdentifier", et les éléments optionnels "parameter" et "attributeSelector". Voyez hwapi_insert() pour connaître le détail de chaque élément.

Valeurs de retour

Voir aussi

  • hw_api::insert
  • hw_api::insertdocument
  • hw_api::insertanchor


Insère un nouvel objet de type document

  • « hw_api::insertcollection
  • hw_api::link »
  • PHP Manual
  • Hyperwave API Fonctions
  • Insère un nouvel objet de type document

hw_api::insertdocument

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::insertdocument — Insère un nouvel objet de type document

Description

hw_api_object hw_api::insertdocument ( array $parameter )

Cette fonction est un raccourci pour hwapi_insert(). Il insère un objet avec un contenu et assigne certains attributs obligatoires.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires "object", "parentIdentifier" et "content" et les éléments optionnels "mode", "parameter" et "attributeSelector".

Voir la fonction hwapi_insert() pour la signification de chacun des éléments.

Valeurs de retour

Voir aussi

  • hw_api::insert
  • hw_api::insertcollection
  • hw_api::insertanchor


Crée un lien vers un objet

  • « hw_api::insertdocument
  • hw_api::lock »
  • PHP Manual
  • Hyperwave API Fonctions
  • Crée un lien vers un objet

hw_api::link

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::link — Crée un lien vers un objet

Description

bool hw_api::link ( array $parameter )

Crée un lien vers un objet. Accéder à ce lien revient à accéder à l'objet vers lequel il pointe.

Liste de paramètres

parameter

Le paramètre parameter contient les éléments obligatoires de "objectIdentifier" et "destinationParentIdentifier". "destinationParentIdentifier" est la collection de destination.

Valeurs de retour

Retourne TRUE en cas de succès et, sinon, un objet d'erreur.

Voir aussi

  • hw_api::copy


Verrouille un objet

  • « hw_api::link
  • hw_api::move »
  • PHP Manual
  • Hyperwave API Fonctions
  • Verrouille un objet

hw_api::lock

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::lock — Verrouille un objet

Description

bool hw_api::lock ( array $parameter )

Verrouille un objet pour le faire éditer exclusivement par l'utilisateur qui appelle cette fonction. L'objet ne peut être déverrouillé que par cet utilisateur ou par le système.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectIdentifier" et les paramètres optionnels "mode" et "objectquery".

"mode" détermine comment l'objet est verrouillé. HW_API_LOCK_NORMAL signifie que l'objet est verrouillé jusqu'à son déverrouillage. HW_API_LOCK_RECURSIVE est uniquement valide pour une collection et verrouille tous les objets de la collection et des sous-collections. HW_API_LOCK_SESSION signifie que l'objet est verrouillé aussi longtemps que tient la session en cours.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • hw_api::unlock


Déplace un objet d'une collection à l'autre

  • « hw_api::lock
  • hw_api::object »
  • PHP Manual
  • Hyperwave API Fonctions
  • Déplace un objet d'une collection à l'autre

hw_api::move

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::move — Déplace un objet d'une collection à l'autre

Description

bool hw_api::move ( array $parameter )

Déplace un objet d'une collection à l'autre.

Liste de paramètres

parameter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • hw_objrec2array()


Lit les informations d'attribut

  • « hw_api::move
  • hw_api::objectbyanchor »
  • PHP Manual
  • Hyperwave API Fonctions
  • Lit les informations d'attribut

hw_api::object

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::object — Lit les informations d'attribut

Description

hw_api_object hw_api::object ( array $parameter )

Lit les informations d'attribut d'un objet de n'importe quelle version. Elle ne retournera pas le contenu du document.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectIdentifier" et les éléments optionnels "attributeSelector" et "version".

Valeurs de retour

L'objet retourné est une instance de la classe HW_API_Object en cas de succès ou HW_API_Error en cas d'erreur.

Exemples

Cet exemple simple lit un objet et vérifie les erreurs.

Exemple #1 Lit un objet Hyperwave et le vérifie

<?php
function handle_error($error)
{
  $reason = $error->reason(0);
  echo "Type: <b>";
  switch ($reason->type()) {
    case 0:
      echo "Error";
      break;
    case 1:
      echo "Warning";
      break;
    case 2:
      echo "Message";
      break;
  }
  echo "</b><br />\n";
  echo "Description: " . $reason->description("en") . "<br />\n";
}

function list_attr($obj)
{
  echo "<table>\n";
  $count = $obj->count();
  for ($i=0; $i<$count; $i++) {
    $attr = $obj->attribute($i);
    printf("<tr><td align=\"right\" bgcolor=\"#c0c0c0\"><b>%s</b></td><td bgcolor=\"#F0F0F0\">%s</td></tr>\n",
             $attr->key(), $attr->value());
  }
  echo "</table>\n";
}

$hwapi = hwapi_hgcsp($g_config[HOSTNAME]);
$parms = array("objectIdentifier"=>"rootcollection", "attributeSelector"=>array("Title", "Name", "DocumentType"));
$root = $hwapi->object($parms);
if (get_class($root) == "HW_API_Error") {
  handle_error($root);
  exit;
}
list_attr($root);
?>

Voir aussi

  • hw_api::content


Retourne l'objet propriétaire d'une ancre

  • « hw_api::object
  • hw_api::parents »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne l'objet propriétaire d'une ancre

hw_api::objectbyanchor

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::objectbyanchor — Retourne l'objet propriétaire d'une ancre

Description

hw_api_object hw_api::objectbyanchor ( array $parameter )

Cette fonction retourne l'objet propriétaire d'une ancre.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectIdentifier" et l'élément optionnel "attributeSelector".

Valeurs de retour

Voir aussi

  • hw_api::dstofsrcanchor
  • hw_api::srcanchors
  • hw_api::dstanchors


Retourne le parent d'un objet

  • « hw_api::objectbyanchor
  • hw_api::remove »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne le parent d'un objet

hw_api::parents

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::parents — Retourne le parent d'un objet

Description

array hw_api::parents ( array $parameter )

Lit le parent d'un objet. Le parent peut être filtré en spécifiant un objet de requête.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectidentifier" et les éléments optionnels "attributeselector" et "objectquery".

Valeurs de retour

La valeur retournée est un tableau d'objets de type HW_API_Object ou HW_API_Error.

Voir aussi

  • hw_api::children


Efface un objet

  • « hw_api::parents
  • hw_api::replace »
  • PHP Manual
  • Hyperwave API Fonctions
  • Efface un objet

hw_api::remove

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::remove — Efface un objet

Description

bool hw_api::remove ( array $parameter )

Efface un objet avec un parent spécifique. Les collections seront effacées récursivement.

Liste de paramètres

parameter

Vous pouvez passez un objet optionnel de requête pour filtrer les objets qui seront effacés. Un objet sera effacé physiquement si c'est sa dernière instance.

Le paramètre parameter est un tableau qui contient les éléments obligatoires "objectidentifier" et "parentidentifier". Si vous souhaitez effacer un utilisateur ou un groupe, "parentidentifier" peut être omis.

L'élément optionnel "mode" détermine comment l'effacement est réalisé. En mode normal, l'objet sera effacé physiquement lorsque toutes ses instances seront supprimées. En mode physique, toutes les instances d'un objet seront supprimées immédiatement. En mode "removelinks" toutes les références vers et depuis l'objet seront aussi effacées. En mode "nonrecursif", l'effacement n'est pas récursif. Effacer une collection qui n'est pas vide causera une erreur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • hw_api::move


Remplace un objet

  • « hw_api::remove
  • hw_api::setcommittedversion »
  • PHP Manual
  • Hyperwave API Fonctions
  • Remplace un objet

hw_api::replace

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::replace — Remplace un objet

Description

hw_api_object hw_api::replace ( array $parameter )

Remplace les attributs et le contenu d'un objet.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires "objectIdentifier" et "object", puis les paramètres optionnels "content", "parameters", "mode" et "attributeSelector". "objectIdentifier" contient l'objet qui doit être remplacé. "object" contient le nouvel objet. "content" contient le nouveau contenu. "parameters" contient des informations supplémentaires pour les documents HTML. HTML_Language est l'abréviation de la langue pour le titre. HTML_Base est l'attribut de base pour le contenu du document HTML.

"mode" peut être la combinaison de l'une des constantes suivantes :

HW_API_REPLACE_NORMAL
L'objet sur le serveur est remplacé par l'objet passé.
HW_API_REPLACE_FORCE_VERSION_CONTROL
HW_API_REPLACE_AUTOMATIC_CHECKOUT
HW_API_REPLACE_AUTOMATIC_CHECKIN
HW_API_REPLACE_PLAIN
HW_API_REPLACE_REVERT_IF_NOT_CHANGED
HW_API_REPLACE_KEEP_TIME_MODIFIED

Valeurs de retour

Voir aussi

  • hw_api::insert


Valide une version autre que la dernière

  • « hw_api::replace
  • hw_api::srcanchors »
  • PHP Manual
  • Hyperwave API Fonctions
  • Valide une version autre que la dernière

hw_api::setcommittedversion

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::setcommittedversion — Valide une version autre que la dernière

Description

hw_api_object hw_api::setcommittedversion ( array $parameter )

Valide une version du document. La version validée est celle qui est visible par les utilisateurs ayant un accès en lecture. Par défaut, la dernière version est celle qui est validée.

Liste de paramètres

parameter

Valeurs de retour

Voir aussi

  • hw_api::checkin
  • hw_api::checkout


Retourne la liste de toutes les ancres

  • « hw_api::setcommittedversion
  • hw_api::srcsofdst »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne la liste de toutes les ancres

hw_api::srcanchors

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::srcanchors — Retourne la liste de toutes les ancres

Description

array hw_api::srcanchors ( array $parameter )

Retourne la liste de toutes les ancres d'un objet.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectIdentifier" et les éléments optionnels "attributeSelector" et "objectQuery".

Valeurs de retour

Voir aussi

  • hw_api::dstanchors


Retourne les sources d'un objet de destination

  • « hw_api::srcanchors
  • hw_api::unlock »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne les sources d'un objet de destination

hw_api::srcsofdst

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::srcsofdst — Retourne les sources d'un objet de destination

Description

array hw_api::srcsofdst ( array $parameter )

Retourne les sources d'un objet de destination. L'objet de destination peut être une ancre ou un document complet.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient l'élément obligatoire "objectIdentifier" et les éléments optionnels "attributeSelector" et "objectQuery". La fonction retourne un tableau d'objet ou une erreur.

Valeurs de retour

Voir aussi

  • hw_api::dstofsrcanchor


Déverrouille un objet HyperWave verrouillé

  • « hw_api::srcsofdst
  • hw_api::user »
  • PHP Manual
  • Hyperwave API Fonctions
  • Déverrouille un objet HyperWave verrouillé

hw_api::unlock

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::unlock — Déverrouille un objet HyperWave verrouillé

Description

bool hw_api::unlock ( array $parameter )

Déverrouille un objet verrouillé. Seuls l'utilisateur qui a verrouillé un objet et l'administrateur système peuvent le déverrouiller.

Liste de paramètres

parameter

Le paramètre parameter est un tableau qui contient les éléments obligatoires de objectIdentifier et les paramètres optionnels de mode et objectquery. La signification de mode est la même que dans la fonction hwapi_lock().

Valeurs de retour

Retourne TRUE en cas de succès, ou un objet de la classe HW_API_Error.

Voir aussi

  • hw_api::lock


Retourne le propriétaire d'un objet

  • « hw_api::unlock
  • hw_api::userlist »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne le propriétaire d'un objet

hw_api::user

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::user — Retourne le propriétaire d'un objet

Description

hw_api_object hw_api::user ( array $parameter )

Retourne le propriétaire d'un objet.

Liste de paramètres

parameter

Valeurs de retour

Voir aussi

  • hw_api::userlist


Retourne la liste des utilisateurs connectés

  • « hw_api::user
  • hw_api_attribute::key »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne la liste des utilisateurs connectés

hw_api::userlist

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::userlist — Retourne la liste des utilisateurs connectés

Description

array hw_api::userlist ( array $parameter )

Retourne la liste de tous les utilisateurs connectés.

Liste de paramètres

parameter

Valeurs de retour

Voir aussi

  • hw_api::user


Retourne la clé d'un attribut

  • « hw_api::userlist
  • hw_api_attribute::langdepvalue »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne la clé d'un attribut

hw_api_attribute::key

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute::key — Retourne la clé d'un attribut

Description

string hw_api_attribute::key ( void )

Retourne la clé d'un attribut.

Valeurs de retour

Retourne la clé d'un attribut, sous la forme d'une chaîne de caractères.

Voir aussi

  • hw_api_attribute::value


Retourne la valeur d'un attribut dans une langue

  • « hw_api_attribute::key
  • hw_api_attribute::value »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne la valeur d'un attribut dans une langue

hw_api_attribute::langdepvalue

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute::langdepvalue — Retourne la valeur d'un attribut dans une langue

Description

string hw_api_attribute::langdepvalue ( string $language )

Retourne la valeur d'un attribut dans une langue donnée.

Liste de paramètres

language

Valeurs de retour

Retourne la valeur d'un attribut dans la langue donnée, sous la forme d'une chaîne de caractères.

Voir aussi

  • hw_api_attribute::value


Retourne la valeur d'un attribut

  • « hw_api_attribute::langdepvalue
  • hw_api_attribute::values »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne la valeur d'un attribut

hw_api_attribute::value

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute::value — Retourne la valeur d'un attribut

Description

string hw_api_attribute::value ( void )

Retourne la valeur d'un attribut.

Valeurs de retour

Retourne la valeur, sous la forme d'une chaîne de caractères.

Voir aussi

  • hw_api_attribute::key
  • hw_api_attribute::values


Retourne toutes les valeurs de l'attribut

  • « hw_api_attribute::value
  • hw_api_content::mimetype »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne toutes les valeurs de l'attribut

hw_api_attribute::values

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute::values — Retourne toutes les valeurs de l'attribut

Description

array hw_api_attribute::values ( void )

Retourne toutes les valeurs de l'attribut.

Valeurs de retour

Retourne un tableau de valeurs de l'attribut.

Voir aussi

  • hw_api_attribute::value


Retourne le type MIME

  • « hw_api_attribute::values
  • hw_api_content::read »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne le type MIME

hw_api_content::mimetype

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_content::mimetype — Retourne le type MIME

Description

string hw_api_content::mimetype ( void )

Retourne le type MIME du contenu.

Valeurs de retour

Retourne le type MIME, sous la forme d'une chaîne de caractères.


Lit le contenu

  • « hw_api_content::mimetype
  • hw_api_error::count »
  • PHP Manual
  • Hyperwave API Fonctions
  • Lit le contenu

hw_api_content::read

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_content::read — Lit le contenu

Description

string hw_api_content::read ( string $buffer , int $len )

Lit len octets dans le buffer buffer.

Liste de paramètres

buffer

len

Nombre d'octets à lire.

Valeurs de retour


Retourne le nombre d'erreurs

  • « hw_api_content::read
  • hw_api_error::reason »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne le nombre d'erreurs

hw_api_error::count

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_error::count — Retourne le nombre d'erreurs

Description

int hw_api_error::count ( void )

Retourne le nombre d'erreurs.

Valeurs de retour

Retourne le nombre d'erreurs, sous la forme d'un entier.

Voir aussi

  • hw_api_error::reason


Retourne la première raison d'erreur

  • « hw_api_error::count
  • hw_api_object::assign »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne la première raison d'erreur

hw_api_error::reason

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_error::reason — Retourne la première raison d'erreur

Description

HW_API_Reason hw_api_error::reason ( void )

Retourne la première raison d'erreur.

Valeurs de retour

Voir aussi

  • hw_api_error::count


Clone un objet

  • « hw_api_error::reason
  • hw_api_object::attreditable »
  • PHP Manual
  • Hyperwave API Fonctions
  • Clone un objet

hw_api_object::assign

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::assign — Clone un objet

Description

bool hw_api_object::assign ( array $parameter )

Clone les attributs d'un objet.

Liste de paramètres

parameter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Vérifie si un attribut est éditable

  • « hw_api_object::assign
  • hw_api_object::count »
  • PHP Manual
  • Hyperwave API Fonctions
  • Vérifie si un attribut est éditable

hw_api_object::attreditable

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::attreditable — Vérifie si un attribut est éditable

Description

bool hw_api_object::attreditable ( array $parameter )

Vérifie si un attribut est éditable.

Liste de paramètres

parameter

Valeurs de retour

Retourne TRUE si l'attribut est éditable, FALSE sinon.


Retourne le nombre d'attributs

  • « hw_api_object::attreditable
  • hw_api_object::insert »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne le nombre d'attributs

hw_api_object::count

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::count — Retourne le nombre d'attributs

Description

int hw_api_object::count ( array $parameter )

Retourne le nombre d'attributs.

Liste de paramètres

parameter

Valeurs de retour

Retourne le nombre d'attributs, sous la forme d'un entier.


Insère un nouvel attribut HyperWave

  • « hw_api_object::count
  • hw_api_object::remove »
  • PHP Manual
  • Hyperwave API Fonctions
  • Insère un nouvel attribut HyperWave

hw_api_object::insert

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::insert — Insère un nouvel attribut HyperWave

Description

bool hw_api_object::insert ( HW_API_Attribute $attribute )

Insère un nouvel attribut HyperWave.

Liste de paramètres

attribute

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • hw_api_object::remove


Supprime un attribut HyperWave

  • « hw_api_object::insert
  • hw_api_object::title »
  • PHP Manual
  • Hyperwave API Fonctions
  • Supprime un attribut HyperWave

hw_api_object::remove

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::remove — Supprime un attribut HyperWave

Description

bool hw_api_object::remove ( string $name )

Supprime l'attribut HyperWave.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • hw_api_object::insert


Retourne le titre de l'attribut

  • « hw_api_object::remove
  • hw_api_object::value »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne le titre de l'attribut

hw_api_object::title

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::title — Retourne le titre de l'attribut

Description

string hw_api_object::title ( array $parameter )

Retourne le titre de l'attribut.

Liste de paramètres

parameter

Valeurs de retour

Retourne le titre, sous la forme d'une chaîne de caractères.


Retourne la valeur de l'attribut

  • « hw_api_object::title
  • hw_api_reason::description »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne la valeur de l'attribut

hw_api_object::value

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::value — Retourne la valeur de l'attribut

Description

string hw_api_object::value ( string $name )

Retourne la valeur de l'attribut.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Retourne la valeur de l'attribut name, ou FALSE si une erreur survient.


Retourne la description d'une raison

  • « hw_api_object::value
  • hw_api_reason::type »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne la description d'une raison

hw_api_reason::description

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_reason::description — Retourne la description d'une raison

Description

string hw_api_reason::description ( void )

Retourne la description d'une raison.

Valeurs de retour

Retourne la description, sous la forme d'une chaîne de caractères.


Retourne le type de raison

  • « hw_api_reason::description
  • hwapi_attribute_new »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne le type de raison

hw_api_reason::type

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_reason::type — Retourne le type de raison

Description

HW_API_Reason hw_api_reason::type ( void )

Retourne le type de raison.

Valeurs de retour

Retourne une instance de la classe HW_API_Reason.


Crée une nouvelle instance de la classe hw_api_attribute

  • « hw_api_reason::type
  • hwapi_content_new »
  • PHP Manual
  • Hyperwave API Fonctions
  • Crée une nouvelle instance de la classe hw_api_attribute

hwapi_attribute_new

(No version information available, might only be in Git)

hwapi_attribute_new — Crée une nouvelle instance de la classe hw_api_attribute

Description

HW_API_Attribute hwapi_attribute_new ([ string $name [, string $value ]] )

Crée une nouvelle instance de la classe hw_api_attribute avec le nom et la valeur fournis.

Liste de paramètres

name

Le nom de l'attribut.

value

La valeur de l'attribut.

Valeurs de retour

Retourne une instance de la classe hw_api_attribute.


Crée une nouvelle instance de la classe hw_api_content

  • « hwapi_attribute_new
  • hwapi_hgcsp »
  • PHP Manual
  • Hyperwave API Fonctions
  • Crée une nouvelle instance de la classe hw_api_content

hwapi_content_new

(No version information available, might only be in Git)

hwapi_content_new — Crée une nouvelle instance de la classe hw_api_content

Description

HW_API_Content hwapi_content_new ( string $content , string $mimetype )

Crée une nouvelle instance de l'objet depuis la chaîne content.

Liste de paramètres

content

mimetype

Le type MIME du contenu.

Valeurs de retour


Retourne un objet de classe hw_api

  • « hwapi_content_new
  • hwapi_object_new »
  • PHP Manual
  • Hyperwave API Fonctions
  • Retourne un objet de classe hw_api

hwapi_hgcsp

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hwapi_hgcsp — Retourne un objet de classe hw_api

Description

HW_API hwapi_hgcsp ( string $hostname [, int $port ] )

Ouvre une connexion au serveur Hyperwave sur l'hôte hostname. Le protocole utilisé est HGCSP.

Liste de paramètres

hostname

Le nom de l'hôte.

port

Si vous l'omettez, le port 418 sera utilisé.

Valeurs de retour

Retourne une instance de la classe HW_API.


Crée une nouvelle instance de la classe hwapi_object_new

  • « hwapi_hgcsp
  • LDAP »
  • PHP Manual
  • Hyperwave API Fonctions
  • Crée une nouvelle instance de la classe hwapi_object_new

hwapi_object_new

(No version information available, might only be in Git)

hwapi_object_new — Crée une nouvelle instance de la classe hwapi_object_new

Description

hw_api_object hwapi_object_new ( array $parameter )

Crée une nouvelle instance de la classe hw_api_object.

Liste de paramètres

parameter

Valeurs de retour

Voir aussi

  • hw_api::lock


Lightweight Directory Access Protocol

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Utiliser les fonctions LDAP de PHP
  • Exemples
    • Utilisation simple
  • Fonctions LDAP
    • ldap_8859_to_t61 — Convertit les caractères 8859 en caractères t61
    • ldap_add — Ajoute une entrée dans un dossier LDAP
    • ldap_bind — Authentification au serveur LDAP
    • ldap_close — Alias de ldap_unbind
    • ldap_compare — Compare une entrée avec des valeurs d'attributs
    • ldap_connect — Connexion à un serveur LDAP
    • ldap_control_paged_result_response — Récupère le cookie de pagination LDAP
    • ldap_control_paged_result — Envoi un contrôle de pagination LDAP
    • ldap_count_entries — Compte le nombre d'entrées après une recherche
    • ldap_delete — Efface une entrée dans un dossier
    • ldap_dn2ufn — Convertit un DN en format UFN (User Friendly Naming)
    • ldap_err2str — Convertit un numéro d'erreur LDAP en message d'erreur
    • ldap_errno — Retourne le numéro d'erreur LDAP de la dernière commande exécutée
    • ldap_error — Retourne le message LDAP de la dernière commande LDAP
    • ldap_escape — Echappe une chaîne pour l'utiliser dans un filtre LDAP ou un DN
    • ldap_explode_dn — Sépare les différents composants d'un DN
    • ldap_first_attribute — Retourne le premier attribut
    • ldap_first_entry — Retourne la première entrée
    • ldap_first_reference — Retourne la première référence
    • ldap_free_result — Libère la mémoire du résultat
    • ldap_get_attributes — Lit les attributs d'une entrée
    • ldap_get_dn — Lit le DN d'une entrée
    • ldap_get_entries — Lit toutes les entrées du résultat
    • ldap_get_option — Lit/écrit la valeur courante d'une option
    • ldap_get_values_len — Lit toutes les valeurs binaires d'une entrée
    • ldap_get_values — Lit toutes les valeurs d'une entrée LDAP
    • ldap_list — Recherche dans un niveau
    • ldap_mod_add — Ajoute un attribut à l'entrée courante
    • ldap_mod_del — Efface un attribut à l'entrée courante
    • ldap_mod_replace — Remplace un attribut dans l'entrée courante
    • ldap_modify_batch — Mets en lot des modifications et les exécute sur une entrée LDAP
    • ldap_modify — Modifie une entrée LDAP
    • ldap_next_attribute — Lit l'attribut suivant
    • ldap_next_entry — Lit la prochaine entrée
    • ldap_next_reference — Lit la référence suivante
    • ldap_parse_reference — Extrait les informations d'une référence d'entrée
    • ldap_parse_result — Extrait des informations d'un résultat
    • ldap_read — Lit une entrée
    • ldap_rename — Modifie le nom d'une entrée
    • ldap_sasl_bind — Authentification au serveur LDAP en utilisant SASL
    • ldap_search — Recherche sur le serveur LDAP
    • ldap_set_option — Modifie la valeur d'une option LDAP
    • ldap_set_rebind_proc — Configure une fonction de retour pour refaire des liaisons lors de recherche de référants
    • ldap_sort — Trie les entrées d'un résultat LDAP
    • ldap_start_tls — Démarre TLS
    • ldap_t61_to_8859 — Convertit les caractères t61 en caractères 8859
    • ldap_unbind — Déconnecte d'un serveur LDAP


Introduction

LDAP signifie : Lightweight Directory Access Protocol (Protocole léger d'accès aux annuaires). C'est un protocole utilisé pour accéder aux "serveurs de dossiers". Ces serveurs sont des bases de données particulières, qui stockent les informations sous forme d'arborescence.

Le concept d'arborescence est similaire à celui de la structure de votre système de fichiers, hormis le fait que dans ce contexte, la racine s'appelle "le monde", et que le premier niveau de sous-dossier s'appelle "pays". Les niveaux encore en dessous sont des "compagnies" "organisation" ou "places", et encore plus bas, vous trouverez des "personnes" et même des "équipements" et "documents".

Pour identifier un fichier dans votre disque, vous utilisez un chemin tel que

   /usr/local/mon_application/documents

Le slash indique une division dans la référence, et la séquence est lue de gauche à droite.

l'équivalent d'une référence globale en LDAP s'appelle un "nom distingué" ("distinguished name"), aussi appelé "dn". Un exemple de dn serait :

  cn=Jean Dupond,ou=Comptabilité,o=Ma Compagnie,c=FR

La virgule marque la séparation de chaque division comme référence, et la séquence est lue de droite à gauche. Il faut donc lire :

   country = FR
   organization = Ma Compagnie
   organizationalUnit = Comptabilité
   commonName = Jean Dupond

De la même façon qu'il n'y a pas de règle obligatoire sur comment organiser les fichiers sur un disque dur, un responsable de serveur de dossiers peut organiser le serveur comme cela lui semble le plus pratique. Cependant, il y a des conventions à utiliser. Le principe est que vous ne pouvez pas accéder à un serveur de dossier à moins que vous ne connaissiez sa structure, de même que vous ne pouvez écrire une base de données sans en connaître les tables et les bases.

Bien plus d'informations sont disponibles aux URL suivantes (en anglais) :

  • » Mozilla

  • » Le projet OpenLDAP

Le SDK Netscape contient un guide du programmeur (» Programmer's Guide) très utile, au format HTML (et en anglais).


Pré-requis

Vous devez télécharger et compiler les bibliothèques clientes LDAP depuis soit » OpenLDAP ou » Bind9.net pour assurer le support LDAP.


Installation

Le support LDAP de PHP n'est pas activé par défaut. Vous devez utiliser l'option de configuration --with-ldap[=DIR] lorsque vous compilez PHP, où DIR est le répertoire d'installation du serveur LDAP. Pour activer le support SASL, assurez-vous que l'option de configuration --with-ldap-sasl[=DIR] est utilisée et que le fichier sasl.h existe sur votre système.

Note: Note aux utilisateurs Win32

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : libeay32.dll et ssleay32.dll

Les versions antérieures à PHP 4.3.0 nécessitent la bibliothèque libsasl.dll.

Pour pouvoir utiliser les bibliothèques Oracle LDAP, un environnement Oracle propre doit être défini.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration LDAP
Nom | Défaut | Modifiable | Historique
ldap.max_links | "-1" | PHP_INI_SYSTEM |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ldap.max_links integer

Le nombre maximal de connexions LDAP par processus.


Types de ressources

La plupart des fonctions LDAP opère sur des ressources retournées par les fonctions LDAP (e.g. ldap_connect() retourne un identifiant de lien LDAP positif requis par plusieurs fonctions LDAP).


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

LDAP_DEREF_NEVER (entier)
LDAP_DEREF_SEARCHING (entier)
LDAP_DEREF_FINDING (entier)
LDAP_DEREF_ALWAYS (entier)
LDAP_OPT_DEREF (entier)
Applique des règles alternatives pour suivre les alias sur le serveur.
LDAP_OPT_SIZELIMIT (entier)

Spécifie le nombre maximum d'entrées qui peuvent être retournées d'une position de recherche.

Note: La limite réelle peut aussi être donnée du coté du serveur. La plus petite des deux sera celle utilisée.

LDAP_OPT_TIMELIMIT (entier)
Spécifie le nombre de secondes à attendre les résultats de recherche.

Note: La limite réelle peut aussi être donnée du coté du serveur. La plus petite des deux sera celle utilisée.

LDAP_OPT_NETWORK_TIMEOUT (entier)
Option pour ldap_set_option() qui permet de définir le timeout. (Disponible depuis PHP 5.3.0)
LDAP_OPT_PROTOCOL_VERSION (entier)
Spécifie la version du protocole LDAP à utiliser (V2 ou V3).
LDAP_OPT_ERROR_NUMBER (entier)
LDAP_OPT_REFERRALS (entier)
Spécifie si oui ou non suivre les référrants retournés par le serveur.
LDAP_OPT_RESTART (entier)
LDAP_OPT_HOST_NAME (entier)
LDAP_OPT_ERROR_STRING (entier)
LDAP_OPT_MATCHED_DN (entier)
LDAP_OPT_SERVER_CONTROLS (entier)
Spécifie une liste de contrôles serveurs à envoyer avec chaque requête.
LDAP_OPT_CLIENT_CONTROLS (entier)
Spécifie une liste de contrôles clients à envoyer avec chaque requête.
LDAP_OPT_DEBUG_LEVEL (entier)
Spécifie un niveau pour les traces de déboguage, sous forme de masque de bits.
GSLC_SSL_NO_AUTH (entier)
GSLC_SSL_ONEWAY_AUTH (entier)
GSLC_SSL_TWOWAY_AUTH (entier)


Utiliser les fonctions LDAP de PHP

Avant d'utiliser les fonctions LDAP, vous devez connaître

  • Le nom ou l'adresse du serveur de dossiers que vous voudrez utiliser

  • Le "base dn" du serveur (la partie du dossier monde qui est disponible sur ce serveur, ce qui peut être "o=Ma Compagnie,c=FR")

  • Le mot de passe éventuel d'accès au serveur (de nombreux serveurs fournissent un accès anonyme en lecture, mais requièrent des mots de passe pour tout le reste).

La séquence LDAP typique que vous exécuterez sera la suivante :

ldap_connect()    // établit une connexion au serveur
   |
ldap_bind()       // connexion anonyme ou identifiée
   |
réalisation de commandes comme des recherches ou des
modifications, puis affichage du résultat.
   |
ldap_close()      // déconnexion


  • « Utiliser les fonctions LDAP de PHP
  • Utilisation simple »
  • PHP Manual
  • LDAP
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Lit les informations sur toutes les entrées dont le nom commence par "S" sur le serveur de dossier, puis affiche le nom et l'adresse email.

Exemple #1 Recherche avec LDAP

<?php
// La séquence de base avec LDAP est
// connexion, liaison, recherche, interprétation du résultat
// déconnexion

echo '<h3>requête de test de LDAP</h3>';
echo 'Connexion ...';
$ds=ldap_connect("localhost");  // doit être un serveur LDAP valide !
echo 'Le résultat de connexion est ' . $ds . '<br />';

if ($ds) {
    echo 'Liaison ...';
    $r=ldap_bind($ds);     // connexion anonyme, typique
                                     // pour un accès en lecture seule.
    echo 'Le résultat de connexion est ' . $r . '<br />';

    echo 'Recherchons (sn=S*) ...';
    // Recherche par nom
    $sr=ldap_search($ds,"o=My Company, c=US", "sn=S*");
    echo 'Le résultat de la recherche est ' . $sr . '<br />';

    echo 'Le nombre d\'entrées retournées est ' . ldap_count_entries($ds,$sr)
         . '<br />';

    echo 'Lecture des entrées ...<br />';
    $info = ldap_get_entries($ds, $sr);
    echo 'Données pour ' . $info["count"] . ' entrées:<br />';

    for ($i=0; $i<$info["count"]; $i++) {
        echo 'dn est : ' . $info[$i]["dn"] . '<br />';
        echo 'premiere entree cn : ' . $info[$i]["cn"][0] . '<br />';
        echo 'premier email : ' . $info[$i]["mail"][0] . '<br />';
    }

    echo 'Fermeture de la connexion';
    ldap_close($ds);

} else {
    echo '<h4>Impossible de se connecter au serveur LDAP.</h4>';
}
?>


Fonctions LDAP

Sommaire

  • ldap_8859_to_t61 — Convertit les caractères 8859 en caractères t61
  • ldap_add — Ajoute une entrée dans un dossier LDAP
  • ldap_bind — Authentification au serveur LDAP
  • ldap_close — Alias de ldap_unbind
  • ldap_compare — Compare une entrée avec des valeurs d'attributs
  • ldap_connect — Connexion à un serveur LDAP
  • ldap_control_paged_result_response — Récupère le cookie de pagination LDAP
  • ldap_control_paged_result — Envoi un contrôle de pagination LDAP
  • ldap_count_entries — Compte le nombre d'entrées après une recherche
  • ldap_delete — Efface une entrée dans un dossier
  • ldap_dn2ufn — Convertit un DN en format UFN (User Friendly Naming)
  • ldap_err2str — Convertit un numéro d'erreur LDAP en message d'erreur
  • ldap_errno — Retourne le numéro d'erreur LDAP de la dernière commande exécutée
  • ldap_error — Retourne le message LDAP de la dernière commande LDAP
  • ldap_escape — Echappe une chaîne pour l'utiliser dans un filtre LDAP ou un DN
  • ldap_explode_dn — Sépare les différents composants d'un DN
  • ldap_first_attribute — Retourne le premier attribut
  • ldap_first_entry — Retourne la première entrée
  • ldap_first_reference — Retourne la première référence
  • ldap_free_result — Libère la mémoire du résultat
  • ldap_get_attributes — Lit les attributs d'une entrée
  • ldap_get_dn — Lit le DN d'une entrée
  • ldap_get_entries — Lit toutes les entrées du résultat
  • ldap_get_option — Lit/écrit la valeur courante d'une option
  • ldap_get_values_len — Lit toutes les valeurs binaires d'une entrée
  • ldap_get_values — Lit toutes les valeurs d'une entrée LDAP
  • ldap_list — Recherche dans un niveau
  • ldap_mod_add — Ajoute un attribut à l'entrée courante
  • ldap_mod_del — Efface un attribut à l'entrée courante
  • ldap_mod_replace — Remplace un attribut dans l'entrée courante
  • ldap_modify_batch — Mets en lot des modifications et les exécute sur une entrée LDAP
  • ldap_modify — Modifie une entrée LDAP
  • ldap_next_attribute — Lit l'attribut suivant
  • ldap_next_entry — Lit la prochaine entrée
  • ldap_next_reference — Lit la référence suivante
  • ldap_parse_reference — Extrait les informations d'une référence d'entrée
  • ldap_parse_result — Extrait des informations d'un résultat
  • ldap_read — Lit une entrée
  • ldap_rename — Modifie le nom d'une entrée
  • ldap_sasl_bind — Authentification au serveur LDAP en utilisant SASL
  • ldap_search — Recherche sur le serveur LDAP
  • ldap_set_option — Modifie la valeur d'une option LDAP
  • ldap_set_rebind_proc — Configure une fonction de retour pour refaire des liaisons lors de recherche de référants
  • ldap_sort — Trie les entrées d'un résultat LDAP
  • ldap_start_tls — Démarre TLS
  • ldap_t61_to_8859 — Convertit les caractères t61 en caractères 8859
  • ldap_unbind — Déconnecte d'un serveur LDAP


Convertit les caractères 8859 en caractères t61

  • « Fonctions LDAP
  • ldap_add »
  • PHP Manual
  • Fonctions LDAP
  • Convertit les caractères 8859 en caractères t61

ldap_8859_to_t61

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ldap_8859_to_t61 — Convertit les caractères 8859 en caractères t61

Description

string ldap_8859_to_t61 ( string $value )

Convertit les caractères ISO-8859 en caractères t61.

Cette fonction est utile si vous devez utiliser un serveur LDAPv2.

Liste de paramètres

value

Le texte à convertir.

Valeurs de retour

Retourne la conversion en t61 du texte value.

Voir aussi

  • ldap_t61_to_8859() - Convertit les caractères t61 en caractères 8859


Ajoute une entrée dans un dossier LDAP

  • « ldap_8859_to_t61
  • ldap_bind »
  • PHP Manual
  • Fonctions LDAP
  • Ajoute une entrée dans un dossier LDAP

ldap_add

(PHP 4, PHP 5, PHP 7)

ldap_add — Ajoute une entrée dans un dossier LDAP

Description

bool ldap_add ( resource $link_identifier , string $dn , array $entry )

Ajoute une entrée dans un dossier LDAP.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Un tableau avec les informations sur la nouvelle entrée. Ces valeurs sont indexées individuellement. En cas de valeurs multiples pour un attribut, elles sont indexées numériquement, à partir de 0.

<?php
$entry["attribute1"] = "value";
$entry["attribute2"][0] = "value1";
$entry["attribute2"][1] = "value2";
?>

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple complet avec identification LDAP

<?php
$ds = ldap_connect("localhost");  // on suppose que le serveur LDAP est sur le serveur local

if ($ds) {
    // Connexion avec une identité qui permet les modifications
    $r = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");

    // Prépare les données
    $info["cn"] = "John Jones";
    $info["sn"] = "Jones";
    $info["objectclass"] = "person";

    // Ajoute les données au dossier
    $r = ldap_add($ds, "cn=John Jones, o=My Company, c=US", $info);

    ldap_close($ds);
} else {
    echo "Impossible de se connecter au serveur LDAP";
}
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • ldap_delete() - Efface une entrée dans un dossier


Authentification au serveur LDAP

  • « ldap_add
  • ldap_close »
  • PHP Manual
  • Fonctions LDAP
  • Authentification au serveur LDAP

ldap_bind

(PHP 4, PHP 5, PHP 7)

ldap_bind — Authentification au serveur LDAP

Description

bool ldap_bind ( resource $link_identifier [, string $bind_rdn = NULL [, string $bind_password = NULL ]] )

Authentification au serveur LDAP avec le RDN et le mot de passe spécifiés.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

bind_rdn

bind_password

Si bind_rdn et bind_password ne sont pas spécifiés, une authentification anonyme est essayée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Authentification avec LDAP

<?php

// Eléments d'authentification LDAP
$ldaprdn  = 'uname';     // DN ou RDN LDAP
$ldappass = 'password';  // Mot de passe associé

// Connexion au serveur LDAP
$ldapconn = ldap_connect("ldap.example.com")
    or die("Impossible de se connecter au serveur LDAP.");

if ($ldapconn) {

    // Connexion au serveur LDAP
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

    // Vérification de l'authentification
    if ($ldapbind) {
        echo "Connexion LDAP réussie...";
    } else {
        echo "Connexion LDAP échouée...";
    }

}

?>

Exemple #2 Connexion anonyme à un serveur LDAP

<?php

// Connexion anonyme à un serveur LDAP

// Connexion au serveur LDAP
$ldapconn = ldap_connect("ldap.example.com")
    or die("Impossible de se connecter au serveur LDAP.");

if ($ldapconn) {

    // Authentification anonyme
    $ldapbind = ldap_bind($ldapconn);

    if ($ldapbind) {
        echo "Connexion LDAP anonmye réussie...";
    } else {
        echo "Connexion LDAP anonmye échouée...";
    }

}

?>

Voir aussi

  • ldap_unbind() - Déconnecte d'un serveur LDAP


Alias de ldap_unbind

  • « ldap_bind
  • ldap_compare »
  • PHP Manual
  • Fonctions LDAP
  • Alias de ldap_unbind

ldap_close

(PHP 4, PHP 5, PHP 7)

ldap_close — Alias de ldap_unbind()

Description

Cette fonction est un alias de : ldap_unbind().


Compare une entrée avec des valeurs d'attributs

  • « ldap_close
  • ldap_connect »
  • PHP Manual
  • Fonctions LDAP
  • Compare une entrée avec des valeurs d'attributs

ldap_compare

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ldap_compare — Compare une entrée avec des valeurs d'attributs

Description

mixed ldap_compare ( resource $link_identifier , string $dn , string $attribute , string $value )

Sert à comparer la valeur value de l'attribut attribute à la valeur du même attribut de l'entrée dn.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le DN de l'entrée LDAP.

attribute

Le nom de l'attribut.

value

La valeur comparée.

Valeurs de retour

Retourne TRUE si la valeur value correspond, sinon, retourne FALSE. Retourne -1 si une erreur survient.

Exemples

L'exemple suivant montre comment vérifier que deux mots de passe correspondent, dont l'un est celui d'une entrée du serveur LDAP.

Exemple #1 Exemple complet de vérification de mot de passe avec lDAP

<?php

$ds=ldap_connect("localhost");  // doit être un serveur LDAP valide!

if ($ds) {

    // Authentification
    if (ldap_bind($ds)) {

        // Préparation des données
        $dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
        $value = "secretpassword";
        $attr = "password";

        // Comparaison des valeurs
        $r=ldap_compare($ds, $dn, $attr, $value);

        if ($r === -1) {
            echo "Error: " . ldap_error($ds);
        } elseif ($r === true) {
            echo "Password correct.";
        } elseif ($r === false) {
            echo "Mal choisi ! Mot de passe incorrect !";
        }

    } else {
        echo "Impossible de se connecter au serveur LDAP.";
    }

    ldap_close($ds);

} else {
    echo "Impossible de se connecter au serveur LDAP.";
}
?>

Notes

Avertissement

ldap_compare() ne peut PAS être utilisé pour comparer des valeurs binaires !


Connexion à un serveur LDAP

  • « ldap_compare
  • ldap_control_paged_result_response »
  • PHP Manual
  • Fonctions LDAP
  • Connexion à un serveur LDAP

ldap_connect

(PHP 4, PHP 5, PHP 7)

ldap_connect — Connexion à un serveur LDAP

Description

resource ldap_connect ([ string $hostname = NULL [, int $port = 389 ]] )

Établit une connexion avec un serveur LDAP situé sur l'hôte hostname et port.

Liste de paramètres

hostname

Si vous utilisez OpenLDAP 2.x.x, vous pouvez spécifier une URL au lieu d'un nom d'hôte. Pour utiliser LDAP avec SSL, compilez OpenLDAP 2.x.x avec le support SSL, configurez PHP avec SSL, et utilisez ldaps://hostname/ comme nom d'hôte.

port

Le port utilisé pour la connexion. Inutile lors de l'utilisation d'URL.

Valeurs de retour

Retourne un identifiant positif de serveur LDAP en cas de succès, ou bien FALSE en cas d'erreur. Lorsque OpenLDAP 2.x.x est utilisé, ldap_connect() retournera toujours une ressource car il ne se connectera pas mais initialisera uniquement les paramètres de connexion. Actuellement, la connexion intervient avec le prochain appel aux fonctions ldap_*, habituellement avec la fonction ldap_bind().

Sans argument, l'identifiant de la dernière connexion ouverte sera retourné.

Exemples

Exemple #1 Exemple de connexion à un serveur LDAP

<?php

// LDAP variables
$ldaphost = "ldap.example.com";  // votre serveur LDAP
$ldapport = 389;                 // votre port de serveur LDAP

// Connexion LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
          or die("Impossible de se connecter au serveur LDAP $ldaphost");

?>

Exemple #2 Exemple de connexion à un serveur LDAP SSL

<?php

// Assurez-vous que l'hôte est correct
// et que vous avez un certificat valide
$ldaphost = "ldaps://ldap.example.com/";

// Connexion LDAP
$ldapconn = ldap_connect($ldaphost)
          or die("Impossible de se connecter au serveur LDAP {$ldaphost}");

?>

Voir aussi

  • ldap_bind() - Authentification au serveur LDAP


Récupère le cookie de pagination LDAP

  • « ldap_connect
  • ldap_control_paged_result »
  • PHP Manual
  • Fonctions LDAP
  • Récupère le cookie de pagination LDAP

ldap_control_paged_result_response

(PHP 5 >= 5.4.0, PHP 7)

ldap_control_paged_result_response — Récupère le cookie de pagination LDAP

Description

bool ldap_control_paged_result_response ( resource $link , resource $result [, string &$cookie [, int &$estimated ]] )

Récupère les informations de pagination envoyées par le serveur.

Liste de paramètres

link

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result

cookie

Une structure opaque envoyée par le serveur.

estimated

Le nombre estimé d'entrées à récupérer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ldap_control_paged_result() - Envoi un contrôle de pagination LDAP
  • » RFC2696 : Extension de contrôle LDAP pour une manipulation simplifiée des résultats paginés


Envoi un contrôle de pagination LDAP

  • « ldap_control_paged_result_response
  • ldap_count_entries »
  • PHP Manual
  • Fonctions LDAP
  • Envoi un contrôle de pagination LDAP

ldap_control_paged_result

(PHP 5 >= 5.4.0, PHP 7)

ldap_control_paged_result — Envoi un contrôle de pagination LDAP

Description

bool ldap_control_paged_result ( resource $link , int $pagesize [, bool $iscritical = false [, string $cookie = "" ]] )

Active la pagination LDAP en envoyant le contrôle de pagination (taille de la page, cookie,...).

Liste de paramètres

link

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

pagesize

Le nombre d'entrées par page.

iscritical

Indique si la pagination est critique ou non. Si vaut TRUE, et si le serveur ne supporte pas la pagination, la recherche ne retournera aucun résultat.

cookie

Une structure opaque envoyée par le serveur (ldap_control_paged_result_response()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

L'exemple ci-dessous montre la manière pour récupérer la première page d'une recherche paginée avec une seule entrée par page.

Exemple #1 Pagination LDAP

<?php
     // $ds est un identifiant de lien valide (voir ldap_connect)
     ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

     $dn        = 'ou=example,dc=org';
     $filter    = '(|(sn=Doe*)(givenname=John*))';
     $justthese = array('ou', 'sn', 'givenname', 'mail');

     // active la pagination avec une taille de page à 1.
     ldap_control_paged_result($ds, 1);

     $sr = ldap_search($ds, $dn, $filter, $justthese);

     $info = ldap_get_entries($ds, $sr);

     echo $info['count'] . ' entrées retournées' . PHP_EOL;

L'exemple ci-dessous montre la manière pour récupérer tous les résultats paginés avec 100 entrées par page.

Exemple #2 Pagination LDAP

<?php
     // $ds est un identifiant de lien valide (voir ldap_connect)
     ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

     $dn        = 'ou=example,dc=org';
     $filter    = '(|(sn=Doe*)(givenname=John*))';
     $justthese = array('ou', 'sn', 'givenname', 'mail');

     // active la pagination avec une taille de page à 100.
     $pageSize = 100;

     $cookie = '';
     do {
         ldap_control_paged_result($ds, $pageSize, true, $cookie);

         $result  = ldap_search($ds, $dn, $filter, $justthese);
         $entries = ldap_get_entries($ds, $result);

         foreach ($entries as $e) {
             echo $e['dn'] . PHP_EOL;
         }

         ldap_control_paged_result_response($ds, $result, $cookie);

     } while($cookie !== null && $cookie != '');

Notes

Note:

Le contrôle de la pagination est une fonctionalité du protocole LDAPv3.

Voir aussi

  • ldap_control_paged_result_response() - Récupère le cookie de pagination LDAP
  • » RFC2696 : Extension de contrôle LDAP pour une manipulation simplifiée des résultats paginés


Compte le nombre d'entrées après une recherche

  • « ldap_control_paged_result
  • ldap_delete »
  • PHP Manual
  • Fonctions LDAP
  • Compte le nombre d'entrées après une recherche

ldap_count_entries

(PHP 4, PHP 5, PHP 7)

ldap_count_entries — Compte le nombre d'entrées après une recherche

Description

int ldap_count_entries ( resource $link_identifier , resource $result_identifier )

Retourne le nombre d'entrées trouvées dans le résultat result_identifier, sur la connexion link_identifier.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_identifier

Le résultat interne LDAP.

Valeurs de retour

Retourne le nombre d'entrées dans le résultat, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ldap-count-entries()

Retrieve number of entries in the result.

// $ds est un identifiant valide (voir ldap_connect)

$dn        = 'ou=example,dc=org';
$filter    = '(|(sn=Doe*)(givenname=John*))';
$justthese = array('ou', 'sn', 'givenname', 'mail');

$sr = ldap_search($ds, $dn, $filter, $justthese);

var_dump(ldap_count_entries($ds, $sr));

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)


Efface une entrée dans un dossier

  • « ldap_count_entries
  • ldap_dn2ufn »
  • PHP Manual
  • Fonctions LDAP
  • Efface une entrée dans un dossier

ldap_delete

(PHP 4, PHP 5, PHP 7)

ldap_delete — Efface une entrée dans un dossier

Description

bool ldap_delete ( resource $link_identifier , string $dn )

Efface une entrée spécifique d'un dossier LDAP.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ldap_add() - Ajoute une entrée dans un dossier LDAP


Convertit un DN en format UFN (User Friendly Naming)

  • « ldap_delete
  • ldap_err2str »
  • PHP Manual
  • Fonctions LDAP
  • Convertit un DN en format UFN (User Friendly Naming)

ldap_dn2ufn

(PHP 4, PHP 5, PHP 7)

ldap_dn2ufn — Convertit un DN en format UFN (User Friendly Naming)

Description

string ldap_dn2ufn ( string $dn )

Convertit le DN dn dans un format plus lisible humainement, en supprimant les types des noms.

Liste de paramètres

dn

Le DN de l'entrée LDAP.

Valeurs de retour

Retourne l'UFN.


Convertit un numéro d'erreur LDAP en message d'erreur

  • « ldap_dn2ufn
  • ldap_errno »
  • PHP Manual
  • Fonctions LDAP
  • Convertit un numéro d'erreur LDAP en message d'erreur

ldap_err2str

(PHP 4, PHP 5, PHP 7)

ldap_err2str — Convertit un numéro d'erreur LDAP en message d'erreur

Description

string ldap_err2str ( int $errno )

Retourne le message lisible expliquant l'erreur dont le numéro est errno. Bien que les numéros d'erreur LDAP soient standardisés, différentes bibliothèques retournent des messages différents ou même des textes d'erreur localisés. N'utilisez jamais les messages d'erreur pour identifier une erreur, mais bien les numéros.

Liste de paramètres

errno

Le numéro de l'erreur.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Énumérer tous les messages d'erreur LDAP

<?php
  for ($i=0; $i<100; $i++) {
    printf("Erreur numéro $i: %s<br />\n", ldap_err2str($i));
  }
?>

Voir aussi

  • ldap_errno() - Retourne le numéro d'erreur LDAP de la dernière commande exécutée
  • ldap_error() - Retourne le message LDAP de la dernière commande LDAP


Retourne le numéro d'erreur LDAP de la dernière commande exécutée

  • « ldap_err2str
  • ldap_error »
  • PHP Manual
  • Fonctions LDAP
  • Retourne le numéro d'erreur LDAP de la dernière commande exécutée

ldap_errno

(PHP 4, PHP 5, PHP 7)

ldap_errno — Retourne le numéro d'erreur LDAP de la dernière commande exécutée

Description

int ldap_errno ( resource $link_identifier )

Retourne le numéro d'erreur standard, généré par la dernière commande LDAP, pour la connexion link_identifier. Ce numéro peut être converti en message textuel avec ldap_err2str().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

Valeurs de retour

Retourne le numéro d'erreur LDAP généré par la dernière commande.

Exemples

À moins que vous n'abaissiez suffisamment le niveau d'erreur dans php.ini, ou que vous ne préfixiez vos commandes LDAP avec @ (arobase) pour supprimer les affichages, les erreurs LDAP s'afficheront aussi dans la sortie HTML.

Exemple #1 Générer et intercepter une erreur

<?php
// Cet exemple contient une erreur, que nous interecepterons.
$ld = ldap_connect("localhost");
$bind = ldap_bind($ld);
// erreur de syntaxe dans l'expression du filtre (errno 87),
// doit être "objectclass=*" pour fonctionner.
$res =  @ldap_search($ld, "o=Myorg, c=DE", "objectclass");
if (!$res) {
    echo "LDAP-Errno: " . ldap_errno($ld) . "<br />\n";
    echo "LDAP-Error: " . ldap_error($ld) . "<br />\n";
    die("Argh!<br />\n");
}
$info = ldap_get_entries($ld, $res);
echo $info["count"] . " entrées correspondent.<br />\n";
?>

Voir aussi

  • ldap_err2str() - Convertit un numéro d'erreur LDAP en message d'erreur
  • ldap_error() - Retourne le message LDAP de la dernière commande LDAP


Retourne le message LDAP de la dernière commande LDAP

  • « ldap_errno
  • ldap_escape »
  • PHP Manual
  • Fonctions LDAP
  • Retourne le message LDAP de la dernière commande LDAP

ldap_error

(PHP 4, PHP 5, PHP 7)

ldap_error — Retourne le message LDAP de la dernière commande LDAP

Description

string ldap_error ( resource $link_identifier )

retourne le message d'erreur lié à la connexion link_identifier. Même si les numéros d'erreur LDAP sont standardisés, différentes bibliothèques retournent différents messages, ou parfois, des messages en langue locale. Ne vous fiez pas au message d'erreur, mais bien au numéro d'erreur.

À moins que vous n'abaissiez suffisamment le niveau d'erreur dans php.ini, ou que vous ne préfixiez vos commandes LDAP avec @ pour supprimer les affichages, les erreurs LDAP s'afficheront aussi dans la sortie HTML.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

Valeurs de retour

Retourne un message d'erreur LDAP.

Voir aussi

  • ldap_err2str() - Convertit un numéro d'erreur LDAP en message d'erreur
  • ldap_errno() - Retourne le numéro d'erreur LDAP de la dernière commande exécutée


Echappe une chaîne pour l'utiliser dans un filtre LDAP ou un DN

  • « ldap_error
  • ldap_explode_dn »
  • PHP Manual
  • Fonctions LDAP
  • Echappe une chaîne pour l'utiliser dans un filtre LDAP ou un DN

ldap_escape

(PHP 5 >= 5.6.0, PHP 7)

ldap_escape — Echappe une chaîne pour l'utiliser dans un filtre LDAP ou un DN

Description

string ldap_escape ( string $value [, string $ignore [, int $flags ]] )

Echappe la chaîne value pour l'utiliser dans le contexte impliqué par le paramètre flags.

Liste de paramètres

value

La valeur à échapper.

ignore

Les caractères à ignorer pendant l'échappement.

flags

Le contexte dans lequel la chaîne échappée sera utilisée : LDAP_ESCAPE_FILTER pour les filtres à utiliser avec ldap_search(), ou LDAP_ESCAPE_DN pour les DNs.

Valeurs de retour

Retourne la chaîne échappée.


Sépare les différents composants d'un DN

  • « ldap_escape
  • ldap_first_attribute »
  • PHP Manual
  • Fonctions LDAP
  • Sépare les différents composants d'un DN

ldap_explode_dn

(PHP 4, PHP 5, PHP 7)

ldap_explode_dn — Sépare les différents composants d'un DN

Description

array ldap_explode_dn ( string $dn , int $with_attrib )

Sert à extraire les différents composants du DN dn. Chaque composant s'appelle un Nom Distingué Relatif (Relative Distinguished Name ou encore RDN).

Liste de paramètres

dn

Le nom DN de l'entrée LDAP.

with_attrib

Sert à préciser si les RDN sont retournés seuls, ou bien avec leurs attributs. Pour obtenir les attributs en même temps que les RDN (au format attribut=valeur), donnez à with_attrib la valeur de 0 et, sinon, donnez lui la valeur de 1.

Valeurs de retour

Retourne un tableau de tous les composants DN, ou FALSE si une erreur survient. Le premier élément du tableau a une clé count et représente le nombre de valeurs retournées ; les autres éléments sont les composants DN indexés numériquement.


Retourne le premier attribut

  • « ldap_explode_dn
  • ldap_first_entry »
  • PHP Manual
  • Fonctions LDAP
  • Retourne le premier attribut

ldap_first_attribute

(PHP 4, PHP 5, PHP 7)

ldap_first_attribute — Retourne le premier attribut

Description

string ldap_first_attribute ( resource $link_identifier , resource $result_entry_identifier )

Retourne le premier attribut de l'entrée fournie. Les autres attributs sont lus grâce à la fonction ldap_next_attribute(), appelée aussi souvent que nécessaire.

Similairement à la lecture des entrées, les attributs sont lus les uns après les autres, pour une entrée.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

ber_identifier

Le paramètre ber_identifier est l'identifiant de pointeur en mémoire locale. Il est passé par référence. Le même paramètre ber_identifier est passé à la fonction ldap_next_attribute(), qui modifiera ce pointeur.

Note:

Ce paramètre n'est plus disponible depuis qu'il est géré automatiquement par PHP. Pour une compatibilité ascendante, PHP ne lancera pas d'erreur si ce paramètre est renseigné.

Valeurs de retour

Retourne le premier attribut de l'entrée en cas de succès, et FALSE si une erreur survient.

Historique

Version | Description
5.2.4 | Le paramètre ber_identifier a été supprimé. Il est maintenant géré automatiquement par PHP.

Voir aussi

  • ldap_next_attribute() - Lit l'attribut suivant
  • ldap_get_attributes() - Lit les attributs d'une entrée


Retourne la première entrée

  • « ldap_first_attribute
  • ldap_first_reference »
  • PHP Manual
  • Fonctions LDAP
  • Retourne la première entrée

ldap_first_entry

(PHP 4, PHP 5, PHP 7)

ldap_first_entry — Retourne la première entrée

Description

resource ldap_first_entry ( resource $link_identifier , resource $result_identifier )

Retourne la première entrée du résultat. Celles qui suivent seront lues grâce à la fonction ldap_next_entry(), en l'appelant aussi souvent que nécessaire.

Les entrées d'un résultat LDAP sont lues séquentiellement avec les fonctions ldap_first_entry() et ldap_next_entry().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_identifier

Valeurs de retour

Retourne la première entrée en cas de succès, FALSE si une erreur survient.

Voir aussi

  • ldap_get_entries() - Lit toutes les entrées du résultat


Retourne la première référence

  • « ldap_first_entry
  • ldap_free_result »
  • PHP Manual
  • Fonctions LDAP
  • Retourne la première référence

ldap_first_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_first_reference — Retourne la première référence

Description

resource ldap_first_reference ( resource $link , resource $result )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Libère la mémoire du résultat

  • « ldap_first_reference
  • ldap_get_attributes »
  • PHP Manual
  • Fonctions LDAP
  • Libère la mémoire du résultat

ldap_free_result

(PHP 4, PHP 5, PHP 7)

ldap_free_result — Libère la mémoire du résultat

Description

bool ldap_free_result ( resource $result_identifier )

Libère toute la mémoire allouée en interne pour stocker le résultat result_identifier. Si l'appel de cette fonction est omis, toute la mémoire sera libérée automatiquement à la fin du script.

Typiquement, toute la mémoire allouée pour le résultat LDAP est libérée à la fin du script. Si le script effectue des recherches intensives, qui retournent des résultats de grandes taille, ldap_free_result() peut être utilisée pour réduire la consommation de mémoire.

Liste de paramètres

result_identifier

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Lit les attributs d'une entrée

  • « ldap_free_result
  • ldap_get_dn »
  • PHP Manual
  • Fonctions LDAP
  • Lit les attributs d'une entrée

ldap_get_attributes

(PHP 4, PHP 5, PHP 7)

ldap_get_attributes — Lit les attributs d'une entrée

Description

array ldap_get_attributes ( resource $link_identifier , resource $result_entry_identifier )

Lit les attributs et les valeurs pour une entrée d'un résultat de recherche.

Une fois que vous avez repéré une entrée dans un dossier, vous pouvez obtenir plus d'informations sur elle avec cette fonction. Elle pourrait être utilisée dans le cadre d'une application qui cartographie les dossiers et les entrées. Dans de nombreuses applications, vous recherchez des entrées ayant un attribut précis, sans vous soucier des autres attributs.

return_value["count"] = nombre d'attributs dans l'entrée
return_value[0] = premier attribut
return_value[n] = n-ième attribut

return_value["attribute"]["count"] = nombre de valeurs de l'attribut
return_value["attribute"][0] = première valeur de l'attribut
return_value["attribute"][i] = (i+1)-ème valeur de l'attribut

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

Valeurs de retour

Retourne le détail des informations d'une entrée sous la forme d'un tableau multidimensionnel ou FALSE en cas d'erreur.

Exemples

Exemple #1 Affiche la liste des attributs d'une entrée

<?php
// $ds est une ressource de connexion valide

// $sr est une recherche valide, issue d'une opération
// précédente

$entry = ldap_first_entry($ds, $sr);

$attrs = ldap_get_attributes($ds, $entry);

echo $attrs["count"] . " attributs dans cette entrée :<p>";

for ($i=0; $i < $attrs["count"]; $i++) {
    echo $attrs[$i] . "<br />";
}
?>

Voir aussi

  • ldap_first_attribute() - Retourne le premier attribut
  • ldap_next_attribute() - Lit l'attribut suivant


Lit le DN d'une entrée

  • « ldap_get_attributes
  • ldap_get_entries »
  • PHP Manual
  • Fonctions LDAP
  • Lit le DN d'une entrée

ldap_get_dn

(PHP 4, PHP 5, PHP 7)

ldap_get_dn — Lit le DN d'une entrée

Description

string ldap_get_dn ( resource $link_identifier , resource $result_entry_identifier )

Lit le DN d'une entrée d'un résultat.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

Valeurs de retour

Retourne le DN de l'entrée du résultat, ou FALSE si une erreur survient.


Lit toutes les entrées du résultat

  • « ldap_get_dn
  • ldap_get_option »
  • PHP Manual
  • Fonctions LDAP
  • Lit toutes les entrées du résultat

ldap_get_entries

(PHP 4, PHP 5, PHP 7)

ldap_get_entries — Lit toutes les entrées du résultat

Description

array ldap_get_entries ( resource $link_identifier , resource $result_identifier )

Lit toutes les entrées du résultat fourni, ainsi que les attributs et les valeurs multiples.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_identifier

Valeurs de retour

Retourne toutes les entrées du résultat sous la forme d'un tableau multidimensionnel, ou FALSE en cas d'erreur.

La structure du tableau est la suivante. L'index d'attribut est converti en minuscules (les attributs sont sensibles à la casse pour les serveurs de dossiers, mais ne le sont pas lorsqu'ils sont utilisés comme index de tableaux).

return_value["count"] = nombre d'entrées dans le résultat
return_value[0] : se réfère aux détails de la première entrée

return_value[i]["dn"] =  DN de la n-ième entrée du résultat

return_value[i]["count"] = nombre d'attributs de la n-ième entrée
return_value[i][j] = Nom du j-ième attribut de la i-ème entrée du résultat

return_value[i]["attribute"]["count"] = nombre de valeur des attributs de la i-ième entrée
return_value[i]["attribute"][j] = j-ième valeur de la n-ième entrée

Voir aussi

  • ldap_first_entry() - Retourne la première entrée
  • ldap_next_entry() - Lit la prochaine entrée


Lit/écrit la valeur courante d'une option

  • « ldap_get_entries
  • ldap_get_values_len »
  • PHP Manual
  • Fonctions LDAP
  • Lit/écrit la valeur courante d'une option

ldap_get_option

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ldap_get_option — Lit/écrit la valeur courante d'une option

Description

bool ldap_get_option ( resource $link_identifier , int $option , mixed &$retval )

Définit la valeur retval à l'option spécifié.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

option

Le paramètre option peut prendre l'une des valeurs suivantes :

Option | Type
LDAP_OPT_DEREF | entier
LDAP_OPT_SIZELIMIT | entier
LDAP_OPT_TIMELIMIT | entier
LDAP_OPT_NETWORK_TIMEOUT | entier
LDAP_OPT_PROTOCOL_VERSION | entier
LDAP_OPT_ERROR_NUMBER | entier
LDAP_OPT_REFERRALS | booléen
LDAP_OPT_RESTART | booléen
LDAP_OPT_HOST_NAME | chaîne de caractères
LDAP_OPT_ERROR_STRING | chaîne de caractères
LDAP_OPT_MATCHED_DN | chaîne de caractères
LDAP_OPT_SERVER_CONTROLS | tableau
LDAP_OPT_CLIENT_CONTROLS | tableau
LDAP_OPT_X_KEEPALIVE_IDLE | int
LDAP_OPT_X_KEEPALIVE_PROBES | int
LDAP_OPT_X_KEEPALIVE_INTERVAL | int
LDAP_OPT_X_TLS_CACERTDIR | string
LDAP_OPT_X_TLS_CACERTFILE | string
LDAP_OPT_X_TLS_CERTFILE | string
LDAP_OPT_X_TLS_CIPHER_SUITE | string
LDAP_OPT_X_TLS_CRLCHECK | integer
LDAP_OPT_X_TLS_CRLFILE | string
LDAP_OPT_X_TLS_DHFILE | string
LDAP_OPT_X_TLS_KEYILE | string
LDAP_OPT_X_TLS_PACKAGE | string
LDAP_OPT_X_TLS_PROTOCOL_MIN | integer
LDAP_OPT_X_TLS_RANDOM_FILE | string
LDAP_OPT_X_TLS_REQUIRE_CERT | integer

retval

Valeur à définir pour l'option.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Vérification de la version du protocole

<?php
// $ds doit être une ressource de connexion valide
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) {
    echo "Nous utilisons le protocole version $version\n";
} else {
    echo "Impossible de déterminer la version du protocole.\n";
}
?>

Notes

Note:

Cette fonction n'est disponible qu'avec OpenLDAP 2.x.x OU Netscape Directory SDK x.x, et a été ajoutée en PHP 4.0.4.

Voir aussi

  • ldap_set_option() - Modifie la valeur d'une option LDAP


Lit toutes les valeurs binaires d'une entrée

  • « ldap_get_option
  • ldap_get_values »
  • PHP Manual
  • Fonctions LDAP
  • Lit toutes les valeurs binaires d'une entrée

ldap_get_values_len

(PHP 4, PHP 5, PHP 7)

ldap_get_values_len — Lit toutes les valeurs binaires d'une entrée

Description

array ldap_get_values_len ( resource $link_identifier , resource $result_entry_identifier , string $attribute )

Lit toutes les valeurs binaires d'une entrée d'un résultat.

Cette fonction s'utilise exactement comme la fonction ldap_get_values(), hormis le fait qu'elle gère les données binaires, et non les chaînes de caractères.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

attribute

Valeurs de retour

Retourne un tableau de valeurs pour l'attribut en cas de succès, et FALSE en cas d'erreur. Les valeurs sont accessibles individuellement, avec les index numériques du tableau. L'indexation commence à 0. Le nombre de valeurs retournées est disponible à l'index 'count' du tableau retourné.

Voir aussi

  • ldap_get_values() - Lit toutes les valeurs d'une entrée LDAP


Lit toutes les valeurs d'une entrée LDAP

  • « ldap_get_values_len
  • ldap_list »
  • PHP Manual
  • Fonctions LDAP
  • Lit toutes les valeurs d'une entrée LDAP

ldap_get_values

(PHP 4, PHP 5, PHP 7)

ldap_get_values — Lit toutes les valeurs d'une entrée LDAP

Description

array ldap_get_values ( resource $link_identifier , resource $result_entry_identifier , string $attribute )

Lit toutes les valeurs de l'attribut d'une entrée dans un résultat.

L'utilisation de la fonction result_entry_identifier requiert un résultat de recherche, et doit donc être précédée d'une recherche LDAP, et de l'une des fonctions permettant d'accéder à une entrée.

Votre application doit contenir des informations permettant de lire certains attributs (comme "nom" ou "mail"), ou bien vous devrez utiliser la fonction ldap_get_attributes() pour savoir quels sont les attributs qui existent pour une entrée donnée.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

attribute

Valeurs de retour

Retourne un tableau de valeurs pour l'attribut, ou FALSE en cas d'erreur. Le nombre de valeurs retournées est disponible à l'index 'count' du tableau retourné. Les valeurs sont accessibles individuellement, avec les index numériques du tableau. L'indexation commence à 0.

LDAP permet plus d'une entrée par attribut, ce qui permet de stocker plusieurs adresses emails par personne, tout en n'utilisant qu'une étiquette "mail" :

    return_value["count"] = nombre de valeurs de l'attribut
    return_value[0] = première valeur de l'attribut
    return_value[i] = i-ième valeur de l'attribut

Exemples

Exemple #1 Liste toutes les valeurs de l'attribut "mail" d'une entrée

<?php
// $ds doit être une ressource de connexion valide

// $sr doit être une ressource de résultat valide, obtenue avec une des fonctions de
//     recherche LDAP.

// $entry est une entrée LDAP valide, obtenue avec une des fonctions
//        LDAP qui retourne une entrée

$values = ldap_get_values($ds, $entry,"mail");

echo $values["count"] . " adresses email pour cette entrée.<br />";

for ($i=0; $i < $values["count"]; $i++) {
    echo $values[$i] . "<br />";
}
?>

Voir aussi

  • ldap_get_values_len() - Lit toutes les valeurs binaires d'une entrée


Recherche dans un niveau

  • « ldap_get_values
  • ldap_mod_add »
  • PHP Manual
  • Fonctions LDAP
  • Recherche dans un niveau

ldap_list

(PHP 4, PHP 5, PHP 7)

ldap_list — Recherche dans un niveau

Description

resource ldap_list ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

Effectue une recherche avec le filtre filter dans le dossier base_dn avec l'option LDAP_SCOPE_ONELEVEL.

LDAP_SCOPE_ONELEVEL signifie que la recherche ne peut retourner des entrées que dans le niveau qui est immédiatement sous le niveau base_dn (c'est l'équivalent de la commande ls, pour obtenir la liste des fichiers et dossiers du dossier courant).

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

base_dn

La base DN du dossier.

filter

attributes

Un tableau d'attributs requis, e.g. array("mail", "sn", "cn"). Notez que le "dn" est toujours retourné, quelque soit le type de l'attribut demandé.

L'utilisation de ce paramètre est plus efficace que l'action par défaut (qui est de retourner tous les attributs ainsi que leurs valeurs associées). L'utilisation de ce paramètre doit pour cette raison être considéré comme une bonne pratique.

attrsonly

Doit être défini à 1 si seuls les types des attributs sont demandés. S'il est défini à 0, les types et les valeurs des attributs sont récupérés, ce qui correspond au comportement par défaut.

sizelimit

Vous permet de limiter le nombre d'entrées à récupérer. Le fait de définir ce paramètre à 0 signifie qu'il n'y aura aucune limite.

Note:

Ce paramètre ne peut pas écraser la configuration côté serveur. Vous pouvez cependant positionner une valeur inférieure.

Quelques dossiers serveurs peuvent être configurés afin de ne retourner qu'un nombre d'entrées données. Si ce comportement survient, le serveur indique qu'il n'a retourné qu'un jeu de résultats partiel. Ce comportement intervient également si vous utilisez ce paramètre pour limiter le nombre d'entrées récupérées.

timelimit

Définit le nombre maximal de secondes permis pour la recherche. Le fait de définir ce paramètre à 0 signifie qu'il n'y a pas de limite.

Note:

Ce paramètre ne peut pas écraser la configuration côté serveur mais vous pouvez l'utiliser pour être plus restrictif.

deref

Spécifie le nombre d'alias qui doivent être gérés pendant la recherche. Il peut être un parmi les suivants :

  • LDAP_DEREF_NEVER - (défaut) les alias ne sont jamais déréférencés.
  • LDAP_DEREF_SEARCHING - les alias doivent être déréférencés pendant la recherche mais pas lors de la localisation de l'objet de base de la recherche.
  • LDAP_DEREF_FINDING - les alias doivent être déréférencés lors de la localisation de l'objet de base mais pas durant la recherche.
  • LDAP_DEREF_ALWAYS - les alias doivent toujours être déréférencés.

Valeurs de retour

Retourne un identifiant de résultats pour la recherche, ou FALSE si une erreur survient.

Historique

Version | Description
4.0.5 | Les recherches parallèles ont été ajoutées. Voir la fonction ldap_search() pour plus de détails.

Exemples

Exemple #1 Produit une liste de tous les services d'une société

<?php
// $ds doit être une ressource de connexion valide

$basedn = "o=My Company, c=US";
$justthese = array("ou");

$sr = ldap_list($ds, $basedn, "ou=*", $justthese);

$info = ldap_get_entries($ds, $sr);

for ($i=0; $i < $info["count"]; $i++) {
    echo $info[$i]["ou"][0];
}
?>

Voir aussi

  • ldap_search() - Recherche sur le serveur LDAP


Ajoute un attribut à l'entrée courante

  • « ldap_list
  • ldap_mod_del »
  • PHP Manual
  • Fonctions LDAP
  • Ajoute un attribut à l'entrée courante

ldap_mod_add

(PHP 4, PHP 5, PHP 7)

ldap_mod_add — Ajoute un attribut à l'entrée courante

Description

bool ldap_mod_add ( resource $link_identifier , string $dn , array $entry )

Ajoute l'attribut entry à l'entrée dn. Elle effectue la modification au niveau attribut, par opposition au niveau objet. Les additions au niveau objet sont réalisées par ldap_add().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • ldap_mod_del() - Efface un attribut à l'entrée courante
  • ldap_mod_replace() - Remplace un attribut dans l'entrée courante


Efface un attribut à l'entrée courante

  • « ldap_mod_add
  • ldap_mod_replace »
  • PHP Manual
  • Fonctions LDAP
  • Efface un attribut à l'entrée courante

ldap_mod_del

(PHP 4, PHP 5, PHP 7)

ldap_mod_del — Efface un attribut à l'entrée courante

Description

bool ldap_mod_del ( resource $link_identifier , string $dn , array $entry )

Efface l'attribut entry de l'entrée dn. Elle effectue la modification au niveau attribut, par opposition au niveau objet. Les additions au niveau objet sont réalisées par ldap_delete().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ldap_mod_add() - Ajoute un attribut à l'entrée courante
  • ldap_mod_replace() - Remplace un attribut dans l'entrée courante


Remplace un attribut dans l'entrée courante

  • « ldap_mod_del
  • ldap_modify_batch »
  • PHP Manual
  • Fonctions LDAP
  • Remplace un attribut dans l'entrée courante

ldap_mod_replace

(PHP 4, PHP 5, PHP 7)

ldap_mod_replace — Remplace un attribut dans l'entrée courante

Description

bool ldap_mod_replace ( resource $link_identifier , string $dn , array $entry )

Remplace l'attribut entry de l'entrée dn. Elle effectue le remplacement au niveau attribut, par opposition au niveau objet. Les additions au niveau objet sont réalisées par ldap_modify().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • ldap_mod_del() - Efface un attribut à l'entrée courante
  • ldap_mod_add() - Ajoute un attribut à l'entrée courante


Mets en lot des modifications et les exécute sur une entrée LDAP

  • « ldap_mod_replace
  • ldap_modify »
  • PHP Manual
  • Fonctions LDAP
  • Mets en lot des modifications et les exécute sur une entrée LDAP

ldap_modify_batch

(PHP 5.4 >= 5.4.26, PHP 5.5 >= 5.5.10, PHP 5.6 >= 5.6.0, PHP 7)

ldap_modify_batch — Mets en lot des modifications et les exécute sur une entrée LDAP

Description

bool ldap_modify_batch ( resource $link_identifier , string $dn , array $entry )

Modifie une entrée existante dans un dossier LDAP. Permet de spécifier de façon détaillée les modifications à effectuer.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom unique de l'entrée LDAP.

entry

Un tableau qui spécifie les modifications à réaliser. Chaque entrée de ce tableau est un tableau associatif contenant deux ou trois clés : attrib correspond au nom de l'attribut à modifier, modtype correspond au type de modification à réaliser, et (suivant le type de modification) values correspond à un tableau de valeurs d'attribut correspondant à la modification.

Les valeurs possibles pour modtype sont :

LDAP_MODIFY_BATCH_ADD

Chaque valeur spécifiée via values est ajoutée (comme valeur additionnelle) à l'attribut nommé par attrib.

LDAP_MODIFY_BATCH_REMOVE

Chaque valeur spécifiée via values est supprimée depuis l'attribut nommée par attrib. Toutes les valeurs de l'attribut n'étant pas présentes dans le tableau values demeureront inchangées.

LDAP_MODIFY_BATCH_REMOVE_ALL

Toutes les valeurs sont supprimées depuis l'attribut nommé par attrib. Une entrée values n'a pas besoin d'être fournie.

LDAP_MODIFY_BATCH_REPLACE

Toutes les valeurs courantes de l'attribut nommé par attrib sont remplacées avec les valeurs spécifiées via le tableau values.

Notez que toutes les valeurs de attrib doivent être des chaînes de caractères, toutes les valeurs de values doivent être un tableau de chaînes de caractères, et toutes les valeurs de modtype doivent être une des constantes LDAP_MODIFY_BATCH_*.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout d'un numéro de téléphone à un contact

<?php
$dn = "cn=John Smith,ou=Wizards,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "telephoneNumber",
        "modtype" => LDAP_MODIFY_BATCH_ADD,
        "values"  => ["+1 555 555 1717"],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);
?>

Exemple #2 Renomme un utilisateur

<?php
$dn = "cn=John Smith,ou=Wizards,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "sn",
        "modtype" => LDAP_MODIFY_BATCH_REPLACE,
        "values"  => ["Smith-Jones"],
    ],
    [
        "attrib"  => "givenName",
        "modtype" => LDAP_MODIFY_BATCH_REPLACE,
        "values"  => ["Jack"],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);
ldap_rename($connection, $dn, "cn=Jack Smith-Jones", NULL, TRUE);
?>

Exemple #3 Ajoute deux adresses emails à un utilisateur

<?php
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "mail",
        "modtype" => LDAP_MODIFY_BATCH_ADD,
        "values"  => [
            "jack.smith@example.com",
            "jack.smith-jones@example.com",
        ],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);
?>

Exemple #4 Modifie le mot de passe d'un utilisateur

<?php
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "userPassword",
        "modtype" => LDAP_MODIFY_BATCH_REMOVE,
        "values"  => ["Tr0ub4dor&3"],
    ],
    [
        "attrib"  => "userPassword",
        "modtype" => LDAP_MODIFY_BATCH_ADD,
        "values"  => ["correct horse battery staple"],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);
?>

Exemple #5 Modifie le mot de passe d'un utilisateur (Active Directory)

<?php
function adifyPw($pw)
{
    return iconv("UTF-8", "UTF-16LE", '"' . $pw . '"');
}

$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=ad,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "unicodePwd",
        "modtype" => LDAP_MODIFY_BATCH_REMOVE,
        "values"  => [adifyPw("Tr0ub4dor&3")],
    ],
    [
        "attrib"  => "unicodePwd",
        "modtype" => LDAP_MODIFY_BATCH_ADD,
        "values"  => [adifyPw("correct horse battery staple")],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);


Modifie une entrée LDAP

  • « ldap_modify_batch
  • ldap_next_attribute »
  • PHP Manual
  • Fonctions LDAP
  • Modifie une entrée LDAP

ldap_modify

(PHP 4, PHP 5, PHP 7)

ldap_modify — Modifie une entrée LDAP

Description

bool ldap_modify ( resource $link_identifier , string $dn , array $entry )

Modifie l'entrée identifiée par dn, avec les valeurs fournies dans entry. La structure de entry est la même que détaillée dans ldap_add().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • ldap_rename() - Modifie le nom d'une entrée


Lit l'attribut suivant

  • « ldap_modify
  • ldap_next_entry »
  • PHP Manual
  • Fonctions LDAP
  • Lit l'attribut suivant

ldap_next_attribute

(PHP 4, PHP 5, PHP 7)

ldap_next_attribute — Lit l'attribut suivant

Description

string ldap_next_attribute ( resource $link_identifier , resource $result_entry_identifier )

Lit l'attribut suivant d'une entrée. Le premier appel à ldap_next_attribute() est fait avec le result_entry_identifier retourné par ldap_first_attribute().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

ber_identifier

Le statut interne du pointeur est maintenu par ce paramètre.

Note:

Ce paramètre n'est plus disponible depuis qu'il est géré automatiquement par PHP. Pour une compatibilité ascendante, PHP ne lancera pas d'erreur s'il est renseigné.

Valeurs de retour

Retourne le prochain attribut de l'entrée en cas de succès, et FALSE si une erreur survient.

Historique

Version | Description
5.2.4 | Le paramètre ber_identifier a été supprimé. Il est maintenant géré automatiquement par PHP.

Voir aussi

  • ldap_get_attributes() - Lit les attributs d'une entrée


Lit la prochaine entrée

  • « ldap_next_attribute
  • ldap_next_reference »
  • PHP Manual
  • Fonctions LDAP
  • Lit la prochaine entrée

ldap_next_entry

(PHP 4, PHP 5, PHP 7)

ldap_next_entry — Lit la prochaine entrée

Description

resource ldap_next_entry ( resource $link_identifier , resource $result_entry_identifier )

Lit la prochaine entrée du résultat. Des appels répétés à ldap_next_entry() retourneront toutes les entrées jusqu'à ce qu'il n'y en ait plus. Le premier appel doit être fait avec la fonction ldap_first_entry(). Le paramètre result_entry_identifier est celui qui a été retourné par la fonction ldap_first_entry().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

Valeurs de retour

Retourne l'identifiant de la prochaine entrée du résultat, où la première entrée a été lue par la fonction ldap_first_entry(). S'il n'y a plus d'entrées dans le résultat, FALSE est retourné.

Voir aussi

  • ldap_get_entries() - Lit toutes les entrées du résultat


Lit la référence suivante

  • « ldap_next_entry
  • ldap_parse_reference »
  • PHP Manual
  • Fonctions LDAP
  • Lit la référence suivante

ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_next_reference — Lit la référence suivante

Description

resource ldap_next_reference ( resource $link , resource $entry )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Extrait les informations d'une référence d'entrée

  • « ldap_next_reference
  • ldap_parse_result »
  • PHP Manual
  • Fonctions LDAP
  • Extrait les informations d'une référence d'entrée

ldap_parse_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_parse_reference — Extrait les informations d'une référence d'entrée

Description

bool ldap_parse_reference ( resource $link , resource $entry , array &$referrals )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Extrait des informations d'un résultat

  • « ldap_parse_reference
  • ldap_read »
  • PHP Manual
  • Fonctions LDAP
  • Extrait des informations d'un résultat

ldap_parse_result

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_parse_result — Extrait des informations d'un résultat

Description

bool ldap_parse_result ( resource $link , resource $result , int &$errcode [, string &$matcheddn [, string &$errmsg [, array &$referrals ]]] )

Analyse un résultat de recherche LDAP.

Liste de paramètres

link

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_identifier

Une ressource de résultat LDAP, retournée par la fonction ldap_list() ou la fonction ldap_search().

errcode

Une référence vers une variable qui sera valorisée du code erreur LDAP dans le résultat, ou par 0 si aucune erreur n'est survenue.

matcheddn

Une référence vers une variable qui sera valorisée du DN correspondant s'il a été reconnu dans la requête, sinon, vaudra NULL.

errmsg

Une référence vers une variable qui sera valorisée du message d'erreur LDAP dans le résultat, ou d'une chaîne vide si aucune erreur n'est survenue.

referrals

Une référence vers une variable qui sera valorisée d'un jeu de tableaux contenant les chaînes de référence dans le résultat, ou un tableau vide si aucune référence n'est retournée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ldap_parse_result()

<?php
$result = ldap_search($link, "cn=userref,dc=my-domain,dc=com", "(cn=user*)");
$errcode = $dn = $errmsg = $refs =  null;
if (ldap_parse_result($link, $result, $errcode, $dn, $errmsg, $refs)) {
    // faîtes quelques choses avec $errcode, $dn, $errmsg et $refs
}
?>


Lit une entrée

  • « ldap_parse_result
  • ldap_rename »
  • PHP Manual
  • Fonctions LDAP
  • Lit une entrée

ldap_read

(PHP 4, PHP 5, PHP 7)

ldap_read — Lit une entrée

Description

resource ldap_read ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

Effectue une recherche avec le filtre filter dans le dossier base_dn avec la configuration LDAP_SCOPE_BASE. C'est équivalent à lire une entrée dans un dossier.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

base_dn

La base DN du dossier.

filter

Un filtre ne peut être vide. Si vous voulez lire toutes les informations d'une entrée, utilisez le filtre "objectClass=*". Si vous savez quels sont les types qui sont utilisés dans le serveur de dossiers, vous pouvez aussi utiliser un filtre approprié, comme "objectClass=inetOrgPerson".

attributes

Un tableau d'attributs requis, e.g. array("mail", "sn", "cn"). Notez que le "dn" est toujours retourné, quelque soit le type de l'attribut demandé.

L'utilisation de ce paramètre est plus efficace que l'action par défaut (qui est de retourner tous les attributs ainsi que leurs valeurs associées). L'utilisation de ce paramètre doit pour cette raison être considéré comme une bonne pratique.

attrsonly

Doit être défini à 1 si seuls les types des attributs sont demandés. S'il est défini à 0, les types et les valeurs des attributs sont récupérés, ce qui correspond au comportement par défaut.

sizelimit

Vous permet de limiter le nombre d'entrées à récupérer. Le fait de définir ce paramètre à 0 signifie qu'il n'y aura aucune limite.

Note:

Ce paramètre ne peut pas écraser la configuration côté serveur. Vous pouvez cependant positionner une valeur inférieure.

Quelques dossiers serveurs peuvent être configurés afin de ne retourner qu'un nombre d'entrées données. Si ce comportement survient, le serveur indique qu'il n'a retourné qu'un jeu de résultats partiel. Ce comportement intervient également si vous utilisez ce paramètre pour limiter le nombre d'entrées récupérées.

timelimit

Définit le nombre maximal de secondes permis pour la recherche. Le fait de définir ce paramètre à 0 signifie qu'il n'y a pas de limite.

Note:

Ce paramètre ne peut pas écraser la configuration côté serveur mais vous pouvez l'utiliser pour être plus restrictif.

deref

Spécifie le nombre d'alias qui doivent être gérés pendant la recherche. Il peut être un parmi les suivants :

  • LDAP_DEREF_NEVER - (défaut) les alias ne sont jamais déréférencés.
  • LDAP_DEREF_SEARCHING - les alias doivent être déréférencés pendant la recherche mais pas lors de la localisation de l'objet de base de la recherche.
  • LDAP_DEREF_FINDING - les alias doivent être déréférencés lors de la localisation de l'objet de base mais pas durant la recherche.
  • LDAP_DEREF_ALWAYS - les alias doivent toujours être déréférencés.

Valeurs de retour

Retourne un identifiant de résultat de recherche, ou FALSE si une erreur survient.

Historique

Version | Description
4.0.5 | Les recherches parallèles ont été ajoutées. Voir la fonction ldap_search() pour plus de détails.


Modifie le nom d'une entrée

  • « ldap_read
  • ldap_sasl_bind »
  • PHP Manual
  • Fonctions LDAP
  • Modifie le nom d'une entrée

ldap_rename

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_rename — Modifie le nom d'une entrée

Description

bool ldap_rename ( resource $link_identifier , string $dn , string $newrdn , string $newparent , bool $deleteoldrdn )

Modifie l'entrée dn, autant pour son nom que pour sa localisation.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

newrdn

Le nouveau RDN.

newparent

La nouvelle entrée parent/supérieure.

deleteoldrdn

Si ce paramètre vaut TRUE, l'ancienne valeur RDN est supprimée. Sinon elle est conservée comme une valeur non distinguée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

ldap_rename() ne fonctionne actuellement qu'avec LDAPv3. Vous pouvez être obligé d'utiliser ldap_set_option() avant de vous lier pour pouvoir utiliser LDAPv3. Cette fonction est uniquement disponible lorsque vous utilisez OpenLDAP 2.x.x OU Netscape Directory SDK x.x.

Voir aussi

  • ldap_modify() - Modifie une entrée LDAP


Authentification au serveur LDAP en utilisant SASL

  • « ldap_rename
  • ldap_search »
  • PHP Manual
  • Fonctions LDAP
  • Authentification au serveur LDAP en utilisant SASL

ldap_sasl_bind

(PHP 5, PHP 7)

ldap_sasl_bind — Authentification au serveur LDAP en utilisant SASL

Description

bool ldap_sasl_bind ( resource $link [, string $binddn = NULL [, string $password = NULL [, string $sasl_mech = NULL [, string $sasl_realm = NULL [, string $sasl_authc_id = NULL [, string $sasl_authz_id = NULL [, string $props = NULL ]]]]]]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Conditions d'utilisation
ldap_sasl_bind() nécessite le support SASL (sasl.h). Assurez-vous que l'option de configuration --with-ldap-sasl est utilisée lors de la compilation de PHP, sinon, cette fonction ne sera pas définie.

Historique

Version | Description
5.3.3 | Le support Windows a été ajouté.


Recherche sur le serveur LDAP

  • « ldap_sasl_bind
  • ldap_set_option »
  • PHP Manual
  • Fonctions LDAP
  • Recherche sur le serveur LDAP

ldap_search

(PHP 4, PHP 5, PHP 7)

ldap_search — Recherche sur le serveur LDAP

Description

resource ldap_search ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

Effectue une recherche avec le filtre filter dans le dossier base_dn avec le paramétrage LDAP_SCOPE_SUBTREE. C'est l'équivalent d'une recherche dans le dossier.

Depuis PHP 4.0.5, il est possible de faire des recherches parallèles. Pour cela, vous devez utiliser un tableau de ressources de connexion comme premier argument, au lieu d'une ressource simple. Si vous ne voulez pas utiliser le même dossier de base DN et le même filtre pour toutes les recherches, vous pouvez aussi utiliser un tableau de DN et de filtres. Ces tableaux doivent alors être de la même taille que le tableau de ressources de connexion : la première entrée du tableau de ressources sera utilisée avec le premier DN et le premier filtre, etc. Lorsque vous faites une recherche parallèle, un tableau de résultats est retourné, sauf en cas d'erreur, auquel cas l'entrée contiendra FALSE. C'est très proche du comportement habituel, hormis le fait qu'un résultat est toujours retourné lorsqu'une recherche est faite. Il y a de rares cas où une recherche renvoie FALSE, alors qu'une autre en parallèle retourne un identifiant.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

base_dn

La base DN pour le dossier.

filter

Le filtre de recherche peut être simple ou avancé, et utiliser ces opérateurs booléen au format décrit dans la documentation LDAP (reportez-vous à » Netscape Directory SDK ou » RFC4515 pour plus d'informations sur les filtres).

attributes

Un tableau d'attributs requis, e.g. array("mail", "sn", "cn"). Notez que le "dn" est toujours retourné, quel que soit le type de l'attribut demandé.

L'utilisation de ce paramètre est plus efficace que l'action par défaut (qui est de retourner tous les attributs ainsi que leurs valeurs associées). L'utilisation de ce paramètre doit pour cette raison être considéré comme une bonne pratique.

attrsonly

Doit être défini à 1 si seuls les types des attributs sont demandés. S'il est défini à 0, les types et les valeurs des attributs sont récupérés, ce qui correspond au comportement par défaut.

sizelimit

Vous permet de limiter le nombre d'entrées à récupérer. Le fait de définir ce paramètre à 0 signifie qu'il n'y aura aucune limite.

Note:

Ce paramètre ne peut pas écraser la configuration côté serveur. Vous pouvez cependant positionner une valeur inférieure.

Quelques dossiers serveurs peuvent être configurés afin de ne retourner qu'un nombre d'entrées données. Si ce comportement survient, le serveur indique qu'il n'a retourné qu'un jeu de résultats partiel. Ce comportement intervient également si vous utilisez ce paramètre pour limiter le nombre d'entrées récupérées.

timelimit

Définit le nombre maximal de secondes permis pour la recherche. Le fait de définir ce paramètre à 0 signifie qu'il n'y a pas de limite.

Note:

Ce paramètre ne peut pas écraser la configuration côté serveur mais vous pouvez l'utiliser pour être plus restrictif.

deref

Spécifie le nombre d'alias qui doivent être gérés pendant la recherche. Il peut être un parmi les suivants :

  • LDAP_DEREF_NEVER - (défaut) les alias ne sont jamais déréférencés. dereferenced.
  • LDAP_DEREF_SEARCHING - les alias doivent être déréférencés pendant la recherche mais pas lors de la localisation de l'objet de base de la recherche.
  • LDAP_DEREF_FINDING - les alias doivent être déréférencés lors de la localisation de l'objet de base mais pas durant la recherche.
  • LDAP_DEREF_ALWAYS - les alias doivent toujours être déréférencés.

Valeurs de retour

Retourne un identifiant de recherche ou FALSE si une erreur survient.

Exemples

L'exemple ci-dessous lit le nom du service, le nom, le prénom et l'email des employés de la société "Ma Compagnie", dont le nom ou le prénom contient la sous-chaîne : $person. Cet exemple illustre l'utilisation de filtres pour indiquer au serveur de faire une recherche sur deux attributs.

Exemple #1 Recherche LDAP

<?php
// $ds doit être une ressource de connexion valide

// $person est un nom ou une partie de nom (par exemple, "Jean")

$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("ou", "sn", "givenname", "mail");

$sr=ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

echo $info["count"]." entries returned\n";
?>


Modifie la valeur d'une option LDAP

  • « ldap_search
  • ldap_set_rebind_proc »
  • PHP Manual
  • Fonctions LDAP
  • Modifie la valeur d'une option LDAP

ldap_set_option

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ldap_set_option — Modifie la valeur d'une option LDAP

Description

bool ldap_set_option ( resource $link_identifier , int $option , mixed $newval )

Modifie la valeur de l'option option en remplaçant la valeur courante par newval.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

option

Le paramètre option peut prendre l'une des valeurs suivantes :

Option | Type | Disponible depuis
LDAP_OPT_DEREF | entier
LDAP_OPT_SIZELIMIT | entier
LDAP_OPT_TIMELIMIT | entier
LDAP_OPT_NETWORK_TIMEOUT | entier | PHP 5.3.0
LDAP_OPT_PROTOCOL_VERSION | entier
LDAP_OPT_ERROR_NUMBER | entier
LDAP_OPT_REFERRALS | booléen
LDAP_OPT_RESTART | booléen
LDAP_OPT_HOST_NAME | chaîne de caractères
LDAP_OPT_ERROR_STRING | chaîne de caractères
LDAP_OPT_DIAGNOSTIC_MESSAGE | string
LDAP_OPT_MATCHED_DN | chaîne de caractères
LDAP_OPT_SERVER_CONTROLS | tableau
LDAP_OPT_CLIENT_CONTROLS | tableau
LDAP_OPT_X_KEEPALIVE_IDLE | int
LDAP_OPT_X_KEEPALIVE_PROBES | int
LDAP_OPT_X_KEEPALIVE_INTERVAL | int
LDAP_OPT_X_TLS_CACERTDIR | string
LDAP_OPT_X_TLS_CACERTFILE | string
LDAP_OPT_X_TLS_CERTFILE | string
LDAP_OPT_X_TLS_CIPHER_SUITE | string
LDAP_OPT_X_TLS_CRLCHECK | integer
LDAP_OPT_X_TLS_CRLFILE | string
LDAP_OPT_X_TLS_DHFILE | string
LDAP_OPT_X_TLS_KEYILE | string
LDAP_OPT_X_TLS_PROTOCOL_MIN | integer
LDAP_OPT_X_TLS_RANDOM_FILE | string
LDAP_OPT_X_TLS_REQUIRE_CERT | integer

Les options LDAP_OPT_SERVER_CONTROLS et LDAP_OPT_CLIENT_CONTROLS requièrent une liste de contrôles, ce qui signifie que la valeur doit être un tableau de contrôles. Un contrôle est constitué d'un oid l'identifiant, une valeur optionnelle value, et un flag optionnel de "criticalité" (criticality). En PHP, un contrôle est défini sous la forme d'un tableau, donc les clés sont oid avec une chaîne comme valeur, et deux clés optionnelles. Ces clés sont value avec une chaîne comme valeur, et iscritical avec une valeur booléenne. Par défaut, iscritical vaut FALSE. Voir le fichier » draft-ietf-ldapext-ldap-c-api-xx.txt pour plus de détails. Reportez-vous au second exemple pour une illustration.

newval

La nouvelle valeur pour l'option option spécifiée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Modification de la version du protocole

<?php
// $ds doit être une ressource de connexion valide
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
    echo "Version LDAPv3";
} else {
    echo "Impossible de modifier la version du protocole à 3";
}
?>

Exemple #2 Modification des contrôles du serveur

<?php
// $ds doit être une ressource de connexion valide de
// contrôle sans valeur
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => true);
// iscritical vaut par défaut FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// tente d'utiliser les deux contrôles
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2))) {
    echo "Impossible de modifier les contrôles du serveur";
}
?>

Notes

Note:

Cette fonction n'est disponible que lorsque vous utilisez OpenLDAP 2.x.x ou Netscape Directory SDK x.x.

Voir aussi

  • ldap_get_option() - Lit/écrit la valeur courante d'une option


Configure une fonction de retour pour refaire des liaisons lors de recherche de référants

  • « ldap_set_option
  • ldap_sort »
  • PHP Manual
  • Fonctions LDAP
  • Configure une fonction de retour pour refaire des liaisons lors de recherche de référants

ldap_set_rebind_proc

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ldap_set_rebind_proc — Configure une fonction de retour pour refaire des liaisons lors de recherche de référants

Description

bool ldap_set_rebind_proc ( resource $link , callable $callback )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Trie les entrées d'un résultat LDAP

  • « ldap_set_rebind_proc
  • ldap_start_tls »
  • PHP Manual
  • Fonctions LDAP
  • Trie les entrées d'un résultat LDAP

ldap_sort

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ldap_sort — Trie les entrées d'un résultat LDAP

Description

bool ldap_sort ( resource $link , resource $result , string $sortfilter )

Trie le résultat d'une recherche LDAP, retournée par la fonction ldap_search().

Liste de paramètres

link

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result

Un identifiant de recherche LDAP, retourné par la fonction ldap_search().

sortfilter

L'attribut à utiliser comme clé lors du tri.

Exemples

Trie le résultat d'une recherche.

Exemple #1 Tri LDAP

<?php
// $ds est un identifiant de lien valide (voir ldap_connect)

$dn        = 'ou=example,dc=org';
$filter    = '(|(sn=Doe*)(givenname=John*))';
$justthese = array('ou', 'sn', 'givenname', 'mail');

$sr = ldap_search($ds, $dn, $filter, $justthese);

// Trie
ldap_sort($ds, $sr, 'sn');

// Récupération des données
$info = ldap_get_entries($ds, $sr);


Démarre TLS

  • « ldap_sort
  • ldap_t61_to_8859 »
  • PHP Manual
  • Fonctions LDAP
  • Démarre TLS

ldap_start_tls

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ldap_start_tls — Démarre TLS

Description

bool ldap_start_tls ( resource $link )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Convertit les caractères t61 en caractères 8859

  • « ldap_start_tls
  • ldap_unbind »
  • PHP Manual
  • Fonctions LDAP
  • Convertit les caractères t61 en caractères 8859

ldap_t61_to_8859

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ldap_t61_to_8859 — Convertit les caractères t61 en caractères 8859

Description

string ldap_t61_to_8859 ( string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Déconnecte d'un serveur LDAP

  • « ldap_t61_to_8859
  • Memcache »
  • PHP Manual
  • Fonctions LDAP
  • Déconnecte d'un serveur LDAP

ldap_unbind

(PHP 4, PHP 5, PHP 7)

ldap_unbind — Déconnecte d'un serveur LDAP

Description

bool ldap_unbind ( resource $link_identifier )

Déconnecte d'un serveur LDAP.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ldap_bind() - Authentification au serveur LDAP


Memcache

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation basique
  • Memcache — La classe Memcache
    • Memcache::add — Ajoute un élément dans le server
    • Memcache::addServer — Ajoute un serveur memcache à la liste de connexion
    • Memcache::close — Ferme la connexion avec le serveur Memcache
    • Memcache::connect — Ouvre une connexion avec le serveur Memcache
    • Memcache::decrement — Décrémente la valeur d'un élément
    • Memcache::delete — Efface un élément du serveur de cache
    • Memcache::flush — Efface tous les éléments existant sur le serveur de cache
    • Memcache::get — Récupère un élément du serveur de cache
    • Memcache::getExtendedStats — Récupère des statistiques de tous les serveurs dans la liste
    • Memcache::getServerStatus — Retourne le statut du serveur
    • Memcache::getStats — Lit les statistiques du serveur
    • Memcache::getVersion — Retourne le numéro de version du serveur
    • Memcache::increment — Incrément la valeur d'un élément
    • Memcache::pconnect — Ouvre un connexion persistante à un serveur de cache
    • Memcache::replace — Remplace une valeur d'un élément existant
    • Memcache::set — Stocke des données dans le serveur de cache
    • Memcache::setCompressThreshold — Active la compression automatique des valeurs larges
    • Memcache::setServerParams — Modifit les paramètres et les statuts du serveur pendant l'exécution
  • Fonctions Memcache
    • memcache_debug — Active ou non l'affichage des informations de déboguage


Introduction

Le module Memcache fournit une interface procédurale maniable ainsi qu'orientée objet à Memcache, un démon fortement efficace dans la gestion du cache, qui est principalement destiné à faire baisser la charge des bases de données dans les applications web dynamiques.

Le module Memcache fournit également un gestionnaire de session (memcache).

Plus d'informations concernant Memcache peuvent être consultées sur » http://www.memcached.org/.


Pré-requis

Ce module utilise les fonctions de la bibliothèque » zlib pour supporter la compression des données à la volée. Zlib est donc requis pour installer ce module.

PHP 4.3.3 ou supérieur est requis pour utiliser l'extension Memcache.


Installation

Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/memcache.

Note:

Il est possible de désactiver le support du gestionnaire de sessions memcache. L'option 'pecl install' vous le permet (activé par défaut), cependant, lors de la compilation statique dans PHP, l'option de configuration --disable-memcache-session peut être utilisée.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration memcache
Nom | Défaut | Modifiable | Historique
memcache.allow_failover | "1" | PHP_INI_ALL | Disponible depuis memcache 2.0.2.
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Disponible depuis memcache 2.1.0.
memcache.chunk_size | "8192" | PHP_INI_ALL | Disponible depuis memcache 2.0.2.
memcache.default_port | "11211" | PHP_INI_ALL | Disponible depuis memcache 2.0.2.
memcache.hash_strategy | "standard" | PHP_INI_ALL | Disponible depuis memcache 2.2.0.
memcache.hash_function | "crc32" | PHP_INI_ALL | Disponible depuis memcache 2.2.0.
session.save_handler | "files" | PHP_INI_ALL | Supporté depuis memcache 2.1.2
session.save_path | "" | PHP_INI_ALL | Supporté depuis memcache 2.1.2
memcache.protocol | ascii | PHP_INI_ALL | Supporté depuis memcache 3.0.0
memcache.redundancy | 1 | PHP_INI_ALL | Supporté depuis memcache 3.0.0
memcache.session_redundancy | 2 | PHP_INI_ALL | Supporté depuis memcache 3.0.0
memcache.compress_threshold | 20000 | PHP_INI_ALL | Supporté depuis memcache 3.0.3
memcache.lock_timeout | 15 | PHP_INI_ALL | Supporté depuis memcache 3.0.4
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

memcache.allow_failover booléen

Si l'on doit basculer sur d'autres serveurs en cas d'erreur.

memcache.max_failover_attempts entier

Définit combien de serveurs à essayer lorsque l'on fixe ou récupère des données. Utilisez seulement en conjonction avec memcache.allow_failover.

memcache.chunk_size entier

Les données doivent être transférées en morceaux de cette taille ; Configurer cette valeur à une petite valeur provoque plus d'écritures sur le réseau. Essayez d'augmenter cette valeur à 32768 si vous rencontrez des ralentissements inexplicables.

memcache.default_port chaîne de caractères

Le numéro du port TCP par défaut à utiliser lors de la connexion au serveur memcache si aucun autre port n'est spécifié.

memcache.hash_strategy string

Contrôle la stratégie à appliquer lors du mappage des clés sur les serveurs. Définir cette valeur à consistent pour activer la cohérence de hashage qui permet aux serveurs d'être ajoutés ou supprimés de la réserver sans pour autant avoir besoin d'effectuer un nouveau mappage des clés. Définir cette valeur à standard fera que l'ancienne stratégie sera utilisée.

memcache.hash_function string

Contrôle la fonction de hashage à appliquer lors du mappage des clés sur les serveurs, crc32 utilisera le CRC32 standard, tandis que fnv utilisera FNV-1a.

session.save_handler chaîne de caractères

Utilisez memcache comme gestionnaire de session en définissant cette valeur à memcache.

session.save_path chaîne de caractères

Définit les URL serveur, séparées par une virgule, à utiliser pour le stockage des sessions, par exemple : "tcp://host1:11211, tcp://host2:11211".

Chaque URL peut contenir des paramètres qui seront appliqués au serveur, de la même façon que pour la méthode Memcache::addServer(). Par exemple : "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

memcache.protocol string

memcache.redundancy integer

memcache.session_redundancy integer

memcache.compress_threshold integer

memcache.lock_timeout integer


Types de ressources

Il n'y a qu'une seule ressource utilisée par le module Memcache : c'est le lien identifiant représentant la connexion du serveur de cache.


Constantes pré-définies

Constantes MemCache
Nom | Description
MEMCACHE_COMPRESSED (entier) | Utilisée pour activer à la volée la compression des données avec les fonctions Memcache::set(), Memcache::add() et Memcache::replace().
MEMCACHE_HAVE_SESSION (entier) | 1 si le gestionnaire de session Memcache est disponible, 0 sinon.
MEMCACHE_USER1 (entier) | Utilisé pour activer les drapeaux d'application définis par les utilisateurs, avec les méthodes Memcache::set(), Memcache::add() et Memcache::replace().
MEMCACHE_USER2 (entier) | Utilisé pour activer les drapeaux d'application définis par les utilisateurs, avec les méthodes Memcache::set(), Memcache::add() et Memcache::replace().
MEMCACHE_USER3 (entier) | Utilisé pour activer les drapeaux d'application définis par les utilisateurs, avec les méthodes Memcache::set(), Memcache::add() et Memcache::replace().
MEMCACHE_USER4 (entier) | Utilisé pour activer les drapeaux d'application définis par les utilisateurs, avec les méthodes Memcache::set(), Memcache::add() et Memcache::replace().


  • « Constantes pré-définies
  • Utilisation basique »
  • PHP Manual
  • Memcache
  • Exemples

Exemples

Sommaire

  • Utilisation basique


Utilisation basique

Exemple #1 Exemple avec l'extension Memcache

Dans cet exemple, un objet est sauvegardé dans le cache et ensuite, affiché. Les objets ainsi que les autres types non-scalaires sont linéarisés avant d'être sauvegardé ; il est donc impossible d'y stocker des ressources (i.e. identifiant de connexion et autres) dans le cache.

<?php

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Connexion impossible");

$version = $memcache->getVersion();
echo "Version du serveur : ".$version."<br/>\n";

$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;

$memcache->set('key', $tmp_object, false, 10) or die ("Echec de la sauvegarde des données sur le serveur");
echo "Les données ont été stockées dans le cache (les données expireront dans 10 secondes)<br/>\n";

$get_result = $memcache->get('key');
echo "Données depuis le cache :<br/>\n";

var_dump($get_result);

?>

Exemple #2 Utilisation de memcache comme gestionnaire de session

<?php

$session_save_path = "tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10,  ,tcp://$host:$port  ";
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', $session_save_path);

?>


La classe Memcache

(PECL memcache >= 0.2.0)

Introduction

Représente une connexion vers un pool de serveurs memcache.

Synopsis de la classe

Memcache {
bool add ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool addServer ( string $host [, int $port = 11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callable $failure_callback [, int $timeoutms ]]]]]]]] )
bool close ( void )
bool connect ( string $host [, int $port [, int $timeout ]] )
int decrement ( string $key [, int $value = 1 ] )
bool delete ( string $key [, int $timeout = 0 ] )
bool flush ( void )
string get ( string $key [, int &$flags ] )
array getExtendedStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )
int getServerStatus ( string $host [, int $port = 11211 ] )
array getStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )
string getVersion ( void )
int increment ( string $key [, int $value = 1 ] )
mixed pconnect ( string $host [, int $port [, int $timeout ]] )
bool replace ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool set ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool setCompressThreshold ( int $threshold [, float $min_savings ] )
bool setServerParams ( string $host [, int $port = 11211 [, int $timeout [, int $retry_interval = false [, bool $status [, callable $failure_callback ]]]]] )
}

Sommaire

  • Memcache::add — Ajoute un élément dans le server
  • Memcache::addServer — Ajoute un serveur memcache à la liste de connexion
  • Memcache::close — Ferme la connexion avec le serveur Memcache
  • Memcache::connect — Ouvre une connexion avec le serveur Memcache
  • Memcache::decrement — Décrémente la valeur d'un élément
  • Memcache::delete — Efface un élément du serveur de cache
  • Memcache::flush — Efface tous les éléments existant sur le serveur de cache
  • Memcache::get — Récupère un élément du serveur de cache
  • Memcache::getExtendedStats — Récupère des statistiques de tous les serveurs dans la liste
  • Memcache::getServerStatus — Retourne le statut du serveur
  • Memcache::getStats — Lit les statistiques du serveur
  • Memcache::getVersion — Retourne le numéro de version du serveur
  • Memcache::increment — Incrément la valeur d'un élément
  • Memcache::pconnect — Ouvre un connexion persistante à un serveur de cache
  • Memcache::replace — Remplace une valeur d'un élément existant
  • Memcache::set — Stocke des données dans le serveur de cache
  • Memcache::setCompressThreshold — Active la compression automatique des valeurs larges
  • Memcache::setServerParams — Modifit les paramètres et les statuts du serveur pendant l'exécution


Ajoute un élément dans le server

  • « Memcache
  • Memcache::addServer »
  • PHP Manual
  • Memcache
  • Ajoute un élément dans le server

Memcache::add

(PECL memcache >= 0.2.0)

Memcache::add — Ajoute un élément dans le server

Description

bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )

Memcache::add() stocke la variable var avec la clé key seulement si cette clé n'existe pas déja dans le serveur. La fonction memcache_add() exécute la même action.

Liste de paramètres

key

La clé à associer à l'élément.

var

La variable à stocker. Les chaines et les entiers sont stockés tel quels, les autres types sont sérialisés.

flag

Utilisez MEMCACHE_COMPRESSED pour compresser l'élément (utilise zlib).

expire

Temps d'expiration de l'élément. Si égal à zéro, l'élément n'expirera jamais. Vous pouvez aussi utiliser un timestamp Unix ou un nombre de secondes partant du temps actuel, mais dans ce cas le nombre de secondes ne doit pas exceder 2592000 (30 jours).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Retourne FALSE si la clé existe déja. Pour le reste, le comportement de Memcache::add() est le même que Memcache::set().

Exemples

Exemple #1 Exemple avec Memcache::add()

<?php

$memcache_obj = memcache_connect("localhost", 11211);

/* procedural API */
memcache_add($memcache_obj, 'var_key', 'test variable', false, 30);

/* OO API */
$memcache_obj->add('var_key', 'test variable', false, 30);

?>

Voir aussi

  • Memcache::set() - Stocke des données dans le serveur de cache
  • Memcache::replace() - Remplace une valeur d'un élément existant


Ajoute un serveur memcache à la liste de connexion

  • « Memcache::add
  • Memcache::close »
  • PHP Manual
  • Memcache
  • Ajoute un serveur memcache à la liste de connexion

Memcache::addServer

(PECL memcache >= 2.0.0)

Memcache::addServer — Ajoute un serveur memcache à la liste de connexion

Description

bool Memcache::addServer ( string $host [, int $port = 11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callable $failure_callback [, int $timeoutms ]]]]]]]] )

Memcache::addServer() ajoute un serveur à la liste de connexion.

Lors de l'utilisation de cette méthode (contrairement aux méthodes Memcache::connect() et Memcache::pconnect()), la connexion au réseau n'est pas établie sans qu'elle ne soit nécessaire. De plus, il n'y a aucun inconvénient à ajouter beaucoup de serveurs à la liste, même s'ils ne seront pas tous utilisés.

Le basculement peut se produire à n'importe quel moment avec n'importe quelle méthode tant que les autres serveurs sont disponibles, la requête n'émettra pas d'erreur. N'importe quel interface de connexion ou niveau d'erreurs de serveur Memcache (à l'exception du manque de mémoire) peut lancer le basculement. Des erreurs normales de client comme l'ajout d'une clé existante ne lancera pas un basculement.

Note:

Cette fonction a été ajoutée à la version de Memcache 2.0.0.

Liste de paramètres

host

Pointe à l'hôte où memcache écoute pour des connexions. Ce paramètre peut également spécifier d'autres transporteurs comme unix:///path/to/memcached.sock pour utiliser les sockets Unix, et dans ce cas, port doit également être défini à 0.

port

Pointe au port où memcache écoute pour des connexions. Définissez ce paramètre à 0 lors de l'utilisation des sockets Unix.

Note : Par défaut, le paramètre port prend la valeur de l'option de configuration memcache.default_port lorsqu'il n'est pas spécifié. Pour cette raison, il convient de spécifier explicitement le port lors de l'appel à cette méthode.

persistent

Contrôle l'utilisation d'une connexion persistante. La valeur par défaut est TRUE.

weight

Nombre d'entrées à créer pour ce serveur qui en retour contrôle sa probabilité d'être choisi. La probabilité est relative au poids total de tous les serveurs.

timeout

Valeur en seconde qui sera utilisée pour se connecter au démon. Pensez-y deux fois avant de changer la valeur par défaut d'une seconde - vous pourriez perdre tous les avantages de l'utilisation de la cache si votre connexion est trop lente.

retry_interval

Contrôle combien de fois un serveur qui échoue sera tenté à nouveau, la valeur par défaut est de 15 secondes. Si ce paramètre vaut -1, aucune nouvelle tentative ne sera effectuée. Ni ce paramètre, ni le paramètre persistent n'ont d'effet lorsque cette extension est chargée dynamiquement via la fonction dl().

Chaque structure de connexion échouée a son propre dépassement de temps et avant que celui-ci expire, il sera sauté lors de la sélection du processus pour servir une requête. Une fois expiré, la connexion sera correctement reconnectée ou marquée comme échouée pour un autre intervalle de retry_interval secondes. L'effet typique est que chaque enfant de serveur Web essaiera la connexion chaque retry_interval secondes lorsqu'il sert une page.

status

Contrôle si le serveur doit être indiqué comme étant en ligne. Quand ce paramètre vaut FALSE et le paramètre retry_interval vaut -1, cela permet de conserver un serveur qui a échoué dans la liste et n'affectera pas l'algorithme de distribution des clés. Les demandes pour ce serveur échoueront immédiatement suivant la configuration du paramètre memcache.allow_failover. Par défaut, ce paramètre vaut TRUE, signifiant que le serveur doit être considéré comme étant en ligne.

failure_callback

Permet à l'utilisateur de spécifier une fonction de rappel permettant de contourner une erreur. La fonction de rappel est exécutée avant d'atteindre la limite de tentative. La fonction prend deux paramètres ; le nom de l'hôte et le port du serveur qui a échoué.

timeoutms

Notes

Avertissement

Lorsque le paramètre port n'est pas spécifié, cette méthode prendra la valeur de la directive de configuration INI memcache.default_port. Si cette valeur a été modifiée à un autre endroit dans votre application, cela peut conduire à des résultats innatendus : pour cette raison, il convient de toujours spécifier le port explicitement lors de l'appel à la méthode.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::addServer()

<?php

/* API orientée objet */

$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
$memcache->addServer('memcache_host2', 11211);

/* API procédurale */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_add_server($memcache_obj, 'memcache_host2', 11211);

?>

Voir aussi

  • Memcache::connect() - Ouvre une connexion avec le serveur Memcache
  • Memcache::pconnect() - Ouvre un connexion persistante à un serveur de cache
  • Memcache::close() - Ferme la connexion avec le serveur Memcache
  • Memcache::setServerParams() - Modifit les paramètres et les statuts du serveur pendant l'exécution
  • Memcache::getServerStatus() - Retourne le statut du serveur


Ferme la connexion avec le serveur Memcache

  • « Memcache::addServer
  • Memcache::connect »
  • PHP Manual
  • Memcache
  • Ferme la connexion avec le serveur Memcache

Memcache::close

(PECL memcache >= 0.4.0)

Memcache::close — Ferme la connexion avec le serveur Memcache

Description

bool Memcache::close ( void )

Memcache::close() ferme la connexion au serveur Memcache. Cette fonction ne ferme pas les connexions persistantes qui seront fermées uniquement lors du redémarrage du serveur web. Vous pouvez également utiliser la fonction memcache_close().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::close()

<?php

/* API procédurale */
$memcache_obj = memcache_connect('memcache_host', 11211);
/*
faites quelque chose ici ..
*/
memcache_close($memcache_obj);

/* API orientée objet */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/*
faites quelque chose ici ..
*/
$memcache_obj->close();

?>

Voir aussi

  • Memcache::connect() - Ouvre une connexion avec le serveur Memcache
  • Memcache::pconnect() - Ouvre un connexion persistante à un serveur de cache


Ouvre une connexion avec le serveur Memcache

  • « Memcache::close
  • Memcache::decrement »
  • PHP Manual
  • Memcache
  • Ouvre une connexion avec le serveur Memcache

Memcache::connect

(PECL memcache >= 0.2.0)

Memcache::connect — Ouvre une connexion avec le serveur Memcache

Description

bool Memcache::connect ( string $host [, int $port [, int $timeout ]] )

Memcache::connect() établie une connexion avec le serveur de cache Memcache. La connexion, qui a été ouverte en utilisant la fonction Memcache::connect() sera automatiquement fermée à la fin de votre script. Vous pouvez néanmoins la refermer en utilisant la fonction Memcache::close(). Vous pouvez également utiliser la fonction memcache_connect().

Liste de paramètres

host

Pointe à l'hôte où memcache écoute pour des connexions. Ce paramètre peut également spécifier d'autres transporteurs comme unix:///path/to/memcached.sock pour utiliser les sockets Unix, et, dans ce cas, port doit également être définit à 0.

port

Pointe au port où memcache écoute pour des connexions. Définissez ce paramètre à 0 lors de l'utilisation des sockets Unix.

Note : Par défaut, le paramètre port prend la valeur de l'option de configuration memcache.default_port s'il n'est pas spécifié. Pour cette raison, il convient de spécifier explicitement le port lors de l'appel à cette méthode.

timeout

Valeur en seconde qui sera utilisée pour se connecter au démon. Pensez-y deux fois avant de changer la valeur par défaut d'une seconde - vous pourriez perdre tous les avantages de l'utilisation de la cache si votre connexion est trop lente.

Notes

Avertissement

Lorsque le paramètre port n'est pas spécifié, cette méthode prendra la valeur de la directive de configuration INI memcache.default_port. Si cette valeur a été modifiée à un autre endroit dans votre application, cela peut conduire à des résultats innatendus : pour cette raison, il convient de toujours spécifier le port explicitement lors de l'appel à la méthode.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::connect()

<?php

/* API procédurale */

$memcache_obj = memcache_connect('memcache_host', 11211);

/* API orientée objet */

$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);

?>

Voir aussi

  • Memcache::pconnect() - Ouvre un connexion persistante à un serveur de cache
  • Memcache::close() - Ferme la connexion avec le serveur Memcache


Décrémente la valeur d'un élément

  • « Memcache::connect
  • Memcache::delete »
  • PHP Manual
  • Memcache
  • Décrémente la valeur d'un élément

Memcache::decrement

(PECL memcache >= 0.2.0)

Memcache::decrement — Décrémente la valeur d'un élément

Description

int Memcache::decrement ( string $key [, int $value = 1 ] )

Memcache::decrement() décrémente la valeur de l'élément par value. De la même façon que la fonction memcache::increment(), la valeur courante de l'élément est tout d'abord convertie en numérique et seulement ensuite, on soustrait la valeur value.

Note:

La nouvelle valeur de l'élément ne peut être inférieure à zéro.

Note:

N'utilisez pas la fonction Memcache::decrement() avec les éléments stockés compressés. Dans ce cas, l'appel à la fonction Memcache::get() échouera.

Memcache::decrement() ne crée pas d'élément s'il n'existe pas. Vous pouvez également utiliser la fonction memcache_decrement().

Liste de paramètres

key

Clé de l'élément à décrémenter.

value

Décrémente l'élément par value.

Valeurs de retour

Retourne la valeur du nouvel élément en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::decrement()

<?php

/* API proécédurale */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* décrémentation de l'élément par 2 */
$new_value = memcache_decrement($memcache_obj, 'test_item', 2);

/* API orientée objet */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* décrémentation de l'élément par 3 */
$new_value = $memcache_obj->decrement('test_item', 3);
?>

Voir aussi

  • Memcache::increment() - Incrément la valeur d'un élément
  • Memcache::replace() - Remplace une valeur d'un élément existant


Efface un élément du serveur de cache

  • « Memcache::decrement
  • Memcache::flush »
  • PHP Manual
  • Memcache
  • Efface un élément du serveur de cache

Memcache::delete

(PECL memcache >= 0.2.0)

Memcache::delete — Efface un élément du serveur de cache

Description

bool Memcache::delete ( string $key [, int $timeout = 0 ] )

Memcache::delete() efface l'élément identifié par la clé key.

Liste de paramètres

key

La clé associée à l'élément à supprimer.

timeout

Ce paramètre obsolète n'est pas supporté, et vaut par défaut 0 seconde. N'utilisez pas ce paramètre.

Historique

Version | Description
Inconnu | Il n'est pas recommandé d'utiliser le paramètre timeout. Son comportement diffère suivants les versions de memcached, mais le fait de lui passer la valeur 0 est sans danger. Les autres valeurs pour cette fonctionnalité obsolète peut conduire à une erreur de fonctionnement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::delete()

<?php

/* API procédurale */
$memcache_obj = memcache_connect('memcache_host', 11211);

/* l'élément sera effacé par la serveur de cache */
memcache_delete($memcache_obj, 'key_to_delete');

/* API orientée objet */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->delete('key_to_delete');

?>

Voir aussi

  • Memcache::set() - Stocke des données dans le serveur de cache
  • Memcache::replace() - Remplace une valeur d'un élément existant


Efface tous les éléments existant sur le serveur de cache

  • « Memcache::delete
  • Memcache::get »
  • PHP Manual
  • Memcache
  • Efface tous les éléments existant sur le serveur de cache

Memcache::flush

(PECL memcache >= 1.0.0)

Memcache::flush — Efface tous les éléments existant sur le serveur de cache

Description

bool Memcache::flush ( void )

Memcache::flush() invalide immédiatement tous les éléments existant sur le serveur de cache. Memcache::flush() ne libère aucune ressource actuellement, il marque uniquement tous les éléments comme ayant expirés, donc la mémoire occupée sera réutilisée avec de nouveaux éléments. Vous pouvez également utiliser la fonction memcache_flush().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::flush()

<?php

/* API procédurale */
$memcache_obj = memcache_connect('memcache_host', 11211);

memcache_flush($memcache_obj);

/* API orientée objet */

$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->flush();

?>


Récupère un élément du serveur de cache

  • « Memcache::flush
  • Memcache::getExtendedStats »
  • PHP Manual
  • Memcache
  • Récupère un élément du serveur de cache

Memcache::get

(PECL memcache >= 0.2.0)

Memcache::get — Récupère un élément du serveur de cache

Description

string Memcache::get ( string $key [, int &$flags ] )
array Memcache::get ( array $keys [, array &$flags ] )

Memcache::get() retourne les données précédemment stockées dans l'élément identifié par la clé key s'il existe sur le serveur au moment de l'appel.

Vous pouvez passer un tableau de clés à la fonction Memcache::get() pour obtenir un tableau de valeurs. Le tableau résultant contiendra seulement les paires de clé-valeur trouvées.

Liste de paramètres

key

La clé ou le tableau de clés à récupérer.

flags

Si ce paramètre est présent, il représentera les drapeaux des valeurs à récupérer. Ces drapeaux sont les mêmes que ceux donnés en exemple de la fonction Memcache::set(). L'octet le plus faible de la valeur est réservé à un usage interne de pecl/memcache (e.g. pour indiquer le statut de compression et de linéarisation).

Valeurs de retour

Retourne une chaîne de caractères associée avec le paramètre key ou un tableau contenant les paires clé/valeur trouvées lorsque le paramètre key est un tableau. Retourne FALSE si une erreur survient, si le paramètre key n'est pas trouvé, ou si le paramètre key est un tableau vide.

Exemples

Exemple #1 Exemple avec Memcache::get()

<?php

/* API procédurale */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, 'some_key');

/* API orientée objet */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get('some_key');

/*
Vous pouvez également utiliser un tableau de clés en tant que paramètre.
Si un tel élément n'est pas trouvé sur le serveur, le tableau
résultat ne comprendra simplement pas une telle clé.
*/

/* API procédurale */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, Array('some_key', 'another_key'));

/* API Orientée Objet */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get(Array('some_key', 'second_key'));

?>


Récupère des statistiques de tous les serveurs dans la liste

  • « Memcache::get
  • Memcache::getServerStatus »
  • PHP Manual
  • Memcache
  • Récupère des statistiques de tous les serveurs dans la liste

Memcache::getExtendedStats

(PECL memcache >= 2.0.0)

Memcache::getExtendedStats — Récupère des statistiques de tous les serveurs dans la liste

Description

array Memcache::getExtendedStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )

Memcache::getExtendedStats() retourne un tableau associatif à deux dimensions avec des statistiques de serveurs. Les clés des tableaux correspondent à hôte:port des serveurs et les valeurs contiennent des statistiques du serveur individuel. Un serveur en échec aura ses entrées correspondantes fixées à FALSE. Vous pouvez également utiliser la fonction memcache_get_extended_stats().

Note:

Cette fonction a été ajoutée à la version de Memcache 2.0.0.

Liste de paramètres

type

Le type de statistiques à récupérer. Les valeurs valides sont : "reset", "malloc", "maps", "cachedump", "slabs", "items", "sizes". Suivant les spécifications du protocole memcached, ces arguments optionnels sont susceptibles d'être modifiés suivant les besoins des développeurs de memcache.

slabid

Utilisé avec le paramètre type définit à cachedump pour identifier le slab à récupérer. La commande cachedump met à mal le serveur et ne doit être utilisée que dans un but de déboguage.

limit

Utilisé avec le paramètre type définit à cachedump pour limiter le nombre d'entrées à récupérer.

Avertissement

Le type de statistique cachedump a été supprimé du processus memcached pour des contraintes de sécurité.

Valeurs de retour

Retourne un tableau associatif à avec des statistiques des serveurs ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec Memcache::getExtendedStats()

<?php
    $memcache_obj = new Memcache;
    $memcache_obj->addServer('memcache_host', 11211);
    $memcache_obj->addServer('failed_host', 11211);

    $stats = $memcache_obj->getExtendedStats();
    print_r($stats);
?>

L'exemple ci-dessus va afficher :

Array
(
    [memcache_host:11211] => Array
        (
            [pid] => 3756
            [uptime] => 603011
            [time] => 1133810435
            [version] => 1.1.12
            [rusage_user] => 0.451931
            [rusage_system] => 0.634903
            [curr_items] => 2483
            [total_items] => 3079
            [bytes] => 2718136
            [curr_connections] => 2
            [total_connections] => 807
            [connection_structures] => 13
            [cmd_get] => 9748
            [cmd_set] => 3096
            [get_hits] => 5976
            [get_misses] => 3772
            [bytes_read] => 3448968
            [bytes_written] => 2318883
            [limit_maxbytes] => 33554432
        )

    [failed_host:11211] => false
)

Voir aussi

  • Memcache::getVersion() - Retourne le numéro de version du serveur
  • Memcache::getStats() - Lit les statistiques du serveur


Retourne le statut du serveur

  • « Memcache::getExtendedStats
  • Memcache::getStats »
  • PHP Manual
  • Memcache
  • Retourne le statut du serveur

Memcache::getServerStatus

(PECL memcache >= 2.1.0)

Memcache::getServerStatus — Retourne le statut du serveur

Description

int Memcache::getServerStatus ( string $host [, int $port = 11211 ] )

Memcache::getServerStatus() retourne le statut en ligne/hors ligne du serveur. Vous pouvez également utiliser la fonction memcache_get_server_status().

Note:

Cette fonction a été ajoutée en Memcache version 2.1.0.

Liste de paramètres

host

Pointe à l'hôte où memcache écoute pour des connexions.

port

Pointe au port où memcache écoute pour des connexions.

Valeurs de retour

Retourne le statut du serveur. 0 si le serveur échoue, une valeur différente de zéro sinon.

Exemples

Exemple #1 Exemple avec Memcache::getServerStatus()

<?php

/* API orientée objet */
$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
echo $memcache->getServerStatus('memcache_host', 11211);

/* API procédurale */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_server_status($memcache, 'memcache_host', 11211);

?>

Voir aussi

  • Memcache::addServer() - Ajoute un serveur memcache à la liste de connexion
  • Memcache::setServerParams() - Modifit les paramètres et les statuts du serveur pendant l'exécution


Lit les statistiques du serveur

  • « Memcache::getServerStatus
  • Memcache::getVersion »
  • PHP Manual
  • Memcache
  • Lit les statistiques du serveur

Memcache::getStats

(PECL memcache >= 0.2.0)

Memcache::getStats — Lit les statistiques du serveur

Description

array Memcache::getStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )

Memcache::getStats() retourne un tableau associatif avec les statistiques du serveur. Les index du tableau correspondent aux paramètres de statistiques, et la valeur associée est la valeur de ces statistiques. Vous pouvez aussi utiliser la fonction memcache_get_stats().

Liste de paramètres

type

Le type de statistiques à récupérer. Les valeurs valides sont {"reset", "malloc", "maps", "cachedump", "slabs", "items", "sizes". Suivant les spécifications du protocole memcached, ces arguments optionnels sont susceptibles d'être modifiés suivant les besoins des développeurs de memcache.

slabid

Utilisé avec le paramètre type définit à cachedump pour identifier le slab à récupérer. La commande cachedump met à mal le serveur et ne doit être utilisée que dans un but de déboguage.

limit

Utilisé avec le paramètre type définit à cachedump pour limiter le nombre d'entrées à récupérer.

Valeurs de retour

Retourne un tableau associatif des statistiques d'un serveur ou FALSE si une erreur survient.

Voir aussi

  • Memcache::getVersion() - Retourne le numéro de version du serveur
  • Memcache::getExtendedStats() - Récupère des statistiques de tous les serveurs dans la liste


Retourne le numéro de version du serveur

  • « Memcache::getStats
  • Memcache::increment »
  • PHP Manual
  • Memcache
  • Retourne le numéro de version du serveur

Memcache::getVersion

(PECL memcache >= 0.2.0)

Memcache::getVersion — Retourne le numéro de version du serveur

Description

string Memcache::getVersion ( void )

Memcache::getVersion() retourne une chaîne avec le numéro de version du serveur. Vous pouvez aussi utiliser la fonction memcache_get_version().

Valeurs de retour

Retourne une chaîne de caractères du numéro de version de serveur ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::getVersion()

<?php

/* API orientée objet */
$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);
echo $memcache->getVersion();

/* API procédurale */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_version($memcache);

?>

Voir aussi

  • Memcache::getExtendedStats() - Récupère des statistiques de tous les serveurs dans la liste
  • Memcache::getStats() - Lit les statistiques du serveur


Incrément la valeur d'un élément

  • « Memcache::getVersion
  • Memcache::pconnect »
  • PHP Manual
  • Memcache
  • Incrément la valeur d'un élément

Memcache::increment

(PECL memcache >= 0.2.0)

Memcache::increment — Incrément la valeur d'un élément

Description

int Memcache::increment ( string $key [, int $value = 1 ] )

Memcache::increment() incrémente la valeur d'un élément identifié par la clé key par la valeur value. Si l'élément identifié par la clé key n'est pas de type numérique et ne peut être converti en nombre, la valeur de cette élément sera défini à value. Memcache::increment() ne crée pas un élément s'il n'existe pas.

Note:

N'utilisez pas memcache::increment() avec les éléments stockés compressés. Dans ce cas, l'appel à la fonction Memcache::get() échouera.

Vous pouvez également utiliser la fonction memcache_increment().

Liste de paramètres

key

Clé de l'élément à incrémenter.

value

Incrémente l'élément par value.

Valeurs de retour

Retourne la valeur du nouvel élément en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::increment()

<?php

/* API procédurale */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* incrémentation du compteur de 2 */
$current_value = memcache_increment($memcache_obj, 'counter', 2);

/* API orientée objet */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* incrémentation du compteur de 3 */
$current_value = $memcache_obj->increment('counter', 3);

?>

Voir aussi

  • Memcache::decrement() - Décrémente la valeur d'un élément
  • Memcache::replace() - Remplace une valeur d'un élément existant


Ouvre un connexion persistante à un serveur de cache

  • « Memcache::increment
  • Memcache::replace »
  • PHP Manual
  • Memcache
  • Ouvre un connexion persistante à un serveur de cache

Memcache::pconnect

(PECL memcache >= 0.4.0)

Memcache::pconnect — Ouvre un connexion persistante à un serveur de cache

Description

mixed Memcache::pconnect ( string $host [, int $port [, int $timeout ]] )

Memcache::pconnect() est similaire à la fonction Memcache::connect() avec la différence que la connexion sera persistante. Ce type de connexion n'est pas fermé à la fin du script et par la fonction Memcache::close(). Vous pouvez également utiliser la fonction memcache_pconnect().

Liste de paramètres

host

Pointe à l'hôte où memcache écoute pour des connexions. Ce paramètre peut également spécifier d'autres transporteurs comme unix:///path/to/memcached.sock pour utiliser les sockets Unix, et, dans ce cas, port doit également être défini à 0.

port

Pointe au port où memcache écoute pour des connexions. Définissez ce paramètre à 0 lors de l'utilisation des sockets Unix.

timeout

Valeur en seconde qui sera utilisée pour se connecter au démon. Pensez-y deux fois avant de changer la valeur par défaut d'une seconde - vous pourriez perdre tous les avantages de l'utilisation de la cache si votre connexion est trop lente.

Valeurs de retour

Retourne un objet Memcache ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::pconnect()

<?php

/* API procédurale */
$memcache_obj = memcache_pconnect('memcache_host', 11211);

/* API orientée objet */

$memcache_obj = new Memcache;
$memcache_obj->pconnect('memcache_host', 11211);

?>

Voir aussi

  • Memcache::connect() - Ouvre une connexion avec le serveur Memcache


Remplace une valeur d'un élément existant

  • « Memcache::pconnect
  • Memcache::set »
  • PHP Manual
  • Memcache
  • Remplace une valeur d'un élément existant

Memcache::replace

(PECL memcache >= 0.2.0)

Memcache::replace — Remplace une valeur d'un élément existant

Description

bool Memcache::replace ( string $key , mixed $var [, int $flag [, int $expire ]] )

Memcache::replace() est utilisé pour remplacer la valeur d'un élément identifié par la clé key. Dans le cas où l'élément identifié par la clé key n'existe pas, la fonction Memcache::replace() retournera FALSE. Pour le reste, la fonction Memcache::replace() fonctionne de la même façon que la fonction Memcache::set(). Vous pouvez également utiliser la fonction memcache_replace().

Liste de paramètres

key

La clé qui sera associée avec l'élément.

var

La variable à enregistrer. Les chaînes de caractères et les entiers sont enregistrer comme tels, les autres types sont enregistrés de manière sérialisée.

flag

Utilisez MEMCACHE_COMPRESSED pour enregistrer l'élément compressé (utilise zlib).

expire

Temps d'expiration pour l'élément. S'il égal 0, l'élément n'expirera jamais. Vous pouvez aussi utiliser un timestamp Unix ou un nombre de seconde en commençant par la date d'aujourd'hui, mais dans le dernier cas, le nombre de secondes ne doit pas excéder 2592000 (30 jours).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::replace()

<?php

$memcache_obj = memcache_connect('memcache_host', 11211);

/* API procédurale */
memcache_replace($memcache_obj, "test_key", "some variable", false, 30);

/* API orientée objet */
$memcache_obj->replace("test_key", "some variable", false, 30);

?>

Voir aussi

  • Memcache::set() - Stocke des données dans le serveur de cache
  • Memcache::add() - Ajoute un élément dans le server


Stocke des données dans le serveur de cache

  • « Memcache::replace
  • Memcache::setCompressThreshold »
  • PHP Manual
  • Memcache
  • Stocke des données dans le serveur de cache

Memcache::set

(PECL memcache >= 0.2.0)

Memcache::set — Stocke des données dans le serveur de cache

Description

bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )

Memcache::set() stocke l'élément var avec la clé key sur le serveur de cache. Le paramètre expire représente le délai en secondes d'expiration de l'élément. S'il vaut 0, l'élément n'expirera jamais (mais le serveur de cache ne garantie pas que cet élément sera toujours stocké, il peut être effacé du cache pour faire de la place à d'autres éléments). Vous pouvez utiliser la constante MEMCACHE_COMPRESSED comme valeur du paramètre flag si vous voulez utiliser la compression à la volée (utilisation de la bibliothèque zlib).

Note:

Souvenez-vous que les ressources (i.e. identifiant de fichiers ou de connexion) ne peuvent pas être stockées dans le cache, car elles ne peuvent pas être représentées linéairement.

Vous pouvez également utiliser la fonction memcache_set().

Liste de paramètres

key

La clé qui sera associée avec l'élément.

var

La variable à enregistrer. Les chaînes de caractères et les entiers sont enregistrés comme tels, les autres types sont enregistrés de manière sérialisée.

flag

Utilisez MEMCACHE_COMPRESSED pour enregistrer l'élément compressé (utilise zlib).

expire

Temps d'expiration pour l'élément. S'il égal 0, l'élément n'expirera jamais. Vous pouvez aussi utiliser un timestamp Unix ou un nombre de seconde en commençant par la date d'aujourd'hui, mais dans le dernier cas, le nombre de secondes ne doit pas excéder 2592000 (30 jours).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::set()

<?php
/* API procédurale */

/* connexion au serveur de cache */
$memcache_obj = memcache_connect('memcache_host', 11211);

/*
définie la valeur de l'élément identifié par la clé 'var_key' ;
utilisation de la valeur 0 pour le flag ;
la compression n'est pas utilisée ;
le délai d'expiration vaut 30 secondes
*/
memcache_set($memcache_obj, 'var_key', 'quelques variables', 0, 30);

echo memcache_get($memcache_obj, 'var_key');

?>

Exemple #2 Exemple avec Memcache::set()

<?php
/* API orientée objet */

$memcache_obj = new Memcache;

/* connexion au serveur de cache */
$memcache_obj->connect('memcache_host', 11211);

/*
définie la valeur de l'élément identifié par la clé 'var_key' ;
utilisation de la compression à la volée ;
le délai d'expiration vaut 50 secondes
*/
$memcache_obj->set('var_key', 'quelques grosses variables', MEMCACHE_COMPRESSED, 50);

echo $memcache_obj->get('var_key');

?>

Voir aussi

  • Memcache::add() - Ajoute un élément dans le server
  • Memcache::replace() - Remplace une valeur d'un élément existant


Active la compression automatique des valeurs larges

  • « Memcache::set
  • Memcache::setServerParams »
  • PHP Manual
  • Memcache
  • Active la compression automatique des valeurs larges

Memcache::setCompressThreshold

(PECL memcache >= 2.0.0)

Memcache::setCompressThreshold — Active la compression automatique des valeurs larges

Description

bool Memcache::setCompressThreshold ( int $threshold [, float $min_savings ] )

Memcache::setCompressThreshold() active la compression automatique des valeurs larges. Vous pouvez également utiliser la fonction memcache_set_compress_threshold().

Note:

Cette fonction a été ajoutée à la version de Memcache 2.0.0.

Liste de paramètres

threshold

Contrôle la taille de la valeur minimale avant d'essayer de compresser automatiquement.

min_saving

Spécifie le nombre minimum de sauvegarde pour enregistrer les valeurs compressées. La valeur fournie doit être comprise entre 0 et 1. La valeur par défaut est 0.2, ce qui donne un minimum de 20% de sauvegarde de compression.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::setCompressThreshold()

<?php

/* API orientée objet */

$memcache_obj = new Memcache;
$memcache_obj->addServer('memcache_host', 11211);
$memcache_obj->setCompressThreshold(20000, 0.2);

/* API procédurale */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_compress_threshold($memcache_obj, 20000, 0.2);

?>


Modifit les paramètres et les statuts du serveur pendant l'exécution

  • « Memcache::setCompressThreshold
  • Fonctions Memcache »
  • PHP Manual
  • Memcache
  • Modifit les paramètres et les statuts du serveur pendant l'exécution

Memcache::setServerParams

(PECL memcache >= 2.1.0)

Memcache::setServerParams — Modifit les paramètres et les statuts du serveur pendant l'exécution

Description

bool Memcache::setServerParams ( string $host [, int $port = 11211 [, int $timeout [, int $retry_interval = false [, bool $status [, callable $failure_callback ]]]]] )

Memcache::setServerParams() modifie les paramètres du serveur durant l'exécution. Vous pouvez également utiliser la fonction memcache_set_server_params().

Note:

Cette fonction a été ajoutée en Memcache version 2.1.0.

Liste de paramètres

host

Hôte où memcache écoute pour des connexions.

port

Port où memcache écoute pour des connexions.

timeout

Valeur en seconde qui sera utilisée pour se connecter au démon. Pensez-y deux fois avant de changer la valeur par défaut d'une seconde - vous pourriez perdre tous les avantages de l'utilisation de la cache si votre connexion est trop lente.

retry_interval

Contrôle combien de fois la connexion à un serveur qui échoue sera essayée : la valeur par défaut est de 15 secondes. Si ce paramètre vaut -1, aucune nouvelle tentative ne sera effectuée. Ni ce paramètre, ni le paramètre persistent n'ont d'effet lorsque cette extension est chargée dynamiquement via la fonction dl().

status

Contrôle si le serveur doit être indiqué comme étant en ligne. Quand ce paramètre vaut FALSE et le paramètre retry_interval vaut -1, cela permet de conserver un serveur qui a échoué dans la liste et n'affectera pas l'algorithme de distribution des clés. Les demandes pour ce serveur échoueront immédiatement suivant la configuration du paramètre memcache.allow_failover. Par défaut, ce paramètre vaut TRUE, signifiant que le serveur doit être considéré comme étant en ligne.

failure_callback

Permet à l'utilisateur de spécifier une fonction de rappel permettant de contourner une erreur. Le fonction est exécutée avant d'atteindre la limite de tentative. La fonction prend deux paramètres ; le nom de l'hôte et le port du serveur qui a échoué.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::setServerParams()

<?php

function _callback_memcache_failure($host, $port) {
    print "memcache '$host:$port' failed";
}

/* API orientée objet */

$memcache = new Memcache;

// Ajoute le serveur en mode hors ligne
$memcache->addServer('memcache_host', 11211, false, 1, 1, -1, false);

// Replace le serveur en ligne
$memcache->setServerParams('memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');

/* API procédurale */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_server_params($memcache_obj, 'memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');

?>

Voir aussi

  • Memcache::addServer() - Ajoute un serveur memcache à la liste de connexion
  • Memcache::getServerStatus() - Retourne le statut du serveur


Fonctions Memcache

Sommaire

  • memcache_debug — Active ou non l'affichage des informations de déboguage


Active ou non l'affichage des informations de déboguage

  • « Fonctions Memcache
  • Memcached »
  • PHP Manual
  • Fonctions Memcache
  • Active ou non l'affichage des informations de déboguage

memcache_debug

(PECL memcache >= 0.2.0)

memcache_debug — Active ou non l'affichage des informations de déboguage

Description

bool memcache_debug ( bool $on_off )

memcache_debug() active l'affichage des informations de déboguage si le paramètre on_off vaut TRUE et le désactive s'il vaut FALSE.

Note:

memcache_debug() est accessible uniquement si PHP a été compilé avec l'option --enable-debug et retournera toujours TRUE dans ce cas. Sinon, cette fonction n'aura aucun effet et retournera toujours FALSE.

Liste de paramètres

on_off

Active l'affichage de débogue si égal à TRUE. Désactive l'affichage de débogue si égal à FALSE.

Valeurs de retour

Retourne TRUE si PHP était compilé avec l'option --enable-debug, autrement retourne FALSE.


Memcached

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Délai d'expiration
  • Fonctions de rappel
    • Fonctions de rappel de résultats
    • Fonctions de rappel sur clé absente
  • Support des sessions
  • Memcached — La classe Memcached
    • Memcached::add — Ajoute un nouvel élément sous une nouvelle clé
    • Memcached::addByKey — Ajoute un élément sur un serveur désigné
    • Memcached::addServer — Ajoute un serveur au pool
    • Memcached::addServers — Ajoute plusieurs serveurs au pool
    • Memcached::append — Ajoute des données à un élément
    • Memcached::appendByKey — Ajoute des données à un élément
    • Memcached::cas — Compare et échange un élément
    • Memcached::casByKey — Compare et échange un élément sur un serveur
    • Memcached::__construct — Crée un objet Memcached
    • Memcached::decrement — Décrémente une valeur numérique
    • Memcached::decrementByKey — Décrémente une valeur numérique d'un élément, stocké sur un serveur spécifique
    • Memcached::delete — Efface un élément
    • Memcached::deleteByKey — Supprime un élément d'un serveur spécifique
    • Memcached::deleteMulti — Supprime plusieurs éléments
    • Memcached::deleteMultiByKey — Supprime plusieurs éléments depuis un serveur spécifique
    • Memcached::fetch — Lit le prochain résultat
    • Memcached::fetchAll — Lit tous les autres éléments
    • Memcached::flush — Invalide tous les éléments du cache
    • Memcached::get — Lit un élément
    • Memcached::getAllKeys — Récupère toutes les clés stockés sur tous les serveurs
    • Memcached::getByKey — Lit un élément sur un serveur spécifique
    • Memcached::getDelayed — Lit plusieurs éléments
    • Memcached::getDelayedByKey — Lit plusieurs éléments sur un serveur
    • Memcached::getMulti — Lit plusieurs éléments
    • Memcached::getMultiByKey — Lit plusieurs éléments d'un serveur spécifique
    • Memcached::getOption — Lit une option Memcached
    • Memcached::getResultCode — Retourne le code de résultat de la dernière opération
    • Memcached::getResultMessage — Retourne un message décrivant le résultat de la dernière opération
    • Memcached::getServerByKey — Dirige une clé sur un serveur
    • Memcached::getServerList — Liste les serveurs du pool memcached
    • Memcached::getStats — Lit des statistiques du pool de serveurs
    • Memcached::getVersion — Lit les informations de version du pool serveur
    • Memcached::increment — Incrémente numériquement un élément
    • Memcached::incrementByKey — Incrémente une valeur numérique d'un élément, stocké sur un serveur spécifique
    • Memcached::isPersistent — Vérifie si une connexion persistente vers memcache est en cours d'utilisation
    • Memcached::isPristine — Vérifie si l'instance a été créée récemment
    • Memcached::prepend — Préfixe des données à un élément existant
    • Memcached::prependByKey — Préfixe un élément existant
    • Memcached::quit — Ferme toutes les connexions ouvertes
    • Memcached::replace — Remplace un élément sous une clé
    • Memcached::replaceByKey — Remplace un élément spécifique sur un serveur désigné
    • Memcached::resetServerList — Supprime tous les serveurs depuis la liste des serveurs
    • Memcached::set — Stocke un élément
    • Memcached::setByKey — Stocke un élément sur un serveur spécifique
    • Memcached::setMulti — Stocke plusieurs éléments
    • Memcached::setMultiByKey — Stocke plusieurs éléments sur un serveur
    • Memcached::setOption — Configure une option Memcached
    • Memcached::setOptions — Définit des options Memcache
    • Memcached::setSaslAuthData — Définit les informations à utiliser pour l'authentification
    • Memcached::touch — Définit une nouvelle expiration sur un élément
    • Memcached::touchByKey — Définit une nouvelle expiration sur un élément d'un serveur spécifique
  • MemcachedException — La classe MemcachedException


Introduction

» memcached est un système à haute performance, distribué et en mémoire, de cache d'objet, générique par nature, mais principalement destiné à l'utilisation avec des sites Web dynamiques, pour soulager les bases de données.

Cette extension utilise la bibliothèque libmemcached pour assurer les communications avec les serveurs memcached. Elle fournit aussi un gestionnaire de sessions, appelé memcached.

Des informations sur libmemcached sont disponibles à » http://libmemcached.org/libMemcached.html.


Pré-requis

Cette extension requiert la bibliothèque cliente » libmemcached (version 1.0.0 ou supérieure). Pour un support de l'authentification SASL, la bibliothèque libmemcached doit avoir été compilée avec l'activation de SASL.

Depuis la version 0.2.0, cette extension requiert PHP version 5.2.0 ou supérieure.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/memcached

Si libmemcached est installé dans un dossier non-standard, utilisez l'option --with-libmemcached-dir=DIR , où DIR est le préfixe d'installation libmemcached. Ce dossier doit contenir le fichier include/libmemcached/memcached.h.

Zlib est nécessaire pour le support de la compression. Pour spécifier un dossier d'installation non-standard de Zlib, utilisez la directive --with-zlib-dir=DIR , où DIR est le préfixe d'installation.

Le support du gestionnaire de sessions est activé par défaut. Pour le désactiver, utilisez --disable-memcached-session .

Le support de l'authentification SASL est désactivé par défaut. Pour l'activer, utilisez l'option de compilation --enable-memcached-sasl . Ceci nécessite l'installation préalable de la bibliothèque libsasl2 ainsi que la compilation de libmemcached avec l'activation du support SASL.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Memcached
Nom | Défaut | Modifiable | Historique
memcached.sess_locking | 1 | PHP_INI_ALL |
memcached.sess_consistent_hash | 0 | PHP_INI_ALL |
memcached.sess_binary | 0 | PHP_INI_ALL |
memcached.sess_lock_wait | 150000 | PHP_INI_ALL |
memcached.sess_prefix | memc.sess.key. | PHP_INI_ALL |
memcached.sess_number_of_replicas | 0 | PHP_INI_ALL |
memcached.sess_randomize_replica_read | 0 | PHP_INI_ALL |
memcached.sess_remove_failed | 0 | PHP_INI_ALL |
memcached.compression_type | fastlz | PHP_INI_ALL |
memcached.compression_factor | 1.3 | PHP_INI_ALL |
memcached.compression_threshold | 2000 | PHP_INI_ALL |
memcached.serializer | php | PHP_INI_ALL |
memcached.use_sasl | 0 | PHP_INI_SYSTEM |

Voici un éclaircissement sur l'utilisation des directives de configuration.

memcached.sess_locking integer

Utilise le verrouillage de session. Les valeurs valides sont : On, Off ; par défaut, c'est On.

memcached.sess_consistent_hash integer

Mode de hachage de consistence de la session Memcache. Si défini à On, le hachage de consistence est utilisé par le gestionnaire de session. Lorsque le hachage de consistence est utilisé, il est possible d'ajouter ou de supprimer un ou des noeuds du cache sans trop se soucier des clés existantes. Par défaut, vaut Off.

memcached.sess_binary integer

Utilise le mode binaire de session memcache. La réplication Libmemcache ne fonctionne que si le mode binaire est activé. Par défaut, vaut Off.

memcached.sess_lock_wait integer

Délai d'attente entre plusieurs essais de tentative de déverrouillage des verrous de session, en microseconde. Soyez prudent en définissant cette valeur. Les valeurs valides sont des entiers, où 0 est la valeur par défaut. Les valeurs négatives seront interprétées comme une tentative de verrouillage. La valeur par défaut est 150000.

memcached.sess_prefix string

Préfixe pour les clés de session Memcache. Les valeurs valides sont des chaînes de caractères dont la longueur ne devra pas excéder 219 octets. La valeur par défaut est "memc.sess.key."

memcached.sess_number_of_replicas integer

Le nombre de réplication de sessions Memcache.

memcached.sess_randomize_replica_read integer

La session de réplication Memcache lit de façon aléatoire.

memcached.sess_remove_failed integer

Permet la suppression automatique des serveurs Memcache en échec.

memcached.compression_type string

Définit le type de compression ; les valeurs valides sont : fastlz, zlib. Par défaut, vaut fastlz.

memcached.compression_factor float

Facteur de compression. Le stockage ne compresse les valeurs que si le facteur de compression (sauvegarde) dépasse la limite définie. Le stockage se fait de façon compressé si : plain_len > comp_len * factor. La valeur par défaut est 1.3 (23% d'espace épargné).

memcached.compression_threshold integer

Le seuil de compression. Ne compressez pas les valeurs linéarisées en dessous de ce seuil. Par défaut, vaut 2000 octets.

memcached.serializer string

Définit le linéariseur par défaut pour les nouveaux objets memcache. Les valeurs valides sont : php, igbinary, json, json_array.

json

Encodage standard php JSON. Ce linéariseur est rapide, compacte, mais ne fonctionne que sur des données encodées UTF-8, et n'implémente pas complètement la linéarisation. Voir l'extension JSON.

json_array

Identique à JSON, mais le décodage se faire dans des tableaux.

php

Le linéariseur PHP standard.

igbinary

Un linéariseur binaire.

Par défaut, ce sera igbinary s'il est disponible, sinon PHP.

memcached.use_sasl integer

Utilisation de l'authentification SASL pour les connexions. Les valeurs valides sont : On, Off. Par défaut, vaut Off.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Memcached::OPT_COMPRESSION

Active ou désactive la compression du contenu. Si elle est activée, les éléments qui dépassent une taille (actuellement 100 octets), seront compressés durant le stockage, et décompressés au déstockage, de manière transparente.

Type : boolean, par défaut : TRUE.

Memcached::OPT_SERIALIZER

Spécifie la fonction de linéarisation à utiliser pour les valeurs non scalaires. Les fonctions valides sont Memcached::SERIALIZER_PHP et Memcached::SERIALIZER_IGBINARY. Le dernier n'est supporté que si memcached est configuré avec l'option --enable-memcached-igbinary et que l'extension igbinary est chargée.

Type : integer, par défaut : Memcached::SERIALIZER_PHP.

Memcached::SERIALIZER_PHP

La fonction de linéarisation par défaut de PHP.

Memcached::SERIALIZER_IGBINARY

La fonction » igbinary. Au lieu d'une représentation textuelle, cette fonction stocke les structures PHP dans un format compact et binaire, avec un gain de temps et d'espace.

Memcached::SERIALIZER_JSON

La fonction de linéarisation JSON. Requière PHP 5.2.10 +.

Memcached::OPT_PREFIX_KEY

Cette option peut être utilisée pour créer un "domaine" pour vos clés. La valeur spécifiée ici sera préfixée à chaque clé. Elle ne peut pas être plus longue que 128 caractères, et réduira d'autant la taille maximale de clé disponible. Le préfixe est appliqué uniquement aux clés d'élément, et non pas aux clés de serveur.

Type : string, par défaut : "".

Memcached::OPT_HASH

Spécifie l'algorithme de hashage utilisé pour les clé. Les valeurs valides sont fournies avec les constantes Memcached::HASH_*. Chaque algorithme de hashage a ses avantages et inconvénients. Utilisez celui qui est donné par défaut, si vous ne comprenez pas, ou que peu vous importe.

Type : integer, par défaut : Memcached::HASH_DEFAULT

Memcached::HASH_DEFAULT

L'algorithme par défaut (Jenkins one-at-a-time) de hashage.

Memcached::HASH_MD5

L'algorithme de hashage par MD5

Memcached::HASH_CRC

L'algorithme de hashage par CRC

Memcached::HASH_FNV1_64

L'algorithme de hashage par FNV1_64

Memcached::HASH_FNV1A_64

L'algorithme de hashage par FNV1_64A

Memcached::HASH_FNV1_32

L'algorithme de hashage par FNV1_32

Memcached::HASH_FNV1A_32

L'algorithme de hashage par FNV1_32A

Memcached::HASH_HSIEH

L'algorithme de hashage par Hsieh

Memcached::HASH_MURMUR

L'algorithme de hashage par Murmur

Memcached::OPT_DISTRIBUTION

Spécifie la méthode de distribution des clés sur les serveurs. Actuellement, cette option supporte les modulo et le hashage cohérent. Le hashage cohérent fournit la meilleure distribution, et permet aux serveurs d'être ajouté au groupe avec un minimum de pertes de cache.

Type : integer, par défaut : Memcached::DISTRIBUTION_MODULA.

Memcached::DISTRIBUTION_MODULA

L'algorithme de distribution par modulo

Memcached::DISTRIBUTION_CONSISTENT

L'algorithme de distribution par hashage cohérent

Memcached::OPT_LIBKETAMA_COMPATIBLE

Active ou non la compatibilité avec le comportement type libketama. Quand cette option est activée, l'algorithme de hashage est MD5, et la distribution est le hashage cohérent. Ceci est pratique car d'autres client qui utilisent libketama (Python, Ruby, etc.) avec la même configuration serveur seront capables d'utiliser les mêmes clés, de manière transparente.

Note:

Cette option est hautement recommandée, si vous voulez utiliser le hashage cohérente, et il est probable qu'elle soit activée par défaut dans de futures versions.

Type : boolean, par défaut : FALSE.

Memcached::OPT_BUFFER_WRITES

Active ou non la bufferisation d'entrée / sortie. La bufferisation fait que les commandes de stockage mettent en buffer, au lieu de faire des envois. Toute action qui lit des données fait que le buffer d'écriture est envoyé au serveur distant. La fermeture de la connexion ou son arrêt vont aussi forcer l'envoi des données du buffer.

Type : boolean, par défaut : FALSE.

Memcached::OPT_BINARY_PROTOCOL

Activez cette option pour utiliser le protocole binaire. Notez que vous ne pouvez pas changer cette option pour une connexion déjà ouverte.

Type : boolean, par défaut : FALSE.

Memcached::OPT_NO_BLOCK

Active ou non les transferts asynchrones. Ceci est le mode de transfert le plus rapide, pour les fonctions de stockage.

Type : boolean, par défaut : FALSE.

Memcached::OPT_TCP_NODELAY

Active ou non les connexions sans délai des sockets (cela peut être un gain de performances dans certains environnements.

Type : boolean, par défaut : FALSE.

Memcached::OPT_SOCKET_SEND_SIZE

La taille maximale du buffer d'envoi par socket, en octets.

Type : integer, par défaut : varie par plate-forme et configuration du noyau.

Memcached::OPT_SOCKET_RECV_SIZE

La taille maximale du buffer de réception par socket, en octets.

Type : integer, par défaut : varie par plate-forme et configuration du noyau.

Memcached::OPT_CONNECT_TIMEOUT

En mode non-bloquant, cette option configure le délai d'expiration durant la connexion du socket, en millisecondes.

Type : integer, par défaut : 1000.

Memcached::OPT_RETRY_TIMEOUT

La durée, en secondes, d'attente avant de tenter à nouveau une connexion qui a échouée.

Type : integer, par défaut : 0.

Memcached::OPT_SEND_TIMEOUT

Délai d'expiration d'envoi pour le socket, en microsecondes. Dans les cas où vous utilisez un socket non bloquant, cela vous permettra d'avoir des délais d'expiration en envoi de données, malgré tout.

Type : integer, par défaut : 0.

Memcached::OPT_RECV_TIMEOUT

Délai d'expiration de réception pour le socket, en microsecondes. Dans les cas où vous utilisez un socket non bloquant, cela vous permettra d'avoir des délais d'expiration en réception de données, malgré tout.

Type : integer, par défaut : 0.

Memcached::OPT_POLL_TIMEOUT

Délai d'expiration pour le polling de connexions, en millisecondes.

Type : integer, par défaut : 1000.

Memcached::OPT_CACHE_LOOKUPS

Active ou non le cache de DNS.

Type : boolean, par défaut : FALSE.

Memcached::OPT_SERVER_FAILURE_LIMIT

Spécifie la limite du nombre d'échec de connexions. Le serveur sera alors retiré de la liste après autant d'échec de connexions en succession.

Type : integer, par défaut : 0.

Memcached::HAVE_IGBINARY

Indique si le support de la fonction de linéarisation igbinary est activé.

Type : boolean.

Memcached::HAVE_JSON

Indique si la fonction de linéarisation JSON est disponible.

Type : boolean.

Memcached::GET_PRESERVE_ORDER

Une option pour Memcached::getMulti() et Memcached::getMultiByKey() afin de s'assurer que les clés sont retournées dans le même ordre que leur ordre de requête. Les clés inexistantes prennent alors la valeur NULL

Memcached::RES_SUCCESS

L'opération a réussi.

Memcached::RES_FAILURE

L'opération a échoué, d'une manière ou d'une autre.

Memcached::RES_HOST_LOOKUP_FAILURE

La recherche DNS a échoué.

Memcached::RES_UNKNOWN_READ_FAILURE

Echec de lecture sur le réseau.

Memcached::RES_PROTOCOL_ERROR

Mauvaise commande dans le protocole memcached.

Memcached::RES_CLIENT_ERROR

Erreur du coté du client.

Memcached::RES_SERVER_ERROR

Erreur du coté du serveur.

Memcached::RES_WRITE_FAILURE

Echec de l'écriture sur le réseau.

Memcached::RES_DATA_EXISTS

Echec de la comparaison et échange : l'élément que vous essayez de stocker a été modifié depuis votre dernière lecture.

Memcached::RES_NOTSTORED

L'élément n'a pas été stocké, mais pas à cause d'une erreur. Ceci est normal, et signifie qu'une condition pour un ajout "add" ou un remplacement "replace" n'a pas été satisfait, ou qu'un élément a été mise dans une queue d'effacement.

Memcached::RES_NOTFOUND

L'élément avec cette clé n'a pas été trouvé (avec une opération "get" ou "cas").

Memcached::RES_PARTIAL_READ

Erreur de lecture partielle sur le réseau.

Memcached::RES_SOME_ERRORS

Des erreurs sont survenir durant une lecture multiple.

Memcached::RES_NO_SERVERS

Liste de serveurs vide.

Memcached::RES_END

Fin de jeu de résultats.

Memcached::RES_ERRNO

Erreur système.

Memcached::RES_BUFFERED

L'opération a été bufferisée.

Memcached::RES_TIMEOUT

Le délai d'exécution de l'opération a expiré.

Memcached::RES_BAD_KEY_PROVIDED

Mauvaise clé.

Memcached::RES_CONNECTION_SOCKET_CREATE_FAILURE

Impossible de créer un socket.

Memcached::RES_PAYLOAD_FAILURE

Échec de traitement : impossible de compresser, décompresser ou linéariser la valeur.


Délai d'expiration

Certaines commandes de stockage imposent l'envoie d'un délai d'expiration (relatif à un élément ou à une commande émise par le client), sur le serveur. Dans ce cas, cette valeur doit être envoyée sous la forme d'un timestamp Unix (nombre de secondes depuis le 1er janvier 1970, sous forme d'entier), ou d'un nombre de secondes depuis l'heure courante. Dans le dernier cas, ce nombre de secondes ne peut pas excéder 30 jours, soit 60*60*24*30 secondes; si la valeur d'expiration est plus grande que cette valeur, le serveur le considérera comme un timestamp, plutôt qu'un délai.

Si la valeur d'expiration est 0 (la valeur par défaut), l'élément n'expire jamais, même s'il peut être effacé par le serveur pour faire de la place aux autres éléments.


  • « Délai d'expiration
  • Fonctions de rappel de résultats »
  • PHP Manual
  • Memcached
  • Fonctions de rappel

Fonctions de rappel

Sommaire

  • Fonctions de rappel de résultats
  • Fonctions de rappel sur clé absente


Fonctions de rappel de résultats

Les fonctions de rappel de résultats (type callback) sont appelées par les fonctions Memcached::getDelayed() ou Memcached::getDelayedBykey(), pour chaque élément du jeu de résultat. Les fonctions de rappel reçoivent un objet Memcached et un tableau avec les informations sur l'élément. La fonction de rappel n'a pas besoin de retourner quoi que ce soit.

Exemple #1 Exemple de fonction de rappel de résultats

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items);
$m->getDelayed(array('key1', 'key3'), true, 'result_cb');

function result_cb($memc, $item)
{
    var_dump($item);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["key"]=>
  string(4) "key1"
  ["value"]=>
  string(6) "value1"
  ["cas"]=>
  float(49)
}
array(3) {
  ["key"]=>
  string(4) "key3"
  ["value"]=>
  string(6) "value3"
  ["cas"]=>
  float(50)
}


Fonctions de rappel sur clé absente

Les fonctions de rappel sur clé absente sont appelées quand un élément ne peut pas être lu sur le serveur. La fonction de rappel reçoit un objet Memcached, la clé demandée, et une valeur de variable par référence. La fonction de rappel est alors responsable d'affecter la valeur, puis de retourner TRUE ou FALSE. Si la fonction de rappel retourne TRUE Memcached va stocker la valeur ainsi créée dans le serveur, et la retourner à la fonction appelante. Seules Memcached::get() et Memcached::getByKey() supportent ces fonctions, car le protocole memcache ne fournit aucune information sur l'absence de clé dans une requête multiclé.

Exemple #1 Fonctions de rappel sur clé absente

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$profile_info = $m->get('user:'.$user_id, 'user_info_cb');

function user_info_cb($memc, $key, &$value)
{
    $user_id = substr($key, 5);
    /* Lit un profil dans une base de données */
    /* ... */
    $value = $profile_info;
    return true;
}
?>


Support des sessions

Memcached fournit un gestionnaire de sessions qui peut être utilisé pour stocker les sessions sur memcache. Une instance distincte de memcached est utilisé en interne, ce qui fait que vous pouvez avoir un pool de serveur différent, si nécessaire. Les clés de sessions sont stockés avec le préfixe memc.sess.key., alors soyez-en conscient si vous utilisez le même serveur pour les sessions et pour le cache.

session.save_handler string

Donnez-lui la valeur de memcached pour activer le support des sessions sur memcached.

session.save_path string

Définit une liste de valeurs séparés par des virgules, avec la syntaxe nomdhote:port, à utiliser pour le pool de serveurs de sessions. Par exemple, "sess1:11211, sess2:11211".


La classe Memcached

(PECL memcached >= 0.1.0)

Introduction

Représente une connexion avec un serveur memcache.

Synopsis de la classe

Memcached {
public __construct ([ string $persistent_id ] )
public bool add ( string $key , mixed $value [, int $expiration ] )
public bool addByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )
public bool addServer ( string $host , int $port [, int $weight = 0 ] )
public bool addServers ( array $servers )
public bool append ( string $key , string $value )
public bool appendByKey ( string $server_key , string $key , string $value )
public bool cas ( float $cas_token , string $key , mixed $value [, int $expiration ] )
public bool casByKey ( float $cas_token , string $server_key , string $key , mixed $value [, int $expiration ] )
public int decrement ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )
public int decrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )
public bool delete ( string $key [, int $time = 0 ] )
public bool deleteByKey ( string $server_key , string $key [, int $time = 0 ] )
public bool deleteMulti ( array $keys [, int $time = 0 ] )
public bool deleteMultiByKey ( string $server_key , array $keys [, int $time = 0 ] )
public array fetch ( void )
public array fetchAll ( void )
public bool flush ([ int $delay = 0 ] )
public mixed get ( string $key [, callable $cache_cb [, float &$cas_token ]] )
public array getAllKeys ( void )
public mixed getByKey ( string $server_key , string $key [, callable $cache_cb [, float &$cas_token ]] )
public bool getDelayed ( array $keys [, bool $with_cas [, callable $value_cb ]] )
public bool getDelayedByKey ( string $server_key , array $keys [, bool $with_cas [, callable $value_cb ]] )
public mixed getMulti ( array $keys [, array &$cas_tokens [, int $flags ]] )
public array getMultiByKey ( string $server_key , array $keys [, string &$cas_tokens [, int $flags ]] )
public mixed getOption ( int $option )
public int getResultCode ( void )
public string getResultMessage ( void )
public array getServerByKey ( string $server_key )
public array getServerList ( void )
public array getStats ( void )
public array getVersion ( void )
public int increment ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )
public int incrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )
public bool isPersistent ( void )
public bool isPristine ( void )
public bool prepend ( string $key , string $value )
public bool prependByKey ( string $server_key , string $key , string $value )
public bool quit ( void )
public bool replace ( string $key , mixed $value [, int $expiration ] )
public bool replaceByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )
public bool resetServerList ( void )
public bool set ( string $key , mixed $value [, int $expiration ] )
public bool setByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )
public bool setMulti ( array $items [, int $expiration ] )
public bool setMultiByKey ( string $server_key , array $items [, int $expiration ] )
public bool setOption ( int $option , mixed $value )
public bool setOptions ( array $options )
public void setSaslAuthData ( string $username , string $password )
public bool touch ( string $key , int $expiration )
public bool touchByKey ( string $server_key , string $key , int $expiration )
}

Sommaire

  • Memcached::add — Ajoute un nouvel élément sous une nouvelle clé
  • Memcached::addByKey — Ajoute un élément sur un serveur désigné
  • Memcached::addServer — Ajoute un serveur au pool
  • Memcached::addServers — Ajoute plusieurs serveurs au pool
  • Memcached::append — Ajoute des données à un élément
  • Memcached::appendByKey — Ajoute des données à un élément
  • Memcached::cas — Compare et échange un élément
  • Memcached::casByKey — Compare et échange un élément sur un serveur
  • Memcached::__construct — Crée un objet Memcached
  • Memcached::decrement — Décrémente une valeur numérique
  • Memcached::decrementByKey — Décrémente une valeur numérique d'un élément, stocké sur un serveur spécifique
  • Memcached::delete — Efface un élément
  • Memcached::deleteByKey — Supprime un élément d'un serveur spécifique
  • Memcached::deleteMulti — Supprime plusieurs éléments
  • Memcached::deleteMultiByKey — Supprime plusieurs éléments depuis un serveur spécifique
  • Memcached::fetch — Lit le prochain résultat
  • Memcached::fetchAll — Lit tous les autres éléments
  • Memcached::flush — Invalide tous les éléments du cache
  • Memcached::get — Lit un élément
  • Memcached::getAllKeys — Récupère toutes les clés stockés sur tous les serveurs
  • Memcached::getByKey — Lit un élément sur un serveur spécifique
  • Memcached::getDelayed — Lit plusieurs éléments
  • Memcached::getDelayedByKey — Lit plusieurs éléments sur un serveur
  • Memcached::getMulti — Lit plusieurs éléments
  • Memcached::getMultiByKey — Lit plusieurs éléments d'un serveur spécifique
  • Memcached::getOption — Lit une option Memcached
  • Memcached::getResultCode — Retourne le code de résultat de la dernière opération
  • Memcached::getResultMessage — Retourne un message décrivant le résultat de la dernière opération
  • Memcached::getServerByKey — Dirige une clé sur un serveur
  • Memcached::getServerList — Liste les serveurs du pool memcached
  • Memcached::getStats — Lit des statistiques du pool de serveurs
  • Memcached::getVersion — Lit les informations de version du pool serveur
  • Memcached::increment — Incrémente numériquement un élément
  • Memcached::incrementByKey — Incrémente une valeur numérique d'un élément, stocké sur un serveur spécifique
  • Memcached::isPersistent — Vérifie si une connexion persistente vers memcache est en cours d'utilisation
  • Memcached::isPristine — Vérifie si l'instance a été créée récemment
  • Memcached::prepend — Préfixe des données à un élément existant
  • Memcached::prependByKey — Préfixe un élément existant
  • Memcached::quit — Ferme toutes les connexions ouvertes
  • Memcached::replace — Remplace un élément sous une clé
  • Memcached::replaceByKey — Remplace un élément spécifique sur un serveur désigné
  • Memcached::resetServerList — Supprime tous les serveurs depuis la liste des serveurs
  • Memcached::set — Stocke un élément
  • Memcached::setByKey — Stocke un élément sur un serveur spécifique
  • Memcached::setMulti — Stocke plusieurs éléments
  • Memcached::setMultiByKey — Stocke plusieurs éléments sur un serveur
  • Memcached::setOption — Configure une option Memcached
  • Memcached::setOptions — Définit des options Memcache
  • Memcached::setSaslAuthData — Définit les informations à utiliser pour l'authentification
  • Memcached::touch — Définit une nouvelle expiration sur un élément
  • Memcached::touchByKey — Définit une nouvelle expiration sur un élément d'un serveur spécifique


Ajoute un nouvel élément sous une nouvelle clé

  • « Memcached
  • Memcached::addByKey »
  • PHP Manual
  • Memcached
  • Ajoute un nouvel élément sous une nouvelle clé

Memcached::add

(PECL memcached >= 0.1.0)

Memcached::add — Ajoute un nouvel élément sous une nouvelle clé

Description

public bool Memcached::add ( string $key , mixed $value [, int $expiration ] )

Memcached::add() est similaire à Memcached::set(),mais l'opération échoue si la clé key existe déjà.

Liste de paramètres

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne la constante Memcached::RES_NOTSTORED si la clé existe déjà.

Voir aussi

  • Memcached::addByKey() - Ajoute un élément sur un serveur désigné
  • Memcached::set() - Stocke un élément
  • Memcached::replace() - Remplace un élément sous une clé


Ajoute un élément sur un serveur désigné

  • « Memcached::add
  • Memcached::addServer »
  • PHP Manual
  • Memcached
  • Ajoute un élément sur un serveur désigné

Memcached::addByKey

(PECL memcached >= 0.1.0)

Memcached::addByKey — Ajoute un élément sur un serveur désigné

Description

public bool Memcached::addByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )

Memcached::addByKey() est fonctionnellement équivalent à Memcached::add(), mais la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() va retourner la constante Memcached::RES_NOTSTORED si la clé existe déjà.

Voir aussi

  • Memcached::add() - Ajoute un nouvel élément sous une nouvelle clé
  • Memcached::set() - Stocke un élément
  • Memcached::replace() - Remplace un élément sous une clé


Ajoute un serveur au pool

  • « Memcached::addByKey
  • Memcached::addServers »
  • PHP Manual
  • Memcached
  • Ajoute un serveur au pool

Memcached::addServer

(PECL memcached >= 0.1.0)

Memcached::addServer — Ajoute un serveur au pool

Description

public bool Memcached::addServer ( string $host , int $port [, int $weight = 0 ] )

Memcached::addServer() ajoute le serveur indiqué au pool de serveurs. Aucune connexion n'est établie à ce moment-là, mais si vous utilisez la clé de distribution par hashage cohérent (via Memcached::DISTRIBUTION_CONSISTENT ou Memcached::OPT_LIBKETAMA_COMPATIBLE), certaines structures internes vont être mises à jour. Par conséquent, si vous devez ajouter plusieurs serveurs, il est recommandé d'utiliser Memcached::addServers() pour que la mise à jour n'arrive qu'une seule fois.

Le même serveur peut apparaître plusieurs fois dans le pool, car aucune recherche de doublon n'est faite. Ce n'est pas recommandé : utilisez plutôt le paramètre weight pour augmenter le poids d'un serveur dans la sélection.

Liste de paramètres

host

Le nom d'hôte du serveur memcache. Si le nom d'hôte n'est pas valide, les opérations sur les données vont définir le code résultat Memcached::RES_HOST_LOOKUP_FAILURE. Depuis la version 2.0.0b1, ce paramètre peut aussi spécifier le chemin vers un socket Unix, par exemple; /chemin/vers/memcached.sock pour utiliser le socket de domaine Unix, et dans ce cas, le paramètre port doit aussi être défini à 0.

port

Le port sur lequel memcache fonctionne. Généralement, c'est 11211. Depuis la version 2.0.0b1, définissez ce paramètre à 0 lorsque vous utilisez des sockets de domaine Unix.

weight

Le poids du serveur relativement au poids total de tous les serveurs. Cela contrôle la probabilité qu'un serveur soit sélectionné durant les opérations. Cette option n'est utilisée qu'avec la distribution cohérente, et généralement, cela correspond au total de mémoire disponible sur ce serveur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcached::addServer()

<?php
$m = new Memcached();

/* Ajoute deux serveurs, et le second est deux fois
   plus sollicité que le premier */
$m->addServer('mem1.domain.com', 11211, 33);
$m->addServer('mem2.domain.com', 11211, 67);
?>

Voir aussi

  • Memcached::addServers() - Ajoute plusieurs serveurs au pool
  • Memcached::resetServerList() - Supprime tous les serveurs depuis la liste des serveurs


Ajoute plusieurs serveurs au pool

  • « Memcached::addServer
  • Memcached::append »
  • PHP Manual
  • Memcached
  • Ajoute plusieurs serveurs au pool

Memcached::addServers

(PECL memcached >= 0.1.1)

Memcached::addServers — Ajoute plusieurs serveurs au pool

Description

public bool Memcached::addServers ( array $servers )

Memcached::addServers() ajoute les serveurs servers au pool de serveurs. Chaque entrée dans servers doit être un tableau, contenant le nom d'hôte, et optionnellement son poids. Aucune connexion n'est établie au serveur à ce moment-là.

Le même serveur peut apparaître plusieurs fois dans le pool, car aucune vérification de duplication n'est faite. Ce n'est pas recommandé. Au lieu de cela, il vaut mieux utiliser le paramètre weight pour augmenter le poids du serveur.

Liste de paramètres

array

Un tableau de serveurs à ajouter.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcached::addServers()

<?php
$m = new Memcached();

$servers = array(
    array('mem1.domain.com', 11211, 33),
    array('mem2.domain.com', 11211, 67)
);
$m->addServers($servers);
?>

Voir aussi

  • Memcached::addServer() - Ajoute un serveur au pool
  • Memcached::resetServerList() - Supprime tous les serveurs depuis la liste des serveurs


Ajoute des données à un élément

  • « Memcached::addServers
  • Memcached::appendByKey »
  • PHP Manual
  • Memcached
  • Ajoute des données à un élément

Memcached::append

(PECL memcached >= 0.1.0)

Memcached::append — Ajoute des données à un élément

Description

public bool Memcached::append ( string $key , string $value )

Memcached::append() ajouter les données de value à la fin d'un élément existant. La raison qui fait que value doit être une chaîne est que les autres types ne supportent pas cette opération.

Note:

Si la constante Memcached::OPT_COMPRESSION est activée, l'opération va échouer, et une alerte sera émise, car le préfixage de données compressée n'est pas possible.

Liste de paramètres

key

La clé de l'élément à suffixer.

value

La chaîne suffixée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Exemples

Exemple #1 Exemple avec Memcached::append()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->setOption(Memcached::OPT_COMPRESSION, false);

$m->set('foo', 'abc');
$m->append('foo', 'def');
var_dump($m->get('foo'));
?>

L'exemple ci-dessus va afficher :

string(6) "abcdef"

Voir aussi

  • Memcached::appendByKey() - Ajoute des données à un élément
  • Memcached::prepend() - Préfixe des données à un élément existant


Ajoute des données à un élément

  • « Memcached::append
  • Memcached::cas »
  • PHP Manual
  • Memcached
  • Ajoute des données à un élément

Memcached::appendByKey

(PECL memcached >= 0.1.0)

Memcached::appendByKey — Ajoute des données à un élément

Description

public bool Memcached::appendByKey ( string $server_key , string $key , string $value )

Memcached::appendByKey() est fonctionnellement équivalent à Memcached::append(), mais la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

key

La clé de l'élément à qui ajouter des données.

value

La chaîne à ajouter.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Voir aussi

  • Memcached::append() - Ajoute des données à un élément
  • Memcached::prepend() - Préfixe des données à un élément existant


Compare et échange un élément

  • « Memcached::appendByKey
  • Memcached::casByKey »
  • PHP Manual
  • Memcached
  • Compare et échange un élément

Memcached::cas

(PECL memcached >= 0.1.0)

Memcached::cas — Compare et échange un élément

Description

public bool Memcached::cas ( float $cas_token , string $key , mixed $value [, int $expiration ] )

Memcached::cas() effectue une opération de "check and set" (littéralement, vérifie et assigne), de manière à ce que l'élément ne soit stocké que si aucune autre client ne l'a mise à jour depuis qu'il a été lu par le client courant. La vérification est faîte via le paramètre cas_token qui est une valeur 64 bits unique, assignée à l'élément par memcached. Voyez la documentation de Memcached::get*() pour savoir comment obtenir cette valeur. Notez que cette valeur est représentée par un nombre décimal, à cause de limitations dans l'espace des entiers de PHP.

Liste de paramètres

cas_token

Valeur unique associée à un élément existant. Généré par memcached.

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() va retourner la constante Memcached::RES_DATA_EXISTS si l'élément que vous essayez de stocker a été modifié depuis votre dernière lecture.

Exemples

Exemple #1 Exemple avec Memcached::cas()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

do {
    /* Lit une IP et son CAS */
    $ips = $m->get('ip_block', null, $cas);
    /* Si l'IP n'existe pas encore, on la crèe et on fait un
       ajout atomique qui va échouer si l'IP a déjà été ajoutée */
    if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
        $ips = array($_SERVER['REMOTE_ADDR']);
        $m->add('ip_block', $ips);
    /* Sinon, on ajoute l'IP à la liste, et on la stocke avec l'opération
       compare-and-swap et le token, qui va échouer si la liste a été mise à jour */
    } else {
        $ips[] = $_SERVER['REMOTE_ADDR'];
        $m->cas($cas, 'ip_block', $ips);
    }
} while ($m->getResultCode() != Memcached::RES_SUCCESS);

?>

Voir aussi

  • Memcached::casByKey() - Compare et échange un élément sur un serveur


Compare et échange un élément sur un serveur

  • « Memcached::cas
  • Memcached::__construct »
  • PHP Manual
  • Memcached
  • Compare et échange un élément sur un serveur

Memcached::casByKey

(PECL memcached >= 0.1.0)

Memcached::casByKey — Compare et échange un élément sur un serveur

Description

public bool Memcached::casByKey ( float $cas_token , string $server_key , string $key , mixed $value [, int $expiration ] )

Memcached::casByKey() est fonctionnellement équivalent à Memcached::cas(), mais la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

cas_token

Valeur unique, associée à un élément existant. Généré par memcache.

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() va retourner Memcached::RES_DATA_EXISTS si l'élément que vous essayez de stocker a été modifié depuis votre dernière lecture.

Voir aussi

  • Memcached::cas() - Compare et échange un élément


Crée un objet Memcached

  • « Memcached::casByKey
  • Memcached::decrement »
  • PHP Manual
  • Memcached
  • Crée un objet Memcached

Memcached::__construct

(PECL memcached >= 0.1.0)

Memcached::__construct — Crée un objet Memcached

Description

public Memcached::__construct ([ string $persistent_id ] )

Crée un objet Memcached représentant la connexion au serveur memcache.

Liste de paramètres

persistent_id

Par défaut, les instances Memcached sont détruites à la fin de la requête. Pour créer un objet qui persiste entre les requêtes, utilisez le paramètre persistent_id pour spécifier un identifiant unique pour l'instance. Tous les objets créés avec le même identifiant persistent_id partageront la même connexion.

Valeurs de retour

Un objet Memcached.

Exemples

Exemple #1 Création d'un objet Memcached

<?php
/* Création d'un objet classique */
$m = new Memcached();
echo get_class($m);

/* Création d'un objet persistant */
$m2 = new Memcached('story_pool');
$m3 = new Memcached('story_pool');

/* maitnenant $m2 et $m3 partagent la même connexion */
?>


Décrémente une valeur numérique

  • « Memcached::__construct
  • Memcached::decrementByKey »
  • PHP Manual
  • Memcached
  • Décrémente une valeur numérique

Memcached::decrement

(PECL memcached >= 0.1.0)

Memcached::decrement — Décrémente une valeur numérique

Description

public int Memcached::decrement ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )

Memcached::decrement() décrémente la valeur numérique de offset unités. Si l'élément n'est pas numérique, une erreur sera émise. Si l'opération tente de décrémenter en dessous de 0, la nouvelle valeur sera 0. Memcached::decrement() va définir l'élément à la valeur du paramètre initial_value si la clé n'existe pas.

Liste de paramètres

key

La clé de l'élément à décrémenter.

offset

La quantité avec laquelle diminuer l'élément.

initial_value

La valeur à utiliser pour définir l'élément s'il n'existe pas.

expiry

Le délai d'expiration dans la définition de l'élément.

Valeurs de retour

Retourne la nouvelle valeur de l'élément en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcached::decrement()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('counter', 5);
$n = $m->decrement('counter');
var_dump($n);

$n = $m->decrement('counter', 10);
var_dump($n);

var_dump($m->get('counter'));

$m->set('counter', 'abc');
$n = $m->increment('counter');
// ^ va échouer en raison du fait que la valeur de l'élément n'est pas un numérique
var_dump($n);
?>

L'exemple ci-dessus va afficher :

int(4)
int(0)
int(0)
bool(false)

Voir aussi

  • Memcached::increment() - Incrémente numériquement un élément
  • Memcached::incrementByKey() - Incrémente une valeur numérique d'un élément, stocké sur un serveur spécifique
  • Memcached::decrementByKey() - Décrémente une valeur numérique d'un élément, stocké sur un serveur spécifique


Décrémente une valeur numérique d'un élément, stocké sur un serveur spécifique

  • « Memcached::decrement
  • Memcached::delete »
  • PHP Manual
  • Memcached
  • Décrémente une valeur numérique d'un élément, stocké sur un serveur spécifique

Memcached::decrementByKey

(PECL memcached >= 2.0.0)

Memcached::decrementByKey — Décrémente une valeur numérique d'un élément, stocké sur un serveur spécifique

Description

public int Memcached::decrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )

Memcached::decrementByKey() décrémente une valeur numérique d'un élément en spécifiant l'incrément via le paramètre offset. Si la valeur de l'élément n'est pas un numérique, une erreur sera émise. Si l'opération décrémente la valeur en dessous de 0, la nouvelle valeur sera 0. Memcached::decrementByKey() va définir l'élément à la valeur du paramètre initial_value si la clé n'existe pas.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

key

La clé de l'élément à décrémenter.

offset

L'incrément à utiliser sur la valeur de l'élément.

initial_value

La valeur à définir si l'éménent n'existe pas.

expiry

Le délai d'expiration pour la définition de l'élément.

Valeurs de retour

Retourne la nouvelle valeur de l'élément en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • Memcached::decrement() - Décrémente une valeur numérique
  • Memcached::increment() - Incrémente numériquement un élément
  • Memcached::incrementByKey() - Incrémente une valeur numérique d'un élément, stocké sur un serveur spécifique


Efface un élément

  • « Memcached::decrementByKey
  • Memcached::deleteByKey »
  • PHP Manual
  • Memcached
  • Efface un élément

Memcached::delete

(PECL memcached >= 0.1.0)

Memcached::delete — Efface un élément

Description

public bool Memcached::delete ( string $key [, int $time = 0 ] )

Memcached::delete() efface l'élément représenté par la clé key du serveur. Le paramètre time est la durée, en seconde (ou la date Unix) durant laquelle le client veut que le serveur refuse les opérations add et replace sur cette clé. Durant ce laps de temps, l'élément est mis dans une queue d'effacement, ce qui signifie qu'il ne sera pas possible d'utiliser la commande get, mais les commandes add and replace avec cette clé vont aussi échouer (la commande set va fonctionner, toutefois). Après ce laps de temps, l'élément sera effectivement effacé du serveur. Le paramètre time vaut par défaut 0, ce qui signifie que l'élément sera effacé immédiatement, et que les prochains stockages seront acceptés.

Liste de paramètres

key

La clé a effacer.

time

La durée d'effacement sur le serveur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Exemples

Exemple #1 Exemple avec Memcached::delete()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->delete('key1');
?>

Voir aussi

  • Memcached::deleteByKey() - Supprime un élément d'un serveur spécifique
  • Memcached::deleteMulti() - Supprime plusieurs éléments


Supprime un élément d'un serveur spécifique

  • « Memcached::delete
  • Memcached::deleteMulti »
  • PHP Manual
  • Memcached
  • Supprime un élément d'un serveur spécifique

Memcached::deleteByKey

(PECL memcached >= 0.1.0)

Memcached::deleteByKey — Supprime un élément d'un serveur spécifique

Description

public bool Memcached::deleteByKey ( string $server_key , string $key [, int $time = 0 ] )

Memcached::deleteByKey() est fonctionnellement équivalente à Memcached::delete(), hormis la variable libre server_key qui peut être utilisée pour diriger la variable key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

key

La clé à effacer.

time

La durée d'attente de l'effacement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Voir aussi

  • Memcached::delete() - Efface un élément
  • Memcached::deleteMulti() - Supprime plusieurs éléments
  • Memcached::deleteMultiByKey() - Supprime plusieurs éléments depuis un serveur spécifique


Supprime plusieurs éléments

  • « Memcached::deleteByKey
  • Memcached::deleteMultiByKey »
  • PHP Manual
  • Memcached
  • Supprime plusieurs éléments

Memcached::deleteMulti

(PECL memcached >= 2.0.0)

Memcached::deleteMulti — Supprime plusieurs éléments

Description

public bool Memcached::deleteMulti ( array $keys [, int $time = 0 ] )

Memcached::deleteMulti() supprime le tableau de clés keys du serveur. Le paramètre time représente du durée, en secondes (ou le temps Unix avant que) durant lequel le serveur refuse les commandes add et replace pour ces clés. Durant ce délai, l'élément est placé dans une file pour effacement, ce qui signifie qu'il n'est plus possible de le récupérer via la commande get, mais aussi, les commandes add et replace sur ces clés échoueront (néanmoins, la commande set réussiera). Après ce délai, l'élément est finalement supprimé de la mémoire du serveur. Le paramètre time vaut par défaut 0 (ce qui signifie que l'élément sera supprimé immédiatement et que les commandes de stockage suivantes avec ces clés réussiront).

Liste de paramètres

keys

Les clés à supprimer.

time

Le délai d'attente du serveur pour supprimer les éléments.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Memcached::getResultCode() retournera Memcached::RES_NOTFOUND si la clé n'existe pas.

Voir aussi

  • Memcached::delete() - Efface un élément
  • Memcached::deleteByKey() - Supprime un élément d'un serveur spécifique
  • Memcached::deleteMultiByKey() - Supprime plusieurs éléments depuis un serveur spécifique


Supprime plusieurs éléments depuis un serveur spécifique

  • « Memcached::deleteMulti
  • Memcached::fetch »
  • PHP Manual
  • Memcached
  • Supprime plusieurs éléments depuis un serveur spécifique

Memcached::deleteMultiByKey

(PECL memcached >= 2.0.0)

Memcached::deleteMultiByKey — Supprime plusieurs éléments depuis un serveur spécifique

Description

public bool Memcached::deleteMultiByKey ( string $server_key , array $keys [, int $time = 0 ] )

Memcached::deleteMultiByKey() est fonctionnellement identique à la méthode Memcached::deleteMulti(), excepté le fait que le paramètre server_key peut être utilisé pour lier les clés keys avec un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

keys

Les clés à supprimer.

time

Le délai d'attente du serveur avant suppression des éléments.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Memcached::getResultCode() va retourner Memcached::RES_NOTFOUND si la clé n'existe pas.

Voir aussi

  • Memcached::delete() - Efface un élément
  • Memcached::deleteByKey() - Supprime un élément d'un serveur spécifique
  • Memcached::deleteMulti() - Supprime plusieurs éléments


Lit le prochain résultat

  • « Memcached::deleteMultiByKey
  • Memcached::fetchAll »
  • PHP Manual
  • Memcached
  • Lit le prochain résultat

Memcached::fetch

(PECL memcached >= 0.1.0)

Memcached::fetch — Lit le prochain résultat

Description

public array Memcached::fetch ( void )

Memcached::fetch() lit le prochain résultat de la dernière requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le résultat suivant, ou bien FALSE sinon. La méthode Memcached::getResultCode() va retourner Memcached::RES_END si le jeu de résultats est fini.

Exemples

Exemple #1 Exemple avec Memcached::fetch()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
while ($result = $m->fetch()) {
    var_dump($result);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["key"]=>
  string(3) "int"
  "value"]=>
  int(99)
  ["cas"]=>
  float(2363)
}
array(3) {
  ["key"]=>
  string(5) "array"
  ["value"]=>
  array(2) {
    [0]=>
    int(11)
    [1]=>
    int(12)
  }
  ["cas"]=>
  float(2365)
}

Voir aussi

  • Memcached::fetchAll() - Lit tous les autres éléments
  • Memcached::getDelayed() - Lit plusieurs éléments


Lit tous les autres éléments

  • « Memcached::fetch
  • Memcached::flush »
  • PHP Manual
  • Memcached
  • Lit tous les autres éléments

Memcached::fetchAll

(PECL memcached >= 0.1.0)

Memcached::fetchAll — Lit tous les autres éléments

Description

public array Memcached::fetchAll ( void )

Memcached::fetchAll() lit tous les éléments de la dernière requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les résultats ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::fetchAll()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
var_dump($m->fetchAll());
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  array(3) {
    ["key"]=>
    string(3) "int"
    ["value"]=>
    int(99)
    ["cas"]=>
    float(2363)
  }
  [1]=>
  array(3) {
    ["key"]=>
    string(5) "array"
    ["value"]=>
    array(2) {
      [0]=>
      int(11)
      [1]=>
      int(12)
    }
    ["cas"]=>
    float(2365)
  }
}

Voir aussi

  • Memcached::fetch() - Lit le prochain résultat
  • Memcached::getDelayed() - Lit plusieurs éléments


Invalide tous les éléments du cache

  • « Memcached::fetchAll
  • Memcached::get »
  • PHP Manual
  • Memcached
  • Invalide tous les éléments du cache

Memcached::flush

(PECL memcached >= 0.1.0)

Memcached::flush — Invalide tous les éléments du cache

Description

public bool Memcached::flush ([ int $delay = 0 ] )

Memcached::flush() invalide tous les éléments du cache, immédiatement (par défaut), ou après un délai de delay secondes. Après une invalidation, aucun élément ne sera retourné en réponse à une commande de lecture (à moins qu'il ne soit stocké une nouvelle fois sous la même clé, après l'opération de Memcached::flush()). Cette opération ne libère pas la mémoire occupée par les éléments existants : cela se fera graduellement, avec le stockage des nouveaux éléments.

Liste de paramètres

delay

Le nombre de secondes d'attente avant l'invalidation.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::flush()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

/* invalide tous les éléments dans 10 secondes */
$m->flush(10);
?>


Lit un élément

  • « Memcached::flush
  • Memcached::getAllKeys »
  • PHP Manual
  • Memcached
  • Lit un élément

Memcached::get

(PECL memcached >= 0.1.0)

Memcached::get — Lit un élément

Description

public mixed Memcached::get ( string $key [, callable $cache_cb [, float &$cas_token ]] )

Memcached::get() lit un élément qui a été stocké précédemment avec la clé key. Si l'élément est trouvé, et que la variable cas_token a été fournie, elle contiendra la valeur CAS pour cet élément. Voyez Memcached::cas() pour savoir comment utiliser les CAS. Une Fonction de rappel en cas d'absence peut être spécifiée avec le paramètre cache_cb.

Liste de paramètres

key

La clé de l'élément à lire.

cache_cb

Une fonction de rappel en cas d'absence ou NULL.

cas_token

La variable où stocker le CAS.

Valeurs de retour

Retourne la valeur stockée dans le cache, ou bien FALSE sinon. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Exemples

Exemple #1 Exemple avec Memcached::get() 1

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('foo', 100);
var_dump($m->get('foo'));
?>

L'exemple ci-dessus va afficher :

int(100)

Exemple #2 Exemple avec Memcached::get() 2

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

if (!($ip = $m->get('ip_block'))) {
    if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
        $ip = array();
        $m->set('ip_block', $ip);
    } else {
        /* log error */
        /* ...       */
    }
}
?>

Voir aussi

  • Memcached::getByKey() - Lit un élément sur un serveur spécifique
  • Memcached::getMulti() - Lit plusieurs éléments
  • Memcached::getDelayed() - Lit plusieurs éléments


Récupère toutes les clés stockés sur tous les serveurs

  • « Memcached::get
  • Memcached::getByKey »
  • PHP Manual
  • Memcached
  • Récupère toutes les clés stockés sur tous les serveurs

Memcached::getAllKeys

(PECL memcached >= 2.0.0)

Memcached::getAllKeys — Récupère toutes les clés stockés sur tous les serveurs

Description

public array Memcached::getAllKeys ( void )

Memcached::getAllKeys() interroge chaque serveur memcache et récupère un tableau contenant toutes les clés stockés sur chacun d'eux. Ce n'est pas une opération atomitque, aussi, ce n'est pas une image réellement consistente des clés à l'instant donné. Sachant que memcache ne garantie pas de retourner tous les clés, vous ne pouvez pas être certain que toutes les clés ont bien été retournées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les clés stockées sur tous les serveurs en cas de succès ou FALSE si une erreur survient.


Lit un élément sur un serveur spécifique

  • « Memcached::getAllKeys
  • Memcached::getDelayed »
  • PHP Manual
  • Memcached
  • Lit un élément sur un serveur spécifique

Memcached::getByKey

(PECL memcached >= 0.1.0)

Memcached::getByKey — Lit un élément sur un serveur spécifique

Description

public mixed Memcached::getByKey ( string $server_key , string $key [, callable $cache_cb [, float &$cas_token ]] )

Memcached::getByKey() est fonctionnellement équivalente à Memcached::get(), hormis le fait que la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

key

La clé de l'élément à lire.

cache_cb

Fonction de rappel en cas d'absence, ou NULL

cas_token

La variable dans laquelle stocker le CAS.

Valeurs de retour

Retourne la valeur stockée dans le cache, ou FALSE sinon. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Voir aussi

  • Memcached::get() - Lit un élément
  • Memcached::getMulti() - Lit plusieurs éléments
  • Memcached::getDelayed() - Lit plusieurs éléments


Lit plusieurs éléments

  • « Memcached::getByKey
  • Memcached::getDelayedByKey »
  • PHP Manual
  • Memcached
  • Lit plusieurs éléments

Memcached::getDelayed

(PECL memcached >= 0.1.0)

Memcached::getDelayed — Lit plusieurs éléments

Description

public bool Memcached::getDelayed ( array $keys [, bool $with_cas [, callable $value_cb ]] )

Memcached::getDelayed() émet une commande à memcache pour lire plusieurs clé qui sont spécifiées dans le tableau keys. La méthode n'attend pas la réponse et retourne immédiatement. Lorsque vous êtes prêts à lire les éléments, appelez les méthodes Memcached::fetch() ou Memcached::fetchAll(). Si with_cas vaut TRUE le CAS sera aussi lu.

Au lieu de lire les résultats explicitement, vous pouvez spécifier une fonction de rappel de résultats via le paramètre value_cb.

Liste de paramètres

keys

Un tableau de clé à lire.

with_cas

S'il faut lire les CAS.

value_cb

Une fonction de rappel de résultats, ou NULL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::getDelayed()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
var_dump($m->fetchAll());
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  array(3) {
    ["key"]=>
    string(3) "int"
    ["value"]=>
    int(99)
    ["cas"]=>
    float(2363)
  }
  [1]=>
  array(3) {
    ["key"]=>
    string(5) "array"
    ["value"]=>
    array(2) {
      [0]=>
      int(11)
      [1]=>
      int(12)
    }
    ["cas"]=>
    float(2365)
  }
}

Voir aussi

  • Memcached::getDelayedByKey() - Lit plusieurs éléments sur un serveur
  • Memcached::fetch() - Lit le prochain résultat
  • Memcached::fetchAll() - Lit tous les autres éléments


Lit plusieurs éléments sur un serveur

  • « Memcached::getDelayed
  • Memcached::getMulti »
  • PHP Manual
  • Memcached
  • Lit plusieurs éléments sur un serveur

Memcached::getDelayedByKey

(PECL memcached >= 0.1.0)

Memcached::getDelayedByKey — Lit plusieurs éléments sur un serveur

Description

public bool Memcached::getDelayedByKey ( string $server_key , array $keys [, bool $with_cas [, callable $value_cb ]] )

Memcached::getDelayedByKey() est fonctionnellement équivalent à Memcached::getDelayed(), mais la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

keys

Un tableau de clé à lire.

with_cas

S'il faut aussi lire les CAS.

value_cb

Une fonction de rappel de résultats, ou NULL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Voir aussi

  • Memcached::getDelayed() - Lit plusieurs éléments
  • Memcached::fetch() - Lit le prochain résultat
  • Memcached::fetchAll() - Lit tous les autres éléments


Lit plusieurs éléments

  • « Memcached::getDelayedByKey
  • Memcached::getMultiByKey »
  • PHP Manual
  • Memcached
  • Lit plusieurs éléments

Memcached::getMulti

(PECL memcached >= 0.1.0)

Memcached::getMulti — Lit plusieurs éléments

Description

public mixed Memcached::getMulti ( array $keys [, array &$cas_tokens [, int $flags ]] )

Memcached::getMulti() est similaire à la méthode Memcached::get(), mais au lieu d'un seul élément, elle sait lire plusieurs éléments spécifiés par le tableau keys. Si la variable cas_tokens est fournie, elle contiendra les CAS de chaque valeur trouvée.

Note:

Contrairement à Memcached::get(), il n'est pas possible de spécifier une fonction de rappel en cas d'absence pour la fonction Memcached::getMulti(), car le protocole de memcache ne fournit pas d'information sur les clés qui n'ont pas été trouvée.

Le paramètre flags sert à spécifier des options supplémentaires pour Memcached::getMulti(). Actuellement, la seule option disponible est Memcached::GET_PRESERVE_ORDER qui garantit que les clés sont retournées dans le même ordre que celui de leur requête.

Liste de paramètres

keys

Un tableau de clé à lire.

cas_tokens

La variable où stocker les CAS des éléments trouvés.

flags

Les options pour cette opération.

Valeurs de retour

Retourne un tableau d'élément lus ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::getMulti()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'), $cas);
var_dump($result, $cas);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}
array(2) {
  ["key1"]=>
  float(2360)
  ["key3"]=>
  float(2362)
}

Exemple #2 Exemple avec Memcached::GET_PRESERVE_ORDER

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$data = array(
    'foo' => 'foo-data',
    'bar' => 'bar-data',
    'baz' => 'baz-data',
    'lol' => 'lol-data',
    'kek' => 'kek-data',
);

$m->setMulti($data, 3600);

$null = null;
$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, $null, Memcached::GET_PRESERVE_ORDER);

foreach ($got as $k => $v) {
    echo "$k $v\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo

Voir aussi

  • Memcached::getMultiByKey() - Lit plusieurs éléments d'un serveur spécifique
  • Memcached::get() - Lit un élément
  • Memcached::getDelayed() - Lit plusieurs éléments


Lit plusieurs éléments d'un serveur spécifique

  • « Memcached::getMulti
  • Memcached::getOption »
  • PHP Manual
  • Memcached
  • Lit plusieurs éléments d'un serveur spécifique

Memcached::getMultiByKey

(PECL memcached >= 0.1.0)

Memcached::getMultiByKey — Lit plusieurs éléments d'un serveur spécifique

Description

public array Memcached::getMultiByKey ( string $server_key , array $keys [, string &$cas_tokens [, int $flags ]] )

Memcached::getMultiByKey() est fonctionnellement équivalent à Memcached::getMulti(), mais la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

keys

Un tableau de clé à lire.

cas_tokens

La variable où stocker les CAS des éléments trouvés.

flags

Les options de l'opération.

Valeurs de retour

Retourne le tableau des éléments trouvés ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Voir aussi

  • Memcached::getMulti() - Lit plusieurs éléments
  • Memcached::get() - Lit un élément
  • Memcached::getDelayed() - Lit plusieurs éléments


Lit une option Memcached

  • « Memcached::getMultiByKey
  • Memcached::getResultCode »
  • PHP Manual
  • Memcached
  • Lit une option Memcached

Memcached::getOption

(PECL memcached >= 0.1.0)

Memcached::getOption — Lit une option Memcached

Description

public mixed Memcached::getOption ( int $option )

Retourne la valeur de l'option Memcached option. Ces options sont définies par libmemcached, et d'autres sont spécifiques à cette extension. Voyez constantes Memcached pour plus d'informations.

Liste de paramètres

option

Une des constantes Memcached::OPT_*.

Valeurs de retour

Retourne la valeur de l'option demandée, ou bien FALSE si une erreur survient.

Exemples

Exemple #1 Lecture des options Memcached

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_COMPRESSION));
var_dump($m->getOption(Memcached::OPT_POLL_TIMEOUT));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
int(1000)

Voir aussi

  • Memcached::getOption()
  • Memcached::setOption() - Configure une option Memcached
  • Memcached Constants


Retourne le code de résultat de la dernière opération

  • « Memcached::getOption
  • Memcached::getResultMessage »
  • PHP Manual
  • Memcached
  • Retourne le code de résultat de la dernière opération

Memcached::getResultCode

(PECL memcached >= 0.1.0)

Memcached::getResultCode — Retourne le code de résultat de la dernière opération

Description

public int Memcached::getResultCode ( void )

Memcached::getResultCode() retourne une des constantes Memcached::RES_* qui indique l'état du résultat de la dernière opération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le code de résultat de la dernière opération Memcached.

Exemples

Exemple #1 Exemple avec Memcached::getResultCode()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->add('foo', 'bar');
if ($m->getResultCode() == Memcached::RES_NOTSTORED) {
    /* ... */
}
?>


Retourne un message décrivant le résultat de la dernière opération

  • « Memcached::getResultCode
  • Memcached::getServerByKey »
  • PHP Manual
  • Memcached
  • Retourne un message décrivant le résultat de la dernière opération

Memcached::getResultMessage

(PECL memcached >= 1.0.0)

Memcached::getResultMessage — Retourne un message décrivant le résultat de la dernière opération

Description

public string Memcached::getResultMessage ( void )

Memcached::getResultMessage() retourne une chaîne qui décrit le code résultat de la dernière méthode Memcached exécutée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Message décrivant le résultat de la dernière opération Memcached.

Exemples

Exemple #1 Exemple avec Memcached::getResultMessage()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->add('foo', 'bar'); // Succès la première fois
$m->add('foo', 'bar');
echo $m->getResultMessage(),"\n";
?>

L'exemple ci-dessus va afficher :

NOT STORED


Dirige une clé sur un serveur

  • « Memcached::getResultMessage
  • Memcached::getServerList »
  • PHP Manual
  • Memcached
  • Dirige une clé sur un serveur

Memcached::getServerByKey

(PECL memcached >= 0.1.0)

Memcached::getServerByKey — Dirige une clé sur un serveur

Description

public array Memcached::getServerByKey ( string $server_key )

Memcached::getServerByKey() retourne le serveur qui devrait être sélectionné par une clé server_key dans les opérations de type Memcached::*ByKey().

Liste de paramètres

server_key

La clé d'identification du serveur.

Valeurs de retour

Retourne un tableau contenant 3 clés : host, port, et weight en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::getServerByKey()

<?php
$m = new Memcached();
$m->addServers(array(
    array('mem1.domain.com', 11211, 40),
    array('mem2.domain.com', 11211, 40),
    array('mem3.domain.com', 11211, 20),
));

$m->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);

var_dump($m->getServerByKey('user'));
var_dump($m->getServerByKey('log'));
var_dump($m->getServerByKey('ip'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["host"]=>
  string(15) "mem3.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(20)
}
array(3) {
  ["host"]=>
  string(15) "mem2.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(40)
}
array(3) {
  ["host"]=>
  string(15) "mem2.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(40)
}


Liste les serveurs du pool memcached

  • « Memcached::getServerByKey
  • Memcached::getStats »
  • PHP Manual
  • Memcached
  • Liste les serveurs du pool memcached

Memcached::getServerList

(PECL memcached >= 0.1.0)

Memcached::getServerList — Liste les serveurs du pool memcached

Description

public array Memcached::getServerList ( void )

Memcached::getServerList() retourne la liste de tous les serveurs qui sont dans sa liste.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La liste de tous les serveurs du pool.

Exemples

Exemple #1 Exemple avec Memcached::getResultCode()

<?php
$m = new Memcached();
$m->addServers(array(
    array('mem1.domain.com', 11211, 20),
    array('mem2.domain.com', 11311, 80),
));
var_dump($m->getServerList());
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  array(3) {
    ["host"]=>
    string(15) "mem1.domain.com"
    ["port"]=>
    int(11211)
    ["weight"]=>
    int(20)
  }
  [1]=>
  array(3) {
    ["host"]=>
    string(15) "mem2.domain.com"
    ["port"]=>
    int(11311)
    ["weight"]=>
    int(80)
  }
}


Lit des statistiques du pool de serveurs

  • « Memcached::getServerList
  • Memcached::getVersion »
  • PHP Manual
  • Memcached
  • Lit des statistiques du pool de serveurs

Memcached::getStats

(PECL memcached >= 0.1.0)

Memcached::getStats — Lit des statistiques du pool de serveurs

Description

public array Memcached::getStats ( void )

Memcached::getStats() retourne un tableau contenant l'état de toutes les machines en fonctionnement. Voyez le » protocole memcached pour plus de détails sur ces statistiques.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de statistiques de serveurs, une entrée par serveur.

Exemples

Exemple #1 Exemple avec Memcached::getStats()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

print_r($m->getStats());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [localhost:11211] => Array
        (
            [pid] => 4933
            [uptime] => 786123
            [threads] => 1
            [time] => 1233868010
            [pointer_size] => 32
            [rusage_user_seconds] => 0
            [rusage_user_microseconds] => 140000
            [rusage_system_seconds] => 23
            [rusage_system_microseconds] => 210000
            [curr_items] => 145
            [total_items] => 2374
            [limit_maxbytes] => 67108864
            [curr_connections] => 2
            [total_connections] => 151
            [connection_structures] => 3
            [bytes] => 20345
            [cmd_get] => 213343
            [cmd_set] => 2381
            [get_hits] => 204223
            [get_misses] => 9120
            [evictions] => 0
            [bytes_read] => 9092476
            [bytes_written] => 15420512
            [version] => 1.2.6
        )

)


Lit les informations de version du pool serveur

  • « Memcached::getStats
  • Memcached::increment »
  • PHP Manual
  • Memcached
  • Lit les informations de version du pool serveur

Memcached::getVersion

(PECL memcached >= 0.1.5)

Memcached::getVersion — Lit les informations de version du pool serveur

Description

public array Memcached::getVersion ( void )

Memcached::getVersion() retourne un tableau contenant les informations de version disponibles de tous les serveurs memcache.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Tableau de versions de serveurs, une par serveur.

Exemples

Exemple #1 Exemple avec Memcached::getVersion()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

print_r($m->getVersion());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [localhost:11211] => 1.2.6
)


Incrémente numériquement un élément

  • « Memcached::getVersion
  • Memcached::incrementByKey »
  • PHP Manual
  • Memcached
  • Incrémente numériquement un élément

Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::increment — Incrémente numériquement un élément

Description

public int Memcached::increment ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )

Memcached::increment() incrémente la valeur numérique de offset unités. Si l'élément n'est pas numérique, une erreur sera émise. Memcached::increment() va définir l'élément à la valeur du paramètre initial_value si la clé n'existe pas.

Liste de paramètres

key

La clé de l'élément à incrémenter.

offset

La quantité avec laquelle augmenter l'élément.

initial_value

La valeur à utiliser pour définir l'élément s'il n'existe pas.

expiry

Le délai d'expiration pour définir l'élément.

Valeurs de retour

Retourne la nouvelle valeur de l'élément, en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcached::getResultCode()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('counter', 0);
$m->increment('counter');
$n = $m->increment('counter', 10);
var_dump($n);

$m->set('counter', 'abc');
$n = $m->increment('counter');
// ^ va échouer en raison du fait que la valeur de l'élément n'est pas un numérique
var_dump($n);
?>

L'exemple ci-dessus va afficher :

int(11)
bool(false)

Voir aussi

  • Memcached::decrement() - Décrémente une valeur numérique
  • Memcached::decrementByKey() - Décrémente une valeur numérique d'un élément, stocké sur un serveur spécifique
  • Memcached::incrementByKey() - Incrémente une valeur numérique d'un élément, stocké sur un serveur spécifique


Incrémente une valeur numérique d'un élément, stocké sur un serveur spécifique

  • « Memcached::increment
  • Memcached::isPersistent »
  • PHP Manual
  • Memcached
  • Incrémente une valeur numérique d'un élément, stocké sur un serveur spécifique

Memcached::incrementByKey

(PECL memcached >= 2.0.0)

Memcached::incrementByKey — Incrémente une valeur numérique d'un élément, stocké sur un serveur spécifique

Description

public int Memcached::incrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )

Memcached::incrementByKey() incrémente une valeur numérique d'un élément en spécifiant l'incrément via le paramètre offset. Si la valeur de l'élément n'est pas un numérique, une erreur sera émise. Memcached::incrementByKey() va définir l'élément à la valeur du paramètre initial_value si la clé n'existe pas.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

key

La clé de l'élément à incrémenter.

offset

L'incrément à utiliser sur la valeur de l'élément.

initial_value

La valeur à définir si l'éménent n'existe pas.

expiry

Le délai d'expiration pour la définition de l'élément.

Valeurs de retour

Retourne la nouvelle valeur de l'élément en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • Memcached::decrement() - Décrémente une valeur numérique
  • Memcached::decrementByKey() - Décrémente une valeur numérique d'un élément, stocké sur un serveur spécifique
  • Memcached::increment() - Incrémente numériquement un élément


Vérifie si une connexion persistente vers memcache est en cours d'utilisation

  • « Memcached::incrementByKey
  • Memcached::isPristine »
  • PHP Manual
  • Memcached
  • Vérifie si une connexion persistente vers memcache est en cours d'utilisation

Memcached::isPersistent

(PECL memcached >= 2.0.0)

Memcached::isPersistent — Vérifie si une connexion persistente vers memcache est en cours d'utilisation

Description

public bool Memcached::isPersistent ( void )

Memcached::isPersistent() vérifie si les connexions aux serveurs memcache sont des connexions persistentes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'instance Memcache utilise une connexion persistente, FALSE sinon.

Voir aussi

  • Memcached::isPristine() - Vérifie si l'instance a été créée récemment


Vérifie si l'instance a été créée récemment

  • « Memcached::isPersistent
  • Memcached::prepend »
  • PHP Manual
  • Memcached
  • Vérifie si l'instance a été créée récemment

Memcached::isPristine

(PECL memcached >= 2.0.0)

Memcached::isPristine — Vérifie si l'instance a été créée récemment

Description

public bool Memcached::isPristine ( void )

Memcached::isPristine() vérifie si l'instance Memcache a été créée récemment.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'instance a été récemment créée, FALSE sinon.

Voir aussi

  • Memcached::isPersistent() - Vérifie si une connexion persistente vers memcache est en cours d'utilisation


Préfixe des données à un élément existant

  • « Memcached::isPristine
  • Memcached::prependByKey »
  • PHP Manual
  • Memcached
  • Préfixe des données à un élément existant

Memcached::prepend

(PECL memcached >= 0.1.0)

Memcached::prepend — Préfixe des données à un élément existant

Description

public bool Memcached::prepend ( string $key , string $value )

Memcached::prepend() ajouter les données de value au début d'un élément existant. La raison qui fait que value doit être une chaîne est que les autres types ne supportent pas cette opération.

Note:

Si la constante Memcached::OPT_COMPRESSION est activée, l'opération va échouer, et une alerte sera émise, car le préfixage de données compressée n'est pas possible.

Liste de paramètres

key

La clé de l'élément à préfixer.

value

La chaîne préfixée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() va retourner Memcached::RES_NOTSTORED si la clé n'existe pas.

Exemples

Exemple #1 Exemple avec Memcached::prepend()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->setOption(Memcached::OPT_COMPRESSION, false);

$m->set('foo', 'abc');
$m->prepend('foo', 'def');
var_dump($m->get('foo'));
?>

L'exemple ci-dessus va afficher :

string(6) "defabc"

Voir aussi

  • Memcached::prependByKey() - Préfixe un élément existant
  • Memcached::append() - Ajoute des données à un élément


Préfixe un élément existant

  • « Memcached::prepend
  • Memcached::quit »
  • PHP Manual
  • Memcached
  • Préfixe un élément existant

Memcached::prependByKey

(PECL memcached >= 0.1.0)

Memcached::prependByKey — Préfixe un élément existant

Description

public bool Memcached::prependByKey ( string $server_key , string $key , string $value )

Memcached::prependByKey() est fonctionnellement équivalent à Memcached::prepend(), mais la variable libre server_key peut être utilisée pour diriger la clé key sur un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

key

La clé de l'élément à préfixer.

value

La chaîne à préfixer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Voir aussi

  • Memcached::prepend() - Préfixe des données à un élément existant
  • Memcached::append() - Ajoute des données à un élément


Ferme toutes les connexions ouvertes

  • « Memcached::prependByKey
  • Memcached::replace »
  • PHP Manual
  • Memcached
  • Ferme toutes les connexions ouvertes

Memcached::quit

(PECL memcached >= 2.0.0)

Memcached::quit — Ferme toutes les connexions ouvertes

Description

public bool Memcached::quit ( void )

Memcached::quit() ferme toutes les connexions ouvertes avec des serveurs memcache.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Remplace un élément sous une clé

  • « Memcached::quit
  • Memcached::replaceByKey »
  • PHP Manual
  • Memcached
  • Remplace un élément sous une clé

Memcached::replace

(PECL memcached >= 0.1.0)

Memcached::replace — Remplace un élément sous une clé

Description

public bool Memcached::replace ( string $key , mixed $value [, int $expiration ] )

Memcached::replace() est similaire à Memcached::set(), mais l'opération va échouer si la clé key n'existe pas sur le serveur.

Liste de paramètres

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Voir aussi

  • Memcached::replaceByKey() - Remplace un élément spécifique sur un serveur désigné
  • Memcached::set() - Stocke un élément
  • Memcached::add() - Ajoute un nouvel élément sous une nouvelle clé


Remplace un élément spécifique sur un serveur désigné

  • « Memcached::replace
  • Memcached::resetServerList »
  • PHP Manual
  • Memcached
  • Remplace un élément spécifique sur un serveur désigné

Memcached::replaceByKey

(PECL memcached >= 0.1.0)

Memcached::replaceByKey — Remplace un élément spécifique sur un serveur désigné

Description

public bool Memcached::replaceByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )

Memcached::replaceByKey() est fonctionnellement équivalent à la fonction Memcached::replace(), hormis le fait que la variable libre server_key peut être utilisée pour diriger la clé key vers un serveur spécifique. Ceci est utile si vous voulez conserver un groupe de variables groupées sur un serveur.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. La méthode Memcached::getResultCode() va retourner Memcached::RES_NOTSTORED si la clé n'existe pas.

Voir aussi

  • Memcached::replace() - Remplace un élément sous une clé
  • Memcached::set() - Stocke un élément
  • Memcached::add() - Ajoute un nouvel élément sous une nouvelle clé


Supprime tous les serveurs depuis la liste des serveurs

  • « Memcached::replaceByKey
  • Memcached::set »
  • PHP Manual
  • Memcached
  • Supprime tous les serveurs depuis la liste des serveurs

Memcached::resetServerList

(PECL memcached >= 2.0.0)

Memcached::resetServerList — Supprime tous les serveurs depuis la liste des serveurs

Description

public bool Memcached::resetServerList ( void )

Memcached::resetserverlist() supprime tous les serveurs depuis la liste des serveurs connus, la rendant ainsi vide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • Memcached::addServer() - Ajoute un serveur au pool
  • Memcached::addServers() - Ajoute plusieurs serveurs au pool


Stocke un élément

  • « Memcached::resetServerList
  • Memcached::setByKey »
  • PHP Manual
  • Memcached
  • Stocke un élément

Memcached::set

(PECL memcached >= 0.1.0)

Memcached::set — Stocke un élément

Description

public bool Memcached::set ( string $key , mixed $value [, int $expiration ] )

Memcached::set() stocke la valeur value sur une serveur memcache, avec la clé d'identification key. Le paramètre expiration permet de contrôler le délai d'expiration automatique de la valeur.

La valeur peut être n'importe quelle type de valeur PHP, hormis une ressource, car elles ne peuvent pas être représentée sous forme linéaire. Si l'option Memcached::OPT_COMPRESSION est activée, la valeur linéarisée sera aussi compressée avant stockage.

Liste de paramètres

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::set()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));
/* L''object' va etre détruit dans 5 minutes */
$m->set('object', new stdclass, time() + 300);

var_dump($m->get('int'));
var_dump($m->get('string'));
var_dump($m->get('array'));
var_dump($m->get('object'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(99)
string(15) "a simple string"
array(2) {
  [0]=>
  int(11)
  [1]=>
  int(12)
}
object(stdClass)#1 (0) {
}

Voir aussi

  • Memcached::setByKey() - Stocke un élément sur un serveur spécifique
  • Memcached::add() - Ajoute un nouvel élément sous une nouvelle clé
  • Memcached::replace() - Remplace un élément sous une clé


Stocke un élément sur un serveur spécifique

  • « Memcached::set
  • Memcached::setMulti »
  • PHP Manual
  • Memcached
  • Stocke un élément sur un serveur spécifique

Memcached::setByKey

(PECL memcached >= 0.1.0)

Memcached::setByKey — Stocke un élément sur un serveur spécifique

Description

public bool Memcached::setByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )

Memcached::setByKey() est fonctionnellement équivalente à Memcached::set(), hormis le fait que la variable libre server_key peut être utilisée pour envoyer la clé key sur un serveur spécifique. Ceci est utile si vous voulez grouper certaines clés sur un serveur.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

key

La clé avec laquelle stocker la valeur.

value

La valeur à stocker.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::setByKey()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

/* Conserve les blocs d'IP sur un serveur */
$m->setByKey('api-cache', 'block-ip:169.254.253.252', 1);
$m->setByKey('api-cache', 'block-ip:169.127.127.202', 1);
?>

Voir aussi

  • Memcached::set() - Stocke un élément


Stocke plusieurs éléments

  • « Memcached::setByKey
  • Memcached::setMultiByKey »
  • PHP Manual
  • Memcached
  • Stocke plusieurs éléments

Memcached::setMulti

(PECL memcached >= 0.1.0)

Memcached::setMulti — Stocke plusieurs éléments

Description

public bool Memcached::setMulti ( array $items [, int $expiration ] )

Memcached::setMulti() est similaire à Memcached::set(), et au lieu de stocker une seule paire clé / valeur, elle fonctionne sur plusieurs éléments via items. Le délai d'expiration expiration s'applique à tous les éléments dans leur ensemble.

Liste de paramètres

items

Un tableau de paires clé/valeur à stocker sur le serveur.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Exemples

Exemple #1 Exemple avec Memcached::setMulti()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items, time() + 300);
?>

Voir aussi

  • Memcached::setMultiByKey() - Stocke plusieurs éléments sur un serveur
  • Memcached::set() - Stocke un élément


Stocke plusieurs éléments sur un serveur

  • « Memcached::setMulti
  • Memcached::setOption »
  • PHP Manual
  • Memcached
  • Stocke plusieurs éléments sur un serveur

Memcached::setMultiByKey

(PECL memcached >= 0.1.0)

Memcached::setMultiByKey — Stocke plusieurs éléments sur un serveur

Description

public bool Memcached::setMultiByKey ( string $server_key , array $items [, int $expiration ] )

Memcached::setMultiByKey() est l'équivalent fonctionnel de Memcached::setMulti(), hormis le fait que le paramètre libre server_key peut être utilisé pour diriger les clés de items vers un serveur spécifique. Ceci est utile si vous voulez conserver certaines clés groupées sur un seul serveur.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

items

Un tableau de paires clé/valeur à stocker sur le serveur.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Voir aussi

  • Memcached::setMulti() - Stocke plusieurs éléments
  • Memcached::set() - Stocke un élément


Configure une option Memcached

  • « Memcached::setMultiByKey
  • Memcached::setOptions »
  • PHP Manual
  • Memcached
  • Configure une option Memcached

Memcached::setOption

(PECL memcached >= 0.1.0)

Memcached::setOption — Configure une option Memcached

Description

public bool Memcached::setOption ( int $option , mixed $value )

Memcached::setOption() configure une valeur de l'option Memcached option avec la valeur value. Certaines options correspondent à celles définies dans libmemcached, et d'autres sont spécifiques à l'extension. Voyez les constantes Memcached pour plus d'informations.

Les options listées ci-dessous requièrent des valeurs fournies par les constantes :

  • Memcached::OPT_HASH requiert une constante Memcached::HASH_*.

  • Memcached::OPT_DISTRIBUTION requiert une constante Memcached::DISTRIBUTION_*.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Configuration d'une option Memcached

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);
$m->setOption(Memcached::OPT_HASH, Memcached::HASH_MURMUR);
$m->setOption(Memcached::OPT_PREFIX_KEY, "widgets");
echo "Le préfixe de la clé est maintenant : ", $m->getOption(Memcached::OPT_PREFIX_KEY), "\n";
?>

L'exemple ci-dessus va afficher :

bool(true)
Le préfixe de la clé est maintenant : widgets

Voir aussi

  • Memcached::getOption() - Lit une option Memcached
  • Memcached::setOptions() - Définit des options Memcache
  • Les constantes Memcached


Définit des options Memcache

  • « Memcached::setOption
  • Memcached::setSaslAuthData »
  • PHP Manual
  • Memcached
  • Définit des options Memcache

Memcached::setOptions

(PECL memcached >= 2.0.0)

Memcached::setOptions — Définit des options Memcache

Description

public bool Memcached::setOptions ( array $options )

Memcached::setOptions() est une variante de la méthode Memcached::setOption() qui prend un tableau d'options à définir.

Liste de paramètres

options

Un tableau associatif d'options où les clés représentent l'option à définir, et les valeurs, la nouvelle valeur pour l'option.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Définit des options Memcache

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);

$m->setOptions(array(Memcached::OPT_HASH => Memcached::HASH_MURMUR, Memcached::OPT_PREFIX_KEY => "widgets"));

var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);
echo "Le préfixe des clés est maintenant : ", $m->getOption(Memcached::OPT_PREFIX_KEY), "\n";
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
Le préfixe des clés est maintenant : widgets

Voir aussi

  • Memcached::getOption() - Lit une option Memcached
  • Memcached::setOption() - Configure une option Memcached
  • Les constantes Memcache


Définit les informations à utiliser pour l'authentification

  • « Memcached::setOptions
  • Memcached::touch »
  • PHP Manual
  • Memcached
  • Définit les informations à utiliser pour l'authentification

Memcached::setSaslAuthData

(PECL memcached >= 2.0.0)

Memcached::setSaslAuthData — Définit les informations à utiliser pour l'authentification

Description

public void Memcached::setSaslAuthData ( string $username , string $password )

Memcached::setSaslAuthData() définit le nom d'utilisateur ainsi que le mot de passe à utiliser lors de l'authentification SASL avec les serveurs memcache.

Cette méthode n'est disponible que lorsque l'extension memcache a été compilée avec le support SASL. Pour plus d'informations, veuillez vous reporter à la section sur l'installation de Memcache.

Liste de paramètres

username

Le nom d'utilisateur à utiliser pour l'authentification.

password

Le mot de passe à utiliser pour l'authentification.

Valeurs de retour

Aucune valeur n'est retournée.


Définit une nouvelle expiration sur un élément

  • « Memcached::setSaslAuthData
  • Memcached::touchByKey »
  • PHP Manual
  • Memcached
  • Définit une nouvelle expiration sur un élément

Memcached::touch

(PECL memcached >= 2.0.0)

Memcached::touch — Définit une nouvelle expiration sur un élément

Description

public bool Memcached::touch ( string $key , int $expiration )

Memcached::touch() définit une nouvelle valeur d'expiration pour une clé donnée.

Liste de paramètres

key

La clé avec laquelle stocker la valeur.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Voir aussi

  • Memcached::touchByKey() - Définit une nouvelle expiration sur un élément d'un serveur spécifique


Définit une nouvelle expiration sur un élément d'un serveur spécifique

  • « Memcached::touch
  • MemcachedException »
  • PHP Manual
  • Memcached
  • Définit une nouvelle expiration sur un élément d'un serveur spécifique

Memcached::touchByKey

(PECL memcached >= 2.0.0)

Memcached::touchByKey — Définit une nouvelle expiration sur un élément d'un serveur spécifique

Description

public bool Memcached::touchByKey ( string $server_key , string $key , int $expiration )

Memcached::touchByKey() est équivalente à la méthode Memcached::touch(), excepté le fait que le paramètre server_key peut être utilisé pour lier la clé key avec un serveur spécifique.

Liste de paramètres

server_key

La clé d'identification du serveur de stockage ou de récupération. Au lieu de hacher avec la clé courante pour l'élément, nous hachons avec la clé serveur lorsqu'il est décidé avec quel serveur memcache il convient de dialoguer. Ceci permet le regroupement des éléments correspondants sur un seul serveur permettant de meilleures performances lors d'opérations multiples.

key

La clé avec laquelle stocker la valeur.

expiration

Le délai d'expiration, par défaut à zéro. Voyez délais d'expiration pour plus d'informations.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Utilisez Memcached::getResultCode() si nécessaire.

Voir aussi

  • Memcached::touch() - Définit une nouvelle expiration sur un élément


La classe MemcachedException

(PECL memcached >= 0.1.0)

Introduction

Synopsis de la classe

MemcachedException extends RuntimeException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


mqseries

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • mqseries Fonctions
    • mqseries_back — MQSeries MQBACK
    • mqseries_begin — MQseries MQBEGIN
    • mqseries_close — MQSeries MQCLOSE
    • mqseries_cmit — MQSeries MQCMIT
    • mqseries_conn — MQSeries MQCONN
    • mqseries_connx — MQSeries MQCONNX
    • mqseries_disc — MQSeries MQDISC
    • mqseries_get — MQSeries MQGET
    • mqseries_inq — MQSeries MQINQ
    • mqseries_open — MQSeries MQOPEN
    • mqseries_put1 — MQSeries MQPUT1
    • mqseries_put — MQSeries MQPUT
    • mqseries_set — MQSeries MQSET
    • mqseries_strerror — Retourne le message d'erreur correspondant au code de résultat


Introduction

Cette extension fournit une interface de communication avec les serveurs de queue d'IBM WebSphere MQ.

L'interface imite l'API du client C de WebSphere MQ Series autant que possible, en utilisant les mêmes conventions de noms et fonctionnalités. Afin de comprendre le fonctionnement de cette extension, un minimum de connaissance de l'interface C est nécessaire.

Pour les MQ-options, MQ-structures, MQ-results etc., reportez-vous au "WebSphere MQ Application Programming Guide" et "WebSphere MQ Application Programming Reference".


Pré-requis

Une installation fonctionnelle IBM WebSphere MQ. Pour la compilation de l'extension, le SDK de IBM WebSphere MQ est aussi nécessaire.

Note: Soyez prévenus que lorsque vous fonctionne avec le client IBM WebSphere MQ, certaines méthodes ne sont pas disponibles. Ce n'est pas un problème avec l'extension, mais simplement la manière de fonctionner de WebSphere MQ Client Interface.

Pré-requis d'installation sur une plate-forme non-windows

Compilez l'extension et placez-la dans le dossier d'extension de PHP.

Pré-requis d'installation sur une plate-forme Windows

Pas de pré-requis additionnel.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mqseries.

Note: Le nom officiel de cette extension est mqseries.

Il y a deux moyens de se connecter au gestionnaire de queue. Ils dépendent de comment l'extension a été compilée.

  • Premièrement, et aussi par défaut, il y a la bibliothèque mqic. En compilant et liant l'extension avec les bibliothèques IBM WebSphere MQSeries, on peut se connecter à la Queue manager avec l'interface client. Les connexions distantes sont aussi possibles de cette manière.

  • L'autre moyen est de compiler et lier les bibliothèques mqm. En utilisant ces bibliothèques, il est possible d'utiliser le gestionnaire de transaction du serveur de queue.

Actuellement, la sélection de ces bibliothèques se fait en modifiant le fichier config.m4.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Pas de paramètre de configuration particulier.


Types de ressources

Cette extension définit une ressource de connexion et de object_handle.

Les fonctions mqseries_conn() et mqseries_connx() définissent des ressources de connexion.

La fonction mqseries_open() définit une ressource d'object_handle.


Constantes pré-définies

Pour chaque constante WebSphere MQ Constant, il y a un équivalent mqseries.

Pour les définitions et utilisation, reportez-vous au "WebSphere MQ Application Programming Guide" et "WebSphere MQ Application Programming Reference red books".

Le nom des constantes mqseries est fait en préfixant le nom de la constante WebSphere MQ avec MQSERIES_. Par exemple, les constantes de CompletionCode sont :

mqseries constants
Constante PHP | Constante MQ
MQSERIES_MQCC_OK | MQCC_OK
MQSERIES_MQCC_WARNING | MQCC_WARNING
MQSERIES_MQCC_FAILED | MQCC_FAILED
MQSERIES_MQCC_UNKNOWN | MQCC_UNKNOWN


mqseries Fonctions

Sommaire

  • mqseries_back — MQSeries MQBACK
  • mqseries_begin — MQseries MQBEGIN
  • mqseries_close — MQSeries MQCLOSE
  • mqseries_cmit — MQSeries MQCMIT
  • mqseries_conn — MQSeries MQCONN
  • mqseries_connx — MQSeries MQCONNX
  • mqseries_disc — MQSeries MQDISC
  • mqseries_get — MQSeries MQGET
  • mqseries_inq — MQSeries MQINQ
  • mqseries_open — MQSeries MQOPEN
  • mqseries_put1 — MQSeries MQPUT1
  • mqseries_put — MQSeries MQPUT
  • mqseries_set — MQSeries MQSET
  • mqseries_strerror — Retourne le message d'erreur correspondant au code de résultat


MQSeries MQBACK

  • « mqseries Fonctions
  • mqseries_begin »
  • PHP Manual
  • mqseries Fonctions
  • MQSeries MQBACK

mqseries_back

(PECL mqseries >= 0.10.0)

mqseries_back — MQSeries MQBACK

Description

void mqseries_back ( resource $hconn , resource &$compCode , resource &$reason )

mqseries_back() indique au gestionnaire de queue que tous les messages lus et écrits depuis le dernier point de synchronisation doivent être annulés. Les messages qui font partie d'une unité de travail seront effacés. Les messages lus comme unité de travail seront reinsérés dans la queue.

Using mqseries_back() fonctionne aussi en conjonction avec mqseries_begin() et uniquement lorsqu'on se connecte directement au gestionnaire de queues : cela ne fonctionne pas via l'interface mqclient.

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_back()

<?php
    mqseries_back($conn, $comp_code, $reason);

    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

Notes

Note:

mqseries_back() ne fonctionne pas lorsqu'un client MQSeries Client se connecter au Queue Manager.

Voir aussi

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_begin() - MQseries MQBEGIN


MQseries MQBEGIN

  • « mqseries_back
  • mqseries_close »
  • PHP Manual
  • mqseries Fonctions
  • MQseries MQBEGIN

mqseries_begin

(PECL mqseries >= 0.10.0)

mqseries_begin — MQseries MQBEGIN

Description

void mqseries_begin ( resource $hconn , array $beginOptions , resource &$compCode , resource &$reason )

mqseries_begin() commence une unité de travail, coordonnée par le gestionnaire de queue, et impliquant éventuellement des gestionnaires de ressources externes.

Using mqseries_begin() commence une unitée de travail. Soit mqseries_back(), soit mqseries_cmit() termineront l'unité de travail.

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_begin()

<?php
    $mqbo = array();
    mqseries_begin( $conn,
                    $mqbo,
                    $comp_code,
                    $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        /* reason code 2121 is a warning for more information see MQSeries reference manual.*/
        if ($reason !== 2121) {
            printf("CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        }
    }
?>

Notes

Note:

mqseries_begin() ne fonctionne pas lorsqu'un client MQSeries Client se connecter au Queue Manager.

Voir aussi

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_back() - MQSeries MQBACK
  • mqseries_cmit() - MQSeries MQCMIT


MQSeries MQCLOSE

  • « mqseries_begin
  • mqseries_cmit »
  • PHP Manual
  • mqseries Fonctions
  • MQSeries MQCLOSE

mqseries_close

(PECL mqseries >= 0.10.0)

mqseries_close — MQSeries MQCLOSE

Description

void mqseries_close ( resource $hconn , resource $hobj , int $options , resource &$compCode , resource &$reason )

mqseries_close() relache l'accès à un objet, et est l'inverse de la fonction mqseries_open().

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

hObj

Object handle.

Cette ressource représente l'objet à utiliser.

options

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_close()

<?php
    mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("close CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

Voir aussi

  • mqseries_open() - MQSeries MQOPEN
  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX


MQSeries MQCMIT

  • « mqseries_close
  • mqseries_conn »
  • PHP Manual
  • mqseries Fonctions
  • MQSeries MQCMIT

mqseries_cmit

(PECL mqseries >= 0.10.0)

mqseries_cmit — MQSeries MQCMIT

Description

void mqseries_cmit ( resource $hconn , resource &$compCode , resource &$reason )

mqseries_cmit() indique au gestionnaire de queue que l'application a atteint un point de synchronisation, et que tous les messages qui ont été lus et écrits depuis le dernier point de synchronisation ont été rendus permanants. Les messages placés dans la queue comme unité de travail sont maintenant accessibles autres applications. Les messages lus comme unité de travail sont maintenant détruits.

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_cmit()

<?php
    mqseries_cmit($conn, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("cmit CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

Notes

Note:

mqseries_back() ne fonctionne pas lorsqu'un client MQSeries Client se connecter au Queue Manager.

Voir aussi

  • mqseries_begin() - MQseries MQBEGIN
  • mqseries_back() - MQSeries MQBACK
  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX


MQSeries MQCONN

  • « mqseries_cmit
  • mqseries_connx »
  • PHP Manual
  • mqseries Fonctions
  • MQSeries MQCONN

mqseries_conn

(PECL mqseries >= 0.10.0)

mqseries_conn — MQSeries MQCONN

Description

void mqseries_conn ( string $qManagerName , resource &$hconn , resource &$compCode , resource &$reason )

mqseries_conn() établit la connexion avec le gestionnaire de queues. Il fournit une ressource de connexion, qui est utilisée par les autres fonctions de l'extension.

Liste de paramètres

qManagerName

Nom du gestionnaire de queues.

Nom du gestionnaire de queues avec qui l'application veut se connecter.

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_conn()

<?php
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("conn CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }
?>

Voir aussi

  • mqseries_disc() - MQSeries MQDISC


MQSeries MQCONNX

  • « mqseries_conn
  • mqseries_disc »
  • PHP Manual
  • mqseries Fonctions
  • MQSeries MQCONNX

mqseries_connx

(PECL mqseries >= 0.10.0)

mqseries_connx — MQSeries MQCONNX

Description

void mqseries_connx ( string $qManagerName , array &$connOptions , resource &$hconn , resource &$compCode , resource &$reason )

mqseries_connx() établit la connexion avec gestionnaire de queues. Il fournit une ressource de connexionm qui est utilisée par les autres fonctions de l'extension.

Liste de paramètres

qManagerName

Nom du gestionnaire de queues.

Nom du gestionnaire de queues avec qui l'application veut se connecter.

connOps

Options qui contrôle les actions de la fonction

Voir aussi la structure MQCNO.

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_connx()

<?php
    $mqcno = array(
        'Version' => MQSERIES_MQCNO_VERSION_2,
        'Options' => MQSERIES_MQCNO_STANDARD_BINDING,
        'MQCD' => array('ChannelName' => 'MQNX9420.CLIENT',
        'ConnectionName' => 'localhost',
        'TransportType' => MQSERIES_MQXPT_TCP)
    );

    mqseries_connx('MQNX9420', $mqcno, $conn, $comp_code,$reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("Connx CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }

?>

Exemple #2 Exemple avec mqseries_connx() en utilisant une connexion SSL et une URL OCSP Responder

<?php
    $mqcno = array(
        'Version' => 4, //MQCNO_VERSION_4
        'Options' => MQSERIES_MQCNO_STANDARD_BINDING,
        'MQCD' => array(
            'Version' => 7, //MQCD_VERSION_7
            'ConnectionName' => 'localhost',
            'TransportType' => MQSERIES_MQXPT_TCP,
            'ChannelName' => 'CONNECTIONCHANNEL',
            'SSLCipherSpec' => 'NULL_SHA'
        ),
        'MQSCO' => array(
            'KeyRepository' => '/var/mqm/qmgrs/QUEUEMGR/ssl/key', //Chemin local où le dossier contenant la clé SSL peut être trouvé
            'MQAIR' => array(
                'Version' => 2, //MQAIR_VERSION_2
                'AuthInfoType' => 2, //MQAIT_OCSP
                'OCSPResponderURL' => 'http://dummy.OCSP.responder'
            )
        )
    );

    mqseries_connx('QUEUEMGR', $mqcno, $conn, $comp_code,$reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("Connx CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }

?>

Voir aussi

  • mqseries_disc() - MQSeries MQDISC


MQSeries MQDISC

  • « mqseries_connx
  • mqseries_get »
  • PHP Manual
  • mqseries Fonctions
  • MQSeries MQDISC

mqseries_disc

(PECL mqseries >= 0.10.0)

mqseries_disc — MQSeries MQDISC

Description

void mqseries_disc ( resource $hconn , resource &$compCode , resource &$reason )

mqseries_disc() ferme la connexion entre le gestionnaire de queues et l'application. C'est l'inverse de mqseries_conn() et mqseries_connx().

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_disc()

<?php
    mqseries_disc($conn, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("disc CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

Voir aussi

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX


MQSeries MQGET

  • « mqseries_disc
  • mqseries_inq »
  • PHP Manual
  • mqseries Fonctions
  • MQSeries MQGET

mqseries_get

(PECL mqseries >= 0.10.0)

mqseries_get — MQSeries MQGET

Description

void mqseries_get ( resource $hConn , resource $hObj , array &$md , array &$gmo , int &$bufferLength , string &$msg , int &$data_length , resource &$compCode , resource &$reason )

mqseries_get() lit un message dans une queue locale, qui a été ouverte avec la fonction mqseries_open().

Liste de paramètres

hConn

Gestionnaire de connexion.

Cette ressource représente la connexion au manager de queues.

hObj

Gestionnaire d'object.

Cette ressource représente l'objet à utiliser.

md

Ressource de message (MQMD).

gmo

Options de message

bufferLength

Taille attendue du buffer de résultat

msg

Buffer contenant le message lu depuis l'objet.

data_length

Taille réelle du buffer

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_get()

<?php
// Ouvre la connexion vers le gestionnaire de file d'attente
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// $conn contient maintenant la référence vers la connexion au gestionnaire de file d'attente.

// Ouvre la connexion vers la file d'attente testq
    mqseries_open(
                $conn,
                array('ObjectName' => 'TESTQ'),
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
// $obj contient maintenant la référence vers l'objet (TESTQ)

// Définit un message de descripteur vide.
    $mdg = array();
// Définit les options de récupération des messages
    $gmo = array('Options' => MQSERIES_MQGMO_FAIL_IF_QUIESCING | MQSERIES_MQGMO_WAIT, 'WaitInterval' => 3000);

// Récupère les messages depuis la file d'attente
    mqseries_get($conn, $obj, $mdg, $gmo, 255, $msg, $data_length, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("GET CompCode:%d Reason:%d Text:%s<br>", $comp_code, $reason, mqseries_strerror($reason));
    }

 // Ouvre une connexion vers le gestionnaire de file d'attente
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// $conn contient maintenant la référence vers la connexion au gestionnaire de file d'attente.

// Ouvre la connexion vers le gestionnaire de file d'attente
    mqseries_open(
                $conn,
                array('ObjectName' => 'TESTQ'),
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
// $obj contient maintenant la référence vers l'objet (TESTQ)

?>

Voir aussi

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_put() - MQSeries MQPUT


MQSeries MQINQ

  • « mqseries_get
  • mqseries_open »
  • PHP Manual
  • mqseries Fonctions
  • MQSeries MQINQ

mqseries_inq

(PECL mqseries >= 0.10.0)

mqseries_inq — MQSeries MQINQ

Description

void mqseries_inq ( resource $hconn , resource $hobj , int $selectorCount , array $selectors , int $intAttrCount , resource &$intAttr , int $charAttrLength , resource &$charAttr , resource &$compCode , resource &$reason )

mqseries_inq() retourne un tableau d'entiers et un jeu de chaînes de caractères qui représentent un objet.

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

hObj

Object handle.

Cette ressource représente l'objet à utiliser.

selectorCount

Nombre de sélecteurs.

selectors

Tableau d'attributs de sélecteurs.

intAttrLength

Nombre d'attributs entiers.

intAttr

Tableau d'attributs entiers.

charAttrLength

Taille du buffer d'attributs de caractère.

charAttr

Attribut de caractère.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_inq()

<?php
    $int_attr = array();
    $char_attr = "";

    mqseries_inq($conn, $obj, 1, array(MQSERIES_MQCA_Q_MGR_NAME), 0, $int_attr, 48, $char_attr, $comp_code, $reason);

    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("INQ CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    } else {
        echo "INQ QManager name result ".$char_attr."<br>\n";
    }
?>

Voir aussi

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN


MQSeries MQOPEN

  • « mqseries_inq
  • mqseries_put1 »
  • PHP Manual
  • mqseries Fonctions
  • MQSeries MQOPEN

mqseries_open

(PECL mqseries >= 0.10.0)

mqseries_open — MQSeries MQOPEN

Description

void mqseries_open ( resource $hconn , array &$objDesc , int $option , resource &$hobj , resource &$compCode , resource &$reason )

mqseries_open() établit un accès à un objet.

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

objDesc

Ressource d'objet

options

Options qui contrôlent les actions de la fonction.

hObj

Object handle.

Cette ressource représente l'objet à utiliser.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_open()

<?php
    $mqods = array('ObjectName' => 'TESTQ');
    mqseries_open(
                $conn,
                $mqods,
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("open CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }
?>

Voir aussi

  • mqseries_close() - MQSeries MQCLOSE


MQSeries MQPUT1

  • « mqseries_open
  • mqseries_put »
  • PHP Manual
  • mqseries Fonctions
  • MQSeries MQPUT1

mqseries_put1

(PECL mqseries >= 0.10.0)

mqseries_put1 — MQSeries MQPUT1

Description

void mqseries_put1 ( resource $hconn , resource &$objDesc , resource &$msgDesc , resource &$pmo , string $buffer , resource &$compCode , resource &$reason )

mqseries_put1() ajoute un message dans la queue. Cette dernière n'a pas besoin d'être ouverte.

Liste de paramètres

hConn

Connection handle.

Cette ressource représente la connexion au manager de queues.

objDesc

Object descriptor. (MQOD)

Cette structure identifie la queue dans laquelle le message sera ajouté.

msgDesc

Ressource de message (MQMD).

pmo

Options d'ajout du message (MQPMO).

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_get() - MQSeries MQGET


MQSeries MQPUT

  • « mqseries_put1
  • mqseries_set »
  • PHP Manual
  • mqseries Fonctions
  • MQSeries MQPUT

mqseries_put

(PECL mqseries >= 0.10.0)

mqseries_put — MQSeries MQPUT

Description

void mqseries_put ( resource $hConn , resource $hObj , array &$md , array &$pmo , string $message , resource &$compCode , resource &$reason )

mqseries_put() ajoute un message dans une queue, ou une liste de distribution. La queue ou la liste de distribution doivent être ouvertes.

Liste de paramètres

hConn

Gestionnaire de connexion.

Cette ressource représente la connexion au manager de queues.

hObj

Object handle.

Cette ressource représente l'objet à utiliser.

md

Ressource de message (MQMD).

pmo

Option d'ajout de message

message

Le message à mettre dans la queue.

compCode

Code de complétion.

reason

La raison qui qualifie le compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec mqseries_put()

<?php
// Ouvre une connexion vers le gestionnaire de file d'attente
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// $conn contient maintenant la référence vers la connexion au gestionnaire de file d'attente.

// Ouvre la connexion vers la file d'attente testq
    mqseries_open(
                $conn,
                array('ObjectName' => 'TESTQ'),
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
// $obj contient maintenant la référence vers l'objet (TESTQ)

// Définit le tableau de description du message. Vérifie manuellement les références à MQSeries.
    $md = array(
                'Version' => MQSERIES_MQMD_VERSION_1,
                'Expiry' => MQSERIES_MQEI_UNLIMITED,
                'Report' => MQSERIES_MQRO_NONE,
                'MsgType' => MQSERIES_MQMT_DATAGRAM,
                'Format' => MQSERIES_MQFMT_STRING,
                'Priority' => 1,
                'Persistence' => MQSERIES_MQPER_PERSISTENT);

// Définit les options de transmission des messages.
    $pmo = array('Options' => MQSERIES_MQPMO_NEW_MSG_ID|MQSERIES_MQPMO_SYNCPOINT);

// Place la message 'Ping' dans la file d'attente.
    mqseries_put($conn, $obj, $md, $pmo, 'Ping', $comp_code, $reason);

    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("put CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }

// Ferme la référence à l'objet $obj
    mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);

// Déconnecte le gestionnaire de file d'attente.
    mqseries_disc($conn, $comp_code, $reason);

?>

Voir aussi

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_get() - MQSeries MQGET


MQSeries MQSET

  • « mqseries_put
  • mqseries_strerror »
  • PHP Manual
  • mqseries Fonctions
  • MQSeries MQSET

mqseries_set

(PECL mqseries >= 0.10.0)

mqseries_set — MQSeries MQSET

Description

void mqseries_set ( resource $hconn , resource $hobj , int $selectorcount , array $selectors , int $intattrcount , array $intattrs , int $charattrlength , array $charattrs , resource &$compCode , resource &$reason )

La fonction mqseries_set() sert à changer les attributs d'un objet représenté par une ressource. L'objet doit être une queue.

Liste de paramètres

hConn

Connection handle.

La ressource qui représente la connexion au gestionnaire de queues.

compCode

Code de complétion.

reason

Le code de qualitification du compCode.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • mqseries_inq() - MQSeries MQINQ


Retourne le message d'erreur correspondant au code de résultat

  • « mqseries_set
  • Réseau »
  • PHP Manual
  • mqseries Fonctions
  • Retourne le message d'erreur correspondant au code de résultat

mqseries_strerror

(PECL mqseries >= 0.10.0)

mqseries_strerror — Retourne le message d'erreur correspondant au code de résultat

Description

string mqseries_strerror ( int $reason )

mqseries_strerror() retourne le message d'erreur correspondant au code de résultat.

Liste de paramètres

reason

La raison qui qualifie le compCode.

Valeurs de retour

La chaîne de représentation de la raison du message d'erreur.

Exemples

Exemple #1 Exemple avec mqseries_strerror()

<?php
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("open CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }
?>

L'exemple ci-dessus va afficher :

Connx CompCode:2 Reason:2059 Text:Queue manager not available for connection.


Réseau

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions réseaux
    • checkdnsrr — Résolution DNS d'une adresse IP
    • closelog — Ferme la connexion à l'historique système
    • define_syslog_variables — Initialise toutes les variables relatives aux fonctions syslog
    • dns_check_record — Alias de checkdnsrr
    • dns_get_mx — Alias de getmxrr
    • dns_get_record — Lit les données DNS associées à un hôte
    • fsockopen — Ouvre un socket de connexion Internet ou Unix
    • gethostbyaddr — Retourne le nom d'hôte correspondant à une IP
    • gethostbyname — Retourne l'adresse IPv4 correspondant à un hôte
    • gethostbynamel — Retourne la liste d'IPv4 correspondante à un hôte
    • gethostname — Lit le nom de l'hôte
    • getmxrr — Retourne les enregistrements MX d'un hôte
    • getprotobyname — Retourne le numéro de protocole associé à un nom de protocole
    • getprotobynumber — Retourne le nom de protocole associé à un numéro de protocole
    • getservbyname — Retourne le numéro de port associé à un service Internet et un protocole
    • getservbyport — Retourne le service Internet qui correspond au port et protocole
    • header_register_callback — Enregistre une fonction de rappel pour l'envoi des en-têtes
    • header_remove — Supprime un en-tête HTTP
    • header — Envoie un en-tête HTTP
    • headers_list — Retourne la liste des en-têtes de réponse du script courant
    • headers_sent — Indique si les en-têtes HTTP ont déjà été envoyés
    • http_response_code — Récupère ou change le code de la réponse HTTP
    • inet_ntop — Convertit un paquet d'adresses internet en une représentation humainement lisible
    • inet_pton — Convertit une adresse IP lisible en sa représentation in_addr
    • ip2long — Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale
    • long2ip — Convertit une adresse IP (IPv4) en adresse IP numérique
    • openlog — Ouvre la connexion à l'historique système
    • pfsockopen — Ouvre un socket de connexion Internet ou Unix persistante
    • setcookie — Envoie un cookie
    • setrawcookie — Envoie un cookie sans encoder sa valeur en URL
    • socket_get_status — Alias de stream_get_meta_data
    • socket_set_blocking — Alias de stream_set_blocking
    • socket_set_timeout — Alias de stream_set_timeout
    • syslog — Génère un message dans l'historique système


  • « Réseau
  • Installation/Configuration »
  • PHP Manual
  • Réseau
  • Introduction

Introduction

Fournit diverses fonctions réseaux.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Les fonctions checkdnsrr(), getmxrr() et dns_get_record() nécessitent Bind sous Linux.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour le réseau
Nom | Défaut | Modifiable | Historique
define_syslog_variables | "0" | PHP_INI_ALL | Obsolète en PHP 5.3.0. Supprimé en PHP 5.4.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

define_syslog_variables booléen

Définit s'il faut ou pas définir les différentes variables de syslog, (e.g. $LOG_PID, $LOG_CRON, etc.). Éteindre cette fonctionnalité est recommandé pour les performances. Durant l'exécution, vous pouvez définir ces variables en appelant define_syslog_variables().


Types de ressources

Cette extension définit une ressource de pointeur de fichier, retourné par les fonctions fsockopen() et pfsockopen().


Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

Options de openlog()
Constante | Description
LOG_CONS | S'il y a une erreur lors de l'envoi de données au système d'historique, l'erreur sera écrite directement sur la console système.
LOG_NDELAY | Ouvre la connexion à l'historique immédiatement
LOG_ODELAY | (par défaut) retarde l'ouverture de la connexion jusqu'à ce que le premier message soit archivé
LOG_NOWAIT |
LOG_PERROR | Affiche aussi le message sur la sortie standard
LOG_PID | Ajoute le PID dans chaque message
Facilité de syslog()
Constante | Description
LOG_AUTH | sécurité/autorisation message (utilisez LOG_AUTHPRIV à la place sur les systèmes où cette constante n'est pas définie)
LOG_AUTHPRIV | sécurité/autorisation message (privé)
LOG_CRON | démon de temps (cron et at)
LOG_DAEMON | autres démons systèmes
LOG_KERN | messages noyau
LOG_LOCAL0 ... LOG_LOCAL7 | réservées pour une utilisation locale, elles ne sont pas disponibles sous Windows
LOG_LPR | imprimante système
LOG_MAIL | système de mail
LOG_NEWS | système de news USENET
LOG_SYSLOG | messages générés en interne par le démon syslogd
LOG_USER | messages génériques utilisateurs
LOG_UUCP | système UUCP
Priorités de syslog() (en ordre décroissant)
Constante | Description
LOG_EMERG | Le système est inutilisable
LOG_ALERT | Une mesure doit être prise immédiatement
LOG_CRIT | Conditions critiques
LOG_ERR | Erreurs
LOG_WARNING | Alertes
LOG_NOTICE | Notes (normales mais significatives)
LOG_INFO | Message d'informations
LOG_DEBUG | Message de déboguage
Options dns_get_record()
Constante | Description
DNS_A | Adresse IPv4
DNS_MX | Champs serveur Mail (MX)
DNS_CNAME | Champs alias (Nom canonique) (A)
DNS_NS | Champs de serveur autorité (NS)
DNS_PTR | Champs de pointeur (PTR)
DNS_HINFO | Champs d'informations d'hôte (HINFO) (voir la » Operating System Names pour la signification de ces valeurs)
DNS_SOA | Champs de délégation d'autorité (SOA)
DNS_TXT | Texte
DNS_ANY | Tous les champs. Sur la plupart des systèmes, cela retourne tous les champs, mais il ne faut pas s'y fier. Utilisez DNS_ALL.
DNS_AAAA | Adresse IPv6
DNS_ALL | Sollicite itérativement le serveur pour chaque type de champ.


Fonctions réseaux

Sommaire

  • checkdnsrr — Résolution DNS d'une adresse IP
  • closelog — Ferme la connexion à l'historique système
  • define_syslog_variables — Initialise toutes les variables relatives aux fonctions syslog
  • dns_check_record — Alias de checkdnsrr
  • dns_get_mx — Alias de getmxrr
  • dns_get_record — Lit les données DNS associées à un hôte
  • fsockopen — Ouvre un socket de connexion Internet ou Unix
  • gethostbyaddr — Retourne le nom d'hôte correspondant à une IP
  • gethostbyname — Retourne l'adresse IPv4 correspondant à un hôte
  • gethostbynamel — Retourne la liste d'IPv4 correspondante à un hôte
  • gethostname — Lit le nom de l'hôte
  • getmxrr — Retourne les enregistrements MX d'un hôte
  • getprotobyname — Retourne le numéro de protocole associé à un nom de protocole
  • getprotobynumber — Retourne le nom de protocole associé à un numéro de protocole
  • getservbyname — Retourne le numéro de port associé à un service Internet et un protocole
  • getservbyport — Retourne le service Internet qui correspond au port et protocole
  • header_register_callback — Enregistre une fonction de rappel pour l'envoi des en-têtes
  • header_remove — Supprime un en-tête HTTP
  • header — Envoie un en-tête HTTP
  • headers_list — Retourne la liste des en-têtes de réponse du script courant
  • headers_sent — Indique si les en-têtes HTTP ont déjà été envoyés
  • http_response_code — Récupère ou change le code de la réponse HTTP
  • inet_ntop — Convertit un paquet d'adresses internet en une représentation humainement lisible
  • inet_pton — Convertit une adresse IP lisible en sa représentation in_addr
  • ip2long — Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale
  • long2ip — Convertit une adresse IP (IPv4) en adresse IP numérique
  • openlog — Ouvre la connexion à l'historique système
  • pfsockopen — Ouvre un socket de connexion Internet ou Unix persistante
  • setcookie — Envoie un cookie
  • setrawcookie — Envoie un cookie sans encoder sa valeur en URL
  • socket_get_status — Alias de stream_get_meta_data
  • socket_set_blocking — Alias de stream_set_blocking
  • socket_set_timeout — Alias de stream_set_timeout
  • syslog — Génère un message dans l'historique système


Résolution DNS d'une adresse IP

  • « Fonctions réseaux
  • closelog »
  • PHP Manual
  • Fonctions réseaux
  • Résolution DNS d'une adresse IP

checkdnsrr

(PHP 4, PHP 5, PHP 7)

checkdnsrr — Résolution DNS d'une adresse IP

Description

bool checkdnsrr ( string $host [, string $type = "MX" ] )

Recherche l'enregistrement DNS de type type correspondant à l'hôte host.

Liste de paramètres

host

host peut être soit une adresse IP au format numérique, soit un nom d'hôte.

type

type peut être l'une des valeurs suivantes : A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT ou ANY.

Valeurs de retour

Retourne TRUE si un enregistrement a été trouvé, et FALSE en cas d'erreur ou si aucun enregistrement n'a été trouvé.

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sous Windows.
5.2.4 | Le type TXT a été ajouté.

Notes

Note:

Pour une compatibilité avec Windows avant son implémentation, essayez la classe » PEAR : » Net_DNS.

Voir aussi

  • dns_get_record() - Lit les données DNS associées à un hôte
  • getmxrr() - Retourne les enregistrements MX d'un hôte
  • gethostbyaddr() - Retourne le nom d'hôte correspondant à une IP
  • gethostbyname() - Retourne l'adresse IPv4 correspondant à un hôte
  • gethostbynamel() - Retourne la liste d'IPv4 correspondante à un hôte
  • la page du manuel man named(8)


Ferme la connexion à l'historique système

  • « checkdnsrr
  • define_syslog_variables »
  • PHP Manual
  • Fonctions réseaux
  • Ferme la connexion à l'historique système

closelog

(PHP 4, PHP 5, PHP 7)

closelog — Ferme la connexion à l'historique système

Description

bool closelog ( void )

closelog() ferme le pointeur qui sert à écrire dans l'historique système. L'utilisation de closelog() est optionnelle.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • syslog() - Génère un message dans l'historique système
  • openlog() - Ouvre la connexion à l'historique système


Initialise toutes les variables relatives aux fonctions syslog

  • « closelog
  • dns_check_record »
  • PHP Manual
  • Fonctions réseaux
  • Initialise toutes les variables relatives aux fonctions syslog

define_syslog_variables

(PHP 4, PHP 5 < 5.4.0)

define_syslog_variables — Initialise toutes les variables relatives aux fonctions syslog

Description

void define_syslog_variables ( void )

Initialise toutes les variables utilisées dans les fonctions syslog.

Valeurs de retour

Aucune valeur n'est retournée.

Variables Syslog
Variable | Valeur de la constante | Signification | Notes
$LOG_EMERG | LOG_EMERG | Le système n'est pas utilisable |
$LOG_ALERT | LOG_ALERT | Une action immédiate est requise |
$LOG_CRIT | LOG_CRIT | Conditions critiques |
$LOG_ERR | LOG_ERR |  |
$LOG_WARNING | LOG_WARNING |  |
$LOG_NOTICE | LOG_NOTICE |  |
$LOG_INFO | LOG_INFO |  |
$LOG_DEBUG | LOG_DEBUG |  |
$LOG_KERN | LOG_KERN |  |
$LOG_USER | LOG_USER | Niveau utilisateur générique |
$LOG_MAIL | LOG_MAIL | Enregistre au niveau email |
$LOG_DAEMON | LOG_DAEMON | Autres démons systèmes |
$LOG_AUTH | LOG_AUTH |  |
$LOG_SYSLOG | LOG_SYSLOG |  | Non disponible sous Netware
$LOG_LPR | LOG_LPR |  |
$LOG_NEWS | LOG_NEWS | Nouvelle Usenet | Non disponible sous HP-UX
$LOG_CRON | LOG_CRON |  | Non disponible sous toutes les plateformes
$LOG_AUTHPRIV | LOG_AUTHPRIV |  | Non disponible sous AIX
$LOG_LOCAL0 | LOG_LOCAL0 |  | Non disponible sous Windows et Netware
$LOG_LOCAL1 | LOG_LOCAL1 |  | Non disponible sous Windows et Netware
$LOG_LOCAL2 | LOG_LOCAL2 |  | Non disponible sous Windows et Netware
$LOG_LOCAL3 | LOG_LOCAL3 |  | Non disponible sous Windows et Netware
$LOG_LOCAL4 | LOG_LOCAL4 |  | Non disponible sous Windows et Netware
$LOG_LOCAL5 | LOG_LOCAL5 |  | Non disponible sous Windows et Netware
$LOG_LOCAL6 | LOG_LOCAL6 |  | Non disponible sous Windows et Netware
$LOG_LOCAL7 | LOG_LOCAL7 |  | Non disponible sous Windows et Netware
$LOG_PID | LOG_PID |  |
$LOG_CONS | LOG_CONS |  |
$LOG_ODELAY | LOG_ODELAY |  |
$LOG_NDELAY | LOG_NDELAY |  |
$LOG_NOWAIT | LOG_NOWAIT |  | Non disponible sous BeOS
$LOG_PERROR | LOG_PERROR |  | Non disponible sous AIX
Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Exemples

Exemple #1 Exemple avec define_syslog_variables()

<?php
// Vérifie si les variables syslog sont définies
if(!get_cfg_var('define_syslog_variables'))
{
    define_syslog_variables();
}

// Ouverture de l'historique
openlog('', $LOG_ODELAY, $LOG_MAIL | $LOG_USER);

// On continue le script ...
?>

Historique

Version | Description
5.4.0 | Cette fonction a été supprimée de PHP.
5.3.0 | Cette fonction lance maintenant des alertes de type E_DEPRECATED.

Voir aussi

  • openlog() - Ouvre la connexion à l'historique système
  • syslog() - Génère un message dans l'historique système
  • closelog() - Ferme la connexion à l'historique système


Alias de checkdnsrr

  • « define_syslog_variables
  • dns_get_mx »
  • PHP Manual
  • Fonctions réseaux
  • Alias de checkdnsrr

dns_check_record

(PHP 5, PHP 7)

dns_check_record — Alias de checkdnsrr()

Description

Cette fonction est un alias de : checkdnsrr().


Alias de getmxrr

  • « dns_check_record
  • dns_get_record »
  • PHP Manual
  • Fonctions réseaux
  • Alias de getmxrr

dns_get_mx

(PHP 5, PHP 7)

dns_get_mx — Alias de getmxrr()

Description

Cette fonction est un alias de : getmxrr().


Lit les données DNS associées à un hôte

  • « dns_get_mx
  • fsockopen »
  • PHP Manual
  • Fonctions réseaux
  • Lit les données DNS associées à un hôte

dns_get_record

(PHP 5, PHP 7)

dns_get_record — Lit les données DNS associées à un hôte

Description

array dns_get_record ( string $hostname [, int $type = DNS_ANY [, array &$authns [, array &$addtl [, bool &$raw = false ]]]] )

Lit les données DNS associées à l'hôte hostname.

Liste de paramètres

hostname

hostname doit être un nom d'hôte DNS valide, comme www.example.com. Des résolutions inversées peuvent être faites avec la notation in-addr.arpa, mais la fonction gethostbyaddr() est plus efficace pour faire des résolutions inverses.

Note:

En terme de standards DNS, les adresses email sont données au format utilisateur.hote (par exemple : webmestre.example.com au contraire du format webmestre@example.com). N'oubliez pas de vérifier cette adresse et de la modifier si nécessaire avant de la passer à la fonction mail().

type

Par défaut, dns_get_record() va rechercher toutes les ressources associées à hostname. Pour limiter la taille de la requête, le paramètre optionnel type peut prendre l'une des valeurs constantes suivantes : DNS_A, DNS_CNAME, DNS_HINFO, DNS_MX, DNS_NS, DNS_PTR, DNS_SOA, DNS_TXT, DNS_AAAA, DNS_SRV, DNS_NAPTR, DNS_A6, DNS_ALL ou DNS_ANY.

Note:

À cause des performances excentriques de la bibliothèque libresolv, suivant les plates-formes, DNS_ANY ne retournera pas toujours tous les enregistrements, et l'option DNS_ALL, bien que plus lente, le fera de manière plus sûre.

authns

Passé par référence, et, s'il est fourni, recevra les enregistrements de ressources pour les Authoritative Name Servers.

addtl

Passé par référence, et, s'il est fourni, recevra tous les enregistrements supplémentaires.

raw

Dans le cas du mode brut, nous requêtons uniquement le type demandé au lieu de parcourir tous les types avant d'accéder à celui demandé.

Valeurs de retour

dns_get_record() retourne un tableau de tableaux associatifs, ou FALSE si une erreur survient. Chaque tableau contient au minimum les index suivants :

Attributs de base DNS
Attribut | Signification
host | L'enregistrement de l'espace de nom DNS qui est décrit par les autres données.
class | dns_get_record() ne retourne que la classe d'enregistrement Internet et, en tant que tel, cet index vaudra toujours IN.
type | Chaîne de caractères contenant le type d'enregistrement. Des attributs supplémentaires seront aussi disponibles dans le tableau suivant la valeur de ce type. Reportez-vous à la table ci-dessous.
ttl | "Time To Live" : durée avant expiration de l'enregistrement. Cette valeur est différente de la durée avant expiration originale, mais plutôt cette valeur moins la durée depuis la dernière interrogation du serveur DNS responsable.

Autres index disponibles suivant le type DNS
Type | Valeur supplémentaire
A | ip: une adresse IPv4, au format numérique.
MX | pri : priorité du serveur de mail. Les nombres faibles indiquent une priorité importante. target : FQDN du serveur de mail. Voir aussi dns_get_mx().
CNAME | target : FQDN du nom de l'espace DNS qui sert d'alias à cet enregistrement.
NS | target : FQDN du nom de serveur qui est responsable de ce nom de domaine.
PTR | target : nom de domaine vers lequel cet enregistrement pointe.
TXT | txt : chaîne de caractères arbitrairement associée à cet enregistrement.
HINFO | cpu : numéro IANA désignant le processeur de la machine référencée par cet enregistrement. os : numéro IANA désignant le système d'exploitation de la machine référencée par cet enregistrement. Voir » Operating System Names pour connaître la signification de ces valeurs.
SOA | mname : FQDN de la source de cet enregistrement. rname : adresse email du contact administratif de ce domaine. serial : numéro de série du nom de domaine. refresh : intervalle de rafraîchissement (en secondes) que les serveurs de noms secondaires doivent utiliser pour mettre en cache ce nom de domaine. retry : durée (en secondes) d'attente après un rafraîchissement échoué, avant de faire une seconde tentative. expire : durée maximale (en secondes) de conservation d'une copie des données de zone sans pouvoir faire de rafraîchissement. minimum-ttl : durée minimale (en secondes) pendant laquelle un client conserve des données de zone avant qu'il ne soumette une nouvelle requête. Cette configuration peut être annulée par d'autres enregistrements.
AAAA | ipv6: adresse IPv6
A6(PHP >= 5.1.0) | masklen : longueur (en octets) à hériter depuis la cible spécifiée par chain. ipv6 : adresse pour que cet enregistrement spécifique fusionne avec chain. chain : l'enregistrement parent à fusionner avec les données ipv6.
SRV | pri : (priorité) les priorités les plus basses doivent être utilisées en premier. weight : classement pour choisir aléatoirement parmi les serveurs targets. target et port : nom d'hôte et port où le service est disponible. Pour plus d'informations, voir : » RFC 2782
NAPTR | order et pref : équivalent à pri et weight ci-dessus. flags, services, regex, et replacement : paramètres tels que définis dans la » RFC 2915.

Historique

Version | Description
5.4.0 | Ajout du paramètre raw.
5.3.0 | Cette fonction est maintenant disponible sous Windows.
5.3.0 | Avant cette version, si le paramètre authns est passé, le paramètre addtl était également nécessaire.

Exemples

Exemple #1 Exemple avec dns_get_record()

<?php
$result = dns_get_record("php.net");
print_r($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)

Exemple #2 Exemple avec dns_get_record() et DNS_ANY

Comme il est très courant de rechercher l'IP d'un serveur, une fois que le champ MX a été résolu, dns_get_record() retournera aussi un tableau dans le paramètre addtl qui contiendra les enregistrements associés. authns est aussi retourné en contenant une liste des serveurs autorité.

<?php
/* Demande tous ("ANY") les enregistrements pour php.net,
   puis crée les tableaus $authns et $addtl
   contenant une liste des noms de serveurs, et tous
   les enregistrements qui vont avec
   */
$result = dns_get_record("php.net", DNS_ANY, $authns, $addtl);
echo "Result = ";
print_r($result);
echo "Auth NS = ";
print_r($authns);
echo "Additional = ";
print_r($addtl);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Result = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)
Auth NS = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [1] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [2] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [3] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

)
Additional = Array
(
    [0] => Array
        (
            [host] => pair2.php.net
            [type] => A
            [ip] => 216.92.131.5
            [class] => IN
            [ttl] => 6766
        )

    [1] => Array
        (
            [host] => remote1.easydns.com
            [type] => A
            [ip] => 64.39.29.212
            [class] => IN
            [ttl] => 100384
        )

    [2] => Array
        (
            [host] => remote2.easydns.com
            [type] => A
            [ip] => 212.100.224.80
            [class] => IN
            [ttl] => 81241
        )

    [3] => Array
        (
            [host] => ns1.easydns.com
            [type] => A
            [ip] => 216.220.40.243
            [class] => IN
            [ttl] => 81241
        )

    [4] => Array
        (
            [host] => ns2.easydns.com
            [type] => A
            [ip] => 216.220.40.244
            [class] => IN
            [ttl] => 81241
        )

)

Notes

Note:

Pour une compatibilité avec les versions avant PHP 5.3.0 sur quelques systèmes d'exploitation, utilisez la classe » PEAR » Net_DNS.

Voir aussi

  • dns_get_mx() - Alias de getmxrr
  • dns_check_record() - Alias de checkdnsrr


Ouvre un socket de connexion Internet ou Unix

  • « dns_get_record
  • gethostbyaddr »
  • PHP Manual
  • Fonctions réseaux
  • Ouvre un socket de connexion Internet ou Unix

fsockopen

(PHP 4, PHP 5, PHP 7)

fsockopen — Ouvre un socket de connexion Internet ou Unix

Description

resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )

Initialise une connexion par socket à la ressource spécifiée par hostname.

PHP supporte les cibles dans les domaines Internet et Unix comme décrit dans Liste des modes de transport de sockets disponibles. Une liste des types de transports peut également être trouvée en utilisant la fonction stream_get_transports().

Le socket sera ouvert par défaut en mode bloquant. Vous pouvez changer de mode en utilisant : stream_set_blocking().

La fonction stream_socket_client() est similaire mais fournit plus d'options, incluant la connexion non-bloquante et la possibilité de fournir un contexte de flux.

Liste de paramètres

hostname

Si le support OpenSSL est installé, vous pouvez préfixer hostname avec ssl:// ou tls:// pour utiliser une connexion cliente SSL ou TLS sur TCP/IP pour vous connectez à l'hôte distant.

port

Le numéro du port. Ce paramètre peut être omis et ignoré en utilisant la valeur -1 pour les transports qui n'utilisent pas les ports, comme unix://.

errno

Si fourni, contient le numéro de l'erreur système qui survient lors de l'appel système à connect().

Si la valeur retournée par errno est 0 et que la fonction retourne FALSE, ce peut être une indication laissant penser que l'erreur est survenue avant l'appel à connect(). La plupart du temps, cela est du à un problème d'initialisation du socket.

errstr

Le message d'erreur, sous la forme d'une chaîne de caractères.

timeout

Le délai d'attente maximal, en secondes.

Note:

Si vous avez besoin de définir un délai limite pour lire/écrire des données à travers ce socket, utilisez la fonction stream_set_timeout(), car le paramètre timeout de la fonction fsockopen() est uniquement appliqué lors de la connexion du socket.

Valeurs de retour

fsockopen() retourne un pointeur de fichier qui peut être utilisé avec d'autres fonctions fichiers, telles fgets(), fgetss(), fputs(), fclose() et feof(). Si l'appel échoue, la fonction retourne FALSE.

Erreurs / Exceptions

Lance une alerte de type E_WARNING si le paramètre hostname n'est pas un domaine valide.

Exemples

Exemple #1 Exemple avec fsockopen()

<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";

    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

Exemple #2 Utilisation d'une connexion UDP

L'exemple ci-dessous décrit comment lire la date et l'heure grâce à un service UDP "daytime" (port 13), sur votre propre machine.

<?php
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) {
    echo "ERREUR : $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Notes

Note:

Suivant les environnements, le type 'domaine Unix' ou l'option timeout ne sont pas toujours disponibles.

Avertissement

Les sockets UDP semblent quelques fois avoir été ouverts sans erreur, même si l'hôte distant n'est pas accessible. L'erreur apparaît alors uniquement lorsque vous tentez de lire/écrire sur le socket. La raison de cela est que UDP est un protocole "connectionless", ce qui signifie que le système ne tentera pas d'établir un lien pour le socket tant qu'il ne doit pas recevoir/envoyer de données.

Note: Lors de la spécification d'adresses IPv6 au format numérique (e.g. fe80::1) vous devez placer l'adresse IP entre crochets. Par exemple : tcp://[fe80::1]:80.

Voir aussi

  • pfsockopen() - Ouvre un socket de connexion Internet ou Unix persistante
  • stream_socket_client() - Ouvre une connexion socket Internet ou Unix
  • stream_set_blocking() - Configure le mode bloquant d'un flux
  • stream_set_timeout() - Configure la durée d'expiration d'un flux
  • fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
  • fgetss() - Renvoie la ligne courante du fichier et élimine les balises HTML
  • fwrite() - Écrit un fichier en mode binaire
  • fclose() - Ferme un fichier
  • feof() - Teste la fin du fichier
  • socket_connect() - Crée une connexion sur un socket
  • L'extension Curl


Retourne le nom d'hôte correspondant à une IP

  • « fsockopen
  • gethostbyname »
  • PHP Manual
  • Fonctions réseaux
  • Retourne le nom d'hôte correspondant à une IP

gethostbyaddr

(PHP 4, PHP 5, PHP 7)

gethostbyaddr — Retourne le nom d'hôte correspondant à une IP

Description

string gethostbyaddr ( string $ip_address )

gethostbyaddr() retourne le nom d'hôte correspondant à l'IP ip_address.

Liste de paramètres

ip_address

L'adresse IP de l'hôte.

Valeurs de retour

Retourne le nom de l'hôte en cas de succès, l'adresse IP non modifiée en cas d'échec ou FALSE si une entrée mal formée est fournie.

Exemples

Exemple #1 Exemple avec gethostbyaddr()

<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);

echo $hostname;
?>

Voir aussi

  • gethostbyname() - Retourne l'adresse IPv4 correspondant à un hôte
  • gethostbynamel() - Retourne la liste d'IPv4 correspondante à un hôte


Retourne l'adresse IPv4 correspondant à un hôte

  • « gethostbyaddr
  • gethostbynamel »
  • PHP Manual
  • Fonctions réseaux
  • Retourne l'adresse IPv4 correspondant à un hôte

gethostbyname

(PHP 4, PHP 5, PHP 7)

gethostbyname — Retourne l'adresse IPv4 correspondant à un hôte

Description

string gethostbyname ( string $hostname )

Retourne l'adresse IPv4 correspondant à l'hôte hostname.

Liste de paramètres

hostname

Le nom de l'hôte.

Valeurs de retour

Retourne l'adresse IPv4, ou une chaîne contenant le nom d'hôte inchangé en cas d'échec.

Exemples

Exemple #1 Exemple avec gethostbyname()

<?php
$ip = gethostbyname('www.example.com');

echo $ip;
?>

Voir aussi

  • gethostbyaddr() - Retourne le nom d'hôte correspondant à une IP
  • gethostbynamel() - Retourne la liste d'IPv4 correspondante à un hôte
  • inet_pton() - Convertit une adresse IP lisible en sa représentation in_addr
  • inet_ntop() - Convertit un paquet d'adresses internet en une représentation humainement lisible


Retourne la liste d'IPv4 correspondante à un hôte

  • « gethostbyname
  • gethostname »
  • PHP Manual
  • Fonctions réseaux
  • Retourne la liste d'IPv4 correspondante à un hôte

gethostbynamel

(PHP 4, PHP 5, PHP 7)

gethostbynamel — Retourne la liste d'IPv4 correspondante à un hôte

Description

array gethostbynamel ( string $hostname )

Retourne la liste d'IPv4 correspondant à l'hôte hostname.

Liste de paramètres

hostname

Le nom de l'hôte.

Valeurs de retour

Retourne un tableau d'adresses IPv4, ou FALSE si hostname n'a pu être résolu.

Exemples

Exemple #1 Exemple avec gethostbynamel()

<?php
$hosts = gethostbynamel('www.example.com');
print_r($hosts);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 192.0.34.166
)

Voir aussi

  • gethostbyname() - Retourne l'adresse IPv4 correspondant à un hôte
  • gethostbyaddr() - Retourne le nom d'hôte correspondant à une IP
  • checkdnsrr() - Résolution DNS d'une adresse IP
  • getmxrr() - Retourne les enregistrements MX d'un hôte
  • La page du manuel named(8)


Lit le nom de l'hôte

  • « gethostbynamel
  • getmxrr »
  • PHP Manual
  • Fonctions réseaux
  • Lit le nom de l'hôte

gethostname

(PHP >= 5.3.0)

gethostname — Lit le nom de l'hôte

Description

string gethostname ( void )

gethostname() lit le nom d'hôte standard pour la machine hôte.

Valeurs de retour

Retourne une chaîne avec le nom d'hôte, en cas de succès et sinon FALSE.

Exemples

Exemple #1 Exemple avec gethostname()

<?php
echo gethostname(); // doit afficher i.e : sandie

// Ou, une option qui fonctionne également avant PHP 5.3
echo php_uname('n'); // doit afficher i.e : sandie
?>

Voir aussi

  • gethostbyname() - Retourne l'adresse IPv4 correspondant à un hôte
  • gethostbyaddr() - Retourne le nom d'hôte correspondant à une IP
  • php_uname() - Retourne les informations sur le système d'exploitation


Retourne les enregistrements MX d'un hôte

  • « gethostname
  • getprotobyname »
  • PHP Manual
  • Fonctions réseaux
  • Retourne les enregistrements MX d'un hôte

getmxrr

(PHP 4, PHP 5, PHP 7)

getmxrr — Retourne les enregistrements MX d'un hôte

Description

bool getmxrr ( string $hostname , array &$mxhosts [, array &$weight ] )

Effectue une recherche DNS pour obtenir les enregistrements MX de l'hôte hostname.

Liste de paramètres

hostname

Le nom d'hôte Internet.

mxhosts

La liste des enregistrements MX est placée dans le tableau mxhosts.

weight

Si le tableau weight est fourni, il sera rempli par les informations de poids.

Valeurs de retour

Retourne TRUE si des enregistrements sont trouvés, et FALSE si une erreur est rencontrée, ou si la recherche échoue.

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sous Windows.

Notes

Note:

Cette fonction ne doit pas être utilisée à des fin de vérification d'adresses. Seuls les serveurs de mails trouvés dans les enregistrements DNS sont retournés. Suivant la » RFC 2821 lorsque aucun serveur de mail n'est listé, hostname doit être utilisé comme serveur de mail, avec la priorité 0.

Note:

Pour une compatibilité avec les versions non supportées, utilisez la classe » PEAR : » Net_DNS.

Voir aussi

  • checkdnsrr() - Résolution DNS d'une adresse IP
  • dns_get_record() - Lit les données DNS associées à un hôte
  • gethostbyname() - Retourne l'adresse IPv4 correspondant à un hôte
  • gethostbynamel() - Retourne la liste d'IPv4 correspondante à un hôte
  • gethostbyaddr() - Retourne le nom d'hôte correspondant à une IP
  • la page du manuel named(8)


Retourne le numéro de protocole associé à un nom de protocole

  • « getmxrr
  • getprotobynumber »
  • PHP Manual
  • Fonctions réseaux
  • Retourne le numéro de protocole associé à un nom de protocole

getprotobyname

(PHP 4, PHP 5, PHP 7)

getprotobyname — Retourne le numéro de protocole associé à un nom de protocole

Description

int getprotobyname ( string $name )

getprotobyname() retourne le numéro de protocole associé avec le nom de protocole name, comme dans /etc/protocols.

Liste de paramètres

name

Le nom du protocole.

Valeurs de retour

Retourne le numéro du protocole, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec getprotobyname()

<?php
$protocol = 'tcp';
$get_prot = getprotobyname($protocol);
if ($get_prot === FALSE) {
    echo 'Protocole invalide';
} else {
    echo 'Protocole #' . $get_prot;
}
?>

Voir aussi

  • getprotobynumber() - Retourne le nom de protocole associé à un numéro de protocole


Retourne le nom de protocole associé à un numéro de protocole

  • « getprotobyname
  • getservbyname »
  • PHP Manual
  • Fonctions réseaux
  • Retourne le nom de protocole associé à un numéro de protocole

getprotobynumber

(PHP 4, PHP 5, PHP 7)

getprotobynumber — Retourne le nom de protocole associé à un numéro de protocole

Description

string getprotobynumber ( int $number )

getprotobynumber() retourne le nom de protocole associé avec le numéro de protocole name, comme dans /etc/protocols.

Liste de paramètres

number

Le numéro du protocole.

Valeurs de retour

Retourne le nom du protocole, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Voir aussi

  • getprotobyname() - Retourne le numéro de protocole associé à un nom de protocole


Retourne le numéro de port associé à un service Internet et un protocole

  • « getprotobynumber
  • getservbyport »
  • PHP Manual
  • Fonctions réseaux
  • Retourne le numéro de port associé à un service Internet et un protocole

getservbyname

(PHP 4, PHP 5, PHP 7)

getservbyname — Retourne le numéro de port associé à un service Internet et un protocole

Description

int getservbyname ( string $service , string $protocol )

getservbyname() retourne le numéro de port associé au service service et au protocole protocol, comme dans /etc/services.

Liste de paramètres

service

Le nom du service Internet, sous la forme d'une chaîne de caractères.

protocol

protocol vaut soit "tcp", soit "udp" (en minuscule).

Valeurs de retour

Retourne le numéro du port, ou FALSE si service ou protocol n'est pas trouvé.

Exemples

Exemple #1 Exemple avec getservbyname()

<?php
$services = array('http', 'ftp', 'ssh', 'telnet', 'imap',
'smtp', 'nicname', 'gopher', 'finger', 'pop3', 'www');

foreach ($services as $service) {
    $port = getservbyname($service, 'tcp');
    echo $service . ": " . $port . "<br />\n";
}
?>

Voir aussi

  • getservbyport() - Retourne le service Internet qui correspond au port et protocole
  • » http://www.iana.org/assignments/port-numbers pour une liste complète des numéros de port.


Retourne le service Internet qui correspond au port et protocole

  • « getservbyname
  • header_register_callback »
  • PHP Manual
  • Fonctions réseaux
  • Retourne le service Internet qui correspond au port et protocole

getservbyport

(PHP 4, PHP 5, PHP 7)

getservbyport — Retourne le service Internet qui correspond au port et protocole

Description

string getservbyport ( int $port , string $protocol )

getservbyport() cherche le service internet associé au port port pour le protocole protocol comme dans /etc/services.

Liste de paramètres

port

Le numéro du port.

protocol

protocol vaut soit "tcp", soit "udp" (en minuscule).

Valeurs de retour

Retourne le nom du service Internet, sous la forme d'une chaîne de caractères.

Voir aussi

  • getservbyname() - Retourne le numéro de port associé à un service Internet et un protocole


Enregistre une fonction de rappel pour l'envoi des en-têtes

  • « getservbyport
  • header_remove »
  • PHP Manual
  • Fonctions réseaux
  • Enregistre une fonction de rappel pour l'envoi des en-têtes

header_register_callback

(PHP 5 >= 5.4.0, PHP 7)

header_register_callback — Enregistre une fonction de rappel pour l'envoi des en-têtes

Description

bool header_register_callback ( callable $callback )

Enregistre une fonction de rappel qui sera appelée lorsque PHP tentera d'écrire sur la sortie.

callback est exécutée juste après que PHP ait préparé les en-têtes à envoyer, et avant qu'il ne les envoie. Ceci permet une manipulation fine des en-têtes avant leur envoi.

Liste de paramètres

callback

La fonction à appeler juste avant que les en-têtes ne soient envoyés. Elle n'accepte aucun paramètre et sa valeur de retour est ignorée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec header_register_callback()

<?php

header('Content-Type: text/plain');
header('X-Test: foo');

function foo() {
 foreach (headers_list() as $header) {
   if (strpos($header, 'X-Powered-By:') !== false) {
     header_remove('X-Powered-By');
   }
   header_remove('X-Test');
 }
}

$result = header_register_callback('foo');
echo "a";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Content-Type: text/plain

a

Notes

header_register_callback() est exécutée juste avant l'envoi des en-têtes, donc tout affichage déclenché par cette fonction peut casser l'affichage final de la sortie.

Note:

Les en-têtes ne seront accessibles et s'afficheront que lorsqu'un SAPI qui les supportent sera utilisé.

Voir aussi

  • headers_list() - Retourne la liste des en-têtes de réponse du script courant
  • header_remove() - Supprime un en-tête HTTP
  • header() - Envoie un en-tête HTTP


Supprime un en-tête HTTP

  • « header_register_callback
  • header »
  • PHP Manual
  • Fonctions réseaux
  • Supprime un en-tête HTTP

header_remove

(PHP 5 >= 5.3.0, PHP 7)

header_remove — Supprime un en-tête HTTP

Description

void header_remove ([ string $name ] )

Supprime un en-tête HTTP précédemment ajouté avec header().

Liste de paramètres

name

Le nom de l'en-tête à supprimer.

Note: Ce paramètre est insensible à la casse.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Supprimer un en-tête HTTP avec header_remove()

<?php
header("X-Foo: Bar");
header("X-Bar: Baz");
header_remove("X-Foo");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

X-Bar: Baz

Exemple #2 Supprimer tous les en-têtes HTTP avec header_remove()

<?php
header("X-Foo: Bar");
header("X-Bar: Baz");
header_remove();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Notes

Attention

    Cette fonction va supprimer tous les en-têtes
    configurés par PHP, y compris les cookies, les sessions et les en-têtes
    X-Powered-By.

Note:

    Les en-têtes ne seront accessibles et s'afficheront que lorsqu'un
    SAPI qui les supportent sera utilisé.

Voir aussi

  • header() - Envoie un en-tête HTTP
    •

  • headers_sent() - Indique si les en-têtes HTTP ont déjà été envoyés
    •


Envoie un en-tête HTTP

  • « header_remove
  • headers_list »
  • PHP Manual
  • Fonctions réseaux
  • Envoie un en-tête HTTP

header

(PHP 4, PHP 5, PHP 7)

header — Envoie un en-tête HTTP

Description

void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

header() permet de spécifier l'en-tête HTTP string lors de l'envoi des fichiers HTML. Reportez-vous à » HTTP/1.1 Specification pour plus d'informations sur les en-têtes HTTP.

N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include ou require, et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.

<html>
<?php
/* Ceci produira une erreur. Notez la sortie ci-dessus,
 * qui se trouve avant l'appel à la fonction header() */
header('Location: http://www.example.com/');
exit;
?>

Liste de paramètres

string

L'en-tête.

Il y a deux en-têtes spéciaux. Le premier commence par la chaîne "HTTP/" (insensible à la casse), qui est utilisée pour signifier le statut HTTP à envoyer. Par exemple, si vous avez configuré Apache pour utiliser les scripts PHP pour gérer les requêtes vers des fichiers inexistants (en utilisant la directive ErrorDocument), vous voulez-vous assurer que le script génère un code statut correct.

<?php
header("HTTP/1.0 404 Not Found");
?>

Le deuxième type d'appel spécial est "Location:". Non seulement il renvoie un en-tête au client, mais, en plus, il envoie un statut REDIRECT (302) au navigateur tant qu'un code statut 201 ou 3xx n'a pas été envoyé.

<?php
header("Location: http://www.example.com/"); /* Redirection du navigateur */

/* Assurez-vous que la suite du code ne soit pas exécutée une fois la redirection effectuée. */
exit;
?>

replace

Le paramètre optionnel replace indique si la fonction header() doit remplacer un en-tête précédemment émis, ou bien ajouter un autre en-tête du même type. Par défaut, un nouvel en-tête va écraser le précédent, mais si vous passez FALSE dans cet argument, vous pouvez forcer les en-têtes multiples pour un même type d'en-tête. Par exemple :

<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>

http_response_code

Force le code réponse HTTP à la valeur spécifiée.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
5.1.2 | Cette fonction prévient l'envoi de plus d'un en-tête en même temps pour lutter contre les attaques par injection d'en-tête.

Exemples

Exemple #1 Boîte de téléchargement

Si vous voulez que vos utilisateurs recoivent une alerte pour sauver les fichiers générés, comme si vous génériez un fichier PDF, vous pouvez utiliser l'en-tête » Content-Disposition pour fournir un nom de fichier par défaut, à afficher dans le dialogue de sauvegarde.

<?php
// Vous voulez afficher un pdf
header('Content-Type: application/pdf');

// Il sera nommé downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// Le source du PDF original.pdf
readfile('original.pdf');
?>

Exemple #2 Directives concernant la mise en cache

Les scripts PHP génèrent souvent du HTML dynamiquement, qui ne doit pas être mis en cache, ni par le client, ni par les proxy intermédiaires. On peut forcer la désactivation du cache de nombreux clients et proxy avec :

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date dans le passé
?>

Note:

Vous pouvez vous rendre compte que vos pages ne sont jamais mises en cache même si vous utilisez tous les en-têtes ci-dessus. Il existe toute une collection de paramètres que les utilisateurs peuvent modifier sur leur navigateur pour modifier le comportement par défaut du cache. En envoyant les en-têtes ci-dessus, vous pouvez imposer vos propres valeurs.

De plus, les paramètres session_cache_limiter() et session.cache_limiter peuvent être utilisés pour générer les en-têtes de caches corrects, lorsque les sessions sont utilisées.

Notes

Note:

Les en-têtes ne seront accessibles et s'afficheront que lorsqu'un SAPI qui les supportent sera utilisé.

Note:

Vous pouvez utiliser le système de cache (output buffering) pour contourner ce problème. Tous vos textes générés seront mis en buffer sur le serveur jusqu'à ce que vous les envoyiez. Vous pouvez utiliser les fonctions ob_start() et ob_end_flush() dans vos scripts, ou en modifiant la directive de configuration output_buffering dans votre fichier php.ini ou vos fichiers de configuration du serveur.

Note:

Le code statut HTTP doit toujours être le premier à être envoyé au client, au regard de l'actuel header() qui peut être le premier ou non. Le statut peut être écrasé en appelant header() avec un nouveau statut à n'importe quel moment même si l'en-tête HTTP a déjà été envoyé.

Note:

Il y a un bogue sous Microsoft Internet Explorer 4.01 qui empêche cet en-tête de fonctionner. Il n'y a pas d'autre solution. Il y a aussi un bogue dans Microsoft Internet Explorer 5.5 qui interfère avec ceci, mais qui peut être résolu en utilisant le Service Pack 2 ou plus récent.

Note: Si safe mode est activé, l'UID du script est ajouté à la partie realm des en-têtes WWW-Authenticate que vous envoyez avec cet en-tête.

Note:

HTTP/1.1 demande une URI absolue comme argument de » Location:, y compris le protocole, hôte et chemin absolu. Mais certains navigateurs acceptent les URI relatives. Vous pouvez généralement utiliser les variables globales $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] et dirname() pour construire vous-même une URI absolue :

<?php
/* Redirection vers une page différente du même dossier */
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>

Note:

L'ID de session n'est pas passé avec l'en-tête Location même si session.use_trans_sid est activé. Il doit être passé manuellement en utilisant la constante SID.

Voir aussi

  • headers_sent() - Indique si les en-têtes HTTP ont déjà été envoyés
  • setcookie() - Envoie un cookie
  • http_response_code() - Récupère ou change le code de la réponse HTTP
  • La section sur l'identification HTTP


Retourne la liste des en-têtes de réponse du script courant

  • « header
  • headers_sent »
  • PHP Manual
  • Fonctions réseaux
  • Retourne la liste des en-têtes de réponse du script courant

headers_list

(PHP 5, PHP 7)

headers_list — Retourne la liste des en-têtes de réponse du script courant

Description

array headers_list ( void )

headers_list() retourne un tableau avec la liste des en-têtes qui seront transmis au navigateur. Pour déterminer si ces en-têtes ont déjà été envoyés ou pas, utilisez la fonction headers_sent().

Valeurs de retour

Retourne un tableau d'en-têtes indexé numériquement.

Exemples

Exemple #1 Exemple avec headers_list()

<?php

/* setcookie() va ajouter un en-tête */
setcookie('foo', 'bar');

/* Définit un en-tête de réponse
Il sera ignoré par la majorité des navigateurs */
header("X-Sample-Test: foo");

/* Spécification de la réponse en texte simple */
header('Content-type: text/plain');

/* Quels sont les en-têtes qui vont être envoyés ? */
var_dump(headers_list());

?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(23) "X-Powered-By: PHP/5.1.3"
  [1]=>
  string(19) "Set-Cookie: foo=bar"
  [2]=>
  string(18) "X-Sample-Test: foo"
  [3]=>
  string(24) "Content-type: text/plain"
}

Notes

Note:

Les en-têtes ne seront accessibles et s'afficheront que lorsqu'un SAPI qui les supportent sera utilisé.

Voir aussi

  • headers_sent() - Indique si les en-têtes HTTP ont déjà été envoyés
  • header() - Envoie un en-tête HTTP
  • setcookie() - Envoie un cookie
  • apache_response_headers() - Récupère tous les en-têtes de réponse HTTP
  • http_response_code() - Récupère ou change le code de la réponse HTTP


Indique si les en-têtes HTTP ont déjà été envoyés

  • « headers_list
  • http_response_code »
  • PHP Manual
  • Fonctions réseaux
  • Indique si les en-têtes HTTP ont déjà été envoyés

headers_sent

(PHP 4, PHP 5, PHP 7)

headers_sent — Indique si les en-têtes HTTP ont déjà été envoyés

Description

bool headers_sent ([ string &$file [, int &$line ]] )

Vérifie si les en-têtes HTTP ont déjà été envoyés.

Vous ne pouvez plus envoyer d'en-têtes avec la fonction header() une fois que le bloc d'en-tête a été fermé. En utilisant cette fonction, vous pouvez au moins éviter de voir s'afficher les erreurs HTTP reliées. Une autre option consiste à utiliser le contrôle de sortie.

Liste de paramètres

file

Si les paramètres optionnels file et line sont fournis, headers_sent() va placer le nom du fichier source et le numéro de ligne qui ont débuté l'affichage, dans les variables file et line.

line

Le numéro de la ligne où la sortie a eu lieu.

Valeurs de retour

headers_sent() retourne FALSE si aucun en-tête n'a été envoyé, ou TRUE sinon.

Exemples

Exemple #1 Exemple avec headers_sent()

<?php

// Si aucun en-tête n'a été envoyé, envoyons-en un
if (!headers_sent()) {
    header('Location: http://www.example.com/');
    exit;
}

// Voici un exemple d'utilisation des paramètres optionnels de fichier et de ligne
// disponibles depuis PHP 4.3.0. Notez que $filename et $linenum sont
// transmis pour utilisation ultérieure. Ne les assignez pas avant de les utiliser.
if (!headers_sent($filename, $linenum)) {
    header('Location: http://www.example.com/');
    exit;

// Vous allez probablement déclencher une erreur ici
} else {

   echo "Les en-têtes ont déjà été envoyés, depuis le fichier $filename à la ligne $linenum\n" .
   "Il est donc impossible de vous rediriger automatiquement, aussi veuillez
   cliquez <a href=\"http://www.example.com\">ici</a>.\n";
   exit;
}

?>

Notes

Note:

Les en-têtes ne seront accessibles et s'afficheront que lorsqu'un SAPI qui les supportent sera utilisé.

Voir aussi

  • ob_start() - Enclenche la temporisation de sortie
  • trigger_error() - Déclenche une erreur utilisateur
  • headers_list() - Retourne la liste des en-têtes de réponse du script courant
  • header() - Envoie un en-tête HTTPpour plus de détails sur les tenants et aboutissants.


Récupère ou change le code de la réponse HTTP

  • « headers_sent
  • inet_ntop »
  • PHP Manual
  • Fonctions réseaux
  • Récupère ou change le code de la réponse HTTP

http_response_code

(PHP 5 >= 5.4.0, PHP 7)

http_response_code — Récupère ou change le code de la réponse HTTP

Description

int http_response_code ([ int $response_code ] )

Si vous ne passez pas de paramètre, http_response_code() retourne le code courant. Si vous passez un paramètre, elle change alors le code de la réponse HTTP.

Liste de paramètres

response_code

Le paramètre optionnel response_code change le code de la réponse.

<?php
http_response_code(404);
?>

Valeurs de retour

Le code de la réponse courant. Par défaut int(200).

Exemples

Exemple #1 Exemples avec http_response_code()

<?php

// Récupère le code courant de la réponse
var_dump(http_response_code()); // int(200)

// Change le code de la réponse
http_response_code(404);

// Récupère notre nouveau code de réponse
var_dump(http_response_code()); // int(404)
?>

L'exemple ci-dessus va afficher :

Voir aussi

  • header() - Envoie un en-tête HTTP
  • headers_list() - Retourne la liste des en-têtes de réponse du script courant


Convertit un paquet d'adresses internet en une représentation humainement lisible

  • « http_response_code
  • inet_pton »
  • PHP Manual
  • Fonctions réseaux
  • Convertit un paquet d'adresses internet en une représentation humainement lisible

inet_ntop

(PHP 5 >= 5.1.0, PHP 7)

inet_ntop — Convertit un paquet d'adresses internet en une représentation humainement lisible

Description

string inet_ntop ( string $in_addr )

Convertit une adresse 32 bit IPv4 ou 128 bit IPv6 (si PHP a été compilé avec le support IPv6) en une chaîne représentant une famille d'adresses.

Liste de paramètres

in_addr

Une adresse 32 bit IPv4, ou 128 bit IPv6.

Valeurs de retour

Retourne une représentation de l'adresse, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec inet_ntop()

<?php
$packed = chr(127) . chr(0) . chr(0) . chr(1);
$expanded = inet_ntop($packed);

/* Affiche : 127.0.0.1 */
echo $expanded;

$packed = str_repeat(chr(0), 15) . chr(1);
$expanded = inet_ntop($packed);

/* Affiche : ::1 */
echo $expanded;
?>

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sur les plate-formes Windows.

Voir aussi

  • long2ip() - Convertit une adresse IP (IPv4) en adresse IP numérique
  • ip2long() - Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale
  • inet_pton() - Convertit une adresse IP lisible en sa représentation in_addr


Convertit une adresse IP lisible en sa représentation in_addr

  • « inet_ntop
  • ip2long »
  • PHP Manual
  • Fonctions réseaux
  • Convertit une adresse IP lisible en sa représentation in_addr

inet_pton

(PHP 5 >= 5.1.0, PHP 7)

inet_pton — Convertit une adresse IP lisible en sa représentation in_addr

Description

string inet_pton ( string $address )

Convertit une adresse IPv4 ou IPv6 (si PHP a été compilé avec le support IPv6) humainement lisible en une structure binaire appropriée de famille d'adresses 32 bit ou 128 bit.

Liste de paramètres

address

Une adresse IPv4 ou IPv6.

Valeurs de retour

Retourne la représentation in_addr de l'adresse fournie par le paramètre address ou FALSE si le paramètre address fourni a une synthaxe invalide (par exemple, une adresse IPv4 sans point, ou une adresse IPv6 sans virgule).

Exemples

Exemple #1 Exemple avec inet_pton()

<?php
$in_addr = inet_pton('127.0.0.1');

$in6_addr = inet_pton('::1');
?>

Historique

Version | Description
5.3.0 | Cette fonction est maintenant disponible sur les plate-formes Windows.

Voir aussi

  • ip2long() - Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale
  • long2ip() - Convertit une adresse IP (IPv4) en adresse IP numérique
  • inet_ntop() - Convertit un paquet d'adresses internet en une représentation humainement lisible


Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale

  • « inet_pton
  • long2ip »
  • PHP Manual
  • Fonctions réseaux
  • Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale

ip2long

(PHP 4, PHP 5, PHP 7)

ip2long — Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale

Description

int ip2long ( string $ip_address )

Génère une adresse IPv4 à partir de son équivalent numérique.

ip2long() fonctionne également avec des adresses IP incomplètes. Lisez » http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm pour plus d'informations.

Liste de paramètres

ip_address

Une adresse au format standard.

Valeurs de retour

Retourne une adresse IPv4, ou FALSE si ip_address est invalide.

Historique

Version | Description
5.2.10 | Avant cette version, ip2long() retourne parfois un nombre valide même si la valeur passée n'est pas une adresse pointée (IPv4).

Exemples

Exemple #1 Exemple avec ip2long()

<?php
$ip = gethostbyname('www.example.com');
$out = "Les URLS suivantes sont équivalentes :<br />\n";
$out .= 'http://www.example.com/, http://' . $ip . '/, and http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $out;
?>

Exemple #2 Affichage d'une adresse IP

Ce second exemple montre comment afficher une adresse convertie à l'aide de la fonction printf() en PHP 4 et en PHP 5 :

<?php
$ip   = gethostbyname('www.example.com');
$long = ip2long($ip);

if ($long == -1 || $long === FALSE) {
    echo 'IP invalide, merci d\'essayer encore';
} else {
    echo $ip   . "\n";           // 192.0.34.166
    echo $long . "\n";           // -1073732954
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

Notes

Note:

Comme les entiers PHP sont signés et que beaucoup d'adresses IP peuvent être des entiers négatifs sur les architectures 32-bits, vous devez utiliser le motif "%u" de la fonction sprintf() ou de la fonction printf() pour récupérer la représentation sous forme de chaîne de caractères d'une adresse IP non signé.

Note:

ip2long() devrait retourner FALSE pour l'adresse IP 255.255.255.255 en PHP 5 <= 5.0.2. Ce comportement a été modifié en PHP 5.0.3 où il retournait -1 (comme en PHP 4).

Voir aussi

  • long2ip() - Convertit une adresse IP (IPv4) en adresse IP numérique
  • sprintf() - Retourne une chaîne formatée


Convertit une adresse IP (IPv4) en adresse IP numérique

  • « ip2long
  • openlog »
  • PHP Manual
  • Fonctions réseaux
  • Convertit une adresse IP (IPv4) en adresse IP numérique

long2ip

(PHP 4, PHP 5, PHP 7)

long2ip — Convertit une adresse IP (IPv4) en adresse IP numérique

Description

string long2ip ( string $proper_address )

long2ip() génère une adresse IP (format aaa.bbb.ccc.ddd) à partir de sa représentation littérale.

Liste de paramètres

proper_address

Une représentation d'une adresse.

Valeurs de retour

Retourne l'adresse IP Internet, sous la forme d'une chaîne de caractères.

Voir aussi

  • ip2long() - Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale


Ouvre la connexion à l'historique système

  • « long2ip
  • pfsockopen »
  • PHP Manual
  • Fonctions réseaux
  • Ouvre la connexion à l'historique système

openlog

(PHP 4, PHP 5, PHP 7)

openlog — Ouvre la connexion à l'historique système

Description

bool openlog ( string $ident , int $option , int $facility )

openlog() ouvre la connexion à l'historique système.

L'utilisation de openlog() est optionnelle. Cette fonction sera automatiquement appelée par la fonction syslog() si nécessaire, auquel cas ident vaudra par défaut FALSE.

Liste de paramètres

ident

La chaîne ident sera ajoutée à chaque message.

option

L'argument option indique les options de journalisation utilisées pour générer le message.

Options pour la fonction openlog()
Constante | Description
LOG_CONS | Si une erreur survient lors de l'envoi des données au gestionnaire d'historique, écrire directement l'erreur sur la console.
LOG_NDELAY | Ouvre immédiatement une connexion au gestionnaire d'historique.
LOG_ODELAY | Retarde l'ouverture de la connexion jusqu'à ce que le premier message soit enregistré (par défaut).
LOG_PERROR | Envoie le message au gestionnaire standard.
LOG_PID | Inclut le PID à chaque message.
Vous pouvez utiliser une ou plusieurs de ces options. Pour les combiner, utiliser l'opérateur OR. Par exemple, pour ouvrir immédiatement la connexion, écrire sur la console et inclure le PID de chaque message, utilisez : LOG_CONS | LOG_NDELAY | LOG_PID.

facility

L'argument facility sert à indiquer quel programme enregistre ce message. Cela vous permet de spécifier (sur la machine d'historique) comment traiter les messages venant de plusieurs serveurs.

Paramètre facility d'openlog()
Constante | Description
LOG_AUTH | sécurité/messages d'autorisation (utilisez LOG_AUTHPRIV, pour remplacer cette constante sur les systèmes où elle est définie).
LOG_AUTHPRIV | sécurité/messages d'autorisation (privé)
LOG_CRON | démon horloge (cron et at)
LOG_DAEMON | autres démons système
LOG_KERN | noyau (kernel)
LOG_LOCAL0 ... LOG_LOCAL7 | réservé pour utilisation locale. Inutilisable sous Windows
LOG_LPR | imprimante (line printer subsystem)
LOG_MAIL | messagerie mail
LOG_NEWS | USENET : groupes de news (newsgroup)
LOG_SYSLOG | messages générés en interne par syslogd
LOG_USER | messages utilisateurs génériques
LOG_UUCP | sous-système UUCP

Note:

LOG_USER est le seul type valide sous les environnements Windows.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • syslog() - Génère un message dans l'historique système
  • closelog() - Ferme la connexion à l'historique système


Ouvre un socket de connexion Internet ou Unix persistante

  • « openlog
  • setcookie »
  • PHP Manual
  • Fonctions réseaux
  • Ouvre un socket de connexion Internet ou Unix persistante

pfsockopen

(PHP 4, PHP 5, PHP 7)

pfsockopen — Ouvre un socket de connexion Internet ou Unix persistante

Description

resource pfsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )

pfsockopen() se comporte exactement comme fsockopen() mais la connexion ouverte le reste, même après la fin du script. C'est la version persistante de fsockopen().

Liste de paramètres

Pour plus d'informations sur les paramètres, reportez-vous à la documentation sur la fonction fsockopen().

Voir aussi

  • fsockopen() - Ouvre un socket de connexion Internet ou Unix


Envoie un cookie

  • « pfsockopen
  • setrawcookie »
  • PHP Manual
  • Fonctions réseaux
  • Envoie un cookie

setcookie

(PHP 4, PHP 5, PHP 7)

setcookie — Envoie un cookie

Description

bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

setcookie() définit un cookie qui sera envoyé avec le reste des en-têtes. Comme pour les autres en-têtes, les cookies doivent être envoyés avant toute autre sortie (c'est une restriction du protocole HTTP, pas de PHP). Cela vous impose d'appeler cette fonction avant toute balise <html> ou <head>.

Une fois que le cookie a été placé, il est accessible dans les variables globales $_COOKIE ou bien $HTTP_COOKIE_VARS. Notez que les superglobales comme $_COOKIE deviennent disponibles depuis PHP 4.1.0. Les valeurs de cookies existent aussi dans la variable $_REQUEST.

Liste de paramètres

Tous les arguments sauf name (nom) sont optionnels. Si seul le nom est présent, le cookie portant ce nom sera supprimé du navigateur de l'internaute. Vous pouvez aussi utiliser une chaîne vide ("") comme valeur, pour ignorer un argument. Comme l'argument expire est un entier, il ne peut pas être ignoré avec une chaîne vide, vous devez utiliser le zéro pour cela (0).

La » RFC 6265 est la référence pour l'interprétation des paramètres passés à setcookie().

name

Le nom du cookie.

value

La valeur du cookie. Cette valeur est stockée sur l'ordinateur du client ; ne stockez pas d'informations importantes. Si le paramètre name vaut 'cookiename', alors cette valeur est retrouvée en utilisant $_COOKIE['cookiename'].

expire

Le temps après lequel le cookie expire. C'est un timestamp Unix, donc, ce sera un nombre de secondes depuis l'époque Unix (1 Janvier 1970). En d'autres termes, vous devriez fixer cette valeur à l'aide de la fonction time() en y ajoutant le nombre de secondes après lequel on veut que le cookie expire. Vous pouvez utiliser aussi mktime(). time()+60*60*24*30 fera expirer le cookie dans 30 jours. Si vous ne spécifiez pas ce paramètre ou s'il vaut 0, le cookie expirera à la fin de la session (lorsque le navigateur sera fermé).

Note:

Vous pourrez noter que le paramètre expire prend un timestamp unique, et non pas la date au format Jour, JJ-Mois-AAAA HH:MM:SS GMT, car PHP fait la conversion en interne.

path

Le chemin sur le serveur sur lequel le cookie sera disponible. Si la valeur est '/', le cookie sera disponible sur l'ensemble du domaine domain. Si la valeur est '/foo/', le cookie sera uniquement disponible dans le répertoire /foo/ ainsi que tous ses sous-répertoires comme /foo/bar/ dans le domaine domain. La valeur par défaut est le répertoire courant où le cookie a été défini.

domain

Le domaine pour lequel le cookie est disponible. Le fait de définir le domaine à 'www.example.com' rendra le cookie disponible pour le sous-domaine www mais aussi pour les sous-domaines supérieurs (ex: 'sub.www.example.com'). Les cookies disponibles pour un domaine inférieur, comme 'example.com' seront aussi disponibles pour les sous-domaines, comme 'www.example.com'. Les anciens navigateurs continuant d'implémenter la » RFC 2109 (obsolète) peuvent nécessiter un . pour rendre disponible tous les sous-domaines.

secure

Indique si le cookie doit uniquement être transmis à travers une connexion sécurisée HTTPS depuis le client. Lorsqu'il est positionné à TRUE, le cookie ne sera envoyé que si la connexion est sécurisée. Côté serveur, c'est au développeur d'envoyer ce genre de cookie uniquement sur les connexions sécurisées (par exemple, en utilisant la variable $_SERVER["HTTPS"]).

httponly

Lorsque ce paramètre vaut TRUE, le cookie ne sera accessible que par le protocole HTTP. Cela signifie que le cookie ne sera pas accessible via des langages de scripts, comme Javascript. Il a été accepté que cette configuration permet de limiter les attaques via XSS (bien qu'elle ne soit pas supportée par tous les navigateurs), c'est relativement discutable. Ajouté en PHP 5.2.0. TRUE ou FALSE

Valeurs de retour

Si quelque chose a été envoyé sur la sortie standard avant l'appel à cette fonction, setcookie() échouera et retournera FALSE. Si setcookie() réussi, elle retournera TRUE. Cela n'indique pas si le client accepte ou pas le cookie.

Exemples

Quelques exemples d'envoi de cookies :

Exemple #1 Exemple d'envoi d'un cookie avec setcookie()

<?php
$value = 'Valeur de test';

setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  /* expire dans 1 heure */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);
?>

Notez que la partie "valeur" du cookie sera automatiquement encodée URL lorsque vous envoyez le cookie et, lorsque vous le recevez, il sera automatiquement décodé et affecté à la variable du même nom que le cookie. Si vous ne souhaitez pas ce comportement par défaut, vous pouvez utiliser la fonction setrawcookie(). Pour voir le résultat, essayez les scripts suivants :

<?php
// Afficher un cookie
echo $_COOKIE["TestCookie"];
echo $HTTP_COOKIE_VARS["TestCookie"];

// Une autre méthode pour afficher tous les cookies
print_r($_COOKIE);
?>

Exemple #2 Exemple d'effacement d'un cookie avec setcookie()

Pour effacer un cookie sur le client, vous devez toujours vous assurer que sa date d'expiration est passée, pour déclencher le mécanisme du navigateur client. Voici comment procéder :

<?php
// Utilisation de la date courante, moins une heure
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", "example.com", 1);
?>

Exemple #3 setcookie() et les tableaux

Vous pouvez aussi utiliser les cookies avec des tableaux, en utilisant la notation des tableaux. Cela a pour effet de créer autant de cookies que votre tableau a d'éléments, mais lorsque les cookies seront reçus par votre script, les valeurs seront placées dans un tableau :

<?php
// Définit les cookies
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");

// Après le rechargemet de la page, nous les affichons
if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
        $name = htmlspecialchars($name);
        $value = htmlspecialchars($value);
        echo "$name : $value <br />\n";
    }
}
?>

L'exemple ci-dessus va afficher :

three : cookiethree
two : cookietwo
one : cookieone

Historique

Version | Description
5.5.0 | Un attribut Max-Age est maintenant inclus dans l'en-tête Set-Cookie envoyé au client.
5.2.0 | Le paramètre httponly a été ajouté.

Notes

Note:

Vous pouvez utiliser la bufferisation de sortie pour pouvoir envoyer du contenu avant d'appeler cette fonction, avec la contrepartie que toute votre page sera envoyée en une fois. Vous pouvez faire cela en appelant ob_start() et ob_end_flush() dans votre script, ou en activant la directive output_buffering dans votre fichier de configuration php.ini ou dans le fichier de configuration de votre serveur.

Note:

Si la directive PHP register_globals est positionnée à on, la valeur du cookie est aussi disponible dans une variable. Dans l'exemple ci-dessous, $TestCookie existe. Il est vivement recommandé d'utiliser $_COOKIE.

Erreurs communes :

  • Les cookies ne seront accessibles qu'au chargement de la prochaine page, ou au rechargement de la page courante. Pour tester si un cookie a été défini avec succès, vérifiez la présence du cookie au prochain chargement de la page avant que le cookie n'expire. Le délai d'expiration est défini en utilisant le paramètre expire. Une façon simple de vérifier le positionnement du cookie est d'utiliser print_r($_COOKIE);.
  • Les cookies doivent être effacés avec les mêmes paramètres que ceux utilisés lors de leur création. Si l'argument value est une chaîne vide ou vaut FALSE et que les autres arguments sont exactement les mêmes que lors du positionnement du cookie, alors le cookie sera effacé du client. En interne, l'effacement est réalisé en positionnant la valeur à 'deleted' et la date d'expiration à une année dans le passé.
  • Du fait que l'assignation d'une valeur valant FALSE à un cookie tente de l'effacer, vous ne devriez pas utiliser de booléen. À la place, utilisez 0 pour FALSE et 1 pour TRUE.
  • Les noms des cookies peuvent être des tableaux de noms et seront disponibles dans vos scripts PHP sous la forme de tableaux mais des cookies différents seront placés sur le client. Utilisez explode() pour placer un cookie avec des noms et des valeurs multiples. Il n'est pas recommandé d'utiliser la fonction serialize() pour réaliser ceci, car cela peut conduire à des problèmes de sécurité.

Les appels multiples à la fonction setcookie() seront effectués dans l'ordre.

Voir aussi

  • header() - Envoie un en-tête HTTP
  • setrawcookie() - Envoie un cookie sans encoder sa valeur en URL
  • La section sur les cookies
  • » RFC 6265
  • » RFC 2109


Envoie un cookie sans encoder sa valeur en URL

  • « setcookie
  • socket_get_status »
  • PHP Manual
  • Fonctions réseaux
  • Envoie un cookie sans encoder sa valeur en URL

setrawcookie

(PHP 5, PHP 7)

setrawcookie — Envoie un cookie sans encoder sa valeur en URL

Description

bool setrawcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

setrawcookie() est exactement la même que setcookie() excepté que la valeur du cookie ne sera pas automatiquement encodée URL lors de l'envoi au navigateur.

Liste de paramètres

Pour plus d'informations, reportez-vous à la documentation de la fonction setcookie().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.5.0 | Un attribut Max-Age est maintenant inclus dans l'en-tête Set-Cookie envoyé au client.
5.2.0 | Ajout du paramètre httponly.

Voir aussi

  • setcookie() - Envoie un cookie


Alias de stream_get_meta_data

  • « setrawcookie
  • socket_set_blocking »
  • PHP Manual
  • Fonctions réseaux
  • Alias de stream_get_meta_data

socket_get_status

(PHP 4, PHP 5, PHP 7)

socket_get_status — Alias de stream_get_meta_data()

Description

Cette fonction est un alias de : stream_get_meta_data().


Alias de stream_set_blocking

  • « socket_get_status
  • socket_set_timeout »
  • PHP Manual
  • Fonctions réseaux
  • Alias de stream_set_blocking

socket_set_blocking

(PHP 4, PHP 5, PHP 7)

socket_set_blocking — Alias de stream_set_blocking()

Description

Cette fonction est un alias de : stream_set_blocking().


Alias de stream_set_timeout

  • « socket_set_blocking
  • syslog »
  • PHP Manual
  • Fonctions réseaux
  • Alias de stream_set_timeout

socket_set_timeout

(PHP 4, PHP 5, PHP 7)

socket_set_timeout — Alias de stream_set_timeout()

Description

Cette fonction est un alias de : stream_set_timeout().


Génère un message dans l'historique système

  • « socket_set_timeout
  • RRD »
  • PHP Manual
  • Fonctions réseaux
  • Génère un message dans l'historique système

syslog

(PHP 4, PHP 5, PHP 7)

syslog — Génère un message dans l'historique système

Description

bool syslog ( int $priority , string $message )

syslog() génère un message qui sera inscrit dans l'historique par le système.

Pour plus d'informations sur comment mettre en place un gestionnaire d'historique, reportez-vous au manuel Unix, page 5 syslog.conf (5). D'autres informations sur les systèmes d'historique et leurs options sont aussi disponibles dans le manuel syslog (3) des machines Unix.

Liste de paramètres

priority

priority est une combinaison des valeurs d'accès et de niveau. Les valeurs possibles sont :

Priorités syslog() (en ordre décroissant)
Constante | Description
LOG_EMERG | système inutilisable
LOG_ALERT | une décision doit être prise immédiatement
LOG_CRIT | condition critique
LOG_ERR | condition d'erreur
LOG_WARNING | condition d'alerte
LOG_NOTICE | condition normale, mais significative
LOG_INFO | message d'information
LOG_DEBUG | message de déboguage

message

Le message à envoyer. Attention : les caractères %m seront remplacés par l'erreur (sous forme de chaîne), présente dans errno.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec syslog()

<?php
// ouverture de syslog, ajout du PID et envoi simultané du
// message à la sortie standard et à un mécanisme
// spécifique
openlog("myScriptLog", LOG_PID | LOG_PERROR, LOG_LOCAL0);

// quelques lignes de code

if (authorized_client()) {
    // faire quelquechose
} else {
    // client non autorisé!
    // notation de la tentative
    $access = date("Y/m/d H:i:s");
    syslog(LOG_WARNING, "Unauthorized client: $access {$_SERVER['REMOTE_ADDR']} ({$_SERVER['HTTP_USER_AGENT']})");
}

closelog();
?>

Notes

Avec Windows NT, l'historique est pris en charge par le log d'événements.

Note:

L'utilisation de LOG_LOCAL0 à LOG_LOCAL7 pour le paramètre facility de la fonction openlog() n'est pas disponible sous Windows.

Voir aussi

  • openlog() - Ouvre la connexion à l'historique système
  • closelog() - Ferme la connexion à l'historique système


RRDtool

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Exemple procédural PECL/rrd
    • Exemple orienté objet de PECL/rrd
  • Fonctions RRD
    • rrd_create — Crée un fichier de base de données rrd
    • rrd_error — Récupère le message de la dernière erreur survenue
    • rrd_fetch — Récupère les données pour le graphique
    • rrd_first — Récupère le timestamp du premier échantillon depuis le fichier RRD
    • rrd_graph — Crée une image depuis des données
    • rrd_info — Récupère les informations sur un fichier RRD
    • rrd_last — Récupère le timestamp unix du premier échantillon
    • rrd_lastupdate — Récupère les informations sur les dernières données mises à jour
    • rrd_restore — Restaure le fichier RRD depuis une sauvegarde XML
    • rrd_tune — Affine des options d'en-tête d'un fichier de base de données RRD
    • rrd_update — Met à jour une base de données RRD
    • rrd_version — Récupère les informations de version de la bibliothèque rrdtool
    • rrd_xport — Exporte les informations d'une base de données
    • rrdc_disconnect — Ferme toutes les connexions vers le daemon de mise en cache rrd
  • RRDCreator — La classe RRDCreator
    • RRDCreator::addArchive — Ajoute des valeurs de données RRA - archive pour chaque source de données
    • RRDCreator::addDataSource — Ajoute une définition de source de données pour la base de données RRD
    • RRDCreator::__construct — Crée une nouvelle instance RRDCreator
    • RRDCreator::save — Sauvegarde la base de données RRD dans un fichier
  • RRDGraph — La classe RRDGraph
    • RRDGraph::__construct — Crée une nouvelle instance RRDGraph
    • RRDGraph::save — Sauvegarde le résultat d'une requête dans une image
    • RRDGraph::saveVerbose — Sauvegarde une requête de base de données RRD dans l'image et retourne les informations verbeuses sur le graphique généré.
    • RRDGraph::setOptions — Définit les options d'exportation d'un graphique RRD
  • RRDUpdater — La classe RRDUpdater
    • RRDUpdater::__construct — Crée une nouvelle instance RRDUpdater
    • RRDUpdater::update — Met à jour un fichier de base de données RRD


Introduction

L'extension PECL/rrd propose un lien avec la bibliothèque C RRDtool. RRDtool est une norme dans l'industrie open source, fournissant une historisation des données d'authentification à haute performance, ainsi qu'un système de représentation graphique des données de séries chronologiques.

Page d'accueil RRDtool : » http://www.mrtg.org/rrdtool/.


Pré-requis

Vous devez installer d'abord la bibliothèque librrd afin d'utiliser l'extension PECL/rrd. Vérifiez si votre distribution favorite Linux propose le paquet librrd-dev. PECL/rrd est testé avec librrd 1.4.3, les anciennes versions ou les plus récentes peuvent ou non fonctionner. L'installation PECL/rrd est testé avec PHP 5.3.2 ou suivants.

Avertissement

Librrd et donc l'extension elle-même ne sont pas, la plupart du temps, thread safe. Il y a beaucoup d'états globaux et partagés dans librrd. Ce peut être dangereux d'utiliser cette extension en environnement multi-thread comme Apache 2 mpm worker. S'il y a plusieurs requêtes parallèles, une d'entre elles peut modifier l'état global de la bibliothèque librrd, affectant ainsi les autres requêtes en cours d'exécution.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/rrd.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • RRD
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


  • « Constantes pré-définies
  • Exemple procédural PECL/rrd »
  • PHP Manual
  • RRD
  • Exemples

Exemples

Sommaire

  • Exemple procédural PECL/rrd
  • Exemple orienté objet de PECL/rrd


Exemple procédural PECL/rrd

Exemple #1 Utilisation procédurale de rrd

<?php
$rrdFile = dirname(__FILE__) . "/speed.rrd";

//création d'un fichier rrd
rrd_create($rrdFile,
 array(
  "--start",920804400,
  "DS:speed:COUNTER:600:U:U",
  "RRA:AVERAGE:0.5:1:24",
  "RRA:AVERAGE:0.5:6:10"
  )
);

//Mise à jour d'un fichier rrd
rrd_update($rrdFile,
 array(
  "920804700:12345",
  "920805000:12357"
  )
);

//Affichage du graphique
rrd_graph(dirname(__FILE__) . "/speed.png",
 array(
  "--start", "920804400",
  "--end", "920808000",
  "--vertical-label", "m/s",
  "DEF:myspeed=$rrdFile:speed:AVERAGE",
  "CDEF:realspeed=myspeed,1000,*",
  "LINE2:realspeed#FF0000"
 )
);
?>


Exemple orienté objet de PECL/rrd

Exemple #1 Utilisation orientée objet de rrd

<?php
$rrdFile = dirname(__FILE__) . "/speed.rrd";
$outputPngFile = dirname(__FILE__) . "/speed.png";

$creator = new RRDCreator($rrdFile, "now -10d", 500);
$creator->addDataSource("speed:COUNTER:600:U:U");
$creator->addArchive("AVERAGE:0.5:1:24");
$creator->addArchive("AVERAGE:0.5:6:10");
$creator->save();

$updater = new RRDUpdater($rrdFile);
$updater->update(array("speed" => "12345"), "920804700");
$updater->update(array("speed" => "12357"), "920805000");

$graphObj = new RRDGraph($outputPngFile);
$graphObj->setOptions(
    array(
        "--start" => "920804400",
        "--end" => 920808000,
        "--vertical-label" => "m/s",
        "DEF:myspeed=$rrdFile:speed:AVERAGE",
        "CDEF:realspeed=myspeed,1000,*",
        "LINE2:realspeed#FF0000"
    )
);
$graphObj->save();
?>


Fonctions RRD

Sommaire

  • rrd_create — Crée un fichier de base de données rrd
  • rrd_error — Récupère le message de la dernière erreur survenue
  • rrd_fetch — Récupère les données pour le graphique
  • rrd_first — Récupère le timestamp du premier échantillon depuis le fichier RRD
  • rrd_graph — Crée une image depuis des données
  • rrd_info — Récupère les informations sur un fichier RRD
  • rrd_last — Récupère le timestamp unix du premier échantillon
  • rrd_lastupdate — Récupère les informations sur les dernières données mises à jour
  • rrd_restore — Restaure le fichier RRD depuis une sauvegarde XML
  • rrd_tune — Affine des options d'en-tête d'un fichier de base de données RRD
  • rrd_update — Met à jour une base de données RRD
  • rrd_version — Récupère les informations de version de la bibliothèque rrdtool
  • rrd_xport — Exporte les informations d'une base de données
  • rrdc_disconnect — Ferme toutes les connexions vers le daemon de mise en cache rrd


Crée un fichier de base de données rrd

  • « Fonctions RRD
  • rrd_error »
  • PHP Manual
  • Fonctions RRD
  • Crée un fichier de base de données rrd

rrd_create

(PECL rrd >= 0.9.0)

rrd_create — Crée un fichier de base de données rrd

Description

bool rrd_create ( string $filename , array $options )

Crée un fichier de base de données rrd.

Liste de paramètres

filename

Nom de fichier du nouveau fichier rrd.

options

Options pour la création rrd - listes de chaînes. Reportez-vous à la page man de rrd pour une liste complète des options disponibles pour la création.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Récupère le message de la dernière erreur survenue

  • « rrd_create
  • rrd_fetch »
  • PHP Manual
  • Fonctions RRD
  • Récupère le message de la dernière erreur survenue

rrd_error

(PECL rrd >= 0.9.0)

rrd_error — Récupère le message de la dernière erreur survenue

Description

string rrd_error ( void )

Récupère le message de la dernière erreur survenue.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le dernier message d'erreur.


Récupère les données pour le graphique

  • « rrd_error
  • rrd_first »
  • PHP Manual
  • Fonctions RRD
  • Récupère les données pour le graphique

rrd_fetch

(PECL rrd >= 0.9.0)

rrd_fetch — Récupère les données pour le graphique

Description

array rrd_fetch ( string $filename , array $options )

Récupère les données pour le graphique depuis le fichier de base de données RRD sous la forme d'un tableau. Cette fonction a le même résultat que la fonction rrd_graph(), mais les données récupérées sont retournées sous la forme d'un tableau, aucun fichier image n'est créé.

Liste de paramètres

filename

Nom de fichier de la base de données RRD.

options

Tableau d'options pour la spécification de la résolution.

Valeurs de retour

Retourne des informations sur les données de graphique récupérées.


Récupère le timestamp du premier échantillon depuis le fichier RRD

  • « rrd_fetch
  • rrd_graph »
  • PHP Manual
  • Fonctions RRD
  • Récupère le timestamp du premier échantillon depuis le fichier RRD

rrd_first

(PECL rrd >= 0.9.0)

rrd_first — Récupère le timestamp du premier échantillon depuis le fichier RRD

Description

int rrd_first ( string $file [, int $raaindex = 0 ] )

Retourne les données du premier échantillon depuis le RRD spécifié du fichier RRD.

Liste de paramètres

file

Nom de fichier de la base de données RRD.

raaindex

Le numéro d'index du RRA à examiner. La valeur par défaut est 0.

Valeurs de retour

Timestamp unix, ou FALSE si une erreur survient.


Crée une image depuis des données

  • « rrd_first
  • rrd_info »
  • PHP Manual
  • Fonctions RRD
  • Crée une image depuis des données

rrd_graph

(PECL rrd >= 0.9.0)

rrd_graph — Crée une image depuis des données

Description

array rrd_graph ( string $filename , array $options )

Crée une image depuis un fichier RRD.

Liste de paramètres

filename

Le nom du fichier dans lequel le graphique sera redirigé. Il se termine normalement par l'extension .png, .svg ou .eps, suivant le format de sortie désiré.

options

Options pour la génération de l'image. Reportez-vous à la page man du graphique RRD pour toutes les options possibles. Toutes les options (définitions de données, définitions des variables, etc.) sont autorisées.

Valeurs de retour

Tableau contenant les informations sur l'image générée, ou FALSE si une erreur survient.


Récupère les informations sur un fichier RRD

  • « rrd_graph
  • rrd_last »
  • PHP Manual
  • Fonctions RRD
  • Récupère les informations sur un fichier RRD

rrd_info

(PECL rrd >= 0.9.0)

rrd_info — Récupère les informations sur un fichier RRD

Description

array rrd_info ( string $filename )

Retourne les informations sur un fichier de base de données RRD.

Liste de paramètres

file

Nom de fichier de la base de données RRD.

Valeurs de retour

Tableau contenant les informations sur le fichier RRD demandé, ou FALSE si une erreur survient.


Récupère le timestamp unix du premier échantillon

  • « rrd_info
  • rrd_lastupdate »
  • PHP Manual
  • Fonctions RRD
  • Récupère le timestamp unix du premier échantillon

rrd_last

(PECL rrd >= 0.9.0)

rrd_last — Récupère le timestamp unix du premier échantillon

Description

int rrd_last ( string $filename )

Retourne le timestamp UNIX de la mise à jour la plus récente de la base de données RRD.

Liste de paramètres

filename

Nom de fichier de la base de données RRD.

Valeurs de retour

Timestamp Unix des données les plus récentes de la base de données RRD.


Récupère les informations sur les dernières données mises à jour

  • « rrd_last
  • rrd_restore »
  • PHP Manual
  • Fonctions RRD
  • Récupère les informations sur les dernières données mises à jour

rrd_lastupdate

(PECL rrd >= 0.9.0)

rrd_lastupdate — Récupère les informations sur les dernières données mises à jour

Description

array rrd_lastupdate ( string $filename )

Récupère un tableau de timestamp unix et les valeurs stockées pour chaque date de la dernière mise à jour du fichier de base de données RRD.

Liste de paramètres

file

Nom de fichier de la base de données RRD.

Valeurs de retour

Tableau d'informations sur la dernière mise à jour, ou FALSE si une erreur survient.


Restaure le fichier RRD depuis une sauvegarde XML

  • « rrd_lastupdate
  • rrd_tune »
  • PHP Manual
  • Fonctions RRD
  • Restaure le fichier RRD depuis une sauvegarde XML

rrd_restore

(PECL rrd >= 0.9.0)

rrd_restore — Restaure le fichier RRD depuis une sauvegarde XML

Description

bool rrd_restore ( string $xml_file , string $rrd_file [, array $options ] )

Restaure le fichier RRD depuis une sauvegarde XML.

Liste de paramètres

xml_file

Nom de fichier XML de la sauvegarde du fichier original de base de données RRD.

rrd_file

Nom du fichier de la base de données RRD qui sera restauré.

options

Tableau d'options pour la restauration. Reportez-vous à la page man de la restauration RRD.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Affine des options d'en-tête d'un fichier de base de données RRD

  • « rrd_restore
  • rrd_update »
  • PHP Manual
  • Fonctions RRD
  • Affine des options d'en-tête d'un fichier de base de données RRD

rrd_tune

(PECL rrd >= 0.9.0)

rrd_tune — Affine des options d'en-tête d'un fichier de base de données RRD

Description

bool rrd_tune ( string $filename , array $options )

Modifie quelques options de l'en-tête d'un fichier de base de données RRD, comme le fait de renommer la source des données.

Liste de paramètres

filename

Nom du fichier de la base de données RRD.

options

Options avec les propriétés du fichier de la base de données RRD qui doivent être modifiés. Reportez-vous à la page man correspondante de RRD pour plus de détails.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.


Met à jour une base de données RRD

  • « rrd_tune
  • rrd_version »
  • PHP Manual
  • Fonctions RRD
  • Met à jour une base de données RRD

rrd_update

(PECL rrd >= 0.9.0)

rrd_update — Met à jour une base de données RRD

Description

bool rrd_update ( string $filename , array $options )

Met à jour le fichier d'une base de données RRD. Les données d'entrée sont la date/heure, interpolée suivant les propriétés du fichier de la base de données RRD.

Liste de paramètres

filename

Nom du fichier de la base de données RRD. Cette base de données sera mise à jour.

options

Options pour la mise à jour de la base de données RRD - liste de chaînes. Reportez-vous à la page man correspondante pour une liste complète des options.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si une erreur survient.


Récupère les informations de version de la bibliothèque rrdtool

  • « rrd_update
  • rrd_xport »
  • PHP Manual
  • Fonctions RRD
  • Récupère les informations de version de la bibliothèque rrdtool

rrd_version

(PECL rrd >= 1.0.0)

rrd_version — Récupère les informations de version de la bibliothèque rrdtool

Description

string rrd_version ( void )

Récupère les informations de version de la bibliothèque rrdtool.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères contenant le numéro de version de la bibliothèque rrdtool i.e. "1.4.3".


Exporte les informations d'une base de données

  • « rrd_version
  • rrdc_disconnect »
  • PHP Manual
  • Fonctions RRD
  • Exporte les informations d'une base de données

rrd_xport

(PECL rrd >= 0.9.0)

rrd_xport — Exporte les informations d'une base de données

Description

array rrd_xport ( array $options )

Exporte les informations d'un fichier de base de données RRD. Ces données peuvent être converties en fichier XML via un script PHP de l'espace utilisateur puis, être utilisées pour restaurer le fichier de base de données RRD.

Liste de paramètres

options

Tableau d'options pour l'exportation ; reportez-vous à la page man correspondante.

Valeurs de retour

Tableau contenant les informations du fichier de base de données RRD, ou FALSE si une erreur survient.


Ferme toutes les connexions vers le daemon de mise en cache rrd

  • « rrd_xport
  • RRDCreator »
  • PHP Manual
  • Fonctions RRD
  • Ferme toutes les connexions vers le daemon de mise en cache rrd

rrdc_disconnect

(PECL rrd >= 1.1.2)

rrdc_disconnect — Ferme toutes les connexions vers le daemon de mise en cache rrd

Description

void rrdc_disconnect ( void )

Ferme toutes les connexions vers le daemon de mise en cache rrd.

Cette fonction est automatiquement appelée lorsque le processus global PHP se termine. Cela dépend de l'API utilisée. Par exemple, cette fonction est appelée automatiquement à la fin d'un script en ligne de commande.

Il en est de l'utilisateur que de vouloir appeler cette fonction à la fin de chaque requête ou non.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


La classe RRDCreator

(PECL rrd >= 0.9.0)

Introduction

Classe pour créer des fichiers de base de données RRD.

Synopsis de la classe

RRDCreator {
/* Méthodes */
public void addArchive ( string $description )
public void addDataSource ( string $description )
public __construct ( string $path [, string $startTime [, int $step = 0 ]] )
public bool save ( void )
}

Sommaire

  • RRDCreator::addArchive — Ajoute des valeurs de données RRA - archive pour chaque source de données
  • RRDCreator::addDataSource — Ajoute une définition de source de données pour la base de données RRD
  • RRDCreator::__construct — Crée une nouvelle instance RRDCreator
  • RRDCreator::save — Sauvegarde la base de données RRD dans un fichier


Ajoute des valeurs de données RRA - archive pour chaque source de données

  • « RRDCreator
  • RRDCreator::addDataSource »
  • PHP Manual
  • RRDCreator
  • Ajoute des valeurs de données RRA - archive pour chaque source de données

RRDCreator::addArchive

(PECL rrd >= 0.9.0)

RRDCreator::addArchive — Ajoute des valeurs de données RRA - archive pour chaque source de données

Description

public void RRDCreator::addArchive ( string $description )

Ajoute une définition RRA de la description de l'archive. Une archive consiste en une nombre de valeurs de données ou de statistiques pour chaque sources de données définies (DS). Les sources de données sont définies par la méthode RRDCreator::addDataSource(). Vous devez appeler cette méthode pour chaque archive demandée.

Liste de paramètres

description

Définition de l'archive RRA. Le format est identique à la définition RRA dans la commande de création RRD. Reportez-vous à la page man de création RRD pour plus de détails.

Valeurs de retour

Aucune valeur n'est retournée.


Ajoute une définition de source de données pour la base de données RRD

  • « RRDCreator::addArchive
  • RRDCreator::__construct »
  • PHP Manual
  • RRDCreator
  • Ajoute une définition de source de données pour la base de données RRD

RRDCreator::addDataSource

(PECL rrd >= 0.9.0)

RRDCreator::addDataSource — Ajoute une définition de source de données pour la base de données RRD

Description

public void RRDCreator::addDataSource ( string $description )

RRD peut accepter des entrées depuis diverses sources de données (DS), i.e. un trafic entrant et sortant. Cette méthode ajoute une source de données par sa description. Vous devez appeler cette méthode pour chaque source de données.

Liste de paramètres

description

Définition de la source de données (DS). Le format est identique à la définition d'un DS dans la commande de création RRD. Reportez-vous à la page man de la création RRD pour plus de détails.

Valeurs de retour

Aucune valeur n'est retournée.


Crée une nouvelle instance RRDCreator

  • « RRDCreator::addDataSource
  • RRDCreator::save »
  • PHP Manual
  • RRDCreator
  • Crée une nouvelle instance RRDCreator

RRDCreator::__construct

(PECL rrd >= 0.9.0)

RRDCreator::__construct — Crée une nouvelle instance RRDCreator

Description

public RRDCreator::__construct ( string $path [, string $startTime [, int $step = 0 ]] )

Crée une nouvelle instance RRDCreator.

Liste de paramètres

path

Chemin vers le nouveau fichier de base de données RRD créé.

startTime

Date/heure pour la première valeur de la base de données RRD. Ce paramètre supporte tous les formats qui sont supportés par l'appel de création RRD.

intstep

Intervalle de base, en secondes, d'insertion des données dans la base de données RRD.

Valeurs de retour

Aucune valeur n'est retournée.


Sauvegarde la base de données RRD dans un fichier

  • « RRDCreator::__construct
  • RRDGraph »
  • PHP Manual
  • RRDCreator
  • Sauvegarde la base de données RRD dans un fichier

RRDCreator::save

(PECL rrd >= 0.9.0)

RRDCreator::save — Sauvegarde la base de données RRD dans un fichier

Description

public bool RRDCreator::save ( void )

Sauvegarde la base de données RRD dans un fichier, dont le nom est défini par la méthode RRDCreator::__construct().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


La classe RRDGraph

(PECL rrd >= 0.9.0)

Introduction

Classe pour exporter les données depuis une base de données RRD vers un fichier image.

Synopsis de la classe

RRDGraph {
/* Méthodes */
public __construct ( string $path )
public array save ( void )
public array saveVerbose ( void )
public void setOptions ( array $options )
}

Sommaire

  • RRDGraph::__construct — Crée une nouvelle instance RRDGraph
  • RRDGraph::save — Sauvegarde le résultat d'une requête dans une image
  • RRDGraph::saveVerbose — Sauvegarde une requête de base de données RRD dans l'image et retourne les informations verbeuses sur le graphique généré.
  • RRDGraph::setOptions — Définit les options d'exportation d'un graphique RRD


Crée une nouvelle instance RRDGraph

  • « RRDGraph
  • RRDGraph::save »
  • PHP Manual
  • RRDGraph
  • Crée une nouvelle instance RRDGraph

RRDGraph::__construct

(PECL rrd >= 0.9.0)

RRDGraph::__construct — Crée une nouvelle instance RRDGraph

Description

public RRDGraph::__construct ( string $path )

Crée une nouvelle instance RRDGraph. Cette instance est responsable du rendu du résultat de la requête à la base de données RRD dans l'image.

Liste de paramètres

path

Chemin complet pour la nouvelle image créée.

Valeurs de retour

Aucune valeur n'est retournée.


Sauvegarde le résultat d'une requête dans une image

  • « RRDGraph::__construct
  • RRDGraph::saveVerbose »
  • PHP Manual
  • RRDGraph
  • Sauvegarde le résultat d'une requête dans une image

RRDGraph::save

(PECL rrd >= 0.9.0)

RRDGraph::save — Sauvegarde le résultat d'une requête dans une image

Description

public array RRDGraph::save ( void )

Sauvegarde le résultat d'une requête de base de données RRD dans une image définie par la méthode RRDGraph::__construct().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les informations sur l'image générée, ou FALSE si une erreur survient.


Sauvegarde une requête de base de données RRD dans l'image et retourne les informations verbeuses sur le graphique généré.

  • « RRDGraph::save
  • RRDGraph::setOptions »
  • PHP Manual
  • RRDGraph
  • Sauvegarde une requête de base de données RRD dans l'image et retourne les informations verbeuses sur le graphique généré.

RRDGraph::saveVerbose

(PECL rrd >= 0.9.0)

RRDGraph::saveVerbose — Sauvegarde une requête de base de données RRD dans l'image et retourne les informations verbeuses sur le graphique généré.

Description

public array RRDGraph::saveVerbose ( void )

Sauvegarde la requête de base de données RRD dans le fichier image défini par la méthode RRDGraph::__construct() et retourne les informations verbeuses sur le graphique généré ; si "-" est utilisé comme nom de fichier image, les données de l'image seront également retournées dans le tableau résultant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les informations détaillées sur l'image généré, optionnellement, incluant les données de l'image, ou FALSE si une erreur survient.


Définit les options d'exportation d'un graphique RRD

  • « RRDGraph::saveVerbose
  • RRDUpdater »
  • PHP Manual
  • RRDGraph
  • Définit les options d'exportation d'un graphique RRD

RRDGraph::setOptions

(PECL rrd >= 0.9.0)

RRDGraph::setOptions — Définit les options d'exportation d'un graphique RRD

Description

public void RRDGraph::setOptions ( array $options )

Liste de paramètres

options

Liste les options pour la génération de l'image depuis un fichier de base de données RRD. Peut être une liste d'options, ou une liste de chaînes avec des clés pour une meilleure lisibilité. Reportez-vous à la page man du graphique RRD pour une liste des options disponibles.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec RRDGraph::setOptions()

<?php
$graphObj->setOptions(array(
  "--start" => "920804400",
   "--end" => 920808000,
    "--vertical-label" => "m/s",
    "DEF:myspeed=$rrdFile:speed:AVERAGE",
    "CDEF:realspeed=myspeed,1000,*",
    "LINE2:realspeed#FF0000"
));
?>

Exemple #2 Défini plusieurs options de couleur

<?php
$graphObj->setOptions(array(
    "--start" => "920804400",
    "--end" => 920808000,
    "--vertical-label" => "m/s",
    "--color=BACK#00000000",
    "--color=GRID#00000000",
    "--color=MGRID#00000000",
    "DEF:myspeed=$rrdFile:speed:AVERAGE",
    "CDEF:realspeed=myspeed,1000,*",
    "LINE2:realspeed#FF0000"
));
?>

N'utilisez pas la syntaxe clé/valeur pour une même option rrd. C'est plus lisible certes, mais ca ne fonctionne pas.

<?php
$graphObj->setOptions(array(
    "--color" => "BACK#00000000",
    "--color" => "GRID#00000000",
    "--color" => "MGRID#00000000"
));
?>

D'un point de vue de PHP, c'est identique à

<?php
$graphObj->setOptions(array(
    "--color" => "MGRID#00000000"
));
?>


La classe RRDUpdater

(PECL rrd >= 0.9.0)

Introduction

Classe pour mettre à jour un fichier de base de données RRD.

Synopsis de la classe

RRDUpdater {
/* Méthodes */
public __construct ( string $path )
public bool update ( array $values [, string $time = time() ] )
}

Sommaire

  • RRDUpdater::__construct — Crée une nouvelle instance RRDUpdater
  • RRDUpdater::update — Met à jour un fichier de base de données RRD


Crée une nouvelle instance RRDUpdater

  • « RRDUpdater
  • RRDUpdater::update »
  • PHP Manual
  • RRDUpdater
  • Crée une nouvelle instance RRDUpdater

RRDUpdater::__construct

(PECL rrd >= 0.9.0)

RRDUpdater::__construct — Crée une nouvelle instance RRDUpdater

Description

public RRDUpdater::__construct ( string $path )

Crée une nouvelle instance RRDUpdater. Cette instance est chargée de la mise à jour du fichier de base de données RRD.

Liste de paramètres

path

Chemin du système de fichiers vers le fichier de base de données RRD à mettre à jour.

Valeurs de retour

Aucune valeur n'est retournée.


Met à jour un fichier de base de données RRD

  • « RRDUpdater::__construct
  • SAM »
  • PHP Manual
  • RRDUpdater
  • Met à jour un fichier de base de données RRD

RRDUpdater::update

(PECL rrd >= 0.9.0)

RRDUpdater::update — Met à jour un fichier de base de données RRD

Description

public bool RRDUpdater::update ( array $values [, string $time = time() ] )

Met à jour le fichier RRD défini via la méthode RRDUpdater::__construct(). Le fichier est mis à jour avec des valeurs spécifiques.

Liste de paramètres

values

Données à utiliser pour la mise à jour. La clé est le nom de la source des données.

time

La date/heure pour la mise à jour de RRD avec une donnée particulière. La valeur par défaut est la date/heure courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une exception Exception en cas d'erreur.

Exemples

Exemple #1 Exemple avec RRDUpdater::update()

<?php
$updator = new RRDUpdater("speed.rrd");
//Mise à jour de la source de données "speed" avec la valeur "12411"
//pour la date/heure définie par le timestamp "920807700"
$updator->update(array("speed" => "12411"), "920807700");
?>


SAM - Messagerie asynchrone

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Connexions
    • Messages
    • Opérations de messagerie
    • Publication/Souscription à un sujet
    • Gestion des erreurs
  • Fonctions SAM
    • SAMConnection::commit — Valide le travail courant
    • SAMConnection::connect — Établie une connexion à un serveur de messagerie
    • SAMConnection::__construct — Crée une nouvelle connexion à un serveur de messagerie
    • SAMConnection::disconnect — Déconnexion d'un serveur de messagerie
    • SAMConnection::errno — Récupère le numéro de la dernière erreur issue d'une opération SAM
    • SAMConnection::error — Récupère la description de la dernière erreur d'une opération SAM
    • SAMConnection::isConnected — Vérifie si une connexion est établie avec un serveur de messagerie
    • SAMConnection::peek — Lit un message depuis la file d'attente sans l'effacer
    • SAMConnection::peekAll — Lit un ou plusieurs messages depuis la file d'attente sans les effacer
    • SAMConnection::receive — Reçoit un message depuis une file d'attente ou d'une souscription
    • SAMConnection::remove — Efface un message depuis la file d'attente
    • SAMConnection::rollback — Annulation d'un travail
    • SAMConnection::send — Envoie un message à une file d'attente ou le publie sur un sujet
    • SAMConnection::setDebug — Active ou non l'affiche des informations de déboguage
    • SAMConnection::subscribe — Crée une souscription à un sujet spécifique
    • SAMConnection::unsubscribe — Annule une souscription à un sujet spécifique
    • SAMMessage::body — Définit le corps d'un message
    • SAMMessage::__construct — Crée un nouvel objet de message
    • SAMMessage::header — Les propriétés d'en-tête d'un message


Introduction

Cette extension fournit un accès aux fonctionnalités des systèmes de messageries et de mise en file d'attente, comme les produits de la famille IBM WebSphere MQSeries, depuis des scripts PHP. L'interface a été conçue pour rendre simple les tâches les plus communes comme délivrer des messages simples à la file d'attente, mais permet aussi aux utilisateurs plus expérimentés d'effectuer des opérations plus complexes. Pour la plupart des utilisateurs, les configurations des options complexes peuvent être tout simplement ignorées.

L'extension SAM est un framework qui fournit une API simple qui peut être utilisée pour accéder à plusieurs systèmes de messagerie. Actuellement, le paquet inclut un support interne pour le protocole de messagerie MQTT (MQ Telemetry Transport) ainsi que pour les produits de messagerie IBM et Queuing middleware. SAM a été conçu pour être extensible à d'autres systèmes de messagerie et ainsi, des extensions peuvent être écrites en C ou en PHP.


Pré-requis

L'extension SAM interface la messagerie IBM ainsi que les produits de mise en file d'attente en utilisant un jeu de bibliothèques et du code côté client. Ce paquet est disponible en téléchargement gratuit dans le guide du support IBM pack IA94. Il y a une description de ce paquet ainsi que des liens de téléchargements dans l'article "» Introduction à XMS - L'API IBM Message Service".

Si vous voulez utiliser SAM pour accéder à l'infrastructure de messagerie et de mise en file d'attente dans un WebSphere MQ, alors vous devriez également installer un gestionnaire local de mise en file d'attente MQ ou installer la paquet client WebSphere MQ. Le paquet client est disponible librement en tant qu'un pack support (» MQC6).

Si vous voulez juste tester l'envoi de message depuis et vers une application WebSphere en utilisant le protocole WebSphere Platform Messaging (WPM), alors, vous n'avez pas besoin d'installer le paquet MQC6.

Après avoir installé ces paquets, vous devez vous assurer que le binaire XMS, si vous l'utilisez, et que le client MQ sont accessibles via la variable d'environnement PATH afin qu'Apache et PHP puissent trouver les bibliothèques nécessaires.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/sam.

Le framework SAM et le support MQTT peuvent être construits et utilisés sans aucun élément supplémentaire. Le support pour les protocoles autres que MQTT est fourni via un jeu de bibliothèques et du code côté client, comme XMS.

Si vous ne souhaitez utiliser que le support interne MQTT, alors, vous pouvez construire et configurer SAM en tant qu'extension ou simplement vous référer à php_sam.php grâce aux fonctions require ou require_once dans votre script PHP. Dans ce cas, vous devez uniquement installer le code, sans construire l'extension via l'installeur PEAR :

pecl install -B SAM

Étapes d'installation sous Linux

L'extension SAM est fournie en tant que module PECL. Vous devriez donc pouvoir la télécharger et l'installer en une seule étape, comme ceci :

pecl install sam
(Suivant votre environnement PHP, vous devrez probablement être "root" pour faire ceci.)

Assurez-vous que le module a été chargé par PHP, en ajoutant la ligne suivante à votre php.ini :

extension=sam.so
Si vous voulez utiliser le support XMS afin d'accéder à la messagerie IBM, vous devez également activer l'extension SAM XMS.
extension=sam_xms.so

Si vous ne pouvez pas utiliser l'installeur PEAR, vous pouvez télécharger l'extension et la construire manuellement :

pear download sam          #téléchargement de sam-<version>.tgz
tar -xzf sam-<version>.tgz
cd sam-<version>
phpize
./configure
make
make install               #vous devriez devoir être root pour cette étape

Pour avoir la toute dernière source, vous devriez extraire les sources depuis SVN et la construire en utilisant les instructions qui se trouvent dans ce manuel.

Étapes d'installation sous Windows

Vous devez construire l'extension SAM pour Windows car il n'existe pas de binaire précompilé. L'extension peut être construite en utilisant les procédures standards de construction des extensions Windows.

Vous devez avoir les sources de PHP pour lesquelles l'extension SAM doit être utilisée. Les sources doivent être décompressées dans le répertoire de votre choix.

Vous devez également avoir les bibliothèques et en-têtes utilisés par les extensions PHP, disponibles sur http://www.php.net/extra/win32build.zip et doivent être décompressés dans le même dossier de travail.

Vous devriez obtenir quelque chose comme :

c:\php-build\-
              |
              |---php-5.0.5--|---build
              |              |---ext
              |              |--- ...
              |
              |---win32build--|---bin
                              |---include
                              |---lib

Vous devez avoir également un compilateur, par exemple, la version gratuite de Visual Studio C++ Express que vous trouverez sur le site web de Microsoft. Vous devez aussi avoir le SDK Microsoft Windows Platform qui est également disponible sur le site web de Microsoft.

Téléchargez les sources de l'extension SAM (pear download sam) ou en utilisant SVN et copiez les fichiers dans un nouveau dossier "sam" du dossier "ext" des sources PHP.

Pour construire l'extension, ouvrez un environnement de construction Windows via

menu->Tous les programmes->microsoft platform SDK for windows->
open build environment window->windows 200 build environment->
set windows 2000 build environment (retail)

Ceci devrait ouvrir une fenêtre de commande avec toutes les variables d'environnements définies afin d'accéder à la plate-forme SDK, etc. Vous devez ensuite définir les variables d'environnements pour Visual Studio en lançant la commande vcvars32.bat dans la fenêtre.

Déplacez-vous dans votre dossier de travail, e.g. cd c:\php-build. Ensuite, assurez-vous que les utilitaires win32build soient accessibles en ajoutant la variable d'environnement suivante :

set PATH=..\win32build\bin;%PATH%

Exécutez la commande buildconf.bat. Ceci devrait reconstruire le fichier configure.js.

Exécutez la commande cscript avec les options appropriées. Pour uniquement construire l'extension SAM et le support MQTT, utilisez :

cscript /nologo configure.js --with-sam
Pour construire le framework SAM et le support XMS, utilisez :
cscript /nologo configure.js --with-sam --with-sam_xms="c:\program files\ibm\xms"

Le paramètre additionnel passé à SAM est le chemin d'installation vers les bibliothèques XMS et d'exécution qui ont été installées comme décrit en début de ce manuel.

Vous pouvez spécifier d'autres paramètres cscript dont vous avez besoin pour inclure et exclure des éléments de votre construction de PHP ou des options sélectionnées.

En supposant que tout est Ok jusqu'ici pour vous, vous pouvez maintenant lancer la construction !

nmake php_sam.dll
De plus, si vous utilisez le support XMS, vous devrez construire l'extension sam_xms :
nmake php_sam_xms.dll

Si vous avez utiliser Visual Studio 2005 pour construire les bibliothèques DLL, alors lisez ce qui suit pour les étapes additionnelles que vous devez effectuer avant d'aller plus loin.

Les bibliothèques DLLs créées (php_sam.dll, et, optionnellement php_sam_xms.dll) peuvent maintenant être copiées dans le sous répertoire approprié de votre installation de PHP. Assurez-vous que le(s) module(s) est(sont) chargé(s) par PHP, en ajoutant la ligne suivante à votre php.ini :

extension=php_sam.dll
Si vous voulez utiliser le support XMS pour accéder à IBM Messaging and Queuing family, vous devez également activer l'extension SAM XMS.
extension=php_sam_xms.dll

Étapes additionnelles pour Visual Studio 2005

Si vous construisez l'extension SAM avec le compilateur et les outils Microsoft Visual Studio 2005, vous devez effectuer une étape supplémentaire dans le processus de compilation afin de vous assurer que la bibliothèque php_sam.dll soit capable de se lier aux bibliothèques C durant l'exécution. Cette étape ajoute la dépendance directement dans la DLL. Déplacez-vous dans le répertoire oÃ¹ la bibliothèque php_sam.dll a été générée (habituellement le dossier Release_TS ou Debug_TS du dossier des sources PHP) et exécutez l'incantation magique suivante :

mt.exe -manifest php_sam.dll.manifest -outputresource:php_sam.dll;2
Si vous utilisez les capacités XMS, vous devez effectuer la même chose avec la bibliothèque SAM XMS :
mt.exe -manifest php_sam_xms.dll.manifest -outputresource:php_sam_xms.dll;2

Si vous construisez l'extension SAM en utilisant le compilateur et les bibliothèques Microsoft Visual Studio 2005, vous devriez aussi vous assurer que les composants d'exécution sont présents sur le système sur lequel vous voulez utiliser SAM. Ceci peut être fait en installation Visual Studio 2005 ou en utilisant le » paquet d'exécution librement distribuable.


Configuration à l'exécution

Support des protocoles et liage

Le framework SAM peut être étendu pour supporter d'autres protocoles de messagerie et d'autre mécanismes de connexion. Pour ajouter le support d'un nouveau protocole ou connexion, une classe doit être définie, soit sous la forme d'une extension C, soit sous la forme d'un script PHP, et un script "usine" doit être créé. La classe doit implémenter toutes les méthodes de la classe SAMConnection, car elle n'hérite pas de la classe SAMConnection. Le script d'usine doit être appelé par le framework SAM pour créer une instance de la classe implémentée. La façon dont SAM choisit quel utilitaire à appeler, est basée sur le protocole spécifié en tant que premier paramètre de l'appel à "connect".

Par défaut, le support interne MQTT sera utilisé si une connexion est spécifiée à un protocole SAM_MQTT ("mqtt") ; pour les autres protocoles, SAM tente d'utiliser l'extension XMS. Pour ajouter le support de protocoles supplémentaires ou pour modifier le comportement par défaut, des entrées doivent être ajoutées dans le php.ini dans la section [sam]. Le liage par défaut est équivalent aux entrées suivantes :

[sam]
sam.factory.mqtt=mqtt
sam.factory.wmq=xms
sam.factory.wmq:client=xms
sam.factory.wmq:bindings=xms
sam.factory.wpm=xms
sam.factory.rtt=xms
Comme nous pouvons le voir dans ces exemples, les entrées prennent la forme de "sam.factory.pppp=xxx" où pppp est le protocole spécifié lors de l'appel à la connexion et xxx est le suffixe d'usine. Note : SAM définit des constantes pour ces protocoles, comme SAM_WMQ=wmq, SAM_WPM=wpm, SAM_RTT=rtt, SAM_MQTT=mqtt, etc.

Lors de l'identification du code support à utiliser lors d'un appel à connexion, SAM cherche le nom du protocole dans les entrées du php.ini, puis, invoque un script d'usine nommé sam_factory_xxx.php. Si aucune entrée n'est trouvée, le support par défaut utilisé sera XMS.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SAM_AUTO (chaîne de caractères)
Comportement automatique
SAM_BOOLEAN (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_BUS (chaîne de caractères)
Attribut de connexion à utiliser pour définir le nom du service bus entreprise à s'y connecter.
SAM_BYTE (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_BYTES (chaîne de caractères)
Description du type du corps du message.
SAM_CORRELID (chaîne de caractères)
Attribut utilisé lors de la réception, de l'envoi et de l'effacement pour identifier les messages.
SAM_DELIVERYMODE (chaîne de caractères)
Propriété de l'en-tête du message.
SAM_DOUBLE (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_ENDPOINTS (chaîne de caractères)
Attribut de connexion à utiliser pour définir les "endpoints" possibles à s'y connecter.
SAM_FLOAT (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_HOST (chaîne de caractères)
Attribut de connexion à utiliser pour définir le nom de l'hôte du serveur de messagerie requis.
SAM_INT (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_LONG (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_MANUAL (chaîne de caractères)
Comportement manuel (contrôlé par le script)
SAM_MESSAGEID (chaîne de caractères)
Attribut utilisé lors de la réception et de l'effacement pour identifier les messages.
SAM_MQTT (chaîne de caractères)
Définition du protocole de connexion pour sélectionner le protocole MQTT (MQ Telemetry Transport).
SAM_MQTT_CLEANSTART (booléen)
Option de connexion optionnel indiquant à un serveur MQTT que toutes les connexions précédentes de ce client doivent être effacées et que ces souscriptions doivent également être effacées lorsque le client se déconnecte explicitement ou de façon inattendu.
SAM_NON_PERSISTENT (chaîne de caractères)
Attribut de connexion utilisé pour rendre la connexion non persistante sur le serveur de messagerie.
SAM_PASSWORD (chaîne de caractères)
Attribut de connexion utilisé pour définir le mot de passe pour l'utilisateur utilisé pour la connexion au serveur de messagerie.
SAM_PERSISTENT (chaîne de caractères)
Attribut de connexion utilisé pour rendre la connexion persistante sur le serveur de messagerie.
SAM_PORT (chaîne de caractères)
Attribut de connexion utilisé pour spécifier le numéro du port sur lequel le serveur de messagerie écoute.
SAM_PRIORITY (chaîne de caractères)
Option utilisée pour spécifier la priorité de délivrance des demandes.
SAM_REPLY_TO (chaîne de caractères)
Propriété du message utilisée pour spécifier l'adresse de la réponse.
SAM_RTT (chaîne de caractères)
Définition du protocole de connexion sélectionnant le protocole IBM Realtime Transport utilisé pour la communication avec le serveur de messagerie.
SAM_STRING (chaîne de caractères)
Type à utiliser lors de la configuration des propriétés des objets SAM_Message.
SAM_TARGETCHAIN (chaîne de caractères)
Attribut de connexion utilisé pour définit la chaîne identifiant la cible.
SAM_TEXT (chaîne de caractères)
Description du type de corps du message.
SAM_TIMETOLIVE (chaîne de caractères)
Option du message envoyé utilisé pour spécifier la durée de vie d'un message.
SAM_TRANSACTIONS (chaîne de caractères)
Attribut de connexion utilisé pour définir le comportement transactionnel. Peut être définit à SAM_AUTO (par défaut) ou SAM_MANUAL.
SAM_USERID (chaîne de caractères)
Attribut de connexion utilisé pour définir le compte à utiliser pour se connecter au serveur de messagerie.
SAM_WAIT (chaîne de caractères)
Propriété reçue à utiliser pour spécifier le délai d'attente maximal à utiliser lors de la réception d'un message.
SAM_WMQ (chaîne de caractères)
Définition du protocole de connexion pour sélectionner le protocole IBM WebSphere MQSeries pour la communication avec un serveur de messagerie.
SAM_WMQ_BINDINGS (chaîne de caractères)
Définition du protocole de connexion pour sélectionner le protocole IBM WebSphere MQSeries pour la communication avec un serveur de messagerie local.
SAM_WMQ_CLIENT (chaîne de caractères)
Définition du protocole de connexion pour sélectionner le protocole IBM WebSphere MQSeries pour la communication avec un serveur de messagerie distant.
SAM_WMQ_TARGET_CLIENT (chaîne de caractères)
Option utilisé sur les demandes envoyées pour spécifier le mode du client cible. Elle peut valoir, par défaut, "jms" ou "mq". La valeur par défaut est "jms", ce qui signifie qu'un en-tête RFH2 est envoyé avec le message, tandis qu'avec "mq", aucun en-tête RFH2 n'est envoyé.
SAM_WPM (chaîne de caractères)
Définition du protocole de connexion pour sélectionner le protocole IBM WebSphere Platform Messaging pour la communication avec un serveur de messagerie WebSphere Application Server.


Exemples

Sommaire

  • Connexions
  • Messages
  • Opérations de messagerie
  • Publication/Souscription à un sujet
  • Gestion des erreurs


Connexions

Afin d'exécuter des fonctions de messageries et de mise en file d'attente, une connexion doit être établie avec un serveur de messagerie en créant un objet SAMConnection et en appelant sa méthode "connect", avec quelques propriétés de connexion, afin de connecter le script PHP au serveur de messagerie. Pendant le temps où l'objet SAMConnection n'est pas détruit, la connexion sera maintenue et disponible. Tous les objets SAMConnection seront détruis lorsque le script PHP se terminera.

Quelques propriétés par défaut peuvent être utilisées pour la connexion au serveur de messagerie mais le script PHP doit spécifier au minimum le protocole à utiliser.

Exemple #1 Création d'une connexion et connexion à un serveur de messagerie distant WebSphere MQSeries

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'myhost.mycompany.com',
                              SAM_PORT => 1506,
                              SAM_BROKER => 'mybroker'));
?>

Exemple #2 Création d'une connexion et connexion à un serveur distant WebSphere Application

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WPM, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              SAM_BUS => 'Bus1',
                              SAM_TARGETCHAIN => 'InboundBasicMessaging'));
?>

Exemple #3 Création d'un connexion et connexion à un serveur MQTT

<?php
$conn = new SAMConnection();
$conn->connect(SAM_MQTT, array(SAM_HOST => 'myhost.mycompany.com',
                               SAM_PORT => 1883));
?>


Messages

Les messages envoyés et reçus depuis les files d'attente sont représentés par l'objet SAMMessage. L'objet SAMMessage contient le corps du message (s'il existe) ainsi que les propriétés des en-têtes associés au message. L'objet SAMMessage est soit fourni en tant que paramètre d'une opération sur un message, ou retourné comme résultat.

Exemple #1 Création d'un message avec un corps texte simple

<?php
$msg = new SAMMessage('This is a simple text message');
?>

Les messages doivent avoir des propriétés d'en-têtes associés, qui permettent le contrôle du transport du message ou fournissent des informations futures sur l'application réceptrice. Par défaut, les propriétés des messages sont délivrées au système de messagerie sous la forme de chaînes de caractères et dans ce cas, peuvent être définies comme ceci :

Exemple #2 Définition d'une propriété de formatage de texte en utilisant la syntaxe par défaut

<?php
$msg->header->myPropertyName = 'textData';
?>

Si vous voulez passer des informations sur le type, une syntaxe alternative peut être utilisée où la valeur et le type sont passés dans un tableau associatif :

Exemple #3 Définition d'une propriété en spécifiant le type

<?php
$msg->header->myPropertyName = array(3.14159, SAM_FLOAT);
?>

Les propriétés peuvent également être extraites depuis l'en-tête d'un message.

Exemple #4 Récupération d'une propriété depuis l'en-tête d'un message

<?php
$myProperty = $msg->header->myPropertyName;
?>


Opérations de messagerie

Toutes les opérations de messagerie sont exécutées via des appels aux méthodes sur l'objet de connexion. Pour ajouter un message à la file d'attente, la méthode "send" est utilisée, tandis que pour obtenir un message depuis la file d'attente, la méthode "receive" est utilisée. D'autres méthodes offrent d'autres fonctionnalités comme la publication, la souscription ou encore le contrôle sur les transactions.

Exemple #1 Ajout d'un message à la file d'attente et réception de la réponse

<?php
$msg = new SAMMessage('Ceci est un message texte simple');
$msg->header->SAM_REPLY_TO = 'queue://receive/test';
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
  // The Send failed!
  echo "Send failed ($conn->errno) $conn->error";
} else {
  $resp = $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>


Publication/Souscription à un sujet

SAM permet d'envoyer des messages soit à la file d'attente, ou, pour WebSphere MQ et WPM, de publier/souscrire à des sujets. L'envoi à un sujet est spécifié à SAM de la façon habituelle, i.e. sous la forme 'topic://fred', plutôt que sous la forme 'queue://AQUEUE', utilisée pour une opération de point à point. Pour publier/souscrire, il est tout simplement nécessaire de spécifier le correct du courtier lors de l'appel à la méthode "connect" de l'objet SAMConnect et le sujet désiré dans l'argument de destination des appels aux méthodes "send" et "receive" de l'objet SAMConnect. L'interface PHP est cependant identique au model point à point.

Par défaut, SAM crée des souscriptions non durables lors de l'utilisation des fonctionnalités de publication/souscription. Cela signifie que si l'application cliente est inactive lorsque les messages sont publiés sur un sujet, alors il ne les recevra pas lorsqu'il redemarrera. SAM permet également des souscriptions durables à un sujet lors de l'utilisation de WPM ou WebSphere. Le but de ces souscriptions est de permettre aux données d'être reçues par une application cliente même si le client n'est plus actif au moment où les données sont publiées.

Les souscriptions durables sont spécifiées en utilisant l'appel à la méthode "suscribe" de l'objet SAMConnect. Cette méthode prend le sujet destinataire en tant qu'argument d'entrée et retourne l'identifiant de souscription qui pourra être utilisé lors des prochains appels à la méthode "receive". Lorsque la souscription n'est plus nécessaire, la méthode "unsubscribe" de l'objet SAMConnection dot être utilisée pour effacer la souscription.

Exemple #1 Création d'une souscription durable à un sujet

<?php

$subName = $conn->subscribe('topic://A');

if (!$subName) {
   echo "Échec de la souscription";
} else {
    # Souscription Ok
    // ...
}
?>

Exemple #2 Souscription à un sujet en utilisant un serveur WebSphere Platform Messaging (WPM)

<?php
$conn = new SAMConnection();
// Note: Pour une publication/souscription sur un WPM, lors de la connexion, le nom du moteur de messagerie
// qui gère la souscription durable (SAM_WPM_DUR_SUB_HOME) doit être spécifié.
$conn->connect(SAM_WMQ, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              SAM_BUS => 'Bus1',
                              SAM_TARGETCHAIN => 'InboundBasicMessaging',
                              SAM_WPM_DUR_SUB_HOME => 'MyMachineNode01.server1-Bus1'));

$subName = $conn->subscribe('topic://A');

if (!$subName) {
   echo "Échec de la souscription";
} else {
    # Souscription Ok
   // ...
}
?>

Exemple #3 Réception des données publiées en utilisant une souscription durable

<?php

$msg = $conn->receive($subName);
if ($msg) {
   echo "Réception d'un message Ok";
} else {
    echo "Échec de la réception";
}

?>

Exemple #4 Effacement d'une souscription durable à un sujet

<?php

if (!$conn->unsubscribe($subName)) {
   echo "Échec lors de l'effacement de la souscription";
}

?>


Gestion des erreurs

Toutes les méthodes SAMConnection qui fournissent un accès aux opérations de messagerie retourne FALSE si une erreur survient durant le processus. En plus de cela, l'objet SAMConnection a deux propriétés, "errno" et "error", qui fournissent respectivement le numéro et la description de la dernière erreur survenue sur la connexion.

Exemple #1 Gestion d'une erreur depuis une méthode qui ne retourne aucun résultat

<?php
if (!$conn->commit()) {
    // Le commit a échoué !
    echo "Le commit a échoué : ($conn->errno) $conn->error";
}
?>

Exemple #2 Gestion d'une erreur depuis une méthode qui retourne un résultat

<?php
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
    //L'envoi a échoué !
    echo "L'envoi a échoué : ($conn->errno) $conn->error";
} else {
  /* ... */
}
?>


Fonctions SAM

Classes pré-définies

SAMConnection

Objet représentant une connexion à un serveur de messagerie

Constructeur

  • new SAMConnection : construit un nouvel objet de connexion permettant une connexion à une infrastructure de messagerie.

Méthodes

  • commit : une méthode qui valide un travail.

  • connect : une méthode qui connecte un script PHP à un serveur de messagerie.

  • disconnect : une méthode qui déconnecte un script PHP d'un serveur de messagerie.

  • isConnected : une méthode qui vérifie si un script PHP est connecté à un serveur de messagerie.

  • peek : une méthode qui reçoit un message depuis la file d'attente sans pour autant l'effacer de la file d'attente.

  • peekAll : une méthode qui reçoit un ou plusieurs messages depuis la file d'attente sans pour autant les effacer de la file d'attente.

  • receive : une méthode qui reçoit un message depuis la file d'attente ou depuis une souscription.

  • remove : une méthode qui efface un message depuis la file d'attente.

  • rollback : une méthode qui annule un travail.

  • send : une méthode qui envoie un message à une file d'attente ou sur un sujet.

  • setDebug : une méthode qui active ou non l'affichage des informations de déboguage

  • subscribe : une méthode qui crée une souscription à un ou plusieurs sujets.

  • unsubscribe : une méthode qui détruit une suscription à un ou plusieurs sujets.

Propriétés

  • errno : le numéro de la dernière erreur survenue sur la connexion. Cette propriété est définie à 0 si la dernière opération a réussi.

  • error : la description de la dernière erreur survenue sur la connexion.

SAMMessage

Objet représentant un message à envoyer ou à recevoir.

Constructeur

  • new SAMMessage : construit un nouveau message.

Propriétés

  • body : le corps du message.

  • header : les propriétés d'en-tête du message.

Sommaire

  • SAMConnection::commit — Valide le travail courant
  • SAMConnection::connect — Établie une connexion à un serveur de messagerie
  • SAMConnection::__construct — Crée une nouvelle connexion à un serveur de messagerie
  • SAMConnection::disconnect — Déconnexion d'un serveur de messagerie
  • SAMConnection::errno — Récupère le numéro de la dernière erreur issue d'une opération SAM
  • SAMConnection::error — Récupère la description de la dernière erreur d'une opération SAM
  • SAMConnection::isConnected — Vérifie si une connexion est établie avec un serveur de messagerie
  • SAMConnection::peek — Lit un message depuis la file d'attente sans l'effacer
  • SAMConnection::peekAll — Lit un ou plusieurs messages depuis la file d'attente sans les effacer
  • SAMConnection::receive — Reçoit un message depuis une file d'attente ou d'une souscription
  • SAMConnection::remove — Efface un message depuis la file d'attente
  • SAMConnection::rollback — Annulation d'un travail
  • SAMConnection::send — Envoie un message à une file d'attente ou le publie sur un sujet
  • SAMConnection::setDebug — Active ou non l'affiche des informations de déboguage
  • SAMConnection::subscribe — Crée une souscription à un sujet spécifique
  • SAMConnection::unsubscribe — Annule une souscription à un sujet spécifique
  • SAMMessage::body — Définit le corps d'un message
  • SAMMessage::__construct — Crée un nouvel objet de message
  • SAMMessage::header — Les propriétés d'en-tête d'un message


Valide le travail courant

  • « Fonctions SAM
  • SAMConnection::connect »
  • PHP Manual
  • Fonctions SAM
  • Valide le travail courant

SAMConnection::commit

(PECL sam >= 0.1.0)

SAMConnection::commit — Valide le travail courant

Description

bool SAMConnection::commit ( void )

L'appel à la méthode "commit" sur un objet de connexion valide toutes les transactions courantes.

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple #1 Validation du travail courant

<?php
  if (!$conn->commit()) {
    // Échec de la validation !
    echo "La validation a échoué : ($conn->errno) $conn->error";
  }
?>

Voir aussi

  • SAMConnection::rollback


Établie une connexion à un serveur de messagerie

  • « SAMConnection::commit
  • SAMConnection::__construct »
  • PHP Manual
  • Fonctions SAM
  • Établie une connexion à un serveur de messagerie

SAMConnection::connect

(PECL sam >= 0.1.0)

SAMConnection::connect — Établie une connexion à un serveur de messagerie

Description

bool SAMConnection::connect ( string $protocol [, array $properties ] )

L'appel à la méthode "connect" sur un objet SAMConnection connecte le script PHP à un serveur de messagerie. Aucun message ne peut être envoyé ou reçu tant qu'une connexion n'est pas établie.

Liste de paramètres

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple #1 Création d'une connexion à un serveur de messagerie en utilisant le protocole IBM MQSeries (WMQ)

<?php

$conn->connect(SAM_WMQ, array(SAM_HOST => 'Myhost.myco.com', SAM_PORT => 1506, SAM_BROKER => 'MyBroker'));

?>

Exemple #2 Création d'une connexion avec contrôle des transactions, hôte par défaut et valeur du port de communication

<?php

$conn->connect(SAM_WMQ, array(SAM_BROKER => 'MyBroker', SAM_TRANSACTIONS => SAM_MANUAL));

?>

Exemple #3 Création d'une connexion à un serveur de messagerie en utilisant le protocole IBM WebSphere Platform Messaging (WPM)

<?php

$conn->connect(SAM_WPM, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              SAM_BUS => 'Bus1', SAM_TARGETCHAIN => 'InboundBasicMessaging'));

?>

Voir aussi

  • SAMConnection::isConnected
  • SAMConnection::disconnect


Crée une nouvelle connexion à un serveur de messagerie

  • « SAMConnection::connect
  • SAMConnection::disconnect »
  • PHP Manual
  • Fonctions SAM
  • Crée une nouvelle connexion à un serveur de messagerie

SAMConnection::__construct

(PECL sam >= 0.1.0)

SAMConnection::__construct — Crée une nouvelle connexion à un serveur de messagerie

Description

SAMConnection::__construct ( void )

Crée un nouvel objet SAMConnection.

Exemples

Exemple #1 Création d'un nouvel objet de connexion SAM et une connexion à un serveur de messagerie

<?php

$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => localhost, SAM_PORT => 1414, SAM_BROKER => 'bull'));

?>


Déconnexion d'un serveur de messagerie

  • « SAMConnection::__construct
  • SAMConnection::errno »
  • PHP Manual
  • Fonctions SAM
  • Déconnexion d'un serveur de messagerie

SAMConnection::disconnect

(PECL sam >= 0.1.0)

SAMConnection::disconnect — Déconnexion d'un serveur de messagerie

Description

bool SAMConnection::disconnect ( void )

L'appel à la méthode "disconnect" d'un objet SAMConnection déconnecte le script PHP d'un serveur de messagerie. Aucun message ne peut être envoyé ou reçu tant qu'une connexion n'a pas été établie.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Déconnexion d'un serveur de messagerie

<?php

$conn->disconnect();

?>

Voir aussi

  • SAMConnection::isConnected
  • SAMConnection::connect


Récupère le numéro de la dernière erreur issue d'une opération SAM

  • « SAMConnection::disconnect
  • SAMConnection::error »
  • PHP Manual
  • Fonctions SAM
  • Récupère le numéro de la dernière erreur issue d'une opération SAM

SAMConnection::errno

(PECL sam >= 0.1.0)

SAMConnection::errno — Récupère le numéro de la dernière erreur issue d'une opération SAM

Description

int $SAMConnection->errno;

Contient le code erreur de la dernière opération SAM sur la connexion. Si la dernière opération a réussie, cette propriété contient 0.

Valeurs de retour

Un entier supérieur à 0 indique le type de la dernière erreur rencontrée sur la connexion. 0 indique que la dernière opération a réussie.

Exemples

Exemple #1 Exemple d'utilisation du numéro et de la description de l'erreur

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'localhost', SAM_PORT => 1506));
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
    // L'envoi a échoué !
    echo "L'envoi a échoué : ($conn->errno) $conn->error";
}
?>

Voir aussi

  • SAMConnection::error


Récupère la description de la dernière erreur d'une opération SAM

  • « SAMConnection::errno
  • SAMConnection::isConnected »
  • PHP Manual
  • Fonctions SAM
  • Récupère la description de la dernière erreur d'une opération SAM

SAMConnection::error

(PECL sam >= 0.1.0)

SAMConnection::error — Récupère la description de la dernière erreur d'une opération SAM

Description

string $SAMConnection->error;

Contient la description de la dernière erreur survenue sur la connexion. Si la dernière opération a réussie, cette propriété contiendra une chaîne vide.

Valeurs de retour

Une chaîne de caractères contenant la description de la dernière erreur rencontrée sur la connexion. Une chaîne vide indique que la dernière opération sur la connexion a réussi.

Exemples

Exemple #1 Exemple d'utilisation du numéro et de la description d'une erreur

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'localhost', SAM_PORT => 1506));
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
    // L'envoi a échoué !
    echo "L'envoi a échoué : ($conn->errno) $conn->error";
}
?>

Voir aussi

  • SAMConnection::errno


Vérifie si une connexion est établie avec un serveur de messagerie

  • « SAMConnection::error
  • SAMConnection::peek »
  • PHP Manual
  • Fonctions SAM
  • Vérifie si une connexion est établie avec un serveur de messagerie

SAMConnection::isConnected

(PECL sam >= 0.1.0)

SAMConnection::isConnected — Vérifie si une connexion est établie avec un serveur de messagerie

Description

bool SAMConnection::isConnected ( void )

L'appel à la méthode "isConnected" sur un objet de connexion vérifie si le script PHP est connecté à un serveur de messagerie. Aucun message ne peut être envoyé, ni reçu tant qu'une connexion n'a pas été établie à un serveur de messagerie.

Valeurs de retour

Cette méthode retourne TRUE si l'objet SAMConnection est connecté à une serveur de messagerie, FALSE sinon.

Exemples

Exemple #1 Vérifie si la connexion est établie à un serveur de messagerie

<?php

if ($conn->isConnected()) {
  echo 'Connexion active.';
} else {
  echo 'Aucune connexion acitve !';
}

?>

Voir aussi

  • SAMConnection::disconnect
  • SAMConnection::connect


Lit un message depuis la file d'attente sans l'effacer

  • « SAMConnection::isConnected
  • SAMConnection::peekAll »
  • PHP Manual
  • Fonctions SAM
  • Lit un message depuis la file d'attente sans l'effacer

SAMConnection::peek

(PECL sam >= 0.1.0)

SAMConnection::peek — Lit un message depuis la file d'attente sans l'effacer

Description

SAMMessage SAMConnection::peek ( string $target [, array $properties ] )

Liste de paramètres

target

L'identité de la file d'attente depuis laquelle on lit le message.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération.

Nom de la propriété | Valeurs possibles
SAM_CORRELID | C'est l'identifiant de corrélation des messages à lire. Ceci est typiquement retourné par la demande "send".
SAM_MESSAGEID | C'est l'identifiant du message à lire.

Valeurs de retour

Cette méthode retourne un objet SAMMessage ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupération du prochain message depuis la file d'attente sans l'effacer

<?php
$msg = $conn->peek('queue://receive/test');

if (!$msg) {
  // Échec de la lecture !
  echo "Échec de la lecture : ($conn->errno) $conn->error";
}
?>

Exemple #2 Récupération d'un message spécifique depuis la file d'attente sans l'effacer

<?php

$msg = $conn->peek('queue://receive/test', array(SAM_MESSAGEID => $messageId));

?>

Voir aussi

  • SAMConnection::peekAll


Lit un ou plusieurs messages depuis la file d'attente sans les effacer

  • « SAMConnection::peek
  • SAMConnection::receive »
  • PHP Manual
  • Fonctions SAM
  • Lit un ou plusieurs messages depuis la file d'attente sans les effacer

SAMConnection::peekAll

(PECL sam >= 0.2.0)

SAMConnection::peekAll — Lit un ou plusieurs messages depuis la file d'attente sans les effacer

Description

array SAMConnection::peekAll ( string $target [, array $properties ] )

Liste de paramètres

target

L'identité de la file d'attente depuis laquelle les messages doivent être lus.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération.

Nom de la propriété | Valeurs possibles
SAM_CORRELID | C'est l'identifiant de corrélation des messages à lire. Ceci est typiquement retourné par la demande "send".
SAM_MESSAGEID | C'est l'identifiant du message à lire.

Valeurs de retour

Cette méthode retourne un tableau d'objets SAMMessage ou FALSE si une erreur survient.

Exemples

Exemple #1 Récupération de tous les messages d'une file d'attente sans les effacer

<?php
$msgArray = $conn->peekAll('queue://receive/test');
if ($msgArray) {
   foreach ( $msgArray as $key => $msg) {
       echo "Message $key: body = $msg->body\n";
   }
} else {
   echo "Échec de PeekAll ($conn->errno) $conn->error";
}
?>

Exemple #2 Récupération de tous les messages d'une file d'attente correspondant à un identifiant de corrélation

<?php

   $msgArray = $conn->peekAll('queue://receive/test', array(SAM_CORRELID => $correlId ));
   if ($msgArray) {

      foreach ( $msgArray as $key => $msg) {
            echo "Message $key: body = $msg->body\n";
         }
   } else {
      echo "Erreur de lecture : ($conn->errno) $conn->error";
   }

?>

Voir aussi

  • SAMConnection::peek


Reçoit un message depuis une file d'attente ou d'une souscription

  • « SAMConnection::peekAll
  • SAMConnection::remove »
  • PHP Manual
  • Fonctions SAM
  • Reçoit un message depuis une file d'attente ou d'une souscription

SAMConnection::receive

(PECL sam >= 0.1.0)

SAMConnection::receive — Reçoit un message depuis une file d'attente ou d'une souscription

Description

SAMMessage SAMConnection::receive ( string $target [, array $properties ] )

Liste de paramètres

target

L'identité de la file d'attente, du sujet ou de la souscription depuis lequel le message est reçu.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération de réception :

Nom de la propriété | Valeurs possibles
SAM_CORRELID | Utilisé pour demander la réception d'un message en se basant sur l'identifiant de corrélation du message.
SAM_MESSAGEID | Utilisé pour demander la réception d'un message en se basant sur l'identifiant du message.
SAM_WAIT | Délai d'attente maximal en millisecondes permettant de contrôler le temps d'attente de réception du message avant de retourner une erreur si aucun message n'est disponible sur la file d'attente ou sur le sujet. La valeur par défaut est 0, ce qui signifie que le délai est infini et doit donc être utilisée avec précaution car la demande attendra jusqu'au temps limite d'exécution PHP si aucun message n'est disponible.

Valeurs de retour

Cette méthode retourne un objet SAMMessage ou FALSE si une erreur survient.

Exemples

Exemple #1 Réception d'un message depuis la file d'attente

<?php
$msg = $conn->receive('queue://receive/test');

if (!$msg) {
  // La réception a échoué !
  echo "La réception a échoué : ($conn->errno) $conn->error";
}
?>

Exemple #2 Réception d'un message depuis la file d'attente avec des options

Dans cet exemple, l'option SAM_CORRELID est utilisé pour spécifier un identifiant de corrélation à utiliser pour identifier le message à recevoir ainsi qu'un délai d'attente maximal de 10 secondes.

<?php

$msg = $conn->receive('queue://receive/test', array(SAM_CORRELID => $token, SAM_WAIT => 10000));

?>

Exemple #3 Réception d'un message depuis une souscription

Dans cet exemple, nous montrons comment réceptionner un message depuis un identifiant de souscription.

<?php
$msg = $conn->receive($subscriptionName);

if (!$msg) {
  // La réception a échoué !
  echo "La réception a échoué : ($conn->errno) $conn->error";
}
?>

Noter que $subscriptionName est un identifiant de souscription retourné lors d'un précédent appel à une souscription.

Voir aussi

  • SAMConnection::send


Efface un message depuis la file d'attente

  • « SAMConnection::receive
  • SAMConnection::rollback »
  • PHP Manual
  • Fonctions SAM
  • Efface un message depuis la file d'attente

SAMConnection::remove

(PECL sam >= 0.1.0)

SAMConnection::remove — Efface un message depuis la file d'attente

Description

SAMMessage SAMConnection::remove ( string $target [, array $properties ] )

Efface un message depuis la file d'attente.

Liste de paramètres

target

L'identité de la file d'attente depuis laquelle le message doit être effacé.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres permettant le contrôle de l'opération.

Nom de la propriété | Valeurs possibles
SAM_CORRELID | C'est l'identifiant de corrélation des messages à lire. Ceci est typiquement retourné par la demande "send".
SAM_MESSAGEID | C'est l'identifiant du message à effacer.

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple #1 Effacement d'un message depuis la file d'attente en utilisant un identifiant de message

<?php
if (!$conn->remove('queue://receive/test', array(SAM_MESSAGEID => $messageId))) {
  // L'effacement a échoué !
  echo "L'effacement a échoué : ($conn->errno) $conn->error";
}
?>


Annulation d'un travail

  • « SAMConnection::remove
  • SAMConnection::send »
  • PHP Manual
  • Fonctions SAM
  • Annulation d'un travail

SAMConnection::rollback

(PECL sam >= 0.1.0)

SAMConnection::rollback — Annulation d'un travail

Description

bool SAMConnection::rollback ( void )

Annulation d'un travail.

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple #1 Annulation d'un travail

<?php
if (!$conn->rollback()) {
  // L'annulation a échoué !
  echo "L'annulation a échoué : ($conn->errno) $conn->error";
}
?>

Voir aussi

  • SAMConnection::commit


Envoie un message à une file d'attente ou le publie sur un sujet

  • « SAMConnection::rollback
  • SAMConnection::setDebug »
  • PHP Manual
  • Fonctions SAM
  • Envoie un message à une file d'attente ou le publie sur un sujet

SAMConnection::send

(PECL sam >= 0.1.0)

SAMConnection::send — Envoie un message à une file d'attente ou le publie sur un sujet

Description

string SAMConnection::send ( string $target , SAMMessage $msg [, array $properties ] )

La méthode "send" est utilisée pour envoyer un message à une file d'attente spécifique ou le publier à un sujet spécifique. La méthode retourne l'identifiant de corrélation qui peut être utilisé comme sélecteur pour identifier les messages réponses.

Liste de paramètres

target

Si l'on envoie un message, ce sera l'identité de la file d'attente (queue://queuename) ou, si on le publie à un sujet spécifique, l'identité du sujet (topic://topicname) auquel le message doit être délivré.

msg

Le message à envoyer ou à publier.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération.

Nom de la propriété | Valeurs de la propriété
SAM_DELIVERYMODE | Indique si le serveur de messagerie doit s'assurer de la délivrance du message ou s'il accepte que les messages soient perdus en cas de défaillance du serveur de messagerie. La valeur de cette propriété peut être définie soit à SAM_PERSISTENT, pour indiquer que la perte des messages n'est pas acceptable, soit à SAM_NON_PERSISTENT si la perte de messages est acceptable. Le comportement résultant de l'envoi dépendra des capacités du serveur de messagerie auquel est connecté le script PHP. Si le serveur ne supporte pas les messages persistants et que SAM_PERSISTENT est spécifié, l'envoi échouera avec une erreur indiquant que la fonctionnalité n'est pas disponible.
SAM_PRIORITY | Une valeur numérique entre 0 et 9 indique la priorité de délivrance du message. Une valeur de priorité de 0 indique une priorité basse, alors que 9 indique une priorité haute. Si aucune priorité n'est spécifiée, une valeur par défaut sera passée, dépendant du serveur de messagerie utilisé.
SAM_CORRELID | Une chaîne à assigner comme identifiant de corrélation pour ce message. Si aucune valeur n'est fournie, le serveur de messagerie peut assigner une valeur automatiquement.
SAM_TIMETOLIVE | Une durée, en millisecondes, indiquant combien de temps le serveur de messagerie doit retenir le message dans une file d'attente avant de le jeter. La valeur par défaut est 0 indiquant que le message doit être retenu indéfiniment.
SAM_WMQ_TARGET_CLIENT | Cette propriété n'est valide que lors de l'utilisation de WebSphere MQ et indique si l'on doit inclure un en-tête RFH2 dans le message. Cette option doit être définie à 'jms' ou 'mq'. Par défaut, elle vaut 'jms' ce qui signifie que l'en-tête RFH2 est incluse. Si la valeur 'mq' est spécifiée, alors, aucun en-tête RFH2 ne sera inclus dans le message.

Valeurs de retour

Un identifiant de corrélation qui peut être utilisé dans un appel de réception en tant que sélecteur pour obtenir toutes les réponses, ou FALSE si une erreur survient.

Note:

Note : un identifiant de corrélation ne sera retourné qu'en cas d'un envoi réussi à une file d'attente (queue://xxxx) et dans ce cas, sera l'identité du message sur la file d'attente. Si l'envoi est destiné à publier des données, la valeur retournée sera TRUE, car aucun identifiant de corrélation ne sera disponible.

Exemples

Exemple #1 Envoi d'un message à une file d'attente

<?php
$msg = new SAMMessage('Ceci est un message simple');
$correlId = $conn->send('queue://send/test', $msg);
if (!$correlId) {
    // L'envoi a échoué !
    echo "L'envoi a échoué : ($conn->errno) $conn->error";
}

?>

Exemple #2 Publication d'un message sur un sujet

<?php
$msg = new SAMMessage('Ceci est un élément simple');
if (!$conn->send('topic://test', $msg)) {
    // L'envoi a échoué !
    echo "L'envoi a échoué : ($conn->errno) $conn->error";
}
?>

Exemple #3 Envoi une demande et réceptionne la réponse

<?php
$msg = new SAMMessage('Ceci est un message simple');
$msg->header->SAM_REPLY_TO = 'queue://receive/test';
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
    // L'envoi a échoué !
    echo "L'envoi a échoué : ($conn->errno) $conn->error";
} else {
    $resp = $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>

Voir aussi

  • SAMConnection::receive


Active ou non l'affiche des informations de déboguage

  • « SAMConnection::send
  • SAMConnection::subscribe »
  • PHP Manual
  • Fonctions SAM
  • Active ou non l'affiche des informations de déboguage

SAMConnection::setDebug

(PECL sam >= 1.1.0)

SAMConnection::setDebug — Active ou non l'affiche des informations de déboguage

Description

La méthode "setdebug" est utilisée pour activer ou non l'affichage des informations de déboguage. Le framework SAM fournira des entrées de méthode/fonction et sortira une trace en plus d'informations connexes. L'implémentation spécifique du protocole fournira également des messages supplémentaires.

void SAMConnection::setDebug ( bool $switch )

Liste de paramètres

switch

Si ce paramètre est défini à TRUE, l'affichage additionnelle des informations de déboguage sera fournie. Si la valeur est définie à FALSE, l'affichage de déboguage sera interrompue.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Activation de l'affichage de déboguage

<?php
$conn->setdebug(TRUE);
?>

Exemple #2 Désactivation de l'affichage de déboguage

<?php
$conn->setdebug(FALSE);
?>


Crée une souscription à un sujet spécifique

  • « SAMConnection::setDebug
  • SAMConnection::unsubscribe »
  • PHP Manual
  • Fonctions SAM
  • Crée une souscription à un sujet spécifique

SAMConnection::subscribe

(PECL sam >= 0.1.0)

SAMConnection::subscribe — Crée une souscription à un sujet spécifique

Description

string SAMConnection::subscribe ( string $targetTopic )

La méthode "subscribe" est utilisée pour créer une nouvelle souscription à un sujet spécifique.

Liste de paramètres

targetTopic

L'identité du sujet (topic://topicname) à souscrire.

Valeurs de retour

Un identifiant de souscription qui peut être utilisé dans une sous-séquence de réception en tant que sélecteur pour obtenir n'importe quelles données du sujet ou FALSE si une erreur survient. L'identifiant de souscription doit être utilisé dans l'appel de réception en tant que nom du sujet.

Exemples

Exemple #1 Souscription à un sujet

<?php
$subid = $conn->subscribe('topic://A');
if (!$subid) {
  // La souscription a échoué !
  echo "La souscription a échoué : ($conn->errno) $conn->error";
}
?>

Voir aussi

  • SAMConnection::unsubscribe


Annule une souscription à un sujet spécifique

  • « SAMConnection::subscribe
  • SAMMessage::body »
  • PHP Manual
  • Fonctions SAM
  • Annule une souscription à un sujet spécifique

SAMConnection::unsubscribe

(PECL sam >= 0.1.0)

SAMConnection::unsubscribe — Annule une souscription à un sujet spécifique

Description

bool SAMConnection::unsubscribe ( string $subscriptionId [, string $targetTopic ] )

La méthode "unsubscribe" est utilisée pour effacer une souscription existante à un sujet spécifique.

Liste de paramètres

subscriptionId

L'identifiant d'une souscription existante tel que retourné par un appel à la méthode "subscribe".

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple #1 Efface une souscription

<?php
if (!$conn->unsubscribe($subid)) {
  // La souscription a échoué !
  echo "La souscription a échoué : ($conn->errno) $conn->error";
}
?>

Voir aussi

  • SAMConnection::subscribe


Définit le corps d'un message

  • « SAMConnection::unsubscribe
  • SAMMessage::__construct »
  • PHP Manual
  • Fonctions SAM
  • Définit le corps d'un message

SAMMessage::body

(PECL sam >= 0.1.0)

SAMMessage::body — Définit le corps d'un message

Description

string $SAMMessage->body;

La propriété "body" contient le corps actuel du message. Il peut ne pas toujours avoir été défini.

Exemples

Exemple #1 Définition d'un texte dans le corps d'un message

<?php
$msg = new SAMMessage();
$msg->body = 'Ceci est un texte simple.';

?>

Voir aussi

  • SAMMessage::header


Crée un nouvel objet de message

  • « SAMMessage::body
  • SAMMessage::header »
  • PHP Manual
  • Fonctions SAM
  • Crée un nouvel objet de message

SAMMessage::__construct

(PECL sam >= 0.1.0)

SAMMessage::__construct — Crée un nouvel objet de message

Description

SAMMessage::__construct ([ mixed $body ] )

Crée un nouvel objet SAMMessage et, optionnellement, le corps d'un message.

Liste de paramètres

body

Le corps optionnel du message.

Exemples

Exemple #1 Création d'un message

<?php

$msg = new SAMMessage();

?>

Exemple #2 Création d'un message avec un texte simple

<?php

$msg = new SAMMessage('Ceci est un message simple.');

?>


Les propriétés d'en-tête d'un message

  • « SAMMessage::__construct
  • SNMP »
  • PHP Manual
  • Fonctions SAM
  • Les propriétés d'en-tête d'un message

SAMMessage::header

(PECL sam >= 0.1.0)

SAMMessage::header — Les propriétés d'en-tête d'un message

Description

object $SAMMessage->header;

La propriété header est un conteneur pour n'importe quel système ou propriétés utilisateur dont l'espace est associé au message.

Les propriétés peuvent être assignées par l'expéditeur du message pour contrôler la façon dont le gestionnaire de messagerie va le gérer ou peuvent être assignées par le système de messagerie lui-même pour communiquer au récepteur des informations additionnelles sur le message ou la façon dont il doit le gérer.

Quelques propriétés sont comprises par SAM dans le cas où les constantes y ont été définies. Cependant, la majorité des propriétés sont ignorées par l'implémentation de SAM et simplement passées aux systèmes de messagerie permettant ainsi à l'application d'utiliser les noms des propriétés spécifiques à la messagerie ou pour définir vos propres propriétés "utilisateur".

Les propriétés SAM définies sont les suivantes :

Nom de la propriété | Valeurs possibles
SAM_MESSAGEID | Lorsqu'un message est reçu, ce champs contient l'identifiant unique du message alloué par le système de messagerie. Lorsqu'un message est envoyé, ce champs est ignoré.
SAM_REPLY_TO | Une chaîne de caractères fournissant l'identifiant de la file d'attente à laquelle les réponses à ce message doit être posté.
SAM_TYPE

Une indication du type de message à envoyer. La valeur peut être SAM_TEXT, indiquant que le contenu du corps du message est du texte, ou SAM_BYTES, indiquant que le contenu du corps du message contient des formats définis.

La façon dont cette propriété est utilisée dépend du serveur de messagerie. Pour le moment, un serveur de messagerie qui supporte les spécifications JMS (Java Message Service) interprète cette valeur et envoie des messages du type "jms_text" et "jms_bytes". De plus, si la propriété SAM_TYPE est définie à SAM_TEXT, les données fournies pour le corps du message est supposées être encodées UTF8.

Lors de la configuration des valeurs de ces propriétés, il est souvent utile de fournir un indice quant au format dans lequel la propriété doit être délivrée au serveur de messagerie. Par défaut, les valeurs des propriétés sont délivrées en tant que texte et la syntaxe simple suivante peut être utilisée pour définir une valeur :

Exemple #1 Définition d'une propriété au format texte en utilisant la syntaxe par défaut

<?php
$msg = new SAMMessage();

$msg->header->myPropertyName = 'textData';
?>

Si vous voulez passer une information sur le type, une syntaxe alternative peut être utilisée où la valeur et le type sont passés dans un tableau associatif :

Exemple #2 Définition d'une propriété au format texte en utilisant un type

<?php
$msg = new SAMMessage();

$msg->header->myPropertyName = array('textData', SAM_STRING);
?>

Lorsque vous passez le type, il doit être un parmi les valeurs des constantes SAM définies, tel que dans le tableau suivant :

Constante | Description du type
SAM_BOOLEAN | Toute valeur passée sera interprétée comme logique, TRUE ou FALSE. Si la valeur n'a pû être interprétée en tant qu'une valeur booléenne PHP, la valeur passée au système de messagerie sera indéfinie.
SAM_BYTE | Une valeur entière signée sur 8-bit. SAM tentera de convertir la valeur spécifiée en une valeur sur un octet à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pu être déterminée en tant que valeur binaire signé sur 8-bit, les données peuvent être perdues pendant la conversion.
SAM_DOUBLE | Une valeur longue, à virgule flottante. SAM tentera de convertir la valeur spécifiée en une valeur à virgule flottante avec 15 unités de précision à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pû être déterminée en tant que valeur à virgule flottante avec 15 unités de précision, les données peuvent être perdues pendant la conversion.
SAM_FLOAT | Une valeur courte, à virgule flottante. SAM tentera de convertir la valeur spécifiée en une valeur à virgule flottante avec 7 unités de précision à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pû être déterminée en tant que valeur à virgule flottante avec 7 unités de précision, les données peuvent être perdues pendant la conversion.
SAM_INT | Une valeur entière signée 32-bit. SAM tentera de convertir la valeur spécifiée en une valeur entière, signée 32-bit à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pu être déterminée en tant que valeur entière signée 32-bit, les données peuvent être perdues pendant la conversion.
SAM_LONG | Une valeur entière signée 64-bit. SAM tentera de convertir la valeur spécifiée en une valeur entière, signée 64-bit à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pû être déterminée en tant que valeur entière signée 64-bit, les données peuvent être perdues pendant la conversion.
SAM_STRING | SAM interprétera la valeur spécifiée en tant que chaîne de caractères et la passera au système de messagerie.

Exemples

Exemple #3 Définition des propriétés en tant d'expéditeur d'un message

<?php
$msg = new SAMMessage('Ceci est un message test');

// définisstion des propriétés spécifiques à SAM...
$msg->header->SAM_REPLY_TO = 'queue://test/replyQueue';

// définition des propriétés arbitraires...
//
// une chaîne par défaut
$msg->header->myStringProp1 = 'une chaîne';
// une chaîne avec un type
$msg->header->myStringProp2 = array('une autre chaîne', SAM_STRING);

// un booléen
$msg->header->myBoolProp = array(FALSE, SAM_BOOL);

// format numérique
$msg->header->myIntProp = array(32768, SAM_INT);
$msg->header->myLongProp = array(9876543, SAM_LONG);
$msg->header->myByteProp1 = array(123, SAM_BYTE);
$msg->header->myByteProp2 = array('12', SAM_BYTE);
$msg->header->myFloatProp = array(3.141592, SAM_FLOAT);
$msg->header->myDoubleProp = array(3.14159265358979, SAM_DOUBLE);
?>

Exemple #4 Récupération d'une valeurs depuis un message

<?php

// accès à une propriété spécifique
$intProp = $msg->header->MyIntProp;

// accès à une propriété spécifique
$encoding = $msg->header->JMS_IBM_Msgtype;

?>

Voir aussi

  • SAMMessage::body


SNMP

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions SNMP
    • snmp_get_quick_print — Lit la valeur courante de l'option quick_print de la bibliothèque UCD
    • snmp_get_valueretrieval — Retourne la méthode avec laquelle les valeurs SNMP seront retournées
    • snmp_read_mib — Lit et analyse un fichier MIB dans l'arbre actif MIB
    • snmp_set_enum_print — Retourne toutes les valeurs qui sont des énumérations avec leur valeur d'énumération au lieu de l'entier
    • snmp_set_oid_numeric_print — Définit le format de sortie de l'OID
    • snmp_set_oid_output_format — Définit le format de sortie OID
    • snmp_set_quick_print — Écrit la valeur courante de l'option quick_print de la bibliothèque UCD SNMP
    • snmp_set_valueretrieval — Spécifie la méthode avec laquelle les valeurs SNMP seront retournées
    • snmp2_get — Récupère un objet SNMP
    • snmp2_getnext — Récupère l'objet SNMP qui suit immédiatement l'identifiant de l'objet fourni
    • snmp2_real_walk — Retourne tous les objets incluant les identifiants de leurs objets respectifs
    • snmp2_set — Définit la valeur d'un objet SNMP
    • snmp2_walk — Récupère tous les objets SNMP depuis un agent
    • snmp3_get — Récupère un objet SNMP
    • snmp3_getnext — Récupère l'objet SNMP qui suit immédiatement l'objet fourni
    • snmp3_real_walk — Retourne tous les objets incluant les identifiants de leurs objets respectifs
    • snmp3_set — Définit la valeur d'un objet SNMP
    • snmp3_walk — Récupère tous les objets SNMP depuis un agent
    • snmpget — Reçoit un objet SNMP
    • snmpgetnext — Récupère un objet SNMP qui suit immédiatement l'objet fourni
    • snmprealwalk — Retourne tous les objets, y compris les identifiants respectifs inclus dans l'objet
    • snmpset — Définit la valeur d'un objet SNMP
    • snmpwalk — Reçoit tous les objets SNMP d'un agent
    • snmpwalkoid — Demande d'informations d'arbre sur une entité du réseau
  • SNMP — La classe SNMP
    • SNMP::close — Ferme une session SNMP
    • SNMP::__construct — Crée une instance SNMP représentant la session vers l'agent distant SNMP
    • SNMP::get — Récupère un objet SNMP
    • SNMP::getErrno — Récupère le dernier code erreur
    • SNMP::getError — Récupère le dernier message d'erreur
    • SNMP::getnext — Récupère un objet SNMP qui suit l'identifiant d'objet fourni
    • SNMP::set — Définitl a valeur d'un objet SNMP
    • SNMP::setSecurity — Configure les paramètres de sécurité des sessions SNMPv3
    • SNMP::walk — Récupère le sous-objet d'un objet SNMP
  • SNMPException — La classe SNMPException


Introduction

L'extension SNMP fournit un jeu de fonctionnalités simple et fonctionnel pour gérer les périphériques distantes via le protocole Simple Network Management.

Vu qu'il agit comme un wrapper de la bibliothèque Net-SNMP (ou UCD-SNMP sur les vieux systèmes), tous les concepts sont identiques et les fonctions PHP modifient leurs comportements suivant les fichiers de configuration Net-SNMP et les variables d'environnement.

Depuis PHP 5.4.0, une API orientée objet est introduite.

Plus d'informations sur Net-SNMP peuvent être trouvées sur » http://www.net-snmp.org/.


Pré-requis

Afin d'utiliser les fonctions SNMP, vous devez installer le paquet » NET-SNMP. Les fonctions SNMPv3 ne sont disponibles que lorsque le paquet » OpenSSL est installé.

Sous Windows, les fonctions SNMP ne sont disponibles que sous NT. Aucun support pour Win95/98.

Depuis PHP 5.4.0, Net-SNMP version 5.3+ est nécessaire pour les installations sous Unix, et Net-SNMP version 5.4+ sous Windows.


Installation

PHP 5.3.0, 5.3.1 et 5.3.2 n'ont pas de support SNMP. Le support SNMP a été restauré en PHP 5.3.3.

La distribution Windows de Net-SNMP contient les fichiers SNMP dans le dossier mibs. Ce dossier doit être inclus dans les variables d'environnement de Windows, comme MIBDIRS, avec comme valeur le chemin complet vers le dossier mibs : i.e. c:\usr\mibs.

Note importante pour les versions de PHP antérieures à 5.4.0 : afin d'utiliser le paquet UCD SNMP, vous devez mettre la variable NO_ZEROLENGTH_COMMUNITY à 1 avant de compiler. Après avoir configuré UCD SNMP, éditez le fichier config.h ou le fichier acconfig.h et recherchez la valeur NO_ZEROLENGTH_COMMUNITY. Décommentez la ligne contenant le #define. Cela doit ressembler à ceci :

#define NO_ZEROLENGTH_COMMUNITY 1
Ensuite, compilez PHP avec l'option --with-snmp[=DIR] .

Si vous rencontrez des erreurs étranges de "segmentation fault", lors de l'utilisation des commandes SNMP, c'est que vous n'avez pas suivi les recommandations précédentes. Si vous ne voulez pas recompiler UCD SNMP, vous pouvez aussi recompiler PHP avec l'option --enable-ucd-snmp-hack qui évitera cette erreur.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Pour snmp_set_oid_output_format()
SNMP_OID_OUTPUT_SUFFIX (entier)
Depuis 5.4.0
SNMP_OID_OUTPUT_MODULE (entier)
Depuis 5.4.0
SNMP_OID_OUTPUT_FULL (entier)
Depuis 5.2.0
SNMP_OID_OUTPUT_NUMERIC (entier)
Depuis 5.2.0
SNMP_OID_OUTPUT_UCD (entier)
Depuis 5.4.0
SNMP_OID_OUTPUT_NONE (entier)
Depuis 5.4.0
Pour snmp_set_valueretrieval()
SNMP_VALUE_LIBRARY (entier)
SNMP_VALUE_PLAIN (entier)
SNMP_VALUE_OBJECT (entier)
Types SNMP tels que retournés si SNMP_VALUE_OBJECT a été utilisé avec snmp_set_valueretrieval()
SNMP_BIT_STR (entier)
SNMP_OCTET_STR (entier)
SNMP_OPAQUE (entier)
SNMP_NULL (entier)
SNMP_OBJECT_ID (entier)
SNMP_IPADDRESS (entier)
SNMP_COUNTER (entier)
SNMP_UNSIGNED (entier)
SNMP_TIMETICKS (entier)
SNMP_UINTEGER (entier)
SNMP_INTEGER (entier)
SNMP_COUNTER64 (entier)


Fonctions SNMP

Sommaire

  • snmp_get_quick_print — Lit la valeur courante de l'option quick_print de la bibliothèque UCD
  • snmp_get_valueretrieval — Retourne la méthode avec laquelle les valeurs SNMP seront retournées
  • snmp_read_mib — Lit et analyse un fichier MIB dans l'arbre actif MIB
  • snmp_set_enum_print — Retourne toutes les valeurs qui sont des énumérations avec leur valeur d'énumération au lieu de l'entier
  • snmp_set_oid_numeric_print — Définit le format de sortie de l'OID
  • snmp_set_oid_output_format — Définit le format de sortie OID
  • snmp_set_quick_print — Écrit la valeur courante de l'option quick_print de la bibliothèque UCD SNMP
  • snmp_set_valueretrieval — Spécifie la méthode avec laquelle les valeurs SNMP seront retournées
  • snmp2_get — Récupère un objet SNMP
  • snmp2_getnext — Récupère l'objet SNMP qui suit immédiatement l'identifiant de l'objet fourni
  • snmp2_real_walk — Retourne tous les objets incluant les identifiants de leurs objets respectifs
  • snmp2_set — Définit la valeur d'un objet SNMP
  • snmp2_walk — Récupère tous les objets SNMP depuis un agent
  • snmp3_get — Récupère un objet SNMP
  • snmp3_getnext — Récupère l'objet SNMP qui suit immédiatement l'objet fourni
  • snmp3_real_walk — Retourne tous les objets incluant les identifiants de leurs objets respectifs
  • snmp3_set — Définit la valeur d'un objet SNMP
  • snmp3_walk — Récupère tous les objets SNMP depuis un agent
  • snmpget — Reçoit un objet SNMP
  • snmpgetnext — Récupère un objet SNMP qui suit immédiatement l'objet fourni
  • snmprealwalk — Retourne tous les objets, y compris les identifiants respectifs inclus dans l'objet
  • snmpset — Définit la valeur d'un objet SNMP
  • snmpwalk — Reçoit tous les objets SNMP d'un agent
  • snmpwalkoid — Demande d'informations d'arbre sur une entité du réseau


Lit la valeur courante de l'option quick_print de la bibliothèque UCD

  • « Fonctions SNMP
  • snmp_get_valueretrieval »
  • PHP Manual
  • Fonctions SNMP
  • Lit la valeur courante de l'option quick_print de la bibliothèque UCD

snmp_get_quick_print

(PHP 4, PHP 5, PHP 7)

snmp_get_quick_print — Lit la valeur courante de l'option quick_print de la bibliothèque UCD

Description

bool snmp_get_quick_print ( void )

snmp_get_quick_print() retourne la valeur courante, stockée dans la bibliothèque UCD, de l'option quick_print. Par défaut, quick_print est désactivée.

Valeurs de retour

Retourne TRUE si quick_print est actif, FALSE sinon.

Exemples

Exemple #1 Exemple avec snmp_get_quick_print()

<?php
$quickprint = snmp_get_quick_print();
?>

Voir aussi

  • snmp_set_quick_print() - Écrit la valeur courante de l'option quick_print de la bibliothèque UCD SNMP pour une description complète sur ce que fait quick_print.


Retourne la méthode avec laquelle les valeurs SNMP seront retournées

  • « snmp_get_quick_print
  • snmp_read_mib »
  • PHP Manual
  • Fonctions SNMP
  • Retourne la méthode avec laquelle les valeurs SNMP seront retournées

snmp_get_valueretrieval

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

snmp_get_valueretrieval — Retourne la méthode avec laquelle les valeurs SNMP seront retournées

Description

int snmp_get_valueretrieval ( void )

Valeurs de retour

Une combinaison de constantes ( SNMP_VALUE_LIBRARY ou SNMP_VALUE_PLAIN ) avec éventuellement une définition de SNMP_VALUE_OBJECT.

Exemples

Exemple #1 Exemple avec snmp_get_valueretrieval

<?php
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 if (snmp_get_valueretrieval() & SNMP_VALUE_OBJECT) {
   echo $ret->value;
 } else {
   echo $ret;
 }
?>

Voir aussi

  • snmp_set_valueretrieval() - Spécifie la méthode avec laquelle les valeurs SNMP seront retournées
  • Constantes pré-définies


Lit et analyse un fichier MIB dans l'arbre actif MIB

  • « snmp_get_valueretrieval
  • snmp_set_enum_print »
  • PHP Manual
  • Fonctions SNMP
  • Lit et analyse un fichier MIB dans l'arbre actif MIB

snmp_read_mib

(PHP 5, PHP 7)

snmp_read_mib — Lit et analyse un fichier MIB dans l'arbre actif MIB

Description

bool snmp_read_mib ( string $filename )

Cette fonction est utilisée pour charger des MIBs additionnelles, i.e. spécifiques aux fabricants, ainsi, les OIDs humainement lisibles comme VENDOR-MIB::foo.1 au lieu des OIDs numériques peuvent être utilisés.

L'ordre de chargement des MIBs est important ; la bibliothèque Net-SNMP affichera des alertes si les objets référencés ne peuvent pas être résolus.

Liste de paramètres

filename

Le nom de fichier du MIB.

Exemples

Exemple #1 Exemple avec snmp_read_mib()

<?php
 print_r( snmprealwalk('localhost', 'public', '.1.3.6.1.2.1.2.3.4.5') );

 snmp_read_mib('./FOO-BAR-MIB.txt');
 print_r( snmprealwalk('localhost', 'public', 'FOO-BAR-MIB::someTable' );
?>

L'exemple ci-dessous affichera quelque chose comme :

Array
(
    [iso.3.6.1.2.1.2.3.4.5.0] => Gauge32: 6
)
Array
(
    [FOO-BAR-MIB::someTable.0] => Gauge32: 6
)


Retourne toutes les valeurs qui sont des énumérations avec leur valeur d'énumération au lieu de l'entier

  • « snmp_read_mib
  • snmp_set_oid_numeric_print »
  • PHP Manual
  • Fonctions SNMP
  • Retourne toutes les valeurs qui sont des énumérations avec leur valeur d'énumération au lieu de l'entier

snmp_set_enum_print

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

snmp_set_enum_print — Retourne toutes les valeurs qui sont des énumérations avec leur valeur d'énumération au lieu de l'entier

Description

bool snmp_set_enum_print ( int $enum_print )

Cette fonction permet de basculer si snmpwalk/snmpget etc. doit automatiquement chercher les valeurs énumérées dans le MIB et les retourne avec leur chaîne humainement lisible.

Liste de paramètres

enum_print

Vu que la valeur est interprétée comme un booléen par la bibliothèque Net-SNMP library, il peut valoir "0" ou "1".

Exemples

Exemple #1 Exemple avec snmp_set_enum_print()

<?php
 snmp_set_enum_print(0);
 echo snmpget('localhost', 'public', 'IF-MIB::ifOperStatus.3') . "\n";
 snmp_set_enum_print(1);
 echo snmpget('localhost', 'public', 'IF-MIB::ifOperStatus.3') . "\n";
?>

L'exemple ci-dessus affichera :

 INTEGER: up(1)
 INTEGER: 1

Notes

Note:

snmp_set_enum_print() est uniquement disponible lors de l'utilisation de la bibliothèque UCD SNMP. Cette fonction n'est pas disponible lors de l'utilisation de la bibliothèque SNMP de Windows.


Définit le format de sortie de l'OID

  • « snmp_set_enum_print
  • snmp_set_oid_output_format »
  • PHP Manual
  • Fonctions SNMP
  • Définit le format de sortie de l'OID

snmp_set_oid_numeric_print

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

snmp_set_oid_numeric_print — Définit le format de sortie de l'OID

Description

void snmp_set_oid_numeric_print ( int $oid_format )

Cette fonction est un alias de : snmp_set_oid_output_format().

Historique

Version | Description
5.2.0 | Depuis PHP 5.2.0.

Voir aussi

  • snmp_set_oid_output_format() - Définit le format de sortie OID


Définit le format de sortie OID

  • « snmp_set_oid_numeric_print
  • snmp_set_quick_print »
  • PHP Manual
  • Fonctions SNMP
  • Définit le format de sortie OID

snmp_set_oid_output_format

(PHP 5 >= 5.2.0, PHP 7)

snmp_set_oid_output_format — Définit le format de sortie OID

Description

bool snmp_set_oid_output_format ( int $oid_format = SNMP_OID_OUTPUT_MODULE )

snmp_set_oid_output_format() définit le format de sortie afin qu'il soit complet ou numérique.

Liste de paramètres

oid_format
Représentation OID .1.3.6.1.2.1.1.3.0 pour plusieurs valeurs de oid_format
SNMP_OID_OUTPUT_FULL | .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NUMERIC | .1.3.6.1.2.1.1.3.0

Depuis PHP 5.4.0, 4 constantes de plus sont disponibles :

SNMP_OID_OUTPUT_MODULE | DISMAN-EVENT-MIB::sysUpTimeInstance
SNMP_OID_OUTPUT_SUFFIX | sysUpTimeInstance
SNMP_OID_OUTPUT_UCD | system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NONE | Undefined

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

snmp_set_oid_output_format() n'est disponible que lors de l'utilisation de la bibliothèque UCD SNMP. Cette fonction n'est pas disponible lors de l'utilisation de la bibliothèque SNMP de Windows.

Exemples

Exemple #1 Exemple avec snmprealwalk()

<?php

 snmp_read_mib("/usr/share/mibs/netsnmp/NET-SNMP-TC");

 // défaut ou SNMP_OID_OUTPUT_MODULE en PHP >= 5.3.6
 print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );

 snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC);
 print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );

 snmp_set_oid_output_format(SNMP_OID_OUTPUT_FULL);
 print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );
?>

L'exemple ci-dessus affichera :

 Array
 (
    [RFC1213-MIB::sysObjectID.0] => OID: NET-SNMP-TC::linux
 )
 Array
 (
    [.1.3.6.1.2.1.1.2.0] => OID: .1.3.6.1.4.1.8072.3.2.10
 )
 Array
 (
    [.iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0] => OID: .iso.org.dod.internet.private.enterprises.netSnmp.netSnmpEnumerations.netSnmpAgentOIDs.linux
 )


Écrit la valeur courante de l'option quick_print de la bibliothèque UCD SNMP

  • « snmp_set_oid_output_format
  • snmp_set_valueretrieval »
  • PHP Manual
  • Fonctions SNMP
  • Écrit la valeur courante de l'option quick_print de la bibliothèque UCD SNMP

snmp_set_quick_print

(PHP 4, PHP 5, PHP 7)

snmp_set_quick_print — Écrit la valeur courante de l'option quick_print de la bibliothèque UCD SNMP

Description

bool snmp_set_quick_print ( bool $quick_print )

Fixe la valeur de l'option quick_print de la bibliothèque UCD SNMP. Lorsqu'elle a la valeur de (1), la bibliothèque SNMP retournera des valeurs 'rapides'. Cela signifie que seule, la valeur sera retournée. Lorsque l'option quick_print n'est pas activée (par défaut), la bibliothèque UCD SNMP va afficher d'autres informations (telles que l'adresse IP (IpAddress) ou OID). De plus, si quick_print n'est pas activée, la bibliothèque affichera aussi des valeurs hexadécimales supplémentaires pour toutes les chaînes de trois caractères ou moins.

Par défaut, UCD SNMP retourne des valeurs détaillées, et quick_print sert à ne retourner que la valeur.

Actuellement, les chaînes sont toujours retournées avec des guillemets supplémentaires. Ceci sera corrigé ultérieurement.

Liste de paramètres

quick_print

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Modifier quick_print est plus fréquent lorsqu'on utilise les valeurs retournées que lorsqu'on les affiche.

Exemple #1 Exemple avec snmp_set_quick_print()

<?php
snmp_set_quick_print(0);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a\n";
snmp_set_quick_print(1);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

'Timeticks: (0) 0:00:00.00'
'0:00:00.00'

Voir aussi

  • snmp_get_quick_print() - Lit la valeur courante de l'option quick_print de la bibliothèque UCD


Spécifie la méthode avec laquelle les valeurs SNMP seront retournées

  • « snmp_set_quick_print
  • snmp2_get »
  • PHP Manual
  • Fonctions SNMP
  • Spécifie la méthode avec laquelle les valeurs SNMP seront retournées

snmp_set_valueretrieval

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

snmp_set_valueretrieval — Spécifie la méthode avec laquelle les valeurs SNMP seront retournées

Description

bool snmp_set_valueretrieval ( int $method = SNMP_VALUE_LIBRARY )

Liste de paramètres

mehod
types
SNMP_VALUE_LIBRARY | Les valeurs retournées seront celles retournées par la bibliothèque Net-SNMP.
SNMP_VALUE_PLAIN | Les valeurs retournées seront brutes, sans l'ajout du type SNMP.
SNMP_VALUE_OBJECT | Les valeurs retournées seront des objets avec les propriétés "value" et "type", où la seconde est une des constantes SNMP_OCTET_STR, SNMP_COUNTER etc.. La façon dont la "value" est retournée est basée suivant l'utilisation de la constante SNMP_VALUE_LIBRARY ou de la constante SNMP_VALUE_PLAIN.

Exemples

Exemple #1 Exemple avec snmp_set_valueretrieval()

<?php
 snmp_set_valueretrieval(SNMP_VALUE_LIBRARY);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // $ret = "STRING: lo"

 snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // $ret = "lo";

 snmp_set_valueretrieval(SNMP_VALUE_OBJECT);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // stdClass Object
 // (
 //   [type] => 4        <-- SNMP_OCTET_STR, voir les constantes
 //   [value] => lo
 // )

 // Exemples avec PHP 5.4+
 snmp_set_valueretrieval(SNMP_VALUE_OBJECT | SNMP_VALUE_PLAIN);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // stdClass Object
 // (
 //   [type] => 4        <-- SNMP_OCTET_STR, voir les constantes
 //   [value] => lo
 // )

 snmp_set_valueretrieval(SNMP_VALUE_OBJECT | SNMP_VALUE_LIBRARY);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // stdClass Object
 // (
 //   [type] => 4        <-- SNMP_OCTET_STR, voir les constantes
 //   [value] => STRING: lo
 // )

?>

Historique

Version Description
5.4.0

La constante SNMP_VALUE_PLAIN ou la constante SNMP_VALUE_LIBRARY peut être combinée à la constante SNMP_VALUE_OBJECT permettant ainsi une représentation différente du contenu des éléments du tableau value dans la valeur retournée de la fonction. Si aucune des constantes SNMP_VALUE_{PLAIN,LIBRARY} n'accompagne SNMP_VALUE_OBJECT, SNMP_VALUE_LIBRARY sera utilisé.

Avant la version 5.4.0, SNMP_VALUE_OBJECT signifiait effectivement SNMP_VALUE_OBJECT|SNMP_VALUE_PLAIN.

Voir aussi

  • snmp_get_valueretrieval() - Retourne la méthode avec laquelle les valeurs SNMP seront retournées
  • Constantes pré-définies


Récupère un objet SNMP

  • « snmp_set_valueretrieval
  • snmp2_getnext »
  • PHP Manual
  • Fonctions SNMP
  • Récupère un objet SNMP

snmp2_get

(PHP 5 >= 5.2.0, PHP 7)

snmp2_get — Récupère un objet SNMP

Description

string snmp2_get ( string $host , string $community , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp2_get() est utilisée pour lire la valeur d'un objet SNMP spécifié par le paramètre object_id.

Liste de paramètres

host

L'agent SNMP.

community

La communauté de lecture.

object_id

L'identifiant de l'objet SNMP.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentative dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne la valeur de l'objet SNMP en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snmp2_get()

<?php
$syscontact = snmp2_get("127.0.0.1", "public", "system.SysContact.0");
?>

Voir aussi

  • snmp2_set() - Définit la valeur d'un objet SNMP


Récupère l'objet SNMP qui suit immédiatement l'identifiant de l'objet fourni

  • « snmp2_get
  • snmp2_real_walk »
  • PHP Manual
  • Fonctions SNMP
  • Récupère l'objet SNMP qui suit immédiatement l'identifiant de l'objet fourni

snmp2_getnext

(PHP >= 5.2.0)

snmp2_getnext — Récupère l'objet SNMP qui suit immédiatement l'identifiant de l'objet fourni

Description

string snmp2_getnext ( string $host , string $community , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp2_get_next() est utilisée pour lire la valeur de l'objet SNMP qui suit immédiatement l'objet object_id spécifié.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

community

La communauté de lecture.

object_id

L'identifiant de l'objet SNMP qui précède celui voulu.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentative dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne la valeur de l'objet SNMP en cas de succès, ou FALSE si une erreur survient. Dans le cas où une erreur survient, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec snmp2_get_next()

<?php
$nameOfSecondInterface = snmp2_get_next('localhost', 'public', 'IF-MIB::ifName.1';
?>

Voir aussi

  • snmp2_get() - Récupère un objet SNMP
  • snmp2_walk() - Récupère tous les objets SNMP depuis un agent


Retourne tous les objets incluant les identifiants de leurs objets respectifs

  • « snmp2_getnext
  • snmp2_set »
  • PHP Manual
  • Fonctions SNMP
  • Retourne tous les objets incluant les identifiants de leurs objets respectifs

snmp2_real_walk

(PHP >= 5.2.0)

snmp2_real_walk — Retourne tous les objets incluant les identifiants de leurs objets respectifs

Description

array snmp2_real_walk ( string $host , string $community , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp2_real_walk() est utilisée pour parcourir un nombre d'objets SNMP en commençant par l'objet identifié par object_id et retourne non seulement leurs valeurs, mais aussi les identifiants de leurs objets.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

community

La communauté de lecture.

object_id

L'identifiant de l'objet SNMP qui précède celui désiré.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentatives dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne un tableau associatif d'identifiants d'objets SNMP ainsi que leurs valeurs en cas de succès ou FALSE une erreur survient. Dans le cas où une erreur survient, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec snmp2_real_walk()

<?php
 print_r(snmp2_real_walk("localhost", "public", "IF-MIB::ifName"));
?>

L'exemple ci-dessus affichera quelque chose comme :

    Array
      (
      [IF-MIB::ifName.1] => STRING: lo
      [IF-MIB::ifName.2] => STRING: eth0
      [IF-MIB::ifName.3] => STRING: eth2
      [IF-MIB::ifName.4] => STRING: sit0
      [IF-MIB::ifName.5] => STRING: sixxs
    )

Voir aussi

  • snmp2_walk() - Récupère tous les objets SNMP depuis un agent


Définit la valeur d'un objet SNMP

  • « snmp2_real_walk
  • snmp2_walk »
  • PHP Manual
  • Fonctions SNMP
  • Définit la valeur d'un objet SNMP

snmp2_set

(PHP >= 5.2.0)

snmp2_set — Définit la valeur d'un objet SNMP

Description

bool snmp2_set ( string $host , string $community , string $object_id , string $type , string $value [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp2_set() est utilisée pour définir la valeur d'un objet SNMP spécifié par son identifiant object_id.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

community

La communauté d'écriture.

object_id

L'identifiant de l'objet SNMP.

type

Le MIB définit le type de chaque identifiant d'objets. Il doit être spécifié sous la forme d'un simple caractère depuis la liste suivante.

types
= Le type est récupéré depuis le MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Si la constante OPAQUE_SPECIAL_TYPES a été définie lors de la compilation de la bibliothèque SNMP, les caractères suivants seront également disponibles :

types
U | int64 non-signé
I | int64 signé
F | float
D | double

La plupart de ces valeurs utilise le type ASN.1 correspondant. 's', 'x', 'd' et 'b' sont toutes des façons différentes de spécifier la valeur OCTET STRING et le type non-signé 'u' est également utilisé pour gérer les valeurs Gauge32.

Si les fichiers MIB sont chargés dans l'arbre MIB avec "snmp_read_mib" ou en les spécifiant dans la configuration de libsnmp, '=' pourra être utilisé comme paramètre de type pour tous les identifiants d'objets, vu que le type peut automatiquement être lu depuis le MIB.

Notez qu'il y a 2 façons de définir une variable de type BITS like i.e. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • En utilisant le type "b" et une liste d'octets. Cette méthode n'est pas recommandée vu que la requête GET pour un même OID retournera i.e. 0xF8.
  • En utilisant le type "x" et un nombre héxadécimal mais sans(!) le préfixe usuel "0x".

Reportez-vous à la section sur les exemples pour plus de détails.

value

La nouvelle valeur.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentatives dans le cas où le délai d'expiration survient.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si l'hôte SNMP rejète le type de données, une alerte de type E_WARNING sera émis, comme "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length.". Si un OID inconnu ou invalide est spécifié, l'alerte émise contiendra probablement ceci : "Could not add variable".

Exemples

Exemple #1 Exemple avec snmp2_set()

<?php
  snmp2_set("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>

Exemple #2 Exemple avec snmp2_set() pour configurer l'identifiant de l'objet SNMP BITS

<?php
  snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>

Voir aussi

  • snmp2_get() - Récupère un objet SNMP


Récupère tous les objets SNMP depuis un agent

  • « snmp2_set
  • snmp3_get »
  • PHP Manual
  • Fonctions SNMP
  • Récupère tous les objets SNMP depuis un agent

snmp2_walk

(PHP >= 5.2.0)

snmp2_walk — Récupère tous les objets SNMP depuis un agent

Description

array snmp2_walk ( string $host , string $community , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp2_walk() est utilisée pour lire toutes les valeurs depuis un agent SNMP spécifié par le paramètre hostname.

Liste de paramètres

host

L'agent SNMP (serveur).

community

La communauté de lecture.

object_id

Si NULL, object_id sera la racine de l'arbre des objets SNMP et tous les objets de cet arbre seront retournés sous la forme d'un tableau.

Si object_id est spécifié, tous les objets SNMP sous cet object_id seront retournés.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentatives dans le cas où un délai d'expiration survient.

Valeurs de retour

Retourne un tableau de valeurs d'objet SNMP en commençant par l'objet object_id ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snm2_pwalk()

<?php
$a = snmp2_walk("127.0.0.1", "public", "");

foreach ($a as $val) {
    echo "$val\n";
}

?>

La fonction ci-dessus devrait retourner tous les objets SNMP depuis l'agent SNMP fonctionnant en local. Une étape suivante parcourt les valeurs avec une boucle.

Voir aussi

  • snmp2_real_walk() - Retourne tous les objets incluant les identifiants de leurs objets respectifs


Récupère un objet SNMP

  • « snmp2_walk
  • snmp3_getnext »
  • PHP Manual
  • Fonctions SNMP
  • Récupère un objet SNMP

snmp3_get

(PHP 4, PHP 5, PHP 7)

snmp3_get — Récupère un objet SNMP

Description

string snmp3_get ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp3_get() est utilisée pour lire la valeur d'un objet SNMP spécifié par l'identifiant object_id.

Liste de paramètres

host

Le nom de l'hôte de l'agent SNMP (serveur).

sec_name

Le nom de la sécurité, habituellement, le nom d'utilisateur.

sec_level

Le niveau de sécurité (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Le protocole d'authentification (MD5 or SHA)

auth_passphrase

La phrase secrète d'authentification.

priv_protocol

Le protocole privé (DES ou AES).

priv_passphrase

La phrase secrète privée.

object_id

L'identifiant de l'objet SNMP.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentative dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne la valeur de l'objet SNMP en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snmp3_get()

<?php
$nameOfSecondInterface = snmp3_get('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName.2');
?>

Voir aussi

  • snmp3_set() - Définit la valeur d'un objet SNMP


Récupère l'objet SNMP qui suit immédiatement l'objet fourni

  • « snmp3_get
  • snmp3_real_walk »
  • PHP Manual
  • Fonctions SNMP
  • Récupère l'objet SNMP qui suit immédiatement l'objet fourni

snmp3_getnext

(PHP 5, PHP 7)

snmp3_getnext — Récupère l'objet SNMP qui suit immédiatement l'objet fourni

Description

string snmp3_getnext ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp3_getnext() est utilisée pour lire la valeur d'un objet SNMP qui suit immédiatement celui spécifié par l'identifiant object_id.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

sec_name

Le nom de la sécurité, habituellement, le nom d'utilisateur.

sec_level

Le degré de sécurité (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Le protocole d'authentification (MD5 ou SHA).

auth_passphrase

La phrase secrète d'authentification.

priv_protocol

Le protocoloe privé (DES ou AES).

priv_passphrase

La phrase secrète privée.

object_id

L'identifiant de l'objet SNMP.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentatives dans le cas où un délai d'expiration survient.

Valeurs de retour

Retourne la valeur de l'objet SNMP en cas de succès ou FALSE si une erreur survient. Dans le cas d'une erreur, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec snmp3_getnext()

<?php
$nameOfSecondInterface  = snmp3_getnext('localhost', 'james', 'authPriv', 'SHA', 'secret007',  'AES', 'secret007', 'IF-MIB::ifName.1');
?>

Voir aussi

  • snmp3_get() - Récupère un objet SNMP
  • snmp3_walk() - Récupère tous les objets SNMP depuis un agent


Retourne tous les objets incluant les identifiants de leurs objets respectifs

  • « snmp3_getnext
  • snmp3_set »
  • PHP Manual
  • Fonctions SNMP
  • Retourne tous les objets incluant les identifiants de leurs objets respectifs

snmp3_real_walk

(PHP 4, PHP 5, PHP 7)

snmp3_real_walk — Retourne tous les objets incluant les identifiants de leurs objets respectifs

Description

array snmp3_real_walk ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp3_real_walk() est utilisée pour parcourir un nombre d'objets SNMP en commençant par l'objet dont l'identifiant est object_id et retourne non seulement leurs valeurs, mais aussi les identifiants des objets associés.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

sec_name

Le nom de la sécurité, habituellement, le nom d'utilisateur.

sec_level

Le niveau de sécurité (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Le protocole d'authentification (MD5 ou SHA).

auth_passphrase

La phrase secrète d'authentification.

priv_protocol

Le protocole privé (DES ou AES).

priv_passphrase

La phrase secrète privée.

object_id

L'identifiant de l'objet SNMP.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentatives dans le cas où un délai d'expiration survient.

Valeurs de retour

Retourne un tableau associatif d'identifiants d'objets SNMP ainsi que leurs valeurs en cas de succès, ou FALSE si une erreur survient. Dans le cas où une erreur survient, une alerte de niveau E_WARNING est émise.

Exemples

Exemple #1 Exemple avec snmp3_real_walk()

<?php
 var_export(snmp3_real_walk('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName'));
?>

L'exemple ci-dessus affichera quelque chose comme :

array (
  'IF-MIB::ifName.1' => 'STRING: lo',
  'IF-MIB::ifName.2' => 'STRING: eth0',
  'IF-MIB::ifName.3' => 'STRING: eth2',
  'IF-MIB::ifName.4' => 'STRING: sit0',
  'IF-MIB::ifName.5' => 'STRING: sixxs',
)

Voir aussi

  • snmpwalk() - Reçoit tous les objets SNMP d'un agent


Définit la valeur d'un objet SNMP

  • « snmp3_real_walk
  • snmp3_walk »
  • PHP Manual
  • Fonctions SNMP
  • Définit la valeur d'un objet SNMP

snmp3_set

(PHP 4, PHP 5, PHP 7)

snmp3_set — Définit la valeur d'un objet SNMP

Description

bool snmp3_set ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id , string $type , string $value [, int $timeout = 1000000 [, int $retries = 5 ]] )

snmp3_set() est utilisé pour définir la valeur d'un objet SNMP spécifié par le paramètre object_id.

Même si le niveau de sécurité n'utilise pas d'authentification ou de protocole privée par mot de passe, des valeurs valides doivent être spécifiées.

Liste de paramètres

host

Le nom de l'hôte de l'agent SNMP (serveur).

sec_name

Le nom de la sécurité, habituellement, le nom d'utilisateur.

sec_level

Le niveau de sécurité (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

La protocole d'authentification (MD5 ou SHA).

auth_passphrase

La phrase secrète pour l'authentification.

priv_protocol

Le protocole privé (DES ou AES)

priv_passphrase

La phrase secrète privée.

object_id

L'identifiant de l'objet SNMP.

type

Le MIB définit le type de chaque identifiant d'objets. Il doit être spécifié sous la forme d'un simple caractère depuis la liste suivante.

types
= Le type est récupéré depuis le MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Si la constante OPAQUE_SPECIAL_TYPES a été définie lors de la compilation de la bibliothèque SNMP, les caractères suivants seront également disponibles :

types
U | int64 non-signé
I | int64 signé
F | float
D | double

La plupart de ces valeurs utilise le type ASN.1 correspondant. 's', 'x', 'd' et 'b' sont toutes des façons différentes de spécifier la valeur OCTET STRING et le type non-signé 'u' est également utilisé pour gérer les valeurs Gauge32.

Si les fichiers MIB sont chargés dans l'arbre MIB avec "snmp_read_mib" ou en les spécifiant dans la configuration de libsnmp, '=' pourra être utilisé comme paramètre de type pour tous les identifiants d'objets, vu que le type peut automatiquement être lu depuis le MIB.

Notez qu'il y a 2 façons de définir une variable de type BITS like i.e. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • En utilisant le type "b" et une liste d'octets. Cette méthode n'est pas recommandée vu que la requête GET pour un même OID retournera i.e. 0xF8.
  • En utilisant le type "x" et un nombre héxadécimal mais sans(!) le préfixe usuel "0x".

Reportez-vous à la section sur les exemples pour plus de détails.

value

La nouvelle valeur.

timeout

Le nombre de millisecondes avant le premier délai d'expiration.

retries

Le nombre de tentative dans le cas où le délai d'expiration est atteint.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si l'hôte SNMP rejète le type de données, une alerte de type E_WARNING comme "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." est affiché. Si un OID inconnu ou invalide est spécifié, l'alerte sera probablement "Could not add variable".

Exemples

Exemple #1 Exemple avec snmp3_set()

<?php
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifAlias.3', 's', "foo");
?>

Exemple #2 Exemple avec snmp3_set() pour configurer l'identifiant de l'objet SNMP BITS

<?php
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'x', 'F0');
?>


Récupère tous les objets SNMP depuis un agent

  • « snmp3_set
  • snmpget »
  • PHP Manual
  • Fonctions SNMP
  • Récupère tous les objets SNMP depuis un agent

snmp3_walk

(PHP 4, PHP 5, PHP 7)

snmp3_walk — Récupère tous les objets SNMP depuis un agent

Description

array snmp3_walk ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

La fonction snmp3_walk() est utilisée pour lire toutes les valeurs depuis un agent SNMP spécifié par le paramètre host.

Même si le niveau de sécurité n'utilise pas de protocole d'authentification, des valeurs valides doivent être spécifiées.

Liste de paramètres

host

Le nom de l'hôte de l'agent SNMP (serveur).

sec_name

Le nom de la sécurité, habituellement, le nom de l'utilisateur.

sec_level

Le niveau de sécurité (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Le protocole d'authentification (MD5 ou SHA).

auth_passphrase

La phrase secrète d'authentification.

priv_protocol

Le protocole privé (DES ou AES).

priv_passphrase

La phrase secrète privée.

object_id

Si vaut NULL, object_id sera la racine de l'arbre des objets SNMP et tous les objets sous-jacents sont retournés sous forme d'un tableau.

Si object_id est spécifié, tous les objets SNMP sous l'objet object_id seront retournés.

timeout

Le nombre de microsecondes avant le premier délai d'expiration

retries

Le nombre de tentatives dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne un tableau de valeurs d'objets SNMP en commençant depuis l'objet object_id comme racine, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snmp3_walk()

<?php
$ret = snmp3_walk('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName');
var_export($ret);
?>

L'appel à la fonction précédente retournera tous les objets SNMP depuis l'agent SNMP s'exécutant sur localhost:

array (
  0 => 'STRING: lo',
  1 => 'STRING: eth0',
  2 => 'STRING: eth2',
  3 => 'STRING: sit0',
  4 => 'STRING: sixxs',
)

Voir aussi

  • snmp3_real_walk() - Retourne tous les objets incluant les identifiants de leurs objets respectifs


Reçoit un objet SNMP

  • « snmp3_walk
  • snmpgetnext »
  • PHP Manual
  • Fonctions SNMP
  • Reçoit un objet SNMP

snmpget

(PHP 4, PHP 5, PHP 7)

snmpget — Reçoit un objet SNMP

Description

string snmpget ( string $hostname , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

snmpget() sert à lire une valeur d'un objet SNMP représenté par object_id.

Liste de paramètres

hostname

L'agent SNMP.

community

La communauté de lecture.

object_id

L'objet SNMP.

timeout

Le nombre de microsecondes depuis le premier timeout.

retries

Le nombre d'essais lorsque le délai maximal d'attente survient.

Valeurs de retour

Retourne la valeur de l'objet SNMP en cas de succès, FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snmpget()

<?php
$syscontact = snmpget("127.0.0.1", "public", "system.SysContact.0");
?>

Voir aussi

  • snmpset() - Définit la valeur d'un objet SNMP


Récupère un objet SNMP qui suit immédiatement l'objet fourni

  • « snmpget
  • snmprealwalk »
  • PHP Manual
  • Fonctions SNMP
  • Récupère un objet SNMP qui suit immédiatement l'objet fourni

snmpgetnext

(PHP 5, PHP 7)

snmpgetnext — Récupère un objet SNMP qui suit immédiatement l'objet fourni

Description

string snmpgetnext ( string $host , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

La fonction snmpgetnext() est utilisée pour lire la valeur d'un objet SNMP qui suit immédiatement l'objet dont l'identifiant est spécifié par le paramètre object_id.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

community

La communauté de lecture.

object_id

The SNMP object id which precedes the wanted one.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentative dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne la valeur de l'objet SNMP en cas de succès ou FALSE si une erreur survient. Dans le cas où une erreur survient, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec snmpgetnext()

<?php
$nameOfSecondInterface = snmpgetnetxt('localhost', 'public', 'IF-MIB::ifName.1';
?>

Voir aussi

  • snmpget() - Reçoit un objet SNMP
  • snmpwalk() - Reçoit tous les objets SNMP d'un agent


Retourne tous les objets, y compris les identifiants respectifs inclus dans l'objet

  • « snmpgetnext
  • snmpset »
  • PHP Manual
  • Fonctions SNMP
  • Retourne tous les objets, y compris les identifiants respectifs inclus dans l'objet

snmprealwalk

(PHP 4, PHP 5, PHP 7)

snmprealwalk — Retourne tous les objets, y compris les identifiants respectifs inclus dans l'objet

Description

array snmprealwalk ( string $host , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

La fonction snmprealwalk() est utilisée pour parcourir des objets SNMP, en commençant à l'objet identifié par object_id et retourne non seulement les valeurs mais aussi les identifiants des objets.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

community

La communauté de lecture.

object_id

L'identifiant de l'objet SNMP qui précède celui désiré.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentatives dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne un tableau associatif d'identifiants d'objets SNMP ainsi que leurs valeurs en cas de succès ou FALSE si une erreur survient. Dans le cas où une erreur survient, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec snmprealwalk()

<?php
 print_r(snmprealwalk("localhost", "public", "IF-MIB::ifName"));
?>

The above will output something like:

    Array
      (
      [IF-MIB::ifName.1] => STRING: lo
      [IF-MIB::ifName.2] => STRING: eth0
      [IF-MIB::ifName.3] => STRING: eth2
      [IF-MIB::ifName.4] => STRING: sit0
      [IF-MIB::ifName.5] => STRING: sixxs
    )

Voir aussi

  • snmpwalk() - Reçoit tous les objets SNMP d'un agent


Définit la valeur d'un objet SNMP

  • « snmprealwalk
  • snmpwalk »
  • PHP Manual
  • Fonctions SNMP
  • Définit la valeur d'un objet SNMP

snmpset

(PHP 4, PHP 5, PHP 7)

snmpset — Définit la valeur d'un objet SNMP

Description

bool snmpset ( string $host , string $community , string $object_id , string $type , mixed $value [, int $timeout = 1000000 [, int $retries = 5 ]] )

snmpset() sert à définir la valeur de l'objet SNMP spécifié par object_id.

Liste de paramètres

host

Le nom d'hôte de l'agent SNMP (serveur).

community

La communauté de lecture.

object_id

L'identifiant de l'objet SNMP.

type

Le MIB définit le type de chaque identifiant d'objets. Il doit être spécifié sous la forme d'un simple caractère depuis la liste suivante.

types
= Le type est récupéré depuis le MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Si la constante OPAQUE_SPECIAL_TYPES a été définie lors de la compilation de la bibliothèque SNMP, les caractères suivants seront également disponibles :

types
U | int64 non-signé
I | int64 signé
F | float
D | double

La plupart de ces valeurs utilise le type ASN.1 correspondant. 's', 'x', 'd' et 'b' sont toutes des façons différentes de spécifier la valeur OCTET STRING et le type non-signé 'u' est également utilisé pour gérer les valeurs Gauge32.

Si les fichiers MIB sont chargés dans l'arbre MIB avec "snmp_read_mib" ou en les spécifiant dans la configuration de libsnmp, '=' pourra être utilisé comme paramètre de type pour tous les identifiants d'objets, vu que le type peut automatiquement être lu depuis le MIB.

Notez qu'il y a 2 façons de définir une variable de type BITS like i.e. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • En utilisant le type "b" et une liste d'octets. Cette méthode n'est pas recommandée vu que la requête GET pour un même OID retournera i.e. 0xF8.
  • En utilisant le type "x" et un nombre héxadécimal mais sans(!) le préfixe usuel "0x".

Reportez-vous à la section sur les exemples pour plus de détails.

value

La nouvelle valeur.

timeout

Le nombre de microsecondes depuis le premier timeout.

retries

Le nombre d'essais avant d'atteindre le délai maximal d'attente.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Si l'hôte SNMP rejète le type de données, une alerte de type E_WARNING comme "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." sera affiché. Si un OID inconnu ou invalide est spécifié, le contenu de l'alerte sera probablement "Could not add variable".

Exemples

Exemple #1 Exemple avec snmpset()

<?php
  snmpset("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>

Exemple #2 Exemple avec snmpset() pour configurer l'identifiant de l'objet SNMP BITS

<?php
  snmpset("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  snmpset("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>

Voir aussi

  • snmpget() - Reçoit un objet SNMP


Reçoit tous les objets SNMP d'un agent

  • « snmpset
  • snmpwalkoid »
  • PHP Manual
  • Fonctions SNMP
  • Reçoit tous les objets SNMP d'un agent

snmpwalk

(PHP 4, PHP 5, PHP 7)

snmpwalk — Reçoit tous les objets SNMP d'un agent

Description

array snmpwalk ( string $hostname , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

snmpwalk() est utilisé pour lire toutes les valeurs d'un agent SNMP spécifié par hostname.

Liste de paramètres

hostname

L'agent SNMP (serveur).

community

La communauté de lecture.

object_id

Si NULL, object_id est pris comme racine des objets SNMP et tous les objets de cet arbre sont retournés sous la forme d'un tableau.

Si object_id est spécifié, tous les objets SNMP suivant cet object_id sont retournés.

timeout

Le nombre de microsecondes depuis le premier timeout.

retries

Le nombre de tentative dans le cas où le délai d'expiration survient.

Valeurs de retour

Retourne un tableau de valeurs de l'objet SNMP, en commençant par object_id ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snmpwalk()

<?php
$a = snmpwalk("127.0.0.1", "public", "");

foreach ($a as $val) {
    echo "$val\n";
}

?>

L'appel à la fonction ci-dessus retournera tous les objets SNMP depuis l'agent SNMP exécuté sur l'hôte local. On parcourt les valeurs via une boucle.

Voir aussi

  • snmprealwalk() - Retourne tous les objets, y compris les identifiants respectifs inclus dans l'objet


Demande d'informations d'arbre sur une entité du réseau

  • « snmpwalk
  • SNMP »
  • PHP Manual
  • Fonctions SNMP
  • Demande d'informations d'arbre sur une entité du réseau

snmpwalkoid

(PHP 4, PHP 5, PHP 7)

snmpwalkoid — Demande d'informations d'arbre sur une entité du réseau

Description

array snmpwalkoid ( string $hostname , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

snmpwalkoid() est utilisé pour lire tous les identifiant d'objets ainsi que leurs valeurs respectives depuis l'agent SNMP spécifié par hostname.

L'existence de snmpwalkoid() et snmpwalk() a des raisons historiques. Les deux fonctions fournissent des compatibilités ascendantes. Utilisez plutôt la fonction snmprealwalk().

Liste de paramètres

hostname

L'agent SNMP.

community

La communauté de lecture.

object_id

Si NULL, object_id est pris comme racine des objets SNMP et tous les objets de cet arbre sont retournés sous la forme d'un tableau.

Si object_id est spécifié, tous les objets SNMP suivant cet object_id sont retournés.

timeout

Le nombre de microsecondes depuis le premier timeout.

retries

Le nombre de tentative dans le cas où le délai d'attente maximal survient.

Valeurs de retour

Retourne un tableau associatif contenant les identifiants des objets ainsi que leurs valeurs respectives, à partir de object_id, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec snmpwalkoid()

<?php
$a = snmpwalkoid("127.0.0.1", "public", "");
for (reset($a); $i = key($a); next($a)) {
    echo "$i: $a[$i]<br />\n";
}
?>

L'appel à la fonction ci-dessus retournera tous les objets SNMP depuis l'agent SNMP exécuté sur l'hôte local. On parcourt les valeurs via une boucle.

Voir aussi

  • snmpwalk() - Reçoit tous les objets SNMP d'un agent


La classe SNMP

(PHP 5 >= 5.4.0, PHP 7)

Introduction

Représente une session SNMP.

Synopsis de la classe

SNMP {
/* Propriétés */
public int $max_oids ;
public int $valueretrieval ;
public bool $quick_print ;
public bool $enum_print ;
public int $oid_output_format ;
public bool $oid_increasing_check ;
public int $exceptions_enabled ;
public array $info ;
/* Méthodes */
public __construct ( int $version , string $hostname , string $community [, int $timeout = 1000000 [, int $retries = 5 ]] )
public bool close ( void )
public mixed get ( mixed $object_id [, bool $preserve_keys = false ] )
public int getErrno ( void )
public string getError ( void )
public mixed getnext ( mixed $object_id )
public bool set ( mixed $object_id , mixed $type , mixed $value )
public bool setSecurity ( string $sec_level [, string $auth_protocol = [, string $auth_passphrase = [, string $priv_protocol = [, string $priv_passphrase = [, string $contextName = [, string $contextEngineID = ]]]]]] )
public array walk ( string $object_id [, bool $suffix_as_key = FALSE [, int $max_repetitions [, int $non_repeaters ]]] )
/* Constantes */
const integer ERRNO_NOERROR = 0 ;
const integer ERRNO_GENERIC = 2 ;
const integer ERRNO_TIMEOUT = 4 ;
const integer ERRNO_ERROR_IN_REPLY = 8 ;
const integer ERRNO_OID_NOT_INCREASING = 16 ;
const integer ERRNO_OID_PARSING_ERROR = 32 ;
const integer ERRNO_MULTIPLE_SET_QUERIES = 64 ;
const integer ERRNO_ANY = 126 ;
const integer VERSION_1 = 0 ;
const integer VERSION_2C = 1 ;
const integer VERSION_2c = 1 ;
const integer VERSION_3 = 3 ;
}

Propriétés

max_oids

Nombre maximal de OID par demande GET/SET/GETBULK

valueretrieval

Contrôle la façon dont les valeurs SNMP seront retournées

SNMP_VALUE_LIBRARY | Les valeurs retournées le seront de la même façon que par la bibliothèque Net-SNMP.
SNMP_VALUE_PLAIN | Les valeurs retournées le seront en valeur pleine, sans le type SNMP.
SNMP_VALUE_OBJECT | Les valeurs retournées le seront sous forme d'objets avec les propriétés "value" et "type", où le type pourra être une constante SNMP_OCTET_STR, SNMP_COUNTER etc... La façon dont la "value" est retournée est basée suivant la constante définie : SNMP_VALUE_LIBRARY ou SNMP_VALUE_PLAIN.
quick_print

Valeur du paramètre quick_print dans la bibliothèque NET-SNMP

Définit la valeur du paramètre quick_print dans la bibliothèque NET-SNMP. Lorsqu'il est défini (1), la bibliothèque SNMP retournera des valeurs rapidement imprimables. Cela signifie uniquement que les valeurs seront imprimées. Lorsque le paramètre quick_print n'est pas défini (par défaut), la bibliothèque UCD SNMP imprimera des informations additionnelles incluant le type de la valeur (i.e. IpAddress ou OID). De plus, si quick_print n'est pas activé, la bibliothèque imprimera les valeurs hexadécimales pour toutes les chaînes contenant jusqu'à 3 caractères.

enum_print

Contrôle la façon dont les valeurs enum sont imprimées.

Permet d'indiquer à walk/get etc. s'ils doivent automatiquement chercher les valeurs enum dans le MIIB et les retourner en plus de leurs chaînes humainement lisibles.

oid_output_format

Contrôle le format de sortie OID

Représentation OID .1.3.6.1.2.1.1.3.0 pour diverses valeurs de oid_output_format
SNMP_OID_OUTPUT_FULL | La forme complète, comme "iso.org.dod...."
SNMP_OID_OUTPUT_NUMERIC | La forme numérique, comme ".1.3.6.1.4.1.8072.3.2.10"
SNMP_OID_OUTPUT_MODULE | La forme courte, comme "NET-SNMP-TC::linux"
SNMP_OID_OUTPUT_SUFFIX | TBD
SNMP_OID_OUTPUT_UCD | TBD
SNMP_OID_OUTPUT_NONE | TBD
oid_increasing_check

Contrôle la vérification de la désactivation pour l'augmentation de l'OID lors du parcours de l'arbre OID

Quelques agents SNMP sont connus pour retourner des OIDs dans la mauvais ordre, mais peuvent malgré tout continuer le parcours. D'autres agents retournent des OIDs dans la mauvais ordre et peuvent conduire la méthode SNMP::walk() dans une boucle infinie tant que la limite de mémoire n'est pas atteinte. La bibliothèque PHP SNMP, par défaut, effectue la vérification de l'augmentation de l'OID et stoppe le parcours sur l'arbre OID lorsqu'elle détecte une possible boucle en émettant une alerte. Définissez la variable oid_increasing_check à FALSE pour désactiver cette vérification.

exceptions_enabled

Contrôle quelle exception SNMPException sera émise au lieu des alertes. Utiliser l'opérateur OR des constantes SNMP::ERRNO_*. Par défaut, toutes les exceptions SNMP sont désactivées.

info

Propriété en lecture seul contenant la configuration de l'agent distant : nom d'hôte, port, délai d'expiration par défaut, nombre de récupération par défaut

Constantes pré-définies

Types d'erreurs SNMP

SNMP::ERRNO_NOERROR

Aucune erreur spécifique SNMP n'est survenue.

SNMP::ERRNO_GENERIC

Une erreur SNMP générique est survenue.

SNMP::ERRNO_TIMEOUT

Demande à l'agent SNMP d'atteindre le délai d'expiration.

SNMP::ERRNO_ERROR_IN_REPLY

L'agent SNMP retourne une erreur dans la réponse.

SNMP::ERRNO_OID_NOT_INCREASING

L'agent SNMP n'incrémente plus l'OID lors de l'exécution de la commande WALK (BULK). Ceci indique qu'un problème survient avec l'agent SNMP.

SNMP::ERRNO_OID_PARSING_ERROR

La bibliothèque échoue lors de l'analyse de l'OID (et/ou le type pour la commande SET). Aucune requête n'est effectuée.

SNMP::ERRNO_MULTIPLE_SET_QUERIES

La bibliothèque utilisera plusieurs requêtes pour l'opération SET demandée. Cela signifie que l'opération sera effectuée de façon non transactionnelle et que les morceaux suivants pourront échouer si un mauvais type ou une mauvaise valeur est fourni.

SNMP::ERRNO_ANY

Tous les codes opérateur OR des constantes SNMP::ERRNO_*.

Versions du protocole SNMP

SNMP::VERSION_1

SNMP::VERSION_2C, SNMP::VERSION_2c

SNMP::VERSION_3

Sommaire

  • SNMP::close — Ferme une session SNMP
  • SNMP::__construct — Crée une instance SNMP représentant la session vers l'agent distant SNMP
  • SNMP::get — Récupère un objet SNMP
  • SNMP::getErrno — Récupère le dernier code erreur
  • SNMP::getError — Récupère le dernier message d'erreur
  • SNMP::getnext — Récupère un objet SNMP qui suit l'identifiant d'objet fourni
  • SNMP::set — Définitl a valeur d'un objet SNMP
  • SNMP::setSecurity — Configure les paramètres de sécurité des sessions SNMPv3
  • SNMP::walk — Récupère le sous-objet d'un objet SNMP


Ferme une session SNMP

  • « SNMP
  • SNMP::__construct »
  • PHP Manual
  • SNMP
  • Ferme une session SNMP

SNMP::close

(PHP 5 >= 5.4.0, PHP 7)

SNMP::close — Ferme une session SNMP

Description

public bool SNMP::close ( void )

Libère les objets de la session SNMP précédemment alloués.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SNMP::close()

<?php
  $session = new SNMP(SNMP_VERSION_1, "127.0.0.1", "public");
  # ...
  # get, walk, etc vont ici !
  # ...
  $session->close();
?>

Voir aussi

  • SNMP::__construct() - Crée une instance SNMP représentant la session vers l'agent distant SNMP


Crée une instance SNMP représentant la session vers l'agent distant SNMP

  • « SNMP::close
  • SNMP::get »
  • PHP Manual
  • SNMP
  • Crée une instance SNMP représentant la session vers l'agent distant SNMP

SNMP::__construct

(PHP 5 >= 5.4.0, PHP 7)

SNMP::__construct — Crée une instance SNMP représentant la session vers l'agent distant SNMP

Description

public SNMP::__construct ( int $version , string $hostname , string $community [, int $timeout = 1000000 [, int $retries = 5 ]] )

Liste de paramètres

version

Version du protocole SNMP :
SNMP::VERSION_1,
SNMP::VERSION_2C,
SNMP::VERSION_3.

hostname

L'agent SNMP. Le paramètre hostname peut être préfixé avec le port de l'agent optionnel SNMP après une virgule. Les adresses IPV6 doivent être entourées de crochets ([]) si vous utilisez en plus les ports. Si FQDN est utilisé pour le paramètre hostname, il sera résolu par la bibliothèque php-snmp, et non par le moteur Net-SNMP. L'utilisation des adresses IPV6 lors de l'utilisation de FQDN peut être forcé en entourant FQDN de crochets. Voici quelques exemples :

IPv4 avec un port par défaut | 127.0.0.1
IPv6 avec un port par défaut | ::1 or [::1]
IPv4 avec un port spécifique | 127.0.0.1:1161
IPv6 avec un port spécifique | [::1]:1161
FQDN avec un port par défaut | host.domain
FQDN avec un port spécifique | host.domain:1161
FQDN avec un port par défaut, forçage de l'utilisation d'adresses IPV6 | [host.domain]
FQDN avec un port spécifique, forçage de l'utilisation d'adresses IPV6 | [host.domain]:1161

community

community est spécifique à la version SNMP :

SNMP_VERSION_1 | Communauté SNMP
SNMP_VERSION_2C | Communauté SNMP
SNMP_VERSION_3 | Nom sécurisé SNMPv3
timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentative lorsqu'un délai d'expiration survient.

Valeurs de retour

Retourne un objet SNMP représentant l'agent distant SNMP.

Erreurs / Exceptions

SNMP::__construct() lance une exception lorsque les paramètres sont faux ou que la version du protocole SNMP est inconnue.

Exemples

Exemple #1 Récupération de sysLocation

<?php
  $session = new SNMP(SNMP_VERSION_1, "127.0.0.1", "public");
  $sysdescr = $session->get("sysDescr.0");
  echo "$sysdescr\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

STRING: Test server

Voir aussi

  • SNMP::close() - Ferme une session SNMP


Récupère un objet SNMP

  • « SNMP::__construct
  • SNMP::getErrno »
  • PHP Manual
  • SNMP
  • Récupère un objet SNMP

SNMP::get

(PHP 5 >= 5.4.0, PHP 7)

SNMP::get — Récupère un objet SNMP

Description

public mixed SNMP::get ( mixed $object_id [, bool $preserve_keys = false ] )

Récupère un objet SNMP spécifié par l'identifiant object_id en utilisant une requête GET.

Liste de paramètres

Si object_id est une chaîne de caractères, alors SNMP::get() retournera un objet SNMP sous la forme d'une chaîne de caractères. Si object_id est un tableau, toutes les objets SNMP demandés seront retournés sous la forme d'un tableau associatif d'identifiants d'objets SNMP ainsi que de leurs valeurs.

object_id

Le ou les objets SNMP (OID)

preserve_keys

Lorsque object_id est un tableau, et que la paramètre preserve_keys est défini à TRUE, les clés dans le résultat seront reprises exactement de l'objet object_id, sinon, la propriété SNMP::oid_output_format sera utilisée pour déterminer le format des clés.

Valeurs de retour

Retourne les objets SNMP demandés, sous la forme de chaînes ou de tableaux, suivant le type du paramètre object_id, ou FALSE si une erreur survient.

Erreurs / Exceptions

Cette méthode ne lance aucune exception par défaut. Pour activer l'émission d'exceptions SNMPException lorsque des erreurs de la bibliothèque surviennent, le paramètre de la classe SNMP exceptions_enabled doit être défini à la valeur correspondante. Voir les explications sur SNMP::$exceptions_enabled pour plus de détails.

Exemples

Exemple #1 Un seul objet SNMP

Un seul objet SNMP peut être demandé de 2 façons : sous la forme d'une chaîne de caractères, retournant ainsi une valeur sous forme de chaîne de caractères également, ou un tableau contenant un seul éléments, retournant ainsi un tableau associatif.

<?php
  $session = new SNMP(SNMP_VERSION_1, "127.0.0.1", "public");
  $sysdescr = $session->get("sysDescr.0");
  echo "$sysdescr\n";
  $sysdescr = $session->get(array("sysDescr.0"));
  print_r($sysdescr);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

STRING: Test server
Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
)

Exemple #2 Plusieurs objets SNMP

$session = new SNMP(SNMP_VERSION_1, "127.0.0.1", "public");
  $results = $session->get(array("sysDescr.0", "sysName.0"));
  print_r($results);
  $session->close();

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
    [SNMPv2-MIB::sysName.0] => STRING: myhost.nodomain
)

Voir aussi

  • SNMP::getErrno() - Récupère le dernier code erreur
  • SNMP::getError() - Récupère le dernier message d'erreur


Récupère le dernier code erreur

  • « SNMP::get
  • SNMP::getError »
  • PHP Manual
  • SNMP
  • Récupère le dernier code erreur

SNMP::getErrno

(PHP 5 >= 5.4.0, PHP 7)

SNMP::getErrno — Récupère le dernier code erreur

Description

public int SNMP::getErrno ( void )

Retourne le code erreur de la dernière requête SNMP.

Valeurs de retour

Retourne un des codes erreurs SNMP décrits dans le chapitre sur les constantes.

Exemples

Exemple #1 SNMP::getErrno() example

<?php
$session = new SNMP(SNMP_VERSION_2c, '127.0.0.1', 'boguscommunity');
var_dump(@$session->get('.1.3.6.1.2.1.1.1.0'));
var_dump($session->getErrno() == SNMP::ERRNO_TIMEOUT);
//var_dump($session->getError());
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
string(26) "No response from 127.0.0.1"

Voir aussi

  • SNMP::getError() - Récupère le dernier message d'erreur


Récupère le dernier message d'erreur

  • « SNMP::getErrno
  • SNMP::getnext »
  • PHP Manual
  • SNMP
  • Récupère le dernier message d'erreur

SNMP::getError

(PHP 5 >= 5.4.0, PHP 7)

SNMP::getError — Récupère le dernier message d'erreur

Description

public string SNMP::getError ( void )

Récupère le dernier message d'erreur de la dernière requête SNMP.

Valeurs de retour

Une chaîne de caractères décrivant l'erreur depuis la dernière requête SNMP.

Exemples

Exemple #1 Exemple avec SNMP::getError()

<?php
$session = new SNMP(SNMP_VERSION_2c, '127.0.0.1', 'boguscommunity');
var_dump(@$session->get('.1.3.6.1.2.1.1.1.0'));
//var_dump($session->getError());
?>

L'exemple ci-dessus va afficher :

bool(false)
string(26) "No response from 127.0.0.1"

Voir aussi

  • SNMP::getErrno() - Récupère le dernier code erreur


Récupère un objet SNMP qui suit l'identifiant d'objet fourni

  • « SNMP::getError
  • SNMP::set »
  • PHP Manual
  • SNMP
  • Récupère un objet SNMP qui suit l'identifiant d'objet fourni

SNMP::getnext

(PHP 5 >= 5.4.0, PHP 7)

SNMP::getnext — Récupère un objet SNMP qui suit l'identifiant d'objet fourni

Description

public mixed SNMP::getnext ( mixed $object_id )

Récupère un objet SNMP qui suit l'objet spécifié par le paramètre object_id.

Liste de paramètres

Si object_id est une chaîne de caractères, alors SNMP::get() retournera un objet SNMP sous la forme d'une chaîne de caractères. Si object_id est un tableau, tous les objets SNMP demandés seront retournés sous la forme d'un tableau associatif d'identifiants d'objets SNMP ainsi que leurs valeurs.

object_id

Le ou les objets SNMP (OID).

Valeurs de retour

Retourne les objets SNMP demandés sous la forme d'une chaîne de caractères ou d'un tableau, suivant le type du paramètre object_id ou FALSE si une erreur survient.

Erreurs / Exceptions

Cette méthode ne lance aucune exception par défaut. Pour activer l'émission d'exceptions SNMPException lorsque des erreurs de la bibliothèque surviennent, le paramètre de la classe SNMP exceptions_enabled doit être défini à la valeur correspondante. Voir les explications sur SNMP::$exceptions_enabled pour plus de détails.

Exemples

Exemple #1 Un seul objet SNMP

Un seul objet SNMP peut être demandé de 2 façons : comme une chaîne, retournant ainsi une valeur sous forme de chaîne, ou comme un tableau contenant qu'un seul élément, retournant ainsi un tableau associatif.

<?php
  $session = new SNMP(SNMP_VERSION_1, "127.0.0.1", "public");
  $nsysdescr = $session->getnext("sysDescr.0");
  echo "$nsysdescr\n";
  $nsysdescr = $session->getnext(array("sysDescr.0"));
  print_r($nsysdescr);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
Array
(
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
)

Exemple #2 Plusieurs objets SNMP

<?php
  $session = new SNMP(SNMP_VERSION_1, "127.0.0.1", "public");
  $results = $session->getnext(array("sysDescr.0", "sysName.0"));
  print_r($results);
  $session->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
    [SNMPv2-MIB::sysLocation.0] => STRING: Nowhere
)

Voir aussi

  • SNMP::getErrno() - Récupère le dernier code erreur
  • SNMP::getError() - Récupère le dernier message d'erreur


Définitl a valeur d'un objet SNMP

  • « SNMP::getnext
  • SNMP::setSecurity »
  • PHP Manual
  • SNMP
  • Définitl a valeur d'un objet SNMP

SNMP::set

(PHP 5 >= 5.4.0, PHP 7)

SNMP::set — Définitl a valeur d'un objet SNMP

Description

public bool SNMP::set ( mixed $object_id , mixed $type , mixed $value )

Demande à l'agent distant SNMP de définir la valeur d'un ou plusieurs objets SNMP spécifiés par son identifiant object_id.

Liste de paramètres

Si object_id est une chaîne de caractères, alors les paramètres type et value doivent aussi être une chaîne de caractères. Si object_id est un tableau, le paramètre value doit être un tableau de même taille contenant les valeurs correspondantes, et le paramètre type pourra être soit une chaîne de caractères (sa valeur sera utilisée pour toutes les paires object_id-value) ou bien un tableau de même taille avec des paires OID-valeur. Lorsqu'une autre combinaison de paramètres est fournie, des alertes de niveau E_WARNING peuvent être émises avec une description détaillée.

object_id

L'identifiant de l'objet SNMP.

Lorsque le nombre d'OIDs dans le tableau object_id est supérieur à la propriété max_oids de l'objet, la méthode devra utiliser plusieurs requêtes pour effectuer les mises à jour demandées. Dans ce cas, la vérification du type et de la valeur est effectuée par morceau, aussi, la seconde requête (et les autres sous-requêtes) échouera en raison d'un mauvais type ou d'une mauvaise valeur pour l'OID demandé. Afin de repérer ce comportement, une alerte est émise lorsque le nombre d'OIDs dans le tableau object_id est supérieur à la propriété max_oids.

type

Le MIB définit le type de chaque identifiant d'objets. Il doit être spécifié sous la forme d'un simple caractère depuis la liste suivante.

types
= Le type est récupéré depuis le MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Si la constante OPAQUE_SPECIAL_TYPES a été définie lors de la compilation de la bibliothèque SNMP, les caractères suivants seront également disponibles :

types
U | int64 non-signé
I | int64 signé
F | float
D | double

La plupart de ces valeurs utilise le type ASN.1 correspondant. 's', 'x', 'd' et 'b' sont toutes des façons différentes de spécifier la valeur OCTET STRING et le type non-signé 'u' est également utilisé pour gérer les valeurs Gauge32.

Si les fichiers MIB sont chargés dans l'arbre MIB avec "snmp_read_mib" ou en les spécifiant dans la configuration de libsnmp, '=' pourra être utilisé comme paramètre de type pour tous les identifiants d'objets, vu que le type peut automatiquement être lu depuis le MIB.

Notez qu'il y a 2 façons de définir une variable de type BITS like i.e. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • En utilisant le type "b" et une liste d'octets. Cette méthode n'est pas recommandée vu que la requête GET pour un même OID retournera i.e. 0xF8.
  • En utilisant le type "x" et un nombre héxadécimal mais sans(!) le préfixe usuel "0x".

Reportez-vous à la section sur les exemples pour plus de détails.

value

La nouvelle valeur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Cette méthode ne lance aucune exception par défaut. Pour activer l'émission d'exceptions SNMPException lorsque des erreurs de la bibliothèque surviennent, le paramètre de la classe SNMP exceptions_enabled doit être défini à la valeur correspondante. Voir les explications sur SNMP::$exceptions_enabled pour plus de détails.

Exemples

Exemple #1 Définit un seul identifiant d'objet SNMP

<?php
  $session = new SNMP(SNMP_VERSION_2C, "127.0.0.1", "private");
  $session->set('SNMPv2-MIB::sysContact.0', 's', "Nobody");
?>

Exemple #2 Définit plusieurs valeurs en utilisant un seul appel à la méthode SNMP::set() call

<?php
  $session = new SNMP(SNMP_VERSION_2C, "127.0.0.1", "private");
  $session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), array('s', 's'), array("Nobody", "Nowhere"));
// ou
  $session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), 's', array("Nobody", "Nowhere"));
?>

Exemple #3 Exemple avec SNMP::set() pour configurer l'identifiant d'objet SNMP BITS

<?php
  $session = new SNMP(SNMP_VERSION_2C, "127.0.0.1", "private");
  $session->set('FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// ou
  $session->set('FOO-MIB::bar.42', 'x', 'F0');
?>

Voir aussi

  • SNMP::get() - Récupère un objet SNMP


Configure les paramètres de sécurité des sessions SNMPv3

  • « SNMP::set
  • SNMP::walk »
  • PHP Manual
  • SNMP
  • Configure les paramètres de sécurité des sessions SNMPv3

SNMP::setSecurity

(PHP 5 >= 5.4.0, PHP 7)

SNMP::setSecurity — Configure les paramètres de sécurité des sessions SNMPv3

Description

public bool SNMP::setSecurity ( string $sec_level [, string $auth_protocol = [, string $auth_passphrase = [, string $priv_protocol = [, string $priv_passphrase = [, string $contextName = [, string $contextEngineID = ]]]]]] )

Configure les paramètres de sécurité des sessions du protocole SNMPv3.

Liste de paramètres

sec_level

le niveau de sécurité (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

le protocole d'authentification (MD5 ou SHA)

auth_passphrase

le passphrase pour l'authentification

priv_protocol

le protocole privé (DES ou AES)

priv_passphrase

la passphrase pour le protocole privé

contextName

le nom du contexte

contextEngineID

le contexte EngineID

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SNMP::setSecurity()

<?php
  $session = new SNMP(SNMP_VERSION_3, $hostname, $rwuser, $timeout, $retries);
  $session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '', 'aeeeff');
?>

Voir aussi

  • SNMP::__construct() - Crée une instance SNMP représentant la session vers l'agent distant SNMP


Récupère le sous-objet d'un objet SNMP

  • « SNMP::setSecurity
  • SNMPException »
  • PHP Manual
  • SNMP
  • Récupère le sous-objet d'un objet SNMP

SNMP::walk

(PHP 5 >= 5.4.0, PHP 7)

SNMP::walk — Récupère le sous-objet d'un objet SNMP

Description

public array SNMP::walk ( string $object_id [, bool $suffix_as_key = FALSE [, int $max_repetitions [, int $non_repeaters ]]] )

SNMP::walk() est utilisé pour lire le sous-objet SNMP dont la profondeur est spécifiée par le paramètre object_id.

Liste de paramètres

object_id

Racine du sous-objet à lire

suffix_as_key

Par défaut, la notation complète de l'OID est utilisée pour les clés dans le tableau résultant. Si définit à TRUE, le préfixe du sous-objet sera supprimé des clés, ne laissant ainsi que le suffixe de object_id.

non_repeaters

Spécifie le nombre de variables fournies qui ne doivent pas être répétées. Par défaut, cette valeur sera utilisée depuis l'objet SNMP.

max_repetitions

Spécifie le nombre maximal d'itérations sur les variables répétées. Par défaut, cette valeur sera utilisée depuis l'objet SNMP .

Valeurs de retour

Retourne un tableau associatif d'identifiants d'objets SNMP ainsi que leurs valeurs en cas de succès ou FALSE si une erreur survient. Lorsqu'une erreur SNMP survient, SNMP::get_errno() et SNMP::get_error() peuvent être utilisées pour récupérer respectivement le numéro de l'erreur (spécifique à l'extension SNMP, voir les constantes de la classe) ainsi que le message d'erreur.

Erreurs / Exceptions

Cette méthode ne lance aucune exception par défaut. Pour activer l'émission d'exceptions SNMPException lorsque des erreurs de la bibliothèque surviennent, le paramètre de la classe SNMP exceptions_enabled doit être défini à la valeur correspondante. Voir les explications sur SNMP::$exceptions_enabled pour plus de détails.

Exemples

Exemple #1 Exemple avec SNMP::walk()

<?php
  $session = new SNMP(SNMP_VERSION_1, "127.0.0.1", "public");
  $fulltree = $session->walk(".");
  print_r($fulltree);
  $session->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
    [DISMAN-EVENT-MIB::sysUpTimeInstance] => Timeticks: (1150681750) 133 days, 4:20:17.50
    [SNMPv2-MIB::sysContact.0] => STRING: Nobody
    [SNMPv2-MIB::sysName.0] => STRING: server.localdomain
    ...
)

Exemple #2 Exemple avec la paramètre suffix_as_key

Le paramètre suffix_as_key peut être utilisé lors de la fusion de plusieurs sous-objets SNMP en un seul. Cet exemple lie les noms d'interfaces et leurs types.

<?php
  $session = new SNMP(SNMP_VERSION_1, "127.0.0.1", "public");
  $session->valueretrieval = SNMP_VALUE_PLAIN;
  $ifDescr = $session->walk(".1.3.6.1.2.1.2.2.1.2", TRUE);
  $session->valueretrieval = SNMP_VALUE_LIBRARY;
  $ifType = $session->walk(".1.3.6.1.2.1.2.2.1.3", TRUE);
  print_r($ifDescr);
  print_r($ifType);
  $result = array();
  foreach($ifDescr as $i => $n) {
    $result[$n] = $ifType[$i];
  }
  print_r($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [1] => igb0
    [2] => igb1
    [3] => ipfw0
    [4] => lo0
    [5] => lagg0
)
Array
(
    [1] => INTEGER: ieee8023adLag(161)
    [2] => INTEGER: ieee8023adLag(161)
    [3] => INTEGER: ethernetCsmacd(6)
    [4] => INTEGER: softwareLoopback(24)
    [5] => INTEGER: ethernetCsmacd(6)
)
Array
(
    [igb0] => INTEGER: ieee8023adLag(161)
    [igb1] => INTEGER: ieee8023adLag(161)
    [ipfw0] => INTEGER: ethernetCsmacd(6)
    [lo0] => INTEGER: softwareLoopback(24)
    [lagg0] => INTEGER: ethernetCsmacd(6)
)

Voir aussi

  • SNMP::getErrno() - Récupère le dernier code erreur
  • SNMP::getError() - Récupère le dernier message d'erreur


La classe SNMPException

(PHP 5 >= 5.4.0, PHP 7)

Introduction

Représente une erreur lancée par SNMP. Vous ne devez pas lancer une exception SNMPException depuis votre code. Voir les exceptions pour plus d'informations sur les exceptions en PHP.

Synopsis de la classe

SNMPException extends RuntimeException {
/* Propriétés */
protected string $code ;
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

code

Code erreur de la bibliothèque SNMP. Utiliser la fonction Exception::getCode() pour y accéder.


Sockets

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Erreurs de socket
  • Fonctions sur les sockets
    • socket_accept — Accepte une connexion sur un socket
    • socket_bind — Lie un nom à un socket
    • socket_clear_error — Efface toutes les erreurs précédemment générées par un socket
    • socket_close — Ferme un socket
    • socket_cmsg_space — Calcule la taille du buffer
    • socket_connect — Crée une connexion sur un socket
    • socket_create_listen — Ouvre un socket sur un port pour accepter les connexions
    • socket_create_pair — Crée une paire de sockets identiques et les stocke dans un tableau
    • socket_create — Crée un socket
    • socket_get_option — Lit les options du socket
    • socket_getopt — Alias de socket_get_option
    • socket_getpeername — Interroge l'autre extrémité de la communication
    • socket_getsockname — Interroge le socket local
    • socket_import_stream — Importe un flux
    • socket_last_error — Lit la dernière erreur générée par un socket
    • socket_listen — Attend une connexion sur un socket
    • socket_read — Lit des données d'un socket
    • socket_recv — Reçoit des données d'un socket connecté
    • socket_recvfrom — Reçoit des données d'un socket, connecté ou pas
    • socket_recvmsg — Lit un message
    • socket_select — Exécute l'appel système select() sur un tableau de sockets avec une durée d'expiration
    • socket_send — Envoie des données à un socket connecté
    • socket_sendmsg — Envoi un message
    • socket_sendto — Envoie un message à un socket, qu'il soit connecté ou pas
    • socket_set_block — Met le socket en mode bloquant
    • socket_set_nonblock — Sélectionne le mode non bloquant d'un pointeur de fichier
    • socket_set_option — Modifie les options de socket
    • socket_setopt — Alias de socket_set_option
    • socket_shutdown — Éteint un socket en lecture et/ou écriture
    • socket_strerror — Retourne une chaîne décrivant un message d'erreur
    • socket_write — Écrit dans un socket


Introduction

L'extension socket implémente une interface bas niveau avec les fonctions de communication par socket, basées sur les sockets BSD si populaires, et fournit la possibilité de fonctionner aussi bien sous forme de client que de serveur.

Pour une interface socket cliente plus générique, voyez
stream_socket_client(),
stream_socket_server(),
fsockopen() et
pfsockopen().

Lorsque vous utilisez ces fonctions, il est important de vous rappeler que si de nombreuses fonctions ont le même nom que leur équivalent en langage C, elles ont souvent des déclarations différentes. Lisez attentivement les descriptions pour éviter des confusions.

Cela dit, ceux qui ne sont pas familiers avec la programmation par socket peuvent toujours trouver beaucoup de documentation dans les pages de manuel Unix appropriées, et il y a une grande quantité d'introductions en langage C sur le web, qui peuvent être facilement réutilisées, avec des adaptations mineures. » UNIX Socket FAQ est un bon début.


Installation

Les fonctions de socket décrites ici font partie d'une extension PHP qui doit être activée lors de la compilation en utilisant l'option --enable-sockets , avec la commande configure.

Note: Le support des adresses IPv6 a été ajouté en PHP 5.0.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

socket_accept(), socket_create_listen() et socket_create() retournent des ressources sur les sockets.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

AF_UNIX (entier)
AF_INET (entier)
AF_INET6 (entier)
Uniquement disponible si PHP est compilé avec le support IPv6.
SOCK_STREAM (entier)
SOCK_DGRAM (entier)
SOCK_RAW (entier)
SOCK_SEQPACKET (entier)
SOCK_RDM (entier)
MSG_OOB (entier)
MSG_WAITALL (entier)
MSG_PEEK (entier)
MSG_DONTROUTE (entier)
MSG_EOR (entier)
Indisponible sur les plate-formes Windows.
MSG_EOF (entier)
Indisponible sur les plate-formes Windows.
SO_DEBUG (entier)
SO_REUSEADDR (entier)
SO_REUSEPORT (entier)
Cette constante n'est disponible qu'à partir de PHP 5.4.10 sur les plateformes que supportent l'option de socket SO_REUSEPORT : ceci inclut Mac OS X et FreeBSD, mais pas Linux ni Windows.
SO_KEEPALIVE (entier)
SO_DONTROUTE (entier)
SO_LINGER (entier)
SO_BROADCAST (entier)
SO_OOBINLINE (entier)
SO_SNDBUF (entier)
SO_RCVBUF (entier)
SO_SNDLOWAT (entier)
SO_RCVLOWAT (entier)
SO_SNDTIMEO (entier)
SO_RCVTIMEO (entier)
SO_TYPE (entier)
SO_ERROR (entier)
TCP_NODELAY (entier)
Utilisé pour désactiver l'algorithme Nagle TCP. Ajouté en PHP 5.2.7.
SOL_SOCKET (entier)
PHP_NORMAL_READ (entier)
PHP_BINARY_READ (entier)
SOL_TCP (entier)
SOL_UDP (entier)

Les constantes suivantes ne sont définies que sous Windows.

SOCKET_EINTR (entier)
SOCKET_EBADF (entier)
Mauvais numéro de fichier
SOCKET_EACCES (entier)
Permission refusée
SOCKET_EFAULT (entier)
Mauvaise adresse.
SOCKET_EINVAL (entier)
Argument invalide.
SOCKET_EMFILE (entier)
Trop de fichiers ouverts.
SOCKET_ENAMETOOLONG (entier)
Nom de fichier trop long
SOCKET_ENOTEMPTY (entier)
Dossier non vide.
SOCKET_ELOOP (entier)
Trop de liens symboliques rencontrés.
SOCKET_EWOULDBLOCK (entier)
Opération bloquante.
SOCKET_EREMOTE (entier)
L'objet est distant.
SOCKET_EUSERS (entier)
Trop d'utilisateurs.
SOCKET_ENOTSOCK (entier)
Opération de socket sur un non-socket.
SOCKET_EDESTADDRREQ (entier)
Adresse de destination requise.
SOCKET_EMSGSIZE (entier)
Message trop long.
SOCKET_EPROTOTYPE (entier)
Type de protocole erroné pour un socket.
SOCKET_EPROTONOSUPPORT (entier)
Protocole non supporté.
SOCKET_ESOCKTNOSUPPORT (entier)
Type de socket non supporté.
SOCKET_EOPNOTSUPP (entier)
Opération non supportée sur la cible du transport.
SOCKET_EPFNOSUPPORT (entier)
Famille de protocoles non supportée.
SOCKET_EAFNOSUPPORT (entier)
Famille d'adresses non supportée par le protocole.
SOCKET_EADDRNOTAVAIL (entier)
Impossible d'assigner l'adresse demandée.
SOCKET_ENETDOWN (entier)
Le réseau n'est pas disponible.
SOCKET_ENETUNREACH (entier)
Le réseau ne peut être atteint.
SOCKET_ENETRESET (entier)
Le réseau à annuler la connexion en raison d'une réinitialisation.
SOCKET_ECONNABORTED (entier)
Le logiciel a provoqué un échec de la connexion.
SOCKET_ECONNRESET (entier)
La connexion a été réinitialisée par les paires.
SOCKET_ENOBUFS (entier)
Plus de place de disponible dans le buffer.
SOCKET_EISCONN (entier)
La cible du transport est déjà connectée.
SOCKET_ENOTCONN (entier)
La cible du transport n'est pas connectée.
SOCKET_ESHUTDOWN (entier)
Impossible d'envoyer car la cible du transport est arrêtée.
SOCKET_ETIMEDOUT (entier)
La connexion a expirée.
SOCKET_ECONNREFUSED (entier)
Connexion refusée.
SOCKET_EHOSTDOWN (entier)
L'hôte est arrêté.
SOCKET_EHOSTUNREACH (entier)
Aucune route vers l'hôte.
SOCKET_EALREADY (entier)
Opération déjà en cours.
SOCKET_EINPROGRESS (entier)
Opération maintenant en cours.

Les constantes suivantes ne sont disponibles que sous Windows.

SOCKET_ENOPROTOOPT (entier)
SOCKET_EADDRINUSE (entier)
SOCKET_ETOOMYREFS (entier)
SOCKET_EPROCLIM (entier)
SOCKET_EDUOT (entier)
SOCKET_ESTALE (entier)
SOCKET_EDISCON (entier)
SOCKET_SYSNOTREADY (entier)
SOCKET_VERNOTSUPPORTED (entier)
SOCKET_NOTINITIALISED (entier)
SOCKET_HOST_NOT_FOUND (entier)
SOCKET_TRY_AGAIN (entier)
SOCKET_NO_RECOVERY (entier)
SOCKET_NO_DATA (entier)
SOCKET_NO_ADDRESS (entier)

Les constantes suivantes sont disponibles uniquement sur les plate-formes Unix. Chaque constantes n'est définie que si leur équivalent est défini au niveau système.

SOCKET_EPERM (entier)
Opération non permise.
SOCKET_ENOENT (entier)
Aucun fichier ou dossier trouvé.
SOCKET_EIO (entier)
Erreur I/O.
SOCKET_ENXIO (entier)
Aucun périphérique ou adresse trouvé.
SOCKET_E2BIG (entier)
Liste d'arguments trop longue.
SOCKET_EAGAIN (entier)
Ré-essayer.
SOCKET_ENOMEM (entier)
Dépassement de mémoire.
SOCKET_ENOTBLK (entier)
Périphérique de bloc requis.
SOCKET_EBUSY (entier)
Périphérique ou ressource occupé.
SOCKET_EEXIST (entier)
Le fichier existe.
SOCKET_EXDEV (entier)
Lien multi-périphérique.
SOCKET_ENODEV (entier)
Aucun périphérique trouvé.
SOCKET_ENOTDIR (entier)
Ce n'est pas un dossier.
SOCKET_EISDIR (entier)
C'est un dossier.
SOCKET_ENFILE (entier)
Table de fichier dépassé.
SOCKET_ENOTTY (entier)
Ce n'est pas d'un type écriture.
SOCKET_ENOSPC (entier)
Plus d'espace disponible sur le périphérique.
SOCKET_ESPIPE (entier)
Position illégale.
SOCKET_EROFS (entier)
Système de fichiers en lecture seule.
SOCKET_EMLINK (entier)
Trop de lien.
SOCKET_EPIPE (entier)
Pipe rompu.
SOCKET_ENOLCK (entier)
Aucun verrou d'enregistrement de disponible.
SOCKET_ENOSYS (entier)
Fonction non implémentée.
SOCKET_ENOMSG (entier)
Aucun message du type désiré.
SOCKET_EIDRM (entier)
Identifiant supprimé.
SOCKET_ECHRNG (entier)
Numéro de canal en dehors de l'intervalle.
SOCKET_EL2NSYNC (entier)
Level 2 non synchronisé.
SOCKET_EL3HLT (entier)
Level 3 arrêté.
SOCKET_EL3RST (entier)
Level 3 réinitialisé.
SOCKET_ELNRNG (entier)
Numéro de lien en dehors de l'intervalle.
SOCKET_EUNATCH (entier)
Protocole du driver non attaché.
SOCKET_ENOCSI (entier)
Aucune structure CSI disponible.
SOCKET_EL2HLT (entier)
Level 2 arrêté.
SOCKET_EBADE (entier)
Echange invalide.
SOCKET_EBADR (entier)
Descripteur de requête invalide.
SOCKET_EXFULL (entier)
Echange complet.
SOCKET_ENOANO (entier)
Aucune anode.
SOCKET_EBADRQC (entier)
Code de requête invalide.
SOCKET_EBADSLT (entier)
Slot invalide.
SOCKET_ENOSTR (entier)
Le périphérique n'est pas un flux.
SOCKET_ENODATA (entier)
Aucune donnée de disponible.
SOCKET_ETIME (entier)
Timer expiré.
SOCKET_ENOSR (entier)
Ressources de flux dépassées.
SOCKET_ENONET (entier)
La machine n'est pas sur le réseau.
SOCKET_ENOLINK (entier)
Le lien a été coupé.
SOCKET_EADV (entier)
Erreur d'avertissement.
SOCKET_ESRMNT (entier)
Erreur Srmount.
SOCKET_ECOMM (entier)
Erreur de communication lors de l'envoi.
SOCKET_EPROTO (entier)
Erreur du protocole.
SOCKET_EMULTIHOP (entier)
Multihop atteint.
SOCKET_EBADMSG (entier)
Ce n'est pas un message de données.
SOCKET_ENOTUNIQ (entier)
Le nom n'est pas unique sur le réseau.
SOCKET_EBADFD (entier)
Descripteur de fichier dans un mauvais état.
SOCKET_EREMCHG (entier)
L'adresse distante a changé.
SOCKET_ERESTART (entier)
Appel système interrompu doit être redémarré.
SOCKET_ESTRPIPE (entier)
Erreur de flux.
SOCKET_EPROTOOPT (entier)
Le protocole n'est pas disponible.
SOCKET_ADDRINUSE (entier)
Adresse déjà utilisée.
SOCKET_ETOOMANYREFS (entier)
Trop de références : Too many references: impossible de les raccorder.
SOCKET_EISNAM (entier)
Est un fichier de type nommé.
SOCKET_EREMOTEIO (entier)
Erreur I/O distante.
SOCKET_EDQUOT (entier)
Quota dépassé.
SOCKET_ENOMEDIUM (entier)
Aucun média trouvé.
SOCKET_EMEDIUMTYPE (entier)
Type de média erroné.


Exemples

Exemple #1 Exemple de socket : serveur TCP/IP simple

Cet exemple montre comment créer un serveur simple. Changez les variables address et port pour vous adapter à votre configuration, et exécutez-le. Vous pourrez alors vous connecter au serveur avec une commande comme ceci : telnet 192.168.1.53 10000 (en supposant que l'adresse et le port correspondent à votre configuration). Tout ce que vous saisissez après cela sera envoyé au serveur, et affiché en retour. Pour vous déconnecter, tapez 'quit'.

#!/usr/local/bin/php -q
<?php
error_reporting(E_ALL);

/* Autorise l'exécution infinie du script, en attente de connexion. */
set_time_limit(0);

/* Active le vidage implicite des buffers de sortie, pour que nous
 * puissions voir ce que nous lisons au fur et à mesure. */
ob_implicit_flush();

$address = '192.168.1.53';
$port = 10000;

if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
    echo "socket_create() a échoué : raison : " . socket_strerror(socket_last_error()) . "\n";
}

if (socket_bind($sock, $address, $port) === false) {
    echo "socket_bind() a échoué : raison : " . socket_strerror(socket_last_error($sock)) . "\n";
}

if (socket_listen($sock, 5) === false) {
    echo "socket_listen() a échoué : raison : " . socket_strerror(socket_last_error($sock)) . "\n";
}

do {
    if (($msgsock = socket_accept($sock)) === false) {
        echo "socket_accept() a échoué : raison : " . socket_strerror(socket_last_error($sock)) . "\n";
        break;
    }
    /* Send instructions. */
    $msg = "\Bienvenue sur le serveur de test PHP.\n" .
        "Pour quitter, tapez 'quit'. Pour éteindre le serveur, tapez 'shutdown'.\n";
    socket_write($msgsock, $msg, strlen($msg));

    do {
        if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
            echo "socket_read() a échoué : raison : " . socket_strerror(socket_last_error($msgsock)) . "\n";
            break 2;
        }
        if (!$buf = trim($buf)) {
            continue;
        }
        if ($buf == 'quit') {
            break;
        }
        if ($buf == 'shutdown') {
            socket_close($msgsock);
            break 2;
        }
        $talkback = "PHP: You said '$buf'.\n";
        socket_write($msgsock, $talkback, strlen($talkback));
        echo "$buf\n";
    } while (true);
    socket_close($msgsock);
} while (true);

socket_close($sock);
?>

Exemple #2 Exemple avec les sockets : client TCP/IP simple

Cet exemple implémente un client HTTP simple. Il se connecte simplement à une page, envoie une requête HEAD, affiche le résultat et se termine.

<?php
error_reporting(E_ALL);

echo "<h2>Connexion TCP/IP</h2>\n";

/* Lit le port du service WWW. */
$service_port = getservbyname('www', 'tcp');

/* Lit l'adresse IP du serveur de destination */
$address = gethostbyname('www.example.com');

/* Crée un socket TCP/IP. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() a échoué : raison :  " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "OK.\n";
}

echo "Essai de connexion à '$address' sur le port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($socket === false) {
    echo "socket_connect() a échoué : raison : ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.0\r\n\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Envoi de la requête HTTP HEAD...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Lire la réponse : \n\n";
while ($out = socket_read($socket, 2048)) {
    echo $out;
}

echo "Fermeture du socket...";
socket_close($socket);
echo "OK.\n\n";
?>


Erreurs de socket

L'extension socket a été écrite pour fournir une interface utilisable avec les puissantes sockets fournies par BSD. Un soin particulier a été apporté pour que les fonctions soient aussi efficaces sous Unix que sous Windows. Presque toutes les fonctions de sockets peuvent échouer dans certaines circonstances, et émettent ainsi un message d'alerte E_WARNING décrivant l'erreur. Parfois, cela ne se fait pas selon les souhaits du développeur. Par exemple, la fonction socket_read() peut tout à coup émettre un message E_WARNING car la connexion a été inopinément interrompue. Il est commun de supprimer les erreurs avec l'opérateur @ et de traiter les erreurs avec la fonction socket_last_error(), au niveau de l'application. Vous pouvez appeler socket_strerror() avec le code d'erreur pour connaître le message d'erreur, humainement lisible. Reportez-vous à leur description pour plus de détails.

Note:

Les messages E_WARNING générés par l'extension socket sont en anglais, mais ils s'afficheront en fonction de la configuration locale (LC_MESSAGES):

Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet


Fonctions sur les sockets

Sommaire

  • socket_accept — Accepte une connexion sur un socket
  • socket_bind — Lie un nom à un socket
  • socket_clear_error — Efface toutes les erreurs précédemment générées par un socket
  • socket_close — Ferme un socket
  • socket_cmsg_space — Calcule la taille du buffer
  • socket_connect — Crée une connexion sur un socket
  • socket_create_listen — Ouvre un socket sur un port pour accepter les connexions
  • socket_create_pair — Crée une paire de sockets identiques et les stocke dans un tableau
  • socket_create — Crée un socket
  • socket_get_option — Lit les options du socket
  • socket_getopt — Alias de socket_get_option
  • socket_getpeername — Interroge l'autre extrémité de la communication
  • socket_getsockname — Interroge le socket local
  • socket_import_stream — Importe un flux
  • socket_last_error — Lit la dernière erreur générée par un socket
  • socket_listen — Attend une connexion sur un socket
  • socket_read — Lit des données d'un socket
  • socket_recv — Reçoit des données d'un socket connecté
  • socket_recvfrom — Reçoit des données d'un socket, connecté ou pas
  • socket_recvmsg — Lit un message
  • socket_select — Exécute l'appel système select() sur un tableau de sockets avec une durée d'expiration
  • socket_send — Envoie des données à un socket connecté
  • socket_sendmsg — Envoi un message
  • socket_sendto — Envoie un message à un socket, qu'il soit connecté ou pas
  • socket_set_block — Met le socket en mode bloquant
  • socket_set_nonblock — Sélectionne le mode non bloquant d'un pointeur de fichier
  • socket_set_option — Modifie les options de socket
  • socket_setopt — Alias de socket_set_option
  • socket_shutdown — Éteint un socket en lecture et/ou écriture
  • socket_strerror — Retourne une chaîne décrivant un message d'erreur
  • socket_write — Écrit dans un socket


Accepte une connexion sur un socket

  • « Fonctions sur les sockets
  • socket_bind »
  • PHP Manual
  • Fonctions sur les sockets
  • Accepte une connexion sur un socket

socket_accept

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_accept — Accepte une connexion sur un socket

Description

resource socket_accept ( resource $socket )

Une fois que le socket socket a été créé avec la fonction socket_create(), lié à un nom avec la fonction socket_bind(), et mis en attente de connexion avec la fonction socket_listen(), socket_accept() va accepter les connexions sur ce socket. Une fois qu'une connexion est faite, une nouvelle ressource de socket est retournée. Elle peut être utilisée pour les communications. S'il y a plusieurs connexions en attente, la première sera utilisée. S'il n'y a pas de connexion en attente, socket_accept() se bloquera jusqu'à ce qu'une connexion se présente. Si socket a été rendue non-bloquante, grâce à socket_set_blocking() ou socket_set_nonblock(), FALSE sera retourné.

La ressource de socket retournée par socket_accept() ne doit pas être utilisée pour accepter de nouvelles connexions. Le socket original socket, qui est en attente, reste ouvert et peut être réutilisé.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

Valeurs de retour

Retourne une nouvelle ressource de socket en cas de succès ou FALSE en cas d'erreur. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur, humainement lisible.

Voir aussi

  • socket_connect() - Crée une connexion sur un socket
  • socket_listen() - Attend une connexion sur un socket
  • socket_create() - Crée un socket
  • socket_bind() - Lie un nom à un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur


Lie un nom à un socket

  • « socket_accept
  • socket_clear_error »
  • PHP Manual
  • Fonctions sur les sockets
  • Lie un nom à un socket

socket_bind

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_bind — Lie un nom à un socket

Description

bool socket_bind ( resource $socket , string $address [, int $port = 0 ] )

Lie le nom donné par address à l'interface de connexion décrite par socket. Ceci doit être effectué avant qu'une connexion ne soit établie en utilisant socket_connect() ou socket_listen().

Liste de paramètres

socket

Une ressource de socket valide créée par la fonction socket_create().

address

Si le socket est de la famille AF_INET, le paramètre address est une IP numérique (i.e. 127.0.0.1).

Si le socket est de la famille AF_UNIX, le paramètre address représente le chemin d'un socket de domaine Unix (i.e. /tmp/my.sock).

port (optionnel)

Le paramètre port est uniquement utilisé lors de la liaison à un socket AF_INET et désigne le port sur lequel écouter pour une connexion.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Le code erreur peut être récupéré avec la fonction socket_last_error(). Ce code peut être passé à la fonction socket_strerror() pour récupérer le message textuel de l'erreur.

Exemples

Exemple #1 Utilisation de socket_bind() pour définir l'adresse de la source

<?php
// Création d'un nouveau socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// Une liste d'adresse IP, par exemple, appartenent à l'ordinateur
$sourceips['kevin']    = '127.0.0.1';
$sourceips['madcoder'] = '127.0.0.2';

// Lie l'adresse de la source
socket_bind($sock, $sourceips['madcoder']);

// Connexion à l'adresse de destination
socket_connect($sock, '127.0.0.1', 80);

// Écriture
$request = 'GET / HTTP/1.1' . "\r\n" .
'Host: example.com' . "\r\n\r\n";
socket_write($sock, $request);

// Fermeture
socket_close($sock);

?>

Notes

Note:

Cette fonction doit être utilisée sur le socket avant la fonction socket_connect().

Note:

Note de compatibilité avec Windows 9x/ME : socket_last_error() peut retourner un code erreur invalide lorsque vous tentez de lier un socket avec une adresse fausse, qui n'appartient pas à la machine.

Voir aussi

  • socket_connect() - Crée une connexion sur un socket
  • socket_listen() - Attend une connexion sur un socket
  • socket_create() - Crée un socket
  • socket_last_error() - Lit la dernière erreur générée par un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur


Efface toutes les erreurs précédemment générées par un socket

  • « socket_bind
  • socket_close »
  • PHP Manual
  • Fonctions sur les sockets
  • Efface toutes les erreurs précédemment générées par un socket

socket_clear_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

socket_clear_error — Efface toutes les erreurs précédemment générées par un socket

Description

void socket_clear_error ([ resource $socket ] )

Efface tous les codes d'erreur qui ont été enregistrés pour le socket socket, ou bien pour le socket général.

socket_clear_error() permet de remettre à zéro les codes d'erreur d'un socket ou du socket global. Cela peut être utile pour détecter l'avènement d'une erreur durant une partie de l'application.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • socket_last_error() - Lit la dernière erreur générée par un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur


Ferme un socket

  • « socket_clear_error
  • socket_cmsg_space »
  • PHP Manual
  • Fonctions sur les sockets
  • Ferme un socket

socket_close

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_close — Ferme un socket

Description

void socket_close ( resource $socket )

socket_close() ferme le socket socket et détruit toutes les ressources qui y sont liées. Cette fonction est spécifique aux sockets et ne peut être utilisée avec les autres types de ressource.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • socket_bind() - Lie un nom à un socket
  • socket_listen() - Attend une connexion sur un socket
  • socket_create() - Crée un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur


Calcule la taille du buffer

  • « socket_close
  • socket_connect »
  • PHP Manual
  • Fonctions sur les sockets
  • Calcule la taille du buffer

socket_cmsg_space

(PHP 5 >= 5.5.0, PHP 7)

socket_cmsg_space — Calcule la taille du buffer

Description

int socket_cmsg_space ( int $level , int $type )

Calcule la taille du buffer qui doit être allouée pour recevoir les données auxiliaires.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

level

type

Valeurs de retour

Voir aussi

  • socket_recvmsg() - Lit un message
  • socket_sendmsg() - Envoi un message


Crée une connexion sur un socket

  • « socket_cmsg_space
  • socket_create_listen »
  • PHP Manual
  • Fonctions sur les sockets
  • Crée une connexion sur un socket

socket_connect

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_connect — Crée une connexion sur un socket

Description

bool socket_connect ( resource $socket , string $address [, int $port = 0 ] )

Crée une nouvelle connexion en utilisant la ressource socket socket, qui doit être une ressource de socket valide, créée par la fonction socket_create().

Liste de paramètres

socket

address

Le paramètre address est soit une adresse valide IPv4 (e.g. 127.0.0.1) si socket vaut AF_INET, soit une adresse valide IPv6 (e.g. ::1) si le support IPv6 est actif et que le paramètre socket vaut AF_INET6, soit un chemin vers un socket de domaine Unix, si la famille de sockets vaut AF_UNIX.

port

Le paramètre port n'est utilisé et mandaté que lors d'une connexion à un socket AF_INET ou AF_INET6, et désigne le port de l'hôte distant sur lequel la connexion doit être effectuée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Note:

Si le socket est non-bloquant, alors cette fonction retourne FALSE avec l'erreur suivant : Operation now in progress.

Voir aussi

  • socket_bind() - Lie un nom à un socket
  • socket_listen() - Attend une connexion sur un socket
  • socket_create() - Crée un socket
  • socket_last_error() - Lit la dernière erreur générée par un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur


Ouvre un socket sur un port pour accepter les connexions

  • « socket_connect
  • socket_create_pair »
  • PHP Manual
  • Fonctions sur les sockets
  • Ouvre un socket sur un port pour accepter les connexions

socket_create_listen

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_create_listen — Ouvre un socket sur un port pour accepter les connexions

Description

resource socket_create_listen ( int $port [, int $backlog = 128 ] )

socket_create_listen() crée une nouvelle ressource de socket, de type AF_INET, mis en attente sur toutes les interfaces locales, pour le port port.

socket_create_listen() sert à simplifier la création de nouveaux sockets destinés à être mis en attente, et accepter de nouvelles connexions.

Liste de paramètres

port

Le port que l'on doit écouter sur toutes les interfaces.

backlog

Le paramètre backlog définit la taille maximum de la queue de connexions en attente. SOMAXCONN peut être utilisée comme valeur pour le paramètre backlog. Reportez-vous à socket_listen() pour plus de détails.

Valeurs de retour

socket_create_listen() retourne une nouvelle ressource de socket en cas de succès et FALSE en cas d'erreur. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Notes

Note:

Si vous voulez créer un socket qui n'écoute que certaines interfaces, vous devez utiliser socket_create(), socket_bind() et socket_listen().

Voir aussi

  • socket_create() - Crée un socket
  • socket_create_pair() - Crée une paire de sockets identiques et les stocke dans un tableau
  • socket_bind() - Lie un nom à un socket
  • socket_listen() - Attend une connexion sur un socket
  • socket_last_error() - Lit la dernière erreur générée par un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur


Crée une paire de sockets identiques et les stocke dans un tableau

  • « socket_create_listen
  • socket_create »
  • PHP Manual
  • Fonctions sur les sockets
  • Crée une paire de sockets identiques et les stocke dans un tableau

socket_create_pair

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_create_pair — Crée une paire de sockets identiques et les stocke dans un tableau

Description

bool socket_create_pair ( int $domain , int $type , int $protocol , array &$fd )

socket_create_pair() crée une paire de sockets identiques et les stocke dans fd. Cette fonction est utilisée couramment dans IPC (InterProcess Communication).

Liste de paramètres

domain

Le paramètre domain spécifie la famille du protocole à utiliser par le socket. Voir la documentation sur la fonction socket_create() pour une liste complète.

type

Le paramètre type spécifie le type de communication à utiliser par le socket. Voir la documentation sur la fonction socket_create() pour une liste complète.

protocol

Le paramètre protocol définit un protocole spécifique dans le domaine spécifié domain pour être utilisé lors d'une communication sur un socket retourné. La valeur appropriée peut être retrouvée par son nom en utilisant la fonction getprotobyname(). Si le protocole désiré est TCP ou UDP, les constantes correspondantes SOL_TCP et SOL_UDP peuvent être utilisées.

Voir la documentation sur la fonction socket_create() pour une liste complète des protocoles supportés.

fd

Une référence vers un tableau dans lequel les deux ressources de sockets seront insérées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Cette fonction a été ré-activée sous Windows.
4.3.0 | Cette fonction, à cause d'un bogue, a été désactivée sous Windows.

Exemples

Exemple #1 Exemple avec socket_create_pair()

<?php
$sockets = array();

/* Sous Windows, nous devons utiliser AF_INET */
$domain = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' ? AF_INET : AF_UNIX);

/* Création de la paire de sockets */
if (socket_create_pair($domain, SOCK_STREAM, 0, $sockets) === false) {
    echo "socket_create_pair a échoué. Raison : ".socket_strerror(socket_last_error());
}
/* Envoie et reçoit les données */
if (socket_write($sockets[0], "ABCdef123\n", strlen("ABCdef123\n")) === false) {
    echo "socket_write() a échoué. Raison : ".socket_strerror(socket_last_error($sockets[0]));
}
if (($data = socket_read($sockets[1], strlen("ABCdef123\n"), PHP_BINARY_READ) === false) {
    echo "socket_read() a échoué. Raison : ".socket_strerror(socket_last_error($sockets[1]));
}
var_dump($data);

/* Fermeture des sockets */
socket_close($sockets[0]);
socket_close($sockets[1]);
?>

Exemple #2 Exemple IPC avec socket_create_pair()

<?php
$ary = array();
$strone = 'Message depuis le parent.';
$strtwo = 'Message depuis le fils.';
if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $ary) === false) {
    echo "socket_create_pair() a échoué. Raison : ".socket_strerror(socket_last_error());
}
$pid = pcntl_fork();
if ($pid == -1) {
    echo 'Impossible de dupliquer le processus.';
} elseif ($pid) {
    /* parent */
    socket_close($ary[0]);
    if (socket_write($ary[1], $strone, strlen($strone)) === false) {
        echo "socket_write() a échoué. Raison : ".socket_strerror(socket_last_error($ary[1]));
    }
    if (socket_read($ary[1], strlen($strtwo), PHP_BINARY_READ) == $strtwo) {
        echo "Recieved $strtwo\n";
    }
    socket_close($ary[1]);
} else {
    /* fils */
    socket_close($ary[1]);
    if (socket_write($ary[0], $strtwo, strlen($strtwo)) === false) {
        echo "socket_write() a échoué. Raison : ".socket_strerror(socket_last_error($ary[0]));
    }
    if (socket_read($ary[0], strlen($strone), PHP_BINARY_READ) == $strone) {
        echo "Réception de $strone\n";
    }
    socket_close($ary[0]);
}
?>

Voir aussi

  • socket_create() - Crée un socket
  • socket_create_listen() - Ouvre un socket sur un port pour accepter les connexions
  • socket_bind() - Lie un nom à un socket
  • socket_listen() - Attend une connexion sur un socket
  • socket_last_error() - Lit la dernière erreur générée par un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur


Crée un socket

  • « socket_create_pair
  • socket_get_option »
  • PHP Manual
  • Fonctions sur les sockets
  • Crée un socket

socket_create

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_create — Crée un socket

Description

resource socket_create ( int $domain , int $type , int $protocol )

socket_create() crée un point de communication (une socket) et retourne une ressource de socket. Une connexion typique réseau est composée de deux sockets : une qui joue le rôle de client et l'autre celui du serveur.

Liste de paramètres

domain

Le paramètre domain spécifie la famille de protocoles à utiliser par le socket.

Famille d'adresses / protocoles disponibles
Domaine | Description
AF_INET | Protocole basé sur IPv4. TCP et UDP sont les protocoles communs de cette famille de protocoles.
AF_INET6 | Protocole basé sur IPv6. TCP et UDP sont les protocoles communs de cette famille de protocoles. Le support a été ajouté en PHP 5.0.0.
AF_UNIX | Famille de protocoles locales de communication. Le rendement élevé et des moindres coûts supplémentaires lui font une grande force d'IPC (Interprocess Communication).
type

Le paramètre type sélectionne le type de communication à utiliser par le socket.

Types de sockets disponibles
Type | Description
SOCK_STREAM | Fournit des flux d'octets ordonnancés, fiables, full-duplex, raccordés sur la base. Un mécanisme de transmission des données "out-of-band" peut être supporté. Le protocole TCP est basé sur ce type de sockets.
SOCK_DGRAM | Support des datagrammes (moins de connexion, message non garanti d'une longueur maximum fixe). Le protocole UDP est basé sur ce type de sockets.
SOCK_SEQPACKET | Fournit un chemin de transmission de données séquentiel, fiable, connecté à la base par deux chemins pour les datagrammes de longueur maximale fixe ; un consommateur est requis pour lire la totalité d'un paquet avec chaque appel à la lecture.
SOCK_RAW | Fournit l'accès brut de protocole de réseau. Ce type spécial de socket peut être utilisé pour construire manuellement tout type de protocole. Une utilisation commune de ce type de sockets est le traitement des requêtes ICMP (comme le ping).
SOCK_RDM | Fournit une couche fiable de datagramme qui ne garantit pas l'ordre des données. Ce type de socket est le plus susceptible de ne pas être implémenté sur votre système d'exploitation.
protocol

Le paramètre protocol définit le protocole spécifique pour le domaine domain à utiliser lors de communications sur un socket retourné. La valeur appropriée peut être retrouvée par son nom en utilisant la fonction getprotobyname(). Si le protocole désiré est TCP ou UDP, les constantes correspondantes SOL_TCP et SOL_UDP peuvent être utilisées.

Protocoles Communs
Nom | Description
icmp | Le protocole ICMP (Internet Control Message Protocol) est utilisé tout d'abord par les passerelles et les hôtes pour reporter les erreurs dans des communications de datagramme. La commande "ping" (présente dans les systèmes de production modernes) est un exemple d'application utilisant le protocole ICMP.
udp | Le protocole UDP (User Datagramm Protocol) est un protocole sans connexion, incertain avec les longueurs d'enregistrements fixes. De ce fait, UDP requiert une quantité minimum de protocole aérienne.
tcp | Le protocole TCP (Transmission Control Protocol) est un protocole fiable, connecté sur la base, orienté flux et full-duplex. TCP garantit que chaque paquet est reçu dans l'ordre dans lequel il a été envoyé. Si quelques paquets sont perdus pendant la communication, TCP retransmettra ces paquets tant que l'hôte destinataire ne les aura pas reçu entièrement. Pour des raisons de fiabilité et de performance, l'implémentation TCP, elle-même, décide des frontières appropriées d'octets de la couche fondamentale de communication du datagramme. Par conséquent, les applications TCP doivent autoriser la possibilité de transmission partielle d'enregistrements.

Valeurs de retour

socket_create() retourne une ressource de socket en cas de succès et FALSE sinon. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Erreurs / Exceptions

Si une valeur invalide est spécifiée au paramètre domain ou au paramètre type, la fonction socket_create() prendra comme paramètres par défaut respectivement AF_INET et SOCK_STREAM et générera un message d'alerte (E_WARNING).

Voir aussi

  • socket_accept() - Accepte une connexion sur un socket
  • socket_bind() - Lie un nom à un socket
  • socket_connect() - Crée une connexion sur un socket
  • socket_listen() - Attend une connexion sur un socket
  • socket_last_error() - Lit la dernière erreur générée par un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur


Lit les options du socket

  • « socket_create
  • socket_getopt »
  • PHP Manual
  • Fonctions sur les sockets
  • Lit les options du socket

socket_get_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

socket_get_option — Lit les options du socket

Description

mixed socket_get_option ( resource $socket , int $level , int $optname )

socket_get_option() récupère la valeur de l'option spécifiée par le paramètre optname pour le socket spécifié par le paramètre socket.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

level

Le paramètre level spécifie la couche de protocole de l'option. Par exemple, pour connaître les options de la couche socket, la valeur SOL_SOCKET du paramètre level sera utilisée. Les autres degrés, comme TCP, peuvent être utilisés en spécifiant le numéro du protocole de cette couche. Les numéros de protocoles peuvent être trouvés en utilisant la fonction getprotobyname().

optname
Options disponibles pour les sockets
Option | Description | Type
SO_DEBUG | Reporte si les informations de déboguage sont enregistrées ou pas. | int
SO_BROADCAST | Reporte si la transmission des annonces globales est supportée ou pas. | int
SO_REUSEADDR | Reporte si les adresses locales peuvent être réutilisées ou pas. | int
SO_KEEPALIVE | Reporte si les connexions sont persistantes avec des transmissions périodiques de messages ou pas. Si le socket connecté échoue en réponse à ces messages, la connexion est interrompue et le processus écrira sur ce socket une notification avec un signal SIGPIPE. | int
SO_LINGER

Reporte si le socket socket s'attarde sur la fonction socket_close() si des données sont présentes ou pas. Par défaut, lorsque le socket est fermé, socket_close() tente d'envoyer toutes les données qui ne l'ont pas encore été.

Si l_onoff ne vaut pas zéro et que l_linger vaut zéro, toutes les données qui n'ont pas encore été envoyées seront annulées et RST (réinitialisation) sera envoyé dans le cas d'une connexion orientée socket.

D'un autre côté, si l_onoff ne vaut pas zéro et l_linger ne vaut pas zéro, socket_close() bloquera tant que les données non envoyées ne le seront pas ou pendant le temps spécifié par l_linger. Si le socket est non-bloquant, socket_close() échouera et retournera une erreur.

array. Le tableau contiendra 2 clés : l_onoff et l_linger.
SO_OOBINLINE | Reporte si le socket socket part sur des données en ligne out-of-band ou pas. | int
SO_SNDBUF | Reporte les informations sur la taille du tampon envoyé. | int
SO_RCVBUF | Reporte les informations sur la taille du tampon reçu. | int
SO_ERROR | Reporte les informations sur le statut de l'erreur et le vide. | int (ne peut être défini par la fonction socket_set_option())
SO_TYPE | Reporte le type de le socket socket (e.g. SOCK_STREAM). | int (ne peut être défini par la fonction socket_set_option())
SO_DONTROUTE | Reporte si les messages sortants dévient les équipements standard de cheminement. | int
SO_RCVLOWAT | Reporte le nombre minimal d'octets au processus pour les opérations entrantes sur le socket socket. | int
SO_RCVTIMEO | Reporte la valeur du délai d'exécution pour les opérations entrantes. | array. Le tableau contiendra 2 clés : sec qui est la partie représentant les secondes de la valeur du délai d'attente et usec qui est la partie représentant les microsecondes.
SO_SNDTIMEO | Reporte la valeur du délai d'exécution spécifiant le temps maximal d'exécution pour les fonctions sortantes bloquantes parce que la commande d'écoulement empêche des données d'être envoyé. | array. Le tableau contiendra 2 clés : secqui est la partie représentant les secondes de la valeur du délai d'attente et usec qui est la partie représentant les microsecondes.
SO_SNDLOWAT | Reporte le nombre minimal d'octets au processus pour les opérations sortantes sur le socket socket. | int
TCP_NODELAY | Indique si l'algorithme Nagle TCP est désactivé. | int
MCAST_JOIN_GROUP | Joint un groupe multi-cast (ajouté en PHP 5.4). | Un tableau avec une clé "group", spécifiant une chaîne de caractères avec les adresses multi-cast IPv4 ou IPv6 et une clé "interface", spécifiant soit un numéro d'interface (de type int), soit une chaîne de caractères avec le nom de l'interface, comme "eth0". 0 peut être spécfié pour indiquer que l'interface doit être sélectionné en utilisant les règles de routage (ne peut être utilisé qu'avec la fonction socket_set_option()).
MCAST_LEAVE_GROUP | Quitte un groupe multi-cast (ajouté en PHP 5.4). | Un tableau. Voir la constante MCAST_JOIN_GROUP pour plus d'informations (ne peut être utilisé qu'avec la fonction socket_set_option()).
MCAST_BLOCK_SOURCE | Paquets de bloc arrivant depuis une source spécifique vers un groupe multi-cast spécifique, qui aura du être joint auparavant (ajouté en PHP 5.4). | Un tableau contenant les mêmes clés que celles de la constante MCAST_JOIN_GROUP, avec une clé supplémentaire source, lié à une chaîne de caractère spécifiant une adresse IPv4 ou IPv6 de la source à bloquer (ne peut être utilisé qu'avec la fonction socket_set_option()).
MCAST_UNBLOCK_SOURCE | Débloque (recommence à recevoir) les paquets arrivant depuis une source spécifique vers un groupe multi-cast spécifique, qui aura dû être joins auparavant (ajouté en 5.4). | Un tableau au même format que celui de la constante MCAST_BLOCK_SOURCE (ne peut être utilisé qu'avec la fonction socket_set_option()).
MCAST_JOIN_SOURCE_GROUP | Reçoit des paquets destinés à un groupe multi-cast spécifique dont l'adresse source correspond à une valeur spécifique (ajouté en PHP 5.4). | Un tableau au même format que celui de la constante MCAST_BLOCK_SOURCE (ne peut être utilisé qu'avec la fonction socket_set_option()).
MCAST_LEAVE_SOURCE_GROUP | Arrête de recevoir des paquets destinés à un groupe multi-cast spécifique dont l'adresse source correspond à une valeur spécifique (ajouté en PHP PHP 5.4) | Un tableau au même format que celui de la constante MCAST_BLOCK_SOURCE (ne peut être utilisé qu'avec la fonction socket_set_option()).
IP_MULTICAST_IF | L'interface de sortie pour les paquets multi-cast IPv4 (ajouté en PHP 5.4). | Soit un entier spécifiant le numéro de l'interface, soit une chaîne de caractères représentant le nom de l'interface, par exemple, eth0. La valeur 0 peut être utilisé pour indiquer la table de routage à utiliser dans la sélection de l'interface. La fonction socket_get_option() retourne un index d'interface. Notez que, contrairement à l'API C, cette option ne prend pas comme argument une adresse IP. Ceci élimine la différence d'interface entre les constantes IP_MULTICAST_IF et IPV6_MULTICAST_IF.
IPV6_MULTICAST_IF | L'interface de sortie pour les paquets multi-cast IPv6 (ajouté en PHP 5.4). | Identique à la constante IP_MULTICAST_IF.
IP_MULTICAST_LOOP | La politique de la boucle locale multi-cast pour les paquets IPv4, qui détermine si les paquets multi-cast envoyés par ce socket doivent aussi atteindre les récepteurs du même hôte qui ont joint le groupe multi-cast sur l'interface de sortie utilisée par ce socket. C'est le comportement par défaut (ajouté en PHP 5.4). | Un entier (soit 0, soit 1). Pour la fonction socket_set_option(), n'importe quelle valeur sera acceptée et sera convertie en un booléen suivant les règles habituelles de PHP.
IPV6_MULTICAST_LOOP | Identique à la constante IP_MULTICAST_LOOP, mais pour l'IPv6 (ajouté en PHP 5.4). | Un entier. Voir la constante IP_MULTICAST_LOOP.
IP_MULTICAST_TTL | La durée de vie des paquets sortants multi-cast IPv4. Ce doit être une valeur comprise entre 0 (ne pas quitter l'interface) et 255. Par défaut, la valeur est à 1 (seul le réseau local est atteint) (ajouté en PHP 5.4). | Un entier entre 0 et 255.
IPV6_MULTICAST_HOPS | Identique à la constante IP_MULTICAST_TTL, mais pour les paquets IPv6. La valeur -1 est également acceptée, signifiant que la route par défaut doit être utilisée (ajouté en PHP 5.4). | Un entier compris entre -1 et 255.

Valeurs de retour

Retourne la valeur de l'option fournie, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec socket_get_option()

<?php
$socket = socket_create_listen(1223);

$linger = array('l_linger' => 1, 'l_onoff' => 1);
socket_set_option($socket, SOL_SOCKET, SO_LINGER, $linger);

var_dump(socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR));
?>

Voir aussi

  • socket_create_listen() - Ouvre un socket sur un port pour accepter les connexions
  • socket_set_option() - Modifie les options de socket


Alias de socket_get_option

  • « socket_get_option
  • socket_getpeername »
  • PHP Manual
  • Fonctions sur les sockets
  • Alias de socket_get_option

socket_getopt

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_getopt — Alias de socket_get_option()

Description

Cette fonction est un alias de : socket_get_option().


Interroge l'autre extrémité de la communication

  • « socket_getopt
  • socket_getsockname »
  • PHP Manual
  • Fonctions sur les sockets
  • Interroge l'autre extrémité de la communication

socket_getpeername

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_getpeername — Interroge l'autre extrémité de la communication

Description

bool socket_getpeername ( resource $socket , string &$address [, int &$port ] )

Interroge l'autre extrémité de la communication.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

address

Si le socket socket est de type AF_INET, ou AF_INET6 socket_getpeername() retournera l'adresse IP de l'hôte, en notation numérique (e.g. 127.0.0.1 ou fe80::1) dans le paramètre address, et si le paramètre optionnel port est présent, elle retournera aussi le port de la communication établie.

Si le socket socket est de type AF_UNIX, socket_getpeername() retournera le chemin sur le système de fichiers (e.g. /var/run/daemon.sock) dans le paramètre address.

port

Si fourni, ce devra être le port associé à l'adresse du paramètre address.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. socket_getpeername() peut aussi retourner FALSE si le type de le socket n'est ni AF_INET AF_INET6, ni AF_UNIX, auquel cas le dernier code d'erreur socket n'est pas modifié.

Notes

Note:

socket_getsockname() ne doit pas être utilisée avec les sockets AF_UNIX créés avec socket_accept(). Seules les sockets créées avec socket_connect() ou une socket serveur primaire suivant un appel à socket_bind() retourneront des valeurs logiques.

Note:

Pour faire en sorte que la fonction socket_getpeername() retourne une valeur cohérente, le socket sur lequel la fonction est appelée doit évidemment être un pour qui le conscepte de "peer" a du sens.

Voir aussi

  • socket_getsockname() - Interroge le socket local
  • socket_last_error() - Lit la dernière erreur générée par un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur


Interroge le socket local

  • « socket_getpeername
  • socket_import_stream »
  • PHP Manual
  • Fonctions sur les sockets
  • Interroge le socket local

socket_getsockname

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_getsockname — Interroge le socket local

Description

bool socket_getsockname ( resource $socket , string &$addr [, int &$port ] )

Note: socket_getsockname() ne doit pas être utilisée avec les sockets AF_UNIX créés avec socket_connect(). Seules les sockets suivant un appel de socket_bind() retourneront des valeurs logiques.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

addr

Si le socket socket est de type AF_INET, ou AF_INET6, socket_getsockname() retournera l'adresse IP locale, en notation numérique (e.g. 127.0.0.1 ou fe80::1) dans le paramètre address, et si le paramètre optionnel port est présent, elle retournera aussi le port de la communication établie.

Si le socket socket est de type AF_UNIX, socket_getsockname() retournera le chemin sur le système de fichiers (e.g. /var/run/daemon.sock) dans le paramètre address.

port

Si fourni, ce devra être le port associé à l'adresse.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. socket_getsockname() peut aussi retourner FALSE si le type du socket n'est ni AF_INET, ni AF_INET, ni AF_UNIX, auquel cas le dernier code d'erreur socket n'est pas modifié.

Voir aussi

  • socket_getpeername() - Interroge l'autre extrémité de la communication
  • socket_last_error() - Lit la dernière erreur générée par un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur


Importe un flux

  • « socket_getsockname
  • socket_last_error »
  • PHP Manual
  • Fonctions sur les sockets
  • Importe un flux

socket_import_stream

(PHP 5 >= 5.4.0, PHP 7)

socket_import_stream — Importe un flux

Description

resource socket_import_stream ( resource $stream )

Importe un flux qui encapsule un socket dans une ressource.

Liste de paramètres

stream

La ressource de flux à importer.

Valeurs de retour

Retourne FALSE ou NULL en cas d'échec.

Exemples

Exemple #1 Exemple avec socket_import_stream()

<?php
$stream = stream_socket_server("udp://0.0.0.0:58380", $errno, $errstr, STREAM_SERVER_BIND);
$sock   = socket_import_stream($stream);
?>

Voir aussi

  • stream_socket_server() - Crée un socket serveur Unix ou Internet


Lit la dernière erreur générée par un socket

  • « socket_import_stream
  • socket_listen »
  • PHP Manual
  • Fonctions sur les sockets
  • Lit la dernière erreur générée par un socket

socket_last_error

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_last_error — Lit la dernière erreur générée par un socket

Description

int socket_last_error ([ resource $socket ] )

Si une ressource de socket est passée à cette fonction, la dernière erreur qui aura été générée par ce socket sera retourné. Si la ressource de socket est omise, le dernier code d'erreur généré est retourné. Ce comportement est particulièrement pratique pour des fonctions comme socket_create() qui ne retournent pas de socket en cas d'échec, et socket_select() qui peut échouer sans raison directement liée au socket. Le code d'erreur peut être transmis à socket_strerror() qui retourne un message d'erreur lisible.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

Valeurs de retour

Retourne le code erreur associé au socket.

Exemples

Exemple #1 Exemple avec socket_last_error()

<?php
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if ($socket === false) {
    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);

    die("Impossible de créer le socket : [$errorcode] $errormsg");
}
?>

Notes

Note:

socket_last_error() n'efface pas le code d'erreur. Utilisez plutôt la fonction socket_clear_error() pour cela.


Attend une connexion sur un socket

  • « socket_last_error
  • socket_read »
  • PHP Manual
  • Fonctions sur les sockets
  • Attend une connexion sur un socket

socket_listen

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_listen — Attend une connexion sur un socket

Description

bool socket_listen ( resource $socket [, int $backlog = 0 ] )

Une fois que le socket socket a été créé avec la fonction socket_create() et liée à un nom avec la fonction socket_bind(), il peut être mis en attente de la connexion entrante.

socket_listen() ne fonctionne qu'avec des sockets de type SOCK_STREAM et SOCK_SEQPACKET.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

backlog

Un nombre maximum de backlog connexions seront mises en attente de traitement. Si une demande de connexion arrive et que la queue est pleine, le client recevra une erreur indiquant ECONNREFUSED, ou, si le protocole de support accepte les retransmissions, la requête sera ignorée pour que les tentatives ultérieures finissent par réussir.

Note:

Le nombre maximum passé dans le paramètre backlog dépend essentiellement de la plate-forme de support. Sur Linux, il est tronqué automatiquement à SOMAXCONN. Sous Windows, si la constante SOMAXCONN est passée, le service responsable des sockets choisira une valeur maximum raisonnable. Il n'y a pas de méthode pour deviner la valeur réellement choisie.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Voir aussi

  • socket_accept() - Accepte une connexion sur un socket
  • socket_bind() - Lie un nom à un socket
  • socket_connect() - Crée une connexion sur un socket
  • socket_create() - Crée un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur


Lit des données d'un socket

  • « socket_listen
  • socket_recv »
  • PHP Manual
  • Fonctions sur les sockets
  • Lit des données d'un socket

socket_read

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_read — Lit des données d'un socket

Description

string socket_read ( resource $socket , int $length [, int $type = PHP_BINARY_READ ] )

socket_read() lit des données dans le socket socket, qui doit être une ressource créée par la fonction socket_create() ou la fonction socket_accept().

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

length

Elle lit un maximum de length octets. Sinon, vous pouvez utiliser \r, \n ou \0 pour terminer la lecture (suivant la valeur choisie pour type, voir ci-dessous).

type

Le paramètre optionnel type peut prendre l'une des valeurs constantes suivantes :

  • PHP_BINARY_READ (Défaut) - utilise la fonction système recv(). Capable de lire les données binaires.
  • PHP_NORMAL_READ - la lecture s'arrête aux \n et \r

Valeurs de retour

socket_read() retourne les données sous forme de chaîne en cas de succès, et FALSE sinon (y compris si l'hôte distant a fermé la connexion). Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Note:

socket_read() retourne une chaîne de longueur zéro (""), lorsqu'il n'y a plus de données à lire.

Voir aussi

  • socket_accept() - Accepte une connexion sur un socket
  • socket_bind() - Lie un nom à un socket
  • socket_connect() - Crée une connexion sur un socket
  • socket_listen() - Attend une connexion sur un socket
  • socket_last_error() - Lit la dernière erreur générée par un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur
  • socket_write() - Écrit dans un socket


Reçoit des données d'un socket connecté

  • « socket_read
  • socket_recvfrom »
  • PHP Manual
  • Fonctions sur les sockets
  • Reçoit des données d'un socket connecté

socket_recv

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_recv — Reçoit des données d'un socket connecté

Description

int socket_recv ( resource $socket , string &$buf , int $len , int $flags )

La fonction socket_recv() reçoit len octets de données dans buf depuis socket. socket_recv() peut être utilisée pour récupérer des données depuis des sockets connectés. Aussi, des drapeaux permettent de changer le comportement de la fonction.

buf est passé par référence, il doit donc être présent dans la liste des arguments. Les données reçues depuis la socket par socket_recv() seront retournées dans buf.

Liste de paramètres

socket

socket doit être une ressource de socket précédemment créée par socket_create().

buf

Les données reçues seront transmises dans buf. Si une erreur survient, si la connexion est fermée ou si aucune donnée n'est disponible, buf vaudra alors NULL.

len

Jusqu'à len octets seront lus depuis l'hôte distant.

flags

La valeur de flags peut être une combinaison des drapeaux suivants, groupés au moyen de l'opérateur binaire OR (|).

Valeurs possibles de flags
Flag | Description
MSG_OOB | Traite des données hors de bande.
MSG_PEEK | Reçoit les données depuis le début de la queue sans pour autant les supprimer de la queue.
MSG_WAITALL | Bloque avant qu'au moins len sont reçues. Cependant, si un signal est intercépté ou si la connexion est terminée, la fonction pourra retourner moins de données.
MSG_DONTWAIT | Si ce drapeau est spécifié, la fonction retournera ses données alors qu'en temps normal elle aurait bloqué.

Valeurs de retour

socket_recv() retourne le nombre d'octets reçus, ou FALSE si une erreur est apparue. Le code d'erreur actuel peut être récupéré en appelant socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour avoir une représentation textuelle de l'erreur.

Exemples

Exemple #1 Exemples avec socket_recv()

Cet exemple est une réécriture de l'exemple pris sur Exemples pour utiliser socket_recv().

<?php
error_reporting(E_ALL);

echo "<h2>TCP/IP Connection</h2>\n";

/* Récupère le port du service WWW. */
$service_port = getservbyname('www', 'tcp');

/* Récupère l'adresse IP de l'hôte cible. */
$address = gethostbyname('www.example.com');

/* Crée un socket TCP/IP. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() a échoué: raison: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "OK.\n";
}

echo "Tentative de connexion à '$address' sur le port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "socket_connect() a échoué.\nRaison: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connexion: Fermée\r\n\r\n";
$out = '';

echo "Envoi d'une requête HTTP HEAD...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Lecture de la réponse:\n\n";
$buf = 'Ceci est mon buffer.';
if (false !== ($bytes = socket_recv($socket, $buf, 2048, MSG_WAITALL))) {
    echo "$bytes octets lus depuis socket_recv(). Fermeture du socket...";
} else {
    echo "socket_recv() a échoué; raison: " . socket_strerror(socket_last_error($socket)) . "\n";
}
socket_close($socket);

echo $buf . "\n";
echo "OK.\n\n";
?>

L'exemple ci-dessus produit un résultat ressemblant à celà:

<h2>TCP/IP Connection</h2>
OK.
Tentative de connexion à '208.77.188.166' sur le port '80'...OK.
Envoi d'une requête HTTP HEAD...OK.
Lecture de la réponse:

123 octets lus depuis socket_recv(). Fermeture du socket...HTTP/1.1 200 OK
Date: Mon, 14 Sep 2009 08:56:36 GMT
Server: Apache/2.2.3 (Red Hat)
Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
ETag: "b80f4-1b6-80bfd280"
Accept-Ranges: bytes
Content-Length: 438
Connexion : Fermée
Content-Type: text/html; CHARSET=Windows-1252

OK.


Reçoit des données d'un socket, connecté ou pas

  • « socket_recv
  • socket_recvmsg »
  • PHP Manual
  • Fonctions sur les sockets
  • Reçoit des données d'un socket, connecté ou pas

socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_recvfrom — Reçoit des données d'un socket, connecté ou pas

Description

int socket_recvfrom ( resource $socket , string &$buf , int $len , int $flags , string &$name [, int &$port ] )

La fonction socket_recvfrom() reçoit len octets de données du buffer buf depuis name sur le port port (si le socket n'est pas du type AF_UNIX), en utilisant socket. socket_recvfrom() peut être utilisé pour récupérer les données depuis des sockets connectées ou non. De plus, un ou plusieurs drapeaux peuvent être spécifiés pour modifier ce comportement.

Les paramètres name et port doivent être passés par référence. Si le socket n'est pas connecté, name contiendra l'adresse internet de l'hôte distant ou le chemin du socket Unix. Si le socket est connecté, name vaut NULL. De plus, le paramètre port contiendra le port de l'hôte distant dans le cas d'un socket AF_INET ou AF_INET6.

Liste de paramètres

socket

Le paramètre socket doit être une ressource de socket créé par la fonction socket_create().

buf

Les données récupérées seront placées dans la variable spécifiée par ce paramètre.

len

Jusqu'à len octets doivent être récupérés de l'hôte distant.

flags

La valeur de ce paramètre peut être une combinaison des drapeaux suivants, joints par un OU binaire (|).

Valeurs possibles pour flags
Drapeau | Description
MSG_OOB | Processus en dehors de la bande de données.
MSG_PEEK | Reçoit les données depuis le début de la file de réception sans les supprimer de cette file.
MSG_WAITALL | Bloque tant qu'au moins len octets n'ont pas été reçus. Cependant, si un signal est reçu ou l'hôte distant se déconnecte, la fonction pourra retourner moins de données.
MSG_DONTWAIT | Lorsque ce drapeau est défini, la fonction retourne des données même si elle devrait rester bloquer.
name

Si le socket est du type AF_UNIX, name sera le chemin vers ce fichier. Sinon, pour les sockets non-connectés, name est l'adresse IP de l'hôte distant, ou NULL si le socket est connecté.

port

Cet argument ne s'applique qu'aux sockets AF_INET et AF_INET6, et spécifie le port distant depuis lequel les données sont reçues. Si la socket est connectée, port vaudra NULL.

Valeurs de retour

socket_recvfrom() retourne le nombre d'octets reçus, ou FALSE si une erreur survient. Le code erreur actuel peut être retrouvé en appelant la fonction socket_last_error(). Ce code erreur peut être passé à la fonction socket_strerror() afin de récupérer une explication textuelle de l'erreur.

Exemples

Exemple #1 Exemple avec socket_recvfrom()

<?php
error_reporting(E_ALL | E_STRICT);

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 1223);

$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);

echo "Réception de $buf depuis l'adresse distant $from et du port distant $port" . PHP_EOL;
?>

Cet exemple initialise un socket UDP sur le port 1223 de l'adresse 127.0.0.1 et affiche au moins 12 caractères reçus depuis l'hôte distant.

Historique

Version | Description
4.3.0 | socket_recvfrom() est maintenant compatible avec les données binaires.

Voir aussi

  • socket_recv() - Reçoit des données d'un socket connecté
  • socket_send() - Envoie des données à un socket connecté
  • socket_sendto() - Envoie un message à un socket, qu'il soit connecté ou pas
  • socket_create() - Crée un socket


Lit un message

  • « socket_recvfrom
  • socket_select »
  • PHP Manual
  • Fonctions sur les sockets
  • Lit un message

socket_recvmsg

(PHP 5 >= 5.5.0, PHP 7)

socket_recvmsg — Lit un message

Description

int socket_recvmsg ( resource $socket , string $message [, int $flags ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

socket

message

flags

Valeurs de retour

Voir aussi

  • socket_sendmsg() - Envoi un message
  • socket_cmsg_space() - Calcule la taille du buffer


Exécute l'appel système select() sur un tableau de sockets avec une durée d'expiration

  • « socket_recvmsg
  • socket_send »
  • PHP Manual
  • Fonctions sur les sockets
  • Exécute l'appel système select() sur un tableau de sockets avec une durée d'expiration

socket_select

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_select — Exécute l'appel système select() sur un tableau de sockets avec une durée d'expiration

Description

int socket_select ( array &$read , array &$write , array &$except , int $tv_sec [, int $tv_usec = 0 ] )

socket_select() accepte un tableau de sockets et attend qu'elles changent de statut. Ceux qui sont familiers avec les sockets de BSD reconnaîtront dans ces tableaux de sockets les jeux de pointeurs de fichiers. Trois tableaux indépendants de ressources de sockets sont surveillés.

Liste de paramètres

read

Les sockets listés dans le paramètre read seront surveillés en lecture : pour savoir quand ils sont disponibles en lecture (plus précisément, si une lecture ne va pas bloquer, en particulier, une ressource de socket a déjà atteint une fin de fichier, auquel cas socket_read() retournera une chaîne de taille zéro).

write

Les sockets listés dans write seront surveillés en écriture : pour voir si une écriture ne va pas bloquer.

except

Les sockets listés dans except seront surveillés pour leurs exceptions.

tv_sec

Les paramètres tv_sec et tv_usec ensembles forment le paramètre timeout (durée de vie). Le timeout est la durée maximale de temps avant que socket_select() ne se termine. tv_sec peut être zéro, ce qui fera que socket_select() retournera immédiatement. C'est très pratique pour faire du polling (sondage). Si tv_sec est NULL (pas de timeout), socket_select() peut se bloquer indéfiniment.

tv_usec

Avertissement

En sortie de fonction, les tableaux sont modifiées pour indiquer quels sockets ont changé d'état.

Vous n'avez pas besoin de passer tous les tableaux à socket_select(). Vous pouvez les omettre, ou utiliser un tableau vide, ou encore NULL à la place. N'oubliez pas que ces tableaux sont passés par référence et seront modifiés par socket_select().

Note:

À cause d'une limitation du moteur Zend actuel, il n'est pas possible de passer une constante comme NULL directement comme paramètre à cette fonction, qui attend une valeur par référence. À la place, utilisez un tableau temporaire ou une expression dont le membre de gauche est une variable temporaire :

Exemple #1 Passer NULL à socket_select()

<?php
$e = NULL;
socket_select($r, $w, $e, 0);
?>

Valeurs de retour

En cas de succès, socket_select() retourne le nombre de sockets contenues dans les tableaux modifiés. Ce nombre peut être zéro si la durée maximale d'attente a été atteinte. En cas d'erreur, FALSE est retourné. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error().

Note:

Assurez-vous bien d'utiliser l'opérateur === lorsque vous vérifiez les erreurs. Étant donnée que socket_select() peut retourner 0, la comparaison avec FALSE via == donnerait TRUE :

Exemple #2 Analyser le résultat de socket_select()

<?php
$e = NULL;
if (false === socket_select($r, $w, $e, 0)) {
    echo "socket_select() a échoué. Raison : " .
        socket_strerror(socket_last_error()) . "\n";
}
?>

Exemples

Exemple #3 Exemple avec socket_select()

<?php
/* Prépare le tableau read (socket surveillées en lecture) */
$read   = array($socket1, $socket2);
$write  = NULL;
$except = NULL;
$num_changed_sockets = socket_select($read, $write, $except, 0);

if ($num_changed_sockets === false) {
  /* Gestion des erreurs */
} else if ($num_changed_sockets > 0) {
  /* Au moins une des sockets a été modifiée */
}
?>

Notes

Note:

Méfiez-vous des implémentations de sockets, qui doivent être manipulées avec délicatesse. Quelques règles de base :

  • Vous devez toujours essayer d'utiliser socket_select() sans timeout. Votre programme ne devrait avoir rien à faire si il n'y a pas de données disponibles. Le code qui dépend d'un timeout est généralement peu portable, et difficile à déboguer.
  • Un socket ne doit pas être ajouté à l'un des tableaux en paramètre, si vous ne souhaitez pas vérifier le résultat après l'appel à socket_select(). Après le retour de socket_select(), tous les sockets dans tous les tableaux doivent être vérifiés. Tout socket qui est disponible en écriture ou en lecture doit être utilisé pour écrire ou lire.
  • Si vous écrivez ou lisez avec un socket retourné dans un tableau, soyez conscient qu'il ne pourra pas écrire ou lire toutes les données que vous demandez. Soyez prêt à ne pouvoir lire qu'un seul octet.
  • Il est commun à la plupart des implémentations de socket que la seule exception interceptée par les sockets dans le tableau except soit le cas des données hors limites, reçues par un socket.

Voir aussi

  • socket_read() - Lit des données d'un socket
  • socket_write() - Écrit dans un socket
  • socket_last_error() - Lit la dernière erreur générée par un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur


Envoie des données à un socket connecté

  • « socket_select
  • socket_sendmsg »
  • PHP Manual
  • Fonctions sur les sockets
  • Envoie des données à un socket connecté

socket_send

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_send — Envoie des données à un socket connecté

Description

int socket_send ( resource $socket , string $buf , int $len , int $flags )

La fonction socket_send() envoie len octets au socket socket depuis le buffer buf.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

buf

Un buffer contenant les données qui seront envoyées sur l'hôte distant.

len

Le nombre d'octets qui doivent être envoyés à l'hôte distant depuis le buffer buf.

flags

La valeur du paramètre flags peut être une combinaison des drapeaux suivants, joints par un OU binaire (|).

Valeurs possibles pour flags
MSG_OOB | Traite les données OOB (out-of-band).
MSG_EOR | Indique un marqueur d'enregistrement. Les données envoyées complètent l'enregistrement.
MSG_EOF | Termine l'envoi via le socket et inclue une notification appropriée à la fin des données envoyées. Les données envoyées complètent la transaction.
MSG_DONTROUTE | Ignore le routage, utilise une interface directe.

Valeurs de retour

Retourne le nombre d'octets envoyés, ou FALSE si une erreur survient.

Voir aussi

  • socket_sendto() - Envoie un message à un socket, qu'il soit connecté ou pas


Envoi un message

  • « socket_send
  • socket_sendto »
  • PHP Manual
  • Fonctions sur les sockets
  • Envoi un message

socket_sendmsg

(PHP 5 >= 5.5.0, PHP 7)

socket_sendmsg — Envoi un message

Description

int socket_sendmsg ( resource $socket , array $message , int $flags )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

socket

message

flags

Valeurs de retour

Voir aussi

  • socket_recvmsg() - Lit un message
  • socket_cmsg_space() - Calcule la taille du buffer


Envoie un message à un socket, qu'il soit connecté ou pas

  • « socket_sendmsg
  • socket_set_block »
  • PHP Manual
  • Fonctions sur les sockets
  • Envoie un message à un socket, qu'il soit connecté ou pas

socket_sendto

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_sendto — Envoie un message à un socket, qu'il soit connecté ou pas

Description

int socket_sendto ( resource $socket , string $buf , int $len , int $flags , string $addr [, int $port = 0 ] )

socket_sendto() envoie len octets issus du buffer buf via le socket socket, vers le port port, à l'adresse addr.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

buf

Les données à envoyer seront prises depuis le buffer buf.

len

len octets depuis buf doivent être envoyés.

flags

Peut être une combinaison des drapeaux suivants, joints par un OU binaire (|).

Valeurs possibles pour flags
MSG_OOB | Traite les données OOB (out-of-band).
MSG_EOR | Indique un marqueur d'enregistrement. Les données envoyées complètent l'enregistrement.
MSG_EOF | Termine l'envoi via le socket et inclue une notification appropriée à la fin des données envoyées. Les données envoyées complètent la transaction.
MSG_DONTROUTE | Ignore le routage, utilise une interface directe.

addr

L'adresse IP de l'hôte distant.

port

port est le numéro de port sur lequel les données doivent être envoyées.

Valeurs de retour

socket_sendto() retourne le nombre d'octets envoyés sur l'hôte distant ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec socket_sendto()

<?php
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);

$msg = "Ping !";
$len = strlen($msg);

socket_sendto($sock, $msg, $len, 0, '127.0.0.1', 1223);
socket_close($sock);
?>

Voir aussi

  • socket_send() - Envoie des données à un socket connecté


Met le socket en mode bloquant

  • « socket_sendto
  • socket_set_nonblock »
  • PHP Manual
  • Fonctions sur les sockets
  • Met le socket en mode bloquant

socket_set_block

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

socket_set_block — Met le socket en mode bloquant

Description

bool socket_set_block ( resource $socket )

socket_set_block() supprime l'option O_NONBLOCK de le socket spécifié par socket.

Lorsqu'une opération (e.g. réception, envoie, connexion, acceptation, ...) est effectuée sur un socket non-bloquant, le script ne se met pas en pause tant qu'elle reçoit un signal. Au lieu de cela, si l'opération doit résulter en un blocage, la fonction appelée échouera.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec socket_set_block()

<?php
$socket = socket_create_listen(1223);
socket_set_block($socket);

socket_accept($socket);
?>

Cet exemple crée un socket écoutant toutes les interfaces du port 1223 et définit le socket en mode O_BLOCK. socket_accept() patientera tant qu'il y aura une connexion à accepter.

Voir aussi

  • socket_set_nonblock() - Sélectionne le mode non bloquant d'un pointeur de fichier
  • socket_set_option() - Modifie les options de socket


Sélectionne le mode non bloquant d'un pointeur de fichier

  • « socket_set_block
  • socket_set_option »
  • PHP Manual
  • Fonctions sur les sockets
  • Sélectionne le mode non bloquant d'un pointeur de fichier

socket_set_nonblock

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_set_nonblock — Sélectionne le mode non bloquant d'un pointeur de fichier

Description

bool socket_set_nonblock ( resource $socket )

La fonction socket_set_nonblock() configure l'option O_NONBLOCK pour le socket spécifié par le paramètre socket.

Lorsqu'une opération (e.g. réception, envoie, connexion, acceptation, ...) est effectuée sur un socket non-bloquant, le script ne se met pas en pause tant qu'elle reçoit un signal. Au lieu de cela, si l'opération doit résulter en un blocage, la fonction appelée échouera.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec socket_set_nonblock()

<?php
$socket = socket_create_listen(1223);
socket_set_nonblock($socket);

socket_accept($socket);
?>

Cet exemple crée un socket écoutant toutes les interfaces sur port 1223 et définit le socket en mode O_NONBLOCK. socket_accept() échouera immédiatement s'il y a une connexion en attente exactement à ce moment là.

Voir aussi

  • socket_set_block() - Met le socket en mode bloquant
  • socket_set_option() - Modifie les options de socket
  • stream_set_blocking() - Configure le mode bloquant d'un flux


Modifie les options de socket

  • « socket_set_nonblock
  • socket_setopt »
  • PHP Manual
  • Fonctions sur les sockets
  • Modifie les options de socket

socket_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

socket_set_option — Modifie les options de socket

Description

bool socket_set_option ( resource $socket , int $level , int $optname , mixed $optval )

socket_set_option() configure l'option spécifiée par optname, au niveau de protocole level à la valeur pointée par optval pour le socket spécifié par socket.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

level

Le paramètre level spécifie la couche du protocole de l'option. Par exemple, pour modifier une option de la couche socket, un niveau égal à SOL_SOCKET va être utilisé. Les autres niveaux, comme TCP, peuvent être utilisés en spécifiant un numéro de protocole pour ce niveau. Les numéros de protocoles peuvent être utilisés en utilisant la fonction getprotobyname().

optname

Les options disponibles sont les mêmes que pour la fonction socket_get_option().

optval

La valeur de l'option.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec socket_set_option()

<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!is_resource($socket)) {
    echo 'Impossible de créer le socket : '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo 'Impossible de définir l\'option du socket : '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_bind($socket, '127.0.0.1', 1223)) {
    echo 'Impossible de lier le socket : '. socket_strerror(socket_last_error()) . PHP_EOL;
}

$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);

if ($rval === false) {
    echo 'Impossible de récupérer l\'option du socket : '. socket_strerror(socket_last_error()) . PHP_EOL;
} else if ($rval !== 0) {
    echo 'SO_REUSEADDR est défini sur le socket !' . PHP_EOL;
}
?>

Voir aussi

  • socket_create() - Crée un socket
  • socket_bind() - Lie un nom à un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur
  • socket_last_error() - Lit la dernière erreur générée par un socket
  • socket_get_option() - Lit les options du socket


Alias de socket_set_option

  • « socket_set_option
  • socket_shutdown »
  • PHP Manual
  • Fonctions sur les sockets
  • Alias de socket_set_option

socket_setopt

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_setopt — Alias de socket_set_option()

Description

Cette fonction est un alias de : socket_set_option().


Éteint un socket en lecture et/ou écriture

  • « socket_setopt
  • socket_strerror »
  • PHP Manual
  • Fonctions sur les sockets
  • Éteint un socket en lecture et/ou écriture

socket_shutdown

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_shutdown — Éteint un socket en lecture et/ou écriture

Description

bool socket_shutdown ( resource $socket [, int $how = 2 ] )

socket_shutdown() vous permet d'empêcher les données entrantes ou sortantes ou les deux (par défaut) d'être émises via le socket socket.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

how

La valeur du paramètre how peut être une des valeurs suivantes :

Valeurs possibles pour how
0 | Empêche la lecture du socket
1 | Empêche l'écriture du socket
2 | Empêche l'écriture et la lecture du socket

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne une chaîne décrivant un message d'erreur

  • « socket_shutdown
  • socket_write »
  • PHP Manual
  • Fonctions sur les sockets
  • Retourne une chaîne décrivant un message d'erreur

socket_strerror

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_strerror — Retourne une chaîne décrivant un message d'erreur

Description

string socket_strerror ( int $errno )

socket_strerror() prend un code d'erreur comme paramètre errno. Cette valeur est souvent retournée par la fonction socket_last_error(). La fonction retourne le message d'erreur correspondant.

Note:

Bien que les messages d'erreur générés par l'extension socket soient en anglais, le système gérant les messages de cette fonction dépend de la locale courante (LC_MESSAGES).

Liste de paramètres

errno

Une numéro d'erreur de socket valide, comme produit par la fonction socket_last_error().

Valeurs de retour

Retourne le message d'erreur associé avec le paramètre errno.

Exemples

Exemple #1 Exemple avec socket_strerror()

<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
   echo "socket_create() a échoué : raison : " . socket_strerror(socket_last_error()) . "\n";
}

if (false == (@socket_bind($socket, '127.0.0.1', 80))) {
   echo "socket_bind() a échoué : raison : " . socket_strerror(socket_last_error($socket)) . "\n";
}
?>

L'affichage attendu pour l'exemple du dessus (en supposant que vous essayer d'exécuter le script sans les droits Administrateur) :

socket_bind() a échoué : raison : Permission denied

Voir aussi

  • socket_accept() - Accepte une connexion sur un socket
  • socket_bind() - Lie un nom à un socket
  • socket_connect() - Crée une connexion sur un socket
  • socket_listen() - Attend une connexion sur un socket
  • socket_create() - Crée un socket


Écrit dans un socket

  • « socket_strerror
  • SSH2 »
  • PHP Manual
  • Fonctions sur les sockets
  • Écrit dans un socket

socket_write

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_write — Écrit dans un socket

Description

int socket_write ( resource $socket , string $buffer [, int $length ] )

socket_write() écrit dans le socket socket les données du buffer buffer.

Liste de paramètres

socket

buffer

Le buffer à écrire.

length

Le paramètre optionnel length peut spécifier explicitement la taille des données qui doivent être écrites. Si cette longueur est plus grande que la taille du buffer, elle sera ramenée automatiquement à la taille du buffer lui-même.

Valeurs de retour

socket_write() retourne le nombre d'octets qui ont pu être écrits dans le socket ou FALSE si une erreur survient. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur, humainement lisible.

Note:

Il est parfaitement valide pour socket_write() de retourner zéro, ce qui signifie qu'aucun octet n'a été écrit. Soyez bien sûr d'utiliser l'opérateur === pour comparer le retour de la fonction avec FALSE, et détecter un cas d'erreur.

Notes

Note:

socket_write() n'écrit pas nécessairement tous les octets du buffer fourni. Il est valide que, suivant certaines configuration de buffer réseau, seulement une certaine quantité de données, même un octet, soit écrit, y compris si votre buffer est plus grand. Vous devez alors vous assurer que vous n'avez pas oublié de transmettre le reste de vos données.

Voir aussi

  • socket_accept() - Accepte une connexion sur un socket
  • socket_bind() - Lie un nom à un socket
  • socket_connect() - Crée une connexion sur un socket
  • socket_listen() - Attend une connexion sur un socket
  • socket_read() - Lit des données d'un socket
  • socket_strerror() - Retourne une chaîne décrivant un message d'erreur


Fonctions Shell2 sécurisé

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Shell2
    • ssh2_auth_agent — Authentification SSH en utilisant l'agent ssh
    • ssh2_auth_hostbased_file — Identification en utilisant une clé d'hôte publique
    • ssh2_auth_none — Identification en tant que "none"
    • ssh2_auth_password — Identification via SSH en utilisant un mot de passe en clair
    • ssh2_auth_pubkey_file — Identification en utilisant une clé publique
    • ssh2_connect — Connexion à un serveur SSH
    • ssh2_exec — Exécute une commande sur un serveur distant
    • ssh2_fetch_stream — Parcours un flux étendu de données
    • ssh2_fingerprint — Récupère l'empreinte d'un serveur distant
    • ssh2_methods_negotiated — Retourne une liste de méthodes négociées
    • ssh2_publickey_add — Ajoute une clé publique autorisée
    • ssh2_publickey_init — Initialise un Publickey Subsystem (sous-système de clé publique)
    • ssh2_publickey_list — Liste les clés publiques actuellement autorisées
    • ssh2_publickey_remove — Supprime un clé publique autorisée
    • ssh2_scp_recv — Demande un fichier via SCP
    • ssh2_scp_send — Envoie un fichier via SCP
    • ssh2_sftp_chmod — Modifie le mode d'un fichier
    • ssh2_sftp_lstat — Statue un lien symbolique
    • ssh2_sftp_mkdir — Crée un dossier
    • ssh2_sftp_readlink — Retourne la cible d'un lien symbolique
    • ssh2_sftp_realpath — Résout le chemin réel d'un chemin fourni
    • ssh2_sftp_rename — Renomme un fichier distant
    • ssh2_sftp_rmdir — Efface un dossier
    • ssh2_sftp_stat — Statue un fichier sur un système de fichiers distant
    • ssh2_sftp_symlink — Crée un lien symbolique
    • ssh2_sftp_unlink — Efface un fichier
    • ssh2_sftp — Initialise un sous-système SFTP
    • ssh2_shell — Demande un shell interactif
    • ssh2_tunnel — Ouvre un tunnel à travers un serveur distant


Introduction

La liaison à la bibliothèque » libssh2 fournit un accès à des ressources (shell, exécution distante, tunneling, transfert de fichiers) sur une machine distante en utilisant un transport crypté sécurisé.


Pré-requis

Les bibliothèques » OpenSSL et » libssh2 sont nécessaires. Assurez-vous que les bibliothèques de développement sont installées ; typiquement, le nom du paquet est openssl-dev.

La version 1.2 ou supérieure de la bibliothèque libssh2 est requise, mais il est possible que les nouvelles versions de pecl/ssh2 puissent nécessiter des versions encore plus récentes (voir les notes de versions).

La fonction ssh2_auth_agent() ne sera disponible qu'avec libssh >= 1.2.3.

Le support de la fonction stream_set_timeout() pour les flux d'un canal ne sera disponible qu'avec libssh >= 1.2.9.

Libssh2 peut contenir deux versions : gcrypt ou openssl. Quelques distributions Linux compilent libssh2 avec la bibliothèque gcrypt, alors que d'autres utilisent openssl. Libssh2 comporte quelques bogues lorsqu'elle est compilée avec gcrypt, aussi, il est conseillé d'utiliser openssl.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ssh2.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SSH2_FINGERPRINT_MD5 (entier)
Flag permettant à la fonction ssh2_fingerprint() de demander l'empreinte de la clé de l'hôte en tant que hash MD5.
SSH2_FINGERPRINT_SHA1 (entier)
Flag permettant à la fonction ssh2_fingerprint() de demander l'empreinte de la clé de l'hôte en tant que hash SHA1.
SSH2_FINGERPRINT_HEX (entier)
Flag permettant à la fonction ssh2_fingerprint() de demander l'empreinte de la clé de l'hôte en tant que chaîne hexits.
SSH2_FINGERPRINT_RAW (entier)
Flag permettant à la fonction ssh2_fingerprint() de demander l'empreinte de la clé de l'hôte en tant que chaîne de caractères 8-bit.
SSH2_TERM_UNIT_CHARS (entier)
Flag spécifiant à la fonction ssh2_shell() que les paramètres width et height sont fournis sous la forme de taille de caractères.
SSH2_TERM_UNIT_PIXELS (entier)
Flag spécifiant à la fonction ssh2_shell() que les paramètres width et height sont fournis sous la forme de pixels.
SSH2_DEFAULT_TERM_WIDTH (entier)
Largeur par défaut du terminal demandé par la fonction ssh2_shell().
SSH2_DEFAULT_TERM_HEIGHT (entier)
Hauteur par défaut du terminal demandé par la fonction ssh2_shell().
SSH2_DEFAULT_TERM_UNIT (entier)
Unité par défaut du terminal demandé par la fonction ssh2_shell().
SSH2_STREAM_STDIO (entier)
Flag pour que la fonction ssh2_fetch_stream() demande un sous-canal STDIO.
SSH2_STREAM_STDERR (entier)
Flag pour que la fonction ssh2_fetch_stream() demande un sous-canal STDERR.
SSH2_DEFAULT_TERMINAL (chaîne de caractères)
Type par défaut du terminal (e.g. "vt102", "ansi", "xterm", "vanilla") demandé par la fonction ssh2_shell().


Fonctions Shell2

Sommaire

  • ssh2_auth_agent — Authentification SSH en utilisant l'agent ssh
  • ssh2_auth_hostbased_file — Identification en utilisant une clé d'hôte publique
  • ssh2_auth_none — Identification en tant que "none"
  • ssh2_auth_password — Identification via SSH en utilisant un mot de passe en clair
  • ssh2_auth_pubkey_file — Identification en utilisant une clé publique
  • ssh2_connect — Connexion à un serveur SSH
  • ssh2_exec — Exécute une commande sur un serveur distant
  • ssh2_fetch_stream — Parcours un flux étendu de données
  • ssh2_fingerprint — Récupère l'empreinte d'un serveur distant
  • ssh2_methods_negotiated — Retourne une liste de méthodes négociées
  • ssh2_publickey_add — Ajoute une clé publique autorisée
  • ssh2_publickey_init — Initialise un Publickey Subsystem (sous-système de clé publique)
  • ssh2_publickey_list — Liste les clés publiques actuellement autorisées
  • ssh2_publickey_remove — Supprime un clé publique autorisée
  • ssh2_scp_recv — Demande un fichier via SCP
  • ssh2_scp_send — Envoie un fichier via SCP
  • ssh2_sftp_chmod — Modifie le mode d'un fichier
  • ssh2_sftp_lstat — Statue un lien symbolique
  • ssh2_sftp_mkdir — Crée un dossier
  • ssh2_sftp_readlink — Retourne la cible d'un lien symbolique
  • ssh2_sftp_realpath — Résout le chemin réel d'un chemin fourni
  • ssh2_sftp_rename — Renomme un fichier distant
  • ssh2_sftp_rmdir — Efface un dossier
  • ssh2_sftp_stat — Statue un fichier sur un système de fichiers distant
  • ssh2_sftp_symlink — Crée un lien symbolique
  • ssh2_sftp_unlink — Efface un fichier
  • ssh2_sftp — Initialise un sous-système SFTP
  • ssh2_shell — Demande un shell interactif
  • ssh2_tunnel — Ouvre un tunnel à travers un serveur distant


Authentification SSH en utilisant l'agent ssh

  • « Fonctions Shell2
  • ssh2_auth_hostbased_file »
  • PHP Manual
  • Fonctions Shell2
  • Authentification SSH en utilisant l'agent ssh

ssh2_auth_agent

(PECL ssh2 >= 0.12)

ssh2_auth_agent — Authentification SSH en utilisant l'agent ssh

Description

bool ssh2_auth_agent ( resource $session , string $username )

Authentification SSH en utilisant l'agent ssh.

Note: La fonction ssh2_auth_agent() n'est disponible que lorsque l'extension ssh2 a été compilée avec libssh >= 1.2.3.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis un appel à la fonction ssh2_connect().

username

Nom d'utilisateur distant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Authentification en utilisant un agent ssh

<?php
$connection = ssh2_connect('shell.example.com', 22);

if (ssh2_auth_agent($connection, 'username')) {
  echo "Authentification réussie !\n";
} else {
  die('Authentification échouée...');
}
?>


Identification en utilisant une clé d'hôte publique

  • « ssh2_auth_agent
  • ssh2_auth_none »
  • PHP Manual
  • Fonctions Shell2
  • Identification en utilisant une clé d'hôte publique

ssh2_auth_hostbased_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_hostbased_file — Identification en utilisant une clé d'hôte publique

Description

bool ssh2_auth_hostbased_file ( resource $session , string $username , string $hostname , string $pubkeyfile , string $privkeyfile [, string $passphrase [, string $local_username ]] )

Identification en utilisant une clé d'hôte publique lue depuis un fichier.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu via la fonction ssh2_connect().

username

hostname

pubkeyfile

privkeyfile

passphrase

Si privkeyfile est chiffré (et il doit l'être), la phrase secrète doit être fournie.

local_username

Si local_username est omis, alors la valeur de username sera utilisée pour cela.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Identification en utilisant une clé d'hôte publique

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_hostbased_file($connection, 'remoteusername', 'myhost.example.com',
                             '/usr/local/etc/hostkey_rsa.pub',
                             '/usr/local/etc/hostkey_rsa', 'secret',
                             'localusername')) {
  echo "Identification en utilisant une clé d'hôte publique avec succès\n";
} else {
  die('Echec de l\'identification en utilisant une clé d\'hôte publique avec succès');
}
?>

Notes

Note:

ssh2_auth_hostbased_file() nécessite libssh2 >= 0.7 et PHP/SSH2 >= 0.7.


Identification en tant que "none"

  • « ssh2_auth_hostbased_file
  • ssh2_auth_password »
  • PHP Manual
  • Fonctions Shell2
  • Identification en tant que "none"

ssh2_auth_none

(PECL ssh2 >= 0.9.0)

ssh2_auth_none — Identification en tant que "none"

Description

mixed ssh2_auth_none ( resource $session , string $username )

Tente une identification en tant que "none", qui, habituellement, échoue (et doit échouer). Mis à part l'échec, cette fonction doit retourner un tableau contenant les méthodes d'identification acceptées.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu avec la fonction ssh2_connect().

username

Nom d'utilisateur distant.

Valeurs de retour

Retourne TRUE si le serveur accepte "none" comme méthode d'identification, ou un tableau de méthodes d'identification acceptées en cas d'échec.

Exemples

Exemple #1 Récupération de la liste des méthodes d'identification

<?php
$connection = ssh2_connect('shell.example.com', 22);

$auth_methods = ssh2_auth_none($connection, 'user');

if (in_array('password', $auth_methods)) {
  echo "Le serveur supporte l'identification à mot de passe\n";
}
?>


Identification via SSH en utilisant un mot de passe en clair

  • « ssh2_auth_none
  • ssh2_auth_pubkey_file »
  • PHP Manual
  • Fonctions Shell2
  • Identification via SSH en utilisant un mot de passe en clair

ssh2_auth_password

(PECL ssh2 >= 0.9.0)

ssh2_auth_password — Identification via SSH en utilisant un mot de passe en clair

Description

bool ssh2_auth_password ( resource $session , string $username , string $password )

Identification via SSH en utilisant un mot de passe en clair. Depuis la version 0.12, cette fonction supporte également la méthode keyboard_interactive.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

username

Nom d'utilisateur distant.

password

Mot de passe pour l'utilisateur username.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Identification avec un mot de passe

<?php
$connection = ssh2_connect('shell.example.com', 22);

if (ssh2_auth_password($connection, 'username', 'secret')) {
  echo "Identification réussi !\n";
} else {
  die('Echec de l\'identification...');
}
?>


Identification en utilisant une clé publique

  • « ssh2_auth_password
  • ssh2_connect »
  • PHP Manual
  • Fonctions Shell2
  • Identification en utilisant une clé publique

ssh2_auth_pubkey_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_pubkey_file — Identification en utilisant une clé publique

Description

bool ssh2_auth_pubkey_file ( resource $session , string $username , string $pubkeyfile , string $privkeyfile [, string $passphrase ] )

Identification en utilisant une clé publique, lue depuis un fichier.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

username

pubkeyfile

Le fichier contenant la clé publique doit être au format OpenSSH. Il doit ressembler à ceci :

ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110

privkeyfile

La clé privée doit être au format PEM

passphrase

Si privkeyfile est chiffré (et doit l'être), la passe-phrase doit être fournie.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Identification en utilisant une clé publique

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_pubkey_file($connection, 'username',
                          '/home/username/.ssh/id_rsa.pub',
                          '/home/username/.ssh/id_rsa', 'secret')) {
  echo "Identification réussie en utilisant une clé publique\n";
} else {
  die('Echec de l\'identification en utilisant une clé publique');
}
?>

Notes

Note:

La bibliothèque libssh sous-jacente ne supporte pas très proprement les authentifications partielles. C'est à dire que si vous devez fournir à la fois une clé publique et un mot de passe alors cela apparaitra comme si la fonction est en erreur. Dans ce cas particulier, une erreur sur cet appel peut juste signifier que l'authentification n'est pas encore terminée. Vous devez ignorer cette erreur et continuer avec l'appel ssh2_auth_password() pour terminer l'authentification.


Connexion à un serveur SSH

  • « ssh2_auth_pubkey_file
  • ssh2_exec »
  • PHP Manual
  • Fonctions Shell2
  • Connexion à un serveur SSH

ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connect — Connexion à un serveur SSH

Description

resource ssh2_connect ( string $host [, int $port = 22 [, array $methods [, array $callbacks ]]] )

Établit une connexion à un serveur SSH distant.

Une fois connecté, le client doit vérifier la clé hôte du serveur en utilisant la fonction ssh2_fingerprint(), puis s'identifier en utilisant soit un mot de passe, soit une clé publique.

Liste de paramètres

host

port

methods

methods doit être un tableau associatif avec plus de quatre paramètres, comme décrit ci-dessous. methods peut contenir n'importe quel ou tous les paramètres suivants.

Options de connexion SSH
Index | Signification | Valeurs supportées *
kex | La liste des méthodes d'échange à annoncer, séparées par une virgule, par ordre de préférence. | diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, et diffie-hellman-group-exchange-sha1
hostkey | La liste des méthodes de clés d'hôte à annoncer, séparées par une virgule, par ordre de préférence. | ssh-rsa et ssh-dss
client_to_server | Tableau associatif contenant les codes des méthodes de chiffrement, de compression et de messages d'identification (MAC) préférés pour l'envoi des messages depuis le client vers le serveur.
server_to_client | Tableau associatif contenant les codes des méthodes de chiffrement, de compression et de messages d'identification (MAC) préférés pour l'envoi des messages depuis le serveur vers le client.

* - Les valeurs supportées sont dépendantes des méthodes supportées par la bibliothèque. Voir la documentation » libssh2 pour plus d'informations.

client_to_server et server_to_client doivent être un tableau associatif avec n'importe quel ou tous les paramètres suivants.
Index | Signification | Valeurs supportées *
crypt | Liste des méthodes de chiffrement à annoncer, séparées par une virgule, par ordre de préférence. | rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, et none**
comp | Liste des méthodes de compression à annoncer, séparées par une virgule, par ordre de préférence. | zlib et none
mac | Liste des méthodes MAC à annoncer, séparées par une virgule, par ordre de préférence. | hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com, et none**

Note: Chiffrement et méthode MAC "none"

Pour des raisons de sécurité, none est désactivé par la bibliothèque » libssh2 à moins qu'il soit activé explicitement durant la compilation en utilisant les options appropriées du ./configure. Voir la documentation sur la bibliothèque pour plus d'informations.

callbacks

callbackss doit être un tableau associatif contenant n'importe quel ou tous les paramètres suivants.

Paramètres de rappel
Index | Signification | Prototype
ignore | Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_IGNORE est reçu | void ignore_cb($message)
debug | Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_DEBUG est reçu | void debug_cb($message, $language, $always_display)
macerror | Nom de la fonction à appeler lorsqu'un paquet est reçu mais que le code message d'identification échoue. Si le la fonction de rappel retourne TRUE, l'erreur sera ignorée, sinon, la connexion se terminera. | bool macerror_cb($packet)
disconnect | Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_DISCONNECT est reçu | void disconnect_cb($reason, $message, $language)

Valeurs de retour

Retourne une ressource en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ssh2_connect()

Ouverture d'une connexion forçant 3des-cbc lors de l'envoi de paquets, n'importe quel chiffrement AES lors de la réception de paquets, aucune compression dans les deux directions, et un échange de clés Group1.

<?php
/* Notification à l'utilisateur si le serveur termine la connexion */
function my_ssh_disconnect($reason, $message, $language) {
  printf("Server disconnected with reason code [%d] and message: %s\n",
         $reason, $message);
}

$methods = array(
  'kex' => 'diffie-hellman-group1-sha1',
  'client_to_server' => array(
  'crypt'            => '3des-cbc',
  'comp'             => 'none'),
  'server_to_client' => array(
  'crypt'            => 'aes256-cbc,aes192-cbc,aes128-cbc',
  'comp'             => 'none'));

$callbacks = array('disconnect' => 'my_ssh_disconnect');

$connection = ssh2_connect('shell.example.com', 22, $methods, $callbacks);
if (!$connection) die('Échec de la connexion');
?>

Voir aussi

  • ssh2_fingerprint() - Récupère l'empreinte d'un serveur distant
  • ssh2_auth_none() - Identification en tant que "none"
  • ssh2_auth_password() - Identification via SSH en utilisant un mot de passe en clair
  • ssh2_auth_pubkey_file() - Identification en utilisant une clé publique


Exécute une commande sur un serveur distant

  • « ssh2_connect
  • ssh2_fetch_stream »
  • PHP Manual
  • Fonctions Shell2
  • Exécute une commande sur un serveur distant

ssh2_exec

(PECL ssh2 >= 0.9.0)

ssh2_exec — Exécute une commande sur un serveur distant

Description

resource ssh2_exec ( resource $session , string $command [, string $pty [, array $env [, int $width = 80 [, int $height = 25 [, int $width_height_type = SSH2_TERM_UNIT_CHARS ]]]]] )

Exécute une commande sur un serveur distant.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

command

pty

env

env peut être passé sous la forme d'un tableau associatif de paires nom/valeur, à définir dans l'environnement cible.

width

Largeur du terminal virtuel.

height

Hauteur du terminal virtuel.

width_height_type

width_height_type peut valoir SSH2_TERM_UNIT_CHARS ou SSH2_TERM_UNIT_PIXELS.

Valeurs de retour

Retourne un flux en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exécution d'une commande

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_exec($connection, '/usr/local/bin/php -i');
?>

Voir aussi

  • ssh2_connect() - Connexion à un serveur SSH
  • ssh2_shell() - Demande un shell interactif
  • ssh2_tunnel() - Ouvre un tunnel à travers un serveur distant


Parcours un flux étendu de données

  • « ssh2_exec
  • ssh2_fingerprint »
  • PHP Manual
  • Fonctions Shell2
  • Parcours un flux étendu de données

ssh2_fetch_stream

(PECL ssh2 >= 0.9.0)

ssh2_fetch_stream — Parcours un flux étendu de données

Description

resource ssh2_fetch_stream ( resource $channel , int $streamid )

Parcourt un sous-flux alternatif associé à un flux de canal SSH2. Le protocole SSH2 définie actuellement un seul sous-flux, STDERR, qui a un identifiant de sous-flux de SSH2_STREAM_STDERR (défini à 1).

Liste de paramètres

channel

streamid

Un canal de flux SSH2.

Valeurs de retour

Retourne la ressource, représentant le flux demandé.

Exemples

Exemple #1 Ouverture d'un shell et récupération du flux stderr qui lui est associé

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stdio_stream = ssh2_shell($connection);
$stderr_stream = ssh2_fetch_stream($stdio_stream, SSH2_STREAM_STDERR);
?>

Voir aussi

  • ssh2_shell() - Demande un shell interactif
  • ssh2_exec() - Exécute une commande sur un serveur distant
  • ssh2_connect() - Connexion à un serveur SSH


Récupère l'empreinte d'un serveur distant

  • « ssh2_fetch_stream
  • ssh2_methods_negotiated »
  • PHP Manual
  • Fonctions Shell2
  • Récupère l'empreinte d'un serveur distant

ssh2_fingerprint

(PECL ssh2 >= 0.9.0)

ssh2_fingerprint — Récupère l'empreinte d'un serveur distant

Description

string ssh2_fingerprint ( resource $session [, int $flags = SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX ] )

Récupère l'empreinte d'un serveur distant.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

flags

flags peut être soit SSH2_FINGERPRINT_MD5 ou SSH2_FINGERPRINT_SHA1 associé logiquement avec SSH2_FINGERPRINT_HEX ou SSH2_FINGERPRINT_RAW.

Valeurs de retour

Retourne l'empreinte, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Comparaison d'une empreinte à une valeur connue

<?php
$known_host = '6F89C2F0A719B30CC38ABDF90755F2E4';

$connection = ssh2_connect('shell.example.com', 22);

$fingerprint = ssh2_fingerprint($connection,
               SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX);

if ($fingerprint != $known_host) {
  die("HOSTKEY MISMATCH!\n" .
      "Attaque Man-In-The-Middle possible ?");
}
?>


Retourne une liste de méthodes négociées

  • « ssh2_fingerprint
  • ssh2_publickey_add »
  • PHP Manual
  • Fonctions Shell2
  • Retourne une liste de méthodes négociées

ssh2_methods_negotiated

(PECL ssh2 >= 0.9.0)

ssh2_methods_negotiated — Retourne une liste de méthodes négociées

Description

array ssh2_methods_negotiated ( resource $session )

Retourne une liste de méthodes négociées.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

Valeurs de retour

Exemples

Exemple #1 Détermine quelles méthodes ont été négociées

<?php
$connection = ssh2_connect('shell.example.com', 22);
$methods = ssh2_methods_negotiated($connection);

echo "Clé de cryptage négociée en utilisant : {$methods['kex']}\n";
echo "Identification du serveur en utilisant {$methods['hostkey']}";
echo "Empreinte : " . ssh2_fingerprint($connection) . "\n";

echo "Méthodes de transmission des paquets client vers serveur :\n";
echo "\tCrypt: {$methods['client_to_server']['crypt']}\n";
echo "\tComp: {$methods['client_to_server']['comp']}\n";
echo "\tMAC: {$methods['client_to_server']['mac']}\n";

echo "Méthodes de transmission des paquets serveur vers client :\n";
echo "\tCrypt: {$methods['server_to_client']['crypt']}\n";
echo "\tComp: {$methods['server_to_client']['comp']}\n";
echo "\tMAC: {$methods['server_to_client']['mac']}\n";

?>

Voir aussi

  • ssh2_connect() - Connexion à un serveur SSH


Ajoute une clé publique autorisée

  • « ssh2_methods_negotiated
  • ssh2_publickey_init »
  • PHP Manual
  • Fonctions Shell2
  • Ajoute une clé publique autorisée

ssh2_publickey_add

(PECL ssh2 >= 0.10)

ssh2_publickey_add — Ajoute une clé publique autorisée

Description

bool ssh2_publickey_add ( resource $pkey , string $algoname , string $blob [, bool $overwrite = false [, array $attributes ]] )

Note: Le publickey subsystem est utilisé pour gérer les clés publiques sur un serveur sur lequel le client est déjà identifié. Pour s'identifier à un system distant en utilisant l'identification par clé publique, utilisez la fonction ssh2_auth_pubkey_file() à la place.

Liste de paramètres

pkey

Ressource Publickey Subsystem créée par ssh2_publickey_init().

algoname

Algorithme de clé publique (exemple) : ssh-dss, ssh-rsa

blob

Blob de clé publique comme données binaires brutes

overwrite

Si la clé spécifiée existe déjà, devrait-elle être écrasée ?

attributes

Tableau associatif d'attributs pour assigner à cette clé publique. Référez-vous à ietf-secsh-publickey-subsystem pour une liste des attributs supportés. Pour marquer un attribut comme obligatoire, précédez son nom par un astérisque. Si le serveur n'est pas capable de supporter un attribut marqué comme obligatoire, il abandonnera le processus d'ajout.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout d'une clé publique avec ssh2_publickey_add()

<?php
$ssh2 = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($ssh2, 'jdoe', 'password');
$pkey = ssh2_publickey_init($ssh2);

$keyblob = base64_decode('
AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5PTrLRdjNONxXH1tVFGn0
Bd26BF0aCP9qyJRlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xj
zaLpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VEHYckxQ16CjSTibI5X
69GmnYC9PNqEYq/1TP+HF10=');

ssh2_publickey_add($pkey, 'ssh-rsa', $keyblob, false, array('comment'=>"John's Key"));
?>

Voir aussi

  • ssh2_publickey_init() - Initialise un Publickey Subsystem (sous-système de clé publique)
  • ssh2_publickey_remove() - Supprime un clé publique autorisée
  • ssh2_publickey_list() - Liste les clés publiques actuellement autorisées


Initialise un Publickey Subsystem (sous-système de clé publique)

  • « ssh2_publickey_add
  • ssh2_publickey_list »
  • PHP Manual
  • Fonctions Shell2
  • Initialise un Publickey Subsystem (sous-système de clé publique)

ssh2_publickey_init

(PECL ssh2 >= 0.10)

ssh2_publickey_init — Initialise un Publickey Subsystem (sous-système de clé publique)

Description

resource ssh2_publickey_init ( resource $session )

Demande le subsystem de la clé publique à partir d'un serveur SSH2 déjà connecté.

Le publickey subsystem permet à un client déjà connecté et identifié de gérer la liste des clés publiques autorisées enregistrée sur le serveur cible dans une manière d'implémentation agnostique. Si le serveur ne supporte pas le publickey subsystem, la fonction ssh2_publickey_init() retournera FALSE.

Liste de paramètres

session

Valeurs de retour

Retourne une ressource SSH2 Publickey Subsystem pour utiliser avec toutes les autres méthodes ssh2_publickey_*() ou FALSE si une erreur survient.

Notes

Note: Le publickey subsystem est utilisé pour gérer les clés publiques sur un serveur sur lequel le client est déjà identifié. Pour s'identifier à un system distant en utilisant l'identification par clé publique, utilisez la fonction ssh2_auth_pubkey_file() à la place.

Voir aussi

  • ssh2_publickey_add() - Ajoute une clé publique autorisée
  • ssh2_publickey_remove() - Supprime un clé publique autorisée
  • ssh2_publickey_list() - Liste les clés publiques actuellement autorisées


Liste les clés publiques actuellement autorisées

  • « ssh2_publickey_init
  • ssh2_publickey_remove »
  • PHP Manual
  • Fonctions Shell2
  • Liste les clés publiques actuellement autorisées

ssh2_publickey_list

(PECL ssh2 >= 0.10)

ssh2_publickey_list — Liste les clés publiques actuellement autorisées

Description

array ssh2_publickey_list ( resource $pkey )

Liste les clés publiques actuellement autorisées.

Liste de paramètres

pkey

Ressource Publickey Subsystem.

Valeurs de retour

Retourne un tableau de clés indexées numériquement, chacune d'elle est un tableau associatif contenant : nom, blob et éléments attrs.

Élément de clé publique
Clé Tableau | Signification
name | Nom de l'algorithme utilisé par cette clé publique, par exemple : ssh-dss ou ssh-rsa.
blob | Blob de clé publique comme données binaires brutes.
attrs | Attributs assignés à cette clé publique. L'attribut le plus commun et seulement celui supporté par la clé publique version 1 des serveurs est comment, qui peut être n'importe quelle forme de chaîne de caractères.

Exemples

Exemple #1 Liste des clés autorisées avec ssh2_publickey_list()

<?php
$ssh2 = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($ssh2, 'jdoe', 'secret');
$pkey = ssh2_publickey_init($ssh2);

$list = ssh2_publickey_list($pkey);

foreach($list as $key) {
  echo "Clé : {$key['name']}\n";
  echo "Blob : " . chunk_split(base64_encode($key['blob']), 40, "\n") . "\n";
  echo "Commentaire : {$key['attrs']['comment']}\n\n";
}
?>

L'exemple ci-dessus va afficher :

Clé : ssh-rsa
Blob : AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5P
TrLRdjNONxXH1tVFGn0Bd26BF0aCP9qyJRlvdJ3j
4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xjza
Lpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VE
HYckxQ16CjSTibI5X69GmnYC9PNqEYq/1TP+HF10
Commentaire : Clé de John

Clé : ssh-rsa
Blob : AAAAB3NzaHVt6VqSGd5C1yc2EAAAABIwA232dnJA
AIEA5HVt6VqSGd5PTrLRdjNONxX/1TP+HF1HVt6V
qSGd50H1tVFGn0BB3NzaC1yc2EAd26BF0aCP9qyJ
RlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26HVt6Vq
SGd5sDHwfL351xjzaLpipu\BGB3NzaC1yc2EA/1T
Commentaire : Clé d'Alice

Notes

Note: Le publickey subsystem est utilisé pour gérer les clés publiques sur un serveur sur lequel le client est déjà identifié. Pour s'identifier à un system distant en utilisant l'identification par clé publique, utilisez la fonction ssh2_auth_pubkey_file() à la place.

Voir aussi

  • ssh2_publickey_init() - Initialise un Publickey Subsystem (sous-système de clé publique)
  • ssh2_publickey_add() - Ajoute une clé publique autorisée
  • ssh2_publickey_remove() - Supprime un clé publique autorisée


Supprime un clé publique autorisée

  • « ssh2_publickey_list
  • ssh2_scp_recv »
  • PHP Manual
  • Fonctions Shell2
  • Supprime un clé publique autorisée

ssh2_publickey_remove

(PECL ssh2 >= 0.10)

ssh2_publickey_remove — Supprime un clé publique autorisée

Description

bool ssh2_publickey_remove ( resource $pkey , string $algoname , string $blob )

Supprime un clé publique autorisée.

Liste de paramètres

pkey

Ressource Publickey Subsystem

algoname

Algorithme de clé publique (exemple) : ssh-dss, ssh-rsa

blob

Blob de clé publique comme données binaires brutes

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Le publickey subsystem est utilisé pour gérer les clés publiques sur un serveur sur lequel le client est déjà identifié. Pour s'identifier à un system distant en utilisant l'identification par clé publique, utilisez la fonction ssh2_auth_pubkey_file() à la place.

Voir aussi

  • ssh2_publickey_init() - Initialise un Publickey Subsystem (sous-système de clé publique)
  • ssh2_publickey_add() - Ajoute une clé publique autorisée
  • ssh2_publickey_list() - Liste les clés publiques actuellement autorisées


Demande un fichier via SCP

  • « ssh2_publickey_remove
  • ssh2_scp_send »
  • PHP Manual
  • Fonctions Shell2
  • Demande un fichier via SCP

ssh2_scp_recv

(PECL ssh2 >= 0.9.0)

ssh2_scp_recv — Demande un fichier via SCP

Description

bool ssh2_scp_recv ( resource $session , string $remote_file , string $local_file )

Copie un fichier depuis un serveur distant vers le système de fichiers local.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

remote_file

Chemin vers le fichier distant.

local_file

Chemin vers le fichier local.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Téléchargement d'un fichier via SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_recv($connection, '/remote/filename', '/local/filename');
?>

Voir aussi

  • ssh2_scp_send() - Envoie un fichier via SCP
  • copy() - Copie un fichier


Envoie un fichier via SCP

  • « ssh2_scp_recv
  • ssh2_sftp_chmod »
  • PHP Manual
  • Fonctions Shell2
  • Envoie un fichier via SCP

ssh2_scp_send

(PECL ssh2 >= 0.9.0)

ssh2_scp_send — Envoie un fichier via SCP

Description

bool ssh2_scp_send ( resource $session , string $local_file , string $remote_file [, int $create_mode = 0644 ] )

Copie un fichier depuis le système de fichiers local vers un serveur distant.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

local_file

Chemin vers le fichier local.

remote_file

Chemin vers le fichier distant.

create_mode

Le fichier sera créé avec le mode spécifié par create_mode.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Chargement d'un fichier via SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>

Voir aussi

  • ssh2_scp_recv() - Demande un fichier via SCP
  • copy() - Copie un fichier


Modifie le mode d'un fichier

  • « ssh2_scp_send
  • ssh2_sftp_lstat »
  • PHP Manual
  • Fonctions Shell2
  • Modifie le mode d'un fichier

ssh2_sftp_chmod

(PECL ssh2 >= 0.12)

ssh2_sftp_chmod — Modifie le mode d'un fichier

Description

bool ssh2_sftp_chmod ( resource $sftp , string $filename , int $mode )

Tente de modifier le mode du fichier spécifié, en utilisant le mode fourni.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte avec la fonction ssh2_sftp().

filename

Chemin vers le fichier.

mode

Permissions sur le fichier. Voir la fonction chmod() pour plus de détails concernant ce paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'un dossier sur un serveur distant

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'nomUtilisateur', 'MotDePasse');
$sftp = ssh2_sftp($connection);

ssh2_sftp_chmod($sftp, '/dossier/fichier', 0755);
?>

Voir aussi

  • chmod() - Change le mode du fichier
  • ssh2_sftp() - Initialise un sous-système SFTP
  • ssh2_connect() - Connexion à un serveur SSH


Statue un lien symbolique

  • « ssh2_sftp_chmod
  • ssh2_sftp_mkdir »
  • PHP Manual
  • Fonctions Shell2
  • Statue un lien symbolique

ssh2_sftp_lstat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_lstat — Statue un lien symbolique

Description

array ssh2_sftp_lstat ( resource $sftp , string $path )

Statue un lien symbolique sur le système de fichiers distant sans suivre le lien.

Cette fonction est similaire à l'utilisation de la fonction lstat() avec le gestionnaire ssh2.sftp:// en PHP 5 et retourne les mêmes valeurs.

Liste de paramètres

sftp

path

Chemin vers le lien symbolique distant.

Valeurs de retour

Voir la documentation de la fonction stat() pour les détails concernant les valeurs retournées.

Exemples

Exemple #1 Statue un lien symbolique via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_lstat($sftp, '/path/to/symlink');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

Voir aussi

  • ssh2_sftp_stat() - Statue un fichier sur un système de fichiers distant
  • lstat() - Retourne les informations sur un fichier ou un lien symbolique
  • stat() - Renvoie les informations à propos d'un fichier


Crée un dossier

  • « ssh2_sftp_lstat
  • ssh2_sftp_readlink »
  • PHP Manual
  • Fonctions Shell2
  • Crée un dossier

ssh2_sftp_mkdir

(PECL ssh2 >= 0.9.0)

ssh2_sftp_mkdir — Crée un dossier

Description

bool ssh2_sftp_mkdir ( resource $sftp , string $dirname [, int $mode = 0777 [, bool $recursive = false ]] )

Crée un dossier sur le système de fichiers distant.

Cette fonction est similaire à la fonction mkdir() avec le gestionnaire ssh2.sftp://.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte avec la fonction ssh2_sftp().

dirname

Chemin du nouveau dossier.

mode

Permissions du nouveau dossier.

recursive

Si recursive vaut TRUE, tous les dossiers requis pour dirname seront également automatiquement créés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'un dossier sur un serveur distant

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_mkdir($sftp, '/home/username/newdir');
/* Ou :  mkdir("ssh2.sftp://$sftp/home/username/newdir"); */
?>

Voir aussi

  • mkdir() - Crée un dossier
  • ssh2_sftp_rmdir() - Efface un dossier


Retourne la cible d'un lien symbolique

  • « ssh2_sftp_mkdir
  • ssh2_sftp_realpath »
  • PHP Manual
  • Fonctions Shell2
  • Retourne la cible d'un lien symbolique

ssh2_sftp_readlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_readlink — Retourne la cible d'un lien symbolique

Description

string ssh2_sftp_readlink ( resource $sftp , string $link )

Retourne la cible d'un lien symbolique.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte par la fonction ssh2_sftp().

link

Chemin vers le lien symbolique.

Valeurs de retour

Retourne la cible du lien symbolique link.

Exemples

Exemple #1 Lecture d'un lien symbolique

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

$target = ssh2_sftp_readlink($sftp, '/tmp/mysql.sock');
/* $target est maintenant (e.g.): '/var/run/mysql.sock' */
?>

Voir aussi

  • readlink() - Renvoie le contenu d'un lien symbolique
  • ssh2_sftp_symlink() - Crée un lien symbolique


Résout le chemin réel d'un chemin fourni

  • « ssh2_sftp_readlink
  • ssh2_sftp_rename »
  • PHP Manual
  • Fonctions Shell2
  • Résout le chemin réel d'un chemin fourni

ssh2_sftp_realpath

(PECL ssh2 >= 0.9.0)

ssh2_sftp_realpath — Résout le chemin réel d'un chemin fourni

Description

string ssh2_sftp_realpath ( resource $sftp , string $filename )

Traduit un nom de fichier filename en son chemin réellement effectif sur le système de fichiers distant.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte par la fonction ssh2_sftp().

filename

Valeurs de retour

Retourne le chemin réel, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Résoudre un nom de chemin

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

$realpath = ssh2_sftp_realpath($sftp, '/home/username/../../../..//./usr/../etc/passwd');
/* $realpath est maintenant : '/etc/passwd' */
?>

Voir aussi

  • realpath() - Retourne le chemin canonique absolu
  • ssh2_sftp_symlink() - Crée un lien symbolique
  • ssh2_sftp_readlink() - Retourne la cible d'un lien symbolique


Renomme un fichier distant

  • « ssh2_sftp_realpath
  • ssh2_sftp_rmdir »
  • PHP Manual
  • Fonctions Shell2
  • Renomme un fichier distant

ssh2_sftp_rename

(PECL ssh2 >= 0.9.0)

ssh2_sftp_rename — Renomme un fichier distant

Description

bool ssh2_sftp_rename ( resource $sftp , string $from , string $to )

Renomme un fichier distant.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte par la fonction ssh2_sftp().

from

Le fichier courant à renommer.

to

Le nouveau nom du fichier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Renommer un fichier via sftp

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rename($sftp, '/home/username/oldname', '/home/username/newname');
?>

Voir aussi

  • rename() - Renomme un fichier ou un dossier


Efface un dossier

  • « ssh2_sftp_rename
  • ssh2_sftp_stat »
  • PHP Manual
  • Fonctions Shell2
  • Efface un dossier

ssh2_sftp_rmdir

(PECL ssh2 >= 0.9.0)

ssh2_sftp_rmdir — Efface un dossier

Description

bool ssh2_sftp_rmdir ( resource $sftp , string $dirname )

Efface un dossier du système de fichiers distant.

Cette fonction est similaire à l'utilisation de la fonction rmdir() avec le gestionnaire ssh2.sftp://.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte par la fonction ssh2_sftp().

dirname

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Effacement d'un dossier sur un serveur distant

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rmdir($sftp, '/home/username/deltodel');
/* Ou :  rmdir("ssh2.sftp://$sftp/home/username/dirtodel"); */
?>

Voir aussi

  • rmdir() - Efface un dossier
  • ssh2_sftp_mkdir() - Crée un dossier


Statue un fichier sur un système de fichiers distant

  • « ssh2_sftp_rmdir
  • ssh2_sftp_symlink »
  • PHP Manual
  • Fonctions Shell2
  • Statue un fichier sur un système de fichiers distant

ssh2_sftp_stat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_stat — Statue un fichier sur un système de fichiers distant

Description

array ssh2_sftp_stat ( resource $sftp , string $path )

Statue un fichier sur un système de fichiers distant, en suivant les liens symboliques.

Cette fonction est similaire à l'utilisation de la fonction stat() avec le gestionnaire ssh2.sftp:// en PHP 5 et retourne les mêmes valeurs.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte par la fonction ssh2_sftp().

path

Valeurs de retour

Voir la documentation de la fonction stat() pour les détails concernant les valeurs retournées.

Exemples

Exemple #1 Statut d'un fichier via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_stat($sftp, '/path/to/file');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

Voir aussi

  • ssh2_sftp_lstat() - Statue un lien symbolique
  • lstat() - Retourne les informations sur un fichier ou un lien symbolique
  • stat() - Renvoie les informations à propos d'un fichier


Crée un lien symbolique

  • « ssh2_sftp_stat
  • ssh2_sftp_unlink »
  • PHP Manual
  • Fonctions Shell2
  • Crée un lien symbolique

ssh2_sftp_symlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_symlink — Crée un lien symbolique

Description

bool ssh2_sftp_symlink ( resource $sftp , string $target , string $link )

Crée un lien symbolique sur le système de fichiers distant.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte par la fonction ssh2_sftp().

target

Cible du lien symbolique.

link

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'un lien symbolique

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_symlink($sftp, '/var/run/mysql.sock', '/tmp/mysql.sock');
?>

Voir aussi

  • ssh2_sftp_readlink() - Retourne la cible d'un lien symbolique
  • symlink() - Crée un lien symbolique


Efface un fichier

  • « ssh2_sftp_symlink
  • ssh2_sftp »
  • PHP Manual
  • Fonctions Shell2
  • Efface un fichier

ssh2_sftp_unlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_unlink — Efface un fichier

Description

bool ssh2_sftp_unlink ( resource $sftp , string $filename )

Efface un fichier sur le système de fichiers distant.

Liste de paramètres

sftp

Une ressource SSH2 SFTP, ouverte par la fonction ssh2_sftp().

filename

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Effacement d'un fichier

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_unlink($sftp, '/home/username/stale_file');
?>

Voir aussi

  • unlink() - Efface un fichier


Initialise un sous-système SFTP

  • « ssh2_sftp_unlink
  • ssh2_shell »
  • PHP Manual
  • Fonctions Shell2
  • Initialise un sous-système SFTP

ssh2_sftp

(PECL ssh2 >= 0.9.0)

ssh2_sftp — Initialise un sous-système SFTP

Description

resource ssh2_sftp ( resource $session )

Demande un sous-système SFTP depuis un serveur déjà connecté SSH2.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

Valeurs de retour

Cette méthode retourne une ressource SSH2 SFTP pour utilisation avec toutes les méthodes ssh2_sftp_*() ainsi que le gestionnaire ouvert ssh2.sftp://.

Exemples

Exemple #1 Ouverture d'un fichier via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);

$stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r');
?>

Voir aussi

  • ssh2_scp_recv() - Demande un fichier via SCP
  • ssh2_scp_send() - Envoie un fichier via SCP


Demande un shell interactif

  • « ssh2_sftp
  • ssh2_tunnel »
  • PHP Manual
  • Fonctions Shell2
  • Demande un shell interactif

ssh2_shell

(PECL ssh2 >= 0.9.0)

ssh2_shell — Demande un shell interactif

Description

resource ssh2_shell ( resource $session [, string $term_type = "vanilla" [, array $env [, int $width = 80 [, int $height = 25 [, int $width_height_type = SSH2_TERM_UNIT_CHARS ]]]]] )

Ouvre un shell sur le serveur distant et lui alloue un flux.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

term_type

term_type doit correspondre à une des entrées du fichier /etc/termcap du système cible.

env

env doit être passé en tant qu'un tableau associatif de paire nom/valeur à définir dans l'environnement cible.

width

Largeur du terminal virtuel.

height

Hauteur du terminal virtuel.

width_height_type

width_height_type doit être soit SSH2_TERM_UNIT_CHARS, soit SSH2_TERM_UNIT_PIXELS.

Valeurs de retour

Exemples

Exemple #1 Exécution d'une commande

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_shell($connection, 'vt102', null, 80, 24, SSH2_TERM_UNIT_CHARS);
?>

Voir aussi

  • ssh2_exec() - Exécute une commande sur un serveur distant
  • ssh2_tunnel() - Ouvre un tunnel à travers un serveur distant
  • ssh2_fetch_stream() - Parcours un flux étendu de données


Ouvre un tunnel à travers un serveur distant

  • « ssh2_shell
  • Stomp »
  • PHP Manual
  • Fonctions Shell2
  • Ouvre un tunnel à travers un serveur distant

ssh2_tunnel

(PECL ssh2 >= 0.9.0)

ssh2_tunnel — Ouvre un tunnel à travers un serveur distant

Description

resource ssh2_tunnel ( resource $session , string $host , int $port )

Ouvre un socket vers un hôte/port arbitraire via un serveur connecté SSH.

Liste de paramètres

session

Un identifiant de connexion SSH, obtenu depuis la fonction ssh2_connect().

host

port

Valeurs de retour

Exemples

Exemple #1 Ouverture d'un tunnel sur un hôte arbitraire

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_pubkey_file($connection, 'username', 'id_dsa.pub', 'id_dsa');

$tunnel = ssh2_tunnel($connection, '10.0.0.101', 12345);
?>

Voir aussi

  • ssh2_connect() - Connexion à un serveur SSH
  • fsockopen() - Ouvre un socket de connexion Internet ou Unix


Client Stomp

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Exemples
  • Fonctions Stomp
    • stomp_connect_error — Retourne une chaîne décrivant la dernière erreur de connexion
    • stomp_version — Récupère la version de l'extension Stomp
  • Stomp — La classe Stomp
    • Stomp::abort — Annule une transaction en cours
    • Stomp::ack — Valide la réception d'un message
    • Stomp::begin — Débute une transaction
    • Stomp::commit — Valide une transaction en cours
    • Stomp::__construct — Ouvre une connexion
    • Stomp::__destruct — Ferme une connexion
    • Stomp::error — Récupère la dernière erreur stomp
    • Stomp::getReadTimeout — Récupère le délai d'expiration de lecture
    • Stomp::getSessionId — Retourne l'identifiant de la session courante
    • Stomp::hasFrame — Indique si un message est en attente de lecture ou non
    • Stomp::readFrame — Lit le prochain message
    • Stomp::send — Envoi un message
    • Stomp::setReadTimeout — Définit le délai d'expiration de lecture
    • Stomp::subscribe — Souscrit à l'écoute d'une destination donnée
    • Stomp::unsubscribe — Supprime une souscription existante
  • StompFrame — La classe StompFrame
    • StompFrame::__construct — Constructeur
  • StompException — La classe StompException
    • StompException::getDetails — Récupère les détails de l'exception


Introduction

Cette extension permet aux applications php de communiquer avec tout les Brokers de message compatibles Stomp à travers un API objet ou procédural simple. » Site officiel de Stomp


Pré-requis

PECL/stomp requiert PHP 5.2.2 ou plus récent.

Paquet » OpenSSL paquet >= 0.9.6. L'extension openssl est aussi requise si vous désirez utiliser stomp à travers SSL.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/stomp


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Stomp Options de configuration
Nom | Défaut | Modifiable | Historique
stomp.default_broker | tcp://localhost:61613 | PHP_INI_ALL |
stomp.default_connection_timeout_sec | 2 | PHP_INI_ALL |
stomp.default_connection_timeout_usec | 0 | PHP_INI_ALL |
stomp.default_read_timeout_sec | 2 | PHP_INI_ALL |
stomp.default_read_timeout_usec | 0 | PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

stomp.default_broker string

URI par défaut du Broker de message utilisé à la connexion si aucun autre URI n'est spécifié.

stomp.default_connection_timeout_sec integer

Le nombre de secondes entières du délai d'expiration de connexion.

stomp.default_connection_timeout_usec integer

Le nombre de microsecondes entières du délai d'expiration de connexion.

stomp.default_read_timeout_sec integer

Le nombre de secondes entières du délai d'expiration de lecture.

stomp.default_read_timeout_usec integer

Le nombre de microsecondes entières du délai d'expiration de lecture.


Types de ressources

Il n'y a qu'une seule ressource utilisée par l'extension stomp : c'est le lien identifiant représentant la connexion stomp.


Exemples

Exemple #1 Style orienté objet

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* connexion */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

/* envoi d'un message à la file 'foo' */
$stomp->send($queue, $msg);

/* souscription aux messages de la file 'foo' */
$stomp->subscribe($queue);

/* lecture d'un message */
$frame = $stomp->readFrame();

if ($frame->body === $msg) {
    var_dump($frame);

    /* confirmation de la réception du message */
    $stomp->ack($frame);
}

/* fermeture de la connexion */
unset($stomp);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(StompFrame)#2 (3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["headers"]=>
  array(5) {
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:2:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257226805828"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
  ["body"]=>
  string(3) "bar"
}

Exemple #2 Style procédural

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* connexion */
$link = stomp_connect('ssl://localhost:61612');

/* vérification de la connexion */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

/* début de la transaction */
stomp_begin($link, 't1');

/* envoi d'un message à la file 'foo' */
stomp_send($link, $queue, $msg, array('transaction' => 't1'));

/* validation de la transaction */
stomp_commit($link, 't1');

/* souscription aux messages de la file 'foo' */
stomp_subscribe($link, $queue);

/* lecture d'un message */
$frame = stomp_read_frame($link);

if ($frame['body'] === $msg) {
    var_dump($frame);

    /* confirmation de la réception du message */
    stomp_ack($link, $frame['headers']['message-id']);
}

/* fermeture de la connexion */
stomp_close($link);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["body"]=>
  string(3) "bar"
  ["headers"]=>
  array(6) {
    ["transaction"]=>
    string(2) "t1"
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:3:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257227037059"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
}


Fonctions Stomp

Sommaire

  • stomp_connect_error — Retourne une chaîne décrivant la dernière erreur de connexion
  • stomp_version — Récupère la version de l'extension Stomp


Retourne une chaîne décrivant la dernière erreur de connexion

  • « Fonctions Stomp
  • stomp_version »
  • PHP Manual
  • Fonctions Stomp
  • Retourne une chaîne décrivant la dernière erreur de connexion

stomp_connect_error

(PECL stomp >= 0.3.0)

stomp_connect_error — Retourne une chaîne décrivant la dernière erreur de connexion

Description

string stomp_connect_error ( void )

Retourne une chaîne décrivant la dernière erreur de connexion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne décrivant l'erreur, ou NULL si aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec stomp_connect_error()

<?php
$link = stomp_connect('http://localhost:61613');

if(!$link) {
    die('Connection failed: ' . stomp_connect_error());
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Connection failed: Invalid Broker URI scheme


Récupère la version de l'extension Stomp

  • « stomp_connect_error
  • Stomp »
  • PHP Manual
  • Fonctions Stomp
  • Récupère la version de l'extension Stomp

stomp_version

(PECL stomp >= 0.1.0)

stomp_version — Récupère la version de l'extension Stomp

Description

string stomp_version ( void )

Retourne une chaîne contenant la version de l'extension Stomp.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Version de l'extension Stomp.

Exemples

Exemple #1 Exemple avec stomp_version()

<?php

var_dump(stomp_version());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "0.2.0"


La classe Stomp

(PECL stomp >= 0.1.0)

Introduction

Représente une connexion entre PHP et un Broker de message compatible Stomp.

Synopsis de la classe

Stomp {
/* Méthodes */
public bool abort ( string $transaction_id [, array $headers ] )
public bool ack ( mixed $msg [, array $headers ] )
public bool begin ( string $transaction_id [, array $headers ] )
public bool commit ( string $transaction_id [, array $headers ] )
__construct ([ string $broker = ini_get("stomp.default_broker_uri") [, string $username [, string $password [, array $headers ]]]] )
public bool __destruct ( void )
public string error ( void )
public array getReadTimeout ( void )
public string getSessionId ( void )
public bool hasFrame ( void )
public stompframe readFrame ([ string $class_name = "stompFrame" ] )
public bool send ( string $destination , mixed $msg [, array $headers ] )
public void setReadTimeout ( int $seconds [, int $microseconds ] )
public bool subscribe ( string $destination [, array $headers ] )
public bool unsubscribe ( string $destination [, array $headers ] )
}

Sommaire

  • Stomp::abort — Annule une transaction en cours
  • Stomp::ack — Valide la réception d'un message
  • Stomp::begin — Débute une transaction
  • Stomp::commit — Valide une transaction en cours
  • Stomp::__construct — Ouvre une connexion
  • Stomp::__destruct — Ferme une connexion
  • Stomp::error — Récupère la dernière erreur stomp
  • Stomp::getReadTimeout — Récupère le délai d'expiration de lecture
  • Stomp::getSessionId — Retourne l'identifiant de la session courante
  • Stomp::hasFrame — Indique si un message est en attente de lecture ou non
  • Stomp::readFrame — Lit le prochain message
  • Stomp::send — Envoi un message
  • Stomp::setReadTimeout — Définit le délai d'expiration de lecture
  • Stomp::subscribe — Souscrit à l'écoute d'une destination donnée
  • Stomp::unsubscribe — Supprime une souscription existante


Annule une transaction en cours

  • « Stomp
  • Stomp::ack »
  • PHP Manual
  • Stomp
  • Annule une transaction en cours

Stomp::abort

stomp_abort

(PECL stomp >= 0.1.0)

Stomp::abort -- stomp_abort — Annule une transaction en cours

Description

Style orienté objet (méthode) :

public bool Stomp::abort ( string $transaction_id [, array $headers ] )

Style procédural :

bool stomp_abort ( resource $link , string $transaction_id [, array $headers ] )

Annule une transaction en cours.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

transaction_id

ID de la transaction à annuler.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

/* début de la transaction */
$stomp->begin('t1');

/* envoi d'un message à la file 'foo' */
$stomp->send('/queue/foo', 'bar', array('transaction' => 't1'));

/* annulation de la transaction */
$stomp->abort('t1');

/* fermeture de la connexion */
unset($stomp);
?>

Exemple #2 Style procédural

<?php

/* connexion */
$link = stomp_connect('tcp://localhost:61613');

/* vérification de la connexion */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

/* début de la transaction */
stomp_begin($link, 't1');

/* envoi d'un message à la file 'foo' */
stomp_send($link, '/queue/foo', 'bar', array('transaction' => 't1'));

/* annulation de la transaction */
stomp_abort($link, 't1');

/* fermeture de la connexion */
stomp_close($link);

?>


Valide la réception d'un message

  • « Stomp::abort
  • Stomp::begin »
  • PHP Manual
  • Stomp
  • Valide la réception d'un message

Stomp::ack

stomp_ack

(PECL stomp >= 0.1.0)

Stomp::ack -- stomp_ack — Valide la réception d'un message

Description

Style orienté objet (méthode) :

public bool Stomp::ack ( mixed $msg [, array $headers ] )

Style procédural :

bool stomp_ack ( resource $link , mixed $msg [, array $headers ] )

Valide la réception d'un message par une souscription.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

msg

Le message où l'identifiant du message à valider.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Un en-tête de transaction peut être spécifié, indiquant que la confirmation des messages doit faire partie de la transaction.

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Exemple #1 Style orienté objet

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* connexion */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

/* envoi d'un message à la file 'foo' */
$stomp->send($queue, $msg);

/* souscription aux messages de la file 'foo' */
$stomp->subscribe($queue);

/* lecture d'un message */
$frame = $stomp->readFrame();

if ($frame->body === $msg) {
    /* confirmation de la réception du message */
    $stomp->ack($frame);
}

/* supprime la souscription à la file 'foo' */
$stomp->unsubscribe($queue);

/* fermeture de la connexion */
unset($stomp);

?>

Exemple #2 Style procédural

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* connexion */
$link = stomp_connect('ssl://localhost:61612');

/* vérification de la connexion */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

/* début de la transaction */
stomp_begin($link, 't1');

/* envoi d'un message à la file 'foo' */
stomp_send($link, $queue, $msg, array('transaction' => 't1'));

/* validation de la transaction */
stomp_commit($link, 't1');

/* souscription aux messages de la file 'foo' */
stomp_subscribe($link, $queue);

/* lecture d'un message */
$frame = stomp_read_frame($link);

if ($frame['body'] === $msg) {
    /* confirmation de la réception du message */
    stomp_ack($link, $frame['headers']['message-id']);
}

/* supprime la souscription à la file 'foo' */
stomp_unsubscribe($link, $queue);

/* fermeture de la connexion */
stomp_close($link);

?>


Débute une transaction

  • « Stomp::ack
  • Stomp::commit »
  • PHP Manual
  • Stomp
  • Débute une transaction

Stomp::begin

stomp_begin

(PECL stomp >= 0.1.0)

Stomp::begin -- stomp_begin — Débute une transaction

Description

Style orienté objet (méthode) :

public bool Stomp::begin ( string $transaction_id [, array $headers ] )

Style procédural :

bool stomp_begin ( resource $link , string $transaction_id [, array $headers ] )

Débute une transaction.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

transaction_id

Identifiant de la transaction.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Voir stomp_commit() ou stomp_abort().


Valide une transaction en cours

  • « Stomp::begin
  • Stomp::__construct »
  • PHP Manual
  • Stomp
  • Valide une transaction en cours

Stomp::commit

stomp_commit

(PECL stomp >= 0.1.0)

Stomp::commit -- stomp_commit — Valide une transaction en cours

Description

Style orienté objet (méthode) :

public bool Stomp::commit ( string $transaction_id [, array $headers ] )

Style procédural :

bool stomp_commit ( resource $link , string $transaction_id [, array $headers ] )

Valide une transaction en cours.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

transaction_id

Identifiant de la transaction.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

/* début de la transaction */
$stomp->begin('t1');

/* envoi d'un message à la file 'foo' */
$stomp->send('/queue/foo', 'bar', array('transaction' => 't1'));

/* validation de la transaction */
$stomp->commit('t1');

/* fermeture de la connexion */
unset($stomp);

?>

Exemple #2 Style procédural

<?php

/* connexion */
$link = stomp_connect('tcp://localhost:61613');

/* vérification de la connexion */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

/* début de la transaction */
stomp_begin($link, 't1');

/* envoi d'un message à la file 'foo' */
stomp_send($link, '/queue/foo', 'bar', array('transaction' => 't1'));

/* validation de la transaction */
stomp_commit($link, 't1');

/* fermeture de la connexion */
stomp_close($link);

?>


Ouvre une connexion

  • « Stomp::commit
  • Stomp::__destruct »
  • PHP Manual
  • Stomp
  • Ouvre une connexion

Stomp::__construct

stomp_connect

(PECL stomp >= 0.1.0)

Stomp::__construct -- stomp_connect — Ouvre une connexion

Description

Style orienté objet (constructeur) :

Stomp::__construct ([ string $broker = ini_get("stomp.default_broker_uri") [, string $username [, string $password [, array $headers ]]]] )

Style procédural :

resource stomp_connect ([ string $broker = ini_get("stomp.default_broker_uri") [, string $username [, string $password [, array $headers ]]]] )

Ouvre une connexion à un Broker de message compatible Stomp.

Liste de paramètres

broker

URI du Broker.

username

Nom d'utilisateur.

password

Mot de passe.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Note:

Un en-tête de transaction peut être spécifié, indiquant que la confirmation des messages doit faire partie de la transaction.

Historique

Version | Description
1.0.1 | Le paramètre headers a été ajouté

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

/* fermeture de la connexion */
unset($stomp);

?>

Exemple #2 Style procédural

<?php

/* connexion */
$link = stomp_connect('ssl://localhost:61612');

/* verification de la connexion */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

/* fermeture de la connexion */
stomp_close($link);

?>


Ferme une connexion

  • « Stomp::__construct
  • Stomp::error »
  • PHP Manual
  • Stomp
  • Ferme une connexion

Stomp::__destruct

stomp_close

(PECL stomp >= 0.1.0)

Stomp::__destruct -- stomp_close — Ferme une connexion

Description

Style orienté objet (destructeur) :

public bool Stomp::__destruct ( void )

Style procédural :

bool stomp_close ( resource $link )

Ferme une connexion préalablement ouverte.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Voir stomp_connect().


Récupère la dernière erreur stomp

  • « Stomp::__destruct
  • Stomp::getReadTimeout »
  • PHP Manual
  • Stomp
  • Récupère la dernière erreur stomp

Stomp::error

stomp_error

(PECL stomp >= 0.1.0)

Stomp::error -- stomp_error — Récupère la dernière erreur stomp

Description

Style orienté objet (méthode) :

public string Stomp::error ( void )

Style procédural :

string stomp_error ( resource $link )

Récupère la dernière erreur stomp.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

Valeurs de retour

Retourne une chaîne décrivant la dernière erreur ou FALSE si aucune erreur n'est survenue.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

var_dump($stomp->error());

if (!$stomp->abort('unknown-transaction', array('receipt' => 'foo'))) {
    var_dump($stomp->error());
}

/* fermeture de la connexion */
unset($stomp);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
string(43) "Invalid transaction id: unknown-transaction"

Exemple #2 Style procédural

<?php

/* connexion */
$link = stomp_connect('ssl://localhost:61612');

/* verification de la connexion */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

var_dump(stomp_error($link));

if (!stomp_abort($link, 'unknown-transaction', array('receipt' => 'foo'))) {
    var_dump(stomp_error($link));
}

/* fermeture de la connexion */
stomp_close($link);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
string(43) "Invalid transaction id: unknown-transaction"


Récupère le délai d'expiration de lecture

  • « Stomp::error
  • Stomp::getSessionId »
  • PHP Manual
  • Stomp
  • Récupère le délai d'expiration de lecture

Stomp::getReadTimeout

stomp_get_read_timeout

(PECL stomp >= 0.3.0)

Stomp::getReadTimeout -- stomp_get_read_timeout — Récupère le délai d'expiration de lecture

Description

Style orienté objet (méthode) :

public array Stomp::getReadTimeout ( void )

Style procédural :

array stomp_get_read_timeout ( resource $link )

Récupère le délai d'expiration de lecture.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

Valeurs de retour

Retourne un tableau associatif avec 2 éléments : sec et usec.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

var_dump($stomp->getReadTimeout());

/* fermeture de la connexion */
unset($stomp);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["sec"]=>
  int(2)
  ["usec"]=>
  int(0)
}

Exemple #2 Style procédural

<?php

/* connexion */
$link = stomp_connect('ssl://localhost:61612');

/* verification de la connexion */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

var_dump(stomp_get_read_timeout($link));

/* fermeture de la connexion */
stomp_close($link);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["sec"]=>
  int(2)
  ["usec"]=>
  int(0)
}


Retourne l'identifiant de la session courante

  • « Stomp::getReadTimeout
  • Stomp::hasFrame »
  • PHP Manual
  • Stomp
  • Retourne l'identifiant de la session courante

Stomp::getSessionId

stomp_get_session_id

(PECL stomp >= 0.1.0)

Stomp::getSessionId -- stomp_get_session_id — Retourne l'identifiant de la session courante

Description

Style orienté objet (méthode) :

public string Stomp::getSessionId ( void )

Style procédural :

string stomp_get_session_id ( resource $link )

Retourne l'identifiant de la session courante.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

Valeurs de retour

Retourne une chaîne contenant l'identifiant de la session ou FALSE si une erreur survient.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

var_dump($stomp->getSessionId());

/* fermeture de la connexion */
unset($stomp);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(35) "ID:php.net-52873-1257291895530-4:14"

Exemple #2 Style procédural

<?php

/* connexion */
$link = stomp_connect('ssl://localhost:61612');

/* verification de la connexion */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

var_dump(stomp_get_session_id($link));

/* fermeture de la connexion */
stomp_close($link);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(35) "ID:php.net-52873-1257291895530-4:14"


Indique si un message est en attente de lecture ou non

  • « Stomp::getSessionId
  • Stomp::readFrame »
  • PHP Manual
  • Stomp
  • Indique si un message est en attente de lecture ou non

Stomp::hasFrame

stomp_has_frame

(PECL stomp >= 0.1.0)

Stomp::hasFrame -- stomp_has_frame — Indique si un message est en attente de lecture ou non

Description

Style orienté objet (méthode) :

public bool Stomp::hasFrame ( void )

Style procédural :

bool stomp_has_frame ( resource $link )

Indique si un message est en attente de lecture ou non.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

Valeurs de retour

Retourne TRUE si un message est en attente de lecture, ou FALSE dans le cas contraire.


Lit le prochain message

  • « Stomp::hasFrame
  • Stomp::send »
  • PHP Manual
  • Stomp
  • Lit le prochain message

Stomp::readFrame

stomp_read_frame

(PECL stomp >= 0.1.0)

Stomp::readFrame -- stomp_read_frame — Lit le prochain message

Description

Style orienté objet (méthode) :

public stompframe Stomp::readFrame ([ string $class_name = "stompFrame" ] )

Style procédural :

array stomp_read_frame ( resource $link )

Lit le prochain message. Il est possible d'instancier un objet d'une classe spécifique, et de passer les paramètres au constructeur de cette classe.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

class_name

Le nom de la classe à instancier. Si ce paramètre n'est pas spécifié, un objet stompFrame est retourné.

Valeurs de retour

Note:

Un en-tête de transaction peut être spécifié, indiquant que la confirmation des messages doit faire partie de la transaction.

Historique

Version | Description
Stomp 0.4.0 | Le paramètre class_name a été ajouté.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

/* souscription aux messages de la file 'foo' */
$stomp->subscribe('/queue/foo');

/* lecture d'un message */
var_dump($stomp->readFrame());

/* fermeture de la connexion */
unset($stomp);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(StompFrame)#2 (3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["headers"]=>
  array(5) {
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:2:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257226805828"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
  ["body"]=>
  string(3) "bar"
}

Exemple #2 Style procédural

<?php

/* connexion */
$link = stomp_connect('ssl://localhost:61612');

/* verification de la connexion */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

/* souscription aux messages de la file 'foo' */
stomp_subscribe($link, '/queue/foo');

/* lecture d'un message */
$frame = stomp_read_frame($link);

/* fermeture de la connexion */
stomp_close($link);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["body"]=>
  string(3) "bar"
  ["headers"]=>
  array(6) {
    ["transaction"]=>
    string(2) "t1"
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:3:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257227037059"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
}


Envoi un message

  • « Stomp::readFrame
  • Stomp::setReadTimeout »
  • PHP Manual
  • Stomp
  • Envoi un message

Stomp::send

stomp_send

(PECL stomp >= 0.1.0)

Stomp::send -- stomp_send — Envoi un message

Description

Style orienté objet (méthode) :

public bool Stomp::send ( string $destination , mixed $msg [, array $headers ] )

Style procédural :

bool stomp_send ( resource $link , string $destination , mixed $msg [, array $headers ] )

Envoi un message au Broker de message.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

destination

Destination du message.

msg

Message à envoyer.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Un en-tête de transaction peut être spécifié, indiquant que la confirmation des messages doit faire partie de la transaction.

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Voir stomp_ack().


Définit le délai d'expiration de lecture

  • « Stomp::send
  • Stomp::subscribe »
  • PHP Manual
  • Stomp
  • Définit le délai d'expiration de lecture

Stomp::setReadTimeout

stomp_set_read_timeout

(PECL stomp >= 0.3.0)

Stomp::setReadTimeout -- stomp_set_read_timeout — Définit le délai d'expiration de lecture

Description

Style orienté objet (méthode) :

public void Stomp::setReadTimeout ( int $seconds [, int $microseconds ] )

Style procédural:

void stomp_set_read_timeout ( resource $link , int $seconds [, int $microseconds ] )

Définit le délai d'expiration de lecture pour une connexion stomp.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

seconds

Le nombre de secondes entières du délai d'expiration de lecture à définir.

microseconds

Le nombre de microsecondes entières du délai d'expiration de lecture à définir.

Exemples

Exemple #1 Style orienté objet

<?php

/* connexion */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

$stomp->setReadTimeout(10);

/* fermeture de la connexion */
unset($stomp);

?>

Exemple #2 Style procédural

<?php

/* connexion */
$link = stomp_connect('ssl://localhost:61612');

/* verification de la connexion */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

stomp_set_read_timeout($link, 10);

/* fermeture de la connexion */
stomp_close($link);

?>


Souscrit à l'écoute d'une destination donnée

  • « Stomp::setReadTimeout
  • Stomp::unsubscribe »
  • PHP Manual
  • Stomp
  • Souscrit à l'écoute d'une destination donnée

Stomp::subscribe

stomp_subscribe

(PECL stomp >= 0.1.0)

Stomp::subscribe -- stomp_subscribe — Souscrit à l'écoute d'une destination donnée

Description

Style orienté objet (méthode) :

public bool Stomp::subscribe ( string $destination [, array $headers ] )

Style procédural :

bool stomp_subscribe ( resource $link , string $destination [, array $headers ] )

Souscrit à l'écoute d'une destination donnée.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

destination

Destination à écouter.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Voir stomp_ack().


Supprime une souscription existante

  • « Stomp::subscribe
  • StompFrame »
  • PHP Manual
  • Stomp
  • Supprime une souscription existante

Stomp::unsubscribe

stomp_unsubscribe

(PECL stomp >= 0.1.0)

Stomp::unsubscribe -- stomp_unsubscribe — Supprime une souscription existante

Description

Style orienté objet (méthode):

public bool Stomp::unsubscribe ( string $destination [, array $headers ] )

Style procédural :

bool stomp_unsubscribe ( resource $link , string $destination [, array $headers ] )

Supprime une souscription existante.

Liste de paramètres

link

Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().

destination

Souscription à supprimer.

headers

Tableau associatif contenantles en-têtes aditionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

Exemples

Voir stomp_ack().


La classe StompFrame

(PECL stomp >= 0.1.0)

Introduction

Représente un message envoyé ou reçu par un Broker de message compatible stomp.

Synopsis de la classe

StompFrame {
/* Propriétés */
public $command ;
public $headers ;
public $body ;
/* Méthodes */
__construct ([ string $command [, array $headers [, string $body ]]] )
}

Propriétés

command

Commande du message.

headers

En-têtes du message (tableau).

body

Corps du message.

Sommaire

  • StompFrame::__construct — Constructeur


Constructeur

  • « StompFrame
  • StompException »
  • PHP Manual
  • StompFrame
  • Constructeur

StompFrame::__construct

(PECL stomp >= 0.1.0)

StompFrame::__construct — Constructeur

Description

StompFrame::__construct ([ string $command [, array $headers [, string $body ]]] )

Constructeur.

Liste de paramètres

command

Commande du message.

headers

En-têtes du message (tableau).

body

Corps du message.


La classe StompException

(PECL stomp >= 0.1.0)

Introduction

Représente une erreur émise par l'extension stomp. Voir le chapitre sur les Exceptions pour plus d'informations sur les exceptions en PHP.

Synopsis de la classe

StompException étend Exception {
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
/* Méthodes */
public string getDetails ( void )
}

Sommaire

  • StompException::getDetails — Récupère les détails de l'exception


Récupère les détails de l'exception

  • « StompException
  • SVM »
  • PHP Manual
  • StompException
  • Récupère les détails de l'exception

StompException::getDetails

(PECL stomp >= 0.1.0)

StompException::getDetails — Récupère les détails de l'exception

Description

public string StompException::getDetails ( void )

Récupère les détails de l'exception.

Valeurs de retour

chaîne de caractères contenant les détails de l'exception.


Support Vector Machine

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Exemples
  • SVM — La classe SVM
    • SVM::__construct — Construit un nouvel objet SVM
    • SVM::crossvalidate — Test les paramètres d'entraînement sur les sous-jeux de données d’entraînement
    • SVM::getOptions — Retourne les paramètres courants d’entraînement
    • SVM::setOptions — Définit des paramètres d'entraînement
    • SVM::train — Crée un modèle SVMModel suivant les données d'entraînement
  • SVMModel — La classe SVMModel
    • SVMModel::checkProbabilityModel — Retourne TRUE si le modèle a des informations probablistes
    • SVMModel::__construct — Construit un nouvel objet SVMModel
    • SVMModel::getLabels — Récupère les labels utilisés pour entraîner le modèle
    • SVMModel::getNrClass — Retourne le nombre de classes utilisées pour entraîner le modèle
    • SVMModel::getSvmType — Récupère le type SVM utilisé pour entraîner le modèle
    • SVMModel::getSvrProbability — Récupère la valeur sigma pour les types de régression
    • SVMModel::load — Charge un modèle SVM sauvegardé
    • SVMModel::predict_probability — Retourne les probabilités pour les données précédentes non présentées
    • SVMModel::predict — Prédit une valeur pour des précédentes données non vues
    • SVMModel::save — Sauvegarde un modèle dans un fichier


Introduction

LibSVM est un solveur efficace pour les problèmes de classification et de régression SVM. L'extension SVM se présente comme une interface PHP simple à utiliser dans des scripts PHP.


Pré-requis

La bibliothèque Libsvm est requise, et est disponible depuis la plupart des gestionnaires de paquets - libsvm-devel pour les systèmes basés sur RPM ou libsvm-dev pour ceux basés sur Debian. Vous pouvez également la trouver directement depuis le site web du projet. Si vous l'installez depuis le » site web officiel, alors quelques étapes seront nécessaires sachant que le paquet ne s'installe pas seul. Par exemple, si nous partons du principe que la dernière version est la 3.1 :

wget http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/libsvm+tar.gz
tar xvzf libsvm-3.1.tar.gz
cd libsvm-3.1
make lib
cp libsvm.so.1 /usr/lib
ln -s libsvm.so.1 libsvm.so
ldconfig
ldconfig --print | grep libsvm

Cette dernière étape doit montrer que la bibliothèque libsvm est installée.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/svm


Exemples

Le processus basique consiste à définir des paramètres, soumettre des données d’entraînement pour la génération d'un modèle, puis, faire des prédictions basés sur ce modèle. Il y a un jeu par défaut de paramètres qui doivent donner des résultats avec la plupart des entrées, aussi, nous allons commencer par regarder du côté de ces données.

Les données sont soumises via un fichier, un flux ou un tableau. Si elles sont fournies via un fichier ou un flux, elles doivent contenir une ligne par exemple d’entraînement, ligne devant être formatée sous la forme d'une classe entière (habituellement 1 et -1), suivi par une séries de paires clés/fonctionnalités, dans un ordre croissant des fonctionnalités. Les fonctionnalités sont des entiers, et les valeurs, des nombres à virgules flottantes dans l'intervalle 0-1. Par exemple :

-1 1:0.43 3:0.12 9284:0.2

Dans un problème de classification de document, par exemple concernant le spam, chaque ligne doit représenter un document. Il doit y avoir 2 classes, -1 pour les spam, 1 pour les ham. Chaque fonctionnalité représente des mots, et les valeurs représentent l'importance de ces mots dans le document (par exemple le fréquence de rencontre de ces mots dans le document, avec le total dans le bon intervalle). Les fonctionnalités présentant la valeur 0 (i.e. le mot n'apparaît pas du tout dans le document) ne seront tout simplement pas inclues.

Dans mode tableau, les données doivent être passées sous la forme de tableaux de tableaux. Chaque sous-tableau doit avoir la classe comme premier élément, plus, clés => jeux de valeurs pour les paires de fonctionnalité/valeur.

Ces donnée sont passées à la fonction d’entraînement de la classe SVM, qui retournera un modèle SVM en cas de succès.

Une fois le modèle généré, il peut être utilisé pour faire des prédictions sur les données précédentes non vues. Elles peuvent être passées sous forme de tableau à la fonction de prédiction du modèle, dans le même format que précédemment, mais sans le libellé. La réponse sera la classe.

Les modèles peuvent être sauvegardés et restaurés à la demande, en utilisant les fonctions de sauvegarde et de chargement, qui prennent toutes les 2 comme argument le chemin vers le fichier correspondant.

Exemple #1 Entraînement depuis un tableau

<?php
$data = array(
 array(-1, 1 => 0.43, 3 => 0.12, 9284 => 0.2),
 array(1, 1 => 0.22, 5 => 0.01, 94 => 0.11),
);

$svm = new SVM();
$model = $svm->train($data);

$data = array(1 => 0.43, 3 => 0.12, 9284 => 0.2);
$result = $model->predict($data);
var_dump($result);
$model->save('model.svm');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(-1)

Exemple #2 Entraînement depuis un fichier

<?php
 $svm = new SVM();
 $model = $svm->train("traindata.txt");
?>


La classe SVM

(PECL svm >= 0.1.0)

Introduction

Synopsis de la classe

SVM {
/* Constantes */
const integer C_SVC = 0 ;
const integer NU_SVC = 1 ;
const integer ONE_CLASS = 2 ;
const integer EPSILON_SVR = 3 ;
const integer NU_SVR = 4 ;
const integer KERNEL_LINEAR = 0 ;
const integer KERNEL_POLY = 1 ;
const integer KERNEL_RBF = 2 ;
const integer KERNEL_SIGMOID = 3 ;
const integer KERNEL_PRECOMPUTED = 4 ;
const integer OPT_TYPE = 101 ;
const integer OPT_KERNEL_TYPE = 102 ;
const integer OPT_DEGREE = 103 ;
const integer OPT_SHRINKING = 104 ;
const integer OPT_PROPABILITY = 105 ;
const integer OPT_GAMMA = 201 ;
const integer OPT_NU = 202 ;
const integer OPT_EPS = 203 ;
const integer OPT_P = 204 ;
const integer OPT_COEF_ZERO = 205 ;
const integer OPT_C = 206 ;
const integer OPT_CACHE_SIZE = 207 ;
/* Méthodes */
public __construct ( void )
public float svm::crossvalidate ( array $problem , int $number_of_folds )
public array getOptions ( void )
public bool setOptions ( array $params )
public SVMModel svm::train ( array $problem [, array $weights ] )
}

Constantes pré-définies

Constantes SVM

SVM::C_SVC

Le type SVM C_SVC basique. C'est le type par défaut, et un bon point de départ.

SVM::NU_SVC

Le type NU_SVC utilise une pondération différente, plus souple des erreurs.

SVM::ONE_CLASS

Une type de classe SVM. S'entraîne sur une seule classe, en utilisant les valeurs aberrantes comme des exemples négatifs.

SVM::EPSILON_SVR

Un type SVM pour la régression (prédiction d'une valeur plutôt que seulement une classe).

SVM::NU_SVR

Un type NU de régression SVM.

SVM::KERNEL_LINEAR

Un noyau très simple, pouvant fonctionner correctement sur un large document de problèmes de classification.

SVM::KERNEL_POLY

Un noyau polynôme.

SVM::KERNEL_RBF

Un noyau Gaussien RBD commun. Gère parfaitement les problèmes non linéaires, et est un bon noyau par défaut pour la classification.

SVM::KERNEL_SIGMOID

Un noyau basé sur la fonction sigmoïde. Son utilisant rend SVM très similaire à une interface sigmoïde basée sur un réseau neutre.

SVM::KERNEL_PRECOMPUTED

Un noyau pré-calculé - actuellement non supporté.

SVM::OPT_TYPE

Les clés en option pour le type SVM.

SVM::OPT_KERNEL_TYPE

Les clés en option pour le type de noyau.

SVM::OPT_DEGREE

SVM::OPT_SHRINKING

Paramètre d’entraînement, booléen, pour indiquer d'utiliser les heuristiques rétrécis.

SVM::OPT_PROBABILITY

Paramètre d’entraînement, booléen, pour indiquer d'utiliser des estimations des probabilités.

SVM::OPT_GAMMA

Paramètre de l'algorithme pour les types de noyau Poly, RBF et sigmoïde.

SVM::OPT_NU

La clé optionnelle pour le paramètre NU, uniquement utilisée pour les types NU_ SVM.

SVM::OPT_EPS

La clé optionnelle pour le paramètre Epsilon, utilisé pour la régression epsilon.

SVM::OPT_P

Paramètre d'entraînement utilisé par la régression Epsilon SVR.

SVM::OPT_COEF_ZERO

Paramètre d'algorithme pour les noyaux poly et sigmoïde.

SVM::OPT_C

L'option pour le paramètre cost qui contrôle les négociations entre les erreurs et les généralités - effectivement, la pénalité pour mauvaise classification des exemples d'entrainement.

SVM::OPT_CACHE_SIZE

Taille de la mémoire cache, en Mo.

Sommaire

  • SVM::__construct — Construit un nouvel objet SVM
  • SVM::crossvalidate — Test les paramètres d'entraînement sur les sous-jeux de données d’entraînement
  • SVM::getOptions — Retourne les paramètres courants d’entraînement
  • SVM::setOptions — Définit des paramètres d'entraînement
  • SVM::train — Crée un modèle SVMModel suivant les données d'entraînement


Construit un nouvel objet SVM

  • « SVM
  • SVM::crossvalidate »
  • PHP Manual
  • SVM
  • Construit un nouvel objet SVM

SVM::__construct

(PECL svm >= 0.1.0)

SVM::__construct — Construit un nouvel objet SVM

Description

public SVM::__construct ( void )

Construit un nouvel objet SVM prêt à accepter des données d'entrainement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Lance une exception SVMException si la bibliothèque libsvm n'a pu être chargée.


Test les paramètres d'entraînement sur les sous-jeux de données d’entraînement

  • « SVM::__construct
  • SVM::getOptions »
  • PHP Manual
  • SVM
  • Test les paramètres d'entraînement sur les sous-jeux de données d’entraînement

SVM::crossvalidate

(PECL svm >= 0.1.0)

SVM::crossvalidate — Test les paramètres d'entraînement sur les sous-jeux de données d’entraînement

Description

public float svm::crossvalidate ( array $problem , int $number_of_folds )

Peut être utilisé pour tester l'effectivité du jeu de paramètres courant sur les sous-jeux des données d'entraînement. En fournissant un problème ainsi que n "plis", la fonction séparera le jeu du problème en n sous-jeux, et commence des entraînements successifs sur les sous-jeux. Bien que la précision soit généralement plus faible qu'un SVM entraîné des jeux de données fournies, le score de précision retourné devrait être suffisament utile pour être utilisé pour tester différents paramètres d'entraînement.

Liste de paramètres

problem

Les données du problème. Peut être sous la forme d'un tableau, d'une URL vers un fichier SVMLight, ou d'un flux vers une ressource de données SVMLight ouverte.

number_of_folds

Le nombre de jeux dans lequel les données doivent être divisées et testées. Un nombre élevé signifie que les jeux d'entraînement seront plus petits et moins fiables. 5 est un bon début.

Valeurs de retour

Le pourcentage correct, exprimé sous la forme d'un nombre à virgule flottante dans l'intervalle 0-1. Dans le cas d'un noyau NU_SVC ou EPSILON_SVR, l'erreur quadratique moyenne sera retournée.

Voir aussi

  • SVM::train() - Crée un modèle SVMModel suivant les données d'entraînement


Retourne les paramètres courants d’entraînement

  • « SVM::crossvalidate
  • SVM::setOptions »
  • PHP Manual
  • SVM
  • Retourne les paramètres courants d’entraînement

SVM::getOptions

(PECL svm >= 0.1.0)

SVM::getOptions — Retourne les paramètres courants d’entraînement

Description

public array SVM::getOptions ( void )

Récupère un tableau contenant les paramètres d’entraînement. Ces paramètres auront pour clés les constantes SVM prédéfinies.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les paramètres de configuration.


Définit des paramètres d'entraînement

  • « SVM::getOptions
  • SVM::train »
  • PHP Manual
  • SVM
  • Définit des paramètres d'entraînement

SVM::setOptions

(PECL svm >= 0.1.0)

SVM::setOptions — Définit des paramètres d'entraînement

Description

public bool SVM::setOptions ( array $params )

Définit un ou plusieurs paramètres d'entraînement.

Liste de paramètres

params

Un tableau de paramètres d'entraînement, dont les clés sont les constantes SVM.

Valeurs de retour

Retourne TRUE en cas de succès, et lance une exception SVMException si une erreur survient.


Crée un modèle SVMModel suivant les données d'entraînement

  • « SVM::setOptions
  • SVMModel »
  • PHP Manual
  • SVM
  • Crée un modèle SVMModel suivant les données d'entraînement

SVM::train

(PECL svm >= 0.1.0)

SVM::train — Crée un modèle SVMModel suivant les données d'entraînement

Description

public SVMModel svm::train ( array $problem [, array $weights ] )

Entraîne une machine vectorielle basée sur les données d'entraînement fournies.

Liste de paramètres

problem

Le problème peut être fourni de 3 façons. Un tableau, où les données doivent commencer par le libellé de la classe (habituellement 1 ou -1), suivi par une série de données sous la forme de paires dimensions/données. Une URL vers un fichier contenant un problème SVM Light formaté, dont chaque ligne commence par un nouvel exemple d'entraînement, le début de chaque ligne contient la classe (1 ou -1) puis, une série de valeurs de données séparées par une tabulation sous la forme clé:valeur. Un flux ouvert pointant vers une source de données formatée comme dans le fichier ci-dessus.

weights

Les poids sont des ensembles optionnels de paramètres de pondération pour les différentes classes, afin d'aider dans le comptage pour des jeux d'entraînement déséquilibrés. Par exemple, si les classes sont 1 et -1, et que -1 a plus d'exemples significatifs que le premier, le poids pour -1 pourrait être de 0.5. Les poids doivent être dans l'intervalle 0-1.

Valeurs de retour

Retourne un modèle SVMModel qui peut être utilisé pour classificer les données précédemment non vues. Lance une exception SVMException si une erreur survient.


La classe SVMModel

(PECL svm >= 0.1.0)

Introduction

SVMModel est le résultat final du processus d'entraînement. Il peut être utilisé pour classifier les données non vues précédentes.

Synopsis de la classe

SVMModel {
/* Méthodes */
public bool checkProbabilityModel ( void )
public __construct ([ string $filename ] )
public array getLabels ( void )
public int getNrClass ( void )
public int getSvmType ( void )
public float getSvrProbability ( void )
public bool load ( string $filename )
public float predict_probability ( array $data )
public float predict ( array $data )
public bool save ( string $filename )
}

Sommaire

  • SVMModel::checkProbabilityModel — Retourne TRUE si le modèle a des informations probablistes
  • SVMModel::__construct — Construit un nouvel objet SVMModel
  • SVMModel::getLabels — Récupère les labels utilisés pour entraîner le modèle
  • SVMModel::getNrClass — Retourne le nombre de classes utilisées pour entraîner le modèle
  • SVMModel::getSvmType — Récupère le type SVM utilisé pour entraîner le modèle
  • SVMModel::getSvrProbability — Récupère la valeur sigma pour les types de régression
  • SVMModel::load — Charge un modèle SVM sauvegardé
  • SVMModel::predict_probability — Retourne les probabilités pour les données précédentes non présentées
  • SVMModel::predict — Prédit une valeur pour des précédentes données non vues
  • SVMModel::save — Sauvegarde un modèle dans un fichier


Retourne TRUE si le modèle a des informations probablistes

  • « SVMModel
  • SVMModel::__construct »
  • PHP Manual
  • SVMModel
  • Retourne TRUE si le modèle a des informations probablistes

SVMModel::checkProbabilityModel

(PECL svm >= 0.1.5)

SVMModel::checkProbabilityModel — Retourne TRUE si le modèle a des informations probablistes

Description

public bool SVMModel::checkProbabilityModel ( void )

Retourne TRUE si le modèle a probablement des informations.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen.


Construit un nouvel objet SVMModel

  • « SVMModel::checkProbabilityModel
  • SVMModel::getLabels »
  • PHP Manual
  • SVMModel
  • Construit un nouvel objet SVMModel

SVMModel::__construct

(PECL svm >= 0.1.0)

SVMModel::__construct — Construit un nouvel objet SVMModel

Description

public SVMModel::__construct ([ string $filename ] )

Construit un nouvel objet SVMModel. Les modèles sont généralement construits depuis la fonction SVM::train, alors que les modèles sauvegardés peuvent être restaurés directement.

Liste de paramètres

filename

Le nom du fichier pour le modèle sauvegardé à charger.

Valeurs de retour

Lance une exception SVMException si une erreur survient.

Voir aussi

  • SVMModel::load() - Charge un modèle SVM sauvegardé


Récupère les labels utilisés pour entraîner le modèle

  • « SVMModel::__construct
  • SVMModel::getNrClass »
  • PHP Manual
  • SVMModel
  • Récupère les labels utilisés pour entraîner le modèle

SVMModel::getLabels

(PECL svm >= 0.1.5)

SVMModel::getLabels — Récupère les labels utilisés pour entraîner le modèle

Description

public array SVMModel::getLabels ( void )

Retourne un tableau de labels utilisés pour entraîner le modèle. Pour les cas de régression et pour les classes mobèles seules, un tableau vide est retourné.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau de labels.

Voir aussi

  • SVMModel::getNrClass() - Retourne le nombre de classes utilisées pour entraîner le modèle


Retourne le nombre de classes utilisées pour entraîner le modèle

  • « SVMModel::getLabels
  • SVMModel::getSvmType »
  • PHP Manual
  • SVMModel
  • Retourne le nombre de classes utilisées pour entraîner le modèle

SVMModel::getNrClass

(PECL svm >= 0.1.5)

SVMModel::getNrClass — Retourne le nombre de classes utilisées pour entraîner le modèle

Description

public int SVMModel::getNrClass ( void )

Retourne le nombre de classes utilisées pour entraîner le modèle ; retournera 2 pour une seule classe et pour les modèles de régression.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de classes, sous la forme d'un entier.


Récupère le type SVM utilisé pour entraîner le modèle

  • « SVMModel::getNrClass
  • SVMModel::getSvrProbability »
  • PHP Manual
  • SVMModel
  • Récupère le type SVM utilisé pour entraîner le modèle

SVMModel::getSvmType

(PECL svm >= 0.1.5)

SVMModel::getSvmType — Récupère le type SVM utilisé pour entraîner le modèle

Description

public int SVMModel::getSvmType ( void )

Retourne un entier représentant le type du modèle SVM utilisé, i.e. SVM::C_SVC.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le type SVM sous la forme d'un entier.


Récupère la valeur sigma pour les types de régression

  • « SVMModel::getSvmType
  • SVMModel::load »
  • PHP Manual
  • SVMModel
  • Récupère la valeur sigma pour les types de régression

SVMModel::getSvrProbability

(PECL svm >= 0.1.5)

SVMModel::getSvrProbability — Récupère la valeur sigma pour les types de régression

Description

public float SVMModel::getSvrProbability ( void )

Pour les modèles de régression, retourne une valeur sigma; S'il n'y a aucune information de probabilité ou le modèle n'est pas SVR, 0 sera retourné.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une valeur sigma.


Charge un modèle SVM sauvegardé

  • « SVMModel::getSvrProbability
  • SVMModel::predict_probability »
  • PHP Manual
  • SVMModel
  • Charge un modèle SVM sauvegardé

SVMModel::load

(PECL svm >= 0.1.00.1.0)

SVMModel::load — Charge un modèle SVM sauvegardé

Description

public bool SVMModel::load ( string $filename )

Charge un fichier de modèle prêt pour une classification ou une régression.

Liste de paramètres

filename

Le nom de fichier du modèle.

Valeurs de retour

Lance une exception SVMException en cas d'erreur. Retourne TRUE en cas de succès.

Voir aussi

  • SVMModel::save() - Sauvegarde un modèle dans un fichier


Retourne les probabilités pour les données précédentes non présentées

  • « SVMModel::load
  • SVMModel::predict »
  • PHP Manual
  • SVMModel
  • Retourne les probabilités pour les données précédentes non présentées

SVMModel::predict_probability

(PECL svm >= 0.1.4)

SVMModel::predict_probability — Retourne les probabilités pour les données précédentes non présentées

Description

public float SVMModel::predict_probability ( array $data )

Cette fonction accepte une tableau de données et tente de prédire la classe, comme avec les fonctions de prédiction. De plus, cependant, cette fonction retourne un tableau de probabilités, une par classe du modèle, qui représente la chanse estimée que les données fournies soient un membre de cette classe. Nécessite que le modèle à utiliser soit traité avec le paramètre de probabilité fixé à TRUE.

Liste de paramètres

data

Le tableau à classifier. Ce doit être une série de paires clé=>valeur dont les clés sont en ordre croissant, mais pas nécessairement continue.

probabilities

La valeur fournie sera complétée avec les probabilités. Ce peut être soit NULL dans le cas où le modèle ne contient aucune information de probabiblité, ou un tableau dont les index sont les noms de classe, et les valeurs, la probabilité.

Valeurs de retour

Retourne la valeur prédie. Ce sera un libel de classe dans le cas d'une classification, une valeur réelle dans le cas d'une régression. Lance une exception de type SVMException si une erreur survient.

Voir aussi

  • SVM::predict()


Prédit une valeur pour des précédentes données non vues

  • « SVMModel::predict_probability
  • SVMModel::save »
  • PHP Manual
  • SVMModel
  • Prédit une valeur pour des précédentes données non vues

SVMModel::predict

(PECL svm >= 0.1.0)

SVMModel::predict — Prédit une valeur pour des précédentes données non vues

Description

public float SVMModel::predict ( array $data )

Cette fonction accepte un tableau de données et tente de prédire la valeur de la classe ou de la régression, suivant le modèle extrait depuis les données précédemment entraînées.

Liste de paramètres

data

Le tableau à classifier. Ce peut être une série de paires clé => valeur dans l'ordre croissant des clés, mais non nécessairement continue.

Valeurs de retour

Retourne la valeur prédite. Ce peut être un libellé de classe dans le cas d'une classification, une valeur réelle dans le cas d'une régression. Lance une exception SVMException si une erreur survient.

Voir aussi

  • SVM::train() - Crée un modèle SVMModel suivant les données d'entraînement


Sauvegarde un modèle dans un fichier

  • « SVMModel::predict
  • SVN »
  • PHP Manual
  • SVMModel
  • Sauvegarde un modèle dans un fichier

SVMModel::save

(PECL svm >= 0.1.0)

SVMModel::save — Sauvegarde un modèle dans un fichier

Description

public bool SVMModel::save ( string $filename )

Sauvegarde le modèle de données dans un fichier, pour une utilisation ultérieure.

Liste de paramètres

filename

Le fichier dans lequel nous souhaitons sauvegarder le modèle.

Valeurs de retour

Lance une exception SVMException si une erreur survient. Retourne TRUE en cas de succès.

Voir aussi

  • SVMModel::load() - Charge un modèle SVM sauvegardé


Subversion

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions SVN
    • svn_add — Prévoit l'ajout d'un élément dans le dossier de travail
    • svn_auth_get_parameter — Récupère un paramètre d'identification
    • svn_auth_set_parameter — Spécifie un paramètre d'identification
    • svn_blame — Récupère les condamnations SVN pour un fichier
    • svn_cat — Récupère le contenu d'un fichier du référentiel
    • svn_checkout — Extrait une copie de travail depuis un référentiel
    • svn_cleanup — Nettoie, récursivement, un dossier de travail, en finissant les opérations incomplètes et en supprimant les verrous
    • svn_client_version — Récupère la version des bibliothèques clientes SVN
    • svn_commit — Envoie les modifications depuis la copie locale vers le référentiel
    • svn_delete — Efface un élément d'un dossier de travail ou d'un dépôt
    • svn_diff — Compare deux chemins, récursivement
    • svn_export — Exporte le contenu d'un dossier SVN
    • svn_fs_abort_txn — Stoppe une transaction
    • svn_fs_apply_text — Crée et retourne un flux à utiliser pour modifier un fichier
    • svn_fs_begin_txn2 — Crée une nouvelle transaction
    • svn_fs_change_node_prop — Retourne TRUE si tout est Ok, FALSE sinon
    • svn_fs_check_path — Détermine quel type d'élément est pointé par un chemin donné
    • svn_fs_contents_changed — Retourne TRUE si le contenu est différent, FALSE sinon
    • svn_fs_copy — Copie un fichier ou un dossier
    • svn_fs_delete — Supprime un fichier ou un dossier
    • svn_fs_dir_entries — Énumère les éléments d'un dossier
    • svn_fs_file_contents — Retourne un flux afin d'accéder au contenu d'un fichier pour une révision donnée
    • svn_fs_file_length — Retourne la taille d'un fichier pour une révision donnée
    • svn_fs_is_dir — Retourne TRUE si le chemin pointe vers un dossier, FALSE sinon
    • svn_fs_is_file — Retourne TRUE si le chemin pointe vers un fichier, FALSE sinon
    • svn_fs_make_dir — Crée un nouveau dossier
    • svn_fs_make_file — Crée un fichier vide
    • svn_fs_node_created_rev — Retourne la révision dans laquelle le chemin, sous fsroot, a été créé
    • svn_fs_node_prop — Retourne la valeur d'une propriété d'un noeud
    • svn_fs_props_changed — Retourne TRUE si les propriétés sont différentes, FALSE sinon
    • svn_fs_revision_prop — Récupère la valeur d'une propriété nommée
    • svn_fs_revision_root — Récupère un gestionnaire sur une révision spécifique sur la racine du référentiel
    • svn_fs_txn_root — Crée et retourne une transaction
    • svn_fs_youngest_rev — Retourne le numéro de la révision la plus récente du système de fichiers
    • svn_import — Importe un chemin non-versionné dans un référentiel
    • svn_log — Récupère le message d'historisation d'une URL du référentiel
    • svn_ls — Retourne la liste du contenu d'un dossier d'un référentiel, optionnellement à la révision fournie
    • svn_mkdir — Crée un dossier dans la copie de travail ou dans le référentiel
    • svn_repos_create — Crée un nouveau référentiel Subversion
    • svn_repos_fs_begin_txn_for_commit — Crée une nouvelle transaction
    • svn_repos_fs_commit_txn — Livre une transaction et retourne la nouvelle révision
    • svn_repos_fs — Récupère un gestionnaire du système de fichiers
    • svn_repos_hotcopy — Effectue une copie à chaud du référentiel
    • svn_repos_open — Ouvre un verrou partagé sur un référentiel
    • svn_repos_recover — Exécute les procédures de récupération du référentiel
    • svn_revert — Revenir en arrière sur les changements de la copie de travail
    • svn_status — Récupère le statut des fichiers et des dossiers de la copie de travail
    • svn_update — Met à jour la copie de travail


Introduction

Cette extension implémente les fonctions PHP pour » Subversion (SVN), un système de contrôle de versions, permettant aux scripts PHP de communiquer avec les référentiels SVN et les copies de travail, sans utiliser directement des appels aux exécutables svn.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.


Pré-requis

Les binaires Subversion ne sont pas nécessaires pour utiliser cette extension. Cependant, lors de la compilation de l'extension, libsvn (les en-têtes Subversion) doit être disponible.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/svn

Si ./configure n'arrive pas à trouver les fichiers SVN (par exemple, Subversion a été installé avec un préfixe de dossier personnalisé), utilisez la commande ./configure --with-svn=$USR_PATH pour spécifier le dossier où include/subversion-1/ se trouve.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Avertissement

Si cette extension est compilée avec la bibliothèque libsvn 1.3, les fonctions qui fonctionnent avec les copies de travail échoueront sur les copies de travail créées par Subversion 1.4.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SVN_REVISION_HEAD (entier)
Nombre magique (-1) spécifiant la révision HEAD
Constantes utilisables avec svn_auth_set_parameter()
SVN_AUTH_PARAM_DEFAULT_USERNAME (chaîne de caractères)
Propriété pour le nom d'utilisateur par défaut, à utiliser lors de l'identification de base
SVN_AUTH_PARAM_DEFAULT_PASSWORD (chaîne de caractères)
Propriété pour le mot de passe par défaut, à utiliser lors de l'identification de base
SVN_AUTH_PARAM_NON_INTERACTIVE (chaîne de caractères)
SVN_AUTH_PARAM_DONT_STORE_PASSWORDS (chaîne de caractères)
SVN_AUTH_PARAM_NO_AUTH_CACHE (chaîne de caractères)
SVN_AUTH_PARAM_SSL_SERVER_FAILURES (chaîne de caractères)
SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO (chaîne de caractères)
SVN_AUTH_PARAM_CONFIG (chaîne de caractères)
SVN_AUTH_PARAM_SERVER_GROUP (chaîne de caractères)
SVN_AUTH_PARAM_CONFIG_DIR (chaîne de caractères)
PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS (chaîne de caractères)
Propriété personnalisée pour ignorer les erreurs de vérification du certificat SSL
Constantes de système de fichiers
SVN_FS_CONFIG_FS_TYPE (chaîne de caractères)
Clé de configuration qui détermine le type de système de fichiers
SVN_FS_TYPE_BDB (chaîne de caractères)
Le système de fichiers est Berkeley-DB
SVN_FS_TYPE_FSFS (chaîne de caractères)
Le système de fichiers est "système de fichiers natifs"
Constantes de propriétés réservées
SVN_PROP_REVISION_DATE (chaîne de caractères)
svn:date
SVN_PROP_REVISION_ORIG_DATE (chaîne de caractères)
svn:original-date
SVN_PROP_REVISION_AUTHOR (chaîne de caractères)
svn:author
SVN_PROP_REVISION_LOG (chaîne de caractères)
svn:log
Constantes de statut des copies de travail
SVN_WC_STATUS_NONE (entier)
Le statut n'existe pas
SVN_WC_STATUS_UNVERSIONED (entier)
L'élément n'est pas versionné dans la copie de travail
SVN_WC_STATUS_NORMAL (entier)
L'élément existe, rien d'autre n'intervient
SVN_WC_STATUS_ADDED (entier)
L'élément est programmé pour être ajouté
SVN_WC_STATUS_MISSING (entier)
L'élément est versionné mais est absent de la copie de travail
SVN_WC_STATUS_DELETED (entier)
L'élément est marqué pour effacement
SVN_WC_STATUS_REPLACED (entier)
L'élément a été supprimé, puis, ajouté à nouveau
SVN_WC_STATUS_MODIFIED (entier)
L'élément (texte ou propriété) a été modifié
SVN_WC_STATUS_MERGED (entier)
Les modifications de l'élément local ont été fusionnées avec les modifications du référentiel
SVN_WC_STATUS_CONFLICTED (entier)
Les modifications de l'élément local entrent en conflit avec les modifications du référentiel
SVN_WC_STATUS_IGNORED (entier)
L'élément n'est pas versionné mais est configuré pour être ignoré
SVN_WC_STATUS_OBSTRUCTED (entier)
L'élément non versionné s'apprête à être une ressource versionnée
SVN_WC_STATUS_EXTERNAL (entier)
Le chemin non versionné a été rempli en utilisant svn:externals
SVN_WC_STATUS_INCOMPLETE (entier)
Le dossier ne contient pas une liste complète d'entrées
Constantes de type de noeud
SVN_NODE_NONE (entier)
Absent
SVN_NODE_FILE (entier)
Fichier
SVN_NODE_DIR (entier)
Dossier
SVN_NODE_UNKNOWN (entier)
Quelque chose que Subversion n'arrive pas à identifier


Fonctions SVN

Sommaire

  • svn_add — Prévoit l'ajout d'un élément dans le dossier de travail
  • svn_auth_get_parameter — Récupère un paramètre d'identification
  • svn_auth_set_parameter — Spécifie un paramètre d'identification
  • svn_blame — Récupère les condamnations SVN pour un fichier
  • svn_cat — Récupère le contenu d'un fichier du référentiel
  • svn_checkout — Extrait une copie de travail depuis un référentiel
  • svn_cleanup — Nettoie, récursivement, un dossier de travail, en finissant les opérations incomplètes et en supprimant les verrous
  • svn_client_version — Récupère la version des bibliothèques clientes SVN
  • svn_commit — Envoie les modifications depuis la copie locale vers le référentiel
  • svn_delete — Efface un élément d'un dossier de travail ou d'un dépôt
  • svn_diff — Compare deux chemins, récursivement
  • svn_export — Exporte le contenu d'un dossier SVN
  • svn_fs_abort_txn — Stoppe une transaction
  • svn_fs_apply_text — Crée et retourne un flux à utiliser pour modifier un fichier
  • svn_fs_begin_txn2 — Crée une nouvelle transaction
  • svn_fs_change_node_prop — Retourne TRUE si tout est Ok, FALSE sinon
  • svn_fs_check_path — Détermine quel type d'élément est pointé par un chemin donné
  • svn_fs_contents_changed — Retourne TRUE si le contenu est différent, FALSE sinon
  • svn_fs_copy — Copie un fichier ou un dossier
  • svn_fs_delete — Supprime un fichier ou un dossier
  • svn_fs_dir_entries — Énumère les éléments d'un dossier
  • svn_fs_file_contents — Retourne un flux afin d'accéder au contenu d'un fichier pour une révision donnée
  • svn_fs_file_length — Retourne la taille d'un fichier pour une révision donnée
  • svn_fs_is_dir — Retourne TRUE si le chemin pointe vers un dossier, FALSE sinon
  • svn_fs_is_file — Retourne TRUE si le chemin pointe vers un fichier, FALSE sinon
  • svn_fs_make_dir — Crée un nouveau dossier
  • svn_fs_make_file — Crée un fichier vide
  • svn_fs_node_created_rev — Retourne la révision dans laquelle le chemin, sous fsroot, a été créé
  • svn_fs_node_prop — Retourne la valeur d'une propriété d'un noeud
  • svn_fs_props_changed — Retourne TRUE si les propriétés sont différentes, FALSE sinon
  • svn_fs_revision_prop — Récupère la valeur d'une propriété nommée
  • svn_fs_revision_root — Récupère un gestionnaire sur une révision spécifique sur la racine du référentiel
  • svn_fs_txn_root — Crée et retourne une transaction
  • svn_fs_youngest_rev — Retourne le numéro de la révision la plus récente du système de fichiers
  • svn_import — Importe un chemin non-versionné dans un référentiel
  • svn_log — Récupère le message d'historisation d'une URL du référentiel
  • svn_ls — Retourne la liste du contenu d'un dossier d'un référentiel, optionnellement à la révision fournie
  • svn_mkdir — Crée un dossier dans la copie de travail ou dans le référentiel
  • svn_repos_create — Crée un nouveau référentiel Subversion
  • svn_repos_fs_begin_txn_for_commit — Crée une nouvelle transaction
  • svn_repos_fs_commit_txn — Livre une transaction et retourne la nouvelle révision
  • svn_repos_fs — Récupère un gestionnaire du système de fichiers
  • svn_repos_hotcopy — Effectue une copie à chaud du référentiel
  • svn_repos_open — Ouvre un verrou partagé sur un référentiel
  • svn_repos_recover — Exécute les procédures de récupération du référentiel
  • svn_revert — Revenir en arrière sur les changements de la copie de travail
  • svn_status — Récupère le statut des fichiers et des dossiers de la copie de travail
  • svn_update — Met à jour la copie de travail


Prévoit l'ajout d'un élément dans le dossier de travail

  • « Fonctions SVN
  • svn_auth_get_parameter »
  • PHP Manual
  • Fonctions SVN
  • Prévoit l'ajout d'un élément dans le dossier de travail

svn_add

(PECL svn >= 0.1.0)

svn_add — Prévoit l'ajout d'un élément dans le dossier de travail

Description

bool svn_add ( string $path [, bool $recursive = true [, bool $force = false ]] )

Ajoute un fichier, un dossier ou un lien symbolique, en utilisant le chemin path dans le dossier de travail. L'élément sera ajouté au référentiel au prochain appel de la fonction svn_commit() sur la copie de travail.

Liste de paramètres

path

Chemin de l'élément à ajouter.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

recursive

Si l'élément est un dossier, si l'on doit ou non ajouter récursivement tout son contenu. Par défaut, vaut TRUE

force

Si vaut TRUE, Subversion cherchera récursivement dans les dossiers versionnés existants afin d'ajouter tous les fichiers qui ne sont actuellement pas versionnés. Par défaut, vaut FALSE

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple avec svn_add()

Dans un dossier de travail où la commande svn status retourne :

$ svn status
?      foobar.txt

...ce code:

<?php
svn_add('foobar.txt');
?>

...marquera le fichier foobar.txt comme fichier à ajouter dans le dossier.

Voir aussi

  • » Documentation SVN sur la commande "svn add"


Récupère un paramètre d'identification

  • « svn_add
  • svn_auth_set_parameter »
  • PHP Manual
  • Fonctions SVN
  • Récupère un paramètre d'identification

svn_auth_get_parameter

(PECL svn >= 0.1.0)

svn_auth_get_parameter — Récupère un paramètre d'identification

Description

string svn_auth_get_parameter ( string $key )

Récupère le paramètre d'identification dont la clé est key. Pour une list de clés valides ainsi que leurs significations, consultez la liste des constantes d'identification.

Liste de paramètres

key

Nom de la clé. Utilisez une constante d'identification définie par cette extension pour spécifier une clé..

Valeurs de retour

Retourne la valeur du paramètre dont la clé est key ; retourne NULL si le paramètre n'existe pas.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • svn_auth_set_parameter() - Spécifie un paramètre d'identification
  • Constantes d'identification


Spécifie un paramètre d'identification

  • « svn_auth_get_parameter
  • svn_blame »
  • PHP Manual
  • Fonctions SVN
  • Spécifie un paramètre d'identification

svn_auth_set_parameter

(PECL svn >= 0.1.0)

svn_auth_set_parameter — Spécifie un paramètre d'identification

Description

void svn_auth_set_parameter ( string $key , string $value )

Spécifie le paramètre d'identification key à la valeur value. Pour une liste de clés valides ainsi que leurs significations, reportez-vous à la liste des constantes d'identification.

Liste de paramètres

key

Nom de la clé. Utilisez une constante d'identification définie par cette extension pour spécifier la clé.

value

Valeur à définir pour la nouvelle clé. Le format de la valeur varie avec le paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'identification

Cet exemple configure SVN avec, comme nom d'utilisateur "Bob" et comme mot de passe "abc123" :

<?php
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'abc123');
?>

Voir aussi

  • svn_auth_get_parameter() - Récupère un paramètre d'identification
  • Constantes d'identification


Récupère les condamnations SVN pour un fichier

  • « svn_auth_set_parameter
  • svn_cat »
  • PHP Manual
  • Fonctions SVN
  • Récupère les condamnations SVN pour un fichier

svn_blame

(PECL svn >= 0.3.0)

svn_blame — Récupère les condamnations SVN pour un fichier

Description

array svn_blame ( string $repository_url [, int $revision_no = SVN_REVISION_HEAD ] )

Récupère les condamnations SVN pour un fichier à partir d'une URL du référentiel.

Liste de paramètres

repository_url

L'URL du référentiel.

revision_no

Le numéro de révision.

Valeurs de retour

Un tableau des informations de condamnation SVN séparées par ligne qui incluent le numéro de révision, le numéro de ligne, la ligne de code, l'auteur et la date.

Exemples

Exemple #1 Exemple d'utilisation de svn_blame()

<?php
$svnurl = 'http://svn.example.org/svnroot/foo/trunk/index.php';

print_r( svn_blame($svnurl) );

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] = Array
          (
           [rev] = 1
           [line_no] = 1
           [line] = Hello World
           [author] = joesmith
           [date] = 2007-07-02T05:51:26.628396Z
          )
    [1] = Array
          ...

Voir aussi

  • svn_diff() - Compare deux chemins, récursivement
  • svn_logs()
  • svn_status() - Récupère le statut des fichiers et des dossiers de la copie de travail


Récupère le contenu d'un fichier du référentiel

  • « svn_blame
  • svn_checkout »
  • PHP Manual
  • Fonctions SVN
  • Récupère le contenu d'un fichier du référentiel

svn_cat

(PECL svn >= 0.1.0)

svn_cat — Récupère le contenu d'un fichier du référentiel

Description

string svn_cat ( string $repos_url [, int $revision_no ] )

Récupère le contenu du fichier pointé par l'URL repos_url du référentiel, optionnellement, à la révision revision_no.

Liste de paramètres

repos_url

URL de l'élément du référentiel.

revision_no

Numéro de révision de l'élément à récupérer ; par défaut, vaut HEAD.

Valeurs de retour

Retourne le contenu de l'élément depuis le référentiel en cas de succès, et FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple récupère le contenu d'un fichier, à la révision 28 :

<?php
$contents = svn_cat('http://www.example.com/svnroot/calc/gui.c', 28)
?>

Voir aussi

  • svn_list()
  • » Documentation SVN sur la commande "svn cat"


Extrait une copie de travail depuis un référentiel

  • « svn_cat
  • svn_cleanup »
  • PHP Manual
  • Fonctions SVN
  • Extrait une copie de travail depuis un référentiel

svn_checkout

(PECL svn >= 0.1.0)

svn_checkout — Extrait une copie de travail depuis un référentiel

Description

bool svn_checkout ( string $repos , string $targetpath [, int $revision [, int $flags = 0 ]] )

Extrait une copie de travail depuis le référentiel repos vers targetpath à la révision revision.

Liste de paramètres

repos

URL du dossier dans le référentiel à extraire.

targetpath

Chemin local du dossier dans lequel on effectue l'extraction

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

revision

Numéro de révision du référentiel à extraire. Par défaut, vaut HEAD, la révision la plus récente.

flags

Toute combinaison de SVN_NON_RECURSIVE et SVN_IGNORE_EXTERNALS.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple montre comment extraire un dossier depuis un référentiel vers un dossier nommé "calc" :

<?php
svn_checkout('http://www.example.com/svnroot/calc/trunk', dirname(__FILE__) . '/calc');
?>

L'utilisation de dirname(__FILE__) est nécessaire afin de convertir le chemin relatif du dossier calc en un chemin absolu. Si calc existe, vous pouvez également utiliser realpath() pour récupérer un chemin absolu.

Voir aussi

  • svn_add() - Prévoit l'ajout d'un élément dans le dossier de travail
  • svn_commit() - Envoie les modifications depuis la copie locale vers le référentiel
  • svn_status() - Récupère le statut des fichiers et des dossiers de la copie de travail
  • svn_update() - Met à jour la copie de travail
  • » Documentation SVN sur la commande "svn checkout"


Nettoie, récursivement, un dossier de travail, en finissant les opérations incomplètes et en supprimant les verrous

  • « svn_checkout
  • svn_client_version »
  • PHP Manual
  • Fonctions SVN
  • Nettoie, récursivement, un dossier de travail, en finissant les opérations incomplètes et en supprimant les verrous

svn_cleanup

(PECL svn >= 0.1.0)

svn_cleanup — Nettoie, récursivement, un dossier de travail, en finissant les opérations incomplètes et en supprimant les verrous

Description

bool svn_cleanup ( string $workingdir )

Nettoie, récursivement, un dossier de travail workingdir, en finissant les opérations incomplètes et en supprimant les verrous. À utiliser lorsque la copie de travail n'est plus fonctionnelle.

Liste de paramètres

workingdir

Chemin vers le dossier local de travail, à nettoyer.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple montre comment nettoyer une copie de travail d'un dossier nommé "help-me" :

<?php
svn_cleanup(realpath('help-me'));
?>

La fonction realpath() doit être appelée, vu la mauvaise gestion des chemins relatifs par SVN.

Voir aussi

  • update()
  • » Documentation SVN sur la commande "svn cleanup"


Récupère la version des bibliothèques clientes SVN

  • « svn_cleanup
  • svn_commit »
  • PHP Manual
  • Fonctions SVN
  • Récupère la version des bibliothèques clientes SVN

svn_client_version

(PECL svn >= 0.1.0)

svn_client_version — Récupère la version des bibliothèques clientes SVN

Description

string svn_client_version ( void )

Récupère la version des bibliothèques clientes SVN.

Valeurs de retour

Numéro de la version, habituellement sous la forme x.y.z.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

<?php
echo svn_client_version();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1.3.1


Envoie les modifications depuis la copie locale vers le référentiel

  • « svn_client_version
  • svn_delete »
  • PHP Manual
  • Fonctions SVN
  • Envoie les modifications depuis la copie locale vers le référentiel

svn_commit

(PECL svn >= 0.1.0)

svn_commit — Envoie les modifications depuis la copie locale vers le référentiel

Description

array svn_commit ( string $log , array $targets [, bool $recursive = true ] )

Livre les modifications effectuées sur les fichiers locaux énumérés par le tableau targets dans le référentiel, avec le message log. Les dossiers contenus dans le tableau targets seront livrés récursivement tant que le paramètre recursive n'a pas été défini à FALSE.

Note: Cette fonction ne contient aucun paramètre spécifique à l'identification, aussi, le nom d'utilisateur et le mot de passe doivent être définis en utilisant la fonction svn_auth_set_parameter()

Liste de paramètres

log

Message d'historisation à utiliser lors de la livraison.

targets

Tableau de chemins locaux des fichiers à livrer.

Avertissement

Ce paramètre doit être un tableau ; une chaîne pour une cible unique n'est pas acceptée.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

recursive

Drapeau de type booléen pour désactiver la récursivité lors de la livraison de dossiers dans le tableau targets. Par défaut, vaut TRUE.

Valeurs de retour

Retourne un tableau, sous la forme :

array(
    0 => numéro (entier) de révision de la livraison
    1 => Date et heure (format ISO 8601) de la livraison
    2 => nom d'utilisateur de la personne ayant livré
)

Retourne FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple livre le dossier "calculator" dans le référentiel, en utilisant comme nom d'utilisateur "Bob" et comme mot de passe "abc123" :

<?php
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'abc123');
var_dump(svn_commit('Message d\'historisation de Bob', array(realpath('calculator'))));
?>

L'exemple ci-dessus va afficher :

array(
  0 => 1415,
  1 => '2007-05-26T01:44:28.453125Z',
  2 => 'Bob'
)

Voir aussi

  • svn_auth_set_parameter() - Spécifie un paramètre d'identification
  • » Documentation SVN sur la commande "svn commit"


Efface un élément d'un dossier de travail ou d'un dépôt

  • « svn_commit
  • svn_diff »
  • PHP Manual
  • Fonctions SVN
  • Efface un élément d'un dossier de travail ou d'un dépôt

svn_delete

(PECL svn >= 0.4.0)

svn_delete — Efface un élément d'un dossier de travail ou d'un dépôt

Description

bool svn_delete ( string $path [, bool $force = false ] )

Efface un fichier, un dossier ou un lien symbolique, suivant le path utilisé, depuis un dossier de travail. L'élément sera effacé depuis le dépôt au prochain appel à la fonction svn_commit() sur le dossier de travail.

Liste de paramètres

path

Chemin vers l'élément à effacer.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

force

Si vaut TRUE, le fichier sera effacé même s'il a des modifications locales. Sinon, les modifications locales feront échouées la fonction. Par défaut, vaut FALSE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

  • » Documentation SVN sur l'effacement


Compare deux chemins, récursivement

  • « svn_delete
  • svn_export »
  • PHP Manual
  • Fonctions SVN
  • Compare deux chemins, récursivement

svn_diff

(PECL svn >= 0.1.0)

svn_diff — Compare deux chemins, récursivement

Description

array svn_diff ( string $path1 , int $rev1 , string $path2 , int $rev2 )

Compare deux chemins, path1 et path2, récursivement.

Note:

Ce n'est pas un véritable utilitaire de comparaison. Seuls les fichiers locaux qui sont versionnés peuvent être comparés : les autres fichiers échoueront.

Liste de paramètres

path1

Premier chemin. Peut être une URL vers un fichier/dossier d'un référentiel SVN ou un chemin vers un fichier/dossier local.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

Avertissement

Si un chemin vers un fichier local n'a que des antislashs et aucun slashs, cette extension échouera. Remplacez toujours tous les antislashs avec des slashs lorsque vous utilisez cette fonction.

rev1

Numéro de révision du premier chemin. Utilisez la constante SVN_REVISON_HEAD pour spécifier la révision la plus récente.

path2

Deuxième chemin à comparer. Voir le paramètre path1 pour la description.

rev2

Numéro de révision du second chemin. Voir le paramètre rev1 pour la description.

Valeurs de retour

Retourne un tableau contenant 2 flux : le premier représente la sortie de la comparaison, et le second contient les erreurs. Les flux peuvent être lus en utilisant la fonction fread(). Retourne FALSE ou NULL si une erreur survient.

La sortie du comparateur peut, par défaut, être au format de comparaison unifié Subversion, mais un » moteur externe de comparaison peut être utilisé, suivant la configuration SVN.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple montre une utilisation basique de cette fonction et récupère le contenu depuis les flux :

<?php
list($diff, $errors) = svn_diff(
    'http://www.example.com/svnroot/trunk/foo', SVN_REVISION_HEAD,
    'http://www.example.com/svnroot/branches/dev/foo', SVN_REVISION_HEAD
);
if (!$diff) exit;
$contents = '';
while (!feof($diff)) {
  $contents .= fread($diff, 8192);
}
fclose($diff);
fclose($errors);
var_dump($contents);
?>

L'exemple ci-dessus va afficher :

Index: http://www.example.com/svnroot/trunk/foo
===================================================================
--- http://www.example.com/svnroot/trunk/foo        (.../foo) (revision 23)
+++ http://www.example.com/svnroot/branches/dev/foo (.../foo) (revision 27)
 // further diff output

Exemple #2 Comparaison de deux révisions d'un chemin du référentiel

Cet exemple implémente un gestionnaire permettant à un utilisateur de comparer facilement deux révisions d'un élément en utilisant un chemin de référentiel externe (la syntaxe par défaut est verbeuse) :

<?php
function svn_diff_same_item($path, $rev1, $rev2) {
    return svn_diff($path, $rev1, $path, $rev2);
}
?>

Exemple #3 Comparaison, plus portable, de deux fichiers locaux

Cet exemple implémente un gestionnaire permettant de comparer deux fichiers locaux, de façon plus portable en gérant le problème de realpath() et le bogue sur les antislashs :

<?php
function svn_diff_local($path1, $rev1, $path2, $rev2) {
    $path1 = str_replace('\\', '/', realpath($path1));
    $path2 = str_replace('\\', '/', realpath($path2));
    return svn_diff($path1, $rev1, $path2, $rev2);
}
?>

Voir aussi

  • » Documentation SVN sur la commande "svn diff"


Exporte le contenu d'un dossier SVN

  • « svn_diff
  • svn_fs_abort_txn »
  • PHP Manual
  • Fonctions SVN
  • Exporte le contenu d'un dossier SVN

svn_export

(PECL svn >= 0.3.0)

svn_export — Exporte le contenu d'un dossier SVN

Description

bool svn_export ( string $frompath , string $topath [, bool $working_copy = true [, int $revision_no = -1 ]] )

Exporte le contenu soit d'une copie de travail, soit d'un référentiel dans un dossier "propre".

Liste de paramètres

frompath

Le chemin du dossier à exporter.

topath

Le chemin du nouveau dossier.

working_copy

Si TRUE, ceci exportera aussi les fichiers non-livrés de la copie de travail.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple d'utilisation de svn_export()

<?php
$working_dir     = '../';
$new_working_dir = '/home/user/devel/foo/trunk';

svn_export($working_dir, $new_working_dir);
?>

Voir aussi

  • svn_import() - Importe un chemin non-versionné dans un référentiel


Stoppe une transaction

  • « svn_export
  • svn_fs_apply_text »
  • PHP Manual
  • Fonctions SVN
  • Stoppe une transaction

svn_fs_abort_txn

(PECL svn >= 0.2.0)

svn_fs_abort_txn — Stoppe une transaction

Description

bool svn_fs_abort_txn ( resource $txn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Stoppe une transaction, retourne TRUE si tout est Ok, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Crée et retourne un flux à utiliser pour modifier un fichier

  • « svn_fs_abort_txn
  • svn_fs_begin_txn2 »
  • PHP Manual
  • Fonctions SVN
  • Crée et retourne un flux à utiliser pour modifier un fichier

svn_fs_apply_text

(PECL svn >= 0.2.0)

svn_fs_apply_text — Crée et retourne un flux à utiliser pour modifier un fichier

Description

resource svn_fs_apply_text ( resource $root , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée et retourne un flux à utiliser pour modifier un fichier.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Crée une nouvelle transaction

  • « svn_fs_apply_text
  • svn_fs_change_node_prop »
  • PHP Manual
  • Fonctions SVN
  • Crée une nouvelle transaction

svn_fs_begin_txn2

(PECL svn >= 0.2.0)

svn_fs_begin_txn2 — Crée une nouvelle transaction

Description

resource svn_fs_begin_txn2 ( resource $repos , int $rev )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée une nouvelle transaction.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Retourne TRUE si tout est Ok, FALSE sinon

  • « svn_fs_begin_txn2
  • svn_fs_check_path »
  • PHP Manual
  • Fonctions SVN
  • Retourne TRUE si tout est Ok, FALSE sinon

svn_fs_change_node_prop

(PECL svn >= 0.2.0)

svn_fs_change_node_prop — Retourne TRUE si tout est Ok, FALSE sinon

Description

bool svn_fs_change_node_prop ( resource $root , string $path , string $name , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne TRUE si tout est Ok, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Détermine quel type d'élément est pointé par un chemin donné

  • « svn_fs_change_node_prop
  • svn_fs_contents_changed »
  • PHP Manual
  • Fonctions SVN
  • Détermine quel type d'élément est pointé par un chemin donné

svn_fs_check_path

(PECL svn >= 0.1.0)

svn_fs_check_path — Détermine quel type d'élément est pointé par un chemin donné

Description

int svn_fs_check_path ( resource $fsroot , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Détermine quel type d'élément est pointé par un chemin donné.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Retourne TRUE si le contenu est différent, FALSE sinon

  • « svn_fs_check_path
  • svn_fs_copy »
  • PHP Manual
  • Fonctions SVN
  • Retourne TRUE si le contenu est différent, FALSE sinon

svn_fs_contents_changed

(PECL svn >= 0.2.0)

svn_fs_contents_changed — Retourne TRUE si le contenu est différent, FALSE sinon

Description

bool svn_fs_contents_changed ( resource $root1 , string $path1 , resource $root2 , string $path2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne TRUE si le contenu est différent, FALSE sinon

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Copie un fichier ou un dossier

  • « svn_fs_contents_changed
  • svn_fs_delete »
  • PHP Manual
  • Fonctions SVN
  • Copie un fichier ou un dossier

svn_fs_copy

(PECL svn >= 0.2.0)

svn_fs_copy — Copie un fichier ou un dossier

Description

bool svn_fs_copy ( resource $from_root , string $from_path , resource $to_root , string $to_path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Copie un fichier ou un dossier ; retourne TRUE en cas de succès, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Supprime un fichier ou un dossier

  • « svn_fs_copy
  • svn_fs_dir_entries »
  • PHP Manual
  • Fonctions SVN
  • Supprime un fichier ou un dossier

svn_fs_delete

(PECL svn >= 0.2.0)

svn_fs_delete — Supprime un fichier ou un dossier

Description

bool svn_fs_delete ( resource $root , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Supprime un fichier ou un dossier ; retourne TRUE en cas de succès, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Énumère les éléments d'un dossier

  • « svn_fs_delete
  • svn_fs_file_contents »
  • PHP Manual
  • Fonctions SVN
  • Énumère les éléments d'un dossier

svn_fs_dir_entries

(PECL svn >= 0.1.0)

svn_fs_dir_entries — Énumère les éléments d'un dossier

Description

array svn_fs_dir_entries ( resource $fsroot , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Énumère les éléments d'un dossier.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Retourne un flux afin d'accéder au contenu d'un fichier pour une révision donnée

  • « svn_fs_dir_entries
  • svn_fs_file_length »
  • PHP Manual
  • Fonctions SVN
  • Retourne un flux afin d'accéder au contenu d'un fichier pour une révision donnée

svn_fs_file_contents

(PECL svn >= 0.1.0)

svn_fs_file_contents — Retourne un flux afin d'accéder au contenu d'un fichier pour une révision donnée

Description

resource svn_fs_file_contents ( resource $fsroot , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne un flux afin d'accéder au contenu d'un fichier pour une révision donnée.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Retourne la taille d'un fichier pour une révision donnée

  • « svn_fs_file_contents
  • svn_fs_is_dir »
  • PHP Manual
  • Fonctions SVN
  • Retourne la taille d'un fichier pour une révision donnée

svn_fs_file_length

(PECL svn >= 0.1.0)

svn_fs_file_length — Retourne la taille d'un fichier pour une révision donnée

Description

int svn_fs_file_length ( resource $fsroot , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la taille d'un fichier pour une révision donnée.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Retourne TRUE si le chemin pointe vers un dossier, FALSE sinon

  • « svn_fs_file_length
  • svn_fs_is_file »
  • PHP Manual
  • Fonctions SVN
  • Retourne TRUE si le chemin pointe vers un dossier, FALSE sinon

svn_fs_is_dir

(PECL svn >= 0.2.0)

svn_fs_is_dir — Retourne TRUE si le chemin pointe vers un dossier, FALSE sinon

Description

bool svn_fs_is_dir ( resource $root , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne TRUE si le chemin pointe vers un dossier, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Retourne TRUE si le chemin pointe vers un fichier, FALSE sinon

  • « svn_fs_is_dir
  • svn_fs_make_dir »
  • PHP Manual
  • Fonctions SVN
  • Retourne TRUE si le chemin pointe vers un fichier, FALSE sinon

svn_fs_is_file

(PECL svn >= 0.2.0)

svn_fs_is_file — Retourne TRUE si le chemin pointe vers un fichier, FALSE sinon

Description

bool svn_fs_is_file ( resource $root , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne TRUE si le chemin pointe vers un fichier, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Crée un nouveau dossier

  • « svn_fs_is_file
  • svn_fs_make_file »
  • PHP Manual
  • Fonctions SVN
  • Crée un nouveau dossier

svn_fs_make_dir

(PECL svn >= 0.2.0)

svn_fs_make_dir — Crée un nouveau dossier

Description

bool svn_fs_make_dir ( resource $root , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée un nouveau dossier, retourne TRUE si tout est Ok, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Crée un fichier vide

  • « svn_fs_make_dir
  • svn_fs_node_created_rev »
  • PHP Manual
  • Fonctions SVN
  • Crée un fichier vide

svn_fs_make_file

(PECL svn >= 0.2.0)

svn_fs_make_file — Crée un fichier vide

Description

bool svn_fs_make_file ( resource $root , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée un fichier vide, retourne TRUE si tout est Ok, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Retourne la révision dans laquelle le chemin, sous fsroot, a été créé

  • « svn_fs_make_file
  • svn_fs_node_prop »
  • PHP Manual
  • Fonctions SVN
  • Retourne la révision dans laquelle le chemin, sous fsroot, a été créé

svn_fs_node_created_rev

(PECL svn >= 0.1.0)

svn_fs_node_created_rev — Retourne la révision dans laquelle le chemin, sous fsroot, a été créé

Description

int svn_fs_node_created_rev ( resource $fsroot , string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la révision dans laquelle le chemin, sous fsroot, a été créé.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Retourne la valeur d'une propriété d'un noeud

  • « svn_fs_node_created_rev
  • svn_fs_props_changed »
  • PHP Manual
  • Fonctions SVN
  • Retourne la valeur d'une propriété d'un noeud

svn_fs_node_prop

(PECL svn >= 0.1.0)

svn_fs_node_prop — Retourne la valeur d'une propriété d'un noeud

Description

string svn_fs_node_prop ( resource $fsroot , string $path , string $propname )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne la valeur d'une propriété d'un noeud.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Retourne TRUE si les propriétés sont différentes, FALSE sinon

  • « svn_fs_node_prop
  • svn_fs_revision_prop »
  • PHP Manual
  • Fonctions SVN
  • Retourne TRUE si les propriétés sont différentes, FALSE sinon

svn_fs_props_changed

(PECL svn >= 0.2.0)

svn_fs_props_changed — Retourne TRUE si les propriétés sont différentes, FALSE sinon

Description

bool svn_fs_props_changed ( resource $root1 , string $path1 , resource $root2 , string $path2 )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne TRUE si les propriétés sont différentes, FALSE sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Récupère la valeur d'une propriété nommée

  • « svn_fs_props_changed
  • svn_fs_revision_root »
  • PHP Manual
  • Fonctions SVN
  • Récupère la valeur d'une propriété nommée

svn_fs_revision_prop

(PECL svn >= 0.1.0)

svn_fs_revision_prop — Récupère la valeur d'une propriété nommée

Description

string svn_fs_revision_prop ( resource $fs , int $revnum , string $propname )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère la valeur d'une propriété nommée.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Récupère un gestionnaire sur une révision spécifique sur la racine du référentiel

  • « svn_fs_revision_prop
  • svn_fs_txn_root »
  • PHP Manual
  • Fonctions SVN
  • Récupère un gestionnaire sur une révision spécifique sur la racine du référentiel

svn_fs_revision_root

(PECL svn >= 0.1.0)

svn_fs_revision_root — Récupère un gestionnaire sur une révision spécifique sur la racine du référentiel

Description

resource svn_fs_revision_root ( resource $fs , int $revnum )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère un gestionnaire sur une révision spécifique de la racine du référentiel.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Crée et retourne une transaction

  • « svn_fs_revision_root
  • svn_fs_youngest_rev »
  • PHP Manual
  • Fonctions SVN
  • Crée et retourne une transaction

svn_fs_txn_root

(PECL svn >= 0.2.0)

svn_fs_txn_root — Crée et retourne une transaction

Description

resource svn_fs_txn_root ( resource $txn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée et retourne une transaction.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Retourne le numéro de la révision la plus récente du système de fichiers

  • « svn_fs_txn_root
  • svn_import »
  • PHP Manual
  • Fonctions SVN
  • Retourne le numéro de la révision la plus récente du système de fichiers

svn_fs_youngest_rev

(PECL svn >= 0.1.0)

svn_fs_youngest_rev — Retourne le numéro de la révision la plus récente du système de fichiers

Description

int svn_fs_youngest_rev ( resource $fs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne le numéro de la révision la plus récente du système de fichiers.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Importe un chemin non-versionné dans un référentiel

  • « svn_fs_youngest_rev
  • svn_log »
  • PHP Manual
  • Fonctions SVN
  • Importe un chemin non-versionné dans un référentiel

svn_import

(PECL svn >= 0.2.0)

svn_import — Importe un chemin non-versionné dans un référentiel

Description

bool svn_import ( string $path , string $url , bool $nonrecursive )

Livre un chemin path non-versionné dans le référentiel à l'URL url. Si path est un dossier et nonrecursive vaut FALSE, le dossier sera importé récursivement.

Liste de paramètres

path

Chemin vers le fichier ou le dossier à importer.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

url

URL du référentiel dans lequel on importe.

nonrecursive

Si l'on doit ou non effectuer une importation récursive.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple monte un usage classique de cette fonction. Pour importer un dossier nommé "new-files" dans le référentiel à l'URL "http://www.example.com/svnroot/incoming/abc", utilisez :

<?php
svn_import(realpath('new-files'), 'http://www.example.com/svnroot/incoming/abc', false);
?>

Voir aussi

  • svn_add() - Prévoit l'ajout d'un élément dans le dossier de travail
  • » Documentation SVN sur la commande "svn import"


Récupère le message d'historisation d'une URL du référentiel

  • « svn_import
  • svn_ls »
  • PHP Manual
  • Fonctions SVN
  • Récupère le message d'historisation d'une URL du référentiel

svn_log

(PECL svn >= 0.1.0)

svn_log — Récupère le message d'historisation d'une URL du référentiel

Description

array svn_log ( string $repos_url [, int $start_revision [, int $end_revision [, int $limit = 0 [, int $flags = SVN_DISCOVER_CHANGED_PATHS | SVN_STOP_ON_COPY ]]]] )

svn_log() récupère l'historique complète de l'élément correspondant à l'URL repos_url, ou l'historique d'une révision spécifique si start_revision est spécifié. Cette fonction est équivalent à la commande svn log --verbose -r $start_revision $repos_url.

Liste de paramètres

repos_url

URL dans le référentiel de l'élément dont on doit récupérer l'historique.

start_revision

Numéro de révision de la première historisation à récupérer. Utilisez la constante SVN_REVISION_HEAD pour récupérer l'historisation de la révision la plus récente.

end_revision

Numéro de révision de la dernière historisation à récupérer. Par défaut vaut start_revision s'elle est spécifié sinon vaut la constante SVN_REVISION_INITIAL.

limit

Nombre d'historisations à récupérer.

flags

Toutes combinaisons de SVN_OMIT_MESSAGES, SVN_DISCOVER_CHANGED_PATHS et SVN_STOP_ON_COPY.

Valeurs de retour

En cas de succès, cette fonction retourne un tableau de fichiers au format :

[0] => Tableau, ordonné du numéro de révision le plus grand, au plus petit
(
    [rev] => numéro de révision
    [author] => nom de l'auteur
    [msg] => message d'historisation
    [date] => date, au format ISO 8601, i.e. date('c')
    [paths] => Tableau, décrivant les fichiers modifiés
        (
            [0] => Array
                (
                    [action] => lettre, spécifiant la modification
                    [path] =>  chemin absolu du référentiel vers le fichier modifié
                )
            [1] => ...
        )
)
[1] => ...

Note:

La sortie sera toujours un tableau indexé numériquement de tableaux, même s'il n'y en a aucun, ou seulement un seul message d'historisation.

La valeur de action est une sous-partie de » la sortie de statut dans la première colonne, où les valeurs possibles sont :

Actions
Lettre | Description
M | L'élément a été modifié
A | L'élément a été ajouté
D | L'élément a été effacé
R | L'élément a été remplacé

Si aucune modification n'a été effectué à l'élément, un tableau vide sera retourné.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple avec svn_log()

<?php
print_r( svn_log('http://www.example.com/', 23) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
    (
        [rev] => 23
        [author] => 'joe'
        [msg] => 'Add cheese and salami to our sandwich.'
        [date] => '2007-04-06T16:00:27-04:00'
        [paths] => Array
            (
                [0] => Array
                    (
                        [action] => 'M'
                        [path] =>  '/sandwich.txt'
                    )
            )
    )
)

Voir aussi

  • » Documentation SVN pour la commande "svn log"


Retourne la liste du contenu d'un dossier d'un référentiel, optionnellement à la révision fournie

  • « svn_log
  • svn_mkdir »
  • PHP Manual
  • Fonctions SVN
  • Retourne la liste du contenu d'un dossier d'un référentiel, optionnellement à la révision fournie

svn_ls

(PECL svn >= 0.1.0)

svn_ls — Retourne la liste du contenu d'un dossier d'un référentiel, optionnellement à la révision fournie

Description

array svn_ls ( string $repos_url [, int $revision_no = SVN_REVISION_HEAD [, bool $recurse = false [, bool $peg = false ]]] )

Cette fonction interroge l'URL du référentiel et retourne une liste des fichiers et dossiers, optionnellement depuis une révision spécifique. C'est l'équivalent de la commande svn list $repos_url[@$revision_no]

Note:

Cette fonction ne fonctionne pas avec les copies de travail. repos_url DOIT être une URL de référentiel.

Liste de paramètres

url

URL du référentiel, e.g. http://www.example.com/svnroot. Pour accéder à un référentiel local Subversion via le système de fichiers, utilisez l'URI suivant : file:///home/user/svn-repos

revision

Numéro de révision à utiliser. S'il est omis, HEAD sera utilisé.

recurse

Active la récursivité.

Valeurs de retour

En cas de succès, cette fonction retourne un tableau de fichiers, listés sous la forme :

[0] => Array
    (
        [created_rev] => numéro de révision de la dernière édition
        [last_author] => nom de l'auteur de la dernière édition
        [size] => taille du fichier
        [time] => date et heure de la dernière édition, au format 'M d H:i'
                  ou 'M d Y', suivant l'âge du fichier
        [time_t] => timestamp Unix de la dernière édition
        [name] => nom du fichier ou du dossier
        [type] => type, peut être 'file' ou 'dir'
    )
[1] => ...

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple avec svn_ls()

<?php
print_r( svn_ls('http://www.example.com/svnroot/') );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [created_rev] => 20
            [last_author] => Joe
            [size] => 0
            [time] => Apr 02 09:28
            [time_t] => 1175520529
            [name] => tags
            [type] => dir
        )
    [1] => Array
        (
            [created_rev] => 23
            [last_author] => Bob
            [size] => 0
            [time] => Apr 02 15:15
            [time_t] => 1175541322
            [name] => trunk
            [type] => dir
        )
)

Voir aussi

  • » Documentation SVN sur la commande "svn list"


Crée un dossier dans la copie de travail ou dans le référentiel

  • « svn_ls
  • svn_repos_create »
  • PHP Manual
  • Fonctions SVN
  • Crée un dossier dans la copie de travail ou dans le référentiel

svn_mkdir

(PECL svn >= 0.4.0)

svn_mkdir — Crée un dossier dans la copie de travail ou dans le référentiel

Description

bool svn_mkdir ( string $path [, string $log_message ] )

Crée un dossier dans la copie de travail ou dans le référentiel.

Liste de paramètres

path

Le chemin vers la copie de travail ou le référentiel.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • svn_add() - Prévoit l'ajout d'un élément dans le dossier de travail
  • svn_copy()


Crée un nouveau référentiel Subversion

  • « svn_mkdir
  • svn_repos_fs_begin_txn_for_commit »
  • PHP Manual
  • Fonctions SVN
  • Crée un nouveau référentiel Subversion

svn_repos_create

(PECL svn >= 0.1.0)

svn_repos_create — Crée un nouveau référentiel Subversion

Description

resource svn_repos_create ( string $path [, array $config [, array $fsconfig ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée un nouveau référentiel Subversion dans le chemin fourni.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Crée une nouvelle transaction

  • « svn_repos_create
  • svn_repos_fs_commit_txn »
  • PHP Manual
  • Fonctions SVN
  • Crée une nouvelle transaction

svn_repos_fs_begin_txn_for_commit

(PECL svn >= 0.2.0)

svn_repos_fs_begin_txn_for_commit — Crée une nouvelle transaction

Description

resource svn_repos_fs_begin_txn_for_commit ( resource $repos , int $rev , string $author , string $log_msg )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Crée une nouvelle transaction.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Livre une transaction et retourne la nouvelle révision

  • « svn_repos_fs_begin_txn_for_commit
  • svn_repos_fs »
  • PHP Manual
  • Fonctions SVN
  • Livre une transaction et retourne la nouvelle révision

svn_repos_fs_commit_txn

(PECL svn >= 0.2.0)

svn_repos_fs_commit_txn — Livre une transaction et retourne la nouvelle révision

Description

int svn_repos_fs_commit_txn ( resource $txn )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Livre une transaction et retourne la nouvelle révision.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Récupère un gestionnaire du système de fichiers

  • « svn_repos_fs_commit_txn
  • svn_repos_hotcopy »
  • PHP Manual
  • Fonctions SVN
  • Récupère un gestionnaire du système de fichiers

svn_repos_fs

(PECL svn >= 0.1.0)

svn_repos_fs — Récupère un gestionnaire du système de fichiers

Description

resource svn_repos_fs ( resource $repos )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère un gestionnaire du système de fichiers.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Effectue une copie à chaud du référentiel

  • « svn_repos_fs
  • svn_repos_open »
  • PHP Manual
  • Fonctions SVN
  • Effectue une copie à chaud du référentiel

svn_repos_hotcopy

(PECL svn >= 0.1.0)

svn_repos_hotcopy — Effectue une copie à chaud du référentiel

Description

bool svn_repos_hotcopy ( string $repospath , string $destpath , bool $cleanlogs )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Effectue une copie à chaud du référentiel situé dans repospath vers destpath.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Ouvre un verrou partagé sur un référentiel

  • « svn_repos_hotcopy
  • svn_repos_recover »
  • PHP Manual
  • Fonctions SVN
  • Ouvre un verrou partagé sur un référentiel

svn_repos_open

(PECL svn >= 0.1.0)

svn_repos_open — Ouvre un verrou partagé sur un référentiel

Description

resource svn_repos_open ( string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Ouvre un verrou partagé sur un référentiel.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Exécute les procédures de récupération du référentiel

  • « svn_repos_open
  • svn_revert »
  • PHP Manual
  • Fonctions SVN
  • Exécute les procédures de récupération du référentiel

svn_repos_recover

(PECL svn >= 0.1.0)

svn_repos_recover — Exécute les procédures de récupération du référentiel

Description

bool svn_repos_recover ( string $path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Exécute les procédures de récupération du référentiel.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.


Revenir en arrière sur les changements de la copie de travail

  • « svn_repos_recover
  • svn_status »
  • PHP Manual
  • Fonctions SVN
  • Revenir en arrière sur les changements de la copie de travail

svn_revert

(PECL svn >= 0.3.0)

svn_revert — Revenir en arrière sur les changements de la copie de travail

Description

bool svn_revert ( string $path [, bool $recursive = false ] )

Revient en arrière sur tout changement local du chemin dans la copie de travail.

Liste de paramètres

path

Le chemin vers l'élément dans la copie de travail.

recursive

Optionnellement applique ceci récursivement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • svn_delete() - Efface un élément d'un dossier de travail ou d'un dépôt
  • svn_export() - Exporte le contenu d'un dossier SVN


Récupère le statut des fichiers et des dossiers de la copie de travail

  • « svn_revert
  • svn_update »
  • PHP Manual
  • Fonctions SVN
  • Récupère le statut des fichiers et des dossiers de la copie de travail

svn_status

(PECL svn >= 0.1.0)

svn_status — Récupère le statut des fichiers et des dossiers de la copie de travail

Description

array svn_status ( string $path [, int $flags = 0 ] )

Retourne le statut des fichiers et des dossiers de la copie de travail, en fournissant les modifications, les ajouts, les suppressions, ainsi que les autres modifications des éléments de la copie de travail.

Liste de paramètres

path

Chemin local vers le fichier ou le dossier dont on souhaite récupérer le statut.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

flags

Toute combinaison de SVN_NON_RECURSIVE, SVN_ALL (indépendamment du statut de modification), SVN_SHOW_UPDATES (les entrées seront ajoutées pour les éléments qui ne sont pas à jour), SVN_NO_IGNORE (néglige les propriétés svn:ignore lors de l'analyse des nouveaux fichiers) et SVN_IGNORE_EXTERNALS.

Valeurs de retour

Retourne un tableau indexé numériquement de tableaux associatifs détaillant le statut des éléments du référentiel :

Array (
    [0] => Array (
        // information sur l'élément
    )
    [1] => ...
)

L'information sur un élément est un tableau associatif qui peut contenir les clés suivantes :

path
Chemin vers le fichier/dossier de cette entrée sur le système de fichiers local.
text_status
Statut du texte de l'élément. Référez-vous aux constantes de statut pour les valeurs possibles.
repos_text_status
Statut du texte de l'élément dans le référentiel. Ne survient que si update est défini à TRUE. Référez-vous aux constantes de statut pour les valeurs possibles.
prop_status
Statut de la propriété de l'élément. Référez-vous aux constantes de statut pour les valeurs possibles.
repos_prop_status
Statut de la propriété de l'élément dans le référentiel. Ne survient que si update est défini à TRUE. Référez-vous aux constantes de statut pour les valeurs possibles.
locked
Si l'élément est verrouillé. (Définit que si TRUE.)
copied
Si l'élément a été copié ou non (prévu pour l'ajout avec la journalisation). (Définit que si TRUE.)
switched
Si l'élément a changé de référentiel de référence, en utilisant la commande switch. (Définit que si TRUE)

Ces clés ne sont définies que si l'élément est versionné :

name
Nom de base de l'élément dans le référentiel.
url
URL de l'élément dans le référentiel.
repos
URL de base du référentiel.
revision
Révision de l'élément dans la copie de travail.
kind
Type de l'élément, i.e. fichier ou dossier. Référez-vous aux constantes de type pour les valeurs possibles.
schedule
Action prévue pour l'élément, i.e. ajout ou suppression. Les constantes pour ces nombres magiques ne sont pas disponibles, elles peuvent être émulées en utilisant :
<?php
if (!defined('svn_wc_schedule_normal')) {
    define('svn_wc_schedule_normal',  0); // rien de spécial
    define('svn_wc_schedule_add',     1); // élément à ajouté
    define('svn_wc_schedule_delete',  2); // élément à supprimé
    define('svn_wc_schedule_replace', 3); // élément à ajouté et effacé
}
?>
deleted
Si l'élément a été supprimé, mais les révisions parentes existent toujours (Définit que si TRUE.)
absent
Si l'élément est absent, mais que Subversion sait qu'il devrait se trouver ici. (Définit que si TRUE.)
incomplete
Si l'entrée du fichier pour un dossier est incomplète. (Définit que si TRUE.)
cmt_date
Timestamp Unix de la date de la dernière validation. (Non-Affecté par le paramètre update).
cmt_rev
Révision de la dernière livraison. (Non-Affecté par le paramètre update).
cmt_author
Nom de l'auteur de la dernière livraison. (Non-Affecté par le paramètre update).
prop_time
Timestamp Unix représentant la date/heure de la dernière mise à jour des propriétés.
text_time
Timestamp Unix représentant la date/heure de la dernière mise à jour du texte.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple montre une utilisation basique de cette fonction.

<?php
print_r(svn_status(realpath('wc')));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array (
    [0] => Array (
        [path] => /home/bob/wc/sandwich.txt
        [text_status] => 8 // l'élément a été modifié
        [repos_text_status] => 1 // Aucune information disponible, utilisez update
        [prop_status] => 3 // aucun changement
        [repos_prop_status] => 1 // Aucune information disponible, utilisez update
        [name] => sandwich.txt
        [url] => http://www.example.com/svnroot/deli/trunk/sandwich.txt
        [repos] => http://www.example.com/svnroot/
        [revision] => 123
        [kind] => 1 // fichier
        [schedule] => 0 // aucune action de prévue
        [cmt_date] => 1165543135
        [cmt_rev] => 120
        [cmt_author] => Alice
        [prop_time] => 1180201728
        [text_time] => 1180201729
    )
)

Voir aussi

  • svn_update() - Met à jour la copie de travail
  • svn_log() - Récupère le message d'historisation d'une URL du référentiel
  • » Documentation SVN de la commande "svn status"


Met à jour la copie de travail

  • « svn_status
  • TCP »
  • PHP Manual
  • Fonctions SVN
  • Met à jour la copie de travail

svn_update

(PECL svn >= 0.1.0)

svn_update — Met à jour la copie de travail

Description

int svn_update ( string $path [, int $revno = SVN_REVISION_HEAD [, bool $recurse = true ]] )

Met à jour la copie de travail pointée par le chemin path à la révision revno. Si recurse vaut TRUE, les dossiers seront mis à jour récursivement.

Liste de paramètres

path

Chemin vers la copie de travail locale.

Note: Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

revno

Numéro de révision vers lequel mettre à jour ; vaut par défaut SVN_REVISION_HEAD.

recurse

Si l'on doit ou non mettre à jour les dossiers récursivement.

Valeurs de retour

Retourne le nouveau numéro de révision en cas de succès, ou FALSE si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple montre une utilisation basique de cette fonction :

<?php
echo svn_update(realpath('working-copy'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

234

Voir aussi

  • svn_checkout() - Extrait une copie de travail depuis un référentiel
  • svn_commit() - Envoie les modifications depuis la copie locale vers le référentiel
  • » Documentation SVN pour la commande "svn update"


TCP Wrappers

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions TCP
    • tcpwrap_check — Vérification Tcpwrap


Introduction

L'extension TCP wrappers fournit un mécanisme classique Unix conçu pour vérifier si le client est capable de se connecter à partir d'une IP donnée.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/tcpwrap.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


  • « Types de ressources
  • Fonctions TCP »
  • PHP Manual
  • TCP
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


  • « Constantes pré-définies
  • tcpwrap_check »
  • PHP Manual
  • TCP
  • Fonctions TCP

Fonctions TCP

Sommaire

  • tcpwrap_check — Vérification Tcpwrap


Vérification Tcpwrap

  • « Fonctions TCP
  • Varnish »
  • PHP Manual
  • Fonctions TCP
  • Vérification Tcpwrap

tcpwrap_check

(PECL tcpwrap >= 0.1.0)

tcpwrap_check — Vérification Tcpwrap

Description

bool tcpwrap_check ( string $daemon , string $address [, string $user [, bool $nodns = false ]] )

tcpwrap_check() consulte les fichiers /etc/hosts.allow et /etc/hosts.deny pour vérifier si l'accès au service daemon est permis ou pas pour un client.

Liste de paramètres

daemon

Le nom du service.

address

L'adresse distante du client. Peut être soit une adresse IP, soit un nom de domaine.

user

Un nom d'utilisateur, optionnel.

nodns

Si address ressemble à un nom de domaine, DNS est utilisé pour le résoudre en adresse IP ; définissez nodns à TRUE pour éviter ce comportement.

Valeurs de retour

Cette fonction retourne TRUE si l'accès doit être autorisé, FALSE sinon.

Exemples

Exemple #1 Refuser toutes les connexions depuis localhost

Si votre fichier /etc/hosts.deny contient :

php: 127.0.0.1

Et votre code ressemble à :

<?php
if (!tcpwrap_check('php', $_SERVER['REMOTE_ADDR'])) {
  die('Vous n\'êtes pas le bienvenu ici');
}
?>

Voir aussi

Pour plus de détails, consultez la page man de hosts_access(3).


Varnish

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Exemple d'utilisation de VarnishAdmin
    • Exemple d'utilisation de VarnishStat
    • Exemple d'utilisation de VarnishLog
  • VarnishAdmin — La classe VarnishAdmin
    • VarnishAdmin::auth — S'Authentifie sur une instance Varnish
    • VarnishAdmin::ban — Ban des URLs en utilisant une expression VCL
    • VarnishAdmin::banUrl — Ban une URL en utilisant une expressin VCL
    • VarnishAdmin::clearPanic — Efface les messages de panique de l'instance Varnish
    • VarnishAdmin::connect — Connexion à l'interface d'administration de l'instance Varnish
    • VarnishAdmin::__construct — Constructeur VarnishAdmin
    • VarnishAdmin::disconnect — Déconnexion de l'interface d'administration d'une instance varnish
    • VarnishAdmin::getPanic — Récupère le dernier ùessage de panique de l'instance Varnish
    • VarnishAdmin::getParams — Récupère les paramètres de configuration de l'instance Varnish courante
    • VarnishAdmin::isRunning — Vérifie si un processus esclave Varnish est actuellement en cours d'exécution
    • VarnishAdmin::setCompat — Définit le paramètre de configuration compat
    • VarnishAdmin::setHost — Définit le paramètre de configuration host
    • VarnishAdmin::setIdent — Définit le paramètre de configuration ident
    • VarnishAdmin::setParam — Définit un paramètre de configuration sur l'instance courante Varnish
    • VarnishAdmin::setPort — Définit le paramètre de configuration port
    • VarnishAdmin::setSecret — Définit le paramètre de configuration secret
    • VarnishAdmin::setTimeout — Définit le paramètre de configuration timeout
    • VarnishAdmin::start — Démarre un processus Varnish
    • VarnishAdmin::stop — Arrête un processus Varnish
  • VarnishStat — La classe VarnishStat
    • VarnishStat::__construct — Constructeur VarnishStat
    • VarnishStat::getSnapshot — Récupère les statistiques de l'instance courante Varnish
  • VarnishLog — La classe VarnishLog
    • VarnishLog::__construct — Constructeur Varnishlog
    • VarnishLog::getLine — Récupère la prochaine ligne de log
    • VarnishLog::getTagName — Récupère le nom de la balise représenté par son index


Introduction

Le cache Varnish est un logiciel open source, permettant d'accélérer les applications web. Cette extension permet d’interagir avec une instance Varnish via un socket TCP ou en mémoire partagée.


Pré-requis

Pour utiliser cette extension, vous devez avoir installé Varnish Cache en version >=3.0, disponible depuis la » page web du projet.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/varnish.

Une bibliothèque DLL pour cette extension est disponible à l'adresse » http://windows.php.net/downloads/pecl/releases/varnish/.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

VARNISH_STATUS_SYNTAX (entier)
VARNISH_STATUS_UNKNOWN (entier)
VARNISH_STATUS_UNIMPL (entier)
VARNISH_STATUS_TOOFEW (entier)
VARNISH_STATUS_TOOMANY (entier)
VARNISH_STATUS_PARAM (entier)
VARNISH_STATUS_AUTH (entier)
VARNISH_STATUS_OK (entier)
VARNISH_STATUS_CANT (entier)
VARNISH_STATUS_COMMS (entier)
VARNISH_STATUS_CLOSE (entier)
VARNISH_CONFIG_IDENT (chaîne de caractères)
VARNISH_CONFIG_HOST (chaîne de caractères)
VARNISH_CONFIG_PORT (chaîne de caractères)
VARNISH_CONFIG_TIMEOUT (chaîne de caractères)
VARNISH_CONFIG_SECRET (chaîne de caractères)
VARNISH_CONFIG_COMPAT (chaîne de caractères)
VARNISH_COMPAT_2 (entier)
VARNISH_COMPAT_3 (entier)


Exemples

Sommaire

  • Exemple d'utilisation de VarnishAdmin
  • Exemple d'utilisation de VarnishStat
  • Exemple d'utilisation de VarnishLog


Exemple d'utilisation de VarnishAdmin

Cet exemple montre une utilisation simple de la fonctionnalité ban.

Exemple #1 Bannir une URL

<?php

$args = array(
    VARNISH_CONFIG_HOST    => "::1",
    VARNISH_CONFIG_PORT    => 6082,
    VARNISH_CONFIG_SECRET  => "5174826b-8595-4958-aa7a-0609632ad7ca",
    VARNISH_CONFIG_TIMEOUT => 300,
);

$va = new VarnishAdmin($args);

try {
    if(!$va->connect()) {
        throw new VarnishException("Connection failed\n");
    }
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

try {
    if(!$va->auth()) {
        throw new VarnishException("Auth failed\n");
    }
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

try {
    $status = $va->ban('req.url ~ "^/$"');
    if (VARNISH_STATUS_OK != $status) {
        throw new VarnishException("Ban method returned $status status\n");
    }
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

exit(0);

?>


Exemple d'utilisation de VarnishStat

Cet exemple montre comme récupérer les statistiques Varnish depuis la mémoire partagée.

Exemple #1 Récupération de statistiques

<?php

$vs = new VarnishStat;

try {
    $data = $vs->getSnapshot();
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

exit(0);
?>


Exemple d'utilisation de VarnishLog

Cet exemple montre comme lire des lignes des logs Varnish depuis la mémoire partagée.

Exemple #1 Lecture des logs Varnish depuis la mémoire partagée

<?php

$vl = new VarnishLog;
while(1) {
    $line = $vl->getLine();
    printf("%s %d %s", VarnishLog::getTagName($line['tag'], $line['id'],
    $line['data']);
}

exit(0);
?>


La classe VarnishAdmin

(PECL varnish >= 0.3)

Introduction

Synopsis de la classe

VarnishAdmin {
/* Méthodes */
public bool auth ( void )
public int ban ( string $vcl_regex )
public int banUrl ( string $vcl_regex )
public int clearPanic ( void )
public bool connect ( void )
public __construct ([ array $args ] )
public bool disconnect ( void )
public string getPanic ( void )
public array getParams ( void )
public bool isRunning ( void )
public void setCompat ( int $compat )
public void setHost ( string $host )
public void setIdent ( string $ident )
public int setParam ( string $name , string|integer $value )
public void setPort ( int $port )
public void setSecret ( string $secret )
public void setTimeout ( int $timeout )
public int start ( void )
public int stop ( void )
}

Sommaire

  • VarnishAdmin::auth — S'Authentifie sur une instance Varnish
  • VarnishAdmin::ban — Ban des URLs en utilisant une expression VCL
  • VarnishAdmin::banUrl — Ban une URL en utilisant une expressin VCL
  • VarnishAdmin::clearPanic — Efface les messages de panique de l'instance Varnish
  • VarnishAdmin::connect — Connexion à l'interface d'administration de l'instance Varnish
  • VarnishAdmin::__construct — Constructeur VarnishAdmin
  • VarnishAdmin::disconnect — Déconnexion de l'interface d'administration d'une instance varnish
  • VarnishAdmin::getPanic — Récupère le dernier ùessage de panique de l'instance Varnish
  • VarnishAdmin::getParams — Récupère les paramètres de configuration de l'instance Varnish courante
  • VarnishAdmin::isRunning — Vérifie si un processus esclave Varnish est actuellement en cours d'exécution
  • VarnishAdmin::setCompat — Définit le paramètre de configuration compat
  • VarnishAdmin::setHost — Définit le paramètre de configuration host
  • VarnishAdmin::setIdent — Définit le paramètre de configuration ident
  • VarnishAdmin::setParam — Définit un paramètre de configuration sur l'instance courante Varnish
  • VarnishAdmin::setPort — Définit le paramètre de configuration port
  • VarnishAdmin::setSecret — Définit le paramètre de configuration secret
  • VarnishAdmin::setTimeout — Définit le paramètre de configuration timeout
  • VarnishAdmin::start — Démarre un processus Varnish
  • VarnishAdmin::stop — Arrête un processus Varnish


S'Authentifie sur une instance Varnish

  • « VarnishAdmin
  • VarnishAdmin::ban »
  • PHP Manual
  • VarnishAdmin
  • S'Authentifie sur une instance Varnish

VarnishAdmin::auth

(PECL varnish >= 0.3)

VarnishAdmin::auth — S'Authentifie sur une instance Varnish

Description

public bool VarnishAdmin::auth ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Ban des URLs en utilisant une expression VCL

  • « VarnishAdmin::auth
  • VarnishAdmin::banUrl »
  • PHP Manual
  • VarnishAdmin
  • Ban des URLs en utilisant une expression VCL

VarnishAdmin::ban

(PECL varnish >= 0.3)

VarnishAdmin::ban — Ban des URLs en utilisant une expression VCL

Description

public int VarnishAdmin::ban ( string $vcl_regex )

Liste de paramètres

vcl_regex

Expression VLC Varnish. Elle est basée sur la commande ban de Varnish.

Valeurs de retour

Retourne le statut de la commande Varnish.


Ban une URL en utilisant une expressin VCL

  • « VarnishAdmin::ban
  • VarnishAdmin::clearPanic »
  • PHP Manual
  • VarnishAdmin
  • Ban une URL en utilisant une expressin VCL

VarnishAdmin::banUrl

(PECL varnish >= 0.3)

VarnishAdmin::banUrl — Ban une URL en utilisant une expressin VCL

Description

public int VarnishAdmin::banUrl ( string $vcl_regex )

Liste de paramètres

vcl_regex

Expression rationnelle dans une syntaxe compatible PCRE. Elle est basée sur la commande ban.url de Varnish.

Valeurs de retour

Retourne le statut de la commande Varnish.


Efface les messages de panique de l'instance Varnish

  • « VarnishAdmin::banUrl
  • VarnishAdmin::connect »
  • PHP Manual
  • VarnishAdmin
  • Efface les messages de panique de l'instance Varnish

VarnishAdmin::clearPanic

(PECL varnish >= 0.4)

VarnishAdmin::clearPanic — Efface les messages de panique de l'instance Varnish

Description

public int VarnishAdmin::clearPanic ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le statut de la commande Varnish.


Connexion à l'interface d'administration de l'instance Varnish

  • « VarnishAdmin::clearPanic
  • VarnishAdmin::__construct »
  • PHP Manual
  • VarnishAdmin
  • Connexion à l'interface d'administration de l'instance Varnish

VarnishAdmin::connect

(PECL varnish >= 0.3)

VarnishAdmin::connect — Connexion à l'interface d'administration de l'instance Varnish

Description

public bool VarnishAdmin::connect ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Constructeur VarnishAdmin

  • « VarnishAdmin::connect
  • VarnishAdmin::disconnect »
  • PHP Manual
  • VarnishAdmin
  • Constructeur VarnishAdmin

VarnishAdmin::__construct

(PECL varnish >= 0.3)

VarnishAdmin::__construct — Constructeur VarnishAdmin

Description

public VarnishAdmin::__construct ([ array $args ] )

Liste de paramètres

args

Arguments de configuration. Les clés possibles sont :

VARNISH_CONFIG_IDENT - identification de l'instance locale Varnish
VARNISH_CONFIG_HOST - adresse IP de l'instance Varnish
VARNISH_CONFIG_PORT - port de l'instance Varnish
VARNISH_CONFIG_SECRET - Secret de l'instance Varnish
VARNISH_CONFIG_TIMEOUT - Délai d'attente maximale pour la lecture sur la connexion
VARNISH_CONFIG_COMPAT - Compatibilité majeur de la version Varnish

Valeurs de retour

Exemples

Exemple #1 Exemple avec VarnishAdmin::__construct()

<?php
    $args = array(
        VARNISH_CONFIG_HOST => "::1",
        VARNISH_CONFIG_PORT => 6082,
        VARNISH_CONFIG_SECRET => "5174826b-8595-4958-aa7a-0609632ad7ca",
        VARNISH_CONFIG_TIMEOUT => 300,
    );
    $va = new VarnishAdmin($args);
?>


Déconnexion de l'interface d'administration d'une instance varnish

  • « VarnishAdmin::__construct
  • VarnishAdmin::getPanic »
  • PHP Manual
  • VarnishAdmin
  • Déconnexion de l'interface d'administration d'une instance varnish

VarnishAdmin::disconnect

(PECL varnish >= 1.0.0)

VarnishAdmin::disconnect — Déconnexion de l'interface d'administration d'une instance varnish

Description

public bool VarnishAdmin::disconnect ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Récupère le dernier ùessage de panique de l'instance Varnish

  • « VarnishAdmin::disconnect
  • VarnishAdmin::getParams »
  • PHP Manual
  • VarnishAdmin
  • Récupère le dernier ùessage de panique de l'instance Varnish

VarnishAdmin::getPanic

(PECL varnish >= 0.4)

VarnishAdmin::getPanic — Récupère le dernier ùessage de panique de l'instance Varnish

Description

public string VarnishAdmin::getPanic ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le dernier message de panique de l'instance Varnish courante.


Récupère les paramètres de configuration de l'instance Varnish courante

  • « VarnishAdmin::getPanic
  • VarnishAdmin::isRunning »
  • PHP Manual
  • VarnishAdmin
  • Récupère les paramètres de configuration de l'instance Varnish courante

VarnishAdmin::getParams

(PECL varnish >= 0.4)

VarnishAdmin::getParams — Récupère les paramètres de configuration de l'instance Varnish courante

Description

public array VarnishAdmin::getParams ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les paramètres de configuration de l'instance Varnish.


Vérifie si un processus esclave Varnish est actuellement en cours d'exécution

  • « VarnishAdmin::getParams
  • VarnishAdmin::setCompat »
  • PHP Manual
  • VarnishAdmin
  • Vérifie si un processus esclave Varnish est actuellement en cours d'exécution

VarnishAdmin::isRunning

(PECL varnish >= 0.3)

VarnishAdmin::isRunning — Vérifie si un processus esclave Varnish est actuellement en cours d'exécution

Description

public bool VarnishAdmin::isRunning ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Définit le paramètre de configuration compat

  • « VarnishAdmin::isRunning
  • VarnishAdmin::setHost »
  • PHP Manual
  • VarnishAdmin
  • Définit le paramètre de configuration compat

VarnishAdmin::setCompat

(PECL varnish >= 0.9.2)

VarnishAdmin::setCompat — Définit le paramètre de configuration compat

Description

public void VarnishAdmin::setCompat ( int $compat )

Liste de paramètres

compat

Option de compatibilité Varnish.

Valeurs de retour


Définit le paramètre de configuration host

  • « VarnishAdmin::setCompat
  • VarnishAdmin::setIdent »
  • PHP Manual
  • VarnishAdmin
  • Définit le paramètre de configuration host

VarnishAdmin::setHost

(PECL varnish >= 0.8)

VarnishAdmin::setHost — Définit le paramètre de configuration host

Description

public void VarnishAdmin::setHost ( string $host )

Liste de paramètres

host

Paramètre de configuration host.

Valeurs de retour


Définit le paramètre de configuration ident

  • « VarnishAdmin::setHost
  • VarnishAdmin::setParam »
  • PHP Manual
  • VarnishAdmin
  • Définit le paramètre de configuration ident

VarnishAdmin::setIdent

(PECL varnish >= 0.8)

VarnishAdmin::setIdent — Définit le paramètre de configuration ident

Description

public void VarnishAdmin::setIdent ( string $ident )

Liste de paramètres

ident

Paramètre de configuration ident.

Valeurs de retour


Définit un paramètre de configuration sur l'instance courante Varnish

  • « VarnishAdmin::setIdent
  • VarnishAdmin::setPort »
  • PHP Manual
  • VarnishAdmin
  • Définit un paramètre de configuration sur l'instance courante Varnish

VarnishAdmin::setParam

(PECL varnish >= 0.4)

VarnishAdmin::setParam — Définit un paramètre de configuration sur l'instance courante Varnish

Description

public int VarnishAdmin::setParam ( string $name , string|integer $value )

Liste de paramètres

name

Nom du paramètre de configuration.

value

Valeur du paramètre de configuration.

Valeurs de retour

Retourne le statut de la commande Varnish.


Définit le paramètre de configuration port

  • « VarnishAdmin::setParam
  • VarnishAdmin::setSecret »
  • PHP Manual
  • VarnishAdmin
  • Définit le paramètre de configuration port

VarnishAdmin::setPort

(PECL varnish >= 0.8)

VarnishAdmin::setPort — Définit le paramètre de configuration port

Description

public void VarnishAdmin::setPort ( int $port )

Liste de paramètres

port

Le paramètre de configuration port.

Valeurs de retour


Définit le paramètre de configuration secret

  • « VarnishAdmin::setPort
  • VarnishAdmin::setTimeout »
  • PHP Manual
  • VarnishAdmin
  • Définit le paramètre de configuration secret

VarnishAdmin::setSecret

(PECL varnish >= 0.8)

VarnishAdmin::setSecret — Définit le paramètre de configuration secret

Description

public void VarnishAdmin::setSecret ( string $secret )

Liste de paramètres

secret

Le paramètre de configuration secret.

Valeurs de retour


Définit le paramètre de configuration timeout

  • « VarnishAdmin::setSecret
  • VarnishAdmin::start »
  • PHP Manual
  • VarnishAdmin
  • Définit le paramètre de configuration timeout

VarnishAdmin::setTimeout

(PECL varnish >= 0.8)

VarnishAdmin::setTimeout — Définit le paramètre de configuration timeout

Description

public void VarnishAdmin::setTimeout ( int $timeout )

Liste de paramètres

timeout

Le paramètre de configuration timeout.

Valeurs de retour


Démarre un processus Varnish

  • « VarnishAdmin::setTimeout
  • VarnishAdmin::stop »
  • PHP Manual
  • VarnishAdmin
  • Démarre un processus Varnish

VarnishAdmin::start

(PECL varnish >= 0.3)

VarnishAdmin::start — Démarre un processus Varnish

Description

public int VarnishAdmin::start ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le statut de la commande Varnish.


Arrête un processus Varnish

  • « VarnishAdmin::start
  • VarnishStat »
  • PHP Manual
  • VarnishAdmin
  • Arrête un processus Varnish

VarnishAdmin::stop

(PECL varnish >= 0.3)

VarnishAdmin::stop — Arrête un processus Varnish

Description

public int VarnishAdmin::stop ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le statut de la commande Varnish.


La classe VarnishStat

(PECL varnish >= 0.3)

Introduction

Synopsis de la classe

VarnishStat {
/* Méthodes */
public __construct ([ array $args ] )
public array getSnapshot ( void )
}

Sommaire

  • VarnishStat::__construct — Constructeur VarnishStat
  • VarnishStat::getSnapshot — Récupère les statistiques de l'instance courante Varnish


Constructeur VarnishStat

  • « VarnishStat
  • VarnishStat::getSnapshot »
  • PHP Manual
  • VarnishStat
  • Constructeur VarnishStat

VarnishStat::__construct

(PECL varnish >= 0.3)

VarnishStat::__construct — Constructeur VarnishStat

Description

public VarnishStat::__construct ([ array $args ] )

Liste de paramètres

args

Arguments de configuration. Les clés possibles sont :

VARNISH_CONFIG_IDENT - identifiant de l'instance Varnish

Valeurs de retour


Récupère les statistiques de l'instance courante Varnish

  • « VarnishStat::__construct
  • VarnishLog »
  • PHP Manual
  • VarnishStat
  • Récupère les statistiques de l'instance courante Varnish

VarnishStat::getSnapshot

(PECL varnish >= 0.3)

VarnishStat::getSnapshot — Récupère les statistiques de l'instance courante Varnish

Description

public array VarnishStat::getSnapshot ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant les statistiques Varnish. Les clés du tableau sont identiques à celles de l'outil Varnishstat.


La classe VarnishLog

(PECL varnish >= 0.6)

Introduction

Synopsis de la classe

VarnishLog {
/* Constants */
const integer TAG_Debug = 0 ;
const integer TAG_Error = 1 ;
const integer TAG_CLI = 2 ;
const integer TAG_StatSess = 3 ;
const integer TAG_ReqEnd = 4 ;
const integer TAG_SessionOpen = 5 ;
const integer TAG_SessionClose = 6 ;
const integer TAG_BackendOpen = 7 ;
const integer TAG_BackendXID = 8 ;
const integer TAG_BackendReuse = 9 ;
const integer TAG_BackendClose = 10 ;
const integer TAG_HttpGarbage = 11 ;
const integer TAG_Backend = 12 ;
const integer TAG_Length = 13 ;
const integer TAG_FetchError = 14 ;
const integer TAG_RxRequest = 15 ;
const integer TAG_RxResponse = 16 ;
const integer TAG_RxStatus = 17 ;
const integer TAG_RxURL = 18 ;
const integer TAG_RxProtocol = 19 ;
const integer TAG_RxHeader = 20 ;
const integer TAG_TxRequest = 21 ;
const integer TAG_TxResponse = 22 ;
const integer TAG_TxStatus = 23 ;
const integer TAG_TxURL = 24 ;
const integer TAG_TxProtocol = 25 ;
const integer TAG_TxHeader = 26 ;
const integer TAG_ObjRequest = 27 ;
const integer TAG_ObjResponse = 28 ;
const integer TAG_ObjStatus = 29 ;
const integer TAG_ObjURL = 30 ;
const integer TAG_ObjProtocol = 31 ;
const integer TAG_ObjHeader = 32 ;
const integer TAG_LostHeader = 33 ;
const integer TAG_TTL = 34 ;
const integer TAG_Fetch_Body = 35 ;
const integer TAG_VCL_acl = 36 ;
const integer TAG_VCL_call = 37 ;
const integer TAG_VCL_trace = 38 ;
const integer TAG_VCL_return = 39 ;
const integer TAG_VCL_error = 40 ;
const integer TAG_ReqStart = 41 ;
const integer TAG_Hit = 42 ;
const integer TAG_HitPass = 43 ;
const integer TAG_ExpBan = 44 ;
const integer TAG_ExpKill = 45 ;
const integer TAG_WorkThread = 46 ;
const integer TAG_ESI_xmlerror = 47 ;
const integer TAG_Hash = 48 ;
const integer TAG_Backend_health = 49 ;
const integer TAG_VCL_Log = 50 ;
const integer TAG_Gzip = 51 ;
/* Méthodes */
public __construct ([ array $args ] )
public array getLine ( void )
public static string getTagName ( int $index )
}

Constantes pré-définies

VarnishLog::TAG_Debug

VarnishLog::TAG_Error

VarnishLog::TAG_CLI

VarnishLog::TAG_StatSess

VarnishLog::TAG_ReqEnd

VarnishLog::TAG_SessionOpen

VarnishLog::TAG_SessionClose

VarnishLog::TAG_BackendOpen

VarnishLog::TAG_BackendXID

VarnishLog::TAG_BackendReuse

VarnishLog::TAG_BackendClose

VarnishLog::TAG_HttpGarbage

VarnishLog::TAG_Backend

VarnishLog::TAG_Length

VarnishLog::TAG_FetchError

VarnishLog::TAG_RxRequest

VarnishLog::TAG_RxResponse

VarnishLog::TAG_RxStatus

VarnishLog::TAG_RxURL

VarnishLog::TAG_RxProtocol

VarnishLog::TAG_RxHeader

VarnishLog::TAG_TxRequest

VarnishLog::TAG_TxResponse

VarnishLog::TAG_TxStatus

VarnishLog::TAG_TxURL

VarnishLog::TAG_TxProtocol

VarnishLog::TAG_TxHeader

VarnishLog::TAG_ObjRequest

VarnishLog::TAG_ObjResponse

VarnishLog::TAG_ObjStatus

VarnishLog::TAG_ObjURL

VarnishLog::TAG_ObjProtocol

VarnishLog::TAG_ObjHeader

VarnishLog::TAG_LostHeader

VarnishLog::TAG_TTL

VarnishLog::TAG_Fetch_Body

VarnishLog::TAG_VCL_acl

VarnishLog::TAG_VCL_call

VarnishLog::TAG_VCL_trace

VarnishLog::TAG_VCL_return

VarnishLog::TAG_VCL_error

VarnishLog::TAG_ReqStart

VarnishLog::TAG_Hit

VarnishLog::TAG_HitPass

VarnishLog::TAG_ExpBan

VarnishLog::TAG_ExpKill

VarnishLog::TAG_WorkThread

VarnishLog::TAG_ESI_xmlerror

VarnishLog::TAG_Hash

VarnishLog::TAG_Backend_health

VarnishLog::TAG_VCL_Log

VarnishLog::TAG_Gzip

Sommaire

  • VarnishLog::__construct — Constructeur Varnishlog
  • VarnishLog::getLine — Récupère la prochaine ligne de log
  • VarnishLog::getTagName — Récupère le nom de la balise représenté par son index


Constructeur Varnishlog

  • « VarnishLog
  • VarnishLog::getLine »
  • PHP Manual
  • VarnishLog
  • Constructeur Varnishlog

VarnishLog::__construct

(PECL varnish >= 0.6)

VarnishLog::__construct — Constructeur Varnishlog

Description

public VarnishLog::__construct ([ array $args ] )

Liste de paramètres

args

Arguments de configuration. Les clés possibles sont :

VARNISH_CONFIG_IDENT - identifiant de l'instance Varnish

Valeurs de retour


Récupère la prochaine ligne de log

  • « VarnishLog::__construct
  • VarnishLog::getTagName »
  • PHP Manual
  • VarnishLog
  • Récupère la prochaine ligne de log

VarnishLog::getLine

(PECL varnish >= 0.6)

VarnishLog::getLine — Récupère la prochaine ligne de log

Description

public array VarnishLog::getLine ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les données de la prochaine ligne de log.


Récupère le nom de la balise représenté par son index

  • « VarnishLog::getLine
  • YAZ »
  • PHP Manual
  • VarnishLog
  • Récupère le nom de la balise représenté par son index

VarnishLog::getTagName

(PECL varnish >= 0.6)

VarnishLog::getTagName — Récupère le nom de la balise représenté par son index

Description

public static string VarnishLog::getTagName ( int $index )

Liste de paramètres

index

Index de la balise.

Valeurs de retour

Retourne le nom de la balise, sous la forme d'une chaîne de caractères.


YAZ

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • YAZ Fonctions
    • yaz_addinfo — Retourne plus de détails après une erreur
    • yaz_ccl_conf — Configure l'analyseur CCL
    • yaz_ccl_parse — Appelle l'analyseur CCL
    • yaz_close — Ferme une connexion YAZ
    • yaz_connect — Prépare une connexion à un serveur Z39.50
    • yaz_database — Spécifie la base d'une session YAZ
    • yaz_element — Spécifie le type d'éléments YAZ à lire
    • yaz_errno — Retourne le numéro d'erreur
    • yaz_error — Retourne une description de l'erreur
    • yaz_es_result — Inspecte le résultat d'un service étendu
    • yaz_es — Prépare pour une Requête de Service Étendu
    • yaz_get_option — Retourne la valeur d'une option de connexion YAZ
    • yaz_hits — Retourne le nombre de résultats de la dernière recherche
    • yaz_itemorder — Prépare une requête Z39.50 Item Order avec le paquet ILL-Request
    • yaz_present — Prépare à la lecture (Z39.50 present)
    • yaz_range — Spécifie le nombre maximal de résultats à lire
    • yaz_record — Retourne un résultat
    • yaz_scan_result — Retourne le résultat d'un scan
    • yaz_scan — Prépare un scan YAZ
    • yaz_schema — Spécifie le schéma de lecture
    • yaz_search — Prépare une recherche
    • yaz_set_option — Modifie une ou plusieurs options de connexion YAZ
    • yaz_sort — Configure les critères de tri
    • yaz_syntax — Spécifie la syntaxe de lecture des lignes
    • yaz_wait — Attend l'exécution d'une requête


Introduction

Cette extension offre une interface PHP à la bibliothèque YAZ qui implémente le » protocole Z39.50 pour récupérer des informations. Avec cette extension, vous pouvez simplement implémenter une origine Z39.50 (client) qui cherche ou analyse des cibles Z39.50 (serveurs) en parallèle.

Ce module simplifie l'utilisation complexe du protocole Z39.50. Il supporte les connexions persistantes de façon similaire aux APIs RDB, qui sont disponibles pour PHP. Cela signifie que les sessions sont conservées mais partagées entre les utilisateurs, évitant ainsi les étapes de connexion et d'initialisation dans la plupart des cas.

YAZ est disponible sur » http://www.indexdata.dk/yaz/. Vous pouvez trouver des informations supplémentaires, des exemples de scripts, etc. pour cette extension sur » http://www.indexdata.dk/phpyaz/.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0.


Pré-requis

Récupérez YAZ (support ANSI/NISO Z39.50) et installez-le. YAZ peut être récupéré sous forme de source ou sous forme de paquets pré-compilés depuis l'» archive YAZ. Les systèmes comme Debian GNU/Linux, Suse Linux, FreeBSD ont également YAZ fournis dans leurs distributions.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/yaz

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Note: Information spécifique aux utilisateurs de Windows

php_yaz.dll dépend de la bibliothèque yaz.dll. Le fichier yaz.dll fait parti du ZIP Win32 depuis le site de PHP. Il fait également parti de l'installation Windows YAZ, disponible depuis l' » espace YAZ WIN32.

Sous Windows, n'oubliez pas d'ajouter le dossier PHP à votre PATH pour que le fichier yaz.dll soit trouvé par votre système.

Avertissement

Les extensions IMAP, recode, YAZ et Cyrus ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun. Note: Yaz 2.0 et supérieur ne sont pas affectés par ce problème.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Yaz
Nom | Défaut | Modifiable | Historique
yaz.max_links | "100" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. Supprimé depuis PHP 5.0.0.
yaz.log_file | NULL | PHP_INI_ALL | Disponible depuis PHP 4.3.0. Supprimé depuis PHP 5.0.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • YAZ
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Exemples

PHP/YAZ garde les traces des connexions avec les cibles (Z-Associations). Une ressource représente une connexion à une cible.

Le script ci-dessous montre la fonctionnalité de recherche parallèle de l'API. Lorsqu'appelée sans argument, elle affiche une requête ; sinon, elle cherche la cible donnée dans le tableau host.

Exemple #1 Recherche parallèle en utilisant Yaz

<?php
$host=$_REQUEST[host];
$query=$_REQUEST[query];
$num_hosts = count($host);
if (empty($query) || count($host) == 0) {
    echo '<form method="get">
    <input type="checkbox"
    name="host[]" value="bagel.indexdata.dk/gils" />
        test GILS
    <input type="checkbox"
    name="host[]" value="localhost:9999/Default" />
        test local
    <input type="checkbox" checked="checked"
    name="host[]" value="z3950.loc.gov:7090/voyager" />
        Library of Congress
    <br />
    Requête RPN:
    <input type="text" size="30" name="query" />
    <input type="submit" name="action" value="Search" />
    </form>
    ';
} else {
    echo 'Votre recherche pour ' . htmlspecialchars($query) . '<br />';
    for ($i = 0; $i < $num_hosts; $i++) {
        $id[] = yaz_connect($host[$i]);
        yaz_syntax($id[$i], "usmarc");
        yaz_range($id[$i], 1, 10);
        yaz_search($id[$i], "rpn", $query);
    }
    yaz_wait();
    for ($i = 0; $i < $num_hosts; $i++) {
        echo '<hr />' . $host[$i] . ':';
        $error = yaz_error($id[$i]);
        if (!empty($error)) {
            echo "Erreur : $error";
        } else {
            $hits = yaz_hits($id[$i]);
            echo "Nombre de résultat(s) : $hits";
        }
        echo '<dl>';
        for ($p = 1; $p <= 10; $p++) {
            $rec = yaz_record($id[$i], $p, "string");
            if (empty($rec)) continue;
            echo "<dt><b>$p</b></dt><dd>";
            echo nl2br($rec);
            echo "</dd>";
        }
        echo '</dl>';
    }
}
?>


YAZ Fonctions

Sommaire

  • yaz_addinfo — Retourne plus de détails après une erreur
  • yaz_ccl_conf — Configure l'analyseur CCL
  • yaz_ccl_parse — Appelle l'analyseur CCL
  • yaz_close — Ferme une connexion YAZ
  • yaz_connect — Prépare une connexion à un serveur Z39.50
  • yaz_database — Spécifie la base d'une session YAZ
  • yaz_element — Spécifie le type d'éléments YAZ à lire
  • yaz_errno — Retourne le numéro d'erreur
  • yaz_error — Retourne une description de l'erreur
  • yaz_es_result — Inspecte le résultat d'un service étendu
  • yaz_es — Prépare pour une Requête de Service Étendu
  • yaz_get_option — Retourne la valeur d'une option de connexion YAZ
  • yaz_hits — Retourne le nombre de résultats de la dernière recherche
  • yaz_itemorder — Prépare une requête Z39.50 Item Order avec le paquet ILL-Request
  • yaz_present — Prépare à la lecture (Z39.50 present)
  • yaz_range — Spécifie le nombre maximal de résultats à lire
  • yaz_record — Retourne un résultat
  • yaz_scan_result — Retourne le résultat d'un scan
  • yaz_scan — Prépare un scan YAZ
  • yaz_schema — Spécifie le schéma de lecture
  • yaz_search — Prépare une recherche
  • yaz_set_option — Modifie une ou plusieurs options de connexion YAZ
  • yaz_sort — Configure les critères de tri
  • yaz_syntax — Spécifie la syntaxe de lecture des lignes
  • yaz_wait — Attend l'exécution d'une requête


Retourne plus de détails après une erreur

  • « YAZ Fonctions
  • yaz_ccl_conf »
  • PHP Manual
  • YAZ Fonctions
  • Retourne plus de détails après une erreur

yaz_addinfo

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_addinfo — Retourne plus de détails après une erreur

Description

string yaz_addinfo ( resource $id )

Retourne plus de détails après une erreur pour la dernière requête sur le serveur.

Avec certains serveurs, cette fonction peut retourner la même chaîne de caractères que la fonction yaz_error().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Une chaîne de caractères contenant des informations additionnelles ou une chaîne de caractères vide si la dernière opération était réussie ou si aucune information additionnelle n'était fournie par le serveur.

Voir aussi

  • yaz_error() - Retourne une description de l'erreur
  • yaz_errno() - Retourne le numéro d'erreur


Configure l'analyseur CCL

  • « yaz_addinfo
  • yaz_ccl_parse »
  • PHP Manual
  • YAZ Fonctions
  • Configure l'analyseur CCL

yaz_ccl_conf

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_conf — Configure l'analyseur CCL

Description

void yaz_ccl_conf ( resource $id , array $config )

Cette fonction configure l'analyseur CCL de requête pour un serveur avec les définitions de points d'accès (CCL qualifiers) et leur équivalent en RPN.

Pour faire correspondre une requête CCL spécifique à RPN, utilisez la fonction yaz_ccl_parse().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

config

Un tableau de configuration. Chaque clé du tableau est le nom du champ CCL et la valeur correspondante contient une chaîne de caractères qui spécifie la correspondance au RPN.

La correspondance est une séquence de paires d'attributs type et d'attributs valeur. L'attribut type et l'attribut valeur sont séparés par un signe égal (=). Chaque paire est séparée par un espace.

Des informations supplémentaires peuvent être trouvées sur la page » CCL.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Dans l'exemple ci-dessous, l'analyseur CCL est configuré pour supporter trois champs CCL : ti, au et isbn. Chaque champ correspond à leur équivalent BIB-1. On assume que la variable $id est l'ID de la connexion.

Exemple #1 Configuration CCL

<?php
$fields = array(
  "ti" => "1=4",
  "au"   => "1=1",
  "isbn" => "1=7"
);
yaz_ccl_conf($id, $field);
?>

Voir aussi

  • yaz_ccl_parse() - Appelle l'analyseur CCL


Appelle l'analyseur CCL

  • « yaz_ccl_conf
  • yaz_close »
  • PHP Manual
  • YAZ Fonctions
  • Appelle l'analyseur CCL

yaz_ccl_parse

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_parse — Appelle l'analyseur CCL

Description

bool yaz_ccl_parse ( resource $id , string $query , array &$result )

Cette fonction appelle l'analyseur CCL. Il convertit une requête CCL FIND en une requête RPN qui peut être passée à yaz_search() pour effectuer une recherche.

Pour définir un champ CCL valide, utilisez la fonction yaz_ccl_conf() avant d'utiliser cette fonction.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

query

La requête CCL FIND.

result

Si la fonction a été exécutée correctement, cet argument sera un tableau contenant la requête RPN valide sous la clé rpn.

Lors d'un échec, trois index sont écrits dans ce tableau pour indiquer la cause de l'échec :

  • errorcode - le code d'erreur CCL (entier)

  • errorstring - l'erreur CCL en chaîne de caractères

  • errorpos - position approximée dans la requête qui est en échec (entier qui est la position d'un caractère)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Analyse CCL

Nous allons essayer de chercher en utilisant CCL. Dans l'exemple ci-dessous, $ccl est une requête CCL.

<?php

yaz_ccl_conf($id, $fields);  // voir l'exemple sur la fonction yaz_ccl_conf
if (!yaz_ccl_parse($id, $ccl, &$cclresult)) {
    echo 'Erreur : ' . $cclresult["errorstring"];
} else {
    $rpn = $cclresult["rpn"];
    yaz_search($id, "rpn", $rpn);
}
?>


Ferme une connexion YAZ

  • « yaz_ccl_parse
  • yaz_connect »
  • PHP Manual
  • YAZ Fonctions
  • Ferme une connexion YAZ

yaz_close

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_close — Ferme une connexion YAZ

Description

bool yaz_close ( resource $id )

Ferme la connexion donnée par le paramètre id.

Note:

Cette fonction fermera seulement une connexion non persistante ouverte en mettant l'option persistent à FALSE avec yaz_connect().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • yaz_connect() - Prépare une connexion à un serveur Z39.50


Prépare une connexion à un serveur Z39.50

  • « yaz_close
  • yaz_database »
  • PHP Manual
  • YAZ Fonctions
  • Prépare une connexion à un serveur Z39.50

yaz_connect

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_connect — Prépare une connexion à un serveur Z39.50

Description

mixed yaz_connect ( string $zurl [, mixed $options ] )

Cette fonction retourne une ressource de connexion en cas de succès et 0 en cas d'échec.

yaz_connect() prépare une connexion à un serveur Z39.50. Cette fonction n'est pas bloquante, et ne tente pas d'établir une connexion. En fait, elle ne fait que préparer la connexion pour exécution ultérieure par yaz_wait().

Note:

Le proxy » YAZ est un proxy Z39.50 librement disponible.

Liste de paramètres

zurl

Une chaîne de caractères qui prend la forme host[:port][/database]. Si le port est omis, le port 210 est utilisé. Si la base de données est omise, Default est utilisée.

options

Si donné comme une chaîne de caractères, cela sera traité comme la chaîne d'authentification Z39.50 V2 (OpenAuth).

Si donné comme un tableau, le contenu du tableau sert en tant qu'options.

user

Utilisateur pour authentification.

group

Groupe pour authentification.

password

Mot de passe pour authentification.

cookie

Cookie pour session (proxy YAZ).

proxy

Proxy pour connexion (proxy YAZ).

persistent

Un booléen. Si TRUE la connexion est persistante; Si FALSE la connexion n'est pas persistante. Par défaut les connexions sont persistantes.

Note:

Si vous ouvrez une connexion persistante, vous ne serez pas capable de la fermer plus tard avec yaz_close().

piggyback

Un booléen. Si TRUE piggyback est activé pour les recherches. Si FALSE piggyback est désactivé. Par défaut piggyback est activé.

L'activation de piggyback est plus efficace : il sauvegarde habituellement les allers-retours du réseau pour les premières lectures de résultats. Cependant, quelque serveurs Z39.50 ne supportent pas piggyback ou ils ignorent ce jeu de noms. Pour ceux-ci, piggyback devrait être désactivé.

charset

Une chaîne de caractères qui spécifie le jeu de caractères qui sera utilisé dans le langage Z39.50 et le jeu de caractères pour les négociations. Utilisez une chaîne de caractères comme : ISO-8859-1, UTF-8, UTF-16.

La plupart des serveurs Z39.50 ne supportent pas cette option (et, pour ceux-ci, cet argument est ignoré). Plusieurs serveurs utilisent l'encodage ISO-8859-1 pour les requêtes et les messages. Les enregistrements MARC21/USMARC ne sont pas affectés par cette configuration.

preferredMessageSize

Un entier qui spécifie la taille maximale en octets pour toutes les entrées qui seront retournées par la cible durant la récupération. Voyez le » standard Z39.50 pour plus d'informations.

Note:

Cette option est supportée dans PECL YAZ 1.0.5 ou supérieure.

maximumRecordSize

Un entier qui spécifie la taille maximale en octets pour une seule entrée qui sera retournée par la cible durant la récupération. Cette entité est référée à Exceptional-record-size dans le » standard Z39.50.

Note:

Cette option est supportée dans PECL YAZ 1.0.5 ou supérieure.

Valeurs de retour

Une ressource de connexion en cas de réussite, FALSE en cas d'erreur.

Historique

Version | Description
4.1.0 | Le paramètre options a été ajouté.

Voir aussi

  • yaz_close() - Ferme une connexion YAZ


Spécifie la base d'une session YAZ

  • « yaz_connect
  • yaz_element »
  • PHP Manual
  • YAZ Fonctions
  • Spécifie la base d'une session YAZ

yaz_database

(PHP 4 >= 4.0.6, PECL yaz >= 0.9.0)

yaz_database — Spécifie la base d'une session YAZ

Description

bool yaz_database ( resource $id , string $databases )

Cette fonction vous permet de changer de base de données à l'intérieur de la session en spécifiant une ou plusieurs bases de données à utiliser dans la recherche, récupération de données, etc. Écrase les bases de données spécifiées dans l'appel de yaz_connect().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

databases

Une chaîne de caractères contenant une ou plusieurs bases de données. Plusieurs bases de données sont séparées par un signe plus +.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Spécifie le type d'éléments YAZ à lire

  • « yaz_database
  • yaz_errno »
  • PHP Manual
  • YAZ Fonctions
  • Spécifie le type d'éléments YAZ à lire

yaz_element

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_element — Spécifie le type d'éléments YAZ à lire

Description

bool yaz_element ( resource $id , string $elementset )

Cette fonction spécifie le type d'éléments à lire.

Appelez cette fonction avant yaz_search() ou yaz_present() pour spécifier un type d'élément pour les enregistrements à récupérer.

Note:

Si cette fonction semble sans effet, voyez la description de l'option piggybacking dans yaz_connect().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

elementset

La plupart des serveurs supportent F (pour les enregistrements complets) et B (pour les enregistrements brefs).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne le numéro d'erreur

  • « yaz_element
  • yaz_error »
  • PHP Manual
  • YAZ Fonctions
  • Retourne le numéro d'erreur

yaz_errno

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_errno — Retourne le numéro d'erreur

Description

int yaz_errno ( resource $id )

Retourne un numéro d'erreur pour le serveur (dernière requête) identifié par id.

yaz_errno() devrait être appelée après chaque requête pour chaque serveur - (après le retour de yaz_wait()) pour déterminer le succès ou l'échec de la dernière opération (c'est-à-dire la recherche).

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Retourne un code d'erreur. Le code d'erreur est soit un code diagnostique Z39.50 (habituellement un diagnostique Bib-1), soit un code d'erreur côté client qui est généré par PHP/YAZ lui-même, par exemple "Connection failed", "Init Rejected", etc.

Voir aussi

  • yaz_error() - Retourne une description de l'erreur
  • yaz_addinfo() - Retourne plus de détails après une erreur


Retourne une description de l'erreur

  • « yaz_errno
  • yaz_es_result »
  • PHP Manual
  • YAZ Fonctions
  • Retourne une description de l'erreur

yaz_error

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_error — Retourne une description de l'erreur

Description

string yaz_error ( resource $id )

yaz_error() retourne un message d'erreur en anglais correspondant au dernier numéro d'erreur retourné par yaz_errno().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Retourne un message d'erreur pour le serveur (dernière requête), identifié par le paramètre id. Une chaîne de caractères vide est retournée si la dernière opération était réussie.

Voir aussi

  • yaz_errno() - Retourne le numéro d'erreur
  • yaz_addinfo() - Retourne plus de détails après une erreur


Inspecte le résultat d'un service étendu

  • « yaz_error
  • yaz_es »
  • PHP Manual
  • YAZ Fonctions
  • Inspecte le résultat d'un service étendu

yaz_es_result

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_es_result — Inspecte le résultat d'un service étendu

Description

array yaz_es_result ( resource $id )

Cette fonction inspecte le dernier résultat d'un service étendu depuis un serveur. Un service étendu est initié par la fonction yaz_item_order() ou la fonction yaz_es().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Retourne un tableau avec l'élément targetReference pour la référence pour l'opération de service étendu (généré et retourné depuis le serveur).

Voir aussi

  • yaz_es() - Prépare pour une Requête de Service Étendu


Prépare pour une Requête de Service Étendu

  • « yaz_es_result
  • yaz_get_option »
  • PHP Manual
  • YAZ Fonctions
  • Prépare pour une Requête de Service Étendu

yaz_es

(PECL yaz >= 0.9.0)

yaz_es — Prépare pour une Requête de Service Étendu

Description

void yaz_es ( resource $id , string $type , array $args )

Cette fonction prépare pour une Requête de Service Étendu. Les Services Étendus sont de la famille des nombreux Z39.50, comme "Record Update", "Item Order", "Database administration", etc.

Note:

Il existe des serveurs Z39.50 qui ne supportent pas les Services Étendus.

La fonction yaz_es() crée des paquets d'une Requête de Service Étendu et les place dans une file d'attente d'opérations. Utilisez yaz_wait() pour envoyer la/les requête(s) au serveur. À la fin de yaz_wait(), le résultat de l'opération de Service Étendu devrait être obtenu avec un appel à yaz_es_result().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

type

Une chaîne de caractères représentant le type de Service Étendu : itemorder (Item Order), create (Create Database), drop (Drop Database), commit (Commit Operation), update (Update Record), xmlupdate (XML Update). Chaque type est spécifié dans la section suivante.

args

Un tableau avec les options de service étendu et les options spécifiques du paquet. Les options sont identiques à celles offertes par l'API C de ZOOM C. Reportez-vous à ZOOM » Services Étendus.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Mise à Jour d'Enregistrements

<?php
$con = yaz_connect("myhost/database");
$args = array (
    "record" => "<gils><title>un titre</title></gils>",
    "syntax" => "xml",
    "action" => "specialUpdate"
);
yaz_es($con, "update", $args);
yaz_wait();
$result = yaz_es_result($id);
?>

Voir aussi

  • yaz_es_result() - Inspecte le résultat d'un service étendu


Retourne la valeur d'une option de connexion YAZ

  • « yaz_es
  • yaz_hits »
  • PHP Manual
  • YAZ Fonctions
  • Retourne la valeur d'une option de connexion YAZ

yaz_get_option

(PECL yaz >= 0.9.0)

yaz_get_option — Retourne la valeur d'une option de connexion YAZ

Description

string yaz_get_option ( resource $id , string $name )

Retourne la valeur de l'option spécifiée par name.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

name

Le nom de l'option.

Valeurs de retour

Retourne la valeur de l'option spécifiée ou une chaîne de caractères vide si l'option n'était pas définie.

Voir aussi

  • La description de yaz_set_option() - Modifie une ou plusieurs options de connexion YAZ pour les options disponibles


Retourne le nombre de résultats de la dernière recherche

  • « yaz_get_option
  • yaz_itemorder »
  • PHP Manual
  • YAZ Fonctions
  • Retourne le nombre de résultats de la dernière recherche

yaz_hits

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_hits — Retourne le nombre de résultats de la dernière recherche

Description

int yaz_hits ( resource $id [, array &$searchresult ] )

yaz_hits() retourne le nombre de résultats de la dernière recherche.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

searchresult

Tableau de résultats pour des informations de résultats de recherche détaillés.

Valeurs de retour

Retourne le nombre de résultats pour la dernière recherche ou 0 si aucune recherche n'a été effectuée.

Le tableau de résultats de recherche (s'il est fourni) contient des informations qui sont retournées par un serveur Z39.50 dans le format SearchResult-1 d'une réponse de recherche. Le format SearchResult-1 peut être utilisé pour obtenir des informations à propos du nombre de résultats pour des parties de requête (sous-requête). En particulier, il est possible d'obtenir le nombre de résultats pour les termes de recherche individuels dans une requête. L'information pour la première sous-requête est dans $array[0], la seconde sous-requête dans $array[1] et ainsi de suite.

Membres de searchresult
Élément | Description
id | Sous-requête ID2 (chaîne de caractères)
count | Nombre de résultats (entier)
subquery.term | Terme de sous-requête (chaîne de caractères)
interpretation.term | Terme interprété de sous-requête (chaîne de caractères)
recommendation.term | Terme recommandé de sous-requête (chaîne de caractères)

Note:

Le service de SearchResult requiert PECL YAZ 1.0.5 ou supérieur et YAZ 2.1.9 ou supérieur.

Note:

Très peu d'implémentations de Z39.50 supportent le service de SearchResult.


Prépare une requête Z39.50 Item Order avec le paquet ILL-Request

  • « yaz_hits
  • yaz_present »
  • PHP Manual
  • YAZ Fonctions
  • Prépare une requête Z39.50 Item Order avec le paquet ILL-Request

yaz_itemorder

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_itemorder — Prépare une requête Z39.50 Item Order avec le paquet ILL-Request

Description

void yaz_itemorder ( resource $id , array $args )

Cette fonction prépare une requête de type "Extended Services" en utilisant le "Profile" avec "Use of Z39.50 Item Order Extended Service to Transport ILL (Profile/1)". Reportez-vous » ici ou aux » spécifications.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

args

Doit être un tableau associatif avec les informations à propos de l'ordre des items des requêtes qui seront envoyées. La clé du tableau est le nom du chemin tag ASN.1 correspondant. Par exemple, le ISBN sous le Item-ID a la clé item-id,ISBN.

Les paramètres de requête IIL sont :

protocol-version-num
transaction-id,initial-requester-id,person-or-institution-symbol,person
transaction-id,initial-requester-id,person-or-institution-symbol,institution
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-person
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-institution
transaction-id,transaction-group-qualifier
transaction-id,transaction-qualifier
transaction-id,sub-transaction-qualifier
service-date-time,this,date
service-date-time,this,time
service-date-time,original,date
service-date-time,original,time
requester-id,person-or-institution-symbol,person
requester-id,person-or-institution-symbol,institution
requester-id,name-of-person-or-institution,name-of-person
requester-id,name-of-person-or-institution,name-of-institution
responder-id,person-or-institution-symbol,person
responder-id,person-or-institution-symbol,institution
responder-id,name-of-person-or-institution,name-of-person
responder-id,name-of-person-or-institution,name-of-institution
transaction-type
delivery-address,postal-address,name-of-person-or-institution,name-of-person
delivery-address,postal-address,name-of-person-or-institution,name-of-institution
delivery-address,postal-address,extended-postal-delivery-address
delivery-address,postal-address,street-and-number
delivery-address,postal-address,post-office-box
delivery-address,postal-address,city
delivery-address,postal-address,region
delivery-address,postal-address,country
delivery-address,postal-address,postal-code
delivery-address,electronic-address,telecom-service-identifier
delivery-address,electronic-address,telecom-service-addreess
billing-address,postal-address,name-of-person-or-institution,name-of-person
billing-address,postal-address,name-of-person-or-institution,name-of-institution
billing-address,postal-address,extended-postal-delivery-address
billing-address,postal-address,street-and-number
billing-address,postal-address,post-office-box
billing-address,postal-address,city
billing-address,postal-address,region
billing-address,postal-address,country
billing-address,postal-address,postal-code
billing-address,electronic-address,telecom-service-identifier
billing-address,electronic-address,telecom-service-addreess
ill-service-type
requester-optional-messages,can-send-RECEIVED
requester-optional-messages,can-send-RETURNED
requester-optional-messages,requester-SHIPPED
requester-optional-messages,requester-CHECKED-IN
search-type,level-of-service
search-type,need-before-date
search-type,expiry-date
search-type,expiry-flag
place-on-hold
client-id,client-name
client-id,client-status
client-id,client-identifier
item-id,item-type
item-id,call-number
item-id,author
item-id,title
item-id,sub-title
item-id,sponsoring-body
item-id,place-of-publication
item-id,publisher
item-id,series-title-number
item-id,volume-issue
item-id,edition
item-id,publication-date
item-id,publication-date-of-component
item-id,author-of-article
item-id,title-of-article
item-id,pagination
item-id,ISBN
item-id,ISSN
item-id,additional-no-letters
item-id,verification-reference-source
copyright-complicance
retry-flag
forward-flag
requester-note
forward-note

Il y a aussi quelques paramètres du paquet Extended Services Request et ItemOrder :

package-name
user-id
contact-name
contact-phone
contact-email
itemorder-item

Valeurs de retour

Aucune valeur n'est retournée.


Prépare à la lecture (Z39.50 present)

  • « yaz_itemorder
  • yaz_range »
  • PHP Manual
  • YAZ Fonctions
  • Prépare à la lecture (Z39.50 present)

yaz_present

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_present — Prépare à la lecture (Z39.50 present)

Description

bool yaz_present ( resource $id )

Cette fonction prépare PHP à la lecture des résultats, après une recherche.

La fonction yaz_range() doit être appelée avant celle-ci pour spécifier la plage de résultats à lire.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Spécifie le nombre maximal de résultats à lire

  • « yaz_present
  • yaz_record »
  • PHP Manual
  • YAZ Fonctions
  • Spécifie le nombre maximal de résultats à lire

yaz_range

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_range — Spécifie le nombre maximal de résultats à lire

Description

void yaz_range ( resource $id , int $start , int $number )

Spécifie le nombre maximal de résultat à lire.

Cette fonction doit être appelée avant la fonction yaz_search() ou yaz_present().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

start

Spécifie la position du premier enregistrement à récupérer. Les numéros des requêtes vont de 1 à yaz_hits().

number

Spécifie le nombre d'enregistrements qui doivent être récupérés.

Valeurs de retour

Aucune valeur n'est retournée.


Retourne un résultat

  • « yaz_range
  • yaz_scan_result »
  • PHP Manual
  • YAZ Fonctions
  • Retourne un résultat

yaz_record

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_record — Retourne un résultat

Description

string yaz_record ( resource $id , int $pos , string $type )

La fonction yaz_record() retourne un enregistrement dans le jeu de résultats courant à la position spécifiée par le paramètre pos.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

pos

La position de l'enregistrement. Les positions des enregistrements dans un jeu de résultats sont numérotés de 1 jusqu'au nombre retourné par yaz_hits().

type

Le type spécifie la forme du résultat retourné.

Note:

C'est l'application qui est responsable pour s'assurer que les résultats retournés à partir du serveur Z39.50/SRW sont dans un format correct. Le type donné spécifie seulement une conversion qui doit avoir lieu sur le côté client (dans PHP/YAZ).

Sans compter la conversion du transfert de résultats de chaîne de caractères en tableau, PHP/YAZ est aussi possible d'effectuer une conversion de jeu de caractères du résultat. En particulier pour USMARC/MARC21 qui est recommandé puisque ces résultats sont normalement retournés dans le jeu de caractères MARC-8 qui n'est pas supporté par les navigateurs, etc. Pour spécifier une conversion, ajoutez ; charset=from, to ou from est le jeu de caractères orignal du résultat et to est le jeu de résultats à obtenir (comme vu par PHP).

string

L'enregistrement est retourné comme une chaîne de caractères pour affichage simple. Dans ce mode, tous les enregistrements MARC sont convertis dans un format ligne par ligne puisque ISO2709 est difficile à lire. Les enregistrements XML et SUTRS sont retournés dans leur format original. GRS-1 est retourné dans un format ligne par ligne (laid).

Ce format est approprié si les enregistrements seront affichés rapidement (pour déboguage) ou parce que ce n'est pas faisable d'effectuer un affichage approprié.

xml

L'enregistrement est retourné comme une chaîne de caractères XML si possible. Dans ce mode, tous les enregistrements MARC sont convertis en » MARCXML. Les enregistrements XML et SUTRS sont retournés dans leur format original. GRS-1 n'est pas supporté.

Ce format est similaire à string à l'exception que les enregistrements MARC sont convertis en MARCXML

Ce format est approprié si les enregistrements sont analysés par la suite par un analyseur XML ou un processeur XSLT.

raw

L'enregistrement est retourné comme une chaîne de caractères dans sa forme originale. Ce type est approprié pour MARC, XML et SUTRS. Il ne fonctionne pas pour GRS-1.

Les enregistrements MARC sont retournés comme une chaîne de caractères ISO2709. XML et SUTRS sont retournés comme des chaînes de caractères.

syntax

La syntaxe de l'enregistrement est retournée comme une chaîne de caractères, par exemple USmarc, GRS-1, XML, etc.

database

Le nom de la base de données associée aux résultats à la position est retourné comme une chaîne de caractères.

array

L'enregistrement est retourné comme un tableau qui réfléchit la structure GRS-1. Ce type est approprié pour MARC et GRS-1. XML, SUTRS ne sont pas supportés et, si l'enregistrement actuel est XML ou SUTRS, une chaîne de caractères vide sera retournée.

Le tableau retourné consiste en une liste correspondant à chaque feuille/noeud interne de GRS-1. Chaque item de la liste consiste à une sous-liste avec le premier élément path et data (si les données sont disponibles).

Le chemin, qui est une chaîne de caractères, contient une liste de chaque composant de l'arbre (de la structure des enregistrements GRS-1) depuis la racine vers l'extrémité. Chaque composant est une paire de type de balise/valeur sous la forme (type, value

Les balises de chaîne de caractères ont normalement une correspondance avec le type tag 3. MARC peut aussi être retourné comme un tableau (ils sont convertis en GRS-1 de manière interne).

Valeurs de retour

Retourne l'enregistrement à la position pos ou une chaîne vide si aucun enregistrement n'existe à la position donnée.

Si aucun enregistrement de base de données n'existe à la position donnée une chaîne vide est retournée.

Exemples

Exemple #1 Tableau pour des enregistrements GRS-1

Considérez les enregistrements GRS-1

(4,52)Robert M. Pirsig
(4,70)
      (4,90)
            (2,7)Transworld Publishers, ltd.
Cet enregistrement a deux noeuds à la racine. Le premier élément de la racine est (4,52) [tag type 4, tag value 52], et a comme donnée Robert M. Pirsig. Le deuxième élément de la racine (4,70) a un sous-arbre avec un élément simple (4,90). (4,90) a maintenant un sous-arbre (2,7) avec comme donnée Transworld Publishers, ltd..

Si cet enregistrement est présent à la position $p, alors

<?php

$ar = yaz_record($id, $p, "array");
print_r($ar);

?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => (4,52)
            [1] => Robert M. Pirsig
        )
    [1] => Array
        (
            [0] => (4,70)
        )
    [2] => Array
        (
            [0] => (4,70)(4,90)
        )
    [3] => Array
        (
            [0] => (4,70)(4,90)(2,7)
            [1] => Transworld Publishers, ltd.
        )
)

Exemple #2 Travail avec MARCXML

Le script PHP ci-dessous retourne un enregistrement MARC21/USMARC comme MARCXML. L'enregistrement original est retourné dans le jeu de caractères marc-8 (inconnu de beaucoup d'analyseur XML), donc nous le convertissons en UTF-8 (que tous les analyseurs XML supportent).

<?php
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");
?>

L'enregistrement $rec peut être obtenu avec le processeur Sablotron XSLT comme cela :

<?php

$xslfile = 'display.xsl';
$processor = xslt_create();
$parms = array('/_xml' => $rec);
$res = xslt_process($processor, 'arg:/_xml', $xslfile, NULL, $parms);
xslt_free($processor);
$res = preg_replace("'</?html[^>]*>'", '', $res);
echo $res;

?>

En PHP 5, l'extension XSL peut être utilisée à la place de Sablotron XSLT.


Retourne le résultat d'un scan

  • « yaz_record
  • yaz_scan »
  • PHP Manual
  • YAZ Fonctions
  • Retourne le résultat d'un scan

yaz_scan_result

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scan_result — Retourne le résultat d'un scan

Description

array yaz_scan_result ( resource $id [, array &$result ] )

yaz_scan_result() retourne un tableau contenant les termes reçus de l'hôte, lors de la dernière requête de scan.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

result

Si donné, ce tableau sera modifié pour contenir des informations additionnelles prises à partir de la réponse Scan :

  • number - Nombre d'entrées retournées

  • stepsize - Grandeur de pas

  • position - Position du terme

  • status - Statut du scan

Valeurs de retour

Retourne un tableau (0..n-1) où n est le nombre de termes retournés. Chaque valeur est une paire où le premier item est un terme et le second item est un le nombre de résultats.


Prépare un scan YAZ

  • « yaz_scan_result
  • yaz_schema »
  • PHP Manual
  • YAZ Fonctions
  • Prépare un scan YAZ

yaz_scan

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scan — Prépare un scan YAZ

Description

void yaz_scan ( resource $id , string $type , string $startterm [, array $flags ] )

yaz_scan() prépare une requête "Z39.50 Scan Request" sur la connexion YAZ spécifiée.

Pour réellement transférer la requête "Scan Request" au serveur et recevoir le "Scan Response", la fonction yaz_wait() doit être appelée. Après la fin de yaz_wait(), appelez yaz_error() et yaz_scan_result() pour connaître la réponse.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

type

Actuellement seulement le type rpn est supporté.

startterm

Point de départ du scan.

La forme dans laquelle le terme de départ est spécifié est donnée par le paramètre type.

La syntaxe de ce paramètre est similaire à la requête RPN comme décrite dans yaz_search(). Cela consiste à aucune ou plusieurs spécifications d'opérateur @attr, ensuite suivies par exactement une seule marque.

flags

Ce paramètre optionnel spécifie des informations supplémentaires pour contrôler le comportement de la requête de scan. Trois index sont actuellement lus à partir du tableau d'options : number (nombre de termes demandés), position (position préférée du terme) et stepSize (grandeur de pas préférée).

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Fonction PHP qui analyse les titres sur un serveur YAZ

<?php
function scan_titles($id, $startterm)
{
  yaz_scan($id, "rpn", "@attr 1=4 " . $startterm);
  yaz_wait();
  $errno = yaz_errno($id);
  if ($errno == 0) {
    $ar = yaz_scan_result($id, $options);
    echo 'Scan ok; ';
    foreach ($options as $key => $val) {
      echo "$key = $val ";
    }
    echo '<br /><table>';
    while (list($key, list($k, $term, $tcount)) = each($ar)) {
      if (empty($k)) continue;
      echo "<tr><td>$term</td><td>$tcount</td></tr>";
    }
    echo '</table>';
  } else {
    echo "Erreur de Scan. Erreur : " . yaz_error($id) . "<br />";
  }
}
?>


Spécifie le schéma de lecture

  • « yaz_scan
  • yaz_search »
  • PHP Manual
  • YAZ Fonctions
  • Spécifie le schéma de lecture

yaz_schema

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_schema — Spécifie le schéma de lecture

Description

void yaz_schema ( resource $id , string $schema )

yaz_schema() spécifie le schéma de lecture.

cette fonction devrait être appelée avant yaz_search() ou yaz_present().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

schema

Doit être spécifié comme un OID (Object Identifier) dans une notation par point brut (comme 1.2.840.10003.13.4) ou comme un des schémas connus enregistrés : GILS-schema, Holdings, Zthes, ...

Valeurs de retour

Aucune valeur n'est retournée.


Prépare une recherche

  • « yaz_schema
  • yaz_set_option »
  • PHP Manual
  • YAZ Fonctions
  • Prépare une recherche

yaz_search

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_search — Prépare une recherche

Description

bool yaz_search ( resource $id , string $type , string $query )

yaz_search() prépare une recherche sur la connexion donnée

Comme pour yaz_connect(), cette fonction n'est pas bloquante et ne fait que préparer la recherche pour exécution ultérieure lorsque yaz_wait() est appelée.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

type

Ce paramètre représente le type de requête - seul "rpn" est supporté actuellement et, dans ce cas, le troisième argument est un préfixe de notation de requête utilisé par YAZ.

query

Les requêtes RPN sont des représentations textuelles des requêtes de type Type-1, comme défini dans le standard Z39.50. Cependant, dans la représentation textuelle utilisée par YAZ, une notation à préfixe est utilisée, c'est-à-dire que l'opérateur précède l'opérande. La chaîne de requête est une séquence de mots réservés, où les espaces sont ignorés, à moins qu'ils n'aient été mis entre guillemets doubles. Les mots réservés qui commencent par un arobase (@) sont considérés comme des opérateurs et traités comme tels.

Opérateurs RPN
Syntaxe | Description
@and query1 query2 | intersection des requêtes query1 et query2
@or query1 query2 | union des requêtes query1 et query2
@not query1 query2 | requêtes "query1 et non(query2)"
@set name | nomme le résultat
@attrset set query | spécifie le jeu d'attributs de la requête. Cette construction n'est autorisée qu'une seule fois, au début d'une requête.
@attr [set] type=value query | applique les attributs à une requête. Le type et la valeur sont des entiers indiquant les types et valeurs des attributs, dans cet ordre. Le jeu, si fourni, spécifie le jeu d'attributs utilisé.

Vous pouvez trouver des informations sur les attributs sur le site » Z39.50 Maintenance Agency.

Note:

Dans le cas où vous voudriez utiliser une notation plus facile, utilisez l'analyseur CCL - fonctions yaz_ccl_conf() et yaz_ccl_parse().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemples de Requête

Vous pouvez chercher pour des termes simples, comme ceci :

ordinateur
qui concorde avec les documents où "ordinateur" se trouve. Aucun attribut n'est spécifié.

La requête

"knuth donald"
concorde avec les documents où "knuth donald" se trouve (en supposant que le serveur supporte la recherche de phrase).

Cette requête applique deux attributs à la même phrase.

@attr 1=1003 @attr 4=1 "knuth donald"
Le premier attribut est de type 1 (Bib-1), et sa valeur est 1003 (Auteur). Le second attribut est de type 4 (structure), valeur 1 (phrase), ce qui fait que la requête recherche les documents dont Donald Knuth est l'auteur.

La requête

@and @or a b @not @or c d e
ressemblerait en notation infix (a or b) and ((c or d) not e).

Un autre exemple, plus complexe :

@attrset gils @and @attr 1=4 art @attr 1=2000 company
La requête utilise l'ensemble de sous attributs GILS. La requête recherche les documents où le mot art apparaît dans le titre (GILS,BIB-1) et dont la société (company) apparaît comme distributeur (GILS).


Modifie une ou plusieurs options de connexion YAZ

  • « yaz_search
  • yaz_sort »
  • PHP Manual
  • YAZ Fonctions
  • Modifie une ou plusieurs options de connexion YAZ

yaz_set_option

(PECL yaz >= 0.9.0)

yaz_set_option — Modifie une ou plusieurs options de connexion YAZ

Description

void yaz_set_option ( resource $id , string $name , string $value )
void yaz_set_option ( resource $id , array $options )

Modifie une ou plusieurs options sur la connexion donnée.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

name ou options

Peut être soit une chaîne de caractères ou un tableau.

Si donné comme chaîne de caractères, cela sera le nom de l'option à spécifier. Vous devrez donner sa valeur value.

Si donné comme tableau, cela sera un tableau associatif (nom de l'option => valeur de l'option).

Options de connexion PHP/YAZ
Nom | Description
implementationName | Nom de l'implémentation du serveur
implementationVersion | Version de l'implémentation du serveur
implementationId | ID de l'implémentation du serveur
schema | Schéma de lecture. Par défaut, aucun schéma n'est utilisé. Modifier cette option équivaut à utiliser la fonction yaz_schema()
preferredRecordSyntax | Syntaxe des enregistrements en lecture. Par défaut, il n'y a pas de syntaxe. Modifier cette option équivaut à utiliser la fonction yaz_syntax()
start | Décalage du premier enregistrement à lire, via la fonction yaz_search() ou yaz_present(). Les enregistrements sont numérotés à partir de 0. Modifier cette option, en combinaison avec l'option count, équivaut à utiliser la fonction yaz_range(), hormis le fait que les enregistrements sont numérotés à partir de 1 avec yaz_range()
count | Nombre maximal d'enregistrements à lire via yaz_search() et yaz_present().
elementSetName | element-set-name en lecture. Modifier cette option équivaut à utiliser la fonction yaz_element().
value

La nouvelle valeur de l'option. Utilisez cet argument seulement si l'argument précédent est une chaîne de caractères.

Valeurs de retour

Aucune valeur n'est retournée.


Configure les critères de tri

  • « yaz_set_option
  • yaz_syntax »
  • PHP Manual
  • YAZ Fonctions
  • Configure les critères de tri

yaz_sort

(PHP 4 >= 4.0.7, PECL yaz >= 0.9.0)

yaz_sort — Configure les critères de tri

Description

void yaz_sort ( resource $id , string $criteria )

Cette fonction configure les critères de tri et active le tri Z39.50.

Appelez cette fonction avant yaz_search(). Si elle est utilisée conjointement avec yaz_search(), une commande Z39.50 Sort sera envoyée après chaque retour de recherche et avant que les résultats ne soient lus avec Z39.50 Present (yaz_present()).

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

criteria

Une chaîne de caractères qui prend la forme de field1 flags1 field2 flags2 où field1 spécifie les attributs primaires pour le tri, field2 le second, etc.

Le champ spécifie soit un attribut numérique, combinaison consistant de paires type=value séparées par des virgules (c'est-à-dire 1=4,2=1), soit il peut être spécifié en une chaîne de caractères (c'est-à-dire titre). Le flags est une séquence des caractères suivants qui ne peuvent être séparés par aucun espace.

Options de tri
a

Tri ascendant

d

Tri descendant

i

Tri insensible à la casse

s

Tri sensible à la casse

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Critères de Tri

Pour effectuer des tris avec l'attribut Bib1 du champ "title", de manière insensible à la casse, vous pouvez utiliser le critère suivant :

1=4 ia

Si le second critère de tri doit être l'auteur, en tenant compte de la casse, et dans l'ordre alphabétique, vous pouvez utiliser :

1=4 ia 1=1003 sa


Spécifie la syntaxe de lecture des lignes

  • « yaz_sort
  • yaz_wait »
  • PHP Manual
  • YAZ Fonctions
  • Spécifie la syntaxe de lecture des lignes

yaz_syntax

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_syntax — Spécifie la syntaxe de lecture des lignes

Description

void yaz_syntax ( resource $id , string $syntax )

yaz_syntax() spécifie la syntaxe de lecture des lignes.

Cette fonction devrait être appelée avant yaz_search() ou yaz_present().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

syntax

Doit être spécifié comme un OID (Object Identifier) dans une notation par point brut (comme 1.2.840.10003.5.10) ou comme une des syntaxes d'enregistrement connues et enregistrées (sutrs, usmarc, grs1, xml, etc.).

Valeurs de retour

Aucune valeur n'est retournée.


Attend l'exécution d'une requête

  • « yaz_syntax
  • YP/NIS »
  • PHP Manual
  • YAZ Fonctions
  • Attend l'exécution d'une requête

yaz_wait

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_wait — Attend l'exécution d'une requête

Description

mixed yaz_wait ([ array &$options ] )

Cette fonction exécute une activité réseau (bloquée) pour les demandes en attente qui ont été préparées par les fonctions yaz_connect() yaz_search(), yaz_present(), yaz_scan() et yaz_itemorder()

yaz_wait() se termine lorsque tous les hôtes ont terminé leurs requêtes (éventuellement en cas d'erreur).

Liste de paramètres

options

Un tableau associatif des options :

timeout

Spécifie un délai d'attente en secondes. Si un serveur n'a pas répondu dans les délais, il est considéré comme mort et yaz_wait() se termine. La valeur par défaut pour le délai est de 15 secondes.

event

Un booléen.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. En mode événement, la fonction retourne une ressource ou FALSE si une erreur survient.


YP/NIS

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions YP/NIS
    • yp_all — Traverse la carte et applique une fonction sur chaque entrée
    • yp_cat — Retourne une tableau contenant la carte entière
    • yp_err_string — Retourne la chaîne correspondant à l'erreur donnée
    • yp_errno — Retourne le code d'erreur de la dernière opération NIS
    • yp_first — Retourne la première paire clé/valeur d'une carte donnée
    • yp_get_default_domain — Retourne le domaine NIS par défaut
    • yp_master — Retourne le nom de la machine maître pour une carte
    • yp_match — Retourne la ligne associée
    • yp_next — Retourne la paire clé/valeur suivante d'une carte donnée
    • yp_order — Retourne le numéro d'ordre d'une carte


Introduction

NIS (feu Yellow Pages / Pages jaunes) permet la gestion par le réseau de fichiers d'administration importants (tel un fichier de mot de passe). Pour plus d'informations, reportez-vous au manuel NIS, ou à » Introduction to YP/NIS (en anglais). Il existe un livre en anglais » Managing NFS and NIS" par Hal Stern.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.


Pré-requis

Aucun prérequis pour pouvoir accéder à ces fonctionnalités, en dehors des fonctions standards Unix qui sont toujours disponibles (soit libc, soit libnsl : le script de configuration détectera celle que vous utilisez).


Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/yp


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

YPERR_ACCESS (entier)
violation d'accès (ajouté récemment et uniquement disponible depuis PECL SVN actuellement)
YPERR_BADARGS (entier)
Les arguments de la fonction sont incorrects.
YPERR_BADDB (entier)
La base de données YP est incorrecte.
YPERR_BUSY (entier)
La base de données est occupée.
YPERR_DOMAIN (entier)
Impossible de se connecter au serveur sur ce domaine.
YPERR_KEY (entier)
Clé introuvable dans cette carte.
YPERR_MAP (entier)
Carte introuvable sur ce domaine.
YPERR_NODOM (entier)
Le nom du domaine local n'est pas défini.
YPERR_NOMORE (entier)
Plus d'enregistrements dans la base de données.
YPERR_PMAP (entier)
Communication avec portmapper impossible.
YPERR_RESRC (entier)
Échec dans l'allocation de la ressource.
YPERR_RPC (entier)
Échec RPC - le domaine n'a pu être contacté
YPERR_YPBIND (entier)
Communication impossible avec ypbind
YPERR_YPERR (entier)
Erreur yp interne ou du client.
YPERR_YPSERV (entier)
Communication impossible avec ypserv.
YPERR_VERS (entier)
Version yp incorrecte.


Fonctions YP/NIS

Sommaire

  • yp_all — Traverse la carte et applique une fonction sur chaque entrée
  • yp_cat — Retourne une tableau contenant la carte entière
  • yp_err_string — Retourne la chaîne correspondant à l'erreur donnée
  • yp_errno — Retourne le code d'erreur de la dernière opération NIS
  • yp_first — Retourne la première paire clé/valeur d'une carte donnée
  • yp_get_default_domain — Retourne le domaine NIS par défaut
  • yp_master — Retourne le nom de la machine maître pour une carte
  • yp_match — Retourne la ligne associée
  • yp_next — Retourne la paire clé/valeur suivante d'une carte donnée
  • yp_order — Retourne le numéro d'ordre d'une carte


Traverse la carte et applique une fonction sur chaque entrée

  • « Fonctions YP/NIS
  • yp_cat »
  • PHP Manual
  • Fonctions YP/NIS
  • Traverse la carte et applique une fonction sur chaque entrée

yp_all

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_all — Traverse la carte et applique une fonction sur chaque entrée

Description

void yp_all ( string $domain , string $map , string $callback )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

callback

Valeurs de retour

Aucune valeur n'est retournée.


Retourne une tableau contenant la carte entière

  • « yp_all
  • yp_err_string »
  • PHP Manual
  • Fonctions YP/NIS
  • Retourne une tableau contenant la carte entière

yp_cat

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_cat — Retourne une tableau contenant la carte entière

Description

array yp_cat ( string $domain , string $map )

Retourne une tableau contenant toutes les entrées de la carte.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

Valeurs de retour

Retourne toutes les entrées de la carte sous forme de tableau associatif dont les clés et les valeurs sont respectivement les clés et les entrées de la carte.


Retourne la chaîne correspondant à l'erreur donnée

  • « yp_cat
  • yp_errno »
  • PHP Manual
  • Fonctions YP/NIS
  • Retourne la chaîne correspondant à l'erreur donnée

yp_err_string

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_err_string — Retourne la chaîne correspondant à l'erreur donnée

Description

string yp_err_string ( int $errorcode )

Retourne la chaîne d'erreur associée au code erreur errorcode. Très pratique pour savoir exactement ce qui n'a pas fonctionné.

Liste de paramètres

errorcode

Le code erreur.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec yp_err_string()

<?php
echo "Erreur : " . yp_err_string(yp_errno());
?>

Voir aussi

  • yp_errno() - Retourne le code d'erreur de la dernière opération NIS


Retourne le code d'erreur de la dernière opération NIS

  • « yp_err_string
  • yp_first »
  • PHP Manual
  • Fonctions YP/NIS
  • Retourne le code d'erreur de la dernière opération NIS

yp_errno

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_errno — Retourne le code d'erreur de la dernière opération NIS

Description

int yp_errno ( void )

Retourne le code d'erreur de la dernière opération NIS.

Valeurs de retour

Retourne une des constantes YPERR_XXX.

Voir aussi

  • yp_err_string() - Retourne la chaîne correspondant à l'erreur donnée


Retourne la première paire clé/valeur d'une carte donnée

  • « yp_errno
  • yp_get_default_domain »
  • PHP Manual
  • Fonctions YP/NIS
  • Retourne la première paire clé/valeur d'une carte donnée

yp_first

(PHP 4, PHP 5 <= 5.0.5)

yp_first — Retourne la première paire clé/valeur d'une carte donnée

Description

array yp_first ( string $domain , string $map )

Retourne la première paire clé/valeur de la carte map du domaine domain.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

Valeurs de retour

Retourne la première paire clé/valeur d'une carte donnée, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec yp_first()

<?php
$entry = yp_first($domain, "passwd.byname");

$key = key($entry);
$value = $entry[$key];

echo "La première entrée de cette carte est " . $key . " et sa valeur est " . $value;
?>

Voir aussi

  • yp_next() - Retourne la paire clé/valeur suivante d'une carte donnée
  • yp_get_default_domain() - Retourne le domaine NIS par défaut


Retourne le domaine NIS par défaut

  • « yp_first
  • yp_master »
  • PHP Manual
  • Fonctions YP/NIS
  • Retourne le domaine NIS par défaut

yp_get_default_domain

(PHP 4, PHP 5 <= 5.0.5)

yp_get_default_domain — Retourne le domaine NIS par défaut

Description

string yp_get_default_domain ( void )

Retourne le nom de domaine NIS par défaut. Ce nom de domaine peut être utilisé pour les futurs appels NIS.

Un domaine NIS peut être décrit comme un regroupement de cartes NIS. Tous les hôtes qui ont besoin d'informations s'attachent à un domaine. Référez-vous aux documents cités en début de document pour plus de détails.

Valeurs de retour

Retourne le domaine par défaut du noeud ou FALSE si une erreur survient. Peut être utilisé en tant que domaine pour les prochains appels NIS.

Exemples

Exemple #1 Exemple avec le domaine par défaut

<?php
$domain = yp_get_default_domain();
echo "Le domaine par défaut est : " . $domain;
?>


Retourne le nom de la machine maître pour une carte

  • « yp_get_default_domain
  • yp_match »
  • PHP Manual
  • Fonctions YP/NIS
  • Retourne le nom de la machine maître pour une carte

yp_master

(PHP 4, PHP 5 <= 5.0.5)

yp_master — Retourne le nom de la machine maître pour une carte

Description

string yp_master ( string $domain , string $map )

Retourne le nom de la machine maître d'une carte.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

Valeurs de retour

Exemples

Exemple #1 Exemple pour un maître NIS

<?php
$number = yp_master($domain, $mapname);
echo 'Le maître pour cette carte est : ' . $master;
?>

Voir aussi

  • yp_get_default_domain() - Retourne le domaine NIS par défaut


Retourne la ligne associée

  • « yp_master
  • yp_next »
  • PHP Manual
  • Fonctions YP/NIS
  • Retourne la ligne associée

yp_match

(PHP 4, PHP 5 <= 5.0.5)

yp_match — Retourne la ligne associée

Description

string yp_match ( string $domain , string $map , string $key )

Retourne la valeur associée à la clé key pour la carte map.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

key

Cette clé doit être exacte.

Valeurs de retour

Retourne la valeur, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec yp_match()

<?php
$entry = yp_match($domain, "passwd.byname", "joe");
echo "La valeur trouvée est : " . $entry;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

joe:##joe:11111:100:Joe User:/home/j/joe:/usr/local/bin/bash

Voir aussi

  • yp_get_default_domain() - Retourne le domaine NIS par défaut


Retourne la paire clé/valeur suivante d'une carte donnée

  • « yp_match
  • yp_order »
  • PHP Manual
  • Fonctions YP/NIS
  • Retourne la paire clé/valeur suivante d'une carte donnée

yp_next

(PHP 4, PHP 5 <= 5.0.5)

yp_next — Retourne la paire clé/valeur suivante d'une carte donnée

Description

array yp_next ( string $domain , string $map , string $key )

Retourne la prochaine paire clé/valeur de la carte map après la clé key spécifiée.

Liste de paramètres

domain

map

key

Valeurs de retour

Retourne la prochaine paire clé/valeur en tant que tableau, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec yp_next()

<?php
$entry = yp_next($domain, "passwd.byname", "joe");

if (!$entry) {
    echo "Plus d'autres entrées.\n";
    echo "<!--" . yp_errno() . ": " . yp_err_string() . "-->";
}

$key = key($entry);

echo "L'entrée suivante après \"joe\" a la clé " . $key
      . " et la valeur " . $entry[$key];
?>

Voir aussi

  • yp_first() - Retourne la première paire clé/valeur d'une carte donnée
  • yp_get_default_domain() - Retourne le domaine NIS par défaut


Retourne le numéro d'ordre d'une carte

  • « yp_next
  • 0MQ messaging »
  • PHP Manual
  • Fonctions YP/NIS
  • Retourne le numéro d'ordre d'une carte

yp_order

(PHP 4, PHP 5 <= 5.0.5)

yp_order — Retourne le numéro d'ordre d'une carte

Description

int yp_order ( string $domain , string $map )

Retourne le numéro d'ordre d'une carte.

Liste de paramètres

domain

map

Valeurs de retour

Retourne le numéro d'ordre pour la carte, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec yp_order()

<?php
$number = yp_order($domain, $mapname);
echo 'Le numéro d\'ordre de cette carte est : ' . $number;
?>

Voir aussi

  • yp_get_default_domain() - Retourne le domaine NIS par défaut


ZMQ

  • Introduction
  • Installation/Configuration
    • Pré-requis
  • ZMQ — La classe ZMQ
    • ZMQ::__construct — ZMQ constructor
  • ZMQContext — La classe ZMQContext
    • ZMQContext::__construct — Construit un nouvel objet ZMQContext
    • ZMQContext::getOpt — Récupère une option de contexte
    • ZMQContext::getSocket — Crée un nouveau socket
    • ZMQContext::isPersistent — Vérifie si le contexte est persistent
    • ZMQContext::setOpt — Défini une option de socket
  • ZMQSocket — La classe ZMQSocket
    • ZMQSocket::bind — Lie un socket
    • ZMQSocket::connect — Connecte le socket
    • ZMQSocket::__construct — Construit un nouveau ZMQSocket
    • ZMQSocket::disconnect — Déconnecte un socket
    • ZMQSocket::getEndpoints — Récupère la liste des points finaux
    • ZMQSocket::getPersistentId — Récupère l'ID persistent
    • ZMQSocket::getSocketType — Récupère le type du socket
    • ZMQSocket::getSockOpt — Récupère une option du socket
    • ZMQSocket::isPersistent — Vérifie si le socket est persistent
    • ZMQSocket::recv — Recoit un message
    • ZMQSocket::recvMulti — Recoit un message multipart
    • ZMQSocket::send — Envoi un message
    • ZMQSocket::sendmulti — Envoi un message multipart
    • ZMQSocket::setSockOpt — Défini une option de socket
    • ZMQSocket::unbind — Dé-lie le socket
  • ZMQPoll — La classe ZMQPoll
    • ZMQPoll::add — Ajoute un élément dans le poll
    • ZMQPoll::clear — Supprime tous les éléments du poll
    • ZMQPoll::count — Compte les éléments du poll
    • ZMQPoll::getLastErrors — Récupère les erreurs du poll
    • ZMQPoll::poll — Sonde les éléments
    • ZMQPoll::remove — Supprime un élément du poll
  • ZMQDevice — La classe ZMQDevice
    • ZMQDevice::__construct — Construit un nouveau périphérique
    • ZMQDevice::getIdleTimeout — Récupère le délai d'attente maximal d'inactivité
    • ZMQDevice::getTimerTimeout — Récupère le délai d'attente maximal du timer
    • ZMQDevice::run — Exécute le nouveau périphérique
    • ZMQDevice::setIdleCallback — Défini la fonction de rappel d'inactivité
    • ZMQDevice::setIdleTimeout — Défini le délai d'attente maximal d'inactivité
    • ZMQDevice::setTimerCallback — Défini la fonction de rappel du timer
    • ZMQDevice::setTimerTimeout — Défini le délai d'attente maximal du timer


Introduction

"ØMQ est une bibliothèque qui vous permet d'implémenter rapidement une application rapide à base de message." --Site Web 0MQ

Pour plus d'informations sur 0MQ, voir » http://zeromq.org/.


  • « Introduction
  • Pré-requis »
  • PHP Manual
  • 0MQ messaging
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis


Pré-requis

L'extension ZMQ requiert 0MQ en version 2.0.7 ou supérieures. 0MQ peut être obtenu depuis » http://zeromq.org/area:download.

Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/zmq


La classe ZMQ

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

ZMQ {
/* Constants */
const integer SOCKET_PAIR ;
const integer SOCKET_PUB ;
const integer SOCKET_SUB ;
const integer SOCKET_REQ ;
const integer SOCKET_REP ;
const integer SOCKET_XREQ ;
const integer SOCKET_XREP ;
const integer SOCKET_PUSH ;
const integer SOCKET_PULL ;
const integer SOCKET_ROUTER ;
const integer SOCKET_DEALER ;
const integer SOCKET_XPUB ;
const integer SOCKET_XSUB ;
const integer SOCKET_STREAM ;
const integer SOCKOPT_HWM ;
const integer SOCKOPT_SNDHWM ;
const integer SOCKOPT_RCVHWM ;
const integer SOCKOPT_AFFINITY ;
const integer SOCKOPT_IDENTITY ;
const integer SOCKOPT_SUBSCRIBE ;
const integer SOCKOPT_UNSUBSCRIBE ;
const integer SOCKOPT_RATE ;
const integer SOCKOPT_RECOVERY_IVL ;
const integer SOCKOPT_RECONNECT_IVL ;
const integer SOCKOPT_RECONNECT_IVL_MAX ;
const integer SOCKOPT_MCAST_LOOP ;
const integer SOCKOPT_SNDBUF ;
const integer SOCKOPT_RCVBUF ;
const integer SOCKOPT_RCVMORE ;
const integer SOCKOPT_TYPE ;
const integer SOCKOPT_LINGER ;
const integer SOCKOPT_BACKLOG ;
const integer SOCKOPT_MAXMSGSIZE ;
const integer SOCKOPT_SNDTIMEO ;
const integer SOCKOPT_RCVTIMEO ;
const integer SOCKOPT_IPV4ONLY ;
const integer SOCKOPT_LAST_ENDPOINT ;
const integer SOCKOPT_TCP_KEEPALIVE_IDLE ;
const integer SOCKOPT_TCP_KEEPALIVE_CNT ;
const integer SOCKOPT_TCP_KEEPALIVE_INTVL ;
const integer SOCKOPT_TCP_ACCEPT_FILTER ;
const integer SOCKOPT_TCP_ACCEPT_FILTER ;
const integer SOCKOPT_DELAY_ATTACH_ON_CONNECT ;
const integer SOCKOPT_XPUB_VERBOSE ;
const integer SOCKOPT_ROUTER_RAW ;
const integer SOCKOPT_IPV6 ;
const integer CTXOPT_MAX_SOCKETS ;
const integer POLL_IN ;
const integer POLL_OUT ;
const integer MODE_NOBLOCK ;
const integer MODE_DONTWAIT ;
const integer MODE_SNDMORE ;
const integer ERR_INTERNAL ;
const integer ERR_EAGAIN ;
const integer ERR_ENOTSUP ;
const integer ERR_EFSM ;
const integer ERR_ETERM ;
/* Methods */
private__construct ( void )
}

Constantes pré-définies

Types de constantes ZMQ

ZMQ::SOCKET_PAIR

Masque de paire exclusif

ZMQ::SOCKET_PUB

Socket de publication

ZMQ::SOCKET_SUB

Socket de souscription

ZMQ::SOCKET_REQ

Socket de requête

ZMQ::SOCKET_REP

Socket de réponse

ZMQ::SOCKET_XREQ

Alias de SOCKET_DEALER

ZMQ::SOCKET_XREP

Alias de SOCKET_ROUTER

ZMQ::SOCKET_PUSH

Socket de flux montant

ZMQ::SOCKET_PULL

Socket de flux descendant

ZMQ::SOCKET_ROUTER

Socket REP étendu, qui peut diriger les réponses aux demandeurs

ZMQ::SOCKET_DEALER

Socket REQ étendu, qui effectue une balance de charge sur tous les pairs connectés

ZMQ::SOCKET_XPUB

Similaire à SOCKET_PUB, sauf que vous pouvez recevoir des souscriptions comme messages. Le message de souscription est 0 (désabonner) ou 1 (abonner) suivi du topic.

ZMQ::SOCKET_XSUB

Similaire à SOCKET_SUB, sauf que vous pouvez envoyer des souscriptions. Voir SOCKET_XPUB pour le format.

ZMQ::SOCKET_STREAM

Utilisé pour envoyer et recevoir des données TCP depuis un pair non-ØMQ. Disponible si compilé avec ZeroMQ 4.x ou supérieures (Valeur : entier).

ZMQ::SOCKOPT_HWM

La limite haute pour les messages entrants et sortants est une limite sur le nombre maximal de messages ØMQ en attente dans la file d'attente mémoire pour un chaque pair avec lequel le socket communique. Le fait de définir cette option sur un socket n'affectera que les connexions effectuées après que l'option ait été définie. Sur ZeroMQ 3.x, c'estun gestionnaire pour définir à la fois SNDHWM et RCVHWM. (Valeur : entier).

ZMQ::SOCKOPT_SNDHWM

L'option ZMQ_SNDHWM va définir la limite haute pour les messages sortants sur le socket spécifié. Disponible si compilé avec ZeroMQ 3.x ou supérieures (Valeur : entier).

ZMQ::SOCKOPT_RCVHWM

L'option ZMQ_SNDHWM va définir la limite haute pour les messages entrants sur le socket spécifié. Disponible si compilé avec ZeroMQ 3.x ou supérieures (Valeur : entier).

ZMQ::SOCKOPT_AFFINITY

Défini l'affinité I/O thread (Valeur : entier)

ZMQ::SOCKOPT_IDENTITY

Défini l'identifié du socket (Valeur : chaîne de caractères)

ZMQ::SOCKOPT_SUBSCRIBE

Etablit un filtre de message.Valide pour un socket de souscription (Valeur : chaîne de caractères)

ZMQ::SOCKOPT_UNSUBSCRIBE

Supprime un filtre de message. Valide pour un socket de souscription (Valeur : chaîne de caractères)

ZMQ::SOCKOPT_RATE

Défini le taux pour les sockets multicast (pgm) (Valeur : entier >= 0)

ZMQ::SOCKOPT_RECOVERY_IVL

Défini l'intervalle de récupération multicast (Valeur : entier >= 0)

ZMQ::SOCKOPT_RECONNECT_IVL

Défini l'intervalle de reconnexion initial (Valeur : entier >= 0)

ZMQ::SOCKOPT_RECONNECT_IVL_MAX

Défini l'intervalle de reconnexion maximal (Valeur : entier >= 0)

ZMQ::SOCKOPT_MCAST_LOOP

Contrôle de la boucle locale multicast (Valeur : entier >= 0)

ZMQ::SOCKOPT_SNDBUF

Défini la taille du tampon de transmission du Kernel (Valeur : entier >= 0)

ZMQ::SOCKOPT_RCVBUF

Défini la taille du tampon de réception du Kernal (Valeur : entier >= 0)

ZMQ::SOCKOPT_RCVMORE

Réception de messages multi-part (Valeur : entier)

ZMQ::SOCKOPT_TYPE

Récupère le type de socket. Valide pour getSockOpt (Valeur : entier)

ZMQ::SOCKOPT_LINGER

La valeur linger du socket. Spécifie la durée de blocage du socket lors de sa tentative d'afficher les messages après qu'il n'ait été fermé (Valeur : entier)

ZMQ::SOCKOPT_BACKLOG

L'option SOCKOPT_BACKLOG définit la taille maximale de la file d'attente des messages sortants par connexions pour le socket spécifié ; ceci ne s'applique que pour les transports orientés connexion. (Valeur : entier)

ZMQ::SOCKOPT_MAXMSGSIZE

Limite la taille maximale d'un message entrant. La valeur -1 signifie qu'il n'y a aucune limite. Disponible que si compilé avec ZeroMQ 3.x ou supérieurs (Valeur : entier)

ZMQ::SOCKOPT_SNDTIMEO

Défini le délai d'attente maximal pour une opération d'envoi sur le socket. La valeur -1 signifie qu'il n'y a aucune limite. Disponible que si compilé avec ZeroMQ 3.x ou supérieures (Valeur : entier)

ZMQ::SOCKOPT_RCVTIMEO

Défini le délai d'attente pour une opération de réception sur le socket. La valeur -1 signifie qu'il n'y a aucune limite. Disponible que si compilé avec ZeroMQ 3.x ou supérieures (Valeur : entier)

ZMQ::SOCKOPT_IPV4ONLY

Si vaut 1, le support IPV6 sera désactivé. Disponible que si compilé avec ZeroMQ 3.x ou supérieures (Valeur : entier)

ZMQ::SOCKOPT_LAST_ENDPOINT

Récupère le point final de la dernière connexion - pour une utilisation avec les jokers * des ports. Disponible que si compilé avec ZeroMQ 3.x ou supérieures (Valeur : chaîne de caractères)

ZMQ::SOCKOPT_TCP_KEEPALIVE_IDLE

Temps d'inactivité pour les keepalive TCP. Disponible que si compilé avec ZeroMQ 3.x ou supérieures (Valeur : entier)

ZMQ::SOCKOPT_TCP_KEEPALIVE_CNT

Compteur de temps pour les keepalive TCP. Disponible que si compilé avec ZeroMQ 3.x ou supérieures (Valeur : entier)

ZMQ::SOCKOPT_TCP_KEEPALIVE_INTVL

Intervalle pour les keepalive TCP. Disponible que si compilé avec ZeroMQ 3.x ou supérieures (Valeur : entier)

ZMQ::SOCKOPT_DELAY_ATTACH_ON_CONNECT

Défini une chaîne CIDR pour correspondre avec les connexions TCP entrantes. Disponible que si compilé avec ZeroMQ 3.x ou supérieures (Valeur : chaîne de caractères)

ZMQ::SOCKOPT_TCP_ACCEPT_FILTER

Défini une chaîne CIDR pour correspondre avec les connexions entrantes TCP. Disponible que si compilé avec ZeroMQ 3.x ou supérieures (Valeur : chaîne de caractères)

ZMQ::SOCKOPT_XPUB_VERBOSE

Défini le XPUB pour recevoir une message d'application sur chaque instance d'une souscription. Disponible que si compilé avec ZeroMQ 3.x ou supérieures (Valeur : chaîne de caractères)

ZMQ::SOCKOPT_ROUTER_RAW

Défini le mode brut sur le ROUTER (définir à la valeur 1 pour cela). En mode brut, lors de l'utilisation du transport tcp://, le socket va lire et écrire sans ZeroMQ. Disponible que si compilé avec ZeroMQ 4.0 ou supérieures (Valeur : chaîne de caractères)

ZMQ::SOCKOPT_IPV6

Active l'IPV6. Disponible que si compilé avec ZeroMQ 4.0 ou supérieures (Valeur : chaîne de caractères)

ZMQ::CTXOPT_MAX_SOCKETS

La limite du socket pour ce contexte. Disponible que si compilé avec ZeroMQ 3.x ou supérieures (Valeur : entier)

ZMQ::POLL_IN

File pour les données entrantes

ZMQ::POLL_OUT

File pour les données sortantes

ZMQ::MODE_NOBLOCK

Opération non-bloquante. Obsolète : utilisez plutôt ZMQ::MODE_DONTWAIT

ZMQ::MODE_DONTWAIT

Opération non-bloquante

ZMQ::MODE_SNDMORE

Envoi un message multi-part

ZMQ::DEVICE_FORWARDER

Périphérique de transfert

ZMQ::DEVICE_QUEUE

Périphérique de file

ZMQ::DEVICE_STREAMER

Périphérique de streamer

ZMQ::ERR_INTERNAL

Erreur interne de l'extension ZMQ

ZMQ::ERR_EAGAIN

Implique que l'opération bloquera lorsque ZMQ::MODE_DONTWAIT est utilisé

ZMQ::ERR_ENOTSUP

L'opération n'est pas supportée par ce type de socket

ZMQ::ERR_EFSM

L'opération ne peut être exécutée car le socket est dans un statut incorrect

ZMQ::ERR_ETERM

Le contexte doit se terminer

Sommaire

  • ZMQ::__construct — ZMQ constructor


ZMQ constructor

  • « ZMQ
  • ZMQContext »
  • PHP Manual
  • ZMQ
  • ZMQ constructor

ZMQ::__construct

(PECL zmq >= 0.5.0)

ZMQ::__construct — ZMQ constructor

Description

privateZMQ::__construct ( void )

Constructeur privé pour empêcher l'initialisation directe. Cette classe contient les constantes d'extension ZMQ.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe ZMQContext

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

ZMQContext {
/* Méthodes */
__construct ([ integer $io_threads = 1 [, boolean $is_persistent = true ]] )
public mixed getOpt ( string $key )
public ZMQSocket getSocket ( integer $type [, string $persistent_id = null [, callback $on_new_socket = null ]] )
public boolean isPersistent ( void )
public ZMQContext setOpt ( integer $key , mixed $value )
}

Sommaire

  • ZMQContext::__construct — Construit un nouvel objet ZMQContext
  • ZMQContext::getOpt — Récupère une option de contexte
  • ZMQContext::getSocket — Crée un nouveau socket
  • ZMQContext::isPersistent — Vérifie si le contexte est persistent
  • ZMQContext::setOpt — Défini une option de socket


Construit un nouvel objet ZMQContext

  • « ZMQContext
  • ZMQContext::getOpt »
  • PHP Manual
  • ZMQContext
  • Construit un nouvel objet ZMQContext

ZMQContext::__construct

(PECL zmq >= 0.5.0)

ZMQContext::__construct — Construit un nouvel objet ZMQContext

Description

ZMQContext::__construct ([ integer $io_threads = 1 [, boolean $is_persistent = true ]] )

Construit un nouveau contexte ZMQ. Le contexte est utilisé pour initialiser les sockets. Un contexte persistent est nécessaire pour initialiser des sockets persistents.

Liste de paramètres

io_threads

Nombre de io-threads dans le contexte.

is_persistent

Si le contexte est persistent ou non. Un contexte persistent est stocké pour plusieurs requêtes, et est nécessaire pour les sockets persistents.

Exemples

Exemple #1 Exemple avec ZMQContext()

Construit un nouveau contexte et y alloue le socket de la requête.

<?php
/* Alloue un nouveau contexte */
$context = new ZMQContext();

/* Crée un nouveau socket */
$socket = $context->getSocket(ZMQ::SOCKET_REQ, 'my sock');

/* Connexion au socket */
$socket->connect("tcp://example.com:1234");

/* Envoi une requête */
$socket->send("Hello there");

/* Réception de la réponse */
$message = $socket->recv();
?>

Valeurs de retour

Lance une exception ZMQContextException si l'initialisation du contexte échoue.


Récupère une option de contexte

  • « ZMQContext::__construct
  • ZMQContext::getSocket »
  • PHP Manual
  • ZMQContext
  • Récupère une option de contexte

ZMQContext::getOpt

(PECL zmq >= 1.0.4)

ZMQContext::getOpt — Récupère une option de contexte

Description

public mixed ZMQContext::getOpt ( string $key )

Retourne la valeur d'une option de contexte.

Liste de paramètres

key

Un entier représentant l'option. Voir les constantes ZMQ::CTXOPT_*.

Valeurs de retour

Retourne soit une chaîne de caractères ou un entier suivant le paramètre key. Lance une exception ZMQContextException si une erreur survient.


Crée un nouveau socket

  • « ZMQContext::getOpt
  • ZMQContext::isPersistent »
  • PHP Manual
  • ZMQContext
  • Crée un nouveau socket

ZMQContext::getSocket

(PECL zmq >= 0.5.0)

ZMQContext::getSocket — Crée un nouveau socket

Description

public ZMQSocket ZMQContext::getSocket ( integer $type [, string $persistent_id = null [, callback $on_new_socket = null ]] )

Raccourci pour créer de nouveaux sockets depuis le contexte. Si le contexte n'est pas persistent, le paramètre persistent_id sera ignoré, et le socket deviendra non persistent. Le paramètre on_new_socket ne sera appelé que si une nouvelle structure sous-jacente de socket est créée.

Liste de paramètres

type

Une constante ZMQ::SOCKET_* pour spécifier le type de socket.

persistent_id

Si persistent_id est spécifié, le socket sera persistent entre les différentes requêtes.

on_new_socket

Fonction de rappel, qui sera exécutée lorsqu'une nouvelle structure de socket est créée. Cette fonction ne sera pas appelée si la connexion sous-jacente persistente est ré-utilisée. La fonction de rappel prend deux arguments : ZMQSocket et persistent_id.

Exemples

Exemple #1 Exemple avec ZMQContext()

Basic usage

<?php
/* Alloue un nouveau contexte */
$context = new ZMQContext();

/* Crée un nouveau socket */
$socket = $context->getSocket(ZMQ::SOCKET_REQ, 'my sock');

/* COnnexion au socket */
$socket->connect("tcp://example.com:1234");

/* Envoi une requête */
$socket->send("Hello there");

/* Réception de la réponse */
$message = $socket->recv();
echo "Received message: {$message}\n";
?>

Valeurs de retour

Retourne un objet ZMQSocket en cas de succès. Lance une exception ZMQSocketException si une erreur survient.


Vérifie si le contexte est persistent

  • « ZMQContext::getSocket
  • ZMQContext::setOpt »
  • PHP Manual
  • ZMQContext
  • Vérifie si le contexte est persistent

ZMQContext::isPersistent

(PECL zmq >= 0.5.0)

ZMQContext::isPersistent — Vérifie si le contexte est persistent

Description

public boolean ZMQContext::isPersistent ( void )

Vérifie si le contexte est persistent. Un contexte persistent est nécessaire pour les connexions persistentes, sachant que chaque socket est alloué à un contexte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le contexte est persistent, et FALSE s'il ne l'est pas.


Défini une option de socket

  • « ZMQContext::isPersistent
  • ZMQSocket »
  • PHP Manual
  • ZMQContext
  • Défini une option de socket

ZMQContext::setOpt

(PECL zmq >= 1.0.4)

ZMQContext::setOpt — Défini une option de socket

Description

public ZMQContext ZMQContext::setOpt ( integer $key , mixed $value )

Défini une option de contexte ZMQ. Le type du paramètre value dépend du paramètre key. Voir les types de constantes ZMQ pour plus d'informations.

Liste de paramètres

key

Une constante ZMQ::CTXOPT_*.

value

La valeur du paramètre.

Valeurs de retour

Retourne l'objet courant. Lance une exception ZMQContextException si une erreur survient.


La classe ZMQSocket

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

ZMQSocket {
/* Méthodes */
public ZMQSocket bind ( string $dsn [, boolean $force = false ] )
public ZMQSocket connect ( string $dsn [, boolean $force = false ] )
__construct ( ZMQContext $context , int $type [, string $persistent_id = null [, callback $on_new_socket = null ]] )
public ZMQSocket disconnect ( string $dsn )
public array getEndpoints ( void )
public string getPersistentId ( void )
public integer getSocketType ( void )
public mixed getSockOpt ( string $key )
public boolean isPersistent ( void )
public string recv ([ integer $mode = 0 ] )
public string recvMulti ([ integer $mode = 0 ] )
public ZMQSocket send ( string $message [, integer $mode = 0 ] )
public ZMQSocket send ( array $message [, integer $mode = 0 ] )
public ZMQSocket setSockOpt ( integer $key , mixed $value )
public ZMQSocket unbind ( string $dsn )
}

Sommaire

  • ZMQSocket::bind — Lie un socket
  • ZMQSocket::connect — Connecte le socket
  • ZMQSocket::__construct — Construit un nouveau ZMQSocket
  • ZMQSocket::disconnect — Déconnecte un socket
  • ZMQSocket::getEndpoints — Récupère la liste des points finaux
  • ZMQSocket::getPersistentId — Récupère l'ID persistent
  • ZMQSocket::getSocketType — Récupère le type du socket
  • ZMQSocket::getSockOpt — Récupère une option du socket
  • ZMQSocket::isPersistent — Vérifie si le socket est persistent
  • ZMQSocket::recv — Recoit un message
  • ZMQSocket::recvMulti — Recoit un message multipart
  • ZMQSocket::send — Envoi un message
  • ZMQSocket::sendmulti — Envoi un message multipart
  • ZMQSocket::setSockOpt — Défini une option de socket
  • ZMQSocket::unbind — Dé-lie le socket


Lie un socket

  • « ZMQSocket
  • ZMQSocket::connect »
  • PHP Manual
  • ZMQSocket
  • Lie un socket

ZMQSocket::bind

(PECL zmq >= 0.5.0)

ZMQSocket::bind — Lie un socket

Description

public ZMQSocket ZMQSocket::bind ( string $dsn [, boolean $force = false ] )

Lie un socket à un point final. Le point final est défini au format transport://address où le transport peut être une des valeurs suivantes : inproc, ipc, tcp, pgm ou epgm.

Liste de paramètres

dsn

Le DSN, par exemple : transport://address.

force

On tente le lien même si le socket a déjà été lié au point final donné.

Valeurs de retour

Retourne l'objet courant. Lance une exception ZMQSocketException en cas d'erreur.


Connecte le socket

  • « ZMQSocket::bind
  • ZMQSocket::__construct »
  • PHP Manual
  • ZMQSocket
  • Connecte le socket

ZMQSocket::connect

(PECL zmq >= 0.5.0)

ZMQSocket::connect — Connecte le socket

Description

public ZMQSocket ZMQSocket::connect ( string $dsn [, boolean $force = false ] )

Connecte le socket à un point final distant. Le point final est défini au format transport://address où le transport est une des valeurs suivantes : inproc, ipc, tcp, pgm ou epgm.

Liste de paramètres

dsn

Le DSN de connexion, par exemple : transport://address.

force

Tente de se connecter même si le socket est déjà connecté au point final fourni.

Exemples

Exemple #1 Exemple avec ZMQContext()

Construit un nouveau contexte et y alloue la requête du socket

<?php
/* Nom d'hôte du serveur */
$dsn = "tcp://127.0.0.1:5555";

/* Crée un socket */
$socket = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_REQ, 'my socket');

/* Récupère la liste des points finaux connectés */
$endpoints = $socket->getEndpoints();

/* Vérifie si le socket est connecté */
if (!in_array($dsn, $endpoints['connect'])) {
    echo "<p>Connecting to $dsn</p>";
    $socket->connect($dsn);
} else {
    echo "<p>Already connected to $dsn</p>";
}

/* Envoi et réception */
$socket->send("Hello!");
$message = $socket->recv();

echo "<p>Server said: {$message}</p>";
?>

Valeurs de retour

Retourne l'objet courant. Lance une exception ZMQSocketException en cas d'erreur.


Construit un nouveau ZMQSocket

  • « ZMQSocket::connect
  • ZMQSocket::disconnect »
  • PHP Manual
  • ZMQSocket
  • Construit un nouveau ZMQSocket

ZMQSocket::__construct

(PECL zmq >= 0.5.0)

ZMQSocket::__construct — Construit un nouveau ZMQSocket

Description

ZMQSocket::__construct ( ZMQContext $context , int $type [, string $persistent_id = null [, callback $on_new_socket = null ]] )

Construit un objet ZMQSocket. Le paramètre persistent_id peut être utilisé pour allouer un socket persistent. Un socket persistent doit être alloué depuis un contexte persistent, et il restera connecté pendant plusieurs requêtes. Le paramètre persistent_id peut être utilisé pour ré-appeler le même socket lors des prochaines requêtes. on_new_socket est appelé uniquement lorsqu'une nouvelle structure sous-jacente de socket est créé.

Liste de paramètres

context

Objet ZMQContext.

type

Le type de socket. Voir les constantes ZMQ::SOCKET_*.

persistent_id

Si persistent_id est spécifié, le socket sera persistent pendant plusieurs requêtes. Si context n'est pas persistent, le socket passera automatiquement en mode non-persistent.

on_new_socket

Function de rappel, qui sera exécuté lorsqu'une nouvelle structure de socket sera créée. Cette fonction ne sera pas appelée si la connexion persistente est ré-appelée.

Exemples

Exemple #1 Exemple avec ZMQSocket()

Utilisation de la fonction de rappel sur le socket lié/connecté

<?php

/*
  Le socket est persistent, aussi, cette fonction est appelée uniquement
  lors de la première requête du script.
*/
function on_new_socket_cb(ZMQSocket $socket, $persistent_id = null)
{
    if ($persistent_id === 'server') {
        $socket->bind("tcp://localhost:12122");
    } else {
        $socket->connect("tcp://localhost:12122");
    }
}

/* Alloue un nouveau contexte */
$context = new ZMQContext();

/* Crée un nouveau socket */
$socket = $context->getSocket(ZMQ::SOCKET_REP, 'server', 'on_new_socket_cb');

$message = $socket->recv();
echo "Received message: {$message}\n";
?>

La signature de la fonction de rappel

Note:

function on_new_socket_cb(ZMQSocket $socket, string $persistent_id = null);

Valeurs de retour

Lance une exception ZMQSocketException en cas d'erreur.


Déconnecte un socket

  • « ZMQSocket::__construct
  • ZMQSocket::getEndpoints »
  • PHP Manual
  • ZMQSocket
  • Déconnecte un socket

ZMQSocket::disconnect

(PECL zmq >= 1.0.4)

ZMQSocket::disconnect — Déconnecte un socket

Description

public ZMQSocket ZMQSocket::disconnect ( string $dsn )

Déconnecte le socket depuis un point final distant précédemment connecté. Le point final est défini au format transport://address où le transport est un des suivants : inproc, ipc, tcp, pgm ou epgm.

Liste de paramètres

dsn

Le DSN de connexion, par exemple : transport://address.

Valeurs de retour

Retourne l'objet courant. Lance une exception ZMQSocketException en cas d'erreur.


Récupère la liste des points finaux

  • « ZMQSocket::disconnect
  • ZMQSocket::getPersistentId »
  • PHP Manual
  • ZMQSocket
  • Récupère la liste des points finaux

ZMQSocket::getEndpoints

(PECL zmq >= 0.5.0)

ZMQSocket::getEndpoints — Récupère la liste des points finaux

Description

public array ZMQSocket::getEndpoints ( void )

Retourne une liste des points finaux sur lesquels le socket est connecté ou lié.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les éléments 'bind' et 'connect'.


Récupère l'ID persistent

  • « ZMQSocket::getEndpoints
  • ZMQSocket::getSocketType »
  • PHP Manual
  • ZMQSocket
  • Récupère l'ID persistent

ZMQSocket::getPersistentId

(PECL zmq >= 0.5.0)

ZMQSocket::getPersistentId — Récupère l'ID persistent

Description

public string ZMQSocket::getPersistentId ( void )

Retourne l'ID persistant du socket.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'ID persistent assigné à l'objet ou NULL si le socjet n'est pas persistent.


Récupère le type du socket

  • « ZMQSocket::getPersistentId
  • ZMQSocket::getSockOpt »
  • PHP Manual
  • ZMQSocket
  • Récupère le type du socket

ZMQSocket::getSocketType

(PECL zmq >= 0.5.0)

ZMQSocket::getSocketType — Récupère le type du socket

Description

public integer ZMQSocket::getSocketType ( void )

Récupère le type du socket.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier représentant le type du socket. L'entier peut être comparé à une des constantes ZMQ::SOCKET_*.


Récupère une option du socket

  • « ZMQSocket::getSocketType
  • ZMQSocket::isPersistent »
  • PHP Manual
  • ZMQSocket
  • Récupère une option du socket

ZMQSocket::getSockOpt

(PECL zmq >= 0.5.0)

ZMQSocket::getSockOpt — Récupère une option du socket

Description

public mixed ZMQSocket::getSockOpt ( string $key )

Retourne la valeur d'une option du socket.

Liste de paramètres

key

Un entier représentant l'option. Voir les constantes ZMQ::SOCKOPT_*.

Valeurs de retour

Retourne soit une chaîne de caractères, soit un entier suivant le paramètre key. Lance une exception ZMQSocketException en cas d'erreur.


Vérifie si le socket est persistent

  • « ZMQSocket::getSockOpt
  • ZMQSocket::recv »
  • PHP Manual
  • ZMQSocket
  • Vérifie si le socket est persistent

ZMQSocket::isPersistent

(PECL zmq >= 0.5.0)

ZMQSocket::isPersistent — Vérifie si le socket est persistent

Description

public boolean ZMQSocket::isPersistent ( void )

Vérifie si le socket est persistent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen suivant si le socket est persistent ou non.


Recoit un message

  • « ZMQSocket::isPersistent
  • ZMQSocket::recvMulti »
  • PHP Manual
  • ZMQSocket
  • Recoit un message

ZMQSocket::recv

(PECL zmq >= 0.5.0)

ZMQSocket::recv — Recoit un message

Description

public string ZMQSocket::recv ([ integer $mode = 0 ] )

Recoit un message du socket. Par défaut, la réception va être bloquante tant qu'un message est disponible, à moins que ZMQ::MODE_NOBLOCK ne soit utilisé. L'option ZMQ::SOCKOPT_RCVMORE du socket peut être utilisée pour recevoir des messages multipart. Voir ZMQSocket::setSockOpt() pour plus d'informations.

Liste de paramètres

mode

Drapeaux de mode pour recevoir les messages multipart, ou rendre l'opération non-bloquante. Voir les constantes ZMQ::MODE_*.

Exemples

Exemple #1 Un exemple d'envoi/réception

Envoi et réception non bloquante

<?php

/* Crée un nouvel objet de file ; il doit y avoir un serveur de l'autre côté */
$queue = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_REQ);
$queue->connect("tcp://127.0.0.1:5555");

/* Assigne le socket 1 à la file, envoi et réceptionne */
$retries = 5;
$sending = true;

/* Démarre la boucle */
do {
    try {
        /* Tente un envoi/réception */
        if ($sending) {
            echo "Envoi du message\n";
            $queue->send("Ceci est un message", ZMQ::MODE_NOBLOCK);
            $sending = false;
        } else {
            echo "Réception de la réponse : " . $queue->recv(ZMQ::MODE_NOBLOCK) . "\n";
            break;
        }
    } catch (ZMQSocketException $e) {
        /* EAGAIN signifie que l'opération a bloqué ; nouvelle tentative */
        if ($e->getCode() === ZMQ::ERR_EAGAIN) {
            echo " - Réception de EAGAIN, nouvelle tentative ($retries)\n";
        } else {
            die(" - Erreur : " . $e->getMessage());
        }
    }
    /* On attend un peu entre les opérations */
    usleep(5);
} while (--$retries);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Envoi du message
 - Unable to execute operation, retrying (4)
Réception de la réponse : Ceci est un message

Valeurs de retour

Retourne le message. Lance une exception ZMQSocketException en cas d'erreur. Si ZMQ::MODE_NOBLOCK est utilisé, et que l'opération est bloquante, FALSE sera retourné.


Recoit un message multipart

  • « ZMQSocket::recv
  • ZMQSocket::send »
  • PHP Manual
  • ZMQSocket
  • Recoit un message multipart

ZMQSocket::recvMulti

(PECL zmq >= 0.8.0)

ZMQSocket::recvMulti — Recoit un message multipart

Description

public string ZMQSocket::recvMulti ([ integer $mode = 0 ] )

Recoit un tableau contenant le message multipart depuis un socket. Par défaut, la réception va être bloquante tant qu'un message est disponible à moins que ZMQ::MODE_NOBLOCK ne soit utilisé.

Liste de paramètres

mode

Drapeaux de mode pour recevoir les messages multipart, ou faire que l'opération ne soit pas bloquante. Voir les constantes ZMQ::MODE_*.

Valeurs de retour

Retourne le tableau contenant les parties du message. Lance une exception ZMQSocketException en cas d'erreur. Si ZMQ::MODE_NOBLOCK est utilisé et que l'opération est bloquante, FALSE sera retourné.


Envoi un message

  • « ZMQSocket::recvMulti
  • ZMQSocket::sendmulti »
  • PHP Manual
  • ZMQSocket
  • Envoi un message

ZMQSocket::send

(PECL zmq >= 0.5.0)

ZMQSocket::send — Envoi un message

Description

public ZMQSocket ZMQSocket::send ( string $message [, integer $mode = 0 ] )

Envoi un message en utilisant le socket. L'opération peut être bloquante à moins que ZMQ::MODE_NOBLOCK ne soit utilisé.

Liste de paramètres

message

Le message à envoyer.

mode

Drapeaux du mode pour recevoir des messages multipart ou rendre l'opération non-bloquante. Voir les constantes ZMQ::MODE_*.

Valeurs de retour

Retourne l'objet courant. Lance une exception ZMQSocketException en cas d'erreur. Si ZMQ::MODE_NOBLOCK est utilisé, et que l'opération est bloquante, FALSE sera retourné.


Envoi un message multipart

  • « ZMQSocket::send
  • ZMQSocket::setSockOpt »
  • PHP Manual
  • ZMQSocket
  • Envoi un message multipart

ZMQSocket::sendmulti

(PECL zmq >= 0.8.0)

ZMQSocket::sendmulti — Envoi un message multipart

Description

public ZMQSocket ZMQSocket::send ( array $message [, integer $mode = 0 ] )

Envoi un message multipart en utilisant le socket. L'opération sera bloquante à moins que ZMQ::MODE_NOBLOCK ne soit utilisé.

Liste de paramètres

message

Le message à envoyer - un tableau de chaînes de caractères

mode

Drapeaux pour le mode pour recevoir les messages multipart ou faire que l'opération ne soit pas bloquante. Voir les constantes ZMQ::MODE_*.

Valeurs de retour

Retourne l'objet courant. Lance une exception ZMQSocketException en cas d'erreur. Si ZMQ::MODE_NOBLOCK est utilisé, et que l'opération est bloquante, FALSE sera retourné.


Défini une option de socket

  • « ZMQSocket::sendmulti
  • ZMQSocket::unbind »
  • PHP Manual
  • ZMQSocket
  • Défini une option de socket

ZMQSocket::setSockOpt

(PECL zmq >= 0.5.0)

ZMQSocket::setSockOpt — Défini une option de socket

Description

public ZMQSocket ZMQSocket::setSockOpt ( integer $key , mixed $value )

Défini une option de socket ZMQ. Le type du paramètre value dépend de la clé key. Voir les types de constantes ZMQ pour plus d'informations.

Liste de paramètres

key

Une constante ZMQ::SOCKOPT_*.

value

La valeur du paramètre.

Valeurs de retour

Retourne l'objet courant. Lance une exception ZMQSocketException en cas d'erreur.


Dé-lie le socket

  • « ZMQSocket::setSockOpt
  • ZMQPoll »
  • PHP Manual
  • ZMQSocket
  • Dé-lie le socket

ZMQSocket::unbind

(PECL zmq >= 1.0.4)

ZMQSocket::unbind — Dé-lie le socket

Description

public ZMQSocket ZMQSocket::unbind ( string $dsn )

Dé-lie le socket du point final. Le point final est défini au format transport://address où le transport peut être une des valeurs suivantes : inproc, ipc, tcp, pgm or epgm.

Liste de paramètres

dsn

Le DSN précédemment lié, par exemple : transport://address.

Valeurs de retour

Retourne l'objet courant. Lance une exception ZMQSocketException en cas d'erreur.


La classe ZMQPoll

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

ZMQPoll {
/* Méthodes */
public string add ( mixed $entry , integer $type )
public ZMQPoll clear ( void )
public integer count ( void )
public array getLastErrors ( void )
public integer poll ( array &$readable , array &$writable [, integer $timeout = -1 ] )
public boolean remove ( mixed $item )
}

Sommaire

  • ZMQPoll::add — Ajoute un élément dans le poll
  • ZMQPoll::clear — Supprime tous les éléments du poll
  • ZMQPoll::count — Compte les éléments du poll
  • ZMQPoll::getLastErrors — Récupère les erreurs du poll
  • ZMQPoll::poll — Sonde les éléments
  • ZMQPoll::remove — Supprime un élément du poll


Ajoute un élément dans le poll

  • « ZMQPoll
  • ZMQPoll::clear »
  • PHP Manual
  • ZMQPoll
  • Ajoute un élément dans le poll

ZMQPoll::add

(PECL zmq >= 0.5.0)

ZMQPoll::add — Ajoute un élément dans le poll

Description

public string ZMQPoll::add ( mixed $entry , integer $type )

Ajoute un nouvel élément dans le poll, et retourne l'ID interne de l'élément ajouté. L'élément peut être supprimé du poll en utilisant cet ID.

Liste de paramètres

entry

Objet ZMQSocket ou une ressource de flux PHP

type

Défini l'activité prévue du socket. Voir les constantes ZMQ::POLL_IN et ZMQ::POLL_OUT.

Valeurs de retour

Retourne l'ID de l'élément ajouté, qui pourra être utilisé par la suite pour supprimer l'élément. Lance une exception ZMQPollException en cas d'erreur.


Supprime tous les éléments du poll

  • « ZMQPoll::add
  • ZMQPoll::count »
  • PHP Manual
  • ZMQPoll
  • Supprime tous les éléments du poll

ZMQPoll::clear

(PECL zmq >= 0.5.0)

ZMQPoll::clear — Supprime tous les éléments du poll

Description

public ZMQPoll ZMQPoll::clear ( void )

Supprime tous les éléments du poll.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'objet courant.


Compte les éléments du poll

  • « ZMQPoll::clear
  • ZMQPoll::getLastErrors »
  • PHP Manual
  • ZMQPoll
  • Compte les éléments du poll

ZMQPoll::count

(PECL zmq >= 0.5.0)

ZMQPoll::count — Compte les éléments du poll

Description

public integer ZMQPoll::count ( void )

Compte les éléments du poll.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier représentant tous les éléments du poll.


Récupère les erreurs du poll

  • « ZMQPoll::count
  • ZMQPoll::poll »
  • PHP Manual
  • ZMQPoll
  • Récupère les erreurs du poll

ZMQPoll::getLastErrors

(PECL zmq >= 0.5.0)

ZMQPoll::getLastErrors — Récupère les erreurs du poll

Description

public array ZMQPoll::getLastErrors ( void )

Retourne les IDs des objets qui ont des erreurs dans le dernier poll.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les IDs des éléments qui ont des erreurs dans le dernier poll. Un tableau vide est retourné s'il n'y a aucune erreur.


Sonde les éléments

  • « ZMQPoll::getLastErrors
  • ZMQPoll::remove »
  • PHP Manual
  • ZMQPoll
  • Sonde les éléments

ZMQPoll::poll

(PECL zmq >= 0.5.0)

ZMQPoll::poll — Sonde les éléments

Description

public integer ZMQPoll::poll ( array &$readable , array &$writable [, integer $timeout = -1 ] )

Sonde les éléments du poll courant. Les éléments accessibles en lecture et en écriture sont retournés respectivement dans les paramètres readable et writable. La méthode ZMQPoll::getLastErrors() peut être utilisée pour vérifier s'il y a des erreurs.

Liste de paramètres

readable

Tableau contenant les ZMQSockets/flux PHP retournés, et accessible en lecture. Le tableau sera réinitialisé au début de l'opération.

writable

Tableau contenant les ZMQSockets/flux PHP retournés, et accessible en écriture. Le tableau sera réinitialisé au début de l'opération.

timeout

Délai maximal d'attente de l'opération. -1 signifie que le poll va attendre qu'au moins un élément ne soit actif. Notez que depuis la version 1.0.0, le délai maximal d'attente du poll est défini en millisecondes, plutôt en microsecondes.

Exemples

Exemple #1 Exemple avec ZMQPoll()

Create a simple poll server

<?php

/* Crée un socket, ainsi qu'un masque de réponse de la requête */
$context = new ZMQContext();
$server  = $context->getSocket(ZMQ::SOCKET_REP);

/* Lie le port 5555 sur 127.0.0.1 */
$server->bind("tcp://127.0.0.1:5555");

/* Crée un nouveau poll pour les messages entrants/sortants */
$poll = new ZMQPoll();

/* Ajout l'objet et écoute les entrées/sorties du poll */
$id = $poll->add($server, ZMQ::POLL_IN | ZMQ::POLL_OUT);
echo "Added object with id " . $id . "\n";

/* Initialise les tableaux accueillant les éléments en lecture et écriture */
$readable = array();
$writable = array();

while (true) {
   /* Nombre d'événements à récupérer */
   $events = 0;

   try {
       /* Bloc le Poll tant qu'il y a quelque chose à faire */
       $events = $poll->poll($readable, $writable, -1);
       $errors = $poll->getLastErrors();

       if (count($errors) > 0) {
           foreach ($errors as $error) {
               echo "Error polling object " . $error . "\n";
           }
       }
   } catch (ZMQPollException $e) {
       echo "poll failed: " . $e->getMessage() . "\n";
   }

   if ($events > 0) {
       /* Boucle sur les objets accessible en lecture et réceptionne les messages */
       foreach ($readable as $r) {
           try {
               echo "Received message: " . $r->recv() . "\n";
           } catch (ZMQException $e) {
               echo "recv failed: " . $e->getMessage() . "\n";
           }
       }

       /* Boucle sur les objets accessible en écriture et retourne les messages */
       foreach ($writable as $w) {
           try {
               $w->send("Got it!");
           } catch (ZMQException $e) {
               echo "send failed: " . $e->getMessage() . "\n";
           }
       }
   }
}
?>

Valeurs de retour

Retourne un entier représentant la quantité d'éléments ayant une activité. Lance une exception ZMQPollException en cas d'erreur.


Supprime un élément du poll

  • « ZMQPoll::poll
  • ZMQDevice »
  • PHP Manual
  • ZMQPoll
  • Supprime un élément du poll

ZMQPoll::remove

(PECL zmq >= 0.5.0)

ZMQPoll::remove — Supprime un élément du poll

Description

public boolean ZMQPoll::remove ( mixed $item )

Supprime un élément du poll. Le paramètre item peut être un objet ZMQSocket object, une ressource de flux, ou l'ID retourné depuis la méthode ZMQPoll::add().

Liste de paramètres

item

L'objet ZMQSocket, le flux PHP ou une chaîne de caractères représentant l'id de l'élément.

Valeurs de retour

Retourne TRUE si l'élément a été supprimé et FALSE si l'objet avec l'ID fourni n'existe pas dans le poll.


La classe ZMQDevice

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

ZMQDevice {
/* Méthodes */
__construct ( ZMQSocket $frontend , ZMQSocket $backend [, ZMQSocket $listener ] )
public ZMQDevice getIdleTimeout ( void )
public ZMQDevice getTimerTimeout ( void )
public void run ( void )
public ZMQDevice setIdleCallback ( callable $cb_func , integer $timeout [, mixed $user_data ] )
public ZMQDevice setIdleTimeout ( integer $timeout )
public ZMQDevice setTimerCallback ( callable $cb_func , integer $timeout [, mixed $user_data ] )
public ZMQDevice setTimerTimeout ( integer $timeout )
}

Sommaire

  • ZMQDevice::__construct — Construit un nouveau périphérique
  • ZMQDevice::getIdleTimeout — Récupère le délai d'attente maximal d'inactivité
  • ZMQDevice::getTimerTimeout — Récupère le délai d'attente maximal du timer
  • ZMQDevice::run — Exécute le nouveau périphérique
  • ZMQDevice::setIdleCallback — Défini la fonction de rappel d'inactivité
  • ZMQDevice::setIdleTimeout — Défini le délai d'attente maximal d'inactivité
  • ZMQDevice::setTimerCallback — Défini la fonction de rappel du timer
  • ZMQDevice::setTimerTimeout — Défini le délai d'attente maximal du timer


Construit un nouveau périphérique

  • « ZMQDevice
  • ZMQDevice::getIdleTimeout »
  • PHP Manual
  • ZMQDevice
  • Construit un nouveau périphérique

ZMQDevice::__construct

(PECL zmq >= 0.5.0)

ZMQDevice::__construct — Construit un nouveau périphérique

Description

ZMQDevice::__construct ( ZMQSocket $frontend , ZMQSocket $backend [, ZMQSocket $listener ] )

"Les périphériques ØMQ peuvent effectuer une médiation entre les adresses, les services, les files d'attente ou toute autre abstraction pour définir le message et l'interface des sockets." -- zguide

Liste de paramètres

frontend

Paramètre Frontend pour le périphérique. Habituellement le lieu d'arrivée des messages.

backend

Paramètre Backend pour le périphérique. Habituellement le lieu de départ des messages.

listener

Socket d'écoute, qui recoit une copie de tous les messages entrants et sortants. Le type de ce socket doit être SUB, PULL ou DEALER.

Valeurs de retour

L'appel à cette méthode va préparer le périphérique. Habituellement, les périphériques sont des processus qui s'exécutent pendant beaucoup de temps, aussi l'exécution de cette méthode depuis un script interactiv n'est pas recommandé. Cette méthode lance une exception ZMQDeviceException si le périphérique ne peut être lancé.


Récupère le délai d'attente maximal d'inactivité

  • « ZMQDevice::__construct
  • ZMQDevice::getTimerTimeout »
  • PHP Manual
  • ZMQDevice
  • Récupère le délai d'attente maximal d'inactivité

ZMQDevice::getIdleTimeout

(No version information available, might only be in Git)

ZMQDevice::getIdleTimeout — Récupère le délai d'attente maximal d'inactivité

Description

public ZMQDevice ZMQDevice::getIdleTimeout ( void )

Récupère le délai d'attente maximal d'inactivité. Ajouté dans l'extension ZMQ en version 1.1.0.

Valeurs de retour

Cette méthode retourne la valeur du délai d'attente maximal de la fonction de rappel d'inactivité.


Récupère le délai d'attente maximal du timer

  • « ZMQDevice::getIdleTimeout
  • ZMQDevice::run »
  • PHP Manual
  • ZMQDevice
  • Récupère le délai d'attente maximal du timer

ZMQDevice::getTimerTimeout

(No version information available, might only be in Git)

ZMQDevice::getTimerTimeout — Récupère le délai d'attente maximal du timer

Description

public ZMQDevice ZMQDevice::getTimerTimeout ( void )

Récupère la valeur du délai maximal d'attente de la fonction de rappel d'inactivité. Ajouté à l'extension ZMQ en version 1.1.0.

Valeurs de retour

Cette méthode retourne la valeur du délai maximal d'attente du timer.


Exécute le nouveau périphérique

  • « ZMQDevice::getTimerTimeout
  • ZMQDevice::setIdleCallback »
  • PHP Manual
  • ZMQDevice
  • Exécute le nouveau périphérique

ZMQDevice::run

(No version information available, might only be in Git)

ZMQDevice::run — Exécute le nouveau périphérique

Description

public void ZMQDevice::run ( void )

Exécute le périphérique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'appel à cette méthode est bloquante tant que le périphérique est en fonctionnement. Il n'est pas recommandé d'utiliser les périphériques depuis des scripts interactifs. En cas d'échec, cette méthode a lancé une exception ZMQDeviceException.


Défini la fonction de rappel d'inactivité

  • « ZMQDevice::run
  • ZMQDevice::setIdleTimeout »
  • PHP Manual
  • ZMQDevice
  • Défini la fonction de rappel d'inactivité

ZMQDevice::setIdleCallback

(No version information available, might only be in Git)

ZMQDevice::setIdleCallback — Défini la fonction de rappel d'inactivité

Description

public ZMQDevice ZMQDevice::setIdleCallback ( callable $cb_func , integer $timeout [, mixed $user_data ] )

Défini la fonction de rappel d'inactivité. Si le délai d'attente maximal d'inactivité est défini, la fonction de rappel d'inactivité sera appelée si la boucle interne expire sans événement. Si la focntion de rappel retourne FALSE ou une valeur évaluée à FALSE, le périphérique est stoppé. La signature de la fonction de rappel est : mixed $user_data.

Liste de paramètres

cb_func

La fonction de rappel à appeler lorsque le périphérique est inactif. Le fait de retourner FALSE ou une valeur évaluée à FALSE stoppera le périphérique.

timeout

Le délai d'attente maximal avant d'appeler la fonction de rappel, en millisecondes. La fonction de rappel est appelée périodiquement lorsqu'il n'y a aucune activité sur le périphérique. La valeur du délai d'attente maximal garantie qu'il y aura au moins cette durée entre les appels à la fonction de rappel.

user_data

Données additionnelles à passer à la fonction de rappel.

Valeurs de retour

En cas de succès, cette méthode retourne l'objet courant.


Défini le délai d'attente maximal d'inactivité

  • « ZMQDevice::setIdleCallback
  • ZMQDevice::setTimerCallback »
  • PHP Manual
  • ZMQDevice
  • Défini le délai d'attente maximal d'inactivité

ZMQDevice::setIdleTimeout

(No version information available, might only be in Git)

ZMQDevice::setIdleTimeout — Défini le délai d'attente maximal d'inactivité

Description

public ZMQDevice ZMQDevice::setIdleTimeout ( integer $timeout )

Défini la valeur du délai d'attente maximal de la fonction de rappel d'inactivité. Cette fonction de rappel est appelé périodiquement lorsque le périphérique est inactif.

Liste de paramètres

timeout

La valeur du délai d'attente maximal de la fonction de rappel d'inactivité.

Valeurs de retour

En cas de succès, cette méthode retourne l'objet courant.


Défini la fonction de rappel du timer

  • « ZMQDevice::setIdleTimeout
  • ZMQDevice::setTimerTimeout »
  • PHP Manual
  • ZMQDevice
  • Défini la fonction de rappel du timer

ZMQDevice::setTimerCallback

(No version information available, might only be in Git)

ZMQDevice::setTimerCallback — Défini la fonction de rappel du timer

Description

public ZMQDevice ZMQDevice::setTimerCallback ( callable $cb_func , integer $timeout [, mixed $user_data ] )

Défini la fonction de rappel du timer. La fonction de rappel du time est appelée à l'expiration du délai maximal d'attente. La différence entre les fonctions de rappel de l'inactivité et du timer est que la fonction de rappel de l'inactivité est appelée uniquement lorsque le périphérique est inactif. La signature de la fonction de rappel est : mixed $user_data). Ajouté dans l'extension ZMQ en version 1.1.0.

Liste de paramètres

cb_func

Fonction de rappel à appeler lorsque le périphérique est inactif. Elle doit retourner FALSE ou une valeur évaluée à FALSE pour stopper le périphérique.

timeout

Indique à partir de combien de temps la fonction de rappel d'inactivité doit être appelée, en millisecondes. La fonction de rappel d'inactivité est appelée périodiquement lorsqu'il n'y a aucune activité sur le périphérique. La valeur du délai d'attente maximal garantie qu'il y aura au moins ce temps là avant l'appel à la fonction de rappel.

user_data

Données additionnelles à passer à la fonction de rappel.

Valeurs de retour

En cas de succès, cette méthode retourne l'objet courant.


Défini le délai d'attente maximal du timer

  • « ZMQDevice::setTimerCallback
  • ZooKeeper »
  • PHP Manual
  • ZMQDevice
  • Défini le délai d'attente maximal du timer

ZMQDevice::setTimerTimeout

(No version information available, might only be in Git)

ZMQDevice::setTimerTimeout — Défini le délai d'attente maximal du timer

Description

public ZMQDevice ZMQDevice::setTimerTimeout ( integer $timeout )

Défini la valeur du délai maximal d'attente de la fonction de rappel du timer. Cette fonction de rappel est appelée périodiquement si elle a été définie. Ajouté dans l'extension ZMQ en version 1.1.0.

Liste de paramètres

timeout

La valeur du délai d'attente maximal de la fonction de rappel.

Valeurs de retour

En cas de succès, cette méthode retourne l'objet courant.


ZooKeeper

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • ZooKeeper — The ZooKeeper class
    • Zookeeper::addAuth — Specify application credentials.
    • Zookeeper::connect — Create a handle to used communicate with zookeeper.
    • Zookeeper::__construct — Create a handle to used communicate with zookeeper.
    • Zookeeper::create — Create a node synchronously.
    • Zookeeper::delete — Delete a node in zookeeper synchronously.
    • Zookeeper::exists — Checks the existence of a node in zookeeper synchronously.
    • Zookeeper::get — Gets the data associated with a node synchronously.
    • Zookeeper::getAcl — Gets the acl associated with a node synchronously.
    • Zookeeper::getClientId — return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
    • Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect.
    • Zookeeper::getState — Get the state of the zookeeper connection.
    • Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered.
    • Zookeeper::set — Sets the data associated with a node.
    • Zookeeper::setAcl — Sets the acl associated with a node synchronously.
    • Zookeeper::setDebugLevel — Sets the debugging level for the library.
    • Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization.
    • Zookeeper::setLogStream — Sets the stream to be used by the library for logging.
    • Zookeeper::setWatcher — Set a watcher function.


Introduction

This extension uses libzookeeper library to provide API for communicating with ZooKeeper service.

ZooKeeper is an Apache project that enables centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.


Pré-requis

This extension requires » ZooKeeper C Binding (version 3.4.1 or greater). For more information, see » ZooKeeper Programmer's Guide.

This extension requires PHP version 5.2.0 or higher.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/zookeeper.

To enable zookeeper support, configure with --with-libzookeeper-dir=DIR . DIR is the install prefix of ZooKeeper C Binding, which must contain the include/zookeeper/zookeeper.h

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Zookeeper Options de configuration
Nom | Défaut | Modifiable | Changelog
zookeeper.recv_timeout | 10000 | PHP_INI_ALL |
zookeeper.session_lock | 1 | PHP_INI_SYSTEM |
zookeeper.sess_lock_wait | 150000 | PHP_INI_ALL |
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

zookeeper.recv_timeout integer

Default the timeout for any ZooKeeper session.

zookeeper.session_lock integer

Enable PHP session locking.

zookeeper.sess_lock_wait integer

PHP Session spin lock retry wait time in microseconds. Be carefull when setting this value. Valid values are integers, where 0 is interpreted as the default value. Negative values result in a reduces locking to a try lock.


  • « Types de ressources
  • ZooKeeper »
  • PHP Manual
  • ZooKeeper
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


The ZooKeeper class

(PECL zookeeper >= 0.1.0)

Introduction

Represents ZooKeeper session.

Synopsis de la classe

Zookeeper {
/* Méthodes */
public __construct ([ string $host = '' [, callable $watcher_cb = null [, int $recv_timeout = 10000 ]]] )
public bool addAuth ( string $scheme , string $cert [, callable $completion_cb = null ] )
public void connect ( string $host [, callable $watcher_cb = null [, int $recv_timeout = 10000 ]] )
public string create ( string $path , string $value , array $acls [, int $flags = null ] )
public bool delete ( string $path [, int $version = -1 ] )
public bool exists ( string $path [, callable $watcher_cb = null ] )
public string get ( string $path [, callable $watcher_cb = null [, array &$stat = null [, int $max_size = 0 ]]] )
public array getAcl ( string $path )
public int getClientId ( void )
public int getRecvTimeout ( void )
public int getState ( void )
public bool isRecoverable ( void )
public bool set ( string $path , string $value [, int $version = -1 [, array &$stat = null ]] )
public bool setAcl ( string $path , int $version , array $acl )
public static bool setDebugLevel ( int $logLevel )
public static bool setDeterministicConnOrder ( bool $yesOrNo )
public bool setLogStream ( resource $stream )
public bool setWatcher ( callable $watcher_cb )
/* Constantes */
const integer PERM_READ = 1 ;
const integer PERM_WRITE = 2 ;
const integer PERM_CREATE = 4 ;
const integer PERM_DELETE = 8 ;
const integer PERM_ADMIN = 16 ;
const integer PERM_ALL = 31 ;
const integer LOG_LEVEL_ERROR = 1 ;
const integer LOG_LEVEL_WARN = 2 ;
const integer LOG_LEVEL_INFO = 3 ;
const integer LOG_LEVEL_DEBUG = 4 ;
const integer EXPIRED_SESSION_STATE = -112 ;
const integer AUTH_FAILED_STATE = -113 ;
const integer CONNECTING_STATE = 1 ;
const integer ASSOCIATING_STATE = 2 ;
const integer CONNECTED_STATE = 3 ;
const integer READONLY_STATE = 5 ;
const integer NOTCONNECTED_STATE = 999 ;
}

Constantes pré-définies

ZooKeeper Permissions

Zookeeper::PERM_READ

Can read nodes value and list its children

Zookeeper::PERM_WRITE

Can set the nodes value

Zookeeper::PERM_CREATE

Can create children

Zookeeper::PERM_DELETE

Can delete children

Zookeeper::PERM_ADMIN

Can execute set_acl()

Zookeeper::PERM_ALL

All of the above flags ORd together

ZooKeeper Log Levels

Zookeeper::LOG_LEVEL_ERROR

Outputs only error mesages

Zookeeper::LOG_LEVEL_WARN

Outputs errors/warnings

Zookeeper::LOG_LEVEL_INFO

Outputs big action messages besides errors/warnings

Zookeeper::LOG_LEVEL_DEBUG

Outputs all

ZooKeeper States

Zookeeper::EXPIRED_SESSION_STATE

Connected but session expired

Zookeeper::AUTH_FAILED_STATE

Connected but auth failed

Zookeeper::CONNECTING_STATE

Connecting

Zookeeper::ASSOCIATING_STATE

Associating

Zookeeper::CONNECTED_STATE

Connected

Zookeeper::READONLY_STATE

TODO: help us improve this extension.

Zookeeper::NOTCONNECTED_STATE

Connection failed

Sommaire

  • Zookeeper::addAuth — Specify application credentials.
  • Zookeeper::connect — Create a handle to used communicate with zookeeper.
  • Zookeeper::__construct — Create a handle to used communicate with zookeeper.
  • Zookeeper::create — Create a node synchronously.
  • Zookeeper::delete — Delete a node in zookeeper synchronously.
  • Zookeeper::exists — Checks the existence of a node in zookeeper synchronously.
  • Zookeeper::get — Gets the data associated with a node synchronously.
  • Zookeeper::getAcl — Gets the acl associated with a node synchronously.
  • Zookeeper::getClientId — return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect.
  • Zookeeper::getState — Get the state of the zookeeper connection.
  • Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered.
  • Zookeeper::set — Sets the data associated with a node.
  • Zookeeper::setAcl — Sets the acl associated with a node synchronously.
  • Zookeeper::setDebugLevel — Sets the debugging level for the library.
  • Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization.
  • Zookeeper::setLogStream — Sets the stream to be used by the library for logging.
  • Zookeeper::setWatcher — Set a watcher function.


Specify application credentials.

  • « ZooKeeper
  • Zookeeper::connect »
  • PHP Manual
  • ZooKeeper
  • Specify application credentials.

Zookeeper::addAuth

(PECL zookeeper >= 0.1.0)

Zookeeper::addAuth — Specify application credentials.

Description

public bool Zookeeper::addAuth ( string $scheme , string $cert [, callable $completion_cb = null ] )

The application calls this function to specify its credentials for purposes of authentication. The server will use the security provider specified by the scheme parameter to authenticate the client connection. If the authentication request has failed: - the server connection is dropped. - the watcher is called with the ZOO_AUTH_FAILED_STATE value as the state parameter.

Liste de paramètres

scheme

The id of authentication scheme. Natively supported: "digest" password-based authentication

cert

Application credentials. The actual value depends on the scheme.

completion_cb

The routine to invoke when the request completes. One of the following result codes may be passed into the completion callback: - ZOK operation completed successfully - ZAUTHFAILED authentication failed

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Exemples

Exemple #1 Zookeeper::addAuth() example

Add auth before requesting node value.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$zookeeper->set($path, $value);

$zookeeper->addAuth('digest', 'user0:passwd0');
$r = $zookeeper->get($path);
if ($r)
  echo $r;
else
  echo 'ERR';
?>

L'exemple ci-dessus va afficher :

nodevalue

Voir aussi

  • Zookeeper::create() - Create a node synchronously.
  • Zookeeper::setAcl() - Sets the acl associated with a node synchronously.
  • Zookeeper::getAcl() - Gets the acl associated with a node synchronously.
  • ZooKeeper States


Create a handle to used communicate with zookeeper.

  • « Zookeeper::addAuth
  • Zookeeper::__construct »
  • PHP Manual
  • ZooKeeper
  • Create a handle to used communicate with zookeeper.

Zookeeper::connect

(PECL zookeeper >= 0.2.0)

Zookeeper::connect — Create a handle to used communicate with zookeeper.

Description

public void Zookeeper::connect ( string $host [, callable $watcher_cb = null [, int $recv_timeout = 10000 ]] )

This method creates a new handle and a zookeeper session that corresponds to that handle. Session establishment is asynchronous, meaning that the session should not be considered established until (and unless) an event of state ZOO_CONNECTED_STATE is received.

Liste de paramètres

host

Comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"

watcher_cb

The global watcher callback function. When notifications are triggered this function will be invoked.

recv_timeout

The timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE).

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or could not init instance.

Voir aussi

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper.


Create a handle to used communicate with zookeeper.

  • « Zookeeper::connect
  • Zookeeper::create »
  • PHP Manual
  • ZooKeeper
  • Create a handle to used communicate with zookeeper.

Zookeeper::__construct

(PECL zookeeper >= 0.1.0)

Zookeeper::__construct — Create a handle to used communicate with zookeeper.

Description

public Zookeeper::__construct ([ string $host = '' [, callable $watcher_cb = null [, int $recv_timeout = 10000 ]]] )

This method creates a new handle and a zookeeper session that corresponds to that handle. Session establishment is asynchronous, meaning that the session should not be considered established until (and unless) an event of state ZOO_CONNECTED_STATE is received.

Liste de paramètres

host

comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"

watcher_cb

the global watcher callback function. When notifications are triggered this function will be invoked.

recv_timeout

the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE).

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or could not init instance.

Voir aussi

  • Zookeeper::connect() - Create a handle to used communicate with zookeeper.


Create a node synchronously.

  • « Zookeeper::__construct
  • Zookeeper::delete »
  • PHP Manual
  • ZooKeeper
  • Create a node synchronously.

Zookeeper::create

(PECL zookeeper >= 0.1.0)

Zookeeper::create — Create a node synchronously.

Description

public string Zookeeper::create ( string $path , string $value , array $acls [, int $flags = null ] )

This method will create a node in ZooKeeper. A node can only be created if it does not already exists. The Create Flags affect the creation of nodes. If ZOO_EPHEMERAL flag is set, the node will automatically get removed if the client session goes away. If the ZOO_SEQUENCE flag is set, a unique monotonically increasing sequence number is appended to the path name.

Liste de paramètres

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

value

The data to be stored in the node.

acls

The initial ACL of the node. The ACL must not be null or empty.

flags

this parameter can be set to 0 for normal create or an OR of the Create Flags

Valeurs de retour

Returns the path of the new node (this might be different than the supplied path because of the ZOO_SEQUENCE flag) on success, and false on failure.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to create node.

Exemples

Exemple #1 Zookeeper::create() example

Create a new node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
  array(
    'perms'  => Zookeeper::PERM_ALL,
    'scheme' => 'world',
    'id'     => 'anyone',
  )
);
$path = '/path/to/newnode';
$realPath = $zookeeper->create($path, null, $aclArray);
if ($realPath)
  echo $realPath;
else
  echo 'ERR';
?>

L'exemple ci-dessus va afficher :

/path/to/newnode

Voir aussi

  • Zookeeper::delete() - Delete a node in zookeeper synchronously.
  • ZooKeeper Permissions


Delete a node in zookeeper synchronously.

  • « Zookeeper::create
  • Zookeeper::exists »
  • PHP Manual
  • ZooKeeper
  • Delete a node in zookeeper synchronously.

Zookeeper::delete

(PECL zookeeper >= 0.2.0)

Zookeeper::delete — Delete a node in zookeeper synchronously.

Description

public bool Zookeeper::delete ( string $path [, int $version = -1 ] )

Liste de paramètres

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to delete node.

Exemples

Exemple #1 Zookeeper::delete() example

Delete a existing node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$r = $zookeeper->delete($path);
if ($r)
  echo 'SUCCESS';
else
  echo 'ERR';
?>

L'exemple ci-dessus va afficher :

SUCCESS

Voir aussi

  • Zookeeper::create() - Create a node synchronously.


Checks the existence of a node in zookeeper synchronously.

  • « Zookeeper::delete
  • Zookeeper::get »
  • PHP Manual
  • ZooKeeper
  • Checks the existence of a node in zookeeper synchronously.

Zookeeper::exists

(PECL zookeeper >= 0.1.0)

Zookeeper::exists — Checks the existence of a node in zookeeper synchronously.

Description

public bool Zookeeper::exists ( string $path [, callable $watcher_cb = null ] )

Liste de paramètres

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

watcher_cb

if nonzero, a watch will be set at the server to notify the client if the node changes. The watch will be set even if the node does not

Valeurs de retour

Returns true/false on success, and false on failure.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to check the existence of a node.

Exemples

Exemple #1 Zookeeper::exists() example

Check the existence of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$r = $zookeeper->exists($path);
if ($r)
  echo 'EXISTS';
else
  echo 'N/A or ERR';
?>

L'exemple ci-dessus va afficher :

EXISTS

Voir aussi

  • Zookeeper::get() - Gets the data associated with a node synchronously.


Gets the data associated with a node synchronously.

  • « Zookeeper::exists
  • Zookeeper::getAcl »
  • PHP Manual
  • ZooKeeper
  • Gets the data associated with a node synchronously.

Zookeeper::get

(PECL zookeeper >= 0.1.0)

Zookeeper::get — Gets the data associated with a node synchronously.

Description

public string Zookeeper::get ( string $path [, callable $watcher_cb = null [, array &$stat = null [, int $max_size = 0 ]]] )

Liste de paramètres

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

watcher_cb

If nonzero, a watch will be set at the server to notify the client if the node changes.

stat

If not NULL, will hold the value of stat for the path on return.

max_size

Max size of the data. If 0 is used, this method will return the whole data.

Valeurs de retour

Returns the data on success, and false on failure.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to get value from node.

Exemples

Exemple #1 Zookeeper::get() example

Get value from node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$zookeeper->set($path, $value);

$r = $zookeeper->get($path);
if ($r)
  echo $r;
else
  echo 'ERR';
?>

L'exemple ci-dessus va afficher :

nodevalue

Voir aussi

  • Zookeeper::set() - Sets the data associated with a node.


Gets the acl associated with a node synchronously.

  • « Zookeeper::get
  • Zookeeper::getClientId »
  • PHP Manual
  • ZooKeeper
  • Gets the acl associated with a node synchronously.

Zookeeper::getAcl

(PECL zookeeper >= 0.1.0)

Zookeeper::getAcl — Gets the acl associated with a node synchronously.

Description

public array Zookeeper::getAcl ( string $path )

Liste de paramètres

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

Valeurs de retour

Return acl array on success and false on failure.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to get ACL of a node.

Exemples

Exemple #1 Zookeeper::getAcl() example

Get ACL of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
  array(
    'perms'  => Zookeeper::PERM_ALL,
    'scheme' => 'world',
    'id'     => 'anyone',
  )
);
$path = '/path/to/newnode';
$zookeeper->setAcl($path, $aclArray);

$r = $zookeeper->getAcl($path);
if ($r)
  var_dump($r);
else
  echo 'ERR';
?>

L'exemple ci-dessus va afficher :

array(1) {
  [0]=>
  array(3) {
    ["perms"]=>
    int(31)
    ["scheme"]=>
    string(5) "world"
    ["id"]=>
    string(6) "anyone"
  }
}

Voir aussi

  • Zookeeper::create() - Create a node synchronously.
  • Zookeeper::setAcl() - Sets the acl associated with a node synchronously.
  • ZooKeeper Permissions


return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

  • « Zookeeper::getAcl
  • Zookeeper::getRecvTimeout »
  • PHP Manual
  • ZooKeeper
  • return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

Zookeeper::getClientId

(PECL zookeeper >= 0.1.0)

Zookeeper::getClientId — return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

Description

public int Zookeeper::getClientId ( void )

Valeurs de retour

Returns the client session id on success, and false on failure.

Erreurs / Exceptions

This method emits PHP error/warning when it could not get client session id.

Voir aussi

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper.
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper.
  • Zookeeper::getState() - Get the state of the zookeeper connection.
  • ZooKeeper States


Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect.

  • « Zookeeper::getClientId
  • Zookeeper::getState »
  • PHP Manual
  • ZooKeeper
  • Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect.

Zookeeper::getRecvTimeout

(PECL zookeeper >= 0.1.0)

Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect.

Description

public int Zookeeper::getRecvTimeout ( void )

Valeurs de retour

Returns the timeout for this session on success, and false on failure.

Erreurs / Exceptions

This method emits PHP error/warning when operation fails.

Voir aussi

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper.
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper.


Get the state of the zookeeper connection.

  • « Zookeeper::getRecvTimeout
  • Zookeeper::isRecoverable »
  • PHP Manual
  • ZooKeeper
  • Get the state of the zookeeper connection.

Zookeeper::getState

(PECL zookeeper >= 0.1.0)

Zookeeper::getState — Get the state of the zookeeper connection.

Description

public int Zookeeper::getState ( void )

Valeurs de retour

Returns the state of zookeeper connection on success, and false on failure.

Erreurs / Exceptions

This method emits PHP error/warning when it fails to get state of zookeeper connection.

Voir aussi

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper.
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper.
  • Zookeeper::getClientId() - return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • ZooKeeper States


Checks if the current zookeeper connection state can be recovered.

  • « Zookeeper::getState
  • Zookeeper::set »
  • PHP Manual
  • ZooKeeper
  • Checks if the current zookeeper connection state can be recovered.

Zookeeper::isRecoverable

(PECL zookeeper >= 0.1.0)

Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered.

Description

public bool Zookeeper::isRecoverable ( void )

The application must close the zhandle and try to reconnect.

Valeurs de retour

Returns true/false on success, and false on failure.

Erreurs / Exceptions

This method emits PHP error/warning when operation fails.

Voir aussi

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper.
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper.
  • Zookeeper::getClientId() - return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • ZooKeeper States


Sets the data associated with a node.

  • « Zookeeper::isRecoverable
  • Zookeeper::setAcl »
  • PHP Manual
  • ZooKeeper
  • Sets the data associated with a node.

Zookeeper::set

(PECL zookeeper >= 0.1.0)

Zookeeper::set — Sets the data associated with a node.

Description

public bool Zookeeper::set ( string $path , string $value [, int $version = -1 [, array &$stat = null ]] )

Liste de paramètres

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

value

The data to be stored in the node.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to save value to node.

Exemples

Exemple #1 Zookeeper::set() example

Save value to node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$r = $zookeeper->set($path, $value);
if ($r)
  echo 'SUCCESS';
else
  echo 'ERR';
?>

L'exemple ci-dessus va afficher :

SUCCESS

Voir aussi

  • Zookeeper::create() - Create a node synchronously.
  • Zookeeper::get() - Gets the data associated with a node synchronously.


Sets the acl associated with a node synchronously.

  • « Zookeeper::set
  • Zookeeper::setDebugLevel »
  • PHP Manual
  • ZooKeeper
  • Sets the acl associated with a node synchronously.

Zookeeper::setAcl

(PECL zookeeper >= 0.1.0)

Zookeeper::setAcl — Sets the acl associated with a node synchronously.

Description

public bool Zookeeper::setAcl ( string $path , int $version , array $acl )

Liste de paramètres

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

version

The expected version of the path.

acl

The acl to be set on the path.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to set ACL for a node.

Exemples

Exemple #1 Zookeeper::setAcl() example

Set ACL for a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
  array(
    'perms'  => Zookeeper::PERM_ALL,
    'scheme' => 'world',
    'id'     => 'anyone',
  )
);
$path = '/path/to/newnode';
$zookeeper->setAcl($path, $aclArray);

$r = $zookeeper->getAcl($path);
if ($r)
  var_dump($r);
else
  echo 'ERR';
?>

L'exemple ci-dessus va afficher :

array(1) {
  [0]=>
  array(3) {
    ["perms"]=>
    int(31)
    ["scheme"]=>
    string(5) "world"
    ["id"]=>
    string(6) "anyone"
  }
}

Voir aussi

  • Zookeeper::create() - Create a node synchronously.
  • Zookeeper::getAcl() - Gets the acl associated with a node synchronously.
  • ZooKeeper Permissions


Sets the debugging level for the library.

  • « Zookeeper::setAcl
  • Zookeeper::setDeterministicConnOrder »
  • PHP Manual
  • ZooKeeper
  • Sets the debugging level for the library.

Zookeeper::setDebugLevel

(PECL zookeeper >= 0.1.0)

Zookeeper::setDebugLevel — Sets the debugging level for the library.

Description

public static bool Zookeeper::setDebugLevel ( int $logLevel )

Liste de paramètres

logLevel

ZooKeeper log level constants.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to set debug level.

Exemples

Exemple #1 Zookeeper::setDebugLevel() example

Set debugl level.

<?php
$r = Zookeeper::setDebugLevel(Zookeeper::LOG_LEVEL_WARN);
if ($r)
  echo 'SUCCESS';
else
  echo 'ERR';
?>
?>

L'exemple ci-dessus va afficher :

SUCCESS

Voir aussi

  • ZooKeeper Log Levels


Enable/disable quorum endpoint order randomization.

  • « Zookeeper::setDebugLevel
  • Zookeeper::setLogStream »
  • PHP Manual
  • ZooKeeper
  • Enable/disable quorum endpoint order randomization.

Zookeeper::setDeterministicConnOrder

(PECL zookeeper >= 0.1.0)

Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization.

Description

public static bool Zookeeper::setDeterministicConnOrder ( bool $yesOrNo )

If passed a non-zero value, will make the client connect to quorum peers in the order as specified in the zookeeper_init() call. A zero value causes zookeeper_init() to permute the peer endpoints which is good for more even client connection distribution among the quorum peers.

Liste de paramètres

yesOrNo

Enable/disable quorum endpoint order randomization.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Notes

Attention

Note: typically this method should NOT be used outside of testing.

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Avertissement

Cette fonction n'est pas capable de gérer les chaînes binaires!

Note: register_globals : note importante

Depuis PHP 4.2.0, la valeur par défaut de la directive de configuration PHP register_globals vaut off. La communauté PHP vous recommande de ne pas dépendre de cette directive, mais de trouver d'autres moyens pour accéder aux données, tels que les superglobals.

Voir aussi

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper.
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper.


Sets the stream to be used by the library for logging.

  • « Zookeeper::setDeterministicConnOrder
  • Zookeeper::setWatcher »
  • PHP Manual
  • ZooKeeper
  • Sets the stream to be used by the library for logging.

Zookeeper::setLogStream

(PECL zookeeper >= 0.1.0)

Zookeeper::setLogStream — Sets the stream to be used by the library for logging.

Description

public bool Zookeeper::setLogStream ( resource $stream )

The zookeeper library uses stderr as its default log stream. Application must make sure the stream is writable. Passing in NULL resets the stream to its default value (stderr).

Liste de paramètres

stream

The stream to be used by the library for logging.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Voir aussi

  • Zookeeper::setDebugLevel() - Sets the debugging level for the library.


Set a watcher function.

  • « Zookeeper::setLogStream
  • Extensions spécifiques aux moteurs de recherche »
  • PHP Manual
  • ZooKeeper
  • Set a watcher function.

Zookeeper::setWatcher

(PECL zookeeper >= 0.1.0)

Zookeeper::setWatcher — Set a watcher function.

Description

public bool Zookeeper::setWatcher ( callable $watcher_cb )

Liste de paramètres

watcher_cb

A watch will be set at the server to notify the client if the node changes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to set watcher.

Voir aussi

  • Zookeeper::exists() - Checks the existence of a node in zookeeper synchronously.
  • Zookeeper::get() - Gets the data associated with a node synchronously.


Extensions spécifiques aux moteurs de recherche

  • mnoGoSearch
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions mnoGoSearch
  • Solr — Apache Solr
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Solr
    • Exemples
    • SolrUtils — La classe SolrUtils
    • SolrInputDocument — La classe SolrInputDocument
    • SolrDocument — La classe SolrDocument
    • SolrDocumentField — La classe SolrDocumentField
    • SolrObject — La classe SolrObject
    • SolrClient — La classe SolrClient
    • SolrResponse — La classe SolrResponse
    • SolrQueryResponse — La classe SolrQueryResponse
    • SolrUpdateResponse — La classe SolrUpdateResponse
    • SolrPingResponse — La classe SolrPingResponse
    • SolrGenericResponse — La classe SolrGenericResponse
    • SolrParams — La classe SolrParams
    • SolrModifiableParams — La classe SolrModifiableParams
    • SolrQuery — La classe SolrQuery
    • SolrDisMaxQuery — The SolrDisMaxQuery class
    • SolrCollapseFunction — The SolrCollapseFunction class
    • SolrException — La classe SolrException
    • SolrClientException — La classe SolrClientException
    • SolrServerException — La classe SolrServerException
    • SolrIllegalArgumentException — La classe SolrIllegalArgumentException
    • SolrIllegalOperationException — La classe SolrIllegalOperationException
    • SolrMissingMandatoryParameterException — The SolrMissingMandatoryParameterException class
  • Sphinx — Client Sphinx
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • SphinxClient — La classe SphinxClient
  • Swish — Indexation Swish
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Swish


mnoGoSearch

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions mnoGoSearch
    • udm_add_search_limit — Ajoute différentes limitations de recherche
    • udm_alloc_agent_array — Alloue une session mnoGoSearch
    • udm_alloc_agent — Alloue une session mnoGoSearch
    • udm_api_version — Lit la version de l'API mnoGoSearch
    • udm_cat_list — Liste toutes les catégories de même niveau
    • udm_cat_path — Lit le chemin de la catégorie courante
    • udm_check_charset — Vérifie si un jeu de caractères est supporté par mnogosearch
    • udm_clear_search_limits — Annule toutes les limitations de recherche MnoGoSearch
    • udm_crc32 — Retourne la somme de contrôle CRC32 d'une chaîne
    • udm_errno — Numéro d'erreur mnoGoSearch
    • udm_error — Message d'erreur mnoGoSearch
    • udm_find — Effectue une recherche
    • udm_free_agent — Détruit une session mnoGoSearch
    • udm_free_ispell_data — Libère la mémoire allouée pour ispell par MnoGoSearch
    • udm_free_res — Libère un résultat mnoGoSearch
    • udm_get_doc_count — Lit le nombre total de documents dans les bases MnoGoSearch
    • udm_get_res_field — Lit un champ de résultat
    • udm_get_res_param — Lit les paramètres de résultats mnoGoSearch
    • udm_hash32 — Retourne la somme de contrôle Hash32 d'une chaîne donnée
    • udm_load_ispell_data — Charge les données ispell
    • udm_set_agent_param — Modifie les paramètres de l'agent MnoGoSearch


Introduction

Ces fonctions donnent l'accès à mnoGoSearch (anciennement UdmSearch), moteur de recherche du monde libre. mnoGoSearch est un moteur de recherche complet, destiné aux intranet et serveurs web, distribué sous licence GNU. mnoGoSearch offre des fonctionnalités unique, qui en font un excellent outil pour un grand nombre d'applications de recherche dans votre site : recherche de recettes de cuisines ou dans les journaux, recherche dans un site FTP, dans les groupes de news, etc. Il offre un système d'indexation de textes pour les fichiers HTML, PDF et documents textes. MnoGoSearch est constitué de deux parties : l'indexeur, qui effectue les recherches et le moteur de recherche. L'indexeur passe en revue récursivement les sites HTTP, FTP, NEWS ou encore les fichiers locaux, et enregistre des métadonnées dans les bases MySQL, pour optimiser les recherches ultérieures. Une fois que tous les documents ont été référencés, ils sont accessibles au moteur de recherche. Celui-ci est utilisable par interface web. Les langages C CGI, Perl et PHP sont supportés pour effectuer les recherches.

Plus de détails sur le site officiel de mnoGoSearch : » http://www.mnogosearch.org/.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.


Pré-requis

Téléchargez mnoGosearch sur le site » http://www.mnogosearch.org/ et installez-le sur votre système. Vous aurez besoin de la version 3.1.10 ou plus récente de mnoGoSearch, pour pouvoir utiliser ces fonctions.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/mnogosearch.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Note:

PHP supporte naturellement MySQL. Il faut savoir que mnoGoSearch n'est pas compatible avec la bibliothèque interne de PHP, et ne peut fonctionner qu'avec les bibliothèques génériques MySQL. Par conséquent, si vous utilisez mnoGoSearch avec MySQL, indiquez le dossier d'installation de MySQL durant la configuration avec l'option : --with-mnogosearch --with-mysql=/usr .


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

UDM_FIELD_URLID (entier)
UDM_FIELD_URL (entier)
UDM_FIELD_CONTENT (entier)
UDM_FIELD_TITLE (entier)
UDM_FIELD_KEYWORDS (entier)
UDM_FIELD_DESC (entier)
UDM_FIELD_DESCRIPTION (entier)
UDM_FIELD_TEXT (entier)
UDM_FIELD_SIZE (entier)
UDM_FIELD_RATING (entier)
UDM_FIELD_SCORE (entier)
UDM_FIELD_MODIFIED (entier)
UDM_FIELD_ORDER (entier)
UDM_FIELD_CRC (entier)
UDM_FIELD_CATEGORY (entier)
UDM_FIELD_LANG (entier)
UDM_FIELD_CHARSET (entier)
UDM_PARAM_PAGE_SIZE (entier)
UDM_PARAM_PAGE_NUM (entier)
UDM_PARAM_SEARCH_MODE (entier)
UDM_PARAM_CACHE_MODE (entier)
UDM_PARAM_TRACK_MODE (entier)
UDM_PARAM_PHRASE_MODE (entier)
UDM_PARAM_CHARSET (entier)
UDM_PARAM_LOCAL_CHARSET (entier)
UDM_PARAM_BROWSER_CHARSET (entier)
UDM_PARAM_STOPTABLE (entier)
UDM_PARAM_STOP_TABLE (entier)
UDM_PARAM_STOPFILE (entier)
UDM_PARAM_STOP_FILE (entier)
UDM_PARAM_WEIGHT_FACTOR (entier)
UDM_PARAM_WORD_MATCH (entier)
UDM_PARAM_MAX_WORD_LEN (entier)
UDM_PARAM_MAX_WORDLEN (entier)
UDM_PARAM_MIN_WORD_LEN (entier)
UDM_PARAM_MIN_WORDLEN (entier)
UDM_PARAM_ISPELL_PREFIXES (entier)
UDM_PARAM_ISPELL_PREFIX (entier)
UDM_PARAM_PREFIXES (entier)
UDM_PARAM_PREFIX (entier)
UDM_PARAM_CROSS_WORDS (entier)
UDM_PARAM_CROSSWORDS (entier)
UDM_PARAM_VARDIR (entier)
UDM_PARAM_DATADIR (entier)
UDM_PARAM_HLBEG (entier)
UDM_PARAM_HLEND (entier)
UDM_PARAM_SYNONYM (entier)
UDM_PARAM_SEARCHD (entier)
UDM_PARAM_QSTRING (entier)
UDM_PARAM_REMOTE_ADDR (entier)
UDM_LIMIT_CAT (entier)
UDM_LIMIT_URL (entier)
UDM_LIMIT_TAG (entier)
UDM_LIMIT_LANG (entier)
UDM_LIMIT_DATE (entier)
UDM_PARAM_FOUND (entier)
UDM_PARAM_NUM_ROWS (entier)
UDM_PARAM_WORDINFO (entier)
UDM_PARAM_WORD_INFO (entier)
UDM_PARAM_SEARCHTIME (entier)
UDM_PARAM_SEARCH_TIME (entier)
UDM_PARAM_FIRST_DOC (entier)
UDM_PARAM_LAST_DOC (entier)
UDM_MODE_ALL (entier)
UDM_MODE_ANY (entier)
UDM_MODE_BOOL (entier)
UDM_MODE_PHRASE (entier)
UDM_CACHE_ENABLED (entier)
UDM_CACHE_DISABLED (entier)
UDM_TRACK_ENABLED (entier)
UDM_TRACK_DISABLED (entier)
UDM_PHRASE_ENABLED (entier)
UDM_PHRASE_DISABLED (entier)
UDM_CROSS_WORDS_ENABLED (entier)
UDM_CROSSWORDS_ENABLED (entier)
UDM_CROSS_WORDS_DISABLED (entier)
UDM_CROSSWORDS_DISABLED (entier)
UDM_PREFIXES_ENABLED (entier)
UDM_PREFIX_ENABLED (entier)
UDM_ISPELL_PREFIXES_ENABLED (entier)
UDM_ISPELL_PREFIX_ENABLED (entier)
UDM_PREFIXES_DISABLED (entier)
UDM_PREFIX_DISABLED (entier)
UDM_ISPELL_PREFIXES_DISABLED (entier)
UDM_ISPELL_PREFIX_DISABLED (entier)
UDM_ISPELL_TYPE_AFFIX (entier)
UDM_ISPELL_TYPE_SPELL (entier)
UDM_ISPELL_TYPE_DB (entier)
UDM_ISPELL_TYPE_SERVER (entier)
UDM_MATCH_WORD (entier)
UDM_MATCH_BEGIN (entier)
UDM_MATCH_SUBSTR (entier)
UDM_MATCH_END (entier)


Fonctions mnoGoSearch

Sommaire

  • udm_add_search_limit — Ajoute différentes limitations de recherche
  • udm_alloc_agent_array — Alloue une session mnoGoSearch
  • udm_alloc_agent — Alloue une session mnoGoSearch
  • udm_api_version — Lit la version de l'API mnoGoSearch
  • udm_cat_list — Liste toutes les catégories de même niveau
  • udm_cat_path — Lit le chemin de la catégorie courante
  • udm_check_charset — Vérifie si un jeu de caractères est supporté par mnogosearch
  • udm_clear_search_limits — Annule toutes les limitations de recherche MnoGoSearch
  • udm_crc32 — Retourne la somme de contrôle CRC32 d'une chaîne
  • udm_errno — Numéro d'erreur mnoGoSearch
  • udm_error — Message d'erreur mnoGoSearch
  • udm_find — Effectue une recherche
  • udm_free_agent — Détruit une session mnoGoSearch
  • udm_free_ispell_data — Libère la mémoire allouée pour ispell par MnoGoSearch
  • udm_free_res — Libère un résultat mnoGoSearch
  • udm_get_doc_count — Lit le nombre total de documents dans les bases MnoGoSearch
  • udm_get_res_field — Lit un champ de résultat
  • udm_get_res_param — Lit les paramètres de résultats mnoGoSearch
  • udm_hash32 — Retourne la somme de contrôle Hash32 d'une chaîne donnée
  • udm_load_ispell_data — Charge les données ispell
  • udm_set_agent_param — Modifie les paramètres de l'agent MnoGoSearch


Ajoute différentes limitations de recherche

  • « Fonctions mnoGoSearch
  • udm_alloc_agent_array »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Ajoute différentes limitations de recherche

udm_add_search_limit

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_add_search_limit — Ajoute différentes limitations de recherche

Description

bool udm_add_search_limit ( resource $agent , int $var , string $val )

udm_add_search_limit() ajoute différentes limitations de recherche.

Liste de paramètres

agent

Un identifiant d'Agent, obtenu après un appel à udm_alloc_agent().

var

Nom du paramètre de limitation. Les valeurs possibles pour var sont :

  • UDM_LIMIT_URL : définit les limitations sur les URL, pour limiter les recherches à une partie de la base. Ce paramètre supporte les jokers SQL "%" et "_" : "%" remplace n'importe quel nombre de caractères, même zéro caractères, et "_" remplace exactement un caractère. Par exemple, http://www.example.___/catalog peut remplacer http://www.example.com/catalog ou http://www.example.net/catalog.
  • UDM_LIMIT_TAG : définit les limitations par étiquettes. Lors de l'indexation, vous pouvez assigner des étiquettes sur différentes parties d'un site. Les étiquettes de mnoGoSearch 3.1.x sont des lignes, qui peuvent contenir les jokers "%" et "_" : "%" remplace n'importe quel nombre de caractères, même zéro caractères, et "_" remplace exactement un caractère. Par exemple, si vous avez les étiquettes ABCD et ABCE, la limitation de recherche ABC_ limitera la recherche à ces deux étiquettes.
  • UDM_LIMIT_LANG : définit les limitations par langue.
  • UDM_LIMIT_CAT : définit les limitations par catégorie. Les catégories sont similaires aux étiquettes, mais elles peuvent être imbriquées. Vous pouvez donc placer des catégories dans d'autres catégories. Vous devez utiliser deux caractères pour chaque niveau. Vous pouvez utiliser des nombres hexadécimaux allant de 0 à F ou bien sûr une base de 36, allant de 0 à Z. Par exemple la catégorie supérieure "Auto" vaut 01. Si elle a une sous catégorie "Renault", cette dernière sera repérée par 01 (catégorie mère) suivie de 01 (dans sa catégorie), ce qui donne "0101". Si "Auto" a une autre sous-catégorie "Peugeot", cette dernière aura le numéro 02, et sera identifiée par 0102. Si "Peugeot" a elle-même une autre sous-catégorie, "Moteur", elle sera numéroté 01, et identifiée uniquement par 010201. Si vous voulez restreindre les recherches à cette catégorie uniquement, passez cat=010201.

  • UDM_LIMIT_DATE : définit les limitations par date de modification du document.

    Format de la valeur : une chaîne de caractères, dont le premier caractère est < ou >, puis une date au format unixtimestamp. Par exemple :

    <?php
    udm_add_search_limit    ($udm, UDM_LIMIT_DATE, "&lt;908012006");
    ?>

    Si > est utilisé, la recherche sera limitée aux documents dont la date de modification est plus grande que celle qui a été entrée. Avec <, c'est le contraire.

val

Définit la valeur du paramètre courant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Alloue une session mnoGoSearch

  • « udm_add_search_limit
  • udm_alloc_agent »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Alloue une session mnoGoSearch

udm_alloc_agent_array

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_alloc_agent_array — Alloue une session mnoGoSearch

Description

resource udm_alloc_agent_array ( array $databases )

udm_alloc_agent_array() sert à créer un agent avec des connexions à de multiples bases de données.

Liste de paramètres

databases

Le paramètre databases est un tableau qui contient une URL par élément, de manière analogue au premier paramètre de udm_alloc_agent().

Valeurs de retour

Retourne une ressource représentant un identifiant en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • udm_alloc_agent() - Alloue une session mnoGoSearch


Alloue une session mnoGoSearch

  • « udm_alloc_agent_array
  • udm_api_version »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Alloue une session mnoGoSearch

udm_alloc_agent

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_alloc_agent — Alloue une session mnoGoSearch

Description

resource udm_alloc_agent ( string $dbaddr [, string $dbmode ] )

Alloue une session mnoGoSearch.

Liste de paramètres

dbaddr

dbaddr - est une description de base de données formatée comme une URL. Les options (type, hôte, nom de base de données, port, utilisateur ou mot de passe) servent à se connecter à la base de données SQL. Ne passez aucune valeur si vous souhaitez utiliser le support des fichiers texte intégré. Sinon, utilisez le format : DBAddr DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/. Actuellement, les valeurs de DBType possibles sont : mysql, pgsql, msql, solid, mssql, oracle, ibase. En fait, si vous avez ajouté un support natif, cette option est inutile. Mais les utilisateurs ODBC doivent spécifier une des valeurs supportées. Si votre type de base de données n'est pas supporté, utilisez le terme unknown.

dbmode

dbmode - Vous pouvez sélectionner le mode de stockage des mots dans la base de données. Si vous indiquez "single", tous les mots seront stockés dans la même table. Si vous indiquez multi, ils seront situés dans différentes tables, suivant leur taille. Le mode multi est généralement plus rapide, mais requiert plus de tables. Si le mode crc est sélectionné, mnoGoSearch enregistrera un entier de 32 bits, calculé avec l'algorithme CRC32, plutôt que des mots. Ce mode requiert moins d'espace disque, et il est beaucoup plus rapide que les modes single et multi. crc-multi utilise la même technique de stockage que le mode crc, mais il stocke aussi les mots dans différentes tables suivant leur taille. Format: DBMode single/multi/crc/crc-multi.

Note:

dbaddr et dbmode doivent correspondre à ceux utilisés durant l'indexation.

Valeurs de retour

Retourne un agent mnogosearch en cas de succès, FALSE en cas d'erreur. Cette fonction crée une session avec les paramètres de base de données.

Notes

Note:

En réalité, udm_alloc_agent() n'ouvre pas de connexion, et donc, ne vérifie ni le nom d'utilisateur, ni le mot de passe. La connexion à une base de données et les vérifications des login / mot de passe sont réalisées à l'appel de la fonction udm_find().


Lit la version de l'API mnoGoSearch

  • « udm_alloc_agent
  • udm_cat_list »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Lit la version de l'API mnoGoSearch

udm_api_version

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_api_version — Lit la version de l'API mnoGoSearch

Description

int udm_api_version ( void )

Lit la version de l'API mnoGoSearch.

udm_api_version() permet aux utilisateurs d'identifier quelles sont les API disponibles. Par exemple, udm_get_doc_count() n'est disponible qu'à partir de mnoGoSearch 3.1.11.

Valeurs de retour

udm_api_version() retourne le numéro de version de l'API mnoGoSearch. Par exemple, si mnoGosearch 3.1.10 est utilisé, udm_api_version() retournera 30110.

Exemples

Exemple #1 Exemple avec udm_api_version()

<?php
if (udm_api_version() >= 30111) {
    echo  "Nombre total d'URL dans la base : " . udm_get_doc_count($udm) . "<br />\n";
}
?>


Liste toutes les catégories de même niveau

  • « udm_api_version
  • udm_cat_path »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Liste toutes les catégories de même niveau

udm_cat_list

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_cat_list — Liste toutes les catégories de même niveau

Description

array udm_cat_list ( resource $agent , string $category )

Liste toutes les catégories de même niveau.

Cette fonction est pratique pour réaliser des arbres à partir des catégories.

Liste de paramètres

agent

Un lien vers l'agent, reçu après un appel à la fonction udm_alloc_agent().

category

Valeurs de retour

Retourne un tableau contenant la liste de toutes les catégories de même niveau que la catégorie category courante.

Le tableau est constitué de paires. Les index pairs contiennent les chemins de catégories, les index impairs les noms des catégories correspondantes.

$array[0] contiendra '020300'
  $array[1] contiendra 'Audi'
  $array[2] contiendra '020301'
  $array[3] contiendra 'BMW'
  $array[4] contiendra '020302'
  $array[5] contiendra 'Opel'
  ...
 etc.

Exemples

Voici un exemple de rendu des liens du niveau courant :

Audi
  BMW
  Opel
  ...

Exemple #1 Exemple avec udm_cat_list()

<?php
 $cat_list_arr = udm_cat_list($udm_agent, $cat);
 $cat_list = '';
 for ($i=0; $i<count($cat_list_arr); $i+=2) {
    $path = $cat_list_arr[$i];
    $name = $cat_list_arr[$i+1];
    $cat_list .= "<a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a><br />";
 }
?>

Voir aussi

  • udm_cat_path() - Lit le chemin de la catégorie courante


Lit le chemin de la catégorie courante

  • « udm_cat_list
  • udm_check_charset »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Lit le chemin de la catégorie courante

udm_cat_path

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_cat_path — Lit le chemin de la catégorie courante

Description

array udm_cat_path ( resource $agent , string $category )

Retourne un tableau listant les catégories depuis la racine jusqu'à la catégorie courante.

Liste de paramètres

agent

Un lien vers l'agent, reçu après un appel à la fonction udm_alloc_agent().

category

Valeurs de retour

Le tableau est constitué de paires. Les index pairs contiennent les chemins de catégories, les index impairs les noms des catégories correspondantes.

Par exemple, l'appel $array=udm_cat_path($agent, '02031D'); peut retourner le tableau suivant :

 $array[0] contiendra ''
 $array[1] contiendra 'Root'
 $array[2] contiendra '02'
 $array[3] contiendra 'Sport'
 $array[4] contiendra '0203'
 $array[5] contiendra 'Auto'
 $array[4] contiendra '02031D'
 $array[5] contiendra 'Ferrari'

Exemples

Exemple #1 Spécifier une catégorie avec un format hiérarchisé : '> Root > Sport > Auto > Ferrari'

<?php
  $cat_path_arr = udm_cat_path($udm_agent, $cat);
  $cat_path = '';
  for ($i=0; $i<count($cat_path_arr); $i+=2) {
    $path = $cat_path_arr[$i];
    $name = $cat_path_arr[$i+1];
    $cat_path .= " > <a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a> ";
  }
?>

Voir aussi

  • udm_cat_list() - Liste toutes les catégories de même niveau


Vérifie si un jeu de caractères est supporté par mnogosearch

  • « udm_cat_path
  • udm_clear_search_limits »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Vérifie si un jeu de caractères est supporté par mnogosearch

udm_check_charset

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_check_charset — Vérifie si un jeu de caractères est supporté par mnogosearch

Description

bool udm_check_charset ( resource $agent , string $charset )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Annule toutes les limitations de recherche MnoGoSearch

  • « udm_check_charset
  • udm_crc32 »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Annule toutes les limitations de recherche MnoGoSearch

udm_clear_search_limits

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_clear_search_limits — Annule toutes les limitations de recherche MnoGoSearch

Description

bool udm_clear_search_limits ( resource $agent )

udm_clear_search_limits() annule toutes les limitations de recherche imposées.

Liste de paramètres

agent

Un lien vers l'agent, reçu après l'appel à la fonction udm_alloc_agent().

Valeurs de retour

Retourne TRUE.

Voir aussi

  • udm_add_search_limit() - Ajoute différentes limitations de recherche


Retourne la somme de contrôle CRC32 d'une chaîne

  • « udm_clear_search_limits
  • udm_errno »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Retourne la somme de contrôle CRC32 d'une chaîne

udm_crc32

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_crc32 — Retourne la somme de contrôle CRC32 d'une chaîne

Description

int udm_crc32 ( resource $agent , string $str )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Numéro d'erreur mnoGoSearch

  • « udm_crc32
  • udm_error »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Numéro d'erreur mnoGoSearch

udm_errno

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_errno — Numéro d'erreur mnoGoSearch

Description

int udm_errno ( resource $agent )

Récupère le numéro d'erreur mnoGoSearch.

Liste de paramètres

agent

Un lien vers l'agent, reçu après un appel à la fonction udm_alloc_agent().

Valeurs de retour

Retourne le numéro d'erreur mnoGoSearch, ou bien 0 s'il n'y en a aucune.


Message d'erreur mnoGoSearch

  • « udm_errno
  • udm_find »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Message d'erreur mnoGoSearch

udm_error

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_error — Message d'erreur mnoGoSearch

Description

string udm_error ( resource $agent )

Récupère le message d'erreur mnoGoSearch.

Liste de paramètres

agent

Un lien vers l'agent, reçu après un appel à la fonction udm_alloc_agent().

Valeurs de retour

udm_errno() retourne le message d'erreur mnoGoSearch, ou une chaîne vide s'il n'y en a pas.


Effectue une recherche

  • « udm_error
  • udm_free_agent »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Effectue une recherche

udm_find

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_find — Effectue une recherche

Description

resource udm_find ( resource $agent , string $query )

Effectue une recherche.

La recherche en elle-même. Le premier argument agent est la session, le second est la requête (query). Pour rechercher, entrez les mots avec lesquels vous voulez faire une recherche, puis cliquez sur le bouton d'envoi. Par exemple, "mysql odbc". Vous ne devez pas utiliser de guillemets doubles ", car ils sont utilisés par mnoGoSearch pour séparer une requête en mots. Avec l'exemple ci-dessus, mnoGoSearch va rechercher les pages contenant "mysql" et/ou "odbc". Les meilleures réponses seront classées en premier, et affichées en tête de liste. Si vous sélectionnez le mode de recherche "tous" ("ALL"), la recherche va retourner les documents qui contiennent l'un ou l'autre des mots que vous avez entré. Dans le cas où vous utilisez le mode "ANY", la recherche retourne la liste des documents qui contiennent l'un ou l'autre des mots. Si vous voulez accéder aux fonctions avancées de recherche, vous pouvez utiliser le mode "BOOL", qui vous permet d'entrer directement des requêtes.

Liste de paramètres

agent

Un lien vers l'agent, reçu après un appel à la fonction udm_alloc_agent().

query

mnoGoSearch utilise les opérateurs booléens suivants :

& - AND, ET logique. Par exemple, "mysql & odbc". mnoGoSearch recherche toutes les URL qui contiennent à la fois les mots "mysql" et "odbc".

| - OR, OU logique. Par exemple, "mysql | odbc". mnoGoSearch recherche toutes les URL qui contiennent soit "mysql", soit "odbc".

~ - NOT, NON logique. Par exemple, "mysql & ~odbc". mnoGoSearch recherche toutes les URL qui contiennent le mot "mysql" mais ne contiennent pas le mot "odbc". Attention : la requête "~odbc" ne trouvera rien !

() - Groupement de commandes pour les requêtes complexes : par exemple, "(mysql | msql) & ~postgres". Le mode par requête est simple et puissant à la fois. Vous pouvez utiliser les commandes booléennes habituelles avec ce mode.

Valeurs de retour

Retourne un identifiant de résultat en cas de succès ou FALSE si une erreur survient.


Détruit une session mnoGoSearch

  • « udm_find
  • udm_free_ispell_data »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Détruit une session mnoGoSearch

udm_free_agent

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_free_agent — Détruit une session mnoGoSearch

Description

int udm_free_agent ( resource $agent )

Détruit l'agent de recherche créé par udm_alloc_agent().

Liste de paramètres

agent

Un lien vers un agent, reçu après l'appel à la fonction udm_alloc_agent().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Libère la mémoire allouée pour ispell par MnoGoSearch

  • « udm_free_agent
  • udm_free_res »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Libère la mémoire allouée pour ispell par MnoGoSearch

udm_free_ispell_data

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_free_ispell_data — Libère la mémoire allouée pour ispell par MnoGoSearch

Description

bool udm_free_ispell_data ( int $agent )

Libère la mémoire allouée pour ispell par MnoGoSearch.

Liste de paramètres

agent

Un lien vers l'agent, reçu après l'appel à la fonction udm_alloc_agent().

Valeurs de retour

udm_free_ispell_data() retourne toujours TRUE.

Notes

Note:

udm_free_ispell_data() est supportée à partir de la version 3.1.12 de mnoGoSearch et elle ne fait strictement rien avec les versions précédentes.


Libère un résultat mnoGoSearch

  • « udm_free_ispell_data
  • udm_get_doc_count »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Libère un résultat mnoGoSearch

udm_free_res

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_free_res — Libère un résultat mnoGoSearch

Description

bool udm_free_res ( resource $res )

Libère un résultat mnoGoSearch.

Liste de paramètres

res

Un lien vers un identifiant de résultat, reçu après l'appel à la fonction udm_find().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Lit le nombre total de documents dans les bases MnoGoSearch

  • « udm_free_res
  • udm_get_res_field »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Lit le nombre total de documents dans les bases MnoGoSearch

udm_get_doc_count

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_get_doc_count — Lit le nombre total de documents dans les bases MnoGoSearch

Description

int udm_get_doc_count ( resource $agent )

udm_get_doc_count() retourne le nombre de documents dans les bases de données.

Liste de paramètres

agent

Un lien vers l'agent, reçu après l'appel à la fonction udm_alloc_agent().

Valeurs de retour

Retourne le nombre de documents.

Notes

Note:

udm_get_doc_count() est supportée à partir de la version mnoGoSearch 3.1.11 ou plus récent.


Lit un champ de résultat

  • « udm_get_doc_count
  • udm_get_res_param »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Lit un champ de résultat

udm_get_res_field

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_get_res_field — Lit un champ de résultat

Description

string udm_get_res_field ( resource $res , int $row , int $field )

Lit un champ de résultat mnoGoSearch.

Liste de paramètres

res

res - un identifiant de résultat, obtenu après un appel à udm-find.

row

row - le numéro du lien dans la page courante. Il peut valoir de 0 jusqu'à UDM_PARAM_NUM_ROWS-1.

field

field - l'identifiant de champ, et peut prendre l'une des valeurs suivantes :

  • UDM_FIELD_URL : champ URL
  • UDM_FIELD_CONTENT : champ Content-type (par exemple, text/html).
  • UDM_FIELD_CATEGORY - Champ catégorie du document. Utilisez udm_cat_path() pour récupérer le chemin complet de la catégorie courante depuis le dossier racine. (Ce paramètre est valable uniquement depuis la version 4.0.6 de PHP et suivantes)
  • UDM_FIELD_TITLE : titre du document.
  • UDM_FIELD_KEYWORDS : mots-clés du document (balise META KEYWORDS).
  • UDM_FIELD_DESC : description du document (balise META DESCRIPTION).
  • UDM_FIELD_TEXT : corps du document (balise body, les premières lignes pour donner une idée du document).
  • UDM_FIELD_SIZE : taille du document.
  • UDM_FIELD_URLID : identifiant unique de l'URL.
  • UDM_FIELD_RATING : score de la page (calculé par mnoGoSearch).
  • UDM_FIELD_MODIFIED : date de modification au format unixtimestamp.
  • UDM_FIELD_ORDER : le nombre de documents trouvés.
  • UDM_FIELD_CRC : la valeur CRC du document.

Valeurs de retour

Retourne la valeur du champ field dans la ligne row, du résultat res, et FALSE si une erreur survient.


Lit les paramètres de résultats mnoGoSearch

  • « udm_get_res_field
  • udm_hash32 »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Lit les paramètres de résultats mnoGoSearch

udm_get_res_param

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_get_res_param — Lit les paramètres de résultats mnoGoSearch

Description

string udm_get_res_param ( resource $res , int $param )

Lit les paramètres de résultats mnoGoSearch.

Liste de paramètres

res

res - identifiant de résultat, obtenu après un appel à udm_find().

param

param - peut prendre les valeurs suivantes :

  • UDM_PARAM_NUM_ROWS - Nombre de liens trouvés dans le groupe de résultat courant. C'est la valeur de UDM_PARAM_PAGE_SIZE pour tous les groupes, sauf le dernier.
  • UDM_PARAM_FOUND - Nombre total de résultats trouvés.
  • UDM_PARAM_WORDINFO - Informations sur les mots trouvés, c'est-à-dire que la recherche "un bon livre" retournera "un: stopword, bon:5637, livre: 120"
  • UDM_PARAM_SEARCHTIME - Temps de recherche en secondes
  • UDM_PARAM_FIRST_DOC - Le numéro du premier document affiché dans le groupe.
  • UDM_PARAM_LAST_DOC - Le numéro du dernier document affiché dans le groupe.

Valeurs de retour

udm_get_res_param() retourne les paramètres de résultats en cas de succès, FALSE en cas d'erreur.


Retourne la somme de contrôle Hash32 d'une chaîne donnée

  • « udm_get_res_param
  • udm_load_ispell_data »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Retourne la somme de contrôle Hash32 d'une chaîne donnée

udm_hash32

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_hash32 — Retourne la somme de contrôle Hash32 d'une chaîne donnée

Description

int udm_hash32 ( resource $agent , string $str )

udm_hash32() prend la chaîne str et retourne un nombre presque unique sur 32 octets.

Liste de paramètres

agent

Un lien vers un agent, reçu après l'appel à la fonction udm_alloc_agent().

str

La chaîne d'entrée.

Valeurs de retour

Retourne la somme de contrôle, sur 32 octets.

Voir aussi

  • udm_alloc_agent() - Alloue une session mnoGoSearch


Charge les données ispell

  • « udm_hash32
  • udm_set_agent_param »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Charge les données ispell

udm_load_ispell_data

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_load_ispell_data — Charge les données ispell

Description

bool udm_load_ispell_data ( resource $agent , int $var , string $val1 , string $val2 , int $flag )

udm_load_ispell_data() charge des données ispell.

Après avoir utilisé cette fonction, pensez à libérer les données de la mémoire avec udm_free_ispell_data(), même si vous utilisez le mode UDM_ISPELL_TYPE_SERVER.

Liste de paramètres

agent

Un lien vers l'agent, reçu après l'appel à la fonction udm_alloc_agent().

var

Paramètre indiquant la source des données ispell. Peut prendre une des valeurs suivantes :

  • UDM_ISPELL_TYPE_DB indique que les données ispell doivent être chargées depuis la base SQL. Dans ce cas, les paramètres val1 et val2 sont ignorés et doivent être laissés vides. flag doit être égal à 1.

    Note:

    flag indique qu'après le chargement des données ispell à partir de la source, elles doivent être triées (c'est nécessaire au bon fonctionnement d'ispell). Dans le cas où vous chargez les données depuis un fichier, il peut y avoir plusieurs appels à udm_load_ispell_data(), et il ne vaut pas la peine de trier les valeurs après chaque appel, mais uniquement à la fin. Étant donné qu'en mode DB, toutes les données sont chargées en une seule fois, ce paramètre doit avoir la valeur de 1. Dans ce mode, en cas d'erreur, par exemple si la table ispell est absente, la fonction retournera FALSE et le code d'erreur, avec son message, seront accessibles avec udm_error() et udm_errno().

  • UDM_ISPELL_TYPE_AFFIX indique que les données ispell doivent être chargées depuis un fichier et initie le chargement. Dans ce cas, val1 définit le code de langue en deux lettres, et val2 est le chemin jusqu'aux fichiers. Notez que si vous utilisez un chemin relatif, le module recherche les fichiers non pas dans UDM_CONF_DIR, mais directement avec le chemin courant, où le script est exécuté. En cas d'erreur avec ce mode, si le fichier est absent, la fonction retourne FALSE, et un message d'erreur sera affiché. Les messages d'erreur ne sont pas accessibles avec udm_error() et udm_errno(), puisque ces fonctions ne traitent que les messages SQL. Reportez-vous à la description du paramètre flag pour la constante UDM_ISPELL_TYPE_DB.

    Exemple #1 Exemple avec udm_load_ispell_data()

    <?php
    if ((! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'en', '/opt/ispell/en.aff', 0)) ||
        (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'ru', '/opt/ispell/ru.aff', 0)) ||
        (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'en', '/opt/ispell/en.dict', 0)) ||
        (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'ru', '/opt/ispell/ru.dict', 1))) {
        exit;
    }
    ?>

    Note:

    flag prend la valeur 1 si c'est le dernier appel à cette fonction.

  • UDM_ISPELL_TYPE_SPELL indique que les données ispell doivent être chargées depuis un fichier, et initie le chargement du dictionnaire. Dans ce cas, val1 définit le code langue sur deux lettres, et val2 le chemin du fichier. Notez que si vous utilisez un chemin relatif, le module recherche les fichiers non pas dans UDM_CONF_DIR, mais directement avec le chemin courant, où le script est exécuté. En cas d'erreur avec ce mode, si le fichier est absent, la fonction retourne FALSE, et un message d'erreur sera affiché. Les messages d'erreur ne sont pas accessibles avec udm_error() et udm_errno(), puisque ces fonctions ne traitent que les messages SQL. Reportez-vous à la description du paramètre flag dans UDM_ISPELL_TYPE_DB.

    <?php
    if ((! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'en', '/opt/ispell/en.aff', 0)) ||
       (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'ru', '/opt/ispell/ru.aff', 0)) ||
       (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'en', '/opt/ispell/en.dict', 0)) ||
       (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'ru', '/opt/ispell/ru.dict', 1))) {
     exit;
     }
    ?>

    Note:

    flag prend la valeur 1 si c'est le dernier appel à cette fonction.

  • UDM_ISPELL_TYPE_SERVER active le support des serveurs ispell. val1 indique alors l'adresse de l'hôte qui supporte le serveur ispall. val2 n'est pas encore utilisé, mais dans les cas futurs, il indiquera le numéro de port utilisé par le serveur ispell. flag n'est pas utile, car les données sont déjà triées.

    Les serveurs Spelld lisent les données d'orthographe dans une configuration séparée (par défaut /usr/local/mnogosearch/etc/spelld.conf), les trie et les stocke en mémoire. Avec les clients, le serveur communique de deux façons : vers les indexeurs, tout le contenu de la mémoire est transféré pour que l'indexeur travaille plus vite ; vers le moteur de recherche, il reçoit les mots à normaliser et les rend au client corrigés. Cela permet une plus grande rapidité d'exécution, en comparaison des modes db et text (notamment, les tris et les chargements sont beaucoup plus rapides).

    udm_load_ispell_data() en mode UDM_ISPELL_TYPE_SERVER ne charge pas vraiment les données ispell, mais définit simplement l'adresse du serveur. En fait, le serveur sera automatiquement utilisé par udm_find() lors des recherches. En cas d'erreur, (par exemple si le serveur ispell ne fonctionne pas ou que l'hôte indiqué est invalide), la conversion sera annulée, mais aucun message d'erreur ne sera affiché.

    Note:

    Cette fonction est disponible à partir de mnoGoSearch 3.1.12.

    Exemple :
    <?php
    if (!udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SERVER, '', '', 1)) {
        echo     "Erreur au chargement de la bibliothèque ispell sur le serveur<br />\n";
        exit;
    }
    ?>

Le mode le plus rapide est UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT est plus lent, et UDM_ISPELL_TYPE_DB est le plus lent. Ce classement est vrai pour mnoGoSearch 3.1.10 - 3.1.11. Il est prévu d'accélérer le mode DB dans les versions futures, et cela sera plus rapide que le mode TEXT.

val1

val2

flag

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #2 Exemple avec udm_load_ispell_data()

<?php
if (! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_DB, '', '', 1)) {
  printf("Erreur #%d: '%s'\n", udm_errno($udm), udm_error($udm));
  exit;
}
?>


Modifie les paramètres de l'agent MnoGoSearch

  • « udm_load_ispell_data
  • Solr »
  • PHP Manual
  • Fonctions mnoGoSearch
  • Modifie les paramètres de l'agent MnoGoSearch

udm_set_agent_param

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_set_agent_param — Modifie les paramètres de l'agent MnoGoSearch

Description

bool udm_set_agent_param ( resource $agent , int $var , string $val )

Modifie les paramètres de l'agent MnoGoSearch.

Liste de paramètres

agent

Un lien vers l'agent, reçu après un appel à la fonction udm_alloc_agent().

var

Les paramètres suivants et leurs valeurs sont disponibles :

  • UDM_PARAM_PAGE_NUM - Utilisé pour choisir le numéro de groupe de résultat (les résultats sont retournés par groupe, commençant à 0, avec UDM_PARAM_PAGE_SIZE résultats par page).
  • UDM_PARAM_PAGE_SIZE - Nombre de résultats affichés par page.
  • UDM_PARAM_SEARCH_MODE - Mode de recherche. Les valeurs suivantes sont disponibles : UDM_MODE_ALL - recherche tous les mots ; UDM_MODE_ANY - recherche l'un des mots ; UDM_MODE_PHRASE - recherche une phrase; UDM_MODE_BOOL - recherche booléenne. Voir udm_find() pour plus de détails sur les recherches booléennes.
  • UDM_PARAM_CACHE_MODE - Active/désactive le cache. Lorsque le cache est activé, le moteur de recherche va stocker les résultats sur le disque. Lorsque deux requêtes seront similaires, il pourra retourner les résultats plus rapidement, sans recherche. Valeurs disponibles : UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.
  • UDM_PARAM_TRACK_MODE - Active le mode de suivi de requête. Depuis la version 3.1.2, mnoGoSearch dispose d'un suivi de requête. Notez que ce suivi n'est implémenté qu'avec les versions SQL et n'est pas disponible avec les bases de données intégrées. Pour utiliser ce suivi, vous devez créer des tables de suivi. Pour mysql, utilisez le script create/mysql/track.txt. Lorsque vous effectuez une recherche avec l'interface, ces tables stockeront les mots recherchés ainsi que le nombre de mots trouvés, et la date. Valeurs disponibles : UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.
  • UDM_PARAM_PHRASE_MODE - indique si les index des bases de données utilisent des phrases (paramètre "phrase" dans indexer.conf). Valeurs disponibles : UDM_PHRASE_ENABLED et UDM_PHRASE_DISABLED. Notez bien que si la recherche par phrase est activée (UDM_PHRASE_ENABLED), il est toujours possible de faire des recherches dans d'autres modes, (ANY, ALL, BOOL ou PHRASE). En version 3.1.10 de mnoGoSearch, la recherche par phrase n'est supportée que pour les modes SQL et intégré, tandis qu'en 3.1.11, la recherche par phrase est supportée par le mode cache. Exemple de recherche par phrase : "Arizona desert" : cette requête retourne tous les documents qui contiennent les mots "Arizona desert" comme une phrase. Notez que vous devez mettre des guillemets doubles autour des phrases.
  • UDM_PARAM_CHARSET - Définit le jeu de caractères local. Valeurs disponibles : tous les jeux supportés par mnoGoSearch. koi8-r, cp1251, ...
  • UDM_PARAM_STOPFILE - Définit le nom et le chemin du fichier de mots ignorés. Il y a une petite différence avec mnoGoSearch : avec mnoGoSearch, si le chemin est NULL ou relatif, il est utilisé à partir de UDM_CONF_DIR, alors qu'en PHP, le module va rechercher à partir du chemin courant, c'est-à-dire celui du script courant.
  • UDM_PARAM_STOPTABLE - Charge la liste des mots ignorés depuis une table SQL. Vous pouvez utiliser plusieurs tables SQL. Cette commande n'a aucun effet si mnoGoSearch n'a pas été compilé avec le support de base de données.
  • UDM_PARAM_WEIGHT_FACTOR - Représente le poids relatif des différentes parties d'un document. Actuellement, le corps, titre, mots-clés, descriptions et url sont supportés. Pour activer cette fonctionnalité, utilisez le degré 2 des commandes *Weight, dans le fichier indexer.conf. Imaginons que vous avez choisi les poids suivants :
          URLWeight     1
      BodyWeight    2
      TitleWeight   4
      KeywordWeight 8
      DescWeight    16
    Comme l'indexeur utilise l'opérateur de bits OR pour mesurer le poids des mots, il est possible que le même mot soit trouvé plusieurs fois dans le même document lors des recherches. Un mot qui n'apparaît qu'une fois dans le corps sera défini par 00000010 (notation binaire). Un mot qui apparaîtra dans plusieurs parties pourra avoir la notation 00011111. La valeur de ce paramètre est une chaîne de chiffres hexadécimaux, sous la forme ABCDE. Chaque chiffre est un facteur correspondant à un poids affecté à une partie du document. Pour la situation décrite ci-dessus :
       E est le facteur de poids 1  (URL Weight bit)
   D est le facteur de poids 2  (BodyWeight bit)
   C est le facteur de poids 4  (TitleWeight bit)
   B est le facteur de poids 8  (KeywordWeight bit)
   A est le facteur de poids 16 (DescWeight bit)
    Exemples : UDM_PARAM_WEIGHT_FACTOR=00001 ne recherche que dans les URL. UDM_PARAM_WEIGHT_FACTOR=00100 ne recherche que dans les Titres. UDM_PARAM_WEIGHT_FACTOR=11100 recherche dans les Titres, Mots-clés, Description mais pas dans le Corps ou les URL. UDM_PARAM_WEIGHT_FACTOR=F9421 recherche dans :
        Description avec un poids de 15  (F hex)
    Mots-clés avec un poids de 9
    Titre avec un poids de  4
    Corps avec un poids de 2
    URL avec un poids de 1
    Si UDM_PARAM_WEIGHT_FACTOR est omis, la valeur par défaut est utilisée.
  • UDM_PARAM_WORD_MATCH - Recherche des mots. Vous pouvez utiliser ce paramètre pour choisir le type de recherche de mots. Cette fonctionnalité n'est valable qu'en mode "single" et "multi", avec les bases SQL ou intégrée. Elle ne fonctionne pas en mode intégré, ni avec d'autres modes, car les CRC ne supportent pas les recherches de sous-chaînes. Les valeurs disponibles sont : UDM_MATCH_BEGIN - début de mot; UDM_MATCH_END - fin de mot; UDM_MATCH_WORD - tout le mot; UDM_MATCH_SUBSTR - une sous-partie de mot.
  • UDM_PARAM_MIN_WORD_LEN - définit les tailles extrêmes de mots. Tout mot plus court que la limite inférieure est ignoré. Notez que ce paramètre est inclusif, c'est-à-dire que si UDM_PARAM_MIN_WORD_LEN=3, un mot de 3 caractères ne sera pas ignoré, alors qu'un mot de 2 caractères le sera. Par défaut, la valeur est de 1.
  • UDM_PARAM_ISPELL_PREFIXES - Valeurs possibles : UDM_PREFIXES_ENABLED et UDM_PREFIXES_DISABLED. Ces valeurs activent et désactivent le support des préfixes. Par exemple, si le mot "testé" est placé dans la requête de recherche, les mots tels "test", "tester", etc. seront aussi recherchés. Les suffixes sont supportés par défaut. Les préfixes modifient généralement le sens des mots. Par exemple, si vous cherchez "testé", vous ne souhaitez pas trouver "protesté" ou "contesté". Le support des préfixes peut cependant être utilisé pour des raisons d'orthographe. Pour activer ispell, vous devez charger les données ispell avec la fonction udm_load_ispell_data().
  • UDM_PARAM_CROSS_WORDS - Active ou désactive le support "CROSS_WORDS". Valeurs possibles : UDM_CROSS_WORDS_ENABLED et UDM_CROSS_WORDS_DISABLED. La fonctionnalité "CROSS_WORDS" vous permet d'effectuer des recherches dans les balises (entre <a href="xxx"> </a>), pour utiliser le nom du lien. Ce mode fonctionne avec les bases de données SQL et n'est pas supporté par les modes intégrés ou le cache.
  • UDM_PARAM_VARDIR - spécifie un chemin précis sur le disque où l'indexeur enregistre les données lorsqu'il utilise le cache et les bases de données internes. Par défaut, le dossier /var de l'installation de mnoGoSearch est utilisé.

val

Historique

Version | Description
4.1.0 | Ajout de la constante UDM_PARAM_VARDIR.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: CROSS_WORDS est supporté à partir de mnoGoSearch 3.1.11.


Apache Solr

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Solr
    • solr_get_version — Retourne la version courante de l'extension Solr utilisée par Apache
  • Exemples
  • SolrUtils — La classe SolrUtils
    • SolrUtils::digestXmlResponse — Analyse une réponse XML dans un SolrObject
    • SolrUtils::escapeQueryChars — Protège une requête
    • SolrUtils::getSolrVersion — Récupère la version courant de l'extension Solr
    • SolrUtils::queryPhrase — Prépare une phrase depuis une chaîne non protégée par Lucene
  • SolrInputDocument — La classe SolrInputDocument
    • SolrInputDocument::addChildDocument — Adds a child document for block indexing
    • SolrInputDocument::addChildDocuments — Adds an array of child documents
    • SolrInputDocument::addField — Ajoute un champ au document
    • SolrInputDocument::clear — Réinitialise le document d'entrée
    • SolrInputDocument::__clone — Crée une copie de l'objet SolrDocument
    • SolrInputDocument::__construct — Constructeur
    • SolrInputDocument::deleteField — Efface un champ d'un document
    • SolrInputDocument::__destruct — Destructeur
    • SolrInputDocument::fieldExists — Vérifie si un champ existe
    • SolrInputDocument::getBoost — Récupère la valeur courante du boost pour le document
    • SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)
    • SolrInputDocument::getChildDocumentsCount — Returns the number of child documents
    • SolrInputDocument::getField — Récupère un champ par son nom
    • SolrInputDocument::getFieldBoost — Récupère la valeur du boost pour un champ donné
    • SolrInputDocument::getFieldCount — Retourne le nombre de champs du document
    • SolrInputDocument::getFieldNames — Retourne un tableau contenant tous les champs du document
    • SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents
    • SolrInputDocument::merge — Fusionne un document d'entrée dans un autre
    • SolrInputDocument::reset — Alias de SolrInputDocument::clear
    • SolrInputDocument::setBoost — Définit la valeur de boost pour le document
    • SolrInputDocument::setFieldBoost — Définit la valeur de boost pour un champ
    • SolrInputDocument::sort — Tri les champs du document
    • SolrInputDocument::toArray — Retourne un représentation sous forme de tableau du document d'entrée
  • SolrDocument — La classe SolrDocument
    • SolrDocument::addField — Ajoute un champ au document
    • SolrDocument::clear — Efface tous les champs du document
    • SolrDocument::__clone — Crée une copie de l'objet SolrDocument
    • SolrDocument::__construct — Constructeur
    • SolrDocument::current — Récupère le champ courant
    • SolrDocument::deleteField — Efface un champ du document
    • SolrDocument::__destruct — Destructeur
    • SolrDocument::fieldExists — Vérifie si un champ existe dans le document
    • SolrDocument::__get — Accède à un champ comme une propriété
    • SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)
    • SolrDocument::getChildDocumentsCount — Returns the number of child documents
    • SolrDocument::getField — Récupère un champ par son nom
    • SolrDocument::getFieldCount — Récupère le nombre de champs du document
    • SolrDocument::getFieldNames — Récupère un tableau de noms de champs du document
    • SolrDocument::getInputDocument — Retourne un objet SolrInputDocument équivalent à l'objet
    • SolrDocument::hasChildDocuments — Checks whether the document has any child documents
    • SolrDocument::__isset — Vérifie si un champ existe
    • SolrDocument::key — Récupère la clé courante
    • SolrDocument::merge — Fusionne la source à l'objet SolrDocument courant
    • SolrDocument::next — Déplace le pointeur interne sur le champ suivant
    • SolrDocument::offsetExists — Vérifie si un champ particulier existe
    • SolrDocument::offsetGet — Récupère un champ
    • SolrDocument::offsetSet — Ajoute un champ au document
    • SolrDocument::offsetUnset — Efface un champ
    • SolrDocument::reset — Alias de SolrDocument::clear()
    • SolrDocument::rewind — Réinitialise le pointeur interne au début
    • SolrDocument::serialize — Utilisé pour une linéarisation personnalisée
    • SolrDocument::__set — Ajoute un champ au document
    • SolrDocument::sort — Trie les champs du document
    • SolrDocument::toArray — Récupère un tableau représentant le document
    • SolrDocument::unserialize — Linéarisation personnalisée d'objets SolrDocument
    • SolrDocument::__unset — Efface un champ du document
    • SolrDocument::valid — Vérifie si la position courant interne est toujours valide
  • SolrDocumentField — La classe SolrDocumentField
    • SolrDocumentField::__construct — Constructeur
    • SolrDocumentField::__destruct — Destructeur
  • SolrObject — La classe SolrObject
    • SolrObject::__construct — Crée un objet Solr
    • SolrObject::__destruct — Destructeur
    • SolrObject::getPropertyNames — Récupère un tableau contenant les noms de toutes les propriétés
    • SolrObject::offsetExists — Vérifie si une propriété existe
    • SolrObject::offsetGet — Récupère une propriété
    • SolrObject::offsetSet — Définit la valeur d'une propriété
    • SolrObject::offsetUnset — Supprime la valeur de la propriété
  • SolrClient — La classe SolrClient
    • SolrClient::addDocument — Ajoute un document à l'index
    • SolrClient::addDocuments — Ajoute une collection d'instances SolrInputDocument à l'index
    • SolrClient::commit — Commit tous les ajouts/modifications effectués sur l'index
    • SolrClient::__construct — Constructeur de l'objet SolrClient
    • SolrClient::deleteById — Effacement par Id
    • SolrClient::deleteByIds — Effacement par Ids
    • SolrClient::deleteByQueries — Efface tous les documents correspondant à des requêtes
    • SolrClient::deleteByQuery — Efface tous les documents correspondant à une requête
    • SolrClient::__destruct — Destructeur pour SolrClient
    • SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG).
    • SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).
    • SolrClient::getDebug — Récupère les données de débogage de la dernière tentative de connexion
    • SolrClient::getOptions — Récupère les options clientes définies en interne
    • SolrClient::optimize — Défragmente l'index
    • SolrClient::ping — Vérifie si le serveur Solr est disponible
    • SolrClient::query — Envoi une requête au serveur
    • SolrClient::request — Envoi une requête brute de mise à jour
    • SolrClient::rollback — Annule les ajouts/effacements effectués sur l'index depuis le dernier commit
    • SolrClient::setResponseWriter — Définit le gestionnaire à utiliser pour préparer la réponse depuis Solr
    • SolrClient::setServlet — Modifie le type d'un servlet en une nouvelle valeur
    • SolrClient::system — Retrieve Solr Server information
    • SolrClient::threads — Vérifie le statut des threads
  • SolrResponse — La classe SolrResponse
    • SolrResponse::getDigestedResponse — Récupère la réponse XML sous la forme de données PHP linéarisées
    • SolrResponse::getHttpStatus — Récupère le statut HTTP de la réponse
    • SolrResponse::getHttpStatusMessage — Récupère plus de détails sur le statut HTTP
    • SolrResponse::getRawRequest — Récupère la requête brute envpyée au serveur Solr
    • SolrResponse::getRawRequestHeaders — Récupère les en-têtes brutes de la requête envoyée au serveur Solr
    • SolrResponse::getRawResponse — Récupère la réponse brute du serveur
    • SolrResponse::getRawResponseHeaders — Récupère les en-têtes brutes de la réponse du serveur
    • SolrResponse::getRequestUrl — Récupère l'URL complète de la requête émise au serveur
    • SolrResponse::getResponse — Récupère l'objet SolrObject représentant la réponse XML du serveur
    • SolrResponse::setParseMode — Définit le mode d'analyse
    • SolrResponse::success — Vérifie si la requête au serveur a réussi
  • SolrQueryResponse — La classe SolrQueryResponse
    • SolrQueryResponse::__construct — Constructeur
    • SolrQueryResponse::__destruct — Destructeur
  • SolrUpdateResponse — La classe SolrUpdateResponse
    • SolrUpdateResponse::__construct — Constructeur
    • SolrUpdateResponse::__destruct — Destructeur
  • SolrPingResponse — La classe SolrPingResponse
    • SolrPingResponse::__construct — Constructeur
    • SolrPingResponse::__destruct — Destructeur
    • SolrPingResponse::getResponse — Récupère la réponse du serveur
  • SolrGenericResponse — La classe SolrGenericResponse
    • SolrGenericResponse::__construct — Constructeur
    • SolrGenericResponse::__destruct — Destructeur
  • SolrParams — La classe SolrParams
    • SolrParams::add — Alias de SolrParams::addParam
    • SolrParams::addParam — Ajoute un paramètre à l'objet
    • SolrParams::get — Alias de SolrParams::getParam
    • SolrParams::getParam — Retourne la valeur d'un paramètre
    • SolrParams::getParams — Retourne un tableau de paramètres non encodés URL
    • SolrParams::getPreparedParams — Retourne un tableau de paramètres encodés URL
    • SolrParams::serialize — Utilisé pour une linéarisation personnalisée
    • SolrParams::set — Alias de SolrParams::setParam
    • SolrParams::setParam — Définit un paramètre à une valeur spécifique
    • SolrParams::toString — Retourne tous les paramètres de l'objet
    • SolrParams::unserialize — Utilisé pour la linéarisation personnalisée
  • SolrModifiableParams — La classe SolrModifiableParams
    • SolrModifiableParams::__construct — Constructeur
    • SolrModifiableParams::__destruct — Destructeur
  • SolrQuery — La classe SolrQuery
    • SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group.
    • SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter).
    • SolrQuery::addFacetDateField — Lie un facet.date
    • SolrQuery::addFacetDateOther — Ajoute une autre paramètre facet.date.other
    • SolrQuery::addFacetField — Ajoute un autre champ à la facette
    • SolrQuery::addFacetQuery — Ajoute une requête de facette
    • SolrQuery::addField — Spécifie quel champ doit retourner le résultat
    • SolrQuery::addFilterQuery — Spécifie un filtre de requête
    • SolrQuery::addGroupField — Add a field to be used to group results.
    • SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter).
    • SolrQuery::addGroupQuery — Allows grouping of documents that match the given query.
    • SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter).
    • SolrQuery::addHighlightField — Lie un hl.fl
    • SolrQuery::addMltField — Spécifie un champ à utiliser pour les similitudes
    • SolrQuery::addMltQueryField — Lie un mlt.qf
    • SolrQuery::addSortField — Utilisé pour contrôler le tri du résultat
    • SolrQuery::addStatsFacet — Récupère un sous résultat pour y trouver des valeurs d'une facette donnée
    • SolrQuery::addStatsField — Lie un paramètre stats.field
    • SolrQuery::collapse — Collapses the result set to a single document per group
    • SolrQuery::__construct — Constructeur
    • SolrQuery::__destruct — Destructeur
    • SolrQuery::getExpand — Returns true if group expanding is enabled
    • SolrQuery::getExpandFilterQueries — Returns the expand filter queries
    • SolrQuery::getExpandQuery — Returns the expand query expand.q parameter
    • SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)
    • SolrQuery::getExpandSortFields — Returns an array of fields
    • SolrQuery::getFacet — Retourne la valeur du paramètre de facette
    • SolrQuery::getFacetDateEnd — Retourne la valeur du paramètre facet.date.end
    • SolrQuery::getFacetDateFields — Retourne tous les champs facet.date
    • SolrQuery::getFacetDateGap — Récupère la valeur du paramètre facet.date.gap
    • SolrQuery::getFacetDateHardEnd — Récupère la valeur du paramètre facet.date.hardend
    • SolrQuery::getFacetDateOther — Récupère la valeur du paramètre facet.date.other
    • SolrQuery::getFacetDateStart — Récupère la limite inférieure du premier intervalle de la date pour toutes les facettes de date pour ce champ
    • SolrQuery::getFacetFields — Récupère toutes les facettes des champs
    • SolrQuery::getFacetLimit — Récupère le nombre maximal de contraintes qui peut être retourné pour les facettes des champs
    • SolrQuery::getFacetMethod — Récupère la valeur du paramètre facet.method
    • SolrQuery::getFacetMinCount — Récupère le nombre minimal de facettes des champs qui doivent être incluses dans la réponse
    • SolrQuery::getFacetMissing — Récupère l'état courant du paramètre facet.missing
    • SolrQuery::getFacetOffset — Récupère la position dans la liste des contraintes à utiliser pour la pagination
    • SolrQuery::getFacetPrefix — Récupère le préfixe de la facette
    • SolrQuery::getFacetQueries — Récupère toutes les facettes des requêtes
    • SolrQuery::getFacetSort — Retourne le type de tri de la facette
    • SolrQuery::getFields — Récupère la liste des champs qui seront retournés dans la réponse
    • SolrQuery::getFilterQueries — Récupère un tableau de filtres de requêtes
    • SolrQuery::getGroup — Returns true if grouping is enabled
    • SolrQuery::getGroupCachePercent — Returns group cache percent value
    • SolrQuery::getGroupFacet — Returns the group.facet parameter value
    • SolrQuery::getGroupFields — Returns group fields (group.field parameter values)
    • SolrQuery::getGroupFormat — Returns the group.format value
    • SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)
    • SolrQuery::getGroupLimit — Returns the group.limit value
    • SolrQuery::getGroupMain — Returns the group.main value
    • SolrQuery::getGroupNGroups — Returns the group.ngroups value
    • SolrQuery::getGroupOffset — Returns the group.offset value
    • SolrQuery::getGroupQueries — Returns all the group.query parameter values
    • SolrQuery::getGroupSortFields — Returns the group.sort value
    • SolrQuery::getGroupTruncate — Returns the group.truncate value
    • SolrQuery::getHighlight — Récupère l'état du paramètre h1
    • SolrQuery::getHighlightAlternateField — Récupère le champ mis en évidence à utiliser comme champ par défaut ou comme champ de sauvegarde
    • SolrQuery::getHighlightFields — Récupère tous les champs pour lesquels Solr doit mettre en évidence un extrait
    • SolrQuery::getHighlightFormatter — Récupère le formatage utilisé pour mettre en évidence la sortie
    • SolrQuery::getHighlightFragmenter — Récupère le générateur d'extrait de texte pour la mise en évidence
    • SolrQuery::getHighlightFragsize — Retourne le nombre de caractères des fragments à considérer pour la mise en évidence
    • SolrQuery::getHighlightHighlightMultiTerm — Retourne si l'on doit activer la mise en évidence pour les intervalles/jokers/flous/préfixes des requêtes
    • SolrQuery::getHighlightMaxAlternateFieldLength — Retourne le nombre maximal de caractères du champ à retourner
    • SolrQuery::getHighlightMaxAnalyzedChars — Retourne le nombre maximal de caractères du document dans lequel les extraits seront cherchés
    • SolrQuery::getHighlightMergeContiguous — Retourne si l'on doit rassembler les fragments contigus en un seul fragment
    • SolrQuery::getHighlightRegexMaxAnalyzedChars — Retourne le nombre maximal de caractères depuis un champ lors de l'utilisation d'une regex
    • SolrQuery::getHighlightRegexPattern — Récupère l'expression rationnelle utilisée pour la fragmentation
    • SolrQuery::getHighlightRegexSlop — Récupère le facteur de déviation depuis la taille du fragment idéal
    • SolrQuery::getHighlightRequireFieldMatch — Retourne si le champ ne doit être mis en évidence que si la requête correspond à un champ en particulier
    • SolrQuery::getHighlightSimplePost — Récupère le texte qui doit apparaître après le terme mise en évidence
    • SolrQuery::getHighlightSimplePre — Retourne le texte qui doit apparaître avant le terme mise en évidence
    • SolrQuery::getHighlightSnippets — Récupère le nombre maximal d'extraits mis en évidence à générer par champ
    • SolrQuery::getHighlightUsePhraseHighlighter — Récupère l'état du paramètre hl.usePhraseHighlighter
    • SolrQuery::getMlt — Retourne si les résultats MoreLikeThis doivent être activés
    • SolrQuery::getMltBoost — Retourne si la requête doit être améliorée en utilisant la pertinence des termes
    • SolrQuery::getMltCount — Récupère le nombre de documents similaires à retourner pour chaque résultat
    • SolrQuery::getMltFields — Récupère tous les champs à utiliser pour la similarité
    • SolrQuery::getMltMaxNumQueryTerms — Retourne le nombre maximal de termes de requête qui peuvent être inclus lors de la génération d'une requête
    • SolrQuery::getMltMaxNumTokens — Retourne le nombre maximal de jokers à analyser dans chaque champ du document
    • SolrQuery::getMltMaxWordLength — Retourne la longueur minimale des mots en deçà de laquelle ils seront ignorés
    • SolrQuery::getMltMinDocFrequency — Retourne le seuil de fréquence d'apparition des mots
    • SolrQuery::getMltMinTermFrequency — Retourne la fréquence en deçà duquel les termes doivent être ignorés dans le document source
    • SolrQuery::getMltMinWordLength — Retourne la longueur minimum d'un mot en deça duquel il sera ignoré
    • SolrQuery::getMltQueryFields — Retourne les champs de la requête ainsi que leurs boosts
    • SolrQuery::getQuery — Retourne la requête principale
    • SolrQuery::getRows — Retourne le nombre maximal de documents
    • SolrQuery::getSortFields — Retourne tous les champs de tri
    • SolrQuery::getStart — Retourne la position dans le jeu complet de résultats
    • SolrQuery::getStats — Vérifie si les statistiques sont actives ou non
    • SolrQuery::getStatsFacets — Retourne toutes les statistiques définies
    • SolrQuery::getStatsFields — Retourne les statistiques des champs
    • SolrQuery::getTerms — Vérifie si le TermsComponent est activé ou non
    • SolrQuery::getTermsField — Récupère le champ depuis lequel les termes sont récupérés
    • SolrQuery::getTermsIncludeLowerBound — Vérifie si l'on doit inclure ou non la limite inférieure dans le jeu de résultats
    • SolrQuery::getTermsIncludeUpperBound — Vérifie si l'on doit inclure ou non la limite supérieure dans le jeu de résultats
    • SolrQuery::getTermsLimit — Retourne le nombre maximal de termes que Solr peut retourner
    • SolrQuery::getTermsLowerBound — Retourne le terme sur lequel on doit commencer
    • SolrQuery::getTermsMaxCount — Retourne la fréquence maximale des documents
    • SolrQuery::getTermsMinCount — Retourne la fréquence minimale des documents
    • SolrQuery::getTermsPrefix — Retourne le préfixe du terme
    • SolrQuery::getTermsReturnRaw — Si l'on doit retourner ou non les caractères brutes
    • SolrQuery::getTermsSort — Retourne un entier indiquant le nombre de termes stockés
    • SolrQuery::getTermsUpperBound — Retourne le terme sur lequel on doit s'arrêter
    • SolrQuery::getTimeAllowed — Retourne le délai d'exécution autorisé pour une requête
    • SolrQuery::removeExpandFilterQuery — Removes an expand filter query
    • SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter.
    • SolrQuery::removeFacetDateField — Supprime un champ date
    • SolrQuery::removeFacetDateOther — Supprime un paramètre facet.date.other
    • SolrQuery::removeFacetField — Supprime un paramètre facet.date
    • SolrQuery::removeFacetQuery — Supprime un paramètre facet.query
    • SolrQuery::removeField — Efface un champ depuis la liste des champs
    • SolrQuery::removeFilterQuery — Supprime un filtre de requête
    • SolrQuery::removeHighlightField — Supprime un des champs utilisés pour la mise en évidence
    • SolrQuery::removeMltField — Supprime un des champs moreLikeThis
    • SolrQuery::removeMltQueryField — Supprime un des champs moreLikeThis de la requête
    • SolrQuery::removeSortField — Supprime un champ de tri
    • SolrQuery::removeStatsFacet — Supprime un paramètre stats.facet
    • SolrQuery::removeStatsField — Supprime un paramètre stats.field
    • SolrQuery::setEchoHandler — Bascule le paramètre echoHandler
    • SolrQuery::setEchoParams — Détermine les paramètres à inclure dans la réponse
    • SolrQuery::setExpand — Enables/Disables the Expand Component
    • SolrQuery::setExpandQuery — Sets the expand.q parameter
    • SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5
    • SolrQuery::setExplainOther — Définit le paramètre de requête explainOther
    • SolrQuery::setFacet — Lie un paramètre facet. Active ou désactive les facet
    • SolrQuery::setFacetDateEnd — Lie un facet.date.end
    • SolrQuery::setFacetDateGap — Lie un facet.date.gap
    • SolrQuery::setFacetDateHardEnd — Lie un facet.date.hardend
    • SolrQuery::setFacetDateStart — Lie un facet.date.start
    • SolrQuery::setFacetEnumCacheMinDefaultFrequency — Définit la fréquence minimale du document utilisée pour déterminer le comptage des termes
    • SolrQuery::setFacetLimit — Lie un facet.limit
    • SolrQuery::setFacetMethod — Spécifie le type d'algorithme à utiliser pour un champ facet
    • SolrQuery::setFacetMinCount — Lie un facet.mincount
    • SolrQuery::setFacetMissing — Lie un facet.missing
    • SolrQuery::setFacetOffset — Définit la position dans la liste des contraintes pour la pagination
    • SolrQuery::setFacetPrefix — Spécifie un préfixe utilisé pour limiter les termes
    • SolrQuery::setFacetSort — Détermine le tri des facet
    • SolrQuery::setGroup — Enable/Disable result grouping (group parameter)
    • SolrQuery::setGroupCachePercent — Enables caching for result grouping
    • SolrQuery::setGroupFacet — Sets group.facet parameter
    • SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter).
    • SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1.
    • SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
    • SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results.
    • SolrQuery::setGroupOffset — Sets the group.offset parameter.
    • SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query.
    • SolrQuery::setHighlight — Active ou désactive la coloration
    • SolrQuery::setHighlightAlternateField — Spécifie le champ de sauvegarde à utiliser
    • SolrQuery::setHighlightFormatter — Spécifie un formateur pour la sortie colorisée
    • SolrQuery::setHighlightFragmenter — Définit un générateur d'extraits de texte pour le texte colorisé
    • SolrQuery::setHighlightFragsize — La taille du fragment à considérer pour la coloration
    • SolrQuery::setHighlightHighlightMultiTerm — Utilise SpanScorer pour coloriser les termes d'une phrase
    • SolrQuery::setHighlightMaxAlternateFieldLength — Définit le nombre maximal de caractères du champ à retourner
    • SolrQuery::setHighlightMaxAnalyzedChars — Spécifie le nombre de caractères dans un document pour y chercher des extraits correspondants
    • SolrQuery::setHighlightMergeContiguous — Si l'on doit rassembler les fragments proches dans un seul fragment
    • SolrQuery::setHighlightRegexMaxAnalyzedChars — Spécifie le nombre maximal de caractères à analyser
    • SolrQuery::setHighlightRegexPattern — Spécifie l'expression rationnelle pour la fragmentation
    • SolrQuery::setHighlightRegexSlop — Définit le facteur par lequel le fragmenteur regex peut dévier de la taille idéale du fragment
    • SolrQuery::setHighlightRequireFieldMatch — Champ correspondant requis lors de la colorisation
    • SolrQuery::setHighlightSimplePost — Définit le texte qui doit apparaître après un terme colorisé
    • SolrQuery::setHighlightSimplePre — Définit le texte qui doit apparaître avant un terme colorisé
    • SolrQuery::setHighlightSnippets — Définit le nombre maximal d'extraits à coloriser par champ
    • SolrQuery::setHighlightUsePhraseHighlighter — Si l'on doit coloriser les termes d'une phrase uniquement si ils apparaissent dans la requête
    • SolrQuery::setMlt — Active ou désactive moreLikeThis
    • SolrQuery::setMltBoost — Si la requête doit être stimulée par la pertinence des termes
    • SolrQuery::setMltCount — Définit le nombre de documents similaires à retourner à chaque résultat
    • SolrQuery::setMltMaxNumQueryTerms — Définit le nombre maximal de termes de requête à inclure
    • SolrQuery::setMltMaxNumTokens — Spécifie le nombre maximal de motifs à analyser
    • SolrQuery::setMltMaxWordLength — Définit la longueur maximale d'un mot
    • SolrQuery::setMltMinDocFrequency — Définit la fréquence mltMinDoc
    • SolrQuery::setMltMinTermFrequency — Définit la fréquence en dessous de laquelle les termes seront ignorés dans le document source
    • SolrQuery::setMltMinWordLength — Définit la longueur minimale d'un mot
    • SolrQuery::setOmitHeader — Exclut l'en-tête des résultats retournés
    • SolrQuery::setQuery — Définit la requête de recherche
    • SolrQuery::setRows — Spécifie le nombre maximal de lignes à retourner dans le résultat
    • SolrQuery::setShowDebugInfo — Drapeau pour afficher les informations de débogage
    • SolrQuery::setStart — Spécifie le nombre maximal de lignes à ignorer
    • SolrQuery::setStats — Active ou désactive le composant statistique
    • SolrQuery::setTerms — Active ou désactive le TermsComponent
    • SolrQuery::setTermsField — Définit le nom du champ dans lequel les termes seront récupérés
    • SolrQuery::setTermsIncludeLowerBound — Inclut le terme inférieure liée dans le jeu de résultat
    • SolrQuery::setTermsIncludeUpperBound — Inclut le terme supérieure liée dans le jeu de résultat
    • SolrQuery::setTermsLimit — Définit le nombre maximal de termes à retourner
    • SolrQuery::setTermsLowerBound — Spécifie le terme de départ
    • SolrQuery::setTermsMaxCount — Définit la fréquence maximale du document
    • SolrQuery::setTermsMinCount — Définit la fréquence minimale d'un document
    • SolrQuery::setTermsPrefix — Restreint les termes correspondants qui commencent avec un préfixe donné
    • SolrQuery::setTermsReturnRaw — Retourne les caractères brutes d'un terme indexé
    • SolrQuery::setTermsSort — Spécifie la façon dont seront triés les termes retournés
    • SolrQuery::setTermsUpperBound — Définit le terme à partir duquel on doit stopper
    • SolrQuery::setTimeAllowed — Le temps allouée pour faire une recherche
  • SolrDisMaxQuery — The SolrDisMaxQuery class
    • SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)
    • SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)
    • SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)
    • SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)
    • SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)
    • SolrDisMaxQuery::__construct — Class Constructor
    • SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)
    • SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)
    • SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)
    • SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)
    • SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)
    • SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)
    • SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter).
    • SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)
    • SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)
    • SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)
    • SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)
    • SolrDisMaxQuery::setQueryPhraseSlop — specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
    • SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)
    • SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)
    • SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)
    • SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)
    • SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser
    • SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax
  • SolrCollapseFunction — The SolrCollapseFunction class
    • SolrCollapseFunction::__construct — Constructor
    • SolrCollapseFunction::getField — Returns the field that is being collapsed on.
    • SolrCollapseFunction::getHint — Returns collapse hint
    • SolrCollapseFunction::getMax — Returns max parameter
    • SolrCollapseFunction::getMin — Returns min parameter
    • SolrCollapseFunction::getNullPolicy — Returns null policy
    • SolrCollapseFunction::getSize — Returns size parameter
    • SolrCollapseFunction::setField — Sets the field to collapse on
    • SolrCollapseFunction::setHint — Sets collapse hint
    • SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query.
    • SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::setNullPolicy — Sets the NULL Policy
    • SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only.
    • SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function
  • SolrException — La classe SolrException
    • SolrException::getInternalInfo — Récupère des informations internes lorsqu'une exception a été lancée
  • SolrClientException — La classe SolrClientException
    • SolrClientException::getInternalInfo — Retourne des informations internes sur l'endroit d'où est lancée l'exception
  • SolrServerException — La classe SolrServerException
    • SolrServerException::getInternalInfo — Retourne des informations internes sur le lieu où l'exception a été émise
  • SolrIllegalArgumentException — La classe SolrIllegalArgumentException
    • SolrIllegalArgumentException::getInternalInfo — Retourne des informations sur l'endroit d'où l'exception a été émise
  • SolrIllegalOperationException — La classe SolrIllegalOperationException
    • SolrIllegalOperationException::getInternalInfo — Récupère des informations internes lorsqu'une exception a été lancée
  • SolrMissingMandatoryParameterException — The SolrMissingMandatoryParameterException class


Introduction

L'extension Solr autorise la communication avec le serveur Apache Solr en PHP.

L'extension Solr est une bibliothèque rapide, légère et riche qui autorise les développeurs PHP à communiquer efficacement avec les instances de serveur Solr.

Les versions 1.x de l'extension PECL supportent Apache Solr Server 1.3-3.x

es versions 2.x l'extension PECL supportent Apache Solr Server 4.0+

Elle contient des outils pour ajouter des documents mais aussi pour faire des mises à jour sur le serveur Solr.

Elle contient également des outils qui permettent de construire des requêtes avancées à destination du serveur pour y rechercher des documents.


Pré-requis

PHP en version 5.2.11 et suivant est requis.

Les extensions libxml et curl doivent aussi être activées afin de rendre disponible l'extension Apache Solr.

libxml2 en version 2.6.31 et suivant est requis.

libcurl en version 7.18.0 et suivant est aussi requis.

Les versions de bibliothèque ci-dessus sont nécessaires et tenter de modifier le code pour compiler cette extension avec des bibliothèques de version différente n'est pas recommandé. Cela pourrait échouer avec des erreurs qui pourraient être très difficile à déboguer.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/solr.

Pour de l'aide et du support, visitez le groupe google de l'extension. » Extension Apache Solr PHP

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.

Note:

Le module Solr peut être compilé en mode de déboguage en passant l'option de configuration --enable-solr-debug.

Lors d'une compilation manuelle, assurez-vous d'inclure le support curl et libxml.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SOLR_MAJOR_VERSION (entier)
SOLR_MINOR_VERSION (entier)
SOLR_PATCH_VERSION (entier)
SOLR_EXTENSION_VERSION (chaîne de caractères)


Fonctions Solr

Sommaire

  • solr_get_version — Retourne la version courante de l'extension Solr utilisée par Apache


Retourne la version courante de l'extension Solr utilisée par Apache

  • « Fonctions Solr
  • Exemples »
  • PHP Manual
  • Fonctions Solr
  • Retourne la version courante de l'extension Solr utilisée par Apache

solr_get_version

(PECL solr >= 0.9.1)

solr_get_version — Retourne la version courante de l'extension Solr utilisée par Apache

Description

string solr_get_version ( void )

Cette fonction retourne la version courante de l'extension, sous la forme d'une chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un chaîne de caractères en cas de succès, et FALSE si une erreur survient.

Erreurs / Exceptions

Cette fonction ne lance aucune erreur ni exception.

Exemples

Exemple #1 Exemple avec solr_get_version()

<?php

$solr_version = solr_get_version();

print $solr_version;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

0.9.6

Voir aussi

  • SolrUtils::getSolrVersion() - Récupère la version courant de l'extension Solr


Exemples

Exemples d'utilisation de l'extension Apache Solr en PHP.

Exemple #1 Contenu du fichier BootStrap

<?php

/* Nom de domaine du serveur Solr */
define('SOLR_SERVER_HOSTNAME', 'solr.example.com');

/* Si l'on doit exécuter en mode sécurisé ou non */
define('SOLR_SECURE', true);

/* Port HTTP de connexion */
define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8443 : 8983));

/* Nom d'utilisateur pour l'authentification HTTP Basic */
define('SOLR_SERVER_USERNAME', 'admin');

/* Mot de passe pour l'authentification HTTP Basic */
define('SOLR_SERVER_PASSWORD', 'changeit');

/* Délai maximal de connexion HTTP */
/* C'estla durée maximale en secondes autorisée pour l'opération de transfert de données http. La valeur par défaut est 30 secondes */
define('SOLR_SERVER_TIMEOUT', 10);

/* Nom du fichier de la clé privée formattée PEM + du certificat privé (concaténés dans cet ordre) */
define('SOLR_SSL_CERT', 'certs/combo.pem');

/* Nom du fichier du certificat privé formatté PEM seulement */
define('SOLR_SSL_CERT_ONLY', 'certs/solr.crt');

/* Nom du fichier de la clé privée formattée PEM */
define('SOLR_SSL_KEY', 'certs/solr.key');

/* Mot de passe pour le fichier de la clé privée formattée PEM */
define('SOLR_SSL_KEYPASSWORD', 'StrongAndSecurePassword');

/* Nom du fichier contenant un ou plusieurs certificats CA pour l'authentification */
define('SOLR_SSL_CAINFO', 'certs/cacert.crt');

/* Nom du dossier contenant les certificats CA pour l'authentification */
define('SOLR_SSL_CAPATH', 'certs/');

?>

Exemple #2 Ajout d'un document à l'index

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

print_r($updateResponse->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 446
        )

)

Exemple #3 Fusion d'un document dans un autre

<?php

include "bootstrap.php";

$doc = new SolrDocument();

$second_doc = new SolrDocument();

$doc->addField('id', 1123);

$doc->features = "PHP Client Side";
$doc->features = "Fast development cycles";

$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat   = 'Information Technology';

$second_doc->addField('cat', 'Lucene Search');

$second_doc->merge($doc, true);

print_r($second_doc->toArray());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [document_boost] => 0
    [field_count] => 3
    [fields] => Array
        (
            [0] => SolrDocumentField Object
                (
                    [name] => cat
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => Software
                            [1] => Custom Search
                            [2] => Information Technology
                        )

                )

            [1] => SolrDocumentField Object
                (
                    [name] => id
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => 1123
                        )

                )

            [2] => SolrDocumentField Object
                (
                    [name] => features
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => PHP Client Side
                            [1] => Fast development cycles
                        )

                )

        )

)

Exemple #4 Recherche de documents - réponses sous la forme d'un objet SolrObject

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [wt] => xml
                    [rows] => 50
                    [start] => 0
                    [indent] => on
                    [q] => lucene
                    [fl] => cat,features,id,timestamp
                    [version] => 2.2
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 3
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => Software
                                    [1] => Lucene
                                )

                            [id] => 334456
                        )

                    [1] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => Software
                                    [1] => Lucene
                                )

                            [id] => 334455
                        )

                    [2] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => software
                                    [1] => search
                                )

                            [features] => Array
                                (
                                    [0] => Advanced Full-Text Search Capabilities using Lucene
                                    [1] => Optimized for High Volume Web Traffic
                                    [2] => Standards Based Open Interfaces - XML and HTTP
                                    [3] => Comprehensive HTML Administration Interfaces
                                    [4] => Scalability - Efficient Replication to other Solr Search Servers
                                    [5] => Flexible and Adaptable with XML configuration and Schema
                                    [6] => Good unicode support: héllo (hello with an accent over the e)
                                )

                            [id] => SOLR1000
                            [timestamp] => 2009-09-04T20:38:55.906
                        )

                )

        )

)

Exemple #5 Recherche de documents - réponses sous la forme d'un objet SolrDocument

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$query_response->setParseMode(SolrQueryResponse::PARSE_SOLR_DOC);

$response = $query_response->getResponse();

print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [wt] => xml
                    [rows] => 50
                    [start] => 0
                    [indent] => on
                    [q] => lucene
                    [fl] => cat,features,id,timestamp
                    [version] => 2.2
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 3
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 19740
                        )

                    [1] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 25485
                        )

                    [2] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 25052
                        )

                )

        )

)

Exemple #6 Exemple simple avec TermsComponent

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

$query->setTermsField('cat');

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [electronics] => 14
                    [Lucene] => 4
                    [Software] => 4
                    [memory] => 3
                    [card] => 2
                    [connector] => 2
                    [drive] => 2
                    [graphics] => 2
                    [hard] => 2
                    [monitor] => 2
                )

        )

)

Exemple #7 Exemple simple avec TermsComponent en utilisant un préfixe

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix = 'c';

$query->setTermsField('cat')->setTermsPrefix($prefix);

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [card] => 2
                    [connector] => 2
                    [camera] => 1
                    [copier] => 1
                )

        )

)

Exemple #8 Exemple simple avec TermsComponent en spécifiant une fréquence minimale

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix = 'c';

/* Return only terms with a frequency of 2 or greater */
$min_frequency = 2;

$query->setTermsField('cat')->setTermsPrefix($prefix)->setTermsMinCount($min_frequency);

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 0
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [card] => 2
                    [connector] => 2
                )

        )

)

Exemple #9 Exemple simple avec Facet

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2);

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
            [1] => 3
            [184] => 3
            [2] => 3
            [3200] => 3
            [400] => 3
            [500] => 3
            [ddr] => 3
            [i] => 3
            [ipod] => 3
            [memori] => 3
            [pc] => 3
            [pin] => 3
            [pod] => 3
            [sdram] => 3
            [system] => 3
            [unbuff] => 3
            [canon] => 2
            [corsair] => 2
            [drive] => 2
            [hard] => 2
            [mb] => 2
            [n] => 2
            [power] => 2
            [retail] => 2
            [video] => 2
            [x] => 2
        )

)

Exemple #10 Exemple simple avec Facet et un champ optionnel d'écrasement pour mincount

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4, 'name');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
        )

)

Exemple #11 Exemple avec les Facet

<?php

include "bootstrap.php";

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetDateField('manufacturedate_dt');

$query->setFacetDateStart('2006-02-13T00:00:00Z');

$query->setFacetDateEnd('2012-02-13T00:00:00Z');

$query->setFacetDateGap('+1YEAR');

$query->setFacetDateHardEnd(1);

$query->addFacetDateOther('before');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_dates;

print_r($facet_data);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [manufacturedate_dt] => SolrObject Object
        (
            [2006-02-13T00:00:00Z] => 9
            [2007-02-13T00:00:00Z] => 0
            [2008-02-13T00:00:00Z] => 0
            [2009-02-13T00:00:00Z] => 0
            [2010-02-13T00:00:00Z] => 0
            [2011-02-13T00:00:00Z] => 0
            [gap] => +1YEAR
            [start] => 2006-02-13T00:00:00Z
            [end] => 2012-02-13T00:00:00Z
            [before] => 2
        )

)

Exemple #12 Connexion à un serveur SSL

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'timeout'  => SOLR_SERVER_TIMEOUT,
    'secure'   => SOLR_SECURE,
    'ssl_cert' => SOLR_SSL_CERT_ONLY,
    'ssl_key'  => SOLR_SSL_KEY,
    'ssl_keypassword' => SOLR_SSL_KEYPASSWORD,
    'ssl_cainfo' => SOLR_SSL_CAINFO,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4, 'name');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
        )

)

Exemple #13 Exemple avec SolrQuery

<?php
include "bootstrap.php";

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
        'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$collapseFunction = new SolrCollapseFunction('manu_id_s');

$collapseFunction
->setSize(2)
->setNullPolicy(SolrCollapseFunction::NULLPOLICY_IGNORE);

$query
->collapse($collapseFunction)
->setRows(4);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [q] => *:*
                    [indent] => on
                    [fq] => {!collapse field=manu_id_s size=2 nullPolicy=ignore}
                    [rows] => 4
                    [version] => 2.2
                    [wt] => xml
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 14
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SP2514N
                            [name] => Array
                                (
                                    [0] => Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133
                                )

                            [manu] => Array
                                (
                                    [0] => Samsung Electronics Co. Ltd.
                                )

                            [manu_id_s] => samsung
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => 7200RPM, 8MB cache, IDE Ultra ATA-133
                                    [1] => NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor
                                )

                            [price] => Array
                                (
                                    [0] => 92
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [store] => Array
                                (
                                    [0] => 35.0752,-97.032
                                )

                            [_version_] => 1510294336412057600
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                    [2] => SolrObject Object
                        (
                            [id] => F8V7067-APL-KIT
                            [name] => Array
                                (
                                    [0] => Belkin Mobile Power Cord for iPod w/ Dock
                                )

                            [manu] => Array
                                (
                                    [0] => Belkin
                                )

                            [manu_id_s] => belkin
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => connector
                                )

                            [features] => Array
                                (
                                    [0] => car power adapter, white
                                )

                            [weight] => Array
                                (
                                    [0] => 4
                                )

                            [price] => Array
                                (
                                    [0] => 19.95
                                )

                            [popularity] => Array
                                (
                                    [0] => 1
                                )

                            [inStock] => Array
                                (
                                    [0] =>
                                )

                            [store] => Array
                                (
                                    [0] => 45.18014,-93.87741
                                )

                            [manufacturedate_dt] => 2005-08-01T16:30:25Z
                            [_version_] => 1510294336458194944
                        )

                    [3] => SolrObject Object
                        (
                            [id] => MA147LL/A
                            [name] => Array
                                (
                                    [0] => Apple 60 GB iPod with Video Playback Black
                                )

                            [manu] => Array
                                (
                                    [0] => Apple Computer Inc.
                                )

                            [manu_id_s] => apple
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => music
                                )

                            [features] => Array
                                (
                                    [0] => iTunes, Podcasts, Audiobooks
                                    [1] => Stores up to 15,000 songs, 25,000 photos, or 150 hours of video
                                    [2] => 2.5-inch, 320x240 color TFT LCD display with LED backlight
                                    [3] => Up to 20 hours of battery life
                                    [4] => Plays AAC, MP3, WAV, AIFF, Audible, Apple Lossless, H.264 video
                                    [5] => Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication
                                )

                            [includes] => Array
                                (
                                    [0] => earbud headphones, USB cable
                                )

                            [weight] => Array
                                (
                                    [0] => 5.5
                                )

                            [price] => Array
                                (
                                    [0] => 399
                                )

                            [popularity] => Array
                                (
                                    [0] => 10
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 37.7752,-100.0232
                                )

                            [manufacturedate_dt] => 2005-10-12T08:00:00Z
                            [_version_] => 1510294336562003968
                        )

                )

        )

)


La classe SolrUtils

(PECL solr >= 0.9.2)

Introduction

Contient des méthodes utiles pour récupérer la version de l'extension courante et préparer les requêtes.

Contient également des méthodes pour échapper les chaînes utilisées dans les requêtes et analyser les réponses XML.

Synopsis de la classe

abstract SolrUtils {
/* Méthodes */
public static SolrObject digestXmlResponse ( string $xmlresponse [, int $parse_mode = 0 ] )
public static string escapeQueryChars ( string $str )
public static string getSolrVersion ( void )
public static string queryPhrase ( string $str )
}

Sommaire

  • SolrUtils::digestXmlResponse — Analyse une réponse XML dans un SolrObject
  • SolrUtils::escapeQueryChars — Protège une requête
  • SolrUtils::getSolrVersion — Récupère la version courant de l'extension Solr
  • SolrUtils::queryPhrase — Prépare une phrase depuis une chaîne non protégée par Lucene


Analyse une réponse XML dans un SolrObject

  • « SolrUtils
  • SolrUtils::escapeQueryChars »
  • PHP Manual
  • SolrUtils
  • Analyse une réponse XML dans un SolrObject

SolrUtils::digestXmlResponse

(PECL solr >= 0.9.2)

SolrUtils::digestXmlResponse — Analyse une réponse XML dans un SolrObject

Description

public static SolrObject SolrUtils::digestXmlResponse ( string $xmlresponse [, int $parse_mode = 0 ] )

Cette méthode analyse une réponse XML depuis un serveur Apache Solr dans un SolrObject. Lance une exception SolrException si une erreur survient.

Liste de paramètres

xmlresponse

La réponse XML depuis le serveur Solr.

parse_mode

Utilisez SolrResponse::PARSE_SOLR_OBJ ou SolrResponse::PARSE_SOLR_DOC

Valeurs de retour

Retourne l'objet SolrObject représentant la réponse XML.

Si le paramètre parse_mode vaut SolrResponse::PARSE_SOLR_OBJ, les documents Solr seront analysés comme des instances SolrObject.

S'il vaut SolrResponse::PARSE_SOLR_DOC, ils seront analysés comme des instances SolrDocument.


Protège une requête

  • « SolrUtils::digestXmlResponse
  • SolrUtils::getSolrVersion »
  • PHP Manual
  • SolrUtils
  • Protège une requête

SolrUtils::escapeQueryChars

(PECL solr >= 0.9.2)

SolrUtils::escapeQueryChars — Protège une requête

Description

public static string SolrUtils::escapeQueryChars ( string $str )

Le support Lucene protège les caractères spéciaux faisant partis de la syntaxe de la requête.

La liste actuelle des caractères spéciaux est :

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /

Ces caractères font partis de la syntaxe de la requête et doivent être échappés.

Liste de paramètres

str

Chaîne à protéger.

Valeurs de retour

Retourne la chaîne protégée ou FALSE si une erreur survient.


Récupère la version courant de l'extension Solr

  • « SolrUtils::escapeQueryChars
  • SolrUtils::queryPhrase »
  • PHP Manual
  • SolrUtils
  • Récupère la version courant de l'extension Solr

SolrUtils::getSolrVersion

(PECL solr >= 0.9.2)

SolrUtils::getSolrVersion — Récupère la version courant de l'extension Solr

Description

public static string SolrUtils::getSolrVersion ( void )

Récupère la version courante Solr.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La version courante de l'extension Apache Solr.


Prépare une phrase depuis une chaîne non protégée par Lucene

  • « SolrUtils::getSolrVersion
  • SolrInputDocument »
  • PHP Manual
  • SolrUtils
  • Prépare une phrase depuis une chaîne non protégée par Lucene

SolrUtils::queryPhrase

(PECL solr >= 0.9.2)

SolrUtils::queryPhrase — Prépare une phrase depuis une chaîne non protégée par Lucene

Description

public static string SolrUtils::queryPhrase ( string $str )

Prépare une phrase depuis une chaîne non protégée par Lucene.

Liste de paramètres

str

La phrase Lucene.

Valeurs de retour

Retourne la partie de la phrase contenue entre guillemets.


La classe SolrInputDocument

(PECL solr >= 0.9.2)

Introduction

Représente un document Solr qui est sur le point d'être envoyé à l'index Solr.

Synopsis de la classe

final SolrInputDocument {
/* Constantes */
const integer SORT_DEFAULT = 1 ;
const integer SORT_ASC = 1 ;
const integer SORT_DESC = 2 ;
const integer SORT_FIELD_NAME = 1 ;
const integer SORT_FIELD_VALUE_COUNT = 2 ;
const integer SORT_FIELD_BOOST_VALUE = 4 ;
/* Méthodes */
public void addChildDocument ( SolrInputDocument $child )
public void addChildDocuments ( array &$docs )
public bool addField ( string $fieldName , string $fieldValue [, float $fieldBoostValue = 0.0 ] )
public bool clear ( void )
public void __clone ( void )
public __construct ( void )
public bool deleteField ( string $fieldName )
public void __destruct ( void )
public bool fieldExists ( string $fieldName )
public float getBoost ( void )
public array getChildDocuments ( void )
public integer getChildDocumentsCount ( void )
public SolrDocumentField getField ( string $fieldName )
public float getFieldBoost ( string $fieldName )
public int getFieldCount ( void )
public array getFieldNames ( void )
public boolean hasChildDocuments ( void )
public bool merge ( SolrInputDocument $sourceDoc [, bool $overwrite = true ] )
public bool reset ( void )
public bool setBoost ( float $documentBoostValue )
public bool setFieldBoost ( string $fieldName , float $fieldBoostValue )
public bool sort ( int $sortOrderBy [, int $sortDirection = SolrInputDocument::SORT_ASC ] )
public array toArray ( void )
}

Constantes pré-définies

Constantes de la classe SolrInputDocument

SolrInputDocument::SORT_DEFAULT

Tri par défaut des champs.

SolrInputDocument::SORT_ASC

Tri les champs de façon croissant.

SolrInputDocument::SORT_DESC

Tri les champs de façon décroissant.

SolrInputDocument::SORT_FIELD_NAME

Tri les champs par leur nom.

SolrInputDocument::SORT_FIELD_VALUE_COUNT

Tri les champs par le nombre de valeurs.

SolrInputDocument::SORT_FIELD_BOOST_VALUE

Tri les champs par la valeur de boost.

Sommaire

  • SolrInputDocument::addChildDocument — Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments — Adds an array of child documents
  • SolrInputDocument::addField — Ajoute un champ au document
  • SolrInputDocument::clear — Réinitialise le document d'entrée
  • SolrInputDocument::__clone — Crée une copie de l'objet SolrDocument
  • SolrInputDocument::__construct — Constructeur
  • SolrInputDocument::deleteField — Efface un champ d'un document
  • SolrInputDocument::__destruct — Destructeur
  • SolrInputDocument::fieldExists — Vérifie si un champ existe
  • SolrInputDocument::getBoost — Récupère la valeur courante du boost pour le document
  • SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount — Returns the number of child documents
  • SolrInputDocument::getField — Récupère un champ par son nom
  • SolrInputDocument::getFieldBoost — Récupère la valeur du boost pour un champ donné
  • SolrInputDocument::getFieldCount — Retourne le nombre de champs du document
  • SolrInputDocument::getFieldNames — Retourne un tableau contenant tous les champs du document
  • SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents
  • SolrInputDocument::merge — Fusionne un document d'entrée dans un autre
  • SolrInputDocument::reset — Alias de SolrInputDocument::clear
  • SolrInputDocument::setBoost — Définit la valeur de boost pour le document
  • SolrInputDocument::setFieldBoost — Définit la valeur de boost pour un champ
  • SolrInputDocument::sort — Tri les champs du document
  • SolrInputDocument::toArray — Retourne un représentation sous forme de tableau du document d'entrée


Adds a child document for block indexing

  • « SolrInputDocument
  • SolrInputDocument::addChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Adds a child document for block indexing

SolrInputDocument::addChildDocument

(PECL solr >= 2.3.0)

SolrInputDocument::addChildDocument — Adds a child document for block indexing

Description

public void SolrInputDocument::addChildDocument ( SolrInputDocument $child )

Adds a child document to construct a document block with nested documents.

Liste de paramètres

child

A SolrInputDocument object.

Erreurs / Exceptions

Throws SolrIllegalArgumentException on failure.

Throws SolrException on internal failure.

Valeurs de retour

Exemples

Exemple #1 SolrInputDocument::addChildDocument() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_STORE_PATH,
);

$client = new SolrClient($options);

$product = new SolrInputDocument();

$product->addField('id', 'P-BLACK');
$product->addField('cat', 'tshirt');
$product->addField('cat', 'polo');
$product->addField('content_type', 'product');

$small = new SolrInputDocument();
$small->addField('id', 'TS-BLK-S');
$small->addField('content_type', 'sku');
$small->addField('size', 'S');
$small->addField('inventory', 100);

$medium = new SolrInputDocument();
$medium->addField('id', 'TS-BLK-M');
$medium->addField('content_type', 'sku');
$medium->addField('size', 'M');
$medium->addField('inventory', 200);

$large = new SolrInputDocument();
$large->addField('id', 'TS-BLK-L');
$large->addField('content_type', 'sku');
$large->addField('size', 'L');
$large->addField('inventory', 300);

// add child documents
$product->addChildDocument($small);
$product->addChildDocument($medium);
$product->addChildDocument($large);

// add product document block to the index
$updateResponse = $client->addDocument(
        $product,
        true, // overwrite if the document exists
        10000 // commit within 10 seconds
);

print_r($updateResponse->getResponse());

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 5
        )
)

Voir aussi

  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Adds an array of child documents

  • « SolrInputDocument::addChildDocument
  • SolrInputDocument::addField »
  • PHP Manual
  • SolrInputDocument
  • Adds an array of child documents

SolrInputDocument::addChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::addChildDocuments — Adds an array of child documents

Description

public void SolrInputDocument::addChildDocuments ( array &$docs )

Adds an array of child documents to the current input document.

Liste de paramètres

docs

An array of SolrInputDocument objects.

Erreurs / Exceptions

Throws SolrIllegalArgumentException on failure.

Throws SolrException on internal failure.

Valeurs de retour

Exemples

Exemple #1 SolrInputDocument::addChildDocuments() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_STORE_PATH,
);

$client = new SolrClient($options);

$product = new SolrInputDocument();

$product->addField('id', 'P-BLACK');
$product->addField('cat', 'tshirt');
$product->addField('cat', 'polo');
$product->addField('content_type', 'product');

$small = new SolrInputDocument();
$small->addField('id', 'TS-BLK-S');
$small->addField('content_type', 'sku');
$small->addField('size', 'S');
$small->addField('inventory', 100);

$medium = new SolrInputDocument();
$medium->addField('id', 'TS-BLK-M');
$medium->addField('content_type', 'sku');
$medium->addField('size', 'M');
$medium->addField('inventory', 200);

$large = new SolrInputDocument();
$large->addField('id', 'TS-BLK-L');
$large->addField('content_type', 'sku');
$large->addField('size', 'L');
$large->addField('inventory', 300);

// add child documents
$skus = [$small, $medium, $large];
$product->addChildDocuments($skus);

// add the product document block to the index
$updateResponse = $client->addDocument(
        $product,
        true, // overwrite if the document exists
        10000 // commit within 10 seconds
);

print_r($updateResponse->getResponse());

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 5
        )
)

Voir aussi

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Ajoute un champ au document

  • « SolrInputDocument::addChildDocuments
  • SolrInputDocument::clear »
  • PHP Manual
  • SolrInputDocument
  • Ajoute un champ au document

SolrInputDocument::addField

(PECL solr >= 0.9.2)

SolrInputDocument::addField — Ajoute un champ au document

Description

public bool SolrInputDocument::addField ( string $fieldName , string $fieldValue [, float $fieldBoostValue = 0.0 ] )

Pour des champs à valeur multiple, si une valeur de boost valide est spécifiée, la valeur spécifiée sera multipliée par la valeur de boost courant pour ce champ.

Liste de paramètres

fieldName

Le nom du champ.

fieldValue

La valeur du champ.

fieldBoostValue

Le boost de ce champ. Cette valeur ne peut être négative. Vous pouvez passer une valeur inférieure à 1.0 mais elle doit être supérieure à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Réinitialise le document d'entrée

  • « SolrInputDocument::addField
  • SolrInputDocument::__clone »
  • PHP Manual
  • SolrInputDocument
  • Réinitialise le document d'entrée

SolrInputDocument::clear

(PECL solr >= 0.9.2)

SolrInputDocument::clear — Réinitialise le document d'entrée

Description

public bool SolrInputDocument::clear ( void )

Réinitialise le document en supprimant tous les champs.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Crée une copie de l'objet SolrDocument

  • « SolrInputDocument::clear
  • SolrInputDocument::__construct »
  • PHP Manual
  • SolrInputDocument
  • Crée une copie de l'objet SolrDocument

SolrInputDocument::__clone

(PECL solr >= 0.9.2)

SolrInputDocument::__clone — Crée une copie de l'objet SolrDocument

Description

public void SolrInputDocument::__clone ( void )

Cette méthode ne devrait pas être appelée directement. Elle est utilisée pour créer une copie interne de l'objet SolrInputDocument.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Crée une nouvelle instance SolrInputDocument.


Constructeur

  • « SolrInputDocument::__clone
  • SolrInputDocument::deleteField »
  • PHP Manual
  • SolrInputDocument
  • Constructeur

SolrInputDocument::__construct

(PECL solr >= 0.9.2)

SolrInputDocument::__construct — Constructeur

Description

public SolrInputDocument::__construct ( void )

Constructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune.


Efface un champ d'un document

  • « SolrInputDocument::__construct
  • SolrInputDocument::__destruct »
  • PHP Manual
  • SolrInputDocument
  • Efface un champ d'un document

SolrInputDocument::deleteField

(PECL solr >= 0.9.2)

SolrInputDocument::deleteField — Efface un champ d'un document

Description

public bool SolrInputDocument::deleteField ( string $fieldName )

Efface un champ d'un document.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Destructeur

  • « SolrInputDocument::deleteField
  • SolrInputDocument::fieldExists »
  • PHP Manual
  • SolrInputDocument
  • Destructeur

SolrInputDocument::__destruct

(PECL solr >= 0.9.2)

SolrInputDocument::__destruct — Destructeur

Description

public void SolrInputDocument::__destruct ( void )

Destructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune.


Vérifie si un champ existe

  • « SolrInputDocument::__destruct
  • SolrInputDocument::getBoost »
  • PHP Manual
  • SolrInputDocument
  • Vérifie si un champ existe

SolrInputDocument::fieldExists

(PECL solr >= 0.9.2)

SolrInputDocument::fieldExists — Vérifie si un champ existe

Description

public bool SolrInputDocument::fieldExists ( string $fieldName )

Vérifie si un champ existe.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Retourne TRUE si le champ existe, et FALSE sinon.


Récupère la valeur courante du boost pour le document

  • « SolrInputDocument::fieldExists
  • SolrInputDocument::getChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Récupère la valeur courante du boost pour le document

SolrInputDocument::getBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getBoost — Récupère la valeur courante du boost pour le document

Description

public float SolrInputDocument::getBoost ( void )

Récupère la valeur courante du boost pour le document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur du boost en cas de succès, et FALSE si une erreur survient.


Returns an array of child documents (SolrInputDocument)

  • « SolrInputDocument::getBoost
  • SolrInputDocument::getChildDocumentsCount »
  • PHP Manual
  • SolrInputDocument
  • Returns an array of child documents (SolrInputDocument)

SolrInputDocument::getChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)

Description

public array SolrInputDocument::getChildDocuments ( void )

Returns an array of child documents (SolrInputDocument)

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Returns the number of child documents

  • « SolrInputDocument::getChildDocuments
  • SolrInputDocument::getField »
  • PHP Manual
  • SolrInputDocument
  • Returns the number of child documents

SolrInputDocument::getChildDocumentsCount

(PECL solr >= 2.3.0)

SolrInputDocument::getChildDocumentsCount — Returns the number of child documents

Description

public integer SolrInputDocument::getChildDocumentsCount ( void )

Returns the number of child documents

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)


Récupère un champ par son nom

  • « SolrInputDocument::getChildDocumentsCount
  • SolrInputDocument::getFieldBoost »
  • PHP Manual
  • SolrInputDocument
  • Récupère un champ par son nom

SolrInputDocument::getField

(PECL solr >= 0.9.2)

SolrInputDocument::getField — Récupère un champ par son nom

Description

public SolrDocumentField SolrInputDocument::getField ( string $fieldName )

Récupère un champ par son nom.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Retourne un objet SolrDocumentField en cas de succès, et FALSE si une erreur survient.


Récupère la valeur du boost pour un champ donné

  • « SolrInputDocument::getField
  • SolrInputDocument::getFieldCount »
  • PHP Manual
  • SolrInputDocument
  • Récupère la valeur du boost pour un champ donné

SolrInputDocument::getFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldBoost — Récupère la valeur du boost pour un champ donné

Description

public float SolrInputDocument::getFieldBoost ( string $fieldName )

Récupère la valeur du boost pour un champ donné.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Retourne la valeur du boost pour le champ, ou FALSE si une erreur survient.


Retourne le nombre de champs du document

  • « SolrInputDocument::getFieldBoost
  • SolrInputDocument::getFieldNames »
  • PHP Manual
  • SolrInputDocument
  • Retourne le nombre de champs du document

SolrInputDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldCount — Retourne le nombre de champs du document

Description

public int SolrInputDocument::getFieldCount ( void )

Retourne le nombre de champs du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès ou FALSE si une erreur survient.


Retourne un tableau contenant tous les champs du document

  • « SolrInputDocument::getFieldCount
  • SolrInputDocument::hasChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Retourne un tableau contenant tous les champs du document

SolrInputDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldNames — Retourne un tableau contenant tous les champs du document

Description

public array SolrInputDocument::getFieldNames ( void )

Retourne un tableau contenant tous les champs du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et FALSE si une erreur survient.


Returns true if the document has any child documents

  • « SolrInputDocument::getFieldNames
  • SolrInputDocument::merge »
  • PHP Manual
  • SolrInputDocument
  • Returns true if the document has any child documents

SolrInputDocument::hasChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents

Description

public boolean SolrInputDocument::hasChildDocuments ( void )

Checks whether the document has any child documents

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Fusionne un document d'entrée dans un autre

  • « SolrInputDocument::hasChildDocuments
  • SolrInputDocument::reset »
  • PHP Manual
  • SolrInputDocument
  • Fusionne un document d'entrée dans un autre

SolrInputDocument::merge

(PECL solr >= 0.9.2)

SolrInputDocument::merge — Fusionne un document d'entrée dans un autre

Description

public bool SolrInputDocument::merge ( SolrInputDocument $sourceDoc [, bool $overwrite = true ] )

Fusionne un document d'entrée dans un autre.

Liste de paramètres

sourceDoc

Le document source.

overwrite

Si vaut TRUE, il remplacera les champs correspondant dans le document cible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Dans le futur, cette méthode sera modifiée pour retourner le nombre de champs du nouveau document.


Alias de SolrInputDocument::clear

  • « SolrInputDocument::merge
  • SolrInputDocument::setBoost »
  • PHP Manual
  • SolrInputDocument
  • Alias de SolrInputDocument::clear

SolrInputDocument::reset

(PECL solr >= 0.9.2)

SolrInputDocument::reset — Alias de SolrInputDocument::clear

Description

public bool SolrInputDocument::reset ( void )

Alias de SolrInputDocument::clear.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Définit la valeur de boost pour le document

  • « SolrInputDocument::reset
  • SolrInputDocument::setFieldBoost »
  • PHP Manual
  • SolrInputDocument
  • Définit la valeur de boost pour le document

SolrInputDocument::setBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setBoost — Définit la valeur de boost pour le document

Description

public bool SolrInputDocument::setBoost ( float $documentBoostValue )

Définit la valeur de boost pour le document.

Liste de paramètres

documentBoostValue

La valeur de boost pour ce document.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Définit la valeur de boost pour un champ

  • « SolrInputDocument::setBoost
  • SolrInputDocument::sort »
  • PHP Manual
  • SolrInputDocument
  • Définit la valeur de boost pour un champ

SolrInputDocument::setFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setFieldBoost — Définit la valeur de boost pour un champ

Description

public bool SolrInputDocument::setFieldBoost ( string $fieldName , float $fieldBoostValue )

Définit la valeur de boost pour un champ. Ceci remplacera la valeur de boost courante pour ce champ.

Liste de paramètres

fieldName

Le nom du champ.

fieldBoostValue

La valeur de boost.


Tri les champs du document

  • « SolrInputDocument::setFieldBoost
  • SolrInputDocument::toArray »
  • PHP Manual
  • SolrInputDocument
  • Tri les champs du document

SolrInputDocument::sort

(PECL solr >= 0.9.2)

SolrInputDocument::sort — Tri les champs du document

Description

public bool SolrInputDocument::sort ( int $sortOrderBy [, int $sortDirection = SolrInputDocument::SORT_ASC ] )

Les champs sont réarrangés suivant les critères spécifiés et la direction du tri

   Les champs peuvent être triés par leurs valeurs de boost, leurs noms et leurs nombres de valeurs.

   Le paramètre $order_by peut être une valeur parmi :

   * SolrInputDocument::SORT_FIELD_NAME
   * SolrInputDocument::SORT_FIELD_BOOST_VALUE
   * SolrInputDocument::SORT_FIELD_VALUE_COUNT

   La direction de tri peut être une valeur parmi :

   * SolrInputDocument::SORT_DEFAULT
   * SolrInputDocument::SORT_ASC
   * SolrInputDocument::SORT_DESC

Liste de paramètres

sortOrderBy

Le critère de tri

sortDirection

La direction du tri

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne un représentation sous forme de tableau du document d'entrée

  • « SolrInputDocument::sort
  • SolrDocument »
  • PHP Manual
  • SolrInputDocument
  • Retourne un représentation sous forme de tableau du document d'entrée

SolrInputDocument::toArray

(PECL solr >= 0.9.2)

SolrInputDocument::toArray — Retourne un représentation sous forme de tableau du document d'entrée

Description

public array SolrInputDocument::toArray ( void )

Retourne un représentation sous forme de tableau du document d'entrée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une représentation sous forme de tableau des champs et FALSE si une erreur survient.


La classe SolrDocument

(PECL solr >= 0.9.2)

Introduction

Représente un document Solr récupéré suite à une requête.

Synopsis de la classe

final SolrDocument implements ArrayAccess , Iterator , Serializable {
/* Constantes */
const integer SORT_DEFAULT = 1 ;
const integer SORT_ASC = 1 ;
const integer SORT_DESC = 2 ;
const integer SORT_FIELD_NAME = 1 ;
const integer SORT_FIELD_VALUE_COUNT = 2 ;
const integer SORT_FIELD_BOOST_VALUE = 4 ;
/* Méthodes */
public bool addField ( string $fieldName , string $fieldValue )
public bool clear ( void )
public void __clone ( void )
public __construct ( void )
public SolrDocumentField current ( void )
public bool deleteField ( string $fieldName )
public void __destruct ( void )
public bool fieldExists ( string $fieldName )
public SolrDocumentField __get ( string $fieldName )
public array getChildDocuments ( void )
public integer getChildDocumentsCount ( void )
public SolrDocumentField getField ( string $fieldName )
public int getFieldCount ( void )
public array getFieldNames ( void )
public SolrInputDocument getInputDocument ( void )
public bool hasChildDocuments ( void )
public bool __isset ( string $fieldName )
public string key ( void )
public bool merge ( SolrDocument $sourceDoc [, bool $overwrite = true ] )
public void next ( void )
public bool offsetExists ( string $fieldName )
public SolrDocumentField offsetGet ( string $fieldName )
public void offsetSet ( string $fieldName , string $fieldValue )
public void offsetUnset ( string $fieldName )
public bool reset ( void )
public void rewind ( void )
public string serialize ( void )
public bool __set ( string $fieldName , string $fieldValue )
public bool sort ( int $sortOrderBy [, int $sortDirection = SolrDocument::SORT_ASC ] )
public array toArray ( void )
public void unserialize ( string $serialized )
public bool __unset ( string $fieldName )
public bool valid ( void )
}

Constantes pré-définies

SolrDocument::SORT_DEFAULT

Mode par défaut pour le tri des champs du document.

SolrDocument::SORT_ASC

Tri croissant des champs.

SolrDocument::SORT_DESC

Tri décroissant des champs.

SolrDocument::SORT_FIELD_NAME

Tri les champs par leurs noms.

SolrDocument::SORT_FIELD_VALUE_COUNT

Tri les champs par le nombre de valeurs dans chaque champ.

SolrDocument::SORT_FIELD_BOOST_VALUE

Tri les champs par leurs valeurs de boost.

Sommaire

  • SolrDocument::addField — Ajoute un champ au document
  • SolrDocument::clear — Efface tous les champs du document
  • SolrDocument::__clone — Crée une copie de l'objet SolrDocument
  • SolrDocument::__construct — Constructeur
  • SolrDocument::current — Récupère le champ courant
  • SolrDocument::deleteField — Efface un champ du document
  • SolrDocument::__destruct — Destructeur
  • SolrDocument::fieldExists — Vérifie si un champ existe dans le document
  • SolrDocument::__get — Accède à un champ comme une propriété
  • SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)
  • SolrDocument::getChildDocumentsCount — Returns the number of child documents
  • SolrDocument::getField — Récupère un champ par son nom
  • SolrDocument::getFieldCount — Récupère le nombre de champs du document
  • SolrDocument::getFieldNames — Récupère un tableau de noms de champs du document
  • SolrDocument::getInputDocument — Retourne un objet SolrInputDocument équivalent à l'objet
  • SolrDocument::hasChildDocuments — Checks whether the document has any child documents
  • SolrDocument::__isset — Vérifie si un champ existe
  • SolrDocument::key — Récupère la clé courante
  • SolrDocument::merge — Fusionne la source à l'objet SolrDocument courant
  • SolrDocument::next — Déplace le pointeur interne sur le champ suivant
  • SolrDocument::offsetExists — Vérifie si un champ particulier existe
  • SolrDocument::offsetGet — Récupère un champ
  • SolrDocument::offsetSet — Ajoute un champ au document
  • SolrDocument::offsetUnset — Efface un champ
  • SolrDocument::reset — Alias de SolrDocument::clear()
  • SolrDocument::rewind — Réinitialise le pointeur interne au début
  • SolrDocument::serialize — Utilisé pour une linéarisation personnalisée
  • SolrDocument::__set — Ajoute un champ au document
  • SolrDocument::sort — Trie les champs du document
  • SolrDocument::toArray — Récupère un tableau représentant le document
  • SolrDocument::unserialize — Linéarisation personnalisée d'objets SolrDocument
  • SolrDocument::__unset — Efface un champ du document
  • SolrDocument::valid — Vérifie si la position courant interne est toujours valide


Ajoute un champ au document

  • « SolrDocument
  • SolrDocument::clear »
  • PHP Manual
  • SolrDocument
  • Ajoute un champ au document

SolrDocument::addField

(PECL solr >= 0.9.2)

SolrDocument::addField — Ajoute un champ au document

Description

public bool SolrDocument::addField ( string $fieldName , string $fieldValue )

Cette méthode ajoute un champ à l'instance SolrDocument.

Liste de paramètres

fieldName

Le nom du champ.

fieldValue

La valeur du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Efface tous les champs du document

  • « SolrDocument::addField
  • SolrDocument::__clone »
  • PHP Manual
  • SolrDocument
  • Efface tous les champs du document

SolrDocument::clear

(PECL solr >= 0.9.2)

SolrDocument::clear — Efface tous les champs du document

Description

public bool SolrDocument::clear ( void )

Réinitialise l'objet courant. Efface tous les champs et réinitialise le document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Crée une copie de l'objet SolrDocument

  • « SolrDocument::clear
  • SolrDocument::__construct »
  • PHP Manual
  • SolrDocument
  • Crée une copie de l'objet SolrDocument

SolrDocument::__clone

(PECL solr >= 0.9.2)

SolrDocument::__clone — Crée une copie de l'objet SolrDocument

Description

public void SolrDocument::__clone ( void )

Crée une copie de l'objet SolrDocument. À ne pas appeler directement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

None.


Constructeur

  • « SolrDocument::__clone
  • SolrDocument::current »
  • PHP Manual
  • SolrDocument
  • Constructeur

SolrDocument::__construct

(PECL solr >= 0.9.2)

SolrDocument::__construct — Constructeur

Description

public SolrDocument::__construct ( void )

Construit un nouvel objet SolrDocument

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le champ courant

  • « SolrDocument::__construct
  • SolrDocument::deleteField »
  • PHP Manual
  • SolrDocument
  • Récupère le champ courant

SolrDocument::current

(PECL solr >= 0.9.2)

SolrDocument::current — Récupère le champ courant

Description

public SolrDocumentField SolrDocument::current ( void )

Récupère le champ courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le champ courant.


Efface un champ du document

  • « SolrDocument::current
  • SolrDocument::__destruct »
  • PHP Manual
  • SolrDocument
  • Efface un champ du document

SolrDocument::deleteField

(PECL solr >= 0.9.2)

SolrDocument::deleteField — Efface un champ du document

Description

public bool SolrDocument::deleteField ( string $fieldName )

Efface un champ du document.

Liste de paramètres

fieldName

Nom du champ

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Destructeur

  • « SolrDocument::deleteField
  • SolrDocument::fieldExists »
  • PHP Manual
  • SolrDocument
  • Destructeur

SolrDocument::__destruct

(PECL solr >= 0.9.2)

SolrDocument::__destruct — Destructeur

Description

public void SolrDocument::__destruct ( void )

Destructeur pour SolrDocument.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Vérifie si un champ existe dans le document

  • « SolrDocument::__destruct
  • SolrDocument::__get »
  • PHP Manual
  • SolrDocument
  • Vérifie si un champ existe dans le document

SolrDocument::fieldExists

(PECL solr >= 0.9.2)

SolrDocument::fieldExists — Vérifie si un champ existe dans le document

Description

public bool SolrDocument::fieldExists ( string $fieldName )

Vérifie si le champ demandé est un champ valide du document.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Retourne TRUE si le champ est présent, ou FALSE sinon.


Accède à un champ comme une propriété

  • « SolrDocument::fieldExists
  • SolrDocument::getChildDocuments »
  • PHP Manual
  • SolrDocument
  • Accède à un champ comme une propriété

SolrDocument::__get

(PECL solr >= 0.9.2)

SolrDocument::__get — Accède à un champ comme une propriété

Description

public SolrDocumentField SolrDocument::__get ( string $fieldName )

Méthode magique pour accéder au champ comme à une propriété.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Retourne une instance SolrDocumentField.


Returns an array of child documents (SolrDocument)

  • « SolrDocument::__get
  • SolrDocument::getChildDocumentsCount »
  • PHP Manual
  • SolrDocument
  • Returns an array of child documents (SolrDocument)

SolrDocument::getChildDocuments

(PECL solr >= 2.3.0)

SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)

Description

public array SolrDocument::getChildDocuments ( void )

Returns an array of child documents (SolrDocument)

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrDocument::hasChildDocuments() - Checks whether the document has any child documents
  • SolrDocument::getChildDocumentsCount() - Returns the number of child documents


Returns the number of child documents

  • « SolrDocument::getChildDocuments
  • SolrDocument::getField »
  • PHP Manual
  • SolrDocument
  • Returns the number of child documents

SolrDocument::getChildDocumentsCount

(PECL solr >= 2.3.0)

SolrDocument::getChildDocumentsCount — Returns the number of child documents

Description

public integer SolrDocument::getChildDocumentsCount ( void )

Returns the number of child documents

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrDocument::hasChildDocuments() - Checks whether the document has any child documents
  • SolrDocument::getChildDocuments() - Returns an array of child documents (SolrDocument)


Récupère un champ par son nom

  • « SolrDocument::getChildDocumentsCount
  • SolrDocument::getFieldCount »
  • PHP Manual
  • SolrDocument
  • Récupère un champ par son nom

SolrDocument::getField

(PECL solr >= 0.9.2)

SolrDocument::getField — Récupère un champ par son nom

Description

public SolrDocumentField SolrDocument::getField ( string $fieldName )

Récupère un champ par son nom.

Liste de paramètres

fieldName

Nom du champ.

Valeurs de retour

Retourne un objet SolrDocumentField en cas de succès, ou FALSE si une erreur survient.


Récupère le nombre de champs du document

  • « SolrDocument::getField
  • SolrDocument::getFieldNames »
  • PHP Manual
  • SolrDocument
  • Récupère le nombre de champs du document

SolrDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrDocument::getFieldCount — Récupère le nombre de champs du document

Description

public int SolrDocument::getFieldCount ( void )

Récupère le nombre de champs du document. Les champs à valeur multiple sont comptés une seule fois.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, FALSE sinon.


Récupère un tableau de noms de champs du document

  • « SolrDocument::getFieldCount
  • SolrDocument::getInputDocument »
  • PHP Manual
  • SolrDocument
  • Récupère un tableau de noms de champs du document

SolrDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrDocument::getFieldNames — Récupère un tableau de noms de champs du document

Description

public array SolrDocument::getFieldNames ( void )

Récupère un tableau de noms de champs du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les noms des champs du document.


Retourne un objet SolrInputDocument équivalent à l'objet

  • « SolrDocument::getFieldNames
  • SolrDocument::hasChildDocuments »
  • PHP Manual
  • SolrDocument
  • Retourne un objet SolrInputDocument équivalent à l'objet

SolrDocument::getInputDocument

(PECL solr >= 0.9.2)

SolrDocument::getInputDocument — Retourne un objet SolrInputDocument équivalent à l'objet

Description

public SolrInputDocument SolrDocument::getInputDocument ( void )

Retourne un objet SolrInputDocument équivalent à l'objet. Utile si vous voulez re-soumettre/mettre à jour un document issue d'une requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet SolrInputDocument en cas de succès, et NULL si une erreur survient.


Checks whether the document has any child documents

  • « SolrDocument::getInputDocument
  • SolrDocument::__isset »
  • PHP Manual
  • SolrDocument
  • Checks whether the document has any child documents

SolrDocument::hasChildDocuments

(PECL solr >= 2.3.0)

SolrDocument::hasChildDocuments — Checks whether the document has any child documents

Description

public bool SolrDocument::hasChildDocuments ( void )

Checks whether the document has any child documents

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrDocument::getChildDocuments() - Returns an array of child documents (SolrDocument)
  • SolrDocument::getChildDocumentsCount() - Returns the number of child documents


Vérifie si un champ existe

  • « SolrDocument::hasChildDocuments
  • SolrDocument::key »
  • PHP Manual
  • SolrDocument
  • Vérifie si un champ existe

SolrDocument::__isset

(PECL solr >= 0.9.2)

SolrDocument::__isset — Vérifie si un champ existe

Description

public bool SolrDocument::__isset ( string $fieldName )

Vérifie si un champ existe.

Liste de paramètres

fieldName

Nom du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Récupère la clé courante

  • « SolrDocument::__isset
  • SolrDocument::merge »
  • PHP Manual
  • SolrDocument
  • Récupère la clé courante

SolrDocument::key

(PECL solr >= 0.9.2)

SolrDocument::key — Récupère la clé courante

Description

public string SolrDocument::key ( void )

Récupère la clé courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la clé courante.


Fusionne la source à l'objet SolrDocument courant

  • « SolrDocument::key
  • SolrDocument::next »
  • PHP Manual
  • SolrDocument
  • Fusionne la source à l'objet SolrDocument courant

SolrDocument::merge

(PECL solr >= 0.9.2)

SolrDocument::merge — Fusionne la source à l'objet SolrDocument courant

Description

public bool SolrDocument::merge ( SolrDocument $sourceDoc [, bool $overwrite = true ] )

Fusionne la source à l'objet SolrDocument courant.

Liste de paramètres

sourceDoc

La source du document.

overwrite

Si vaut TRUE alors les champs dont les noms sont identiques dans le document destinataire seront écrasés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Déplace le pointeur interne sur le champ suivant

  • « SolrDocument::merge
  • SolrDocument::offsetExists »
  • PHP Manual
  • SolrDocument
  • Déplace le pointeur interne sur le champ suivant

SolrDocument::next

(PECL solr >= 0.9.2)

SolrDocument::next — Déplace le pointeur interne sur le champ suivant

Description

public void SolrDocument::next ( void )

Déplace le pointeur interne sur le champ suivant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur retournée.


Vérifie si un champ particulier existe

  • « SolrDocument::next
  • SolrDocument::offsetGet »
  • PHP Manual
  • SolrDocument
  • Vérifie si un champ particulier existe

SolrDocument::offsetExists

(PECL solr >= 0.9.2)

SolrDocument::offsetExists — Vérifie si un champ particulier existe

Description

public bool SolrDocument::offsetExists ( string $fieldName )

Vérifie si un champ particulier existe. Méthode utilisée lorsque l'objet est traité comme un tableau.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Récupère un champ

  • « SolrDocument::offsetExists
  • SolrDocument::offsetSet »
  • PHP Manual
  • SolrDocument
  • Récupère un champ

SolrDocument::offsetGet

(PECL solr >= 0.9.2)

SolrDocument::offsetGet — Récupère un champ

Description

public SolrDocumentField SolrDocument::offsetGet ( string $fieldName )

Utilisé pour récupérer un champ lorsque l'objet est traité comme un tableau.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Retourne un objet SolrDocumentField.


Ajoute un champ au document

  • « SolrDocument::offsetGet
  • SolrDocument::offsetUnset »
  • PHP Manual
  • SolrDocument
  • Ajoute un champ au document

SolrDocument::offsetSet

(PECL solr >= 0.9.2)

SolrDocument::offsetSet — Ajoute un champ au document

Description

public void SolrDocument::offsetSet ( string $fieldName , string $fieldValue )

Utilisé lorsque l'objet est traité comme un tableau, pour ajouter un champ au document.

Liste de paramètres

fieldName

Le nom du champ.

fieldValue

Le valeur du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Efface un champ

  • « SolrDocument::offsetSet
  • SolrDocument::reset »
  • PHP Manual
  • SolrDocument
  • Efface un champ

SolrDocument::offsetUnset

(PECL solr >= 0.9.2)

SolrDocument::offsetUnset — Efface un champ

Description

public void SolrDocument::offsetUnset ( string $fieldName )

Efface un champ du document.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Aucune valeur retournée.


Alias de SolrDocument::clear()

  • « SolrDocument::offsetUnset
  • SolrDocument::rewind »
  • PHP Manual
  • SolrDocument
  • Alias de SolrDocument::clear()

SolrDocument::reset

(PECL solr >= 0.9.2)

SolrDocument::reset — Alias de SolrDocument::clear()

Description

public bool SolrDocument::reset ( void )

Alias de SolrDocument::clear()

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Réinitialise le pointeur interne au début

  • « SolrDocument::reset
  • SolrDocument::serialize »
  • PHP Manual
  • SolrDocument
  • Réinitialise le pointeur interne au début

SolrDocument::rewind

(PECL solr >= 0.9.2)

SolrDocument::rewind — Réinitialise le pointeur interne au début

Description

public void SolrDocument::rewind ( void )

Réinitialise le pointeur interne au début.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur retournée.


Utilisé pour une linéarisation personnalisée

  • « SolrDocument::rewind
  • SolrDocument::__set »
  • PHP Manual
  • SolrDocument
  • Utilisé pour une linéarisation personnalisée

SolrDocument::serialize

(PECL solr >= 0.9.2)

SolrDocument::serialize — Utilisé pour une linéarisation personnalisée

Description

public string SolrDocument::serialize ( void )

Utilisé pour une linéarisation personnalisée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères représentant le document Solr linéarisé.


Ajoute un champ au document

  • « SolrDocument::serialize
  • SolrDocument::sort »
  • PHP Manual
  • SolrDocument
  • Ajoute un champ au document

SolrDocument::__set

(PECL solr >= 0.9.2)

SolrDocument::__set — Ajoute un champ au document

Description

public bool SolrDocument::__set ( string $fieldName , string $fieldValue )

Ajoute un champ au document. Utilisé pour définir les champs comme nouvelles propriétés.

Liste de paramètres

fieldName

Nom du champ.

fieldValue

Valeur du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Trie les champs du document

  • « SolrDocument::__set
  • SolrDocument::toArray »
  • PHP Manual
  • SolrDocument
  • Trie les champs du document

SolrDocument::sort

(PECL solr >= 0.9.2)

SolrDocument::sort — Trie les champs du document

Description

public bool SolrDocument::sort ( int $sortOrderBy [, int $sortDirection = SolrDocument::SORT_ASC ] )

Les champs sont triés suivant les critères spécifiés et la direction de tri

   Les champs peuvent être triés par leurs valeurs, leurs noms ou leurs nombres de valeurs.

   Le paramètre sortOrderBy peut être une constante parmi :

   * SolrDocument::SORT_FIELD_NAME
   * SolrDocument::SORT_FIELD_BOOST_VALUE
   * SolrDocument::SORT_FIELD_VALUE_COUNT

   sortDirection peut être une constante parmi :

   * SolrDocument::SORT_DEFAULT
   * SolrDocument::SORT_ASC
   * SolrDocument::SORT_DESC

   La direction par défaut est ASC.

Liste de paramètres

sortOrderBy

Le critère de tri.

sortDirection

La direction du tri.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Récupère un tableau représentant le document

  • « SolrDocument::sort
  • SolrDocument::unserialize »
  • PHP Manual
  • SolrDocument
  • Récupère un tableau représentant le document

SolrDocument::toArray

(PECL solr >= 0.9.2)

SolrDocument::toArray — Récupère un tableau représentant le document

Description

public array SolrDocument::toArray ( void )

Récupère un tableau représentant le document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau représentant le document.

Exemples

Exemple #1 Exemple avec SolrDocument::toArray()

<?php

$doc = new SolrDocument();

$doc->addField('id', 1123);

$doc->features = "PHP Client Side";
$doc->features = "Fast development cycles";

$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat   = 'Information Technology';

print_r($doc->toArray());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [document_boost] => 0
    [field_count] => 3
    [fields] => Array
        (
            [0] => SolrDocumentField Object
                (
                    [name] => id
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => 1123
                        )

                )

            [1] => SolrDocumentField Object
                (
                    [name] => features
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => PHP Client Side
                            [1] => Fast development cycles
                        )

                )

            [2] => SolrDocumentField Object
                (
                    [name] => cat
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => Software
                            [1] => Custom Search
                            [2] => Information Technology
                        )

                )

        )

)


Linéarisation personnalisée d'objets SolrDocument

  • « SolrDocument::toArray
  • SolrDocument::__unset »
  • PHP Manual
  • SolrDocument
  • Linéarisation personnalisée d'objets SolrDocument

SolrDocument::unserialize

(PECL solr >= 0.9.2)

SolrDocument::unserialize — Linéarisation personnalisée d'objets SolrDocument

Description

public void SolrDocument::unserialize ( string $serialized )

Linéarisation personnalisée d'objets SolrDocument.

Liste de paramètres

serialized

Une représentation XML du document.

Valeurs de retour

Aucune.


Efface un champ du document

  • « SolrDocument::unserialize
  • SolrDocument::valid »
  • PHP Manual
  • SolrDocument
  • Efface un champ du document

SolrDocument::__unset

(PECL solr >= 0.9.2)

SolrDocument::__unset — Efface un champ du document

Description

public bool SolrDocument::__unset ( string $fieldName )

Efface un champ du document lorsqu'il est accessible sous la forme d'une propriété de l'objet.

Liste de paramètres

fieldName

Le nom du champ.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Vérifie si la position courant interne est toujours valide

  • « SolrDocument::__unset
  • SolrDocumentField »
  • PHP Manual
  • SolrDocument
  • Vérifie si la position courant interne est toujours valide

SolrDocument::valid

(PECL solr >= 0.9.2)

SolrDocument::valid — Vérifie si la position courant interne est toujours valide

Description

public bool SolrDocument::valid ( void )

Vérifie si la position courant interne est toujours valide. Utilisée lors d'opérations foreach.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si la position courante n'est plus valide.


La classe SolrDocumentField

(PECL solr >= 0.9.2)

Introduction

Représente un champ d'un document Solr. Toutes les propriétés sont en lecture seule.

Synopsis de la classe

final SolrDocumentField {
/* Propriétés */
readonly public string $name ;
readonly public float $boost ;
readonly public array $values ;
/* Méthodes */
public __construct ( void )
public void __destruct ( void )
}

Propriétés

name

Le nom du champ.

boost

La valeur de boost du champ.

values

Un tableau de valeurs pour ce champ.

Sommaire

  • SolrDocumentField::__construct — Constructeur
  • SolrDocumentField::__destruct — Destructeur


Constructeur

  • « SolrDocumentField
  • SolrDocumentField::__destruct »
  • PHP Manual
  • SolrDocumentField
  • Constructeur

SolrDocumentField::__construct

(PECL solr >= 0.9.2)

SolrDocumentField::__construct — Constructeur

Description

public SolrDocumentField::__construct ( void )

Constructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune.


Destructeur

  • « SolrDocumentField::__construct
  • SolrObject »
  • PHP Manual
  • SolrDocumentField
  • Destructeur

SolrDocumentField::__destruct

(PECL solr >= 0.9.2)

SolrDocumentField::__destruct — Destructeur

Description

public void SolrDocumentField::__destruct ( void )

Destructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien.


La classe SolrObject

(PECL solr >= 0.9.2)

Introduction

Les propriétés de cet objet peuvent également être accédées en utilisant une syntaxe de type tableau. Elles sont toutes en lecture seule.

Synopsis de la classe

final SolrObject implements ArrayAccess {
/* Méthodes */
public __construct ( void )
public void __destruct ( void )
public array getPropertyNames ( void )
public bool offsetExists ( string $property_name )
public mixed offsetGet ( string $property_name )
public void offsetSet ( string $property_name , string $property_value )
public void offsetUnset ( string $property_name )
}

Sommaire

  • SolrObject::__construct — Crée un objet Solr
  • SolrObject::__destruct — Destructeur
  • SolrObject::getPropertyNames — Récupère un tableau contenant les noms de toutes les propriétés
  • SolrObject::offsetExists — Vérifie si une propriété existe
  • SolrObject::offsetGet — Récupère une propriété
  • SolrObject::offsetSet — Définit la valeur d'une propriété
  • SolrObject::offsetUnset — Supprime la valeur de la propriété


Crée un objet Solr

  • « SolrObject
  • SolrObject::__destruct »
  • PHP Manual
  • SolrObject
  • Crée un objet Solr

SolrObject::__construct

(PECL solr >= 0.9.2)

SolrObject::__construct — Crée un objet Solr

Description

public SolrObject::__construct ( void )

Crée un objet Solr.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien

Exemples

Exemple #1 Exemple avec SolrObject::__construct()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


Destructeur

  • « SolrObject::__construct
  • SolrObject::getPropertyNames »
  • PHP Manual
  • SolrObject
  • Destructeur

SolrObject::__destruct

(PECL solr >= 0.9.2)

SolrObject::__destruct — Destructeur

Description

public void SolrObject::__destruct ( void )

Le destructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien.


Récupère un tableau contenant les noms de toutes les propriétés

  • « SolrObject::__destruct
  • SolrObject::offsetExists »
  • PHP Manual
  • SolrObject
  • Récupère un tableau contenant les noms de toutes les propriétés

SolrObject::getPropertyNames

(PECL solr >= 0.9.2)

SolrObject::getPropertyNames — Récupère un tableau contenant les noms de toutes les propriétés

Description

public array SolrObject::getPropertyNames ( void )

Récupère un tableau contenant les noms de toutes les propriétés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau.


Vérifie si une propriété existe

  • « SolrObject::getPropertyNames
  • SolrObject::offsetGet »
  • PHP Manual
  • SolrObject
  • Vérifie si une propriété existe

SolrObject::offsetExists

(PECL solr >= 0.9.2)

SolrObject::offsetExists — Vérifie si une propriété existe

Description

public bool SolrObject::offsetExists ( string $property_name )

Vérifie si une propriété existe. Cette méthode est utilisée lorsque l'objet est traité comme un tableau.

Liste de paramètres

property_name

Le nom de la propriété.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Récupère une propriété

  • « SolrObject::offsetExists
  • SolrObject::offsetSet »
  • PHP Manual
  • SolrObject
  • Récupère une propriété

SolrObject::offsetGet

(PECL solr >= 0.9.2)

SolrObject::offsetGet — Récupère une propriété

Description

public mixed SolrObject::offsetGet ( string $property_name )

Récupère la valeur d'une propriété. Cette méthode est utilisée lorsque l'objet est traité comme un tableau.

Liste de paramètres

property_name

Le nom de la propriété.

Valeurs de retour

Retourne la valeur de la propriété.


Définit la valeur d'une propriété

  • « SolrObject::offsetGet
  • SolrObject::offsetUnset »
  • PHP Manual
  • SolrObject
  • Définit la valeur d'une propriété

SolrObject::offsetSet

(PECL solr >= 0.9.2)

SolrObject::offsetSet — Définit la valeur d'une propriété

Description

public void SolrObject::offsetSet ( string $property_name , string $property_value )

Définit la valeur de la propriété. Cette méthode est utilisée lorsque l'objet est traité comme un tableau. Cet objet est en lecture seule. Vous ne devriez jamais utiliser cette méthode.

Liste de paramètres

property_name

Le nom de la propriété.

property_value

La nouvelle valeur.

Valeurs de retour

Rien.


Supprime la valeur de la propriété

  • « SolrObject::offsetSet
  • SolrClient »
  • PHP Manual
  • SolrObject
  • Supprime la valeur de la propriété

SolrObject::offsetUnset

(PECL solr >= 0.9.2)

SolrObject::offsetUnset — Supprime la valeur de la propriété

Description

public void SolrObject::offsetUnset ( string $property_name )

Supprime la valeur de la propriété. Cette méthode est utilisée lorsque l'objet est traité comme un tableau. Cet objet est en lecture seule. Vous ne devriez jamais utiliser cette méthode.

Liste de paramètres

property_name

Le nom de la propriété.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SolrObject::offsetUnset()

<?php
/* ... */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi

  • Classname::Method()


La classe SolrClient

(PECL solr >= 0.9.2)

Introduction

Utilisée pour envoyer des requêtes au serveur Solr. Actuellement, le clonage et la linéarisation des instances SolrClient ne sont pas supportés.

Synopsis de la classe

final SolrClient {
/* Constantes */
const integer SEARCH_SERVLET_TYPE = 1 ;
const integer UPDATE_SERVLET_TYPE = 2 ;
const integer THREADS_SERVLET_TYPE = 4 ;
const integer PING_SERVLET_TYPE = 8 ;
const integer TERMS_SERVLET_TYPE = 16 ;
const integer SYSTEM_SERVLET_TYPE = 32 ;
const string DEFAULT_SEARCH_SERVLET = select ;
const string DEFAULT_UPDATE_SERVLET = update ;
const string DEFAULT_THREADS_SERVLET = admin/threads ;
const string DEFAULT_PING_SERVLET = admin/ping ;
const string DEFAULT_TERMS_SERVLET = terms ;
const string DEFAULT_SYSTEM_SERVLET = admin/system ;
/* Méthodes */
public SolrUpdateResponse addDocument ( SolrInputDocument $doc [, bool $overwrite = true [, int $commitWithin = 0 ]] )
public void addDocuments ( array $docs [, bool $overwrite = true [, int $commitWithin = 0 ]] )
public SolrUpdateResponse commit ([ bool $softCommit = false [, bool $waitSearcher = true [, bool $expungeDeletes = false ]]] )
public __construct ( array $clientOptions )
public SolrUpdateResponse deleteById ( string $id )
public SolrUpdateResponse deleteByIds ( array $ids )
public SolrUpdateResponse deleteByQueries ( array $queries )
public SolrUpdateResponse deleteByQuery ( string $query )
public void __destruct ( void )
public SolrQueryResponse getById ( string $id )
public SolrQueryResponse getByIds ( array $ids )
public string getDebug ( void )
public array getOptions ( void )
public SolrUpdateResponse optimize ([ int $maxSegments = 1 [, bool $softCommit = true [, bool $waitSearcher = true ]]] )
public SolrPingResponse ping ( void )
public SolrQueryResponse query ( SolrParams $query )
public SolrUpdateResponse request ( string $raw_request )
public SolrUpdateResponse rollback ( void )
public void setResponseWriter ( string $responseWriter )
public bool setServlet ( int $type , string $value )
public void system ( void )
public void threads ( void )
}

Constantes pré-définies

SolrClient::SEARCH_SERVLET_TYPE

Utilisé lors de la mise à jour du servlet de recherche.

SolrClient::UPDATE_SERVLET_TYPE

Utilisé lors de la mise à jour du servlet de mise à jour.

SolrClient::THREADS_SERVLET_TYPE

Utilisé lors de la mise à jour du servlet de threads.

SolrClient::PING_SERVLET_TYPE

Utilisé lors de la mise à jour du servlet de ping.

SolrClient::TERMS_SERVLET_TYPE

Utilisé lors de la mise à jour du servlet de termes.

SolrClient::SYSTEM_SERVLET_TYPE

Utilisé lors de la récupération des informations systèmes depuis le servlet système.

SolrClient::DEFAULT_SEARCH_SERVLET

Ceci est la valeur initiale pour le servlet de recherche.

SolrClient::DEFAULT_UPDATE_SERVLET

Ceci est la valeur initiale pour le servlet de mise à jour.

SolrClient::DEFAULT_THREADS_SERVLET

Ceci est la valeur initiale pour le servlet de threads.

SolrClient::DEFAULT_PING_SERVLET

Ceci est la valeur initiale pour le servlet de ping.

SolrClient::DEFAULT_TERMS_SERVLET

Ceci est la valeur initiale pour le servlet de termes utilisé pour le TermsComponent.

SolrClient::DEFAULT_SYSTEM_SERVLET

Ceci est la valeur initiale pour le servlet système utilisé pour obtenir les informations du serveur Solr.

Sommaire

  • SolrClient::addDocument — Ajoute un document à l'index
  • SolrClient::addDocuments — Ajoute une collection d'instances SolrInputDocument à l'index
  • SolrClient::commit — Commit tous les ajouts/modifications effectués sur l'index
  • SolrClient::__construct — Constructeur de l'objet SolrClient
  • SolrClient::deleteById — Effacement par Id
  • SolrClient::deleteByIds — Effacement par Ids
  • SolrClient::deleteByQueries — Efface tous les documents correspondant à des requêtes
  • SolrClient::deleteByQuery — Efface tous les documents correspondant à une requête
  • SolrClient::__destruct — Destructeur pour SolrClient
  • SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG).
  • SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).
  • SolrClient::getDebug — Récupère les données de débogage de la dernière tentative de connexion
  • SolrClient::getOptions — Récupère les options clientes définies en interne
  • SolrClient::optimize — Défragmente l'index
  • SolrClient::ping — Vérifie si le serveur Solr est disponible
  • SolrClient::query — Envoi une requête au serveur
  • SolrClient::request — Envoi une requête brute de mise à jour
  • SolrClient::rollback — Annule les ajouts/effacements effectués sur l'index depuis le dernier commit
  • SolrClient::setResponseWriter — Définit le gestionnaire à utiliser pour préparer la réponse depuis Solr
  • SolrClient::setServlet — Modifie le type d'un servlet en une nouvelle valeur
  • SolrClient::system — Retrieve Solr Server information
  • SolrClient::threads — Vérifie le statut des threads


Ajoute un document à l'index

  • « SolrClient
  • SolrClient::addDocuments »
  • PHP Manual
  • SolrClient
  • Ajoute un document à l'index

SolrClient::addDocument

(PECL solr >= 0.9.2)

SolrClient::addDocument — Ajoute un document à l'index

Description

public SolrUpdateResponse SolrClient::addDocument ( SolrInputDocument $doc [, bool $overwrite = true [, int $commitWithin = 0 ]] )

Cette méthode ajoute un document à l'index.

Liste de paramètres

doc

L'instance SolrInputDocument.

overwrite

Si l'on doit ou non écraser un document existant. Si vaut FALSE, il sera dupliqué (plusieurs documents avec le même ID).

Avertissement

PECL Solr < 2.0 $allowDups était utilisé à la place de $overwrite ; il s'agit de la même fonctionalité, mais avec une valeur opposée.

$allowDups = false est identique à $overwrite = true

commitWithin

Nombre de millisecondes après lequel le document doit être valié. Disponible depuis Solr 1.4. Par défaut, vaut 0 (désactivé).

Lorsque cette valeur est spécifiée, elle laisse le contrôle à Solr sur le moment où la validation doit être réalisée, permettant ainsi d'optimiser le nombre de validations, et donc, de mieux contrôler les eigences de latence des mises à jour ; Solr va automatiquement réaliser une validation lorsque le plus vieille ajout du buffer est atteint.

Valeurs de retour

Retourne un objet SolrUpdateResponse et lance une exception si une erreur survient.

Erreurs / Exceptions

Lance une exception SolrClientException si le client a échoué ou s'il y a eu un problème avec la connexion.

Lance une exception SolrServerException si le serveur Solr a échoué dans l'exécution de la requête.

Exemples

Exemple #1 Exemple avec SolrClient::addDocument() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

// vous devriez valider ces modifications si vous n'utilisez pas $commitWithin
$client->commit();

print_r($updateResponse->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

)

Exemple #2 Exemple 2 avec SolrClient::addDocument()

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

// Inutile d'appeler commit() car $commitWithin est passé ; ainsi,
// le serveur Solr va valider automatiquement dans les 10 secondes

$updateResponse = $client->addDocument($doc, false, 10000);

print_r($updateResponse->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

)

Voir aussi

  • SolrClient::addDocuments() - Ajoute une collection d'instances SolrInputDocument à l'index
  • SolrClient::commit() - Commit tous les ajouts/modifications effectués sur l'index


Ajoute une collection d'instances SolrInputDocument à l'index

  • « SolrClient::addDocument
  • SolrClient::commit »
  • PHP Manual
  • SolrClient
  • Ajoute une collection d'instances SolrInputDocument à l'index

SolrClient::addDocuments

(PECL solr >= 0.9.2)

SolrClient::addDocuments — Ajoute une collection d'instances SolrInputDocument à l'index

Description

public void SolrClient::addDocuments ( array $docs [, bool $overwrite = true [, int $commitWithin = 0 ]] )

Ajoute une collection de documents à l'index.

Liste de paramètres

docs

Un tableau contenant la collection d'instances SolrInputDocument. Ce tableau doit être une variable réelle.

overwrite

Si l'on doit écraser les documents ou non. Si vaut FALSE, les documents seront dupliqués (plusieurs documents avec le même ID).

Avertissement

PECL Solr < 2.0 $allowDups était utilisé au lieu de $overwrite, qui remplissait exactement la même fonctionalité, mais à l'opposé.

$allowDups = false est identique à $overwrite = true

commitWithin

Nombre de millisecondes d'attente avant de valider automatiquement ce document. Disponible depuis Solr 1.4. Par défaut, vaut 0, ce qui signifie que ce mécanisme est désactivé.

Lorsque cette valeur est spécifiée, le contrôle du moment de la validation est laissé à Solr, cherchant à optimiser le nombre de validations à son minimum, tout en gardant une exigence forte concernant la latence des mises à jour, et Solr fera automatiquement une validation lorsque le plus vielle ajout du buffer est atteint.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, et lance une exception si une erreur survient.

Erreurs / Exceptions

Lance une exception SolrClientException si le client a échoué ou s'il y a eu un problème avec la connexion.

Lance une exception SolrServerException si le serveur Solr a échoué dans l'exécution de la requête.

Exemples

Exemple #1 Exemple avec SolrClient::addDocuments()

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$doc2 = clone $doc;

$doc2->deleteField('id');
$doc2->addField('id', 334456);

$docs = array($doc, $doc2);

$updateResponse = $client->addDocuments($docs);

// Aucune modification ne sera écrite sur le disque tant que l'argument $commitWithin ne soit passé, ou la méthode SolrClient::commit appelée.

print_r($updateResponse->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

)

Voir aussi

  • SolrClient::addDocument() - Ajoute un document à l'index
  • SolrClient::commit() - Commit tous les ajouts/modifications effectués sur l'index


Commit tous les ajouts/modifications effectués sur l'index

  • « SolrClient::addDocuments
  • SolrClient::__construct »
  • PHP Manual
  • SolrClient
  • Commit tous les ajouts/modifications effectués sur l'index

SolrClient::commit

(PECL solr >= 0.9.2)

SolrClient::commit — Commit tous les ajouts/modifications effectués sur l'index

Description

public SolrUpdateResponse SolrClient::commit ([ bool $softCommit = false [, bool $waitSearcher = true [, bool $expungeDeletes = false ]]] )

Commit tous les ajouts/modifications effectués sur l'index.

Liste de paramètres

softCommit

Va rafraîchir la vue de l'index d'une façon plus performante, mais sans aucune garantie d'être sur le disque. (Solr4.0+)

Un commit "soft" est plus rapide sachant qu'il ne modifie que l'index, et ne synchronise pas les fichiers d'index, ni n'écrit de nouveaux descripteurs d'index. Si le JVM crash ou s'il y a un perte d'énergie, les modificiations qui sont survenues après le dernier commit "hard" seront perdues. Les collections de recherche, qui ont des besoins proches du temps réel (qui nécessitent donc que les modifications soient rapidement visibles) doivent avoir des commit soft régulièrement, et moins de commit hard.

waitSearcher

Attend jusqu'à ce qu'un nouvel objet de recherche soit ouvert et enregistré comme objet de recherche principal, rendant visible les modifications.

expungeDeletes

Supprime définitivement les effacements. (Solr1.4+)

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, et lance une exception si une erreur survient.

Erreurs / Exceptions

Lance une exception SolrClientException si le client a échoué ou s'il y a eu un problème avec la connexion.

Lance une exception SolrServerException si le serveur Solr a échoué dans l'exécution de la requête.

Historique

Version | Description
1.1.0, 2.0.0 | Suppression de l'argument $maxSegments
2.0.0b | Modification de l'API : SolrClient::commit ([ int $maxSegments = 0 [, bool $softCommit = false [, bool $waitSearcher = true[, bool $expungeDeletes = false ]]] )
0.9.2 | Signature : SolrClient::commit ([ int $maxSegments = 1 [, bool $waitFlush = true [, bool $waitSearcher = true ]]] ). $waitFlush : bloc tant que les modifications de l'index ne sont pas écrites sur le disque.

Notes

Avertissement

PECL Solr >= 2.0 ne supporte que le serveur Solr >= 4.0

Voir aussi

  • SolrClient::optimize() - Défragmente l'index
  • SolrClient::rollback() - Annule les ajouts/effacements effectués sur l'index depuis le dernier commit


Constructeur de l'objet SolrClient

  • « SolrClient::commit
  • SolrClient::deleteById »
  • PHP Manual
  • SolrClient
  • Constructeur de l'objet SolrClient

SolrClient::__construct

(PECL solr >= 0.9.2)

SolrClient::__construct — Constructeur de l'objet SolrClient

Description

public SolrClient::__construct ( array $clientOptions )

Constructeur de l'objet SolrClient.

Liste de paramètres

clientOptions

Tableau contenant les clés suivantes :

- secure          (Valeur booléen indiquant si l'on doit se connecter en mode sécurisé)
 - hostname        (Le nom d'hôte du serveur Solr)
 - port            (Le numéro du port)
 - path            (Le chemin vers solr)
 - wt              (Le nom du gestionnaire d'écriture i.e. xml, json)
 - login           (Le nom d'utilisateur à utiliser pour l'authentification HTTP Authentication, si nécessaire)
 - password        (Le mot de passe pour l'authentification HTTP)
 - proxy_host      (Le nom d'hôte du serveur de proxy, si nécessaire)
 - proxy_port      (Le port du proxy)
 - proxy_login     (Le nom d'utilisateur pour le proxy)
 - proxy_password  (Le mot de passe pour le proxy)
 - timeout         (Nombre de secondes maximales autorisées pour les opérations de transfert de données HTTP. Par défaut, 30 secondes)
 - ssl_cert        (Nom du fichier PEM contenant la clé privée et le certificat privé (concaténé dans cet ordre) )
 - ssl_key         (Nom du fichier PEM contenant la clé privée seulement)
 - ssl_keypassword (Mot de passe pour la clé privée)
 - ssl_cainfo      (Nom du ou des certificats CA utilisés pour la vérification)
 - ssl_capath      (Nom du dossier contenant les certificats CA utilisés pour la vérification )

 Notez que si le fichier ssl_cert ne contient que le certificat privé, vous devez spécifier un fichier ssl_key.

 L'option ssl_keypassword n'est nécessaire que si l'option ssl_cert ou l'option ssl_key options est définie.

Erreurs / Exceptions

Lance une exception SolrIllegalArgumentException en cas d'échec.

Exemples

Exemple #1 Exemple avec SolrClient::__construct()

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_PATH_TO_SOLR,
    'wt'       => 'xml',
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  • SolrClient::getOptions() - Récupère les options clientes définies en interne


Effacement par Id

  • « SolrClient::__construct
  • SolrClient::deleteByIds »
  • PHP Manual
  • SolrClient
  • Effacement par Id

SolrClient::deleteById

(PECL solr >= 0.9.2)

SolrClient::deleteById — Effacement par Id

Description

public SolrUpdateResponse SolrClient::deleteById ( string $id )

Efface un document en spécifiant son ID. L'ID est la valeur du champ uniqueKey déclaré dans le schéma.

Liste de paramètres

id

La valeur du champ uniqueKey déclaré dans le schéma.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, et lance une exception en cas d'échec.

Erreurs / Exceptions

Lance une exception SolrClientException si le client a échoué ou s'il y a eu un problème avec la connexion.

Lance une exception SolrServerException si le serveur Solr a échoué dans l'exécution de la requête.

Voir aussi

  • SolrClient::deleteByIds() - Effacement par Ids
  • SolrClient::deleteByQuery() - Efface tous les documents correspondant à une requête
  • SolrClient::deleteByQueries() - Efface tous les documents correspondant à des requêtes


Effacement par Ids

  • « SolrClient::deleteById
  • SolrClient::deleteByQueries »
  • PHP Manual
  • SolrClient
  • Effacement par Ids

SolrClient::deleteByIds

(PECL solr >= 0.9.2)

SolrClient::deleteByIds — Effacement par Ids

Description

public SolrUpdateResponse SolrClient::deleteByIds ( array $ids )

Efface une collection de documents représentée par le jeu d'Ids spécifié.

Liste de paramètres

ids

Un tableau d'Ids, représentant le champ uniqueKey déclaré dans le schéma de chaque document.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, et lance une exception en cas d'échec.

Erreurs / Exceptions

Lance une exception SolrClientException si le client a échoué ou s'il y a eu un problème avec la connexion.

Lance une exception SolrServerException si le serveur Solr a échoué dans l'exécution de la requête.

Voir aussi

  • SolrClient::deleteById() - Effacement par Id
  • SolrClient::deleteByQuery() - Efface tous les documents correspondant à une requête
  • SolrClient::deleteByQueries() - Efface tous les documents correspondant à des requêtes


Efface tous les documents correspondant à des requêtes

  • « SolrClient::deleteByIds
  • SolrClient::deleteByQuery »
  • PHP Manual
  • SolrClient
  • Efface tous les documents correspondant à des requêtes

SolrClient::deleteByQueries

(PECL solr >= 0.9.2)

SolrClient::deleteByQueries — Efface tous les documents correspondant à des requêtes

Description

public SolrUpdateResponse SolrClient::deleteByQueries ( array $queries )

Efface tous les documents correspondant à des requêtes.

Liste de paramètres

queries

Un tableau de requêtes.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, et lance une exception SolrClientException en cas d'échec.

Erreurs / Exceptions

Lance une exception SolrClientException si le client a échoué, ou s'il y a eu un problème avec la connexion.

Lance une exception SolrServerException si le serveur Solr a échoué dans l'exécution de la requête.

Voir aussi

  • SolrClient::deleteById() - Effacement par Id
  • SolrClient::deleteByIds() - Effacement par Ids
  • SolrClient::deleteByQuery() - Efface tous les documents correspondant à une requête


Efface tous les documents correspondant à une requête

  • « SolrClient::deleteByQueries
  • SolrClient::__destruct »
  • PHP Manual
  • SolrClient
  • Efface tous les documents correspondant à une requête

SolrClient::deleteByQuery

(PECL solr >= 0.9.2)

SolrClient::deleteByQuery — Efface tous les documents correspondant à une requête

Description

public SolrUpdateResponse SolrClient::deleteByQuery ( string $query )

Efface tous les documents correspondant à la requête fournie.

Liste de paramètres

query

La requête.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, et lance une exception en cas d'échec.

Erreurs / Exceptions

Lance une exception SolrClientException si le client a échoué, ou s'il y a eu un problème avec la connexion.

Lance une exception SolrServerException si le serveur Solr a échoué dans l'exécution de la requête.

Exemples

Exemple #1 Exemple avec SolrQuery::deleteByQuery()

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

//Ceci va effacer la totalité de l'index
$client->deleteByQuery("*:*");
$client->commit();

?>

Voir aussi

  • SolrClient::deleteById() - Effacement par Id
  • SolrClient::deleteByIds() - Effacement par Ids
  • SolrClient::deleteByQueries() - Efface tous les documents correspondant à des requêtes


Destructeur pour SolrClient

  • « SolrClient::deleteByQuery
  • SolrClient::getById »
  • PHP Manual
  • SolrClient
  • Destructeur pour SolrClient

SolrClient::__destruct

(PECL solr >= 0.9.2)

SolrClient::__destruct — Destructeur pour SolrClient

Description

public void SolrClient::__destruct ( void )

Destructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Destructeur pour SolrClient.

Voir aussi

  • SolrClient::__construct() - Constructeur de l'objet SolrClient


Get Document By Id. Utilizes Solr Realtime Get (RTG).

  • « SolrClient::__destruct
  • SolrClient::getByIds »
  • PHP Manual
  • SolrClient
  • Get Document By Id. Utilizes Solr Realtime Get (RTG).

SolrClient::getById

(PECL solr >= 2.2.0)

SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG).

Description

public SolrQueryResponse SolrClient::getById ( string $id )

Get Document By Id. Utilizes Solr Realtime Get (RTG).

Liste de paramètres

id

Document ID

Valeurs de retour

SolrQueryResponse

Exemples

Exemple #1 SolrClient::getById() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getById('GB18030TEST');
print_r($response->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [doc] => SolrObject Object
        (
            [id] => GB18030TEST
            [name] => Array
                (
                    [0] => Test with some GB18030 encoded characters
                )

            [features] => Array
                (
                    [0] => No accents here
                    [1] => ??????
                    [2] => This is a feature (translated)
                    [3] => ?????????
                    [4] => This document is very shiny (translated)
                )

            [price] => Array
                (
                    [0] => 0
                )

            [inStock] => Array
                (
                    [0] => 1
                )

            [_version_] => 1510294336239042560
        )

)

Voir aussi

  • SolrClient::getByIds() - Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).


Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).

  • « SolrClient::getById
  • SolrClient::getDebug »
  • PHP Manual
  • SolrClient
  • Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).

SolrClient::getByIds

(PECL solr >= 2.2.0)

SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).

Description

public SolrQueryResponse SolrClient::getByIds ( array $ids )

Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).

Liste de paramètres

ids

Document ids

Valeurs de retour

SolrQueryResponse

Exemples

Exemple #1 SolrClient::getByIds() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getByIds(['GB18030TEST', '6H500F0']);

print_r($response->getResponse());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [response] => SolrObject Object
        (
            [numFound] => 2
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => GB18030TEST
                            [name] => Array
                                (
                                    [0] => Test with some GB18030 encoded characters
                                )

                            [features] => Array
                                (
                                    [0] => No accents here
                                    [1] => ??????
                                    [2] => This is a feature (translated)
                                    [3] => ?????????
                                    [4] => This document is very shiny (translated)
                                )

                            [price] => Array
                                (
                                    [0] => 0
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [_version_] => 1510294336239042560
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                )

        )

)

Voir aussi

  • SolrClient::getById() - Get Document By Id. Utilizes Solr Realtime Get (RTG).


Récupère les données de débogage de la dernière tentative de connexion

  • « SolrClient::getByIds
  • SolrClient::getOptions »
  • PHP Manual
  • SolrClient
  • Récupère les données de débogage de la dernière tentative de connexion

SolrClient::getDebug

(PECL solr >= 0.9.7)

SolrClient::getDebug — Récupère les données de débogage de la dernière tentative de connexion

Description

public string SolrClient::getDebug ( void )

Retourne les données de débogage de la dernière tentative de connexion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL s'il n'y a aucune donnée à retourner.


Récupère les options clientes définies en interne

  • « SolrClient::getDebug
  • SolrClient::optimize »
  • PHP Manual
  • SolrClient
  • Récupère les options clientes définies en interne

SolrClient::getOptions

(PECL solr >= 0.9.6)

SolrClient::getOptions — Récupère les options clientes définies en interne

Description

public array SolrClient::getOptions ( void )

Récupère les options clientes définies en interne. Très utile pour déboguer. Les valeurs retournées sont en lecture seule et ne peuvent être définies que lors de l'instanciation de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant toutes les options de l'objet SolrClient définies en interne.

Voir aussi

  • SolrClient::__construct() - Constructeur de l'objet SolrClient


Défragmente l'index

  • « SolrClient::getOptions
  • SolrClient::ping »
  • PHP Manual
  • SolrClient
  • Défragmente l'index

SolrClient::optimize

(PECL solr >= 0.9.2)

SolrClient::optimize — Défragmente l'index

Description

public SolrUpdateResponse SolrClient::optimize ([ int $maxSegments = 1 [, bool $softCommit = true [, bool $waitSearcher = true ]]] )

Défragmente l'index afin de rendre la recherche plus performante.

Liste de paramètres

maxSegments

Optimise jusqu'à ce nombre de fragments. Disponible depuis Solr 1.3.

softCommit

Permet de rafraîchir la vue de l'index de manière plus performante, mais sans garantie "sur le disque". (Solr4.0+)

waitSearcher

S'interrompt jusqu'à ce qu'un nouvel objet de recherche soit ouvert et enregistré comme objet principal, rendant les modifications visibles.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, ou lance une exception en cas d'échec.

Erreurs / Exceptions

Lance une exception SolrClientException si le client a échoué, ou s'il y a eu une problème avec la connexion.

Lance une exception SolrServerException si le serveur Solr a échoué dans l'exécution de la requête.

Notes

Avertissement

PECL Solr >= 2.0 ne supporte que Solr Server >= 4.0

Avant PECL Solr 2.0, cette méthode utilisait les arguments suivants : "int $maxSegments, bool $waitFlush, bool $waitSearcher".

Voir aussi

  • SolrClient::commit() - Commit tous les ajouts/modifications effectués sur l'index
  • SolrClient::rollback() - Annule les ajouts/effacements effectués sur l'index depuis le dernier commit


Vérifie si le serveur Solr est disponible

  • « SolrClient::optimize
  • SolrClient::query »
  • PHP Manual
  • SolrClient
  • Vérifie si le serveur Solr est disponible

SolrClient::ping

(PECL solr >= 0.9.2)

SolrClient::ping — Vérifie si le serveur Solr est disponible

Description

public SolrPingResponse SolrClient::ping ( void )

Vérifie si le serveur Solr est toujours disponible. Envoi une requête HEAD au serveur Apache Solr.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet SolrPingResponse en cas de succès, et lance une exception SolrClientException en cas d'échec.

Erreurs / Exceptions

Lance une exception SolrClientException si le client a échoué, ou s'il y a eu une problème avec la connexion.

Lance une exception SolrServerException si le serveur Solr n'a pas réussi à satisfaire la requête.

Exemples

Exemple #1 Exemple avec SolrClient::ping()

<?php
$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$pingresponse = $client->ping();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


Envoi une requête au serveur

  • « SolrClient::ping
  • SolrClient::request »
  • PHP Manual
  • SolrClient
  • Envoi une requête au serveur

SolrClient::query

(PECL solr >= 0.9.2)

SolrClient::query — Envoi une requête au serveur

Description

public SolrQueryResponse SolrClient::query ( SolrParams $query )

Envoi une requête au serveur.

Liste de paramètres

query

Un objet SolrParams. Il est recommandé d'utiliser un objet SolrQuery pour des requêtes avancées.

Valeurs de retour

Retourne un objet SolrQueryResponse en cas de succès, et lance une exception en cas d'échec.

Erreurs / Exceptions

Lance une exception SolrClientException si le client a échoué ou s'il y a eu un problème avec la connexion.

Lance une exception SolrServerException si le serveur Solr a échoué dans l'exécution de la requête.

Exemples

Exemple #1 Exemple avec SolrClient::query()

<?php

$options = array
(
    'hostname' => 'localhost',
    'login'    => 'username',
    'password' => 'password',
    'port'     => '8983',
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 3
            [params] => SolrObject Object
                (
                    [fl] => cat,features,id,timestamp
                    [indent] => on
                    [start] => 0
                    [q] => lucene
                    [wt] => xml
                    [version] => 2.2
                    [rows] => 50
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 1
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SOLR1000
                            [cat] => Array
                                (
                                    [0] => software
                                    [1] => search
                                )

                            [features] => Array
                                (
                                    [0] => Advanced Full-Text Search Capabilities using Lucene
                                    [1] => Optimized for High Volume Web Traffic
                                    [2] => Standards Based Open Interfaces - XML and HTTP
                                    [3] => Comprehensive HTML Administration Interfaces
                                    [4] => Scalability - Efficient Replication to other Solr Search Servers
                                    [5] => Flexible and Adaptable with XML configuration and Schema
                                    [6] => Good unicode support: héllo (hello with an accent over the e)
                                )

                        )

                )

        )

)


Envoi une requête brute de mise à jour

  • « SolrClient::query
  • SolrClient::rollback »
  • PHP Manual
  • SolrClient
  • Envoi une requête brute de mise à jour

SolrClient::request

(PECL solr >= 0.9.2)

SolrClient::request — Envoi une requête brute de mise à jour

Description

public SolrUpdateResponse SolrClient::request ( string $raw_request )

Envoi une requête XML brute de mise à jour au serveur.

Liste de paramètres

raw_request

Une chaîne XML contenant la requête brute vers le serveur.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès. Lance une exception en cas d'échec.

Erreurs / Exceptions

Lance une exception SolrIllegalArgumentException si raw_request est une chaîne vide.

Lance une exception SolrClientException si le client a échoué ou s'il y a eu un problème avec la connexion.

Lance une exception SolrServerException si le serveur Solr a échoué dans l'exécution de la requête.

Exemples

Exemple #1 Exemple avec SolrClient::request()

<?php
$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$update_response = $client->request("<commit/>");

$response = $update_response->getResponse();

print_r($response);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...


Annule les ajouts/effacements effectués sur l'index depuis le dernier commit

  • « SolrClient::request
  • SolrClient::setResponseWriter »
  • PHP Manual
  • SolrClient
  • Annule les ajouts/effacements effectués sur l'index depuis le dernier commit

SolrClient::rollback

(PECL solr >= 0.9.2)

SolrClient::rollback — Annule les ajouts/effacements effectués sur l'index depuis le dernier commit

Description

public SolrUpdateResponse SolrClient::rollback ( void )

Annule les ajouts/effacements effectués sur l'index depuis le dernier commit. Cette méthode n'appelle aucun événement, ni ne crée de nouvelle recherche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet SolrUpdateResponse en cas de succès, ou lance une exception SolrClientException si une erreur survient.

Voir aussi

  • SolrClient::commit() - Commit tous les ajouts/modifications effectués sur l'index
  • SolrClient::optimize() - Défragmente l'index


Définit le gestionnaire à utiliser pour préparer la réponse depuis Solr

  • « SolrClient::rollback
  • SolrClient::setServlet »
  • PHP Manual
  • SolrClient
  • Définit le gestionnaire à utiliser pour préparer la réponse depuis Solr

SolrClient::setResponseWriter

(PECL solr >= 0.9.11)

SolrClient::setResponseWriter — Définit le gestionnaire à utiliser pour préparer la réponse depuis Solr

Description

public void SolrClient::setResponseWriter ( string $responseWriter )

Définit le gestionnaire à utiliser pour préparer la réponse depuis Solr.

Liste de paramètres

responseWriter

Un parmi les suivants :

  • json
  • phps
  • xml

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SolrClient::setResponseWriter()

<?php

// Ceci est ma classe personnalisée pour les objets
class SolrClass
{
   public $_properties = array();

   public function __get($property_name) {

      if (property_exists($this, $property_name)) {

          return $this->$property_name;

      } else if (isset($_properties[$property_name])) {

          return $_properties[$property_name];
      }

      return null;
   }
}

$options = array
(
  'hostname' => 'localhost',
  'port' => 8983,
  'path' => '/solr/core1'
);

$client = new SolrClient($options);

$client->setResponseWriter("json");

//$response = $client->ping();

$query = new SolrQuery();

$query->setQuery("*:*");

$query->set("objectClassName", "SolrClass");

$query->set("objectPropertiesStorageMode", 1); // 0 pour des propriétés indépendantes, 1 pour des propriétés combinées

try
{

$response = $client->query($query);

$resp = $response->getResponse();

print_r($response);

print_r($resp);

} catch (Exception $e) {

print_r($e);

}

?>


Modifie le type d'un servlet en une nouvelle valeur

  • « SolrClient::setResponseWriter
  • SolrClient::system »
  • PHP Manual
  • SolrClient
  • Modifie le type d'un servlet en une nouvelle valeur

SolrClient::setServlet

(PECL solr >= 0.9.2)

SolrClient::setServlet — Modifie le type d'un servlet en une nouvelle valeur

Description

public bool SolrClient::setServlet ( int $type , string $value )

Modifie le type d'un servlet en une nouvelle valeur.

Liste de paramètres

type

Une constante parmi :

- SolrClient::SEARCH_SERVLET_TYPE
 - SolrClient::UPDATE_SERVLET_TYPE
 - SolrClient::THREADS_SERVLET_TYPE
 - SolrClient::PING_SERVLET_TYPE
 - SolrClient::TERMS_SERVLET_TYPE

value

La nouvelle valeur du servlet

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retrieve Solr Server information

  • « SolrClient::setServlet
  • SolrClient::threads »
  • PHP Manual
  • SolrClient
  • Retrieve Solr Server information

SolrClient::system

(PECL solr >= 2.0.0)

SolrClient::system — Retrieve Solr Server information

Description

public void SolrClient::system ( void )

Retrieve Solr Server information

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a SolrGenericResponse object on success.

Erreurs / Exceptions

Emits SolrClientException if the client failed, or there was a connection issue.

Emits SolrServerException if the Solr Server failed to satisfy the query.


Vérifie le statut des threads

  • « SolrClient::system
  • SolrResponse »
  • PHP Manual
  • SolrClient
  • Vérifie le statut des threads

SolrClient::threads

(PECL solr >= 0.9.2)

SolrClient::threads — Vérifie le statut des threads

Description

public void SolrClient::threads ( void )

Vérifie le statut des threads.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet SolrGenericResponse.

Erreurs / Exceptions

Lance une exception SolrClientException si le client a échoué ou s'il y a eu un problème avec la connexion.

Lance une exception SolrServerException si le serveur Solr a échoué dans l'exécution de la requête.


La classe SolrResponse

(PECL solr >= 0.9.2)

Introduction

Représente une réponse du serveur Solr.

Synopsis de la classe

abstract SolrResponse {
/* Constantes */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Propriétés */
protected integer $http_status ;
protected integer $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Méthodes */
public string getDigestedResponse ( void )
public int getHttpStatus ( void )
public string getHttpStatusMessage ( void )
public string getRawRequest ( void )
public string getRawRequestHeaders ( void )
public string getRawResponse ( void )
public string getRawResponseHeaders ( void )
public string getRequestUrl ( void )
public SolrObject getResponse ( void )
public bool setParseMode ([ int $parser_mode = 0 ] )
public bool success ( void )
}

Propriétés

http_status

Le statut http de la réponse.

parser_mode

Méthode d'analyse des documents Solr : instances SolrObject ou SolrDocument.

success

Si une erreur est survenue ou non durant la requête.

http_status_message

Message détaillé du statut http.

http_request_url

L'URL de la requête.

http_raw_request_headers

Une chaîne d'en-têtes brutes envoyée lors de la requête.

http_raw_request

La requête brute à envoyer au serveur.

http_raw_response_headers

Les en-têtes de réponse reçus du serveur Solr.

http_raw_response

Le message de réponse reçu par le serveur Solr.

http_digested_response

La réponse au format linéarisé PHP.

Constantes pré-définies

Constantes de la classe SolrResponse

SolrResponse::PARSE_SOLR_OBJ

Les documents doivent être analysés comme des instances SolrObject.

SolrResponse::PARSE_SOLR_DOC

Les documents doivent être analysés comme des instances SolrDocument.

Sommaire

  • SolrResponse::getDigestedResponse — Récupère la réponse XML sous la forme de données PHP linéarisées
  • SolrResponse::getHttpStatus — Récupère le statut HTTP de la réponse
  • SolrResponse::getHttpStatusMessage — Récupère plus de détails sur le statut HTTP
  • SolrResponse::getRawRequest — Récupère la requête brute envpyée au serveur Solr
  • SolrResponse::getRawRequestHeaders — Récupère les en-têtes brutes de la requête envoyée au serveur Solr
  • SolrResponse::getRawResponse — Récupère la réponse brute du serveur
  • SolrResponse::getRawResponseHeaders — Récupère les en-têtes brutes de la réponse du serveur
  • SolrResponse::getRequestUrl — Récupère l'URL complète de la requête émise au serveur
  • SolrResponse::getResponse — Récupère l'objet SolrObject représentant la réponse XML du serveur
  • SolrResponse::setParseMode — Définit le mode d'analyse
  • SolrResponse::success — Vérifie si la requête au serveur a réussi


Récupère la réponse XML sous la forme de données PHP linéarisées

  • « SolrResponse
  • SolrResponse::getHttpStatus »
  • PHP Manual
  • SolrResponse
  • Récupère la réponse XML sous la forme de données PHP linéarisées

SolrResponse::getDigestedResponse

(PECL solr >= 0.9.2)

SolrResponse::getDigestedResponse — Récupère la réponse XML sous la forme de données PHP linéarisées

Description

public string SolrResponse::getDigestedResponse ( void )

Récupère la réponse XML sous la forme de données PHP linéarisées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse XML sous la forme de données PHP linéarisées.


Récupère le statut HTTP de la réponse

  • « SolrResponse::getDigestedResponse
  • SolrResponse::getHttpStatusMessage »
  • PHP Manual
  • SolrResponse
  • Récupère le statut HTTP de la réponse

SolrResponse::getHttpStatus

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatus — Récupère le statut HTTP de la réponse

Description

public int SolrResponse::getHttpStatus ( void )

Récupère le statut HTTP de la réponse.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le statut HTTP de la réponse.


Récupère plus de détails sur le statut HTTP

  • « SolrResponse::getHttpStatus
  • SolrResponse::getRawRequest »
  • PHP Manual
  • SolrResponse
  • Récupère plus de détails sur le statut HTTP

SolrResponse::getHttpStatusMessage

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatusMessage — Récupère plus de détails sur le statut HTTP

Description

public string SolrResponse::getHttpStatusMessage ( void )

Récupère plus de détails sur le statut HTTP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne plus de détails sur le statut HTTP.


Récupère la requête brute envpyée au serveur Solr

  • « SolrResponse::getHttpStatusMessage
  • SolrResponse::getRawRequestHeaders »
  • PHP Manual
  • SolrResponse
  • Récupère la requête brute envpyée au serveur Solr

SolrResponse::getRawRequest

(PECL solr >= 0.9.2)

SolrResponse::getRawRequest — Récupère la requête brute envpyée au serveur Solr

Description

public string SolrResponse::getRawRequest ( void )

Récupère la requête brute envpyée au serveur Solr.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la requête brute envpyée au serveur Solr.


Récupère les en-têtes brutes de la requête envoyée au serveur Solr

  • « SolrResponse::getRawRequest
  • SolrResponse::getRawResponse »
  • PHP Manual
  • SolrResponse
  • Récupère les en-têtes brutes de la requête envoyée au serveur Solr

SolrResponse::getRawRequestHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawRequestHeaders — Récupère les en-têtes brutes de la requête envoyée au serveur Solr

Description

public string SolrResponse::getRawRequestHeaders ( void )

Récupère les en-têtes brutes de la requête envoyée au serveur Solr.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les en-têtes brutes de la requête envoyée au serveur Solr.


Récupère la réponse brute du serveur

  • « SolrResponse::getRawRequestHeaders
  • SolrResponse::getRawResponseHeaders »
  • PHP Manual
  • SolrResponse
  • Récupère la réponse brute du serveur

SolrResponse::getRawResponse

(PECL solr >= 0.9.2)

SolrResponse::getRawResponse — Récupère la réponse brute du serveur

Description

public string SolrResponse::getRawResponse ( void )

Récupère la réponse brute du serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la réponse brute du serveur.


Récupère les en-têtes brutes de la réponse du serveur

  • « SolrResponse::getRawResponse
  • SolrResponse::getRequestUrl »
  • PHP Manual
  • SolrResponse
  • Récupère les en-têtes brutes de la réponse du serveur

SolrResponse::getRawResponseHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawResponseHeaders — Récupère les en-têtes brutes de la réponse du serveur

Description

public string SolrResponse::getRawResponseHeaders ( void )

Récupère les en-têtes brutes de la réponse du serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les en-têtes brutes de la réponse du serveur.


Récupère l'URL complète de la requête émise au serveur

  • « SolrResponse::getRawResponseHeaders
  • SolrResponse::getResponse »
  • PHP Manual
  • SolrResponse
  • Récupère l'URL complète de la requête émise au serveur

SolrResponse::getRequestUrl

(PECL solr >= 0.9.2)

SolrResponse::getRequestUrl — Récupère l'URL complète de la requête émise au serveur

Description

public string SolrResponse::getRequestUrl ( void )

Récupère l'URL complète de la requête émise au serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'URL complète de la requête émise au serveur.


Récupère l'objet SolrObject représentant la réponse XML du serveur

  • « SolrResponse::getRequestUrl
  • SolrResponse::setParseMode »
  • PHP Manual
  • SolrResponse
  • Récupère l'objet SolrObject représentant la réponse XML du serveur

SolrResponse::getResponse

(PECL solr >= 0.9.2)

SolrResponse::getResponse — Récupère l'objet SolrObject représentant la réponse XML du serveur

Description

public SolrObject SolrResponse::getResponse ( void )

Récupère l'objet SolrObject représentant la réponse XML du serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'objet SolrObject représentant la réponse XML du serveur.


Définit le mode d'analyse

  • « SolrResponse::getResponse
  • SolrResponse::success »
  • PHP Manual
  • SolrResponse
  • Définit le mode d'analyse

SolrResponse::setParseMode

(PECL solr >= 0.9.2)

SolrResponse::setParseMode — Définit le mode d'analyse

Description

public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )

Définit le mode d'analyse.

Liste de paramètres

parser_mode

SolrResponse::PARSE_SOLR_DOC analyse les documents avec SolrDocument. SolrResponse::PARSE_SOLR_OBJ analyse les documents avec SolrObjects.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Vérifie si la requête au serveur a réussi

  • « SolrResponse::setParseMode
  • SolrQueryResponse »
  • PHP Manual
  • SolrResponse
  • Vérifie si la requête au serveur a réussi

SolrResponse::success

(PECL solr >= 0.9.2)

SolrResponse::success — Vérifie si la requête au serveur a réussi

Description

public bool SolrResponse::success ( void )

Vérifie si la requête au serveur a réussi.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la requête a réussi, FALSE sinon.


La classe SolrQueryResponse

(PECL solr >= 0.9.2)

Introduction

Représente une réponse à une requête.

Synopsis de la classe

final SolrQueryResponse extends SolrResponse {
/* Constantes */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Propriétés héritées */
const integer SolrResponse::PARSE_SOLR_OBJ = 0 ;
const integer SolrResponse::PARSE_SOLR_DOC = 1 ;
protected integer $http_status ;
protected integer $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Méthodes */
public __construct ( void )
public void __destruct ( void )
/* Méthodes héritées */
public string SolrResponse::getDigestedResponse ( void )
public int SolrResponse::getHttpStatus ( void )
public string SolrResponse::getHttpStatusMessage ( void )
public string SolrResponse::getRawRequest ( void )
public string SolrResponse::getRawRequestHeaders ( void )
public string SolrResponse::getRawResponse ( void )
public string SolrResponse::getRawResponseHeaders ( void )
public string SolrResponse::getRequestUrl ( void )
public SolrObject SolrResponse::getResponse ( void )
public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )
public bool SolrResponse::success ( void )
}

Constantes pré-définies

Constantes de la classe SolrQueryResponse

SolrQueryResponse::PARSE_SOLR_OBJ

Les documents doivent être analysés comme des instances SolrObject.

SolrQueryResponse::PARSE_SOLR_DOC

Les documents doivent être analysés comme des instances SolrDocument.

Sommaire

  • SolrQueryResponse::__construct — Constructeur
  • SolrQueryResponse::__destruct — Destructeur


Constructeur

  • « SolrQueryResponse
  • SolrQueryResponse::__destruct »
  • PHP Manual
  • SolrQueryResponse
  • Constructeur

SolrQueryResponse::__construct

(PECL solr >= 0.9.2)

SolrQueryResponse::__construct — Constructeur

Description

public SolrQueryResponse::__construct ( void )

Constructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien


Destructeur

  • « SolrQueryResponse::__construct
  • SolrUpdateResponse »
  • PHP Manual
  • SolrQueryResponse
  • Destructeur

SolrQueryResponse::__destruct

(PECL solr >= 0.9.2)

SolrQueryResponse::__destruct — Destructeur

Description

public void SolrQueryResponse::__destruct ( void )

Destructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien


La classe SolrUpdateResponse

(PECL solr >= 0.9.2)

Introduction

Représente une réponse à une requête de mise à jour.

Synopsis de la classe

final SolrUpdateResponse extends SolrResponse {
/* Constantes */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Propriétés héritées */
const integer SolrResponse::PARSE_SOLR_OBJ = 0 ;
const integer SolrResponse::PARSE_SOLR_DOC = 1 ;
protected integer $http_status ;
protected integer $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Méthodes */
public __construct ( void )
public void __destruct ( void )
/* Méthodes héritées */
public string SolrResponse::getDigestedResponse ( void )
public int SolrResponse::getHttpStatus ( void )
public string SolrResponse::getHttpStatusMessage ( void )
public string SolrResponse::getRawRequest ( void )
public string SolrResponse::getRawRequestHeaders ( void )
public string SolrResponse::getRawResponse ( void )
public string SolrResponse::getRawResponseHeaders ( void )
public string SolrResponse::getRequestUrl ( void )
public SolrObject SolrResponse::getResponse ( void )
public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )
public bool SolrResponse::success ( void )
}

Constantes pré-définies

Constantes de la classe SolrUpdateResponse

SolrUpdateResponse::PARSE_SOLR_OBJ

Les documents doivent être analysés comme des instances SolrObject.

SolrUpdateResponse::PARSE_SOLR_DOC

Les documents doivent être analysés comme des instances SolrDocument.

Sommaire

  • SolrUpdateResponse::__construct — Constructeur
  • SolrUpdateResponse::__destruct — Destructeur


Constructeur

  • « SolrUpdateResponse
  • SolrUpdateResponse::__destruct »
  • PHP Manual
  • SolrUpdateResponse
  • Constructeur

SolrUpdateResponse::__construct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__construct — Constructeur

Description

public SolrUpdateResponse::__construct ( void )

Constructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien


Destructeur

  • « SolrUpdateResponse::__construct
  • SolrPingResponse »
  • PHP Manual
  • SolrUpdateResponse
  • Destructeur

SolrUpdateResponse::__destruct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__destruct — Destructeur

Description

public void SolrUpdateResponse::__destruct ( void )

Destructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien


La classe SolrPingResponse

(PECL solr >= 0.9.2)

Introduction

Représente une réponse à une requête de type ping au serveur Solr.

Synopsis de la classe

final SolrPingResponse extends SolrResponse {
/* Constantes */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Propriétés */
/* Méthodes */
public __construct ( void )
public void __destruct ( void )
public string getResponse ( void )
/* Méthodes héritées */
public string SolrResponse::getDigestedResponse ( void )
public int SolrResponse::getHttpStatus ( void )
public string SolrResponse::getHttpStatusMessage ( void )
public string SolrResponse::getRawRequest ( void )
public string SolrResponse::getRawRequestHeaders ( void )
public string SolrResponse::getRawResponse ( void )
public string SolrResponse::getRawResponseHeaders ( void )
public string SolrResponse::getRequestUrl ( void )
public SolrObject SolrResponse::getResponse ( void )
public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )
public bool SolrResponse::success ( void )
}

Propriétés

http_status

Le statut http de la réponse.

parser_mode

Méthode d'analyse des documents Solr : instances SolrObject ou SolrDocument.

success

Si une erreur est survenue ou non durant la requête.

http_status_message

Message détaillé du statut http.

http_request_url

L'URL de la requête.

http_raw_request_headers

Une chaîne d'en-têtes brutes envoyée lors de la requête.

http_raw_request

La requête brute à envoyer au serveur.

http_raw_response_headers

Les en-têtes de réponse reçus du serveur Solr.

http_raw_response

Le message de réponse reçu par le serveur Solr.

http_digested_response

La réponse au format linéarisé PHP.

Constantes pré-définies

Constantes de la classe SolrPingResponse

SolrPingResponse::PARSE_SOLR_OBJ

Les documents doivent être analysés comme des instances SolrObject.

SolrPingResponse::PARSE_SOLR_DOC

Les documents doivent être analysés comme des instances SolrDocument.

Sommaire

  • SolrPingResponse::__construct — Constructeur
  • SolrPingResponse::__destruct — Destructeur
  • SolrPingResponse::getResponse — Récupère la réponse du serveur


Constructeur

  • « SolrPingResponse
  • SolrPingResponse::__destruct »
  • PHP Manual
  • SolrPingResponse
  • Constructeur

SolrPingResponse::__construct

(PECL solr >= 0.9.2)

SolrPingResponse::__construct — Constructeur

Description

public SolrPingResponse::__construct ( void )

Constructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien


Destructeur

  • « SolrPingResponse::__construct
  • SolrPingResponse::getResponse »
  • PHP Manual
  • SolrPingResponse
  • Destructeur

SolrPingResponse::__destruct

(PECL solr >= 0.9.2)

SolrPingResponse::__destruct — Destructeur

Description

public void SolrPingResponse::__destruct ( void )

Destructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien


Récupère la réponse du serveur

  • « SolrPingResponse::__destruct
  • SolrGenericResponse »
  • PHP Manual
  • SolrPingResponse
  • Récupère la réponse du serveur

SolrPingResponse::getResponse

(PECL solr >= 0.9.2)

SolrPingResponse::getResponse — Récupère la réponse du serveur

Description

public string SolrPingResponse::getResponse ( void )

Récupère la réponse du serveur. Normalement, la réponse devrait être vide car la requête est de type HEAD.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne vide.


La classe SolrGenericResponse

(PECL solr >= 0.9.2)

Introduction

Représente une réponse du serveur Solr.

Synopsis de la classe

final SolrGenericResponse extends SolrResponse {
/* Constantes */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Propriétés héritées */
const integer SolrResponse::PARSE_SOLR_OBJ = 0 ;
const integer SolrResponse::PARSE_SOLR_DOC = 1 ;
protected integer $http_status ;
protected integer $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Méthodes */
public __construct ( void )
public void __destruct ( void )
/* Méthodes héritées */
public string SolrResponse::getDigestedResponse ( void )
public int SolrResponse::getHttpStatus ( void )
public string SolrResponse::getHttpStatusMessage ( void )
public string SolrResponse::getRawRequest ( void )
public string SolrResponse::getRawRequestHeaders ( void )
public string SolrResponse::getRawResponse ( void )
public string SolrResponse::getRawResponseHeaders ( void )
public string SolrResponse::getRequestUrl ( void )
public SolrObject SolrResponse::getResponse ( void )
public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )
public bool SolrResponse::success ( void )
}

Constantes pré-définies

Constantes de la classe SolrGenericResponse

SolrGenericResponse::PARSE_SOLR_OBJ

Les documents doivent être analysés comme des instances SolrObject.

SolrGenericResponse::PARSE_SOLR_DOC

Les documents doivent être analysés comme des instances SolrDocument.

Sommaire

  • SolrGenericResponse::__construct — Constructeur
  • SolrGenericResponse::__destruct — Destructeur


Constructeur

  • « SolrGenericResponse
  • SolrGenericResponse::__destruct »
  • PHP Manual
  • SolrGenericResponse
  • Constructeur

SolrGenericResponse::__construct

(PECL solr >= 0.9.2)

SolrGenericResponse::__construct — Constructeur

Description

public SolrGenericResponse::__construct ( void )

Constructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien


Destructeur

  • « SolrGenericResponse::__construct
  • SolrParams »
  • PHP Manual
  • SolrGenericResponse
  • Destructeur

SolrGenericResponse::__destruct

(PECL solr >= 0.9.2)

SolrGenericResponse::__destruct — Destructeur

Description

public void SolrGenericResponse::__destruct ( void )

Destructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien


La classe SolrParams

(PECL solr >= 0.9.2)

Introduction

Représente une collection de paires nom-valeur envoyées au serveur Solr lors d'une requête.

Synopsis de la classe

abstract SolrParams implements Serializable {
/* Méthodes */
final public SolrParams add ( string $name , string $value )
public SolrParams addParam ( string $name , string $value )
final public mixed get ( string $param_name )
final public mixed getParam ([ string $param_name ] )
final public array getParams ( void )
final public array getPreparedParams ( void )
final public string serialize ( void )
final public void set ( string $name , string $value )
public SolrParams setParam ( string $name , string $value )
final public string toString ([ bool $url_encode = false ] )
final public void unserialize ( string $serialized )
}

Sommaire

  • SolrParams::add — Alias de SolrParams::addParam
  • SolrParams::addParam — Ajoute un paramètre à l'objet
  • SolrParams::get — Alias de SolrParams::getParam
  • SolrParams::getParam — Retourne la valeur d'un paramètre
  • SolrParams::getParams — Retourne un tableau de paramètres non encodés URL
  • SolrParams::getPreparedParams — Retourne un tableau de paramètres encodés URL
  • SolrParams::serialize — Utilisé pour une linéarisation personnalisée
  • SolrParams::set — Alias de SolrParams::setParam
  • SolrParams::setParam — Définit un paramètre à une valeur spécifique
  • SolrParams::toString — Retourne tous les paramètres de l'objet
  • SolrParams::unserialize — Utilisé pour la linéarisation personnalisée


Alias de SolrParams::addParam

  • « SolrParams
  • SolrParams::addParam »
  • PHP Manual
  • SolrParams
  • Alias de SolrParams::addParam

SolrParams::add

(PECL solr >= 0.9.2)

SolrParams::add — Alias de SolrParams::addParam

Description

final public SolrParams SolrParams::add ( string $name , string $value )

Alias de SolrParams::addParam.

Liste de paramètres

name

Nom du paramètre.

value

Valeur du paramètre.

Valeurs de retour

Retourne une instance d'un objet SolrParams en cas de succès.


Ajoute un paramètre à l'objet

  • « SolrParams::add
  • SolrParams::get »
  • PHP Manual
  • SolrParams
  • Ajoute un paramètre à l'objet

SolrParams::addParam

(PECL solr >= 0.9.2)

SolrParams::addParam — Ajoute un paramètre à l'objet

Description

public SolrParams SolrParams::addParam ( string $name , string $value )

Ajoute un paramètre à l'objet. Cette méthode est utilisée pour les paramètres pouvant être spécifiés plusieurs fois.

Liste de paramètres

name

Nom du paramètre.

value

Valeur du paramètre.

Valeurs de retour

Retourne un objet SolrParam en cas de succès, et FALSE si une erreur survient.


Alias de SolrParams::getParam

  • « SolrParams::addParam
  • SolrParams::getParam »
  • PHP Manual
  • SolrParams
  • Alias de SolrParams::getParam

SolrParams::get

(PECL solr >= 0.9.2)

SolrParams::get — Alias de SolrParams::getParam

Description

final public mixed SolrParams::get ( string $param_name )

Alias de SolrParams::getParam.

Liste de paramètres

param_name

Nom du paramètre.

Valeurs de retour

Retourne une chaîne de caractères ou un tableau suivant le type du paramètre.


Retourne la valeur d'un paramètre

  • « SolrParams::get
  • SolrParams::getParams »
  • PHP Manual
  • SolrParams
  • Retourne la valeur d'un paramètre

SolrParams::getParam

(PECL solr >= 0.9.2)

SolrParams::getParam — Retourne la valeur d'un paramètre

Description

final public mixed SolrParams::getParam ([ string $param_name ] )

Retourne la valeur d'un paramètre.

Liste de paramètres

param_name

Nom du paramètre.

Valeurs de retour

Retourne une chaîne de caractères ou un tableau suivant le type du paramètre.


Retourne un tableau de paramètres non encodés URL

  • « SolrParams::getParam
  • SolrParams::getPreparedParams »
  • PHP Manual
  • SolrParams
  • Retourne un tableau de paramètres non encodés URL

SolrParams::getParams

(PECL solr >= 0.9.2)

SolrParams::getParams — Retourne un tableau de paramètres non encodés URL

Description

final public array SolrParams::getParams ( void )

Retourne un tableau de paramètres non encodés URL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau de paramètres non encodés URL.


Retourne un tableau de paramètres encodés URL

  • « SolrParams::getParams
  • SolrParams::serialize »
  • PHP Manual
  • SolrParams
  • Retourne un tableau de paramètres encodés URL

SolrParams::getPreparedParams

(PECL solr >= 0.9.2)

SolrParams::getPreparedParams — Retourne un tableau de paramètres encodés URL

Description

final public array SolrParams::getPreparedParams ( void )

Retourne un tableau de paramètres encodés URL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau de paramètres encodés URL.


Utilisé pour une linéarisation personnalisée

  • « SolrParams::getPreparedParams
  • SolrParams::set »
  • PHP Manual
  • SolrParams
  • Utilisé pour une linéarisation personnalisée

SolrParams::serialize

(PECL solr >= 0.9.2)

SolrParams::serialize — Utilisé pour une linéarisation personnalisée

Description

final public string SolrParams::serialize ( void )

Utilisé pour une linéarisation personnalisée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Utilisé pour une linéarisation personnalisée.


Alias de SolrParams::setParam

  • « SolrParams::serialize
  • SolrParams::setParam »
  • PHP Manual
  • SolrParams
  • Alias de SolrParams::setParam

SolrParams::set

(PECL solr >= 0.9.2)

SolrParams::set — Alias de SolrParams::setParam

Description

final public void SolrParams::set ( string $name , string $value )

Alias de SolrParams::setParam.

Liste de paramètres

name

Nom du paramètre.

value

Valeur du paramètre.

Valeurs de retour

Retourne une instance de l'objet SolrParams en cas de succès.


Définit un paramètre à une valeur spécifique

  • « SolrParams::set
  • SolrParams::toString »
  • PHP Manual
  • SolrParams
  • Définit un paramètre à une valeur spécifique

SolrParams::setParam

(PECL solr >= 0.9.2)

SolrParams::setParam — Définit un paramètre à une valeur spécifique

Description

public SolrParams SolrParams::setParam ( string $name , string $value )

Définit un paramètre à une valeur spécifique. À n'utiliser que pour les paramètres ne pouvant être spécifiés qu'une seule fois. Les appels suivants sur le même paramètre écraseront la précédente valeur.

Liste de paramètres

name

Nom du paramètre.

value

Valeur du paramètre.

Valeurs de retour

Retourne un objet SolrParam en cas de succès, et FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SolrParams::setParam()

<?php

$param = new SolrParams();

$param->setParam('q', 'solr')->setParam('rows', 2);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


Retourne tous les paramètres de l'objet

  • « SolrParams::setParam
  • SolrParams::unserialize »
  • PHP Manual
  • SolrParams
  • Retourne tous les paramètres de l'objet

SolrParams::toString

(PECL solr >= 0.9.2)

SolrParams::toString — Retourne tous les paramètres de l'objet

Description

final public string SolrParams::toString ([ bool $url_encode = false ] )

Retourne tous les paramètres de l'objet, sous la forme de paire nom-valeur.

Liste de paramètres

url_encode

Si l'on doit retourner les valeurs encodées URL.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et FALSE si une erreur survient.


Utilisé pour la linéarisation personnalisée

  • « SolrParams::toString
  • SolrModifiableParams »
  • PHP Manual
  • SolrParams
  • Utilisé pour la linéarisation personnalisée

SolrParams::unserialize

(PECL solr >= 0.9.2)

SolrParams::unserialize — Utilisé pour la linéarisation personnalisée

Description

final public void SolrParams::unserialize ( string $serialized )

Utilisé pour la linéarisation personnalisée.

Liste de paramètres

serialized

La représentation linéarisée de l'objet.

Valeurs de retour

Aucune.


La classe SolrModifiableParams

(PECL solr >= 0.9.2)

Introduction

Représente une collection de paires nom-valeur envoyées au serveur Solr lors d'une requête.

Synopsis de la classe

SolrModifiableParams extends SolrParams implements Serializable {
/* Méthodes */
public __construct ( void )
public void __destruct ( void )
/* Méthodes héritées */
final public SolrParams SolrParams::add ( string $name , string $value )
public SolrParams SolrParams::addParam ( string $name , string $value )
final public mixed SolrParams::get ( string $param_name )
final public mixed SolrParams::getParam ([ string $param_name ] )
final public array SolrParams::getParams ( void )
final public array SolrParams::getPreparedParams ( void )
final public string SolrParams::serialize ( void )
final public void SolrParams::set ( string $name , string $value )
public SolrParams SolrParams::setParam ( string $name , string $value )
final public string SolrParams::toString ([ bool $url_encode = false ] )
final public void SolrParams::unserialize ( string $serialized )
}

Sommaire

  • SolrModifiableParams::__construct — Constructeur
  • SolrModifiableParams::__destruct — Destructeur


Constructeur

  • « SolrModifiableParams
  • SolrModifiableParams::__destruct »
  • PHP Manual
  • SolrModifiableParams
  • Constructeur

SolrModifiableParams::__construct

(PECL solr >= 0.9.2)

SolrModifiableParams::__construct — Constructeur

Description

public SolrModifiableParams::__construct ( void )

Constructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune


Destructeur

  • « SolrModifiableParams::__construct
  • SolrQuery »
  • PHP Manual
  • SolrModifiableParams
  • Destructeur

SolrModifiableParams::__destruct

(PECL solr >= 0.9.2)

SolrModifiableParams::__destruct — Destructeur

Description

public void SolrModifiableParams::__destruct ( void )

Destructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Rien


La classe SolrQuery

(PECL solr >= 0.9.2)

Introduction

Représente une collection de paires nom-valeur envoyées au serveur Solr lors d'une requête.

Synopsis de la classe

SolrQuery extends SolrModifiableParams implements Serializable {
/* Constantes */
const integer ORDER_ASC = 0 ;
const integer ORDER_DESC = 1 ;
const integer FACET_SORT_INDEX = 0 ;
const integer FACET_SORT_COUNT = 1 ;
const integer TERMS_SORT_INDEX = 0 ;
const integer TERMS_SORT_COUNT = 1 ;
/* Propriétés */
/* Méthodes */
public SolrQuery addExpandFilterQuery ( string $fq )
public SolrQuery addExpandSortField ( string $field [, string $order ] )
public SolrQuery addFacetDateField ( string $dateField )
public SolrQuery addFacetDateOther ( string $value [, string $field_override ] )
public SolrQuery addFacetField ( string $field )
public SolrQuery addFacetQuery ( string $facetQuery )
public SolrQuery addField ( string $field )
public SolrQuery addFilterQuery ( string $fq )
public SolrQuery addGroupField ( string $value )
public SolrQuery addGroupFunction ( string $value )
public SolrQuery addGroupQuery ( string $value )
public SolrQuery addGroupSortField ( string $field [, integer $order ] )
public SolrQuery addHighlightField ( string $field )
public SolrQuery addMltField ( string $field )
public SolrQuery addMltQueryField ( string $field , float $boost )
public SolrQuery addSortField ( string $field [, int $order = SolrQuery::ORDER_DESC ] )
public SolrQuery addStatsFacet ( string $field )
public SolrQuery addStatsField ( string $field )
public SolrQuery collapse ( SolrCollapseFunction $collapseFunction )
public __construct ([ string $q ] )
public void __destruct ( void )
public bool getExpand ( void )
public array getExpandFilterQueries ( void )
public array getExpandQuery ( void )
public integer getExpandRows ( void )
public array getExpandSortFields ( void )
public bool getFacet ( void )
public string getFacetDateEnd ([ string $field_override ] )
public array getFacetDateFields ( void )
public string getFacetDateGap ([ string $field_override ] )
public string getFacetDateHardEnd ([ string $field_override ] )
public array getFacetDateOther ([ string $field_override ] )
public string getFacetDateStart ([ string $field_override ] )
public array getFacetFields ( void )
public int getFacetLimit ([ string $field_override ] )
public string getFacetMethod ([ string $field_override ] )
public int getFacetMinCount ([ string $field_override ] )
public bool getFacetMissing ([ string $field_override ] )
public int getFacetOffset ([ string $field_override ] )
public string getFacetPrefix ([ string $field_override ] )
public array getFacetQueries ( void )
public int getFacetSort ([ string $field_override ] )
public array getFields ( void )
public array getFilterQueries ( void )
public bool getGroup ( void )
public integer getGroupCachePercent ( void )
public bool getGroupFacet ( void )
public array getGroupFields ( void )
public string getGroupFormat ( void )
public array getGroupFunctions ( void )
public integer getGroupLimit ( void )
public bool getGroupMain ( void )
public bool getGroupNGroups ( void )
public integer getGroupOffset ( void )
public array getGroupQueries ( void )
public array getGroupSortFields ( void )
public bool getGroupTruncate ( void )
public bool getHighlight ( void )
public string getHighlightAlternateField ([ string $field_override ] )
public array getHighlightFields ( void )
public string getHighlightFormatter ([ string $field_override ] )
public string getHighlightFragmenter ([ string $field_override ] )
public int getHighlightFragsize ([ string $field_override ] )
public bool getHighlightHighlightMultiTerm ( void )
public int getHighlightMaxAlternateFieldLength ([ string $field_override ] )
public int getHighlightMaxAnalyzedChars ( void )
public bool getHighlightMergeContiguous ([ string $field_override ] )
public int getHighlightRegexMaxAnalyzedChars ( void )
public string getHighlightRegexPattern ( void )
public float getHighlightRegexSlop ( void )
public bool getHighlightRequireFieldMatch ( void )
public string getHighlightSimplePost ([ string $field_override ] )
public string getHighlightSimplePre ([ string $field_override ] )
public int getHighlightSnippets ([ string $field_override ] )
public bool getHighlightUsePhraseHighlighter ( void )
public bool getMlt ( void )
public bool getMltBoost ( void )
public int getMltCount ( void )
public array getMltFields ( void )
public int getMltMaxNumQueryTerms ( void )
public int getMltMaxNumTokens ( void )
public int getMltMaxWordLength ( void )
public int getMltMinDocFrequency ( void )
public int getMltMinTermFrequency ( void )
public int getMltMinWordLength ( void )
public array getMltQueryFields ( void )
public string getQuery ( void )
public int getRows ( void )
public array getSortFields ( void )
public int getStart ( void )
public bool getStats ( void )
public array getStatsFacets ( void )
public array getStatsFields ( void )
public bool getTerms ( void )
public string getTermsField ( void )
public bool getTermsIncludeLowerBound ( void )
public bool getTermsIncludeUpperBound ( void )
public int getTermsLimit ( void )
public string getTermsLowerBound ( void )
public int getTermsMaxCount ( void )
public int getTermsMinCount ( void )
public string getTermsPrefix ( void )
public bool getTermsReturnRaw ( void )
public int getTermsSort ( void )
public string getTermsUpperBound ( void )
public int getTimeAllowed ( void )
public SolrQuery removeExpandFilterQuery ( string $fq )
public SolrQuery removeExpandSortField ( string $field )
public SolrQuery removeFacetDateField ( string $field )
public SolrQuery removeFacetDateOther ( string $value [, string $field_override ] )
public SolrQuery removeFacetField ( string $field )
public SolrQuery removeFacetQuery ( string $value )
public SolrQuery removeField ( string $field )
public SolrQuery removeFilterQuery ( string $fq )
public SolrQuery removeHighlightField ( string $field )
public SolrQuery removeMltField ( string $field )
public SolrQuery removeMltQueryField ( string $queryField )
public SolrQuery removeSortField ( string $field )
public SolrQuery removeStatsFacet ( string $value )
public SolrQuery removeStatsField ( string $field )
public SolrQuery setEchoHandler ( bool $flag )
public SolrQuery setEchoParams ( string $type )
public SolrQuery setExpand ( bool $value )
public SolrQuery setExpandQuery ( string $q )
public SolrQuery setExpandRows ( integer $value )
public SolrQuery setExplainOther ( string $query )
public SolrQuery setFacet ( bool $flag )
public SolrQuery setFacetDateEnd ( string $value [, string $field_override ] )
public SolrQuery setFacetDateGap ( string $value [, string $field_override ] )
public SolrQuery setFacetDateHardEnd ( bool $value [, string $field_override ] )
public SolrQuery setFacetDateStart ( string $value [, string $field_override ] )
public SolrQuery setFacetEnumCacheMinDefaultFrequency ( int $frequency [, string $field_override ] )
public SolrQuery setFacetLimit ( int $limit [, string $field_override ] )
public SolrQuery setFacetMethod ( string $method [, string $field_override ] )
public SolrQuery setFacetMinCount ( int $mincount [, string $field_override ] )
public SolrQuery setFacetMissing ( bool $flag [, string $field_override ] )
public SolrQuery setFacetOffset ( int $offset [, string $field_override ] )
public SolrQuery setFacetPrefix ( string $prefix [, string $field_override ] )
public SolrQuery setFacetSort ( int $facetSort [, string $field_override ] )
public SolrQuery setGroup ( bool $value )
public SolrQuery setGroupCachePercent ( integer $percent )
public SolrQuery setGroupFacet ( bool $value )
public SolrQuery setGroupFormat ( string $value )
public SolrQuery setGroupLimit ( integer $value )
public SolrQuery setGroupMain ( string $value )
public SolrQuery setGroupNGroups ( bool $value )
public SolrQuery setGroupOffset ( integer $value )
public SolrQuery setGroupTruncate ( bool $value )
public SolrQuery setHighlight ( bool $flag )
public SolrQuery setHighlightAlternateField ( string $field [, string $field_override ] )
public SolrQuery setHighlightFormatter ( string $formatter [, string $field_override ] )
public SolrQuery setHighlightFragmenter ( string $fragmenter [, string $field_override ] )
public SolrQuery setHighlightFragsize ( int $size [, string $field_override ] )
public SolrQuery setHighlightHighlightMultiTerm ( bool $flag )
public SolrQuery setHighlightMaxAlternateFieldLength ( int $fieldLength [, string $field_override ] )
public SolrQuery setHighlightMaxAnalyzedChars ( int $value )
public SolrQuery setHighlightMergeContiguous ( bool $flag [, string $field_override ] )
public SolrQuery setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars )
public SolrQuery setHighlightRegexPattern ( string $value )
public SolrQuery setHighlightRegexSlop ( float $factor )
public SolrQuery setHighlightRequireFieldMatch ( bool $flag )
public SolrQuery setHighlightSimplePost ( string $simplePost [, string $field_override ] )
public SolrQuery setHighlightSimplePre ( string $simplePre [, string $field_override ] )
public SolrQuery setHighlightSnippets ( int $value [, string $field_override ] )
public SolrQuery setHighlightUsePhraseHighlighter ( bool $flag )
public SolrQuery setMlt ( bool $flag )
public SolrQuery setMltBoost ( bool $flag )
public SolrQuery setMltCount ( int $count )
public SolrQuery setMltMaxNumQueryTerms ( int $value )
public SolrQuery setMltMaxNumTokens ( int $value )
public SolrQuery setMltMaxWordLength ( int $maxWordLength )
public SolrQuery setMltMinDocFrequency ( int $minDocFrequency )
public SolrQuery setMltMinTermFrequency ( int $minTermFrequency )
public SolrQuery setMltMinWordLength ( int $minWordLength )
public SolrQuery setOmitHeader ( bool $flag )
public SolrQuery setQuery ( string $query )
public SolrQuery setRows ( int $rows )
public SolrQuery setShowDebugInfo ( bool $flag )
public SolrQuery setStart ( int $start )
public SolrQuery setStats ( bool $flag )
public SolrQuery setTerms ( bool $flag )
public SolrQuery setTermsField ( string $fieldname )
public SolrQuery setTermsIncludeLowerBound ( bool $flag )
public SolrQuery setTermsIncludeUpperBound ( bool $flag )
public SolrQuery setTermsLimit ( int $limit )
public SolrQuery setTermsLowerBound ( string $lowerBound )
public SolrQuery setTermsMaxCount ( int $frequency )
public SolrQuery setTermsMinCount ( int $frequency )
public SolrQuery setTermsPrefix ( string $prefix )
public SolrQuery setTermsReturnRaw ( bool $flag )
public SolrQuery setTermsSort ( int $sortType )
public SolrQuery setTermsUpperBound ( string $upperBound )
public SolrQuery setTimeAllowed ( int $timeAllowed )
/* Méthodes héritées */
public SolrModifiableParams::__construct ( void )
public void SolrModifiableParams::__destruct ( void )
}

Constantes pré-définies

SolrQuery::ORDER_ASC

Utilisé pour spécifier une direction croissante du tri.

SolrQuery::ORDER_DESC

Utilisé pour spécifier une direction décroissante du tri.

SolrQuery::FACET_SORT_INDEX

Utilisé pour spécifier que le facet doit être trié par son index

SolrQuery::FACET_SORT_COUNT

Utilisé pour spécifier que le facet doit être trié par son total.

SolrQuery::TERMS_SORT_INDEX

Utilisé dans TermsComponent

SolrQuery::TERMS_SORT_COUNT

Utilisé dans TermsComponent

Sommaire

  • SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group.
  • SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::addFacetDateField — Lie un facet.date
  • SolrQuery::addFacetDateOther — Ajoute une autre paramètre facet.date.other
  • SolrQuery::addFacetField — Ajoute un autre champ à la facette
  • SolrQuery::addFacetQuery — Ajoute une requête de facette
  • SolrQuery::addField — Spécifie quel champ doit retourner le résultat
  • SolrQuery::addFilterQuery — Spécifie un filtre de requête
  • SolrQuery::addGroupField — Add a field to be used to group results.
  • SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery — Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter).
  • SolrQuery::addHighlightField — Lie un hl.fl
  • SolrQuery::addMltField — Spécifie un champ à utiliser pour les similitudes
  • SolrQuery::addMltQueryField — Lie un mlt.qf
  • SolrQuery::addSortField — Utilisé pour contrôler le tri du résultat
  • SolrQuery::addStatsFacet — Récupère un sous résultat pour y trouver des valeurs d'une facette donnée
  • SolrQuery::addStatsField — Lie un paramètre stats.field
  • SolrQuery::collapse — Collapses the result set to a single document per group
  • SolrQuery::__construct — Constructeur
  • SolrQuery::__destruct — Destructeur
  • SolrQuery::getExpand — Returns true if group expanding is enabled
  • SolrQuery::getExpandFilterQueries — Returns the expand filter queries
  • SolrQuery::getExpandQuery — Returns the expand query expand.q parameter
  • SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)
  • SolrQuery::getExpandSortFields — Returns an array of fields
  • SolrQuery::getFacet — Retourne la valeur du paramètre de facette
  • SolrQuery::getFacetDateEnd — Retourne la valeur du paramètre facet.date.end
  • SolrQuery::getFacetDateFields — Retourne tous les champs facet.date
  • SolrQuery::getFacetDateGap — Récupère la valeur du paramètre facet.date.gap
  • SolrQuery::getFacetDateHardEnd — Récupère la valeur du paramètre facet.date.hardend
  • SolrQuery::getFacetDateOther — Récupère la valeur du paramètre facet.date.other
  • SolrQuery::getFacetDateStart — Récupère la limite inférieure du premier intervalle de la date pour toutes les facettes de date pour ce champ
  • SolrQuery::getFacetFields — Récupère toutes les facettes des champs
  • SolrQuery::getFacetLimit — Récupère le nombre maximal de contraintes qui peut être retourné pour les facettes des champs
  • SolrQuery::getFacetMethod — Récupère la valeur du paramètre facet.method
  • SolrQuery::getFacetMinCount — Récupère le nombre minimal de facettes des champs qui doivent être incluses dans la réponse
  • SolrQuery::getFacetMissing — Récupère l'état courant du paramètre facet.missing
  • SolrQuery::getFacetOffset — Récupère la position dans la liste des contraintes à utiliser pour la pagination
  • SolrQuery::getFacetPrefix — Récupère le préfixe de la facette
  • SolrQuery::getFacetQueries — Récupère toutes les facettes des requêtes
  • SolrQuery::getFacetSort — Retourne le type de tri de la facette
  • SolrQuery::getFields — Récupère la liste des champs qui seront retournés dans la réponse
  • SolrQuery::getFilterQueries — Récupère un tableau de filtres de requêtes
  • SolrQuery::getGroup — Returns true if grouping is enabled
  • SolrQuery::getGroupCachePercent — Returns group cache percent value
  • SolrQuery::getGroupFacet — Returns the group.facet parameter value
  • SolrQuery::getGroupFields — Returns group fields (group.field parameter values)
  • SolrQuery::getGroupFormat — Returns the group.format value
  • SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)
  • SolrQuery::getGroupLimit — Returns the group.limit value
  • SolrQuery::getGroupMain — Returns the group.main value
  • SolrQuery::getGroupNGroups — Returns the group.ngroups value
  • SolrQuery::getGroupOffset — Returns the group.offset value
  • SolrQuery::getGroupQueries — Returns all the group.query parameter values
  • SolrQuery::getGroupSortFields — Returns the group.sort value
  • SolrQuery::getGroupTruncate — Returns the group.truncate value
  • SolrQuery::getHighlight — Récupère l'état du paramètre h1
  • SolrQuery::getHighlightAlternateField — Récupère le champ mis en évidence à utiliser comme champ par défaut ou comme champ de sauvegarde
  • SolrQuery::getHighlightFields — Récupère tous les champs pour lesquels Solr doit mettre en évidence un extrait
  • SolrQuery::getHighlightFormatter — Récupère le formatage utilisé pour mettre en évidence la sortie
  • SolrQuery::getHighlightFragmenter — Récupère le générateur d'extrait de texte pour la mise en évidence
  • SolrQuery::getHighlightFragsize — Retourne le nombre de caractères des fragments à considérer pour la mise en évidence
  • SolrQuery::getHighlightHighlightMultiTerm — Retourne si l'on doit activer la mise en évidence pour les intervalles/jokers/flous/préfixes des requêtes
  • SolrQuery::getHighlightMaxAlternateFieldLength — Retourne le nombre maximal de caractères du champ à retourner
  • SolrQuery::getHighlightMaxAnalyzedChars — Retourne le nombre maximal de caractères du document dans lequel les extraits seront cherchés
  • SolrQuery::getHighlightMergeContiguous — Retourne si l'on doit rassembler les fragments contigus en un seul fragment
  • SolrQuery::getHighlightRegexMaxAnalyzedChars — Retourne le nombre maximal de caractères depuis un champ lors de l'utilisation d'une regex
  • SolrQuery::getHighlightRegexPattern — Récupère l'expression rationnelle utilisée pour la fragmentation
  • SolrQuery::getHighlightRegexSlop — Récupère le facteur de déviation depuis la taille du fragment idéal
  • SolrQuery::getHighlightRequireFieldMatch — Retourne si le champ ne doit être mis en évidence que si la requête correspond à un champ en particulier
  • SolrQuery::getHighlightSimplePost — Récupère le texte qui doit apparaître après le terme mise en évidence
  • SolrQuery::getHighlightSimplePre — Retourne le texte qui doit apparaître avant le terme mise en évidence
  • SolrQuery::getHighlightSnippets — Récupère le nombre maximal d'extraits mis en évidence à générer par champ
  • SolrQuery::getHighlightUsePhraseHighlighter — Récupère l'état du paramètre hl.usePhraseHighlighter
  • SolrQuery::getMlt — Retourne si les résultats MoreLikeThis doivent être activés
  • SolrQuery::getMltBoost — Retourne si la requête doit être améliorée en utilisant la pertinence des termes
  • SolrQuery::getMltCount — Récupère le nombre de documents similaires à retourner pour chaque résultat
  • SolrQuery::getMltFields — Récupère tous les champs à utiliser pour la similarité
  • SolrQuery::getMltMaxNumQueryTerms — Retourne le nombre maximal de termes de requête qui peuvent être inclus lors de la génération d'une requête
  • SolrQuery::getMltMaxNumTokens — Retourne le nombre maximal de jokers à analyser dans chaque champ du document
  • SolrQuery::getMltMaxWordLength — Retourne la longueur minimale des mots en deçà de laquelle ils seront ignorés
  • SolrQuery::getMltMinDocFrequency — Retourne le seuil de fréquence d'apparition des mots
  • SolrQuery::getMltMinTermFrequency — Retourne la fréquence en deçà duquel les termes doivent être ignorés dans le document source
  • SolrQuery::getMltMinWordLength — Retourne la longueur minimum d'un mot en deça duquel il sera ignoré
  • SolrQuery::getMltQueryFields — Retourne les champs de la requête ainsi que leurs boosts
  • SolrQuery::getQuery — Retourne la requête principale
  • SolrQuery::getRows — Retourne le nombre maximal de documents
  • SolrQuery::getSortFields — Retourne tous les champs de tri
  • SolrQuery::getStart — Retourne la position dans le jeu complet de résultats
  • SolrQuery::getStats — Vérifie si les statistiques sont actives ou non
  • SolrQuery::getStatsFacets — Retourne toutes les statistiques définies
  • SolrQuery::getStatsFields — Retourne les statistiques des champs
  • SolrQuery::getTerms — Vérifie si le TermsComponent est activé ou non
  • SolrQuery::getTermsField — Récupère le champ depuis lequel les termes sont récupérés
  • SolrQuery::getTermsIncludeLowerBound — Vérifie si l'on doit inclure ou non la limite inférieure dans le jeu de résultats
  • SolrQuery::getTermsIncludeUpperBound — Vérifie si l'on doit inclure ou non la limite supérieure dans le jeu de résultats
  • SolrQuery::getTermsLimit — Retourne le nombre maximal de termes que Solr peut retourner
  • SolrQuery::getTermsLowerBound — Retourne le terme sur lequel on doit commencer
  • SolrQuery::getTermsMaxCount — Retourne la fréquence maximale des documents
  • SolrQuery::getTermsMinCount — Retourne la fréquence minimale des documents
  • SolrQuery::getTermsPrefix — Retourne le préfixe du terme
  • SolrQuery::getTermsReturnRaw — Si l'on doit retourner ou non les caractères brutes
  • SolrQuery::getTermsSort — Retourne un entier indiquant le nombre de termes stockés
  • SolrQuery::getTermsUpperBound — Retourne le terme sur lequel on doit s'arrêter
  • SolrQuery::getTimeAllowed — Retourne le délai d'exécution autorisé pour une requête
  • SolrQuery::removeExpandFilterQuery — Removes an expand filter query
  • SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::removeFacetDateField — Supprime un champ date
  • SolrQuery::removeFacetDateOther — Supprime un paramètre facet.date.other
  • SolrQuery::removeFacetField — Supprime un paramètre facet.date
  • SolrQuery::removeFacetQuery — Supprime un paramètre facet.query
  • SolrQuery::removeField — Efface un champ depuis la liste des champs
  • SolrQuery::removeFilterQuery — Supprime un filtre de requête
  • SolrQuery::removeHighlightField — Supprime un des champs utilisés pour la mise en évidence
  • SolrQuery::removeMltField — Supprime un des champs moreLikeThis
  • SolrQuery::removeMltQueryField — Supprime un des champs moreLikeThis de la requête
  • SolrQuery::removeSortField — Supprime un champ de tri
  • SolrQuery::removeStatsFacet — Supprime un paramètre stats.facet
  • SolrQuery::removeStatsField — Supprime un paramètre stats.field
  • SolrQuery::setEchoHandler — Bascule le paramètre echoHandler
  • SolrQuery::setEchoParams — Détermine les paramètres à inclure dans la réponse
  • SolrQuery::setExpand — Enables/Disables the Expand Component
  • SolrQuery::setExpandQuery — Sets the expand.q parameter
  • SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExplainOther — Définit le paramètre de requête explainOther
  • SolrQuery::setFacet — Lie un paramètre facet. Active ou désactive les facet
  • SolrQuery::setFacetDateEnd — Lie un facet.date.end
  • SolrQuery::setFacetDateGap — Lie un facet.date.gap
  • SolrQuery::setFacetDateHardEnd — Lie un facet.date.hardend
  • SolrQuery::setFacetDateStart — Lie un facet.date.start
  • SolrQuery::setFacetEnumCacheMinDefaultFrequency — Définit la fréquence minimale du document utilisée pour déterminer le comptage des termes
  • SolrQuery::setFacetLimit — Lie un facet.limit
  • SolrQuery::setFacetMethod — Spécifie le type d'algorithme à utiliser pour un champ facet
  • SolrQuery::setFacetMinCount — Lie un facet.mincount
  • SolrQuery::setFacetMissing — Lie un facet.missing
  • SolrQuery::setFacetOffset — Définit la position dans la liste des contraintes pour la pagination
  • SolrQuery::setFacetPrefix — Spécifie un préfixe utilisé pour limiter les termes
  • SolrQuery::setFacetSort — Détermine le tri des facet
  • SolrQuery::setGroup — Enable/Disable result grouping (group parameter)
  • SolrQuery::setGroupCachePercent — Enables caching for result grouping
  • SolrQuery::setGroupFacet — Sets group.facet parameter
  • SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupOffset — Sets the group.offset parameter.
  • SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setHighlight — Active ou désactive la coloration
  • SolrQuery::setHighlightAlternateField — Spécifie le champ de sauvegarde à utiliser
  • SolrQuery::setHighlightFormatter — Spécifie un formateur pour la sortie colorisée
  • SolrQuery::setHighlightFragmenter — Définit un générateur d'extraits de texte pour le texte colorisé
  • SolrQuery::setHighlightFragsize — La taille du fragment à considérer pour la coloration
  • SolrQuery::setHighlightHighlightMultiTerm — Utilise SpanScorer pour coloriser les termes d'une phrase
  • SolrQuery::setHighlightMaxAlternateFieldLength — Définit le nombre maximal de caractères du champ à retourner
  • SolrQuery::setHighlightMaxAnalyzedChars — Spécifie le nombre de caractères dans un document pour y chercher des extraits correspondants
  • SolrQuery::setHighlightMergeContiguous — Si l'on doit rassembler les fragments proches dans un seul fragment
  • SolrQuery::setHighlightRegexMaxAnalyzedChars — Spécifie le nombre maximal de caractères à analyser
  • SolrQuery::setHighlightRegexPattern — Spécifie l'expression rationnelle pour la fragmentation
  • SolrQuery::setHighlightRegexSlop — Définit le facteur par lequel le fragmenteur regex peut dévier de la taille idéale du fragment
  • SolrQuery::setHighlightRequireFieldMatch — Champ correspondant requis lors de la colorisation
  • SolrQuery::setHighlightSimplePost — Définit le texte qui doit apparaître après un terme colorisé
  • SolrQuery::setHighlightSimplePre — Définit le texte qui doit apparaître avant un terme colorisé
  • SolrQuery::setHighlightSnippets — Définit le nombre maximal d'extraits à coloriser par champ
  • SolrQuery::setHighlightUsePhraseHighlighter — Si l'on doit coloriser les termes d'une phrase uniquement si ils apparaissent dans la requête
  • SolrQuery::setMlt — Active ou désactive moreLikeThis
  • SolrQuery::setMltBoost — Si la requête doit être stimulée par la pertinence des termes
  • SolrQuery::setMltCount — Définit le nombre de documents similaires à retourner à chaque résultat
  • SolrQuery::setMltMaxNumQueryTerms — Définit le nombre maximal de termes de requête à inclure
  • SolrQuery::setMltMaxNumTokens — Spécifie le nombre maximal de motifs à analyser
  • SolrQuery::setMltMaxWordLength — Définit la longueur maximale d'un mot
  • SolrQuery::setMltMinDocFrequency — Définit la fréquence mltMinDoc
  • SolrQuery::setMltMinTermFrequency — Définit la fréquence en dessous de laquelle les termes seront ignorés dans le document source
  • SolrQuery::setMltMinWordLength — Définit la longueur minimale d'un mot
  • SolrQuery::setOmitHeader — Exclut l'en-tête des résultats retournés
  • SolrQuery::setQuery — Définit la requête de recherche
  • SolrQuery::setRows — Spécifie le nombre maximal de lignes à retourner dans le résultat
  • SolrQuery::setShowDebugInfo — Drapeau pour afficher les informations de débogage
  • SolrQuery::setStart — Spécifie le nombre maximal de lignes à ignorer
  • SolrQuery::setStats — Active ou désactive le composant statistique
  • SolrQuery::setTerms — Active ou désactive le TermsComponent
  • SolrQuery::setTermsField — Définit le nom du champ dans lequel les termes seront récupérés
  • SolrQuery::setTermsIncludeLowerBound — Inclut le terme inférieure liée dans le jeu de résultat
  • SolrQuery::setTermsIncludeUpperBound — Inclut le terme supérieure liée dans le jeu de résultat
  • SolrQuery::setTermsLimit — Définit le nombre maximal de termes à retourner
  • SolrQuery::setTermsLowerBound — Spécifie le terme de départ
  • SolrQuery::setTermsMaxCount — Définit la fréquence maximale du document
  • SolrQuery::setTermsMinCount — Définit la fréquence minimale d'un document
  • SolrQuery::setTermsPrefix — Restreint les termes correspondants qui commencent avec un préfixe donné
  • SolrQuery::setTermsReturnRaw — Retourne les caractères brutes d'un terme indexé
  • SolrQuery::setTermsSort — Spécifie la façon dont seront triés les termes retournés
  • SolrQuery::setTermsUpperBound — Définit le terme à partir duquel on doit stopper
  • SolrQuery::setTimeAllowed — Le temps allouée pour faire une recherche


Overrides main filter query, determines which documents to include in the main group.

  • « SolrQuery
  • SolrQuery::addExpandSortField »
  • PHP Manual
  • SolrQuery
  • Overrides main filter query, determines which documents to include in the main group.

SolrQuery::addExpandFilterQuery

(PECL solr >= 2.2.0)

SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group.

Description

public SolrQuery SolrQuery::addExpandFilterQuery ( string $fq )

Overrides main filter query, determines which documents to include in the main group.

Liste de paramètres

fq

Valeurs de retour

SolrQuery

Voir aussi

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Orders the documents within the expanded groups (expand.sort parameter).

  • « SolrQuery::addExpandFilterQuery
  • SolrQuery::addFacetDateField »
  • PHP Manual
  • SolrQuery
  • Orders the documents within the expanded groups (expand.sort parameter).

SolrQuery::addExpandSortField

(PECL solr >= 2.2.0)

SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter).

Description

public SolrQuery SolrQuery::addExpandSortField ( string $field [, string $order ] )

Orders the documents within the expanded groups (expand.sort parameter).

Liste de paramètres

field

field name

order

Order ASC/DESC, utilizes SolrQuery::ORDER_* constants.

Default: SolrQuery::ORDER_DESC

Valeurs de retour

SolrQuery

Voir aussi

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group.
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Lie un facet.date

  • « SolrQuery::addExpandSortField
  • SolrQuery::addFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Lie un facet.date

SolrQuery::addFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateField — Lie un facet.date

Description

public SolrQuery SolrQuery::addFacetDateField ( string $dateField )

Cette méthode vous permet de spécifier un champ qui doit être traité comme une facette.

Elle peut être utilisée plusieurs fois avec différents noms de champs pour indiquer plusieurs champs de facette.

Liste de paramètres

dateField

Le nom du champ date.

Valeurs de retour

Retourne un objet SolrQuery.


Ajoute une autre paramètre facet.date.other

  • « SolrQuery::addFacetDateField
  • SolrQuery::addFacetField »
  • PHP Manual
  • SolrQuery
  • Ajoute une autre paramètre facet.date.other

SolrQuery::addFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateOther — Ajoute une autre paramètre facet.date.other

Description

public SolrQuery SolrQuery::addFacetDateOther ( string $value [, string $field_override ] )

Définit le paramètre facet.date.other. Accepte un paramètre optionnel permettant d'écraser la valeur.

Liste de paramètres

value

La valeur à utiliser.

field_override

Le nom du champ pour l'écrasement.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retourné est utilisée.


Ajoute un autre champ à la facette

  • « SolrQuery::addFacetDateOther
  • SolrQuery::addFacetQuery »
  • PHP Manual
  • SolrQuery
  • Ajoute un autre champ à la facette

SolrQuery::addFacetField

(PECL solr >= 0.9.2)

SolrQuery::addFacetField — Ajoute un autre champ à la facette

Description

public SolrQuery SolrQuery::addFacetField ( string $field )

Ajoute un autre champ à la facette.

Liste de paramètres

field

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.

Exemples

Exemple #1 Exemple avec SolrQuery::addFacetField()

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery($query);

$query->addField('price')->addField('color');

$query->setFacet(true);

$query->addFacetField('price')->addFacetField('color');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response['facet_counts']['facet_fields']);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [color] => SolrObject Object
        (
            [blue] => 20
            [green] => 100
        )

)


Ajoute une requête de facette

  • « SolrQuery::addFacetField
  • SolrQuery::addField »
  • PHP Manual
  • SolrQuery
  • Ajoute une requête de facette

SolrQuery::addFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::addFacetQuery — Ajoute une requête de facette

Description

public SolrQuery SolrQuery::addFacetQuery ( string $facetQuery )

Ajoute une requête de facette.

Liste de paramètres

facetQuery

La requête de facette

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.

Exemples

Exemple #1 Exemple avec SolrQuery::addFacetField()

<?php

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetQuery('price:[* TO 500]')->addFacetQuery('price:[500 TO *]');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response->facet_counts->facet_queries);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [price:[* TO 500]] => 14
    [price:[500 TO *]] => 2
)


Spécifie quel champ doit retourner le résultat

  • « SolrQuery::addFacetQuery
  • SolrQuery::addFilterQuery »
  • PHP Manual
  • SolrQuery
  • Spécifie quel champ doit retourner le résultat

SolrQuery::addField

(PECL solr >= 0.9.2)

SolrQuery::addField — Spécifie quel champ doit retourner le résultat

Description

public SolrQuery SolrQuery::addField ( string $field )

Cette méthode est utilisé pour spécifier un jeu de champs à retourner, permettant ainsi de limiter la quantité d'informations retournées.

Cette méthode doit être appelée plusieurs fois ; une fois par nom de champ.

Liste de paramètres

field

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant.


Spécifie un filtre de requête

  • « SolrQuery::addField
  • SolrQuery::addGroupField »
  • PHP Manual
  • SolrQuery
  • Spécifie un filtre de requête

SolrQuery::addFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::addFilterQuery — Spécifie un filtre de requête

Description

public SolrQuery SolrQuery::addFilterQuery ( string $fq )

Spécifie un filtre de requête.

Liste de paramètres

fq

Le filtre de requête

Valeurs de retour

Retourne l'objet SolrQuery courant.

Exemples

Exemple #1 Exemple avec SolrQuery::addFilterQuery()

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery($query);

$query->addFilterQuery('color:blue,green');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response['facet_counts']['facet_fields']);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

 &fq=color:blue,green


Add a field to be used to group results.

  • « SolrQuery::addFilterQuery
  • SolrQuery::addGroupFunction »
  • PHP Manual
  • SolrQuery
  • Add a field to be used to group results.

SolrQuery::addGroupField

(PECL solr >= 2.2.0)

SolrQuery::addGroupField — Add a field to be used to group results.

Description

public SolrQuery SolrQuery::addGroupField ( string $value )

The name of the field by which to group results. The field must be single-valued, and either be indexed or a field type that has a value source and works in a function query, such as ExternalFileField. It must also be a string-based field, such as StrField or TextField Uses group.field parameter

Liste de paramètres

value

Voir aussi

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Allows grouping results based on the unique values of a function query (group.func parameter).

  • « SolrQuery::addGroupField
  • SolrQuery::addGroupQuery »
  • PHP Manual
  • SolrQuery
  • Allows grouping results based on the unique values of a function query (group.func parameter).

SolrQuery::addGroupFunction

(PECL solr >= 2.2.0)

SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter).

Description

public SolrQuery SolrQuery::addGroupFunction ( string $value )

Adds a group function (group.func parameter) Allows grouping results based on the unique values of a function query.

Liste de paramètres

value

Valeurs de retour

SolrQuery

Voir aussi

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Allows grouping of documents that match the given query.

  • « SolrQuery::addGroupFunction
  • SolrQuery::addGroupSortField »
  • PHP Manual
  • SolrQuery
  • Allows grouping of documents that match the given query.

SolrQuery::addGroupQuery

(PECL solr >= 2.2.0)

SolrQuery::addGroupQuery — Allows grouping of documents that match the given query.

Description

public SolrQuery SolrQuery::addGroupQuery ( string $value )

Allows grouping of documents that match the given query. Adds query to the group.query parameter

Liste de paramètres

value

Valeurs de retour

SolrQuery

Voir aussi

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Add a group sort field (group.sort parameter).

  • « SolrQuery::addGroupQuery
  • SolrQuery::addHighlightField »
  • PHP Manual
  • SolrQuery
  • Add a group sort field (group.sort parameter).

SolrQuery::addGroupSortField

(PECL solr >= 2.2.0)

SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter).

Description

public SolrQuery SolrQuery::addGroupSortField ( string $field [, integer $order ] )

Allow sorting group documents, using group sort field (group.sort parameter).

Liste de paramètres

field

Field name

order

Order ASC/DESC, utilizes SolrQuery::ORDER_* constants

Valeurs de retour

Exemples

Exemple #1 SolrQuery::addGroupSortField() example

<?php

$solrQuery = new SolrQuery('*:*');
$solrQuery
    ->setGroup(true)
    ->addGroupSortField('price', SolrQuery::ORDER_ASC);

echo $solrQuery;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=*:*&group=true&group.sort=price asc

Voir aussi

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Lie un hl.fl

  • « SolrQuery::addGroupSortField
  • SolrQuery::addMltField »
  • PHP Manual
  • SolrQuery
  • Lie un hl.fl

SolrQuery::addHighlightField

(PECL solr >= 0.9.2)

SolrQuery::addHighlightField — Lie un hl.fl

Description

public SolrQuery SolrQuery::addHighlightField ( string $field )

Lie un hl.fl. Ceci est utilisé pour spécifier le champ à mettre en évidence.

Liste de paramètres

field

Nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Spécifie un champ à utiliser pour les similitudes

  • « SolrQuery::addHighlightField
  • SolrQuery::addMltQueryField »
  • PHP Manual
  • SolrQuery
  • Spécifie un champ à utiliser pour les similitudes

SolrQuery::addMltField

(PECL solr >= 0.9.2)

SolrQuery::addMltField — Spécifie un champ à utiliser pour les similitudes

Description

public SolrQuery SolrQuery::addMltField ( string $field )

Lie un mlt.fl. Il spécifie qu'un champ doit être utilisé pour les similitudes.

Liste de paramètres

field

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Lie un mlt.qf

  • « SolrQuery::addMltField
  • SolrQuery::addSortField »
  • PHP Manual
  • SolrQuery
  • Lie un mlt.qf

SolrQuery::addMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::addMltQueryField — Lie un mlt.qf

Description

public SolrQuery SolrQuery::addMltQueryField ( string $field , float $boost )

Lie un mlt.qf. Utilisé pour spécifier les champs de requêtes ainsi que leurs renforts.

Liste de paramètres

field

Le nom du champ

boost

La valeur du renfort

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Utilisé pour contrôler le tri du résultat

  • « SolrQuery::addMltQueryField
  • SolrQuery::addStatsFacet »
  • PHP Manual
  • SolrQuery
  • Utilisé pour contrôler le tri du résultat

SolrQuery::addSortField

(PECL solr >= 0.9.2)

SolrQuery::addSortField — Utilisé pour contrôler le tri du résultat

Description

public SolrQuery SolrQuery::addSortField ( string $field [, int $order = SolrQuery::ORDER_DESC ] )

Utilisé pour contrôler le tri du résultat.

Liste de paramètres

field

Le nom du champ

order

La direction du tri. Doit être soit SolrQuery::ORDER_ASC, soit SolrQuery::ORDER_DESC.

Valeurs de retour

Retourne l'objet SolrQuery courant.


Récupère un sous résultat pour y trouver des valeurs d'une facette donnée

  • « SolrQuery::addSortField
  • SolrQuery::addStatsField »
  • PHP Manual
  • SolrQuery
  • Récupère un sous résultat pour y trouver des valeurs d'une facette donnée

SolrQuery::addStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::addStatsFacet — Récupère un sous résultat pour y trouver des valeurs d'une facette donnée

Description

public SolrQuery SolrQuery::addStatsFacet ( string $field )

Récupère un sous résultat pour y trouver des valeurs d'une facette donnée. Lie un champ stats.facet.

Liste de paramètres

field

Le nom du champ

Valeurs de retour

Retourne l'objet courant SolrQuery, si la valeur retournée est utilisée.


Lie un paramètre stats.field

  • « SolrQuery::addStatsFacet
  • SolrQuery::collapse »
  • PHP Manual
  • SolrQuery
  • Lie un paramètre stats.field

SolrQuery::addStatsField

(PECL solr >= 0.9.2)

SolrQuery::addStatsField — Lie un paramètre stats.field

Description

public SolrQuery SolrQuery::addStatsField ( string $field )

Lie un paramètre stats.field. Cette méthode ajoute un autre paramètre stats.field.

Liste de paramètres

field

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Collapses the result set to a single document per group

  • « SolrQuery::addStatsField
  • SolrQuery::__construct »
  • PHP Manual
  • SolrQuery
  • Collapses the result set to a single document per group

SolrQuery::collapse

(No version information available, might only be in Git)

SolrQuery::collapse — Collapses the result set to a single document per group

Description

public SolrQuery SolrQuery::collapse ( SolrCollapseFunction $collapseFunction )

Collapses the result set to a single document per group before it forwards the result set to the rest of the search components.

So all downstream components (faceting, highlighting, etc...) will work with the collapsed result set.

Liste de paramètres

collapseFunction

Valeurs de retour

Returns the current SolrQuery object

Exemples

Exemple #1 SolrQuery::collapse() example

<?php

include "bootstrap.php";

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
        'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$collapseFunction = new SolrCollapseFunction('manu_id_s');

$collapseFunction
->setSize(2)
->setNullPolicy(SolrCollapseFunction::NULLPOLICY_IGNORE);

$query
->collapse($collapseFunction)
->setRows(4);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [q] => *:*
                    [indent] => on
                    [fq] => {!collapse field=manu_id_s size=2 nullPolicy=ignore}
                    [rows] => 4
                    [version] => 2.2
                    [wt] => xml
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 14
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SP2514N
                            [name] => Array
                                (
                                    [0] => Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133
                                )

                            [manu] => Array
                                (
                                    [0] => Samsung Electronics Co. Ltd.
                                )

                            [manu_id_s] => samsung
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => 7200RPM, 8MB cache, IDE Ultra ATA-133
                                    [1] => NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor
                                )

                            [price] => Array
                                (
                                    [0] => 92
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [store] => Array
                                (
                                    [0] => 35.0752,-97.032
                                )

                            [_version_] => 1510294336412057600
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                    [2] => SolrObject Object
                        (
                            [id] => F8V7067-APL-KIT
                            [name] => Array
                                (
                                    [0] => Belkin Mobile Power Cord for iPod w/ Dock
                                )

                            [manu] => Array
                                (
                                    [0] => Belkin
                                )

                            [manu_id_s] => belkin
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => connector
                                )

                            [features] => Array
                                (
                                    [0] => car power adapter, white
                                )

                            [weight] => Array
                                (
                                    [0] => 4
                                )

                            [price] => Array
                                (
                                    [0] => 19.95
                                )

                            [popularity] => Array
                                (
                                    [0] => 1
                                )

                            [inStock] => Array
                                (
                                    [0] =>
                                )

                            [store] => Array
                                (
                                    [0] => 45.18014,-93.87741
                                )

                            [manufacturedate_dt] => 2005-08-01T16:30:25Z
                            [_version_] => 1510294336458194944
                        )

                    [3] => SolrObject Object
                        (
                            [id] => MA147LL/A
                            [name] => Array
                                (
                                    [0] => Apple 60 GB iPod with Video Playback Black
                                )

                            [manu] => Array
                                (
                                    [0] => Apple Computer Inc.
                                )

                            [manu_id_s] => apple
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => music
                                )

                            [features] => Array
                                (
                                    [0] => iTunes, Podcasts, Audiobooks
                                    [1] => Stores up to 15,000 songs, 25,000 photos, or 150 hours of video
                                    [2] => 2.5-inch, 320x240 color TFT LCD display with LED backlight
                                    [3] => Up to 20 hours of battery life
                                    [4] => Plays AAC, MP3, WAV, AIFF, Audible, Apple Lossless, H.264 video
                                    [5] => Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication
                                )

                            [includes] => Array
                                (
                                    [0] => earbud headphones, USB cable
                                )

                            [weight] => Array
                                (
                                    [0] => 5.5
                                )

                            [price] => Array
                                (
                                    [0] => 399
                                )

                            [popularity] => Array
                                (
                                    [0] => 10
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 37.7752,-100.0232
                                )

                            [manufacturedate_dt] => 2005-10-12T08:00:00Z
                            [_version_] => 1510294336562003968
                        )

                )

        )

)


Constructeur

  • « SolrQuery::collapse
  • SolrQuery::__destruct »
  • PHP Manual
  • SolrQuery
  • Constructeur

SolrQuery::__construct

(PECL solr >= 0.9.2)

SolrQuery::__construct — Constructeur

Description

public SolrQuery::__construct ([ string $q ] )

Constructeur.

Liste de paramètres

q

Requête de recherche optionnelle

Valeurs de retour

Aucun

Erreurs / Exceptions

Emets une exception SolrIllegalArgumentException lorsqu'un paramètre invalide est passé.

Historique

Version | Description
2.0.0 | Si q est invalide, alors une exception SolrIllegalArgumentException est émise. Auparavant, une erreur était émise.


Destructeur

  • « SolrQuery::__construct
  • SolrQuery::getExpand »
  • PHP Manual
  • SolrQuery
  • Destructeur

SolrQuery::__destruct

(PECL solr >= 0.9.2)

SolrQuery::__destruct — Destructeur

Description

public void SolrQuery::__destruct ( void )

Destructeur

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucun.


Returns true if group expanding is enabled

  • « SolrQuery::__destruct
  • SolrQuery::getExpandFilterQueries »
  • PHP Manual
  • SolrQuery
  • Returns true if group expanding is enabled

SolrQuery::getExpand

(PECL solr >= 2.2.0)

SolrQuery::getExpand — Returns true if group expanding is enabled

Description

public bool SolrQuery::getExpand ( void )

Returns TRUE if group expanding is enabled


Returns the expand filter queries

  • « SolrQuery::getExpand
  • SolrQuery::getExpandQuery »
  • PHP Manual
  • SolrQuery
  • Returns the expand filter queries

SolrQuery::getExpandFilterQueries

(PECL solr >= 2.2.0)

SolrQuery::getExpandFilterQueries — Returns the expand filter queries

Description

public array SolrQuery::getExpandFilterQueries ( void )

Returns the expand filter queries


Returns the expand query expand.q parameter

  • « SolrQuery::getExpandFilterQueries
  • SolrQuery::getExpandRows »
  • PHP Manual
  • SolrQuery
  • Returns the expand query expand.q parameter

SolrQuery::getExpandQuery

(PECL solr >= 2.2.0)

SolrQuery::getExpandQuery — Returns the expand query expand.q parameter

Description

public array SolrQuery::getExpandQuery ( void )

Returns the expand query expand.q parameter


Returns The number of rows to display in each group (expand.rows)

  • « SolrQuery::getExpandQuery
  • SolrQuery::getExpandSortFields »
  • PHP Manual
  • SolrQuery
  • Returns The number of rows to display in each group (expand.rows)

SolrQuery::getExpandRows

(PECL solr >= 2.2.0)

SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)

Description

public integer SolrQuery::getExpandRows ( void )

Returns The number of rows to display in each group (expand.rows)


Returns an array of fields

  • « SolrQuery::getExpandRows
  • SolrQuery::getFacet »
  • PHP Manual
  • SolrQuery
  • Returns an array of fields

SolrQuery::getExpandSortFields

(PECL solr >= 2.2.0)

SolrQuery::getExpandSortFields — Returns an array of fields

Description

public array SolrQuery::getExpandSortFields ( void )

Returns an array of fields


Retourne la valeur du paramètre de facette

  • « SolrQuery::getExpandSortFields
  • SolrQuery::getFacetDateEnd »
  • PHP Manual
  • SolrQuery
  • Retourne la valeur du paramètre de facette

SolrQuery::getFacet

(PECL solr >= 0.9.2)

SolrQuery::getFacet — Retourne la valeur du paramètre de facette

Description

public bool SolrQuery::getFacet ( void )

Retourne la valeur du paramètre de facette.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun paramètre n'est défini.


Retourne la valeur du paramètre facet.date.end

  • « SolrQuery::getFacet
  • SolrQuery::getFacetDateFields »
  • PHP Manual
  • SolrQuery
  • Retourne la valeur du paramètre facet.date.end

SolrQuery::getFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateEnd — Retourne la valeur du paramètre facet.date.end

Description

public string SolrQuery::getFacetDateEnd ([ string $field_override ] )

Retourne la valeur du paramètre facet.date.end. Cette méthode accepte un champ optionnel permettant l'écrasement.

Liste de paramètres

field_override

Le nom du champ

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun paramètre n'est défini.


Retourne tous les champs facet.date

  • « SolrQuery::getFacetDateEnd
  • SolrQuery::getFacetDateGap »
  • PHP Manual
  • SolrQuery
  • Retourne tous les champs facet.date

SolrQuery::getFacetDateFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateFields — Retourne tous les champs facet.date

Description

public array SolrQuery::getFacetDateFields ( void )

Retourne tous les champs facet.date.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne tous les champs facet.date sous la forme d'un tableau ou NULL si aucun n'a été défini.


Récupère la valeur du paramètre facet.date.gap

  • « SolrQuery::getFacetDateFields
  • SolrQuery::getFacetDateHardEnd »
  • PHP Manual
  • SolrQuery
  • Récupère la valeur du paramètre facet.date.gap

SolrQuery::getFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateGap — Récupère la valeur du paramètre facet.date.gap

Description

public string SolrQuery::getFacetDateGap ([ string $field_override ] )

Récupère la valeur du paramètre facet.date.gap. La méthode accepte un champ à y substituer.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL s'il n'est pas défini.


Récupère la valeur du paramètre facet.date.hardend

  • « SolrQuery::getFacetDateGap
  • SolrQuery::getFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Récupère la valeur du paramètre facet.date.hardend

SolrQuery::getFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateHardEnd — Récupère la valeur du paramètre facet.date.hardend

Description

public string SolrQuery::getFacetDateHardEnd ([ string $field_override ] )

Récupère la valeur du paramètre facet.date.hardend . La méthode accepte un champ à y substituer.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL s'il n'est pas défini.


Récupère la valeur du paramètre facet.date.other

  • « SolrQuery::getFacetDateHardEnd
  • SolrQuery::getFacetDateStart »
  • PHP Manual
  • SolrQuery
  • Récupère la valeur du paramètre facet.date.other

SolrQuery::getFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateOther — Récupère la valeur du paramètre facet.date.other

Description

public array SolrQuery::getFacetDateOther ([ string $field_override ] )

Récupère la valeur du paramètre facet.date.other. La méthode accepte un champ à y substituer.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL s'il n'est pas défini.


Récupère la limite inférieure du premier intervalle de la date pour toutes les facettes de date pour ce champ

  • « SolrQuery::getFacetDateOther
  • SolrQuery::getFacetFields »
  • PHP Manual
  • SolrQuery
  • Récupère la limite inférieure du premier intervalle de la date pour toutes les facettes de date pour ce champ

SolrQuery::getFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateStart — Récupère la limite inférieure du premier intervalle de la date pour toutes les facettes de date pour ce champ

Description

public string SolrQuery::getFacetDateStart ([ string $field_override ] )

Récupère la limite inférieure du premier intervalle de la date pour toutes les facettes de date pour ce champ. Accepte un champ optionnel pour l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si le paramètre n'est pas défini.


Récupère toutes les facettes des champs

  • « SolrQuery::getFacetDateStart
  • SolrQuery::getFacetLimit »
  • PHP Manual
  • SolrQuery
  • Récupère toutes les facettes des champs

SolrQuery::getFacetFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetFields — Récupère toutes les facettes des champs

Description

public array SolrQuery::getFacetFields ( void )

Récupère toutes les facettes des champs.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant tous les champs et NULL si aucun n'a été défini.


Récupère le nombre maximal de contraintes qui peut être retourné pour les facettes des champs

  • « SolrQuery::getFacetFields
  • SolrQuery::getFacetMethod »
  • PHP Manual
  • SolrQuery
  • Récupère le nombre maximal de contraintes qui peut être retourné pour les facettes des champs

SolrQuery::getFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::getFacetLimit — Récupère le nombre maximal de contraintes qui peut être retourné pour les facettes des champs

Description

public int SolrQuery::getFacetLimit ([ string $field_override ] )

Récupère le nombre maximal de contraintes qui peut être retourné pour les facettes des champs. Cette méthode accepte un champ optionnel autorisant l'écrasement.

Liste de paramètres

field_override

Le nom du champ

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun paramètre n'est défini.


Récupère la valeur du paramètre facet.method

  • « SolrQuery::getFacetLimit
  • SolrQuery::getFacetMinCount »
  • PHP Manual
  • SolrQuery
  • Récupère la valeur du paramètre facet.method

SolrQuery::getFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::getFacetMethod — Récupère la valeur du paramètre facet.method

Description

public string SolrQuery::getFacetMethod ([ string $field_override ] )

Récupère la valeur du paramètre facet.method. La méthode accepte un champ à y substituer.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL s'il n'est pas défini.


Récupère le nombre minimal de facettes des champs qui doivent être incluses dans la réponse

  • « SolrQuery::getFacetMethod
  • SolrQuery::getFacetMissing »
  • PHP Manual
  • SolrQuery
  • Récupère le nombre minimal de facettes des champs qui doivent être incluses dans la réponse

SolrQuery::getFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::getFacetMinCount — Récupère le nombre minimal de facettes des champs qui doivent être incluses dans la réponse

Description

public int SolrQuery::getFacetMinCount ([ string $field_override ] )

Récupère le nombre minimal de facettes des champs qui doivent être incluses dans la réponse. Accepte un champ optionnel autorisant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun paramètre n'est défini.


Récupère l'état courant du paramètre facet.missing

  • « SolrQuery::getFacetMinCount
  • SolrQuery::getFacetOffset »
  • PHP Manual
  • SolrQuery
  • Récupère l'état courant du paramètre facet.missing

SolrQuery::getFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::getFacetMissing — Récupère l'état courant du paramètre facet.missing

Description

public bool SolrQuery::getFacetMissing ([ string $field_override ] )

Récupère l'état courant du paramètre facet.missing. Accepte un champ optionnel autorisant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun paramètre n'est défini.


Récupère la position dans la liste des contraintes à utiliser pour la pagination

  • « SolrQuery::getFacetMissing
  • SolrQuery::getFacetPrefix »
  • PHP Manual
  • SolrQuery
  • Récupère la position dans la liste des contraintes à utiliser pour la pagination

SolrQuery::getFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::getFacetOffset — Récupère la position dans la liste des contraintes à utiliser pour la pagination

Description

public int SolrQuery::getFacetOffset ([ string $field_override ] )

Récupère la position dans la liste des contraintes à utiliser pour la pagination. Accepte un champ optionnel autorisant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun paramètre n'est défini.


Récupère le préfixe de la facette

  • « SolrQuery::getFacetOffset
  • SolrQuery::getFacetQueries »
  • PHP Manual
  • SolrQuery
  • Récupère le préfixe de la facette

SolrQuery::getFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::getFacetPrefix — Récupère le préfixe de la facette

Description

public string SolrQuery::getFacetPrefix ([ string $field_override ] )

Récupère le préfixe de la facette.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun paramètre n'est défini.


Récupère toutes les facettes des requêtes

  • « SolrQuery::getFacetPrefix
  • SolrQuery::getFacetSort »
  • PHP Manual
  • SolrQuery
  • Récupère toutes les facettes des requêtes

SolrQuery::getFacetQueries

(PECL solr >= 0.9.2)

SolrQuery::getFacetQueries — Récupère toutes les facettes des requêtes

Description

public array SolrQuery::getFacetQueries ( void )

Récupère toutes les facettes des requêtes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun paramètre n'a été défini.


Retourne le type de tri de la facette

  • « SolrQuery::getFacetQueries
  • SolrQuery::getFields »
  • PHP Manual
  • SolrQuery
  • Retourne le type de tri de la facette

SolrQuery::getFacetSort

(PECL solr >= 0.9.2)

SolrQuery::getFacetSort — Retourne le type de tri de la facette

Description

public int SolrQuery::getFacetSort ([ string $field_override ] )

Retourne un entier (SolrQuery::FACET_SORT_INDEX ou SolrQuery::FACET_SORT_COUNT).

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un entier (SolrQuery::FACET_SORT_INDEX ou SolrQuery::FACET_SORT_COUNT) en cas de succès, et NULL si aucun paramètre n'est défini.


Récupère la liste des champs qui seront retournés dans la réponse

  • « SolrQuery::getFacetSort
  • SolrQuery::getFilterQueries »
  • PHP Manual
  • SolrQuery
  • Récupère la liste des champs qui seront retournés dans la réponse

SolrQuery::getFields

(PECL solr >= 0.9.2)

SolrQuery::getFields — Récupère la liste des champs qui seront retournés dans la réponse

Description

public array SolrQuery::getFields ( void )

Récupère la liste des champs qui seront retournés dans la réponse.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun n'est défini.


Récupère un tableau de filtres de requêtes

  • « SolrQuery::getFields
  • SolrQuery::getGroup »
  • PHP Manual
  • SolrQuery
  • Récupère un tableau de filtres de requêtes

SolrQuery::getFilterQueries

(PECL solr >= 0.9.2)

SolrQuery::getFilterQueries — Récupère un tableau de filtres de requêtes

Description

public array SolrQuery::getFilterQueries ( void )

Récupère un tableau de filtres de requêtes. Ce sont les requêtes qui peuvent être utilisées pour restreindre le jeu de documents qui peut être retourné, sans influencer le score.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun n'est défini.


Returns true if grouping is enabled

  • « SolrQuery::getFilterQueries
  • SolrQuery::getGroupCachePercent »
  • PHP Manual
  • SolrQuery
  • Returns true if grouping is enabled

SolrQuery::getGroup

(PECL solr >= 2.2.0)

SolrQuery::getGroup — Returns true if grouping is enabled

Description

public bool SolrQuery::getGroup ( void )

Returns true if grouping is enabled

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)


Returns group cache percent value

  • « SolrQuery::getGroup
  • SolrQuery::getGroupFacet »
  • PHP Manual
  • SolrQuery
  • Returns group cache percent value

SolrQuery::getGroupCachePercent

(PECL solr >= 2.2.0)

SolrQuery::getGroupCachePercent — Returns group cache percent value

Description

public integer SolrQuery::getGroupCachePercent ( void )

Returns group cache percent value

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Returns the group.facet parameter value

  • « SolrQuery::getGroupCachePercent
  • SolrQuery::getGroupFields »
  • PHP Manual
  • SolrQuery
  • Returns the group.facet parameter value

SolrQuery::getGroupFacet

(PECL solr >= 2.2.0)

SolrQuery::getGroupFacet — Returns the group.facet parameter value

Description

public bool SolrQuery::getGroupFacet ( void )

Returns the group.facet parameter value

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrQuery::setGroupFacet() - Sets group.facet parameter


Returns group fields (group.field parameter values)

  • « SolrQuery::getGroupFacet
  • SolrQuery::getGroupFormat »
  • PHP Manual
  • SolrQuery
  • Returns group fields (group.field parameter values)

SolrQuery::getGroupFields

(PECL solr >= 2.2.0)

SolrQuery::getGroupFields — Returns group fields (group.field parameter values)

Description

public array SolrQuery::getGroupFields ( void )

Returns group fields (group.field parameter values)

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrQuery::addGroupField() - Add a field to be used to group results.


Returns the group.format value

  • « SolrQuery::getGroupFields
  • SolrQuery::getGroupFunctions »
  • PHP Manual
  • SolrQuery
  • Returns the group.format value

SolrQuery::getGroupFormat

(PECL solr >= 2.2.0)

SolrQuery::getGroupFormat — Returns the group.format value

Description

public string SolrQuery::getGroupFormat ( void )

Returns the group.format value

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).


Returns group functions (group.func parameter values)

  • « SolrQuery::getGroupFormat
  • SolrQuery::getGroupLimit »
  • PHP Manual
  • SolrQuery
  • Returns group functions (group.func parameter values)

SolrQuery::getGroupFunctions

(PECL solr >= 2.2.0)

SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)

Description

public array SolrQuery::getGroupFunctions ( void )

Returns group functions (group.func parameter values)

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).


Returns the group.limit value

  • « SolrQuery::getGroupFunctions
  • SolrQuery::getGroupMain »
  • PHP Manual
  • SolrQuery
  • Returns the group.limit value

SolrQuery::getGroupLimit

(PECL solr >= 2.2.0)

SolrQuery::getGroupLimit — Returns the group.limit value

Description

public integer SolrQuery::getGroupLimit ( void )

Returns the group.limit value

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.


Returns the group.main value

  • « SolrQuery::getGroupLimit
  • SolrQuery::getGroupNGroups »
  • PHP Manual
  • SolrQuery
  • Returns the group.main value

SolrQuery::getGroupMain

(PECL solr >= 2.2.0)

SolrQuery::getGroupMain — Returns the group.main value

Description

public bool SolrQuery::getGroupMain ( void )

Returns the group.main value

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.


Returns the group.ngroups value

  • « SolrQuery::getGroupMain
  • SolrQuery::getGroupOffset »
  • PHP Manual
  • SolrQuery
  • Returns the group.ngroups value

SolrQuery::getGroupNGroups

(PECL solr >= 2.2.0)

SolrQuery::getGroupNGroups — Returns the group.ngroups value

Description

public bool SolrQuery::getGroupNGroups ( void )

Returns the group.ngroups value

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.


Returns the group.offset value

  • « SolrQuery::getGroupNGroups
  • SolrQuery::getGroupQueries »
  • PHP Manual
  • SolrQuery
  • Returns the group.offset value

SolrQuery::getGroupOffset

(PECL solr >= 2.2.0)

SolrQuery::getGroupOffset — Returns the group.offset value

Description

public integer SolrQuery::getGroupOffset ( void )

Returns the group.offset value

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.


Returns all the group.query parameter values

  • « SolrQuery::getGroupOffset
  • SolrQuery::getGroupSortFields »
  • PHP Manual
  • SolrQuery
  • Returns all the group.query parameter values

SolrQuery::getGroupQueries

(PECL solr >= 2.2.0)

SolrQuery::getGroupQueries — Returns all the group.query parameter values

Description

public array SolrQuery::getGroupQueries ( void )

Returns all the group.query parameter values

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

array

Voir aussi

  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.


Returns the group.sort value

  • « SolrQuery::getGroupQueries
  • SolrQuery::getGroupTruncate »
  • PHP Manual
  • SolrQuery
  • Returns the group.sort value

SolrQuery::getGroupSortFields

(PECL solr >= 2.2.0)

SolrQuery::getGroupSortFields — Returns the group.sort value

Description

public array SolrQuery::getGroupSortFields ( void )

Returns the group.sort value

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).


Returns the group.truncate value

  • « SolrQuery::getGroupSortFields
  • SolrQuery::getHighlight »
  • PHP Manual
  • SolrQuery
  • Returns the group.truncate value

SolrQuery::getGroupTruncate

(PECL solr >= 2.2.0)

SolrQuery::getGroupTruncate — Returns the group.truncate value

Description

public bool SolrQuery::getGroupTruncate ( void )

Returns the group.truncate value

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.


Récupère l'état du paramètre h1

  • « SolrQuery::getGroupTruncate
  • SolrQuery::getHighlightAlternateField »
  • PHP Manual
  • SolrQuery
  • Récupère l'état du paramètre h1

SolrQuery::getHighlight

(PECL solr >= 0.9.2)

SolrQuery::getHighlight — Récupère l'état du paramètre h1

Description

public bool SolrQuery::getHighlight ( void )

Retourne un booléen indiquant si les extraits mis en évidence doivent être générés dans la réponse.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.


Récupère le champ mis en évidence à utiliser comme champ par défaut ou comme champ de sauvegarde

  • « SolrQuery::getHighlight
  • SolrQuery::getHighlightFields »
  • PHP Manual
  • SolrQuery
  • Récupère le champ mis en évidence à utiliser comme champ par défaut ou comme champ de sauvegarde

SolrQuery::getHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::getHighlightAlternateField — Récupère le champ mis en évidence à utiliser comme champ par défaut ou comme champ de sauvegarde

Description

public string SolrQuery::getHighlightAlternateField ([ string $field_override ] )

Récupère le champ mis en évidence à utiliser comme champ par défaut ou comme champ de sauvegarde. Accepte un champ optionnel autorisant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'a été défini.


Récupère tous les champs pour lesquels Solr doit mettre en évidence un extrait

  • « SolrQuery::getHighlightAlternateField
  • SolrQuery::getHighlightFormatter »
  • PHP Manual
  • SolrQuery
  • Récupère tous les champs pour lesquels Solr doit mettre en évidence un extrait

SolrQuery::getHighlightFields

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFields — Récupère tous les champs pour lesquels Solr doit mettre en évidence un extrait

Description

public array SolrQuery::getHighlightFields ( void )

Récupère tous les champs pour lesquels Solr doit mettre en évidence un extrait.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun n'a été défini.


Récupère le formatage utilisé pour mettre en évidence la sortie

  • « SolrQuery::getHighlightFields
  • SolrQuery::getHighlightFragmenter »
  • PHP Manual
  • SolrQuery
  • Récupère le formatage utilisé pour mettre en évidence la sortie

SolrQuery::getHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFormatter — Récupère le formatage utilisé pour mettre en évidence la sortie

Description

public string SolrQuery::getHighlightFormatter ([ string $field_override ] )

Récupère le formatage utilisé pour mettre en évidence la sortie.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.


Récupère le générateur d'extrait de texte pour la mise en évidence

  • « SolrQuery::getHighlightFormatter
  • SolrQuery::getHighlightFragsize »
  • PHP Manual
  • SolrQuery
  • Récupère le générateur d'extrait de texte pour la mise en évidence

SolrQuery::getHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragmenter — Récupère le générateur d'extrait de texte pour la mise en évidence

Description

public string SolrQuery::getHighlightFragmenter ([ string $field_override ] )

Récupère le générateur d'extrait de texte pour la mise en évidence. Accepte un champ optionnel permettant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.


Retourne le nombre de caractères des fragments à considérer pour la mise en évidence

  • « SolrQuery::getHighlightFragmenter
  • SolrQuery::getHighlightHighlightMultiTerm »
  • PHP Manual
  • SolrQuery
  • Retourne le nombre de caractères des fragments à considérer pour la mise en évidence

SolrQuery::getHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragsize — Retourne le nombre de caractères des fragments à considérer pour la mise en évidence

Description

public int SolrQuery::getHighlightFragsize ([ string $field_override ] )

Retourne le nombre de caractères des fragments à considérer pour la mise en évidence. Zéro signifie aucun fragments. Le champ entier devrait être utilisé.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.


Retourne si l'on doit activer la mise en évidence pour les intervalles/jokers/flous/préfixes des requêtes

  • « SolrQuery::getHighlightFragsize
  • SolrQuery::getHighlightMaxAlternateFieldLength »
  • PHP Manual
  • SolrQuery
  • Retourne si l'on doit activer la mise en évidence pour les intervalles/jokers/flous/préfixes des requêtes

SolrQuery::getHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::getHighlightHighlightMultiTerm — Retourne si l'on doit activer la mise en évidence pour les intervalles/jokers/flous/préfixes des requêtes

Description

public bool SolrQuery::getHighlightHighlightMultiTerm ( void )

Retourne si l'on doit activer la mise en évidence pour les intervalles/jokers/flous/préfixes des requêtes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.


Retourne le nombre maximal de caractères du champ à retourner

  • « SolrQuery::getHighlightHighlightMultiTerm
  • SolrQuery::getHighlightMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Retourne le nombre maximal de caractères du champ à retourner

SolrQuery::getHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAlternateFieldLength — Retourne le nombre maximal de caractères du champ à retourner

Description

public int SolrQuery::getHighlightMaxAlternateFieldLength ([ string $field_override ] )

Retourne le nombre maximal de caractères du champ à retourner.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.


Retourne le nombre maximal de caractères du document dans lequel les extraits seront cherchés

  • « SolrQuery::getHighlightMaxAlternateFieldLength
  • SolrQuery::getHighlightMergeContiguous »
  • PHP Manual
  • SolrQuery
  • Retourne le nombre maximal de caractères du document dans lequel les extraits seront cherchés

SolrQuery::getHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAnalyzedChars — Retourne le nombre maximal de caractères du document dans lequel les extraits seront cherchés

Description

public int SolrQuery::getHighlightMaxAnalyzedChars ( void )

Retourne le nombre maximal de caractères du document dans lequel les extraits seront cherchés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.


Retourne si l'on doit rassembler les fragments contigus en un seul fragment

  • « SolrQuery::getHighlightMaxAnalyzedChars
  • SolrQuery::getHighlightRegexMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Retourne si l'on doit rassembler les fragments contigus en un seul fragment

SolrQuery::getHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMergeContiguous — Retourne si l'on doit rassembler les fragments contigus en un seul fragment

Description

public bool SolrQuery::getHighlightMergeContiguous ([ string $field_override ] )

Retourne si l'on doit rassembler les fragments contigus en un seul fragment. Accepte un champ optionnel permettant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.


Retourne le nombre maximal de caractères depuis un champ lors de l'utilisation d'une regex

  • « SolrQuery::getHighlightMergeContiguous
  • SolrQuery::getHighlightRegexPattern »
  • PHP Manual
  • SolrQuery
  • Retourne le nombre maximal de caractères depuis un champ lors de l'utilisation d'une regex

SolrQuery::getHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexMaxAnalyzedChars — Retourne le nombre maximal de caractères depuis un champ lors de l'utilisation d'une regex

Description

public int SolrQuery::getHighlightRegexMaxAnalyzedChars ( void )

Retourne le nombre maximal de caractères depuis un champ lors de l'utilisation d'une regex.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.


Récupère l'expression rationnelle utilisée pour la fragmentation

  • « SolrQuery::getHighlightRegexMaxAnalyzedChars
  • SolrQuery::getHighlightRegexSlop »
  • PHP Manual
  • SolrQuery
  • Récupère l'expression rationnelle utilisée pour la fragmentation

SolrQuery::getHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexPattern — Récupère l'expression rationnelle utilisée pour la fragmentation

Description

public string SolrQuery::getHighlightRegexPattern ( void )

Récupère l'expression rationnelle utilisée pour la fragmentation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.


Récupère le facteur de déviation depuis la taille du fragment idéal

  • « SolrQuery::getHighlightRegexPattern
  • SolrQuery::getHighlightRequireFieldMatch »
  • PHP Manual
  • SolrQuery
  • Récupère le facteur de déviation depuis la taille du fragment idéal

SolrQuery::getHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexSlop — Récupère le facteur de déviation depuis la taille du fragment idéal

Description

public float SolrQuery::getHighlightRegexSlop ( void )

Retourne le facteur utilisé par l'expression rationnelle de fragmentation pour la déviation depuis la taille idéal du fragment afin d'accommoder l'expression rationnelle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un double en cas de succès, et NULL si aucun n'est défini.


Retourne si le champ ne doit être mis en évidence que si la requête correspond à un champ en particulier

  • « SolrQuery::getHighlightRegexSlop
  • SolrQuery::getHighlightSimplePost »
  • PHP Manual
  • SolrQuery
  • Retourne si le champ ne doit être mis en évidence que si la requête correspond à un champ en particulier

SolrQuery::getHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRequireFieldMatch — Retourne si le champ ne doit être mis en évidence que si la requête correspond à un champ en particulier

Description

public bool SolrQuery::getHighlightRequireFieldMatch ( void )

Retourne si le champ ne doit être mis en évidence que si la requête correspond à un champ en particulier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.


Récupère le texte qui doit apparaître après le terme mise en évidence

  • « SolrQuery::getHighlightRequireFieldMatch
  • SolrQuery::getHighlightSimplePre »
  • PHP Manual
  • SolrQuery
  • Récupère le texte qui doit apparaître après le terme mise en évidence

SolrQuery::getHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePost — Récupère le texte qui doit apparaître après le terme mise en évidence

Description

public string SolrQuery::getHighlightSimplePost ([ string $field_override ] )

Récupère le texte qui doit apparaître après le terme mise en évidence. Accepte un champ optionnel permettant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.


Retourne le texte qui doit apparaître avant le terme mise en évidence

  • « SolrQuery::getHighlightSimplePost
  • SolrQuery::getHighlightSnippets »
  • PHP Manual
  • SolrQuery
  • Retourne le texte qui doit apparaître avant le terme mise en évidence

SolrQuery::getHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePre — Retourne le texte qui doit apparaître avant le terme mise en évidence

Description

public string SolrQuery::getHighlightSimplePre ([ string $field_override ] )

Retourne le texte qui doit apparaître avant le terme mise en évidence. Accepte un champ optionnel permettant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.


Récupère le nombre maximal d'extraits mis en évidence à générer par champ

  • « SolrQuery::getHighlightSimplePre
  • SolrQuery::getHighlightUsePhraseHighlighter »
  • PHP Manual
  • SolrQuery
  • Récupère le nombre maximal d'extraits mis en évidence à générer par champ

SolrQuery::getHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSnippets — Récupère le nombre maximal d'extraits mis en évidence à générer par champ

Description

public int SolrQuery::getHighlightSnippets ([ string $field_override ] )

>Récupère le nombre maximal d'extraits mis en évidence à générer par champ. Accepte un champ optionnel permettant l'écrasement.

Liste de paramètres

field_override

Le nom du champ.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.


Récupère l'état du paramètre hl.usePhraseHighlighter

  • « SolrQuery::getHighlightSnippets
  • SolrQuery::getMlt »
  • PHP Manual
  • SolrQuery
  • Récupère l'état du paramètre hl.usePhraseHighlighter

SolrQuery::getHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightUsePhraseHighlighter — Récupère l'état du paramètre hl.usePhraseHighlighter

Description

public bool SolrQuery::getHighlightUsePhraseHighlighter ( void )

Retourne si l'on doit utiliser SpanScorer pour mettre en évidence les termes d'une phrase uniquement lorsqu'ils apparaissent dans la phrase de requête du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.


Retourne si les résultats MoreLikeThis doivent être activés

  • « SolrQuery::getHighlightUsePhraseHighlighter
  • SolrQuery::getMltBoost »
  • PHP Manual
  • SolrQuery
  • Retourne si les résultats MoreLikeThis doivent être activés

SolrQuery::getMlt

(PECL solr >= 0.9.2)

SolrQuery::getMlt — Retourne si les résultats MoreLikeThis doivent être activés

Description

public bool SolrQuery::getMlt ( void )

Retourne si les résultats MoreLikeThis doivent être activés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.


Retourne si la requête doit être améliorée en utilisant la pertinence des termes

  • « SolrQuery::getMlt
  • SolrQuery::getMltCount »
  • PHP Manual
  • SolrQuery
  • Retourne si la requête doit être améliorée en utilisant la pertinence des termes

SolrQuery::getMltBoost

(PECL solr >= 0.9.2)

SolrQuery::getMltBoost — Retourne si la requête doit être améliorée en utilisant la pertinence des termes

Description

public bool SolrQuery::getMltBoost ( void )

Retourne si la requête doit être améliorée en utilisant la pertinence des termes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.


Récupère le nombre de documents similaires à retourner pour chaque résultat

  • « SolrQuery::getMltBoost
  • SolrQuery::getMltFields »
  • PHP Manual
  • SolrQuery
  • Récupère le nombre de documents similaires à retourner pour chaque résultat

SolrQuery::getMltCount

(PECL solr >= 0.9.2)

SolrQuery::getMltCount — Récupère le nombre de documents similaires à retourner pour chaque résultat

Description

public int SolrQuery::getMltCount ( void )

Récupère le nombre de documents similaires à retourner pour chaque résultat.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.


Récupère tous les champs à utiliser pour la similarité

  • « SolrQuery::getMltCount
  • SolrQuery::getMltMaxNumQueryTerms »
  • PHP Manual
  • SolrQuery
  • Récupère tous les champs à utiliser pour la similarité

SolrQuery::getMltFields

(PECL solr >= 0.9.2)

SolrQuery::getMltFields — Récupère tous les champs à utiliser pour la similarité

Description

public array SolrQuery::getMltFields ( void )

Récupère tous les champs à utiliser pour la similarité.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun n'est défini.


Retourne le nombre maximal de termes de requête qui peuvent être inclus lors de la génération d'une requête

  • « SolrQuery::getMltFields
  • SolrQuery::getMltMaxNumTokens »
  • PHP Manual
  • SolrQuery
  • Retourne le nombre maximal de termes de requête qui peuvent être inclus lors de la génération d'une requête

SolrQuery::getMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumQueryTerms — Retourne le nombre maximal de termes de requête qui peuvent être inclus lors de la génération d'une requête

Description

public int SolrQuery::getMltMaxNumQueryTerms ( void )

Retourne le nombre maximal de termes de requête qui peuvent être inclus lors de la génération d'une requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si le nombre maximal n'est pas défini.


Retourne le nombre maximal de jokers à analyser dans chaque champ du document

  • « SolrQuery::getMltMaxNumQueryTerms
  • SolrQuery::getMltMaxWordLength »
  • PHP Manual
  • SolrQuery
  • Retourne le nombre maximal de jokers à analyser dans chaque champ du document

SolrQuery::getMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumTokens — Retourne le nombre maximal de jokers à analyser dans chaque champ du document

Description

public int SolrQuery::getMltMaxNumTokens ( void )

Retourne le nombre maximal de jokers à analyser dans chaque champ du document qui n'est pas stocké avec le support TermVector.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si le nombre maximal de jokers n'est pas défini.


Retourne la longueur minimale des mots en deçà de laquelle ils seront ignorés

  • « SolrQuery::getMltMaxNumTokens
  • SolrQuery::getMltMinDocFrequency »
  • PHP Manual
  • SolrQuery
  • Retourne la longueur minimale des mots en deçà de laquelle ils seront ignorés

SolrQuery::getMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxWordLength — Retourne la longueur minimale des mots en deçà de laquelle ils seront ignorés

Description

public int SolrQuery::getMltMaxWordLength ( void )

Retourne la longueur minimale des mots en deçà de laquelle ils seront ignorés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si la longueur n'est pas définie.


Retourne le seuil de fréquence d'apparition des mots

  • « SolrQuery::getMltMaxWordLength
  • SolrQuery::getMltMinTermFrequency »
  • PHP Manual
  • SolrQuery
  • Retourne le seuil de fréquence d'apparition des mots

SolrQuery::getMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinDocFrequency — Retourne le seuil de fréquence d'apparition des mots

Description

public int SolrQuery::getMltMinDocFrequency ( void )

Retourne le seuil de fréquence d'apparition des mots en deçà duquel ils seront ignorés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si le seuil n'est pas défini.


Retourne la fréquence en deçà duquel les termes doivent être ignorés dans le document source

  • « SolrQuery::getMltMinDocFrequency
  • SolrQuery::getMltMinWordLength »
  • PHP Manual
  • SolrQuery
  • Retourne la fréquence en deçà duquel les termes doivent être ignorés dans le document source

SolrQuery::getMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinTermFrequency — Retourne la fréquence en deçà duquel les termes doivent être ignorés dans le document source

Description

public int SolrQuery::getMltMinTermFrequency ( void )

Retourne la fréquence en deçà duquel les termes doivent être ignorés dans le document source.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si la fréquence n'est pas définie.


Retourne la longueur minimum d'un mot en deça duquel il sera ignoré

  • « SolrQuery::getMltMinTermFrequency
  • SolrQuery::getMltQueryFields »
  • PHP Manual
  • SolrQuery
  • Retourne la longueur minimum d'un mot en deça duquel il sera ignoré

SolrQuery::getMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMinWordLength — Retourne la longueur minimum d'un mot en deça duquel il sera ignoré

Description

public int SolrQuery::getMltMinWordLength ( void )

Retourne la longueur minimum d'un mot en deça duquel il sera ignoré.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si la longueur n'est pas définie.


Retourne les champs de la requête ainsi que leurs boosts

  • « SolrQuery::getMltMinWordLength
  • SolrQuery::getQuery »
  • PHP Manual
  • SolrQuery
  • Retourne les champs de la requête ainsi que leurs boosts

SolrQuery::getMltQueryFields

(PECL solr >= 0.9.2)

SolrQuery::getMltQueryFields — Retourne les champs de la requête ainsi que leurs boosts

Description

public array SolrQuery::getMltQueryFields ( void )

Retourne les champs de la requête ainsi que leurs boosts.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun champ n'est défini.


Retourne la requête principale

  • « SolrQuery::getMltQueryFields
  • SolrQuery::getRows »
  • PHP Manual
  • SolrQuery
  • Retourne la requête principale

SolrQuery::getQuery

(PECL solr >= 0.9.2)

SolrQuery::getQuery — Retourne la requête principale

Description

public string SolrQuery::getQuery ( void )

Retourne la requête principale.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si indéfini.


Retourne le nombre maximal de documents

  • « SolrQuery::getQuery
  • SolrQuery::getSortFields »
  • PHP Manual
  • SolrQuery
  • Retourne le nombre maximal de documents

SolrQuery::getRows

(PECL solr >= 0.9.2)

SolrQuery::getRows — Retourne le nombre maximal de documents

Description

public int SolrQuery::getRows ( void )

Retourne le nombre maximal de documents depuis le jeu complet de résultats à retourner au client à chaque requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si indéfini.


Retourne tous les champs de tri

  • « SolrQuery::getRows
  • SolrQuery::getStart »
  • PHP Manual
  • SolrQuery
  • Retourne tous les champs de tri

SolrQuery::getSortFields

(PECL solr >= 0.9.2)

SolrQuery::getSortFields — Retourne tous les champs de tri

Description

public array SolrQuery::getSortFields ( void )

Retourne tous les champs de tri.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun paramètre n'est défini.


Retourne la position dans le jeu complet de résultats

  • « SolrQuery::getSortFields
  • SolrQuery::getStats »
  • PHP Manual
  • SolrQuery
  • Retourne la position dans le jeu complet de résultats

SolrQuery::getStart

(PECL solr >= 0.9.2)

SolrQuery::getStart — Retourne la position dans le jeu complet de résultats

Description

public int SolrQuery::getStart ( void )

Retourne la position dans le jeu complet de résultats de la requête à partir de laquelle on doit commencer à retourner les documents.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si indéfini.


Vérifie si les statistiques sont actives ou non

  • « SolrQuery::getStart
  • SolrQuery::getStatsFacets »
  • PHP Manual
  • SolrQuery
  • Vérifie si les statistiques sont actives ou non

SolrQuery::getStats

(PECL solr >= 0.9.2)

SolrQuery::getStats — Vérifie si les statistiques sont actives ou non

Description

public bool SolrQuery::getStats ( void )

Vérifie si les statistiques sont actives ou non.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si indéfini.


Retourne toutes les statistiques définies

  • « SolrQuery::getStats
  • SolrQuery::getStatsFields »
  • PHP Manual
  • SolrQuery
  • Retourne toutes les statistiques définies

SolrQuery::getStatsFacets

(PECL solr >= 0.9.2)

SolrQuery::getStatsFacets — Retourne toutes les statistiques définies

Description

public array SolrQuery::getStatsFacets ( void )

Retourne toutes les statistiques définies.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucune n'est définie.


Retourne les statistiques des champs

  • « SolrQuery::getStatsFacets
  • SolrQuery::getTerms »
  • PHP Manual
  • SolrQuery
  • Retourne les statistiques des champs

SolrQuery::getStatsFields

(PECL solr >= 0.9.2)

SolrQuery::getStatsFields — Retourne les statistiques des champs

Description

public array SolrQuery::getStatsFields ( void )

Retourne les statistiques des champs.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau en cas de succès, et NULL si aucun n'est défini.


Vérifie si le TermsComponent est activé ou non

  • « SolrQuery::getStatsFields
  • SolrQuery::getTermsField »
  • PHP Manual
  • SolrQuery
  • Vérifie si le TermsComponent est activé ou non

SolrQuery::getTerms

(PECL solr >= 0.9.2)

SolrQuery::getTerms — Vérifie si le TermsComponent est activé ou non

Description

public bool SolrQuery::getTerms ( void )

Vérifie si le TermsComponent est activé ou non

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si indéfini.


Récupère le champ depuis lequel les termes sont récupérés

  • « SolrQuery::getTerms
  • SolrQuery::getTermsIncludeLowerBound »
  • PHP Manual
  • SolrQuery
  • Récupère le champ depuis lequel les termes sont récupérés

SolrQuery::getTermsField

(PECL solr >= 0.9.2)

SolrQuery::getTermsField — Récupère le champ depuis lequel les termes sont récupérés

Description

public string SolrQuery::getTermsField ( void )

Récupère le champ depuis lequel les termes sont récupérés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun champ n'est défini.


Vérifie si l'on doit inclure ou non la limite inférieure dans le jeu de résultats

  • « SolrQuery::getTermsField
  • SolrQuery::getTermsIncludeUpperBound »
  • PHP Manual
  • SolrQuery
  • Vérifie si l'on doit inclure ou non la limite inférieure dans le jeu de résultats

SolrQuery::getTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeLowerBound — Vérifie si l'on doit inclure ou non la limite inférieure dans le jeu de résultats

Description

public bool SolrQuery::getTermsIncludeLowerBound ( void )

Vérifie si l'on doit inclure ou non la limite inférieure dans le jeu de résultats.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès, et NULL si aucun n'est défini.


Vérifie si l'on doit inclure ou non la limite supérieure dans le jeu de résultats

  • « SolrQuery::getTermsIncludeLowerBound
  • SolrQuery::getTermsLimit »
  • PHP Manual
  • SolrQuery
  • Vérifie si l'on doit inclure ou non la limite supérieure dans le jeu de résultats

SolrQuery::getTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeUpperBound — Vérifie si l'on doit inclure ou non la limite supérieure dans le jeu de résultats

Description

public bool SolrQuery::getTermsIncludeUpperBound ( void )

Vérifie si l'on doit inclure ou non la limite supérieure dans le jeu de résultats.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès et NULL si aucun n'est défini.


Retourne le nombre maximal de termes que Solr peut retourner

  • « SolrQuery::getTermsIncludeUpperBound
  • SolrQuery::getTermsLowerBound »
  • PHP Manual
  • SolrQuery
  • Retourne le nombre maximal de termes que Solr peut retourner

SolrQuery::getTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::getTermsLimit — Retourne le nombre maximal de termes que Solr peut retourner

Description

public int SolrQuery::getTermsLimit ( void )

Retourne le nombre maximal de termes que Solr peut retourner.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun nombre n'est défini.


Retourne le terme sur lequel on doit commencer

  • « SolrQuery::getTermsLimit
  • SolrQuery::getTermsMaxCount »
  • PHP Manual
  • SolrQuery
  • Retourne le terme sur lequel on doit commencer

SolrQuery::getTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsLowerBound — Retourne le terme sur lequel on doit commencer

Description

public string SolrQuery::getTermsLowerBound ( void )

Retourne le terme sur lequel on doit commencer.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun terme n'est défini.


Retourne la fréquence maximale des documents

  • « SolrQuery::getTermsLowerBound
  • SolrQuery::getTermsMinCount »
  • PHP Manual
  • SolrQuery
  • Retourne la fréquence maximale des documents

SolrQuery::getTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMaxCount — Retourne la fréquence maximale des documents

Description

public int SolrQuery::getTermsMaxCount ( void )

Retourne la fréquence maximale des documents.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucune fréquence n'est retournée.


Retourne la fréquence minimale des documents

  • « SolrQuery::getTermsMaxCount
  • SolrQuery::getTermsPrefix »
  • PHP Manual
  • SolrQuery
  • Retourne la fréquence minimale des documents

SolrQuery::getTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMinCount — Retourne la fréquence minimale des documents

Description

public int SolrQuery::getTermsMinCount ( void )

Retourne la fréquence minimale des documents à retourner aux fins d'inclusion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucune fréquence n'est définie.


Retourne le préfixe du terme

  • « SolrQuery::getTermsMinCount
  • SolrQuery::getTermsReturnRaw »
  • PHP Manual
  • SolrQuery
  • Retourne le préfixe du terme

SolrQuery::getTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::getTermsPrefix — Retourne le préfixe du terme

Description

public string SolrQuery::getTermsPrefix ( void )

Retourne le préfixe utilisé pour restreindre les termes. Ainsi, seuls les termes qui commencent par ce préfixe correspondront à la recherche.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.


Si l'on doit retourner ou non les caractères brutes

  • « SolrQuery::getTermsPrefix
  • SolrQuery::getTermsSort »
  • PHP Manual
  • SolrQuery
  • Si l'on doit retourner ou non les caractères brutes

SolrQuery::getTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::getTermsReturnRaw — Si l'on doit retourner ou non les caractères brutes

Description

public bool SolrQuery::getTermsReturnRaw ( void )

Retourne un booléen indiquant si l'on doit retourner ou non les caractères brutes des termes indexés, suivant s'ils sont humainement lisibles.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen en cas de succès et NULL si aucun n'est défini.


Retourne un entier indiquant le nombre de termes stockés

  • « SolrQuery::getTermsReturnRaw
  • SolrQuery::getTermsUpperBound »
  • PHP Manual
  • SolrQuery
  • Retourne un entier indiquant le nombre de termes stockés

SolrQuery::getTermsSort

(PECL solr >= 0.9.2)

SolrQuery::getTermsSort — Retourne un entier indiquant le nombre de termes stockés

Description

public int SolrQuery::getTermsSort ( void )

SolrQuery::TERMS_SORT_INDEX indique que les termes sont retournés triés sur l'index. SolrQuery::TERMS_SORT_COUNT implique que les termes sont stockés par la fréquence des termes (le plus grand nombre en premier).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun n'est défini.


Retourne le terme sur lequel on doit s'arrêter

  • « SolrQuery::getTermsSort
  • SolrQuery::getTimeAllowed »
  • PHP Manual
  • SolrQuery
  • Retourne le terme sur lequel on doit s'arrêter

SolrQuery::getTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsUpperBound — Retourne le terme sur lequel on doit s'arrêter

Description

public string SolrQuery::getTermsUpperBound ( void )

Retourne le terme sur lequel on doit s'arrêter.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, et NULL si aucun n'est défini.


Retourne le délai d'exécution autorisé pour une requête

  • « SolrQuery::getTermsUpperBound
  • SolrQuery::removeExpandFilterQuery »
  • PHP Manual
  • SolrQuery
  • Retourne le délai d'exécution autorisé pour une requête

SolrQuery::getTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::getTimeAllowed — Retourne le délai d'exécution autorisé pour une requête

Description

public int SolrQuery::getTimeAllowed ( void )

Retourne le délai d'exécution, en millisecondes, autorisé pour une requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier en cas de succès, et NULL si aucun délai n'est défini.


Removes an expand filter query

  • « SolrQuery::getTimeAllowed
  • SolrQuery::removeExpandSortField »
  • PHP Manual
  • SolrQuery
  • Removes an expand filter query

SolrQuery::removeExpandFilterQuery

(PECL solr >= 2.2.0)

SolrQuery::removeExpandFilterQuery — Removes an expand filter query

Description

public SolrQuery SolrQuery::removeExpandFilterQuery ( string $fq )

Removes an expand filter query.

Liste de paramètres

fq

Valeurs de retour

SolrQuery

Voir aussi

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group.


Removes an expand sort field from the expand.sort parameter.

  • « SolrQuery::removeExpandFilterQuery
  • SolrQuery::removeFacetDateField »
  • PHP Manual
  • SolrQuery
  • Removes an expand sort field from the expand.sort parameter.

SolrQuery::removeExpandSortField

(PECL solr >= 2.2.0)

SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter.

Description

public SolrQuery SolrQuery::removeExpandSortField ( string $field )

Removes an expand sort field from the expand.sort parameter.

Liste de paramètres

field

field name

Valeurs de retour

SolrQuery

Voir aussi

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group.
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Supprime un champ date

  • « SolrQuery::removeExpandSortField
  • SolrQuery::removeFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Supprime un champ date

SolrQuery::removeFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateField — Supprime un champ date

Description

public SolrQuery SolrQuery::removeFacetDateField ( string $field )

Supprime un champ date.

Liste de paramètres

field

Le nom du champ à supprimer

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Supprime un paramètre facet.date.other

  • « SolrQuery::removeFacetDateField
  • SolrQuery::removeFacetField »
  • PHP Manual
  • SolrQuery
  • Supprime un paramètre facet.date.other

SolrQuery::removeFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateOther — Supprime un paramètre facet.date.other

Description

public SolrQuery SolrQuery::removeFacetDateOther ( string $value [, string $field_override ] )

Supprime un paramètre facet.date.other.

Liste de paramètres

value

La valeur

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Supprime un paramètre facet.date

  • « SolrQuery::removeFacetDateOther
  • SolrQuery::removeFacetQuery »
  • PHP Manual
  • SolrQuery
  • Supprime un paramètre facet.date

SolrQuery::removeFacetField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetField — Supprime un paramètre facet.date

Description

public SolrQuery SolrQuery::removeFacetField ( string $field )

Supprime un paramètre facet.date.

Liste de paramètres

field

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Supprime un paramètre facet.query

  • « SolrQuery::removeFacetField
  • SolrQuery::removeField »
  • PHP Manual
  • SolrQuery
  • Supprime un paramètre facet.query

SolrQuery::removeFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFacetQuery — Supprime un paramètre facet.query

Description

public SolrQuery SolrQuery::removeFacetQuery ( string $value )

Supprime un paramètre facet.query.

Liste de paramètres

value

La valeur

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Efface un champ depuis la liste des champs

  • « SolrQuery::removeFacetQuery
  • SolrQuery::removeFilterQuery »
  • PHP Manual
  • SolrQuery
  • Efface un champ depuis la liste des champs

SolrQuery::removeField

(PECL solr >= 0.9.2)

SolrQuery::removeField — Efface un champ depuis la liste des champs

Description

public SolrQuery SolrQuery::removeField ( string $field )

Efface un champ depuis la liste des champs.

Liste de paramètres

field

Nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Supprime un filtre de requête

  • « SolrQuery::removeField
  • SolrQuery::removeHighlightField »
  • PHP Manual
  • SolrQuery
  • Supprime un filtre de requête

SolrQuery::removeFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFilterQuery — Supprime un filtre de requête

Description

public SolrQuery SolrQuery::removeFilterQuery ( string $fq )

Supprime un filtre de requête.

Liste de paramètres

fq

Le filtre de requête à supprimer

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Supprime un des champs utilisés pour la mise en évidence

  • « SolrQuery::removeFilterQuery
  • SolrQuery::removeMltField »
  • PHP Manual
  • SolrQuery
  • Supprime un des champs utilisés pour la mise en évidence

SolrQuery::removeHighlightField

(PECL solr >= 0.9.2)

SolrQuery::removeHighlightField — Supprime un des champs utilisés pour la mise en évidence

Description

public SolrQuery SolrQuery::removeHighlightField ( string $field )

Supprime un des champs utilisés pour la mise en évidence.

Liste de paramètres

field

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Supprime un des champs moreLikeThis

  • « SolrQuery::removeHighlightField
  • SolrQuery::removeMltQueryField »
  • PHP Manual
  • SolrQuery
  • Supprime un des champs moreLikeThis

SolrQuery::removeMltField

(PECL solr >= 0.9.2)

SolrQuery::removeMltField — Supprime un des champs moreLikeThis

Description

public SolrQuery SolrQuery::removeMltField ( string $field )

Supprime un des champs moreLikeThis.

Liste de paramètres

field

Nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Supprime un des champs moreLikeThis de la requête

  • « SolrQuery::removeMltField
  • SolrQuery::removeSortField »
  • PHP Manual
  • SolrQuery
  • Supprime un des champs moreLikeThis de la requête

SolrQuery::removeMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::removeMltQueryField — Supprime un des champs moreLikeThis de la requête

Description

public SolrQuery SolrQuery::removeMltQueryField ( string $queryField )

Supprime un des champs moreLikeThis de la requête.

Liste de paramètres

queryField

Le champ de la requête

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Supprime un champ de tri

  • « SolrQuery::removeMltQueryField
  • SolrQuery::removeStatsFacet »
  • PHP Manual
  • SolrQuery
  • Supprime un champ de tri

SolrQuery::removeSortField

(PECL solr >= 0.9.2)

SolrQuery::removeSortField — Supprime un champ de tri

Description

public SolrQuery SolrQuery::removeSortField ( string $field )

Supprime un champ de tri

Liste de paramètres

field

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Supprime un paramètre stats.facet

  • « SolrQuery::removeSortField
  • SolrQuery::removeStatsField »
  • PHP Manual
  • SolrQuery
  • Supprime un paramètre stats.facet

SolrQuery::removeStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::removeStatsFacet — Supprime un paramètre stats.facet

Description

public SolrQuery SolrQuery::removeStatsFacet ( string $value )

Supprime un paramètre stats.facet.

Liste de paramètres

value

La valeur

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Supprime un paramètre stats.field

  • « SolrQuery::removeStatsFacet
  • SolrQuery::setEchoHandler »
  • PHP Manual
  • SolrQuery
  • Supprime un paramètre stats.field

SolrQuery::removeStatsField

(PECL solr >= 0.9.2)

SolrQuery::removeStatsField — Supprime un paramètre stats.field

Description

public SolrQuery SolrQuery::removeStatsField ( string $field )

Supprime un paramètre stats.field.

Liste de paramètres

field

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Bascule le paramètre echoHandler

  • « SolrQuery::removeStatsField
  • SolrQuery::setEchoParams »
  • PHP Manual
  • SolrQuery
  • Bascule le paramètre echoHandler

SolrQuery::setEchoHandler

(PECL solr >= 0.9.2)

SolrQuery::setEchoHandler — Bascule le paramètre echoHandler

Description

public SolrQuery SolrQuery::setEchoHandler ( bool $flag )

Si définit à TRUE, Solr placera le nom du gestionnaire utilisé dans la réponse au client à des fins de débogage.

Liste de paramètres

flag

TRUE ou FALSE

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Détermine les paramètres à inclure dans la réponse

  • « SolrQuery::setEchoHandler
  • SolrQuery::setExpand »
  • PHP Manual
  • SolrQuery
  • Détermine les paramètres à inclure dans la réponse

SolrQuery::setEchoParams

(PECL solr >= 0.9.2)

SolrQuery::setEchoParams — Détermine les paramètres à inclure dans la réponse

Description

public SolrQuery SolrQuery::setEchoParams ( string $type )

Indique à Solr les paramètres à inclure dans la réponse aux fins de déboguage :

- none - n'inclure aucun paramètre
- explicit - inclure les paramètres explicitement spécifiés par le client dans la requête
- all - inclure tous les paramètres impliqués dans la requête, soit spécifiés explicitement par le client, soit implicitement.

Liste de paramètres

type

Le type de paramètres à inclure.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Enables/Disables the Expand Component

  • « SolrQuery::setEchoParams
  • SolrQuery::setExpandQuery »
  • PHP Manual
  • SolrQuery
  • Enables/Disables the Expand Component

SolrQuery::setExpand

(PECL solr >= 2.2.0)

SolrQuery::setExpand — Enables/Disables the Expand Component

Description

public SolrQuery SolrQuery::setExpand ( bool $value )

Enables/Disables the Expand Component.

Liste de paramètres

value

Bool flag

Valeurs de retour

SolrQuery

Exemples

Exemple #1 SolrQuery::setExpand() example

<?php

$query = new SolrQuery('lucene');

$query
    ->setExpand(true)
    ->setExpandRows(50)
    ->setExpandQuery('text:product')
    ->addExpandFilterQuery('manu:apple')
    ->addExpandFilterQuery('inStock:true')
    ->addExpandSortField('score', SolrQuery::ORDER_DESC)
    ->addExpandSortField('title', SolrQuery::ORDER_ASC);

echo $query.PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&expand=true&expand.rows=50&expand.q=text:product&expand.fq=manu:apple&expand.fq=inStock:true&expand.sort=score desc,title asc

Voir aussi

  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group.
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the expand.q parameter

  • « SolrQuery::setExpand
  • SolrQuery::setExpandRows »
  • PHP Manual
  • SolrQuery
  • Sets the expand.q parameter

SolrQuery::setExpandQuery

(PECL solr >= 2.2.0)

SolrQuery::setExpandQuery — Sets the expand.q parameter

Description

public SolrQuery SolrQuery::setExpandQuery ( string $q )

Sets the expand.q parameter.

Overrides the main q parameter, determines which documents to include in the main group.

Liste de paramètres

q

Valeurs de retour

SolrQuery

Voir aussi

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group.
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the number of rows to display in each group (expand.rows). Server Default 5

  • « SolrQuery::setExpandQuery
  • SolrQuery::setExplainOther »
  • PHP Manual
  • SolrQuery
  • Sets the number of rows to display in each group (expand.rows). Server Default 5

SolrQuery::setExpandRows

(PECL solr >= 2.2.0)

SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5

Description

public SolrQuery SolrQuery::setExpandRows ( integer $value )

Sets the number of rows to display in each group (expand.rows). Server Default 5

Liste de paramètres

value

Valeurs de retour

SolrQuery

Voir aussi

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group.
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Définit le paramètre de requête explainOther

  • « SolrQuery::setExpandRows
  • SolrQuery::setFacet »
  • PHP Manual
  • SolrQuery
  • Définit le paramètre de requête explainOther

SolrQuery::setExplainOther

(PECL solr >= 0.9.2)

SolrQuery::setExplainOther — Définit le paramètre de requête explainOther

Description

public SolrQuery SolrQuery::setExplainOther ( string $query )

Définit le paramètre de requête explainOther.

Liste de paramètres

query

La requête Lucene identifiant un jeu de documents

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Lie un paramètre facet. Active ou désactive les facet

  • « SolrQuery::setExplainOther
  • SolrQuery::setFacetDateEnd »
  • PHP Manual
  • SolrQuery
  • Lie un paramètre facet. Active ou désactive les facet

SolrQuery::setFacet

(PECL solr >= 0.9.2)

SolrQuery::setFacet — Lie un paramètre facet. Active ou désactive les facet

Description

public SolrQuery SolrQuery::setFacet ( bool $flag )

Active ou désactive les facet.

Liste de paramètres

value

TRUE pour activer les facet, FALSE pour les désactiver.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Lie un facet.date.end

  • « SolrQuery::setFacet
  • SolrQuery::setFacetDateGap »
  • PHP Manual
  • SolrQuery
  • Lie un facet.date.end

SolrQuery::setFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateEnd — Lie un facet.date.end

Description

public SolrQuery SolrQuery::setFacetDateEnd ( string $value [, string $field_override ] )

Lie un facet.date.end

Liste de paramètres

value

Voir facet.date.end

field_override

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Lie un facet.date.gap

  • « SolrQuery::setFacetDateEnd
  • SolrQuery::setFacetDateHardEnd »
  • PHP Manual
  • SolrQuery
  • Lie un facet.date.gap

SolrQuery::setFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateGap — Lie un facet.date.gap

Description

public SolrQuery SolrQuery::setFacetDateGap ( string $value [, string $field_override ] )

Lie un facet.date.gap

Liste de paramètres

value

Voir facet.date.gap

field_override

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Lie un facet.date.hardend

  • « SolrQuery::setFacetDateGap
  • SolrQuery::setFacetDateStart »
  • PHP Manual
  • SolrQuery
  • Lie un facet.date.hardend

SolrQuery::setFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateHardEnd — Lie un facet.date.hardend

Description

public SolrQuery SolrQuery::setFacetDateHardEnd ( bool $value [, string $field_override ] )

Lie un facet.date.hardend

Liste de paramètres

value

Voir facet.date.hardend

field_override

Le nom du champ

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Lie un facet.date.start

  • « SolrQuery::setFacetDateHardEnd
  • SolrQuery::setFacetEnumCacheMinDefaultFrequency »
  • PHP Manual
  • SolrQuery
  • Lie un facet.date.start

SolrQuery::setFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateStart — Lie un facet.date.start

Description

public SolrQuery SolrQuery::setFacetDateStart ( string $value [, string $field_override ] )

Lie un facet.date.start.

Liste de paramètres

value

Voir facet.date.start

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit la fréquence minimale du document utilisée pour déterminer le comptage des termes

  • « SolrQuery::setFacetDateStart
  • SolrQuery::setFacetLimit »
  • PHP Manual
  • SolrQuery
  • Définit la fréquence minimale du document utilisée pour déterminer le comptage des termes

SolrQuery::setFacetEnumCacheMinDefaultFrequency

(PECL solr >= 0.9.2)

SolrQuery::setFacetEnumCacheMinDefaultFrequency — Définit la fréquence minimale du document utilisée pour déterminer le comptage des termes

Description

public SolrQuery SolrQuery::setFacetEnumCacheMinDefaultFrequency ( int $frequency [, string $field_override ] )

Définit la fréquence minimale du document utilisée pour déterminer le comptage des termes.

Liste de paramètres

value

La fréquence minimale.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Lie un facet.limit

  • « SolrQuery::setFacetEnumCacheMinDefaultFrequency
  • SolrQuery::setFacetMethod »
  • PHP Manual
  • SolrQuery
  • Lie un facet.limit

SolrQuery::setFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::setFacetLimit — Lie un facet.limit

Description

public SolrQuery SolrQuery::setFacetLimit ( int $limit [, string $field_override ] )

Lie un facet.limit. Définit le nombre maximal de contraintes qui doit être retourné pour les champs facet.

Liste de paramètres

limit

Le nombre maximal de contraintes.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Spécifie le type d'algorithme à utiliser pour un champ facet

  • « SolrQuery::setFacetLimit
  • SolrQuery::setFacetMinCount »
  • PHP Manual
  • SolrQuery
  • Spécifie le type d'algorithme à utiliser pour un champ facet

SolrQuery::setFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::setFacetMethod — Spécifie le type d'algorithme à utiliser pour un champ facet

Description

public SolrQuery SolrQuery::setFacetMethod ( string $method [, string $field_override ] )

Spécifie le type d'algorithme à utiliser pour un champ facet.

Liste de paramètres

method

La méthode à utiliser.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Lie un facet.mincount

  • « SolrQuery::setFacetMethod
  • SolrQuery::setFacetMissing »
  • PHP Manual
  • SolrQuery
  • Lie un facet.mincount

SolrQuery::setFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::setFacetMinCount — Lie un facet.mincount

Description

public SolrQuery SolrQuery::setFacetMinCount ( int $mincount [, string $field_override ] )

Définit le nombre minimal pour les champs facet qui doit être inclus dans la réponse.

Liste de paramètres

mincount

Le nombre minimal.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Lie un facet.missing

  • « SolrQuery::setFacetMinCount
  • SolrQuery::setFacetOffset »
  • PHP Manual
  • SolrQuery
  • Lie un facet.missing

SolrQuery::setFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::setFacetMissing — Lie un facet.missing

Description

public SolrQuery SolrQuery::setFacetMissing ( bool $flag [, string $field_override ] )

Utilisé pour indiquer que, en plus des contraintes relatives aux termes d'un champ facet, un comptage de tous les résultats correspondants qui n'ont pas de valeur pour le champ doit être calculé.

Liste de paramètres

flag

TRUE pour activer cette fonctionnalité. FALSE pour la désactiver.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit la position dans la liste des contraintes pour la pagination

  • « SolrQuery::setFacetMissing
  • SolrQuery::setFacetPrefix »
  • PHP Manual
  • SolrQuery
  • Définit la position dans la liste des contraintes pour la pagination

SolrQuery::setFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::setFacetOffset — Définit la position dans la liste des contraintes pour la pagination

Description

public SolrQuery SolrQuery::setFacetOffset ( int $offset [, string $field_override ] )

Définit la position dans la liste des contraintes pour la pagination.

Liste de paramètres

offset

La position.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Spécifie un préfixe utilisé pour limiter les termes

  • « SolrQuery::setFacetOffset
  • SolrQuery::setFacetSort »
  • PHP Manual
  • SolrQuery
  • Spécifie un préfixe utilisé pour limiter les termes

SolrQuery::setFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::setFacetPrefix — Spécifie un préfixe utilisé pour limiter les termes

Description

public SolrQuery SolrQuery::setFacetPrefix ( string $prefix [, string $field_override ] )

Spécifie un préfixe utilisé pour limiter les termes.

Liste de paramètres

prefix

Le préfixe.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Détermine le tri des facet

  • « SolrQuery::setFacetPrefix
  • SolrQuery::setGroup »
  • PHP Manual
  • SolrQuery
  • Détermine le tri des facet

SolrQuery::setFacetSort

(PECL solr >= 0.9.2)

SolrQuery::setFacetSort — Détermine le tri des facet

Description

public SolrQuery SolrQuery::setFacetSort ( int $facetSort [, string $field_override ] )

Détermine le tri des facet.

Liste de paramètres

facetSort

Utilisez SolrQuery::FACET_SORT_INDEX pour trier sur l'index, ou SolrQuery::FACET_SORT_COUNT pour trier sur le total.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Enable/Disable result grouping (group parameter)

  • « SolrQuery::setFacetSort
  • SolrQuery::setGroupCachePercent »
  • PHP Manual
  • SolrQuery
  • Enable/Disable result grouping (group parameter)

SolrQuery::setGroup

(PECL solr >= 2.2.0)

SolrQuery::setGroup — Enable/Disable result grouping (group parameter)

Description

public SolrQuery SolrQuery::setGroup ( bool $value )

Enable/Disable result grouping (group parameter)

Liste de paramètres

value

Valeurs de retour

Voir aussi

  • SolrQuery::getGroup() - Returns true if grouping is enabled
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Enables caching for result grouping

  • « SolrQuery::setGroup
  • SolrQuery::setGroupFacet »
  • PHP Manual
  • SolrQuery
  • Enables caching for result grouping

SolrQuery::setGroupCachePercent

(PECL solr >= 2.2.0)

SolrQuery::setGroupCachePercent — Enables caching for result grouping

Description

public SolrQuery SolrQuery::setGroupCachePercent ( integer $percent )

Setting this parameter to a number greater than 0 enables caching for result grouping. Result Grouping executes two searches; this option caches the second search. The server default value is 0. Testing has shown that group caching only improves search time with Boolean, wildcard, and fuzzy queries. For simple queries like term or "match all" queries, group caching degrades performance. group.cache.percent parameter

Liste de paramètres

percent

Valeurs de retour

Erreurs / Exceptions

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Voir aussi

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).


Sets group.facet parameter

  • « SolrQuery::setGroupCachePercent
  • SolrQuery::setGroupFormat »
  • PHP Manual
  • SolrQuery
  • Sets group.facet parameter

SolrQuery::setGroupFacet

(PECL solr >= 2.2.0)

SolrQuery::setGroupFacet — Sets group.facet parameter

Description

public SolrQuery SolrQuery::setGroupFacet ( bool $value )

Determines whether to compute grouped facets for the field facets specified in facet.field parameters. Grouped facets are computed based on the first specified group.

Liste de paramètres

value

Valeurs de retour

Voir aussi

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Sets the group format, result structure (group.format parameter).

  • « SolrQuery::setGroupFacet
  • SolrQuery::setGroupLimit »
  • PHP Manual
  • SolrQuery
  • Sets the group format, result structure (group.format parameter).

SolrQuery::setGroupFormat

(PECL solr >= 2.2.0)

SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter).

Description

public SolrQuery SolrQuery::setGroupFormat ( string $value )

Sets the group.format parameter. If this parameter is set to simple, the grouped documents are presented in a single flat list, and the start and rows parameters affect the numbers of documents instead of groups. Accepts: grouped/simple

Liste de paramètres

value

Valeurs de retour

Voir aussi

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Specifies the number of results to return for each group. The server default value is 1.

  • « SolrQuery::setGroupFormat
  • SolrQuery::setGroupMain »
  • PHP Manual
  • SolrQuery
  • Specifies the number of results to return for each group. The server default value is 1.

SolrQuery::setGroupLimit

(PECL solr >= 2.2.0)

SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1.

Description

public SolrQuery SolrQuery::setGroupLimit ( integer $value )

Specifies the number of results to return for each group. The server default value is 1.

Liste de paramètres

value

Valeurs de retour

Voir aussi

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.

  • « SolrQuery::setGroupLimit
  • SolrQuery::setGroupNGroups »
  • PHP Manual
  • SolrQuery
  • If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.

SolrQuery::setGroupMain

(PECL solr >= 2.2.0)

SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.

Description

public SolrQuery SolrQuery::setGroupMain ( string $value )

If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.

Liste de paramètres

value

Valeurs de retour

Voir aussi

Voir aussi

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupMain()
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, Solr includes the number of groups that have matched the query in the results.

  • « SolrQuery::setGroupMain
  • SolrQuery::setGroupOffset »
  • PHP Manual
  • SolrQuery
  • If true, Solr includes the number of groups that have matched the query in the results.

SolrQuery::setGroupNGroups

(PECL solr >= 2.2.0)

SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results.

Description

public SolrQuery SolrQuery::setGroupNGroups ( bool $value )

If true, Solr includes the number of groups that have matched the query in the results.

Liste de paramètres

value

Valeurs de retour

Voir aussi

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Sets the group.offset parameter.

  • « SolrQuery::setGroupNGroups
  • SolrQuery::setGroupTruncate »
  • PHP Manual
  • SolrQuery
  • Sets the group.offset parameter.

SolrQuery::setGroupOffset

(PECL solr >= 2.2.0)

SolrQuery::setGroupOffset — Sets the group.offset parameter.

Description

public SolrQuery SolrQuery::setGroupOffset ( integer $value )

Sets the group.offset parameter.

Liste de paramètres

value

Valeurs de retour

Voir aussi

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, facet counts are based on the most relevant document of each group matching the query.

  • « SolrQuery::setGroupOffset
  • SolrQuery::setHighlight »
  • PHP Manual
  • SolrQuery
  • If true, facet counts are based on the most relevant document of each group matching the query.

SolrQuery::setGroupTruncate

(PECL solr >= 2.2.0)

SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query.

Description

public SolrQuery SolrQuery::setGroupTruncate ( bool $value )

If true, facet counts are based on the most relevant document of each group matching the query. The server default value is false. group.truncate parameter

Liste de paramètres

value

Valeurs de retour

Voir aussi

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Active ou désactive la coloration

  • « SolrQuery::setGroupTruncate
  • SolrQuery::setHighlightAlternateField »
  • PHP Manual
  • SolrQuery
  • Active ou désactive la coloration

SolrQuery::setHighlight

(PECL solr >= 0.9.2)

SolrQuery::setHighlight — Active ou désactive la coloration

Description

public SolrQuery SolrQuery::setHighlight ( bool $flag )

Le fait de définir à TRUE active la coloration des extraits à générer dans la réponse à la requête.

Le fait de définir à FALSE désactive la coloration.

Liste de paramètres

flag

Active ou désactive la coloration

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Spécifie le champ de sauvegarde à utiliser

  • « SolrQuery::setHighlight
  • SolrQuery::setHighlightFormatter »
  • PHP Manual
  • SolrQuery
  • Spécifie le champ de sauvegarde à utiliser

SolrQuery::setHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::setHighlightAlternateField — Spécifie le champ de sauvegarde à utiliser

Description

public SolrQuery SolrQuery::setHighlightAlternateField ( string $field [, string $field_override ] )

Si un extrait ne peut être généré en raison de termes ne correspondant pas, la méthode peut spécifier un champ à utiliser comme sauvegarde ou comme résumé par défaut.

Liste de paramètres

field

Le nom du champ de sauvegarde

field_override

Le nom du champ qui sera écrasé par cette configuration.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Spécifie un formateur pour la sortie colorisée

  • « SolrQuery::setHighlightAlternateField
  • SolrQuery::setHighlightFragmenter »
  • PHP Manual
  • SolrQuery
  • Spécifie un formateur pour la sortie colorisée

SolrQuery::setHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFormatter — Spécifie un formateur pour la sortie colorisée

Description

public SolrQuery SolrQuery::setHighlightFormatter ( string $formatter [, string $field_override ] )

Spécifie un formateur pour la sortie colorisée.

Liste de paramètres

formatter

Actuellement, la seule valeur est "simple".

field_override

Le nom du champ.


Définit un générateur d'extraits de texte pour le texte colorisé

  • « SolrQuery::setHighlightFormatter
  • SolrQuery::setHighlightFragsize »
  • PHP Manual
  • SolrQuery
  • Définit un générateur d'extraits de texte pour le texte colorisé

SolrQuery::setHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragmenter — Définit un générateur d'extraits de texte pour le texte colorisé

Description

public SolrQuery SolrQuery::setHighlightFragmenter ( string $fragmenter [, string $field_override ] )

Définit un générateur d'extraits de texte pour le texte colorisé.

Liste de paramètres

fragmenter

Le fragmenteur standard est gap. Une autre option est regex, qui tente de créer des fragments qui correspondent à une certain expression rationnelle.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


La taille du fragment à considérer pour la coloration

  • « SolrQuery::setHighlightFragmenter
  • SolrQuery::setHighlightHighlightMultiTerm »
  • PHP Manual
  • SolrQuery
  • La taille du fragment à considérer pour la coloration

SolrQuery::setHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragsize — La taille du fragment à considérer pour la coloration

Description

public SolrQuery SolrQuery::setHighlightFragsize ( int $size [, string $field_override ] )

Définit la taille, en caractères, du fragments à considérer pour la coloration. "0" indique que la valeur du champ complet doit être utilisée (aucune fragmentation).

Liste de paramètres

size

La taille, en caractères, du fragment à considérer pour la coloration.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Utilise SpanScorer pour coloriser les termes d'une phrase

  • « SolrQuery::setHighlightFragsize
  • SolrQuery::setHighlightMaxAlternateFieldLength »
  • PHP Manual
  • SolrQuery
  • Utilise SpanScorer pour coloriser les termes d'une phrase

SolrQuery::setHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::setHighlightHighlightMultiTerm — Utilise SpanScorer pour coloriser les termes d'une phrase

Description

public SolrQuery SolrQuery::setHighlightHighlightMultiTerm ( bool $flag )

Utilise SpanScorer pour coloriser les termes d'une phrase uniquement lorsqu'ils apparaissent dans la phrase de requête du document.

Liste de paramètres

flag

Si l'on doit utiliser ou non SpanScorer pour coloriser les termes de la phrase uniquement lorsqu'ils apparaissent dans la phrase de requête du document.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit le nombre maximal de caractères du champ à retourner

  • « SolrQuery::setHighlightHighlightMultiTerm
  • SolrQuery::setHighlightMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Définit le nombre maximal de caractères du champ à retourner

SolrQuery::setHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAlternateFieldLength — Définit le nombre maximal de caractères du champ à retourner

Description

public SolrQuery SolrQuery::setHighlightMaxAlternateFieldLength ( int $fieldLength [, string $field_override ] )

Si SolrQuery::setHighlightAlternateField() passe la valeur TRUE, ce paramètre spécifie le nombre maximal de caractères du champ à retourner.

Toutes les valeurs inférieures ou égales à 0 signifient qu'il n'y a pas de limite.

Liste de paramètres

fieldLength

La longueur du champ.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Spécifie le nombre de caractères dans un document pour y chercher des extraits correspondants

  • « SolrQuery::setHighlightMaxAlternateFieldLength
  • SolrQuery::setHighlightMergeContiguous »
  • PHP Manual
  • SolrQuery
  • Spécifie le nombre de caractères dans un document pour y chercher des extraits correspondants

SolrQuery::setHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAnalyzedChars — Spécifie le nombre de caractères dans un document pour y chercher des extraits correspondants

Description

public SolrQuery SolrQuery::setHighlightMaxAnalyzedChars ( int $value )

Spécifie le nombre de caractères dans un document pour y chercher des extraits correspondants.

Liste de paramètres

value

Le nombre de caractères dans un document pour y chercher des extraites correspondants

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Si l'on doit rassembler les fragments proches dans un seul fragment

  • « SolrQuery::setHighlightMaxAnalyzedChars
  • SolrQuery::setHighlightRegexMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Si l'on doit rassembler les fragments proches dans un seul fragment

SolrQuery::setHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMergeContiguous — Si l'on doit rassembler les fragments proches dans un seul fragment

Description

public SolrQuery SolrQuery::setHighlightMergeContiguous ( bool $flag [, string $field_override ] )

Si l'on doit rassembler les fragments proches dans un seul fragment.

Liste de paramètres

value

Si l'on doit rassembler les fragments proches dans un seul fragment.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Spécifie le nombre maximal de caractères à analyser

  • « SolrQuery::setHighlightMergeContiguous
  • SolrQuery::setHighlightRegexPattern »
  • PHP Manual
  • SolrQuery
  • Spécifie le nombre maximal de caractères à analyser

SolrQuery::setHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexMaxAnalyzedChars — Spécifie le nombre maximal de caractères à analyser

Description

public SolrQuery SolrQuery::setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars )

Spécifie le nombre maximal de caractères à analyser dans un champ lors de l'utilisateur du formatteur regex.

Liste de paramètres

maxAnalyzedChars

Le nombre maximal de caractères à analyser dans un champ lors de l'utilisateur du formatteur regex.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Spécifie l'expression rationnelle pour la fragmentation

  • « SolrQuery::setHighlightRegexMaxAnalyzedChars
  • SolrQuery::setHighlightRegexSlop »
  • PHP Manual
  • SolrQuery
  • Spécifie l'expression rationnelle pour la fragmentation

SolrQuery::setHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexPattern — Spécifie l'expression rationnelle pour la fragmentation

Description

public SolrQuery SolrQuery::setHighlightRegexPattern ( string $value )

Spécifie l'expression rationnelle pour la fragmentation. Peut être utilisé pour extraire des phrases.

Liste de paramètres

value

L'expression rationnelle pour la fragmentation. Peut être utilisé pour extraire des phrases.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit le facteur par lequel le fragmenteur regex peut dévier de la taille idéale du fragment

  • « SolrQuery::setHighlightRegexPattern
  • SolrQuery::setHighlightRequireFieldMatch »
  • PHP Manual
  • SolrQuery
  • Définit le facteur par lequel le fragmenteur regex peut dévier de la taille idéale du fragment

SolrQuery::setHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexSlop — Définit le facteur par lequel le fragmenteur regex peut dévier de la taille idéale du fragment

Description

public SolrQuery SolrQuery::setHighlightRegexSlop ( float $factor )

Le facteur par lequel le fragmenteur regex peut dévier de la taille idéale du fragment ( spécifié par SolrQuery::setHighlightFragsize ) pour arranger l'expression rationnelle.

Liste de paramètres

factor

Le facteur par lequel le fragmenteur regex peut dévier de la taille idéale du fragment.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Champ correspondant requis lors de la colorisation

  • « SolrQuery::setHighlightRegexSlop
  • SolrQuery::setHighlightSimplePost »
  • PHP Manual
  • SolrQuery
  • Champ correspondant requis lors de la colorisation

SolrQuery::setHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRequireFieldMatch — Champ correspondant requis lors de la colorisation

Description

public SolrQuery SolrQuery::setHighlightRequireFieldMatch ( bool $flag )

Si TRUE, alors le champ ne sera colorisé que si la requête correspond dans ce champ particulier.

Ne fonctionne que si SolrQuery::setHighlightUsePhraseHighlighter() a été défini à TRUE.

Liste de paramètres

flag

TRUE ou FALSE

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit le texte qui doit apparaître après un terme colorisé

  • « SolrQuery::setHighlightRequireFieldMatch
  • SolrQuery::setHighlightSimplePre »
  • PHP Manual
  • SolrQuery
  • Définit le texte qui doit apparaître après un terme colorisé

SolrQuery::setHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePost — Définit le texte qui doit apparaître après un terme colorisé

Description

public SolrQuery SolrQuery::setHighlightSimplePost ( string $simplePost [, string $field_override ] )

Définit le texte qui doit apparaître après un terme colorisé.

Liste de paramètres

simplePost

Définit le texte qui doit apparaître après un terme colorisé.

The default is </em>

field_override

Le nom du champ.


Définit le texte qui doit apparaître avant un terme colorisé

  • « SolrQuery::setHighlightSimplePost
  • SolrQuery::setHighlightSnippets »
  • PHP Manual
  • SolrQuery
  • Définit le texte qui doit apparaître avant un terme colorisé

SolrQuery::setHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePre — Définit le texte qui doit apparaître avant un terme colorisé

Description

public SolrQuery SolrQuery::setHighlightSimplePre ( string $simplePre [, string $field_override ] )

Définit le texte qui doit apparaître avant un terme colorisé.

The default is <em>

Liste de paramètres

simplePre

Le texte qui doit apparaître avant un terme colorisé

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit le nombre maximal d'extraits à coloriser par champ

  • « SolrQuery::setHighlightSimplePre
  • SolrQuery::setHighlightUsePhraseHighlighter »
  • PHP Manual
  • SolrQuery
  • Définit le nombre maximal d'extraits à coloriser par champ

SolrQuery::setHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSnippets — Définit le nombre maximal d'extraits à coloriser par champ

Description

public SolrQuery SolrQuery::setHighlightSnippets ( int $value [, string $field_override ] )

Définit le nombre maximal d'extraits à coloriser par champ.

Liste de paramètres

value

Le nombre maximal d'extraits à coloriser par champ.

field_override

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Si l'on doit coloriser les termes d'une phrase uniquement si ils apparaissent dans la requête

  • « SolrQuery::setHighlightSnippets
  • SolrQuery::setMlt »
  • PHP Manual
  • SolrQuery
  • Si l'on doit coloriser les termes d'une phrase uniquement si ils apparaissent dans la requête

SolrQuery::setHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightUsePhraseHighlighter — Si l'on doit coloriser les termes d'une phrase uniquement si ils apparaissent dans la requête

Description

public SolrQuery SolrQuery::setHighlightUsePhraseHighlighter ( bool $flag )

Si l'on doit utiliser SpanScorer pour coloriser les termes d'une phrase uniquement si ils apparaissent dans la requête du document.

Liste de paramètres

value

Si l'on doit utiliser SpanScorer pour coloriser les termes d'une phrase uniquement si ils apparaissent dans la requête du document.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Active ou désactive moreLikeThis

  • « SolrQuery::setHighlightUsePhraseHighlighter
  • SolrQuery::setMltBoost »
  • PHP Manual
  • SolrQuery
  • Active ou désactive moreLikeThis

SolrQuery::setMlt

(PECL solr >= 0.9.2)

SolrQuery::setMlt — Active ou désactive moreLikeThis

Description

public SolrQuery SolrQuery::setMlt ( bool $flag )

Active ou désactive moreLikeThis

Liste de paramètres

flag

TRUE pour l'activer, FALSE pour le désactiver.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Si la requête doit être stimulée par la pertinence des termes

  • « SolrQuery::setMlt
  • SolrQuery::setMltCount »
  • PHP Manual
  • SolrQuery
  • Si la requête doit être stimulée par la pertinence des termes

SolrQuery::setMltBoost

(PECL solr >= 0.9.2)

SolrQuery::setMltBoost — Si la requête doit être stimulée par la pertinence des termes

Description

public SolrQuery SolrQuery::setMltBoost ( bool $flag )

Si la requête doit être stimulée par la pertinence des termes.

Liste de paramètres

value

À définir à TRUE ou à FALSE.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit le nombre de documents similaires à retourner à chaque résultat

  • « SolrQuery::setMltBoost
  • SolrQuery::setMltMaxNumQueryTerms »
  • PHP Manual
  • SolrQuery
  • Définit le nombre de documents similaires à retourner à chaque résultat

SolrQuery::setMltCount

(PECL solr >= 0.9.2)

SolrQuery::setMltCount — Définit le nombre de documents similaires à retourner à chaque résultat

Description

public SolrQuery SolrQuery::setMltCount ( int $count )

Définit le nombre de documents similaires à retourner à chaque résultat.

Liste de paramètres

count

Le nombre de documents similaires à retourner à chaque résultat

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit le nombre maximal de termes de requête à inclure

  • « SolrQuery::setMltCount
  • SolrQuery::setMltMaxNumTokens »
  • PHP Manual
  • SolrQuery
  • Définit le nombre maximal de termes de requête à inclure

SolrQuery::setMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumQueryTerms — Définit le nombre maximal de termes de requête à inclure

Description

public SolrQuery SolrQuery::setMltMaxNumQueryTerms ( int $value )

Définit le nombre maximal de termes de requête à inclure dans chaque requête générée.

Liste de paramètres

value

Le nombre maximal de termes de requête à inclure dans chaque requête générée.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Spécifie le nombre maximal de motifs à analyser

  • « SolrQuery::setMltMaxNumQueryTerms
  • SolrQuery::setMltMaxWordLength »
  • PHP Manual
  • SolrQuery
  • Spécifie le nombre maximal de motifs à analyser

SolrQuery::setMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumTokens — Spécifie le nombre maximal de motifs à analyser

Description

public SolrQuery SolrQuery::setMltMaxNumTokens ( int $value )

Spécifie le nombre maximal de motifs à analyser dans chaque champ d'exemple du document qui n'est pas stocké avec le support TermVector.

Liste de paramètres

value

Le nombre maximal de motifs à analyser.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit la longueur maximale d'un mot

  • « SolrQuery::setMltMaxNumTokens
  • SolrQuery::setMltMinDocFrequency »
  • PHP Manual
  • SolrQuery
  • Définit la longueur maximale d'un mot

SolrQuery::setMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxWordLength — Définit la longueur maximale d'un mot

Description

public SolrQuery SolrQuery::setMltMaxWordLength ( int $maxWordLength )

Définit la longueur maximale d'un mot en dessus duquel les mots seront ignorés.

Liste de paramètres

maxWordLength

La longueur maximale d'un mot en dessus duquel les mots seront ignorés

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit la fréquence mltMinDoc

  • « SolrQuery::setMltMaxWordLength
  • SolrQuery::setMltMinTermFrequency »
  • PHP Manual
  • SolrQuery
  • Définit la fréquence mltMinDoc

SolrQuery::setMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinDocFrequency — Définit la fréquence mltMinDoc

Description

public SolrQuery SolrQuery::setMltMinDocFrequency ( int $minDocFrequency )

Définit la fréquence à partir de laquelle les mots seront ignorés si ils n'apparaissent pas dans les documents.

Liste de paramètres

minDocFrequency

La fréquence à partir de laquelle les mots seront ignorés si ils n'apparaissent pas dans les documents

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit la fréquence en dessous de laquelle les termes seront ignorés dans le document source

  • « SolrQuery::setMltMinDocFrequency
  • SolrQuery::setMltMinWordLength »
  • PHP Manual
  • SolrQuery
  • Définit la fréquence en dessous de laquelle les termes seront ignorés dans le document source

SolrQuery::setMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinTermFrequency — Définit la fréquence en dessous de laquelle les termes seront ignorés dans le document source

Description

public SolrQuery SolrQuery::setMltMinTermFrequency ( int $minTermFrequency )

Définit la fréquence en dessous de laquelle les termes seront ignorés dans le document source.

Liste de paramètres

minTermFrequency

La fréquence en dessous de laquelle les termes seront ignorés dans le document source

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit la longueur minimale d'un mot

  • « SolrQuery::setMltMinTermFrequency
  • SolrQuery::setOmitHeader »
  • PHP Manual
  • SolrQuery
  • Définit la longueur minimale d'un mot

SolrQuery::setMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMinWordLength — Définit la longueur minimale d'un mot

Description

public SolrQuery SolrQuery::setMltMinWordLength ( int $minWordLength )

Définit la longueur minimale d'un mot en dessous de laquelle il sera ignoré.

Liste de paramètres

minWordLength

La longueur minimale d'un mot en dessous de laquelle il sera ignoré.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Exclut l'en-tête des résultats retournés

  • « SolrQuery::setMltMinWordLength
  • SolrQuery::setQuery »
  • PHP Manual
  • SolrQuery
  • Exclut l'en-tête des résultats retournés

SolrQuery::setOmitHeader

(PECL solr >= 0.9.2)

SolrQuery::setOmitHeader — Exclut l'en-tête des résultats retournés

Description

public SolrQuery SolrQuery::setOmitHeader ( bool $flag )

Exclut l'en-tête des résultats retournés.

Liste de paramètres

flag

TRUE pour exclure l'en-tête des résultats.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit la requête de recherche

  • « SolrQuery::setOmitHeader
  • SolrQuery::setRows »
  • PHP Manual
  • SolrQuery
  • Définit la requête de recherche

SolrQuery::setQuery

(PECL solr >= 0.9.2)

SolrQuery::setQuery — Définit la requête de recherche

Description

public SolrQuery SolrQuery::setQuery ( string $query )

Définit la requête de recherche.

Liste de paramètres

query

La requête de recherche

Valeurs de retour

Retourne l'objet SolrQuery courant.


Spécifie le nombre maximal de lignes à retourner dans le résultat

  • « SolrQuery::setQuery
  • SolrQuery::setShowDebugInfo »
  • PHP Manual
  • SolrQuery
  • Spécifie le nombre maximal de lignes à retourner dans le résultat

SolrQuery::setRows

(PECL solr >= 0.9.2)

SolrQuery::setRows — Spécifie le nombre maximal de lignes à retourner dans le résultat

Description

public SolrQuery SolrQuery::setRows ( int $rows )

Spécifie le nombre maximal de lignes à retourner dans le résultat.

Liste de paramètres

rows

Le nombre maximal de lignes à retourner.

Valeurs de retour

Retourne l'objet SolrQuery courant.


Drapeau pour afficher les informations de débogage

  • « SolrQuery::setRows
  • SolrQuery::setStart »
  • PHP Manual
  • SolrQuery
  • Drapeau pour afficher les informations de débogage

SolrQuery::setShowDebugInfo

(PECL solr >= 0.9.2)

SolrQuery::setShowDebugInfo — Drapeau pour afficher les informations de débogage

Description

public SolrQuery SolrQuery::setShowDebugInfo ( bool $flag )

Drapeau pour afficher les informations de débogage.

Liste de paramètres

flag

Si l'on doit ou non afficher les informations de débogage. TRUE ou FALSE.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Spécifie le nombre maximal de lignes à ignorer

  • « SolrQuery::setShowDebugInfo
  • SolrQuery::setStats »
  • PHP Manual
  • SolrQuery
  • Spécifie le nombre maximal de lignes à ignorer

SolrQuery::setStart

(PECL solr >= 0.9.2)

SolrQuery::setStart — Spécifie le nombre maximal de lignes à ignorer

Description

public SolrQuery SolrQuery::setStart ( int $start )

Spécifie le nombre maximal de lignes à ignorer. Utile pour paginer les résultats.

Liste de paramètres

start

Le nombre de lignes à ignorer.

Valeurs de retour

Retourne l'objet SolrQuery courant.


Active ou désactive le composant statistique

  • « SolrQuery::setStart
  • SolrQuery::setTerms »
  • PHP Manual
  • SolrQuery
  • Active ou désactive le composant statistique

SolrQuery::setStats

(PECL solr >= 0.9.2)

SolrQuery::setStats — Active ou désactive le composant statistique

Description

public SolrQuery SolrQuery::setStats ( bool $flag )

Active ou désactive le composant statistique.

Liste de paramètres

flag

TRUE pour activer le composant statistique, FALSE pour le désactiver.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Active ou désactive le TermsComponent

  • « SolrQuery::setStats
  • SolrQuery::setTermsField »
  • PHP Manual
  • SolrQuery
  • Active ou désactive le TermsComponent

SolrQuery::setTerms

(PECL solr >= 0.9.2)

SolrQuery::setTerms — Active ou désactive le TermsComponent

Description

public SolrQuery SolrQuery::setTerms ( bool $flag )

Active ou désactive le TermsComponent.

Liste de paramètres

flag

TRUE pour l'activer, FALSE pour le désactiver.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit le nom du champ dans lequel les termes seront récupérés

  • « SolrQuery::setTerms
  • SolrQuery::setTermsIncludeLowerBound »
  • PHP Manual
  • SolrQuery
  • Définit le nom du champ dans lequel les termes seront récupérés

SolrQuery::setTermsField

(PECL solr >= 0.9.2)

SolrQuery::setTermsField — Définit le nom du champ dans lequel les termes seront récupérés

Description

public SolrQuery SolrQuery::setTermsField ( string $fieldname )

Définit le nom du champ dans lequel les termes seront récupérés.

Liste de paramètres

fieldname

Le nom du champ.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Inclut le terme inférieure liée dans le jeu de résultat

  • « SolrQuery::setTermsField
  • SolrQuery::setTermsIncludeUpperBound »
  • PHP Manual
  • SolrQuery
  • Inclut le terme inférieure liée dans le jeu de résultat

SolrQuery::setTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeLowerBound — Inclut le terme inférieure liée dans le jeu de résultat

Description

public SolrQuery SolrQuery::setTermsIncludeLowerBound ( bool $flag )

Inclut le terme inférieure liée dans le jeu de résultat.

Liste de paramètres

flag

Inclut le terme inférieure liée dans le jeu de résultat.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Inclut le terme supérieure liée dans le jeu de résultat

  • « SolrQuery::setTermsIncludeLowerBound
  • SolrQuery::setTermsLimit »
  • PHP Manual
  • SolrQuery
  • Inclut le terme supérieure liée dans le jeu de résultat

SolrQuery::setTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeUpperBound — Inclut le terme supérieure liée dans le jeu de résultat

Description

public SolrQuery SolrQuery::setTermsIncludeUpperBound ( bool $flag )

Inclut le terme supérieure liée dans le jeu de résultat.

Liste de paramètres

flag

TRUE ou FALSE

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit le nombre maximal de termes à retourner

  • « SolrQuery::setTermsIncludeUpperBound
  • SolrQuery::setTermsLowerBound »
  • PHP Manual
  • SolrQuery
  • Définit le nombre maximal de termes à retourner

SolrQuery::setTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::setTermsLimit — Définit le nombre maximal de termes à retourner

Description

public SolrQuery SolrQuery::setTermsLimit ( int $limit )

Définit le nombre maximal de termes à retourner.

Liste de paramètres

limit

Le nombre maximal de termes à retourner. Tous les termes seront retournés si la limite est négative.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Spécifie le terme de départ

  • « SolrQuery::setTermsLimit
  • SolrQuery::setTermsMaxCount »
  • PHP Manual
  • SolrQuery
  • Spécifie le terme de départ

SolrQuery::setTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsLowerBound — Spécifie le terme de départ

Description

public SolrQuery SolrQuery::setTermsLowerBound ( string $lowerBound )

Spécifie le terme de départ.

Liste de paramètres

lowerBound

Le terme

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit la fréquence maximale du document

  • « SolrQuery::setTermsLowerBound
  • SolrQuery::setTermsMinCount »
  • PHP Manual
  • SolrQuery
  • Définit la fréquence maximale du document

SolrQuery::setTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMaxCount — Définit la fréquence maximale du document

Description

public SolrQuery SolrQuery::setTermsMaxCount ( int $frequency )

Définit la fréquence maximale du document.

Liste de paramètres

frequency

La fréquence maximale du document.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit la fréquence minimale d'un document

  • « SolrQuery::setTermsMaxCount
  • SolrQuery::setTermsPrefix »
  • PHP Manual
  • SolrQuery
  • Définit la fréquence minimale d'un document

SolrQuery::setTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMinCount — Définit la fréquence minimale d'un document

Description

public SolrQuery SolrQuery::setTermsMinCount ( int $frequency )

Définit la fréquence minimale d'un document.

Liste de paramètres

frequency

La fréquence minimale.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Restreint les termes correspondants qui commencent avec un préfixe donné

  • « SolrQuery::setTermsMinCount
  • SolrQuery::setTermsReturnRaw »
  • PHP Manual
  • SolrQuery
  • Restreint les termes correspondants qui commencent avec un préfixe donné

SolrQuery::setTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::setTermsPrefix — Restreint les termes correspondants qui commencent avec un préfixe donné

Description

public SolrQuery SolrQuery::setTermsPrefix ( string $prefix )

Restreint les termes correspondants qui commencent avec un préfixe donné.

Liste de paramètres

prefix

Le préfixe.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Retourne les caractères brutes d'un terme indexé

  • « SolrQuery::setTermsPrefix
  • SolrQuery::setTermsSort »
  • PHP Manual
  • SolrQuery
  • Retourne les caractères brutes d'un terme indexé

SolrQuery::setTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::setTermsReturnRaw — Retourne les caractères brutes d'un terme indexé

Description

public SolrQuery SolrQuery::setTermsReturnRaw ( bool $flag )

Si vaut TRUE, retourne les caractères brutes d'un terme indexé, suivant s'ils sont humainement lisibles.

Liste de paramètres

value

TRUE ou FALSE

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Spécifie la façon dont seront triés les termes retournés

  • « SolrQuery::setTermsReturnRaw
  • SolrQuery::setTermsUpperBound »
  • PHP Manual
  • SolrQuery
  • Spécifie la façon dont seront triés les termes retournés

SolrQuery::setTermsSort

(PECL solr >= 0.9.2)

SolrQuery::setTermsSort — Spécifie la façon dont seront triés les termes retournés

Description

public SolrQuery SolrQuery::setTermsSort ( int $sortType )

Si SolrQuery::TERMS_SORT_COUNT, les termes seront triés par leur fréquence (ceux dont la fréquence est la plus élevée en premier). Si SolrQuery::TERMS_SORT_INDEX, retourne les termes suivants leurs indexes.

Liste de paramètres

sortType

SolrQuery::TERMS_SORT_INDEX ou SolrQuery::TERMS_SORT_COUNT

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Définit le terme à partir duquel on doit stopper

  • « SolrQuery::setTermsSort
  • SolrQuery::setTimeAllowed »
  • PHP Manual
  • SolrQuery
  • Définit le terme à partir duquel on doit stopper

SolrQuery::setTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsUpperBound — Définit le terme à partir duquel on doit stopper

Description

public SolrQuery SolrQuery::setTermsUpperBound ( string $upperBound )

Définit le terme à partir duquel on doit stopper.

Liste de paramètres

upperBound

Le terme.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


Le temps allouée pour faire une recherche

  • « SolrQuery::setTermsUpperBound
  • SolrDisMaxQuery »
  • PHP Manual
  • SolrQuery
  • Le temps allouée pour faire une recherche

SolrQuery::setTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::setTimeAllowed — Le temps allouée pour faire une recherche

Description

public SolrQuery SolrQuery::setTimeAllowed ( int $timeAllowed )

Le temps allouée pour faire une recherche. Cette valeur ne s'applique qu'aux recherches et non aux requêtes en général. Le temps est en millisecondes. Les valeurs inférieures ou égales à zéro impliquent aucune restriction de temps. Les résultats partiels peuvent être retournés, s'il y en a.

Liste de paramètres

timeAllowed

Le temps allouée pour faire une recherche.

Valeurs de retour

Retourne l'objet SolrQuery courant, si la valeur retournée est utilisée.


The SolrDisMaxQuery class

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

SolrDisMaxQuery extends SolrQuery implements Serializable {
/* Propriétés héritées */
const integer SolrQuery::ORDER_ASC = 0 ;
const integer SolrQuery::ORDER_DESC = 1 ;
const integer SolrQuery::FACET_SORT_INDEX = 0 ;
const integer SolrQuery::FACET_SORT_COUNT = 1 ;
const integer SolrQuery::TERMS_SORT_INDEX = 0 ;
const integer SolrQuery::TERMS_SORT_COUNT = 1 ;
/* Méthodes */
public SolrDisMaxQuery addBigramPhraseField ( string $field , string $boost [, string $slop ] )
public SolrDisMaxQuery addBoostQuery ( string $field , string $value [, string $boost ] )
public SolrDisMaxQuery addPhraseField ( string $field , string $boost [, string $slop ] )
public SolrDisMaxQuery addQueryField ( string $field [, string $boost ] )
public SolrDisMaxQuery addTrigramPhraseField ( string $field , string $boost [, string $slop ] )
public SolrDisMaxQuery addUserField ( string $field )
public __construct ([ string $q ] )
public SolrDisMaxQuery removeBigramPhraseField ( string $field )
public SolrDisMaxQuery removeBoostQuery ( string $field )
public SolrDisMaxQuery removePhraseField ( string $field )
public SolrDisMaxQuery removeQueryField ( string $field )
public SolrDisMaxQuery removeTrigramPhraseField ( string $field )
public SolrDisMaxQuery removeUserField ( string $field )
public SolrDisMaxQuery setBigramPhraseFields ( string $fields )
public SolrDisMaxQuery setBigramPhraseSlop ( string $slop )
public SolrDisMaxQuery setBoostFunction ( string $function )
public SolrDisMaxQuery setBoostQuery ( string $q )
public SolrDisMaxQuery setMinimumMatch ( string $value )
public SolrDisMaxQuery setPhraseFields ( string $fields )
public SolrDisMaxQuery setPhraseSlop ( string $slop )
public SolrDisMaxQuery setQueryAlt ( string $q )
public SolrDisMaxQuery setQueryPhraseSlop ( string $slop )
public SolrDisMaxQuery setTieBreaker ( string $tieBreaker )
public SolrDisMaxQuery setTrigramPhraseFields ( string $fields )
public SolrDisMaxQuery setTrigramPhraseSlop ( string $slop )
public SolrDisMaxQuery setUserFields ( string $fields )
public SolrDisMaxQuery useDisMaxQueryParser ( void )
public SolrDisMaxQuery useEDisMaxQueryParser ( void )
/* Méthodes héritées */
public SolrQuery SolrQuery::addExpandFilterQuery ( string $fq )
public SolrQuery SolrQuery::addExpandSortField ( string $field [, string $order ] )
public SolrQuery SolrQuery::addFacetDateField ( string $dateField )
public SolrQuery SolrQuery::addFacetDateOther ( string $value [, string $field_override ] )
public SolrQuery SolrQuery::addFacetField ( string $field )
public SolrQuery SolrQuery::addFacetQuery ( string $facetQuery )
public SolrQuery SolrQuery::addField ( string $field )
public SolrQuery SolrQuery::addFilterQuery ( string $fq )
public SolrQuery SolrQuery::addGroupField ( string $value )
public SolrQuery SolrQuery::addGroupFunction ( string $value )
public SolrQuery SolrQuery::addGroupQuery ( string $value )
public SolrQuery SolrQuery::addGroupSortField ( string $field [, integer $order ] )
public SolrQuery SolrQuery::addHighlightField ( string $field )
public SolrQuery SolrQuery::addMltField ( string $field )
public SolrQuery SolrQuery::addMltQueryField ( string $field , float $boost )
public SolrQuery SolrQuery::addSortField ( string $field [, int $order = SolrQuery::ORDER_DESC ] )
public SolrQuery SolrQuery::addStatsFacet ( string $field )
public SolrQuery SolrQuery::addStatsField ( string $field )
public SolrQuery SolrQuery::collapse ( SolrCollapseFunction $collapseFunction )
public SolrQuery::__construct ([ string $q ] )
public void SolrQuery::__destruct ( void )
public bool SolrQuery::getExpand ( void )
public array SolrQuery::getExpandFilterQueries ( void )
public array SolrQuery::getExpandQuery ( void )
public integer SolrQuery::getExpandRows ( void )
public array SolrQuery::getExpandSortFields ( void )
public bool SolrQuery::getFacet ( void )
public string SolrQuery::getFacetDateEnd ([ string $field_override ] )
public array SolrQuery::getFacetDateFields ( void )
public string SolrQuery::getFacetDateGap ([ string $field_override ] )
public string SolrQuery::getFacetDateHardEnd ([ string $field_override ] )
public array SolrQuery::getFacetDateOther ([ string $field_override ] )
public string SolrQuery::getFacetDateStart ([ string $field_override ] )
public array SolrQuery::getFacetFields ( void )
public int SolrQuery::getFacetLimit ([ string $field_override ] )
public string SolrQuery::getFacetMethod ([ string $field_override ] )
public int SolrQuery::getFacetMinCount ([ string $field_override ] )
public bool SolrQuery::getFacetMissing ([ string $field_override ] )
public int SolrQuery::getFacetOffset ([ string $field_override ] )
public string SolrQuery::getFacetPrefix ([ string $field_override ] )
public array SolrQuery::getFacetQueries ( void )
public int SolrQuery::getFacetSort ([ string $field_override ] )
public array SolrQuery::getFields ( void )
public array SolrQuery::getFilterQueries ( void )
public bool SolrQuery::getGroup ( void )
public integer SolrQuery::getGroupCachePercent ( void )
public bool SolrQuery::getGroupFacet ( void )
public array SolrQuery::getGroupFields ( void )
public string SolrQuery::getGroupFormat ( void )
public array SolrQuery::getGroupFunctions ( void )
public integer SolrQuery::getGroupLimit ( void )
public bool SolrQuery::getGroupMain ( void )
public bool SolrQuery::getGroupNGroups ( void )
public integer SolrQuery::getGroupOffset ( void )
public array SolrQuery::getGroupQueries ( void )
public array SolrQuery::getGroupSortFields ( void )
public bool SolrQuery::getGroupTruncate ( void )
public bool SolrQuery::getHighlight ( void )
public string SolrQuery::getHighlightAlternateField ([ string $field_override ] )
public array SolrQuery::getHighlightFields ( void )
public string SolrQuery::getHighlightFormatter ([ string $field_override ] )
public string SolrQuery::getHighlightFragmenter ([ string $field_override ] )
public int SolrQuery::getHighlightFragsize ([ string $field_override ] )
public bool SolrQuery::getHighlightHighlightMultiTerm ( void )
public int SolrQuery::getHighlightMaxAlternateFieldLength ([ string $field_override ] )
public int SolrQuery::getHighlightMaxAnalyzedChars ( void )
public bool SolrQuery::getHighlightMergeContiguous ([ string $field_override ] )
public int SolrQuery::getHighlightRegexMaxAnalyzedChars ( void )
public string SolrQuery::getHighlightRegexPattern ( void )
public float SolrQuery::getHighlightRegexSlop ( void )
public bool SolrQuery::getHighlightRequireFieldMatch ( void )
public string SolrQuery::getHighlightSimplePost ([ string $field_override ] )
public string SolrQuery::getHighlightSimplePre ([ string $field_override ] )
public int SolrQuery::getHighlightSnippets ([ string $field_override ] )
public bool SolrQuery::getHighlightUsePhraseHighlighter ( void )
public bool SolrQuery::getMlt ( void )
public bool SolrQuery::getMltBoost ( void )
public int SolrQuery::getMltCount ( void )
public array SolrQuery::getMltFields ( void )
public int SolrQuery::getMltMaxNumQueryTerms ( void )
public int SolrQuery::getMltMaxNumTokens ( void )
public int SolrQuery::getMltMaxWordLength ( void )
public int SolrQuery::getMltMinDocFrequency ( void )
public int SolrQuery::getMltMinTermFrequency ( void )
public int SolrQuery::getMltMinWordLength ( void )
public array SolrQuery::getMltQueryFields ( void )
public string SolrQuery::getQuery ( void )
public int SolrQuery::getRows ( void )
public array SolrQuery::getSortFields ( void )
public int SolrQuery::getStart ( void )
public bool SolrQuery::getStats ( void )
public array SolrQuery::getStatsFacets ( void )
public array SolrQuery::getStatsFields ( void )
public bool SolrQuery::getTerms ( void )
public string SolrQuery::getTermsField ( void )
public bool SolrQuery::getTermsIncludeLowerBound ( void )
public bool SolrQuery::getTermsIncludeUpperBound ( void )
public int SolrQuery::getTermsLimit ( void )
public string SolrQuery::getTermsLowerBound ( void )
public int SolrQuery::getTermsMaxCount ( void )
public int SolrQuery::getTermsMinCount ( void )
public string SolrQuery::getTermsPrefix ( void )
public bool SolrQuery::getTermsReturnRaw ( void )
public int SolrQuery::getTermsSort ( void )
public string SolrQuery::getTermsUpperBound ( void )
public int SolrQuery::getTimeAllowed ( void )
public SolrQuery SolrQuery::removeExpandFilterQuery ( string $fq )
public SolrQuery SolrQuery::removeExpandSortField ( string $field )
public SolrQuery SolrQuery::removeFacetDateField ( string $field )
public SolrQuery SolrQuery::removeFacetDateOther ( string $value [, string $field_override ] )
public SolrQuery SolrQuery::removeFacetField ( string $field )
public SolrQuery SolrQuery::removeFacetQuery ( string $value )
public SolrQuery SolrQuery::removeField ( string $field )
public SolrQuery SolrQuery::removeFilterQuery ( string $fq )
public SolrQuery SolrQuery::removeHighlightField ( string $field )
public SolrQuery SolrQuery::removeMltField ( string $field )
public SolrQuery SolrQuery::removeMltQueryField ( string $queryField )
public SolrQuery SolrQuery::removeSortField ( string $field )
public SolrQuery SolrQuery::removeStatsFacet ( string $value )
public SolrQuery SolrQuery::removeStatsField ( string $field )
public SolrQuery SolrQuery::setEchoHandler ( bool $flag )
public SolrQuery SolrQuery::setEchoParams ( string $type )
public SolrQuery SolrQuery::setExpand ( bool $value )
public SolrQuery SolrQuery::setExpandQuery ( string $q )
public SolrQuery SolrQuery::setExpandRows ( integer $value )
public SolrQuery SolrQuery::setExplainOther ( string $query )
public SolrQuery SolrQuery::setFacet ( bool $flag )
public SolrQuery SolrQuery::setFacetDateEnd ( string $value [, string $field_override ] )
public SolrQuery SolrQuery::setFacetDateGap ( string $value [, string $field_override ] )
public SolrQuery SolrQuery::setFacetDateHardEnd ( bool $value [, string $field_override ] )
public SolrQuery SolrQuery::setFacetDateStart ( string $value [, string $field_override ] )
public SolrQuery SolrQuery::setFacetEnumCacheMinDefaultFrequency ( int $frequency [, string $field_override ] )
public SolrQuery SolrQuery::setFacetLimit ( int $limit [, string $field_override ] )
public SolrQuery SolrQuery::setFacetMethod ( string $method [, string $field_override ] )
public SolrQuery SolrQuery::setFacetMinCount ( int $mincount [, string $field_override ] )
public SolrQuery SolrQuery::setFacetMissing ( bool $flag [, string $field_override ] )
public SolrQuery SolrQuery::setFacetOffset ( int $offset [, string $field_override ] )
public SolrQuery SolrQuery::setFacetPrefix ( string $prefix [, string $field_override ] )
public SolrQuery SolrQuery::setFacetSort ( int $facetSort [, string $field_override ] )
public SolrQuery SolrQuery::setGroup ( bool $value )
public SolrQuery SolrQuery::setGroupCachePercent ( integer $percent )
public SolrQuery SolrQuery::setGroupFacet ( bool $value )
public SolrQuery SolrQuery::setGroupFormat ( string $value )
public SolrQuery SolrQuery::setGroupLimit ( integer $value )
public SolrQuery SolrQuery::setGroupMain ( string $value )
public SolrQuery SolrQuery::setGroupNGroups ( bool $value )
public SolrQuery SolrQuery::setGroupOffset ( integer $value )
public SolrQuery SolrQuery::setGroupTruncate ( bool $value )
public SolrQuery SolrQuery::setHighlight ( bool $flag )
public SolrQuery SolrQuery::setHighlightAlternateField ( string $field [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightFormatter ( string $formatter [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightFragmenter ( string $fragmenter [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightFragsize ( int $size [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightHighlightMultiTerm ( bool $flag )
public SolrQuery SolrQuery::setHighlightMaxAlternateFieldLength ( int $fieldLength [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightMaxAnalyzedChars ( int $value )
public SolrQuery SolrQuery::setHighlightMergeContiguous ( bool $flag [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars )
public SolrQuery SolrQuery::setHighlightRegexPattern ( string $value )
public SolrQuery SolrQuery::setHighlightRegexSlop ( float $factor )
public SolrQuery SolrQuery::setHighlightRequireFieldMatch ( bool $flag )
public SolrQuery SolrQuery::setHighlightSimplePost ( string $simplePost [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightSimplePre ( string $simplePre [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightSnippets ( int $value [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightUsePhraseHighlighter ( bool $flag )
public SolrQuery SolrQuery::setMlt ( bool $flag )
public SolrQuery SolrQuery::setMltBoost ( bool $flag )
public SolrQuery SolrQuery::setMltCount ( int $count )
public SolrQuery SolrQuery::setMltMaxNumQueryTerms ( int $value )
public SolrQuery SolrQuery::setMltMaxNumTokens ( int $value )
public SolrQuery SolrQuery::setMltMaxWordLength ( int $maxWordLength )
public SolrQuery SolrQuery::setMltMinDocFrequency ( int $minDocFrequency )
public SolrQuery SolrQuery::setMltMinTermFrequency ( int $minTermFrequency )
public SolrQuery SolrQuery::setMltMinWordLength ( int $minWordLength )
public SolrQuery SolrQuery::setOmitHeader ( bool $flag )
public SolrQuery SolrQuery::setQuery ( string $query )
public SolrQuery SolrQuery::setRows ( int $rows )
public SolrQuery SolrQuery::setShowDebugInfo ( bool $flag )
public SolrQuery SolrQuery::setStart ( int $start )
public SolrQuery SolrQuery::setStats ( bool $flag )
public SolrQuery SolrQuery::setTerms ( bool $flag )
public SolrQuery SolrQuery::setTermsField ( string $fieldname )
public SolrQuery SolrQuery::setTermsIncludeLowerBound ( bool $flag )
public SolrQuery SolrQuery::setTermsIncludeUpperBound ( bool $flag )
public SolrQuery SolrQuery::setTermsLimit ( int $limit )
public SolrQuery SolrQuery::setTermsLowerBound ( string $lowerBound )
public SolrQuery SolrQuery::setTermsMaxCount ( int $frequency )
public SolrQuery SolrQuery::setTermsMinCount ( int $frequency )
public SolrQuery SolrQuery::setTermsPrefix ( string $prefix )
public SolrQuery SolrQuery::setTermsReturnRaw ( bool $flag )
public SolrQuery SolrQuery::setTermsSort ( int $sortType )
public SolrQuery SolrQuery::setTermsUpperBound ( string $upperBound )
public SolrQuery SolrQuery::setTimeAllowed ( int $timeAllowed )
}

Constantes pré-définies

SolrDisMaxQuery::ORDER_ASC

Used to specify that the sorting should be in acending order (Duplicated for easier migration)

SolrDisMaxQuery::ORDER_DESC

Used to specify that the sorting should be in descending order (Duplicated for easier migration)

SolrDisMaxQuery::FACET_SORT_INDEX

Used to specify that the facet should sort by index (Duplicated for easier migration)

SolrDisMaxQuery::FACET_SORT_COUNT

Used to specify that the facet should sort by count (Duplicated for easier migration)

SolrDisMaxQuery::TERMS_SORT_INDEX

Used in the TermsComponent (Duplicated for easier migration)

SolrDisMaxQuery::TERMS_SORT_COUNT

Used in the TermsComponent (Duplicated for easier migration)

Sommaire

  • SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)
  • SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)
  • SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)
  • SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::__construct — Class Constructor
  • SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)
  • SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)
  • SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)
  • SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)
  • SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter).
  • SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)
  • SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)
  • SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)
  • SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)
  • SolrDisMaxQuery::setQueryPhraseSlop — specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
  • SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)
  • SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)
  • SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser
  • SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax


Adds a Phrase Bigram Field (pf2 parameter)

  • « SolrDisMaxQuery
  • SolrDisMaxQuery::addBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Phrase Bigram Field (pf2 parameter)

SolrDisMaxQuery::addBigramPhraseField

(No version information available, might only be in Git)

SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::addBigramPhraseField ( string $field , string $boost [, string $slop ] )

Adds a Phrase Bigram Field (pf2 parameter) output format: field~slop^boost OR field^boost Slop is optional

Liste de paramètres

field

boost

slop

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::addBigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBigramPhraseField('cat', 2, 5.1)
    ->addBigramPhraseField('feature', 4.5)
;
echo $dismaxQuery;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5

Voir aussi

  • SolrDisMaxQuery::removeBigramPhraseField() - Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::setBigramPhraseFields() - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)


Adds a boost query field with value and optional boost (bq parameter)

  • « SolrDisMaxQuery::addBigramPhraseField
  • SolrDisMaxQuery::addPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a boost query field with value and optional boost (bq parameter)

SolrDisMaxQuery::addBoostQuery

(No version information available, might only be in Git)

SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::addBoostQuery ( string $field , string $value [, string $boost ] )

Adds a Boost Query field with value [and boost] (bq parameter)

Liste de paramètres

field

value

boost

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::addBoostQuery() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBoostQuery('cat', 'clothing', 2)
    ->addBoostQuery('cat', 'electronics', 5.1)
;
echo $dismaxQuery.PHP_EOL;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&bq=cat:clothing^2 cat:electronics^5.1

Voir aussi

  • SolrDisMaxQuery::removeBoostQuery() - Removes a boost query partial by field name (bq)
  • SolrDisMaxQuery::setBoostQuery() - Directly Sets Boost Query Parameter (bq)


Adds a Phrase Field (pf parameter)

  • « SolrDisMaxQuery::addBoostQuery
  • SolrDisMaxQuery::addQueryField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Phrase Field (pf parameter)

SolrDisMaxQuery::addPhraseField

(No version information available, might only be in Git)

SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::addPhraseField ( string $field , string $boost [, string $slop ] )

Adds a Phrase Field (pf parameter)

Liste de paramètres

field

field name

boost

slop

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::addPhraseField() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addPhraseField('cat', 3, 1)
    ->addPhraseField('third', 4, 2)
    ->addPhraseField('source', 55)
;
echo $dismaxQuery;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&pf=cat~1^3 third~2^4 source^55

Voir aussi

  • SolrDisMaxQuery::removePhraseField() - Removes a Phrase Field (pf parameter)
  • SolrDisMaxQuery::setPhraseFields() - Sets Phrase Fields and their boosts (and slops) using pf2 parameter


Add a query field with optional boost (qf parameter)

  • « SolrDisMaxQuery::addPhraseField
  • SolrDisMaxQuery::addTrigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Add a query field with optional boost (qf parameter)

SolrDisMaxQuery::addQueryField

(No version information available, might only be in Git)

SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::addQueryField ( string $field [, string $boost ] )

Add a query field with optional boost (qf parameter)

Liste de paramètres

field

field name

boost

Boost value. Boosts documents with matching terms.

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::addQueryField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addQueryField("location", 4)
    ->addQueryField("price")
    ->addQueryField("sku")
    ->addQueryField("title",3.4)
;
echo $dismaxQuery;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&qf=location^4 price sku title^3.4

Voir aussi

  • SolrDisMaxQuery::removeQueryField() - Removes a Query Field (qf parameter)


Adds a Trigram Phrase Field (pf3 parameter)

  • « SolrDisMaxQuery::addQueryField
  • SolrDisMaxQuery::addUserField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Trigram Phrase Field (pf3 parameter)

SolrDisMaxQuery::addTrigramPhraseField

(No version information available, might only be in Git)

SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::addTrigramPhraseField ( string $field , string $boost [, string $slop ] )

Adds a Trigram Phrase Field (pf3 parameter)

Liste de paramètres

field

Field Name

boost

Field Boost

slop

Field Slop

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::addTrigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addTrigramPhraseField('cat', 2, 5.1)
->addTrigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;

?>

L'exemple ci-dessus va afficher :

q=lucene&defType=%s&pf3=cat~5.1^2 feature^4.5

Voir aussi

  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Adds a field to User Fields Parameter (uf)

  • « SolrDisMaxQuery::addTrigramPhraseField
  • SolrDisMaxQuery::__construct »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a field to User Fields Parameter (uf)

SolrDisMaxQuery::addUserField

(No version information available, might only be in Git)

SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)

Description

public SolrDisMaxQuery SolrDisMaxQuery::addUserField ( string $field )

Adds a field to The User Fields Parameter (uf)

Liste de paramètres

field

Field Name

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::addUserField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addUserField('cat')
->addUserField('text')
->addUserField('*_dt');

echo $dismaxQuery.PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&uf=cat text *_dt

Voir aussi

  • SolrDisMaxQuery::removeUserField() - Removes a field from The User Fields Parameter (uf)
  • SolrDisMaxQuery::setUserFields() - Sets User Fields parameter (uf)


Class Constructor

  • « SolrDisMaxQuery::addUserField
  • SolrDisMaxQuery::removeBigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Class Constructor

SolrDisMaxQuery::__construct

(No version information available, might only be in Git)

SolrDisMaxQuery::__construct — Class Constructor

Description

public SolrDisMaxQuery::__construct ([ string $q ] )

Class constructor initializes the object and sets the q parameter if passed

Liste de paramètres

q

Search Query (q parameter)

Valeurs de retour

Erreurs / Exceptions

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Exemples

Exemple #1 SolrDisMaxQuery::__construct() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
echo $dismaxQuery;

?>

L'exemple ci-dessus va afficher :

q=lucene&defType=edismax

Voir aussi


Removes phrase bigram field (pf2 parameter)

  • « SolrDisMaxQuery::__construct
  • SolrDisMaxQuery::removeBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes phrase bigram field (pf2 parameter)

SolrDisMaxQuery::removeBigramPhraseField

(No version information available, might only be in Git)

SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::removeBigramPhraseField ( string $field )

Removes a Bigram Phrase Field (pf2 parameter) that was previously added using SolrDisMaxQuery::addBigramPhraseField()

Liste de paramètres

field

The Field Name

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::removeBigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBigramPhraseField('cat', 2, 5.1)
    ->addBigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;

// remove cat from pf2
$dismaxQuery
    ->removeBigramPhraseField('cat');
echo $dismaxQuery.PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5
q=lucene&defType=edismax&pf2=feature^4.5

Voir aussi

  • SolrDisMaxQuery::addBigramPhraseField() - Adds a Phrase Bigram Field (pf2 parameter)
  • SolrDisMaxQuery::setBigramPhraseFields() - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)


Removes a boost query partial by field name (bq)

  • « SolrDisMaxQuery::removeBigramPhraseField
  • SolrDisMaxQuery::removePhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a boost query partial by field name (bq)

SolrDisMaxQuery::removeBoostQuery

(No version information available, might only be in Git)

SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)

Description

public SolrDisMaxQuery SolrDisMaxQuery::removeBoostQuery ( string $field )

Removes a boost query partial from the existing query, only if SolrDisMaxQuery::addBoostQuery() was used.

Liste de paramètres

field

Field Name

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::removeBoostQuery() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBoostQuery('cat', 'electronics', 5.1)
    ->addBoostQuery('cat', 'hard drive')
;
echo $dismaxQuery.PHP_EOL;
// now remove a query part with field 'cat'
$dismaxQuery
->removeBoostQuery('cat');
echo $dismaxQuery . PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&bq=cat:electronics^5.1 cat:hard drive
q=lucene&defType=edismax&bq=cat:hard drive

Voir aussi

  • SolrDisMaxQuery::addBoostQuery() - Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::setBoostQuery() - Directly Sets Boost Query Parameter (bq)


Removes a Phrase Field (pf parameter)

  • « SolrDisMaxQuery::removeBoostQuery
  • SolrDisMaxQuery::removeQueryField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Phrase Field (pf parameter)

SolrDisMaxQuery::removePhraseField

(No version information available, might only be in Git)

SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::removePhraseField ( string $field )

Removes a Phrase Field (pf parameter) that was previously added using SolrDisMaxQuery::addPhraseField

Liste de paramètres

field

Field Name

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::removePhraseField() example

<?php
$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
    ->addPhraseField('first', 3, 1)
    ->addPhraseField('second', 4, 1)
    ->addPhraseField('cat', 55);
echo $dismaxQuery . PHP_EOL;
echo $dismaxQuery->removePhraseField('second');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&pf=first~1^3 second~1^4 cat^55
q=lucene&defType=edismax&pf=first~1^3 cat^55

Voir aussi

  • SolrDisMaxQuery::addPhraseField() - Adds a Phrase Field (pf parameter)
  • SolrDisMaxQuery::setPhraseFields() - Sets Phrase Fields and their boosts (and slops) using pf2 parameter


Removes a Query Field (qf parameter)

  • « SolrDisMaxQuery::removePhraseField
  • SolrDisMaxQuery::removeTrigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Query Field (qf parameter)

SolrDisMaxQuery::removeQueryField

(No version information available, might only be in Git)

SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::removeQueryField ( string $field )

Removes a Query Field (qf parameter) from the field list added by SolrDisMaxQuery::addQueryField()

qf: When building DisjunctionMaxQueries from the user's query it specifies the fields to search in, and boosts for those fields.

Liste de paramètres

field

Field Name

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::removeQueryField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
    ->addQueryField('first', 3)
    ->addQueryField('second', 0.2)
    ->addQueryField('cat');
echo $dismaxQuery . PHP_EOL;
// remove field 'second'
echo $dismaxQuery->removeQueryField('second');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&qf=first^3 second^0.2 cat
q=lucene&defType=edismax&qf=first^3 cat

Voir aussi

  • SolrDisMaxQuery::addQueryField() - Add a query field with optional boost (qf parameter)


Removes a Trigram Phrase Field (pf3 parameter)

  • « SolrDisMaxQuery::removeQueryField
  • SolrDisMaxQuery::removeUserField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Trigram Phrase Field (pf3 parameter)

SolrDisMaxQuery::removeTrigramPhraseField

(No version information available, might only be in Git)

SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::removeTrigramPhraseField ( string $field )

Removes a Trigram Phrase Field (pf3 parameter)

Liste de paramètres

field

Field Name

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::removeTrigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addTrigramPhraseField('cat', 2, 5.1)
->addTrigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;
// reverse
$dismaxQuery
->removeTrigramPhraseField('cat');
echo $dismaxQuery.PHP_EOL;

?>

L'exemple ci-dessus va afficher :

q=lucene&defType=%s&pf3=cat~5.1^2 feature^4.5
q=lucene&defType=%s&pf3=feature^4.5

Voir aussi

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Removes a field from The User Fields Parameter (uf)

  • « SolrDisMaxQuery::removeTrigramPhraseField
  • SolrDisMaxQuery::setBigramPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a field from The User Fields Parameter (uf)

SolrDisMaxQuery::removeUserField

(No version information available, might only be in Git)

SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)

Description

public SolrDisMaxQuery SolrDisMaxQuery::removeUserField ( string $field )

Removes a field from The User Fields Parameter (uf)

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

field

Field Name

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::removeUserField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addUserField('cat')
->addUserField('text')
->addUserField('*_dt')
;
echo $dismaxQuery.PHP_EOL;

// remove field named 'text'
$dismaxQuery
->removeUserField('text');
echo $dismaxQuery.PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=%s&uf=cat text *_dt
q=lucene&defType=%s&uf=cat *_dt

Voir aussi

  • SolrDisMaxQuery::addUserField() - Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::setUserFields() - Sets User Fields parameter (uf)


Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

  • « SolrDisMaxQuery::removeUserField
  • SolrDisMaxQuery::setBigramPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

SolrDisMaxQuery::setBigramPhraseFields

(No version information available, might only be in Git)

SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

Description

public SolrDisMaxQuery SolrDisMaxQuery::setBigramPhraseFields ( string $fields )

Sets Bigram Phrase Fields (pf2) and their boosts (and slops)

Liste de paramètres

fields

Fields boosts (slops)

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::setBigramPhraseFields() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery->setBigramPhraseFields("cat~5.1^2 feature^4.5");
echo $dismaxQuery.PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5

Voir aussi

  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)
  • SolrDisMaxQuery::addBigramPhraseFields()
  • SolrDisMaxQuery::removeBigramPhraseField() - Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)


Sets Bigram Phrase Slop (ps2 parameter)

  • « SolrDisMaxQuery::setBigramPhraseFields
  • SolrDisMaxQuery::setBoostFunction »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Bigram Phrase Slop (ps2 parameter)

SolrDisMaxQuery::setBigramPhraseSlop

(No version information available, might only be in Git)

SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::setBigramPhraseSlop ( string $slop )

Sets Bigram Phrase Slop (ps2 parameter). A default slop for Bigram phrase fields.

Liste de paramètres

slop

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::setBigramPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$dismaxQuery->setBigramPhraseSlop(5);
echo $dismaxQuery.PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&ps2=5

Voir aussi


Sets a Boost Function (bf parameter).

  • « SolrDisMaxQuery::setBigramPhraseSlop
  • SolrDisMaxQuery::setBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets a Boost Function (bf parameter).

SolrDisMaxQuery::setBoostFunction

(No version information available, might only be in Git)

SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter).

Description

public SolrDisMaxQuery SolrDisMaxQuery::setBoostFunction ( string $function )

Sets Boost Function (bf parameter).

Functions (with optional boosts) that will be included in the user's query to influence the score. Any function supported natively by Solr can be used, along with a boost value. e.g.:

recip(rord(myfield),1,2,3)^1.5

Liste de paramètres

function

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::setBoostFunction() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$boostRecentDocsFunction = "recip(ms(NOW,mydatefield),3.16e-11,1,1)";
$dismaxQuery->setBoostFunction($boostRecentDocsFunction);

echo $dismaxQuery.PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&bf=recip(ms(NOW,mydatefield),3.16e-11,1,1)

Voir aussi


Directly Sets Boost Query Parameter (bq)

  • « SolrDisMaxQuery::setBoostFunction
  • SolrDisMaxQuery::setMinimumMatch »
  • PHP Manual
  • SolrDisMaxQuery
  • Directly Sets Boost Query Parameter (bq)

SolrDisMaxQuery::setBoostQuery

(No version information available, might only be in Git)

SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)

Description

public SolrDisMaxQuery SolrDisMaxQuery::setBoostQuery ( string $q )

Sets Boost Query Parameter (bq)

Liste de paramètres

q

query

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::setBoostQuery() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");

$dismaxQuery->setBoostQuery('cat:electronics manu:local^2');
echo $dismaxQuery.PHP_EOL;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&bq=cat:electronics manu:local^2

Voir aussi

  • SolrDisMaxQuery::addBoostQuery() - Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::removeBoostQuery() - Removes a boost query partial by field name (bq)


Set Minimum "Should" Match (mm)

  • « SolrDisMaxQuery::setBoostQuery
  • SolrDisMaxQuery::setPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Set Minimum "Should" Match (mm)

SolrDisMaxQuery::setMinimumMatch

(No version information available, might only be in Git)

SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)

Description

public SolrDisMaxQuery SolrDisMaxQuery::setMinimumMatch ( string $value )

Set Minimum "Should" Match parameter (mm). If the default query operator is AND then mm=100%, if the default query operator (q.op) is OR, then mm=0%.

Liste de paramètres

value

Minimum match value/expression

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::setMinimumMatch() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
// 75% of the query clauses must match
$dismaxQuery->setMinimumMatch("75%");
echo $dismaxQuery . PHP_EOL;

?>

L'exemple ci-dessus va afficher :

q=lucene&defType=edismax&mm=75%


Sets Phrase Fields and their boosts (and slops) using pf2 parameter

  • « SolrDisMaxQuery::setMinimumMatch
  • SolrDisMaxQuery::setPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Phrase Fields and their boosts (and slops) using pf2 parameter

SolrDisMaxQuery::setPhraseFields

(No version information available, might only be in Git)

SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter

Description

public SolrDisMaxQuery SolrDisMaxQuery::setPhraseFields ( string $fields )

Sets Phrase Fields (pf) and their boosts (and slops)

Liste de paramètres

fields

Fields, boosts [, slops]

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::setPhraseFields() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery->setPhraseFields("cat~5.1^2 feature^4.5");
echo $dismaxQuery.PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&pf=cat~5.1^2 feature^4.5

Voir aussi

  • SolrDisMaxQuery::addPhraseFields()
  • SolrDisMaxQuery::removePhraseField() - Removes a Phrase Field (pf parameter)


Sets the default slop on phrase queries (ps parameter)

  • « SolrDisMaxQuery::setPhraseFields
  • SolrDisMaxQuery::setQueryAlt »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets the default slop on phrase queries (ps parameter)

SolrDisMaxQuery::setPhraseSlop

(No version information available, might only be in Git)

SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::setPhraseSlop ( string $slop )

Sets the default amount of slop on phrase queries built with "pf", "pf2" and/or "pf3" fields (affects boosting). "ps" parameter

Liste de paramètres

slop

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::setPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$dismaxQuery->setPhraseSlop(4);
echo $dismaxQuery.PHP_EOL;

?>

L'exemple ci-dessus va afficher :

q=lucene&defType=edismax&ps=4

Voir aussi


Set Query Alternate (q.alt parameter)

  • « SolrDisMaxQuery::setPhraseSlop
  • SolrDisMaxQuery::setQueryPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Set Query Alternate (q.alt parameter)

SolrDisMaxQuery::setQueryAlt

(No version information available, might only be in Git)

SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::setQueryAlt ( string $q )

Set Query Alternate (q.alt parameter)

When the main q parameter is not specified or is blank. The q.alt parameter is used

Liste de paramètres

q

Query String

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::setQueryAlt() example

<?php

$dismaxQuery = new DisMaxQuery();
$dismaxQuery->setQueryAlt('*:*');

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

defType=edismax&q.alt=*:*&q=


specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

  • « SolrDisMaxQuery::setQueryAlt
  • SolrDisMaxQuery::setTieBreaker »
  • PHP Manual
  • SolrDisMaxQuery
  • specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

SolrDisMaxQuery::setQueryPhraseSlop

(No version information available, might only be in Git)

SolrDisMaxQuery::setQueryPhraseSlop — specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::setQueryPhraseSlop ( string $slop )

The Query Phrase Slop is the amount of slop permitted on phrase queries explicitly included in the user's query string with the qf parameter.

slop refers to the number of positions one token needs to be moved in relation to another token in order to match a phrase specified in a query.

Liste de paramètres

slop

Amount of slop

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::setQueryPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->setQueryPhraseSlop(3);
echo $dismaxQuery;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

defType=edismax&qs=3


Sets Tie Breaker parameter (tie parameter)

  • « SolrDisMaxQuery::setQueryPhraseSlop
  • SolrDisMaxQuery::setTrigramPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Tie Breaker parameter (tie parameter)

SolrDisMaxQuery::setTieBreaker

(No version information available, might only be in Git)

SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::setTieBreaker ( string $tieBreaker )

Sets Tie Breaker parameter (tie parameter)

Liste de paramètres

tieBreaker

The tie parameter specifies a float value (which should be something much less than 1) to use as tiebreaker in DisMax queries.

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::setTieBreaker() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->setTieBreaker(0.1);

echo $dismaxQuery;

?>

L'exemple ci-dessus va afficher :

defType=edismax&tie=0.1


Directly Sets Trigram Phrase Fields (pf3 parameter)

  • « SolrDisMaxQuery::setTieBreaker
  • SolrDisMaxQuery::setTrigramPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Directly Sets Trigram Phrase Fields (pf3 parameter)

SolrDisMaxQuery::setTrigramPhraseFields

(No version information available, might only be in Git)

SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::setTrigramPhraseFields ( string $fields )

Directly Sets Trigram Phrase Fields (pf3 parameter)

Liste de paramètres

fields

Trigram Phrase Fields

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::setTrigramPhraseFields() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setTrigramPhraseFields('cat~5.1^2 feature^4.5');
echo $dismaxQuery.PHP_EOL;

?>

L'exemple ci-dessus va afficher :

q=lucene&defType=edismax&pf3=cat~5.1^2 feature^4.5

Voir aussi

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Sets Trigram Phrase Slop (ps3 parameter)

  • « SolrDisMaxQuery::setTrigramPhraseFields
  • SolrDisMaxQuery::setUserFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Trigram Phrase Slop (ps3 parameter)

SolrDisMaxQuery::setTrigramPhraseSlop

(No version information available, might only be in Git)

SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)

Description

public SolrDisMaxQuery SolrDisMaxQuery::setTrigramPhraseSlop ( string $slop )

Sets Trigram Phrase Slop (ps3 parameter)

Liste de paramètres

slop

Phrase slop

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::setTrigramPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setTrigramPhraseSlop(2);
echo $dismaxQuery.PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&ps3=2

Voir aussi

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)


Sets User Fields parameter (uf)

  • « SolrDisMaxQuery::setTrigramPhraseSlop
  • SolrDisMaxQuery::useDisMaxQueryParser »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets User Fields parameter (uf)

SolrDisMaxQuery::setUserFields

(No version information available, might only be in Git)

SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)

Description

public SolrDisMaxQuery SolrDisMaxQuery::setUserFields ( string $fields )

Sets User Fields parameter (uf)

User Fields: Specifies which schema fields the end user shall be allowed to query.

Liste de paramètres

fields

Fields names separated by space

This parameter supports wildcards.

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::setUserFields() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setUserFields('field1 field2 *_txt');
echo $dismaxQuery.PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

q=lucene&defType=edismax&uf=field1 field2 *_txt

Voir aussi

  • SolrDisMaxQuery::addUserField() - Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::removeUserField() - Removes a field from The User Fields Parameter (uf)


Switch QueryParser to be DisMax Query Parser

  • « SolrDisMaxQuery::setUserFields
  • SolrDisMaxQuery::useEDisMaxQueryParser »
  • PHP Manual
  • SolrDisMaxQuery
  • Switch QueryParser to be DisMax Query Parser

SolrDisMaxQuery::useDisMaxQueryParser

(No version information available, might only be in Git)

SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser

Description

public SolrDisMaxQuery SolrDisMaxQuery::useDisMaxQueryParser ( void )

Switch QueryParser to be DisMax Query Parser

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::useDisMaxQueryParser() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->useDisMaxQueryParser();
echo $dismaxQuery;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

defType=dismax

Voir aussi

  • SolrDisMaxQuery::useDisMaxQueryParser()


Switch QueryParser to be EDisMax

  • « SolrDisMaxQuery::useDisMaxQueryParser
  • SolrCollapseFunction »
  • PHP Manual
  • SolrDisMaxQuery
  • Switch QueryParser to be EDisMax

SolrDisMaxQuery::useEDisMaxQueryParser

(No version information available, might only be in Git)

SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax

Description

public SolrDisMaxQuery SolrDisMaxQuery::useEDisMaxQueryParser ( void )

Switch QueryParser to be EDisMax. By default the query builder uses edismax, if it was switched using SolrDisMaxQuery::useDisMaxQueryParser(), it can be switched back using this method.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

SolrDisMaxQuery

Exemples

Exemple #1 SolrDisMaxQuery::useEDisMaxQueryParser() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->useEDisMaxQueryParser();
echo $dismaxQuery;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

defType=edismax

Voir aussi


The SolrCollapseFunction class

(PECL solr >= 2.2.0)

Introduction

Synopsis de la classe

SolrCollapseFunction {
/* Constants */
const string NULLPOLICY_IGNORE = ignore ;
const string NULLPOLICY_EXPAND = expand ;
const string NULLPOLICY_COLLAPSE = collapse ;
/* Méthodes */
public __construct ([ string $field ] )
public string getField ( void )
public string getHint ( void )
public string getMax ( void )
public string getMin ( void )
public string getNullPolicy ( void )
public integer getSize ( void )
public SolrCollapseFunction setField ( string $fieldName )
public SolrCollapseFunction setHint ( string $hint )
public SolrCollapseFunction setMax ( string $max )
public SolrCollapseFunction setMin ( string $min )
public SolrCollapseFunction setNullPolicy ( string $nullPolicy )
public SolrCollapseFunction setSize ( integer $size )
public string __toString ( void )
}

Constantes pré-définies

SolrCollapseFunction::NULLPOLICY_IGNORE

SolrCollapseFunction::NULLPOLICY_EXPAND

SolrCollapseFunction::NULLPOLICY_COLLAPSE

Sommaire

  • SolrCollapseFunction::__construct — Constructor
  • SolrCollapseFunction::getField — Returns the field that is being collapsed on.
  • SolrCollapseFunction::getHint — Returns collapse hint
  • SolrCollapseFunction::getMax — Returns max parameter
  • SolrCollapseFunction::getMin — Returns min parameter
  • SolrCollapseFunction::getNullPolicy — Returns null policy
  • SolrCollapseFunction::getSize — Returns size parameter
  • SolrCollapseFunction::setField — Sets the field to collapse on
  • SolrCollapseFunction::setHint — Sets collapse hint
  • SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query.
  • SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only
  • SolrCollapseFunction::setNullPolicy — Sets the NULL Policy
  • SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only.
  • SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function


Constructor

  • « SolrCollapseFunction
  • SolrCollapseFunction::getField »
  • PHP Manual
  • SolrCollapseFunction
  • Constructor

SolrCollapseFunction::__construct

(PECL solr >= 2.2.0)

SolrCollapseFunction::__construct — Constructor

Description

public SolrCollapseFunction::__construct ([ string $field ] )

Collapse Function constructor

Liste de paramètres

field

The field name to collapse on.

In order to collapse a result. The field type must be a single valued String, Int or Float.

Exemples

Exemple #1 SolrCollapseFunction::__construct() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$func = new SolrCollapseFunction('field_name');

$func->setMax('sum(cscore(),field(some_other_field))');
$func->setSize(100);
$func->setNullPolicy(SolrCollapseFunction::NULLPOLICY_EXPAND);

$query->collapse($func);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);

?>

Voir aussi

  • SolrQuery::collapse() - Collapses the result set to a single document per group


Returns the field that is being collapsed on.

  • « SolrCollapseFunction::__construct
  • SolrCollapseFunction::getHint »
  • PHP Manual
  • SolrCollapseFunction
  • Returns the field that is being collapsed on.

SolrCollapseFunction::getField

(PECL solr >= 2.2.0)

SolrCollapseFunction::getField — Returns the field that is being collapsed on.

Description

public string SolrCollapseFunction::getField ( void )

Returns the field that is being collapsed on.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrCollapseFunction::setField() - Sets the field to collapse on


Returns collapse hint

  • « SolrCollapseFunction::getField
  • SolrCollapseFunction::getMax »
  • PHP Manual
  • SolrCollapseFunction
  • Returns collapse hint

SolrCollapseFunction::getHint

(PECL solr >= 2.2.0)

SolrCollapseFunction::getHint — Returns collapse hint

Description

public string SolrCollapseFunction::getHint ( void )

Returns collapse hint

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrCollapseFunction::setHint() - Sets collapse hint


Returns max parameter

  • « SolrCollapseFunction::getHint
  • SolrCollapseFunction::getMin »
  • PHP Manual
  • SolrCollapseFunction
  • Returns max parameter

SolrCollapseFunction::getMax

(PECL solr >= 2.2.0)

SolrCollapseFunction::getMax — Returns max parameter

Description

public string SolrCollapseFunction::getMax ( void )

Returns max parameter

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrCollapseFunction::setMax() - Selects the group heads by the max value of a numeric field or function query.


Returns min parameter

  • « SolrCollapseFunction::getMax
  • SolrCollapseFunction::getNullPolicy »
  • PHP Manual
  • SolrCollapseFunction
  • Returns min parameter

SolrCollapseFunction::getMin

(PECL solr >= 2.2.0)

SolrCollapseFunction::getMin — Returns min parameter

Description

public string SolrCollapseFunction::getMin ( void )

Returns min parameter

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrCollapseFunction::setMin() - Sets the initial size of the collapse data structures when collapsing on a numeric field only


Returns null policy

  • « SolrCollapseFunction::getMin
  • SolrCollapseFunction::getSize »
  • PHP Manual
  • SolrCollapseFunction
  • Returns null policy

SolrCollapseFunction::getNullPolicy

(PECL solr >= 2.2.0)

SolrCollapseFunction::getNullPolicy — Returns null policy

Description

public string SolrCollapseFunction::getNullPolicy ( void )

Returns null policy used or null

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrCollapseFunction::setNullPolicy() - Sets the NULL Policy


Returns size parameter

  • « SolrCollapseFunction::getNullPolicy
  • SolrCollapseFunction::setField »
  • PHP Manual
  • SolrCollapseFunction
  • Returns size parameter

SolrCollapseFunction::getSize

(PECL solr >= 2.2.0)

SolrCollapseFunction::getSize — Returns size parameter

Description

public integer SolrCollapseFunction::getSize ( void )

Gets the initial size of the collapse data structures when collapsing on a numeric field only

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • SolrCollapseFunction::setSize() - Sets the initial size of the collapse data structures when collapsing on a numeric field only.


Sets the field to collapse on

  • « SolrCollapseFunction::getSize
  • SolrCollapseFunction::setHint »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the field to collapse on

SolrCollapseFunction::setField

(PECL solr >= 2.2.0)

SolrCollapseFunction::setField — Sets the field to collapse on

Description

public SolrCollapseFunction SolrCollapseFunction::setField ( string $fieldName )

The field name to collapse on. In order to collapse a result. The field type must be a single valued String, Int or Float.

Liste de paramètres

fieldName

Valeurs de retour

SolrCollapseFunction


Sets collapse hint

  • « SolrCollapseFunction::setField
  • SolrCollapseFunction::setMax »
  • PHP Manual
  • SolrCollapseFunction
  • Sets collapse hint

SolrCollapseFunction::setHint

(PECL solr >= 2.2.0)

SolrCollapseFunction::setHint — Sets collapse hint

Description

public SolrCollapseFunction SolrCollapseFunction::setHint ( string $hint )

Sets collapse hint

Liste de paramètres

hint

Currently there is only one hint available "top_fc", which stands for top level FieldCache

Valeurs de retour

SolrCollapseFunction

Exemples

Exemple #1 SolrCollapseFunction::setHint() example

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...


Selects the group heads by the max value of a numeric field or function query.

  • « SolrCollapseFunction::setHint
  • SolrCollapseFunction::setMin »
  • PHP Manual
  • SolrCollapseFunction
  • Selects the group heads by the max value of a numeric field or function query.

SolrCollapseFunction::setMax

(PECL solr >= 2.2.0)

SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query.

Description

public SolrCollapseFunction SolrCollapseFunction::setMax ( string $max )

Selects the group heads by the max value of a numeric field or function query.

Liste de paramètres

max

Valeurs de retour

SolrCollapseFunction

Exemples

Exemple #1 SolrCollapseFunction::setMax() example

<?php

$func = new SolrCollapseFunction('field_name');

$func->setMax('sum(cscore(),field(some_field))');

$query = new SolrQuery('*:*');

$query->collapse($func);

?>


Sets the initial size of the collapse data structures when collapsing on a numeric field only

  • « SolrCollapseFunction::setMax
  • SolrCollapseFunction::setNullPolicy »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the initial size of the collapse data structures when collapsing on a numeric field only

SolrCollapseFunction::setMin

(PECL solr >= 2.2.0)

SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only

Description

public SolrCollapseFunction SolrCollapseFunction::setMin ( string $min )

Sets the initial size of the collapse data structures when collapsing on a numeric field only

Liste de paramètres

min

Valeurs de retour

SolrCollapseFunction


Sets the NULL Policy

  • « SolrCollapseFunction::setMin
  • SolrCollapseFunction::setSize »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the NULL Policy

SolrCollapseFunction::setNullPolicy

(PECL solr >= 2.2.0)

SolrCollapseFunction::setNullPolicy — Sets the NULL Policy

Description

public SolrCollapseFunction SolrCollapseFunction::setNullPolicy ( string $nullPolicy )

Sets the NULL Policy. One of the 3 policies defined as class constants shall be passed. Accepts ignore, expand, or collapse policies.

Liste de paramètres

nullPolicy

Valeurs de retour

SolrCollapseFunction


Sets the initial size of the collapse data structures when collapsing on a numeric field only.

  • « SolrCollapseFunction::setNullPolicy
  • SolrCollapseFunction::__toString »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the initial size of the collapse data structures when collapsing on a numeric field only.

SolrCollapseFunction::setSize

(PECL solr >= 2.2.0)

SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only.

Description

public SolrCollapseFunction SolrCollapseFunction::setSize ( integer $size )

Sets the initial size of the collapse data structures when collapsing on a numeric field only.

Liste de paramètres

size

Valeurs de retour

SolrCollapseFunction


Returns a string representing the constructed collapse function

  • « SolrCollapseFunction::setSize
  • SolrException »
  • PHP Manual
  • SolrCollapseFunction
  • Returns a string representing the constructed collapse function

SolrCollapseFunction::__toString

(PECL solr >= 2.2.0)

SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function

Description

public string SolrCollapseFunction::__toString ( void )

Returns a string representing the constructed collapse function

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe SolrException

(PECL solr >= 0.9.2)

Introduction

C'est la classe de base pour toutes les exceptions lancées par les classes de l'extension Solr.

Synopsis de la classe

SolrException extends Exception {
/* Propriétés */
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes */
public array getInternalInfo ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

sourceline

La ligne du fichier source de l'espace C d'où l'exception a été générée.

sourcefile

Le fichier source de l'espace C d'où l'exception a été générée.

zif_name

La fonction de l'espace C d'où l'exception a été générée.

Sommaire

  • SolrException::getInternalInfo — Récupère des informations internes lorsqu'une exception a été lancée


Récupère des informations internes lorsqu'une exception a été lancée

  • « SolrException
  • SolrClientException »
  • PHP Manual
  • SolrException
  • Récupère des informations internes lorsqu'une exception a été lancée

SolrException::getInternalInfo

(PECL solr >= 0.9.2)

SolrException::getInternalInfo — Récupère des informations internes lorsqu'une exception a été lancée

Description

public array SolrException::getInternalInfo ( void )

Récupère des informations internes lorsqu'une exception a été lancée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant des informations internes lorsqu'une exception a été lancée. Utilisé uniquement dans un cadre de débogage pour les développeurs de l'extension.


La classe SolrClientException

(PECL solr >= 0.9.2)

Introduction

Une exception est lancée lorsqu'une erreur survient pendant l'exécution d'une requête vers le serveur depuis le client.

Synopsis de la classe

SolrClientException extends SolrException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Méthodes */
public array getInternalInfo ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
public array SolrException::getInternalInfo ( void )
}

Sommaire

  • SolrClientException::getInternalInfo — Retourne des informations internes sur l'endroit d'où est lancée l'exception


Retourne des informations internes sur l'endroit d'où est lancée l'exception

  • « SolrClientException
  • SolrServerException »
  • PHP Manual
  • SolrClientException
  • Retourne des informations internes sur l'endroit d'où est lancée l'exception

SolrClientException::getInternalInfo

(PECL solr >= 0.9.2)

SolrClientException::getInternalInfo — Retourne des informations internes sur l'endroit d'où est lancée l'exception

Description

public array SolrClientException::getInternalInfo ( void )

Retourne des informations internes sur l'endroit d'où est lancée l'exception.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant des informations internes sur l'endroit d'où est lancée l'exception. Utilisé uniquement par les developpeurs de l'extension.


La classe SolrServerException

(PECL Solr >= 1.1.0, >=2.0.0)

Introduction

Une exception est émise lorsque ce produit une erreur dans le serveur Solr.

Synopsis de la classe

SolrServerException extends SolrException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Méthodes */
public array getInternalInfo ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
public array SolrException::getInternalInfo ( void )
}

Sommaire

  • SolrServerException::getInternalInfo — Retourne des informations internes sur le lieu où l'exception a été émise


Retourne des informations internes sur le lieu où l'exception a été émise

  • « SolrServerException
  • SolrIllegalArgumentException »
  • PHP Manual
  • SolrServerException
  • Retourne des informations internes sur le lieu où l'exception a été émise

SolrServerException::getInternalInfo

(PECL solr >= 1.1.0, >=2.0.0)

SolrServerException::getInternalInfo — Retourne des informations internes sur le lieu où l'exception a été émise

Description

public array SolrServerException::getInternalInfo ( void )

Retourne des informations internes sur le lieu où l'exception a été émise.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant des informations internes sur le lieu où l'exception a été émise. Utilisé uniquement par les développeurs de l'extension dans un but de débogage.


La classe SolrIllegalArgumentException

(PECL solr >= 0.9.2)

Introduction

Cet objet est lancé lorsqu'un argument illégal ou invalide est passé à une méthode.

Synopsis de la classe

SolrIllegalArgumentException extends SolrException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Méthodes */
public array getInternalInfo ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
public array SolrException::getInternalInfo ( void )
}

Sommaire

  • SolrIllegalArgumentException::getInternalInfo — Retourne des informations sur l'endroit d'où l'exception a été émise


Retourne des informations sur l'endroit d'où l'exception a été émise

  • « SolrIllegalArgumentException
  • SolrIllegalOperationException »
  • PHP Manual
  • SolrIllegalArgumentException
  • Retourne des informations sur l'endroit d'où l'exception a été émise

SolrIllegalArgumentException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalArgumentException::getInternalInfo — Retourne des informations sur l'endroit d'où l'exception a été émise

Description

public array SolrIllegalArgumentException::getInternalInfo ( void )

Retourne des informations sur l'endroit d'où l'exception a été émise.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant des informations internes d'où l'exception a été émise. Utilisé uniquement pour le déboguage par les développeurs de l'extension.


La classe SolrIllegalOperationException

(PECL solr >= 0.9.2)

Introduction

Cet objet est lancé lorsqu'une opération illégale ou non supportée est effectuée sur l'objet.

Synopsis de la classe

SolrIllegalOperationException extends SolrException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Méthodes */
public array getInternalInfo ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
public array SolrException::getInternalInfo ( void )
}

Sommaire

  • SolrIllegalOperationException::getInternalInfo — Récupère des informations internes lorsqu'une exception a été lancée


Récupère des informations internes lorsqu'une exception a été lancée

  • « SolrIllegalOperationException
  • SolrMissingMandatoryParameterException »
  • PHP Manual
  • SolrIllegalOperationException
  • Récupère des informations internes lorsqu'une exception a été lancée

SolrIllegalOperationException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalOperationException::getInternalInfo — Récupère des informations internes lorsqu'une exception a été lancée

Description

public array SolrIllegalOperationException::getInternalInfo ( void )

Récupère des informations internes lorsqu'une exception a été lancée.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant des informations internes lorsqu'une exception a été lancée. Utilisé uniquement dans un cadre de débogage pour les développeurs de l'extension.


The SolrMissingMandatoryParameterException class

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

SolrMissingMandatoryParameterException extends SolrException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
public array SolrException::getInternalInfo ( void )
}


Client Sphinx

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • SphinxClient — La classe SphinxClient
    • SphinxClient::addQuery — Ajoute une requête à un batch multiple
    • SphinxClient::buildExcerpts — Construit les extraits de texte
    • SphinxClient::buildKeywords — Extrait les mots-clés d'une requête
    • SphinxClient::close — Ferme une connexion persistante ouverte
    • SphinxClient::__construct — Crée un nouvel objet SphinxClient
    • SphinxClient::escapeString — Protège les caractères spéciaux
    • SphinxClient::getLastError — Lit le dernier message d'erreur
    • SphinxClient::getLastWarning — Lit la dernière alerte
    • SphinxClient::open — Établit une connexion persistante avec le serveur
    • SphinxClient::query — Exécute une requête de recherche
    • SphinxClient::resetFilters — Supprime tous les filtres
    • SphinxClient::resetGroupBy — Supprime toutes les configurations de regroupement
    • SphinxClient::runQueries — Exécute une série de requêtes de recherche
    • SphinxClient::setArrayResult — Change le format du tableau de résultats
    • SphinxClient::setConnectTimeout — Configure le délai d'expiration de connexion
    • SphinxClient::setFieldWeights — Configure le poids des champs
    • SphinxClient::setFilter — Ajoute un nouveau filtre entier
    • SphinxClient::setFilterFloatRange — Ajoute un nouveau filtre décimal
    • SphinxClient::setFilterRange — Ajoute un nouveau filtre d'intervalle
    • SphinxClient::setGeoAnchor — Configure le point d'origine pour les calculs géographiques
    • SphinxClient::setGroupBy — Configure les attributs de regroupement
    • SphinxClient::setGroupDistinct — Configure les calculs au niveau des valeurs distinctes
    • SphinxClient::setIDRange — Configure l'intervalle de validité des identifiants de document
    • SphinxClient::setIndexWeights — Configure les poids de chaque index
    • SphinxClient::setLimits — Configure l'offset et la limite du résultat
    • SphinxClient::setMatchMode — Configure le mode de recherche en texte intégral
    • SphinxClient::setMaxQueryTime — Configure la durée maximale de recherche
    • SphinxClient::setOverride — Définit temporairement la valeur d'attribut pour un document
    • SphinxClient::setRankingMode — Configure le mode de classement
    • SphinxClient::setRetries — Configure le nombre de tentatives et le délai d'expiration
    • SphinxClient::setSelect — Définit une clause à la sélection
    • SphinxClient::setServer — Configure l'hôte et le port searchd
    • SphinxClient::setSortMode — Configure le mode de tri
    • SphinxClient::status — Récupère le statut de searchd
    • SphinxClient::updateAttributes — Modifie les attributs d'un document


Introduction

Cette extension fournit une interface avec la bibliothèque de recherche Sphinx. Sphinx est un moteur de recherche indépendant, qui propose une recherche en texte intégrale rapide, efficace et pertinente. Sphinx est conçu pour s'intégrer avec les bases de données SQL, et les langages de scripts. Sphinx et ses bibliothèques clientes sont disponibles sur » le site officiel


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

PECL/sphinx requiert PHP 5.2.2 ou plus récent.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/sphinx

Si le script ./configure généré par phpize rencontre des problèmes pour trouver les fichiers libsphinxclient (par exemple, s'il a été installé dans un dossier particulier), utilisez ./configure --with-sphinx=$PREFIX, où $PREFIX est le préfixe de l'installation de libsphinxclient.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SEARCHD_OK (entier)
SEARCHD_ERROR (entier)
SEARCHD_RETRY (entier)
SEARCHD_WARNING (entier)
SPH_MATCH_ALL (entier)
SPH_MATCH_ANY (entier)
SPH_MATCH_PHRASE (entier)
SPH_MATCH_BOOLEAN (entier)
SPH_MATCH_EXTENDED (entier)
SPH_MATCH_FULLSCAN (entier)
SPH_MATCH_EXTENDED2 (entier)
SPH_RANK_PROXIMITY_BM25 (entier)
SPH_RANK_BM25 (entier)
SPH_RANK_NONE (entier)
SPH_RANK_WORDCOUNT (entier)
SPH_SORT_RELEVANCE (entier)
SPH_SORT_ATTR_DESC (entier)
SPH_SORT_ATTR_ASC (entier)
SPH_SORT_TIME_SEGMENTS (entier)
SPH_SORT_EXTENDED (entier)
SPH_SORT_EXPR (entier)
SPH_FILTER_VALUES (entier)
SPH_FILTER_RANGE (entier)
SPH_FILTER_FLOATRANGE (entier)
SPH_ATTR_INTEGER (entier)
SPH_ATTR_TIMESTAMP (entier)
SPH_ATTR_ORDINAL (entier)
SPH_ATTR_BOOL (entier)
SPH_ATTR_FLOAT (entier)
SPH_ATTR_MULTI (entier)
SPH_GROUPBY_DAY (entier)
SPH_GROUPBY_WEEK (entier)
SPH_GROUPBY_MONTH (entier)
SPH_GROUPBY_YEAR (entier)
SPH_GROUPBY_ATTR (entier)
SPH_GROUPBY_ATTRPAIR (entier)


Exemples

Exemple #1 Exemple simple

<?php

$s = new SphinxClient;
$s->setServer("localhost", 6712);
$s->setMatchMode(SPH_MATCH_ANY);
$s->setMaxQueryTime(3);

$result = $s->query("test");

var_dump($result);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(10) {
  ["error"]=>
  string(0) ""
  ["warning"]=>
  string(0) ""
  ["status"]=>
  int(0)
  ["fields"]=>
  array(3) {
    [0]=>
    string(7) "subject"
    [1]=>
    string(4) "body"
    [2]=>
    string(6) "author"
  }
  ["attrs"]=>
  array(0) {
  }
  ["matches"]=>
  array(1) {
    [3]=>
    array(2) {
      ["weight"]=>
      int(1)
      ["attrs"]=>
      array(0) {
      }
    }
  }
  ["total"]=>
  int(1)
  ["total_found"]=>
  int(1)
  ["time"]=>
  float(0)
  ["words"]=>
  array(1) {
    ["to"]=>
    array(2) {
      ["docs"]=>
      int(1)
      ["hits"]=>
      int(1)
    }
  }
}


La classe SphinxClient

(PECL sphinx >= 0.1.0)

Introduction

La classe SphinxClient fournit une interface orientée objet avec Sphinx.

Synopsis de la classe

SphinxClient {
/* Méthodes */
public int addQuery ( string $query [, string $index = "*" [, string $comment = "" ]] )
public array buildExcerpts ( array $docs , string $index , string $words [, array $opts ] )
public array buildKeywords ( string $query , string $index , bool $hits )
public bool close ( void )
public __construct ( void )
public string escapeString ( string $string )
public string getLastError ( void )
public string getLastWarning ( void )
public bool open ( void )
public array query ( string $query [, string $index = "*" [, string $comment = "" ]] )
public void resetFilters ( void )
public void resetGroupBy ( void )
public array runQueries ( void )
public bool setArrayResult ( bool $array_result = false )
public bool setConnectTimeout ( float $timeout )
public bool setFieldWeights ( array $weights )
public bool setFilter ( string $attribute , array $values [, bool $exclude = false ] )
public bool setFilterFloatRange ( string $attribute , float $min , float $max [, bool $exclude = false ] )
public bool setFilterRange ( string $attribute , int $min , int $max [, bool $exclude = false ] )
public bool setGeoAnchor ( string $attrlat , string $attrlong , float $latitude , float $longitude )
public bool setGroupBy ( string $attribute , int $func [, string $groupsort = "@group desc" ] )
public bool setGroupDistinct ( string $attribute )
public bool setIDRange ( int $min , int $max )
public bool setIndexWeights ( array $weights )
public bool setLimits ( int $offset , int $limit [, int $max_matches = 0 [, int $cutoff = 0 ]] )
public bool setMatchMode ( int $mode )
public bool setMaxQueryTime ( int $qtime )
public bool setOverride ( string $attribute , int $type , array $values )
public bool setRankingMode ( int $ranker )
public bool setRetries ( int $count [, int $delay = 0 ] )
public bool setSelect ( string $clause )
public bool setServer ( string $server , int $port )
public bool setSortMode ( int $mode [, string $sortby ] )
public array status ( void )
public int updateAttributes ( string $index , array $attributes , array $values [, bool $mva = false ] )
}

Sommaire

  • SphinxClient::addQuery — Ajoute une requête à un batch multiple
  • SphinxClient::buildExcerpts — Construit les extraits de texte
  • SphinxClient::buildKeywords — Extrait les mots-clés d'une requête
  • SphinxClient::close — Ferme une connexion persistante ouverte
  • SphinxClient::__construct — Crée un nouvel objet SphinxClient
  • SphinxClient::escapeString — Protège les caractères spéciaux
  • SphinxClient::getLastError — Lit le dernier message d'erreur
  • SphinxClient::getLastWarning — Lit la dernière alerte
  • SphinxClient::open — Établit une connexion persistante avec le serveur
  • SphinxClient::query — Exécute une requête de recherche
  • SphinxClient::resetFilters — Supprime tous les filtres
  • SphinxClient::resetGroupBy — Supprime toutes les configurations de regroupement
  • SphinxClient::runQueries — Exécute une série de requêtes de recherche
  • SphinxClient::setArrayResult — Change le format du tableau de résultats
  • SphinxClient::setConnectTimeout — Configure le délai d'expiration de connexion
  • SphinxClient::setFieldWeights — Configure le poids des champs
  • SphinxClient::setFilter — Ajoute un nouveau filtre entier
  • SphinxClient::setFilterFloatRange — Ajoute un nouveau filtre décimal
  • SphinxClient::setFilterRange — Ajoute un nouveau filtre d'intervalle
  • SphinxClient::setGeoAnchor — Configure le point d'origine pour les calculs géographiques
  • SphinxClient::setGroupBy — Configure les attributs de regroupement
  • SphinxClient::setGroupDistinct — Configure les calculs au niveau des valeurs distinctes
  • SphinxClient::setIDRange — Configure l'intervalle de validité des identifiants de document
  • SphinxClient::setIndexWeights — Configure les poids de chaque index
  • SphinxClient::setLimits — Configure l'offset et la limite du résultat
  • SphinxClient::setMatchMode — Configure le mode de recherche en texte intégral
  • SphinxClient::setMaxQueryTime — Configure la durée maximale de recherche
  • SphinxClient::setOverride — Définit temporairement la valeur d'attribut pour un document
  • SphinxClient::setRankingMode — Configure le mode de classement
  • SphinxClient::setRetries — Configure le nombre de tentatives et le délai d'expiration
  • SphinxClient::setSelect — Définit une clause à la sélection
  • SphinxClient::setServer — Configure l'hôte et le port searchd
  • SphinxClient::setSortMode — Configure le mode de tri
  • SphinxClient::status — Récupère le statut de searchd
  • SphinxClient::updateAttributes — Modifie les attributs d'un document


Ajoute une requête à un batch multiple

  • « SphinxClient
  • SphinxClient::buildExcerpts »
  • PHP Manual
  • SphinxClient
  • Ajoute une requête à un batch multiple

SphinxClient::addQuery

(PECL sphinx >= 0.1.0)

SphinxClient::addQuery — Ajoute une requête à un batch multiple

Description

public int SphinxClient::addQuery ( string $query [, string $index = "*" [, string $comment = "" ]] )

Ajoute une requête à un batch multi-requête. Cette méthode n'affecte pas la configuration courante (tri, filtrage, regroupement, etc.).

Liste de paramètres

query

La chaîne de requête.

index

Un nom d'index (ou des noms).

comment

Valeurs de retour

Retourne un index dans le tableau de résultat, qui sera retourné par SphinxClient::runQueries ou FALSE sinon.

Voir aussi

  • SphinxClient::runQueries
  • SphinxClient::query


Construit les extraits de texte

  • « SphinxClient::addQuery
  • SphinxClient::buildKeywords »
  • PHP Manual
  • SphinxClient
  • Construit les extraits de texte

SphinxClient::buildExcerpts

(PECL sphinx >= 0.1.0)

SphinxClient::buildExcerpts — Construit les extraits de texte

Description

public array SphinxClient::buildExcerpts ( array $docs , string $index , string $words [, array $opts ] )

Se connecte à searchd, et l'interroge pour générer des extraits de texte à partir des documents fournis, et retourne le résultat.

Liste de paramètres

docs

Un tableau de chaînes avec le contenu des documents.

index

Le nom d'index.

words

Les mots clés à mettre en valeur.

opts

Un tableau associatif avec les options de mise en valeur.

Options de mise en valeur
Option | Description
"before_match" | Une chaîne à insérer avant le mot clé. Par défaut vaut "<b>".
"after_match" | Une chaîne à insérer après le mot clé. Par défaut vaut "</b>".
"chunk_separator" | Une chaîne à insérer entre les extraits. Par défaut vaut " ... ".
"limit" | Taille maximale d'un extrait, en symboles. Entier, par défaut vaut 256.
"around" | Nombre de mots à afficher autour du mot-clé. Entier, par défaut vaut 5.
"exact_phrase" | S'il faut mettre en valeur la phrase de recherche complète, ou bien les mots-clé individuels. Booléen, par défaut vaut FALSE.
"single_passage" | S'il faut extraire le meilleur passage uniquement. Par défaut vaut FALSE.

Valeurs de retour

Retourne un tableau d'extraits, en cas de succès ou FALSE si une erreur survient.


Extrait les mots-clés d'une requête

  • « SphinxClient::buildExcerpts
  • SphinxClient::close »
  • PHP Manual
  • SphinxClient
  • Extrait les mots-clés d'une requête

SphinxClient::buildKeywords

(PECL sphinx >= 0.1.0)

SphinxClient::buildKeywords — Extrait les mots-clés d'une requête

Description

public array SphinxClient::buildKeywords ( string $query , string $index , bool $hits )

Extrait les mots-clés de la requête query en utilisant l'analyseur donné par index, optionnellement avec des statistiques d'occurrences par mot-clé.

Liste de paramètres

query

Une requête dont il faut extraire les mots-clés.

index

Un index pour obtenir les configurations d'analyse et les statistiques d'occurrences.

hits

Une option pour activer ou désactiver les statistiques de mots-clés.

Valeurs de retour

Retourne un tableau de tableaux associatifs avec les informations par mot-clé.


Ferme une connexion persistante ouverte

  • « SphinxClient::buildKeywords
  • SphinxClient::__construct »
  • PHP Manual
  • SphinxClient
  • Ferme une connexion persistante ouverte

SphinxClient::close

(PECL sphinx >= 1.0.3)

SphinxClient::close — Ferme une connexion persistante ouverte

Description

public bool SphinxClient::close ( void )

Ferme une connexion persistante ouverte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Historique

Version PECL/sphinx | Description
1.0.3 | Ajout de SphinxClient::close(), uniquement disponible si compilé avec libsphinxclient >= 0.9.9.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • SphinxClient::open


Crée un nouvel objet SphinxClient

  • « SphinxClient::close
  • SphinxClient::escapeString »
  • PHP Manual
  • SphinxClient
  • Crée un nouvel objet SphinxClient

SphinxClient::__construct

(PECL sphinx >= 0.1.0)

SphinxClient::__construct — Crée un nouvel objet SphinxClient

Description

public SphinxClient::__construct ( void )

Crée un nouvel objet SphinxClient.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Protège les caractères spéciaux

  • « SphinxClient::__construct
  • SphinxClient::getLastError »
  • PHP Manual
  • SphinxClient
  • Protège les caractères spéciaux

SphinxClient::escapeString

(PECL sphinx >= 0.1.0)

SphinxClient::escapeString — Protège les caractères spéciaux

Description

public string SphinxClient::escapeString ( string $string )

Protège les caractères qui sont traités de manière particulière par l'analyseur.

Liste de paramètres

string

La chaîne à protéger.

Valeurs de retour

Retourne la chaîne protégée.


Lit le dernier message d'erreur

  • « SphinxClient::escapeString
  • SphinxClient::getLastWarning »
  • PHP Manual
  • SphinxClient
  • Lit le dernier message d'erreur

SphinxClient::getLastError

(PECL sphinx >= 0.1.0)

SphinxClient::getLastError — Lit le dernier message d'erreur

Description

public string SphinxClient::getLastError ( void )

Retourne le dernier message d'erreur. S'il n'y a pas eu d'erreur lors des appels à l'API, une chaîne vide est retournée. Cette méthode ne remet pas à zéro les messages, donc vous pouvez l'appeler aussi souvent que vous voulez.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le dernier message d'erreur, ou une chaîne vide s'il n'y a pas eu d'erreur.

Voir aussi

  • SphinxClient::getLastWarning


Lit la dernière alerte

  • « SphinxClient::getLastError
  • SphinxClient::open »
  • PHP Manual
  • SphinxClient
  • Lit la dernière alerte

SphinxClient::getLastWarning

(PECL sphinx >= 0.1.0)

SphinxClient::getLastWarning — Lit la dernière alerte

Description

public string SphinxClient::getLastWarning ( void )

Retourne le dernier message d'alerte. S'il n'y a pas eu d'alerte lors des appels à l'API, une chaîne vide est retournée. Cette méthode ne remet pas à zéro les messages, donc vous pouvez l'appeler aussi souvent que vous voulez.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le dernier message d'alerte, ou une chaîne vide s'il n'y a pas eu d'alerte.

Voir aussi

  • SphinxClient::getLastError


Établit une connexion persistante avec le serveur

  • « SphinxClient::getLastWarning
  • SphinxClient::query »
  • PHP Manual
  • SphinxClient
  • Établit une connexion persistante avec le serveur

SphinxClient::open

(PECL sphinx >= 1.0.3)

SphinxClient::open — Établit une connexion persistante avec le serveur

Description

public bool SphinxClient::open ( void )

Établit une connexion persistante avec le serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Historique

Version PECL/sphinx | Description
1.0.3 | Ajout de SphinxClient::open(), uniquement disponible si compilé avec libsphinxclient >= 0.9.9.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • SphinxClient::close


Exécute une requête de recherche

  • « SphinxClient::open
  • SphinxClient::resetFilters »
  • PHP Manual
  • SphinxClient
  • Exécute une requête de recherche

SphinxClient::query

(PECL sphinx >= 0.1.0)

SphinxClient::query — Exécute une requête de recherche

Description

public array SphinxClient::query ( string $query [, string $index = "*" [, string $comment = "" ]] )

Se connecte au serveur searchd, exécute une requête de recherche, puis lit les résultats obtenus.

Liste de paramètres

query

La chaîne de requête.

index

Un nom d'index (ou plusieurs noms).

comment

Valeurs de retour

En cas de réussite, la fonction SphinxClient::query() retourne une liste d'occurrences, et des statistiques de requête. Le jeu de résultats est un tableau associatif avec les index suivants :

Structure du jeu de résultats
Index | Description
"matches" | Un tableau avec les identifiants de documents comme clé, et leur poids et attributs comme valeur.
"total" | Le nombre total de résultats trouvés, et lus (cela dépend de la configuration)
"total_found" | Le nombre total de document trouvés, en accord avec la requête
"words" | Un tableau de mots (avec casse standard et racine), ainsi que des statistiques de mot comme valeur
"error" | Le message d'erreur de requête, tel de signalé par searchd
"warning" | L'alerte, rapportée par searchd

Voir aussi

  • SphinxClient::runQueries
  • SphinxClient::addQuery


Supprime tous les filtres

  • « SphinxClient::query
  • SphinxClient::resetGroupBy »
  • PHP Manual
  • SphinxClient
  • Supprime tous les filtres

SphinxClient::resetFilters

(PECL sphinx >= 0.1.0)

SphinxClient::resetFilters — Supprime tous les filtres

Description

public void SphinxClient::resetFilters ( void )

Supprime tous les filtres courant. Cet appel est normalement nécessaire quand vous utilisez des requêtes multiples. Vous pouvez configurer différents filtres pour différentes requêtes d'un jeu de requêtes. Pour cela, vous devez appeler SphinxClient::resetFilters() et ajouter les nouveaux filtres à chaque appel.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SphinxClient::resetGroupBy


Supprime toutes les configurations de regroupement

  • « SphinxClient::resetFilters
  • SphinxClient::runQueries »
  • PHP Manual
  • SphinxClient
  • Supprime toutes les configurations de regroupement

SphinxClient::resetGroupBy

(PECL sphinx >= 0.1.0)

SphinxClient::resetGroupBy — Supprime toutes les configurations de regroupement

Description

public void SphinxClient::resetGroupBy ( void )

Supprime toutes les directives de regroupement et désactive les regroupements. Cet appel est normalement uniquement nécessaire quand vous utilisez des requêtes multiples.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SphinxClient::resetGroupBy


Exécute une série de requêtes de recherche

  • « SphinxClient::resetGroupBy
  • SphinxClient::setArrayResult »
  • PHP Manual
  • SphinxClient
  • Exécute une série de requêtes de recherche

SphinxClient::runQueries

(PECL sphinx >= 0.1.0)

SphinxClient::runQueries — Exécute une série de requêtes de recherche

Description

public array SphinxClient::runQueries ( void )

Se connecte à searchd, exécute une série de requêtes avec SphinxClient::addQuery, obtient et retourne un jeu de résultats.

Valeurs de retour

Retourne FALSE en cas d'échec, et un tableau de résultats sinon.

Voir aussi

  • SphinxClient::addQuery
  • SphinxClient::query


Change le format du tableau de résultats

  • « SphinxClient::runQueries
  • SphinxClient::setConnectTimeout »
  • PHP Manual
  • SphinxClient
  • Change le format du tableau de résultats

SphinxClient::setArrayResult

(PECL sphinx >= 0.1.0)

SphinxClient::setArrayResult — Change le format du tableau de résultats

Description

public bool SphinxClient::setArrayResult ( bool $array_result = false )

Contrôle le format du jeu de résultats : si les résultats doivent être retournés sous forme de tableau numérique ou associatif.

Liste de paramètres

array_result

Si array_result est FALSE, les résultats sont retournés sous forme de tableau associatif, avec les identifiants de documents sous forme de clé, et les autres informations (poids, attributs) comme valeurs. Si array_result vaut TRUE, les résultats sont retournés sous forme d'un tableau numérique, comprenant aussi les informations d'identification.

Valeurs de retour

Retourne toujours TRUE.


Configure le délai d'expiration de connexion

  • « SphinxClient::setArrayResult
  • SphinxClient::setFieldWeights »
  • PHP Manual
  • SphinxClient
  • Configure le délai d'expiration de connexion

SphinxClient::setConnectTimeout

(PECL sphinx >= 0.1.0)

SphinxClient::setConnectTimeout — Configure le délai d'expiration de connexion

Description

public bool SphinxClient::setConnectTimeout ( float $timeout )

Configure le délai d'expiration de connexion (en secondes) pour une connexion à searchd.

Liste de paramètres

timeout

Délai en secondes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • SphinxClient::setMaxQueryTime


Configure le poids des champs

  • « SphinxClient::setConnectTimeout
  • SphinxClient::setFilter »
  • PHP Manual
  • SphinxClient
  • Configure le poids des champs

SphinxClient::setFieldWeights

(PECL sphinx >= 0.1.0)

SphinxClient::setFieldWeights — Configure le poids des champs

Description

public bool SphinxClient::setFieldWeights ( array $weights )

Donne un poids différent à chaque champ.

Le calcul de la pertinence peut être affecté par les poids de chaque champ. Voyez la » documentation Sphinx pour une explication sur la modification du classement. Cet appel vous permet de spécifier des valeurs différente de celles par défaut pour les poids dans les recherches en texte intégral.

Le poids doit être un entier de 32 bits : veillez à ne pas être bloqués par la limite de ces entiers. Le poids final est aussi un entier de 32 bits. Le poids par défaut est 1. Les champs inconnus sont ignorés.

Liste de paramètres

weights

Un tableau associatif de noms de champ et leur poids.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • SphinxClient::setIndexWeights


Ajoute un nouveau filtre entier

  • « SphinxClient::setFieldWeights
  • SphinxClient::setFilterFloatRange »
  • PHP Manual
  • SphinxClient
  • Ajoute un nouveau filtre entier

SphinxClient::setFilter

(PECL sphinx >= 0.1.0)

SphinxClient::setFilter — Ajoute un nouveau filtre entier

Description

public bool SphinxClient::setFilter ( string $attribute , array $values [, bool $exclude = false ] )

Ajoute un nouveau filtre entier à la liste des filtres courante.

Liste de paramètres

attribute

Un nom d'attribut.

values

Un tableau de valeurs entières.

exclude

S'il vaut TRUE, les documents sont exclus du résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilterRange
  • SphinxClient::resetFilters


Ajoute un nouveau filtre décimal

  • « SphinxClient::setFilter
  • SphinxClient::setFilterRange »
  • PHP Manual
  • SphinxClient
  • Ajoute un nouveau filtre décimal

SphinxClient::setFilterFloatRange

(PECL sphinx >= 0.1.0)

SphinxClient::setFilterFloatRange — Ajoute un nouveau filtre décimal

Description

public bool SphinxClient::setFilterFloatRange ( string $attribute , float $min , float $max [, bool $exclude = false ] )

Ajoute un nouveau filtre décimal à la liste des filtres en cours. Seul les documents qui ont une valeur attribute dans leur index, dont la valeur est entre min et max (y compris les valeurs égales exactement à min et max) seront acceptées (ou rejetées, si exclude vaut TRUE).

Liste de paramètres

attribute

Un nom d'attribut.

min

Valeur minimale.

max

Valeur maximale.

exclude

Si cette option vaut TRUE, les documents associés seront exclus de la liste de résultats.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • SphinxClient::setFilterRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters


Ajoute un nouveau filtre d'intervalle

  • « SphinxClient::setFilterFloatRange
  • SphinxClient::setGeoAnchor »
  • PHP Manual
  • SphinxClient
  • Ajoute un nouveau filtre d'intervalle

SphinxClient::setFilterRange

(PECL sphinx >= 0.1.0)

SphinxClient::setFilterRange — Ajoute un nouveau filtre d'intervalle

Description

public bool SphinxClient::setFilterRange ( string $attribute , int $min , int $max [, bool $exclude = false ] )

Ajoute un nouveau filtre entier à la liste des filtres en court. Seul les documents qui ont une valeur attribute dans leur index, dont la valeur est entre min et max (y compris les valeurs égales exactement à min et max) seront acceptées (ou rejetées, si exclude vaut TRUE).

Liste de paramètres

attribute

Un nom d'attribut.

min

Valeur minimale.

max

Valeur maximale.

exclude

Si cette option vaut TRUE, les documents associés seront exclus de la liste de résultats.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters


Configure le point d'origine pour les calculs géographiques

  • « SphinxClient::setFilterRange
  • SphinxClient::setGroupBy »
  • PHP Manual
  • SphinxClient
  • Configure le point d'origine pour les calculs géographiques

SphinxClient::setGeoAnchor

(PECL sphinx >= 0.1.0)

SphinxClient::setGeoAnchor — Configure le point d'origine pour les calculs géographiques

Description

public bool SphinxClient::setGeoAnchor ( string $attrlat , string $attrlong , float $latitude , float $longitude )

Configure le point d'origine pour les calculs géographiques.

Une fois que l'origine est configurée, vous pouvez utiliser l'attribut magique "@geodist" dans vos filtres et vos expressions de tri.

Liste de paramètres

attrlat

Nom de l'attribut de latitude.

attrlong

Nom de l'attribut de longitude.

latitude

Latitude d'origine en radians.

longitude

Longitude d'origine en radians.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilterRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters


Configure les attributs de regroupement

  • « SphinxClient::setGeoAnchor
  • SphinxClient::setGroupDistinct »
  • PHP Manual
  • SphinxClient
  • Configure les attributs de regroupement

SphinxClient::setGroupBy

(PECL sphinx >= 0.1.0)

SphinxClient::setGroupBy — Configure les attributs de regroupement

Description

public bool SphinxClient::setGroupBy ( string $attribute , int $func [, string $groupsort = "@group desc" ] )

Configure les attributs de regroupement, de mode de tri de groupe, et active les regroupements.

Les fonctionnalités de regroupement sont similaires à la clause GROUP BY de SQL. Les résultats produits par cette fonction sont les mêmes que ceux de la requêtes SQL suivante : SELECT ... GROUP BY $func($attribute) ORDER BY $groupsort.

Liste de paramètres

attribute

Une chaîne contenant le nom de l'attribut de regroupement.

func

Une constante, qui choisit la fonction appliquée au groupe de résultats, pour effectuer le regroupement.

groupsort

Une clause optionnelle qui contrôle le tri du groupe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • SphinxClient::resetGroupBy
  • SphinxClient::setSortMode
  • SphinxClient::setGroupDistinct


Configure les calculs au niveau des valeurs distinctes

  • « SphinxClient::setGroupBy
  • SphinxClient::setIDRange »
  • PHP Manual
  • SphinxClient
  • Configure les calculs au niveau des valeurs distinctes

SphinxClient::setGroupDistinct

(PECL sphinx >= 0.1.0)

SphinxClient::setGroupDistinct — Configure les calculs au niveau des valeurs distinctes

Description

public bool SphinxClient::setGroupDistinct ( string $attribute )

Configure les attributs pour les valeurs dans les regroupements distincts. Uniquement utilisable dans les requêtes de regroupement. Pour chaque groupe, toutes les valeurs de attribute sont stockées, puis leur nombre de leur valeurs distinctes sont calculées et retournées au client. Cette fonction est similaire à la clause COUNT(DISTINCT) en SQL.

Liste de paramètres

attribute

Une chaîne contenant un nom d'attribut de regroupement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • SphinxClient::setSortMode
  • SphinxClient::setGroupBy
  • SphinxClient::resetGroupBy


Configure l'intervalle de validité des identifiants de document

  • « SphinxClient::setGroupDistinct
  • SphinxClient::setIndexWeights »
  • PHP Manual
  • SphinxClient
  • Configure l'intervalle de validité des identifiants de document

SphinxClient::setIDRange

(PECL sphinx >= 0.1.0)

SphinxClient::setIDRange — Configure l'intervalle de validité des identifiants de document

Description

public bool SphinxClient::setIDRange ( int $min , int $max )

Configure l'intervalle de validité des identifiants de document. Par défaut, l'intervalle est de 0 à 0, c'est à dire sans limite. Seuls, les documents qui ont un identifiant entre les valeurs min et max (incluant les identifiants égaux exactements à min et max) seront retournés.

Liste de paramètres

min

Valeur minimale d'identifiant.

max

Valeur maximale d'identifiant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure les poids de chaque index

  • « SphinxClient::setIDRange
  • SphinxClient::setLimits »
  • PHP Manual
  • SphinxClient
  • Configure les poids de chaque index

SphinxClient::setIndexWeights

(PECL sphinx >= 0.1.0)

SphinxClient::setIndexWeights — Configure les poids de chaque index

Description

public bool SphinxClient::setIndexWeights ( array $weights )

Configure les poids de chaque index, et active ces poids pour calculer la pertinence à travers les index.

Liste de paramètres

weights

Un tableau associatif avec les noms des index comme clé, et les poids comme valeur. Par défaut, un tableau vide correspond à la désactivation des poids d'index.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure l'offset et la limite du résultat

  • « SphinxClient::setIndexWeights
  • SphinxClient::setMatchMode »
  • PHP Manual
  • SphinxClient
  • Configure l'offset et la limite du résultat

SphinxClient::setLimits

(PECL sphinx >= 0.1.0)

SphinxClient::setLimits — Configure l'offset et la limite du résultat

Description

public bool SphinxClient::setLimits ( int $offset , int $limit [, int $max_matches = 0 [, int $cutoff = 0 ]] )

Configure l'offset du résultat et la quantité de résultats à retourner au client à partir de cette position (avec l'argument limit). Peut aussi controler la taille maximale du jeu de résultats de la requête avec le paramètre max_matches, et le seuil minimum de résultats avec cutoff.

Liste de paramètres

offset

L'offset dans le résultat.

limit

Le nombre de résultats à retenir.

max_matches

Contrôle le nombre de résultats que searchd va conserver en RAM durant la recherche.

cutoff

Utilisé pour des contrôles avancés de performances. Il indique à searchd d'arrêter sa recherche lorsque cutoff ont été trouvés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure le mode de recherche en texte intégral

  • « SphinxClient::setLimits
  • SphinxClient::setMaxQueryTime »
  • PHP Manual
  • SphinxClient
  • Configure le mode de recherche en texte intégral

SphinxClient::setMatchMode

(PECL sphinx >= 0.1.0)

SphinxClient::setMatchMode — Configure le mode de recherche en texte intégral

Description

public bool SphinxClient::setMatchMode ( int $mode )

Configure le mode de recherche en texte intégral. mode est une des constantes listées ci-dessous :

Modes de recherche
Constante | Description
SPH_MATCH_ALL | Recherche tous les mots de la requête (mode par défaut).
SPH_MATCH_ANY | Recherche n'importe quel mot de la requête.
SPH_MATCH_PHRASE | Recherche la requête comme une phrase.
SPH_MATCH_BOOLEAN | Recherche la requête comme une expression booléenne.
SPH_MATCH_EXTENDED | Recherche la requête comme une expression Sphinx, dans son langage interne.
SPH_MATCH_FULLSCAN | Active la recherche intégrale.
SPH_MATCH_EXTENDED2 | Identique à SPH_MATCH_EXTENDED avec le classement et la recherche par quorum en plus.

Liste de paramètres

mode

Mode de recherche.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • SphinxClient::setRankingMode
  • SphinxClient::setSortMode


Configure la durée maximale de recherche

  • « SphinxClient::setMatchMode
  • SphinxClient::setOverride »
  • PHP Manual
  • SphinxClient
  • Configure la durée maximale de recherche

SphinxClient::setMaxQueryTime

(PECL sphinx >= 0.1.0)

SphinxClient::setMaxQueryTime — Configure la durée maximale de recherche

Description

public bool SphinxClient::setMaxQueryTime ( int $qtime )

Configure la durée maximale de recherche.

Liste de paramètres

qtime

La durée maximale d'exécution de la requête, en millisecondes. Elle doit être un entier non-négatif. Par défaut, vaut 0, soit, aucune limite.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Définit temporairement la valeur d'attribut pour un document

  • « SphinxClient::setMaxQueryTime
  • SphinxClient::setRankingMode »
  • PHP Manual
  • SphinxClient
  • Définit temporairement la valeur d'attribut pour un document

SphinxClient::setOverride

(PECL sphinx >= 1.0.3)

SphinxClient::setOverride — Définit temporairement la valeur d'attribut pour un document

Description

public bool SphinxClient::setOverride ( string $attribute , int $type , array $values )

Définit temporairement (pour une requête) la valeur d'attribut d'un document. Cette fonctionnalité vous permet d'écraser temporairement les valeurs d'attribut d'une mise à jour pour une requête, laissant toutes les autres requêtes inchangées. Ceci est utile pour personnaliser les données.

Liste de paramètres

attribute

Le nom de l'attribut.

type

Le type de l'attribut. Ne supporte que les attributs scalaires.

values

Tableau de valeurs d'attribut, qui lie les identifiants du document dont les valeurs doivent être écrasées.

Historique

Version PECL/sphinx | Description
1.0.3 | Ajout de SphinxClient::setOverride(), uniquement disponible si compilé avec libsphinxclient >= 0.9.9.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure le mode de classement

  • « SphinxClient::setOverride
  • SphinxClient::setRetries »
  • PHP Manual
  • SphinxClient
  • Configure le mode de classement

SphinxClient::setRankingMode

(PECL sphinx >= 0.1.0)

SphinxClient::setRankingMode — Configure le mode de classement

Description

public bool SphinxClient::setRankingMode ( int $ranker )

Configure le mode de classement. Uniquement disponible avec le mode de recherche SPH_MATCH_EXTENDED2.

Ranking modes
Constante | Description
SPH_RANK_PROXIMITY_BM25 | Mode de classement par défaut, avec un calcul de proximité et un tri BM25.
SPH_RANK_BM25 | Mode de classement statistique, qui utilise le classement BM25 uniquement (similaire à celui de nombreux autres moteurs de recherche en texte intégral). Ce mode est plus rapide, mais peut conduire à des résultats de piètre qualité sur les requêtes qui requièrent plus d'un mot clé.
SPH_RANK_NONE | Désactive le classement. Ce mode est le plus rapide. Il est essentiellement équivalent à une recherche booléenne, avec un poids de 1 associé à chaque occurrence.

Liste de paramètres

ranker

Mode de classement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • SphinxClient::setMatchMode


Configure le nombre de tentatives et le délai d'expiration

  • « SphinxClient::setRankingMode
  • SphinxClient::setSelect »
  • PHP Manual
  • SphinxClient
  • Configure le nombre de tentatives et le délai d'expiration

SphinxClient::setRetries

(PECL sphinx >= 0.1.0)

SphinxClient::setRetries — Configure le nombre de tentatives et le délai d'expiration

Description

public bool SphinxClient::setRetries ( int $count [, int $delay = 0 ] )

Configure le nombre de tentatives et le délai d'expiration.

En cas d'indisponibilité temporaire, searchd tente de se reconnecter count fois par agent. delay est le délai d'attente entre chaque tentative, exprimé en millisecondes. Les tentatives sont désactivées par défaut. Notez que cet appel ne va pas forcer l'API à effectuer de multiples tentatives en cas d'échec : c'est searchd qui le fera.

Liste de paramètres

count

Le nombre de tentatives.

delay

Le délai entre les tentatives, en millisecondes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Définit une clause à la sélection

  • « SphinxClient::setRetries
  • SphinxClient::setServer »
  • PHP Manual
  • SphinxClient
  • Définit une clause à la sélection

SphinxClient::setSelect

(PECL sphinx >= 1.0.1)

SphinxClient::setSelect — Définit une clause à la sélection

Description

public bool SphinxClient::setSelect ( string $clause )

Définit la clause de sélection, liste les attributs à récupérer ainsi que les expressions pour exécution et récupération.

Liste de paramètres

clause

Clause sous la forme SQL.

Historique

Version PECL/sphinx | Description
1.0.1 | Ajout de SphinxClient::setSelect(), disponible uniquement si compilé avec libsphinxclient >= 0.9.9.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure l'hôte et le port searchd

  • « SphinxClient::setSelect
  • SphinxClient::setSortMode »
  • PHP Manual
  • SphinxClient
  • Configure l'hôte et le port searchd

SphinxClient::setServer

(PECL sphinx >= 0.1.0)

SphinxClient::setServer — Configure l'hôte et le port searchd

Description

public bool SphinxClient::setServer ( string $server , int $port )

Configure l'hôte et le port searchd. Toutes les requêtes suivantes seront envoyées au nouvel hôte. Par défaut, l'hôte et le port sont 'localhost' et 3312, respectivement.

Liste de paramètres

server

IP ou nom d'hôte.

port

Numéro de port.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure le mode de tri

  • « SphinxClient::setServer
  • SphinxClient::status »
  • PHP Manual
  • SphinxClient
  • Configure le mode de tri

SphinxClient::setSortMode

(PECL sphinx >= 0.1.0)

SphinxClient::setSortMode — Configure le mode de tri

Description

public bool SphinxClient::setSortMode ( int $mode [, string $sortby ] )

Configure le mode de tri. Les modes possibles sont listés ci-dessous.

Sorting modes
Constante | Description
SPH_SORT_RELEVANCE | Tri par pertinence, en ordre décroissant (meilleures occurences en premier).
SPH_SORT_ATTR_DESC | Tri par un attribut, en ordre décroissant (plus grandes valeurs en premier).
SPH_SORT_ATTR_ASC | Tri par un attribut, en ordre croissant (plus petites valeurs en premier).
SPH_SORT_TIME_SEGMENTS | Tri par segment de temps (dernière heure, jour, semaine, mois), en ordre descendant, et par pertinence en ordre décroissant.
SPH_SORT_EXTENDED | Tri par combinaison de colonnes, comme en SQL.
SPH_SORT_EXPR | Tri par expression arithmétique.

Liste de paramètres

mode

Mode de tri.

sortby

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • SphinxClient::setMatchMode
  • SphinxClient::setSortMode


Récupère le statut de searchd

  • « SphinxClient::setSortMode
  • SphinxClient::updateAttributes »
  • PHP Manual
  • SphinxClient
  • Récupère le statut de searchd

SphinxClient::status

(PECL sphinx >= 1.0.3)

SphinxClient::status — Récupère le statut de searchd

Description

public array SphinxClient::status ( void )

Récupère le statut de searchd, et retourne un tableau contenant les paires noms/valeurs des variables représentant le statut.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Historique

Version PECL/sphinx | Description
1.0.3 | Ajout de SphinxClient::status(), uniquement disponible si compilé avec libsphinxclient >= 0.9.9.

Valeurs de retour

Retourne un tableau associatif contenant les statistiques du serveur de recherche, ou FALSE si une erreur survient.


Modifie les attributs d'un document

  • « SphinxClient::status
  • Swish »
  • PHP Manual
  • SphinxClient
  • Modifie les attributs d'un document

SphinxClient::updateAttributes

(PECL sphinx >= 0.1.0)

SphinxClient::updateAttributes — Modifie les attributs d'un document

Description

public int SphinxClient::updateAttributes ( string $index , array $attributes , array $values [, bool $mva = false ] )

Moifie un attribut dans un document.

Liste de paramètres

index

Le nom de l'index à modifier.

attributes

Un tableau de noms d'attributs, qui liste les attributs qui doivent être modifiées.

values

Un tableau associatif contenant les identifiants de documents comme clé, et un tableau d'attribut avec le nom des attributs et leur valeur.

Valeurs de retour

Retourne le nombre de documents réellement modifiées (0 ou plus), en cas de succès, et FALSE on failure.


Indexation Swish

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
  • Fonctions Swish
    • Swish::__construct — Construit un objet Swish
    • Swish::getMetaList — Récupère la liste de méta-données de l'index
    • Swish::getPropertyList — Récupère la liste de propriétés pour un index
    • Swish::prepare — Prépare une requête de recherche
    • Swish::query — Exécute une requête et retourne un objet de résultats
    • SwishResult::getMetaList — Récupère une liste de méta-données
    • SwishResult::stem — Tronque le mot donné
    • SwishResults::getParsedWords — Récupère un tableau de mots analysés
    • SwishResults::getRemovedStopwords — Récupère un tableau de mots non significatifs supprimés de la requête
    • SwishResults::nextResult — Récupère le prochain résultat de la recherche
    • SwishResults::seekResult — Spécifie le pointeur de recherche à une position donnée
    • SwishSearch::execute — Exécute la recherche et récupère les résultats
    • SwishSearch::resetLimit — Réinitialise les limites de recherche
    • SwishSearch::setLimit — Spécifie les limites de recherche
    • SwishSearch::setPhraseDelimiter — Spécifie le délimiteur de phrase
    • SwishSearch::setSort — Spécifie l'ordre
    • SwishSearch::setStructure — Spécifie le flag de structure dans l'objet de recherche


Introduction

L'extension swish fournit la liaison avec l'API Swish-e. Swish-e est l'acronyme de "Simple Web Indexing System for Humans - Enhanced". Il s'agit d'un programme de code source libre pour l'indexation et la recherche. Swish-e lui-même est régi par la licence GPL, mais utilise une clause qui permet aux applications de se lier à la bibliothèque si chaque copie de travail est accompagnée par l'URL de Swish-e code source. Ce lien est : » http://swish-e.org.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

PECL/swish requiert PHP 5.1.3 ou plus récent.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/swish.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Swish::META_TYPE_UNDEF (entier)
Swish::META_TYPE_STRING (entier)
Swish::META_TYPE_ULONG (entier)
Swish::META_TYPE_DATE (entier)
Swish::IN_FILE_BIT (entier)
Swish::IN_TITLE_BIT (entier)
Swish::IN_HEAD_BIT (entier)
Swish::IN_BODY_BIT (entier)
Swish::IN_COMMENTS_BIT (entier)
Swish::IN_HEADER_BIT (entier)
Swish::IN_EMPHASIZED_BIT (entier)
Swish::IN_META_BIT (entier)
Swish::IN_FILE (entier)
Swish::IN_TITLE (entier)
Swish::IN_HEAD (entier)
Swish::IN_BODY (entier)
Swish::IN_COMMENTS (entier)
Swish::IN_HEADER (entier)
Swish::IN_EMPHASIZED (entier)
Swish::IN_META (entier)
Swish::IN_ALL (entier)


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • Swish
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Exemple #1 Requête de recherche simple

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("test OR text");

    echo "Trouvé ", $results->hits, " résultats\n";
    while ($result = $results->nextResult()) {
        var_dump($result);
        break; //arrête après le premier résultat
    }

} catch (SwishException $e) {
    echo "Erreur : ", $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé 9 résultats
object(SwishResult)#3 (8) {
  ["swishreccount"]=>
  int(1)
  ["swishrank"]=>
  int(1000)
  ["swishfilenum"]=>
  int(10)
  ["swishdbfile"]=>
  string(13) "index.swish-e"
  ["swishdocpath"]=>
  string(23) "README.SUBMITTING_PATCH"
  ["swishtitle"]=>
  NULL
  ["swishdocsize"]=>
  int(4557)
  ["swishlastmodified"]=>
  int(1072136752)
}


Fonctions Swish

Sommaire

  • Swish::__construct — Construit un objet Swish
  • Swish::getMetaList — Récupère la liste de méta-données de l'index
  • Swish::getPropertyList — Récupère la liste de propriétés pour un index
  • Swish::prepare — Prépare une requête de recherche
  • Swish::query — Exécute une requête et retourne un objet de résultats
  • SwishResult::getMetaList — Récupère une liste de méta-données
  • SwishResult::stem — Tronque le mot donné
  • SwishResults::getParsedWords — Récupère un tableau de mots analysés
  • SwishResults::getRemovedStopwords — Récupère un tableau de mots non significatifs supprimés de la requête
  • SwishResults::nextResult — Récupère le prochain résultat de la recherche
  • SwishResults::seekResult — Spécifie le pointeur de recherche à une position donnée
  • SwishSearch::execute — Exécute la recherche et récupère les résultats
  • SwishSearch::resetLimit — Réinitialise les limites de recherche
  • SwishSearch::setLimit — Spécifie les limites de recherche
  • SwishSearch::setPhraseDelimiter — Spécifie le délimiteur de phrase
  • SwishSearch::setSort — Spécifie l'ordre
  • SwishSearch::setStructure — Spécifie le flag de structure dans l'objet de recherche


Construit un objet Swish

  • « Fonctions Swish
  • Swish::getMetaList »
  • PHP Manual
  • Fonctions Swish
  • Construit un objet Swish

Swish::__construct

(PECL swish >= 0.1.0)

Swish::__construct — Construit un objet Swish

Description

void Swish::__construct ( string $index_names )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

index_names

La liste de fichiers d'index séparés par des espaces.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple avec Swish::__construct()

<?php

try {
    $swish = new Swish("index1 index2");
} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

foreach ($swish->indexes as $index) {
    var_dump($index["name"]);
    var_dump($index["headers"]["Total Words"]);
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(6) "index1"
int(1888)
string(6) "index2"
int(2429)


Récupère la liste de méta-données de l'index

  • « Swish::__construct
  • Swish::getPropertyList »
  • PHP Manual
  • Fonctions Swish
  • Récupère la liste de méta-données de l'index

Swish::getMetaList

(PECL swish >= 0.1.0)

Swish::getMetaList — Récupère la liste de méta-données de l'index

Description

array Swish::getMetaList ( string $index_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

index_name

Le nom du fichier d'index.

Valeurs de retour

Retourne un tableau de méta-données pour un index donné.

Exemples

Exemple #1 Exemple simple avec Swish->getMetaList()

<?php

try {

    $swish = new Swish("index.swish-e");
    var_dump($swish->getMetaList("index.swish-e"));

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  array(3) {
    ["Name"]=>
    string(12) "swishdefault"
    ["Type"]=>
    int(0)
    ["ID"]=>
    int(1)
  }
}


Récupère la liste de propriétés pour un index

  • « Swish::getMetaList
  • Swish::prepare »
  • PHP Manual
  • Fonctions Swish
  • Récupère la liste de propriétés pour un index

Swish::getPropertyList

(PECL swish >= 0.1.0)

Swish::getPropertyList — Récupère la liste de propriétés pour un index

Description

array Swish::getPropertyList ( string $index_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

index_name

Le nom du fichier d'index.

Valeurs de retour

Retourne un tableau de propriétés pour un index donné.

Exemples

Exemple #1 Exemple simple avec Swish->getPropertyList()

<?php

try {

    $swish = new Swish("index.swish-e");
    $properties = $swish->getPropertyList("index.swish-e");
    foreach ($properties as $prop) {
        echo $prop["Name"],"\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

swishreccount
swishrank
swishfilenum
swishdbfile
swishdocpath
swishtitle
swishdocsize
swishlastmodified


Prépare une requête de recherche

  • « Swish::getPropertyList
  • Swish::query »
  • PHP Manual
  • Fonctions Swish
  • Prépare une requête de recherche

Swish::prepare

(PECL swish >= 0.1.0)

Swish::prepare — Prépare une requête de recherche

Description

object Swish::prepare ([ string $query ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Prépare et retourne un objet de recherche que vous pouvez utiliser pour un nombre illimité de requêtes.

Liste de paramètres

query

Chaîne de requête optionnelle. La requête peut être aussi spécifiée en utilisant la méthode SwishSearch::execute().

Valeurs de retour

Retourne un objet SwishSearch.

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple simple avec Swish->prepare()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare("search query");
    $results = $search->execute();
    echo "Trouvé : ", $results->hits, " hits\n";

    $results = $search->execute("new search");

    echo "Trouvé : ", $results->hits, " hits\n";
} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé : 2 hits
Trouvé : 5 hits


Exécute une requête et retourne un objet de résultats

  • « Swish::prepare
  • SwishResult::getMetaList »
  • PHP Manual
  • Fonctions Swish
  • Exécute une requête et retourne un objet de résultats

Swish::query

(PECL swish >= 0.1.0)

Swish::query — Exécute une requête et retourne un objet de résultats

Description

object Swish::query ( string $query )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Une méthode rapide pour exécuter une requête avec les paramètres par défaut.

Liste de paramètres

query

Chaîne de recherche.

Valeurs de retour

Retourne un objet SwishResults.

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple simple avec Swish->query()

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("test query");

    echo "Trouvé : ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Found: 1 hits


Récupère une liste de méta-données

  • « Swish::query
  • SwishResult::stem »
  • PHP Manual
  • Fonctions Swish
  • Récupère une liste de méta-données

SwishResult::getMetaList

(PECL swish >= 0.1.0)

SwishResult::getMetaList — Récupère une liste de méta-données

Description

array SwishResult::getMetaList ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Valeurs de retour

Retourne le même tableau que swish::getmetalist(), mais utilise le fichier d'index à partir la variable résultat.


Tronque le mot donné

  • « SwishResult::getMetaList
  • SwishResults::getParsedWords »
  • PHP Manual
  • Fonctions Swish
  • Tronque le mot donné

SwishResult::stem

(PECL swish >= 0.1.0)

SwishResult::stem — Tronque le mot donné

Description

array SwishResult::stem ( string $word )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Tronque le mot en se basant sur le mode flou utilisé pendant l'indexation. Chaque objet de résultat est lié à son index, donc les résultats sont basés sur cet index.

Liste de paramètres

word

Le mot à tronquer.

Valeurs de retour

Retourne un tableau contenant les variantes du mot tronqué (normalement qu'une seule).

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple simple avec SwishResult->stem()

<?php

try {

    $swish = new Swish("ext/swish/tests/index.swish-e");
    $results = $swish->query("testing OR others");

    if ($result = $results->nextResult()) {
        var_dump($result->stem("testing")); // les résultats dépendent de la troncature du mot dans l'index
        var_dump($result->stem("others"));
    }

} catch (SwishException $e) {
    echo "Erreur : ", $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  string(4) "test"
}
array(1) {
  [0]=>
  string(5) "other"
}


Récupère un tableau de mots analysés

  • « SwishResult::stem
  • SwishResults::getRemovedStopwords »
  • PHP Manual
  • Fonctions Swish
  • Récupère un tableau de mots analysés

SwishResults::getParsedWords

(PECL swish >= 0.1.0)

SwishResults::getParsedWords — Récupère un tableau de mots analysés

Description

array SwishResults::getParsedWords ( string $index_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

indexi_name

Le nom de l'index utilisé pour initialiser l'objet Swish.

Valeurs de retour

Un tableau de mots analysés avec les mots non significatifs supprimés. La liste des mots analysés peut être utile pour mettre en évidence les termes de recherche dans les résultats.

Exemples

Exemple #1 Exemple simple avec SwishResults::getParsedWords()

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("'some characters' and numbers");

    var_dump($results->getParsedWords("index.swish-e"));
    var_dump($results->indexes[0]['parsed_words']); // même résultat de manière différente

} catch (SwishException $e) {
    echo "Erreur : ", $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  [0]=>
  string(4) "some"
  [1]=>
  string(10) "characters"
  [2]=>
  string(3) "and"
  [3]=>
  string(7) "numbers"
}
array(4) {
  [0]=>
  string(4) "some"
  [1]=>
  string(10) "characters"
  [2]=>
  string(3) "and"
  [3]=>
  string(7) "numbers"
}


Récupère un tableau de mots non significatifs supprimés de la requête

  • « SwishResults::getParsedWords
  • SwishResults::nextResult »
  • PHP Manual
  • Fonctions Swish
  • Récupère un tableau de mots non significatifs supprimés de la requête

SwishResults::getRemovedStopwords

(PECL swish >= 0.1.0)

SwishResults::getRemovedStopwords — Récupère un tableau de mots non significatifs supprimés de la requête

Description

array SwishResults::getRemovedStopwords ( string $index_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

index_name

Le nom de l'index utilisé pour initialiser l'objet Swish.

Valeurs de retour

Retourne un tableau de mots non significatifs supprimés de la requête.


Récupère le prochain résultat de la recherche

  • « SwishResults::getRemovedStopwords
  • SwishResults::seekResult »
  • PHP Manual
  • Fonctions Swish
  • Récupère le prochain résultat de la recherche

SwishResults::nextResult

(PECL swish >= 0.1.0)

SwishResults::nextResult — Récupère le prochain résultat de la recherche

Description

object SwishResults::nextResult ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Valeurs de retour

Retourne le prochain objet SwishResult dans l'ensemble de résultats ou FALSE s'il n'y a plus de résultat disponible.

Exemples

Exemple #1 Exemple simple avec SwishResults::nextResult()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("lost");
    while($result = $results->nextResult()) {
        /* faire quelque chose avec l'objet résultat */
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>


Spécifie le pointeur de recherche à une position donnée

  • « SwishResults::nextResult
  • SwishSearch::execute »
  • PHP Manual
  • Fonctions Swish
  • Spécifie le pointeur de recherche à une position donnée

SwishResults::seekResult

(PECL swish >= 0.1.0)

SwishResults::seekResult — Spécifie le pointeur de recherche à une position donnée

Description

int SwishResults::seekResult ( int $position )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

position

Position commençant par zéro. Ne peut être inférieur à zéro.

Valeurs de retour

Retourne la nouvelle position en cas de succès.

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple simple avec SwishResults::seekResult()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("lost");

    var_dump($results->seekResult(0)); // ceci fonctionnera
    var_dump($results->seekResult(100)); // ceci échouera

} catch (SwishException $e) {
    echo "Erreur : ", $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
Erreur : No more results


Exécute la recherche et récupère les résultats

  • « SwishResults::seekResult
  • SwishSearch::resetLimit »
  • PHP Manual
  • Fonctions Swish
  • Exécute la recherche et récupère les résultats

SwishSearch::execute

(PECL swish >= 0.1.0)

SwishSearch::execute — Exécute la recherche et récupère les résultats

Description

object SwishSearch::execute ([ string $query ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cherche le(s) fichier(s) d'index en se basant sur les paramètres dans l'objet de recherche.

Liste de paramètres

query

La chaîne de requête est un paramètre optionnel, elle peut être aussi spécifiée en utilisant la méthode Swish::prepare(). La requête est préservée entre les exécutions, ainsi vous pouvez la paramétrer une fois, mais vous pouvez exécuter la recherche plusieurs fois.

Valeurs de retour

Retourne l'objet SwishResults.

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple simple avec SwishSearch::execute()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("query");
    echo "Trouvé lors de la première requête : ", $results->hits, " hits\n";

    $results = $search->execute("new OR query");
    echo "Trouvé lors de la seconde requête : ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé lors de la première requête : 2 hits
Trouvé lors de la seconde requête : 12 hits


Réinitialise les limites de recherche

  • « SwishSearch::execute
  • SwishSearch::setLimit »
  • PHP Manual
  • Fonctions Swish
  • Réinitialise les limites de recherche

SwishSearch::resetLimit

(PECL swish >= 0.1.0)

SwishSearch::resetLimit — Réinitialise les limites de recherche

Description

void SwishSearch::resetLimit ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Réinitialise les limites de recherche précédemment fixées par SwishSearch::setLimit.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple simple avec SwishSearch::resetLimit()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "Trouvé lors de la première requête : ", $results->hits, " résultats\n";

    $search->setLimit("swishdocsize", "3000", "6000"); // limite par la taille du document, entre 3000 et 6000 octets
    $results = $search->execute("time");
    echo "Trouvé lors de la seconde requête : ", $results->hits, " résultats\n";

    $search->resetLimit();
    $results = $search->execute("time");
    echo "Trouvé lors de la troisième requête : ", $results->hits, " résultats\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé lors de la première requête : 5 résultats
Trouvé lors de la seconde requête : 2 résultats
Trouvé lors de la troisième requête : 5 résultats


Spécifie les limites de recherche

  • « SwishSearch::resetLimit
  • SwishSearch::setPhraseDelimiter »
  • PHP Manual
  • Fonctions Swish
  • Spécifie les limites de recherche

SwishSearch::setLimit

(PECL swish >= 0.1.0)

SwishSearch::setLimit — Spécifie les limites de recherche

Description

void SwishSearch::setLimit ( string $property , string $low , string $high )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

property

Nom de la propriété du résultat de recherche.

low

La plus petite valeur de la propriété.

high

La plus grande valeur de la propriété.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une SwishException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SwishSearch::setLimit()

<?php
try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "Trouvé lors de la première requête : ", $results->hits, " résultats\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Résultat #", ++$i, " - ", $result->swishdocsize, " octets\n";
    }

    $search->setLimit("swishdocsize", "3000", "6000"); // limite par la taille du document, entre 3000 et 6000 octets
    $results = $search->execute("time");
    echo "Trouvé lors de la seconde requête : ", $results->hits, " résultats\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Résultat #", ++$i, " - ", $result->swishdocsize, " octets\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé lors de la première requête : 5 résultats
Résultat #1 - 4261 octets
Résultat #2 - 37937 octets
Résultat #3 - 7126 octets
Résultat #4 - 15427 octets
Résultat #5 - 4768 octets
Trouvé lors de la seconde requête : 2 résultats
Résultat #1 - 4261 octets
Résultat #2 - 4768 octets


Spécifie le délimiteur de phrase

  • « SwishSearch::setLimit
  • SwishSearch::setSort »
  • PHP Manual
  • Fonctions Swish
  • Spécifie le délimiteur de phrase

SwishSearch::setPhraseDelimiter

(PECL swish >= 0.1.0)

SwishSearch::setPhraseDelimiter — Spécifie le délimiteur de phrase

Description

void SwishSearch::setPhraseDelimiter ( string $delimiter )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

delimiter

Caractère de délimitation de phrase. Le délimiteur par défaut est le guillemet.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple simple avec SwishSearch::setPhraseDelimiter()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute('"every time"'); // recherche pour "every time"
    echo "Trouvé lors de la première requête : ", $results->hits, " résultats\n";

    $search->setPhraseDelimiter("'");
    $results = $search->execute("'every time'"); // la même requête, mais utilisant un délimiteur différent
    echo "Trouvé lors de la seconde requête : ", $results->hits, " résultats\n";

    $search->setPhraseDelimiter('"');
    $results = $search->execute("'every time'"); // recherche pour "every" et "time"
    echo "Trouvé lors de la troisième requête : ", $results->hits, " résultats\n";

    // Regardons les mots analysés
    var_dump($results->getParsedWords("index.swish-e"));

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé lors de la première requête : 1 résultats
Trouvé lors de la seconde requête : 1 résultats
Trouvé lors de la troisième requête : 2 résultats
array(2) {
  [0]=>
  string(5) "every"
  [1]=>
  string(4) "time"
}


Spécifie l'ordre

  • « SwishSearch::setPhraseDelimiter
  • SwishSearch::setStructure »
  • PHP Manual
  • Fonctions Swish
  • Spécifie l'ordre

SwishSearch::setSort

(PECL swish >= 0.1.0)

SwishSearch::setSort — Spécifie l'ordre

Description

void SwishSearch::setSort ( string $sort )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

sort

L'ordre des résultats est une chaîne de caractères contenant le nom d'une propriété de résultat combinée avec une direction ("asc" ou "desc"). Exemples : "swishrank desc", "swishdocpath asc", "swishtitle asc", "swishdocsize desc", "swishlastmodified desc" etc.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple simple avec SwishSearch::setSort()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "Trouvé lors de la première requête : ", $results->hits, " résultats\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Résultat #", ++$i, " - ", $result->swishdocsize, " octets\n";
    }

    $search->setSort("swishdocsize desc"); // ordonne par taille de document
    $results = $search->execute("time");
    echo "Trouvé lors de la seconde requête : ", $results->hits, " résultats\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Résultat #", ++$i, " - ", $result->swishdocsize, " octets\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé lors de la première requête : 5 résultats
Hit #1 - 4261 octets
Hit #2 - 37937 octets
Hit #3 - 7126 octets
Hit #4 - 15427 octets
Hit #5 - 4768 octets
Trouvé lors de la seconde requête : 5 résultats
Hit #1 - 37937 octets
Hit #2 - 15427 octets
Hit #3 - 7126 octets
Hit #4 - 4768 octets
Hit #5 - 4261 octets


Spécifie le flag de structure dans l'objet de recherche

  • « SwishSearch::setSort
  • Extensions spécifiques aux serveurs »
  • PHP Manual
  • Fonctions Swish
  • Spécifie le flag de structure dans l'objet de recherche

SwishSearch::setStructure

(PECL swish >= 0.1.0)

SwishSearch::setStructure — Spécifie le flag de structure dans l'objet de recherche

Description

void SwishSearch::setStructure ( int $structure )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

structure

Le flag de structure est un masque de bit utilisé pour limiter la recherche à certaines parties de documents HTML (comme "title", "meta", "body" etc.). Ces valeurs possibles sont listées ci-dessous. Pour combiner plusieurs valeurs, utilisez l'opérateur OR, voyez l'exemple ci-dessous.

  • Swish::IN_FILE

  • Swish::IN_TITLE

  • Swish::IN_HEAD

  • Swish::IN_BODY

  • Swish::IN_COMMENTS

  • Swish::IN_HEADER

  • Swish::IN_EMPHASIZED

  • Swish::IN_META

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple simple avec SwishSearch::setStructure()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "Trouvé lors de la première requête : ", $results->hits, " résultats\n";

    $search->setStructure(Swish::IN_TITLE|Swish::IN_HEAD); // cherche dans le title et head
    $results = $search->execute("time");
    echo "Trouvé lors de la seconde requête : ", $results->hits, " résultats\n";

    $search->setStructure(Swish::IN_ALL); //cherche dans tout le document, la valeur par défaut
    $results = $search->execute("time");
    echo "Trouvé lors de la troisième requête : ", $results->hits, " résultats\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Trouvé lors de la première requête : 5 résultats
Trouvé lors de la seconde requête : 0 résultats
Trouvé lors de la troisième requête : 5 résultats


Extensions spécifiques aux serveurs

  • Apache
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Apache
  • Gestionnaire de processus FastCGI
    • Introduction
    • Installation/Configuration
    • Fonctions FPM
  • IIS — Administration d'IIS
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions IIS
  • NSAPI
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions NSAPI


Apache

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Apache
    • apache_child_terminate — Termine le processus Apache après cette requête
    • apache_get_modules — Retourne la liste des modules Apache chargés
    • apache_get_version — Récupère la version d'Apache
    • apache_getenv — Lit une variable de processus Apache
    • apache_lookup_uri — Effectue une requête partielle pour l'URI spécifiée et renvoie toutes les informations la concernant
    • apache_note — Affiche ou affecte la table des notes d'Apache
    • apache_request_headers — Récupère tous les en-têtes HTTP de la requête
    • apache_reset_timeout — Remet à sa position initiale le temporisateur d'Apache
    • apache_response_headers — Récupère tous les en-têtes de réponse HTTP
    • apache_setenv — Modifie une variable de processus Apache
    • getallheaders — Récupère tous les en-têtes de la requête HTTP
    • virtual — Effectue une sous-requête Apache


Introduction

Ces fonctions ne sont disponibles que lorsque PHP est exécuté comme module d'Apache.

Note: Depuis PHP 4.3.2, PATH_TRANSLATED n'est plus défini implicitement sous Apache 2 SAPI contrairement à Apache 1, où cette variable était définie avec la même valeur que la variable serveur SCRIPT_FILENAME lorsqu'elle n'était pas définie par Apache. Cette modification a été effectuée afin de répondre aux spécifications CGI stipulant que PATH_TRANSLATED ne doit exister que si PATH_INFO est définie. Les utilisateurs d'Apache 2 doivent utiliser la directive AcceptPathInfo = On dans le fichier httpd.conf afin de définir la variable PATH_INFO.


  • « Pré-requis
  • Configuration à l'exécution »
  • PHP Manual
  • Installation/Configuration
  • Installation

Installation

Pour une installation de PHP sous Apache, lisez le chapitre sur l'installation.


Configuration à l'exécution

Le comportement du module PHP d'Apache peut être configuré dans le fichier php.ini. Les configurations du php.ini peuvent être remplacées par l'option php_flag dans le fichier de configuration du serveur, ou dans les fichiers locaux .htaccess.

Exemple #1 Désactiver l'analyse des fichiers PHP dans un dossier avec .htaccess

php_flag engine off

Options de configuration Apache
Nom | Défaut | Modifiable | Historique
engine | "1" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
child_terminate | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
last_modified | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
xbithack | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

engine booléen

Active ou non PHP. Cette directive est utile uniquement pour le module Apache. Elle est utilisée par les sites qui souhaitent activer ou non PHP, au cas par cas, par dossier ou par dossier virtuel. En utilisant engine off au bon endroit dans le fichier httpd.conf, PHP peut être activé ou non.

child_terminate booléen

Spécifie si les scripts PHP peuvent réclamer la fin des processus fils en fin de requête. Voir aussi apache_child_terminate().

last_modified booléen

Envoie la date de modification des scripts PHP dans l'en-tête HTTP Last-Modified:.

xbithack booléen

Analyse les fichiers avec l'exécutable PHP, indépendamment de leur extension.


  • « Types de ressources
  • Fonctions Apache »
  • PHP Manual
  • Apache
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions Apache

Sommaire

  • apache_child_terminate — Termine le processus Apache après cette requête
  • apache_get_modules — Retourne la liste des modules Apache chargés
  • apache_get_version — Récupère la version d'Apache
  • apache_getenv — Lit une variable de processus Apache
  • apache_lookup_uri — Effectue une requête partielle pour l'URI spécifiée et renvoie toutes les informations la concernant
  • apache_note — Affiche ou affecte la table des notes d'Apache
  • apache_request_headers — Récupère tous les en-têtes HTTP de la requête
  • apache_reset_timeout — Remet à sa position initiale le temporisateur d'Apache
  • apache_response_headers — Récupère tous les en-têtes de réponse HTTP
  • apache_setenv — Modifie une variable de processus Apache
  • getallheaders — Récupère tous les en-têtes de la requête HTTP
  • virtual — Effectue une sous-requête Apache


Termine le processus Apache après cette requête

  • « Fonctions Apache
  • apache_get_modules »
  • PHP Manual
  • Fonctions Apache
  • Termine le processus Apache après cette requête

apache_child_terminate

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

apache_child_terminate — Termine le processus Apache après cette requête

Description

bool apache_child_terminate ( void )

apache_child_terminate() va programmer le processus Apache pour qu'il se termine une fois la requête PHP courante terminée. Cela peut servir à terminer un processus après un script qui aurait consommé beaucoup de mémoire. En effet, la mémoire est généralement libérée de manière interne, mais pas rendue au système.

Valeurs de retour

Retourne TRUE si PHP fonctionne en tant que module d'Apache 1, que la version d'Apache n'est pas multithread et que la directive PHP child_terminate est activée (désactivée par défaut). Si ces conditions ne sont pas respectées, FALSE est retourné et une erreur de niveau E_WARNING est générée.

Historique

Version | Description
5.4.0 | Cette fonction devient disponible pour FastCGI. Précédemment, elle n'était disponible que lorsque PHP était installé comme module Apache.

Notes

Note: Cette fonction n'est pas implémentée sous Windows.

Voir aussi

  • exit() - Affiche un message et termine le script courant


Retourne la liste des modules Apache chargés

  • « apache_child_terminate
  • apache_get_version »
  • PHP Manual
  • Fonctions Apache
  • Retourne la liste des modules Apache chargés

apache_get_modules

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

apache_get_modules — Retourne la liste des modules Apache chargés

Description

array apache_get_modules ( void )

Retourne la liste des modules Apache chargés.

Valeurs de retour

Un tableau contenant les modules Apache chargés.

Historique

Version | Description
5.0.0 | Cette fonction est devenue disponible lors de l'utilisation d'Apache 1 ou de l'API "filter" de PHP Apache 2. Avant cette version, elle n'était disponible qu'en utilisant l'API "handler" d'Apache 2.

Exemples

Exemple #1 Exemple avec apache_get_modules()

<?php
print_r(apache_get_modules());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => core
    [1] => http_core
    [2] => mod_so
    [3] => sapi_apache2
    [4] => mod_mime
    [5] => mod_rewrite
)


Récupère la version d'Apache

  • « apache_get_modules
  • apache_getenv »
  • PHP Manual
  • Fonctions Apache
  • Récupère la version d'Apache

apache_get_version

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

apache_get_version — Récupère la version d'Apache

Description

string apache_get_version ( void )

Récupère la version d'Apache.

Valeurs de retour

Retourne la version d'Apache en cas de réussite ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apache_get_version()

<?php
$version = apache_get_version();
echo "$version\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Apache/1.3.29 (Unix) PHP/4.3.4

Voir aussi

  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP


Lit une variable de processus Apache

  • « apache_get_version
  • apache_lookup_uri »
  • PHP Manual
  • Fonctions Apache
  • Lit une variable de processus Apache

apache_getenv

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

apache_getenv — Lit une variable de processus Apache

Description

string apache_getenv ( string $variable [, bool $walk_to_top = false ] )

Récupère une variable d'environnement d'Apache.

Cette fonction requiert Apache 2, autrement elle est indéfinie.

Liste de paramètres

variable

La variable d'environnement Apache.

walk_to_top

Si passé à TRUE, récupération de la variable de haut niveau disponible pour toutes les couches d'Apache.

Valeurs de retour

La valeur de la variable d'environnement d'Apache en cas de réussite ou FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec apache_getenv()

L'exemple suivant montre comment récupérer la valeur de la variable d'environnement SERVER_ADDR.

<?php
$ret = apache_getenv("SERVER_ADDR");
echo $ret;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

42.24.42.240

Voir aussi

  • apache_setenv() - Modifie une variable de processus Apache
  • getenv() - Retourne la valeur d'une variable d'environnement
  • Superglobales


Effectue une requête partielle pour l'URI spécifiée et renvoie toutes les informations la concernant

  • « apache_getenv
  • apache_note »
  • PHP Manual
  • Fonctions Apache
  • Effectue une requête partielle pour l'URI spécifiée et renvoie toutes les informations la concernant

apache_lookup_uri

(PHP 4, PHP 5, PHP 7)

apache_lookup_uri — Effectue une requête partielle pour l'URI spécifiée et renvoie toutes les informations la concernant

Description

object apache_lookup_uri ( string $filename )

Cette fonction effectue une requête partielle pour l'URI spécifiée. Cette requête permet juste de récupérer toutes les informations importantes à propos de la ressource concernée.

Cette fonction est supportée lorsque PHP est installé comme module d'Apache, ou par le module serveur NSAPI des serveurs Web Netscape/iPlanet/SunONE.

Liste de paramètres

filename

Le nom du fichier (URI) qui sera demandé.

Valeurs de retour

Un objet des informations relatives à l'URI. Les propriétés de l'objet sont les suivantes :

  • status
  • the_request
  • status_line
  • method
  • content_type
  • handler
  • uri
  • filename
  • path_info
  • args
  • boundary
  • no_cache
  • no_local_copy
  • allowed
  • send_bodyct
  • bytes_sent
  • byterange
  • clength
  • unparsed_uri
  • mtime
  • request_time

Exemples

Exemple #1 Exemple avec apache_lookup_uri()

<?php
$info = apache_lookup_uri('index.php?var=value');
print_r($info);

if (file_exists($info->filename)) {
    echo 'le fichier existe !';
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

stdClass Object
(
    [status] => 200
    [the_request] => GET /dir/file.php HTTP/1.1
    [method] => GET
    [mtime] => 0
    [clength] => 0
    [chunked] => 0
    [content_type] => application/x-httpd-php
    [no_cache] => 0
    [no_local_copy] => 1
    [unparsed_uri] => /dir/index.php?var=value
    [uri] => /dir/index.php
    [filename] => /home/htdocs/dir/index.php
    [args] => var=value
    [allowed] => 0
    [sent_bodyct] => 0
    [bytes_sent] => 0
    [request_time] => 1074282764
)
le fichier existe !


Affiche ou affecte la table des notes d'Apache

  • « apache_lookup_uri
  • apache_request_headers »
  • PHP Manual
  • Fonctions Apache
  • Affiche ou affecte la table des notes d'Apache

apache_note

(PHP 4, PHP 5, PHP 7)

apache_note — Affiche ou affecte la table des notes d'Apache

Description

string apache_note ( string $note_name [, string $note_value = "" ] )

Cette fonction est une abstraction des commandes table_get et table_set d'Apache. Elle édite la table des notes qui existe lors d'une requête. Le but de cette table est de permettre aux modules Apache de communiquer.

L'utilité de la fonction apache_note() est de passer des informations d'un module vers un autre, durant la même requête.

Liste de paramètres

note_name

Le nom de la note.

note_value

La valeur de la note.

Valeurs de retour

Si la fonction est appelée avec un argument, elle renvoie la valeur courante de la variable note_name. Si elle est appelée avec deux arguments, elle affecte à la note note_name la valeur note_value et elle retournera la valeur précédente de la variable note_name. Si la note ne peut être récupérée, FALSE est retourné.

Exemples

Exemple #1 Passage d'informations entre PHP et Perl

<?php

apache_note('name', 'Fredrik Ekengren');

// Appel du script Perl
virtual("/perl/some_script.pl");

$result = apache_note("resultdata");
?>
# Récupération de l'objet de demande Apache
my $r = Apache->request()->main();

# Récupération des données passées
my $name = $r->notes('name');

# Des traitements

# Envoi du résultat vers PHP
$r->notes('resultdata', $result);

Exemple #2 Valeurs d'identification dans le fichier access.log

<?php

apache_note('sessionID', session_id());

?>
# "%{sessionID}n" peut être utilisé dans la directive LogFormat

Voir aussi

  • virtual() - Effectue une sous-requête Apache


Récupère tous les en-têtes HTTP de la requête

  • « apache_note
  • apache_reset_timeout »
  • PHP Manual
  • Fonctions Apache
  • Récupère tous les en-têtes HTTP de la requête

apache_request_headers

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

apache_request_headers — Récupère tous les en-têtes HTTP de la requête

Description

array apache_request_headers ( void )

Récupère tous les en-têtes HTTP de la requête courante.

Valeurs de retour

Un tableau associatif avec tous les en-têtes HTTP de la requête courante ou FALSE en cas d'échec.

Historique

Version | Description
5.5.7 | Cette fonction devient disponible pour le serveur CLI.
5.4.0 | Cette fonction devient disponible pour FastCGI. Précédemment, elle était disponible que lorsque PHP était installé comme module Apache ou par le module serveur NSAPI des serveurs Web Netscape/iPlanet/SunONE.

Exemples

Exemple #1 Exemple avec apache_request_headers()

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Host: www.example.com
Connection: Keep-Alive

Notes

Note:

Vous pouvez aussi obtenir les valeurs des variables CGI communes en les lisant dans l'environnement, ce qui fonctionne, que vous soyez ou non en module Apache. Utilisez la fonction phpinfo() pour connaître la liste des variables d'environnement disponibles.

Voir aussi

  • apache_response_headers() - Récupère tous les en-têtes de réponse HTTP


Remet à sa position initiale le temporisateur d'Apache

  • « apache_request_headers
  • apache_response_headers »
  • PHP Manual
  • Fonctions Apache
  • Remet à sa position initiale le temporisateur d'Apache

apache_reset_timeout

(PHP 5 >= 5.1.0, PHP 7)

apache_reset_timeout — Remet à sa position initiale le temporisateur d'Apache

Description

bool apache_reset_timeout ( void )

apache_reset_timeout() remet à sa position initiale le temporisateur d'Apache, qui vaut par défaut 300 secondes. Avec des appels à set_time_limit(0); ignore_user_abort(true) et des appels périodiques à apache_reset_timeout(), Apache peut, théoriquement, fonctionner sans arrêt.

Cette fonction nécessite Apache 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note: Cette fonction est désactivée par le safe-mode

Voir aussi

  • set_time_limit() - Fixe le temps maximum d'exécution d'un script
  • ignore_user_abort() - Active l'interruption de script sur déconnexion du visiteur


Récupère tous les en-têtes de réponse HTTP

  • « apache_reset_timeout
  • apache_setenv »
  • PHP Manual
  • Fonctions Apache
  • Récupère tous les en-têtes de réponse HTTP

apache_response_headers

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

apache_response_headers — Récupère tous les en-têtes de réponse HTTP

Description

array apache_response_headers ( void )

Récupère tous les en-têtes de réponse HTTP.

Valeurs de retour

Un tableau de tous les en-têtes de réponse d'Apache en cas de réussite ou FALSE si une erreur survient.

Historique

Version | Description
5.5.7 | Cette fonction devient disponible pour le serveur CLI.
5.4.0 | Cette fonction devient disponible pour FastCGI. Précédemment, elle était disponible lorsque PHP était installé comme module Apache ou par le module serveur NSAPI des serveurs Web Netscape/iPlanet/SunONE.

Exemples

Exemple #1 Exemple avec apache_response_headers()

<?php
print_r(apache_response_headers());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [Accept-Ranges] => bytes
    [X-Powered-By] => PHP/4.3.8
)

Voir aussi

  • apache_request_headers() - Récupère tous les en-têtes HTTP de la requête
  • headers_sent() - Indique si les en-têtes HTTP ont déjà été envoyés
  • headers_list() - Retourne la liste des en-têtes de réponse du script courant


Modifie une variable de processus Apache

  • « apache_response_headers
  • getallheaders »
  • PHP Manual
  • Fonctions Apache
  • Modifie une variable de processus Apache

apache_setenv

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

apache_setenv — Modifie une variable de processus Apache

Description

bool apache_setenv ( string $variable , string $value [, bool $walk_to_top = false ] )

apache_setenv() définit la valeur de la variable d'environnement Apache spécifiée par le paramètre variable.

Note:

Lors de la définition d'une variable d'environnement Apache, la variable $_SERVER correspondante n'est pas modifiée.

Liste de paramètres

variable

La variable d'environnement qui sera modifiée.

value

La nouvelle valeur de variable.

walk_to_top

Si passé à TRUE, assignation de la variable de haut niveau disponible pour toutes les couches d'Apache.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec apache_setenv()

<?php
apache_setenv("EXAMPLE_VAR", "Exemple de Valeur");
?>

Notes

Note:

apache_setenv() peut être utilisée conjointement à apache_getenv() à travers plusieurs pages ou pour définir des variables à passer aux fichiers inclus coté serveur (.shtml) via des scripts PHP.

Voir aussi

  • apache_getenv() - Lit une variable de processus Apache


Récupère tous les en-têtes de la requête HTTP

  • « apache_setenv
  • virtual »
  • PHP Manual
  • Fonctions Apache
  • Récupère tous les en-têtes de la requête HTTP

getallheaders

(PHP 4, PHP 5, PHP 7)

getallheaders — Récupère tous les en-têtes de la requête HTTP

Description

array getallheaders ( void )

Récupère tous les en-têtes de la requête HTTP.

Cette fonction est un alias de la fonction apache_request_headers(). Lisez la documentation de apache_request_headers() pour plus d'informations sur le fonctionnement de cette fonction.

Valeurs de retour

Un tableau associatif avec tous les en-têtes HTTP de la requête courante ou FALSE en cas d'échec.

Historique

Version | Description
5.5.7 | Cette fonction devient disponible pour le serveur CLI.
5.4.0 | Cette fonction devient disponible pour FastCGI. Précédemment, elle était disponible lorsque PHP était installé comme module Apache ou par le module serveur NSAPI des serveurs Web Netscape/iPlanet/SunONE.

Exemples

Exemple #1 Exemple avec getallheaders()

<?php

foreach (getallheaders() as $name => $value) {
    echo "$name: $value\n";
}

?>

Voir aussi

  • apache_response_headers() - Récupère tous les en-têtes de réponse HTTP


Effectue une sous-requête Apache

  • « getallheaders
  • Gestionnaire de processus FastCGI »
  • PHP Manual
  • Fonctions Apache
  • Effectue une sous-requête Apache

virtual

(PHP 4, PHP 5, PHP 7)

virtual — Effectue une sous-requête Apache

Description

bool virtual ( string $filename )

virtual() est une fonction spécifique au serveur Apache. Elle est similaire à la directive "<!--#include virtual...-->" lorsque vous utilisez le module mod_include d'Apache. Cette fonction effectue une sous-requête Apache. C'est très utile lorsque vous voulez analyser des scripts CGI, des fichiers .shtml ou n'importe quel autre type de fichier à travers le serveur Apache. Il est à noter que lors de l'utilisation avec des scripts CGI, ces derniers doivent générer un en-tête valide, c'est-à-dire, au minimum un en-tête Content-Type.

Pour exécuter une sous-requête, tous les tampons sont arrêtés et vidés vers le navigateur, les en-têtes restants le sont aussi.

Liste de paramètres

filename

Le fichier sur lequel la commande virtuelle sera effectuée.

Valeurs de retour

Exécute une commande virtuelle en cas de succès ou retourne FALSE en cas d'échec.

Exemples

Voir la fonction apache_note() pour un exemple.

Notes

Avertissement

La chaîne requise peut être passée au fichier inclus, mais $_GET est copié depuis le script parent et seule la variable $_SERVER['QUERY_STRING'] est transmise en passant la chaîne requise. La chaîne requise passée fonctionne uniquement sous Apache 2. Les fichiers demandés ne sont pas listés dans les logs d'accès Apache.

Note:

Les variables d'environnement fixées dans le fichier demandé ne sont pas visibles dans le fichier appelant.

Note:

Cette fonction peut être utilisée sur les fichiers PHP. Cependant, il est conseillé d'utiliser include ou require pour les fichiers PHP.

Voir aussi

  • apache_note() - Affiche ou affecte la table des notes d'Apache


Gestionnaire de processus FastCGI

  • Introduction
  • Installation/Configuration
  • Fonctions FPM
    • fastcgi_finish_request — Affiche toutes les données de la réponse au client


Introduction

FPM (FastCGI Process Manager, gestionnaire de processus FastCGI) est une alternative à l'implémentation PHP FastCGI avec des fonctionnalités supplémentaires utiles pour les sites très fortement chargés.

Ce SAPI est embarqué avec PHP 5.3.3 et suivant.


Installation/Configuration

Des informations sur l'installation et la configuration de FPM peuvent être trouvées dans la section relative à l'installation et la configuration du manuel PHP.


  • « Installation/Configuration
  • fastcgi_finish_request »
  • PHP Manual
  • Gestionnaire de processus FastCGI
  • Fonctions FPM

Fonctions FPM

Sommaire

  • fastcgi_finish_request — Affiche toutes les données de la réponse au client


Affiche toutes les données de la réponse au client

  • « Fonctions FPM
  • IIS »
  • PHP Manual
  • Fonctions FPM
  • Affiche toutes les données de la réponse au client

fastcgi_finish_request

(PHP 5 >= 5.3.3, PHP 7)

fastcgi_finish_request — Affiche toutes les données de la réponse au client

Description

boolean fastcgi_finish_request ( void )

Cette fonction affiche toutes les données de la réponse au client et termine la requête. Ceci permet pour les tâches consommatrices en temps d'être effectuées sans laisser la connexion avec le client ouverte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Administration d'IIS

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions IIS
    • iis_add_server — Crée un nouveau serveur web virtuel
    • iis_get_dir_security — Lit la configuration de sécurité du dossier
    • iis_get_script_map — Lit le mappage de script dans un dossier virtuel donné
    • iis_get_server_by_comment — Retourne le numéro d'instance associé à un Comment
    • iis_get_server_by_path — Retourne le numéro d'instance associé avec le chemin
    • iis_get_server_rights — Lit les droits du serveur
    • iis_get_service_state — Retourne l'état du service défini par ServiceId
    • iis_remove_server — Supprime le serveur IIS représenté par ServerInstance
    • iis_set_app_settings — Crée un espace d'exécution pour une application dans un dossier virtuel
    • iis_set_dir_security — Modifie la configuration de sécurité du dossier
    • iis_set_script_map — Modifie le mappage de script pour un dossier virtuel
    • iis_set_server_rights — Modifie les droits du serveur
    • iis_start_server — Démarre le serveur web virtuel
    • iis_start_service — Démarre le service IIS identifié par ServiceId
    • iis_stop_server — Stoppe le serveur web virtuel
    • iis_stop_service — Stoppe le service IIS identifié par ServiceId


Introduction

Cette extension n'est disponible que pour Windows. Elle fournit des fonctions d'administration de Microsoft Internet Information Server (IIS). Cette extension inclut des fonctions pour créer des sites web et des dossiers virtuels, ainsi que pour configurer la sécurité et le extensions de scripts.


Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/iisfunc.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

IIS_READ (entier)
IIS_WRITE (entier)
IIS_EXECUTE (entier)
IIS_SCRIPT (entier)
IIS_ANONYMOUS (entier)
IIS_BASIC (entier)
IIS_NTLM (entier)
IIS_STARTING (entier)
IIS_STOPPED (entier)
IIS_PAUSED (entier)
IIS_RUNNING (entier)


Fonctions IIS

Sommaire

  • iis_add_server — Crée un nouveau serveur web virtuel
  • iis_get_dir_security — Lit la configuration de sécurité du dossier
  • iis_get_script_map — Lit le mappage de script dans un dossier virtuel donné
  • iis_get_server_by_comment — Retourne le numéro d'instance associé à un Comment
  • iis_get_server_by_path — Retourne le numéro d'instance associé avec le chemin
  • iis_get_server_rights — Lit les droits du serveur
  • iis_get_service_state — Retourne l'état du service défini par ServiceId
  • iis_remove_server — Supprime le serveur IIS représenté par ServerInstance
  • iis_set_app_settings — Crée un espace d'exécution pour une application dans un dossier virtuel
  • iis_set_dir_security — Modifie la configuration de sécurité du dossier
  • iis_set_script_map — Modifie le mappage de script pour un dossier virtuel
  • iis_set_server_rights — Modifie les droits du serveur
  • iis_start_server — Démarre le serveur web virtuel
  • iis_start_service — Démarre le service IIS identifié par ServiceId
  • iis_stop_server — Stoppe le serveur web virtuel
  • iis_stop_service — Stoppe le service IIS identifié par ServiceId


Crée un nouveau serveur web virtuel

  • « Fonctions IIS
  • iis_get_dir_security »
  • PHP Manual
  • Fonctions IIS
  • Crée un nouveau serveur web virtuel

iis_add_server

(PECL iisfunc SVN)

iis_add_server — Crée un nouveau serveur web virtuel

Description

int iis_add_server ( string $path , string $comment , string $server_ip , int $port , string $host_name , int $rights , int $start_server )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Lit la configuration de sécurité du dossier

  • « iis_add_server
  • iis_get_script_map »
  • PHP Manual
  • Fonctions IIS
  • Lit la configuration de sécurité du dossier

iis_get_dir_security

(PECL iisfunc SVN)

iis_get_dir_security — Lit la configuration de sécurité du dossier

Description

int iis_get_dir_security ( int $server_instance , string $virtual_path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Lit le mappage de script dans un dossier virtuel donné

  • « iis_get_dir_security
  • iis_get_server_by_comment »
  • PHP Manual
  • Fonctions IIS
  • Lit le mappage de script dans un dossier virtuel donné

iis_get_script_map

(PECL iisfunc SVN)

iis_get_script_map — Lit le mappage de script dans un dossier virtuel donné

Description

string iis_get_script_map ( int $server_instance , string $virtual_path , string $script_extension )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne le numéro d'instance associé à un Comment

  • « iis_get_script_map
  • iis_get_server_by_path »
  • PHP Manual
  • Fonctions IIS
  • Retourne le numéro d'instance associé à un Comment

iis_get_server_by_comment

(PECL iisfunc SVN)

iis_get_server_by_comment — Retourne le numéro d'instance associé à un Comment

Description

int iis_get_server_by_comment ( string $comment )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne le numéro d'instance associé avec le chemin

  • « iis_get_server_by_comment
  • iis_get_server_rights »
  • PHP Manual
  • Fonctions IIS
  • Retourne le numéro d'instance associé avec le chemin

iis_get_server_by_path

(PECL iisfunc SVN)

iis_get_server_by_path — Retourne le numéro d'instance associé avec le chemin

Description

int iis_get_server_by_path ( string $path )

Chaque serveur virtuel sous IIS est représenté par un numéro d'instance. iis_get_server_by_path() trouve ce numéro d'instance à partir du chemin physique jusqu'à la racine du dossier.

Liste de paramètres

path

Le chemin vers le dossier racine

Valeurs de retour

Retourne le numéro d'instance du serveur.


Lit les droits du serveur

  • « iis_get_server_by_path
  • iis_get_service_state »
  • PHP Manual
  • Fonctions IIS
  • Lit les droits du serveur

iis_get_server_rights

(PECL iisfunc SVN)

iis_get_server_rights — Lit les droits du serveur

Description

int iis_get_server_rights ( int $server_instance , string $virtual_path )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne l'état du service défini par ServiceId

  • « iis_get_server_rights
  • iis_remove_server »
  • PHP Manual
  • Fonctions IIS
  • Retourne l'état du service défini par ServiceId

iis_get_service_state

(PECL iisfunc SVN)

iis_get_service_state — Retourne l'état du service défini par ServiceId

Description

int iis_get_service_state ( string $service_id )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Supprime le serveur IIS représenté par ServerInstance

  • « iis_get_service_state
  • iis_set_app_settings »
  • PHP Manual
  • Fonctions IIS
  • Supprime le serveur IIS représenté par ServerInstance

iis_remove_server

(PECL iisfunc SVN)

iis_remove_server — Supprime le serveur IIS représenté par ServerInstance

Description

int iis_remove_server ( int $server_instance )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Crée un espace d'exécution pour une application dans un dossier virtuel

  • « iis_remove_server
  • iis_set_dir_security »
  • PHP Manual
  • Fonctions IIS
  • Crée un espace d'exécution pour une application dans un dossier virtuel

iis_set_app_settings

(PECL iisfunc SVN)

iis_set_app_settings — Crée un espace d'exécution pour une application dans un dossier virtuel

Description

int iis_set_app_settings ( int $server_instance , string $virtual_path , string $application_scope )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Modifie la configuration de sécurité du dossier

  • « iis_set_app_settings
  • iis_set_script_map »
  • PHP Manual
  • Fonctions IIS
  • Modifie la configuration de sécurité du dossier

iis_set_dir_security

(PECL iisfunc SVN)

iis_set_dir_security — Modifie la configuration de sécurité du dossier

Description

int iis_set_dir_security ( int $server_instance , string $virtual_path , int $directory_flags )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Modifie le mappage de script pour un dossier virtuel

  • « iis_set_dir_security
  • iis_set_server_rights »
  • PHP Manual
  • Fonctions IIS
  • Modifie le mappage de script pour un dossier virtuel

iis_set_script_map

(PECL iisfunc SVN)

iis_set_script_map — Modifie le mappage de script pour un dossier virtuel

Description

int iis_set_script_map ( int $server_instance , string $virtual_path , string $script_extension , string $engine_path , int $allow_scripting )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Modifie les droits du serveur

  • « iis_set_script_map
  • iis_start_server »
  • PHP Manual
  • Fonctions IIS
  • Modifie les droits du serveur

iis_set_server_rights

(PECL iisfunc SVN)

iis_set_server_rights — Modifie les droits du serveur

Description

int iis_set_server_rights ( int $server_instance , string $virtual_path , int $directory_flags )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Démarre le serveur web virtuel

  • « iis_set_server_rights
  • iis_start_service »
  • PHP Manual
  • Fonctions IIS
  • Démarre le serveur web virtuel

iis_start_server

(PECL iisfunc SVN)

iis_start_server — Démarre le serveur web virtuel

Description

int iis_start_server ( int $server_instance )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Démarre le service IIS identifié par ServiceId

  • « iis_start_server
  • iis_stop_server »
  • PHP Manual
  • Fonctions IIS
  • Démarre le service IIS identifié par ServiceId

iis_start_service

(PECL iisfunc SVN)

iis_start_service — Démarre le service IIS identifié par ServiceId

Description

int iis_start_service ( string $service_id )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Stoppe le serveur web virtuel

  • « iis_start_service
  • iis_stop_service »
  • PHP Manual
  • Fonctions IIS
  • Stoppe le serveur web virtuel

iis_stop_server

(PECL iisfunc SVN)

iis_stop_server — Stoppe le serveur web virtuel

Description

int iis_stop_server ( int $server_instance )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Stoppe le service IIS identifié par ServiceId

  • « iis_stop_server
  • NSAPI »
  • PHP Manual
  • Fonctions IIS
  • Stoppe le service IIS identifié par ServiceId

iis_stop_service

(PECL iisfunc SVN)

iis_stop_service — Stoppe le service IIS identifié par ServiceId

Description

int iis_stop_service ( string $service_id )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


NSAPI

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions NSAPI
    • nsapi_request_headers — Lit tous les en-têtes de requête HTTP sur un serveur Netscape
    • nsapi_response_headers — Lit tous les en-têtes de réponse HTTP sur Netscape serveur
    • nsapi_virtual — Effectue une sous-requête NSAPI


Introduction

Ces fonctions ne sont disponibles que lorsque vous utilisez PHP comme module NSAPI avec les serveurs Netscape/iPlanet/Sun.


Installation

Pour l'installation de PHP sur les serveurs Netscape/iPlanet/Sun voyez la section NSAPI (UNIX, Windows) dans le chapitre d'installation.


Configuration à l'exécution

Le comportement du module PHP NSAPI est affecté par le fichier de configuration php.ini. Les configurations du fichier php.ini peuvent être remplacées par d'autres paramètres de la fonction php4_execute dans obj.conf

Options de configuration NSAPI
Nom | Défaut | Modifiable | Historique
nsapi.read_timeout | 60 | PHP_INI_ALL | Disponible depuis PHP 4.3.3.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

nsapi.read_timeout entier

Configure la durée d'attente des données envoyées en méthode POST par le client.


  • « Types de ressources
  • Fonctions NSAPI »
  • PHP Manual
  • NSAPI
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions NSAPI

Voir aussi

NSAPI implémente un sous-ensemble des fonctions du module Apache, pour un maximum de compatibilité.

Fonctions Apache implémentées par NSAPI
Fonction Apache (uniquement un alias) | Fonction NSAPI | Description
apache_request_headers() | nsapi_request_headers() | Lit tous les en-têtes de requête HTTP
apache_response_headers() | nsapi_response_headers() | Lit tous les en-têtes de réponse HTTP
getallheaders() | nsapi_request_headers() | Lit tous les en-têtes de requête HTTP
virtual() | nsapi_virtual() | Fait une sous-requête NSAPI

Sommaire

  • nsapi_request_headers — Lit tous les en-têtes de requête HTTP sur un serveur Netscape
  • nsapi_response_headers — Lit tous les en-têtes de réponse HTTP sur Netscape serveur
  • nsapi_virtual — Effectue une sous-requête NSAPI


Lit tous les en-têtes de requête HTTP sur un serveur Netscape

  • « Fonctions NSAPI
  • nsapi_response_headers »
  • PHP Manual
  • Fonctions NSAPI
  • Lit tous les en-têtes de requête HTTP sur un serveur Netscape

nsapi_request_headers

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

nsapi_request_headers — Lit tous les en-têtes de requête HTTP sur un serveur Netscape

Description

array nsapi_request_headers ( void )

nsapi_request_headers() retourne un tableau associatif avec tous les en-têtes HTTP de la requête courante. C'est uniquement disponible si PHP fonctionne en tant que module NSAPI.

Note:

Avant PHP 4.3.3, getallheaders() n'était disponible que pour les serveurs Apaches. Depuis PHP 4.3.3, getallheaders() est un alias de la fonction nsapi_request_headers() si vous utilisez ce module.

Note:

Vous pouvez aussi obtenir une valeur des variables CGI communes en lisant dans la variable $_SERVER, qui fonctionne si vous utilisez PHP en tant que module NSAPI ou non.

Valeurs de retour

Retourne un tableau associatif contenant tous les en-têtes HTTP.

Exemples

Exemple #1 Exemple avec nsapi_request_headers()

<?php
$headers = nsapi_request_headers();

foreach ($headers as $header => $value) {
  echo "$header: $value <br />\n";
}
?>


Lit tous les en-têtes de réponse HTTP sur Netscape serveur

  • « nsapi_request_headers
  • nsapi_virtual »
  • PHP Manual
  • Fonctions NSAPI
  • Lit tous les en-têtes de réponse HTTP sur Netscape serveur

nsapi_response_headers

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

nsapi_response_headers — Lit tous les en-têtes de réponse HTTP sur Netscape serveur

Description

array nsapi_response_headers ( void )

nsapi_response_headers() lit tous les en-têtes de réponse HTTP sur Netscape serveur.

Valeurs de retour

Retourne un tableau associatif contenant tous les en-têtes de réponse NSAPI.

Voir aussi

  • nsapi_request_headers() - Lit tous les en-têtes de requête HTTP sur un serveur Netscape
  • headers_sent() - Indique si les en-têtes HTTP ont déjà été envoyés


Effectue une sous-requête NSAPI

  • « nsapi_response_headers
  • Extensions sur les Sessions »
  • PHP Manual
  • Fonctions NSAPI
  • Effectue une sous-requête NSAPI

nsapi_virtual

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

nsapi_virtual — Effectue une sous-requête NSAPI

Description

bool nsapi_virtual ( string $uri )

virtual() est une fonction spécifique NSAPI, qui est l'équivalent de <!--#include virtual...--> en SSI (fichiers .shtml). Elle effectue une sous-requête NSAPI. C'est pratique pour inclure des scripts CGI ou .shtml ou d'autres choses que vous voulez faire analyser par le serveur web.

Pour exécuter une sous-requête, tous les buffers doivent être vidés vers le navigateur, ainsi que les en-têtes.

Vous ne pouvez pas faire de requêtes récursives avec cette fonction, vers un autre script PHP. Si vous voulez inclure des scripts PHP utilisez la fonction include ou require.

Note:

Cette fonction dépend d'une fonctionnalité non documentée de Netscape/iPlanet/Sun. Utilisez phpinfo() pour vérifier si elle est disponible. En environnement Unix, cela devrait toujours fonctionner, sous Windows, cela dépend du nom du fichier ns-httpdXX.dll.

Lisez la note à propos des sous-requêtes dans la section NSAPI (UNIX, Windows) si vous avez ce problème.

Liste de paramètres

uri

L'URI du script.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Extensions sur les Sessions

  • Msession — Fonctions sur le gestionnaire de session Mohawk
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Msession
  • Sessions — Gestion des sessions
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Progression d'un téléchargement en session
    • Sessions et sécurité
    • Fonctions Session
    • SessionHandler — La classe SessionHandler
    • SessionHandlerInterface — L'interface SessionHandlerInterface
  • Session PgSQL — Sauvegarde d'Identifiant de session dans PostgreSQL
    • Introduction
    • Installation/Configuration
    • Définitions de Table
    • Constantes pré-définies
    • Session PgSQL Fonctions


Fonctions sur le gestionnaire de session Mohawk

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Msession
    • msession_connect — Ouvre la connexion au serveur msession
    • msession_count — Compte le nombre de sessions
    • msession_create — Crée une session
    • msession_destroy — Détruit une session
    • msession_disconnect — Ferme la connexion au serveur msession
    • msession_find — Trouve toutes les sessions avec un nom et une valeur
    • msession_get_array — Lit un tableau de variables msession
    • msession_get_data — Lit les données de la session
    • msession_get — Lit une valeur dans une session
    • msession_inc — Incrémente une valeur dans une session
    • msession_list — Liste toutes les sessions
    • msession_listvar — Liste les sessions contenant une variable
    • msession_lock — Verrouille une session
    • msession_plugin — Appel une fonction d'échappement dans les plugins de personnalité msession
    • msession_randstr — Lit une chaîne aléatoire
    • msession_set_array — Définit les variables msession depuis un tableau
    • msession_set_data — Définit les données de session
    • msession_set — Modifie une valeur dans la session
    • msession_timeout — Lit et/ou modifie la durée de vie d'une session
    • msession_uniq — Récupère un identifiant unique
    • msession_unlock — Déverrouille une session


Introduction

msession est une interface avec un démon de sessions rapides, qui permet de gérer les sessions localement ou à distance. Il est conçu pour fournir une gestion de sessions cohérente pour une ferme de serveurs PHP. Plus d'informations sur les msession et le démon sont disponibles sur le site » http://www.mohawksoft.org/?q=node/8.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.3.


Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/msession.

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.3


  • « Types de ressources
  • Fonctions Msession »
  • PHP Manual
  • Msession
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions Msession

Sommaire

  • msession_connect — Ouvre la connexion au serveur msession
  • msession_count — Compte le nombre de sessions
  • msession_create — Crée une session
  • msession_destroy — Détruit une session
  • msession_disconnect — Ferme la connexion au serveur msession
  • msession_find — Trouve toutes les sessions avec un nom et une valeur
  • msession_get_array — Lit un tableau de variables msession
  • msession_get_data — Lit les données de la session
  • msession_get — Lit une valeur dans une session
  • msession_inc — Incrémente une valeur dans une session
  • msession_list — Liste toutes les sessions
  • msession_listvar — Liste les sessions contenant une variable
  • msession_lock — Verrouille une session
  • msession_plugin — Appel une fonction d'échappement dans les plugins de personnalité msession
  • msession_randstr — Lit une chaîne aléatoire
  • msession_set_array — Définit les variables msession depuis un tableau
  • msession_set_data — Définit les données de session
  • msession_set — Modifie une valeur dans la session
  • msession_timeout — Lit et/ou modifie la durée de vie d'une session
  • msession_uniq — Récupère un identifiant unique
  • msession_unlock — Déverrouille une session


Ouvre la connexion au serveur msession

  • « Fonctions Msession
  • msession_count »
  • PHP Manual
  • Fonctions Msession
  • Ouvre la connexion au serveur msession

msession_connect

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_connect — Ouvre la connexion au serveur msession

Description

bool msession_connect ( string $host , string $port )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Compte le nombre de sessions

  • « msession_connect
  • msession_create »
  • PHP Manual
  • Fonctions Msession
  • Compte le nombre de sessions

msession_count

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_count — Compte le nombre de sessions

Description

int msession_count ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Crée une session

  • « msession_count
  • msession_destroy »
  • PHP Manual
  • Fonctions Msession
  • Crée une session

msession_create

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_create — Crée une session

Description

bool msession_create ( string $session [, string $classname [, string $data ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Détruit une session

  • « msession_create
  • msession_disconnect »
  • PHP Manual
  • Fonctions Msession
  • Détruit une session

msession_destroy

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_destroy — Détruit une session

Description

bool msession_destroy ( string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Ferme la connexion au serveur msession

  • « msession_destroy
  • msession_find »
  • PHP Manual
  • Fonctions Msession
  • Ferme la connexion au serveur msession

msession_disconnect

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_disconnect — Ferme la connexion au serveur msession

Description

void msession_disconnect ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Trouve toutes les sessions avec un nom et une valeur

  • « msession_disconnect
  • msession_get_array »
  • PHP Manual
  • Fonctions Msession
  • Trouve toutes les sessions avec un nom et une valeur

msession_find

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_find — Trouve toutes les sessions avec un nom et une valeur

Description

array msession_find ( string $name , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Lit un tableau de variables msession

  • « msession_find
  • msession_get_data »
  • PHP Manual
  • Fonctions Msession
  • Lit un tableau de variables msession

msession_get_array

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_get_array — Lit un tableau de variables msession

Description

array msession_get_array ( string $session )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Lit les données de la session

  • « msession_get_array
  • msession_get »
  • PHP Manual
  • Fonctions Msession
  • Lit les données de la session

msession_get_data

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_get_data — Lit les données de la session

Description

string msession_get_data ( string $session )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Lit une valeur dans une session

  • « msession_get_data
  • msession_inc »
  • PHP Manual
  • Fonctions Msession
  • Lit une valeur dans une session

msession_get

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_get — Lit une valeur dans une session

Description

string msession_get ( string $session , string $name , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Incrémente une valeur dans une session

  • « msession_get
  • msession_list »
  • PHP Manual
  • Fonctions Msession
  • Incrémente une valeur dans une session

msession_inc

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_inc — Incrémente une valeur dans une session

Description

string msession_inc ( string $session , string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Liste toutes les sessions

  • « msession_inc
  • msession_listvar »
  • PHP Manual
  • Fonctions Msession
  • Liste toutes les sessions

msession_list

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_list — Liste toutes les sessions

Description

array msession_list ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Liste les sessions contenant une variable

  • « msession_list
  • msession_lock »
  • PHP Manual
  • Fonctions Msession
  • Liste les sessions contenant une variable

msession_listvar

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_listvar — Liste les sessions contenant une variable

Description

array msession_listvar ( string $name )

Utilisée pour rechercher les sessions ayant des attributs communs.

Liste de paramètres

name

Le nom à chercher.

Valeurs de retour

Retourne un tableau associatif des valeurs que prend la variable de session name dans les différentes sessions en cours.


Verrouille une session

  • « msession_listvar
  • msession_plugin »
  • PHP Manual
  • Fonctions Msession
  • Verrouille une session

msession_lock

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_lock — Verrouille une session

Description

int msession_lock ( string $name )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Appel une fonction d'échappement dans les plugins de personnalité msession

  • « msession_lock
  • msession_randstr »
  • PHP Manual
  • Fonctions Msession
  • Appel une fonction d'échappement dans les plugins de personnalité msession

msession_plugin

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_plugin — Appel une fonction d'échappement dans les plugins de personnalité msession

Description

string msession_plugin ( string $session , string $val [, string $param ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Lit une chaîne aléatoire

  • « msession_plugin
  • msession_set_array »
  • PHP Manual
  • Fonctions Msession
  • Lit une chaîne aléatoire

msession_randstr

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_randstr — Lit une chaîne aléatoire

Description

string msession_randstr ( int $param )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Définit les variables msession depuis un tableau

  • « msession_randstr
  • msession_set_data »
  • PHP Manual
  • Fonctions Msession
  • Définit les variables msession depuis un tableau

msession_set_array

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_set_array — Définit les variables msession depuis un tableau

Description

void msession_set_array ( string $session , array $tuples )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Définit les données de session

  • « msession_set_array
  • msession_set »
  • PHP Manual
  • Fonctions Msession
  • Définit les données de session

msession_set_data

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_set_data — Définit les données de session

Description

bool msession_set_data ( string $session , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Modifie une valeur dans la session

  • « msession_set_data
  • msession_timeout »
  • PHP Manual
  • Fonctions Msession
  • Modifie une valeur dans la session

msession_set

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_set — Modifie une valeur dans la session

Description

bool msession_set ( string $session , string $name , string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Lit et/ou modifie la durée de vie d'une session

  • « msession_set
  • msession_uniq »
  • PHP Manual
  • Fonctions Msession
  • Lit et/ou modifie la durée de vie d'une session

msession_timeout

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_timeout — Lit et/ou modifie la durée de vie d'une session

Description

int msession_timeout ( string $session [, int $param ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Récupère un identifiant unique

  • « msession_timeout
  • msession_unlock »
  • PHP Manual
  • Fonctions Msession
  • Récupère un identifiant unique

msession_uniq

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_uniq — Récupère un identifiant unique

Description

string msession_uniq ( int $param [, string $classname [, string $data ]] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Déverrouille une session

  • « msession_uniq
  • Sessions »
  • PHP Manual
  • Fonctions Msession
  • Déverrouille une session

msession_unlock

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_unlock — Déverrouille une session

Description

int msession_unlock ( string $session , int $key )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Gestion des sessions

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
    • Passer l'identifiant de session (session ID)
    • Gestion personnalisée des sessions
  • Progression d'un téléchargement en session
  • Sessions et sécurité
  • Fonctions Session
    • session_abort — Abandonne les changements sur le tableau de session et termine la session
    • session_cache_expire — Retourne la configuration actuelle du délai d'expiration du cache
    • session_cache_limiter — Lit et/ou modifie le limiteur de cache de session
    • session_commit — Alias de session_write_close
    • session_create_id — Create new session id
    • session_decode — Décode les données encodées de session
    • session_destroy — Détruit une session
    • session_encode — Encode les données de session
    • session_gc — Perform session data garbage collection
    • session_get_cookie_params — Lit la configuration du cookie de session
    • session_id — Lit et/ou modifie l'identifiant courant de session
    • session_is_registered — Vérifie si une variable est enregistrée dans la session
    • session_module_name — Lit et/ou modifie le module de session courant
    • session_name — Lit et/ou modifie le nom de la session
    • session_regenerate_id — Remplace l'identifiant de session courant par un nouveau
    • session_register_shutdown — Fonction de fermeture de session
    • session_register — Enregistre une variable globale dans une session
    • session_reset — Réinitialise le tableau de session avec les valeurs originales
    • session_save_path — Lit et/ou modifie le chemin de sauvegarde des sessions
    • session_set_cookie_params — Modifie les paramètres du cookie de session
    • session_set_save_handler — Configure les fonctions de stockage de sessions
    • session_start — Démarre une nouvelle session ou reprend une session existante
    • session_status — Détermine le statut de la session courante
    • session_unregister — Supprime une variable de la session
    • session_unset — Détruit toutes les variables d'une session
    • session_write_close — Écrit les données de session et ferme la session
  • SessionHandler — La classe SessionHandler
    • SessionHandler::close — Ferme la session
    • SessionHandler::create_sid — Retourne un nouvel ID de session
    • SessionHandler::destroy — Détruit une session
    • SessionHandler::gc — Nettoie les anciennes sessions
    • SessionHandler::open — Initialise une session
    • SessionHandler::read — Lit les données de session
    • SessionHandler::write — Ecrit des données dans la session
  • SessionHandlerInterface — L'interface SessionHandlerInterface
    • SessionHandlerInterface::close — Ferme la session
    • SessionHandlerInterface::destroy — Détruit une session
    • SessionHandlerInterface::gc — Nettoie les vieilles sessions
    • SessionHandlerInterface::open — Initialise la session
    • SessionHandlerInterface::read — Lit les données de session
    • SessionHandlerInterface::write — Ecrit les données de session


Introduction

Le support des sessions de PHP est un moyen de préserver des données entre plusieurs accès.

Chaque visiteur accédant à votre page web se voit assigner un identifiant unique, appelé "identifiant de session". Il peut être stocké soit dans un cookie, soit propagé dans l'URL.

Le support des sessions vous permet de stocker des données entre les requêtes dans le tableau super-globale $_SESSION. Lorsqu'un visiteur accède à votre site, PHP va vérifier automatiquement (si session.auto_start est activé) ou sur demande (explicitement avec session_start()) s'il existe une session du même nom. Si c'est le cas, l'environnement précédemment sauvé sera recréé.

Attention

Si vous activez session.auto_start alors le seul moyen de mettre des objets en session est de charger les définitions de classe avec auto_prepend_file dans lequel vous chargez les définitions dont vous avez besoin, ou bien vous devrez utiliser serialize() sur votre objet, et unserialize() pour le récupérer.

La variable $_SESSION (et toutes les variables enregistrées) sont linéarisées en interne par PHP en utilisant le gestionnaire de linéarisation spécifié par l'option de configuration session.serialize_handler, après l'exécution du script PHP. Les variables qui sont indéfinies sont marquées comme telles. Lors des accès ultérieurs, elles ne seront pas définies, jusqu'à ce que l'utilisateur le fasse.

Avertissement

En raison du fait que les données de session sont linéarisées, les variables de type resource ne peuvent être stockées dans une session.

Les gestionnaires de linéarisation (php et php_binary) héritent des limitations de register_globals. Aussi, les index numériques ou les index sous forme de chaînes de caractères contenant des caractères spéciaux (| et !) ne peuvent pas être utilisés. Le fait de les utiliser génèrera des erreurs en fin de script. php_serialize n'a pas ce genre de limitations. php_serialize est disponible depuis PHP 5.5.4.

Note:

Notez que lorsque vous travaillez avec les sessions, un enregistrement dans la session ne sera pas créé tant que la variable ne sera pas enregistrée en utilisant la fonction session_register() ou en ajoutant une clé à la variable super-globale $_SESSION. Cela n'est vrai que si vous avez débuté une session en appelant la fonction session_start().

Note:

PHP 5.2.2 a introduit une fonctionnalité non documentée pour stocker dans le dossier "/tmp" même si open_basedir est activé, et "/tmp" n'est pas explicitement ajouté dans les chemins autorisés. Cette fonctionnalité a été retirée de PHP depuis PHP 5.3.0.


Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Note:

Optionnellement, vous pouvez utiliser l'allocation de mémoire partagée (mm), développé par Ralf S.Engelschall, pour stocker votre session. Vous devez télécharger » mm et l'installer. Cette option n'est pas disponible pour les environnements Windows. Notez que le module de stockage de session mm ne garantit pas les verrous de sessions en cas d'accès multiples à la même session. Il peut être plus approprié d'utiliser un système de fichiers basé en mémoire partagée (comme tmpfs sur Solaris/Linux ou /dev/md sur BSD) pour stocker les sessions dans des fichiers, car ils seront proprement verrouillés. Les données de session sont stockées en mémoire ainsi, elles seront effacées lors du redémarrage du serveur web.


Installation

Le support des sessions est activé par défaut. Si vous souhaitez l'exclure de PHP, vous devez utiliser l'option --disable-session lors de l'exécution du script de configuration. Pour utiliser la mémoire vive pour le stockage des sessions, compilez PHP avec l'option --with-mm[=DIR] .

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note:

Par défaut, toutes les données relatives à une session particulière seront stockées dans un fichier du répertoire spécifié par session.save_path dans les options du fichier php.ini. Un fichier pour chaque session sera créé. Cela est dû au fait qu'une session est ouverte (un fichier est créé) mais aucune donnée n'est écrite dans ce fichier. Notez que ce comportement est un effet des limitations d'utilisation du système de fichiers et il est possible qu'un gestionnaire de session personnalisé (par exemple, un qui utilise une base de données) ne garde aucune trace des sessions où aucune donnée n'y a été enregistrée.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour les sessions
Nom | Défaut | Modifiable | Historique
session.save_path | "" | PHP_INI_ALL |
session.name | "PHPSESSID" | PHP_INI_ALL |
session.save_handler | "files" | PHP_INI_ALL |
session.auto_start | "0" | PHP_INI_PERDIR |
session.gc_probability | "1" | PHP_INI_ALL |
session.gc_divisor | "100" | PHP_INI_ALL | Disponible depuis PHP 4.3.2.
session.gc_maxlifetime | "1440" | PHP_INI_ALL |
session.serialize_handler | "php" | PHP_INI_ALL |
session.cookie_lifetime | "0" | PHP_INI_ALL |
session.cookie_path | "/" | PHP_INI_ALL |
session.cookie_domain | "" | PHP_INI_ALL |
session.cookie_secure | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.4.
session.cookie_httponly | "" | PHP_INI_ALL | Disponible depuis PHP 5.2.0.
session.use_strict_mode | "0" | PHP_INI_ALL | Disponible depuis PHP 5.5.2.
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
session.referer_check | "" | PHP_INI_ALL |
session.entropy_file | "" | PHP_INI_ALL |
session.entropy_length | "0" | PHP_INI_ALL |
session.cache_limiter | "nocache" | PHP_INI_ALL |
session.cache_expire | "180" | PHP_INI_ALL |
session.use_trans_sid | "0" | PHP_INI_ALL | PHP_INI_ALL en PHP <= 4.2.3. PHP_INI_PERDIR en PHP < 5. Disponible depuis PHP 4.0.3.
session.bug_compat_42 | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. Supprimé en PHP 5.4.0.
session.bug_compat_warn | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. Supprimé en PHP 5.4.0.
session.hash_function | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
session.hash_bits_per_character | "4" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Disponible depuis PHP 4.0.4.
session.upload_progress.enabled | "1" | PHP_INI_PERDIR | Disponible depuis PHP PHP 5.4.0.
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR | Disponible depuis PHP PHP 5.4.0.
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR | Disponible depuis PHP PHP 5.4.0.
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR | Disponible depuis PHP PHP 5.4.0.
session.upload_progress.freq | "1%" | PHP_INI_PERDIR | Disponible depuis PHP PHP 5.4.0.
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR | Disponible depuis PHP PHP 5.4.0.
session.lazy_write | "1" | PHP_INI_ALL | Disponible depuis PHP 7.0.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Le système de sessions dispose d'un grand nombre de directives dans le fichier php.ini. En voici une présentation :

session.save_handler string
Définit le nom du gestionnaire de session qui est utilisé pour stocker et relire les données. Par défaut, c'est le système intégré par fichiers : files. Noter que les extensions individuelles doivent enregistrer leurs propres gestionnaires de session. Voir aussi session_set_save_handler().
session.save_path string
Définit le chemin qui doit être passé au gestionnaire de sauvegarde. Si vous décidez de choisir le gestionnaire par défaut (par fichiers), cet argument sera utilisé comme dossier de sauvegarde des sessions. Voir aussi session_save_path().

Il y a un argument optionnel N à cette directive qui détermine la profondeur de répertoires où votre fichier de session sera stocké. Par exemple, si vous définissez '5;/tmp', votre fichier sera situé dans /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If. Si vous voulez utiliser N, vous devez créer tous ces répertoires avant de les utiliser. Un petit script shell existe dans ext/session pour réaliser ces créations et il se nomme mod_files.sh, et sa version Windows porte le nom mod_files.bat. Notez également que si N est utilisé et est supérieur à 0, alors la routine automatique gc (garbage collection) ne sera pas exécutée ; voir une copie de php.ini pour plus d'informations. Également, si vous utilisez N, assurez-vous d'entourer session.save_path de "doubles guillemets" car le séparateur (;) est également utilisé pour les commentaires dans php.ini.

Le module de stockage de fichiers crée des fichiers en utilisant le mode 600 par défaut. Ce mode par défaut peut être modifié en utilisant l'argument optionnel MODE : N;MODE;/path où MODE est la représentation octale du mode. Le fait de définir l'argument MODE n'affecte pas le processus umask.

Avertissement

Si vous laissez cette option configurée avec un dossier accessible en lecture à tout le monde, comme /tmp (par défaut), les autres utilisateurs pourront exploiter ces sessions en obtenant la liste de fichiers dans ce dossier.

Attention

Lors de l'utilisation de l'argument optionnel N déterminant la profondeur de répertoires, voir plus haut, veuillez noter que l'utilisation d'une valeur supérieure à 1 ou 2 n'est pas approprié pour la majorité des sites à cause du nombre de dossiers requis : par exemple, une valeur de 3 implique que 64^3 dossiers existent sur le système de fichiers ce qui implique potentiellement un grand nombre d'espaces et d'inodes gaspillés.

N'utilisez une valeur de N supérieure à 2 uniquement si vous êtes certain que c'est nécessaire pour votre site.

Note: Avant PHP 4.3.6, les utilisateurs de Windows doivent changer cette valeur de variable pour que les fonctions de sessions de PHP fonctionnent. Indiquez un chemin de dossier valide, par exemple : c:/temp.

session.name string
Spécifie le nom de la session, qui sera utilisé comme nom de cookie. Il ne doit contenir que des caractères alphanumériques. Par défaut, c'est PHPSESSID. Voir aussi session_name().
session.auto_start booléen
Spécifie si le module de session doit démarrer automatiquement au début de chaque script PHP. Par défaut, c'est 0 (désactivé).
session.serialize_handler string
Définit le nom du gestionnaire qui est utilisé pour linéariser et délinéariser les données. Le format de linéarisation PHP (nommé php_serialize), les formats internes à PHP (nommés php et php_binary) et WDDX (nommé wddx) sont supportés. WDDX est seulement disponible, si PHP a été compilé avec l'option WDDX. php_serialize est disponible depuis PHP 5.5.4. php_serialize utilise les fonctions de linéraisation/délinéarisation en interne, et n'a pas les limitations que php et php_binary ont. Les anciens gestionnaires de linéarisation ne peuvent pas stocker d'index numérique, ni d'index sous forme de chaînes qui contiennent des caractères spéciaux (| et !) en $_SESSION. Utilisez php_serialize pour éviter ce genre d'erreur en fin de script. Par défaut, c'est php.
session.gc_probability entier
Spécifie la probabilité, exprimée en pourcentage, en conjonction de session.gc_divisor, que la routine gc (garbage collection) soit démarrée à chaque requête. La valeur par défaut est 1. Voir session.gc_divisor pour plus de détails.
session.gc_divisor entier
session.gc_divisor en conjonction avec session.gc_probability définit la probabilité que la routine gc (garbage collection) soit démarrée à chaque début de session. La probabilité est calculée en utilisant gc_probability/gc_divisor, par exemple 1/100 signifie qu'il y a 1 % de chance pour que la routine gc démarre à chaque requête. La valeur par défaut est 100.
session.gc_maxlifetime entier
Spécifie la durée de vie des données sur le serveur, en nombre de secondes. Après cette durée, les données seront considérées comme obsolètes, et peuvent potentiellement être supprimées. Les données peuvent devenir obsolètes lors du démarrage de la session (suivant session.gc_probability et session.gc_divisor).

Note:

Si des scripts différents ont des valeurs différentes de session.gc_maxlifetime mais partagent le même endroit pour y stocker les données de session, alors, le script dont la valeur est la plus petite effacera la donnée. Dans ce cas, utilisez cette directive conjointement avec session.save_path.

session.referer_check entier
Contient une sous-chaîne que vous souhaitez retrouver dans tous les en-têtes HTTP Referer. Si cet en-tête a été envoyé par le client et que la sous-chaîne n'a pas été trouvée, l'identifiant de session sera considéré comme invalide. Par défaut, cette option est une chaîne vide.
session.entropy_file string
Est un chemin jusqu'à une source externe (un fichier), qui sera utilisée comme source additionnelle d'entropie pour la création de l'identifiant de session. Des exemples valides sont /dev/random et /dev/urandom, qui sont disponibles sur tous les systèmes Unix. Cette fonctionnalité est supportée sous Windows depuis PHP 5.3.3. Le fait de définir session.entropy_length à une valeur différente de zéro fera que PHP utilisera l'API aléatoire de Windows comme source d'entropie.

Note: Depuis PHP 5.4.0, session.entropy_file vaut par défaut /dev/urandom ou /dev/arandom s'il est disponible. En PHP 5.3.0, cette directive est laissée vide par défaut.

session.entropy_length entier
Spécifie le nombre d'octets qui seront lus dans le fichier défini ci-dessus. Par défaut, il vaut 0, c'est-à-dire inactif.
session.use_strict_mode boolean
session.use_strict_mode spécifie si le module doit utiliser le mode d'identifiant de session strict. Si ce mode est activé, le module ne va pas accepter des identifiants de session non-initialisée. Si un identifiant de session non-initialisée est envoyé depuis le navigateur, un nouvel identifiant de session sera envoyé au navigateur. Les applications sont protégées des fixations de session via l'utilisation du mode strict des sessions. Par défaut, vaut 0 (désactivé).
session.use_cookies booléen
Spécifie si le module utilisera les cookies pour stocker l'id de session côté client. Par défaut, il vaut 1, c'est-à-dire actif.
session.use_only_cookies booléen
Spécifie si le module doit utiliser seulement les cookies pour stocker les identifiants de sessions du côté du navigateur. En l'activant, vous éviterez les attaques qui utilisent des identifiants de sessions dans les URL. Cette configuration a été ajoutée en PHP 4.3.0. Par défaut, vaut 1 (activé) depuis PHP 5.3.0.
session.cookie_lifetime entier
Spécifie la durée de vie du cookie en secondes. La valeur de 0 signifie : "Jusqu'à ce que le navigateur soit éteint". La valeur par défaut est 0. Voir aussi session_get_cookie_params() et session_set_cookie_params().

Note:

Le timestamp représentant la durée de vie du cookie est défini par rapport au temps du serveur, qui n'est pas forcément le même que le temps du navigateur.

session.cookie_path string
Spécifie le chemin utilisé lors de la création du cookie. Par défaut, il vaut /. Voir aussi session_get_cookie_params() et session_set_cookie_params().
session.cookie_domain string
Spécifie le domaine utilisé lors de la création du cookie. Par défaut, il ne vaut rien, cela signifie que c'est le nom de l'hôte du serveur qui génère le cookie en accord avec les spécifications sur les cookies. Voir aussi session_get_cookie_params() et session_set_cookie_params().
session.cookie_secure booléen
Spécifie que les cookies ne doivent être émis que sur des connexions sécurisées. Par défaut, cette option est à off. Cette option a été ajoutée en PHP 4.0.4. Voir aussi session_get_cookie_params() et session_set_cookie_params().
session.cookie_httponly booléen
Marque le cookie pour qu'il ne soit accessible que via le protocole HTTP. Cela signifie que le cookie ne sera pas accessible par les langage de script, comme Javascript. Cette configuration permet de limiter les attaques comme les attaques XSS (bien qu'elle n'est pas supporté par tous les navigateurs).
session.cache_limiter string
Spécifie le type de contrôle de cache utilisé pour les pages avec sessions. Les valeurs possibles sont : nocache, private, private_no_expire, public. Par défaut, il vaut nocache. Voir aussi session_cache_limiter() pour connaître la signification de ces valeurs.
session.cache_expire entier
Spécifie la durée de vie des données de sessions, en minutes. Cette option n'a aucune conséquence sur le contrôle de cache. Par défaut, il vaut 180 (3 heures). Voir aussi session_cache_expire().
session.use_trans_sid booléen
Spécifie si le support du SID est transparent ou pas. Par défaut vaut 0 (désactivé).

Note: Le système de gestion des sessions par URL pose un risque supplémentaire de sécurité : un utilisateur peut envoyer son URL avec l'identifiant de session par email à un ami, ou bien le mettre dans ses signets. Cela diffusera alors l'identifiant de session.

session.bug_compat_42 booléen
Les versions de PHP antérieures à la version 4.2.3 disposaient d'une fonctionnalité/bogue non documentée, qui vous permettait d'initialiser une variable de session dans le contexte global, même si register_globals était désactivé. PHP 4.3.0 et plus récent vous préviendra de l'utilisation de cette fonctionnalité si vous avez aussi activé session.bug_compat_warn. Cette fonctionnalité/bogue peut être désactivée en désactivant cette directive.
session.bug_compat_warn booléen
Les versions de PHP antérieures à la version 4.2.3 disposaient d'une fonctionnalité/bogue non documentée, qui vous permettait d'initialiser une variable de session dans le contexte global, même si register_globals était désactivé. PHP 4.3.0 et plus récent vous préviendra de l'utilisation de cette fonctionnalité si vous avez activé session.bug_compat_42 et session.bug_compat_warn.
session.hash_function mixed
session.hash_function vous permet de spécifier la fonction de hachage à utiliser pour générer les identifiants de session. '0' signifie MD5 (128 bits) et '1' signifie SHA-1 (160 bits).

Depuis PHP 5.3.0, il est également possible de spécifier n'importe quel algorithme fourni par l'extension hash (s'il est disponible), comme sha512 ou whirlpool. Une liste complète d'algorithmes peut être obtenue avec la fonction hash_algos().

Note:

Disponible depuis PHP 5.

session.hash_bits_per_character entier
session.hash_bits_per_character vous permet de définir le nombre de bits utilisés pour chaque caractère lors des conversions des données binaires en éléments lisibles. Les valeurs possibles sont '4' (0-9, a-f), '5' (0-9, a-v), et '6' (0-9, a-z, A-Z, "-", ",").

Note:

Disponible depuis PHP 5.

session.url_rewriter.tags string
Spécifie quelles sont les balises HTML qui doivent être réécrites si le support transparent du SID est activé. Par défaut, il vaut a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=.

Note: Si vous voulez vous conformer aux spécifications HTML/XHTML strictes, supprimez l'entrée form et utilisez le tag <fieldset> autour de votre balise form.

session.upload_progress.enabled boolean
Active la surveillance de la progression d'un téléchargement, en peuplant la variable $_SESSION. Par défaut, vaut 1 (activé).
session.upload_progress.cleanup boolean
Nettoie les informations de progression dès que toutes les données POST ont été lues (i.e. le téléchargement est terminé). Par défaut, vaut 1 (activé).

Note: Il est vivement recommandé de conserver active cette fonctionnalité.

session.upload_progress.prefix string
Un préfixe utilisé pour la clé relative à la progression du téléchargement dans le tableau $_SESSION. Cette clé sera concaténé avec la valeur de $_POST[ini_get("session.upload_progress.name")] pour fournir un index unique. Par défaut, vaut "upload_progress_".
session.upload_progress.name string
Le nom de la clé à utiliser dans le tableau $_SESSION pour y stocker les informations de progression. Voir aussi session.upload_progress.prefix. Si $_POST[ini_get("session.upload_progress.name")] n'est pas fourni ou disponible, la progression d'un téléchargement ne sera pas enregistrée. Par défaut, vaut "PHP_SESSION_UPLOAD_PROGRESS".
session.upload_progress.freq mixed
Définit le nombre de fois où les informations de progression de téléchargement doivent être mises à jour. Peut être défini en octets (i.e. "mettre à jour les informations de progression de téléchargement tous les 100 octets), ou en pourcentage (i.e. "mettre à jour les informations de progression de téléchargement tous les 1% de réception du poids total du fichier"). Par défaut, vaut "1%".
session.upload_progress.min_freq integer
Le délai minimal entre les mises à jour, en seconde. Par défaut, vaut "1" (une seconde).
session.lazy_write boolean
session.lazy_write, quand défini à 1, cela signifie que la donnée de session ne sera réécrite uniquement si celle ci change. Par défaut 1, activé.

L'option register_globals influence le comportement des sessions, leur stockage et leur restauration.

La progression de téléchargement ne sera pas enregistrée tant que session.upload_progress.enabled n'est pas actif, et que la variable $_POST[ini_get("session.upload_progress.name")] n'est pas définie. Voir la progression de téléchargement de session pour plus d'informations sur cette fonctionnalité.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SID (chaîne de caractères)
Constante contenant le nom de la session et l'identifiant en cours, sous la forme "name=ID" ou une chaîne vide si l'identifiant de session a été défini dans un cookie de session. C'est la même valeur que celle retournée par la fonction session_id().
PHP_SESSION_DISABLED (entier)
Depuis PHP 5.4.0. Valeur retournée par session_status() si la session est désactivée.
PHP_SESSION_NONE (entier)
Depuis PHP 5.4.0. Valeur retournée par session_status() si la session est activée, mais que la session n'existe pas.
PHP_SESSION_ACTIVE (entier)
Depuis PHP 5.4.0. Valeur retournée par session_status() si la session est activée, et que la session existe.


Exemples

Sommaire

  • Utilisation simple
  • Passer l'identifiant de session (session ID)
  • Gestion personnalisée des sessions


Utilisation simple

Les sessions sont un moyen simple de stocker des données individuelles pour chaque utilisateur en utilisant un identifiant de session unique. Elles peuvent être utilisées pour faire persister des informations entre plusieurs pages. Les identifiants de session sont normalement envoyés au navigateur via des cookies de session, et l'identifiant est utilisé pour récupérer les données existantes de la session. L'absence d'un identifiant ou d'un cookie de session indique à PHP de créer une nouvelle session, et génère ainsi un nouvel identifiant de session.

Les sessions suivent une cinématique simple. Lorsqu'une session est démarrée, PHP va soit récupérer une session existante en utilisant l'identifiant de session passé (habituellement depuis un cookie de session) ou si aucun identifiant de session n'est passé, il va créer une nouvelle session. PHP va ainsi peupler la variable superglobale $_SESSION avec toutes les données de session une fois la session démarrée. Lorsque PHP s'arrête, il va prendre automatiquement le contenu de la variable superglobale $_SESSION, le linéariser, et l'envoyer pour stockage au gestionnaire de sauvegarde de session.

Par défaut, PHP utilise en interne le gestionnaire de sauvegarde files qui est défini via la directive session.save_handler. Les données de session seront sauvegardées sur le serveur à l'endroit spécifié par la directive de configuration session.save_path.

Les sessions peuvent être démarrées manuellement en utilisant la fonction session_start(). Si la directive de configuration session.auto_start est définie à 1, une session démarrera automatiquement lors du début de la demande.

Les sessions s'arrêtent automatiquement lorsque PHP a terminé d'exécuter un script, mais peuvent être stoppées manuellement en utilisant la fonction session_write_close().

Exemple #1 Enregistrer une variable avec $_SESSION.

<?php
session_start();
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}
?>

Exemple #2 Retirer une variable de session avec la superglobale $_SESSION.

<?php
session_start();
unset($_SESSION['count']);
?>

Attention

N'utilisez PAS la fonction unset() avec $_SESSION sous la forme unset($_SESSION) sinon, cela rendra impossible l'enregistrement de données dans la session en utilisant la super-globale $_SESSION.

Avertissement

Vous ne pouvez pas utiliser les références sur des variables de session car il n'y a aucune manière faisable de restaurer une référence vers une autre variable.

Avertissement

register_globals va écraser les variables du contexte global dont les noms sont identiques avec les variables de session. Reportez-vous à la documentation sur l'utilisation de l'enregistrement global pour plus de détails.

Note:

Les sessions basées sur un fichier (par défaut en PHP) verrouille le fichier de session lorsqu'une session est ouverte via la fonction session_start() ou implicitement via la directive de configuration session.auto_start. Une fois verrouillée, aucun autre script ne peut accéder au même fichier de session tant que la session n'a pas été fermée par le script l'ayant ouverte, ou tant que la fonction session_write_close() n'a pas été appelée.

Ceci peut être génant pour les sites Web utilisant AJAX et produisant plusieurs requêtes concurrentes. La façon la plus simple pour contourner ce problème est d'appeler la fonction session_write_close() dès lors que les modifications dans la session ont été effectuées, de préférence en début de script. Vous pouvez aussi utiliser un autre gestionnaire de session qui supporte la concurrence.


Passer l'identifiant de session (session ID)

Il y a deux méthodes de propagation de l'identifiant de session :

  • Cookies
  • Par URL

Le module de session supporte les deux méthodes. Les cookies sont optimaux, mais comme ils ne sont pas sûrs (tous les internautes ne les acceptent pas), ils ne sont pas fiables. La seconde méthode place l'identifiant de session directement dans les URL.

PHP est capable de faire cela de manière transparente, lorsqu'il est compilé avec l'option --enable-trans-sid. Si vous activez cette option et que l'option d'exécution session.use_trans_sid est activée, les URLs relatives seront modifiées pour contenir l'identifiant de session automatiquement.

Note:

L'option arg_separator.output de php.ini vous permet de personnaliser le séparateur d'arguments. Pour être complètement en accord avec les spécifications XHTML, spécifiez &amp; ici.

Alternativement, vous pouvez utiliser la constante SID qui est définie si la session a commencé. Si le client n'envoie pas un cookie de session approprié, il aura la forme session_name=session_id. Sinon, il vaudra une chaîne vide. Ainsi, vous pouvez dans tous les cas l'inclure dans l'URL.

L'exemple suivant vous montre comment enregistrer une variable et comment réaliser un lien correct avec une autre page, avec SID.

Exemple #1 Compter le nombre de passages d'un utilisateur sur une page

<?php

session_start();

if (empty($_SESSION['count'])) {
   $_SESSION['count'] = 1;
} else {
   $_SESSION['count']++;
}
?>

<p>
 Bonjour visiteur, vous avez vu cette page <?php echo $_SESSION['count']; ?> fois.
</p>

<p>
 Pour continuer, <a href="nextpage.php?<?php echo htmlspecialchars(SID); ?>">cliquez ici</a>.
</p>

La fonction htmlspecialchars() est utilisée lors de l'affichage du SID dans le but de contrer les attaques XSS.

L'affichage du SID, comme montré dans l'exemple ci-dessus, n'est pas nécessaire si --enable-trans-sid a été utilisé pour compiler PHP.

Note:

Les URL non-relatives sont considérées comme externes au site, et ne recevront pas le SID, car la fuite du SID vers un serveur différent présente un risque de sécurité important.


Gestion personnalisée des sessions

Pour implémenter un stockage en base de données, ou toute autre méthode, vous aurez besoin de la fonction session_set_save_handler() pour paramétrer vos propres fonctions de stockage. Depuis PHP 5.4.0, vous pouvez créer des gestionnaires de session en utilisant l'interface SessionHandlerInterface ou en étendant les gestionnaires internes de PHP en héritant de la classe SessionHandler.

Les fonctions de rappel précisées dans session_set_save_handler() sont des méthodes appelées par PHP pendant le cycle de vie de la session: open, read, write et close ainsi que les fonctions de ménage destroy pour supprimer une session et gc pour une collecte périodique des gabarits.

Ainsi, PHP a toujours besoin d'un gestionnaire de sessions. Par défaut il s'agit du gestionnaire interne 'files'. Un gestionnaire personnalisé peut être indiqué au moyen de session_set_save_handler(). D'autres gestionnaires alternatifs peuvent être proposés par des extensions PHP, comme sqlite, memcache et memcached et peuvent être utilisés via session.save_handler.

Lorsque la session démarre, PHP appelera en interne la fonction open du gestionnaire, suivie de read qui doit alors retourner une chaine encodée exactement comme elle a été passée lors du stockage. Une fois que la fonction de rappel de read a retourné sa chaine, PHP va alors la décoder et peupler la super-globale $_SESSION en conséquence.

Lorsque PHP se termine, (ou lorsque session_write_close() est appelée), il va en interne encoder le contenu de $_SESSION et le passer avec l'ID de session à la fonction write. Après write, PHP invoquera close.

Lorsqu'une session est détruite, PHP appelera destroy avec l'ID de session.

PHP appelera la fonction de rappel gc de temps en temps pour nettoyer les sessions expirées en fonction de leur temps de vie maximum. Cet appel devrait mener à la destruction des enregistrements dans le support de stockage qui n'ont été accédés depuis $lifetime.


Progression d'un téléchargement en session

Lorsque l'option de configuration session.upload_progress.enabled est active, PHP sera capable de traquer la progression d'un fichier en cours de téléchargement. Cette information n'est pas particulièrement utile pour la requête de téléchargement en tant que tel, mais pendant le téléchargement, une application peut envoyer une requête POST séparée (via XHR par exemple) pour vérifier le statut de ce téléchargement.

La progression de téléchargement sera disponible dans la variable super-global $_SESSION lorsque le téléchargement est en cours, et lors d'un envoi en méthode POST d'une variable du même nom que celui définit dans l'option de configuration INI session.upload_progress.name. Lorsque PHP détecte une requête POST de ce type, il remplira un tableau dans $_SESSION, où l'index est une valeur concaténée des options de configuration session.upload_progress.prefix et session.upload_progress.name. La clé est typiquement récupérée en lisant ces configurations INI, i.e.

<?php
$key = ini_get("session.upload_progress.prefix") . $_POST[ini_get("session.upload_progress.name")];
var_dump($_SESSION[$key]);
?>

Il est également possible d'annuler le téléchargement courant en définissant la clé $_SESSION[$key]["cancel_upload"] à la valeur TRUE. Lors du téléchargement de plusieurs fichiers dans la même requête, cette action n'annulera que le fichier actuellement en cours de téléchargement, ainsi que ceux en attente de téléchargement mais n'annulera pas les téléchargements terminés avec succès. Lorsqu'un téléchargement est annulé en utilisant cette méthode, la clé error du tableau $_FILES sera définie à UPLOAD_ERR_EXTENSION.

Les options de configuration INI session.upload_progress.freq et session.upload_progress.min_freq contrôlent la fréquence de mise à jour des informations de progression de téléchargement. Avec une configuration raisonnable de ces 2 options, la surcoût en terme de charge est quasi nul.

Exemple #1 Exemple

Exemple de structure du tableau contenant les informations de téléchargement.

<form action="upload.php" method="POST" enctype="multipart/form-data">
 <input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="123" />
 <input type="file" name="file1" />
 <input type="file" name="file2" />
 <input type="submit" />
</form>

Les données stockées en session ressembleront à :

<?php
$_SESSION["upload_progress_123"] = array(
 "start_time" => 1234567890,   // L'heure de la requête
 "content_length" => 57343257, // Longueur du contenu POST
 "bytes_processed" => 453489,  // Quantité d'octets reçus et traités
 "done" => false,              // true lorsque le gestionnaire POST a terminé, avec succès ou non
 "files" => array(
  0 => array(
   "field_name" => "file1",       // Nom du champ <input/>
   // Les 3 éléments suivants sont équivalents à ceux dans $_FILES
   "name" => "foo.avi",
   "tmp_name" => "/tmp/phpxxxxxx",
   "error" => 0,
   "done" => true,                // True lorsque le gestionnaire POST a terminé de gérer ce fichier
   "start_time" => 1234567890,    // L'heure de début de requête
   "bytes_processed" => 57343250, // Quantité d'octets reçus et traités pour ce fichier
  ),
  // Un autre fichier, en cours de téléchargement, dans la même requête
  1 => array(
   "field_name" => "file2",
   "name" => "bar.avi",
   "tmp_name" => NULL,
   "error" => 0,
   "done" => false,
   "start_time" => 1234567899,
   "bytes_processed" => 54554,
  ),
 )
);

Avertissement

La mise en mémoire tampon de la requête du serveur web doit être désactivée pour la bonne marche de cette fonctionalité, sinon PHP ne verra le fichier qu'une fois qu'il sera totalement téléchargé. Les serveurs comme Nginx sont connus pour mettre en mémoire tampon de grosses requêtes.


Sessions et sécurité

Lien externe : » Session fixation

La gestion des sessions HTTP est au coeur de la sécurité sur le Web. Des mesures d'atténuation doivent être prises en compte afin d'assurer la sécurité des sessions. Les développeurs doivent activer/utiliser les paramètres de configuration appropriés.

  • session.cookie_lifetime=0. La valeur 0 a une signification spéciale. Elle indique aux navigateurs de stocker les cookies dans un stockage permanent. Toutefois, lorsque le navigateur se ferme, le cookie contenant l'ID de session est supprimé immédiatement. Si le développeur définit une valeur différente de 0, il peut permettre à d'autres utilisateurs d'utiliser l'ID de session. La plupart des applications doivent utiliser 0 pour cette option. Si l'auto-identification est nécessaire, implémentez votre propre fonctionalité d'auto-identification sécurisée. N'utilisez surtout pas l'ID de session pour cela.
  • session.use_cookies=On et session.use_only_cookies=On. Malgré le fait que les cookies HTTP ont quelques problèmes, ils restent la façon privilégiée de gérer l'ID de session. N'utilisez que les cookies pour la gestion de l'ID de session lorsque c'est possible. La plupart des applications utilisent le cookie pour l'ID de session.
  • session.use_strict_mode=On. Cette option empêche le module de session d'utiliser un ID de session non initialisé. Dans d'autres termes, le module de session n'acceptera qu'un ID de session valide généré par le module de session. Il rejètera un ID de session fourni par les utilisateurs. Un injection d'ID de session peut être réalisé par un injection de cookie via Javascript de façon permanente ou temporaire. Lorsque la transparence de session est actif, l'ID de session peut être injecté via une chaîne de requête ou un paramètre de formulaire. Il n'y a aucune raison d'accepter un ID de session fourni par l'utilisateur, la plupart des applications ne doivent pas accepter des ID de session non initialisés fournis par l'utilisateur.
  • session.cookie_httponly=On. Désactive l'accès au cookie de session par Javascript. Cette option évite le vol de cookie par injection Javascript. Il est possible d'utiliser l'ID de session comme clé de protection CSRF, mais ce n'est pas recommandé. Par exemple, le source HTML peut être sauvegardé puis envoyé à d'autres utilisateurs. Pour une meilleure sécurité, le développeur ne doit pas écrire l'ID de session dans une page Web. La plupart des applications doivent utiliser l'attribut httponly pour le cookie contenant l'ID de session.
  • session.cookie_secure=On. Autorise l'accès au cookie contenant l'ID de session lorsque le protocole est HTTPS. Si votre site Web est un site Web uniquement accessible via HTTPS, vous devez activer cette option. L'utilisation de HSTS doit être considérée pour les sites Web uniquement accessible en HTTPS.
  • session.gc_maxlifetime=[le plus petit possible]. Le GC(Garbage Collector) est exécuté via un système probabiliste. Cette option ne garantie pas la suppression de vieilles sessions. Quelques modules de gestionnaire de session n'utilisent pas cette option. Raportez-vous à la documentation sur les gestionnaires de session pour plus de détails. Aussi, les développeurs ne peuvent utiliser cette option et il est recommandé de la définir à la plus petite valeur possible. Ajutez à la fois l'option session.gc_probability et l'option session.gc_divisor afin d'effacer les anciennes sessions à une fréquence appropriée. Si l'auto-identification est nécessaire, implémentez votre propre fonctionalité d'auto-identification. N'utilisez pas l'ID de la durée de vie de la session pour cela.
  • session.use_trans_sid=Off. L'utilisation du gestionnaire transparent de l'ID de session n'est pas interdite. Vous pouvez l'utiliser lorsque c'est nécessaire. Cependant, sa désactivation va améliorer la sécurité en supprimant la possibilité d'injection d'ID de session et les fuites d'ID de session.
  • session.referer_check=[votre URL d'origine] Lorsque session.use_trans_sid est actif, utilisez cette option est recommandé si c'est possible. Elle réduit les risques d'injection d'ID de session. Si votre site est http://example.com/, définissez cette option à http://example.com/. Notez que lorsque HTTPS est utilisé, le navigateur n'envoie pas l'en-tête referrer. Vi la configuration, le navigateur peut ne pas envoyer l'en-tête referrer. Toutefois, cette option n'est pas une mesure de sécurité fiable.
  • session.cache_limiter=nocache. Vous assure que le contenu HTTP n'est pas mis en cache pour l'identification de session. Autorise la mise en cache uniquement lorsque le contenu n'est pas privé. Sinon, le contenu serait exposé. "private" peut être utilisé si le contenu HTTP ne contient pas de données sensibles d'un point de vue sécurité. Notez que "private" va garder les données privées en cache pour les clients partagés. "public" peut être utilisé seulement lorsque le contenu HTTP ne contient pas du tout de données privées.
  • session.hash_function="sha256". Une fonction de hashage forte va générer un ID de session fort. Cependant, les collisions de hashage peuvent survenir avec le hash MD5 ; les développeurs doivent utiliser SHA-2 ou supérieures pour réaliser cette tâche. Les développeurs peuvent vouloir utiliser des hashes plus forts comme sha384 et sha512.

Le module de session ne garantie pas que l'information stockée dans une session n'est seulement vue que par l'utilisation qui l'a créée. Vous devez prendre des mesures complémentaires pour protéger activement la confidentialité de la session, suivant la valeur associée.

Évaluer l'importance des données transportées par vos sessions et déployez des protections supplémentaires -- cela a généralement un prix, et réduit la commodité pour l'utilisateur. Par exemple, si vous voulez protéger les utilisateurs de simples tactiques d'ingénierie sociale, vous devez activer session.use_only_cookies. Dans ce cas, les cookies doivent obligatoirement être activés côté utilisateur, sinon les sessions ne fonctionneront pas.

Il y a plusieurs façons d'exposer un ID de session existant vers une autre partie de votre site. Il lui sera alors possible d'accéder à toutes les ressources associées avec cet ID spécifique. Tout d'abord, les URLs contiennent les IDs de session. Si vous liez vers un site externe, l'URL incluent l'ID de session peut être stockée dans les logs du serveurs externes via le referrer. Deuxièmement, un attaquant plus actif peut écouter votre traffic réseau. S'il n'est pas crypté, les IDs de session vont transiter en clair sur le réseau. La solution ici est d'implémenter SSL sur votre serveur et le rendre obligatoire pour les utilisateurs. HSTS peut être utilisé pour cela.

Depuis PHP 5.5.2, session.use_strict_mode est disponible. Lorsqu'il est actif, et que le module de gestionnaire de sauvegarde le supporte, les IDs de session non initialisés seront rejectés et un nouvel ID de session sera créé. Cela protège des attaques en forcant l'utilisateur à utiliser un ID de session connu. Les attaquants peuvent passer des liens ou envoyer des mails qui contiennent un ID de session. i.e. http://example.com/page.php?PHPSESSID=123456789 Si session.use_trans_sid est actif, la victime va démarrer une session en utilisant l'ID de session fourni par l'attaquant. session.use_strict_mode limite ce type de risque.

Malgré le fait que session.use_strict_mode limite les risques, les attaquants peuvent forcer les utilisateurs à utiliser un ID de session initialisé, créé par l'attaquant. Tout ce que l'attaquant a à faire est d'initialiser un ID de session avant l'attaque et de le garder actif.

Le cookie d'ID de session peut être défini avec des attributs de domaine, de chemin, en HTTP seulement, et de sécurité. C'est la priorité définie par les navigateurs. En utilisant la priorité, l'attaquant peut définir l'ID de session qui peut être utilisé de façon permanente. L'utilisation de session.use_only_cookies ne va pas résoudre ce problème. session.use_strict_mode va limiter ce risque. Avec session.use_strict_mode=On, l'ID de session non initialisé ne sera pas accepté. Le module de session créera tojours un nouvel ID de session lorsque l'ID de session n'est pas initialisé par le module de session. Ceci peut résulter en un Dos pour la victime, mais un DoS est plus acceptable qu'un compte compromis.

session.use_strict_mode est un bon compromis, mais n'est pas suffisant pour les sessions authentifiées. Les développeurs doivent utiliser la fonction session_regenerate_id() pour l'authentification. session_regenerate_id() doit être appelée avant de définir les informations d'authentification à $_SESSION. La fonction session_regenerate_id() assure que la nouvelle session contient les informations d'authentification stockées seulement dans une nouvelle session. i.e. Les erreurs durant le processus d'authentification peut sauvegarder les drapeaux authentifiés dans l'ancienne session.

L'appel à la fonction session_regenerate_id() peut résulter en un DoS personnel comme use_strict_mode=On. Cependant, un DoS est préférable à un compte compromis. L'ID de session doit être re-généré au moins lors de l'authentification La re-génération de l'ID de session réduit le risque de son vol, ceci pouvant être périodiquement appelé. Les développeurs ne doivent pas se fier à l'expiration de l'ID de session. Les attaquants peuvent accéder à l'ID de session périodiquement pour éviter son expiration. Les développeurs doivent implémenter leurs propres fonctionalités d'expiration pour les anciennes sessions.

Notez que la fonction session_regenerate_id() ne supprime pas les anciennes sessions par défaut. Les anciennes sessions d'authentification peuvent être disponibles pour utilisation. Si le développeur veut éviter l'utilisation d'anciennes sessions d'authentification par quiconque, il doit détruire la session en définissant l'option delete_old_session à TRUE. Cependant, l'effacement immédiat des anciennes sessions a des effets de bord. La session peut disparaîte lors de connexions concurrentes à l'application Web et/ou lorsque le réseau devient instable. Au lieu de supprimer immédiatement les anciennes sessions, vous pouvez définir un délai d'expiration très court dans $_SESSION vous même. Si l'utilisateur accède à une session obsolète (session expirée), vous interdisez son accès.

session.use_only_cookies et une bonne utilisation de session_regenerate_id() peuvent engendrer un DoS personnel. Lorsque c'est le cas, vous pouvez demander à l'utilisateur de supprimer les cookies et alerter les utilisateurs qu'il y a un éventuel risque quant à la sécurité. Les attaquants peuvent définir des cookies malicieux via des applications Web vulnérables (i.e. injection JavaScript), via des plugins de navigateur vulnérables/malicieux, etc...

Les développeurs ne doivent pas utiliser un ID de session avec une grande durée de vie pour l'identification automatique car il accroit les risques de vol de session. L'auto-identification doit être implémentée par le développeurs. Utilisez une clé de hashage sécurisé à usage unique pour l'auto-identification en utilisant les cookies. Utilisez un hashage fort et plus sécurisé que SHA-2. i.e. SHA-256 ou supérieurs avec des données aléatoires provenant de /dev/urandom ou équivalent. Si l'utilisateur n'est pas authentifié, vérifiez si la clé d'auto-identification sécurisé à usage unique est valide ou non. Si la clé est valide, authentifiez l'utilisateur et définissez une nouvelle clé d'auto-identification à usage unique. La clé d'auto-identification est une clé d'authentification avec une grande durée de vie ; elle doit être protégée autant que possible. Utilisez les attributs path/httponly/secure des cookies pour la protéger. Le développeur doit implémenter la fonctionalité qui désactive l'auto-identification et qui supprime les cookies contenant les clés d'auto-identification non nécessaire pour les utilisateurs.


Fonctions Session

Sommaire

  • session_abort — Abandonne les changements sur le tableau de session et termine la session
  • session_cache_expire — Retourne la configuration actuelle du délai d'expiration du cache
  • session_cache_limiter — Lit et/ou modifie le limiteur de cache de session
  • session_commit — Alias de session_write_close
  • session_create_id — Create new session id
  • session_decode — Décode les données encodées de session
  • session_destroy — Détruit une session
  • session_encode — Encode les données de session
  • session_gc — Perform session data garbage collection
  • session_get_cookie_params — Lit la configuration du cookie de session
  • session_id — Lit et/ou modifie l'identifiant courant de session
  • session_is_registered — Vérifie si une variable est enregistrée dans la session
  • session_module_name — Lit et/ou modifie le module de session courant
  • session_name — Lit et/ou modifie le nom de la session
  • session_regenerate_id — Remplace l'identifiant de session courant par un nouveau
  • session_register_shutdown — Fonction de fermeture de session
  • session_register — Enregistre une variable globale dans une session
  • session_reset — Réinitialise le tableau de session avec les valeurs originales
  • session_save_path — Lit et/ou modifie le chemin de sauvegarde des sessions
  • session_set_cookie_params — Modifie les paramètres du cookie de session
  • session_set_save_handler — Configure les fonctions de stockage de sessions
  • session_start — Démarre une nouvelle session ou reprend une session existante
  • session_status — Détermine le statut de la session courante
  • session_unregister — Supprime une variable de la session
  • session_unset — Détruit toutes les variables d'une session
  • session_write_close — Écrit les données de session et ferme la session


Abandonne les changements sur le tableau de session et termine la session

  • « Fonctions Session
  • session_cache_expire »
  • PHP Manual
  • Fonctions Session
  • Abandonne les changements sur le tableau de session et termine la session

session_abort

(PHP 5 >= 5.6.0, PHP 7)

session_abort — Abandonne les changements sur le tableau de session et termine la session

Description

bool session_abort ( void )

session_abort() termine la session sans sauver les données. Les valeurs originales de la session sont conservées.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • $_SESSION
  • La directive de configuration session.auto_start
  • session_start() - Démarre une nouvelle session ou reprend une session existante
  • session_reset() - Réinitialise le tableau de session avec les valeurs originales
  • session_commit() - Alias de session_write_close


Retourne la configuration actuelle du délai d'expiration du cache

  • « session_abort
  • session_cache_limiter »
  • PHP Manual
  • Fonctions Session
  • Retourne la configuration actuelle du délai d'expiration du cache

session_cache_expire

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

session_cache_expire — Retourne la configuration actuelle du délai d'expiration du cache

Description

int session_cache_expire ([ string $new_cache_expire ] )

session_cache_expire() retourne la configuration actuelle de session.cache_expire.

Le délai d'expiration du cache est remis à sa valeur par défaut de 180, stockée dans session.cache_limiter, au démarrage de la requête. Par conséquent, vous devez appeler session_cache_expire() à chaque requête (et avant que session_start() ne soit appelée).

Liste de paramètres

new_cache_expire

Si new_cache_expire est fourni, la configuration actuelle de cache expire sera remplacée par new_cache_expire.

Note: La directive new_cache_expire n'a de valeur que si session.cache_limiter a une valeur différente de nocache.

Valeurs de retour

Retourne la configuration courante de session.cache_expire. La valeur retournée doit être lue en minutes, et vaut par défaut, 180.

Exemples

Exemple #1 Exemple avec session_cache_expire()

<?php

/* Configure le limiteur de cache à 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* Configure le délai d'expiration à 30 minutes */
session_cache_expire(30);
$cache_expire = session_cache_expire();

/* Démarre la session */

session_start();

echo "Le limiteur de cache est maintenant fixé à $cache_limiter<br />";
echo "La session en cache va expirer après $cache_expire minutes";
?>

Voir aussi

  • session.cache_expire
  • session.cache_limiter
  • session_cache_limiter() - Lit et/ou modifie le limiteur de cache de session


Lit et/ou modifie le limiteur de cache de session

  • « session_cache_expire
  • session_commit »
  • PHP Manual
  • Fonctions Session
  • Lit et/ou modifie le limiteur de cache de session

session_cache_limiter

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

session_cache_limiter — Lit et/ou modifie le limiteur de cache de session

Description

string session_cache_limiter ([ string $cache_limiter ] )

session_cache_limiter() retourne la configuration courante du limiteur de cache.

Le limiteur de cache contrôle les en-têtes HTTP envoyés au client. Certains en-têtes déterminent les règles de mise en cache de la page sur le navigateur. En configurant ce limiteur à nocache, par exemple, le navigateur ne mettra pas la page dans son cache. La valeur public, au contraire, permettra le cache. La valeur private désactive le cache pour le proxy et autorise le client à mettre en cache le contenu.

En mode private, l'en-tête Expire envoyé au client peut poser des problèmes à certains navigateurs, comme, notamment, Mozilla. Vous pouvez éviter ce problème avec le mode private_no_expire. L'en-tête Expire n'est jamais envoyé au navigateur pour ce mode.

Le fait de définir le limiteur de cache à la valeur '' désactivera automatiquement et totalement l'envoi des en-têtes de cache.

Le limiteur de cache est remis à la valeur par défaut de session.cache_limiter à chaque démarrage de script PHP. Donc, vous devrez appeler session_cache_limiter() à chaque page, et avant session_start().

Liste de paramètres

cache_limiter

Si cache_limiter est fourni, le limiteur de cache est reconfiguré avec cette valeur.

Valeurs possibles
Valeurs Entêtes envoyés
public
Expires: (Quelque chose dans le futur, suivant session.cache_expire)
Cache-Control: public, max-age=(Quelque chose dans le futur, suivant session.cache_expire)
Last-Modified: (le timestamp correspondant à la dernière sauvegarde de la session)
private_no_expire
Cache-Control: private, max-age=(session.cache_expire dans le futur), pre-check=(session.cache_expire dans le futur)
Last-Modified: (le timestamp correspondant à la dernière sauvegarde de la session)
private
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private, max-age=(session.cache_expire dans le futur), pre-check=(session.cache_expire dans le futur)
Last-Modified: (le timestamp correspondant à la dernière sauvegarde de la session)
nocache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

Valeurs de retour

Retourne le nom du limiteur de cache courant.

Exemples

Exemple #1 Exemple avec session_cache_limiter()

<?php

/* configure le limiteur de cache à 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

echo "Le limiteur de cache vaut maintenant $cache_limiter<br />";
?>

Voir aussi

  • session.cache_limiter


Alias de session_write_close

  • « session_cache_limiter
  • session_create_id »
  • PHP Manual
  • Fonctions Session
  • Alias de session_write_close

session_commit

(PHP 4 >= 4.4.0, PHP 5, PHP 7)

session_commit — Alias de session_write_close()

Description

Cette fonction est un alias de : session_write_close().


Create new session id

  • « session_commit
  • session_decode »
  • PHP Manual
  • Fonctions Session
  • Create new session id

session_create_id

(PHP 7 >= 7.1.0)

session_create_id — Create new session id

Description

string session_create_id ([ string $prefix ] )

session_create_id() is used to create new session id for the current session. It returns collision free session id.

If session is not active, collision check is omitted.

Session ID is created according to php.ini settings.

It is important to use the same user ID of your web server for GC task script. Otherwise, you may have permission problems especially with files save handler.

Liste de paramètres

prefix

If prefix is specified, new session id is prefixed by prefix. Not all characters are allowed within the session id. Characters in the range a-z A-Z 0-9 , (comma) and - (minus) are allowed.

Valeurs de retour

session_create_id() returns new collision free session id for the current session. If it is used without active session, it omits collision check.

Exemples

Exemple #1 session_create_id() example with session_regenerate_id()

<?php
// My session start function support timestamp management
function my_session_start() {
    session_start();
    // Do not allow to use too old session ID
    if (!empty($_SESSION['deleted_time']) && $_SESSION['deleted_time'] < time() - 180) {
        session_destroy();
        session_start();
    }
}

// My session regenerate id function
function my_session_regenerate_id() {
    // Call session_create_id() while session is active to
    // make sure collision free.
    if (session_status() != PHP_SESSION_ACTIVE) {
        session_start();
    }
    // WARNING: Never use confidential strings for prefix!
    $newid = session_create_id('myprefix-');
    // Set deleted timestamp. Session data must not be deleted immediately for reasons.
    $_SESSION['deleted_time'] = time();
    // Finish session
    session_commit();
    // Make sure to accept user defined session ID
    // NOTE: You must enable use_strict_mode for normal operations.
    ini_set('session.use_strict_mode', 0);
    // Set new custome session ID
    session_id($newid);
    // Start with custome session ID
    session_start();
}

// Make sure use_strict_mode is enabled.
// use_strict_mode is mandatory for security reasons.
ini_set('session.use_strict_mode', 1);
my_session_start();

// Session ID must be regenerated when
//  - User logged in
//  - User logged out
//  - Certain period has passed
my_session_regenerate_id();

// Write useful codes
?>

Voir aussi

  • session_regenerate_id() - Remplace l'identifiant de session courant par un nouveau
  • session_start() - Démarre une nouvelle session ou reprend une session existante
  • session.use_strict_mode


Décode les données encodées de session

  • « session_create_id
  • session_destroy »
  • PHP Manual
  • Fonctions Session
  • Décode les données encodées de session

session_decode

(PHP 4, PHP 5, PHP 7)

session_decode — Décode les données encodées de session

Description

bool session_decode ( string $data )

session_decode() décode les données de sessions linéarisées fournies dans le paramètre $data, et peuple la variable superglobale $_SESSION.

Notez que la méthode de délinéarisation n'est pas la même que celle utilisée par la fonction unserialize(). La méthode de linéarisation est interne à PHP et peut être définie via l'option de configuration session.serialize_handler.

Liste de paramètres

data

Les données encodées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • session_encode() - Encode les données de session
  • session.serialize_handler


Détruit une session

  • « session_decode
  • session_encode »
  • PHP Manual
  • Fonctions Session
  • Détruit une session

session_destroy

(PHP 4, PHP 5, PHP 7)

session_destroy — Détruit une session

Description

bool session_destroy ( void )

session_destroy() détruit toutes les données associées à la session courante. Cette fonction ne détruit pas les variables globales associées à la session, de même, elle ne détruit pas le cookie de session. Pour accéder à nouveau aux variables de session, la fonction session_start() doit être appelée de nouveau.

Pour détruire complètement une session, lorqu'on déconnecte un utilisateur par exemple, l'identifiant de la session doit également être effacé. Si un cookie est utilisé pour propager l'identifiant de session (comportement par défaut), alors le cookie de session doit être effacé. La fonction setcookie() peut être utilisée pour cela.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Destruction d'une session avec $_SESSION

<?php
// Initialisation de la session.
// Si vous utilisez un autre nom
// session_name("autrenom")
session_start();

// Détruit toutes les variables de session
$_SESSION = array();

// Si vous voulez détruire complètement la session, effacez également
// le cookie de session.
// Note : cela détruira la session et pas seulement les données de session !
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

// Finalement, on détruit la session.
session_destroy();
?>

Notes

Note:

Utilisez uniquement la fonction session_unset() pour l'ancien code obsolète qui n'utilise pas les variables $_SESSION.

Voir aussi

  • unset() - Détruit une variable
  • setcookie() - Envoie un cookie


Encode les données de session

  • « session_destroy
  • session_gc »
  • PHP Manual
  • Fonctions Session
  • Encode les données de session

session_encode

(PHP 4, PHP 5, PHP 7)

session_encode — Encode les données de session

Description

string session_encode ( void )

session_encode() retourne une chaîne linéarisée contenant les variables de la session courante encodées stockées dans la variable superglobale $_SESSION.

Notez que la méthode de linéarisation n'est pas la même que celle utilisée par la fonction serialize(). Cette méthode de linéarisation est interne à PHP et peut être définie en utilisant l'option de configuration session.serialize_handler.

Valeurs de retour

Retourne le contenu encodé de la session courante.

Notes

Avertissement

Vous devez appeler la fonction session_start() avant d'utiliser la fonction session_encode().

Voir aussi

  • session_decode() - Décode les données encodées de session
  • session.serialize_handler


Perform session data garbage collection

  • « session_encode
  • session_get_cookie_params »
  • PHP Manual
  • Fonctions Session
  • Perform session data garbage collection

session_gc

(No version information available, might only be in Git)

session_gc — Perform session data garbage collection

Description

int session_gc ( void )

session_gc() is used to perform session data GC(garbage collection). PHP does probability based session GC by default.

Probability based GC works somewhat but it has few problems. 1) Low traffic site's session data may not be deleted within preferred duration. 2) High traffic site's may have too frequent GC. 3) GC is performed on the user's request and the user will experience GC delay.

Therefore, it is recommended to execute GC periodically for production systems. e.g. Use "cron" for UNIX like systems. Make sure to disable probability based GC by setting session.gc_probability to 0.

Valeurs de retour

session_gc() returns number of deleted session data for success, FALSE for failure.

Old save handlers do not return number of deleted session data, but only success/failure flag. If this is the case, number of deleted session data became 1 regardless of actually deleted data.

Exemples

Exemple #1 session_gc() example for task managers like cron

<?php
// Note: This script should be executed by the same user of web server process.

// Need active session to initialize session data storage access.
session_start();

// Executes GC immediately
session_gc();

// Clean up session ID created by session_gc()
session_destroy();
?>

Exemple #2 session_gc() example for user accessible script

<?php
// Note: session_gc() is recommended to be used by task manager script, but
// it may be used as follows.

// Used for last GC time check
$gc_time = '/tmp/php_session_last_gc';
$gc_period = 1800;

session_start();
// Execute GC only when GC period elapsed.
// i.e. Calling session_gc() every request is waste of resources.
if (file_exists($gc_time)) {
    if (filemtime($gc_time) < time() - $gc_period) {
        session_gc();
        touch($gc_time);
    }
} else {
    touch($gc_time);
}
?>

Voir aussi

  • session_start() - Démarre une nouvelle session ou reprend une session existante
  • session_destroy() - Détruit une session
  • session.gc_probability


Lit la configuration du cookie de session

  • « session_gc
  • session_id »
  • PHP Manual
  • Fonctions Session
  • Lit la configuration du cookie de session

session_get_cookie_params

(PHP 4, PHP 5, PHP 7)

session_get_cookie_params — Lit la configuration du cookie de session

Description

array session_get_cookie_params ( void )

Lit la configuration du cookie de session.

Valeurs de retour

Retourne un tableau, qui contient les éléments suivants :

  • "lifetime" : durée de vie du cookie.
  • "path" : le chemin où les informations sont stockées.
  • "domain" : le domaine du cookie.
  • "secure" : le cookie ne doit être envoyé que sur des connexions sécurisées.
  • "httponly" : le cookie ne sera accessible que via le protocole HTTP.

Historique

Version | Description
5.2.0 | L'entrée "httponly" a été ajouté dans le tableau retourné.

Voir aussi

  • session.cookie_lifetime
  • session.cookie_path
  • session.cookie_domain
  • session.cookie_secure
  • session.cookie_httponly
  • session_set_cookie_params() - Modifie les paramètres du cookie de session


Lit et/ou modifie l'identifiant courant de session

  • « session_get_cookie_params
  • session_is_registered »
  • PHP Manual
  • Fonctions Session
  • Lit et/ou modifie l'identifiant courant de session

session_id

(PHP 4, PHP 5, PHP 7)

session_id — Lit et/ou modifie l'identifiant courant de session

Description

string session_id ([ string $id ] )

session_id() est utilisé pour récupérer ou définir l'identifiant de session pour la session courante.

La constante SID peut également être utilisée pour lire le nom de la session courante et l'identifiant de session à fournir dans les URL. Voyez aussi Gestion de session.

Liste de paramètres

id

Si id est fourni, il remplacera l'identifiant courant de session. session_id() doit alors être appelé avant session_start(). Suivant le gestionnaire de sessions que vous utilisez, tous les caractères ne seront pas acceptés dans cette valeur. Par exemple, le gestionnaire de sessions par défaut, basé sur les fichiers, n'accepte que les caractères compris dans l'intervalle a-z, A-Z et 0-9 !

Note: Lorsque vous utilisez les sessions avec les cookies, le fait de spécifier un id pour session_id() fera qu'un nouveau cookie sera toujours envoyé lors de l'appel à session_start(), sans se soucier si l'identifiant de session courant est identique à celui qui vient d'être défini.

Valeurs de retour

session_id() retourne l'identifiant de session pour la session courante ou une chaîne vide ("") s'il n'y a pas de session courante (aucun identifiant de session n'existe).

Voir aussi

  • session_regenerate_id() - Remplace l'identifiant de session courant par un nouveau
  • session_start() - Démarre une nouvelle session ou reprend une session existante
  • session_set_save_handler() - Configure les fonctions de stockage de sessions
  • session.save_handler


Vérifie si une variable est enregistrée dans la session

  • « session_id
  • session_module_name »
  • PHP Manual
  • Fonctions Session
  • Vérifie si une variable est enregistrée dans la session

session_is_registered

(PHP 4, PHP 5 < 5.4.0)

session_is_registered — Vérifie si une variable est enregistrée dans la session

Description

bool session_is_registered ( string $name )

Vérifie si une variable est enregistrée dans la session.

Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Liste de paramètres

name

Le nom de la variable.

Valeurs de retour

session_is_registered() retourne TRUE si la variable de nom name fait partie de la session courante, FALSE sinon.

Notes

Note:

Si $_SESSION (ou $HTTP_SESSION_VARS en PHP 4.0.6 et plus ancien) est utilisé, utilisez la fonction isset() pour vérifier la présence de la variable dans $_SESSION.

Attention

Si vous utilisez $_SESSION
(ou $HTTP_SESSION_VARS),
n'utilisez pas session_register(),
session_is_registered() et
session_unregister().


Lit et/ou modifie le module de session courant

  • « session_is_registered
  • session_name »
  • PHP Manual
  • Fonctions Session
  • Lit et/ou modifie le module de session courant

session_module_name

(PHP 4, PHP 5, PHP 7)

session_module_name — Lit et/ou modifie le module de session courant

Description

string session_module_name ([ string $module ] )

session_module_name() récupère le nom du module courant de session.

Liste de paramètres

module

Si module est fourni, cette valeur sera alors utilisée, et remplacera la valeur courante.

Valeurs de retour

Retourne le nom du module courant de session.


Lit et/ou modifie le nom de la session

  • « session_module_name
  • session_regenerate_id »
  • PHP Manual
  • Fonctions Session
  • Lit et/ou modifie le nom de la session

session_name

(PHP 4, PHP 5, PHP 7)

session_name — Lit et/ou modifie le nom de la session

Description

string session_name ([ string $name ] )

session_name() retourne le nom de la session courante. Si le paramètre name est fourni, session_name() modifiera le nom de la session et retournera l'ancien nom de la session.

Le nom de la session est réinitialisé à la valeur par défaut, stockée dans session.name lors du démarrage. Ainsi, vous devez appeler session_name() pour chaque demande (et avant que les fonctions session_start() ou session_register() ne soient appelées).

Liste de paramètres

name

Le nom de session est utilisé comme nom pour les cookies et les URLs (i.e. PHPSESSID). Il ne doit contenir que des caractères alphanumériques ; il doit être court et descriptif (surtout pour les utilisateurs ayant activé l'alerte cookie). Si name est fourni, le nom de la session courante sera remplacé par cette valeur.

Avertissement

Les noms de session ne peuvent pas contenir uniquement des chiffres, au moins une lettre doit être présente. Sinon, un identifiant de session sera généré à chaque fois.

Valeurs de retour

Retourne le nom de la session courante. Si le paramètre name est fourni et que la fonction met à jour le nom de la session, alors l'ancien nom de session sera retourné.

Exemples

Exemple #1 Exemple avec session_name()

<?php

/* choisi le nom de session  : WebsiteID */

$previous_name = session_name("WebsiteID");

echo "L'ancien nom de la session était $previous_name<br />";
?>

Voir aussi

  • La directive de configuration session.name


Remplace l'identifiant de session courant par un nouveau

  • « session_name
  • session_register_shutdown »
  • PHP Manual
  • Fonctions Session
  • Remplace l'identifiant de session courant par un nouveau

session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

session_regenerate_id — Remplace l'identifiant de session courant par un nouveau

Description

bool session_regenerate_id ([ bool $delete_old_session = false ] )

session_regenerate_id() va remplacer l'identifiant de session courant par un nouveau, généré automatiquement, tout en conservant les valeurs de session.

Lorsque l'option session.use_trans_sid est active, la sortie pour affichage doit commencer après l'appel à la fonction session_regenerate_id(). Sinon, l'ancien ID de session sera utilisé.

Liste de paramètres

delete_old_session

Si l'on doit effacer l'ancien fichier de session associé ou pas.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
4.3.3 | Avant cette version, si les cookies de session sont activés, l'utilisation de session_regenerate_id() provoquera également un nouveau cookie de session avec le nouvel identifiant de session.
5.1.0 | Ajout du paramètre delete_old_session.

Exemples

Exemple #1 Exemple avec session_regenerate_id()

<?php
session_start();

$old_sessionid = session_id();

session_regenerate_id();

$new_sessionid = session_id();

echo "Ancienne Session: $old_sessionid<br />";
echo "Nouvelle Session: $new_sessionid<br />";

print_r($_SESSION);
?>

Voir aussi

  • session_id() - Lit et/ou modifie l'identifiant courant de session
  • session_start() - Démarre une nouvelle session ou reprend une session existante
  • session_name() - Lit et/ou modifie le nom de la session


Fonction de fermeture de session

  • « session_regenerate_id
  • session_register »
  • PHP Manual
  • Fonctions Session
  • Fonction de fermeture de session

session_register_shutdown

(PHP >=5.4.0)

session_register_shutdown — Fonction de fermeture de session

Description

void session_register_shutdown ( void )

Enregistre la fonction session_write_close() comme fonction de fermeture de session.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une alerte de type E_WARNING si l'enregistrement de la fonction de fermeture échoue.


Enregistre une variable globale dans une session

  • « session_register_shutdown
  • session_reset »
  • PHP Manual
  • Fonctions Session
  • Enregistre une variable globale dans une session

session_register

(PHP 4, PHP 5 < 5.4.0)

session_register — Enregistre une variable globale dans une session

Description

bool session_register ( mixed $name [, mixed $... ] )

session_register() enregistre toutes les variables de nom name dans la session courante. Le nombre de variables enregistrées est libre. Les noms peuvent être passés comme des chaînes, ou comme des tableaux contenant des chaînes ou des tableaux. Pour chaque nom, session_register() place la variable dans la session courante, pour la sauvegarde de fin de script.

Vous pouvez aussi créer une variable de session, simplement en ajoutant l'index approprié dans la variable $_SESSION ou $HTTP_SESSION_VARS (PHP < 4.1.0).

<?php
// L'utilisation de session_register() est déconseillée
$barney = "Un gros dinosaure violet.";
session_register("barney");

// L'utilisation de $_SESSION est encouragée depuis PHP 4.1.0
$_SESSION["zim"] = "Un envahisseur d'une autre planète.";

// L'ancienne méthode avec $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "Il a un caleçon carré !";
?>

Si session_start() n'a pas été appelé avant cette fonction, un appel implicite à session_start() sans aucun paramètre sera fait. $_SESSION ne reproduit pas ce comportement et nécessite d'abord un appel à la fonction session_start().

Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Liste de paramètres

name

Le nom de la variable ou du tableau contenant les noms des variables ou d'autres tableaux.

...

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Attention

Si vous voulez que votre script fonctionne indépendamment de la configuration de la directive register_globals, vous devez utiliser la variable $_SESSION. Tous les éléments de $_SESSION sont automatiquement enregistrés. Si votre script utilise session_register(), il ne fonctionnera pas dans les environnements où register_globals est désactivée.

Note: register_globals : note importante

Depuis PHP 4.2.0, la valeur par défaut de la directive de configuration PHP register_globals vaut off. La communauté PHP vous recommande de ne pas dépendre de cette directive, mais de trouver d'autres moyens pour accéder aux données, tels que les superglobals.

Attention

Cette fonction enregistre une variable globale. Si vous enregistrez une variable globale dans une fonction, vous devez vous assurer de la rendre globale, avec le mot clé global ou le tableau $GLOBALS[], ou bien utiliser un des tableaux de session ci-dessous.

Attention

Si vous utilisez $_SESSION
(ou $HTTP_SESSION_VARS),
n'utilisez pas session_register(),
session_is_registered() et
session_unregister().

Note:

Il n'est actuellement pas possible d'enregistrer des ressources dans les sessions. Par exemple, vous ne pouvez pas créer de connexion à une base de données, et stocker la connexion dans une variable de session. Elle ne sera pas valide lors de la prochaine page. Les fonctions PHP qui retournent des ressources sont identifiées avec le type resource dans leurs définitions. Une liste de fonctions qui retournent des ressources sont disponible dans l'annexe types de ressources.

Si $_SESSION (ou $HTTP_SESSION_VARS pour les versions antérieures à PHP 4.0.6) est utilisé, assignez les variables à $_SESSION : i.e. $_SESSION['var'] = 'ABC';

Voir aussi

  • session_is_registered() - Vérifie si une variable est enregistrée dans la session
  • session_unregister() - Supprime une variable de la session
  • $_SESSION


Réinitialise le tableau de session avec les valeurs originales

  • « session_register
  • session_save_path »
  • PHP Manual
  • Fonctions Session
  • Réinitialise le tableau de session avec les valeurs originales

session_reset

(PHP 5 >= 5.6.0, PHP 7)

session_reset — Réinitialise le tableau de session avec les valeurs originales

Description

bool session_reset ( void )

session_reset() réinitialise une session avec les valeurs originales sauvegardées dans le stockage de session. Cette fonction requiert une session active et annule les changements dans $_SESSION.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • $_SESSION
  • La directive de configuration session.auto_start
  • session_start() - Démarre une nouvelle session ou reprend une session existante
  • session_abort() - Abandonne les changements sur le tableau de session et termine la session
  • session_commit() - Alias de session_write_close


Lit et/ou modifie le chemin de sauvegarde des sessions

  • « session_reset
  • session_set_cookie_params »
  • PHP Manual
  • Fonctions Session
  • Lit et/ou modifie le chemin de sauvegarde des sessions

session_save_path

(PHP 4, PHP 5, PHP 7)

session_save_path — Lit et/ou modifie le chemin de sauvegarde des sessions

Description

string session_save_path ([ string $path ] )

session_save_path() retourne le chemin du dossier actuellement utilisé pour sauver les données de sessions.

Liste de paramètres

path

Chemin des données de session. Si path est spécifié, le chemin du dossier sera modifié. session_save_path() doit être appelé avant session_start().

Note:

Sur certains systèmes d'exploitation, vous aurez à choisir un chemin vers un dossier capable de gérer un grand nombre de petits fichiers efficacement. Par exemple, sous Linux, reiserfs peut se rendre plus efficace que ext2fs.

Valeurs de retour

Retourne le chemin du dossier courant utilisé pour y stocker les données.

Voir aussi

  • La directive de configuration session.save_path


Modifie les paramètres du cookie de session

  • « session_save_path
  • session_set_save_handler »
  • PHP Manual
  • Fonctions Session
  • Modifie les paramètres du cookie de session

session_set_cookie_params

(PHP 4, PHP 5, PHP 7)

session_set_cookie_params — Modifie les paramètres du cookie de session

Description

void session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]] )

Modifie les paramètres de configuration du cookie de session, qui a été configuré dans le fichier php.ini. L'effet de cette fonction ne dure que pendant l'exécution du script courant. De ce fait, vous devez appeler session_set_cookie_params() pour chaque script et avant l'appel à session_start().

Cette fonction modifie à la volée les paramètres ini correspondants qui peuvent être récupérés au moyen de ini_get().

Liste de paramètres

lifetime

La durée de vie du cookie, en secondes. Voir la directive lifetime.

path

Le chemin dans le domaine où le cookie sera accessible. Utilisez un simple slash ('/') pour tous les chemins du domaine. Voir la directive path.

domain

Le domaine du cookie, par exemple 'www.php.net'. Pour rendre les cookies visibles sur tous les sous-domaines, le domaine doit être préfixé avec un point, tel que '.php.net'. Voir la directive domain.

secure

Si TRUE, le cookie ne sera envoyé que sur une connexion sécurisée. Voir la directive secure.

httponly

Si TRUE, PHP va tenter d'envoyer l'option httponly lors de la configuration du cookie. Voir la directive httponly.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
5.2.0 | Ajout du paramètre httponly.

Voir aussi

  • session.cookie_lifetime
  • session.cookie_path
  • session.cookie_domain
  • session.cookie_secure
  • session.cookie_httponly
  • session_get_cookie_params() - Lit la configuration du cookie de session


Configure les fonctions de stockage de sessions

  • « session_set_cookie_params
  • session_start »
  • PHP Manual
  • Fonctions Session
  • Configure les fonctions de stockage de sessions

session_set_save_handler

(PHP 4, PHP 5, PHP 7)

session_set_save_handler — Configure les fonctions de stockage de sessions

Description

bool session_set_save_handler ( callable $open , callable $close , callable $read , callable $write , callable $destroy , callable $gc [, callable $create_sid ] )

Depuis PHP 5.4, il est possible d'enregistrer le prototype suivant :

bool session_set_save_handler ( SessionHandlerInterface $sessionhandler [, bool $register_shutdown = true ] )

session_set_save_handler() configure les fonctions de stockage de sessions, et permet de choisir des fonctions utilisateurs pour sauver et relire toutes les sessions. Cette fonction est très pratique lorsqu'il faut sauver les données de sessions en utilisant une autre technique que le système par fichier fourni par défaut : notamment, stockage en base de données.

Liste de paramètres

Cette fonction a deux prototypes.

sessionhandler

Une instance d'une classe implémentant l'interface SessionHandlerInterface, comme la classe SessionHandler, pour l'enregistrement comme gestionnaire de session. Depuis PHP 5.4 uniquement.

register_shutdown

Enregistre la fonction session_write_close() comme fonction register_shutdown_function().

ou
open(string $savePath, string $sessionName)

La fonction de rappel open fonctionne comme un constructeur dans une classe, et est exécutée lorsque la session s'ouvre. C'est la première fonction de rappel exécutée lorsque la session démarre automatiquement ou manuellement avec la fonction session_start(). La valeur retournée est TRUE en cas de succès ou FALSE si une erreur survient.

close()

La fonction de rappel close fonctionne comme un destructeur dans une classe, et est exécutée une fois que la fonction de rappel write de la session a terminé de s'exécuter. Elle est également appelé lorsque la fonction session_write_close() est appelée. La valeur retournée est TRUE en cas de succès, ou FALSE si une erreur survient.

read(string $sessionId)

La fonction de rappel read doit toujours retournée une chaîne linéarisée contenant les données de session encodées ou une chaîne vide s'il n'y a aucune donnée à lire.

Cette fonction de rappel est appelée en interne par PHP lorsque la session commence ou lorsque la fonction session_start() est appelée. Avant que cette fonction de rappel ne soit invoquée, PHP invoquera la fonction de rappel open.

La valeur retournée par cette fonction de rappel doit être exactement du même format de linéarisation que celui passé pour le stockage à la fonction de rappel write. La valeur retournée sera délinéarisée automatiquement par PHP et utilisée pour peupler la variable superglobale $_SESSION. Malgré le fait que les données ressemblent fortement aux données issuées de la fonction serialize(), notez que c'est bien un format différent, qui est spécifié via l'option de configuration session.serialize_handler.

write(string $sessionId, string $data)

La fonction de rappel write est appelée lorsque la session doit être sauvegardée et fermée. Cette fonction de rappel reçoit l'identifiant de la session courante ainsi qu'une version linéarisée du contenu de la variable superglobale $_SESSION. La méthode de linéarisation utilisée en interne par PHP est spécifiée via l'option de configuration session.serialize_handler.

Les données de session linéarisées passées à cette fonction de rappel doivent être stockées en utilisant l'identifiant de session fournie. Lors de la récupération de ces données, la fonction de rappel read doit retourner la valeur exacte, originalement passée à la fonction de rappel write.

Cette fonction de rappel est invoquée lorsque PHP s'arrête ou explicitement lorsque la fonction session_write_close() est appelée. Notez qu'après l'exécution de cette fonction, PHP exécutera en interne la fonction de rappel close.

Note:

Le gestionnaire d'écriture n'est pas exécuté tant que le flux de sortie n'aura pas été fermé. Aussi, la sortie des requêtes de débogage du gestionnaire "write" ne sera jamais affichée dans le navigateur. Si la sortie de débogage est nécessaire, il est suggéré qu'elle soit plutôt orientée dans un fichier.

destroy($sessionId)

Cette fonction de rappel est exécutée lorsqu'une session est détruite avec la fonction session_destroy() ou avec session_regenerate_id() avec le paramètre de destruction définie à TRUE. La valeur retournée doit être TRUE en cas de succès, ou FALSE si une erreur survient.

gc($lifetime)

La fonction de rappel de ramasse miettes (garbage collector) est invoquée en interne par PHP périodiquement afin de purger les anciennes données de session. La fréquence est contrôlé par les options de configuration session.gc_probability et session.gc_divisor. La valeur de la durée de vie passée à cette fonction de rappel peut être définie via l'option de configuration session.gc_maxlifetime. La valeur retournée doit être TRUE en cas de succès, ou FALSE si une erreur survient.

create_sid()

Cette fonction de rappel est exécutée lorsqu'un nouvel ID de session est nécessaire. Aucun paramètre n'est fourni, et la valeur retournée doit être une chaîne de caractères qui est un ID de session valide pour votre gestionnaire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Gestionnaire de session personnalisé : voir le code complet dans la documentation sur l'interface SessionHandlerInterface.

Le code suivant est pour PHP version 5.4.0 et supérieure. Vous pouvez y voir l'invocation, l'exemple complet peut être vu dans la documentation de l'interface SessionHandlerInterface.

Notez que nous utilisons ici le prototype orienté objet avec session_set_save_handler() et enregistrons la fonction d'arrêt en utilisant le drapeau dans le paramètre de la fonction. C'est généralement préférable lors de l'enregistrement d'objets comme gestionnaires de sauvegarde de session.

<?php
class MySessionHandler implements SessionHandlerInterface
{
    // implémentation de l'interface ici
}

$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();

// processus pour définir et récupérer les valeurs par leurs clés depuis $_SESSION

Exemple #2 Gestionnaire de sauvegarde de session personnalisé en utilisant des objets

Le code suivant est pour PHP en version inférieure à 5.4.0.

L'exemple suivant fournit un gestionnaire de stockage des sessions basé sur les fichiers, similaire au gestionnaire de sauvegarde de session par défaut de PHP files. Cet exemple peut facilement être étendu pour couvrir le stockage par base de données, en utilisant votre moteur de base de données préféré.

Notez que nous enregistrons la fonction d'arrêt session_write_close() en utilisant la fonction register_shutdown_function() en version antérieure à PHP 5.4.0. C'est généralement préférable lors de l'enregistrement d'objets comme gestionnaires de sauvegarde des sessions sous PHP antérieure à la version 5.4.0.

<?php
class FileSessionHandler
{
    private $savePath;

    function open($savePath, $sessionName)
    {
        $this->savePath = $savePath;
        if (!is_dir($this->savePath)) {
            mkdir($this->savePath, 0777);
        }

        return true;
    }

    function close()
    {
        return true;
    }

    function read($id)
    {
        return (string)@file_get_contents("$this->savePath/sess_$id");
    }

    function write($id, $data)
    {
        return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
    }

    function destroy($id)
    {
        $file = "$this->savePath/sess_$id";
        if (file_exists($file)) {
            unlink($file);
        }

        return true;
    }

    function gc($maxlifetime)
    {
        foreach (glob("$this->savePath/sess_*") as $file) {
            if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
                unlink($file);
            }
        }

        return true;
    }
}

$handler = new FileSessionHandler();
session_set_save_handler(
    array($handler, 'open'),
    array($handler, 'close'),
    array($handler, 'read'),
    array($handler, 'write'),
    array($handler, 'destroy'),
    array($handler, 'gc')
    );

// Ceci permet de prévenir des effets non désirés lors de l'utilisation d'objets
// comme gestionnaires de session
register_shutdown_function('session_write_close');

session_start();
// processus pour définir et récupérer les valeurs par leurs clés depuis $_SESSION

Notes

Avertissement

Lors de l'utilisation d'objets comme gestionnaires de sauvegarde des sessions, il est important d'enregistrer la fonction d'arrêt avec PHP pour éviter les effets non désirés issus de la façon dont PHP détruit en interne les objets lors de l'arrêt, et peut empécher les fonctions de rappel write et close d'être exécutées. Typiquement, vous devez enregistrer 'session_write_close' en utilisant la fonction register_shutdown_function().

Depuis PHP 5.4.0, vous pouvez utiliser la fonction session_register_shutdown() ou simplement utiliser le drapeau 'register shutdown' lors de l'appel à la fonction session_set_save_handler() en utilisant la méthode orientée objet, et passer une instance qui implémente l'interface SessionHandlerInterface.

Avertissement

Les gestionnaires d'écriture et de fermeture sont appelés après la destruction des objets depuis PHP 5.0.5. et donc, ne peuvent pas utiliser les objets ou lancer des exceptions. Les exceptions ne peuvent donc pas être attrapées ni affichées, et l'exécution ne fera que s'arrêter de façon innatendue.

Il est possible d'appeler session_write_close() depuis le destructeur pour résoudre ce problème mais la façon la plus élégante est d'enregistrer la fonction d'arrêt tel que décrit ci-dessus.

Avertissement

Le dossier de travail courant change suivant les SAPIs si la session est fermée à la fin du script. Il est possible de fermer la session plus tard, grâce à la fonction session_write_close().

Historique

Version | Description
5.5.1 | Ajout du paramètre optionnel create_sid.
5.4.0 | Ajout de l'interface SessionHandlerInterface pour implémenter les gestionnaires de sessions et de la classe SessionHandler pour exposer les gestionnaires de sessions internes de PHP.

Voir aussi

  • La directive de configuration session.save_handler
  • La directive de configuration session.serialize_handler.
  • register_shutdown_function() - Enregistre une fonction de rappel pour exécution à l'extinction
  • session_register_shutdown() - Fonction de fermeture de session pour PHP 5.4.0+


Démarre une nouvelle session ou reprend une session existante

  • « session_set_save_handler
  • session_status »
  • PHP Manual
  • Fonctions Session
  • Démarre une nouvelle session ou reprend une session existante

session_start

(PHP 4, PHP 5, PHP 7)

session_start — Démarre une nouvelle session ou reprend une session existante

Description

bool session_start ( void )

session_start() crée une session ou restaure celle trouvée sur le serveur, via l'identifiant de session passé dans une requête GET, POST ou par un cookie.

Lorsque session_start() est appelée ou lorsqu'une session démarre toute seule, PHP va appeler les gestionnaires d'ouverture et de lecture. Ce sont des gestionnaires internes fournis par PHP (comme fichiers, SQLite ou Memcached) ou encore des gestionnaires personnalisés définis au moyen de session_set_save_handler(). La fonction de lecture va récupérer toute session existante (stockée sous forme sérialisée) et va désérialiser les données pour peupler $_SESSION.

Pour utiliser une session nommée, vous devez appeler session_name() avant d'appeler session_start().

Lorsque session.use_trans_sid est activée, la function session_start() enregistrera un gestionnaire interne de sortie pour la réécriture d'URL.

Si un utilisateur utilise ob_gzhandler ou l'équivalent ob_start(), l'ordre d'appel des fonctions est important pour une sortie correcte. Par exemple, ob_gzhandler doit être enregistré avant de démarrer la session.

Valeurs de retour

Retourne TRUE si une session a pu être démarrée avec succès, et FALSE sinon.

Historique

Version | Description
5.3.0 | Si une session n'arrive pas à démarrer, alors FALSE est retourné. Précédemment TRUE était retourné.
4.3.3 | A partir de PHP 4.3.3, appeler session_start() après qu'une session sois déjà démarrée émettra une erreur E_NOTICE. De plus la deuxième session démarrée sera tout simplement ignorée.

Exemples

Exemple #1 Création d'une session : page1.php

<?php
// page1.php

session_start();

echo 'Bienvenue à la page numéro 1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();

// Fonctionne si le cookie a été accepté
echo '<br /><a href="page2.php">page 2</a>';

// Ou bien, en indiquant explicitement l'identfiant de session
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>

Après avoir vu la page page1.php avec un navigateur, la seconde page page2.php (dont le code suit) va magiquement afficher les données de session. Lisez la référence sur les sessions pour des informations sur la propagation des identifiants de session, et l'utilisation de la constante SID.

Exemple #2 Récupération de la session : page2.php

<?php
// page2.php

session_start();

echo 'Bienvenue sur la page numéro 2<br />';

echo $_SESSION['favcolor']; // green
echo $_SESSION['animal'];   // cat
echo date('Y m d H:i:s', $_SESSION['time']);

// Vous pourriez utiliser la constante SID ici, tout comme dans la page page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>

Notes

Note:

Pour utiliser des sessions basées sur les cookies, session_start() doit être appelée avant d'afficher quoi que ce soit dans le navigateur.

Note:

L'utilisation de zlib.output_compression est recommandée, à la place de ob_gzhandler().

Note:

Cette fonction va émettre plusieurs entêtes HTTP, en fonction de la configuration. Voyez session_cache_limiter() pour personnaliser ces entêtes.

Voir aussi

  • $_SESSION
  • La directive de configuration session.auto_start
  • session_id() - Lit et/ou modifie l'identifiant courant de session


Détermine le statut de la session courante

  • « session_start
  • session_unregister »
  • PHP Manual
  • Fonctions Session
  • Détermine le statut de la session courante

session_status

(PHP >=5.4.0)

session_status — Détermine le statut de la session courante

Description

int session_status ( void )

session_status() est utilisée pour connaitre l'état de la session courante.

Valeurs de retour

  • PHP_SESSION_DISABLED si les sessions sont désactivées.
  • PHP_SESSION_NONE si les sessions sont activées, mais qu'aucune n'existe.
  • PHP_SESSION_ACTIVE si les sessions sont activées, et qu'une existe.

Voir aussi

  • session_start() - Démarre une nouvelle session ou reprend une session existante


Supprime une variable de la session

  • « session_status
  • session_unset »
  • PHP Manual
  • Fonctions Session
  • Supprime une variable de la session

session_unregister

(PHP 4, PHP 5 < 5.4.0)

session_unregister — Supprime une variable de la session

Description

bool session_unregister ( string $name )

session_unregister() supprime la variable name de la session courante.

Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Liste de paramètres

name

Le nom de la variable.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Si $_SESSION (ou $HTTP_SESSION_VARS pour PHP 4.0.6 et plus ancien) est utilisé, utilisez unset() pour supprimer une variable de session. N'utilisez pas unset() directement sur $_SESSION sinon cela désactivera les fonctions spéciales du tableau superglobal $_SESSION.

Attention

session_unregister() ne supprime pas la variable globale correspondant au nom de name : elle empêche simplement que name soit sauvée de la session à la fin du script. Vous devez appeler unset() vous-même pour effacer la globale correspondante.

Attention

Si vous utilisez $_SESSION
(ou $HTTP_SESSION_VARS),
n'utilisez pas session_register(),
session_is_registered() et
session_unregister().


Détruit toutes les variables d'une session

  • « session_unregister
  • session_write_close »
  • PHP Manual
  • Fonctions Session
  • Détruit toutes les variables d'une session

session_unset

(PHP 4, PHP 5, PHP 7)

session_unset — Détruit toutes les variables d'une session

Description

void session_unset ( void )

session_unset() détruit toutes les variables de la session courante.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

Si vous utilisez $_SESSION (ou $HTTP_SESSION_VARS pour PHP 4.0.6 ou plus ancien), utilisez unset() pour détruire une variable de session, i.e. unset($_SESSION['nomvariable']);.

Attention

Ne détruisez pas $_SESSION avec unset($_SESSION) car cela désactivera la possibilité d'enregistrer des variables de session à partir du tableau superglobal $_SESSION.


Écrit les données de session et ferme la session

  • « session_unset
  • SessionHandler »
  • PHP Manual
  • Fonctions Session
  • Écrit les données de session et ferme la session

session_write_close

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

session_write_close — Écrit les données de session et ferme la session

Description

void session_write_close ( void )

Termine la session courante, après avoir stocké les données.

Les données de session sont généralement stockées à la fin de votre script, automatiquement, sans besoin d'appeler explicitement session_write_close(). Mais durant toute l'exécution du script, les données de session sont verrouillées en écriture, et un seul script peut opérer sur la session en même temps. Lorsque vous utilisez des frames avec des sessions, vous vous en rendrez compte en voyant les frames se rafraîchir les uns après les autres. Vous pouvez réduire le temps de calcul de ces pages en refermant la session aussitôt que possible, ce qui libère les données pour les autres scripts.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • session_register_shutdown() - Fonction de fermeture de session


La classe SessionHandler

(PHP 5 >= 5.4.0, PHP 7)

Introduction

La classe SessionHandler est une classe spéciale qui peut être utilisée pour exposer le gestionnaire de sauvegarde de session courant en interne de PHP, par héritage. Il y a sept méthodes qui représentent les septs fonctions de rappel du gestionnaire de sauvegarde de session interne (open, close, read, write, destroy, gc et create_sid). Par défaut, cette classe va représenter ce qui est défini dans le gestionnaire de sauvegarde interne, tel que défini par la directive de configuration session.save_handler, qui vaut habituellement files par défaut. D'autres gestionnaires de sauvegarde de session interne sont fournis par des extensions PHP, comme SQLite (avec le paramètre sqlite), Memcache (avec le paramètre memcache), et Memcached (avec le paramètre memcached).

Lorsqu'une instance complète de SessionHandler est définie comme gestionnaire de sauvegarde en utilisant session_set_save_handler(), elle remplacera le gestionnaire de sauvegarde courant. Une classe étendue depuis la classe SessionHandler vous permet d'écraser les méthodes, de les intercepter, ou de les filtrer en appelant la méthode de la classe parent qui remplace en dernier lieu le gestionnaire de session interne de PHP.

Ceci vous permet, par exemple, d'interception les méthodes read et write pour crypter/décrypter les données de session, et de passer le résultat à la classe parente. Alternativement, vous pouvez aussi choisir d'écraser totalement une méthode comme la fonction de rappel de collection des gabarits gc.

En raison du fait que la classe SessionHandler se comporte comme les méthodes du gestionnaire courant de sauvegarde de sessions interne, l'exemple ci-dessus de cryptage peut être appliqué à n'importe quel gestionnaire de sauvegarde sans avoir besoin de connaître les gestionnaires internes.

Pour utiliser cette classe, vous devez commencer par définir un gestionnaire de sauvegarde que vous souhaitez exposer en utilisant session.save_handler puis, passer une instance de la classe SessionHandler ou une étendue à la fonction session_set_save_handler().

Veuillez noter que les méthodes de rappel de cette classe sont destinées à être appelées en interne par PHP, et ne sont pas prévues pour être appelées depuis le code de l'espace utilisateur. Les valeurs retournées seront utilisées de la même façon en interne par PHP. Pour plus d'informations sur le mécanisme des sessions, référez-vous à la documentation sur la fonction session_set_save_handler().

Synopsis de la classe

SessionHandler implements SessionHandlerInterface {
/* Méthodes */
public bool close ( void )
public string create_sid ( void )
public bool destroy ( string $session_id )
public bool gc ( int $maxlifetime )
public bool open ( string $save_path , string $session_name )
public string read ( string $session_id )
public bool write ( string $session_id , string $session_data )
}
Avertissement

Cette classe a pour but d'exposer le gestionnaire de sauvegarde de session interne de PHP ; si vous souhaitez écrire votre gestionnaire de sauvegarde personnalisé, vous devez implémenter l'interface SessionHandlerInterface au lieu d'étendre la classe SessionHandler.

Historique

Version | Description
5.5.1 | Ajout de la fonction SessionHandler::create_sid().

Exemple #1 Utilisation de la classe SessionHandler pour ajouter un cryptage aux gestionnaires de sauvegarde interne de PHP.

<?php
class EncryptedSessionHandler extends SessionHandler
{
    private $key;

    public function __construct($key)
    {
        $this->key = $key;
    }

    public function read($id)
    {
        $data = parent::read($id);

        return mcrypt_decrypt(MCRYPT_3DES, $this->key, $data, MCRYPT_MODE_ECB);
    }

    public function write($id, $data)
    {
        $data = mcrypt_encrypt(MCRYPT_3DES, $this->key, $data, MCRYPT_MODE_ECB);

        return parent::write($id, $data);
    }
}

// Nous interceptons le gestionnaire 'files' natif, mais ceci
// fonctionnera de la même façon avec les autres gestionnaires internes
// comme 'sqlite', 'memcache' ou 'memcached'
// qui sont fournis via des extensions PHP.

ini_set('session.save_handler', 'files');
$handler = new EncryptedSessionHandler('mykey');
session_set_save_handler($handler, true);
session_start();

// processus pour définir et récupérer des valeurs avec la clé, depuis $_SESSION

Note:

Vu que les méthodes de cette classe sont prévues pour être appelées en interne par PHP car faisant parties du mécanisme normal des sessions, les classes enfants appèlent les méthodes parents (i.e. le gestionnaire natif interne actuellement) et doivent retourner FALSE tant que la session n'a pas encore démarrée (soit automatiquement, ou explicitement via la fonction session_start()). Ceci est très important à considérer lors de l'écriture de vos tests unitaires où les méthodes de la classe peuvent être invoquées manuellement.

Sommaire

  • SessionHandler::close — Ferme la session
  • SessionHandler::create_sid — Retourne un nouvel ID de session
  • SessionHandler::destroy — Détruit une session
  • SessionHandler::gc — Nettoie les anciennes sessions
  • SessionHandler::open — Initialise une session
  • SessionHandler::read — Lit les données de session
  • SessionHandler::write — Ecrit des données dans la session


Ferme la session

  • « SessionHandler
  • SessionHandler::create_sid »
  • PHP Manual
  • SessionHandler
  • Ferme la session

SessionHandler::close

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::close — Ferme la session

Description

public bool SessionHandler::close ( void )

Ferme la session courante. Cette méthode est exécutée automatiquement lors de la fermeture de la session ou explicitement via la fonction session_write_close() (qui appèle en premier la méthode SessionHandler::write()).

Cette méthode se substitue au gestionnaire interne de sauvegarde de PHP défini via l'option de configuration session.save_handler qui a été défini avant que ce gestionnaire ne soit activé via la fonction session_set_save_handler().

Si cette classe est étendue par héritage, l'appel de la méthode parente close invoquera la nouvelle méthode, et ainsi, la fonction de rappel interne associée. Ce mécanisme autorise la surcharge et/ou l'interception de cette méthode.

Pour plus d'informations sur le fonctionnement de cette méthode et ses attendus, référez-vous à la documentation sur la fonction SessionHandlerInterface::close().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur retournée (habituellement TRUE en cas de succès, FALSE si une erreur survient). Notez que cette valeur est retournée en interne à PHP pour analyse.


Retourne un nouvel ID de session

  • « SessionHandler::close
  • SessionHandler::destroy »
  • PHP Manual
  • SessionHandler
  • Retourne un nouvel ID de session

SessionHandler::create_sid

(PHP 5 >= 5.5.1, PHP 7)

SessionHandler::create_sid — Retourne un nouvel ID de session

Description

public string SessionHandler::create_sid ( void )

Génère et retourne un nouvel ID de session.

Valeurs de retour

Un ID de session valide pour le gestionnaire de session par défaut.

Voir aussi

  • session_id() - Lit et/ou modifie l'identifiant courant de session


Détruit une session

  • « SessionHandler::create_sid
  • SessionHandler::gc »
  • PHP Manual
  • SessionHandler
  • Détruit une session

SessionHandler::destroy

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::destroy — Détruit une session

Description

public bool SessionHandler::destroy ( string $session_id )

Détruit une session. Cette fonction est appelée en interne par PHP au moyen de session_regenerate_id() (en supposant que $destory est mis à TRUE) session_destroy() ou lorsque la fonction session_decode() échoue.

Cette méthode se substitut au gestionnaire interne de sauvegarde de PHP défini via l'option de configuration session.save_handler qui a été définie avant celui défini via la fonction session_set_save_handler().

Si cette classe est étendue, appeler la méthode parente destroy invoquera le gestionnaire de cette méthode et donc la fonction interne à PHP.

Pour plus d'informations sur l'attendu de cette méthode, référez-vous à la documentation de la fonction SessionHandlerInterface::destroy().

Liste de paramètres

session_id

L'ID de la session à détruire.

Valeurs de retour

La valeur retournée (habituellement TRUE en cas de succès, FALSE si une erreur survient). Notez que cette valeur est retournée en interne à PHP pour analyse.


Nettoie les anciennes sessions

  • « SessionHandler::destroy
  • SessionHandler::open »
  • PHP Manual
  • SessionHandler
  • Nettoie les anciennes sessions

SessionHandler::gc

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::gc — Nettoie les anciennes sessions

Description

public bool SessionHandler::gc ( int $maxlifetime )

Nettoie les sessions expirées. Appelé aléatoirement en interne par PHP lorsqu'une session démarre ou lorsque la fonction session_start() est appelée. La fréquence d'appel est basée sur les directives de configuration session.gc_divisor et session.gc_probability.

Cette méthode se substitue au gestionnaire interne de sauvegarde PHP défini via l'option de configuration session.save_handler qui a été définie avant que ce dernier ne le soit via la fonction session_set_save_handler().

Si cette classe est étendue par héritage, l'appel à la méthode parente gc invoquera le wrapper pour cette méthode, mais aussi, invoquera en interne la fonction de rappel associée. Ce comportement permet à cette méthode d'être surchargée ou bien d'être interceptée et filtrée.

Pour plus d'informations sur l'attendu de cette méthode, référez-vous à la documentation sur la fonction SessionHandlerInterface::gc().

Liste de paramètres

maxlifetime

Les sessions qui n'auront pas été mises à jour les dernières maxlifetime secondes seront supprimées.

Valeurs de retour

La valeur retournée (habituellement TRUE en cas de succès, FALSE si une erreur survient). Notez que cette valeur est retournée en interne à PHP pour analyse.


Initialise une session

  • « SessionHandler::gc
  • SessionHandler::read »
  • PHP Manual
  • SessionHandler
  • Initialise une session

SessionHandler::open

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::open — Initialise une session

Description

public bool SessionHandler::open ( string $save_path , string $session_name )

Crée une nouvelle session ou réinitialise une session existante. Cette fonction est appelée en interne par PHP lorsque la session démarre, automatiquement, ou via session_start().

Cette méthode se substitue au gestionnaire interne de sauvegarde de PHP, défini via l'option de configuration session.save_handler qui a été définie avant que ce gestionnaire ne soit modifié via la fonction session_set_save_handler().

Si cette classe est étendue par héritage, l'appel de la méthode parente open invoquera ce gestionnaire pour cette méthode, mais aussi, la fonction de rappel interne associée. Ce mécanisme permet à cette méthode de surcharger, intercepter et/ou filtrer les données.

Pour plus d'informations sur l'attendu de cette méthode, référez-vous à la documentation sur la fonction SessionHandlerInterface::open().

Liste de paramètres

save_path

Le chemin vers l'endroit de stockage ou de récupération de la session.

session_name

Le nom de la session.

Valeurs de retour

La valeur retournée (habituellement TRUE en cas de succès, FALSE si une erreur survient). Notez que cette valeur est retournée en interne à PHP pour analyse.

Voir aussi

  • La directive de configuration session.auto-start.


Lit les données de session

  • « SessionHandler::open
  • SessionHandler::write »
  • PHP Manual
  • SessionHandler
  • Lit les données de session

SessionHandler::read

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::read — Lit les données de session

Description

public string SessionHandler::read ( string $session_id )

Lit les données de session depuis son lieu de stockage, et retourne le résultat pour que PHP le traite. Cette fonction est appelée par PHP lorsque la session est démarrée automatiquement ou au moyen de session_start(), elle est précédée d'un appel à SessionHandler::open().

Cette méthode se substitue au gestionnaire interne de sauvegarde de PHP, défini via l'option de configuration session.save_handler qui a été définie avant que ce gestionnaire ne soit modifié via la fonction session_set_save_handler().

Si cette classe est étendue par héritage, l'appel de la méthode parente read invoquera ce gestionnaire pour cette méthode, mais aussi, la fonction de rappel interne associée. Ce mécanisme permet à cette méthode de surcharger, intercepter et/ou filtrer les données (par exemple, le décryptage de la valeur $data retournée par la méthode parente read).

Pour plus d'informations sur cette méthode, référez-vous à la documentation sur la fonction SessionHandlerInterface::read().

Liste de paramètres

session_id

L'ID de la session depuis laquelle les données seront lues.

Valeurs de retour

Retourne les données lues sous forme encodée. Si rien n'a été lu, une chaine vide doit être retournée. Cette valeur est utilisée en interne par PHP.

Voir aussi

  • La directive de configuration session.serialize_handler


Ecrit des données dans la session

  • « SessionHandler::read
  • SessionHandlerInterface »
  • PHP Manual
  • SessionHandler
  • Ecrit des données dans la session

SessionHandler::write

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::write — Ecrit des données dans la session

Description

public bool SessionHandler::write ( string $session_id , string $session_data )

Écrit les données de session vers le support de stockage. Cette fonction est appelée par la fonction session_write_close(), lorsque la fonction session_register_shutdown() échoue, et durant le processus d'arrêt. PHP va appeler SessionHandler::close() juste après cette fonction.

Cette méthode se substitue au gestionnaire interne de sauvegarde de PHP, défini via l'option de configuration session.save_handler qui a été définie avant que ce gestionnaire ne soit modifié via la fonction session_set_save_handler().

Si cette classe est étendue par héritage, l'appel de la méthode parente write invoquera ce gestionnaire pour cette méthode, mais aussi, la fonction de rappel interne associée. Ce mécanisme permet à cette méthode de surcharger, intercepter et/ou filtrer les données (par exemple, crypter la valeur du paramètre $data value avant de l'envoyer à la méthode parente write).

Pour plus d'informations sur l'attendu de cette méthode, référez-vous à la documentation sur la fonction SessionHandlerInterface::write().

Liste de paramètres

session_id

L'ID de session.

session_data

Les données de session, encodées. Les données sont le résultat de l'encodage de $_SESSION en une chaine sérialisée avec un algorithme spécial.

Valeurs de retour

La valeur retournée (habituellement TRUE en cas de succès, FALSE si une erreur survient). Notez que cette valeur est retournée en interne à PHP pour analyse.

Voir aussi

  • La directive de configuration session.serialize_handler.


L'interface SessionHandlerInterface

(PHP 5 >= 5.4.0, PHP 7)

Introduction

SessionHandlerInterface est une interface qui définit un prototype pour la création d'un gestionnaire de session personnalisé. Afin de passer un gestionnaire de session personnalisé à la fonction session_set_save_handler() en utilisant son invocation OOP, la classe doit implémenter cette interface.

Notez que ces méthodes sont destinées à être appelées de manière interne par PHP, et non depuis l'espace utilisateur.

Synopsis de la classe

SessionHandlerInterface {
/* Méthodes */
abstract public bool close ( void )
abstract public bool destroy ( string $session_id )
abstract public bool gc ( int $maxlifetime )
abstract public bool open ( string $save_path , string $name )
abstract public string read ( string $session_id )
abstract public bool write ( string $session_id , string $session_data )
}

Exemple #1 Exemple avec SessionHandlerInterface

L'exemple qui suit propose un gestionnaire de stockage de sessions basé sur des fichiers, basiquement comme les sessions PHP fonctionnent en interne de manière native, avec le gestionnaire embarqué files. Cet exemple pourrait être transformé facilement pour utiliser une base de données.

Nous utilisons le style orienté objet avec session_set_save_handler() et nous enregistrons la fonction de fermeture grâce au paramètre de la fonction. C'est en général conseillé lorsque le gestionnaire de session est basé sur des objets.

<?php
class MySessionHandler implements SessionHandlerInterface
{
    private $savePath;

    public function open($savePath, $sessionName)
    {
        $this->savePath = $savePath;
        if (!is_dir($this->savePath)) {
            mkdir($this->savePath, 0777);
        }

        return true;
    }

    public function close()
    {
        return true;
    }

    public function read($id)
    {
        return (string)@file_get_contents("$this->savePath/sess_$id");
    }

    public function write($id, $data)
    {
        return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
    }

    public function destroy($id)
    {
        $file = "$this->savePath/sess_$id";
        if (file_exists($file)) {
            unlink($file);
        }

        return true;
    }

    public function gc($maxlifetime)
    {
        foreach (glob("$this->savePath/sess_*") as $file) {
            if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
                unlink($file);
            }
        }

        return true;
    }
}

$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();

// enregistre/récupère des données avec $_SESSION

Sommaire

  • SessionHandlerInterface::close — Ferme la session
  • SessionHandlerInterface::destroy — Détruit une session
  • SessionHandlerInterface::gc — Nettoie les vieilles sessions
  • SessionHandlerInterface::open — Initialise la session
  • SessionHandlerInterface::read — Lit les données de session
  • SessionHandlerInterface::write — Ecrit les données de session


Ferme la session

  • « SessionHandlerInterface
  • SessionHandlerInterface::destroy »
  • PHP Manual
  • SessionHandlerInterface
  • Ferme la session

SessionHandlerInterface::close

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::close — Ferme la session

Description

abstract public bool SessionHandlerInterface::close ( void )

Ferme la session courante. Cette fonction est appelée automatiquement lors de la fermeture de la session, ou explicitement via session_write_close().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur retournée (habituellement TRUE en cas de succès, FALSE si une erreur survient). Notez que cette valeur est retournée en interne à PHP pour analyse.


Détruit une session

  • « SessionHandlerInterface::close
  • SessionHandlerInterface::gc »
  • PHP Manual
  • SessionHandlerInterface
  • Détruit une session

SessionHandlerInterface::destroy

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::destroy — Détruit une session

Description

abstract public bool SessionHandlerInterface::destroy ( string $session_id )

Détruit une session. Appelée par session_regenerate_id() (avec $destroy = TRUE), session_destroy() et lorsque session_decode() échoue.

Liste de paramètres

session_id

L'identifiant de la session à détruire.

Valeurs de retour

La valeur retournée (habituellement TRUE en cas de succès, FALSE si une erreur survient). Notez que cette valeur est retournée en interne à PHP pour analyse.


Nettoie les vieilles sessions

  • « SessionHandlerInterface::destroy
  • SessionHandlerInterface::open »
  • PHP Manual
  • SessionHandlerInterface
  • Nettoie les vieilles sessions

SessionHandlerInterface::gc

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::gc — Nettoie les vieilles sessions

Description

abstract public bool SessionHandlerInterface::gc ( int $maxlifetime )

Nettoie les vieilles sessions expirées. Appelée par session_start(), en fonction de session.gc_divisor, session.gc_probability et session.gc_lifetime.

Liste de paramètres

maxlifetime

Les sessions non mises à jour durant les maxlifetime dernières secondes seront supprimées.

Valeurs de retour

La valeur retournée (habituellement TRUE en cas de succès, FALSE si une erreur survient). Notez que cette valeur est retournée en interne à PHP pour analyse.


Initialise la session

  • « SessionHandlerInterface::gc
  • SessionHandlerInterface::read »
  • PHP Manual
  • SessionHandlerInterface
  • Initialise la session

SessionHandlerInterface::open

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::open — Initialise la session

Description

abstract public bool SessionHandlerInterface::open ( string $save_path , string $name )

Ré-initialise une session existante ou en crée une nouvelle. Appelé lorsqu'une session est démarée ou lors de l'appel à session_start().

Liste de paramètres

save_path

Le chemin de stockage des données de session.

name

Le nom de la session.

Valeurs de retour

La valeur retournée (habituellement TRUE en cas de succès, FALSE si une erreur survient). Notez que cette valeur est retournée en interne à PHP pour analyse.

Voir aussi

  • session_name() - Lit et/ou modifie le nom de la session
  • La directive de configuration session.auto-start


Lit les données de session

  • « SessionHandlerInterface::open
  • SessionHandlerInterface::write »
  • PHP Manual
  • SessionHandlerInterface
  • Lit les données de session

SessionHandlerInterface::read

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::read — Lit les données de session

Description

abstract public string SessionHandlerInterface::read ( string $session_id )

Lit les données de session depuis le support de stockage et retourne le résultat. Appelé juste après que la session démarre ou lorsque session_start() est appelée. Notez qu'avant que cette méthode ne soit appelée, SessionHandlerInterface::open() est invoquée.

Cette méthode est appelée par PHP lui-même lorsque la session démarre. Cette méthode devrait retourner les données de session lues depuis le support de stockage en fonction de l'ID de session. La chaine retournée devrait être encodée par le même mécanisme de sérialisation que celui utilisé pour écrire les données lors de SessionHandlerInterface::write(). Si rien n'est lu, une chaine vide est retournée.

Les données retournées par cette méthode seront décodées en interne par PHP en utilisant le mécanisme de désérialisation spécifié dans session.serialize_handler. Les données résultantes seront utilisées pour peupler $_SESSION.

Notez que l'algorithme de sérialisation peut être différent de unserialize() et peut être utilisé manuellement au moyen de session_decode().

Liste de paramètres

session_id

L'identifiant de session.

Valeurs de retour

Retourne les données lues encodées, ou une chaîne vide si rien n'est lu. Notez que cette valeur est destiné aux processus internes à PHP.

Voir aussi

  • La directive de configuration session.serialize_handler


Ecrit les données de session

  • « SessionHandlerInterface::read
  • Session PgSQL »
  • PHP Manual
  • SessionHandlerInterface
  • Ecrit les données de session

SessionHandlerInterface::write

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::write — Ecrit les données de session

Description

abstract public bool SessionHandlerInterface::write ( string $session_id , string $session_data )

Ecrit les données de session dans le support de stockage. Appelé par session_write_close(), lorsque session_register_shutdown() échoue, et aussi durant la phase de terminaison de la requête. Note: SessionHandlerInterface::close() est appelée immediatement après.

PHP appelera cette fonction lorsque la session est sur le point d'être sauvegardée et fermée. Il encode les données issues de $_SESSION vers une chaine sérialisée et la passe avec l'ID de session au support de stockage. La fonction de sérialisation est fournie dans session.serialize_handler.

Cette méthode est appelée par PHP après qu'il ait fermé les tampons de sortie, sauf si vous l'invoquez vous-même au moyen de session_write_close().

Liste de paramètres

session_id

L'identifiant de session.

session_data

Les données de session encodées. Elles sont issues du codage du contenu de $_SESSION et représentées sous forme de chaine sérialisée.

Valeurs de retour

La valeur retournée (habituellement TRUE en cas de succès, FALSE si une erreur survient). Notez que cette valeur est retournée en interne à PHP pour analyse.

Voir aussi

  • La directive de configuration session.serialize_handler


Sauvegarde d'Identifiant de session dans PostgreSQL

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Définitions de Table
  • Constantes pré-définies
  • Session PgSQL Fonctions
    • session_pgsql_add_error — Incrémente le nombre d'erreurs et fixe le dernier message d'erreur
    • session_pgsql_get_error — Retourne le nombre d'erreurs et le dernier message d'erreur
    • session_pgsql_get_field — Récupère la valeur de champ spécial
    • session_pgsql_reset — Remet la connexion à la session des serveurs de base de données
    • session_pgsql_set_field — Fixe la valeur d'un champ spécial
    • session_pgsql_status — Récupère le statut de l'identifiant de sauvegarde courant


Introduction

Note: Cette extension n'est pas disponible sur les plates-formes Windows.

Ce module vous fournit un moyen additionnel pour sauvegarder vos identifiants de session pour les modules de session utilisant » PostgreSQL session en tant que sauvegarde du système. La sauvegarde d'identifiant de session user-level peut être aussi utilisée, mais ce module est écrit en C. Par conséquent, ce module est largement 2 fois plus rapide que la sauvegarde d'identifiant écrit en PHP.

Session PgSQL est conçu pour fonctionner avec n'importe quel sorte de sites web et offre certaines fonctionnalités avancées :

  • tables de session sont créées automatiquement
  • vidage de table de session automatique
  • meilleure récupération de place
  • support de multiples serveurs PostgreSQL
  • basculement de serveur de base de données automatique (changement)
  • chargement balancé de serveur de base de données automatique s'il y a multiples serveurs PostgreSQL.
  • court-circuit de UPDATE


Pré-requis

Vous devez posséder au moins PHP >= 4.3.0, PostgreSQL >= 7.2.0 comme serveur de base de données. libpq qui vient avec PostgreSQL 7.2.0 ou supérieur (et les fichiers d'en-tête pour construction) et » libmm (et les fichiers d'en-tête).


Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/session_pgsql.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

La sauvegarde d'identifiant de session de PostgreSQL est toujours en développement. Référez-vous au fichier README dans la distribution de source pour les détails de la configuration.


  • « Configuration à l'exécution
  • Définitions de Table »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


Définitions de Table

Définition de table de session

CREATE TABLE php_session (
 sess_id            text,
 sess_name          text,
 sess_data          text,
 sess_created       integer,
 sess_modified      integer,
 sess_expire        integer,
 sess_addr_created  text,
 sess_addr_modified text,
 sess_counter       integer,
 sess_error         integer,
 sess_warning       integer,
 sess_notice        integer,
 sess_err_message   text,
 sess_custom        text
);

CREATE INDEX php_session_idx ON php_session USING BTREE (sess_id);

Avertissement

Si vous utilisez HASH pour INDEX, vous aurez des problèmes de blocage lorsque la charge du serveur est très élevé. Même s'il est peu probable d'avoir un blocage sous des opérations normales, cela peut se produire. N'utilisez pas HASH pour INDEX.

Vous pouvez changer la table de session tant que tous les champs sont définis.

Définition de table de variables d'application

CREATE TABLE php_app_vars (
 app_modified       integer,
 app_name           text,
 app_vars           text
);


  • « Définitions de Table
  • Session PgSQL Fonctions »
  • PHP Manual
  • Session PgSQL
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Session PgSQL Fonctions

Information Contact

Pour le moment, je n'ai pas vraiment le temps pour développer plus loin cette extension. Je créerai de plus en plus d'options dans un futur proche.

Si vous avez des commentaires, des bogues, des améliorations ou vous voulez aider le développement, vous pouvez me laisser un mail à » yohgaki@php.net. Toute aide est la bienvenue.

Sommaire

  • session_pgsql_add_error — Incrémente le nombre d'erreurs et fixe le dernier message d'erreur
  • session_pgsql_get_error — Retourne le nombre d'erreurs et le dernier message d'erreur
  • session_pgsql_get_field — Récupère la valeur de champ spécial
  • session_pgsql_reset — Remet la connexion à la session des serveurs de base de données
  • session_pgsql_set_field — Fixe la valeur d'un champ spécial
  • session_pgsql_status — Récupère le statut de l'identifiant de sauvegarde courant


Incrémente le nombre d'erreurs et fixe le dernier message d'erreur

  • « Session PgSQL Fonctions
  • session_pgsql_get_error »
  • PHP Manual
  • Session PgSQL Fonctions
  • Incrémente le nombre d'erreurs et fixe le dernier message d'erreur

session_pgsql_add_error

(PECL session_pgsql SVN)

session_pgsql_add_error — Incrémente le nombre d'erreurs et fixe le dernier message d'erreur

Description

bool session_pgsql_add_error ( int $error_level [, string $error_message ] )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

error_level

error_message

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • session_pgsql_get_error() - Retourne le nombre d'erreurs et le dernier message d'erreur


Retourne le nombre d'erreurs et le dernier message d'erreur

  • « session_pgsql_add_error
  • session_pgsql_get_field »
  • PHP Manual
  • Session PgSQL Fonctions
  • Retourne le nombre d'erreurs et le dernier message d'erreur

session_pgsql_get_error

(PECL session_pgsql SVN)

session_pgsql_get_error — Retourne le nombre d'erreurs et le dernier message d'erreur

Description

array session_pgsql_get_error ([ bool $with_error_message = false ] )

Récupère le nombre d'erreurs et optionnellement les messages d'erreurs.

Liste de paramètres

with_error_message

Fixé à TRUE le message d'erreur littéral pour chaque erreur est aussi retourné.

Valeurs de retour

Le nombre d'erreurs est retourné comme array.

Voir aussi

  • session_pgsql_add_error() - Incrémente le nombre d'erreurs et fixe le dernier message d'erreur


Récupère la valeur de champ spécial

  • « session_pgsql_get_error
  • session_pgsql_reset »
  • PHP Manual
  • Session PgSQL Fonctions
  • Récupère la valeur de champ spécial

session_pgsql_get_field

(PECL session_pgsql SVN)

session_pgsql_get_field — Récupère la valeur de champ spécial

Description

string session_pgsql_get_field ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

  • session_pgsql_set_field() - Fixe la valeur d'un champ spécial


Remet la connexion à la session des serveurs de base de données

  • « session_pgsql_get_field
  • session_pgsql_set_field »
  • PHP Manual
  • Session PgSQL Fonctions
  • Remet la connexion à la session des serveurs de base de données

session_pgsql_reset

(PECL session_pgsql SVN)

session_pgsql_reset — Remet la connexion à la session des serveurs de base de données

Description

bool session_pgsql_reset ( void )

Remet la connexion à la session des serveurs de base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Fixe la valeur d'un champ spécial

  • « session_pgsql_reset
  • session_pgsql_status »
  • PHP Manual
  • Session PgSQL Fonctions
  • Fixe la valeur d'un champ spécial

session_pgsql_set_field

(PECL session_pgsql SVN)

session_pgsql_set_field — Fixe la valeur d'un champ spécial

Description

bool session_pgsql_set_field ( string $value )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

value

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • session_pgsql_get_field() - Récupère la valeur de champ spécial


Récupère le statut de l'identifiant de sauvegarde courant

  • « session_pgsql_set_field
  • Traitement du texte »
  • PHP Manual
  • Session PgSQL Fonctions
  • Récupère le statut de l'identifiant de sauvegarde courant

session_pgsql_status

(PECL session_pgsql SVN)

session_pgsql_status — Récupère le statut de l'identifiant de sauvegarde courant

Description

array session_pgsql_status ( void )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Traitement du texte

  • BBCode
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions BBCode
  • PCRE — Expressions rationnelles (compatible Perl)
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Masques PCRE
    • Fonctions PCRE
  • Regex POSIX — Expressions rationnelles
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions POSIX Regex
  • ssdeep — Hachages flous ssdeep
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions ssdeep
  • Chaîne de caractères
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions sur les chaînes de caractères
    • Historique des modifications


BBCode

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions BBCode
    • bbcode_add_element — Ajoute un élément BBCode
    • bbcode_add_smiley — Ajoute une émoticône à l'analyseur
    • bbcode_create — Crée une ressource BBCode
    • bbcode_destroy — Ferme une ressource BBCode_container
    • bbcode_parse — Analyse une chaîne en suivant le jeu de règles données
    • bbcode_set_arg_parser — Attache un analyseur pour gérer un autre jeu de règles
    • bbcode_set_flags — Spécifie ou modifie des options d'analyseurs BBcode


Introduction

Cette extension se propose de vous aider dans l'analyse du texte BBCode afin de le convertir en HTML ou dans un autre langage à base de balises. Elle utilise une analyse en un seul passage et est bien plus rapide qu'une approche basée sur les expressions rationnelles. De plus, elle vous aidera à obtenir du code HTML valide en réorganisant les balises d'ouverture et de fermeture et en fermant automatiquement les balises.

Depuis la version 0.10.1, cette extension supporte les arguments encadrés par des guillemets simples, des guillemets doubles, mais aussi des guillemets doubles échappés en HTML.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/bbcode

Une solution alternative, écrite en PHP, est le paquet PEAR » HTML_BBCodeParser.


Types de ressources

Une seule ressource est utilisée par l'extension BBCode : BBCode_Container, retournée par la fonction bbcode_create().


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

BBCODE_TYPE_NOARG (entier)
La balise BBCode n'accepte aucun argument.
BBCODE_TYPE_SINGLE (entier)
La balise BBCode n'a pas de balise fermante correspondante.
BBCODE_TYPE_ARG (entier)
La balise BBCode nécessite un argument.
BBCODE_TYPE_OPTARG (entier)
La balise BBCode accepte un argument optionnel.
BBCODE_TYPE_ROOT (entier)
La balise BBCode est la balise racine spéciale (niveau 0).
BBCODE_FLAGS_ARG_PARSING (entier)
La balise BBCode nécessite un sous argument d'analyse (l'argument sera également analysé par l'extension BBCode). Depuis la version 0.10.2, un autre analyseur peut être utilisé en tant qu'argument.
BBCODE_FLAGS_CDATA_NOT_ALLOWED (entier)
La balise BBCode n'accepte pas de contenu (il sera automatiquement supprimé).
BBCODE_FLAGS_SMILEYS_ON (entier) - depuis 0.10.2
La balise BBCode accepte les émoticônes.
BBCODE_FLAGS_SMILEYS_OFF (entier) - depuis 0.10.2
La balise BBCode n'accepte pas les émoticônes.
BBCODE_FLAGS_ONE_OPEN_PER_LEVEL (entier) - depuis 0.10.2
La balise BBCode se ferme automatiquement si une autre balise du même type est trouvée, au même niveau.
BBCODE_FLAGS_REMOVE_IF_EMPTY (entier) - depuis 0.10.2
La balise BBCode est automatiquement effacé si le contenu est vide ; cela permet d'alléger le code HTML.
BBCODE_FLAGS_DENY_REOPEN_CHILD (entier) - depuis 0.10.3
La valise BBCode ne permet pas d'inclure des balises enfants réouvertes lorsqu'elles ont été fermées automatiquement.
BBCODE_ARG_DOUBLE_QUOTE (entier) - depuis 0.10.2
C'est une option de l'analyseur, permettant l'encadrement des arguments avec des doubles guillemets ".
BBCODE_ARG_SINGLE_QUOTE (entier) - depuis 0.10.2
C'est une option de l'analyseur, permettant l'encadrement des arguments avec des guillemets simples '.
BBCODE_ARG_HTML_QUOTE (entier) - depuis 0.10.2
C'est une option de l'analyseur, permettant l'encadrement des arguments avec la version HTML des guillemets doubles &quot;.
BBCODE_ARG_QUOTE_ESCAPING (entier) - depuis 1.0.2
C'est une option de l'analyseur, permettant d'échapper les guillemets présents dans l'argument. Ceci permet de trouver le délimiteur dans la chaîne. Le caractère d'échappement est \. Il peut échapper n'importe quel caractère, y compris lui-même. S'il est trouvé devant un caractère qui ne peut être échappé, il sera supprimé. Le comportement par défaut est de ne pas utiliser l'échappement.
BBCODE_AUTO_CORRECT (entier) - depuis 0.10.2
C'est une option de l'analyseur permettant de changer la façon dont les erreurs sont traitées. Elle ferme automatiquement les balises dans l'ordre dans laquelle elles ont été ouvertes. Et traite les balises avec seulement une balise ouverte s'il y a une balise fermante.
BBCODE_CORRECT_REOPEN_TAGS (entier) - depuis 0.10.2
C'est une option de l'analyseur permettant de changer la façon dont les erreurs sont traitées. Elle réouvre automatiquement les balises si les balises de fermeture ne sont pas dans le bon ordre.
BBCODE_DISABLE_TREE_BUILD (entier) - depuis 0.10.2
C'est une option de l'analyseur permettant de désactiver l'analyse BBCode si seul le remplacement des émoticônes doit être effectué.
BBCODE_DEFAULT_SMILEYS_ON (entier) - depuis 0.10.2
C'est une option de l'analyseur permettant l'activation des émoticônes si aucune balise n'est fournie au niveau des balises.
BBCODE_DEFAULT_SMILEYS_OFF (entier) - depuis 0.10.2
C'est une option de l'analyseur permettant la désactivation des émoticônes si aucune balise n'est fournie au niveau des balises.
BBCODE_FORCE_SMILEYS_OFF (entier) - depuis 0.10.2
C'est une option de l'analyseur permettant la désactivation complète de l'analyse des émoticônes.
BBCODE_SMILEYS_CASE_INSENSITIVE (entier) - depuis 0.10.3
Utilise une détection insensible à la casse pour les émoticônes, au lieu d'une simple recherche binaire.
BBCODE_SET_FLAGS_SET (entier) - depuis 0.10.2
Ceci permet de définir un jeu complet de drapeaux de l'analyseur.
BBCODE_SET_FLAGS_ADD (entier) - depuis 0.10.2
Ceci permet d'activer un drapeau de l'analyseur.
BBCODE_SET_FLAGS_REMOVE (entier) - depuis 0.10.2
Ceci permet de désactiver un drapeau de l'analyseur.


Fonctions BBCode

Sommaire

  • bbcode_add_element — Ajoute un élément BBCode
  • bbcode_add_smiley — Ajoute une émoticône à l'analyseur
  • bbcode_create — Crée une ressource BBCode
  • bbcode_destroy — Ferme une ressource BBCode_container
  • bbcode_parse — Analyse une chaîne en suivant le jeu de règles données
  • bbcode_set_arg_parser — Attache un analyseur pour gérer un autre jeu de règles
  • bbcode_set_flags — Spécifie ou modifie des options d'analyseurs BBcode


Ajoute un élément BBCode

  • « Fonctions BBCode
  • bbcode_add_smiley »
  • PHP Manual
  • Fonctions BBCode
  • Ajoute un élément BBCode

bbcode_add_element

(PECL bbcode >= 0.9.0)

bbcode_add_element — Ajoute un élément BBCode

Description

bool bbcode_add_element ( resource $bbcode_container , string $tag_name , array $tag_rules )

Ajoute une balise à une ressource BBCode_Container existante.

Liste de paramètres

bbcode_container

Ressource BBCode_Container, retournée par bbcode_create().

tag_name

La nouvelle balise à ajouter au BBCode_Container tag_set.

tag_rules

Un tableau associatif contenant les règles d'analyse ; voir bbcode_create() pour les clés disponibles.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Ajoute une émoticône à l'analyseur

  • « bbcode_add_element
  • bbcode_create »
  • PHP Manual
  • Fonctions BBCode
  • Ajoute une émoticône à l'analyseur

bbcode_add_smiley

(PECL bbcode >= 0.10.2)

bbcode_add_smiley — Ajoute une émoticône à l'analyseur

Description

bool bbcode_add_smiley ( resource $bbcode_container , string $smiley , string $replace_by )

Ajoute une émoticône à l'analyseur.

Liste de paramètres

bbcode_container

Ressource BBCode_Container, retournée par bbcode_create().

smiley

La chaîne qui représente l'émoticône.

replace_by

La chaîne qui remplace l'émoticône lorsqu'il sera trouvé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bbcode_add_smiley()

<?php
/*
 * Préparation du jeu de règles
 */
$arrayBBCode=array(
    ''=>         array('type'=>BBCODE_TYPE_ROOT,
                       'childs'=>'!i'),
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b>',
                       'close_tag'=>'</b>'),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>',
                       'close_tag'=>'</u>',
                       'flags'=>BBCODE_FLAGS_SMILEYS_OFF),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>',
                       'close_tag'=>'</i>',
                       'childs'=>'b'),
);
/*
 * Aalyse du texte
 */
$text=<<<EOF
[i] No parse Test [/i] :)
[b] Parsed, with smiley :( [/b]
[u] Parsed, with no smiley :D [/u]
EOF;
/*
 * Initialise l'analyseur
 */
$BBHandler=bbcode_create($arrayBBCode);
/*
 * Ajout une règle d'émoticône à l'analyseur
 */
bbcode_add_smiley($BBHandler, ":)", "<img src=\"smiley.gif\" alt=\":)\" />");
bbcode_add_smiley($BBHandler, ":(", "<img src=\"sad.gif\" alt=\":(\" />");
bbcode_add_smiley($BBHandler, ":D", "<img src=\"happy.gif\" alt=\":D\" />");
bbcode_add_smiley($BBHandler, ":p", "<img src=\"tong.gif\" alt=\":p\" />");
bbcode_add_smiley($BBHandler, ":|", "<img src=\"special.gif\" alt=\":|\" />");
bbcode_add_smiley($BBHandler, ":6:", "<img src=\"six.gif\" alt=\":6:\" />");
/*
 * Analyse le texte
 */
echo bbcode_parse($BBHandler,$text);
?>

L'exemple ci-dessus va afficher :

[i] No parse Test [/i] <img src="smiley.gif" alt=":)" />
<b> Parsed, with smiley <img src="sad.gif" alt=":(" /> </b>
<u> Parsed, with no smiley :D </u>


Crée une ressource BBCode

  • « bbcode_add_smiley
  • bbcode_destroy »
  • PHP Manual
  • Fonctions BBCode
  • Crée une ressource BBCode

bbcode_create

(PECL bbcode >= 0.9.0)

bbcode_create — Crée une ressource BBCode

Description

resource bbcode_create ([ array $bbcode_initial_tags = NULL ] )

Cette fonction retourne une nouvelle ressource BBCode, utilisée pour analyser les chaînes BBCode.

Liste de paramètres

bbcode_initial_tags

Un tableau associatif contenant les noms des balises en tant que clés, et les paramètres requis afin d'analyser correctement le code BBCode en tant que valeurs. Les paires clés/valeurs suivantes sont supportées :

  • flags optionnel - un jeu de drapeaux, basé sur les constantes BBCODE_FLAGS_*.
  • type requis - un entier, indiquant le type de drapeau. Utilisez les constantes BBCODE_TYPE_*.
  • open_tag requis - la chaîne HTML de remplacement pour la balise ouvrante.
  • close_tag requis - la chaîne HTML de remplacement pour la balise fermante.
  • default_arg optionnel - utilise cette valeur en tant qu'argument par défaut si aucun n'est fourni et que tag_type est du type OPTARG.
  • content_handling optionnel - Indique la fonction de rappel utilisée pour modifier le contenu. La notation orientée objet est supportée uniquement depuis la version 0.10.1. La signature de la fonction de rappel est de la forme : (string $content, string $argument)
  • param_handling optionnel - Spécifie la fonction de rappel utilisée pour modifier l'argument. La notation orientée objet est supportée uniquement depuis la version 0.10.1. La signature de la fonction de rappel est de la forme : (string $content, string $argument)
  • childs optionnel - Liste des enfants acceptés en tant que balise. Le format de la liste est une succession de chaînes, séparées par une virgule. Si la liste commence par un point d'exclamation, ce sera la liste des enfants rejetées comme balises.
  • parent optionnel - Liste des enfants acceptés pour la balise. Le format de la liste est une succession de chaînes, séparées par une virgule.

Valeurs de retour

Retourne un BBCode_Container

Exemples

Exemple #1 Exemple avec bbcode_create()

<?php
$arrayBBCode=array(
    ''=>         array('type'=>BBCODE_TYPE_ROOT,  'childs'=>'!i'),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<i>',
                    'close_tag'=>'</i>', 'childs'=>'b'),
    'url'=>      array('type'=>BBCODE_TYPE_OPTARG,
                    'open_tag'=>'<a href="{PARAM}">', 'close_tag'=>'</a>',
                    'default_arg'=>'{CONTENT}',
                    'childs'=>'b,i'),
    'img'=>      array('type'=>BBCODE_TYPE_NOARG,
                    'open_tag'=>'<img src="', 'close_tag'=>'" />',
                    'childs'=>''),
    'b'=>        array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<b>',
                    'close_tag'=>'</b>'),
);
$text=<<<EOF
[b]Bold Text[/b]
[i]Italic Text[/i]
[url]http://www.php.net/[/url]
[url=http://pecl.php.net/][b]Content Text[/b][/url]
[img]http://static.php.net/www.php.net/images/php.gif[/img]
[url=http://www.php.net/]
[img]http://static.php.net/www.php.net/images/php.gif[/img]
[/url]
EOF;
$BBHandler=bbcode_create($arrayBBCode);
echo bbcode_parse($BBHandler,$text);
?>

L'exemple ci-dessus va afficher :

<b>Bold Text</b>
[i]Italic Text[/i]
<a href="http://www.php.net/">http://www.php.net/</a>
<a href="http://pecl.php.net/"><b>Content Text</b></a>
<img src="http://static.php.net/www.php.net/images/php.gif" />
<a href="http://www.php.net/">
[img]http://static.php.net/www.php.net/images/php.gif[/img]
</a>


Ferme une ressource BBCode_container

  • « bbcode_create
  • bbcode_parse »
  • PHP Manual
  • Fonctions BBCode
  • Ferme une ressource BBCode_container

bbcode_destroy

(PECL bbcode >= 0.9.0)

bbcode_destroy — Ferme une ressource BBCode_container

Description

bool bbcode_destroy ( resource $bbcode_container )

Cette fonction ferme la ressource ouverte par bbcode_create().

Liste de paramètres

bbcode_container

Ressource BBCode_Container, retournée par bbcode_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Analyse une chaîne en suivant le jeu de règles données

  • « bbcode_destroy
  • bbcode_set_arg_parser »
  • PHP Manual
  • Fonctions BBCode
  • Analyse une chaîne en suivant le jeu de règles données

bbcode_parse

(PECL bbcode >= 0.9.0)

bbcode_parse — Analyse une chaîne en suivant le jeu de règles données

Description

string bbcode_parse ( resource $bbcode_container , string $to_parse )

Cette fonction analyse la chaîne to_parse en suivant les règles de bbcode_container, créé par bbcode_create()

Liste de paramètres

bbcode_container

Ressource BBCode_Container, retournée par bbcode_create().

to_parse

La chaîne à analyser.

Valeurs de retour

Retourne la chaine analysée, ou FALSE si une erreur survient.


Attache un analyseur pour gérer un autre jeu de règles

  • « bbcode_parse
  • bbcode_set_flags »
  • PHP Manual
  • Fonctions BBCode
  • Attache un analyseur pour gérer un autre jeu de règles

bbcode_set_arg_parser

(PECL bbcode >= 0.10.2)

bbcode_set_arg_parser — Attache un analyseur pour gérer un autre jeu de règles

Description

bool bbcode_set_arg_parser ( resource $bbcode_container , resource $bbcode_arg_parser )

Attache un autre analyseur à bbcode_container. Cet analyseur est utilisé uniquement lors que les arguments doivent être analysés. Si cette fonction n'est pas utilisée, l'analyseur par défaut est l'analyseur lui-même.

Liste de paramètres

bbcode_container

Ressource BBCode_Container, retournée par bbcode_create().

bbcode_arg_parser

Ressource BBCode_Container, retournée par bbcode_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bbcode_set_arg_parser()

<?php
/*
 * Génération des règles de BBCode pour l'analyseur principal
 */
$arrayBBCode=array(
    'quote'=>    array('type'=>BBCODE_TYPE_ARG,
                       'open_tag'=>'<quote><h4>Source: {PARAM}</h4>',
                       'close_tag'=>'</quote>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY|BBCODE_FLAGS_ARG_PARSING),
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b>', 'close_tag'=>'</b>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>', 'close_tag'=>'</u>',
                       'flags'=>BBCODE_FLAGS_SMILEYS_OFF | BBCODE_FLAGS_REMOVE_IF_EMPTY | BBCODE_FLAGS_SMILEYS_OFF),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>', 'close_tag'=>'</i>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
);
/*
 * Génération des règles de BBCode pour les arguments
 */
$arrayBBCode_arg=array(
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b class="sub">', 'close_tag'=>'</b>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>', 'close_tag'=>'</u>',
                       'flags'=>BBCODE_FLAGS_SMILEYS_OFF | BBCODE_FLAGS_REMOVE_IF_EMPTY | BBCODE_FLAGS_SMILEYS_OFF),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>', 'close_tag'=>'</i>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
);
/*
 * Texte qui sera traité
 */
$text=<<<EOF
[quote="[b]Test[/b]"]
Foo :)
[/quote]
[b]Bar example :)[/b] :)
EOF;
/*
 * Initialisation des deux analyseurs BBcode
 */
$BBHandler=bbcode_create($arrayBBCode);
$BBArgHandler=bbcode_create($arrayBBCode_arg);
/*
 * Configuration des deux analyseurs
 */
bbcode_set_flags($BBHandler,
                 BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|BBCODE_ARG_DOUBLE_QUOTE|
                 BBCODE_ARG_SINGLE_QUOTE|BBCODE_ARG_HTML_QUOTE,BBCODE_SET_FLAGS_SET);
bbcode_set_flags($BBArgHandler,
                 BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|BBCODE_ARG_DOUBLE_QUOTE|
                 BBCODE_ARG_SINGLE_QUOTE|BBCODE_ARG_HTML_QUOTE,BBCODE_SET_FLAGS_SET);
/*
 * Configuration de $BBArgHandler comme analyseur d'arguments
 */
bbcode_set_arg_parser($BBHandler,$BBArgHandler);
/*
 * Ajout de la gestion des émoticônes
 */
bbcode_add_smiley($BBHandler, ":)", "<img src=\"smiley.gif\" alt=\":)\" />");
/*
 * Utilisation de l'analyseur principal
 */
echo bbcode_parse($BBHandler,$text);
?>

L'exemple ci-dessus va afficher :

<quote><h4>Source: <b class="sub">Test</b></h4>
Foo <img src="smiley.gif" alt=":)" />
</quote>
<b>Bar example :)</b> <img src="smiley.gif" alt=":)" />


Spécifie ou modifie des options d'analyseurs BBcode

  • « bbcode_set_arg_parser
  • PCRE »
  • PHP Manual
  • Fonctions BBCode
  • Spécifie ou modifie des options d'analyseurs BBcode

bbcode_set_flags

(PECL bbcode >= 0.10.2)

bbcode_set_flags — Spécifie ou modifie des options d'analyseurs BBcode

Description

bool bbcode_set_flags ( resource $bbcode_container , int $flags [, int $mode = BBCODE_SET_FLAGS_SET ] )

Spécifie ou modifie des options d'analyseur BBCode.

Liste de paramètres

bbcode_container

Ressource BBCode_Container, retournée par bbcode_create().

flags

Le jeu de drapeaux qui doivent être appliquée aux options de bbcode_container

mode

Une des constantes BBCODE_SET_FLAGS_* à utiliser, ou supprimer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec bbcode_set_flags()

<?php
/*
 * Préparation des règles
 */
$arrayBBCode=array(
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b>', 'close_tag'=>'</b>'),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>', 'close_tag'=>'</u>'),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>', 'close_tag'=>'</i>'),
);
/*
 * BBCode mal imbriqué
 */
$text="[i] Parser [b] Auto Correction [/i] at work [/b]\n";
$BBHandler=bbcode_create($arrayBBCode);
echo bbcode_parse($BBHandler,$text);
// Activation de la réouverture automatique des éléments fermés
bbcode_set_flags($BBHandler,BBCODE_CORRECT_REOPEN_TAGS,
                 BBCODE_SET_FLAGS_SET);
echo bbcode_parse($BBHandler,$text);

/*
 * BBCode mal imbriqué
 */
$text="[i] Parser [b] Auto Correction [/i] at work\n";
echo bbcode_parse($BBHandler,$text);
// Activation de la fermeture automatique des éléments ouverts
bbcode_set_flags($BBHandler,
                 BBCODE_CORRECT_REOPEN_TAGS|BBCODE_AUTO_CORRECT,
                 BBCODE_SET_FLAGS_SET);
echo bbcode_parse($BBHandler,$text);
?>

L'exemple ci-dessus va afficher :

<i> Parser <b> Auto Correction </b></i> at work
<i> Parser <b> Auto Correction </b></i><b> at work </b>
<i> Parser [b] Auto Correction </i> at work
<i> Parser <b> Auto Correction </b></i><b> at work
</b>


Expressions rationnelles (compatible Perl)

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Masques PCRE
    • Fonctionnement des expressions rationnelles — Syntaxe des masques
    • Options disponibles pour les expressions rationnelles — Options de recherche
    • Différences avec Perl
    • Differences avec les regex POSIX
  • Fonctions PCRE
    • preg_filter — Recherche et remplace avec une expression rationnelle
    • preg_grep — Retourne un tableau avec les résultats de la recherche
    • preg_last_error — Retourne le code erreur de la dernière expression PCRE exécutée
    • preg_match_all — Expression rationnelle globale
    • preg_match — Effectue une recherche de correspondance avec une expression rationnelle standard
    • preg_quote — Protection des caractères spéciaux des expressions rationnelles
    • preg_replace_callback_array — Perform a regular expression search and replace using callbacks
    • preg_replace_callback — Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback
    • preg_replace — Rechercher et remplacer par expression rationnelle standard
    • preg_split — Éclate une chaîne par expression rationnelle


Introduction

La syntaxe des masques utilisés dans ces fonctions ressemble fort à celle de Perl. Les expressions seront entourées de délimiteurs, slash (/), par exemple. Un délimiteur peut être n'importe quel caractère, tant qu'il n'est pas alphanumérique, un caractère blanc, l'antislash (\) ou le caractère nul (\0). Si un délimiteur doit être utilisé dans l'expression, il faudra le protéger avec un antislash. Depuis PHP 4.0.4, vous pouvez utiliser les délimiteurs (), {}, [], et <>, comme en Perl. Voir la syntaxe des masques pour plus d'explications.

Le délimiteur final peut être suivi d'options qui affecteront la recherche. Voir aussi options de recherche.

PHP supporte également les expressions rationnelles utilisant la syntaxe POSIX étendue (fonctions REGEX POSIX-extended).

Note:

Cette extension maintient un cache global par thread des expressions rationnelles compilées (jusqu'à 4096).

Avertissement

Vous devez être conscient des limitations de PCRE. Lisez » http://www.pcre.org/pcre.txt pour plus de détails.

La bibliothèque PCRE est un ensemble de fonctions qui implémentent les expressions rationnelles en utilisant la même syntaxe et sémantique que Perl 5 avec seulement quelques différence (voir plus bas). L'implémentation courante correspond à Perl 5.005.


Installation

L'extension PCRE est une extension native de PHP, elle est donc toujours activée. Par défaut, cette extension est compilée en utilisant la bibliothèque PCRE empaquetée. Optionnellement, vous pouvez utiliser une bibliothèque PCRE externe en passant l'option de configuration --with-pcre-regex=DIR ou DIR est l'emplacement des fichiers de la bibliothèque PCRE.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note:

Avant PHP 5.3.0, cette extension pouvait être désactivée en passant l'option de configuration --without-pcre-regex .

PCRE est un projet actif et au fur et à mesure où il change, les fonctionnalités PHP change également. Il est possible que certaines parties du manuel PHP soient obsolètes et qu'elles ne couvrent pas les nouvelles fonctionnalités que fournies PCRE. Pour une liste des modifications, reportez-vous au » changlog de la bibliothèques PCRE ainsi qu'à l'historique suivant de la version PCRE inclue dans PHP :

Historique des mises à jour de la bibliothèque PCRE inclue dans PHP
Version PHP | Version PCRE mise à jour | Notes
5.5.10 | 8.34 |
5.5.0 / 5.4.14 / 5.3.24 | 8.32 |
5.4.9 / 5.3.19 | 8.31 |
5.3.7 | 8.12 |
5.3.6 | 8.11 |
5.3.4 | 8.10 |
5.3.3 | 8.02 |
5.3.2 | 8.00 |
5.3.0 | 7.9 |
5.2.7 | 7.8 |
5.2.6 | 7.6 |
5.2.5 | 7.3 |
5.2.4 | 7.2 |
5.2.2 | 7.0 |
5.2.0 | 6.7 |
5.1.0 | 6.2 |
5.0.5 | 5.0 |
5.0.0 | 4.5 |
4.4.7 | 7.7 |


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration PCRE
Nom | Défaut | Modifiable | Historique
pcre.backtrack_limit | "1000000" | PHP_INI_ALL | Disponible depuis PHP 5.2.0.
pcre.recursion_limit | "100000" | PHP_INI_ALL | Disponible depuis PHP 5.2.0.
pcre.jit | "1" | PHP_INI_ALL | Disponible depuis PHP 7.0.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

pcre.backtrack_limit entier

PCRE's backtracking limit. Par défaut à 100000 en PHP < 5.3.7.

pcre.recursion_limit entier

Limite de récurrence PCRE. Notez que si vous définissez cette valeur à un nombre très élevé, vous pourriez consommer tous les processus disponibles et, éventuellement, faire planter PHP (la taille limite de la pile imposée par le système sera atteinte).

pcre.jit boolean

Si la compilation PCRE "just-in-time" doit être utilisée.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes PREG
Constante | Description | Depuis
PREG_PATTERN_ORDER | Ordonne les résultats de façon à ce que $matches[0] contienne les résultats qui correspondent au masque entier, $matches[1] ceux qui correspondent à la première parenthèse capturante et ainsi de suite. Cette constante est utilisée avec preg_match_all(). |
PREG_SET_ORDER | Les résultats sont classés de telle façon que $matches[0] contient la première série de résultat, $matches[1] la deuxième, etc. Cette constante est utilisée avec preg_match_all(). |
PREG_OFFSET_CAPTURE | Voir la description de PREG_SPLIT_OFFSET_CAPTURE. | 4.3.0
PREG_SPLIT_NO_EMPTY | Si cette option est activée, seules les sous-chaînes non vides seront retournées par preg_split(). |
PREG_SPLIT_DELIM_CAPTURE | Si cette option est activée, les expressions entre parenthèses entre les délimiteurs de masques seront aussi capturées et retournées. Cette constante est utilisée avec preg_split(). | 4.0.5
PREG_SPLIT_OFFSET_CAPTURE | Si cette constante est utilisée avec preg_split(), l'offset de début de résultat sera retourné, en plus de la chaîne résultat. Notez que cela change la nature du résultat retourné en un tableau contenant une chaîne à l'offset 0 et une chaîne contenant un offset à l'offset 1 | 4.3.0
PREG_NO_ERROR | Retourné par la fonction preg_last_error() s'il n'y a pas d'erreur. | 5.2.0
PREG_INTERNAL_ERROR | Retourné par la fonction preg_last_error() s'il y a une erreur interne PCRE. | 5.2.0
PREG_BACKTRACK_LIMIT_ERROR | Retourné par la fonction preg_last_error() si backtrack limit a été atteint. | 5.2.0
PREG_RECURSION_LIMIT_ERROR | Retourné par la fonction preg_last_error() si la limite de récurrence a été atteint. | 5.2.0
PREG_BAD_UTF8_ERROR | Retourné par la fonction preg_last_error() si la dernière erreur est du à une malformation des données UTF-8 (uniquement lors de l'exécution d'une expression en mode UTF-8). | 5.2.0
PREG_BAD_UTF8_OFFSET_ERROR | Retourné par la fonction preg_last_error() si l'offset ne correspond pas au début d'un point valide UTF-8 (uniquement lorsque l'on exécute une expression enmode UTF-8). | 5.3.0
PCRE_VERSION | Version PCRE ainsi que la date de publication (i.e. "7.0 18-Dec-2006"). | 5.2.4


Exemples

Exemple #1 Exemples de masques valides

  • /<\/\w+>/
  • |(\d{3})-\d+|Sm
  • /^(?i)php[34]/
  • {^\s+(\s+)?$}

Exemple #2 Exemples de masques invalides

  • /href='(.*)' - il manque le délimiteur de fin
  • /\w+\s*\w+/J - le modificateur 'J' est inconnu
  • 1-\d3-\d3-\d4| - il manque le délimiteur de début


Masques PCRE

Sommaire

  • Fonctionnement des expressions rationnelles
  • Options disponibles pour les expressions rationnelles
  • Différences avec Perl
  • Differences avec les regex POSIX


Syntaxe des masques

Sommaire

  • Introduction
  • Délimiteurs
  • Métacaractères
  • Séquences d'échappement
  • Propriétés des caractères Unicode
  • Ancres
  • Point
  • Classes de caractères
  • Alternatives
  • Options internes
  • Sous-masques
  • Répétitions
  • Références arrières
  • Assertions
  • Sous-masques uniques
  • Les sous-masques conditionnels
  • Commentaires
  • Masques récursifs
  • Performance


Introduction

La syntaxe et la sémantique des expressions rationnelles supportées par PCRE sont décrites ci-dessous. Les expressions rationnelles sont aussi décrites dans la documentation Perl, et dans un grand nombre d'autres livres, avec de nombreux exemples. Le livre de Jeffrey Friedl "Mastering Regular Expressions", édité chez O'Reilly (ISBN 1-56592-257-3), les décrits en profondeur. Cette description est organisée comme une documentation de référence.

Une expression rationnelle est un masque appliqué à une chaîne sujet, de gauche à droite. La plupart des caractères se représentent eux-mêmes. Un exemple trivial : un masque qui serait "Le rapide renard gris", pourra correspondre à une partie de la chaîne sujet qui sera identique au masque, par exemple "Le rapide renard gris court dans la forêt",


Délimiteurs

Lors de l'utilisation des fonctions PCRE, il est nécessaire que le motif soit encadré par des délimiteurs. Un délimiteur peut être n'importe quel caractère non alpha-numérique autre qu'un backslash ou qu'un espace.

Les délimiteurs les plus courants sont les slashes (/), dièses (#) et les tildes (~). Les exemples suivants ont tous des motifs encadrés avec des délimiteurs valides.

/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%

Il est également possible d'utiliser les délimiteurs utilisant les crochets où les crochets ouvrants et fermants sont respectivement les délimiteurs de début et de fin. (), {}, [] and <> sont tous des styles de crochets valides.

(this [is] a (pattern))
{this [is] a (pattern)}
[this [is] a (pattern)]
<this [is] a (pattern)>
Les délimiteurs utilisant les crochets n'ont pas besoin d'être échappés lorsqu'ils sont utilisés comme caractères méta dans un masque, mais, comme tout autre opérateur, ils doivent être échappés s'ils sont utilisés comme caractères littéraux.

Si le délimiteur doit être décrit dans le motif, il doit être échappé avec un backslash. Si le délimiteur apparait souvent dans le motif, choisir un autre délimiteur est une bonne idée pour en augmenter la lisibilité.

/http:\/\//
#http://#
La fonction preg_quote() peut être utilisée pour échapper une chaine et l'utiliser dans un motif. Son second paramètre optionnel sert à spécifier le délimiteur qui doit être échappé.

Vous pouvez aussi utiliser des modificateurs de motif après le délimiteur final. L'exemple suivant montre une correspondance insensible à la casse.

#[a-z]#i


Métacaractères

La puissance des expressions rationnelles provient de leur capacité à autoriser des alternatives et des quantificateurs de répétition dans le masque. Ils sont encodés dans le masque par des métacaractères, qui ne représentent pas ce qu'ils sont, mais sont interprétés d'une certaine manière.

Il y a deux sortes de métacaractères : ceux qui sont reconnus n'importe où dans un masque, hormis entre crochets, et ceux qui sont reconnus entre crochets. À l'extérieur des crochets, les métacaractères sont :

Métacaractère en dehors des crochets
Métacaractère | Description
\ | Caractère d'échappement, avec de multiples usages
^ | Le début de la chaîne sujet (ou de ligne, en mode multilignes)
$ | La fin de la chaîne sujet ou avant la fin d'une nouvelle ligne (ou fin de ligne, en mode multilignes)
. | Remplace n'importe quel caractère, hormis le caractère de nouvelle ligne (par défaut)
[ | Caractère de début de définition de classe
] | Caractère de fin de définition de classe
| | Caractère de début d'alternative
( | Caractère de début de sous-masque
) | Caractère de fin de sous-masque
? | Étend le sens de (; quantificateur de 0 ou 1; quantificateur de minimisation (Voir les répétitions)
* | Quantificateur de 0 ou plus
+ | Quantificateur de 1 ou plus
{ | Caractère de début de quantificateur minimum/maximum
} | Caractère de fin de quantificateur minimum/maximum
La partie du masque qui est entourée de crochets est appelée classe de caractères. Dans les classes de caractères, les seuls métacaractères autorisés sont :
Meta-characters dans des crochets (classes de caractères)
Métacaractère | Description
\ | Caractère de protection, avec de multiples usages
^ | Négation de la classe, mais uniquement si placé tout au début de la classe
- | Indique un intervalle de caractères
La section suivante décrit l'utilisation de chaque métacaractère.


Séquences d'échappement

Le caractère antislash a de nombreuses utilisations. En premier lieu, s'il est suivi d'un caractère non alphanumérique, il ne prendra pas la signification spéciale qui y est rattachée. Cette utilisation de l'antislash comme caractère de protection s'applique à l'intérieur et à l'extérieur des classes de caractères.

Par exemple, pour rechercher le caractère étoile "*", il faut écrire dans le masque : "\*". Cela s'applique dans tous les cas, que le caractère qui suive soit un métacaractère ou non. C'est un moyen sûr pour s'assurer qu'un caractère sera recherché pour sa valeur littérale, plutôt que pour sa valeur spéciale. En particulier, pour rechercher les antislashs, il faut écrire : "\\".

Note:

La chaîne de caractères PHP simple ou double guillemet a une signification spéciale des antislashs. Donc, si \ doit être recherché avec une expression rationnelle \\, alors "\\\\" ou '\\\\' doit être utilisé dans le code PHP.

Si un masque est utilisé avec l'option PCRE_EXTENDED, les espaces blancs du masque, mais qui ne sont pas dans une classe de caractères, et les caractères entre dièse "#", ainsi que les nouvelles lignes sont ignorées. L'antislash peut être utilisé pour les protéger et ainsi rechercher un espace ou un dièse.

La deuxième utilité de l'antislash est de pouvoir coder des caractères invisibles dans les masques. Il n'y a pas de restriction sur la place de ces caractères invisibles, hormis pour le caractère nul qui doit terminer le masque. Lors de la préparation du masque, il est souvent plus pratique d'utiliser les séquences d'échappement suivantes, plutôt que le caractère binaire qu'elles représentent :

\a
alarme, c'est-à-dire le caractère BEL (hex 07)
\cx
"contrôle-x", avec x qui peut être n'importe quel caractère.
\e
escape (hex 1B)
\f
formfeed (hex 0C)
\n
nouvelle ligne (hex 0A)
\p{xx}
un caractère avec une propriété xx, voir les propriétés unicode pour plus d'informations
\P{xx}
un caracère sans propriété xx, voir les propriétés unicode pour plus d'informations
\r
retour chariot (hex 0D)
\t
tabulation (hex 09)
\xhh
caractère en hexadécimal, de code hh
\ddd
caractère en octal, de code ddd, ou référence arrière

Dans la séquence "\cx" si "x" est en minuscule, il est converti en majuscule. Puis, le bit 6 (hex 40) est inversé. Ainsi "\cz" devient 1A, mais "\c{" devient hex 3B, tandis que "\c;" devient hex 7B.

Après "\x", deux caractères hexadécimaux sont lus (les lettres peuvent être en majuscule ou minuscule). En mode UTF-8, "\x{...}" est autorisée, où le contenu des accolades est une chaîne hexadécimale. Il sera interprété comme un caractère UTF-8 où le numéro de code est le numéro hexadécimal donné. La séquence d'échappement hexadécimale originale, \xhh, correspond à un caractère UTF-8 sur 2 octets si la valeur est plus grande que 127.

Après "\0", deux caractères octaux sont lus. Dans chacun des cas, le métacaractère tente de lire autant de caractères que possible. Ainsi, la séquence "\0\x\07" sera comprise comme deux caractères nuls, suivis d'un caractère alarme (BEL). Assurez-vous que vous fournissez suffisamment de chiffres après le métacaractère.

L'antislash de fin suivi par un nombre autre que 0 est compliqué. À l'extérieur d'une classe de caractère, PCRE le lit, et tous les nombres qui suivent, en tant que nombres décimaux. Si le nombre est plus petit que 10 ou s'il y a eu au moins précédemment une parenthèse gauche capturante dans l'expression, la séquence entière est prise en tant que référence arrière. Une description sur le fonctionnement est donnée plus tard, suivez la discussion sur les parenthèses des sous masques.

À l'intérieur d'un caractère de classe ou s'il est plus grand que 9, et qu'il n'y a pas eu assez de parenthèses ouvrantes auparavant, PCRE lit jusqu'à 3 chiffres octaux à la suite de l'antislash, et génère un octet unique, à partir des 8 bits de poids faible de la séquence. Tous les chiffres qui suivent ne sont pas interprétés, et se représentent eux-mêmes. Par exemple:

\040
une autre manière d'écrire un espace
\40
identique, dans la mesure où il n'y a pas 40 parenthèses ouvrantes auparavant
\7
est toujours une référence arrière
\11
peut être une référence de retour, ou une tabulation
\011
toujours une tabulation
\0113
est une tabulation suivie du caractère "3"
\113
est le caractère 113 (étant donné qu'il ne peut y avoir plus de 99 références arrières)
\377
est un octet dont tous les bits sont à 1
\81
peut être soit une référence arrière, soit un zéro binaire suivi des caractères "8" et "1"

Les valeurs octales supérieures ou égales à 100 ne doivent pas être introduites par un 0, car seuls les trois premiers octets seront lus.

Toutes les séquences qui définissent une valeur d'un seul octet peuvent être utilisées dans les classes de caractères, et à l'extérieur. De plus, dans une classe de caractères, la séquence "\b" est interprétée comme un caractère effacer (hex 08). À l'extérieur, elle peut avoir d'autres significations (voir ci-dessous).

On peut encore se servir de l'antislash pour préciser des types génériques de valeurs :

\d
tout caractère décimal
\D
tout caractère qui n'est pas un caractère décimal
\h
n'importe quel espace horizontal (depuis PHP 5.2.4)
\H
n'importe quel caractère qui n'est pas un espace horizontal (depuis PHP 5.2.4)
\s
tout caractère blanc
\S
tout caractère qui n'est pas un caractère blanc
\v
n'importe quel espace vertical (depuis PHP 5.2.4)
\V
n'importe quel caractère qui n'est pas un espace vertical (depuis PHP 5.2.4)
\w
tout caractère de "mot"
\W
tout caractère qui n'est pas un caractère de "mot"

Chaque paire précédente définit une partition de la table des caractères : les deux ensembles sont disjoints. Un caractère satisfera soit un métacaractère, soit l'autre.

Les caractères "blancs" sont HT (9), LF (10), FF (12), CR (13), et espace (32). Cependant, lors de l'utilisation d'une locale particulière, tous les caractères se trouvant dans l'intervalle 128-255 peuvent aussi être considérés comme caractère blanc, par exemple NBSP (A0).

Un caractère de "mot" sera une lettre, un chiffre ou le caractère souligné, c'est-à-dire un caractère qui pourra être une partie d'un mot Perl. La définition des lettres et chiffres est définie par les tables de caractères de PCRE, et peut varier suivant la table locale de caractères. Par exemple, dans la configuration "français" ("fr"), certains caractères ont des codes supérieurs à 128, pour les caractères accentués, et ils seront compris par le métacaractère \w.

Ces séquences de caractères peuvent apparaître à l'intérieur ou à l'extérieur des classes de caractères. Elles remplacent à chaque fois un caractère du type correspondant. Si cette séquence est placée en fin de masque, et qu'il n'y a plus de caractère à comparer dans la chaîne sujet, la recherche échoue.

La quatrième utilisation de l'antislash intervient lors d'assertions simples. Une assertion impose une condition à un certain point, sans remplacer de caractère. L'utilisation de sous-masques pour réaliser des assertions plus complexes est décrite plus bas. Les assertions avec antislash sont les suivantes :

\b
limite de mot
\B
pas limite de mot
\A
début de la chaîne sujet (indépendant du mode multilignes)
\Z
fin de la chaîne sujet ou nouvelle ligne à la fin de la chaîne sujet (indépendant du mode multilignes)
\G
position de la première occurrence trouvé dans la chaîne sujet
\z
fin de la chaîne sujet (indépendant du mode multilignes)

Ces assertions ne peuvent pas apparaître dans une classe de caractères (mais "\b" a une autre signification à l'intérieur d'une classe de caractères).

Une limite de mot est un emplacement dans la chaîne sujet ou un caractère et son suivant ne sont pas en même temps des caractères de mot (\w), ou le contraire (\W) (on peut le voir comme \w\W ou \W\w), ou encore le premier ou le dernier caractère est un caractère mot (\w).

Les assertions \A, \Z, et \z diffèrent des métacaractères ^ et $ (décrit dans les ancres) dans la mesure où ils ne sont pas dépendants des options, notamment PCRE_MULTILINE ou PCRE_DOLLAR_ENDONLY. La différence entre \Z et \z tient au fait que \Z recherche les positions avant les nouvelles lignes et à la fin de la chaîne sujet, tandis que \z ne recherche que la fin de la chaîne.

L'assertion \G est réalisée uniquement lorsque la position courante de l'occurrence trouvée est au début de l'occurrence, comme spécifié par l'argument offset de la fonction preg_match(). Elle diffère de \A lorsque la valeur du paramètre offset est différente de zéro.

\Q et \E peuvent être utilisés pour ignorer les métacaractères dans le masque. Par exemple : \w+\Q.$.\E$ recherchera un ou plusieurs caractères suivis par la chaîne littérale .$. et ancrés à la fin de la chaîne.

\K peut être utilisé pour réinitialiser le résultat, depuis PHP 5.2.4. Par exemple, le masque foo\Kbar trouve "foobar", mais reporte q'il a trouvé "bar". L'utilisation de \K n'interfère pas avec la configuration des sous-chaînes capturantes. Par exemple, lorsque le masque (foo)\Kbar trouve "foobar", la première sous-chaîne sera toujours "foo".


Propriétés des caractères Unicode

Depuis PHP 5.1.0, trois nouvelles séquences d'échappement pour trouver des types de caractères sont disponibles lorsque le mode UTF-8 est sélectionné. Elles sont :

\p{xx}
un caractère avec les propriétés xx
\P{xx}
un caractère sans les propriétés xx
\X
une séquence étendue Unicode

Les noms des propriétés représentés par xx ci-dessus sont limités aux catégories de propriétés générales Unicode. Chaque caractère a exactement une seule de ces propriétés, spécifié par une abréviation sur deux caractères. Pour des raisons de compatibilité avec Perl, la négation peut être spécifiée en incluant un accent circonflexe entre l'accolade ouvrante et le nom de la propriété. Par exemple, \p{^Lu} équivaut à la même chose que \P{Lu}.

Si une seule lettre est spécifiée avec \p ou \P, il inclut toutes les propriétés qui commencent par cette lettre. Dans ce cas, en l'absence de négation, les accolades dans la séquence d'échappement sont optionnelles ; ceci revient à la même chose :

\p{L}
\pL

Codes des propriétés supportées
Propriétés | Correspondance | Notes
C | Autre |
Cc | Contrôle |
Cf | Format |
Cn | Non affecté |
Co | Utilisation privée |
Cs | Substitut |
L | Lettre | Inclut les propriétés suivantes : Ll, Lm, Lo, Lt et Lu.
Ll | Lettre en minuscule |
Lm | Lettre de modification |
Lo | Autres lettres |
Lt | Lettre titrée |
Lu | Lettre en majuscule |
M | Marque |
Mc | Marque d'espacement |
Me | Marque d'enfermement |
Mn | Marque non espacée |
N | Nombre |
Nd | Nombre décimal |
Nl | Nombre Lettre |
No | Autres nombres |
P | Ponctuation |
Pc | Ponctuation de connecteur |
Pd | Tiret de ponctuation |
Pe | Ponctuation de fermeture |
Pf | Ponctuation finale |
Pi | Ponctuation initiale |
Po | Autres ponctuations |
Ps | Ponctuation ouvrante |
S | Symbole |
Sc | Symbole monétaire |
Sk | Symbole de modification |
Sm | Symbole mathématique |
So | Autres symboles |
Z | Séparateur |
Zl | Séparateur de ligne |
Zp | Séparateur de paragraphe |
Zs | Séparateur d'espace |

Les propriétés étendues comme InMusicalSymbols ne sont pas supportées par PCRE.

La sensibilité à la casse de la recherche n'affecte pas les séquences d'échappement. Par exemple, \p{Lu} cherche toujours et uniquement les lettres en majuscules

Les jeux de caractères unicodes sont définis comme appartenant à certains scripts. Un caractère d'un de ces jeux peut être trouvé en utilisant un nom de script. Par exemple :

  • \p{Greek}
  • \P{Han}

Ceux qui ne font pas partis d'un script identifié sont regroupés dans Common. Voici la liste courante des scripts :

Scripts supportés
Arabic | Armenian | Avestan | Balinese | Bamum
Batak | Bengali | Bopomofo | Brahmi | Braille
Buginese | Buhid | Canadian_Aboriginal | Carian | Chakma
Cham | Cherokee | Common | Coptic | Cuneiform
Cypriot | Cyrillic | Deseret | Devanagari | Egyptian_Hieroglyphs
Ethiopic | Georgian | Glagolitic | Gothic | Greek
Gujarati | Gurmukhi | Han | Hangul | Hanunoo
Hebrew | Hiragana | Imperial_Aramaic | Inherited | Inscriptional_Pahlavi
Inscriptional_Parthian | Javanese | Kaithi | Kannada | Katakana
Kayah_Li | Kharoshthi | Khmer | Lao | Latin
Lepcha | Limbu | Linear_B | Lisu | Lycian
Lydian | Malayalam | Mandaic | Meetei_Mayek | Meroitic_Cursive
Meroitic_Hieroglyphs | Miao | Mongolian | Myanmar | New_Tai_Lue
Nko | Ogham | Old_Italic | Old_Persian | Old_South_Arabian
Old_Turkic | Ol_Chiki | Oriya | Osmanya | Phags_Pa
Phoenician | Rejang | Runic | Samaritan | Saurashtra
Sharada | Shavian | Sinhala | Sora_Sompeng | Sundanese
Syloti_Nagri | Syriac | Tagalog | Tagbanwa | Tai_Le
Tai_Tham | Tai_Viet | Takri | Tamil | Telugu
Thaana | Thai | Tibetan | Tifinagh | Ugaritic
Vai | Yi |  |  |

La séquence \X cherche n'importe quel groupe de graphème Unicode étendu. Un groupe de graphème est une chaîne composée d'un ou plusieurs caractères Unicode qui se combinent pour former un seul glyphe. Dans les faits, cela revient à utiliser le caractère . sachant qu'il va matcher un caractère composé, peu importe le nombre de caractères individuel nécessaire à l'afficher.

Dans les versions PCRE inférieures à 8.32 (ce qui correspond aux versions de PHP antérieures à la version 5.4.14 lorsque la bibliothèque interne est utilisée), \X était équivalent à (?>\PM\pM*). Aussi, il matchait un caractère sans propriété "mark", suivi par aucun ou plusieurs caractères possédant la propriété "mark", et traitait la séquence comme un groupe atomique (voir ci-dessous). Les caractères avec la propriété "mark" sont typiquement les lettres accentuées qui affectent le caractère qui la précède.

La recherche de caractères par les propriétés Unicode n'est pas la méthode la plus rapide, car PCRE doit chercher une structure qui contient les données dans plus de quinze mille caractères. C'est pour cela que les séquences traditionnelles comme \d et \w n'utilisent pas les propriétés Unicode dans PCRE.


Ancres

En dehors d'une classe de caractères, avec les options par défaut, ^ est une assertion qui n'est vraie que si elle est placée tout au début de la chaîne. À l'intérieur d'une classe de caractères, ^ a un tout autre sens (voir ci-dessous).

^ n'a pas besoin d'être le premier caractère du masque, si plusieurs alternatives sont proposées, mais il doit être placé en premier dans chaque alternative. Si toutes les alternatives commencent par ^, alors le masque est dit ancré (il y a une autre construction qui porte cette appellation).

$ est une assertion qui n'est vraie que si elle est placée tout en fin de chaîne ou juste avant un caractère de nouvelle ligne qui serait le dernier caractère de la chaîne. À l'intérieur d'une classe de caractères, $ a un tout autre sens (voir ci-dessous). $ n'a pas besoin d'être le dernier caractère du masque, si plusieurs alternatives sont proposées, mais il doit être placé en dernier dans chaque alternative. Si toutes les alternatives finissent par $, alors le masque est dit ancré (il y a une autre construction qui porte cette appellation). $ n'a pas de valeur particulière dans une classe de caractères.

La signification de $ peut changer, de manière à l'amener à ce qu'il ne puisse se trouver qu'en toute fin de la chaîne sujet. Cela se fait en ajoutant l'option PCRE_DOLLAR_ENDONLY au moment de la compilation, ou de l'exécution. Cette option est inopérante sur \Z.

La signification de ^ peut changer, de manière à l'amener à ce qu'il puisse se trouver immédiatement avant et immédiatement après un caractère de nouvelle ligne "\n". Cela se fait en ajoutant l'option PCRE_MULTILINE au moment de la compilation ou de l'exécution. Par exemple, le masque /^abc$/ accepte la chaîne "def\nabc" uniquement en mode multilignes. Par conséquent, toutes les parties du masque qui commencent par "^" ne sont pas ancrées, en mode multilignes. L'option PCRE_DOLLAR_ENDONLY est ignorée si l'option PCRE_MULTILINE est choisie.

Notez que les métacaractères \A, \Z, et \z peuvent servir à repérer le début et la fin du sujet, et toutes les parties du masque qui commenceront par \A seront toujours ancrées, avec l'option PCRE_MULTILINE ou non.


Point

En dehors d'une classe de caractères, un point remplace n'importe quel caractère, même invisible et à l'exception du caractère de nouvelle ligne. Avec l'option PCRE_DOTALL le point remplace n'importe quel caractère, même le caractère de nouvelle ligne. La gestion des points et complètement indépendante de ^ et $. Le seul point commun est que les deux ont un comportement particulier vis-à-vis des caractères de nouvelle ligne. Le point n'a pas de comportement particulier dans une classe de caractères.

\C peut être utilisé pour chercher un seul octet. Il prend tout son sens en mode UTF-8 où le point correspond à un caractère entier qui peut être constitué de plusieurs octets.


Classes de caractères

Un crochet ouvrant [ introduit une classe de caractères, et le crochet fermant ]la conclut. Le crochet fermant n'a pas de signification en lui-même. Si le crochet fermant est nécessaire à l'intérieur d'une classe de caractères, il faut qu'il soit le premier caractère (après un ^ éventuel) ou protégé avec un antislash.

Une classe de caractères remplace un seul caractère dans la chaîne sujet, à moins que le premier caractère de la classe soit un accent circonflexe ^, qui représente une négation : le caractère ne doit pas se trouver dans la classe. Si ^ est nécessaire dans la classe, il suffit qu'il ne soit pas le premier caractère, ou bien qu'il soit protégé par un antislash.

Par exemple, le caractère [aeiou] remplace n'importe quelle voyelle minuscule, tandis que [^aeiou] remplace n'importe quelle caractère qui n'est pas une voyelle minuscule. ^ est une notation pratique pour spécifier des caractères qui sont dans une classe, en ne citant que ceux qui n'y sont pas. Le comportement est inchangé.

Avec l'option d'insensibilité à la casse, toutes les lettres d'une classe de caractères représentent en même temps la majuscule et la minuscule. Par exemple, [aeiou] représentera "A" ou "a", et [^aeiou] n'acceptera pas "A", tandis que sans l'option, elle l'accepterait.

Le caractère de nouvelle ligne n'est pas traité de manière spéciale dans les classes de caractères, quelque soit l'option PCRE_DOTALL ou PCRE_MULTILINE. Une classe telle que [^a] acceptera toujours une nouvelle ligne.

Le signe moins (-) est utilisé pour spécifier un intervalle de caractères, dans une classe. Par exemple, [d-m] remplace toutes les lettres entre d et m inclus. Si le caractère moins est requis dans une classe, il faut le protéger avec un antislash, ou le faire apparaître à une position où il ne pourra pas être interprété comme une indication d'intervalle, c'est-à-dire au début ou à la fin de la classe.

Il n'est pas possible d'avoir le caractère crochet fermant "]" comme fin d'intervalle. Un masque tel que [W-]46] est compris comme la classe de caractères contenant deux caractères ("W" et "-") suivie de la chaîne littérale "46]", ce qui fait qu'il va accepter "W46]" ou "-46]". Cependant, si "]" est protégé avec un antislash, le masque [W-\]46] est interprété comme une classe d'un seul caractère, contenant un intervalle de caractères. La valeur octale ou hexadécimale de "]" peut aussi être utilisée pour déterminer les limites de l'intervalle.

Les intervalles travaillent sur des séquences ASCII. Ils peuvent aussi être précisés avec des valeurs numériques : par exemple "[\000-\037]". Si cet intervalle inclut des lettres utilisées avec une option d'insensibilité de casse, les majuscules ou minuscules correspondantes seront aussi incluses. Par exemple, "[W-c]" est équivalent à "[][\^_`wxyzabc]", avec l'option d'insensibilité de casse. Si la table locale de caractères est "fr", "[\xc8-\xcb]" correspond aux caractères accentués.

Les types de caractères \d, \D, \S, \s, \w, \W peuvent aussi intervenir dans les classes de caractères. Par exemple, "[][\^_`wxyzabc][\dABCDEF]" acceptera n'importe quel caractère hexadécimal. Un accent circonflexe peut aussi être utilisé pour spécifier adroitement des ensembles de caractères plus restrictifs : par exemple [^\W_] accepte toutes les lettres et les chiffres, mais pas les soulignés.

Tous les caractères non alphanumériques autres que \, -, ^ (placés en début de chaîne) et ] n'ont pas de signification particulière, mais ils ne perdront rien à être protégés. Le délimiteur de motif est toujours spécial, et doit être protégé lorsqu'il est utilisé à l'intérieur d'une expression.

Perl supporte la notation POSIX pour les classes de caractères. Elles utilisent des noms entourés par [: et :]. PCRE supporte également cette notation. Par exemple, [01[:alpha:]%] trouve "0", "1", toute lettre, ou encore le caractère "%". Les noms de classe supportés sont :

Classes de caractères
alnum | lettres et chiffres
alpha | lettres
ascii | codes caractères 0 - 127
blank | espace ou tabulation uniquement
cntrl | caractères de contrôle
digit | chiffres décimales (identique à \d)
graph | caractères d'impression, excluant les espaces
lower | lettres en minuscule
print | caractères d'impression, incluant les espaces
punct | caractères d'impression, excluant les lettres et les chiffres
space | espace blanc (par tout à fait identique à \s)
upper | lettres en majuscule
word | caractères composant un mot (identique à \w)
xdigit | chiffres hexadécimaux
Les caractères d'espacement (space) sont HT (9), LF (10), VT (11), FF (12), CR (13), et l'espace (32). Notez que cette liste inclut le caractère VT (code 11). Ceci rend la classe "space" différente de \s, qui n'inclut pas ce caractère VT (pour une raison de compatibilité Perl).

La classe word est une extension Perl, et blank est une extension GNU de Perl 5.8. La négation est une autre extension Perl ; elle est indiquée par le caractère ^ après un double-point. Par exemple, [12[:^digit:]] trouve "1", "2", mais aussi tout caractère qui n'est pas un chiffre.

En mode UTF-8, les caractères dont les valeurs sont supérieures à 128 ne seront trouvés par aucune des classes de caractères POSIX.


Alternatives

La barre verticale | sert à séparer des alternatives. Par exemple, dans le masque "/dupont|martin/" recherche soit "dupont", soit "martin". Le nombre d'alternatives n'est pas limité, et il est même possible d'utiliser la chaîne vide. Lors de la recherche, toutes les alternatives sont essayées, de gauche à droite, et la première qui est acceptée est utilisée. Si les alternatives sont dans un sous-masque, elle ne réussiront que si le masque principal réussi aussi.


Options internes

Les options PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, PCRE_UNGREEDY, PCRE_EXTRA, PCRE_EXTENDED et PCRE_DUPNAMES peuvent être changées à l'intérieur du masque lui-même, avec des séquences mises entre "(?" et ")". Les options sont :

Options internes
i | pour PCRE_CASELESS
m | pour PCRE_MULTILINE
s | pour PCRE_DOTALL
x | pour PCRE_EXTENDED
U | pour PCRE_UNGREEDY
X | Pour PCRE_EXTRA
J | Pour PCRE_INFO_JCHANGED

Par exemple, (?im) rend le masque insensible à la casse, et multilignes. Il est possible d'annuler ces options en les faisant précéder par un signe - : par exemple (?im-sx), ajoutera les options PCRE_CASELESS et PCRE_MULTILINE, mais annulera les options PCRE_DOTALL et PCRE_EXTENDED. Si une option apparaît avant et après le signe moins, l'option sera annulée.

Lorsqu'une modification d'option survient au degré le plus haut (et donc, pas dans les parenthèses du sous-masque), les modifications sont appliquées dans le reste du masque qui suit. Donc, /ab(?i)c/ valide uniquement "abc" et "abC".

Si une option intervient dans un sous-masque, le comportement est différent. C'est un changement de comportement apparu en Perl 5.005. Une option à l'intérieur d'un sous-masque n'affecte que cette partie du masque, ce qui fait que (a(?i)b)c acceptera abc et aBc, mais aucune autre chaîne (en supposant que PCRE_CASELESS n'est pas utilisé). Cela signifie que les options permettent d'avoir différentes configurations de recherche pour différentes parties du masque.Une séquence d'options dans une alternative affecte toute l'alternative. Par exemple : (a(?i)b|c) accepte "ab", "aB", "c", et "C", même si, comme dans le cas de "C", la première alternative qui porte l'option n'est pas prise en compte. Sinon, cela risque d'introduire des comportements très étranges

Les options spécifiques à PCRE telles PCRE_UNGREEDY et PCRE_EXTRA peuvent être modifiées de la même manière, en utilisant respectivement les caractères U et X. L'option (?X) est particulière, car elle doit toujours intervenir avant toutes les autres options, même au niveau du masque entier. Il vaut mieux l'activer au début du masque.


Sous-masques

Les sous-masques sont délimités par des parenthèses, et peuvent être imbriqués. Ajouter des sous-masques a deux utilités :

  1. Localiser un ensemble d'alternatives. Par exemple, le motif cat(aract|erpillar|) trouve un des mots "cat", "cataract", ou "caterpillar". Sans les parenthèses, cela trouverait "cataract", "erpillar" ou la chaine vide.

  2. Cela configure le sous-masque comme capturant. Lorsque tout le motif correspond, la portion de la sous-chaine qui correspond au sous-masque est passé à l'appelant grâce à l'argument ovector de pcre_exec(). Les parenthèses ouvrantes sont comptées depuis la gauche vers la droite (commençant à 1) jusqu'à obtenir le nombre des sous-masques capturants.

Par exemple, soit la chaîne sujet "le roi soleil" qui est utilisée avec le masque suivant : Le ((roi|prince) (soleil|charmant)), les sous-masques capturés sont "roi soleil", "roi", et "soleil", numérotés respectivement 1, 2, et 3.

L'ubiquité des parenthèses n'est pas toujours simple d'emploi. Il y a des moments où regrouper des sous-masques est nécessaire, sans pour autant capturer la valeur trouvée. Si une parenthèse ouvrante est suivie de "?:", le sous-masque ne capture pas la chaîne assortie, et ne sera pas compté lors de la numérotation des captures. Par exemple, avec la chaîne "le prince charmant", utilisé avec le masque Le (( ?:roi|prince) (soleil|charmant)) les chaînes capturées seront "prince charmant" et "charmant", numérotés respectivement 1 et 2. Le nombre maximal de chaînes capturées est de 65535.

En guise de raccourci, si n'importe quelle option de configuration est requise au début des sous-masques non-capturants, les lettres d'option peuvent apparaître entre le signe "?" et le signe ":". Ainsi, les 2 masques

(?i:samedi|dimanche)
(?:(?i)samedi|dimanche)

captureront exactement les mêmes chaînes. Du fait que les branches alternatives sont testées de la gauche vers la droite, et que les options ne sont pas réinitialisées tant que le sous masque n'est pas atteint, une option de configuration d'une branche n'affecte pas les branches sous-jacentes ; ainsi, les 2 masques ci-dessus captureront "SAMEDI", mais aussi "Samedi".

Il est possible de nommer un sous masque en utilisant la syntaxe (?P<name>pattern). Ce sous masque sera alors indexé dans le tableau de concordance par sa position, ainsi que par son nom. PHP 5.2.2 a introduit 2 nouvelles syntaxes : (?<name>pattern) et (?'name'pattern).

Quelques fois, il est nécessaire d'avoir plusieurs correspondances en alternant les sous groupes dans une expression régulière. Normallement, chacun recevra son propre nombre de références arrières même si seulement un d'entre eux ne peut correspondre. Pour éviter cela, la syntaxe (?| permet d'autoriser les nombres dupliqués. Soit l'expression ci-après utilisée avec la chaine Sunday:

(?:(Sat)ur|(Sun))day

Ici Sunest stocké dans la référence arrière 2, alors que la référence arrière 1 est vide. La correspondance mène donc à Sat dans la référence arrière 1 alors que la référence arrière 2 n'existe pas. Changer le masque en utilisant (?| résoud ce problème:

(?|(Sat)ur|(Sun))day

Avec ce masque, à la fois Sun et Sat seront stockés dans la référence arrière 1.


Répétitions

Les répétitions sont spécifiées avec des quantificateurs, qui peuvent être placés à la suite des caractères suivants :

  • Un caractère unique, même s'il s'agit d'un métacaractère
  • Le métacaractère .
  • Une classe de caractères
  • Une référence de retour (voir section suivante)
  • Un sous-masque avec parenthèses (à moins que ce ne soit une assertion, voir plus loin)

Les quantificateurs généraux précisent un nombre minimum et maximum de répétitions possibles, donnés par deux nombres entre accolades, et séparés par une virgule. Ces nombres doivent être plus petits que 65536, et le premier nombre doit être égal ou inférieur au second. Par exemple z{2,4} accepte "zz", "zzz", ou "zzzz". L'accolade fermante n'a pas de signification par elle-même. Si le second nombre est omis, mais que la virgule est là, cela signifie qu'il n'y a pas de limite supérieure. Si le second nombre et la virgule sont omis, le quantificateur correspond au nombre exact de répétitions attendues. Par exemple : [aeiou]{3,} accepte n'importe quelle succession d'au moins 3 voyelles minuscules, tandis que \d{8} n'accepte que 8 chiffres exactement. Une accolade ouvrante qui apparaît à une position où un quantificateur n'est pas accepté, ou si la syntaxe des quantificateurs n'est pas respectée, sera considérée littérale. Par exemple, "{,6}" n'est pas un quantificateur, mais une chaîne de 4 caractères.

Le quantificateur {0} est autorisé, mais l'expression est alors ignorée.

Par convenance (et pour la compatibilité ascendante), les trois quantificateurs les plus communs ont une abréviation d'un seul caractère :

Quantificateurs sur un seul caractère
* | équivalent à {0,}
+ | équivalent à {1,}
? | équivalent à {0,1}

Il est possible de constituer des boucles infinies en créant un sous-masque sans caractères, mais pourvu d'un quantificateur sans limite supérieure. Par exemple : (a?)*

Les versions plus anciennes de Perl et PCRE généraient alors une erreur au moment de la compilation. Cependant, étant donné qu'il existe des situations où ces constructions peuvent être utiles, ces masques sont désormais autorisés. Toutefois, si la répétition du sous-masque ne trouve aucun caractère, la boucle est interrompue.

Par défaut, les quantificateurs sont dits "gourmands", c'est à dire, qu'ils cherchent d'abord à trouver le nombre maximal de répétitions qui autorisent le succès de la recherche. L'exemple classique posé par cette gourmandise est la recherche de commentaires d'un programme en C. Les commentaires apparaissent entre les séquences /*....*/ et à l'intérieur de ces délimiteurs, les * et / sont autorisés. Appliquer le masque /\*.*\*/ à la chaîne /* premier commentaire */ aucun commentaire /* second commentaire */ ne peut réussir, car le masque travaille sur toute la chaîne, à cause de la gourmandise du caractère .*.

Cependant, un quantificateur suivi d'un point d'interrogation cesse d'être gourmand, et au contraire, ne recherche que le nombre minimum de répétition. Dans ces conditions, le masque /\*.*?\*/ trouvera bien les commentaires du code C. La signification des autres quantificateurs n'est pas changée. Attention à ne pas confondre l'utilisation du point d'interrogation ici avec son utilisation comme quantificateur lui-même. À cause de cette ambiguïté, il peut apparaître des situations où il faut le doubler : \d??\d Ce masque va tenter de lire un seul chiffre, mais le cas échéant, il acceptera 2 chiffres pour permettre à la recherche d'aboutir.

Si l'option PCRE_UNGREEDY est activée, (une option qui n'est pas disponible avec Perl) alors les quantificateurs sont non gourmands par défaut, mais peuvent être rendu gourmands au cas par cas, en ajoutant un point d'interrogation après. En d'autres termes, cette option inverse le comportement par défaut.

Les quantificateurs suivis par + sont "possessifs". Ils mangent autant de caractères que possible et ne retournent pas pour chercher le reste du masque. .*abc trouvera "abc", tandis que .*+abc ne le trouvera pas, car .*+ accapare totalement la chaîne. Les quantificateurs possessifs peuvent être utilisés pour accélérer le traitement.

Lorsqu'un sous-masque est quantifié avec un nombre minimum de répétitions, qui soit plus grand que 1, ou avec un maximum de répétitions, le masque compilé aura besoin de plus de place de stockage, proportionnellement au minimum et au maximum.

Si un masque commence par .* ou .{0,} et que l'option PCRE_DOTALL (équivalent en Perl à /s) est activée, c'est-à-dire en autorisant le remplacement des nouvelles lignes par un métacaractère, alors le masque est implicitement ancré, car tout ce qui suit va être mangé par la première séquence, et se comportera comme si le masque se terminait par le métacaractère \A. Dans le cas où on sait d'avance qu'il n'y aura pas de caractère de nouvelle ligne, activer l'option PCRE_DOTALL et commencer le masque par .* permet d'optimiser le masque. Alternativement, on peut utiliser ^ pour ancrer explicitement le masque.

Lorsqu'un sous-masque capturant est répété, la valeur capturée est la dernière. Par exemple, après que (inter[net]{3}\s*)+ ait été appliqué à "internet interne", la valeur de la chaîne capturée est "interne". Cependant, s'il y a des sous-masques imbriqués, la valeur capturée correspondante peut l'avoir été lors des précédentes itérations. Par exemple : /(a|(b))+/ accepte "aba" et la deuxième valeur capturée est "b".


Références arrières

En dehors des classes de caractères, un antislash suivi d'un nombre plus grand que 0 (et possiblement plusieurs chiffres) est une référence arrière (c'est à dire vers la gauche) dans le masque, en supposant qu'il y ait suffisamment de sous-masques capturants précédents.

Cependant, si le nombre décimal suivant l'antislash est plus petit que 10, il sera toujours considéré comme une référence arrière, et cela générera une erreur si le nombre de captures n'est pas suffisant. En d'autres termes, il faut qu'il existe suffisamment de parenthèses ouvrantes à gauche de la référence, surtout si la référence est inférieure à 10. Une "référence arrière vers l'avant" peut avoir du sens lorsqu'une répétition est isolée et que le sous masque à droite a participé dans l'itération précédente. Reportez-vous à la section "antislash" pour avoir de plus amples détails à propos du nombre de chiffres qui suivent l'antislash.

La référence arrière remplace ce qui a été capturé par un sous-masque dans le masque courant, plutôt que remplacer le sous-masque lui-même. Ainsi (calme|rapide) et \1ment trouvera "calme et calmement" et "rapide et rapidement", mais pas "calme et rapidement". Si la recherche tient compte de la casse, alors la casse de la chaîne capturée sera importante. Par exemple, ((?i)rah)\s+\1 trouve "rah rah" et "RAH RAH", mais pas "RAH rah", même si le sous-masque capturant initial ne tenait pas compte de la casse.

Il peut y avoir plusieurs références arrières dans le même sous-masque. Si un sous-masque n'a pas été utilisé dans une recherche, alors les références arrières échoueront. Par exemple (a|(bc))\2 ne réussira jamais si la chaîne sujet commence par "a" plutôt que par "bc". Étant donné qu'il peut y avoir jusqu'à 99 références arrières, tous les chiffres après l'antislash sont considérés comment faisant potentiellement partie de la référence arrière. Si le masque recherche un chiffre après la référence, alors il faut impérativement utiliser des délimiteurs pour terminer la référence arrière. Si l'option PCRE_EXTENDED est activée, on peut utiliser un espace. Sinon, un commentaire vide fait l'affaire.

Une référence arrière qui intervient à l'intérieur de parenthèses auxquelles elle fait référence échouera dès que le sous-masque sera utilisé. Par exemple, (a\1) échouera toujours. Cependant, ces références peuvent être utiles dans les sous-masques répétitifs. Par exemple, le masque "(a|b\1)+" pourra convenir pour "a", "aba", "ababba", etc. À chaque itération du sous-masque, la référence arrière utilise le résultat du dernier sous-masque. Pour que cela fonctionne, il faut que la première itération n'ait pas besoin d'utiliser la référence arrière. Cela arrive avec les alternatives, comme dans l'exemple ci-dessus, ou avec un quantificateur de minimum 0.

Depuis PHP 5.2.2, la séquence d'échappement \g peut être utilisée pour le référencement absolu et relatif des sous-masques. Cette séquence doit être suivie par un nombre non-signé ou négatif, entouré optionnellement par des accolades. La séquence \1, \g1 et \g{1} sont identiques. L'utilisation de ce masque avec un nombre non-signé peut aider à ne pas le confondre lors de l'utilisation de nombre suivi d'un anti-slash. Cette séquence aide à distinguer les références arrières lors de l'utilisation de caractères octales et rend également plus facile d'avoir une référence arrière suivie par un nombre litéral, i.e. \g{2}1.

L'utilisation de la séquence \g avec un nombre négatif indique une référence relative. Par exemple, (foo)(bar)\g{-1} trouvera la séquence "foobarbar" et (foo)(bar)\g{-2} trouvera la séquence "foobarfoo". Ceci peut être pratique dans ce gros masque comme alternative afin de conserver une trace du nombre de sous-masques afin de référencer un sous-masque précédant spécifique.

Les références arrières du sous-masque nommé peuvent être utilisées sous la forme (?P=name) ou, depuis PHP 5.2.2, via \k<name> ou \k'name'. De plus, PHP 5.2.4 a ajouté le support de \k{name} et de \g{name}.


Assertions

Une assertion est un test sur les caractères suivants ou précédents celui qui est en cours d'étude. Ce test ne consomme par de caractère (ie, on ne déplace pas le pointeur de caractères). Les assertions simples sont codées avec \b, \B, \A, \Z, \z, ^ et $, et sont décrites dans les séquences d'échappement. Il existe cependant des types d'assertions plus complexes, codées sous la forme de sous-masques. Il en existe deux types : celles qui travaillent au-delà de la position courante, et celles qui travaillent en-deçà.

Une assertion se comporte comme un sous-masque, hormis le fait qu'elle ne déplace pas le pointeur de position. Les assertions avant commencent par (?= pour les assertions positives, et par (?!, pour les assertions négatives. Par exemple : \w+(?=;) s'assure qu'un mot est suivi d'un point-virgule, mais n'inclut pas le point virgule dans la capture et foo(?!bar) trouve toutes les occurrences de "foo" qui ne sont pas suivies par "bar". Notez que, (?!foo)bar en est proche, mais ne trouve pas une occurrence de "bar" qui soit précédée par quelque chose d'autre que "foo"; il trouve toutes les occurrences de "bar", quel que soit ce qui le précède, car l'assertion (?!foo) est toujours vraie quand les trois caractères suivants sont "bar". Une assertion arrière est ici nécessaire.

Les assertions arrières commencent par (?<= pour les assertions positives, et (?<! pour les assertions négatives. Par exemple : (?<!foo)bar trouve les occurrences de "bar" qui ne sont pas précédées par "foo". Le contenu d'une référence arrière est limité de telle façon que les chaînes qu'il utilise soient toujours de la même taille. Cependant, lorsqu'il y a plusieurs alternatives, elles n'ont pas besoin d'être de la même taille. Par exemple, (?<=bullock|donkey) est autorisé, tandis que (?<!dogs?|cats?) provoque une erreur de compilation. Les alternatives qui ont des longueurs différentes ne sont autorisées qu'au niveau supérieur des assertions arrières. C'est une amélioration du fonctionnement de Perl 5.005, qui impose aux alternatives d'avoir toutes la même taille. Une assertion telle que (?<=ab(c|de)) n'est pas autorisée, car l'assertion de bas niveau (la deuxième, ici) a deux alternatives de longueurs différentes. Pour la rendre acceptable, il faut écrire (?<=abc|abde) L'implémentation des assertions arrières déplace temporairement le pointeur de position vers l'arrière, et cherche à vérifier l'assertion. Si le nombre de caractères est différent, la position ne sera pas correcte, et l'assertion échouera. La combinaison d'assertions arrières avec des sous-masques peut être particulièrement pratique à fin des chaînes. Un exemple est donné à la fin de cette section.

Plusieurs assertions peuvent intervenir successivement. Par exemple, le masque (?<=\d{3})(?<!999)foo recherche les chaînes "foo" précédées par trois chiffres qui ne sont pas "999". Notez que chaque assertion est appliquées indépendamment, au même point de la chaîne à traiter. Tout d'abord, il est vérifié que les trois premiers caractères ont tous des chiffres, puis on s'assure que ces trois caractères ne sont pas "999". Le masque précédant n'accepte pas "foo" précédé de 6 caractères, les trois premiers étant des chiffres et les trois suivants étant différents de "999". Par exemple, ce masque n'acceptera pas la chaîne "123abcfoo". Pour ce faire, il faut utiliser le masque suivant : (?<=\d{3}...)(?<!999)foo.

Dans ce masque, la première assertion vérifie les six premiers caractères, s'assure que les trois premiers sont des entiers, et la deuxième assertion s'assure que les trois derniers caractères ne sont pas "999".

De plus, les assertions peuvent être imbriquées : (?<=(?<!foo)bar)baz recherche les occurrences de "baz" qui sont précédées par "bar", qui, à son tour, n'est pas précédé par "foo". Au contraire, (?<=\d{3}...(?<!999))foo est un autre masque, qui recherche les caractères "foo", précédés par trois chiffres, suivis de trois autres caractères qui ne forment pas "999".

Les assertions ne sont pas capturantes, et ne peuvent pas être répétées. Si une assertion contient des sous-masques capturants en son sein, ils seront compris dans le nombre de sous-masques capturants du masque entier. La capture est réalisée pour les assertions positives, mais cela n'a pas de sens pour les assertions négatives.

200 assertions au maximum sont autorisées.


Sous-masques uniques

Avec les quantificateurs de répétitions, l'échec d'une recherche conduit normalement à une autre recherche, avec un nombre différent de répétitions, pour voir si le masque ne s'applique pas dans d'autres conditions. Parfois, il est pratique d'éviter ce comportement, soit pour changer la nature de la recherche, soit pour la faire abandonner plus tôt, si on pense qu'il n'est pas besoin d'aller plus loin.

Considérons, par exemple, le masque \d+foo appliqué à la ligne 123456bar.

Après avoir tenté d'utiliser les 6 chiffres suivis de "foo" qui font échouer, l'action habituelle sera de réessayer avec 5 chiffres, puis avec 4, et ainsi de suite jusqu'à l'échec final. Un sous-masque évalué une seule fois permettrait d'indiquer que lorsqu'une partie du masque est trouvée, elle n'a pas besoin d'être réévaluée à chaque tentative. Ceci conduirait à ce que la recherche échoue immédiatement après le premier test. Ces assertions ont leur propre notation, commençant avec (?> comme ceci : (?>\d+)bar

Ce type de parenthèses verrouille le sous-masque qu'il contient une fois qu'il a été trouvé, et empêche un échec ultérieur d'y repasser, mais autorise à revenir plus loin en arrière.

Une autre description est que les sous-masques de ce type recherchent les chaînes de caractères, et ancre le sous-masque à l'intérieur de la chaîne.

Les sous-masques uniques ne sont pas capturants. Des cas simples comme ceux présentés ci-dessus peuvent être pris comme des situations maximales, qui réservent le maximum de caractères. En effet, alors que \d+ et \d+? ajustent le nombre de chiffres trouvés de manière à laisser la possibilité au masque de réussir, (?>\d+) ne peut retenir que la séquence entière de chiffres.

Cette construction peut contenir un nombre arbitraire de sous-masques complexes, et ils peuvent être imbriqués.

Les sous-masques uniques ne peuvent être utilisés qu'avec les assertions arrières, pour effectuer une recherche efficace en fin de chaîne. Considérons un masque simple tel abcd$ appliqué à une très longue chaîne qui ne lui correspond pas. À cause du système de recherche de gauche à droite, PCRE va commencer par rechercher un "a" dans la chaîne sujet, puis vérifier si ce qui suit convient au reste du masque. Si le masque est spécifié sous la forme ^.*abcd$ alors, la séquence .* remplace en premier lieu la chaîne entière, et échoue, repart en arrière, et remplace tous les caractères sauf le dernier, échoue, retourne en arrière, prend un caractère de moins, etc. et ainsi de suite. Encore une fois, la recherche du "a" passe en revue toute la chaîne de gauche à droite, ce qui n'est pas très efficace. Par contre, si le masque était écrit ^(?>.*)(?<=abcd) alors il n'y aurait pas de retour en arrière, pour satisfaire la séquence .*, car elle ne peut que remplacer toute la chaîne. L'assertion arrière consécutive va alors faire un test sur les 4 derniers caractères. Si elle échoue, la recherche est immédiatement interrompue. Pour les chaînes très longues, cette approche fait la différence en termes de performances et de temps de recherche.

Lorsqu'un masque contient une répétition illimitée dans un sous-masque, qui contient lui-même un nombre illimité de répétiteurs, l'utilisation des sous-masques à utilisation unique est la seule façon d'éviter l'échec de la recherche après un temps de calcul trop long. Le masque (\D+|<\d+>)*[!?] recherche un nombre illimité de sous-chaînes, qui contiennent soit des non chiffres, soit des chiffres inclus dans <>, suivi soit par ! ou par ?. Lorsqu'il trouve une solution, ce masque va très vite. Mais, lorsqu'il est appliqué à une chaîne telle : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, il lui faut beaucoup de temps pour annoncer un échec. Cela est dû au fait que la chaîne peut être divisée en deux sous-chaînes d'un grand nombre de façons, et qu'elles ont toutes été essayées. (Cet exemple utilisait [!?] plutôt qu'un caractère simple, car PCRE et PHP utilise une optimisation qui leur permettent de détecter rapidement l'échec lorsqu'un caractère unique est trouvé. Il se souvient du dernier caractère qui est attendu, et s'aperçoit rapidement qu'il n'y a pas ce caractère). Si le masque utilisé est ((?>\D+)|<\d+>)*[!?] les séquences de chiffres ne peuvent pas être trouvées, et l'échec intervient rapidement.


Les sous-masques conditionnels

Il est possible de lier un sous-masque à une condition, ou de choisir entre deux sous-masques alternatifs, en fonction du résultat d'une assertion, ou suivant les résultats de recherche précédents. Les deux formes possibles de sous-masques conditionnels sont

(?(condition)masque positif)
(?(condition) masque positif | masque négatif)

Si les conditions sont satisfaites, le masque positif est utilisé, sinon, le masque négatif est utilisé, si présent. S'il y a plus de deux alternatives, une erreur est générée à la compilation.

Il y a deux types de conditions : si le texte entre les parenthèses est une séquence de chiffres, alors la condition est satisfaite si le sous-masque correspondant à ce numéro a réussi. Considérons le masque suivant, qui contient des espaces non significatifs pour le rendre plus compréhensible (on supposera l'option PCRE_EXTENDED activée) et qui est divisée en trois parties pour simplifier les explications :

( \( )?    [^()]+    (?(1) \) )

La première partie recherche une parenthèse ouvrante optionnelle et, si elle existe, elle est capturée. La deuxième partie recherche un séquence de caractères qui ne contiennent pas de parenthèses. La troisième partie est conditionnée à la première, et s'assure que s'il y a une parenthèse ouvrante, il en existe une fermante. Si une parenthèse ouvrante a été trouvée, elle a été capturée, et donc la première capture existe, et la condition est exécutée. Sinon, elle est ignorée. Ce masque recherche donc une séquence de lettres, éventuellement placées entre parenthèse.

Si la condition est la chaîne (R), elle sera satisfaite si un appel récursif au masque ou au sous-masque a été fait. Au premier appel, la condition n'est pas vérifiée.

Si la condition n'est pas une séquence de chiffres, il faut que ce soit une assertion. Ce peut être une assertion positive ou négative, arrière ou avant. Considérons le masque suivant (même conditions que le précédent) et avec deux alternatives en seconde ligne :

(?(?=[^a-z]*[a-z])
\d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} )

La condition est une assertion avant positive, qui recherche une séquence optionnelle de caractères non-lettre. En d'autres termes, elle teste la présence d'au moins une lettre dans la chaîne sujet. Si une lettre est trouvée, la recherche se poursuit avec la première alternative, et sinon, avec la seconde. Ce masque recherche des chaînes de la forme dd-aaa-dd ou dd-dd-dd, avec "aaa" qui sont des lettres, et dd qui sont des chiffres.


Commentaires

La séquence (?# marque le début d'un commentaire, qui se termine à la prochaine parenthèse fermante. Les parenthèses imbriquées ne sont pas autorisées. Les caractères entre ces délimiteurs ne jouent alors aucun rôle dans le masque.

Si l'option PCRE_EXTENDED est activée, les caractères dièses # non protégés en dehors d'une classe de caractères introduisent un commentaire qui continuera jusqu'à la prochaine ligne dans le masque.


Masques récursifs

Considérons le cas où il faut rechercher dans une chaîne avec un niveau d'imbrications infini de parenthèses. Sans l'aide de la récursivité, le mieux que nous puissions obtenir est de créer un masque avec un niveau fixé de profondeur d'imbrication. Il n'est pas possible de traiter des masques à niveau d'imbrication variable. PCRE fournit un nouvel outil expérimental qui permet d'utiliser la récursivité dans les masques (entre autres). L'option (?R) est fournie pour servir la cause de la récursivité. Le masque suivant résout le problème des parenthèses (l'option PCRE_EXTENDED est utilisée pour ignorer les espaces) : \( ( (?>[^()]+) | (?R) )* \)

Tout d'abord, le masque recherche une parenthèse ouvrante. Puis, il recherche n'importe quel nombre de sous-chaînes qui sont soit des séquences de caractères non-parenthèses, ou bien une recherche récursive avec le même masque (i.e. une chaîne correctement incluse entre parenthèses). Finalement, il recherche une parenthèse fermante.

Cet exemple particulier contient un nombre illimité de répétitions imbriquées, ce qui fait que l'utilisation de sous-chaînes à utilisation unique pour rechercher les séquences de caractères non parenthèses est important, lorsqu'il s'applique à une chaîne qui n'est pas valide. Par exemple, si on l'applique à (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() la réponse arrive rapidement. Sinon, si les sous-chaînes à utilisation unique ne sont pas utilisées, la recherche peut prendre un temps très long, car il existe de très nombreuses combinaisons de + et * à tester avant de conclure à l'échec.

Les valeurs utilisées pour capturer les sous-masques sont celles utilisées par les niveaux les plus hauts de récursivité, auxquels la valeur est fixée. Si le masque précédent est utilisé avec (ab(cd)ef) la valeur de la parenthèse capturante est "ef", qui est la dernière valeur lue au niveau supérieur. Si de nouvelles parenthèses sont ajoutées, par exemple : \( ( ( (?>[^()]+) | (?R) )* ) \) alors la chaîne capturée est "ab(cd)ef", c'est-à-dire le contenu de la parenthèse capturante de plus haut niveau. S'il y a plus de 15 parenthèses capturantes dans une chaîne, PCRE doit utiliser plus de mémoire pour stocker ces données. S'il ne peut obtenir cette mémoire supplémentaire, il ne fait que sauver les 15 premières, car il n'y a pas moyen de générer une erreur de mémoire dans le cadre d'une récursivité.

(?1), (?2) et suivants peuvent être également utilisés pour les sous masques récursifs. Il est également possible d'utiliser les sous masques nommés : (?P>foo) ou (?&name).

Si la syntaxe pour une référence de sous-masque récursif (soit par un nombre ou par un nom) est utilisée en dehors des parenthèses à laquelle elle fait référence, il opère comme une sous-routine dans un langage de programmation. Un exemple ci-dessus a montré que le masque (sens|respons)e and \1ibility trouvera "sense and sensibility" et "response and responsibility", mais pas "sense and responsibility". Si on utilise plutôt le masque (sens|respons)e and (?1)ibility alors, il trouvera "sense and responsibility" tout comme les deux autres chaînes. De telles références doivent, dépendant, suivre le sous-masque auquel elles se réfèrent.

La longueur maximale d'un sujet correspond au plus grand nombre positif qu'une variable entière peut contenir. Cependant, PCRE utilise la récursivité pour gérer les sous-masques et les répétitions infinies. Ce qui signifie que l'espace disponible pour la pile peut limiter la taille du sujet qui peut être passé à certains masques.


Performance

Certaines séquences de recherches sont plus efficaces que d'autres. Ainsi, il est plus efficace d'utiliser une classe de caractères telle que [aeiou] plutôt qu'une alternative (a|e|i|o|u). En général, le masque le plus simple, qui permette la recherche désirée est le plus efficace. Le livre de Jeffrey Friedl's contient de nombreuses études à propos de l'optimisation des expressions rationnelles.

Lorsqu'un masque commence par.* et que l'option PCRE_DOTALL est activée, le masque est implicitement ancré par PCRE, étant donné qu'il ne peut que rechercher au début de la chaîne. Cependant, si l'option PCRE_DOTALL n'est pas activée, PCRE ne peut faire aucune optimisation car le métacaractères point "." ne remplace pas une nouvelle ligne, et si la chaîne sujet contient des nouvelles lignes, le masque peut trouver une solution qui serait située juste après une de ces nouvelles lignes, et non pas seulement au début de la chaîne sujet. Par exemple, le masque, (.*)second acceptera la chaîne "premier \net second" (avec "\n" qui remplace la nouvelle ligne), et la première chaîne capturée sera "et". Afin d'effectuer la recherche, PCRE va essayer d'appliquer le masque à partir de chaque début de ligne.

Si vous utilisez un tel masque avec des chaînes qui ne contiennent pas de caractères de nouvelle ligne, les meilleures performances seront atteintes avec l'option PCRE_DOTALL, ou en ancrant le masque avec ^.*. Cela évite à PCRE de scanner toute la chaîne pour rechercher un caractère de nouvelle ligne et recommencer la recherche.

Attention aux masques qui contiennent des quantificateurs infinis imbriqués. Ils peuvent demander un temps de calcul très long, lorsque appliqués à une chaîne qui ne correspond pas à ce masque. Par exemple, (a+)*

Ce masque peut accepter "aaaa" de 33 manières différentes, et ce nombre croit rapidement avec la taille de la chaîne (le quantificateur * peut prendre les valeurs de 0, 1, 2, 3, ou 4, et pour chaque cas non nul, le quantificateur + peut prendre différentes valeurs). Lorsque le reste de la chaîne est tel que l'on s'achemine vers un échec, PCRE doit en principe vérifier toutes les possibilités, et cela prend un temps extrêmement long.

Un optimiseur repère les cas les plus simples, tel que (a+)*b où un caractère simple suit les quantificateurs. Avant de partir dans les procédures standards de recherche, PCRE s'assure qu'il y a au moins un "b" dans la chaîne, et si ce n'est pas le cas, l'échec est annoncé immédiatement. Sinon, il n'y a pas d'optimisation dans la recherche. Vous pouvez voir la différence de comportement avec le masque suivant : (a+)*\d. Le premier retourne un échec quasi-immédiatement, s'il est appliqué à une ligne de "a", alors que le second masque prend un temps significatif pour une chaîne de plus de 20 caractères.


Options de recherche

Les options de PCRE sont listées ci-dessous. Les noms entre parenthèses sont les noms internes à PCRE. Les espaces et les caractères de nouvelles lignes sont ignorés dans les modificateurs, les autres caractères causent des erreurs.

i (PCRE_CASELESS)
Effectue une recherche insensible à la casse.
m (PCRE_MULTILINE)
Par défaut, PCRE traite la chaîne sujet comme une seule ligne (même si cette chaîne contient des retours chariot). Le métacaractère "début de ligne" (^) ne sera valable qu'une seule fois, au début de la ligne, et le métacaractère "fin de ligne " ($) ne sera valable qu'à la fin de la chaîne, ou avant le retour chariot final (à moins que l'option D ne soit activée). C'est le même fonctionnement qu'en Perl. Lorsque cette option est activée, " début de ligne " et " fin de ligne " correspondront alors aux caractères suivant et précédent immédiatement un caractère de nouvelle ligne, en plus du début et de la fin de la chaîne. C'est le même fonctionnement que l'option Perl /m. S'il n'y a pas de caractère de nouvelle ligne "\n" dans la chaîne sujet, ou s'il n'y a aucune occurrence de ^ ou $ dans le masque, cette option ne sert à rien.
s (PCRE_DOTALL)
Avec cette option, le métacaractère point (.) remplace n'importe quel caractère, y compris les nouvelles lignes. Sans cette option, le caractère point ne remplace pas les nouvelles lignes. Cette option est équivalente à l'option Perl /s. Une classe de caractères négative telle que [^a] acceptera toujours les caractères de nouvelles lignes, indépendamment de cette option.
x (PCRE_EXTENDED)
Avec cette option, les caractères d'espacement sont ignorés, sauf lorsqu'ils sont échappés, ou à l'intérieur d'une classe de caractères, et tous les caractères entre # non échappés et en dehors d'une classe de caractères, et le prochain caractère de nouvelle ligne sont ignorés. C'est l'équivalent Perl de l'option /x : elle permet l'ajout de commentaires dans les masques compliqués. Notez bien, cependant, que cela ne s'applique qu'aux caractères de données. Les caractères d'espacement ne doivent jamais apparaître dans les séquences spéciales d'un masque, par exemple dans la séquence (?( qui introduit une parenthèse conditionnelle.
e (PREG_REPLACE_EVAL)
Avertissement

Cette fonctionnalité était obsolète en PHP 5.5.0, et a été supprimée depuis PHP 7.0.0.

Avec cette option obsolète, preg_replace() effectue la substitution normale des références arrières dans la chaîne de remplacement, puis l'évalue comme un code PHP, et utilise le résultat pour remplacer la chaîne de recherche. Les guillemets simples, les guillemets doubles, les antislashs et les caractères NULL sont protégés avec des antislashs (\) dans les références arrières substituées.
Attention

La fonction addslashes() est exécutée sur toutes les références arrières trouvées avant d'effectuer la substitution. Ainsi, lorsque les références arrières sont utilisées comme des chaînes entre guillemets, les caractères échappés seront convertis en version litérale. Cependant, les caractères qui sont échappés, qui ne sont normalement pas convertis, conserveront leurs slashes. Ceci rend l'utilisation de ce modificateur compliquée.

Attention

Assurez-vous que replacement constitue une chaîne de code PHP valide, sinon, PHP émettra une erreur d'analyse à la ligne contenant la fonction preg_replace().

Attention

L'utilisation de ce modificateur n'est pas recommandé, sachant qu'il peut introduire très facilement des vulnérabilités :

<?php
$html = $_POST['html'];

// Mise en majuscule
$html = preg_replace(
    '(<h([1-6])>(.*?)</h\1>)e',
    '"<h$1>" . strtoupper("$2") . "</h$1>"',
    $html
);

L'exemple ci-dessus peut être facilement exploité en y passant une chaîne comme celle-ci : <h1>{${eval($_GET[php_code])}}</h1>. Ceci fournit à l'attaquant la possibilité d'exécuter du code PHP arbitraire, et ainsi, lui donne un accès quasi global à votre serveur.

Pour éviter de type de vulnérabilité, la fonction preg_replace_callback() doit être utilisée à la place :

<?php
$html = $_POST['html'];

// Mise en majuscule
$html = preg_replace_callback(
    '(<h([1-6])>(.*?)</h\1>)',
    function ($m) {
        return "<h$m[1]>" . strtoupper($m[2]) . "</h$m[1]>";
    },
    $html
);

Note:

Seule preg_replace() utilise cette option. Elle est ignorée par les autres fonctions PCRE.

A (PCRE_ANCHORED)
Avec cette option, le masque est ancré de force, c'est-à-dire que le masque doit s'appliquer juste au début de la chaîne sujet pour être considéré comme trouvé. Il est possible de réaliser le même effet en ajoutant les métacaractères adéquats, ce qui est la seule manière de le faire en Perl.
D (PCRE_DOLLAR_ENDONLY)
Avec cette option, le métacaractère $ ne sera valable qu'à la fin de la chaîne sujet. Sans cette option, $ est aussi valable avant une nouvelle ligne, si cette dernière est le dernier caractère de la chaîne. Cette option est ignorée si l'option m est activée. Il n'y a pas d'équivalent en Perl.
S
Lorsqu'un masque est utilisé plusieurs fois, cela vaut la peine de passer quelques instants de plus pour l'analyser et optimiser le code pour accélérer les traitements ultérieurs. Cette option force cette analyse plus poussée. Actuellement, cette analyse n'est utile que pour les masques non ancrés, qui ne commencent pas par un caractère fixe.
U (PCRE_UNGREEDY)
Cette option inverse la tendance à la gourmandise des expressions rationnelles. Vous pouvez aussi inverser cette tendance au coup par coup avec un ? mais cela rendra gourmand la séquence. Cette option n'est pas compatible avec Perl. Elle peut aussi être mise dans le masque avec l'option ?U dans le pattern ou par un point d'interrogation avant le quantificateur (.e.g. .*?).

Note:

Il n'est généralement pas possible de faire correspondre plus que la limite de pcre.backtrack_limit caractères en mode non gourmand.

X (PCRE_EXTRA)
Cette option ajoute d'autres fonctionnalités incompatibles avec le PCRE de Perl. Tous les antislashs suivis d'une lettre qui n'aurait pas de signification particulière causent une erreur, permettant la réservation de ces combinaisons pour des ajouts fonctionnels ultérieurs. Par défaut, comme en Perl, les antislashs suivis d'une lettre sans signification particulière sont traités comme des valeurs littérales. Actuellement, cette option ne déclenche pas d'autres fonctions.
J (PCRE_INFO_JCHANGED)
L'option (?J) interne de configuration modifie l'option locale PCRE_DUPNAMES. Permet la duplication de noms pour les sous-masques.
u (PCRE_UTF8)
Cette option désactive les fonctionnalités additionnelles de PCRE qui ne sont pas compatibles avec Perl. Le masque et la chaîne d'entrée sont traitées comme des chaînes UTF-8. Cette option est disponible en PHP 4.1.0 et plus récent sur plate-forme Unix et depuis PHP 4.2.3 sur plate-forme Windows. La validité UTF-8 de la chaîne d'entrée et du masque est vérifiée depuis PHP 4.3.5. Une chaîne d'entrée invalide entrainera aucune détection par les fonctions preg_*. Un masque invalide va lever une erreur de niveau E_WARNING. Les séquences UTF-8 de cinq et six octets sont considérées comme invalide depuis PHP 5.3.4 (soit PCRE 7.3 2007-08-28); elles étaient considérées comme valide précédemment.


Différences avec Perl

Les différences avec Perl 5.005 sont présentées ici :

  1. Par défaut, un caractère d'espacement correspond à n'importe quel caractère que la fonction C isspace() reconnaît, bien qu'il soit possible de recompiler la bibliothèque PCRE avec d'autres tables de caractères. Normalement, isspace() retourne TRUE pour les espaces, les retours chariot, les nouvelles lignes, les formfeed, les tabulations verticales et horizontales. Perl 5 n'accepte plus la tabulation verticale comme caractère d'espacement. La séquence \v qui était dans la documentation Perl depuis longtemps n'a jamais été reconnue. Cependant, la tabulation verticale elle-même était reconnue comme un caractère d'espacement jusqu'à la version 5.002. Avec les versions 5.004 et 5.005, l'option \s l'ignore.
  2. PRCE ne tolère pas la répétition de quantificateurs dans les expressions. Perl le permet, mais cela ne signifie pas ce que vous pourriez penser. Par exemple, (?!a){3} ne s'interprète pas : les trois caractères suivants ne sont pas des "a". En fait, cela s'interprète comme : le caractère suivant n'est pas "a" trois fois.
  3. Les occurrences de sous-masques qui interviennent dans des assertions négatives sont comptées, mais elles ne sont pas enregistrées dans le vecteur d'occurrences. Perl modifie ses variables numériques pour toutes les occurrences de sous-masque, avant que l'assertion ne vérifie le masque entier, et uniquement si les sous-masques ne trouvent qu'une seule occurrence.
  4. Bien que les caractères nul soient tolérés dans la chaîne de recherche, ils ne sont pas acceptés dans le masque, car le masque est utilisé comme une chaîne C standard, terminée par le caractère nul. Il faut donc utiliser la séquence d'échappement "\x00" dans le masque pour rechercher les caractères nul.
  5. Les séquences d'échappement suivantes ne sont pas supportées par Perl : \l, \u, \L, \U. En fait, elles sont implémentées par la gestion intrinsèque de chaînes Perl, et ne font pas partie de ses caractères spéciaux.
  6. L'assertion \G du Perl n'est pas supportée car elle n'est pas pertinente pour faire des recherches avec des masques uniques.
  7. De manière assez évidente, PCRE n'accepte pas la construction (?{code}) et (??{code}). Cependant, les masques récursifs sont supportés.
  8. Au moment de l'écriture de PCRE, Perl 5.005_02 avait quelques comportements étranges avec la capture des chaînes lorsqu'une partie du masque est redoublée. Par exemple, "aba" avec le masque /^(a(b)?)+$/ va affecter à $2 la valeur "b", mais la même manipulation avec "aabbaa" et /^(aa(bb)?)+$/ laissera $2 vide. Cependant, si le masque est remplacé par /^(aa(b(b))?)+$/ alors $2 (et d'ailleurs $3) seront correctement affectés. Avec le Perl 5.004, $2 sera correctement affecté dans les deux cas, et c'est aussi vrai avec PCRE. Si Perl évolue vers un autre comportement cohérent, PCRE s'adaptera probablement.
  9. Une autre différence encore non résolue est le fait qu'en Perl 5.005_02 le masque /^(a)?(?(1)a|b)+$/ accepte la chaîne "a", tandis que PCRE ne l'accepte pas. Cependant, que ce soit avec Perl ou PCRE /^(a)?a/ et "a" laisseront $1 vide.

  10. PCRE propose quelques extensions aux expressions rationnelles du Perl.

    1. (a) Bien que les assertions arrières (lookbehind) soient obligées de rechercher une chaîne de longueur fixe, toutes les assertions arrières peuvent avoir une longueur différente. Perl 5.005 leur impose d'avoir toutes la même longueur.
    2. (b) Si PCRE_DOLLAR_ENDONLY est activé, et que PCRE_MULTILINE ne l'est pas, le métacaractère $ ne s'applique qu'à la fin physique de la chaîne, et non pas avant les caractères de nouvelle ligne.
    3. (c) Si PCRE_EXTRA est activé, un antislash suivi d'une lettre sans signification spéciale est considéré comme une erreur.
    4. (d) Si PCRE_UNGREEDY est activé, la "gourmandise" des quantificateurs de répétition est inversée, ce qui est rend non gourmand par défaut, mais s'ils sont suivis de ?, il seront gourmands.


Differences avec les regex POSIX

Depuis PHP 5.3.0, l'extension des Regex POSIX est obsolète. Il y a un certain nombre de différences entre les regex POSIX et PCRE. Cette page liste les plus remarquables qu'il faut connaitre pour passer de l'un à lautre.

  1. Les fonctions PCRE demandent à ce que le motif soit entouré de délimiteurs.
  2. A la différence de POSIX, l'extension PCRE n'a pas de fonctions dédiées à la correspondance insensible à la casse. Au lieu de cela, il faut utiliser modificateur i. D'autres modificateurs sont aussi disponibles.
  3. Les fonctions POSIX trouvent l'occurence la plus longue en partant de la gauche, mais PCRE s'arrête dès correspondance avec la première occurence. Si la chaine n'a aucune correspondance, cela ne crée pas de différence mais si il y a correspondance, cela peut avoir des effets importants sur le resultat trouvé et le temps de recherche du motif. Pour illustrer cette différence, considérons l'exemple suivant tiré de "Mastering Regular Expressions" par Jeffrey Friedl. L'utilisation du motif one(self)?(selfsufficient)? sur la chaine oneselfsufficient avec PCRE donnera un résultat oneself, mais avec POSIX le résultat sera toute la chaine oneselfsufficient. Les deux sous-chaines correspondent à la chaine originale, mais POSIX utilise la plus longue comme résultat.
  4. La définition POSIX d'une "classe de caractères" diffère de celle en PCRE. Les expressions entre crochets pour trouver un jeu de caracères explicites sont supportées sous la forme PCRE d'une classe de caractères mais la forme POSIX de collection d'éléments, de classes de caractères n'est pas supportée. Le fait de fournir une expression avec une classe de caractères qui commence et qui se termine par le caractère :, . ou par le caractère = à PCRE est interprété comme une tentative d'utilisation d'une de ces fonctionalités non supportées et résultera en une erreur de compilation.

Remplacements de fonctions
POSIX | PCRE
ereg_replace() | preg_replace()
ereg() | preg_match()
eregi_replace() | preg_replace()
eregi() | preg_match()
split() | preg_split()
spliti() | preg_split()
sql_regcase() | No equivalent


Fonctions PCRE

Sommaire

  • preg_filter — Recherche et remplace avec une expression rationnelle
  • preg_grep — Retourne un tableau avec les résultats de la recherche
  • preg_last_error — Retourne le code erreur de la dernière expression PCRE exécutée
  • preg_match_all — Expression rationnelle globale
  • preg_match — Effectue une recherche de correspondance avec une expression rationnelle standard
  • preg_quote — Protection des caractères spéciaux des expressions rationnelles
  • preg_replace_callback_array — Perform a regular expression search and replace using callbacks
  • preg_replace_callback — Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback
  • preg_replace — Rechercher et remplacer par expression rationnelle standard
  • preg_split — Éclate une chaîne par expression rationnelle


Recherche et remplace avec une expression rationnelle

  • « Fonctions PCRE
  • preg_grep »
  • PHP Manual
  • Fonctions PCRE
  • Recherche et remplace avec une expression rationnelle

preg_filter

(PHP 5 >= 5.3.0, PHP 7)

preg_filter — Recherche et remplace avec une expression rationnelle

Description

mixed preg_filter ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

preg_filter() est identique à preg_replace(), mais elle ne fait que retourner les occurrences trouvées (éventuellement transformées). Pour plus de détails sur le fonctionnement de cette fonction, voyez preg_replace().

Valeurs de retour

Retourne un tableau si le paramètre subject est de type tableau ou une chaîne de caractères autrement.

Si aucune occurrence n'est trouvée ou si une erreur survient, un tableau vide sera retourné lorsque le paramètre subject est un tableau ou NULL sinon.

Exemples

Exemple #1 Exemple de comparaison de preg_filter() avec preg_replace()

<?php
$subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4');
$pattern = array('/\d/', '/[a-z]/', '/[1a]/');
$replace = array('A:$0', 'B:$0', 'C:$0');

echo "preg_filter renvoie\n";
print_r(preg_filter($pattern, $replace, $subject));

echo "preg_replace renvoie\n";
print_r(preg_replace($pattern, $replace, $subject));
?>

L'exemple ci-dessus va afficher :

preg_filter renvoie
Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [7] => A:4
)
preg_replace renvoie
Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [5] => A
    [6] => B
    [7] => A:4
)

Voir aussi

  • Les Patterns PCRE
  • preg_quote() - Protection des caractères spéciaux des expressions rationnelles
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard
  • preg_replace_callback() - Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback
  • preg_grep() - Retourne un tableau avec les résultats de la recherche
  • preg_last_error() - Retourne le code erreur de la dernière expression PCRE exécutée


Retourne un tableau avec les résultats de la recherche

  • « preg_filter
  • preg_last_error »
  • PHP Manual
  • Fonctions PCRE
  • Retourne un tableau avec les résultats de la recherche

preg_grep

(PHP 4, PHP 5, PHP 7)

preg_grep — Retourne un tableau avec les résultats de la recherche

Description

array preg_grep ( string $pattern , array $input [, int $flags = 0 ] )

preg_grep() retourne un tableau qui contient les éléments de input qui satisfont le masque pattern.

Liste de paramètres

pattern

Le motif à chercher, sous la forme d'une chaîne de caractères.

input

Le tableau d'entrée.

flags

Si cette option vaut PREG_GREP_INVERT, cette fonction retourne les éléments du tableau input qui ne correspondent pas au motif pattern.

Valeurs de retour

Retourne un tableau indexé, en utilisant les clés du tableau input d'entrée.

Exemples

Exemple #1 Exemple avec preg_grep()

<?php
// Recherche les nombres à virgule flottante dans le tableau
$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
?>

Voir aussi

  • Les Patterns PCRE
  • preg_quote() - Protection des caractères spéciaux des expressions rationnelles
  • preg_match_all() - Expression rationnelle globale
  • preg_filter() - Recherche et remplace avec une expression rationnelle
  • preg_last_error() - Retourne le code erreur de la dernière expression PCRE exécutée


Retourne le code erreur de la dernière expression PCRE exécutée

  • « preg_grep
  • preg_match_all »
  • PHP Manual
  • Fonctions PCRE
  • Retourne le code erreur de la dernière expression PCRE exécutée

preg_last_error

(PHP 5 >= 5.2.0, PHP 7)

preg_last_error — Retourne le code erreur de la dernière expression PCRE exécutée

Description

int preg_last_error ( void )

Retourne le code erreur de la dernière regex PCRE exécutée.

Exemple #1 Exemple avec preg_last_error()

<?php

preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');

if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    print 'Backtrack limit was exhausted!';
}

?>

L'exemple ci-dessus va afficher :

Backtrack limit was exhausted!

Valeurs de retour

Retourne une des constantes suivantes (expliquées sur cette page):

  • PREG_NO_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_BACKTRACK_LIMIT_ERROR (voir aussi pcre.backtrack_limit)
  • PREG_RECURSION_LIMIT_ERROR (voir aussi pcre.recursion_limit)
  • PREG_BAD_UTF8_ERROR
  • PREG_BAD_UTF8_OFFSET_ERROR (depuis PHP 5.3.0)


Expression rationnelle globale

  • « preg_last_error
  • preg_match »
  • PHP Manual
  • Fonctions PCRE
  • Expression rationnelle globale

preg_match_all

(PHP 4, PHP 5, PHP 7)

preg_match_all — Expression rationnelle globale

Description

int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )

Analyse subject pour trouver l'expression pattern et met les résultats dans matches, dans l'ordre spécifié par flags.

Après avoir trouvé un premier résultat, la recherche continue jusqu'à la fin de la chaîne.

Liste de paramètres

pattern

Le masque à chercher, sous la forme d'une chaîne de caractères.

subject

La chaîne d'entrée.

matches

Tableau contenant tous les résultats, dans un tableau multidimensionnel ordonné suivant le paramètre flags.

flags

Peut prendre une des deux valeurs suivantes (notez bien qu'il est incohérent d'utiliser PREG_PATTERN_ORDER avec PREG_SET_ORDER ) :

PREG_PATTERN_ORDER

L'ordre est tel que $matches[0] est un tableau qui contient les résultats qui satisfont le masque complet, $matches[1] est un tableau qui contient les résultats qui satisfont la première parenthèse capturante, etc.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>exemple : </b><div align=left>ceci est un test</div>",
    $out, PREG_PATTERN_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

L'exemple ci-dessus va afficher :

<b>exemple : </b>, <div align=left>ceci est un test</div>
exemple : , ceci est un test

Ainsi, $out[0] est un tableau qui contient les résultats qui satisfont le masque complet, et $out[1] est un tableau qui contient les balises entre > et <.

PREG_SET_ORDER

Les résultats sont classés de telle façon que $matches[0] contient la première série de résultats, $matches[1] contient la deuxième, etc.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>exemple : </b><div align=\"left\">ceci est un test</div>",
    $out, PREG_SET_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

L'exemple ci-dessus va afficher :

<b>exemple : </b>, exemple :
<div align="left">ceci est un test</div>, ceci est un test

PREG_OFFSET_CAPTURE

Si cette option est activée, toutes les sous-chaînes qui satisfont le masque seront aussi identifiées par leur offset. Notez que cela modifie le format de la valeur retournée, puisque chaque élément de réponse devient un tableau contenant la sous-chaîne résultat à l'index 0 et l'index de celle-ci dans la chaîne subject à l'index 1.

Si order est omis, PREG_PATTERN_ORDER est utilisé par défaut.

offset

Normalement, la recherche commence au début de la chaîne subject. Le paramètre optionnel offset peut être utilisé pour spécifier une position pour le début de la recherche (en octets).

Note:

Utiliser le paramètre offset ne revient pas à passer substr($subject, $offset) à preg_match_all() à la place de la chaîne subject, car pattern peut contenir des assertions comme ^, $ ou (?<=x). Lisez la documentation sur la fonction preg_match() pour des exemples.

Valeurs de retour

Retourne le nombre de résultats qui satisfont le masque complet, ou FALSE si une erreur survient.

Historique

Version | Description
5.4.0 | Le paramètre matches devient optionnel.
5.3.6 | Retourne FALSE si offset est plus grand que la taille de subject.
5.2.2 | Les sous-masques nommés acceptent maintenant les syntaxes (?<name>), (?'name') ainsi que (?P<name>). Les précédentes versions n'acceptaient que la syntaxe (?P<name>).

Exemples

Exemple #1 Extraction de tous les numéros de téléphone d'un texte

<?php
preg_match_all("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
                "Call 555-1212 or 1-800-555-1212", $phones);
?>

Exemple #2 Recherche les couples de balises HTML (gourmand)

<?php
// Cet exemple utilise les références arrières (\\2).
// Elles indiquent à l'analyseur qu'il doit trouver quelque chose qu'il
// a déjà repéré un peu plus tôt
// le nombre 2 indique que c'est le deuxième jeu de parenthèses
// capturante qui doit être utilisé (ici, ([\w]+)).
// L'antislash est nécessaire ici, car la chaîne est entre guillemets doubles

$html = "<b>texte en gras</b><a href=howdy.html>cliquez moi</a>";

preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);

foreach ($matches as $val) {
    echo "matched: " . $val[0] . "\n";
    echo "part 1: " . $val[1] . "\n";
    echo "part 2: " . $val[2] . "\n";
    echo "part 3: " . $val[3] . "\n";
    echo "part 4: " . $val[4] . "\n\n";
}
?>

L'exemple ci-dessus va afficher :

matched: <b>texte en gras</b>
part 2: b
part 3: texte en gras
part 4: </b>

matched: <a href=howdy.html>cliquez moi</a>
part 1: <a href=howdy.html>
part 2: a
part 3: cliquez moi
part 4: </a>

Exemple #3 Utilisation d'un sous-masque nommé

<?php

$str = <<<FOO
a: 1
b: 2
c: 3
FOO;

preg_match_all('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);

/* Ceci fonctionne également en PHP 5.2.2 (PCRE 7.0) et suivants,
 * cependant, la forme ci-dessus est recommandée pour des raisons
 * de compatibilités ascendantes */
// preg_match_all('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);

print_r($matches);

?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => a: 1
            [1] => b: 2
            [2] => c: 3
        )

    [name] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [digit] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [2] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

)

Voir aussi

  • Les Patterns PCRE
  • preg_quote() - Protection des caractères spéciaux des expressions rationnelles
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard
  • preg_split() - Éclate une chaîne par expression rationnelle
  • preg_last_error() - Retourne le code erreur de la dernière expression PCRE exécutée


Effectue une recherche de correspondance avec une expression rationnelle standard

  • « preg_match_all
  • preg_quote »
  • PHP Manual
  • Fonctions PCRE
  • Effectue une recherche de correspondance avec une expression rationnelle standard

preg_match

(PHP 4, PHP 5, PHP 7)

preg_match — Effectue une recherche de correspondance avec une expression rationnelle standard

Description

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

Analyse subject pour trouver l'expression qui correspond à pattern.

Liste de paramètres

pattern

Le masque à chercher, sous la forme d'une chaîne de caractères.

subject

La chaîne d'entrée.

matches

Si matches est fourni, il sera rempli par les résultats de la recherche. $matches[0] contiendra le texte qui satisfait le masque complet, $matches[1] contiendra le texte qui satisfait la première parenthèse capturante, etc.

flags

Le paramètre flags peut prendre l'une des valeurs suivantes :

PREG_OFFSET_CAPTURE
Si cette option est activée, toutes les sous-chaînes qui satisfont le masque seront aussi identifiées par leur offset. Notez que cela modifie la valeur de matches qui devient un tableau dont chaque élément est un tableau contenant la chaîne correspondant au masque à l'offset 0 ainsi que l'offset de la chaîne dans subject à l'offset 1.

offset

Normalement, la recherche commence au début de la chaîne subject. Le paramètre optionnel offset peut être utilisé pour spécifier une position pour le début de la recherche (en octets).

Note:

Utiliser le paramètre offset ne revient pas à passer substr($subject, $offset) à preg_match_all() à la place de la chaîne subject, car pattern peut contenir des assertions comme ^, $ ou (?<=x). Comparez :

<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
print_r($matches);
?>

L'exemple ci-dessus va afficher :

Array
(
)

avec cet exemple :

<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

produira :

Array
(
    [0] => Array
        (
            [0] => def
            [1] => 0
        )

)

Valeurs de retour

preg_match() retourne 1 si le pattern fourni correspond, 0 s'il ne correspond pas, ou FALSE si une erreur survient.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Historique

Version | Description
5.3.6 | Retourne FALSE si offset est plus grand que la taille de subject.
5.2.2 | Les sous-masques nommés acceptent maintenant la syntaxe (?<name>) et (?'name') mais aussi (?P<name>). Les anciennes versions n'acceptaient que la syntaxe (?P<name>).

Exemples

Exemple #1 Trouve la chaîne "php"

<?php
// Le "i" après le délimiteur du pattern indique que la recherche ne sera pas sensible à la casse
if (preg_match("/php/i", "PHP est le meilleur langage de script du web.")) {
    echo "Un résultat a été trouvé.";
} else {
    echo "Aucun résultat n'a été trouvé.";
}
?>

Exemple #2 Trouve le mot "web"

<?php
/* \b, dans le masque, indique une limite de mot, de façon à ce que le mot
 "web" uniquement soit repéré, et pas seulement des parties de mots comme
  dans "webbing" ou "cobweb" */
if (preg_match("/\bweb\b/i", "PHP est le meilleur langage de script du web.")) {
    echo "Le mot a été trouvé.";
} else {
    echo "Le mot n'a pas été trouvé.";
}

if (preg_match("/\bweb\b/i", "PHP est le meilleur langage de script du web.")) {
    echo "Le mot a été trouvé.";
} else {
    echo "Le mot n'a pas été trouvé.";
}
?>

Exemple #3 Lire un nom de domaine dans une URL

<?php
// repérer le nom de l'hôte dans l'URL
preg_match('@^(?:http://)?([^/]+)@i',
    "http://www.php.net/index.html", $matches);
$host = $matches[1];

// repérer les deux derniers segments du nom de l'hôte
preg_match('/[^.]+\.[^.]+$/', $host, $matches);
echo "Le nom de domaine est : {$matches[0]}\n";
?>

L'exemple ci-dessus va afficher :

Le nom de domaine est : php.net

Exemple #4 Utilisation des sous-masques nommés

<?php

$str = 'foobar: 2008';

preg_match('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);

/* Ceci fonctionne également en PHP 5.2.2 (PCRE 7.0) et suivants,
 * cependant, la syntaxe ci-dessus est recommandée pour des raisons
 * de compatibilités ascendantes */
// preg_match('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);

print_r($matches);

?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => foobar: 2008
    [name] => foobar
    [1] => foobar
    [digit] => 2008
    [2] => 2008
)

Notes

Astuce

N'utilisez pas preg_match() si vous voulez uniquement savoir si une chaîne est contenue dans une autre. Utilisez dans ce cas les fonctions strpos() ou strstr(), qui sont beaucoup plus rapides.

Voir aussi

  • Les Patterns PCRE
  • preg_match_all() - Expression rationnelle globale
  • preg_quote() - Protection des caractères spéciaux des expressions rationnelles
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard
  • preg_split() - Éclate une chaîne par expression rationnelle
  • preg_last_error() - Retourne le code erreur de la dernière expression PCRE exécutée


Protection des caractères spéciaux des expressions rationnelles

  • « preg_match
  • preg_replace_callback_array »
  • PHP Manual
  • Fonctions PCRE
  • Protection des caractères spéciaux des expressions rationnelles

preg_quote

(PHP 4, PHP 5, PHP 7)

preg_quote — Protection des caractères spéciaux des expressions rationnelles

Description

string preg_quote ( string $str [, string $delimiter = NULL ] )

preg_quote() ajoute un antislash devant tous les caractères de la chaîne str. Cela est très utile si vous avez une chaîne qui va servir de masque, mais qui est générée durant l'exécution.

Les caractères spéciaux qui seront protégés sont les suivants : . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -

Liste de paramètres

str

La chaîne d'entrée.

delimiter

Si l'argument optionnel delimiter est fourni, il sera aussi échappé. Ceci est pratique pour échapper le délimiteur requis par les fonctions PCRE. Le slash / est le délimiteur le plus répandu.

Valeurs de retour

Retourne la chaîne protégée.

Historique

Version | Description
5.3.0 | Le caractère - est maintenant protégé.

Exemples

Exemple #1 Exemple avec preg_quote()

<?php
$keywords = '$40 pour un g3/400';
$keywords = preg_quote($keywords, '/');
echo $keywords; // retourne \$40 pour un g3\/400
?>

Exemple #2 Mise en italique d'un mot dans un texte

<?php
// Dans cet exemple, preg_quote($word) sert à éviter que les astérisques
// prennent une valeur particulière dans l'expression rationnelle.

$textbody = "Ce livre est *très* difficile à trouver.";
$word = "*très*";
$textbody = preg_replace ("/" . preg_quote($word, '/') . "/",
                          "<i>" . $word . "</i>",
                          $textbody);
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • Les masques PCRE
  • escapeshellcmd() - Protège les caractères spéciaux du Shell


Perform a regular expression search and replace using callbacks

  • « preg_quote
  • preg_replace_callback »
  • PHP Manual
  • Fonctions PCRE
  • Perform a regular expression search and replace using callbacks

preg_replace_callback_array

(PHP 7)

preg_replace_callback_array — Perform a regular expression search and replace using callbacks

Description

mixed preg_replace_callback_array ( array $patterns_and_callbacks , mixed $subject [, int $limit = -1 [, int &$count ]] )

The behavior of this function is similar to preg_replace_callback(), except that callbacks are executed on a per-pattern basis.

Liste de paramètres

patterns_and_callbacks

An associative array mapping patterns (keys) to callbacks (values).

subject

The string or an array with strings to search and replace.

limit

The maximum possible replacements for each pattern in each subject string. Defaults to -1 (no limit).

count

If specified, this variable will be filled with the number of replacements done.

Valeurs de retour

preg_replace_callback_array() returns an array if the subject parameter is an array, or a string otherwise. On errors the return value is NULL

If matches are found, the new subject will be returned, otherwise subject will be returned unchanged.

Exemples

Exemple #1 preg_replace_callback_array() example

<?php
$subject = 'Aaaaaa Bbb';

preg_replace_callback_array(
    [
        '~[a]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for "a" found', PHP_EOL;
        },
        '~[b]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for "b" found', PHP_EOL;
        }
    ],
    $subject
);
?>

L'exemple ci-dessus va afficher :

6 matches for "a" found
3 matches for "b" found

Voir aussi

  • PCRE Patterns
  • preg_replace_callback() - Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback
  • preg_quote() - Protection des caractères spéciaux des expressions rationnelles
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard
  • preg_last_error() - Retourne le code erreur de la dernière expression PCRE exécutée
  • Anonymous functions
  • Informations sur le type callback


Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback

  • « preg_replace_callback_array
  • preg_replace »
  • PHP Manual
  • Fonctions PCRE
  • Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback

preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

preg_replace_callback — Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback

Description

mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] )

Le comportement de preg_replace_callback() est presque identique à celui de preg_replace(), hormis le fait qu'à la place du paramètre replacement, il faut spécifier une fonction de rappel callback qui sera appelée, avec les éléments trouvés en arguments.

Liste de paramètres

pattern

Le masque à chercher. Il peut être une chaîne de caractères ou un tableau contenant des chaînes.

callback

La fonction de rappel qui recevra le tableau d'éléments trouvés dans la chaîne subject. La fonction de rappel doit retourner la chaîne de remplacement. Voici la signature de la fonction de rappel :

string handler ( array $matches )

Vous aurez souvent besoin de la fonction callback avec preg_replace_callback() à un seul endroit. Dans ce cas, vous pouvez simplement utiliser une fonction anonyme pour déclarer une fonction de rappel pour la fonction preg_replace_callback(). En faisant cela, vous concentrez toutes les routines liées à votre remplacement à un seul endroit, et nous ne polluez par votre espace de noms de fonctions avec des fonctions à usage unique.

Exemple #1 preg_replace_callback() et fonction anonyme

<?php
// Un filtre de ligne de commande Unix pour convertir les lettres
// en majuscule de début des paragraphe en minuscules

$fp = fopen("php://stdin", "r") or die("Impossible de lire la ligne de commande");
while (!feof($fp)) {
    $line = fgets($fp);
    $line = preg_replace_callback(
        '|<p>\s*\w|',
        function ($matches) {
            return strtolower($matches[0]);
        },
        $line
    );
    echo $line;
}
fclose($fp);
?>

subject

La chaîne ou le tableau de chaînes à chercher et à remplacer.

limit

Le nombre maximal de remplacement pour chaque masque dans chaque chaîne subject. Vaut par défaut -1 (aucune limite).

count

Si fournie, cette variable sera remplie avec le nombre de remplacements effectués.

Valeurs de retour

preg_replace_callback() retourne un tableau si le paramètre subject est un tableau, ou, sinon, une chaîne de caractères. Si une erreur survient, la valeur retournée sera NULL.

Si des correspondances sont trouvées, le nouveau sujet sera retourné, sinon le paramètre subject sera retourné, inchangé.

Historique

Version | Description
5.1.0 | Le paramètre count a été ajouté.

Exemples

Exemple #2 Exemple avec preg_replace_callback()

<?php
// Ce texte était vrai en 2002
// nous voulons le mettre a jour pour 2003
$text = "Le premier avril est le 04/01/2002\n";
$text.= "Le dernier noël était le 12/24/2001\n";

// Fonction de callback
function next_year($matches)
{
  // comme d'habitude : $matches[0] représente la valeur totale
  // $matches[1] représente la première parenthèse capturante
  return $matches[1].($matches[2]+1);
}
echo preg_replace_callback(
            "|(\d{2}/\d{2}/)(\d{4})|",
            "next_year",
            $text);

?>

L'exemple ci-dessus va afficher :

Le premier avril est le 04/01/2003
Le dernier noël était le 12/24/2002

Exemple #3 Exemple avec preg_replace_callback() en utilisant une structure récursive pour gérer du BB code

<?php
$input = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain";

function parseTagsRecursive($input)
{

    $regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#';

    if (is_array($input)) {
        $input = '<div style="margin-left: 10px">'.$input[1].'</div>';
    }

    return preg_replace_callback($regex, 'parseTagsRecursive', $input);
}

$output = parseTagsRecursive($input);

echo $output;
?>

Voir aussi

  • Les Patterns PCRE
  • preg_quote() - Protection des caractères spéciaux des expressions rationnelles
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard
  • preg_last_error() - Retourne le code erreur de la dernière expression PCRE exécutée
  • Les fonctions anonymes
  • Informations sur le type callback


Rechercher et remplacer par expression rationnelle standard

  • « preg_replace_callback
  • preg_split »
  • PHP Manual
  • Fonctions PCRE
  • Rechercher et remplacer par expression rationnelle standard

preg_replace

(PHP 4, PHP 5, PHP 7)

preg_replace — Rechercher et remplacer par expression rationnelle standard

Description

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

Analyse subject pour trouver l'expression rationnelle pattern et remplace les résultats par replacement.

Liste de paramètres

pattern

Le masque à chercher. Il peut être une chaîne ou un tableau de chaînes.

Plusieurs modificateurs PCRE sont également disponibles.

replacement

La chaîne ou un tableau de chaînes pour le remplacement. Si ce paramètre est une chaîne et le paramètre pattern est un tableau, tous les masques seront remplacés par cette chaîne. Si les paramètres pattern et replacement sont des tableaux, chaque pattern sera remplacé par son replacement associé. Si replacement à moins d'éléments que pattern, alors une chaîne vide est utilisée pour le reste des valeurs. Pour utiliser les antislashs dans le masque, vous devez les doubler ("\\\\").

replacement peut contenir des références de la forme \\n ou, (depuis PHP 4.0.4) $n. Cette dernière forme est recommandée. Ces références seront remplacées par le texte capturé par la n-ième parenthèse capturante du masque. n peut prendre des valeurs de 0 à 99, et \\0 ou $0, correspondent au texte de qui satisfait le masque complet. Les parenthèses ouvrantes sont comptées de gauche à droite (en commençant à 1) pour déterminer le numéro de parenthèse capturante.

Lorsque vous travaillez avec un masque de remplacement où une référence arrière est directement suivie par un nombre (i.e.: placer un nombre littéral immédiatement après une référence arrière), vous ne pouvez pas utiliser la syntaxe classique \\1 pour la référence arrière. \\11, par exemple, sera confus pour la fonction preg_replace() dans le sens où elle ne saura pas si vous désirez la référence arrière \\1 suivi du nombre 1 ou si vous désirez la référence arrière \\11 suivi de "rien". Dans ce cas, la solution est d'utiliser la syntaxe \${1}1. Cela créera une référence arrière isolée $1, suivi du nombre littéral 1.

Lorsque vous utilisez l'option obsolète e, cette fonction échappe quelques caractères (', ", \ et NULL) dans la chaîne qui remplace les références arrières. Ce comportement se justifie afin d'assurer qu'aucune erreur de syntaxe ne survient lors de l'utilisation des références arrières avec des guillemets simples et doubles (e.g. 'strlen(\'$1\')+strlen("$2")'). Assurez-vous d'être familier avec la syntaxe des chaînes afin de savoir exactement à quoi la chaîne interprétée doit ressembler.

subject

La chaîne ou le tableau contenant des chaînes à chercher et à remplacer.

Si subject est un tableau, alors l'opération sera appliquée à chacun des éléments du tableau, et le tableau sera retourné.

limit

Le nombre maximal de remplacement pour chaque masque dans chaque chaîne subject. Par défaut, vaut -1 (aucune limite).

count

Si fournie, cette variable contiendra le nombre de remplacements effectués.

Valeurs de retour

preg_replace() retourne un tableau si le paramètre subject est un tableau, ou une chaîne sinon.

Si des correspondances sont trouvées, le nouveau subject sera retourné, sinon subject sera retourné à l'identique, ou NULL si une erreur survient.

Erreurs / Exceptions

Depuis PHP 5.5.0, une alerte de niveau E_DEPRECATED est émise lorsque vous utilisez l'option "\e". Depuis PHP 7.0.0, une alerte de niveau E_WARNING est émise dans ce cas, et l'option "\e" n'a aucun effet.

Historique

Version | Description
7.0.0 | Le support de l'option /e n'a aucun effet. Utilisez la fonction preg_replace_callback() à la place.
5.5.0 | Le modificateur /e est obsolète. Utilisez la fonction preg_replace_callback() à la place. Voir la documentation sur PREG_REPLACE_EVAL pour plus d'informations quant aux risques de sécurité.
5.1.0 | Ajout du paramètre count

Exemples

Exemple #1 Utilisation des références arrières avec des littéraux numériques

<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>

L'exemple ci-dessus va afficher :

April1,2003

Exemple #2 Utilisation de tableaux indexé avec preg_replace()

<?php
$string = 'Le renard marron agile saute par dessus le chien paresseux.';
$patterns = array();
$patterns[0] = '/agile/';
$patterns[1] = '/marron/';
$patterns[2] = '/renard/';
$replacements = array();
$replacements[2] = 'grizzly';
$replacements[1] = 'brun';
$replacements[0] = 'lent';
echo preg_replace($patterns, $replacements, $string);
?>

L'exemple ci-dessus va afficher :

Le lent brun grizzly saute par dessus le chien paresseux.

En triant les masques et les remplacements, vous devriez obtenir le résultat escompté.

<?php
ksort($patterns);
ksort($replacements);
echo preg_replace($patterns, $replacements, $string);
?>

L'exemple ci-dessus va afficher :

Le grizzly brun lent saute par dessus le chien paresseux.

Exemple #3 Remplacement de plusieurs valeurs simultanément

<?php
$patterns = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/',
                   '/^\s*{(\w+)}\s*=/');
$replace = array ('\3/\4/\1\2', '$\1 =');
echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27');
?>

L'exemple ci-dessus va afficher :

$startDate = 5/27/1999

Exemple #4 Suppression des espaces

Cet exemple supprime les espaces en trop dans une chaîne.

<?php
$str = 'foo   o';
$str = preg_replace('/\s\s+/', ' ', $str);
// Affichera 'foo o'
echo $str;
?>

Exemple #5 Utilisation du paramètre count

<?php
$count = 0;

echo preg_replace(array('/\d/', '/\s/'), '*', 'xp 4 to', -1 , $count);
echo $count; //3
?>

L'exemple ci-dessus va afficher :

xp***to
3

Notes

Note:

Lorsque vous utilisez des tableaux avec les paramètres pattern et replacement, les clés sont traitées dans l'ordre dans lequel elles apparaissent dans le tableau. Ce n'est pas forcément la même chose que l'ordre des index numériques. Si vous utilisez des index pour identifier quel pattern doit être replacé par quel replacement, il est recommandé de faire un tri ksort() sur chaque tableau avant de faire appel à preg_replace().

Voir aussi

  • Les Patterns PCRE
  • preg_quote() - Protection des caractères spéciaux des expressions rationnelles
  • preg_filter() - Recherche et remplace avec une expression rationnelle
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • preg_replace_callback() - Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback
  • preg_split() - Éclate une chaîne par expression rationnelle
  • preg_last_error() - Retourne le code erreur de la dernière expression PCRE exécutée


Éclate une chaîne par expression rationnelle

  • « preg_replace
  • Regex POSIX »
  • PHP Manual
  • Fonctions PCRE
  • Éclate une chaîne par expression rationnelle

preg_split

(PHP 4, PHP 5, PHP 7)

preg_split — Éclate une chaîne par expression rationnelle

Description

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

Éclate une chaîne par expression rationnelle.

Liste de paramètres

pattern

Le masque à chercher, sous la forme d'une chaîne de caractères.

subject

La chaîne d'entrée.

limit

Si limit est spécifié, alors seules les limit premières sous-chaînes sont retournées avec le reste de la chaîne placé dans la dernière sous-chaîne. Si vous définissez le paramètre limit à -1, 0, ou NULL, cela signifie "aucune limite" et, vous pouvez utiliser la valeur NULL pour ignorer le paramètre flags.

flags

flags peut être la combinaison des options suivantes (combinées avec l'opérateur |):

PREG_SPLIT_NO_EMPTY
Si cette option est activée, seules les sous-chaînes non vides seront retournées par preg_split().
PREG_SPLIT_DELIM_CAPTURE
Si cette option est activée, les expressions entre parenthèses entre les délimiteurs de masques seront aussi capturées et retournées.
PREG_SPLIT_OFFSET_CAPTURE

Si cette option est activée, pour chaque résultat, la position de celui-ci sera retournée. Notez que cela change la valeur retournée en un tableau où chaque élément est un tableau constitué de la chaîne trouvée à la position 0 et la position de la chaîne dans subject à la position 1.

Valeurs de retour

Retourne un tableau contenant les sous-chaînes de subject, séparées par les chaînes qui vérifient pattern.

Exemples

Exemple #1 Exemple avec preg_split() : Éclatement d'une chaîne de recherche

<?php
// scinde la phrase grâce aux virgules et espacements
// ce qui inclus les " ", \r, \t, \n et \f
$keywords = preg_split("/[\s,]+/", "langage hypertexte, programmation");
print_r($keywords);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => langage
    [1] => hypertexte
    [2] => programmation
)

Exemple #2 Scinder une chaîne en caractères

<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => s
    [1] => t
    [2] => r
    [3] => i
    [4] => n
    [5] => g
)

Exemple #3 Scinde une chaîne et capture les positions

<?php
$str = 'langage hypertexte, programmation';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => langage
            [1] => 0
        )

    [1] => Array
        (
            [0] => hypertexte,
            [1] => 8
        )

    [2] => Array
        (
            [0] => programmation
            [1] => 20
        )

)

Notes

Astuce

Si vous n'avez pas besoin de la puissance des expressions régulières, vous pouvez choisir des alternatives plus rapides (quoique plus simples) comme explode() ou str_split().

Astuce

Si la recherche d'une correspondance échoue, un tableau contenant qu'un seul élément contenant la chaîne d'entrée sera retourné.

Voir aussi

  • Les Patterns PCRE
  • preg_quote() - Protection des caractères spéciaux des expressions rationnelles
  • implode() - Rassemble les éléments d'un tableau en une chaîne
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • preg_match_all() - Expression rationnelle globale
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard
  • preg_last_error() - Retourne le code erreur de la dernière expression PCRE exécutée


Expressions rationnelles

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions POSIX Regex
    • ereg_replace — >Remplacement par expression rationnelle
    • ereg — Recherche par expression rationnelle standard
    • eregi_replace — Remplacement par expression rationnelle insensible à la casse
    • eregi — Recherche par expression rationnelle insensible à la casse
    • split — Scinde une chaîne en un tableau, grâce à une expression rationnelle
    • spliti — Scinde une chaîne en un tableau, grâce à une expression rationnelle
    • sql_regcase — Prépare une expression rationnelle pour effectuer une recherche insensible à la casse


Introduction

Astuce

PHP supporte aussi des expressions rationnelles compatibles Perl, avec l'extension PCRE functions. Ces fonctions supportent des recherches non-gourmandes, des assertions, des sous-masques conditionnels et toute une gamme de fonctionnalités absentes des expressions rationnelles POSIX.

Avertissement

Ces expressions rationnelles ne sont pas compatibles avec les données binaires. Les expressions PCRE le sont.

Note:

Depuis PHP 5.3.0, cette extension est obsolète ; l'appel à n'importe quelle fonction de cette extension émettra une alerte de type E_DEPRECATED.

Les expressions rationnelles sont utilisées pour de complexes manipulations sur les chaînes de caractères. PHP utilise les expressions rationnelles avancées de POSIX (POSIX 1003.2). Pour avoir tous les détails sur ces expressions, reportez-vous aux » pages de manuel incluses dans le répertoire de la distribution PHP. Elles sont au format manpage : pour les lire, vous devrez utiliser la ligne de commande man /usr/local/src/regex/regex.7.


Installation

Avertissement

Ne changez pas la valeur de TYPE à moins que vous ne sachiez ce que vous faites.

Pour activer le support des expressions rationnelles en PHP vous devez compiler PHP avec l'option --with-regex[=TYPE] . TYPE peut prendre l'une des valeurs suivantes : "system", "apache", "php". La valeur par défaut est "php".

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • Regex POSIX
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Exemples

Exemple #1 Exemples d'expressions rationnelles

<?php
/* Retourne true si "abc"
   est trouvé quelque part dans la chaîne $string. */
ereg("abc", $string);

/* Retourne true si  "abc"
   est trouvé au début de la chaîne $string. */
ereg("^abc", $string);

/* Retourne true si  "abc"
   est trouvé à la fin de la chaîne  $string. */
ereg("abc$", $string);

/* Retourne true si  le client
   est Netscape 2, 3 ou MSIE 3. */
eregi("(ozilla.[23]|MSIE.3)", $_SERVER["HTTP_USER_AGENT"]);

/* Recherche trois mots séparés par des espaces
   dans les chaînes $regs[1], $regs[2] et $regs[3]. */
ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string, $regs);

/* Insère une balise <br /> au début de la chaîne $string. */
$string = ereg_replace("^", "<br />", $string);

/* Insère une balise <br /> à la fin de la chaîne $string. */
$string = ereg_replace("$", "<br />", $string);

/* Supprime toutes les nouvelles lignes de $string. */
$string = ereg_replace("\n", "", $string);
?>


Fonctions POSIX Regex

Voir aussi

Pour des expressions rationnelles compatibles Perl, voyez l'extension PCRE. Les commandes de recherche plus simples (avec support des caractères jokers) sont fournies par la fonction fnmatch().

Sommaire

  • ereg_replace — >Remplacement par expression rationnelle
  • ereg — Recherche par expression rationnelle standard
  • eregi_replace — Remplacement par expression rationnelle insensible à la casse
  • eregi — Recherche par expression rationnelle insensible à la casse
  • split — Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • spliti — Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • sql_regcase — Prépare une expression rationnelle pour effectuer une recherche insensible à la casse


>Remplacement par expression rationnelle

  • « Fonctions POSIX Regex
  • ereg »
  • PHP Manual
  • Fonctions POSIX Regex
  • >Remplacement par expression rationnelle

ereg_replace

(PHP 4, PHP 5)

ereg_replace — >Remplacement par expression rationnelle

Avertissement

Cette fonction est devenue OBSOLÈTE en PHP 5.3.0, et a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • preg_replace()

Description

string ereg_replace ( string $pattern , string $replacement , string $string )

Cette fonction effectue une recherche par expression rationnelle dans la chaîne string en recherchant les occurrences de pattern, puis les remplace par la chaîne replacement.

Liste de paramètres

pattern

Une expression rationnelle POSIX.

replacement

Si pattern contient des parenthèses capturantes, replacement pourra contenir des séquences de la forme \digit, qui seront remplacées par le texte capturé par la parenthèse capturante numéro digit. \0 correspond à la chaîne originale complète. De 0 à 9 parenthèses capturantes peuvent être utilisées. Les parenthèses peuvent être imbriquées, et leur numéro d'ordre est défini par leurs parenthèses ouvrantes.

string

La chaîne d'entrée.

Valeurs de retour

La chaîne modifiée est retournée. (Ce qui signifie que la chaîne originale sera retournée si aucune occurrence n'est trouvée.)

Exemples

Par exemple, le code suivant affiche "Ceci est un test" trois fois :

Exemple #1 Exemple avec ereg_replace()

<?php

$string = "This is a test";
echo str_replace(" is", " was", $string);
echo ereg_replace("( )is", "\\1was", $string);
echo ereg_replace("(( )is)", "\\2was", $string);

?>

Il est à noter que si vous utilisez une valeur entière avec replacement, vous n'obtiendrez pas le résultat escompté, car ereg_replace() interprétera le nombre comme la valeur ordinale d'un caractère et l'appliquera. Par exemple :

Exemple #2 Exemple avec ereg_replace()

<?php
/* Ceci ne fonctionne pas comme attendu */
$num = 4;
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string;   /* Affiche : 'This string has   words.' */

/* Ceci fonctionne comme attendu */
$num = '4';
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string;   /* Affiche : 'This string has 4 words.' */
?>

Exemple #3 Remplacer les URL par des liens cliquables

<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     '<a href="\\0\">\\0</a>', $text);
?>

Voir aussi

  • ereg() - Recherche par expression rationnelle standard
  • eregi() - Recherche par expression rationnelle insensible à la casse
  • eregi_replace() - Remplacement par expression rationnelle insensible à la casse
  • str_replace() - Remplace toutes les occurrences dans une chaîne
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard
  • quotemeta() - Protège les métacaractères


Recherche par expression rationnelle standard

  • « ereg_replace
  • eregi_replace »
  • PHP Manual
  • Fonctions POSIX Regex
  • Recherche par expression rationnelle standard

ereg

(PHP 4, PHP 5)

ereg — Recherche par expression rationnelle standard

Avertissement

Cette fonction est devenue OBSOLÈTE en PHP 5.3.0, et a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • preg_match()

Description

int ereg ( string $pattern , string $string [, array &$regs ] )

Recherche dans la chaîne string les séquences de caractères qui correspondent au masque pattern, en tenant compte de la casse.

Liste de paramètres

pattern

Expression rationnelle sensible à la casse.

string

La chaîne d'entrée.

regs

Si au moins une séquence est trouvée (éventuellement dans les parenthèses capturantes de pattern), et que la fonction est appelée avec un troisième argument regs, les résultats seront enregistrés dans regs.

$regs[1] contiendra la première parenthèse capturante (celle qui commence le plus tôt), $regs[2] contiendra la deuxième parenthèse capturante (celle qui commence après la première), et ainsi de suite. $regs[0] contient une copie de la chaîne.

Valeurs de retour

Retourne la longueur de l'occurrence trouvée si une occurrence a été trouvée dans la chaîne string et FALSE dans le cas contraire ou si une erreur est survenue.

Si le paramètre optionnel regs n'est pas passé à la fonction ou si la longueur du paramètre string vaut 0, la fonction retournera 1.

Historique

Version | Description
4.1.0 | Pour les versions de PHP inférieures ou égales à 4.1.0, $regs sera rempli d'exactement dix éléments, même s'il y a plus ou moins de dix parenthèses capturantes. Cela n'a aucun effet sur ereg() pour chercher plus de sous-chaînes. Si aucun résultat n'est trouvé, $regs ne sera pas altéré par ereg().

Exemples

Exemple #1 Exemple avec ereg()

L'exemple suivant prend une date au format ISO (YYYY-MM-DD) et l'affiche sous la forme DD.MM.YYYY :

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
    echo "$regs[3].$regs[2].$regs[1]";
} else {
    echo "Format de date invalide : $date";
}
?>

Voir aussi

  • eregi() - Recherche par expression rationnelle insensible à la casse
  • ereg_replace() - >Remplacement par expression rationnelle
  • eregi_replace() - Remplacement par expression rationnelle insensible à la casse
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • strpos() - Cherche la position de la première occurrence dans une chaîne
  • strstr() - Trouve la première occurrence dans une chaîne
  • quotemeta() - Protège les métacaractères


Remplacement par expression rationnelle insensible à la casse

  • « ereg
  • eregi »
  • PHP Manual
  • Fonctions POSIX Regex
  • Remplacement par expression rationnelle insensible à la casse

eregi_replace

(PHP 4, PHP 5)

eregi_replace — Remplacement par expression rationnelle insensible à la casse

Avertissement

Cette fonction est devenue OBSOLÈTE en PHP 5.3.0, et a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • preg_replace() (avec le modificateur i (PCRE_CASELESS))

Description

string eregi_replace ( string $pattern , string $replacement , string $string )

Cette fonction est identique à ereg_replace(), hormis le fait qu'elle ne tient pas compte de la casse des caractères alphabétiques.

Liste de paramètres

pattern

Une expression rationnelle POSIX.

replacement

Si pattern contient des sous-masques mis entre parenthèses, replacement contiendra des sous-chaînes, sous la forme \digit, qui seront remplacées par le texte correspondant au sous-masque mis entre parenthèses ; \0 correspondra au contenu complet de la chaîne. Il est possible d'utiliser jusqu'à 9 sous-chaînes. Les parenthèses peuvent être imbriquées et seront comptées à partir de la parenthèse ouvrante.

string

La chaîne d'entrée.

Valeurs de retour

La chaîne modifiée est retournée. Si aucune correspondance n'est trouvée dans string, alors elle sera retournée sans aucune modification.

Exemples

Exemple #1 Mise en évidence des résultats de la recherche

<?php
$pattern = '(>[^<]*)('. quotemeta($_GET['search']) .')';
$replacement = '\\1<span class="search">\\2</span>';
$body = eregi_replace($pattern, $replacement, $body);
?>

Voir aussi

  • ereg() - Recherche par expression rationnelle standard
  • eregi() - Recherche par expression rationnelle insensible à la casse
  • ereg_replace() - >Remplacement par expression rationnelle
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard
  • quotemeta() - Protège les métacaractères


Recherche par expression rationnelle insensible à la casse

  • « eregi_replace
  • split »
  • PHP Manual
  • Fonctions POSIX Regex
  • Recherche par expression rationnelle insensible à la casse

eregi

(PHP 4, PHP 5)

eregi — Recherche par expression rationnelle insensible à la casse

Avertissement

Cette fonction est devenue OBSOLÈTE en PHP 5.3.0, et a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • preg_match() (avec le modificateur i (PCRE_CASELESS))

Description

int eregi ( string $pattern , string $string [, array &$regs ] )

Cette fonction est identique à ereg(), hormis le fait qu'elle ignore la casse des caractères lors de la recherche sur les caractères alphabétiques.

Liste de paramètres

pattern

Expression rationnelle insensible à la casse.

string

La chaîne d'entrée.

regs

Si des correspondances sont trouvées pour les sous-masques entre parenthèses de pattern et que la fonction est appelé avec le troisième argument regs, les correspondances seront stockées dans des éléments du tableau regs.

$regs[1] contiendra la sous-chaîne qui commence à la première parenthèse la plus à gauche ; $regs[2], la seconde, et ainsi de suite. $regs[0] contiendra une copie complète de la chaîne matchée.

Valeurs de retour

Retourne la longueur de la chaîne trouvée si une correspondance pour le masque pattern a été trouvée dans string, ou FALSE si aucune correspondance n'a été trouvée ou si une erreur est survenue.

Si le paramètre optionnel regs n'est pas fourni ou si la longueur de la chaîne trouvée vaut 0, cette fonction retourne 1.

Exemples

Exemple #1 Exemple avec eregi()

<?php
$string = 'XYZ';
if (eregi('z', $string)) {
    echo "'$string' contient un 'z' ou un 'Z'!";
}
?>

Voir aussi

  • ereg() - Recherche par expression rationnelle standard
  • ereg_replace() - >Remplacement par expression rationnelle
  • eregi_replace() - Remplacement par expression rationnelle insensible à la casse
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • stripos() - Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse
  • stristr() - Version insensible à la casse de strstr
  • quotemeta() - Protège les métacaractères


Scinde une chaîne en un tableau, grâce à une expression rationnelle

  • « eregi
  • spliti »
  • PHP Manual
  • Fonctions POSIX Regex
  • Scinde une chaîne en un tableau, grâce à une expression rationnelle

split

(PHP 4, PHP 5)

split — Scinde une chaîne en un tableau, grâce à une expression rationnelle

Avertissement

Cette fonction est devenue OBSOLÈTE en PHP 5.3.0, et a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • preg_split()
  • explode()
  • str_split()

Description

array split ( string $pattern , string $string [, int $limit = -1 ] )

Scinde la chaîne string dans un tableau grâce à une expression rationnelle.

Liste de paramètres

pattern

Expression rationnelle sensible à la casse.

Si vous voulez utiliser n'importe quel caractère spécial des expressions rationnelles, vous devez les échapper. Si vous pensez que split() (ou toute autre expression rationnelle) se comporte bizarrement, lisez d'abord le fichier regex.7, inclus dans le dossier regex/ de la distribution PHP . Il est au format manpage, et vous pourrez le lire avec une commande telle que man /usr/local/src/regex/regex.7.

string

La chaîne d'entrée.

limit

Si limit est défini, le tableau retourné contiendra un maximum de limit éléments avec le dernier élément contenant le reste de la chaîne string.

Valeurs de retour

Retourne un tableau de chaînes : chacune d'entre elle est une sous-chaîne de string délimitée par les occurrences trouvées de l'expression rationnelle pattern.

S'il y a n occurrences de pattern, le tableau retourné contiendra n+1 éléments. Par exemple, s'il n'y a aucune occurrence de pattern, un tableau d'un seul élément sera retourné. Bien sûr, cela reste vrai si string est une chaîne vide. Si une erreur survient, split() retournera FALSE.

Exemples

Exemple #1 Exemple avec split()

Pour scinder les 4 premiers champs d'une ligne du fichier /etc/passwd :

<?php
list($user, $pass, $uid, $gid, $extra) =
    split(":", $passwd_line, 5);
?>

Exemple #2 Exemple avec split()

Pour analyser une date qui est délimitée par des /, des points ou des tirets :

<?php
// Les délimiteurs peuvent être des tirets, points ou slash
$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo "Mois : $month; Jour : $day; Année : $year<br />\n";
?>

Notes

Astuce

split() est obsolète depuis PHP 5.3.0. Utilisez plutôt la fonction preg_split(). Si vous n'avez pas besoin de la puissance des expressions rationnelles, il est plus rapide d'utiliser explode(), qui n'utilise pas le moteur d'expressions rationnelles.

Astuce

Pour les utilisateurs qui recherchent le moyen d'émuler
la commande Perl @chars = split('', $str),
voyez la fonction preg_split() ou
la fonction str_split().

Voir aussi

  • preg_split() - Éclate une chaîne par expression rationnelle
  • spliti() - Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • str_split() - Convertit une chaîne de caractères en tableau
  • explode() - Coupe une chaîne en segments
  • implode() - Rassemble les éléments d'un tableau en une chaîne
  • chunk_split() - Scinde une chaîne
  • wordwrap() - Effectue la césure d'une chaîne


Scinde une chaîne en un tableau, grâce à une expression rationnelle

  • « split
  • sql_regcase »
  • PHP Manual
  • Fonctions POSIX Regex
  • Scinde une chaîne en un tableau, grâce à une expression rationnelle

spliti

(PHP 4 >= 4.0.1, PHP 5)

spliti — Scinde une chaîne en un tableau, grâce à une expression rationnelle

Avertissement

Cette fonction est devenue OBSOLÈTE en PHP 5.3.0, et a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • preg_split() (avec le modificateur i (PCRE_CASELESS))

Description

array spliti ( string $pattern , string $string [, int $limit = -1 ] )

Scinde la chaîne string dans un tableau, par expression rationnelle.

Cette fonction est identique à split(), hormis le fait qu'elle ignore la casse pour les caractères alphabétiques.

Liste de paramètres

pattern

Expression rationnelle insensible à la casse.

Si vous voulez effectuer la césure avec un caractère qui est considéré comme spécial par les expressions rationnelles, vous devez d'abord l'échapper. Si vous pensez que la fonction spliti() (ou tout autre fonction regex) fait quelque chose de bizarre, lisez le fichier regex.7, inclus dans le sous-dossier regex/ de la distribution PHP. Ce fichier est au format man, vous devrez donc utiliser la commande man /usr/local/src/regex/regex.7 pour le lire.

string

La chaîne d'entrée.

limit

Si limit est défini, le tableau retourné contiendra un maximum de limit éléments, dont le dernier élément contient le reste de la chaîne string.

Valeurs de retour

Retourne un tableau de chaînes, dont chaque élément est une sous-chaîne de string, formée par la césure réalisée grâce l'expression rationnelle pattern.

S'il y a n occurrences de pattern, le tableau retourné contiendra n+1 éléments. Par exemple, s'il n'y a pas d'occurrence de pattern, un tableau avec un seul élément sera retourné. Évidemment, ceci est également vrai si la chaîne string est vide. Si une erreur survient, spliti() retourne FALSE.

Exemples

Scinder une chaîne en utilisant la lettre 'a' comme séparateur :

Exemple #1 Exemple avec spliti()

<?php
$string = "aBBBaCCCADDDaEEEaGGGA";
$chunks = spliti ("a", $string, 5);
print_r($chunks);
?>

L'exemple ci-dessus va afficher :

Array
(
  [0] =>
  [1] => BBB
  [2] => CCC
  [3] => DDD
  [4] => EEEaGGGA
)

Voir aussi

  • preg_split() - Éclate une chaîne par expression rationnelle
  • split() - Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • explode() - Coupe une chaîne en segments
  • implode() - Rassemble les éléments d'un tableau en une chaîne


Prépare une expression rationnelle pour effectuer une recherche insensible à la casse

  • « spliti
  • ssdeep »
  • PHP Manual
  • Fonctions POSIX Regex
  • Prépare une expression rationnelle pour effectuer une recherche insensible à la casse

sql_regcase

(PHP 4, PHP 5)

sql_regcase — Prépare une expression rationnelle pour effectuer une recherche insensible à la casse

Avertissement

Cette fonction est devenue OBSOLÈTE en PHP 5.3.0, et a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • preg_match()
  • preg_quote()

Description

string sql_regcase ( string $string )

Prépare une expression rationnelle pour une recherche insensible à la casse.

Liste de paramètres

string

La chaîne d'entrée.

Valeurs de retour

sql_regcase() retourne une expression rationnelle valide qui acceptera la chaîne string, et toutes les variantes majuscule/minuscule possibles de cette chaîne. Cette expression sera construite à partir de la chaîne string en remplaçant tous les caractères par des expressions entre crochets (des classes de caractères), contenant la lettre majuscule et minuscule. Les autres caractères ne sont pas modifiés.

Exemples

Exemple #1 Exemple avec sql_regcase()

<?php
echo sql_regcase("Foo - bar.");
?>

L'exemple ci-dessus va afficher :

[Ff][Oo][Oo] - [Bb][Aa][Rr].

Cette expression sert à effectuer des recherches insensibles à la casse avec d'autres logiciels, qui n'acceptent que les recherches sensibles à la casse.


Hachages flous ssdeep

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions ssdeep
    • ssdeep_fuzzy_compare — Calcule le score de correspondance entre 2 signatures de hachages flous
    • ssdeep_fuzzy_hash_filename — Crée un hachage flou d'un fichier
    • ssdeep_fuzzy_hash — Crée un hachage flou depuis une chaîne de caractères


Introduction

ssdeep est un utilitaire pour créer et comparer les hachages flous appelés encore » contexte déclenché par morceaux de hachages.

Le hachage flou peut faire correspondre des signatures qui ont "...des séquences d'octets identiques, dans le même ordre, malgré le fait que les octets entre les séquences peuvent être différents aussi bien au niveau du contenu que de leurs longueurs". (» page du projet ssdeep)

Cette extension fournit les fonctions pour créer et comparer des hachages flous.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Cette extension nécessite la bibliothèque » ssdeep.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ssdeep.


  • « Types de ressources
  • Fonctions ssdeep »
  • PHP Manual
  • ssdeep
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions ssdeep

Sommaire

  • ssdeep_fuzzy_compare — Calcule le score de correspondance entre 2 signatures de hachages flous
  • ssdeep_fuzzy_hash_filename — Crée un hachage flou d'un fichier
  • ssdeep_fuzzy_hash — Crée un hachage flou depuis une chaîne de caractères


Calcule le score de correspondance entre 2 signatures de hachages flous

  • « Fonctions ssdeep
  • ssdeep_fuzzy_hash_filename »
  • PHP Manual
  • Fonctions ssdeep
  • Calcule le score de correspondance entre 2 signatures de hachages flous

ssdeep_fuzzy_compare

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_compare — Calcule le score de correspondance entre 2 signatures de hachages flous

Description

int ssdeep_fuzzy_compare ( string $signature1 , string $signature2 )

Calcule le score de correspondance entre la signature1 et la signature2 en utilisant le » contexte déclenché par morceaux de hachages, et retourne le score de correspondance.

Liste de paramètres

signature1

La chaîne représentant la première signature de hachage flou.

signature2

La chaîne représentant la seconde signature de hachage flou.

Valeurs de retour

Retourne un entier entre 0 et 100 en cas de succès, ou FALSE si une erreur survient.


Crée un hachage flou d'un fichier

  • « ssdeep_fuzzy_compare
  • ssdeep_fuzzy_hash »
  • PHP Manual
  • Fonctions ssdeep
  • Crée un hachage flou d'un fichier

ssdeep_fuzzy_hash_filename

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_hash_filename — Crée un hachage flou d'un fichier

Description

string ssdeep_fuzzy_hash_filename ( string $file_name )

ssdeep_fuzzy_hash_filename() calcule le hachage d'un fichier spécifié par le paramètre file_name en utilisant le » contexte déclenché par morceaux de hachages, et retourne le hachage correspondant.

Liste de paramètres

file_name

Le nom du fichier à hacher.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, ou bien FALSE si une erreur survient.


Crée un hachage flou depuis une chaîne de caractères

  • « ssdeep_fuzzy_hash_filename
  • Chaîne de caractères »
  • PHP Manual
  • Fonctions ssdeep
  • Crée un hachage flou depuis une chaîne de caractères

ssdeep_fuzzy_hash

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_hash — Crée un hachage flou depuis une chaîne de caractères

Description

string ssdeep_fuzzy_hash ( string $to_hash )

ssdeep_fuzzy_hash() calcule le hachage de la chaîne to_hash en utilisant le » contexte déclenché par morceaux de hachages, et retourne le hachage correspondant.

Liste de paramètres

to_hash

La chaîne de caractères à hacher.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, FALSE sinon.


Chaîne de caractères

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions sur les chaînes de caractères
    • addcslashes — Ajoute des slash dans une chaîne, à la mode du langage C
    • addslashes — Ajoute des antislashs dans une chaîne
    • bin2hex — Convertit des données binaires en représentation hexadécimale
    • chop — Alias de rtrim
    • chr — Retourne un caractère à partir de son code ASCII
    • chunk_split — Scinde une chaîne
    • convert_cyr_string — Convertit une chaîne d'un jeu de caractères cyrillique à l'autre
    • convert_uudecode — Décode une chaîne au format uuencode
    • convert_uuencode — Encode une chaîne de caractères en utilisant l'algorithme uuencode
    • count_chars — Retourne des statistiques sur les caractères utilisés dans une chaîne
    • crc32 — Calcule la somme de contrôle CRC32
    • crypt — Hachage à sens unique (indéchiffrable)
    • echo — Affiche une chaîne de caractères
    • explode — Coupe une chaîne en segments
    • fprintf — Écrit une chaîne formatée dans un flux
    • get_html_translation_table — Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities
    • hebrev — Convertit un texte logique hébreux en texte visuel
    • hebrevc — Convertit un texte logique hébreux en texte visuel, avec retours à la ligne
    • hex2bin — Convertit une chaîne binaire encodée en hexadécimal
    • html_entity_decode — Convertit toutes les entités HTML en caractères normaux
    • htmlentities — Convertit tous les caractères éligibles en entités HTML
    • htmlspecialchars_decode — Convertit les entités HTML spéciales en caractères
    • htmlspecialchars — Convertit les caractères spéciaux en entités HTML
    • implode — Rassemble les éléments d'un tableau en une chaîne
    • join — Alias de implode
    • lcfirst — Met le premier caractère en minuscule
    • levenshtein — Calcule la distance Levenshtein entre deux chaînes
    • localeconv — Lit la configuration locale
    • ltrim — Supprime les espaces (ou d'autres caractères) de début de chaîne
    • md5_file — Calcule le md5 d'un fichier
    • md5 — Calcule le md5 d'une chaîne
    • metaphone — Calcule la clé metaphone
    • money_format — Met un nombre au format monétaire
    • nl_langinfo — Rassemble des informations sur la langue et la configuration locale
    • nl2br — Insère un retour à la ligne HTML à chaque nouvelle ligne
    • number_format — Formate un nombre pour l'affichage
    • ord — Retourne le code ASCII d'un caractère
    • parse_str — Analyse une requête HTTP
    • print — Affiche une chaîne de caractères
    • printf — Affiche une chaîne de caractères formatée
    • quoted_printable_decode — Convertit une chaîne quoted-printable en chaîne 8 bits
    • quoted_printable_encode — Convertit une chaîne 8 bits en une chaîne quoted-printable
    • quotemeta — Protège les métacaractères
    • rtrim — Supprime les espaces (ou d'autres caractères) de fin de chaîne
    • setlocale — Modifie les informations de localisation
    • sha1_file — Calcule le sha1 d'un fichier
    • sha1 — Calcule le sha1 d'une chaîne de caractères
    • similar_text — Calcule la similarité de deux chaînes
    • soundex — Calcule la clé soundex
    • sprintf — Retourne une chaîne formatée
    • sscanf — Analyse une chaîne à l'aide d'un format
    • str_getcsv — Analyse une chaîne de caractères CSV dans un tableau
    • str_ireplace — Version insensible à la casse de str_replace
    • str_pad — Complète une chaîne jusqu'à une taille donnée
    • str_repeat — Répète une chaîne
    • str_replace — Remplace toutes les occurrences dans une chaîne
    • str_rot13 — Effectue une transformation ROT13
    • str_shuffle — Mélange les caractères d'une chaîne de caractères
    • str_split — Convertit une chaîne de caractères en tableau
    • str_word_count — Compte le nombre de mots utilisés dans une chaîne
    • strcasecmp — Comparaison insensible à la casse de chaînes binaires
    • strchr — Alias de strstr
    • strcmp — Comparaison binaire de chaînes
    • strcoll — Comparaison de chaînes localisées
    • strcspn — Trouve un segment de chaîne ne contenant pas certains caractères
    • strip_tags — Supprime les balises HTML et PHP d'une chaîne
    • stripcslashes — Décode une chaîne encodée avec addcslashes
    • stripos — Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse
    • stripslashes — Supprime les antislashs d'une chaîne
    • stristr — Version insensible à la casse de strstr
    • strlen — Calcule la taille d'une chaîne
    • strnatcasecmp — Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)
    • strnatcmp — Comparaison de chaînes avec l'algorithme d'"ordre naturel"
    • strncasecmp — Compare en binaire des chaînes de caractères
    • strncmp — Comparaison binaire des n premiers caractères
    • strpbrk — Recherche un ensemble de caractères dans une chaîne de caractères
    • strpos — Cherche la position de la première occurrence dans une chaîne
    • strrchr — Trouve la dernière occurrence d'un caractère dans une chaîne
    • strrev — Inverse une chaîne
    • strripos — Cherche la position de la dernière occurrence d'une chaîne contenue dans une autre, de façon insensible à la casse
    • strrpos — Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne
    • strspn — Trouve la longueur du segment initial d'une chaîne contenant tous les caractères d'un masque donné
    • strstr — Trouve la première occurrence dans une chaîne
    • strtok — Coupe une chaîne en segments
    • strtolower — Renvoie une chaîne en minuscules
    • strtoupper — Renvoie une chaîne en majuscules
    • strtr — Remplace des caractères dans une chaîne
    • substr_compare — Compare deux chaînes depuis un offset jusqu'à une longueur en caractères
    • substr_count — Compte le nombre d'occurrences de segments dans une chaîne
    • substr_replace — Remplace un segment dans une chaîne
    • substr — Retourne un segment de chaîne
    • trim — Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
    • ucfirst — Met le premier caractère en majuscule
    • ucwords — Met en majuscule la première lettre de tous les mots
    • vfprintf — Écrit une chaîne formatée dans un flux
    • vprintf — Affiche une chaîne formatée
    • vsprintf — Retourne une chaîne formatée
    • wordwrap — Effectue la césure d'une chaîne
  • Historique des modifications


Introduction

Ces fonctions permettent de manipuler des chaînes de caractères de différentes façons. Certaines fonctionnalités plus spécialisées sont disponibles dans les sections d'expressions rationnelles et de gestion des URL.

Pour plus de détails sur le comportement des chaînes de caractères, notamment avec les guillemets simples et doubles, les séquences d'échappement, reportez-vous à la section Chaînes de caractères dans la section Types.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CRYPT_SALT_LENGTH integer
CRYPT_STD_DES integer
CRYPT_EXT_DES integer
CRYPT_MD5 integer
CRYPT_BLOWFISH integer
HTML_SPECIALCHARS (entier)
HTML_ENTITIES (entier)
ENT_COMPAT (entier)
ENT_QUOTES (entier)
ENT_NOQUOTES (entier)
ENT_IGNORE (entier)
ENT_SUBSTITUTE (entier)
ENT_DISALLOWED (entier)
ENT_HTML401 (entier)
ENT_XML1 (entier)
ENT_XHTML (entier)
ENT_HTML5 (entier)
CHAR_MAX (entier)
LC_CTYPE (entier)
LC_NUMERIC (entier)
LC_TIME (entier)
LC_COLLATE (entier)
LC_MONETARY (entier)
LC_ALL (entier)
LC_MESSAGES (entier)
STR_PAD_LEFT (entier)
STR_PAD_RIGHT (entier)
STR_PAD_BOTH (entier)


Fonctions sur les chaînes de caractères

Voir aussi

Pour des fonctions encore plus puissantes de gestion et manipulation des chaînes, reportez-vous aux expressions rationnelles POSIX et expressions rationnelles Perl.

Sommaire

  • addcslashes — Ajoute des slash dans une chaîne, à la mode du langage C
  • addslashes — Ajoute des antislashs dans une chaîne
  • bin2hex — Convertit des données binaires en représentation hexadécimale
  • chop — Alias de rtrim
  • chr — Retourne un caractère à partir de son code ASCII
  • chunk_split — Scinde une chaîne
  • convert_cyr_string — Convertit une chaîne d'un jeu de caractères cyrillique à l'autre
  • convert_uudecode — Décode une chaîne au format uuencode
  • convert_uuencode — Encode une chaîne de caractères en utilisant l'algorithme uuencode
  • count_chars — Retourne des statistiques sur les caractères utilisés dans une chaîne
  • crc32 — Calcule la somme de contrôle CRC32
  • crypt — Hachage à sens unique (indéchiffrable)
  • echo — Affiche une chaîne de caractères
  • explode — Coupe une chaîne en segments
  • fprintf — Écrit une chaîne formatée dans un flux
  • get_html_translation_table — Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities
  • hebrev — Convertit un texte logique hébreux en texte visuel
  • hebrevc — Convertit un texte logique hébreux en texte visuel, avec retours à la ligne
  • hex2bin — Convertit une chaîne binaire encodée en hexadécimal
  • html_entity_decode — Convertit toutes les entités HTML en caractères normaux
  • htmlentities — Convertit tous les caractères éligibles en entités HTML
  • htmlspecialchars_decode — Convertit les entités HTML spéciales en caractères
  • htmlspecialchars — Convertit les caractères spéciaux en entités HTML
  • implode — Rassemble les éléments d'un tableau en une chaîne
  • join — Alias de implode
  • lcfirst — Met le premier caractère en minuscule
  • levenshtein — Calcule la distance Levenshtein entre deux chaînes
  • localeconv — Lit la configuration locale
  • ltrim — Supprime les espaces (ou d'autres caractères) de début de chaîne
  • md5_file — Calcule le md5 d'un fichier
  • md5 — Calcule le md5 d'une chaîne
  • metaphone — Calcule la clé metaphone
  • money_format — Met un nombre au format monétaire
  • nl_langinfo — Rassemble des informations sur la langue et la configuration locale
  • nl2br — Insère un retour à la ligne HTML à chaque nouvelle ligne
  • number_format — Formate un nombre pour l'affichage
  • ord — Retourne le code ASCII d'un caractère
  • parse_str — Analyse une requête HTTP
  • print — Affiche une chaîne de caractères
  • printf — Affiche une chaîne de caractères formatée
  • quoted_printable_decode — Convertit une chaîne quoted-printable en chaîne 8 bits
  • quoted_printable_encode — Convertit une chaîne 8 bits en une chaîne quoted-printable
  • quotemeta — Protège les métacaractères
  • rtrim — Supprime les espaces (ou d'autres caractères) de fin de chaîne
  • setlocale — Modifie les informations de localisation
  • sha1_file — Calcule le sha1 d'un fichier
  • sha1 — Calcule le sha1 d'une chaîne de caractères
  • similar_text — Calcule la similarité de deux chaînes
  • soundex — Calcule la clé soundex
  • sprintf — Retourne une chaîne formatée
  • sscanf — Analyse une chaîne à l'aide d'un format
  • str_getcsv — Analyse une chaîne de caractères CSV dans un tableau
  • str_ireplace — Version insensible à la casse de str_replace
  • str_pad — Complète une chaîne jusqu'à une taille donnée
  • str_repeat — Répète une chaîne
  • str_replace — Remplace toutes les occurrences dans une chaîne
  • str_rot13 — Effectue une transformation ROT13
  • str_shuffle — Mélange les caractères d'une chaîne de caractères
  • str_split — Convertit une chaîne de caractères en tableau
  • str_word_count — Compte le nombre de mots utilisés dans une chaîne
  • strcasecmp — Comparaison insensible à la casse de chaînes binaires
  • strchr — Alias de strstr
  • strcmp — Comparaison binaire de chaînes
  • strcoll — Comparaison de chaînes localisées
  • strcspn — Trouve un segment de chaîne ne contenant pas certains caractères
  • strip_tags — Supprime les balises HTML et PHP d'une chaîne
  • stripcslashes — Décode une chaîne encodée avec addcslashes
  • stripos — Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse
  • stripslashes — Supprime les antislashs d'une chaîne
  • stristr — Version insensible à la casse de strstr
  • strlen — Calcule la taille d'une chaîne
  • strnatcasecmp — Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)
  • strnatcmp — Comparaison de chaînes avec l'algorithme d'"ordre naturel"
  • strncasecmp — Compare en binaire des chaînes de caractères
  • strncmp — Comparaison binaire des n premiers caractères
  • strpbrk — Recherche un ensemble de caractères dans une chaîne de caractères
  • strpos — Cherche la position de la première occurrence dans une chaîne
  • strrchr — Trouve la dernière occurrence d'un caractère dans une chaîne
  • strrev — Inverse une chaîne
  • strripos — Cherche la position de la dernière occurrence d'une chaîne contenue dans une autre, de façon insensible à la casse
  • strrpos — Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne
  • strspn — Trouve la longueur du segment initial d'une chaîne contenant tous les caractères d'un masque donné
  • strstr — Trouve la première occurrence dans une chaîne
  • strtok — Coupe une chaîne en segments
  • strtolower — Renvoie une chaîne en minuscules
  • strtoupper — Renvoie une chaîne en majuscules
  • strtr — Remplace des caractères dans une chaîne
  • substr_compare — Compare deux chaînes depuis un offset jusqu'à une longueur en caractères
  • substr_count — Compte le nombre d'occurrences de segments dans une chaîne
  • substr_replace — Remplace un segment dans une chaîne
  • substr — Retourne un segment de chaîne
  • trim — Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
  • ucfirst — Met le premier caractère en majuscule
  • ucwords — Met en majuscule la première lettre de tous les mots
  • vfprintf — Écrit une chaîne formatée dans un flux
  • vprintf — Affiche une chaîne formatée
  • vsprintf — Retourne une chaîne formatée
  • wordwrap — Effectue la césure d'une chaîne


Ajoute des slash dans une chaîne, à la mode du langage C

  • « Fonctions sur les chaînes de caractères
  • addslashes »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Ajoute des slash dans une chaîne, à la mode du langage C

addcslashes

(PHP 4, PHP 5, PHP 7)

addcslashes — Ajoute des slash dans une chaîne, à la mode du langage C

Description

string addcslashes ( string $str , string $charlist )

Retourne la chaîne str, après avoir ajouté des antislashs devant tous les caractères qui sont présents dans la liste charlist.

Liste de paramètres

str

La chaîne à échapper.

charlist

Une liste de caractères à échapper. Si charlist contient les caractères \n, \r etc., ils seront convertis à la mode du langage C, alors que les autres caractères non-alphanumériques ayant un code ASCII inférieur à 26, et supérieur à 126 sont remplacés par leur représentation octale.

Lorsque vous définissez une séquence de caractères dans le paramètre charlist, assurez-vous que vous connaissez bien tous les caractères qui viennent entre vos limites d'intervalles.

<?php
echo addcslashes('foo[ ]', 'A..z');
// Affiche :  \f\o\o\[ \]
// Toutes les majuscules et minuscules seront échappées
// ... mais aussi les caractères [\]^_`
?>
De plus, si le premier caractère d'un intervalle a un code ASCII plus grand que le second, l'intervalle ne sera pas créé. Seules les bornes de l'intervalle et le caractère point (.) seront échappés. Utilisez la fonction ord() pour trouver la valeur ASCII d'un caractère.
<?php
echo addcslashes("zoo['.']", 'z..A');
// Affiche :  \zoo['\.']
?>

Attention à l'utilisation des caractères tels que 0, a, b, f, n, r, t et v. Ils seront convertis en \0, \a, \b, \f, \n, \r, \t et \v, tous étant des séquences d'échappement en C. La plupart de ces séquences sont aussi définies dans d'autres langages dérivés du C, incluant PHP, ce qui signifie que vous n'obtiendrez pas le résultat attendu si vous utilisez la sortie de la fonction addcslashes() pour générer du code pour ces langages avec les caractères définis dans le paramètre charlist.

Valeurs de retour

Retourne la chaîne, échappée.

Historique

Version | Description
5.2.5 | Les séquences \v et \f ont été ajoutées.

Exemples

charlist peut s'écrire "\0..\37", ce qui identifie tous les caractères ASCII dont le code est entre 0 et 37.

Exemple #1 Exemple avec addcslashes()

<?php
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
?>

Voir aussi

  • stripcslashes() - Décode une chaîne encodée avec addcslashes
  • stripslashes() - Supprime les antislashs d'une chaîne
  • addslashes() - Ajoute des antislashs dans une chaîne
  • htmlspecialchars() - Convertit les caractères spéciaux en entités HTML
  • quotemeta() - Protège les métacaractères


Ajoute des antislashs dans une chaîne

  • « addcslashes
  • bin2hex »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Ajoute des antislashs dans une chaîne

addslashes

(PHP 4, PHP 5, PHP 7)

addslashes — Ajoute des antislashs dans une chaîne

Description

string addslashes ( string $str )

Retourne la chaîne str, après avoir échappé tous les caractères qui doivent l'être, pour être utilisée. Ces caractères sont les guillemets simples ('), guillemets doubles ("), antislash (\) et NULLE (le caractère NULL).

Un exemple d'utilisation d'addslashes() est lorsque vous entrez des données dans une chaîne de caractères à évaluer par PHP. Par exemple, pour insérer le nom O'Reilly dans la chaîne de caractères $str, vous aurez besoin de protéger $str. (i.e. eval("echo '".addslashes($str)."';"); )

Pour échapper les paramètres de base de données, vous devez utiliser les fonctions d'échappement spécifiques à votre base de données (i.e. mysqli_real_escape_string() pour MySQL ou pg_escape_literal(), pg_escape_string() pour PostgreSQL) et ce, pour des raisons de sécurité. Les DBMs ont des spécifications d'échappement différents pour les identifiants (i.e. Nom de table, nom de champ) et pour les paramètres. Quelques DBMS, comme PostgreSQL, fournissent des fonctions d'échapement pour les identifiants, pg_escape_identifier(), mais ce n'est pas le cas pour tous les DBMS. Si c'est le cas, référez-vous au manuel système de votre base de données pour utiliser les bonnes méthodes d'échappement.

Si votre DBMS n'a pas de fonction d'échappement, et qu'elle utilise le caractère \ pour échapper les caractères spéciaux, vous pouvez utiliser cette fonction, mais uniquement si elle est adéquate pour votre base de données. Veuillez garder à l'esprit qu'utiliser la fonction addslashes() pour échapper les paramètres de base de données peut être une faille de sécurité pour la plupart des bases de données.

La directive PHP magic_quotes_gpc est à on par défaut avant PHP 5.4, et elle appelle addslashes() sur toutes les données GET, POST et COOKIE. N'utilisez pas addslashes() sur des données déjà protégées avec magic_quotes_gpc sinon vous doublerez les protections. La fonction get_magic_quotes_gpc() est utile pour vérifier ce paramètre.

Liste de paramètres

str

La chaîne à échapper.

Valeurs de retour

Retourne la chaîne échappée.

Exemples

Exemple #1 Exemple avec addslashes()

<?php
$str = "Votre nom est-il O'reilly ?";

// Affiche : Votre nom est-il O\'reilly ?
echo addslashes($str);
?>

Voir aussi

  • stripcslashes() - Décode une chaîne encodée avec addcslashes
  • stripslashes() - Supprime les antislashs d'une chaîne
  • addcslashes() - Ajoute des slash dans une chaîne, à la mode du langage C
  • htmlspecialchars() - Convertit les caractères spéciaux en entités HTML
  • quotemeta() - Protège les métacaractères
  • get_magic_quotes_gpc() - Retourne la configuration actuelle de l'option magic_quotes_gpc


Convertit des données binaires en représentation hexadécimale

  • « addslashes
  • chop »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit des données binaires en représentation hexadécimale

bin2hex

(PHP 4, PHP 5, PHP 7)

bin2hex — Convertit des données binaires en représentation hexadécimale

Description

string bin2hex ( string $str )

Retourne la chaîne str dont tous les caractères sont représentés par leur équivalent hexadécimal. La chaîne retournée est une chaîne ASCII. La conversion supporte les caractères binaires, et utilise les bits de poids forts en premier.

Liste de paramètres

str

Une chaîne de caractères.

Valeurs de retour

Retourne la représentation hexadécimale de la chaîne fournie.

Voir aussi

  • hex2bin() - Convertit une chaîne binaire encodée en hexadécimal
  • pack() - Compacte des données dans une chaîne binaire


Alias de rtrim

  • « bin2hex
  • chr »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Alias de rtrim

chop

(PHP 4, PHP 5, PHP 7)

chop — Alias de rtrim()

Description

Cette fonction est un alias de : rtrim().

Notes

Note:

chop() est différente de son équivalent Perl chop(), qui supprime le dernier caractère dans la chaîne.


Retourne un caractère à partir de son code ASCII

  • « chop
  • chunk_split »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Retourne un caractère à partir de son code ASCII

chr

(PHP 4, PHP 5, PHP 7)

chr — Retourne un caractère à partir de son code ASCII

Description

string chr ( int $ascii )

Retourne une chaîne d'un seul caractère, dont le code ASCII est donné par le paramètre ascii.

Cette fonction complète la fonction ord().

Liste de paramètres

ascii

Le code ascii étendu.

Les valeurs en dehors de l'intervalle valide (0..255) seront converties en valeur positive, et se termineront à 255, ce qui est l'équivalent de l'algorithme suivant :

while ($ascii < 0) {
    $ascii += 256;
}
$ascii %= 256;

Valeurs de retour

Retourne le caractère à partir de son code ASCII.

Exemples

Exemple #1 Exemple avec chr()

<?php
$str = "The string ends in escape: ";

// Ajoute un caractère d'échappement à la fin de la chaîne $str
$str .= chr(27);

// Ceci est souvent plus pratique, et réalise la même chose

$str = sprintf("The string ends in escape: %c", 27);
?>

Exemple #2 Comportement de débordement

<?php
echo chr(-159), chr(833), PHP_EOL;
?>

L'exemple ci-dessus va afficher :

aA

Voir aussi

  • sprintf() - Retourne une chaîne formatée avec le caractère de formatage %c
  • ord()
  • La » table ASCII


Scinde une chaîne

  • « chr
  • convert_cyr_string »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Scinde une chaîne

chunk_split

(PHP 4, PHP 5, PHP 7)

chunk_split — Scinde une chaîne

Description

string chunk_split ( string $body [, int $chunklen = 76 [, string $end = "\r\n" ]] )

Scinde la chaîne body en segments de chunklen octets de longueur. Cette fonction est très pratique pour convertir les résultats de base64_encode() au format de la RFC 2045. Elle insère le paramètre end tous les chunklen caractères.

Liste de paramètres

body

La chaîne à scinder.

chunklen

La taille de la portion.

end

Le caractère de fin de la séquence.

Valeurs de retour

Retourne la chaîne scindée.

Exemples

Exemple #1 Exemple avec chunk_split()

<?php
// Formater des données pour suivre la norme RFC 2045
$new_string = chunk_split(base64_encode($data));
?>

Voir aussi

  • str_split() - Convertit une chaîne de caractères en tableau
  • explode() - Coupe une chaîne en segments
  • split() - Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • wordwrap() - Effectue la césure d'une chaîne
  • » RFC 2045


Convertit une chaîne d'un jeu de caractères cyrillique à l'autre

  • « chunk_split
  • convert_uudecode »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit une chaîne d'un jeu de caractères cyrillique à l'autre

convert_cyr_string

(PHP 4, PHP 5, PHP 7)

convert_cyr_string — Convertit une chaîne d'un jeu de caractères cyrillique à l'autre

Description

string convert_cyr_string ( string $str , string $from , string $to )

Convertit une chaîne d'un jeu de caractères cyrillique à l'autre.

Liste de paramètres

str

La chaîne à convertir.

from

Le jeu de caractères cyrillique, comme simple caractère.

to

Le jeu de caractères cyrillique cible, comme simple caractère.

Les caractères supportés sont :

  • k : koi8-r
  • w : windows-1251
  • i : iso8859-5
  • a : x-cp866
  • d : x-cp866
  • m : x-mac-cyrillic

Valeurs de retour

Retourne la chaîne convertie.

Notes

Note: Cette fonction gère les chaînes binaires.


Décode une chaîne au format uuencode

  • « convert_cyr_string
  • convert_uuencode »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Décode une chaîne au format uuencode

convert_uudecode

(PHP 5, PHP 7)

convert_uudecode — Décode une chaîne au format uuencode

Description

string convert_uudecode ( string $data )

convert_uudecode() décode une chaîne au format uuencode.

Liste de paramètres

data

Les données, au format uuencode.

Valeurs de retour

Retourne les données décodées, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec convert_uudecode()

<?php
/* Pouvez-vous imaginer ce que cela va afficher ? :) */
echo convert_uudecode("+22!L;W9E(%!(4\"$`\n`");
?>

Voir aussi

  • convert_uuencode() - Encode une chaîne de caractères en utilisant l'algorithme uuencode


Encode une chaîne de caractères en utilisant l'algorithme uuencode

  • « convert_uudecode
  • count_chars »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Encode une chaîne de caractères en utilisant l'algorithme uuencode

convert_uuencode

(PHP 5, PHP 7)

convert_uuencode — Encode une chaîne de caractères en utilisant l'algorithme uuencode

Description

string convert_uuencode ( string $data )

convert_uuencode() encode une chaîne de caractères en utilisant l'algorithme uuencode.

Uuencode traduit toutes les chaînes (y compris les binaires) en caractères imprimables, pour assurer leur transmission sur Internet. Les données au format uuencode sont environ 35 % plus grandes que les originales.

Liste de paramètres

data

Les données à encoder.

Valeurs de retour

Retourne les données, au format uuencode ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec convert_uuencode()

<?php
$some_string = "test\ntext text\r\n";

echo convert_uuencode($some_string);
?>

Voir aussi

  • convert_uudecode() - Décode une chaîne au format uuencode
  • base64_encode() - Encode une chaîne en MIME base64


Retourne des statistiques sur les caractères utilisés dans une chaîne

  • « convert_uuencode
  • crc32 »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Retourne des statistiques sur les caractères utilisés dans une chaîne

count_chars

(PHP 4, PHP 5, PHP 7)

count_chars — Retourne des statistiques sur les caractères utilisés dans une chaîne

Description

mixed count_chars ( string $string [, int $mode = 0 ] )

count_chars() compte le nombre d'occurrences de tous les octets présents dans la chaîne string et retourne différentes statistiques.

Liste de paramètres

string

La chaîne analysée.

mode

Voir les valeurs retournées.

Valeurs de retour

Suivant la valeur de mode, count_chars() retourne les informations suivantes :

  • 0 : un tableau avec l'octet en index, et la fréquence correspondante pour chaque octet.
  • 1 : identique à 0, mais seules les fréquences supérieures à zéro sont listées.
  • 2 : identique à 0, mais seules les fréquences nulles sont listées.
  • 3 : une chaîne contenant tous les octets utilisés est retournée.
  • 4 : une chaîne contenant tous les octets non utilisés est retournée.

Exemples

Exemple #1 Exemple avec count_chars()

<?php
$data = "Deux D et un F.";

foreach (count_chars($data, 1) as $i => $val) {
   echo "Il y a $val occurence(s) de \"" , chr($i) , "\" dans la phrase.\n";
}
?>

L'exemple ci-dessus va afficher :

Il y a 4 occurrence(s) de " " dans la phrase.
Il y a 1 occurrence(s) de "." dans la phrase.
Il y a 2 occurrence(s) de "D" dans la phrase.
Il y a 1 occurrence(s) de "F" dans la phrase.
Il y a 2 occurrence(s) de "e" dans la phrase.
Il y a 1 occurrence(s) de "n" dans la phrase.
Il y a 1 occurrence(s) de "t" dans la phrase.
Il y a 2 occurrence(s) de "u" dans la phrase.
Il y a 1 occurrence(s) de "x" dans la phrase.

Voir aussi

  • strpos() - Cherche la position de la première occurrence dans une chaîne
  • substr_count() - Compte le nombre d'occurrences de segments dans une chaîne


Calcule la somme de contrôle CRC32

  • « count_chars
  • crypt »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Calcule la somme de contrôle CRC32

crc32

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

crc32 — Calcule la somme de contrôle CRC32

Description

int crc32 ( string $str )

Génère la somme de contrôle cyclique CRC32, calculée sur 32 bits, et appliquée à la chaîne str. Cette fonction est généralement utilisée pour valider l'intégrité de données durant une transmission.

Avertissement

En raison du fait que le type entier de PHP est signé, la plupart des sommes de contrôle crc32 se trouve être des entiers négatifs sur les plateformes 32bits. Sur des installations 64bits, tous les résultats de la fonction crc32() seront des entiers positifs.

Aussi, vous devez utiliser le formatteur "%u" de la fonction sprintf() ou de la fonction printf() pour récupérer une représentation en chaîne de caractères de la somme de contrôle non-signée de la fonction crc32() au format décimal.

Pour une représentation hexadécimale de la somme de contrôle, vous pouvez utiliser soit le formatteur "%x" de la fonction sprintf() ou de la fonction printf() , ou bien les fonctions de conversion dechex(), les deux solutions prennent soin de convertir le résultat de la fonction crc32() en un entier non-signé.

Sur les installations 64bits, la fonction retournera aussi des entiers négatifs pour des valeurs retournées très grandes, mais cela va casser la conversion en héxadécimal en ayant une position 0xFFFFFFFF######## supplémentaire. Sachant que la représentation décimale semble être le cas le plus largement utilisé, nous avons décidé de ne pas la casser même si elle casse directement la comparaison décimale dans 50% des cas lors d'un passage de 32 à 64bits.

Avec du recul, le fait que la fonction retourne un entier n'était peut-être pas la meilleure idée, et retourner dés le début une représentation hexadécimale sous la forme d'une chaîne de caractères (tel que le fait la fonction md5()), aurait été meilleure solution.

Pour une solution plus pérenne, vous pouvez vous retourner vers la fonction générique hash(). hash("crc32b", $str) va retourner la même chaîne de caractères que str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT).

Liste de paramètres

str

Les données.

Valeurs de retour

Retourne la somme de contrôle crc32 de la chaîne str, sous la forme d'un entier.

Exemples

Exemple #1 Afficher une somme de contrôle CRC32

Cet exemple illustre comment afficher la somme de contrôle avec la fonction printf() :

<?php
$checksum = crc32("Le vif zéphyr jubile sur les kumquats du clown gracieux.");
printf("%u\n", $checksum);
?>

Voir aussi

  • hash() - Génère une valeur de hachage (empreinte numérique)
  • md5() - Calcule le md5 d'une chaîne
  • sha1() - Calcule le sha1 d'une chaîne de caractères


Hachage à sens unique (indéchiffrable)

  • « crc32
  • echo »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Hachage à sens unique (indéchiffrable)

crypt

(PHP 4, PHP 5, PHP 7)

crypt — Hachage à sens unique (indéchiffrable)

Description

string crypt ( string $str [, string $salt ] )

Retourne la chaîne str chiffrée avec l'algorithme standard Unix DES, ou bien un des algorithmes disponibles sur la machine.

Le paramètre salt est optionnel. Cependant, crypt() crée un mot de passe faible sans paramètre salt. PHP 5.6 et suivants lancent une alerte de niveau E_NOTICE sans ce paramètre. Assurez-vous de spécifier un salt assez solide pour une meilleure sécurité.

password_hash() utilise un hash fort, génère un salt fort, et applique le tout automatiquement. password_hash() est seulement un gestionnaire de crypt() et est compatible avec les mots de passe hachés existants. L'utilisation de la fonction password_hash() est fortement encouragée.

Certains systèmes supportent plus d'un type de hachage. En fait, il arrive que le chiffrement DES standard soit remplacé par un algorithme de chiffrement MD5. Le choix du type de hachage est effectué en se basant sur la valeur du salt. À l'installation, PHP détermine les possibilités de la fonction crypt(), et acceptera des salt pour d'autres types de chiffrements. Si aucun salt n'est fourni, PHP va en générer deux caractères (DES), à moins que le système par défaut soit MD5, auquel cas un salt compatible MD5 sera généré. PHP définit une constante appelée CRYPT_SALT_LENGTH permettant de vous indiquer la longueur du salt disponible pour le système de hachage utilisé.

crypt(), lorsqu'elle est utilisée avec le chiffrement standard DES, retourne le salt dans les deux premiers caractères de la chaîne retournée. Elle n'utilise que les 8 premiers caractères de str, ce qui fait que toutes les chaînes plus longues, qui ont les mêmes premiers 8 octets retourneront le même résultat (tant que le salt est toujours le même).

Sur les systèmes où crypt() supporte plusieurs types de hachages, les constantes suivantes sont mises à 0 ou 1, suivant que le type correspondant est disponible :

  • CRYPT_STD_DES : chiffrement DES standard à 2 caractères depuis la classe de caractères "./0-9A-Za-z". L'utilisation de caractères invalides dans le salt fera échouer la fonction crypt().
  • CRYPT_EXT_DES : Hachage DES étendu. Le "salt" sera une chaîne de 9 caractères composé d'un underscore, suivi de 4 octets du compteur d'itération puis 4 octets du "salt". Ces caractères seront encodés en tant que caractères imprimables, 6 octets par caractère, et dont le premier caractère au moins sera significatif. Les valeurs de 0 à 63 seront encodés comme "./0-9A-Za-z". L'utilisation de caractères invalides dans le salt fera échouer la fonction crypt().
  • CRYPT_MD5 : hachage MD5 à 12 caractères commençant par $1$
  • CRYPT_BLOWFISH : hachage Blowfish dont le salt est composé comme ceci ; "$2a$", "$2x$" or "$2y$", un paramètre à 2 chiffres, $, et 22 caractères depuis l'alphabet "./0-9A-Za-z". L'utilisation de caractères en dehors de cette classe dans le salt fera que la fonction crypt() retournera une chaîne vide (de longueur 0). Le paramètre à 2 chiffres est le logarithme base-2 du compteur d'itération pour l'algorithme de hachage basé sur Blowfish sous jacent et doivent être dans l'intervalle 04-31. De la même façon, si vous utilisez une valeur en dehors de cet intervalle, la fonction crypt() échouera. Les versions de PHP antérieures à la version 5.3.7 ne supportent que "$2a$" comme préfixe salt : PHP 5.3.7 a introduit deux nouveaux préfixes pour résoudre une faille de sécurité dans l'implémentation de Blowfish. Référez-vous à » ce document pour la totalité des détails de la correction de cette faille, mais pour résumer, les développeurs prévoient uniquement l'utilisation de "$2y$" à la place de "$2a$" pour les versions supérieures à 5.3.7 de PHP.
  • CRYPT_SHA256 - Hachage SHA-256 dont le salt est composé de 16 caractères préfixé par $5$. Si le salt commence par 'rounds=<N>$', la valeur numérique de N sera utilisée pour indiquer le nombre de fois que la boucle de hachage doit être exécutée, un peu comme le paramètre dans l'algorithme Blowfish. La valeur par défaut de rounds est de 5000, le minimum pouvant être de 1000 et le maximum, de 999,999,999. Tout autre sélection de N en dehors de cet intervalle sera tronqué à la plus proche des 2 limites.
  • CRYPT_SHA512 - Hachage SHA-512 dont le salt est composé de 16 caractères préfixé par $6$. Si le salt commence par 'rounds=<N>$', la valeur numérique de N sera utilisée pour indiquer le nombre de fois que la boucle de hachage doit être exécutée, un peu comme le paramètre dans l'algorithme Blowfish. La valeur par défaut de rounds est de 5000, le minimum pouvant être de 1000 et le maximum, de 999,999,999. Tout autre sélection de N en dehors de cet intervalle sera tronqué à la plus proche des 2 limites.

Note:

Depuis PHP 5.3.0, PHP dispose de sa propre implémentation, et l'utilisera si le système ne dispose pas de fonction crypt, ou de certains algorithmes.

Liste de paramètres

str

La chaîne à hacher.

Attention

Si vous utilisez l'algorithme CRYPT_BLOWFISH, le résultat du paramètre str sera tronqué à une longueur maximale de 72 caractères.

salt

Si l'argument salt n'est pas fourni, le comportement est défini par l'implémentation de l'algorithme et peut provoquer des résultats inattendus.

Valeurs de retour

Retourne la chaîne hachée ou une chaîne qui sera inférieure à 13 caractères et qui est garantie de différer du salt en cas d'erreur.

Avertissement

Lors de la validation des mots de passe, une fonction de comparaison de chaînes qui n'est pas vulnérable aux attaques temporelles doit être utilisée pour comparer la sortie de la fonction crypt() au hash précédemment connu. PHP 5.6 et suivants fournit la fonction hash_equals() pour ceci.

Historique

Version | Description
5.6.5 | Quand la chaine d'erreur "*0" est donnée comme salt, "*1" sera maintenant retournée par consistence avec les autres implémentations crypt. Antérieurement à cette version, PHP 5.6 va incorrectement retourner un hash DES.
5.6.0 | Lance une alerte de niveau E_NOTICE si le paramètre salt est omis.
5.5.21 | Quand la chaine d'erreur "*0" est donnée comme salt, "*1" sera maintenant retournée par consistence avec les autres implémentations crypt. Antérieurement à cette version, PHP 5.5 (et branches plus anciennes), crypt va incorrectement retourner un hash DES.
5.3.7 | Ajout de deux nouveaux modes Blowfish $2x$ et $2y$ pour éviter de potentielles attaques.
5.3.2 | Ajout de SHA-256 et de SHA-512 basés sur l'» implementation de Ulrich Drepper.
5.3.2 | Correction du comportement de Blowfish lors d'étape invalide où une chaîne d'échec ("*0" ou "*1") était retournée au lieu de retourner le DES dans ce cas.
5.3.0 | PHP dispose maintenant de sa propre implémentation de crypt MD5, Standard DES, Extended DES et l'algorithme Blowfish. Il l'utilisera si le système ne fournit pas l'un ou l'autre des algorithmes.

Exemples

Exemple #1 Exemple avec crypt()

<?php
// laissons le salt initialisé par PHP
$hashed_password = crypt('mypassword');

/*
  Il vaut mieux passer le résultat complet de crypt() comme salt nécessaire
  pour le chiffrement du mot de passe, pour éviter les problèmes entre les
  algorithmes utilisés (comme nous le disons ci-dessus, le chiffrement
  standard DES utilise un salt de 2 caractères, mais un chiffrement
  MD5 utilise un salt de 12).
*/
if (hash_equals($hashed_password, crypt($user_input, $hashed_password))) {
   echo "Mot de passe correct !";
}
?>

Exemple #2 Utilisation de crypt() avec htpasswd

<?php
// Définition du mot de passe
$password = 'mypassword';

// Récupération du hash, on laisse le salt se générer automatiquement
$hash = crypt($password);
?>

Exemple #3 Utilisation de crypt() avec différents types de chiffrement

<?php
/* Ces salts ne sont que pour l'exemple, et ne doivent pas être utilisés
   dans votre application. Vous devriez générer un salt distinct,
   correctement formatté pour chaque mot de passe.
*/
if (CRYPT_STD_DES == 1) {
    echo 'DES standard : ' . crypt('rasmuslerdorf', 'rl') . "\n";
}

if (CRYPT_EXT_DES == 1) {
    echo 'DES étendu : ' . crypt('rasmuslerdorf', '_J9..rasm') . "\n";
}

if (CRYPT_MD5 == 1) {
    echo 'MD5 :          ' . crypt('rasmuslerdorf', '$1$rasmusle$') . "\n";
}

if (CRYPT_BLOWFISH == 1) {
    echo 'Blowfish :     ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') . "\n";
}

if (CRYPT_SHA256 == 1) {
    echo 'SHA-256 :      ' . crypt('rasmuslerdorf', '$5$rounds=5000$usesomesillystringforsalt$') . "\n";
}

if (CRYPT_SHA512 == 1) {
    echo 'SHA-512 :      ' . crypt('rasmuslerdorf', '$6$rounds=5000$usesomesillystringforsalt$') . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

DES standard : rl.3StKT.4T8M
DES étendu : _J9..rasmBYk8r9AiWNc
MD5 :          $1$rasmusle$rISCgZzpwk3UhDidwXvin0
Blowfish :     $2a$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi
SHA-256 :      $5$rounds=5000$usesomesillystri$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6
SHA-512 :      $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21

Notes

Note: Il n'existe pas de fonction de déchiffrement, car la fonction crypt() utilise un algorithme à un seul sens (injection).

Voir aussi

  • hash_equals() - Comparaison de chaînes résistante aux attaques temporelles
  • password_hash() - Crée une clé de hachage pour un mot de passe
  • md5() - Calcule le md5 d'une chaîne
  • L'extension Mcrypt
  • La page de manuel Unix de la fonction crypt pour plus d'informations


Affiche une chaîne de caractères

  • « crypt
  • explode »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Affiche une chaîne de caractères

echo

(PHP 4, PHP 5, PHP 7)

echo — Affiche une chaîne de caractères

Description

void echo ( string $arg1 [, string $... ] )

Affiche tous les paramètres. Aucune nouvelle ligne n'est ajoutée.

echo n'est pas vraiment une fonction (c'est techniquement une structure du langage), cela fait que vous n'êtes pas obligé d'utiliser des parenthèses. echo (contrairement à d'autres structures de langage) ne se comporte pas comme une fonction, il ne peut donc pas être utilisé dans le contexte d'une fonction. De même, si vous voulez passer plusieurs paramètres à echo, les paramètres ne doivent pas être entourés de parenthèses.

echo dispose aussi d'une version courte, où vous pouvez faire suivre la balise PHP ouvrante d'un signe égal (=). Avant PHP 5.4.0, cette syntaxe n'était possible que si la directive de configuration short_open_tag était activée.

J'ai <?=$foo?> foo.

La seule différente avec print est que echo accepte une liste d'arguments.

Liste de paramètres

arg1

Le paramètre à afficher.

...

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec echo

<?php
echo "Bonjour le monde";

echo "Cet echo() se
répartit sur plusieurs lignes. Il affiche aussi les
nouvelles lignes";

echo "Cet echo() se\nrépartit sur plusieurs lignes. Il affiche aussi les\nnouvelles lignes";

echo "L'échappement de caractères se fait : \"comme ceci\".";

// Vous pouvez utiliser des variables avec echo()
$foo = "foobar";
$bar = "barbaz";

echo "foo vaut $foo"; // foo vaut foobar

// Vous pouvez aussi utiliser des tableaux
$baz = array("value" => "foo");

echo "c'est {$baz['value']} !"; // c'est foo !

// Les guillemets simples annulent le remplacement des variables
echo 'foo vaut $foo'; // foo vaut $foo

// Si vous n'utilisez pas d'autres caractères,
// vous pouvez afficher plusieurs variables
// en les séparant par des virgules
echo $foo;          // foobar
echo $foo,$bar;     // foobarbarbaz

// Les chaînes peuvent être passées individuellement comme arguments multiples ou
// concaténées et passées comme un seul argument
echo 'Cette ', 'chaîne ', 'a été ', 'faite ', 'avec plusieurs paramètres.', chr(10);
echo 'Cette ' . 'chaîne ' . 'a été ' . 'faite ' . 'à l\'aide de la concaténation.' . "\n";

echo <<<END
Cette syntaxe s'intitule le "here document" et
permet d'afficher plusieurs lignes avec de
l'interpolation de variables. Notez que la fin de
la syntaxe doit apparaître sur une nouvelle ligne,
avec uniquement un point-virgule, et pas d'espace
de plus !
END;

// parce que echo() ne se comporte pas comme une fonction, le code suivant n'est pas valide.
($some_var) ? echo 'true' : echo 'false';

// Cependant, les lignes suivantes sont valides :
($some_var) ? print 'Oui' : print 'Non'; // print est aussi une structure de langage, mais
                                   // il se comporte comme une fonction, donc,
                                   // il peut être utilisé dans ce contexte.
echo $some_var ? 'Oui': 'Non';
?>

Notes

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Astuce

Un bénéfice de passe par plusieurs arguments au lieu d'utiliser la concaténation dans la fonction echo concerne la priorité de l'opérateur point ".". Si plusieurs arguments sont passés, alors les parenthèses ne sont pas requises pour accroitre la priorité. :

<?php
echo "Somme : ", 1 + 2;
echo "Bonjour ", isset($name) ? $name : "John Doe", "!";

Avec la concaténation, l'opérateur "point" a une priorité plus élevée que l'addition et l'opérateur ternaire, et donc, les parenthèses doivent être utilisées pour un comportement correct :

<?php
echo 'Somme : ' . (1 + 2);
echo 'Bonjour ' . (isset($name) ? $name : 'John Doe') . '!';

Voir aussi

  • print - Affiche une chaîne de caractères
  • printf() - Affiche une chaîne de caractères formatée
  • flush() - Vide les tampons de sortie du système
  • Syntaxe Heredoc


Coupe une chaîne en segments

  • « echo
  • fprintf »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Coupe une chaîne en segments

explode

(PHP 4, PHP 5, PHP 7)

explode — Coupe une chaîne en segments

Description

array explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX ] )

explode() retourne un tableau de chaînes, chacune d'elle étant une sous-chaîne du paramètre string extraite en utilisant le séparateur delimiter.

Liste de paramètres

delimiter

Le séparateur.

string

La chaîne initiale.

limit

Si limit est défini et positif, le tableau retourné contient, au maximum, limit éléments, et le dernier élément contiendra le reste de la chaîne.

Si le paramètre limit est négatif, tous les éléments, excepté les -limit derniers éléments sont retournés.

Si limit vaut zéro, il est traité comme valant 1.

Note:

Bien que implode() puisse, pour des raisons historiques, accepter ces paramètres dans n'importe quel ordre, explode() ne le peut pas. Vous devez vous assurer que le paramètre delimiter soit placé avant le paramètre string.

Valeurs de retour

Retourne un tableau de chaînes de caractères créées en découpant la chaîne du paramètre string en plusieurs morceaux suivant le paramètre delimiter.

Si delimiter est une chaîne vide (""), explode() retournera FALSE. Si delimiter contient une valeur qui n'est pas contenue dans string ainsi qu'une valeur négative pour le paramètre limit, alors explode() retournera un tableau vide, sinon, un tableau contenant la chaîne string entière.

Historique

Version | Description
5.1.0 | Le paramètre limit peut désormais être négatif

Exemples

Exemple #1 Exemple avec explode()

<?php
// Exemple 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

// Exemple 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>

Exemple #2 Exemple de valeurs retournées par la fonction explode()

<?php
/* Une chaîne qui ne contient pas de délimiteur va retourner un tableau
   contenant qu'un seul élément représentant la chaîne originale */
$input1 = "hello";
$input2 = "hello,there";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );

?>

L'exemple ci-dessus va afficher :

array(1)
(
    [0] => string(5) "hello"
)
array(2)
(
    [0] => string(5) "hello"
    [1] => string(5) "there"
)
array(2)
(
    [0] => string(0) ""
    [1] => string(0) ""
)

Exemple #3 Exemple avec explode() et le paramètre limit

<?php
$str = 'one|two|three|four';

// limit positif
print_r(explode('|', $str, 2));

// limit négatif (depuis PHP 5.1)
print_r(explode('|', $str, -1));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => one
    [1] => two|three|four
)
Array
(
    [0] => one
    [1] => two
    [2] => three
)

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • preg_split() - Éclate une chaîne par expression rationnelle
  • str_split() - Convertit une chaîne de caractères en tableau
  • mb_split() - Scinde une chaîne en tableau avec une expression rationnelle multi-octets
  • str_word_count() - Compte le nombre de mots utilisés dans une chaîne
  • strtok() - Coupe une chaîne en segments
  • implode() - Rassemble les éléments d'un tableau en une chaîne


Écrit une chaîne formatée dans un flux

  • « explode
  • get_html_translation_table »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Écrit une chaîne formatée dans un flux

fprintf

(PHP 5, PHP 7)

fprintf — Écrit une chaîne formatée dans un flux

Description

int fprintf ( resource $handle , string $format [, mixed $args [, mixed $... ]] )

Écrit la chaîne produite avec le format format dans le flux représenté par handle.

Liste de paramètres

handle

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

format

Voir la documentation sur la fonction sprintf() pour une description du paramètre format.

args

...

Valeurs de retour

Retourne la longueur de la chaîne écrite.

Exemples

Exemple #1 fprintf() : Entiers avec zéros initiaux

<?php
if (!($fp = fopen('date.txt', 'w'))) {
    return;
}

fprintf($fp, "%04d-%02d-%02d", $year, $month, $day);
// écrira la date formatée ISO dans le fichier date.txt
?>

Exemple #2 fprintf() : Format monétaire

<?php
if (!($fp = fopen('currency.txt', 'w'))) {
    return;
}

$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money affichera "123.1";
$len = fprintf($fp, '%01.2f', $money);
// écrira "123.10" dans le fichier currency.txt

echo "écriture de $len octets dans le fichier currency.txt";
// utilisez la valeur retournée par fprintf pour déterminer le nombre d'octets écrits
?>

Voir aussi

  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • fscanf() - Analyse un fichier en fonction d'un format
  • vsprintf() - Retourne une chaîne formatée
  • number_format() - Formate un nombre pour l'affichage


Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities

  • « fprintf
  • hebrev »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities

get_html_translation_table

(PHP 4, PHP 5, PHP 7)

get_html_translation_table — Retourne la table de traduction des entités utilisée par htmlspecialchars() et htmlentities()

Description

array get_html_translation_table ([ int $table = HTML_SPECIALCHARS [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = "UTF-8" ]]] )

get_html_translation_table() retourne la table de traduction des entités utilisée en interne par les fonctions htmlspecialchars() et htmlentities().

Note:

Les caractères spéciaux peuvent être encodés de différentes façon. E.g. " peut être encodé comme &quot;, &#34; ou &#x22. get_html_translation_table() retourne uniquement la forme utilisée par htmlspecialchars() et htmlentities().

Liste de paramètres

table

La table à retourner. Soit HTML_ENTITIES, soit HTML_SPECIALCHARS.

flags

Un masque d'un ou plusieurs drapeaux suivants, qui spécifient quel guillemet la table contiendra, tout comme le type de document prévu pour la table. La valeur par défaut est ENT_COMPAT | ENT_HTML401.

Constantes disponibles pour le drapeau flags
Nom de la constante | Description
ENT_COMPAT | La table contient des entités pour les guillemets doubles, mais pas pour les guillemets simples.
ENT_QUOTES | La table contient des entités pour à la fois les guillemets doubles et simples.
ENT_NOQUOTES | La table ne contient pas d'entités pour à la fois les guillemets doubles et simples.
ENT_HTML401 | Table pour du HTML 4.01.
ENT_XML1 | Table pour du XML 1.
ENT_XHTML | Table pour du XHTML.
ENT_HTML5 | Table pour du HTML 5.

encoding

Encodage à utiliser. Si omis, la valeur par défaut de cet argument sera ISO-8859-1 pour les versions antérieures à la version 5.4.0 de PHP, et UTF-8 pour les versions suivantes à 5.4.0.

Les jeux de caractères suivants sont supportés :

Jeux de caractères supportés
Jeux de caractères | Alias | Description
ISO-8859-1 | ISO8859-1 | Europe occidentale, Latin-1.
ISO-8859-5 | ISO8859-5 | Jeu de caractère cyrillique rarement utilisé (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Europe occidentale, Latin-9. Dispose du signe Euro, des caractères spéciaux français et finlandais, qui manquent au Latin-1 (ISO-8859-1).
UTF-8 | Unicode 8 bits multioctets, compatible avec l'ASCII
cp866 | ibm866, 866 | Jeu de caractères Cyrillique spécifique à DOS.
cp1251 | Windows-1251, win-1251, 1251 | Jeu de caractères Cyrillic spécifique à Windows.
cp1252 | Windows-1252, 1252 | Jeu de caractères spécifique de Windows pour l'Europe occidentale.
KOI8-R | koi8-ru, koi8r | Russe.
BIG5 | 950 | Chinois traditionnel, principalement utilisé à Taïwan.
GB2312 | 936 | Chinois simplifié, officiel.
BIG5-HKSCS | Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japonais
EUC-JP | EUCJP, eucJP-win | Japonais
MacRoman | Jeu de caractères utilisé par Mac OS.
'' Une chaîne vide active la détection de l'encodage depuis un script (multi-octet Zend), default_charset et la locale courante (voir nl_langinfo() et setlocale()), dans cet ordre. Non recommandé.

Note: Les autres jeux de caractères ne sont pas reconnus. L'encodage par défaut sera utilisé à la place et une alerte sera émise.

Valeurs de retour

Retourne la table de traduction, sous la forme d'un tableau, avec comme clés, les caractères orignaux, et comme valeurs, les entités correspondantes.

Historique

Version | Description
5.4.0 | La valeur par défaut du paramètre encoding a changé en UTF-8.
5.4.0 | Les constantes ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.
5.3.4 | Le paramètre encoding a été ajouté.

Exemples

Exemple #1 Exemple avec la table de traduction des caractères en entités HTML

<?php
var_dump(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES | ENT_HTML5));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1510) {
  ["
"]=>
  string(9) "&NewLine;"
  ["!"]=>
  string(6) "&excl;"
  ["""]=>
  string(6) "&quot;"
  ["#"]=>
  string(5) "&num;"
  ["$"]=>
  string(8) "&dollar;"
  ["%"]=>
  string(8) "&percnt;"
  ["&"]=>
  string(5) "&amp;"
  ["'"]=>
  string(6) "&apos;"
  // ...
}

Voir aussi

  • htmlspecialchars() - Convertit les caractères spéciaux en entités HTML
  • htmlentities() - Convertit tous les caractères éligibles en entités HTML
  • html_entity_decode() - Convertit toutes les entités HTML en caractères normaux


Convertit un texte logique hébreux en texte visuel

  • « get_html_translation_table
  • hebrevc »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit un texte logique hébreux en texte visuel

hebrev

(PHP 4, PHP 5, PHP 7)

hebrev — Convertit un texte logique hébreux en texte visuel

Description

string hebrev ( string $hebrew_text [, int $max_chars_per_line = 0 ] )

Convertit un texte logique hébreux en texte visuel.

La fonction tente d'éviter la césure des mots.

Liste de paramètres

hebrew_text

Une chaîne d'entrée en hébreux.

max_chars_per_line

Le paramètre optionnel max_chars_per_line indique le nombre maximum de caractères par ligne dans le résultat.

Valeurs de retour

Retourne la chaîne visuelle.

Voir aussi

  • hebrevc() - Convertit un texte logique hébreux en texte visuel, avec retours à la ligne


Convertit un texte logique hébreux en texte visuel, avec retours à la ligne

  • « hebrev
  • hex2bin »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit un texte logique hébreux en texte visuel, avec retours à la ligne

hebrevc

(PHP 4, PHP 5, PHP 7)

hebrevc — Convertit un texte logique hébreux en texte visuel, avec retours à la ligne

Description

string hebrevc ( string $hebrew_text [, int $max_chars_per_line = 0 ] )

hebrevc() est similaire à hebrev() à la différence qu'elle convertit les nouvelles lignes (\n) en "<br>\n".

La fonction tente d'éviter la césure des mots.

Liste de paramètres

hebrew_text

Une chaîne d'entrée en hébreux.

max_chars_per_line

Le paramètre optionnel max_chars_per_line indique le nombre maximum de caractères par lignes dans le résultat.

Valeurs de retour

Retourne la chaîne visuelle.

Voir aussi

  • hebrev() - Convertit un texte logique hébreux en texte visuel


Convertit une chaîne binaire encodée en hexadécimal

  • « hebrevc
  • html_entity_decode »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit une chaîne binaire encodée en hexadécimal

hex2bin

(PHP >= 5.4.0)

hex2bin — Convertit une chaîne binaire encodée en hexadécimal

Description

string hex2bin ( string $data )

Convertit une chaîne binaire encodée en hexadécimal.

Attention

Cette fonction ne convertit PAS un nombre hexadécimal en un nombre binaire. Cela peut être réalisé en utilisant la fonction base_convert().

Liste de paramètres

data

Représentation hexadécimale de la donnée.

Valeurs de retour

Retourne la représentation binaire de la donnée ou FALSE si une erreur survient.

Erreurs / Exceptions

Si la chaîne d'entrée en héxadécimale est d'une longueur impaire ou si la chaîne en héxadécimale est invalide, une alerte de niveau E_WARNING sera émise.

Historique

Version | Description
5.5.1 | Une alerte est émise si la chaîne en entrée est une chaîne héxadécimale invalide.
5.4.4 | Un avertissement est émis si la chaîne en entrée est de longueur impaire. Avec PHP 5.4.0, la chaîne était acceptée silencieusement, mais le dernier octet était tronqué.

Exemples

Exemple #1 Exemple avec hex2bin()

<?php
$hex = hex2bin("6578616d706c65206865782064617461");
var_dump($hex);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(16) "example hex data"

Voir aussi

  • bin2hex() - Convertit des données binaires en représentation hexadécimale
  • unpack() - Déconditionne des données depuis une chaîne binaire


Convertit toutes les entités HTML en caractères normaux

  • « hex2bin
  • htmlentities »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit toutes les entités HTML en caractères normaux

html_entity_decode

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

html_entity_decode — Convertit toutes les entités HTML en caractères normaux

Description

string html_entity_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") ]] )

html_entity_decode() est la fonction contraire de htmlentities() : elle convertit les entités HTML de la chaîne string en caractères applicables.

De façon plus explicite, cette fonction décode toutes les entités (incluant les entités numériques) qui 1) sont nécessairement valides pour le type de document choisi - i.e., pour XML, cette fonction ne décode pas les entités nommées qui peuvent être définies dans une DTD - et 2) et dont le caractère ou les caractères sont dans le jeu de caractères codé avec l'encodage choisi et sont autorisés dans le type de document choisi. Toutes les autres entités sont laissées telle que.

Liste de paramètres

string

La chaîne d'entrée.

flags

Un masque d'un ou plusieurs drapeaux suivants, qui spécifient la façon dont doivent être gérés les guillemets et quel type de document doit être utilisé. Par défaut, ce sera ENT_COMPAT | ENT_HTML401.

Constantes disponibles pour flags
Constante | Description
ENT_COMPAT | Convertit les guillemets doubles et ignore les guillemets simples.
ENT_QUOTES | Convertit les guillemets doubles et les guillemets simples.
ENT_NOQUOTES | Ne convertit aucun guillemet.
ENT_HTML401 | Gère le code comme étant du HTML 4.01.
ENT_XML1 | Gère le code comme étant du XML 1.
ENT_XHTML | Gère le code comme étant du XHTML.
ENT_HTML5 | Gère le code comme étant du HTML 5.

encoding

Un argument optionnel définissant l'encodage utilisé lors de la convertion des caractères.

Si omis, la valeur par défaut du paramètre encoding varie suivant la version PHP utilisée. En PHP 5.6.0 et suivants, l'option de configuration default_charset sera utilisée comme valeur par défaut. En PHP 5.4 et 5.5, UTF-8 sera la valeur par défaut. Pour les versions plus anciennes, PHP utilisera ISO-8859-1.

Malgré le fait que cet argument soit techniquement optionnel, vous êtes vivement encouragé à spécifier la valeur correcte pour votre code si vous utilisez PHP 5.5 ou antérieures, ou si votre option de configuration default_charset a été définie de façon incorrecte pour l'entrée fournie.

Les jeux de caractères suivants sont supportés :

Jeux de caractères supportés
Jeux de caractères | Alias | Description
ISO-8859-1 | ISO8859-1 | Europe occidentale, Latin-1.
ISO-8859-5 | ISO8859-5 | Jeu de caractère cyrillique rarement utilisé (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Europe occidentale, Latin-9. Dispose du signe Euro, des caractères spéciaux français et finlandais, qui manquent au Latin-1 (ISO-8859-1).
UTF-8 | Unicode 8 bits multioctets, compatible avec l'ASCII
cp866 | ibm866, 866 | Jeu de caractères Cyrillique spécifique à DOS.
cp1251 | Windows-1251, win-1251, 1251 | Jeu de caractères Cyrillic spécifique à Windows.
cp1252 | Windows-1252, 1252 | Jeu de caractères spécifique de Windows pour l'Europe occidentale.
KOI8-R | koi8-ru, koi8r | Russe.
BIG5 | 950 | Chinois traditionnel, principalement utilisé à Taïwan.
GB2312 | 936 | Chinois simplifié, officiel.
BIG5-HKSCS | Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japonais
EUC-JP | EUCJP, eucJP-win | Japonais
MacRoman | Jeu de caractères utilisé par Mac OS.
'' Une chaîne vide active la détection de l'encodage depuis un script (multi-octet Zend), default_charset et la locale courante (voir nl_langinfo() et setlocale()), dans cet ordre. Non recommandé.

Note: Les autres jeux de caractères ne sont pas reconnus. L'encodage par défaut sera utilisé à la place et une alerte sera émise.

Valeurs de retour

Retourne la chaîne décodée.

Historique

Version | Description
5.6.0 | La valeur par défaut pour le paramètre encoding a été modifiée pour être la valeur de l'option de configuration default_charset.
5.4.0 | L'encodage par défaut a changé de ISO-8859-1 à UTF-8.
5.4.0 | Les constantes ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.

Exemples

Exemple #1 Décoder des entités HTML

<?php
$orig = 'J\'ai "sorti" le <strong>chien</strong> tout à l\'heure';
$a = htmlentities($orig);
$b = html_entity_decode($a);

echo $a; // J'ai &quot;sorti&quot; le &lt;strong&gt;chien&lt;/strong&gt; tout &amp;agrave; l'heure
echo $b; // J'ai "sorti" le <strong>chien</strong> tout à l'heure

?>

Notes

Note:

Vous pourriez vous demander pourquoi trim(html_entity_decode('&nbsp;')); ne réduit pas la chaîne à la chaîne vide. C'est parce que l'entité &nbsp; n'est pas un code ASCII 32 (qui serait supprimé par trim()), mais un code ASCII 160 (0xa0) dans l'encodage par défaut ISO 8859-1.

Voir aussi

  • htmlentities() - Convertit tous les caractères éligibles en entités HTML
  • htmlspecialchars() - Convertit les caractères spéciaux en entités HTML
  • get_html_translation_table() - Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities
  • urldecode() - Décode une chaîne encodée URL


Convertit tous les caractères éligibles en entités HTML

  • « html_entity_decode
  • htmlspecialchars_decode »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit tous les caractères éligibles en entités HTML

htmlentities

(PHP 4, PHP 5, PHP 7)

htmlentities — Convertit tous les caractères éligibles en entités HTML

Description

string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

htmlentities() est identique à la fonction htmlspecialchars(), sauf que tous les caractères qui ont des équivalents en entités HTML sont effectivement traduits.

Si vous voulez réaliser l'opération inverse, vous devez utiliser la fonction html_entity_decode().

Liste de paramètres

string

La chaîne d'entrée.

flags

Un masque d'un ou plusieurs drapeaux suivants, qui déterminent la façon dont les guillemets seront gérés, dont les séquences de code invalide seront gérées ainsi que le type du document utilisé. Par défaut, ce sera ENT_COMPAT | ENT_HTML401.

Constantes disponibles pour flags
Constante | Description
ENT_COMPAT | Convertit les guillemets doubles, et ignore les guillemets simples.
ENT_QUOTES | Convertit les guillemets doubles et les guillemets simples.
ENT_NOQUOTES | Ignore les guillemets doubles et les guillemets simples.
ENT_IGNORE | Ignore les séquences de caractères invalides plutôt que de retourner une chaine vide. L'utilisation de ce drapeau est fortement déconseillée pour des » raisons de sécurité.
ENT_SUBSTITUTE | Remplace les séquences de code invalide avec un caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD; (sinon) au lieu de retourner une chaîne vide.
ENT_DISALLOWED | Remplace les points du code invalides du document fourni avec un caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD; (sinon) au lieu de le laisser tel quel. Ceci peut être utile pour, par exemple, s'assurer du bon formatage de documents XML contenant du contenu externe.
ENT_HTML401 | Gère le code comme étant du HTML 4.01.
ENT_XML1 | Gère le code comme étant du XML 1.
ENT_XHTML | Gère le code comme étant du XHTML.
ENT_HTML5 | Gère le code comme étant du HTML 5.

encoding

Un argument optionnel définissant l'encodage utilisé lors de la convertion des caractères.

Si omis, la valeur par défaut du paramètre encoding varie suivant la version PHP utilisée. En PHP 5.6.0 et suivants, l'option de configuration default_charset sera utilisée comme valeur par défaut. En PHP 5.4 et 5.5, UTF-8 sera la valeur par défaut. Pour les versions plus anciennes, PHP utilisera ISO-8859-1.

Malgré le fait que cet argument soit techniquement optionnel, vous êtes vivement encouragé à spécifier la valeur correcte pour votre code si vous utilisez PHP 5.5 ou antérieures, ou si votre option de configuration default_charset a été définie de façon incorrecte pour l'entrée fournie.

Les jeux de caractères suivants sont supportés :

Jeux de caractères supportés
Jeux de caractères | Alias | Description
ISO-8859-1 | ISO8859-1 | Europe occidentale, Latin-1.
ISO-8859-5 | ISO8859-5 | Jeu de caractère cyrillique rarement utilisé (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Europe occidentale, Latin-9. Dispose du signe Euro, des caractères spéciaux français et finlandais, qui manquent au Latin-1 (ISO-8859-1).
UTF-8 | Unicode 8 bits multioctets, compatible avec l'ASCII
cp866 | ibm866, 866 | Jeu de caractères Cyrillique spécifique à DOS.
cp1251 | Windows-1251, win-1251, 1251 | Jeu de caractères Cyrillic spécifique à Windows.
cp1252 | Windows-1252, 1252 | Jeu de caractères spécifique de Windows pour l'Europe occidentale.
KOI8-R | koi8-ru, koi8r | Russe.
BIG5 | 950 | Chinois traditionnel, principalement utilisé à Taïwan.
GB2312 | 936 | Chinois simplifié, officiel.
BIG5-HKSCS | Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japonais
EUC-JP | EUCJP, eucJP-win | Japonais
MacRoman | Jeu de caractères utilisé par Mac OS.
'' Une chaîne vide active la détection de l'encodage depuis un script (multi-octet Zend), default_charset et la locale courante (voir nl_langinfo() et setlocale()), dans cet ordre. Non recommandé.

Note: Les autres jeux de caractères ne sont pas reconnus. L'encodage par défaut sera utilisé à la place et une alerte sera émise.

double_encode

Lorsque double_encode est désactivé, PHP n'encodera pas les entités html existantes. Par défaut, tout est converti.

Valeurs de retour

Retourne la chaîne encodée.

Si l'entrée string contient une séquence de code invalide dans l'encodage encoding fourni, une chaîne vide sera retournée, à moins que le drapeau ENT_IGNORE ou le drapeau ENT_SUBSTITUTE ne soit défini.

Historique

Version | Description
5.6.0 | La valeur par défaut pour le paramètre encoding a été modifiée pour être la valeur de l'option de configuration default_charset.
5.4.0 | La valeur par défaut du paramètre encoding est maintenant UTF-8.
5.4.0 | Les constantes ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.
5.3.0 | La constante ENT_IGNORE a été ajoutée.
5.2.3 | Ajout du paramètre double_encode.

Exemples

Exemple #1 Exemple avec htmlentities()

<?php
$str = 'Un \'apostrophe\' en <strong>gras</strong>';

// Affiche : Un 'apostrophe' en &lt;strong&gt;gras&lt;/strong&gt;
echo htmlentities($str);

// Affiche : Un &#039;apostrophe&#039; en &lt;strong&gt;gras&lt;/strong&gt;
echo htmlentities($str, ENT_QUOTES);
?>

Exemple #2 Utilisation de ENT_IGNORE

<?php
$str = "\x8F!!!";

// Affiche une chaine vide
echo htmlentities($str, ENT_QUOTES, "UTF-8");

// Affiche "!!!"
echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8");
?>

Voir aussi

  • html_entity_decode() - Convertit toutes les entités HTML en caractères normaux
  • get_html_translation_table() - Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities
  • htmlspecialchars() - Convertit les caractères spéciaux en entités HTML
  • nl2br() - Insère un retour à la ligne HTML à chaque nouvelle ligne
  • urlencode() - Encode une chaîne en URL


Convertit les entités HTML spéciales en caractères

  • « htmlentities
  • htmlspecialchars »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit les entités HTML spéciales en caractères

htmlspecialchars_decode

(PHP 5 >= 5.1.0, PHP 7)

htmlspecialchars_decode — Convertit les entités HTML spéciales en caractères

Description

string htmlspecialchars_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 ] )

Cette fonction est l'opposée de htmlspecialchars(). Elle convertit les entités HTML spéciales en caractères.

Les entités converties sont : &amp;, &quot; (lorsque ENT_NOQUOTES n'est pas activée), &#039; (lorsque ENT_QUOTES est activée), &lt; et &gt;.

Liste de paramètres

string

La chaîne de caractères à décoder

flags

Un masque d'un ou plusieurs drapeaux suivants, qui spécifient la façon dont doit être géré les guillemets et quel type de document à utiliser. Par défaut, ce sera ENT_COMPAT | ENT_HTML401.

Constantes pour le paramètre flags disponibles
Nom de la Constante | Description
ENT_COMPAT | Convertira les guillemets et laissera les apostrophes.
ENT_QUOTES | Convertira les guillemets et les apostrophes.
ENT_NOQUOTES | Laissera les guillemets et les apostrophes non convertis.
ENT_HTML401 | Gère le code comme étant du HTML 4.01.
ENT_XML1 | Gère le code comme étant du XML 1.
ENT_XHTML | Gère le code comme étant du XHTML.
ENT_HTML5 | Gère le code comme étant du HTML 5.

Valeurs de retour

Retourne la chaîne de caractères décodée.

Historique

Version | Description
5.4.0 | Les constantes ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.

Exemples

Exemple #1 Exemple avec htmlspecialchars_decode()

<?php
$str = "<p>this -&gt; &quot;</p>\n";

echo htmlspecialchars_decode($str);

// notez ici que les guillemets ne sont pas convertis
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>

L'exemple ci-dessus va afficher :

<p>this -> "</p>
<p>this -> &quot;</p>

Voir aussi

  • htmlspecialchars() - Convertit les caractères spéciaux en entités HTML
  • html_entity_decode() - Convertit toutes les entités HTML en caractères normaux
  • get_html_translation_table() - Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities


Convertit les caractères spéciaux en entités HTML

  • « htmlspecialchars_decode
  • implode »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit les caractères spéciaux en entités HTML

htmlspecialchars

(PHP 4, PHP 5, PHP 7)

htmlspecialchars — Convertit les caractères spéciaux en entités HTML

Description

string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

Certains caractères ont des significations spéciales en HTML, et doivent être remplacés par des entités HTML pour conserver leurs significations. Cette fonction retourne une chaîne de caractères avec ces modifications. Si vous avez besoin que toutes les sous-chaînes en entrée qui sont associées à des entités nommées soient transformées, utilisez la fonction htmlentities().

Si la chaîne en entrée passée à cette fonction et le document final partagent le même jeu de caractères, cette fonction est suffisante pour préparer l'entrée pour une inclusion dans la plupart des contextes d'un document HTML. Si cependant, l'entrée peut présenter des caractères qui ne sont pas codés dans le jeu de caractères du document final, et que vous souhaitez épargner ces caractères (comme des numériques ou des entités nommés), cette fonction et la fonction htmlentities() (qui n'encodes que les sous-chaînes qui ont des entités nommés équivalentes) ne sont pas suffisantes. Vous devez utiliser la fonction mb_encode_numericentity() à la place.

Remplacement effectué
Caractère | Remplacement
& (ET commercial) | &amp;
" (double guillement) | &quot; sauf si ENT_NOQUOTES
' (simple guillemet) | &#039; (pour ENT_HTML401) ou &apos; (pour ENT_XML1, ENT_XHTML ou ENT_HTML5), mais seulement lorsque ENT_QUOTES est défini
< (inférieur à) | &lt;
> (supérieur à) | &gt;

Liste de paramètres

string

La chaîne à convertir.

flags

Un masque d'un ou plusieurs drapeaux suivants, qui déterminent la façon dont les guillemets seront gérés, dont les séquences de code invalide seront gérées ainsi que le type du document utilisé. Par défaut, ce sera ENT_COMPAT | ENT_HTML401.

Constantes disponibles pour flags
Constante | Description
ENT_COMPAT | Convertit les guillemets doubles, et ignore les guillemets simples.
ENT_QUOTES | Convertit les guillemets doubles et les guillemets simples.
ENT_NOQUOTES | Ignore les guillemets doubles et les guillemets simples.
ENT_IGNORE | Ignore les séquences de caractères invalides plutôt que de retourner une chaine vide. L'utilisation de ce drapeau est fortement déconseillé pour des » raisons de sécurité.
ENT_SUBSTITUTE | Remplace les séquences de code invalide avec un caractère de remplacement Unicode U+FFFD (UTF-8) ou &#xFFFD; (sinon) au lieu de retourner une chaîne vide.
ENT_DISALLOWED | Remplace les points du code invalides du document fourni avec un caractère de remplacement Unicode U+FFFD (UTF-8) ou &#xFFFD; (sinon) au lieu de le laisser tel quel. Ceci peut être utile pour, par exemple, s'assurer du bon formatage de documents XML contenant du contenu externe.
ENT_HTML401 | Gère le code comme étant du HTML 4.01.
ENT_XML1 | Gère le code comme étant du XML 1.
ENT_XHTML | Gère le code comme étant du XHTML.
ENT_HTML5 | Gère le code comme étant du HTML 5.

encoding

Un argument optionnel définissant l'encodage utilisé lors de la convertion des caractères.

Si omis, la valeur par défaut du paramètre encoding varie suivant la version PHP utilisée. En PHP 5.6.0 et suivants, l'option de configuration default_charset sera utilisée comme valeur par défaut. En PHP 5.4 et 5.5, UTF-8 sera la valeur par défaut. Pour les versions plus anciennes, PHP utilisera ISO-8859-1.

Malgré le fait que cet argument soit techniquement optionnel, vous êtes vivement encouragé à spécifier la valeur correcte pour votre code si vous utilisez PHP 5.5 ou antérieures, ou si votre option de configuration default_charset a été définie de façon incorrecte pour l'entrée fournie.

Pour cette fonction, les encodages ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252, et KOI8-R sont équivalents, à condition que le paramètre string soit valable pour l'encodage, dans le sens où les caractères affectés par la fonction htmlspecialchars() occupent la même position dans tous ces encodages.

Les jeux de caractères suivants sont supportés :

Jeux de caractères supportés
Jeux de caractères | Alias | Description
ISO-8859-1 | ISO8859-1 | Europe occidentale, Latin-1.
ISO-8859-5 | ISO8859-5 | Jeu de caractère cyrillique rarement utilisé (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Europe occidentale, Latin-9. Dispose du signe Euro, des caractères spéciaux français et finlandais, qui manquent au Latin-1 (ISO-8859-1).
UTF-8 | Unicode 8 bits multioctets, compatible avec l'ASCII
cp866 | ibm866, 866 | Jeu de caractères Cyrillique spécifique à DOS.
cp1251 | Windows-1251, win-1251, 1251 | Jeu de caractères Cyrillic spécifique à Windows.
cp1252 | Windows-1252, 1252 | Jeu de caractères spécifique de Windows pour l'Europe occidentale.
KOI8-R | koi8-ru, koi8r | Russe.
BIG5 | 950 | Chinois traditionnel, principalement utilisé à Taïwan.
GB2312 | 936 | Chinois simplifié, officiel.
BIG5-HKSCS | Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japonais
EUC-JP | EUCJP, eucJP-win | Japonais
MacRoman | Jeu de caractères utilisé par Mac OS.
'' Une chaîne vide active la détection de l'encodage depuis un script (multi-octet Zend), default_charset et la locale courante (voir nl_langinfo() et setlocale()), dans cet ordre. Non recommandé.

Note: Les autres jeux de caractères ne sont pas reconnus. L'encodage par défaut sera utilisé à la place et une alerte sera émise.

double_encode

Lorsque le paramètre double_encode est désactivé, PHP n'encodera pas les entités html existants ; par défaut, tout est converti.

Valeurs de retour

La chaîne convertie.

Si la chaîne d'entrée string contient une séquence de code invalide dans le paramètre encoding fourni, une chaîne vide sera retournée à moins que le drapeau ENT_IGNORE ou le drapeau ENT_SUBSTITUTE ne soit défini.

Historique

Version | Description
5.6.0 | La valeur par défaut pour le paramètre encoding a été modifiée pour être la valeur de l'option de configuration default_charset.
5.4.0 | La valeur par défaut du paramètre encoding est passée à UTF-8.
5.4.0 | Les constantes ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.
5.3.0 | La constante ENT_IGNORE a été ajoutée.
5.2.3 | Ajout du paramètre double_encode.

Exemples

Exemple #1 Exemple avec htmlspecialchars()

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

Notes

Note:

Notez que cette fonction ne fait aucun autre remplacement que ceux qui sont listés ci-dessus. Pour faire un remplacement total, voyez plutôt htmlentities().

Voir aussi

  • get_html_translation_table() - Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities
  • htmlspecialchars_decode() - Convertit les entités HTML spéciales en caractères
  • strip_tags() - Supprime les balises HTML et PHP d'une chaîne
  • htmlentities() - Convertit tous les caractères éligibles en entités HTML
  • nl2br() - Insère un retour à la ligne HTML à chaque nouvelle ligne


Rassemble les éléments d'un tableau en une chaîne

  • « htmlspecialchars
  • join »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Rassemble les éléments d'un tableau en une chaîne

implode

(PHP 4, PHP 5, PHP 7)

implode — Rassemble les éléments d'un tableau en une chaîne

Description

string implode ( string $glue , array $pieces )
string implode ( array $pieces )

Rassemble les éléments d'un tableau en une chaîne.

Note:

implode() peut, pour des raisons historiques, accepter les paramètres dans un sens ou dans l'autre. Pour des raisons de cohérence avec explode(), toutefois, il est préférable d'utiliser l'ordre des arguments tels que documenté.

Liste de paramètres

glue

Par défaut, une chaîne vide.

pieces

Le tableau de chaînes à rassembler.

Valeurs de retour

Retourne une chaîne contenant la représentation en chaîne de caractères de tous les éléments du tableau pieces, dans le même ordre, avec la chaîne glue, placée entre deux éléments.

Exemples

Exemple #1 Exemple avec implode()

<?php

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

// Chaîne vide lors de l'emploi d'un tableau vide :
var_dump(implode('hello', array())); // string(0) ""

?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • explode() - Coupe une chaîne en segments
  • preg_split() - Éclate une chaîne par expression rationnelle
  • http_build_query() - Génère une chaîne de requête en encodage URL


Alias de implode

  • « implode
  • lcfirst »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Alias de implode

join

(PHP 4, PHP 5, PHP 7)

join — Alias de implode()

Description

Cette fonction est un alias de : implode().


Met le premier caractère en minuscule

  • « join
  • levenshtein »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Met le premier caractère en minuscule

lcfirst

(PHP 5 >= 5.3.0, PHP 7)

lcfirst — Met le premier caractère en minuscule

Description

string lcfirst ( string $str )

Retourne une chaîne dont le premier caractère de str a été mis en minuscule, si ce caractère est un caractère alphabétique.

Notez que 'alphabétique' est déterminé par la locale courante. Actuellement, dans la locale par défaut "C", les caractères comme a-umlaut (ä) ne seront pas convertis.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne résultante.

Exemples

Exemple #1 Exemple avec lcfirst()

<?php
$foo = 'HelloWorld';
$foo = lcfirst($foo);             // helloWorld

$bar = 'HELLO WORLD!';
$bar = lcfirst($bar);             // hELLO WORLD!
$bar = lcfirst(strtoupper($bar)); // hELLO WORLD!
?>

Voir aussi

  • ucfirst() - Met le premier caractère en majuscule
  • strtolower() - Renvoie une chaîne en minuscules
  • strtoupper() - Renvoie une chaîne en majuscules
  • ucwords() - Met en majuscule la première lettre de tous les mots


Calcule la distance Levenshtein entre deux chaînes

  • « lcfirst
  • localeconv »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Calcule la distance Levenshtein entre deux chaînes

levenshtein

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

levenshtein — Calcule la distance Levenshtein entre deux chaînes

Description

int levenshtein ( string $str1 , string $str2 )
int levenshtein ( string $str1 , string $str2 , int $cost_ins , int $cost_rep , int $cost_del )

La distance Levenshtein est définie comme le nombre minimal de caractères qu'il faut remplacer, insérer ou supprimer pour transformer la chaîne str1 en str2. La complexité de l'algorithme est en O(m*n), où n et m sont les tailles respectives de str1 et str2 : c'est plutôt bien, en comparaison de similar_text(), qui est en O(max(n,m)**3), mais cela reste très coûteux.

Dans sa forme la plus simple, levenshtein() va prendre uniquement deux chaînes de caractères comme paramètres, et calculer simplement le nombre d'insertions, de remplacements et d'effacements nécessaires pour transformer str1 en str2.

La deuxième variante de la fonction prend trois paramètres supplémentaires qui représentent les coûts d'insertions, de remplacements et d'effacements. C'est une version plus générale de la première fonction, mais qui est un peu moins efficace.

Liste de paramètres

str1

Une des chaînes à évaluer.

str2

Une des chaînes à évaluer.

cost_ins

Définit le coût de l'insertion.

cost_rep

Définit le coût du remplacement.

cost_del

Définit le coût de l'effacement.

Valeurs de retour

Retourne la distance Levenshtein entre deux chaînes de caractères. Elle retournera -1 si l'un des deux arguments contient plus de 255 caractères.

Exemples

Exemple #1 Exemple avec levenshtein()

<?php
// mot mal orthographié
$input = 'carrrot';

// tableau de mots à vérifier
$words  = array('apple','pineapple','banana','orange',
                'radish','carrot','pea','bean','potato');

// aucune distance de trouvée pour le moment
$shortest = -1;

// boucle sur les mots pour trouver le plus près
foreach ($words as $word) {

    // calcule la distance avec le mot mis en entrée,
    // et le mot courant
    $lev = levenshtein($input, $word);

    // cherche une correspondance exacte
    if ($lev == 0) {

        // le mot le plus près est celui-ci (correspondance exacte)
        $closest = $word;
        $shortest = 0;

        // on sort de la boucle ; nous avons trouvé une correspondance exacte
        break;
    }

    // Si la distance est plus petite que la prochaine distance trouvée
    // OU, si le prochain mot le plus près n'a pas encore été trouvé
    if ($lev <= $shortest || $shortest < 0) {
        // définition du mot le plus près ainsi que la distance
        $closest  = $word;
        $shortest = $lev;
    }
}

echo "Mot entré : $input\n";
if ($shortest == 0) {
    echo "Correspondance exacte trouvée : $closest\n";
} else {
    echo "Vous voulez dire : $closest ?\n";
}

?>

L'exemple ci-dessus va afficher :

Mot entré : carrrot
Vous voulez dire : carrot ?

Voir aussi

  • soundex() - Calcule la clé soundex
  • similar_text() - Calcule la similarité de deux chaînes
  • metaphone() - Calcule la clé metaphone


Lit la configuration locale

  • « levenshtein
  • ltrim »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Lit la configuration locale

localeconv

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

localeconv — Lit la configuration locale

Description

array localeconv ( void )

Retourne un tableau associatif contenant les informations de formats localisées pour les nombres et la monnaie.

Valeurs de retour

localeconv() retourne les formats en fonction de la configuration effectuée avec setlocale(). Le tableau associatif qui est retourné contient les index suivants :

Index du tableau | Description
decimal_point | Séparateur décimal
thousands_sep | Séparateur de milliers
grouping | Tableau contenant les regroupements numériques
int_curr_symbol | Symbole monétaire international (i.e. EUR)
currency_symbol | Symbole monétaire local (i.e. ¤)
mon_decimal_point | Séparateur décimal monétaire
mon_thousands_sep | Séparateur de milliers monétaires
mon_grouping | Tableau contenant les regroupements numériques monétaires
positive_sign | Signe des valeurs positives
negative_sign | Signe des valeurs négatives
int_frac_digits | Nombre international de décimales
frac_digits | Nombre local de décimales
p_cs_precedes | TRUE si le currency_symbol précède une valeur positive et FALSE s'il lui succède.
p_sep_by_space | TRUE si un espace sépare currency_symbol d'une valeur positive, et FALSE sinon.
n_cs_precedes | TRUE si currency_symbol précède une valeur négative, et FALSE s'il lui succède.
n_sep_by_space | TRUE si un espace sépare currency_symbol d'une valeur négative, et FALSE sinon.
p_sign_posn
  • 0 - Des parenthèses entourent la valeur et le symbole monétaire
  • 1 - Le signe précède la valeur et le symbole monétaire
  • 2 - Le signe suit la valeur et le symbole monétaire
  • 3 - Le signe précède immédiatement la valeur et le symbole monétaire
  • 4 - Le signe suit immédiatement la valeur et le symbole monétaire
n_sign_posn
  • 0 - Des parenthèses entourent la valeur et le symbole monétaire
  • 1 - Le signe précède la valeur et le symbole monétaire
  • 2 - Le signe suit la valeur et le symbole monétaire
  • 3 - Le signe précède immédiatement la valeur et le symbole monétaire
  • 4 - Le signe suit immédiatement la valeur et le symbole monétaire

Les champs p_sign_posn et n_sign_posn contiennent une chaîne formatée d'options. Chaque nombre représente une des conditions listées ci-dessus.

Les champs de regroupements contiennent des tableaux qui définissent la manière dont les nombres doivent être regroupés. Par exemple, le champ de regroupement monétaire pour nl_NL (en mode UTF-8 avec le signe euro), contiendra deux éléments, avec les valeurs 3 et 3. Si un élément de tableau contient CHAR_MAX, aucun autre regroupement n'est fait. Si un élément de tableau contient 0, l'élément précédent doit être utilisé.

Exemples

Exemple #1 Exemple avec localeconv()

<?php
if (false !== setlocale(LC_ALL, 'nl_NL.UTF-8@euro')) {
    $locale_info = localeconv();
    print_r($locale_info);
}
?>

L'exemple ci-dessus va afficher :

Array
(
    [decimal_point] => .
    [thousands_sep] =>
    [int_curr_symbol] => EUR
    [currency_symbol] => ¤
    [mon_decimal_point] => ,
    [mon_thousands_sep] =>
    [positive_sign] =>
    [negative_sign] => -
    [int_frac_digits] => 2
    [frac_digits] => 2
    [p_cs_precedes] => 1
    [p_sep_by_space] => 1
    [n_cs_precedes] => 1
    [n_sep_by_space] => 1
    [p_sign_posn] => 1
    [n_sign_posn] => 2
    [grouping] => Array
        (
        )

    [mon_grouping] => Array
        (
            [0] => 3
            [1] => 3
        )

)

Voir aussi

  • setlocale() - Modifie les informations de localisation


Supprime les espaces (ou d'autres caractères) de début de chaîne

  • « localeconv
  • md5_file »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Supprime les espaces (ou d'autres caractères) de début de chaîne

ltrim

(PHP 4, PHP 5, PHP 7)

ltrim — Supprime les espaces (ou d'autres caractères) de début de chaîne

Description

string ltrim ( string $str [, string $character_mask ] )

Supprime les espaces (ou d'autres caractères) de début de chaîne.

Liste de paramètres

str

La chaîne d'entrée.

character_mask

Il est aussi possible de spécifier les caractères à supprimer en utilisant le paramètre character_mask. Listez simplement les caractères que vous voulez supprimer dans ce paramètre. Avec .., vous pourrez spécifier des intervalles de caractères.

Valeurs de retour

Cette fonction retourne la chaîne str, après avoir supprimé les caractères invisibles de début de chaîne. Si le second paramètre charlist a été omis, ltrim() supprimera les caractères suivants :

  • " " (ASCII 32 (0x20)), un espace ordinaire.
  • "\t" (ASCII 9 (0x09)), une tabulation.
  • "\n" (ASCII 10 (0x0A)), une nouvelle ligne (line feed).
  • "\r" (ASCII 13 (0x0D)), un retour chariot (carriage return).
  • "\0" (ASCII 0 (0x00)), le caractère NUL.
  • "\x0B" (ASCII 11 (0x0B)), une tabulation verticale.

Exemples

Exemple #1 Exemple avec ltrim()

<?php

$text = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = ltrim($text);
var_dump($trimmed);

$trimmed = ltrim($text, " \t.");
var_dump($trimmed);

$trimmed = ltrim($hello, "Hdle");
var_dump($trimmed);

// Supprime les caractères de contrôle ASCII du début de $binary
// (de 0 à 31, inclusif)
$clean = ltrim($binary, "\x00..\x1F");
var_dump($clean);

?>

L'exemple ci-dessus va afficher :

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "These are a few words :) ...  "
string(30) "These are a few words :) ...  "
string(7) "o World"
string(15) "Example string
"

Voir aussi

  • trim() - Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
  • rtrim() - Supprime les espaces (ou d'autres caractères) de fin de chaîne


Calcule le md5 d'un fichier

  • « ltrim
  • md5 »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Calcule le md5 d'un fichier

md5_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

md5_file — Calcule le md5 d'un fichier

Description

string md5_file ( string $filename [, bool $raw_output = false ] )

md5_file() calcule le MD5 du fichier filename en utilisant l'algorithme » RSA Data Security, Inc. MD5 Message-Digest Algorithm, puis retourne la valeur ainsi calculée. Le résultat est un nombre de 32 caractères hexadécimaux.

Liste de paramètres

filename

Le nom du fichier

raw_output

Lorsque TRUE, retourne le prétraitement en format binaire brut avec une grandeur de 16.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, FALSE autrement.

Historique

Version | Description
5.1.0 | La fonction a changé pour utiliser les flux API. Cela signifie que vous pouvez l'utiliser avec des enveloppes, comme md5_file('http://example.com/..')

Exemples

Exemple #1 Exemple d'utilisation de md5_file()

<?php
$file = 'php-5.3.0alpha2-Win32-VC9-x64.zip';

echo 'La signature MD5 du fichier ' . $file . ' est ' . md5_file($file);
?>

Voir aussi

  • md5() - Calcule le md5 d'une chaîne
  • sha1_file() - Calcule le sha1 d'un fichier
  • crc32() - Calcule la somme de contrôle CRC32


Calcule le md5 d'une chaîne

  • « md5_file
  • metaphone »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Calcule le md5 d'une chaîne

md5

(PHP 4, PHP 5, PHP 7)

md5 — Calcule le md5 d'une chaîne

Description

string md5 ( string $str [, bool $raw_output = false ] )

Calcule le MD5 de la chaîne de caractères str en utilisant l'algorithme » RSA Data Security, Inc. MD5 Message-Digest Algorithm, et retourne le résultat.

Liste de paramètres

str

La chaîne.

raw_output

Si le paramètre optionnel raw_output est défini à TRUE, alors le md5 est retourné au format binaire brut avec une longueur de 16.

Valeurs de retour

Retourne le md5 de la chaîne, sous la forme d'un nombre hexadécimal de 32 caractères.

Exemples

Exemple #1 Exemple avec md5()

<?php
$str = 'apple';

if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo "Voulez-vous une golden ou une spartan?";
}
?>

Notes

Note: Secure password hashing

It is not recommended to use this function to secure passwords, due to the fast nature of this hashing algorithm. See here for details.

Voir aussi

  • md5_file() - Calcule le md5 d'un fichier
  • sha1_file() - Calcule le sha1 d'un fichier
  • crc32() - Calcule la somme de contrôle CRC32
  • sha1() - Calcule le sha1 d'une chaîne de caractères
  • hash() - Génère une valeur de hachage (empreinte numérique)
  • crypt() - Hachage à sens unique (indéchiffrable)
  • password_hash() - Crée une clé de hachage pour un mot de passe


Calcule la clé metaphone

  • « md5
  • money_format »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Calcule la clé metaphone

metaphone

(PHP 4, PHP 5, PHP 7)

metaphone — Calcule la clé metaphone

Description

string metaphone ( string $str [, int $phonemes = 0 ] )

Calcule la clé metaphone de str.

metaphone() est similaire à la fonction soundex() : elle créée une clé similaire pour des mots dont la prononciation est proche. C'est une fonction qui est plus précise que soundex() car elle prend en compte la prononciation anglaise. La clé metaphone générée est de taille variable.

Metaphone a été développée par Lawrence Philips <lphilips at verity dot com>. Cette méthode est décrite dans le livre ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

Liste de paramètres

str

La chaîne d'entrée.

phonemes

Ce paramètre restreint la clé métaphone retournée à une longueur de phonemes caractères. La valeur par défaut est 0, ce qui signifie qu'aucune limitation ne sera appliquée.

Valeurs de retour

Retourne la clé metaphone, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec metaphone()

<?php
var_dump(metaphone('programming'));
var_dump(metaphone('programmer'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(7) "PRKRMNK"
string(6) "PRKRMR"

Exemple #2 Utilisation du paramètre phonemes

<?php
var_dump(metaphone('programming', 5));
var_dump(metaphone('programmer', 5));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(5) "PRKRM"
string(5) "PRKRM"


Met un nombre au format monétaire

  • « metaphone
  • nl_langinfo »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Met un nombre au format monétaire

money_format

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

money_format — Met un nombre au format monétaire

Description

string money_format ( string $format , float $number )

money_format() retourne une version formatée du nombre number. Cette fonction fait l'interface avec la fonction strfmon() de la bibliothèque C, à la différence près que cette implémentation ne convertit qu'un nombre à la fois.

Liste de paramètres

format

Le paramètre de format est constitué de la séquence suivante :

  • un caractère %

  • une configuration optionnelle

  • une taille de champ optionnelle

  • une précision à gauche optionnelle

  • une précision à droite optionnelle

  • un caractère de conversion obligatoire

Drapeaux

Une ou plusieurs des configurations suivantes sont utilisables :

=f

Le caractère = suivi par un octet unique f qui sera utilisé comme caractère de remplissage. Le caractère de remplissage par défaut est espace.

^

Désactive le groupage de caractères (tel que défini dans la configuration locale).

+ ou (

Spécifie le style de formatage pour les nombres positifs et négatifs. Si + est utilisé, les équivalents dans la configuration locale de + et - seront utilisés. Si ( est utilisé, les sommes négatives seront placées entre parenthèses. Si aucune spécification n'est fournie, la valeur par défaut est +.

!

Supprime le simple monétaire dans la chaîne finale.

-

Si fourni, cette configuration fait que les champs seront justifiés à gauche (complétés à droite), au contraire de la configuration par défaut qui est justifiée à droite, et complétée à gauche.

Taille du champ

w

Un nombre décimal qui spécifie la taille minimale du champ. Le champ sera complété à gauche, à moins que la configuration - ne soit utilisée. Par défaut, cette valeur est de 0.

Précision à gauche

#n

Le nombre maximal de chiffres (n) attendus à gauche du séparateur décimal (e.g. la virgule). Cette option est généralement utilisée pour conserver l'alignement de colonnes de nombres, en utilisant un caractère pour compléter le nombre si ce dernier a moins de n chiffres. Si le nombre réel de chiffres est plus grand que n, cette spécification est ignorée.

Si le groupage n'a pas été supprimé via la configuration ^, les séparateurs de groupage seront insérés avant le caractère de remplissage (le cas échéant). Les séparateurs ne seront pas appliqués aux caractères de remplissage, même si ce caractère est un nombre.

Pour s'assurer de l'alignement, tous les caractères apparaissant avant et après le nombre formaté, tels que les symboles monétaires ou les signes négatif et positif, seront placés au même endroit grâce à des espaces supplémentaires, afin que toutes les tailles des nombres soient les mêmes.

Précision à droite

.p

Un point suivi par un nombre de décimales (p). Si la valeur de p est 0 (zéro), le séparateur décimal et les décimales seront supprimés. Si aucune précision à droite n'est précisée, la valeur par défaut sera lue dans la configuration locale. Le nombre formaté sera alors arrondi pour satisfaire les contraintes d'affichage.

Caractères de conversion

i

Le nombre est formaté suivant le format monétaire international de la configuration locale (e.g. pour la France : 1 234,56 F).

n

Le nombre est formaté en fonction du format monétaire national (e.g. pour la configuration de_DE : EU1.234,56).

%

Retourne le caractère %.

number

Le nombre à formater.

Valeurs de retour

Retourne la chaîne formatée. Les caractères avant et après la chaîne formatée seront retournés, inchangés. Une valeur non-numérique pour number retourne NULL et émet une alerte E_WARNING.

Notes

Note:

La fonction money_format() est uniquement définie si le système a les capacités strfmon. Par exemple, Windows ne les a pas, donc, money_format() n'est pas définie sous Windows.

Note:

La catégorie LC_MONETARY de la configuration locale affecte le comportement de cette fonction. Utilisez setlocale() pour configurer correctement PHP avant d'utiliser cette fonction.

Exemples

Exemple #1 Exemple avec money_format()

Voici plusieurs exemples d'utilisation de la fonction money_format() avec différentes chaînes de formatage, et configurations locales.

<?php

$number = 1234.56;

// Affichons ce nombre au format international pour en_US
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number) . "\n";
// USD 1,234.56

// Et au format italien national avec 2 decimales
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number) . "\n";
// L. 1.234,56

// Utilisation d'un nombre négatif
$number = -1234.5672;

// Format US national, avec les parenthèeses pour les nombres négatifs
// et 10 chiffres de précision à gauche
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number) . "\n";
// ($        1,234.57)

// Format similaire au précédent, en ajoutant 2 décimales
// pour la précision à droite, et en utilisant le caractère de remplissage '*'
echo money_format('%=*(#10.2n', $number) . "\n";
// ($********1,234.57)

// Utilisons maintenant la justification à gauche, avec un champ de 14 caractères
// de long, sans groupage de chiffres, et en utilisant le format international
// pour de_DE
setlocale(LC_MONETARY, 'de_DE');
echo money_format('%=*^-14#8.2i', 1234.56) . "\n";
// DEM 1234,56****

// Ajoutons encore à l'exemple précédent
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'La valeur finale est %i (après 10 %% de remise)';
echo money_format($fmt, 1234.56) . "\n";
// La valeur finale est GBP 1,234.56 (après 10 % de remise)

?>

Voir aussi

  • setlocale() - Modifie les informations de localisation
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • sprintf() - Retourne une chaîne formatée
  • printf() - Affiche une chaîne de caractères formatée
  • number_format() - Formate un nombre pour l'affichage


Rassemble des informations sur la langue et la configuration locale

  • « money_format
  • nl2br »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Rassemble des informations sur la langue et la configuration locale

nl_langinfo

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

nl_langinfo — Rassemble des informations sur la langue et la configuration locale

Description

string nl_langinfo ( int $item )

nl_langinfo() est utilisée pour accéder à chaque élément de la configuration locale. Contrairement à la fonction localeconv() qui renvoie tous les éléments, nl_langinfo() vous permet de sélectionner un élément précis.

Liste de paramètres

item

item peut être la valeur entière d'un élément, ou le nom de sa constante. Voici une liste des noms de constantes pour item qui peuvent être utilisés et leur description. Certaines constantes peuvent ne pas être définies, ou ne contenir aucune valeur pour certaines locales.

Constantes nl_langinfo()
Constante | Description
Constantes de la catégorie LC_TIME
ABDAY_(1-7) | Nom court du jour de la semaine.
DAY_(1-7) | Nom du jour de la semaine (DAY_1 = Dimanche).
ABMON_(1-12) | Nom abrégé du mois de l'année.
MON_(1-12) | Nom du mois de l'année.
AM_STR | Chaîne pour Ante meridian.
PM_STR | Chaîne pour Post meridian.
D_T_FMT | Chaîne pouvant être utilisée comme chaîne de formatage pour la fonction strftime() pour représenter la date et l'heure.
D_FMT | Chaîne pouvant être utilisée comme chaîne de formatage pour la fonction strftime() pour représenter la date.
T_FMT | Chaîne pouvant être utilisée comme chaîne de formatage pour la fonction strftime() pour représenter l'heure.
T_FMT_AMPM | Chaîne pouvant être utilisée comme chaîne de formatage pour la fonction strftime() pour représenter l'heure au format 12 heures, avec ante/post meridian.
ERA | Ère de substitution.
ERA_YEAR | Année dans le format d'ère de substitution.
ERA_D_T_FMT | Date et heure dans le format d'ère de substitution (chaîne pouvant être utilisée dans la fonction strftime()).
ERA_D_FMT | Date dans le format d'ère de substitution (chaîne pouvant être utilisée dans la fonction strftime()).
ERA_T_FMT | Heure dans le format d'ère de substitution (chaîne pouvant être utilisée dans la fonction strftime()).
Constantes de la catégorie LC_MONETARY
INT_CURR_SYMBOL | Symbole monétaire international.
CURRENCY_SYMBOL | Symbole monétaire local.
CRNCYSTR | Même valeur que CURRENCY_SYMBOL.
MON_DECIMAL_POINT | Caractère de virgule décimale.
MON_THOUSANDS_SEP | Séparateur de centaine (groupes de trois lettres).
MON_GROUPING | Comme l'élément "grouping".
POSITIVE_SIGN | Signe pour les valeurs positives.
NEGATIVE_SIGN | Signe pour les valeurs négatives.
INT_FRAC_DIGITS | Chiffres partiels internationaux.
FRAC_DIGITS | Chiffres partiels locaux.
P_CS_PRECEDES | Retourne 1 si CURRENCY_SYMBOL précède une valeur positive.
P_SEP_BY_SPACE | Retourne 1 si un espace sépare CURRENCY_SYMBOL d'une valeur positive.
N_CS_PRECEDES | Retourne 1 si CURRENCY_SYMBOL précède une valeur négative.
N_SEP_BY_SPACE | Retourne 1 si un espace sépare CURRENCY_SYMBOL d'une valeur négative.
P_SIGN_POSN
  • Retourne 0 si des parenthèses entourent la quantité et CURRENCY_SYMBOL.
  • Retourne 1 si la chaîne de signes précède la quantité et CURRENCY_SYMBOL.
  • Retourne 2 si la chaîne de signes suit la quantité et CURRENCY_SYMBOL.
  • Retourne 3 si la chaîne de signes précède immédiatement le CURRENCY_SYMBOL.
  • Retourne 4 si la chaîne de signes suit immédiatement le CURRENCY_SYMBOL.
N_SIGN_POSN
Constantes de la catégorie LC_NUMERIC
DECIMAL_POINT | Caractère de virgule décimale.
RADIXCHAR | Même valeur que DECIMAL_POINT.
THOUSANDS_SEP | Caractère de séparation des centaines (groupe de trois lettres).
THOUSEP | Même valeur que THOUSANDS_SEP.
GROUPING
Constantes de la catégorie LC_MESSAGES
YESEXPR | Chaîne d'expression rationnelle pour chercher l'entrée "yes".
NOEXPR | Chaîne d'expression rationnelle pour chercher l'entrée "no".
YESSTR | Affichage de la chaîne pour "yes".
NOSTR | Affichage de la chaîne pour "no".
Constantes de la catégorie LC_CTYPE
CODESET | Retourne une chaîne de caractères avec le nom du jeux de caractères.

Valeurs de retour

Retourne l'élément, sous la forme d'une chaîne de caractères ou FALSE si le paramètre item n'est pas valide.

Notes

Note: Cette fonction n'est pas implémentée sous Windows.

Voir aussi

  • setlocale() - Modifie les informations de localisation
  • localeconv() - Lit la configuration locale


Insère un retour à la ligne HTML à chaque nouvelle ligne

  • « nl_langinfo
  • number_format »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Insère un retour à la ligne HTML à chaque nouvelle ligne

nl2br

(PHP 4, PHP 5, PHP 7)

nl2br — Insère un retour à la ligne HTML à chaque nouvelle ligne

Description

string nl2br ( string $string [, bool $is_xhtml = true ] )

Retourne string après avoir inséré <br /> ou <br> devant toutes les nouvelles lignes (\r\n, \n\r, \n et \r).

Liste de paramètres

string

La chaîne d'entrée.

is_xhtml

Produit des césures compatibles XHTML ou non.

Valeurs de retour

Retourne la chaîne modifiée.

Exemples

Exemple #1 Exemple avec nl2br()

<?php
echo nl2br("foo isn't\n bar");
?>

L'exemple ci-dessus va afficher :

foo isn't<br />
 bar

Exemple #2 Génération de code HTML valide avec le paramètre is_xhtml

<?php
echo nl2br("Welcome\r\nThis is my HTML document", false);
?>

L'exemple ci-dessus va afficher :

Welcome<br>
This is my HTML document

Exemple #3 Divers séparateurs de nouvelles lignes

<?php
$string = "Ceci\r\nest\n\rune\nchaîne\r";
echo nl2br($string);
?>

L'exemple ci-dessus va afficher :

Ceci<br />
est<br />
une<br />
chaîne<br />

Historique

Version | Description
5.3.0 | Ajout du paramètre optionnel is_xhtml. Avant cette version, La balise '<br />' était toujours insérée.

Voir aussi

  • htmlspecialchars() - Convertit les caractères spéciaux en entités HTML
  • htmlentities() - Convertit tous les caractères éligibles en entités HTML
  • wordwrap() - Effectue la césure d'une chaîne
  • str_replace() - Remplace toutes les occurrences dans une chaîne


Formate un nombre pour l'affichage

  • « nl2br
  • ord »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Formate un nombre pour l'affichage

number_format

(PHP 4, PHP 5, PHP 7)

number_format — Formate un nombre pour l'affichage

Description

string number_format ( float $number [, int $decimals = 0 ] )
string number_format ( float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = "," )

Cette fonction accepte un, deux, ou quatre paramètres (et pas trois) :

Si seul le paramètre number est donné, il sera formaté sans partie décimale, mais avec une virgule entre chaque millier.

Si les deux paramètres number et decimals sont fournis, number sera formaté avec decimals décimales, un point (".") comme séparateur décimal et une virgule entre chaque millier.

Avec quatre paramètres, number sera formaté avec decimals décimales, dec_point comme séparateur décimal, et thousands_sep comme séparateur de milliers.

Liste de paramètres

number

Le nombre à formater.

decimals

Définit le nombre de décimales.

dec_point

Définit le séparateur pour le point décimal.

thousands_sep

Définit le séparateur des milliers.

Valeurs de retour

Une version formatée du nombre number.

Historique

Version | Description
5.4.0 | Cette fonction supporte maintenant des paramètres dec_point et thousands_sep comportant plusieurs caractères. Seul le premier caractère était utilisé avant.

Exemples

Exemple #1 Exemple avec number_format()

En notation française, on utilise généralement deux chiffres après la virgule, une virgule comme séparateur décimal, et un espace comme séparateur de milliers. Cela donne :

<?php

$number = 1234.56;

// Notation anglaise (par défaut)
$english_format_number = number_format($number);
// 1,235

// Notation française
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// Notation anglaise sans séparateur de milliers
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

Voir aussi

  • money_format() - Met un nombre au format monétaire
  • sprintf() - Retourne une chaîne formatée
  • printf() - Affiche une chaîne de caractères formatée
  • sscanf() - Analyse une chaîne à l'aide d'un format


Retourne le code ASCII d'un caractère

  • « number_format
  • parse_str »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Retourne le code ASCII d'un caractère

ord

(PHP 4, PHP 5, PHP 7)

ord — Retourne le code ASCII d'un caractère

Description

int ord ( string $string )

Retourne le code ASCII du premier caractère de string.

Cette fonction est le contraire de chr().

Liste de paramètres

string

Un caractère.

Valeurs de retour

Retourne la valeur ASCII, sous la forme d'un entier.

Exemples

Exemple #1 Exemple avec ord()

<?php
$str = "\n";
if (ord($str) == 10) {
  echo "Le premier caractère de \$str est une nouvelle ligne\n";
}
?>

Voir aussi

  • chr() - Retourne un caractère à partir de son code ASCII
  • » Table ASCII


Analyse une requête HTTP

  • « ord
  • print »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Analyse une requête HTTP

parse_str

(PHP 4, PHP 5, PHP 7)

parse_str — Analyse une requête HTTP

Description

void parse_str ( string $str [, array &$arr ] )

Analyse la chaîne de caractères str comme s'il s'agissait des paramètres passés via l'URL. Toutes les variables qu'elle y repère sont alors créées, avec leurs valeurs respectives.

Note:

Pour accéder à l'URL appelante QUERY_STRING, vous devez utiliser la variable $_SERVER['QUERY_STRING']. Il est aussi intéressant de lire la section sur les variables de sources externes.

Note:

La configuration de magic_quotes_gpc affecte l'affichage de cette fonction car parse_str() utilise le même mécanisme que PHP utilise pour propager les variables $_GET, $_POST, etc.

Liste de paramètres

str

La chaîne d'entrée.

arr

Si le second paramètre arr est fourni, les variables y seront stockées, sous forme d'index de tableau.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec parse_str()

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

?>

Voir aussi

  • parse_url() - Analyse une URL et retourne ses composants
  • pathinfo() - Retourne des informations sur un chemin système
  • http_build_query() - Génère une chaîne de requête en encodage URL
  • get_magic_quotes_gpc() - Retourne la configuration actuelle de l'option magic_quotes_gpc
  • urldecode() - Décode une chaîne encodée URL


Affiche une chaîne de caractères

  • « parse_str
  • printf »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Affiche une chaîne de caractères

print

(PHP 4, PHP 5, PHP 7)

print — Affiche une chaîne de caractères

Description

int print ( string $arg )

Affiche le paramètre arg.

print n'est pas vraiment une fonction (c'est techniquement une structure de langage). Cela fait que vous n'êtes pas obligé d'utiliser des parenthèses.

La seule différence avec echo est que print n'accepte qu'un seul argument.

Liste de paramètres

arg

Les données d'entrée.

Valeurs de retour

Retourne 1, toujours.

Exemples

Exemple #1 Exemple avec print

<?php
print("Bonjour le monde");

print "print() fonctionne aussi sans les parenthèses.";

print "Ce print() se
répartit sur plusieurs lignes. Il affiche aussi les
nouvelles lignes";

print "Ce print() se\nrépartit sur plusieurs lignes. Il affiche aussi les\nnouvelles lignes";

print "L'échappement de caractères se fait : \"comme ceci\".";

// Vous pouvez utiliser des variables avec print
$foo = "foobar";
$bar = "barbaz";

print "foo vaut $foo"; // foo vaut foobar

// Vous pouvez aussi utiliser des tableaux
$bar = array("clé" => "foo");

print "c'est {$bar['clé']} !"; // c'est foo !

// Les guillemets simples annulent le remplacement des variables
print 'foo vaut $foo'; // foo vaut $foo

// Si vous n'utilisez pas d'autres caractères, vous
// pouvez afficher simplement vos variables comme ceci
print $foo; // foobar

print <<<END
Cette syntaxe s'intitule le "here document" et
permet d'afficher plusieurs lignes avec de
l'interpolation de variables. Notez que la fin de
la syntaxe doit apparaître sur une nouvelle ligne,
avec uniquement un point-virgule, et pas d'espace
de plus !
END;
?>

Notes

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Voir aussi

  • echo - Affiche une chaîne de caractères
  • printf() - Affiche une chaîne de caractères formatée
  • flush() - Vide les tampons de sortie du système
  • Syntaxe Heredoc


Affiche une chaîne de caractères formatée

  • « print
  • quoted_printable_decode »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Affiche une chaîne de caractères formatée

printf

(PHP 4, PHP 5, PHP 7)

printf — Affiche une chaîne de caractères formatée

Description

int printf ( string $format [, mixed $args [, mixed $... ]] )

Affiche une chaîne de caractères formatée.

Liste de paramètres

format

Voir la documentation de la fonction sprintf() pour une description du paramètre format.

args

...

Valeurs de retour

Retourne la taille de la chaîne affichée.

Voir aussi

  • print - Affiche une chaîne de caractères
  • sprintf() - Retourne une chaîne formatée
  • vprintf() - Affiche une chaîne formatée
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • fscanf() - Analyse un fichier en fonction d'un format
  • flush() - Vide les tampons de sortie du système


Convertit une chaîne quoted-printable en chaîne 8 bits

  • « printf
  • quoted_printable_encode »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit une chaîne quoted-printable en chaîne 8 bits

quoted_printable_decode

(PHP 4, PHP 5, PHP 7)

quoted_printable_decode — Convertit une chaîne quoted-printable en chaîne 8 bits

Description

string quoted_printable_decode ( string $str )

quoted_printable_decode() retourne la chaîne de caractères str, après l'avoir convertie du format quoted printable binaire 8 bits (en accord avec la » RFC2045, section 6.7, et non pas la » RFC2821, section 4.5.2, pour que les virgules additionnelles ne soient pas effacée du début de la ligne).

Cette fonction est similaire à imap_qprint(), hormis le fait qu'elle n'exige pas le module IMAP pour fonctionner.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne, convertie au format 8-bits.

Voir aussi

  • quoted_printable_encode() - Convertit une chaîne 8 bits en une chaîne quoted-printable


Convertit une chaîne 8 bits en une chaîne quoted-printable

  • « quoted_printable_decode
  • quotemeta »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit une chaîne 8 bits en une chaîne quoted-printable

quoted_printable_encode

(PHP 5 >= 5.3.0, PHP 7)

quoted_printable_encode — Convertit une chaîne 8 bits en une chaîne quoted-printable

Description

string quoted_printable_encode ( string $str )

Retourne une chaîne quoted printable créée suivant les règles de » RFC2045, section 6.7.

Cette fonction est similaire à imap_8bit(), sauf qu'elle ne requiert pas de module IMAP pour fonctionner.

Liste de paramètres

str

La chaîne à traiter.

Valeurs de retour

La chaîne encodée.

Voir aussi

  • quoted_printable_decode() - Convertit une chaîne quoted-printable en chaîne 8 bits
  • iconv_mime_encode() - Construit un en-tête MIME avec les champs field_name et field_value


Protège les métacaractères

  • « quoted_printable_encode
  • rtrim »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Protège les métacaractères

quotemeta

(PHP 4, PHP 5, PHP 7)

quotemeta — Protège les métacaractères

Description

string quotemeta ( string $str )

Retourne la chaîne str après avoir introduit un antislash (\) devant tous les caractères suivants :

. \ + * ? [ ^ ] ( $ )

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne dont les métacaractères ont été protégés ou FALSE si une chaîne vide est fournie dans le paramètre str.

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • addslashes() - Ajoute des antislashs dans une chaîne
  • addcslashes() - Ajoute des slash dans une chaîne, à la mode du langage C
  • htmlentities() - Convertit tous les caractères éligibles en entités HTML
  • htmlspecialchars() - Convertit les caractères spéciaux en entités HTML
  • nl2br() - Insère un retour à la ligne HTML à chaque nouvelle ligne
  • stripslashes() - Supprime les antislashs d'une chaîne
  • stripcslashes() - Décode une chaîne encodée avec addcslashes
  • ereg() - Recherche par expression rationnelle standard
  • preg_quote() - Protection des caractères spéciaux des expressions rationnelles


Supprime les espaces (ou d'autres caractères) de fin de chaîne

  • « quotemeta
  • setlocale »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Supprime les espaces (ou d'autres caractères) de fin de chaîne

rtrim

(PHP 4, PHP 5, PHP 7)

rtrim — Supprime les espaces (ou d'autres caractères) de fin de chaîne

Description

string rtrim ( string $str [, string $character_mask ] )

Retourne la chaîne str, après avoir supprimé tous les caractères blancs (ou autres caractères) de fin de chaîne.

Appelée sans le second paramètre, rtrim() supprimera les caractères suivants :

  • " " (ASCII 32 (0x20)), un espace ordinaire.
  • "\t" (ASCII 9 (0x09)), une tabulation.
  • "\n" (ASCII 10 (0x0A)), une nouvelle ligne (line feed).
  • "\r" (ASCII 13 (0x0D)), un retour chariot (carriage return).
  • "\0" (ASCII 0 (0x00)), le caractère NULL.
  • "\x0B" (ASCII 11 (0x0B)), une tabulation verticale.

Liste de paramètres

str

La chaîne d'entrée.

character_mask

Il est aussi possible de spécifier les caractères à supprimer en utilisant le paramètre character_mask. Listez simplement les caractères que vous voulez supprimer dans ce paramètre. Avec .., vous pourrez spécifier des intervalles de caractères.

Valeurs de retour

Retourne la chaîne modifiée.

Exemples

Exemple #1 Exemple avec rtrim()

<?php

$text = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = rtrim($text);
var_dump($trimmed);

$trimmed = rtrim($text, " \t.");
var_dump($trimmed);

$trimmed = rtrim($hello, "Hdle");
var_dump($trimmed);

// enlève les caractères de contrôle ASCII à la fin de $binary
// (de 0 à 31 inclusif)
$clean = rtrim($binary, "\x00..\x1F");
var_dump($clean);

?>

L'exemple ci-dessus va afficher :

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "        These are a few words :) ..."
string(26) "        These are a few words :)"
string(9) "Hello Wor"
string(15) "    Example string"

Voir aussi

  • trim() - Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
  • ltrim() - Supprime les espaces (ou d'autres caractères) de début de chaîne


Modifie les informations de localisation

  • « rtrim
  • sha1_file »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Modifie les informations de localisation

setlocale

(PHP 4, PHP 5, PHP 7)

setlocale — Modifie les informations de localisation

Description

string setlocale ( int $category , string $locale [, string $... ] )
string setlocale ( int $category , array $locale )

Modifie les informations de localisation.

Liste de paramètres

category

category est une constante (ou une chaîne) qui spécifie la catégorie de fonctions affectées par la configuration de localisation :

  • LC_ALL pour toutes les constantes suivantes
  • LC_COLLATE pour la comparaison de chaînes de caractères. Voir strcoll()
  • LC_CTYPE pour la classification et la conversion de caractères. Voir strtoupper()
  • LC_MONETARY pour localeconv()
  • LC_NUMERIC pour le séparateur décimal. Voir localeconv()
  • LC_TIME pour le format de date et d'heure avec strftime()
  • LC_MESSAGES pour les réponses système (disponible si PHP a été compilé avec libintl)

locale

Si locale est NULL ou la chaîne vide (""), les noms de locales seront pris dans l'environnement, à partir des variables de même nom que les catégories ci-dessus, ou depuis "LANG".

Si locale vaut "0", la configuration locale ne sera pas modifiée, et la configuration courante sera retournée.

Si locale est un tableau ou bien est suivi par des paramètres additionnels, alors chaque élément du tableau ou chaque paramètre tente d'être défini comme nouvelle locale jusqu'à ce qu'un réussisse. Cela est pratique si la locale est connue sous différents noms sur des systèmes différents ou bien pour prévoir une autre valeur en cas de non disponibilité de la locale choisie.

...

(Chaîne ou tableau de paramètres optionnel à essayer comme configuration de la locale jusqu'à réussite.)

Note:

Sous Windows, setlocale(LC_ALL, '') définit les noms de la locale depuis la configuration de la langue/de la région du système d'exploitation (accessible depuis le Panneau de Contrôle).

Valeurs de retour

Retourne la nouvelle configuration locale, ou FALSE si la localisation n'est pas implémentée sur votre plate-forme, si la variable de localisation n'existe pas, ou si la catégorie spécifiée n'est pas valide.

Un nom de catégorie invalide générera un message d'alerte. La liste des noms de locales/catégories peut être trouvée en consultant la » RFC 1766 ainsi que l'» ISO 639. Les différentes plates-formes possèdent des conventions de nommages différentes.

Note:

La valeur retournée par setlocale() dépend du système sur lequel PHP est installé. setlocale() retourne exactement ce que la fonction système setlocale retourne.

Historique

Version | Description
7.0.0 | Le support du paramètre category sous forme de chaîne de caractères a été supprimé. Seules les constantes LC_* peuvent être utilisées avec cette version.
5.3.0 | Cette fonction émet désormais une alerte E_DEPRECATED si une chaîne est passée comme paramètre category au lieu d'une des constantes LC_*.

Exemples

Exemple #1 Exemple avec setlocale()

<?php
/* Configure le script en hollandais */
setlocale(LC_ALL, 'nl_NL');

/* Affiche : vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* Essai de différentes valeurs possible pour l'allemand depuis PHP 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "L'identifiant de l'allemand sur ce système est '$loc_de'";
?>

Exemple #2 Exemple avec setlocale() sous Windows

<?php
/* Configure le script en hollandais */
setlocale(LC_ALL, 'nld_nld');

/* Affiche : vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* Essai de différentes valeurs possible pour l'allemand depuis PHP 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "L'identifiant de l'allemand sur ce système est '$loc_de'";
?>

Notes

Avertissement

L'information locale est maintenue par processus, non par thread. Si vous faites fonctionner PHP sur un serveur multi-threadé comme IIS, HHVM ou Apache sur Windows, vous pourriez obtenir des changements soudains des configurations locales pendant qu'un script fonctionne, même si celui-ci n'appelle jamais la fonction setlocale(). Ceci survient à cause des autres scripts qui fonctionnent dans des threads différents du même processus. Ces scripts changent les configurations locales dans le processus au complet en utilisant la fonction setlocale().

Astuce

Les utilisateurs de Windows trouverons des informations utiles à propos du paramètre locale sur le site web MSDN de Microsoft. Les valeurs de locales supportées peuvent être trouvées » sur la page de la documentation des chaînes du langage et les chaînes de pays/région » sur la page de la documentation des chaînes de pays/région.


Calcule le sha1 d'un fichier

  • « setlocale
  • sha1 »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Calcule le sha1 d'un fichier

sha1_file

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

sha1_file — Calcule le sha1 d'un fichier

Description

string sha1_file ( string $filename [, bool $raw_output = false ] )

Calcule le sha1 du fichier spécifié par le paramètre filename en utilisant » US Secure Hash Algorithm 1, puis retourne ce sha1. Le sha1 est un nombre hexadécimal de 40 caractères.

Liste de paramètres

filename

Le nom du fichier à hasher.

raw_output

Lorsque TRUE, retourne le prétraitement en format binaire brut avec une grandeur de 20.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, FALSE autrement.

Exemples

Exemple #1 Exemple avec sha1_file()

<?php
foreach(glob('/home/Kalle/myproject/*.php') as $ent)
{
    if(is_dir($ent))
    {
        continue;
    }

    echo $ent . ' (SHA1: ' . sha1_file($ent) . ')', PHP_EOL;
}
?>

Historique

Version | Description
5.1.0 | La fonction a changé pour utiliser les flux API. Cela signifie que vous pouvez l'utiliser avec des enveloppes, comme sha1_file('http://example.com/..')

Voir aussi

  • sha1() - Calcule le sha1 d'une chaîne de caractères
  • md5_file() - Calcule le md5 d'un fichier
  • crc32() - Calcule la somme de contrôle CRC32


Calcule le sha1 d'une chaîne de caractères

  • « sha1_file
  • similar_text »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Calcule le sha1 d'une chaîne de caractères

sha1

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

sha1 — Calcule le sha1 d'une chaîne de caractères

Description

string sha1 ( string $str [, bool $raw_output = false ] )

Calcule le sha1 de la chaîne de caractères str en utilisant » US Secure Hash Algorithm 1.

Liste de paramètres

str

La chaîne d'entrée.

raw_output

Si le paramètre optionnel raw_output est passé à TRUE, le sha1 est retourné sous forme binaire brute avec une taille de 20 caractères, sinon, il est retourné sous la forme d'un nombre hexadécimal d'une taille de 40 caractères.

Valeurs de retour

Retourne le sha1, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple avec sha1()

<?php
$str = 'pomme';

if (sha1($str) === '752c14ea195c460bac3c3b7896975ee9fd15eeb7') {
    echo "Voulez-vous une golden ou une spartan ?";
}
?>

Notes

Note: Secure password hashing

It is not recommended to use this function to secure passwords, due to the fast nature of this hashing algorithm. See here for details.

Voir aussi

  • sha1_file() - Calcule le sha1 d'un fichier
  • crc32() - Calcule la somme de contrôle CRC32
  • md5() - Calcule le md5 d'une chaîne
  • hash() - Génère une valeur de hachage (empreinte numérique)
  • crypt() - Hachage à sens unique (indéchiffrable)
  • password_hash() - Crée une clé de hachage pour un mot de passe


Calcule la similarité de deux chaînes

  • « sha1
  • soundex »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Calcule la similarité de deux chaînes

similar_text

(PHP 4, PHP 5, PHP 7)

similar_text — Calcule la similarité de deux chaînes

Description

int similar_text ( string $first , string $second [, float &$percent ] )

Calcule la similarité entre les deux chaînes first et second, selon la méthode décrite dans Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1). Notez que cette implémentation n'utilise pas la méthode de pile comme dans le pseudo code d'Oliver, mais des appels récursifs, ce qui accélère ou pas le processus. Notez que la complexité de l'algorithme est en O(N**3) où N est la taille de la plus grande chaîne.

Liste de paramètres

first

La première chaîne.

second

La seconde chaîne.

percent

En passant une référence en tant que troisième argument, similar_text() va calculer la similarité en pourcentage automatiquement.

Valeurs de retour

Retourne le nombre de caractères identiques dans les deux chaînes.

Voir aussi

  • levenshtein() - Calcule la distance Levenshtein entre deux chaînes
  • soundex() - Calcule la clé soundex


Calcule la clé soundex

  • « similar_text
  • sprintf »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Calcule la clé soundex

soundex

(PHP 4, PHP 5, PHP 7)

soundex — Calcule la clé soundex

Description

string soundex ( string $str )

Calcule la clé soundex de la chaîne str.

La clé soundex possède la propriété qui fait que deux mots prononcés similairement auront la même clé soundex. Cette fonction est donc utilisée pour simplifier les recherches dans les bases de données, où vous connaissez la prononciation d'un mot ou nom, mais pas son orthographe exacte. Cette fonction retourne une chaîne de 4 caractères, commençant par une lettre.

L'implémentation de la fonction soundex de PHP a été décrite par Donald Knuth dans "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), pp. 391-392.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la clé soundex, sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemples Soundex

<?php
soundex("Euler")       == soundex("Ellery");    // E460
soundex("Gauss")       == soundex("Ghosh");     // G200
soundex("Hilbert")     == soundex("Heilbronn"); // H416
soundex("Knuth")       == soundex("Kant");      // K530
soundex("Lloyd")       == soundex("Ladd");      // L300
soundex("Lukasiewicz") == soundex("Lissajous"); // L222
?>

Voir aussi

  • levenshtein() - Calcule la distance Levenshtein entre deux chaînes
  • metaphone() - Calcule la clé metaphone
  • similar_text() - Calcule la similarité de deux chaînes


Retourne une chaîne formatée

  • « soundex
  • sscanf »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Retourne une chaîne formatée

sprintf

(PHP 4, PHP 5, PHP 7)

sprintf — Retourne une chaîne formatée

Description

string sprintf ( string $format [, mixed $args [, mixed $... ]] )

Retourne une chaîne formatée, avec le format format, en utilisant les arguments args.

Liste de paramètres

format

La chaîne de format est composée de zéro, une ou plusieurs directives : les caractères ordinaires (à l'exception de %) qui sont copiés directement dans le résultat, et des spécifications de conversion, qui exploitent chacune un des arguments passés après la chaîne de format. Ces formats s'appliquent à sprintf() et printf().

Chaque spécification de conversion est constituée d'un signe de pourcentage (%), suivi d'un ou plusieurs des éléments suivants, dans cet ordre :

  1. Le signe optionnel ne force pas le nombre à être positif/négatif mais force à utiliser le signe - ou + sur un nombre. Par défaut, seul le signe - est utilisé sur un nombre s'il est négatif. Ce spécificateur force également les nombres positifs à avoir un signe + d'attaché, et a été ajouté en PHP 4.3.0.
  2. Un remplisseur optionnel qui indique quel caractère sera utilisé pour compléter le résultat jusqu'à la longueur requise. Ce peut être le caractère d'espace, ou le caractère 0. Par défaut, le remplissage se fait avec des espaces. Un autre caractère de remplissage peut être spécifié en le préfixant avec un guillemet simple (') : voir les exemples ci-dessous.
  3. Un spécificateur d'alignement qui indique si le résultat doit être aligné à gauche ou à droite. Par défaut, le résultat est aligné à droite. Le caractère - fera que le résultat sera justifié à gauche.
  4. Un nombre optionnel, spécificateur de taille indique le nombre minimum de caractères que cette conversion doit fournir en résultat.
  5. Un spécificateur de précision de la forme d'un point ("."), suivi par un nombre de décimales qui doivent être affichées pour les nombres décimaux. Lorsque vous utilisez ce spécificateur dans une chaîne, il agit comme un point de coupure, définissant une limite maximale de caractères de la chaîne. Additionnellement, le caractère utilisé pour remplir un nombre peut optionnellement être spécifié entre le point et le chiffre.

  6. Un spécificateur de type qui indique le type avec lequel l'argument sera traité. Plusieurs types possibles :

    • % : un caractère de pourcentage littéral. Aucun argument n'est nécessaire.
    • b : l'argument est traité comme un entier, et présenté comme un nombre binaire.
    • c : l'argument est traité comme un entier, et présenté comme le caractère de code ASCII correspondant.
    • d : l'argument est traité comme un entier, et présenté comme un nombre entier (en base 10) signé.
    • e : l'argument est traité comme une notation scientifique (e.g. 1.2e+2). Le spécificateur de précision représente le nombre de chiffres après la virgule depuis PHP 5.2.1. Dans les versions antérieures, il a été pris comme nombre des chiffres significatifs (au moins un).
    • E : comme %e mais utilise des lettres en majuscule (i.e. 1.2E+2).
    • f : l'argument est traité comme un nombre à virgule flottante (type float), et présenté comme un nombre à virgule flottante (tenant compte de la locale utilisée).
    • F : l'argument est traité comme un nombre à virgule flottante (type float), et présenté comme un nombre à virgule flottante (ne tenant pas compte de la locale utilisée). Disponible depuis PHP 4.3.10 et PHP 5.0.3.
    • g : raccourci pour %e et %f.
    • G : raccourci pour %E et %f.
    • o : l'argument est traité comme un entier, et présenté comme un nombre octal.
    • s : l'argument est traité et présenté comme une chaîne de caractères.
    • u : l'argument est traité comme un entier, et présenté comme un nombre entier (en base 10) non signé.
    • x : l'argument est traité comme un entier, et présenté comme un nombre hexadécimal (les lettres en minuscules).
    • X : l'argument est traité comme un entier, et présenté comme un nombre hexadécimal (les lettres en majuscules).

Les variables seront contraints à un type approprié pour le spécificateur :

Gestion des types
Type | Spécificateurs
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

Avertissement

Le fait de tenter d'utiliser une combinaison d'une chaîne et de spécificateurs avec des jeux de caractères qui nécessitent plus d'un octet par caractères donnera un résultat inattendu.

La chaîne de format supporte le numérotage et l'échange d'arguments. Par exemple :

Exemple #1 Échange d'arguments

<?php
$num = 5;
$location = 'bananier';

$format = 'Il y a %d singes dans le %s';
echo sprintf($format, $num, $location);
?>
Ainsi, cet exemple affichera : "Il y a 5 singes dans le bananier". Mais imaginez que la chaîne de format soit créée dans un script séparé, comme une bibliothèque : cela arrive lorsqu'il faut internationaliser une application. Suivant la langue, il faudra peut-être écrire :

Exemple #2 Échange d'arguments (2)

<?php
$format = 'Le %s a %d singes';
echo sprintf($format, $num, $location);
?>
Ici, nous voyons bien le problème. L'ordre des arguments a été changé, et ne correspond plus à l'ordre des arguments dans le script PHP. Nous souhaitons laisser le code PHP intact, mais simplement indiquer dans la chaîne de formatage l'ordre dans lequel les arguments doivent être utilisés. La chaîne de format peut être réécrite ainsi :

Exemple #3 Échange d'arguments (3)

<?php
$format = 'Le %2$s a %1$d singes';
echo sprintf($format, $num, $location);
?>
Un des avantages est que vous pouvez désormais exploiter plusieurs fois les arguments sans les répéter. Ainsi :

Exemple #4 Échange d'arguments (4)

<?php
$format = 'Le %2$s a %1$d singes.
           C\'est un beau %2$s avec %1$d singes.';
echo sprintf($format, $num, $location);
?>
Lors de l'utilisation du mécanisme de l'échange d'arguments, le spécificateur de position n$ doit survenir immédiatement après le signe de pourcentage(%), avant tout autre spécificateur, tel que dans l'exemple suivant.

Exemple #5 Spécification du caractère de remplissage

<?php
echo sprintf("%'.9d\n", 123);
echo sprintf("%'.09d\n", 123);
?>

L'exemple ci-dessus va afficher :

......123
000000123

Exemple #6 Spécificateur de position avec d'autres spécificateurs

<?php
$format = 'The %2$s contains %1$04d monkeys';
echo sprintf($format, $num, $location);
?>

L'exemple ci-dessus va afficher :

The tree contains 0005 monkeys

Note:

Tenter d'utiliser une position supérieure à PHP_INT_MAX fera que la fonction sprintf() génèrera une alerte.

Avertissement

Le spécificateur c ignore l'alignement et la taille.

args

...

Valeurs de retour

Retourne une chaîne de caractères créée suivant le format format.

Exemples

Exemple #7 printf() : divers exemples

<?php
$n =  43951789;
$u = -43951789;
$c = 65; // ASCII 65 is 'A'

// notez le double %%, cela affiche un caractère '%' littéral
printf("%%b = '%b'\n", $n); // représentation binaire
printf("%%c = '%c'\n", $c); // affiche le caractère ascii, comme la fonction chr()
printf("%%d = '%d'\n", $n); // représentation standard d'un entier
printf("%%e = '%e'\n", $n); // notation scientifique
printf("%%u = '%u'\n", $n); // représentation entière non signée d'un entier positif
printf("%%u = '%u'\n", $u); // représentation entière non signée d'un entier négatif
printf("%%f = '%f'\n", $n); // représentation en virgule flottante
printf("%%o = '%o'\n", $n); // représentation octale
printf("%%s = '%s'\n", $n); // représentation chaîne de caractères
printf("%%x = '%x'\n", $n); // représentation hexadécimal (minuscule)
printf("%%X = '%X'\n", $n); // représentation hexadécimal (majuscule)

printf("%%+d = '%+d'\n", $n); // indication du signe pour un entier positif
printf("%%+d = '%+d'\n", $u); // indication du signe pour un entier négatif
?>

L'exemple ci-dessus va afficher :

%b = '10100111101010011010101101'
%c = 'A'
%d = '43951789'
%e = '4.39518e+7'
%u = '43951789'
%u = '4251015507'
%f = '43951789.000000'
%o = '247523255'
%s = '43951789'
%x = '29ea6ad'
%X = '29EA6AD'
%+d = '+43951789'
%+d = '-43951789'

Exemple #8 printf() : spécificateurs chaînes de caractères

<?php
$s = 'monkey';
$t = 'many monkeys';

printf("[%s]\n",      $s); // affichage d'une chaîne standard
printf("[%10s]\n",    $s); // justification à droite avec des espaces
printf("[%-10s]\n",   $s); // justification à gauche avec des espaces
printf("[%010s]\n",   $s); // l'espacement nul fonctionne aussi sur les chaînes
printf("[%'#10s]\n",  $s); // utilisation du caractère personnalisé de séparation '#'
printf("[%10.10s]\n", $t); // justification à gauche mais avec une coupure à 10 caractères
?>

L'exemple ci-dessus va afficher :

[monkey]
[    monkey]
[monkey    ]
[0000monkey]
[####monkey]
[many monke]

Exemple #9 sprintf() : entier sans espace

<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

Exemple #10 sprintf() : formatage de devises

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money affichera "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted affichera "123.10"
?>

Exemple #11 sprintf(): notation scientifique

<?php
$number = 362525200;

echo sprintf("%.3e", $number); // affiche 3.625e+8
?>

Voir aussi

  • printf() - Affiche une chaîne de caractères formatée
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • fscanf() - Analyse un fichier en fonction d'un format
  • vsprintf() - Retourne une chaîne formatée
  • number_format() - Formate un nombre pour l'affichage
  • date() - Formate une date/heure locale


Analyse une chaîne à l'aide d'un format

  • « sprintf
  • str_getcsv »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Analyse une chaîne à l'aide d'un format

sscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

sscanf — Analyse une chaîne à l'aide d'un format

Description

mixed sscanf ( string $str , string $format [, mixed &$... ] )

sscanf() est l'inverse de la fonction printf(). sscanf() lit des données dans la chaîne str, et l'interprète en fonction du format format, qui est décrit dans la documentation de la fonction sprintf().

Tous les caractères blancs dans la chaîne format correspondent à un caractère blanc dans la chaîne str. Cela signifie que même une tabulation \t dans la chaîne de format peut correspondre à un simple espace dans la chaîne str.

Liste de paramètres

str

La chaîne à analyser.

format

Le format interprété pour la chaîne str, qui est décrit dans la documentation de la fonction sprintf() avec les différences suivantes :

  • La fonction n'est pas sensible à la locale courante.
  • F, g, G et b ne sont pas supportés.
  • D correspond aux nombres décimaux.
  • i correspond aux entiers avec une détection de la base.
  • n correspond aux nombres de caractères analysés.

...

Optionnellement, vous pouvez passer des variables dans ce paramètre, par référence qui contiendront les valeurs de l'analyse.

Valeurs de retour

Si seulement deux paramètres sont fournis, les valeurs trouvées seront retournées sous forme de tableau. Sinon, si le paramètre optionnel sont fourni, la fonction retournera le nombre de valeurs assignées. Le paramètre optionnel doit être passé par référence.

S'il y a plus de sous-chaînes attendus dans le paramètre format, alors elles seront disponibles dans str, et -1 sera retourné.

Exemples

Exemple #1 Exemple avec sscanf()

<?php
// Lecture d'un numéro de série
list($serial) = sscanf("SN/2350001", "SN/%d");
// et la date de fabrication
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate, "%s %d %d");
echo "Le produit $serial a été fabriqué le : $year-" . substr($month, 0, 3) . "-$day\n";
?>

Si des paramètres optionnels sont passés, sscanf() retournera le nombre de valeurs assignées.

Exemple #2 sscanf() - utilisation des paramètres optionnels

<?php
// lit les informations d'auteur, et génère une entrée DocBook
$auth = "24\tLewis Carroll";
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);
echo "<author id='$id'>
    <firstname>$first</firstname>
    <surname>$last</surname>
</author>\n";
?>

Voir aussi

  • fscanf() - Analyse un fichier en fonction d'un format
  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée


Analyse une chaîne de caractères CSV dans un tableau

  • « sscanf
  • str_ireplace »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Analyse une chaîne de caractères CSV dans un tableau

str_getcsv

(PHP 5 >= 5.3.0, PHP 7)

str_getcsv — Analyse une chaîne de caractères CSV dans un tableau

Description

array str_getcsv ( string $input [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\\" ]]] )

Analyse une chaîne de caractères représentant des champs au format CSV et retourne un tableau contenant tous les champs lus.

Liste de paramètres

input

La chaîne à analyser.

delimiter

Le délimiteur de champ (un seul caractère).

enclosure

Le caractère d'encadrement (un seul caractère).

escape

Le caractère de protection (un seul caractère). Par défaut, c'est l'antislash. (\)

Valeurs de retour

Retourne un tableau contenant les champs lus.

Voir aussi

  • fgetcsv() - Obtient une ligne depuis un pointeur de fichier et l'analyse pour des champs CSV


Version insensible à la casse de str_replace

  • « str_getcsv
  • str_pad »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Version insensible à la casse de str_replace

str_ireplace

(PHP 5, PHP 7)

str_ireplace — Version insensible à la casse de str_replace()

Description

mixed str_ireplace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

str_ireplace() retourne une chaîne de caractères ou un tableau dont toutes les occurrences de search dans subject (en ignorant la casse), ont été remplacées par la valeur de replace. Si vous n'avez pas besoin de règles de recherche complexes, il est recommandé d'utiliser cette fonction à la place de preg_replace() avec l'option i.

Liste de paramètres

Si les paramètres search et replace sont des tableaux, alors la fonction str_ireplace() prendra une valeur de chaque tableau et les utilisera pour la recherche et le remplacement sur subject. Si le paramètre replace a moins de valeurs que le paramètre search, alors une chaîne de caractères vide sera utilisée comme valeur pour le reste des valeurs de remplacement. Si le paramètre search est un tableau et que le paramètre replace est une chaîne de caractères, alors cette chaîne de caractères de remplacement sera utililsée pour chaque valeur de search. L'inverse n'a pas de sens.

Si le paramètre search ou le paramètre replace sont des tableaux, leurs éléments sont traités du premier au dernier.

search

La valeur à chercher, connue aussi sous le nom de needle. Un tableau peut être utilisé pour désigner plusieurs needles.

replace

La valeur de remplacement utilisée pour chaque valeur trouvée dans search. Un tableau peut être utilisé pour désigner plusieurs remplacements.

subject

Une chaîne de caractères ou un tableau dans lequel la recherche s'effectue, aussi connu sous le nom de haystack.

Si subject est un tableau, le remplacement est effectué sur chacun des éléments du sujet subject, et la valeur retournée est aussi un tableau.

count

Si fournie, cette variable contiendra le nombre de remplacements effectués.

Valeurs de retour

Retourne une chaîne ou un tableau de remplacement.

Exemples

Exemple #1 Exemple avec str_ireplace()

<?php
$bodytag = str_ireplace("%body%", "black", "<body text=%BODY%>");
echo $bodytag; // <body text=black>
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Attention

Ordre de remplacement

Vu le fait que la fonction str_ireplace() effectue les remplacements de la gauche vers la droite, elle peut remplacer une valeur précédemment insérée lors de remplacement multpiple. L'exemple #2 de la documentation de la fonction str_replace() sur la façon de traiter cette problématique.

Voir aussi

  • str_replace() - Remplace toutes les occurrences dans une chaîne
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard
  • strtr() - Remplace des caractères dans une chaîne


Complète une chaîne jusqu'à une taille donnée

  • « str_ireplace
  • str_repeat »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Complète une chaîne jusqu'à une taille donnée

str_pad

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

str_pad — Complète une chaîne jusqu'à une taille donnée

Description

string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )

Retourne la chaîne input, complétée à droite, à gauche ou dans les deux sens, avec la chaîne pad_string jusqu'à ce qu'elle atteigne la taille de pad_length.

Liste de paramètres

input

La chaîne d'entrée.

pad_length

Si la valeur de pad_length est négative, plus petite que, ou égale à la taille courante de la chaîne input, input est retournée inchangée et input sera retourné.

pad_string

Note:

Le paramètre pad_string peut être tronqué si le nombre de caractères de complétion n'est pas multiple de la taille de pad_string.

pad_type

L'argument optionnel pad_type peut être l'une des constantes suivantes : STR_PAD_RIGHT, STR_PAD_LEFT, ou STR_PAD_BOTH. Si pad_type n'est pas spécifié, il prend la valeur par défaut de STR_PAD_RIGHT.

Valeurs de retour

Retourne la chaîne complétée.

Exemples

Exemple #1 Exemple avec str_pad()

<?php
$input = "Alien";
echo str_pad($input, 10);                      // produces "Alien     "
echo str_pad($input, 10, "-=", STR_PAD_LEFT);  // produces "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH);   // produces "__Alien___"
echo str_pad($input,  6, "___");               // produces "Alien_"
echo str_pad($input,  3, "*");                 // produces "Alien"
?>


Répète une chaîne

  • « str_pad
  • str_replace »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Répète une chaîne

str_repeat

(PHP 4, PHP 5, PHP 7)

str_repeat — Répète une chaîne

Description

string str_repeat ( string $input , int $multiplier )

Retourne la chaîne input répétée multiplier fois.

Liste de paramètres

input

La chaîne à répéter.

multiplier

Nombre de fois où la chaîne input doit être multipliée.

multiplier doit être positif ou nul. Si multiplier vaut 0, la fonction retourne la chaîne vide.

Valeurs de retour

Retourne la chaîne, répétée multiplier fois.

Exemples

Exemple #1 Exemple avec str_repeat()

<?php
echo str_repeat("-=", 10);
?>

L'exemple ci-dessus va afficher :

-=-=-=-=-=-=-=-=-=-=

Voir aussi

  • for
  • str_pad() - Complète une chaîne jusqu'à une taille donnée
  • substr_count() - Compte le nombre d'occurrences de segments dans une chaîne


Remplace toutes les occurrences dans une chaîne

  • « str_repeat
  • str_rot13 »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Remplace toutes les occurrences dans une chaîne

str_replace

(PHP 4, PHP 5, PHP 7)

str_replace — Remplace toutes les occurrences dans une chaîne

Description

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

str_replace() retourne une chaîne ou un tableau, dont toutes les occurrences de search dans subject ont été remplacées par replace.

Si vous n'avez pas besoin de règles de remplacement compliquées (comme les expressions rationnelles), utilisez cette fonction au lieu de la fonction preg_replace().

Liste de paramètres

Si les paramètres search et replace sont des tableaux, alors la fonction str_replace() prendra une valeur de chaque tableau et les utilisera pour la recherche et le remplacement sur subject. Si les paramètres replace a moins de valeurs que le paramètre search, alors une chaîne de caractères vide sera utilisée comme valeur pour le reste des valeurs de remplacement. Si le paramètre search est un tableau et que le paramètre replace est une chaîne de caractères, alors cette chaîne de caractères de remplacement sera utilisée pour chaque valeur de search. L'inverse n'a pas de sens.

Si search ou replace sont des tableaux, les éléments sont traités du premier, au dernier.

search

La valeur à chercher, autrement connue comme le masque. Un tableau peut être utilisé pour désigner plusieurs masques.

replace

La valeur de remplacement à substituer aux valeurs trouvées. Un tableau peut être utilisé pour désigner plusieurs valeurs de remplacement.

subject

La chaîne de caractères ou le tableau sur lequel on va effectuer la recherche et le remplacement, aussi connu sous le nom de haystack.

Si subject est un tableau, alors le remplacement se fera sur chaque élément de celui-ci, et la valeur retournée sera aussi un tableau.

count

Si fournie, cette variable contiendra le nombre de remplacements effectués.

Valeurs de retour

Cette fonction retourne une chaîne, ou un tableau, contenant les valeurs remplacées.

Exemples

Exemple #1 Exemple 1 avec str_replace()

<?php
// Génère : <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// Génère : Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

// Génère : You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);

// Génère : 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;

?>

Exemple #2 Exemple 2 avec str_replace()

<?php
// Ordre des remplacements
$str     = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order   = array("\r\n", "\n", "\r");
$replace = '<br />';

// Traitement du premier \r\n, ils ne seront pas convertis deux fois.
$newstr = str_replace($order, $replace, $str);

// Affiche F car A est remplacé par B, puis B est remplacé par C, et ainsi de suite...
// Finalement, E est remplacé par F
$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

// Affiche : apearpearle pear
// Pour les mêmes raisons que plus haut
$letters = array('a', 'p');
$fruit   = array('apple', 'pear');
$text    = 'a p';
$output  = str_replace($letters, $fruit, $text);
echo $output;
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Attention

Ordre de remplacement

A cause du fait que la fonction str_replace() effectue les remplacements de la gauche vers la droite, elle peut remplacer une valeur précédemment insérée lors de multiples remplacements.

Note:

Cette fonction est sensible à la casse. Utilisez la fonction str_ireplace() pour un remplacement insensible à la casse.

Voir aussi

  • str_ireplace() - Version insensible à la casse de str_replace
  • substr_replace() - Remplace un segment dans une chaîne
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard
  • strtr() - Remplace des caractères dans une chaîne


Effectue une transformation ROT13

  • « str_replace
  • str_shuffle »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Effectue une transformation ROT13

str_rot13

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

str_rot13 — Effectue une transformation ROT13

Description

string str_rot13 ( string $str )

Effectue un encodage ROT13 de la chaîne str et retourne le résultat.

L'encodage ROT13 décale toutes les lettres de 13 dans l'alphabet, et laisse tous les autres caractères inchangés. L'encodage et le décodage est fait par la même fonction : passer le résultat de str_rot13() à nouveau comme argument, retournera la chaîne originale.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la version ROT13 de la chaîne fournie.

Exemples

Exemple #1 Exemple avec str_rot13()

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>


Mélange les caractères d'une chaîne de caractères

  • « str_rot13
  • str_split »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Mélange les caractères d'une chaîne de caractères

str_shuffle

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

str_shuffle — Mélange les caractères d'une chaîne de caractères

Description

string str_shuffle ( string $str )

str_shuffle() mélange les caractères d'une chaîne. Une permutation parmi toutes celles possibles est créée.

Attention

Cette fonction ne génère pas de valeurs sécurisées d'un point de vue cryptologie, et ne doit pas être utilisée dans un contexte de cryptologie. Si vous avez besoin d'un valeur sécurisée d'un point de vue cryptologique, utilisez plutôt random_int(), random_bytes(), ou openssl_random_pseudo_bytes().

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne mélangée.

Exemples

Exemple #1 Exemple avec str_shuffle()

<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);

// Cela va afficher quelque chose comme : bfdaec
echo $shuffled;
?>

Voir aussi

  • shuffle() - Mélange les éléments d'un tableau
  • rand() - Génère une valeur aléatoire


Convertit une chaîne de caractères en tableau

  • « str_shuffle
  • str_word_count »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit une chaîne de caractères en tableau

str_split

(PHP 5, PHP 7)

str_split — Convertit une chaîne de caractères en tableau

Description

array str_split ( string $string [, int $split_length = 1 ] )

Convertit une chaîne de caractères en tableau.

Liste de paramètres

string

La chaîne d'entrée.

split_length

Longueur maximale de chaque élément.

Valeurs de retour

Si le paramètre optionnel split_length est spécifié, le tableau retourné sera découpé en sous-parties, chacune de taille split_length, sinon, chaque sous-partie aura la taille d'un caractère.

FALSE est retourné si split_length est inférieur à 1. Si la longueur de split_length est supérieure à celle de string, la chaîne entière est retournée dans le premier (et seul) élément du tableau.

Exemples

Exemple #1 Exemple avec str_split()

<?php

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

Notes

Note:

str_split() va effectuer la découpe dans les bits, plutôt que dans les caractères lors de l'utilisation avec une chaîne de caractères encodée en multi-octets.

Voir aussi

  • chunk_split() - Scinde une chaîne
  • preg_split() - Éclate une chaîne par expression rationnelle
  • explode() - Coupe une chaîne en segments
  • count_chars() - Retourne des statistiques sur les caractères utilisés dans une chaîne
  • str_word_count() - Compte le nombre de mots utilisés dans une chaîne
  • for


Compte le nombre de mots utilisés dans une chaîne

  • « str_split
  • strcasecmp »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Compte le nombre de mots utilisés dans une chaîne

str_word_count

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

str_word_count — Compte le nombre de mots utilisés dans une chaîne

Description

mixed str_word_count ( string $string [, int $format = 0 [, string $charlist ]] )

str_word_count() compte le nombre de mots dans la chaîne string. Si le paramètre optionnel format n'est pas spécifié, alors la valeur retournée sera un entier, représentant le nombre de mots trouvés. Si format est spécifié, la valeur retournée sera un tableau, qui dépend du format format. Les valeurs possibles pour format sont listées plus bas.

Dans cette fonction, la notion de mot dépend de la configuration de localisation. C'est une chaîne qui contient tous les caractères alphabétiques, et qui peut contenir, mais pas commencer par "'" et "-".

Liste de paramètres

string

La chaîne de caractères

format

Spécifie la valeur de retour de cette fonction. Les valeurs actuellement supportées sont :

  • 0 : retourne le nombre de mots trouvés
  • 1 : retourne un tableau contenant tous les mots trouvés à l'intérieur de string
  • 2 : retourne un tableau associatif, où la clé indique la position numérique du mot à l'intérieur de string et la valeur est le mot actuel

charlist

Une liste des caractères additionnels qui seront considérés comme un mot

Valeurs de retour

Retourne un tableau ou un entier, dépendemment du format choisi.

Historique

Version | Description
5.1.0 | Ajout du paramètre charlist

Exemples

Exemple #1 Exemple avec str_word_count()

<?php

$str = "Salut l'ami, vous
        avez          une b3lle mine !";

print_r(str_word_count($str, 1));
print_r(str_word_count($str, 2));
print_r(str_word_count($str, 1, 'àáãç3'));

echo str_word_count($str);

?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Salut
    [1] => l'ami
    [2] => vous
    [3] => avez
    [4] => une
    [5] => b
    [6] => lle
    [7] => mine
)

Array
(
    [0] => Salut
    [6] => l'ami
    [13] => vous
    [27] => avez
    [41] => une
    [45] => b
    [47] => lle
    [51] => mine
)

Array
(
    [0] => Salut
    [1] => l'ami
    [2] => vous
    [3] => avez
    [4] => une
    [5] => b3lle
    [6] => mine
)

8

Voir aussi

  • explode() - Coupe une chaîne en segments
  • preg_split() - Éclate une chaîne par expression rationnelle
  • split() - Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • count_chars() - Retourne des statistiques sur les caractères utilisés dans une chaîne
  • substr_count() - Compte le nombre d'occurrences de segments dans une chaîne


Comparaison insensible à la casse de chaînes binaires

  • « str_word_count
  • strchr »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Comparaison insensible à la casse de chaînes binaires

strcasecmp

(PHP 4, PHP 5, PHP 7)

strcasecmp — Comparaison insensible à la casse de chaînes binaires

Description

int strcasecmp ( string $str1 , string $str2 )

Comparaison insensible à la casse de chaînes binaires.

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

Valeurs de retour

Retourne < 0 si str1 est inférieure à str2; > 0 si str1 est plus grande que str2, et 0 si les deux chaînes sont égales.

Exemples

Exemple #1 Exemple avec strcasecmp()

<?php
$var1 = "Hello";
$var2 = "hello";
if (strcasecmp($var1, $var2) == 0) {
   echo '$var1 est égale à $var2 (comparaison insensible à la casse)';
}
?>

Voir aussi

  • strcmp() - Comparaison binaire de chaînes
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • substr_compare() - Compare deux chaînes depuis un offset jusqu'à une longueur en caractères
  • strncasecmp() - Compare en binaire des chaînes de caractères
  • stristr() - Version insensible à la casse de strstr
  • substr() - Retourne un segment de chaîne


Alias de strstr

  • « strcasecmp
  • strcmp »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Alias de strstr

strchr

(PHP 4, PHP 5, PHP 7)

strchr — Alias de strstr()

Description

Cette fonction est un alias de : strstr().


Comparaison binaire de chaînes

  • « strchr
  • strcoll »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Comparaison binaire de chaînes

strcmp

(PHP 4, PHP 5, PHP 7)

strcmp — Comparaison binaire de chaînes

Description

int strcmp ( string $str1 , string $str2 )

Notez que cette comparaison est sensible à la casse.

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

Valeurs de retour

Retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Exemples

Exemple #1 Exemple d'utilisation de strcmp()

<?php
$var1 = "Bonjour";
$var2 = "bonjour";
if (strcmp($var1, $var2) !== 0) {
    echo "$var1 n'est pas égal à $var2 par comparaison sensible à la casse.";
}
?>

Voir aussi

  • strcasecmp() - Comparaison insensible à la casse de chaînes binaires
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • substr_compare() - Compare deux chaînes depuis un offset jusqu'à une longueur en caractères
  • strncmp() - Comparaison binaire des n premiers caractères
  • strstr() - Trouve la première occurrence dans une chaîne
  • substr() - Retourne un segment de chaîne


Comparaison de chaînes localisées

  • « strcmp
  • strcspn »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Comparaison de chaînes localisées

strcoll

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

strcoll — Comparaison de chaînes localisées

Description

int strcoll ( string $str1 , string $str2 )

Notez que cette comparaison est sensible à la casse, et que, contrairement à strcmp(), elle n'est pas compatible avec les chaînes binaires.

strcoll() utilise les locales courantes pour effectuer la comparaison. Si la locale courante est C ou POSIX, cette fonction est alors équivalente à la fonction strcmp().

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

Valeurs de retour

Retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Historique

Version | Description
4.2.3 | Fonctionne désormais sous les systèmes Win32.

Voir aussi

  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • strcmp() - Comparaison binaire de chaînes
  • strcasecmp() - Comparaison insensible à la casse de chaînes binaires
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strncasecmp() - Compare en binaire des chaînes de caractères
  • strncmp() - Comparaison binaire des n premiers caractères
  • strstr() - Trouve la première occurrence dans une chaîne
  • setlocale() - Modifie les informations de localisation


Trouve un segment de chaîne ne contenant pas certains caractères

  • « strcoll
  • strip_tags »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Trouve un segment de chaîne ne contenant pas certains caractères

strcspn

(PHP 4, PHP 5, PHP 7)

strcspn — Trouve un segment de chaîne ne contenant pas certains caractères

Description

int strcspn ( string $subject , string $mask [, int $start [, int $length ]] )

Retourne la taille du premier segment de subject qui ne contient aucun des caractères de mask.

Si start et length sont ommis, alors la totalité de subject sera examinée. S'ils sont inclus, alors l'effet sera identique à appeler strcspn(substr($subject, $start, $length), $mask) (voir substr pour plus d'informations).

Liste de paramètres

subject

La chaîne à examiner.

mask

La chaîne contenant tous les caractères désactivés.

start

La position dans subject à partir de laquelle on commence à chercher.

Si start est fourni et n'est pas négatif, alors strcspn() va commencer à examiner subject à la start ème position. Par exemple, dans la chaîne 'abcdef', le caracère à la position 0 est 'a', le caractère à la position 2 est 'c', et ainsi de suite.

Si start est fourni et est négatif, alors strspn() va commencer à examiner subject à la start ème position depuis la fin de subject.

length

La longueur du segment de subject à examiner.

Si length est fourni et n'est pas négatif, alors subject sera examiné depuis length caractères après la position de départ.

Si length est fourni et est négatif, alors subject sera examiné depuis la position de départ jusqu'à length caractères depuis la fin de subject.

Valeurs de retour

Retourne la longueur du segment initial de subject qui contient seulement des caractères qui ne sont pas dans mask.

Note:

Lorsque le paramètre start est définie, la longueur retournée est comptée depuis cette position, et non depuis le début de subject.

Exemples

Exemple #1 Exemple avec strcspn()

<?php
$a = strcspn('abcd',  'apple');
$b = strcspn('abcd',  'banana');
$c = strcspn('hello', 'l');
$d = strcspn('hello', 'world');
$e = strcspn('abcdhelloabcd', 'abcd', -9);
$f = strcspn('abcdhelloabcd', 'abcd', -9, -5);

var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($e);
var_dump($f);
?>

L'exemple ci-dessus va afficher :

int(0)
int(0)
int(2)
int(2)
int(5)
int(4)

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • strspn() - Trouve la longueur du segment initial d'une chaîne contenant tous les caractères d'un masque donné


Supprime les balises HTML et PHP d'une chaîne

  • « strcspn
  • stripcslashes »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Supprime les balises HTML et PHP d'une chaîne

strip_tags

(PHP 4, PHP 5, PHP 7)

strip_tags — Supprime les balises HTML et PHP d'une chaîne

Description

string strip_tags ( string $str [, string $allowable_tags ] )

strip_tags() tente de retourner la chaîne str après avoir supprimé tous les octets nuls, toutes les balises PHP et HTML du code. Elle génère des alertes si les balises sont incomplètes ou erronées. Elle utilise le même moteur de recherche que fgetss().

Liste de paramètres

str

La chaîne d'entrée.

allowable_tags

Vous pouvez utiliser ce paramètre optionnel pour spécifier les balises qui ne doivent pas être supprimées.

Note:

Les commentaires HTML et PHP sont également supprimés. Ce comportement ne peut être modifié avec le paramètre allowable_tags.

Note:

Depuis PHP 5.3.4, les balises autofermantes XHTML sont ignorées et seules les balises qui ne sont pas autofermantes doivent être utilisées dans la chaîne allowable_tags. Par exemple, pour autoriser à la fois <br> et <br/>, vous devez utiliser :

<?php
strip_tags($input, '<br>');
?>

Valeurs de retour

Retourne la chaîne échappée.

Historique

Version | Description
5.3.4 | strip_tags() ignore les balises autofermantes dans allowable_tags.
5.0.0 | strip_tags() fonctionne désormais avec les données binaires.

Exemples

Exemple #1 Exemple avec strip_tags()

<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// Autorise <p> et <a>
echo strip_tags($text, '<p><a>');
?>

L'exemple ci-dessus va afficher :

Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>

Notes

Avertissement

Comme strip_tags() ne valide actuellement pas le HTML, les balises partielles ou rompues peuvent conduire à la suppression de plus de textes/données que désiré.

Avertissement

strip_tags() ne modifie pas les attributs des balises que vous autorisez via le paramètre allowable_tags, y compris les attributs style et onmouseover, que des utilisateurs mal intentionnés peuvent utiliser.

Note:

Les noms des balises dans le HTML d'entrée qui sont supérieurs à 1023 octets de longueur seront traités comme invalides, suivant le paramètre allowable_tags.

Voir aussi

  • htmlspecialchars() - Convertit les caractères spéciaux en entités HTML


Décode une chaîne encodée avec addcslashes

  • « strip_tags
  • stripos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Décode une chaîne encodée avec addcslashes

stripcslashes

(PHP 4, PHP 5, PHP 7)

stripcslashes — Décode une chaîne encodée avec addcslashes()

Description

string stripcslashes ( string $str )

Retourne la chaîne str après avoir supprimé tous les antislashs. stripcslashes() respecte les séquences spéciales du C, telles que \n, \r..., les nombres octaux et hexadécimaux.

Liste de paramètres

str

La chaîne à traiter.

Valeurs de retour

Retourne la chaîne modifiée.

Voir aussi

  • addcslashes() - Ajoute des slash dans une chaîne, à la mode du langage C


Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse

  • « stripcslashes
  • stripslashes »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse

stripos

(PHP 5, PHP 7)

stripos — Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse

Description

mixed stripos ( string $haystack , string $needle [, int $offset = 0 ] )

Cherche la position numérique de la première occurrence de needle dans la chaîne haystack.

Contrairement à la fonction strpos(), stripos() est insensible à la casse.

Liste de paramètres

haystack

La chaîne dans laquelle on effectue la recherche.

needle

Le paramètre needle peut être une chaîne d'un ou plusieurs caractères.

Si needle n'est pas une chaîne, il est converti en entier, et utilisé comme valeur d'un caractère.

offset

Si spécifié, la recherche commencera à partir de ce nombre de caractères, compté depuis le début de la chaîne. Si la position est négative, la recherche commencera en utilisant ce nombre de caractères mais en commençant par la fin de la chaîne.

Valeurs de retour

Retourne la position de la première occurrence dans la chaîne relativement au début de la chaîne haystack (indépendamment de l'offset). Notez également que la position dans la chaîne commence à 0, et non pas à 1.

Retourne FALSE si l'occurrence n'a pas été trouvée.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Historique

Version | Description
7.1.0 | Ajout du support des nombres négatifs pour le paramètre offset.

Exemples

Exemple #1 Exemple avec stripos()

<?php
$findme    = 'a';
$mystring1 = 'xyz';
$mystring2 = 'ABC';

$pos1 = stripos($mystring1, $findme);
$pos2 = stripos($mystring2, $findme);

// Non, 'a' ne fait pas partie de 'xyz'
if ($pos1 === false) {
    echo "La chaîne '$findme' n'a pas été trouvée dans la chaîne '$mystring1'";
}

// Notez l'utilisation de ===.  Un simple == ne donnerait pas le résultat escompté
// car la lettre 'a' est à la position 0th (la première).
if ($pos2 !== false) {
    echo "La chaîne '$findme' a été trouvée dans la chaîne '$mystring2'";
    echo " à la position $pos2";
}
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • mb_stripos() - Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse
  • strpos() - Cherche la position de la première occurrence dans une chaîne
  • strrpos() - Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne
  • strripos() - Cherche la position de la dernière occurrence d'une chaîne contenue dans une autre, de façon insensible à la casse
  • stristr() - Version insensible à la casse de strstr
  • substr() - Retourne un segment de chaîne
  • str_ireplace() - Version insensible à la casse de str_replace


Supprime les antislashs d'une chaîne

  • « stripos
  • stristr »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Supprime les antislashs d'une chaîne

stripslashes

(PHP 4, PHP 5, PHP 7)

stripslashes — Supprime les antislashs d'une chaîne

Description

string stripslashes ( string $str )

Supprime les antislashs d'une chaîne.

Note:

Si magic_quotes_sybase est activée, aucun antislash n'est supprimé, mais deux apostrophes sont remplacées par une seule à la place.

Un exemple d'utilisation de stripslashes() est lorsque la directive PHP magic_quotes_gpc est à on (valeur par défaut avant PHP 5.4) et que vous insérez des données dans une base de données qui requiert la protection des valeurs. Par exemple, si vous affichez simplement et directement des données provenant d'un formulaire HTML.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne une chaîne dont les antislashs on été supprimés. \' devient ', etc. Les doubles antislashs (\\) sont réduits à un seul antislash (\).

Exemples

Exemple #1 Exemple avec stripslashes()

<?php
$str = "Avez-vous l\'oreille dure?";

// Affiche : Avez-vous l'oreille dure?
echo stripslashes($str);
?>

Note:

stripslashes() n'est pas récursif. Si vous voulez appliquer cette fonction à un tableau multidimensionnel, vous devez utiliser une fonction récursive.

Exemple #2 Utilisation de stripslashes() sur un tableau

<?php
function stripslashes_deep($value)
{
    $value = is_array($value) ?
                array_map('stripslashes_deep', $value) :
                stripslashes($value);

    return $value;
}

// Exemple
$array = array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar"));
$array = stripslashes_deep($array);

// Affiche
print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => f'oo
    [1] => b'ar
    [2] => Array
        (
            [0] => fo'o
            [1] => b'ar
        )

)

Voir aussi

  • addslashes() - Ajoute des antislashs dans une chaîne
  • get_magic_quotes_gpc() - Retourne la configuration actuelle de l'option magic_quotes_gpc


Version insensible à la casse de strstr

  • « stripslashes
  • strlen »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Version insensible à la casse de strstr

stristr

(PHP 4, PHP 5, PHP 7)

stristr — Version insensible à la casse de strstr()

Description

string stristr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

Retourne une sous-chaîne de haystack, allant de la première occurrence de needle (incluse) jusqu'à la fin de la chaîne.

Liste de paramètres

haystack

La chaîne dans laquelle on doit chercher.

needle

Si needle n'est pas une chaîne, elle sera convertie en entier, et utilisée comme code ASCII du caractère correspondant.

before_needle

Si vaut TRUE, stristr() retourne la partie de haystack avant la première occurrence de needle (needle exclus).

needle et haystack sont traitées sans tenir compte de la casse.

Valeurs de retour

Retourne la partie de la chaîne correspondante. Si needle n'est pas trouvé, la fonction retourne FALSE.

Historique

Version | Description
5.3.0 | Ajout du paramètre optionnel before_needle.
4.3.0 | stristr() s'effectue en respectant les chaînes binaires.

Exemples

Exemple #1 Exemple avec stristr()

<?php
  $email = 'USER@EXAMPLE.com';
  echo stristr($email, 'e'); // Affiche ER@EXAMPLE.com
  echo stristr($email, 'e', true); // Depuis PHP 5.3.0, Affiche US
?>

Exemple #2 Teste si une chaîne de caractères est trouvée ou pas

<?php
  $string = 'Hello World!';
  if(stristr($string, 'terre') === FALSE) {
   echo '"terre" non trouvé dans la chaîne de caractères';
  }
// affiche : "terre" non trouvé dans la chaîne de caractères
?>

Exemple #3 Utilisation d'une "chaîne de caractères" en chiffre

<?php
  $string = 'POMME';
  echo stristr($string, 112); // 112 = p minuscule
// Affiche : POMME
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • strstr() - Trouve la première occurrence dans une chaîne
  • strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
  • stripos() - Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse
  • strpbrk() - Recherche un ensemble de caractères dans une chaîne de caractères
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard


Calcule la taille d'une chaîne

  • « stristr
  • strnatcasecmp »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Calcule la taille d'une chaîne

strlen

(PHP 4, PHP 5, PHP 7)

strlen — Calcule la taille d'une chaîne

Description

int strlen ( string $string )

Retourne la taille de la chaîne string.

Liste de paramètres

string

La chaîne de caractères à mesurer.

Valeurs de retour

La taille de la chaîne string est 0 si le paramètre string est vide.

Historique

Version | Description
5.3.0 | Les anciennes versions traitaient un tableau comme la chaîne de caractères Array, et ainsi, retournaient la longueur de la chaîne 5 et émettaient une erreur de niveau E_NOTICE.

Exemples

Exemple #1 Exemple avec strlen()

<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

Notes

Note:

strlen() retourne le nombres d'octets plutôt que le nombre de caractères dans une chaîne.

Note:

strlen() retourne NULL lors de son exécution sur des tableaux, et une erreur de niveau E_WARNING est émise.

Voir aussi

  • count() - Compte tous les éléments d'un tableau ou quelque chose d'un objet
  • grapheme_strlen() - Lit la taille d'une chaîne en nombre de graphème
  • iconv_strlen() - Retourne le nombre de caractères d'une chaîne
  • mb_strlen() - Retourne la taille d'une chaîne


Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)

  • « strlen
  • strnatcmp »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)

strnatcasecmp

(PHP 4, PHP 5, PHP 7)

strnatcasecmp — Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)

Description

int strnatcasecmp ( string $str1 , string $str2 )

strnatcasecmp() implémente l'algorithme de comparaison qui ordonne les chaînes tel qu'un homme le ferait. Cette fonction est similaire à la fonction strnatcmp(), mais la comparaison n'est pas sensible à la casse. Pour plus de détails, reportez-vous à » Natural Order String Comparison de Martin Pool (en anglais).

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

Valeurs de retour

Tout comme les autres fonctions de comparaison de chaînes, celle-ci retourne < 0 si str1 est inférieure à str2 > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Voir aussi

  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • strcmp() - Comparaison binaire de chaînes
  • strcasecmp() - Comparaison insensible à la casse de chaînes binaires
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strncasecmp() - Compare en binaire des chaînes de caractères
  • strncmp() - Comparaison binaire des n premiers caractères
  • strstr() - Trouve la première occurrence dans une chaîne
  • setlocale() - Modifie les informations de localisation


Comparaison de chaînes avec l'algorithme d'"ordre naturel"

  • « strnatcasecmp
  • strncasecmp »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Comparaison de chaînes avec l'algorithme d'"ordre naturel"

strnatcmp

(PHP 4, PHP 5, PHP 7)

strnatcmp — Comparaison de chaînes avec l'algorithme d'"ordre naturel"

Description

int strnatcmp ( string $str1 , string $str2 )

Implémente l'algorithme de comparaison qui ordonne les chaînes tel qu'un homme le ferait. Notez que cette comparaison est sensible à la casse.

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

Valeurs de retour

De la même façon que les autres fonctions comparant deux chaînes, la fonction retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Exemples

Un exemple de la différence de traitement avec l'algorithme standard est présenté ci-dessous :

<?php
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "Tri de chaînes standard\n";
usort($arr1, "strcmp");
print_r($arr1);
echo "\nTri de chaînes \"ordre naturel\"\n";
usort($arr2, "strnatcmp");
print_r($arr2);
?>

L'exemple ci-dessus va afficher :

Tri de chaînes standard
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Tri de chaînes "ordre naturel"
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)
Pour plus de détails, reportez-vous à » Natural Order String Comparison de Martin Pool (en anglais).

Voir aussi

  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • strcasecmp() - Comparaison insensible à la casse de chaînes binaires
  • substr() - Retourne un segment de chaîne
  • stristr() - Version insensible à la casse de strstr
  • strcmp() - Comparaison binaire de chaînes
  • strncmp() - Comparaison binaire des n premiers caractères
  • strncasecmp() - Compare en binaire des chaînes de caractères
  • strnatcasecmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)
  • strstr() - Trouve la première occurrence dans une chaîne
  • natsort() - Trie un tableau avec l'algorithme à "ordre naturel"
  • natcasesort() - Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse


Compare en binaire des chaînes de caractères

  • « strnatcmp
  • strncmp »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Compare en binaire des chaînes de caractères

strncasecmp

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

strncasecmp — Compare en binaire des chaînes de caractères

Description

int strncasecmp ( string $str1 , string $str2 , int $len )

strncasecmp() est similaire à strcasecmp(), à la différence près qu'elle permet de limiter le nombre de caractères utilisés pour comparer str1 et str2, avec le paramètre len.

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

len

La longueur des chaînes à utiliser dans la comparaison.

Valeurs de retour

Retourne < 0 si str1 est plus petite que str2; > 0 si str1 est plus grande que str2, et 0 si elles sont égales.

Voir aussi

  • strncmp() - Comparaison binaire des n premiers caractères
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • substr_compare() - Compare deux chaînes depuis un offset jusqu'à une longueur en caractères
  • strcasecmp() - Comparaison insensible à la casse de chaînes binaires
  • stristr() - Version insensible à la casse de strstr
  • substr() - Retourne un segment de chaîne


Comparaison binaire des n premiers caractères

  • « strncasecmp
  • strpbrk »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Comparaison binaire des n premiers caractères

strncmp

(PHP 4, PHP 5, PHP 7)

strncmp — Comparaison binaire des n premiers caractères

Description

int strncmp ( string $str1 , string $str2 , int $len )

Identique à la fonction strcmp(), avec la différence que vous pouvez spécifier le nombre maximum de caractères à utiliser pour la comparaison de str1 avec str2 grâce au paramètre len.

Notez que cette comparaison est sensible à la casse.

Liste de paramètres

str1

La première chaîne.

str2

La seconde chaîne.

len

Nombre de caractères à utiliser pour la comparaison.

Valeurs de retour

Retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Voir aussi

  • strncasecmp() - Compare en binaire des chaînes de caractères
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • substr_compare() - Compare deux chaînes depuis un offset jusqu'à une longueur en caractères
  • strcmp() - Comparaison binaire de chaînes
  • strstr() - Trouve la première occurrence dans une chaîne
  • substr() - Retourne un segment de chaîne


Recherche un ensemble de caractères dans une chaîne de caractères

  • « strncmp
  • strpos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Recherche un ensemble de caractères dans une chaîne de caractères

strpbrk

(PHP 5, PHP 7)

strpbrk — Recherche un ensemble de caractères dans une chaîne de caractères

Description

string strpbrk ( string $haystack , string $char_list )

strpbrk() recherche l'ensemble de caractères char_list dans la chaîne haystack.

Liste de paramètres

haystack

La chaîne dans laquelle on cherche char_list.

char_list

Ce paramètre est sensible à la casse.

Valeurs de retour

Retourne une chaîne, commençant au premier caractère trouvé, ou FALSE s'il n'a pas été trouvé.

Exemples

Exemple #1 Exemple avec strpbrk()

<?php

$text = 'This is a Simple text.';

// Ceci affichera "is is a Simple text." car 'i' correspond au premier
echo strpbrk($text, 'mi');

// Ceci affichera "Simple text." car les caractères sont sensibles à la casse
echo strpbrk($text, 'S');
?>

Voir aussi

  • strpos() - Cherche la position de la première occurrence dans une chaîne
  • strstr() - Trouve la première occurrence dans une chaîne
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard


Cherche la position de la première occurrence dans une chaîne

  • « strpbrk
  • strrchr »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Cherche la position de la première occurrence dans une chaîne

strpos

(PHP 4, PHP 5, PHP 7)

strpos — Cherche la position de la première occurrence dans une chaîne

Description

mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

Cherche la position numérique de la première occurrence de needle dans la chaîne de caractères haystack.

Liste de paramètres

haystack

La chaîne dans laquelle on doit chercher.

needle

Si needle n'est pas une chaîne, il est converti en entier, et utilisé comme caractère de code ASCII correspondant.

offset

Si spécifié, la recherche commencera à partir de ce nombre de caractères compté depuis le début de la chaîne. Si ce nombre est négatif, la recherche commencera en utilisant ce nombre de caractères mais en commençant par la fin de la chaîne.

Valeurs de retour

Retourne la position numérique de l'occurrence relativement au début de la chaîne haystack (indépendamment de l'offset). Notez également que la position dans la chaîne commence à 0, et non pas à 1.

Retourne FALSE si l'occurrence n'a pas été trouvée.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Historique

Version | Description
7.1.0 | Ajout du support des nombres négatifs pour le paramètre offset.

Exemples

Exemple #1 Avec ===

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
// car la position de 'a' est la 0-ième (premier) caractère.
if ($pos === false) {
    echo "La chaîne '$findme' ne se trouve pas dans la chaîne '$mystring'";
} else {
    echo "La chaine '$findme' a été trouvée dans la chaîne '$mystring'";
    echo " et débute à la position $pos";
}
?>

Exemple #2 Avec !==

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Notez notre utilisation de !==.  != ne fonctionnerait pas comme attendu
// car la position de 'a' est la 0-ième (premier) caractère.
if ($pos !== false) {
    echo "La chaine '$findme' a été trouvée dans la chaîne '$mystring'";
    echo " et débute à la position $pos";
} else {
    echo "La chaîne '$findme' ne se trouve pas dans la chaîne '$mystring'";
}
?>

Exemple #3 Utiliser un offset

<?php
// Nous pouvons chercher le caractère, et ignorer tout ce qui est avant l'offset
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, non pas 0
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • stripos() - Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse
  • strrpos() - Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne
  • strripos() - Cherche la position de la dernière occurrence d'une chaîne contenue dans une autre, de façon insensible à la casse
  • strstr() - Trouve la première occurrence dans une chaîne
  • strpbrk() - Recherche un ensemble de caractères dans une chaîne de caractères
  • substr() - Retourne un segment de chaîne
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard


Trouve la dernière occurrence d'un caractère dans une chaîne

  • « strpos
  • strrev »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Trouve la dernière occurrence d'un caractère dans une chaîne

strrchr

(PHP 4, PHP 5, PHP 7)

strrchr — Trouve la dernière occurrence d'un caractère dans une chaîne

Description

string strrchr ( string $haystack , mixed $needle )

Retourne le segment de la chaîne haystack qui commence avec la dernière occurrence de needle, jusqu'à la fin de la chaîne haystack.

Liste de paramètres

haystack

La chaîne dans laquelle on doit chercher.

needle

Si needle contient plus d'un caractère, seul le premier sera utilisé. Ce comportement est différent de celui de strchr().

Si needle n'est pas une chaîne, il est converti en entier, et utilisée comme caractère de code ASCII correspondant.

Valeurs de retour

Retourne la portion de la chaîne, ou FALSE si needle n'est pas trouvé.

Historique

Version | Description
4.3.0 | Cette fonction est maintenant compatible avec les données binaires.

Exemples

Exemple #1 Exemple avec strrchr()

<?php
// Lit le dernier dossier dans le chemin $PATH
$dir = substr(strrchr($PATH, ":"), 1);

// Lit tout, après la dernière nouvelle ligne
$text = "Ligne 1\nLigne 2\nLigne 3";
$last = substr(strrchr($text, 10), 1 );
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • strstr() - Trouve la première occurrence dans une chaîne
  • strrpos() - Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne


Inverse une chaîne

  • « strrchr
  • strripos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Inverse une chaîne

strrev

(PHP 4, PHP 5, PHP 7)

strrev — Inverse une chaîne

Description

string strrev ( string $string )

Retourne la chaîne string, après avoir changé l'ordre des caractères.

Liste de paramètres

string

La chaîne à inverser.

Valeurs de retour

Retourne la chaîne inversée.

Exemples

Exemple #1 Inverser une chaîne avec strrev()

<?php
echo strrev("Hello world!"); // Affiche "!dlrow olleH"
?>


Cherche la position de la dernière occurrence d'une chaîne contenue dans une autre, de façon insensible à la casse

  • « strrev
  • strrpos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Cherche la position de la dernière occurrence d'une chaîne contenue dans une autre, de façon insensible à la casse

strripos

(PHP 5, PHP 7)

strripos — Cherche la position de la dernière occurrence d'une chaîne contenue dans une autre, de façon insensible à la casse

Description

int strripos ( string $haystack , string $needle [, int $offset = 0 ] )

Cherche la position numérique de la dernière occurrence de needle dans la chaîne de caractères haystack.

Contrairement à la fonction strrpos(), strripos() est insensible à la casse.

Liste de paramètres

haystack

La chaîne dans laquelle on doit chercher.

needle

Si needle n'est pas une chaîne, il sera converti en un entier, et appliqué comme valeur ordinale d'un caractère.

offset

Si spécifié, la recherche commencera à ce nombre de caractères compté depuis le début de la chaîne. Si la valeur est négative, la recherche commencera depuis ce nombre de caractères depuis la fin de la chaîne, en cherchant en arrière.

Valeurs de retour

Retourne la position de la dernière occurrence de needle relativement au début de la chaîne haystack (indépendamment de la direction de recherche ou de l'offset). Notez que la position commence à partir de 0, et non de 1.

Retourne FALSE si l'occurrence n'a pas été trouvée.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple avec strripos()

<?php
$haystack = 'ababcd';
$needle   = 'aB';

$pos      = strripos($haystack, $needle);

if ($pos === false) {
    echo "Désolé, impossible de trouver ($needle) dans ($haystack)";
} else {
    echo "Félicitations !\n";
    echo "Nous avons trouvé le dernier ($needle) dans ($haystack) à la position ($pos)";
}
?>

L'exemple ci-dessus va afficher :

Félicitations !
Nous avons trouvé le dernier (aB) dans (ababcd) à la position (2)

Voir aussi

  • strpos() - Cherche la position de la première occurrence dans une chaîne
  • stripos() - Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse
  • strrpos() - Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne
  • strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
  • stristr() - Version insensible à la casse de strstr
  • substr() - Retourne un segment de chaîne


Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne

  • « strripos
  • strspn »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne

strrpos

(PHP 4, PHP 5, PHP 7)

strrpos — Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne

Description

int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )

Cherche la position numérique de la dernière occurrence de needle dans la chaîne haystack.

Liste de paramètres

haystack

La chaîne dans laquelle chercher.

needle

Si needle n'est pas une chaîne de caractères, il sera converti en un entier et utilisé comme valeur ordinale du caractère.

offset

Si spécifié, la recherche commencera à ce nombre de caractères, compté depuis le début de la chaîne. Si la valeur est négative, la recherche commencera depuis ce nombre de caractères, depuis la fin de la chaîne, en cherchant en arrière.

Valeurs de retour

Retourne la position à laquelle l'occurrence a été trouvée relativement au debut de la chaîne haystack (indépendamment de la direction de recherche ou de l'offset).

Retourne FALSE si l'occurrence n'a pas été trouvée.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Historique

Version | Description
5.0.0 | Le paramètre needle peut maintenant être une chaîne de caractères composée de plus d'un caractère.

Exemples

Exemple #1 Vérifie si une occurrence est trouvée dans une chaîne

Il est facile de faire une erreur quant à la valeur retournée entre "caractère trouvé à la position 0" et "caractère non trouvé". Voici comme détecter cette différence :

<?php

$pos = strrpos($mystring, "b");
if ($pos === false) { // note : 3 signes "="
    // non trouvé ...
}

?>

Exemple #2 Recherche avec positions

<?php
$foo = "0123456789a123456789b123456789c";

var_dump(strrpos($foo, '7', -5));  // Commence à cherche en arrière de 5 positions
                                   // depuis la fin. Résultat : int(17)

var_dump(strrpos($foo, '7', 20));  // Commence à chercher à partir de la 20ème positions
                                   // dansla chaîne. Résultat : int(27)

var_dump(strrpos($foo, '7', 28));  // Résultat : bool(false)
?>

Voir aussi

  • strpos() - Cherche la position de la première occurrence dans une chaîne
  • stripos() - Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse
  • strripos() - Cherche la position de la dernière occurrence d'une chaîne contenue dans une autre, de façon insensible à la casse
  • strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
  • substr() - Retourne un segment de chaîne


Trouve la longueur du segment initial d'une chaîne contenant tous les caractères d'un masque donné

  • « strrpos
  • strstr »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Trouve la longueur du segment initial d'une chaîne contenant tous les caractères d'un masque donné

strspn

(PHP 4, PHP 5, PHP 7)

strspn — Trouve la longueur du segment initial d'une chaîne contenant tous les caractères d'un masque donné

Description

int strspn ( string $subject , string $mask [, int $start [, int $length ]] )

Trouve la longueur du segment initial de subject qui contient uniquement les caractères depuis le masque mask.

Si les paramètres start et length sont omis, alors toutes les chaînes subject seront analysées. S'ils sont fournis, alors les effets seront identiques à appeler strspn(substr($subject, $start, $length), $mask) (voir substr pour plus d'informations).

Le code suivant :

<?php
$var = strspn("42 est la réponse, mais quelle est la question.", "1234567890");
?>
assigne 2 à la variable $var, car la chaîne "42" est le segment initial du paramètre subject dont les caractères sont contenus dans "1234567890".

Liste de paramètres

subject

La chaîne à analyser.

mask

La liste des caractères autorisés.

start

La position dans la chaîne subject à partir de laquelle nous devons chercher.

Si start est fourni et n'est pas négatif, alors strspn() commencera à analyser la chaîne subject à la position start. Par exemple, dans la chaîne 'abcdef', le caractère à la position 0 est 'a', le caractère à la position 2 est 'c', et ainsi de suite.

Si start est fourni et est négatif, alors strspn() commencera à analyser la chaîne subject à la position start depuis la fin de la chaîne subject.

length

La longueur de la chaîne à analyser.

Si length est fourni et n'est pas négatif, alors subject sera examiné sur length caractères après la position de départ.

Si length est fourni et est négatif, alors subject sera examiné sur length caractères depuis la fin de la chaîne subject.

Valeurs de retour

Retourne la taille du segment initial de la chaîne subject qui est entièrement constitué de caractères contenus dans mask.

Note:

Lorsque le paramètre start est défini, la longueur retournée est comptée à partir de cette position, et non depuis le début du paramètre subject.

Exemples

Exemple #1 Exemple avec strspn()

<?php
// Le sujet ne commence pas par un des caractères depuis le masque
var_dump(strspn("foo", "o"));

// Examine 2 caractères depuis le début du sujet, à la position 1
var_dump(strspn("foo", "o", 1, 2));

// Examine un caractère depuis le début du sujet, à la position 1
var_dump(strspn("foo", "o", 1, 1));
?>

L'exemple ci-dessus va afficher :

int(0)
int(2)
int(1)

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • strcspn() - Trouve un segment de chaîne ne contenant pas certains caractères


Trouve la première occurrence dans une chaîne

  • « strspn
  • strtok »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Trouve la première occurrence dans une chaîne

strstr

(PHP 4, PHP 5, PHP 7)

strstr — Trouve la première occurrence dans une chaîne

Description

string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

Retourne une sous-chaîne de haystack, allant de la première occurrence de needle (incluse) jusqu'à la fin de la chaîne.

Note:

strstr() est sensible à la casse. Pour une fonctionnalité identique, mais insensible à la casse, reportez-vous à stristr().

Note:

Si vous voulez juste déterminer si un needle particulier se trouve dans la chaîne haystack, utilisez la fonction strpos() qui est plus rapide et qui consomme moins de ressources.

Liste de paramètres

haystack

La chaîne d'entrée.

needle

Si needle n'est pas une chaîne, elle sera convertie en entier, et utilisée comme code ASCII du caractère correspondant.

before_needle

Si vaut TRUE, strstr() retourne la partie de haystack avant la première occurrence de needle (needle étant exclus).

Valeurs de retour

Retourne la portion de la chaîne, ou FALSE si needle n'est pas trouvé.

Historique

Version | Description
5.3.0 | Ajout du paramètre optionnel before_needle.
4.3.0 | strstr() est maintenant compatible avec les données binaires.

Exemples

Exemple #1 Exemple avec strstr()

<?php
$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // Affiche : @example.com

$user = strstr($email, '@', true); // Depuis PHP 5.3.0
echo $user; // Affiche : name
?>

Voir aussi

  • stristr() - Version insensible à la casse de strstr
  • strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
  • strpos() - Cherche la position de la première occurrence dans une chaîne
  • strpbrk() - Recherche un ensemble de caractères dans une chaîne de caractères
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard


Coupe une chaîne en segments

  • « strstr
  • strtolower »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Coupe une chaîne en segments

strtok

(PHP 4, PHP 5, PHP 7)

strtok — Coupe une chaîne en segments

Description

string strtok ( string $str , string $token )
string strtok ( string $token )

strtok() coupe la chaîne str en segments, chaque segment étant délimité par token. Par exemple, si vous avez une chaîne telle que "Voici un bon exemple", vous pouvez en extraire les différents mots en utilisant cette fonction.

Notez que seul le premier appel à strtok() nécessite les deux arguments. Tous les appels ultérieurs à strtok() ne nécessitent que le délimiteur. Pour initialiser à nouveau strtok(), ou pour recommencer, fournissez à nouveau le paramètre str. La chaîne str sera découpée dès que l'un des caractères de token est trouvé.

Liste de paramètres

str

La chaîne que l'on doit couper en plusieurs chaînes de tailles plus petites.

token

Le délimiteur utilisé lors de la découpe.

Valeurs de retour

Une chaîne coupée.

Exemples

Exemple #1 Exemple avec strtok()

<?php
$string = "This is\tan example\nstring";
// Utilisez aussi les nouvelles lignes et les tabulations
// comme séparateur de mots
$tok = strtok($string, " \n\t");

while ($tok !== false) {
    echo "Word=$tok<br />";
    $tok = strtok(" \n\t");
}
?>

Le comportement de cette fonction avec la chaîne vide a changé depuis PHP 4.1.0. L'ancien comportement était de retourner une chaîne vide, tandis que le nouveau comportement, plus correct, retourne FALSE :

Exemple #2 Ancien comportement de strtok()

<?php
$first_token  = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>

L'exemple ci-dessus va afficher :

    string(0) ""
    string(9) "something"

Exemple #3 Nouveau comportement de strtok()

<?php
$first_token  = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>

L'exemple ci-dessus va afficher :

    string(9) "something"
    bool(false)

Notes

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi

  • split() - Scinde une chaîne en un tableau, grâce à une expression rationnelle
  • explode() - Coupe une chaîne en segments


Renvoie une chaîne en minuscules

  • « strtok
  • strtoupper »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Renvoie une chaîne en minuscules

strtolower

(PHP 4, PHP 5, PHP 7)

strtolower — Renvoie une chaîne en minuscules

Description

string strtolower ( string $string )

Retourne string, après avoir converti tous les caractères alphabétiques en minuscules.

Notez que la notion d'"alphabétique" est déterminée par la configuration de localisation. Cela signifie que pour la configuration par défaut "C", les caractères tels que les voyelles accentuées (comme é, è ou à) ne seront pas convertis.

Liste de paramètres

string

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne en minuscule.

Exemples

Exemple #1 Exemple avec strtolower()

<?php
$str = "Marie A un Petit Agneau, et l'aime TRès fORt.";
$str = strtolower($str);
echo $str; // marie a un petit agneau, et l'aime très fort.
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • strtoupper() - Renvoie une chaîne en majuscules
  • ucfirst() - Met le premier caractère en majuscule
  • ucwords() - Met en majuscule la première lettre de tous les mots
  • mb_strtolower() - Met tous les caractères en minuscules


Renvoie une chaîne en majuscules

  • « strtolower
  • strtr »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Renvoie une chaîne en majuscules

strtoupper

(PHP 4, PHP 5, PHP 7)

strtoupper — Renvoie une chaîne en majuscules

Description

string strtoupper ( string $string )

strtoupper() retourne string, après avoir converti tous les caractères alphabétiques en majuscules.

Notez que la notion d'"alphabétique" est déterminée par la configuration de localisation. Cela signifie que pour la configuration par défaut "C", les caractères tels que les voyelles accentuées (comme é, è ou à) ne seront pas converties.

Liste de paramètres

string

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne en majuscule.

Exemples

Exemple #1 Exemple avec strtoupper()

<?php
$str = "Marie A un Petit Agneau, et l'aime fORt.";
$str = strtoupper($str);
echo $str; // MARIE A UN PETIT AGNEAU, ET L'AIME FORT.

// Note : Très aurait été converti en TRèS
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • strtolower() - Renvoie une chaîne en minuscules
  • ucfirst() - Met le premier caractère en majuscule
  • ucwords() - Met en majuscule la première lettre de tous les mots
  • mb_strtoupper() - Met tous les caractères en majuscules


Remplace des caractères dans une chaîne

  • « strtoupper
  • substr_compare »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Remplace des caractères dans une chaîne

strtr

(PHP 4, PHP 5, PHP 7)

strtr — Remplace des caractères dans une chaîne

Description

string strtr ( string $str , string $from , string $to )
string strtr ( string $str , array $replace_pairs )

Si trois arguments sont utilisés, strtr() retourne la chaîne str après avoir remplacé chaque caractère (de un octet) du paramètre from par son équivalent dans le paramètre to, chaque occurence de $from[$n] est remplacée par $to[$n], où $n est une valeur valide pour chaque argument.

Si from et to sont de tailles différentes, les caractères en trop dans l'un ou l'autre seront ignorés. La taille de str sera la même que celle des valeurs retournées.

Si seuls deux arguments sont utilisés, le deuxième doit être un array de la forme array('from' => 'to', ...). La donnée retournée est une string dans laquelle toutes les occurrences des clés du tableau ont été remplacées par les valeurs correspondantes. Les clés les plus longues seront d'abord utilisées. Une fois une sous-chaine remplacée, sa nouvelle valeur ne sera plus recherchée.

Dans ce cas, les clés et les valeurs peuvent avoir n'importe quelle taille, en supposant qu'il n'y a pas de clé vide; aussi, la taille de la valeur retournée peut différer de celle de str. Cependant, cette fonction sera la plus efficace lorsque toutes les clés ont la même taille.

Liste de paramètres

str

La chaîne à traiter.

from

Les caractères de départ.

to

Les caractères de remplacement.

replace_pairs

Le paramètre replace_pairs peut être utilisé à la place de to et from et dans ce cas, ce sera un tableau sous la forme array('from' => 'to', ...).

Valeurs de retour

Retourne la chaîne de caractères modifiée.

Si replace_pairs contient une clé vide (""), FALSE sera retourné. Si le paramètre str n'est pas un scalaire, alors il ne sera pas transtypé en une chaîne de caractères, une alerte sera émise, et la valeur NULL sera retournée.

Exemples

Exemple #1 Exemple avec strtr()

<?php
// Ici, strtr() remplace octet par octet, nous supposons
// donc ici des encodages dur un seul octet:
$addr = strtr($addr, "äåö", "aao");
?>

L'exemple suivant montre l'utilisation de strtr() avec deux arguments. Notez la préférence des remplacements (h n'est pas utilisé car il y a des correspondances plus longues) et comment le texte remplacé n'est pas réutilisé par la suite.

Exemple #2 Exemple avec strtr() et 2 arguments

<?php
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>

L'exemple ci-dessus va afficher :

hello all, I said hi

Les deux comportements sont différents. Avec trois arguments, strtr() remplacera les octets; avec deux, elle peut remplacer des sous-chaines plus longues.

Exemple #3 Comparaison de comportement de strtr()

<?php
echo strtr("baab", "ab", "01"),"\n";

$trans = array("ab" => "01");
echo strtr("baab", $trans);
?>

L'exemple ci-dessus va afficher :

1001
ba01

Voir aussi

  • str_replace() - Remplace toutes les occurrences dans une chaîne
  • preg_replace() - Rechercher et remplacer par expression rationnelle standard


Compare deux chaînes depuis un offset jusqu'à une longueur en caractères

  • « strtr
  • substr_count »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Compare deux chaînes depuis un offset jusqu'à une longueur en caractères

substr_compare

(PHP 5, PHP 7)

substr_compare — Compare deux chaînes depuis un offset jusqu'à une longueur en caractères

Description

int substr_compare ( string $main_str , string $str , int $offset [, int $length [, bool $case_insensitivity = false ]] )

substr_compare() compare main_str à partir de la position offset avec str pendant length caractères.

Liste de paramètres

main_str

La chaîne principale à comparer.

str

La chaîne secondaire à comparer.

offset

La position de départ de la comparaison dans main_str. Si c'est une valeur négative, on commence à compter à partir de la fin de la chaîne.

length

La longueur de la comparaison. La valeur par défaut est le maximum entre la longueur de str et la longueur de main_str moins le paramètre offset.

case_insensitivity

Si case_insensitivity vaut TRUE, la comparaison est insensible à la casse.

Valeurs de retour

Retourne < 0 si main_str à partir de offset est inférieur à str, > 0 s'il est plus grand que str, et 0 si ils sont égaux. Si length est égal ou plus grand que la taille de main_str ou que length est configuré et est inférieur à 1 (avant PHP 5.6), substr_compare() affiche une alerte et retourne FALSE.

Historique

Version | Description
5.6.0 | Le paramètre length peut maintenant valoir 0.
5.1.0 | Ajout de la possibilité d'utiliser une valeur négative pour le paramètre offset.

Exemples

Exemple #1 Exemple avec substr_compare()

<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "de", -2, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 1
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // warning
?>

Voir aussi

  • strncmp() - Comparaison binaire des n premiers caractères


Compte le nombre d'occurrences de segments dans une chaîne

  • « substr_compare
  • substr_replace »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Compte le nombre d'occurrences de segments dans une chaîne

substr_count

(PHP 4, PHP 5, PHP 7)

substr_count — Compte le nombre d'occurrences de segments dans une chaîne

Description

int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] )

substr_count() retourne le nombre d'occurrences de needle dans la chaîne haystack. Notez que needle est sensible à la casse.

Note:

Cette fonction ne compte pas les chaînes de caractères qui se recouvrent. Voyez l'exemple ci-dessous !

Liste de paramètres

haystack

La chaîne de caractères pour rechercher à l'intérieur

needle

La chaîne de caractères que l'on recherche

offset

Le décalage où on commence à compter. Si la position est négative, le comptage commence depuis la fin de la chaîne.

length

La taille maximale après le décalage spécifié pour rechercher la chaîne. La fonction émet une erreur si le décalage plus la taille est plus grand que la taille de haystack. Une taille négative fera que le comptage commencera à la fin de haystack.

Valeurs de retour

Cette fonction retourne un entier.

Historique

Version | Description
7.1.0 | Ajout du support des nombres négatifs pour offset et length.
5.1.0 | Ajout des paramètres offset et length

Exemples

Exemple #1 Exemple avec substr_count()

<?php
$text = 'Ceci est un test';
echo strlen($text); // 16

echo substr_count($text, 'est'); // 2

// la chaîne de caractères est réduite à 'st un test', alors elle affiche 1
echo substr_count($text, 'est', 6);

// le texte est réduit à 'st u', alors elle affiche 0
echo substr_count($text, 'est', 6, 4);

// génère une erreur parce que 8+10 > 16
echo substr_count($text, 'est', 8, 10);

// affiche seulement 1, parce que elle ne compte pas les chaînes de caractères
// qui se recouvrent
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd');
?>

Voir aussi

  • count_chars() - Retourne des statistiques sur les caractères utilisés dans une chaîne
  • strpos() - Cherche la position de la première occurrence dans une chaîne
  • substr() - Retourne un segment de chaîne
  • strstr() - Trouve la première occurrence dans une chaîne


Remplace un segment dans une chaîne

  • « substr_count
  • substr »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Remplace un segment dans une chaîne

substr_replace

(PHP 4, PHP 5, PHP 7)

substr_replace — Remplace un segment dans une chaîne

Description

mixed substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] )

substr_replace() remplace un segment de la chaîne string par la chaîne replacement. Le segment est délimité par start et éventuellement par length.

Liste de paramètres

string

La chaîne d'entrée.

Un tableau de chaînes de caractères peut être fourni, et dans ce cas, les remplacements surviendront sur chacune des chaînes. Dans cette situation, les paramètres replacement, start length doivent être fournis soit comme valeurs scalaires à appliquer sur chaque chaîne, ou comme tableaux où l'élément du tableau correspondant sera utilisé pour chaque chaîne d'entrée.

replacement

La chaîne de remplacement.

start

Si start est positif, le remplacement se fera à partir du caractère numéro start dans string.

Si start est négatif, le remplacement se fera à partir du start-ième caractère en partant de la fin de la chaîne string.

length

Si length est fourni et positif, il représentera la longueur du segment de code remplacé dans la chaîne string. S'il est négatif, il représentera le nombre de caractères à partir de la fin de la chaîne string où arrêter le remplacement. S'il est omis, il prendra la valeur par défaut de la taille de la chaîne, et remplacera tout jusqu'à la fin de la chaîne string. Bien sûr, si length vaut 0, alors, cette fonction aura comme effet d'insérer replacement dans string à la position start donnée.

Valeurs de retour

La chaîne résultante est retournée. Si le paramètre string est un tableau, alors un tableau sera retourné.

Exemples

Exemple #1 Exemple avec substr_replace()

<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original : $var<hr />\n";

// Remplace toute la chaîne $var par 'bob'.
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";

// Insert 'bob' au début de la chaîne
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";

// Remplace la séquence 'MNRPQR' par 'bob'.
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";

// Efface la séquence 'MNRPQR' de $var.
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>

Exemple #2 Utilisation de substr_replace() pour remplacer plusieurs chaînes en une seule fois

<?php
$input = array('A: XXX', 'B: XXX', 'C: XXX');

// Un cas simple : remplacer XXX dans chaque chaîne par YYY.
echo implode('; ', substr_replace($input, 'YYY', 3, 3))."\n";

// Un cas plus complexe où chaque remplacement est différent.
$replace = array('AAA', 'BBB', 'CCC');
echo implode('; ', substr_replace($input, $replace, 3, 3))."\n";

// Remplace un nombre différent de caractères à chaque fois.
$length = array(1, 2, 3);
echo implode('; ', substr_replace($input, $replace, 3, $length))."\n";
?>

L'exemple ci-dessus va afficher :

A: YYY; B: YYY; C: YYY
A: AAA; B: BBB; C: CCC
A: AAAXX; B: BBBX; C: CCC

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • str_replace() - Remplace toutes les occurrences dans une chaîne
  • substr() - Retourne un segment de chaîne
  • Accès et modification d'une chaîne, par caractère


Retourne un segment de chaîne

  • « substr_replace
  • trim »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Retourne un segment de chaîne

substr

(PHP 4, PHP 5, PHP 7)

substr — Retourne un segment de chaîne

Description

string substr ( string $string , int $start [, int $length ] )

Retourne le segment de string défini par start et length.

Liste de paramètres

string

La chaîne d'entrée. Doit comporter au moins un caractère.

start

Si start est positif, la chaîne retournée commencera au caractère numéro start, dans la chaîne string. Le premier caractère est numéroté zéro. En effet, dans la chaîne 'abcdef', le caractère à la position 0 est 'a', le caractère à la position 2 est 'c', et ainsi de suite.

Si start est négatif, la chaîne retournée commencera au caractère numéro start à compter de la fin de la chaîne string.

Si string est plus petit que start caractères de long, FALSE sera retourné.

Exemple #1 Exemple de start négatif

<?php
$rest = substr("abcdef", -1);    // retourne "f"
$rest = substr("abcdef", -2);    // retourne "ef"
$rest = substr("abcdef", -3, 1); // retourne "d"
?>

length

Si length est fourni et est positif, la chaîne retournée contiendra au plus length caractères, en commençant à partir du caractère start (en fonction de la taille de la chaîne string).

Si length est fourni et négatif, alors le même nombre de caractères sera omis, en partant de la fin de la chaîne string. Si start représente une position hors de la chaîne, FALSE sera retournée.

Si le paramètre length est fourni et vaut 0, FALSE ou NULL, une chaîne vide sera retournée.

Si length est omis, la sous chaine commençant à partir de start jusqu'à la fin sera retournée.

Exemple #2 Utilisation d'une valeur négative pour length

<?php
$rest = substr("abcdef", 0, -1);  // retourne "abcde"
$rest = substr("abcdef", 2, -1);  // retourne "cde"
$rest = substr("abcdef", 4, -4);  // retourne false
$rest = substr("abcdef", -3, -1); // retourne "de"
?>

Valeurs de retour

Retourne la partie extraite de la chaîne string; ou FALSE si une erreur survient ou une chaine vide.

Historique

Version | Description
7.0.0 | Si string a une longueur égale à start caractères, une chaîne vide sera retournée. Avant cette version, FALSE était retourné dans ce cas.
5.2.2 - 5.2.6 | Si start est hors de la chaine, false est retourné. Les autres versions récupèrent la chaîne depuis le début.

Exemples

Exemple #3 Exemple avec substr()

<?php
echo substr('abcdef', 1);     // bcdef
echo substr('abcdef', 1, 3);  // bcd
echo substr('abcdef', 0, 4);  // abcd
echo substr('abcdef', 0, 8);  // abcdef
echo substr('abcdef', -1, 1); // f

// Accéder à un simple caractère dans une chaîne
// peut également être réalisé en utilisant des crochets
$string = 'abcdef';
echo $string[0];                 // a
echo $string[3];                 // d
echo $string[strlen($string)-1]; // f

?>

Exemple #4 Comportement du cast avec substr()

<?php
class apple {
    public function __toString() {
        return "green";
    }
}

echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>

Résultat de l'exemple ci-dessus en PHP 7 :

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) ''
6) ''
7) '1200'

Résultat de l'exemple ci-dessus en PHP 5 :

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) false
6) false
7) '1200'

Erreurs / Exceptions

Retourne FALSE si une erreur survient.

<?php
var_dump(substr('a', 2)); // bool(false)
?>

Voir aussi

  • strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
  • substr_replace() - Remplace un segment dans une chaîne
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • trim() - Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
  • mb_substr() - Lit une sous-chaîne
  • wordwrap() - Effectue la césure d'une chaîne
  • Accès et modification d'une chaîne, par caractère


Supprime les espaces (ou d'autres caractères) en début et fin de chaîne

  • « substr
  • ucfirst »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Supprime les espaces (ou d'autres caractères) en début et fin de chaîne

trim

(PHP 4, PHP 5, PHP 7)

trim — Supprime les espaces (ou d'autres caractères) en début et fin de chaîne

Description

string trim ( string $str [, string $character_mask = " \t\n\r\0\x0B" ] )

trim() retourne la chaîne str, après avoir supprimé les caractères invisibles en début et fin de chaîne. Si le second paramètre charlist est omis, trim() supprimera les caractères suivants :

  • " " (ASCII 32 (0x20)), un espace ordinaire.
  • "\t" (ASCII 9 (0x09)), une tabulation.
  • "\n" (ASCII 10 (0x0A)), une nouvelle ligne (line feed).
  • "\r" (ASCII 13 (0x0D)), un retour chariot (carriage return).
  • "\0" (ASCII 0 (0x00)), le caractère NUL.
  • "\x0B" (ASCII 11 (0x0B)), une tabulation verticale.

Liste de paramètres

str

La chaîne de caractères qui sera coupée.

character_mask

Optionnellement, les caractères supprimés peuvent aussi être spécifiés en utilisant le paramètre character_mask. Listez simplement tous les caractères que vous voulez supprimer. Avec .. vous pouvez spécifier une plage de caractères.

Valeurs de retour

La chaîne de caractères coupée.

Exemples

Exemple #1 Exemple avec trim()

<?php

$text   = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = trim($text);
var_dump($trimmed);

$trimmed = trim($text, " \t.");
var_dump($trimmed);

$trimmed = trim($hello, "Hdle");
var_dump($trimmed);

$trimmed = trim($hello, 'HdWr');
var_dump($trimmed);

// Supprime les caractères de contrôle ASCII au début et à la fin de $binary
// (de 0 à 31 inclusif)
$clean = trim($binary, "\x00..\x1F");
var_dump($clean);

?>

L'exemple ci-dessus va afficher :

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(28) "These are a few words :) ..."
string(24) "These are a few words :)"
string(5) "o Wor"
string(9) "ello Worl"
string(14) "Example string"

Exemple #2 Suppression de caractères dans un tableau avec trim()

<?php
function trim_value(&$value)
{
    $value = trim($value);
}

$fruit = array('apple','banana ', ' cranberry ');
var_dump($fruit);

array_walk($fruit, 'trim_value');
var_dump($fruit);

?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(7) "banana "
  [2]=>
  string(11) " cranberry "
}
array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(9) "cranberry"
}

Notes

Note: Utilisation possible : suppression des caractères en milieu de chaîne

En raison du fait que la fonction trim() supprime des caractères en début et en fin de chaîne, ce peut être confus lorsque les caractères sont (ou pas) supprimés depuis le milieu. trim('abc', 'bad') supprime à la fois 'a' et 'b' car la fonction supprime 'a', puis, déplace 'b' en début de chaîne, qui sera également supprimé. Aussi, c'est la raison pour laquelle la fonction "marche" alors que trim('abc', 'b') ne fonctionne pas.

Voir aussi

  • ltrim() - Supprime les espaces (ou d'autres caractères) de début de chaîne
  • rtrim() - Supprime les espaces (ou d'autres caractères) de fin de chaîne
  • str_replace() - Remplace toutes les occurrences dans une chaîne


Met le premier caractère en majuscule

  • « trim
  • ucwords »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Met le premier caractère en majuscule

ucfirst

(PHP 4, PHP 5, PHP 7)

ucfirst — Met le premier caractère en majuscule

Description

string ucfirst ( string $str )

Retourne la chaîne str après avoir remplacé le premier caractère par sa majuscule, si le premier caractère est alphabétique.

Notez que la notion d'"alphabétique" est déterminée par la configuration de localisation. Cela signifie que pour la configuration par défaut "C", les caractères tels que les voyelles accentuées (comme é, è ou à) ne seront pas converties.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne après modification.

Exemples

Exemple #1 Exemple avec ucfirst()

<?php
$foo = 'bonjour tout le monde!';
$foo = ucfirst($foo);             // Bonjour tout le monde!

$bar = 'BONJOUR TOUT LE MONDE!';
$bar = ucfirst($bar);             // BONJOUR TOUT LE MONDE!
$bar = ucfirst(strtolower($bar)); // Bonjour tout le monde!
?>

Voir aussi

  • lcfirst() - Met le premier caractère en minuscule
  • strtolower() - Renvoie une chaîne en minuscules
  • strtoupper() - Renvoie une chaîne en majuscules
  • ucwords() - Met en majuscule la première lettre de tous les mots


Met en majuscule la première lettre de tous les mots

  • « ucfirst
  • vfprintf »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Met en majuscule la première lettre de tous les mots

ucwords

(PHP 4, PHP 5, PHP 7)

ucwords — Met en majuscule la première lettre de tous les mots

Description

string ucwords ( string $str [, string $delimiters = " \t\r\n\f\v" ] )

Retourne la chaîne str après avoir mis en majuscule la première lettre de tous les mots, si ce caractère est alphabétique.

La définition d'un mot est : toute séquence de caractères qui suit immédiatement n'importe quel caractère listé dans le paramètre delimiters (par défaut, ce sont : une espace, un saut à la ligne, une nouvelle ligne, un retour à la ligne, une tabulation horizontale, et une tabulation verticale).

Liste de paramètres

str

La chaîne d'entrée.

delimiters

Le paramètre optionnel delimiters contient le caractère de séparation.

Valeurs de retour

Retourne la chaîne, après modification.

Historique

Version | Description
5.4.32, 5.5.16 | Ajout du paramètre delimiters.

Exemples

Exemple #1 Exemple avec ucwords()

<?php
$foo = 'bonjour tout le monde!';
$foo = ucwords($foo);             // Bonjour Tout Le Monde!

$bar = 'BONJOUR TOUT LE MONDE!';
$bar = ucwords($bar);             // BONJOUR TOUT LE MONDE!
$bar = ucwords(strtolower($bar)); // Bonjour Tout Le Monde!
?>

Exemple #2 Exemple avec ucwords() et un séparation personnalisé

<?php
$foo = 'hello|world!';
$bar = ucwords($foo);             // Hello|world!

$baz = ucwords($foo, "|");        // Hello|World!
?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • strtoupper() - Renvoie une chaîne en majuscules
  • strtolower() - Renvoie une chaîne en minuscules
  • ucfirst() - Met le premier caractère en majuscule
  • mb_convert_case() - Modifie la casse d'une chaîne


Écrit une chaîne formatée dans un flux

  • « ucwords
  • vprintf »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Écrit une chaîne formatée dans un flux

vfprintf

(PHP 5, PHP 7)

vfprintf — Écrit une chaîne formatée dans un flux

Description

int vfprintf ( resource $handle , string $format , array $args )

Écrit une chaîne produite en accord avec le paramètre format dans le flux handle.

Agit de la même façon que fprintf() excepté que vfprintf() accepte un tableau d'arguments, plutôt qu'un nombre variant d'arguments.

Liste de paramètres

handle

format

Voir la documentation de la fonction sprintf() pour une description complète du paramètre format.

args

Valeurs de retour

Retourne la longueur de la chaîne retournée.

Exemples

Exemple #1 vfprintf() : zéro comme caractères d'espacements

<?php
if (!($fp = fopen('date.txt', 'w')))
    return;

vfprintf($fp, "%04d-%02d-%02d", array($year, $month, $day));
// écrira la date formatée ISO dans date.txt
?>

Voir aussi

  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • fscanf() - Analyse un fichier en fonction d'un format
  • vsprintf() - Retourne une chaîne formatée
  • number_format() - Formate un nombre pour l'affichage


Affiche une chaîne formatée

  • « vfprintf
  • vsprintf »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Affiche une chaîne formatée

vprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

vprintf — Affiche une chaîne formatée

Description

int vprintf ( string $format , array $args )

vprintf() affiche le tableau args, sous forme de chaîne formatée grâce à format. Le format est le même que celui utilisé par sprintf().

vprintf() fonctionne comme printf(), mais accepte un tableau comme argument, au lieu d'une liste d'arguments.

Liste de paramètres

format

Voir la documentation de la fonction sprintf() pour une description détaillée du paramètre format.

args

Valeurs de retour

Retourne la longueur de la chaîne retournée.

Exemples

Exemple #1 Exemple avec vprintf() : entiers complétés avec des zéros

<?php
vprintf("%04d-%02d-%02d", explode('-', '1988-8-1')); // 1988-08-01
?>

Voir aussi

  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée
  • vsprintf() - Retourne une chaîne formatée


Retourne une chaîne formatée

  • « vprintf
  • wordwrap »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Retourne une chaîne formatée

vsprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

vsprintf — Retourne une chaîne formatée

Description

string vsprintf ( string $format , array $args )

vsprintf() fonctionne comme sprintf(), mais accepte un tableau comme argument, au lieu d'une liste d'arguments.

Liste de paramètres

format

Voir la documentation de la fonction sprintf() pour une description détaillée du paramètre format.

args

Valeurs de retour

Retourne une chaîne formatée à partir du tableau de valeurs args, et en utilisant le format format. Le format est le même que celui utilisé par sprintf().

Exemples

Exemple #1 Exemple avec vsprintf() : entiers avec zéro initiaux

<?php
print vsprintf("%04d-%02d-%02d", explode('-', '1988-8-1')); // 1988-08-01
?>

Voir aussi

  • sprintf() - Retourne une chaîne formatée
  • vprintf() - Affiche une chaîne formatée


Effectue la césure d'une chaîne

  • « vsprintf
  • Historique des modifications »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Effectue la césure d'une chaîne

wordwrap

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

wordwrap — Effectue la césure d'une chaîne

Description

string wordwrap ( string $str [, int $width = 75 [, string $break = "\n" [, bool $cut = false ]]] )

Effectue la césure d'une chaîne.

Liste de paramètres

str

La chaîne d'entrée.

width

Le nombre de caractères à partir duquel la chaîne sera coupée.

break

La ligne est rompue en utilisant ce paramètre optionnel.

cut

Si le paramètre cut vaut TRUE, la césure de la chaîne sera toujours à la taille width ou avant. Si vous avez un mot qui est plus long que la taille de césure, il sera coupé en morceaux : voir le second exemple. Lorsque vaut FALSE, la fonction ne va pas couper le mot, même si le paramètre width est plus petit que la taille du mot.

Valeurs de retour

Retourne la chaîne fournie coupée à la longueur spécifiée.

Exemples

Exemple #1 Exemple avec wordwrap()

<?php
$text = "Portez ce vieux whisky au juge blond qui fume.";
$newtext = wordwrap($text, 20, "<br />\n");

echo $newtext;
?>

L'exemple ci-dessus va afficher :

Portez ce vieux<br />
whisky au juge<br />
blond qui fume.

Exemple #2 Exemple avec wordwrap()

<?php
$text = "Un mot très très loooooooooooooooooong.";
$newtext = wordwrap($text, 8, "\n", true);

echo "$newtext\n";
?>

L'exemple ci-dessus va afficher :

Un mot
très
très
looooooo
oooooooo
ooong.

Exemple #3 Exemple avec wordwrap()

<?php
$text = "A very long woooooooooooooooooord. and something";
$newtext = wordwrap($text, 8, "\n", false);

echo "$newtext\n";
?>

L'exemple ci-dessus va afficher :

A very
long
woooooooooooooooooord.
and
something

Voir aussi

  • nl2br() - Insère un retour à la ligne HTML à chaque nouvelle ligne
  • chunk_split() - Scinde une chaîne


Historique des modifications

Les modifications suivantes ont été apportées aux classes/fonctions/méthodes de cette extension.

Version | Function | Description
7.1.0 | stripos | Ajout du support des nombres négatifs pour le paramètre offset.
 | strpos | Ajout du support des nombres négatifs pour le paramètre offset.
 | substr_count | Ajout du support des nombres négatifs pour offset et length.
7.0.0 | setlocale | Le support du paramètre category sous forme de chaîne de caractères a été supprimé. Seules les constantes LC_* peuvent être utilisées avec cette version.
 | substr | Si string a une longueur égale à start caractères, une chaîne vide sera retournée. Avant cette version, FALSE était retourné dans ce cas.
5.6.5 | crypt | Quand la chaine d'erreur "*0" est donnée comme salt, "*1" sera maintenant retournée par consistence avec les autres implémentations crypt. Antérieurement à cette version, PHP 5.6 va incorrectement retourner un hash DES.
5.6.0 | crypt | Lance une alerte de niveau E_NOTICE si le paramètre salt est omis.
 | html_entity_decode | La valeur par défaut pour le paramètre encoding a été modifiée pour être la valeur de l'option de configuration default_charset.
 | htmlentities | La valeur par défaut pour le paramètre encoding a été modifiée pour être la valeur de l'option de configuration default_charset.
 | htmlspecialchars | La valeur par défaut pour le paramètre encoding a été modifiée pour être la valeur de l'option de configuration default_charset.
 | substr_compare | Le paramètre length peut maintenant valoir 0.
5.5.21 | crypt | Quand la chaine d'erreur "*0" est donnée comme salt, "*1" sera maintenant retournée par consistence avec les autres implémentations crypt. Antérieurement à cette version, PHP 5.5 (et branches plus anciennes), crypt va incorrectement retourner un hash DES.
5.5.1 | hex2bin | Une alerte est émise si la chaîne en entrée est une chaîne héxadécimale invalide.
5.4.32, 5.5.16 | ucwords | Ajout du paramètre delimiters.
5.4.4 | hex2bin | Un avertissement est émis si la chaîne en entrée est de longueur impaire. Avec PHP 5.4.0, la chaîne était acceptée silencieusement, mais le dernier octet était tronqué.
5.4.0 | get_html_translation_table | La valeur par défaut du paramètre encoding a changé en UTF-8.
 | get_html_translation_table | Les constantes ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.
 | html_entity_decode | L'encodage par défaut a changé de ISO-8859-1 à UTF-8.
 | html_entity_decode | Les constantes ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.
 | htmlentities | Les constantes ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.
 | htmlentities | La valeur par défaut du paramètre encoding est maintenant UTF-8.
 | htmlspecialchars | Les constantes ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.
 | htmlspecialchars | La valeur par défaut du paramètre encoding est passée à UTF-8.
 | htmlspecialchars_decode | Les constantes ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.
 | number_format | Cette fonction supporte maintenant des paramètres dec_point et thousands_sep comportant plusieurs caractères. Seul le premier caractère était utilisé avant.
5.3.7 | crypt | Ajout de deux nouveaux modes Blowfish $2x$ et $2y$ pour éviter de potentielles attaques.
5.3.4 | get_html_translation_table | Le paramètre encoding a été ajouté.
 | strip_tags | strip_tags ignore les balises autofermantes dans allowable_tags.
5.3.2 | crypt | Ajout de SHA-256 et de SHA-512 basés sur l'implementation de Ulrich Drepper.
 | crypt | Correction du comportement de Blowfish lors d'étape invalide où une chaîne d'échec ("*0" ou "*1") était retournée au lieu de retourner le DES dans ce cas.
5.3.0 | crypt | PHP dispose maintenant de sa propre implémentation de crypt MD5, Standard DES, Extended DES et l'algorithme Blowfish. Il l'utilisera si le système ne fournit pas l'un ou l'autre des algorithmes.
 | htmlentities | La constante ENT_IGNORE a été ajoutée.
 | htmlspecialchars | La constante ENT_IGNORE a été ajoutée.
 | nl2br | Ajout du paramètre optionnel is_xhtml. Avant cette version, La balise '<br />' était toujours insérée.
 | setlocale | Cette fonction émet désormais une alerte E_DEPRECATED si une chaîne est passée comme paramètre category au lieu d'une des constantes LC_*.
 | stristr | Ajout du paramètre optionnel before_needle.
 | strlen | Les anciennes versions traitaient un tableau comme la chaîne de caractères Array, et ainsi, retournaient la longueur de la chaîne 5 et émettaient une erreur de niveau E_NOTICE.
 | strstr | Ajout du paramètre optionnel before_needle.
5.2.5 | addcslashes | Les séquences \v et \f ont été ajoutées.
5.2.3 | htmlentities | Ajout du paramètre double_encode.
 | htmlspecialchars | Ajout du paramètre double_encode.
5.2.2 - 5.2.6 | substr | Si start est hors de la chaine, false est retourné. Les autres versions récupèrent la chaîne depuis le début.
5.1.0 | explode | Le paramètre limit peut désormais être négatif
 | md5_file | La fonction a changé pour utiliser les flux API. Cela signifie que vous pouvez l'utiliser avec des enveloppes, comme md5_file('http://example.com/..')
 | sha1_file | La fonction a changé pour utiliser les flux API. Cela signifie que vous pouvez l'utiliser avec des enveloppes, comme sha1_file('http://example.com/..')
 | str_word_count | Ajout du paramètre charlist
 | substr_compare | Ajout de la possibilité d'utiliser une valeur négative pour le paramètre offset.
 | substr_count | Ajout des paramètres offset et length
5.0.0 | strip_tags | strip_tags fonctionne désormais avec les données binaires.
 | strrpos | Le paramètre needle peut maintenant être une chaîne de caractères composée de plus d'un caractère.
4.3.0 | stristr | stristr s'effectue en respectant les chaînes binaires.
 | strrchr | Cette fonction est maintenant compatible avec les données binaires.
 | strstr | strstr est maintenant compatible avec les données binaires.
4.2.3 | strcoll | Fonctionne désormais sous les systèmes Win32.


Extensions relatives aux variables et aux types

  • Les tableaux
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Tri des tableaux
    • Fonctions sur les tableaux
  • Classes/Objets — Les Classes/Objets
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Classes/Objets
  • Classkit
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Classkit
  • ctype — Vérification des types de caractères
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Ctype
  • Data Structures
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Collection — The Collection interface
    • Hashable — The Hashable interface
    • Sequence — The Sequence interface
    • Vector — The Vector class
    • Deque — The Deque class
    • Map — The Map class
    • Pair — The Pair class
    • Set — The Set class
    • Stack — The Stack class
    • Queue — The Queue class
    • PriorityQueue — The PriorityQueue class
  • Filter — Filtrage des données
    • Introduction
    • Installation/Configuration
    • Types de filtres
    • Constantes pré-définies
    • Exemples
    • Filter Fonctions
  • Gestion des fonctions
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions sur la gestion des fonctions
  • Quickhash
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • QuickHashIntSet — La classe QuickHashIntSet
    • QuickHashIntHash — La classe QuickHashIntHash
    • QuickHashStringIntHash — The QuickHashStringIntHash class
    • QuickHashIntStringHash — The QuickHashIntStringHash class
  • Reflection
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Étendre la classe
    • Reflection — La classe Reflection
    • ReflectionClass — La classe ReflectionClass
    • ReflectionZendExtension — La classe ReflectionZendExtension
    • ReflectionExtension — La classe ReflectionExtension
    • ReflectionFunction — La classe ReflectionFunction
    • ReflectionFunctionAbstract — La classe ReflectionFunctionAbstract
    • ReflectionMethod — La classe ReflectionMethod
    • ReflectionObject — La classe ReflectionObject
    • ReflectionParameter — La classe ReflectionParameter
    • ReflectionProperty — La classe ReflectionProperty
    • ReflectionType — The ReflectionType class
    • ReflectionGenerator — The ReflectionGenerator class
    • Reflector — L'interface Reflector
    • ReflectionException — La classe ReflectionException
  • Gestion des variables
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions de gestion des variables


Les tableaux

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Tri des tableaux
  • Fonctions sur les tableaux
    • array_change_key_case — Change la casse de toutes les clés d'un tableau
    • array_chunk — Sépare un tableau en tableaux de taille inférieure
    • array_column — Retourne les valeurs d'une colonne d'un tableau d'entrée
    • array_combine — Crée un tableau à partir de deux autres tableaux
    • array_count_values — Compte le nombre de valeurs d'un tableau
    • array_diff_assoc — Calcule la différence de deux tableaux, en prenant aussi en compte les clés
    • array_diff_key — Calcule la différence de deux tableaux en utilisant les clés pour comparaison
    • array_diff_uassoc — Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
    • array_diff_ukey — Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
    • array_diff — Calcule la différence entre des tableaux
    • array_fill_keys — Remplit un tableau avec des valeurs, en spécifiant les clés
    • array_fill — Remplit un tableau avec une même valeur
    • array_filter — Filtre les éléments d'un tableau grâce à une fonction utilisateur
    • array_flip — Remplace les clés par les valeurs, et les valeurs par les clés
    • array_intersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur les index
    • array_intersect_key — Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison
    • array_intersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
    • array_intersect_ukey — Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
    • array_intersect — Calcule l'intersection de tableaux
    • array_key_exists — Vérifie si une clé existe dans un tableau
    • array_keys — Retourne toutes les clés ou un ensemble des clés d'un tableau
    • array_map — Applique une fonction sur les éléments d'un tableau
    • array_merge_recursive — Combine plusieurs tableaux ensemble, récursivement
    • array_merge — Fusionne plusieurs tableaux en un seul
    • array_multisort — Trie les tableaux multidimensionnels
    • array_pad — Complète un tableau avec une valeur jusqu'à la longueur spécifiée
    • array_pop — Dépile un élément de la fin d'un tableau
    • array_product — Calcule le produit des valeurs du tableau
    • array_push — Empile un ou plusieurs éléments à la fin d'un tableau
    • array_rand — Prend une ou plusieurs valeurs, au hasard dans un tableau
    • array_reduce — Réduit itérativement un tableau
    • array_replace_recursive — Remplace récursivement dans le premier tableau les éléments des autres tableaux fournis
    • array_replace — Remplace les éléments d'un tableau par ceux d'autres tableaux
    • array_reverse — Inverse l'ordre des éléments d'un tableau
    • array_search — Recherche dans un tableau la clé associée à une valeur
    • array_shift — Dépile un élément au début d'un tableau
    • array_slice — Extrait une portion de tableau
    • array_splice — Efface et remplace une portion de tableau
    • array_sum — Calcule la somme des valeurs du tableau
    • array_udiff_assoc — Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
    • array_udiff_uassoc — Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
    • array_udiff — Calcule la différence entre deux tableaux en utilisant une fonction rappel
    • array_uintersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel
    • array_uintersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée
    • array_uintersect — Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
    • array_unique — Dédoublonne un tableau
    • array_unshift — Empile un ou plusieurs éléments au début d'un tableau
    • array_values — Retourne toutes les valeurs d'un tableau
    • array_walk_recursive — Applique une fonction de rappel récursivement à chaque membre d'un tableau
    • array_walk — Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau
    • array — Crée un tableau
    • arsort — Trie un tableau en ordre inverse et conserve l'association des index
    • asort — Trie un tableau et conserve l'association des index
    • compact — Crée un tableau à partir de variables et de leur valeur
    • count — Compte tous les éléments d'un tableau ou quelque chose d'un objet
    • current — Retourne l'élément courant du tableau
    • each — Retourne chaque paire clé/valeur d'un tableau
    • end — Positionne le pointeur de tableau en fin de tableau
    • extract — Importe les variables dans la table des symboles
    • in_array — Indique si une valeur appartient à un tableau
    • key_exists — Alias de array_key_exists
    • key — Retourne une clé d'un tableau associatif
    • krsort — Trie un tableau en sens inverse et suivant les clés
    • ksort — Trie un tableau suivant les clés
    • list — Assigne des variables comme si elles étaient un tableau
    • natcasesort — Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse
    • natsort — Trie un tableau avec l'algorithme à "ordre naturel"
    • next — Avance le pointeur interne d'un tableau
    • pos — Alias de current
    • prev — Recule le pointeur courant de tableau
    • range — Crée un tableau contenant un intervalle d'éléments
    • reset — Remet le pointeur interne de tableau au début
    • rsort — Trie un tableau en ordre inverse
    • shuffle — Mélange les éléments d'un tableau
    • sizeof — Alias de count
    • sort — Trie un tableau
    • uasort — Trie un tableau en utilisant une fonction de rappel
    • uksort — Trie un tableau par ses clés en utilisant une fonction de rappel
    • usort — Trie un tableau en utilisant une fonction de comparaison


Introduction

Ces fonctions vous permettent de travailler et de manipuler les tableaux de plusieurs façons. Les tableaux sont essentiels pour le stockage, la gestion et les opérations sur des jeux de variables.

Les tableaux simples et multidimensionnels sont supportés, et peuvent être créés soit par l'utilisateur, soit par une fonction. Il existe des fonctions spécifiques aux bases de données permettant de remplir des tableaux depuis des requêtes à la base de données, mais aussi des fonctions retournant des tableaux.

Référez-vous à la section sur les tableaux de ce manuel pour une explication détaillée sur la façon dont les tableaux sont implémentés et utilisés en PHP. Lisez également les opérateurs sur les tableaux afin de voir d'autres façons de manipuler les tableaux.


Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

CASE_LOWER (entier)
CASE_LOWER est utilisée avec array_change_key_case() et sert à convertir tous les index d'un tableau en minuscules. C'est aussi le comportement par défaut de array_change_key_case().
CASE_UPPER (entier)
CASE_UPPER est utilisée avec array_change_key_case() et sert à convertir tous les index d'un tableau en majuscules.

Constantes d'ordre de tri :

SORT_ASC (entier)
SORT_ASC est utilisée avec array_multisort() pour trier en ordre ascendant
SORT_DESC (entier)
SORT_DESC est utilisée avec array_multisort() pour trier en ordre descendant

Autres constantes d'ordre de tri :

SORT_REGULAR (entier)
SORT_REGULAR compare normalement les valeurs d'un tri.
SORT_NUMERIC (entier)
SORT_NUMERIC compare numériquement les valeurs d'un tri.
SORT_STRING (entier)
SORT_STRING compare alphabétiquement les valeurs d'un tri.
SORT_LOCALE_STRING (entier)
SORT_LOCALE_STRING compare alphabétiquement les valeurs d'un tri, en utilisant la configuration locale. Ajoutée en PHP 5.0.2 et PHP 4.4.0.
SORT_NATURAL (entier)
SORT_NATURAL est utilisé pour comparer les éléments comme des chaînes, en utilisant un "ordre naturel" comme le fait la fonction natsort(). Ajouté en PHP 5.4.0.
SORT_FLAG_CASE (entier)
SORT_FLAG_CASE peut être combiné (avec l'opérateur logique OR) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes en ne tenant pas compte de la casse. Ajouté en PHP 5.4.0.

Drapeaux du filtre :

ARRAY_FILTER_USE_KEY (integer)
ARRAY_FILTER_USE_KEY est utilisé avec la fonction array_filter() pour passer chaque clé comme premier argument à la fonction de rappel fournie. Ajouté en PHP 5.6.0.
ARRAY_FILTER_USE_BOTH (integer)
ARRAY_FILTER_USE_BOTH est utilisé avec la fonction array_filter() pour passer la valeur et la clé à la fonction de rappel fournie. Ajouté en PHP 5.6.0.

COUNT_NORMAL (entier)
COUNT_RECURSIVE (entier)
EXTR_OVERWRITE (entier)
EXTR_SKIP (entier)
EXTR_PREFIX_SAME (entier)
EXTR_PREFIX_ALL (entier)
EXTR_PREFIX_INVALID (entier)
EXTR_PREFIX_IF_EXISTS (entier)
EXTR_IF_EXISTS (entier)
EXTR_REFS (entier)


Tri des tableaux

PHP dispose de nombreuses fonctions pour trier les tableaux, et cette section du manuel va vous aider à vous y retrouver.

Les différences principales sont :

  • Certains des tris de tableau sont basés sur les clés, tandis que les autres sont basés sur les valeurs : $array['cle'] = 'valeur';
  • Certains tris maintiennent la corrélation entre les clés et les valeurs, et d'autres non, ce qui signifie que les clés sont généralement réaffectées numériquement (0,1,2 ...)
  • L'ordre du tri peut être : alphabétique, croissant, décroissant, numérique, naturel, aléatoire ou personnalisé.
  • Note : toutes ces fonctions de tris travaillent sur le tableau lui-même, contrairement à la pratique normale qui serait de retourner le tableau trié.
  • Si une de ces fonctions de tri évalue 2 membres comme égaux, alors l'ordre est indéfini (le tri n'est pas stable).

Attributs de fonctions de tri
Nom de la fonction | Tri par | Association clé-valeur | Ordre de tri | Fonctions associée
array_multisort() | valeur | associatif oui, numérique non | premier tableau, ou bien options de tri | array_walk()
asort() | valeur | oui | croissant | arsort()
arsort() | valeur | oui | décroissant | asort()
krsort() | clé | oui | décroissant | ksort()
ksort() | clé | oui | croissant | asort()
natcasesort() | valeur | oui | naturel, insensible à la casse | natsort()
natsort() | valeur | oui | naturel | natcasesort()
rsort() | valeur | non | décroissant | sort()
shuffle() | valeur | non | aléatoire | array_rand()
sort() | valeur | non | croissant | rsort()
uasort() | valeur | oui | Défini par une fonction utilisateur | uksort()
uksort() | clé | oui | Défini par une fonction utilisateur | uasort()
usort() | valeur | non | Défini par une fonction utilisateur | uasort()


Fonctions sur les tableaux

Voir aussi

Voir aussi
is_array(),
explode(),
implode(),
split(),
preg_split() et
unset().

Sommaire

  • array_change_key_case — Change la casse de toutes les clés d'un tableau
  • array_chunk — Sépare un tableau en tableaux de taille inférieure
  • array_column — Retourne les valeurs d'une colonne d'un tableau d'entrée
  • array_combine — Crée un tableau à partir de deux autres tableaux
  • array_count_values — Compte le nombre de valeurs d'un tableau
  • array_diff_assoc — Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_key — Calcule la différence de deux tableaux en utilisant les clés pour comparaison
  • array_diff_uassoc — Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_diff_ukey — Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
  • array_diff — Calcule la différence entre des tableaux
  • array_fill_keys — Remplit un tableau avec des valeurs, en spécifiant les clés
  • array_fill — Remplit un tableau avec une même valeur
  • array_filter — Filtre les éléments d'un tableau grâce à une fonction utilisateur
  • array_flip — Remplace les clés par les valeurs, et les valeurs par les clés
  • array_intersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_key — Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison
  • array_intersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_intersect_ukey — Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
  • array_intersect — Calcule l'intersection de tableaux
  • array_key_exists — Vérifie si une clé existe dans un tableau
  • array_keys — Retourne toutes les clés ou un ensemble des clés d'un tableau
  • array_map — Applique une fonction sur les éléments d'un tableau
  • array_merge_recursive — Combine plusieurs tableaux ensemble, récursivement
  • array_merge — Fusionne plusieurs tableaux en un seul
  • array_multisort — Trie les tableaux multidimensionnels
  • array_pad — Complète un tableau avec une valeur jusqu'à la longueur spécifiée
  • array_pop — Dépile un élément de la fin d'un tableau
  • array_product — Calcule le produit des valeurs du tableau
  • array_push — Empile un ou plusieurs éléments à la fin d'un tableau
  • array_rand — Prend une ou plusieurs valeurs, au hasard dans un tableau
  • array_reduce — Réduit itérativement un tableau
  • array_replace_recursive — Remplace récursivement dans le premier tableau les éléments des autres tableaux fournis
  • array_replace — Remplace les éléments d'un tableau par ceux d'autres tableaux
  • array_reverse — Inverse l'ordre des éléments d'un tableau
  • array_search — Recherche dans un tableau la clé associée à une valeur
  • array_shift — Dépile un élément au début d'un tableau
  • array_slice — Extrait une portion de tableau
  • array_splice — Efface et remplace une portion de tableau
  • array_sum — Calcule la somme des valeurs du tableau
  • array_udiff_assoc — Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc — Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_udiff — Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_uintersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel
  • array_uintersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée
  • array_uintersect — Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_unique — Dédoublonne un tableau
  • array_unshift — Empile un ou plusieurs éléments au début d'un tableau
  • array_values — Retourne toutes les valeurs d'un tableau
  • array_walk_recursive — Applique une fonction de rappel récursivement à chaque membre d'un tableau
  • array_walk — Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau
  • array — Crée un tableau
  • arsort — Trie un tableau en ordre inverse et conserve l'association des index
  • asort — Trie un tableau et conserve l'association des index
  • compact — Crée un tableau à partir de variables et de leur valeur
  • count — Compte tous les éléments d'un tableau ou quelque chose d'un objet
  • current — Retourne l'élément courant du tableau
  • each — Retourne chaque paire clé/valeur d'un tableau
  • end — Positionne le pointeur de tableau en fin de tableau
  • extract — Importe les variables dans la table des symboles
  • in_array — Indique si une valeur appartient à un tableau
  • key_exists — Alias de array_key_exists
  • key — Retourne une clé d'un tableau associatif
  • krsort — Trie un tableau en sens inverse et suivant les clés
  • ksort — Trie un tableau suivant les clés
  • list — Assigne des variables comme si elles étaient un tableau
  • natcasesort — Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse
  • natsort — Trie un tableau avec l'algorithme à "ordre naturel"
  • next — Avance le pointeur interne d'un tableau
  • pos — Alias de current
  • prev — Recule le pointeur courant de tableau
  • range — Crée un tableau contenant un intervalle d'éléments
  • reset — Remet le pointeur interne de tableau au début
  • rsort — Trie un tableau en ordre inverse
  • shuffle — Mélange les éléments d'un tableau
  • sizeof — Alias de count
  • sort — Trie un tableau
  • uasort — Trie un tableau en utilisant une fonction de rappel
  • uksort — Trie un tableau par ses clés en utilisant une fonction de rappel
  • usort — Trie un tableau en utilisant une fonction de comparaison


Change la casse de toutes les clés d'un tableau

  • « Fonctions sur les tableaux
  • array_chunk »
  • PHP Manual
  • Fonctions sur les tableaux
  • Change la casse de toutes les clés d'un tableau

array_change_key_case

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

array_change_key_case — Change la casse de toutes les clés d'un tableau

Description

array array_change_key_case ( array $array [, int $case = CASE_LOWER ] )

Modifie les clés du tableau array et force leur casse. Cette fonction laissera les clés numériques inchangées.

Liste de paramètres

array

Le tableau à traiter

case

Soit CASE_UPPER (majuscules), soit CASE_LOWER (minuscules, valeur par défaut)

Valeurs de retour

Retourne un tableau dont les clés ont été transformées en majuscule ou en minuscule, ou FALSE si array n'est pas un tableau.

Erreurs / Exceptions

Lance une alerte de niveau E_WARNING si array n'est pas un tableau.

Exemples

Exemple #1 Exemple avec array_change_key_case()

<?php
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>

L'exemple ci-dessus va afficher :

Array
(
    [FIRST] => 1
    [SECOND] => 4
)

Notes

Note:

Si un tableau possède des clés qui seront identiques lors de l'exécution de cette fonction (e.g. "clé" et "CLé"), la dernière valeur dans le tableau écrasera les précédentes.


Sépare un tableau en tableaux de taille inférieure

  • « array_change_key_case
  • array_column »
  • PHP Manual
  • Fonctions sur les tableaux
  • Sépare un tableau en tableaux de taille inférieure

array_chunk

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

array_chunk — Sépare un tableau en tableaux de taille inférieure

Description

array array_chunk ( array $array , int $size [, bool $preserve_keys = false ] )

Sépare le tableau array en plusieurs tableaux comptant size éléments. Il est aussi possible que le dernier tableau contienne moins de valeurs.

Liste de paramètres

array

Le tableau à traiter

size

La taille de chaque tableau

preserve_keys

Lorsque définit à TRUE, les clés seront préservées. Par défaut, vaut FALSE ce qui réindexera le tableau résultant numériquement

Valeurs de retour

Retourne un tableau multidimensionnel indexé numériquement, commençant à zéro, dont chaque dimension contient size éléments.

Erreurs / Exceptions

Si size est inférieur à 1, une alerte de niveau E_WARNING sera émise et NULL retournée.

Exemples

Exemple #1 Exemple avec array_chunk()

<?php
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2, true));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
        )

)
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [2] => c
            [3] => d
        )

    [2] => Array
        (
            [4] => e
        )

)

Voir aussi

  • array_slice() - Extrait une portion de tableau


Retourne les valeurs d'une colonne d'un tableau d'entrée

  • « array_chunk
  • array_combine »
  • PHP Manual
  • Fonctions sur les tableaux
  • Retourne les valeurs d'une colonne d'un tableau d'entrée

array_column

(PHP 5 >= 5.5.0, PHP 7)

array_column — Retourne les valeurs d'une colonne d'un tableau d'entrée

Description

array array_column ( array $array , mixed $column_key [, mixed $index_key = null ] )

array_column() retourne les valeurs d'une colonne du tableau d'entrée array, identifiée par la clé column_key. Optionnellement, vous pouvez fournir un paramètre index_key pour indexer les valeurs dans le tableau retourné par les valeurs de la colonne index_key du tableau d'entrée.

Liste de paramètres

array

Un tableau multi-dimensionnel depuis lequel la colonne de valeurs sera prélevée.

column_key

La colonne de valeurs à retourner. Cette valeur peut être la clé entière de la colonne que vous souhaitez récupérer, ou bien le nom de la clé pour un tableau associatif. Il peut aussi valoir NULL pour retourner le tableau complet (utile en conjonction du paramètre index_key pour ré-indexer le tableau).

index_key

La colonne à utiliser comme index/clé pour le tableau retourné. Cette valeur peut être la clé entière de la colonne, ou le nom de la clé.

Valeurs de retour

Retourne un tableau de valeurs représentant une seule colonne depuis le tableau d'entrée.

Exemples

Exemple #1 Récupère la colonne des prénoms

<?php
// Tableau représentant un jeu d'enregistrements issu d'une base de données
$records = array(
    array(
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    array(
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ),
    array(
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);

$first_names = array_column($records, 'first_name');
print_r($first_names);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => John
    [1] => Sally
    [2] => Jane
    [3] => Peter
)

Exemple #2 Récupère la colonne des noms, indexé par la colonne "id"

<?php
// En utilisant le tableau de l'exemple #1
$last_names = array_column($records, 'last_name', 'id');
print_r($last_names);
?>

L'exemple ci-dessus va afficher :

Array
(
    [2135] => Doe
    [3245] => Smith
    [5342] => Jones
    [5623] => Doe
)

Voir aussi

  • » Implémentation dans l'espace utilisateur recommandée pour PHP inférieur à 5.5


Crée un tableau à partir de deux autres tableaux

  • « array_column
  • array_count_values »
  • PHP Manual
  • Fonctions sur les tableaux
  • Crée un tableau à partir de deux autres tableaux

array_combine

(PHP 5, PHP 7)

array_combine — Crée un tableau à partir de deux autres tableaux

Description

array array_combine ( array $keys , array $values )

Crée un tableau, dont les clés sont les valeurs de keys, et les valeurs sont les valeurs de values.

Liste de paramètres

keys

Tableau de clés à utiliser. Les valeurs illégales pour les clés seront converties en chaîne de caractères.

values

Tableau de valeurs à utiliser

Valeurs de retour

Retourne le tableau combiné ou FALSE si le nombre d'éléments de chaque tableau n'est pas identique.

Erreurs / Exceptions

Lance une alerte de niveau E_WARNING si le nombre d'éléments de keys et de values ne correspondent pas.

Historique

Version | Description
5.4.0 | Les précédentes versions lançaient une alerte de niveau E_WARNING et retournaient FALSE pour des tableaux vides.

Exemples

Exemple #1 Exemple avec array_combine()

<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>

L'exemple ci-dessus va afficher :

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)

Voir aussi

  • array_merge() - Fusionne plusieurs tableaux en un seul
  • array_walk() - Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau
  • array_values() - Retourne toutes les valeurs d'un tableau


Compte le nombre de valeurs d'un tableau

  • « array_combine
  • array_diff_assoc »
  • PHP Manual
  • Fonctions sur les tableaux
  • Compte le nombre de valeurs d'un tableau

array_count_values

(PHP 4, PHP 5, PHP 7)

array_count_values — Compte le nombre de valeurs d'un tableau

Description

array array_count_values ( array $array )

Retourne un tableau contenant les valeurs du tableau array comme clés et leur fréquence comme valeurs.

Liste de paramètres

array

Le tableau de valeurs à compter

Valeurs de retour

Retourne un tableau associatif de valeurs ayant les clés correspondant à array et leurs nombres comme valeurs.

Erreurs / Exceptions

Lance une alerte de niveau E_WARNING pour chaque élément qui n'est pas une chaîne de caractères ou un entier.

Exemples

Exemple #1 Exemple avec array_count_values()

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>

L'exemple ci-dessus va afficher :

Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

Voir aussi

  • count() - Compte tous les éléments d'un tableau ou quelque chose d'un objet
  • array_unique() - Dédoublonne un tableau
  • array_values() - Retourne toutes les valeurs d'un tableau
  • count_chars() - Retourne des statistiques sur les caractères utilisés dans une chaîne


Calcule la différence de deux tableaux, en prenant aussi en compte les clés

  • « array_count_values
  • array_diff_key »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule la différence de deux tableaux, en prenant aussi en compte les clés

array_diff_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

array_diff_assoc — Calcule la différence de deux tableaux, en prenant aussi en compte les clés

Description

array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )

Compare array1 et array2 et retourne la différence. Contrairement à la fonction array_diff(), les clés du tableau sont également utilisées dans la comparaison.

Liste de paramètres

array1

Le tableau à comparer

array2

Le tableau à comparer

...

Plus de tableaux à comparer

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 qui ne sont pas présentes dans les autres tableaux.

Exemples

Exemple #1 Exemple avec array_diff_assoc()

Dans cet exemple, vous pouvez voir que la paire "a" => "vert" est présente dans les deux tableaux, et donc, n'est pas présente dans le résultat de la fonction. Au contraire, la paire 0 => "rouge" est présente dans le résultat, car le second argument "rouge" possède une clé qui est 1.

<?php
$array1 = array("a" => "vert", "b" => "marron", "c" => "bleu", "rouge");
$array2 = array("a" => "vert", "jaune", "rouge");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [b] => marron
    [c] => bleu
    [0] => rouge
)

Exemple #2 Exemple avec array_diff_assoc()

Deux valeurs des paires clé => valeur sont considérées comme égales uniquement si (string) $elem1 === (string) $elem2 . En d'autres termes, une vérification stricte est effectuée sur la représentation en chaînes de caractères.

<?php
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 0
    [1] => 1
    )

Notes

Note: Notez bien que cette fonction ne travaille que sur une dimension de tableau. Bien sur, vous pouvez utiliser des sous dimensions de tableau comme ceci : array_diff_assoc($array1[0], $array2[0]);.

Note: Assurez-vous de passer les arguments dans le bon ordre lors de la comparaison de tableaux similaires avec plus de clés. Le nouveau tableau doit être le premier de la liste.

Voir aussi

  • array_diff() - Calcule la différence entre des tableaux
  • array_diff_uassoc() - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index


Calcule la différence de deux tableaux en utilisant les clés pour comparaison

  • « array_diff_assoc
  • array_diff_uassoc »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule la différence de deux tableaux en utilisant les clés pour comparaison

array_diff_key

(PHP 5 >= 5.1.0, PHP 7)

array_diff_key — Calcule la différence de deux tableaux en utilisant les clés pour comparaison

Description

array array_diff_key ( array $array1 , array $array2 [, array $... ] )

Compare les clés du tableau array1 avec les clés du tableau array2 et retourne la différence. Cette fonction est identique à la fonction array_diff(), excepté sur le fait que la comparaison est faite sur les clés, plutôt que sur les valeurs.

Liste de paramètres

array1

Le tableau à comparer

array2

Le tableau à comparer

...

Plus de tableaux à comparer

Valeurs de retour

Retourne un tableau contenant toutes les entrées du tableau array1 dont les clés ne sont présentes dans aucun des autres tableaux.

Exemples

Exemple #1 Exemple avec array_diff_key()

Les deux clés depuis les paires clé => valeur sont considérées comme égales uniquement si (string) $cle1 === (string) $cle2 . En d'autres termes, une analyse de type stricte est exécutée, donc, le type doit être exactement le même.

<?php
$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_diff_key($array1, $array2));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

Notes

Note:

Notez que cette fonction vérifie uniquement une dimension d'un tableau possédant n dimensions. Bien sûr, vous pouvez vérifier une dimension plus profonde en utilisant, par exemple, array_diff_key($array1[0], $array2[0]);.

Voir aussi

  • array_diff() - Calcule la différence entre des tableaux
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_uassoc() - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_diff_ukey() - Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_intersect_key() - Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison
  • array_intersect_ukey() - Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison


Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel

  • « array_diff_key
  • array_diff_ukey »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel

array_diff_uassoc

(PHP 5, PHP 7)

array_diff_uassoc — Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel

Description

array array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

Compare le tableau array1 avec le tableau array2 et retourne la différence. Contrairement à la fonction array_diff(), les clés du tableau sont utilisées dans la comparaison.

Contrairement à la fonction array_diff_assoc(), un utilisateur fournit une fonction de rappel utilisée pour la comparaison des indices, et non une fonction interne.

Liste de paramètres

array1

Le tableau à comparer

array2

Le tableau à comparer

...

Plus de tableaux à comparer

key_compare_func

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )

Valeurs de retour

Retourne un tableau contenant toutes les entrées du tableau array1 qui ne sont présentes dans aucun autre tableau.

Exemples

Exemple #1 Exemple avec array_diff_uassoc()

Dans cet exemple, vous voyez que la paire "a" => "vert" est présente dans les deux tableaux et donc ne figure pas dans le résultat de la fonction. Contrairement à cela, la paire 0 => "rouge" est dans le résultat car dans le second argument, la clé de "rouge" est 1.

<?php
function key_compare_func($a, $b)
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b)? 1:-1;
}

$array1 = array("a" => "vert", "b" => "marron", "c" => "bleu", "rouge");
$array2 = array("a" => "vert", "jaune", "rouge");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [b] => marron
    [c] => bleu
    [0] => rouge
)

L'égalité de deux indices est vérifiée par la fonction utilisateur.

Notes

Note:

Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multidimensionnel. Vous pouvez, bien sûr, tester une dimension particulière en utilisant par exemple, array_diff_uassoc($array1[1], $array2[1], "key_compare_func");.

Voir aussi

  • array_diff() - Calcule la différence entre des tableaux
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée


Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison

  • « array_diff_uassoc
  • array_diff »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison

array_diff_ukey

(PHP 5 >= 5.1.0, PHP 7)

array_diff_ukey — Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison

Description

array array_diff_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

Compare les clés du tableau array1 avec celles du tableau array2 et retourne la différence. Cette fonction est identique à la fonction array_diff(), excepté le fait que la comparaison est effectuée sur les clés, plutôt que sur les valeurs.

Contrairement à la fonction array_diff_key(), une fonction utilisateur est fournie pour la comparaison des indices, et non une fonction interne.

Liste de paramètres

array1

Le tableau à comparer

array2

Le tableau à comparer

...

Plus de tableaux à comparer

key_compare_func

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )

Valeurs de retour

Retourne un tableau contenant toutes les entrées du tableau array1 qui ne sont présentes dans aucun autre tableau.

Exemples

Exemple #1 Exemple avec array_diff_ukey()

<?php
function key_compare_func($key1, $key2)
{
    if ($key1 == $key2)
        return 0;
    else if ($key1 > $key2)
        return 1;
    else
        return -1;
}

$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

Notes

Note:

Notez que cette fonction vérifie uniquement une dimension d'un tableau possédant n dimensions. Bien sûr, vous pouvez vérifier une dimension plus profonde en utilisant, par exemple, array_diff_ukey($array1[0], $array2[0], 'callback_func');.

Voir aussi

  • array_diff() - Calcule la différence entre des tableaux
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_uassoc() - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_diff_key() - Calcule la différence de deux tableaux en utilisant les clés pour comparaison
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_intersect_key() - Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison
  • array_intersect_ukey() - Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison


Calcule la différence entre des tableaux

  • « array_diff_ukey
  • array_fill_keys »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule la différence entre des tableaux

array_diff

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_diff — Calcule la différence entre des tableaux

Description

array array_diff ( array $array1 , array $array2 [, array $... ] )

array_diff() compare le tableau array1 avec un ou plusieurs tableaux et retourne les valeurs du tableau array1 qui ne sont pas présentes dans les autres tableaux.

Liste de paramètres

array1

Le tableau depuis lequel comparer

array2

Un tableau avec lequel comparer

...

Plus de tableaux avec lesquels comparer

Valeurs de retour

Retourne un tableau contenant toutes les entités du tableau array1 qui ne sont présentes dans aucun des autres tableaux.

Exemples

Exemple #1 Exemple avec array_diff()

<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

print_r($result);
?>

Les valeurs multiples dans array1 seront toutes traitées de la même façon. Ce qui affichera :

Array
(
    [1] => blue
)

Notes

Note:

Deux éléments sont considérés comme égaux si et seulement si (string) $elem1 === (string) $elem2. En clair : lorsque la représentation sous forme de chaîne de caractères est identique.

Note:

Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau à plusieurs dimensions. Bien sûr, vous pouvez vérifier des dimensions plus profondes en utilisant array_diff($array1[0], $array2[0]);.

Voir aussi

  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index


Remplit un tableau avec des valeurs, en spécifiant les clés

  • « array_diff
  • array_fill »
  • PHP Manual
  • Fonctions sur les tableaux
  • Remplit un tableau avec des valeurs, en spécifiant les clés

array_fill_keys

(PHP 5 >= 5.2.0, PHP 7)

array_fill_keys — Remplit un tableau avec des valeurs, en spécifiant les clés

Description

array array_fill_keys ( array $keys , mixed $value )

Remplit un tableau avec la valeur du paramètre value, et en utilisant les valeurs du tableau keys comme clés.

Liste de paramètres

keys

Tableau de valeurs qui sera utilisé comme clés. Les valeurs illégales pour les clés seront converties en chaînes de caractères.

value

Valeur à utiliser pour remplir le tableau.

Valeurs de retour

Retourne le tableau rempli.

Exemples

Exemple #1 Exemple avec array_fill_keys()

<?php
$keys = array('foo', 5, 10, 'bar');
$a = array_fill_keys($keys, 'banana');
print_r($a);
?>

L'exemple ci-dessus va afficher :

Array
(
    [foo] => banana
    [5] => banana
    [10] => banana
    [bar] => banana
)

Voir aussi

  • array_fill() - Remplit un tableau avec une même valeur
  • array_combine() - Crée un tableau à partir de deux autres tableaux


Remplit un tableau avec une même valeur

  • « array_fill_keys
  • array_filter »
  • PHP Manual
  • Fonctions sur les tableaux
  • Remplit un tableau avec une même valeur

array_fill

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

array_fill — Remplit un tableau avec une même valeur

Description

array array_fill ( int $start_index , int $num , mixed $value )

Crée un tableau avec num entrées, toutes de valeur value. Les index commencent à la valeur start_index.

Liste de paramètres

start_index

Le premier index du tableau retourné.

Si start_index est négatif, le premier index du tableau retourné sera start_index, suivi par des indices commençant à zéro (voir l'exemple).

num

Nombre d'éléments à insérer. Doit être supérieur ou égal à zéro.

value

Valeur à utiliser pour remplir le tableau

Valeurs de retour

Retourne le tableau rempli.

Erreurs / Exceptions

Lance une alerte de niveau E_WARNING si num est inférieur à 0.

Historique

Version | Description
5.6.0 | num peut maintenant être 0. Précédemment, num devait être supérieur à 0.

Exemples

Exemple #1 Exemple avec array_fill()

<?php
$a = array_fill(5, 6, 'banana');
$b = array_fill(-2, 4, 'pear');
print_r($a);
print_r($b);
?>

L'exemple ci-dessus va afficher :

Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)
Array
(
    [-2] => pear
    [0] => pear
    [1] => pear
    [2] => pear
)

Notes

Voir aussi la section du manuel sur les tableaux pour plus d'informations sur les clés négatives.

Voir aussi

  • array_fill_keys() - Remplit un tableau avec des valeurs, en spécifiant les clés
  • str_repeat() - Répète une chaîne
  • range() - Crée un tableau contenant un intervalle d'éléments


Filtre les éléments d'un tableau grâce à une fonction utilisateur

  • « array_fill
  • array_flip »
  • PHP Manual
  • Fonctions sur les tableaux
  • Filtre les éléments d'un tableau grâce à une fonction utilisateur

array_filter

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

array_filter — Filtre les éléments d'un tableau grâce à une fonction utilisateur

Description

array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )

Évalue chaque valeur du tableau array en les passant à la fonction utilisateur. Si la fonction utilisateur retourne TRUE, la valeur courante du tableau array est retournée dans le tableau résultant. Les clés du tableau sont préservées.

Liste de paramètres

array

Le tableau à évaluer

callback

La fonction utilisateur à utiliser

Si aucune fonction utilisateur n'est fournie, toutes les entrées du tableau array valant FALSE (voir la conversion en booléen) seront effacées.

flag

Drapeau indiquant quels sont les arguments à envoyer au paramètre callback :

  • ARRAY_FILTER_USE_KEY - ne passer que la clé comme seul argument à callback au lieu de la valeur
  • ARRAY_FILTER_USE_BOTH - passer à la fois la valeur et la clé comme arguments de callback au lieu de la valeur

Valeurs de retour

Retourne le tableau filtré.

Historique

Version | Description
5.6.0 | Ajout du paramètre optionnel flag et des constantes ARRAY_FILTER_USE_KEY et ARRAY_FILTER_USE_BOTH

Exemples

Exemple #1 Exemple avec array_filter()

<?php
function odd($var)
{
    // retourne lorsque l'entrée est impaire
    return($var & 1);
}

function even($var)
{
    // retourne lorsque l'entrée est paire
    return(!($var & 1));
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Impair :\n";
print_r(array_filter($array1, "odd"));
echo "Pair :\n";
print_r(array_filter($array2, "even"));
?>

L'exemple ci-dessus va afficher :

Impair :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Pair :
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

Exemple #2 Exemple avec array_filter() sans fonction utilisateur

<?php

$entry = array(
             0 => 'foo',
             1 => false,
             2 => -1,
             3 => null,
             4 => ''
          );

print_r(array_filter($entry));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => foo
    [2] => -1
)

Exemple #3 Exemple avec array_filter() et flag

<?php

$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];

var_dump(array_filter($arr, function($k) {
    return $k == 'b';
}, ARRAY_FILTER_USE_KEY));

var_dump(array_filter($arr, function($v, $k) {
    return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}

Notes

Attention

Si le tableau est modifié depuis la fonction utilisateur (e.g. des éléments sont ajoutés, effacés ou réinitialisés), le comportement de cette fonction est indéfini.

Voir aussi

  • array_map() - Applique une fonction sur les éléments d'un tableau
  • array_reduce() - Réduit itérativement un tableau
  • array_walk() - Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau


Remplace les clés par les valeurs, et les valeurs par les clés

  • « array_filter
  • array_intersect_assoc »
  • PHP Manual
  • Fonctions sur les tableaux
  • Remplace les clés par les valeurs, et les valeurs par les clés

array_flip

(PHP 4, PHP 5, PHP 7)

array_flip — Remplace les clés par les valeurs, et les valeurs par les clés

Description

array array_flip ( array $array )

array_flip() retourne un tableau dont les clés sont les valeurs du précédent tableau array, et les valeurs sont les clés.

Notez bien que les valeurs de array doivent être des clés valides, c'est-à-dire qu'elles doivent être des entiers (entier) ou des chaînes de caractères (chaîne de caractères). Une alerte sera émise si une valeur est d'un type qui ne convient pas et la paire en question ne sera pas incluse dans le résultat.

Si une valeur n'est pas unique, seule la dernière clé sera utilisée comme valeur, et toutes les autres seront perdues.

Liste de paramètres

array

Un tableau de paire clés/valeurs à inverser.

Valeurs de retour

Retourne un tableau inversé en cas de succès, NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec array_flip()

<?php
$input = array("oranges", "apples", "pears");
$flipped = array_flip($input);

print_r($flipped);
?>

L'exemple ci-dessus va afficher :

Array
(
    [oranges] => 0
    [apples] => 1
    [pears] => 2
)

Exemple #2 Exemple avec array_flip() : collision

<?php
$input = array("a" => 1, "b" => 1, "c" => 2);
$flipped = array_flip($input);

print_r($flipped);
?>

L'exemple ci-dessus va afficher :

Array
(
    [1] => b
    [2] => c
)

Voir aussi

  • array_values() - Retourne toutes les valeurs d'un tableau
  • array_keys() - Retourne toutes les clés ou un ensemble des clés d'un tableau
  • array_reverse() - Inverse l'ordre des éléments d'un tableau


Calcule l'intersection de deux tableaux avec des tests sur les index

  • « array_flip
  • array_intersect_key »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule l'intersection de deux tableaux avec des tests sur les index

array_intersect_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

array_intersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur les index

Description

array array_intersect_assoc ( array $array1 , array $array2 [, array $... ] )

array_intersect_assoc() retourne un tableau contenant toutes les valeurs de array1 qui sont aussi présentes dans tous les autres arguments array2, ..., etc. Notez que les clés sont aussi utilisées durant la comparaison, contrairement à array_intersect().

Liste de paramètres

array1

Le tableau avec les valeurs maîtres à vérifier.

array2

Un tableau contenant les valeurs à comparer.

...

Une liste variable de tableaux à comparer.

Valeurs de retour

Retourne un tableau associatif contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les arguments.

Exemples

Exemple #1 Exemple avec array_intersect_assoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "b" => "yellow", "blue", "red");
$result_array = array_intersect_assoc($array1, $array2);
print_r($result_array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
)

Dans notre exemple, vous pouvez voir que la paire "a" => "green" est présente dans les deux tableaux, et donc placée dans le dernier tableau. La valeur red n'est pas retournée car dans $array1 son index est 0 tandis que dans le tableau $array2, son index est 1, et la clé "b" n'est pas retourné, car sa valeur est différente dans chaque tableau.

Les deux valeurs de la paire clé => valeur sont considérées égales uniquement si (string) $elem1 === (string) $elem2. En d'autres termes, une comparaison stricte est faite sur les représentations des index, avec le type chaîne.

Voir aussi

  • array_intersect() - Calcule l'intersection de tableaux
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée
  • array_diff() - Calcule la différence entre des tableaux
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés


Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison

  • « array_intersect_assoc
  • array_intersect_uassoc »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison

array_intersect_key

(PHP 5 >= 5.1.0, PHP 7)

array_intersect_key — Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison

Description

array array_intersect_key ( array $array1 , array $array2 [, array $... ] )

array_intersect_key() retourne un tableau contenant toutes les entrées du tableau array1 qui contiennent des clés présentes dans tous les tableaux passés en arguments.

Liste de paramètres

array1

Le tableau contenant les clés maîtres à vérifier.

array2

Un tableau contenant les clés à comparer.

...

Une liste variable de tableaux à comparer.

Valeurs de retour

Retourne un tableau associatif contenant toutes les entrées du tableau array1 qui ont des clés présentes dans tous les arguments.

Exemples

Exemple #1 Exemple avec array_intersect_key()

<?php
$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_intersect_key($array1, $array2));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["blue"]=>
  int(1)
  ["green"]=>
  int(3)
}

Dans cet exemple, vous pouvez voir que seules les clés 'bleu' et 'vert' sont présentes dans les deux tableaux et donc, elles sont retournées. Notez également que les valeurs pour les clés 'bleu' et 'vert' diffèrent entre les deux tableaux. Néanmoins, elles correspondent toujours car uniquement les clés sont vérifiées. Les valeurs retournées sont celles du tableau array1.

Les deux clés depuis les paires clé => valeur sont considérées comme égales uniquement si (string) $cle1 === (string) $cle2 . En d'autres mots, une analyse du type stricte est exécuté, donc, le type doit être exactement le même.

Voir aussi

  • array_diff() - Calcule la différence entre des tableaux
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_uassoc() - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_diff_key() - Calcule la différence de deux tableaux en utilisant les clés pour comparaison
  • array_diff_ukey() - Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_intersect_ukey() - Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison


Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel

  • « array_intersect_key
  • array_intersect_ukey »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel

array_intersect_uassoc

(PHP 5, PHP 7)

array_intersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel

Description

array array_intersect_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

array_intersect_uassoc() retourne un tableau contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les arguments. Notez que les clés sont utilisées dans la comparaison par opposition à la fonction array_intersect().

Liste de paramètres

array1

Tableau initial pour la comparaison des autres tableaux.

array2

Premier tableau dont on doit comparer les clés.

...

Liste variable de tableaux à comparer.

key_compare_func

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )

Valeurs de retour

Retourne les valeurs du tableau array1 dont les valeurs existent dans tous les autres arguments.

Exemples

Exemple #1 Exemple avec array_intersect_uassoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_intersect_uassoc($array1, $array2, "strcasecmp"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [b] => brown
)

Voir aussi

  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée
  • array_intersect_key() - Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison
  • array_intersect_ukey() - Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison


Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison

  • « array_intersect_uassoc
  • array_intersect »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison

array_intersect_ukey

(PHP 5 >= 5.1.0, PHP 7)

array_intersect_ukey — Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison

Description

array array_intersect_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

array_intersect_ukey() retourne un tableau contenant toutes les valeurs du tableau array1 qui contiennent des clés présentes dans tous les arguments array2, ....

Liste de paramètres

array1

Tableau initial pour la comparaison des tableaux.

array2

Premier tableau utilisé pour comparer les clés.

...

Liste variable de tableaux à comparer.

key_compare_func

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )

Valeurs de retour

Retourne les valeurs du tableau array1 dont les clés existent dans tous les arguments.

Exemples

Exemple #1 Exemple avec array_intersect_ukey()

<?php
function key_compare_func($key1, $key2)
{
    if ($key1 == $key2)
        return 0;
    else if ($key1 > $key2)
        return 1;
    else
        return -1;
}

$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["blue"]=>
  int(1)
  ["green"]=>
  int(3)
}

Dans cet exemple, vous pouvez voir que seules les clés 'bleu' et 'vert' sont présentes dans les deux tableaux et, donc, elles sont retournées. Notez également que les valeurs pour les clés 'bleu' et 'vert' diffèrent entre les deux tableaux. Néanmoins, elles correspondent toujours car uniquement les clés sont vérifiées. Les valeurs retournées sont celles du tableau array1.

Voir aussi

  • array_diff() - Calcule la différence entre des tableaux
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_uassoc() - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_diff_key() - Calcule la différence de deux tableaux en utilisant les clés pour comparaison
  • array_diff_ukey() - Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_intersect_key() - Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison


Calcule l'intersection de tableaux

  • « array_intersect_ukey
  • array_key_exists »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule l'intersection de tableaux

array_intersect

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_intersect — Calcule l'intersection de tableaux

Description

array array_intersect ( array $array1 , array $array2 [, array $... ] )

array_intersect() retourne un tableau contenant toutes les valeurs de array1 qui sont présentes dans tous les autres arguments array2, ..., etc. Notez que les clés sont préservées.

Liste de paramètres

array1

Le tableau contenant les valeurs maîtres à vérifier.

array2

Un tableau contenant les valeurs à comparer.

...

Une liste variable de tableaux à comparer.

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 dont les valeurs existent dans tous les arguments.

Exemples

Exemple #1 Exemple avec array_intersect()

<?php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
    [0] => red
)

Notes

Note: Deux éléments sont considérés comme égaux si et seulement si (string) $elem1 === (string) $elem2. En clair : lorsque la représentation en chaîne de caractères est identique.

Voir aussi

  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_diff() - Calcule la différence entre des tableaux
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés


Vérifie si une clé existe dans un tableau

  • « array_intersect
  • array_keys »
  • PHP Manual
  • Fonctions sur les tableaux
  • Vérifie si une clé existe dans un tableau

array_key_exists

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

array_key_exists — Vérifie si une clé existe dans un tableau

Description

bool array_key_exists ( mixed $key , array $array )

array_key_exists() retourne TRUE s'il existe une clé du nom de key dans le tableau array. key peut être n'importe quelle valeur valide d'index de tableau.

Liste de paramètres

key

Valeur à vérifier.

array

Un tableau contenant les clés à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec array_key_exists()

<?php
$search_array = array('premier' => 1, 'second' => 4);
if (array_key_exists('premier', $search_array)) {
    echo "L'élément 'premier' existe dans le tableau";
}
?>

Exemple #2 array_key_exists() et isset()

isset() ne retourne pas TRUE pour les clés de tableaux qui correspondent à une valeur NULL alors que c'est le cas pour array_key_exists().

<?php
$search_array = array('first' => null, 'second' => 4);

// retourne false
isset($search_array['first']);

// retourne true
array_key_exists('first', $search_array);
?>

Notes

Note:

En raison de compatibilité ascendante, la fonction array_key_exists() peut aussi retourner TRUE si le paramètre key est une propriété définie dans un objet, fourni comme paramètre array. Ce comportement ne doit plus être pris en considération, et vous devez vous assure que le paramètre array est un tableau.

Pour vérifier si une propriété existe dans un objet, utilisez la fonction property_exists().

Voir aussi

  • isset() - Détermine si une variable est définie et est différente de NULL
  • array_keys() - Retourne toutes les clés ou un ensemble des clés d'un tableau
  • in_array() - Indique si une valeur appartient à un tableau
  • property_exists() - Vérifie si un objet ou une classe possède une propriété


Retourne toutes les clés ou un ensemble des clés d'un tableau

  • « array_key_exists
  • array_map »
  • PHP Manual
  • Fonctions sur les tableaux
  • Retourne toutes les clés ou un ensemble des clés d'un tableau

array_keys

(PHP 4, PHP 5, PHP 7)

array_keys — Retourne toutes les clés ou un ensemble des clés d'un tableau

Description

array array_keys ( array $array [, mixed $search_value = null [, bool $strict = false ]] )

array_keys() retourne les clés numériques et littérales du tableau array.

Si l'option search_value est spécifiée, seules les clés ayant cette valeur seront retournées. Sinon, toutes les clés de array sont retournées.

Liste de paramètres

array

Un tableau contenant les clés à retourner.

search_value

Si spécifié, alors seulement les clés contenant ces valeurs seront retournées.

strict

Le paramètre strict force la comparaison en mode strict, incluant le type, avec l'opérateur ===.

Valeurs de retour

Retourne un tableau de toutes les clés dans array.

Exemples

Exemple #1 Exemple avec array_keys()

<?php
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));

$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));

$array = array("color" => array("blue", "red", "green"),
               "size"  => array("small", "medium", "large"));
print_r(array_keys($array));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 0
    [1] => color
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => color
    [1] => size
)

Voir aussi

  • array_values() - Retourne toutes les valeurs d'un tableau
  • array_key_exists() - Vérifie si une clé existe dans un tableau
  • array_search() - Recherche dans un tableau la clé associée à une valeur


Applique une fonction sur les éléments d'un tableau

  • « array_keys
  • array_merge_recursive »
  • PHP Manual
  • Fonctions sur les tableaux
  • Applique une fonction sur les éléments d'un tableau

array_map

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

array_map — Applique une fonction sur les éléments d'un tableau

Description

array array_map ( callable $callback , array $array1 [, array $... ] )

array_map() retourne un tableau contenant tous les éléments du tableau array1, après leur avoir appliqué la fonction callback. Le nombre de paramètres de la fonction callback doit être égal au nombre de tableaux passés dans la fonction array_map().

Liste de paramètres

callback

La fonction de rappel à exécuter pour chaque élément de chaque tableau.

array1

Un tableau à exécuter via la fonction de callback.

...

Liste des tableaux à exécuter via la fonction de callback.

Valeurs de retour

Retourne un tableau contenant tous les éléments du tableau array1 après avoir appliqué la fonction de callback sur chacun d'eux.

Exemples

Exemple #1 Exemple avec array_map()

<?php
function cube($n)
{
    return($n * $n * $n);
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>

Le contenu de la variable $b sera :

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Exemple #2 array_map() : utilisation d'une fonction quelconque (depuis PHP 5.3.0)

<?php

$func = function($value) {
    return $value * 2;
};

print_r(array_map($func, range(1, 5)));

?>
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)

Exemple #3 array_map() : utilisation de plusieurs tableaux

<?php
function show_Spanish($n, $m)
{
    return("Le nombre $n se dit $m en Espagnol");
}

function map_Spanish($n, $m)
{
    return(array($n => $m));
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("show_Spanish", $a, $b);
print_r($c);

$d = array_map("map_Spanish", $a , $b);
print_r($d);
?>

L'exemple ci-dessus va afficher :

// Contenu de $c
Array
(
    [0] => Le nombre 1 se dit uno en Espagnol
    [1] => Le nombre 2 se dit dos en Espagnol
    [2] => Le nombre 3 se dit tres en Espagnol
    [3] => Le nombre 4 se dit cuatro en Espagnol
    [4] => Le nombre 5 se dit cinco en Espagnol
)

// Contenu de $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

Généralement, lors de l'utilisation de plusieurs tableaux, ils doivent être d'égale longueur, car la fonction de rappel est appliquée de manière similaire à tous les tableaux. Si les tableaux sont de tailles inégales, les plus petits seront complétés avec des éléments vides pour atteindre la taille du plus grand.

Une utilisation intéressante de cette fonction est la construction de tableaux de tableaux, facilement réalisée en passant la valeur NULL comme nom de fonction de rappel.

Exemple #4 Création d'un tableau de tableaux

<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);
print_r($d);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
            [2] => uno
        )

    [1] => Array
        (
            [0] => 2
            [1] => two
            [2] => dos
        )

    [2] => Array
        (
            [0] => 3
            [1] => three
            [2] => tres
        )

    [3] => Array
        (
            [0] => 4
            [1] => four
            [2] => cuatro
        )

    [4] => Array
        (
            [0] => 5
            [1] => five
            [2] => cinco
        )

)

Si le tableau en argument contient des clés sous la forme de chaîne de caractères, alors, le tableau retourné contiendra également des clés sous la forme de chaîne de caractères, si et seulement si un seul tableau est passé. Si plusieurs tableaux sont passés comme argument, le tableau retourné aura toujours des clés sous la forme d'entier.

Exemple #5 array_map() - avec des clés sous la forme de chaîne de caractères

<?php
$arr = array("stringkey" => "value");
function cb1($a) {
    return array ($a);
}
function cb2($a, $b) {
    return array ($a, $b);
}
var_dump(array_map("cb1", $arr));
var_dump(array_map("cb2", $arr, $arr));
var_dump(array_map(null,  $arr));
var_dump(array_map(null, $arr, $arr));
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["stringkey"]=>
  array(1) {
    [0]=>
    string(5) "value"
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}
array(1) {
  ["stringkey"]=>
  string(5) "value"
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}

Voir aussi

  • array_filter() - Filtre les éléments d'un tableau grâce à une fonction utilisateur
  • array_reduce() - Réduit itérativement un tableau
  • array_walk() - Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau
  • Informations sur le type callback


Combine plusieurs tableaux ensemble, récursivement

  • « array_map
  • array_merge »
  • PHP Manual
  • Fonctions sur les tableaux
  • Combine plusieurs tableaux ensemble, récursivement

array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_merge_recursive — Combine plusieurs tableaux ensemble, récursivement

Description

array array_merge_recursive ( array $array1 [, array $... ] )

array_merge_recursive() rassemble les éléments de deux ou plusieurs tableaux ensemble, en ajoutant les éléments de l'un à la suite des éléments du précédent.

Si les tableaux passés en arguments ont les mêmes clés (chaînes de caractères), les valeurs sont alors rassemblées dans un tableau, de manière récursive, de façon à ce que, si l'une de ces valeurs est un tableau elle-même, la fonction la rassemblera avec les valeurs de l'entrée courante. Cependant, si deux tableaux ont la même clé numérique, la dernière valeur n'écrasera pas la précédente, mais sera ajoutée à la fin du tableau.

Liste de paramètres

array1

Tableau initial à rassembler.

...

Liste variable de tableaux à rassembler récursivement.

Valeurs de retour

Un tableau de valeurs résultantes de la fusion des arguments.

Exemples

Exemple #1 Exemple avec array_merge_recursive()

<?php
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )

            [0] => blue
        )

    [0] => 5
    [1] => 10
)

Voir aussi

  • array_merge() - Fusionne plusieurs tableaux en un seul
  • array_replace_recursive() - Remplace récursivement dans le premier tableau les éléments des autres tableaux fournis


Fusionne plusieurs tableaux en un seul

  • « array_merge_recursive
  • array_multisort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Fusionne plusieurs tableaux en un seul

array_merge

(PHP 4, PHP 5, PHP 7)

array_merge — Fusionne plusieurs tableaux en un seul

Description

array array_merge ( array $array1 [, array $... ] )

array_merge() rassemble les éléments d'un ou de plusieurs tableaux en ajoutant les valeurs de l'un à la fin de l'autre. Le résultat est un tableau.

Si les tableaux d'entrées ont des clés en commun, alors, la valeur finale pour cette clé écrasera la précédente. Cependant, si les tableaux contiennent des clés numériques, la valeur finale n'écrasera pas la valeur originale, mais sera ajoutée.

Les clés numériques des tableaux d'entrées seront renumérotées en clés incrémentées partant de zéro dans le tableau résultat.

Liste de paramètres

array1

Tableau initial à fusionner.

...

Liste de tableaux à fusionner.

Valeurs de retour

Retourne le tableau résultant.

Exemples

Exemple #1 Exemple avec array_merge()

<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
)

Exemple #2 Exemple simple avec array_merge()

<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>

N'oubliez pas que les index numériques seront réindexés !

Array
(
    [0] => data
)

Si vous voulez ajouter des éléments du second tableau au premier sans pour autant écraser ou ré-indexer les éléments du premier, utilisez l'opérateur d'union + :

<?php
$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b');
$result = $array1 + $array2;
var_dump($result);
?>

Les clés du premier tableau sont préservées. Si une clé existe dans les 2 tableaux, alors l'élément du premier sera utilisé et la clé correspondante du second sera ignorée.

array(5) {
  [0]=>
  string(6) "zero_a"
  [2]=>
  string(5) "two_a"
  [3]=>
  string(7) "three_a"
  [1]=>
  string(5) "one_b"
  [4]=>
  string(6) "four_b"
}

Exemple #3 Exemple avec array_merge() avec des types non-tableaux

<?php
$beginning = 'foo';
$end = array(1 => 'bar');
$result = array_merge((array)$beginning, (array)$end);
print_r($result);
?>

L'exemple ci-dessus va afficher :

    Array
    (
        [0] => foo
        [1] => bar
    )

Voir aussi

  • array_merge_recursive() - Combine plusieurs tableaux ensemble, récursivement
  • array_replace() - Remplace les éléments d'un tableau par ceux d'autres tableaux
  • array_combine() - Crée un tableau à partir de deux autres tableaux
  • les opérateurs de tableau


Trie les tableaux multidimensionnels

  • « array_merge
  • array_pad »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie les tableaux multidimensionnels

array_multisort

(PHP 4, PHP 5, PHP 7)

array_multisort — Trie les tableaux multidimensionnels

Description

bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )

array_multisort() sert à trier simultanément plusieurs tableaux, ou bien à trier un tableau multidimensionnel, suivant l'une ou l'autre de ses dimensions.

Les clés associatives (chaîne de caractères) seront maintenues, mais les clés numériques seront réindexées.

Liste de paramètres

array1

Un tableau à trier.

array1_sort_order

L'ordre utilisé pour trier le précédent argument array. Soit la constante SORT_ASC pour trier de façon croissant, soit la constante SORT_DESC pour trier de façon décroissant.

Cet argument peut être associé avec le paramètre array1_sort_flags ou simplement omis, auquel cas, la constante SORT_ASC sera utilisée.

array1_sort_flags

Options de tri du précédent argument array :

Type d'options de tri :

  • SORT_REGULAR - compare les éléments normalement (pas de changement de type)
  • SORT_NUMERIC - compare les éléments numériquement
  • SORT_STRING - compare les éléments sous forme de chaînes de caractères
  • SORT_LOCALE_STRING - compare les éléments sous forme de chaînes de caractères, en se basant sur la locale courante. La fonction utilise les locales, et elles peuvent être modifiées en utilisant la fonction setlocale()
  • SORT_NATURAL - compre les éléments sous forme de chaînes de caractères, en utilisant le "tri naturel", comme le fait la fonction natsort()
  • SORT_FLAG_CASE - peut être combiné (avec le mot clé OR) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse

Cet argument peut être associé avec le paramètre array1_sort_order ou simplement omis, auquel cas, la constante SORT_REGULAR sera utilisée.

...

Plus d'arguments, optionnellement suivis par des façons de trier et des drapeaux. Seuls les éléments équivalents dans les tableaux précédents sont comparés. En d'autres termes, le tri est lexicographique.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.4.0 | Les options SORT_NATURAL et SORT_FLAG_CASE ont été ajoutées comme options possibles pour l'argument array1_sort_flags.
5.3.0 | L'option SORT_LOCALE_STRING a été ajoutée comme option possible pour l'argument array1_sort_flags.

Exemples

Exemple #1 Trier plusieurs tableaux

<?php
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);
?>

Dans cet exemple, après le tri, le premier tableau contient 0, 10, 100, 100. Le deuxième tableau contient 4, 1, 2, 3. Les entrées du second tableau correspondant aux valeurs jumelles du premier tableau (100 et 100), sont aussi triées.

array(4) {
  [0]=> int(0)
  [1]=> int(10)
  [2]=> int(100)
  [3]=> int(100)
}
array(4) {
  [0]=> int(4)
  [1]=> int(1)
  [2]=> int(2)
  [3]=> int(3)
}

Exemple #2 Trier un tableau multidimensionnel

<?php
$ar = array(
       array("10", 11, 100, 100, "a"),
       array(   1,  2, "2",   3,   1)
      );
array_multisort($ar[0], SORT_ASC, SORT_STRING,
                $ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>

Dans cet exemple, après le tri, le premier tableau contient "10", 100, 100, 11, "a" (tri alphabétique, ordre croissant); Le deuxième tableau contient 1, 3, "2", 2, 1 (tri numérique, ordre décroissant).

array(2) {
  [0]=> array(5) {
    [0]=> string(2) "10"
    [1]=> int(100)
    [2]=> int(100)
    [3]=> int(11)
    [4]=> string(1) "a"
  }
  [1]=> array(5) {
    [0]=> int(1)
    [1]=> int(3)
    [2]=> string(1) "2"
    [3]=> int(2)
    [4]=> int(1)
  }
}

Exemple #3 Classer les résultats d'une base de données

Dans cet exemple, chaque élément du tableau data représente une ligne de la table. Ce type de données est typique d'un enregistrement de base de données.

Exemple de données :

volume | edition
-------+--------
    67 |       2
    86 |       1
    85 |       6
    98 |       2
    86 |       6
    67 |       7

Les données sont sous forme de tableau, appelé data. Cela est généralement le résultat, par exemple, de la fonction mysql_fetch_assoc().

<?php
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>

Dans cet exemple, nous allons trier la colonne volume par ordre décroissant, et la colonne edition par ordre croissant.

Nous avons un tableau de lignes, mais array_multisort() nécessite un tableau de colonnes, donc nous utilisons le code suivant pour obtenir les colonnes et ainsi effectuer le tri.

<?php
// Obtient une liste de colonnes
foreach ($data as $key => $row) {
    $volume[$key]  = $row['volume'];
    $edition[$key] = $row['edition'];
}

// Trie les données par volume décroissant, edition croissant
// Ajoute $data en tant que dernier paramètre, pour trier par la clé commune
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>

Le jeu d'enregistrement est maintenant trié et ressemble à cela :

volume | edition
-------+--------
    98 |       2
    86 |       1
    86 |       6
    85 |       6
    67 |       2
    67 |       7

Exemple #4 Tri non sensible à la casse

SORT_STRING et SORT_REGULAR sont sensibles à la casse, les chaînes de caractères commençant avec une lettre en majuscule viendront avant les chaînes de caractères commençant par une lettre en minuscule.

Pour effectuer un tri insensible à la casse, effectuez le tri sur une copie minuscule des colonnes du tableau original.

<?php
$array = array('Alpha', 'atomic', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array);

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);

print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Alpha
    [1] => atomic
    [2] => bank
    [3] => Beta
)

Voir aussi

  • usort() - Trie un tableau en utilisant une fonction de comparaison
  • Les fonctions de tri des tableaux


Complète un tableau avec une valeur jusqu'à la longueur spécifiée

  • « array_multisort
  • array_pop »
  • PHP Manual
  • Fonctions sur les tableaux
  • Complète un tableau avec une valeur jusqu'à la longueur spécifiée

array_pad

(PHP 4, PHP 5, PHP 7)

array_pad — Complète un tableau avec une valeur jusqu'à la longueur spécifiée

Description

array array_pad ( array $array , int $size , mixed $value )

array_pad() retourne une copie du tableau array complétée jusqu'à la taille de size avec la valeur value. Si size est positif, alors le tableau est complété à droite, s'il est négatif, il est complété à gauche. Si la valeur absolue de size est plus petite que la taille du tableau array, alors le tableau n'est pas complété. Il est possible d'ajouter au maximum 1048576 éléments d'un seul coup.

Liste de paramètres

array

Tableau initial de valeurs à compléter.

size

Nouvelle taille du tableau.

value

Valeur à insérer si l'argument array est plus petit que l'argument size.

Valeurs de retour

Retourne une copie du tableau array complétée jusqu'à la taille de size avec la valeur value. Si size est positif, alors le tableau est complété à droite, s'il est négatif, il est complété à gauche. Si la valeur absolue de size est plus petite que la taille du tableau array, alors le tableau n'est pas complété.

Exemples

Exemple #1 Exemple avec array_pad()

<?php
$input = array(12, 10, 9);

$result = array_pad($input, 5, 0);
// Le résultat est : array(12, 10, 9, 0, 0)

$result = array_pad($input, -7, -1);
// Le résultat est : array(-1, -1, -1, -1, 12, 10, 9)

$result = array_pad($input, 2, "noop");
// pas complété
?>

Voir aussi

  • array_fill() - Remplit un tableau avec une même valeur
  • range() - Crée un tableau contenant un intervalle d'éléments


Dépile un élément de la fin d'un tableau

  • « array_pad
  • array_product »
  • PHP Manual
  • Fonctions sur les tableaux
  • Dépile un élément de la fin d'un tableau

array_pop

(PHP 4, PHP 5, PHP 7)

array_pop — Dépile un élément de la fin d'un tableau

Description

mixed array_pop ( array &$array )

array_pop() dépile et retourne le dernier élément du tableau array, le raccourcissant d'un élément.

Note: Cette fonction remet le pointeur au début du tableau d'entrée (équivalent de reset()).

Liste de paramètres

array

Le tableau duquel on récupère la valeur.

Valeurs de retour

Retourne la dernière valeur du tableau array. Si array est vide (ou n'est pas un tableau), NULL sera retourné.

Erreurs / Exceptions

Cette fonction émettra une erreur de niveau E_WARNING quand utilisée sur une variable qui n'est pas un tableau.

Exemples

Exemple #1 Exemple avec array_pop()

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
?>

Après cela, $stack n'aura plus que 3 éléments :

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)

et raspberry sera assigné à $fruit.

Voir aussi

  • array_push() - Empile un ou plusieurs éléments à la fin d'un tableau
  • array_shift() - Dépile un élément au début d'un tableau
  • array_unshift() - Empile un ou plusieurs éléments au début d'un tableau


Calcule le produit des valeurs du tableau

  • « array_pop
  • array_push »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule le produit des valeurs du tableau

array_product

(PHP 5 >= 5.1.0, PHP 7)

array_product — Calcule le produit des valeurs du tableau

Description

number array_product ( array $array )

array_product() retourne le produit des valeurs du tableau array.

Liste de paramètres

array

Le tableau.

Valeurs de retour

Retourne le produit, sous la forme d'un entier ou d'un nombre décimal.

Historique

Version | Description
5.3.6 | Le produit d'un tableau vide est maintenant 1, alors qu'auparavant, cette fonction retournait 0 pour un tableau vide.

Exemples

Exemple #1 Exemple avec array_product()

<?php

$a = array(2, 4, 6, 8);
echo "produit(a) = " . array_product($a) . "\n";
echo "product(array()) = " . array_product(array()) . "\n";

?>

L'exemple ci-dessus va afficher :

produit(a) = 384
product(array()) = 1


Empile un ou plusieurs éléments à la fin d'un tableau

  • « array_product
  • array_rand »
  • PHP Manual
  • Fonctions sur les tableaux
  • Empile un ou plusieurs éléments à la fin d'un tableau

array_push

(PHP 4, PHP 5, PHP 7)

array_push — Empile un ou plusieurs éléments à la fin d'un tableau

Description

int array_push ( array &$array , mixed $value1 [, mixed $... ] )

array_push() considère array comme une pile, et empile les variables var, ... à la fin de array. La longueur du tableau array augmente d'autant. Cela a le même effet que :

<?php
$array[] = $var;
?>
répété pour chaque valeur.

Note: Si vous utilisez la fonction array_push() pour ajouter un élément à un tableau, il est mieux de la remplacer par l'opérateur $array[] = qui évite le passage par une fonction.

Note: array_push() émettra une alerte si le premier argument n'est pas un tableau. Ceci diffère du comportement de $var[] où un nouveau tableau est créé.

Liste de paramètres

array

Le tableau d'entrée.

value1

La première valeur à insérer à la fin du tableau array.

Valeurs de retour

Retourne le nouveau nombre d'éléments dans le tableau.

Exemples

Exemple #1 Exemple avec array_push()

<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)

Voir aussi

  • array_pop() - Dépile un élément de la fin d'un tableau
  • array_shift() - Dépile un élément au début d'un tableau
  • array_unshift() - Empile un ou plusieurs éléments au début d'un tableau


Prend une ou plusieurs valeurs, au hasard dans un tableau

  • « array_push
  • array_reduce »
  • PHP Manual
  • Fonctions sur les tableaux
  • Prend une ou plusieurs valeurs, au hasard dans un tableau

array_rand

(PHP 4, PHP 5, PHP 7)

array_rand — Prend une ou plusieurs valeurs, au hasard dans un tableau

Description

mixed array_rand ( array $array [, int $num = 1 ] )

Sélectionne une ou plusieurs valeurs au hasard dans un tableau et retourne la ou les clés de ces valeurs.

Liste de paramètres

array

Le tableau d'entrée.

num

Spécifie le nombre d'entrées que vous voulez récupérer.

Valeurs de retour

Lorsque vous ne récupérez qu'une seule entrée, la fonction array_rand() retourne la clé d'une entrée choisie aléatoirement. Sinon, un tableau de clés d'entrées aléatoires sera retourné. Cela vous permet de faire une sélection au hasard de clés, ou bien de valeurs. Le fait de tenter de récupérer plus d'éléments qu'il n'y en a dans le tableau fera qu'une erreur de niveau E_WARNING sera émise, et NULL sera retourné.

Historique

Version | Description
5.2.10 | Les clés du tableau résultant ne sont plus mélangées.

Exemples

Exemple #1 Exemple avec array_rand()

<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>

Voir aussi

  • shuffle() - Mélange les éléments d'un tableau


Réduit itérativement un tableau

  • « array_rand
  • array_replace_recursive »
  • PHP Manual
  • Fonctions sur les tableaux
  • Réduit itérativement un tableau

array_reduce

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

array_reduce — Réduit itérativement un tableau

Description

mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )

array_reduce() applique itérativement la fonction callback aux éléments du tableau array, de manière à réduire le tableau à une valeur simple.

Liste de paramètres

array

Le tableau d'entrée.

callback
mixed callback ( mixed $carry , mixed $item )
carry

Contient la valeur retournée de l'itération précédente ; dans le cas de la première itération, ce sera la valeur du paramètre initial.

item

Contient la valeur de l'itération courante.

initial

Si l'argument optionnel initial est disponible, il sera utilisé pour initialiser le processus, ou bien comme valeur finale si le tableau est vide.

Valeurs de retour

Retourne la valeur résultante.

Si le tableau est vide et le paramètre initial n'est pas passé, array_reduce() retourne NULL.

Historique

Version | Description
5.3.0 | Modification du paramètre initial afin d'autoriser des variables de types mixtes (mixed) ; auparavant, uniquement des entiers.

Exemples

Exemple #1 Exemple avec array_reduce()

<?php
function sum($carry, $item)
{
    $carry += $item;
    return $carry;
}

function product($carry, $item)
{
    $carry *= $item;
    return $carry;
}

$a = array(1, 2, 3, 4, 5);
$x = array();

var_dump(array_reduce($a, "sum")); // int(15)
var_dump(array_reduce($a, "product", 10)); // int(1200), car : 10*1*2*3*4*5
var_dump(array_reduce($x, "sum", "No data to reduce")); // string(17) "No data to reduce"
?>

Voir aussi

  • array_filter() - Filtre les éléments d'un tableau grâce à une fonction utilisateur
  • array_map() - Applique une fonction sur les éléments d'un tableau
  • array_unique() - Dédoublonne un tableau
  • array_count_values() - Compte le nombre de valeurs d'un tableau


Remplace récursivement dans le premier tableau les éléments des autres tableaux fournis

  • « array_reduce
  • array_replace »
  • PHP Manual
  • Fonctions sur les tableaux
  • Remplace récursivement dans le premier tableau les éléments des autres tableaux fournis

array_replace_recursive

(PHP 5 >= 5.3.0, PHP 7)

array_replace_recursive — Remplace récursivement dans le premier tableau les éléments des autres tableaux fournis

Description

array array_replace_recursive ( array $array1 , array $array2 [, array $... ] )

array_replace_recursive() remplace les valeurs du tableau array1 avec les valeurs des mêmes clés issues des tableaux suivants. Si une clé du premier tableau existe dans un des tableaux suivants, sa valeur sera remplacée. Si la clé n'existe pas dans le premier tableau, elle sera créée. Si la clé n'existe que dans le premier tableau, elle sera laissée intacte. Si plusieurs tableaux sont passés comme arguments de remplacement, ils seront traités dans l'ordre.

array_replace_recursive() est récursive : si une valeur est un tableau, la même fonction de remplacement lui sera appliqué.

Si la valeur dans array1 est scalaire, elle sera remplacée par la valeur du tableau array2, que ce soit un scalaire ou un tableau. Si la valeur de array1 et array2 sont toutes les deux des tableaux, array_replace_recursive() remplacera les valeurs récursivement.

Liste de paramètres

array1

Le tableau dans lequel les éléments sont remplacés.

array2

Les tableaux dont les valeurs finiront dans le premier tableau.

...

Optionnel. Plus de tableaux depuis lesquels les éléments peuvent être extraits.

Valeurs de retour

Retourne un tableau ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec array_replace_recursive()

<?php
$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));

$basket = array_replace_recursive($base, $replacements);
print_r($basket);

$basket = array_replace($base, $replacements);
print_r($basket);
?>

L'exemple ci-dessus va afficher :

Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
            [1] => raspberry
        )

)
Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
        )

)

Exemple #2 Exemple avec array_replace_recursive() et la récursivité

<?php
$base = array('citrus' => array("orange") , 'berries' => array("blackberry", "raspberry"), 'others' => 'banana' );
$replacements = array('citrus' => 'pineapple', 'berries' => array('blueberry'), 'others' => array('litchis'));
$replacements2 = array('citrus' => array('pineapple'), 'berries' => array('blueberry'), 'others' => 'litchis');

$basket = array_replace_recursive($base, $replacements, $replacements2);
print_r($basket);

?>

L'exemple ci-dessus va afficher :

Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
            [1] => raspberry
        )

    [others] => litchis
)

Voir aussi

  • array_replace() - Remplace les éléments d'un tableau par ceux d'autres tableaux
  • array_merge_recursive() - Combine plusieurs tableaux ensemble, récursivement


Remplace les éléments d'un tableau par ceux d'autres tableaux

  • « array_replace_recursive
  • array_reverse »
  • PHP Manual
  • Fonctions sur les tableaux
  • Remplace les éléments d'un tableau par ceux d'autres tableaux

array_replace

(PHP 5 >= 5.3.0, PHP 7)

array_replace — Remplace les éléments d'un tableau par ceux d'autres tableaux

Description

array array_replace ( array $array1 , array $array2 [, array $... ] )

array_replace() remplace les valeurs du tableau array1 avec les valeurs ayant les mêmes clés dans les tableaux fournis. Si une clé du premier tableau existe dans un des tableaux suivants, sa valeur sera remplacée. Si la clé n'existe pas dans le premier tableau, elle sera créée. Si la clé n'existe que dans le premier tableau, elle sera laissée intacte. Si plusieurs tableaux sont passés comme arguments de remplacement, ils seront traités dans l'ordre.

array_replace() n'est pas récursif : il remplace les valeurs du premier tableau par la valeur des tableaux suivants, quel que soit leur type.

Liste de paramètres

array1

Le tableau dans lequel les éléments sont remplacés.

array2

Les tableaux dont les valeurs finiront dans le premier tableau.

...

Plus de tableaux depuis lesquels les éléments peuvent être extraits. Les valeurs des futurs tableaux écraseront les valeurs précédentes.

Valeurs de retour

Retourne un tableau ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec array_replace()

<?php
$base = array("orange", "banana", "apple", "raspberry");
$replacements = array(0 => "pineapple", 4 => "cherry");
$replacements2 = array(0 => "grape");

$basket = array_replace($base, $replacements, $replacements2);
print_r($basket);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => grape
    [1] => banana
    [2] => apple
    [3] => raspberry
    [4] => cherry
)

Voir aussi

  • array_replace_recursive() - Remplace récursivement dans le premier tableau les éléments des autres tableaux fournis
  • array_merge() - Fusionne plusieurs tableaux en un seul


Inverse l'ordre des éléments d'un tableau

  • « array_replace
  • array_search »
  • PHP Manual
  • Fonctions sur les tableaux
  • Inverse l'ordre des éléments d'un tableau

array_reverse

(PHP 4, PHP 5, PHP 7)

array_reverse — Inverse l'ordre des éléments d'un tableau

Description

array array_reverse ( array $array [, bool $preserve_keys = false ] )

array_reverse() retourne un nouveau tableau qui contient les mêmes éléments que array, mais dans l'ordre inverse.

Liste de paramètres

array

Le tableau d'entrée.

preserve_keys

Si définit à TRUE, les clés numériques seront préservées. Les clés non-numériques ne seront pas affectées par cette configuration, et seront toujours préservées.

Valeurs de retour

Retourne le tableau dans l'ordre inverse.

Exemples

Exemple #1 Exemple avec array_reverse()

<?php
$input  = array("php", 4.0, array("green", "red"));
$reversed = array_reverse($input);
$preserved = array_reverse($input, true);

print_r($input);
print_r($reversed);
print_r($preserved);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => php
    [1] => 4
    [2] => Array
        (
            [0] => green
            [1] => red
        )

)
Array
(
    [0] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [2] => php
)
Array
(
    [2] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [0] => php
)

Voir aussi

  • array_flip() - Remplace les clés par les valeurs, et les valeurs par les clés


Recherche dans un tableau la clé associée à une valeur

  • « array_reverse
  • array_shift »
  • PHP Manual
  • Fonctions sur les tableaux
  • Recherche dans un tableau la clé associée à une valeur

array_search

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

array_search — Recherche dans un tableau la clé associée à une valeur

Description

mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )

Recherche needle dans haystack.

Liste de paramètres

needle

La valeur à chercher.

Note:

Si needle est une chaîne de caractères, la comparaison est effectuée en respectant la casse.

haystack

Le tableau.

strict

Si le troisième paramètre strict vaut TRUE, alors array_search() cherchera des éléments identiques dans haystack. Cela signifie que cette fonction s'assurera aussi que le type de needle est le même que celui de la valeur trouvée dans haystack, et que les objets proviennent de la même instance.

Valeurs de retour

Retourne la clé pour needle si elle est trouvée dans le tableau, FALSE sinon.

Si needle est trouvé plus d'une fois dans haystack, la première clé concordante est retournée. Pour trouver toutes les clés correspondantes, utilisez plutôt la fonction array_keys() avec le paramètre optionnel search_value.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Historique

Version | Description
5.3.0 | Comme toutes les fonctions internes de PHP depuis 5.3.0, la fonction array_search() retournera NULL si des paramètres invalides sont passés à la fonction.
4.2.0 | Avant la version 4.2.0, array_search() retourne NULL en cas d'échec au lieu de FALSE.

Exemples

Exemple #1 Exemple avec array_search()

<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array);   // $key = 1;
?>

Voir aussi

  • array_keys() - Retourne toutes les clés ou un ensemble des clés d'un tableau
  • array_values() - Retourne toutes les valeurs d'un tableau
  • array_key_exists() - Vérifie si une clé existe dans un tableau
  • in_array() - Indique si une valeur appartient à un tableau


Dépile un élément au début d'un tableau

  • « array_search
  • array_slice »
  • PHP Manual
  • Fonctions sur les tableaux
  • Dépile un élément au début d'un tableau

array_shift

(PHP 4, PHP 5, PHP 7)

array_shift — Dépile un élément au début d'un tableau

Description

mixed array_shift ( array &$array )

array_shift() extrait la première valeur d'un tableau et la retourne, en raccourcissant le tableau d'un élément, et en déplaçant tous les éléments vers le bas. Toutes les clés numériques seront modifiées pour commencer à zéro.

Note: Cette fonction remet le pointeur au début du tableau d'entrée (équivalent de reset()).

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne la valeur dépilée, ou NULL si le tableau est vide ou si la valeur d'entrée n'est pas un tableau.

Exemples

Exemple #1 Exemple avec array_shift()

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
)

et orange a été placé dans $fruit.

Voir aussi

  • array_unshift() - Empile un ou plusieurs éléments au début d'un tableau
  • array_push() - Empile un ou plusieurs éléments à la fin d'un tableau
  • array_pop() - Dépile un élément de la fin d'un tableau


Extrait une portion de tableau

  • « array_shift
  • array_splice »
  • PHP Manual
  • Fonctions sur les tableaux
  • Extrait une portion de tableau

array_slice

(PHP 4, PHP 5, PHP 7)

array_slice — Extrait une portion de tableau

Description

array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )

array_slice() retourne une série d'éléments du tableau array commençant à l'offset offset et représentant length éléments.

Liste de paramètres

array

Le tableau d'entrée.

offset

Si offset est non-négatif, la série commencera à cet offset dans le tableau array. Si offset est négatif, cette série commencera à l'offset offset, mais en commençant à la fin du tableau array.

length

Si length est fourni et positif, alors la série retournée aura autant d'éléments. Si le tableau est moins long que length, alors seuls les éléments de tableaux disponibles seront présents. Si length est fourni et négatif, alors la série contiendra les éléments depuis l'offset offset jusqu'à length éléments en partant de la fin. Si length est omis, la séquence lira tous les éléments du tableau, depuis l'offset précisé jusqu'à la fin du tableau.

preserve_keys

Notez que, par défaut, la fonction array_slice() va réordonner et réinitialiser les indices numériques du tableau. Vous pouvez modifier ce comportement en définissant le paramètre preserve_keys à TRUE.

Valeurs de retour

Retourne la portion du tableau.

Historique

Version | Description
5.2.4 | La valeur par défaut du paramètre length a changé en la valeur NULL. Une longeur de valeur NULL démande désormais à la fonction d'utiliser la longeur du tableau array. Avant cette version, une longeur de valeur NULL signifiait une longueur égale à zéro (rien n'était retourné).
5.0.2 | Le paramètre optionnel preserve_keys a été ajouté.

Exemples

Exemple #1 Exemple avec array_slice()

<?php
$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2);         // retourne "c", "d", et "e"
$output = array_slice($input, -2, 1);     // retourne "d"
$output = array_slice($input, 0, 3);      // retourne "a", "b", et "c"

// notez les clés d'index différentes
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => c
    [1] => d
)
Array
(
    [2] => c
    [3] => d
)

Voir aussi

  • array_splice() - Efface et remplace une portion de tableau
  • unset() - Détruit une variable
  • array_chunk() - Sépare un tableau en tableaux de taille inférieure


Efface et remplace une portion de tableau

  • « array_slice
  • array_sum »
  • PHP Manual
  • Fonctions sur les tableaux
  • Efface et remplace une portion de tableau

array_splice

(PHP 4, PHP 5, PHP 7)

array_splice — Efface et remplace une portion de tableau

Description

array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement = array() ]] )

array_splice() supprime les éléments désignés par offset et length du tableau input et les remplace par les éléments du tableau replacement, si ce dernier est présent.

Notez que les clés numériques de input ne sont pas préservées.

Note: Si replacement n'est pas un tableau, il en deviendra un par transtypage (i.e. (array) $replacement). Cela peut conduire en un résultat non prévu lors de l'utilisation d'un objet ou NULL comme paramètre replacement.

Liste de paramètres

input

Le tableau d'entrée.

offset

Si offset est positif, la série commencera à cet offset dans le tableau input. Si offset est négatif, cette série commencera à l'offset offset, mais en commençant à la fin du tableau input.

length

Si length est donné et positif, alors la série aura autant d'éléments. Si length est donné et négatif, les éléments seront pris dans l'ordre inverse. Si length est omis, la séquence supprimera tous les éléments du tableau, depuis l'offset offset jusqu'à la fin du tableau. Si le paramètre length est spécifié et vaut zéro, aucun élément ne sera supprimé. Conseil : pour supprimer tous les éléments du tableau depuis offset jusqu'à la fin, même si un tableau de remplacement replacement est spécifié, utilisez count($input) à la place de length.

replacement

Si replacement est précisé, alors les éléments supprimés sont remplacés par les éléments de ce tableau.

Si l'offset et length sont tels que la taille du tableau ne change pas, alors les éléments du tableau de remplacement replacement sont insérés à partir de l'offset offset. Notez que les clés numériques de input ne sont pas préservées.

Si le tableau de remplacement replacement ne contient qu'un seul élément, il n'est pas obligatoire de forcer le type en tableau avec array(), à moins que cette variable ne soit elle-même un tableau, un objet ou NULL.

Valeurs de retour

Retourne le tableau contenant les éléments supprimés.

Exemples

Exemple #1 Exemple avec array_splice()

<?php
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
// $input is now array("red", "green")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
// $input is now array("red", "yellow")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
// $input is now array("red", "orange")

$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
// $input is now array("red", "green",
//          "blue", "black", "maroon")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 3, 0, "purple");
// $input is now array("red", "green",
//          "blue", "purple", "yellow");
?>

Exemple #2 Exemple avec array_splice()

L'exemple suivant modifie les valeurs de $input de la même façon :

<?php
array_push($input, $x, $y);
array_splice($input, count($input), 0, array($x, $y));
array_pop($input);
array_splice($input, -1);
array_shift($input);
array_splice($input, 0, 1);
array_unshift($input, $x, $y);
array_splice($input, 0, 0, array($x, $y));
$input[$x] = $y; // pour les tableaux dont les clés sont égales à l'offset
array_splice($input, $x, 1, $y);
?>

Voir aussi

  • array_slice() - Extrait une portion de tableau
  • unset() - Détruit une variable
  • array_merge() - Fusionne plusieurs tableaux en un seul


Calcule la somme des valeurs du tableau

  • « array_splice
  • array_udiff_assoc »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule la somme des valeurs du tableau

array_sum

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

array_sum — Calcule la somme des valeurs du tableau

Description

number array_sum ( array $array )

array_sum() retourne la somme des valeurs du tableau array.

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne la somme des valeurs, sous la forme d'un entier ou d'un nombre décimal.

Exemples

Exemple #1 Exemple avec array_sum()

<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "sum(b) = " . array_sum($b) . "\n";
?>

L'exemple ci-dessus va afficher :

sum(a) = 20
sum(b) = 6.9


Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel

  • « array_sum
  • array_udiff_uassoc »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel

array_udiff_assoc

(PHP 5, PHP 7)

array_udiff_assoc — Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel

Description

array array_udiff_assoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func )

Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel.

Note: Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multidimensionnel. Vous pouvez, bien sûr, tester une dimension particulière en utilisant par exemple, array_udiff_assoc($array1[1], $array2[1], "compare_func");.

Liste de paramètres

array1

Le premier tableau.

array2

Le second tableau.

value_compare_func

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )

Valeurs de retour

array_udiff_assoc() retourne un tableau contenant toutes les valeurs de array1 qui ne sont présentes dans aucun autre des arguments array2, .... Notez que les clés sont utilisées dans les comparaisons contrairement à array_diff() et array_udiff(). La comparaison des données est effectuée en utilisant une fonction de rappel fournie par l'utilisateur, data_compare_func. Ce comportement est différent de celui de array_diff_assoc() qui utilise une fonction de comparaison interne.

Exemples

Exemple #1 Exemple avec array_udiff_assoc()

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    static function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
}

$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

Dans notre exemple, vous voyez que la paire "1" => new cr(4) est présente dans les deux tableaux et donc absente du tableau résultant.

Voir aussi

  • array_diff() - Calcule la différence entre des tableaux
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_uassoc() - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée


Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel

  • « array_udiff_assoc
  • array_udiff »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel

array_udiff_uassoc

(PHP 5, PHP 7)

array_udiff_uassoc — Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel

Description

array array_udiff_uassoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func , callable $key_compare_func )

Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel.

Notez que les clés sont utilisées dans les comparaisons contrairement à array_diff() et array_udiff().

Liste de paramètres

array1

Le premier tableau.

array2

Le second tableau.

value_compare_func

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
key_compare_func

La comparaison des clés (indices) est effectuée par la fonction de rappel key_compare_func. Ce comportement est différent de celui de array_udiff_assoc(), vu que cette dernière utilise une fonction interne pour comparer les indices.

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 qui ne sont pas présentes dans aucun autre argument.

Exemples

Exemple #1 Exemple avec array_udiff_uassoc()

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    static function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }

    static function comp_func_key($a, $b)
    {
        if ($a === $b) return 0;
        return ($a > $b)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), array("cr", "comp_func_key"));
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

Dans notre exemple, vous voyez que la paire "1" => new cr(4) est présente dans les deux tableaux et donc, absente du tableau résultant. Gardez en tête que vous devez fournir deux fonctions de rappel.

Notes

Note: Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multidimensionnel. Vous pouvez, bien sûr, tester une dimension particulière en utilisant par exemple array_udiff_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func");.

Voir aussi

  • array_diff() - Calcule la différence entre des tableaux
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée


Calcule la différence entre deux tableaux en utilisant une fonction rappel

  • « array_udiff_uassoc
  • array_uintersect_assoc »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule la différence entre deux tableaux en utilisant une fonction rappel

array_udiff

(PHP 5, PHP 7)

array_udiff — Calcule la différence entre deux tableaux en utilisant une fonction rappel

Description

array array_udiff ( array $array1 , array $array2 [, array $... ], callable $value_compare_func )

Calcule la différence entre deux tableaux en utilisant une fonction rappel. Cette fonctionne agit comme la fonction array_diff() qui utilise une fonction interne pour comparer les données.

Liste de paramètres

array1

Le premier tableau.

array2

Le second tableau.

value_compare_func

La fonction de comparaison.

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 qui ne sont pas présentes dans aucun autre argument.

Exemples

Exemple #1 Exemple avec array_udiff() en utilisant les objets stdClass

<?php
// Arrays to compare
$array1 = array(new stdclass, new stdclass,
                new stdclass, new stdclass,
               );

$array2 = array(
                new stdclass, new stdclass,
               );

// Définit quelques propriétés pour chaque objet
$array1[0]->width = 11; $array1[0]->height = 3;
$array1[1]->width = 7;  $array1[1]->height = 1;
$array1[2]->width = 2;  $array1[2]->height = 9;
$array1[3]->width = 5;  $array1[3]->height = 7;

$array2[0]->width = 7;  $array2[0]->height = 5;
$array2[1]->width = 9;  $array2[1]->height = 2;

function compare_by_area($a, $b) {
    $areaA = $a->width * $a->height;
    $areaB = $b->width * $b->height;

    if ($areaA < $areaB) {
        return -1;
    } elseif ($areaA > $areaB) {
        return 1;
    } else {
        return 0;
    }
}

print_r(array_udiff($array1, $array2, 'compare_by_area'));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => stdClass Object
        (
            [width] => 11
            [height] => 3
        )

    [1] => stdClass Object
        (
            [width] => 7
            [height] => 1
        )

)

Exemple #2 Exemple avec array_udiff() en utilisant des objets DateTime

<?php
class MyCalendar {
    public $free = array();
    public $booked = array();

    public function __construct($week = 'now') {
        $start = new DateTime($week);
        $start->modify('Monday this week midnight');
        $end = clone $start;
        $end->modify('Friday this week midnight');
        $interval = new DateInterval('P1D');
        foreach (new DatePeriod($start, $interval, $end) as $freeTime) {
            $this->free[] = $freeTime;
        }
    }

    public function bookAppointment(DateTime $date, $note) {
        $this->booked[] = array('date' => $date->modify('midnight'), 'note' => $note);
    }

    public function checkAvailability() {
        return array_udiff($this->free, $this->booked, array($this, 'customCompare'));
    }

    public function customCompare($free, $booked) {
        if (is_array($free)) $a = $free['date'];
        else $a = $free;
        if (is_array($booked)) $b = $booked['date'];
        else $b = $booked;
        if ($a == $b) {
            return 0;
        } elseif ($a > $b) {
            return 1;
        } else {
            return -1;
        }
    }
}

// Crée un calendrier pour les rendez-vous hébdomadaires
$myCalendar = new MyCalendar;

// Enregistre quelques rendez-vous pour cette semaine
$myCalendar->bookAppointment(new DateTime('Monday this week'), "Cleaning GoogleGuy's apartment.");
$myCalendar->bookAppointment(new DateTime('Wednesday this week'), "Going on a snowboarding trip.");
$myCalendar->bookAppointment(new DateTime('Friday this week'), "Fixing buggy code.");

// Vérifie la disponibilité en jours, en comparant les dates $booked avec les dates $free
echo "I'm available on the following days this week...\n\n";
foreach ($myCalendar->checkAvailability() as $free) {
    echo $free->format('l'), "\n";
}
echo "\n\n";
echo "I'm busy on the following days this week...\n\n";
foreach ($myCalendar->booked as $booked) {
    echo $booked['date']->format('l'), ": ", $booked['note'], "\n";
}
?>

L'exemple ci-dessus va afficher :

I'm available on the following days this week...

Tuesday
Thursday

I'm busy on the following days this week...

Monday: Cleaning GoogleGuy's apartment.
Wednesday: Going on a snowboarding trip.
Friday: Fixing buggy code.

Notes

Note: Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multidimensionnel. Vous pouvez, bien sûr, tester une dimension particulière en utilisant par exemple array_udiff($array1[0], $array2[0], "data_compare_func");.

Voir aussi

  • array_diff() - Calcule la différence entre des tableaux
  • array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
  • array_diff_uassoc() - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
  • array_udiff_assoc() - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
  • array_udiff_uassoc() - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée


Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel

  • « array_udiff
  • array_uintersect_uassoc »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel

array_uintersect_assoc

(PHP 5, PHP 7)

array_uintersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel

Description

array array_uintersect_assoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func )

Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel.

Notez que les clés sont utilisées dans la comparaison par opposition à la fonction array_uintersect(). Les données sont comparées en utilisant une fonction de rappel.

Liste de paramètres

array1

Le premier tableau.

array2

Le second tableau.

value_compare_func

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les autres arguments.

Exemples

Exemple #1 Exemple avec array_uintersect_assoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect_assoc($array1, $array2, "strcasecmp"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
)

Voir aussi

  • array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée


Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée

  • « array_uintersect_assoc
  • array_uintersect »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée

array_uintersect_uassoc

(PHP 5, PHP 7)

array_uintersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée

Description

array array_uintersect_uassoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func , callable $key_compare_func )

Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée.

Liste de paramètres

array1

Le premier tableau.

array2

Le second tableau.

value_compare_func

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
key_compare_func

Fonction de rappel utilisée pour la comparaison des clés.

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les arguments.

Exemples

Exemple #1 Exemple avec array_uintersect_uassoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect_uassoc($array1, $array2, "strcasecmp", "strcasecmp"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
    [b] => brown
)

Voir aussi

  • array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel


Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel

  • « array_uintersect_uassoc
  • array_unique »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel

array_uintersect

(PHP 5, PHP 7)

array_uintersect — Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel

Description

array array_uintersect ( array $array1 , array $array2 [, array $... ], callable $value_compare_func )

Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel.

Liste de paramètres

array1

Le premier tableau.

array2

Le second tableau.

value_compare_func

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les arguments.

Exemples

Exemple #1 Exemple avec array_uintersect()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
    [b] => brown
    [0] => red
)

Voir aussi

  • array_intersect() - Calcule l'intersection de tableaux
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel
  • array_uintersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée


Dédoublonne un tableau

  • « array_uintersect
  • array_unshift »
  • PHP Manual
  • Fonctions sur les tableaux
  • Dédoublonne un tableau

array_unique

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_unique — Dédoublonne un tableau

Description

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )

array_unique() extrait du tableau array les valeurs distinctes, et supprime tous les doublons.

Notez que les clés sont préservées. array_unique() trie les valeurs traitées comme des chaînes dans un premier temps, puis garde la première clé rencontrée pour chaque valeur et ignore les clés suivantes. Cela ne signifie pas que la clé de la première valeur rencontrée du tableau array non trié sera conservée.

Note: Deux éléments sont considérés comme égaux si et seulement si (string) $elem1 === (string) $elem2, i.e. lorsque la représentation en chaîne de caractères est identique.

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Le second paramètre optionnel sort_flags peut être utilisé pour modifier la façon dont s'effectue le tri en utilisant les valeurs suivantes :

Drapeau de type de tri :

  • SORT_REGULAR - compare les éléments normalement (ne modifie pas les types)
  • SORT_NUMERIC - compare les éléments numériquement
  • SORT_STRING - compare les éléments comme des chaînes
  • SORT_LOCALE_STRING - compare les éléments comme des chaînes, suivant la locale courante.

Valeurs de retour

Retourne le tableau filtré.

Historique

Version | Description
5.2.10 | Changement de la valeur par défaut de sort_flags à nouveau vers SORT_STRING.
5.2.9 | Ajout du paramètre optionnel sort_flags, qui vaut par défaut SORT_REGULAR. Avant 5.2.9, cette fonction utilisait par défaut SORT_STRING, en interne.

Exemples

Exemple #1 Exemple avec array_unique()

<?php
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
    [0] => red
    [1] => blue
)

Exemple #2 Exemple avec array_unique() et les types

<?php
$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

Voir aussi

  • array_count_values() - Compte le nombre de valeurs d'un tableau

Notes

Note: Notez que array_unique() ne fonctionne pas avec des tableaux multi-dimensionnels.


Empile un ou plusieurs éléments au début d'un tableau

  • « array_unique
  • array_values »
  • PHP Manual
  • Fonctions sur les tableaux
  • Empile un ou plusieurs éléments au début d'un tableau

array_unshift

(PHP 4, PHP 5, PHP 7)

array_unshift — Empile un ou plusieurs éléments au début d'un tableau

Description

int array_unshift ( array &$array , mixed $value1 [, mixed $... ] )

array_unshift() ajoute les éléments value1, ..., passés en argument au début du tableau array. Notez que les éléments sont ajoutés comme un tout, et qu'ils restent dans le même ordre. Toutes les clés numériques seront modifiées afin de commencer à partir de zéro, tandis que les clés littérales ne seront pas touchées.

Liste de paramètres

array

Le tableau d'entrée.

value1

Première valeur à empiler.

Valeurs de retour

Retourne le nouveau nombre d'éléments du tableau array.

Exemples

Exemple #1 Exemple avec array_unshift()

<?php
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => apple
    [1] => raspberry
    [2] => orange
    [3] => banana
)

Voir aussi

  • array_shift() - Dépile un élément au début d'un tableau
  • array_push() - Empile un ou plusieurs éléments à la fin d'un tableau
  • array_pop() - Dépile un élément de la fin d'un tableau


Retourne toutes les valeurs d'un tableau

  • « array_unshift
  • array_walk_recursive »
  • PHP Manual
  • Fonctions sur les tableaux
  • Retourne toutes les valeurs d'un tableau

array_values

(PHP 4, PHP 5, PHP 7)

array_values — Retourne toutes les valeurs d'un tableau

Description

array array_values ( array $array )

array_values() retourne les valeurs du tableau array et l'indexe de facon numérique.

Liste de paramètres

array

Le tableau.

Valeurs de retour

Retourne un tableau de valeurs indexé.

Exemples

Exemple #1 Exemple avec array_values()

<?php
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => XL
    [1] => gold
)

Voir aussi

  • array_keys() - Retourne toutes les clés ou un ensemble des clés d'un tableau


Applique une fonction de rappel récursivement à chaque membre d'un tableau

  • « array_values
  • array_walk »
  • PHP Manual
  • Fonctions sur les tableaux
  • Applique une fonction de rappel récursivement à chaque membre d'un tableau

array_walk_recursive

(PHP 5, PHP 7)

array_walk_recursive — Applique une fonction de rappel récursivement à chaque membre d'un tableau

Description

bool array_walk_recursive ( array &$array , callable $callback [, mixed $userdata = NULL ] )

Applique la fonction utilisateur callback à chaque élément du tableau array. Cette fonction se reproduira dans toutes les profondeurs du tableau.

Liste de paramètres

array

Le tableau d'entrée.

callback

Typiquement, callback prend 2 paramètres. Le paramètre array, représentant la valeur, est le premier, l'index/clé, le deuxième.

Note:

Si callback doit être exécuté avec les valeurs actuelles du tableau, spécifiez le premier paramètre de callback par référence. Alors, tout changement effectué sur les éléments de ce tableau sera également effectué sur le tableau original.

userdata

Si le paramètre optionnel userdata est fourni, il sera passé comme troisième paramètre à la fonction de rappel callback.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec array_walk_recursive()

<?php
$sweet = array('a' => 'apple', 'b' => 'banana');
$fruits = array('sweet' => $sweet, 'sour' => 'lemon');

function test_print($item, $key)
{
    echo "La clé $key contient l'élément $item\n";
}

array_walk_recursive($fruits, 'test_print');
?>

L'exemple ci-dessus va afficher :

La clé a contient l'élément apple
La clé b contient l'élément banana
La clé sour contient l'élément lemon

Vous aurez noté que la clé 'sweet' n'est jamais affichée. Toute clé qui est associée à un tableau n'est pas passée à la fonction de rappel.

Voir aussi

  • array_walk() - Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau
  • Informations sur le type callback


Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau

  • « array_walk_recursive
  • array »
  • PHP Manual
  • Fonctions sur les tableaux
  • Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau

array_walk

(PHP 4, PHP 5, PHP 7)

array_walk — Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau

Description

bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] )

Exécute la fonction callback définie par l'utilisateur sur chaque élément du tableau array.

array_walk() n'est pas affecté par le pointeur interne du tableau array. array_walk() traversera le tableau en totalité sans se soucier de la position du pointeur.

Liste de paramètres

array

Le tableau d'entrée.

callback

Typiquement, callback prend deux paramètres. La valeur du paramètre array étant le premier et la clé/index, le second.

Note:

Si callback doit travailler avec les véritables valeurs du tableau, spécifiez que le premier paramètre de callback doit être passé par référence. Alors, les éléments seront directement modifiés dans le tableau.

Note:

Plusieurs fonctions internes (par exemple, strtolower()) émettent une alerte si plus d'arguments que ceux attendus sont passés à la fonction et ne sont pas utilisable directement comme callback.

Seules les valeurs du array peuvent être modifiées; sa structure ne peut pas, c'est à dire que vous ne pouvez ajouter, supprimer ou réordonner des éléments. Si la fonction de callback ne respecte pas cette règle, le comportement va devenir indéfini et imprévisible.

userdata

Si le paramètre optionnel userdata est fourni, il sera passé comme troisième paramètre à la fonction définie par l'utilisateur callback.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Si callback requiert plus de paramètres que ceux donnés, une alerte E_WARNING sera générée à chaque fois que la fonction array_walk() appellera callback.

Exemples

Exemple #1 Exemple avec array_walk()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");

function test_alter(&$item1, $key, $prefix)
{
    $item1 = "$prefix: $item1";
}

function test_print($item2, $key)
{
    echo "$key. $item2<br />\n";
}

echo "Avant ...:\n";
array_walk($fruits, 'test_print');

array_walk($fruits, 'test_alter', 'fruit');
echo "... et après :\n";

array_walk($fruits, 'test_print');
?>

L'exemple ci-dessus va afficher :

Avant ...:
d. lemon
a. orange
b. banana
c. apple
... et après :
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple

Voir aussi

  • array_walk_recursive() - Applique une fonction de rappel récursivement à chaque membre d'un tableau
  • iterator_apply() - Appelle une fonction pour tous les éléments d'un itérateur
  • list() - Assigne des variables comme si elles étaient un tableau
  • each() - Retourne chaque paire clé/valeur d'un tableau
  • call_user_func_array() - Appelle une fonction de rappel avec les paramètres rassemblés en tableau
  • array_map() - Applique une fonction sur les éléments d'un tableau
  • Informations sur le type callback
  • foreach


Crée un tableau

  • « array_walk
  • arsort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Crée un tableau

array

(PHP 4, PHP 5, PHP 7)

array — Crée un tableau

Description

array array ([ mixed $... ] )

Crée un tableau. Lisez la section sur les types tableaux pour plus d'informations sur ce qu'est un tableau.

Liste de paramètres

...

La syntaxe "index => valeur", séparée par des virgules, définit les index et leur valeur. Un index peut être une chaîne ou un nombre. Si l'index est omis, un index numérique sera automatiquement généré (commençant à 0). Si l'index est un entier, le prochain index généré prendra la valeur d'index la plus grande + 1. Notez que si deux index identiques sont définis, le dernier remplacera le premier.

Avoir une virgule après avoir défini la dernière entrée, bien qu'inutile, est une syntaxe valide.

Valeurs de retour

Retourne un tableau des paramètres. Les paramètres peuvent fournir un index en utilisant l'opérateur =>. Lisez la section sur les types-tableaux pour plus d'informations sur ce qu'est un tableau.

Exemples

L'exemple suivant montre comment créer un tableau à deux dimensions, comment spécifier les index d'un tableau associatif, et comment générer automatiquement des index numériques.

Exemple #1 Exemple avec array()

<?php
$fruits = array (
    "fruits"  => array("a" => "orange", "b" => "banana", "c" => "apple"),
    "numbers" => array(1, 2, 3, 4, 5, 6),
    "holes"   => array("first", 5 => "second", "third")
);
?>

Exemple #2 Index automatique avec array()

<?php
$array = array(1, 1, 1, 1,  1, 8 => 1,  4 => 1, 19, 3 => 13);
print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 13
    [4] => 1
    [8] => 1
    [9] => 19
)

Notez bien que l'index '3' est défini deux fois, et conserve finalement sa dernière valeur de 13. L'index '4' est défini après l'index '8', et l'index généré suivant (valeur 19) est 9, puisque le plus grand index est alors 8.

Cet exemple crée un tableau dont les index commencent à 1.

Exemple #3 Index commençant à 1 avec array()

<?php
$firstquarter = array(1 => 'January', 'February', 'March');
print_r($firstquarter);
?>

L'exemple ci-dessus va afficher :

Array
(
    [1] => January
    [2] => February
    [3] => March
)

Tout comme en Perl, vous pouvez accéder à une valeur d'un tableau dans des doubles guillemets. Cependant, avec PHP, vous devez entourer votre tableau avec des accolades.

Exemple #4 Accéder à un tableau dans des doubles guillemets

<?php

$foo = array('bar' => 'baz');
echo "Hello {$foo['bar']}!"; // Hello baz!

?>

Notes

Note:

array() est un constructeur de langage utilisé pour représenter littéralement les tableaux, mais ce n'est en aucun cas une fonction régulière.

Voir aussi

  • array_pad() - Complète un tableau avec une valeur jusqu'à la longueur spécifiée
  • list() - Assigne des variables comme si elles étaient un tableau
  • count() - Compte tous les éléments d'un tableau ou quelque chose d'un objet
  • range() - Crée un tableau contenant un intervalle d'éléments
  • foreach
  • Le type array


Trie un tableau en ordre inverse et conserve l'association des index

  • « array
  • asort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau en ordre inverse et conserve l'association des index

arsort

(PHP 4, PHP 5, PHP 7)

arsort — Trie un tableau en ordre inverse et conserve l'association des index

Description

bool arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

arsort() trie le tableau array de telle manière que la corrélation entre les index et les valeurs soit conservée.

L'usage principal est lors de tri de tableaux associatifs où l'ordre des éléments est important.

Note:

If two members compare as equal, their relative order in the sorted array is undefined.

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez la fonction sort().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec arsort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
arsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

a = orange
d = lemon
b = banana
c = apple

Les fruits ont été triés en ordre alphabétique inverse, et leurs index respectifs ont été conservés.

Voir aussi

  • asort() - Trie un tableau et conserve l'association des index
  • Les fonctions de tri des tableaux


Trie un tableau et conserve l'association des index

  • « arsort
  • compact »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau et conserve l'association des index

asort

(PHP 4, PHP 5, PHP 7)

asort — Trie un tableau et conserve l'association des index

Description

bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

asort() trie le tableau array de telle manière que la corrélation entre les index et les valeurs soit conservée. L'usage principal est lors de tri de tableaux associatifs où l'ordre des éléments est important.

Note:

If two members compare as equal, their relative order in the sorted array is undefined.

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec asort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

c = apple
b = banana
d = lemon
a = orange

Les fruits ont été triés par ordre alphabétique, et leurs index respectifs ont été conservés.

Voir aussi

  • arsort() - Trie un tableau en ordre inverse et conserve l'association des index
  • Les fonctions de tri des tableaux


Crée un tableau à partir de variables et de leur valeur

  • « asort
  • count »
  • PHP Manual
  • Fonctions sur les tableaux
  • Crée un tableau à partir de variables et de leur valeur

compact

(PHP 4, PHP 5, PHP 7)

compact — Crée un tableau à partir de variables et de leur valeur

Description

array compact ( mixed $varname1 [, mixed $... ] )

Crée un tableau à partir de variables et de leur valeur.

Pour chacun des arguments varname, ..., compact() recherche une variable avec un même nom dans la table courante des symboles, et l'ajoute dans le tableau, de manière à avoir la relation nom => 'valeur de variable'. En bref, c'est le contraire de la fonction extract().

Toute chaîne non reconnue dans la table des symboles sera tout simplement ignorée.

Liste de paramètres

varname1

compact() accepte différents paramètres varname. Les paramètres peuvent être des variables contenant des chaînes, ou un tableau de chaînes, qui peut contenir d'autres tableaux de noms de variables, que compact() traitera récursivement.

Valeurs de retour

Retourne le tableau de sortie contenant toutes les variables ajoutées.

Exemples

Exemple #1 Exemple avec compact()

<?php
$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", "nothing_here", $location_vars);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

Notes

Note: Erreur commune

Parce que les variables variables ne doivent pas être utilisées avec les tableaux superglobaux dans des fonctions, les tableaux Superglobaux ne doivent pas être passés dans la fonction compact().

Voir aussi

  • extract() - Importe les variables dans la table des symboles


Compte tous les éléments d'un tableau ou quelque chose d'un objet

  • « compact
  • current »
  • PHP Manual
  • Fonctions sur les tableaux
  • Compte tous les éléments d'un tableau ou quelque chose d'un objet

count

(PHP 4, PHP 5, PHP 7)

count — Compte tous les éléments d'un tableau ou quelque chose d'un objet

Description

int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] )

Compte tous les éléments d'un tableau ou quelque chose d'un objet.

Pour les objets, count() retourne le nombre de propriétés non-statiques, sans tenir compte de la visibilité. Si SPL est disponible, vous pouvez utiliser la fonction count() en implémentant l'interface Countable. Cette interface a exactement une méthode, Countable::count(), qui retourne la valeur retournée par la fonction count().

Reportez-vous à la section sur les Tableaux du manuel, pour plus de détails sur le fonctionnement des tableaux en PHP.

Liste de paramètres

array_or_countable

Un tableau ou un objet Countable.

mode

Si le paramètre optionnel mode vaut COUNT_RECURSIVE (ou 1), count() va compter récursivement les tableaux. C'est particulièrement pratique pour compter le nombre d'éléments d'un tableau.

Attention

La fonction count() peut détecter les récursions afin d'éviter les boucles infinies, mais émettra une alerte de type E_WARNING à chaque fois qu'une boucle infinie surviendra (dans le cas où un tableau contient lui-même plus d'une boucle infinie) et retournera un compteur plus grand que l'attendu.

Valeurs de retour

Retourne le nombre d'éléments dans array_or_countable. Si le paramètre n'est ni un objet, ni un tableau, 1 sera retourné. Il y a néanmoins une exception : si le paramètre array_or_countable vaut NULL, 0 sera retourné.

Attention

count() peut retourner 0 pour une variable qui n'a pas été affectée, ou pour un tableau vide. Utilisez plutôt isset() pour tester si la variable existe.

Exemples

Exemple #1 Exemple avec count()

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count($a);
// $result == 3

$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
$result = count($b);
// $result == 3

$result = count(null);
// $result == 0

$result = count(false);
// $result == 1
?>

Exemple #2 Exemple de récursivité avec count()

<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
              'veggie' => array('carrot', 'collard', 'pea'));

// count récursif
echo count($food, COUNT_RECURSIVE); // affiche 8

// count normal
echo count($food); // affiche 2

?>

Voir aussi

  • is_array() - Détermine si une variable est un tableau
  • isset() - Détermine si une variable est définie et est différente de NULL
  • strlen() - Calcule la taille d'une chaîne


Retourne l'élément courant du tableau

  • « count
  • each »
  • PHP Manual
  • Fonctions sur les tableaux
  • Retourne l'élément courant du tableau

current

(PHP 4, PHP 5, PHP 7)

current — Retourne l'élément courant du tableau

Description

mixed current ( array &$array )

Chaque tableau entretient un pointeur interne, qui est initialisé lorsque le premier élément est inséré dans le tableau.

Liste de paramètres

array

Le tableau.

Valeurs de retour

current() ne fait que retourner l'élément courant pointé par le pointeur interne du tableau array. current() ne déplace pas le pointeur. Si le pointeur est au-delà du dernier élément de la liste, current() retourne FALSE.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple d'utilisation de current()

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport);    // $mode = 'foot';
$mode = end($transport);     // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';

$arr = array();
var_dump(current($arr)); // bool(false)

$arr = array(array());
var_dump(current($arr)); // array(0) { }
?>

Notes

Note: Vous ne serez pas capable de distinguer la fin d'un tableau avec l'élément booléen FALSE. Pour traverser correctement un tableau qui peut contenir l'élément FALSE, voyez la fonction each().

Voir aussi

  • end() - Positionne le pointeur de tableau en fin de tableau
  • key() - Retourne une clé d'un tableau associatif
  • each() - Retourne chaque paire clé/valeur d'un tableau
  • prev() - Recule le pointeur courant de tableau
  • reset() - Remet le pointeur interne de tableau au début
  • next() - Avance le pointeur interne d'un tableau


Retourne chaque paire clé/valeur d'un tableau

  • « current
  • end »
  • PHP Manual
  • Fonctions sur les tableaux
  • Retourne chaque paire clé/valeur d'un tableau

each

(PHP 4, PHP 5, PHP 7)

each — Retourne chaque paire clé/valeur d'un tableau

Description

array each ( array &$array )

each() retourne la paire clé/valeur courante du tableau array et avance le pointeur de tableau.

Après chaque appel à each(), le pointeur de tableau est déplacé au prochain élément, ou au-delà dernier élément, lorsqu'on arrive à la fin. Vous devez utiliser reset() si vous voulez traverser le tableau à nouveau avec each().

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne la paire clé/valeur courante du tableau array et avance le pointeur de tableau. Cette paire est retournée dans un tableau de 4 éléments, avec les clés 0, 1, key, et value. Les éléments 0 et key contiennent le nom de la clé et 1 et value contiennent la valeur.

Si le pointeur interne de tableau est au-delà de la fin du tableau, each() retourne FALSE.

Exemples

Exemple #1 Exemple avec each()

<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>

$bar contient maintenant les clés/valeurs suivantes :

Array
(
    [1] => bob
    [value] => bob
    [0] => 0
    [key] => 0
)

<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>

$bar contient maintenant les clés/valeurs suivantes :

Array
(
    [1] => Bob
    [value] => Bob
    [0] => Robert
    [key] => Robert
)

each() est typiquement utilisée en conjonction avec list() pour passer en revue un tableau. Par exemple :

Exemple #2 Passer en revue un tableau avec each()

<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');

reset($fruit);
while (list($key, $val) = each($fruit)) {
    echo "$key => $val\n";
}
?>

L'exemple ci-dessus va afficher :

a => apple
b => banana
c => cranberry

Attention

Assigner un tableau à une autre variable remet le pointeur du tableau original à zéro. À cause de ce comportement, nous aurions pu provoquer une boucle infinie dans notre exemple si nous avions assigné $fruit à une autre variable dans notre boucle.

Avertissement

each() accepte également des objets, mais peut retourner un résultat non-attendu. Aussi, il n'est pas recommandé d'utiliser cette fonction sur des objets.

Voir aussi

  • key() - Retourne une clé d'un tableau associatif
  • list() - Assigne des variables comme si elles étaient un tableau
  • current() - Retourne l'élément courant du tableau
  • reset() - Remet le pointeur interne de tableau au début
  • next() - Avance le pointeur interne d'un tableau
  • prev() - Recule le pointeur courant de tableau
  • foreach
  • Itération d'objet


Positionne le pointeur de tableau en fin de tableau

  • « each
  • extract »
  • PHP Manual
  • Fonctions sur les tableaux
  • Positionne le pointeur de tableau en fin de tableau

end

(PHP 4, PHP 5, PHP 7)

end — Positionne le pointeur de tableau en fin de tableau

Description

mixed end ( array &$array )

end() déplace le pointeur interne du tableau array jusqu'au dernier élément et retourne sa valeur.

Liste de paramètres

array

Le tableau. Ce tableau est passé par référence car il sera modifié par la fonction. Cela signifie que vous devez passer une vraie variable et non une fonction retournant un tableau, car actuellement, seules les variables peuvent être passées par référence.

Valeurs de retour

Retourne la valeur du dernier élément ou FALSE si le tableau est vide.

Exemples

Exemple #1 Exemple avec end()

<?php

$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry

?>

Voir aussi

  • current() - Retourne l'élément courant du tableau
  • each() - Retourne chaque paire clé/valeur d'un tableau
  • prev() - Recule le pointeur courant de tableau
  • reset() - Remet le pointeur interne de tableau au début
  • next() - Avance le pointeur interne d'un tableau


Importe les variables dans la table des symboles

  • « end
  • in_array »
  • PHP Manual
  • Fonctions sur les tableaux
  • Importe les variables dans la table des symboles

extract

(PHP 4, PHP 5, PHP 7)

extract — Importe les variables dans la table des symboles

Description

int extract ( array &$array [, int $flags = EXTR_OVERWRITE [, string $prefix = NULL ]] )

Importe les variables dans la table des symboles.

extract() vérifie chaque clé afin de contrôler si elle a un nom de variable valide. Elle vérifie également les collisions avec des variables existantes dans la table des symboles.

Liste de paramètres

array

Un tableau associatif. Cette fonction crée les variables dont les noms sont les index de ce tableau, et leur affecte la valeur associée. Pour chaque paire clé/valeur, extract() crée une variable, avec les paramètres flags et prefix.

Vous devez utiliser un tableau associatif. Un tableau indexé numériquement ne produira aucun résultat, à moins que vous n'utilisiez l'option EXTR_PREFIX_ALL ou EXTR_PREFIX_INVALID.

flags

Le traitement des collisions est déterminé par flags. Ce paramètre peut prendre une des valeurs suivantes :

EXTR_OVERWRITE
Lors d'une collision, réécrire la variable existante.
EXTR_SKIP
Lors d'une collision, ne pas réécrire la variable existante.
EXTR_PREFIX_SAME
Lors d'une collision, ajouter le préfixe prefix, et créer une nouvelle variable.
EXTR_PREFIX_ALL
Ajouter le préfixe prefix pour toutes les variables.
EXTR_PREFIX_INVALID
Préfixer uniquement les variables aux noms invalides ou numériques avec le préfixe prefix.
EXTR_IF_EXISTS
Écrase la variable uniquement si elle existe déjà dans la table des symboles, et, sinon, ne rien faire. Ceci est pratique pour définir une liste de variables valides, puis extraire du tableau les valeurs que vous avez déjà définies grâce à $_REQUEST, par exemple.
EXTR_PREFIX_IF_EXISTS
Ne crée que des variables préfixées, si la version non préfixée de la même variable existe dans la table des symboles courante.
EXTR_REFS
Extrait les variables sous forme de références. Cela signifie que les valeurs des variables importées font toujours référence aux valeurs des variables d'origine dans le paramètre array. Vous pouvez utiliser cette option seule, ou bien la combiner avec d'autres options avec l'opérateur OR, dans le paramètre flags.

Si flags est omis, extract() utilisera EXTR_OVERWRITE par défaut.

prefix

Notez que prefix n'est nécessaire que pour les valeurs de flags suivantes : EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID ou EXTR_PREFIX_IF_EXISTS. Si le résultat préfixé n'est pas un nom de variable valide, il ne sera pas importé dans la table des symboles. Les préfixes sont automatiquement séparés de l'index du tableau par un caractère de soulignement.

Valeurs de retour

Retourne le nombre de variables importées avec succès dans la table des symboles.

Exemples

Exemple #1 Exemple avec extract()

Une utilisation possible de la fonction extract() est l'exportation vers la table des symboles de tableaux de variables retournés par wddx_deserialize().

<?php

/* Supposons que $var_array est un tableau retourné par
   wddx_deserialize */

$size = "large";
$var_array = array("color" => "blue",
                   "size"  => "medium",
                   "shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");

echo "$color, $size, $shape, $wddx_size\n";

?>

L'exemple ci-dessus va afficher :

blue, large, sphere, medium

La variable $size n'a pas été réécrite, car on avait spécifié le paramètre EXTR_PREFIX_SAME, qui a permis la création de $wddx_size. Si EXTR_SKIP avait été utilisée, alors $wddx_size n'aurait pas été créé. Avec EXTR_OVERWRITE, $size aurait pris la valeur "medium", et avec EXTR_PREFIX_ALL, les variables créées seraient $wddx_color, $wddx_size et $wddx_shape.

Notes

Avertissement

N'utilisez pas extract() sur des données inconnues, comme les données utilisateurs (i.e. $_GET, $_FILES, etc.). Si vous le faites, par exemple, pour rendre compatible un vieux code avec register_globals à Off de façon temporaire, assurez-vous d'utiliser l'une des constantes flags qui n'écrasent pas les valeurs, comme EXTR_SKIP. Sachez aussi que vous devez maintenant extraire dans le même ordre que celui défini dans variables_order du php.ini.

Note:

Si vous avez la directive register_globals d'activée et que vous utilisez la fonction extract() sur les variables $_FILES et que vous spécifiez la constante EXTR_SKIP, vous pourriez être surpris du résultat.

Avertissement

Cette façon de faire n'est pas recommandée et est uniquement documentée ici pour bien comprendre le comportement. L'utilisation de la directive register_globals est obsolète et appeler la fonction extract() sur des données partagées comme les variables $_FILES est, comme mentionné ci-dessus, un risque potentiel pour la sécurité. Si vous rencontrez ce problème, cela signifie que vous avez écrit votre code de la mauvaise manière pour au moins 2 raisons.

<?php

/* Supposez que $testfile est le nom d'un champ de téléchargement de fichier
   et que register_globals est actif. */

var_dump($testfile);
extract($_FILES, EXTR_SKIP);
var_dump($testfile);
var_dump($testfile['tmp_name']);

?>
Vous vous attendez à voir quelque chose comme :
string(14) "/tmp/phpgCCPX8"
array(5) {
  ["name"]=>
  string(10) "somefile.txt"
  ["type"]=>
  string(24) "application/octet-stream"
  ["tmp_name"]=>
  string(14) "/tmp/phpgCCPX8"
  ["error"]=>
  int(0)
  ["size"]=>
  int(4208)
}
string(14) "/tmp/phpgCCPX8"
Cependant, vous devriez plutôt voir quelque comme :
string(14) "/tmp/phpgCCPX8"
string(14) "/tmp/phpgCCPX8"
string(1) "/"

Ceci est dû au fait que, depuis que la directive register_globals est active, la variable $testfile existe déjà dans le scope global lorsque la fonction extract() est appelée. Et vû que la constante EXTR_SKIP est spécifiée, la variable $testfile n'est pas écrasée avec le contenu du tableau $_FILES, aussi, la variable $testfile reste une chaîne de caractères. Parceque les chaînes de caractères peuvent être accédées en utilisant la syntaxe des tableaux et que la chaîne de caractères non-numérique tmp_name est interprétée comme 0, PHP voit $testfile['tmp_name'] comme $testfile[0].

Voir aussi

  • compact() - Crée un tableau à partir de variables et de leur valeur
  • list() - Assigne des variables comme si elles étaient un tableau


Indique si une valeur appartient à un tableau

  • « extract
  • key_exists »
  • PHP Manual
  • Fonctions sur les tableaux
  • Indique si une valeur appartient à un tableau

in_array

(PHP 4, PHP 5, PHP 7)

in_array — Indique si une valeur appartient à un tableau

Description

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

Recherche needle dans haystack en utilisant une comparaison souple à moins que strict ne soit utilisé.

Liste de paramètres

needle

La valeur recherchée.

Note:

Si needle est une chaîne, la comparaison est faite en tenant compte de la casse.

haystack

Le tableau.

strict

Le troisième paramètre strict est optionnel. S'il vaut TRUE alors in_array() vérifiera aussi que le type du paramètre needle correspond au type de la valeur trouvée dans haystack.

Valeurs de retour

Retourne TRUE si needle est trouvé dans le tableau, FALSE sinon.

Exemples

Exemple #1 Exemple avec in_array()

<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
if (in_array("mac", $os)) {
    echo "Got mac";
}
?>

La seconde condition échoue, car in_array() est sensible à la casse. Le script retourne :

Got Irix

Exemple #2 Exemple avec in_array() et le mode strict

<?php
$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, true)) {
    echo "'12.4' est trouvé avec le mode strict\n";
}

if (in_array(1.13, $a, true)) {
    echo "1.13 est trouvé avec le mode strict\n";
}
?>

L'exemple ci-dessus va afficher :

1.13 est trouvé avec le mode strict

Exemple #3 Exemple avec in_array() et un tableau en paramètre

<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
    echo "'ph' a été trouvé\n";
}

if (in_array(array('f', 'i'), $a)) {
    echo "'fi' was found\n";
}

if (in_array('o', $a)) {
    echo "'o' a été trouvé\n";
}
?>

L'exemple ci-dessus va afficher :

  'ph' a été trouvé
  'o' a été trouvé

Voir aussi

  • array_search() - Recherche dans un tableau la clé associée à une valeur
  • isset() - Détermine si une variable est définie et est différente de NULL
  • array_key_exists() - Vérifie si une clé existe dans un tableau


Alias de array_key_exists

  • « in_array
  • key »
  • PHP Manual
  • Fonctions sur les tableaux
  • Alias de array_key_exists

key_exists

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

key_exists — Alias de array_key_exists()

Description

Cette fonction est un alias de : array_key_exists().


Retourne une clé d'un tableau associatif

  • « key_exists
  • krsort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Retourne une clé d'un tableau associatif

key

(PHP 4, PHP 5, PHP 7)

key — Retourne une clé d'un tableau associatif

Description

mixed key ( array &$array )

key() retourne la clé courante dans le tableau array.

Liste de paramètres

array

Le tableau.

Valeurs de retour

La fonction key() retourne simplement la clé de l'élément du tableau qui est actuellement pointée par le pointeur interne. Cette fonction ne modifie en aucun cas la position de ce pointeur. Si le pointeur interne pointe un élément se situant après la fin de la liste des éléments, ou bien si le tableau est vide, la fonction key() retournera NULL.

Exemples

Exemple #1 Exemple avec key()

<?php
$array = array(
    'fruit1' => 'apple',
    'fruit2' => 'orange',
    'fruit3' => 'grape',
    'fruit4' => 'apple',
    'fruit5' => 'apple');

// Cette boucle affiche toutes les clés
// dont la valeur vaut "apple"
while ($fruit_name = current($array)) {
    if ($fruit_name == 'apple') {
        echo key($array).'<br />';
    }
    next($array);
}
?>

L'exemple ci-dessus va afficher :

fruit1<br />
fruit4<br />
fruit5<br />

Voir aussi

  • current() - Retourne l'élément courant du tableau
  • next() - Avance le pointeur interne d'un tableau
  • foreach


Trie un tableau en sens inverse et suivant les clés

  • « key
  • ksort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau en sens inverse et suivant les clés

krsort

(PHP 4, PHP 5, PHP 7)

krsort — Trie un tableau en sens inverse et suivant les clés

Description

bool krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

krsort() trie le tableau array en ordre inverse et suivant les clés, en maintenant la correspondance entre les clés et les valeurs. Cette fonction est pratique pour les tableaux associatifs.

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec krsort()

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
krsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

d = lemon
c = apple
b = banana
a = orange

Voir aussi

  • arsort() - Trie un tableau en ordre inverse et conserve l'association des index
  • ksort() - Trie un tableau suivant les clés
  • Les fonctions de tri des tableaux


Trie un tableau suivant les clés

  • « krsort
  • list »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau suivant les clés

ksort

(PHP 4, PHP 5, PHP 7)

ksort — Trie un tableau suivant les clés

Description

bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

Trie le tableau array suivant les clés, en maintenant la correspondance entre les clés et les valeurs. Cette fonction est pratique pour les tableaux associatifs.

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ksort()

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

a = orange
b = banana
c = apple
d = lemon

Voir aussi

  • asort() - Trie un tableau et conserve l'association des index
  • Les fonctions de tri des tableaux


Assigne des variables comme si elles étaient un tableau

  • « ksort
  • natcasesort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Assigne des variables comme si elles étaient un tableau

list

(PHP 4, PHP 5, PHP 7)

list — Assigne des variables comme si elles étaient un tableau

Description

array list ( mixed $var1 [, mixed $... ] )

Tout comme array(), list() n'est pas une véritable fonction, mais un élément de langage, qui permet de rassembler les variables varname, ... sous forme de tableau, pour les assigner en une seule ligne.

Liste de paramètres

var1

Une variable.

Valeurs de retour

Retourne le tableau assigné.

Exemples

Exemple #1 Exemple avec list()

<?php

$info = array('coffee', 'brown', 'caffeine');

// Liste toutes les variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";

// Liste certaines variables
list($drink, , $power) = $info;
echo "$drink has $power.\n";

// Ou bien, n'utilisons que le troisième
list( , , $power) = $info;
echo "I need $power!\n";

// list() ne fonctionne pas avec les chaînes de caractères
list($bar) = "abcde";
var_dump($bar); // NULL
?>

Exemple #2 Exemple d'utilisation de list()

<table>
 <tr>
  <th>Employee name</th>
  <th>Salary</th>
 </tr>

<?php
$result = $pdo->query("SELECT id, name, salary FROM employees");
while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) {
    echo " <tr>\n" .
          "  <td><a href=\"info.php?id=$id\">$name</a></td>\n" .
          "  <td>$salary</td>\n" .
          " </tr>\n";
}

?>

</table>

Exemple #3 Utilisation d'un sous-list()

<?php

list($a, list($b, $c)) = array(1, array(2, 3));

var_dump($a, $b, $c);

?>
int(1)
int(2)
int(3)

Exemple #4 Utilisation de list() en tenant compte de l'ordre

<?php

$info = array('coffee', 'brown', 'caffeine');

list($a[0], $a[1], $a[2]) = $info;

var_dump($a);

?>

Cet exemple donne le résultat suivant (notez l'ordre d'affichage des éléments, en comparaison avec l'ordre dans lequel ils ont été écrits dans la syntaxe de list()) :

array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}

Notes

Avertissement

list() assigne les valeurs en commençant par la valeur la plus à droite. Si vous utilisez ces variables, ce ne sera pas un problème. Mais si vous utilisez des tableaux, vous serez surpris de voir que list() les affecte de droite à gauche.

Avertissement

La modification du tableau lors de l'exécution de la fonction list() (i.e. en utilisant la syntaxe list($a, $b) = $b) conduit à un comportement non-défini.

Note:

list() fonctionne uniquement avec des tableaux à indexation numérique, et suppose que l'indexation commence à 0.

Voir aussi

  • each() - Retourne chaque paire clé/valeur d'un tableau
  • array() - Crée un tableau
  • extract() - Importe les variables dans la table des symboles


Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse

  • « list
  • natsort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse

natcasesort

(PHP 4, PHP 5, PHP 7)

natcasesort — Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse

Description

bool natcasesort ( array &$array )

natcasesort() est la version insensible à la casse de natsort().

Cette fonction implémente un algorithme de tri qui traite les chaînes alphanumériques du tableau array comme un être humain tout en conservant la relation clé/valeur. C'est ce qui est appelé l'"ordre naturel".

Note:

If two members compare as equal, their relative order in the sorted array is undefined.

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec natcasesort()

<?php
$array1 = $array2 = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');

sort($array1);
echo "Tri standard\n";
print_r($array1);

natcasesort($array2);
echo "\nTri en ordre naturel (insensible à la casse)\n";
print_r($array2);
?>

L'exemple ci-dessus va afficher :

Tri standard
Array
(
    [0] => IMG0.png
    [1] => IMG3.png
    [2] => img1.png
    [3] => img10.png
    [4] => img12.png
    [5] => img2.png
)

Tri en ordre naturel (insensible à la casse)
Array
(
    [0] => IMG0.png
    [4] => img1.png
    [3] => img2.png
    [5] => IMG3.png
    [2] => img10.png
    [1] => img12.png
)

Pour plus de détails, rendez-vous sur le site de Martin Pool sur » la comparaison de chaînes en ordre naturel.

Voir aussi

  • natsort() - Trie un tableau avec l'algorithme à "ordre naturel"
  • Les fonctions de tri des tableaux
  • strnatcmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel"
  • strnatcasecmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)


Trie un tableau avec l'algorithme à "ordre naturel"

  • « natcasesort
  • next »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau avec l'algorithme à "ordre naturel"

natsort

(PHP 4, PHP 5, PHP 7)

natsort — Trie un tableau avec l'algorithme à "ordre naturel"

Description

bool natsort ( array &$array )

natsort() implémente un algorithme de tri qui traite les chaînes alphanumériques du tableau array comme un être humain tout en conservant la relation clé/valeur. C'est ce qui est appelé l'"ordre naturel". Un exemple de la différence de traitement entre un tel algorithme et un algorithme de tri de chaînes (comme lorsqu'on utilise sort()) est illustré ci-dessous.

Note:

If two members compare as equal, their relative order in the sorted array is undefined.

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.2.10 | Les chaines numériques alignées par des zéros (e.g., '00005') ignorent les zéros d'alignement.

Exemples

Exemple #1 Exemple d'utilisation de base avec natsort()

<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

asort($array1);
echo "Standard sorting\n";
print_r($array1);

natsort($array2);
echo "\nNatural order sorting\n";
print_r($array2);
?>

L'exemple ci-dessus va afficher :

Standard sorting
Array
(
    [3] => img1.png
    [1] => img10.png
    [0] => img12.png
    [2] => img2.png
)

Natural order sorting
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Pour plus de détails, rendez-vous sur le site de Martin Pool sur » la comparaison de chaînes en ordre naturel.

Exemple #2 Exemples montrant les pièges de natsort()

<?php
echo "Nombres négatifs\n";
$negative = array('-5','3','-2','0','-1000','9','1');
print_r($negative);
natsort($negative);
print_r($negative);

echo "Alignement avec zéros\n";
$zeros = array('09', '8', '10', '009', '011', '0');
print_r($zeros);
natsort($zeros);
print_r($zeros);
?>

L'exemple ci-dessus va afficher :

Nombres négatifs
Array
(
    [0] => -5
    [1] => 3
    [2] => -2
    [3] => 0
    [4] => -1000
    [5] => 9
    [6] => 1
)
Array
(
    [2] => -2
    [0] => -5
    [4] => -1000
    [3] => 0
    [6] => 1
    [1] => 3
    [5] => 9
)

Alignement avec zéros
Array
(
    [0] => 09
    [1] => 8
    [2] => 10
    [3] => 009
    [4] => 011
    [5] => 0
)
Array
(
    [5] => 0
    [1] => 8
    [3] => 009
    [0] => 09
    [2] => 10
    [4] => 011
)

Voir aussi

  • natcasesort() - Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse
  • Les fonctions de tri des tableaux
  • strnatcmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel"
  • strnatcasecmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)


Avance le pointeur interne d'un tableau

  • « natsort
  • pos »
  • PHP Manual
  • Fonctions sur les tableaux
  • Avance le pointeur interne d'un tableau

next

(PHP 4, PHP 5, PHP 7)

next — Avance le pointeur interne d'un tableau

Description

mixed next ( array &$array )

next() se comporte comme current(), avec une différence. Il avance le pointeur interne du tableau d'un élément, avant de retourner la valeur de l'élément. Cela signifie qu'il retourne la prochaine valeur du tableau et avance le pointeur interne d'un élément.

Liste de paramètres

array

Le tableau à traiter.

Valeurs de retour

Retourne la prochaine valeur du tableau suivant le pointeur interne, ou FALSE s'il n'y a plus d'élément.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Exemple avec next()

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = next($transport);    // $mode = 'car';
$mode = prev($transport);    // $mode = 'bike';
$mode = end($transport);     // $mode = 'plane';
?>

Notes

Note: Vous ne serez pas capable de distinguer la fin d'un tableau avec l'élément booléen FALSE. Pour traverser correctement un tableau qui peut contenir l'élément FALSE, voyez la fonction each().

Voir aussi

  • current() - Retourne l'élément courant du tableau
  • end() - Positionne le pointeur de tableau en fin de tableau
  • prev() - Recule le pointeur courant de tableau
  • reset() - Remet le pointeur interne de tableau au début
  • each() - Retourne chaque paire clé/valeur d'un tableau


Alias de current

  • « next
  • prev »
  • PHP Manual
  • Fonctions sur les tableaux
  • Alias de current

pos

(PHP 4, PHP 5, PHP 7)

pos — Alias de current()

Description

Cette fonction est un alias de : current()


Recule le pointeur courant de tableau

  • « pos
  • range »
  • PHP Manual
  • Fonctions sur les tableaux
  • Recule le pointeur courant de tableau

prev

(PHP 4, PHP 5, PHP 7)

prev — Recule le pointeur courant de tableau

Description

mixed prev ( array &$array )

Recule le pointeur courant de tableau.

prev() se comporte exactement comme next(), mais elle fait reculer le pointeur plutôt que de l'avancer.

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne la valeur précédente du tableau suivant le pointeur interne du tableau, ou FALSE s'il n'y a plus d'élément.

Exemples

Exemple #1 Exemple avec prev()

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = next($transport);    // $mode = 'car';
$mode = prev($transport);    // $mode = 'bike';
$mode = end($transport);     // $mode = 'plane';
?>

Notes

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Note: Vous ne serez pas capable de distinguer la fin d'un tableau avec l'élément booléen FALSE. Pour traverser correctement un tableau qui peut contenir l'élément FALSE, voyez la fonction each().

Voir aussi

  • current() - Retourne l'élément courant du tableau
  • end() - Positionne le pointeur de tableau en fin de tableau
  • next() - Avance le pointeur interne d'un tableau
  • reset() - Remet le pointeur interne de tableau au début
  • each() - Retourne chaque paire clé/valeur d'un tableau


Crée un tableau contenant un intervalle d'éléments

  • « prev
  • reset »
  • PHP Manual
  • Fonctions sur les tableaux
  • Crée un tableau contenant un intervalle d'éléments

range

(PHP 4, PHP 5, PHP 7)

range — Crée un tableau contenant un intervalle d'éléments

Description

array range ( mixed $start , mixed $end [, number $step = 1 ] )

Crée un tableau contenant un intervalle d'éléments.

Liste de paramètres

start

Première valeur de la séquence.

end

La séquence se termine lorsque la valeur end est atteinte.

step

Si une valeur est donnée au paramètre step, il sera utilisé comme valeur incrémentale entre les éléments de la séquence. step doit être exprimé comme un nombre entier positif. S'il n'est pas spécifié, step vaut par défaut 1.

Valeurs de retour

Retourne un tableau d'éléments depuis start jusqu'à end, inclusif.

Exemples

Exemple #1 Exemple avec range()

<?php
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach (range(0, 12) as $number) {
    echo $number;
}

// La paramètre de pas (step)
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach (range(0, 100, 10) as $number) {
    echo $number;
}

// Utilisation des caractères
// array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
foreach (range('a', 'i') as $letter) {
    echo $letter;
}
// array('c', 'b', 'a');
foreach (range('c', 'a') as $letter) {
    echo $letter;
}
?>

Notes

Note:

Les valeurs des caractères de séquence sont limitées à une longueur d'un. Si une longueur supérieure à un est entrée, seul le premier caractère est utilisé.

Voir aussi

  • shuffle() - Mélange les éléments d'un tableau
  • array_fill() - Remplit un tableau avec une même valeur
  • foreach


Remet le pointeur interne de tableau au début

  • « range
  • rsort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Remet le pointeur interne de tableau au début

reset

(PHP 4, PHP 5, PHP 7)

reset — Remet le pointeur interne de tableau au début

Description

mixed reset ( array &$array )

reset() replace le pointeur de tableau array au premier élément et retourne la valeur du premier élément.

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne la valeur du premier élément du tableau, ou FALSE si le tableau est vide.

Exemples

Exemple #1 Exemple avec reset()

<?php

$array = array('step one', 'step two', 'step three', 'step four');

// Par défaut, le pointeur est sur le premier élément
echo current($array) . "<br />\n"; // "step one"

// on saute deux éléments
next($array);
next($array);
echo current($array) . "<br />\n"; // "step three"

// on remet le pointeur au début
reset($array);
echo current($array) . "<br />\n"; // "step one"

?>

Voir aussi

  • current() - Retourne l'élément courant du tableau
  • each() - Retourne chaque paire clé/valeur d'un tableau
  • end() - Positionne le pointeur de tableau en fin de tableau
  • next() - Avance le pointeur interne d'un tableau
  • prev() - Recule le pointeur courant de tableau


Trie un tableau en ordre inverse

  • « reset
  • shuffle »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau en ordre inverse

rsort

(PHP 4, PHP 5, PHP 7)

rsort — Trie un tableau en ordre inverse

Description

bool rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

Effectue un tri en ordre décroissant (du plus grand au plus petit) du tableau array.

Note:

If two members compare as equal, their relative order in the sorted array is undefined.

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec rsort()

<?php
$fruits = array("lemon", "orange", "banana", "apple");
rsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

0 = orange
1 = lemon
2 = banana
3 = apple

Les fruits ont été classés dans l'ordre alphabétique inverse.

Notes

Note: Cette fonction assigne de nouvelles clés pour les éléments du paramètre array. Elle effacera toutes les clés existantes que vous aviez pu assigner, plutôt que de les trier.

Voir aussi

  • arsort() - Trie un tableau en ordre inverse et conserve l'association des index
  • krsort() - Trie un tableau en sens inverse et suivant les clés
  • Les fonctions de tri des tableaux


Mélange les éléments d'un tableau

  • « rsort
  • sizeof »
  • PHP Manual
  • Fonctions sur les tableaux
  • Mélange les éléments d'un tableau

shuffle

(PHP 4, PHP 5, PHP 7)

shuffle — Mélange les éléments d'un tableau

Description

bool shuffle ( array &$array )

Mélange les éléments du tableau array.

Liste de paramètres

array

Le tableau.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec shuffle()

<?php
$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}
?>

Notes

Note: Cette fonction assigne de nouvelles clés pour les éléments du paramètre array. Elle effacera toutes les clés existantes que vous aviez pu assigner, plutôt que de les trier.

Voir aussi

  • array_rand() - Prend une ou plusieurs valeurs, au hasard dans un tableau
  • Les fonctions de tri des tableaux


Alias de count

  • « shuffle
  • sort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Alias de count

sizeof

(PHP 4, PHP 5, PHP 7)

sizeof — Alias de count()

Description

Cette fonction est un alias de : count().


Trie un tableau

  • « sizeof
  • uasort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau

sort

(PHP 4, PHP 5, PHP 7)

sort — Trie un tableau

Description

bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

Cette fonction trie le tableau array. Les éléments seront triés du plus petit au plus grand.

Note:

If two members compare as equal, their relative order in the sorted array is undefined.

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Le paramètre optionnel sort_flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Constantes de type de tri :

  • SORT_REGULAR : compare les éléments normalement (ne modifie pas les types)
  • SORT_NUMERIC : compare les éléments numériquement
  • SORT_STRING : compare les éléments comme des chaînes de caractères
  • SORT_LOCALE_STRING : compare les éléments en utilisant la configuration locale. La locale courante est utilisée, elle peut être changée au moyen de setlocale().
  • SORT_NATURAL - compare les éléments comme des chaînes de caractères en utilisant l'ordre nature comme le fait la fonction natsort().
  • SORT_FLAG_CASE - peut être combiné (grâce à l'opérateur OR) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.4.0 | Ajout du support des constantes SORT_NATURAL et SORT_FLAG_CASE pour le paramètre sort_flags
5.0.2 | Ajout de la constante SORT_LOCALE_STRING

Exemples

Exemple #1 Exemple avec sort()

<?php

$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

L'exemple ci-dessus va afficher :

fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange

Les fruits ont été classés dans l'ordre alphabétique.

Exemple #2 Exemple avec sort() en utilisant l'ordre naturel sans tenir compte de la casse

<?php

$fruits = array(
    "Orange1", "orange2", "Orange3", "orange20"
);
sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

L'exemple ci-dessus va afficher :

fruits[0] = Orange1
fruits[1] = orange2
fruits[2] = Orange3
fruits[3] = orange20

Les fruits ont été classés comme ils l'auraient été avec la fonction natcasesort().

Notes

Note: Cette fonction assigne de nouvelles clés pour les éléments du paramètre array. Elle effacera toutes les clés existantes que vous aviez pu assigner, plutôt que de les trier.

Note: Comme la plupart des fonctions de tri de PHP, sort() utilise une implémentation de » Quicksort. Le pivot est choisie au milieu de la partition, résultant ainsi en une optimisation du temps pour les tableaux déjà triés. Mais ceci ne reste qu'un détail de l'implémentation, n'ayant aucun impact pour vous.

Avertissement

Attention lorsque vous triez des tableaux avec des types différents de valeurs car le résultat de sort() est imprévisible.

Voir aussi

  • asort() - Trie un tableau et conserve l'association des index
  • Les fonctions de tri des tableaux


Trie un tableau en utilisant une fonction de rappel

  • « sort
  • uksort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau en utilisant une fonction de rappel

uasort

(PHP 4, PHP 5, PHP 7)

uasort — Trie un tableau en utilisant une fonction de rappel

Description

bool uasort ( array &$array , callable $value_compare_func )

Trie le tableau array en conservant la correspondance entre les index et leurs valeurs. uasort() sert essentiellement lors de tri de tableaux associatifs où l'ordre des éléments est significatif. La fonction de comparaison utilisée cmp_function est définie par l'utilisateur.

Utilisé habituellement lors du tri de tableaux associatifs où l'ordre actuel des éléments est significatif.

Note:

If two members compare as equal, their relative order in the sorted array is undefined.

Liste de paramètres

array

Le tableau d'entrée.

value_compare_func

Voyez les fonctions usort() et uksort() pour des exemples de tris avec utilisation de fonction personnalisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec uasort()

<?php
// Fonction de comparaison
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

// Tableau à trier
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
print_r($array);

// Trie et affiche le tableau résultant
uasort($array, 'cmp');
print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => 4
    [b] => 8
    [c] => -1
    [d] => -9
    [e] => 2
    [f] => 5
    [g] => 3
    [h] => -4
)
Array
(
    [d] => -9
    [h] => -4
    [c] => -1
    [e] => 2
    [g] => 3
    [a] => 4
    [f] => 5
    [b] => 8
)

Voir aussi

  • usort() - Trie un tableau en utilisant une fonction de comparaison
  • Les fonctions de tri des tableaux


Trie un tableau par ses clés en utilisant une fonction de rappel

  • « uasort
  • usort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau par ses clés en utilisant une fonction de rappel

uksort

(PHP 4, PHP 5, PHP 7)

uksort — Trie un tableau par ses clés en utilisant une fonction de rappel

Description

bool uksort ( array &$array , callable $key_compare_func )

uksort() trie les clés du tableau array en utilisant la fonction utilisateur cmp_function. Si un tableau doit être trié avec un critère complexe, il est préférable d'utiliser cette fonction.

Note:

If two members compare as equal, their relative order in the sorted array is undefined.

Liste de paramètres

array

Le tableau d'entrée.

key_compare_func

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec uksort()

<?php
function cmp($a, $b)
{
    $a = preg_replace('@^(a|an|the) @', '', $a);
    $b = preg_replace('@^(a|an|the) @', '', $b);
    return strcasecmp($a, $b);
}

$a = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);

uksort($a, "cmp");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>

L'exemple ci-dessus va afficher :

an apple: 3
a banana: 4
the Earth: 2
John: 1

Voir aussi

  • usort() - Trie un tableau en utilisant une fonction de comparaison
  • Les fonctions de tri des tableaux


Trie un tableau en utilisant une fonction de comparaison

  • « uksort
  • Classes/Objets »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau en utilisant une fonction de comparaison

usort

(PHP 4, PHP 5, PHP 7)

usort — Trie un tableau en utilisant une fonction de comparaison

Description

bool usort ( array &$array , callable $value_compare_func )

usort() va trier le tableau array avec ses valeurs, en utilisant une fonction définie par l'utilisateur. Si un tableau doit être trié avec un critère complexe, il est préférable d'utiliser cette fonction.

Note:

If two members compare as equal, their relative order in the sorted array is undefined.

Note: Cette fonction assigne de nouvelles clés pour les éléments du paramètre array. Elle effacera toutes les clés existantes que vous aviez pu assigner, plutôt que de les trier.

Liste de paramètres

array

Le tableau d'entrée.

value_compare_func

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
Attention

Le fait de retourner des valeurs non entières depuis la fonction de comparaison, comme des valeurs de type nombre décimal fera que l'intervalle sera transtypé en entier en se basant sur la valeur retournée par la fonction de rappel. Aussi des valeurs comme 0.99 et 0.1 sera toutes les deux transformées en la valeur 0, et leur comparaison sera égale.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec usort()

<?php
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>

L'exemple ci-dessus va afficher :

0: 1
1: 2
2: 3
3: 5
4: 6

Note:

Évidemment dans ce cas trivial, sort() serait plus approprié.

Exemple #2 Tri avec usort() sur un tableau multidimensionnel

<?php
function cmp($a, $b)
{
    return strcmp($a["fruit"], $b["fruit"]);
}

$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";

usort($fruits, "cmp");

while (list($key, $value) = each($fruits)) {
    echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}
?>

Lors du tri de tableau multidimensionnel, $a et $b contiennent des références sur le premier élément du tableau.

L'exemple ci-dessus va afficher :

$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons

Exemple #3 Tri avec usort() sur un objet

<?php
class TestObj {
    var $name;

    function TestObj($name)
    {
        $this->name = $name;
    }

    /* Ceci est une fonction de comparaison statique */
    static function cmp_obj($a, $b)
    {
        $al = strtolower($a->name);
        $bl = strtolower($b->name);
        if ($al == $bl) {
            return 0;
        }
        return ($al > $bl) ? +1 : -1;
    }
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

usort($a, array("TestObj", "cmp_obj"));

foreach ($a as $item) {
    echo $item->name . "\n";
}
?>

L'exemple ci-dessus va afficher :

b
c
d

Exemple #4 Exemple avec usort() en utilisant une closure pour trier un tableau multi-dimensionnel

<?php
$array[0] = array('key_a' => 'z', 'key_b' => 'c');
$array[1] = array('key_a' => 'x', 'key_b' => 'b');
$array[2] = array('key_a' => 'y', 'key_b' => 'a');

function build_sorter($key) {
    return function ($a, $b) use ($key) {
        return strnatcmp($a[$key], $b[$key]);
    };
}

usort($array, build_sorter('key_b'));

foreach ($array as $item) {
    echo $item['key_a'] . ', ' . $item['key_b'] . "\n";
}
?>

L'exemple ci-dessus va afficher :

y, a
x, b
z, c

Voir aussi

  • uasort() - Trie un tableau en utilisant une fonction de rappel
  • Les fonctions de tri des tableaux


Les Classes/Objets

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions Classes/Objets
    • __autoload — Tente de charger une classe indéfinie
    • call_user_method_array — Appelle une méthode utilisateur avec un tableau de paramètres
    • call_user_method — Appelle une méthode utilisateur sur un objet donné
    • class_alias — Crée un alias de classe
    • class_exists — Vérifie si une classe a été définie
    • get_called_class — Le nom de la classe en "Late Static Binding"
    • get_class_methods — Retourne les noms des méthodes d'une classe
    • get_class_vars — Retourne les valeurs par défaut des propriétés d'une classe
    • get_class — Retourne le nom de la classe d'un objet
    • get_declared_classes — Liste toutes les classes définies dans PHP
    • get_declared_interfaces — Retourne un tableau avec toutes les interfaces déclarées
    • get_declared_traits — Retourne un tableau contenant tous les traits déclarés
    • get_object_vars — Retourne les propriétés d'un objet
    • get_parent_class — Retourne le nom de la classe parente d'un objet
    • interface_exists — Vérifie si une interface a été définie
    • is_a — Vérifie si l'objet est une instance d'une classe donnée ou a cette classe parmi ses parents
    • is_subclass_of — Détermine si un objet est une sous-classe d'une classe donnée ou l'implémente
    • method_exists — Vérifie si la méthode existe pour une classe
    • property_exists — Vérifie si un objet ou une classe possède une propriété
    • trait_exists — Vérifie si un trait existe


Introduction

Ces fonctions vous permettent d'obtenir des informations à propos de classes et d'instances d'objets. Vous pouvez obtenir le nom de la classe à laquelle un objet appartient, ainsi que ses propriétés et méthodes membres. En utilisant ces fonctions, vous pouvez retrouver non seulement la classe d'un objet, mais aussi son héritage (autrement dit, quelle classe est étendue par la classe de l'objet).

Veuillez vous reporter à la section sur les objets du manuel pour avoir des explications détaillées sur la façon dont sont implémentés les classes et les objets en PHP.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • Classes/Objets
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Exemples

Dans cet exemple, nous commençons par définir une classe de base ainsi qu'une extension de cette classe. La classe de base décrit un légume, s'il peut être consommé, et qu'elle est sa couleur. La sous-classe Spinach ajoute une méthode pour le cuisiner, et une autre pour déterminer s'il est cuit.

Exemple #1 classes.inc

<?php

// classe de base, avec des propriétés et des méthodes membres
class Vegetable {

   var $edible;
   var $color;

   function Vegetable($edible, $color="green")
   {
       $this->edible = $edible;
       $this->color = $color;
   }

   function is_edible()
   {
       return $this->edible;
   }

   function what_color()
   {
       return $this->color;
   }

} // fin de la classe Vegetable

// étend la classe de base
class Spinach extends Vegetable {

   var $cooked = false;

   function Spinach()
   {
       $this->Vegetable(true, "green");
   }

   function cook_it()
   {
       $this->cooked = true;
   }

   function is_cooked()
   {
       return $this->cooked;
   }

} // fin de la classe Spinach

?>

Nous créons ensuite deux objets depuis ces classes et affichons des informations sur ceux-ci, incluant leur classe parente. Nous définissons également des fonctions utilitaires, principalement afin d'obtenir un affichage plus joli des variables.

Exemple #2 test_script.php

<pre>
<?php

include "classes.inc";

// fonctions utilitaires

function print_vars($obj)
{
foreach (get_object_vars($obj) as $prop => $val) {
    echo "\t$prop = $val\n";
}
}

function print_methods($obj)
{
$arr = get_class_methods(get_class($obj));
foreach ($arr as $method) {
    echo "\tfonction $method()\n";
}
}

function class_parentage($obj, $class)
{
if (is_subclass_of($GLOBALS[$obj], $class)) {
    echo "L'objet $obj appartient à la classe " . get_class($$obj);
    echo " une sous-classe de $class\n";
} else {
    echo "L'object $obj n'appartient pas à une sous-classe $class\n";
}
}

// instanciation de 2 objets

$veggie = new Vegetable(true, "blue");
$leafy = new Spinach();

// Affiche des informations à propos des objets
echo "veggie: CLASS " . get_class($veggie) . "\n";
echo "leafy: CLASS " . get_class($leafy);
echo ", PARENT " . get_parent_class($leafy) . "\n";

// affichage de la propriété veggie
echo "\nveggie: Propriétés\n";
print_vars($veggie);

// et enfin, les méthodes
echo "\nleafy: Méthodes\n";
print_methods($leafy);

echo "\nClasse parente :\n";
class_parentage("leafy", "Spinach");
class_parentage("leafy", "Vegetable");
?>
</pre>

Une chose importante à noter dans l'exemple ci-dessus est que l'objet $leafy est une instance de la classe Spinach qui est une sous-classe de Vegetable, donc la dernière partie de ce script affichera :

   [...]
Classe parente :
L'object leafy n'appartient pas à la sous-classe Spinach
L'object leafy appartient à la classe spinach une sous-classe de Vegetable


Fonctions Classes/Objets

Sommaire

  • __autoload — Tente de charger une classe indéfinie
  • call_user_method_array — Appelle une méthode utilisateur avec un tableau de paramètres
  • call_user_method — Appelle une méthode utilisateur sur un objet donné
  • class_alias — Crée un alias de classe
  • class_exists — Vérifie si une classe a été définie
  • get_called_class — Le nom de la classe en "Late Static Binding"
  • get_class_methods — Retourne les noms des méthodes d'une classe
  • get_class_vars — Retourne les valeurs par défaut des propriétés d'une classe
  • get_class — Retourne le nom de la classe d'un objet
  • get_declared_classes — Liste toutes les classes définies dans PHP
  • get_declared_interfaces — Retourne un tableau avec toutes les interfaces déclarées
  • get_declared_traits — Retourne un tableau contenant tous les traits déclarés
  • get_object_vars — Retourne les propriétés d'un objet
  • get_parent_class — Retourne le nom de la classe parente d'un objet
  • interface_exists — Vérifie si une interface a été définie
  • is_a — Vérifie si l'objet est une instance d'une classe donnée ou a cette classe parmi ses parents
  • is_subclass_of — Détermine si un objet est une sous-classe d'une classe donnée ou l'implémente
  • method_exists — Vérifie si la méthode existe pour une classe
  • property_exists — Vérifie si un objet ou une classe possède une propriété
  • trait_exists — Vérifie si un trait existe


Tente de charger une classe indéfinie

  • « Fonctions Classes/Objets
  • call_user_method_array »
  • PHP Manual
  • Fonctions Classes/Objets
  • Tente de charger une classe indéfinie

__autoload

(PHP 5, PHP 7)

__autoload — Tente de charger une classe indéfinie

Description

void __autoload ( string $class )

Vous pouvez définir cette fonction pour activer le chargement automatique des classes.

Liste de paramètres

class

Nom de la classe à charger.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • spl_autoload_register() - Enregistre une fonction en tant qu'implémentation de __autoload()


Appelle une méthode utilisateur avec un tableau de paramètres

  • « __autoload
  • call_user_method »
  • PHP Manual
  • Fonctions Classes/Objets
  • Appelle une méthode utilisateur avec un tableau de paramètres

call_user_method_array

(PHP 4 >= 4.0.5, PHP 5)

call_user_method_array — Appelle une méthode utilisateur avec un tableau de paramètres

Avertissement

Cette fonction est devenue OBSOLÈTE en PHP 4.1.0, et a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • call_user_func_array()

Description

mixed call_user_method_array ( string $method_name , object &$obj , array $params )

Liste de paramètres

method_name

Le nom de la méthode appelée.

obj

L'objet sur lequel method_name est appelée.

params

Un tableau de paramètres.

Exemples

Exemple #1 Alternative à la fonction call_user_method_array()

<?php
call_user_func_array(array($obj, $method_name), $params);
?>

Voir aussi

  • call_user_func_array() - Appelle une fonction de rappel avec les paramètres rassemblés en tableau
  • call_user_func() - Appelle une fonction de rappel fournie par le premier argument


Appelle une méthode utilisateur sur un objet donné

  • « call_user_method_array
  • class_alias »
  • PHP Manual
  • Fonctions Classes/Objets
  • Appelle une méthode utilisateur sur un objet donné

call_user_method

(PHP 4, PHP 5)

call_user_method — Appelle une méthode utilisateur sur un objet donné

Avertissement

Cette fonction est devenue OBSOLÈTE en PHP 4.1.0, et a été SUPPRIMÉE en PHP 7.0.0.

Les alternatives à cette fonction incluent :

  • call_user_func()

Description

mixed call_user_method ( string $method_name , object &$obj [, mixed $parameter [, mixed $... ]] )

Liste de paramètres

method_name

Le nom de la méthode appelée.

obj

L'objet sur lequel method_name est appelée.

parameter ...

Les paramètres optionnels.

Exemples

Exemple #1 Alternative à la fonction call_user_method()

<?php
call_user_func(array($obj, $method_name), $parameter /* , ... */);
?>

Voir aussi

  • call_user_func_array() - Appelle une fonction de rappel avec les paramètres rassemblés en tableau
  • call_user_func() - Appelle une fonction de rappel fournie par le premier argument


Crée un alias de classe

  • « call_user_method
  • class_exists »
  • PHP Manual
  • Fonctions Classes/Objets
  • Crée un alias de classe

class_alias

(PHP 5 >= 5.3.0, PHP 7)

class_alias — Crée un alias de classe

Description

bool class_alias ( string $original , string $alias [, bool $autoload = TRUE ] )

Crée un alias appelé alias basé sur une classe original définie par l'utilisateur. L'alias est en tous points similaire à la classe originale.

Liste de paramètres

original

La classe originale.

alias

Le nom de l'alias de la classe.

autoload

Si l'on doit charger automatiquement si la classe originale n'est pas trouvée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec class_alias()

<?php

class foo { }

class_alias('foo', 'bar');

$a = new foo;
$b = new bar;

// les objets sont les mêmes
var_dump($a == $b, $a === $b);
var_dump($a instanceof $b);

// les classes sont les mêmes
var_dump($a instanceof foo);
var_dump($a instanceof bar);

var_dump($b instanceof foo);
var_dump($b instanceof bar);

?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

Voir aussi

  • get_parent_class() - Retourne le nom de la classe parente d'un objet
  • is_subclass_of() - Détermine si un objet est une sous-classe d'une classe donnée ou l'implémente


Vérifie si une classe a été définie

  • « class_alias
  • get_called_class »
  • PHP Manual
  • Fonctions Classes/Objets
  • Vérifie si une classe a été définie

class_exists

(PHP 4, PHP 5, PHP 7)

class_exists — Vérifie si une classe a été définie

Description

bool class_exists ( string $class_name [, bool $autoload = true ] )

Cette fonction vérifie si une classe donnée a été définie.

Liste de paramètres

class_name

Le nom de la classe. Il est recherché de manière sensible à la casse.

autoload

Si l'on doit appeler __autoload ou non par défaut.

Valeurs de retour

Retourne TRUE si class_name est une classe définie, FALSE sinon.

Historique

Version | Description
5.0.2 | Ne retourne plus TRUE pour les interfaces définies. Utilisez la fonction interface_exists().

Exemples

Exemple #1 Exemple avec class_exists()

<?php
// Vérifie que la classe existe avant de l'utiliser
if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>

Exemple #2 Exemple avec le paramètre autoload

<?php
function __autoload($class)
{
    include($class . '.php');

    // Vérifie si l'include a déclaré la classe
    if (!class_exists($class, false)) {
        trigger_error("Impossible de charger la classe : $class", E_USER_WARNING);
    }
}

if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>

Voir aussi

  • function_exists() - Indique si une fonction est définie
  • interface_exists() - Vérifie si une interface a été définie
  • get_declared_classes() - Liste toutes les classes définies dans PHP


Le nom de la classe en "Late Static Binding"

  • « class_exists
  • get_class_methods »
  • PHP Manual
  • Fonctions Classes/Objets
  • Le nom de la classe en "Late Static Binding"

get_called_class

(PHP 5 >= 5.3.0, PHP 7)

get_called_class — Le nom de la classe en "Late Static Binding"

Description

string get_called_class ( void )

Retourne le nom de la classe depuis laquelle une méthode statique a été appelée, tel que le Late State Binding le détermine.

Valeurs de retour

Retourne le nom de la classe. Retourne FALSE si appelée depuis l'extérieur d'une classe.

Exemples

Exemple #1 Exemple avec get_called_class()

<?php

class foo {
    static public function test() {
        var_dump(get_called_class());
    }
}

class bar extends foo {
}

foo::test();
bar::test();

?>

L'exemple ci-dessus va afficher :

string(3) "foo"
string(3) "bar"

Voir aussi

  • get_parent_class() - Retourne le nom de la classe parente d'un objet
  • get_class() - Retourne le nom de la classe d'un objet
  • is_subclass_of() - Détermine si un objet est une sous-classe d'une classe donnée ou l'implémente


Retourne les noms des méthodes d'une classe

  • « get_called_class
  • get_class_vars »
  • PHP Manual
  • Fonctions Classes/Objets
  • Retourne les noms des méthodes d'une classe

get_class_methods

(PHP 4, PHP 5, PHP 7)

get_class_methods — Retourne les noms des méthodes d'une classe

Description

array get_class_methods ( mixed $class_name )

Retourne les noms des méthodes d'une classe.

Liste de paramètres

class_name

Le nom de la classe ou une instance d'objet

Valeurs de retour

Retourne un tableau contenant les noms des méthodes de la classe class_name. En cas d'erreur, NULL est retourné.

Exemples

Exemple #1 Exemple avec get_class_methods()

<?php

class myclass {
    // constructeur
    function myclass()
    {
        return(true);
    }

    // méthode 1
    function myfunc1()
    {
        return(true);
    }

    // méthode 2
    function myfunc2()
    {
        return(true);
    }
}

$class_methods = get_class_methods('myclass');
// ou
$class_methods = get_class_methods(new myclass());

foreach ($class_methods as $method_name) {
    echo "$method_name\n";
}

?>

L'exemple ci-dessus va afficher :

myclass
myfunc1
myfunc2

Voir aussi

  • get_class() - Retourne le nom de la classe d'un objet
  • get_class_vars() - Retourne les valeurs par défaut des propriétés d'une classe
  • get_object_vars() - Retourne les propriétés d'un objet


Retourne les valeurs par défaut des propriétés d'une classe

  • « get_class_methods
  • get_class »
  • PHP Manual
  • Fonctions Classes/Objets
  • Retourne les valeurs par défaut des propriétés d'une classe

get_class_vars

(PHP 4, PHP 5, PHP 7)

get_class_vars — Retourne les valeurs par défaut des propriétés d'une classe

Description

array get_class_vars ( string $class_name )

Retourne les valeurs par défaut des propriétés d'une classe.

Liste de paramètres

class_name

Le nom de la classe

Valeurs de retour

Retourne un tableau associatif contenant les noms/valeurs des propriétés visibles dans le scope courant, avec leurs valeurs par défaut. Les éléments du tableau résultant sont sous la forme varname => value. En cas d'erreur, la fonction retournera FALSE.

Historique

Version | Description
5.0.3 | get_class_vars() ne retourne que les propriétés qui sont accessibles depuis le contexte courant.
5.0.2 | Appeler get_class_vars() produit toutes les propriétés sous la forme d'un tableau, contrairement au comportement précédent où les propriétés privées et protégées étaient préfixées par des caractères null.
5.0.1 | Appeler get_class_vars() retourne toutes les propriétés, exactement comme lors de la conversion d'un objet en tableau.

Exemples

Exemple #1 Exemple avec get_class_vars()

<?php

class myclass {

    var $var1; // pas de valeur par défaut...
    var $var2 = "xyz";
    var $var3 = 100;
    private $var4;

    // constructeur
    function myclass() {
        // changement de quelques propriétés
        $this->var1 = "foo";
        $this->var2 = "bar";
        return true;
    }

}

$my_class = new myclass();

$class_vars = get_class_vars(get_class($my_class));

foreach ($class_vars as $name => $value) {
    echo "$name : $value\n";
}

?>

L'exemple ci-dessus va afficher :

var1 :
var2 : xyz
var3 : 100

Exemple #2 Exemple avec get_class_vars() et les contextes

<?php
function format($array)
{
    return implode('|', array_keys($array)) . "\r\n";
}

class TestCase
{
    public $a = 1;
    protected $b = 2;
    private $c = 3;

    public static function expose()
    {
        echo format(get_class_vars(__CLASS__));
    }
}

TestCase::expose();
echo format(get_class_vars('TestCase'));
?>

L'exemple ci-dessus va afficher :

// 5.0.0
a| * b| TestCase c
a| * b| TestCase c

// 5.0.1 - 5.0.2
a|b|c
a|b|c

// 5.0.3 +
a|b|c
a

Voir aussi

  • get_class_methods() - Retourne les noms des méthodes d'une classe
  • get_object_vars() - Retourne les propriétés d'un objet


Retourne le nom de la classe d'un objet

  • « get_class_vars
  • get_declared_classes »
  • PHP Manual
  • Fonctions Classes/Objets
  • Retourne le nom de la classe d'un objet

get_class

(PHP 4, PHP 5, PHP 7)

get_class — Retourne le nom de la classe d'un objet

Description

string get_class ([ object $object = NULL ] )

Retourne le nom de la classe de l'objet obj.

Liste de paramètres

object

L'objet testé. Ce paramètre peut être omis lorsque la fonction est utilisée dans une classe.

Valeurs de retour

Retourne le nom de la classe dont object est une instance. Retourne FALSE si object n'est pas un objet.

Si object est omis lorsque la fonction est appelée dans une classe, le nom de la classe courante est retourné.

Erreurs / Exceptions

Si get_class() est appelée avec autre chose qu'un objet, une alerte de niveau E_WARNING sera émise.

Historique

Version | Description
5.3.0 | NULL est devenue la valeur par défaut pour object, donc passer NULL pour object a le même effet que de laisser le paramètre vide.

Exemples

Exemple #1 Exemple avec get_class()

<?php

class foo {
    function name()
    {
        echo "Mon nom est " , get_class($this) , "\n";
    }
}

// création d'un objet
$bar = new foo();

// Appel externe
echo "Son nom est " , get_class($bar) , "\n";

// Appel interne
$bar->name();

?>

L'exemple ci-dessus va afficher :

Son nom est foo
Mon nom est foo

Exemple #2 Utilisation de get_class() dans une superclasse

<?php

abstract class bar {
    public function __construct()
    {
        var_dump(get_class($this));
        var_dump(get_class());
    }
}

class foo extends bar {
}

new foo;

?>

L'exemple ci-dessus va afficher :

string(3) "foo"
string(3) "bar"

Voir aussi

  • get_called_class() - Le nom de la classe en "Late Static Binding"
  • get_parent_class() - Retourne le nom de la classe parente d'un objet
  • gettype() - Retourne le type de la variable
  • is_subclass_of() - Détermine si un objet est une sous-classe d'une classe donnée ou l'implémente


Liste toutes les classes définies dans PHP

  • « get_class
  • get_declared_interfaces »
  • PHP Manual
  • Fonctions Classes/Objets
  • Liste toutes les classes définies dans PHP

get_declared_classes

(PHP 4, PHP 5, PHP 7)

get_declared_classes — Liste toutes les classes définies dans PHP

Description

array get_declared_classes ( void )

Liste toutes les classes définies.

Valeurs de retour

Retourne un tableau contenant la liste des noms des classes déclarées dans le script courant.

Note:

Notez que suivant les extensions qui sont compilées ou chargées dans PHP, d'autres classes peuvent être présentes. Cela signifie que vous ne pourrez pas utiliser ces noms de classes pour définir vos propres classes. Voici une liste des classes prédéfinies.

Exemples

Exemple #1 Exemple avec get_declared_classes()

<?php
print_r(get_declared_classes());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => stdClass
    [1] => __PHP_Incomplete_Class
    [2] => Directory
)

Voir aussi

  • class_exists() - Vérifie si une classe a été définie
  • get_declared_interfaces() - Retourne un tableau avec toutes les interfaces déclarées
  • get_defined_functions() - Liste toutes les fonctions définies


Retourne un tableau avec toutes les interfaces déclarées

  • « get_declared_classes
  • get_declared_traits »
  • PHP Manual
  • Fonctions Classes/Objets
  • Retourne un tableau avec toutes les interfaces déclarées

get_declared_interfaces

(PHP 5, PHP 7)

get_declared_interfaces — Retourne un tableau avec toutes les interfaces déclarées

Description

array get_declared_interfaces ( void )

Retourne un tableau avec toutes les interfaces déclarées.

Valeurs de retour

Retourne un tableau contenant les noms des interfaces déclarées dans le script courant.

Exemples

Exemple #1 Exemple avec get_declared_interfaces()

<?php
print_r(get_declared_interfaces());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Traversable
    [1] => IteratorAggregate
    [2] => Iterator
    [3] => ArrayAccess
    [4] => reflector
    [5] => RecursiveIterator
    [6] => SeekableIterator
)

Voir aussi

  • interface_exists() - Vérifie si une interface a été définie
  • get_declared_classes() - Liste toutes les classes définies dans PHP
  • class_implements() - Retourne les interfaces implémentées par une classe ou une interface donnée


Retourne un tableau contenant tous les traits déclarés

  • « get_declared_interfaces
  • get_object_vars »
  • PHP Manual
  • Fonctions Classes/Objets
  • Retourne un tableau contenant tous les traits déclarés

get_declared_traits

(PHP 5 >= 5.4.0, PHP 7)

get_declared_traits — Retourne un tableau contenant tous les traits déclarés

Description

array get_declared_traits ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant comme valeurs les noms de tous les traits déclarés. Retourne NULL en cas d'échec.

Voir aussi

  • class_uses() - Retourne le trait utilisé par une classe donnée.


Retourne les propriétés d'un objet

  • « get_declared_traits
  • get_parent_class »
  • PHP Manual
  • Fonctions Classes/Objets
  • Retourne les propriétés d'un objet

get_object_vars

(PHP 4, PHP 5, PHP 7)

get_object_vars — Retourne les propriétés d'un objet

Description

array get_object_vars ( object $object )

Récupère les propriétés non-statiques de l'objet object, accessibles depuis le contexte.

Liste de paramètres

object

Une instance d'un objet.

Valeurs de retour

Retourne un tableau associatif contenant les propriétés non-statiques, accessibles depuis le contexte courant, de l'objet object. Si une propriété n'a pas de valeur d'assignée, elle sera retournée avec une valeur NULL.

Historique

Version | Description
5.3.0 | Cette fonction retourne maintenant NULL si le paramètre object n'est pas un objet. Précédemment, FALSE était retourné.

Exemples

Exemple #1 Exemple avec get_object_vars()

<?php

class foo {
    private $a;
    public $b = 1;
    public $c;
    private $d;
    static $e;

    public function test() {
        var_dump(get_object_vars($this));
    }
}

$test = new foo;
var_dump(get_object_vars($test));

$test->test();

?>

L'exemple ci-dessus va afficher :

array(2) {
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
}
array(4) {
  ["a"]=>
  NULL
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
  ["d"]=>
  NULL
}

Voir aussi

  • get_class_methods() - Retourne les noms des méthodes d'une classe
  • get_class_vars() - Retourne les valeurs par défaut des propriétés d'une classe


Retourne le nom de la classe parente d'un objet

  • « get_object_vars
  • interface_exists »
  • PHP Manual
  • Fonctions Classes/Objets
  • Retourne le nom de la classe parente d'un objet

get_parent_class

(PHP 4, PHP 5, PHP 7)

get_parent_class — Retourne le nom de la classe parente d'un objet

Description

string get_parent_class ([ mixed $object ] )

Récupère le nom de la classe parente pour un objet ou une classe.

Liste de paramètres

object

L'objet ou le nom de la classe testé. Ce paramètre est optionnel s'il est appelé depuis la méthode de l'objet.

Valeurs de retour

Retourne le nom de la classe parente dont object est une instance ou le nom.

Note:

Si l'objet n'a pas de parent ou si la classe fournie n'existe pas, FALSE sera retourné.

Si appelée sans paramètre en dehors d'un objet, cette fonction retourne FALSE.

Historique

Version | Description
5.1.0 | Si appelée sans paramètre en dehors de l'objet, cette fonction aurait retourné NULL avec une alerte, mais retourne maintenant FALSE.

Exemples

Exemple #1 Exemple avec get_parent_class()

<?php

class papa {
    function papa()
    {
    // un peu de code
    }
}

class enfant extends papa {
    function enfant()
    {
        echo "je suis le fils de " , get_parent_class($this) , "\n";
    }
}

class enfant2 extends papa {
    function enfant2()
    {
        echo "Je suis aussi le fils de " , get_parent_class('enfant2') , "\n";
    }
}

$foo = new enfant();
$bar = new enfant2();

?>

L'exemple ci-dessus va afficher :

je suis le fils de papa
Je suis aussi le fils de papa

Voir aussi

  • get_class() - Retourne le nom de la classe d'un objet
  • is_subclass_of() - Détermine si un objet est une sous-classe d'une classe donnée ou l'implémente


Vérifie si une interface a été définie

  • « get_parent_class
  • is_a »
  • PHP Manual
  • Fonctions Classes/Objets
  • Vérifie si une interface a été définie

interface_exists

(PHP 5 >= 5.0.2, PHP 7)

interface_exists — Vérifie si une interface a été définie

Description

bool interface_exists ( string $interface_name [, bool $autoload = true ] )

Vérifie si une interface a été définie.

Liste de paramètres

interface_name

Le nom de l'interface

autoload

Si l'on doit appeler __autoload ou non par défaut.

Valeurs de retour

Retourne TRUE si l'interface fournie par le paramètre interface_name a été définie, FALSE sinon.

Exemples

Exemple #1 Exemple avec interface_exists()

<?php
// Vérifie si l'interface existe avant de l'utiliser
if (interface_exists('MyInterface')) {
    class MyClass implements MyInterface
    {
        // Méthodes
    }
}

?>

Voir aussi

  • get_declared_interfaces() - Retourne un tableau avec toutes les interfaces déclarées
  • class_implements() - Retourne les interfaces implémentées par une classe ou une interface donnée
  • class_exists() - Vérifie si une classe a été définie


Vérifie si l'objet est une instance d'une classe donnée ou a cette classe parmi ses parents

  • « interface_exists
  • is_subclass_of »
  • PHP Manual
  • Fonctions Classes/Objets
  • Vérifie si l'objet est une instance d'une classe donnée ou a cette classe parmi ses parents

is_a

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

is_a — Vérifie si l'objet est une instance d'une classe donnée ou a cette classe parmi ses parents

Description

bool is_a ( object $object , string $class_name [, bool $allow_string = FALSE ] )

Vérifie si l'objet object est une instance d'une classe donnée ou a cette classe comme parent.

Liste de paramètres

object

L'objet testé

class_name

Le nom de la classe

allow_string

Si ce paramètre vaut FALSE, le nom de la classe sous forme de chaîne de caractères dans le paramètre object n'est pas autorisé. Ceci permet d'éviter l'appel de l'autoloader si la classe n'existe pas.

Valeurs de retour

Retourne TRUE si l'objet est une instance de cette classe ou a cette classe comme parent, FALSE sinon.

Historique

Version | Description
5.3.9 | Ajout du paramètre allow_string.
5.3.0 | Cette fonction n'est plus obsolète, et ne lancera donc plus d'alerte de type E_STRICT.
5.0.0 | Cette fonction devient obsolète en faveur de l'opérateur instanceof. L'appel à cette fonction émettra une alerte de niveau E_STRICT.

Exemples

Exemple #1 Exemple avec is_a()

<?php
// Définit une classe
class WidgetFactory
{
  var $oink = 'moo';
}

// Crée un nouvel objet
$WF = new WidgetFactory();

if (is_a($WF, 'WidgetFactory')) {
  echo "oui, \$WF est toujours un objet WidgetFactory\n";
}
?>

Exemple #2 Utilisation de l'opérateur instanceof avec PHP 5

<?php
if ($WF instanceof WidgetFactory) {
    echo 'Oui, $WF est un WidgetFactory';
}
?>

Voir aussi

  • get_class() - Retourne le nom de la classe d'un objet
  • get_parent_class() - Retourne le nom de la classe parente d'un objet
  • is_subclass_of() - Détermine si un objet est une sous-classe d'une classe donnée ou l'implémente


Détermine si un objet est une sous-classe d'une classe donnée ou l'implémente

  • « is_a
  • method_exists »
  • PHP Manual
  • Fonctions Classes/Objets
  • Détermine si un objet est une sous-classe d'une classe donnée ou l'implémente

is_subclass_of

(PHP 4, PHP 5, PHP 7)

is_subclass_of — Détermine si un objet est une sous-classe d'une classe donnée ou l'implémente

Description

bool is_subclass_of ( mixed $object , string $class_name [, bool $allow_string = TRUE ] )

Vérifie si l'objet object a la classe class_name parmi ses parents ou l'implémente.

Liste de paramètres

object

Un nom de classe ou une instance d'un objet. Aucune erreur n'est générée si la classe n'existe pas.

class_name

Le nom de la classe

allow_string

Si ce paramètre est défini à FALSE, un nom de classe sous forme de chaîne de caractères dans le paramètre object n'est pas autorisé. Ceci permet d'éviter d'appeler l'autoloader si la classe n'existe pas.

Valeurs de retour

Cette fonction retourne TRUE si l'objet object est une instance d'une classe qui est une sous-classe de class_name, FALSE sinon.

Historique

Version | Description
5.3.9 | Ajout du paramètre allow_string.
5.3.7 | Ajout du support pour class_name pour fonctionner avec les interfaces
5.0.3 | vous pouvez également spécifier le paramètre object en tant que chaîne de caractères (le nom de la classe).

Exemples

Exemple #1 Exemple avec is_subclass_of()

<?php
// Définit une classe
class WidgetFactory
{
  var $oink = 'moo';
}

// Définit une sous-classe
class WidgetFactory_Child extends WidgetFactory
{
  var $oink = 'oink';
}

// Création d'un nouvel objet
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();

if (is_subclass_of($WFC, 'WidgetFactory')) {
  echo "oui, \$WFC est une sous-classe de la classe WidgetFactory\n";
} else {
  echo "non, \$WFC n'est pas une sous-classe de la classe WidgetFactory\n";
}

if (is_subclass_of($WF, 'WidgetFactory')) {
  echo "oui, \$WF est une sous-classe de la classe WidgetFactory\n";
} else {
  echo "non, \$WF n'est pas une sous-classe de la classe WidgetFactory\n";
}

// utilisable uniquement depuis PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
  echo "oui, WidgetFactory_Child est une sous-classe de la classe WidgetFactory\n";
} else {
  echo "non, WidgetFactory_Child n'est pas une sous-classe de la classe WidgetFactory\n";
}
?>

L'exemple ci-dessus va afficher :

oui, $WFC est une sous-classe de la classe WidgetFactory
non, $WF n'est pas une sous-classe de la classe WidgetFactory
oui, WidgetFactory_Child est une sous-classe de la classe WidgetFactory

Exemple #2 Exemple avec is_subclass_of() en utilisant une interface

<?php
// Définition de l'interface
interface MyInterface
{
  public function MyFunction();
}

// Définition de l'implémentation de la classe de l'interface
class MyClass implements MyInterface
{
  public function MyFunction()
  {
    return "MyClass implémente MyInterface!";
  }
}

// Instanciation de l'objet
$my_object = new MyClass;

// Fonctionne depuis PHP 5.3.7

// Test utilisant l'objet de l'instance de la classe
if (is_subclass_of($my_object, 'MyInterface')) {
  echo "Oui, \$my_object est une sous-classe de MyInterface\n";
} else {
  echo "Non, \$my_object n'est pas une sous-classe de MyInterface\n";
}

// Test utilisant le nom de la classe sous forme de chaîne de caractères
if (is_subclass_of('MyClass', 'MyInterface')) {
  echo "Oui, MyClass est une sous-classe de MyInterface\n";
} else {
  echo "Non, MyClass n'est pas une sous-classe de MyInterface\n";
}
?>

L'exemple ci-dessus va afficher :

Oui, $my_object est une sous-classe de MyInterface
Oui, MyClass est une sous-classe de MyInterface

Notes

Note:

L'usage de cette fonction utilisera toutes les autoloaders enregistrés si la classe n'est pas encore connue.

Voir aussi

  • get_class() - Retourne le nom de la classe d'un objet
  • get_parent_class() - Retourne le nom de la classe parente d'un objet
  • is_a() - Vérifie si l'objet est une instance d'une classe donnée ou a cette classe parmi ses parents
  • class_parents() - Retourne la classe parente d'une classe


Vérifie si la méthode existe pour une classe

  • « is_subclass_of
  • property_exists »
  • PHP Manual
  • Fonctions Classes/Objets
  • Vérifie si la méthode existe pour une classe

method_exists

(PHP 4, PHP 5, PHP 7)

method_exists — Vérifie si la méthode existe pour une classe

Description

bool method_exists ( mixed $object , string $method_name )

Vérifie si la méthode existe pour l'objet object fourni.

Liste de paramètres

object

Une instance d'un objet ou le nom d'une classe

method_name

Le nom de la méthode

Valeurs de retour

Retourne TRUE si la méthode fournie par le paramètre method_name a été définie pour l'objet object, FALSE sinon.

Notes

Note:

L'usage de cette fonction utilisera toutes les autoloaders enregistrés si la classe n'est pas encore connue.

Exemples

Exemple #1 Exemple avec method_exists()

<?php
$directory = new Directory('.');
var_dump(method_exists($directory,'read'));
?>

L'exemple ci-dessus va afficher :

bool(true)

Exemple #2 Exemple avec method_exists() en appel statique

<?php
var_dump(method_exists('Directory','read'));
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • function_exists() - Indique si une fonction est définie
  • is_callable() - Détermine si l'argument peut être appelé comme fonction
  • class_exists() - Vérifie si une classe a été définie


Vérifie si un objet ou une classe possède une propriété

  • « method_exists
  • trait_exists »
  • PHP Manual
  • Fonctions Classes/Objets
  • Vérifie si un objet ou une classe possède une propriété

property_exists

(PHP 5 >= 5.1.0, PHP 7)

property_exists — Vérifie si un objet ou une classe possède une propriété

Description

bool property_exists ( mixed $class , string $property )

Cette fonction vérifie si la propriété property existe dans la classe spécifiée.

Note:

property_exists() retourne TRUE même si la propriété a une valeur NULL, contrairement à la fonction isset().

Liste de paramètres

class

Le nom de la classe ou un objet de la classe à tester

property

Le nom de la propriété

Valeurs de retour

Retourne TRUE si la propriété existe, FALSE si elle n'existe pas et NULL si une erreur survient.

Notes

Note:

L'usage de cette fonction utilisera toutes les autoloaders enregistrés si la classe n'est pas encore connue.

Note:

La fonction property_exists() ne peut pas détecter les propriétés qui sont accessibles en utilisant la méthode __get.

Historique

Version | Description
5.3.0 | Cette fonction vérifie l'existence d'une propriété indépendamment de l'accessibilité.

Exemples

Exemple #1 Exemple avec property_exists()

<?php

class myClass {
    public $mine;
    private $xpto;
    static protected $test;

    static function test() {
        var_dump(property_exists('myClass', 'xpto')); //true
    }
}

var_dump(property_exists('myClass', 'mine'));   //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto'));   //true, depuis PHP 5.3.0
var_dump(property_exists('myClass', 'bar'));    //false
var_dump(property_exists('myClass', 'test'));   //true, depuis PHP 5.3.0
myClass::test();

?>

Voir aussi

  • method_exists() - Vérifie si la méthode existe pour une classe


Vérifie si un trait existe

  • « property_exists
  • Classkit »
  • PHP Manual
  • Fonctions Classes/Objets
  • Vérifie si un trait existe

trait_exists

(PHP 5 >= 5.4.0, PHP 7)

trait_exists — Vérifie si un trait existe

Description

bool trait_exists ( string $traitname [, bool $autoload ] )

Liste de paramètres

traitname

Nom du trait à vérifier

autoload

TRUE s'il faut charger le trait dans le cas où ce n'est pas encore fait.

Valeurs de retour

Retourne TRUE si le trait existe, FALSE s'il n'existe pas, NULL en cas d'erreur.


Classkit

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Classkit
    • classkit_import — Importe de nouvelles définitions de méthodes de classes depuis un fichier
    • classkit_method_add — Ajoute dynamiquement une nouvelle méthode à une classe donnée
    • classkit_method_copy — Copie une méthode d'une classe vers une autre classe
    • classkit_method_redefine — Change dynamiquement le code de la méthode donnée
    • classkit_method_remove — Efface dynamiquement une méthode donnée
    • classkit_method_rename — Change dynamiquement le nom d'une méthode donnée


Introduction

Ces fonctions permettent la manipulation dynamique des classes PHP, au moment de l'exécution.

Note:

Cette extension a été remplacée par l'extension runkit, qui n'est pas limitée aux classes, mais qui permet également la manipulation des fonctions.


Installation

Cette extension est considérée comme non-maintenue et morte. Cependant, le code source est toujours disponible depuis le SVN de PECL ici : » http://svn.php.net/viewvc/pecl/classkit.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CLASSKIT_ACC_PRIVATE (entier)
Rend la méthode privée ("private")
CLASSKIT_ACC_PROTECTED (entier)
Rend la méthode protégée ("protected")
CLASSKIT_ACC_PUBLIC (entier)
Rend la méthode publique ("public")


Fonctions Classkit

Sommaire

  • classkit_import — Importe de nouvelles définitions de méthodes de classes depuis un fichier
  • classkit_method_add — Ajoute dynamiquement une nouvelle méthode à une classe donnée
  • classkit_method_copy — Copie une méthode d'une classe vers une autre classe
  • classkit_method_redefine — Change dynamiquement le code de la méthode donnée
  • classkit_method_remove — Efface dynamiquement une méthode donnée
  • classkit_method_rename — Change dynamiquement le nom d'une méthode donnée


Importe de nouvelles définitions de méthodes de classes depuis un fichier

  • « Fonctions Classkit
  • classkit_method_add »
  • PHP Manual
  • Fonctions Classkit
  • Importe de nouvelles définitions de méthodes de classes depuis un fichier

classkit_import

(PECL classkit >= 0.3)

classkit_import — Importe de nouvelles définitions de méthodes de classes depuis un fichier

Description

array classkit_import ( string $filename )

Note: Cette fonction ne peut pas être utilisée pour manipuler la méthode en cours (ou liée) d'exécution.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

filename

Le nom du fichier contenant les définitions des méthodes de classes à importer

Valeurs de retour

Tableau associatif contenant les méthodes importées

Exemples

Exemple #1 Exemple avec classkit_import()

<?php
// Fichier : newclass.php
class Example {
    function foo() {
        return "bar!\n";
    }
}
?>
<?php
// Requière newclass.php (voir ci-dessous)
class Example {
    function foo() {
        return "foo!\n";
    }
}

$e = new Example();

// Affichage original
echo $e->foo();

// Importation d'une méthode de remplacement
classkit_import('newclass.php');

// Affichage après importation
echo $e->foo();

?>

L'exemple ci-dessus va afficher :

foo!
bar!

Voir aussi

  • classkit_method_add() - Ajoute dynamiquement une nouvelle méthode à une classe donnée
  • classkit_method_copy() - Copie une méthode d'une classe vers une autre classe


Ajoute dynamiquement une nouvelle méthode à une classe donnée

  • « classkit_import
  • classkit_method_copy »
  • PHP Manual
  • Fonctions Classkit
  • Ajoute dynamiquement une nouvelle méthode à une classe donnée

classkit_method_add

(PECL classkit >= 0.1)

classkit_method_add — Ajoute dynamiquement une nouvelle méthode à une classe donnée

Description

bool classkit_method_add ( string $classname , string $methodname , string $args , string $code [, int $flags = CLASSKIT_ACC_PUBLIC ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe où la méthode doit être ajoutée

methodname

Le nom de la méthode à ajouter

args

Liste d'arguments, séparés par des virgules, de la nouvelle méthode créée

code

Le code à exécuter lorsque methodname est appelé

flags

Le type de méthode à créer ; peut être CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED ou CLASSKIT_ACC_PRIVATE

Note:

Ce paramètre est utilisé depuis PHP 5, car avant cette version, toutes les méthodes étaient publiques.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec classkit_method_add()

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// Création d'un objet Example
$e = new Example();

// Ajout d'une nouvelle méthode publique
classkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    CLASSKIT_ACC_PUBLIC
);

// Ajoute 12 + 4
echo $e->add(12, 4);
?>

L'exemple ci-dessus va afficher :

16

Voir aussi

  • classkit_method_copy() - Copie une méthode d'une classe vers une autre classe
  • classkit_method_redefine() - Change dynamiquement le code de la méthode donnée
  • classkit_method_remove() - Efface dynamiquement une méthode donnée
  • classkit_method_rename() - Change dynamiquement le nom d'une méthode donnée
  • create_function() - Crée une fonction anonyme


Copie une méthode d'une classe vers une autre classe

  • « classkit_method_add
  • classkit_method_redefine »
  • PHP Manual
  • Fonctions Classkit
  • Copie une méthode d'une classe vers une autre classe

classkit_method_copy

(PECL classkit >= 0.2)

classkit_method_copy — Copie une méthode d'une classe vers une autre classe

Description

bool classkit_method_copy ( string $dClass , string $dMethod , string $sClass [, string $sMethod ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

dClass

Classe de destination de la méthode copiée

dMethod

Nom de la nouvelle méthode

sClass

Classe source contenant la méthode à copier

sMethod

Nom de la méthode à copier depuis la classe source. Si ce paramètre est omis, la valeur du paramètre dMethod est utilisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec classkit_method_copy()

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // Initialement, aucune méthode
}

// Copie la méthode example() depuis la classe Foo vers la classe Bar et la nomme baz()
classkit_method_copy('Bar', 'baz', 'Foo', 'example');

// Affiche la fonction copiée
echo Bar::baz();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi

  • classkit_method_add() - Ajoute dynamiquement une nouvelle méthode à une classe donnée
  • classkit_method_redefine() - Change dynamiquement le code de la méthode donnée
  • classkit_method_remove() - Efface dynamiquement une méthode donnée
  • classkit_method_rename() - Change dynamiquement le nom d'une méthode donnée


Change dynamiquement le code de la méthode donnée

  • « classkit_method_copy
  • classkit_method_remove »
  • PHP Manual
  • Fonctions Classkit
  • Change dynamiquement le code de la méthode donnée

classkit_method_redefine

(PECL classkit >= 0.1)

classkit_method_redefine — Change dynamiquement le code de la méthode donnée

Description

bool classkit_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags = CLASSKIT_ACC_PUBLIC ] )

Note: Cette fonction ne peut pas être utilisée pour manipuler la méthode en cours (ou liée) d'exécution.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode est redéfinie

methodname

Le nom de la méthode à redéfinir

args

Liste d'arguments séparés par une virgule pour la méthode redéfinie

code

Le nouveau code à évaluer lorsque methodname est appelé

flags

La méthode redéfinie peut être CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED ou CLASSKIT_ACC_PRIVATE

Note:

Ce paramètre est utilisé depuis PHP 5, car avant cette version, toutes les méthodes étaient publiques.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec classkit_method_redefine()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Création d'un objet Example
$e = new Example();

// Affichage de Example::foo() (avant la redéfinition)
echo "Avant : " . $e->foo();

// Redéfinition de la méthode 'foo'
classkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    CLASSKIT_ACC_PUBLIC
);

// Affichage de Example::foo() (après la redéfinition)
echo "Après : " . $e->foo();
?>

L'exemple ci-dessus va afficher :

Avant : foo!
Après : bar!

Voir aussi

  • classkit_method_add() - Ajoute dynamiquement une nouvelle méthode à une classe donnée
  • classkit_method_copy() - Copie une méthode d'une classe vers une autre classe
  • classkit_method_remove() - Efface dynamiquement une méthode donnée
  • classkit_method_rename() - Change dynamiquement le nom d'une méthode donnée


Efface dynamiquement une méthode donnée

  • « classkit_method_redefine
  • classkit_method_rename »
  • PHP Manual
  • Fonctions Classkit
  • Efface dynamiquement une méthode donnée

classkit_method_remove

(PECL classkit >= 0.1)

classkit_method_remove — Efface dynamiquement une méthode donnée

Description

bool classkit_method_remove ( string $classname , string $methodname )

Note: Cette fonction ne peut pas être utilisée pour manipuler la méthode en cours (ou liée) d'exécution.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode est effacée

methodname

Le nom de la méthode à effacer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec classkit_method_remove()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Efface la métode 'foo'
classkit_method_remove(
    'Example',
    'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

L'exemple ci-dessus va afficher :

bar

Voir aussi

  • classkit_method_add() - Ajoute dynamiquement une nouvelle méthode à une classe donnée
  • classkit_method_copy() - Copie une méthode d'une classe vers une autre classe
  • classkit_method_redefine() - Change dynamiquement le code de la méthode donnée
  • classkit_method_rename() - Change dynamiquement le nom d'une méthode donnée


Change dynamiquement le nom d'une méthode donnée

  • « classkit_method_remove
  • ctype »
  • PHP Manual
  • Fonctions Classkit
  • Change dynamiquement le nom d'une méthode donnée

classkit_method_rename

(PECL classkit >= 0.1)

classkit_method_rename — Change dynamiquement le nom d'une méthode donnée

Description

bool classkit_method_rename ( string $classname , string $methodname , string $newname )

Note: Cette fonction ne peut pas être utilisée pour manipuler la méthode en cours (ou liée) d'exécution.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode doit être renommée

methodname

Le nom de la méthode à renommer

newname

Le nouveau nom à donner à la méthode

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec classkit_method_rename()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Renomme la méthode 'foo' en 'bar'
classkit_method_rename(
    'Example',
    'foo',
    'bar'
);

// Affiche la fonction renommée
echo Example::bar();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi

  • classkit_method_add() - Ajoute dynamiquement une nouvelle méthode à une classe donnée
  • classkit_method_copy() - Copie une méthode d'une classe vers une autre classe
  • classkit_method_redefine() - Change dynamiquement le code de la méthode donnée
  • classkit_method_remove() - Efface dynamiquement une méthode donnée


Vérification des types de caractères

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Ctype
    • ctype_alnum — Vérifie qu'une chaîne est alphanumérique
    • ctype_alpha — Vérifie qu'une chaîne est alphabétique
    • ctype_cntrl — Vérifie qu'un caractère est un caractère de contrôle
    • ctype_digit — Vérifie qu'une chaîne est un entier
    • ctype_graph — Vérifie qu'une chaîne est imprimable
    • ctype_lower — Vérifie qu'une chaîne est en minuscules
    • ctype_print — Vérifie qu'une chaîne est imprimable
    • ctype_punct — Vérifie qu'une chaîne contient de la ponctuation
    • ctype_space — Vérifie qu'une chaîne n'est faite que de caractères blancs
    • ctype_upper — Vérifie qu'une chaîne est en majuscules
    • ctype_xdigit — Vérifie qu'un caractère représente un nombre hexadécimal


Introduction

Les fonctions fournies par cette extension vérifient si un caractère ou une chaîne appartient à une certaine classe de caractères, suivant la configuration locale courante (voir aussi la fonction setlocale()).

Lorsqu'appelées avec un entier comme argument, ces fonctions se comportent exactement comme leur équivalent C du fichier ctype.h. Cela signifie que si vous passez un entier plus petit que 256, l'équivalent ASCII de la valeur sera utilisé afin de vérifier s'il se situe bien dans l'intervalle (les chiffres sont dans l'intervalle 0x30-0x39). Si le nombre se situe entre -128 et -1 inclus, alors 256 sera ajouté et la vérification se fera sur le résultat.

Lorsqu'appelées avec une chaîne comme argument, ces fonctions vérifient chaque caractère de la chaîne et ne retourneront TRUE que si chacun des caractères correspond aux critères. Lorsqu'une chaîne vide est passée, le résultat sera toujours TRUE en PHP < 5.1 et FALSE depuis 5.1.

Si l'on passe autre chose qu'une chaîne ou un entier, FALSE est retourné immédiatement.

Il est important de garder à l'esprit que les fonctions ctype sont toujours préférées pour les expressions rationnelles ainsi que pour les fonctions préfixées pas "str_*" et "is_*". En effet, ctype utilisant la bibliothèque native C, le traitement est extrêmement rapide.

Note:

Ces fonctions ne sont absolument pas relatives à la bibliothèque Python "ctypes". Les noms des fonctions sont relatives à l'en-tête du fichier C ctype.h où les fonctions C équivalentes sont définies.

Cette extension est antérieure à "ctypes" Python, aussi, toute confusion ne provient pas de cette extension...


Pré-requis

Aucune autre bibliothèque mise à part la bibliothèque C n'est requise. Cette dernière est toujours disponible.


Installation

Depuis PHP 4.2.0, ces fonctions sont activées par défaut. Pour les versions plus anciennes, vous devrez configurer et compiler PHP avec l'option --enable-ctype . Vous pouvez toujours désactiver le support de l'extension ctype avec l'option de compilation --disable-ctype .

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note: Cette bibliothèque fait partie intégrante de PHP depuis la version 4.3.0.


  • « Types de ressources
  • Fonctions Ctype »
  • PHP Manual
  • ctype
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions Ctype

Sommaire

  • ctype_alnum — Vérifie qu'une chaîne est alphanumérique
  • ctype_alpha — Vérifie qu'une chaîne est alphabétique
  • ctype_cntrl — Vérifie qu'un caractère est un caractère de contrôle
  • ctype_digit — Vérifie qu'une chaîne est un entier
  • ctype_graph — Vérifie qu'une chaîne est imprimable
  • ctype_lower — Vérifie qu'une chaîne est en minuscules
  • ctype_print — Vérifie qu'une chaîne est imprimable
  • ctype_punct — Vérifie qu'une chaîne contient de la ponctuation
  • ctype_space — Vérifie qu'une chaîne n'est faite que de caractères blancs
  • ctype_upper — Vérifie qu'une chaîne est en majuscules
  • ctype_xdigit — Vérifie qu'un caractère représente un nombre hexadécimal


Vérifie qu'une chaîne est alphanumérique

  • « Fonctions Ctype
  • ctype_alpha »
  • PHP Manual
  • Fonctions Ctype
  • Vérifie qu'une chaîne est alphanumérique

ctype_alnum

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_alnum — Vérifie qu'une chaîne est alphanumérique

Description

bool ctype_alnum ( string $text )

ctype_alnum() vérifie si tous les caractères de la chaîne text sont des lettres et des chiffres.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont soit des lettres, soit des chiffres, FALSE sinon.

Exemples

Exemple #1 Exemple avec ctype_alnum() (en utilisant les locales par défaut)

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
  if (ctype_alnum($testcase)) {
    echo "La chaîne $testcase contient des chiffres ou des lettres.\n";
  } else {
    echo "La chaîne $testcase ne contient pas que des chiffres ou des lettres.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne AbCd1zyZ9 contient des chiffres ou des lettres.
La chaîne foo!#$bar ne contient pas que des chiffres ou des lettres.

Notes

Note:

Si un entier dans l'intervalle -128 et 255 inclus est fourni, il sera interprété comme la valeur ASCII d'un seul caractère (les valeurs négatives se verront ajouter 256 afin d'autoriser les caractères dans l'intervalle ASCII étendue). Tout autre entier sera interprété comme une chaîne de caractères contenant les décimales de l'entier.

Voir aussi

  • ctype_alpha() - Vérifie qu'une chaîne est alphabétique
  • ctype_digit() - Vérifie qu'une chaîne est un entier
  • setlocale() - Modifie les informations de localisation


Vérifie qu'une chaîne est alphabétique

  • « ctype_alnum
  • ctype_cntrl »
  • PHP Manual
  • Fonctions Ctype
  • Vérifie qu'une chaîne est alphabétique

ctype_alpha

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_alpha — Vérifie qu'une chaîne est alphabétique

Description

bool ctype_alpha ( string $text )

ctype_alpha() vérifie si tous les caractères de la chaîne text sont des lettres, et FALSE sinon. En langage C, les lettres sont [A-Za-z] et ctype_alpha() est équivalent à (ctype_upper($text) || ctype_lower($text)), si text est un caractère unique, mais certaines langues ont des caractères qui ne sont ni des majuscules, ni des minuscules.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text est une lettre de la locale courante, FALSE sinon.

Exemples

Exemple #1 Exemple avec ctype_alpha() (en utilisant les locales courantes)

<?php
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
  if (ctype_alpha($testcase)) {
    echo "La chaîne $testcase ne contient que des lettres.\n";
  } else {
    echo "La chaîne $testcase ne contient pas que des lettres.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne KjgWZC ne contient que des lettres.
La chaîne arf12 ne contient pas que des lettres.

Notes

Note:

Si un entier dans l'intervalle -128 et 255 inclus est fourni, il sera interprété comme la valeur ASCII d'un seul caractère (les valeurs négatives se verront ajouter 256 afin d'autoriser les caractères dans l'intervalle ASCII étendue). Tout autre entier sera interprété comme une chaîne de caractères contenant les décimales de l'entier.

Voir aussi

  • ctype_upper() - Vérifie qu'une chaîne est en majuscules
  • ctype_lower() - Vérifie qu'une chaîne est en minuscules
  • setlocale() - Modifie les informations de localisation


Vérifie qu'un caractère est un caractère de contrôle

  • « ctype_alpha
  • ctype_digit »
  • PHP Manual
  • Fonctions Ctype
  • Vérifie qu'un caractère est un caractère de contrôle

ctype_cntrl

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_cntrl — Vérifie qu'un caractère est un caractère de contrôle

Description

bool ctype_cntrl ( string $text )

ctype_cntrl() vérifie si tous les caractères de la chaîne text sont des caractères de contrôles spéciaux. Ces caractères sont les nouvelles lignes, les tabulations, les caractères d'échappement.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si chaque caractère de text est un caractère de contrôle de la locale courante, FALSE sinon.

Exemples

Exemple #1 Exemple avec ctype_cntrl()

<?php
$strings = array('string1' => "\n\r\t", 'string2' => 'arf12');
foreach ($strings as $name => $testcase) {
  if (ctype_cntrl($testcase)) {
    echo "La chaîne '$name' ne contient que des caractères de contrôle.\n";
  } else {
    echo "La chaîne '$name' ne contient pas que des caractères de contrôle.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 'string1' ne contient que des caractères de contrôle.
La chaîne 'string2' ne contient pas que des caractères de contrôle.

Notes

Note:

Si un entier dans l'intervalle -128 et 255 inclus est fourni, il sera interprété comme la valeur ASCII d'un seul caractère (les valeurs négatives se verront ajouter 256 afin d'autoriser les caractères dans l'intervalle ASCII étendue). Tout autre entier sera interprété comme une chaîne de caractères contenant les décimales de l'entier.

Voir aussi

  • ctype_print() - Vérifie qu'une chaîne est imprimable


Vérifie qu'une chaîne est un entier

  • « ctype_cntrl
  • ctype_graph »
  • PHP Manual
  • Fonctions Ctype
  • Vérifie qu'une chaîne est un entier

ctype_digit

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_digit — Vérifie qu'une chaîne est un entier

Description

bool ctype_digit ( string $text )

ctype_digit() vérifie si tous les caractères de la chaîne text sont des chiffres.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont des entiers, FALSE sinon.

Historique

Version | Description
5.1.0 | Avant PHP 5.1.0, cette fonction retournait TRUE lorsque le paramètre text était une chaîne vide.

Exemples

Exemple #1 Exemple avec ctype_digit()

<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
  if (ctype_digit($testcase)) {
    echo "La chaîne $testcase ne contient que des entiers.\n";
  } else {
    echo "La chaîne $testcase ne contient pas que des entiers.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 1820.20 ne contient pas que des entiers.
La chaîne 10002 ne contient que des entiers.
La chaîne wsl!12 ne contient pas que des entiers.

Exemple #2 Exemple avec ctype_digit() pour comparer des chaînes et des nombres

<?php

$numeric_string = '42';
$integer        = 42;

ctype_digit($numeric_string);  // true
ctype_digit($integer);         // false (ASCII 42 correspond au caractère *)

is_numeric($numeric_string);   // true
is_numeric($integer);          // true
?>

Notes

Note:

Cette fonction attend une chaîne afin d'être pertinente ; par exemple, le fait de passer un entier ne retournera pas le résultat attendu. Voir aussi la section sur les types de ce manuel.

Note:

Si un entier dans l'intervalle -128 et 255 inclus est fourni, il sera interprété comme la valeur ASCII d'un seul caractère (les valeurs négatives se verront ajouter 256 afin d'autoriser les caractères dans l'intervalle ASCII étendue). Tout autre entier sera interprété comme une chaîne de caractères contenant les décimales de l'entier.

Voir aussi

  • ctype_alnum() - Vérifie qu'une chaîne est alphanumérique
  • ctype_xdigit() - Vérifie qu'un caractère représente un nombre hexadécimal
  • is_numeric() - Détermine si une variable est un type numérique
  • is_int() - Détermine si une variable est de type nombre entier
  • is_string() - Détermine si une variable est de type chaîne de caractères


Vérifie qu'une chaîne est imprimable

  • « ctype_digit
  • ctype_lower »
  • PHP Manual
  • Fonctions Ctype
  • Vérifie qu'une chaîne est imprimable

ctype_graph

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_graph — Vérifie qu'une chaîne est imprimable

Description

bool ctype_graph ( string $text )

ctype_graph() vérifie si tous les caractères de la chaîne text ont une représentation graphique, et créeront une impression sur l'écran (les espaces n'en font pas partie).

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text ont une représentation graphique et créeront une impression sur l'écran, FALSE sinon.

Exemples

Exemple #1 Exemple avec ctype_graph()

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
  if (ctype_graph($testcase)) {
    echo "La chaîne '$name' ne contient que des caractères imprimables.\n";
  } else {
    echo "La chaîne '$name' ne contient pas que des caractères imprimables.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 'string1' ne contient pas que des caractères imprimables.
La chaîne 'string2' ne contient que des caractères imprimables.
La chaîne 'string3' ne contient que des caractères imprimables.

Notes

Note:

Si un entier dans l'intervalle -128 et 255 inclus est fourni, il sera interprété comme la valeur ASCII d'un seul caractère (les valeurs négatives se verront ajouter 256 afin d'autoriser les caractères dans l'intervalle ASCII étendue). Tout autre entier sera interprété comme une chaîne de caractères contenant les décimales de l'entier.

Voir aussi

  • ctype_alnum() - Vérifie qu'une chaîne est alphanumérique
  • ctype_print() - Vérifie qu'une chaîne est imprimable
  • ctype_punct() - Vérifie qu'une chaîne contient de la ponctuation


Vérifie qu'une chaîne est en minuscules

  • « ctype_graph
  • ctype_print »
  • PHP Manual
  • Fonctions Ctype
  • Vérifie qu'une chaîne est en minuscules

ctype_lower

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_lower — Vérifie qu'une chaîne est en minuscules

Description

bool ctype_lower ( string $text )

ctype_lower() vérifie si tous les caractères de la chaîne text sont des minuscules.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont en minuscule dans la locale courante.

Exemples

Exemple #1 Exemple avec ctype_lower() (en utilisant les locales courantes)

<?php
$strings = array('aac123', 'qiutoas', 'QASsdks');
foreach ($strings as $testcase) {
  if (ctype_lower($testcase)) {
    echo "La chaîne $testcase ne contient que des minuscules.\n";
  } else {
    echo "La chaîne $testcase ne contient pas que des minuscules.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne aac123 ne contient pas que des minuscules.
La chaîne qiutoas ne contient que des minuscules.
La chaîne QASsdks ne contient pas que des minuscules.

Notes

Note:

Si un entier dans l'intervalle -128 et 255 inclus est fourni, il sera interprété comme la valeur ASCII d'un seul caractère (les valeurs négatives se verront ajouter 256 afin d'autoriser les caractères dans l'intervalle ASCII étendue). Tout autre entier sera interprété comme une chaîne de caractères contenant les décimales de l'entier.

Voir aussi

  • ctype_alpha() - Vérifie qu'une chaîne est alphabétique
  • ctype_upper() - Vérifie qu'une chaîne est en majuscules
  • setlocale() - Modifie les informations de localisation


Vérifie qu'une chaîne est imprimable

  • « ctype_lower
  • ctype_punct »
  • PHP Manual
  • Fonctions Ctype
  • Vérifie qu'une chaîne est imprimable

ctype_print

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_print — Vérifie qu'une chaîne est imprimable

Description

bool ctype_print ( string $text )

ctype_print() vérifie si tous les caractères de la chaîne text vont être imprimables à l'écran (y compris les espaces blancs).

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text seront imprimables (y compris les espaces blancs). Retourne FALSE si text contient des caractères de contrôle ou des caractères qui ne s'afficheront pas ou non pas de fonction de contrôle.

Exemples

Exemple #1 Exemple avec ctype_print()

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
  if (ctype_print($testcase)) {
    echo "La chaîne '$name' ne contient que des caractères imprimables.\n";
  } else {
    echo "La chaîne '$name' ne contient pas que des caractères imprimables.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 'string1' ne contient pas que des caractères imprimables.
La chaîne 'string2' ne contient que des caractères imprimables.
La chaîne 'string3' ne contient que des caractères imprimables.

Notes

Note:

Si un entier dans l'intervalle -128 et 255 inclus est fourni, il sera interprété comme la valeur ASCII d'un seul caractère (les valeurs négatives se verront ajouter 256 afin d'autoriser les caractères dans l'intervalle ASCII étendue). Tout autre entier sera interprété comme une chaîne de caractères contenant les décimales de l'entier.

Voir aussi

  • ctype_cntrl() - Vérifie qu'un caractère est un caractère de contrôle
  • ctype_graph() - Vérifie qu'une chaîne est imprimable
  • ctype_punct() - Vérifie qu'une chaîne contient de la ponctuation


Vérifie qu'une chaîne contient de la ponctuation

  • « ctype_print
  • ctype_space »
  • PHP Manual
  • Fonctions Ctype
  • Vérifie qu'une chaîne contient de la ponctuation

ctype_punct

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_punct — Vérifie qu'une chaîne contient de la ponctuation

Description

bool ctype_punct ( string $text )

ctype_punct() vérifie si tous les caractères de la chaîne text sont imprimables, mais ne sont ni des lettres, ni des chiffres, ni des espaces.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont des caractères de ponctuation, FALSE sinon.

Exemples

Exemple #1 Exemple avec ctype_punct()

<?php
$strings = array('ABasdk!@!$#', '!@ # $', '*&$()');
foreach ($strings as $testcase) {
  if (ctype_punct($testcase)) {
    echo "La chaîne $testcase ne contient que de la ponctuation.\n";
  } else {
    echo "The string $testcase ne contient pas que de la ponctuation.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne ABasdk!@!$# ne contient pas que de la ponctuation.
La chaîne !@ # $ ne contient pas que de la ponctuation.
La chaîne *&$() cne contient que de la ponctuation.

Notes

Note:

Si un entier dans l'intervalle -128 et 255 inclus est fourni, il sera interprété comme la valeur ASCII d'un seul caractère (les valeurs négatives se verront ajouter 256 afin d'autoriser les caractères dans l'intervalle ASCII étendue). Tout autre entier sera interprété comme une chaîne de caractères contenant les décimales de l'entier.

Voir aussi

  • ctype_cntrl() - Vérifie qu'un caractère est un caractère de contrôle
  • ctype_graph() - Vérifie qu'une chaîne est imprimable


Vérifie qu'une chaîne n'est faite que de caractères blancs

  • « ctype_punct
  • ctype_upper »
  • PHP Manual
  • Fonctions Ctype
  • Vérifie qu'une chaîne n'est faite que de caractères blancs

ctype_space

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_space — Vérifie qu'une chaîne n'est faite que de caractères blancs

Description

bool ctype_space ( string $text )

ctype_space() vérifie si tous les caractères de la chaîne text vont créer un espace blanc.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text vont créer des espaces blancs, FALSE sinon. Cela inclut le tabulations, les tabulations verticales, les nouvelles lignes, les retours chariots et les retours à la ligne.

Exemples

Exemple #1 Exemple avec ctype_space()

<?php
$strings = array('string1' => "\n\r\t", 'string2' => "\narf12", 'string3' => '\n\r\t');
foreach ($strings as $name => $testcase) {
  if (ctype_space($testcase)) {
    echo "La chaîne '$name' ne contient que des caractères d'espacements blancs.\n";
  } else {
    echo "La chaîne '$name' ne contient pas que des catactères d'espacements blancs.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 'string1' ne contient que des caractères d'espacements blancs.
La chaîne 'string2' ne contient pas que des catactères d'espacements blancs.
La chaîne 'string3' ne contient pas que des catactères d'espacements blancs.

Notes

Note:

Si un entier dans l'intervalle -128 et 255 inclus est fourni, il sera interprété comme la valeur ASCII d'un seul caractère (les valeurs négatives se verront ajouter 256 afin d'autoriser les caractères dans l'intervalle ASCII étendue). Tout autre entier sera interprété comme une chaîne de caractères contenant les décimales de l'entier.

Voir aussi

  • ctype_cntrl() - Vérifie qu'un caractère est un caractère de contrôle
  • ctype_graph() - Vérifie qu'une chaîne est imprimable
  • ctype_punct() - Vérifie qu'une chaîne contient de la ponctuation


Vérifie qu'une chaîne est en majuscules

  • « ctype_space
  • ctype_xdigit »
  • PHP Manual
  • Fonctions Ctype
  • Vérifie qu'une chaîne est en majuscules

ctype_upper

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_upper — Vérifie qu'une chaîne est en majuscules

Description

bool ctype_upper ( string $text )

ctype_upper() vérifie si tous les caractères de la chaîne text sont des majuscules.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont en majuscules dans la locale courante.

Exemples

Exemple #1 Exemple avec ctype_upper() (en utilisant la locale courante)

<?php
$strings = array('AKLWC139', 'LMNSDO', 'akwSKWsm');
foreach ($strings as $testcase) {
  if (ctype_upper($testcase)) {
    echo "La chaîne $testcase ne contient que des majuscules.\n";
  } else {
    echo "La chaîne $testcase ne contient pas que des majuscules.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne AKLWC139 ne contient pas que des majuscules.
La chaîne LMNSDO ne contient que des majuscules.
La chaîne akwSKWsm ne contient pas que des majuscules.

Notes

Note:

Si un entier dans l'intervalle -128 et 255 inclus est fourni, il sera interprété comme la valeur ASCII d'un seul caractère (les valeurs négatives se verront ajouter 256 afin d'autoriser les caractères dans l'intervalle ASCII étendue). Tout autre entier sera interprété comme une chaîne de caractères contenant les décimales de l'entier.

Voir aussi

  • ctype_alpha() - Vérifie qu'une chaîne est alphabétique
  • ctype_lower() - Vérifie qu'une chaîne est en minuscules
  • setlocale() - Modifie les informations de localisation


Vérifie qu'un caractère représente un nombre hexadécimal

  • « ctype_upper
  • Data Structures »
  • PHP Manual
  • Fonctions Ctype
  • Vérifie qu'un caractère représente un nombre hexadécimal

ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_xdigit — Vérifie qu'un caractère représente un nombre hexadécimal

Description

bool ctype_xdigit ( string $text )

ctype_xdigit() vérifie si tous les caractères de la chaîne text sont des chiffres hexadécimaux.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont des chiffres hexadécimaux, c'est-à-dire un chiffre ou une des lettres [A-Fa-f], FALSE sinon.

Exemples

Exemple #1 Exemple avec ctype_xdigit()

<?php
$strings = array('AB10BC99', 'AR1012', 'ab12bc99');
foreach ($strings as $testcase) {
  if (ctype_xdigit($testcase)) {
    echo "La chaîne $testcase ne contient que des chiffres hexadécimaux.\n";
  } else {
    echo "La chaîne $testcase ne contient pas que des chiffres hexadécimaux.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne AB10BC99 ne contient que des chiffres hexadécimaux.
La chaîne AR1012 ne contient pas que des chiffres hexadécimaux.
La chaîne ab12bc99 ne contient que des chiffres hexadécimaux.

Notes

Note:

Si un entier dans l'intervalle -128 et 255 inclus est fourni, il sera interprété comme la valeur ASCII d'un seul caractère (les valeurs négatives se verront ajouter 256 afin d'autoriser les caractères dans l'intervalle ASCII étendue). Tout autre entier sera interprété comme une chaîne de caractères contenant les décimales de l'entier.

Voir aussi

  • ctype_digit() - Vérifie qu'une chaîne est un entier


Data Structures

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
  • Constantes pré-définies
  • Exemples
  • Collection — The Collection interface
    • Ds\Collection::clear — Removes all values.
    • Ds\Collection::copy — Returns a shallow copy of the collection.
    • Ds\Collection::isEmpty — Returns whether the collection is empty
    • Ds\Collection::toArray — Converts the collection to an tableau.
  • Hashable — The Hashable interface
    • Ds\Hashable::equals — Determines whether an object is equal to the current instance.
    • Ds\Hashable::hash — Returns a scalar value to be used as a hash value.
  • Sequence — The Sequence interface
    • Ds\Sequence::allocate — Allocates enough memory for a required capacity.
    • Ds\Sequence::apply — Updates all values by applying a callback function to each value.
    • Ds\Sequence::capacity — Returns the current capacity.
    • Ds\Sequence::contains — Determines if the sequence contains given values.
    • Ds\Sequence::filter — Creates a new sequence using a callable to determine which values to include.
    • Ds\Sequence::find — Attempts to find a value's index.
    • Ds\Sequence::first — Returns the first value in the sequence.
    • Ds\Sequence::get — Returns the value at a given index.
    • Ds\Sequence::insert — Inserts values at a given index.
    • Ds\Sequence::join — Joins all values together as a string.
    • Ds\Sequence::last — Returns the last value.
    • Ds\Sequence::map — Returns the result of applying a callback to each value.
    • Ds\Sequence::merge — Returns the result of adding all given values to the sequence.
    • Ds\Sequence::pop — Removes and returns the last value.
    • Ds\Sequence::push — Adds values to the end of the sequence.
    • Ds\Sequence::reduce — Reduces the sequence to a single value using a callback function.
    • Ds\Sequence::remove — Removes and returns a value by index.
    • Ds\Sequence::reverse — Reverses the sequence in-place.
    • Ds\Sequence::reversed — Returns a reversed copy.
    • Ds\Sequence::rotate — Rotates the sequence by a given number of rotations.
    • Ds\Sequence::set — Updates a value at a given index.
    • Ds\Sequence::shift — Removes and returns the first value.
    • Ds\Sequence::slice — Returns a sub-sequence of a given range.
    • Ds\Sequence::sort — Sorts the sequence in-place.
    • Ds\Sequence::sorted — Returns a sorted copy.
    • Ds\Sequence::sum — Returns the sum of all values in the sequence.
    • Ds\Sequence::unshift — Adds values to the front of the sequence.
  • Vector — The Vector class
    • Ds\Vector::allocate — Allocates enough memory for a required capacity.
    • Ds\Vector::apply — Updates all values by applying a callback function to each value.
    • Ds\Vector::capacity — Returns the current capacity.
    • Ds\Vector::clear — Removes all values.
    • Ds\Vector::__construct — Creates a new instance.
    • Ds\Vector::contains — Determines if the vector contains given values.
    • Ds\Vector::copy — Returns a shallow copy of the vector.
    • Ds\Vector::count — Returns the number of values in the collection.
    • Ds\Vector::filter — Creates a new vector using a callable to determine which values to include.
    • Ds\Vector::find — Attempts to find a value's index.
    • Ds\Vector::first — Returns the first value in the vector.
    • Ds\Vector::get — Returns the value at a given index.
    • Ds\Vector::insert — Inserts values at a given index.
    • Ds\Vector::isEmpty — Returns whether the vector is empty
    • Ds\Vector::join — Joins all values together as a string.
    • Ds\Vector::jsonSerialize — Returns a representation that can be converted to JSON.
    • Ds\Vector::last — Returns the last value.
    • Ds\Vector::map — Returns the result of applying a callback to each value.
    • Ds\Vector::merge — Returns the result of adding all given values to the vector.
    • Ds\Vector::pop — Removes and returns the last value.
    • Ds\Vector::push — Adds values to the end of the vector.
    • Ds\Vector::reduce — Reduces the vector to a single value using a callback function.
    • Ds\Vector::remove — Removes and returns a value by index.
    • Ds\Vector::reverse — Reverses the vector in-place.
    • Ds\Vector::reversed — Returns a reversed copy.
    • Ds\Vector::rotate — Rotates the vector by a given number of rotations.
    • Ds\Vector::set — Updates a value at a given index.
    • Ds\Vector::shift — Removes and returns the first value.
    • Ds\Vector::slice — Returns a sub-vector of a given range.
    • Ds\Vector::sort — Sorts the vector in-place.
    • Ds\Vector::sorted — Returns a sorted copy.
    • Ds\Vector::sum — Returns the sum of all values in the vector.
    • Ds\Vector::toArray — Converts the vector to an tableau.
    • Ds\Vector::unshift — Adds values to the front of the vector.
  • Deque — The Deque class
    • Ds\Deque::allocate — Allocates enough memory for a required capacity.
    • Ds\Deque::apply — Updates all values by applying a callback function to each value.
    • Ds\Deque::capacity — Returns the current capacity.
    • Ds\Deque::clear — Removes all values from the deque.
    • Ds\Deque::__construct — Creates a new instance.
    • Ds\Deque::contains — Determines if the deque contains given values.
    • Ds\Deque::copy — Returns a shallow copy of the deque.
    • Ds\Deque::count — Returns the number of values in the collection.
    • Ds\Deque::filter — Creates a new deque using a callable to determine which values to include.
    • Ds\Deque::find — Attempts to find a value's index.
    • Ds\Deque::first — Returns the first value in the deque.
    • Ds\Deque::get — Returns the value at a given index.
    • Ds\Deque::insert — Inserts values at a given index.
    • Ds\Deque::isEmpty — Returns whether the deque is empty
    • Ds\Deque::join — Joins all values together as a string.
    • Ds\Deque::jsonSerialize — Returns a representation that can be converted to JSON.
    • Ds\Deque::last — Returns the last value.
    • Ds\Deque::map — Returns the result of applying a callback to each value.
    • Ds\Deque::merge — Returns the result of adding all given values to the deque.
    • Ds\Deque::pop — Removes and returns the last value.
    • Ds\Deque::push — Adds values to the end of the deque.
    • Ds\Deque::reduce — Reduces the deque to a single value using a callback function.
    • Ds\Deque::remove — Removes and returns a value by index.
    • Ds\Deque::reverse — Reverses the deque in-place.
    • Ds\Deque::reversed — Returns a reversed copy.
    • Ds\Deque::rotate — Rotates the deque by a given number of rotations.
    • Ds\Deque::set — Updates a value at a given index.
    • Ds\Deque::shift — Removes and returns the first value.
    • Ds\Deque::slice — Returns a sub-deque of a given range.
    • Ds\Deque::sort — Sorts the deque in-place.
    • Ds\Deque::sorted — Returns a sorted copy.
    • Ds\Deque::sum — Returns the sum of all values in the deque.
    • Ds\Deque::toArray — Converts the deque to an tableau.
    • Ds\Deque::unshift — Adds values to the front of the deque.
  • Map — The Map class
    • Ds\Map::allocate — Allocates enough memory for a required capacity.
    • Ds\Map::apply — Updates all values by applying a callback function to each value.
    • Ds\Map::capacity — Returns the current capacity.
    • Ds\Map::clear — Removes all values.
    • Ds\Map::__construct — Creates a new instance.
    • Ds\Map::copy — Returns a shallow copy of the map.
    • Ds\Map::count — Returns the number of values in the map.
    • Ds\Map::diff — Creates a new map using keys that aren't in another map.
    • Ds\Map::filter — Creates a new map using a callable to determine which pairs to include.
    • Ds\Map::first — Returns the first pair in the map.
    • Ds\Map::get — Returns the value for a given key.
    • Ds\Map::hasKey — Determines whether the map contains a given key.
    • Ds\Map::hasValue — Determines whether the map contains a given value.
    • Ds\Map::intersect — Creates a new map by intersecting keys with another map.
    • Ds\Map::isEmpty — Returns whether the map is empty
    • Ds\Map::jsonSerialize — Returns a representation that can be converted to JSON.
    • Ds\Map::keys — Returns a set of the map's keys.
    • Ds\Map::ksort — Sorts the map in-place by key.
    • Ds\Map::ksorted — Returns a copy, sorted by key.
    • Ds\Map::last — Returns the last pair of the map.
    • Ds\Map::map — Returns the result of applying a callback to each value.
    • Ds\Map::merge — Returns the result of adding all given associations.
    • Ds\Map::pairs — Returns a sequence containing all the pairs of the map.
    • Ds\Map::put — Associates a key with a value.
    • Ds\Map::putAll — Associates all key-value pairs of a traversable object or array.
    • Ds\Map::reduce — Reduces the map to a single value using a callback function.
    • Ds\Map::remove — Removes and returns a value by key.
    • Ds\Map::reverse — Reverses the map in-place.
    • Ds\Map::reversed — Returns a reversed copy.
    • Ds\Map::skip — Returns the pair at a given positional index.
    • Ds\Map::slice — Returns a subset of the map defined by a starting index and length.
    • Ds\Map::sort — Sorts the map in-place by value.
    • Ds\Map::sorted — Returns a copy, sorted by value.
    • Ds\Map::sum — Returns the sum of all values in the map.
    • Ds\Map::toArray — Converts the map to an tableau.
    • Ds\Map::union — Creates a new map using values from the current instance and another map.
    • Ds\Map::values — Returns a sequence of the map's values.
    • Ds\Map::xor — Creates a new map using keys of either the current instance or of another map, but not of both.
  • Pair — The Pair class
    • Ds\Pair::clear — Removes all values.
    • Ds\Pair::__construct — Creates a new instance.
    • Ds\Pair::copy — Returns a shallow copy of the pair.
    • Ds\Pair::isEmpty — Returns whether the pair is empty
    • Ds\Pair::jsonSerialize — Returns a representation that can be converted to JSON.
    • Ds\Pair::toArray — Converts the pair to an tableau.
  • Set — The Set class
    • Ds\Set::add — Adds values to the set.
    • Ds\Set::allocate — Allocates enough memory for a required capacity.
    • Ds\Set::capacity — Returns the current capacity.
    • Ds\Set::clear — Removes all values.
    • Ds\Set::__construct — Creates a new instance.
    • Ds\Set::contains — Determines if the set contains all values.
    • Ds\Set::copy — Returns a shallow copy of the set.
    • Ds\Set::count — Returns the number of values in the set.
    • Ds\Set::diff — Creates a new set using values that aren't in another set.
    • Ds\Set::filter — Creates a new set using a callable to determine which values to include.
    • Ds\Set::first — Returns the first value in the set.
    • Ds\Set::get — Returns the value at a given index.
    • Ds\Set::intersect — Creates a new set by intersecting values with another set.
    • Ds\Set::isEmpty — Returns whether the set is empty
    • Ds\Set::join — Joins all values together as a string.
    • Ds\Set::jsonSerialize — Returns a representation that can be converted to JSON.
    • Ds\Set::last — Returns the last value in the set.
    • Ds\Set::merge — Returns the result of adding all given values to the set.
    • Ds\Set::reduce — Reduces the set to a single value using a callback function.
    • Ds\Set::remove — Removes all given values from the set.
    • Ds\Set::reverse — Reverses the set in-place.
    • Ds\Set::reversed — Returns a reversed copy.
    • Ds\Set::slice — Returns a sub-set of a given range.
    • Ds\Set::sort — Sorts the set in-place.
    • Ds\Set::sorted — Returns a sorted copy.
    • Ds\Set::sum — Returns the sum of all values in the set.
    • Ds\Set::toArray — Converts the set to an tableau.
    • Ds\Set::union — Creates a new set using values from the current instance and another set.
    • Ds\Set::xor — Creates a new set using values in either the current instance or in another set, but not in both.
  • Stack — The Stack class
    • Ds\Stack::allocate — Allocates enough memory for a required capacity.
    • Ds\Stack::capacity — Returns the current capacity.
    • Ds\Stack::clear — Removes all values.
    • Ds\Stack::__construct — Creates a new instance.
    • Ds\Stack::copy — Returns a shallow copy of the stack.
    • Ds\Stack::count — Returns the number of values in the stack.
    • Ds\Stack::isEmpty — Returns whether the stack is empty
    • Ds\Stack::jsonSerialize — Returns a representation that can be converted to JSON.
    • Ds\Stack::peek — Returns the value at the top of the stack.
    • Ds\Stack::pop — Removes and returns the value at the top of the stack.
    • Ds\Stack::push — Pushes values onto the stack.
    • Ds\Stack::toArray — Converts the stack to an tableau.
  • Queue — The Queue class
    • Ds\Queue::allocate — Allocates enough memory for a required capacity.
    • Ds\Queue::capacity — Returns the current capacity.
    • Ds\Queue::clear — Removes all values.
    • Ds\Queue::__construct — Creates a new instance.
    • Ds\Queue::copy — Returns a shallow copy of the queue.
    • Ds\Queue::count — Returns the number of values in the queue.
    • Ds\Queue::isEmpty — Returns whether the queue is empty
    • Ds\Queue::jsonSerialize — Returns a representation that can be converted to JSON.
    • Ds\Queue::peek — Returns the value at the front of the queue.
    • Ds\Queue::pop — Removes and returns the value at the front of the queue.
    • Ds\Queue::push — Pushes values into the queue.
    • Ds\Queue::toArray — Converts the queue to an tableau.
  • PriorityQueue — The PriorityQueue class
    • Ds\PriorityQueue::allocate — Allocates enough memory for a required capacity.
    • Ds\PriorityQueue::capacity — Returns the current capacity.
    • Ds\PriorityQueue::clear — Removes all values.
    • Ds\PriorityQueue::__construct — Creates a new instance.
    • Ds\PriorityQueue::copy — Returns a shallow copy of the queue.
    • Ds\PriorityQueue::count — Returns the number of values in the queue.
    • Ds\PriorityQueue::isEmpty — Returns whether the queue is empty
    • Ds\PriorityQueue::jsonSerialize — Returns a representation that can be converted to JSON.
    • Ds\PriorityQueue::peek — Returns the value at the front of the queue.
    • Ds\PriorityQueue::pop — Removes and returns the value with the highest priority.
    • Ds\PriorityQueue::push — Pushes values into the queue.
    • Ds\PriorityQueue::toArray — Converts the queue to an tableau.


Introduction

Efficient data structures for PHP 7, provided as an alternative to the tableau.

See » this blog post for benchmarks, discussion and frequently asked questions.


  • « Introduction
  • Pré-requis »
  • PHP Manual
  • Data Structures
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • Installation


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

PHP 7 is required by both the extension and the compatibility polyfill.


Installation

The easiest way to install the extension is via » PECL

pecl install ds

You can also build directly from source:

# Dependencies you might need to install
# sudo apt-get install git build-essential php7.0-dev

git clone https://github.com/php-ds/extension "php-ds"
cd php-ds

# Build and install the extension
phpize
./configure
make
make install

# Clean up the build files
make clean
phpize --clean

If you're on Windows, you can » download a compiled .dll on PECL

Note:

If you're using Composer, it's highly recommended that you include » php-ds/php-ds in your project so that your code is still functional in an environment where the extension is not installed. The extension will take priority if installed.


  • « Installation
  • Exemples »
  • PHP Manual
  • Data Structures
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Exemples

Exemple #1 Vector

<?php

$vector = new \Ds\Vector();

$vector->push('a');
$vector->push('b', 'c');

$vector[] = 'd';

print_r($vector);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)

Exemple #2 Map

<?php

$map = new \Ds\Map();

$map->put('a', 1);
$map->put('b', 2);

$map['c'] = 3;

print_r($map);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


The Collection interface

(No version information available, might only be in Git)

Introduction

Collection is the base interface which covers functionality common to all the data structures in this library. It guarantees that all structures are traversable, countable, and can be converted to json using json_encode().

Sommaire de l'Interface

Ds\Collection implements Traversable , Countable , JsonSerializable {
/* Méthodes */
abstract public void clear ( void )
abstract public Ds\Collection copy ( void )
abstract public bool isEmpty ( void )
abstract public array toArray ( void )
}

Sommaire

  • Ds\Collection::clear — Removes all values.
  • Ds\Collection::copy — Returns a shallow copy of the collection.
  • Ds\Collection::isEmpty — Returns whether the collection is empty
  • Ds\Collection::toArray — Converts the collection to an tableau.


Removes all values.

  • « Collection
  • Ds\Collection::copy »
  • PHP Manual
  • Collection
  • Removes all values.

Ds\Collection::clear

(PECL ds >= 1.0.0)

Ds\Collection::clear — Removes all values.

Description

abstract public void Ds\Collection::clear ( void )

Removes all values from the collection.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Collection::clear() example

<?php
$collection = new \Ds\Vector([1, 2, 3]);
print_r($collection);

$collection->clear();
print_r($collection);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
)


Returns a shallow copy of the collection.

  • « Ds\Collection::clear
  • Ds\Collection::isEmpty »
  • PHP Manual
  • Collection
  • Returns a shallow copy of the collection.

Ds\Collection::copy

(PECL ds >= 1.0.0)

Ds\Collection::copy — Returns a shallow copy of the collection.

Description

abstract public Ds\Collection Ds\Collection::copy ( void )

Returns a shallow copy of the collection.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a shallow copy of the collection.

Exemples

Exemple #1 Ds\Collection::copy() example

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = $a->copy();

$b->push(4);

print_r($a);
print_r($b);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Returns whether the collection is empty

  • « Ds\Collection::copy
  • Ds\Collection::toArray »
  • PHP Manual
  • Collection
  • Returns whether the collection is empty

Ds\Collection::isEmpty

(PECL ds >= 1.0.0)

Ds\Collection::isEmpty — Returns whether the collection is empty

Description

abstract public bool Ds\Collection::isEmpty ( void )

Returns whether the collection is empty.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if the collection is empty, FALSE otherwise.

Exemples

Exemple #1 Ds\Collection::isEmpty() example

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = new \Ds\Vector();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)


Converts the collection to an tableau.

  • « Ds\Collection::isEmpty
  • Hashable »
  • PHP Manual
  • Collection
  • Converts the collection to an tableau.

Ds\Collection::toArray

(PECL ds >= 1.0.0)

Ds\Collection::toArray — Converts the collection to an tableau.

Description

abstract public array Ds\Collection::toArray ( void )

Converts the collection to an tableau.

Note:

Casting to an tableau is not supported yet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An tableau containing all the values in the same order as the collection.

Exemples

Exemple #1 Ds\Collection::toArray() example

<?php
$collection = new \Ds\Vector([1, 2, 3]);

var_dump($collection->toArray());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


The Hashable interface

(No version information available, might only be in Git)

Introduction

Hashable is an interface which allows objects to be used as keys. It’s an alternative to spl_object_hash(), which determines an object’s hash based on its handle: this means that two objects that are considered equal by an implicit definition would not treated as equal because they are not the same instance.

hash() is used to return a scalar value to be used as the object's hash value, which determines where it goes in the hash table. While this value does not have to be unique, objects which are equal must have the same hash value.

equals() is used to determine if two objects are equal. It's guaranteed that the comparing object will be an instance of the same class as the subject.

Sommaire de l'Interface

Ds\Hashable {
/* Méthodes */
abstract public bool equals ( object $obj )
abstract public mixed hash ( void )
}

Sommaire

  • Ds\Hashable::equals — Determines whether an object is equal to the current instance.
  • Ds\Hashable::hash — Returns a scalar value to be used as a hash value.


Determines whether an object is equal to the current instance.

  • « Hashable
  • Ds\Hashable::hash »
  • PHP Manual
  • Hashable
  • Determines whether an object is equal to the current instance.

Ds\Hashable::equals

(PECL ds >= 1.0.0)

Ds\Hashable::equals — Determines whether an object is equal to the current instance.

Description

abstract public bool Ds\Hashable::equals ( object $obj )

Determines whether another object is equal to the current instance.

This method allows objects to be used as keys in structures such as Ds\Map and Ds\Set, or any other lookup structure that honors this interface.

Note:

It's guaranteed that obj is an instance of the same class.

Attention

It's important that objects which are equal also have the same hash value. See Ds\Hashable::hash().

Liste de paramètres

obj

The object to compare the current instance to, which is always an instance of the same class.

Valeurs de retour

TRUE if equal, FALSE otherwise.


Returns a scalar value to be used as a hash value.

  • « Ds\Hashable::equals
  • Sequence »
  • PHP Manual
  • Hashable
  • Returns a scalar value to be used as a hash value.

Ds\Hashable::hash

(PECL ds >= 1.0.0)

Ds\Hashable::hash — Returns a scalar value to be used as a hash value.

Description

abstract public mixed Ds\Hashable::hash ( void )

Returns a scalar value to be used as the hash value of the objects.

While the hash value does not define equality, all objects that are equal according to Ds\Hashable::equals() must have the same hash value. Hash values of equal objects don't have to be unique, for example you could just return TRUE for all objects and nothing would break - the only implication would be that hash tables then turn into linked lists because all your objects will be hashed to the same bucket. It's therefore very important that you pick a good hash value, such as an ID or email address.

This method allows objects to be used as keys in structures such as Ds\Map and Ds\Set, or any other lookup structure that honors this interface.

Attention

Do not pick a value that might change within the object, such as a public property. Hash table lookups would fail because the hash has changed.

Attention

All objects that are equal must have the same hash value.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A scalar value to be used as this object's hash value.

Exemples

Exemple #1 Ds\Hashable::hash() example

<?php
class HashableObject implements \Ds\Hashable
{
    private $name;
    private $email;

    public function __construct($name, $email)
    {
        $this->name  = $name;
        $this->email = $email;
    }

    /**
     * Should return the same value for all equal objects, but doesn't have to
     * be unique. This value will not be used to determine equality.
     */
    public function hash()
    {
        return $this->email;
    }

    /**
     * This determines equality, usually during a hash table lookup to determine
     * if the bucket's key matches the lookup key. The hash has to be equal if
     * the objects are equal, otherwise this determination wouldn't be reached.
     */
    public function equals($obj): bool
    {
        return $this->name  === $obj->name
            && $this->email === $obj->email;
    }
}
?>


The Sequence interface

(No version information available, might only be in Git)

Introduction

A Sequence describes the behaviour of values arranged in a single, linear dimension. Some languages refer to this as a "List". It’s similar to an array that uses incremental integer keys, with the exception of a few characteristics:

  • Values will always be indexed as [0, 1, 2, …, size - 1].
  • Only allowed to access values by index in the range [0, size - 1].

Use cases:

  • Wherever you would use an array as a list (not concerned with keys).
  • A more efficient alternative to SplDoublyLinkedList and SplFixedArray.

Sommaire de l'Interface

Ds\Sequence implements Ds\Collection {
/* Méthodes */
abstract public void allocate ( int $capacity )
abstract public void apply ( callable $callback )
abstract public int capacity ( void )
abstract public bool contains ([ mixed $...values ] )
abstract public Ds\Sequence filter ([ callable $callback ] )
abstract public mixed find ( mixed $value )
abstract public mixed first ( void )
abstract public mixed get ( int $index )
abstract public void insert ( int $index [, mixed $...values ] )
abstract public string join ([ string $glue ] )
abstract public mixed last ( void )
abstract public Ds\Sequence map ( callable $callback )
abstract public Ds\Sequence merge ( mixed $values )
abstract public mixed pop ( void )
abstract public void push ([ mixed $...values ] )
abstract public mixed reduce ( callable $callback [, mixed $initial ] )
abstract public mixed remove ( int $index )
abstract public void reverse ( void )
abstract public Ds\Sequence reversed ( void )
abstract public void rotate ( int $rotations )
abstract public void set ( int $index , mixed $value )
abstract public mixed shift ( void )
abstract public Ds\Sequence slice ( int $index [, int $length ] )
abstract public void sort ([ callable $comparator ] )
abstract public Ds\Sequence sorted ([ callable $comparator ] )
abstract public number sum ( void )
abstract public void unshift ([ mixed $values ] )
}

Sommaire

  • Ds\Sequence::allocate — Allocates enough memory for a required capacity.
  • Ds\Sequence::apply — Updates all values by applying a callback function to each value.
  • Ds\Sequence::capacity — Returns the current capacity.
  • Ds\Sequence::contains — Determines if the sequence contains given values.
  • Ds\Sequence::filter — Creates a new sequence using a callable to determine which values to include.
  • Ds\Sequence::find — Attempts to find a value's index.
  • Ds\Sequence::first — Returns the first value in the sequence.
  • Ds\Sequence::get — Returns the value at a given index.
  • Ds\Sequence::insert — Inserts values at a given index.
  • Ds\Sequence::join — Joins all values together as a string.
  • Ds\Sequence::last — Returns the last value.
  • Ds\Sequence::map — Returns the result of applying a callback to each value.
  • Ds\Sequence::merge — Returns the result of adding all given values to the sequence.
  • Ds\Sequence::pop — Removes and returns the last value.
  • Ds\Sequence::push — Adds values to the end of the sequence.
  • Ds\Sequence::reduce — Reduces the sequence to a single value using a callback function.
  • Ds\Sequence::remove — Removes and returns a value by index.
  • Ds\Sequence::reverse — Reverses the sequence in-place.
  • Ds\Sequence::reversed — Returns a reversed copy.
  • Ds\Sequence::rotate — Rotates the sequence by a given number of rotations.
  • Ds\Sequence::set — Updates a value at a given index.
  • Ds\Sequence::shift — Removes and returns the first value.
  • Ds\Sequence::slice — Returns a sub-sequence of a given range.
  • Ds\Sequence::sort — Sorts the sequence in-place.
  • Ds\Sequence::sorted — Returns a sorted copy.
  • Ds\Sequence::sum — Returns the sum of all values in the sequence.
  • Ds\Sequence::unshift — Adds values to the front of the sequence.


Allocates enough memory for a required capacity.

  • « Sequence
  • Ds\Sequence::apply »
  • PHP Manual
  • Sequence
  • Allocates enough memory for a required capacity.

Ds\Sequence::allocate

(PECL ds >= 1.0.0)

Ds\Sequence::allocate — Allocates enough memory for a required capacity.

Description

abstract public void Ds\Sequence::allocate ( int $capacity )

Ensures that enough memory is allocated for a required capacity. This removes the need to reallocate the internal as values are added.

Liste de paramètres

capacity

The number of values for which capacity should be allocated.

Note:

Capacity will stay the same if this value is less than or equal to the current capacity.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Sequence::allocate() example

<?php
$sequence = new \Ds\Vector();
var_dump($sequence->capacity());

$vector->allocate(100);
var_dump($sequence->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(10)
int(100)


Updates all values by applying a callback function to each value.

  • « Ds\Sequence::allocate
  • Ds\Sequence::capacity »
  • PHP Manual
  • Sequence
  • Updates all values by applying a callback function to each value.

Ds\Sequence::apply

(PECL ds >= 1.0.0)

Ds\Sequence::apply — Updates all values by applying a callback function to each value.

Description

abstract public void Ds\Sequence::apply ( callable $callback )

Updates all values by applying a callback function to each value in the sequence.

Liste de paramètres

callback

mixed callback ( mixed $value )

A callable to apply to each value in the sequence.

The callback should return what the value should be replaced by.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Sequence::apply() example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
$sequence->apply(function($value) { return $value * 2; });

print_r($sequence);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Returns the current capacity.

  • « Ds\Sequence::apply
  • Ds\Sequence::contains »
  • PHP Manual
  • Sequence
  • Returns the current capacity.

Ds\Sequence::capacity

(PECL ds >= 1.0.0)

Ds\Sequence::capacity — Returns the current capacity.

Description

abstract public int Ds\Sequence::capacity ( void )

Returns the current capacity.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current capacity.

Exemples

Exemple #1 Ds\Sequence::capacity() example

<?php
$sequence = new \Ds\Vector();
var_dump($sequence->capacity());

$sequence->push(...range(1, 50));
var_dump($sequence->capacity());

$sequence[] = "a";
var_dump($sequence->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(10)
int(50)
int(75)


Determines if the sequence contains given values.

  • « Ds\Sequence::capacity
  • Ds\Sequence::filter »
  • PHP Manual
  • Sequence
  • Determines if the sequence contains given values.

Ds\Sequence::contains

(PECL ds >= 1.0.0)

Ds\Sequence::contains — Determines if the sequence contains given values.

Description

abstract public bool Ds\Sequence::contains ([ mixed $...values ] )

Determines if the sequence contains all values.

Liste de paramètres

values

Values to check.

Valeurs de retour

FALSE if any of the provided values are not in the sequence, TRUE otherwise.

Exemples

Exemple #1 Ds\Sequence::contains() example

<?php
$sequence = new \Ds\Vector(['a', 'b', 'c', 1, 2, 3]);

var_dump($sequence->contains('a'));                // true
var_dump($sequence->contains('a', 'b'));           // true
var_dump($sequence->contains('c', 'd'));           // false

var_dump($sequence->contains(...['c', 'b', 'a'])); // true

// Always strict
var_dump($sequence->contains(1));                  // true
var_dump($sequence->contains('1'));                // false

var_dump($sequece->contains(...[]));               // true
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Creates a new sequence using a callable to determine which values to include.

  • « Ds\Sequence::contains
  • Ds\Sequence::find »
  • PHP Manual
  • Sequence
  • Creates a new sequence using a callable to determine which values to include.

Ds\Sequence::filter

(PECL ds >= 1.0.0)

Ds\Sequence::filter — Creates a new sequence using a callable to determine which values to include.

Description

abstract public Ds\Sequence Ds\Sequence::filter ([ callable $callback ] )

Creates a new sequence using a callable to determine which values to include.

Liste de paramètres

callback

bool callback ( mixed $value )

Optional callable which returns TRUE if the value should be included, FALSE otherwise.

If a callback is not provided, only values which are TRUE (see converting to boolean) will be included.

Valeurs de retour

A new sequence containing all the values for which either the callback returned TRUE, or all values that convert to TRUE if a callback was not provided.

Exemples

Exemple #1 Ds\Sequence::filter() example using callback function

<?php
$sequence = new \Ds\Vector([1, 2, 3, 4, 5]);

var_dump($sequence->filter(function($value) {
    return $value % 2 == 0;
}));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Vector)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Exemple #2 Ds\Sequence::filter() example without a callback function

<?php
$sequence = new \Ds\Vector([0, 1, 'a', true, false]);

var_dump($sequence->filter());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Attempts to find a value's index.

  • « Ds\Sequence::filter
  • Ds\Sequence::first »
  • PHP Manual
  • Sequence
  • Attempts to find a value's index.

Ds\Sequence::find

(PECL ds >= 1.0.0)

Ds\Sequence::find — Attempts to find a value's index.

Description

abstract public mixed Ds\Sequence::find ( mixed $value )

Returns the index of the value, or FALSE if not found.

Liste de paramètres

value

The value to find.

Valeurs de retour

The index of the value, or FALSE if not found.

Note:

Values will be compared by value and by type.

Exemples

Exemple #1 Ds\Sequence::find() example

<?php
$sequence = new \Ds\Vector(["a", 1, true]);

var_dump($sequence->find("a")); // 0
var_dump($sequence->find("b")); // false
var_dump($sequence->find("1")); // false
var_dump($sequence->find(1));   // 1
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
bool(false)
bool(false)
int(1)


Returns the first value in the sequence.

  • « Ds\Sequence::find
  • Ds\Sequence::get »
  • PHP Manual
  • Sequence
  • Returns the first value in the sequence.

Ds\Sequence::first

(PECL ds >= 1.0.0)

Ds\Sequence::first — Returns the first value in the sequence.

Description

abstract public mixed Ds\Sequence::first ( void )

Returns the first value in the sequence.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The first value in the sequence.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Sequence::first() example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->first());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)


Returns the value at a given index.

  • « Ds\Sequence::first
  • Ds\Sequence::insert »
  • PHP Manual
  • Sequence
  • Returns the value at a given index.

Ds\Sequence::get

(PECL ds >= 1.0.0)

Ds\Sequence::get — Returns the value at a given index.

Description

abstract public mixed Ds\Sequence::get ( int $index )

Returns the value at a given index.

Liste de paramètres

index

The index to access, starting at 0.

Valeurs de retour

The value at the requested index.

Erreurs / Exceptions

OutOfRangeException if the index is not valid.

Exemples

Exemple #1 Ds\Sequence::get() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->get(0));
var_dump($sequence->get(1));
var_dump($sequence->get(2));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"
string(1) "b"
string(1) "c"

Exemple #2 Ds\Sequence::get() example using array syntax

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence[0]);
var_dump($sequence[1]);
var_dump($sequence[2]);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Inserts values at a given index.

  • « Ds\Sequence::get
  • Ds\Sequence::join »
  • PHP Manual
  • Sequence
  • Inserts values at a given index.

Ds\Sequence::insert

(PECL ds >= 1.0.0)

Ds\Sequence::insert — Inserts values at a given index.

Description

abstract public void Ds\Sequence::insert ( int $index [, mixed $...values ] )

Inserts values into the sequence at a given index.

Liste de paramètres

index

The index at which to insert. 0 <= index <= count

Note:

You can insert at the index equal to the number of values.

values

The value or values to insert.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

OutOfRangeException if the index is not valid.

Exemples

Exemple #1 Ds\Sequence::insert() example

<?php
$sequence = new \Ds\Vector();

$sequence->insert(0, "e");             // [e]
$sequence->insert(1, "f");             // [e, f]
$sequence->insert(2, "g");             // [e, f, g]
$sequence->insert(0, "a", "b");        // [a, b, e, f, g]
$sequence->insert(2, ...["c", "d"]);   // [a, b, c, d, e, f, g]

var_dump($sequence);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Vector)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Joins all values together as a string.

  • « Ds\Sequence::insert
  • Ds\Sequence::last »
  • PHP Manual
  • Sequence
  • Joins all values together as a string.

Ds\Sequence::join

(PECL ds >= 1.0.0)

Ds\Sequence::join — Joins all values together as a string.

Description

abstract public string Ds\Sequence::join ([ string $glue ] )

Joins all values together as a string using an optional separator between each value.

Liste de paramètres

glue

An optional string to separate each value.

Valeurs de retour

All values of the sequence joined together as a string.

Exemples

Exemple #1 Ds\Sequence::join() example using a separator string

<?php
$sequence = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($sequence->join("|"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(11) "a|b|c|1|2|3"

Exemple #2 Ds\Sequence::join() example without a separator string

<?php
$sequence = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($sequence->join());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(11) "abc123"


Returns the last value.

  • « Ds\Sequence::join
  • Ds\Sequence::map »
  • PHP Manual
  • Sequence
  • Returns the last value.

Ds\Sequence::last

(PECL ds >= 1.0.0)

Ds\Sequence::last — Returns the last value.

Description

abstract public mixed Ds\Sequence::last ( void )

Returns the last value in the sequence.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The last value in the sequence.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Sequence::last() example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->last());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)


Returns the result of applying a callback to each value.

  • « Ds\Sequence::last
  • Ds\Sequence::merge »
  • PHP Manual
  • Sequence
  • Returns the result of applying a callback to each value.

Ds\Sequence::map

(PECL ds >= 1.0.0)

Ds\Sequence::map — Returns the result of applying a callback to each value.

Description

abstract public Ds\Sequence Ds\Sequence::map ( callable $callback )

Returns the result of applying a callback function to each value in the sequence.

Liste de paramètres

callback

mixed callback ( mixed $value )

A callable to apply to each value in the sequence.

The callable should return what the new value will be in the new sequence.

Valeurs de retour

The result of applying a callback to each value in the sequence.

Note:

The values of the current instance won't be affected.

Exemples

Exemple #1 Ds\Sequence::map() example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

print_r($sequence->map(function($value) { return $value * 2; }));
print_r($sequence);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Returns the result of adding all given values to the sequence.

  • « Ds\Sequence::map
  • Ds\Sequence::pop »
  • PHP Manual
  • Sequence
  • Returns the result of adding all given values to the sequence.

Ds\Sequence::merge

(PECL ds >= 1.0.0)

Ds\Sequence::merge — Returns the result of adding all given values to the sequence.

Description

abstract public Ds\Sequence Ds\Sequence::merge ( mixed $values )

Returns the result of adding all given values to the sequence.

Liste de paramètres

values

A traversable object or an tableau.

Valeurs de retour

The result of adding all given values to the sequence, effectively the same as adding the values to a copy, then returning that copy.

Note:

The current instance won't be affected.

Exemples

Exemple #1 Ds\Sequence::merge() example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->merge([4, 5, 6]));
var_dump($sequence);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Vector)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Vector)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Removes and returns the last value.

  • « Ds\Sequence::merge
  • Ds\Sequence::push »
  • PHP Manual
  • Sequence
  • Removes and returns the last value.

Ds\Sequence::pop

(PECL ds >= 1.0.0)

Ds\Sequence::pop — Removes and returns the last value.

Description

abstract public mixed Ds\Sequence::pop ( void )

Removes and returns the last value.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The removed last value.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Sequence::pop() example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->pop());
var_dump($sequence->pop());
var_dump($sequence->pop());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)
int(2)
int(1)


Adds values to the end of the sequence.

  • « Ds\Sequence::pop
  • Ds\Sequence::reduce »
  • PHP Manual
  • Sequence
  • Adds values to the end of the sequence.

Ds\Sequence::push

(PECL ds >= 1.0.0)

Ds\Sequence::push — Adds values to the end of the sequence.

Description

abstract public void Ds\Sequence::push ([ mixed $...values ] )

Adds values to the end of the sequence.

Liste de paramètres

values

The values to add.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Sequence::push() example

<?php
$sequence = new \Ds\Vector();

$sequence->push("a");
$sequence->push("b");
$sequence->push("c", "d");
$sequence->push(...["e", "f"]);

print_r($sequence);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Reduces the sequence to a single value using a callback function.

  • « Ds\Sequence::push
  • Ds\Sequence::remove »
  • PHP Manual
  • Sequence
  • Reduces the sequence to a single value using a callback function.

Ds\Sequence::reduce

(PECL ds >= 1.0.0)

Ds\Sequence::reduce — Reduces the sequence to a single value using a callback function.

Description

abstract public mixed Ds\Sequence::reduce ( callable $callback [, mixed $initial ] )

Reduces the sequence to a single value using a callback function.

Liste de paramètres

callback
mixed callback ( mixed $carry , mixed $value )
carry

The return value of the previous callback, or initial if it's the first iteration.

value

The value of the current iteration.

initial

The initial value of the carry value. Can be NULL.

Valeurs de retour

The return value of the final callback.

Exemples

Exemple #1 Ds\Sequence::reduce() with initial value example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($sequence->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(30)

Exemple #2 Ds\Sequence::reduce() without an initial value example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(21)


Removes and returns a value by index.

  • « Ds\Sequence::reduce
  • Ds\Sequence::reverse »
  • PHP Manual
  • Sequence
  • Removes and returns a value by index.

Ds\Sequence::remove

(PECL ds >= 1.0.0)

Ds\Sequence::remove — Removes and returns a value by index.

Description

abstract public mixed Ds\Sequence::remove ( int $index )

Removes and returns a value by index.

Liste de paramètres

index

The index of the value to remove.

Valeurs de retour

The value that was removed.

Erreurs / Exceptions

OutOfRangeException if the index is not valid.

Exemples

Exemple #1 Ds\Sequence::remove() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->remove(1));
var_dump($sequence->remove(0));
var_dump($sequence->remove(0));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "b"
string(1) "a"
string(1) "c"


Reverses the sequence in-place.

  • « Ds\Sequence::remove
  • Ds\Sequence::reversed »
  • PHP Manual
  • Sequence
  • Reverses the sequence in-place.

Ds\Sequence::reverse

(PECL ds >= 1.0.0)

Ds\Sequence::reverse — Reverses the sequence in-place.

Description

abstract public void Ds\Sequence::reverse ( void )

Reverses the sequence in-place.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Sequence::reverse() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);
$sequence->reverse();

print_r($sequence);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)


Returns a reversed copy.

  • « Ds\Sequence::reverse
  • Ds\Sequence::rotate »
  • PHP Manual
  • Sequence
  • Returns a reversed copy.

Ds\Sequence::reversed

(PECL ds >= 1.0.0)

Ds\Sequence::reversed — Returns a reversed copy.

Description

abstract public Ds\Sequence Ds\Sequence::reversed ( void )

Returns a reversed copy of the sequence.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A reversed copy of the sequence.

Note:

The current instance is not affected.

Exemples

Exemple #1 Ds\Sequence::reversed() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

print_r($sequence->reversed());
print_r($sequence);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
)


Rotates the sequence by a given number of rotations.

  • « Ds\Sequence::reversed
  • Ds\Sequence::set »
  • PHP Manual
  • Sequence
  • Rotates the sequence by a given number of rotations.

Ds\Sequence::rotate

(PECL ds >= 1.0.0)

Ds\Sequence::rotate — Rotates the sequence by a given number of rotations.

Description

abstract public void Ds\Sequence::rotate ( int $rotations )

Rotates the sequence by a given number of rotations, which is equivalent to successively calling $sequence->push($sequence->shift()) if the number of rotations is positive, or $sequence->unshift($sequence->pop()) if negative.

Liste de paramètres

rotations

The number of times the sequence should be rotated.

Valeurs de retour

Aucune valeur n'est retournée.. The sequence of the current instance will be rotated.

Exemples

Exemple #1 Ds\Sequence::rotate() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c", "d"]);

$sequence->rotate(1);  // "a" is shifted, then pushed.
print_r($sequence);

$sequence->rotate(2);  // "b" and "c" are both shifted, the pushed.
print_r($sequence);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Vector Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Updates a value at a given index.

  • « Ds\Sequence::rotate
  • Ds\Sequence::shift »
  • PHP Manual
  • Sequence
  • Updates a value at a given index.

Ds\Sequence::set

(PECL ds >= 1.0.0)

Ds\Sequence::set — Updates a value at a given index.

Description

abstract public void Ds\Sequence::set ( int $index , mixed $value )

Updates a value at a given index.

Liste de paramètres

index

The index of the value to update.

value

The new value.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

OutOfRangeException if the index is not valid.

Exemples

Exemple #1 Ds\Sequence::set() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

$sequence->set(1, "_");
print_r($sequence);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)

Exemple #2 Ds\Sequence::set() example using array syntax

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

$sequence[1] = "_";
print_r($sequence);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)


Removes and returns the first value.

  • « Ds\Sequence::set
  • Ds\Sequence::slice »
  • PHP Manual
  • Sequence
  • Removes and returns the first value.

Ds\Sequence::shift

(PECL ds >= 1.0.0)

Ds\Sequence::shift — Removes and returns the first value.

Description

abstract public mixed Ds\Sequence::shift ( void )

Removes and returns the first value.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The first value, which was removed.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Sequence::shift() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->shift());
var_dump($sequence->shift());
var_dump($sequence->shift());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Returns a sub-sequence of a given range.

  • « Ds\Sequence::shift
  • Ds\Sequence::sort »
  • PHP Manual
  • Sequence
  • Returns a sub-sequence of a given range.

Ds\Sequence::slice

(PECL ds >= 1.0.0)

Ds\Sequence::slice — Returns a sub-sequence of a given range.

Description

abstract public Ds\Sequence Ds\Sequence::slice ( int $index [, int $length ] )

Creates a sub-sequence of a given range.

Liste de paramètres

index

The index at which the sub-sequence starts.

If positive, the sequence will start at that index in the sequence. If negative, the sequence will start that far from the end.

length

If a length is given and is positive, the resulting sequence will have up to that many values in it. If the length results in an overflow, only values up to the end of the sequence will be included. If a length is given and is negative, the sequence will stop that many values from the end. If a length is not provided, the resulting sequence will contain all values between the index and the end of the sequence.

Valeurs de retour

A sub-sequence of the given range.

Exemples

Exemple #1 Ds\Sequence::slice() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($sequence->slice(2));

// Slice from 1, for a length of 3
print_r($sequence->slice(1, 3));

// Slice from 1 onwards
print_r($sequence->slice(1));

// Slice from 2 from the end onwards
print_r($sequence->slice(-2));

// Slice from 1 to 1 from the end
print_r($sequence->slice(1, -1));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Vector Object
(
    [0] => d
    [1] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)


Sorts the sequence in-place.

  • « Ds\Sequence::slice
  • Ds\Sequence::sorted »
  • PHP Manual
  • Sequence
  • Sorts the sequence in-place.

Ds\Sequence::sort

(PECL ds >= 1.0.0)

Ds\Sequence::sort — Sorts the sequence in-place.

Description

abstract public void Ds\Sequence::sort ([ callable $comparator ] )

Sorts the sequence in-place, using an optional comparator function.

Liste de paramètres

comparator

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
Attention

Returning non-integer values from the comparison function, such as float, will result in an internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Sequence::sort() example

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);
$sequence->sort();

print_r($sequence);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemple #2 Ds\Sequence::sort() example using a comparator

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

$sequence->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($sequence);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns a sorted copy.

  • « Ds\Sequence::sort
  • Ds\Sequence::sum »
  • PHP Manual
  • Sequence
  • Returns a sorted copy.

Ds\Sequence::sorted

(PECL ds >= 1.0.0)

Ds\Sequence::sorted — Returns a sorted copy.

Description

abstract public Ds\Sequence Ds\Sequence::sorted ([ callable $comparator ] )

Returns a sorted copy, using an optional comparator function.

Liste de paramètres

comparator

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
Attention

Returning non-integer values from the comparison function, such as float, will result in an internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Valeurs de retour

Returns a sorted copy of the sequence.

Exemples

Exemple #1 Ds\Sequence::sorted() example

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

print_r($sequence->sorted());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemple #2 Ds\Sequence::sorted() example using a comparator

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

$sorted = $sequence->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns the sum of all values in the sequence.

  • « Ds\Sequence::sorted
  • Ds\Sequence::unshift »
  • PHP Manual
  • Sequence
  • Returns the sum of all values in the sequence.

Ds\Sequence::sum

(PECL ds >= 1.0.0)

Ds\Sequence::sum — Returns the sum of all values in the sequence.

Description

abstract public number Ds\Sequence::sum ( void )

Returns the sum of all values in the sequence.

Note:

Arrays and objects are considered equal to zero when calculating the sum.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The sum of all the values in the sequence as either a float or int depending on the values in the sequence.

Exemples

Exemple #1 Ds\Sequence::sum() integer example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->sum());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(6)

Exemple #2 Ds\Sequence::sum() float example

<?php
$sequence = new \Ds\Vector([1, 2.5, 3]);
var_dump($sequence->sum());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

float(6.5)


Adds values to the front of the sequence.

  • « Ds\Sequence::sum
  • Vector »
  • PHP Manual
  • Sequence
  • Adds values to the front of the sequence.

Ds\Sequence::unshift

(PECL ds >= 1.0.0)

Ds\Sequence::unshift — Adds values to the front of the sequence.

Description

abstract public void Ds\Sequence::unshift ([ mixed $values ] )

Adds values to the front of the sequence, moving all the current values forward to make room for the new values.

Liste de paramètres

values

The values to add to the front of the sequence.

Note:

Multiple values will be added in the same order that they are passed.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Sequence::unshift() example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

$sequence->unshift("a");
$sequence->unshift("b", "c");

print_r($sequence);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


The Vector class

(No version information available, might only be in Git)

Introduction

A Vector is a sequence of values in a contiguous buffer that grows and shrinks automatically. It’s the most efficient sequential structure because a value’s index is a direct mapping to its index in the buffer, and the growth factor isn't bound to a specific multiple or exponent.

Strengths

  • Supports array syntax (square brackets).
  • Uses less overall memory than an tableau for the same number of values.
  • Automatically frees allocated memory when its size drops low enough.
  • Capacity does not have to be a power of 2.
  • get(),
set(),
push(),
pop() are all O(1).

Weaknesses

  • shift(),
unshift(),
insert() and
remove() are all O(n).

Synopsis de la classe

Ds\Vector implements Ds\Sequence {
/* Constants */
const int MIN_CAPACITY = 10 ;
/* Méthodes */
public void allocate ( int $capacity )
public void apply ( callable $callback )
public int capacity ( void )
public void clear ( void )
public bool contains ([ mixed $...values ] )
public Ds\Vector copy ( void )
public Ds\Vector filter ([ callable $callback ] )
public mixed find ( mixed $value )
public mixed first ( void )
public mixed get ( int $index )
public void insert ( int $index [, mixed $...values ] )
public bool isEmpty ( void )
public string join ([ string $glue ] )
public mixed last ( void )
public Ds\Vector map ( callable $callback )
public Ds\Vector merge ( mixed $values )
public mixed pop ( void )
public void push ([ mixed $...values ] )
public mixed reduce ( callable $callback [, mixed $initial ] )
public mixed remove ( int $index )
public void reverse ( void )
public Ds\Vector reversed ( void )
public void rotate ( int $rotations )
public void set ( int $index , mixed $value )
public mixed shift ( void )
public Ds\Vector slice ( int $index [, int $length ] )
public void sort ([ callable $comparator ] )
public Ds\Vector sorted ([ callable $comparator ] )
public number sum ( void )
public array toArray ( void )
public void unshift ([ mixed $values ] )
}

Constantes pré-définies

Ds\Vector::MIN_CAPACITY

Sommaire

  • Ds\Vector::allocate — Allocates enough memory for a required capacity.
  • Ds\Vector::apply — Updates all values by applying a callback function to each value.
  • Ds\Vector::capacity — Returns the current capacity.
  • Ds\Vector::clear — Removes all values.
  • Ds\Vector::__construct — Creates a new instance.
  • Ds\Vector::contains — Determines if the vector contains given values.
  • Ds\Vector::copy — Returns a shallow copy of the vector.
  • Ds\Vector::count — Returns the number of values in the collection.
  • Ds\Vector::filter — Creates a new vector using a callable to determine which values to include.
  • Ds\Vector::find — Attempts to find a value's index.
  • Ds\Vector::first — Returns the first value in the vector.
  • Ds\Vector::get — Returns the value at a given index.
  • Ds\Vector::insert — Inserts values at a given index.
  • Ds\Vector::isEmpty — Returns whether the vector is empty
  • Ds\Vector::join — Joins all values together as a string.
  • Ds\Vector::jsonSerialize — Returns a representation that can be converted to JSON.
  • Ds\Vector::last — Returns the last value.
  • Ds\Vector::map — Returns the result of applying a callback to each value.
  • Ds\Vector::merge — Returns the result of adding all given values to the vector.
  • Ds\Vector::pop — Removes and returns the last value.
  • Ds\Vector::push — Adds values to the end of the vector.
  • Ds\Vector::reduce — Reduces the vector to a single value using a callback function.
  • Ds\Vector::remove — Removes and returns a value by index.
  • Ds\Vector::reverse — Reverses the vector in-place.
  • Ds\Vector::reversed — Returns a reversed copy.
  • Ds\Vector::rotate — Rotates the vector by a given number of rotations.
  • Ds\Vector::set — Updates a value at a given index.
  • Ds\Vector::shift — Removes and returns the first value.
  • Ds\Vector::slice — Returns a sub-vector of a given range.
  • Ds\Vector::sort — Sorts the vector in-place.
  • Ds\Vector::sorted — Returns a sorted copy.
  • Ds\Vector::sum — Returns the sum of all values in the vector.
  • Ds\Vector::toArray — Converts the vector to an tableau.
  • Ds\Vector::unshift — Adds values to the front of the vector.


Allocates enough memory for a required capacity.

  • « Vector
  • Ds\Vector::apply »
  • PHP Manual
  • Vector
  • Allocates enough memory for a required capacity.

Ds\Vector::allocate

(PECL ds >= 1.0.0)

Ds\Vector::allocate — Allocates enough memory for a required capacity.

Description

public void Ds\Vector::allocate ( int $capacity )

Ensures that enough memory is allocated for a required capacity. This removes the need to reallocate the internal as values are added.

Liste de paramètres

capacity

The number of values for which capacity should be allocated.

Note:

Capacity will stay the same if this value is less than or equal to the current capacity.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Vector::allocate() example

<?php
$vector = new \Ds\Vector();
var_dump($vector->capacity());

$vector->allocate(100);
var_dump($vector->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(10)
int(100)


Updates all values by applying a callback function to each value.

  • « Ds\Vector::allocate
  • Ds\Vector::capacity »
  • PHP Manual
  • Vector
  • Updates all values by applying a callback function to each value.

Ds\Vector::apply

(PECL ds >= 1.0.0)

Ds\Vector::apply — Updates all values by applying a callback function to each value.

Description

public void Ds\Vector::apply ( callable $callback )

Updates all values by applying a callback function to each value in the vector.

Liste de paramètres

callback

mixed callback ( mixed $value )

A callable to apply to each value in the vector.

The callback should return what the value should be replaced by.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Vector::apply() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);
$vector->apply(function($value) { return $value * 2; });

print_r($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Returns the current capacity.

  • « Ds\Vector::apply
  • Ds\Vector::clear »
  • PHP Manual
  • Vector
  • Returns the current capacity.

Ds\Vector::capacity

(PECL ds >= 1.0.0)

Ds\Vector::capacity — Returns the current capacity.

Description

public int Ds\Vector::capacity ( void )

Returns the current capacity.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current capacity.

Exemples

Exemple #1 Ds\Vector::capacity() example

<?php
$vector = new \Ds\Vector();
var_dump($vector->capacity());

$vector->push(...range(1, 50));
var_dump($vector->capacity());

$vector[] = "a";
var_dump($vector->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(10)
int(50)
int(75)


Removes all values.

  • « Ds\Vector::capacity
  • Ds\Vector::__construct »
  • PHP Manual
  • Vector
  • Removes all values.

Ds\Vector::clear

(PECL ds >= 1.0.0)

Ds\Vector::clear — Removes all values.

Description

public void Ds\Vector::clear ( void )

Removes all values from the vector.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Vector::clear() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);
print_r($vector);

$vector->clear();
print_r($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
)


Creates a new instance.

  • « Ds\Vector::clear
  • Ds\Vector::contains »
  • PHP Manual
  • Vector
  • Creates a new instance.

Ds\Vector::__construct

(PECL ds >= 1.0.0)

Ds\Vector::__construct — Creates a new instance.

Description

public Ds\Vector::__construct ([ mixed $values ] )

Creates a new instance, using either a traversable object or an tableau for the initial values.

Liste de paramètres

values

A traversable object or an tableau to use for the initial values.

Exemples

Exemple #1 Ds\Vector::__construct() example

<?php
$vector = new \Ds\Vector();
var_dump($vector);

$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Vector)#2 (0) {
}
object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Determines if the vector contains given values.

  • « Ds\Vector::__construct
  • Ds\Vector::copy »
  • PHP Manual
  • Vector
  • Determines if the vector contains given values.

Ds\Vector::contains

(PECL ds >= 1.0.0)

Ds\Vector::contains — Determines if the vector contains given values.

Description

public bool Ds\Vector::contains ([ mixed $...values ] )

Determines if the vector contains all values.

Liste de paramètres

values

Values to check.

Valeurs de retour

FALSE if any of the provided values are not in the vector, TRUE otherwise.

Exemples

Exemple #1 Ds\Vector::contains() example

<?php
$vector = new \Ds\Vector(['a', 'b', 'c', 1, 2, 3]);

var_dump($vector->contains('a'));                // true
var_dump($vector->contains('a', 'b'));           // true
var_dump($vector->contains('c', 'd'));           // false

var_dump($vector->contains(...['c', 'b', 'a'])); // true

// Always strict
var_dump($vector->contains(1));                  // true
var_dump($vector->contains('1'));                // false

var_dump($sequece->contains(...[]));               // true
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Returns a shallow copy of the vector.

  • « Ds\Vector::contains
  • Ds\Vector::count »
  • PHP Manual
  • Vector
  • Returns a shallow copy of the vector.

Ds\Vector::copy

(PECL ds >= 1.0.0)

Ds\Vector::copy — Returns a shallow copy of the vector.

Description

public Ds\Vector Ds\Vector::copy ( void )

Returns a shallow copy of the vector.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a shallow copy of the vector.

Exemples

Exemple #1 Ds\Vector::copy() example

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = $a->copy();

// Updating the copy doesn't affect the original
$b->push(4);

print_r($a);
print_r($b);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Returns the number of values in the collection.

  • « Ds\Vector::copy
  • Ds\Vector::filter »
  • PHP Manual
  • Vector
  • Returns the number of values in the collection.

Ds\Vector::count

(PECL ds >= 1.0.0)

Ds\Vector::count — Returns the number of values in the collection.

See Countable::count()


Creates a new vector using a callable to determine which values to include.

  • « Ds\Vector::count
  • Ds\Vector::find »
  • PHP Manual
  • Vector
  • Creates a new vector using a callable to determine which values to include.

Ds\Vector::filter

(PECL ds >= 1.0.0)

Ds\Vector::filter — Creates a new vector using a callable to determine which values to include.

Description

public Ds\Vector Ds\Vector::filter ([ callable $callback ] )

Creates a new vector using a callable to determine which values to include.

Liste de paramètres

callback

bool callback ( mixed $value )

Optional callable which returns TRUE if the value should be included, FALSE otherwise.

If a callback is not provided, only values which are TRUE (see converting to boolean) will be included.

Valeurs de retour

A new vector containing all the values for which either the callback returned TRUE, or all values that convert to TRUE if a callback was not provided.

Exemples

Exemple #1 Ds\Vector::filter() example using callback function

<?php
$vector = new \Ds\Vector([1, 2, 3, 4, 5]);

var_dump($vector->filter(function($value) {
    return $value % 2 == 0;
}));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Vector)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Exemple #2 Ds\Vector::filter() example without a callback function

<?php
$vector = new \Ds\Vector([0, 1, 'a', true, false]);

var_dump($vector->filter());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Attempts to find a value's index.

  • « Ds\Vector::filter
  • Ds\Vector::first »
  • PHP Manual
  • Vector
  • Attempts to find a value's index.

Ds\Vector::find

(PECL ds >= 1.0.0)

Ds\Vector::find — Attempts to find a value's index.

Description

public mixed Ds\Vector::find ( mixed $value )

Returns the index of the value, or FALSE if not found.

Liste de paramètres

value

The value to find.

Valeurs de retour

The index of the value, or FALSE if not found.

Note:

Values will be compared by value and by type.

Exemples

Exemple #1 Ds\Vector::find() example

<?php
$vector = new \Ds\Vector(["a", 1, true]);

var_dump($vector->find("a")); // 0
var_dump($vector->find("b")); // false
var_dump($vector->find("1")); // false
var_dump($vector->find(1));   // 1
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
bool(false)
bool(false)
int(1)


Returns the first value in the vector.

  • « Ds\Vector::find
  • Ds\Vector::get »
  • PHP Manual
  • Vector
  • Returns the first value in the vector.

Ds\Vector::first

(PECL ds >= 1.0.0)

Ds\Vector::first — Returns the first value in the vector.

Description

public mixed Ds\Vector::first ( void )

Returns the first value in the vector.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The first value in the vector.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Vector::first() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->first());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)


Returns the value at a given index.

  • « Ds\Vector::first
  • Ds\Vector::insert »
  • PHP Manual
  • Vector
  • Returns the value at a given index.

Ds\Vector::get

(PECL ds >= 1.0.0)

Ds\Vector::get — Returns the value at a given index.

Description

public mixed Ds\Vector::get ( int $index )

Returns the value at a given index.

Liste de paramètres

index

The index to access, starting at 0.

Valeurs de retour

The value at the requested index.

Erreurs / Exceptions

OutOfRangeException if the index is not valid.

Exemples

Exemple #1 Ds\Vector::get() example

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->get(0));
var_dump($vector->get(1));
var_dump($vector->get(2));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"
string(1) "b"
string(1) "c"

Exemple #2 Ds\Vector::get() example using array syntax

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector[0]);
var_dump($vector[1]);
var_dump($vector[2]);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Inserts values at a given index.

  • « Ds\Vector::get
  • Ds\Vector::isEmpty »
  • PHP Manual
  • Vector
  • Inserts values at a given index.

Ds\Vector::insert

(PECL ds >= 1.0.0)

Ds\Vector::insert — Inserts values at a given index.

Description

public void Ds\Vector::insert ( int $index [, mixed $...values ] )

Inserts values into the vector at a given index.

Liste de paramètres

index

The index at which to insert. 0 <= index <= count

Note:

You can insert at the index equal to the number of values.

values

The value or values to insert.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

OutOfRangeException if the index is not valid.

Exemples

Exemple #1 Ds\Vector::insert() example

<?php
$vector = new \Ds\Vector();

$vector->insert(0, "e");             // [e]
$vector->insert(1, "f");             // [e, f]
$vector->insert(2, "g");             // [e, f, g]
$vector->insert(0, "a", "b");        // [a, b, e, f, g]
$vector->insert(2, ...["c", "d"]);   // [a, b, c, d, e, f, g]

var_dump($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Vector)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Returns whether the vector is empty

  • « Ds\Vector::insert
  • Ds\Vector::join »
  • PHP Manual
  • Vector
  • Returns whether the vector is empty

Ds\Vector::isEmpty

(PECL ds >= 1.0.0)

Ds\Vector::isEmpty — Returns whether the vector is empty

Description

public bool Ds\Vector::isEmpty ( void )

Returns whether the vector is empty.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if the vector is empty, FALSE otherwise.

Exemples

Exemple #1 Ds\Vector::isEmpty() example

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = new \Ds\Vector();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)


Joins all values together as a string.

  • « Ds\Vector::isEmpty
  • Ds\Vector::jsonSerialize »
  • PHP Manual
  • Vector
  • Joins all values together as a string.

Ds\Vector::join

(PECL ds >= 1.0.0)

Ds\Vector::join — Joins all values together as a string.

Description

public string Ds\Vector::join ([ string $glue ] )

Joins all values together as a string using an optional separator between each value.

Liste de paramètres

glue

An optional string to separate each value.

Valeurs de retour

All values of the vector joined together as a string.

Exemples

Exemple #1 Ds\Vector::join() example using a separator string

<?php
$vector = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($vector->join("|"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(11) "a|b|c|1|2|3"

Exemple #2 Ds\Vector::join() example without a separator string

<?php
$vector = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($vector->join());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(11) "abc123"


Returns a representation that can be converted to JSON.

  • « Ds\Vector::join
  • Ds\Vector::last »
  • PHP Manual
  • Vector
  • Returns a representation that can be converted to JSON.

Ds\Vector::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Vector::jsonSerialize — Returns a representation that can be converted to JSON.

See JsonSerializable::jsonSerialize()

Note:

You should never need to call this directly.


Returns the last value.

  • « Ds\Vector::jsonSerialize
  • Ds\Vector::map »
  • PHP Manual
  • Vector
  • Returns the last value.

Ds\Vector::last

(PECL ds >= 1.0.0)

Ds\Vector::last — Returns the last value.

Description

public mixed Ds\Vector::last ( void )

Returns the last value in the vector.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The last value in the vector.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Vector::last() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->last());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)


Returns the result of applying a callback to each value.

  • « Ds\Vector::last
  • Ds\Vector::merge »
  • PHP Manual
  • Vector
  • Returns the result of applying a callback to each value.

Ds\Vector::map

(PECL ds >= 1.0.0)

Ds\Vector::map — Returns the result of applying a callback to each value.

Description

public Ds\Vector Ds\Vector::map ( callable $callback )

Returns the result of applying a callback function to each value in the vector.

Liste de paramètres

callback

mixed callback ( mixed $value )

A callable to apply to each value in the vector.

The callable should return what the new value will be in the new vector.

Valeurs de retour

The result of applying a callback to each value in the vector.

Note:

The values of the current instance won't be affected.

Exemples

Exemple #1 Ds\Vector::map() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

print_r($vector->map(function($value) { return $value * 2; }));
print_r($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Returns the result of adding all given values to the vector.

  • « Ds\Vector::map
  • Ds\Vector::pop »
  • PHP Manual
  • Vector
  • Returns the result of adding all given values to the vector.

Ds\Vector::merge

(PECL ds >= 1.0.0)

Ds\Vector::merge — Returns the result of adding all given values to the vector.

Description

public Ds\Vector Ds\Vector::merge ( mixed $values )

Returns the result of adding all given values to the vector.

Liste de paramètres

values

A traversable object or an tableau.

Valeurs de retour

The result of adding all given values to the vector, effectively the same as adding the values to a copy, then returning that copy.

Note:

The current instance won't be affected.

Exemples

Exemple #1 Ds\Vector::merge() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->merge([4, 5, 6]));
var_dump($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Vector)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Vector)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Removes and returns the last value.

  • « Ds\Vector::merge
  • Ds\Vector::push »
  • PHP Manual
  • Vector
  • Removes and returns the last value.

Ds\Vector::pop

(PECL ds >= 1.0.0)

Ds\Vector::pop — Removes and returns the last value.

Description

public mixed Ds\Vector::pop ( void )

Removes and returns the last value.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The removed last value.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Vector::pop() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->pop());
var_dump($vector->pop());
var_dump($vector->pop());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)
int(2)
int(1)


Adds values to the end of the vector.

  • « Ds\Vector::pop
  • Ds\Vector::reduce »
  • PHP Manual
  • Vector
  • Adds values to the end of the vector.

Ds\Vector::push

(PECL ds >= 1.0.0)

Ds\Vector::push — Adds values to the end of the vector.

Description

public void Ds\Vector::push ([ mixed $...values ] )

Adds values to the end of the vector.

Liste de paramètres

values

The values to add.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Vector::push() example

<?php
$vector = new \Ds\Vector();

$vector->push("a");
$vector->push("b");
$vector->push("c", "d");
$vector->push(...["e", "f"]);

print_r($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Reduces the vector to a single value using a callback function.

  • « Ds\Vector::push
  • Ds\Vector::remove »
  • PHP Manual
  • Vector
  • Reduces the vector to a single value using a callback function.

Ds\Vector::reduce

(PECL ds >= 1.0.0)

Ds\Vector::reduce — Reduces the vector to a single value using a callback function.

Description

public mixed Ds\Vector::reduce ( callable $callback [, mixed $initial ] )

Reduces the vector to a single value using a callback function.

Liste de paramètres

callback
mixed callback ( mixed $carry , mixed $value )
carry

The return value of the previous callback, or initial if it's the first iteration.

value

The value of the current iteration.

initial

The initial value of the carry value. Can be NULL.

Valeurs de retour

The return value of the final callback.

Exemples

Exemple #1 Ds\Vector::reduce() with initial value example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($vector->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(30)

Exemple #2 Ds\Vector::reduce() without an initial value example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(21)


Removes and returns a value by index.

  • « Ds\Vector::reduce
  • Ds\Vector::reverse »
  • PHP Manual
  • Vector
  • Removes and returns a value by index.

Ds\Vector::remove

(PECL ds >= 1.0.0)

Ds\Vector::remove — Removes and returns a value by index.

Description

public mixed Ds\Vector::remove ( int $index )

Removes and returns a value by index.

Liste de paramètres

index

The index of the value to remove.

Valeurs de retour

The value that was removed.

Erreurs / Exceptions

OutOfRangeException if the index is not valid.

Exemples

Exemple #1 Ds\Vector::remove() example

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->remove(1));
var_dump($vector->remove(0));
var_dump($vector->remove(0));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "b"
string(1) "a"
string(1) "c"


Reverses the vector in-place.

  • « Ds\Vector::remove
  • Ds\Vector::reversed »
  • PHP Manual
  • Vector
  • Reverses the vector in-place.

Ds\Vector::reverse

(PECL ds >= 1.0.0)

Ds\Vector::reverse — Reverses the vector in-place.

Description

public void Ds\Vector::reverse ( void )

Reverses the vector in-place.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Vector::reverse() example

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);
$vector->reverse();

print_r($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)


Returns a reversed copy.

  • « Ds\Vector::reverse
  • Ds\Vector::rotate »
  • PHP Manual
  • Vector
  • Returns a reversed copy.

Ds\Vector::reversed

(PECL ds >= 1.0.0)

Ds\Vector::reversed — Returns a reversed copy.

Description

public Ds\Vector Ds\Vector::reversed ( void )

Returns a reversed copy of the vector.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A reversed copy of the vector.

Note:

The current instance is not affected.

Exemples

Exemple #1 Ds\Vector::reversed() example

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

print_r($vector->reversed());
print_r($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
)


Rotates the vector by a given number of rotations.

  • « Ds\Vector::reversed
  • Ds\Vector::set »
  • PHP Manual
  • Vector
  • Rotates the vector by a given number of rotations.

Ds\Vector::rotate

(PECL ds >= 1.0.0)

Ds\Vector::rotate — Rotates the vector by a given number of rotations.

Description

public void Ds\Vector::rotate ( int $rotations )

Rotates the vector by a given number of rotations, which is equivalent to successively calling $vector->push($vector->shift()) if the number of rotations is positive, or $vector->unshift($vector->pop()) if negative.

Liste de paramètres

rotations

The number of times the vector should be rotated.

Valeurs de retour

Aucune valeur n'est retournée.. The vector of the current instance will be rotated.

Exemples

Exemple #1 Ds\Vector::rotate() example

<?php
$vector = new \Ds\Vector(["a", "b", "c", "d"]);

$vector->rotate(1);  // "a" is shifted, then pushed.
print_r($vector);

$vector->rotate(2);  // "b" and "c" are both shifted, the pushed.
print_r($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Vector Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Updates a value at a given index.

  • « Ds\Vector::rotate
  • Ds\Vector::shift »
  • PHP Manual
  • Vector
  • Updates a value at a given index.

Ds\Vector::set

(PECL ds >= 1.0.0)

Ds\Vector::set — Updates a value at a given index.

Description

public void Ds\Vector::set ( int $index , mixed $value )

Updates a value at a given index.

Liste de paramètres

index

The index of the value to update.

value

The new value.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

OutOfRangeException if the index is not valid.

Exemples

Exemple #1 Ds\Vector::set() example

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

$vector->set(1, "_");
print_r($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)

Exemple #2 Ds\Vector::set() example using array syntax

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

$vector[1] = "_";
print_r($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)


Removes and returns the first value.

  • « Ds\Vector::set
  • Ds\Vector::slice »
  • PHP Manual
  • Vector
  • Removes and returns the first value.

Ds\Vector::shift

(PECL ds >= 1.0.0)

Ds\Vector::shift — Removes and returns the first value.

Description

public mixed Ds\Vector::shift ( void )

Removes and returns the first value.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The first value, which was removed.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Vector::shift() example

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->shift());
var_dump($vector->shift());
var_dump($vector->shift());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Returns a sub-vector of a given range.

  • « Ds\Vector::shift
  • Ds\Vector::sort »
  • PHP Manual
  • Vector
  • Returns a sub-vector of a given range.

Ds\Vector::slice

(PECL ds >= 1.0.0)

Ds\Vector::slice — Returns a sub-vector of a given range.

Description

public Ds\Vector Ds\Vector::slice ( int $index [, int $length ] )

Creates a sub-vector of a given range.

Liste de paramètres

index

The index at which the sub-vector starts.

If positive, the vector will start at that index in the vector. If negative, the vector will start that far from the end.

length

If a length is given and is positive, the resulting vector will have up to that many values in it. If the length results in an overflow, only values up to the end of the vector will be included. If a length is given and is negative, the vector will stop that many values from the end. If a length is not provided, the resulting vector will contain all values between the index and the end of the vector.

Valeurs de retour

A sub-vector of the given range.

Exemples

Exemple #1 Ds\Vector::slice() example

<?php
$vector = new \Ds\Vector(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($vector->slice(2));

// Slice from 1, for a length of 3
print_r($vector->slice(1, 3));

// Slice from 1 onwards
print_r($vector->slice(1));

// Slice from 2 from the end onwards
print_r($vector->slice(-2));

// Slice from 1 to 1 from the end
print_r($vector->slice(1, -1));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Vector Object
(
    [0] => d
    [1] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)


Sorts the vector in-place.

  • « Ds\Vector::slice
  • Ds\Vector::sorted »
  • PHP Manual
  • Vector
  • Sorts the vector in-place.

Ds\Vector::sort

(PECL ds >= 1.0.0)

Ds\Vector::sort — Sorts the vector in-place.

Description

public void Ds\Vector::sort ([ callable $comparator ] )

Sorts the vector in-place, using an optional comparator function.

Liste de paramètres

comparator

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
Attention

Returning non-integer values from the comparison function, such as float, will result in an internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Vector::sort() example

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);
$vector->sort();

print_r($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemple #2 Ds\Vector::sort() example using a comparator

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

$vector->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns a sorted copy.

  • « Ds\Vector::sort
  • Ds\Vector::sum »
  • PHP Manual
  • Vector
  • Returns a sorted copy.

Ds\Vector::sorted

(PECL ds >= 1.0.0)

Ds\Vector::sorted — Returns a sorted copy.

Description

public Ds\Vector Ds\Vector::sorted ([ callable $comparator ] )

Returns a sorted copy, using an optional comparator function.

Liste de paramètres

comparator

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
Attention

Returning non-integer values from the comparison function, such as float, will result in an internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Valeurs de retour

Returns a sorted copy of the vector.

Exemples

Exemple #1 Ds\Vector::sorted() example

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

print_r($vector->sorted());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemple #2 Ds\Vector::sorted() example using a comparator

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

$sorted = $vector->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns the sum of all values in the vector.

  • « Ds\Vector::sorted
  • Ds\Vector::toArray »
  • PHP Manual
  • Vector
  • Returns the sum of all values in the vector.

Ds\Vector::sum

(PECL ds >= 1.0.0)

Ds\Vector::sum — Returns the sum of all values in the vector.

Description

public number Ds\Vector::sum ( void )

Returns the sum of all values in the vector.

Note:

Arrays and objects are considered equal to zero when calculating the sum.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The sum of all the values in the vector as either a float or int depending on the values in the vector.

Exemples

Exemple #1 Ds\Vector::sum() integer example

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->sum());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(6)

Exemple #2 Ds\Vector::sum() float example

<?php
$vector = new \Ds\Vector([1, 2.5, 3]);
var_dump($vector->sum());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

float(6.5)


Converts the vector to an tableau.

  • « Ds\Vector::sum
  • Ds\Vector::unshift »
  • PHP Manual
  • Vector
  • Converts the vector to an tableau.

Ds\Vector::toArray

(PECL ds >= 1.0.0)

Ds\Vector::toArray — Converts the vector to an tableau.

Description

public array Ds\Vector::toArray ( void )

Converts the vector to an tableau.

Note:

Casting to an tableau is not supported yet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An tableau containing all the values in the same order as the vector.

Exemples

Exemple #1 Ds\Vector::toArray() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->toArray());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Adds values to the front of the vector.

  • « Ds\Vector::toArray
  • Deque »
  • PHP Manual
  • Vector
  • Adds values to the front of the vector.

Ds\Vector::unshift

(PECL ds >= 1.0.0)

Ds\Vector::unshift — Adds values to the front of the vector.

Description

public void Ds\Vector::unshift ([ mixed $values ] )

Adds values to the front of the vector, moving all the current values forward to make room for the new values.

Liste de paramètres

values

The values to add to the front of the vector.

Note:

Multiple values will be added in the same order that they are passed.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Vector::unshift() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

$vector->unshift("a");
$vector->unshift("b", "c");

print_r($vector);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


The Deque class

(No version information available, might only be in Git)

Introduction

A Deque (pronounced “deck”) is a sequence of values in a contiguous buffer that grows and shrinks automatically. The name is a common abbreviation of “double-ended queue” and is used internally by Ds\Queue.

Two pointers are used to keep track of a head and a tail. The pointers can “wrap around” the end of the buffer, which avoids the need to move other values around to make room. This makes shift and unshift very fast?—? something a Ds\Vector can’t compete with.

Accessing a value by index requires a translation between the index and its corresponding position in the buffer: ((head + position) % capacity).

Strengths

  • Supports array syntax (square brackets).
  • Uses less overall memory than an tableau for the same number of values.
  • Automatically frees allocated memory when its size drops low enough.
  • get(),
set(),
push(),
pop(),
shift(), and
unshift() are all O(1).

Weaknesses

  • Capacity must be a power of 2.
  • insert() and remove() are O(n).

Synopsis de la classe

Ds\Deque implements Ds\Sequence {
/* Constants */
const int MIN_CAPACITY = 8 ;
/* Méthodes */
public void allocate ( int $capacity )
public void apply ( callable $callback )
public int capacity ( void )
public void clear ( void )
public bool contains ([ mixed $...values ] )
public Ds\Deque copy ( void )
public Ds\Deque filter ([ callable $callback ] )
public mixed find ( mixed $value )
public mixed first ( void )
public mixed get ( int $index )
public void insert ( int $index [, mixed $...values ] )
public bool isEmpty ( void )
public string join ([ string $glue ] )
public mixed last ( void )
public Ds\Deque map ( callable $callback )
public Ds\Deque merge ( mixed $values )
public mixed pop ( void )
public void push ([ mixed $...values ] )
public mixed reduce ( callable $callback [, mixed $initial ] )
public mixed remove ( int $index )
public void reverse ( void )
public Ds\Deque reversed ( void )
public void rotate ( int $rotations )
public void set ( int $index , mixed $value )
public mixed shift ( void )
public Ds\Deque slice ( int $index [, int $length ] )
public void sort ([ callable $comparator ] )
public Ds\Deque sorted ([ callable $comparator ] )
public number sum ( void )
public array toArray ( void )
public void unshift ([ mixed $values ] )
}

Constantes pré-définies

Ds\Deque::MIN_CAPACITY

Sommaire

  • Ds\Deque::allocate — Allocates enough memory for a required capacity.
  • Ds\Deque::apply — Updates all values by applying a callback function to each value.
  • Ds\Deque::capacity — Returns the current capacity.
  • Ds\Deque::clear — Removes all values from the deque.
  • Ds\Deque::__construct — Creates a new instance.
  • Ds\Deque::contains — Determines if the deque contains given values.
  • Ds\Deque::copy — Returns a shallow copy of the deque.
  • Ds\Deque::count — Returns the number of values in the collection.
  • Ds\Deque::filter — Creates a new deque using a callable to determine which values to include.
  • Ds\Deque::find — Attempts to find a value's index.
  • Ds\Deque::first — Returns the first value in the deque.
  • Ds\Deque::get — Returns the value at a given index.
  • Ds\Deque::insert — Inserts values at a given index.
  • Ds\Deque::isEmpty — Returns whether the deque is empty
  • Ds\Deque::join — Joins all values together as a string.
  • Ds\Deque::jsonSerialize — Returns a representation that can be converted to JSON.
  • Ds\Deque::last — Returns the last value.
  • Ds\Deque::map — Returns the result of applying a callback to each value.
  • Ds\Deque::merge — Returns the result of adding all given values to the deque.
  • Ds\Deque::pop — Removes and returns the last value.
  • Ds\Deque::push — Adds values to the end of the deque.
  • Ds\Deque::reduce — Reduces the deque to a single value using a callback function.
  • Ds\Deque::remove — Removes and returns a value by index.
  • Ds\Deque::reverse — Reverses the deque in-place.
  • Ds\Deque::reversed — Returns a reversed copy.
  • Ds\Deque::rotate — Rotates the deque by a given number of rotations.
  • Ds\Deque::set — Updates a value at a given index.
  • Ds\Deque::shift — Removes and returns the first value.
  • Ds\Deque::slice — Returns a sub-deque of a given range.
  • Ds\Deque::sort — Sorts the deque in-place.
  • Ds\Deque::sorted — Returns a sorted copy.
  • Ds\Deque::sum — Returns the sum of all values in the deque.
  • Ds\Deque::toArray — Converts the deque to an tableau.
  • Ds\Deque::unshift — Adds values to the front of the deque.


Allocates enough memory for a required capacity.

  • « Deque
  • Ds\Deque::apply »
  • PHP Manual
  • Deque
  • Allocates enough memory for a required capacity.

Ds\Deque::allocate

(PECL ds >= 1.0.0)

Ds\Deque::allocate — Allocates enough memory for a required capacity.

Description

public void Ds\Deque::allocate ( int $capacity )

Ensures that enough memory is allocated for a required capacity. This removes the need to reallocate the internal as values are added.

Liste de paramètres

capacity

The number of values for which capacity should be allocated.

Note:

Capacity will stay the same if this value is less than or equal to the current capacity.

Note:

Capacity will always be rounded up to the nearest power of 2.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Deque::allocate() example

<?php
$deque = new \Ds\Deque();
var_dump($deque->capacity());

$deque->allocate(100);
var_dump($deque->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(8)
int(128)


Updates all values by applying a callback function to each value.

  • « Ds\Deque::allocate
  • Ds\Deque::capacity »
  • PHP Manual
  • Deque
  • Updates all values by applying a callback function to each value.

Ds\Deque::apply

(PECL ds >= 1.0.0)

Ds\Deque::apply — Updates all values by applying a callback function to each value.

Description

public void Ds\Deque::apply ( callable $callback )

Updates all values by applying a callback function to each value in the deque.

Liste de paramètres

callback

mixed callback ( mixed $value )

A callable to apply to each value in the deque.

The callback should return what the value should be replaced by.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Deque::apply() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);
$deque->apply(function($value) { return $value * 2; });

print_r($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Returns the current capacity.

  • « Ds\Deque::apply
  • Ds\Deque::clear »
  • PHP Manual
  • Deque
  • Returns the current capacity.

Ds\Deque::capacity

(PECL ds >= 1.0.0)

Ds\Deque::capacity — Returns the current capacity.

Description

public int Ds\Deque::capacity ( void )

Returns the current capacity.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current capacity.

Exemples

Exemple #1 Ds\Deque::capacity() example

<?php
$deque = new \Ds\Deque();
var_dump($deque->capacity());

$deque->push(...range(1, 50));
var_dump($deque->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(8)
int(64)


Removes all values from the deque.

  • « Ds\Deque::capacity
  • Ds\Deque::__construct »
  • PHP Manual
  • Deque
  • Removes all values from the deque.

Ds\Deque::clear

(PECL ds >= 1.0.0)

Ds\Deque::clear — Removes all values from the deque.

Description

public void Ds\Deque::clear ( void )

Removes all values from the deque.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Deque::clear() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);
print_r($deque);

$deque->clear();
print_r($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Deque Object
(
)


Creates a new instance.

  • « Ds\Deque::clear
  • Ds\Deque::contains »
  • PHP Manual
  • Deque
  • Creates a new instance.

Ds\Deque::__construct

(PECL ds >= 1.0.0)

Ds\Deque::__construct — Creates a new instance.

Description

public Ds\Deque::__construct ([ mixed $values ] )

Creates a new instance, using either a traversable object or an tableau for the initial values.

Liste de paramètres

values

A traversable object or an tableau to use for the initial values.

Exemples

Exemple #1 Ds\Deque::__construct() example

<?php
$deque = new \Ds\Deque();
var_dump($deque);

$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Deque)#2 (0) {
}
object(Ds\Deque)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Determines if the deque contains given values.

  • « Ds\Deque::__construct
  • Ds\Deque::copy »
  • PHP Manual
  • Deque
  • Determines if the deque contains given values.

Ds\Deque::contains

(PECL ds >= 1.0.0)

Ds\Deque::contains — Determines if the deque contains given values.

Description

public bool Ds\Deque::contains ([ mixed $...values ] )

Determines if the deque contains all values.

Liste de paramètres

values

Values to check.

Valeurs de retour

FALSE if any of the provided values are not in the deque, TRUE otherwise.

Exemples

Exemple #1 Ds\Deque::contains() example

<?php
$deque = new \Ds\Deque(['a', 'b', 'c', 1, 2, 3]);

var_dump($deque->contains('a'));                // true
var_dump($deque->contains('a', 'b'));           // true
var_dump($deque->contains('c', 'd'));           // false

var_dump($deque->contains(...['c', 'b', 'a'])); // true

// Always strict
var_dump($deque->contains(1));                  // true
var_dump($deque->contains('1'));                // false

var_dump($sequece->contains(...[]));               // true
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Returns a shallow copy of the deque.

  • « Ds\Deque::contains
  • Ds\Deque::count »
  • PHP Manual
  • Deque
  • Returns a shallow copy of the deque.

Ds\Deque::copy

(PECL ds >= 1.0.0)

Ds\Deque::copy — Returns a shallow copy of the deque.

Description

public Ds\Deque Ds\Deque::copy ( void )

Returns a shallow copy of the deque.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A shallow copy of the deque.

Exemples

Exemple #1 Ds\Deque::copy() example

<?php
$a = new \Ds\Deque([1, 2, 3]);
$b = $a->copy();

$b->push(4);

print_r($a);
print_r($b);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Returns the number of values in the collection.

  • « Ds\Deque::copy
  • Ds\Deque::filter »
  • PHP Manual
  • Deque
  • Returns the number of values in the collection.

Ds\Deque::count

(PECL ds >= 1.0.0)

Ds\Deque::count — Returns the number of values in the collection.

See Countable::count()


Creates a new deque using a callable to determine which values to include.

  • « Ds\Deque::count
  • Ds\Deque::find »
  • PHP Manual
  • Deque
  • Creates a new deque using a callable to determine which values to include.

Ds\Deque::filter

(PECL ds >= 1.0.0)

Ds\Deque::filter — Creates a new deque using a callable to determine which values to include.

Description

public Ds\Deque Ds\Deque::filter ([ callable $callback ] )

Creates a new deque using a callable to determine which values to include.

Liste de paramètres

callback

bool callback ( mixed $value )

Optional callable which returns TRUE if the value should be included, FALSE otherwise.

If a callback is not provided, only values which are TRUE (see converting to boolean) will be included.

Valeurs de retour

A new deque containing all the values for which either the callback returned TRUE, or all values that convert to TRUE if a callback was not provided.

Exemples

Exemple #1 Ds\Deque::filter() example using callback function

<?php
$deque = new \Ds\Deque([1, 2, 3, 4, 5]);

var_dump($deque->filter(function($value) {
    return $value % 2 == 0;
}));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Deque)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Exemple #2 Ds\Deque::filter() example without a callback function

<?php
$deque = new \Ds\Deque([0, 1, 'a', true, false]);

var_dump($deque->filter());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Deque)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Attempts to find a value's index.

  • « Ds\Deque::filter
  • Ds\Deque::first »
  • PHP Manual
  • Deque
  • Attempts to find a value's index.

Ds\Deque::find

(PECL ds >= 1.0.0)

Ds\Deque::find — Attempts to find a value's index.

Description

public mixed Ds\Deque::find ( mixed $value )

Returns the index of the value, or FALSE if not found.

Liste de paramètres

value

The value to find.

Valeurs de retour

The index of the value, or FALSE if not found.

Note:

Values will be compared by value and by type.

Exemples

Exemple #1 Ds\Deque::find() example

<?php
$deque = new \Ds\Deque(["a", 1, true]);

var_dump($deque->find("a")); // 0
var_dump($deque->find("b")); // false
var_dump($deque->find("1")); // false
var_dump($deque->find(1));   // 1
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
bool(false)
bool(false)
int(1)


Returns the first value in the deque.

  • « Ds\Deque::find
  • Ds\Deque::get »
  • PHP Manual
  • Deque
  • Returns the first value in the deque.

Ds\Deque::first

(PECL ds >= 1.0.0)

Ds\Deque::first — Returns the first value in the deque.

Description

public mixed Ds\Deque::first ( void )

Returns the first value in the deque.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The first value in the deque.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Deque::first() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->first());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)


Returns the value at a given index.

  • « Ds\Deque::first
  • Ds\Deque::insert »
  • PHP Manual
  • Deque
  • Returns the value at a given index.

Ds\Deque::get

(PECL ds >= 1.0.0)

Ds\Deque::get — Returns the value at a given index.

Description

public mixed Ds\Deque::get ( int $index )

Returns the value at a given index.

Liste de paramètres

index

The index to access, starting at 0.

Valeurs de retour

The value at the requested index.

Erreurs / Exceptions

OutOfRangeException if the index is not valid.

Exemples

Exemple #1 Ds\Deque::get() example

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->get(0));
var_dump($deque->get(1));
var_dump($deque->get(2));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"
string(1) "b"
string(1) "c"

Exemple #2 Ds\Deque::get() example using array syntax

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque[0]);
var_dump($deque[1]);
var_dump($deque[2]);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Inserts values at a given index.

  • « Ds\Deque::get
  • Ds\Deque::isEmpty »
  • PHP Manual
  • Deque
  • Inserts values at a given index.

Ds\Deque::insert

(PECL ds >= 1.0.0)

Ds\Deque::insert — Inserts values at a given index.

Description

public void Ds\Deque::insert ( int $index [, mixed $...values ] )

Inserts values into the deque at a given index.

Liste de paramètres

index

The index at which to insert. 0 <= index <= count

Note:

You can insert at the index equal to the number of values.

values

The value or values to insert.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

OutOfRangeException if the index is not valid.

Exemples

Exemple #1 Ds\Deque::insert() example

<?php
$deque = new \Ds\Deque();

$deque->insert(0, "e");             // [e]
$deque->insert(1, "f");             // [e, f]
$deque->insert(2, "g");             // [e, f, g]
$deque->insert(0, "a", "b");        // [a, b, e, f, g]
$deque->insert(2, ...["c", "d"]);   // [a, b, c, d, e, f, g]

var_dump($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Deque)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Returns whether the deque is empty

  • « Ds\Deque::insert
  • Ds\Deque::join »
  • PHP Manual
  • Deque
  • Returns whether the deque is empty

Ds\Deque::isEmpty

(PECL ds >= 1.0.0)

Ds\Deque::isEmpty — Returns whether the deque is empty

Description

public bool Ds\Deque::isEmpty ( void )

Returns whether the deque is empty.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if the deque is empty, FALSE otherwise.

Exemples

Exemple #1 Ds\Deque::isEmpty() example

<?php
$a = new \Ds\Deque([1, 2, 3]);
$b = new \Ds\Deque();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)


Joins all values together as a string.

  • « Ds\Deque::isEmpty
  • Ds\Deque::jsonSerialize »
  • PHP Manual
  • Deque
  • Joins all values together as a string.

Ds\Deque::join

(PECL ds >= 1.0.0)

Ds\Deque::join — Joins all values together as a string.

Description

public string Ds\Deque::join ([ string $glue ] )

Joins all values together as a string using an optional separator between each value.

Liste de paramètres

glue

An optional string to separate each value.

Valeurs de retour

All values of the deque joined together as a string.

Exemples

Exemple #1 Ds\Deque::join() example using a separator string

<?php
$deque = new \Ds\Deque(["a", "b", "c", 1, 2, 3]);

var_dump($deque->join("|"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(11) "a|b|c|1|2|3"

Exemple #2 Ds\Deque::join() example without a separator string

<?php
$deque = new \Ds\Deque(["a", "b", "c", 1, 2, 3]);

var_dump($deque->join());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(11) "abc123"


Returns a representation that can be converted to JSON.

  • « Ds\Deque::join
  • Ds\Deque::last »
  • PHP Manual
  • Deque
  • Returns a representation that can be converted to JSON.

Ds\Deque::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Deque::jsonSerialize — Returns a representation that can be converted to JSON.

See JsonSerializable::jsonSerialize()

Note:

You should never need to call this directly.


Returns the last value.

  • « Ds\Deque::jsonSerialize
  • Ds\Deque::map »
  • PHP Manual
  • Deque
  • Returns the last value.

Ds\Deque::last

(PECL ds >= 1.0.0)

Ds\Deque::last — Returns the last value.

Description

public mixed Ds\Deque::last ( void )

Returns the last value in the deque.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The last value in the deque.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Deque::last() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->last());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)


Returns the result of applying a callback to each value.

  • « Ds\Deque::last
  • Ds\Deque::merge »
  • PHP Manual
  • Deque
  • Returns the result of applying a callback to each value.

Ds\Deque::map

(PECL ds >= 1.0.0)

Ds\Deque::map — Returns the result of applying a callback to each value.

Description

public Ds\Deque Ds\Deque::map ( callable $callback )

Returns the result of applying a callback function to each value in the deque.

Liste de paramètres

callback

mixed callback ( mixed $value )

A callable to apply to each value in the deque.

The callable should return what the new value will be in the new deque.

Valeurs de retour

The result of applying a callback to each value in the deque.

Note:

The values of the current instance won't be affected.

Exemples

Exemple #1 Ds\Deque::map() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

print_r($deque->map(function($value) { return $value * 2; }));
print_r($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Returns the result of adding all given values to the deque.

  • « Ds\Deque::map
  • Ds\Deque::pop »
  • PHP Manual
  • Deque
  • Returns the result of adding all given values to the deque.

Ds\Deque::merge

(PECL ds >= 1.0.0)

Ds\Deque::merge — Returns the result of adding all given values to the deque.

Description

public Ds\Deque Ds\Deque::merge ( mixed $values )

Returns the result of adding all given values to the deque.

Liste de paramètres

values

A traversable object or an tableau.

Valeurs de retour

The result of adding all given values to the deque, effectively the same as adding the values to a copy, then returning that copy.

Note:

The current instance won't be affected.

Exemples

Exemple #1 Ds\Deque::merge() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->merge([4, 5, 6]));
var_dump($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Deque)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Deque)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Removes and returns the last value.

  • « Ds\Deque::merge
  • Ds\Deque::push »
  • PHP Manual
  • Deque
  • Removes and returns the last value.

Ds\Deque::pop

(PECL ds >= 1.0.0)

Ds\Deque::pop — Removes and returns the last value.

Description

public mixed Ds\Deque::pop ( void )

Removes and returns the last value.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The removed last value.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Deque::pop() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->pop());
var_dump($deque->pop());
var_dump($deque->pop());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)
int(2)
int(1)


Adds values to the end of the deque.

  • « Ds\Deque::pop
  • Ds\Deque::reduce »
  • PHP Manual
  • Deque
  • Adds values to the end of the deque.

Ds\Deque::push

(PECL ds >= 1.0.0)

Ds\Deque::push — Adds values to the end of the deque.

Description

public void Ds\Deque::push ([ mixed $...values ] )

Adds values to the end of the deque.

Liste de paramètres

values

The values to add.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Deque::push() example

<?php
$deque = new \Ds\Deque();

$deque->push("a");
$deque->push("b");
$deque->push("c", "d");
$deque->push(...["e", "f"]);

print_r($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Reduces the deque to a single value using a callback function.

  • « Ds\Deque::push
  • Ds\Deque::remove »
  • PHP Manual
  • Deque
  • Reduces the deque to a single value using a callback function.

Ds\Deque::reduce

(PECL ds >= 1.0.0)

Ds\Deque::reduce — Reduces the deque to a single value using a callback function.

Description

public mixed Ds\Deque::reduce ( callable $callback [, mixed $initial ] )

Reduces the deque to a single value using a callback function.

Liste de paramètres

callback
mixed callback ( mixed $carry , mixed $value )
carry

The return value of the previous callback, or initial if it's the first iteration.

value

The value of the current iteration.

initial

The initial value of the carry value. Can be NULL.

Valeurs de retour

The return value of the final callback.

Exemples

Exemple #1 Ds\Deque::reduce() with initial value example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($deque->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(30)

Exemple #2 Ds\Deque::reduce() without an initial value example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(21)


Removes and returns a value by index.

  • « Ds\Deque::reduce
  • Ds\Deque::reverse »
  • PHP Manual
  • Deque
  • Removes and returns a value by index.

Ds\Deque::remove

(PECL ds >= 1.0.0)

Ds\Deque::remove — Removes and returns a value by index.

Description

public mixed Ds\Deque::remove ( int $index )

Removes and returns a value by index.

Liste de paramètres

index

The index of the value to remove.

Valeurs de retour

The value that was removed.

Erreurs / Exceptions

OutOfRangeException if the index is not valid.

Exemples

Exemple #1 Ds\Deque::remove() example

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->remove(1));
var_dump($deque->remove(0));
var_dump($deque->remove(0));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "b"
string(1) "a"
string(1) "c"


Reverses the deque in-place.

  • « Ds\Deque::remove
  • Ds\Deque::reversed »
  • PHP Manual
  • Deque
  • Reverses the deque in-place.

Ds\Deque::reverse

(PECL ds >= 1.0.0)

Ds\Deque::reverse — Reverses the deque in-place.

Description

public void Ds\Deque::reverse ( void )

Reverses the deque in-place.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Deque::reverse() example

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);
$deque->reverse();

print_r($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => c
    [1] => b
    [2] => a
)


Returns a reversed copy.

  • « Ds\Deque::reverse
  • Ds\Deque::rotate »
  • PHP Manual
  • Deque
  • Returns a reversed copy.

Ds\Deque::reversed

(PECL ds >= 1.0.0)

Ds\Deque::reversed — Returns a reversed copy.

Description

public Ds\Deque Ds\Deque::reversed ( void )

Returns a reversed copy of the deque.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A reversed copy of the deque.

Note:

The current instance is not affected.

Exemples

Exemple #1 Ds\Deque::reversed() example

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

print_r($deque->reversed());
print_r($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Deque Object
(
    [0] => a
    [1] => b
    [2] => c
)


Rotates the deque by a given number of rotations.

  • « Ds\Deque::reversed
  • Ds\Deque::set »
  • PHP Manual
  • Deque
  • Rotates the deque by a given number of rotations.

Ds\Deque::rotate

(PECL ds >= 1.0.0)

Ds\Deque::rotate — Rotates the deque by a given number of rotations.

Description

public void Ds\Deque::rotate ( int $rotations )

Rotates the deque by a given number of rotations, which is equivalent to successively calling $deque->push($deque->shift()) if the number of rotations is positive, or $deque->unshift($deque->pop()) if negative.

Liste de paramètres

rotations

The number of times the deque should be rotated.

Valeurs de retour

Aucune valeur n'est retournée.. The deque of the current instance will be rotated.

Exemples

Exemple #1 Ds\Deque::rotate() example

<?php
$deque = new \Ds\Deque(["a", "b", "c", "d"]);

$deque->rotate(1);  // "a" is shifted, then pushed.
print_r($deque);

$deque->rotate(2);  // "b" and "c" are both shifted, the pushed.
print_r($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Deque Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Updates a value at a given index.

  • « Ds\Deque::rotate
  • Ds\Deque::shift »
  • PHP Manual
  • Deque
  • Updates a value at a given index.

Ds\Deque::set

(PECL ds >= 1.0.0)

Ds\Deque::set — Updates a value at a given index.

Description

public void Ds\Deque::set ( int $index , mixed $value )

Updates a value at a given index.

Liste de paramètres

index

The index of the value to update.

value

The new value.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

OutOfRangeException if the index is not valid.

Exemples

Exemple #1 Ds\Deque::set() example

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

$deque->set(1, "_");
print_r($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => a
    [1] => _
    [2] => c
)

Exemple #2 Ds\Deque::set() example using array syntax

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

$deque[1] = "_";
print_r($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => a
    [1] => _
    [2] => c
)


Removes and returns the first value.

  • « Ds\Deque::set
  • Ds\Deque::slice »
  • PHP Manual
  • Deque
  • Removes and returns the first value.

Ds\Deque::shift

(PECL ds >= 1.0.0)

Ds\Deque::shift — Removes and returns the first value.

Description

public mixed Ds\Deque::shift ( void )

Removes and returns the first value.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The first value, which was removed.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Deque::shift() example

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->shift());
var_dump($deque->shift());
var_dump($deque->shift());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Returns a sub-deque of a given range.

  • « Ds\Deque::shift
  • Ds\Deque::sort »
  • PHP Manual
  • Deque
  • Returns a sub-deque of a given range.

Ds\Deque::slice

(PECL ds >= 1.0.0)

Ds\Deque::slice — Returns a sub-deque of a given range.

Description

public Ds\Deque Ds\Deque::slice ( int $index [, int $length ] )

Creates a sub-deque of a given range.

Liste de paramètres

index

The index at which the sub-deque starts.

If positive, the deque will start at that index in the deque. If negative, the deque will start that far from the end.

length

If a length is given and is positive, the resulting deque will have up to that many values in it. If the length results in an overflow, only values up to the end of the deque will be included. If a length is given and is negative, the deque will stop that many values from the end. If a length is not provided, the resulting deque will contain all values between the index and the end of the deque.

Valeurs de retour

A sub-deque of the given range.

Exemples

Exemple #1 Ds\Deque::slice() example

<?php
$deque = new \Ds\Deque(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($deque->slice(2));

// Slice from 1, for a length of 3
print_r($deque->slice(1, 3));

// Slice from 1 onwards
print_r($deque->slice(1));

// Slice from 2 from the end onwards
print_r($deque->slice(-2));

// Slice from 1 to 1 from the end
print_r($deque->slice(1, -1));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Deque Object
(
    [0] => d
    [1] => e
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
)


Sorts the deque in-place.

  • « Ds\Deque::slice
  • Ds\Deque::sorted »
  • PHP Manual
  • Deque
  • Sorts the deque in-place.

Ds\Deque::sort

(PECL ds >= 1.0.0)

Ds\Deque::sort — Sorts the deque in-place.

Description

public void Ds\Deque::sort ([ callable $comparator ] )

Sorts the deque in-place, using an optional comparator function.

Liste de paramètres

comparator

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
Attention

Returning non-integer values from the comparison function, such as float, will result in an internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Deque::sort() example

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);
$deque->sort();

print_r($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemple #2 Ds\Deque::sort() example using a comparator

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

$deque->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns a sorted copy.

  • « Ds\Deque::sort
  • Ds\Deque::sum »
  • PHP Manual
  • Deque
  • Returns a sorted copy.

Ds\Deque::sorted

(PECL ds >= 1.0.0)

Ds\Deque::sorted — Returns a sorted copy.

Description

public Ds\Deque Ds\Deque::sorted ([ callable $comparator ] )

Returns a sorted copy, using an optional comparator function.

Liste de paramètres

comparator

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
Attention

Returning non-integer values from the comparison function, such as float, will result in an internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Valeurs de retour

Returns a sorted copy of the deque.

Exemples

Exemple #1 Ds\Deque::sorted() example

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

print_r($deque->sorted());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemple #2 Ds\Deque::sorted() example using a comparator

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

$sorted = $deque->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns the sum of all values in the deque.

  • « Ds\Deque::sorted
  • Ds\Deque::toArray »
  • PHP Manual
  • Deque
  • Returns the sum of all values in the deque.

Ds\Deque::sum

(PECL ds >= 1.0.0)

Ds\Deque::sum — Returns the sum of all values in the deque.

Description

public number Ds\Deque::sum ( void )

Returns the sum of all values in the deque.

Note:

Arrays and objects are considered equal to zero when calculating the sum.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The sum of all the values in the deque as either a float or int depending on the values in the deque.

Exemples

Exemple #1 Ds\Deque::sum() integer example

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->sum());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(6)

Exemple #2 Ds\Deque::sum() float example

<?php
$deque = new \Ds\Deque([1, 2.5, 3]);
var_dump($deque->sum());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

float(6.5)


Converts the deque to an tableau.

  • « Ds\Deque::sum
  • Ds\Deque::unshift »
  • PHP Manual
  • Deque
  • Converts the deque to an tableau.

Ds\Deque::toArray

(PECL ds >= 1.0.0)

Ds\Deque::toArray — Converts the deque to an tableau.

Description

public array Ds\Deque::toArray ( void )

Converts the deque to an tableau.

Note:

Casting to an tableau is not supported yet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An tableau containing all the values in the same order as the deque.

Exemples

Exemple #1 Ds\Deque::toArray() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->toArray());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Adds values to the front of the deque.

  • « Ds\Deque::toArray
  • Map »
  • PHP Manual
  • Deque
  • Adds values to the front of the deque.

Ds\Deque::unshift

(PECL ds >= 1.0.0)

Ds\Deque::unshift — Adds values to the front of the deque.

Description

public void Ds\Deque::unshift ([ mixed $values ] )

Adds values to the front of the deque, moving all the current values forward to make room for the new values.

Liste de paramètres

values

The values to add to the front of the deque.

Note:

Multiple values will be added in the same order that they are passed.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Deque::unshift() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

$deque->unshift("a");
$deque->unshift("b", "c");

print_r($deque);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


The Map class

(No version information available, might only be in Git)

Introduction

A Map is a sequential collection of key-value pairs, almost identical to an tableau used in a similar context. Keys can be any type, but must be unique. Values are replaced if added to the map using the same key.

Strengths

  • Keys and values can be any type, including objects.
  • Supports array syntax (square brackets).
  • Insertion order is preserved.
  • Performance and memory efficiency is very similar to an tableau.
  • Automatically frees allocated memory when its size drops low enough.

Weaknesses

  • Can’t be converted to an array when objects are used as keys.

Synopsis de la classe

Ds\Map implements Ds\Collection {
/* Constants */
const int MIN_CAPACITY = 16 ;
/* Méthodes */
public void allocate ( int $capacity )
public void apply ( callable $callback )
public int capacity ( void )
public void clear ( void )
public Ds\Map copy ( void )
public Ds\Map diff ( Ds\Map $map )
public Ds\Map filter ([ callable $callback ] )
public Ds\Pair first ( void )
public mixed get ( mixed $key [, mixed $default ] )
public bool hasKey ( mixed $key )
public bool hasValue ( mixed $value )
public Ds\Map intersect ( Ds\Map $map )
public bool isEmpty ( void )
public Ds\Set keys ( void )
public void ksort ([ callable $comparator ] )
public Ds\Map ksorted ([ callable $comparator ] )
public Ds\Pair last ( void )
public Ds\Map map ( callable $callback )
public Ds\Map merge ( mixed $values )
public Ds\Sequence pairs ( void )
public void put ( mixed $key , mixed $value )
public void putAll ( mixed $pairs )
public mixed reduce ( callable $callback [, mixed $initial ] )
public mixed remove ( mixed $key [, mixed $default ] )
public void reverse ( void )
public Ds\Map reversed ( void )
public Ds\Pair skip ( int $position )
public Ds\Map slice ( int $index [, int $length ] )
public void sort ([ callable $comparator ] )
public Ds\Map sorted ([ callable $comparator ] )
public number sum ( void )
public array toArray ( void )
public Ds\Map union ( Ds\Map $map )
public Ds\Sequence values ( void )
public Ds\Map xor ( Ds\Map $map )
}

Constantes pré-définies

Ds\Map::MIN_CAPACITY

Sommaire

  • Ds\Map::allocate — Allocates enough memory for a required capacity.
  • Ds\Map::apply — Updates all values by applying a callback function to each value.
  • Ds\Map::capacity — Returns the current capacity.
  • Ds\Map::clear — Removes all values.
  • Ds\Map::__construct — Creates a new instance.
  • Ds\Map::copy — Returns a shallow copy of the map.
  • Ds\Map::count — Returns the number of values in the map.
  • Ds\Map::diff — Creates a new map using keys that aren't in another map.
  • Ds\Map::filter — Creates a new map using a callable to determine which pairs to include.
  • Ds\Map::first — Returns the first pair in the map.
  • Ds\Map::get — Returns the value for a given key.
  • Ds\Map::hasKey — Determines whether the map contains a given key.
  • Ds\Map::hasValue — Determines whether the map contains a given value.
  • Ds\Map::intersect — Creates a new map by intersecting keys with another map.
  • Ds\Map::isEmpty — Returns whether the map is empty
  • Ds\Map::jsonSerialize — Returns a representation that can be converted to JSON.
  • Ds\Map::keys — Returns a set of the map's keys.
  • Ds\Map::ksort — Sorts the map in-place by key.
  • Ds\Map::ksorted — Returns a copy, sorted by key.
  • Ds\Map::last — Returns the last pair of the map.
  • Ds\Map::map — Returns the result of applying a callback to each value.
  • Ds\Map::merge — Returns the result of adding all given associations.
  • Ds\Map::pairs — Returns a sequence containing all the pairs of the map.
  • Ds\Map::put — Associates a key with a value.
  • Ds\Map::putAll — Associates all key-value pairs of a traversable object or array.
  • Ds\Map::reduce — Reduces the map to a single value using a callback function.
  • Ds\Map::remove — Removes and returns a value by key.
  • Ds\Map::reverse — Reverses the map in-place.
  • Ds\Map::reversed — Returns a reversed copy.
  • Ds\Map::skip — Returns the pair at a given positional index.
  • Ds\Map::slice — Returns a subset of the map defined by a starting index and length.
  • Ds\Map::sort — Sorts the map in-place by value.
  • Ds\Map::sorted — Returns a copy, sorted by value.
  • Ds\Map::sum — Returns the sum of all values in the map.
  • Ds\Map::toArray — Converts the map to an tableau.
  • Ds\Map::union — Creates a new map using values from the current instance and another map.
  • Ds\Map::values — Returns a sequence of the map's values.
  • Ds\Map::xor — Creates a new map using keys of either the current instance or of another map, but not of both.


Allocates enough memory for a required capacity.

  • « Map
  • Ds\Map::apply »
  • PHP Manual
  • Map
  • Allocates enough memory for a required capacity.

Ds\Map::allocate

(PECL ds >= 1.0.0)

Ds\Map::allocate — Allocates enough memory for a required capacity.

Description

public void Ds\Map::allocate ( int $capacity )

Allocates enough memory for a required capacity.

Liste de paramètres

capacity

The number of values for which capacity should be allocated.

Note:

Capacity will stay the same if this value is less than or equal to the current capacity.

Note:

Capacity will always be rounded up to the nearest power of 2.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Map::allocate() example

<?php
$map = new \Ds\Map();
var_dump($map->capacity());

$map->allocate(100);
var_dump($map->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(16)
int(128)


Updates all values by applying a callback function to each value.

  • « Ds\Map::allocate
  • Ds\Map::capacity »
  • PHP Manual
  • Map
  • Updates all values by applying a callback function to each value.

Ds\Map::apply

(PECL ds >= 1.0.0)

Ds\Map::apply — Updates all values by applying a callback function to each value.

Description

public void Ds\Map::apply ( callable $callback )

Updates all values by applying a callback function to each value in the map.

Liste de paramètres

callback

mixed callback ( mixed $key , mixed $value )

A callable to apply to each value in the map.

The callback should return what the value should be replaced by.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Map::apply() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$map->apply(function($key, $value) { return $value * 2; });

print_r($map);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 4
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 6
        )

)


Returns the current capacity.

  • « Ds\Map::apply
  • Ds\Map::clear »
  • PHP Manual
  • Map
  • Returns the current capacity.

Ds\Map::capacity

(PECL ds >= 1.0.0)

Ds\Map::capacity — Returns the current capacity.

Description

public int Ds\Map::capacity ( void )

Returns the current capacity.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current capacity.

Exemples

Exemple #1 Ds\Map::capacity() example

<?php
$map = new \Ds\Map();
var_dump($map->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(16)


Removes all values.

  • « Ds\Map::capacity
  • Ds\Map::__construct »
  • PHP Manual
  • Map
  • Removes all values.

Ds\Map::clear

(PECL ds >= 1.0.0)

Ds\Map::clear — Removes all values.

Description

public void Ds\Map::clear ( void )

Removes all values from the map.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Map::clear() example

<?php
$map = new \Ds\Map([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);
print_r($map);

$map->clear();
print_r($map);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)
Ds\Map Object
(
)


Creates a new instance.

  • « Ds\Map::clear
  • Ds\Map::copy »
  • PHP Manual
  • Map
  • Creates a new instance.

Ds\Map::__construct

(PECL ds >= 1.0.0)

Ds\Map::__construct — Creates a new instance.

Description

public Ds\Map::__construct ([ mixed $...values ] )

Creates a new instance, using either a traversable object or an tableau for the initial values.

Liste de paramètres

values

A traversable object or an tableau to use for the initial values.

Exemples

Exemple #1 Ds\Map::__construct() example

<?php
$map = new \Ds\Map();
var_dump($map);

$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Map)#1 (0) {
}
object(Ds\Map)#2 (3) {
  [0]=>
  object(Ds\Pair)#1 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
  [1]=>
  object(Ds\Pair)#3 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [2]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}


Returns a shallow copy of the map.

  • « Ds\Map::__construct
  • Ds\Map::count »
  • PHP Manual
  • Map
  • Returns a shallow copy of the map.

Ds\Map::copy

(PECL ds >= 1.0.0)

Ds\Map::copy — Returns a shallow copy of the map.

Description

public Ds\Map Ds\Map::copy ( void )

Returns a shallow copy of the map.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a shallow copy of the map.

Exemples

Exemple #1 Ds\Map::copy() example

<?php
$map = new \Ds\Map([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);

print_r($map->copy());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Returns the number of values in the map.

  • « Ds\Map::copy
  • Ds\Map::diff »
  • PHP Manual
  • Map
  • Returns the number of values in the map.

Ds\Map::count

(PECL ds >= 1.0.0)

Ds\Map::count — Returns the number of values in the map.

See Countable::count()


Creates a new map using keys that aren't in another map.

  • « Ds\Map::count
  • Ds\Map::filter »
  • PHP Manual
  • Map
  • Creates a new map using keys that aren't in another map.

Ds\Map::diff

(PECL ds >= 1.0.0)

Ds\Map::diff — Creates a new map using keys that aren't in another map.

Description

public Ds\Map Ds\Map::diff ( Ds\Map $map )

Returns the result of removing all keys from the current instance that are present in a given map.

A \ B = {x ? A | x ? B}

Liste de paramètres

map

The map containing the keys to exclude in the resulting map.

Valeurs de retour

The result of removing all keys from the current instance that are present in a given map.

See Also

  • » Compliment on Wikipedia

Exemples

Exemple #1 Ds\Map::diff() example

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

var_dump($a->diff($b));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Map)#3 (1) {
  [0]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
}


Creates a new map using a callable to determine which pairs to include.

  • « Ds\Map::diff
  • Ds\Map::first »
  • PHP Manual
  • Map
  • Creates a new map using a callable to determine which pairs to include.

Ds\Map::filter

(PECL ds >= 1.0.0)

Ds\Map::filter — Creates a new map using a callable to determine which pairs to include.

Description

public Ds\Map Ds\Map::filter ([ callable $callback ] )

Creates a new map using a callable to determine which pairs to include.

Liste de paramètres

callback

bool callback ( mixed $key , mixed $value )

Optional callable which returns TRUE if the pair should be included, FALSE otherwise.

If a callback is not provided, only values which are TRUE (see converting to boolean) will be included.

Valeurs de retour

A new map containing all the pairs for which either the callback returned TRUE, or all values that convert to TRUE if a callback was not provided.

Exemples

Exemple #1 Ds\Map::filter() example using callback function

<?php
$map = new \Ds\Map(["a", "b", "c", "d", "e"]);

var_dump($map->filter(function($key, $value) {
    return $key % 2 == 0;
}));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Map)#3 (3) {
  [0]=>
  object(Ds\Pair)#2 (2) {
    ["key"]=>
    int(0)
    ["value"]=>
    string(1) "a"
  }
  [1]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    int(2)
    ["value"]=>
    string(1) "c"
  }
  [2]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    int(4)
    ["value"]=>
    string(1) "e"
  }
}

Exemple #2 Ds\Map::filter() example without a callback function

<?php
$map = new \Ds\Map(["a" => 0, "b" => 1, "c" => true, "d" => false]);

var_dump($map->filter());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Map)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Returns the first pair in the map.

  • « Ds\Map::filter
  • Ds\Map::get »
  • PHP Manual
  • Map
  • Returns the first pair in the map.

Ds\Map::first

(PECL ds >= 1.0.0)

Ds\Map::first — Returns the first pair in the map.

Description

public Ds\Pair Ds\Map::first ( void )

Returns the first pair in the map.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The first pair in the map.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Map::first() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->first());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "a"
  ["value"]=>
  int(1)
}


Returns the value for a given key.

  • « Ds\Map::first
  • Ds\Map::hasKey »
  • PHP Manual
  • Map
  • Returns the value for a given key.

Ds\Map::get

(PECL ds >= 1.0.0)

Ds\Map::get — Returns the value for a given key.

Description

public mixed Ds\Map::get ( mixed $key [, mixed $default ] )

Returns the value for a given key, or an optional default value if the key could not be found.

Note:

Keys of type object are supported. If an object implements Ds\Hashable, equality will be determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.

Note:

You can also use array syntax to access values by key, eg. $map["key"].

Attention

Be careful when using array syntax. Scalar keys will be coerced to integers by the engine. For example, $map["1"] will attempt to access int(1), while $map->get("1") will correctly look up the string key.

See Arrays.

Liste de paramètres

key

The key to look up.

default

The optional default value, returned if the key could not be found.

Valeurs de retour

The value mapped to the given key, or the default value if provided and the key could not be found in the map.

Erreurs / Exceptions

OutOfBoundsException if the key could not be found and a default value was not provided.

Exemples

Exemple #1 Ds\Map::get() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->get("a"));       // 1
var_dump($map->get("d", 10));   // 10 (default used)
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)
int(10)

Exemple #2 Ds\Map::get() example using array syntax

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map["a"])); // 1
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)


Determines whether the map contains a given key.

  • « Ds\Map::get
  • Ds\Map::hasValue »
  • PHP Manual
  • Map
  • Determines whether the map contains a given key.

Ds\Map::hasKey

(PECL ds >= 1.0.0)

Ds\Map::hasKey — Determines whether the map contains a given key.

Description

public bool Ds\Map::hasKey ( mixed $key )

Determines whether the map contains a given key.

Liste de paramètres

key

The key to look for.

Valeurs de retour

Returns TRUE if the key could found, FALSE otherwise.

Exemples

Exemple #1 Ds\Map::hasKey() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->hasKey("a")); // true
var_dump($map->hasKey("e")); // false
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)


Determines whether the map contains a given value.

  • « Ds\Map::hasKey
  • Ds\Map::intersect »
  • PHP Manual
  • Map
  • Determines whether the map contains a given value.

Ds\Map::hasValue

(PECL ds >= 1.0.0)

Ds\Map::hasValue — Determines whether the map contains a given value.

Description

public bool Ds\Map::hasValue ( mixed $value )

Determines whether the map contains a given value.

Liste de paramètres

value

The value to look for.

Valeurs de retour

Returns TRUE if the value could found, FALSE otherwise.

Exemples

Exemple #1 Ds\Map::hasValue() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->hasValue(1)); // true
var_dump($map->hasValue(4)); // false
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)


Creates a new map by intersecting keys with another map.

  • « Ds\Map::hasValue
  • Ds\Map::isEmpty »
  • PHP Manual
  • Map
  • Creates a new map by intersecting keys with another map.

Ds\Map::intersect

(PECL ds >= 1.0.0)

Ds\Map::intersect — Creates a new map by intersecting keys with another map.

Description

public Ds\Map Ds\Map::intersect ( Ds\Map $map )

Creates a new map containing the pairs of the current instance whose keys are also present in the given map. In other words, returns a copy of the current instance with all keys removed that are not also in the other map.

A n B = {x : x ? A ? x ? B}

Note:

Values from the current instance will be kept.

Liste de paramètres

map

The other map, containing the keys to intersect with.

Valeurs de retour

The key intersection of the current instance and another map.

See Also

  • » Intersection on Wikipedia

Exemples

Exemple #1 Ds\Map::intersect() example

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

var_dump($a->intersect($b));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Map)#3 (2) {
  [0]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [1]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}


Returns whether the map is empty

  • « Ds\Map::intersect
  • Ds\Map::jsonSerialize »
  • PHP Manual
  • Map
  • Returns whether the map is empty

Ds\Map::isEmpty

(PECL ds >= 1.0.0)

Ds\Map::isEmpty — Returns whether the map is empty

Description

public bool Ds\Map::isEmpty ( void )

Returns whether the map is empty.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if the map is empty, FALSE otherwise.

Exemples

Exemple #1 Ds\Map::isEmpty() example

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)


Returns a representation that can be converted to JSON.

  • « Ds\Map::isEmpty
  • Ds\Map::keys »
  • PHP Manual
  • Map
  • Returns a representation that can be converted to JSON.

Ds\Map::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Map::jsonSerialize — Returns a representation that can be converted to JSON.

See JsonSerializable::jsonSerialize()

Note:

You should never need to call this directly.


Returns a set of the map's keys.

  • « Ds\Map::jsonSerialize
  • Ds\Map::ksort »
  • PHP Manual
  • Map
  • Returns a set of the map's keys.

Ds\Map::keys

(PECL ds >= 1.0.0)

Ds\Map::keys — Returns a set of the map's keys.

Description

public Ds\Set Ds\Map::keys ( void )

Returns a set containing all the keys of the map, in the same order.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A Ds\Set containing all the keys of the map.

Exemples

Exemple #1 Ds\Map::keys() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->keys());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Set)#2 (3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
}


Sorts the map in-place by key.

  • « Ds\Map::keys
  • Ds\Map::ksorted »
  • PHP Manual
  • Map
  • Sorts the map in-place by key.

Ds\Map::ksort

(PECL ds >= 1.0.0)

Ds\Map::ksort — Sorts the map in-place by key.

Description

public void Ds\Map::ksort ([ callable $comparator ] )

Sorts the map in-place by key, using an optional comparator function.

Liste de paramètres

comparator

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
Attention

Returning non-integer values from the comparison function, such as float, will result in an internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Map::ksort() example

<?php
$map = new \Ds\Map(["b" => 2, "c" => 3, "a" => 1]);
$map->ksort();

print_r($map);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Exemple #2 Ds\Map::ksort() example using a comparator

<?php
$map = new \Ds\Map([1 => "x", 2 => "y", 0 => "z"]);

// Reverse
$map->ksort(function($a, $b) {
    return $b <=> $a;
});

print_r($map);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 2
            [value] => y
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => x
        )

    [2] => Ds\Pair Object
        (
            [key] => 0
            [value] => z
        )

)


Returns a copy, sorted by key.

  • « Ds\Map::ksort
  • Ds\Map::last »
  • PHP Manual
  • Map
  • Returns a copy, sorted by key.

Ds\Map::ksorted

(No version information available, might only be in Git)

Ds\Map::ksorted — Returns a copy, sorted by key.

Description

public Ds\Map Ds\Map::ksorted ([ callable $comparator ] )

Returns a copy sorted by key, using an optional comparator function.

Liste de paramètres

comparator

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
Attention

Returning non-integer values from the comparison function, such as float, will result in an internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Valeurs de retour

Returns a copy of the map, sorted by key.

Exemples

Exemple #1 Ds\Map::ksorted() example

<?php
$map = new \Ds\Map(["b" => 2, "c" => 3, "a" => 1]);

print_r($map->ksorted());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Exemple #2 Ds\Map::ksorted() example using a comparator

<?php
$map = new \Ds\Map([1 => "x", 2 => "y", 0 => "z"]);

// Reverse
$sorted = $map->ksorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 2
            [value] => y
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => x
        )

    [2] => Ds\Pair Object
        (
            [key] => 0
            [value] => z
        )

)


Returns the last pair of the map.

  • « Ds\Map::ksorted
  • Ds\Map::map »
  • PHP Manual
  • Map
  • Returns the last pair of the map.

Ds\Map::last

(PECL ds >= 1.0.0)

Ds\Map::last — Returns the last pair of the map.

Description

public Ds\Pair Ds\Map::last ( void )

Returns the last pair of the map.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The last pair of the map.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Map::last() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->last());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "c"
  ["value"]=>
  int(3)
}


Returns the result of applying a callback to each value.

  • « Ds\Map::last
  • Ds\Map::merge »
  • PHP Manual
  • Map
  • Returns the result of applying a callback to each value.

Ds\Map::map

(PECL ds >= 1.0.0)

Ds\Map::map — Returns the result of applying a callback to each value.

Description

public Ds\Map Ds\Map::map ( callable $callback )

Returns the result of applying a callback function to each value of the map.

Liste de paramètres

callback

mixed callback ( mixed $key , mixed $value )

A callable to apply to each value in the map.

The callable should return what the key will be mapped to in the resulting map.

Valeurs de retour

The result of applying a callback to each value in the map.

Note:

The keys and values of the current instance won't be affected.

Exemples

Exemple #1 Ds\Map::map() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->map(function($key, $value) { return $value * 2; }));
print_r($map);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 4
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 6
        )

)
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Returns the result of adding all given associations.

  • « Ds\Map::map
  • Ds\Map::pairs »
  • PHP Manual
  • Map
  • Returns the result of adding all given associations.

Ds\Map::merge

(PECL ds >= 1.0.0)

Ds\Map::merge — Returns the result of adding all given associations.

Description

public Ds\Map Ds\Map::merge ( mixed $values )

Returns the result of associating all keys of a given traversable object or tableau with their corresponding values, combined with the current instance.

Note:

Values of the current instance will be overwritten by those provided where keys are equal.

Liste de paramètres

values

A traversable object or an tableau.

Valeurs de retour

The result of associating all keys of a given traversable object or tableau with their corresponding values, combined with the current instance.

Note:

The current instance won't be affected.

Exemples

Exemple #1 Ds\Map::merge() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->merge(["a" => 10, "e" => 50]));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 10
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [3] => Ds\Pair Object
        (
            [key] => e
            [value] => 50
        )

)


Returns a sequence containing all the pairs of the map.

  • « Ds\Map::merge
  • Ds\Map::put »
  • PHP Manual
  • Map
  • Returns a sequence containing all the pairs of the map.

Ds\Map::pairs

(PECL ds >= 1.0.0)

Ds\Map::pairs — Returns a sequence containing all the pairs of the map.

Description

public Ds\Sequence Ds\Map::pairs ( void )

Returns a Ds\Sequence containing all the pairs of the map.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Ds\Sequence containing all the pairs of the map.

Exemples

Exemple #1 Ds\Map::pairs() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->pairs());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Map)#8 (3) {
  [0]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
  [1]=>
  object(Ds\Pair)#6 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [2]=>
  object(Ds\Pair)#7 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}
p


Associates a key with a value.

  • « Ds\Map::pairs
  • Ds\Map::putAll »
  • PHP Manual
  • Map
  • Associates a key with a value.

Ds\Map::put

(PECL ds >= 1.0.0)

Ds\Map::put — Associates a key with a value.

Description

public void Ds\Map::put ( mixed $key , mixed $value )

Associates a key with a value, overwriting a previous association if one exists.

Note:

Keys of type object are supported. If an object implements Ds\Hashable, equality will be determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.

Note:

You can also use array syntax to associate values by key, eg. $map["key"] = $value.

Attention

Be careful when using array syntax. Scalar keys will be coerced to integers by the engine. For example, $map["1"] will attempt to access int(1), while $map->get("1") will correctly look up the string key.

See Arrays.

Liste de paramètres

key

The key to associate the value with.

value

The value to be associated with the key.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Map::put() example

<?php
$map = new \Ds\Map();

$map->put("a", 1);
$map->put("b", 2);
$map->put("c", 3);

print_r($map);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Exemple #2 Ds\Map::put() example using objects as keys

<?php
class HashableObject implements \Ds\Hashable
{
    /**
     * An arbitrary value to use as the hash value. Does not define equality.
     */
    private $value;

    public function __construct($value)
    {
        $this->value = $value;
    }

    public function hash()
    {
        return $this->value;
    }

    public function equals($obj): bool
    {
        return $this->value === $obj->value;
    }
}

$map = new \Ds\Map();

$obj = new \ArrayIterator([]);

// Using the same instance multiple times will overwrite the previous value.
$map->put($obj, 1);
$map->put($obj, 2);

// Using multiple instances of the same object will create new associations.
$map->put(new \stdClass(), 3);
$map->put(new \stdClass(), 4);

// Using multiple instances of equal hashable objects will overwrite previous values.
$map->put(new \HashableObject(1), 5);
$map->put(new \HashableObject(1), 6);
$map->put(new \HashableObject(2), 7);
$map->put(new \HashableObject(2), 8);

var_dump($map);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Map)#1 (5) {
  [0]=>
  object(Ds\Pair)#7 (2) {
    ["key"]=>
    object(ArrayIterator)#2 (1) {
      ["storage":"ArrayIterator":private]=>
      array(0) {
      }
    }
    ["value"]=>
    int(2)
  }
  [1]=>
  object(Ds\Pair)#8 (2) {
    ["key"]=>
    object(stdClass)#3 (0) {
    }
    ["value"]=>
    int(3)
  }
  [2]=>
  object(Ds\Pair)#9 (2) {
    ["key"]=>
    object(stdClass)#4 (0) {
    }
    ["value"]=>
    int(4)
  }
  [3]=>
  object(Ds\Pair)#10 (2) {
    ["key"]=>
    object(HashableObject)#5 (1) {
      ["value":"HashableObject":private]=>
      int(1)
    }
    ["value"]=>
    int(6)
  }
  [4]=>
  object(Ds\Pair)#11 (2) {
    ["key"]=>
    object(HashableObject)#6 (1) {
      ["value":"HashableObject":private]=>
      int(2)
    }
    ["value"]=>
    int(8)
  }
}


Associates all key-value pairs of a traversable object or array.

  • « Ds\Map::put
  • Ds\Map::reduce »
  • PHP Manual
  • Map
  • Associates all key-value pairs of a traversable object or array.

Ds\Map::putAll

(PECL ds >= 1.0.2)

Ds\Map::putAll — Associates all key-value pairs of a traversable object or array.

Description

public void Ds\Map::putAll ( mixed $pairs )

Associates all key-value pairs of a traversable object or tableau.

Note:

Keys of type object are supported. If an object implements Ds\Hashable, equality will be determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.

Liste de paramètres

pairs

traversable object or tableau.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Map::putAll() example

<?php
$map = new \Ds\Map();

$map->putAll([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);

print_r($map);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Reduces the map to a single value using a callback function.

  • « Ds\Map::putAll
  • Ds\Map::remove »
  • PHP Manual
  • Map
  • Reduces the map to a single value using a callback function.

Ds\Map::reduce

(PECL ds >= 1.0.0)

Ds\Map::reduce — Reduces the map to a single value using a callback function.

Description

public mixed Ds\Map::reduce ( callable $callback [, mixed $initial ] )

Reduces the map to a single value using a callback function.

Liste de paramètres

callback
mixed callback ( mixed $carry , mixed $key , mixed $value )
carry

The return value of the previous callback, or initial if it's the first iteration.

key

The key of the current iteration.

value

The value of the current iteration.

initial

The initial value of the carry value. Can be NULL.

Valeurs de retour

The return value of the final callback.

Exemples

Exemple #1 Ds\Map::reduce() with initial value example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

$callback = function($carry, $key, $value) {
    return $carry * $value;
};

var_dump($map->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(30)

Exemple #2 Ds\Map::reduce() without an initial value example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->reduce(function($carry, $key, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(21)


Removes and returns a value by key.

  • « Ds\Map::reduce
  • Ds\Map::reverse »
  • PHP Manual
  • Map
  • Removes and returns a value by key.

Ds\Map::remove

(PECL ds >= 1.0.0)

Ds\Map::remove — Removes and returns a value by key.

Description

public mixed Ds\Map::remove ( mixed $key [, mixed $default ] )

Removes and returns a value by key, or return an optional default value if the key could not be found.

Note:

Keys of type object are supported. If an object implements Ds\Hashable, equality will be determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.

Note:

You can also use array syntax to access values by key, eg. $map["key"].

Attention

Be careful when using array syntax. Scalar keys will be coerced to integers by the engine. For example, $map["1"] will attempt to access int(1), while $map->get("1") will correctly look up the string key.

See Arrays.

Liste de paramètres

key

The key to remove.

default

The optional default value, returned if the key could not be found.

Valeurs de retour

The value that was removed, or the default value if provided and the key could not be found in the map.

Erreurs / Exceptions

OutOfBoundsException if the key could not be found and a default value was not provided.

Exemples

Exemple #1 Ds\Map::remove() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->remove("a"));      //  1
var_dump($map->remove("e", 10));  // 10 (default used)
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)
int(10)


Reverses the map in-place.

  • « Ds\Map::remove
  • Ds\Map::reversed »
  • PHP Manual
  • Map
  • Reverses the map in-place.

Ds\Map::reverse

(PECL ds >= 1.0.0)

Ds\Map::reverse — Reverses the map in-place.

Description

public void Ds\Map::reverse ( void )

Reverses the map in-place.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Map::reverse() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$map->reverse();

print_r($map);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

)


Returns a reversed copy.

  • « Ds\Map::reverse
  • Ds\Map::skip »
  • PHP Manual
  • Map
  • Returns a reversed copy.

Ds\Map::reversed

(PECL ds >= 1.0.0)

Ds\Map::reversed — Returns a reversed copy.

Description

public Ds\Map Ds\Map::reversed ( void )

Returns a reversed copy of the map.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A reversed copy of the map.

Note:

The current instance is not affected.

Exemples

Exemple #1 Ds\Map::reversed() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->reversed());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

)


Returns the pair at a given positional index.

  • « Ds\Map::reversed
  • Ds\Map::slice »
  • PHP Manual
  • Map
  • Returns the pair at a given positional index.

Ds\Map::skip

(PECL ds >= 1.0.0)

Ds\Map::skip — Returns the pair at a given positional index.

Description

public Ds\Pair Ds\Map::skip ( int $position )

Returns the pair at a given zero-based position.

Liste de paramètres

position

The zero-based positional index to return.

Valeurs de retour

Returns the Ds\Pair at the given position.

Erreurs / Exceptions

OutOfRangeException if the position is not valid.

Exemples

Exemple #1 Ds\Map::skip() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->skip(1));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "b"
  ["value"]=>
  int(2)
}


Returns a subset of the map defined by a starting index and length.

  • « Ds\Map::skip
  • Ds\Map::sort »
  • PHP Manual
  • Map
  • Returns a subset of the map defined by a starting index and length.

Ds\Map::slice

(PECL ds >= 1.0.0)

Ds\Map::slice — Returns a subset of the map defined by a starting index and length.

Description

public Ds\Map Ds\Map::slice ( int $index [, int $length ] )

Returns a subset of the map defined by a starting index and length.

Liste de paramètres

index

The index at which the range starts.

If positive, the range will start at that index in the map. If negative, the range will start that far from the end.

length

If a length is given and is positive, the resulting map will have up to that many pairs in it. If a length is given and is negative, the range will stop that many pairs from the end. If the length results in an overflow, only pairs up to the end of the map will be included. If a length is not provided, the resulting map will contain all pairs between the index and the end of the map.

Valeurs de retour

A subset of the map defined by a starting index and length.

Exemples

Exemple #1 Ds\Map::slice() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5]);

// Slice from 2 onwards
print_r($map->slice(2)->toArray());

// Slice from 1, for a length of 3
print_r($map->slice(1, 3)->toArray());

// Slice from 1 onwards
print_r($map->slice(1)->toArray());

// Slice from 2 from the end onwards
print_r($map->slice(-2)->toArray());

// Slice from 1 to 1 from the end
print_r($map->slice(1, -1)->toArray());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [c] => 3
    [d] => 4
    [e] => 5
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
    [e] => 5
)
Array
(
    [d] => 4
    [e] => 5
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
)


Sorts the map in-place by value.

  • « Ds\Map::slice
  • Ds\Map::sorted »
  • PHP Manual
  • Map
  • Sorts the map in-place by value.

Ds\Map::sort

(PECL ds >= 1.0.0)

Ds\Map::sort — Sorts the map in-place by value.

Description

public void Ds\Map::sort ([ callable $comparator ] )

Sorts the map in-place by value, using an optional comparator function.

Liste de paramètres

comparator

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
Attention

Returning non-integer values from the comparison function, such as float, will result in an internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Map::sort() example

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);
$map->sort();

print_r($map);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

)

Exemple #2 Ds\Map::sort() example using a comparator

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

$map->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($map);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

)


Returns a copy, sorted by value.

  • « Ds\Map::sort
  • Ds\Map::sum »
  • PHP Manual
  • Map
  • Returns a copy, sorted by value.

Ds\Map::sorted

(PECL ds >= 1.0.0)

Ds\Map::sorted — Returns a copy, sorted by value.

Description

public Ds\Map Ds\Map::sorted ([ callable $comparator ] )

Returns a copy, sorted by value using an optional comparator function.

Liste de paramètres

comparator

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
Attention

Returning non-integer values from the comparison function, such as float, will result in an internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Valeurs de retour

Returns a copy of the map, sorted by value.

Exemples

Exemple #1 Ds\Map::sort() example

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

print_r($map->sorted());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

)

Exemple #2 Ds\Map::sort() example using a comparator

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

// Reverse
$sorted = $map->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

)


Returns the sum of all values in the map.

  • « Ds\Map::sorted
  • Ds\Map::toArray »
  • PHP Manual
  • Map
  • Returns the sum of all values in the map.

Ds\Map::sum

(No version information available, might only be in Git)

Ds\Map::sum — Returns the sum of all values in the map.

Description

public number Ds\Map::sum ( void )

Returns the sum of all values in the map.

Note:

Arrays and objects are considered equal to zero when calculating the sum.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The sum of all the values in the map as either a float or int depending on the values in the map.

Exemples

Exemple #1 Ds\Map::sum() integer example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->sum());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(6)

Exemple #2 Ds\Map::sum() float example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2.5, "c" => 3]);
var_dump($map->sum());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

float(6.5)


Converts the map to an tableau.

  • « Ds\Map::sum
  • Ds\Map::union »
  • PHP Manual
  • Map
  • Converts the map to an tableau.

Ds\Map::toArray

(PECL ds >= 1.0.0)

Ds\Map::toArray — Converts the map to an tableau.

Description

public array Ds\Map::toArray ( void )

Converts the map to an tableau.

Attention

Maps where non-scalar keys are can't be converted to an tableau.

Attention

An tableau will treat all numeric keys as integers, eg. "1" and 1 as keys in the map will only result in 1 being included in the array.

Note:

Casting to an tableau is not supported yet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An tableau containing all the values in the same order as the map.

Exemples

Exemple #1 Ds\Map::toArray() example

<?php
$map = new \Ds\Map([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);

var_dump($map->toArray());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}


Creates a new map using values from the current instance and another map.

  • « Ds\Map::toArray
  • Ds\Map::values »
  • PHP Manual
  • Map
  • Creates a new map using values from the current instance and another map.

Ds\Map::union

(PECL ds >= 1.0.0)

Ds\Map::union — Creates a new map using values from the current instance and another map.

Description

public Ds\Map Ds\Map::union ( Ds\Map $map )

Creates a new map that contains the pairs of the current instance as well as the pairs of another map.

A ? B = {x: x ? A ? x ? B}

Note:

Values of the current instance will be overwritten by those provided where keys are equal.

Liste de paramètres

map

The other map, to combine with the current instance.

Valeurs de retour

A new map containing all the pairs of the current instance as well as another map.

See Also

  • » Union on Wikipedia

Exemples

Exemple #1 Ds\Map::union() example

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 3, "c" => 4, "d" => 5]);

print_r($a->union($b));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 4
        )

    [3] => Ds\Pair Object
        (
            [key] => d
            [value] => 5
        )

)


Returns a sequence of the map's values.

  • « Ds\Map::union
  • Ds\Map::xor »
  • PHP Manual
  • Map
  • Returns a sequence of the map's values.

Ds\Map::values

(PECL ds >= 1.0.0)

Ds\Map::values — Returns a sequence of the map's values.

Description

public Ds\Sequence Ds\Map::values ( void )

Returns a sequence containing all the values of the map, in the same order.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A Ds\Sequence containing all the values of the map.

Exemples

Exemple #1 Ds\Map::values() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->values());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Map)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Creates a new map using keys of either the current instance or of another map, but not of both.

  • « Ds\Map::values
  • Pair »
  • PHP Manual
  • Map
  • Creates a new map using keys of either the current instance or of another map, but not of both.

Ds\Map::xor

(PECL ds >= 1.0.0)

Ds\Map::xor — Creates a new map using keys of either the current instance or of another map, but not of both.

Description

public Ds\Map Ds\Map::xor ( Ds\Map $map )

Creates a new map containing keys of the current instance as well as another map, but not of both.

A ? B = {x : x ? (A \ B) ? (B \ A)}

Liste de paramètres

map

The other map.

Valeurs de retour

A new map containing keys in the current instance as well as another map, but not in both.

See Also

  • » Symmetric Difference on Wikipedia

Exemples

Exemple #1 Ds\Map::xor() example

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

print_r($a->xor($b));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => d
            [value] => 6
        )

)


The Pair class

(No version information available, might only be in Git)

Introduction

A pair is used by Ds\Map to pair keys with values.

Synopsis de la classe

Ds\Pair implements JsonSerializable {
/* Méthodes */
public __construct ([ mixed $key [, mixed $value ]] )
}

Sommaire

  • Ds\Pair::clear — Removes all values.
  • Ds\Pair::__construct — Creates a new instance.
  • Ds\Pair::copy — Returns a shallow copy of the pair.
  • Ds\Pair::isEmpty — Returns whether the pair is empty
  • Ds\Pair::jsonSerialize — Returns a representation that can be converted to JSON.
  • Ds\Pair::toArray — Converts the pair to an tableau.


Removes all values.

  • « Pair
  • Ds\Pair::__construct »
  • PHP Manual
  • Pair
  • Removes all values.

Ds\Pair::clear

(No version information available, might only be in Git)

Ds\Pair::clear — Removes all values.

Description

public void Ds\Pair::clear ( void )

Removes all values from the pair.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Pair::clear() example

<?php
$pair = new \Ds\Pair("a", 1);
print_r($pair);

$pair->clear();
print_r($pair);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Pair Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Pair Object
(
)


Creates a new instance.

  • « Ds\Pair::clear
  • Ds\Pair::copy »
  • PHP Manual
  • Pair
  • Creates a new instance.

Ds\Pair::__construct

(PECL ds >= 1.0.0)

Ds\Pair::__construct — Creates a new instance.

Description

public Ds\Pair::__construct ([ mixed $key [, mixed $value ]] )

Creates a new instance using a given key and value.

Liste de paramètres

key

The key.

value

The value.


Returns a shallow copy of the pair.

  • « Ds\Pair::__construct
  • Ds\Pair::isEmpty »
  • PHP Manual
  • Pair
  • Returns a shallow copy of the pair.

Ds\Pair::copy

(No version information available, might only be in Git)

Ds\Pair::copy — Returns a shallow copy of the pair.

Description

public Ds\Pair Ds\Pair::copy ( void )

Returns a shallow copy of the pair.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a shallow copy of the pair.

Exemples

Exemple #1 Ds\Pair::copy() example

<?php
$a = new \Ds\Pair("a", 1);
$b = $a->copy();

$a->key = "x";

print_r($a);
print_r($b);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Pair Object
(
    [key] => x
    [value] => 1
)
Ds\Pair Object
(
    [key] => a
    [value] => 1
)


Returns whether the pair is empty

  • « Ds\Pair::copy
  • Ds\Pair::jsonSerialize »
  • PHP Manual
  • Pair
  • Returns whether the pair is empty

Ds\Pair::isEmpty

(No version information available, might only be in Git)

Ds\Pair::isEmpty — Returns whether the pair is empty

Description

public bool Ds\Pair::isEmpty ( void )

Returns whether the pair is empty.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if the pair is empty, FALSE otherwise.

Exemples

Exemple #1 Ds\Pair::isEmpty() example

<?php
$a = new \Ds\Pair("a", 1);
$b = new \Ds\Pair();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)


Returns a representation that can be converted to JSON.

  • « Ds\Pair::isEmpty
  • Ds\Pair::toArray »
  • PHP Manual
  • Pair
  • Returns a representation that can be converted to JSON.

Ds\Pair::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Pair::jsonSerialize — Returns a representation that can be converted to JSON.

See JsonSerializable::jsonSerialize()

Note:

You should never need to call this directly.


Converts the pair to an tableau.

  • « Ds\Pair::jsonSerialize
  • Set »
  • PHP Manual
  • Pair
  • Converts the pair to an tableau.

Ds\Pair::toArray

(PECL ds >= 1.0.0)

Ds\Pair::toArray — Converts the pair to an tableau.

Description

public array Ds\Pair::toArray ( void )

Converts the pair to an tableau.

Note:

Casting to an tableau is not supported yet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An tableau containing all the values in the same order as the pair.

Exemples

Exemple #1 Ds\Pair::toArray() example

<?php
$pair = new \Ds\Pair("a", 1);

var_dump($pair->toArray());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  ["key"]=>
  string(1) "a"
  ["value"]=>
  int(1)
}


The Set class

(No version information available, might only be in Git)

Introduction

A Set is a sequence of unique values. This implementation uses the same hash table as Ds\Map, where values are used as keys and the mapped value is ignored.

Strengths

  • Values can be any type, including objects.
  • Supports array syntax (square brackets).
  • Insertion order is preserved.
  • Automatically frees allocated memory when its size drops low enough.
  • add(),
remove() and
contains() are all O(1).

Weaknesses

  • Doesn’t support
                push(),
                pop(),
                insert(),
                shift(), or
                unshift().
  • get() is O(n) if there are deleted values in the buffer before the accessed index, O(1) otherwise.

Synopsis de la classe

Ds\Set implements Ds\Collection {
/* Constants */
const int MIN_CAPACITY = 16 ;
/* Méthodes */
public void add ([ mixed $...values ] )
public void allocate ( int $capacity )
public int capacity ( void )
public void clear ( void )
public bool contains ([ mixed $...values ] )
public Ds\Set copy ( void )
public Ds\Set diff ( Ds\Set $set )
public Ds\Set filter ([ callable $callback ] )
public void first ( void )
public mixed get ( int $index )
public Ds\Set intersect ( Ds\Set $set )
public bool isEmpty ( void )
public string join ([ string $glue ] )
public void last ( void )
public Ds\Set merge ( mixed $values )
public mixed reduce ( callable $callback [, mixed $initial ] )
public void remove ([ mixed $...values ] )
public void reverse ( void )
public Ds\Set reversed ( void )
public Ds\Set slice ( int $index [, int $length ] )
public void sort ([ callable $comparator ] )
public Ds\Set sorted ([ callable $comparator ] )
public number sum ( void )
public array toArray ( void )
public Ds\Set union ( Ds\Set $set )
public Ds\Set xor ( Ds\Set $set )
}

Constantes pré-définies

Ds\Set::MIN_CAPACITY

Sommaire

  • Ds\Set::add — Adds values to the set.
  • Ds\Set::allocate — Allocates enough memory for a required capacity.
  • Ds\Set::capacity — Returns the current capacity.
  • Ds\Set::clear — Removes all values.
  • Ds\Set::__construct — Creates a new instance.
  • Ds\Set::contains — Determines if the set contains all values.
  • Ds\Set::copy — Returns a shallow copy of the set.
  • Ds\Set::count — Returns the number of values in the set.
  • Ds\Set::diff — Creates a new set using values that aren't in another set.
  • Ds\Set::filter — Creates a new set using a callable to determine which values to include.
  • Ds\Set::first — Returns the first value in the set.
  • Ds\Set::get — Returns the value at a given index.
  • Ds\Set::intersect — Creates a new set by intersecting values with another set.
  • Ds\Set::isEmpty — Returns whether the set is empty
  • Ds\Set::join — Joins all values together as a string.
  • Ds\Set::jsonSerialize — Returns a representation that can be converted to JSON.
  • Ds\Set::last — Returns the last value in the set.
  • Ds\Set::merge — Returns the result of adding all given values to the set.
  • Ds\Set::reduce — Reduces the set to a single value using a callback function.
  • Ds\Set::remove — Removes all given values from the set.
  • Ds\Set::reverse — Reverses the set in-place.
  • Ds\Set::reversed — Returns a reversed copy.
  • Ds\Set::slice — Returns a sub-set of a given range.
  • Ds\Set::sort — Sorts the set in-place.
  • Ds\Set::sorted — Returns a sorted copy.
  • Ds\Set::sum — Returns the sum of all values in the set.
  • Ds\Set::toArray — Converts the set to an tableau.
  • Ds\Set::union — Creates a new set using values from the current instance and another set.
  • Ds\Set::xor — Creates a new set using values in either the current instance or in another set, but not in both.


Adds values to the set.

  • « Set
  • Ds\Set::allocate »
  • PHP Manual
  • Set
  • Adds values to the set.

Ds\Set::add

(PECL ds >= 1.0.0)

Ds\Set::add — Adds values to the set.

Description

public void Ds\Set::add ([ mixed $...values ] )

Adds all given values to the set that haven't already been added.

Note:

Values of type object are supported. If an object implements Ds\Hashable, equality will be determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.

Attention

All comparisons are strict (type and value).

Liste de paramètres

values

Values to add to the set.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Set::add() example using integers

<?php
$set = new \Ds\Set();

$set->add(1);
$set->add(1);
$set->add(2);
$set->add(3);

// Strict comparison would not treat these the same as int(1)
$set->add("1");
$set->add(true);

var_dump($set);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Set)#1 (5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  string(1) "1"
  [4]=>
  bool(true)
}

Exemple #2 Ds\Set::add() example using objects

<?php
class HashableObject implements \Ds\Hashable
{
    /**
     * An arbitrary value to use as the hash value. Does not define equality.
     */
    private $value;

    public function __construct($value)
    {
        $this->value = $value;
    }

    public function hash()
    {
        return $this->value;
    }

    public function equals($obj): bool
    {
        return $this->value === $obj->value;
    }
}

$set = new \Ds\Set();

$obj = new \ArrayIterator([]);

// Adding the same instance multiple times will only add the first.
$set->add($obj);
$set->add($obj);

// Adding multiple instances of the same object will add them all.
$set->add(new \stdClass());
$set->add(new \stdClass());

// Adding multiple instances of equal hashable objects will only add the first.
$set->add(new \HashableObject(1));
$set->add(new \HashableObject(1));
$set->add(new \HashableObject(2));
$set->add(new \HashableObject(2));

var_dump($set);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Set)#1 (5) {
  [0]=>
  object(ArrayIterator)#2 (1) {
    ["storage":"ArrayIterator":private]=>
    array(0) {
    }
  }
  [1]=>
  object(stdClass)#3 (0) {
  }
  [2]=>
  object(stdClass)#4 (0) {
  }
  [3]=>
  object(HashableObject)#5 (1) {
    ["value":"HashableObject":private]=>
    int(1)
  }
  [4]=>
  object(HashableObject)#6 (1) {
    ["value":"HashableObject":private]=>
    int(2)
  }
}


Allocates enough memory for a required capacity.

  • « Ds\Set::add
  • Ds\Set::capacity »
  • PHP Manual
  • Set
  • Allocates enough memory for a required capacity.

Ds\Set::allocate

(PECL ds >= 1.0.0)

Ds\Set::allocate — Allocates enough memory for a required capacity.

Description

public void Ds\Set::allocate ( int $capacity )

Allocates enough memory for a required capacity.

Liste de paramètres

capacity

The number of values for which capacity should be allocated.

Note:

Capacity will stay the same if this value is less than or equal to the current capacity.

Note:

Capacity will always be rounded up to the nearest power of 2.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Set::allocate() example

<?php
$set = new \Ds\Set();
var_dump($set->capacity());

$set->allocate(100);
var_dump($set->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(16)
int(128)


Returns the current capacity.

  • « Ds\Set::allocate
  • Ds\Set::clear »
  • PHP Manual
  • Set
  • Returns the current capacity.

Ds\Set::capacity

(PECL ds >= 1.0.0)

Ds\Set::capacity — Returns the current capacity.

Description

public int Ds\Set::capacity ( void )

Returns the current capacity.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current capacity.

Exemples

Exemple #1 Ds\Set::capacity() example

<?php
$set = new \Ds\Set();
var_dump($set->capacity());

$set->push(...range(1, 50));
var_dump($set->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(16)
int(64)


Removes all values.

  • « Ds\Set::capacity
  • Ds\Set::__construct »
  • PHP Manual
  • Set
  • Removes all values.

Ds\Set::clear

(PECL ds >= 1.0.0)

Ds\Set::clear — Removes all values.

Description

public void Ds\Set::clear ( void )

Removes all values from the set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Set::clear() example

<?php
$set = new \Ds\Set([1, 2, 3]);
print_r($set);

$set->clear();
print_r($set);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Set Object
(
)


Creates a new instance.

  • « Ds\Set::clear
  • Ds\Set::contains »
  • PHP Manual
  • Set
  • Creates a new instance.

Ds\Set::__construct

(PECL ds >= 1.0.0)

Ds\Set::__construct — Creates a new instance.

Description

public Ds\Set::__construct ([ mixed $...values ] )

Creates a new instance, using either a traversable object or an tableau for the initial values.

Liste de paramètres

values

A traversable object or an tableau to use for the initial values.

Exemples

Exemple #1 Ds\Set::__construct() example

<?php
$set = new \Ds\Set();
var_dump($set);

$set = new \Ds\Set([1, 2, 3]);
var_dump($set);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Set)#1 (0) {
}
object(Ds\Set)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Determines if the set contains all values.

  • « Ds\Set::__construct
  • Ds\Set::copy »
  • PHP Manual
  • Set
  • Determines if the set contains all values.

Ds\Set::contains

(PECL ds >= 1.0.0)

Ds\Set::contains — Determines if the set contains all values.

Description

public bool Ds\Set::contains ([ mixed $...values ] )

Determines if the set contains all values.

Note:

Values of type object are supported. If an object implements Ds\Hashable, equality will be determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.

Attention

All comparisons are strict (type and value).

Liste de paramètres

values

Values to check.

Valeurs de retour

FALSE if any of the provided values are not in the set, TRUE otherwise.

Exemples

Exemple #1 Ds\Set::contains() example

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->contains(1));                // true
var_dump($set->contains(1, 2));             // true
var_dump($set->contains(...[1, 2]));        // true

var_dump($set->contains("1"));              // false
var_dump($set->contains(...[1, 2, 3, 4]));  // false

var_dump($set->contains(...[]));            // true
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(true)


Returns a shallow copy of the set.

  • « Ds\Set::contains
  • Ds\Set::count »
  • PHP Manual
  • Set
  • Returns a shallow copy of the set.

Ds\Set::copy

(PECL ds >= 1.0.0)

Ds\Set::copy — Returns a shallow copy of the set.

Description

public Ds\Set Ds\Set::copy ( void )

Returns a shallow copy of the set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a shallow copy of the set.

Exemples

Exemple #1 Ds\Set::copy() example

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = $a->copy();

// Updating the copy doesn't affect the original
$b->add(4);

print_r($a);
print_r($b);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Returns the number of values in the set.

  • « Ds\Set::copy
  • Ds\Set::diff »
  • PHP Manual
  • Set
  • Returns the number of values in the set.

Ds\Set::count

(PECL ds >= 1.0.0)

Ds\Set::count — Returns the number of values in the set.

See Countable::count()


Creates a new set using values that aren't in another set.

  • « Ds\Set::count
  • Ds\Set::filter »
  • PHP Manual
  • Set
  • Creates a new set using values that aren't in another set.

Ds\Set::diff

(PECL ds >= 1.0.0)

Ds\Set::diff — Creates a new set using values that aren't in another set.

Description

public Ds\Set Ds\Set::diff ( Ds\Set $set )

Creates a new set using values that aren't in another set.

A \ B = {x ? A | x ? B}

Liste de paramètres

set

Set containing the values to exclude.

Valeurs de retour

A new set containing all values that were not in the other set.

See Also

  • » Compliment on Wikipedia

Exemples

Exemple #1 Ds\Set::diff() example

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->diff($b));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Set)#3 (2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}


Creates a new set using a callable to determine which values to include.

  • « Ds\Set::diff
  • Ds\Set::first »
  • PHP Manual
  • Set
  • Creates a new set using a callable to determine which values to include.

Ds\Set::filter

(PECL ds >= 1.0.0)

Ds\Set::filter — Creates a new set using a callable to determine which values to include.

Description

public Ds\Set Ds\Set::filter ([ callable $callback ] )

Creates a new set using a callable to determine which values to include.

Liste de paramètres

callback

bool callback ( mixed $value )

Optional callable which returns TRUE if the value should be included, FALSE otherwise.

If a callback is not provided, only values which are TRUE (see converting to boolean) will be included.

Valeurs de retour

A new set containing all the values for which either the callback returned TRUE, or all values that convert to TRUE if a callback was not provided.

Exemples

Exemple #1 Ds\Set::filter() example using callback function

<?php
$set = new \Ds\Set([1, 2, 3, 4, 5]);

var_dump($set->filter(function($value) {
    return $value % 2 == 0;
}));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Set)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Exemple #2 Ds\Set::filter() example without a callback function

<?php
$set = new \Ds\Set([0, 1, 'a', true, false]);

var_dump($set->filter());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Set)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Returns the first value in the set.

  • « Ds\Set::filter
  • Ds\Set::get »
  • PHP Manual
  • Set
  • Returns the first value in the set.

Ds\Set::first

(PECL ds >= 1.0.0)

Ds\Set::first — Returns the first value in the set.

Description

public void Ds\Set::first ( void )

Returns the first value in the set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The first value in the set.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Set::first() example

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->first());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(1)


Returns the value at a given index.

  • « Ds\Set::first
  • Ds\Set::intersect »
  • PHP Manual
  • Set
  • Returns the value at a given index.

Ds\Set::get

(PECL ds >= 1.0.0)

Ds\Set::get — Returns the value at a given index.

Description

public mixed Ds\Set::get ( int $index )

Returns the value at a given index.

Liste de paramètres

index

The index to access, starting at 0.

Valeurs de retour

The value at the requested index.

Erreurs / Exceptions

OutOfRangeException if the index is not valid.

Exemples

Exemple #1 Ds\Set::get() example

<?php
$set = new \Ds\Set(["a", "b", "c"]);

var_dump($set->get(0));
var_dump($set->get(1));
var_dump($set->get(2));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"
string(1) "b"
string(1) "c"

Exemple #2 Ds\Set::get() example using array syntax

<?php
$set = new \Ds\Set(["a", "b", "c"]);

var_dump($set[0]);
var_dump($set[1]);
var_dump($set[2]);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Creates a new set by intersecting values with another set.

  • « Ds\Set::get
  • Ds\Set::isEmpty »
  • PHP Manual
  • Set
  • Creates a new set by intersecting values with another set.

Ds\Set::intersect

(PECL ds >= 1.0.0)

Ds\Set::intersect — Creates a new set by intersecting values with another set.

Description

public Ds\Set Ds\Set::intersect ( Ds\Set $set )

Creates a new set using values common to both the current instance and another set. In other words, returns a copy of the current instance with all values removed that are not in the other set.

A n B = {x : x ? A ? x ? B}

Liste de paramètres

set

The other set.

Valeurs de retour

The intersection of the current instance and another set.

See Also

  • » Intersection on Wikipedia

Exemples

Exemple #1 Ds\Set::intersect() example

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->intersect($b));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Set)#3 (1) {
  [0]=>
  int(3)
}


Returns whether the set is empty

  • « Ds\Set::intersect
  • Ds\Set::join »
  • PHP Manual
  • Set
  • Returns whether the set is empty

Ds\Set::isEmpty

(PECL ds >= 1.0.0)

Ds\Set::isEmpty — Returns whether the set is empty

Description

public bool Ds\Set::isEmpty ( void )

Returns whether the set is empty.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if the set is empty, FALSE otherwise.

Exemples

Exemple #1 Ds\Set::isEmpty() example

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)


Joins all values together as a string.

  • « Ds\Set::isEmpty
  • Ds\Set::jsonSerialize »
  • PHP Manual
  • Set
  • Joins all values together as a string.

Ds\Set::join

(PECL ds >= 1.0.0)

Ds\Set::join — Joins all values together as a string.

Description

public string Ds\Set::join ([ string $glue ] )

Joins all values together as a string using an optional separator between each value.

Liste de paramètres

glue

An optional string to separate each value.

Valeurs de retour

All values of the set joined together as a string.

Exemples

Exemple #1 Ds\Set::join() example using a separator string

<?php
$set = new \Ds\Set(["a", "b", "c", 1, 2, 3]);

var_dump($set->join("|"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(11) "a|b|c|1|2|3"

Exemple #2 Ds\Set::join() example without a separator string

<?php
$set = new \Ds\Set(["a", "b", "c", 1, 2, 3]);

var_dump($set->join());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(11) "abc123"


Returns a representation that can be converted to JSON.

  • « Ds\Set::join
  • Ds\Set::last »
  • PHP Manual
  • Set
  • Returns a representation that can be converted to JSON.

Ds\Set::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Set::jsonSerialize — Returns a representation that can be converted to JSON.

See JsonSerializable::jsonSerialize()

Note:

You should never need to call this directly.


Returns the last value in the set.

  • « Ds\Set::jsonSerialize
  • Ds\Set::merge »
  • PHP Manual
  • Set
  • Returns the last value in the set.

Ds\Set::last

(PECL ds >= 1.0.0)

Ds\Set::last — Returns the last value in the set.

Description

public void Ds\Set::last ( void )

Returns the last value in the set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The last value in the set.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Set::last() example

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->last());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)


Returns the result of adding all given values to the set.

  • « Ds\Set::last
  • Ds\Set::reduce »
  • PHP Manual
  • Set
  • Returns the result of adding all given values to the set.

Ds\Set::merge

(PECL ds >= 1.0.3)

Ds\Set::merge — Returns the result of adding all given values to the set.

Description

public Ds\Set Ds\Set::merge ( mixed $values )

Returns the result of adding all given values to the set.

Liste de paramètres

values

A traversable object or an tableau.

Valeurs de retour

The result of adding all given values to the set, effectively the same as adding the values to a copy, then returning that copy.

Note:

The current instance won't be affected.

Exemples

Exemple #1 Ds\Set::merge() example

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->merge([3, 4, 5]));
var_dump($set);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Set)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}
object(Ds\Set)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Reduces the set to a single value using a callback function.

  • « Ds\Set::merge
  • Ds\Set::remove »
  • PHP Manual
  • Set
  • Reduces the set to a single value using a callback function.

Ds\Set::reduce

(PECL ds >= 1.0.0)

Ds\Set::reduce — Reduces the set to a single value using a callback function.

Description

public mixed Ds\Set::reduce ( callable $callback [, mixed $initial ] )

Reduces the set to a single value using a callback function.

Liste de paramètres

callback
mixed callback ( mixed $carry , mixed $value )
carry

The return value of the previous callback, or initial if it's the first iteration.

value

The value of the current iteration.

initial

The initial value of the carry value. Can be NULL.

Valeurs de retour

The return value of the final callback.

Exemples

Exemple #1 Ds\Set::reduce() with initial value example

<?php
$set = new \Ds\Set([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($set->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(30)

Exemple #2 Ds\Set::reduce() without an initial value example

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(21)


Removes all given values from the set.

  • « Ds\Set::reduce
  • Ds\Set::reverse »
  • PHP Manual
  • Set
  • Removes all given values from the set.

Ds\Set::remove

(PECL ds >= 1.0.0)

Ds\Set::remove — Removes all given values from the set.

Description

public void Ds\Set::remove ([ mixed $...values ] )

Removes all given values from the set, ignoring any that are not in the set.

Liste de paramètres

values

The values to remove.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Set::remove() example

<?php
$set = new \Ds\Set([1, 2, 3, 4, 5]);

$set->remove(1);            // Remove 1
$set->remove(1, 2);         // Can't find 1, but remove 2
$set->remove(...[3, 4]);    // Remove 3 and 4

var_dump($set);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Set)#1 (1) {
  [0]=>
  int(5)
}


Reverses the set in-place.

  • « Ds\Set::remove
  • Ds\Set::reversed »
  • PHP Manual
  • Set
  • Reverses the set in-place.

Ds\Set::reverse

(PECL ds >= 1.0.0)

Ds\Set::reverse — Reverses the set in-place.

Description

public void Ds\Set::reverse ( void )

Reverses the set in-place.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Set::reverse() example

<?php
$set = new \Ds\Set(["a", "b", "c"]);
$set->reverse();

print_r($set);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Set Object
(
    [0] => c
    [1] => b
    [2] => a
)


Returns a reversed copy.

  • « Ds\Set::reverse
  • Ds\Set::slice »
  • PHP Manual
  • Set
  • Returns a reversed copy.

Ds\Set::reversed

(PECL ds >= 1.0.0)

Ds\Set::reversed — Returns a reversed copy.

Description

public Ds\Set Ds\Set::reversed ( void )

Returns a reversed copy of the set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A reversed copy of the set.

Note:

The current instance is not affected.

Exemples

Exemple #1 Ds\Set::reversed() example

<?php
$set = new \Ds\Set(["a", "b", "c"]);

print_r($set->reversed());
print_r($set);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Set Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Set Object
(
    [0] => a
    [1] => b
    [2] => c
)


Returns a sub-set of a given range.

  • « Ds\Set::reversed
  • Ds\Set::sort »
  • PHP Manual
  • Set
  • Returns a sub-set of a given range.

Ds\Set::slice

(PECL ds >= 1.0.0)

Ds\Set::slice — Returns a sub-set of a given range.

Description

public Ds\Set Ds\Set::slice ( int $index [, int $length ] )

Creates a sub-set of a given range.

Liste de paramètres

index

The index at which the sub-set starts.

If positive, the set will start at that index in the set. If negative, the set will start that far from the end.

length

If a length is given and is positive, the resulting set will have up to that many values in it. If the length results in an overflow, only values up to the end of the set will be included. If a length is given and is negative, the set will stop that many values from the end. If a length is not provided, the resulting set will contain all values between the index and the end of the set.

Valeurs de retour

A sub-set of the given range.

Exemples

Exemple #1 Ds\Set::slice() example

<?php
$set = new \Ds\Set(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($set->slice(2));

// Slice from 1, for a length of 3
print_r($set->slice(1, 3));

// Slice from 1 onwards
print_r($set->slice(1));

// Slice from 2 from the end onwards
print_r($set->slice(-2));

// Slice from 1 to 1 from the end
print_r($set->slice(1, -1));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Set Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Set Object
(
    [0] => d
    [1] => e
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
)


Sorts the set in-place.

  • « Ds\Set::slice
  • Ds\Set::sorted »
  • PHP Manual
  • Set
  • Sorts the set in-place.

Ds\Set::sort

(PECL ds >= 1.0.0)

Ds\Set::sort — Sorts the set in-place.

Description

public void Ds\Set::sort ([ callable $comparator ] )

Sorts the set in-place, using an optional comparator function.

Liste de paramètres

comparator

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
Attention

Returning non-integer values from the comparison function, such as float, will result in an internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Set::sort() example

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);
$set->sort();

print_r($set);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemple #2 Ds\Set::sort() example using a comparator

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

$set->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($set);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Set Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns a sorted copy.

  • « Ds\Set::sort
  • Ds\Set::sum »
  • PHP Manual
  • Set
  • Returns a sorted copy.

Ds\Set::sorted

(PECL ds >= 1.0.0)

Ds\Set::sorted — Returns a sorted copy.

Description

public Ds\Set Ds\Set::sorted ([ callable $comparator ] )

Returns a sorted copy, using an optional comparator function.

Liste de paramètres

comparator

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second. Notez qu'avant PHP 7.0.0, cet entier devait être dans l'intervalle -2147483648 à 2147483647

int callback ( mixed $a, mixed $b )
Attention

Returning non-integer values from the comparison function, such as float, will result in an internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Valeurs de retour

Returns a sorted copy of the set.

Exemples

Exemple #1 Ds\Set::sorted() example

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

print_r($set->sorted());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemple #2 Ds\Set::sorted() example using a comparator

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

$sorted = $set->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Set Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns the sum of all values in the set.

  • « Ds\Set::sorted
  • Ds\Set::toArray »
  • PHP Manual
  • Set
  • Returns the sum of all values in the set.

Ds\Set::sum

(PECL ds >= 1.0.0)

Ds\Set::sum — Returns the sum of all values in the set.

Description

public number Ds\Set::sum ( void )

Returns the sum of all values in the set.

Note:

Arrays and objects are considered equal to zero when calculating the sum.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The sum of all the values in the set as either a float or int depending on the values in the set.

Exemples

Exemple #1 Ds\Set::sum() integer example

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->sum());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(6)

Exemple #2 Ds\Set::sum() float example

<?php
$set = new \Ds\Set([1, 2.5, 3]);
var_dump($set->sum());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

float(6.5)


Converts the set to an tableau.

  • « Ds\Set::sum
  • Ds\Set::union »
  • PHP Manual
  • Set
  • Converts the set to an tableau.

Ds\Set::toArray

(PECL ds >= 1.0.0)

Ds\Set::toArray — Converts the set to an tableau.

Description

public array Ds\Set::toArray ( void )

Converts the set to an tableau.

Note:

Casting to an tableau is not supported yet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An tableau containing all the values in the same order as the set.

Exemples

Exemple #1 Ds\Set::toArray() example

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->toArray());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Creates a new set using values from the current instance and another set.

  • « Ds\Set::toArray
  • Ds\Set::xor »
  • PHP Manual
  • Set
  • Creates a new set using values from the current instance and another set.

Ds\Set::union

(PECL ds >= 1.0.0)

Ds\Set::union — Creates a new set using values from the current instance and another set.

Description

public Ds\Set Ds\Set::union ( Ds\Set $set )

Creates a new set that contains the values of the current instance as well as the values of another set.

A ? B = {x: x ? A ? x ? B}

Liste de paramètres

set

The other set, to combine with the current instance.

Valeurs de retour

A new set containing all the values of the current instance as well as another set.

See Also

  • » Union on Wikipedia

Exemples

Exemple #1 Ds\Set::union() example

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->union($b));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Set)#3 (5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}


Creates a new set using values in either the current instance or in another set, but not in both.

  • « Ds\Set::union
  • Stack »
  • PHP Manual
  • Set
  • Creates a new set using values in either the current instance or in another set, but not in both.

Ds\Set::xor

(PECL ds >= 1.0.0)

Ds\Set::xor — Creates a new set using values in either the current instance or in another set, but not in both.

Description

public Ds\Set Ds\Set::xor ( Ds\Set $set )

Creates a new set containing values in the current instance as well as another set, but not in both.

A ? B = {x : x ? (A \ B) ? (B \ A)}

Liste de paramètres

set

The other set.

Valeurs de retour

A new set containing values in the current instance as well as another set, but not in both.

See Also

  • » Symmetric Difference on Wikipedia

Exemples

Exemple #1 Ds\Set::xor() example

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->xor($b));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Set)#3 (4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(4)
  [3]=>
  int(5)
}


The Stack class

(No version information available, might only be in Git)

Introduction

A Stack is a “last in, first out” or “LIFO” collection that only allows access to the value at the top of the structure and iterates in that order, destructively.

Uses a Ds\Vector internally.

Synopsis de la classe

Ds\Stack implements Ds\Collection {
/* Méthodes */
public void allocate ( int $capacity )
public int capacity ( void )
public void clear ( void )
public Ds\Stack copy ( void )
public bool isEmpty ( void )
public mixed peek ( void )
public mixed pop ( void )
public void push ([ mixed $...values ] )
public array toArray ( void )
}

Sommaire

  • Ds\Stack::allocate — Allocates enough memory for a required capacity.
  • Ds\Stack::capacity — Returns the current capacity.
  • Ds\Stack::clear — Removes all values.
  • Ds\Stack::__construct — Creates a new instance.
  • Ds\Stack::copy — Returns a shallow copy of the stack.
  • Ds\Stack::count — Returns the number of values in the stack.
  • Ds\Stack::isEmpty — Returns whether the stack is empty
  • Ds\Stack::jsonSerialize — Returns a representation that can be converted to JSON.
  • Ds\Stack::peek — Returns the value at the top of the stack.
  • Ds\Stack::pop — Removes and returns the value at the top of the stack.
  • Ds\Stack::push — Pushes values onto the stack.
  • Ds\Stack::toArray — Converts the stack to an tableau.


Allocates enough memory for a required capacity.

  • « Stack
  • Ds\Stack::capacity »
  • PHP Manual
  • Stack
  • Allocates enough memory for a required capacity.

Ds\Stack::allocate

(PECL ds >= 1.0.0)

Ds\Stack::allocate — Allocates enough memory for a required capacity.

Description

public void Ds\Stack::allocate ( int $capacity )

Ensures that enough memory is allocated for a required capacity. This removes the need to reallocate the internal as values are added.

Liste de paramètres

capacity

The number of values for which capacity should be allocated.

Note:

Capacity will stay the same if this value is less than or equal to the current capacity.

Valeurs de retour

Aucune valeur n'est retournée.


Returns the current capacity.

  • « Ds\Stack::allocate
  • Ds\Stack::clear »
  • PHP Manual
  • Stack
  • Returns the current capacity.

Ds\Stack::capacity

(PECL ds >= 1.0.0)

Ds\Stack::capacity — Returns the current capacity.

Description

public int Ds\Stack::capacity ( void )

Returns the current capacity.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current capacity.


Removes all values.

  • « Ds\Stack::capacity
  • Ds\Stack::__construct »
  • PHP Manual
  • Stack
  • Removes all values.

Ds\Stack::clear

(PECL ds >= 1.0.0)

Ds\Stack::clear — Removes all values.

Description

public void Ds\Stack::clear ( void )

Removes all values from the stack.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Stack::clear() example

<?php
$stack = new \Ds\Stack([1, 2, 3]);
print_r($stack);

$stack->clear();
print_r($stack);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)
Ds\Stack Object
(
)


Creates a new instance.

  • « Ds\Stack::clear
  • Ds\Stack::copy »
  • PHP Manual
  • Stack
  • Creates a new instance.

Ds\Stack::__construct

(PECL ds >= 1.0.0)

Ds\Stack::__construct — Creates a new instance.

Description

public Ds\Stack::__construct ([ mixed $values ] )

Creates a new instance, using either a traversable object or an tableau for the initial values.

Liste de paramètres

values

A traversable object or an tableau to use for the initial values.

Exemples

Exemple #1 Ds\Stack::__construct() example

<?php
$stack = new \Ds\Stack();
print_r($stack);

$stack = new \Ds\Stack([1, 2, 3]);
print_r($stack);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Stack Object
(
)
Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)


Returns a shallow copy of the stack.

  • « Ds\Stack::__construct
  • Ds\Stack::count »
  • PHP Manual
  • Stack
  • Returns a shallow copy of the stack.

Ds\Stack::copy

(PECL ds >= 1.0.0)

Ds\Stack::copy — Returns a shallow copy of the stack.

Description

public Ds\Stack Ds\Stack::copy ( void )

Returns a shallow copy of the stack.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a shallow copy of the stack.

Exemples

Exemple #1 Ds\Stack::copy() example

<?php
$a = new \Ds\Stack([1, 2, 3]);
$b = $a->copy();

// Updating the copy doesn't affect the original
$b->push(4);

print_r($a);
print_r($b);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)
Ds\Stack Object
(
    [0] => 4
    [1] => 3
    [2] => 2
    [3] => 1
)


Returns the number of values in the stack.

  • « Ds\Stack::copy
  • Ds\Stack::isEmpty »
  • PHP Manual
  • Stack
  • Returns the number of values in the stack.

Ds\Stack::count

(PECL ds >= 1.0.0)

Ds\Stack::count — Returns the number of values in the stack.

See Countable::count()


Returns whether the stack is empty

  • « Ds\Stack::count
  • Ds\Stack::jsonSerialize »
  • PHP Manual
  • Stack
  • Returns whether the stack is empty

Ds\Stack::isEmpty

(PECL ds >= 1.0.0)

Ds\Stack::isEmpty — Returns whether the stack is empty

Description

public bool Ds\Stack::isEmpty ( void )

Returns whether the stack is empty.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if the stack is empty, FALSE otherwise.

Exemples

Exemple #1 Ds\Stack::isEmpty() example

<?php
$a = new \Ds\Stack([1, 2, 3]);
$b = new \Ds\Stack();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)


Returns a representation that can be converted to JSON.

  • « Ds\Stack::isEmpty
  • Ds\Stack::peek »
  • PHP Manual
  • Stack
  • Returns a representation that can be converted to JSON.

Ds\Stack::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Stack::jsonSerialize — Returns a representation that can be converted to JSON.

See JsonSerializable::jsonSerialize()

Note:

You should never need to call this directly.


Returns the value at the top of the stack.

  • « Ds\Stack::jsonSerialize
  • Ds\Stack::pop »
  • PHP Manual
  • Stack
  • Returns the value at the top of the stack.

Ds\Stack::peek

(PECL ds >= 1.0.0)

Ds\Stack::peek — Returns the value at the top of the stack.

Description

public mixed Ds\Stack::peek ( void )

Returns the value at the top of the stack, but does not remove it.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The value at the top of the stack.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Stack::peek() example

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c");

var_dump($stack->peek());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "c"


Removes and returns the value at the top of the stack.

  • « Ds\Stack::peek
  • Ds\Stack::push »
  • PHP Manual
  • Stack
  • Removes and returns the value at the top of the stack.

Ds\Stack::pop

(PECL ds >= 1.0.0)

Ds\Stack::pop — Removes and returns the value at the top of the stack.

Description

public mixed Ds\Stack::pop ( void )

Removes and returns the value at the top of the stack.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The removed value which was at the top of the stack.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Stack::pop() example

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c");

var_dump($stack->pop());
var_dump($stack->pop());
var_dump($stack->pop());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "c"
string(1) "b"
string(1) "a"


Pushes values onto the stack.

  • « Ds\Stack::pop
  • Ds\Stack::toArray »
  • PHP Manual
  • Stack
  • Pushes values onto the stack.

Ds\Stack::push

(PECL ds >= 1.0.0)

Ds\Stack::push — Pushes values onto the stack.

Description

public void Ds\Stack::push ([ mixed $...values ] )

Pushes values onto the stack.

Liste de paramètres

values

The values to push onto the stack.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Stack::push() example

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c", "d");
$stack->push(...["e", "f"]);

print_r($stack);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Stack Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Converts the stack to an tableau.

  • « Ds\Stack::push
  • Queue »
  • PHP Manual
  • Stack
  • Converts the stack to an tableau.

Ds\Stack::toArray

(PECL ds >= 1.0.0)

Ds\Stack::toArray — Converts the stack to an tableau.

Description

public array Ds\Stack::toArray ( void )

Converts the stack to an tableau.

Note:

Casting to an tableau is not supported yet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An tableau containing all the values in the same order as the stack.

Exemples

Exemple #1 Ds\Stack::toArray() example

<?php
$stack = new \Ds\Stack([1, 2, 3]);

var_dump($stack->toArray());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  int(3)
  [1]=>
  int(2)
  [2]=>
  int(1)
}


The Queue class

(No version information available, might only be in Git)

Introduction

A Queue is a “first in, first out” or “FIFO” collection that only allows access to the value at the front of the queue and iterates in that order, destructively.

Synopsis de la classe

Ds\Queue implements Ds\Collection {
/* Constants */
const int MIN_CAPACITY = 8 ;
/* Méthodes */
public void allocate ( int $capacity )
public int capacity ( void )
public void clear ( void )
public Ds\Queue copy ( void )
public bool isEmpty ( void )
public mixed peek ( void )
public mixed pop ( void )
public void push ([ mixed $...values ] )
public array toArray ( void )
}

Constantes pré-définies

Ds\Queue::MIN_CAPACITY

Sommaire

  • Ds\Queue::allocate — Allocates enough memory for a required capacity.
  • Ds\Queue::capacity — Returns the current capacity.
  • Ds\Queue::clear — Removes all values.
  • Ds\Queue::__construct — Creates a new instance.
  • Ds\Queue::copy — Returns a shallow copy of the queue.
  • Ds\Queue::count — Returns the number of values in the queue.
  • Ds\Queue::isEmpty — Returns whether the queue is empty
  • Ds\Queue::jsonSerialize — Returns a representation that can be converted to JSON.
  • Ds\Queue::peek — Returns the value at the front of the queue.
  • Ds\Queue::pop — Removes and returns the value at the front of the queue.
  • Ds\Queue::push — Pushes values into the queue.
  • Ds\Queue::toArray — Converts the queue to an tableau.


Allocates enough memory for a required capacity.

  • « Queue
  • Ds\Queue::capacity »
  • PHP Manual
  • Queue
  • Allocates enough memory for a required capacity.

Ds\Queue::allocate

(PECL ds >= 1.0.0)

Ds\Queue::allocate — Allocates enough memory for a required capacity.

Description

public void Ds\Queue::allocate ( int $capacity )

Ensures that enough memory is allocated for a required capacity. This removes the need to reallocate the internal as values are added.

Note:

Capacity will always be rounded up to the nearest power of 2.

Liste de paramètres

capacity

The number of values for which capacity should be allocated.

Note:

Capacity will stay the same if this value is less than or equal to the current capacity.

Note:

Capacity will always be rounded up to the nearest power of 2.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Queue::allocate() example

<?php
$queue = new \Ds\Queue();
var_dump($queue->capacity());

$queue->allocate(100);
var_dump($queue->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(8)
int(128)


Returns the current capacity.

  • « Ds\Queue::allocate
  • Ds\Queue::clear »
  • PHP Manual
  • Queue
  • Returns the current capacity.

Ds\Queue::capacity

(PECL ds >= 1.0.0)

Ds\Queue::capacity — Returns the current capacity.

Description

public int Ds\Queue::capacity ( void )

Returns the current capacity.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current capacity.

Exemples

Exemple #1 Ds\Queue::capacity() example

<?php
$queue = new \Ds\Queue();
var_dump($queue->capacity());

$queue->push(...range(1, 50));
var_dump($queue->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(8)
int(64)


Removes all values.

  • « Ds\Queue::capacity
  • Ds\Queue::__construct »
  • PHP Manual
  • Queue
  • Removes all values.

Ds\Queue::clear

(PECL ds >= 1.0.0)

Ds\Queue::clear — Removes all values.

Description

public void Ds\Queue::clear ( void )

Removes all values from the queue.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Queue::clear() example

<?php
$queue = new \Ds\Queue([1, 2, 3]);
print_r($queue);

$queue->clear();
print_r($queue);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Queue Object
(
)


Creates a new instance.

  • « Ds\Queue::clear
  • Ds\Queue::copy »
  • PHP Manual
  • Queue
  • Creates a new instance.

Ds\Queue::__construct

(PECL ds >= 1.0.0)

Ds\Queue::__construct — Creates a new instance.

Description

public Ds\Queue::__construct ([ mixed $values ] )

Creates a new instance, using either a traversable object or an tableau for the initial values.

Liste de paramètres

values

A traversable object or an tableau to use for the initial values.

Exemples

Exemple #1 Ds\Queue::__construct() example

<?php
$queue = new \Ds\Queue();
var_dump($queue);

$queue = new \Ds\Queue([1, 2, 3]);
var_dump($queue);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\Queue)#2 (0) {
}
object(Ds\Queue)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Returns a shallow copy of the queue.

  • « Ds\Queue::__construct
  • Ds\Queue::count »
  • PHP Manual
  • Queue
  • Returns a shallow copy of the queue.

Ds\Queue::copy

(PECL ds >= 1.0.0)

Ds\Queue::copy — Returns a shallow copy of the queue.

Description

public Ds\Queue Ds\Queue::copy ( void )

Returns a shallow copy of the queue.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a shallow copy of the queue.

Exemples

Exemple #1 Ds\Queue::copy() example

<?php
$a = new \Ds\Queue([1, 2, 3]);
$b = $a->copy();

// Updating the copy doesn't affect the original
$b->push(4);

print_r($a);
print_r($b);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Returns the number of values in the queue.

  • « Ds\Queue::copy
  • Ds\Queue::isEmpty »
  • PHP Manual
  • Queue
  • Returns the number of values in the queue.

Ds\Queue::count

(PECL ds >= 1.0.0)

Ds\Queue::count — Returns the number of values in the queue.

See Countable::count()


Returns whether the queue is empty

  • « Ds\Queue::count
  • Ds\Queue::jsonSerialize »
  • PHP Manual
  • Queue
  • Returns whether the queue is empty

Ds\Queue::isEmpty

(PECL ds >= 1.0.0)

Ds\Queue::isEmpty — Returns whether the queue is empty

Description

public bool Ds\Queue::isEmpty ( void )

Returns whether the queue is empty.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if the queue is empty, FALSE otherwise.

Exemples

Exemple #1 Ds\Queue::isEmpty() example

<?php
$a = new \Ds\Queue([1, 2, 3]);
$b = new \Ds\Queue();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)


Returns a representation that can be converted to JSON.

  • « Ds\Queue::isEmpty
  • Ds\Queue::peek »
  • PHP Manual
  • Queue
  • Returns a representation that can be converted to JSON.

Ds\Queue::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Queue::jsonSerialize — Returns a representation that can be converted to JSON.

See JsonSerializable::jsonSerialize()

Note:

You should never need to call this directly.


Returns the value at the front of the queue.

  • « Ds\Queue::jsonSerialize
  • Ds\Queue::pop »
  • PHP Manual
  • Queue
  • Returns the value at the front of the queue.

Ds\Queue::peek

(PECL ds >= 1.0.0)

Ds\Queue::peek — Returns the value at the front of the queue.

Description

public mixed Ds\Queue::peek ( void )

Returns the value at the front of the queue, but does not remove it.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The value at the front of the queue.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Queue::peek() example

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c");

var_dump($queue->peek());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"


Removes and returns the value at the front of the queue.

  • « Ds\Queue::peek
  • Ds\Queue::push »
  • PHP Manual
  • Queue
  • Removes and returns the value at the front of the queue.

Ds\Queue::pop

(PECL ds >= 1.0.0)

Ds\Queue::pop — Removes and returns the value at the front of the queue.

Description

public mixed Ds\Queue::pop ( void )

Removes and returns the value at the front of the queue.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The removed value which was at the front of the queue.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\Queue::pop() example

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c");

var_dump($queue->pop());
var_dump($queue->pop());
var_dump($queue->pop());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Pushes values into the queue.

  • « Ds\Queue::pop
  • Ds\Queue::toArray »
  • PHP Manual
  • Queue
  • Pushes values into the queue.

Ds\Queue::push

(PECL ds >= 1.0.0)

Ds\Queue::push — Pushes values into the queue.

Description

public void Ds\Queue::push ([ mixed $...values ] )

Pushes values into the queue.

Liste de paramètres

values

The values to push into the queue.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\Queue::push() example

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c", "d");
$queue->push(...["e", "f"]);

print_r($queue);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\Queue Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Converts the queue to an tableau.

  • « Ds\Queue::push
  • PriorityQueue »
  • PHP Manual
  • Queue
  • Converts the queue to an tableau.

Ds\Queue::toArray

(PECL ds >= 1.0.0)

Ds\Queue::toArray — Converts the queue to an tableau.

Description

public array Ds\Queue::toArray ( void )

Converts the queue to an tableau.

Note:

Casting to an tableau is not supported yet.

Note:

This method is not destructive.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An tableau containing all the values in the same order as the queue.

Exemples

Exemple #1 Ds\Queue::toArray() example

<?php
$queue = new \Ds\Queue([1, 2, 3]);

var_dump($queue->toArray());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


The PriorityQueue class

(No version information available, might only be in Git)

Introduction

A PriorityQueue is very similar to a Queue. Values are pushed into the queue with an assigned priority, and the value with the highest priority will always be at the front of the queue.

Implemented using a max heap.

Note:

"First in, first out" ordering is preserved for values with the same priority.

Note:

Iterating over a PriorityQueue is destructive, equivalent to successive pop operations until the queue is empty.

Synopsis de la classe

Ds\PriorityQueue implements Ds\Collection {
/* Constants */
const int MIN_CAPACITY = 8 ;
/* Méthodes */
public void allocate ( int $capacity )
public int capacity ( void )
public void clear ( void )
public Ds\PriorityQueue copy ( void )
public bool isEmpty ( void )
public mixed peek ( void )
public mixed pop ( void )
public void push ( mixed $value , int $priority )
public array toArray ( void )
}

Constantes pré-définies

Ds\PriorityQueue::MIN_CAPACITY

Sommaire

  • Ds\PriorityQueue::allocate — Allocates enough memory for a required capacity.
  • Ds\PriorityQueue::capacity — Returns the current capacity.
  • Ds\PriorityQueue::clear — Removes all values.
  • Ds\PriorityQueue::__construct — Creates a new instance.
  • Ds\PriorityQueue::copy — Returns a shallow copy of the queue.
  • Ds\PriorityQueue::count — Returns the number of values in the queue.
  • Ds\PriorityQueue::isEmpty — Returns whether the queue is empty
  • Ds\PriorityQueue::jsonSerialize — Returns a representation that can be converted to JSON.
  • Ds\PriorityQueue::peek — Returns the value at the front of the queue.
  • Ds\PriorityQueue::pop — Removes and returns the value with the highest priority.
  • Ds\PriorityQueue::push — Pushes values into the queue.
  • Ds\PriorityQueue::toArray — Converts the queue to an tableau.


Allocates enough memory for a required capacity.

  • « PriorityQueue
  • Ds\PriorityQueue::capacity »
  • PHP Manual
  • PriorityQueue
  • Allocates enough memory for a required capacity.

Ds\PriorityQueue::allocate

(PECL ds >= 1.0.0)

Ds\PriorityQueue::allocate — Allocates enough memory for a required capacity.

Description

public void Ds\PriorityQueue::allocate ( int $capacity )

Ensures that enough memory is allocated for a required capacity. This removes the need to reallocate the internal as values are added.

Liste de paramètres

capacity

The number of values for which capacity should be allocated.

Note:

Capacity will stay the same if this value is less than or equal to the current capacity.

Note:

Capacity will always be rounded up to the nearest power of 2.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\PriorityQueue::allocate() example

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue->capacity());

$queue->allocate(100);
var_dump($queue->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(8)
int(128)


Returns the current capacity.

  • « Ds\PriorityQueue::allocate
  • Ds\PriorityQueue::clear »
  • PHP Manual
  • PriorityQueue
  • Returns the current capacity.

Ds\PriorityQueue::capacity

(PECL ds >= 1.0.0)

Ds\PriorityQueue::capacity — Returns the current capacity.

Description

public int Ds\PriorityQueue::capacity ( void )

Returns the current capacity.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current capacity.

Exemples

Exemple #1 Ds\PriorityQueue::capacity() example

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue->capacity());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(8)


Removes all values.

  • « Ds\PriorityQueue::capacity
  • Ds\PriorityQueue::__construct »
  • PHP Manual
  • PriorityQueue
  • Removes all values.

Ds\PriorityQueue::clear

(PECL ds >= 1.0.0)

Ds\PriorityQueue::clear — Removes all values.

Description

public void Ds\PriorityQueue::clear ( void )

Removes all values from the queue.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\PriorityQueue::clear() example

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

$queue->clear();
print_r($queue);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\PriorityQueue Object
(
)


Creates a new instance.

  • « Ds\PriorityQueue::clear
  • Ds\PriorityQueue::copy »
  • PHP Manual
  • PriorityQueue
  • Creates a new instance.

Ds\PriorityQueue::__construct

(PECL ds >= 1.0.0)

Ds\PriorityQueue::__construct — Creates a new instance.

Description

public Ds\PriorityQueue::__construct ( void )

Creates a new instance.

Exemples

Exemple #1 Ds\PriorityQueue::__construct() example

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(Ds\PriorityQueue)#1 (0) {
}


Returns a shallow copy of the queue.

  • « Ds\PriorityQueue::__construct
  • Ds\PriorityQueue::count »
  • PHP Manual
  • PriorityQueue
  • Returns a shallow copy of the queue.

Ds\PriorityQueue::copy

(PECL ds >= 1.0.0)

Ds\PriorityQueue::copy — Returns a shallow copy of the queue.

Description

public Ds\PriorityQueue Ds\PriorityQueue::copy ( void )

Returns a shallow copy of the queue.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a shallow copy of the queue.

Exemples

Exemple #1 Ds\PriorityQueue::copy() example

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->copy());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Ds\PriorityQueue Object
(
    [0] => b
    [1] => c
    [2] => a
)


Returns the number of values in the queue.

  • « Ds\PriorityQueue::copy
  • Ds\PriorityQueue::isEmpty »
  • PHP Manual
  • PriorityQueue
  • Returns the number of values in the queue.

Ds\PriorityQueue::count

(PECL ds >= 1.0.0)

Ds\PriorityQueue::count — Returns the number of values in the queue.

See Countable::count()


Returns whether the queue is empty

  • « Ds\PriorityQueue::count
  • Ds\PriorityQueue::jsonSerialize »
  • PHP Manual
  • PriorityQueue
  • Returns whether the queue is empty

Ds\PriorityQueue::isEmpty

(PECL ds >= 1.0.0)

Ds\PriorityQueue::isEmpty — Returns whether the queue is empty

Description

public bool Ds\PriorityQueue::isEmpty ( void )

Returns whether the queue is empty.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if the queue is empty, FALSE otherwise.

Exemples

Exemple #1 Ds\PriorityQueue::isEmpty() example

<?php
$a = new \Ds\PriorityQueue();
$b = new \Ds\PriorityQueue();

$a->push("a",  5);
$a->push("b", 15);
$a->push("c", 10);

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)


Returns a representation that can be converted to JSON.

  • « Ds\PriorityQueue::isEmpty
  • Ds\PriorityQueue::peek »
  • PHP Manual
  • PriorityQueue
  • Returns a representation that can be converted to JSON.

Ds\PriorityQueue::jsonSerialize

(PECL ds >= 1.0.0)

Ds\PriorityQueue::jsonSerialize — Returns a representation that can be converted to JSON.

See JsonSerializable::jsonSerialize()

Note:

You should never need to call this directly.


Returns the value at the front of the queue.

  • « Ds\PriorityQueue::jsonSerialize
  • Ds\PriorityQueue::pop »
  • PHP Manual
  • PriorityQueue
  • Returns the value at the front of the queue.

Ds\PriorityQueue::peek

(PECL ds >= 1.0.0)

Ds\PriorityQueue::peek — Returns the value at the front of the queue.

Description

public mixed Ds\PriorityQueue::peek ( void )

Returns the value at the front of the queue, but does not remove it.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The value at the front of the queue.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\PriorityQueue::peek() example

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

var_dump($queue->peek());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "b"


Removes and returns the value with the highest priority.

  • « Ds\PriorityQueue::peek
  • Ds\PriorityQueue::push »
  • PHP Manual
  • PriorityQueue
  • Removes and returns the value with the highest priority.

Ds\PriorityQueue::pop

(PECL ds >= 1.0.0)

Ds\PriorityQueue::pop — Removes and returns the value with the highest priority.

Description

public mixed Ds\PriorityQueue::pop ( void )

Removes and returns the value at the front of the queue, ie. the value with the highest priority.

Note:

Values with equal priority fall back to FIFO (first in first out).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The removed value which was at the front of the queue.

Erreurs / Exceptions

UnderflowException if empty.

Exemples

Exemple #1 Ds\PriorityQueue::pop() example

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->pop());
print_r($queue->pop());
print_r($queue->pop());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Pushes values into the queue.

  • « Ds\PriorityQueue::pop
  • Ds\PriorityQueue::toArray »
  • PHP Manual
  • PriorityQueue
  • Pushes values into the queue.

Ds\PriorityQueue::push

(PECL ds >= 1.0.0)

Ds\PriorityQueue::push — Pushes values into the queue.

Description

public void Ds\PriorityQueue::push ( mixed $value , int $priority )

Pushes a value with a given priority into the queue.

Liste de paramètres

value

The value to push into the queue.

priority

The priority associated with the value.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Ds\PriorityQueue::push() example

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->pop());
print_r($queue->pop());
print_r($queue->pop());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(1) "b"
string(1) "c"
string(1) "a"


Converts the queue to an tableau.

  • « Ds\PriorityQueue::push
  • Filter »
  • PHP Manual
  • PriorityQueue
  • Converts the queue to an tableau.

Ds\PriorityQueue::toArray

(PECL ds >= 1.0.0)

Ds\PriorityQueue::toArray — Converts the queue to an tableau.

Description

public array Ds\PriorityQueue::toArray ( void )

Converts the queue to an tableau.

Note:

This method is not destructive.

Note:

Casting to an tableau is not supported yet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An tableau containing all the values in the same order as the queue.

Exemples

Exemple #1 Ds\PriorityQueue::toArray() example

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

var_dump($queue->toArray());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  string(1) "b"
  [1]=>
  string(1) "c"
  [2]=>
  string(1) "a"
}


Filtrage des données

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Types de filtres
    • Filtres de validation
    • Filtres de nettoyage
    • Autres filtres
    • Drapeaux des filtres
  • Constantes pré-définies
  • Exemples
    • Validation
    • Nettoyage
  • Filter Fonctions
    • filter_has_var — Vérifie si une variable d'un type spécifique existe
    • filter_id — Retourne l'identifiant d'un filtre nommé
    • filter_input_array — Récupère plusieurs valeurs externes et les filtre
    • filter_input — Récupère une variable externe et la filtre
    • filter_list — Retourne une liste de tous les filtres supportés
    • filter_var_array — Récupère plusieurs variables et les filtre
    • filter_var — Filtre une variable avec un filtre spécifique


Introduction

Cette extension filtre les données soit en les validant, soit en les nettoyant. C'est particulièrement utile lorsque les sources contiennent des données inconnues, comme les données utilisateurs. Par exemple, les données pourraient provenir d'un formulaire HTML.

Il y a deux moyens de filtre : la validation et le nettoyage.

La Validation sert à vérifier si une donnée passe certains critères. Par exemple, passer les critères de FILTER_VALIDATE_EMAIL va déterminer si une donnée est une adresse courriel valide, mais ne va pas modifier la donnée elle-même.

Le nettoyage va nettoyer les données ; par exemple en retirant les caractères indésirables. Par exemple, passer une donnée à FILTER_SANITIZE_EMAIL va faire disparaître les caractères inappropriés dans une adresse courriel. D'un autre coté, la donnée n'est pas validée.

Des options sont éventuellement utilisées par la validation et le nettoyage, pour adapter leur comportement à des besoins spécifiques. Par exemple, avec l'option FILTER_FLAG_PATH_REQUIRED pour filter une URL, il faut indiquer le chemin utilisé (tel que http://example.org/foo).


Installation

L'extension filter est activée par défaut depuis PHP 5.2.0. Avant cette version, une extension PECL expérimentale pouvait être utilisée. La version PECL n'est actuellement plus maintenue.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour Filter
Nom | Défaut | Modifiable | Historique
filter.default | "unsafe_raw" | PHP_INI_PERDIR | PHP_INI_ALL en filter <= 0.9.4. Disponible depuis PHP 5.2.0.
filter.default_flags | NULL | PHP_INI_PERDIR | PHP_INI_ALL en filter <= 0.9.4. Disponible depuis PHP 5.2.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

filter.default string

Filtre toutes les données transmises via $_GET, $_POST, $_COOKIE, $_REQUEST et $_SERVER avec ce filtre. Les données originales peut être à l'aide de la fonction input_get().

Accepte le nom du filtre que vous voulez utiliser par défaut. Voir la liste des filtres existants pour en connaître les noms.

Note:

Attention aux drapeaux par défaut des filtres par défaut. Vous devriez explicitement indiquer leur valeur par défaut. Par exemple, pour configurer le filtre par défaut pour agir exactement comme htmlspecialchars() vous devez passer son drapeau à 0, comme dans l'exemple ci-après.

Exemple #1 Configurer le filtre par défaut pour qu'il agisse comme htmlspecialchars

filter.default = full_special_chars
filter.default_flags = 0

filter.default_flags integer

Drapeau par défaut à appliquer lorsque le filtre par défaut est défini. La valeur par défaut est FILTER_FLAG_NO_ENCODE_QUOTES pour des raisons de compatibilité. Voir la liste des drapeaux pour connaître les noms des drapeaux.


  • « Configuration à l'exécution
  • Types de filtres »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


Types de filtres

Sommaire

  • Filtres de validation
  • Filtres de nettoyage
  • Autres filtres
  • Drapeaux des filtres


Filtres de validation

Liste des filtre de validation
ID | Nom | Options | Flags | Description
FILTER_VALIDATE_BOOLEAN | "boolean" | default | FILTER_NULL_ON_FAILURE | Retourne TRUE pour "1", "true", "on" et "yes". Retourne FALSE sinon. Si FILTER_NULL_ON_FAILURE est active, FALSE n'est retourné que pour les valeurs "0", "false", "off", "no", "", et NULL est retourné pour les valeurs non-booléennes.
FILTER_VALIDATE_EMAIL | "validate_email" | default |  | Valide une adresse de courriel. En général, ceci valide l'adresse de courriel selon la syntaxe défini par la RFC 822, à l'exception des commentaires et du remplissage par des espaces qui ne sont pas supportés.
FILTER_VALIDATE_FLOAT | "float" | default, decimal | FILTER_FLAG_ALLOW_THOUSAND | Valide un nombre décimal, et le convertie en nombre décimal en cas de succès.
FILTER_VALIDATE_INT | "int" | default, min_range, max_range | FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX | Valide un entier, éventuellement dans un intervalle donné et le convertie en entier en cas de succès.
FILTER_VALIDATE_IP | "validate_ip" | default | FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE | Valide une adresse IP, éventuellement IPv4 ou IPv6, éventuellement hors des plages privées ou réservées.
FILTER_VALIDATE_MAC | "validate_mac_address" | default |  | Valide la valeur comme une adresse MAC.
FILTER_VALIDATE_REGEXP | "validate_regexp" | default, regexp |  | Valide une valeur avec une expression rationnelle regexp, compatible Perl.
FILTER_VALIDATE_URL | "validate_url" | default | FILTER_FLAG_SCHEME_REQUIRED, FILTER_FLAG_HOST_REQUIRED, FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED | Valide une URL (selon » http://www.faqs.org/rfcs/rfc2396), éventuellement avec des composants requis. Attention, une URL valide peut ne pas spécifier le protocole HTTP http://, aussi, des validations ultérieures supplémentaires seront requises pour déterminer si l'URL utilise un protocole attendu, i.e. ssh:// ou mailto:. Cette fonction ne trouvera que des URLs ASCII valides, les domaines internationnalisés (contenant des caractères non-ASCII) ne fonctionneront pas.

Note:

Depuis PHP 5.4.11, les nombres +0 et -0 sont validés comme des entiers, mais aussi comme des nombres à virgule flottante (en utilisant les constantes FILTER_VALIDATE_FLOAT et FILTER_VALIDATE_INT). Avant PHP 5.4.11, ils n'étaient validés que comme des nombres à virgule flottante (en utilisant la constante FILTER_VALIDATE_FLOAT).

Lorsque le paramètre default est défini comme option, la valeur passée est utilisée si la valeur n'est pas validée.

Historique

Version | Description
5.5.0 | Ajout de la constante FILTER_VALIDATE_MAC
5.2.1 | FILTER_VALIDATE_URL vaut désormais par défaut FILTER_FLAG_SCHEME_REQUIRED et FILTER_FLAG_HOST_REQUIRED.


Filtres de nettoyage

Liste des filtres de nettoyage
ID | Nom | Flags | Description
FILTER_SANITIZE_EMAIL | "email" |  | Supprime tous les caractères sauf les lettres, chiffres, et !#$%&'*+-=?^_`{|}~@.[].
FILTER_SANITIZE_ENCODED | "encoded" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH | Applique l'encodage URL, et supprime ou encode les caractères spéciaux.
FILTER_SANITIZE_MAGIC_QUOTES | "magic_quotes" |  | Applique addslashes().
FILTER_SANITIZE_NUMBER_FLOAT | "number_float" | FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC | Supprime tous les caractères, sauf les chiffres, +- et éventuellement .,eE.
FILTER_SANITIZE_NUMBER_INT | "number_int" |  | Supprime tous les caractères sauf les chiffres, et les signes plus et moins.
FILTER_SANITIZE_SPECIAL_CHARS | "special_chars" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_HIGH | Transforme en entité HTML les caractères '"<>& et les caractères ASCII de valeur inférieur à 32, et supprime ou encode les autres caractères spéciaux.
FILTER_SANITIZE_FULL_SPECIAL_CHARS | "full_special_chars" | FILTER_FLAG_NO_ENCODE_QUOTES, | Équivaut à appeler la fonction htmlspecialchars() avec le jeu ENT_QUOTES. L'encodage des guillemets peut être désactivé en utilisant la constante FILTER_FLAG_NO_ENCODE_QUOTES. Comme la fonction htmlspecialchars(), ce filtre tient compte du default_charset et si une séquence d'octets est détectée contenant un caractère invalide dans le jeu de caractères courant, alors la chaîne entière sera rejetée et une chaîne vide sera retournée.
FILTER_SANITIZE_STRING | "string" | FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Supprime les balises, et supprime ou encode les caractères spéciaux.
FILTER_SANITIZE_STRIPPED | "stripped" |  | Alias du filtre "string".
FILTER_SANITIZE_URL | "url" |  | Supprime tous les caractères sauf les lettres, chiffres et $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_UNSAFE_RAW | "unsafe_raw" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Ne fait rien, supprime ou encode les caractères spéciaux. Ce filtre est aussi un alias pour FILTER_DEFAULT.

Avertissement

Lorsque vous utilisez ces filtres comme filtres par défaut, le drapeau par défaut est réglé sur FILTER_FLAG_NO_ENCODE_QUOTES. Vous devez mettre filter.default_flags à 0 explicitement pour que les quotes soient encodées par défaut. Comme ceci:

Exemple #1 Configurer le filtre par défaut pour agir comme htmlspecialchars

filter.default = full_special_chars
filter.default_flags = 0

Historique

Version | Description
5.2.11/5.3.1 | Les slashes (/) sont supprimés par FILTER_SANITIZE_EMAIL. Avant cette version, ils ne l'étaient pas.


Autres filtres

Liste de filtres divers
ID | Nom | Options | Flags | Description
FILTER_CALLBACK | "callback" | Fonction ou méthode de rappel (type callable) |  | Appelle une fonction utilisateur pour filtrer les données.


Drapeaux des filtres

Liste de drapeaux de filtres
ID | Utilisé avec | Description
FILTER_FLAG_STRIP_LOW | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Supprime les caractères dont la valeur numérique est <32.
FILTER_FLAG_STRIP_HIGH | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Supprime les caractères dont la valeur numérique est >127.
FILTER_FLAG_STRIP_BACKTICK | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Supprime les caractères "accent grave".
FILTER_FLAG_ALLOW_FRACTION | FILTER_SANITIZE_NUMBER_FLOAT | Autorise un point (.) comme séparateur fractionnaire pour les nombres.
FILTER_FLAG_ALLOW_THOUSAND | FILTER_SANITIZE_NUMBER_FLOAT, FILTER_VALIDATE_FLOAT | Autorise une virgule (,) comme séparateur fractionnaire pour les nombres.
FILTER_FLAG_ALLOW_SCIENTIFIC | FILTER_SANITIZE_NUMBER_FLOAT | Autorise un e ou un E pour la notation scientifique dans les nombres.
FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_SANITIZE_STRING | Si ce drapeau est présent, les simples quotes (') et les doubles (") ne seront pas encodées.
FILTER_FLAG_ENCODE_LOW | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Encode tous les caractères dont la valeur numérique est <32.
FILTER_FLAG_ENCODE_HIGH | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Encode tous les caractères dont la valeur numérique est >127.
FILTER_FLAG_ENCODE_AMP | FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Encode les &.
FILTER_NULL_ON_FAILURE | FILTER_VALIDATE_BOOLEAN | Retourne NULL pour les valeurs booléennes non reconnues.
FILTER_FLAG_ALLOW_OCTAL | FILTER_VALIDATE_INT | Prend en compte les nombres octals précédés d'un zéro (0). Ceci ne fonctionne que pour les chiffres 0-7.
FILTER_FLAG_ALLOW_HEX | FILTER_VALIDATE_INT | Prend en compte les nombres héxadécimaux précédés de 0x ou 0X. Ceci ne fonctionne que pour a-fA-F0-9.
FILTER_FLAG_IPV4 | FILTER_VALIDATE_IP | Autorise une adresse IP au format IPv4.
FILTER_FLAG_IPV6 | FILTER_VALIDATE_IP | Autorise une adresse IP au format IPv6.
FILTER_FLAG_NO_PRIV_RANGE | FILTER_VALIDATE_IP | Echoue la validation pour les intervales privés IPv4: 10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16. Echoue la validation pour les adresses IPv6 commençant par FD ou FC.
FILTER_FLAG_NO_RES_RANGE | FILTER_VALIDATE_IP | Echoue la validation pour les intervales IPv4 réservés: 0.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24 et 224.0.0.0/4. Ce drapeau ne concerne pas les adresses IPv6.
FILTER_FLAG_SCHEME_REQUIRED | FILTER_VALIDATE_URL | Requière de l'URL qu'elle contienne une partie schéma.
FILTER_FLAG_HOST_REQUIRED | FILTER_VALIDATE_URL | Requière de l'URL qu'elle contienne une partie hôte.
FILTER_FLAG_PATH_REQUIRED | FILTER_VALIDATE_URL | Oblige URL à contenir un chemin.
FILTER_FLAG_QUERY_REQUIRED | FILTER_VALIDATE_URL | Oblige URL à contenir une chaine de requête.
FILTER_REQUIRE_SCALAR |  | Oblige la valeur à être un scalaire.
FILTER_REQUIRE_ARRAY |  | Oblige la valeur à être un tableau.
FILTER_FORCE_ARRAY |  | Si la valeur est un scalaire, elle sera traitée comme un tableau avec les valeurs scalaires comme seul élément.

Historique

Version | Description
5.3.2 | FILTER_FLAG_STRIP_BACKTICK a été ajouté.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

INPUT_POST (entier)
variables POST.
INPUT_GET (entier)
variables GET.
INPUT_COOKIE (entier)
variables COOKIE.
INPUT_ENV (entier)
variables ENV.
INPUT_SERVER (entier)
variables SERVER.
INPUT_SESSION (entier)
variables SESSION. (pas encore implémenté)
INPUT_REQUEST (entier)
variables REQUEST. (pas encore implémenté)
FILTER_FLAG_NONE (entier)
Aucun drapeau.
FILTER_REQUIRE_SCALAR (entier)
Drapeau utilisé pour requérir un scalaire en entrée.
FILTER_REQUIRE_ARRAY (entier)
Requière un tableau en entrée.
FILTER_FORCE_ARRAY (entier)
Retourne toujours un tableau.
FILTER_NULL_ON_FAILURE (entier)
Utilisation de NULL au lieu de FALSE si une erreur survient.
FILTER_VALIDATE_INT (entier)
ID du filtre "int".
FILTER_VALIDATE_BOOLEAN (entier)
ID du filtre "boolean".
FILTER_VALIDATE_FLOAT (entier)
ID du filtre "float".
FILTER_VALIDATE_REGEXP (entier)
ID du filtre "validate_regexp".
FILTER_VALIDATE_URL (entier)
ID du filtre "validate_url".
FILTER_VALIDATE_EMAIL (entier)
ID du filtre "validate_email".
FILTER_VALIDATE_IP (entier)
ID du filtre "validate_ip".
FILTER_VALIDATE_MAC (integer)
ID du filtre "validate_mac_address". (Disponible depuis PHP 5.5.0)
FILTER_DEFAULT (entier)
ID du filtre par défaut ("unsafe_raw"). Ceci est équivalent à la constante FILTER_UNSAFE_RAW.
FILTER_UNSAFE_RAW (entier)
ID du filtre "unsafe_raw".
FILTER_SANITIZE_STRING (entier)
ID du filtre "string".
FILTER_SANITIZE_STRIPPED (entier)
ID du filtre "stripped".
FILTER_SANITIZE_ENCODED (entier)
ID du filtre "encoded".
FILTER_SANITIZE_SPECIAL_CHARS (entier)
ID du filtre "special_chars".
FILTER_SANITIZE_EMAIL (entier)
ID du filtre "email".
FILTER_SANITIZE_URL (entier)
ID du filtre "url".
FILTER_SANITIZE_NUMBER_INT (entier)
ID du filtre "number_int".
FILTER_SANITIZE_NUMBER_FLOAT (entier)
ID du filtre "number_float".
FILTER_SANITIZE_MAGIC_QUOTES (entier)
ID du filtre "magic_quotes".
FILTER_CALLBACK (entier)
ID du filtre de rappel.
FILTER_FLAG_ALLOW_OCTAL (entier)
Alloue une notation octale (0[0-7]+) dans le filtre "int".
FILTER_FLAG_ALLOW_HEX (entier)
Alloue une notation hexadécimale (0x[0-9a-fA-F]+) dans le filtre "int".
FILTER_FLAG_STRIP_LOW (entier)
Supprime les caractères dont les valeurs ASCII sont inférieures à 32.
FILTER_FLAG_STRIP_HIGH (entier)
Supprime les caractères dont les valeurs ASCII sont supérieures à 127.
FILTER_FLAG_ENCODE_LOW (entier)
Encode les caractères dont les valeurs ASCII sont inférieures à 32.
FILTER_FLAG_ENCODE_HIGH (entier)
Encode les caractères dont les valeurs ASCII sont supérieures à 127.
FILTER_FLAG_ENCODE_AMP (entier)
Encode &.
FILTER_FLAG_NO_ENCODE_QUOTES (entier)
N'encode pas ', ni ".
FILTER_FLAG_EMPTY_STRING_NULL (entier)
(Non utilisé actuellement.)
FILTER_FLAG_ALLOW_FRACTION (entier)
Alloue une partie fractionnelle dans le filtre "number_float".
FILTER_FLAG_ALLOW_THOUSAND (entier)
Alloue le séparateur des milliers (,) dans le filtre "number_float".
FILTER_FLAG_ALLOW_SCIENTIFIC (entier)
Alloue une notation scientifique (e, E) dans le filtre "number_float".
FILTER_FLAG_PATH_REQUIRED (entier)
Chemin requis dans le filtre "validate_url".
FILTER_FLAG_QUERY_REQUIRED (entier)
Requête requise dans le filtre "validate_url".
FILTER_FLAG_IPV4 (entier)
N'autorise que les adresses IPv4 dans le filtre "validate_ip".
FILTER_FLAG_IPV6 (entier)
N'autorise que les adresses IPv6 dans le filtre "validate_ip".
FILTER_FLAG_NO_RES_RANGE (entier)
N'autorise pas les adresses réservées dans le filtre "validate_ip".
FILTER_FLAG_NO_PRIV_RANGE (entier)
N'autorise pas les adresses privées dans le filtre "validate_ip".


  • « Constantes pré-définies
  • Validation »
  • PHP Manual
  • Filter
  • Exemples

Exemples

Sommaire

  • Validation
  • Nettoyage


Validation

Exemple #1 Validation d'adresses email avec filter_var()

<?php
$email_a = 'joe@example.com';
$email_b = 'bogus';

if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
    echo "Cette ($email_a) adresse email est considérée comme valide.";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
    echo "Cette ($email_b) adresse email est considérée comme valide.";
}
?>

L'exemple ci-dessus va afficher :

Cette (joe@example.com) adresse email est considérée comme valide.

Exemple #2 Validation d'adresses IP avec filter_var()

<?php
$ip_a = '127.0.0.1';
$ip_b = '42.42';

if (filter_var($ip_a, FILTER_VALIDATE_IP)) {
    echo "Cette (ip_a) adresse IP est considérée comme valide.";
}
if (filter_var($ip_b, FILTER_VALIDATE_IP)) {
    echo "Cette (ip_b) adresse IP est considérée comme valide.";
}
?>

L'exemple ci-dessus va afficher :

Cette (ip_a) adresse IP est considérée comme valide.

Exemple #3 Passage d'options à la fonction filter_var()

<?php
$int_a = '1';
$int_b = '-1';
$int_c = '4';
$options = array(
    'options' => array(
                      'min_range' => 0,
                      'max_range' => 3,
                      )
);
if (filter_var($int_a, FILTER_VALIDATE_INT, $options) !== FALSE) {
    echo "Cet entier (int_a) est considéré comme valide (entre 0 et 3).\n";
}
if (filter_var($int_b, FILTER_VALIDATE_INT, $options) !== FALSE) {
    echo "Cet entier (int_b) est considéré comme valide (entre 0 et 3).\n";
}
if (filter_var($int_c, FILTER_VALIDATE_INT, $options) !== FALSE) {
    echo "Cet entier (int_c) est considéré comme valide (entre 0 et 3).\n";
}

$options['options']['default'] = 1;
if (($int_c = filter_var($int_c, FILTER_VALIDATE_INT, $options)) !== FALSE) {
    echo "Cet entier (int_c) est considéré comme valide (entre 0 et 3) et vaut $int_c.";
}
?>

L'exemple ci-dessus va afficher :

Cet entier (int_a) est considéré comme valide (entre 0 et 3).
Cet entier (int_c) est considéré comme valide (entre 0 et 3) et vaut 1.


Nettoyage

Exemple #1 Nettoyage et validation d'adresses email

<?php
$a = 'joe@example.org';
$b = 'bogus - at - example dot org';
$c = '(bogus@example.org)';

$sanitized_a = filter_var($a, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_a, FILTER_VALIDATE_EMAIL)) {
    echo "Cette (a) adresse email nettoyée est considérée comme valide.";
}

$sanitized_b = filter_var($b, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_b, FILTER_VALIDATE_EMAIL)) {
    echo "Cette (b) adresse email nettoyée est considérée comme valide.";
} else {
    echo "Cette (b) adresse email nettoyée est considérée comme invalide.";
}

$sanitized_c = filter_var($c, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_c, FILTER_VALIDATE_EMAIL)) {
    echo "Cette (c) adresse email nettoyée est considérée comme valide.";
    echo "Avant : $c\n";
    echo "Après :  $sanitized_c\n";
}
?>

L'exemple ci-dessus va afficher :

Cette (a) adresse email nettoyée est considérée comme valide.
Cette (b) adresse email nettoyée est considérée comme invalide.
Cette (c) adresse email nettoyée est considérée comme valide.
Avant : (bogus@example.org)
Après :  bogus@example.org

Exemple #2 Configurer le filtre par défaut

filter.default = full_special_chars
filter.default_flags = 0


Filter Fonctions

Sommaire

  • filter_has_var — Vérifie si une variable d'un type spécifique existe
  • filter_id — Retourne l'identifiant d'un filtre nommé
  • filter_input_array — Récupère plusieurs valeurs externes et les filtre
  • filter_input — Récupère une variable externe et la filtre
  • filter_list — Retourne une liste de tous les filtres supportés
  • filter_var_array — Récupère plusieurs variables et les filtre
  • filter_var — Filtre une variable avec un filtre spécifique


Vérifie si une variable d'un type spécifique existe

  • « Filter Fonctions
  • filter_id »
  • PHP Manual
  • Filter Fonctions
  • Vérifie si une variable d'un type spécifique existe

filter_has_var

(PHP 5 >= 5.2.0, PHP 7)

filter_has_var — Vérifie si une variable d'un type spécifique existe

Description

bool filter_has_var ( int $type , string $variable_name )

Liste de paramètres

type

Une constante parmi INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER ou INPUT_ENV.

variable_name

Nom de la variable à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Retourne l'identifiant d'un filtre nommé

  • « filter_has_var
  • filter_input_array »
  • PHP Manual
  • Filter Fonctions
  • Retourne l'identifiant d'un filtre nommé

filter_id

(PHP 5 >= 5.2.0, PHP 7)

filter_id — Retourne l'identifiant d'un filtre nommé

Description

int filter_id ( string $filtername )

Liste de paramètres

filtername

Nom du filtre à récupérer.

Valeurs de retour

Identifiant du filtre en cas de succès, ou FALSE si le filtre n'existe pas.

Voir aussi

  • filter_list() - Retourne une liste de tous les filtres supportés


Récupère plusieurs valeurs externes et les filtre

  • « filter_id
  • filter_input »
  • PHP Manual
  • Filter Fonctions
  • Récupère plusieurs valeurs externes et les filtre

filter_input_array

(PHP 5 >= 5.2.0, PHP 7)

filter_input_array — Récupère plusieurs valeurs externes et les filtre

Description

mixed filter_input_array ( int $type [, mixed $definition [, bool $add_empty = true ]] )

Cette fonction est utile pour récupérer plusieurs valeurs sans avoir à appeler plusieurs fois la fonction filter_input().

Liste de paramètres

type

Une constante parmi INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER ou INPUT_ENV.

definition

Un tableau définissant les arguments. Une clé valide est une chaîne de caractères contenant le nom de la variable et une valeur valide est soit le type d'un filtre, soit un tableau spécifiant le filtre, les drapeaux et les options. Si la valeur est un tableau, les clés valides sont filter qui spécifie le type du filtre, flags qui spécifie tous les drapeaux à appliquer au filtre, et options qui spécifie toutes les options à appliquer au filtre. Voir l'exemple ci-dessous pour une meilleure compréhension.

Ce paramètre peut également être un entier contenant une constante de filtre. Ensuite, toutes les valeurs du tableau d'entrée seront filtrées par ce filtre.

add_empty

Ajout des clés manquantes à la valeur NULL dans la valeur retournée.

Valeurs de retour

Un tableau contenant les valeurs des variables demandées en cas de succès, ou FALSE si une erreur survient. Un tableau de valeurs peut valoir FALSE si le filtre échoue, ou NULL si la variable n'est pas définie. Ou, si le drapeau FILTER_NULL_ON_FAILURE est utilisé, la fonction retournera FALSE si la variable n'est pas définie et NULL si le filtre échoue.

Exemples

Exemple #1 Exemple avec filter_input_array()

<?php
error_reporting(E_ALL | E_STRICT);
/* les données arrivent depuis POST
$_POST = array(
    'product_id'    => 'libgd<script>',
    'component'     => '10',
    'versions'      => '2.0.33',
    'testscalar'    => array('2', '23', '10', '12'),
    'testarray'     => '2',
);
*/

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_REQUIRE_ARRAY,
                            'options'   => array('min_range' => 1, 'max_range' => 10)
                           ),
    'versions'     => FILTER_SANITIZE_ENCODED,
    'doesnotexist' => FILTER_VALIDATE_INT,
    'testscalar'   => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    'testarray'    => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_ARRAY,
                           )

);

$myinputs = filter_input_array(INPUT_POST, $args);

var_dump($myinputs);
echo "\n";
?>

L'exemple ci-dessus va afficher :

array(6) {
  ["product_id"]=>
  array(1) {
    [0]=>
    string(17) "libgd%3Cscript%3E"
  }
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  array(1) {
    [0]=>
    string(6) "2.0.33"
  }
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

Historique

Version | Description
5.4.0 | Ajout du paramètre add_empty.

Notes

Note:

Il n'y a pas de clé REQUEST_TIME dans le tableau INPUT_SERVER car elle est insérée dans la variable $_SERVER plus tard.

Voir aussi

  • filter_input() - Récupère une variable externe et la filtre
  • filter_var_array() - Récupère plusieurs variables et les filtre
  • Types de filtres


Récupère une variable externe et la filtre

  • « filter_input_array
  • filter_list »
  • PHP Manual
  • Filter Fonctions
  • Récupère une variable externe et la filtre

filter_input

(PHP 5 >= 5.2.0, PHP 7)

filter_input — Récupère une variable externe et la filtre

Description

mixed filter_input ( int $type , string $variable_name [, int $filter = FILTER_DEFAULT [, mixed $options ]] )

Liste de paramètres

type

Une constante parmi INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER ou INPUT_ENV.

variable_name

Nom de la variable à récupérer.

filter

L'ID du filtre à appliquer. La Types de filtres page du manuel liste les filtres disponibles.

Si non spécifié, FILTER_DEFAULT sera utilisé, ce qui est équivalent à FILTER_UNSAFE_RAW. Cela reviendra à n'avoir aucun filtre en place par défaut.

options

Tableau associatif d'options ou des drapeaux. Si le filtre accepte les options, les drapeaux peuvent être fournis dans le champ "flags" du tableau.

Valeurs de retour

Valeur de la variable demandée en cas de succès, FALSE si le filtre échoue, ou NULL si la variable variable_name n'est pas définie. Si le drapeau FILTER_NULL_ON_FAILURE est utilisé, la fonction retournera FALSE si la variable n'est pas définie et NULL si le filtre échoue.

Exemples

Exemple #1 Exemple avec filter_input()

<?php
$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);
echo "Vous avez recherché $search_html.\n";
echo "<a href='?search=$search_url'>Nouvelle recherche.</a>";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Vous avez recherché Me &#38; son.
<a href='?search=Me%20%26%20son'>Nouvelle recherche.</a>

Voir aussi

  • filter_var() - Filtre une variable avec un filtre spécifique
  • filter_input_array() - Récupère plusieurs valeurs externes et les filtre
  • filter_var_array() - Récupère plusieurs variables et les filtre
  • Types de filtres


Retourne une liste de tous les filtres supportés

  • « filter_input
  • filter_var_array »
  • PHP Manual
  • Filter Fonctions
  • Retourne une liste de tous les filtres supportés

filter_list

(PHP 5 >= 5.2.0, PHP 7)

filter_list — Retourne une liste de tous les filtres supportés

Description

array filter_list ( void )

Valeurs de retour

Retourne un tableau de noms de tous les filtres supportés, un tableau vide s'il n'y a pas de filtre. Les index de ce tableau ne sont pas les identifiants des filtres, ils peuvent être obtenus avec la fonction filter_id() à partir du nom.

Exemples

Exemple #1 Exemple avec filter_list()

<?php
print_r(filter_list());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => int
    [1] => boolean
    [2] => float
    [3] => validate_regexp
    [4] => validate_url
    [5] => validate_email
    [6] => validate_ip
    [7] => string
    [8] => stripped
    [9] => encoded
    [10] => special_chars
    [11] => unsafe_raw
    [12] => email
    [13] => url
    [14] => number_int
    [15] => number_float
    [16] => magic_quotes
    [17] => callback
)


Récupère plusieurs variables et les filtre

  • « filter_list
  • filter_var »
  • PHP Manual
  • Filter Fonctions
  • Récupère plusieurs variables et les filtre

filter_var_array

(PHP 5 >= 5.2.0, PHP 7)

filter_var_array — Récupère plusieurs variables et les filtre

Description

mixed filter_var_array ( array $data [, mixed $definition [, bool $add_empty = true ]] )

Cette fonction est utile pour récupérer plusieurs valeurs sans appeler plusieurs fois la fonction filter_var().

Liste de paramètres

data

Un tableau avec les clés contenant les données à filtrer.

definition

Un tableau définissant les arguments. Une clé valide est une chaîne de caractères contenant le nom de la variable et une valeur valide est soit le type d'un filtre, soit un tableau spécifiant le filtre, les drapeaux et les options. Si la valeur est un tableau, les clés valides sont filter qui spécifie le type du filtre, flags qui spécifie tous les drapeaux à appliquer au filtre, et options qui spécifie toutes les options à appliquer au filtre. Voir l'exemple ci-dessous pour une meilleure compréhension.

Ce paramètre peut également être un entier contenant une constante de filtre. Ensuite, toutes les valeurs du tableau d'entrée seront filtrées par ce filtre.

add_empty

Ajout des clés manquantes à la valeur NULL dans la valeur retournée.

Valeurs de retour

Un tableau contenant les valeurs des variables demandées en cas de succès, ou FALSE si une erreur survient. Un tableau de valeurs peut valoir FALSE si le filtre échoue, ou NULL si la variable n'est pas définie.

Exemples

Exemple #1 Exemple avec filter_var_array()

<?php
error_reporting(E_ALL | E_STRICT);
$data = array(
    'product_id'    => 'libgd<script>',
    'component'     => '10',
    'versions'      => '2.0.33',
    'testscalar'    => array('2', '23', '10', '12'),
    'testarray'     => '2',
);

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_FORCE_ARRAY,
                            'options'   => array('min_range' => 1, 'max_range' => 10)
                           ),
    'versions'     => FILTER_SANITIZE_ENCODED,
    'doesnotexist' => FILTER_VALIDATE_INT,
    'testscalar'   => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    'testarray'    => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_FORCE_ARRAY,
                           )

);

$myinputs = filter_var_array($data, $args);

var_dump($myinputs);
echo "\n";
?>

L'exemple ci-dessus va afficher :

array(6) {
  ["product_id"]=>
  array(1) {
    [0]=>
    string(17) "libgd%3Cscript%3E"
  }
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  array(1) {
    [0]=>
    string(6) "2.0.33"
  }
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

Historique

Version | Description
5.4.0 | Ajout du paramètre add_empty.

Voir aussi

  • filter_input_array() - Récupère plusieurs valeurs externes et les filtre
  • filter_var() - Filtre une variable avec un filtre spécifique
  • filter_input() - Récupère une variable externe et la filtre
  • Types de filtres


Filtre une variable avec un filtre spécifique

  • « filter_var_array
  • Gestion des fonctions »
  • PHP Manual
  • Filter Fonctions
  • Filtre une variable avec un filtre spécifique

filter_var

(PHP 5 >= 5.2.0, PHP 7)

filter_var — Filtre une variable avec un filtre spécifique

Description

mixed filter_var ( mixed $variable [, int $filter = FILTER_DEFAULT [, mixed $options ]] )

Liste de paramètres

variable

Valeur à filtrer. Notez que les valeurs scalaires sont converties en chaîne de caractères en interne avant qu'elles ne soient filtrées.

filter

L'ID du filtre à appliquer. La Types de filtres page du manuel liste les filtres disponibles.

Si non spécifié, FILTER_DEFAULT sera utilisé, ce qui est équivalent à FILTER_UNSAFE_RAW. Cela reviendra à n'avoir aucun filtre en place par défaut.

options

Tableau associatif d'options ou des drapeaux. Si le filtre accepte les options, les drapeaux peuvent être fournis dans le champ "flags" du tableau. Pour les fonctions de rappel, le type callable devra être passé. La fonction de rappel doit accepter un seul argument ; la valeur à filtrer et retournera la valeur, une fois le filtre appliqué.

<?php
// Pour les filtres acceptant les options,
// utilisez ce format
$options = array(
    'options' => array(
        'default' => 3, // valeur à retourner si le filtre échoue
        // autres options ici...
        'min_range' => 0
    ),
    'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var = filter_var('0755', FILTER_VALIDATE_INT, $options);

// Pour les filtres qui n'acceptent que des drapeaux,
// vous pouvez les passer directement
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);

// Pour les filtres qui n'acceptent que des drapeaux,
// vous pouvez également les passer sous forme de tableau
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
                  array('flags' => FILTER_NULL_ON_FAILURE));

// Fonction de rappel du filtre
function foo($value)
{
    // Format attendu: Surname, GivenNames
    if (strpos($value, ", ") === false) return false;
    list($surname, $givennames) = explode(", ", $value, 2);
    $empty = (empty($surname) || empty($givennames));
    $notstrings = (!is_string($surname) || !is_string($givennames));
    if ($empty || $notstrings) {
        return false;
    } else {
        return $value;
    }
}
$var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));
?>

Valeurs de retour

Retourne les données filtrées, ou FALSE si le filtre échoue.

Exemples

Exemple #1 Exemple avec filter_var()

<?php
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));
?>

L'exemple ci-dessus va afficher :

string(15) "bob@example.com"
bool(false)

Voir aussi

  • filter_var_array() - Récupère plusieurs variables et les filtre
  • filter_input() - Récupère une variable externe et la filtre
  • filter_input_array() - Récupère plusieurs valeurs externes et les filtre
  • Types de filtres
  • Informations sur le type callback


Gestion des fonctions

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions sur la gestion des fonctions
    • call_user_func_array — Appelle une fonction de rappel avec les paramètres rassemblés en tableau
    • call_user_func — Appelle une fonction de rappel fournie par le premier argument
    • create_function — Crée une fonction anonyme
    • forward_static_call_array — Appelle une méthode statique et passe les arguments en tableau
    • forward_static_call — Appelle une méthode statique
    • func_get_arg — Retourne un élément de la liste des arguments
    • func_get_args — Retourne les arguments d'une fonction sous la forme d'un tableau
    • func_num_args — Retourne le nombre d'arguments passés à la fonction
    • function_exists — Indique si une fonction est définie
    • get_defined_functions — Liste toutes les fonctions définies
    • register_shutdown_function — Enregistre une fonction de rappel pour exécution à l'extinction
    • register_tick_function — Enregistre une fonction exécutée à chaque tick
    • unregister_tick_function — Annule la fonction exécutée à chaque tick


  • « Gestion des fonctions
  • Installation/Configuration »
  • PHP Manual
  • Gestion des fonctions
  • Introduction

Introduction

Ces fonctions effectuent les manipulations liées à la gestion des fonctions.


  • « Types de ressources
  • Fonctions sur la gestion des fonctions »
  • PHP Manual
  • Gestion des fonctions
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions sur la gestion des fonctions

Sommaire

  • call_user_func_array — Appelle une fonction de rappel avec les paramètres rassemblés en tableau
  • call_user_func — Appelle une fonction de rappel fournie par le premier argument
  • create_function — Crée une fonction anonyme
  • forward_static_call_array — Appelle une méthode statique et passe les arguments en tableau
  • forward_static_call — Appelle une méthode statique
  • func_get_arg — Retourne un élément de la liste des arguments
  • func_get_args — Retourne les arguments d'une fonction sous la forme d'un tableau
  • func_num_args — Retourne le nombre d'arguments passés à la fonction
  • function_exists — Indique si une fonction est définie
  • get_defined_functions — Liste toutes les fonctions définies
  • register_shutdown_function — Enregistre une fonction de rappel pour exécution à l'extinction
  • register_tick_function — Enregistre une fonction exécutée à chaque tick
  • unregister_tick_function — Annule la fonction exécutée à chaque tick


Appelle une fonction de rappel avec les paramètres rassemblés en tableau

  • « Fonctions sur la gestion des fonctions
  • call_user_func »
  • PHP Manual
  • Fonctions sur la gestion des fonctions
  • Appelle une fonction de rappel avec les paramètres rassemblés en tableau

call_user_func_array

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

call_user_func_array — Appelle une fonction de rappel avec les paramètres rassemblés en tableau

Description

mixed call_user_func_array ( callable $callback , array $param_arr )

Appelle la fonction de rappel callback fournie avec les paramètres param_arr, rassemblés dans un tableau.

Liste de paramètres

callback

La fonction de rappel à appeler.

param_arr

Les paramètres à passer à la fonction de rappel, sous la forme d'un tableau indexé.

Valeurs de retour

Retourne la valeur retournée par la fonction de rappel, ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | L'interprétation des mots-clés du modèle objet comme parent et self a changé. Avant, les appeler avec la syntaxe à double deux-points envoyait une erreur E_STRICT à cause de l'interprétation statique.

Exemples

Exemple #1 Exemple avec call_user_func_array()

<?php
function foobar($arg, $arg2) {
    echo __FUNCTION__, " got $arg and $arg2\n";
}
class foo {
    function bar($arg, $arg2) {
        echo __METHOD__, " got $arg and $arg2\n";
    }
}

// Appel de la fonction foobar() avec 2 arguments
call_user_func_array("foobar", array("one", "two"));

// Appel de la méthode $foo->bar() avec 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

foobar got one and two
foo::bar got three and four

Exemple #2 Exemple avec call_user_func_array() en utilisant un espace de nom

<?php

namespace Foobar;

class Foo {
    static public function test($name) {
        print "Bonjour {$name}!\n";
    }
}

// Depuis PHP 5.3.0
call_user_func_array(__NAMESPACE__ .'\Foo::test', array('Hannes'));

// Depuis PHP 5.3.0
call_user_func_array(array(__NAMESPACE__ .'\Foo', 'test'), array('Philip'));

?>

L'exemple ci-dessus va afficher :

Bonjour Hannes!
Bonjour Philip!

Exemple #3 Utilisation d'une fonction lambda

<?php

$func = function($arg1, $arg2) {
    return $arg1 * $arg2;
};

var_dump(call_user_func_array($func, array(2, 4))); /* Depuis PHP 5.3.0 */

?>

L'exemple ci-dessus va afficher :

int(8)

Notes

Note:

Avant PHP 5.4, les variables référencées dans le paramètre param_arr sont passées dans la fonction par référence, indépendamment du fait que la fonction s'attend à ce que le paramètre soit passé par référence. Le fait d'utiliser ce mode pour passer les valeurs au paramètre n'émet pas de notice, mais c'est tout de même obsolète et a été supprimé depuis PHP 5.4. En outre, ceci ne s'applique pas aux fonctions internes, qui voient leurs signatures de fonctions honorées. Le fait de passer une valeur lorsque la fonction s'attend à un paramètre passé par référence produit une alerte et la fonction call_user_func() retournera FALSE (il y a, cependant, une exception pour les valeurs passées par référence count = 1, comme en litéral, vu qu'elle peut être converti en référence sans problème, mais aussi parceque l'écriture sur ces valeurs n'a aucun effet - ne vous fiez pas à ce détail, sachant que son comportement est discutable).

Note:

Notez que les fonctions de rappel enregistrées avec des fonctions comme call_user_func() et call_user_func_array() ne seront pas appelées si une exception n'est pas interceptée alors qu'elle a été lancée dans une précédente fonction de rappel.

Voir aussi

  • call_user_func() - Appelle une fonction de rappel fournie par le premier argument
  • Informations sur le type callback
  • ReflectionFunction::invokeArgs() - Invoque les arguments d'une fonction
  • ReflectionMethod::invokeArgs() - Invoque les arguments


Appelle une fonction de rappel fournie par le premier argument

  • « call_user_func_array
  • create_function »
  • PHP Manual
  • Fonctions sur la gestion des fonctions
  • Appelle une fonction de rappel fournie par le premier argument

call_user_func

(PHP 4, PHP 5, PHP 7)

call_user_func — Appelle une fonction de rappel fournie par le premier argument

Description

mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )

Appelle une fonction de rappel callback fournie par le paramètre callback où les autres arguments seront passés en paramètre.

Liste de paramètres

callback

La fonction de rappel à appeler.

parameter

0 ou plus de paramètres à passer à la fonction de rappel.

Note:

Notez que les paramètres pour call_user_func() ne sont pas passés par référence.

Exemple #1 Exemple avec call_user_func() par référence

<?php
function increment(&$var)
{
    $var++;
}

$a = 0;
call_user_func('increment', $a);
echo $a."\n";

// Vous pouvez utiliser ceci à la place
call_user_func_array('increment', array(&$a));
echo $a."\n";
?>

L'exemple ci-dessus va afficher :

0
1

Valeurs de retour

Retourne la valeur retournée par la fonction de rappel, ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | L'interprétation des mots-clés du modèle objet comme parent et self a changé. Avant, les appeler avec la syntaxe à double deux-points envoyait une erreur E_STRICT à cause de l'interprétation statique.

Exemples

Exemple #2 Exemple avec call_user_func()

<?php
function barber($type)
{
    echo "Vous voulez une coupe $type, aucun problème";
}
call_user_func('barber', "au bol");
call_user_func('barber', "au rasoir");
?>

L'exemple ci-dessus va afficher :

Vous voulez une coupe au bol, aucun problème
Vous voulez une coupe au rasoir, aucun problème

Exemple #3 Exemple avec call_user_func() en utilisant un espace de noms

<?php

namespace Foobar;

class Foo {
    static public function test() {
        print "Hello world!\n";
    }
}

call_user_func(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0
call_user_func(array(__NAMESPACE__ .'\Foo', 'test')); // As of PHP 5.3.0
?>

L'exemple ci-dessus va afficher :

Hello world!
Hello world!

Exemple #4 Utilisation d'une méthode de classe avec call_user_func()

<?php

class maclasse {
    static function dit_bonjour()
    {
        echo "Bonjour!\n";
    }
}

$classname = "maclasse";

call_user_func(array($classname, 'dit_bonjour'));
call_user_func($classname .'::dit_bonjour');    // Depuis 5.2.3

$monobjet = new maclasse();

call_user_func(array($monobjet, 'dit_bonjour'));

?>

L'exemple ci-dessus va afficher :

Bonjour!
Bonjour!
Bonjour!

Exemple #5 Utilisation d'une fonction lambda avec call_user_func()

<?php
call_user_func(function($arg) { print "[$arg]\n"; }, 'test'); /* Depuis PHP 5.3.0 */
?>

L'exemple ci-dessus va afficher :

[test]

Notes

Note:

Notez que les fonctions de rappel enregistrées avec des fonctions comme call_user_func() et call_user_func_array() ne seront pas appelées si une exception n'est pas interceptée alors qu'elle a été lancée dans une précédente fonction de rappel.

Voir aussi

  • call_user_func_array() - Appelle une fonction de rappel avec les paramètres rassemblés en tableau
  • is_callable() - Détermine si l'argument peut être appelé comme fonction
  • Informations sur le type callback
  • ReflectionFunction::invoke() - Invoque une fonction
  • ReflectionMethod::invoke() - Invoque


Crée une fonction anonyme

  • « call_user_func
  • forward_static_call_array »
  • PHP Manual
  • Fonctions sur la gestion des fonctions
  • Crée une fonction anonyme

create_function

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

create_function — Crée une fonction anonyme

Description

string create_function ( string $args , string $code )

create_function() crée une fonction anonyme, à partir des paramètres passés, et retourne un nom de fonction unique.

Attention

Cette fonction, en interne, utilise la fonction eval() et donc les exigences en terme de sécurité sont identiques à celles de la fonction eval(). De plus, les performances ne sont pas au rendez-vous et l'usage mémoire est significatif.

Si vous utilisez PHP 5.3.0 ou supérieur, une fonction anonyme native doit être utilisée à la place.

Liste de paramètres

Généralement, les arguments args sont présentés sous la forme d'une chaîne à guillemets simples, et la même recommandation vaut pour code. La raison de l'utilisation des guillemets simples est de protéger les noms de variables du remplacement par leur valeur. Si vous utilisez les guillemets doubles, n'oubliez pas d'échapper les noms de variables (i.e. \$avar).

args

Les arguments de la fonction.

code

Le code de la fonction.

Valeurs de retour

Retourne un nom de fonction unique, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'une fonction anonyme avec create_function()

Vous pouvez utiliser cette fonction pour (par exemple) créer une fonction à partir d'informations récoltées durant l'exécution :

<?php
$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');
echo "Nouvelle fonction anonyme  : $newfunc\n";
echo $newfunc(2, M_E) . "\n";
// affichera :
// Nouvelle fonction anonyme : lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
?>

Ou, pour pouvoir appliquer une fonction générique à une liste d'arguments.

Exemple #2 Traitement générique par fonction avec create_function()

<?php
function process($var1, $var2, $farr)
{
    foreach ($farr as $f) {
        echo $f($var1, $var2) . "\n";
    }
}

// Création d'une série de fonctions mathématiques
$f1 = 'if ($a >=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}';
$f2 = "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);";
$f3 = 'if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b; } else { return false; }';
$farr = array(
    create_function('$x,$y', 'return "un peu de trigo : ".(sin($x) + $x*cos($y));'),
    create_function('$x,$y', 'return "une hypoténuse : ".sqrt($x*$x + $y*$y);'),
    create_function('$a,$b', $f1),
    create_function('$a,$b', $f2),
    create_function('$a,$b', $f3)
    );

echo "\nUtilisation de la première liste de fonctions anonymes\n";
echo "paramétres : 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// Maintenant une liste de fonctions sur chaîne de caractères
$garr = array(
    create_function('$b,$a', 'if (strncmp($a, $b, 3) == 0) return "** \"$a\" '.
    'and \"$b\"\n** Look the same to me! (looking at the first 3 chars)";'),
    create_function('$a,$b', '; return "CRCs : " . crc32($a) . ", ".crc32($b);'),
    create_function('$a,$b', '; return "similarité (a,b) = " . similar_text($a, $b, &$p) . "($p%)";')
    );
echo "\nUtilisation de la seconde liste de fonctions anonymes\n";
process("Twas brilling and the slithy toves", "Twas the night", $garr);
?>

L'exemple ci-dessus va afficher :

Utilisation de la première liste de fonctions anonymes
paramètres : 2.3445, M_PI
un peu de trigo : -1.6291725057799
une hypoténuse : 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a)/b = 0.27122299212594

Utilisation de la seconde liste de fonctions anonymes
** "Twas the night" and "Twas brilling and the slithy toves"
** Ces chaînes se ressemblent ! (regardez les trois premiers caractères)
CRCs: -725381282, 342550513
similarité (a,b) = 11(45.833333333333%)

Mais l'utilisation la plus courante des fonctions lambda est la fonction de rappel, par exemple, lors de l'utilisation de array_walk() ou usort()

Exemple #3 Utilisation de fonctions anonymes comme fonction de rappel

<?php
$av = array("la ", "une ", "cette ", "une certaine ");
array_walk($av, create_function('&$v,$k', '$v = $v . "maison";'));
print_r($av);
?>

L'exemple ci-dessus va afficher :

Array
(
  [0] => la maison
  [1] => une maison
  [2] => cette maison
  [3] => une certaine maison
)

un tableau de chaînes de caractères ordonnées de la plus courte à la plus longue

<?php

$sv = array("petite", "longue", "une très longue chaîne", "une phrase toute entière");
print_r($sv);

?>

L'exemple ci-dessus va afficher :

Array
(
  [0] => petite
  [1] => longue
  [2] => une très longue chaîne
  [3] => une phrase toute entière
)

ordonnées de la plus longue à la plus courte

<?php

usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);

?>

L'exemple ci-dessus va afficher :

Array
(
  [0] => une phrase toute entière
  [1] => une très longue chaîne
  [2] => longue
  [3] => petite
)

Voir aussi

  • Fonctions anonymes


Appelle une méthode statique et passe les arguments en tableau

  • « create_function
  • forward_static_call »
  • PHP Manual
  • Fonctions sur la gestion des fonctions
  • Appelle une méthode statique et passe les arguments en tableau

forward_static_call_array

(PHP 5 >= 5.3.0, PHP 7)

forward_static_call_array — Appelle une méthode statique et passe les arguments en tableau

Description

mixed forward_static_call_array ( callable $function , array $parameters )

Appelle une fonction ou une méthode utilisateur, nommée function, avec les arguments rassemblés dans un tableau. Cette fonction doit être appelée depuis une méthode, et ne peut pas être utilisée hors d'une classe. Elle utilise le liage statique. Tous les arguments transmis sont passés par valeur dans un tableau, similairement à call_user_func_array().

Liste de paramètres

function

La fonction ou la méthode appelée. Ce paramètre peut être un tableau, avec le nom de la classe et de la méthode, ou une chaîne, avec le nom de la fonction.

parameter

Un paramètre, rassemblant tous les paramètres dans un tableau.

Note:

Notez que les paramètres sont passés par valeur par forward_static_call_array().

Valeurs de retour

Retourne le résultat de la fonction, et FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec forward_static_call_array()

<?php

class A
{
    const NAME = 'A';
    public static function test() {
        $args = func_get_args();
        echo static::NAME, " ".join(',', $args)." \n";
    }
}

class B extends A
{
    const NAME = 'B';

    public static function test() {
        echo self::NAME, "\n";
        forward_static_call_array(array('A', 'test'), array('encore', 'args'));
        forward_static_call_array( 'test', array('autres', 'args'));
    }
}

B::test('foo');

function test() {
        $args = func_get_args();
        echo "C ".join(',', $args)." \n";
    }

?>

L'exemple ci-dessus va afficher :

B
B encore,args
C autres,args

Voir aussi

  • forward_static_call() - Appelle une méthode statique
  • call_user_func() - Appelle une fonction de rappel fournie par le premier argument
  • call_user_func_array() - Appelle une fonction de rappel avec les paramètres rassemblés en tableau
  • is_callable() - Détermine si l'argument peut être appelé comme fonction
  • Informations sur le type callback


Appelle une méthode statique

  • « forward_static_call_array
  • func_get_arg »
  • PHP Manual
  • Fonctions sur la gestion des fonctions
  • Appelle une méthode statique

forward_static_call

(PHP 5 >= 5.3.0, PHP 7)

forward_static_call — Appelle une méthode statique

Description

mixed forward_static_call ( callable $function [, mixed $parameter [, mixed $... ]] )

Appelle une fonction ou une méthode utilisateur, nommée function, avec les arguments qui suivent. Cette fonction doit être appelée depuis une méthode, et ne peut pas être utilisée hors d'une classe. Elle utilise le liage statique.

Liste de paramètres

function

La fonction ou la méthode appelée. Ce paramètre peut être un tableau, avec le nom de la classe et de la méthode, ou une chaîne, avec le nom de la fonction.

parameter

Zéro ou plusieurs paramètres à passer à la fonction.

Valeurs de retour

Retourne le résultat de la fonction, ou bien FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec forward_static_call()

<?php

class A
{
    const NAME = 'A';
    public static function test() {
        $args = func_get_args();
        echo static::NAME, " ".join(',', $args)." \n";
    }
}

class B extends A
{
    const NAME = 'B';

    public static function test() {
        echo self::NAME, "\n";
        forward_static_call(array('A', 'test'), 'encore', 'args');
        forward_static_call( 'test', 'autres', 'args');
    }
}

B::test('foo');

function test() {
        $args = func_get_args();
        echo "C ".join(',', $args)." \n";
    }

?>

L'exemple ci-dessus va afficher :

B
B encore,args
C autres,args

Voir aussi

  • forward_static_call_array() - Appelle une méthode statique et passe les arguments en tableau
  • call_user_func_array() - Appelle une fonction de rappel avec les paramètres rassemblés en tableau
  • call_user_func() - Appelle une fonction de rappel fournie par le premier argument
  • is_callable() - Détermine si l'argument peut être appelé comme fonction
  • Informations sur le type callback


Retourne un élément de la liste des arguments

  • « forward_static_call
  • func_get_args »
  • PHP Manual
  • Fonctions sur la gestion des fonctions
  • Retourne un élément de la liste des arguments

func_get_arg

(PHP 4, PHP 5, PHP 7)

func_get_arg — Retourne un élément de la liste des arguments

Description

mixed func_get_arg ( int $arg_num )

Récupère un élément de la liste des arguments d'une fonction utilisateur.

func_get_arg() peut être utilisé
conjointement à func_num_args() et
func_get_args() pour permettre aux fonctions
utilisateurs d'accepter un nombre variable d'arguments.

Liste de paramètres

arg_num

La position de l'argument. Les arguments de la fonction sont comptés en commençant à partir de 0.

Valeurs de retour

Retourne l'argument spécifié, ou FALSE si une erreur survient.

Historique

Version | Description
5.3.0 | Cette fonction peut maintenant être utilisée dans des listes de paramètres.
5.3.0 | Si cette fonction est appelée depuis le scope le plus éloigné d'un fichier qui a été inclus via include ou require depuis l'intérieur d'une fonction du fichier appelant, elle génère une alerte et retourne FALSE.

Erreurs / Exceptions

Générera une alerte si elle est appelée hors d'une fonction utilisateur, ou si arg_num est plus grand que le nombre d'arguments passés.

Exemples

Exemple #1 Exemple avec func_get_arg()

<?php
function foo()
{
     $numargs = func_num_args();
     echo "Nombre d'arguments : $numargs\n";
     if ($numargs >= 2) {
         echo "Le second argument est : " . func_get_arg(1) . "\n";
     }
}

foo(1, 2, 3);
?>

L'exemple ci-dessus va afficher :

Nombre d'arguments : 3
Le second argument est : 2

Exemple #2 Exemple avec func_get_arg() avant et après PHP 5.3

test.php
<?php
function foo() {
    include './fga.inc';
}

foo('First arg', 'Second arg');
?>

fga.inc
<?php

$arg = func_get_arg(1);
var_export($arg);

?>

Affiche, avant PHP 5.3 :

'Second arg'

Affiche, en PHP 5.3 et suivants :

Warning: func_get_arg():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fga.inc on line 3
false

Exemple #3 Exemple func_get_arg() avec des arguments par référence et par valeur

<?php
function byVal($arg) {
    echo 'Tel que passé     : ', var_export(func_get_arg(0)), PHP_EOL;
    $arg = 'baz';
    echo 'Après changement  : ', var_export(func_get_arg(0)), PHP_EOL;
}

function byRef(&$arg) {
    echo 'Tel que passé     : ', var_export(func_get_arg(0)), PHP_EOL;
    $arg = 'baz';
    echo 'Après changement  : ', var_export(func_get_arg(0)), PHP_EOL;
}

$arg = 'bar';
byVal($arg);
byRef($arg);
?>

L'exemple ci-dessus va afficher :

Tel que passé : 'bar'
Après changement : 'bar'
Tel que passé : 'bar'
Après changement : 'baz'

Notes

Note:

Parce que cette fonction dépend de la portée courante pour déterminer les détails des paramètres, ils ne peuvent être utilisés en tant que paramètre d'une fonction dans les versions antérieures à 5.3.0. Si vous devez passer cette valeur, assignez les résultats à une variable et utilisez-la.

Note:

Si les arguments sont passés par référence, toutes leurs modifications seront reflétées dans les valeurs retournées par cette fonction. Depuis PHP 7, les valeurs courantes seront aussi retournées si les arguments sont passés par leur valeur.

Note: Cette fonction retourne uniquement une copie des arguments passés, et ne compte pas en tant qu'arguments par défaut (non passés).

Voir aussi

  • La syntaxe ... en PHP 5.6+
  • func_get_args()
  • func_num_args()


Retourne les arguments d'une fonction sous la forme d'un tableau

  • « func_get_arg
  • func_num_args »
  • PHP Manual
  • Fonctions sur la gestion des fonctions
  • Retourne les arguments d'une fonction sous la forme d'un tableau

func_get_args

(PHP 4, PHP 5, PHP 7)

func_get_args — Retourne les arguments d'une fonction sous la forme d'un tableau

Description

array func_get_args ( void )

Récupère les arguments d'une fonction sous la forme d'un tableau.

func_get_arg() peut être utilisé conjointement à func_num_args() et func_get_args() pour permettre aux fonctions utilisateurs d'accepter un nombre variable d'arguments.

Valeurs de retour

Retourne un tableau dont chaque élément est une copie du membre correspondant de la liste d'arguments de la fonction.

Historique

Version | Description
5.3.0 | Cette fonction peut maintenant être utilisée dans des listes de paramètres.
5.3.0 | Si cette fonction est appelée dans un fichier inclus avec include ou require logé dans une fonction, elle génèrera une alerte et retournera FALSE.

Erreurs / Exceptions

Générera une alerte si elle est appelée hors d'une fonction.

Exemples

Exemple #1 Exemple avec func_get_args()

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Nombre d'arguments : $numargs \n";
    if ($numargs >= 2) {
        echo "Le second argument est : " . func_get_arg(1) . "\n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "L'argument $i est : " . $arg_list[$i] . "\n";
    }
}

foo(1, 2, 3);
?>

L'exemple ci-dessus va afficher :

Nombre d'arguments : 3
Le second argument est : 2
L'argument 0 est : 1
L'argument 1 est : 2
L'argument 2 est : 3

Exemple #2 Exemples func_get_args() avant et après PHP 5.3

test.php
<?php
function foo() {
    include './fga.inc';
}

foo('Argument 1', 'Argument 2');
?>

fga.inc
<?php

$args = func_get_args();
var_export($args);

?>

Sortie avant PHP 5.3:

array (
  0 => 'Argument 1',
  1 => 'Argument 2',
)

Sortie depuis PHP 5.3

Warning: func_get_args():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fga.inc on line 3
false

Exemple #3 Exemple func_get_args() avec des arguments par référence et par valeur

<?php
function byVal($arg) {
    echo 'Tel que passé     : ', var_export(func_get_args()), PHP_EOL;
    $arg = 'baz';
    echo 'Après changement  : ', var_export(func_get_args()), PHP_EOL;
}

function byRef(&$arg) {
    echo 'Tel que passé     : ', var_export(func_get_args()), PHP_EOL;
    $arg = 'baz';
    echo 'Après changement  : ', var_export(func_get_args()), PHP_EOL;
}

$arg = 'bar';
byVal($arg);
byRef($arg);
?>

L'exemple ci-dessus va afficher :

Tel que passé : array (
0 => 'bar',
)
Après changement : array (
0 => 'bar',
)
Tel que passé : array (
0 => 'bar',
)
Après changement : array (
0 => 'baz',
)

Notes

Note:

Parce que cette fonction dépend de la portée courante pour déterminer les détails des paramètres, ils ne peuvent être utilisés en tant que paramètre d'une fonction dans les versions antérieures à 5.3.0. Si vous devez passer cette valeur, assignez les résultats à une variable et utilisez-la.

Note:

Si les arguments sont passés par référence, toutes leurs modifications seront reflétées dans les valeurs retournées par cette fonction. Depuis PHP 7, les valeurs courantes seront aussi retournées si les arguments sont passés par leur valeur.

Note: Cette fonction retourne uniquement une copie des arguments passés, et ne compte ne traite pas les arguments par défaut (non passés).

Voir aussi

  • La syntaxe ... en PHP 5.6+
  • func_get_arg()
  • func_num_args()
  • ReflectionFunctionAbstract::getParameters()


Retourne le nombre d'arguments passés à la fonction

  • « func_get_args
  • function_exists »
  • PHP Manual
  • Fonctions sur la gestion des fonctions
  • Retourne le nombre d'arguments passés à la fonction

func_num_args

(PHP 4, PHP 5, PHP 7)

func_num_args — Retourne le nombre d'arguments passés à la fonction

Description

int func_num_args ( void )

Récupère le nombre d'arguments passés à la fonction.

func_get_arg() peut être utilisé
conjointement à func_num_args() et
func_get_args() pour permettre aux fonctions
utilisateurs d'accepter un nombre variable d'arguments.

Valeurs de retour

Retourne le nombre d'arguments passés à la fonction utilisateur courante. function.

Historique

Version | Description
5.3.0 | Cette fonction peut maintenant être utilisée dans des listes de paramètres.
5.3.0 | Si cette fonction est appelée dans un fichier inclus avec include ou require logé dans une fonction, elle génèrera une alerte et retournera -1.

Erreurs / Exceptions

Génère une alerte si elle est appelée hors d'une fonction utilisateur.

Exemples

Exemple #1 Exemple avec func_num_args()

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Nombre d'arguments : $numargs\n";
}

foo(1, 2, 3);    // affiche ''
?>

L'exemple ci-dessus va afficher :

Nombre d'arguments: 3

Exemple #2 Exemples func_num_args() avant et après PHP 5.3

test.php
 <?php
 function foo() {
     include './fna.inc';
 }

 foo('Argument 1', 'Argument 2');
 ?>

 fna.php
 <?php

 $num_args = func_num_args();
 var_export($num_args);

 ?>

Sortie avant PHP 5.3:

 2

L'affichage depuis PHP 5.3 ressemble à quelque chose comme :

 Warning: func_num_args():  Called from the global scope - no function
 context in /home/torben/Desktop/code/ml/fna.inc on line 3
 -1

Notes

Note:

Parce que cette fonction dépend de la portée courante pour déterminer les détails des paramètres, ils ne peuvent être utilisés en tant que paramètre d'une fonction dans les versions antérieures à 5.3.0. Si vous devez passer cette valeur, assignez les résultats à une variable et utilisez-la.

Voir aussi

  • La syntaxe ... en PHP 5.6+
  • func_get_arg()
  • func_get_args()
  • ReflectionFunctionAbstract::getNumberOfParameters()


Indique si une fonction est définie

  • « func_num_args
  • get_defined_functions »
  • PHP Manual
  • Fonctions sur la gestion des fonctions
  • Indique si une fonction est définie

function_exists

(PHP 4, PHP 5, PHP 7)

function_exists — Indique si une fonction est définie

Description

bool function_exists ( string $function_name )

Vérifie la liste des fonctions définies par l'utilisateur ainsi que celles internes à php afin d'y trouver function_name.

Liste de paramètres

function_name

Le nom de la fonction, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne TRUE si la fonction function_name existe et est une fonction, FALSE sinon.

Note:

Notez également que function_exists() retournera FALSE pour les instructions comme include_once et echo.

Exemples

Exemple #1 Exemple avec function_exists()

<?php
if (function_exists('imap_open')) {
    echo "Les fonctions IMAP sont disponibles.<br />\n";
} else {
    echo "Les fonctions IMAP ne sont pas disponibles.<br />\n";
}
?>

Notes

Note:

Un nom de fonction peut exister même si la fonction elle-même n'est pas utilisable à cause d'une configuration ou d'une option de compilation (avec les fonctions image par exemple).

Voir aussi

  • method_exists() - Vérifie si la méthode existe pour une classe
  • is_callable() - Détermine si l'argument peut être appelé comme fonction
  • get_defined_functions() - Liste toutes les fonctions définies
  • class_exists() - Vérifie si une classe a été définie
  • extension_loaded() - Détermine si une extension est chargée ou non


Liste toutes les fonctions définies

  • « function_exists
  • register_shutdown_function »
  • PHP Manual
  • Fonctions sur la gestion des fonctions
  • Liste toutes les fonctions définies

get_defined_functions

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

get_defined_functions — Liste toutes les fonctions définies

Description

array get_defined_functions ( void )

Liste toutes les fonctions définies.

Valeurs de retour

Retourne un tableau multidimensionnel, contenant la liste de toutes les fonctions définies, aussi bien les fonctions internes à PHP que celle déjà définie par l'utilisateur. Les noms des fonctions internes sont accessibles via $arr["internal"], et les fonctions utilisateur sont accessibles via $arr["user"].

Exemples

Exemple #1 Exemple avec get_defined_functions()

<?php
function myrow($id, $data)
{
    return "<tr><th>$id</th><td>$data</td></tr>\n";
}

$arr = get_defined_functions();

print_r($arr);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [internal] => Array
        (
            [0] => zend_version
            [1] => func_num_args
            [2] => func_get_arg
            [3] => func_get_args
            [4] => strlen
            [5] => strcmp
            [6] => strncmp
            ...
            [750] => bcscale
            [751] => bccomp
        )

    [user] => Array
        (
            [0] => myrow
        )

)

Voir aussi

  • function_exists() - Indique si une fonction est définie
  • get_defined_vars() - Liste toutes les variables définies
  • get_defined_constants() - Retourne la liste des constantes et leurs valeurs
  • get_declared_classes() - Liste toutes les classes définies dans PHP


Enregistre une fonction de rappel pour exécution à l'extinction

  • « get_defined_functions
  • register_tick_function »
  • PHP Manual
  • Fonctions sur la gestion des fonctions
  • Enregistre une fonction de rappel pour exécution à l'extinction

register_shutdown_function

(PHP 4, PHP 5, PHP 7)

register_shutdown_function — Enregistre une fonction de rappel pour exécution à l'extinction

Description

void register_shutdown_function ( callable $callback [, mixed $parameter [, mixed $... ]] )

Enregistre une fonction de rappel callback pour exécution à l'extinction ou lorsque exit() est appelé.

Plusieurs appels à register_shutdown_function() sont possibles dans le même script, et les fonctions seront appelées dans le même ordre que celui dans lequel elles sont enregistrées. Si vous appelez exit() durant l'une des fonctions d'extinction, le processus sera définitivement arrêté, sans que les autres fonctions soient appelées.

Liste de paramètres

callback

La fonction de rappel à enregistrer.

La fonction de rappel est exécuté comme faisant parti de la requête, aussi, il est possible d'envoyer quelque à la sortie depuis cette dernière, puis d'accéder aux buffers de sortie.

parameter

Il est possible de passer des paramètres aux fonctions d'extinction en configurant ces paramètres supplémentaires.

...

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Si la fonction de rappel ne peut être appelée pour diverses raisons, une alerte de niveau E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec register_shutdown_function()

<?php
function shutdown()
{
    // Voici notre fonction shutdown
    // dans laquelle nous pouvons faire
    // toutes les dernières opérations
    // avant la fin du script.

    echo 'Script exécuté avec succès', PHP_EOL;
}

register_shutdown_function('shutdown');
?>

Notes

Note:

Le dossier de travail du script peut changer dans la fonction d'extinction sous quelques serveurs web, e.g. Apache.

Note:

Les fonctions d'extinction ne seront pas exécutées si le processus est tué avec un signal SIGTERM ou SIGKILL. Bien que vous ne pouvez pas intercepter un SIGKILL, vous pouvez utiliser la fonction pcntl_signal() pour installer un gestionnaire pour un SIGTERM qui utilisera la fonction exit() pour mettre fin proprement.

Voir aussi

  • auto_append_file
  • exit() - Affiche un message et termine le script courant
  • La section sur la gestion des connexions


Enregistre une fonction exécutée à chaque tick

  • « register_shutdown_function
  • unregister_tick_function »
  • PHP Manual
  • Fonctions sur la gestion des fonctions
  • Enregistre une fonction exécutée à chaque tick

register_tick_function

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

register_tick_function — Enregistre une fonction exécutée à chaque tick

Description

bool register_tick_function ( callable $function [, mixed $arg [, mixed $... ]] )

register_tick_function() enregistre la fonction function pour être exécutée à chaque fois qu'un tick survient.

Liste de paramètres

function

Le nom de la fonction, sous la forme d'une chaîne de caractères ou d'un tableau d'objets et de méthodes.

arg

...

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec register_tick_function()

<?php
declare(ticks=1);

// Utilisation d'une fonction de callback
register_tick_function('my_function', true);

// Utilisation d'une méthode d'objet
$object = new my_class();
register_tick_function(array(&$object, 'my_method'), true);
?>

Historique

Version | Description
5.3.0 | Les ticks sont maintenant supportés sur les serveurs Web threadés.

Notes

Avertissement

register_tick_function() ne doit pas être utilisé avec les serveurs web threadé, en PHP 5.2 et plus anciens.

Voir aussi

  • declare
  • unregister_tick_function() - Annule la fonction exécutée à chaque tick


Annule la fonction exécutée à chaque tick

  • « register_tick_function
  • Quickhash »
  • PHP Manual
  • Fonctions sur la gestion des fonctions
  • Annule la fonction exécutée à chaque tick

unregister_tick_function

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

unregister_tick_function — Annule la fonction exécutée à chaque tick

Description

void unregister_tick_function ( string $function_name )

Annule l'exécution automatique de function_name à chaque tick.

Liste de paramètres

function_name

Le nom de la fonction, sous la forme d'une chaîne de caractères.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • register_tick_function() - Enregistre une fonction exécutée à chaque tick


Quickhash

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
  • Constantes pré-définies
  • Exemples
  • QuickHashIntSet — La classe QuickHashIntSet
    • QuickHashIntSet::add — Ajoute une nouvelle entrée à l'ensemble
    • QuickHashIntSet::__construct — Créer un nouvel objet QuickHashIntSet
    • QuickHashIntSet::delete — Supprime une entrée de l'ensemble
    • QuickHashIntSet::exists — Vérifie qu'une clé existe dans l'ensemble
    • QuickHashIntSet::getSize — Retourne le nombre d'éléments dans l'ensemble
    • QuickHashIntSet::loadFromFile — Créer un ensemble depuis un fichier
    • QuickHashIntSet::loadFromString — Créer un nouvel ensemble depuis une chaine
    • QuickHashIntSet::saveToFile — Stocke un ensemble sur le disque
    • QuickHashIntSet::saveToString — Retourne une version sérialisée de l'ensemble
  • QuickHashIntHash — La classe QuickHashIntHash
    • QuickHashIntHash::add — Ajoute une nouvelle entrée au hash
    • QuickHashIntHash::__construct — Créer un nouvel objet QuickHashIntHash
    • QuickHashIntHash::delete — Supprime une entrée du hash
    • QuickHashIntHash::exists — Vérifie qu'une clé existe dans le hash
    • QuickHashIntHash::get — Récupère la valeur correspondant à une clé dans le hash
    • QuickHashIntHash::getSize — Retourne le nombre d'éléments dans le hash
    • QuickHashIntHash::loadFromFile — Créer un hash depuis un fichier
    • QuickHashIntHash::loadFromString — Créer un hash depuis une chaine
    • QuickHashIntHash::saveToFile — Stocke un hash sur le disque
    • QuickHashIntHash::saveToString — Retourne une version sérialisée du hash
    • QuickHashIntHash::set — Met à jour une entrée dans le hash ou l'ajoute si elle n'existait pas
    • QuickHashIntHash::update — Met à jour une entrée dans le hash
  • QuickHashStringIntHash — The QuickHashStringIntHash class
    • QuickHashStringIntHash::add — Ajoute une nouvelle entrée dans la table de hachage
    • QuickHashStringIntHash::__construct — Crée un nouvel objet QuickHashStringIntHash
    • QuickHashStringIntHash::delete — Supprime une entrée de la table de hachage
    • QuickHashStringIntHash::exists — Vérifie si une clé fait partie de la table de hachage
    • QuickHashStringIntHash::get — Récupère une valeur depuis la table de hachage par sa clé
    • QuickHashStringIntHash::getSize — Retourne le nombre d'éléments dans la table de hachage
    • QuickHashStringIntHash::loadFromFile — Crée une table de hachage depuis un fichier
    • QuickHashStringIntHash::loadFromString — Crée une table de hachage depuis une chaîne
    • QuickHashStringIntHash::saveToFile — Sauvegarde une table de hachage en mémoire sur le disque
    • QuickHashStringIntHash::saveToString — Retourne une version linéarisée de la table de hachage
    • QuickHashStringIntHash::set — Met à jour une entrée de la table de hachage avec une nouvelle valeur ou l'ajout si elle n'existe pas
    • QuickHashStringIntHash::update — Mets à jour une entrée de la table de hachage avec une nouvelle valeur
  • QuickHashIntStringHash — The QuickHashIntStringHash class
    • QuickHashIntStringHash::add — Cette méthode ajoute une nouvelle entrée à la table de hachage
    • QuickHashIntStringHash::__construct — Crée un nouvel objet QuickHashIntStringHash
    • QuickHashIntStringHash::delete — Supprime une entrée de la table de hachage
    • QuickHashIntStringHash::exists — Vérifie si une clé existe dans la table de hachage
    • QuickHashIntStringHash::get — Récupère une valeur depuis la table de hachage par sa clé
    • QuickHashIntStringHash::getSize — Retourne le nombre d'éléments de la table de hachage
    • QuickHashIntStringHash::loadFromFile — Crée une table de hachage depuis un fichier
    • QuickHashIntStringHash::loadFromString — Crée une table de hachage depuis une chaîne
    • QuickHashIntStringHash::saveToFile — Stocke une table de hachage en mémoire sur le disque
    • QuickHashIntStringHash::saveToString — Retourne une version linéarisée de la table de hachage
    • QuickHashIntStringHash::set — Met à jour une entrée depuis la table de hachage avec une nouvelle valeur, ou l'ajoute si l'entrée n'existe pas
    • QuickHashIntStringHash::update — Met à jour une entrée de la table de hachage avec une nouvelle valeur


Introduction

L'extension quickhash contient un ensemble de classes à types gérant des implémentations spécifiques des hash et des ensembles.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Cette extension ne requière aucune bibliothèque additionnelle.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/quickhash


  • « Configuration à l'exécution
  • Exemples »
  • PHP Manual
  • Quickhash
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Exemples

Exemple #1 Exemple avec Quickhash

<?php
$set = new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES );
$set->add( 1 );
$set->add( 3 );

var_dump( $set->exists( 3 ) );
var_dump( $set->exists( 4 ) );

$set->saveToFile( "/tmp/test-set.set" );

$newSet = QuickHashIntSet::loadFromFile(
    "/tmp/test-set.set"
);

var_dump( $newSet->exists( 3 ) );
var_dump( $newSet->exists( 4 ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)
bool(true)
bool(false)

Exemple #2 Exemple avec Quickhash utilisant ArrayAccess

<?php
$hash = new QuickHashIntHash( 64 );

// Ajout et mise à jour des entrées.
$hash[3] = 145926;
$hash[3] = 1415926;
$hash[2] = 72;

// Vérification si la clé existe
var_dump( isset( $hash[3] ) );

// Suppression d'entées
unset( $hash[2] );

// Récupération des valeurs stockées pour un hash
echo $hash[3], "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
1415926

Exemple #3 Exemple avec Quickhash utilisant Iterator

<?php
$hash = new QuickHashIntHash( 64 );

// Ajout d'entrées
$hash[1] = 145926;
$hash[2] = 1415926;
$hash[3] = 72;
$hash[4] = 712314;
$hash[5] = -4234;

foreach( $hash as $key => $value )
{
    echo $key, ' => ', $value, "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

5 => -4234
4 => 712314
1 => 145926
2 => 1415926
3 => 72

Exemple #4 Example avec Quickhash et des valeurs chaines de caractères

<?php
$hash = new QuickHashIntStringHash( 64 );

// Ajout d'entrées
$hash[1] = "one million four hundred fifteen thousand nine hundred twenty six";
$hash->add( 2, "one more" );

foreach( $hash as $key => $value )
{
    echo $key, ' => ', $value, "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1 => one million four hundred fifteen thousand nine hundred twenty six
2 => one more


La classe QuickHashIntSet

(PECL quickhash >= Unknown)

Introduction

Cette classe est un conteneur pour un ensemble contenant des nombres entiers.

Les ensembles peuvent aussi être parcourus via l'interface Iterator. L'ordre dans lequel les éléments ressortent n'est pas garanti.

Synopsis de la classe

QuickHashIntSet {
/* Constantes */
const integer CHECK_FOR_DUPES = 1 ;
const integer DO_NOT_USE_ZEND_ALLOC = 2 ;
const integer HASHER_NO_HASH = 256 ;
const integer HASHER_JENKINS1 = 512 ;
const integer HASHER_JENKINS2 = 1024 ;
/* Méthodes */
public bool add ( int $key )
public __construct ( int $size [, int $options ] )
public bool delete ( int $key )
public bool exists ( int $key )
publicint getSize ( void )
public static QuickHashIntSet loadFromFile ( string $filename [, int $size [, int $options ]] )
public static QuickHashIntSet loadFromString ( string $contents [, int $size [, int $options ]] )
public void saveToFile ( string $filename )
public string saveToString ( void )
}

Constantes pré-définies

QuickHashIntSet::CHECK_FOR_DUPES

Si activé, l'ajout d'éléments déja existants dans l'ensemble (via add() ou loadFromFile()) fera que ces éléments seront supprimés de l'ensemble. Ceci prendra du temps, utilisez uniquement lorsque nécessaire.

QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC

Désactive l'utilisation du gestionnaire de mémoire interne à PHP. Si cette option est activée, les allocations internes ne compteront pas dans le paramètre memory_limit.

QuickHashIntSet::HASHER_NO_HASH

Utilise un modulo et non pas une fonction de hashage pour trouver un élément dans l'index. Ce n'est pas plus rapide que le hashage classique, et le risque de collision est plus élevé.

QuickHashIntSet::HASHER_JENKINS1

Fonction de hashage par défaut qui transforme les hash entiers en éléments indexés en liste.

QuickHashIntSet::HASHER_JENKINS2

Sélectionne un algorithme de hashage différent.

Sommaire

  • QuickHashIntSet::add — Ajoute une nouvelle entrée à l'ensemble
  • QuickHashIntSet::__construct — Créer un nouvel objet QuickHashIntSet
  • QuickHashIntSet::delete — Supprime une entrée de l'ensemble
  • QuickHashIntSet::exists — Vérifie qu'une clé existe dans l'ensemble
  • QuickHashIntSet::getSize — Retourne le nombre d'éléments dans l'ensemble
  • QuickHashIntSet::loadFromFile — Créer un ensemble depuis un fichier
  • QuickHashIntSet::loadFromString — Créer un nouvel ensemble depuis une chaine
  • QuickHashIntSet::saveToFile — Stocke un ensemble sur le disque
  • QuickHashIntSet::saveToString — Retourne une version sérialisée de l'ensemble


Ajoute une nouvelle entrée à l'ensemble

  • « QuickHashIntSet
  • QuickHashIntSet::__construct »
  • PHP Manual
  • QuickHashIntSet
  • Ajoute une nouvelle entrée à l'ensemble

QuickHashIntSet::add

(PECL quickhash >= Unknown)

QuickHashIntSet::add — Ajoute une nouvelle entrée à l'ensemble

Description

public bool QuickHashIntSet::add ( int $key )

Ajoute une nouvelle entrée à l'ensemble et retourne des informations sur l'ajout. Les entrées sont toutes ajoutées à la suite par défaut, sauf si QuickHashIntHash::CHECK_FOR_DUPES a été utilisé lors de la création de l'ensemble.

Liste de paramètres

key

La clé de l'entrée à ajouter.

Valeurs de retour

TRUE si l'entrée a été ajoutée, FALSE sinon.

Exemples

Exemple #1 Exemple QuickHashIntSet::add()

<?php
echo "Sans vérification de duplication\n";
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

echo "\navec vérification de duplication\n";
$set = new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Sans vérification de duplication
bool(false)
bool(true)
bool(true)
bool(true)

avec vérification de duplication
bool(false)
bool(true)
bool(true)
bool(false)


Créer un nouvel objet QuickHashIntSet

  • « QuickHashIntSet::add
  • QuickHashIntSet::delete »
  • PHP Manual
  • QuickHashIntSet
  • Créer un nouvel objet QuickHashIntSet

QuickHashIntSet::__construct

(PECL quickhash >= Unknown)

QuickHashIntSet::__construct — Créer un nouvel objet QuickHashIntSet

Description

public QuickHashIntSet::__construct ( int $size [, int $options ] )

La taille est le nombre de listes d'élements à créer. Plus il y a de listes, moins il y a de risques de collisions.

Liste de paramètres

size

Le nombre de listes à configurer. Le nombre sera arrondi à la puissance de deux supérieure. Les limites sont de 64 à 4194304.

options

Les options disponibles sont: QuickHashIntSet::CHECK_FOR_DUPES, qui vérifie qu'aucun doublon n'est ajouté dans le hash; QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC qui désactive le gestionnaire de mémoire interne de PHP et une des options QuickHashIntSet::HASHER_NO_HASH, QuickHashIntSet::HASHER_JENKINS1 ou QuickHashIntSet::HASHER_JENKINS2. Ces trois dernières configurent l'algorithme à utiliser. Les options peuvent être combinées avec des masques.

Valeurs de retour

Retourne un nouvel objet QuickHashIntSet.

Exemples

Exemple #1 Exemple QuickHashIntSet::__construct()

<?php
var_dump( new QuickHashIntSet( 1024 ) );
var_dump( new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES ) );
var_dump(
    new QuickHashIntSet(
        1024,
        QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC | QuickHashIntSet::HASHER_JENKINS2
    )
);
?>


Supprime une entrée de l'ensemble

  • « QuickHashIntSet::__construct
  • QuickHashIntSet::exists »
  • PHP Manual
  • QuickHashIntSet
  • Supprime une entrée de l'ensemble

QuickHashIntSet::delete

(PECL quickhash >= Unknown)

QuickHashIntSet::delete — Supprime une entrée de l'ensemble

Description

public bool QuickHashIntSet::delete ( int $key )

Supprime une entrée de l'ensemble et retourne des informations concernant la suppression. Les structures mémoires associées ne vont pas être libérées immédiatement, mais quand l'ensemble lui-même sera libéré.

Liste de paramètres

key

La clé de l'entrée à supprimer.

Valeurs de retour

TRUE si l'entrée a été supprimée, FALSE sinon.

Exemples

Exemple #1 Exemple QuickHashIntSet::delete()

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->delete( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->delete( 4 ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


Vérifie qu'une clé existe dans l'ensemble

  • « QuickHashIntSet::delete
  • QuickHashIntSet::getSize »
  • PHP Manual
  • QuickHashIntSet
  • Vérifie qu'une clé existe dans l'ensemble

QuickHashIntSet::exists

(PECL quickhash >= Unknown)

QuickHashIntSet::exists — Vérifie qu'une clé existe dans l'ensemble

Description

public bool QuickHashIntSet::exists ( int $key )

Vérifie qu'une clé existe dans l'ensemble.

Liste de paramètres

key

La clé de l'entrée à vérifier.

Valeurs de retour

Retourne TRUE si l'entrée est trouvée, FALSE sinon.

Exemples

Exemple #1 Exemple QuickHashIntSet::exists()

<?php
//génère 200000 elements
$array = range( 0, 199999 );
$existingEntries = array_rand( array_flip( $array ), 180000 );
$testForEntries = array_rand( array_flip( $array ), 1000 );
$foundCount = 0;

echo "Creating set: ", microtime( true ), "\n";
$set = new QuickHashIntSet( 100000 );
echo "Adding elements: ", microtime( true ), "\n";
foreach( $existingEntries as $key )
{
     $set->add( $key );
}

echo "Doing 1000 tests: ", microtime( true ), "\n";
foreach( $testForEntries as $key )
{
     $foundCount += $set->exists( $key );
}
echo "Done, $foundCount found: ", microtime( true ), "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Creating set: 1263588703.0748
Adding elements: 1263588703.0757
Doing 1000 tests: 1263588703.7851
Done, 898 found: 1263588703.7897


Retourne le nombre d'éléments dans l'ensemble

  • « QuickHashIntSet::exists
  • QuickHashIntSet::loadFromFile »
  • PHP Manual
  • QuickHashIntSet
  • Retourne le nombre d'éléments dans l'ensemble

QuickHashIntSet::getSize

(PECL quickhash >= Unknown)

QuickHashIntSet::getSize — Retourne le nombre d'éléments dans l'ensemble

Description

publicint QuickHashIntSet::getSize ( void )

Retourne le nombre d'éléments dans l'ensemble

Liste de paramètres

key

La clé de l'entrée à ajouter.

Valeurs de retour

Le nombre d'éléments dans l'ensemble.

Exemples

Exemple #1 Exemple QuickHashIntSet::getSize()

<?php
$set = new QuickHashIntSet( 8 );
var_dump( $set->add( 2 ) );
var_dump( $set->add( 3 ) );
var_dump( $set->getSize() );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
int(2)


Créer un ensemble depuis un fichier

  • « QuickHashIntSet::getSize
  • QuickHashIntSet::loadFromString »
  • PHP Manual
  • QuickHashIntSet
  • Créer un ensemble depuis un fichier

QuickHashIntSet::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromFile — Créer un ensemble depuis un fichier

Description

public static QuickHashIntSet QuickHashIntSet::loadFromFile ( string $filename [, int $size [, int $options ]] )

Cette méthode de fabrique crée un nouveau hash depuis un fichier. Chaque élément correspond à deux entiers signés, le premier est la clé, le second la valeur.

Liste de paramètres

filename

Le fichier depuis lequel lire l'ensemble.

size

Le nombre de paquets à configurer. Le nombre passé ici sera automatiquement arrondi à la puissance de deux supérieure. Il est également automatiquement limité à l'intervalle 4 à 4194304.

options

Les mêmes options que le constructeur de la classe accepte, sauf l'option de taille, qui sera ignorée. La taille est calculée automatiquement pour correspondre au nombre d'entrées dans le hash, arrondie à la puissance de deux supérieure (limite maximale de 4194304).

Valeurs de retour

Retourne un nouveau QuickHashIntSet.

Exemples

Exemple #1 Exemple QuickHashIntSet::loadFromFile()

<?php
$file = dirname( __FILE__ ) . "/simple.set";
$set = QuickHashIntSet::loadFromFile(
    $file,
    QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $set->exists( $key ) ? 'set' : 'unset'
    );
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


Créer un nouvel ensemble depuis une chaine

  • « QuickHashIntSet::loadFromFile
  • QuickHashIntSet::saveToFile »
  • PHP Manual
  • QuickHashIntSet
  • Créer un nouvel ensemble depuis une chaine

QuickHashIntSet::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromString — Créer un nouvel ensemble depuis une chaine

Description

public static QuickHashIntSet QuickHashIntSet::loadFromString ( string $contents [, int $size [, int $options ]] )

Cette méthode de fabrique crée un nouvel ensemble hash depuis une chaine de caractères. Le format correspond à des entiers signés sur 32bits empaquetés selon le boutisme de la machine courante. Chaque élément correspond à deux entiers signés, le premier est la clé, le second la valeur.

Liste de paramètres

contents

La chaine sérialisée de l'ensemble.

size

Le nombre de paquets à configurer. Le nombre passé ici sera automatiquement arrondi à la puissance de deux supérieure. Il sera également automatiquemement limité à l'intervalle 4 à 4194304.

options

Les mêmes options que le constructeur de la classe accepte, sauf l'option de taille, qui sera ignorée. La taille est calculée automatiquement pour correspondre au nombre d'entrées dans le hash, arrondie à la puissance de deux supérieure (limite maximale de 4194304).

Valeurs de retour

Retourne un nouveau QuickHashIntSet.

Exemples

Exemple #1 Exemple QuickHashIntSet::loadFromString()

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.set" );
$set = QuickHashIntSet::loadFromString(
    $contents,
    QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $set->exists( $key ) ? 'set' : 'unset'
    );
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


Stocke un ensemble sur le disque

  • « QuickHashIntSet::loadFromString
  • QuickHashIntSet::saveToString »
  • PHP Manual
  • QuickHashIntSet
  • Stocke un ensemble sur le disque

QuickHashIntSet::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToFile — Stocke un ensemble sur le disque

Description

public void QuickHashIntSet::saveToFile ( string $filename )

Stocke sur le disque une version sérialisée de l'ensemble dans un format lisible par loadFromFile().

Liste de paramètres

filename

Le fichier dans lequel stocker le hash.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple QuickHashIntSet::saveToFile()

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

$set->saveToFile( '/tmp/test.set' );
?>


Retourne une version sérialisée de l'ensemble

  • « QuickHashIntSet::saveToFile
  • QuickHashIntHash »
  • PHP Manual
  • QuickHashIntSet
  • Retourne une version sérialisée de l'ensemble

QuickHashIntSet::saveToString

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToString — Retourne une version sérialisée de l'ensemble

Description

public string QuickHashIntSet::saveToString ( void )

Retourne une version sérialisée de l'ensemble dans un format lisible par loadFromString().

Valeurs de retour

Retourne une version sérialisée de l'ensemble. Chaque élément est stocké sur quatre octets dont le boutsime est celui du système courant.

Exemples

Exemple #1 Exemple QuickHashIntSet::saveToString()

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

var_dump( $set->saveToString() );
?>


La classe QuickHashIntHash

(PECL quickhash >= Unknown)

Introduction

Cette classe est un conteneur pour un hash contenant des nombres entiers, alors que les valeurs sont elles aussi des entiers. Les hash sont aussi disponibles au travers de l'interface ArrayAccess.

Les hash peuvent aussi être parcourus via l'interface Iterator. L'ordre dans lequel les éléments ressortent n'est pas garanti.

Synopsis de la classe

QuickHashIntHash {
/* Constantes */
const integer CHECK_FOR_DUPES = 1 ;
const integer DO_NOT_USE_ZEND_ALLOC = 2 ;
const integer HASHER_NO_HASH = 256 ;
const integer HASHER_JENKINS1 = 512 ;
const integer HASHER_JENKINS2 = 1024 ;
/* Méthodes */
public bool add ( int $key [, int $value ] )
public __construct ( int $size [, int $options ] )
public bool delete ( int $key )
public bool exists ( int $key )
public int get ( int $key )
public int getSize ( void )
public static QuickHashIntHash loadFromFile ( string $filename [, int $options ] )
public static QuickHashIntHash loadFromString ( string $contents [, int $options ] )
public void saveToFile ( string $filename )
public string saveToString ( void )
public bool set ( int $key , int $value )
public bool update ( int $key , int $value )
}

Constantes pré-définies

QuickHashIntHash::CHECK_FOR_DUPES

Si activé, l'ajout d'éléments déja existants dans l'ensemble (via add() ou loadFromFile()) fera que ces éléments seront supprimés de l'ensemble. Ceci prendra du temps, utilisez uniquement lorsque nécessaire.

QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC

Désactive l'utilisation du gestionnaire de mémoire interne à PHP. Si cette option est activée, les allocations internes ne compteront pas dans le paramètre memory_limit.

QuickHashIntHash::HASHER_NO_HASH

Utilise un modulo et non pas une fonction de hashage pour trouver un élément dans l'index. Ce n'est pas plus rapide que le hashage classique, et le risque de collision est plus élevé.

QuickHashIntHash::HASHER_JENKINS1

Fonction de hashage par défaut qui transforme les hash entiers en éléments indexés en liste.

QuickHashIntHash::HASHER_JENKINS2

Sélectionne un algorithme de hashage différent.

Sommaire

  • QuickHashIntHash::add — Ajoute une nouvelle entrée au hash
  • QuickHashIntHash::__construct — Créer un nouvel objet QuickHashIntHash
  • QuickHashIntHash::delete — Supprime une entrée du hash
  • QuickHashIntHash::exists — Vérifie qu'une clé existe dans le hash
  • QuickHashIntHash::get — Récupère la valeur correspondant à une clé dans le hash
  • QuickHashIntHash::getSize — Retourne le nombre d'éléments dans le hash
  • QuickHashIntHash::loadFromFile — Créer un hash depuis un fichier
  • QuickHashIntHash::loadFromString — Créer un hash depuis une chaine
  • QuickHashIntHash::saveToFile — Stocke un hash sur le disque
  • QuickHashIntHash::saveToString — Retourne une version sérialisée du hash
  • QuickHashIntHash::set — Met à jour une entrée dans le hash ou l'ajoute si elle n'existait pas
  • QuickHashIntHash::update — Met à jour une entrée dans le hash


Ajoute une nouvelle entrée au hash

  • « QuickHashIntHash
  • QuickHashIntHash::__construct »
  • PHP Manual
  • QuickHashIntHash
  • Ajoute une nouvelle entrée au hash

QuickHashIntHash::add

(PECL quickhash >= Unknown)

QuickHashIntHash::add — Ajoute une nouvelle entrée au hash

Description

public bool QuickHashIntHash::add ( int $key [, int $value ] )

Ajoute une nouvelle entrée au hash et retourne des informations sur l'ajout. Les entrées sont toutes ajoutées à la suite par défaut, sauf si QuickHashIntHash::CHECK_FOR_DUPES a été utilisé lors de la création du hash.

Liste de paramètres

key

La clé de l'entrée à ajouter.

value

La valeur (optionnelle) pour l'entrée. Si aucune valeur n'est passée, 1 sera utilisé.

Valeurs de retour

TRUE si l'entrée a été ajoutée, FALSE sinon.

Exemples

Exemple #1 Exemple QuickHashIntHash::add()

<?php
echo "Sans vérification de duplication\n";
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 22 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 12 ) );

echo "\navec vérification de duplication\n";
$hash = new QuickHashIntHash( 1024, QuickHashIntHash::CHECK_FOR_DUPES );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 78 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 9 ) );

echo "\ndefault value\n";
var_dump( $hash->add( 5 ) );
var_dump( $hash->get( 5 ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Sans vérification de duplication
bool(false)
bool(false)
bool(true)
bool(true)
int(22)
bool(true)

aans vérification de duplication
bool(false)
bool(false)
bool(true)
bool(true)
int(78)
bool(false)

default value
bool(true)
int(1)


Créer un nouvel objet QuickHashIntHash

  • « QuickHashIntHash::add
  • QuickHashIntHash::delete »
  • PHP Manual
  • QuickHashIntHash
  • Créer un nouvel objet QuickHashIntHash

QuickHashIntHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntHash::__construct — Créer un nouvel objet QuickHashIntHash

Description

public QuickHashIntHash::__construct ( int $size [, int $options ] )

La taille est le nombre de listes d'élements à créer. Plus il y a de listes, moins il y a de risques de collisions.

Liste de paramètres

size

Le nombre de listes à configurer. Le nombre sera arrondi à la puissance de deux supérieure. Les limites sont de 64 à 4194304.

options

Les options disponibles sont: QuickHashIntHash::CHECK_FOR_DUPES, qui vérifie qu'aucun doublon n'est ajouté dans le hash; QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC qui désactive le gestionnaire de mémoire interne de PHP et une des options QuickHashIntHash::HASHER_NO_HASH, QuickHashIntHash::HASHER_JENKINS1 ou QuickHashIntHash::HASHER_JENKINS2. Ces trois dernières configurent l'algorithme à utiliser. Les options peuvent être combinées avec des masques.

Valeurs de retour

Retourne un nouvel objet QuickHashIntHash.

Exemples

Exemple #1 Exemple QuickHashIntHash::__construct()

<?php
var_dump( new QuickHashIntHash( 1024 ) );
var_dump( new QuickHashIntHash( 1024, QuickHashIntHash::CHECK_FOR_DUPES ) );
var_dump(
    new QuickHashIntHash(
        1024,
        QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC | QuickHashIntHash::HASHER_JENKINS2
    )
);
?>


Supprime une entrée du hash

  • « QuickHashIntHash::__construct
  • QuickHashIntHash::exists »
  • PHP Manual
  • QuickHashIntHash
  • Supprime une entrée du hash

QuickHashIntHash::delete

(PECL quickhash >= Unknown)

QuickHashIntHash::delete — Supprime une entrée du hash

Description

public bool QuickHashIntHash::delete ( int $key )

Supprime une entrée du hash et retourne des informations concernant la suppression. Les structures mémoires associées ne vont pas être libérées immédiatement, mais quand le hash lui-même sera libéré.

Les éléments ne peuvent être supprimés lorsque le hash est utilisé dans un itérateur. La méthode n'enverra pas une exception mais retournera simplement FALSE tout comme pour tout problème dû à la suppression.

Liste de paramètres

key

La clé de l'entrée à supprimer.

Valeurs de retour

TRUE si l'entrée a été supprimée, FALSE sinon.

Exemples

Exemple #1 Exemple QuickHashIntHash::delete()

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 5 ) );
var_dump( $hash->delete( 4 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->delete( 4 ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


Vérifie qu'une clé existe dans le hash

  • « QuickHashIntHash::delete
  • QuickHashIntHash::get »
  • PHP Manual
  • QuickHashIntHash
  • Vérifie qu'une clé existe dans le hash

QuickHashIntHash::exists

(PECL quickhash >= Unknown)

QuickHashIntHash::exists — Vérifie qu'une clé existe dans le hash

Description

public bool QuickHashIntHash::exists ( int $key )

Vérifie qu'une clé existe dans le hash.

Liste de paramètres

key

La clé de l'entrée à vérifier.

Valeurs de retour

Retourne TRUE si l'entrée est trouvée, FALSE sinon.

Exemples

Exemple #1 Exemple QuickHashIntHash::exists()

<?php
//genère 200000 éléments
$array = range( 0, 199999 );
$existingEntries = array_rand( array_flip( $array ), 180000 );
$testForEntries = array_rand( array_flip( $array ), 1000 );
$foundCount = 0;

echo "Creating hash: ", microtime( true ), "\n";
$hash = new QuickHashIntHash( 100000 );
echo "Adding elements: ", microtime( true ), "\n";
foreach( $existingEntries as $key )
{
     $hash->add( $key, 56 );
}

echo "Doing 1000 tests: ", microtime( true ), "\n";
foreach( $testForEntries as $key )
{
     $foundCount += $hash->exists( $key );
}
echo "Done, $foundCount found: ", microtime( true ), "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Creating hash: 1263588703.0748
Adding elements: 1263588703.0757
Doing 1000 tests: 1263588703.7851
Done, 898 found: 1263588703.7897


Récupère la valeur correspondant à une clé dans le hash

  • « QuickHashIntHash::exists
  • QuickHashIntHash::getSize »
  • PHP Manual
  • QuickHashIntHash
  • Récupère la valeur correspondant à une clé dans le hash

QuickHashIntHash::get

(PECL quickhash >= Unknown)

QuickHashIntHash::get — Récupère la valeur correspondant à une clé dans le hash

Description

public int QuickHashIntHash::get ( int $key )

Récupère la valeur correspondant à une clé dans le hash

Liste de paramètres

key

La clé pour l'entrée à récupérer.

Valeurs de retour

La valeur si la clé existe, NULL sinon.

Exemples

Exemple #1 Exemple QuickHashIntHash::get()

<?php
$hash = new QuickHashIntHash( 8 );
var_dump( $hash->get( 1 ) );

var_dump( $hash->add( 2 ) );
var_dump( $hash->get( 2 ) );

var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->get( 3 ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)
int(1)
bool(true)
int(5)


Retourne le nombre d'éléments dans le hash

  • « QuickHashIntHash::get
  • QuickHashIntHash::loadFromFile »
  • PHP Manual
  • QuickHashIntHash
  • Retourne le nombre d'éléments dans le hash

QuickHashIntHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntHash::getSize — Retourne le nombre d'éléments dans le hash

Description

public int QuickHashIntHash::getSize ( void )

Retourne le nombre d'éléments dans le hash.

Liste de paramètres

key

La clé de l'entrée à ajouter.

Valeurs de retour

Le nombre d'éléments dans le hash

Exemples

Exemple #1 Exemple QuickHashIntHash::getSize()

<?php
$hash = new QuickHashIntHash( 8 );
var_dump( $hash->add( 2 ) );
var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->getSize() );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
int(2)


Créer un hash depuis un fichier

  • « QuickHashIntHash::getSize
  • QuickHashIntHash::loadFromString »
  • PHP Manual
  • QuickHashIntHash
  • Créer un hash depuis un fichier

QuickHashIntHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromFile — Créer un hash depuis un fichier

Description

public static QuickHashIntHash QuickHashIntHash::loadFromFile ( string $filename [, int $options ] )

Cette méthode de fabrique crée un nouveau hash depuis un fichier. Le format du fichier contient une signature,'QH\0x11\0' le nombre d'éléments sur un entier signé 32bits suivi d'entiers signés 32bits dans le boutisme de la machine courante. Chaque élément correspond à deux entiers signés, le premier est la clé, le second la valeur. Voici un exemple :

Exemple #1 Format du fichier QuickHash IntHash

00000000  51 48 11 00 02 00 00 00  01 00 00 00 01 00 00 00  |QH..............|
00000010  03 00 00 00 09 00 00 00                           |........|
00000018

Exemple #2 Format du fichier QuickHash IntHash

header signature ('QH'; key type: 1; value type: 1; filler: \0x00)
00000000  51 48 11 00

number of elements:
00000004  02 00 00 00

data string:
00000000  01 00 00 00 01 00 00 00  03 00 00 00 09 00 00 00

key/value 1 (key = 1, value = 1)
01 00 00 00  01 00 00 00

key/value 2 (key = 3, value = 9)
03 00 00 00  09 00 00 00

Liste de paramètres

filename

Le fichier depuis lequel lire le hash.

options

Les mêmes options que le constructeur de la classe accepte, sauf l'option de taille, qui sera ignorée. La taille est calculée automatiquement pour correspondre au nombre d'entrées dans le hash, arrondie à la puissance de deux supérieure (limite maximale de 4194304).

Valeurs de retour

Retourne un nouveau QuickHashIntHash.

Exemples

Exemple #3 Exemple QuickHashIntHash::loadFromFile()

<?php
$file = dirname( __FILE__ ) . "/simple.hash";
$hash = QuickHashIntHash::loadFromFile(
    $file,
    QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


Créer un hash depuis une chaine

  • « QuickHashIntHash::loadFromFile
  • QuickHashIntHash::saveToFile »
  • PHP Manual
  • QuickHashIntHash
  • Créer un hash depuis une chaine

QuickHashIntHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromString — Créer un hash depuis une chaine

Description

public static QuickHashIntHash QuickHashIntHash::loadFromString ( string $contents [, int $options ] )

Cette méthode de fabrique crée un nouveau hash depuis une chaine de caractères. Le format correspond à des entiers signés sur 32bits empaquetés selon le boutisme de la machine courante. Chaque élément correspond à deux entiers signés, le premier est la clé, le second la valeur.

Liste de paramètres

contents

La chaine sérialisée du hash.

options

Les mêmes options que le constructeur de la classe accepte, sauf l'option de taille, qui sera ignorée. La taille est calculée automatiquement pour correspondre au nombre d'entrées dans le hash, arrondie à la puissance de deux supérieure (limite maximale de 4194304).

Valeurs de retour

Retourne un nouveau QuickHashIntHash.

Exemples

Exemple #1 Exemple QuickHashIntHash::loadFromString()

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash" );
$hash = QuickHashIntHash::loadFromString(
    $contents,
    QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


Stocke un hash sur le disque

  • « QuickHashIntHash::loadFromString
  • QuickHashIntHash::saveToString »
  • PHP Manual
  • QuickHashIntHash
  • Stocke un hash sur le disque

QuickHashIntHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToFile — Stocke un hash sur le disque

Description

public void QuickHashIntHash::saveToFile ( string $filename )

Stocke sur le disque une version sérialisée du hash dans un format lisible par loadFromFile().

Liste de paramètres

filename

Le fichier dans lequel stocker le hash.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple QuickHashIntHash::saveToFile()

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 43 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 52 ) );

$hash->saveToFile( '/tmp/test.hash' );
?>


Retourne une version sérialisée du hash

  • « QuickHashIntHash::saveToFile
  • QuickHashIntHash::set »
  • PHP Manual
  • QuickHashIntHash
  • Retourne une version sérialisée du hash

QuickHashIntHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToString — Retourne une version sérialisée du hash

Description

public string QuickHashIntHash::saveToString ( void )

Retourne une version sérialisée du hash dans un format lisible par loadFromString().

Valeurs de retour

Retourne une version sérialisée du hash. Chaque élément est stocké sur quatre octets dont le boutsime est celui du système courant.

Exemples

Exemple #1 Exemple QuickHashIntHash::saveToString()

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 34 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 55 ) );

var_dump( $hash->saveToString() );
?>


Met à jour une entrée dans le hash ou l'ajoute si elle n'existait pas

  • « QuickHashIntHash::saveToString
  • QuickHashIntHash::update »
  • PHP Manual
  • QuickHashIntHash
  • Met à jour une entrée dans le hash ou l'ajoute si elle n'existait pas

QuickHashIntHash::set

(PECL quickhash >= Unknown)

QuickHashIntHash::set — Met à jour une entrée dans le hash ou l'ajoute si elle n'existait pas

Description

public bool QuickHashIntHash::set ( int $key , int $value )

Cette méthode met à jour une entrée ou l'ajoute si elle n'existait pas. Elle retourne des informations sur cette mise à jour. S'il y a des clés dupliquées, seul le premier élément trouvé sera mis à jour. Utilisez QuickHashIntHash::CHECK_FOR_DUPES lors de la création du hash pour éviter les clés dupliquées.

Liste de paramètres

key

La clé de l'entrée à mettre à jour.

value

La nouvelle valeur.

Valeurs de retour

2 si l'entrée est trouvée et mise à jour, 1 si l'entrée a été ajoutée ou 0 s'il y a eu une erreur.

Exemples

Exemple #1 Exemple QuickHashIntHash::set()

<?php
$hash = new QuickHashIntHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( 46692 ) );
var_dump( $hash->set( 46692, 16091 ) );
var_dump( $hash->get( 46692 ) );

echo "Set->Update\n";
var_dump( $hash->set( 46692, 29906 ) );
var_dump( $hash->get( 46692 ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
int(2)
int(16091)
Set->Update
int(1)
int(29906)


Met à jour une entrée dans le hash

  • « QuickHashIntHash::set
  • QuickHashStringIntHash »
  • PHP Manual
  • QuickHashIntHash
  • Met à jour une entrée dans le hash

QuickHashIntHash::update

(PECL quickhash >= Unknown)

QuickHashIntHash::update — Met à jour une entrée dans le hash

Description

public bool QuickHashIntHash::update ( int $key , int $value )

Cette méthode met à jour une entrée et retourne des informations sur cette mise à jour. S'il y a des clés dupliquées, seul le premier élément trouvé sera mis à jour. Utilisez QuickHashIntHash::CHECK_FOR_DUPES lors de la création du hash pour éviter les clés dupliquées.

Liste de paramètres

key

La clé de l'entrée à mettre à jour.

value

La nouvelle valeur.

Valeurs de retour

TRUE si l'entrée est trouvée et mise à jour et FALSE si l'entrée n'a pas été trouvée.

Exemples

Exemple #1 Exemple QuickHashIntHash::update()

<?php
$hash = new QuickHashIntHash( 1024 );

var_dump( $hash->add( 141421, 173205 ) );
var_dump( $hash->update( 141421, 223606 ) );
var_dump( $hash->get( 141421 ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
int(223606)


The QuickHashStringIntHash class

(No version information available, might only be in Git)

Introduction

Cette classe est un conteneur pour un hash contenant des chaines, alors que les valeurs sont elles, des nombres entiers. Les hash sont aussi disponibles au travers de l'interface ArrayAccess.

Les hash peuvent aussi être parcourus via l'interface Iterator. L'ordre dans lequel les éléments ressortent n'est pas garanti.

Synopsis de la classe

QuickHashStringIntHash {
/* Constantes */
const integer CHECK_FOR_DUPES = 1 ;
const integer DO_NOT_USE_ZEND_ALLOC = 2 ;
/* Méthodes */
public bool add ( string $key , int $value )
public __construct ( int $size [, int $options = 0 ] )
public bool delete ( string $key )
public bool exists ( string $key )
public mixed get ( string $key )
public int getSize ( void )
public static QuickHashStringIntHash loadFromFile ( string $filename [, int $size = 0 [, int $options = 0 ]] )
public static QuickHashStringIntHash loadFromString ( string $contents [, int $size = 0 [, int $options = 0 ]] )
public void saveToFile ( string $filename )
public string saveToString ( void )
public int set ( string $key , int $value )
public bool update ( string $key , int $value )
}

Constantes pré-définies

QuickHashStringIntHash::CHECK_FOR_DUPES

Si activé, l'ajout d'éléments déja existants dans l'ensemble (via add() ou loadFromFile()) fera que ces éléments seront supprimés de l'ensemble. Ceci prendra du temps, utilisez uniquement lorsque nécessaire.

QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC

Désactive l'utilisation du gestionnaire de mémoire interne à PHP. Si cette option est activée, les allocations internes ne compteront pas dans le paramètre memory_limit.

Sommaire

  • QuickHashStringIntHash::add — Ajoute une nouvelle entrée dans la table de hachage
  • QuickHashStringIntHash::__construct — Crée un nouvel objet QuickHashStringIntHash
  • QuickHashStringIntHash::delete — Supprime une entrée de la table de hachage
  • QuickHashStringIntHash::exists — Vérifie si une clé fait partie de la table de hachage
  • QuickHashStringIntHash::get — Récupère une valeur depuis la table de hachage par sa clé
  • QuickHashStringIntHash::getSize — Retourne le nombre d'éléments dans la table de hachage
  • QuickHashStringIntHash::loadFromFile — Crée une table de hachage depuis un fichier
  • QuickHashStringIntHash::loadFromString — Crée une table de hachage depuis une chaîne
  • QuickHashStringIntHash::saveToFile — Sauvegarde une table de hachage en mémoire sur le disque
  • QuickHashStringIntHash::saveToString — Retourne une version linéarisée de la table de hachage
  • QuickHashStringIntHash::set — Met à jour une entrée de la table de hachage avec une nouvelle valeur ou l'ajout si elle n'existe pas
  • QuickHashStringIntHash::update — Mets à jour une entrée de la table de hachage avec une nouvelle valeur


Ajoute une nouvelle entrée dans la table de hachage

  • « QuickHashStringIntHash
  • QuickHashStringIntHash::__construct »
  • PHP Manual
  • QuickHashStringIntHash
  • Ajoute une nouvelle entrée dans la table de hachage

QuickHashStringIntHash::add

(No version information available, might only be in Git)

QuickHashStringIntHash::add — Ajoute une nouvelle entrée dans la table de hachage

Description

public bool QuickHashStringIntHash::add ( string $key , int $value )

Cette méthode ajoute une nouvelle entrée dans la table de hachage, et retourne le fait que l'entrée ait bien été ajouté. Les entrées sont par défaut toujours ajoutées tant que l'option QuickHashStringIntHash::CHECK_FOR_DUPES ne soit passée lors de la création de la table de hachage.

Liste de paramètres

key

La clé de l'entrée à ajouter.

value

La valeur de l'entrée à ajouter.

Valeurs de retour

TRUE lorsque l'entrée a bien été ajoutée, et FALSE si l'entrée n'a pas été ajoutée.

Exemples

Exemple #1 Exemple avec QuickHashStringIntHash::add()

<?php
echo "sans vérification des doublons\n";
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 22 ) );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 12 ) );

echo "\navec vérification des doublons\n";
$hash = new QuickHashStringIntHash( 1024, QuickHashStringIntHash::CHECK_FOR_DUPES );
var_dump( $hash );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 78 ) );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 9 ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

sans vérification des doublons
object(QuickHashStringIntHash)#1 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(22)
bool(true)

avec vérification des doublons
object(QuickHashStringIntHash)#2 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(78)
bool(false)


Crée un nouvel objet QuickHashStringIntHash

  • « QuickHashStringIntHash::add
  • QuickHashStringIntHash::delete »
  • PHP Manual
  • QuickHashStringIntHash
  • Crée un nouvel objet QuickHashStringIntHash

QuickHashStringIntHash::__construct

(No version information available, might only be in Git)

QuickHashStringIntHash::__construct — Crée un nouvel objet QuickHashStringIntHash

Description

public QuickHashStringIntHash::__construct ( int $size [, int $options = 0 ] )

Ce constructeur crée un nouvel objet QuickHashStringIntHash. La taille correspond à la quantité de listes à créer. Plus il y a de listes, le moins de collisions se produira. Les options sont aussi autorisées.

Liste de paramètres

size

La quantité de listes à configurer. Le nombre passé sera automatiquement arrondi à la prochaine puissance de deux. Il sera également automatiquement limité à l'intervalle 64 à 4194304.

options

Les options que vous pouvez passer sont : QuickHashStringIntHash::CHECK_FOR_DUPES, qui s'assure qu'aucun doublon ne sera ajouté à la table de hachage et QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC pour ne pas utiliser le gestionnaire de mémoire interne à PHP.

Valeurs de retour

Retourne un nouvel objet QuickHashStringIntHash.

Exemples

Exemple #1 Exemple avec QuickHashStringIntHash::__construct()

<?php
var_dump( new QuickHashStringIntHash( 1024 ) );
var_dump( new QuickHashStringIntHash( 1024, QuickHashStringIntHash::CHECK_FOR_DUPES ) );
?>


Supprime une entrée de la table de hachage

  • « QuickHashStringIntHash::__construct
  • QuickHashStringIntHash::exists »
  • PHP Manual
  • QuickHashStringIntHash
  • Supprime une entrée de la table de hachage

QuickHashStringIntHash::delete

(No version information available, might only be in Git)

QuickHashStringIntHash::delete — Supprime une entrée de la table de hachage

Description

public bool QuickHashStringIntHash::delete ( string $key )

Cette méthode supprime une entrée depuis la table de hachage et retourne le fait que l'entrée ait bien été supprimé ou non. Les structures mémoires associées ne seront pas libérées immédiatement, mais plutôt lorsque la table de hachage elle-même sera libérée.

Les éléments ne peuvent pas être supprimés lorsque la table de hachage est utilisé par un itérateur. La méthode n'émettra pas d'exception, mais retournera simplement FALSE, comme c'est le cas pour toutes les fonctionnalités de suppression.

Liste de paramètres

key

La clé de l'entrée à supprimer.

Valeurs de retour

TRUE lorsque l'entrée a été supprimée, et FALSE si elle ne l'a pas été.

Exemples

Exemple #1 Exemple avec QuickHashStringIntHash::delete()

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->exists( 'four' ) );
var_dump( $hash->add( 'four', 5 ) );
var_dump( $hash->get( 'four' ) );
var_dump( $hash->delete( 'four' ) );
var_dump( $hash->exists( 'four' ) );
var_dump( $hash->get( 'four' ) );
var_dump( $hash->delete( 'four' ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)
int(5)
bool(true)
bool(false)
bool(false)
bool(false)


Vérifie si une clé fait partie de la table de hachage

  • « QuickHashStringIntHash::delete
  • QuickHashStringIntHash::get »
  • PHP Manual
  • QuickHashStringIntHash
  • Vérifie si une clé fait partie de la table de hachage

QuickHashStringIntHash::exists

(No version information available, might only be in Git)

QuickHashStringIntHash::exists — Vérifie si une clé fait partie de la table de hachage

Description

public bool QuickHashStringIntHash::exists ( string $key )

Cette méthode vérifie si une entrée avec la clé fournie existe dans la table de hachage.

Liste de paramètres

key

La clé de l'entrée dont on souhaite vérifier l'existance dans la table de hachage.

Valeurs de retour

Retourne TRUE lorsque l'entrée a été trouvée, ou FALSE sinon.


Récupère une valeur depuis la table de hachage par sa clé

  • « QuickHashStringIntHash::exists
  • QuickHashStringIntHash::getSize »
  • PHP Manual
  • QuickHashStringIntHash
  • Récupère une valeur depuis la table de hachage par sa clé

QuickHashStringIntHash::get

(No version information available, might only be in Git)

QuickHashStringIntHash::get — Récupère une valeur depuis la table de hachage par sa clé

Description

public mixed QuickHashStringIntHash::get ( string $key )

Cette méthode récupère une valeur depuis la table de hachage par sa clé.

Liste de paramètres

key

La clé de l'entrée à récupérer.

Valeurs de retour

La valeur, si la clé existe, ou NULL si la clé ne fait pas partie de la table de hachage.

Exemples

Exemple #1 Exemple avec QuickHashStringIntHash::get()

<?php
$hash = new QuickHashStringIntHash( 8 );
var_dump( $hash->get( "one" ) );

var_dump( $hash->add( "two", 2 ) );
var_dump( $hash->get( "two" ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)
int(2)


Retourne le nombre d'éléments dans la table de hachage

  • « QuickHashStringIntHash::get
  • QuickHashStringIntHash::loadFromFile »
  • PHP Manual
  • QuickHashStringIntHash
  • Retourne le nombre d'éléments dans la table de hachage

QuickHashStringIntHash::getSize

(No version information available, might only be in Git)

QuickHashStringIntHash::getSize — Retourne le nombre d'éléments dans la table de hachage

Description

public int QuickHashStringIntHash::getSize ( void )

Retourne le nombre d'éléments dans la table de hachage.

Liste de paramètres

key

Valeurs de retour

Le nombre d'éléments dans la table de hachage.

Exemples

Exemple #1 Exemple avec QuickHashStringIntHash::getSize()

<?php
$hash = new QuickHashStringIntHash( 8 );
var_dump( $hash->add( "two", 2 ) );
var_dump( $hash->add( "three", 5 ) );
var_dump( $hash->getSize() );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
int(2)


Crée une table de hachage depuis un fichier

  • « QuickHashStringIntHash::getSize
  • QuickHashStringIntHash::loadFromString »
  • PHP Manual
  • QuickHashStringIntHash
  • Crée une table de hachage depuis un fichier

QuickHashStringIntHash::loadFromFile

(No version information available, might only be in Git)

QuickHashStringIntHash::loadFromFile — Crée une table de hachage depuis un fichier

Description

public static QuickHashStringIntHash QuickHashStringIntHash::loadFromFile ( string $filename [, int $size = 0 [, int $options = 0 ]] )

Cette méthode factorielle crée une nouvelle table de hachage depuis un fichier de définition localisé sur le disque. Le format du fichier consiste en une signature 'QH\0x21\0', le nombre d'éléments sous la forme d'un entier signé sur 32 bit en système Endianness, un entier non-signé sur 32 bits contenant le nombre d'éléments de données qui suivent en caractères. Cet élément de données contient toutes les chaînes. Suit un autre entier signé sur 32 bits contenant le nombre de listes. Après l'en-tête et les chaînes, les éléments suivent. Ils sont ordonnés par liste, faisant ainsi que la clé n'a pas besoin d'être haché afin de restaurer le hachage. Pour chaque liste, les informations suivantes sont stockées (toutes sous la forme d'entiers sur 32 bits) : l'index de la liste, le nombre d'éléments de la liste, puis, des paires de deux entiers non-signés sur 32 bits contenant les éléments, où le premier est l'index de la liste contenant les clés, et le second, la valeur. Voici un exemple :

Exemple #1 QuickHash StringIntHash file format

00000000  51 48 21 00 02 00 00 00  09 00 00 00 40 00 00 00  |QH!.........@...|
00000010  4f 4e 45 00 4e 49 4e 45  00 07 00 00 00 01 00 00  |ONE.NINE........|
00000020  00 00 00 00 00 01 00 00  00 2f 00 00 00 01 00 00  |........./......|
00000030  00 04 00 00 00 03 00 00  00                       |.........|
00000039

Exemple #2 Format de fichier QuickHash IntHash

header signature ('QH'; key type: 2; value type: 1; filler: \0x00)
00000000  51 48 21 00

number of elements:
00000004  02 00 00 00

length of string values (9 characters):
00000008  09 00 00 00

number of hash bucket lists (this is configured for hashes as argument to the
constructor normally, 64 in this case):
0000000C  40 00 00 00

string values:
00000010  4f 4e 45 00 4e 49 4e 45  00

bucket lists:
  bucket list 1 (with key 7, and 1 element):
    header:
    07 00 00 00 01 00 00 00
    elements (key index: 0 ('ONE'), value = 0):
    00 00 00 00 01 00 00 00
  bucket list 2 (with key 0x2f, and 1 element):
    header:
    2f 00 00 00 01 00 00 00
    elements (key index: 4 ('NINE'), value = 3):
    04 00 00 00 03 00 00 00

Liste de paramètres

filename

Le nom du fichier à utiliser pour construire la table de hachage.

size

La quantité de listes à configurer. Le nombre passé sera automatiquement arrondi à la puissance de deux supérieure. Il sera également automatiquement limité à l'intervalle 4 - 4194304.

options

Les mêmes options que le constructeur de la classe ; sauf que l'option sur la taille est ignoré. Il sera lu depuis le format du fichier (contrairement aux classes QuickHashIntHash et QuickHashIntStringHash, où il est automatiquement calculé depuis le nombre d'entrées de la table de hachage).

Valeurs de retour

Retourne un nouvel objet QuickHashStringIntHash.

Exemples

Exemple #3 Exemple avec QuickHashStringIntHash::loadFromFile()

<?php
$file = dirname( __FILE__ ) . "/simple.hash.string";
$hash = QuickHashStringIntHash::loadFromFile(
    $file,
    QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    $i = 48712 + $key * 1631;
    $k = base_convert( $i, 10, 36 );
    echo $k, ' => ', $hash->get( $k ), "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

11l4 => 48712
12uf => 50343
143q => 51974
15d1 => 53605
16mc => 55236
17vn => 56867
194y => 58498
1ae9 => 60129
1bnk => 61760
1cwv => 63391
1e66 => 65022
1ffh => 66653
1gos => 68284
1hy3 => 69915
1j7e => 71546
1kgp => 73177


Crée une table de hachage depuis une chaîne

  • « QuickHashStringIntHash::loadFromFile
  • QuickHashStringIntHash::saveToFile »
  • PHP Manual
  • QuickHashStringIntHash
  • Crée une table de hachage depuis une chaîne

QuickHashStringIntHash::loadFromString

(No version information available, might only be in Git)

QuickHashStringIntHash::loadFromString — Crée une table de hachage depuis une chaîne

Description

public static QuickHashStringIntHash QuickHashStringIntHash::loadFromString ( string $contents [, int $size = 0 [, int $options = 0 ]] )

Cette méthode factorielle créer une nouvelle table de hachage depuis une définition contenu dans une chaîne de caractères. Le format est identique à celui utilisé par la fonction "loadFromFile".

Liste de paramètres

contents

La chaîne contenant un format linéarisé de la table de hachage.

size

La quantité de listes à configurer. Le nombre passé sera automatiquement arrondi à la prochaine puissance de deux. Il sera également automatiquement limité à l'intervalle 4 - 4194304.

options

Les mêmes options que le constructeur de la classe ; sauf que l'option relative à la taille sera ignorée. En effet, elle sera automatiquement calculée pour être identique au nombre d'entrées dans la table de hachage, arrondie à la valeur la plus proche d'une puissance de deux, avec une limite maximale à 4194304.

Valeurs de retour

Retourne un nouvel objet QuickHashStringIntHash.

Exemples

Exemple #1 Exemple avec QuickHashStringIntHash::loadFromString()

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash.string" );
$hash = QuickHashStringIntHash::loadFromString(
    $contents,
    QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    $i = 48712 + $key * 1631;
    $k = base_convert( $i, 10, 36 );
    echo $k, ' => ', $hash->get( $k ), "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

11l4 => 48712
12uf => 50343
143q => 51974
15d1 => 53605
16mc => 55236
17vn => 56867
194y => 58498
1ae9 => 60129
1bnk => 61760
1cwv => 63391
1e66 => 65022
1ffh => 66653
1gos => 68284
1hy3 => 69915
1j7e => 71546
1kgp => 73177


Sauvegarde une table de hachage en mémoire sur le disque

  • « QuickHashStringIntHash::loadFromString
  • QuickHashStringIntHash::saveToString »
  • PHP Manual
  • QuickHashStringIntHash
  • Sauvegarde une table de hachage en mémoire sur le disque

QuickHashStringIntHash::saveToFile

(No version information available, might only be in Git)

QuickHashStringIntHash::saveToFile — Sauvegarde une table de hachage en mémoire sur le disque

Description

public void QuickHashStringIntHash::saveToFile ( string $filename )

Cette méthode sauvegarde une table de hachage existante dans un fichier du disque, dans un format lisible par la fonction loadFromFile().

Liste de paramètres

filename

Le nom du fichier à utiliser pour la sauvegarde.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec QuickHashStringIntHash::saveToFile()

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "fourty three", 42 ) );
var_dump( $hash->add( "fifty two", 52 ) );

$hash->saveToFile( '/tmp/test.hash.string' );
?>


Retourne une version linéarisée de la table de hachage

  • « QuickHashStringIntHash::saveToFile
  • QuickHashStringIntHash::set »
  • PHP Manual
  • QuickHashStringIntHash
  • Retourne une version linéarisée de la table de hachage

QuickHashStringIntHash::saveToString

(No version information available, might only be in Git)

QuickHashStringIntHash::saveToString — Retourne une version linéarisée de la table de hachage

Description

public string QuickHashStringIntHash::saveToString ( void )

Cette méthode retourne une version linéarisée de la table de hachage dans un format lisible par la fonction loadFromString().

Valeurs de retour

Cette méthode retourne un format linéarisé d'une table de hachage existante, dans un format lisible par la fonction loadFromString().

Exemples

Exemple #1 Exemple avec QuickHashStringIntHash::saveToString()

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "fourty three", 42 ) );
var_dump( $hash->add( "fifty two", 52 ) );

var_dump( $hash->saveToString() );
?>


Met à jour une entrée de la table de hachage avec une nouvelle valeur ou l'ajout si elle n'existe pas

  • « QuickHashStringIntHash::saveToString
  • QuickHashStringIntHash::update »
  • PHP Manual
  • QuickHashStringIntHash
  • Met à jour une entrée de la table de hachage avec une nouvelle valeur ou l'ajout si elle n'existe pas

QuickHashStringIntHash::set

(No version information available, might only be in Git)

QuickHashStringIntHash::set — Met à jour une entrée de la table de hachage avec une nouvelle valeur ou l'ajout si elle n'existe pas

Description

public int QuickHashStringIntHash::set ( string $key , int $value )

Cette méthode tente de mettre à jour une entrée avec une nouvelle valeur. Dans le cas où l'entrée n'existe pas, elle sera ajoutée. La fonction retourne le fait que l'entrée a été ajoutée ou mise à jour. S'il y a des doublons de clés, seul le premier élément recevra la nouvelle valeur. Utilisez QuickHashStringIntHash::CHECK_FOR_DUPES lors de la création de la table de hachage pour prévenir les doublons de clés.

Liste de paramètres

key

La clé de l'entrée à ajouter ou mettre à jour.

value

La valeur de l'entrée à ajouter ou mettre à jour. Si une non-chaîne est passée, elle sera automatiquement convertie en chaîne, si possible.

Valeurs de retour

2 si l'entrée a été trouvée et mise à jour, 1 si l'entrée a été nouvellement ajoutée, ou 0 si une erreur survient.

Exemples

Exemple #1 Exemple avec QuickHashStringIntHash::set()

<?php
$hash = new QuickHashStringIntHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( "fourty six thousand six hundred ninety two" ) );
var_dump( $hash->set( "fourty six thousand six hundred ninety two", 16091 ) );
var_dump( $hash->get( "fourty six thousand six hundred ninety two" ) );

echo "Set->Update\n";
var_dump( $hash->set( "fourty six thousand six hundred ninety two", 29906 ) );
var_dump( $hash->get( "fourty six thousand six hundred ninety two" ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Set->Add
bool(false)
int(2)
int(16091)
Set->Update
int(1)
int(29906)


Mets à jour une entrée de la table de hachage avec une nouvelle valeur

  • « QuickHashStringIntHash::set
  • QuickHashIntStringHash »
  • PHP Manual
  • QuickHashStringIntHash
  • Mets à jour une entrée de la table de hachage avec une nouvelle valeur

QuickHashStringIntHash::update

(No version information available, might only be in Git)

QuickHashStringIntHash::update — Mets à jour une entrée de la table de hachage avec une nouvelle valeur

Description

public bool QuickHashStringIntHash::update ( string $key , int $value )

Cette méthode met à jour une entrée avec une nouvelle valeur, et retourne le fait que l'entrée a bien été mise à jour ou non. S'il y a des doublons de clés, seul le premier élément recevra la nouvelle valeur. Utilisez QuickHashStringIntHash::CHECK_FOR_DUPES lors de la création de la table de hachage pour prévenir les doublons de clés.

Liste de paramètres

key

La clé de l'entrée à mettre à jour.

value

La nouvelle valeur pour l'entrée. Si une non-chaîne est passée, elle sera automatiquement convertie en chaîne, si possible.

Valeurs de retour

TRUE lorsque l'entrée a été trouvée et mise à jour, et FALSE si l'entrée n'est pas contenue dans la table de hachage.

Exemples

Exemple #1 Exemple avec QuickHashStringIntHash::update()

<?php
$hash = new QuickHashStringIntHash( 1024 );

$hash->add( 'six', 314159265 );
$hash->add( "a lot", 314159265 );

echo $hash->get( 'six' ), "\n";
echo $hash->get( 'a lot' ), "\n";

var_dump( $hash->update( 'a lot', 314159266 ) );
var_dump( $hash->update( "a lot plus one", 314159999 ) );

echo $hash->get( 'six' ), "\n";
echo $hash->get( 'a lot' ), "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

314159265
314159265
bool(true)
bool(false)
314159265
314159266


The QuickHashIntStringHash class

(PECL quickhash >= Unknown)

Introduction

Cette classe est un conteneur pour un hash contenant des nombres entiers, alors que les valeurs sont elles, des chaines. Les hash sont aussi disponibles au travers de l'interface ArrayAccess.

Les hash peuvent aussi être parcourus via l'interface Iterator. L'ordre dans lequel les éléments ressortent n'est pas garanti.

Synopsis de la classe

QuickHashIntStringHash {
/* Constantes */
const integer CHECK_FOR_DUPES = 1 ;
const integer DO_NOT_USE_ZEND_ALLOC = 2 ;
const integer HASHER_NO_HASH = 256 ;
const integer HASHER_JENKINS1 = 512 ;
const integer HASHER_JENKINS2 = 1024 ;
/* Méthodes */
public bool add ( int $key , string $value )
public __construct ( int $size [, int $options = 0 ] )
public bool delete ( int $key )
public bool exists ( int $key )
public mixed get ( int $key )
public int getSize ( void )
public static QuickHashIntStringHash loadFromFile ( string $filename [, int $size = 0 [, int $options = 0 ]] )
public static QuickHashIntStringHash loadFromString ( string $contents [, int $size = 0 [, int $options = 0 ]] )
public void saveToFile ( string $filename )
public string saveToString ( void )
public int set ( int $key , string $value )
public bool update ( int $key , string $value )
}

Constantes pré-définies

QuickHashIntStringHash::CHECK_FOR_DUPES

Si activé, l'ajout d'éléments déja existants dans l'ensemble (via add() ou loadFromFile()) fera que ces éléments seront supprimés de l'ensemble. Ceci prendra du temps, utilisez uniquement lorsque nécessaire.

QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC

Désactive l'utilisation du gestionnaire de mémoire interne à PHP. Si cette option est activée, les allocations internes ne compteront pas dans le paramètre memory_limit.

QuickHashIntStringHash::HASHER_NO_HASH

Utilise un modulo et non pas une fonction de hashage pour trouver un élément dans l'index. Ce n'est pas plus rapide que le hashage classique, et le risque de collision est plus élevé.

QuickHashIntStringHash::HASHER_JENKINS1

Fonction de hashage par défaut qui transforme les hash entiers en éléments indexés en liste.

QuickHashIntStringHash::HASHER_JENKINS2

Sélectionne un algorithme de hashage différent.

Sommaire

  • QuickHashIntStringHash::add — Cette méthode ajoute une nouvelle entrée à la table de hachage
  • QuickHashIntStringHash::__construct — Crée un nouvel objet QuickHashIntStringHash
  • QuickHashIntStringHash::delete — Supprime une entrée de la table de hachage
  • QuickHashIntStringHash::exists — Vérifie si une clé existe dans la table de hachage
  • QuickHashIntStringHash::get — Récupère une valeur depuis la table de hachage par sa clé
  • QuickHashIntStringHash::getSize — Retourne le nombre d'éléments de la table de hachage
  • QuickHashIntStringHash::loadFromFile — Crée une table de hachage depuis un fichier
  • QuickHashIntStringHash::loadFromString — Crée une table de hachage depuis une chaîne
  • QuickHashIntStringHash::saveToFile — Stocke une table de hachage en mémoire sur le disque
  • QuickHashIntStringHash::saveToString — Retourne une version linéarisée de la table de hachage
  • QuickHashIntStringHash::set — Met à jour une entrée depuis la table de hachage avec une nouvelle valeur, ou l'ajoute si l'entrée n'existe pas
  • QuickHashIntStringHash::update — Met à jour une entrée de la table de hachage avec une nouvelle valeur


Cette méthode ajoute une nouvelle entrée à la table de hachage

  • « QuickHashIntStringHash
  • QuickHashIntStringHash::__construct »
  • PHP Manual
  • QuickHashIntStringHash
  • Cette méthode ajoute une nouvelle entrée à la table de hachage

QuickHashIntStringHash::add

(PECL quickhash >= Unknown)

QuickHashIntStringHash::add — Cette méthode ajoute une nouvelle entrée à la table de hachage

Description

public bool QuickHashIntStringHash::add ( int $key , string $value )

Cette méthode ajoute une nouvelle entrée à la table de hachage, et informe en retourne si l'entrée a bien été ajoutée. Par défaut, les entrées sont toujours ajoutées, à moins que QuickHashIntStringHash::CHECK_FOR_DUPES ait été passé lors de la création de la table de hachage.

Liste de paramètres

key

La clé de l'entrée à ajouter.

value

La valeur de l'entrée à ajouter. Si la valeur passée n'est pas une chaîne, elle sera convertie en chaîne automatiquement si cela est possible.

Valeurs de retour

TRUE lorsque l'entrée a été ajoutée, et FALSE si l'entrée n'a pas été ajoutée.

Exemples

Exemple #1 Exemple avec QuickHashIntStringHash::add()

<?php
echo "sans vérification de doublon\n";
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "twenty two" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "twelve" ) );

echo "\navec vérification de doublon\n";
$hash = new QuickHashIntStringHash( 1024, QuickHashIntStringHash::CHECK_FOR_DUPES );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "seventy eight" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "nine" ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

sans vérification de doublon
bool(false)
bool(false)
bool(true)
bool(true)
string(10) "twenty two"
bool(true)

avec vérification de doublon
bool(false)
bool(false)
bool(true)
bool(true)
string(13) "seventy eight"
bool(false)


Crée un nouvel objet QuickHashIntStringHash

  • « QuickHashIntStringHash::add
  • QuickHashIntStringHash::delete »
  • PHP Manual
  • QuickHashIntStringHash
  • Crée un nouvel objet QuickHashIntStringHash

QuickHashIntStringHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntStringHash::__construct — Crée un nouvel objet QuickHashIntStringHash

Description

public QuickHashIntStringHash::__construct ( int $size [, int $options = 0 ] )

Ce constructeur crée un nouvel objet QuickHashIntStringHash. La taille représente la quantité de listes à créer. Le plus il y aura de listes, le moins il y aura de collisions. Des options sont également supportées.

Liste de paramètres

size

La quantité de listes à configurer. Le nombre passé sera automatiquement arrondi à la prochaine puissance de 2. Il est également automatiquement limité dans l'intervalle 64 à 4194304.

options

Les options que vous pouvez passer sont : QuickHashIntStringHash::CHECK_FOR_DUPES, qui s'assure qu'aucune entrée en doublon ne sera ajoutée à la table de hachage ; QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC pour ne pas utiliser le gestionnaire de mémoire interne à PHP, mais aussi QuickHashIntStringHash::HASHER_NO_HASH, QuickHashIntStringHash::HASHER_JENKINS1 ou QuickHashIntStringHash::HASHER_JENKINS2 qui permettent de choisir l'algorithme de hachage à utiliser. Toutes les options peuvent être combinées en utilisant un masque.

Valeurs de retour

Retourne un nouvel objet QuickHashIntStringHash.

Exemples

Exemple #1 Exemple avec QuickHashIntStringHash::__construct()

<?php
var_dump( new QuickHashIntStringHash( 1024 ) );
var_dump( new QuickHashIntStringHash( 1024, QuickHashIntStringHash::CHECK_FOR_DUPES ) );
var_dump(
    new QuickHashIntStringHash(
        1024,
        QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC | QuickHashIntStringHash::HASHER_JENKINS2
    )
);
?>


Supprime une entrée de la table de hachage

  • « QuickHashIntStringHash::__construct
  • QuickHashIntStringHash::exists »
  • PHP Manual
  • QuickHashIntStringHash
  • Supprime une entrée de la table de hachage

QuickHashIntStringHash::delete

(PECL quickhash >= Unknown)

QuickHashIntStringHash::delete — Supprime une entrée de la table de hachage

Description

public bool QuickHashIntStringHash::delete ( int $key )

Cette méthode supprime une entrée de la table de hachage, et informe sur le fait que l'entrée a bien été supprimée ou non. Les structures mémoires internes ne seront pas libérées immédiatement, mais plutôt lorsque le hachage en tant que tel sera libéré.

Les éléments ne peuvent pas être supprimés lorsque le hachage est utilisé par un itérateur. La méthode n'émettra pas d'exception, mais retournera simplement FALSE, comme elle l'aurait fait pour toute autre erreur de suppression.

Liste de paramètres

key

La clé de l'entrée à supprimer.

Valeurs de retour

TRUE lorsque l'entrée a été supprimée avec succès, et FALSE si l'entrée n'a pas été supprimée.

Exemples

Exemple #1 Exemple avec QuickHashIntStringHash::delete()

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "five" ) );
var_dump( $hash->delete( 4 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->delete( 4 ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


Vérifie si une clé existe dans la table de hachage

  • « QuickHashIntStringHash::delete
  • QuickHashIntStringHash::get »
  • PHP Manual
  • QuickHashIntStringHash
  • Vérifie si une clé existe dans la table de hachage

QuickHashIntStringHash::exists

(PECL quickhash >= Unknown)

QuickHashIntStringHash::exists — Vérifie si une clé existe dans la table de hachage

Description

public bool QuickHashIntStringHash::exists ( int $key )

Cette méthode vérifie si une entrée avec la clé fournie existe ou non dans la table de hachage.

Liste de paramètres

key

La clé de l'entrée dont on doit vérifier l'existance.

Valeurs de retour

Retourne TRUE lorsque l'entrée a été trouvée, ou FALSE si l'entrée n'a pas été trouvée.


Récupère une valeur depuis la table de hachage par sa clé

  • « QuickHashIntStringHash::exists
  • QuickHashIntStringHash::getSize »
  • PHP Manual
  • QuickHashIntStringHash
  • Récupère une valeur depuis la table de hachage par sa clé

QuickHashIntStringHash::get

(PECL quickhash >= Unknown)

QuickHashIntStringHash::get — Récupère une valeur depuis la table de hachage par sa clé

Description

public mixed QuickHashIntStringHash::get ( int $key )

Cette méthode récupère une valeur depuis la table de hachage par sa clé.

Liste de paramètres

key

La clé de l'entrée à récupérer.

Valeurs de retour

La valeur si la clé existe, ou NULL si la clé ne fait pas partie de la table de hachage.

Exemples

Exemple #1 Exemple avec QuickHashIntStringHash::get()

<?php
$hash = new QuickHashIntStringHash( 8 );
var_dump( $hash->get( 1 ) );

var_dump( $hash->add( 2, "two" ) );
var_dump( $hash->get( 2 ) );

var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->get( 3 ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)
string(3) "two"
bool(true)
string(1) "5"


Retourne le nombre d'éléments de la table de hachage

  • « QuickHashIntStringHash::get
  • QuickHashIntStringHash::loadFromFile »
  • PHP Manual
  • QuickHashIntStringHash
  • Retourne le nombre d'éléments de la table de hachage

QuickHashIntStringHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntStringHash::getSize — Retourne le nombre d'éléments de la table de hachage

Description

public int QuickHashIntStringHash::getSize ( void )

Retourne le nombre d'éléments de la table de hachage.

Valeurs de retour

Le nombre d'éléments de la table de hachage.

Exemples

Exemple #1 Exemple avec QuickHashIntStringHash::getSize()

<?php
$hash = new QuickHashIntStringHash( 8 );
var_dump( $hash->add( 2, "two" ) );
var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->getSize() );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
int(2)


Crée une table de hachage depuis un fichier

  • « QuickHashIntStringHash::getSize
  • QuickHashIntStringHash::loadFromString »
  • PHP Manual
  • QuickHashIntStringHash
  • Crée une table de hachage depuis un fichier

QuickHashIntStringHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromFile — Crée une table de hachage depuis un fichier

Description

public static QuickHashIntStringHash QuickHashIntStringHash::loadFromFile ( string $filename [, int $size = 0 [, int $options = 0 ]] )

Cette méthode factorielle crée une nouvelle table de hachage depuis un fichier de définition se trouvant sur le disque. Le format consiste en une signature 'QH\0x12\0', le nombre d'éléments sous la forme d'un entier signé sur 32 bits en système Endianness, un entier non-signé sur 32 bits contenant le nombre d'éléments de données suivants les caractères. Cette élément de données contient toutes les chaînes. Après l'ent-tête et les chaînes, les éléments suivent, sous la forme d'une paire de 2 entiers non-signés sur 32 bits, où le premier est la clé, et le second, l'index de l'élément de données. Voici un exemple :

Exemple #1 Format de fichier QuickHash IntString

00000000  51 48 12 00 02 00 00 00  09 00 00 00 4f 4e 45 00  |QH..........ONE.|
00000010  4e 49 4e 45 00 01 00 00  00 00 00 00 00 03 00 00  |NINE............|
00000020  00 04 00 00 00                                    |.....|
00000025

Exemple #2 Format de fichier QuickHash IntString

header signature ('QH'; key type: 1; value type: 2; filler: \0x00)
00000000  51 48 12 00

number of elements:
00000004  02 00 00 00

length of string values (9 characters):
00000008  09 00 00 00

string values:
0000000C  4f 4e 45 00 4e 49 4e 45  00

data string:
00000015  01 00 00 00 00 00 00 00  03 00 00 00 04 00 00 00

key/value 1 (key = 1, string index = 0 ("ONE")):
01 00 00 00  00 00 00 00

key/value 2 (key = 3, string index = 4 ("NINE")):
03 00 00 00  04 00 00 00

Liste de paramètres

filename

Le nom du fichier depuis lequel la table de hachage sera lue.

size

La quantité de listes à créer. Le nombre passé sera automatiquement arrondi à la prochaine puissance de 2. Il sera également automatiquement limité à l'intervalle 4 - 4194304.

options

Les mêmes options que le constructeur de la classe ; sauf l'option taille qui sera ignorée. Elle sera automatiquement calculée pour correspondre au nombre d'entrées dans la table de hachage, arrondi à la puissance de 2 le plus proche avec une limite maximale de 4194304.

Valeurs de retour

Returns a new QuickHashIntStringHash.

Exemples

Exemple #3 Exemple avec QuickHashIntStringHash::loadFromFile()

<?php
$file = dirname( __FILE__ ) . "/simple.string.hash";
$hash = QuickHashIntStringHash::loadFromFile(
    $file,
    QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


Crée une table de hachage depuis une chaîne

  • « QuickHashIntStringHash::loadFromFile
  • QuickHashIntStringHash::saveToFile »
  • PHP Manual
  • QuickHashIntStringHash
  • Crée une table de hachage depuis une chaîne

QuickHashIntStringHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromString — Crée une table de hachage depuis une chaîne

Description

public static QuickHashIntStringHash QuickHashIntStringHash::loadFromString ( string $contents [, int $size = 0 [, int $options = 0 ]] )

Cette méthode factorielle crée une nouvelle table de hachage depuis une définition se trouvant dans une chaîne. Le format est identique à celui utilisé par la fonction "loadFromFile".

Liste de paramètres

contents

La chaîne contenant un format linéarisé de la table de hachage.

size

La quantité de liste à configurer. Le nombre passé sera automatiquement arrondi à la prochaine puissance de 2. Il sera également limité à l'intervalle 4 - 4194304.

options

Les mêmes options que pour le constructeur de la classe ; sauf l'option taille est ignorée. Elle est automatiquement calculé de façon à être identique au nombre d'entrées dans la table de hachage, arrondi à la puissance de 2 la plus proche, avec une limite maximale de 4194304.

Valeurs de retour

Retourne un nouvel objet QuickHashIntStringHash.

Exemples

Exemple #1 Exemple avec QuickHashIntStringHash::loadFromString()

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash" );
$hash = QuickHashIntStringHash::loadFromString(
    $contents,
    QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


Stocke une table de hachage en mémoire sur le disque

  • « QuickHashIntStringHash::loadFromString
  • QuickHashIntStringHash::saveToString »
  • PHP Manual
  • QuickHashIntStringHash
  • Stocke une table de hachage en mémoire sur le disque

QuickHashIntStringHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToFile — Stocke une table de hachage en mémoire sur le disque

Description

public void QuickHashIntStringHash::saveToFile ( string $filename )

Cette méthode stocke une table de hachage existante dans un fichier du disque, dans un format lisible par la fonction loadFromFile().

Liste de paramètres

filename

Le nom du fichier utilisé pour y stocker la table de hachage.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec QuickHashIntStringHash::saveToFile()

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "fourty three" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "fifty two" ) );

$hash->saveToFile( '/tmp/test.string.hash' );
?>


Retourne une version linéarisée de la table de hachage

  • « QuickHashIntStringHash::saveToFile
  • QuickHashIntStringHash::set »
  • PHP Manual
  • QuickHashIntStringHash
  • Retourne une version linéarisée de la table de hachage

QuickHashIntStringHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToString — Retourne une version linéarisée de la table de hachage

Description

public string QuickHashIntStringHash::saveToString ( void )

Cette méthode retourne une version linéarisée de la table de hachage dans un format que la fonction loadFromString() peut lire.

Valeurs de retour

Cette méthode retourne une chaîne contenant un format linéarisé de la table de hachage. Chaque élément est stocké sous la forme d'une valeur sous 4 octets en Endianness que le système courant utilise.

Exemples

Exemple #1 Exemple avec QuickHashIntStringHash::saveToString()

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "thirty four" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 5, "fifty five" ) );

var_dump( $hash->saveToString() );
?>


Met à jour une entrée depuis la table de hachage avec une nouvelle valeur, ou l'ajoute si l'entrée n'existe pas

  • « QuickHashIntStringHash::saveToString
  • QuickHashIntStringHash::update »
  • PHP Manual
  • QuickHashIntStringHash
  • Met à jour une entrée depuis la table de hachage avec une nouvelle valeur, ou l'ajoute si l'entrée n'existe pas

QuickHashIntStringHash::set

(PECL quickhash >= Unknown)

QuickHashIntStringHash::set — Met à jour une entrée depuis la table de hachage avec une nouvelle valeur, ou l'ajoute si l'entrée n'existe pas

Description

public int QuickHashIntStringHash::set ( int $key , string $value )

Cette méthode tente de mettre à jour une entrée avec une nouvelle valeur. Dans le cas où l'entrée n'existe pas, elle va l'ajouter. Elle informe en retour si l'entrée a été mise à jour ou bien ajouté. Si il y a des doublons de clés, seul le premier élément recevra la nouvelle valeur. Utilisez QuickHashIntStringHash::CHECK_FOR_DUPES lors de la création de la table de hachage pour prévenir le doublon de clés.

Liste de paramètres

key

La clé de l'entrée à ajouter ou mettre à jour.

value

La valeur de l'entrée à ajouter ou mettre à jour. Si une non-chaîne est passée, elle sera convertie en chaîne automatiquement si possible.

Valeurs de retour

Retournera 2 si l'entrée a été trouvée et mise à jour, 1 si l'entrée a été ajoutée, ou 0 si une erreur survient.

Exemples

Exemple #1 Exemple avec QuickHashIntStringHash::set()

<?php
$hash = new QuickHashIntStringHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( 46692 ) );
var_dump( $hash->set( 46692, "sixteen thousand ninety one" ) );
var_dump( $hash->get( 46692 ) );

echo "Set->Update\n";
var_dump( $hash->set( 46692, "twenty nine thousand nine hundred six" ) );
var_dump( $hash->get( 46692 ) );
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Set->Add
bool(false)
int(2)
string(27) "sixteen thousand ninety one"
Set->Update
int(1)
string(37) "twenty nine thousand nine hundred six"


Met à jour une entrée de la table de hachage avec une nouvelle valeur

  • « QuickHashIntStringHash::set
  • Reflection »
  • PHP Manual
  • QuickHashIntStringHash
  • Met à jour une entrée de la table de hachage avec une nouvelle valeur

QuickHashIntStringHash::update

(PECL quickhash >= Unknown)

QuickHashIntStringHash::update — Met à jour une entrée de la table de hachage avec une nouvelle valeur

Description

public bool QuickHashIntStringHash::update ( int $key , string $value )

Cette méthode met à jour une entrée avec une nouvelle valeur, et retourne le fait que l'entrée a bien été mise à jour ou non. Si il y a des clés dupliquées, seul le premier élément trouvé recevra la valeur mise à jour. Utilisez QuickHashIntStringHash::CHECK_FOR_DUPES lors de la création de la table de hachage pour prévenir les doublons de clés.

Liste de paramètres

key

La clé de l'entrée à mettre à jour.

value

La nouvelle valeur de l'entrée. Si une non-chaîne est passée, elle sera convertie en une chaîne automatiquement, si possible.

Valeurs de retour

TRUE lorsque l'entrée a été trouvée et mise à jour, et FALSE si l'entrée ne fait pas partie de la table de hachage.

Exemples

Exemple #1 Exemple avec QuickHashIntStringHash::update()

<?php
$hash->add( 161803398, "--" );
$hash->add( 314159265, "a lot" );

echo $hash->get( 161803398 ), "\n";
echo $hash->get( 314159265 ), "\n";

var_dump( $hash->update( 314159265, "a lot plus one" ) );
var_dump( $hash->update( 314159999, "a lot plus one" ) );

echo $hash->get( 161803398 ), "\n";
echo $hash->get( 314159265 ), "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

--
a lot
bool(true)
bool(false)
--
a lot plus one


Reflection

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Étendre la classe
  • Reflection — La classe Reflection
    • Reflection::export — Exportes
    • Reflection::getModifierNames — Récupère le nom d'un modificateur
  • ReflectionClass — La classe ReflectionClass
    • ReflectionClass::__construct — Construit une ReflectionClass
    • ReflectionClass::export — Exporte une classe
    • ReflectionClass::getConstant — Récupère une constante
    • ReflectionClass::getConstants — Récupère les constantes
    • ReflectionClass::getConstructor — Récupère le constructeur d'une classe
    • ReflectionClass::getDefaultProperties — Récupère les propriétés par défaut
    • ReflectionClass::getDocComment — Récupère les commentaires
    • ReflectionClass::getEndLine — Récupère la fin d'une ligne
    • ReflectionClass::getExtension — Récupère un objet ReflectionExtension pour l'extension définissant la classe
    • ReflectionClass::getExtensionName — Récupère le nom de l'extension qui définit la classe
    • ReflectionClass::getFileName — Récupère le nom du fichier déclarant la classe considérée
    • ReflectionClass::getInterfaceNames — Récupère les noms des interfaces
    • ReflectionClass::getInterfaces — Récupère les interfaces
    • ReflectionClass::getMethod — Récupère un objet ReflectionMethod pour une méthode d'une classe
    • ReflectionClass::getMethods — Récupère un tableau de méthodes
    • ReflectionClass::getModifiers — Récupère les modificateurs
    • ReflectionClass::getName — Récupère le nom de la classe
    • ReflectionClass::getNamespaceName — Récupère l'espace de noms
    • ReflectionClass::getParentClass — Récupère la classe parente
    • ReflectionClass::getProperties — Récupère les propriétés
    • ReflectionClass::getProperty — Récupère une ReflectionProperty pour une propriété d'une classe
    • ReflectionClass::getShortName — Récupère le nom court d'une classe
    • ReflectionClass::getStartLine — Récupère le numéro de ligne de départ
    • ReflectionClass::getStaticProperties — Récupère les propriétés statiques
    • ReflectionClass::getStaticPropertyValue — Récupère la valeur d'une propriété statique
    • ReflectionClass::getTraitAliases — Retourne un tableau des alias du trait
    • ReflectionClass::getTraitNames — Retourne un tableau de noms des traits utilisés par cette classe
    • ReflectionClass::getTraits — Retourne un tableau des traits utilisés par cette classe
    • ReflectionClass::hasConstant — Vérifie si une constante est définie
    • ReflectionClass::hasMethod — Vérifie si une méthode est définie
    • ReflectionClass::hasProperty — Vérifie si une propriété est définie
    • ReflectionClass::implementsInterface — Vérifie si une classe implémente une interface
    • ReflectionClass::inNamespace — Vérifie si une classe est définie dans un espace de noms
    • ReflectionClass::isAbstract — Vérifie si une classe est abstraite
    • ReflectionClass::isAnonymous — Checks if class is anonymous
    • ReflectionClass::isCloneable — Renseigne à propos de la propriété de duplication de la classe
    • ReflectionClass::isFinal — Vérifie si une classe est finale
    • ReflectionClass::isInstance — Vérifie si une classe est une instance d'une autre classe
    • ReflectionClass::isInstantiable — Vérifie si une classe est instanciable
    • ReflectionClass::isInterface — Vérifie si une classe est une interface
    • ReflectionClass::isInternal — Vérifie si une classe est définie comme interne par une extension
    • ReflectionClass::isIterateable — Vérifie si la classe est itérable
    • ReflectionClass::isSubclassOf — Vérifie si la classe est une sous-classe
    • ReflectionClass::isTrait — Renseigne s'il s'agit d'un trait
    • ReflectionClass::isUserDefined — Vérifie si une classe a été définie dans l'espace utilisateur
    • ReflectionClass::newInstance — Créer une nouvelle instance de la classe en utilisant les arguments fournis
    • ReflectionClass::newInstanceArgs — Créer une nouvelle instance en utilisant les arguments fournis
    • ReflectionClass::newInstanceWithoutConstructor — Crée une nouvelle instance de la classe sans invoquer le constructeur
    • ReflectionClass::setStaticPropertyValue — Définit la valeur d'une propriété statiques
    • ReflectionClass::__toString — Crée une représentation textuelle de l'objet
  • ReflectionZendExtension — La classe ReflectionZendExtension
    • ReflectionZendExtension::__clone — Gestionnaire de clonage
    • ReflectionZendExtension::__construct — Constructeur
    • ReflectionZendExtension::export — Export
    • ReflectionZendExtension::getAuthor — Récupère l'auteur
    • ReflectionZendExtension::getCopyright — Récupère le copyright
    • ReflectionZendExtension::getName — Récupère le nom
    • ReflectionZendExtension::getURL — Récupère l'URL
    • ReflectionZendExtension::getVersion — Récupère la version
    • ReflectionZendExtension::__toString — Gestionnaire de conversion en chaîne de caractères
  • ReflectionExtension — La classe ReflectionExtension
    • ReflectionExtension::__clone — Clonage
    • ReflectionExtension::__construct — Construit un nouvel objet ReflectionExtension
    • ReflectionExtension::export — Exportation
    • ReflectionExtension::getClasses — Récupère les classes
    • ReflectionExtension::getClassNames — Récupère les noms des classes
    • ReflectionExtension::getConstants — Récupère les constantes
    • ReflectionExtension::getDependencies — Récupère les dépendances
    • ReflectionExtension::getFunctions — Récupère les fonctions d'une extension
    • ReflectionExtension::getINIEntries — Récupère les entrées ini de l'extension
    • ReflectionExtension::getName — Récupère le nom de l'extension
    • ReflectionExtension::getVersion — Récupère la version de l'extension
    • ReflectionExtension::info — Affiche des informations sur l'extension
    • ReflectionExtension::isPersistent — Vérifie si l'extension est persistante
    • ReflectionExtension::isTemporary — Vérifie si l'extension est temporaire
    • ReflectionExtension::__toString — Récupère une représentation textuelle
  • ReflectionFunction — La classe ReflectionFunction
    • ReflectionFunction::__construct — Construit un nouvel objet ReflectionFunction
    • ReflectionFunction::export — Exporte une fonction
    • ReflectionFunction::getClosure — Retourne une fermeture créée dynamiquement par la fonction
    • ReflectionFunction::invoke — Invoque une fonction
    • ReflectionFunction::invokeArgs — Invoque les arguments d'une fonction
    • ReflectionFunction::isDisabled — Vérifie si une fonction est désactivée
    • ReflectionFunction::__toString — Récupère une représentation textuelle
  • ReflectionFunctionAbstract — La classe ReflectionFunctionAbstract
    • ReflectionFunctionAbstract::__clone — Clone une fonction
    • ReflectionFunctionAbstract::getClosureScopeClass — Retourne le contexte associé à la closure
    • ReflectionFunctionAbstract::getClosureThis — Retourne le pointeur lié à la fermeture
    • ReflectionFunctionAbstract::getDocComment — Récupère un commentaire
    • ReflectionFunctionAbstract::getEndLine — Récupère le numéro de la dernière ligne
    • ReflectionFunctionAbstract::getExtension — Récupère les informations d'une extension
    • ReflectionFunctionAbstract::getExtensionName — Récupère le nom de l'extension
    • ReflectionFunctionAbstract::getFileName — Récupère le nom du fichier
    • ReflectionFunctionAbstract::getName — Récupère le nom d'une fonction
    • ReflectionFunctionAbstract::getNamespaceName — Récupère l'espace de noms
    • ReflectionFunctionAbstract::getNumberOfParameters — Récupère le nombre de paramètres
    • ReflectionFunctionAbstract::getNumberOfRequiredParameters — Récupère le nombre de paramètres requis
    • ReflectionFunctionAbstract::getParameters — Récupère les paramètres
    • ReflectionFunctionAbstract::getReturnType — Gets the specified return type of a function
    • ReflectionFunctionAbstract::getShortName — Récupère le nom court d'une fonction
    • ReflectionFunctionAbstract::getStartLine — Récupère le numéro de ligne de départ
    • ReflectionFunctionAbstract::getStaticVariables — Récupère les variables statiques
    • ReflectionFunctionAbstract::hasReturnType — Checks if the function has a specified return type
    • ReflectionFunctionAbstract::inNamespace — Vérifie si une fonction est dans un espace de noms
    • ReflectionFunctionAbstract::isClosure — Vérifie si c'est une fermeture
    • ReflectionFunctionAbstract::isDeprecated — Vérifie si la fonction est obsolète
    • ReflectionFunctionAbstract::isGenerator — Vérifie si la fonction est un générateur
    • ReflectionFunctionAbstract::isInternal — Vérifie si la fonction est une fonction interne
    • ReflectionFunctionAbstract::isUserDefined — Vérifie si la fonction est définie dans l'espace utilisateur
    • ReflectionFunctionAbstract::isVariadic — Vérifie si la fonction est variadique
    • ReflectionFunctionAbstract::returnsReference — Vérifie si la fonction retourne une référence
    • ReflectionFunctionAbstract::__toString — Récupère une représentation textuelle
  • ReflectionMethod — La classe ReflectionMethod
    • ReflectionMethod::__construct — Construit un nouvel objet ReflectionMethod
    • ReflectionMethod::export — Exportation d'une méthode de reflection
    • ReflectionMethod::getClosure — Retourne une fermeture créée dynamiquement pour la méthode
    • ReflectionMethod::getDeclaringClass — Récupère la déclaration de la classe de la méthode réléchie
    • ReflectionMethod::getModifiers — Récupère les modificateurs de la méthode
    • ReflectionMethod::getPrototype — Récupère le prototype de la méthode (s'il existe)
    • ReflectionMethod::invoke — Invoque
    • ReflectionMethod::invokeArgs — Invoque les arguments
    • ReflectionMethod::isAbstract — Vérifie si la méthode est abstraite
    • ReflectionMethod::isConstructor — Vérifie si la méthode est un constructeur
    • ReflectionMethod::isDestructor — Vérifie si la méthode est un destructeur
    • ReflectionMethod::isFinal — Vérifie si la méthode est finale
    • ReflectionMethod::isPrivate — Vérifie si la méthode est privée
    • ReflectionMethod::isProtected — Vérifie si la méthode est protégée
    • ReflectionMethod::isPublic — Vérifie si la méthode est publique
    • ReflectionMethod::isStatic — Vérifie si la méthode est statique
    • ReflectionMethod::setAccessible — Définit l'accessibilité de la méthode
    • ReflectionMethod::__toString — Retourne une représentation textuelle de la méthode
  • ReflectionObject — La classe ReflectionObject
    • ReflectionObject::__construct — Construit un nouvel objet ReflectionObject
    • ReflectionObject::export — Exportation
  • ReflectionParameter — La classe ReflectionParameter
    • ReflectionParameter::allowsNull — Vérifie si la valeur NULL est autorisée comme valeur du paramètre
    • ReflectionParameter::canBePassedByValue — Vérifie si le paramètre peut être passé par valeur
    • ReflectionParameter::__clone — Clonage
    • ReflectionParameter::__construct — Constructeur
    • ReflectionParameter::export — Exportation
    • ReflectionParameter::getClass — Récupère la classe de typage d'objets
    • ReflectionParameter::getDeclaringClass — Récupère la classe déclarante
    • ReflectionParameter::getDeclaringFunction — Récupère la fonction déclarante
    • ReflectionParameter::getDefaultValue — Récupère la valeur par défaut du paramètre
    • ReflectionParameter::getDefaultValueConstantName — Retourne le nom de la constante de la valeur par défaut si la valeur est une constante, NULL sinon
    • ReflectionParameter::getName — Récupère le nom du paramètre
    • ReflectionParameter::getPosition — Récupère la position d'un paramètre
    • ReflectionParameter::getType — Gets a parameter's type
    • ReflectionParameter::hasType — Checks if parameter has a type
    • ReflectionParameter::isArray — Vérifie si le paramètre attend un tableau
    • ReflectionParameter::isCallable — Vérifie si le paramètre est de type callable
    • ReflectionParameter::isDefaultValueAvailable — Vérifie si une valeur par défaut est disponible pour le paramètre
    • ReflectionParameter::isDefaultValueConstant — Vérifie si la valeur par défaut du paramètre est une constante
    • ReflectionParameter::isOptional — Vérifie si le paramètre est optionnel
    • ReflectionParameter::isPassedByReference — Vérifie si le paramètre est passé par référence
    • ReflectionParameter::isVariadic — Vérifie si le paramètre est variadique
    • ReflectionParameter::__toString — Récupère une représentation textuelle
  • ReflectionProperty — La classe ReflectionProperty
    • ReflectionProperty::__clone — Clonage
    • ReflectionProperty::__construct — Construit un nouvel objet ReflectionProperty
    • ReflectionProperty::export — Exporte
    • ReflectionProperty::getDeclaringClass — Récupère la classe déclarante
    • ReflectionProperty::getDocComment — Récupère un commentaire
    • ReflectionProperty::getModifiers — Récupère les modificateurs
    • ReflectionProperty::getName — Récupère le nom de la proriété
    • ReflectionProperty::getValue — Récupère la valeur de la propriété
    • ReflectionProperty::isDefault — Vérifie si la propriété est celle par défaut
    • ReflectionProperty::isPrivate — Vérifie si la propriété est privée
    • ReflectionProperty::isProtected — Vérifie si la propriété est protégée
    • ReflectionProperty::isPublic — Vérifie si la propriété est publique
    • ReflectionProperty::isStatic — Vérifie si la propriété est statique
    • ReflectionProperty::setAccessible — Définit l'accessibilité de la propriété
    • ReflectionProperty::setValue — Définit la valeur de la propriété
    • ReflectionProperty::__toString — Récupère une représentation textuelle
  • ReflectionType — The ReflectionType class
    • ReflectionType::allowsNull — Checks if null is allowed
    • ReflectionType::isBuiltin — Checks if it is a built-in type
    • ReflectionType::__toString — To string
  • ReflectionGenerator — The ReflectionGenerator class
    • ReflectionGenerator::__construct — Constructs a ReflectionGenerator object
    • ReflectionGenerator::getExecutingFile — Gets the file name of the currently executing generator
    • ReflectionGenerator::getExecutingGenerator — Gets the executing Generator object
    • ReflectionGenerator::getExecutingLine — Gets the currently executing line of the generator
    • ReflectionGenerator::getFunction — Gets the function name of the generator
    • ReflectionGenerator::getThis — Gets the $this value of the generator
    • ReflectionGenerator::getTrace — Gets the trace of the executing generator
  • Reflector — L'interface Reflector
    • Reflector::export — Export
    • Reflector::__toString — Conversion en chaîne de caractères
  • ReflectionException — La classe ReflectionException


Introduction

PHP 5 fournit une API Reflection complète qui permet de faire du reverse-engineer sur les classes, les interfaces, les fonctions, les méthodes et les extensions. De plus, l'API Reflection offre la possibilité de récupérer les commentaires des fonctions, des classes et des méthodes.

Notez que certaines parties de l'API interne ne fournissent pas le code nécessaire afin de faire fonctionner l'extension Reflection. I.e., une classe PHP interne peut manquer de données de réflection pour les propriétés. Ces quelques cas sont considérés comme des bogues, cependant, ils doivent être trouvés et corrigés.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • Reflection
  • Constantes pré-définies

Constantes pré-définies

Chaque classe décrit ses propres constantes.


Exemples

Plusieurs exemples existent dans la documentation Reflection, typiquement, dans la documentation __construct, pour chaque classe.

Exemple #1 Exemple avec Reflection depuis un Shell (un Terminal)

$ php --rf strlen
$ php --rc finfo
$ php --re json
$ php --ri dom

L'exemple ci-dessus va afficher quelque chose de similaire à :

Function [ <internal:Core> function strlen ] {

  - Parameters [1] {
    Parameter #0 [ <required> $str ]
  }
}

Class [ <internal:fileinfo> class finfo ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [4] {
    Method [ <internal:fileinfo, ctor> public method finfo ] {

      - Parameters [2] {
        Parameter #0 [ <optional> $options ]
        Parameter #1 [ <optional> $arg ]
      }
    }

    Method [ <internal:fileinfo> public method set_flags ] {

      - Parameters [1] {
        Parameter #0 [ <required> $options ]
      }
    }

    Method [ <internal:fileinfo> public method file ] {

      - Parameters [3] {
        Parameter #0 [ <required> $filename ]
        Parameter #1 [ <optional> $options ]
        Parameter #2 [ <optional> $context ]
      }
    }

    Method [ <internal:fileinfo> public method buffer ] {

      - Parameters [3] {
        Parameter #0 [ <required> $string ]
        Parameter #1 [ <optional> $options ]
        Parameter #2 [ <optional> $context ]
      }
    }
  }
}

Extension [ <persistent> extension #23 json version 1.2.1 ] {

  - Constants [10] {
    Constant [ integer JSON_HEX_TAG ] { 1 }
    Constant [ integer JSON_HEX_AMP ] { 2 }
    Constant [ integer JSON_HEX_APOS ] { 4 }
    Constant [ integer JSON_HEX_QUOT ] { 8 }
    Constant [ integer JSON_FORCE_OBJECT ] { 16 }
    Constant [ integer JSON_ERROR_NONE ] { 0 }
    Constant [ integer JSON_ERROR_DEPTH ] { 1 }
    Constant [ integer JSON_ERROR_STATE_MISMATCH ] { 2 }
    Constant [ integer JSON_ERROR_CTRL_CHAR ] { 3 }
    Constant [ integer JSON_ERROR_SYNTAX ] { 4 }
  }

  - Functions {
    Function [ <internal:json> function json_encode ] {

      - Parameters [2] {
        Parameter #0 [ <required> $value ]
        Parameter #1 [ <optional> $options ]
      }
    }
    Function [ <internal:json> function json_decode ] {

      - Parameters [3] {
        Parameter #0 [ <required> $json ]
        Parameter #1 [ <optional> $assoc ]
        Parameter #2 [ <optional> $depth ]
      }
    }
    Function [ <internal:json> function json_last_error ] {

      - Parameters [0] {
      }
    }
  }
}

dom

DOM/XML => enabled
DOM/XML API Version => 20031129
libxml Version => 2.7.3
HTML Support => enabled
XPath Support => enabled
XPointer Support => enabled
Schema Support => enabled
RelaxNG Support => enabled


Étendre la classe

Si vous voulez créer une version spéciale de la classe interne (par exemple, pour créer une portion HTML mis en évidence lors de l'export, pour avoir un accès facile aux variables des membres au lieu des variables des méthodes, ou bien pour avoir des méthodes utiles), vous pouvez étendre la classe principale.

Exemple #1 Étendre les classes internes

<?php
/**
 * Mon classe Reflection_Method
 */
class My_Reflection_Method extends ReflectionMethod
{
    public $visibility = array();

    public function __construct($o, $m)
    {
        parent::__construct($o, $m);
        $this->visibility = Reflection::getModifierNames($this->getModifiers());
    }
}

/**
 * Demo classe #1
 *
 */
class T {
    protected function x() {}
}

/**
 * Demo classe #2
 *
 */
class U extends T {
    function x() {}
}

// Affichage des informations
var_dump(new My_Reflection_Method('U', 'x'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(My_Reflection_Method)#1 (3) {
  ["visibility"]=>
  array(1) {
    [0]=>
    string(6) "public"
  }
  ["name"]=>
  string(1) "x"
  ["class"]=>
  string(1) "U"
}
Attention

Si vous écrasez le constructeur, souvenez-vous d'appeler le constructeur parent avant d'insérer le moindre code. Si vous ne le faîtes pas, voici ce qui arrivera : Fatal error: Internal error: Failed to retrieve the reflection object


La classe Reflection

(PHP 5, PHP 7)

Introduction

La classe reflection.

Synopsis de la classe

Reflection {
/* Méthodes */
public static string export ( Reflector $reflector [, bool $return = false ] )
public static array getModifierNames ( int $modifiers )
}

Sommaire

  • Reflection::export — Exportes
  • Reflection::getModifierNames — Récupère le nom d'un modificateur


Exportes

  • « Reflection
  • Reflection::getModifierNames »
  • PHP Manual
  • Reflection
  • Exportes

Reflection::export

(PHP 5, PHP 7)

Reflection::export — Exportes

Description

public static string Reflection::export ( Reflector $reflector [, bool $return = false ] )

Exportes un objet Reflection.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

reflector

La réflection à exporter.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Si le paramètre return est défini à TRUE, l'export sera retourné sous la forme d'une chaîne de caractères, sinon, NULL sera retourné.

Voir aussi

  • Reflection::getModifierNames() - Récupère le nom d'un modificateur


Récupère le nom d'un modificateur

  • « Reflection::export
  • ReflectionClass »
  • PHP Manual
  • Reflection
  • Récupère le nom d'un modificateur

Reflection::getModifierNames

(PHP 5, PHP 7)

Reflection::getModifierNames — Récupère le nom d'un modificateur

Description

public static array Reflection::getModifierNames ( int $modifiers )

Récupère le nom d'un modificateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

modifiers

Le modificateur à récupérer, sous forme numérique.

Valeurs de retour

Un tableau de noms de modificateurs.

Voir aussi

  • Reflection::export() - Exportes


La classe ReflectionClass

(PHP 5, PHP 7)

Introduction

La classe ReflectionClass rapporte des informations sur une classe.

Synopsis de la classe

ReflectionClass implements Reflector {
/* Constantes */
const integer IS_IMPLICIT_ABSTRACT = 16 ;
const integer IS_EXPLICIT_ABSTRACT = 32 ;
const integer IS_FINAL = 64 ;
/* Propriétés */
public $name ;
/* Méthodes */
public __construct ( mixed $argument )
public static string export ( mixed $argument [, bool $return = false ] )
public mixed getConstant ( string $name )
public array getConstants ( void )
public ReflectionMethod getConstructor ( void )
public array getDefaultProperties ( void )
public string getDocComment ( void )
public int getEndLine ( void )
public ReflectionExtension getExtension ( void )
public string getExtensionName ( void )
public string getFileName ( void )
public array getInterfaceNames ( void )
public array getInterfaces ( void )
public ReflectionMethod getMethod ( string $name )
public array getMethods ([ int $filter ] )
public int getModifiers ( void )
public string getName ( void )
public string getNamespaceName ( void )
public object getParentClass ( void )
public array getProperties ([ int $filter ] )
public ReflectionProperty getProperty ( string $name )
public string getShortName ( void )
public int getStartLine ( void )
public array getStaticProperties ( void )
public mixed getStaticPropertyValue ( string $name [, mixed &$def_value ] )
public array getTraitAliases ( void )
public array getTraitNames ( void )
public array getTraits ( void )
public bool hasConstant ( string $name )
public bool hasMethod ( string $name )
public bool hasProperty ( string $name )
public bool implementsInterface ( string $interface )
public bool inNamespace ( void )
public bool isAbstract ( void )
public bool isAnonymous ( void )
public bool isCloneable ( void )
public bool isFinal ( void )
public bool isInstance ( object $object )
public bool isInstantiable ( void )
public bool isInterface ( void )
public bool isInternal ( void )
public bool isIterateable ( void )
public bool isSubclassOf ( string $class )
public bool isTrait ( void )
public bool isUserDefined ( void )
public object newInstance ( mixed $args [, mixed $... ] )
public object newInstanceArgs ([ array $args ] )
public object newInstanceWithoutConstructor ( void )
public void setStaticPropertyValue ( string $name , string $value )
public string __toString ( void )
}

Propriétés

name

Nom de la classe. En lecture seule, émets une exception de type ReflectionException si l'on tente d'y écrire.

Constantes pré-définies

Modificateurs de ReflectionClass

ReflectionClass::IS_IMPLICIT_ABSTRACT

Indique si la classe est abstraite en raison du fait qu'elle contient quelques méthodes abstraites.

ReflectionClass::IS_EXPLICIT_ABSTRACT

Indique si la classe est abstraite en raison de sa définition.

ReflectionClass::IS_FINAL

Indique si la classe est finale.

Sommaire

  • ReflectionClass::__construct — Construit une ReflectionClass
  • ReflectionClass::export — Exporte une classe
  • ReflectionClass::getConstant — Récupère une constante
  • ReflectionClass::getConstants — Récupère les constantes
  • ReflectionClass::getConstructor — Récupère le constructeur d'une classe
  • ReflectionClass::getDefaultProperties — Récupère les propriétés par défaut
  • ReflectionClass::getDocComment — Récupère les commentaires
  • ReflectionClass::getEndLine — Récupère la fin d'une ligne
  • ReflectionClass::getExtension — Récupère un objet ReflectionExtension pour l'extension définissant la classe
  • ReflectionClass::getExtensionName — Récupère le nom de l'extension qui définit la classe
  • ReflectionClass::getFileName — Récupère le nom du fichier déclarant la classe considérée
  • ReflectionClass::getInterfaceNames — Récupère les noms des interfaces
  • ReflectionClass::getInterfaces — Récupère les interfaces
  • ReflectionClass::getMethod — Récupère un objet ReflectionMethod pour une méthode d'une classe
  • ReflectionClass::getMethods — Récupère un tableau de méthodes
  • ReflectionClass::getModifiers — Récupère les modificateurs
  • ReflectionClass::getName — Récupère le nom de la classe
  • ReflectionClass::getNamespaceName — Récupère l'espace de noms
  • ReflectionClass::getParentClass — Récupère la classe parente
  • ReflectionClass::getProperties — Récupère les propriétés
  • ReflectionClass::getProperty — Récupère une ReflectionProperty pour une propriété d'une classe
  • ReflectionClass::getShortName — Récupère le nom court d'une classe
  • ReflectionClass::getStartLine — Récupère le numéro de ligne de départ
  • ReflectionClass::getStaticProperties — Récupère les propriétés statiques
  • ReflectionClass::getStaticPropertyValue — Récupère la valeur d'une propriété statique
  • ReflectionClass::getTraitAliases — Retourne un tableau des alias du trait
  • ReflectionClass::getTraitNames — Retourne un tableau de noms des traits utilisés par cette classe
  • ReflectionClass::getTraits — Retourne un tableau des traits utilisés par cette classe
  • ReflectionClass::hasConstant — Vérifie si une constante est définie
  • ReflectionClass::hasMethod — Vérifie si une méthode est définie
  • ReflectionClass::hasProperty — Vérifie si une propriété est définie
  • ReflectionClass::implementsInterface — Vérifie si une classe implémente une interface
  • ReflectionClass::inNamespace — Vérifie si une classe est définie dans un espace de noms
  • ReflectionClass::isAbstract — Vérifie si une classe est abstraite
  • ReflectionClass::isAnonymous — Checks if class is anonymous
  • ReflectionClass::isCloneable — Renseigne à propos de la propriété de duplication de la classe
  • ReflectionClass::isFinal — Vérifie si une classe est finale
  • ReflectionClass::isInstance — Vérifie si une classe est une instance d'une autre classe
  • ReflectionClass::isInstantiable — Vérifie si une classe est instanciable
  • ReflectionClass::isInterface — Vérifie si une classe est une interface
  • ReflectionClass::isInternal — Vérifie si une classe est définie comme interne par une extension
  • ReflectionClass::isIterateable — Vérifie si la classe est itérable
  • ReflectionClass::isSubclassOf — Vérifie si la classe est une sous-classe
  • ReflectionClass::isTrait — Renseigne s'il s'agit d'un trait
  • ReflectionClass::isUserDefined — Vérifie si une classe a été définie dans l'espace utilisateur
  • ReflectionClass::newInstance — Créer une nouvelle instance de la classe en utilisant les arguments fournis
  • ReflectionClass::newInstanceArgs — Créer une nouvelle instance en utilisant les arguments fournis
  • ReflectionClass::newInstanceWithoutConstructor — Crée une nouvelle instance de la classe sans invoquer le constructeur
  • ReflectionClass::setStaticPropertyValue — Définit la valeur d'une propriété statiques
  • ReflectionClass::__toString — Crée une représentation textuelle de l'objet


Construit une ReflectionClass

  • « ReflectionClass
  • ReflectionClass::export »
  • PHP Manual
  • ReflectionClass
  • Construit une ReflectionClass

ReflectionClass::__construct

(PHP 5, PHP 7)

ReflectionClass::__construct — Construit une ReflectionClass

Description

public ReflectionClass::__construct ( mixed $argument )

Construit un nouvel objet ReflectionClass.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

argument

Soit une chaîne de caractères contenant le nom de la classe à refléter, ou un objet.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Utilisation simple de ReflectionClass

<?php
Reflection::export(new ReflectionClass('Exception'));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Class [ <internal:Core> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
    Property [ <default> private $previous ]
  }

  - Methods [10] {
    Method [ <internal:Core> final private method __clone ] {
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> $message ]
        Parameter #1 [ <optional> $code ]
        Parameter #2 [ <optional> $previous ]
      }
    }

    Method [ <internal:Core> final public method getMessage ] {
    }

    Method [ <internal:Core> final public method getCode ] {
    }

    Method [ <internal:Core> final public method getFile ] {
    }

    Method [ <internal:Core> final public method getLine ] {
    }

    Method [ <internal:Core> final public method getTrace ] {
    }

    Method [ <internal:Core> final public method getPrevious ] {
    }

    Method [ <internal:Core> final public method getTraceAsString ] {
    }

    Method [ <internal:Core> public method __toString ] {
    }
  }
}

Voir aussi

  • ReflectionObject::__construct() - Construit un nouvel objet ReflectionObject
  • Les constructeurs


Exporte une classe

  • « ReflectionClass::__construct
  • ReflectionClass::getConstant »
  • PHP Manual
  • ReflectionClass
  • Exporte une classe

ReflectionClass::export

(PHP 5, PHP 7)

ReflectionClass::export — Exporte une classe

Description

public static string ReflectionClass::export ( mixed $argument [, bool $return = false ] )

Exporte une classe reflétée.

Liste de paramètres

argument

La réflection à exporter.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Si le paramètre return est défini à TRUE, l'export sera retourné sous la forme d'une chaîne de caractères, sinon, NULL sera retourné.

Exemples

Exemple #1 Utilisation basique de ReflectionClass::export()

<?php
class Apple {
    public $var1;
    public $var2 = 'Orange';

    public function type() {
        return 'Apple';
    }
}
ReflectionClass::export('Apple');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Class [ <user> class Apple ] {
  @@ php shell code 1-8

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [2] {
    Property [ <default> public $var1 ]
    Property [ <default> public $var2 ]
  }

  - Methods [1] {
    Method [ <user> public method type ] {
      @@ php shell code 5 - 7
    }
  }
}

Voir aussi

  • ReflectionClass::getName() - Récupère le nom de la classe


Récupère une constante

  • « ReflectionClass::export
  • ReflectionClass::getConstants »
  • PHP Manual
  • ReflectionClass
  • Récupère une constante

ReflectionClass::getConstant

(PHP 5, PHP 7)

ReflectionClass::getConstant — Récupère une constante

Description

public mixed ReflectionClass::getConstant ( string $name )

Récupère une constante définie.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Nom de la constante

Valeurs de retour

Valeur de la constante.

Voir aussi

  • ReflectionClass::getConstants() - Récupère les constantes


Récupère les constantes

  • « ReflectionClass::getConstant
  • ReflectionClass::getConstructor »
  • PHP Manual
  • ReflectionClass
  • Récupère les constantes

ReflectionClass::getConstants

(PHP 5, PHP 7)

ReflectionClass::getConstants — Récupère les constantes

Description

public array ReflectionClass::getConstants ( void )

Récupère les constantes définies d'une classe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de constantes. Le nom des constantes sont dans les clés, la valeur des constantes dans les valeurs.

Voir aussi

  • ReflectionClass::getConstant() - Récupère une constante


Récupère le constructeur d'une classe

  • « ReflectionClass::getConstants
  • ReflectionClass::getDefaultProperties »
  • PHP Manual
  • ReflectionClass
  • Récupère le constructeur d'une classe

ReflectionClass::getConstructor

(PHP 5, PHP 7)

ReflectionClass::getConstructor — Récupère le constructeur d'une classe

Description

public ReflectionMethod ReflectionClass::getConstructor ( void )

Récupère le constructeur d'une classe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionMethod reflétant le constructeur de la classe, ou NULL si la classe n'a pas de constructeur.

Exemples

Exemple #1 Exemple avec ReflectionClass::getConstructor()

<?php
$class = new ReflectionClass('ReflectionClass');
$constructor = $class->getConstructor();
var_dump($constructor);
?>

L'exemple ci-dessus va afficher :

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(11) "__construct"
  ["class"]=>
  string(15) "ReflectionClass"
}

Voir aussi

  • ReflectionClass::getName() - Récupère le nom de la classe


Récupère les propriétés par défaut

  • « ReflectionClass::getConstructor
  • ReflectionClass::getDocComment »
  • PHP Manual
  • ReflectionClass
  • Récupère les propriétés par défaut

ReflectionClass::getDefaultProperties

(PHP 5, PHP 7)

ReflectionClass::getDefaultProperties — Récupère les propriétés par défaut

Description

public array ReflectionClass::getDefaultProperties ( void )

Récupère les propriétés par défaut d'une classe (incluant l'héritage).

Note:

Cette méthode ne fonctionne que pour les propriétés statiques lorsqu'utilisées sur des classes internes. La valeur par défaut d'une propriété de classe statique ne peut pas être surveillée lors de l'utilisation de cette méthode sur des classes définies par l'utilisateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un array des propriétés par défaut dont la clé est le nom de la propriété et la valeur est la valeur par défaut de la propriété ou NULL si elle n'en n'a pas. La fonction ne fait pas la distinction entre les propriétés statiques et non statiques et ne prend pas en compte la visibilité.

Exemples

Exemple #1 Exemple ReflectionClass::getDefaultProperties()

<?php
class Bar {
    protected $inheritedProperty = 'inheritedDefault';
}

class Foo extends Bar {
    public $property = 'propertyDefault';
    private $privateProperty = 'privatePropertyDefault';
    public static $staticProperty = 'staticProperty';
    public $defaultlessProperty;
}

$reflectionClass = new ReflectionClass('Foo');
var_dump($reflectionClass->getDefaultProperties());
?>

L'exemple ci-dessus va afficher :

array(5) {
   ["staticProperty"]=>
   string(14) "staticProperty"
   ["property"]=>
   string(15) "propertyDefault"
   ["privateProperty"]=>
   string(22) "privatePropertyDefault"
   ["defaultlessProperty"]=>
   NULL
   ["inheritedProperty"]=>
   string(16) "inheritedDefault"
}

Voir aussi

  • ReflectionClass::getProperties() - Récupère les propriétés
  • ReflectionClass::getStaticProperties() - Récupère les propriétés statiques
  • ReflectionClass::getProperty() - Récupère une ReflectionProperty pour une propriété d'une classe


Récupère les commentaires

  • « ReflectionClass::getDefaultProperties
  • ReflectionClass::getEndLine »
  • PHP Manual
  • ReflectionClass
  • Récupère les commentaires

ReflectionClass::getDocComment

(PHP 5 >= 5.1.0, PHP 7)

ReflectionClass::getDocComment — Récupère les commentaires

Description

public string ReflectionClass::getDocComment ( void )

Récupère les commentaires depuis une classe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le commentaire, si il existe, FALSE sinon.

Exemples

Exemple #1 Exemple avec ReflectionClass::getDocComment()

<?php
/**
* Une classe de test
*
* @param  foo bar
* @return baz
*/
class TestClass { }

$rc = new ReflectionClass('TestClass');
var_dump($rc->getDocComment())
?>

L'exemple ci-dessus va afficher :

string(55) "/**
* Une classe de test
*
* @param  foo bar
* @return baz
*/"

Voir aussi

  • ReflectionClass::getName() - Récupère le nom de la classe


Récupère la fin d'une ligne

  • « ReflectionClass::getDocComment
  • ReflectionClass::getExtension »
  • PHP Manual
  • ReflectionClass
  • Récupère la fin d'une ligne

ReflectionClass::getEndLine

(PHP 5, PHP 7)

ReflectionClass::getEndLine — Récupère la fin d'une ligne

Description

public int ReflectionClass::getEndLine ( void )

Récupère le numéro de la dernière ligne depuis une définition de classe, définie par l'utilisateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le numéro de la dernière ligne depuis une définition de classe, définie par l'utilisateur, ou FALSE s'il est inconnu.

Exemples

Exemple #1 Exemple avec ReflectionClass::getEndLine()

<?php
// Classe de test
class TestClass { }

$rc = new ReflectionClass('TestClass');

echo $rc->getEndLine();
?>

L'exemple ci-dessus va afficher :

3

Voir aussi

  • ReflectionClass::getStartLine() - Récupère le numéro de ligne de départ


Récupère un objet ReflectionExtension pour l'extension définissant la classe

  • « ReflectionClass::getEndLine
  • ReflectionClass::getExtensionName »
  • PHP Manual
  • ReflectionClass
  • Récupère un objet ReflectionExtension pour l'extension définissant la classe

ReflectionClass::getExtension

(PHP 5, PHP 7)

ReflectionClass::getExtension — Récupère un objet ReflectionExtension pour l'extension définissant la classe

Description

public ReflectionExtension ReflectionClass::getExtension ( void )

Récupère un objet ReflectionExtension pour l'extension qui définit la classe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionExtension représentant l'extension qui définit la classe, ou NULL pour les classes définies par l'utilisateur.

Exemples

Exemple #1 Exemple avec ReflectionClass::getExtension()

<?php
$class = new ReflectionClass('ReflectionClass');
$extension = $class->getExtension();
var_dump($extension);
?>

L'exemple ci-dessus va afficher :

object(ReflectionExtension)#2 (1) {
  ["name"]=>
  string(10) "Reflection"
}

Voir aussi

  • ReflectionClass::getExtensionName() - Récupère le nom de l'extension qui définit la classe


Récupère le nom de l'extension qui définit la classe

  • « ReflectionClass::getExtension
  • ReflectionClass::getFileName »
  • PHP Manual
  • ReflectionClass
  • Récupère le nom de l'extension qui définit la classe

ReflectionClass::getExtensionName

(PHP 5, PHP 7)

ReflectionClass::getExtensionName — Récupère le nom de l'extension qui définit la classe

Description

public string ReflectionClass::getExtensionName ( void )

Récupère le nom de l'extension qui définit la classe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de l'extension qui définit la classe, ou FALSE pour les classes définies par l'utilisateur.

Exemples

Exemple #1 Exemple avec ReflectionClass::getExtensionName()

<?php
$class = new ReflectionClass('ReflectionClass');
$extension = $class->getExtensionName();
var_dump($extension);
?>

L'exemple ci-dessus va afficher :

string(10) "Reflection"

Voir aussi

  • ReflectionClass::getExtension() - Récupère un objet ReflectionExtension pour l'extension définissant la classe


Récupère le nom du fichier déclarant la classe considérée

  • « ReflectionClass::getExtensionName
  • ReflectionClass::getInterfaceNames »
  • PHP Manual
  • ReflectionClass
  • Récupère le nom du fichier déclarant la classe considérée

ReflectionClass::getFileName

(PHP 5, PHP 7)

ReflectionClass::getFileName — Récupère le nom du fichier déclarant la classe considérée

Description

public string ReflectionClass::getFileName ( void )

Récupère le nom du fichier déclarant la classe considérée

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Récupère le nom du fichier déclarant la classe considérée. Si la classe est déclarée dans le coeur de PHP ou dans une extension PHP, FALSE sera retourné.

Voir aussi

  • ReflectionClass::getExtensionName() - Récupère le nom de l'extension qui définit la classe


Récupère les noms des interfaces

  • « ReflectionClass::getFileName
  • ReflectionClass::getInterfaces »
  • PHP Manual
  • ReflectionClass
  • Récupère les noms des interfaces

ReflectionClass::getInterfaceNames

(PHP 5 >= 5.2.0, PHP 7)

ReflectionClass::getInterfaceNames — Récupère les noms des interfaces

Description

public array ReflectionClass::getInterfaceNames ( void )

Récupère les noms des interfaces.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau numérique dont les valeurs sont les noms des interfaces.

Exemples

Exemple #1 Exemple avec ReflectionClass::getInterfaceNames()

<?php
interface Foo { }

interface Bar { }

class Baz implements Foo, Bar { }

$rc1 = new ReflectionClass("Baz");

print_r($rc1->getInterfaceNames());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Foo
    [1] => Bar
)

Voir aussi

  • ReflectionClass::getInterfaces() - Récupère les interfaces


Récupère les interfaces

  • « ReflectionClass::getInterfaceNames
  • ReflectionClass::getMethod »
  • PHP Manual
  • ReflectionClass
  • Récupère les interfaces

ReflectionClass::getInterfaces

(PHP 5, PHP 7)

ReflectionClass::getInterfaces — Récupère les interfaces

Description

public array ReflectionClass::getInterfaces ( void )

Récupère les interfaces.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau associatif contenant les interfaces, dont les clés sont les noms des interfaces, et les valeurs, les objets ReflectionClass.

Exemples

Exemple #1 >Exemple avec ReflectionClass::getInterfaces()

<?php
interface Foo { }

interface Bar { }

class Baz implements Foo, Bar { }

$rc1 = new ReflectionClass("Baz");

print_r($rc1->getInterfaces());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [Foo] => ReflectionClass Object
        (
            [name] => Foo
        )

    [Bar] => ReflectionClass Object
        (
            [name] => Bar
        )

)

Voir aussi

  • ReflectionClass::getInterfaceNames() - Récupère les noms des interfaces


Récupère un objet ReflectionMethod pour une méthode d'une classe

  • « ReflectionClass::getInterfaces
  • ReflectionClass::getMethods »
  • PHP Manual
  • ReflectionClass
  • Récupère un objet ReflectionMethod pour une méthode d'une classe

ReflectionClass::getMethod

(PHP 5, PHP 7)

ReflectionClass::getMethod — Récupère un objet ReflectionMethod pour une méthode d'une classe

Description

public ReflectionMethod ReflectionClass::getMethod ( string $name )

Récupère un objet ReflectionMethod pour une méthode d'une classe.

Liste de paramètres

name

Le nom de la méthode à refléter.

Valeurs de retour

Un objet ReflectionMethod.

Erreurs / Exceptions

Une exception ReflectionException si la méthode n'existe pas.

Exemples

Exemple #1 Exemple avec ReflectionClass::getMethod()

<?php
$class = new ReflectionClass('ReflectionClass');
$method = $class->getMethod('getMethod');
var_dump($method);
?>

L'exemple ci-dessus va afficher :

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(9) "getMethod"
  ["class"]=>
  string(15) "ReflectionClass"
}

Voir aussi

  • ReflectionClass::getMethods() - Récupère un tableau de méthodes


Récupère un tableau de méthodes

  • « ReflectionClass::getMethod
  • ReflectionClass::getModifiers »
  • PHP Manual
  • ReflectionClass
  • Récupère un tableau de méthodes

ReflectionClass::getMethods

(PHP 5, PHP 7)

ReflectionClass::getMethods — Récupère un tableau de méthodes

Description

public array ReflectionClass::getMethods ([ int $filter ] )

Récupère un tableau de méthodes d'une classe.

Liste de paramètres

filter

Filtre les résultats pour inclure uniquement les méthodes avec certains attributs. Par défaut, aucun filtrage.

Une combinaison des constantes
ReflectionMethod::IS_STATIC,
ReflectionMethod::IS_PUBLIC,
ReflectionMethod::IS_PROTECTED,
ReflectionMethod::IS_PRIVATE,
ReflectionMethod::IS_ABSTRACT et
ReflectionMethod::IS_FINAL.

Valeurs de retour

Un tableau d'objets ReflectionMethod reflétant chaque méthode.

Exemples

Exemple #1 Exemple avec ReflectionClass::getMethods()

<?php
class Apple {
    public function firstMethod() { }
    final protected function secondMethod() { }
    private static function thirdMethod() { }
}

$class = new ReflectionClass('Apple');
$methods = $class->getMethods();
var_dump($methods);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  &object(ReflectionMethod)#2 (2) {
    ["name"]=>
    string(11) "firstMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [1]=>
  &object(ReflectionMethod)#3 (2) {
    ["name"]=>
    string(12) "secondMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [2]=>
  &object(ReflectionMethod)#4 (2) {
    ["name"]=>
    string(11) "thirdMethod"
    ["class"]=>
    string(5) "Apple"
  }
}

Exemple #2 Filtrage des résultats depuis la méthode ReflectionClass::getMethods()

<?php
class Apple {
    public function firstMethod() { }
    final protected function secondMethod() { }
    private static function thirdMethod() { }
}

$class = new ReflectionClass('Apple');
$methods = $class->getMethods(ReflectionMethod::IS_STATIC | ReflectionMethod::IS_FINAL);
var_dump($methods);
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  &object(ReflectionMethod)#2 (2) {
    ["name"]=>
    string(12) "secondMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [1]=>
  &object(ReflectionMethod)#3 (2) {
    ["name"]=>
    string(11) "thirdMethod"
    ["class"]=>
    string(5) "Apple"
  }
}

Voir aussi

  • ReflectionClass::getMethod() - Récupère un objet ReflectionMethod pour une méthode d'une classe


Récupère les modificateurs

  • « ReflectionClass::getMethods
  • ReflectionClass::getName »
  • PHP Manual
  • ReflectionClass
  • Récupère les modificateurs

ReflectionClass::getModifiers

(PHP 5, PHP 7)

ReflectionClass::getModifiers — Récupère les modificateurs

Description

public int ReflectionClass::getModifiers ( void )

Retourne un champ de bit représentant les modificateurs d'accès pour cette classe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un masque de bits de constantes de modificateurs.

Voir aussi

  • ReflectionClass::getProperties() - Récupère les propriétés


Récupère le nom de la classe

  • « ReflectionClass::getModifiers
  • ReflectionClass::getNamespaceName »
  • PHP Manual
  • ReflectionClass
  • Récupère le nom de la classe

ReflectionClass::getName

(PHP 5, PHP 7)

ReflectionClass::getName — Récupère le nom de la classe

Description

public string ReflectionClass::getName ( void )

Récupère le nom de la classe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de la classe.

Exemples

Exemple #1 Exemple avec ReflectionClass::getName()

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

L'exemple ci-dessus va afficher :

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Voir aussi

  • ReflectionClass::getNamespaceName() - Récupère l'espace de noms


Récupère l'espace de noms

  • « ReflectionClass::getName
  • ReflectionClass::getParentClass »
  • PHP Manual
  • ReflectionClass
  • Récupère l'espace de noms

ReflectionClass::getNamespaceName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionClass::getNamespaceName — Récupère l'espace de noms

Description

public string ReflectionClass::getNamespaceName ( void )

Récupère l'espace de noms.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'espace de noms.

Exemples

Exemple #1 Exemple avec ReflectionClass::getNamespaceName()

<?php
namespace A\B;

class Foo { }

$class = new \ReflectionClass('stdClass');

var_dump($class->inNamespace());
var_dump($class->getName());
var_dump($class->getNamespaceName());
var_dump($class->getShortName());

$class = new \ReflectionClass('A\\B\\Foo');

var_dump($class->inNamespace());
var_dump($class->getName());
var_dump($class->getNamespaceName());
var_dump($class->getShortName());
?>

L'exemple ci-dessus va afficher :

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Voir aussi

  • ReflectionClass::getParentClass() - Récupère la classe parente
  • Les espaces de noms


Récupère la classe parente

  • « ReflectionClass::getNamespaceName
  • ReflectionClass::getProperties »
  • PHP Manual
  • ReflectionClass
  • Récupère la classe parente

ReflectionClass::getParentClass

(PHP 5, PHP 7)

ReflectionClass::getParentClass — Récupère la classe parente

Description

public object ReflectionClass::getParentClass ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass.

Voir aussi

  • ReflectionClass::__construct() - Construit une ReflectionClass


Récupère les propriétés

  • « ReflectionClass::getParentClass
  • ReflectionClass::getProperty »
  • PHP Manual
  • ReflectionClass
  • Récupère les propriétés

ReflectionClass::getProperties

(PHP 5, PHP 7)

ReflectionClass::getProperties — Récupère les propriétés

Description

public array ReflectionClass::getProperties ([ int $filter ] )

Récupère les propriétés reflétées.

Liste de paramètres

filter

Le filtre, optionnel, pour filtrer les types de propriétés désirées. Ce filtre est configuré en utilisant les constantes ReflectionProperty, et par défaut, tous les types de propriétés sont retournés.

Valeurs de retour

Un tableau d'objets ReflectionProperty.

Exemples

Exemple #1 Exemple avec ReflectionClass::getProperties()

Cet exemple montre l'utilisation du paramètre optionnel filter, qui permet ici de filtrer les propriétés privées.

<?php
class Foo {
    public    $foo  = 1;
    protected $bar  = 2;
    private   $baz  = 3;
}

$foo = new Foo();

$reflect = new ReflectionClass($foo);
$props   = $reflect->getProperties(ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED);

foreach ($props as $prop) {
    print $prop->getName() . "\n";
}

var_dump($props);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

foo
bar
array(2) {
  [0]=>
  object(ReflectionProperty)#3 (2) {
    ["name"]=>
    string(3) "foo"
    ["class"]=>
    string(3) "Foo"
  }
  [1]=>
  object(ReflectionProperty)#4 (2) {
    ["name"]=>
    string(3) "bar"
    ["class"]=>
    string(3) "Foo"
  }
}

Voir aussi

  • ReflectionClass::getProperty() - Récupère une ReflectionProperty pour une propriété d'une classe
  • ReflectionProperty
  • Les constantes de modificateurs de ReflectionProperty


Récupère une ReflectionProperty pour une propriété d'une classe

  • « ReflectionClass::getProperties
  • ReflectionClass::getShortName »
  • PHP Manual
  • ReflectionClass
  • Récupère une ReflectionProperty pour une propriété d'une classe

ReflectionClass::getProperty

(PHP 5, PHP 7)

ReflectionClass::getProperty — Récupère une ReflectionProperty pour une propriété d'une classe

Description

public ReflectionProperty ReflectionClass::getProperty ( string $name )

Récupère une ReflectionProperty pour une propriété d'une classe.

Liste de paramètres

name

Le nom de la propriété.

Valeurs de retour

Un objet ReflectionProperty.

Exemples

Exemple #1 Exemple avec ReflectionClass::getProperty()

<?php
$class = new ReflectionClass('ReflectionClass');
$property = $class->getProperty('name');
var_dump($property);
?>

L'exemple ci-dessus va afficher :

object(ReflectionProperty)#2 (2) {
  ["name"]=>
  string(4) "name"
  ["class"]=>
  string(15) "ReflectionClass"
}

Voir aussi

  • ReflectionClass::getProperties() - Récupère les propriétés


Récupère le nom court d'une classe

  • « ReflectionClass::getProperty
  • ReflectionClass::getStartLine »
  • PHP Manual
  • ReflectionClass
  • Récupère le nom court d'une classe

ReflectionClass::getShortName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionClass::getShortName — Récupère le nom court d'une classe

Description

public string ReflectionClass::getShortName ( void )

Récupère le nom court d'une classe, c'est-à-dire, la partie sans l'espace de noms.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom court de la classe.

Exemples

Exemple #1 Exemple avec ReflectionClass::getShortName()

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

L'exemple ci-dessus va afficher :

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Voir aussi

  • ReflectionClass::getName() - Récupère le nom de la classe


Récupère le numéro de ligne de départ

  • « ReflectionClass::getShortName
  • ReflectionClass::getStaticProperties »
  • PHP Manual
  • ReflectionClass
  • Récupère le numéro de ligne de départ

ReflectionClass::getStartLine

(PHP 5, PHP 7)

ReflectionClass::getStartLine — Récupère le numéro de ligne de départ

Description

public int ReflectionClass::getStartLine ( void )

Récupère le numéro de ligne de départ.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le numéro de ligne de départ, sous la forme d'un entier.

Voir aussi

  • ReflectionClass::getEndLine() - Récupère la fin d'une ligne


Récupère les propriétés statiques

  • « ReflectionClass::getStartLine
  • ReflectionClass::getStaticPropertyValue »
  • PHP Manual
  • ReflectionClass
  • Récupère les propriétés statiques

ReflectionClass::getStaticProperties

(PHP 5, PHP 7)

ReflectionClass::getStaticProperties — Récupère les propriétés statiques

Description

public array ReflectionClass::getStaticProperties ( void )

Récupère les propriétés statiques.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les propriétés statiques, sous la forme d'un tableau.

Voir aussi

  • ReflectionClass::getStaticPropertyValue() - Récupère la valeur d'une propriété statique
  • ReflectionClass::setStaticPropertyValue() - Définit la valeur d'une propriété statiques


Récupère la valeur d'une propriété statique

  • « ReflectionClass::getStaticProperties
  • ReflectionClass::getTraitAliases »
  • PHP Manual
  • ReflectionClass
  • Récupère la valeur d'une propriété statique

ReflectionClass::getStaticPropertyValue

(PHP 5 >= 5.1.0, PHP 7)

ReflectionClass::getStaticPropertyValue — Récupère la valeur d'une propriété statique

Description

public mixed ReflectionClass::getStaticPropertyValue ( string $name [, mixed &$def_value ] )

Récupère la valeur d'une propriété statique de la classe.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Le nom de la propriété statique pour laquelle nous souhaitons récupérer la valeur.

def_value

Une valeur par défaut à retourner lorsque la classe ne déclare pas une propriété statique avec le nom fourni name. Si la propriété n'existe pas, et que cet argiment est omis, une exception de type ReflectionException sera émise.

Valeurs de retour

La valeur de la propriété statique.

Exemples

Exemple #1 Exemple avec ReflectionClass::getStaticPropertyValue()

<?php
class Apple {
    public static $color = 'Red';
}

$class = new ReflectionClass('Apple');
var_dump($class->getStaticPropertyValue('color'));
?>

L'exemple ci-dessus va afficher :

string(3) "Red"

Voir aussi

  • ReflectionClass::getStaticProperties() - Récupère les propriétés statiques
  • ReflectionClass::setStaticPropertyValue() - Définit la valeur d'une propriété statiques


Retourne un tableau des alias du trait

  • « ReflectionClass::getStaticPropertyValue
  • ReflectionClass::getTraitNames »
  • PHP Manual
  • ReflectionClass
  • Retourne un tableau des alias du trait

ReflectionClass::getTraitAliases

(PHP >= 5.4.0)

ReflectionClass::getTraitAliases — Retourne un tableau des alias du trait

Description

public array ReflectionClass::getTraitAliases ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau avec les nouveaux noms de méthodes en clés et les noms originaux en valeurs (au format "TraitName::original"). Retourne NULL en cas d'erreur.


Retourne un tableau de noms des traits utilisés par cette classe

  • « ReflectionClass::getTraitAliases
  • ReflectionClass::getTraits »
  • PHP Manual
  • ReflectionClass
  • Retourne un tableau de noms des traits utilisés par cette classe

ReflectionClass::getTraitNames

(PHP >= 5.4.0)

ReflectionClass::getTraitNames — Retourne un tableau de noms des traits utilisés par cette classe

Description

public array ReflectionClass::getTraitNames ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau de noms des traits en valeurs. Retourne NULL en cas d'erreur.


Retourne un tableau des traits utilisés par cette classe

  • « ReflectionClass::getTraitNames
  • ReflectionClass::hasConstant »
  • PHP Manual
  • ReflectionClass
  • Retourne un tableau des traits utilisés par cette classe

ReflectionClass::getTraits

(PHP >= 5.4.0)

ReflectionClass::getTraits — Retourne un tableau des traits utilisés par cette classe

Description

public array ReflectionClass::getTraits ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau avec le nom du trait en clé et des instances ReflectionClass des traits en question en valeurs. Retourne NULL en cas d'erreur.


Vérifie si une constante est définie

  • « ReflectionClass::getTraits
  • ReflectionClass::hasMethod »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une constante est définie

ReflectionClass::hasConstant

(PHP 5 >= 5.1.0, PHP 7)

ReflectionClass::hasConstant — Vérifie si une constante est définie

Description

public bool ReflectionClass::hasConstant ( string $name )

Vérifie si une constante spécifique est définie dans une classe.

Liste de paramètres

name

Nom de la constante à vérifier.

Valeurs de retour

TRUE si la constante est définie, FALSE sinon.

Exemples

Exemple #1 Exemple avec ReflectionClass::hasConstant()

<?php
class Foo {
    const c1 = 1;
}

$class = new ReflectionClass("Foo");

var_dump($class->hasConstant("c1"));
var_dump($class->hasConstant("c2"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)

Voir aussi

  • ReflectionClass::hasMethod() - Vérifie si une méthode est définie
  • ReflectionClass::hasProperty() - Vérifie si une propriété est définie


Vérifie si une méthode est définie

  • « ReflectionClass::hasConstant
  • ReflectionClass::hasProperty »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une méthode est définie

ReflectionClass::hasMethod

(PHP 5 >= 5.1.0, PHP 7)

ReflectionClass::hasMethod — Vérifie si une méthode est définie

Description

public bool ReflectionClass::hasMethod ( string $name )

Vérifie si une méthode spécifique est définie dans une classe.

Liste de paramètres

name

Nom de la méthode à vérifier.

Valeurs de retour

TRUE si la méthode est définie, FALSE sinon.

Exemples

Exemple #1 Exemple avec ReflectionClass::hasMethod()

<?php
Class C {
    public function publicFoo() {
        return true;
    }

    protected function protectedFoo() {
        return true;
    }

    private function privateFoo() {
        return true;
    }

    static function staticFoo() {
        return true;
    }
}

$rc = new ReflectionClass("C");

var_dump($rc->hasMethod('publicFoo'));

var_dump($rc->hasMethod('protectedFoo'));

var_dump($rc->hasMethod('privateFoo'));

var_dump($rc->hasMethod('staticFoo'));

// C should not have method bar
var_dump($rc->hasMethod('bar'));

// Method names are case insensitive
var_dump($rc->hasMethod('PUBLICfOO'));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)

Voir aussi

  • ReflectionClass::hasConstant() - Vérifie si une constante est définie
  • ReflectionClass::hasProperty() - Vérifie si une propriété est définie


Vérifie si une propriété est définie

  • « ReflectionClass::hasMethod
  • ReflectionClass::implementsInterface »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une propriété est définie

ReflectionClass::hasProperty

(PHP 5 >= 5.1.0, PHP 7)

ReflectionClass::hasProperty — Vérifie si une propriété est définie

Description

public bool ReflectionClass::hasProperty ( string $name )

Vérifie si la propriété spécifiée est définie.

Liste de paramètres

name

Le nom de la propriété à vérifier.

Valeurs de retour

TRUE si la propriété est définie, FALSE sinon.

Exemples

Exemple #1 Exemple avec ReflectionClass::hasProperty()

<?php
class Foo {
    public    $p1;
    protected $p2;
    private   $p3;

}

$obj = new ReflectionObject(new Foo());

var_dump($obj->hasProperty("p1"));
var_dump($obj->hasProperty("p2"));
var_dump($obj->hasProperty("p3"));
var_dump($obj->hasProperty("p4"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)
bool(true)
bool(false)

Voir aussi

  • ReflectionClass::hasConstant() - Vérifie si une constante est définie
  • ReflectionClass::hasMethod() - Vérifie si une méthode est définie


Vérifie si une classe implémente une interface

  • « ReflectionClass::hasProperty
  • ReflectionClass::inNamespace »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une classe implémente une interface

ReflectionClass::implementsInterface

(PHP 5, PHP 7)

ReflectionClass::implementsInterface — Vérifie si une classe implémente une interface

Description

public bool ReflectionClass::implementsInterface ( string $interface )

Vérifie si une classe implémente une interface.

Liste de paramètres

interface

Le nom de l'interface.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ReflectionClass::isInterface() - Vérifie si une classe est une interface
  • ReflectionClass::isSubclassOf() - Vérifie si la classe est une sous-classe
  • interface_exists() - Vérifie si une interface a été définie
  • Les interfaces


Vérifie si une classe est définie dans un espace de noms

  • « ReflectionClass::implementsInterface
  • ReflectionClass::isAbstract »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une classe est définie dans un espace de noms

ReflectionClass::inNamespace

(PHP 5 >= 5.3.0, PHP 7)

ReflectionClass::inNamespace — Vérifie si une classe est définie dans un espace de noms

Description

public bool ReflectionClass::inNamespace ( void )

Vérifie si une classe est définie dans un espace de noms.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::inNamespace()

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

L'exemple ci-dessus va afficher :

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Voir aussi

  • ReflectionClass::getNamespaceName() - Récupère l'espace de noms
  • Les espaces de noms PHP


Vérifie si une classe est abstraite

  • « ReflectionClass::inNamespace
  • ReflectionClass::isAnonymous »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une classe est abstraite

ReflectionClass::isAbstract

(PHP 5, PHP 7)

ReflectionClass::isAbstract — Vérifie si une classe est abstraite

Description

public bool ReflectionClass::isAbstract ( void )

Vérifie si une classe est abstraite.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::isAbstract()

<?php
class          TestClass { }
abstract class TestAbstractClass { }

$testClass     = new ReflectionClass('TestClass');
$abstractClass = new ReflectionClass('TestAbstractClass');

var_dump($testClass->isAbstract());
var_dump($abstractClass->isAbstract());
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

  • ReflectionClass::isInterface() - Vérifie si une classe est une interface
  • L'abstraction de classe


Checks if class is anonymous

  • « ReflectionClass::isAbstract
  • ReflectionClass::isCloneable »
  • PHP Manual
  • ReflectionClass
  • Checks if class is anonymous

ReflectionClass::isAnonymous

(PHP 7)

ReflectionClass::isAnonymous — Checks if class is anonymous

Description

public bool ReflectionClass::isAnonymous ( void )

Checks if a class is an anonymous class.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 ReflectionClass::isAnonymous() example

<?php
class TestClass {}
$anonClass = new class {};

$normalClass = new ReflectionClass('TestClass');
$anonClass  = new ReflectionClass($anonClass);

var_dump($normalClass->isAnonymous());
var_dump($anonClass->isAnonymous());

?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

  • ReflectionClass::isFinal() - Vérifie si une classe est finale


Renseigne à propos de la propriété de duplication de la classe

  • « ReflectionClass::isAnonymous
  • ReflectionClass::isFinal »
  • PHP Manual
  • ReflectionClass
  • Renseigne à propos de la propriété de duplication de la classe

ReflectionClass::isCloneable

(PHP >= 5.4.0)

ReflectionClass::isCloneable — Renseigne à propos de la propriété de duplication de la classe

Description

public bool ReflectionClass::isCloneable ( void )

Retourne si cette classe est clonable.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Renvoie TRUE si la classe peut être clônée, FALSE sinon.

Exemples

Exemple #1 Utilisation basique de ReflectionClass::isCloneable()

<?php
class NotCloneable {
    public $var1;

    private function __clone() {
    }
}

class Cloneable {
    public $var1;
}

$notCloneable = new ReflectionClass('NotCloneable');
$cloneable = new ReflectionClass('Cloneable');

var_dump($notCloneable->isCloneable());
var_dump($cloneable->isCloneable());
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)


Vérifie si une classe est finale

  • « ReflectionClass::isCloneable
  • ReflectionClass::isInstance »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une classe est finale

ReflectionClass::isFinal

(PHP 5, PHP 7)

ReflectionClass::isFinal — Vérifie si une classe est finale

Description

public bool ReflectionClass::isFinal ( void )

Vérifie si une classe est finale.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::isFinal()

<?php
class       TestClass { }
final class TestFinalClass { }

$normalClass = new ReflectionClass('TestClass');
$finalClass  = new ReflectionClass('TestFinalClass');

var_dump($normalClass->isFinal());
var_dump($finalClass->isFinal());

?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

  • ReflectionClass::isAbstract() - Vérifie si une classe est abstraite
  • Mot clé Final


Vérifie si une classe est une instance d'une autre classe

  • « ReflectionClass::isFinal
  • ReflectionClass::isInstantiable »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une classe est une instance d'une autre classe

ReflectionClass::isInstance

(PHP 5, PHP 7)

ReflectionClass::isInstance — Vérifie si une classe est une instance d'une autre classe

Description

public bool ReflectionClass::isInstance ( object $object )

Vérifie si une classe est une instance d'une autre classe.

Liste de paramètres

object

L'objet utilisé pour comparer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::isInstance()

<?php
// Exemple d'utilisation
$class = new ReflectionClass('Foo');

if ($class->isInstance($arg)) {
    echo "Oui";
}

// Équivalent à
if ($arg instanceof Foo) {
    echo "Oui";
}

// Équivalent à
if (is_a($arg, 'Foo')) {
    echo "Oui";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Oui
Oui
Oui

Voir aussi

  • ReflectionClass::isInterface() - Vérifie si une classe est une interface
  • Opérateurs de types (instanceof)
  • Les interfaces
  • is_a() - Vérifie si l'objet est une instance d'une classe donnée ou a cette classe parmi ses parents


Vérifie si une classe est instanciable

  • « ReflectionClass::isInstance
  • ReflectionClass::isInterface »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une classe est instanciable

ReflectionClass::isInstantiable

(PHP 5, PHP 7)

ReflectionClass::isInstantiable — Vérifie si une classe est instanciable

Description

public bool ReflectionClass::isInstantiable ( void )

Vérifie si une classe est instanciable.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::isInstantiable()

<?php
class C { }

interface iface {
    function f1();
}

class ifaceImpl implements iface {
    function f1() {}
}

abstract class abstractClass {
    function f1() { }
    abstract function f2();
}

class D extends abstractClass {
    function f2() { }
}

class privateConstructor {
    private function __construct() { }
}

$classes = array(
    "C",
    "iface",
    "ifaceImpl",
    "abstractClass",
    "D",
    "privateConstructor",
);

foreach($classes  as $class ) {
    $reflectionClass = new ReflectionClass($class);
    echo "Est-ce que la classe $class est instanciable  ?  ";
    var_dump($reflectionClass->IsInstantiable());
}

?>

L'exemple ci-dessus va afficher :

Est-ce que la classe C est instanciable  ?  bool(true)
Est-ce que la classe iface est instanciable  ?  bool(false)
Est-ce que la classe ifaceImpl est instanciable  ?  bool(true)
Est-ce que la classe abstractClass est instanciable  ?  bool(false)
Est-ce que la classe D est instanciable  ?  bool(true)
Is privateConstructor instantiable?  bool(false)

Voir aussi

  • ReflectionClass::isInstance() - Vérifie si une classe est une instance d'une autre classe


Vérifie si une classe est une interface

  • « ReflectionClass::isInstantiable
  • ReflectionClass::isInternal »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une classe est une interface

ReflectionClass::isInterface

(PHP 5, PHP 7)

ReflectionClass::isInterface — Vérifie si une classe est une interface

Description

public bool ReflectionClass::isInterface ( void )

Vérifie si une classe est une interface.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::isInterface()

<?php
interface SomeInterface {
    public function interfaceMethod();
}

$class = new ReflectionClass('SomeInterface');
var_dump($class->isInterface());
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • ReflectionClass::isInstance() - Vérifie si une classe est une instance d'une autre classe


Vérifie si une classe est définie comme interne par une extension

  • « ReflectionClass::isInterface
  • ReflectionClass::isIterateable »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une classe est définie comme interne par une extension

ReflectionClass::isInternal

(PHP 5, PHP 7)

ReflectionClass::isInternal — Vérifie si une classe est définie comme interne par une extension

Description

public bool ReflectionClass::isInternal ( void )

Vérifie si une classe est définie comme interne par une extension, ou faisant partie du coeur, par opposition à une classe définie par l'utilisateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::isInternal()

<?php
$internalclass = new ReflectionClass('ReflectionClass');

class Apple {}
$userclass = new ReflectionClass('Apple');

var_dump($internalclass->isInternal());
var_dump($userclass->isInternal());
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi

  • ReflectionClass::isUserDefined() - Vérifie si une classe a été définie dans l'espace utilisateur


Vérifie si la classe est itérable

  • « ReflectionClass::isInternal
  • ReflectionClass::isSubclassOf »
  • PHP Manual
  • ReflectionClass
  • Vérifie si la classe est itérable

ReflectionClass::isIterateable

(PHP 5, PHP 7)

ReflectionClass::isIterateable — Vérifie si la classe est itérable

Description

public bool ReflectionClass::isIterateable ( void )

Vérifie si la classe est itérable.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ReflectionClass::isIterateable()

<?php

class IteratorClass implements Iterator {
    public function __construct() { }
    public function key() { }
    public function current() { }
    function next() { }
    function valid() { }
    function rewind() { }
}
class DerivedClass extends IteratorClass { }
class NonIterator { }

function dump_iterateable($class) {
    $reflection = new ReflectionClass($class);
    var_dump($reflection->isIterateable());
}

$classes = array("ArrayObject", "IteratorClass", "DerivedClass", "NonIterator");

foreach ($classes as $class) {
    echo "Est-ce que la classe $class est itérable ? ";
    dump_iterateable($class);
}
?>

L'exemple ci-dessus va afficher :

Est-ce que la classe ArrayObject est itérable ? bool(true)
Est-ce que la classe IteratorClass est itérable ? bool(true)
Est-ce que la classe DerivedClass est itérable ? bool(true)
Est-ce que la classe NonIterator est itérable ? bool(false)

Voir aussi

  • ReflectionClass::__construct() - Construit une ReflectionClass


Vérifie si la classe est une sous-classe

  • « ReflectionClass::isIterateable
  • ReflectionClass::isTrait »
  • PHP Manual
  • ReflectionClass
  • Vérifie si la classe est une sous-classe

ReflectionClass::isSubclassOf

(PHP 5, PHP 7)

ReflectionClass::isSubclassOf — Vérifie si la classe est une sous-classe

Description

public bool ReflectionClass::isSubclassOf ( string $class )

Vérifie si la classe est une sous-classe de la classe spécifiée ou implémente une interface spécifiée.

Liste de paramètres

class

Nom de la classe à vérifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ReflectionClass::isInterface() - Vérifie si une classe est une interface
  • ReflectionClass::implementsInterface() - Vérifie si une classe implémente une interface
  • is_subclass_of() - Détermine si un objet est une sous-classe d'une classe donnée ou l'implémente
  • get_parent_class() - Retourne le nom de la classe parente d'un objet


Renseigne s'il s'agit d'un trait

  • « ReflectionClass::isSubclassOf
  • ReflectionClass::isUserDefined »
  • PHP Manual
  • ReflectionClass
  • Renseigne s'il s'agit d'un trait

ReflectionClass::isTrait

(PHP >= 5.4.0)

ReflectionClass::isTrait — Renseigne s'il s'agit d'un trait

Description

public bool ReflectionClass::isTrait ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE s'il s'agit d'un trait, FALSE sinon. Retourne NULL en cas d'erreur.


Vérifie si une classe a été définie dans l'espace utilisateur

  • « ReflectionClass::isTrait
  • ReflectionClass::newInstance »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une classe a été définie dans l'espace utilisateur

ReflectionClass::isUserDefined

(PHP 5, PHP 7)

ReflectionClass::isUserDefined — Vérifie si une classe a été définie dans l'espace utilisateur

Description

public bool ReflectionClass::isUserDefined ( void )

Vérifie si une classe a été définie dans l'espace utilisateur, plutôt qu'en interne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • ReflectionClass::isInternal() - Vérifie si une classe est définie comme interne par une extension


Créer une nouvelle instance de la classe en utilisant les arguments fournis

  • « ReflectionClass::isUserDefined
  • ReflectionClass::newInstanceArgs »
  • PHP Manual
  • ReflectionClass
  • Créer une nouvelle instance de la classe en utilisant les arguments fournis

ReflectionClass::newInstance

(PHP 5, PHP 7)

ReflectionClass::newInstance — Créer une nouvelle instance de la classe en utilisant les arguments fournis

Description

public object ReflectionClass::newInstance ( mixed $args [, mixed $... ] )

Créer une nouvelle instance de la classe en utilisant les arguments fournis qui seront distribués à son constructeur.

Liste de paramètres

args

Accepte un nombre variable d'arguments passés au constructeur, comme pour la fonction call_user_func().

Valeurs de retour

Erreurs / Exceptions

Une ReflectionException si le constructeur n'est pas public.

Une ReflectionException si la classe n'a pas de constructeur et que le paramètre args contient au moins une donnée.

Voir aussi

  • ReflectionClass::newInstanceArgs() - Créer une nouvelle instance en utilisant les arguments fournis
  • ReflectionClass::newInstanceWithoutConstructor() - Crée une nouvelle instance de la classe sans invoquer le constructeur


Créer une nouvelle instance en utilisant les arguments fournis

  • « ReflectionClass::newInstance
  • ReflectionClass::newInstanceWithoutConstructor »
  • PHP Manual
  • ReflectionClass
  • Créer une nouvelle instance en utilisant les arguments fournis

ReflectionClass::newInstanceArgs

(PHP 5 >= 5.1.3, PHP 7)

ReflectionClass::newInstanceArgs — Créer une nouvelle instance en utilisant les arguments fournis

Description

public object ReflectionClass::newInstanceArgs ([ array $args ] )

Créer une nouvelle instance de la classe en utilisant les arguments fournis pour les passer au constructeur.

Liste de paramètres

args

Accepte un nombre variable d'arguments passés au constructeur, comme pour la fonction call_user_func().

Valeurs de retour

Retourne une nouvelle instance de la classe.

Exemples

Exemple #1 Utilisation basique de ReflectionClass::newInstanceArgs()

<?php
$class = new ReflectionClass('ReflectionFunction');
$instance = $class->newInstanceArgs(array('substr'));
var_dump($instance);
?>

L'exemple ci-dessus va afficher :

object(ReflectionFunction)#2 (1) {
  ["name"]=>
  string(6) "substr"
}

Erreurs / Exceptions

Une ReflectionException si le constructeur n'est pas public.

Une ReflectionException si la classe n'a pas de constructeur et que le paramètre args contient au moins une donnée.

Voir aussi

  • ReflectionClass::newInstance() - Créer une nouvelle instance de la classe en utilisant les arguments fournis
  • ReflectionClass::newInstanceWithoutConstructor() - Crée une nouvelle instance de la classe sans invoquer le constructeur


Crée une nouvelle instance de la classe sans invoquer le constructeur

  • « ReflectionClass::newInstanceArgs
  • ReflectionClass::setStaticPropertyValue »
  • PHP Manual
  • ReflectionClass
  • Crée une nouvelle instance de la classe sans invoquer le constructeur

ReflectionClass::newInstanceWithoutConstructor

(PHP >= 5.4.0)

ReflectionClass::newInstanceWithoutConstructor — Crée une nouvelle instance de la classe sans invoquer le constructeur

Description

public object ReflectionClass::newInstanceWithoutConstructor ( void )

Crée une nouvelle instance de la classe sans invoquer son constructeur.

Liste de paramètres

Valeurs de retour

Historique

Version | Description
5.6.0 | Toutes les classes internes peuvent désormais être instanciées sauf celles déclarées comme final.

Erreurs / Exceptions

A ReflectionException si la classe est une classe interne qui ne peut être instanciée sans invoquer son constructeur. Depuis PHP 5.6.0, cette exception est limitée uniquement aux classes internes qui sont de type final.

Voir aussi

  • ReflectionClass::newInstance() - Créer une nouvelle instance de la classe en utilisant les arguments fournis
  • ReflectionClass::newInstanceArgs() - Créer une nouvelle instance en utilisant les arguments fournis


Définit la valeur d'une propriété statiques

  • « ReflectionClass::newInstanceWithoutConstructor
  • ReflectionClass::__toString »
  • PHP Manual
  • ReflectionClass
  • Définit la valeur d'une propriété statiques

ReflectionClass::setStaticPropertyValue

(PHP 5 >= 5.1.0, PHP 7)

ReflectionClass::setStaticPropertyValue — Définit la valeur d'une propriété statiques

Description

public void ReflectionClass::setStaticPropertyValue ( string $name , string $value )

Définit la valeur d'une propriété statiques.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Le nom de la propriété.

value

La nouvelle valeur pour la propriété.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ReflectionClass::getStaticPropertyValue() - Récupère la valeur d'une propriété statique


Crée une représentation textuelle de l'objet

  • « ReflectionClass::setStaticPropertyValue
  • ReflectionZendExtension »
  • PHP Manual
  • ReflectionClass
  • Crée une représentation textuelle de l'objet

ReflectionClass::__toString

(PHP 5, PHP 7)

ReflectionClass::__toString — Crée une représentation textuelle de l'objet

Description

public string ReflectionClass::__toString ( void )

Crée une représentation textuelle de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation textuelle de l'instance actuelle de ReflectionClass

Exemples

Exemple #1 Exemple pour ReflectionClass::__toString()

<?php
$reflectionClass = new ReflectionClass('Exception');
echo $reflectionClass->__toString();
?>

L'exemple ci-dessus va afficher :

Class [ <internal:Core> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
    Property [ <default> private $previous ]
  }

  - Methods [10] {
    Method [ <internal:Core> final private method __clone ] {
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> $message ]
        Parameter #1 [ <optional> $code ]
        Parameter #2 [ <optional> $previous ]
      }
    }

    Method [ <internal:Core> final public method getMessage ] {
    }

    Method [ <internal:Core> final public method getCode ] {
    }

    Method [ <internal:Core> final public method getFile ] {
    }

    Method [ <internal:Core> final public method getLine ] {
    }

    Method [ <internal:Core> final public method getTrace ] {
    }

    Method [ <internal:Core> final public method getPrevious ] {
    }

    Method [ <internal:Core> final public method getTraceAsString ] {
    }

    Method [ <internal:Core> public method __toString ] {
    }
  }
}

Voir aussi

  • ReflectionClass::export() - Exporte une classe
  • __toString()


La classe ReflectionZendExtension

(PHP >= 5.4.0)

Introduction

Synopsis de la classe

ReflectionZendExtension implements Reflector {
/* Propriétés */
public $name ;
/* Méthodes */
final private void __clone ( void )
public __construct ( string $name )
public static string export ( string $name [, string $return ] )
public string getAuthor ( void )
public string getCopyright ( void )
public string getName ( void )
public string getURL ( void )
public string getVersion ( void )
public string __toString ( void )
}

Propriétés

name

Nom de l'extension. En lecture seule, émets une exception de type ReflectionException si l'on tente d'y écrire.

Sommaire

  • ReflectionZendExtension::__clone — Gestionnaire de clonage
  • ReflectionZendExtension::__construct — Constructeur
  • ReflectionZendExtension::export — Export
  • ReflectionZendExtension::getAuthor — Récupère l'auteur
  • ReflectionZendExtension::getCopyright — Récupère le copyright
  • ReflectionZendExtension::getName — Récupère le nom
  • ReflectionZendExtension::getURL — Récupère l'URL
  • ReflectionZendExtension::getVersion — Récupère la version
  • ReflectionZendExtension::__toString — Gestionnaire de conversion en chaîne de caractères


Gestionnaire de clonage

  • « ReflectionZendExtension
  • ReflectionZendExtension::__construct »
  • PHP Manual
  • ReflectionZendExtension
  • Gestionnaire de clonage

ReflectionZendExtension::__clone

(PHP >= 5.4.0)

ReflectionZendExtension::__clone — Gestionnaire de clonage

Description

final private void ReflectionZendExtension::__clone ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Constructeur

  • « ReflectionZendExtension::__clone
  • ReflectionZendExtension::export »
  • PHP Manual
  • ReflectionZendExtension
  • Constructeur

ReflectionZendExtension::__construct

(PHP >= 5.4.0)

ReflectionZendExtension::__construct — Constructeur

Description

public ReflectionZendExtension::__construct ( string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Export

  • « ReflectionZendExtension::__construct
  • ReflectionZendExtension::getAuthor »
  • PHP Manual
  • ReflectionZendExtension
  • Export

ReflectionZendExtension::export

(PHP >= 5.4.0)

ReflectionZendExtension::export — Export

Description

public static string ReflectionZendExtension::export ( string $name [, string $return ] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

return

Valeurs de retour


Récupère l'auteur

  • « ReflectionZendExtension::export
  • ReflectionZendExtension::getCopyright »
  • PHP Manual
  • ReflectionZendExtension
  • Récupère l'auteur

ReflectionZendExtension::getAuthor

(PHP >= 5.4.0)

ReflectionZendExtension::getAuthor — Récupère l'auteur

Description

public string ReflectionZendExtension::getAuthor ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le copyright

  • « ReflectionZendExtension::getAuthor
  • ReflectionZendExtension::getName »
  • PHP Manual
  • ReflectionZendExtension
  • Récupère le copyright

ReflectionZendExtension::getCopyright

(PHP >= 5.4.0)

ReflectionZendExtension::getCopyright — Récupère le copyright

Description

public string ReflectionZendExtension::getCopyright ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le nom

  • « ReflectionZendExtension::getCopyright
  • ReflectionZendExtension::getURL »
  • PHP Manual
  • ReflectionZendExtension
  • Récupère le nom

ReflectionZendExtension::getName

(PHP >= 5.4.0)

ReflectionZendExtension::getName — Récupère le nom

Description

public string ReflectionZendExtension::getName ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère l'URL

  • « ReflectionZendExtension::getName
  • ReflectionZendExtension::getVersion »
  • PHP Manual
  • ReflectionZendExtension
  • Récupère l'URL

ReflectionZendExtension::getURL

(PHP >= 5.4.0)

ReflectionZendExtension::getURL — Récupère l'URL

Description

public string ReflectionZendExtension::getURL ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère la version

  • « ReflectionZendExtension::getURL
  • ReflectionZendExtension::__toString »
  • PHP Manual
  • ReflectionZendExtension
  • Récupère la version

ReflectionZendExtension::getVersion

(PHP >= 5.4.0)

ReflectionZendExtension::getVersion — Récupère la version

Description

public string ReflectionZendExtension::getVersion ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Gestionnaire de conversion en chaîne de caractères

  • « ReflectionZendExtension::getVersion
  • ReflectionExtension »
  • PHP Manual
  • ReflectionZendExtension
  • Gestionnaire de conversion en chaîne de caractères

ReflectionZendExtension::__toString

(PHP >= 5.4.0)

ReflectionZendExtension::__toString — Gestionnaire de conversion en chaîne de caractères

Description

public string ReflectionZendExtension::__toString ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


La classe ReflectionExtension

(PHP 5, PHP 7)

Introduction

La classe ReflectionExtension rapporte des informations sur une extension.

Synopsis de la classe

ReflectionExtension implements Reflector {
/* Propriétés */
public $name ;
/* Méthodes */
final private void __clone ( void )
public __construct ( string $name )
public static string export ( string $name [, string $return = false ] )
public array getClasses ( void )
public array getClassNames ( void )
public array getConstants ( void )
public array getDependencies ( void )
public array getFunctions ( void )
public array getINIEntries ( void )
public string getName ( void )
public string getVersion ( void )
public void info ( void )
public void isPersistent ( void )
public void isTemporary ( void )
public string __toString ( void )
}

Propriétés

name

Nom de l'extension, identique à l'appel de la méthode ReflectionExtension::getName()

Sommaire

  • ReflectionExtension::__clone — Clonage
  • ReflectionExtension::__construct — Construit un nouvel objet ReflectionExtension
  • ReflectionExtension::export — Exportation
  • ReflectionExtension::getClasses — Récupère les classes
  • ReflectionExtension::getClassNames — Récupère les noms des classes
  • ReflectionExtension::getConstants — Récupère les constantes
  • ReflectionExtension::getDependencies — Récupère les dépendances
  • ReflectionExtension::getFunctions — Récupère les fonctions d'une extension
  • ReflectionExtension::getINIEntries — Récupère les entrées ini de l'extension
  • ReflectionExtension::getName — Récupère le nom de l'extension
  • ReflectionExtension::getVersion — Récupère la version de l'extension
  • ReflectionExtension::info — Affiche des informations sur l'extension
  • ReflectionExtension::isPersistent — Vérifie si l'extension est persistante
  • ReflectionExtension::isTemporary — Vérifie si l'extension est temporaire
  • ReflectionExtension::__toString — Récupère une représentation textuelle


Clonage

  • « ReflectionExtension
  • ReflectionExtension::__construct »
  • PHP Manual
  • ReflectionExtension
  • Clonage

ReflectionExtension::__clone

(PHP 5, PHP 7)

ReflectionExtension::__clone — Clonage

Description

final private void ReflectionExtension::__clone ( void )

La méthode clone empêche un objet d'être cloné. Les objets de réflexion ne peuvent être clonés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur retournée, une erreur sera émise lors de l'appel à cette méthode.

Voir aussi

  • ReflectionExtension::__construct() - Construit un nouvel objet ReflectionExtension
  • Le clonage d'objets


Construit un nouvel objet ReflectionExtension

  • « ReflectionExtension::__clone
  • ReflectionExtension::export »
  • PHP Manual
  • ReflectionExtension
  • Construit un nouvel objet ReflectionExtension

ReflectionExtension::__construct

(PHP 5, PHP 7)

ReflectionExtension::__construct — Construit un nouvel objet ReflectionExtension

Description

public ReflectionExtension::__construct ( string $name )

Construit un nouvel objet ReflectionExtension.

Liste de paramètres

name

Nom de l'extension.

Valeurs de retour

Un nouvel objet ReflectionExtension.

Exemples

Exemple #1 exemple de ReflectionExtension

<?php
$ext = new ReflectionExtension('Reflection');

printf('Extension: %s (version: %s)', $ext->getName(), $ext->getVersion());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Extension: Reflection (version: $Revision: 330737 $)

Voir aussi

  • ReflectionExtension::info() - Affiche des informations sur l'extension
  • Les constructeurs


Exportation

  • « ReflectionExtension::__construct
  • ReflectionExtension::getClasses »
  • PHP Manual
  • ReflectionExtension
  • Exportation

ReflectionExtension::export

(PHP 5, PHP 7)

ReflectionExtension::export — Exportation

Description

public static string ReflectionExtension::export ( string $name [, string $return = false ] )

Exporte une extension reflétée. Le format de retour de cette fonction est similaire à celui du CLI appelé avec l'option --re [extension].

Liste de paramètres

name

La réflection à exporter.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Si le paramètre return est défini à TRUE, l'export sera retourné sous la forme d'une chaîne de caractères, sinon, NULL sera retourné.

Voir aussi

  • ReflectionExtension::info() - Affiche des informations sur l'extension


Récupère les classes

  • « ReflectionExtension::export
  • ReflectionExtension::getClassNames »
  • PHP Manual
  • ReflectionExtension
  • Récupère les classes

ReflectionExtension::getClasses

(PHP 5, PHP 7)

ReflectionExtension::getClasses — Récupère les classes

Description

public array ReflectionExtension::getClasses ( void )

Récupère une liste des classes d'une extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau d'objets ReflectionClass, un par classes définies dans l'extension. Si aucune classe n'est définie, un tableau vide sera retourné.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getClasses()

<?php
$ext = new ReflectionExtension('XMLWriter');
var_dump($ext->getClasses());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  ["XMLWriter"]=>
  &object(ReflectionClass)#2 (1) {
    ["name"]=>
    string(9) "XMLWriter"
  }
}

Voir aussi

  • ReflectionExtension::getClassNames() - Récupère les noms des classes


Récupère les noms des classes

  • « ReflectionExtension::getClasses
  • ReflectionExtension::getConstants »
  • PHP Manual
  • ReflectionExtension
  • Récupère les noms des classes

ReflectionExtension::getClassNames

(PHP 5, PHP 7)

ReflectionExtension::getClassNames — Récupère les noms des classes

Description

public array ReflectionExtension::getClassNames ( void )

Récupère une liste des noms de classes définies dans l'extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de noms de classes définies dans l'extension. Si aucune classe n'est définie, un tableau vide sera retourné.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getClassNames()

<?php
$ext = new ReflectionExtension('XMLWriter');
var_dump($ext->getClassNames());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  string(9) "XMLWriter"
}

Voir aussi

  • ReflectionExtension::getClasses() - Récupère les classes
  • ReflectionExtension::getName() - Récupère le nom de l'extension


Récupère les constantes

  • « ReflectionExtension::getClassNames
  • ReflectionExtension::getDependencies »
  • PHP Manual
  • ReflectionExtension
  • Récupère les constantes

ReflectionExtension::getConstants

(PHP 5, PHP 7)

ReflectionExtension::getConstants — Récupère les constantes

Description

public array ReflectionExtension::getConstants ( void )

Récupère les constantes d'une extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau associatif dont les clés sont les noms des constantes.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getConstants()

<?php
$ext = new ReflectionExtension('DOM');

print_r($ext->getConstants());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [XML_ELEMENT_NODE] => 1
    [XML_ATTRIBUTE_NODE] => 2
    [XML_TEXT_NODE] => 3
    [XML_CDATA_SECTION_NODE] => 4
    [XML_ENTITY_REF_NODE] => 5
    [XML_ENTITY_NODE] => 6
    [XML_PI_NODE] => 7
    [XML_COMMENT_NODE] => 8
    [XML_DOCUMENT_NODE] => 9
    [XML_DOCUMENT_TYPE_NODE] => 10
    [XML_DOCUMENT_FRAG_NODE] => 11
    [XML_NOTATION_NODE] => 12
    [XML_HTML_DOCUMENT_NODE] => 13
    [XML_DTD_NODE] => 14
    [XML_ELEMENT_DECL_NODE] => 15
    [XML_ATTRIBUTE_DECL_NODE] => 16
    [XML_ENTITY_DECL_NODE] => 17
    [XML_NAMESPACE_DECL_NODE] => 18
    [XML_LOCAL_NAMESPACE] => 18
    [XML_ATTRIBUTE_CDATA] => 1
    [XML_ATTRIBUTE_ID] => 2
    [XML_ATTRIBUTE_IDREF] => 3
    [XML_ATTRIBUTE_IDREFS] => 4
    [XML_ATTRIBUTE_ENTITY] => 6
    [XML_ATTRIBUTE_NMTOKEN] => 7
    [XML_ATTRIBUTE_NMTOKENS] => 8
    [XML_ATTRIBUTE_ENUMERATION] => 9
    [XML_ATTRIBUTE_NOTATION] => 10
    [DOM_PHP_ERR] => 0
    [DOM_INDEX_SIZE_ERR] => 1
    [DOMSTRING_SIZE_ERR] => 2
    [DOM_HIERARCHY_REQUEST_ERR] => 3
    [DOM_WRONG_DOCUMENT_ERR] => 4
    [DOM_INVALID_CHARACTER_ERR] => 5
    [DOM_NO_DATA_ALLOWED_ERR] => 6
    [DOM_NO_MODIFICATION_ALLOWED_ERR] => 7
    [DOM_NOT_FOUND_ERR] => 8
    [DOM_NOT_SUPPORTED_ERR] => 9
    [DOM_INUSE_ATTRIBUTE_ERR] => 10
    [DOM_INVALID_STATE_ERR] => 11
    [DOM_SYNTAX_ERR] => 12
    [DOM_INVALID_MODIFICATION_ERR] => 13
    [DOM_NAMESPACE_ERR] => 14
    [DOM_INVALID_ACCESS_ERR] => 15
    [DOM_VALIDATION_ERR] => 16
)

Voir aussi

  • ReflectionExtension::getINIEntries() - Récupère les entrées ini de l'extension


Récupère les dépendances

  • « ReflectionExtension::getConstants
  • ReflectionExtension::getFunctions »
  • PHP Manual
  • ReflectionExtension
  • Récupère les dépendances

ReflectionExtension::getDependencies

(PHP 5, PHP 7)

ReflectionExtension::getDependencies — Récupère les dépendances

Description

public array ReflectionExtension::getDependencies ( void )

Récupère les dépendances, en listant à la fois les dépendances requises, mais aussi les dépendances en conflits.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau associatif dont les clés sont les dépendances et comme valeurs, soit Required, Optional ou Conflicts.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getDependencies()

<?php
$dom = new ReflectionExtension('dom');

print_r($dom->getDependencies());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [libxml] => Required
    [domxml] => Conflicts
)

Voir aussi

  • ReflectionClass::getVersion()


Récupère les fonctions d'une extension

  • « ReflectionExtension::getDependencies
  • ReflectionExtension::getINIEntries »
  • PHP Manual
  • ReflectionExtension
  • Récupère les fonctions d'une extension

ReflectionExtension::getFunctions

(PHP 5, PHP 7)

ReflectionExtension::getFunctions — Récupère les fonctions d'une extension

Description

public array ReflectionExtension::getFunctions ( void )

Récupère les fonctions d'une extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau associatif d'objets ReflectionFunction, pour chaque fonction définie dans l'extension, dont les clés sont les noms des fonctions. Si aucune fonction n'est définie, un tableau vide sera retourné.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getFunctions()

<?php
$dom = new ReflectionExtension('SimpleXML');

print_r($dom->getFunctions());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [simplexml_load_file] => ReflectionFunction Object
        (
            [name] => simplexml_load_file
        )

    [simplexml_load_string] => ReflectionFunction Object
        (
            [name] => simplexml_load_string
        )

    [simplexml_import_dom] => ReflectionFunction Object
        (
            [name] => simplexml_import_dom
        )

)

Voir aussi

  • ReflectionExtension::getClasses() - Récupère les classes
  • get_extension_funcs() - Liste les fonctions d'une extension


Récupère les entrées ini de l'extension

  • « ReflectionExtension::getFunctions
  • ReflectionExtension::getName »
  • PHP Manual
  • ReflectionExtension
  • Récupère les entrées ini de l'extension

ReflectionExtension::getINIEntries

(PHP 5, PHP 7)

ReflectionExtension::getINIEntries — Récupère les entrées ini de l'extension

Description

public array ReflectionExtension::getINIEntries ( void )

Récupère les entrées ini de l'extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau associatif dont les clés sont les entrées ini, et les valeurs, les contenus de ces entrées.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getINIEntries()

<?php
$ext = new ReflectionExtension('mysql');

print_r($ext->getINIEntries());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [mysql.allow_persistent] => 1
    [mysql.max_persistent] => -1
    [mysql.max_links] => -1
    [mysql.default_host] =>
    [mysql.default_user] =>
    [mysql.default_password] =>
    [mysql.default_port] =>
    [mysql.default_socket] =>
    [mysql.connect_timeout] => 60
    [mysql.trace_mode] =>
    [mysql.allow_local_infile] => 1
    [mysql.cache_size] => 2000
)

Voir aussi

  • ini_get_all() - Lit toutes les valeurs de configuration
  • ReflectionExtension::getConstants() - Récupère les constantes


Récupère le nom de l'extension

  • « ReflectionExtension::getINIEntries
  • ReflectionExtension::getVersion »
  • PHP Manual
  • ReflectionExtension
  • Récupère le nom de l'extension

ReflectionExtension::getName

(PHP 5, PHP 7)

ReflectionExtension::getName — Récupère le nom de l'extension

Description

public string ReflectionExtension::getName ( void )

Récupère le nom de l'extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de l'extension.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getName()

<?php
$ext = new ReflectionExtension('mysqli');
var_dump($ext->getName());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(6) "mysqli"

Voir aussi

  • ReflectionExtension::getClassNames() - Récupère les noms des classes


Récupère la version de l'extension

  • « ReflectionExtension::getName
  • ReflectionExtension::info »
  • PHP Manual
  • ReflectionExtension
  • Récupère la version de l'extension

ReflectionExtension::getVersion

(PHP 5, PHP 7)

ReflectionExtension::getVersion — Récupère la version de l'extension

Description

public string ReflectionExtension::getVersion ( void )

Récupère la version de l'extension.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La version de l'extension.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getVersion()

<?php
$ext = new ReflectionExtension('mysqli');
var_dump($ext->getVersion());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(3) "0.1"

Voir aussi

  • ReflectionExtension::info() - Affiche des informations sur l'extension


Affiche des informations sur l'extension

  • « ReflectionExtension::getVersion
  • ReflectionExtension::isPersistent »
  • PHP Manual
  • ReflectionExtension
  • Affiche des informations sur l'extension

ReflectionExtension::info

(PHP 5, PHP 7)

ReflectionExtension::info — Affiche des informations sur l'extension

Description

public void ReflectionExtension::info ( void )

Affiche des informations sur l'extension issues "phpinfo()".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Informations sur l'extension.

Exemples

Exemple #1 Exemple avec ReflectionExtension::info()

<?php
$ext = new ReflectionExtension('mysqli');
$ext->info();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

mysqli

MysqlI Support => enabled
Client API library version => mysqlnd 5.0.5-dev - 081106 - $Revision: 316045 $
Active Persistent Links => 0
Inactive Persistent Links => 0
Active Links => 0
Persistent cache => enabled
put_hits => 0
put_misses => 0
get_hits => 0
get_misses => 0
size => 2000
free_items => 2000
references => 2

Directive => Local Value => Master Value
mysqli.max_links => Unlimited => Unlimited
mysqli.max_persistent => Unlimited => Unlimited
mysqli.allow_persistent => On => On
mysqli.default_host => no value => no value
mysqli.default_user => no value => no value
mysqli.default_pw => no value => no value
mysqli.default_port => 3306 => 3306
mysqli.default_socket => no value => no value
mysqli.reconnect => Off => Off
mysqli.allow_local_infile => On => On
mysqli.cache_size => 2000 => 2000

Voir aussi

  • ReflectionExtension::getName() - Récupère le nom de l'extension
  • phpinfo() - Affiche de nombreuses informations sur la configuration de PHP


Vérifie si l'extension est persistante

  • « ReflectionExtension::info
  • ReflectionExtension::isTemporary »
  • PHP Manual
  • ReflectionExtension
  • Vérifie si l'extension est persistante

ReflectionExtension::isPersistent

(PHP >= 5.4.0)

ReflectionExtension::isPersistent — Vérifie si l'extension est persistante

Description

public void ReflectionExtension::isPersistent ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE pour les extensions chargées par le mécanisme des extensions, FALSE sinon.

Voir aussi

  • ReflectionExtension::isTemporary() - Vérifie si l'extension est temporaire


Vérifie si l'extension est temporaire

  • « ReflectionExtension::isPersistent
  • ReflectionExtension::__toString »
  • PHP Manual
  • ReflectionExtension
  • Vérifie si l'extension est temporaire

ReflectionExtension::isTemporary

(PHP >= 5.4.0)

ReflectionExtension::isTemporary — Vérifie si l'extension est temporaire

Description

public void ReflectionExtension::isTemporary ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE pour les extensions chargées par la fonction dl(), FALSE sinon.

Voir aussi

  • ReflectionExtension::isPersistent() - Vérifie si l'extension est persistante


Récupère une représentation textuelle

  • « ReflectionExtension::isTemporary
  • ReflectionFunction »
  • PHP Manual
  • ReflectionExtension
  • Récupère une représentation textuelle

ReflectionExtension::__toString

(PHP 5, PHP 7)

ReflectionExtension::__toString — Récupère une représentation textuelle

Description

public string ReflectionExtension::__toString ( void )

Exporte une extension reflétée et retourne le résultat sous forme de string. Cette méthode est similaire à ReflectionExtension::export() appelée avec le paramètre return à TRUE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'extension reflétée sous forme de chaîne de caractères, de la même façon que ReflectionExtension::export().

Voir aussi

  • ReflectionExtension::__construct() - Construit un nouvel objet ReflectionExtension
  • ReflectionExtension::export() - Exportation
  • __toString()


La classe ReflectionFunction

(PHP 5, PHP 7)

Introduction

La classe ReflectionFunction rapporte des informations sur une fonction.

Synopsis de la classe

ReflectionFunction extends ReflectionFunctionAbstract implements Reflector {
/* Constantes */
const integer IS_DEPRECATED = 262144 ;
/* Propriétés */
public $name ;
/* Méthodes */
public __construct ( mixed $name )
public static string export ( string $name [, string $return ] )
public Closure getClosure ( void )
public mixed invoke ([ mixed $parameter [, mixed $... ]] )
public mixed invokeArgs ( array $args )
public bool isDisabled ( void )
public string __toString ( void )
/* Méthodes héritées */
final private void ReflectionFunctionAbstract::__clone ( void )
public ReflectionClass ReflectionFunctionAbstract::getClosureScopeClass ( void )
public object ReflectionFunctionAbstract::getClosureThis ( void )
public string ReflectionFunctionAbstract::getDocComment ( void )
public int ReflectionFunctionAbstract::getEndLine ( void )
public ReflectionExtension ReflectionFunctionAbstract::getExtension ( void )
public string ReflectionFunctionAbstract::getExtensionName ( void )
public string ReflectionFunctionAbstract::getFileName ( void )
public string ReflectionFunctionAbstract::getName ( void )
public string ReflectionFunctionAbstract::getNamespaceName ( void )
public int ReflectionFunctionAbstract::getNumberOfParameters ( void )
public int ReflectionFunctionAbstract::getNumberOfRequiredParameters ( void )
public array ReflectionFunctionAbstract::getParameters ( void )
public ReflectionType ReflectionFunctionAbstract::getReturnType ( void )
public string ReflectionFunctionAbstract::getShortName ( void )
public int ReflectionFunctionAbstract::getStartLine ( void )
public array ReflectionFunctionAbstract::getStaticVariables ( void )
public bool ReflectionFunctionAbstract::hasReturnType ( void )
public bool ReflectionFunctionAbstract::inNamespace ( void )
public bool ReflectionFunctionAbstract::isClosure ( void )
public bool ReflectionFunctionAbstract::isDeprecated ( void )
public bool ReflectionFunctionAbstract::isGenerator ( void )
public bool ReflectionFunctionAbstract::isInternal ( void )
public bool ReflectionFunctionAbstract::isUserDefined ( void )
public bool ReflectionFunctionAbstract::isVariadic ( void )
public bool ReflectionFunctionAbstract::returnsReference ( void )
abstract public void ReflectionFunctionAbstract::__toString ( void )
}

Propriétés

name

Nom de la fonction. En lecture seule, émets une exception de type ReflectionException s'y l'on tente d'y écrire.

Constantes pré-définies

Modificateurs de ReflectionFunction

ReflectionFunction::IS_DEPRECATED

Indique une fonction obsolète.

Sommaire

  • ReflectionFunction::__construct — Construit un nouvel objet ReflectionFunction
  • ReflectionFunction::export — Exporte une fonction
  • ReflectionFunction::getClosure — Retourne une fermeture créée dynamiquement par la fonction
  • ReflectionFunction::invoke — Invoque une fonction
  • ReflectionFunction::invokeArgs — Invoque les arguments d'une fonction
  • ReflectionFunction::isDisabled — Vérifie si une fonction est désactivée
  • ReflectionFunction::__toString — Récupère une représentation textuelle


Construit un nouvel objet ReflectionFunction

  • « ReflectionFunction
  • ReflectionFunction::export »
  • PHP Manual
  • ReflectionFunction
  • Construit un nouvel objet ReflectionFunction

ReflectionFunction::__construct

(PHP 5, PHP 7)

ReflectionFunction::__construct — Construit un nouvel objet ReflectionFunction

Description

public ReflectionFunction::__construct ( mixed $name )

Construit un nouvel objet ReflectionFunction.

Liste de paramètres

name

Le nom de la fonction à refléter ou une fermeture.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Une exception ReflectionException si le paramètre name contient une fonction invalide.

Historique

Version | Description
5.3.0 | name autorise maintenant les fonctions anonymes.

Exemples

Exemple #1 Exemple avec ReflectionFunction::__construct()

<?php
/**
 * Un simple compteur
 *
 * @return    int
 */
function counter1()
{
    static $c = 0;
    return ++$c;
}

/**
 * Une autre simple compteur
 *
 * @return    int
 */
$counter2 = function()
{
    static $d = 0;
    return ++$d;

};

function dumpReflectionFunction($func)
{
    // Affiche des informations basiques
    printf(
        "\n\n===> The %s function '%s'\n".
        "     declared in %s\n".
        "     lines %d to %d\n",
        $func->isInternal() ? 'internal' : 'user-defined',
        $func->getName(),
        $func->getFileName(),
        $func->getStartLine(),
        $func->getEndline()
    );

    // Affiche les commentaires de documentation
    printf("---> Documentation:\n %s\n", var_export($func->getDocComment(), 1));

    // Affiche les variables statiques existantes
    if ($statics = $func->getStaticVariables())
    {
        printf("---> Static variables: %s\n", var_export($statics, 1));
    }
}

// Créer une instance de la classe ReflectionFunction
dumpReflectionFunction(new ReflectionFunction('counter1'));
dumpReflectionFunction(new ReflectionFunction($counter2));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

===> The user-defined function 'counter1'
     declared in Z:\reflectcounter.php
     lines 7 to 11
---> Documentation:
 '/**
 * A simple counter
 *
 * @return    int
 */'
---> Static variables: array (
  'c' => 0,
)

===> The user-defined function '{closure}'
     declared in Z:\reflectcounter.php
     lines 18 to 23
---> Documentation:
 '/**
 * Another simple counter
 *
 * @return    int
 */'
---> Static variables: array (
  'd' => 0,
)

Voir aussi

  • ReflectionMethod::__construct() - Construit un nouvel objet ReflectionMethod
  • Les constructeurs


Exporte une fonction

  • « ReflectionFunction::__construct
  • ReflectionFunction::getClosure »
  • PHP Manual
  • ReflectionFunction
  • Exporte une fonction

ReflectionFunction::export

(PHP 5, PHP 7)

ReflectionFunction::export — Exporte une fonction

Description

public static string ReflectionFunction::export ( string $name [, string $return ] )

Exporte une fonction reflétée.

Liste de paramètres

name

La réflection à exporter.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Si le paramètre return est défini à TRUE, l'export sera retourné sous la forme d'une chaîne de caractères, sinon, NULL sera retourné.

Voir aussi

  • ReflectionFunction::invoke() - Invoque une fonction


Retourne une fermeture créée dynamiquement par la fonction

  • « ReflectionFunction::export
  • ReflectionFunction::invoke »
  • PHP Manual
  • ReflectionFunction
  • Retourne une fermeture créée dynamiquement par la fonction

ReflectionFunction::getClosure

(PHP >= 5.4.0)

ReflectionFunction::getClosure — Retourne une fermeture créée dynamiquement par la fonction

Description

public Closure ReflectionFunction::getClosure ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet Closure. Retourne NULL si une erreur survient.


Invoque une fonction

  • « ReflectionFunction::getClosure
  • ReflectionFunction::invokeArgs »
  • PHP Manual
  • ReflectionFunction
  • Invoque une fonction

ReflectionFunction::invoke

(PHP 5, PHP 7)

ReflectionFunction::invoke — Invoque une fonction

Description

public mixed ReflectionFunction::invoke ([ mixed $parameter [, mixed $... ]] )

Invoque une fonction reflétée.

Liste de paramètres

args

La liste d'arguments à passer à la fonction. Il est possible de passer un nombre variable d'arguments à la fonction, comme pour la fonction call_user_func().

Valeurs de retour

Retourne le résultat de la fonction invoquée.

Exemples

Exemple #1 Exemple avec ReflectionFunction::invoke()

<?php
function title($title, $name)
{
   return sprintf("%s. %s\r\n", $title, $name);
}

$function = new ReflectionFunction('title');

echo $function->invoke('Dr', 'Phil');
?>

L'exemple ci-dessus va afficher :

Dr. Phil

Notes

Note:

Si la fonction a des arguments qui ont besoin d'être des références, alors ils doivent être passés par références dans la liste des arguments.

Voir aussi

  • ReflectionFunction::export() - Exporte une fonction
  • __invoke()
  • call_user_func() - Appelle une fonction de rappel fournie par le premier argument


Invoque les arguments d'une fonction

  • « ReflectionFunction::invoke
  • ReflectionFunction::isDisabled »
  • PHP Manual
  • ReflectionFunction
  • Invoque les arguments d'une fonction

ReflectionFunction::invokeArgs

(PHP 5 >= 5.1.0, PHP 7)

ReflectionFunction::invokeArgs — Invoque les arguments d'une fonction

Description

public mixed ReflectionFunction::invokeArgs ( array $args )

Invoque la fonction et lui passe les arguments sous la forme d'un tableau.

Liste de paramètres

args

Les arguments à utiliser lors de l'invocation, de la même forme que pour call_user_func_array().

Valeurs de retour

Retourne le résultat de la fonction invoquée.

Exemples

Exemple #1 ReflectionFunction::invokeArgs() example

<?php
function title($title, $name)
{
    return sprintf("%s. %s\r\n", $title, $name);
}

$function = new ReflectionFunction('title');

echo $function->invokeArgs(array('Dr', 'Phil'));
?>

L'exemple ci-dessus va afficher :

Dr. Phil

Exemple #2 Exemple pour ReflectionFunction::invokeArgs() avec des références

<?php
function get_false_conditions(array $conditions, array &$false_conditions)
{
    foreach($conditions as $condition) {
       if(!$condition) {
          $false_conditions[] = $condition;
       }
    }
}

$function_ref = new ReflectionFunction('get_false_conditions');

$conditions       = array(true, false, -1, 0, 1);
$false_conditions = array();

$function_ref->invokeArgs(array($conditions, &$false_conditions));

var_dump($false_conditions);
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  bool(false)
  [1]=>
  int(0)
}

Notes

Note:

Si la fonction a des arguments qui ont besoin d'être des références, alors ils doivent être passés par références dans la liste des arguments.

Voir aussi

  • ReflectionFunction::invoke() - Invoque une fonction
  • ReflectionFunctionAbstract::getNumberOfParameters() - Récupère le nombre de paramètres
  • __invoke()
  • call_user_func_array() - Appelle une fonction de rappel avec les paramètres rassemblés en tableau


Vérifie si une fonction est désactivée

  • « ReflectionFunction::invokeArgs
  • ReflectionFunction::__toString »
  • PHP Manual
  • ReflectionFunction
  • Vérifie si une fonction est désactivée

ReflectionFunction::isDisabled

(PHP 5, PHP 7)

ReflectionFunction::isDisabled — Vérifie si une fonction est désactivée

Description

public bool ReflectionFunction::isDisabled ( void )

Vérifie si une fonction est désactivée, via la directive disable_functions.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la fonction est désactivée, FALSE sinon.

Voir aussi

  • ReflectionFunctionAbstract::isUserDefined() - Vérifie si la fonction est définie dans l'espace utilisateur
  • La directive disable_functions


Récupère une représentation textuelle

  • « ReflectionFunction::isDisabled
  • ReflectionFunctionAbstract »
  • PHP Manual
  • ReflectionFunction
  • Récupère une représentation textuelle

ReflectionFunction::__toString

(PHP 5, PHP 7)

ReflectionFunction::__toString — Récupère une représentation textuelle

Description

public string ReflectionFunction::__toString ( void )

Récupère une représentation textuelle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une représentation textuelle semblable à ReflectionFunction::export().

Exemples

Exemple #1 Exemple pour ReflectionFunction::__toString()

<?php
function title($title, $name)
{
    return sprintf("%s. %s\r\n", $title, $name);
}

echo new ReflectionFunction('title');
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Function [ <user> function title ] {
  @@ Command line code 1 - 1

  - Parameters [2] {
    Parameter #0 [ <required> $title ]
    Parameter #1 [ <required> $name ]
  }
}

Voir aussi

  • ReflectionFunction::export() - Exporte une fonction
  • ReflectionClassAbstract::clone()
  • __toString()


La classe ReflectionFunctionAbstract

(PHP 5, PHP 7)

Introduction

Une classe parente à ReflectionFunction, lisez sa description pour plus de détails.

Synopsis de la classe

ReflectionFunctionAbstract implements Reflector {
/* Propriétés */
public $name ;
/* Méthodes */
final private void __clone ( void )
public ReflectionClass getClosureScopeClass ( void )
public object getClosureThis ( void )
public string getDocComment ( void )
public int getEndLine ( void )
public ReflectionExtension getExtension ( void )
public string getExtensionName ( void )
public string getFileName ( void )
public string getName ( void )
public string getNamespaceName ( void )
public int getNumberOfParameters ( void )
public int getNumberOfRequiredParameters ( void )
public array getParameters ( void )
public ReflectionType getReturnType ( void )
public string getShortName ( void )
public int getStartLine ( void )
public array getStaticVariables ( void )
public bool hasReturnType ( void )
public bool inNamespace ( void )
public bool isClosure ( void )
public bool isDeprecated ( void )
public bool isGenerator ( void )
public bool isInternal ( void )
public bool isUserDefined ( void )
public bool isVariadic ( void )
public bool returnsReference ( void )
abstract public void __toString ( void )
}

Propriétés

name

Nom de la fonction. En lecture seule, émets une exception de type ReflectionException si on tente d'y écrire.

Sommaire

  • ReflectionFunctionAbstract::__clone — Clone une fonction
  • ReflectionFunctionAbstract::getClosureScopeClass — Retourne le contexte associé à la closure
  • ReflectionFunctionAbstract::getClosureThis — Retourne le pointeur lié à la fermeture
  • ReflectionFunctionAbstract::getDocComment — Récupère un commentaire
  • ReflectionFunctionAbstract::getEndLine — Récupère le numéro de la dernière ligne
  • ReflectionFunctionAbstract::getExtension — Récupère les informations d'une extension
  • ReflectionFunctionAbstract::getExtensionName — Récupère le nom de l'extension
  • ReflectionFunctionAbstract::getFileName — Récupère le nom du fichier
  • ReflectionFunctionAbstract::getName — Récupère le nom d'une fonction
  • ReflectionFunctionAbstract::getNamespaceName — Récupère l'espace de noms
  • ReflectionFunctionAbstract::getNumberOfParameters — Récupère le nombre de paramètres
  • ReflectionFunctionAbstract::getNumberOfRequiredParameters — Récupère le nombre de paramètres requis
  • ReflectionFunctionAbstract::getParameters — Récupère les paramètres
  • ReflectionFunctionAbstract::getReturnType — Gets the specified return type of a function
  • ReflectionFunctionAbstract::getShortName — Récupère le nom court d'une fonction
  • ReflectionFunctionAbstract::getStartLine — Récupère le numéro de ligne de départ
  • ReflectionFunctionAbstract::getStaticVariables — Récupère les variables statiques
  • ReflectionFunctionAbstract::hasReturnType — Checks if the function has a specified return type
  • ReflectionFunctionAbstract::inNamespace — Vérifie si une fonction est dans un espace de noms
  • ReflectionFunctionAbstract::isClosure — Vérifie si c'est une fermeture
  • ReflectionFunctionAbstract::isDeprecated — Vérifie si la fonction est obsolète
  • ReflectionFunctionAbstract::isGenerator — Vérifie si la fonction est un générateur
  • ReflectionFunctionAbstract::isInternal — Vérifie si la fonction est une fonction interne
  • ReflectionFunctionAbstract::isUserDefined — Vérifie si la fonction est définie dans l'espace utilisateur
  • ReflectionFunctionAbstract::isVariadic — Vérifie si la fonction est variadique
  • ReflectionFunctionAbstract::returnsReference — Vérifie si la fonction retourne une référence
  • ReflectionFunctionAbstract::__toString — Récupère une représentation textuelle


Clone une fonction

  • « ReflectionFunctionAbstract
  • ReflectionFunctionAbstract::getClosureScopeClass »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Clone une fonction

ReflectionFunctionAbstract::__clone

(PHP 5, PHP 7)

ReflectionFunctionAbstract::__clone — Clone une fonction

Description

final private void ReflectionFunctionAbstract::__clone ( void )

Clone une fonction.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • Le clonage d'objets


Retourne le contexte associé à la closure

  • « ReflectionFunctionAbstract::__clone
  • ReflectionFunctionAbstract::getClosureThis »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Retourne le contexte associé à la closure

ReflectionFunctionAbstract::getClosureScopeClass

(PHP >= 5.4.0)

ReflectionFunctionAbstract::getClosureScopeClass — Retourne le contexte associé à la closure

Description

public ReflectionClass ReflectionFunctionAbstract::getClosureScopeClass ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la classe en cas de succès, ou NULL si une erreur survient.


Retourne le pointeur lié à la fermeture

  • « ReflectionFunctionAbstract::getClosureScopeClass
  • ReflectionFunctionAbstract::getDocComment »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Retourne le pointeur lié à la fermeture

ReflectionFunctionAbstract::getClosureThis

(PHP >= 5.4.0)

ReflectionFunctionAbstract::getClosureThis — Retourne le pointeur lié à la fermeture

Description

public object ReflectionFunctionAbstract::getClosureThis ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le pointeur $this. Retourne NULL si une erreur survient.


Récupère un commentaire

  • « ReflectionFunctionAbstract::getClosureThis
  • ReflectionFunctionAbstract::getEndLine »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère un commentaire

ReflectionFunctionAbstract::getDocComment

(PHP 5 >= 5.1.0, PHP 7)

ReflectionFunctionAbstract::getDocComment — Récupère un commentaire

Description

public string ReflectionFunctionAbstract::getDocComment ( void )

Récupère un commentaire depuis une fonction.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le commentaire, s'il existe, FALSE sinon.

Voir aussi

  • ReflectionFunctionAbstract::getStartLine() - Récupère le numéro de ligne de départ


Récupère le numéro de la dernière ligne

  • « ReflectionFunctionAbstract::getDocComment
  • ReflectionFunctionAbstract::getExtension »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère le numéro de la dernière ligne

ReflectionFunctionAbstract::getEndLine

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getEndLine — Récupère le numéro de la dernière ligne

Description

public int ReflectionFunctionAbstract::getEndLine ( void )

Récupère le numéro de la dernière ligne.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le numéro de la dernière ligne d'une fonction définie dans l'espace utilisateur, ou bien FALSE si ce numéro n'est pas connu.

Voir aussi

  • ReflectionFunctionAbstract::getStartLine() - Récupère le numéro de ligne de départ


Récupère les informations d'une extension

  • « ReflectionFunctionAbstract::getEndLine
  • ReflectionFunctionAbstract::getExtensionName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère les informations d'une extension

ReflectionFunctionAbstract::getExtension

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getExtension — Récupère les informations d'une extension

Description

public ReflectionExtension ReflectionFunctionAbstract::getExtension ( void )

Récupère les informations d'une extension.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les informations de l'extension, sous la forme d'un objet ReflectionExtension.

Voir aussi

  • ReflectionFunctionAbstract::getExtensionName() - Récupère le nom de l'extension


Récupère le nom de l'extension

  • « ReflectionFunctionAbstract::getExtension
  • ReflectionFunctionAbstract::getFileName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère le nom de l'extension

ReflectionFunctionAbstract::getExtensionName

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getExtensionName — Récupère le nom de l'extension

Description

public string ReflectionFunctionAbstract::getExtensionName ( void )

Récupère le nom de l'extension.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de l'extension.

Voir aussi

  • ReflectionFunctionAbstract::getExtension() - Récupère les informations d'une extension


Récupère le nom du fichier

  • « ReflectionFunctionAbstract::getExtensionName
  • ReflectionFunctionAbstract::getName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère le nom du fichier

ReflectionFunctionAbstract::getFileName

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getFileName — Récupère le nom du fichier

Description

public string ReflectionFunctionAbstract::getFileName ( void )

Récupère le nom du fichier depuis une fonction définie dans l'espace utilisateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du fichier.

Voir aussi

  • ReflectionFunctionAbstract::getNamespaceName() - Récupère l'espace de noms


Récupère le nom d'une fonction

  • « ReflectionFunctionAbstract::getFileName
  • ReflectionFunctionAbstract::getNamespaceName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère le nom d'une fonction

ReflectionFunctionAbstract::getName

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getName — Récupère le nom d'une fonction

Description

public string ReflectionFunctionAbstract::getName ( void )

Récupère le nom d'une fonction.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de la fonction.

Voir aussi

  • ReflectionFunctionAbstract::getExtensionName() - Récupère le nom de l'extension
  • ReflectionFunctionAbstract::isUserDefined() - Vérifie si la fonction est définie dans l'espace utilisateur


Récupère l'espace de noms

  • « ReflectionFunctionAbstract::getName
  • ReflectionFunctionAbstract::getNumberOfParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère l'espace de noms

ReflectionFunctionAbstract::getNamespaceName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::getNamespaceName — Récupère l'espace de noms

Description

public string ReflectionFunctionAbstract::getNamespaceName ( void )

Récupère l'espace de noms depuis lequel la classe est définie.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de l'espace de noms.

Voir aussi

  • ReflectionFunctionAbstract::getFileName() - Récupère le nom du fichier
  • Les espaces de noms


Récupère le nombre de paramètres

  • « ReflectionFunctionAbstract::getNamespaceName
  • ReflectionFunctionAbstract::getNumberOfRequiredParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère le nombre de paramètres

ReflectionFunctionAbstract::getNumberOfParameters

(PHP 5 >= 5.0.3, PHP 7)

ReflectionFunctionAbstract::getNumberOfParameters — Récupère le nombre de paramètres

Description

public int ReflectionFunctionAbstract::getNumberOfParameters ( void )

Récupère le nombre de paramètres défini dans la fonction ; aussi bien les paramètres requis qu'optionnels.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre de paramètres.

Voir aussi

  • ReflectionFunctionAbstract::getNumberOfRequiredParameters() - Récupère le nombre de paramètres requis
  • func_num_args() - Retourne le nombre d'arguments passés à la fonction


Récupère le nombre de paramètres requis

  • « ReflectionFunctionAbstract::getNumberOfParameters
  • ReflectionFunctionAbstract::getParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère le nombre de paramètres requis

ReflectionFunctionAbstract::getNumberOfRequiredParameters

(PHP 5 >= 5.0.3, PHP 7)

ReflectionFunctionAbstract::getNumberOfRequiredParameters — Récupère le nombre de paramètres requis

Description

public int ReflectionFunctionAbstract::getNumberOfRequiredParameters ( void )

Récupère le nombre de paramètres requis par une fonction.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre de paramètres requis.

Voir aussi

  • ReflectionFunctionAbstract::getNumberOfParameters() - Récupère le nombre de paramètres


Récupère les paramètres

  • « ReflectionFunctionAbstract::getNumberOfRequiredParameters
  • ReflectionFunctionAbstract::getReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère les paramètres

ReflectionFunctionAbstract::getParameters

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getParameters — Récupère les paramètres

Description

public array ReflectionFunctionAbstract::getParameters ( void )

Récupère les paramètres, sous la forme d'un tableau d'objets ReflectionParameter.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les paramètres, sous la forme d'objets ReflectionParameter.

Voir aussi

  • ReflectionFunctionAbstract::getNumberOfParameters() - Récupère le nombre de paramètres
  • func_get_args() - Retourne les arguments d'une fonction sous la forme d'un tableau


Gets the specified return type of a function

  • « ReflectionFunctionAbstract::getParameters
  • ReflectionFunctionAbstract::getShortName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets the specified return type of a function

ReflectionFunctionAbstract::getReturnType

(PHP 7)

ReflectionFunctionAbstract::getReturnType — Gets the specified return type of a function

Description

public ReflectionType ReflectionFunctionAbstract::getReturnType ( void )

Gets the specified return type of a reflected function.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a ReflectionType object if a return type is specified, NULL otherwise.

Exemples

Exemple #1 ReflectionFunctionAbstract::getReturnType() example

<?php

function to_int($param) : int {
    return (int) $param;
}

$reflection1 = new ReflectionFunction('to_int');
echo $reflection1->getReturnType();

L'exemple ci-dessus va afficher :

int

Exemple #2 Usage on built-in functions

<?php

$reflection2 = new ReflectionFunction('array_merge');

var_dump($reflection2->getReturnType());

L'exemple ci-dessus va afficher :

null

This is because many internal functions do not have types specified for their parameters or return values. It is therefore best to avoid using this method on built-in functions.

Voir aussi

  • ReflectionFunctionAbstract::hasReturnType() - Checks if the function has a specified return type
  • ReflectionType::__toString() - To string


Récupère le nom court d'une fonction

  • « ReflectionFunctionAbstract::getReturnType
  • ReflectionFunctionAbstract::getStartLine »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère le nom court d'une fonction

ReflectionFunctionAbstract::getShortName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::getShortName — Récupère le nom court d'une fonction

Description

public string ReflectionFunctionAbstract::getShortName ( void )

Récupère le nom court d'une fonction (sans la partie concernant l'espace de noms).

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom court de la fonction.

Voir aussi

  • ReflectionFunctionAbstract::getNamespaceName() - Récupère l'espace de noms
  • Les espaces de noms


Récupère le numéro de ligne de départ

  • « ReflectionFunctionAbstract::getShortName
  • ReflectionFunctionAbstract::getStaticVariables »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère le numéro de ligne de départ

ReflectionFunctionAbstract::getStartLine

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getStartLine — Récupère le numéro de ligne de départ

Description

public int ReflectionFunctionAbstract::getStartLine ( void )

Récupère le numéro de ligne de départ de la fonction.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le numéro de la ligne de départ.

Voir aussi

  • ReflectionFunctionAbstract::getEndLine() - Récupère le numéro de la dernière ligne


Récupère les variables statiques

  • « ReflectionFunctionAbstract::getStartLine
  • ReflectionFunctionAbstract::hasReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère les variables statiques

ReflectionFunctionAbstract::getStaticVariables

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getStaticVariables — Récupère les variables statiques

Description

public array ReflectionFunctionAbstract::getStaticVariables ( void )

Récupère les variables statiques.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de variables statiques.

Voir aussi

  • ReflectionFunctionAbstract::getParameters() - Récupère les paramètres


Checks if the function has a specified return type

  • « ReflectionFunctionAbstract::getStaticVariables
  • ReflectionFunctionAbstract::inNamespace »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if the function has a specified return type

ReflectionFunctionAbstract::hasReturnType

(PHP 7)

ReflectionFunctionAbstract::hasReturnType — Checks if the function has a specified return type

Description

public bool ReflectionFunctionAbstract::hasReturnType ( void )

Checks whether the reflected function has a return type specified.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns TRUE if the function is a specified return type, otherwise FALSE.

Exemples

Exemple #1 ReflectionFunctionAbstract::hasReturnType() example

<?php

function to_int($param) : int {
    return (int) $param;
}

$reflection1 = new ReflectionFunction('to_int');
var_dump($reflection1->hasReturnType());

L'exemple ci-dessus va afficher :

bool(true)

Exemple #2 Usage on built-in functions

<?php

$reflection2 = new ReflectionFunction('array_merge');

var_dump($reflection2->hasReturnType());

L'exemple ci-dessus va afficher :

bool(false)

This is because many internal functions do not have types specified for their parameters or return values. It is therefore best to avoid using this method on built-in functions.

Voir aussi

  • ReflectionFunctionAbstract::getReturnType() - Gets the specified return type of a function


Vérifie si une fonction est dans un espace de noms

  • « ReflectionFunctionAbstract::hasReturnType
  • ReflectionFunctionAbstract::isClosure »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Vérifie si une fonction est dans un espace de noms

ReflectionFunctionAbstract::inNamespace

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::inNamespace — Vérifie si une fonction est dans un espace de noms

Description

public bool ReflectionFunctionAbstract::inNamespace ( void )

Vérifie si une fonction est dans un espace de noms.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la fonction est dans l'espace de noms, FALSE sinon.

Voir aussi

  • ReflectionFunctionAbstract::getNamespaceName() - Récupère l'espace de noms
  • Les espaces de noms


Vérifie si c'est une fermeture

  • « ReflectionFunctionAbstract::inNamespace
  • ReflectionFunctionAbstract::isDeprecated »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Vérifie si c'est une fermeture

ReflectionFunctionAbstract::isClosure

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::isClosure — Vérifie si c'est une fermeture

Description

public bool ReflectionFunctionAbstract::isClosure ( void )

Vérifie si la fonction réfléchie est une Closure.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la fonction est une Closure, sinon FALSE

Exemples

Exemple #1 Exemple de ReflectionFunctionAbstract::isClosure()

<?php
// Non-closure
$function1 = 'str_replace';
$reflection1 = new ReflectionFunction($function1);
var_dump($reflection1->isClosure());

// Closure
$function2 = function () {};
$reflection2 = new ReflectionFunction($function2);
var_dump($reflection2->isClosure());
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

  • ReflectionFunctionAbstract::isGenerator() - Vérifie si la fonction est un générateur


Vérifie si la fonction est obsolète

  • « ReflectionFunctionAbstract::isClosure
  • ReflectionFunctionAbstract::isGenerator »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Vérifie si la fonction est obsolète

ReflectionFunctionAbstract::isDeprecated

(PHP 5, PHP 7)

ReflectionFunctionAbstract::isDeprecated — Vérifie si la fonction est obsolète

Description

public bool ReflectionFunctionAbstract::isDeprecated ( void )

Vérifie si la fonction est obsolète.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la fonction est obsolète, FALSE sinon.

Exemples

Exemple #1 Exemple avec ReflectionFunctionAbstract::isDeprecated()

<?php
$rf = new ReflectionFunction('ereg');
var_dump($rf->isDeprecated());
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • ReflectionFunctionAbstract::getDocComment() - Récupère un commentaire


Vérifie si la fonction est un générateur

  • « ReflectionFunctionAbstract::isDeprecated
  • ReflectionFunctionAbstract::isInternal »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Vérifie si la fonction est un générateur

ReflectionFunctionAbstract::isGenerator

(PHP 5 >= 5.5.0, PHP 7)

ReflectionFunctionAbstract::isGenerator — Vérifie si la fonction est un générateur

Description

public bool ReflectionFunctionAbstract::isGenerator ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la fonction est un générateur, FALSE si ca n'en est pas un, ou NULL si une erreur survient.


Vérifie si la fonction est une fonction interne

  • « ReflectionFunctionAbstract::isGenerator
  • ReflectionFunctionAbstract::isUserDefined »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Vérifie si la fonction est une fonction interne

ReflectionFunctionAbstract::isInternal

(PHP 5, PHP 7)

ReflectionFunctionAbstract::isInternal — Vérifie si la fonction est une fonction interne

Description

public bool ReflectionFunctionAbstract::isInternal ( void )

Vérifie si la fonction est une fonction interne, au lieu d'une fonction définie dans l'espace utilisateur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la fonction est une fonction interne, FALSE sinon.

Voir aussi

  • ReflectionFunctionAbstract::isUserDefined() - Vérifie si la fonction est définie dans l'espace utilisateur


Vérifie si la fonction est définie dans l'espace utilisateur

  • « ReflectionFunctionAbstract::isInternal
  • ReflectionFunctionAbstract::isVariadic »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Vérifie si la fonction est définie dans l'espace utilisateur

ReflectionFunctionAbstract::isUserDefined

(PHP 5, PHP 7)

ReflectionFunctionAbstract::isUserDefined — Vérifie si la fonction est définie dans l'espace utilisateur

Description

public bool ReflectionFunctionAbstract::isUserDefined ( void )

Vérifie si la fonction est définie dans l'espace utilisateur, au lieu d'être une fonction interne.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la fonction a été définie dans l'espace utilisateur, FALSE sinon.

Voir aussi

  • ReflectionFunctionAbstract::isInternal() - Vérifie si la fonction est une fonction interne


Vérifie si la fonction est variadique

  • « ReflectionFunctionAbstract::isUserDefined
  • ReflectionFunctionAbstract::returnsReference »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Vérifie si la fonction est variadique

ReflectionFunctionAbstract::isVariadic

(PHP 5 >= 5.6.0, PHP 7)

ReflectionFunctionAbstract::isVariadic — Vérifie si la fonction est variadique

Description

public bool ReflectionFunctionAbstract::isVariadic ( void )

Vérifie si la fonction est variadique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la fonction est variadique, FALSE sinon.


Vérifie si la fonction retourne une référence

  • « ReflectionFunctionAbstract::isVariadic
  • ReflectionFunctionAbstract::__toString »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Vérifie si la fonction retourne une référence

ReflectionFunctionAbstract::returnsReference

(PHP 5, PHP 7)

ReflectionFunctionAbstract::returnsReference — Vérifie si la fonction retourne une référence

Description

public bool ReflectionFunctionAbstract::returnsReference ( void )

Vérifie si la fonction retourne une référence.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la fonction retourne une référence, FALSE sinon.

Voir aussi

  • ReflectionFunctionAbstract::isClosure() - Vérifie si c'est une fermeture


Récupère une représentation textuelle

  • « ReflectionFunctionAbstract::returnsReference
  • ReflectionMethod »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère une représentation textuelle

ReflectionFunctionAbstract::__toString

(PHP 5, PHP 7)

ReflectionFunctionAbstract::__toString — Récupère une représentation textuelle

Description

abstract public void ReflectionFunctionAbstract::__toString ( void )

Récupère une représentation textuelle.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères.

Voir aussi

  • ReflectionClass::clone()
  • __toString()


La classe ReflectionMethod

(PHP 5, PHP 7)

Introduction

La classe ReflectionMethod rapporte des informations sur une méthode.

Synopsis de la classe

ReflectionMethod extends ReflectionFunctionAbstract implements Reflector {
/* Constantes */
const integer IS_STATIC = 1 ;
const integer IS_PUBLIC = 256 ;
const integer IS_PROTECTED = 512 ;
const integer IS_PRIVATE = 1024 ;
const integer IS_ABSTRACT = 2 ;
const integer IS_FINAL = 4 ;
/* Propriétés */
public $name ;
public $class ;
/* Méthodes */
public __construct ( mixed $class , string $name )
public static string export ( string $class , string $name [, bool $return = false ] )
public Closure getClosure ( object $object )
public ReflectionClass getDeclaringClass ( void )
public int getModifiers ( void )
public ReflectionMethod getPrototype ( void )
public mixed invoke ( object $object [, mixed $parameter [, mixed $... ]] )
public mixed invokeArgs ( object $object , array $args )
public bool isAbstract ( void )
public bool isConstructor ( void )
public bool isDestructor ( void )
public bool isFinal ( void )
public bool isPrivate ( void )
public bool isProtected ( void )
public bool isPublic ( void )
public bool isStatic ( void )
public void setAccessible ( bool $accessible )
public string __toString ( void )
/* Méthodes héritées */
final private void ReflectionFunctionAbstract::__clone ( void )
public ReflectionClass ReflectionFunctionAbstract::getClosureScopeClass ( void )
public object ReflectionFunctionAbstract::getClosureThis ( void )
public string ReflectionFunctionAbstract::getDocComment ( void )
public int ReflectionFunctionAbstract::getEndLine ( void )
public ReflectionExtension ReflectionFunctionAbstract::getExtension ( void )
public string ReflectionFunctionAbstract::getExtensionName ( void )
public string ReflectionFunctionAbstract::getFileName ( void )
public string ReflectionFunctionAbstract::getName ( void )
public string ReflectionFunctionAbstract::getNamespaceName ( void )
public int ReflectionFunctionAbstract::getNumberOfParameters ( void )
public int ReflectionFunctionAbstract::getNumberOfRequiredParameters ( void )
public array ReflectionFunctionAbstract::getParameters ( void )
public ReflectionType ReflectionFunctionAbstract::getReturnType ( void )
public string ReflectionFunctionAbstract::getShortName ( void )
public int ReflectionFunctionAbstract::getStartLine ( void )
public array ReflectionFunctionAbstract::getStaticVariables ( void )
public bool ReflectionFunctionAbstract::hasReturnType ( void )
public bool ReflectionFunctionAbstract::inNamespace ( void )
public bool ReflectionFunctionAbstract::isClosure ( void )
public bool ReflectionFunctionAbstract::isDeprecated ( void )
public bool ReflectionFunctionAbstract::isGenerator ( void )
public bool ReflectionFunctionAbstract::isInternal ( void )
public bool ReflectionFunctionAbstract::isUserDefined ( void )
public bool ReflectionFunctionAbstract::isVariadic ( void )
public bool ReflectionFunctionAbstract::returnsReference ( void )
abstract public void ReflectionFunctionAbstract::__toString ( void )
}

Propriétés

name

Nom de la méthode

class

Nom de la classe

Constantes pré-définies

Modificateurs de ReflectionMethod

ReflectionMethod::IS_STATIC

Indique que la méthode est statique

ReflectionMethod::IS_PUBLIC

Indique que la méthode est publique

ReflectionMethod::IS_PROTECTED

Indique que la méthode est protégée

ReflectionMethod::IS_PRIVATE

Indique que la méthode est privée

ReflectionMethod::IS_ABSTRACT

Indique que la méthode est abstraite

ReflectionMethod::IS_FINAL

Indique que la méthode est finale

Sommaire

  • ReflectionMethod::__construct — Construit un nouvel objet ReflectionMethod
  • ReflectionMethod::export — Exportation d'une méthode de reflection
  • ReflectionMethod::getClosure — Retourne une fermeture créée dynamiquement pour la méthode
  • ReflectionMethod::getDeclaringClass — Récupère la déclaration de la classe de la méthode réléchie
  • ReflectionMethod::getModifiers — Récupère les modificateurs de la méthode
  • ReflectionMethod::getPrototype — Récupère le prototype de la méthode (s'il existe)
  • ReflectionMethod::invoke — Invoque
  • ReflectionMethod::invokeArgs — Invoque les arguments
  • ReflectionMethod::isAbstract — Vérifie si la méthode est abstraite
  • ReflectionMethod::isConstructor — Vérifie si la méthode est un constructeur
  • ReflectionMethod::isDestructor — Vérifie si la méthode est un destructeur
  • ReflectionMethod::isFinal — Vérifie si la méthode est finale
  • ReflectionMethod::isPrivate — Vérifie si la méthode est privée
  • ReflectionMethod::isProtected — Vérifie si la méthode est protégée
  • ReflectionMethod::isPublic — Vérifie si la méthode est publique
  • ReflectionMethod::isStatic — Vérifie si la méthode est statique
  • ReflectionMethod::setAccessible — Définit l'accessibilité de la méthode
  • ReflectionMethod::__toString — Retourne une représentation textuelle de la méthode


Construit un nouvel objet ReflectionMethod

  • « ReflectionMethod
  • ReflectionMethod::export »
  • PHP Manual
  • ReflectionMethod
  • Construit un nouvel objet ReflectionMethod

ReflectionMethod::__construct

(PHP 5, PHP 7)

ReflectionMethod::__construct — Construit un nouvel objet ReflectionMethod

Description

public ReflectionMethod::__construct ( mixed $class , string $name )
public ReflectionMethod::__construct ( string $class_method )

Construit un nouvel objet ReflectionMethod.

Liste de paramètres

class

Nom de classe -ou instance de celle-ci- qui contient la méthode.

name

Nom de la méthode.

class_method

Nom de classe et de méthode délimités par ::.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Une ReflectionException est émise si la méthode considérée n'existe pas.

Exemples

Exemple #1 Exemple avec ReflectionMethod::__construct()

<?php
class Counter
{
    private static $c = 0;

    /**
     * Compteur qui s'incrémente
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */
    final public static function increment()
    {
        return ++self::$c;
    }
}

// Crée une nouvelle instance de la classe ReflectionMethod
$method = new ReflectionMethod('Counter', 'increment');

// Affiche des informations
printf(
    "===> The %s%s%s%s%s%s%s method '%s' (which is %s)\n" .
    "     declared in %s\n" .
    "     lines %d to %d\n" .
    "     having the modifiers %d[%s]\n",
        $method->isInternal() ? 'internal' : 'user-defined',
        $method->isAbstract() ? ' abstract' : '',
        $method->isFinal() ? ' final' : '',
        $method->isPublic() ? ' public' : '',
        $method->isPrivate() ? ' private' : '',
        $method->isProtected() ? ' protected' : '',
        $method->isStatic() ? ' static' : '',
        $method->getName(),
        $method->isConstructor() ? 'the constructor' : 'a regular method',
        $method->getFileName(),
        $method->getStartLine(),
        $method->getEndline(),
        $method->getModifiers(),
        implode(' ', Reflection::getModifierNames($method->getModifiers()))
);

// Affiche le commentaire de la documentation
printf("---> Documentation:\n %s\n", var_export($method->getDocComment(), 1));

// Affiche les variables statiques, si elles existent
if ($statics= $method->getStaticVariables()) {
    printf("---> Static variables: %s\n", var_export($statics, 1));
}

// Invoque la méthode
printf("---> Invocation results in: ");
var_dump($method->invoke(NULL));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

===> The user-defined final public static method 'increment' (which is a regular method)
     declared in /Users/philip/cvs/phpdoc/test.php
     lines 14 to 17
     having the modifiers 261[final public static]
---> Documentation:
 '/**
     * Compteur qui s'incrémente
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */'
---> Invocation results in: int(1)

Voir aussi

  • ReflectionMethod::export() - Exportation d'une méthode de reflection
  • Les constructeurs


Exportation d'une méthode de reflection

  • « ReflectionMethod::__construct
  • ReflectionMethod::getClosure »
  • PHP Manual
  • ReflectionMethod
  • Exportation d'une méthode de reflection

ReflectionMethod::export

(PHP 5, PHP 7)

ReflectionMethod::export — Exportation d'une méthode de reflection

Description

public static string ReflectionMethod::export ( string $class , string $name [, bool $return = false ] )

Exporte un objet ReflectionMethod.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

class

Le nom de la classe.

name

Le nom de la méthode.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Si le paramètre return est défini à TRUE, l'export sera retourné sous la forme d'une chaîne de caractères, sinon, NULL sera retourné.

Voir aussi

  • ReflectionMethod::__construct() - Construit un nouvel objet ReflectionMethod
  • ReflectionMethod::__toString() - Retourne une représentation textuelle de la méthode


Retourne une fermeture créée dynamiquement pour la méthode

  • « ReflectionMethod::export
  • ReflectionMethod::getDeclaringClass »
  • PHP Manual
  • ReflectionMethod
  • Retourne une fermeture créée dynamiquement pour la méthode

ReflectionMethod::getClosure

(PHP >= 5.4.0)

ReflectionMethod::getClosure — Retourne une fermeture créée dynamiquement pour la méthode

Description

public Closure ReflectionMethod::getClosure ( object $object )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

object

Interdit pour les méthodes statiques, requis pour les autres méthodes.

Valeurs de retour

Retourne un objet Closure. Retourne NULL si une erreur survient.


Récupère la déclaration de la classe de la méthode réléchie

  • « ReflectionMethod::getClosure
  • ReflectionMethod::getModifiers »
  • PHP Manual
  • ReflectionMethod
  • Récupère la déclaration de la classe de la méthode réléchie

ReflectionMethod::getDeclaringClass

(PHP 5, PHP 7)

ReflectionMethod::getDeclaringClass — Récupère la déclaration de la classe de la méthode réléchie

Description

public ReflectionClass ReflectionMethod::getDeclaringClass ( void )

Récupère la déclaration de la classe de la méthode réléchie

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass concernant la classe appartenant à la méthode réfléchie.

Exemples

Exemple #1 Exemple pour ReflectionMethod::getDeclaringClass()

<?php
class HelloWorld {

    protected function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod(new HelloWorld(), 'sayHelloTo');
var_dump($reflectionMethod->getDeclaringClass());
?>

L'exemple ci-dessus va afficher :

object(ReflectionClass)#2 (1) {
  ["name"]=>
  string(10) "HelloWorld"
}

Voir aussi

  • ReflectionMethod::isAbstract() - Vérifie si la méthode est abstraite


Récupère les modificateurs de la méthode

  • « ReflectionMethod::getDeclaringClass
  • ReflectionMethod::getPrototype »
  • PHP Manual
  • ReflectionMethod
  • Récupère les modificateurs de la méthode

ReflectionMethod::getModifiers

(PHP 5, PHP 7)

ReflectionMethod::getModifiers — Récupère les modificateurs de la méthode

Description

public int ReflectionMethod::getModifiers ( void )

Retourne un champ de bits de modificateurs d'accès pour cette méthode.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation numérique des modificateurs. Les modificateurs sont précisés plus bas. La signification de ces modificateurs est décrite dans les constantes prédéfinies.

Exemples

Exemple #1 Exemple avec ReflectionMethod::getModifiers()

<?php
class Testing
{
    final public static function foo()
    {
        return;
    }
    public function bar()
    {
        return;
    }
}

$foo = new ReflectionMethod('Testing', 'foo');

echo "Modificateurs pour la méthode foo():\n";
echo $foo->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($foo->getModifiers())) . "\n";

$bar = new ReflectionMethod('Testing', 'bar');

echo "Modificateurs pour la méthode bar():\n";
echo $bar->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($bar->getModifiers()));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Modificateurs pour la méthode foo():
261
final public static
Modificateurs pour la méthode bar():
65792
public

Voir aussi

  • Reflection::getModifierNames() - Récupère le nom d'un modificateur


Récupère le prototype de la méthode (s'il existe)

  • « ReflectionMethod::getModifiers
  • ReflectionMethod::invoke »
  • PHP Manual
  • ReflectionMethod
  • Récupère le prototype de la méthode (s'il existe)

ReflectionMethod::getPrototype

(PHP 5, PHP 7)

ReflectionMethod::getPrototype — Récupère le prototype de la méthode (s'il existe)

Description

public ReflectionMethod ReflectionMethod::getPrototype ( void )

Retourne le prototype de la méthode.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionMethod instance de la méthode.

Erreurs / Exceptions

Une exception ReflectionException sera émise si la méthode ne possède pas de prototype.

Exemples

Exemple #1 Exemple avec ReflectionMethod::getPrototype()

<?php
class Hello {

    public function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}
class HelloWorld extends Hello {

    public function sayHelloTo($name) {
        return 'Hello world: ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
var_dump($reflectionMethod->getPrototype());
?>

L'exemple ci-dessus va afficher :

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(10) "sayHelloTo"
  ["class"]=>
  string(5) "Hello"
}

Voir aussi

  • ReflectionMethod::getModifiers() - Récupère les modificateurs de la méthode


Invoque

  • « ReflectionMethod::getPrototype
  • ReflectionMethod::invokeArgs »
  • PHP Manual
  • ReflectionMethod
  • Invoque

ReflectionMethod::invoke

(PHP 5, PHP 7)

ReflectionMethod::invoke — Invoque

Description

public mixed ReflectionMethod::invoke ( object $object [, mixed $parameter [, mixed $... ]] )

Invoque une méthode reflétée.

Liste de paramètres

object

L'objet sur lequel invoquer la méthode. Pour les méthodes statiques, vous pouvez passer null comme paramètre.

parameter

Paramètres à passer à la méthode. Une liste variable de paramètres à passer est utilisée.

Valeurs de retour

Retourne le résultat de la méthode.

Erreurs / Exceptions

Une ReflectionException si object n'est pas une instance de la classe possédant la méthode réfléchie.

Une ReflectionException si l'invocation de la méthode échoue.

Exemples

Exemple #1 Exemple avec ReflectionMethod::invoke()

<?php
class HelloWorld {

    public function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
echo $reflectionMethod->invoke(new HelloWorld(), 'Mike');
?>

L'exemple ci-dessus va afficher :

Hello Mike

Notes

Note:

Si la fonction a des arguments qui ont besoin d'être des références, alors ils doivent être passés par références dans la liste des arguments.

Voir aussi

  • ReflectionMethod::invokeArgs() - Invoque les arguments
  • __invoke()
  • call_user_func() - Appelle une fonction de rappel fournie par le premier argument


Invoque les arguments

  • « ReflectionMethod::invoke
  • ReflectionMethod::isAbstract »
  • PHP Manual
  • ReflectionMethod
  • Invoque les arguments

ReflectionMethod::invokeArgs

(PHP 5 >= 5.1.0, PHP 7)

ReflectionMethod::invokeArgs — Invoque les arguments

Description

public mixed ReflectionMethod::invokeArgs ( object $object , array $args )

Invoque la méthode réfléchie et lui passe les arguments sous la forme d'un tableau.

Liste de paramètres

object

L'objet sur lequel invoquer la méthode. Si la méthode est statique, vous pouvez passer null pour ce paramètre.

args

Les paramètres à passer à la méthode, sous forme de tableau.

Valeurs de retour

Retourne le résultat de la méthode.

Erreurs / Exceptions

Une ReflectionException si object n'est pas une instance de la classe prévue pour cette méthode.

Une ReflectionException si l'invocation de la méthode échoue.

Exemples

Exemple #1 Exemple pour ReflectionMethod::invokeArgs()

<?php
class HelloWorld {

    public function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
echo $reflectionMethod->invokeArgs(new HelloWorld(), array('Mike'));
?>

L'exemple ci-dessus va afficher :

Hello Mike

Notes

Note:

Si la fonction a des arguments qui ont besoin d'être des références, alors ils doivent être passés par références dans la liste des arguments.

Voir aussi

  • ReflectionMethod::invoke() - Invoque
  • __invoke()
  • call_user_func_array() - Appelle une fonction de rappel avec les paramètres rassemblés en tableau


Vérifie si la méthode est abstraite

  • « ReflectionMethod::invokeArgs
  • ReflectionMethod::isConstructor »
  • PHP Manual
  • ReflectionMethod
  • Vérifie si la méthode est abstraite

ReflectionMethod::isAbstract

(PHP 5, PHP 7)

ReflectionMethod::isAbstract — Vérifie si la méthode est abstraite

Description

public bool ReflectionMethod::isAbstract ( void )

Vérifie si la méthode est abstraite.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est abstraite, FALSE sinon.

Voir aussi

  • ReflectionMethod::getDeclaringClass() - Récupère la déclaration de la classe de la méthode réléchie


Vérifie si la méthode est un constructeur

  • « ReflectionMethod::isAbstract
  • ReflectionMethod::isDestructor »
  • PHP Manual
  • ReflectionMethod
  • Vérifie si la méthode est un constructeur

ReflectionMethod::isConstructor

(PHP 5, PHP 7)

ReflectionMethod::isConstructor — Vérifie si la méthode est un constructeur

Description

public bool ReflectionMethod::isConstructor ( void )

Vérifie si la méthode est un constructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est un constructeur; FALSE sinon.

Voir aussi

  • ReflectionMethod::__construct() - Construit un nouvel objet ReflectionMethod
  • ReflectionMethod::isAbstract() - Vérifie si la méthode est abstraite
  • ReflectionMethod::isDestructor() - Vérifie si la méthode est un destructeur


Vérifie si la méthode est un destructeur

  • « ReflectionMethod::isConstructor
  • ReflectionMethod::isFinal »
  • PHP Manual
  • ReflectionMethod
  • Vérifie si la méthode est un destructeur

ReflectionMethod::isDestructor

(PHP 5, PHP 7)

ReflectionMethod::isDestructor — Vérifie si la méthode est un destructeur

Description

public bool ReflectionMethod::isDestructor ( void )

Vérifie si la méthode est un destructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est un destructeur, FALSE sinon.

Voir aussi

  • ReflectionMethod::isConstructor() - Vérifie si la méthode est un constructeur


Vérifie si la méthode est finale

  • « ReflectionMethod::isDestructor
  • ReflectionMethod::isPrivate »
  • PHP Manual
  • ReflectionMethod
  • Vérifie si la méthode est finale

ReflectionMethod::isFinal

(PHP 5, PHP 7)

ReflectionMethod::isFinal — Vérifie si la méthode est finale

Description

public bool ReflectionMethod::isFinal ( void )

Vérifie si la méthode est finale.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est finale, FALSE sinon.

Voir aussi

  • ReflectionMethod::isStatic() - Vérifie si la méthode est statique


Vérifie si la méthode est privée

  • « ReflectionMethod::isFinal
  • ReflectionMethod::isProtected »
  • PHP Manual
  • ReflectionMethod
  • Vérifie si la méthode est privée

ReflectionMethod::isPrivate

(PHP 5, PHP 7)

ReflectionMethod::isPrivate — Vérifie si la méthode est privée

Description

public bool ReflectionMethod::isPrivate ( void )

Vérifie si la méthode est privée.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est privée, FALSE sinon.

Voir aussi

  • ReflectionMethod::isPublic() - Vérifie si la méthode est publique


Vérifie si la méthode est protégée

  • « ReflectionMethod::isPrivate
  • ReflectionMethod::isPublic »
  • PHP Manual
  • ReflectionMethod
  • Vérifie si la méthode est protégée

ReflectionMethod::isProtected

(PHP 5, PHP 7)

ReflectionMethod::isProtected — Vérifie si la méthode est protégée

Description

public bool ReflectionMethod::isProtected ( void )

Vérifie si la méthode est protégée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est protégée, FALSE sinon.

Voir aussi

  • ReflectionMethod::isPrivate() - Vérifie si la méthode est privée


Vérifie si la méthode est publique

  • « ReflectionMethod::isProtected
  • ReflectionMethod::isStatic »
  • PHP Manual
  • ReflectionMethod
  • Vérifie si la méthode est publique

ReflectionMethod::isPublic

(PHP 5, PHP 7)

ReflectionMethod::isPublic — Vérifie si la méthode est publique

Description

public bool ReflectionMethod::isPublic ( void )

Vérifie si la méthode est publique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est statique, FALSE sinon.

Voir aussi

  • ReflectionMethod::isPrivate() - Vérifie si la méthode est privée


Vérifie si la méthode est statique

  • « ReflectionMethod::isPublic
  • ReflectionMethod::setAccessible »
  • PHP Manual
  • ReflectionMethod
  • Vérifie si la méthode est statique

ReflectionMethod::isStatic

(PHP 5, PHP 7)

ReflectionMethod::isStatic — Vérifie si la méthode est statique

Description

public bool ReflectionMethod::isStatic ( void )

Vérifie si la méthode est statique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la méthode est statique, FALSE sinon.

Voir aussi

  • ReflectionMethod::isFinal() - Vérifie si la méthode est finale


Définit l'accessibilité de la méthode

  • « ReflectionMethod::isStatic
  • ReflectionMethod::__toString »
  • PHP Manual
  • ReflectionMethod
  • Définit l'accessibilité de la méthode

ReflectionMethod::setAccessible

(PHP 5 >= 5.3.2, PHP 7)

ReflectionMethod::setAccessible — Définit l'accessibilité de la méthode

Description

public void ReflectionMethod::setAccessible ( bool $accessible )

Définit l'accessibilité de la méthode. Par exemple, ceci permet d'invoquer des méthodes protégées et privées.

Liste de paramètres

accessible

TRUE pour permettre l'accessibilité, ou FALSE.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ReflectionMethod::isPrivate() - Vérifie si la méthode est privée
  • ReflectionMethod::isProtected() - Vérifie si la méthode est protégée


Retourne une représentation textuelle de la méthode

  • « ReflectionMethod::setAccessible
  • ReflectionObject »
  • PHP Manual
  • ReflectionMethod
  • Retourne une représentation textuelle de la méthode

ReflectionMethod::__toString

(PHP 5, PHP 7)

ReflectionMethod::__toString — Retourne une représentation textuelle de la méthode

Description

public string ReflectionMethod::__toString ( void )

Récupère une représentation textuelle de la méthode.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation textuelle de cet objet ReflectionMethod.

Exemples

Exemple #1 ReflectionMethod::__toString() example

<?php
class HelloWorld {

    public function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod(new HelloWorld(), 'sayHelloTo');
echo $reflectionMethod;
?>

L'exemple ci-dessus va afficher :

Method [ <user> public method sayHelloTo ] {
  @@ /var/www/examples/reflection.php 16 - 18

  - Parameters [1] {
    Parameter #0 [ <required> $name ]
  }
}

Voir aussi

  • ReflectionMethod::export() - Exportation d'une méthode de reflection
  • __toString()


La classe ReflectionObject

(PHP 5, PHP 7)

Introduction

La classe ReflectionObject rapporte des informations sur un objet.

Synopsis de la classe

ReflectionObject extends ReflectionClass implements Reflector {
/* Constantes */
const integer IS_IMPLICIT_ABSTRACT = 16 ;
const integer IS_EXPLICIT_ABSTRACT = 32 ;
const integer IS_FINAL = 64 ;
/* Propriétés */
public $name ;
/* Méthodes */
public __construct ( object $argument )
public static string export ( string $argument [, bool $return ] )
/* Méthodes héritées */
public ReflectionClass::__construct ( mixed $argument )
public static string ReflectionClass::export ( mixed $argument [, bool $return = false ] )
public mixed ReflectionClass::getConstant ( string $name )
public array ReflectionClass::getConstants ( void )
public ReflectionMethod ReflectionClass::getConstructor ( void )
public array ReflectionClass::getDefaultProperties ( void )
public string ReflectionClass::getDocComment ( void )
public int ReflectionClass::getEndLine ( void )
public ReflectionExtension ReflectionClass::getExtension ( void )
public string ReflectionClass::getExtensionName ( void )
public string ReflectionClass::getFileName ( void )
public array ReflectionClass::getInterfaceNames ( void )
public array ReflectionClass::getInterfaces ( void )
public ReflectionMethod ReflectionClass::getMethod ( string $name )
public array ReflectionClass::getMethods ([ int $filter ] )
public int ReflectionClass::getModifiers ( void )
public string ReflectionClass::getName ( void )
public string ReflectionClass::getNamespaceName ( void )
public object ReflectionClass::getParentClass ( void )
public array ReflectionClass::getProperties ([ int $filter ] )
public ReflectionProperty ReflectionClass::getProperty ( string $name )
public string ReflectionClass::getShortName ( void )
public int ReflectionClass::getStartLine ( void )
public array ReflectionClass::getStaticProperties ( void )
public mixed ReflectionClass::getStaticPropertyValue ( string $name [, mixed &$def_value ] )
public array ReflectionClass::getTraitAliases ( void )
public array ReflectionClass::getTraitNames ( void )
public array ReflectionClass::getTraits ( void )
public bool ReflectionClass::hasConstant ( string $name )
public bool ReflectionClass::hasMethod ( string $name )
public bool ReflectionClass::hasProperty ( string $name )
public bool ReflectionClass::implementsInterface ( string $interface )
public bool ReflectionClass::inNamespace ( void )
public bool ReflectionClass::isAbstract ( void )
public bool ReflectionClass::isAnonymous ( void )
public bool ReflectionClass::isCloneable ( void )
public bool ReflectionClass::isFinal ( void )
public bool ReflectionClass::isInstance ( object $object )
public bool ReflectionClass::isInstantiable ( void )
public bool ReflectionClass::isInterface ( void )
public bool ReflectionClass::isInternal ( void )
public bool ReflectionClass::isIterateable ( void )
public bool ReflectionClass::isSubclassOf ( string $class )
public bool ReflectionClass::isTrait ( void )
public bool ReflectionClass::isUserDefined ( void )
public object ReflectionClass::newInstance ( mixed $args [, mixed $... ] )
public object ReflectionClass::newInstanceArgs ([ array $args ] )
public object ReflectionClass::newInstanceWithoutConstructor ( void )
public void ReflectionClass::setStaticPropertyValue ( string $name , string $value )
public string ReflectionClass::__toString ( void )
}

Propriétés

name

Nom de l'objet de la classe. En lecture seule, émets une exception de type ReflectionException si l'on tente d'y écrire.

Sommaire

  • ReflectionObject::__construct — Construit un nouvel objet ReflectionObject
  • ReflectionObject::export — Exportation


Construit un nouvel objet ReflectionObject

  • « ReflectionObject
  • ReflectionObject::export »
  • PHP Manual
  • ReflectionObject
  • Construit un nouvel objet ReflectionObject

ReflectionObject::__construct

(PHP 5, PHP 7)

ReflectionObject::__construct — Construit un nouvel objet ReflectionObject

Description

public ReflectionObject::__construct ( object $argument )

Construit un nouvel objet ReflectionObject.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

argument

Une instance de l'objet.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ReflectionObject::export() - Exportation
  • Les constructeurs


Exportation

  • « ReflectionObject::__construct
  • ReflectionParameter »
  • PHP Manual
  • ReflectionObject
  • Exportation

ReflectionObject::export

(PHP 5, PHP 7)

ReflectionObject::export — Exportation

Description

public static string ReflectionObject::export ( string $argument [, bool $return ] )

Exporte une réflexion.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

argument

La réflection à exporter.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Si le paramètre return est défini à TRUE, l'export sera retourné sous la forme d'une chaîne de caractères, sinon, NULL sera retourné.

Voir aussi

  • ReflectionObject::__construct() - Construit un nouvel objet ReflectionObject


La classe ReflectionParameter

(PHP 5, PHP 7)

Introduction

La classe ReflectionParameter récupère les informations sur les paramètres des fonctions ou des méthodes.

Pour introspecter les paramètres des fonctions, tout d'abord, une instance de la classe ReflectionFunction ou de la classe ReflectionMethod est créée, puis, la méthode ReflectionFunctionAbstract::getParameters() est utilisé pour créer un tableau des paramètres.

Synopsis de la classe

ReflectionParameter implements Reflector {
/* Propriétés */
public $name ;
/* Méthodes */
public bool allowsNull ( void )
public bool canBePassedByValue ( void )
final private void __clone ( void )
public __construct ( string $function , string $parameter )
public static string export ( string $function , string $parameter [, bool $return ] )
public ReflectionClass getClass ( void )
public ReflectionClass getDeclaringClass ( void )
public ReflectionFunctionAbstract getDeclaringFunction ( void )
public mixed getDefaultValue ( void )
public string getDefaultValueConstantName ( void )
public string getName ( void )
public int getPosition ( void )
public ReflectionType getType ( void )
public bool hasType ( void )
public bool isArray ( void )
public bool isCallable ( void )
public bool isDefaultValueAvailable ( void )
public bool isDefaultValueConstant ( void )
public bool isOptional ( void )
public bool isPassedByReference ( void )
public bool isVariadic ( void )
public string __toString ( void )
}

Propriétés

name

Nom du paramètre. En lecture seule, émets une exception de type ReflectionException si l'on tente d'y écrire.

Sommaire

  • ReflectionParameter::allowsNull — Vérifie si la valeur NULL est autorisée comme valeur du paramètre
  • ReflectionParameter::canBePassedByValue — Vérifie si le paramètre peut être passé par valeur
  • ReflectionParameter::__clone — Clonage
  • ReflectionParameter::__construct — Constructeur
  • ReflectionParameter::export — Exportation
  • ReflectionParameter::getClass — Récupère la classe de typage d'objets
  • ReflectionParameter::getDeclaringClass — Récupère la classe déclarante
  • ReflectionParameter::getDeclaringFunction — Récupère la fonction déclarante
  • ReflectionParameter::getDefaultValue — Récupère la valeur par défaut du paramètre
  • ReflectionParameter::getDefaultValueConstantName — Retourne le nom de la constante de la valeur par défaut si la valeur est une constante, NULL sinon
  • ReflectionParameter::getName — Récupère le nom du paramètre
  • ReflectionParameter::getPosition — Récupère la position d'un paramètre
  • ReflectionParameter::getType — Gets a parameter's type
  • ReflectionParameter::hasType — Checks if parameter has a type
  • ReflectionParameter::isArray — Vérifie si le paramètre attend un tableau
  • ReflectionParameter::isCallable — Vérifie si le paramètre est de type callable
  • ReflectionParameter::isDefaultValueAvailable — Vérifie si une valeur par défaut est disponible pour le paramètre
  • ReflectionParameter::isDefaultValueConstant — Vérifie si la valeur par défaut du paramètre est une constante
  • ReflectionParameter::isOptional — Vérifie si le paramètre est optionnel
  • ReflectionParameter::isPassedByReference — Vérifie si le paramètre est passé par référence
  • ReflectionParameter::isVariadic — Vérifie si le paramètre est variadique
  • ReflectionParameter::__toString — Récupère une représentation textuelle


Vérifie si la valeur NULL est autorisée comme valeur du paramètre

  • « ReflectionParameter
  • ReflectionParameter::canBePassedByValue »
  • PHP Manual
  • ReflectionParameter
  • Vérifie si la valeur NULL est autorisée comme valeur du paramètre

ReflectionParameter::allowsNull

(PHP 5, PHP 7)

ReflectionParameter::allowsNull — Vérifie si la valeur NULL est autorisée comme valeur du paramètre

Description

public bool ReflectionParameter::allowsNull ( void )

Vérifie si la valeur NULL est autorisée comme valeur du paramètre.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la valeur NULL est autorisée comme valeur du paramètre, FALSE sinon.

Voir aussi

  • ReflectionParameter::isOptional() - Vérifie si le paramètre est optionnel


Vérifie si le paramètre peut être passé par valeur

  • « ReflectionParameter::allowsNull
  • ReflectionParameter::__clone »
  • PHP Manual
  • ReflectionParameter
  • Vérifie si le paramètre peut être passé par valeur

ReflectionParameter::canBePassedByValue

(PHP >= 5.4.0)

ReflectionParameter::canBePassedByValue — Vérifie si le paramètre peut être passé par valeur

Description

public bool ReflectionParameter::canBePassedByValue ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le paramètre peut être passé par valeur, FALSE sinon. Retourne NULL si une erreur survient.


Clonage

  • « ReflectionParameter::canBePassedByValue
  • ReflectionParameter::__construct »
  • PHP Manual
  • ReflectionParameter
  • Clonage

ReflectionParameter::__clone

(PHP 5, PHP 7)

ReflectionParameter::__clone — Clonage

Description

final private void ReflectionParameter::__clone ( void )

Clonage.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • ReflectionParameter::toString()
  • Le clonage d'objet


Constructeur

  • « ReflectionParameter::__clone
  • ReflectionParameter::export »
  • PHP Manual
  • ReflectionParameter
  • Constructeur

ReflectionParameter::__construct

(PHP 5, PHP 7)

ReflectionParameter::__construct — Constructeur

Description

public ReflectionParameter::__construct ( string $function , string $parameter )

Construit une nouvelle classe ReflectionParameter.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

function

La fonction depuis laquelle les paramètres sont reflétés.

parameter

Le paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec ReflectionParameter

<?php
function foo($a, $b, $c) { }
function bar(Exception $a, &$b, $c) { }
function baz(ReflectionFunction $a, $b = 1, $c = null) { }
function abc() { }

$reflect = new ReflectionFunction('foo');

echo $reflect;

foreach ($reflect->getParameters() as $i => $param) {
    printf(
        "-- Parameter #%d: %s {\n".
        "   Class: %s\n".
        "   Allows NULL: %s\n".
        "   Passed to by reference: %s\n".
        "   Is optional?: %s\n".
        "}\n",
        $i, // $param->getPosition() can be used from PHP 5.2.3
        $param->getName(),
        var_export($param->getClass(), 1),
        var_export($param->allowsNull(), 1),
        var_export($param->isPassedByReference(), 1),
        $param->isOptional() ? 'yes' : 'no'
    );
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Function [ <user> function foo ] {
  @@ /Users/philip/cvs/phpdoc/a 2 - 2

  - Parameters [3] {
    Parameter #0 [ <required> $a ]
    Parameter #1 [ <required> $b ]
    Parameter #2 [ <required> $c ]
  }
}
-- Parameter #0: a {
   Class: NULL
   Allows NULL: true
   Passed to by reference: false
   Is optional?: no
}
-- Parameter #1: b {
   Class: NULL
   Allows NULL: true
   Passed to by reference: false
   Is optional?: no
}
-- Parameter #2: c {
   Class: NULL
   Allows NULL: true
   Passed to by reference: false
   Is optional?: no
}

Voir aussi

  • ReflectionFunction::__construct() - Construit un nouvel objet ReflectionFunction
  • ReflectionMethod::__construct() - Construit un nouvel objet ReflectionMethod
  • Les constructeurs


Exportation

  • « ReflectionParameter::__construct
  • ReflectionParameter::getClass »
  • PHP Manual
  • ReflectionParameter
  • Exportation

ReflectionParameter::export

(PHP 5, PHP 7)

ReflectionParameter::export — Exportation

Description

public static string ReflectionParameter::export ( string $function , string $parameter [, bool $return ] )

Exportation.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

function

Le nom de la fonction.

parameter

Le nom du paramètre.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

La réflexion exportée.

Voir aussi

  • ReflectionParameter::toString()


Récupère la classe de typage d'objets

  • « ReflectionParameter::export
  • ReflectionParameter::getDeclaringClass »
  • PHP Manual
  • ReflectionParameter
  • Récupère la classe de typage d'objets

ReflectionParameter::getClass

(PHP 5, PHP 7)

ReflectionParameter::getClass — Récupère la classe de typage d'objets

Description

public ReflectionClass ReflectionParameter::getClass ( void )

Récupère la classe de typage d'objets pour le paramètre comme un objet ReflectionClass.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass.

Exemples

Exemple #1 Exemple d'utilisation de la classe ReflectionParameter

<?php
function foo(Exception $a) { }

$functionReflection = new ReflectionFunction('foo');
$parameters = $functionReflection->getParameters();
$aParameter = $parameters[0];

echo $aParameter->getClass()->name;
?>

L'exemple ci-dessus va afficher :

Exception

Voir aussi

  • ReflectionParameter::getDeclaringClass() - Récupère la classe déclarante


Récupère la classe déclarante

  • « ReflectionParameter::getClass
  • ReflectionParameter::getDeclaringFunction »
  • PHP Manual
  • ReflectionParameter
  • Récupère la classe déclarante

ReflectionParameter::getDeclaringClass

(PHP 5, PHP 7)

ReflectionParameter::getDeclaringClass — Récupère la classe déclarante

Description

public ReflectionClass ReflectionParameter::getDeclaringClass ( void )

Récupère la classe déclarante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass.

Exemples

Exemple #1 Récupération de la classe qui a déclarée la méthode

<?php
class Foo
{
    public function bar(\DateTime $datetime)
    {
    }
}

class Baz extends Foo
{
}

$param = new \ReflectionParameter(['Baz', 'bar'], 0);

var_dump($param->getDeclaringClass());

L'exemple ci-dessus va afficher :

object(ReflectionClass)#2 (1) {
  ["name"]=>
  string(3) "Foo"
}

Voir aussi

  • ReflectionParameter::getClass() - Récupère la classe de typage d'objets


Récupère la fonction déclarante

  • « ReflectionParameter::getDeclaringClass
  • ReflectionParameter::getDefaultValue »
  • PHP Manual
  • ReflectionParameter
  • Récupère la fonction déclarante

ReflectionParameter::getDeclaringFunction

(PHP 5 >= 5.2.3, PHP 7)

ReflectionParameter::getDeclaringFunction — Récupère la fonction déclarante

Description

public ReflectionFunctionAbstract ReflectionParameter::getDeclaringFunction ( void )

Récupère la fonction déclarante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionFunction.

Voir aussi

  • ReflectionParameter::getDeclaringClass() - Récupère la classe déclarante


Récupère la valeur par défaut du paramètre

  • « ReflectionParameter::getDeclaringFunction
  • ReflectionParameter::getDefaultValueConstantName »
  • PHP Manual
  • ReflectionParameter
  • Récupère la valeur par défaut du paramètre

ReflectionParameter::getDefaultValue

(PHP 5 >= 5.0.3, PHP 7)

ReflectionParameter::getDefaultValue — Récupère la valeur par défaut du paramètre

Description

public mixed ReflectionParameter::getDefaultValue ( void )

Récupère la valeur par défaut du paramètre d'une fonction ou d'une méthode définie dans l'espace utilisateur. Si le paramètre n'est pas optionnel, une exception ReflectionException sera émise.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur par défaut du paramètre.

Exemples

Exemple #1 Exemple d'utilisation

<?php
function foo($test, $bar = 'baz')
{
    echo $test . $bar;
}

$function = new ReflectionFunction('foo');

foreach ($function->getParameters() as $param) {
    echo 'Nom : ' . $param->getName() . PHP_EOL;
    if ($param->isOptional()) {
        echo 'Valeur par défaut : ' . $param->getDefaultValue() . PHP_EOL;
    }
    echo PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

Nom : test

Nom : bar
Valeur par défaut : baz

Notes

Note:

À cause du schéma d'implémentation, il n'est pas possible de récupérer la valeur par défaut d'une fonction ou d'une méthode interne. Le fait de tenter de récupérer une telle valeur émettra une exception ReflectionException.

Voir aussi

  • ReflectionParameter::isOptional() - Vérifie si le paramètre est optionnel
  • ReflectionParameter::isPassedByReference() - Vérifie si le paramètre est passé par référence


Retourne le nom de la constante de la valeur par défaut si la valeur est une constante, NULL sinon

  • « ReflectionParameter::getDefaultValue
  • ReflectionParameter::getName »
  • PHP Manual
  • ReflectionParameter
  • Retourne le nom de la constante de la valeur par défaut si la valeur est une constante, NULL sinon

ReflectionParameter::getDefaultValueConstantName

(PHP 5 >= 5.4.6, PHP 7)

ReflectionParameter::getDefaultValueConstantName — Retourne le nom de la constante de la valeur par défaut si la valeur est une constante, NULL sinon

Description

public string ReflectionParameter::getDefaultValueConstantName ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, NULL si une erreur survient.


Récupère le nom du paramètre

  • « ReflectionParameter::getDefaultValueConstantName
  • ReflectionParameter::getPosition »
  • PHP Manual
  • ReflectionParameter
  • Récupère le nom du paramètre

ReflectionParameter::getName

(PHP 5, PHP 7)

ReflectionParameter::getName — Récupère le nom du paramètre

Description

public string ReflectionParameter::getName ( void )

Récupère le nom du paramètre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du paramètre reflété.

Voir aussi

  • ReflectionParameter::getValue()


Récupère la position d'un paramètre

  • « ReflectionParameter::getName
  • ReflectionParameter::getType »
  • PHP Manual
  • ReflectionParameter
  • Récupère la position d'un paramètre

ReflectionParameter::getPosition

(PHP 5 >= 5.2.3, PHP 7)

ReflectionParameter::getPosition — Récupère la position d'un paramètre

Description

public int ReflectionParameter::getPosition ( void )

Récupère la position d'un paramètre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La position du paramètre, depuis la gauche vers la droite, et en commençant à la position #0.

Voir aussi

  • ReflectionParameter::getName() - Récupère le nom du paramètre


Gets a parameter's type

  • « ReflectionParameter::getPosition
  • ReflectionParameter::hasType »
  • PHP Manual
  • ReflectionParameter
  • Gets a parameter's type

ReflectionParameter::getType

(PHP 7)

ReflectionParameter::getType — Gets a parameter's type

Description

public ReflectionType ReflectionParameter::getType ( void )

Gets the associated type of a parameter.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a ReflectionType object if a parameter type is specified, NULL otherwise.

Exemples

Exemple #1 ReflectionParameter::getType() example

<?php
function someFunction(int $param, $param2) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();
$reflectionType1 = $reflectionParams[0]->getType();
$reflectionType2 = $reflectionParams[1]->getType();

echo $reflectionType1;
var_dump($reflectionType2);

L'exemple ci-dessus va afficher quelque chose de similaire à :

int
null

Voir aussi

  • ReflectionParameter::hasType() - Checks if parameter has a type
  • ReflectionType::__toString() - To string


Checks if parameter has a type

  • « ReflectionParameter::getType
  • ReflectionParameter::isArray »
  • PHP Manual
  • ReflectionParameter
  • Checks if parameter has a type

ReflectionParameter::hasType

(PHP 7)

ReflectionParameter::hasType — Checks if parameter has a type

Description

public bool ReflectionParameter::hasType ( void )

Checks if the parameter has a type associated with it.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE if a type is specified, FALSE otherwise.

Exemples

Exemple #1 ReflectionParameter::hasType() example

<?php
function someFunction(string $param, $param2 = null) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->hasType());
var_dump($reflectionParams[1]->hasType());

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)

Voir aussi

  • ReflectionParameter::getType() - Gets a parameter's type


Vérifie si le paramètre attend un tableau

  • « ReflectionParameter::hasType
  • ReflectionParameter::isCallable »
  • PHP Manual
  • ReflectionParameter
  • Vérifie si le paramètre attend un tableau

ReflectionParameter::isArray

(PHP 5 >= 5.1.0, PHP 7)

ReflectionParameter::isArray — Vérifie si le paramètre attend un tableau

Description

public bool ReflectionParameter::isArray ( void )

Vérifie si le paramètre attend un tableau.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si le paramètre attend un tableau, FALSE sinon.

Voir aussi

  • ReflectionParameter::isOptional() - Vérifie si le paramètre est optionnel


Vérifie si le paramètre est de type callable

  • « ReflectionParameter::isArray
  • ReflectionParameter::isDefaultValueAvailable »
  • PHP Manual
  • ReflectionParameter
  • Vérifie si le paramètre est de type callable

ReflectionParameter::isCallable

(PHP 5 >= 5.4.0, PHP 7)

ReflectionParameter::isCallable — Vérifie si le paramètre est de type callable

Description

public bool ReflectionParameter::isCallable ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le paramètre est de type callable, FALSE s'il ne l'est pas, ou NULL si une erreur survient.


Vérifie si une valeur par défaut est disponible pour le paramètre

  • « ReflectionParameter::isCallable
  • ReflectionParameter::isDefaultValueConstant »
  • PHP Manual
  • ReflectionParameter
  • Vérifie si une valeur par défaut est disponible pour le paramètre

ReflectionParameter::isDefaultValueAvailable

(PHP 5 >= 5.0.3, PHP 7)

ReflectionParameter::isDefaultValueAvailable — Vérifie si une valeur par défaut est disponible pour le paramètre

Description

public bool ReflectionParameter::isDefaultValueAvailable ( void )

Vérifie si une valeur par défaut est disponible pour le paramètre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si une valeur par défaut est disponible pour le paramètre, FALSE sinon.

Voir aussi

  • ReflectionParameter::getDefaultValue() - Récupère la valeur par défaut du paramètre
  • ReflectionParameter::getName() - Récupère le nom du paramètre


Vérifie si la valeur par défaut du paramètre est une constante

  • « ReflectionParameter::isDefaultValueAvailable
  • ReflectionParameter::isOptional »
  • PHP Manual
  • ReflectionParameter
  • Vérifie si la valeur par défaut du paramètre est une constante

ReflectionParameter::isDefaultValueConstant

(PHP 5 >= 5.4.6, PHP 7)

ReflectionParameter::isDefaultValueConstant — Vérifie si la valeur par défaut du paramètre est une constante

Description

public bool ReflectionParameter::isDefaultValueConstant ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si la valeur par défaut est une constante, FALSE si ce n'est pas une constante, ou NULL si une erreur survient.


Vérifie si le paramètre est optionnel

  • « ReflectionParameter::isDefaultValueConstant
  • ReflectionParameter::isPassedByReference »
  • PHP Manual
  • ReflectionParameter
  • Vérifie si le paramètre est optionnel

ReflectionParameter::isOptional

(PHP 5 >= 5.0.3, PHP 7)

ReflectionParameter::isOptional — Vérifie si le paramètre est optionnel

Description

public bool ReflectionParameter::isOptional ( void )

Vérifie si le paramètre est optionnel.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si le paramètre est optionnel, FALSE sinon.

Voir aussi

  • ReflectionParameter::getName() - Récupère le nom du paramètre


Vérifie si le paramètre est passé par référence

  • « ReflectionParameter::isOptional
  • ReflectionParameter::isVariadic »
  • PHP Manual
  • ReflectionParameter
  • Vérifie si le paramètre est passé par référence

ReflectionParameter::isPassedByReference

(PHP 5, PHP 7)

ReflectionParameter::isPassedByReference — Vérifie si le paramètre est passé par référence

Description

public bool ReflectionParameter::isPassedByReference ( void )

Vérifie si le paramètre est passé par référence.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si le paramètre est passé par référence, FALSE sinon.

Voir aussi

  • ReflectionParameter::getName() - Récupère le nom du paramètre


Vérifie si le paramètre est variadique

  • « ReflectionParameter::isPassedByReference
  • ReflectionParameter::__toString »
  • PHP Manual
  • ReflectionParameter
  • Vérifie si le paramètre est variadique

ReflectionParameter::isVariadic

(PHP 5 >= 5.6.0, PHP 7)

ReflectionParameter::isVariadic — Vérifie si le paramètre est variadique

Description

public bool ReflectionParameter::isVariadic ( void )

Vérifie si le paramètre a été déclaré comme un paramètre variadique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si le paramètre est variadique, FALSE sinon.


Récupère une représentation textuelle

  • « ReflectionParameter::isVariadic
  • ReflectionProperty »
  • PHP Manual
  • ReflectionParameter
  • Récupère une représentation textuelle

ReflectionParameter::__toString

(PHP 5, PHP 7)

ReflectionParameter::__toString — Récupère une représentation textuelle

Description

public string ReflectionParameter::__toString ( void )

Récupère une représentation textuelle.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • ReflectionParameter::export() - Exportation
  • __toString()


La classe ReflectionProperty

(PHP 5, PHP 7)

Introduction

La classe ReflectionProperty rapporte des informations sur les propriétés des classes.

Synopsis de la classe

ReflectionProperty implements Reflector {
/* Constantes */
const integer IS_STATIC = 1 ;
const integer IS_PUBLIC = 256 ;
const integer IS_PROTECTED = 512 ;
const integer IS_PRIVATE = 1024 ;
/* Propriétés */
public $name ;
public $class ;
/* Méthodes */
final private void __clone ( void )
public __construct ( mixed $class , string $name )
public static string export ( mixed $class , string $name [, bool $return ] )
public ReflectionClass getDeclaringClass ( void )
public string getDocComment ( void )
public int getModifiers ( void )
public string getName ( void )
public mixed getValue ([ object $object ] )
public bool isDefault ( void )
public bool isPrivate ( void )
public bool isProtected ( void )
public bool isPublic ( void )
public bool isStatic ( void )
public void setAccessible ( bool $accessible )
public void setValue ( object $object , mixed $value )
public string __toString ( void )
}

Propriétés

name

Nom de la propriété. En lecture seule, émets une exception de type ReflectionException si l'on tente d'y écrire.

class

Nom de la classe où la propriété a été définie. En lecture seule, émets une exception de type ReflectionException si l'on tente d'y écrire.

Constantes pré-définies

Modificateurs de ReflectionProperty

ReflectionProperty::IS_STATIC

Indique que la propriété est statique.

ReflectionProperty::IS_PUBLIC

Indique que la propriété est publique.

ReflectionProperty::IS_PROTECTED

Indique que la propriété est protégée.

ReflectionProperty::IS_PRIVATE

Indique que la propriété est privée.

Sommaire

  • ReflectionProperty::__clone — Clonage
  • ReflectionProperty::__construct — Construit un nouvel objet ReflectionProperty
  • ReflectionProperty::export — Exporte
  • ReflectionProperty::getDeclaringClass — Récupère la classe déclarante
  • ReflectionProperty::getDocComment — Récupère un commentaire
  • ReflectionProperty::getModifiers — Récupère les modificateurs
  • ReflectionProperty::getName — Récupère le nom de la proriété
  • ReflectionProperty::getValue — Récupère la valeur de la propriété
  • ReflectionProperty::isDefault — Vérifie si la propriété est celle par défaut
  • ReflectionProperty::isPrivate — Vérifie si la propriété est privée
  • ReflectionProperty::isProtected — Vérifie si la propriété est protégée
  • ReflectionProperty::isPublic — Vérifie si la propriété est publique
  • ReflectionProperty::isStatic — Vérifie si la propriété est statique
  • ReflectionProperty::setAccessible — Définit l'accessibilité de la propriété
  • ReflectionProperty::setValue — Définit la valeur de la propriété
  • ReflectionProperty::__toString — Récupère une représentation textuelle


Clonage

  • « ReflectionProperty
  • ReflectionProperty::__construct »
  • PHP Manual
  • ReflectionProperty
  • Clonage

ReflectionProperty::__clone

(PHP 5, PHP 7)

ReflectionProperty::__clone — Clonage

Description

final private void ReflectionProperty::__clone ( void )

Clonage.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • ReflectionProperty::export() - Exporte
  • Le clonage d'objets


Construit un nouvel objet ReflectionProperty

  • « ReflectionProperty::__clone
  • ReflectionProperty::export »
  • PHP Manual
  • ReflectionProperty
  • Construit un nouvel objet ReflectionProperty

ReflectionProperty::__construct

(PHP 5, PHP 7)

ReflectionProperty::__construct — Construit un nouvel objet ReflectionProperty

Description

public ReflectionProperty::__construct ( mixed $class , string $name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

class

Le nom de la classe, qui contient la propriété.

name

Le nom de la propriété à refléter.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Le fait de tenter de récupérer ou définir la valeur d'une propriété privée ou protégée d'une classe émettra une exception.

Exemples

Exemple #1 Exemple avec ReflectionProperty::__construct()

<?php
class Str
{
    public $length  = 5;
}

// Création d'une instance de la classe ReflectionProperty
$prop = new ReflectionProperty('Str', 'length');

// Affichage de quelques informations
printf(
    "===> The%s%s%s%s property '%s' (which was %s)\n" .
    "     having the modifiers %s\n",
        $prop->isPublic() ? ' public' : '',
        $prop->isPrivate() ? ' private' : '',
        $prop->isProtected() ? ' protected' : '',
        $prop->isStatic() ? ' static' : '',
        $prop->getName(),
        $prop->isDefault() ? 'declared at compile-time' : 'created at run-time',
        var_export(Reflection::getModifierNames($prop->getModifiers()), 1)
);

// Création d'une instance de Str
$obj= new Str();

// Récupère la valeur courante
printf("---> Value is: ");
var_dump($prop->getValue($obj));

// Modifie la valeur
$prop->setValue($obj, 10);
printf("---> Setting value to 10, new value is: ");
var_dump($prop->getValue($obj));

// Affiche l'objet
var_dump($obj);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

===> The public property 'length' (which was declared at compile-time)
     having the modifiers array (
  0 => 'public',
)
---> Value is: int(5)
---> Setting value to 10, new value is: int(10)
object(Str)#2 (1) {
  ["length"]=>
  int(10)
}

Exemple #2 Récupération d'une valeur depuis une propriété privée ou protégée en utilisant la classe ReflectionProperty

<?php

class Foo {
    public $x = 1;
    protected $y = 2;
    private $z = 3;
}

$obj = new Foo;

$prop = new ReflectionProperty('Foo', 'y');
$prop->setAccessible(true); /* Depuis PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

$prop = new ReflectionProperty('Foo', 'z');
$prop->setAccessible(true); /* Depuis PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(2)
int(3)

Voir aussi

  • ReflectionProperty::getName() - Récupère le nom de la proriété
  • Les constructeurs


Exporte

  • « ReflectionProperty::__construct
  • ReflectionProperty::getDeclaringClass »
  • PHP Manual
  • ReflectionProperty
  • Exporte

ReflectionProperty::export

(PHP 5, PHP 7)

ReflectionProperty::export — Exporte

Description

public static string ReflectionProperty::export ( mixed $class , string $name [, bool $return ] )

Exporte une réflexion.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

argument

La réflection à exporter.

name

Le nom de la propriété.

return

Le fait de le définir à TRUE retournera l'export plutôt que l'émission. Le définir à FALSE (par défaut) fera l'inverse.

Valeurs de retour

Voir aussi

  • ReflectionProperty::toString()


Récupère la classe déclarante

  • « ReflectionProperty::export
  • ReflectionProperty::getDocComment »
  • PHP Manual
  • ReflectionProperty
  • Récupère la classe déclarante

ReflectionProperty::getDeclaringClass

(PHP 5, PHP 7)

ReflectionProperty::getDeclaringClass — Récupère la classe déclarante

Description

public ReflectionClass ReflectionProperty::getDeclaringClass ( void )

Récupère la classe déclarante.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass.

Voir aussi

  • ReflectionProperty::getName() - Récupère le nom de la proriété


Récupère un commentaire

  • « ReflectionProperty::getDeclaringClass
  • ReflectionProperty::getModifiers »
  • PHP Manual
  • ReflectionProperty
  • Récupère un commentaire

ReflectionProperty::getDocComment

(PHP 5 >= 5.1.0, PHP 7)

ReflectionProperty::getDocComment — Récupère un commentaire

Description

public string ReflectionProperty::getDocComment ( void )

Récupère un commentaire.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le commentaire.

Voir aussi

  • ReflectionProperty::export() - Exporte


Récupère les modificateurs

  • « ReflectionProperty::getDocComment
  • ReflectionProperty::getName »
  • PHP Manual
  • ReflectionProperty
  • Récupère les modificateurs

ReflectionProperty::getModifiers

(PHP 5, PHP 7)

ReflectionProperty::getModifiers — Récupère les modificateurs

Description

public int ReflectionProperty::getModifiers ( void )

Récupère les modificateurs.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation numérique des modificateurs.

Voir aussi

  • ReflectionProperty::isPrivate() - Vérifie si la propriété est privée
  • Reflection::getModifierNames() - Récupère le nom d'un modificateur


Récupère le nom de la proriété

  • « ReflectionProperty::getModifiers
  • ReflectionProperty::getValue »
  • PHP Manual
  • ReflectionProperty
  • Récupère le nom de la proriété

ReflectionProperty::getName

(PHP 5, PHP 7)

ReflectionProperty::getName — Récupère le nom de la proriété

Description

public string ReflectionProperty::getName ( void )

Récupère le nom de la proriété.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de la propriété reflétée.

Voir aussi

  • ReflectionProperty::getValue() - Récupère la valeur de la propriété


Récupère la valeur de la propriété

  • « ReflectionProperty::getName
  • ReflectionProperty::isDefault »
  • PHP Manual
  • ReflectionProperty
  • Récupère la valeur de la propriété

ReflectionProperty::getValue

(PHP 5, PHP 7)

ReflectionProperty::getValue — Récupère la valeur de la propriété

Description

public mixed ReflectionProperty::getValue ([ object $object ] )

Récupère la valeur de la propriété.

Liste de paramètres

object

L'objet à utiliser dans le cas d'une propriété non statique. Si vous souhaitez récupérer la valeur par défaut de la propriété, utilisez plutôt ReflectionClass::getDefaultProperties().

Valeurs de retour

La valeur courante de la propriété.

Erreurs / Exceptions

Emet une ReflectionException si la propriété est inaccessible. Vous pouvez transformer une propriété protégée ou privée en publique grâce à ReflectionProperty::setAccessible().

Exemples

Exemple #1 Exemple ReflectionProperty::getValue()

<?php
class Foo {
    public static $staticProperty = 'foobar';

    public $property = 'barfoo';
    protected $privateProperty = 'foofoo';
}

$reflectionClass = new ReflectionClass('Foo');

var_dump($reflectionClass->getProperty('staticProperty')->getValue());
var_dump($reflectionClass->getProperty('property')->getValue(new Foo));

$reflectionProperty = $reflectionClass->getProperty('privateProperty');
$reflectionProperty->setAccessible(true);
var_dump($reflectionProperty->getValue(new Foo));
?>

L'exemple ci-dessus va afficher :

string(6) "foobar"
string(6) "barfoo"
string(6) "foofoo"

Voir aussi

  • ReflectionProperty::setValue() - Définit la valeur de la propriété
  • ReflectionProperty::setAccessible() - Définit l'accessibilité de la propriété
  • ReflectionClass::getDefaultProperties() - Récupère les propriétés par défaut
  • ReflectionClass::getStaticPropertyValue() - Récupère la valeur d'une propriété statique


Vérifie si la propriété est celle par défaut

  • « ReflectionProperty::getValue
  • ReflectionProperty::isPrivate »
  • PHP Manual
  • ReflectionProperty
  • Vérifie si la propriété est celle par défaut

ReflectionProperty::isDefault

(PHP 5, PHP 7)

ReflectionProperty::isDefault — Vérifie si la propriété est celle par défaut

Description

public bool ReflectionProperty::isDefault ( void )

Vérifie si la propriété a été déclarée au moment de la compilation, ou si la propriété a été déclarée dynamiquement au moment de l'exécution.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la propriété a été déclarée lors de la compilation ou FALSE si elle a été déclarée au moment de l'exécution.

Exemples

Exemple #1 Exemple avec ReflectionClass::isDefault()

<?php
class Foo {
    public $bar;
}

$o = new Foo();
$o->bar = 42;
$o->baz = 42;

$ro = new ReflectionObject($o);
var_dump($ro->getProperty('bar')->isDefault());
var_dump($ro->getProperty('baz')->isDefault());
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi

  • ReflectionProperty::getValue() - Récupère la valeur de la propriété


Vérifie si la propriété est privée

  • « ReflectionProperty::isDefault
  • ReflectionProperty::isProtected »
  • PHP Manual
  • ReflectionProperty
  • Vérifie si la propriété est privée

ReflectionProperty::isPrivate

(PHP 5, PHP 7)

ReflectionProperty::isPrivate — Vérifie si la propriété est privée

Description

public bool ReflectionProperty::isPrivate ( void )

Vérifie si la propriété est privée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la propriété est privée, FALSE sinon.

Voir aussi

  • ReflectionProperty::isPublic() - Vérifie si la propriété est publique
  • ReflectionProperty::isProtected() - Vérifie si la propriété est protégée
  • ReflectionProperty::isStatic() - Vérifie si la propriété est statique


Vérifie si la propriété est protégée

  • « ReflectionProperty::isPrivate
  • ReflectionProperty::isPublic »
  • PHP Manual
  • ReflectionProperty
  • Vérifie si la propriété est protégée

ReflectionProperty::isProtected

(PHP 5, PHP 7)

ReflectionProperty::isProtected — Vérifie si la propriété est protégée

Description

public bool ReflectionProperty::isProtected ( void )

Vérifie si la propriété est protégée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la propriété est protégée, FALSE sinon.

Voir aussi

  • ReflectionProperty::isPublic() - Vérifie si la propriété est publique
  • ReflectionProperty::isPrivate() - Vérifie si la propriété est privée
  • ReflectionProperty::isStatic() - Vérifie si la propriété est statique


Vérifie si la propriété est publique

  • « ReflectionProperty::isProtected
  • ReflectionProperty::isStatic »
  • PHP Manual
  • ReflectionProperty
  • Vérifie si la propriété est publique

ReflectionProperty::isPublic

(PHP 5, PHP 7)

ReflectionProperty::isPublic — Vérifie si la propriété est publique

Description

public bool ReflectionProperty::isPublic ( void )

Vérifie si la propriété est publique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la propriété est publique, FALSE sinon.

Voir aussi

  • ReflectionProperty::isProtected() - Vérifie si la propriété est protégée
  • ReflectionProperty::isPrivate() - Vérifie si la propriété est privée
  • ReflectionProperty::isStatic() - Vérifie si la propriété est statique


Vérifie si la propriété est statique

  • « ReflectionProperty::isPublic
  • ReflectionProperty::setAccessible »
  • PHP Manual
  • ReflectionProperty
  • Vérifie si la propriété est statique

ReflectionProperty::isStatic

(PHP 5, PHP 7)

ReflectionProperty::isStatic — Vérifie si la propriété est statique

Description

public bool ReflectionProperty::isStatic ( void )

Vérifie si la propriété est statique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si la propriété est statique, FALSE sinon.

Voir aussi

  • ReflectionProperty::isPublic() - Vérifie si la propriété est publique
  • ReflectionProperty::isProtected() - Vérifie si la propriété est protégée
  • ReflectionProperty::isPrivate() - Vérifie si la propriété est privée


Définit l'accessibilité de la propriété

  • « ReflectionProperty::isStatic
  • ReflectionProperty::setValue »
  • PHP Manual
  • ReflectionProperty
  • Définit l'accessibilité de la propriété

ReflectionProperty::setAccessible

(PHP 5 >= 5.3.0, PHP 7)

ReflectionProperty::setAccessible — Définit l'accessibilité de la propriété

Description

public void ReflectionProperty::setAccessible ( bool $accessible )

Définit l'accessibilité de la propriété. Par exemple, ceci permet de rendre accessible une propriété protégée ou privée.

Liste de paramètres

accessible

TRUE pour permettre l'accès, ou FALSE.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ReflectionProperty::isPrivate() - Vérifie si la propriété est privée
  • ReflectionProperty::isProtected() - Vérifie si la propriété est protégée


Définit la valeur de la propriété

  • « ReflectionProperty::setAccessible
  • ReflectionProperty::__toString »
  • PHP Manual
  • ReflectionProperty
  • Définit la valeur de la propriété

ReflectionProperty::setValue

(PHP 5, PHP 7)

ReflectionProperty::setValue — Définit la valeur de la propriété

Description

public void ReflectionProperty::setValue ( object $object , mixed $value )
public void ReflectionProperty::setValue ( mixed $value )

Définit (modifie) la valeur de la propriété.

Liste de paramètres

object

L'objet à utiliser dans le cas d'une propriété non statique. Si la propriété est statique, nul besoin de préciser un objet, seul value est nécessaire.

value

La nouvelle valeur.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Emet une ReflectionException si la propriété est inaccessible. Vous pouvez transformer une propriété protégée ou privée en publique grâce à ReflectionProperty::setAccessible().

Exemples

Exemple #1 Exemple ReflectionProperty::setValue()

<?php
class Foo {
    public static $staticProperty;

    public $property;
    protected $privateProperty;
}

$reflectionClass = new ReflectionClass('Foo');

$reflectionClass->getProperty('staticProperty')->setValue('foo');
var_dump(Foo::$staticProperty);

$foo = new Foo;

$reflectionClass->getProperty('property')->setValue($foo, 'bar');
var_dump($foo->property);

$reflectionProperty = $reflectionClass->getProperty('privateProperty');
$reflectionProperty->setAccessible(true);
$reflectionProperty->setValue($foo, 'foobar');
var_dump($reflectionProperty->getValue($foo));
?>

L'exemple ci-dessus va afficher :

string(3) "foo"
string(3) "bar"
string(6) "foobar"

Voir aussi

  • ReflectionProperty::getValue() - Récupère la valeur de la propriété
  • ReflectionProperty::setAccessible() - Définit l'accessibilité de la propriété
  • ReflectionClass::setStaticPropertyValue() - Définit la valeur d'une propriété statiques


Récupère une représentation textuelle

  • « ReflectionProperty::setValue
  • ReflectionType »
  • PHP Manual
  • ReflectionProperty
  • Récupère une représentation textuelle

ReflectionProperty::__toString

(PHP 5, PHP 7)

ReflectionProperty::__toString — Récupère une représentation textuelle

Description

public string ReflectionProperty::__toString ( void )

Récupère une représentation textuelle.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • __toString()


The ReflectionType class

(PHP 7)

Introduction

The ReflectionType class reports information about a function's return type.

Synopsis de la classe

ReflectionType {
/* Méthodes */
public bool allowsNull ( void )
public bool isBuiltin ( void )
public string __toString ( void )
}

Sommaire

  • ReflectionType::allowsNull — Checks if null is allowed
  • ReflectionType::isBuiltin — Checks if it is a built-in type
  • ReflectionType::__toString — To string


Checks if null is allowed

  • « ReflectionType
  • ReflectionType::isBuiltin »
  • PHP Manual
  • ReflectionType
  • Checks if null is allowed

ReflectionType::allowsNull

(PHP 7)

ReflectionType::allowsNull — Checks if null is allowed

Description

public bool ReflectionType::allowsNull ( void )

Checks whether the parameter allows NULL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE if NULL is allowed, otherwise FALSE

Exemples

Exemple #1 ReflectionType::allowsNull() example

<?php
function someFunction(string $param, StdClass $param2 = null) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->getType()->allowsNull());
var_dump($reflectionParams[1]->getType()->allowsNull());

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(false)
bool(true)

Voir aussi

  • ReflectionType::isBuiltin() - Checks if it is a built-in type
  • ReflectionType::__toString() - To string
  • ReflectionParameter::getType() - Gets a parameter's type


Checks if it is a built-in type

  • « ReflectionType::allowsNull
  • ReflectionType::__toString »
  • PHP Manual
  • ReflectionType
  • Checks if it is a built-in type

ReflectionType::isBuiltin

(PHP 7)

ReflectionType::isBuiltin — Checks if it is a built-in type

Description

public bool ReflectionType::isBuiltin ( void )

Checks if the type is a built-in type in PHP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE if it's a built-in type, otherwise FALSE

Exemples

Exemple #1 ReflectionType::isBuiltin() example

<?php
class SomeClass {}

function someFunction(string $param, SomeClass $param2, StdClass $param3) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->getType()->isBuiltin());
var_dump($reflectionParams[1]->getType()->isBuiltin());
var_dump($reflectionParams[2]->getType()->isBuiltin());

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(false)
bool(false)

Note that the ReflectionType::isBuiltin() method does not distinguish between internal and custom classes. To make this distinction, the ReflectionClass::isInternal() method should be used on the returned class name.

Voir aussi

  • ReflectionType::allowsNull() - Checks if null is allowed
  • ReflectionType::__toString() - To string
  • ReflectionClass::isInternal() - Vérifie si une classe est définie comme interne par une extension
  • ReflectionParameter::getType() - Gets a parameter's type


To string

  • « ReflectionType::isBuiltin
  • ReflectionGenerator »
  • PHP Manual
  • ReflectionType
  • To string

ReflectionType::__toString

(PHP 7)

ReflectionType::__toString — To string

Description

public string ReflectionType::__toString ( void )

Gets the parameter type name.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the type of the parameter.

Exemples

Exemple #1 ReflectionType::__toString() example

<?php
function someFunction(string $param) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

echo $reflectionParam->getType();

L'exemple ci-dessus va afficher quelque chose de similaire à :

string

Voir aussi

  • ReflectionType::allowsNull() - Checks if null is allowed
  • ReflectionType::isBuiltin() - Checks if it is a built-in type
  • ReflectionParameter::getType() - Gets a parameter's type


The ReflectionGenerator class

(PHP 7)

Introduction

The ReflectionGenerator class reports information about a generator.

Synopsis de la classe

ReflectionGenerator {
/* Méthodes */
public __construct ( Generator $generator )
public string getExecutingFile ( void )
public Generator getExecutingGenerator ( void )
public int getExecutingLine ( void )
public ReflectionFunctionAbstract getFunction ( void )
public object getThis ( void )
public array getTrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT ] )
}

Sommaire

  • ReflectionGenerator::__construct — Constructs a ReflectionGenerator object
  • ReflectionGenerator::getExecutingFile — Gets the file name of the currently executing generator
  • ReflectionGenerator::getExecutingGenerator — Gets the executing Generator object
  • ReflectionGenerator::getExecutingLine — Gets the currently executing line of the generator
  • ReflectionGenerator::getFunction — Gets the function name of the generator
  • ReflectionGenerator::getThis — Gets the $this value of the generator
  • ReflectionGenerator::getTrace — Gets the trace of the executing generator


Constructs a ReflectionGenerator object

  • « ReflectionGenerator
  • ReflectionGenerator::getExecutingFile »
  • PHP Manual
  • ReflectionGenerator
  • Constructs a ReflectionGenerator object

ReflectionGenerator::__construct

(PHP 7)

ReflectionGenerator::__construct — Constructs a ReflectionGenerator object

Description

public ReflectionGenerator::__construct ( Generator $generator )

Constructs a ReflectionGenerator object.

Liste de paramètres

generator

A generator object.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 ReflectionGenerator::__construct() example

<?php

function gen()
{
    yield 1;
}

$gen = gen();

$reflectionGen = new ReflectionGenerator($gen);

echo <<< output
{$reflectionGen->getFunction()->name}
Line: {$reflectionGen->getExecutingLine()}
File: {$reflectionGen->getExecutingFile()}
output;

L'exemple ci-dessus va afficher quelque chose de similaire à :

gen
Line: 5
File: /path/to/file/example.php

Voir aussi

  • ReflectionGenerator::getFunction() - Gets the function name of the generator
  • ReflectionGenerator::getExecutingLine() - Gets the currently executing line of the generator
  • ReflectionGenerator::getExecutingFile() - Gets the file name of the currently executing generator


Gets the file name of the currently executing generator

  • « ReflectionGenerator::__construct
  • ReflectionGenerator::getExecutingGenerator »
  • PHP Manual
  • ReflectionGenerator
  • Gets the file name of the currently executing generator

ReflectionGenerator::getExecutingFile

(PHP 7)

ReflectionGenerator::getExecutingFile — Gets the file name of the currently executing generator

Description

public string ReflectionGenerator::getExecutingFile ( void )

Get the full path and file name of the currently executing generator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the full path and file name of the currently executing generator.

Exemples

Exemple #1 ReflectionGenerator::getExecutingFile() example

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

echo "File: {$reflectionGen->getExecutingFile()}";

L'exemple ci-dessus va afficher quelque chose de similaire à :

File: /path/to/file/example.php

Voir aussi

  • ReflectionGenerator::getExecutingLine() - Gets the currently executing line of the generator
  • ReflectionGenerator::getExecutingGenerator() - Gets the executing Generator object


Gets the executing Generator object

  • « ReflectionGenerator::getExecutingFile
  • ReflectionGenerator::getExecutingLine »
  • PHP Manual
  • ReflectionGenerator
  • Gets the executing Generator object

ReflectionGenerator::getExecutingGenerator

(PHP 7)

ReflectionGenerator::getExecutingGenerator — Gets the executing Generator object

Description

public Generator ReflectionGenerator::getExecutingGenerator ( void )

Get the executing Generator object

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the currently executing Generator object.

Exemples

Exemple #1 ReflectionGenerator::getExecutingGenerator() example

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

$gen2 = $reflectionGen->getExecutingGenerator();

var_dump($gen2 === $gen);
var_dump($gen2->current());

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
int(1);

Voir aussi

  • ReflectionGenerator::getExecutingLine() - Gets the currently executing line of the generator
  • ReflectionGenerator::getExecutingFile() - Gets the file name of the currently executing generator


Gets the currently executing line of the generator

  • « ReflectionGenerator::getExecutingGenerator
  • ReflectionGenerator::getFunction »
  • PHP Manual
  • ReflectionGenerator
  • Gets the currently executing line of the generator

ReflectionGenerator::getExecutingLine

(PHP 7)

ReflectionGenerator::getExecutingLine — Gets the currently executing line of the generator

Description

public int ReflectionGenerator::getExecutingLine ( void )

Get the currently executing line number of the generator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the line number of the currently executing statement in the generator.

Exemples

Exemple #1 ReflectionGenerator::getExecutingLine() example

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

echo "Line: {$reflectionGen->getExecutingLine()}";

L'exemple ci-dessus va afficher quelque chose de similaire à :

Line: 7

Voir aussi

  • ReflectionGenerator::getExecutingGenerator() - Gets the executing Generator object
  • ReflectionGenerator::getExecutingFile() - Gets the file name of the currently executing generator


Gets the function name of the generator

  • « ReflectionGenerator::getExecutingLine
  • ReflectionGenerator::getThis »
  • PHP Manual
  • ReflectionGenerator
  • Gets the function name of the generator

ReflectionGenerator::getFunction

(PHP 7)

ReflectionGenerator::getFunction — Gets the function name of the generator

Description

public ReflectionFunctionAbstract ReflectionGenerator::getFunction ( void )

Enables the function name of the generator to be obtained by returning a class derived from ReflectionFunctionAbstract.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a ReflectionFunctionAbstract class. This will be ReflectionFunction for functions, or ReflectionMethod for methods.

Exemples

Exemple #1 ReflectionGenerator::getFunction() example

<?php

function gen()
{
    yield 1;
}

$gen = gen();

$reflectionGen = new ReflectionGenerator($gen);

var_dump($reflectionGen->getFunction());

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(ReflectionFunction)#3 (1) {
  ["name"]=>
  string(3) "gen"
}

Voir aussi

  • ReflectionGenerator::getThis() - Gets the $this value of the generator
  • ReflectionGenerator::getTrace() - Gets the trace of the executing generator


Gets the $this value of the generator

  • « ReflectionGenerator::getFunction
  • ReflectionGenerator::getTrace »
  • PHP Manual
  • ReflectionGenerator
  • Gets the $this value of the generator

ReflectionGenerator::getThis

(PHP 7)

ReflectionGenerator::getThis — Gets the $this value of the generator

Description

public object ReflectionGenerator::getThis ( void )

Get the $this value that the generator has access to.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the $this value, or NULL if the generator was not created in a class context.

Exemples

Exemple #1 ReflectionGenerator::getThis() example

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

var_dump($reflectionGen->getThis());

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(GenExample)#3 (0) {
}

Voir aussi

  • ReflectionGenerator::getFunction() - Gets the function name of the generator
  • ReflectionGenerator::getTrace() - Gets the trace of the executing generator


Gets the trace of the executing generator

  • « ReflectionGenerator::getThis
  • Reflector »
  • PHP Manual
  • ReflectionGenerator
  • Gets the trace of the executing generator

ReflectionGenerator::getTrace

(PHP 7)

ReflectionGenerator::getTrace — Gets the trace of the executing generator

Description

public array ReflectionGenerator::getTrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT ] )

Get the trace of the currently executing generator.

Liste de paramètres

options

The value of options can be any of the following the following flags.

Available options
Option | Description
DEBUG_BACKTRACE_PROVIDE_OBJECT | Default.
DEBUG_BACKTRACE_IGNORE_ARGS | Don't include the argument information for functions in the stack trace.

Valeurs de retour

Returns the trace of the currently executing generator.

Exemples

Exemple #1 ReflectionGenerator::getTrace() example

<?php
function foo() {
    yield 1;
}

function bar()
{
    yield from foo();
}

function baz()
{
    yield from bar();
}

$gen = baz();
$gen->valid(); // start the generator

var_dump((new ReflectionGenerator($gen))->getTrace());

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(2) {
  [0]=>
  array(4) {
    ["file"]=>
    string(18) "example.php"
    ["line"]=>
    int(8)
    ["function"]=>
    string(3) "foo"
    ["args"]=>
    array(0) {
    }
  }
  [1]=>
  array(4) {
    ["file"]=>
    string(18) "example.php"
    ["line"]=>
    int(12)
    ["function"]=>
    string(3) "bar"
    ["args"]=>
    array(0) {
    }
  }
}

Voir aussi

  • ReflectionGenerator::getFunction() - Gets the function name of the generator
  • ReflectionGenerator::getThis() - Gets the $this value of the generator


L'interface Reflector

(PHP 5, PHP 7)

Introduction

Reflector est une interface implémenté par toutes les classes exportables Reflection.

Synopsis de la classe

Reflector {
/* Méthodes */
public static string export ( void )
public string __toString ( void )
}

Sommaire

  • Reflector::export — Export
  • Reflector::__toString — Conversion en chaîne de caractères


Export

  • « Reflector
  • Reflector::__toString »
  • PHP Manual
  • Reflector
  • Export

Reflector::export

(PHP 5, PHP 7)

Reflector::export — Export

Description

public static string Reflector::export ( void )

Export.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • Reflection::__toString()


Conversion en chaîne de caractères

  • « Reflector::export
  • ReflectionException »
  • PHP Manual
  • Reflector
  • Conversion en chaîne de caractères

Reflector::__toString

(PHP 5, PHP 7)

Reflector::__toString — Conversion en chaîne de caractères

Description

public string Reflector::__toString ( void )

Conversion en chaîne de caractères.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • ReflectionProperty::export() - Exporte
  • __toString()


La classe ReflectionException

(PHP 5, PHP 7)

Introduction

La classe ReflectionException.

Synopsis de la classe

ReflectionException extends Exception {
/* Propriétés */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Gestion des variables

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions de gestion des variables
    • boolval — Récupère la valeur booléenne d'une variable
    • debug_zval_dump — Extrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage
    • doubleval — Alias de floatval
    • empty — Détermine si une variable est vide
    • floatval — Convertit une chaîne en nombre à virgule flottante
    • get_defined_vars — Liste toutes les variables définies
    • get_resource_type — Retourne le type de ressource
    • gettype — Retourne le type de la variable
    • import_request_variables — Importe les variables de GET/POST/Cookie dans l'environnement global
    • intval — Retourne la valeur numérique entière équivalente d'une variable
    • is_array — Détermine si une variable est un tableau
    • is_bool — Détermine si une variable est un booléen
    • is_callable — Détermine si l'argument peut être appelé comme fonction
    • is_double — Alias de is_float
    • is_float — Détermine si une variable est de type nombre décimal
    • is_int — Détermine si une variable est de type nombre entier
    • is_integer — Alias de is_int
    • is_long — Alias de is_int
    • is_null — Indique si une variable vaut NULL
    • is_numeric — Détermine si une variable est un type numérique
    • is_object — Détermine si une variable est de type objet
    • is_real — Alias de is_float
    • is_resource — Détermine si une variable est une ressource
    • is_scalar — Indique si une variable est un scalaire
    • is_string — Détermine si une variable est de type chaîne de caractères
    • isset — Détermine si une variable est définie et est différente de NULL
    • print_r — Affiche des informations lisibles pour une variable
    • serialize — Génère une représentation stockable d'une valeur
    • settype — Affecte un type à une variable
    • strval — Récupère la valeur d'une variable, au format chaîne
    • unserialize — Crée une variable PHP à partir d'une valeur linéarisée
    • unset — Détruit une variable
    • var_dump — Affiche les informations d'une variable
    • var_export — Retourne le code PHP utilisé pour générer une variable


Introduction

Pour plus de détails sur le comportement des variables, reportez-vous à la section Variables du chapitre Référence du langage.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour les variables
Nom | Défaut | Modifiable | Historique
unserialize_callback_func | NULL | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

unserialize_callback_func string

La fonction de rappel spécifié est appelée lorsque la fonction unserialize() tente d'utiliser une classe non définie. Une alerte apparaît si la fonction de rappel n'est pas définie, ou si elle échoue lors de la définition de la classe manquante.

Voir aussi unserialize() et l'auto-chargement de classes.


  • « Types de ressources
  • Fonctions de gestion des variables »
  • PHP Manual
  • Gestion des variables
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions de gestion des variables

Sommaire

  • boolval — Récupère la valeur booléenne d'une variable
  • debug_zval_dump — Extrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage
  • doubleval — Alias de floatval
  • empty — Détermine si une variable est vide
  • floatval — Convertit une chaîne en nombre à virgule flottante
  • get_defined_vars — Liste toutes les variables définies
  • get_resource_type — Retourne le type de ressource
  • gettype — Retourne le type de la variable
  • import_request_variables — Importe les variables de GET/POST/Cookie dans l'environnement global
  • intval — Retourne la valeur numérique entière équivalente d'une variable
  • is_array — Détermine si une variable est un tableau
  • is_bool — Détermine si une variable est un booléen
  • is_callable — Détermine si l'argument peut être appelé comme fonction
  • is_double — Alias de is_float
  • is_float — Détermine si une variable est de type nombre décimal
  • is_int — Détermine si une variable est de type nombre entier
  • is_integer — Alias de is_int
  • is_long — Alias de is_int
  • is_null — Indique si une variable vaut NULL
  • is_numeric — Détermine si une variable est un type numérique
  • is_object — Détermine si une variable est de type objet
  • is_real — Alias de is_float
  • is_resource — Détermine si une variable est une ressource
  • is_scalar — Indique si une variable est un scalaire
  • is_string — Détermine si une variable est de type chaîne de caractères
  • isset — Détermine si une variable est définie et est différente de NULL
  • print_r — Affiche des informations lisibles pour une variable
  • serialize — Génère une représentation stockable d'une valeur
  • settype — Affecte un type à une variable
  • strval — Récupère la valeur d'une variable, au format chaîne
  • unserialize — Crée une variable PHP à partir d'une valeur linéarisée
  • unset — Détruit une variable
  • var_dump — Affiche les informations d'une variable
  • var_export — Retourne le code PHP utilisé pour générer une variable


Récupère la valeur booléenne d'une variable

  • « Fonctions de gestion des variables
  • debug_zval_dump »
  • PHP Manual
  • Fonctions de gestion des variables
  • Récupère la valeur booléenne d'une variable

boolval

(PHP 5 >= 5.5.0, PHP 7)

boolval — Récupère la valeur booléenne d'une variable

Description

boolean boolval ( mixed $var )

Retourne la valeur booléenne de la variable fournie dans le paramètre var.

Liste de paramètres

var

La valeur scalaire qui sera convertie en booléen.

Valeurs de retour

La valeur booléenne du paramètre var.

Exemples

Exemple #1 Exemple avec boolval()

<?php
echo '0:        '.(boolval(0) ? 'true' : 'false')."\n";
echo '42:       '.(boolval(42) ? 'true' : 'false')."\n";
echo '0.0:      '.(boolval(0.0) ? 'true' : 'false')."\n";
echo '4.2:      '.(boolval(4.2) ? 'true' : 'false')."\n";
echo '"":       '.(boolval("") ? 'true' : 'false')."\n";
echo '"string": '.(boolval("string") ? 'true' : 'false')."\n";
echo '"0":      '.(boolval("0") ? 'true' : 'false')."\n";
echo '"1":      '.(boolval("1") ? 'true' : 'false')."\n";
echo '[1, 2]:   '.(boolval([1, 2]) ? 'true' : 'false')."\n";
echo '[]:       '.(boolval([]) ? 'true' : 'false')."\n";
echo 'stdClass: '.(boolval(new stdClass) ? 'true' : 'false')."\n";
?>

L'exemple ci-dessus va afficher :

0:        false
42:       true
0.0:      false
4.2:      true
"":       false
"string": true
"0":      false
"1":      true
[1, 2]:   true
[]:       false
stdClass: true

Voir aussi

  • floatval() - Convertit une chaîne en nombre à virgule flottante
  • intval() - Retourne la valeur numérique entière équivalente d'une variable
  • strval() - Récupère la valeur d'une variable, au format chaîne
  • settype() - Affecte un type à une variable
  • is_bool() - Détermine si une variable est un booléen
  • Le transtypage


Extrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage

  • « boolval
  • doubleval »
  • PHP Manual
  • Fonctions de gestion des variables
  • Extrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage

debug_zval_dump

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

debug_zval_dump — Extrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage

Description

void debug_zval_dump ( mixed $variable [, mixed $... ] )

Extrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage.

Liste de paramètres

variable

La variable à évaluer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec debug_zval_dump()

<?php
$var1 = 'Bonjour le monde !';
$var2 = '';

$var2 =& $var1;

debug_zval_dump(&$var1);
?>

L'exemple ci-dessus va afficher :

&string(18) "Bonjour le monde !" refcount(3)

Note: Faites attention avec refcount

La valeur refcount retournée par cette fonction n'est pas significative dans certaines circonstances. Par exemple, un développeur peut s'attendre avec l'exemple ci-dessus d'avoir un refcount de 2. La troisième référence est créée lors de l'appel à la fonction debug_zval_dump().

Ce comportement est encore plus fin lorsqu'une variable n'est pas passée par référence à la fonction debug_zval_dump(). Pour illustrer ceci, voici une version modifiée de l'exemple ci-dessus :

<?php
$var1 = 'Bonjour le monde !';
$var2 = '';

$var2 =& $var1;

debug_zval_dump($var1); // non passée par référence, cette fois-ci
?>

L'exemple ci-dessus va afficher :

string(18) "Bonjour le monde !" refcount(1)

Pourquoi refcount(1) ? Parce qu'une copie de $var1 a été faite, lors de l'appel de la fonction.

Cette fonction devient encore plus confuse lorsqu'une variable avec un refcount de 1 est passée (par copie/valeur) :

<?php
$var1 = 'Bonjour le monde !';

debug_zval_dump($var1);
?>

L'exemple ci-dessus va afficher :

string(18) "Bonjour le monde !" refcount(2)

Un refcount de 2, ici, est vraiment inattendu. Tout spécialement si on considère les exemples ci-dessus. Donc, que se passe-t-il ?

Lorsqu'une variable a une seule référence (faire $var1 avant qu'elle ne soit utilisée en tant qu'argument de la fonction debug_zval_dump()), le moteur PHP optimise la façon dont elle est passée à la fonction. En interne, PHP traite $var1 comme une référence (et donc, le refcount est incrémenté), et avec le cas où le passage par référence intervient, une copie est alors faite, mais uniquement au moment de l'écriture. Ceci est connu comme "la copie à l'écriture".

Donc, si debug_zval_dump() intervient pour écrire son unique paramètre (et il ne le fait pas), alors une copie est faite. Jusque-là, le paramètre demeure une référence, faisant que le refcount est incrémenté à 2 pour l'appel à la fonction.

Voir aussi

  • var_dump() - Affiche les informations d'une variable
  • debug_backtrace() - Génère le contexte de déboguage
  • Explication sur les références
  • » Explication sur les références (par Derick Rethans)


Alias de floatval

  • « debug_zval_dump
  • empty »
  • PHP Manual
  • Fonctions de gestion des variables
  • Alias de floatval

doubleval

(PHP 4, PHP 5, PHP 7)

doubleval — Alias de floatval()

Description

Cette fonction est un alias de : floatval().


Détermine si une variable est vide

  • « doubleval
  • floatval »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si une variable est vide

empty

(PHP 4, PHP 5, PHP 7)

empty — Détermine si une variable est vide

Description

bool empty ( mixed $var )

Détermine si une variable est considérée comme vide. Une variable est considérée comme vide si elle n'existe pas, ou si sa valeur équivaut à FALSE. La fonction empty() ne génère pas d'alerte si la variable n'existe pas.

Liste de paramètres

var

Variable à vérifier.

Note:

Avant PHP 5.5, la fonction empty() ne supportait que les variables ; tout autre type retournait une erreur d'analyse. En d'autres termes, ce qui suit ne fonctionnait pas : empty(trim($name)). A la place, utilisez trim($name) == false.

Aucune alerte n'est générée si la variable n'existe pas. Cela signifie que empty() est strictement équivalent à !isset($var) || $var == false.

Valeurs de retour

Retourne FALSE si var existe et est non-vide, et dont la valeur n'est pas zéro.

Ce qui suit est considéré comme étant vide :

  • "" (une chaîne vide)
  • 0 (0 en tant qu'entier)
  • 0.0 (0 en tant que nombre à virgule flottante)
  • "0" (0 en tant que chaîne de caractères)
  • NULL
  • FALSE
  • array() (un tableau vide)
  • $var; (une variable déclarée, mais sans valeur)

Historique

Version | Description
5.5.0 | empty() supporte maintenant les expressions, et plus seulement les variables.
5.4.0 | La vérification des positions non-numériques d'une chaîne retourne maintenant TRUE.

Exemples

Exemple #1 Une comparaison simple empty() / isset().

<?php
$var = 0;

// Evalué à vrai car $var est vide
if (empty($var)) {
  echo '$var vaut soit 0, vide, ou pas définie du tout';
}

// Evalué à vrai car $var est défini
if (isset($var)) {
  echo '$var est définie même si elle est vide';
}
?>

Exemple #2 empty() sur des positions dans une chaîne

PHP 5.4 modifie le comportement de la fonction empty() lors de l'utilisation de positions dans une chaîne.

<?php
$expected_array_got_string = 'somestring';
var_dump(empty($expected_array_got_string['some_key']));
var_dump(empty($expected_array_got_string[0]));
var_dump(empty($expected_array_got_string['0']));
var_dump(empty($expected_array_got_string[0.5]));
var_dump(empty($expected_array_got_string['0.5']));
var_dump(empty($expected_array_got_string['0 Mostel']));
?>

Résultat de l'exemple ci-dessus en PHP 5.3 :

bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)

Résultat de l'exemple ci-dessus en PHP 5.4 :

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)

Notes

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Note:

Lors de l'utilisation de cette fonction sur des propriétés d'objet inaccessibles, la méthode magique __isset() sera appelée, si elle existe.

Voir aussi

  • isset() - Détermine si une variable est définie et est différente de NULL
  • __isset()
  • unset() - Détruit une variable
  • array_key_exists() - Vérifie si une clé existe dans un tableau
  • count() - Compte tous les éléments d'un tableau ou quelque chose d'un objet
  • strlen() - Calcule la taille d'une chaîne
  • Les tables de comparaison des types


Convertit une chaîne en nombre à virgule flottante

  • « empty
  • get_defined_vars »
  • PHP Manual
  • Fonctions de gestion des variables
  • Convertit une chaîne en nombre à virgule flottante

floatval

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

floatval — Convertit une chaîne en nombre à virgule flottante

Description

float floatval ( mixed $var )

floatval() retourne la valeur de type float (nombre à virgule flottante), extraite à partir du paramètre var.

Liste de paramètres

var

Peut être de n'importe quel type scalaire. floatval() ne doit pas être utilisé sur les objets ; si tel est le cas, une alerte de niveau E_NOTICE sera émise et la fonction retournera 1.

Valeurs de retour

La valeur flottante de la variable donnée. Un tableau vide retourne 0, alors qu'un tableau non-vide retourne 1.

Les chaînes de caractères retourneront la plupart du temps 0, mais cela dépend sur caractère le plus à gauche de la chaîne. Les règles classiques de transtypage d'un nombre à virgule flottante sont appliquées.

Exemples

Exemple #1 Exemple avec floatval()

<?php
$var = '122.34343The';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 122.34343
?>

Exemple #2 Exemple avec floatval() avec des caractères à gauche non numériques

<?php
$var = 'The122.34343';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 0
?>

Voir aussi

  • boolval() - Récupère la valeur booléenne d'une variable
  • intval() - Retourne la valeur numérique entière équivalente d'une variable
  • strval() - Récupère la valeur d'une variable, au format chaîne
  • settype() - Affecte un type à une variable
  • Transtypage


Liste toutes les variables définies

  • « floatval
  • get_resource_type »
  • PHP Manual
  • Fonctions de gestion des variables
  • Liste toutes les variables définies

get_defined_vars

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

get_defined_vars — Liste toutes les variables définies

Description

array get_defined_vars ( void )

get_defined_vars() retourne un tableau multidimensionnel contenant la liste de toutes les variables définies, qu'elles soient des variables d'environnement, de serveur ou définies par l'utilisateur dans la portée d'appel de la fonction get_defined_vars().

Valeurs de retour

Un tableau multidimensionnel contenant toutes les variables.

Exemples

Exemple #1 Exemple avec get_defined_vars()

<?php
$b = array(1, 1, 2, 3, 5, 8);

$arr = get_defined_vars();

// Affiche $b
print_r($arr["b"]);

/* Affiche le chemin vers l'interpréteur PHP (Si utilisé en tant que CGI)
 * e.g. /usr/local/bin/php */
echo $arr["_"];

// Affiche les paramètres de la ligne de commande s'il y en a
print_r($arr["argv"]);

// Affiche toutes les variables serveur
print_r($arr["_SERVER"]);

// Affiche toutes les clés disponibles du tableau de variables
print_r(array_keys(get_defined_vars()));
?>

Voir aussi

  • isset() - Détermine si une variable est définie et est différente de NULL
  • get_defined_functions() - Liste toutes les fonctions définies
  • get_defined_constants() - Retourne la liste des constantes et leurs valeurs


Retourne le type de ressource

  • « get_defined_vars
  • gettype »
  • PHP Manual
  • Fonctions de gestion des variables
  • Retourne le type de ressource

get_resource_type

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

get_resource_type — Retourne le type de ressource

Description

string get_resource_type ( resource $handle )

Cette fonction retourne le type de la ressource donnée.

Liste de paramètres

handle

Le gestionnaire de ressources à évaluer.

Valeurs de retour

Si le paramètre handle est une ressource, cette fonction retournera une chaîne de caractères représentant son type. Si le type n'est pas identifié par cette fonction, la valeur de retour sera la chaîne de caractères Unknown.

Cette fonction retournera FALSE et générera une erreur si handle n'est pas une ressource.

Exemples

Exemple #1 Exemple avec get_resource_type()

<?php
// affiche : mysql link (ndt : lien mysql)
$c = mysql_connect();
echo get_resource_type($c) . "\n";

// affiche : stream (ndt : flux)
$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";

// affiche : domxml document
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc)."\n";
?>


Retourne le type de la variable

  • « get_resource_type
  • import_request_variables »
  • PHP Manual
  • Fonctions de gestion des variables
  • Retourne le type de la variable

gettype

(PHP 4, PHP 5, PHP 7)

gettype — Retourne le type de la variable

Description

string gettype ( mixed $var )

Retourne le type de la variable var. Pour vérifier le type de la variable, vous pouvez utiliser les fonctions is_*.

Liste de paramètres

var

La variable à analyser.

Valeurs de retour

Les chaînes de caractères que peut retourner la fonction sont les suivantes :

  • "boolean"
  • "integer"
  • "double"(pour des raisons historiques, "double" est retournée lorsqu'une valeur de type float est fournie, au lieu de la chaîne "float")
  • "string"
  • "array"
  • "object"
  • "resource"
  • "NULL"
  • "unknown type"

Exemples

Exemple #1 Exemple avec gettype()

<?php

$data = array(1, 1., NULL, new stdClass, 'foo');

foreach ($data as $value) {
    echo gettype($value), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

integer
double
NULL
object
string

Voir aussi

  • settype() - Affecte un type à une variable
  • get_class() - Retourne le nom de la classe d'un objet
  • is_array() - Détermine si une variable est un tableau
  • is_bool() - Détermine si une variable est un booléen
  • is_callable() - Détermine si l'argument peut être appelé comme fonction
  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_null() - Indique si une variable vaut NULL
  • is_numeric() - Détermine si une variable est un type numérique
  • is_object() - Détermine si une variable est de type objet
  • is_resource() - Détermine si une variable est une ressource
  • is_scalar() - Indique si une variable est un scalaire
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • function_exists() - Indique si une fonction est définie
  • method_exists() - Vérifie si la méthode existe pour une classe


Importe les variables de GET/POST/Cookie dans l'environnement global

  • « gettype
  • intval »
  • PHP Manual
  • Fonctions de gestion des variables
  • Importe les variables de GET/POST/Cookie dans l'environnement global

import_request_variables

(PHP 4 >= 4.1.0, PHP 5 < 5.4.0)

import_request_variables — Importe les variables de GET/POST/Cookie dans l'environnement global

Description

bool import_request_variables ( string $types [, string $prefix ] )

Importe les variables GET/POST/Cookie dans l'environnement global. C'est pratique si vous avez désactivé register_globals , mais que vous voulez enregistrer des variables dans l'environnement global.

Si vous souhaitez importer d'autres variables dans l'environnement global, comme $_SERVER, utilisez la fonction extract().

Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Liste de paramètres

types

En utilisant le paramètre types, vous pouvez spécifier les variables que vous voulez importer. Vous pouvez utiliser 'G', 'P' et 'C' pour désigner respectivement GET, POST et Cookie. Ces caractères ne sont pas sensibles à la casse, et vous pouvez les combiner entre eux. POST inclut les fichiers téléchargés.

Note:

Notez que l'ordre des lettres est important. En utilisant par exemple "GP", les variables POST écraseront les variables GET ayant le même nom. Toute lettre autre que G, P ou C, est ignorée.

prefix

Le paramètre prefix est utilisé comme un préfixe de nom de variable, qui sera ajouté au début de tous les noms de variables importées. Si vous avez par exemple une variable GET du nom de "userid", et utilisez le préfixe "pref_", la variable ainsi générée s'appellera $pref_userid.

Note:

Bien que le paramètre prefix soit optionnel, il sera généré une alerte E_NOTICE si vous ne spécifiez pas de préfixe, ou si vous utilisez une chaîne vide comme préfixe. C'est potentiellement un trou de sécurité. Les alertes de ce niveau ne sont pas affichées si vous utilisez le niveau d'erreur par défaut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec import_request_variables()

<?php
// Ce code va importer les variables GET et POST
// avec un préfixe "rvar_"
import_request_variables("gp", "rvar_");

echo $rvar_foo;
?>

Voir aussi

  • $_REQUEST
  • register_globals
  • variables prédéfinies
  • extract() - Importe les variables dans la table des symboles


Retourne la valeur numérique entière équivalente d'une variable

  • « import_request_variables
  • is_array »
  • PHP Manual
  • Fonctions de gestion des variables
  • Retourne la valeur numérique entière équivalente d'une variable

intval

(PHP 4, PHP 5, PHP 7)

intval — Retourne la valeur numérique entière équivalente d'une variable

Description

int intval ( mixed $var [, int $base = 10 ] )

intval() retourne la valeur numérique entière (entier) de la variable var, en convertissant la valeur dans la base spécifiée (par défaut en base 10). intval() ne doit pas être utilisée sur des objets ; si c'est le cas, une erreur de niveau E_NOTICE sera émise et la fonction retournera 1.

Liste de paramètres

var

La valeur scalaire à être convertie en entier

base

La base pour la conversion

Note:

Si la paramètre base vaut 0, la base utilisée est déterminée par le format du paramètre var :

  • si la chaîne inclue un préfixe "0x" (ou "0X"), la base prise sera 16 (hex) ; sinon,
  • si la chaîne commence par "0", la base prise sera 8 (octal); sinon,
  • la base prise sera 10 (décimal).

Valeurs de retour

Une valeur de type entier de var en cas de succès ou 0 en cas d'échec. Les tableaux vides retournent 0, les tableaux non vides retournent 1.

La valeur maximale dépend du système. Les systèmes à 32 bits ont une valeur entière signée maximale de -2147483648 à 2147483647. Alors, par exemple, sur un système semblable, intval('1000000000000') retournera 2147483647. La valeur entière signée maximale pour un système à 64 bits est 9223372036854775807.

Les chaînes de caractères retournent la plupart du temps 0, cela dépend des caractères à l'extrême gauche de la chaîne. La règle courante du transtypage d'entier s'applique.

Exemples

Exemple #1 Exemples avec intval()

Les exemples suivants sont basés sur un système à 32 bits.

<?php
echo intval(42);                      // 42
echo intval(4.2);                     // 4
echo intval('42');                    // 42
echo intval('+42');                   // 42
echo intval('-42');                   // -42
echo intval(042);                     // 34
echo intval('042');                   // 42
echo intval(1e10);                    // 1410065408
echo intval('1e10');                  // 1
echo intval(0x1A);                    // 26
echo intval(42000000);                // 42000000
echo intval(420000000000000000000);   // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8);                   // 42
echo intval('42', 8);                 // 34
echo intval(array());                 // 0
echo intval(array('foo', 'bar'));     // 1
?>

Notes

Note:

Le paramètre base n'a aucun effet à moins que le paramètre var soit une chaîne de caractères.

Historique

Version | Description
5.1.0 | Lance une alerte de type E_NOTICE et retourne 1 lorsqu'un objet est passé au paramètre var.

Voir aussi

  • boolval() - Récupère la valeur booléenne d'une variable
  • floatval() - Convertit une chaîne en nombre à virgule flottante
  • strval() - Récupère la valeur d'une variable, au format chaîne
  • settype() - Affecte un type à une variable
  • is_numeric() - Détermine si une variable est un type numérique
  • Définition du type
  • Nombres de grande taille BCMath


Détermine si une variable est un tableau

  • « intval
  • is_bool »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si une variable est un tableau

is_array

(PHP 4, PHP 5, PHP 7)

is_array — Détermine si une variable est un tableau

Description

bool is_array ( mixed $var )

is_array() détermine si la variable donnée est un tableau.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un array, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_array()

<?php
$yes = array('ceci', 'est', 'un tableau');

echo is_array($yes) ? 'Tableau' : 'ce n\'est pas un tableau';
echo "\n";

$no = 'ceci est une chaîne';

echo is_array($no) ? 'Tableau' : 'ce n\'est pas un tableau';
?>

L'exemple ci-dessus va afficher :

Tableau
ce n'est pas un tableau

Voir aussi

  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_object() - Détermine si une variable est de type objet


Détermine si une variable est un booléen

  • « is_array
  • is_callable »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si une variable est un booléen

is_bool

(PHP 4, PHP 5, PHP 7)

is_bool — Détermine si une variable est un booléen

Description

bool is_bool ( mixed $var )

is_bool() détermine si la variable donnée est un booléen.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un booléen, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_bool()

<?php
$a = false;
$b = 0;

// Si $a est un booléen, is_bool retournera true
if (is_bool($a) === true) {
    echo "Oui, c'est un booléen.";
}

// Si $b n'est pas un booléen, is_bool retournera false
if (is_bool($b) === false) {
    echo "Non, ce n'est pas un booléen.";
}
?>

Voir aussi

  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_object() - Détermine si une variable est de type objet
  • is_array() - Détermine si une variable est un tableau


Détermine si l'argument peut être appelé comme fonction

  • « is_bool
  • is_double »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si l'argument peut être appelé comme fonction

is_callable

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

is_callable — Détermine si l'argument peut être appelé comme fonction

Description

bool is_callable ( mixed $var [, bool $syntax_only = false [, string &$callable_name ]] )

Vérifie qu'une variable peut être appelée comme fonction. Cette fonction peut vérifier qu'une variable contient un nom de fonction valide, ou bien qu'elle contient un tableau, avec un objet et un nom de méthode.

Liste de paramètres

var

La valeur à vérifier.

syntax_only

Si l'argument syntax_only vaut TRUE, la fonction ne va vérifier que si name peut être une fonction ou une méthode. Il va simplement rejeter les variables qui ne sont pas des chaînes, ou des tableaux qui n'ont pas la bonne structure pour être utilisés comme fonction de rappel. Les tableaux valides sont supposés n'avoir que deux entrées, le premier étant un objet ou une chaîne, et le second une chaîne.

callable_name

L'argument callable_name reçoit le nom à utiliser. Dans l'exemple ci-dessous, il vaut "someClass::someMethod". Notez que, bien que someClass::someMethod() puisse être appelée sous forme statique, ce n'est pas le cas.

Valeurs de retour

Retourne TRUE si var peut être appelé comme une fonction, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_callable()

<?php
//  Comment vérifier qu'une variable peut être appelée
//  comme fonction ?

//
//  Variable simple contenant une fonction
//

function someFunction()
{
}

$functionVariable = 'someFunction';

var_dump(is_callable($functionVariable, false, $callable_name));  // bool(true)

echo $callable_name, "\n";  // someFunction

//
//  Tableau contenant une méthode
//

class someClass {

  function someMethod()
  {
  }

}

$anObject = new someClass();

$methodVariable = array($anObject, 'someMethod');

var_dump(is_callable($methodVariable, true, $callable_name));  //  bool(true)

echo $callable_name, "\n";  //  someClass::someMethod

?>

Exemple #2 is_callable() et les constructeurs

Depuis PHP 5.3.0, is_callable() vérifie si un constructeur est appelable ou non. Ceci affecte les constructeurs style PHP 5 (__construct) mais aussi les constructeurs style PHP 4 (i.e. méthodes avec le même nom que la classe). Auparavant, les deux étaient considérés comme appelable.

<?php

class Foo
{
    public function __construct() {}
    public function foo() {}
}

var_dump(
    is_callable(array('Foo', '__construct')),
    is_callable(array('Foo', 'foo'))
);

L'exemple ci-dessus va afficher :

bool(false)
bool(false)

Voir aussi

  • function_exists() - Indique si une fonction est définie
  • method_exists() - Vérifie si la méthode existe pour une classe


Alias de is_float

  • « is_callable
  • is_float »
  • PHP Manual
  • Fonctions de gestion des variables
  • Alias de is_float

is_double

(PHP 4, PHP 5, PHP 7)

is_double — Alias de is_float()

Description

Cette fonction est un alias de : is_float().


Détermine si une variable est de type nombre décimal

  • « is_double
  • is_int »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si une variable est de type nombre décimal

is_float

(PHP 4, PHP 5, PHP 7)

is_float — Détermine si une variable est de type nombre décimal

Description

bool is_float ( mixed $var )

Détermine si la variable donnée est de type nombre décimal.

Note:

Pour tester si une variable est un nombre ou une chaîne numérique (comme les entrées de formulaire, qui sont toujours des chaînes), vous devez utiliser la fonction is_numeric().

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un nombre décimal, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_float()

<?php
if (is_float(27.25)) {
    echo "is float\n";
} else {
    echo "is not float\n";
}
var_dump(is_float('abc'));
var_dump(is_float(23));
var_dump(is_float(23.5));
var_dump(is_float(1e7));  //Notation Scientifique
var_dump(is_float(true));
?>

L'exemple ci-dessus va afficher :

is float
bool(false)
bool(false)
bool(true)
bool(true)
bool(false)

Voir aussi

  • is_bool() - Détermine si une variable est un booléen
  • is_int() - Détermine si une variable est de type nombre entier
  • is_numeric() - Détermine si une variable est un type numérique
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_array() - Détermine si une variable est un tableau
  • is_object() - Détermine si une variable est de type objet


Détermine si une variable est de type nombre entier

  • « is_float
  • is_integer »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si une variable est de type nombre entier

is_int

(PHP 4, PHP 5, PHP 7)

is_int — Détermine si une variable est de type nombre entier

Description

bool is_int ( mixed $var )

Détermine si la variable donnée est de type nombre entier.

Note:

Pour tester si une variable est un nombre ou une chaîne numérique (comme les entrées de formulaire, qui sont toujours des chaînes), vous devez utiliser la fonction is_numeric().

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un entier, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_int()

<?php
$values = array(23, "23", 23.5, "23.5", null, true, false);
foreach ($values as $value) {
    echo "is_int(";
    var_export($value);
    echo ") = ";
    var_dump(is_int($value));
}
?>

L'exemple ci-dessus va afficher :

is_int(23) = bool(true)
is_int('23') = bool(false)
is_int(23.5) = bool(false)
is_int('23.5') = bool(false)
is_int(NULL) = bool(false)
is_int(true) = bool(false)
is_int(false) = bool(false)

Voir aussi

  • is_bool() - Détermine si une variable est un booléen
  • is_float() - Détermine si une variable est de type nombre décimal
  • is_numeric() - Détermine si une variable est un type numérique
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_array() - Détermine si une variable est un tableau
  • is_object() - Détermine si une variable est de type objet


Alias de is_int

  • « is_int
  • is_long »
  • PHP Manual
  • Fonctions de gestion des variables
  • Alias de is_int

is_integer

(PHP 4, PHP 5, PHP 7)

is_integer — Alias de is_int()

Description

Cette fonction est un alias de : is_int().


Alias de is_int

  • « is_integer
  • is_null »
  • PHP Manual
  • Fonctions de gestion des variables
  • Alias de is_int

is_long

(PHP 4, PHP 5, PHP 7)

is_long — Alias de is_int()

Description

Cette fonction est un alias de : is_int().


Indique si une variable vaut NULL

  • « is_long
  • is_numeric »
  • PHP Manual
  • Fonctions de gestion des variables
  • Indique si une variable vaut NULL

is_null

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

is_null — Indique si une variable vaut NULL

Description

bool is_null ( mixed $var )

Indique si la variable donnée vaut NULL.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est NULL, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_null()

<?php

error_reporting(E_ALL);

$foo = NULL;
var_dump(is_null($inexistent), is_null($foo));

?>
Notice: Undefined variable: inexistent in ...
bool(true)
bool(true)

Voir aussi

  • Le type NULL
  • isset() - Détermine si une variable est définie et est différente de NULL
  • is_bool() - Détermine si une variable est un booléen
  • is_numeric() - Détermine si une variable est un type numérique
  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_object() - Détermine si une variable est de type objet
  • is_array() - Détermine si une variable est un tableau


Détermine si une variable est un type numérique

  • « is_null
  • is_object »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si une variable est un type numérique

is_numeric

(PHP 4, PHP 5, PHP 7)

is_numeric — Détermine si une variable est un type numérique

Description

bool is_numeric ( mixed $var )

Détermine si la variable donnée est de type numérique. Les chaînes numériques sont composées optionnellement de signes, de n'importe quel nombre de chiffres, optionnellement d'une partie décimale ainsi qu'une partie exponentielle. +0123.45e6 est une valeur numérique valide. Les notations hexadécimale (i.e. 0xf4c3b00c) et binaire (i.e. 0b10100111001) ne sont pas autorisées.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un nombre ou une chaîne numérique, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_numeric()

<?php
$tests = array(
    "42",
    1337,
    0x539,
    02471,
    0b10100111001,
    1337e0,
    "not numeric",
    array(),
    9.1
);

foreach ($tests as $element) {
    if (is_numeric($element)) {
        echo "'{$element}' est de type numérique", PHP_EOL;
    } else {
        echo "'{$element}' n'est pas de type numérique", PHP_EOL;
    }
}
?>

L'exemple ci-dessus va afficher :

'42' est de type numérique
'1337' est de type numérique
'1337' est de type numérique
'1337' est de type numérique
'1337' est de type numérique
'1337' est de type numérique
'not numeric' n'est pas de type numérique
'Array' n'est pas de type numérique
'9.1' est de type numérique

Historique

Version | Description
7.0.0 | Les chaînes en notation héxadécimale (i.e. 0xf4c3b00c) ne sont plus vus comme des chaînes numériques, i.e. is_numeric() retourne maintenant FALSE.

Voir aussi

  • ctype_digit() - Vérifie qu'une chaîne est un entier
  • is_bool() - Détermine si une variable est un booléen
  • is_null() - Indique si une variable vaut NULL
  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_object() - Détermine si une variable est de type objet
  • is_array() - Détermine si une variable est un tableau


Détermine si une variable est de type objet

  • « is_numeric
  • is_real »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si une variable est de type objet

is_object

(PHP 4, PHP 5, PHP 7)

is_object — Détermine si une variable est de type objet

Description

bool is_object ( mixed $var )

Détermine si la variable donnée est de type objet.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un objet, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_object()

<?php
// Déclare une simple fonction pour retourner un tableau
// de notre objet
function get_students($obj)
{
    if (!is_object($obj)) {
        return false;
    }

    return $obj->students;
}

// Déclare une nouvelle instance et
// la remplit
$obj = new stdClass();
$obj->students = array('Kalle', 'Ross', 'Felipe');

var_dump(get_students(null));
var_dump(get_students($obj));;
?>

Notes

Note:

Cette fonction retourne FALSE si elle est utilisée sur un objet délinéarisé lorsque la classe de définition n'est pas présente (même si gettype() retourne object).

Voir aussi

  • is_bool() - Détermine si une variable est un booléen
  • is_int() - Détermine si une variable est de type nombre entier
  • is_float() - Détermine si une variable est de type nombre décimal
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_array() - Détermine si une variable est un tableau


Alias de is_float

  • « is_object
  • is_resource »
  • PHP Manual
  • Fonctions de gestion des variables
  • Alias de is_float

is_real

(PHP 4, PHP 5, PHP 7)

is_real — Alias de is_float()

Description

Cette fonction est un alias de : is_float().


Détermine si une variable est une ressource

  • « is_real
  • is_scalar »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si une variable est une ressource

is_resource

(PHP 4, PHP 5, PHP 7)

is_resource — Détermine si une variable est une ressource

Description

bool is_resource ( mixed $var )

Détermine si une variable est une ressource.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est une ressource, FALSE autrement.

Exemples

Exemple #1 Exemple avec is_resource()

<?php

$db_link = @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
if (!is_resource($db_link)) {
    die('Connexion impossible : ' . mysql_error());
}

?>

Notes

Note:

La fonction is_resource() n'est pas une méthode de vérification sticte de type : elle va retourner FALSE si le paramètre var est une ressource qui a été fermée.

Voir aussi

  • La documentation sur les ressources
  • get_resource_type() - Retourne le type de ressource


Indique si une variable est un scalaire

  • « is_resource
  • is_string »
  • PHP Manual
  • Fonctions de gestion des variables
  • Indique si une variable est un scalaire

is_scalar

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

is_scalar — Indique si une variable est un scalaire

Description

bool is_scalar ( mixed $var )

Indique si la variable donnée est un scalaire.

Les variables scalaires sont celles qui contiennent des entiers, des nombres décimaux, des chaînes de caractères ou des booléens. Les types array, object et resource ne sont pas scalaires.

Note:

is_scalar() ne considère pas les valeurs des types ressource comme scalaires, étant donné que les ressources sont des types abstraits, basés sur des entiers. Ceci est susceptible de changer.

Note:

La fonction is_scalar() ne considère pas la valeur NULL comme un scalaire.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un scalaire, FALSE autrement.

Exemples

Exemple #1 Exemple avec is_scalar()

<?php
function show_var($var)
{
    if (is_scalar($var)) {
        echo $var;
    } else {
        var_dump($var);
    }
}
$pi = 3.1416;
$proteines = array("hémoglobine", "cytochrome c oxidase", "ferredoxine");

show_var($pi);

show_var($proteines)
?>

L'exemple ci-dessus va afficher :

3.1416
array(3) {
  [0]=>
  string(11) "hémoglobine"
  [1]=>
  string(20) "cytochrome c oxidase"
  [2]=>
  string(11) "ferredoxine"
}

Voir aussi

  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_numeric() - Détermine si une variable est un type numérique
  • is_real() - Alias de is_float
  • is_string() - Détermine si une variable est de type chaîne de caractères
  • is_bool() - Détermine si une variable est un booléen
  • is_object() - Détermine si une variable est de type objet
  • is_array() - Détermine si une variable est un tableau


Détermine si une variable est de type chaîne de caractères

  • « is_scalar
  • isset »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si une variable est de type chaîne de caractères

is_string

(PHP 4, PHP 5, PHP 7)

is_string — Détermine si une variable est de type chaîne de caractères

Description

bool is_string ( mixed $var )

Détermine si la variable donnée est de type chaîne de caractères.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est une chaîne de caractères, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_string()

<?php
$values = array(false, true, null, 'abc', '23', 23, '23.5', 23.5, '', ' ', '0', 0);
foreach ($values as $value) {
    echo "is_string(";
    var_export($value);
    echo ") = ";
    echo var_dump(is_string($value));
}
?>

L'exemple ci-dessus va afficher :

is_string(false) = bool(false)
is_string(true) = bool(false)
is_string(NULL) = bool(false)
is_string('abc') = bool(true)
is_string('23') = bool(true)
is_string(23) = bool(false)
is_string('23.5') = bool(true)
is_string(23.5) = bool(false)
is_string('') = bool(true)
is_string(' ') = bool(true)
is_string('0') = bool(true)
is_string(0) = bool(false)

Voir aussi

  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_bool() - Détermine si une variable est un booléen
  • is_object() - Détermine si une variable est de type objet
  • is_array() - Détermine si une variable est un tableau


Détermine si une variable est définie et est différente de NULL

  • « is_string
  • print_r »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si une variable est définie et est différente de NULL

isset

(PHP 4, PHP 5, PHP 7)

isset — Détermine si une variable est définie et est différente de NULL

Description

bool isset ( mixed $var [, mixed $... ] )

Détermine si une variable est définie et est différente de NULL.

Si une variable a été détruite avec la fonction unset(), la fonction isset() renverra FALSE. isset() renverra FALSE lors du test d'une variable de valeur NULL. Notez aussi que le caractère nul ("\0") n'est pas équivalent à la constante PHP.

Si plusieurs paramètres sont fournis, alors la fonction isset() retournera TRUE seulement si tous les paramètres sont définis. L'évaluation s'effectue de gauche vers la droite et s'arrête dès qu'une variable non définie est rencontrée.

Liste de paramètres

var

La variable à analyser.

...

Une autre variable...

Valeurs de retour

Retourne TRUE si var existe et a une valeur autre que NULL. FALSE sinon.

Historique

Version | Description
5.4.0 | La vérification de positions non-numériques d'une chaîne retourne maintenant FALSE.

Exemples

Exemple #1 Exemple avec isset()

<?php

$var = '';

// Ceci est vrai, alors le texte est affiché
if (isset($var)) {
    echo 'Cette variable existe, donc je peux l\'afficher.';
}

// Dans les exemples suivants, nous utilisons var_dump() pour afficher
// le retour de la fonction isset().

$a = 'test';
$b = 'anothertest';

var_dump(isset($a));      // TRUE
var_dump(isset($a, $b)); // TRUE

unset ($a);

var_dump(isset($a));     // FALSE
var_dump(isset($a, $b)); // FALSE

$foo = NULL;
var_dump(isset($foo));   // FALSE

?>

Fonctionne aussi avec les tableaux :

<?php

$a = array ('test' => 1, 'bonjour' => NULL, 'pie' => array('a' => 'apple'));

var_dump(isset($a['test']));            // TRUE
var_dump(isset($a['foo']));             // FALSE
var_dump(isset($a['bonjour']));           // FALSE

// La clé 'bonjour' vaut NULL et est considérée comme non existante
// Si vous voulez vérifier l'existence de cette clé, utilisez cette fonction
var_dump(array_key_exists('bonjour', $a) ); // TRUE

// Vérification des valeurs en profondeur
var_dump(isset($a['pie']['a']));        // TRUE
var_dump(isset($a['pie']['b']));        // FALSE
var_dump(isset($a['cake']['a']['b']));  // FALSE
?>

Exemple #2 isset() sur des positions dans une chaîne

PHP 5.4 modifie le comportement de la fonction isset() lorsqu'on lui passe des positions dans une chaîne.

<?php
$expected_array_got_string = 'somestring';
var_dump(isset($expected_array_got_string['some_key']));
var_dump(isset($expected_array_got_string[0]));
var_dump(isset($expected_array_got_string['0']));
var_dump(isset($expected_array_got_string[0.5]));
var_dump(isset($expected_array_got_string['0.5']));
var_dump(isset($expected_array_got_string['0 Mostel']));
?>

Résultat de l'exemple ci-dessus en PHP 5.3 :

bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

Résultat de l'exemple ci-dessus en PHP 5.4 :

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)

Notes

Avertissement

isset() fonctionne uniquement avec des variables car l'utilisation de toute autre chose aura comme conséquence une erreur d'analyse. Pour vérifier si une constants est définie, utilisez la fonction defined().

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Note:

Lors de l'utilisation de cette fonction sur des propriétés d'objet inaccessibles, la méthode magique __isset() sera appelée, si elle existe.

Voir aussi

  • empty() - Détermine si une variable est vide
  • __isset()
  • unset() - Détruit une variable
  • defined() - Vérifie l'existence d'une constante
  • le tableau de comparaison de types
  • array_key_exists() - Vérifie si une clé existe dans un tableau
  • is_null() - Indique si une variable vaut NULL
  • l'opérateur de contrôle de rapport d'erreurs @


Affiche des informations lisibles pour une variable

  • « isset
  • serialize »
  • PHP Manual
  • Fonctions de gestion des variables
  • Affiche des informations lisibles pour une variable

print_r

(PHP 4, PHP 5, PHP 7)

print_r — Affiche des informations lisibles pour une variable

Description

mixed print_r ( mixed $expression [, bool $return = false ] )

print_r() affiche des informations à propos d'une variable, de manière à ce qu'elle soit lisible.

print_r(), var_dump() et var_export() afficheront également les propriétés protégées et privées d'un objet en PHP 5. Les membres des classes statiques ne seront pas affichés.

Liste de paramètres

expression

L'expression à afficher.

return

Si vous voulez obtenir le résultat de print_r() dans une chaîne, utilisez le paramètre return. Lorsque ce paramètre vaut TRUE, print_r() retournera l'information plutôt que de l'afficher.

Valeurs de retour

Si une chaîne de caractères, un entier ou un nombre décimal est fournie, sa valeur sera affichée. Si un tableau est fourni, les valeurs seront affichées dans un format permettant de voir les clés et les éléments. Un format similaire sera également utilisé pour les objets.

Lorsque le paramètre return vaut TRUE, cette fonction retournera une chaîne de caractères. Autrement, la valeur de retour sera TRUE.

Notes

Note:

Lorsque le paramètre return est utilisé, cette fonction utilise en interne le buffer de sortie, il ne peut donc pas être utilisé dans la fonction de rappel ob_start().

Exemples

Exemple #1 Exemple avec print_r()

<pre>
<?php
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
</pre>

L'exemple ci-dessus va afficher :

<pre>
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

Exemple #2 Exemple avec le paramètre return

<?php
$b = array ('m' => 'monkey', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
$results = print_r($b, true); // $results contient l'affichage de print_r
?>

Voir aussi

  • ob_start() - Enclenche la temporisation de sortie
  • var_dump() - Affiche les informations d'une variable
  • var_export() - Retourne le code PHP utilisé pour générer une variable


Génère une représentation stockable d'une valeur

  • « print_r
  • settype »
  • PHP Manual
  • Fonctions de gestion des variables
  • Génère une représentation stockable d'une valeur

serialize

(PHP 4, PHP 5, PHP 7)

serialize — Génère une représentation stockable d'une valeur

Description

string serialize ( mixed $value )

Génère une représentation stockable d'une valeur.

C'est une technique pratique pour stocker ou passer des valeurs PHP entre scripts, sans perdre leur structure ni leur type.

Pour récupérer une variable linéarisée et retrouver une valeur PHP, utilisez unserialize().

Liste de paramètres

value

La valeur à linéariser. serialize() accepte tous les types sauf les ressources. Vous pouvez même linéariser un tableau qui contient des références sur lui-même. Les références cycliques dans des tableaux/objets seront également stockées. Toutes les autres références seront perdues.

Lors de la linéarisation d'un objet, PHP tentera d'appeler la fonction membre __sleep() avant de linéariser. Cela permet à l'objet de faire un dernier nettoyage, etc. avant d'être linéarisé. De même, lorsque l'objet est restauré en utilisant unserialize(), la fonction membre __wakeup() est appelée.

Note:

Les attributs privés d'un objet auront le nom de la classe préfixé au nom de l'attribut ; les attributs protégés seront préfixés avec un astérisque '*'. Ces valeurs préfixées ont des caractères nuls des deux cotés.

Valeurs de retour

Retourne une chaîne contenant une représentation linéaire de value, pour stockage.

Notez que cette chaîne est une chaîne binaire qui peut inclure des octets nuls, et doit donc être stockée et gérée comme telle. Par exemple, la sortie de la fonction serialize() doit généralement être stockée dans un champ de type BLOB d'une base de données, plutôt que dans un champ de type CHAR ou TEXT.

Exemples

Exemple #1 Exemple avec serialize()

<?php
// $session_data contient un tableau multidimensionnel , avec les
// informations de session de l'utilisateur courant. On utilise serialize()
// pour les stocker dans une base de données

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
      "UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, $sqldata)) {
    $stmt = odbc_prepare($conn,
     "INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!odbc_execute($stmt, $sqldata)) {
        /* Un problème est survenu ! */
    }
}
?>

Notes

Note:

Notez que de nombreux objets internes de PHP ne peuvent être linéarisés. Cependant, ceux qui le peuvent implémentent l'interface Serializable ou définissent les méthodes magiques __sleep() et __wakeup(). Si une classe interne n'utilise pas une de ces techniques, alors elle ne peut être linéarisée de manière sûre.

Il existe des exceptions historiques à cette règle, où des objets internes peuvent être linéarisés alors qu'ils n'implémentent pas l'interface ou n'exposent pas les méthodes magiques prévues à cet effet. On pourra notamment citer ArrayObject avant PHP 5.2.0.

Avertissement

Lorsque la fonction serialize() linéarise des objets, l'anti-slash de fin n'est pas inclus dans l'espace de nom du nom de la classe et ce, pour un maximum de compatibilité.

Voir aussi

  • unserialize() - Crée une variable PHP à partir d'une valeur linéarisée
  • var_export() - Retourne le code PHP utilisé pour générer une variable
  • json_encode() - Retourne la représentation JSON d'une valeur
  • La linéarisation d'objets
  • __sleep()
  • __wakeup()


Affecte un type à une variable

  • « serialize
  • strval »
  • PHP Manual
  • Fonctions de gestion des variables
  • Affecte un type à une variable

settype

(PHP 4, PHP 5, PHP 7)

settype — Affecte un type à une variable

Description

bool settype ( mixed &$var , string $type )

Force le type de la variable var en type.

Liste de paramètres

var

La variable à convertir.

type

Les valeurs possibles pour le paramètre type sont :

  • "boolean" (ou, depuis PHP 4.2.0, "bool")
  • "integer" (ou, depuis PHP 4.2.0, "int")
  • "float" (uniquement depuis PHP 4.2.0. Pour les anciennes versions, utilisez l'alternative "double")
  • "string"
  • "array"
  • "object"
  • "NULL" (depuis PHP 4.2.0)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec settype()

<?php
$foo = "5bar"; // chaîne
$bar = true;   // booléen

settype($foo, "integer"); // $foo vaut maintenant 5   (integer)
settype($bar, "string");  // $bar vaut maintenant "1" (string)
?>

Notes

Note:

La valeur maximale des entiers est la valeur contenue dans la variable PHP_INT_MAX.

Voir aussi

  • gettype() - Retourne le type de la variable
  • conversion de type
  • transtypage automatique


Récupère la valeur d'une variable, au format chaîne

  • « settype
  • unserialize »
  • PHP Manual
  • Fonctions de gestion des variables
  • Récupère la valeur d'une variable, au format chaîne

strval

(PHP 4, PHP 5, PHP 7)

strval — Récupère la valeur d'une variable, au format chaîne

Description

string strval ( mixed $var )

Récupère la valeur de la variable var, au format chaîne de caractères. Voir la documentation sur les chaînes de caractères pour plus d'informations sur la conversion en chaîne.

Cette fonction n'effectue aucun formatage sur la valeur retournée. Si vous cherchez un moyen de formatter une valeur numérique en chaîne de caractères, reportez-vous à la fonction sprintf() ou la fonction number_format().

Liste de paramètres

var

La variable à convertir en chaîne de caractères.

var peut être un scalaire ou un objet implémentant la méthode magique __toString(). Vous ne pouvez pas utiliser la fonction strval() avec des tableaux ou des objets qui n'implémentent pas la méthode magique __toString().

Valeurs de retour

La valeur de la variable var sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple pour strval() utilisant la méthode magique PHP 5 __toString().

<?php
class StrValTest
{
    public function __toString()
    {
        return __CLASS__;
    }
}

// Affiche 'StrValTest'
echo strval(new StrValTest);
?>

Voir aussi

  • boolval() - Récupère la valeur booléenne d'une variable
  • floatval() - Convertit une chaîne en nombre à virgule flottante
  • intval() - Retourne la valeur numérique entière équivalente d'une variable
  • settype() - Affecte un type à une variable
  • sprintf() - Retourne une chaîne formatée
  • number_format() - Formate un nombre pour l'affichage
  • Le transtypage
  • __toString()


Crée une variable PHP à partir d'une valeur linéarisée

  • « strval
  • unset »
  • PHP Manual
  • Fonctions de gestion des variables
  • Crée une variable PHP à partir d'une valeur linéarisée

unserialize

(PHP 4, PHP 5, PHP 7)

unserialize — Crée une variable PHP à partir d'une valeur linéarisée

Description

mixed unserialize ( string $str [, array $options ] )

unserialize() prend une variable linéarisée (voir serialize()) et la convertit en variable PHP.

Avertissement

Ne passez pas d'entrée utilisateur non fiable à la fonction unserialize(). La délinéarisation peut résulter en une exécution de code chargé et exécuté lors de l'instanciation et l'auto-chargement d'objet, et ainsi, un utilisateur mal intentionné peut être capable d'exploiter ce comportement. Utilisez un standard d'échange sûr, comme JSON (via les fonctions json_decode() et json_encode()) si vous devez passer des données linéarisées à l'utilisateur.

Si vous avez besoin de délinéariser des données linéarisées dans un magasin externe, vous devriez utiliser la fonction hash_hmac() pour valider les données. Assurez-vous que les données n'ont été modifiées par personne d'autre que vous.

Liste de paramètres

str

La chaîne linéarisée.

Si la variable délinéarisée est un objet, après avoir réussi à le reconstruire, PHP appellera automatiquement la méthode __wakeup si elle existe.

Note: unserialize_callback_func directive

Il est possible de définir une fonction de rappel qui sera appelée si une classe indéfinie est utilisée lors de la délinéarisation (ce qui évitera de voir l'objet recevoir le type d'objet incomplet object "__PHP_Incomplete_Class"). Utilisez dans votre fichier php.ini ou le fichier .htaccess, ou encore avec la fonction ini_set(), pour définir une fonction unserialize_callback_func(). Chaque fois qu'une classe non-définie sera instanciée, cette fonction sera appelée. Pour désactiver cette fonctionnalité, laissez la simplement vide.

options

Toute option à fournir à unserialize(), sous la forme d'un tableau associatif.

Options valides
Nom | Type | Description
allowed_classes | mixed | Soit un tableau de noms de classes qui doivent être acceptées, FALSE pour accepter aucune classe, ou TRUE pour accepter toutes les classes. Si cette option est définie, et unserialize() rencontre un objet d'une classe qui n'est pas accepté, alors l'objet sera instancié plutôt comme __PHP_Incomplete_Class. Le fait d'ommettre cette option revient à le définir comme TRUE : PHP va tenter d'instancier les objets de n'importe quelle classe.

Valeurs de retour

La valeur convertie est retournée par la fonction, et peut être de type booléen, entier, nombre décimal, chaîne de caractères, tableau ou objet.

Si la chaîne passée ne peut être délinéarisée, cette fonction retourne FALSE et une erreur E_NOTICE est émise.

Historique

Version | Description
7.0.0 | Le paramètre options a été ajouté.
5.6.0 | La manipulation des données linéarisées en remplaçant C: avec O: pour forcer l'instanciation d'objet sans appeler le constructeur échoue dorénavant.

Exemples

Exemple #1 Exemple avec unserialize()

<?php
// Ici, on utilise <function>unserialize</function> pour charger les données de sessions
// depuis la base de données, dans $session_data. Cet exemple complète
// celui fourni avec <function>serialize</function>.

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array($_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, $sqldata) || !odbc_fetch_into($stmt, $tmp)) {
    // si la préparation ou la lecture échouent, on crée un tableau vide
    $session_data = array();
} else {
    // les données sauvées sont dans $tmp[0].
    $session_data = unserialize($tmp[0]);
    if (!is_array($session_data)) {
        // Erreur... initialisation d'un tableau vide
        $session_data = array();
    }
}
?>

Exemple #2 Exemple avec la directive unserialize_callback_func

<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';

// directive unserialize_callback_func disponible depuis PHP 4.2.0
ini_set('unserialize_callback_func', 'mycallback');

function mycallback($classname)
{
    // Incluez simplement un fichier contenant votre définition de classe
    // vous saurez quelle classe grâce à $classname
}
?>

Notes

Avertissement

FALSE est retourné dans les cas où une erreur survient et si vous tentez de délinéariser une valeur linéarisé égale à FALSE. Il est possible d'intercepter ce cas spécial en comparant str avec serialize(false) ou en attrapant l'erreur E_NOTICE émise.

Voir aussi

  • json_encode() - Retourne la représentation JSON d'une valeur
  • json_decode() - Décode une chaîne JSON
  • hash_hmac() - Génère une valeur de clé de hachage en utilisant la méthode HMAC
  • serialize() - Génère une représentation stockable d'une valeur
  • Auto-chargement des classes
  • unserialize_callback_func
  • __wakeup


Détruit une variable

  • « unserialize
  • var_dump »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détruit une variable

unset

(PHP 4, PHP 5, PHP 7)

unset — Détruit une variable

Description

void unset ( mixed $var [, mixed $... ] )

unset() détruit la ou les variables dont le nom a été passé en argument var.

Le comportement de unset() à l'intérieur d'une fonction peut varier suivant le type de variable que vous voulez détruire.

Si une variable globale est détruite avec unset() depuis une fonction, seule la variable locale sera détruite. La variable globale gardera la valeur acquise avant l'appel à unset().

<?php
function destroy_foo()
{
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
?>

L'exemple ci-dessus va afficher :

bar

Pour détruire une variable globale à l'intérieur d'une fonction, vous pouvez utiliser le tableau $GLOBALS :

<?php
function foo()
{
    unset($GLOBALS['bar']);
}

$bar = "truc";
foo();
?>

Si une variable qui est passée par référence est détruite à l'intérieur d'une fonction, seule la variable locale sera détruite. La variable globale conservera la même valeur qu'elle avait avant l'appel de unset().

<?php
function foo(&$bar)
{
    unset($bar);
    $bar = "blah";
}

$bar = 'truc';
echo "$bar\n";

foo($bar);
echo "$bar\n";
?>

L'exemple ci-dessus va afficher :

truc
truc

Si une variable statique est détruite à l'intérieur d'une fonction unset() détruira la variable seulement dans le contexte du reste de la fonction. Les appels suivants restaureront la valeur précédente de la variable.

<?php
function foo()
{
    static $bar;
    $bar++;
    echo "Avant unset : $bar, ";
    unset($bar);
    $bar = 23;
    echo "après unset : $bar\n";
}

foo();
foo();
foo();
?>

L'exemple ci-dessus va afficher :

Avant unset : 1, après unset: 23
Avant unset : 2, après unset: 23
Avant unset : 3, après unset: 23

Liste de paramètres

var

La variable à détruire.

...

Autres variables...

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec unset()

<?php
// Destruction d'une seule variable
unset($foo);

// Destruction d'un élément de tableau
unset($bar['quux']);

// Destruction de plusieurs variables
unset($foo1, $foo2, $foo3);
?>

Exemple #2 Exemple avec un transtypage (unset)

Le transtypage (unset) est souvent confondu avec la fonction unset(). Le transtypage (unset) sert uniquement à transtyper en type NULL. Il n'altère pas la variable transtypée.

<?php
$name = 'Felipe';

var_dump((unset) $name);
var_dump($name);
?>

L'exemple ci-dessus va afficher :

NULL
string(6) "Felipe"

Notes

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Note:

Il est possible de détruire n'importe quelle propriété visible dans le contexte courant.

Note:

Il n'est pas possible de détruire la variable spéciale $this à l'intérieur d'une méthode d'un objet, depuis PHP 5.

Note:

Lors de l'utilisation de cette fonction sur des propriétés d'objet inaccessibles, la méthode magique __unset sera appelée, si elle existe.

Voir aussi

  • isset() - Détermine si une variable est définie et est différente de NULL
  • __unset()
  • empty() - Détermine si une variable est vide
  • array_splice() - Efface et remplace une portion de tableau


Affiche les informations d'une variable

  • « unset
  • var_export »
  • PHP Manual
  • Fonctions de gestion des variables
  • Affiche les informations d'une variable

var_dump

(PHP 4, PHP 5, PHP 7)

var_dump — Affiche les informations d'une variable

Description

void var_dump ( mixed $expression [, mixed $... ] )

var_dump() affiche les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.

Toutes les propriétés publiques, privées et protégées des objets seront retournées dans la sortie à moins que l'objet n'implémente une méthode __debugInfo() (implémenté en PHP 5.6.0).

Astuce

Comme pour toutes les fonctions qui affichent directement des résultats au navigateur, vous pouvez utiliser les fonctions de gestion des sorties pour capturer le contenu de cette fonction et le sauver, par exemple, dans une chaîne.

Liste de paramètres

expression

La variable que vous voulez afficher.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec var_dump()

<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}
<?php

$b = 3.1;
$c = true;
var_dump($b, $c);

?>

L'exemple ci-dessus va afficher :

float(3.1)
bool(true)

Voir aussi

  • print_r() - Affiche des informations lisibles pour une variable
  • debug_zval_dump() - Extrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage
  • var_export() - Retourne le code PHP utilisé pour générer une variable
  • __debugInfo()


Retourne le code PHP utilisé pour générer une variable

  • « var_dump
  • Services Web »
  • PHP Manual
  • Fonctions de gestion des variables
  • Retourne le code PHP utilisé pour générer une variable

var_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

var_export — Retourne le code PHP utilisé pour générer une variable

Description

mixed var_export ( mixed $expression [, bool $return = false ] )

var_export() retourne des données structurées sur la variable donnée. C'est le même principe que var_dump() mais avec une exception : le résultat retourné est du code PHP valide.

Liste de paramètres

expression

La variable que vous voulez exporter.

return

Si utilisé et mis à TRUE, var_export() retournera la représentation de la variable au lieu de l'afficher.

Valeurs de retour

Retourne la représentation de la variable lorsque le paramètre return est utilisé et évalué à TRUE. Autrement, cette fonction retournera NULL.

Notes

Note:

Lorsque le paramètre return est utilisé, cette fonction utilise en interne le buffer de sortie, il ne peut donc pas être utilisé dans la fonction de rappel ob_start().

Historique

Version | Description
5.1.0 | Possibilité d'exporter des classes et des tableaux contenant des classes en utilisant la méthode magique __set_state.

Exemples

Exemple #1 Exemple avec var_export()

<?php

$a = array (1, 2, array ("a", "b", "c"));
var_export($a);

?>

L'exemple ci-dessus va afficher :

array (
  0 => 1,
  1 => 2,
  2 =>
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
<?php

$b = 3.1;
$v = var_export($b, true);
echo $v; // 3.1

?>

L'exemple ci-dessus va afficher :

3.1

Exemple #2 Exporter des classes depuis PHP 5.1.0

<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a);
?>

L'exemple ci-dessus va afficher :

A::__set_state(array(
   'var' => 5,
))

Exemple #3 Utilisation de __set_state (depuis PHP 5.1.0)

<?php
class A
{
    public $var1;
    public $var2;

    public static function __set_state($an_array)
    {
        $obj = new A;
        $obj->var1 = $an_array['var1'];
        $obj->var2 = $an_array['var2'];
        return $obj;
    }
}

$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';

eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
                                     //    'var1' => 5,
                                     //    'var2' => 'foo',
                                     // ));
var_dump($b);
?>

L'exemple ci-dessus va afficher :

object(A)#2 (2) {
    ["var1"]=>
    int(5)
    ["var2"]=>
    string(3) "foo"
}

Notes

Note:

Les variables de type ressource ne peuvent être exportées par cette fonction.

Note:

var_export() ne gère pas les références circulaires car il serait impossible de générer un code PHP analysable pour ce type de données. Si vous voulez faire quelque chose avec la représentation complète d'un tableau ou d'un objet, utilisez la fonction serialize().

Avertissement

Lorsque la fonction var_export() exporte des objets, l'anti-slash initial n'est pas inclus dans l'espace de nom de la classe et ce, pour un maximum de compatibilité.

Note:

Pour être capable d'évaluer le PHP généré par var_export(), tous les objets analysés doivent implémenter la méthode magique __set_state. Notez que StdClass n'implémente pas __set_state().

Voir aussi

  • print_r() - Affiche des informations lisibles pour une variable
  • serialize() - Génère une représentation stockable d'une valeur
  • var_dump() - Affiche les informations d'une variable


Services Web

  • OAuth
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions OAuth
    • OAuth — La classe OAuth
    • OAuthProvider — La classe OAuthProvider
    • OAuthException — La classe OAuthException
  • SCA
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions SCA
  • SOAP
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions SOAP
    • SoapClient — La classe SoapClient
    • SoapServer — La classe SoapServer
    • SoapFault — La classe SoapFault
    • SoapHeader — La classe SoapHeader
    • SoapParam — La classe SoapParam
    • SoapVar — La classe SoapVar
  • Yar — Yet Another RPC Framework
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Yar_Server — La classe Yar_Server
    • Yar_Client — La classe Yar_Client
    • Yar_Concurrent_Client — La classe Yar_Concurrent_Client
    • Yar_Server_Exception — La classe Yar_Server_Exception
    • Yar_Client_Exception — La classe Yar_Client_Exception
  • XML-RPC
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions XML-RPC


OAuth

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • FireEagle
  • Fonctions OAuth
    • oauth_get_sbs — Génère une chaîne de base de signature
    • oauth_urlencode — Encode une URI conformément à RFC 3986
  • OAuth — La classe OAuth
    • OAuth::__construct — Crée un nouvel objet OAuth
    • OAuth::__destruct — Le destructeur
    • OAuth::disableDebug — Désactive les messages de déboguage
    • OAuth::disableRedirects — Désactive les redirections
    • OAuth::disableSSLChecks — Désactive la vérification SSL
    • OAuth::enableDebug — Active les messages de débogage
    • OAuth::enableRedirects — Active les redirections
    • OAuth::enableSSLChecks — Active la vérification SSL
    • OAuth::fetch — Lit une ressource protégée par OAuth
    • OAuth::generateSignature — Génère une signature
    • OAuth::getAccessToken — Récupère un token d'accès
    • OAuth::getCAPath — Récupère l'information CA
    • OAuth::getLastResponse — Lit la dernière réponse
    • OAuth::getLastResponseHeaders — Récupère les en-têtes de la dernière réponse
    • OAuth::getLastResponseInfo — Lit les informations HTTP de la dernière réponse
    • OAuth::getRequestHeader — Génère une signature d'en-tête OAuth
    • OAuth::getRequestToken — Lit le token de requête
    • OAuth::setAuthType — Définit le type d'autorisation
    • OAuth::setCAPath — Définit le chemin et les informations du CA
    • OAuth::setNonce — Configure le nonce OAuth
    • OAuth::setRequestEngine — Le but de setRequestEngine
    • OAuth::setRSACertificate — Définit le certificat RSA
    • OAuth::setSSLChecks — Définit des vérifications spécifiques à SSL pour les requêtes
    • OAuth::setTimestamp — Définit le timestamp
    • OAuth::setToken — Configure le token et le secret
    • OAuth::setVersion — Configure la version OAuth
  • OAuthProvider — La classe OAuthProvider
    • OAuthProvider::addRequiredParameter — Ajoute des paramètres requis
    • OAuthProvider::callconsumerHandler — Appelle la fonction de rappel consumerNonceHandler
    • OAuthProvider::callTimestampNonceHandler — Appelle la fonction de rappel timestampNonceHandler
    • OAuthProvider::calltokenHandler — Appelle la fonction de rappel tokenNonceHandler
    • OAuthProvider::checkOAuthRequest — Vérifie une requête OAuth
    • OAuthProvider::__construct — Construit un nouvel objet OAuthProvider
    • OAuthProvider::consumerHandler — Définit la fonction de rappel consumerHandler
    • OAuthProvider::generateToken — Génère un jeton aléatoire
    • OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint
    • OAuthProvider::isRequestTokenEndpoint — Définit isRequestTokenEndpoint
    • OAuthProvider::removeRequiredParameter — Supprime un paramètre
    • OAuthProvider::reportProblem — Rapporte un problème
    • OAuthProvider::setParam — Définit un paramètre
    • OAuthProvider::setRequestTokenPath — Définit le chemin du jeton demandé
    • OAuthProvider::timestampNonceHandler — Définit le gestionnaire de rappel timestampNonceHandler
    • OAuthProvider::tokenHandler — Définit le gestionnaire de rappel tokenHandler
  • OAuthException — La classe OAuthException


Introduction

Cette extension fournit un client et un prestataire de service OAuth 1.0a. OAuth est un protocole d'autorisation qui est construit sur HTTP, et qui permet aux applications de sécuriser l'accès aux données sans avoir à stocker de noms d'utilisateurs et de mots de passe.


Pré-requis

PECL/oauth requiert PHP 5.1 ou plus récent, les extensions ext/hash et ext/pcre.

PECL/oauth peut aussi nécessiter la bibliothèque libcurl si elle a été sélectionnée au moment de la compilation. Si c'est le cas, PECL/oauth doit aussi être compilé avec le support HTTPS.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pear.php.net/package/oauth


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

La plupart de ces constantes impliquent des problèmes décrits dans la documentation officiels de » rapport de problèmes d'OAuth. Notez cependant que les noms des constantes sont spécifiques à PHP, malgré le fait que le schéma de nommage est similaire.

OAUTH_SIG_METHOD_RSASHA1 (chaîne de caractères)
Méthode de signature OAuth RSA-SHA1.
OAUTH_SIG_METHOD_HMACSHA1 (chaîne de caractères)

Méthode de signature OAuth HMAC-SHA1.

OAUTH_SIG_METHOD_HMACSHA256 (chaîne de caractères)
Méthode de signature OAuth HMAC-SHA256.
OAUTH_AUTH_TYPE_AUTHORIZATION (chaîne de caractères)

Cette constante représente l'entête Authorization.

OAUTH_AUTH_TYPE_NONE (chaîne de caractères)

Cette constante indique une requête NoAuth OAuth.

OAUTH_AUTH_TYPE_URI (chaîne de caractères)

Cette constante représente les paramètres OAuth dans l'URI de requête.

OAUTH_AUTH_TYPE_FORM (chaîne de caractères)

Cette constante représente les paramètres OAuth comme une partie du corps HTTP POST.

OAUTH_HTTP_METHOD_GET (chaîne de caractères)

Utilise la méthode GET pour la requête OAuth.

OAUTH_HTTP_METHOD_POST (chaîne de caractères)

Utilise la méthode POST pour la requête OAuth.

OAUTH_HTTP_METHOD_PUT (chaîne de caractères)

Utilise la méthode PUT pour la requête OAuth.

OAUTH_HTTP_METHOD_HEAD (chaîne de caractères)

Utilise la méthode HEAD pour la requête OAuth.

OAUTH_HTTP_METHOD_DELETE (chaîne de caractères)
Utilise la méthode DELETE pour la requête OAuth.
OAUTH_REQENGINE_STREAMS (entier)
Utilisé par la méthode Oauth::setRequestEngine() pour définir le moteur de flux PHP, à l'opposé de OAUTH_REQENGINE_CURL pour Curl.
OAUTH_REQENGINE_CURL (entier)
Utilisé par la méthode Oauth::setReqeustEngine() pour définir le moteur de Curl, à l'opposé de OAUTH_REQENGINE_STREAMS pour les flux PHP.
OAUTH_OK (entier)
La vie est belle.
OAUTH_BAD_NONCE (entier)
La valeur oauth_nonce a été utilisée pour une précédente requête, et ne peut être utilisée maintenant.
OAUTH_BAD_TIMESTAMP (entier)
La valeur oauth_timestamp n'est pas acceptée par le prestataire de service. Dans ce cas, la réponse devra aussi contenir le paramètre oauth_acceptable_timestamps.
OAUTH_CONSUMER_KEY_UNKNOWN (entier)
oauth_consumer_key est temporairement innaceptable par le prestataire de service. Par exemple, le prestataire de service surcharge le consommateur.
OAUTH_CONSUMER_KEY_REFUSED (entier)
La clé du consommateur a été refusée.
OAUTH_INVALID_SIGNATURE (entier)
oauth_signature est invalide car elle ne correspond pas à la signature calculée par le prestataire de service.
OAUTH_TOKEN_USED (entier)
oauth_token a été consommé. Elle ne peut plus être utilisée car elle a déjà été utilisée dans une ou plusieurs précédentes requêtes.
OAUTH_TOKEN_EXPIRED (entier)
oauth_token a expiré.
OAUTH_TOKEN_REVOKED (entier)
oauth_token a été révoquée et ne pourra plus être acceptée.
OAUTH_TOKEN_REJECTED (entier)
oauth_token n'a pas été acceptée par le prestataire de service. La raison est inconnue, mais il se peut que le jeton n'a jamais été utilisé, a déjà été consommé, a expiré et/ou a été oublié par le prestataire de service.
OAUTH_VERIFIER_INVALID (entier)
oauth_verifier est incorrect.
OAUTH_PARAMETER_ABSENT (entier)
Un paramètre requis n'a pas été reçu. Dans ce cas, la réponse devra également contenir le paramètre oauth_parameters_absent.
OAUTH_SIGNATURE_METHOD_REJECTED (entier)
oauth_signature_method n'a pas été accepté par le prestataire de service.


  • « Constantes pré-définies
  • FireEagle »
  • PHP Manual
  • OAuth
  • Exemples

Exemples

Sommaire

  • FireEagle


FireEagle

<?php
$req_url = 'https://fireeagle.yahooapis.com/oauth/request_token';
$authurl = 'https://fireeagle.yahoo.net/oauth/authorize';
$acc_url = 'https://fireeagle.yahooapis.com/oauth/access_token';
$api_url = 'https://fireeagle.yahooapis.com/api/0.1';
$conskey = 'your_consumer_key';
$conssec = 'your_consumer_secret';

session_start();

// En état state=1 la prochaine requete doit inclure le oauth_token.
// Si ce n'est pas le cas, retour à 0
if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0;
try {
  $oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI);
  $oauth->enableDebug();
  if(!isset($_GET['oauth_token']) && !$_SESSION['state']) {
    $request_token_info = $oauth->getRequestToken($req_url);
    $_SESSION['secret'] = $request_token_info['oauth_token_secret'];
    $_SESSION['state'] = 1;
    header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token']);
    exit;
  } else if($_SESSION['state']==1) {
    $oauth->setToken($_GET['oauth_token'],$_SESSION['secret']);
    $access_token_info = $oauth->getAccessToken($acc_url);
    $_SESSION['state'] = 2;
    $_SESSION['token'] = $access_token_info['oauth_token'];
    $_SESSION['secret'] = $access_token_info['oauth_token_secret'];
  }
  $oauth->setToken($_SESSION['token'],$_SESSION['secret']);
  $oauth->fetch("$api_url/user.json");
  $json = json_decode($oauth->getLastResponse());
  print_r($json);
} catch(OAuthException $E) {
  print_r($E);
}
?>


Fonctions OAuth

Sommaire

  • oauth_get_sbs — Génère une chaîne de base de signature
  • oauth_urlencode — Encode une URI conformément à RFC 3986


Génère une chaîne de base de signature

  • « Fonctions OAuth
  • oauth_urlencode »
  • PHP Manual
  • Fonctions OAuth
  • Génère une chaîne de base de signature

oauth_get_sbs

(PECL OAuth >=0.99.7)

oauth_get_sbs — Génère une chaîne de base de signature

Description

string oauth_get_sbs ( string $http_method , string $uri [, array $request_parameters ] )

Génère une chaîne de base de signature pour pecl/oauth.

Liste de paramètres

http_method

La méthode HTTP.

uri

L'URI à encoder.

request_parameters

Tableau de paramètres de requêtes.

Valeurs de retour

Retourne une chaîne, la Signature Base String.


Encode une URI conformément à RFC 3986

  • « oauth_get_sbs
  • OAuth »
  • PHP Manual
  • Fonctions OAuth
  • Encode une URI conformément à RFC 3986

oauth_urlencode

(PECL OAuth >=0.99.2)

oauth_urlencode — Encode une URI conformément à RFC 3986

Description

string oauth_urlencode ( string $uri )

Encodes une URI conformément à » RFC 3986.

Liste de paramètres

uri

l'URI à encoder.

Valeurs de retour

Retourne une chaîne encodée conformément à » RFC 3986.


La classe OAuth

(PECL OAuth >= 0.99.1)

Introduction

L'extension OAuth fournit une interface simple pour interagir avec des fournisseur de données, en utilisant les spécifications OAuth HTTP pour protéger les ressources.

Synopsis de la classe

OAuth {
/* Propriétés */
public $debug ;
public $sslChecks ;
public $debugInfo ;
/* Méthodes */
public __construct ( string $consumer_key , string $consumer_secret [, string $signature_method = OAUTH_SIG_METHOD_HMACSHA1 [, int $auth_type = 0 ]] )
public void __destruct ( void )
public bool disableDebug ( void )
public bool disableRedirects ( void )
public bool disableSSLChecks ( void )
public bool enableDebug ( void )
public bool enableRedirects ( void )
public bool enableSSLChecks ( void )
public mixed fetch ( string $protected_resource_url [, array $extra_parameters [, string $http_method [, array $http_headers ]]] )
public string generateSignature ( string $http_method , string $url [, mixed $extra_parameters ] )
public array getAccessToken ( string $access_token_url [, string $auth_session_handle [, string $verifier_token [, string $http_method ]]] )
public array getCAPath ( void )
public string getLastResponse ( void )
public string getLastResponseHeaders ( void )
public array getLastResponseInfo ( void )
public string getRequestHeader ( string $http_method , string $url [, mixed $extra_parameters ] )
public array getRequestToken ( string $request_token_url [, string $callback_url [, string $http_method ]] )
public mixed setAuthType ( int $auth_type )
public mixed setCAPath ([ string $ca_path [, string $ca_info ]] )
public mixed setNonce ( string $nonce )
public void setRequestEngine ( int $reqengine )
public mixed setRSACertificate ( string $cert )
public bool setSSLChecks ( int $sslcheck )
public mixed setTimestamp ( string $timestamp )
public bool setToken ( string $token , string $token_secret )
public bool setVersion ( string $version )
}

Propriétés

debug

sslChecks

debugInfo

Sommaire

  • OAuth::__construct — Crée un nouvel objet OAuth
  • OAuth::__destruct — Le destructeur
  • OAuth::disableDebug — Désactive les messages de déboguage
  • OAuth::disableRedirects — Désactive les redirections
  • OAuth::disableSSLChecks — Désactive la vérification SSL
  • OAuth::enableDebug — Active les messages de débogage
  • OAuth::enableRedirects — Active les redirections
  • OAuth::enableSSLChecks — Active la vérification SSL
  • OAuth::fetch — Lit une ressource protégée par OAuth
  • OAuth::generateSignature — Génère une signature
  • OAuth::getAccessToken — Récupère un token d'accès
  • OAuth::getCAPath — Récupère l'information CA
  • OAuth::getLastResponse — Lit la dernière réponse
  • OAuth::getLastResponseHeaders — Récupère les en-têtes de la dernière réponse
  • OAuth::getLastResponseInfo — Lit les informations HTTP de la dernière réponse
  • OAuth::getRequestHeader — Génère une signature d'en-tête OAuth
  • OAuth::getRequestToken — Lit le token de requête
  • OAuth::setAuthType — Définit le type d'autorisation
  • OAuth::setCAPath — Définit le chemin et les informations du CA
  • OAuth::setNonce — Configure le nonce OAuth
  • OAuth::setRequestEngine — Le but de setRequestEngine
  • OAuth::setRSACertificate — Définit le certificat RSA
  • OAuth::setSSLChecks — Définit des vérifications spécifiques à SSL pour les requêtes
  • OAuth::setTimestamp — Définit le timestamp
  • OAuth::setToken — Configure le token et le secret
  • OAuth::setVersion — Configure la version OAuth


Crée un nouvel objet OAuth

  • « OAuth
  • OAuth::__destruct »
  • PHP Manual
  • OAuth
  • Crée un nouvel objet OAuth

OAuth::__construct

(PECL OAuth >= 0.99.1)

OAuth::__construct — Crée un nouvel objet OAuth

Description

public OAuth::__construct ( string $consumer_key , string $consumer_secret [, string $signature_method = OAUTH_SIG_METHOD_HMACSHA1 [, int $auth_type = 0 ]] )

Crée un nouvel objet OAuth.

Liste de paramètres

consumer_key

La clé de lecture fournie par le fournisseur de services.

consumer_secret

Le secret de lecture fourni par le fournisseur de services.

signature_method

Ce paramètre optionnel définit la méthode de signature utilisée. Par défaut, c'est OAUTH_SIG_METHOD_HMACSHA1 (HMAC-SHA1).

auth_type

Ce paramètre optionnel définit la méthode de passage des paramètres OAuth au fournisseur de services. Par défaut, c'est OAUTH_AUTH_TYPE_AUTHORIZATION (dans l'entête Authorization).


Le destructeur

  • « OAuth::__construct
  • OAuth::disableDebug »
  • PHP Manual
  • OAuth
  • Le destructeur

OAuth::__destruct

(PECL OAuth >= 0.99.9)

OAuth::__destruct — Le destructeur

Description

public void OAuth::__destruct ( void )

Le destructeur.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • OAuth::__construct() - Crée un nouvel objet OAuth


Désactive les messages de déboguage

  • « OAuth::__destruct
  • OAuth::disableRedirects »
  • PHP Manual
  • OAuth
  • Désactive les messages de déboguage

OAuth::disableDebug

(PECL OAuth >= 0.99.3)

OAuth::disableDebug — Désactive les messages de déboguage

Description

public bool OAuth::disableDebug ( void )

Désactive les messages de déboguage. Il est désactivé par défaut. Vous pouvez définir la propriété debug à FALSE pour désactiver le déboguage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE

Historique

Version | Description
0.99.8 | La propriété debug a été ajoutée

Voir aussi

  • OAuth::enableDebug() - Active les messages de débogage


Désactive les redirections

  • « OAuth::disableDebug
  • OAuth::disableSSLChecks »
  • PHP Manual
  • OAuth
  • Désactive les redirections

OAuth::disableRedirects

(PECL OAuth >= 0.99.9)

OAuth::disableRedirects — Désactive les redirections

Description

public bool OAuth::disableRedirects ( void )

Désactive les redirections, permettant ainsi aux requêtes d'être redirigées manuellement.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE

Voir aussi

  • OAuth::enableRedirects() - Active les redirections


Désactive la vérification SSL

  • « OAuth::disableRedirects
  • OAuth::enableDebug »
  • PHP Manual
  • OAuth
  • Désactive la vérification SSL

OAuth::disableSSLChecks

(PECL OAuth >= 0.99.5)

OAuth::disableSSLChecks — Désactive la vérification SSL

Description

public bool OAuth::disableSSLChecks ( void )

Désactive les vérifications de certificats et d'hôtes SLL (activé par défaut). Il est recommandé de ne pas utiliser cette fonction en production.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE

Historique

Version | Description
0.99.8 | La propriété debug a été ajoutée

Voir aussi

  • OAuth::enableSSLChecks() - Active la vérification SSL


Active les messages de débogage

  • « OAuth::disableSSLChecks
  • OAuth::enableRedirects »
  • PHP Manual
  • OAuth
  • Active les messages de débogage

OAuth::enableDebug

(PECL OAuth >= 0.99.3)

OAuth::enableDebug — Active les messages de débogage

Description

public bool OAuth::enableDebug ( void )

Désactive les messages de débogage, pratiques en développement, mais inutiles en production.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE

Historique

Version | Description
0.99.8 | La propriété debug a été ajoutée

Voir aussi

  • OAuth::disableDebug() - Désactive les messages de déboguage


Active les redirections

  • « OAuth::enableDebug
  • OAuth::enableSSLChecks »
  • PHP Manual
  • OAuth
  • Active les redirections

OAuth::enableRedirects

(PECL OAuth >= 0.99.9)

OAuth::enableRedirects — Active les redirections

Description

public bool OAuth::enableRedirects ( void )

Suit les redirections automatiquement ; c'est le comportement par défaut.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE

Voir aussi

  • OAuth::disableRedirects() - Désactive les redirections


Active la vérification SSL

  • « OAuth::enableRedirects
  • OAuth::fetch »
  • PHP Manual
  • OAuth
  • Active la vérification SSL

OAuth::enableSSLChecks

(PECL OAuth >= 0.99.5)

OAuth::enableSSLChecks — Active la vérification SSL

Description

public bool OAuth::enableSSLChecks ( void )

Active les vérifications de certificats et d'hôtes SLL (activé par défaut).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE

Historique

Version | Description
0.99.8 | La propriété debug a été ajoutée

Voir aussi

  • OAuth::disableSSLChecks() - Désactive la vérification SSL


Lit une ressource protégée par OAuth

  • « OAuth::enableSSLChecks
  • OAuth::generateSignature »
  • PHP Manual
  • OAuth
  • Lit une ressource protégée par OAuth

OAuth::fetch

(PECL OAuth >= 0.99.1)

OAuth::fetch — Lit une ressource protégée par OAuth

Description

public mixed OAuth::fetch ( string $protected_resource_url [, array $extra_parameters [, string $http_method [, array $http_headers ]]] )

Lit une ressource protégée par OAuth.

Liste de paramètres

protected_resource_url

URL de la ressource protégées par OAuth.

extra_parameters

Paramètres supplémentaires à envoyer avec la requête, à la ressource.

http_method

Une des constantes OAUTH constants OAUTH_HTTP_METHOD_*, incluant GET, POST, PUT, HEAD, ou DELETE.

HEAD (OAUTH_HTTP_METHOD_HEAD) peut être utile pour découvrir des informations avant la demande (si les autorisations OAuth sont dans l'en-tête Authorization header).

http_headers

Les entêtes client HTTP (tels que User-Agent, Accept, etc.)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
1.0.0 | Avant cette version, NULL était retourné au lieu de FALSE.
0.99.5 | Ajout du paramètre http_method
0.99.8 | Ajout du paramètre http_headers

Exemples

Exemple #1 Exemple avec OAuth::fetch()

<?php
try {
    $oauth = new OAuth("consumer_key","consumer_secret",OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_AUTHORIZATION);
    $oauth->setToken("access_token","access_token_secret");

    $oauth->fetch("http://photos.example.net/photo?file=vacation.jpg");

    $response_info = $oauth->getLastResponseInfo();
    header("Content-Type: {$response_info["content_type"]}");
    echo $oauth->getLastResponse();
} catch(OAuthException $E) {
    echo "Exception caught!\n";
    echo "Response: ". $E->lastResponse . "\n";
}
?>

Voir aussi

  • OAuth::getLastResponse() - Lit la dernière réponse
  • OAuth::getLastResponseInfo() - Lit les informations HTTP de la dernière réponse
  • OAuth::setToken() - Configure le token et le secret


Génère une signature

  • « OAuth::fetch
  • OAuth::getAccessToken »
  • PHP Manual
  • OAuth
  • Génère une signature

OAuth::generateSignature

(No version information available, might only be in Git)

OAuth::generateSignature — Génère une signature

Description

public string OAuth::generateSignature ( string $http_method , string $url [, mixed $extra_parameters ] )

Génère une signature basée sur la méthode HTTP finale, l'URL et une chaîne/tableau de paramètres.

Liste de paramètres

http_method

Méthode HTTP pour la requête.

url

URL de la requête.

extra_parameters

Chaîne ou tableau de paramètres additionnels.

Valeurs de retour

Une chaîne contenant la signature générée ou FALSE si une erreur survient


Récupère un token d'accès

  • « OAuth::generateSignature
  • OAuth::getCAPath »
  • PHP Manual
  • OAuth
  • Récupère un token d'accès

OAuth::getAccessToken

(PECL OAuth >= 0.99.1)

OAuth::getAccessToken — Récupère un token d'accès

Description

public array OAuth::getAccessToken ( string $access_token_url [, string $auth_session_handle [, string $verifier_token [, string $http_method ]]] )

Lit un token d'accès, un secret et toute information supplémentaire chez un fournisseur de services.

Liste de paramètres

access_token_url

L'URL à utiliser.

auth_session_handle

L'identifiant de session. Ce paramètre n'a pas d'existence dans les spécifications OAuth 1.0, mais peut être mis en place par de grosses implémentations. Voyez » ScalableOAuth pour plus de détails.

verifier_token

Pour les fournisseurs de service qui supportent 1.0a, le paramètre verifier_token doit être fourni, lors de l'échange de token de requête pour obtenir le token d'accès. Si verifier_token est présent dans $_GET ou $_POST, il est automatiquement passé et l'appelant n'a pas besoin de préciser de paramètre verifier_token (généralement, le token d'accès est échangé via l'URL de rappel callback_url.). Voyez » ScalableOAuth pour plus d'informations.

http_method

Méthode HTTP a utiliser, par exemple GET ou POST.

Valeurs de retour

Retourne un tableau contenant la réponse OAuth analyse, en cas de succès, et FALSE sinon.

Historique

Version | Description
1.0.0 | Avant cette version, NULL était retourné au lieu de FALSE.
0.99.9 | Le paramètre verifier_token a été ajouté

Exemples

Exemple #1 Exemple avec OAuth::getAccessToken()

<?php
try {
    $oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
    $oauth->setToken($request_token,$request_token_secret);
    $access_token_info = $oauth->getAccessToken("https://example.com/oauth/access_token");
    if(!empty($access_token_info)) {
        print_r($access_token_info);
    } else {
        print "Failed fetching access token, response was: " . $oauth->getLastResponse();
    }
} catch(OAuthException $E) {
    echo "Response: ". $E->lastResponse . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [oauth_token] => some_token
    [oauth_token_secret] => some_token_secret
)

Voir aussi

  • OAuth::getLastResponse() - Lit la dernière réponse
  • OAuth::getLastResponseInfo() - Lit les informations HTTP de la dernière réponse
  • OAuth::setToken() - Configure le token et le secret


Récupère l'information CA

  • « OAuth::getAccessToken
  • OAuth::getLastResponse »
  • PHP Manual
  • OAuth
  • Récupère l'information CA

OAuth::getCAPath

(PECL OAuth >= 0.99.8)

OAuth::getCAPath — Récupère l'information CA

Description

public array OAuth::getCAPath ( void )

Récupère les informations du certificat de l'autorité, incluant les valeurs de ca_path et ca_info définit par la méthode OAuth::setCaPath().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau d'informations sur le certificat de l'autorité, contenant entre autres, les clés ca_path et ca_info.

Voir aussi

  • OAuth::setCAPath() - Définit le chemin et les informations du CA
  • OAuth::getLastResponseInfo() - Lit les informations HTTP de la dernière réponse


Lit la dernière réponse

  • « OAuth::getCAPath
  • OAuth::getLastResponseHeaders »
  • PHP Manual
  • OAuth
  • Lit la dernière réponse

OAuth::getLastResponse

(PECL OAuth >= 0.99.1)

OAuth::getLastResponse — Lit la dernière réponse

Description

public string OAuth::getLastResponse ( void )

Lit la réponse brute de la dernière requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne avec la dernière requête.

Voir aussi

  • OAuth::getLastResponseInfo() - Lit les informations HTTP de la dernière réponse
  • OAuth::fetch() - Lit une ressource protégée par OAuth


Récupère les en-têtes de la dernière réponse

  • « OAuth::getLastResponse
  • OAuth::getLastResponseInfo »
  • PHP Manual
  • OAuth
  • Récupère les en-têtes de la dernière réponse

OAuth::getLastResponseHeaders

(No version information available, might only be in Git)

OAuth::getLastResponseHeaders — Récupère les en-têtes de la dernière réponse

Description

public string OAuth::getLastResponseHeaders ( void )

Récupère les en-têtes de la dernière réponse.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères contenant les en-têtes de la dernière réponse ou FALSE si une erreur survient


Lit les informations HTTP de la dernière réponse

  • « OAuth::getLastResponseHeaders
  • OAuth::getRequestHeader »
  • PHP Manual
  • OAuth
  • Lit les informations HTTP de la dernière réponse

OAuth::getLastResponseInfo

(PECL OAuth >= 0.99.1)

OAuth::getLastResponseInfo — Lit les informations HTTP de la dernière réponse

Description

public array OAuth::getLastResponseInfo ( void )

Lit les informations HTTP de la dernière réponse.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les informations de réponse de la dernière requête. Les constantes de curl_getinfo() sont aussi utilisables.

Voir aussi

  • OAuth::fetch() - Lit une ressource protégée par OAuth
  • OAuth::getLastResponse() - Lit la dernière réponse


Génère une signature d'en-tête OAuth

  • « OAuth::getLastResponseInfo
  • OAuth::getRequestToken »
  • PHP Manual
  • OAuth
  • Génère une signature d'en-tête OAuth

OAuth::getRequestHeader

(No version information available, might only be in Git)

OAuth::getRequestHeader — Génère une signature d'en-tête OAuth

Description

public string OAuth::getRequestHeader ( string $http_method , string $url [, mixed $extra_parameters ] )

Génère une signature d'en-tête OAuth basée sur la méthode HTTP finale, ainsi que sur l'URL et ses paramètres.

Liste de paramètres

http_method

Méthode HTTP pour la demande.

url

URL de la demande.

extra_parameters

Paramètres additionnels (chaîne de caractères ou tableau).

Valeurs de retour

Une chaîne de caractères contenant l'en-tête généré de la demande ou FALSE si une erreur survient


Lit le token de requête

  • « OAuth::getRequestHeader
  • OAuth::setAuthType »
  • PHP Manual
  • OAuth
  • Lit le token de requête

OAuth::getRequestToken

(PECL OAuth >= 0.99.1)

OAuth::getRequestToken — Lit le token de requête

Description

public array OAuth::getRequestToken ( string $request_token_url [, string $callback_url [, string $http_method ]] )

Lit le token de requête, le secret et toute information supplémentaire du fournisseur de services.

Liste de paramètres

request_token_url

l'URL dont il faut obtenir le token.

callback_url

URL de rappel OAuth. Si callback_url est passé et que sa valeur est vide, il prend alors la valeur de "oob" pour satisfaire aux exigences de OAuth 2009.1 advisory.

http_method

Méthode HTTP a utiliser, par exemple GET ou POST.

Valeurs de retour

Retourne un tableau contenant la réponse OAuth analysée, en cas de succès, ou FALSE en cas d'échec.

Historique

Version | Description
1.0.0 | Avant cette version, NULL était retourné au lieu de FALSE.
0.99.9 | Le paramètre callback_url a été ajouté

Exemples

Exemple #1 Exemple avec OAuth::getRequestToken()

<?php
try {
    $oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
    $request_token_info = $oauth->getRequestToken("https://example.com/oauth/request_token");
    if(!empty($request_token_info)) {
        print_r($request_token_info);
    } else {
        print "Failed fetching request token, response was: " . $oauth->getLastResponse();
    }
} catch(OAuthException $E) {
    echo "Response: ". $E->lastResponse . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [oauth_token] => some_token
    [oauth_token_secret] => some_token_secret
)

Voir aussi

  • OAuth::getLastResponse() - Lit la dernière réponse
  • OAuth::getLastResponseInfo() - Lit les informations HTTP de la dernière réponse


Définit le type d'autorisation

  • « OAuth::getRequestToken
  • OAuth::setCAPath »
  • PHP Manual
  • OAuth
  • Définit le type d'autorisation

OAuth::setAuthType

(PECL OAuth >= 0.99.1)

OAuth::setAuthType — Définit le type d'autorisation

Description

public mixed OAuth::setAuthType ( int $auth_type )

Configure les paramètres OAuth.

Liste de paramètres

auth_type

auth_type peut être un des options suivantes (elles sont classées par ordre décroissant de préférence, tel que précisé dans OAuth 1.0 section 5.2) :

OAUTH_AUTH_TYPE_AUTHORIZATION
Passe les paramètres OAuth dans l'entête HTTP Authorization.
OAUTH_AUTH_TYPE_FORM
Ajoute les paramètres OAuth au corps de la requête HTTP POST.
OAUTH_AUTH_TYPE_URI
Ajoute les paramètres OAuth à l'URI.
OAUTH_AUTH_TYPE_NONE
Aucun.

Valeurs de retour

Retourne TRUE si un paramètre est correctement défini, FALSE dans les autres cas.

Historique

Version | Description
1.0.0 | Avant cette version, NULL était retourné au lieu de FALSE.


Définit le chemin et les informations du CA

  • « OAuth::setAuthType
  • OAuth::setNonce »
  • PHP Manual
  • OAuth
  • Définit le chemin et les informations du CA

OAuth::setCAPath

(PECL OAuth >= 0.99.8)

OAuth::setCAPath — Définit le chemin et les informations du CA

Description

public mixed OAuth::setCAPath ([ string $ca_path [, string $ca_info ]] )

Définit le certificat d'autorité (CA), pour à la fois le chemin et les informations.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

ca_path

Le chemin du CA à définir.

ca_info

Les informations du CA à définir.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si ca_path ou ca_info sont considérés comme invalide.

Historique

Version | Description
1.0.0 | Avant cette version, NULL était retourné au lieu de FALSE.

Voir aussi

  • OAuth::getCaPath() - Récupère l'information CA


Configure le nonce OAuth

  • « OAuth::setCAPath
  • OAuth::setRequestEngine »
  • PHP Manual
  • OAuth
  • Configure le nonce OAuth

OAuth::setNonce

(PECL OAuth >= 0.99.1)

OAuth::setNonce — Configure le nonce OAuth

Description

public mixed OAuth::setNonce ( string $nonce )

Configure le nonce OAuth pour les appels suivants.

Liste de paramètres

nonce

La valeur de oauth_nonce.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si le paramètre nonce est considéré comme invalide.

Historique

Version | Description
1.0.0 | Avant cette version, NULL était retourné au lieu de FALSE.

Voir aussi

  • OAuth::setToken() - Configure le token et le secret
  • OAuth::setAuthType() - Définit le type d'autorisation
  • OAuth::setVersion() - Configure la version OAuth


Le but de setRequestEngine

  • « OAuth::setNonce
  • OAuth::setRSACertificate »
  • PHP Manual
  • OAuth
  • Le but de setRequestEngine

OAuth::setRequestEngine

(PECL OAuth >= 1.0.0)

OAuth::setRequestEngine — Le but de setRequestEngine

Description

public void OAuth::setRequestEngine ( int $reqengine )

Définit le moteur de requête, utilisé pour envoyer les requêtes HTTP.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

reqengine

Le moteur de requêtes désiré. Définir à OAUTH_REQENGINE_STREAMS pour utiliser les flux PHP, ou OAUTH_REQENGINE_CURL pour utiliser Curl.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une exception OAuthException si un moteur de requêtes invalide est choisi.

Exemples

Exemple #1 Exemple avec OAuth::setRequestEngine()

<?php
$consumer = new OAuth();

$consumer->setRequestEngine(OAUTH_REQENGINE_STREAMS);
?>

Voir aussi

  • Curl
  • Les flux PHP
  • OAuthException


Définit le certificat RSA

  • « OAuth::setRequestEngine
  • OAuth::setSSLChecks »
  • PHP Manual
  • OAuth
  • Définit le certificat RSA

OAuth::setRSACertificate

(PECL OAuth >= 1.0.0)

OAuth::setRSACertificate — Définit le certificat RSA

Description

public mixed OAuth::setRSACertificate ( string $cert )

Définit le certificat RSA.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

cert

Le certificat RSA.

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si une erreur survient (i.e., le certificat RSA ne peut être analysé.)

Historique

Version | Description
1.0.0 | Avant cette version, NULL était retourné au lieu de FALSE.

Exemples

Exemple #1 Exemple avec OAuth::setRsaCertificate()

<?php
$consume = new OAuth('1234', '', OAUTH_SIG_METHOD_RSASHA1);

$consume->setRSACertificate(file_get_contents('test.pem'));
?>

Voir aussi

  • OAuth::setCaPath() - Définit le chemin et les informations du CA


Définit des vérifications spécifiques à SSL pour les requêtes

  • « OAuth::setRSACertificate
  • OAuth::setTimestamp »
  • PHP Manual
  • OAuth
  • Définit des vérifications spécifiques à SSL pour les requêtes

OAuth::setSSLChecks

(No version information available, might only be in Git)

OAuth::setSSLChecks — Définit des vérifications spécifiques à SSL pour les requêtes

Description

public bool OAuth::setSSLChecks ( int $sslcheck )

Définit des vérifications spécifiques à SSL pour les requêtes.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

sslcheck

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Définit le timestamp

  • « OAuth::setSSLChecks
  • OAuth::setToken »
  • PHP Manual
  • OAuth
  • Définit le timestamp

OAuth::setTimestamp

(PECL OAuth >= 1.0.0)

OAuth::setTimestamp — Définit le timestamp

Description

public mixed OAuth::setTimestamp ( string $timestamp )

Définit le timestamp OAuth pour les prochaines requêtes.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

timestamp

Le timestamp.

Valeurs de retour

Retourne TRUE, ou FALSE si timestamp est invalide.

Historique

Version | Description
1.0.0 | Avant cette version, NULL était retourné au lieu de FALSE.

Voir aussi

  • OAuth::setNonce() - Configure le nonce OAuth


Configure le token et le secret

  • « OAuth::setTimestamp
  • OAuth::setVersion »
  • PHP Manual
  • OAuth
  • Configure le token et le secret

OAuth::setToken

(PECL OAuth >= 0.99.1)

OAuth::setToken — Configure le token et le secret

Description

public bool OAuth::setToken ( string $token , string $token_secret )

Configure le token et le secret pour les prochains appels.

Liste de paramètres

token

Le token OAuth.

token_secret

Le secret OAuth.

Valeurs de retour

TRUE

Exemples

Exemple #1 L'exemple OAuth::setToken()

<?php
$oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
$oauth->setToken("token","token-secret");
?>


Configure la version OAuth

  • « OAuth::setToken
  • OAuthProvider »
  • PHP Manual
  • OAuth
  • Configure la version OAuth

OAuth::setVersion

(PECL OAuth >= 0.99.1)

OAuth::setVersion — Configure la version OAuth

Description

public bool OAuth::setVersion ( string $version )

Configure la version de OAuth pour les prochains appels.

Liste de paramètres

version

La version OAuth, et par défaut, c'est toujours "1.0"

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


La classe OAuthProvider

(PECL OAuth >= 1.0.0)

Introduction

Gère une classe OAuthProvider.

Voir aussi un tutoriel externe nommé » Écrire un service OAuth Provider, qui fournit une bonne approche pour proposer ce service. Il y a également des » exemples OAuth provider directement dans les sources de l'extension OAuth.

Synopsis de la classe

OAuthProvider {
/* Méthodes */
final public bool addRequiredParameter ( string $req_params )
public void callconsumerHandler ( void )
public void callTimestampNonceHandler ( void )
public void calltokenHandler ( void )
public void checkOAuthRequest ([ string $uri [, string $method ]] )
public __construct ([ array $params_array ] )
public void consumerHandler ( callable $callback_function )
final public static string generateToken ( int $size [, bool $strong = false ] )
public void is2LeggedEndpoint ( mixed $params_array )
public void isRequestTokenEndpoint ( bool $will_issue_request_token )
final public bool removeRequiredParameter ( string $req_params )
final public static string reportProblem ( string $oauthexception [, bool $send_headers = true ] )
final public bool setParam ( string $param_key [, mixed $param_val ] )
final public bool setRequestTokenPath ( string $path )
public void timestampNonceHandler ( callable $callback_function )
public void tokenHandler ( callable $callback_function )
}

Sommaire

  • OAuthProvider::addRequiredParameter — Ajoute des paramètres requis
  • OAuthProvider::callconsumerHandler — Appelle la fonction de rappel consumerNonceHandler
  • OAuthProvider::callTimestampNonceHandler — Appelle la fonction de rappel timestampNonceHandler
  • OAuthProvider::calltokenHandler — Appelle la fonction de rappel tokenNonceHandler
  • OAuthProvider::checkOAuthRequest — Vérifie une requête OAuth
  • OAuthProvider::__construct — Construit un nouvel objet OAuthProvider
  • OAuthProvider::consumerHandler — Définit la fonction de rappel consumerHandler
  • OAuthProvider::generateToken — Génère un jeton aléatoire
  • OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint
  • OAuthProvider::isRequestTokenEndpoint — Définit isRequestTokenEndpoint
  • OAuthProvider::removeRequiredParameter — Supprime un paramètre
  • OAuthProvider::reportProblem — Rapporte un problème
  • OAuthProvider::setParam — Définit un paramètre
  • OAuthProvider::setRequestTokenPath — Définit le chemin du jeton demandé
  • OAuthProvider::timestampNonceHandler — Définit le gestionnaire de rappel timestampNonceHandler
  • OAuthProvider::tokenHandler — Définit le gestionnaire de rappel tokenHandler


Ajoute des paramètres requis

  • « OAuthProvider
  • OAuthProvider::callconsumerHandler »
  • PHP Manual
  • OAuthProvider
  • Ajoute des paramètres requis

OAuthProvider::addRequiredParameter

(PECL OAuth >= 1.0.0)

OAuthProvider::addRequiredParameter — Ajoute des paramètres requis

Description

final public bool OAuthProvider::addRequiredParameter ( string $req_params )

Ajoute des paramètres requis oauth provider.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

req_params

Les paramètres requis.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OAuthProvider::removeRequiredParameter() - Supprime un paramètre


Appelle la fonction de rappel consumerNonceHandler

  • « OAuthProvider::addRequiredParameter
  • OAuthProvider::callTimestampNonceHandler »
  • PHP Manual
  • OAuthProvider
  • Appelle la fonction de rappel consumerNonceHandler

OAuthProvider::callconsumerHandler

(No version information available, might only be in Git)

OAuthProvider::callconsumerHandler — Appelle la fonction de rappel consumerNonceHandler

Description

public void OAuthProvider::callconsumerHandler ( void )

Appelle la fonction de rappel consumer handler, qui a été définie par la méthode OAuthProvider::consumerHandler().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une erreur E_ERROR si la fonction de rappel ne peut être appelée ou n'a pas été spécifiée.

Voir aussi

  • OAuthProvider::consumerHandler() - Définit la fonction de rappel consumerHandler


Appelle la fonction de rappel timestampNonceHandler

  • « OAuthProvider::callconsumerHandler
  • OAuthProvider::calltokenHandler »
  • PHP Manual
  • OAuthProvider
  • Appelle la fonction de rappel timestampNonceHandler

OAuthProvider::callTimestampNonceHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::callTimestampNonceHandler — Appelle la fonction de rappel timestampNonceHandler

Description

public void OAuthProvider::callTimestampNonceHandler ( void )

Appelle la fonction de rappel timestamp handler, qui a été définie par la méthode OAuthProvider::timestampNonceHandler().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une erreur E_ERROR si la fonction de rappel ne peut être appelée ou n'a pas été spécifiée.

Voir aussi

  • OAuthProvider::timestampNonceHandler() - Définit le gestionnaire de rappel timestampNonceHandler


Appelle la fonction de rappel tokenNonceHandler

  • « OAuthProvider::callTimestampNonceHandler
  • OAuthProvider::checkOAuthRequest »
  • PHP Manual
  • OAuthProvider
  • Appelle la fonction de rappel tokenNonceHandler

OAuthProvider::calltokenHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::calltokenHandler — Appelle la fonction de rappel tokenNonceHandler

Description

public void OAuthProvider::calltokenHandler ( void )

Appelle la fonction de rappel token handler, qui a été définie par la méthode OAuthProvider::tokenHandler().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une erreur E_ERROR si la fonction de rappel ne peut être appelée ou n'a pas été spécifiée.

Voir aussi

  • OAuthProvider::tokenHandler() - Définit le gestionnaire de rappel tokenHandler


Vérifie une requête OAuth

  • « OAuthProvider::calltokenHandler
  • OAuthProvider::__construct »
  • PHP Manual
  • OAuthProvider
  • Vérifie une requête OAuth

OAuthProvider::checkOAuthRequest

(PECL OAuth >= 1.0.0)

OAuthProvider::checkOAuthRequest — Vérifie une requête OAuth

Description

public void OAuthProvider::checkOAuthRequest ([ string $uri [, string $method ]] )

Vérifie une requête OAuth.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

uri

L'URI, optionnel, ou un point final.

method

La méthode HTTP. Optionnel ; passez-y une constante parmi les constantes OAuth OAUTH_HTTP_METHOD_* .

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Émet une erreur de niveau E_ERROR si la méthode HTTP ne peut être détectée.

Voir aussi

  • OAuthProvider::reportProblem() - Rapporte un problème


Construit un nouvel objet OAuthProvider

  • « OAuthProvider::checkOAuthRequest
  • OAuthProvider::consumerHandler »
  • PHP Manual
  • OAuthProvider
  • Construit un nouvel objet OAuthProvider

OAuthProvider::__construct

(PECL OAuth >= 1.0.0)

OAuthProvider::__construct — Construit un nouvel objet OAuthProvider

Description

public OAuthProvider::__construct ([ array $params_array ] )

Initie un nouvel object OAuthProvider.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

params_array

Le fait de définir des paramètres optionnels est limité au SAPI CLI.

Valeurs de retour

Un object OAuthProvider.

Exemples

Exemple #1 Exemple avec OAuthProvider::__construct()

<?php
try {

    $op = new OAuthProvider();

    // Utilisation des fonctions de rappel définies par l'utilisateur
    $op->consumerHandler(array($this, 'lookupConsumer'));
    $op->timestampNonceHandler(array($this, 'timestampNonceChecker'));
    $op->tokenHandler(array($this, 'myTokenHandler'));

    // Ignore le paramètre foo_uri
    $op->setParam('foo_uri', NULL);

    // Aucun jeton nécessaire pour ce point final
    $op->setRequestTokenPath('/v1/oauth/request_token');

    $op->checkOAuthRequest();

} catch (OAuthException $e) {

    echo OAuthProvider::reportProblem($e);
}
?>

Voir aussi

  • OAuthProvider::setParam() - Définit un paramètre


Définit la fonction de rappel consumerHandler

  • « OAuthProvider::__construct
  • OAuthProvider::generateToken »
  • PHP Manual
  • OAuthProvider
  • Définit la fonction de rappel consumerHandler

OAuthProvider::consumerHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::consumerHandler — Définit la fonction de rappel consumerHandler

Description

public void OAuthProvider::consumerHandler ( callable $callback_function )

Définit la fonction de rappel consumer handler, qui pourra ensuite être appelée avec la méthode OAuthProvider::callConsumerHandler().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

callback_function

Le nom de la fonction de rappel de type callable.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec OAuthProvider::consumerHandler()

<?php
function lookupConsumer($provider) {

    if ($provider->consumer_key === 'unknown') {
        return OAUTH_CONSUMER_KEY_UNKNOWN;
    } else if($provider->consumer_key == 'blacklisted' || $provider->consumer_key === 'throttled') {
        return OAUTH_CONSUMER_KEY_REFUSED;
    }

    $provider->consumer_secret = "the_consumers_secret";

    return OAUTH_OK;
}
?>

Voir aussi

  • OAuthProvider::callConsumerHandler() - Appelle la fonction de rappel consumerNonceHandler


Génère un jeton aléatoire

  • « OAuthProvider::consumerHandler
  • OAuthProvider::is2LeggedEndpoint »
  • PHP Manual
  • OAuthProvider
  • Génère un jeton aléatoire

OAuthProvider::generateToken

(PECL OAuth >= 1.0.0)

OAuthProvider::generateToken — Génère un jeton aléatoire

Description

final public static string OAuthProvider::generateToken ( int $size [, bool $strong = false ] )

Génère une chaîne de caractères d'octets pseudo-aléatoires.

Liste de paramètres

size

La longueur désirée du jeton, en octets.

strong

Définit à TRUE, signifie que /dev/random sera utilisé, sinon, ce sera /dev/urandom. Ce paramètre est ignoré sous Windows.

Valeurs de retour

Le jeton généré, sous la forme d'une chaîne de caractères d'octets.

Erreurs / Exceptions

Si le paramètre strong vaut TRUE, alors, une alerte de niveau E_WARNING sera émise lorsque la fonction de rappel rand() est utilisée pour compléter les octets aléatoires manquant (i.e., lorsqu'il n'y a pas assez de données aléatoires initialement).

Exemples

Exemple #1 Exemple avec OAuthProvider::generateToken()

<?php
$p = new OAuthProvider();

$t = $p->generateToken(4);

echo strlen($t),  PHP_EOL;
echo bin2hex($t), PHP_EOL;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

4
b6a82c27

Notes

Note:

Lorsqu'il n'y a pas assez de données aléatoires de disponible sur le système, cette fonction complètera les octets manquant en utilisant la fonction PHP interne rand().

Voir aussi

  • openssl_random_pseudo_bytes() - Génère une chaine pseudo-aléatoire d'octets
  • mcrypt_create_iv() - Crée un vecteur d'initialisation (IV) à partir d'une source aléatoire


is2LeggedEndpoint

  • « OAuthProvider::generateToken
  • OAuthProvider::isRequestTokenEndpoint »
  • PHP Manual
  • OAuthProvider
  • is2LeggedEndpoint

OAuthProvider::is2LeggedEndpoint

(PECL OAuth >= 1.0.0)

OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint

Description

public void OAuthProvider::is2LeggedEndpoint ( mixed $params_array )

Le flux 2-legged, ou la demande de signature. Il ne requière pas de jeton.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

params_array

Valeurs de retour

Un object OAuthProvider .

Exemples

Exemple #1 Exemple avec OAuthProvider::is2LeggedEndpoint()

<?php

$provider = new OAuthProvider();

$provider->is2LeggedEndpoint(true);

?>

Voir aussi

  • OAuthProvider::__construct() - Construit un nouvel objet OAuthProvider


Définit isRequestTokenEndpoint

  • « OAuthProvider::is2LeggedEndpoint
  • OAuthProvider::removeRequiredParameter »
  • PHP Manual
  • OAuthProvider
  • Définit isRequestTokenEndpoint

OAuthProvider::isRequestTokenEndpoint

(PECL OAuth >= 1.0.0)

OAuthProvider::isRequestTokenEndpoint — Définit isRequestTokenEndpoint

Description

public void OAuthProvider::isRequestTokenEndpoint ( bool $will_issue_request_token )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

will_issue_request_token

Définit s'il émettra une demande de jeton ou non, ceci déterminant si la méthode OAuthProvider::tokenHandler() doit être appelée.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • OAuthProvider::setRequestTokenPath() - Définit le chemin du jeton demandé
  • OAuthProvider::reportProblem() - Rapporte un problème


Supprime un paramètre

  • « OAuthProvider::isRequestTokenEndpoint
  • OAuthProvider::reportProblem »
  • PHP Manual
  • OAuthProvider
  • Supprime un paramètre

OAuthProvider::removeRequiredParameter

(PECL OAuth >= 1.0.0)

OAuthProvider::removeRequiredParameter — Supprime un paramètre

Description

final public bool OAuthProvider::removeRequiredParameter ( string $req_params )

Supprime un paramètre.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

req_params

Le paramètre à supprimer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OAuthProvider::setParam() - Définit un paramètre
  • OAuthProvider::addRequiredParameter() - Ajoute des paramètres requis


Rapporte un problème

  • « OAuthProvider::removeRequiredParameter
  • OAuthProvider::setParam »
  • PHP Manual
  • OAuthProvider
  • Rapporte un problème

OAuthProvider::reportProblem

(PECL OAuth >= 1.0.0)

OAuthProvider::reportProblem — Rapporte un problème

Description

final public static string OAuthProvider::reportProblem ( string $oauthexception [, bool $send_headers = true ] )

Rapporte un problème sous la forme d'une exception OAuthException ; les problèmes possibles sont listés dans la section des constantes OAuth.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

oauthexception

L'exception OAuthException.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • OAuthProvider::checkOAuthRequest() - Vérifie une requête OAuth
  • OAuthProvider::isRequestTokenEndpoint() - Définit isRequestTokenEndpoint


Définit un paramètre

  • « OAuthProvider::reportProblem
  • OAuthProvider::setRequestTokenPath »
  • PHP Manual
  • OAuthProvider
  • Définit un paramètre

OAuthProvider::setParam

(PECL OAuth >= 1.0.0)

OAuthProvider::setParam — Définit un paramètre

Description

final public bool OAuthProvider::setParam ( string $param_key [, mixed $param_val ] )

Définit un paramètre.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

param_key

La clé du paramètre.

param_val

La valeur du paramètre ; optionnelle.

Pour exclure un paramètre de la vérification de signature, définir cette valeur à NULL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • OAuthProvider::addRequiredParameter() - Ajoute des paramètres requis


Définit le chemin du jeton demandé

  • « OAuthProvider::setParam
  • OAuthProvider::timestampNonceHandler »
  • PHP Manual
  • OAuthProvider
  • Définit le chemin du jeton demandé

OAuthProvider::setRequestTokenPath

(PECL OAuth >= 1.0.0)

OAuthProvider::setRequestTokenPath — Définit le chemin du jeton demandé

Description

final public bool OAuthProvider::setRequestTokenPath ( string $path )

Définit le chemin du jeton demandé.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

path

Le chemin.

Valeurs de retour

TRUE

Voir aussi

  • OAuthProvider::tokenHandler() - Définit le gestionnaire de rappel tokenHandler


Définit le gestionnaire de rappel timestampNonceHandler

  • « OAuthProvider::setRequestTokenPath
  • OAuthProvider::tokenHandler »
  • PHP Manual
  • OAuthProvider
  • Définit le gestionnaire de rappel timestampNonceHandler

OAuthProvider::timestampNonceHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::timestampNonceHandler — Définit le gestionnaire de rappel timestampNonceHandler

Description

public void OAuthProvider::timestampNonceHandler ( callable $callback_function )

Définit le gestionnaire de rappel timestampNonceHandler, qui sera appelé plus tard avec la méthode OAuthProvider::callTimestampNonceHandler(). Les erreurs en rapport avec timestamp/nonce seront émises via ce gestionnaire de rappel.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

callback_function

Le nom de la fonction callback.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec OAuthProvider::timestampNonceHandler()

<?php
function timestampNonceChecker($provider) {

    if ($provider->nonce === 'bad') {
        return OAUTH_BAD_NONCE;
    } elseif ($provider->timestamp == '0') {
        return OAUTH_BAD_TIMESTAMP;
    }

    return OAUTH_OK;
}
?>

Voir aussi

  • OAuthProvider::callTimestampNonceHandler() - Appelle la fonction de rappel timestampNonceHandler


Définit le gestionnaire de rappel tokenHandler

  • « OAuthProvider::timestampNonceHandler
  • OAuthException »
  • PHP Manual
  • OAuthProvider
  • Définit le gestionnaire de rappel tokenHandler

OAuthProvider::tokenHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::tokenHandler — Définit le gestionnaire de rappel tokenHandler

Description

public void OAuthProvider::tokenHandler ( callable $callback_function )

Définit le gestionnaire de rappel tokenHandler, qui sera appelé plus tard avec la méthode OAuthProvider::callTokenHandler().

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

callback_function

Le nom de la fonction callable.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec OAuthProvider::tokenHandler()

<?php
function tokenHandler($provider) {

    if ($provider->token === 'rejected') {
        return OAUTH_TOKEN_REJECTED;
    } elseif ($provider->token === 'revoked') {
        return OAUTH_TOKEN_REVOKED;
    }

    $provider->token_secret = "the_tokens_secret";
    return OAUTH_OK;
}
?>

Voir aussi

  • OAuthProvider::callTokenHandler() - Appelle la fonction de rappel tokenNonceHandler


La classe OAuthException

(PECL OAuth >= 0.99.1)

Introduction

Cette exception est émise quand des erreurs exceptionnelles surviennent durant l'utilisation de l'extension OAuth, et contient des informations pratiques pour déboguer.

Synopsis de la classe

OAuthException extends Exception {
/* Propriétés */
public $lastResponse ;
public $debugInfo ;
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

lastResponse

La réponse à l'exception survenue, s'il y en a

debugInfo


SCA

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • La structure d'un composant de service
    • Obtention d'un proxy pour un autre composant de service
    • Appel d'un autre composant de service
    • Localisation et appel d'un service, depuis un script qui n'est pas un composant SCA
    • Exposer un composant comme un service Web
    • Déploiement d'un composant SCA
    • Obtenir le WSDL d'un composant SCA qui offre un service Web
    • Comprendre la génération du fichier WSDL
    • Travailler avec des structures de données
    • Gestion d'erreurs
  • Fonctions SCA
    • SCA::createDataObject — Crée un SDO
    • SCA::getService — Obtient un proxy pour un service
    • SCA_LocalProxy::createDataObject — Crée un SDO
    • SCA_SoapProxy::createDataObject — Crée un SDO


Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

SCA pour PHP rend possible aux programmeurs PHP l'utilisation de composants réutilisables, qui peuvent être appelées de différentes façons, avec une interface identique et un minimum de tracas. Actuellement, les composants peuvent s'appeller l'un l'autre, localement ou via des services Web, mais a l'avenir, il est prévu de mettre en place d'autres moyens de communication. SCA fournit aux programmeurs une approche aussi naturelle que possible pour cela.

Les composants SCA utilisent des annotations style phpDocumentor (voyez http://www.phpdoc.org/) pour déclarer des dépendances avec les autres composants SCA ou les services Web. L'exécuteur SCA de PHP résout ces dépendances à l'exécution, pour les autres composants, et permet au développeur PHP de se concentrer sur la logique métier, plutôt que sur la localisation des ressources.

Le modèle SCA pour PHP peut être étendu pour supporter de nombreux autres types de services, tels que REST et Atompub. Cependant, les services Web, et plus exactement, les services SOAP sur HTTP avec document WSDL) sont les seuls qui soient spécifiés.

Les composants utilisent aussi les annotations pour définir les interfaces avec lesquels ils exposent leurs services. L'exécuteur SCA pour PHP va automatiquement générer le document WSDL pour ces annotations, afin que les composants puissent exposer facilement leurs services Web. Ces annotations sont une extension naturelle de phpDocumentor. Déployer un service Web peut alors êtr aussi simple que de placer un composant PHP dans la racine Web d'un serveur Web.

Les composants utilisent aussi les annotations pour spécifier les structures de données (exprimées avec des types complexe de schéma XML), qui sont gérés avec Service Data Objects (SDOs).

Un script PHP qui n'est pas un composant SCA et qui ne contient aucune annotation peut utiliser les services d'un composant SCA. Un script PHP ou un composant peut faire des appels à un service Web qui n'utilise pas SCA, mais en utilisant le même système d'appels et d'annotations pour obtenir une référence.

Tout d'abord, nous présent un composant SCA simple, ConvertedStockQuote, qui illustre l'utilisation de SCA pour PHP. Il dispose d'une méthode getQuote(), qui, à partir d'un identifiant d'actions retourne le cours de l'action, converti dans une devise donnée. Nous utiliserons cet exemple comme base pour présenter SCA pour PHP dans le reste de la documentation.

Exemple #1 Exemple simple avec SCA

<?php

include "SCA/SCA.php";

/**
 * Calcule le prix d'une action, à partir de son symbole, dans une devise.
 *
 * @service
 * @binding.soap
 */
class ConvertedStockQuote {

    /**
     * Le service de taux de change à utiliser
     *
     * @reference
     * @binding.php ../ExchangeRate/ExchangeRate.php
     */
    public $exchange_rate;

    /**
     * Le service de cotation des actions à utiliser
     *
     * @reference
     * @binding.soap ../StockQuote/StockQuote.wsdl
     */
    public $stock_quote;

    /**
     * Lit le prix d'une action, pour un symbole, dans une devise
     *
     * @param string $ticker Le symbole.
     * @param string $currency La devise.
     * @return float Le cours de l'action.
     */
    function getQuote($ticker, $currency)
    {
        $quote  = $this->stock_quote->getQuote($ticker);
        $rate   = $this->exchange_rate->getRate($currency);
        return  $rate * $quote;
    }
}
?>

Dans cet exemple, nous voyons que le composant SCA est implémenté à l'aide d'une classe PHP, et qu'il inclut SCA.php. La classe contient un mélange de logique métier et de références à d'autres services et composants. Dans la méthode illustrée, getQuote() il n'y a que de la logique métier, mais elle repose sur les variables $stock_quote et $exchange_rate qui ont été initialisées. Ces variables font référence à deux autres composants, et seront initialisées par l'exécutable SCA, via des proxy pour ces deux services, à chaque fois que notre composant est exécuté. Les annotations de ces deux services montrent que l'un est un service local, qui sera appelé avec le même exécutable PHP, et que l'autre est un composant distant, qui sera appelé avec une requête SOAP. Ce composant expose alors la méthode getQuote(), localement et comme service Web, pour que l'on puisse y accéder localement et à distance.


Pré-requis

Si vous voulez utiliser SCA pour produire ou consommer des services Web, vous aurez besoin de PHP 5.2.0 ou plus récent, compilé avec l'extension SOAP. Si vous voulez simplement utiliser les composants locaux, et que vous n'avez pas bespoin des services Web, alors vous pourrez utiliser une version 5.1.6 de PHP et plus récent.

SCA est distribué avec SDO, via un paquet PECL. Voyez http://www.php.net/sdo#sdo.installation pour installer le paquet SCA_SDO depuis PECL. Le code SCA doit être dans l'include_path de votre isntallation PHP : par exemple, s'il a été installé dans /usr/local/lib/php/SCA, la directive include_path doit inclure /usr/local/lib/php


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/sca.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • SCA
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Exemples

Sommaire

  • La structure d'un composant de service
  • Obtention d'un proxy pour un autre composant de service
  • Appel d'un autre composant de service
  • Localisation et appel d'un service, depuis un script qui n'est pas un composant SCA
  • Exposer un composant comme un service Web
  • Déploiement d'un composant SCA
  • Obtenir le WSDL d'un composant SCA qui offre un service Web
  • Comprendre la génération du fichier WSDL
  • Travailler avec des structures de données
  • Gestion d'erreurs

Les exemples de la section suivante illustrent différents aspects de PHP pour SCA :

  • Comment les annotations PHP peuvent être utilisées pour définir des classes PHP comme des composants SCA et comment les annotations sont utilisées pour définir des services.

  • Comment les composants SCA peuvent être exposés comme services Web.

  • Comment un composant SCA peut utiliser un service Web, qu'il soit fournit par un autre composant SCA ou par un autre service qui n'a pas de rapport avec SCA.

  • Comment un composant SCA peut appeler un autre composant SCA localement, avec le même processus et la même pile d'appels.

  • Comment un script client qui n'est pas un composant SCA peut utiliser la fonction getService() pour obtenir un proxy d'accès à un composant SCA.

  • Comment des structures de données telles que Adresses, ou Commandes sont représentées comme des Service Data Objects (SDO), et gérées.

  • Comment des composants SCA sont déployés, et en particulier, comment et quand des fichiers WSDL sont générés pour un service.

  • Comment les paramètres sont toujours passés par valeur (et non par référence), entre les composants, même si les appels sont locaux. Cela garantit que la sémantique de l'appel ne change pas, en fonction de l'emplacement du composant.

  • Comment les paramètres de position d'un service sont supportés, quand le WSDL sous-jacent est un document littéral, et qui ne supporte que des paramètres nommés.

  • Comment les exceptions métier et d'exécution sont gérées.


La structure d'un composant de service

Un composant de service est implémenté sous forme de classe. Pour l'identifier, il doit contenir une annotation @service. L'exécutable SCA va utiliser le nom du fichier de script pour déterminer le nom du composant, par convention. La classe et le fichier de script doivent donc porter le même nom.

Les composants PHP SCA doivent toujours exposer un service, et il n'y a aucun moyen pour un composant d'être appelé autrement que comme le résultat d'un service Web, ou bien directement par un autre composant ou un script. Pour cette raison, un composant PHP SCA valide va toujours contenir une annotation @service et au moins une méthode publique.

Chaque composant SCA requiert que le script SCA.php soit inclus. En plus de contenir la définition de la classe SCA, ce script contient du code PHP qui est exécuté à chaque appel, et qui est responsable du comportement général du composant.

Attention

Il est très important que les autres inclusions de votre script interviennent avant celle du fichier SCA.php. S'il y a des inclusions après SCA.php, ils ne seront pas pris en compte lorsque l'exécutable SCA traitera votre classe.

L'exemple ci-dessous montre la structure générale.

Exemple #1 Structure d'un composant SCA pour PHP

<?php

// les inclusions

include "SCA/SCA.php";

/**
 * @service
 */

class ConvertedStockQuote {

       // variables, logique métier, inclusion d'au moins une méthode publique

}
?>


Obtention d'un proxy pour un autre composant de service

Un composant SCA peut appeler le service proposé par un autre composant SCA. Le service que fournit un composant est constitué de toutes ses méthodes publiques. SCA pour PHP propose deux méthodes pour que les composants s'appellent les uns les autres : soit localement (i.e., via le même exécutable PHP, et avec la même pile), ou bien à distance, via un service Web.

Afin qu'un composant en appelle un autre, le composant d'appel a besoin d'un proxy jusqu'au composant appelé. Ce proxy est généralement fourni sous forme de variable dans le composant appelant, même si les proxy peuvent être obtenu via la fonction SCA::getService()(). Quand un composant est construit, les proxy sont constitués pour toute variable d'instance qui fait référence à un autre composant, et ces proxy sont injectés dans les variables. Les proxy sont toujours utilisé, que le composant soit distant ou locale, afin de propose une interface d'appel identique, quelque soit la localisation des composants. Les proxy savent comment localiser un composant, et leur passer les appels.

Les variables d'instance qui sont destinées à contenir les proxy sont identifiées par deux annotations PHPDocumentor : @reference et @binding. Ces deux annotations sont rangées dans la section de documentation d'une classe, tel que le montre le code ci-dessous.

L'annotation @reference pour une variable d'instance indique que la variable doit être initialisée avec un proxy de composant.

L'annotation @binding prend deux formes : @binding.php et @binding.soap. Elles indiquent que le proxy est soit local, soit un service Web distant, respectivement. Pour les deux @binding.php et @binding.soap, l'annotation indique l'URI cible.

A ce moment, avec la méthode de spécification des dépendances via les annotations, le seul moyen de modifier la cible d'une référence est de modifier l'annotation dans le composant.

Dans notre exemple, la variable $exchange_rate est initialisée avec un proxy vers le composant ExchangeRate, à chaque fois qu'une instance de ConvertedStockQuote est construite.

Exemple #1 Obtention d'un proxy pour une classe PHP locale

<?php
   /**
     * Le service de change à utiliser
     *
     * @reference
     * @binding.php ../ExchangeRate/ExchangeRate.php
     */
    public $exchange_rate;
?>

Pour @binding.php, l'URI identifie la localisation du script qui contient l'implémentation du composant. Le composant sera appelé localement. Le service fournit est un jeu de méthodes publiques dans le composant. L'URI doit être un simple chemin, absolu ou relatif. Le composant sera chargé avec une fonction include de PHP, après avoir vérifié que le composant n'est pas chargé, avec class_exists(). Si l'URI est relative, elle est résolue relativement au composant qui contient l'annotation. Notez que cela est différent du comportement habituel de PHP, où les scripts cherchent les fichiers dans l'include_path. Ceci est nécessaire pour fournir une indépendance de localisation dans les références.

Si ce service ExchangeRate était distant, et qu'il était appelé comme un service Web, seule la ligne @binding aurait changé. Au lieu de donner la localisation d'une classe PHP, il faudrait donner la localisation d'un fichier WSDL, décrivant un service Web. Dans notre exemple de composant, ceci est illustré par la seconde référence :

Exemple #2 Obtention d'un proxy pour un service Web

<?php
/**
     * Le service de cotation des actions à utiliser
     *
     * @reference
     * @binding.soap ../StockQuote/StockQuote.wsdl
     */
    public $stock_quote;
?>

Le composant StockQuote sera appelé comme un service Web. Dans ce cas, l'URI du WSDL peut être un simple chemin, ou utiliser un gestionnaire de flux PHP, et commencer, par exemple, avec file:// ou http://. Dans l'événement où c'est un simple chemin de fichiers, il peut être absolu ou relatif, et dans le cas d'un chemin relatif, il sera résolu relativement au fichier qui contient l'annotation. Notez que c'est le même comportement que pour @binding.php, et que c'est différent du comportement habituel de PHP.


Appel d'un autre composant de service

L'exemple ConvertedStockQuote fait aussi appel à des proxy pour deux composants dont il dépend.

Exemple #1 Appels de services

<?php
$quote  = $this->stock_quote->getQuote($ticker);
$rate   = $this->exchange_rate->getRate($currency);
?>

L'appel du service StockQuote est un appel à un service local; l'appel à ExchangeRate est un appel à un service distant. Notez que ces deux appels se ressemblent beaucoup, même si l'un est local et l'autre distant.

Les proxy ont été injecté pour s'assurer que les appels à ces deux composants sont bien les mêmes, quelle que soit leur nature. Par exemple, le proxy d'un service local fait une copie des arguments, et ne fait que passer ces copies, afin de s'assurer que les appels sont bien fait par valeur, comme cela serait le cas dans un service Web. De même, le proxy d'un service Web prend les arguments dans une liste à position, et s'assurent qu'ils sont correctement transmis dans une requête SOAP, puis convertis de nouveau en variable, au retour.

Dans l'exemple ci-dessus, $ticker et $currency sont clairement des valeurs PHP scalaires. Les composants peuvent passer des types scalaires, chaîne de caractères, entier, nombre décimal et booléen, mais les structures de données pour les appels de services sont toujours passés comme Service Data Objects (SDOs). Une section ultérieur montre comment un composant peut créer un SDO à passer à un service local, ou distant. La documentation PHP montre comment manipuler les objets SDO.


Localisation et appel d'un service, depuis un script qui n'est pas un composant SCA

Les composants SCA peuvent obtenir des proxy d'autres composants ou services qui ne sont pas annotés avec @reference, mais ce n'est pas possible pour un script qui n'est pas lui-même un composant. Un script client qui n'est pas un client doit utiliser la fonction statique SCA::getService() pour obtenir un proxy au service, qu'il soit local ou distant. La méthode getService() prendre une URI comme argument. Typiquement, ceci est la localisation d'un script PHP contenant un composant, ou un fichier WSDL, et il est utilisé exactement comme la cible d'une annotation @binding, décrite dans la section précédente : c'est à dire, les URI relatives sont décrites par rapport au fichier de l'annotation, et non pas l'include_path de PHP.

Par exemple, un script qui a besoin d'obtenir des proxy pour ExchangeRate et StockQuote mais n'est pas un composant peut utiliser la fonction SCA::getService() comme ceci :

Exemple #1 Obtention d'un proxy avec getService

<?php
$exchange_rate = SCA::getService('../ExchangeRate/ExchangeRate.php');
$stock_quote   = SCA::getService('../StockQuote/StockQuote.wsdl');
?>

Les méthodes d'un service peuvent être appelé sur un proxy ainsi retourné, tout comme elles peuvent l'être sur un composant.

Exemple #2 Faire des appels sur un proxy

<?php
$quote  = $stock_quote->getQuote($ticker);
$rate   = $exchange_rate->getRate($currency);
?>


Exposer un composant comme un service Web

SCA pour PHP peut générer des fichiers WSDL à partir des annotations dans un composant, ce qui fait qu'il peut être facilement déployé et exposé comme un service Web. Pour fournir à SCA les informations dont il a besoin pour produire le WSDL, il est nécessaire d'ajouter l'annotation @binding.soap dans l'annotation @service et de spécifier les paramètres et les valeurs de retour avec les annotations @param et @return. Ces annotations seront lues quand le fichier WSDL sera produit, et l'ordre et les types des paramètres va déterminer le contenu de la section <schema> du fichier WSDL.

SCA pour PHP produit toujours des fichiers WSDL pour les composants qui exposent des services Web. Notez que cela n'empêche pas les composants de consommer des services Web qui ne sont pas des composants SCA, et qui sont documentés avec des fichiers WDSL qui ne sont pas dans le même format.

Les types scalaires qui peuvent être utilisé dans les annotations @param sont les quatres types scalaires communs de PHP : booléen, entier, nombre décimal et chaîne de caractères. Ils sont simplement transformés en un équivalent au format XML. L'exemple ci-dessous, qui est une implémentation triviale du service StockQuote avec des appels à ConvertedStockQuote illustre l'utilisation de chaîne de caractères et nombre décimal.

Exemple #1 Service StockQuote

<?php

include "SCA/SCA.php";

/**
 * Implémentation d'un service distant StockQuote Web.
 *
 * @service
 * @binding.soap
 *
 */
class StockQuote {

    /**
     * Lit une cotation pour un symbole
     *
     * @param string $ticker Le symbole de l'action
     * @return float La cotation de l'action
     */
    function getQuote($ticker) {
        return 80.9;
  }
}
?>

Un fichier WSDL, semblable au document suivant (mais avec une localisation de service autre que 'localhost', probablement) sera généré pour le service :

Exemple #2 Generated WSDL

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xsi:type="tDefinitions"
    xmlns:tns2="http://StockQuote" xmlns:tns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns3="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://StockQuote">
  <types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://StockQuote">
      <xs:element name="getQuote">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ticker" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getQuoteResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="getQuoteReturn" type="xs:float"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  </types>

  <message name="getQuoteRequest">
    <part name="getQuoteRequest" element="tns2:getQuote"/>
  </message>
  <message name="getQuoteResponse">
    <part name="return" element="tns2:getQuoteResponse"/>
  </message>
  <portType name="StockQuotePortType">
    <operation name="getQuote">
      <input message="tns2:getQuoteRequest"/>
      <output message="tns2:getQuoteResponse"/>
    </operation>
  </portType>
  <binding name="StockQuoteBinding" type="tns2:StockQuotePortType">
    <operation name="getQuote">
      <input>
        <tns3:body xsi:type="tBody" use="literal"/>
      </input>
      <output>
        <tns3:body xsi:type="tBody" use="literal"/>
      </output>
      <tns3:operation xsi:type="tOperation" soapAction=""/>
    </operation>
    <tns3:binding xsi:type="tBinding" transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
  </binding>
  <service name="StockQuoteService">
    <port name="StockQuotePort" binding="tns2:StockQuoteBinding">
      <tns3:address xsi:type="tAddress" location="http://localhost/StockQuote/StockQuote.php"/>
    </port>
  </service>
</definitions>

<!-- this line identifies this file as WSDL generated by SCA for PHP. Do not remove -->


Déploiement d'un composant SCA

Il n'y pas d'instruction particulière pour déployer un composant PHP SCA. Il est suffisant de placer le script PHP dans le serveur Web, comme un autre script PHP. C'est l'exécutable SCA::initComponent() dans le composant qui va l'exécuter correctement, quelque soit la méthode utilisée, et qui est responsable de proposer la réponse adaptée à la situation, que ce soit un appel local, Web service ou une requête WDSL.


Obtenir le WSDL d'un composant SCA qui offre un service Web

Les composant SCA qui exposent un service Web (i.e. qui ont une annotation @binding.soap) vont retourner une définition WSDL en réponse à une requête HTTP avec un paramètre GET "wsdl". L'approche habituelle pour cela est d'ajouter "?wsdl" à la fin de l'URL. L'exemple ci-dessous utilise la fonction file_get_contents() pour obtenir un fichier WSDL d'un service Web, et l'écrit dans un fichier temporaire, avant de demander un proxy. Vous pouvez évidemment obtenir le fichier WDSL dans votre navigateur, ou par d'autres moyens, et le sauver vous-mêmes.

Exemple #1 WSDL généré

<?php
$wsdl = file_get_contents('http://www.example.com/Services/Example.php?wsdl');
file_put_contents("service.wsdl",$wsdl); //write the wsdl to a file
$service = SCA::getService('service.wsdl');
?>

Note : si le fichier WSDL requiert des importations de xsd, elles devront être lus séparément.


Comprendre la génération du fichier WSDL

SCA pour PHP génère un fichier WSDL pour les composants qui contiennent une annotation @binding.soap, après l'annotation @service. Pour générer le service, SCA analyse la classe, et les annotations @param et @return pour chaque méthode publique, ainsi que les annotations de @types dans le composant. Les informations des annotations @param et @return sont utilisées pour construire la section <types> du fichier WDSL. Toutes les annotations @types qui spécifient un schéma distinct engendreront un élément <import> pour ce schéma dans le WSDL.

Attribut de localisation pour l'élément <service>

A la fin du fichier WSDL, l'élément <service> utilise un attribut de localisation 'location', pour identifier l'URL du service. Par exemple :

Exemple #1 Attribut location

<service name="ConvertedStockQuote"
...
location="http://localhost/ConvertedStockQuote/ConvertedStockQuote.php"/>

Notez que cette localisation est relative à la racine du document du serveur Web, et ne peut pas être connue à l'avance. Elle ne peut être résolue que lorsque le composant est mis en place dans un serveur Web en fonctionnement, lorsque le nom d'hôte et le port peuvent être connus et placés dans le fichier WDSL. Des informations de l'URL appelante sont aussi utilisés, ce qui fait que si le WSDL est produit en réponse à la requête http://www.example.com:1111/ConvertedStockQuote/ConvertedStockQuote.php?wsdl, une localisation de http://www.example.com:1111/ConvertedStockQuote/ConvertedStockQuote.php sera insérée dans l'attribut.

Inclusion des documents dans le WSDL et paramètres positionnés

SCA pour PHP produit des fichiers WSDL en incluant les documents et littéraux. Ce style encadre les paramètres et les valeurs de retour d'une méthode dans un 'gestionnaire' qui est nommé à partir de la méthode. L'élément <types> au début du fichier WSDL définit chacun de ces gestionnaires. Si nous étudions la méthode getQuote() de notre exemple ConvertedStockQuote :

Exemple #2 une méthode avec deux arguments

<?php
   /**
     * Lit une cotation pour une action à partir de son symbole et dans une devise
     *
     * @param string $ticker Le symbole
     * @param string $currency La devise cible
     * @return float La valeur de l'action dans la devise demandée
     */
    function getQuote($ticker, $currency)
    {
        $quote  = $this->stock_quote->getQuote($ticker);
        $rate   = $this->exchange_rate->getRate($currency);
        return  $rate * $quote;
    }
?>

Pour définir cette méthode, le fichier WSDL va donner des noms à la méthode et aux paramètres, puis donner au schéma XML le type des paramètres. La section de type du fichier WSDL produit ressemble à ceci :

Exemple #3 Section types avec paramètres nommés

<types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://ConvertedStockQuote">
      <xs:element name="getQuote">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ticker" type="xs:string"/>
            <xs:element name="currency" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getQuoteResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="getQuoteReturn" type="xs:float"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  </types>

L'exécutable SCA gère la conversion de la liste des paramètres positionnés en une requête SOAP, puis de nouveau en liste de paramètres, au retour de la requête. Pour comprendre où cela est important, vous pouvez étudier comment PHP qui utiliserait une autre interface pour faire un appel SOAP devrait construire la liste de paramètres. Un script PHP utilisant la classe SoapClient, a besoin de passer les paramètres "ticker" et "currency", peut-être sous forme de tableau associatif. Pour cela, il faudrait que les appels à des services Web ou des fonctions locales se fassent avec des interfaces de programmation différente, et ce n'est pas voulu.

Quand SCA génère un fichier WSDL pour un composant SCA, il inclut des commentaires dans le WDSL qui indique le ce composant est un composant SCA. Dans ce cas, quand un composant SCA est appelé par un autre composant via un service Web, l'exécutable SCA prend la liste de paramètres et assigne les valeurs une à une dans le message SOAP. Par exemple, un appelle à la méthode getQuote() définie ci-dessus qui passe les valeurs 'IBM' et 'USD' ressemble à ceci :

<?php
  $quote = $remote_service->getQuote('IBM','USD');
?>

Elle produira un message SOAP qui contient ce code XML :

<getQuote>
  <ticker>IBM</ticker>
  <currency>USD</currency>
</getQuote>

Dans le composant de réception, l'exécutable SCA prend les paramètres dans le même ordre, et forme une liste de paramètres positionnés, en reformant la liste des arguments ('IBM','USD').

Attention

Dans les deux cas, l'exécutable SCA s'appuie sur l'ordre dans lequel les arguments sont placés dans le message SOAP : cet ordre doit correspondre à l'ordre d'appel des paramètres dans la fonction. Cet ordre est finalement défini par l'ordre des annotations @param : il déterminent l'ordre dans lequel les paramètres apparaissent dans le fichier WSDL, et dans le message SOAP. Par conséquent, il est essentiel que cet ordre d'annotations @param correspondent aux paramètres de la méthode publique.


Travailler avec des structures de données

Les composants SCA peuvent échanger les quatre types scalaires de PHP : booléen, entier, nombre décimal et chaîne de caractères, mais aussi passer des structures de données : SCA utilise les Service Data Objects (SDOs). Les SDO sont décrits en détails dans les pages SDO de ce manuel. Les lecteurs habitués aux SDO sauront qu'ils sont adaptés à la représentation de toutes sortes de données structurées et semi-structurées, qui sont souvent modélisées en CML, et qui se linéarises naturellement pour passer entre composants distants. Les SDO sont actuellement le seul moyen pour échanger des structures de données. Il n'est pas possible d'échanger des objets PHP ou des tableaux.

L'exécutable SCA s'assure toujours que les données sont passées par valeur, même dans les appels locaux. Pour cela, SCA copie les SDO dans la liste de paramètre avant de les passer, comme il le fait pour les valeurs scalaires.

Comment les structures de données sont définies par SCA

Actuellement, le seul mécanisme pour spécifier la localisation d'une définition de structure de données est de spécifier un type dans un schéma XML. Cependant, à l'avenir, il est peut être possible de définir des types d'une autre manière, comme en se basant sur des classes PHP ou des interfaces, ou encore des tableaux associatifs.

Pour illustrer l'utilisation de SDO, voici un nouveau composant. Le service PortfolioMangement retourne un SDO qui représente un porte-feuille d'actions, pour un client donné.

Exemple #1 Un composant SCA qui utilise des SDO

<?php

include "SCA/SCA.php";

/**
 * Gestion de porte-feuille d'un client
 *
 * @service
 * @binding.soap
 *
 * @types http://www.example.org/Portfolio PortfolioTypes.xsd
 *
 */
class PortfolioManagement {

    /**
     * Lit le porte-feuille d'un client donné.
     *
     * @param integer $customer_id L'identifiant du client
     * @return Portfolio http://www.example.org/Portfolio Le porte-feuille d'actions (symboles et quantités)
     */
    function getPortfolio($customer_id) {
        // Supposons que nous l'avons lu dans la base de données
        $portfolio = SCA::createDataObject('http://www.example.org/Portfolio', 'Portfolio');
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'AAPL';
        $holding->number = 100.5;
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'INTL';
        $holding->number = 100.5;
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'IBM';
        $holding->number = 100.5;
        return $portfolio;
    }

}
?>

L'annotation @types :

<?php
@types http://www.example.org/Portfolio PortfolioTypes.xsd
?>

elle indique que les types sont de l'espace de noms http://www.example.org/Portfolio seront disponibles dans le schéma PortfolioTypes.xsd. Le fichier WSDL produit va reproduire ces informations avec une commande d'importation comme ceci :

<xs:import schemaLocation="PortfolioTypes.xsd"
                      namespace="http://www.example.org/Portfolio"/>

Ce qui fait que l'URI, absolue ou relative, doit pouvoir être résolue lors de l'inclusion dans l'attribut schemaLocation.

Création de SDO

Les lecteurs familiers avec la notion de SDO savent qu'ils doivent toujours être créés en conformité avec une description de la structure autorisée (parfois aussi appelé schéma, ou modèle). Et que au lieu de créer directement le SDO en utilisant l'opérateur 'new', une certaine forme d'usine d'objet doit être utilisée, mais que, parfois, et notamment pour obtenir le premier objet, il faut autre chose qu'une usine.

En SCA, soit c'est la classe d'exécution ou les proxy, qu'ils soient locaux ou distants, qui servent d'usine à SDO. Les critères de choix entre les deux sont décrits dans les prochaines sections.

Nous allons passer à un autre exemple pour illustrer la création de SDO, afin de la passer à un service et pour en recueillir un.

Création de SDO à passer à un service

Un utilisateur de service qui requiert une structure de données doit utiliser un proxy vers ce service pour avoir une usine à données qui produira les SDO désirés. Par exemple, supposons qu'un composant utilise un proxy pour un service vers un carnet d'adresse AddressBook local.

<?php
/**
 * @reference
 * @binding.local AddressBook.php
 */
$address_book;
?>

Le composant AddressBook qui doit être utilisé est défini comme ceci :

<?php
/**
* @service
* @binding.soap
* @types http://addressbook ../AddressBook/AddressBook.xsd
*/
class AddressBook {

    /**
     * @param personType $person http://addressbook (un objet de personne)
     * @return addressType http://addressbook (un objet d'adress pour l'objet de personne)
     */
    function lookupAddress($person)  {
        ...
    }
}
?>

Le composant AddressBook fournit une méthode de service appelée lookupAddress() qui utilise les types du schéma http://addressbook. La méthode lookupAddress prend une structure personType et retourne un objet addressType. Les deux types sont définis dans le schéma addressbook.xsd.

Une fois que le composant qui veut utiliser le composant AddressBook a été construit, de manière à ce que la variable d'instance $address_book contiennent un proxy vers le service, le composant appelant peut utiliser ce proxy dans $address_book pour créer un SDO de personne, comme ceci :

<?php
$william_shakespeare        = $address_book->createDataObject('http://addressbook','personType');
$william_shakespeare ->name = "William Shakespeare";
$address                    = $address_book->lookupAddress($william_shakespeare);
?>

Notez que l'utilisation du proxy pour produire un SDO n'est pas limitée aux seuls composants SCA. Si un service est appelé depuis un script PHP ordinaire, et que le proxy a été obtenu via la méthode getService() alors la même approche est utilisée.

<?php
$address_book = SCA::getService('AddressBook.php');
$william_shakespeare = $address_book->createDataObject('http://addressbook','personType');
?>

Création d'un SDO à retourner d'un composant

Un composant qui a besoin de créer un objet de données à retourner à son appelant ne dispose pas d'un proxy à utiliser comme usine à données, et dans ce cas, il utilise la méthode statique createDataObject() du fichier SCA.php. Ainsi, si le composant AddressBook décrit ci-dessus a besoin de créer un objet de type addressType dans l'espace de noms http://addressbook, il peut le faire comme ceci :

<?php
$address = SCA::createDataObject('http://addressbook','addressType');
?>


Gestion d'erreurs

Cette section décrit comment sont gérées les erreurs. Il y a deux types d'erreur :

  • Les exceptions de l'exécutable SCA sont celles qui signalent des problèmes dans la gestion de l'exécution des composants, et dans l'interaction avec les services. Cela peut survenir à cause de problèmes de configuration réseau.

  • Les exceptions métier sont celles qui sont définies par le programmeur. Elles étendent la classe PHP Exception, et sont émises puis interceptées explicitement comme partie intégrante de la logique métier.

Gestion des erreurs d'exécution

Il y a deux types d'erreur SCA :

  • SCA_RuntimeException : elle signale un problème dans ou survenant dans l'exécutable SCA. Elle peut être émise pour diverses raisons, et certaines d'entre elles peuvent être indépendantes de la connexion à un service local ou distant : une erreur dans l'une des annotations un fichier WSDL ou PHP manquant, etc. Dans le cas des services Web, une exception SCA_RuntimeException peut aussi être émise si une erreur SoapFault a été émise par un service Web et que le code d'erreur SoapFault indique qu'une nouvelle tentative a peu de chances d'aboutir.

  • SCA_ServiceUnavailableException : cette classe est une sous-classe de SCA_RuntimeException, et signale un problème lors de la connexion ou de l'utilisation d'un service distant, mais une erreur qui peut être dépassée si une nouvelle tentative est faite. Dans le cas des services Web, cette exception est émise si une erreur SoapFault est reçue avec un code qui indique qu'une nouvelle tentative pourrait être couronnée de succès.

Gestion des exceptions métier

Les exceptions métier peuvent être définies et émise par un composant de manière classique, indépendamment du fait que le service a été appelé localement ou à distance. L'exécutable SCA n'intercepte pas les exceptions locales, ce qui fait qu'elles seront acheminées au composant appelant de manière classique. Si un composant a été appelé comme service Web, l'exécutable SCA va les intercepter, et s'assurera qu'elles sont transmises au composant appelant, puis émise à nouveau. En supposant que le script appelant a une définition de l'exception métier (c'est à dire qu'il est capable d'inclure un fichier contenant la définition PHP de l'exception), la nouvelle exception sera émise avec les mêmes détails que l'originale, de qui fait que les informations de getLine() et getFile() contiendront les indications d'origine de l'erreur dans les fichiers du service appelé. Cette exception sera passée via le champ détail de la classe SoapFault.


Fonctions SCA

Classes pré-définies

La plupart de l'interface SCA se définit via les annotations dans les composants SCA, ce qui fait qu'il y a peu de classes et de méthodes. La seule classe SCA que les scripts ou les composants peuvent appeler est la classe SCA elle-même, et les classe proxy SCA_LocalProxy et SCA_SoapProxy.

SCA

L'essentiel du travail de la classe SCA est effectué lors de l'inclusion du fichier SCA.php, qui est inclus avec le composant SCA. Cependant, un script PHP peut inclure SCA.php et appeler la méthode getService() de la classe SCA pour obtenir un proxy pour un service. Un composant n'aura pas besoin de faire cela car les proxy sont obtenus à l'aide d'une variable définie avec l'annotation @reference.

Les composants qui doivent créer un SDO à retourner à leur appelant doivent créer une usine de données à appeler. Pour cela, la classe SCA supporte la méthode createDataObject(), qui va créer un objet SDO en fonction du modèle défini par les annotations de composants @types. Les arguments de createDataObject() sont les mêmes que ceux du service XML Data Access Service de SDO.

Méthodes

  • getService : obtient un proxy pour un service

  • createDataObject : crée un SDO

SCA_LocalProxy

Quand getService() est appelée avec une ressource cible qui est un composant PHP local, un proxy local est retourné. Un proxy local qui est défini est aussi injecté dans les variables d'instance du composant, qui ont été annotées avec @reference et @binding.php. Lorsque le script ou le composant font appel au proxy local, ils sont passés au composant cible lui-même.

Les composants qui doivent créer un SDO à retourner à leur appelant doivent créer une usine de données à appeler. Pour cela, la classe SCA_LocalProxy supporte la méthode createDataObject(), qui va créer un objet SDO en fonction du modèle défini par les annotations de composants @types. Les arguments arguments de createDataObject() sont les mêmes que ceux du service XML Data Access Service de SDO.

Méthodes

  • createDataObject : crée un SDO

SCA_SoapProxy

Quand getService() est appelée avec une ressource cible qui est un composant PHP distant, un proxy distant est retourné. Un proxy local qui est défini est aussi injecté dans les variables d'instance du composant, qui ont été annotées avec @reference et @binding.php. Lorsque le script ou le composant font appel au proxy distant, ils sont organisés en requête Web SOAP et passé au serveur distant, avec l'aide de l'extension SOAP.

Les composants qui doivent créer un SDO à retourner à leur appelant doivent créer une usine de données à appeler. Pour cela, la classe SCA_SoapProxy supporte la méthode createDataObject(), qui va créer un objet SDO en fonction du modèle défini par les annotations de composants @types. Les arguments arguments de createDataObject() sont les mêmes que ceux du service XML Data Access Service de SDO.

Méthodes

  • createDataObject : crée un SDO

Sommaire

  • SCA::createDataObject — Crée un SDO
  • SCA::getService — Obtient un proxy pour un service
  • SCA_LocalProxy::createDataObject — Crée un SDO
  • SCA_SoapProxy::createDataObject — Crée un SDO


Crée un SDO

  • « Fonctions SCA
  • SCA::getService »
  • PHP Manual
  • Fonctions SCA
  • Crée un SDO

SCA::createDataObject

(PECL SDO >= 0.5.0)

SCA::createDataObject — Crée un SDO

Description

SDO_DataObject SCA::createDataObject ( string $type_namespace_uri , string $type_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette méthode est utilisée dans un script PHP ordinaire ou un composant SCA qui a besoin d'obtenir un objet SDO pour le retourner. Le paramètre type_namespace_uri est l'URI de l'espace de nom désiré pour l'objet SDO, et le nom du type. L'espace de noms et le type doivent être définis dans l'un des fichiers de schéma qui sont spécifiées dans les annotations @types du composant.

Liste de paramètres

type_namespace_uri

L'espace de noms de types.

type_name

Le nom du type.

Valeurs de retour

Retourne un nouvel objet SDO_DataObject.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émet cette exception si l'URI d'espace de noms type_namespace_uri et type_name ne correspondent pas à un type spécifié dans les annotations @types.


Obtient un proxy pour un service

  • « SCA::createDataObject
  • SCA_LocalProxy::createDataObject »
  • PHP Manual
  • Fonctions SCA
  • Obtient un proxy pour un service

SCA::getService

(PECL SDO >= 0.5.0)

SCA::getService — Obtient un proxy pour un service

Description

mixed SCA::getService ( string $target [, string $binding [, array $config ]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Examine la cible, et initialise puis retourne un proxy approprié. Si la cible est un composant PHP local, le proxy retourné sera de type SCA_LocalProxy. Si la cible est un composant PHP distant, le proxy retourné sera de type SCA_SoapProxy.

Liste de paramètres

target

Un chemin absolu ou relatif jusqu'au service cible, ou la description du service (e.g. an URL vers une script de service en json-rpc, un composant PHP, un fichier WSDL, etc.). Une chemin relatif, si spécifié, est résolu relativement à la position du script qui émet l'appel à getService(), et non relativement à include_path, ou le dossier de travail courant.

binding

L'interface à utiliser (i.e. le protocole) avec le service (e.g binding.jsonrpc pour un service json-rpc). Notez que certaines types de services peuvent être déduits du paramètre de cible (e.g. si l'URL de cible finit par .wsdl alors SCA va supposer qu'il faut utiliser binding.soap). Tout protocole qui peut être spécifié dans une annotation peut être spécifié dans ce paramètre. Par exemple, 'binding.soap' est équivalent à l'annotation '@binding.soap'.

config

Toute configuration supplémentaire pour le protocole (e.g. array('location' => 'http://example.org')). Toute configuration supplémentaire peut aussi être configurée dans une annotation. Par exemple, 'location' est équivalent à l'annotation '@location', pour configurer la destination du service SOAP.

Valeurs de retour

Un objet SCA_LocalProxy ou SCA_SoapProxy.

Exemples

Exemple #1 Exemple avec SCA::getService()

Cet exemple montre comment obtenir un proxy pour un service SOAP de email, décrit par EmailService.wsdl et situé sur http://example.org.

<?php
include 'SCA/SCA.php';
$service = SCA::getService('EmailService.wsdl', 'binding.soap', array('location' => 'http://example.org'));
$service->send(...);
?>

L'exemple ci-dessus va afficher :


Crée un SDO

  • « SCA::getService
  • SCA_SoapProxy::createDataObject »
  • PHP Manual
  • Fonctions SCA
  • Crée un SDO

SCA_LocalProxy::createDataObject

(PECL SDO >= 0.5.0)

SCA_LocalProxy::createDataObject — Crée un SDO

Description

SDO_DataObject SCA_LocalProxy::createDataObject ( string $type_namespace_uri , string $type_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette méthode est utilisée dans un script PHP ordinaire ou un composant SCA qui a besoin d'obtenir un objet SDO pour le passer à un service local. Le paramètre type_namespace_uri est l'URI de l'espace de nom désiré pour l'objet SDO, et le nom du type. L'espace de noms et le type doivent être définis dans l'interface du composant qui est appelé, ce qui fait que l'espace de noms et le type doivent être définis dans un des fichiers de schéma qui sont spécifiés dans les annotations @types dans le composant dont SCA_LocalProxy est le proxy.

Liste de paramètres

type_namespace_uri

L'espace de noms de types.

type_name

Le nom du type.

Valeurs de retour

Retourne un nouvel objet SDO_DataObject.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émet cette exception si l'URI d'espace de noms type_namespace_uri et type_name ne correspondent pas à un type spécifié dans l'un des espaces de noms définis dans les fichiers de schéma définis dans les annotations @types, à l'intérieur du composant SCA_LocalProxy.


Crée un SDO

  • « SCA_LocalProxy::createDataObject
  • SOAP »
  • PHP Manual
  • Fonctions SCA
  • Crée un SDO

SCA_SoapProxy::createDataObject

(PECL SDO >= 0.5.0)

SCA_SoapProxy::createDataObject — Crée un SDO

Description

SDO_DataObject SCA_SoapProxy::createDataObject ( string $type_namespace_uri , string $type_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette méthode est utilisée dans un script PHP ordinaire ou un composant SCA qui a besoin d'obtenir un objet SDO pour le passer à un service distant. Le paramètre type_namespace_uri est l'URI de l'espace de nom désiré pour l'objet SDO, et le nom du type. L'espace de noms et le type doivent être définis dans le fichier WSDL du service Web qui est appelé, ce qui fait que l'espace de noms et le type doivent être définis dans un des fichiers de schéma qui sont spécifiés dans les annotations @types dans le composant dont SCA_LocalProxy est le proxy.

Liste de paramètres

type_namespace_uri

L'espace de noms de types.

type_name

Le nom du type.

Valeurs de retour

Retourne un nouvel objet SDO_DataObject.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émet une exception si l'URI d'espace de noms type_namespace_uri et type_name ne correspondent pas à un type spécifié dans le fichier WSDL qui a été utilisé pour initialiser le SCA_SoapProxy.


SOAP

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions SOAP
    • is_soap_fault — Vérifie si SOAP retourne une erreur
    • use_soap_error_handler — Active le gestionnaire d'erreurs SOAP natif
  • SoapClient — La classe SoapClient
    • SoapClient::__call — Appelle une fonction SOAP (obsolète)
    • SoapClient::__construct — Constructeur SoapClient
    • SoapClient::__doRequest — Exécute une requête SOAP
    • SoapClient::__getFunctions — Retourne une liste de fonctions SOAP publiées
    • SoapClient::__getLastRequest — Retourne la dernière requête SOAP
    • SoapClient::__getLastRequestHeaders — Retourne les en-têtes de la dernière requête SOAP
    • SoapClient::__getLastResponse — Retourne la dernière réponse SOAP
    • SoapClient::__getLastResponseHeaders — Retourne les en-têtes de la dernière réponse SOAP
    • SoapClient::__getTypes — Retourne une liste des types SOAP
    • SoapClient::__setCookie — Définit le cookie qui sera envoyé avec la requête SOAP
    • SoapClient::__setLocation — Configure l'URL du service Web à utiliser
    • SoapClient::__setSoapHeaders — Ajoute un en-tête SOAP pour les requêtes suivantes
    • SoapClient::__soapCall — Appelle une fonction SOAP
    • SoapClient::SoapClient — Constructeur SoapClient
  • SoapServer — La classe SoapServer
    • SoapServer::addFunction — Ajoute une ou plusieurs fonctions qui vont gérer les requêtes SOAP
    • SoapServer::addSoapHeader — Ajoute un en-tête SOAP à une réponse
    • SoapServer::__construct — Constructeur SoapServer
    • SoapServer::fault — Emet une erreur SoapServer
    • SoapServer::getFunctions — Retourne la liste des fonctions définies
    • SoapServer::handle — Traite une requête SOAP
    • SoapServer::setClass — Configure la classe qui sera utilisée pour gérer les requêtes SOAP
    • SoapServer::setObject — Configure l'objet qui sera utilisé pour gérer les requêtes SOAP
    • SoapServer::setPersistence — Active le mode persistant de SoapServer
    • SoapServer::SoapServer — Constructeur SoapServer
  • SoapFault — La classe SoapFault
    • SoapFault::__construct — Constructeur SoapFault
    • SoapFault::SoapFault — SoapFault constructor
    • SoapFault::__toString — Produit une représentation chaîne d'un objet SoapFault
  • SoapHeader — La classe SoapHeader
    • SoapHeader::__construct — Constructeur SoapHeader
    • SoapHeader::SoapHeader — SoapHeader constructor
  • SoapParam — La classe SoapParam
    • SoapParam::__construct — Constructeur SoapParam
    • SoapParam::SoapParam — Constructeur SoapParam
  • SoapVar — La classe SoapVar
    • SoapVar::__construct — Constructeur SoapVar
    • SoapVar::SoapVar — Constructeur SoapVar


Introduction

L'extension SOAP peut être utilisée pour les échanges clients/serveurs SOAP. Elle supporte les spécifications » SOAP 1.1, » SOAP 1.2 et » WSDL 1.1.


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.


  • « Pré-requis
  • Configuration à l'exécution »
  • PHP Manual
  • Installation/Configuration
  • Installation

Installation

Pour activer le support de SOAP, configurez PHP avec --enable-soap .


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration SOAP
Nom | Défaut | Modifiable | Historique
soap.wsdl_cache_enabled | 1 | PHP_INI_ALL |
soap.wsdl_cache_dir | /tmp | PHP_INI_ALL |
soap.wsdl_cache_ttl | 86400 | PHP_INI_ALL |
soap.wsdl_cache | 1 | PHP_INI_ALL |
soap.wsdl_cache_limit | 5 | PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

soap.wsdl_cache_enabled integer

Active ou pas le cache WSDL.

soap.wsdl_cache_dir string

Configure le nom du dossier où l'extension SOAP peut mettre les fichiers de cache.

soap.wsdl_cache_ttl integer

Configure la durée de vie des fichiers dans le cache, exprimé en secondes.

soap.wsdl_cache integer

Si soap.wsdl_cache_enabled est actif, cette directive détermine le type de cache. Il peut prendre l'une des valeurs suivantes : WSDL_CACHE_NONE (0), WSDL_CACHE_DISK (1), WSDL_CACHE_MEMORY (2) ou WSDL_CACHE_BOTH (3). Cela peut aussi être configuré via le paramètre options dans les constructeurs de SoapClient ou SoapServer.

soap.wsdl_cache_limit integer

Le nombre maximal de fichier WSDL en cache. La reception de nouveaux fichiers dans le cache, s'il est plein, causera l'effacement des plus anciens.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SOAP constants
Constante | Valeur | Description
SOAP_1_1 (entier) | 1 |
SOAP_1_2 (entier) | 2 |
SOAP_PERSISTENCE_SESSION (entier) | 1 |
SOAP_PERSISTENCE_REQUEST (entier) | 2 |
SOAP_FUNCTIONS_ALL (entier) | 999 |
SOAP_ENCODED (entier) | 1 |
SOAP_LITERAL (entier) | 2 |
SOAP_RPC (entier) | 1 |
SOAP_DOCUMENT (entier) | 2 |
SOAP_ACTOR_NEXT (entier) | 1 |
SOAP_ACTOR_NONE (entier) | 2 |
SOAP_ACTOR_UNLIMATERECEIVER (entier) | 3 |
SOAP_COMPRESSION_ACCEPT (entier) | 32 |
SOAP_COMPRESSION_GZIP (entier) | 0 |
SOAP_COMPRESSION_DEFLATE (entier) | 16 |
SOAP_AUTHENTICATION_BASIC (entier) | 0 |
SOAP_AUTHENTICATION_DIGEST (entier) | 1 |
SOAP_SSL_METHOD_TLS (entier) | 0 | Depuis PHP 5.5.0.
SOAP_SSL_METHOD_SSLv2 (entier) | 1 | Depuis PHP 5.5.0.
SOAP_SSL_METHOD_SSLv3 (entier) | 2 | Depuis PHP 5.5.0.
SOAP_SSL_METHOD_SSLv23 (entier) | 3 | Depuis PHP 5.5.0.
UNKNOWN_TYPE (entier) | 999998 |
XSD_STRING (entier) | 101 |
XSD_BOOLEAN (entier) | 102 |
XSD_DECIMAL (entier) | 103 |
XSD_FLOAT (entier) | 104 |
XSD_DOUBLE (entier) | 105 |
XSD_DURATION (entier) | 106 |
XSD_DATETIME (entier) | 107 |
XSD_TIME (entier) | 108 |
XSD_DATE (entier) | 109 |
XSD_GYEARMONTH (entier) | 110 |
XSD_GYEAR (entier) | 111 |
XSD_GMONTHDAY (entier) | 112 |
XSD_GDAY (entier) | 113 |
XSD_GMONTH (entier) | 114 |
XSD_HEXBINARY (entier) | 115 |
XSD_BASE64BINARY (entier) | 116 |
XSD_ANYURI (entier) | 117 |
XSD_QNAME (entier) | 118 |
XSD_NOTATION (entier) | 119 |
XSD_NORMALIZEDSTRING (entier) | 120 |
XSD_TOKEN (entier) | 121 |
XSD_LANGUAGE (entier) | 122 |
XSD_NMTOKEN (entier) | 123 |
XSD_NAME (entier) | 124 |
XSD_NCNAME (entier) | 125 |
XSD_ID (entier) | 126 |
XSD_IDREF (entier) | 127 |
XSD_IDREFS (entier) | 128 |
XSD_ENTITY (entier) | 129 |
XSD_ENTITIES (entier) | 130 |
XSD_INTEGER (entier) | 131 |
XSD_NONPOSITIVEINTEGER (entier) | 132 |
XSD_NEGATIVEINTEGER (entier) | 133 |
XSD_LONG (entier) | 134 |
XSD_INT (entier) | 135 |
XSD_SHORT (entier) | 136 |
XSD_BYTE (entier) | 137 |
XSD_NONNEGATIVEINTEGER (entier) | 138 |
XSD_UNSIGNEDLONG (entier) | 139 |
XSD_UNSIGNEDINT (entier) | 140 |
XSD_UNSIGNEDSHORT (entier) | 141 |
XSD_UNSIGNEDBYTE (entier) | 142 |
XSD_POSITIVEINTEGER (entier) | 143 |
XSD_NMTOKENS (entier) | 144 |
XSD_ANYTYPE (entier) | 145 |
XSD_ANYXML (entier) | 147 |
APACHE_MAP (entier) | 200 |
SOAP_ENC_OBJECT (entier) | 301 |
SOAP_ENC_ARRAY (entier) | 300 |
XSD_1999_TIMEINSTANT (entier) | 401 |
XSD_NAMESPACE (entier) | http://www.w3.org/2001/XMLSchema |
XSD_1999_NAMESPACE (entier) | http://www.w3.org/1999/XMLSchema |
SOAP_SINGLE_ELEMENT_ARRAYS (entier) | 1 |
SOAP_WAIT_ONE_WAY_CALLS (entier) | 2 |
SOAP_USE_XSI_ARRAY_TYPE (entier) | 4 |
WSDL_CACHE_NONE (entier) | 0 |
WSDL_CACHE_DISK (entier) | 1 |
WSDL_CACHE_MEMORY (entier) | 2 |
WSDL_CACHE_BOTH (entier) | 3 |


Fonctions SOAP

Sommaire

  • is_soap_fault — Vérifie si SOAP retourne une erreur
  • use_soap_error_handler — Active le gestionnaire d'erreurs SOAP natif


Vérifie si SOAP retourne une erreur

  • « Fonctions SOAP
  • use_soap_error_handler »
  • PHP Manual
  • Fonctions SOAP
  • Vérifie si SOAP retourne une erreur

is_soap_fault

(Unknown)

is_soap_fault — Vérifie si SOAP retourne une erreur

Description

bool is_soap_fault ( mixed $object )

is_soap_fault() sert à vérifier si l'API SOAP a échoué, sans utiliser les exceptions. Pour l'utiliser, créez un objet SoapClient avec l'option exceptions mise à zéro ou à FALSE. Dans ce cas, la méthode SOAP va retourner un objet spécial SoapFault, qui encapsule les détails de l'erreur (code d'erreur, message, acteur et détails).

Si exceptions n'est pas configurée, SOAP va émettre une exception. is_soap_fault() vérifie si le paramètre fourni est un objet SoapFault.

Liste de paramètres

objet

L'objet à tester.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec is_soap_fault()

<?php
$client = new SoapClient("some.wsdl", array('exceptions' => 0));
$result = $client->SomeFunction();
if (is_soap_fault($result)) {
    trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring})", E_USER_ERROR);
}
?>

Exemple #2 Gestion des erreurs par exception avec SOAP

<?php
try {
    $client = new SoapClient("some.wsdl");
    $result = $client->SomeFunction(/* ... */);
} catch (SoapFault $fault) {
    trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
}
?>

Voir aussi

  • SoapClient::SoapClient() - Constructeur SoapClient
  • SoapFault::SoapFault() - SoapFault constructor


Active le gestionnaire d'erreurs SOAP natif

  • « is_soap_fault
  • SoapClient »
  • PHP Manual
  • Fonctions SOAP
  • Active le gestionnaire d'erreurs SOAP natif

use_soap_error_handler

(Unknown)

use_soap_error_handler — Active le gestionnaire d'erreurs SOAP natif

Description

bool use_soap_error_handler ([ bool $handler = true ] )

use_soap_error_handler() active ou non le gestionnaire d'erreurs natif SOAP du serveur SOAP. Elle retourne la valeur précédemment utilisée. Si le paramètre handler est mis à TRUE, le détail des erreurs du serveur SoapServer seront envoyées au client, comme message d'erreur SOAP. Si vaut FALSE le gestionnaire d'erreur standard PHP sera utilisé. Le comportement par défaut est d'envoyer l'erreur au client sous forme de message SOAP.

Liste de paramètres

handler

Avec la valeur TRUE, le détail des erreurs sera envoyé aux clients.

Valeurs de retour

Retourne la valeur originale.

Voir aussi

  • set_error_handler() - Spécifie une fonction utilisateur comme gestionnaire d'erreurs
  • set_exception_handler() - Définit une fonction utilisateur de gestion d'exceptions


La classe SoapClient

(PHP 5 >= 5.0.1, PHP 7)

Introduction

La classe SoapClient fournit un client pour les protocoles » SOAP 1.1 et » SOAP 1.2. Il peut être utilisé avec ou sans mode WSDL.

Synopsis de la classe

SoapClient {
/* Méthodes */
public mixed __call ( string $function_name , string $arguments )
public SoapClient ( mixed $wsdl [, array $options ] )
public string __doRequest ( string $request , string $location , string $action , int $version [, int $one_way = 0 ] )
public array __getFunctions ( void )
public string __getLastRequest ( void )
public string __getLastRequestHeaders ( void )
public string __getLastResponse ( void )
public string __getLastResponseHeaders ( void )
public array __getTypes ( void )
public void __setCookie ( string $name [, string $value ] )
public string __setLocation ([ string $new_location ] )
public bool __setSoapHeaders ([ mixed $soapheaders ] )
public mixed __soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] )
public SoapClient ( mixed $wsdl [, array $options ] )
}

Sommaire

  • SoapClient::__call — Appelle une fonction SOAP (obsolète)
  • SoapClient::__construct — Constructeur SoapClient
  • SoapClient::__doRequest — Exécute une requête SOAP
  • SoapClient::__getFunctions — Retourne une liste de fonctions SOAP publiées
  • SoapClient::__getLastRequest — Retourne la dernière requête SOAP
  • SoapClient::__getLastRequestHeaders — Retourne les en-têtes de la dernière requête SOAP
  • SoapClient::__getLastResponse — Retourne la dernière réponse SOAP
  • SoapClient::__getLastResponseHeaders — Retourne les en-têtes de la dernière réponse SOAP
  • SoapClient::__getTypes — Retourne une liste des types SOAP
  • SoapClient::__setCookie — Définit le cookie qui sera envoyé avec la requête SOAP
  • SoapClient::__setLocation — Configure l'URL du service Web à utiliser
  • SoapClient::__setSoapHeaders — Ajoute un en-tête SOAP pour les requêtes suivantes
  • SoapClient::__soapCall — Appelle une fonction SOAP
  • SoapClient::SoapClient — Constructeur SoapClient


Appelle une fonction SOAP (obsolète)

  • « SoapClient
  • SoapClient::__construct »
  • PHP Manual
  • SoapClient
  • Appelle une fonction SOAP (obsolète)

SoapClient::__call

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__call — Appelle une fonction SOAP (obsolète)

Description

public mixed SoapClient::__call ( string $function_name , string $arguments )

L'appel direct à cette méthode est obsolète. Habituellement, les fonctions SOAP peuvent être appelées comme méthodes de l'objet SoapClient ; dans les cas où ce n'est pas possible, ou bien qu'il est nécessaire de passer plus d'options, utilisez la méthode SoapClient::__soapCall().


Constructeur SoapClient

  • « SoapClient::__call
  • SoapClient::__doRequest »
  • PHP Manual
  • SoapClient
  • Constructeur SoapClient

SoapClient::__construct

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__construct — Constructeur SoapClient

Description

public SoapClient::SoapClient ( mixed $wsdl [, array $options ] )

Cette fonction est un alias de : SoapClient::SoapClient()


Exécute une requête SOAP

  • « SoapClient::__construct
  • SoapClient::__getFunctions »
  • PHP Manual
  • SoapClient
  • Exécute une requête SOAP

SoapClient::__doRequest

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__doRequest — Exécute une requête SOAP

Description

public string SoapClient::__doRequest ( string $request , string $location , string $action , int $version [, int $one_way = 0 ] )

Exécute une requête SOAP.

Cette méthode peut être écrasée dans les sous-classes pour implémenter différents transporteurs, effectuer des opérations XML supplémentaires ou toute autre chose.

Liste de paramètres

request

La requête SOAP en XML.

location

L'URL de la requête.

action

L'action SOAP.

version

La version SOAP.

one_way

Si one_way prend la valeur de 1, cette méthode ne retourne rien. Utilisez cette valeur quand une réponse n'est pas attendue.

Valeurs de retour

La réponse SOAP en XML.

Historique

Version | Description
5.1.3 | Le paramètre one_way a été ajouté.

Exemples

Exemple #1 Exemple avec SoapClient::__doRequest()

<?php
function Add($x,$y) {
  return $x+$y;
}

class LocalSoapClient extends SoapClient {

  function __construct($wsdl, $options) {
    parent::__construct($wsdl, $options);
    $this->server = new SoapServer($wsdl, $options);
    $this->server->addFunction('Add');
  }

  function __doRequest($request, $location, $action, $one_way = 0) {
    ob_start();
    $this->server->handle($request);
    $response = ob_get_contents();
    ob_end_clean();
    return $response;
  }

}

$x = new LocalSoapClient(NULL,array('location'=>'test://',
                                   'uri'=>'http://testuri.org'));
var_dump($x->Add(3,4));
?>


Retourne une liste de fonctions SOAP publiées

  • « SoapClient::__doRequest
  • SoapClient::__getLastRequest »
  • PHP Manual
  • SoapClient
  • Retourne une liste de fonctions SOAP publiées

SoapClient::__getFunctions

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__getFunctions — Retourne une liste de fonctions SOAP publiées

Description

public array SoapClient::__getFunctions ( void )

SoapClient::__getFunctions() retourne un tableau de fonctions SOAP publiées décrites dans le WSDL.

Note:

Cette fonction n'est disponible qu'en mode WSDL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le array de fonctions SOAP avec le type de retour, le nom de la fonction et les types des paramètres qu'accepte celle-ci.

Exemples

Exemple #1 Exemple avec SoapClient::__getFunctions()

<?php
$client = new SoapClient('http://soap.amazon.com/schemas3/AmazonWebServices.wsdl');
var_dump($client->__getFunctions());
?>

L'exemple ci-dessus va afficher :

array(26) {
  [0]=>
  string(70) "ProductInfo KeywordSearchRequest(KeywordRequest $KeywordSearchRequest)"
  [1]=>
  string(79) "ProductInfo TextStreamSearchRequest(TextStreamRequest $TextStreamSearchRequest)"
  [2]=>
  string(64) "ProductInfo PowerSearchRequest(PowerRequest $PowerSearchRequest)"
...
  [23]=>
  string(107) "ShoppingCart RemoveShoppingCartItemsRequest(RemoveShoppingCartItemsRequest $RemoveShoppingCartItemsRequest)"
  [24]=>
  string(107) "ShoppingCart ModifyShoppingCartItemsRequest(ModifyShoppingCartItemsRequest $ModifyShoppingCartItemsRequest)"
  [25]=>
  string(118) "GetTransactionDetailsResponse GetTransactionDetailsRequest(GetTransactionDetailsRequest $GetTransactionDetailsRequest)"
}

Voir aussi

  • SoapClient::SoapClient() - Constructeur SoapClient


Retourne la dernière requête SOAP

  • « SoapClient::__getFunctions
  • SoapClient::__getLastRequestHeaders »
  • PHP Manual
  • SoapClient
  • Retourne la dernière requête SOAP

SoapClient::__getLastRequest

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__getLastRequest — Retourne la dernière requête SOAP

Description

public string SoapClient::__getLastRequest ( void )

Retourne le code XML de la dernière requête SOAP émise.

Note:

Cette méthode fonctionne uniquement si l'objet SoapClient a été créé avec l'option trace configuré à TRUE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La dernière requête SOAP, sous forme de chaîne de code XML.

Exemples

Exemple #1 Exemple avec SoapClient::__getLastRequest()

<?php
$client = new SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "REQUEST:\n" . $client->__getLastRequest() . "\n";
?>

Voir aussi

  • SoapClient::__getLastRequestHeaders() - Retourne les en-têtes de la dernière requête SOAP
  • SoapClient::__getLastResponse() - Retourne la dernière réponse SOAP
  • SoapClient::__getLastResponseHeaders() - Retourne les en-têtes de la dernière réponse SOAP


Retourne les en-têtes de la dernière requête SOAP

  • « SoapClient::__getLastRequest
  • SoapClient::__getLastResponse »
  • PHP Manual
  • SoapClient
  • Retourne les en-têtes de la dernière requête SOAP

SoapClient::__getLastRequestHeaders

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__getLastRequestHeaders — Retourne les en-têtes de la dernière requête SOAP

Description

public string SoapClient::__getLastRequestHeaders ( void )

Retourne les en-têtes de la dernière requête SOAP

Note:

Cette fonction n'est disponible que si l'objet SoapClient a été créé avec l'option trace à TRUE

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les dernieres entêtes SOAP.

Exemples

Exemple #1 Exemple avec SoapClient::__getLastRequestHeaders()

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "REQUEST HEADERS:\n" . $client->__getLastRequestHeaders() . "\n";
?>

Voir aussi

  • SoapClient::__getLastResponseHeaders() - Retourne les en-têtes de la dernière réponse SOAP
  • SoapClient::__getLastRequest() - Retourne la dernière requête SOAP
  • SoapClient::__getLastResponse() - Retourne la dernière réponse SOAP


Retourne la dernière réponse SOAP

  • « SoapClient::__getLastRequestHeaders
  • SoapClient::__getLastResponseHeaders »
  • PHP Manual
  • SoapClient
  • Retourne la dernière réponse SOAP

SoapClient::__getLastResponse

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__getLastResponse — Retourne la dernière réponse SOAP

Description

public string SoapClient::__getLastResponse ( void )

Retourne le code XML de la dernière réponse SOAP.

Note:

Cette fonction n'est disponible que si l'objet SoapClient a été créé avec l'option trace à TRUE

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La dernière réponse SOAP, sous forme de chaîne XML.

Exemples

Exemple #1 Exemple avec SoapClient::__getLastResponse()

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "Response:\n" . $client->__getLastResponse() . "\n";
?>

Voir aussi

  • SoapClient::__getLastResponseHeaders() - Retourne les en-têtes de la dernière réponse SOAP
  • SoapClient::__getLastRequest() - Retourne la dernière requête SOAP
  • SoapClient::__getLastRequestHeaders() - Retourne les en-têtes de la dernière requête SOAP


Retourne les en-têtes de la dernière réponse SOAP

  • « SoapClient::__getLastResponse
  • SoapClient::__getTypes »
  • PHP Manual
  • SoapClient
  • Retourne les en-têtes de la dernière réponse SOAP

SoapClient::__getLastResponseHeaders

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__getLastResponseHeaders — Retourne les en-têtes de la dernière réponse SOAP

Description

public string SoapClient::__getLastResponseHeaders ( void )

Retourne les entêtes de la dernière réponse SOAP.

Note:

Cette fonction n'est disponible que si l'objet SoapClient a été créé avec l'option trace à TRUE

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les en-têtes de la dernière réponse SOAP.

Exemples

Exemple #1 Exemple avec SoapClient::__getLastResponseHeaders()

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "RESPONSE HEADERS:\n" . $client->__getLastResponseHeaders() . "\n";
?>

Voir aussi

  • SoapClient::__getLastRequestHeaders() - Retourne les en-têtes de la dernière requête SOAP
  • SoapClient::__getLastRequest() - Retourne la dernière requête SOAP
  • SoapClient::__getLastResponse() - Retourne la dernière réponse SOAP


Retourne une liste des types SOAP

  • « SoapClient::__getLastResponseHeaders
  • SoapClient::__setCookie »
  • PHP Manual
  • SoapClient
  • Retourne une liste des types SOAP

SoapClient::__getTypes

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__getTypes — Retourne une liste des types SOAP

Description

public array SoapClient::__getTypes ( void )

SoapClient::__getTypes() retourne la liste des types SOAP décrits dans le fichier WSDL du service Web courant.

Note:

Cette fonction n'est disponible qu'en mode WSDL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un array de types SOAP détaillant toutes les structures et les types

Exemples

Exemple #1 Exemple avec SoapClient::__getTypes()

<?php
$client = new SoapClient("http://soap.amazon.com/schemas3/AmazonWebServices.wsdl");
var_dump($client->__getTypes());
?>

L'exemple ci-dessus va afficher :

array(88) {
  [0]=>
  string(30) "ProductLine ProductLineArray[]"
  [1]=>
  string(85) "struct ProductLine {
 string Mode;
 string RelevanceRank;
 ProductInfo ProductInfo;
}"
  [2]=>
  string(105) "struct ProductInfo {
 string TotalResults;
 string TotalPages;
 string ListName;
 DetailsArray Details;
}"
...
  [85]=>
  string(32) "ShortSummary ShortSummaryArray[]"
  [86]=>
  string(121) "struct GetTransactionDetailsRequest {
 string tag;
 string devtag;
 string key;
 OrderIdArray OrderIds;
 string locale;
}"
  [87]=>
  string(75) "struct GetTransactionDetailsResponse {
 ShortSummaryArray ShortSummaries;
}"
}

Voir aussi

  • SoapClient::SoapClient() - Constructeur SoapClient


Définit le cookie qui sera envoyé avec la requête SOAP

  • « SoapClient::__getTypes
  • SoapClient::__setLocation »
  • PHP Manual
  • SoapClient
  • Définit le cookie qui sera envoyé avec la requête SOAP

SoapClient::__setCookie

(PHP 5 >= 5.0.4, PHP 7)

SoapClient::__setCookie — Définit le cookie qui sera envoyé avec la requête SOAP

Description

public void SoapClient::__setCookie ( string $name [, string $value ] )

Définit le cookie qui sera envoyé avec la requête SOAP.

Note:

L'appel à cette méthode affectera tous les appels suivants aux méthodes SoapClient.

Liste de paramètres

name

Le nom du cookie.

value

La valeur du cookie. Si non spécifié, le cookie sera effacé.

Valeurs de retour

Aucune valeur n'est retournée.


Configure l'URL du service Web à utiliser

  • « SoapClient::__setCookie
  • SoapClient::__setSoapHeaders »
  • PHP Manual
  • SoapClient
  • Configure l'URL du service Web à utiliser

SoapClient::__setLocation

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__setLocation — Configure l'URL du service Web à utiliser

Description

public string SoapClient::__setLocation ([ string $new_location ] )

Configure l'URL cible, à qui seront envoyés les requêtes SOAP. Ce revient à spécifier l'option location lors de la construction du client SoapClient.

Note:

Cette méthode est optionnelle. SoapClient utilise l'URL indiquée dans le fichier WDSL par défaut.

Liste de paramètres

new_location

La nouvelle URL.

Valeurs de retour

L'ancienne URL.

Exemples

Exemple #1 Exemplea vec SoapClient::__setLocation()

<?php
$client = new SoapClient('http://example.com/webservice.php?wsdl');

$client->__setLocation('http://www.somethirdparty.com');

$old_location = $client->__setLocation(); // unsets the location option

echo $old_location;

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

http://www.somethirdparty.com

Voir aussi

  • SoapClient::SoapClient() - Constructeur SoapClient


Ajoute un en-tête SOAP pour les requêtes suivantes

  • « SoapClient::__setLocation
  • SoapClient::__soapCall »
  • PHP Manual
  • SoapClient
  • Ajoute un en-tête SOAP pour les requêtes suivantes

SoapClient::__setSoapHeaders

(PHP 5 >= 5.0.5, PHP 7)

SoapClient::__setSoapHeaders — Ajoute un en-tête SOAP pour les requêtes suivantes

Description

public bool SoapClient::__setSoapHeaders ([ mixed $soapheaders ] )

Définit un en-tête à utiliser dans les requêtes SOAP.

Note:

Cette méthode va remplacer la valeur précédente.

Liste de paramètres

soapheaders

L'en-tête à configurer. Il peut être un objet SoapHeader ou un tableau d'objetcs SoapHeader. Si ce paramètre n'est pas spécifié ou défini à NULL, les en-têtes seront supprimés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec SoapClient::__setSoapHeaders()

<?php

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$header = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world');

$client->__setSoapHeaders($header);

$client->__soapCall("echoVoid", null);
?>

Exemple #2 Configuration d'en-têtes multiples pour SOAP

<?php

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$headers = array();

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world');

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world again');

$client->__setSoapHeaders($headers);

$client->__soapCall("echoVoid", null);
?>


Appelle une fonction SOAP

  • « SoapClient::__setSoapHeaders
  • SoapClient::SoapClient »
  • PHP Manual
  • SoapClient
  • Appelle une fonction SOAP

SoapClient::__soapCall

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__soapCall — Appelle une fonction SOAP

Description

public mixed SoapClient::__soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] )

Ceci est une fonction bas niveau de l'API qui est utilisée pour faire des appels SOAP. Habituellement, en mode WSDL, vous pouvez appeler simplement les fonctions SOAP comme des méthodes SoapClient. Cette méthode est pratique en mode non-WSDL lorsque soapaction est inconnu, uri est différente de la valeur par défaut ou lors de l'envoi et/ou de la réception d'en-têtes SOAP.

En cas d'erreur, un appel à une fonction SOAP peut causer un lancement d'exception par PHP ou retourner un objet SoapFault si les exceptions sont désactivées. Pour vérifier si l'appel à cette fonction n'arrive pas à attraper les exceptions SoapFault, vérifiez le résultat avec la fonction is_soap_fault().

Liste de paramètres

function_name

Le nom de la fonction SOAP à appeler.

arguments

Un tableau d'arguments à passer à la fonction. Cela peut être un tableau associatif ou ordonné. Notez que la plupart des serveurs SOAP nécessite des noms de paramètres, auquel cas, ce doit être un tableau associatif.

options

Un tableau associatif d'options à passer au client.

Une option de location pour le service Web distant.

Une option uri avec l'espace de noms cible du service SOAP.

L'option soapaction est l'action à appeler.

input_headers

Un tableau d'entêtes à envoyer avec la requête SOAP.

output_headers

Si fourni, ce tableau sera rempli avec les entêtes de la réponse SOAP retournée.

Valeurs de retour

Les fonctions SOAP retournent une ou plusieurs valeurs. Si une seule valeur est retournée par la fonction SOAP, la valeur retournée de __soapCall sera une valeur simple (e.g. un entier, une chaîne de caractères, etc.). Si plusieurs valeurs sont retournées, __soapCall retournera un tableau associatif contenant les noms des paramètres affichés.

En cas d'erreur, si l'objet SoapClient a été construit avec l'option exceptions qui valait FALSE, un objet SoapFault sera retourné.

Exemples

Exemple #1 Exemple avec SoapClient::__soapCall()

<?php

$client = new SoapClient("some.wsdl");
$client->SomeFunction($a, $b, $c);

$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c), NULL,
                    new SoapHeader(), $output_headers);

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->SomeFunction($a, $b, $c);
$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c),
                    array('soapaction' => 'some_action',
                          'uri'        => 'some_uri'));
?>

Voir aussi

  • SoapClient::SoapClient() - Constructeur SoapClient
  • SoapParam::SoapParam() - Constructeur SoapParam
  • SoapVar::SoapVar() - Constructeur SoapVar
  • SoapHeader::SoapHeader() - SoapHeader constructor
  • SoapFault::SoapFault() - SoapFault constructor
  • is_soap_fault() - Vérifie si SOAP retourne une erreur


Constructeur SoapClient

  • « SoapClient::__soapCall
  • SoapServer »
  • PHP Manual
  • SoapClient
  • Constructeur SoapClient

SoapClient::SoapClient

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::SoapClient — Constructeur SoapClient

Description

public SoapClient::SoapClient ( mixed $wsdl [, array $options ] )

Ce constructeur crée des objets SoapClient dans le mode WSDL ou non-WSDL.

Liste de paramètres

wsdl

URI du fichier WSDL ou NULL s'il travaille en mode non-WSDL.

Note:

Durant le stage de développement, vous devriez vouloir désactiver le cache WSDL via l'option de configuration soap.wsdl_cache_ttl de votre php.ini, sinon, les modifications faites sur le fichier WSDL n'auront aucun effet tant que le cache soap.wsdl_cache_ttl n'aura pas expiré.

options

Un tableau d'options. Si l'on travaille en mode WSDL, ce paramètre est optionnel. En mode non-WSDL, Les options location et uri doivent être définies, où location est l'URL du serveur SOAP vers lequel la requète est envoyée, et uri est l'espace de noms cible du service SOAP.

Les options style et use ne fonctionnent que dans le mode non-WSDL. En mode WSDL, ils viennent du fichier WSDL.

L'option soap_version doit valoir la constante SOAP_1_1 ou la constante SOAP_1_2 pour sélectionner, respectivement, SOAP 1.1 ou SOAP 1.2. Si omis, SOAP 1.1 sera utilisé.

Pour les identifications HTTP, vous devez utiliser les options login et password. Pour effectuer une connexion HTTP via un proxy, utilisez les options proxy_host, proxy_port, proxy_login et proxy_password. Pour les identifications à l'aide d'un certificat d'un client HTTPS, utilisez les options local_cert et passphrase. Une authentification peut être spécifiée dans l'option authentication. La méthode d'authentification peut être SOAP_AUTHENTICATION_BASIC (par défaut) ou SOAP_AUTHENTICATION_DIGEST.

L'option compression permet d'utiliser la compression sur les requêtes et les réponses HTTP SOAP.

L'option encoding définit le jeu d'encodage des caractères internes. Cette option ne modifie pas l'encodage des requêtes SOAP (il est toujours utf-8), mais convertit les chaînes en utilisant ce dernier.

L'option trace active le suivi des requêtes pour permettre le retraçage des défauts. FALSE par défaut.

L'option classmap peut être utilisée pour lier quelques types WSDL avec des classes PHP. Cette option doit être un tableau avec les types WSDL en tant que clés et les noms des classes PHP en tant que valeurs.

Définir l'option trace active l'utilisation des méthodes

 SoapClient->__getLastRequest,

 SoapClient->__getLastRequestHeaders,

 SoapClient->__getLastResponse et

 SoapClient->__getLastResponseHeaders.

L'option exceptions est un booléen définissant si les erreurs SOAP doivent lancer des exceptions du type SoapFault.

L'option connection_timeout définit le délai de connexion en secondes pour la connexion au service SOAP. Cette option ne définit pas un délai de connexion pour les services avec des réponses lentes. Pour limiter la durée d'attente de fin des appels, l'option default_socket_timeout est disponible.

L'option typemap est un tableau dont les clés sont type_name, type_ns (URI de l'espace de noms), from_xml (fonction de rappel acceptant un paramètre de type chaîne) et to_xml (fonction de rappel acceptant un paramètre de type objet).

L'option cache_wsdl est une constante parmi WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY ou WSDL_CACHE_BOTH.

L'option user_agent spécifie la chaîne à utiliser dans l'en-tête User-Agent.

L'option stream_context est une ressource de contexte.

L'option features est un masque représentant les constantes SOAP_SINGLE_ELEMENT_ARRAYS, SOAP_USE_XSI_ARRAY_TYPE et, SOAP_WAIT_ONE_WAY_CALLS.

L'option keep_alive est un booléen définissant si l'on doit envoyer l'en-tête Connection: Keep-Alive ou l'en-tête Connection: close.

L'option ssl_method est une des constantes suivantes : SOAP_SSL_METHOD_TLS, SOAP_SSL_METHOD_SSLv2, SOAP_SSL_METHOD_SSLv3 ou SOAP_SSL_METHOD_SSLv23.

Erreurs / Exceptions

SoapClient::SoapClient() génèrera une erreur de type E_ERROR si les options location et uri ne sont pas fournies en mode non-WSDL.

Une exception de type SoapFault sera lancée si l'URI wsdl ne peut être chargée.

Historique

Version | Description
5.5.0 | Nouvelle option ssl_method.
5.4.0 | Ajout de l'option keep_alive.

Exemples

Exemple #1 Exemple avec SoapClient::SoapClient()

<?php

$client = new SoapClient("some.wsdl");

$client = new SoapClient("some.wsdl", array('soap_version'   => SOAP_1_2));

$client = new SoapClient("some.wsdl", array('login'          => "some_name",
                                            'password'       => "some_password"));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080,
                                            'proxy_login'    => "some_name",
                                            'proxy_password' => "some_password"));

$client = new SoapClient("some.wsdl", array('local_cert'     => "cert_key.pem"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/",
                                     'style'    => SOAP_DOCUMENT,
                                     'use'      => SOAP_LITERAL));

$client = new SoapClient("some.wsdl",
  array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));

$server = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));

class MyBook {
    public $title;
    public $author;
}

$server = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>


La classe SoapServer

(PHP 5 >= 5.0.1, PHP 7)

Introduction

La classe SoapServer fournit un serveur pour les protocoles » SOAP 1.1 et » SOAP 1.2. Il peut être utilisé avec ou sans fichier de description de service WSDL.

Synopsis de la classe

SoapServer {
/* Méthodes */
public void addFunction ( mixed $functions )
public void addSoapHeader ( SoapHeader $object )
public __construct ( mixed $wsdl [, array $options ] )
public void fault ( string $code , string $string [, string $actor [, string $details [, string $name ]]] )
public array getFunctions ( void )
public void handle ([ string $soap_request ] )
public void setClass ( string $class_name [, mixed $args [, mixed $... ]] )
public void setObject ( object $object )
public void setPersistence ( int $mode )
public SoapServer ( mixed $wsdl [, array $options ] )
}

Sommaire

  • SoapServer::addFunction — Ajoute une ou plusieurs fonctions qui vont gérer les requêtes SOAP
  • SoapServer::addSoapHeader — Ajoute un en-tête SOAP à une réponse
  • SoapServer::__construct — Constructeur SoapServer
  • SoapServer::fault — Emet une erreur SoapServer
  • SoapServer::getFunctions — Retourne la liste des fonctions définies
  • SoapServer::handle — Traite une requête SOAP
  • SoapServer::setClass — Configure la classe qui sera utilisée pour gérer les requêtes SOAP
  • SoapServer::setObject — Configure l'objet qui sera utilisé pour gérer les requêtes SOAP
  • SoapServer::setPersistence — Active le mode persistant de SoapServer
  • SoapServer::SoapServer — Constructeur SoapServer


Ajoute une ou plusieurs fonctions qui vont gérer les requêtes SOAP

  • « SoapServer
  • SoapServer::addSoapHeader »
  • PHP Manual
  • SoapServer
  • Ajoute une ou plusieurs fonctions qui vont gérer les requêtes SOAP

SoapServer::addFunction

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::addFunction — Ajoute une ou plusieurs fonctions qui vont gérer les requêtes SOAP

Description

public void SoapServer::addFunction ( mixed $functions )

Exporte une ou plusieurs fonctions pour les clients distants.

Liste de paramètres

functions

Pour exporter une seule fonction, il faut passer son nom dans ce paramètre en tant que chaîne de caractères.

Pour exporter plusieurs fonctions, il faut utiliser un tableau de noms de fonctions.

Pour exporter toutes les fonctions, il faut utiliser la constante spéciale SOAP_FUNCTIONS_ALL.

Note:

functions doit recevoir tous les arguments d'entrée dans le même ordre que celui défini dans le fichier WSDL (il ne doit recevoir aucun paramètre de sortie en tant qu'argument) et retourne une ou plusieurs valeurs. Pour retourner plusieurs valeurs, il doit retourner un tableau contenant le nom des paramètres de sortie.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SoapServer::addFunction()

<?php

function echoString($inputString)
{
    return $inputString;
}

$server->addFunction("echoString");

function echoTwoStrings($inputString1, $inputString2)
{
    return array("outputString1" => $inputString1,
                 "outputString2" => $inputString2);
}
$server->addFunction(array("echoString", "echoTwoStrings"));

$server->addFunction(SOAP_FUNCTIONS_ALL);

?>

Voir aussi

  • SoapServer::SoapServer() - Constructeur SoapServer
  • SoapServer::setClass() - Configure la classe qui sera utilisée pour gérer les requêtes SOAP


Ajoute un en-tête SOAP à une réponse

  • « SoapServer::addFunction
  • SoapServer::__construct »
  • PHP Manual
  • SoapServer
  • Ajoute un en-tête SOAP à une réponse

SoapServer::addSoapHeader

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::addSoapHeader — Ajoute un en-tête SOAP à une réponse

Description

public void SoapServer::addSoapHeader ( SoapHeader $object )

Ajoute un en-tête SOAP à la réponse courante.

Liste de paramètres

object

L'en-tête à renvoyer.

Valeurs de retour

Aucune valeur n'est retournée.


Constructeur SoapServer

  • « SoapServer::addSoapHeader
  • SoapServer::fault »
  • PHP Manual
  • SoapServer
  • Constructeur SoapServer

SoapServer::__construct

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::__construct — Constructeur SoapServer

Description

public SoapServer::__construct ( mixed $wsdl [, array $options ] )

Cette fonction est un alias de : SoapServer::SoapServer()


Emet une erreur SoapServer

  • « SoapServer::__construct
  • SoapServer::getFunctions »
  • PHP Manual
  • SoapServer
  • Emet une erreur SoapServer

SoapServer::fault

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::fault — Emet une erreur SoapServer

Description

public void SoapServer::fault ( string $code , string $string [, string $actor [, string $details [, string $name ]]] )

Envoie une réponse au client de la requête courante, avec un message d'erreur.

Note:

Cela n'est possible que durant l'exécution de la requête.

Liste de paramètres

code

Le code d'erreur à retourner.

string

Une description de l'erreur.

actor

Une chaîne identifiant l'acteur en cause.

details

Plus de détails sur la faute.

name

Le nom de l'erreur. Cela peut être utilisé pour sélectionner un nom dans un fichier WSDL.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SoapFault::SoapFault() - SoapFault constructor


Retourne la liste des fonctions définies

  • « SoapServer::fault
  • SoapServer::handle »
  • PHP Manual
  • SoapServer
  • Retourne la liste des fonctions définies

SoapServer::getFunctions

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::getFunctions — Retourne la liste des fonctions définies

Description

public array SoapServer::getFunctions ( void )

SoapServer::getFunctions() retourne la liste de toutes les fonctions ajoutées à l'objet serveur SoapServer. Elle retourne la liste de toutes les fonctions ajoutées à l'aide des méthodes SoapServer::addFunction() et SoapServer::setClass().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de toutes les fonctions.

Exemples

Exemple #1 Exemple avec SoapServer::getFunctions()

<?php
$server = new SoapServer(NULL, array("uri" => "http://test-uri"));
$server->addFunction(SOAP_FUNCTIONS_ALL);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $server->handle();
} else {
  echo "Ce serveur SOAP peut gérer les fonctions suivantes : ";
  $functions = $server->getFunctions();
  foreach($functions as $func) {
    echo $func . "\n";
  }
}
?>

Voir aussi

  • SoapServer::SoapServer() - Constructeur SoapServer
  • SoapServer::addFunction() - Ajoute une ou plusieurs fonctions qui vont gérer les requêtes SOAP
  • SoapServer::setClass() - Configure la classe qui sera utilisée pour gérer les requêtes SOAP


Traite une requête SOAP

  • « SoapServer::getFunctions
  • SoapServer::setClass »
  • PHP Manual
  • SoapServer
  • Traite une requête SOAP

SoapServer::handle

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::handle — Traite une requête SOAP

Description

public void SoapServer::handle ([ string $soap_request ] )

Effectue une requête SOAP, appelle les fonctions nécessaires et envoie une réponse en retour.

Liste de paramètres

soap_request

La requête SOAP. Si cet argument est omis, la requête est supposée être dans les données POST brûtes de la requête HTTP.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec SoapServer::handle()

<?php
function test($x)
{
    return $x;
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Voir aussi

  • SoapServer::SoapServer() - Constructeur SoapServer


Configure la classe qui sera utilisée pour gérer les requêtes SOAP

  • « SoapServer::handle
  • SoapServer::setObject »
  • PHP Manual
  • SoapServer
  • Configure la classe qui sera utilisée pour gérer les requêtes SOAP

SoapServer::setClass

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::setClass — Configure la classe qui sera utilisée pour gérer les requêtes SOAP

Description

public void SoapServer::setClass ( string $class_name [, mixed $args [, mixed $... ]] )

Exporte toute les méthodes de la classe spécifiée.

SoapServer::setClass() configure une classe qui servira de gestionnaire aux requêtes SOAP. L'objet pourra alors être rendu persistant à travers les requêtes pour une session PHP, avec la méthode SoapServer::setPersistence().

Liste de paramètres

class_name

Le nom de la classe exportée.

args

Ces paramètres optionnels seront passé par défaut au constructeur de la classe, durant la phase de création de l'objet.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SoapServer::SoapServer() - Constructeur SoapServer
  • SoapServer::addFunction() - Ajoute une ou plusieurs fonctions qui vont gérer les requêtes SOAP
  • SoapServer::setPersistence() - Active le mode persistant de SoapServer


Configure l'objet qui sera utilisé pour gérer les requêtes SOAP

  • « SoapServer::setClass
  • SoapServer::setPersistence »
  • PHP Manual
  • SoapServer
  • Configure l'objet qui sera utilisé pour gérer les requêtes SOAP

SoapServer::setObject

(PHP 5 >= 5.2.0, PHP 7)

SoapServer::setObject — Configure l'objet qui sera utilisé pour gérer les requêtes SOAP

Description

public void SoapServer::setObject ( object $object )

SoapServer::setObject() configure un objet qui servira de gestionnaire aux requêtes SOAP, plutôt qu'une simple classe, comme avec SoapServer::setClass().

Liste de paramètres

object

L'objet qui va gérer les requêtes.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • SoapServer::setClass() - Configure la classe qui sera utilisée pour gérer les requêtes SOAP


Active le mode persistant de SoapServer

  • « SoapServer::setObject
  • SoapServer::SoapServer »
  • PHP Manual
  • SoapServer
  • Active le mode persistant de SoapServer

SoapServer::setPersistence

(PHP 5 >= 5.1.2, PHP 7)

SoapServer::setPersistence — Active le mode persistant de SoapServer

Description

public void SoapServer::setPersistence ( int $mode )

Cette fonction permet de changer la persistance d'un objet SoapServer entre les requêtes. Elle permet de sauvegarder les données entre les requêtes, au moyen des sessions PHP. Cette fonction n'a d'effet qu'après avoir exporté la liste des fonctions au moyen de SoapServer::setClass().

Note:

La constante de persistence SOAP_PERSISTENCE_SESSION rend uniquement les objets de la classe donnée persistants, mais non pas les données statiques. Dans ce cas, $this->bar au lieu de self::$bar.

Note:

SOAP_PERSISTENCE_SESSION serialise les données de l'objet entre les requêtes. Dans le cas des ressources, (par exemple PDO), __wakeup() et __sleep() devraient être utilisées.

Liste de paramètres

mode

Une des constantes suivantes :

SOAP_PERSISTENCE_REQUEST - Les données de SoapServer ne sont pas persistantes entre les requêtes. C'est le comportement par défaut de tout objet SoapServer après appel à setClass().

SOAP_PERSISTENCE_SESSION - Les données de SoapServer persistent entre les requêtes. Ceci est réalisé en linéarisant les données de la classe SoapServer dans $_SESSION['_bogus_session_name'], et ainsi session_start() doit être appelée avant de passer sous ce mode de persistance.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple SoapServer::setPersistence()

<?php
 class MyFirstPersistentSoapServer {
     private $resource; // (Par exemple PDO, mysqli, etc..)
     public $myvar1;
     public $myvar2;

     public function __construct() {
         $this->__wakeup(); // On appelle notre wakeup pour relancer notre ressource
     }

     public function __wakeup() {
         $this->resource = CodeToStartOurResourceUp();
     }

     public function __sleep() {
         // On s'assure d'enlever $resource ici, ainsi nos données peuvent persister en session
         // Si on oublie, la désérialisation lors de la prochaine requête échouera et notre objet
         // SoapObject ne sera donc pas persistant entre les requêtes.
         return array('myvar1','myvar2');
     }
 }

 try {
     session_start();
     $server = new SoapServer(null, array('uri' => $_SERVER['REQUEST_URI']));
     $server->setClass('MyFirstPersistentSoapServer');
     // setPersistence() DOIT être appelée après setClass(), car le comportement de setClass()
     // affecte SESSION_PERSISTENCE_REQUEST.
     $server->setPersistence(SOAP_PERSISTENCE_SESSION);
     $server->handle();
 } catch(SoapFault $e) {
     error_log("SOAP ERROR: ". $e->getMessage());
 }
?>

Voir aussi

  • SoapServer::setClass() - Configure la classe qui sera utilisée pour gérer les requêtes SOAP


Constructeur SoapServer

  • « SoapServer::setPersistence
  • SoapFault »
  • PHP Manual
  • SoapServer
  • Constructeur SoapServer

SoapServer::SoapServer

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::SoapServer — Constructeur SoapServer

Description

public SoapServer::SoapServer ( mixed $wsdl [, array $options ] )

Ce constructeur permet la création d'objets SoapServer en mode WSDL ou non-WSDL.

Liste de paramètres

wsdl

Pour utiliser le mode WSDL, il faut définir l'URI du fichier WSDL dans ce paramètre. Avec les autres situations, il faut définir ce paramètre à NULL et définir l'option uri.

options

Permet de définir une version SOAP par défaut (soap_version), un jeu de caractères d'encodage interne (encoding) et un URI acteur (actor).

L'option classmap peut être utilisée pour lier quelques types WSDL à des classes PHP. Cette option doit être un tableau avec les types WSDL en tant que clés et les noms des classes PHP en tant que valeurs.

L'option typemap est un tableau dont les clés sont type_name, type_ns (URI de l'espace de noms), from_xml (fonction de rappel acceptant un paramètre de type chaîne de caractères) et to_xml (fonction de rappel acceptant un paramètre de type objet).

L'option cache_wsdl prend une des valeurs WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY ou WSDL_CACHE_BOTH.

La dernière option est features qui peut être défini à SOAP_WAIT_ONE_WAY_CALLS, SOAP_SINGLE_ELEMENT_ARRAYS, SOAP_USE_XSI_ARRAY_TYPE.

L'option send_errors peut être défini à FALSE pour envoyer un message d'erreur générique ("Internal error") au lieu du message d'erreur spécifique.

Exemples

Exemple #1 Exemples avec SoapServer

<?php

$server = new SoapServer("fichier.wsdl");

$server = new SoapServer("fichier.wsdl", array('soap_version' => SOAP_1_2));

$server = new SoapServer("fichier.wsdl", array('actor' => "http://example.org/ts-tests/C"));

$server = new SoapServer("fichier.wsdl", array('encoding'=>'ISO-8859-1'));

$server = new SoapServer(null, array('uri' => "http://test-uri/"));

class MonLivre {
        public $titre;
        public $auteur;
}

$server = new SoapServer("livre.wsdl", array('classmap' => array('book' => "MonLivre")));

?>

Historique

Version | Description
5.2.0 | Ajout de l'option typemap.

Voir aussi

  • SoapClient::SoapClient() - Constructeur SoapClient


La classe SoapFault

(PHP 5 >= 5.0.1, PHP 7)

Introduction

Représente une erreur SOAP.

Synopsis de la classe

SoapFault extends Exception {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes */
__construct ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )
SoapFault ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )
public string __toString ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Sommaire

  • SoapFault::__construct — Constructeur SoapFault
  • SoapFault::SoapFault — SoapFault constructor
  • SoapFault::__toString — Produit une représentation chaîne d'un objet SoapFault


Constructeur SoapFault

  • « SoapFault
  • SoapFault::SoapFault »
  • PHP Manual
  • SoapFault
  • Constructeur SoapFault

SoapFault::__construct

(PHP 5 >= 5.0.1, PHP 7)

SoapFault::__construct — Constructeur SoapFault

Description

SoapFault::__construct ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )

Cette fonction est un alias de : SoapFault::SoapFault()


SoapFault constructor

  • « SoapFault::__construct
  • SoapFault::__toString »
  • PHP Manual
  • SoapFault
  • SoapFault constructor

SoapFault::SoapFault

(PHP 5 >= 5.0.1, PHP 7)

SoapFault::SoapFault — SoapFault constructor

Description

SoapFault::SoapFault ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )

SoapFault sert à envoyer des erreurs SOAP depuis le PHP.faultcode, faultstring, faultactor et detail sont les éléments standards SOAP.

Liste de paramètres

faultcode

Le code erreur de SoapFault.

faultstring

Le message d'erreur de SoapFault.

faultactor

Une chaîne identifiant l'acteur qui a causé l'erreur.

detail

faultname

Peut être utilisé pour sélectionner l'encodage qui convient depuis WSDL.

headerfault

Peut être utilisé durant la gestion de l'entête SOAP pour rapporter une erreur dans l'en-tête de réponse.

Exemples

Exemple #1 Quelques exemples avec SoapFault

<?php
function test($x)
{
    return new SoapFault("Server", "Un message d'erreur");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Il est possible d'utiliser le mécanisme des exceptions de PHP pour lancer des exceptions SoapFault.

Exemple #2 Emission d'exceptions SoapFault

<?php
function test($x)
{
    throw new SoapFault("Server", "Un message d'erreur");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Voir aussi

  • SoapServer::fault() - Emet une erreur SoapServer
  • is_soap_fault() - Vérifie si SOAP retourne une erreur


Produit une représentation chaîne d'un objet SoapFault

  • « SoapFault::SoapFault
  • SoapHeader »
  • PHP Manual
  • SoapFault
  • Produit une représentation chaîne d'un objet SoapFault

SoapFault::__toString

(PHP 5 >= 5.0.1, PHP 7)

SoapFault::__toString — Produit une représentation chaîne d'un objet SoapFault

Description

public string SoapFault::__toString ( void )

Retourne une représentation en chaîne de l'objet SoapFault.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne décrivant l'objet SoapFault.


La classe SoapHeader

(PHP 5 >= 5.0.1, PHP 7)

Introduction

Représente un entête SOAP.

Synopsis de la classe

SoapHeader {
/* Méthodes */
__construct ( string $namespace , string $name [, mixed $data [, bool $mustunderstand [, string $actor ]]] )
SoapHeader ( string $namespace , string $name [, mixed $data [, bool $mustunderstand = false [, string $actor ]]] )
}

Sommaire

  • SoapHeader::__construct — Constructeur SoapHeader
  • SoapHeader::SoapHeader — SoapHeader constructor


Constructeur SoapHeader

  • « SoapHeader
  • SoapHeader::SoapHeader »
  • PHP Manual
  • SoapHeader
  • Constructeur SoapHeader

SoapHeader::__construct

(PHP 5 >= 5.0.1, PHP 7)

SoapHeader::__construct — Constructeur SoapHeader

Description

SoapHeader::__construct ( string $namespace , string $name [, mixed $data [, bool $mustunderstand [, string $actor ]]] )

Cette fonction est un alias de : SoapHeader::SoapHeader()


SoapHeader constructor

  • « SoapHeader::__construct
  • SoapParam »
  • PHP Manual
  • SoapHeader
  • SoapHeader constructor

SoapHeader::SoapHeader

(PHP 5 >= 5.0.1, PHP 7)

SoapHeader::SoapHeader — SoapHeader constructor

Description

SoapHeader::SoapHeader ( string $namespace , string $name [, mixed $data [, bool $mustunderstand = false [, string $actor ]]] )

Construit un nouvel objet SoapHeader.

Liste de paramètres

namespace

L'espace de noms de l'élément d'entête SOAP.

name

Le nom de l'élément d'entête SOAP.

data

Un contenu de l'en-tête SOAP. Il peut être une valeur PHP ou un objet SoapVar.

mustUnderstand

Valeur de l'attribut mustUnderstand de l'élément d'entête SOAP.

actor

Valeur de l'attribut actor de l'élément d'entête SOAP.

Exemples

Exemple #1 Exemple simple avec SoapHeader

<?php
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->__soapCall("echoVoid", null, null,
                new SoapHeader('http://soapinterop.org/echoheader/',
                               'echoMeStringRequest',
                               'hello world'));
?>

Voir aussi

  • SoapClient::__soapCall() - Appelle une fonction SOAP
  • SoapVar::SoapVar() - Constructeur SoapVar
  • SoapParam::SoapParam() - Constructeur SoapParam
  • SoapServer::addSoapHeader() - Ajoute un en-tête SOAP à une réponse


La classe SoapParam

(PHP 5 >= 5.0.1, PHP 7)

Introduction

Représente un paramètre dans un appel SOAP.

Synopsis de la classe

SoapParam {
/* Méthodes */
__construct ( mixed $data , string $name )
SoapParam ( mixed $data , string $name )
}

Sommaire

  • SoapParam::__construct — Constructeur SoapParam
  • SoapParam::SoapParam — Constructeur SoapParam


Constructeur SoapParam

  • « SoapParam
  • SoapParam::SoapParam »
  • PHP Manual
  • SoapParam
  • Constructeur SoapParam

SoapParam::__construct

(PHP 5 >= 5.0.1, PHP 7)

SoapParam::__construct — Constructeur SoapParam

Description

SoapParam::__construct ( mixed $data , string $name )

Cette fonction est un alias de : SoapParam::SoapParam()


Constructeur SoapParam

  • « SoapParam::__construct
  • SoapVar »
  • PHP Manual
  • SoapParam
  • Constructeur SoapParam

SoapParam::SoapParam

(PHP 5 >= 5.0.1, PHP 7)

SoapParam::SoapParam — Constructeur SoapParam

Description

SoapParam::SoapParam ( mixed $data , string $name )

Construit un nouvel objet SoapParam.

Liste de paramètres

data

Les données à passer ou à retourner. Vous pouvez passer ce paramètre directement en tant qu'une valeur PHP, mais dans ce cas, il sera nommé paramN et le service SOAP ne le comprendra pas.

name

Le nom du paramètre.

Exemples

Exemple #1 Quelques exemples

<?php
$client = new SoapClient(null,array('location' => "http://localhost/soap.php",
                                    'uri'      => "http://test-uri/"));
$client->SomeFunction(new SoapParam($a, "a"),
                      new SoapParam($b, "b"),
                      new SoapParam($c, "c"));
?>

Voir aussi

  • SoapClient::__soapCall() - Appelle une fonction SOAP
  • SoapVar::SoapVar() - Constructeur SoapVar


La classe SoapVar

(PHP 5 >= 5.0.1, PHP 7)

Introduction

Une classe représentant une variable ou un objet qui utilise des services SOAP.

Synopsis de la classe

SoapVar {
/* Méthodes */
__construct ( string $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )
SoapVar ( mixed $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )
}

Sommaire

  • SoapVar::__construct — Constructeur SoapVar
  • SoapVar::SoapVar — Constructeur SoapVar


Constructeur SoapVar

  • « SoapVar
  • SoapVar::SoapVar »
  • PHP Manual
  • SoapVar
  • Constructeur SoapVar

SoapVar::__construct

(PHP 5 >= 5.0.1, PHP 7)

SoapVar::__construct — Constructeur SoapVar

Description

SoapVar::__construct ( string $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )

Cette fonction est un alias de : SoapVar::SoapVar()


Constructeur SoapVar

  • « SoapVar::__construct
  • Yar »
  • PHP Manual
  • SoapVar
  • Constructeur SoapVar

SoapVar::SoapVar

(PHP 5 >= 5.0.1, PHP 7)

SoapVar::SoapVar — Constructeur SoapVar

Description

SoapVar::SoapVar ( mixed $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )

Construit un nouvel objet SoapVar.

Liste de paramètres

data

Les données à passer ou à retourner.

encoding

L'ID d'encodage, une des constantes XSD_....

type_name

Le nom du type.

type_namespace

Le type de l'espace de noms.

node_name

Le nom du noeud XML.

node_namespace

L'espace de noms du noeud XML.

Exemples

Exemple #1 Exemple avec SoapVar::SoapVar()

<?php
class SOAPStruct {
    function SOAPStruct($s, $i, $f)
    {
        $this->varString = $s;
        $this->varInt = $i;
        $this->varFloat = $f;
    }
}
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$struct = new SOAPStruct('arg', 34, 325.325);
$soapstruct = new SoapVar($struct, SOAP_ENC_OBJECT, "SOAPStruct", "http://soapinterop.org/xsd");
$client->echoStruct(new SoapParam($soapstruct, "inputStruct"));
?>

Voir aussi

  • SoapClient::__soapCall() - Appelle une fonction SOAP
  • SoapParam::SoapParam() - Constructeur SoapParam


Yet Another RPC Framework

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Yar_Server — La classe Yar_Server
    • Yar_Server::__construct — Enregistre un serveur
    • Yar_Server::handle — Démarre un serveur RPC
  • Yar_Client — La classe Yar_Client
    • Yar_Client::__call — Service d'appel
    • Yar_Client::__construct — Crée un client
    • Yar_Client::setOpt — Défini le contexte d'appel
  • Yar_Concurrent_Client — La classe Yar_Concurrent_Client
    • Yar_Concurrent_Client::call — Enregistre un appel concurrent
    • Yar_Concurrent_Client::loop — Envoi tous les appels
    • Yar_Concurrent_Client::reset — Clean all registered calls
  • Yar_Server_Exception — La classe Yar_Server_Exception
    • Yar_Server_Exception::getType — Le but de getType
  • Yar_Client_Exception — La classe Yar_Client_Exception
    • Yar_Client_Exception::getType — Le but de getType


Introduction

Yar est un framework RPC qui a pour but de fournir une façon simple de communication entre les applications PHP. Il apporte la possibilité d'appeler plusieurs services distants simultanément.


Pré-requis

Si vous voulez utiliser msgpack comme packager, vous devez compiler Yar vous même avec l'option de configuration ./configure --enable-msgpack


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/yar.

Aucune bibliothèque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous à la section Compilation sous Windows.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Yar
Nom | Défaut | Modifiable | Historique
yar.packager | php | PHP_INI_SYSTEM |
yar.debug | Off | PHP_INI_ALL |
yar.connect_timeout | 1000 | PHP_INI_ALL |
yar.timeout | 5000 | PHP_INI_ALL |
yar.expose_info | On | PHP_INI_SYS |

Voici un éclaircissement sur l'utilisation des directives de configuration.

yar.packager string

peut être php, json, et msgpack (nécessite une compilation avec le support msgpack)

yar.debug string

yar.connect_timeout integer

délai d'attente maximal en ms

yar.timeout integer

délai d'attente maximal en ms

yar.expose_info bool

si l'on doit ou non exposer les informations du service (lors de l'accès au serveur via GET)


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

YAR_VERSION (string)
YAR_CLIENT_PROTOCOL_HTTP (integer)
YAR_CLIENT_OPT_PACKAGER (integer)
YAR_CLIENT_OPT_TIMEOUT (integer)
YAR_CLIENT_OPT_CONNECT_TIMEOUT (integer)
YAR_PACKAGER_PHP (string)
YAR_PACKAGER_JSON (string)
YAR_ERR_OKEY (integer)
YAR_ERR_OUTPUT (integer)
YAR_ERR_TRANSPORT (integer)
YAR_ERR_REQUEST (integer)
YAR_ERR_PROTOCOL (integer)
YAR_ERR_PACKAGER (integer)
YAR_ERR_EXCEPTION (integer)


Exemples

Exemple #1 Exemple de serveur Yar

<?php

/* supposons que cette page est accessible via l'URL http://example.com/operator.php */

class Operator {

    /**
     * Ajout de deux opérandes
     * @param interge
     * @return interge
     */
    public function add($a, $b) {
        return $this->_add($a, $b);
    }

    /**
     * Sub
     */
    public function sub($a, $b) {
        return $a - $b;
    }

    /**
     * Mul
     */
    public function mul($a, $b) {
        return $a * $b;
    }

    /**
     * Les méthodes protégées ne seront pas exposées
     * @param interge
     * @return interge
     */
    protected function _add($a, $b) {
        return $a + $b;
    }
}

$server = new Yar_Server(new Operator());
$server->handle();
?>

Exemple #2 Accès au serveur depuis un navigateur (requête GET)

L'exemple ci-dessus va afficher quelque chose de similaire à :

Information du serveur Yar

Exemple #3 Exemple de client Yar

<?php
$client = new yar_client("http://example.com/operator.php");

/* Appel direct */
var_dump($client->add(1, 2));

/* Appel via un appel */
var_dump($client->call("add", array(3, 2)));

/* la méthode __add ne peut être appelée */
var_dump($client->_add(1, 2));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)
int(5)
PHP Fatal error:  Uncaught exception 'Yar_Server_Exception' with message 'call to api Operator::_add() failed' in *

Exemple #4 Exemple de client Yar concurrent

<?php
function callback($ret, $callinfo) {
    echo $callinfo['method'] , " result: ", $ret , "\n";
}

/* enregistre l'appel async aux services distants */
Yar_Concurrent_Client::call("http://example.com/operator.php", "add", array(1, 2), "callback");
Yar_Concurrent_Client::call("http://example.com/operator.php", "sub", array(2, 1), "callback");
Yar_Concurrent_Client::call("http://example.com/operator.php", "mul", array(2, 2), "callback");

/* envoi toutes les requêtes et attend les réponses */
Yar_Concurrent_Client::loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

mul result: 4
sub result: 1
add result: 3


La classe Yar_Server

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

Yar_Server {
/* Propriétés */
protected $_executor ;
/* Méthodes */
final public __construct ( Object $obj )
public boolean handle ( void )
}

Propriétés

_executor

Sommaire

  • Yar_Server::__construct — Enregistre un serveur
  • Yar_Server::handle — Démarre un serveur RPC


Enregistre un serveur

  • « Yar_Server
  • Yar_Server::handle »
  • PHP Manual
  • Yar_Server
  • Enregistre un serveur

Yar_Server::__construct

(PECL yar >= 1.0.0)

Yar_Server::__construct — Enregistre un serveur

Description

final public Yar_Server::__construct ( Object $obj )

Configure un serveur Yar HTTP RPC. Toutes les méthodes publiques de l'objet $obj seront enregistrées comme un service RPC.

Liste de paramètres

obj

Un objet. Toutes les méthodes publiques de cet objet seront enregistrées comme services RPC.

Valeurs de retour

Une instance de la classe Yar_Server.

Exemples

Exemple #1 Exemple avec Yar_Server::__construct()

<?php
class API {
    /**
     * les informations seront générées automatiquement sur la page d'information du service.
     * @params
     * @return
     */
    public function some_method($parameter, $option = "foo") {
         return "some_method";
    }

    protected function client_can_not_see() {
    }
}

$service = new Yar_Server(new API());
$service->handle();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  • Yar_Server::handle() - Démarre un serveur RPC
    •


Démarre un serveur RPC

  • « Yar_Server::__construct
  • Yar_Client »
  • PHP Manual
  • Yar_Server
  • Démarre un serveur RPC

Yar_Server::handle

(PECL yar >= 1.0.0)

Yar_Server::handle — Démarre un serveur RPC

Description

public boolean Yar_Server::handle ( void )

Démarre un serveur RPC HTTP, et le rend prêt à accepter des requêtes RPC.

Note:

Les appels RPC sont envoyés par des requêtes HTTP POST. Si une requête HTTP GET est envoyé à l'URI, les informations du service (commenté dans la section ci-dessous) seront affichées sur la page.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen.

Exemples

Exemple #1 Exemple avec Yar_Server::handle()

<?php
class API {
    /**
     * les informations seront générées automatiquement sur la page d'informations du service.
     * @params
     * @return
     */
    public function some_method($parameter, $option = "foo") {
    }

    protected function client_can_not_see() {
    }
}

$service = new Yar_Server(new API());
$service->handle();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  • Yar_Server::__construct() - Enregistre un serveur
    •


La classe Yar_Client

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

Yar_Client {
/* Propriétés */
protected $_protocol ;
protected $_uri ;
protected $_options ;
protected $_running ;
/* Méthodes */
public void __call ( string $method , array $parameters )
final public __construct ( string $url )
public boolean setOpt ( number $name , mixed $value )
}

Propriétés

_protocol

_uri

_options

_running

Sommaire

  • Yar_Client::__call — Service d'appel
  • Yar_Client::__construct — Crée un client
  • Yar_Client::setOpt — Défini le contexte d'appel


Service d'appel

  • « Yar_Client
  • Yar_Client::__construct »
  • PHP Manual
  • Yar_Client
  • Service d'appel

Yar_Client::__call

(PECL yar >= 1.0.0)

Yar_Client::__call — Service d'appel

Description

public void Yar_Client::__call ( string $method , array $parameters )

Envoi un appel à la méthode RPC distante.

Liste de paramètres

method

Nom de la méthode RPC distante.

parameters

Paramètres.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yar_Client::__call()

<?php

$client = new Yar_Client("http://host/api/");

/* Appel un service distant */
$result = $client->some_method("parameter");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  • Yar_Client::setOpt() - Défini le contexte d'appel
    •


Crée un client

  • « Yar_Client::__call
  • Yar_Client::setOpt »
  • PHP Manual
  • Yar_Client
  • Crée un client

Yar_Client::__construct

(PECL yar >= 1.0.0)

Yar_Client::__construct — Crée un client

Description

final public Yar_Client::__construct ( string $url )

Crée un Yar_Client sur un serveur Yar_Server.

Liste de paramètres

url

URL du serveur Yar.

Valeurs de retour

Une instance Yar_Client.

Exemples

Exemple #1 Exemple avec Yar_Client::__construct()

<?php
$client = new Yar_Client("http://host/api/");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  • Yar_Client::__call() - Service d'appel
    •

  • Yar_Client::setOpt() - Défini le contexte d'appel
    •


Défini le contexte d'appel

  • « Yar_Client::__construct
  • Yar_Concurrent_Client »
  • PHP Manual
  • Yar_Client
  • Défini le contexte d'appel

Yar_Client::setOpt

(PECL yar >= 1.0.0)

Yar_Client::setOpt — Défini le contexte d'appel

Description

public boolean Yar_Client::setOpt ( number $name , mixed $value )

Liste de paramètres

name

Peut être : YAR_OPT_PACKAGER, YAR_OPT_PERSISTENT (à besoin du support serveur), YAR_OPT_TIMEOUT, YAR_OPT_CONNECT_TIMEOUT

value

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yar_Client::setOpt()

<?php

$cient = new Yar_Client("http://host/api/");

//Défini le délai d'attente maximal à 1s
$client->SetOpt(YAR_OPT_CONNECT_TIMEOUT, 1000);

//Défini le packager à JSON
$client->SetOpt(YAR_OPT_PACKAGER, "json");

/* Appel le service distant */
$result = $client->some_method("parameter");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  • Yar_Client::__call() - Service d'appel
    •


La classe Yar_Concurrent_Client

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

Yar_Concurrent_Client {
/* Propriétés */
static $_callstack ;
static $_callback ;
static $_error_callback ;
/* Méthodes */
public static int call ( string $uri , string $method , array $parameters [, callable $callback ] )
public static boolean loop ([ callable $callback [, callable $error_callback ]] )
public static boolean reset ( void )
}

Propriétés

_callstack

_callback

_error_callback

Sommaire

  • Yar_Concurrent_Client::call — Enregistre un appel concurrent
  • Yar_Concurrent_Client::loop — Envoi tous les appels
  • Yar_Concurrent_Client::reset — Clean all registered calls


Enregistre un appel concurrent

  • « Yar_Concurrent_Client
  • Yar_Concurrent_Client::loop »
  • PHP Manual
  • Yar_Concurrent_Client
  • Enregistre un appel concurrent

Yar_Concurrent_Client::call

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::call — Enregistre un appel concurrent

Description

public static int Yar_Concurrent_Client::call ( string $uri , string $method , array $parameters [, callable $callback ] )

Enregistre un appel RPC, mais ne l'envoie pas immédiatement ; il sera envoyé pendant l'appel à la méthode Yar_Concurrent_Client::loop()

Liste de paramètres

uri

L'URI du serveur RPC (http, tcp)

method

Nom du service (i.e. le nom de la méthode)

parameters

Paramètres

callback

Une fonction de rappel, qui sera appelée par le retour de la réponse.

Valeurs de retour

Un ID unique ; peut être utilisé pour identifier l'appel.

Exemples

Exemple #1 Exemple avec Yar_Concurrent_Client::call()

<?php
function callback($retval, $callinfo) {
     var_dump($retval);
}

function error_callback($type, $error, $callinfo) {
    error_log($error);
}

Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback");
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"));   // si la fonction de rappel n'est pas spécifiée,
                                                                               // la fonction de rappel de la boucle sera utilisée
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
                                                                               // ce serveur accepte le packager json
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
                                                                               // Délai d'attente maximal personnalisé

//Les requêtes ne sont pas envoyées pour le moment
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  • Yar_Concurrent_Client::loop() - Envoi tous les appels
    •

  • Yar_Concurrent_Client::reset() - Clean all registered calls
    •

  • Yar_Server::__construct() - Enregistre un serveur
    •

  • Yar_Server::handle() - Démarre un serveur RPC
    •


Envoi tous les appels

  • « Yar_Concurrent_Client::call
  • Yar_Concurrent_Client::reset »
  • PHP Manual
  • Yar_Concurrent_Client
  • Envoi tous les appels

Yar_Concurrent_Client::loop

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::loop — Envoi tous les appels

Description

public static boolean Yar_Concurrent_Client::loop ([ callable $callback [, callable $error_callback ]] )

Envoi tous les appels distants RPC enregistrés.

Liste de paramètres

callback

Si la fonction de rappel est définie, alors Yar appelera cette fonction de rappel après avoir envoyé tous les appels, et avant le retour des réponses, avec $callinfo vallant NULL.

Alors, si l'utilisateur ne spécifie pas de fonction de rappel lors de l'enregistrement d'appel concurrent, cette fonction de rappel sera utilisée pour gérer les réponses, sinon, la fonction de rappel spécifiée pendant l'enregistrement sera utilisée.

error_callback

Si la fonction de rappel est définie, alors Yar l'appelera lorsqu'une erreur surviendra.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yar_Concurrent_Client::loop()

<?php
function callback($retval, $callinfo) {
     if ($callinfo == NULL) {
        echo "Maintenant, toutes les requêtes ont été émises, et aucune réponse n'est pour l'instant disponible\n";
     } else {
        echo "Ceci est une réponse à un appel distant, le nom de la méthode est ", $callinfo["method"],
             ". La séquence d'appel est " , $callinfo["sequence"] , "\n";
        var_dump($retval);
     }
}

function error_callback($type, $error, $callinfo) {
    error_log($error);
}

Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback");
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"));   // Si la fonction de rappel n'est pas spécifiée
                                                                               // la fonction de rappel de la boucle sera utilisée
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
                                                                               // ce serveur accepte le packager json
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
                                                                               //Délai d'attente maximal personnalisé

Yar_Concurrent_Client::loop("callback", "error_callback"); //Envoi les requêtes,
                                                           //error_callback est optionnel
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Maintenant, toutes les requêtes ont été émises, et aucune réponse n'est pour l'instant disponible
Ceci est une réponse à un appel distant, le nom de la méthode est some_method. La séquence d'appel est 4
string(11) "some_method"
Ceci est une réponse à un appel distant, le nom de la méthode est some_method. La séquence d'appel est 1
string(11) "some_method"
Ceci est une réponse à un appel distant, le nom de la méthode est some_method. La séquence d'appel est 2
string(11) "some_method"
Ceci est une réponse à un appel distant, le nom de la méthode est some_method. La séquence d'appel est 3
string(11) "some_method"

Voir aussi

  • Yar_Concurrent_Client::call() - Enregistre un appel concurrent
  • Yar_Concurrent_Client::reset() - Clean all registered calls
  • Yar_Server::__construct() - Enregistre un serveur
  • Yar_Server::handle() - Démarre un serveur RPC


Clean all registered calls

  • « Yar_Concurrent_Client::loop
  • Yar_Server_Exception »
  • PHP Manual
  • Yar_Concurrent_Client
  • Clean all registered calls

Yar_Concurrent_Client::reset

(No version information available, might only be in Git)

Yar_Concurrent_Client::reset — Clean all registered calls

Description

public static boolean Yar_Concurrent_Client::reset ( void )

Clean all registered calls

Liste de paramètres

Valeurs de retour

Exemples

Exemple #1 Yar_Concurrent_Client::reset() example

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

  • Yar_Concurrent_Client::call() - Enregistre un appel concurrent
    •

  • Yar_Concurrent_Client::loop() - Envoi tous les appels
    •

  • Yar_Server::__construct() - Enregistre un serveur
    •

  • Yar_Server::handle() - Démarre un serveur RPC
    •


La classe Yar_Server_Exception

(No version information available, might only be in Git)

Introduction

If service threw exceptions, A Yar_Server_Exception will be threw in client side.

Synopsis de la classe

Yar_Server_Exception extends Exception {
/* Propriétés */
protected $_type ;
/* Méthodes */
public string getType ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

message

code

file

line

_type

Sommaire

  • Yar_Server_Exception::getType — Le but de getType


Le but de getType

  • « Yar_Server_Exception
  • Yar_Client_Exception »
  • PHP Manual
  • Yar_Server_Exception
  • Le but de getType

Yar_Server_Exception::getType

(PECL yar >= 1.0.0)

Yar_Server_Exception::getType — Le but de getType

Description

public string Yar_Server_Exception::getType ( void )

Récupère le type de l'exception émise par le serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères.

Exemples

Exemple #1 Exemple avec Yar_Server_Exception::getType()

//Server.php
<?php
class Custom_Exception extends Exception {};

class API {
    public function throw_exception($name) {
        throw new Custom_Exception($name);
    }
}

$service = new Yar_Server(new API());
$service->handle();
?>

//Client.php
<?php
$client = new Yar_Client("http://host/api.php");

try {
    $client->throw_exception("client");
} catch (Yar_Server_Exception $e) {
    var_dump($e->getType());
    var_dump($e->getMessage());
}

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(16) "Custom_Exception"
string(6) "client"

Voir aussi


La classe Yar_Client_Exception

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

Yar_Client_Exception extends Exception {
/* Propriétés */
/* Méthodes */
public void getType ( void )
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

message

code

file

line

Sommaire

  • Yar_Client_Exception::getType — Le but de getType


Le but de getType

  • « Yar_Client_Exception
  • XML-RPC »
  • PHP Manual
  • Yar_Client_Exception
  • Le but de getType

Yar_Client_Exception::getType

(PECL yar >= 1.0.0)

Yar_Client_Exception::getType — Le but de getType

Description

public void Yar_Client_Exception::getType ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yar_Client_Exception::getType()

<?php

/* ... */

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

...

Voir aussi


XML-RPC

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions XML-RPC
    • xmlrpc_decode_request — Décode le code XML en variables PHP natives
    • xmlrpc_decode — Décode le XML en types PHP natifs
    • xmlrpc_encode_request — Génère le XML pour une méthode
    • xmlrpc_encode — Génère le code XML pour une valeur PHP
    • xmlrpc_get_type — Retourne le type XMLRPC d'une valeur PHP
    • xmlrpc_is_fault — Détermine si un tableau de valeurs représente un XMLRPC
    • xmlrpc_parse_method_descriptions — Décode le code XML en une liste de descriptions de méthodes
    • xmlrpc_server_add_introspection_data — Ajoute des données d'introspection
    • xmlrpc_server_call_method — Analyse une requête XML et appelle les méthodes associées
    • xmlrpc_server_create — Crée un serveur XMLRPC
    • xmlrpc_server_destroy — Détruit un serveur XMLRPC
    • xmlrpc_server_register_introspection_callback — Enregistre une fonction PHP pour générer la documentation
    • xmlrpc_server_register_method — Enregistre une fonction PHP avec une méthode
    • xmlrpc_set_type — Définit le type xmlrpc, base64 ou datetime, d'une valeur PHP


Introduction

Ces fonctions servent à écrire sur les serveurs XML-RPC, mais aussi sur les clients. Vous pouvez trouver plus d'informations sur XML-RPC sur » http://www.xmlrpc.com/, et plus de documentations sur cette extension et ces fonctions, sur » http://xmlrpc-epi.sourceforge.net/.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.


Installation

Le support de XML-RPC n'est pas activé par défaut en PHP. Vous devez l'activer avec l'option de compilation --with-xmlrpc[=DIR] . Cette extension est fournie avec PHP depuis la version 4.1.0.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit une ressource serveur XML-RPC, retournée par la fonction xmlrpc_server_create().


  • « Types de ressources
  • Fonctions XML-RPC »
  • PHP Manual
  • XML-RPC
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions XML-RPC

Sommaire

  • xmlrpc_decode_request — Décode le code XML en variables PHP natives
  • xmlrpc_decode — Décode le XML en types PHP natifs
  • xmlrpc_encode_request — Génère le XML pour une méthode
  • xmlrpc_encode — Génère le code XML pour une valeur PHP
  • xmlrpc_get_type — Retourne le type XMLRPC d'une valeur PHP
  • xmlrpc_is_fault — Détermine si un tableau de valeurs représente un XMLRPC
  • xmlrpc_parse_method_descriptions — Décode le code XML en une liste de descriptions de méthodes
  • xmlrpc_server_add_introspection_data — Ajoute des données d'introspection
  • xmlrpc_server_call_method — Analyse une requête XML et appelle les méthodes associées
  • xmlrpc_server_create — Crée un serveur XMLRPC
  • xmlrpc_server_destroy — Détruit un serveur XMLRPC
  • xmlrpc_server_register_introspection_callback — Enregistre une fonction PHP pour générer la documentation
  • xmlrpc_server_register_method — Enregistre une fonction PHP avec une méthode
  • xmlrpc_set_type — Définit le type xmlrpc, base64 ou datetime, d'une valeur PHP


Décode le code XML en variables PHP natives

  • « Fonctions XML-RPC
  • xmlrpc_decode »
  • PHP Manual
  • Fonctions XML-RPC
  • Décode le code XML en variables PHP natives

xmlrpc_decode_request

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_decode_request — Décode le code XML en variables PHP natives

Description

mixed xmlrpc_decode_request ( string $xml , string &$method [, string $encoding ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Décode le XML en types PHP natifs

  • « xmlrpc_decode_request
  • xmlrpc_encode_request »
  • PHP Manual
  • Fonctions XML-RPC
  • Décode le XML en types PHP natifs

xmlrpc_decode

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_decode — Décode le XML en types PHP natifs

Description

mixed xmlrpc_decode ( string $xml [, string $encoding = "iso-8859-1" ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

xml

Réponse XML retournée par la méthode XMLRPC.

encoding

Encodage d'entrée, supporté par iconv.

Valeurs de retour

Retourne soit un tableau, soit un entier, soit une chaîne, soit un booléen, en fonction de la réponse retournée par la méthode XMLRPC.

Exemples

Voir l'exemple fourni avec la documentation de la fonction xmlrpc_encode_request().

Voir aussi

  • xmlrpc_encode_request() - Génère le XML pour une méthode
  • xmlrpc_is_fault() - Détermine si un tableau de valeurs représente un XMLRPC


Génère le XML pour une méthode

  • « xmlrpc_decode
  • xmlrpc_encode »
  • PHP Manual
  • Fonctions XML-RPC
  • Génère le XML pour une méthode

xmlrpc_encode_request

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_encode_request — Génère le XML pour une méthode

Description

string xmlrpc_encode_request ( string $method , mixed $params [, array $output_options ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

method

Nom de la méthode à appeler.

params

Paramètres de la méthode, compatibles avec la signature de la méthode.

output_options

Tableau spécifiant les options de sortie pouvant contenir (les valeurs par défaut sont en gras) :

  • output_type: php, xml

  • verbosity: no_white_space, newlines_only, pretty

  • escaping: cdata, non-ascii, non-print, markup (peut être une chaîne avec une valeur ou un tableau avec plusieurs valeurs)

  • version: simple, xmlrpc, soap 1.1, auto

  • encoding: iso-8859-1, autres jeux de caractères supportés par iconv

Valeurs de retour

Retourne une chaîne contenant la représentation XML de la demande.

Exemples

Exemple #1 Exemple avec XMLRPC

<?php
$request = xmlrpc_encode_request("method", array(1, 2, 3));
$context = stream_context_create(array('http' => array(
    'method' => "POST",
    'header' => "Content-Type: text/xml",
    'content' => $request
)));
$file = file_get_contents("http://www.example.com/xmlrpc", false, $context);
$response = xmlrpc_decode($file);
if ($response && xmlrpc_is_fault($response)) {
    trigger_error("xmlrpc: $response[faultString] ($response[faultCode])");
} else {
    print_r($response);
}
?>

Voir aussi

  • stream_context_create() - Crée un contexte de flux
  • file_get_contents() - Lit tout un fichier dans une chaîne
  • xmlrpc_decode() - Décode le XML en types PHP natifs


Génère le code XML pour une valeur PHP

  • « xmlrpc_encode_request
  • xmlrpc_get_type »
  • PHP Manual
  • Fonctions XML-RPC
  • Génère le code XML pour une valeur PHP

xmlrpc_encode

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_encode — Génère le code XML pour une valeur PHP

Description

string xmlrpc_encode ( mixed $value )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Retourne le type XMLRPC d'une valeur PHP

  • « xmlrpc_encode
  • xmlrpc_is_fault »
  • PHP Manual
  • Fonctions XML-RPC
  • Retourne le type XMLRPC d'une valeur PHP

xmlrpc_get_type

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_get_type — Retourne le type XMLRPC d'une valeur PHP

Description

string xmlrpc_get_type ( mixed $value )

Particulièrement pratique pour les types chaînes de type base64 et datetime.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

value

Valeur PHP

Valeurs de retour

Retourne le type XML-RPC.

Exemples

Exemple #1 Exemple de type XML-RPC

<?php
echo xmlrpc_get_type(null) . "\n"; // base64
echo xmlrpc_get_type(false) . "\n"; // boolean
echo xmlrpc_get_type(1) . "\n"; // int
echo xmlrpc_get_type(1.0) . "\n"; // double
echo xmlrpc_get_type("") . "\n"; // string
echo xmlrpc_get_type(array()) . "\n"; // array
echo xmlrpc_get_type(new stdClass) . "\n"; // array
echo xmlrpc_get_type(STDIN) . "\n"; // int
?>

Voir aussi

  • xmlrpc_set_type() - Définit le type xmlrpc, base64 ou datetime, d'une valeur PHP


Détermine si un tableau de valeurs représente un XMLRPC

  • « xmlrpc_get_type
  • xmlrpc_parse_method_descriptions »
  • PHP Manual
  • Fonctions XML-RPC
  • Détermine si un tableau de valeurs représente un XMLRPC

xmlrpc_is_fault

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

xmlrpc_is_fault — Détermine si un tableau de valeurs représente un XMLRPC

Description

bool xmlrpc_is_fault ( array $arg )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

arg

Tableau retourné par la fonction xmlrpc_decode().

Valeurs de retour

Retourne TRUE si l'argument signifie fault, FALSE sinon. La description de fault est disponible dans la variable $arg["faultString"], le code de fault est disponible dans la variable $arg["faultCode"].

Exemples

Retrouvez un exemple avec la fonction xmlrpc_encode_request().

Voir aussi

  • xmlrpc_decode() - Décode le XML en types PHP natifs


Décode le code XML en une liste de descriptions de méthodes

  • « xmlrpc_is_fault
  • xmlrpc_server_add_introspection_data »
  • PHP Manual
  • Fonctions XML-RPC
  • Décode le code XML en une liste de descriptions de méthodes

xmlrpc_parse_method_descriptions

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_parse_method_descriptions — Décode le code XML en une liste de descriptions de méthodes

Description

array xmlrpc_parse_method_descriptions ( string $xml )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Ajoute des données d'introspection

  • « xmlrpc_parse_method_descriptions
  • xmlrpc_server_call_method »
  • PHP Manual
  • Fonctions XML-RPC
  • Ajoute des données d'introspection

xmlrpc_server_add_introspection_data

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_add_introspection_data — Ajoute des données d'introspection

Description

int xmlrpc_server_add_introspection_data ( resource $server , array $desc )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Analyse une requête XML et appelle les méthodes associées

  • « xmlrpc_server_add_introspection_data
  • xmlrpc_server_create »
  • PHP Manual
  • Fonctions XML-RPC
  • Analyse une requête XML et appelle les méthodes associées

xmlrpc_server_call_method

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_call_method — Analyse une requête XML et appelle les méthodes associées

Description

string xmlrpc_server_call_method ( resource $server , string $xml , mixed $user_data [, array $output_options ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Crée un serveur XMLRPC

  • « xmlrpc_server_call_method
  • xmlrpc_server_destroy »
  • PHP Manual
  • Fonctions XML-RPC
  • Crée un serveur XMLRPC

xmlrpc_server_create

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_create — Crée un serveur XMLRPC

Description

resource xmlrpc_server_create ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Détruit un serveur XMLRPC

  • « xmlrpc_server_create
  • xmlrpc_server_register_introspection_callback »
  • PHP Manual
  • Fonctions XML-RPC
  • Détruit un serveur XMLRPC

xmlrpc_server_destroy

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_destroy — Détruit un serveur XMLRPC

Description

int xmlrpc_server_destroy ( resource $server )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Enregistre une fonction PHP pour générer la documentation

  • « xmlrpc_server_destroy
  • xmlrpc_server_register_method »
  • PHP Manual
  • Fonctions XML-RPC
  • Enregistre une fonction PHP pour générer la documentation

xmlrpc_server_register_introspection_callback

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_register_introspection_callback — Enregistre une fonction PHP pour générer la documentation

Description

bool xmlrpc_server_register_introspection_callback ( resource $server , string $function )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Enregistre une fonction PHP avec une méthode

  • « xmlrpc_server_register_introspection_callback
  • xmlrpc_set_type »
  • PHP Manual
  • Fonctions XML-RPC
  • Enregistre une fonction PHP avec une méthode

xmlrpc_server_register_method

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_register_method — Enregistre une fonction PHP avec une méthode

Description

bool xmlrpc_server_register_method ( resource $server , string $method_name , string $function )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.


Définit le type xmlrpc, base64 ou datetime, d'une valeur PHP

  • « xmlrpc_server_register_method
  • Extensions pour Windows uniquement »
  • PHP Manual
  • Fonctions XML-RPC
  • Définit le type xmlrpc, base64 ou datetime, d'une valeur PHP

xmlrpc_set_type

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_set_type — Définit le type xmlrpc, base64 ou datetime, d'une valeur PHP

Description

bool xmlrpc_set_type ( string &$value , string $type )

xmlrpc_set_type() définit le type XMLRPC, base64 ou datetime, pour une chaîne PHP.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

value

Valeur dont on veut modifier le type

type

base64 ou datetime

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. En cas de réussite, value sera converti en objet.

Exemples

Exemple #1 Exemple avec xmlrpc_set_type()

<?php

$params = date("Ymd\TH:i:s", time());
xmlrpc_set_type($params, 'datetime');
echo xmlrpc_encode($params);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
 <value>
  <dateTime.iso8601>20090322T23:43:03</dateTime.iso8601>
 </value>
</param>
</params>

Erreurs / Exceptions

Émet une alerte de type E_WARNING lorsque le type n'est pas supporté par XMLRPC.


Extensions pour Windows uniquement

  • COM — COM et .Net (Windows)
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Erreur et gestion des erreurs
    • Exemples
    • COM — La classe COM
    • DOTNET — La classe DOTNET
    • VARIANT — La classe VARIANT
    • Fonctions COM et .Net (Windows)
  • win32ps
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • win32ps Fonctions
  • win32service
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions win32service


COM et .Net (Windows)

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Erreur et gestion des erreurs
  • Exemples
    • For Each
    • Tableaux et propriétés à la façon des tableaux de COM
  • COM — La classe COM
  • DOTNET — La classe DOTNET
  • VARIANT — La classe VARIANT
  • Fonctions COM et .Net (Windows)
    • com_create_guid — Génère un identifiant unique global (GUID)
    • com_event_sink — Connecte des événements d'un objet COM sur un objet PHP
    • com_get_active_object — Retourne un objet représentant l'instance actuelle d'un objet COM
    • com_load_typelib — Charge un Typelib
    • com_message_pump — Traite un message COM dans un délai donné
    • com_print_typeinfo — Affiche une définition de classe PHP pour une interface répartissable
    • variant_abs — Retourne la valeur absolue d'un variant
    • variant_add — "Ajoute" deux valeurs de variants et retourne le résultat
    • variant_and — Effectue un ET entre deux variants et retourne le résultat
    • variant_cast — Convertit un variant en un nouvel objet variant de type différent
    • variant_cat — Assemble deux valeurs variantes ensemble et retourne le résultat
    • variant_cmp — Compare deux variants
    • variant_date_from_timestamp — Retourne une représentation date en variant d'un timestamp Unix
    • variant_date_to_timestamp — Convertit une valeur date/temps variante en un timestamp Unix
    • variant_div — Retourne le résultat de la division de deux variants
    • variant_eqv — Effectue une équivalence de bits de deux variants
    • variant_fix — Récupère la portion entière d'un variant
    • variant_get_type — Retourne le type d'un objet variant
    • variant_idiv — Convertit des variants en valeurs entières, et effectue alors une division
    • variant_imp — Exécute une implication sur les bits de deux variants
    • variant_int — Retourne la partie entière d'un variant
    • variant_mod — Divise deux variantes et retourne le reste
    • variant_mul — Multiplie les valeurs de deux variants
    • variant_neg — Effectue une négation logique sur un variant
    • variant_not — Exécute une négation sur les bits sur un variant
    • variant_or — Performe une disjonction logique sur deux variants
    • variant_pow — Retourne le résultat de la fonction puissance avec deux variants
    • variant_round — Arrondit le variant au nombre spécifié de décimales
    • variant_set_type — Convertit un variant en un autre type "sur-place"
    • variant_set — Assigne une nouvelle valeur pour un objet variant
    • variant_sub — Soustrait la valeur du variant de droite de la valeur de celui de gauche
    • variant_xor — Exécute une exclusion logique sur deux variants


Introduction

COM est un acronyme pour Component Object Model; c'est une couche orientée objet (et services associés) au-dessus de DCE RPC (un standard libre) qui définit une convention de nommage commune permettant à un code écrit en n'importe quel langage de communiquer avec du code écrit dans un autre langage, pour peu que ces deux langages soient compatibles avec COM. Les codes n'ont pas besoin de faire partie du même exécutable. le code peut être chargé à partir d'une DLL, trouvé dans un autre processus fonctionnant sur le même serveur, ou, avec DCOM (Distributed COM), trouvé sur une machine distante, sans même que votre code ait à savoir où il se trouve.

Il y a une partie de COM connue sous le nom de OLE Automation qui comprend un jeu d'interfaces COM qui permettent de perdre l'attache aux objets COM, pour qu'ils puissent être découverts et appelés en cours d'exécution sans savoir au moment de la compilation comment l'objet fonctionne. L'extension COM de PHP utilise les interfaces OLE Automation pour vous permettre de créer et appeler des objets compatibles depuis vos scripts. Techniquement parlant, cela devrait vraiment s'appeler "the OLE Automation Extension for PHP", puisque tous les objets COM ne sont pas forcément compatibles OLE.

Maintenant, pourquoi voudriez-vous ou devriez-vous utiliser COM ? COM est l'une des méthodes les plus utilisées pour faire communiquer des applications et des composants sur les plates-formes Windows. En utilisant COM, vous pouvez ouvrir un document Microsoft Word, remplir un fichier de gabarit et le sauvegarder pour l'envoyer par courrier à votre visiteur. Vous pouvez aussi utiliser COM pour effectuer des tâches administratives sur votre réseau et configurer IIS ; ce ne sont que les utilisations les plus habituelles, vous pouvez faire beaucoup plus avec COM.

Avec PHP 5, cette extension (et cette documentation) ont été réécrites de A à Z et la plupart des vieux problèmes et concepts prêtant à confusion ont été supprimés. De plus, nous supportons l'instanciation et la création d'assemblées .Net utilisant une couche d'interopérabilité COM fournie par Microsoft.

Lisez bien » cet article pour un aperçu des modifications de cette extension dans PHP 5.


Pré-requis

Les fonctions COM ne sont disponibles que sous les versions Windows de PHP.

Le support .Net nécessite PHP 5 ainsi que le gestionnaire .Net.


Installation

Depuis PHP 5.3.15 / 5.4.5, cette extension requiert que la bibliothèque php_com_dotnet.dll soit activée dans votre php.ini pour pouvoir utiliser ces fonctions. Les précédentes versions de PHP activaient cette extension par défaut.

Vous êtes responsable de l'installation des divers objets COM dont vous auriez besoin (comme Ms Word) ; nous ne pouvons tous les inclure dans PHP.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration pour COM
Nom | Défaut | Modifiable | Historique
com.allow_dcom | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.5.
com.autoregister_typelib | "0" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.autoregister_verbose | "0" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.autoregister_casesensitive | "1" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.code_page | "" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
com.typelib_file | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.5.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

com.allow_dcom

Si cette directive est activée, PHP aura la permission d'opérer comme un client D-COM (Distributed COM) et permettra à PHP d'instancier des objets COM sur un serveur distant.

com.autoregister_typelib

Si cette directive est activée, PHP essayera de déclarer des constantes provenant de la bibliothèque typelibrary des objets qu'il instancie, si ces objets implémentent l'interface demandée pour obtenir les données demandées. La sensibilité des constantes à la casse est contrôlée par la directive de configuration .

com.autoregister_verbose

Quand cette directive est activée, tout problème rencontré lors du chargement d'une typelibrary durant l'instanciation de l'objet sera reporté en utilisant le mécanisme d'erreurs de PHP. Par défaut, elle est désactivée, ce qui ne donne aucune indication sur l'échec de l'opération lors d'une recherche ou d'un chargement de la bibliothèque de type.

com.autoregister_casesensitive

Cette directive est activée par défaut et fait que les constantes trouvées dans les bibliothèques de types seront enregistrées en mode sensible à la casse. Voyez com_load_typelib() pour plus de détails.

com.code_page

Cette directive permet de spécifier le code-page des jeux de caractères à utiliser lors de l'envoi et la réception de chaînes vers des objets COM. Si elle est vide, PHP pensera que vous voulez CP_ACP, qui est le code-page système ANSI par défaut.

Si le texte dans vos scripts est encodé avec un différent encodage ou jeu de caractères par défaut, configurer cette directive vous évitera d'avoir à passer tout votre code comme paramètre du constructeur de la classe COM. Notez qu'en utilisant cette directive (comme toute configuration de PHP), votre code PHP perd en portabilité. Vous devez utiliser le paramètre du constructeur à chaque fois que possible.

Note: Cette directive a été introduite en PHP 5.

com.typelib_file

Lorsqu'elle est configurée, cette directive doit être le chemin vers un fichier qui contient une liste de bibliothèques à charger au démarrage. Chaque ligne sera interprétée comme le nom de la bibliothèque de types et chargée comme si vous aviez utilisé com_load_typelib(). Les constantes seront enregistrées de façon persistante, pour que la bibliothèque ne soit chargée qu'une seule fois. Si le nom d'une bibliothèque de types se termine par #cis ou #case_insensitive, alors les constantes de cette bibliothèque de types seront enregistrées en mode insensible à la casse.


Types de ressources

Cette extension définit une référence vers un objet COM, retournée par la fonction (obsolète) com_load() (cette fonction n'existe plus en PHP 5 ; utilisez la classe COM à la place).


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes COM
Constante | Valeur | Description | Notes
CLSCTX_INPROC_SERVER (entier) | 1 | Le code qui crée et gère les objets de cette classe est une bibliothèque DLL qui est exécutée dans le même processus que l'appelant de la fonction, spécifiant ainsi le contexte de la classe. |
CLSCTX_INPROC_HANDLER (entier) | 2 | Le code qui gère les objets de cette classe est un gestionnaire du processus. C'est une bibliothèque DLL qui s'exécute dans le processus client et implémente les structures côté client de cette classe lorsque l'on accède à ses instances à distance. |
CLSCTX_LOCAL_SERVER (entier) | 4 | Le code d'exécution qui crée et gère les objets de cette classe s'exécute sur la même machine mais est chargé dans un espace séparé du processus. |
CLSCTX_REMOTE_SERVER (entier) | 16 | Le contexte distant. Le code qui crée et gère les objets de cette classe s'exécute sur une machine différente. |
CLSCTX_SERVER (entier) | 21 | Indique le code serveur, et si le processus est local ou distant. Correspond aux constantes CLSCTX_INPROC_SERVER, CLSCTX_LOCAL_SERVER et CLSCTX_REMOTE_SERVER. |
CLSCTX_ALL (entier) | 23 | Indique tous les contextes de la classe. Correspond aux constantes CLSCTX_INPROC_HANDLER et CLSCTX_SERVER. |
VT_NULL (entier) | 1 | Référence de pointeur NULL. |
VT_EMPTY (entier) | 0 | Une propriété, dont le type de l'indicateur est VT_EMPTY, n'a aucune donné accosiée ; aussi, la taille de la valeur est de zéro. |
VT_UI1 (entier) | 17 | Entier non signé sur 1 octet. |
VT_I2 (entier) | 2 | 2 octets représentant une valeur entière signée sur 2 octets. |
VT_I4 (entier) | 3 | Entier signé sur 4 octets. |
VT_R4 (entier) | 4 | Valeur à virgule flottante IEEE sur 32 octets. |
VT_R8 (entier) | 5 | Valeur à virgule flottante IEEE sur 64 octets. |
VT_BOOL (entier) | 11 | Valeur booléenne. |
VT_ERROR (entier) | 10 | Code erreur ; contient le code statut associé avec l'erreur. |
VT_CY (entier) | 6 | Entier complémentaire de 8 octets (par tranche de 10.000). |
VT_DATE (entier) | 7 | Nombre à virgule flottante de 64 octets, représentant le nombre de jours (et non de secondes) depuis le 01 Décembre 1899. Par exemple, January 1, 1900, vaut 2.0, January 2, 1900, vaut 3.0, et ainsi de suite). Stocké sous la même représentation que la constante VT_R8. |
VT_BSTR (entier) | 8 | Pointeur vers une chaîne Unicode finissant par NULL. |
VT_DECIMAL (entier) | 14 | Une structure décimale. |
VT_UNKNOWN (entier) | 13 | Un pointeur vers un objet qui implémente l'interface IUnknown. |
VT_DISPATCH (entier) | 9 | Un pointeur vers un objet a été spécifié. |
VT_VARIANT (entier) | 12 | Un indicateur de type suivi par la valeur correspondante. VT_VARIANT peut être utilisé uniquement avec VT_BYREF. |
VT_I1 (entier) | 16 | Entier signé sur 1 octet. |
VT_UI2 (entier) | 18 | Entier non signé sur 2 octets. |
VT_UI4 (entier) | 19 | Entier non signé sur 4 octets. |
VT_INT (entier) | 22 | Valeur entière signée sur 4 octets (équivaut à VT_I4). |
VT_UINT (entier) | 23 | Entier non signé sur 4 octets (équivaut à VT_UI4). |
VT_ARRAY (entier) | 8192 | Si l'indicateur de type est combiné avec VT_ARRAY via un opérateur OR, la valeur sera un pointeur vers un SAFEARRAY. VT_ARRAY peut utiliser l'opérateur OR avec les types de données suivantes : VT_I1, VT_UI1, VT_I2, VT_UI2, VT_I4, VT_UI4, VT_INT, VT_UINT, VT_R4, VT_R8, VT_BOOL, VT_DECIMAL, VT_ERROR, VT_CY, VT_DATE, VT_BSTR, VT_DISPATCH, VT_UNKNOWN et VT_VARIANT. |
VT_BYREF (entier) | 16384 | Si l'indicateur de type est combiné avec VT_BYREF via un opérateur OR, la valeur sera une référence. Les types de référence sont interprétés comme une référence vers les données, similaire au type de référence en C++. |
CP_ACP (entier) | 0 | Le code page ANSI par défaut. |
CP_MACCP (entier) | 2 | Le code page Macintosh. |
CP_OEMCP (entier) | 1 | Le code page OEM par défaut. |
CP_UTF7 (entier) | 65000 | Unicode (UTF-7). |
CP_UTF8 (entier) | 65001 | Unicode (UTF-8). |
CP_SYMBOL (entier) | 42 | Traduction des SYMBOL. |
CP_THREAD_ACP (entier) | 3 | Le code page ANSI du thread courant. |
VARCMP_LT (entier) | 0 | Le bstr de gauche est plus petit que le bstr de droite. |
VARCMP_EQ (entier) | 1 | Les 2 paramètres sont égaux. |
VARCMP_GT (entier) | 2 | Le bstr de gauche est plus grand que le bstr de droite. |
VARCMP_NULL (entier) | 3 | Chaque expression vaut NULL. |
NORM_IGNORECASE (entier) | 1 | Ignore la casse. |
NORM_IGNORENONSPACE (entier) | 2 | Ignore les caractères non espacés. |
NORM_IGNORESYMBOLS (entier) | 4 | Ignore les symboles. |
NORM_IGNOREWIDTH (entier) | 131072 | Ignore la taille des caractères. |
NORM_IGNOREKANATYPE (entier) | 65536 | Ignore le type Kana. |
NORM_IGNOREKASHIDA (entier) | 262144 | Ignore les caractères Arabe kashida. | La disponibilité dépend de la bibliothèque sous-jacente.
DISP_E_DIVBYZERO (entier) | -2147352558 | Une erreur retournée qui indique qu'une division par zéro a eu lieu. |
DISP_E_OVERFLOW (entier) | -2147352566 | Une erreur qui indique qu'une valeur n'a pû être convertie en la représentation attendue. |
MK_E_UNAVAILABLE (entier) | -2147221021 | Code statut iMoniker COM, retourné lors d'erreurs générées lorsque l'on a tenté d'appeler une fonction qui n'est pas disponible. |


Erreur et gestion des erreurs

Exceptions (PHP 5)

Cette extension lancera des instances de la classe com_exception pour toute erreur fatale reportée par COM. Toutes les exceptions COM ont une propriété code qui correspond à la valeur de retour HRESULT des diverses opérations COM. Vous pouvez utiliser ce code pour choisir de façon automatique comment gérer cette exception.


Exemples

Sommaire

  • For Each
  • Tableaux et propriétés à la façon des tableaux de COM


For Each

Avec PHP 5, vous pouvez utiliser la structure de contrôle foreach de PHP pour passer en boucle à travers le contenu d'un IEnumVariant COM/OLE standard. Cela signifie que vous pouvez utiliser foreach aux endroits où vous auriez pu utiliser For Each dans du code VB/ASP.

Exemple #1 For Each en ASP

<%
Set domainObject = GetObject("WinNT://Domain")
For Each obj in domainObject
  Response.Write obj.Name & "<br />"
Next
%>

Exemple #2 Foreach en PHP

<?php
$domainObject = new COM("WinNT://Domain");
foreach ($domainObject as $obj) {
   echo $obj->Name . "<br />";
}
?>


Tableaux et propriétés à la façon des tableaux de COM

Plusieurs objets COM exposent leurs propriétés comme tableaux, ou en utilisant un chemin d'accès à la façon des tableaux. En PHP 4, vous pouvez utiliser la syntaxe de tableaux de PHP pour lire/écrire une propriété de ce genre, mais une seule dimension est permise. Si vous voulez lire une propriété multidimensionnelle, vous pouvez y accéder à travers une fonction où chaque paramètre représente une dimension de ce tableau, mais il n'y a aucun moyen d'écrire une telle propriété.

PHP 5 introduit différentes nouvelles fonctionnalités pour vous faciliter la vie:

  • Accédez aux tableaux multidimensionnels ou aux propriétés COM qui requièrent plusieurs paramètres comme si vous accédiez à un tableau. Vous pouvez aussi écrire ces propriétés en utilisant cette technique.

  • Bouclez sur les SafeArrays ("vrais" tableaux) en utilisant la structure de contrôle foreach. Cela fonctionne car un SafeArrays comporte des informations à propos de sa taille. Si une propriété à la façon des tableaux implémente IEnumVariant, alors vous pouvez aussi utiliser foreach pour cette propriété ; lisez For Each pour plus d'informations à ce sujet.


La classe COM

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

Description

La classe COM vous permet d'instancier un objet COM compatible OLE, d'appeler ses méthodes et d'accéder à ses propriétés.

$obj = new COM("Application.ID")

Méthodes

COM::__construct ( string $module_name [, mixed $server_name [, int $codepage [, string $typelib ]]] )

Constructeur de la classe COM. Paramètres :

module_name
Peut être un ProgID, un Class ID ou un Moniker qui nomment un composant à charger. Un ProgID est typiquement une application ou le nom d'une DLL, suivi d'une période, suivi par le nom de l'objet. e.g : Word.Application. Un Class ID est un UUID qui identifie de manière unique une classe donnée. Un Moniker est une manière spéciale de nommage, similaire dans le concept au schéma d'URL, qui identifie une ressource et spécifie comment elle doit être chargée. Par exemple, vous pouvez charger Word et prendre un objet représentant un document Word en spécifiant le chemin complet du document Word comme nom de module, ou bien, vous pouvez utiliser LDAP: comme un Moniker pour utiliser l'interface ADSI pour LDAP.
server_name
Le nom du serveur DCOM sur lequel le composant devrait être chargé et lancé. Si le paramètre vaut NULL, l'objet courant utilisera la valeur par défaut pour l'application. La valeur par défaut est habituellement la machine locale bien que l'administrateur peut avoir configuré l'application pour qu'elle s'exécute sur une machine différente. Si vous spécifiez une valeur non-NULL pour le serveur, PHP peut refuser de charger l'objet tant que l'option de configuration ne vaut pas TRUE.

Si server_name est un tableau, il doit contenir les éléments suivants (sensible à la casse). Notez qu'ils sont tous optionnels (bien que vous devez spécifier et USERNAME, et PASSWORD) ; si vous omettez les paramètres du serveur, le serveur par défaut sera utilisé (comme mentionné plus haut), et l'instanciation de l'objet ne sera pas affectée par la directive.

Nom de serveur DCOM
clé server_name | type | description
Server | string | Le nom du serveur.
Username | string | L'utilisateur de connexion.
Password | string | Le mot de passe de l'utilisateur Username.
Flags | integer | Une ou plusieurs des constantes suivantes CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, CLSCTX_LOCAL_SERVER, CLSCTX_REMOTE_SERVER, CLSCTX_SERVER et CLSCTX_ALL. La valeur par défaut est CLSCTX_SERVER si vous omettez également Server, ou bien CLSCTX_REMOTE_SERVER si vous spécifiez un serveur. Vous devriez consulter la documentation Microsoft concernant CoCreateInstance pour plus d'informations sur ces constantes ; vous ne devriez pas les utiliser dans un cas typique.

codepage
Spécifie le code qui est utilisé pour transformer les chaînes de caractères PHP en chaînes unicode, et vice-versa. La conversion est appliquée même si une chaîne PHP est passée en paramètre ou bien retournée d'une méthode de cet objet COM. Le code est "collé" en PHP 5, ce qui signifie qu'il se propagera aux objets et aux variables retournés par cet objet. Les valeurs possibles sont : CP_ACP (utilise le code système par défaut d'ANSI - valeur par défaut si le paramètre est omis), CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP (utilise la valeur du code local pour l'exécution courante), CP_UTF7 et CP_UTF8. Vous devriez également utiliser le numéro pour un code donné ; consultez la documentation de Microsoft pour plus de détails sur les codes et leurs valeurs numériques.

Méthodes surchargées

L'objet retourné est un objet surchargé, ce qui signifie que PHP ne voit aucune méthode fixe comme il le fait avec les classes habituelles ; au lieu de cela, chaque accès à une propriété ou une méthode est effectué à travers COM.

À partir de PHP 5, PHP détectera automatiquement les méthodes qui acceptent les paramètres par référence, et convertira automatiquement les variables PHP classiques en une forme pouvant être passée par référence. Cela signifie que vous pouvez appeler les méthodes de façon naturelle ; vous n'avez pas d'efforts supplémentaires à faire dans votre code.

Les pseudo-méthodes

Dans les versions antérieures à PHP 5, des hacks faisaient que les noms des méthodes suivantes n'étaient pas passés à COM et étaient directement gérés par PHP. PHP 5 élimine cela ; lisez les détails suivants pour déterminer comment corriger vos scripts. Ces noms de méthodes ne sont pas sensibles à la casse.

void COM::AddRef ( void )

Ajoute artificiellement un compteur de référence à l'objet COM.

Avertissement

Vous ne devriez jamais avoir besoin d'utiliser cette méthode. Il existe un complément logique à la méthode Release() ci-dessous.

void COM::Release ( void )

Supprime artificiellement un compteur de référence à un objet COM.

Avertissement

Vous ne devriez jamais avoir besoin d'utiliser cette méthode. Son existence en PHP est un bogue fait pour résoudre un autre bogue qui conserve les objets COM fonctionnels plus longtemps qu'ils ne devraient l'être.

Les pseudo-méthodes pour itération

Ces pseudo-méthodes ne sont valables que si com_isenum() retourne TRUE et dans ce cas, elles cachent toute autre méthode portant le même nom qui pourrait provenir de l'objet COM. Ces méthodes ont été éliminées de PHP 5, et vous devez utiliser For Each en lieu et place.

variant COM::All ( void )

Retourne une variante représentant un "SafeArray" qui possède 10 éléments ; chaque élément sera une variante vide ou nulle. Cette fonction est supposée retourner un tableau contenant tous les éléments de l'itération, mais ne il sera jamais complet. Ne pas l'utiliser.

variant COM::Next ( void )

Retourne une variante représentant l'élément disponible suivant de l'itération ou FALSE lorsqu'il n'y a plus d'éléments.

variant COM::Prev ( void )

Retourne une variante représentant l'élément disponible précédent de l'itération ou FALSE lorsqu'il n'y a plus d'éléments.

void COM::Reset ( void )

Replace l'itération au début.

Exemples avec COM

Exemple #1 Exemple avec COM (1)

<?php
/* Démarrage de Word */
$word = new COM("word.application") or die("Impossible d'instancier l'application Word");
echo "Word lancé, version {$word->Version}\n";

/* Amener Word devant */
$word->Visible = 1;

/* Cree un document vide */
$word->Documents->Add();

/* Quelques commandes */
$word->Selection->TypeText("Ceci est un test...");
$word->Documents[1]->SaveAs("test.doc");

/* Fermeture de word */
$word->Quit();

/* Libération des ressources */
$word = null;
?>

Exemple #2 Exemple avec COM (2)

<?php
$conn = new COM("ADODB.Connection") or die("Impossible de démarrer ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password");

/* Jeux d'enregistrement */
$rs = $conn->Execute("SELECT * FROM sometable");

$num_columns = $rs->Fields->Count();
echo $num_columns . "\n";

for ($i=0; $i < $num_columns; $i++) {
  $fld[$i] = $rs->Fields($i);
}

$rowcount = 0;
while (!$rs->EOF) {
  for ($i=0; $i < $num_columns; $i++) {
    echo $fld[$i]->value . "\t";
  }
  echo "\n";

  /* Incrémentation */
  $rowcount++;
  $rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs = null;
$conn = null;

?>


La classe DOTNET

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

Description

La classe DOTNET vous autorise à instancier une classe depuis un ensemble .NET et à appeler ses propriétés ainsi qu'à accéder à ses propriétés.

$obj = new DOTNET("assembly", "classname")

Méthodes

DOTNET::__construct ( string $assembly_name , string $class_name [, int $codepage ] )

Le construction de la classe DOTNET. assembly_name spécifie quel ensemble doit être chargé, et class_name spécifie quelle classe de l'ensemble doit être instanciée. Vous pouvez spécifier optionnellement un codepage à utiliser pour les transformations des chaînes Unicode ; voir COM la classe pour plus de détails sur les codepage.

L'objet retourné est un objet surchargé, ce qui signifie que PHP ne voit aucune méthode fixe comme il le fait avec les classes habituelles ; au lieu de cela, chaque accès à une propriété ou une méthode est effectué à travers COM et depuis DOTNET. En d'autres mots, l'objet .NET est tracé à travers la couche d'interopérabilité de COM fournie par le moteur .NET.

Dès que vous avez créé l'objet DOTNET, PHP l'utilise comme n'importe quel autre objet COM ; Toutes les mêmes règles y sont appliquées.

Exemple #1 Exemple DOTNET

<?php
 $stack = new DOTNET("mscorlib", "System.Collections.Stack");
 $stack->Push(".Net");
 $stack->Push("Bonjour ");
 echo $stack->Pop() . $stack->Pop();
?>

Note:

Vous devez installer le moteur .NET sur votre serveur Web pour tirer avantage de ces fonctionnalités.


La classe VARIANT

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

Description

Le VARIANT est un équivalent de COM pour PHP zval ; c'est une structure qui peut contenir une valeur avec un intervalle de types possibles. La classe VARIANT fournie par l'extension COM vous permet d'avoir plus de contrôle sur ce que PHP envoie et reçoit de COM.

$vVar = new VARIANT($var)

Methods

VARIANT::__construct ([ mixed $value [, int $type [, int $codepage ]]] )

Constructeur VARIANT. Paramètres :

value
valeur initiale. Si omis, un objet VT_EMPTY sera créé.
type
spécifie le type d'objet VARIANT contenu. Les valeurs possibles sont une des constantes VT_XXX Constantes pré-définies. Dans les versions antérieures à PHP 5, vous pouvez forcer PHP à passer un objet VARIANT par référence en combinant VT_BYREF avec l'opérateur OR et le paramètre type. En PHP 5, ce hack n'est pas supporté ; en lieu et place, PHP 5 peut détecter les paramètres passés par référence automatiquement ; ils n'ont pas à être passés comme des objets VARIANT. Consultez la bibliothèque MSDN pour plus de détails.
codepage
spécifie le code qui est utilisé pour transformer les chaînes de caractères PHP en chaînes unicode, et vice-versa. Voir le paramètre du même nom dans la COM classe pour plus d'informations.

Les versions antérieures à PHP 5 définissent un nombre de propriétés virtuelles (non-documenté) pour les instances de classe VARIANT ; ces propriétés ont toutes été supprimées de PHP 5 en faveur d'une syntaxe plus naturelle ; ces différences sont bien illustrées par cet exemple :

Exemple #1 Exemple d'une classe VARIANT, comme utilisé en PHP 4.x

<?php
$v = new VARIANT(42);
print "The type is " . $v->type . "<br/>";
print "The value is " . $v->value . "<br/>";
?>

Exemple #2 Exemple d'une classe VARIANT, comme utilisé en PHP 5

<?php
$v = new VARIANT(42);
print "The type is " . variant_get_type($v) . "<br/>";
print "The value is " . $v . "<br/>";
?>

Les raisons de ces changements sont que, en interne, l'extension COM voit les classes VARIANT, CM et DOTNET comme étant la même chose, et l'esprit pour ces classes est que tous les accès aux propriétés et aux méthodes sont transmis à COM sans interférence. La nouvelle syntaxe est plus naturelle et demande moins d'efforts et la plupart des propriétés virtuelles supprimées n'ont plus aucun sens dans ce contexte.

Note:

PHP 5 prend une approche plus simple pour gérer les classes VARIANT ; lorsqu'il retourne une valeur d'une propriété VARIANT, elle est convertie en une valeur PHP seulement s'il y a un mappage direct entre les types sans perdre aucune information. Dans tous les autres cas, le résultat est retourné comme une instance de la classe VARIANT. Vous pouvez forcer PHP à convertir ou à évaluer la classe VARIANT comme un type natif de PHP en utilisant explicitement un opérateur de transtypage, ou implicitement transtyper en une chaîne pour l'afficher en utilisant par exemple l'instruction print. Vous pouvez utiliser l'éventail de fonctions pour réaliser des opérations arithmétiques sur les classes VARIANT sans forcer des conversions ou bien risquer de perdre des données.

Voir aussi la fonction variant_get_type().


Fonctions COM et .Net (Windows)

Voir aussi

Pour plus d'informations sur les objets COM, lisez les » spécifications COM. Vous pouvez trouver des informations utiles dans notre FAQ pour PHP et COM. Si vous voulez utiliser des applications MS Office sur le serveur, vous devez lire les informations ici : » Considerations for Server-Side Automation of Office.

Sommaire

  • com_create_guid — Génère un identifiant unique global (GUID)
  • com_event_sink — Connecte des événements d'un objet COM sur un objet PHP
  • com_get_active_object — Retourne un objet représentant l'instance actuelle d'un objet COM
  • com_load_typelib — Charge un Typelib
  • com_message_pump — Traite un message COM dans un délai donné
  • com_print_typeinfo — Affiche une définition de classe PHP pour une interface répartissable
  • variant_abs — Retourne la valeur absolue d'un variant
  • variant_add — "Ajoute" deux valeurs de variants et retourne le résultat
  • variant_and — Effectue un ET entre deux variants et retourne le résultat
  • variant_cast — Convertit un variant en un nouvel objet variant de type différent
  • variant_cat — Assemble deux valeurs variantes ensemble et retourne le résultat
  • variant_cmp — Compare deux variants
  • variant_date_from_timestamp — Retourne une représentation date en variant d'un timestamp Unix
  • variant_date_to_timestamp — Convertit une valeur date/temps variante en un timestamp Unix
  • variant_div — Retourne le résultat de la division de deux variants
  • variant_eqv — Effectue une équivalence de bits de deux variants
  • variant_fix — Récupère la portion entière d'un variant
  • variant_get_type — Retourne le type d'un objet variant
  • variant_idiv — Convertit des variants en valeurs entières, et effectue alors une division
  • variant_imp — Exécute une implication sur les bits de deux variants
  • variant_int — Retourne la partie entière d'un variant
  • variant_mod — Divise deux variantes et retourne le reste
  • variant_mul — Multiplie les valeurs de deux variants
  • variant_neg — Effectue une négation logique sur un variant
  • variant_not — Exécute une négation sur les bits sur un variant
  • variant_or — Performe une disjonction logique sur deux variants
  • variant_pow — Retourne le résultat de la fonction puissance avec deux variants
  • variant_round — Arrondit le variant au nombre spécifié de décimales
  • variant_set_type — Convertit un variant en un autre type "sur-place"
  • variant_set — Assigne une nouvelle valeur pour un objet variant
  • variant_sub — Soustrait la valeur du variant de droite de la valeur de celui de gauche
  • variant_xor — Exécute une exclusion logique sur deux variants


Génère un identifiant unique global (GUID)

  • « Fonctions COM et .Net (Windows)
  • com_event_sink »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Génère un identifiant unique global (GUID)

com_create_guid

(PHP 5, PHP 7)

com_create_guid — Génère un identifiant unique global (GUID)

Description

string com_create_guid ( void )

Génère un identifiant unique global (GUID).

Un GUID est généré de la même façon que DCE UUID, excepté le fait que la convention Microsoft inclut le GUID dans une parenthèse.

Valeurs de retour

Retourne le GUID, sous la forme d'une chaîne de caractères.

Voir aussi

  • uuid_create() dans l'extension PECL uuid


Connecte des événements d'un objet COM sur un objet PHP

  • « com_create_guid
  • com_get_active_object »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Connecte des événements d'un objet COM sur un objet PHP

com_event_sink

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

com_event_sink — Connecte des événements d'un objet COM sur un objet PHP

Description

bool com_event_sink ( variant $comobject , object $sinkobject [, mixed $sinkinterface ] )

Connecte des événements de l'objet COM comobject sur un l'objet PHP sinkobject.

Soyez prudent sur l'utilisation de cette fonctionnalité ; si vous faites quelque chose de similaire à l'exemple ci-dessous, cela n'a pas de sens de le lancer sur un serveur Web.

Liste de paramètres

comobject

sinkobject

sinkobject devra être une instance de la classe avec des noms de méthodes suivant le dispinterface désiré ; vous devriez utiliser com_print_typeinfo() pour l'aide à la génération d'un gabarit de classe pour cela.

sinkinterface

PHP devrait être capable d'utiliser le type par défaut de dispinterface spécifié par la Typelib associée avec l'objet comobject, mais vous pouvez changer cela en spécifiant dans le paramètre sinkinterface le dispinterface que vous souhaitez utiliser.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple de connexions d'événements COM

<?php
class IEEventSinker {
    var $terminated = false;

   function ProgressChange($progress, $progressmax) {
      echo "Progression du téléchargement : $progress / $progressmax\n";
    }

    function DocumentComplete(&$dom, $url) {
      echo "Document $url terminé\n";
    }

    function OnQuit() {
      echo "Quit!\n";
      $this->terminated = true;
    }
}
$ie = new COM("InternetExplorer.Application");
// notez que vous n'avez pas besoin du & en PHP 5!
$sink = new IEEventSinker();
com_event_sink($ie, $sink, "DWebBrowserEvents2");
$ie->Visible = true;
$ie->Navigate("http://www.example.org");
while(!$sink->terminated) {
  com_message_pump(4000);
}
$ie = null;
?>

Voir aussi

  • com_print_typeinfo() - Affiche une définition de classe PHP pour une interface répartissable
  • com_message_pump() - Traite un message COM dans un délai donné


Retourne un objet représentant l'instance actuelle d'un objet COM

  • « com_event_sink
  • com_load_typelib »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Retourne un objet représentant l'instance actuelle d'un objet COM

com_get_active_object

(PHP 5, PHP 7)

com_get_active_object — Retourne un objet représentant l'instance actuelle d'un objet COM

Description

variant com_get_active_object ( string $progid [, int $code_page ] )

com_get_active_object() est similaire à la création d'une nouvelle instance COMd'un objet COM, excepté qu'elle ne retournera un objet à votre script uniquement si l'objet est actuellement instancié. Les applications OLE utilisent quelque chose de connu en tant que "Running Object Table" qui permet aux applications connues d'être exécutées juste une fois ; cette fonction expose la fonction GetActiveObject() de la bibliothèque COM pour récupérer un objet d'une instance en cours d'utilisation.

Liste de paramètres

progid

Le paramètre Progid doit être soit le ProgID, soit le CLSID de l'objet dont vous voulez avoir l'accès (par exemple, Word.Application).

code_page

utilise les mêmes règles que dans la COM classe.

Valeurs de retour

Si l'objet demandé est en cours d'exécution, la fonction retournera à votre script ce que toute autre objet COM retournerait.

Erreurs / Exceptions

Il y a beaucoup de raisons pour lesquelles cette fonction peut échouer. Dans cette situation, le code erreur de l'exception devrait être MK_E_UNAVAILABLE ; vous pouvez utiliser la méthode getCode de l'objet exception pour vérifier le code de l'exception.

Notes

Avertissement

Utiliser la fonction com_get_active_object() sur un serveur web n'est pas toujours la meilleure idée. La plupart des applications COM/OLE ne sont pas faites pour gérer plus d'un client en concurrence, comme (et surtout !!) Microsoft Office. Vous devriez lire les » considérations pour les automatismes coté serveur pour Office pour plus d'informations sur les comportements généraux.


Charge un Typelib

  • « com_get_active_object
  • com_message_pump »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Charge un Typelib

com_load_typelib

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

com_load_typelib — Charge un Typelib

Description

bool com_load_typelib ( string $typelib_name [, bool $case_insensitive = true ] )

Charge un Typelib et enregistre son contenu dans le moteur, comme s'ils avaient été définis en utilisant define().

Notez qu'il est plus efficace d'utiliser l'option de configuration pour précharger et enregistrer les constantes, même si cela est moins flexible.

Si vous devez activer , alors PHP essayera d'enregistrer automatiquement les constantes associées à l'objet COM lorsque vous créerez l'objet. Cela dépendra de l'interface fournie par l'objet COM lui-même et ne sera pas toujours possible.

Liste de paramètres

typelib_name

typelib_name peut être une des valeurs suivantes :

  • Le nom d'un fichier .tlb ou le module exécutable contenant le Typelib.

  • Le GUID du Typelib, suivi du numéro de version ; par exemple {00000200-0000-0010-8000-00AA006D2EA4},2,0.

  • Le nom du Typelib, e.g Microsoft OLE DB ActiveX Data Objects 1.0 Library.

PHP va essayer de résoudre le Typelib dans cet ordre, et le processus prendra de plus en plus de ressources pour arriver à la fin de la liste ; la recherche du Typelib par son nom est manipulée physiquement en énumérant le registre jusqu'à ce qu'un résultat y soit trouvé.

case_insensitive

Le paramètre case_insensitive se comporte comme le paramètre du même nom de la fonction define().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Traite un message COM dans un délai donné

  • « com_load_typelib
  • com_print_typeinfo »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Traite un message COM dans un délai donné

com_message_pump

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

com_message_pump — Traite un message COM dans un délai donné

Description

bool com_message_pump ([ int $timeoutms = 0 ] )

Traite un message COM en attendant jusqu'à timeoutms millisecondes, ou bien en attendant qu'un message arrive dans la file d'attente.

Le but de cette fonction est d'acheminer les appels COM entre les éléments et de gérer les différentes synchronisations. Cela permet à votre script d'attendre efficacement les événements à déclencher, tout en gérant d'autres événements ou bien d'exécuter d'autres scripts en arrière-plan. Vous devriez l'utiliser dan une boucle, comme dans l'exemple de la fonction com_event_sink(), jusqu'à ce que vous ayez fini d'utiliser les objets COM liés à des événements.

Liste de paramètres

timeoutms

Le délai, en millisecondes.

Si vous ne spécifiez pas de valeur pour le paramètre timeoutms, alors il voudra 0. Une valeur à 0 signifie que les messages seront traités immédiatement ; s'il y a des messages dans la file d'attente, ils seront distribués aussitôt ; s'il n'y a aucun message dans la file d'attente, la fonction retournera FALSE immédiatement sans attendre.

Valeurs de retour

Si un ou plusieurs messages arrivent avant le délai d'expiration, ils seront distribués et la fonction retournera TRUE. Si le délai d'expiration survient et qu'aucun message n'est traité, la valeur retournée sera FALSE.


Affiche une définition de classe PHP pour une interface répartissable

  • « com_message_pump
  • variant_abs »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Affiche une définition de classe PHP pour une interface répartissable

com_print_typeinfo

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

com_print_typeinfo — Affiche une définition de classe PHP pour une interface répartissable

Description

bool com_print_typeinfo ( object $comobject [, string $dispinterface [, bool $wantsink = false ]] )

Aide à générer un squelette de classe pour l'utiliser comme évier d'événement. Vous pouvez également l'utiliser pour générer une sauvegarde de n'importe quel objet COM, à condition qu'il supporte assez d'interfaces d'introspection et que vous connaissiez le nom de l'interface que vous désirez afficher.

Liste de paramètres

comobject

comobject doit être soit une instance d'un objet COM, soit le nom d'une bibliothèque type (qui doit être résolu en accord des règles définies dans la fonction com_load_typelib()).

dispinterface

Le nom d'une interface descendante IDispatch que vous souhaitez afficher.

wantsink

Si le paramètre wantsink vaut TRUE, l'interface d'évier correspondante sera affichée à la place.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • com_event_sink() - Connecte des événements d'un objet COM sur un objet PHP
  • com_load_typelib() - Charge un Typelib


Retourne la valeur absolue d'un variant

  • « com_print_typeinfo
  • variant_add »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Retourne la valeur absolue d'un variant

variant_abs

(PHP 5, PHP 7)

variant_abs — Retourne la valeur absolue d'un variant

Description

mixed variant_abs ( mixed $val )

Retourne la valeur absolue d'un variant.

Liste de paramètres

val

Le variant.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne la valeur absolue de val.

Voir aussi

  • abs() - Valeur absolue


"Ajoute" deux valeurs de variants et retourne le résultat

  • « variant_abs
  • variant_and »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • "Ajoute" deux valeurs de variants et retourne le résultat

variant_add

(PHP 5, PHP 7)

variant_add — "Ajoute" deux valeurs de variants et retourne le résultat

Description

mixed variant_add ( mixed $left , mixed $right )

Ajoute left à right selon les règles suivantes (prises de la bibliothèque MSDN), qui correspondent à celles de Visual Basic :

Règle d'ajout des variants
Si | Alors
Les deux expressions sont des chaînes | Concaténation
Une expression est de type chaîne et l'autre est un caractère | Addition
Une expression est numérique est l'autre est une chaîne | Addition
Les deux expressions sont numériques | Addition
Une expression est NULL | NULL est retourné
Les deux expressions sont vides | Le sous-type entier est retourné

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne le résultat.

Voir aussi

  • variant_sub() - Soustrait la valeur du variant de droite de la valeur de celui de gauche


Effectue un ET entre deux variants et retourne le résultat

  • « variant_add
  • variant_cast »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Effectue un ET entre deux variants et retourne le résultat

variant_and

(PHP 5, PHP 7)

variant_and — Effectue un ET entre deux variants et retourne le résultat

Description

mixed variant_and ( mixed $left , mixed $right )

Effectue un ET sur les bits, selon la table de vérité suivante ; notez que cela est différent du ET normal.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règles du ET variant
Si left est | Si right est | alors le résultat est
TRUE | TRUE | TRUE
TRUE | FALSE | FALSE
TRUE | NULL | NULL
FALSE | TRUE | FALSE
FALSE | FALSE | FALSE
FALSE | NULL | FALSE
NULL | TRUE | NULL
NULL | FALSE | FALSE
NULL | NULL | NULL

Voir aussi

  • variant_or() - Performe une disjonction logique sur deux variants


Convertit un variant en un nouvel objet variant de type différent

  • « variant_and
  • variant_cat »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Convertit un variant en un nouvel objet variant de type différent

variant_cast

(PHP 5, PHP 7)

variant_cast — Convertit un variant en un nouvel objet variant de type différent

Description

variant variant_cast ( variant $variant , int $type )

Cette fonction crée une copie de variant et effectue alors un transtypage pour forcer la copie à avoir le type donné par type.

Cette fonction est en fait la fonction VariantChangeType() de la bibliothèque COM ; consultez MSDN pour plus d'informations.

Liste de paramètres

variant

Le variant.

type

type doit être un type parmi les constantes VT_XXX.

Valeurs de retour

Retourne un variant VT_DATE.

Voir aussi

  • variant_set_type() - Convertit un variant en un autre type "sur-place"


Assemble deux valeurs variantes ensemble et retourne le résultat

  • « variant_cast
  • variant_cmp »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Assemble deux valeurs variantes ensemble et retourne le résultat

variant_cat

(PHP 5, PHP 7)

variant_cat — Assemble deux valeurs variantes ensemble et retourne le résultat

Description

mixed variant_cat ( mixed $left , mixed $right )

Assemble left avec right et retourne le résultat.

Cette fonction est équivalente à $left . $right.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne le résultat de la concaténation.

Voir aussi

  • Opérateurs de chaînes pour l'opérateur de concaténation


Compare deux variants

  • « variant_cat
  • variant_date_from_timestamp »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Compare deux variants

variant_cmp

(PHP 5, PHP 7)

variant_cmp — Compare deux variants

Description

int variant_cmp ( mixed $left , mixed $right [, int $lcid [, int $flags ]] )

Compare left avec right.

Cette fonction ne comparera que des valeurs scalaires, pas de tableaux ni d'enregistrements variants.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

lcid

Locale Identifier valide à utiliser lors des comparaisons des chaînes (cela affecte la collation de la chaîne).

flags

flags peut être une ou plusieurs des valeurs suivantes, jointes avec des OR, et affecte les comparaisons de chaînes :

Options de comparaison Variant
Valeur | Signification
NORM_IGNORECASE | Compare avec sensibilité à la casse
NORM_IGNORENONSPACE | Ignore les caractères non-espaçants
NORM_IGNORESYMBOLS | Ignore les symboles
NORM_IGNOREWIDTH | Ignore la taille de la chaîne
NORM_IGNOREKANATYPE | Ignore le type Kana
NORM_IGNOREKASHIDA | Ignore les caractères arabes kashida

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne une des valeurs suivantes :

Résultats des comparaisons sur variants
Valeur | Signification
VARCMP_LT | left est plus petit que right
VARCMP_EQ | left est égal à right
VARCMP_GT | left est plus grand que right
VARCMP_NULL | left, right ou les deux sont NULL


Retourne une représentation date en variant d'un timestamp Unix

  • « variant_cmp
  • variant_date_to_timestamp »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Retourne une représentation date en variant d'un timestamp Unix

variant_date_from_timestamp

(PHP 5, PHP 7)

variant_date_from_timestamp — Retourne une représentation date en variant d'un timestamp Unix

Description

variant variant_date_from_timestamp ( int $timestamp )

Convertit timestamp depuis un timestamp Unix vers le type variant VT_DATE. Cela permet une interopérabilité plus facile des systèmes Unix de PHP et COM.

Liste de paramètres

timestamp

Un timestamp Unix.

Valeurs de retour

Retourne un variant VT_DATE.

Voir aussi

  • variant_date_to_timestamp() - Convertit une valeur date/temps variante en un timestamp Unix
  • mktime() - Retourne le timestamp UNIX d'une date
  • time() - Retourne le timestamp UNIX actuel


Convertit une valeur date/temps variante en un timestamp Unix

  • « variant_date_from_timestamp
  • variant_div »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Convertit une valeur date/temps variante en un timestamp Unix

variant_date_to_timestamp

(PHP 5, PHP 7)

variant_date_to_timestamp — Convertit une valeur date/temps variante en un timestamp Unix

Description

int variant_date_to_timestamp ( variant $variant )

Convertit variant d'une valeur VT_DATE (ou similaire) en un timestamp unix. Cela permet l'interopérabilité facile entre les parties Unix de PHP et COM.

Liste de paramètres

variant

Le variant.

Valeurs de retour

Retourne un timestamp Unix.

Voir aussi

  • variant_date_from_timestamp() - Retourne une représentation date en variant d'un timestamp Unix
  • date() - Formate une date/heure locale
  • strftime() - Formate une date/heure locale avec la configuration locale


Retourne le résultat de la division de deux variants

  • « variant_date_to_timestamp
  • variant_eqv »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Retourne le résultat de la division de deux variants

variant_div

(PHP 5, PHP 7)

variant_div — Retourne le résultat de la division de deux variants

Description

mixed variant_div ( mixed $left , mixed $right )

Divise left par right et retourne le résultat.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règle de division des variants
Si | Alors
Les deux expressions sont des chaînes, dates, caractères, booléens | Double est retourné
Une expression est une chaîne et l'autre est un caractère | Division et double retournés
Une expression est numérique et l'autre est une chaîne | Division et double retournés
Les deux expressions sont numériques | Division et double retournés
Une des expressions est NULL | NULL est retourné
right est vide et left est tout mais non vide | Un code com_exception DISP_E_DIVBYZERO est lancé
left est vide et right est tout mais non vide. | 0 en tant que double est retourné
Les deux expressions sont vides | Un code com_exception DISP_E_OVERFLOW est lancé

Voir aussi

  • variant_idiv() - Convertit des variants en valeurs entières, et effectue alors une division


Effectue une équivalence de bits de deux variants

  • « variant_div
  • variant_fix »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Effectue une équivalence de bits de deux variants

variant_eqv

(PHP 5, PHP 7)

variant_eqv — Effectue une équivalence de bits de deux variants

Description

mixed variant_eqv ( mixed $left , mixed $right )

Effectue une équivalence de bits de deux variants.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Si chaque bit dans left est égal au bit correspondant dans right alors la fonction retourne TRUE, sinon elle retourne FALSE.


Récupère la portion entière d'un variant

  • « variant_eqv
  • variant_get_type »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Récupère la portion entière d'un variant

variant_fix

(PHP 5, PHP 7)

variant_fix — Récupère la portion entière d'un variant

Description

mixed variant_fix ( mixed $variant )

Récupère la portion entière d'un variant.

Liste de paramètres

variant

Le variant.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Si variant est négatif, le premier entier négatif plus grand ou égal au variant est retourné, sinon cette fonction retourne la portion entière de la valeur de variant.

Notes

Avertissement

Cette documentation est basée sur la documentation MSDN ; il apparaît que cette fonction est la même que variant_int(), ou alors, il y a une erreur dans la documentation de MSDN.

Voir aussi

  • variant_int() - Retourne la partie entière d'un variant
  • variant_round() - Arrondit le variant au nombre spécifié de décimales
  • floor() - Arrondit à l'entier inférieur
  • ceil() - Arrondit au nombre supérieur
  • round() - Arrondit un nombre à virgule flottante


Retourne le type d'un objet variant

  • « variant_fix
  • variant_idiv »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Retourne le type d'un objet variant

variant_get_type

(PHP 5, PHP 7)

variant_get_type — Retourne le type d'un objet variant

Description

int variant_get_type ( variant $variant )

Retourne le type d'un objet variant.

Liste de paramètres

variant

L'objet variant.

Valeurs de retour

Retourne une valeur entière qui indique le type de variant, qui peut être une instance de COM, DOTNET ou de VARIANT. La valeur de retour peut être comparée à l'une des constantes VT_XXX.

La valeur de retour pour les objets COM et DOTNET sera la plupart du temps VT_DISPATCH ; la seule raison qui fait que cette fonction marche avec ces classes est que COM et DOTNET sont des descendants de VARIANT.

Avant PHP 5, vous pouvez obtenir cette information en lisant une fausse propriété type. Voyez la classe VARIANT pour plus d'informations.


Convertit des variants en valeurs entières, et effectue alors une division

  • « variant_get_type
  • variant_imp »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Convertit des variants en valeurs entières, et effectue alors une division

variant_idiv

(PHP 5, PHP 7)

variant_idiv — Convertit des variants en valeurs entières, et effectue alors une division

Description

mixed variant_idiv ( mixed $left , mixed $right )

Convertit left et right en valeurs entières, et effectue alors une division entière.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règles de divisions internes des variants
Si | Alors
Les deux expressions sont des chaînes, dates, caractères, booléens | Division et entier retournés
Une expression est une chaîne et l'autre est un caractère | Division
Une expression est numérique et l'autre est une chaîne | Division
Les deux expressions sont numériques | Division
Une des expressions est NULL | NULL est retourné
Les deux expressions sont vides | Un code com_exception DISP_E_DIVBYZERO est lancé

Voir aussi

  • variant_div() - Retourne le résultat de la division de deux variants


Exécute une implication sur les bits de deux variants

  • « variant_idiv
  • variant_int »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Exécute une implication sur les bits de deux variants

variant_imp

(PHP 5, PHP 7)

variant_imp — Exécute une implication sur les bits de deux variants

Description

mixed variant_imp ( mixed $left , mixed $right )

Exécute une implication sur les bits de deux variants.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Table d'implication des variants
Si left est | Si right est | alors le résultat est
TRUE | TRUE | TRUE
TRUE | FALSE | TRUE
TRUE | NULL | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | TRUE
FALSE | NULL | TRUE
NULL | TRUE | TRUE
NULL | FALSE | NULL
NULL | NULL | NULL


Retourne la partie entière d'un variant

  • « variant_imp
  • variant_mod »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Retourne la partie entière d'un variant

variant_int

(PHP 5, PHP 7)

variant_int — Retourne la partie entière d'un variant

Description

mixed variant_int ( mixed $variant )

Récupère la partie entière d'un variant.

Liste de paramètres

variant

Le variant.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Si variant est négatif, le premier entier négatif supérieur ou égal à ce variant est retourné, sinon cette fonction retourne la partie entière de la valeur de variant.

Voir aussi

  • variant_fix() - Récupère la portion entière d'un variant
  • variant_round() - Arrondit le variant au nombre spécifié de décimales
  • floor() - Arrondit à l'entier inférieur
  • ceil() - Arrondit au nombre supérieur
  • round() - Arrondit un nombre à virgule flottante


Divise deux variantes et retourne le reste

  • « variant_int
  • variant_mul »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Divise deux variantes et retourne le reste

variant_mod

(PHP 5, PHP 7)

variant_mod — Divise deux variantes et retourne le reste

Description

mixed variant_mod ( mixed $left , mixed $right )

Divise left par right et retourne le reste.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne le reste de la division.

Voir aussi

  • variant_div() - Retourne le résultat de la division de deux variants
  • variant_idiv() - Convertit des variants en valeurs entières, et effectue alors une division


Multiplie les valeurs de deux variants

  • « variant_mod
  • variant_neg »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Multiplie les valeurs de deux variants

variant_mul

(PHP 5, PHP 7)

variant_mul — Multiplie les valeurs de deux variants

Description

mixed variant_mul ( mixed $left , mixed $right )

Multiplie left par right.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Les valeurs booléennes sont converties en -1 pour FALSE et en 0 pour TRUE

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règles de multiplication des variants
Si | Alors
Les deux expressions sont du type chaîne, date, caractère ou booléen | Multiplication
Une expression est une chaîne et l'autre est un caractère | Multiplication
Une expression est numérique et l'autre est une chaîne | Multiplication
Les deux expressions sont numériques | Multiplication
Une des expressions est NULL | NULL est retourné
Les deux expressions sont vides | Une chaîne vide est retournée

Voir aussi

  • variant_div() - Retourne le résultat de la division de deux variants
  • variant_idiv() - Convertit des variants en valeurs entières, et effectue alors une division


Effectue une négation logique sur un variant

  • « variant_mul
  • variant_not »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Effectue une négation logique sur un variant

variant_neg

(PHP 5, PHP 7)

variant_neg — Effectue une négation logique sur un variant

Description

mixed variant_neg ( mixed $variant )

Effectue une négation logique sur variant.

Liste de paramètres

variant

Le variant.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne le résultat de la négation logique.


Exécute une négation sur les bits sur un variant

  • « variant_neg
  • variant_or »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Exécute une négation sur les bits sur un variant

variant_not

(PHP 5, PHP 7)

variant_not — Exécute une négation sur les bits sur un variant

Description

mixed variant_not ( mixed $variant )

Exécute une négation sur les bits sur le paramètre variant et retourne le résultat.

Liste de paramètres

variant

Le variant.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne la négation. Si variant vaut NULL, le résultat sera également NULL.


Performe une disjonction logique sur deux variants

  • « variant_not
  • variant_pow »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Performe une disjonction logique sur deux variants

variant_or

(PHP 5, PHP 7)

variant_or — Performe une disjonction logique sur deux variants

Description

mixed variant_or ( mixed $left , mixed $right )

Effectue une opération sur les bits de types OR, selon la table de vérité suivante. Notez que ceci est différent de l'expression OR normale.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règles du OR Variant
Si left est | Si right est | alors le résultat est
TRUE | TRUE | TRUE
TRUE | FALSE | TRUE
TRUE | NULL | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | FALSE
FALSE | NULL | NULL
NULL | TRUE | TRUE
NULL | FALSE | NULL
NULL | NULL | NULL

Voir aussi

  • variant_and() - Effectue un ET entre deux variants et retourne le résultat
  • variant_xor() - Exécute une exclusion logique sur deux variants


Retourne le résultat de la fonction puissance avec deux variants

  • « variant_or
  • variant_round »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Retourne le résultat de la fonction puissance avec deux variants

variant_pow

(PHP 5, PHP 7)

variant_pow — Retourne le résultat de la fonction puissance avec deux variants

Description

mixed variant_pow ( mixed $left , mixed $right )

Retourne le résultat de left à la puissance right.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne le résultat de left à la puissance right.

Voir aussi

  • pow() - Expression exponentielle


Arrondit le variant au nombre spécifié de décimales

  • « variant_pow
  • variant_set_type »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Arrondit le variant au nombre spécifié de décimales

variant_round

(PHP 5, PHP 7)

variant_round — Arrondit le variant au nombre spécifié de décimales

Description

mixed variant_round ( mixed $variant , int $decimals )

Retourne la valeur de variant arrondi à decimals décimales.

Liste de paramètres

variant

Le variant.

decimals

Nombre de décimales.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Retourne la valeur arrondie.

Voir aussi

  • round() - Arrondit un nombre à virgule flottante


Convertit un variant en un autre type "sur-place"

  • « variant_round
  • variant_set »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Convertit un variant en un autre type "sur-place"

variant_set_type

(PHP 5, PHP 7)

variant_set_type — Convertit un variant en un autre type "sur-place"

Description

void variant_set_type ( variant $variant , int $type )

Cette fonction est similaire variant_cast() à part que le variant est modifié "sur-place" ; aucun nouveau variant n'est créé. Les paramètres de cette fonction ont la même signification que ceux de variant_cast().

Liste de paramètres

variant

Le variant.

type

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • variant_cast() - Convertit un variant en un nouvel objet variant de type différent


Assigne une nouvelle valeur pour un objet variant

  • « variant_set_type
  • variant_sub »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Assigne une nouvelle valeur pour un objet variant

variant_set

(PHP 5, PHP 7)

variant_set — Assigne une nouvelle valeur pour un objet variant

Description

void variant_set ( variant $variant , mixed $value )

Convertit value en un variant et l'assigne à l'objet variant. Aucun nouvel objet n'est créé et l'ancienne valeur de variant est libérée.

Liste de paramètres

variant

Le variant.

value

Valeurs de retour

Aucune valeur n'est retournée.


Soustrait la valeur du variant de droite de la valeur de celui de gauche

  • « variant_set
  • variant_xor »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Soustrait la valeur du variant de droite de la valeur de celui de gauche

variant_sub

(PHP 5, PHP 7)

variant_sub — Soustrait la valeur du variant de droite de la valeur de celui de gauche

Description

mixed variant_sub ( mixed $left , mixed $right )

Soustrait right de left.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règles de soustraction des variants
Si | Alors
Les deux expressions sont des chaînes | Soustraction
Une expression est une chaîne et l'autre est un caractère | Soustraction
Une expression est numérique et l'autre est une chaîne | Soustraction.
Les deux expressions sont numériques | Soustraction
Une des expressions est NULL | NULL est retourné
Les deux expressions sont vides | Une chaîne vide est retournée

Voir aussi

  • variant_add() - "Ajoute" deux valeurs de variants et retourne le résultat


Exécute une exclusion logique sur deux variants

  • « variant_sub
  • win32ps »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Exécute une exclusion logique sur deux variants

variant_xor

(PHP 5, PHP 7)

variant_xor — Exécute une exclusion logique sur deux variants

Description

mixed variant_xor ( mixed $left , mixed $right )

Exécute une exclusion logique sur deux variants.

Liste de paramètres

left

L'opérande de gauche.

right

L'opérande de droite.

Note:

Comme pour toutes les fonctions arithmétiques, les paramètres pour cette fonction peuvent être soit un type PHP natif (entier, chaîne de caractères, nombre à virgule flottante, booléen ou NULL), ou une instance de la classe COM, VARIANT ou DOTNET. Les types PHP natifs seront convertis en VARIANT en utilisant les mêmes règles que celles trouvées dans le constructeur de la classe VARIANT. Les objets COM et DOTNET auront la valeur de leur propriété par défaut récupérée et utilisée en tant que valeur VARIANT.

Les fonctions arithmétiques VARIANT sont interfacées sur les fonctions de la bibliothèque COM équivalentes ; pour plus d'informations sur ces fonctions, veuillez consulter la bibliothèque MSDN. Les fonctions PHP sont nommées de façon légèrement différentes : par exemple, variant_add(), en PHP, correspond à VarAdd() dans la documentation MSDN.

Valeurs de retour

Règles XOR pour les Variant
Si left est | Si right est | alors le résultat est
TRUE | TRUE | FALSE
TRUE | FALSE | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | FALSE
NULL | NULL | NULL

Voir aussi

  • variant_or() - Performe une disjonction logique sur deux variants
  • variant_and() - Effectue un ET entre deux variants et retourne le résultat


win32ps

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Exemples Win32ps
  • win32ps Fonctions
    • win32_ps_list_procs — Liste des processus qui fonctionnent
    • win32_ps_stat_mem — Statistiques de l'utilisation de la mémoire
    • win32_ps_stat_proc — Statistique de processus


Introduction

L'extension win32ps est une extension spécifique à Windows qui permet à PHP de récupérer des statistiques sur les processus et sur l'utilisation de la mémoire.


Pré-requis

Windows NT, Windows 2000, Windows XP ou Windows Server 2003. Toutes les versions de Windows dérivées de Windows NT devraient être compatibles.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/win32ps.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • win32ps
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


  • « Constantes pré-définies
  • Exemples Win32ps »
  • PHP Manual
  • win32ps
  • Exemples

Exemples

Sommaire

  • Exemples Win32ps


Exemples Win32ps

Exemple #1 Statistiques sur le processus PHP courant

<?php
print_r(win32_ps_stat_proc());
/*
    Array
    (
        [pid] => 936
        [exe] => D:\Daten\Source\php-5.1\Debug_TS\php.exe
        [mem] => Array
            (
                [page_fault_count] => 2062
                [peak_working_set_size] => 8396800
                [working_set_size] => 8396800
                [quota_peak_paged_pool_usage] => 32080
                [quota_paged_pool_usage] => 31876
                [quota_peak_non_paged_pool_usage] => 4240
                [quota_non_paged_pool_usage] => 3888
                [pagefile_usage] => 5865472
                [peak_pagefile_usage] => 5865472
            )

        [tms] => Array
            (
                [created] => 0.093
                [kernel] => 0.015
                [user] => 0.062
            )

    )
*/
?>

Exemple #2 Statistiques sur l'utilisation globale de la mémoire

<?php
print_r(win32_ps_stat_mem());
/*
    Array
    (
        [load] => 37
        [unit] => 1024
        [total_phys] => 1048096
        [avail_phys] => 649960
        [total_pagefile] => 2521368
        [avail_pagefile] => 2237940
        [total_virtual] => 2097024
        [avail_virtual] => 2057848
    )
*/
?>


win32ps Fonctions

Sommaire

  • win32_ps_list_procs — Liste des processus qui fonctionnent
  • win32_ps_stat_mem — Statistiques de l'utilisation de la mémoire
  • win32_ps_stat_proc — Statistique de processus


Liste des processus qui fonctionnent

  • « win32ps Fonctions
  • win32_ps_stat_mem »
  • PHP Manual
  • win32ps Fonctions
  • Liste des processus qui fonctionnent

win32_ps_list_procs

(PECL win32ps >= 1.0.1)

win32_ps_list_procs — Liste des processus qui fonctionnent

Description

array win32_ps_list_procs ( void )

Récupère des statistiques à propos de tous les processus qui fonctionnent.

Valeurs de retour

Retourne FALSE en cas d'erreur ou un tableau contenant des statistiques de processus, comme la fonction win32_ps_stat_proc() retourne pour tous les processus qui fonctionnent, en cas de succès.

Voir aussi

  • win32_ps_stat_proc() - Statistique de processus


Statistiques de l'utilisation de la mémoire

  • « win32_ps_list_procs
  • win32_ps_stat_proc »
  • PHP Manual
  • win32ps Fonctions
  • Statistiques de l'utilisation de la mémoire

win32_ps_stat_mem

(PECL win32ps >= 1.0.1)

win32_ps_stat_mem — Statistiques de l'utilisation de la mémoire

Description

array win32_ps_stat_mem ( void )

Récupère des statistiques à propos de l'utilisation globale de la mémoire.

Valeurs de retour

Retourne FALSE en cas d'échec ou un tableau contenant les informations suivantes en cas de succès :

load

La charge courante de la mémoire en pourcentage de la mémoire physique.

unit

Ceci est toujours 1024 et indique que les valeurs suivantes sont au compte de 1024 octets.

total_phys

Le nombre total de mémoire physique.

avail_phys

Le nombre total encore disponible de mémoire physique.

total_pagefile

Le nombre total de mémoire paginable (mémoire physique + fichier paginé).

avail_pagefile

Le nombre total encore disponible de mémoire paginable (mémoire physique + fichier paginé).

total_virtual

Le nombre total de mémoire virtuelle pour un processus.

avail_virtual

Le nombre total encore disponible de mémoire virtuelle pour un processus.


Statistique de processus

  • « win32_ps_stat_mem
  • win32service »
  • PHP Manual
  • win32ps Fonctions
  • Statistique de processus

win32_ps_stat_proc

(PECL win32ps >= 1.0.1)

win32_ps_stat_proc — Statistique de processus

Description

array win32_ps_stat_proc ([ int $pid = 0 ] )

Récupère les statistiques à propos du processus avec l'identifiant pid.

Liste de paramètres

pid

L'identifiant du processus à obtenir des statistiques. Si omis, l'identifiant du processus courant est utilisé.

Valeurs de retour

Retourne FALSE en cas d'échec ou un tableau contenant les informations suivantes en cas de succès :

pid

L'identifiant du processus.

exe

Le chemin de l'image exécutable.

mem

Un tableau contenant les informations à propos des indicateurs de l'utilisation de mémoire suivants : page_fault_count, peak_working_set_size, working_set_size, quota_peak_paged_pool_usage, quota_paged_pool_usage, quota_peak_non_paged_pool_usage, quota_non_paged_pool_usage, pagefile_usage et peak_pagefile_usage.

tms

Un tableau contenant les informations à propos des indicateurs de l'utilisation du temps CPU suivants : created, kernel et user.

Voir aussi

  • win32_ps_list_procs() - Liste des processus qui fonctionnent


win32service

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
    • Masque binaire de type de Service de Win32Service
    • Constantes de Status du Service de Win32Service
    • Constantes du Service de Control de Message de Win32Service
    • Masque binaire de Message de Control de Service de Win32Service
    • Constantes de Type de Demarrage du Service de Win32Service
    • Constantes de Control d'Erreur de Win32Service
    • Constantes de Service Flag de Win32Service
    • Codes d'Erreur Win32
    • Classes de Priorité de Base Win32
  • Exemples
  • Fonctions win32service
    • win32_continue_service — Reprise d'un service en pause
    • win32_create_service — Crée une nouvelle entrée pour service dans la base de données SCM
    • win32_delete_service — Supprime une entrée de service de la base de données SCM
    • win32_get_last_control_message — Retourne le dernier message de contrôle qui a été envoyé à ce service
    • win32_pause_service — Met en pause un service
    • win32_query_service_status — Questionne le statut d'un service
    • win32_set_service_status — Met à jour le statut d'un service
    • win32_start_service_ctrl_dispatcher — Enregistre un script avec SCM, alors il peut être interprété en tant que service avec le nom donné
    • win32_start_service — Démarre un service
    • win32_stop_service — Arrête un service


Introduction

L'extension win32service est une extension spécifique à Windows qui autorise PHP à communiquer avec la Gestion de Contrôle de Service pour démarrer, arrêter, enregistrer ou effacer des services, et autorise aussi vos scripts PHP à s'exécuter en tant que service.


Pré-requis

Windows NT, Windows 2000, Windows XP ou Windows Server 2003. N'importe quelle version de windows dérivé de Windows NT devrait être compatible.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/win32service


Constantes pré-définies

Sommaire

  • Masque binaire de type de Service de Win32Service
  • Constantes de Status du Service de Win32Service
  • Constantes du Service de Control de Message de Win32Service
  • Masque binaire de Message de Control de Service de Win32Service
  • Constantes de Type de Demarrage du Service de Win32Service
  • Constantes de Control d'Erreur de Win32Service
  • Constantes de Service Flag de Win32Service
  • Codes d'Erreur Win32
  • Classes de Priorité de Base Win32

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.


Masque binaire de type de Service de Win32Service

  • « Constantes pré-définies
  • Constantes de Status du Service de Win32Service »
  • PHP Manual
  • Constantes pré-définies
  • Masque binaire de type de Service de Win32Service
Masque binaire de type de Service de Win32Service
Constante | Valeur | Description
WIN32_SERVICE_WIN32_OWN_PROCESS | 0x00000010 | Le service s'exécute dans son propre processus.
WIN32_SERVICE_INTERACTIVE_PROCESS | 0x00000100 | Le service peut interagir avec le bureau. Cette option n'est pas disponible sur Windows Vista ou version ultérieure.
WIN32_SERVICE_WIN32_OWN_PROCESS_INTERACTIVE | 0x00000110 | Le service s'exécute dans son propre processus et peut interagir avec le bureau. Cette option n'est pas disponible sous Windows Vista et suivant.


Constantes de Status du Service de Win32Service

  • « Masque binaire de type de Service de Win32Service
  • Constantes du Service de Control de Message de Win32Service »
  • PHP Manual
  • Constantes pré-définies
  • Constantes de Status du Service de Win32Service
Constantes de Status du Service de Win32Service
Constante | Valeur | Description
WIN32_SERVICE_CONTINUE_PENDING | 0x00000005 | La continuation du service est en attente.
WIN32_SERVICE_PAUSE_PENDING | 0x00000006 | La pause du service est en attente.
WIN32_SERVICE_PAUSED | 0x00000007 | Le service est en pause.
WIN32_SERVICE_RUNNING | 0x00000004 | Le service est en cours d'exécution.
WIN32_SERVICE_START_PENDING | 0x00000002 | Le service est en cours de démarrage.
WIN32_SERVICE_STOP_PENDING | 0x00000003 | Le service est en cours d'arrêt.
WIN32_SERVICE_STOPPED | 0x00000001 | Le service est arrêté.


Constantes du Service de Control de Message de Win32Service

  • « Constantes de Status du Service de Win32Service
  • Masque binaire de Message de Control de Service de Win32Service »
  • PHP Manual
  • Constantes pré-définies
  • Constantes du Service de Control de Message de Win32Service
Constantes du Service de Control de Message de Win32Service
Constante | Valeur | Description
WIN32_SERVICE_CONTROL_CONTINUE | 0x00000003 | Avertit un service suspendu qu'il devrait reprendre.
WIN32_SERVICE_CONTROL_INTERROGATE | 0x00000004 | Avertit un service qu'il doit rendre compte de informations sur son état actuel au gestionnaire de contrôle de service.
WIN32_SERVICE_CONTROL_PAUSE | 0x00000002 | Avertit un service qu'il doit se mettre en pause.
WIN32_SERVICE_CONTROL_PRESHUTDOWN | 0x0000000F | Avertit un service que le système va s'arrêter. Un service qui gère cette notification bloque l'arrêt du système jusqu'à l'arrêt du service ou jusqu'à ce que le délai preshutdown expire. Cette valeur n'est pas pris en charge par Windows Server 2003 et Windows XP/2000.
WIN32_SERVICE_CONTROL_SHUTDOWN | 0x00000005 | Avertit un service que le système s'arrête et que le service peut donc effectuer des tâches de nettoyage. Si un service accepte ce code de contrôle, il doit s'arrêter dès qu'il s'acquitte de ses tâches de nettoyage. Après l'envoie ce code de contrôle par l'ACM, aucun autre code de contrôle ne sera envoyé au service.
WIN32_SERVICE_CONTROL_STOP | 0x00000001 | Avertit un service qu'il doit s'arrêter.


Masque binaire de Message de Control de Service de Win32Service

  • « Constantes du Service de Control de Message de Win32Service
  • Constantes de Type de Demarrage du Service de Win32Service »
  • PHP Manual
  • Constantes pré-définies
  • Masque binaire de Message de Control de Service de Win32Service
Masque binaire de Message de Control de Service de Win32Service
Constante | Valeur | Description
WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE | 0x00000002 | Le service peut être mis en pause et continué. Ce code de control permet au service de recevoir les notifications WIN32_SERVICE_CONTROL_PAUSE et WIN32_SERVICE_CONTROL_CONTINUE.
WIN32_SERVICE_ACCEPT_PRESHUTDOWN | 0x00000100 | Le service peut effectuer des tâche d'avant arrêt. Ce code de control permet au service de recevoir la notification WIN32_SERVICE_CONTROL_PRESHUTDOWN. Cette valeur n'est pas pris en charge par Windows Server 2003 et Windows XP/2000.
WIN32_SERVICE_ACCEPT_SHUTDOWN | 0x00000004 | Le service est informé lorsque l'arrêt du système se produit. Ce code de control permet au service de recevoir la notification WIN32_SERVICE_CONTROL_SHUTDOWN.
WIN32_SERVICE_ACCEPT_STOP | 0x00000001 | Le service peut être stoppé. Ce control permet au service de recevoir la notification WIN32_SERVICE_CONTROL_STOP.


Constantes de Type de Demarrage du Service de Win32Service

  • « Masque binaire de Message de Control de Service de Win32Service
  • Constantes de Control d'Erreur de Win32Service »
  • PHP Manual
  • Constantes pré-définies
  • Constantes de Type de Demarrage du Service de Win32Service
Constantes de Type de Demarrage du Service de Win32Service
Constante | Valeur | Description
WIN32_SERVICE_AUTO_START | 0x00000002 | Un service lancé automatiquement par le gestionnaire de contrôle de service au démarrage du système.
WIN32_SERVICE_DEMAND_START | 0x00000003 | Un service a démarré par le gestionnaire de contrôle de service quand un processus appel la fonction StartService.
WIN32_SERVICE_DISABLED | 0x00000004 | Un service qui ne peut pas être démarré. Les tentatives pour démarrer retourne un code d'erreur WIN32_ERROR_SERVICE_DISABLED .


Constantes de Control d'Erreur de Win32Service

  • « Constantes de Type de Demarrage du Service de Win32Service
  • Constantes de Service Flag de Win32Service »
  • PHP Manual
  • Constantes pré-définies
  • Constantes de Control d'Erreur de Win32Service
Constantes de Control d'Erreur de Win32Service
Constante | Valeur | Description
WIN32_SERVICE_ERROR_IGNORE | 0x00000000 | Le programme de démarrage ignore l'erreur et continue l'opération de démarrage.
WIN32_SERVICE_ERROR_NORMAL | 0x00000001 | Le programme de démarrage enregistre l'erreur dans le journal des événements, mais il continue l'opération de démarrage.


Constantes de Service Flag de Win32Service

  • « Constantes de Control d'Erreur de Win32Service
  • Codes d'Erreur Win32 »
  • PHP Manual
  • Constantes pré-définies
  • Constantes de Service Flag de Win32Service
Constantes de Service Flag de Win32Service
Constante | Valeur | Description
WIN32_SERVICE_RUNS_IN_SYSTEM_PROCESS | 0x00000001 | Le service s'exécute dans un processus système qui doit toujours être en cours d'exécution.


Codes d'Erreur Win32

  • « Constantes de Service Flag de Win32Service
  • Classes de Priorité de Base Win32 »
  • PHP Manual
  • Constantes pré-définies
  • Codes d'Erreur Win32
Codes d'Erreur Win32
Constante | Valeur | Description
WIN32_ERROR_ACCESS_DENIED | 0x00000005 | Le gestionnaire de la base de données SMC ne dispose pas des droits d'accès appropriés.
WIN32_ERROR_CIRCULAR_DEPENDENCY | 0x00000423 | Une dépendance circulaire de service est spécifiée.
WIN32_ERROR_DATABASE_DOES_NOT_EXIST | 0x00000429 | La base de données spécifiée n'existe pas.
WIN32_ERROR_DEPENDENT_SERVICES_RUNNING | 0x0000041B | Le service ne peut être stoppé car d'autres services en cours d'exécution dépendent de lui.
WIN32_ERROR_DUPLICATE_SERVICE_NAME | 0x00000436 | Le nom d'affichage existe déjà dans la base de données du gestionnaire de service en tant que nom de service ou que nom d'affichage.
WIN32_ERROR_FAILED_SERVICE_CONTROLLER_CONNECT | 0x00000427 | Cette erreur est retournée si le programme est exécuté en application console plutôt qu'en tant que service. Si le programme est exécuté en tant qu'application console à des fins de débogage, il devrat être structuré afin que le code spécifique au service ne sois jamais appelé.
WIN32_ERROR_INSUFFICIENT_BUFFER | 0x0000007A | Le tampon est trop petit pour la structure d'état de service. Rien n'a été écrit à la structure.
WIN32_ERROR_INVALID_DATA | 0x0000000D | Le structure d'état de service indiquée n'est pas valide.
WIN32_ERROR_INVALID_HANDLE | 0x00000006 | Le handle pour le gestionnaire de service de control spécifié est invalide.
WIN32_ERROR_INVALID_LEVEL | 0x0000007C | Le paramètre InfoLevel contient une valeur non prise en charge.
WIN32_ERROR_INVALID_NAME | 0x0000007B | Le nom de service spécifié n'est pas valide.
WIN32_ERROR_INVALID_PARAMETER | 0x00000057 | Un paramètre spécifié n'est pas valide.
WIN32_ERROR_INVALID_SERVICE_ACCOUNT | 0x00000421 | Le nom d'utilisateur spécifié dans le paramètre user n'existe pas. Voir win32_create_service().
WIN32_ERROR_INVALID_SERVICE_CONTROL | 0x0000041C | Le code de control demandé n'est pas valide, ou il est inacceptable pour le service.
WIN32_ERROR_PATH_NOT_FOUND | 0x00000003 | Le service de fichier binaire n'a pu être trouvé.
WIN32_ERROR_SERVICE_ALREADY_RUNNING | 0x00000420 | Une instance du service est déjà en cours d'exécution.
WIN32_ERROR_SERVICE_CANNOT_ACCEPT_CTRL | 0x00000425 | Le code de control demandé ne peut être envoyé au service car l'état du service est WIN32_SERVICE_STOPPED, WIN32_SERVICE_START_PENDING ou WIN32_SERVICE_STOP_PENDING.
WIN32_ERROR_SERVICE_DATABASE_LOCKED | 0x0000041F | La base de données est verouillée.
WIN32_ERROR_SERVICE_DEPENDENCY_DELETED | 0x00000433 | Le service dépend d'un service qui n'existe pas ou qui a été marqué pour suppression.
WIN32_ERROR_SERVICE_DEPENDENCY_FAIL | 0x0000042C | Ce service dépend d'un autre service qui n'a pas pu démarrer.
WIN32_ERROR_SERVICE_DISABLED | 0x00000422 | Le service a été désactivé.
WIN32_ERROR_SERVICE_DOES_NOT_EXIST | 0x00000424 | Le service spécifié n'existe pas en tant que service installé.
WIN32_ERROR_SERVICE_EXISTS | 0x00000431 | Le service spécifié existe déjà dans la base de données.
WIN32_ERROR_SERVICE_LOGON_FAILED | 0x0000042D | Le service n'a pas démarré en raison d'un échec de connexion. Cette erreur se produit si le service est configuré pour s'exécuter sous un compte qui n'a pas les droits "connecter en tant que service".
WIN32_ERROR_SERVICE_MARKED_FOR_DELETE | 0x00000430 | Le service spécifié a déjà été marqué pour suppression.
WIN32_ERROR_SERVICE_NO_THREAD | 0x0000041E | Un thread n'a pas pu être créé pour le service.
WIN32_ERROR_SERVICE_NOT_ACTIVE | 0x00000426 | Le service n'a pas été démarré.
WIN32_ERROR_SERVICE_REQUEST_TIMEOUT | 0x0000041D | Le processus du service a été démarré, mais il n'a pas appelé StartServiceCtrlDispatcher, ou le thread qui a appelé StartServiceCtrlDispatcher peut être bloqué dans une fonction du gestionnaire de contrôle.
WIN32_ERROR_SHUTDOWN_IN_PROGRESS | 0x0000045B | Le système s'arrête, cette fonction ne peut pas être appelée.
WIN32_NO_ERROR | 0x00000000 | Aucune erreur.


Classes de Priorité de Base Win32

  • « Codes d'Erreur Win32
  • Exemples »
  • PHP Manual
  • Constantes pré-définies
  • Classes de Priorité de Base Win32
Classes de Priorité de Base Win32
Constante | Valeur | Description
WIN32_ABOVE_NORMAL_PRIORITY_CLASS | 0x00008000 | Processus ayant une priorité supérieure WIN32_NORMAL_PRIORITY_CLASS mais inférieure à WIN32_HIGH_PRIORITY_CLASS.
WIN32_BELOW_NORMAL_PRIORITY_CLASS | 0x00004000 | Processsus ayant une priorité supperieur à WIN32_IDLE_PRIORITY_CLASS mais inférieure à WIN32_NORMAL_PRIORITY_CLASS.
WIN32_HIGH_PRIORITY_CLASS | 0x00000080 | Processus qui exécute des tâches critiques dans le temps qui doivent être exécutées immédiatement. Le thread du processus devance les threads de priorité normale ou au repos. Un exemple est la liste des tâches, qui doit répondre rapidement quand elle est appelée par l'utilisateur quel que sois la charge du système. Soyez extrêmement prudent lorsque vous utilisez la classe de haute priorité, car une application de classe de haute priorité peut utiliser presque tout le temps CPU disponible.
WIN32_IDLE_PRIORITY_CLASS | 0x00000040 | Processus dont les threads ne s'exécutent que lorsque le système est inactif. Les threads du processus sont devancés par les threads de tout processus en cours ayant une classe de plus grande priorité. Un exemple est un économiseur d'écran. Cette classe est héritée par les processus enfants.
WIN32_NORMAL_PRIORITY_CLASS | 0x00000020 | Processus sans planification de besoins spéciaux.
WIN32_REALTIME_PRIORITY_CLASS | 0x00000100 | Processus ayant la plus haute priorité possible. Les threads du processus devance les threads de tout autre processus, y compris les processus du système d'exploitation exécutant des tâches importantes. Par exemple, un processus en temps réel qui s'exécute un peu trop lentement peut causer des pertes d'ecriture du tampon sur le disque ou empecher à la souris de répondre.


Exemples

Exemple #1 Enregistre un script PHP pour exécuter en tant que service

<?php
win32_create_service(array(
    'service'     => 'dummyphp',                                           # nom du service
    'display'     => 'sample dummy PHP service',                           # description courte
    'description' => 'This is a dummy Windows service created using PHP.', # description longue
    'params'      => '"' . __FILE__ . '"  run',                            # chemin vers le script et paramètres
));
?>

Exemple #2 Efface un service

<?php
win32_delete_service('dummyphp');
?>

Exemple #3 Exécution d'un service

<?php
if ($argv[1] == 'run') {
  win32_start_service_ctrl_dispatcher('dummyphp');

  while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
    # effectuer votre travail ici.
    # essayez de ne pas prendre plus de 30 secondes avant de retourner au
    # début de la boucle
  }
}
?>


Fonctions win32service

Sommaire

  • win32_continue_service — Reprise d'un service en pause
  • win32_create_service — Crée une nouvelle entrée pour service dans la base de données SCM
  • win32_delete_service — Supprime une entrée de service de la base de données SCM
  • win32_get_last_control_message — Retourne le dernier message de contrôle qui a été envoyé à ce service
  • win32_pause_service — Met en pause un service
  • win32_query_service_status — Questionne le statut d'un service
  • win32_set_service_status — Met à jour le statut d'un service
  • win32_start_service_ctrl_dispatcher — Enregistre un script avec SCM, alors il peut être interprété en tant que service avec le nom donné
  • win32_start_service — Démarre un service
  • win32_stop_service — Arrête un service


Reprise d'un service en pause

  • « Fonctions win32service
  • win32_create_service »
  • PHP Manual
  • Fonctions win32service
  • Reprise d'un service en pause

win32_continue_service

(PECL win32service SVN)

win32_continue_service — Reprise d'un service en pause

Description

int win32_continue_service ( string $servicename [, string $machine ] )

Reprise d'un service en pause. Nécessite les privilèges d'administrateur.

Liste de paramètres

servicename

Le nom court du service.

machine

Nom de la machine (optionnel). Si omis, la machine locale sera utilisée.

Valeurs de retour

Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Voir aussi

  • win32_start_service() - Démarre un service
  • Les codes erreur Win32


Crée une nouvelle entrée pour service dans la base de données SCM

  • « win32_continue_service
  • win32_delete_service »
  • PHP Manual
  • Fonctions win32service
  • Crée une nouvelle entrée pour service dans la base de données SCM

win32_create_service

(PECL win32service SVN)

win32_create_service — Crée une nouvelle entrée pour service dans la base de données SCM

Description

mixed win32_create_service ( array $details [, string $machine ] )

Liste de paramètres

details

Un tableau des détails des services :

service

Le nom court du service. C'est le nom que vous utiliserez pour contrôler le service en utilisant la commande net. Le service doit être unique (deux services ne peuvent partager le même nom), et idéalement, devrait éviter d'avoir des espaces dans son nom.

display

Le nom d'affichage du service. C'est le nom que vous verrez dans l'Applet Services.

description

La description longue du service. C'est la description que vous verrez dans l'Applet des services.

user

Le nom de l'utilisateur sous lequel vous voulez que le service s'exécute. Si oublié, le service fonctionnera en tant que LocalSystem. Si le nom de l'utilisateur est spécifié, vous devez aussi fournir un mot de passe.

password

Le mot de passe qui correspond à user.

path

Le chemin complet au module exécutable qui sera démarré lorsque le service est démarré. Si oublié, le chemin du processus courant de PHP sera utilisé.

params

Paramètres de commande à passer au service lorsqu'il démarre. Si vous voulez exécuter un script PHP en tant que service, alors le premier paramètre devrait être le chemin complet au script PHP que vous prévoyez exécuter. Si le nom du script ou le chemin contiennent des espaces, alors, entourez le chemin complet du script PHP par des "

load_order

Contrôle le load_order. Cela n'est pas encore complètement supporté.

svc_type

Fixe le type de service. Si oublié, la valeur par défaut est WIN32_SERVICE_WIN32_OWN_PROCESS. Ne changez pas ceci à moins que vous savez vraiment ce que vous faites.

start_type

Spécifie comment le service devrait être démarré. La valeur par défaut est WIN32_SERVIDE_AUTO_START qui signifie que le service sera démarré lorsque la machine démarrera.

error_control

Informe le SCM à propos de ce qu'il devrait faire lorsqu'il détecte un problème avec le service. La valeur par défaut est WIN32_SERVER_ERROR_IGNORE. Le changement de cette valeur n'est pas encore complètement supporté.

delayed_start

Si delayed_start est défini à TRUE, alors il informera le SCM que ce service doit être démarré après les services démarrés automatiquement et un certain délai.

N'importe quel service peut être marqué comme étant un service retardé après le démarrage automatique ; cependant, cette configuration n'a aucun effet tant que le paramètre start_type du service vaut WIN32_SERVICE_AUTO_START.

Cette configuration n'est application que sous Windows Vista et les serveurs Windows 2008 et suivants.

base_priority

Pour réduire l'impacte sur l'utilisation du processeur, il peut être nécessaire de définir une priorité plus basse qu'à la normale.

Le paramètre base_priority peut être défini à une des constantes définies dans les classes de basse priorité Win32.

machine

Le nom optionnel de la machine sur lequel vous voulez créer le service. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Exemples

Exemple #1 Exemple avec win32_create_service()

Crée un service dont le nom court est 'dummyphp'.

<?php
$x = win32_create_service(array(
    'service'     => 'dummyphp',                                          # le nom de votre service
    'display'     => 'service PHP simple PHP',                            # la description courte
    'description' => 'Ceci est un service Windows créé en utilisant PHP', # la description longue
    'params'      => '"' . __FILE__ . '"  run',                           # chemin vers le script ainsi que les paramètres
));
debug_zval_dump($x);
?>

Voir aussi

  • win32_delete_service() - Supprime une entrée de service de la base de données SCM
  • Les classes de basse priorité Win32
  • Les codes erreurs Win32


Supprime une entrée de service de la base de données SCM

  • « win32_create_service
  • win32_get_last_control_message »
  • PHP Manual
  • Fonctions win32service
  • Supprime une entrée de service de la base de données SCM

win32_delete_service

(PECL win32service SVN)

win32_delete_service — Supprime une entrée de service de la base de données SCM

Description

mixed win32_delete_service ( string $servicename [, string $machine ] )

Essaie de supprimer un service de la base de données SCM. Les privilèges d'administrateur sont requis pour que cette fonction réussisse.

Cette fonction ne fait que marquer le service pour suppression. Si d'autre processus (comme l'Applet Services) sont ouverts, alors la suppression sera reportée jusqu'à ce que ces applications soient fermées. Si un service est marqué pour suppression, d'autres tentatives de suppression échoueront et les tentatives de créer un nouveau service avec ce nom échoueront aussi.

Liste de paramètres

servicename

Le nom court du service.

machine

Le nom optionnel de la machine. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Exemples

Exemple #1 Exemple avec win32_delete_service()

Supprime le service dummyphp.

<?php
win32_delete_service('dummyphp');
?>

Voir aussi

  • win32_create_service() - Crée une nouvelle entrée pour service dans la base de données SCM
  • Les codes erreur Win32


Retourne le dernier message de contrôle qui a été envoyé à ce service

  • « win32_delete_service
  • win32_pause_service »
  • PHP Manual
  • Fonctions win32service
  • Retourne le dernier message de contrôle qui a été envoyé à ce service

win32_get_last_control_message

(PECL win32service SVN)

win32_get_last_control_message — Retourne le dernier message de contrôle qui a été envoyé à ce service

Description

int win32_get_last_control_message ( void )

Retourne le code de contrôle qui a été envoyé en dernier à ce processus de service. Lorsqu'il fonctionne en tant que service, vous devriez vérifier périodiquement pour déterminer si le service doit être arrêté.

Valeurs de retour

Retourne une constante de contrôle qui sera une parmi les constantes de contrôle des messages de service Win32Service : WIN32_SERVICE_CONTROL_CONTINUE, WIN32_SERVICE_CONTROL_INTERROGATE, WIN32_SERVICE_CONTROL_PAUSE, WIN32_SERVICE_CONTROL_PRESHUTDOWN, WIN32_SERVICE_CONTROL_SHUTDOWN, WIN32_SERVICE_CONTROL_STOP.

Voir aussi

  • win32_start_service_ctrl_dispatcher() - Enregistre un script avec SCM, alors il peut être interprété en tant que service avec le nom donné
  • les constantes de contrôle des messages de service Win32Service


Met en pause un service

  • « win32_get_last_control_message
  • win32_query_service_status »
  • PHP Manual
  • Fonctions win32service
  • Met en pause un service

win32_pause_service

(PECL win32service SVN)

win32_pause_service — Met en pause un service

Description

int win32_pause_service ( string $servicename [, string $machine ] )

Met en pause un service. Nécessite les privilèges d'administrateur.

Liste de paramètres

servicename

Le nom court du service.

machine

Nom de la machine (optionnel). Si omis, la machine locale sera utilisée.

Valeurs de retour

Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Voir aussi

  • win32_start_service() - Démarre un service
  • Les codes erreur Win32


Questionne le statut d'un service

  • « win32_pause_service
  • win32_set_service_status »
  • PHP Manual
  • Fonctions win32service
  • Questionne le statut d'un service

win32_query_service_status

(PECL win32service SVN)

win32_query_service_status — Questionne le statut d'un service

Description

mixed win32_query_service_status ( string $servicename [, string $machine ] )

Questionne le statut courant pour un service, retournant un tableau d'informations.

Liste de paramètres

servicename

Le nom court du service.

machine

Le nom optionnel de la machine. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Retourne un tableau contenant les informations suivantes en cas de succès, , FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

ServiceType

Le dwServiceType. Voir les masques de type de service Win32Service.

CurrentState

Le dwCurrentState. Voir les constantes de statut des services Win32Service.

ControlsAccepted

Quels contrôles de service sont acceptés par le service. Voir les masques acceptés pour les messages de contrôle de service Win32Service.

Win32ExitCode

Si le service quitte, le code de retour du processus.

ServiceSpecificExitCode

Si le service quitte avec une condition d'erreur, le code spécifique du service qui sera enregistré dans le journal d'évènements est visible ici.

CheckPoint

Si le service s'arrête, garde le nombre courant de point de contrôle. Ceci est utilisé par SCM comme un genre de battement de coeur pour détecter un processus de service arrêté. La valeur du point de contrôle est mieux interprétée en conjonction avec la valeur WaitHint.

WaitHint

Si le service s'arrête, il fixera un WaitHint à une valeur de point de contrôle qui indiquera l'exécution 100%. Cela peut être utilisé pour implanter un indicateur de progrès.

ProcessId

L'identifiant de processus de fenêtre. Si 0, le processus ne fonctionne pas.

ServiceFlags

Le dwServiceFlags. Voir les constantes utilisées pour les drapeaux des services Win32Service.

Voir aussi

  • Les constantes Win32Service prédéfinies


Met à jour le statut d'un service

  • « win32_query_service_status
  • win32_start_service_ctrl_dispatcher »
  • PHP Manual
  • Fonctions win32service
  • Met à jour le statut d'un service

win32_set_service_status

(PECL win32service SVN)

win32_set_service_status — Met à jour le statut d'un service

Description

bool win32_set_service_status ( int $status [, int $checkpoint = 0 ] )

Informe le SCM d'un statut courant d'un service qui fonctionne. Cet appel est seulement valide pour un processus de service qui fonctionne.

Liste de paramètres

status

Le code de statut de service, un de WIN32_SERVICE_RUNNING, WIN32_SERVICE_STOPPED, WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING, WIN32_SERVICE_PAUSE_PENDING, WIN32_SERVICE_PAUSED.

checkpoint

Cette valeur sera incrémentée par le service périodiquement pour reporter sa progression lors des opérations de démarrage, d'arrêt, de pause ou de reprise. Par exemple, le service incrémentera cette valeur lorsqu'il aura terminé chaque étape de son initialisation lors de son démarrage.

checkpoint n'est valide que lorsque status est une des constantes suivantes : WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING ou WIN32_SERVICE_PAUSE_PENDING.

Valeurs de retour

Returns TRUE on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Voir aussi

  • win32_start_service_ctrl_dispatcher() - Enregistre un script avec SCM, alors il peut être interprété en tant que service avec le nom donné
  • Les constantes de statut des services Win32Service


Enregistre un script avec SCM, alors il peut être interprété en tant que service avec le nom donné

  • « win32_set_service_status
  • win32_start_service »
  • PHP Manual
  • Fonctions win32service
  • Enregistre un script avec SCM, alors il peut être interprété en tant que service avec le nom donné

win32_start_service_ctrl_dispatcher

(PECL win32service SVN)

win32_start_service_ctrl_dispatcher — Enregistre un script avec SCM, alors il peut être interprété en tant que service avec le nom donné

Description

mixed win32_start_service_ctrl_dispatcher ( string $name )

Lorsque exécuté via le Gestionnaire de Contrôle de Service, un processus de service est requis pour "archiver" avec lui pour établir un service de surveillance et de communication ergonomique. Cette fonction effectue un archivage en démarrant un thread pour gérer les communications de bas niveau avec le gestionnaire de contrôle de service.

Une fois démarré, le processus du service doit faire 2 choses. La première est d'indiquer au Service Control Manager que le service est en cours d'exécution. La seconde est d'appeler la fonction win32_set_service_status() avec la constante WIN32_SERVICE_RUNNING. Si vous avez besoin de lancer des processus longs avant que le service ne soit lancé, alors vous pouvez utiliser la constante WIN32_SERVICE_START_PENDING. La seconde est de continuer à vérifier en utilisant le Service Control Manager sachant qu'il peut déterminer si le service se termine ou non. Ceci consiste à appeler, périodiquement, la fonction win32_get_last_control_message() et à traiter le code retourné.

Liste de paramètres

name

Le court nom du service, comme enregistré par win32_create_service().

Valeurs de retour

Returns TRUE on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Exemples

Exemple #1 Exemple avec win32_start_service_ctrl_dispatcher()

Vérifie si le service fonctionne sous SCM.

<?php
if (!win32_start_service_ctrl_dispatcher('dummyphp')) {
  die("Je ne fonctionne probablement pas sous le gestionnaire de contrôle de service");
}

win32_set_service_status(WIN32_SERVICE_START_PENDING);

// Quelques processus longs à récupérer pendant que le service fonctionne.

win32_set_service_status(WIN32_SERVICE_RUNNING);

while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
  # effectuer votre travail ici.
  # essayez de ne pas prendre plus de 30 secondes avant de retourner au
}
?>

Voir aussi

  • win32_set_service_status() - Met à jour le statut d'un service
  • win32_get_last_control_message() - Retourne le dernier message de contrôle qui a été envoyé à ce service
  • Les codes erreur Win32


Démarre un service

  • « win32_start_service_ctrl_dispatcher
  • win32_stop_service »
  • PHP Manual
  • Fonctions win32service
  • Démarre un service

win32_start_service

(PECL win32service SVN)

win32_start_service — Démarre un service

Description

int win32_start_service ( string $servicename [, string $machine ] )

Essaie de démarrer le service nommé. Normalement, les privilèges d'administrateur sont requis.

Liste de paramètres

servicename

Le nom court du service.

machine

Le nom optionnel de la machine. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Voir aussi

  • win32_stop_service() - Arrête un service
  • Codes erreur Win32


Arrête un service

  • « win32_start_service
  • Manipulation XML »
  • PHP Manual
  • Fonctions win32service
  • Arrête un service

win32_stop_service

(PECL win32service SVN)

win32_stop_service — Arrête un service

Description

int win32_stop_service ( string $servicename [, string $machine ] )

Arrête un service nommé. Les privilèges d'administrateur sont requis.

Liste de paramètres

servicename

Le nom court du service.

machine

Le nom optionnel de la machine. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code on failure.

Voir aussi

  • win32_start_service() - Démarre un service
  • Codes erreur Win32


Manipulation XML

  • DOM — Model Objet d'un document
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • DOMAttr — La classe DOMAttr
    • DOMCdataSection — La classe DOMCdataSection
    • DOMCharacterData — La classe DOMCharacterData
    • DOMComment — La classe DOMComment
    • DOMDocument — La classe DOMDocument
    • DOMDocumentFragment — La classe DOMDocumentFragment
    • DOMDocumentType — La classe DOMDocumentType
    • DOMElement — La classe DOMElement
    • DOMEntity — La classe DOMEntity
    • DOMEntityReference — La classe DOMEntityReference
    • DOMException — La classe DOMException
    • DOMImplementation — La classe DOMImplementation
    • DOMNamedNodeMap — La classe DOMNamedNodeMap
    • DOMNode — La classe DOMNode
    • DOMNodeList — La classe DOMNodeList
    • DOMNotation — La classe DOMNode
    • DOMProcessingInstruction — La classe DOMProcessingInstruction
    • DOMText — La classe DOMText
    • DOMXPath — La classe DOMXPath
    • DOM Fonctions
  • libxml
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • libXMLError — La classe libXMLError
    • Fonctions libxml
  • SDO
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Limitations
    • Exemples
    • Fonctions SDO
  • SDO-DAS-Relational — SDO Relationnel Service d'Accès de Données
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Limitations
    • Fonctions SDO-DAS-Relational
  • SDO DAS XML — Fonctions de Service d'Accès de Données SDO XML
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions SDO DAS XML
  • SimpleXML
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • SimpleXMLElement — La classe SimpleXMLElement
    • SimpleXMLIterator — La classe SimpleXMLIterator
    • Fonctions SimpleXML
  • WDDX
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • WDDX Fonctions
  • XMLDiff — XML : Différence et fusion
    • Introduction
    • Installation/Configuration
    • XMLDiff\Base — La classe XMLDiff\Base
    • XMLDiff\DOM — La classe XMLDiff\DOM
    • XMLDiff\Memory — La classe XMLDiff\Memory
    • XMLDiff\File — La classe XMLDiff\File
  • Analyseur syntaxique XML
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • gestionnaires d'événements
    • Problèmes de casse
    • Codes d'erreurs
    • Codage des caractères
    • Exemples
    • Fonctions d'analyse de fichier XML
  • XMLReader
    • Introduction
    • Installation/Configuration
    • XMLReader — La classe XMLReader
  • XMLWriter
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions XMLWriter
  • XSL
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • XSLTProcessor — La classe XSLTProcessor


Model Objet d'un document

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • DOMAttr — La classe DOMAttr
    • DOMAttr::__construct — Crée un nouvel objet DOMAttr
    • DOMAttr::isId — Vérifie si l'attribut est un identifiant défini
  • DOMCdataSection — La classe DOMCdataSection
    • DOMCdataSection::__construct — Construit un nouvel objet DOMCdataSection
  • DOMCharacterData — La classe DOMCharacterData
    • DOMCharacterData::appendData — Ajoute la chaîne à la fin des données dans le noeud
    • DOMCharacterData::deleteData — Supprime une sous-chaîne dans le noeud
    • DOMCharacterData::insertData — Insère une chaîne à la position spécifiée d'unité 16-bit
    • DOMCharacterData::replaceData — Remplace une sous-chaîne dans le noeud DOMCharacterData
    • DOMCharacterData::substringData — Extrait un morceau de données dans le noeud
  • DOMComment — La classe DOMComment
    • DOMComment::__construct — Crée un nouvel objet DOMComment
  • DOMDocument — La classe DOMDocument
    • DOMDocument::__construct — Crée un nouvel objet DOMDocument
    • DOMDocument::createAttribute — Crée un nouvel attribut
    • DOMDocument::createAttributeNS — Crée un nouvel attribut avec un espace de noms associé
    • DOMDocument::createCDATASection — Crée un nouveau noeud cdata
    • DOMDocument::createComment — Crée un nouveau noeud de commentaire
    • DOMDocument::createDocumentFragment — Crée un nouveau fragment de document
    • DOMDocument::createElement — Crée un nouveau noeud
    • DOMDocument::createElementNS — Crée un nouveau noeud avec un espace de noms associé
    • DOMDocument::createEntityReference — Crée un nouveau noeud de référence d'entité
    • DOMDocument::createProcessingInstruction — Crée un nouveau noeud PI
    • DOMDocument::createTextNode — Crée un nouveau noeud de texte
    • DOMDocument::getElementById — Cherche un élément avec un certain identifiant
    • DOMDocument::getElementsByTagName — Cherche tous les éléments qui ont le nom de la balise locale donné
    • DOMDocument::getElementsByTagNameNS — Recherche tous les éléments avec un nom de balise donné dans un espace de noms spécifié
    • DOMDocument::importNode — Importe un noeud dans le document courant
    • DOMDocument::load — Charge du XML depuis un fichier
    • DOMDocument::loadHTML — Charge du code HTML à partir d'une chaîne de caractères
    • DOMDocument::loadHTMLFile — Charge du HTML à partir d'un fichier
    • DOMDocument::loadXML — Charge du XML depuis une chaîne de caractères
    • DOMDocument::normalizeDocument — Normalise le document
    • DOMDocument::registerNodeClass — Enregistre la classe étendue utilisée pour créer un type de base de noeud
    • DOMDocument::relaxNGValidate — Effectue une validation relaxNG sur le document
    • DOMDocument::relaxNGValidateSource — Effectue une validation relaxNG sur le document
    • DOMDocument::save — Sauvegarde l'arbre interne XML dans un fichier
    • DOMDocument::saveHTML — Sauvegarde le document interne dans une chaîne en utilisant un formatage HTML
    • DOMDocument::saveHTMLFile — Sauvegarde un document interne dans un fichier en utilisant un formatage HTML
    • DOMDocument::saveXML — Sauvegarde l'arbre interne XML dans une chaîne de caractères
    • DOMDocument::schemaValidate — Valide un document selon un schéma
    • DOMDocument::schemaValidateSource — Valide un document selon un schéma
    • DOMDocument::validate — Valide un document en se basant sur sa DTD
    • DOMDocument::xinclude — Remplace les XIncludes dans un objet DOMDocument
  • DOMDocumentFragment — La classe DOMDocumentFragment
    • DOMDocumentFragment::appendXML — Ajoute des données XML
  • DOMDocumentType — La classe DOMDocumentType
  • DOMElement — La classe DOMElement
    • DOMElement::__construct — Crée un nouvel objet DOMElement
    • DOMElement::getAttribute — Retourne la valeur d'un attribut
    • DOMElement::getAttributeNode — Retourne le noeud d'attribut
    • DOMElement::getAttributeNodeNS — Retourne le noeud d'attribut
    • DOMElement::getAttributeNS — Retourne la valeur de l'attribut
    • DOMElement::getElementsByTagName — Retourne les éléments par leur nom de balise
    • DOMElement::getElementsByTagNameNS — Récupère les éléments par leur espace de noms et leur localName
    • DOMElement::hasAttribute — Vérifie si un attribut existe
    • DOMElement::hasAttributeNS — Vérifie si un attribut existe
    • DOMElement::removeAttribute — Efface un attribut
    • DOMElement::removeAttributeNode — Efface un attribut
    • DOMElement::removeAttributeNS — Efface un attribut
    • DOMElement::setAttribute — Ajoute un nouvel attribut
    • DOMElement::setAttributeNode — Ajoute un nouvel attribut à l'élément
    • DOMElement::setAttributeNodeNS — Ajoute un nouvel attribut à l'élément
    • DOMElement::setAttributeNS — Ajoute un nouvel attribut
    • DOMElement::setIdAttribute — Déclare l'attribut spécifié par son nom à être de type ID
    • DOMElement::setIdAttributeNode — Déclare l'attribut spécifié par le noeud à être de type ID
    • DOMElement::setIdAttributeNS — Déclare l'attribut spécifié par son nom local et son espace de nom URI à être de type ID
  • DOMEntity — La classe DOMEntity
  • DOMEntityReference — La classe DOMEntityReference
    • DOMEntityReference::__construct — Crée un nouvel objet DOMEntityReference
  • DOMException — La classe DOMException
  • DOMImplementation — La classe DOMImplementation
    • DOMImplementation::__construct — Crée un nouvel objet DOMImplementation
    • DOMImplementation::createDocument — Crée un objet DOM Document du type spécifié avec ses éléments
    • DOMImplementation::createDocumentType — Crée un objet DOMDocumentType vide
    • DOMImplementation::hasFeature — Teste si l'implémentation DOM implémente une fonctionnalité spécifique
  • DOMNamedNodeMap — La classe DOMNamedNodeMap
    • DOMNamedNodeMap::getNamedItem — Retourne un noeud spécifié par nom nom
    • DOMNamedNodeMap::getNamedItemNS — Retourne un noeud spécifié par son nom local et son espace de noms
    • DOMNamedNodeMap::item — Retourne un noeud selon son index
  • DOMNode — La classe DOMNode
    • DOMNode::appendChild — Ajoute un nouveau fils à la fin des fils
    • DOMNode::C14N — Canonise des noeuds en une chaîne
    • DOMNode::C14NFile — Canonise des noeuds en fichier
    • DOMNode::cloneNode — Clone un noeud
    • DOMNode::getLineNo — Lit le numéro de ligne d'un noeud
    • DOMNode::getNodePath — Récupère un XPath pour un nœud
    • DOMNode::hasAttributes — Vérifie si le noeud possède un attribut
    • DOMNode::hasChildNodes — Vérifie si le noeud possède des enfants
    • DOMNode::insertBefore — Ajoute un nouveau fils avant le noeud référencé
    • DOMNode::isDefaultNamespace — Vérifie si l'espace de nom spécifié est l'espace de noms par défaut ou non
    • DOMNode::isSameNode — Indique si deux noeuds sont identiques
    • DOMNode::isSupported — Vérifie si la fonctionnalité est disponible pour la version spécifiée
    • DOMNode::lookupNamespaceURI — Retourne l'URI de l'espace de noms selon le préfixe
    • DOMNode::lookupPrefix — Retourne le préfixe de l'espace de noms selon l'URI de l'espace de noms
    • DOMNode::normalize — Normalise le noeud
    • DOMNode::removeChild — Supprime un fils de la liste des enfants
    • DOMNode::replaceChild — Remplace un fils
  • DOMNodeList — La classe DOMNodeList
    • DOMNodelist::item — Retourne un noeud spécifié par son index
  • DOMNotation — La classe DOMNode
  • DOMProcessingInstruction — La classe DOMProcessingInstruction
    • DOMProcessingInstruction::__construct — Crée un nouvel objet DOMProcessingInstruction
  • DOMText — La classe DOMText
    • DOMText::__construct — Crée un nouvel objet DOMText
    • DOMText::isWhitespaceInElementContent — Indique si ce noeud de texte contient des espaces blancs
    • DOMText::splitText — Coupe le noeud en deux noeuds à l'endroit spécifié
  • DOMXPath — La classe DOMXPath
    • DOMXPath::__construct — Crée un nouvel objet DOMXPath
    • DOMXPath::evaluate — Évalue une expression XPath donnée et retourne un résultat typé si possible
    • DOMXPath::query — Évalue l'expression XPath donnée
    • DOMXPath::registerNamespace — Enregistre l'espace de noms avec l'objet DOMXPath
    • DOMXPath::registerPhpFunctions — Enregistre une fonction PHP comme fonction XPath
  • DOM Fonctions
    • dom_import_simplexml — Transforme un objet SimpleXMLElement en un objet DOMElement


Introduction

L'extension DOM vous permet d'utiliser des documents XML via l'API DOM de PHP 5.

Pour PHP 4, utilisez l'extension DOM XML.

Note:

L'extension DOM utilise l'encodage UTF-8. Utilisez les fonctions utf8_encode() et utf8_decode() pour travailler avec les textes en ISO-8859-1 ou l'extension Iconv pour les autres encodages.


Installation

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-dom


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes XML
Constante | Valeur | Description
XML_ELEMENT_NODE (entier) | 1 | Le noeud est un DOMElement
XML_ATTRIBUTE_NODE (entier) | 2 | Le noeud est un DOMAttr
XML_TEXT_NODE (entier) | 3 | Le noeud est un DOMText
XML_CDATA_SECTION_NODE (entier) | 4 | Le noeud est un DOMCharacterData
XML_ENTITY_REF_NODE (entier) | 5 | Le noeud est un DOMEntityReference
XML_ENTITY_NODE (entier) | 6 | Le noeud est un DOMEntity
XML_PI_NODE (entier) | 7 | Le noeud est un DOMProcessingInstruction
XML_COMMENT_NODE (entier) | 8 | Le noeud est un DOMComment
XML_DOCUMENT_NODE (entier) | 9 | Le noeud est un DOMDocument
XML_DOCUMENT_TYPE_NODE (entier) | 10 | Le noeud est un DOMDocumentType
XML_DOCUMENT_FRAG_NODE (entier) | 11 | Le noeud est un DOMDocumentFragment
XML_NOTATION_NODE (entier) | 12 | Le noeud est un DOMNotation
XML_HTML_DOCUMENT_NODE (entier) | 13 |
XML_DTD_NODE (entier) | 14 |
XML_ELEMENT_DECL_NODE (entier) | 15 |
XML_ATTRIBUTE_DECL_NODE (entier) | 16 |
XML_ENTITY_DECL_NODE (entier) | 17 |
XML_NAMESPACE_DECL_NODE (entier) | 18 |
XML_ATTRIBUTE_CDATA (entier) | 1 |
XML_ATTRIBUTE_ID (entier) | 2 |
XML_ATTRIBUTE_IDREF (entier) | 3 |
XML_ATTRIBUTE_IDREFS (entier) | 4 |
XML_ATTRIBUTE_ENTITY (entier) | 5 |
XML_ATTRIBUTE_NMTOKEN (entier) | 7 |
XML_ATTRIBUTE_NMTOKENS (entier) | 8 |
XML_ATTRIBUTE_ENUMERATION (entier) | 9 |
XML_ATTRIBUTE_NOTATION (entier) | 10 |
Constantes DOMException
Constante | Valeur | Description
DOM_PHP_ERR (entier) | 0 | Code erreur ne faisant pas parti de la spécification DOM. Utile pour les erreurs PHP.
DOM_INDEX_SIZE_ERR (entier) | 1 | Si l'index ou la taille sont négatifs ou plus grands que la valeur autorisée.
DOMSTRING_SIZE_ERR (entier) | 2 | Si la rangée spécifiée de texte ne tient pas dans le DOMString.
DOM_HIERARCHY_REQUEST_ERR (entier) | 3 | Si un noeud est inséré à un endroit non autorisé
DOM_WRONG_DOCUMENT_ERR (entier) | 4 | Si un noeud est utilisé dans un document autre que celui qui l'a créé.
DOM_INVALID_CHARACTER_ERR (entier) | 5 | Si un caractère invalide ou non autorisé est spécifié, par exemple, dans un nom.
DOM_NO_DATA_ALLOWED_ERR (entier) | 6 | Si des données sont spécifiées dans un noeud qui ne supporte pas les données.
DOM_NO_MODIFICATION_ALLOWED_ERR (entier) | 7 | Si une tentative est faite de modifier un objet où les modifications ne sont pas autorisées.
DOM_NOT_FOUND_ERR (entier) | 8 | Si une tentative est faite de référencer un noeud dans un contexte où il n'existe pas.
DOM_NOT_SUPPORTED_ERR (entier) | 9 | Si l'implémentation ne supporte pas le type requis de l'objet ou de l'opération.
DOM_INUSE_ATTRIBUTE_ERR (entier) | 10 | Si une tentative est faite d'ajouter un attribut qui est déjà utilisé autre part.
DOM_INVALID_STATE_ERR (entier) | 11 | Si une tentative est faite d'utiliser un objet qui n'est pas, ou n'est plus, utilisable.
DOM_SYNTAX_ERR (entier) | 12 | Si une chaîne de caractères invalide ou illégale est spécifiée.
DOM_INVALID_MODIFICATION_ERR (entier) | 13 | Si une tentative est faite de modifier le type d'un objet fondamental.
DOM_NAMESPACE_ERR (entier) | 14 | Si une tentative est faite de créer ou de modifier un objet dans un sens qui est incorrect au regard de l'espace de noms.
DOM_INVALID_ACCESS_ERR (entier) | 15 | Si un paramètre ou une opération n'est pas supporté par l'objet fondamental.
DOM_VALIDATION_ERR (entier) | 16 | Si un appel à une méthode tel que insertBefore ou removeChild voudrait rendre le noeud invalide avec le respect de la validation partielle, cette exception sera exécutée et l'opération ne sera pas effectuée.


Exemples

Beaucoup d'exemples de cette documentation requièrent un fichier XML. Nous allons utiliser le fichier book.xml qui contient les élements suivants :

Exemple #1 book.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
]>
<book id="listing">
 <title>My lists</title>
 <chapter id="books">
  <title>My books</title>
  <para>
   <informaltable>
    <tgroup cols="4">
     <thead>
      <row>
       <entry>Title</entry>
       <entry>Author</entry>
       <entry>Language</entry>
       <entry>ISBN</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
      <row>
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
      <row>
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
      <!-- TODO: I have a lot of remaining books to add.. -->
     </tbody>
    </tgroup>
   </informaltable>
  </para>
 </chapter>
</book>


La classe DOMAttr

(PHP 5, PHP 7)

Introduction

DOMAttr représente un attribut dans l'objet DOMElement.

Synopsis de la classe

DOMAttr étend DOMNode {
/* Propriétés */
public readonly string $name ;
public readonly DOMElement $ownerElement ;
public readonly bool $schemaTypeInfo ;
public readonly bool $specified ;
public string $value ;
/* Méthodes */
public __construct ( string $name [, string $value ] )
public bool isId ( void )
/* Méthodes héritées */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

name

Le nom de l'attribut

ownerElement

L'élément qui contient l'attribut

schemaTypeInfo

Non implémenté, vaut toujours NULL

specified

Non implémenté, vaut toujours NULL

value

La valeur de l'attribut

Voir aussi

  • » spécification W3C de l'Attr

Sommaire

  • DOMAttr::__construct — Crée un nouvel objet DOMAttr
  • DOMAttr::isId — Vérifie si l'attribut est un identifiant défini


Crée un nouvel objet DOMAttr

  • « DOMAttr
  • DOMAttr::isId »
  • PHP Manual
  • DOMAttr
  • Crée un nouvel objet DOMAttr

DOMAttr::__construct

(PHP 5, PHP 7)

DOMAttr::__construct — Crée un nouvel objet DOMAttr

Description

public DOMAttr::__construct ( string $name [, string $value ] )

Crée un nouvel objet DOMAttr. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les noeuds additionnels ne peuvent pas être ajoutés à ce noeud tant que ce noeud est associé à un document. Pour créer un noeud accessible en écriture, utilisez DOMDocument::createAttribute.

Liste de paramètres

name

Le nom de l'attribut.

value

La valeur de l'attribut.

Exemples

Exemple #1 Création d'un nouvel objet DOMAttr

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$attr = $element->setAttributeNode(new DOMAttr('attr', 'attrvalue'));
echo $dom->saveXML();

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="iso-8859-1"?>
<root attr="attrvalue" />

Voir aussi

  • DOMDocument::createAttribute() - Crée un nouvel attribut


Vérifie si l'attribut est un identifiant défini

  • « DOMAttr::__construct
  • DOMCdataSection »
  • PHP Manual
  • DOMAttr
  • Vérifie si l'attribut est un identifiant défini

DOMAttr::isId

(PHP 5, PHP 7)

DOMAttr::isId — Vérifie si l'attribut est un identifiant défini

Description

public bool DOMAttr::isId ( void )

Cette fonction vérifie si l'attribut est un identifiant défini.

En accord avec le standard DOM, ceci requiert une DTD qui définit l'attribut ID qui est du type ID. Vous devez valider votre document avec la fonction DOMDocument::validate ou la fonction DOMDocument::validateOnParse avant d'utiliser cette fonction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec DOMAttr::isId()

<?php

$doc = new DomDocument;

// Nous devons valider notre document avant de nous référer à l'ID
$doc->validateOnParse = true;
$doc->Load('book.xml');

// Nous récupérons l'attribut nommé id de l'élément chapter
$attr = $doc->getElementsByTagName('chapter')->item(0)->getAttributeNode('id');

var_dump($attr->isId()); // bool(true)

?>


La classe DOMCdataSection

(PHP 5, PHP 7)

Introduction

DOMCdataSection hérite de la classe DOMText pour la représentation textuelle de la construction du bloc CData.

Synopsis de la classe

DOMCdataSection étend DOMText {
/* Méthodes */
public __construct ( string $value )
/* Méthodes héritées */
public bool DOMText::isWhitespaceInElementContent ( void )
public DOMText DOMText::splitText ( int $offset )
}

Sommaire

  • DOMCdataSection::__construct — Construit un nouvel objet DOMCdataSection


Construit un nouvel objet DOMCdataSection

  • « DOMCdataSection
  • DOMCharacterData »
  • PHP Manual
  • DOMCdataSection
  • Construit un nouvel objet DOMCdataSection

DOMCdataSection::__construct

(PHP 5, PHP 7)

DOMCdataSection::__construct — Construit un nouvel objet DOMCdataSection

Description

public DOMCdataSection::__construct ( string $value )

Construit un nouveau noeud CDATA. Fonctionne comme la classe DOMText.

Liste de paramètres

value

La valeur du noeud CDATA. Si non fourni, un noeud CDATA vide sera créé.

Exemples

Exemple #1 Création d'un nouvel objet DOMCdataSection

<?php

$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->appendChild(new DOMElement('root'));
$text = $element->appendChild(new DOMCdataSection('root value'));
echo $dom->saveXML();

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="utf-8"?>
<root><![CDATA[root value]]></root>

Voir aussi

  • DOMText::__construct() - Crée un nouvel objet DOMText
  • DOMDocument::createTextNode() - Crée un nouveau noeud de texte


La classe DOMCharacterData

(PHP 5, PHP 7)

Introduction

Représente un noeud contenant des données. Aucun noeud ne correspond à cette classe, mais d'autres noeuds en hérite.

Synopsis de la classe

DOMCharacterData étend DOMNode {
/* Propriétés */
public string $data ;
readonly public int $length ;
/* Méthodes */
void appendData ( string $data )
void deleteData ( int $offset , int $count )
void insertData ( int $offset , string $data )
void replaceData ( int $offset , int $count , string $data )
string substringData ( int $offset , int $count )
/* Méthodes héritées */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

data

Le contenu du noeud.

length

La taille du contenu.

Voir aussi

  • » spécification W3C de CharacterData

Sommaire

  • DOMCharacterData::appendData — Ajoute la chaîne à la fin des données dans le noeud
  • DOMCharacterData::deleteData — Supprime une sous-chaîne dans le noeud
  • DOMCharacterData::insertData — Insère une chaîne à la position spécifiée d'unité 16-bit
  • DOMCharacterData::replaceData — Remplace une sous-chaîne dans le noeud DOMCharacterData
  • DOMCharacterData::substringData — Extrait un morceau de données dans le noeud


Ajoute la chaîne à la fin des données dans le noeud

  • « DOMCharacterData
  • DOMCharacterData::deleteData »
  • PHP Manual
  • DOMCharacterData
  • Ajoute la chaîne à la fin des données dans le noeud

DOMCharacterData::appendData

(PHP 5, PHP 7)

DOMCharacterData::appendData — Ajoute la chaîne à la fin des données dans le noeud

Description

void DOMCharacterData::appendData ( string $data )

Ajoute la chaîne data à la fin des données dans le noeud.

Liste de paramètres

data

La chaîne à ajouter.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • DOMCharacterData::deleteData() - Supprime une sous-chaîne dans le noeud
  • DOMCharacterData::insertData() - Insère une chaîne à la position spécifiée d'unité 16-bit
  • DOMCharacterData::replaceData() - Remplace une sous-chaîne dans le noeud DOMCharacterData
  • DOMCharacterData::substringData() - Extrait un morceau de données dans le noeud


Supprime une sous-chaîne dans le noeud

  • « DOMCharacterData::appendData
  • DOMCharacterData::insertData »
  • PHP Manual
  • DOMCharacterData
  • Supprime une sous-chaîne dans le noeud

DOMCharacterData::deleteData

(PHP 5, PHP 7)

DOMCharacterData::deleteData — Supprime une sous-chaîne dans le noeud

Description

void DOMCharacterData::deleteData ( int $offset , int $count )

Efface count caractères à partir de la position offset.

Liste de paramètres

offset

La position à partir de laquelle on doit commencer à effacer.

count

Le nombre de caractères à effacer. SI la somme de offset et de count excède la longueur totale de la chaîne, alors tous les caractères jusqu'à la fin de la chaîne seront effacés.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_INDEX_SIZE_ERR

Lancé si offset est négatif ou plus grand que le nombre d'unités 16-bits dans les données ou si count est négatif.

Voir aussi

  • DOMCharacterData::appendData() - Ajoute la chaîne à la fin des données dans le noeud
  • DOMCharacterData::insertData() - Insère une chaîne à la position spécifiée d'unité 16-bit
  • DOMCharacterData::replaceData() - Remplace une sous-chaîne dans le noeud DOMCharacterData
  • DOMCharacterData::substringData() - Extrait un morceau de données dans le noeud


Insère une chaîne à la position spécifiée d'unité 16-bit

  • « DOMCharacterData::deleteData
  • DOMCharacterData::replaceData »
  • PHP Manual
  • DOMCharacterData
  • Insère une chaîne à la position spécifiée d'unité 16-bit

DOMCharacterData::insertData

(PHP 5, PHP 7)

DOMCharacterData::insertData — Insère une chaîne à la position spécifiée d'unité 16-bit

Description

void DOMCharacterData::insertData ( int $offset , string $data )

Insère la chaîne data à la position offset.

Liste de paramètres

offset

La position de l'insertion.

data

La chaîne à insérer.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_INDEX_SIZE_ERR

Lancé si offset est négatif ou plus grand que le nombre d'unités 16-bits dans les données.

Voir aussi

  • DOMCharacterData::appendData() - Ajoute la chaîne à la fin des données dans le noeud
  • DOMCharacterData::deleteData() - Supprime une sous-chaîne dans le noeud
  • DOMCharacterData::replaceData() - Remplace une sous-chaîne dans le noeud DOMCharacterData
  • DOMCharacterData::substringData() - Extrait un morceau de données dans le noeud


Remplace une sous-chaîne dans le noeud DOMCharacterData

  • « DOMCharacterData::insertData
  • DOMCharacterData::substringData »
  • PHP Manual
  • DOMCharacterData
  • Remplace une sous-chaîne dans le noeud DOMCharacterData

DOMCharacterData::replaceData

(PHP 5, PHP 7)

DOMCharacterData::replaceData — Remplace une sous-chaîne dans le noeud DOMCharacterData

Description

void DOMCharacterData::replaceData ( int $offset , int $count , string $data )

Remplace count caractères en partant de la position offset par les données data.

Liste de paramètres

offset

La position à partir de laquelle on commence le remplacement.

count

Le nombre de caractères à remplacer. Si la somme de offset et de count excède la longueur totale de la chaîne, alors tous les caractères jusqu'à la fin des données seront remplacés.

data

La chaîne utilisée pour remplacer les caractères sélectionnés.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_INDEX_SIZE_ERR

Lancé si offset est négatif ou plus grand que le nombre d'unités 16-bits dans les données ou si count est négatif.

Voir aussi

  • DOMCharacterData::appendData() - Ajoute la chaîne à la fin des données dans le noeud
  • DOMCharacterData::deleteData() - Supprime une sous-chaîne dans le noeud
  • DOMCharacterData::insertData() - Insère une chaîne à la position spécifiée d'unité 16-bit
  • DOMCharacterData::substringData() - Extrait un morceau de données dans le noeud


Extrait un morceau de données dans le noeud

  • « DOMCharacterData::replaceData
  • DOMComment »
  • PHP Manual
  • DOMCharacterData
  • Extrait un morceau de données dans le noeud

DOMCharacterData::substringData

(PHP 5, PHP 7)

DOMCharacterData::substringData — Extrait un morceau de données dans le noeud

Description

string DOMCharacterData::substringData ( int $offset , int $count )

Retourne la sous-chaîne spécifiée.

Liste de paramètres

offset

La position du début de la chaîne à extraire.

count

Le nombre de caractères à extraire.

Valeurs de retour

La sous-chaîne spécifiée. Si la somme de offset et de count excède la longueur totale de la chaîne, alors toutes les unités 16-bits jusqu'à la fin des données seront retournées.

Erreurs / Exceptions

DOM_INDEX_SIZE_ERR

Lancé si offset est négatif ou plus grand que le nombre d'unités 16-bits dans les données ou si count est négatif.

Voir aussi

  • DOMCharacterData::appendData() - Ajoute la chaîne à la fin des données dans le noeud
  • DOMCharacterData::deleteData() - Supprime une sous-chaîne dans le noeud
  • DOMCharacterData::insertData() - Insère une chaîne à la position spécifiée d'unité 16-bit
  • DOMCharacterData::replaceData() - Remplace une sous-chaîne dans le noeud DOMCharacterData


La classe DOMComment

(PHP 5, PHP 7)

Introduction

Représente un noeud de commentaire, délimité par <!-- et -->.

Synopsis de la classe

DOMComment étend DOMCharacterData {
/* Méthodes */
public __construct ([ string $value ] )
/* Méthodes héritées */
void DOMCharacterData::appendData ( string $data )
void DOMCharacterData::deleteData ( int $offset , int $count )
void DOMCharacterData::insertData ( int $offset , string $data )
void DOMCharacterData::replaceData ( int $offset , int $count , string $data )
string DOMCharacterData::substringData ( int $offset , int $count )
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Voir aussi

  • » spécification W3C de Comment

Sommaire

  • DOMComment::__construct — Crée un nouvel objet DOMComment


Crée un nouvel objet DOMComment

  • « DOMComment
  • DOMDocument »
  • PHP Manual
  • DOMComment
  • Crée un nouvel objet DOMComment

DOMComment::__construct

(PHP 5, PHP 7)

DOMComment::__construct — Crée un nouvel objet DOMComment

Description

public DOMComment::__construct ([ string $value ] )

Crée un nouvel objet DOMComment. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les noeuds additionnels ne peuvent pas être ajoutés à ce noeud tant que ce noeud n'est pas associé à un document. Pour créer un noeud accessible en écriture, utilisez DOMDocument::createComment.

Liste de paramètres

value

La valeur du commentaire.

Exemples

Exemple #1 Création d'un nouveau DOMComment

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$comment = $element->appendChild(new DOMComment('root comment'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root><!--root comment--></root> */

?>

Voir aussi

  • DOMDocument::createComment() - Crée un nouveau noeud de commentaire


La classe DOMDocument

(PHP 5, PHP 7)

Introduction

Représente un document HTML ou XML entier ; ce sera la racine de l'arbre document.

Synopsis de la classe

DOMDocument extends DOMNode {
/* Propriétés */
readonly public string $actualEncoding ;
readonly public DOMConfiguration $config ;
readonly public DOMDocumentType $doctype ;
readonly public DOMElement $documentElement ;
public string $documentURI ;
public string $encoding ;
public bool $formatOutput ;
readonly public DOMImplementation $implementation ;
public bool $preserveWhiteSpace = true ;
public bool $recover ;
public bool $resolveExternals ;
public bool $standalone ;
public bool $strictErrorChecking = true ;
public bool $substituteEntities ;
public bool $validateOnParse = false ;
public string $version ;
readonly public string $xmlEncoding ;
public bool $xmlStandalone ;
public string $xmlVersion ;
/* Méthodes */
public __construct ([ string $version [, string $encoding ]] )
public DOMAttr createAttribute ( string $name )
public DOMAttr createAttributeNS ( string $namespaceURI , string $qualifiedName )
public DOMCDATASection createCDATASection ( string $data )
public DOMComment createComment ( string $data )
public DOMDocumentFragment createDocumentFragment ( void )
public DOMElement createElement ( string $name [, string $value ] )
public DOMElement createElementNS ( string $namespaceURI , string $qualifiedName [, string $value ] )
public DOMEntityReference createEntityReference ( string $name )
public DOMProcessingInstruction createProcessingInstruction ( string $target [, string $data ] )
public DOMText createTextNode ( string $content )
public DOMElement getElementById ( string $elementId )
public DOMNodeList getElementsByTagName ( string $name )
public DOMNodeList getElementsByTagNameNS ( string $namespaceURI , string $localName )
public DOMNode importNode ( DOMNode $importedNode [, bool $deep ] )
public mixed load ( string $filename [, int $options = 0 ] )
public bool loadHTML ( string $source [, int $options = 0 ] )
public bool loadHTMLFile ( string $filename [, int $options = 0 ] )
public mixed loadXML ( string $source [, int $options = 0 ] )
public void normalizeDocument ( void )
public bool registerNodeClass ( string $baseclass , string $extendedclass )
public bool relaxNGValidate ( string $filename )
public bool relaxNGValidateSource ( string $source )
public int save ( string $filename [, int $options ] )
public string saveHTML ([ DOMNode $node = NULL ] )
public int saveHTMLFile ( string $filename )
public string saveXML ([ DOMNode $node [, int $options ]] )
public bool schemaValidate ( string $filename [, int $flags ] )
public bool schemaValidateSource ( string $source [, int $flags ] )
public bool validate ( void )
public int xinclude ([ int $options ] )
/* Méthodes héritées */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

actualEncoding

Obsolète. L'encodage actuel du document, en lecture seule, équivalent àencoding.

config

Obsolète. Configuration utilisée lorsque DOMDocument::normalizeDocument() est appelé.

doctype

Le doctype associé au document.

documentElement

C'est un attribut de convenance, qui permet un accès direct au noeud fils, qui est l'élément document du document.

documentURI

La localisation du document, ou NULL si indéfini.

encoding

L'encodage du document, tel que spécifié par la déclaration XML. Cet attribut n'est pas présent dans la spécification DOM Level 3 finale, mais représente la seule façon de manipuler l'encodage du document XML dans cette implémentation.

formatOutput

Formate élégamment le résultat avec une indentation et des espaces supplémentaires.

implementation

L'objet DOMImplementation qui gère ce document.

preserveWhiteSpace

Ne pas supprimer les espaces redondants. Vaut par défaut TRUE.

recover

Propriétaire. Active le mode "recovery", i.e. tente d'analyser un document mal formé. Cet attribut ne fait pas parti de la spécification DOM et est spécifique à libxml.

resolveExternals

Définissez-le à TRUE pour charger des entités externes depuis la déclaration doctype. C'est utile pour inclure des entités dans vos documents XML.

standalone

Obsolète. Si le document est "standalone", ou non, tel que spécifié par la déclaration XML, correspondant à xmlStandalone.

strictErrorChecking

Lance une DOMException en cas d'erreur. Par défaut, vaut TRUE.

substituteEntities

Propriétaire. Si l'on doit ou non substituer les entités. Cet attribut ne fait pas parti de la spécification DOM et est spécifique à libxml.

validateOnParse

Charge et valide la DTD. Par défaut, vaut FALSE.

version

Obsolète. Version du XML, correspond à xmlVersion.

xmlEncoding

Un attribut spécifiant l'encodage du document. Il vaut NULL lorsque l'encodage n'est pas spécifié, ou lorsqu'il est inconnu, comme c'est le cas lorsque le document a été créé en mémoire.

xmlStandalone

Un attribut spécifiant si le document est "standalone". Il vaut FALSE lorsque non spécifié.

xmlVersion

Un attribut spécifiant le numéro de version du document. S'il n'y a pas de déclaration et si le document supporte la fonctionnalité "XML", la valeur sera "1.0".

Notes

Note:

L'extension DOM utilise l'encodage UTF-8. Utilisez utf8_encode() et utf8_decode() pour traiter les textes encodés en ISO-8859-1 ou Iconv pour les autres encodages.

Voir aussi

  • » spécification W3C de Document

Sommaire

  • DOMDocument::__construct — Crée un nouvel objet DOMDocument
  • DOMDocument::createAttribute — Crée un nouvel attribut
  • DOMDocument::createAttributeNS — Crée un nouvel attribut avec un espace de noms associé
  • DOMDocument::createCDATASection — Crée un nouveau noeud cdata
  • DOMDocument::createComment — Crée un nouveau noeud de commentaire
  • DOMDocument::createDocumentFragment — Crée un nouveau fragment de document
  • DOMDocument::createElement — Crée un nouveau noeud
  • DOMDocument::createElementNS — Crée un nouveau noeud avec un espace de noms associé
  • DOMDocument::createEntityReference — Crée un nouveau noeud de référence d'entité
  • DOMDocument::createProcessingInstruction — Crée un nouveau noeud PI
  • DOMDocument::createTextNode — Crée un nouveau noeud de texte
  • DOMDocument::getElementById — Cherche un élément avec un certain identifiant
  • DOMDocument::getElementsByTagName — Cherche tous les éléments qui ont le nom de la balise locale donné
  • DOMDocument::getElementsByTagNameNS — Recherche tous les éléments avec un nom de balise donné dans un espace de noms spécifié
  • DOMDocument::importNode — Importe un noeud dans le document courant
  • DOMDocument::load — Charge du XML depuis un fichier
  • DOMDocument::loadHTML — Charge du code HTML à partir d'une chaîne de caractères
  • DOMDocument::loadHTMLFile — Charge du HTML à partir d'un fichier
  • DOMDocument::loadXML — Charge du XML depuis une chaîne de caractères
  • DOMDocument::normalizeDocument — Normalise le document
  • DOMDocument::registerNodeClass — Enregistre la classe étendue utilisée pour créer un type de base de noeud
  • DOMDocument::relaxNGValidate — Effectue une validation relaxNG sur le document
  • DOMDocument::relaxNGValidateSource — Effectue une validation relaxNG sur le document
  • DOMDocument::save — Sauvegarde l'arbre interne XML dans un fichier
  • DOMDocument::saveHTML — Sauvegarde le document interne dans une chaîne en utilisant un formatage HTML
  • DOMDocument::saveHTMLFile — Sauvegarde un document interne dans un fichier en utilisant un formatage HTML
  • DOMDocument::saveXML — Sauvegarde l'arbre interne XML dans une chaîne de caractères
  • DOMDocument::schemaValidate — Valide un document selon un schéma
  • DOMDocument::schemaValidateSource — Valide un document selon un schéma
  • DOMDocument::validate — Valide un document en se basant sur sa DTD
  • DOMDocument::xinclude — Remplace les XIncludes dans un objet DOMDocument


Crée un nouvel objet DOMDocument

  • « DOMDocument
  • DOMDocument::createAttribute »
  • PHP Manual
  • DOMDocument
  • Crée un nouvel objet DOMDocument

DOMDocument::__construct

(PHP 5, PHP 7)

DOMDocument::__construct — Crée un nouvel objet DOMDocument

Description

public DOMDocument::__construct ([ string $version [, string $encoding ]] )

Crée un nouvel objet DOMDocument.

Liste de paramètres

version

Le numéro de version du document en tant que partie de la déclaration XML.

encoding

L'encodage du document en tant que partie de la déclaration XML.

Exemples

Exemple #1 Création d'un nouveau DOMDocument

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?> */

?>

Voir aussi

  • DOMImplementation::createDocument() - Crée un objet DOM Document du type spécifié avec ses éléments


Crée un nouvel attribut

  • « DOMDocument::__construct
  • DOMDocument::createAttributeNS »
  • PHP Manual
  • DOMDocument
  • Crée un nouvel attribut

DOMDocument::createAttribute

(PHP 5, PHP 7)

DOMDocument::createAttribute — Crée un nouvel attribut

Description

public DOMAttr DOMDocument::createAttribute ( string $name )

Cette fonction crée une nouvelle instance de la classe DOMAttr. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Le nouveau DOMAttr ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Émise si name contient un caractère invalide.

Voir aussi

  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils
  • DOMDocument::createAttributeNS() - Crée un nouvel attribut avec un espace de noms associé
  • DOMDocument::createCDATASection() - Crée un nouveau noeud cdata
  • DOMDocument::createComment() - Crée un nouveau noeud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau noeud
  • DOMDocument::createElementNS() - Crée un nouveau noeud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau noeud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau noeud PI
  • DOMDocument::createTextNode() - Crée un nouveau noeud de texte


Crée un nouvel attribut avec un espace de noms associé

  • « DOMDocument::createAttribute
  • DOMDocument::createCDATASection »
  • PHP Manual
  • DOMDocument
  • Crée un nouvel attribut avec un espace de noms associé

DOMDocument::createAttributeNS

(PHP 5, PHP 7)

DOMDocument::createAttributeNS — Crée un nouvel attribut avec un espace de noms associé

Description

public DOMAttr DOMDocument::createAttributeNS ( string $namespaceURI , string $qualifiedName )

Cette fonction crée une nouvelle instance de la classe DOMAttr. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

qualifiedName

Le nom de la balise et le préfixe de l'attribut, sous cette forme : préfixe:nomBalise.

Valeurs de retour

Le nouveau DOMAttr ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Lancé si qualifiedName contient un caractère invalide.

DOM_NAMESPACE_ERR

Lancé si qualifiedName est un nom qualifié malformé ou si qualifiedName a un suffixe et que namespaceURI est NULL.

Voir aussi

  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils
  • DOMDocument::createAttribute() - Crée un nouvel attribut
  • DOMDocument::createCDATASection() - Crée un nouveau noeud cdata
  • DOMDocument::createComment() - Crée un nouveau noeud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau noeud
  • DOMDocument::createElementNS() - Crée un nouveau noeud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau noeud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau noeud PI
  • DOMDocument::createTextNode() - Crée un nouveau noeud de texte


Crée un nouveau noeud cdata

  • « DOMDocument::createAttributeNS
  • DOMDocument::createComment »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau noeud cdata

DOMDocument::createCDATASection

(PHP 5, PHP 7)

DOMDocument::createCDATASection — Crée un nouveau noeud cdata

Description

public DOMCDATASection DOMDocument::createCDATASection ( string $data )

Cette fonction crée une nouvelle instance de la classe DOMCDATASection. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Liste de paramètres

data

Le contenu du cdata.

Valeurs de retour

Le nouveau DOMCDATASection ou FALSE si une erreur survient.

Voir aussi

  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils
  • DOMDocument::createAttribute() - Crée un nouvel attribut
  • DOMDocument::createAttributeNS() - Crée un nouvel attribut avec un espace de noms associé
  • DOMDocument::createComment() - Crée un nouveau noeud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau noeud
  • DOMDocument::createElementNS() - Crée un nouveau noeud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau noeud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau noeud PI
  • DOMDocument::createTextNode() - Crée un nouveau noeud de texte


Crée un nouveau noeud de commentaire

  • « DOMDocument::createCDATASection
  • DOMDocument::createDocumentFragment »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau noeud de commentaire

DOMDocument::createComment

(PHP 5, PHP 7)

DOMDocument::createComment — Crée un nouveau noeud de commentaire

Description

public DOMComment DOMDocument::createComment ( string $data )

Cette fonction crée une nouvelle instance de la classe DOMComment. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Liste de paramètres

data

Le contenu du commentaire.

Valeurs de retour

Le nouveau DOMComment ou FALSE si une erreur survient.

Voir aussi

  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils
  • DOMDocument::createAttribute() - Crée un nouvel attribut
  • DOMDocument::createAttributeNS() - Crée un nouvel attribut avec un espace de noms associé
  • DOMDocument::createCDATASection() - Crée un nouveau noeud cdata
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau noeud
  • DOMDocument::createElementNS() - Crée un nouveau noeud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau noeud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau noeud PI
  • DOMDocument::createTextNode() - Crée un nouveau noeud de texte


Crée un nouveau fragment de document

  • « DOMDocument::createComment
  • DOMDocument::createElement »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau fragment de document

DOMDocument::createDocumentFragment

(PHP 5, PHP 7)

DOMDocument::createDocumentFragment — Crée un nouveau fragment de document

Description

public DOMDocumentFragment DOMDocument::createDocumentFragment ( void )

Cette fonction crée une nouvelle instance de la classe DOMDocumentFragment. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Valeurs de retour

Le nouveau DOMDocumentFragment ou FALSE si une erreur survient.

Voir aussi

  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils
  • DOMDocument::createAttribute() - Crée un nouvel attribut
  • DOMDocument::createAttributeNS() - Crée un nouvel attribut avec un espace de noms associé
  • DOMDocument::createCDATASection() - Crée un nouveau noeud cdata
  • DOMDocument::createComment() - Crée un nouveau noeud de commentaire
  • DOMDocument::createElement() - Crée un nouveau noeud
  • DOMDocument::createElementNS() - Crée un nouveau noeud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau noeud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau noeud PI
  • DOMDocument::createTextNode() - Crée un nouveau noeud de texte


Crée un nouveau noeud

  • « DOMDocument::createDocumentFragment
  • DOMDocument::createElementNS »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau noeud

DOMDocument::createElement

(PHP 5, PHP 7)

DOMDocument::createElement — Crée un nouveau noeud

Description

public DOMElement DOMDocument::createElement ( string $name [, string $value ] )

Cette fonction crée une nouvelle instance de la classe DOMElement. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Liste de paramètres

name

Le nom du tag de l'élément.

value

La valeur de l'élément. Par défaut, un élément vide sera créé. La valeur peut également être définie plus tard avec la fonction DOMElement::$nodeValue.

Valeurs de retour

Retourne une nouvelle instance de la classe DOMElement ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Lancé si name contient un caractère invalide.

Exemples

Exemple #1 Création d'un nouvel élément et insertion en tant que racine

<?php

$dom = new DOMDocument('1.0', 'utf-8');

$element = $dom->createElement('test', 'Ceci est l\'élément racine !');

// Nous insérons le nouvel élément en tant que racine (enfant du document)
$dom->appendChild($element);

echo $dom->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="utf-8"?>
<test>Ceci est l'élément racine !</test>

Notes

Note:

La valeur value ne sera pas échappée. Utilisez la méthode DOMDocument::createTextNode() pour créer un nœud de texte avec le support de l'échappement.

Voir aussi

  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils
  • DOMDocument::createAttribute() - Crée un nouvel attribut
  • DOMDocument::createAttributeNS() - Crée un nouvel attribut avec un espace de noms associé
  • DOMDocument::createCDATASection() - Crée un nouveau noeud cdata
  • DOMDocument::createComment() - Crée un nouveau noeud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElementNS() - Crée un nouveau noeud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau noeud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau noeud PI
  • DOMDocument::createTextNode() - Crée un nouveau noeud de texte


Crée un nouveau noeud avec un espace de noms associé

  • « DOMDocument::createElement
  • DOMDocument::createEntityReference »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau noeud avec un espace de noms associé

DOMDocument::createElementNS

(PHP 5, PHP 7)

DOMDocument::createElementNS — Crée un nouveau noeud avec un espace de noms associé

Description

public DOMElement DOMDocument::createElementNS ( string $namespaceURI , string $qualifiedName [, string $value ] )

Cette fonction crée un nouveau noeud avec un espace de noms associé. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

qualifiedName

Le nom qualifié de l'élément, en tant que préfixe:nomBalise.

value

La valeur de l'élément. Par défaut, un élément vide sera créé. Vous pouvez également définir la valeur plus tard en utilisant la fonction DOMElement::$nodeValue.

Valeurs de retour

Un nouveau DOMElement ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Lancé si qualifiedName contient un caractère invalide.

DOM_NAMESPACE_ERR

Lancé si qualifiedName est un nom qualifié malformé.

Exemples

Exemple #1 Création d'un nouvel élément et insertion en tant que racine

<?php

$dom = new DOMDocument('1.0', 'utf-8');

$element = $dom->createElementNS('http://www.example.com/XFoo', 'xfoo:test', 'Ceci est l\'élément racine !');

// Nous insérons le nouvel élément en tant que racine (fils du document)
$dom->appendChild($element);

echo $dom->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="iso-8859-1"?>
<xfoo:test xmlns:xfoo="http://www.example.com/XFoo">Ceci est l'élément racine !</xfoo:test>

Exemple #2 Un exemple avec un espace de noms en préfixe

<?php
$doc  = new DOMDocument('1.0', 'utf-8');
$doc->formatOutput = true;
$root = $doc->createElementNS('http://www.w3.org/2005/Atom', 'element');
$doc->appendChild($root);
$root->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:g', 'http://base.google.com/ns/1.0');
$item = $doc->createElementNS('http://base.google.com/ns/1.0', 'g:item_type', 'house');
$root->appendChild($item);

echo $doc->saveXML(), "\n";

echo $item->namespaceURI, "\n"; // Affiche : http://base.google.com/ns/1.0
echo $item->prefix, "\n";       // Affiche : g
echo $item->localName, "\n";    // Affiche : item_type
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="utf-8"?>
<element xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
  <g:item_type>house</g:item_type>
</element>

http://base.google.com/ns/1.0
g
item_type

Voir aussi

  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils
  • DOMDocument::createAttribute() - Crée un nouvel attribut
  • DOMDocument::createAttributeNS() - Crée un nouvel attribut avec un espace de noms associé
  • DOMDocument::createCDATASection() - Crée un nouveau noeud cdata
  • DOMDocument::createComment() - Crée un nouveau noeud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau noeud
  • DOMDocument::createEntityReference() - Crée un nouveau noeud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau noeud PI
  • DOMDocument::createTextNode() - Crée un nouveau noeud de texte


Crée un nouveau noeud de référence d'entité

  • « DOMDocument::createElementNS
  • DOMDocument::createProcessingInstruction »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau noeud de référence d'entité

DOMDocument::createEntityReference

(PHP 5, PHP 7)

DOMDocument::createEntityReference — Crée un nouveau noeud de référence d'entité

Description

public DOMEntityReference DOMDocument::createEntityReference ( string $name )

Cette fonction crée une nouvelle instance de la classe DOMEntityReference. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Liste de paramètres

name

Le contenu de la référence de l'entité, e.g. la référence de l'entité sans le & initial et le ; final.

Valeurs de retour

Le nouveau DOMEntityReference ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Emise si name contient un caractère invalide.

Voir aussi

  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils
  • DOMDocument::createAttribute() - Crée un nouvel attribut
  • DOMDocument::createAttributeNS() - Crée un nouvel attribut avec un espace de noms associé
  • DOMDocument::createCDATASection() - Crée un nouveau noeud cdata
  • DOMDocument::createComment() - Crée un nouveau noeud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau noeud
  • DOMDocument::createElementNS() - Crée un nouveau noeud avec un espace de noms associé
  • DOMDocument::createProcessingInstruction() - Crée un nouveau noeud PI
  • DOMDocument::createTextNode() - Crée un nouveau noeud de texte


Crée un nouveau noeud PI

  • « DOMDocument::createEntityReference
  • DOMDocument::createTextNode »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau noeud PI

DOMDocument::createProcessingInstruction

(PHP 5, PHP 7)

DOMDocument::createProcessingInstruction — Crée un nouveau noeud PI

Description

public DOMProcessingInstruction DOMDocument::createProcessingInstruction ( string $target [, string $data ] )

Cette fonction crée une nouvelle instance de la classe DOMProcessingInstruction. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Liste de paramètres

target

La cible de l'instruction gérée.

data

Le contenu de l'instruction gérée.

Valeurs de retour

Le nouveau DOMProcessingInstruction ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Emise si target contient un caractère invalide.

Voir aussi

  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils
  • DOMDocument::createAttribute() - Crée un nouvel attribut
  • DOMDocument::createAttributeNS() - Crée un nouvel attribut avec un espace de noms associé
  • DOMDocument::createCDATASection() - Crée un nouveau noeud cdata
  • DOMDocument::createComment() - Crée un nouveau noeud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau noeud
  • DOMDocument::createElementNS() - Crée un nouveau noeud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau noeud de référence d'entité
  • DOMDocument::createTextNode() - Crée un nouveau noeud de texte


Crée un nouveau noeud de texte

  • « DOMDocument::createProcessingInstruction
  • DOMDocument::getElementById »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau noeud de texte

DOMDocument::createTextNode

(PHP 5, PHP 7)

DOMDocument::createTextNode — Crée un nouveau noeud de texte

Description

public DOMText DOMDocument::createTextNode ( string $content )

Cette fonction crée une nouvelle instance de la classe DOMText. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Liste de paramètres

content

Le contenu du texte.

Valeurs de retour

Un nouveau DOMText ou FALSE si une erreur survient.

Voir aussi

  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils
  • DOMDocument::createAttribute() - Crée un nouvel attribut
  • DOMDocument::createAttributeNS() - Crée un nouvel attribut avec un espace de noms associé
  • DOMDocument::createCDATASection() - Crée un nouveau noeud cdata
  • DOMDocument::createComment() - Crée un nouveau noeud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau noeud
  • DOMDocument::createElementNS() - Crée un nouveau noeud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau noeud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau noeud PI


Cherche un élément avec un certain identifiant

  • « DOMDocument::createTextNode
  • DOMDocument::getElementsByTagName »
  • PHP Manual
  • DOMDocument
  • Cherche un élément avec un certain identifiant

DOMDocument::getElementById

(PHP 5, PHP 7)

DOMDocument::getElementById — Cherche un élément avec un certain identifiant

Description

public DOMElement DOMDocument::getElementById ( string $elementId )

Cette fonction est similaire à la fonction DOMDocument::getElementsByTagName mais cherche un élément avec un identifiant donné.

Pour que cette fonction fonctionne, vous devez soit définir les attributs ID avec DOMElement::setIdAttribute ou définir une DTD qui définit un attribut devant être de type ID. Dans le dernier cas, vous devez valider votre document avec DOMDocument::validate ou DOMDocument::$validateOnParse avant d'utiliser cette fonction.

Liste de paramètres

elementId

La valeur de l'identifiant unique pour un élément.

Valeurs de retour

Retourne un DOMElement ou NULL si l'élément n'est pas trouvé.

Exemples

Exemple #1 Exemple avec DOMDocument::getElementById()

L'exemple suivant utilise le fichier book.xml, dont le contenu est :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books [
  <!ELEMENT books   (book+)>
  <!ELEMENT book    (title, author+, xhtml:blurb?)>
  <!ELEMENT title   (#PCDATA)>
  <!ELEMENT blurb   (#PCDATA)>
  <!ELEMENT author  (#PCDATA)>
  <!ATTLIST books   xmlns        CDATA  #IMPLIED>
  <!ATTLIST books   xmlns:xhtml  CDATA  #IMPLIED>
  <!ATTLIST book    id           ID     #IMPLIED>
  <!ATTLIST author  email        CDATA  #IMPLIED>
]>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<books xmlns="http://books.php/" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <book id="php-basics">
    <title>PHP Basics</title>
    <author email="jim.smith@basics.php">Jim Smith</author>
    <author email="jane.smith@basics.php">Jane Smith</author>
    <xhtml:blurb><![CDATA[
<p><em>PHP Basics</em> provides an introduction to PHP.</p>
]]></xhtml:blurb>
  </book>
  <book id="php-advanced">
    <title>PHP Advanced Programming</title>
    <author email="jon.doe@advanced.php">Jon Doe</author>
  </book>
</books>
<?php

$doc = new DomDocument;

// Nous devons valider notre document avant de nous référer à l'ID
$doc->validateOnParse = true;
$doc->Load('book.xml');

echo "L'élément dont l'ID est 'php-basics' est : " . $doc->getElementById('php-basics')->tagName . "\n";

?>

L'exemple ci-dessus va afficher :

L'élément dont l'ID est 'php-basics' est : chapter

Voir aussi

  • DOMDocument::getElementsByTagName() - Cherche tous les éléments qui ont le nom de la balise locale donné


Cherche tous les éléments qui ont le nom de la balise locale donné

  • « DOMDocument::getElementById
  • DOMDocument::getElementsByTagNameNS »
  • PHP Manual
  • DOMDocument
  • Cherche tous les éléments qui ont le nom de la balise locale donné

DOMDocument::getElementsByTagName

(PHP 5, PHP 7)

DOMDocument::getElementsByTagName — Cherche tous les éléments qui ont le nom de la balise locale donné

Description

public DOMNodeList DOMDocument::getElementsByTagName ( string $name )

Cette fonction retourne une instance de la classe DOMNodeList contenant tous les éléments qui ont un nom de balise donné.

Liste de paramètres

name

Le nom local (sans espace de nommage) de la balise à chercher. La valeur spéciale * correspond à toutes les balises.

Valeurs de retour

Un nouvel objet DOMNodeList contenant tous les éléments correspondants.

Exemples

Exemple #1 Exemple de base

<?php
$xml = <<< XML
<?xml version="1.0" encoding="utf-8"?>
<books>
 <book>Patterns of Enterprise Application Architecture</book>
 <book>Design Patterns: Elements of Reusable Software Design</book>
 <book>Clean Code</book>
</books>
XML;

$dom = new DOMDocument;
$dom->loadXML($xml);
$books = $dom->getElementsByTagName('book');
foreach ($books as $book) {
    echo $book->nodeValue, PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

Patterns of Enterprise Application Architecture
Design Patterns: Elements of Reusable Software Design
Clean Code

Voir aussi

  • DOMDocument::getElementsByTagNameNS() - Recherche tous les éléments avec un nom de balise donné dans un espace de noms spécifié


Recherche tous les éléments avec un nom de balise donné dans un espace de noms spécifié

  • « DOMDocument::getElementsByTagName
  • DOMDocument::importNode »
  • PHP Manual
  • DOMDocument
  • Recherche tous les éléments avec un nom de balise donné dans un espace de noms spécifié

DOMDocument::getElementsByTagNameNS

(PHP 5, PHP 7)

DOMDocument::getElementsByTagNameNS — Recherche tous les éléments avec un nom de balise donné dans un espace de noms spécifié

Description

public DOMNodeList DOMDocument::getElementsByTagNameNS ( string $namespaceURI , string $localName )

Retourne un DOMNodeList de tous les éléments avec un nom local donné et une URI d'espace de noms.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms des éléments à chercher. La valeur spéciale * représente tous les espaces de noms.

localName

Le nom local des éléments à chercher. La valeur spéciale * représente tous les noms locaux.

Valeurs de retour

Un nouvel objet DOMNodeList contenant tous les éléments trouvés.

Exemples

Exemple #1 Récupération de tous les éléments XInclude

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Books of the other guy..</title>
<para>
 <xi:include href="book.xml">
  <xi:fallback>
   <error>xinclude: book.xml not found</error>
  </xi:fallback>
 </xi:include>
 <include>
  This is another namespace
 </include>
</para>
</chapter>
EOD;
$dom = new DOMDocument;

// load the XML string defined above
$dom->loadXML($xml);

foreach ($dom->getElementsByTagNameNS('http://www.w3.org/2001/XInclude', '*') as $element) {
    echo 'local name: ', $element->localName, ', prefix: ', $element->prefix, "\n";
}
?>

L'exemple ci-dessus va afficher :

local name: include, prefix: xi
local name: fallback, prefix: xi

Voir aussi

  • DOMDocument::getElementsByTagName() - Cherche tous les éléments qui ont le nom de la balise locale donné


Importe un noeud dans le document courant

  • « DOMDocument::getElementsByTagNameNS
  • DOMDocument::load »
  • PHP Manual
  • DOMDocument
  • Importe un noeud dans le document courant

DOMDocument::importNode

(PHP 5, PHP 7)

DOMDocument::importNode — Importe un noeud dans le document courant

Description

public DOMNode DOMDocument::importNode ( DOMNode $importedNode [, bool $deep ] )

Cette fonction retourne une copie du noeud à importer et l'associe avec le document courant.

Liste de paramètres

importedNode

Le noeud à importer.

deep

Si défini à TRUE, cette méthode importera récursivement le sous-arbre situé sous le noeud importedNode.

Note:

Pour copier les attributs des noeuds, le paramètre deep doit être défini à TRUE

Valeurs de retour

Le noeud copié ou FALSE si la copie a échouée.

Erreurs / Exceptions

DOMException est lancé si le noeud ne peut pas être importé.

Exemples

Exemple #1 Exemple avec DOMDocument::importNode()

Copie de noeuds entre plusieurs documents.

<?php

$orgdoc = new DOMDocument;
$orgdoc->loadXML("<root><element><child>Texte dans un fils</child></element></root>");

// Le noeud que nous voulons importer dans le nouveau document
$node = $orgdoc->getElementsByTagName("element")->item(0);

// Création du nouveau document
$newdoc = new DOMDocument;
$newdoc->formatOutput = true;

// Ajout de quelques balises
$newdoc->loadXML("<root><someelement>Texte dans un élément</someelement></root>");

echo "Le nouveau document avant d'y copier le noeud :\n";
echo $newdoc->saveXML();

// Importation du noeud, ainsi que tous ses files, dans le document
$node = $newdoc->importNode($node, true);
// Et on l'ajoute dans le le noeud racine "<root>"
$newdoc->documentElement->appendChild($node);

echo "\nLe nouveau document après y avoir copié les noeuds :\n";
echo $newdoc->saveXML();
?>

L'exemple ci-dessus va afficher :

Le nouveau document avant d'y copier le noeud :
<?xml version="1.0"?>
<root>
  <someelement>Texte dans un élément</someelement>
</root>

Le nouveau document après y avoir copié les noeuds :
<?xml version="1.0"?>
<root>
  <someelement>Texte dans un élément</someelement>
  <element>
    <child>Texte dans un fils</child>
  </element>
</root>


Charge du XML depuis un fichier

  • « DOMDocument::importNode
  • DOMDocument::loadHTML »
  • PHP Manual
  • DOMDocument
  • Charge du XML depuis un fichier

DOMDocument::load

(PHP 5, PHP 7)

DOMDocument::load — Charge du XML depuis un fichier

Description

public mixed DOMDocument::load ( string $filename [, int $options = 0 ] )

Charge un document XML depuis un fichier.

Avertissement

Les chemins de style Unix avec des antislash peuvent conduire à des réductions de performance sous les systèmes Windows ; assurez-vous d'appeler la fonction realpath().

Liste de paramètres

filename

Le chemin vers le document XML.

options

L'opérateur OR des constantes de libxml.constants.html.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si appelée statiquement, retourne un DOMDocument ou FALSE si une erreur survient.

Erreurs / Exceptions

Si une chaîne vide est passée comme paramètre filename ou si le fichier est vide, une alerte sera générée. Cette alerte n'est pas générée par libxml, et ne peut être gérée en utilisant les fonctions de gestion d'erreur de libxml.

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Exemples

Exemple #1 Création d'un Document

<?php
$doc = new DOMDocument();
$doc->load('book.xml');
echo $doc->saveXML();
?>

Voir aussi

  • DOMDocument::loadXML() - Charge du XML depuis une chaîne de caractères
  • DOMDocument::save() - Sauvegarde l'arbre interne XML dans un fichier
  • DOMDocument::saveXML() - Sauvegarde l'arbre interne XML dans une chaîne de caractères


Charge du code HTML à partir d'une chaîne de caractères

  • « DOMDocument::load
  • DOMDocument::loadHTMLFile »
  • PHP Manual
  • DOMDocument
  • Charge du code HTML à partir d'une chaîne de caractères

DOMDocument::loadHTML

(PHP 5, PHP 7)

DOMDocument::loadHTML — Charge du code HTML à partir d'une chaîne de caractères

Description

public bool DOMDocument::loadHTML ( string $source [, int $options = 0 ] )

Cette fonction analyse un document HTML contenu dans la chaîne source. Contrairement au XML, le HTML n'a pas besoin d'être bien formé pour être chargé. Cette fonction peut aussi être appelée statiquement pour charger et créer un objet DOMDocument. L'appel statique peut être utilisé lorsque vous n'avez besoin de configurer aucune propriété de DOMDocument avant le chargement.

Liste de paramètres

source

La chaîne HTML.

options

Depuis PHP 5.4.0 et Libxml 2.6.0, vous pouvez également utiliser le paramètre options pour spécifier des paramètres additionnels à Libxml.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si appelée statiquement, retourne un DOMDocument ou FALSE si une erreur survient.

Erreurs / Exceptions

Si une chaîne vide est passée comme paramètre source, une alerte sera générée. Cette alerte n'est pas générée par libxml, et ne peut être gérée en utilisant les fonctions de gestion d'erreur de libxml.

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Bien que le HTML mal-formé devrait se charger avec succès, cette fonction peut générer une alerte de type E_WARNING lorsqu'elle rencontre une mauvaise balise. Les fonctions de gestion des erreurs libxml peuvent être utilisées pour gérer ces erreurs.

Exemples

Exemple #1 Création d'un document

<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?>

Historique

Version | Description
5.4.0 | Ajout du paramètre options.

Voir aussi

  • DOMDocument::loadHTMLFile() - Charge du HTML à partir d'un fichier
  • DOMDocument::saveHTML() - Sauvegarde le document interne dans une chaîne en utilisant un formatage HTML
  • DOMDocument::saveHTMLFile() - Sauvegarde un document interne dans un fichier en utilisant un formatage HTML


Charge du HTML à partir d'un fichier

  • « DOMDocument::loadHTML
  • DOMDocument::loadXML »
  • PHP Manual
  • DOMDocument
  • Charge du HTML à partir d'un fichier

DOMDocument::loadHTMLFile

(PHP 5, PHP 7)

DOMDocument::loadHTMLFile — Charge du HTML à partir d'un fichier

Description

public bool DOMDocument::loadHTMLFile ( string $filename [, int $options = 0 ] )

Cette fonction analyse un document HTML contenu dans le fichier filename. Contrairement au XML, le HTML n'a pas besoin d'être bien formé pour être chargé.

Liste de paramètres

filename

Le chemin vers le fichier HTML.

options

Depuis PHP 5.4.0 et Libxml 2.6.0, vous pouvez aussi utiliser le paramètre options pour spécifier des paramètres additionnels à Libxml.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si appelé statiquement, retourne un DOMDocument ou FALSE si une erreur survient.

Erreurs / Exceptions

Si une chaîne vide est passée comme paramètre filename ou que le fichier est vide, une alerte sera générée. Cette alerte n'est pas générée par libxml, et ne peut être gérée en utilisant les fonctions de gestion d'erreur de libxml.

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Bien que le HTML mal-formé devrait se charger avec succès, cette fonction peut générer une alerte de type E_WARNING lorsqu'elle rencontre une mauvaise balise. Les fonctions de gestion des erreurs libxml peuvent être utilisées pour gérer ces erreurs.

Exemples

Exemple #1 Création d'un document

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");
echo $doc->saveHTML();
?>

Historique

Version | Description
5.4.0 | Ajout du paramètre options.

Voir aussi

  • DOMDocument::loadHTML() - Charge du code HTML à partir d'une chaîne de caractères
  • DOMDocument::saveHTML() - Sauvegarde le document interne dans une chaîne en utilisant un formatage HTML
  • DOMDocument::saveHTMLFile() - Sauvegarde un document interne dans un fichier en utilisant un formatage HTML


Charge du XML depuis une chaîne de caractères

  • « DOMDocument::loadHTMLFile
  • DOMDocument::normalizeDocument »
  • PHP Manual
  • DOMDocument
  • Charge du XML depuis une chaîne de caractères

DOMDocument::loadXML

(PHP 5, PHP 7)

DOMDocument::loadXML — Charge du XML depuis une chaîne de caractères

Description

public mixed DOMDocument::loadXML ( string $source [, int $options = 0 ] )

Charge un document XML depuis une chaîne de caractères.

Liste de paramètres

source

La chaîne de caractères contenant le XML.

options

L'opérateur OR des constantes libxml.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si appelée statiquement, retourne un DOMDocument ou FALSE si une erreur survient.

Erreurs / Exceptions

Si une chaîne vide est passée comme paramètre source, une alerte sera générée. Cette alerte n'est pas générée par libxml, et ne peut être gérée en utilisant les fonctions de gestion d'erreur de libxml.

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Exemples

Exemple #1 Création d'un Document

<?php
$doc = new DOMDocument();
$doc->loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Exemple #2 Invocation statique de loadXML

<?php
// Emet une erreur E_STRICT
$doc = DOMDocument::loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Voir aussi

  • DOMDocument::load() - Charge du XML depuis un fichier
  • DOMDocument::save() - Sauvegarde l'arbre interne XML dans un fichier
  • DOMDocument::saveXML() - Sauvegarde l'arbre interne XML dans une chaîne de caractères


Normalise le document

  • « DOMDocument::loadXML
  • DOMDocument::registerNodeClass »
  • PHP Manual
  • DOMDocument
  • Normalise le document

DOMDocument::normalizeDocument

(PHP 5, PHP 7)

DOMDocument::normalizeDocument — Normalise le document

Description

public void DOMDocument::normalizeDocument ( void )

Cette méthode fonctionne comme si vous sauvegardiez le document puis vous le chargiez de nouveau, rendant le document sous une forme "normale".

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • » La spécification DOM
  • DOMNode::normalize() - Normalise le noeud


Enregistre la classe étendue utilisée pour créer un type de base de noeud

  • « DOMDocument::normalizeDocument
  • DOMDocument::relaxNGValidate »
  • PHP Manual
  • DOMDocument
  • Enregistre la classe étendue utilisée pour créer un type de base de noeud

DOMDocument::registerNodeClass

(PHP 5 >= 5.2.0, PHP 7)

DOMDocument::registerNodeClass — Enregistre la classe étendue utilisée pour créer un type de base de noeud

Description

public bool DOMDocument::registerNodeClass ( string $baseclass , string $extendedclass )

Cette méthode vous permet d'enregistrer votre propre classe étendue DOM à utiliser ensuite dans l'extension DOM de PHP.

Cette méthode ne fait pas partie du standard DOM.

Liste de paramètres

baseclass

La classe DOM qui vous voulez étendre. Vous pouvez trouver une liste de ces classes dans l'introduction du chapitre.

extendedclass

Le nom de votre classe étendue. Si la valeur NULL est fournie, toutes les classes enregistrées précédemment étendant baseclass seront supprimées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.2.2 | Avant la version 5.2.2, une classe extendedclass précédemment enregistrée devait être supprimées avant de pouvoir en enregistrer une nouvelle étendant la même classe baseclass.

Exemples

Exemple #1 Ajout d'un nouvelle méthode à DOMElement

<?php

class myElement extends DOMElement {
   function appendElement($name) {
      return $this->appendChild(new myElement($name));
   }
}

class myDocument extends DOMDocument {
   function setRoot($name) {
      return $this->appendChild(new myElement($name));
   }
}

$doc = new myDocument();
$doc->registerNodeClass('DOMElement', 'myElement');

// À partir d'ici, l'ajout d'un élément à un autre se fait en un seul appel !
$root = $doc->setRoot('root');
$child = $root->appendElement('child');
$child->setAttribute('foo', 'bar');

echo $doc->saveXML();

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<root><child foo="bar"/></root>

Exemple #2 Récupération d'éléments sous la forme d'une classe personnalisée

<?php
class myElement extends DOMElement {
    public function __toString() {
        return $this->nodeValue;
    }
}

$doc = new DOMDocument;
$doc->loadXML("<root><element><child>Text dans un fils</child></element></root>");
$doc->registerNodeClass("DOMElement", "myElement");

$element = $doc->getElementsByTagName("child")->item(0);
var_dump(get_class($element));

// Et utilisons les avantages de la méthode __toString..
echo $element;
?>

L'exemple ci-dessus va afficher :

string(9) "myElement"
Text dans un fils

Exemple #3 Récupération du propriétaire du document

Lors de l'instanciation d'un DOMDocument personnalisé, la propriété ownerDocument se réfère à la classe instanciée, signifiant qu'il n'est pas nécessaire (et en fait, par possible) d'utiliser DOMDocument::registerNodeClass() avec DOMDocument

<?php
class myDOMDocument extends DOMDocument {
}

class myOtherDOMDocument extends DOMDocument {
}

// Création d'un document myDOMDocument avec quelques fragments XML
$doc = new myDOMDocument;
$doc->loadXML("<root><element><child>texte dans un fils</child></element></root>");

$child = $doc->getElementsByTagName("child")->item(0);

// Le propriétaire courant du noeud est myDOMDocument
var_dump(get_class($child->ownerDocument));

// Importation d'un noeud depuis myDOMDocument
$newdoc = new myOtherDOMDocument;
$child = $newdoc->importNode($child);

// Le nouveau propriétaire du noeud a changé en myOtherDOMDocument
var_dump(get_class($child->ownerDocument));
?>

L'exemple ci-dessus va afficher :

string(13) "myDOMDocument"
string(18) "myOtherDOMDocument"


Effectue une validation relaxNG sur le document

  • « DOMDocument::registerNodeClass
  • DOMDocument::relaxNGValidateSource »
  • PHP Manual
  • DOMDocument
  • Effectue une validation relaxNG sur le document

DOMDocument::relaxNGValidate

(PHP 5, PHP 7)

DOMDocument::relaxNGValidate — Effectue une validation relaxNG sur le document

Description

public bool DOMDocument::relaxNGValidate ( string $filename )

Effectue une validation » relaxNG sur le document selon le schéma RNG défini par filename.

Liste de paramètres

filename

Le fichier RNG.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • DOMDocument::relaxNGValidateSource() - Effectue une validation relaxNG sur le document
  • DOMDocument::schemaValidate() - Valide un document selon un schéma
  • DOMDocument::schemaValidateSource() - Valide un document selon un schéma
  • DOMDocument::validate() - Valide un document en se basant sur sa DTD


Effectue une validation relaxNG sur le document

  • « DOMDocument::relaxNGValidate
  • DOMDocument::save »
  • PHP Manual
  • DOMDocument
  • Effectue une validation relaxNG sur le document

DOMDocument::relaxNGValidateSource

(PHP 5, PHP 7)

DOMDocument::relaxNGValidateSource — Effectue une validation relaxNG sur le document

Description

public bool DOMDocument::relaxNGValidateSource ( string $source )

Effectue une validation » relaxNG sur le document selon le schéma RNG défini dans la chaîne source.

Liste de paramètres

source

Une chaîne contenant le schéma RNG.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • DOMDocument::relaxNGValidate() - Effectue une validation relaxNG sur le document
  • DOMDocument::schemaValidate() - Valide un document selon un schéma
  • DOMDocument::schemaValidateSource() - Valide un document selon un schéma
  • DOMDocument::validate() - Valide un document en se basant sur sa DTD


Sauvegarde l'arbre interne XML dans un fichier

  • « DOMDocument::relaxNGValidateSource
  • DOMDocument::saveHTML »
  • PHP Manual
  • DOMDocument
  • Sauvegarde l'arbre interne XML dans un fichier

DOMDocument::save

(PHP 5, PHP 7)

DOMDocument::save — Sauvegarde l'arbre interne XML dans un fichier

Description

public int DOMDocument::save ( string $filename [, int $options ] )

Crée un document XML depuis la représentation DOM. Cette fonction est habituellement appelée après la construction d'un nouveau document DOM, comme dans l'exemple ci-dessous.

Liste de paramètres

filename

Le chemin où sera sauvegardé le document XML.

options

Options additionnelles. Actuellement, seul LIBXML_NOEMPTYTAG est supporté.

Valeurs de retour

Retourne le nombre d'octets écrit ou FALSE si une erreur survient.

Historique

Version | Description
5.1.0 | Ajout du paramètre options

Exemples

Exemple #1 Sauvegarde d'un arbre DOM dans un fichier

<?php

$doc = new DOMDocument('1.0');
// nous voulons un bel affichage
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo 'Écrit : ' . $doc->save("/tmp/test.xml") . ' bytes'; // Écrit : 72 bytes

?>

Voir aussi

  • DOMDocument::save()
  • DOMDocument::load() - Charge du XML depuis un fichier
  • DOMDocument::loadXML() - Charge du XML depuis une chaîne de caractères


Sauvegarde le document interne dans une chaîne en utilisant un formatage HTML

  • « DOMDocument::save
  • DOMDocument::saveHTMLFile »
  • PHP Manual
  • DOMDocument
  • Sauvegarde le document interne dans une chaîne en utilisant un formatage HTML

DOMDocument::saveHTML

(PHP 5, PHP 7)

DOMDocument::saveHTML — Sauvegarde le document interne dans une chaîne en utilisant un formatage HTML

Description

public string DOMDocument::saveHTML ([ DOMNode $node = NULL ] )

Crée un document HTML depuis une représentation DOM. Cette fonction est habituellement appelée après la construction d'un tout nouveau document DOM, comme dans l'exemple ci-dessous.

Liste de paramètres

node

Paramètre optionnel pour afficher une portion du document.

Valeurs de retour

Retourne le code HTML ou FALSE si une erreur survient.

Historique

Version | Description
5.3.6 | Le paramètre node a été ajouté.

Exemples

Exemple #1 Sauvegarde d'un arbre HTML dans une chaîne de caractères

<?php

$doc = new DOMDocument('1.0');

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('Ceci est le titre');
$text = $title->appendChild($text);

echo $doc->saveHTML();

?>

Voir aussi

  • DOMDocument::saveHTML()
  • DOMDocument::loadHTML() - Charge du code HTML à partir d'une chaîne de caractères
  • DOMDocument::loadHTMLFile() - Charge du HTML à partir d'un fichier


Sauvegarde un document interne dans un fichier en utilisant un formatage HTML

  • « DOMDocument::saveHTML
  • DOMDocument::saveXML »
  • PHP Manual
  • DOMDocument
  • Sauvegarde un document interne dans un fichier en utilisant un formatage HTML

DOMDocument::saveHTMLFile

(PHP 5, PHP 7)

DOMDocument::saveHTMLFile — Sauvegarde un document interne dans un fichier en utilisant un formatage HTML

Description

public int DOMDocument::saveHTMLFile ( string $filename )

Crée un document HTML depuis une représentation DOM. Cette fonction est habituellement appelée après la construction d'un tout nouveau document DOM, comme dans l'exemple ci-dessous.

Liste de paramètres

filename

Le chemin où l'on doit sauvegarder le document HTML.

Valeurs de retour

Retourne le nombre d'octets écrit ou FALSE si une erreur survient.

Exemples

Exemple #1 Sauvegarde d'un arbre HTML dans un fichier

<?php

$doc = new DOMDocument('1.0');
// nous voulons un joli affichage
$doc->formatOutput = true;

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('Ceci est le titre');
$text = $title->appendChild($text);

echo 'Écrit : ' . $doc->saveHTMLFile("/tmp/test.html") . ' bytes'; // Écrit : 129 bytes

?>

Voir aussi

  • DOMDocument::saveHTML() - Sauvegarde le document interne dans une chaîne en utilisant un formatage HTML
  • DOMDocument::loadHTML() - Charge du code HTML à partir d'une chaîne de caractères
  • DOMDocument::loadHTMLFile() - Charge du HTML à partir d'un fichier


Sauvegarde l'arbre interne XML dans une chaîne de caractères

  • « DOMDocument::saveHTMLFile
  • DOMDocument::schemaValidate »
  • PHP Manual
  • DOMDocument
  • Sauvegarde l'arbre interne XML dans une chaîne de caractères

DOMDocument::saveXML

(PHP 5, PHP 7)

DOMDocument::saveXML — Sauvegarde l'arbre interne XML dans une chaîne de caractères

Description

public string DOMDocument::saveXML ([ DOMNode $node [, int $options ]] )

Crée un document XML depuis la représentation DOM. Cette fonction est habituellement appelée après la création d'un tout nouveau document DOM, comme dans l'exemple ci-dessous.

Liste de paramètres

node

Utilisez ce paramètre pour afficher uniquement un noeud spécifique sans déclaration XML plutôt que la totalité du document.

options

Options additionnelles. Actuellement, seul LIBXML_NOEMPTYTAG est supporté.

Valeurs de retour

Retourne le XML ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_WRONG_DOCUMENT_ERR

Lancé si node est issu d'un autre document.

Historique

Version | Description
5.1.0 | Ajout du paramètre options

Exemples

Exemple #1 Sauvegarde de l'arbre DOM dans une chaîne de caractères

<?php

$doc = new DOMDocument('1.0');
// nous voulons un joli affichage
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('Ceci est le titre');
$text = $title->appendChild($text);

echo "Récupération de tout le document :\n";
echo $doc->saveXML() . "\n";

echo "Récupération du titre, uniquement :\n";
echo $doc->saveXML($title);

?>

L'exemple ci-dessus va afficher :

Récupération de tout le document :
<?xml version="1.0"?>
<book>
  <title>Ceci est le titre</title>
</book>

Récupération du titre, uniquement :
<title>Ceci est le titre</title>

Voir aussi

  • DOMDocument::save() - Sauvegarde l'arbre interne XML dans un fichier
  • DOMDocument::load() - Charge du XML depuis un fichier
  • DOMDocument::loadXML() - Charge du XML depuis une chaîne de caractères


Valide un document selon un schéma

  • « DOMDocument::saveXML
  • DOMDocument::schemaValidateSource »
  • PHP Manual
  • DOMDocument
  • Valide un document selon un schéma

DOMDocument::schemaValidate

(PHP 5, PHP 7)

DOMDocument::schemaValidate — Valide un document selon un schéma

Description

public bool DOMDocument::schemaValidate ( string $filename [, int $flags ] )

Valide un document selon un schéma contenu dans un fichier donné.

Liste de paramètres

filename

Le chemin vers le fichier contenant le schéma.

flags

Un masque de drapeaux de validation du schéma Libxml. Actuellement, la seule valeur supportée est LIBXML_SCHEMA_CREATE. Disponible depuis PHP 5.5.2 et Libxml 2.6.14.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.5.2 | Ajout du paramètre flags

Voir aussi

  • DOMDocument::schemaValidateSource() - Valide un document selon un schéma
  • DOMDocument::relaxNGValidate() - Effectue une validation relaxNG sur le document
  • DOMDocument::relaxNGValidateSource() - Effectue une validation relaxNG sur le document
  • DOMDocument::validate() - Valide un document en se basant sur sa DTD


Valide un document selon un schéma

  • « DOMDocument::schemaValidate
  • DOMDocument::validate »
  • PHP Manual
  • DOMDocument
  • Valide un document selon un schéma

DOMDocument::schemaValidateSource

(PHP 5, PHP 7)

DOMDocument::schemaValidateSource — Valide un document selon un schéma

Description

public bool DOMDocument::schemaValidateSource ( string $source [, int $flags ] )

Valide un document selon le schéma défini dans la chaîne donnée.

Liste de paramètres

source

Une chaîne contenant le schéma.

flags

Un masque de drapeau de validation de schéma Libxml. Actuellement, la seule valeur supportée est LIBXML_SCHEMA_CREATE. Disponible depuis PHP 5.5.2 et Libxml 2.6.14.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.5.2 | Ajout du paramètre flags

Voir aussi

  • DOMDocument::schemaValidate() - Valide un document selon un schéma
  • DOMDocument::relaxNGValidate() - Effectue une validation relaxNG sur le document
  • DOMDocument::relaxNGValidateSource() - Effectue une validation relaxNG sur le document
  • DOMDocument::validate() - Valide un document en se basant sur sa DTD


Valide un document en se basant sur sa DTD

  • « DOMDocument::schemaValidateSource
  • DOMDocument::xinclude »
  • PHP Manual
  • DOMDocument
  • Valide un document en se basant sur sa DTD

DOMDocument::validate

(PHP 5, PHP 7)

DOMDocument::validate — Valide un document en se basant sur sa DTD

Description

public bool DOMDocument::validate ( void )

Valide un document en se basant sur sa DTD.

Vous pouvez utiliser la propriété validateOnParse de la classe DOMDocument pour effectuer une validation DTD.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si le document n'a aucune DTD d'attachée, cette méthode retournera FALSE.

Exemples

Exemple #1 Exemple de validation DTD

<?php
$dom = new DOMDocument;
$dom->Load('book.xml');
if ($dom->validate()) {
    echo "Ce document est valide !\n";
}
?>

Vous pouvez également valider votre fichier XML en le chargeant :

<?php
$dom = new DOMDocument;
$dom->validateOnParse = true;
$dom->Load('book.xml');
?>

Voir aussi

  • DOMDocument::schemaValidate() - Valide un document selon un schéma
  • DOMDocument::schemaValidateSource() - Valide un document selon un schéma
  • DOMDocument::relaxNGValidate() - Effectue une validation relaxNG sur le document
  • DOMDocument::relaxNGValidateSource() - Effectue une validation relaxNG sur le document


Remplace les XIncludes dans un objet DOMDocument

  • « DOMDocument::validate
  • DOMDocumentFragment »
  • PHP Manual
  • DOMDocument
  • Remplace les XIncludes dans un objet DOMDocument

DOMDocument::xinclude

(PHP 5, PHP 7)

DOMDocument::xinclude — Remplace les XIncludes dans un objet DOMDocument

Description

public int DOMDocument::xinclude ([ int $options ] )

Cette méthode remplace les » XIncludes dans un objet DOMDocument.

Note:

Vu que la bibliothèque libxml2 résout automatiquement les entités, cette méthode peut produire des résultats non attendus si le fichier XML inclus a une DTD d'attachée.

Liste de paramètres

options

paramètres Libxml. Disponible depuis PHP 5.1.0 et Libxml 2.6.7.

Valeurs de retour

Retourne le nombre de XIncludes du document, -1 si une erreur survient lors du processus, ou FALSE s'il n'y a aucune substitution.

Exemples

Exemple #1 Exemple avec DOMDocument::xinclude()

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
 <title>Les livres d'une autre personne</title>
 <para>
  <xi:include href="book.xml">
   <xi:fallback>
    <error>xinclude: book.xml n'a pas été trouvé</error>
   </xi:fallback>
  </xi:include>
 </para>
</chapter>
EOD;

$dom = new DOMDocument;

// Nous voulons un joli affichage
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;

// chargement de la chaîne XML définie ci-dessus
$dom->loadXML($xml);

// remplacement des xincludes
$dom->xinclude();

echo $dom->saveXML();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

<?xml version="1.0"?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
  <title>Les livres d'une autre personne</title>
  <para>
    <row xml:base="/home/didou/book.xml">
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
  </para>
</chapter>


La classe DOMDocumentFragment

(PHP 5, PHP 7)

Synopsis de la classe

DOMDocumentFragment étend DOMNode {
/* Propriétés */
/* Méthodes */
public bool appendXML ( string $data )
/* Méthodes héritées */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Sommaire

  • DOMDocumentFragment::appendXML — Ajoute des données XML


Ajoute des données XML

  • « DOMDocumentFragment
  • DOMDocumentType »
  • PHP Manual
  • DOMDocumentFragment
  • Ajoute des données XML

DOMDocumentFragment::appendXML

(PHP 5 >= 5.1.0, PHP 7)

DOMDocumentFragment::appendXML — Ajoute des données XML

Description

public bool DOMDocumentFragment::appendXML ( string $data )

Ajoute des données XML brutes à un DOMDocumentFragment.

Cette méthode ne fait pas partie du standard DOM. Elle a été créée pour simplifier l'ajout d'un fragment XML dans un DOMDocument.

Si vous voulez respecter les standards, vous devez créer un DOMDocument temporaire avec une racine et parcourir les noeuds enfants de vos données XML pour les ajouter.

Liste de paramètres

data

XML à ajouter.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Ajout de données XML à votre document

<?php
$doc = new DOMDocument();
$doc->loadXML("<root/>");
$f = $doc->createDocumentFragment();
$f->appendXML("<foo>text</foo><bar>text2</bar>");
$doc->documentElement->appendChild($f);
echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<root><foo>text</foo><bar>text2</bar></root>


La classe DOMDocumentType

(PHP 5, PHP 7)

Introduction

Chaque DOMDocument a un attribut doctype dont la valeur est soit NULL, soit un objet DOMDocumentType.

Synopsis de la classe

DOMDocumentType étend DOMNode {
/* Propriétés */
readonly public string $publicId ;
readonly public string $systemId ;
readonly public string $name ;
readonly public DOMNamedNodeMap $entities ;
readonly public DOMNamedNodeMap $notations ;
readonly public string $internalSubset ;
/* Méthodes héritées */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

publicId

L'identifiant public du subset externe.

systemId

L'identifiant système du subset externe. Ce peut être une URL absolue ou non.

name

Le nom de la DTD ; i.e., le nom suivant immédiatement le mot clé DOCTYPE.

entities

Un DOMNamedNodeMap contenant l'entité général, à la fois externe et interne, déclaré dans la DTD.

notations

Un DOMNamedNodeMap contenant les notations, déclarées dans la DTD.

internalSubset

Le subset interne, sous la forme d'une chaîne de caractères, ou NULL s'il n'y en a pas. Cette chaîne ne contient pas les crochets délimiteurs.


La classe DOMElement

(PHP 5, PHP 7)

Synopsis de la classe

DOMElement étend DOMNode {
/* Propriétés */
readonly public bool $schemaTypeInfo ;
readonly public string $tagName ;
/* Méthodes */
public __construct ( string $name [, string $value [, string $namespaceURI ]] )
public string getAttribute ( string $name )
public DOMAttr getAttributeNode ( string $name )
public DOMAttr getAttributeNodeNS ( string $namespaceURI , string $localName )
public string getAttributeNS ( string $namespaceURI , string $localName )
public DOMNodeList getElementsByTagName ( string $name )
public DOMNodeList getElementsByTagNameNS ( string $namespaceURI , string $localName )
public bool hasAttribute ( string $name )
public bool hasAttributeNS ( string $namespaceURI , string $localName )
public bool removeAttribute ( string $name )
public bool removeAttributeNode ( DOMAttr $oldnode )
public bool removeAttributeNS ( string $namespaceURI , string $localName )
public DOMAttr setAttribute ( string $name , string $value )
public DOMAttr setAttributeNode ( DOMAttr $attr )
public DOMAttr setAttributeNodeNS ( DOMAttr $attr )
public void setAttributeNS ( string $namespaceURI , string $qualifiedName , string $value )
public void setIdAttribute ( string $name , bool $isId )
public void setIdAttributeNode ( DOMAttr $attr , bool $isId )
public void setIdAttributeNS ( string $namespaceURI , string $localName , bool $isId )
/* Méthodes héritées */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

schemaTypeInfo

Non implémenté, retourne toujours NULL

tagName

Le nom de l'élément

Notes

Note:

L'extension DOM utilise l'encodage UTF-8. Utilisez utf8_encode() et utf8_decode() pour traiter les textes encodés en ISO-8859-1 ou Iconv pour les autres encodages.

Sommaire

  • DOMElement::__construct — Crée un nouvel objet DOMElement
  • DOMElement::getAttribute — Retourne la valeur d'un attribut
  • DOMElement::getAttributeNode — Retourne le noeud d'attribut
  • DOMElement::getAttributeNodeNS — Retourne le noeud d'attribut
  • DOMElement::getAttributeNS — Retourne la valeur de l'attribut
  • DOMElement::getElementsByTagName — Retourne les éléments par leur nom de balise
  • DOMElement::getElementsByTagNameNS — Récupère les éléments par leur espace de noms et leur localName
  • DOMElement::hasAttribute — Vérifie si un attribut existe
  • DOMElement::hasAttributeNS — Vérifie si un attribut existe
  • DOMElement::removeAttribute — Efface un attribut
  • DOMElement::removeAttributeNode — Efface un attribut
  • DOMElement::removeAttributeNS — Efface un attribut
  • DOMElement::setAttribute — Ajoute un nouvel attribut
  • DOMElement::setAttributeNode — Ajoute un nouvel attribut à l'élément
  • DOMElement::setAttributeNodeNS — Ajoute un nouvel attribut à l'élément
  • DOMElement::setAttributeNS — Ajoute un nouvel attribut
  • DOMElement::setIdAttribute — Déclare l'attribut spécifié par son nom à être de type ID
  • DOMElement::setIdAttributeNode — Déclare l'attribut spécifié par le noeud à être de type ID
  • DOMElement::setIdAttributeNS — Déclare l'attribut spécifié par son nom local et son espace de nom URI à être de type ID


Crée un nouvel objet DOMElement

  • « DOMElement
  • DOMElement::getAttribute »
  • PHP Manual
  • DOMElement
  • Crée un nouvel objet DOMElement

DOMElement::__construct

(PHP 5, PHP 7)

DOMElement::__construct — Crée un nouvel objet DOMElement

Description

public DOMElement::__construct ( string $name [, string $value [, string $namespaceURI ]] )

Crée un nouvel objet DOMElement. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les noeuds additionnels ne peuvent pas être ajoutés à ce noeud tant qu'il est associé à un document. Pour créer un noeud accessible en écriture, utilisez DOMDocument::createElement ou DOMDocument::createElementNS.

Liste de paramètres

name

Le nom de l'élément. Lorsqu'il est passé dans l'URI de l'espace de nom, le nom de l'élément doit comporter un préfixe pour être associé à l'URI.

value

La valeur de l'élément.

namespaceURI

Un espace de nom de l'URI pour créer l'élément dans un espace de nom spécifique.

Exemples

Exemple #1 Création d'un nouveau DOMElement

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$element_ns = new DOMElement('pr:node1', 'thisvalue', 'http://xyz');
$element->appendChild($element_ns);
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?>
<root><pr:node1 xmlns:pr="http://xyz">thisvalue</pr:node1></root> */

?>

Voir aussi

  • DOMDocument::createElement() - Crée un nouveau noeud
  • DOMDocument::createElementNS() - Crée un nouveau noeud avec un espace de noms associé


Retourne la valeur d'un attribut

  • « DOMElement::__construct
  • DOMElement::getAttributeNode »
  • PHP Manual
  • DOMElement
  • Retourne la valeur d'un attribut

DOMElement::getAttribute

(PHP 5, PHP 7)

DOMElement::getAttribute — Retourne la valeur d'un attribut

Description

public string DOMElement::getAttribute ( string $name )

Récupère la valeur d'un attribut avec le nom name pour le noeud courant.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

La valeur de l'attribut ou une chaîne vide si aucun attribut avec le nom name donné n'est trouvé.

Voir aussi

  • DOMElement::hasAttribute() - Vérifie si un attribut existe
  • DOMElement::setAttribute() - Ajoute un nouvel attribut
  • DOMElement::removeAttribute() - Efface un attribut


Retourne le noeud d'attribut

  • « DOMElement::getAttribute
  • DOMElement::getAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • Retourne le noeud d'attribut

DOMElement::getAttributeNode

(PHP 5, PHP 7)

DOMElement::getAttributeNode — Retourne le noeud d'attribut

Description

public DOMAttr DOMElement::getAttributeNode ( string $name )

Retourne le noeud d'attribut avec le nom name pour l'élément courant.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Le noeud d'attribut.

Voir aussi

  • DOMElement::hasAttribute() - Vérifie si un attribut existe
  • DOMElement::setAttributeNode() - Ajoute un nouvel attribut à l'élément
  • DOMElement::removeAttributeNode() - Efface un attribut


Retourne le noeud d'attribut

  • « DOMElement::getAttributeNode
  • DOMElement::getAttributeNS »
  • PHP Manual
  • DOMElement
  • Retourne le noeud d'attribut

DOMElement::getAttributeNodeNS

(PHP 5, PHP 7)

DOMElement::getAttributeNodeNS — Retourne le noeud d'attribut

Description

public DOMAttr DOMElement::getAttributeNodeNS ( string $namespaceURI , string $localName )

Retourne le noeud d'attribut dans l'espace de noms namespaceURI avec le nom local localName pour le noeud courant.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

Le noeud d'attribut.

Voir aussi

  • DOMElement::hasAttributeNS() - Vérifie si un attribut existe
  • DOMElement::setAttributeNodeNS() - Ajoute un nouvel attribut à l'élément
  • DOMElement::removeAttributeNode() - Efface un attribut


Retourne la valeur de l'attribut

  • « DOMElement::getAttributeNodeNS
  • DOMElement::getElementsByTagName »
  • PHP Manual
  • DOMElement
  • Retourne la valeur de l'attribut

DOMElement::getAttributeNS

(PHP 5, PHP 7)

DOMElement::getAttributeNS — Retourne la valeur de l'attribut

Description

public string DOMElement::getAttributeNS ( string $namespaceURI , string $localName )

Récupère la valeur de l'attribut dans l'espace de noms namespaceURI avec le nom local localName pour le noeud courant.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

La valeur de l'attribut, ou une chaîne vide si aucun attribut avec le nom local localName donné et dans l'espace de noms namespaceURI n'est trouvé.

Voir aussi

  • DOMElement::hasAttributeNS() - Vérifie si un attribut existe
  • DOMElement::setAttributeNS() - Ajoute un nouvel attribut
  • DOMElement::removeAttributeNS() - Efface un attribut


Retourne les éléments par leur nom de balise

  • « DOMElement::getAttributeNS
  • DOMElement::getElementsByTagNameNS »
  • PHP Manual
  • DOMElement
  • Retourne les éléments par leur nom de balise

DOMElement::getElementsByTagName

(PHP 5, PHP 7)

DOMElement::getElementsByTagName — Retourne les éléments par leur nom de balise

Description

public DOMNodeList DOMElement::getElementsByTagName ( string $name )

Cette fonction retourne une nouvelle instance de la classe DOMNodeList contenant tous les éléments descendants avec un nom de balise name donné, dans l'ordre dans lequel ils sont rencontrés lors du parcours de l'arbre de cet élément.

Liste de paramètres

name

Le nom de la balise. Utilisez le caractère générique * pour récupérer tous les éléments contenus dans l'arbre de l'élément.

Valeurs de retour

Cette fonction retourne une nouvelle instance de la classe DOMNodeList contenant tous les éléments correspondants.

Voir aussi

  • DOMElement::getElementsByTagNameNS() - Récupère les éléments par leur espace de noms et leur localName


Récupère les éléments par leur espace de noms et leur localName

  • « DOMElement::getElementsByTagName
  • DOMElement::hasAttribute »
  • PHP Manual
  • DOMElement
  • Récupère les éléments par leur espace de noms et leur localName

DOMElement::getElementsByTagNameNS

(PHP 5, PHP 7)

DOMElement::getElementsByTagNameNS — Récupère les éléments par leur espace de noms et leur localName

Description

public DOMNodeList DOMElement::getElementsByTagNameNS ( string $namespaceURI , string $localName )

Cette fonction récupère tous les éléments descendants avec un nom local localName et un espace de noms namespaceURI donnés.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local. Utilisez le caractère générique * pour récupérer tous les éléments de l'arbre de l'élément.

Valeurs de retour

Cette fonction retourne un nouvel objet de la classe DOMNodeList contenant tous les éléments correspondants dans l'ordre dans lesquels ils sont rencontrés lors du parcours de l'arbre de cet élément.

Voir aussi

  • DOMElement::getElementsByTagNameNS()


Vérifie si un attribut existe

  • « DOMElement::getElementsByTagNameNS
  • DOMElement::hasAttributeNS »
  • PHP Manual
  • DOMElement
  • Vérifie si un attribut existe

DOMElement::hasAttribute

(PHP 5, PHP 7)

DOMElement::hasAttribute — Vérifie si un attribut existe

Description

public bool DOMElement::hasAttribute ( string $name )

Indique si un attribut nommé name existe en tant que membre de l'élément.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • DOMElement::hasAttributeNS() - Vérifie si un attribut existe
  • DOMElement::getAttribute() - Retourne la valeur d'un attribut
  • DOMElement::setAttribute() - Ajoute un nouvel attribut
  • DOMElement::removeAttribute() - Efface un attribut


Vérifie si un attribut existe

  • « DOMElement::hasAttribute
  • DOMElement::removeAttribute »
  • PHP Manual
  • DOMElement
  • Vérifie si un attribut existe

DOMElement::hasAttributeNS

(PHP 5, PHP 7)

DOMElement::hasAttributeNS — Vérifie si un attribut existe

Description

public bool DOMElement::hasAttributeNS ( string $namespaceURI , string $localName )

Vérifie si un attribut dans l'espace de noms namespaceURI nommé localName existe en tant que membre de l'élément.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • DOMElement::hasAttribute() - Vérifie si un attribut existe
  • DOMElement::getAttributeNS() - Retourne la valeur de l'attribut
  • DOMElement::setAttributeNS() - Ajoute un nouvel attribut
  • DOMElement::removeAttributeNS() - Efface un attribut


Efface un attribut

  • « DOMElement::hasAttributeNS
  • DOMElement::removeAttributeNode »
  • PHP Manual
  • DOMElement
  • Efface un attribut

DOMElement::removeAttribute

(PHP 5, PHP 7)

DOMElement::removeAttribute — Efface un attribut

Description

public bool DOMElement::removeAttribute ( string $name )

Efface l'attribut nommé name de l'élément.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Voir aussi

  • DOMElement::hasAttribute() - Vérifie si un attribut existe
  • DOMElement::getAttribute() - Retourne la valeur d'un attribut
  • DOMElement::setAttribute() - Ajoute un nouvel attribut


Efface un attribut

  • « DOMElement::removeAttribute
  • DOMElement::removeAttributeNS »
  • PHP Manual
  • DOMElement
  • Efface un attribut

DOMElement::removeAttributeNode

(PHP 5, PHP 7)

DOMElement::removeAttributeNode — Efface un attribut

Description

public bool DOMElement::removeAttributeNode ( DOMAttr $oldnode )

Efface l'attribut oldnode de l'élément.

Liste de paramètres

oldnode

Le noeud de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

DOM_NOT_FOUND_ERROR

Lancé si oldnode n'est pas un attribut de l'élément.

Voir aussi

  • DOMElement::hasAttribute() - Vérifie si un attribut existe
  • DOMElement::getAttributeNode() - Retourne le noeud d'attribut
  • DOMElement::setAttributeNode() - Ajoute un nouvel attribut à l'élément


Efface un attribut

  • « DOMElement::removeAttributeNode
  • DOMElement::setAttribute »
  • PHP Manual
  • DOMElement
  • Efface un attribut

DOMElement::removeAttributeNS

(PHP 5, PHP 7)

DOMElement::removeAttributeNS — Efface un attribut

Description

public bool DOMElement::removeAttributeNS ( string $namespaceURI , string $localName )

Efface un attribut avec l'espace de noms namespaceURI nommé localName de l'élément.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Voir aussi

  • DOMElement::hasAttributeNS() - Vérifie si un attribut existe
  • DOMElement::getAttributeNS() - Retourne la valeur de l'attribut
  • DOMElement::setAttributeNS() - Ajoute un nouvel attribut


Ajoute un nouvel attribut

  • « DOMElement::removeAttributeNS
  • DOMElement::setAttributeNode »
  • PHP Manual
  • DOMElement
  • Ajoute un nouvel attribut

DOMElement::setAttribute

(PHP 5, PHP 7)

DOMElement::setAttribute — Ajoute un nouvel attribut

Description

public DOMAttr DOMElement::setAttribute ( string $name , string $value )

Ajoute un attribut avec comme nom name et comme valeur value. Si l'attribut n'existe pas, il sera créé.

Liste de paramètres

name

Le nom de l'attribut.

value

La valeur de l'attribut.

Valeurs de retour

Le nouveau DOMAttr ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Exemples

Exemple #1 Ajout d'un attribut

<?php
$doc = new DOMDocument("1.0");
$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);
$newnode->setAttribute("align", "left");
?>

Voir aussi

  • DOMElement::hasAttribute() - Vérifie si un attribut existe
  • DOMElement::getAttribute() - Retourne la valeur d'un attribut
  • DOMElement::removeAttribute() - Efface un attribut


Ajoute un nouvel attribut à l'élément

  • « DOMElement::setAttribute
  • DOMElement::setAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • Ajoute un nouvel attribut à l'élément

DOMElement::setAttributeNode

(PHP 5, PHP 7)

DOMElement::setAttributeNode — Ajoute un nouvel attribut à l'élément

Description

public DOMAttr DOMElement::setAttributeNode ( DOMAttr $attr )

Ajoute un nouvel attribut attr à l'élément.

Liste de paramètres

attr

L'attribut.

Valeurs de retour

Retourne l'ancien noeud si l'attribut a été placé ou NULL.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Voir aussi

  • DOMElement::hasAttribute() - Vérifie si un attribut existe
  • DOMElement::getAttributeNode() - Retourne le noeud d'attribut
  • DOMElement::removeAttributeNode() - Efface un attribut


Ajoute un nouvel attribut à l'élément

  • « DOMElement::setAttributeNode
  • DOMElement::setAttributeNS »
  • PHP Manual
  • DOMElement
  • Ajoute un nouvel attribut à l'élément

DOMElement::setAttributeNodeNS

(PHP 5, PHP 7)

DOMElement::setAttributeNodeNS — Ajoute un nouvel attribut à l'élément

Description

public DOMAttr DOMElement::setAttributeNodeNS ( DOMAttr $attr )

Ajoute un nouvel attribut attr à l'élément.

Liste de paramètres

attr

Le nom de l'attribut.

Valeurs de retour

Retourne l'ancien noeud si l'attribut a été placé.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Voir aussi

  • DOMElement::hasAttributeNS() - Vérifie si un attribut existe
  • DOMElement::getAttributeNodeNS() - Retourne le noeud d'attribut
  • DOMElement::removeAttributeNode() - Efface un attribut


Ajoute un nouvel attribut

  • « DOMElement::setAttributeNodeNS
  • DOMElement::setIdAttribute »
  • PHP Manual
  • DOMElement
  • Ajoute un nouvel attribut

DOMElement::setAttributeNS

(PHP 5, PHP 7)

DOMElement::setAttributeNS — Ajoute un nouvel attribut

Description

public void DOMElement::setAttributeNS ( string $namespaceURI , string $qualifiedName , string $value )

Ajoute un attribut avec comme espace de noms namespaceURI et comme nom name avec comme valeur value. Si l'attribut n'existe pas, il sera créé.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

qualifiedName

Le nom qualifié de l'attribut, sous la forme prefixe:nomdebalise.

value

La valeur de l'attribut.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

DOM_NAMESPACE_ERR

Lancé si qualifiedName est un nom qualifié malformé ou si qualifiedName a un préfixe et un namespaceURI qui vaut NULL.

Voir aussi

  • DOMElement::hasAttributeNS() - Vérifie si un attribut existe
  • DOMElement::getAttributeNodeNS() - Retourne le noeud d'attribut
  • DOMElement::removeAttributeNode() - Efface un attribut


Déclare l'attribut spécifié par son nom à être de type ID

  • « DOMElement::setAttributeNS
  • DOMElement::setIdAttributeNode »
  • PHP Manual
  • DOMElement
  • Déclare l'attribut spécifié par son nom à être de type ID

DOMElement::setIdAttribute

(PHP 5, PHP 7)

DOMElement::setIdAttribute — Déclare l'attribut spécifié par son nom à être de type ID

Description

public void DOMElement::setIdAttribute ( string $name , bool $isId )

Déclare l'attribut name afin qu'il soit de type ID.

Liste de paramètres

name

Le nom de l'attribut.

isId

Définissez à TRUE si vous voulez que name soit de type ID, FALSE sinon.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Envoyé si le noeud est en lecture seule.

DOM_NOT_FOUND

Envoyé si name n'est pas un attribut de cet élément.

Voir aussi

  • DOMDocument::getElementById() - Cherche un élément avec un certain identifiant
  • DOMElement::setIdAttributeNode() - Déclare l'attribut spécifié par le noeud à être de type ID
  • DOMElement::setIdAttributeNS() - Déclare l'attribut spécifié par son nom local et son espace de nom URI à être de type ID


Déclare l'attribut spécifié par le noeud à être de type ID

  • « DOMElement::setIdAttribute
  • DOMElement::setIdAttributeNS »
  • PHP Manual
  • DOMElement
  • Déclare l'attribut spécifié par le noeud à être de type ID

DOMElement::setIdAttributeNode

(PHP 5, PHP 7)

DOMElement::setIdAttributeNode — Déclare l'attribut spécifié par le noeud à être de type ID

Description

public void DOMElement::setIdAttributeNode ( DOMAttr $attr , bool $isId )

Déclare l'attribut spécifié par attr afin qu'il soit de type ID.

Liste de paramètres

attr

L'attribut du noeud.

isId

Définissez à TRUE si vous voulez que name soit de type ID, FALSE sinon.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Envoyé si le noeud est en lecture seule.

DOM_NOT_FOUND

Envoyé si name n'est pas un attribut de cet élément.

Voir aussi

  • DOMDocument::getElementById() - Cherche un élément avec un certain identifiant
  • DOMElement::setIdAttribute() - Déclare l'attribut spécifié par son nom à être de type ID
  • DOMElement::setIdAttributeNS() - Déclare l'attribut spécifié par son nom local et son espace de nom URI à être de type ID


Déclare l'attribut spécifié par son nom local et son espace de nom URI à être de type ID

  • « DOMElement::setIdAttributeNode
  • DOMEntity »
  • PHP Manual
  • DOMElement
  • Déclare l'attribut spécifié par son nom local et son espace de nom URI à être de type ID

DOMElement::setIdAttributeNS

(PHP 5, PHP 7)

DOMElement::setIdAttributeNS — Déclare l'attribut spécifié par son nom local et son espace de nom URI à être de type ID

Description

public void DOMElement::setIdAttributeNS ( string $namespaceURI , string $localName , bool $isId )

Déclare l'attribut spécifié par localName et namespaceURI afin qu'il soit de type ID.

Liste de paramètres

namespaceURI

L'URI de l'espace de nom de l'attribut.

localName

Le nom local de l'attribut, sous la forme prefix:tagname.

isId

Définissez à TRUE si vous voulez que name soit de type ID, FALSE sinon.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Émise si le noeud est en lecture seule.

DOM_NOT_FOUND

Émise si name n'est pas un attribut de cet élément.

Voir aussi

  • DOMDocument::getElementById() - Cherche un élément avec un certain identifiant
  • DOMElement::setIdAttribute() - Déclare l'attribut spécifié par son nom à être de type ID
  • DOMElement::setIdAttributeNode() - Déclare l'attribut spécifié par le noeud à être de type ID


La classe DOMEntity

(PHP 5, PHP 7)

Introduction

Cette interface représente une entité inconnue, analysée ou non, dans un document XML.

Synopsis de la classe

DOMEntity étend DOMNode {
/* Propriétés */
readonly public string $publicId ;
readonly public string $systemId ;
readonly public string $notationName ;
public string $actualEncoding ;
readonly public string $encoding ;
readonly public string $version ;
/* Méthodes héritées */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

publicId

L'identifiant public associé avec l'entité, si spécifiée, et NULL sinon.

systemId

L'identifiant système associé avec l'entité, si spécifiée, et NULL sinon. Peut être une URL absolue ou non.

notationName

Pour les entités non analysée, le nom de la notation de l'entité. Pour les entités analysées, vaut NULL.

actualEncoding

Un attribut spécifiant l'encodage utilisé pour cette entité au moment de l'analyse, lorsque c'est une entité analysée externe. Vaut NULL si c'est une entité depuis un subset interne ou si l'encodage est inconnu.

encoding

Un attribut spécifiant (faisant parti de la déclaration) l'encodage de l'entité, lorsque c'est une entité analysée externe. Vaut NULL sinon.

version

Un attribut spécifiant (faisant parti de la déclaration) le numéro de version de l'entité, lorsque c'est une entité analysée externe. Vaut NULL sinon.


La classe DOMEntityReference

(PHP 5, PHP 7)

Synopsis de la classe

DOMEntityReference étend DOMNode {
/* Propriétés */
/* Méthodes */
public __construct ( string $name )
/* Méthodes héritées */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Sommaire

  • DOMEntityReference::__construct — Crée un nouvel objet DOMEntityReference


Crée un nouvel objet DOMEntityReference

  • « DOMEntityReference
  • DOMException »
  • PHP Manual
  • DOMEntityReference
  • Crée un nouvel objet DOMEntityReference

DOMEntityReference::__construct

(PHP 5, PHP 7)

DOMEntityReference::__construct — Crée un nouvel objet DOMEntityReference

Description

public DOMEntityReference::__construct ( string $name )

Crée un nouvel objet DOMEntityReference.

Liste de paramètres

name

Le nom de la référence à l'entité.

Exemples

Exemple #1 Création d'un nouveau DOMEntityReference

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$entity = $element->appendChild(new DOMEntityReference('nbsp'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root></root> */

?>

Voir aussi

  • DOMDocument::createEntityReference() - Crée un nouveau noeud de référence d'entité


La classe DOMException

(PHP 5, PHP 7)

Introduction

Les opérations DOM lancent des exceptions lors de circonstances particulières, i.e., lorsqu'il est impossible d'exécuter une opération pour des raisons logiques.

Voir aussi Les exceptions.

Synopsis de la classe

DOMException étend Exception {
/* Propriétés */
readonly public int $code ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Propriétés

code

Un entier indiquant le type d'erreur généré


La classe DOMImplementation

(PHP 5, PHP 7)

Introduction

L'interface DOMImplementation fournit des méthodes pour effectuer des opérations qui sont indépendantes d'une instance particulière du modèle objet d'un document.

Synopsis de la classe

DOMImplementation {
/* Propriétés */
/* Méthodes */
__construct ( void )
public DOMDocument createDocument ([ string $namespaceURI = NULL [, string $qualifiedName = NULL [, DOMDocumentType $doctype = NULL ]]] )
public DOMDocumentType createDocumentType ([ string $qualifiedName = NULL [, string $publicId = NULL [, string $systemId = NULL ]]] )
public bool hasFeature ( string $feature , string $version )
}

Sommaire

  • DOMImplementation::__construct — Crée un nouvel objet DOMImplementation
  • DOMImplementation::createDocument — Crée un objet DOM Document du type spécifié avec ses éléments
  • DOMImplementation::createDocumentType — Crée un objet DOMDocumentType vide
  • DOMImplementation::hasFeature — Teste si l'implémentation DOM implémente une fonctionnalité spécifique


Crée un nouvel objet DOMImplementation

  • « DOMImplementation
  • DOMImplementation::createDocument »
  • PHP Manual
  • DOMImplementation
  • Crée un nouvel objet DOMImplementation

DOMImplementation::__construct

(PHP 5, PHP 7)

DOMImplementation::__construct — Crée un nouvel objet DOMImplementation

Description

DOMImplementation::__construct ( void )

Crée un nouvel objet DOMImplementation.


Crée un objet DOM Document du type spécifié avec ses éléments

  • « DOMImplementation::__construct
  • DOMImplementation::createDocumentType »
  • PHP Manual
  • DOMImplementation
  • Crée un objet DOM Document du type spécifié avec ses éléments

DOMImplementation::createDocument

(PHP 5, PHP 7)

DOMImplementation::createDocument — Crée un objet DOM Document du type spécifié avec ses éléments

Description

public DOMDocument DOMImplementation::createDocument ([ string $namespaceURI = NULL [, string $qualifiedName = NULL [, DOMDocumentType $doctype = NULL ]]] )

Crée un objet DOMDocument du type spécifié avec ces éléments du document.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms des éléments du document à créer.

qualifiedName

Le nom qualifié des éléments du document à créer.

doctype

Le type de document à créer ou NULL.

Valeurs de retour

Un nouvel objet DOMDocument. Si namespaceURI, qualifiedName, et doctype sont nulles, le DOMDocument retourné est vide avec aucun élément de document.

Erreurs / Exceptions

DOM_WRONG_DOCUMENT_ERR

Lancé si doctype a déjà été utilisé avec un document différent ou a été créé depuis une implémentation différente.

DOM_NAMESPACE_ERR

Lancé s'il y a une erreur dans l'espace de noms, déterminé par namespaceURI et qualifiedName.

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Voir aussi

  • DOMDocument::__construct() - Crée un nouvel objet DOMDocument
  • DOMImplementation::createDocumentType() - Crée un objet DOMDocumentType vide


Crée un objet DOMDocumentType vide

  • « DOMImplementation::createDocument
  • DOMImplementation::hasFeature »
  • PHP Manual
  • DOMImplementation
  • Crée un objet DOMDocumentType vide

DOMImplementation::createDocumentType

(PHP 5, PHP 7)

DOMImplementation::createDocumentType — Crée un objet DOMDocumentType vide

Description

public DOMDocumentType DOMImplementation::createDocumentType ([ string $qualifiedName = NULL [, string $publicId = NULL [, string $systemId = NULL ]]] )

Crée un objet DOMDocumentType vide. Les déclarations et notations d'entités ne sont pas disponibles. Les expansions de références d'entités et les ajouts d'attributs par défaut ne sont pas non plus effectués.

Liste de paramètres

qualifiedName

Le nom qualifié du type de document à créer.

publicId

L'identifiant publique externe du sous-ensemble.

systemId

L'identifiant système externe du sous-ensemble.

Valeurs de retour

Un nouveau noeud DOMDocumentType avec son ownerDocument défini à NULL.

Erreurs / Exceptions

DOM_NAMESPACE_ERR

Levée si il y a une erreur avec l'espace de noms, déterminé par qualifiedName.

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Exemples

Exemple #1 Création d'un document avec une DTD attachée

<?php

// Création d'une instance de la classe DOMImplementation
$imp = new DOMImplementation;

// Création d'une instance DOMDocumentType
$dtd = $imp->createDocumentType('graph', '', 'graph.dtd');

// Création d'une instance DOMDocument
$dom = $imp->createDocument("", "", $dtd);

// Définition des autres propriétés
$dom->encoding = 'UTF-8';
$dom->standalone = false;

// Création d'un élément vide
$element = $dom->createElement('graph');

// Ajout de l'élément
$dom->appendChild($element);

// Récupère et affiche le document
echo $dom->saveXML();

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE graph SYSTEM "graph.dtd">
<graph/>

Voir aussi

  • DOMImplementation::createDocument() - Crée un objet DOM Document du type spécifié avec ses éléments


Teste si l'implémentation DOM implémente une fonctionnalité spécifique

  • « DOMImplementation::createDocumentType
  • DOMNamedNodeMap »
  • PHP Manual
  • DOMImplementation
  • Teste si l'implémentation DOM implémente une fonctionnalité spécifique

DOMImplementation::hasFeature

(PHP 5, PHP 7)

DOMImplementation::hasFeature — Teste si l'implémentation DOM implémente une fonctionnalité spécifique

Description

public bool DOMImplementation::hasFeature ( string $feature , string $version )

Teste si l'implémentation DOM implémente une fonctionnalité feature spécifique.

Vous pouvez trouver une liste de toutes les fonctionnalités dans la section » Conformance de la spécification DOM.

Liste de paramètres

feature

La fonctionnalité à tester.

version

Le numéro de version de la fonctionnalité feature à tester. Dans le niveau 2, ceci peut être soit 2.0 ou 1.0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Exemples

Exemple #1 Test votre implémentation DOM

<?php

$features = array(
  'Core'           => 'Core module',
  'XML'            => 'XML module',
  'HTML'           => 'HTML module',
  'Views'          => 'Views module',
  'Stylesheets'    => 'Style Sheets module',
  'CSS'            => 'CSS module',
  'CSS2'           => 'CSS2 module',
  'Events'         => 'Events module',
  'UIEvents'       => 'User interface Events module',
  'MouseEvents'    => 'Mouse Events module',
  'MutationEvents' => 'Mutation Events module',
  'HTMLEvents'     => 'HTML Events module',
  'Range'          => 'Range module',
  'Traversal'      => 'Traversal module'
);

foreach ($features as $key => $name) {
  if (DOMImplementation::hasFeature($key, '2.0')) {
    echo "A la fonctionnalité $name\n";
  } else {
    echo "N'a pas la fonctionnalité $name\n";
  }
}

?>

Voir aussi

  • DOMNode::isSupported() - Vérifie si la fonctionnalité est disponible pour la version spécifiée


La classe DOMNamedNodeMap

(PHP 5, PHP 7)

Synopsis de la classe

DOMNamedNodeMap implements Traversable {
/* Propriétés */
readonly public int $length ;
/* Méthodes */
DOMNode getNamedItem ( string $name )
DOMNode getNamedItemNS ( string $namespaceURI , string $localName )
DOMNode item ( int $index )
}

Propriétés

length

Le nombre de nœuds dans la carte. L'intervalle des indices des nœuds fils valides est de 0 à length - 1, inclusif.

Sommaire

  • DOMNamedNodeMap::getNamedItem — Retourne un noeud spécifié par nom nom
  • DOMNamedNodeMap::getNamedItemNS — Retourne un noeud spécifié par son nom local et son espace de noms
  • DOMNamedNodeMap::item — Retourne un noeud selon son index


Retourne un noeud spécifié par nom nom

  • « DOMNamedNodeMap
  • DOMNamedNodeMap::getNamedItemNS »
  • PHP Manual
  • DOMNamedNodeMap
  • Retourne un noeud spécifié par nom nom

DOMNamedNodeMap::getNamedItem

(PHP 5, PHP 7)

DOMNamedNodeMap::getNamedItem — Retourne un noeud spécifié par nom nom

Description

DOMNode DOMNamedNodeMap::getNamedItem ( string $name )

Récupère un noeud spécifié par son nodeName.

Liste de paramètres

name

Le nodeName du noeud à récupérer.

Valeurs de retour

Un noeud (de n'importe quel type) avec un nodeName spécifié, ou NULL si aucun noeud n'est trouvé.

Voir aussi

  • DOMNamedNodeMap::getNamedItemNS() - Retourne un noeud spécifié par son nom local et son espace de noms


Retourne un noeud spécifié par son nom local et son espace de noms

  • « DOMNamedNodeMap::getNamedItem
  • DOMNamedNodeMap::item »
  • PHP Manual
  • DOMNamedNodeMap
  • Retourne un noeud spécifié par son nom local et son espace de noms

DOMNamedNodeMap::getNamedItemNS

(PHP 5, PHP 7)

DOMNamedNodeMap::getNamedItemNS — Retourne un noeud spécifié par son nom local et son espace de noms

Description

DOMNode DOMNamedNodeMap::getNamedItemNS ( string $namespaceURI , string $localName )

Retourne un noeud spécifié par son nom local localName et son espace de noms namespaceURI.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms du noeud à récupérer.

localName

Le nom local du noeud à récupérer.

Valeurs de retour

Un noeud, de n'importe quel type ou NULL si aucun noeud n'est trouvé.

Voir aussi

  • DOMNamedNodeMap::getNamedItemNS()


Retourne un noeud selon son index

  • « DOMNamedNodeMap::getNamedItemNS
  • DOMNode »
  • PHP Manual
  • DOMNamedNodeMap
  • Retourne un noeud selon son index

DOMNamedNodeMap::item

(PHP 5, PHP 7)

DOMNamedNodeMap::item — Retourne un noeud selon son index

Description

DOMNode DOMNamedNodeMap::item ( int $index )

Retourne un noeud spécifié par index dans l'objet DOMNamedNodeMap.

Liste de paramètres

index

Index dans cette carte.

Valeurs de retour

Le noeud à la position index dans la carte, ou NULL si ce n'est pas un index valide (plus grand que ou égal au nombre de noeuds dans cette carte).


La classe DOMNode

(PHP 5, PHP 7)

Synopsis de la classe

DOMNode {
/* Propriétés */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Méthodes */
public DOMNode appendChild ( DOMNode $newnode )
public string C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode cloneNode ([ bool $deep ] )
public int getLineNo ( void )
public string getNodePath ( void )
public bool hasAttributes ( void )
public bool hasChildNodes ( void )
public DOMNode insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool isDefaultNamespace ( string $namespaceURI )
public bool isSameNode ( DOMNode $node )
public bool isSupported ( string $feature , string $version )
public string lookupNamespaceURI ( string $prefix )
public string lookupPrefix ( string $namespaceURI )
public void normalize ( void )
public DOMNode removeChild ( DOMNode $oldnode )
public DOMNode replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

nodeName

Retourne le nom, le plus précis, pour le type de noeud courant

nodeValue

La valeur de ce noeud, suivant son type. Contrairement aux spécifications W3C, la valeur du noeud des noeuds DOMElement est égale à DOMNode::textContent au lieu de NULL.

nodeType

Récupère le type du noeud. Une des constantes XML_xxx_NODE

parentNode

Le parent de ce noeud. Si ce type de noeud n'existe pas, ceci retournera NULL.

childNodes

Un DOMNodeList qui contient tous les fils de ce noeud. S'il n'y a aucun fils, ce sera un DOMNodeList vide.

firstChild

Le premier fils de ce noeud. S'il n'y a aucun noeud de ce type, retourne NULL.

lastChild

Le dernier fils de ce noeud. S'il n'y a aucun noeud de ce type, retourne NULL.

previousSibling

Le noeud précédant immédiatement ce noeud. S'il n'y a aucun noeud, retourne NULL.

nextSibling

Le noeud suivant immédiatement ce noeud. S'il n'y a aucun noeud, retourne NULL.

attributes

Un DOMNamedNodeMap contenant les attributs de ce noeud (si c'est unDOMElement) ou NULL sinon.

ownerDocument

L'objet DOMDocument associé avec ce noeud.

namespaceURI

L'espace de nom de l'URL pour ce noeud, ou NULL s'il n'est pas spécifié.

prefix

Le préfixe de l'espace de nom de ce noeud, ou NULL s'il n'est pas spécifié.

localName

Retourne la partie locale du nom qualifié du noeud.

baseURI

La base de l'URL absolue du noeud, ou NULL si l'implémentation n'a pas réussi à obtenir l'URL absolue.

textContent

Le contenu textuel de ce noeud et de ces descendants.

Notes

Note:

L'extension DOM utilise l'encodage UTF-8. Utilisez utf8_encode() et utf8_decode() pour traiter les textes encodés en ISO-8859-1 ou Iconv pour les autres encodages.

Historique

Version | Description
5.6.1 | La propriété textContent a été rendue accessible en écriture (auparavant, elle n'était qu'en lecture seule).

Voir aussi

  • » spécification W3C

Sommaire

  • DOMNode::appendChild — Ajoute un nouveau fils à la fin des fils
  • DOMNode::C14N — Canonise des noeuds en une chaîne
  • DOMNode::C14NFile — Canonise des noeuds en fichier
  • DOMNode::cloneNode — Clone un noeud
  • DOMNode::getLineNo — Lit le numéro de ligne d'un noeud
  • DOMNode::getNodePath — Récupère un XPath pour un nœud
  • DOMNode::hasAttributes — Vérifie si le noeud possède un attribut
  • DOMNode::hasChildNodes — Vérifie si le noeud possède des enfants
  • DOMNode::insertBefore — Ajoute un nouveau fils avant le noeud référencé
  • DOMNode::isDefaultNamespace — Vérifie si l'espace de nom spécifié est l'espace de noms par défaut ou non
  • DOMNode::isSameNode — Indique si deux noeuds sont identiques
  • DOMNode::isSupported — Vérifie si la fonctionnalité est disponible pour la version spécifiée
  • DOMNode::lookupNamespaceURI — Retourne l'URI de l'espace de noms selon le préfixe
  • DOMNode::lookupPrefix — Retourne le préfixe de l'espace de noms selon l'URI de l'espace de noms
  • DOMNode::normalize — Normalise le noeud
  • DOMNode::removeChild — Supprime un fils de la liste des enfants
  • DOMNode::replaceChild — Remplace un fils


Ajoute un nouveau fils à la fin des fils

  • « DOMNode
  • DOMNode::C14N »
  • PHP Manual
  • DOMNode
  • Ajoute un nouveau fils à la fin des fils

DOMNode::appendChild

(PHP 5, PHP 7)

DOMNode::appendChild — Ajoute un nouveau fils à la fin des fils

Description

public DOMNode DOMNode::appendChild ( DOMNode $newnode )

Cette fonction ajoute un fils à une liste de fils existante ou crée une nouvelle liste de fils. Le fils peut être créé avec, e.g. DOMDocument::createElement(), DOMDocument::createTextNode(), etc. ou simplement en utilisant tout autre noeud.

Liste de paramètres

newnode

Le noeud fils à ajouter.

Valeurs de retour

Le noeud fils ajouté.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule ou si le parent précédent le noeud à insérer est en lecture seule.

DOM_HIERARCHY_REQUEST_ERR

Lancé si le noeud est d'un type qui n'autorise pas d'enfant du type du noeud newnode, ou si le noeud à ajouter est un des noeuds ancêtres ou ce noeud lui-même.

DOM_WRONG_DOCUMENT_ERR

Lancé si newnode a été créé depuis un document différent que celui qui a créé ce noeud.

Exemples

L'exemple suivant ajoutera un nouveau noeud à un document nouveau.

Exemple #1 Ajout d'un fils

<?php

$doc = new DOMDocument;

$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);

echo $doc->saveXML();
?>

Voir aussi

  • DOMNode::insertBefore() - Ajoute un nouveau fils avant le noeud référencé
  • DOMNode::removeChild() - Supprime un fils de la liste des enfants
  • DOMNode::replaceChild() - Remplace un fils


Canonise des noeuds en une chaîne

  • « DOMNode::appendChild
  • DOMNode::C14NFile »
  • PHP Manual
  • DOMNode
  • Canonise des noeuds en une chaîne

DOMNode::C14N

(PHP 5 >= 5.2.0, PHP 7)

DOMNode::C14N — Canonise des noeuds en une chaîne

Description

public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )

Canonise des noeuds en une chaîne de caractères.

Liste de paramètres

exclusive

Active l'analyse des seuls noeuds correspondant à l'Xpath ou aux préfixes d'espace de noms fournis.

with_comments

Conserve les commentaires dans la sortie.

xpath

Un tableau de xpath utilisés pour filtrer les noeuds.

ns_prefixes

Un tableau de préfixes d'espaces de noms utilisés pour filtrer les noeuds.

Valeurs de retour

Retourne les noeuds canonisés, sous la forme d'une chaîne de caractères ou FALSE si une erreur survient

Voir aussi

  • DOMNode::C14NFile() - Canonise des noeuds en fichier


Canonise des noeuds en fichier

  • « DOMNode::C14N
  • DOMNode::cloneNode »
  • PHP Manual
  • DOMNode
  • Canonise des noeuds en fichier

DOMNode::C14NFile

(PHP 5 >= 5.2.0, PHP 7)

DOMNode::C14NFile — Canonise des noeuds en fichier

Description

public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )

Canonise des noeuds en fichier.

Liste de paramètres

uri

Chemin vers lequel le fichier sera créé.

exclusive

Active l'analyse des seuls noeuds correspondant à l'xpath ou préfixes d'espace de noms fournis.

with_comments

Conserve les commentaires dans la sortie.

xpath

Un tableau d'xpath utilisés pour filtrer les noeuds.

ns_prefixes

Un tableau de préfixes d'espace de noms utilisés pour filtrer les noeuds.

Valeurs de retour

Nombre d'octets écrits ou FALSE si une erreur survient

Voir aussi

  • DOMNode::C14N() - Canonise des noeuds en une chaîne


Clone un noeud

  • « DOMNode::C14NFile
  • DOMNode::getLineNo »
  • PHP Manual
  • DOMNode
  • Clone un noeud

DOMNode::cloneNode

(PHP 5, PHP 7)

DOMNode::cloneNode — Clone un noeud

Description

public DOMNode DOMNode::cloneNode ([ bool $deep ] )

Crée une copie d'un noeud.

Liste de paramètres

deep

Indique si l'on doit copier tous les noeuds fils. Ce paramètre vaut FALSE par défaut.

Valeurs de retour

Le noeud cloné.


Lit le numéro de ligne d'un noeud

  • « DOMNode::cloneNode
  • DOMNode::getNodePath »
  • PHP Manual
  • DOMNode
  • Lit le numéro de ligne d'un noeud

DOMNode::getLineNo

(PHP 5 >= 5.3.0, PHP 7)

DOMNode::getLineNo — Lit le numéro de ligne d'un noeud

Description

public int DOMNode::getLineNo ( void )

Lit le numéro de ligne d'un noeud.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de ligne de définition du noeud.

Exemples

Exemple #1 Exemple avec DOMNode::getLineNo()

<?php
// XML de l'exemple
$xml = <<<XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
    <node />
</root>
XML;

// Création d'un objet DOMDocument
$dom = new DOMDocument;

// Chargement du XML
$dom->loadXML($xml);

// Affichage du numéro de ligne du noeud.
printf('Le noeud <node> est défini à la ligne %d', $dom->getElementsByTagName('node')->item(0)->getLineNo());
?>

L'exemple ci-dessus va afficher :

Le noeud <node> est défini à la ligne 3


Récupère un XPath pour un nœud

  • « DOMNode::getLineNo
  • DOMNode::hasAttributes »
  • PHP Manual
  • DOMNode
  • Récupère un XPath pour un nœud

DOMNode::getNodePath

(PHP 5 >= 5.2.0, PHP 7)

DOMNode::getNodePath — Récupère un XPath pour un nœud

Description

public string DOMNode::getNodePath ( void )

Récupère un chemin XPath pour le nœud.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un chaîne de caractères contenant le XPath, ou NULL si une erreur survient.

Exemples

Exemple #1 Exemple avec DOMNode::getNodePath()

<?php
// Crée une nouvelle instance DOMDocument
$dom = new DOMDocument;

// Charge le XML
$dom->loadXML('
<fruits>
 <apples>
  <apple>braeburn</apple>
  <apple>granny smith</apple>
 </apples>
 <pears>
  <pear>conference</pear>
 </pears>
</fruits>
');

// Affiche le XPath pour chaque élément
foreach ($dom->getElementsByTagName('*') as $node) {
    echo $node->getNodePath() . "\n";
}
?>

L'exemple ci-dessus va afficher :

/fruits
/fruits/apples
/fruits/apples/apple[1]
/fruits/apples/apple[2]
/fruits/pears
/fruits/pears/pear

Voir aussi

  • DOMXPath


Vérifie si le noeud possède un attribut

  • « DOMNode::getNodePath
  • DOMNode::hasChildNodes »
  • PHP Manual
  • DOMNode
  • Vérifie si le noeud possède un attribut

DOMNode::hasAttributes

(PHP 5, PHP 7)

DOMNode::hasAttributes — Vérifie si le noeud possède un attribut

Description

public bool DOMNode::hasAttributes ( void )

Cette méthode vérifie si un noeud possède des attributs. Le noeud testé doit être un XML_ELEMENT_NODE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • DOMNode::hasChildNodes() - Vérifie si le noeud possède des enfants


Vérifie si le noeud possède des enfants

  • « DOMNode::hasAttributes
  • DOMNode::insertBefore »
  • PHP Manual
  • DOMNode
  • Vérifie si le noeud possède des enfants

DOMNode::hasChildNodes

(PHP 5, PHP 7)

DOMNode::hasChildNodes — Vérifie si le noeud possède des enfants

Description

public bool DOMNode::hasChildNodes ( void )

Cette fonction vérifie si un noeud possède des enfants.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • DOMImplementation::hasFeature() - Teste si l'implémentation DOM implémente une fonctionnalité spécifique


Ajoute un nouveau fils avant le noeud référencé

  • « DOMNode::hasChildNodes
  • DOMNode::isDefaultNamespace »
  • PHP Manual
  • DOMNode
  • Ajoute un nouveau fils avant le noeud référencé

DOMNode::insertBefore

(PHP 5, PHP 7)

DOMNode::insertBefore — Ajoute un nouveau fils avant le noeud référencé

Description

public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )

Cette fonction insère un nouveau noeud juste avec le noeud de référence. Si vous comptez faire des modifications plus tard sur l'enfant ajouté, vous devez utiliser le noeud retourné.

Liste de paramètres

newnode

Le nouveau noeud.

refnode

Le noeud référencé. Si non spécifié, newnode sera ajouté au fils.

Valeurs de retour

Le noeud inséré.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule ou si le parent précédent le noeud à insérer est en lecture seule.

DOM_HIERARCHY_REQUEST_ERR

Lancé si ce noeud est d'un type qui n'autorise pas de fils du type du noeud newnode, ou si le noeud à ajouter est un des ancêtres de ce noeud ou ce noeud lui-même.

DOM_WRONG_DOCUMENT_ERR

Lancé si newnode a été créé depuis un document différent que celui qui a créé ce noeud.

DOM_NOT_FOUND

Lancé si refnode n'est pas un fils de ce noeud.

Voir aussi

  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils


Vérifie si l'espace de nom spécifié est l'espace de noms par défaut ou non

  • « DOMNode::insertBefore
  • DOMNode::isSameNode »
  • PHP Manual
  • DOMNode
  • Vérifie si l'espace de nom spécifié est l'espace de noms par défaut ou non

DOMNode::isDefaultNamespace

(PHP 5, PHP 7)

DOMNode::isDefaultNamespace — Vérifie si l'espace de nom spécifié est l'espace de noms par défaut ou non

Description

public bool DOMNode::isDefaultNamespace ( string $namespaceURI )

Vérifie si namespaceURI est l'espace de noms par défaut.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms à vérifier.

Valeurs de retour

Retourne TRUE si namespaceURI est l'espace de noms par défaut, FALSE sinon.


Indique si deux noeuds sont identiques

  • « DOMNode::isDefaultNamespace
  • DOMNode::isSupported »
  • PHP Manual
  • DOMNode
  • Indique si deux noeuds sont identiques

DOMNode::isSameNode

(PHP 5, PHP 7)

DOMNode::isSameNode — Indique si deux noeuds sont identiques

Description

public bool DOMNode::isSameNode ( DOMNode $node )

Cette fonction indique si deux noeuds sont identiques. La comparaison n'est pas basée sur le contenu.

Liste de paramètres

node

Le noeud à comparer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Vérifie si la fonctionnalité est disponible pour la version spécifiée

  • « DOMNode::isSameNode
  • DOMNode::lookupNamespaceURI »
  • PHP Manual
  • DOMNode
  • Vérifie si la fonctionnalité est disponible pour la version spécifiée

DOMNode::isSupported

(PHP 5, PHP 7)

DOMNode::isSupported — Vérifie si la fonctionnalité est disponible pour la version spécifiée

Description

public bool DOMNode::isSupported ( string $feature , string $version )

Vérifie si la fonctionnalité feature demandée est supportée par la version version spécifiée.

Liste de paramètres

feature

La fonctionnalité à tester. Voir l'exemple de DOMImplementation::hasFeature() pour une liste de fonctionnalités.

version

Le numéro de la version de la fonctionnalité feature à tester.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • DOMImplementation::hasFeature() - Teste si l'implémentation DOM implémente une fonctionnalité spécifique


Retourne l'URI de l'espace de noms selon le préfixe

  • « DOMNode::isSupported
  • DOMNode::lookupPrefix »
  • PHP Manual
  • DOMNode
  • Retourne l'URI de l'espace de noms selon le préfixe

DOMNode::lookupNamespaceURI

(PHP 5, PHP 7)

DOMNode::lookupNamespaceURI — Retourne l'URI de l'espace de noms selon le préfixe

Description

public string DOMNode::lookupNamespaceURI ( string $prefix )

Retourne l'URI de l'espace de noms selon le préfixe prefix.

Liste de paramètres

prefix

Le préfixe de l'espace de noms.

Valeurs de retour

L'URI de l'espace de noms de ce noeud.

Voir aussi

  • DOMNode::lookupPrefix() - Retourne le préfixe de l'espace de noms selon l'URI de l'espace de noms


Retourne le préfixe de l'espace de noms selon l'URI de l'espace de noms

  • « DOMNode::lookupNamespaceURI
  • DOMNode::normalize »
  • PHP Manual
  • DOMNode
  • Retourne le préfixe de l'espace de noms selon l'URI de l'espace de noms

DOMNode::lookupPrefix

(PHP 5, PHP 7)

DOMNode::lookupPrefix — Retourne le préfixe de l'espace de noms selon l'URI de l'espace de noms

Description

public string DOMNode::lookupPrefix ( string $namespaceURI )

Retourne le préfixe de l'espace du noeud selon l'URI de l'espace de noms.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

Valeurs de retour

Le préfixe de l'espace de noms.

Voir aussi

  • DOMNode::lookupNamespaceURI() - Retourne l'URI de l'espace de noms selon le préfixe


Normalise le noeud

  • « DOMNode::lookupPrefix
  • DOMNode::removeChild »
  • PHP Manual
  • DOMNode
  • Normalise le noeud

DOMNode::normalize

(PHP 5, PHP 7)

DOMNode::normalize — Normalise le noeud

Description

public void DOMNode::normalize ( void )

Supprime les noeuds de texte vides et fusionne les noeuds de texte adjacants dans ce noeud ainsi que tous ces enfants.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • » La spécification DOM
  • DOMDocument::normalizeDocument() - Normalise le document


Supprime un fils de la liste des enfants

  • « DOMNode::normalize
  • DOMNode::replaceChild »
  • PHP Manual
  • DOMNode
  • Supprime un fils de la liste des enfants

DOMNode::removeChild

(PHP 5, PHP 7)

DOMNode::removeChild — Supprime un fils de la liste des enfants

Description

public DOMNode DOMNode::removeChild ( DOMNode $oldnode )

Cette fonction supprime un fils de la liste des enfants.

Liste de paramètres

oldnode

Le fils à effacer.

Valeurs de retour

Si le fils ne peut être effacé, la fonction retourne l'ancien fils.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

DOM_NOT_FOUND

Lancé si oldnode n'est pas un fils de ce noeud.

Exemples

L'exemple suivant va effacer l'élément chapter de notre document XML.

Exemple #1 Effacement d'un fils

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$book = $doc->documentElement;

// Nous récupérons le chapitre et l'effaçons du livre
$chapter = $book->getElementsByTagName('chapter')->item(0);
$oldchapter = $book->removeChild($chapter);

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="listing">
 <title>My lists</title>

</book>

Voir aussi

  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils
  • DOMNode::replaceChild() - Remplace un fils


Remplace un fils

  • « DOMNode::removeChild
  • DOMNodeList »
  • PHP Manual
  • DOMNode
  • Remplace un fils

DOMNode::replaceChild

(PHP 5, PHP 7)

DOMNode::replaceChild — Remplace un fils

Description

public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )

Cette fonction remplace le fils oldnode par le nouveau noeud spécifié. Si newnode est déjà un fils, il ne sera pas ajouté une seconde fois. Si le remplacement réussi, l'ancien noeud sera retourné.

Liste de paramètres

newnode

Le nouveau noeud. Il doit être membre du document cible, i.e. créé par une des méthodes de DOMDocument->createXXX() ou importé dans le document par DOMDocument::importNode.

oldnode

L'ancien noeud.

Valeurs de retour

L'ancien noeud ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule ou si le parent précédent du noeud à insérer est en lecture seule.

DOM_HIERARCHY_REQUEST_ERR

Lancé si le noeud est d'un type qui n'autorise pas les fils du type du noeud newnode, ou si le noeud à insérer est un des ancêtres de ce noeud ou ce noeud lui-même.

DOM_WRONG_DOCUMENT_ERR

Émise si newnode a été créé depuis un document différent que celui qui a créé ce noeud.

DOM_NOT_FOUND

Lancé si oldnode n'est pas un fils de ce noeud.

Voir aussi

  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils
  • DOMNode::removeChild() - Supprime un fils de la liste des enfants


La classe DOMNodeList

(PHP 5, PHP 7)

Synopsis de la classe

DOMNodeList implements Traversable {
/* Propriétés */
readonly public int $length ;
/* Méthodes */
DOMNode DOMNodelist::item ( int $index )
}

Propriétés

length

Le nombre de noeuds dans la liste. L'intervalle valide des indices des noeuds fils est 0 à length - 1, inclus.

Voir aussi

  • » Les spécifications W3C de NodeList

Sommaire

  • DOMNodelist::item — Retourne un noeud spécifié par son index


Retourne un noeud spécifié par son index

  • « DOMNodeList
  • DOMNotation »
  • PHP Manual
  • DOMNodeList
  • Retourne un noeud spécifié par son index

DOMNodelist::item

(PHP 5, PHP 7)

DOMNodelist::item — Retourne un noeud spécifié par son index

Description

DOMNode DOMNodelist::item ( int $index )

Retourne un noeud spécifié par son index dans l'objet DOMNodeList.

Astuce

Si vous avez besoin de connaître le nombre de noeuds dans la collection, utilisez la propriété length de l'objet DOMNodeList.

Liste de paramètres

index

L'index du noeud dans la collection.

Valeurs de retour

Le noeud à la position index dans la DOMNodeList, ou NULL si ce n'est pas un index valide.

Exemples

Exemple #1 Parcours de toutes les entrées de la table

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$items = $doc->getElementsByTagName('entry');

for ($i = 0; $i < $items->length; $i++) {
    echo $items->item($i)->nodeValue . "\n";
}

?>

Alternativement, vous pouvez utiliser la structure foreach, qui est une manière plus convenable :

<?php

foreach ($items as $item) {
    echo $item->nodeValue . "\n";
}

?>

L'exemple ci-dessus va afficher :

Title
Author
Language
ISBN
The Grapes of Wrath
John Steinbeck
en
0140186409
The Pearl
John Steinbeck
en
014017737X
Samarcande
Amine Maalouf
fr
2253051209


La classe DOMNode

(PHP 5, PHP 7)

Synopsis de la classe

DOMNotation étend DOMNode {
/* Propriétés */
readonly public string $publicId ;
readonly public string $systemId ;
/* Méthodes héritées */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

publicId

systemId


La classe DOMProcessingInstruction

(PHP 5, PHP 7)

Synopsis de la classe

DOMProcessingInstruction étend DOMNode {
/* Propriétés */
readonly public string $target ;
public string $data ;
/* Méthodes */
public __construct ( string $name [, string $value ] )
/* Méthodes héritées */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

target

data

Sommaire

  • DOMProcessingInstruction::__construct — Crée un nouvel objet DOMProcessingInstruction


Crée un nouvel objet DOMProcessingInstruction

  • « DOMProcessingInstruction
  • DOMText »
  • PHP Manual
  • DOMProcessingInstruction
  • Crée un nouvel objet DOMProcessingInstruction

DOMProcessingInstruction::__construct

(PHP 5, PHP 7)

DOMProcessingInstruction::__construct — Crée un nouvel objet DOMProcessingInstruction

Description

public DOMProcessingInstruction::__construct ( string $name [, string $value ] )

Crée un nouvel objet DOMProcessingInstruction. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les noeuds additionnels ne peuvent pas être ajoutés à ce noeud tant qu'il est associé à un document. Pour créer un noeud accessible en écriture, utilisez DOMDocument::createProcessingInstruction.

Liste de paramètres

name

Le nom du tag de l'instruction.

value

La valeur de l'instruction.

Exemples

Exemple #1 Création d'un nouveau DOMProcessingInstruction

<?php

$dom = new DOMDocument('1.0', 'UTF-8');
$html = $dom->appendChild(new DOMElement('html'));
$body = $html->appendChild(new DOMElement('body'));
$pinode = new DOMProcessingInstruction('php', 'echo "Bonjour le monde !"; ');
$body->appendChild($pinode);
echo $dom->saveXML();

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="UTF-8"?>
<html><body><?php echo "Bonjour le monde !"; ?></body></html>

Voir aussi

  • DOMDocument::createProcessingInstruction() - Crée un nouveau noeud PI


La classe DOMText

(PHP 5, PHP 7)

Introduction

La classe DOMText hérite de DOMCharacterData et représente le contenu textuel de DOMElement ou DOMAttr.

Synopsis de la classe

DOMText étend DOMCharacterData {
/* Propriétés */
readonly public string $wholeText ;
/* Méthodes */
public __construct ([ string $value ] )
public bool isWhitespaceInElementContent ( void )
public DOMText splitText ( int $offset )
/* Méthodes héritées */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

wholeText

Contient tout le texte des noeuds de texte adjacents (c'est à dire, des noeuds qui ne sont pas séparés par des balises Element, Comment ou Processing Instruction).

Sommaire

  • DOMText::__construct — Crée un nouvel objet DOMText
  • DOMText::isWhitespaceInElementContent — Indique si ce noeud de texte contient des espaces blancs
  • DOMText::splitText — Coupe le noeud en deux noeuds à l'endroit spécifié


Crée un nouvel objet DOMText

  • « DOMText
  • DOMText::isWhitespaceInElementContent »
  • PHP Manual
  • DOMText
  • Crée un nouvel objet DOMText

DOMText::__construct

(PHP 5, PHP 7)

DOMText::__construct — Crée un nouvel objet DOMText

Description

public DOMText::__construct ([ string $value ] )

Crée un nouvel objet DOMText.

Liste de paramètres

value

La valeur du noeud texte. Si aucune n'est fournie, un noeud texte vide est créé.

Exemples

Exemple #1 Création d'un nouveau DOMText

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$text = $element->appendChild(new DOMText('root value'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root>valeur racine</root> */

?>

Voir aussi

  • DOMDocument::createTextNode() - Crée un nouveau noeud de texte


Indique si ce noeud de texte contient des espaces blancs

  • « DOMText::__construct
  • DOMText::splitText »
  • PHP Manual
  • DOMText
  • Indique si ce noeud de texte contient des espaces blancs

DOMText::isWhitespaceInElementContent

(PHP 5, PHP 7)

DOMText::isWhitespaceInElementContent — Indique si ce noeud de texte contient des espaces blancs

Description

public bool DOMText::isWhitespaceInElementContent ( void )

Indique si un noeud de texte ne contient que des espaces ou est vide. Cette détermination est faite durant le chargement du document.

Valeurs de retour

Retourne TRUE si le noeud contient zéro ou plusieurs caractères blancs et rien d'autre. Retourne FALSE sinon.


Coupe le noeud en deux noeuds à l'endroit spécifié

  • « DOMText::isWhitespaceInElementContent
  • DOMXPath »
  • PHP Manual
  • DOMText
  • Coupe le noeud en deux noeuds à l'endroit spécifié

DOMText::splitText

(PHP 5, PHP 7)

DOMText::splitText — Coupe le noeud en deux noeuds à l'endroit spécifié

Description

public DOMText DOMText::splitText ( int $offset )

Coupe le noeud en deux noeuds à l'endroit spécifié offset, en gardant les deux dans l'arbre comme parents.

Après la césure, ce noeud contiendra tout le texte jusqu'à offset. Un nouveau noeud avec le reste du texte sera retourné. Si le noeud d'origine possède un parent, le nouveau noeud est inséré à la suite du noeud courant. Lorsque offset est égal à la taille du noeud, le nouveau noeud est vide.

Liste de paramètres

offset

La position de la césure, commençant à 0.

Valeurs de retour

Le nouveau noeud du même type, qui contient tout le contenu à partir de la position offset.


La classe DOMXPath

(PHP 5, PHP 7)

Introduction

Support de XPath 1.0.

Synopsis de la classe

DOMXPath {
/* Propriétés */
public DOMDocument $document ;
/* Méthodes */
public __construct ( DOMDocument $doc )
public mixed evaluate ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] )
public DOMNodeList query ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] )
public bool registerNamespace ( string $prefix , string $namespaceURI )
public void registerPhpFunctions ([ mixed $restrict ] )
}

Propriétés

document

Sommaire

  • DOMXPath::__construct — Crée un nouvel objet DOMXPath
  • DOMXPath::evaluate — Évalue une expression XPath donnée et retourne un résultat typé si possible
  • DOMXPath::query — Évalue l'expression XPath donnée
  • DOMXPath::registerNamespace — Enregistre l'espace de noms avec l'objet DOMXPath
  • DOMXPath::registerPhpFunctions — Enregistre une fonction PHP comme fonction XPath


Crée un nouvel objet DOMXPath

  • « DOMXPath
  • DOMXPath::evaluate »
  • PHP Manual
  • DOMXPath
  • Crée un nouvel objet DOMXPath

DOMXPath::__construct

(PHP 5, PHP 7)

DOMXPath::__construct — Crée un nouvel objet DOMXPath

Description

public DOMXPath::__construct ( DOMDocument $doc )

Crée un nouvel objet DOMXPath.

Liste de paramètres

doc

L'objet DOMDocument associé à l'objet DOMXPath.


Évalue une expression XPath donnée et retourne un résultat typé si possible

  • « DOMXPath::__construct
  • DOMXPath::query »
  • PHP Manual
  • DOMXPath
  • Évalue une expression XPath donnée et retourne un résultat typé si possible

DOMXPath::evaluate

(PHP 5 >= 5.1.0, PHP 7)

DOMXPath::evaluate — Évalue une expression XPath donnée et retourne un résultat typé si possible

Description

public mixed DOMXPath::evaluate ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] )

Exécute l'expression XPath expression et retourne un résultat typé si possible.

Liste de paramètres

expression

L'expression XPath à exécuter.

contextnode

Le paramètre optionnel contextnode peut être spécifié pour effectuer des requêtes XPath relatives. Par défaut, les requêtes sont relatives à l'élément root.

registerNodeNS

Le paramètre optionnel registerNodeNS peut être renseigné pour désactiver l'enregistrement automatique du noeud de contexte.

Valeurs de retour

Retourne un résultat typé si possible ou un DOMNodeList contenant tous les noeuds correspondant à l'expression XPath expression.

Si le paramètre expression est mal formé ou bien si le paramètre contextnode est invalide, la méthode DOMXPath::evaluate() retournera FALSE.

Historique

Version | Description
5.3.3 | Ajout du paramètre registerNodeNS.

Exemples

Exemple #1 Récupération du nombre total de livres anglais

<?php

$doc = new DOMDocument;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// notre requête est relative au noeud tbody
$query = 'count(row/entry[. = "en"])';

$entries = $xpath->evaluate($query, $tbody);
echo "Il y a $entries livres anglais\n";

?>

L'exemple ci-dessus va afficher :

Il y a 2 livres anglais

Voir aussi

  • DOMXPath::query() - Évalue l'expression XPath donnée


Évalue l'expression XPath donnée

  • « DOMXPath::evaluate
  • DOMXPath::registerNamespace »
  • PHP Manual
  • DOMXPath
  • Évalue l'expression XPath donnée

DOMXPath::query

(PHP 5, PHP 7)

DOMXPath::query — Évalue l'expression XPath donnée

Description

public DOMNodeList DOMXPath::query ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] )

Évalue l'expression expression XPath donnée.

Liste de paramètres

expression

L'expression XPath à exécuter.

contextnode

Le paramètre optionnel contextnode peut être spécifié pour effectuer des requêtes XPath relative. Par défaut, les requêtes sont relatives à l'élément racine.

registerNodeNS

Le paramètre optionnel registerNodeNS peut être renseigné pour désactiver l'enregistrement automatique du noeud de contexte.

Valeurs de retour

Retourne un DOMNodeList contenant tous les noeuds correspondant à l'expression expression XPath donnée. Toutes les expressions qui ne retournent pas de noeud retourneront un DOMNodeList vide.

Si le paramètre expression est malformé ou le paramètre contextnode est invalide, DOMXPath::query() retournera FALSE.

Historique

Version | Description
5.3.3 | Ajout du paramètre registerNodeNS.

Exemples

Exemple #1 Récupération de tous les livres anglais

<?php

$doc = new DOMDocument;

// Nous ne voulons pas nous soucier des espaces blancs
$doc->preserveWhiteSpace = false;

$doc->Load('book.xml');

$xpath = new DOMXPath($doc);

// Nous commençons à l'élément racine
$query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]';

$entries = $xpath->query($query);

foreach ($entries as $entry) {
    echo "Livre trouvé {$entry->previousSibling->previousSibling->nodeValue}," .
         " par {$entry->previousSibling->nodeValue}\n";
}
?>

L'exemple ci-dessus va afficher :

Livre trouvé : The Grapes of Wrath, par John Steinbeck
Livre trouvé : The Pearl, par John Steinbeck

Nous pouvons également utiliser le paramètre contextnode pour raccourcir notre expression :

<?php

$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// notre requête est relative au noeud tbody
$query = 'row/entry[. = "en"]';

$entries = $xpath->query($query, $tbody);

foreach ($entries as $entry) {
    echo "Livre trouvé : {$entry->previousSibling->previousSibling->nodeValue}," .
         " par {$entry->previousSibling->nodeValue}\n";
}
?>

Voir aussi

  • DOMXPath::query()


Enregistre l'espace de noms avec l'objet DOMXPath

  • « DOMXPath::query
  • DOMXPath::registerPhpFunctions »
  • PHP Manual
  • DOMXPath
  • Enregistre l'espace de noms avec l'objet DOMXPath

DOMXPath::registerNamespace

(PHP 5, PHP 7)

DOMXPath::registerNamespace — Enregistre l'espace de noms avec l'objet DOMXPath

Description

public bool DOMXPath::registerNamespace ( string $prefix , string $namespaceURI )

Enregistre l'espace de noms namespaceURI et le prefix avec l'objet DOMXPath.

Liste de paramètres

prefix

Le préfixe.

namespaceURI

L'URI de l'espace de noms.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Enregistre une fonction PHP comme fonction XPath

  • « DOMXPath::registerNamespace
  • DOM Fonctions »
  • PHP Manual
  • DOMXPath
  • Enregistre une fonction PHP comme fonction XPath

DOMXPath::registerPhpFunctions

(PHP 5 >= 5.3.0, PHP 7)

DOMXPath::registerPhpFunctions — Enregistre une fonction PHP comme fonction XPath

Description

public void DOMXPath::registerPhpFunctions ([ mixed $restrict ] )

Cette méthode active la possibilité d'utiliser des fonctions PHP dans des expressions XPath.

Liste de paramètres

restrict

Utilisez ce paramètre uniquement pour autoriser certaines fonctions à être appelées depuis XPath.

Ce paramètre peut être soit une chaîne de caractères (un nom de fonction) ou un tableau de noms de fonctions.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Les exemples suivants utilisent le fichier book.xml qui contient les données suivantes :

Exemple #1 book.xml

<?xml version="1.0" encoding="UTF-8"?>
<books>
 <book>
  <title>PHP Basics</title>
  <author>Jim Smith</author>
  <author>Jane Smith</author>
 </book>
 <book>
  <title>PHP Secrets</title>
  <author>Jenny Smythe</author>
 </book>
 <book>
  <title>XML basics</title>
  <author>Joe Black</author>
 </book>
</books>

Exemple #2 Exemple avec DOMXPath::registerPHPFunctions() et php:functionString

<?php
$doc = new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Enregistre l'espace de noms php (nécessaire)
$xpath->registerNamespace("php", "http://php.net/xpath");

// Enregistre les fonctions PHP (Aucune restriction)
$xpath->registerPHPFunctions();

// Appèle la fonction substr sur le titre du livre
$nodes = $xpath->query('//book[php:functionString("substr", title, 0, 3) = "PHP"]');

echo "{$nodes->length} livres trouvés dont le titre commence par 'PHP':\n";
foreach ($nodes as $node) {
    $title  = $node->getElementsByTagName("title")->item(0)->nodeValue;
    $author = $node->getElementsByTagName("author")->item(0)->nodeValue;
    echo "$title par $author\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

2 livres trouvés dont le titre commence par 'PHP':
PHP Basics par Jim Smith
PHP Secrets par Jenny Smythe

Exemple #3 Exemple avec DOMXPath::registerPHPFunctions() et php:function

<?php
$doc = new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Enregistre l'espace de noms php (nécessaire)
$xpath->registerNamespace("php", "http://php.net/xpath");

// Enregistre des fonctions PHP (has_multiple uniquement)
$xpath->registerPHPFunctions("has_multiple");

function has_multiple($nodes) {
    // Retourne true s'il y a plus d'un auteur
    return count($nodes) > 1;
}
// Filtre les livres dont les auteurs sont multiples
$books = $xpath->query('//book[php:function("has_multiple", author)]');

echo "Livres avec plusieurs auteurs :\n";
foreach ($books as $book) {
    echo $book->getElementsByTagName("title")->item(0)->nodeValue . "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Livres avec plusieurs auteurs :
PHP Basics

Voir aussi

  • DOMXPath::registerNamespace() - Enregistre l'espace de noms avec l'objet DOMXPath
  • DOMXPath::query() - Évalue l'expression XPath donnée
  • DOMXPath::evaluate() - Évalue une expression XPath donnée et retourne un résultat typé si possible


DOM Fonctions

Sommaire

  • dom_import_simplexml — Transforme un objet SimpleXMLElement en un objet DOMElement


Transforme un objet SimpleXMLElement en un objet DOMElement

  • « DOM Fonctions
  • libxml »
  • PHP Manual
  • DOM Fonctions
  • Transforme un objet SimpleXMLElement en un objet DOMElement

dom_import_simplexml

(PHP 5, PHP 7)

dom_import_simplexml — Transforme un objet SimpleXMLElement en un objet DOMElement

Description

DOMElement dom_import_simplexml ( SimpleXMLElement $node )

dom_import_simplexml() transforme l'objet SimpleXML node en un objet DOMElement. Le nouvel objet peut être utilisé en tant que noeud natif DOMElement.

Liste de paramètres

node

Le noeud SimpleXMLElement.

Valeurs de retour

Le noeud DOMElement à ajouter ou FALSE si une erreur survient.

Exemples

Exemple #1 Importation d'un objet SimpleXML dans DOM avec dom_import_simplexml()

<?php

$sxe = simplexml_load_string('<books><book><title>blah</title></book></books>');

if ($sxe === false) {
    echo 'Erreur lors de l\'analyse du document';
    exit;
}

$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
    echo 'Erreur lors de la conversion du XML';
    exit;
}

$dom = new DOMDocument('1.0');
$dom_sxe = $dom->importNode($dom_sxe, true);
$dom_sxe = $dom->appendChild($dom_sxe);

echo $dom->saveXML();

?>

Voir aussi

  • simplexml_import_dom() - Construit un objet SimpleXMLElement à partir d'un objet DOM


libxml

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • libXMLError — La classe libXMLError
  • Fonctions libxml
    • libxml_clear_errors — Vide le buffer d'erreur libxml
    • libxml_disable_entity_loader — Désactive le chargement des entités externes
    • libxml_get_errors — Lit le tableau d'erreurs
    • libxml_get_last_error — Lit la dernière erreur libxml
    • libxml_set_external_entity_loader — Change le chargeur d'entités externes par défaut
    • libxml_set_streams_context — Configure le contexte de flux pour la prochaine opération libxml
    • libxml_use_internal_errors — Désactive le rapport d'erreur libxml et les stocke pour lecture ultérieure


Introduction

Ces fonctions et constantes sont disponibles depuis PHP 5.1.0 et si vous avez compilé PHP avec les extensions basées sur libxml, c'est à dire DOM, libxml, SimpleXML, SOAP, WDDX, XSL, XML, XMLReader, XMLRPC et XMLWriter.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Cette extension requiert » libxml >= 2.6.0.


Installation

L'extension libxml est activé par défaut, et il peut être désactivé avec l'option --disable-libxml .

La directive optionnelle --with-libxml-dir est utilisée pour spécifier le dossier où libxml se trouve sur le système sur lequel PHP est compilé. À défaut de l'utilisation de cette option, les dossiers par défaut seront analysés. Le processus configure vérifie les dossiers où se trouve libxml (spécifiquement, xml2-config), dans cet ordre :

  1. Le dossier ([DIR]) spécifié avec l'option --with-libxml-dir ([DIR]=/bin/xml2-config)

  2. /usr/local/bin/xml2-config

  3. /usr/bin/xml2-config

Si le processus configure ne peut trouver le fichier xml2-config dans le dossier spécifié par l'option --with-libxml-dir , alors, il continuera et analysera les dossiers par défaut.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

LIBXML_COMPACT (entier)
Active l'optimisation de l'allocation de petits noeuds. Ceci pourrait augmenter la rapidité de votre application sans avoir besoin de changer votre code.

Note:

Seulement disponible dans Libxml >= 2.6.21

LIBXML_DTDATTR (entier)
Attribut de DTD par défaut
LIBXML_DTDLOAD (entier)
Charge le sous-ensemble externe
LIBXML_DTDVALID (entier)
Valide avec la DTD
LIBXML_HTML_NOIMPLIED (integer)
Défini le drapeau HTML_PARSE_NOIMPLIED, qui désactive l'ajout automatique des éléments html/body...

Note:

Uniquement disponible en Libxml >= 2.7.7 (depuis PHP >= 5.4.0)

LIBXML_HTML_NODEFDTD (integer)
Défini le drapeau HTML_PARSE_NODEFDTD, qui empèche l'ajout automatique d'un doctype si aucun n'est trouvé.

Note:

Only available in Libxml >= 2.7.8 (as of PHP >= 5.4.0)

LIBXML_NOBLANKS (entier)
Suppression des noeuds vides
LIBXML_NOCDATA (entier)
Fusion des CDATA en noeuds de texte
LIBXML_NOEMPTYTAG (entier)
Agrandi les balises vides (par exemple, <br/> en <br></br>)

Note:

Cette option est actuellement disponible uniquement avec les fonctions DOMDocument::save et DOMDocument::saveXML.

LIBXML_NOENT (entier)
Substitution des entités
LIBXML_NOERROR (entier)
Suppression du rapport d'erreur
LIBXML_NONET (entier)
Désactivation du réseau lors du chargement de document
LIBXML_NOWARNING (entier)
Suppression des rapports d'alerte
LIBXML_NOXMLDECL (entier)
Annule la déclaration XML lors de la sauvegarde du document

Note:

Seulement disponible dans Libxml >= 2.6.21

LIBXML_NSCLEAN (entier)
Suppression des espaces de noms redondants
LIBXML_PARSEHUGE (entier)
Affecte le drapeau XML_PARSE_HUGE. Désactive toute limite du parseur codée en dur. Ceci affecte les limites comme la profondeur maximale d'un document ou l'entité récursion, mais aussi les limites de la taille du texte des noeuds.

Note:

Seulement disponible depuis Libxml >= 2.7.0 (depuis PHP >= 5.3.2 et PHP >= 5.2.12)

LIBXML_PEDANTIC (integer)
Défini le drapeau XML_PARSE_PEDANTIC, qui active le rapport d'erreur pedantic.

Note:

Available as of PHP >= 5.4.0

LIBXML_XINCLUDE (entier)
Implémentation de la substitution XInclude
LIBXML_ERR_ERROR (entier)
Erreur non-fatale
LIBXML_ERR_FATAL (entier)
Erreur fatale
LIBXML_ERR_NONE (entier)
Aucune erreur
LIBXML_ERR_WARNING (entier)
Une alerte simple
LIBXML_VERSION (entier)
libxml version sous la forme 20605 ou 20617
LIBXML_DOTTED_VERSION (chaîne de caractères)
libxml version sous la forme 2.6.5 ou 2.6.17
LIBXML_SCHEMA_CREATE (integer)
Crée la valeur par défaut/fixée du noeud durant la validation du schéma XSD

Note:

Uniquement disponible en Libxml >= 2.6.14 (à partir de PHP >= 5.5.2)


La classe libXMLError

(PHP 5 >= 5.1.0, PHP 7)

Introduction

Contient diverses informations sur les erreurs émises par la bibliothèque libxml. Les codes erreurs sont décrits dans la » documentation officielle de l'API xmlError.

Synopsis de la classe

libXMLError {
/* Propriétés */
public int $level ;
public int $code ;
public int $column ;
public string $message ;
public string $file ;
public int $line ;
}

Propriétés

level

la sévérité de l'erreur (une des constantes suivantes : LIBXML_ERR_WARNING, LIBXML_ERR_ERROR ou LIBXML_ERR_FATAL)

code

Le code de l'erreur.

column

La colonne dans laquelle l'erreur est survenue.

Note:

Cette propriété n'est pas totalement implémentée par la bibliothèque libxml ; aussi, 0 est souvent retourné.

message

Le message d'erreur, s'il y en a.

file

Le nom du fichier, ou vide si le XML a été chargé depuis une chaîne.

line

La ligne depuis laquelle l'erreur est survenue.


Fonctions libxml

Sommaire

  • libxml_clear_errors — Vide le buffer d'erreur libxml
  • libxml_disable_entity_loader — Désactive le chargement des entités externes
  • libxml_get_errors — Lit le tableau d'erreurs
  • libxml_get_last_error — Lit la dernière erreur libxml
  • libxml_set_external_entity_loader — Change le chargeur d'entités externes par défaut
  • libxml_set_streams_context — Configure le contexte de flux pour la prochaine opération libxml
  • libxml_use_internal_errors — Désactive le rapport d'erreur libxml et les stocke pour lecture ultérieure


Vide le buffer d'erreur libxml

  • « Fonctions libxml
  • libxml_disable_entity_loader »
  • PHP Manual
  • Fonctions libxml
  • Vide le buffer d'erreur libxml

libxml_clear_errors

(PHP 5 >= 5.1.0, PHP 7)

libxml_clear_errors — Vide le buffer d'erreur libxml

Description

void libxml_clear_errors ( void )

libxml_clear_errors() vide le buffer d'erreur libxml.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • libxml_get_errors() - Lit le tableau d'erreurs
  • libxml_get_last_error() - Lit la dernière erreur libxml


Désactive le chargement des entités externes

  • « libxml_clear_errors
  • libxml_get_errors »
  • PHP Manual
  • Fonctions libxml
  • Désactive le chargement des entités externes

libxml_disable_entity_loader

(PHP 5 >= 5.2.11, PHP 7)

libxml_disable_entity_loader — Désactive le chargement des entités externes

Description

bool libxml_disable_entity_loader ([ bool $disable = true ] )

Active ou désactive le chargement des entités externes.

Liste de paramètres

disable

Désactive (TRUE) ou active (FALSE) le chargement des entités externes par les extensions libxml (telles que DOM, XMLWriter et XMLReader).

Valeurs de retour

Retourne la configuration précédente.

Voir aussi

  • libxml_use_internal_errors() - Désactive le rapport d'erreur libxml et les stocke pour lecture ultérieure
  • La constante LIBXML_NONET


Lit le tableau d'erreurs

  • « libxml_disable_entity_loader
  • libxml_get_last_error »
  • PHP Manual
  • Fonctions libxml
  • Lit le tableau d'erreurs

libxml_get_errors

(PHP 5 >= 5.1.0, PHP 7)

libxml_get_errors — Lit le tableau d'erreurs

Description

array libxml_get_errors ( void )

Retourne un tableau d'erreurs.

Valeurs de retour

libxml_get_errors() retourne un tableau avec les objets LibXMLError qui représentent les erreurs, ou bien un tableau vide s'il n'y a pas d'erreurs.

Exemples

Exemple #1 Exemple avec libxml_get_errors()

Cet exemple montre comment créer un gestionnaire d'erreurs libxml simple.

<?php

libxml_use_internal_errors(true);

$xmlstr = <<< XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <titles>PHP: Behind the Parser</title>
 </movie>
</movies>
XML;

$doc = simplexml_load_string($xmlstr);
$xml = explode("\n", $xmlstr);

if (!$doc) {
    $errors = libxml_get_errors();

    foreach ($errors as $error) {
        echo display_xml_error($error, $xml);
    }

    libxml_clear_errors();
}

function display_xml_error($error, $xml)
{
    $return  = $xml[$error->line - 1] . "\n";
    $return .= str_repeat('-', $error->column) . "^\n";

    switch ($error->level) {
        case LIBXML_ERR_WARNING:
            $return .= "Warning $error->code: ";
            break;
         case LIBXML_ERR_ERROR:
            $return .= "Error $error->code: ";
            break;
        case LIBXML_ERR_FATAL:
            $return .= "Fatal Error $error->code: ";
            break;
    }

    $return .= trim($error->message) .
               "\n  Line: $error->line" .
               "\n  Column: $error->column";

    if ($error->file) {
        $return .= "\n  File: $error->file";
    }

    return "$return\n\n--------------------------------------------\n\n";
}

?>

L'exemple ci-dessus va afficher :

  <titles>PHP: Behind the Parser</title>
----------------------------------------------^
Fatal Error 76: Opening and ending tag mismatch: titles line 4 and title
  Line: 4
  Column: 46

--------------------------------------------

Voir aussi

  • libxml_get_last_error() - Lit la dernière erreur libxml
  • libxml_clear_errors() - Vide le buffer d'erreur libxml


Lit la dernière erreur libxml

  • « libxml_get_errors
  • libxml_set_external_entity_loader »
  • PHP Manual
  • Fonctions libxml
  • Lit la dernière erreur libxml

libxml_get_last_error

(PHP 5 >= 5.1.0, PHP 7)

libxml_get_last_error — Lit la dernière erreur libxml

Description

LibXMLError libxml_get_last_error ( void )

libxml_get_last_error() lit la dernière erreur libxml.

Valeurs de retour

libxml_get_last_error() retourne un objet LibXMLError s'il y a une erreur, et FALSE sinon.

Voir aussi

  • libxml_get_errors() - Lit le tableau d'erreurs
  • libxml_clear_errors() - Vide le buffer d'erreur libxml


Change le chargeur d'entités externes par défaut

  • « libxml_get_last_error
  • libxml_set_streams_context »
  • PHP Manual
  • Fonctions libxml
  • Change le chargeur d'entités externes par défaut

libxml_set_external_entity_loader

(PHP 5 >= 5.4.0, PHP 7)

libxml_set_external_entity_loader — Change le chargeur d'entités externes par défaut

Description

void libxml_set_external_entity_loader ( callable $resolver_function )

Change le chargeur d'entités externes par défaut.

Liste de paramètres

resolver_function

Une callable qui accepte trois arguments. Deux chaines, l'id public et l'id système, et un contexte (un tableau avec quatre clés) comme troisième argument. Cette callback doit retourner une ressource, une chaine servant à ouvrir une ressource ou NULL.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec libxml_set_external_entity_loader()

<?php
$xml = <<<XML
<!DOCTYPE foo PUBLIC "-//FOO/BAR" "http://example.com/foobar">
<foo>bar</foo>
XML;

$dtd = <<<DTD
<!ELEMENT foo (#PCDATA)>
DTD;

libxml_set_external_entity_loader(
    function ($public, $system, $context) use($dtd) {
        var_dump($public);
        var_dump($system);
        var_dump($context);
        $f = fopen("php://temp", "r+");
        fwrite($f, $dtd);
        rewind($f);
        return $f;
    }
);

$dd = new DOMDocument;
$r  = $dd->loadXML($xml);

var_dump($dd->validate());
?>

L'exemple ci-dessus va afficher :

string(10) "-//FOO/BAR"
string(25) "http://example.com/foobar"
array(4) {
    ["directory"]    => NULL
    ["intSubName"]   => NULL
    ["extSubURI"]    => NULL
    ["extSubSystem"] => NULL
}
bool(true)

Voir aussi

  • libxml_disable_entity_loader() - Désactive le chargement des entités externes


Configure le contexte de flux pour la prochaine opération libxml

  • « libxml_set_external_entity_loader
  • libxml_use_internal_errors »
  • PHP Manual
  • Fonctions libxml
  • Configure le contexte de flux pour la prochaine opération libxml

libxml_set_streams_context

(PHP 5, PHP 7)

libxml_set_streams_context — Configure le contexte de flux pour la prochaine opération libxml

Description

void libxml_set_streams_context ( resource $streams_context )

libxml_set_streams_context() configure le contexte de flux pour la prochaine opération libxml.

Liste de paramètres

streams_context

La ressource de contexte de flux, créé avec la fonction stream_context_create().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec libxml_set_streams_context()

<?php

$opts = array(
    'http' => array(
        'user_agent' => 'PHP libxml agent',
    )
);

$context = stream_context_create($opts);
libxml_set_streams_context($context);

// lit un fichier via HTTP
$doc = DOMDocument::load('http://www.example.com/file.xml');

?>

Voir aussi

  • stream_context_create() - Crée un contexte de flux


Désactive le rapport d'erreur libxml et les stocke pour lecture ultérieure

  • « libxml_set_streams_context
  • SDO »
  • PHP Manual
  • Fonctions libxml
  • Désactive le rapport d'erreur libxml et les stocke pour lecture ultérieure

libxml_use_internal_errors

(PHP 5 >= 5.1.0, PHP 7)

libxml_use_internal_errors — Désactive le rapport d'erreur libxml et les stocke pour lecture ultérieure

Description

bool libxml_use_internal_errors ([ bool $use_errors = false ] )

libxml_use_internal_errors() vous permet de désactiver le gestionnaire d'erreurs libxml standard, et d'activer votre propre gestionnaire d'erreur.

Liste de paramètres

use_errors

Active (TRUE) le gestionnaire d'erreurs utilisateur ou le désactive (FALSE). La désactivation effacera aussi toutes les erreurs libxml existantes.

Valeurs de retour

libxml_use_internal_errors() retourne la valeur précédemment configurée pour use_errors.

Exemples

Exemple #1 Exemple avec libxml_use_internal_errors()

Cet exemple montre l'utilisation de base des erreurs libxml, et la valeur retournée par cette fonction.

<?php

// active la gestion d'erreur personnalisée
var_dump(libxml_use_internal_errors(true));

// Chargement du document
$doc = new DOMDocument;

if (!$doc->load('file.xml')) {
    foreach (libxml_get_errors() as $error) {
        // gérer les erreurs ici
    }

    libxml_clear_errors();
}

?>

L'exemple ci-dessus va afficher :

bool(false)

Voir aussi

  • libxml_clear_errors() - Vide le buffer d'erreur libxml
  • libxml_get_errors() - Lit le tableau d'erreurs


SDO

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Limitations
  • Exemples
    • Utilisation simple
    • Fixe et Récupère les Valeurs des Propriétés
    • Travailler avec des Objets de Données en Séquence
    • Réflexion sur des Objets de Service de Données
  • Fonctions SDO
    • SDO_DAS_ChangeSummary::beginLogging — Commence la journalisation
    • SDO_DAS_ChangeSummary::endLogging — Termine la journalisation
    • SDO_DAS_ChangeSummary::getChangeType — Récupère le type de changement qui a été fait à l'objet de données
    • SDO_DAS_ChangeSummary::getChangedDataObjects — Récupère une liste de d'objets de données qui ont été changés
    • SDO_DAS_ChangeSummary::getOldContainer — Récupère un ancien conteneur d'objet de données pour un objet de données supprimé
    • SDO_DAS_ChangeSummary::getOldValues — Récupère une liste des anciennes valeurs pour un objet de données
    • SDO_DAS_ChangeSummary::isLogging — Vérifie pour voir si la journalisation des changements est activée
    • SDO_DAS_DataFactory::addPropertyToType — Ajoute une nouvelle propriété à une définition de type
    • SDO_DAS_DataFactory::addType — Ajoute un nouveau type à un modèle
    • SDO_DAS_DataFactory::getDataFactory — Récupère l'instance de classe de données
    • SDO_DAS_DataObject::getChangeSummary — Récupère le résumé de changement pour un objet de données
    • SDO_DAS_Setting::getListIndex — Récupère la liste des index pour une propriété de valeurs multiples changée
    • SDO_DAS_Setting::getPropertyIndex — Récupère l'index de propriété pour la propriété changée
    • SDO_DAS_Setting::getPropertyName — Récupère le nom de la propriété pour la propriété changée
    • SDO_DAS_Setting::getValue — Récupère l'ancienne valeur pour la propriété changée
    • SDO_DAS_Setting::isSet — Vérifie pour voir si la propriété était fixée avant d'être modifiée
    • SDO_DataFactory::create — Crée un SDO_DataObject
    • SDO_DataObject::clear — Détruit les propriétés d'un SDO_DataObject
    • SDO_DataObject::createDataObject — Crée un enfant SDO_DataObject
    • SDO_DataObject::getContainer — Récupère un conteneur de l'objet de données
    • SDO_DataObject::getSequence — Récupère la séquence pour un objet de données
    • SDO_DataObject::getTypeName — Retourne le nom du type d'un objet de données
    • SDO_DataObject::getTypeNamespaceURI — Retourne l'espace de nom URI du type d'un objet de données
    • SDO_Exception::getCause — Récupère la cause d'une exception
    • SDO_List::insert — Insère dans une liste
    • SDO_Model_Property::getContainingType — Récupère le SDO_Model_Type qui contient cette propriété
    • SDO_Model_Property::getDefault — Récupère la valeur par défaut pour la propriété
    • SDO_Model_Property::getName — Récupère le nom de SDO_Model_Property
    • SDO_Model_Property::getType — Récupère le SDO_Model_Type de la propriété
    • SDO_Model_Property::isContainment — Vérifie pour voir si la propriété définit une relation contenue
    • SDO_Model_Property::isMany — Vérifie pour voir si la propriété est de valeurs multiples
    • SDO_Model_ReflectionDataObject::__construct — Construit un SDO_Model_ReflectionDataObject
    • SDO_Model_ReflectionDataObject::export — Récupère une chaîne de caractères décrivant le SDO_DataObject
    • SDO_Model_ReflectionDataObject::getContainmentProperty — Récupère la propriété qui définit la relation contenue de l'objet de données
    • SDO_Model_ReflectionDataObject::getInstanceProperties — Récupère les propriétés de l'instance de SDO_DataObject
    • SDO_Model_ReflectionDataObject::getType — Récupère le SDO_Model_Type pour SDO_DataObject
    • SDO_Model_Type::getBaseType — Récupère le type de base pour le type
    • SDO_Model_Type::getName — Récupère le nom du type
    • SDO_Model_Type::getNamespaceURI — Récupère l'espace de nom URI pour le type
    • SDO_Model_Type::getProperties — Récupère les objets SDO_Model_Property définis pour le type
    • SDO_Model_Type::getProperty — Récupère un SDO_Model_Property du type
    • SDO_Model_Type::isAbstractType — Vérifie pour voir si ce SDO_Model_Type est un objet de type abstrait
    • SDO_Model_Type::isDataType — Vérifie pour voir si le SDO_Model_Type est un type de données primitive
    • SDO_Model_Type::isInstance — Vérifie si un SDO_DataObject est une instance de ce SDO_Model_Type
    • SDO_Model_Type::isOpenType — Vérifie pour voir si le type est un type ouvert
    • SDO_Model_Type::isSequencedType — Vérifie pour voir si le type est une séquence
    • SDO_Sequence::getProperty — Retourne la propriété pour l'index de séquence spécifié
    • SDO_Sequence::insert — Ajoute dans une séquence
    • SDO_Sequence::move — Déplace un item à une autre position de la séquence


Introduction

Les Objets de Service de Données (Service Data Objects (SDOs)) permet aux applications PHP de travailler avec des données provenant de différentes sources (comme une requête de base de données, un fichier XML et une feuille de tableau) en utilisant une simple interface.

Chaque différente sorte de source de données requiert un Service d'Accès de Données (Data Access Service (DAS)) pour fournir un accès aux données dans la source de données. Dans votre application PHP, vous utilisez un DAS pour créer une instance SDO qui représente des données dans la source de données. Vous pouvez alors fixer et récupérer des valeurs dans l'instance SDO en utilisant l'interface SDO standard. Finalement, vous pouvez utiliser un DAS pour écrire les données modifiées à une source de données (normalement la même).

Voyez la liste des Services d'Accès de Données pour des détails sur ceux actuellement disponibles. En plus des DASs fournis, SDO fournit aussi des interfaces pour permettre les autres à être implémentés (voyez la section sur Interface SDO Service d'Accès de Données pour plus de détails).

Cette extension est dérivée des concepts pris des » Spécification d'Objets de Service de Données. Elle inclut une version de » Apache Tuscany SDO pour le projet C++.

La Structure d'un Objet de Service de Données

Une instance d'Objet de Service de Données est fait d'un arbre d'objets de données. L'arbre est défini par des relations contenues entre les objets de données. Par exemple, une objet de données Compagnie peut consister en un nombre d'objets de données Département et donc la Compagnie devrait avoir une relation contenue avec les Départements.

Un SDO peut aussi avoir des références non contenues entre les objets de données dans l'arbre. Par exemple, un objet de données Employé peut faire référence à un autre Employé pour identifier son mentor.

Les données peuvent se référencer entre eux, mais peuvent aussi avoir des propriétés primitives. Par exemple, l'objet de données Compagnie pourrait avoir une propriété appelée "nom" de type chaîne de caractères pour contenir le nom de la compagnie (par exemple, "Acme").

Chacune de ces propriétés de l'objet de données - références contenues, références non-contenues ou propriétés primitives - peut avoir plusieurs valeurs ou une seule. Dans l'exemple ci-dessous, "Departements" a plusieurs valeurs alors que le nom de la compagnie n'en a qu'une.

En PHP, chaque objet de données SDO est représenté en tant qu'objet PHP. Les propriétés de l'objet de données peuvent être accédées en utilisant soit la syntaxe orientée objet, soit la syntaxe de tableaux associatifs. Nous verrons quelques exemples de cela plus tard dans la documentation.


Pré-requis

L'extension SDO requiert PHP 5.1.0 ou supérieur. Elle nécessite également la bibliothèque libxml2. Normalement, libxml2 devrait être déjà installée mais si ce n'est pas le cas, vous pouvez la télécharger depuis » http://www.xmlsoft.org/.


Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/sca_sdo.

Note:

Les versions précédentes de l'extension SDO nécessite une bibliothèque partagée séparée XML DAS. Ceci est désormais obsolète et toutes les références au fichier php_sdo_das_xml.dll ou au fichier sdo_das_xml.so doivent être supprimées de votre php.ini.

Systèmes Unix

  1. Les trois composants SDO - le corps SDO, le XML DAS et le relationnel DAS - font partis, avec le Service Component Architecture (SCA), d'un seul projet PECL, SCA_SDO ; vous pouvez donc télécharger SCA ainsi que les trois parties de SDO avec la commande :

    pecl install SCA_SDO

    Cette commande va construire la bibliothèque partagée SDO mais va aussi installer les fichiers PHP permettant le relationnel SCA et DAS.

    Si vous voulez installer la dernière version bêta, exécutez plutôt la commande :

    pecl install SCA_SDO-beta

  2. La commande pecl installe automatiquement le module SDO dans votre dossier d'extensions PHP. Pour activer les extensions SDO, vous devez ajouter les lignes suivantes à votre php.ini :

    extension=sdo.so

    Pour plus d'informations sur la constructions de paquets PECL, consultez la section de la documentation sur l'installation PECL.

Construire SDO sur Linux

Cette section décrit comment construire le noyau SDO et le XML DAS sur Linux. Vous devriez avoir besoin seulement de savoir comment faire cela seulement si vous souhaitez construire une version récente que vous auriez téléchargée de SVN.

  1. Changez le dossier principal d'extension : cd < où se trouve le code sdo >

  2. Exécutez phpize, qui fixera l'environnement pour compiler le SDO.

  3. Ensuite, exécutez ./configure; make; make install. Veuillez noter, vous devriez avoir besoin de vous identifier en tant que root pour installer cette extension.

  4. Vérifiez que ces modules sont chargés par PHP, en ajoutant extension=sdo.so dans votre fichier php.ini.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SDO_DAS_ChangeSummary::NONE=0 (entier)
Représente un changement de type 'none' (aucun).
SDO_DAS_ChangeSummary::MODIFICATION=1 (entier)
Représente un changement de type 'modification'.
SDO_DAS_ChangeSummary::ADDITION=2 (entier)
Représente un changement de type 'addition'.
SDO_DAS_ChangeSummary::DELETION=3 (entier)
Représente un changement de type "deletion" (suppression).


Limitations

Limitations d'Implémentation

La liste suivante contient les limitations dans l'implémentation courante de SDO :

  1. Il n'y a pas de support pour les jeux de caractères multioctet. Ceci doit être considéré, dépendemment de la nécessité de la communauté, dans la version de PHP où le support de l'Unicode est activé.

Limitations SDO

Les concepts suivants de SDO 2.0 ne sont pas supportés dans l'implémentation courante de PHP. Ce n'est pas nécessairement le cas que ceux-ci seront ajoutés avec le temps. Leur inclusion dépendra des besoins de la communauté.

  1. Relations bidirectionnelles.

  2. Type et propriété alias noms.

  3. Propriétés en lecture seule.

  4. Les classes d'aide définies dans SDO 2.0 ne sont pas directement implémentées. Cependant, une fonction équivalente est fournie dans un style plus naturel pour PHP. Par exemple, la fonction CopyHelper::copy() est fournie en utilisant le mot clé clone de PHP pour un objet de données.


Exemples

Sommaire

  • Utilisation simple
  • Fixe et Récupère les Valeurs des Propriétés
  • Travailler avec des Objets de Données en Séquence
  • Réflexion sur des Objets de Service de Données


Utilisation simple

Les exemples ci-dessous assument qu'un SDO est créé avec le schéma et l'information de l'instance montrée ci-dessous, en utilisant le Service d'Accès de Données.

L'instance du document ci-dessous décrit un compagnie simple, nommée "MegaCorp", qui contient un seul département, nommé "Advanced Technologies". Ce département contient trois employés. La compagnie "employeeOfTheMonth" référence le second employé, "Jane Doe".

<?xml version="1.0" encoding="UTF-8" ?>
<company xmlns="companyNS" name="MegaCorp"
  employeeOfTheMonth="E0003">
  <departments name="Advanced Technologies" location="NY" number="123">
    <employees name="John Jones" SN="E0001"/>
    <employees name="Jane Doe" SN="E0003"/>
    <employees name="Al Smith" SN="E0004" manager="true"/>
  </departments>
</company>

L'élément racine de ce schéma est une compagnie. La compagnie contient des départements, et chaque département contient des employés. Chaque élément a un nombre d'attributs pour y stocker des valeurs comme le nom, un numéro de série et ainsi de suite. Finalement, la compagnie a également un attribut IDREF qui identifie un des employés comme "employeeOfTheMonth".

<xsd:schema
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:sdo="commonj.sdo"
  xmlns:sdoxml="commonj.sdo/xml"
  xmlns:company="companyNS"
  targetNamespace="companyNS">
  <xsd:element name="company" type="company:CompanyType"/>
  <xsd:complexType name="CompanyType">
    <xsd:sequence>
      <xsd:element name="departments" type="company:DepartmentType"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="employeeOfTheMonth" type="xsd:IDREF"
      sdoxml:propertyType="company:EmployeeType"/>
  </xsd:complexType>
  <xsd:complexType name="DepartmentType">
    <xsd:sequence>
      <xsd:element name="employees" type="company:EmployeeType"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="location" type="xsd:string"/>
    <xsd:attribute name="number" type="xsd:int"/>
  </xsd:complexType>
  <xsd:complexType name="EmployeeType">
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="SN" type="xsd:ID"/>
    <xsd:attribute name="manager" type="xsd:boolean"/>
  </xsd:complexType>
</xsd:schema>

Un Service d'Accès de Données XML voit ce schéma comme un SDO. Les attributs comme "name" deviennent des propriétés primaires, les séquences d'employés deviennent une relation de contenu à multiples valeurs, et ainsi de suite. Notez que les relations de contenu sont représentées comme un type complexe contenu dans un autre, où les références non-contenues sont représentées en terme d'ID et d'IDREF, avec un attribut sdoxml:propertyType spécial spécifiant le type de la référence non-contenue.


Fixe et Récupère les Valeurs des Propriétés

Les exemples suivants présument que $compagnie est la racine d'un arbre d'objets de données créés depuis le schéma et le document montré ci-dessus.

Exemple #1 Accès via les noms de Propriété

Les propriétés des objets de données peuvent être accédées en utilisant la syntaxe d'accès de propriété d'objet. L'exemple fixe le nom de compagnie à "Acme".

<?php
$company->name = 'Acme';
?>

Exemple #2 Accès via le nom de la propriété en tant que tableau indexé

Nous pouvons également accéder aux propriétés en utilisant un tableau associatif. La forme la plus simple est d'utiliser le nom de la propriété dans le tableau indexé. Par exemple, ce qui suit définit le nom de la compagnie et récupère l'"employeeOfTheMonth".

<?php
$company['name'] = 'UltraCorp';
$eotm = $company['employeeOfTheMonth'];
?>

Exemple #3 Itération d'objet de données

Vous pouvons passer en revue les propriétés d'un objet de données en utilisant l'instruction foreach.

<?php
  $eotm = $company->employeeOfTheMonth;
  foreach ($eotm as $name => $value) {
      echo "$name: $value\n";
  }
?>

Affichera :

name: Jane Doe
SN: E0003

La propriété "manager" n'est pas affichées, car elle n'a pas été spécifiée.

Exemple #4 Accès à une propriété à valeurs multiples par le nom

Les propriétés à valeurs multiples d'un objet de données peuvent être accédées en utilisant la syntaxe des noms de propriétés de l'objet. Ce qui suit récupère la liste des départements.

<?php
$departments = $company->departments;
?>

Exemple #5 Accès aux éléments à valeurs multiples

Nous pouvons accéder aux éléments individuels des propriétés à valeurs multiples en utilisant la syntaxe des tableaux. Ce qui suit permet d'accéder au premier département de la compagnie.

<?php
$ad_tech_dept = $company->departments[0];
?>

Exemple #6 Itération d'une propriété à valeurs multiples

Les propriétés à valeurs multiples peuvent être passées en revue en utilisant l'instruction foreach.

<?php
  foreach ($company->departments as $department) {
    // ...
  }
?>

Chaque itération assignera le prochain département de la liste dans la variable $department.

Exemple #7 Accès aux propriétés chaînées

Nous pouvons chaîner les références des propriétés sur une seule ligne. Ce qui suit définit et récupère le nom du premier département.

<?php
  $company->departments[0]->name = 'Emerging Technologies';
  $dept_name = $company->departments[0]->name;
?>

En utilisant la syntaxe des tableaux associatifs, c'est l'équivalent de

<?php
  $company['departments'][0]['name'] = 'Emerging Technologies';
  $dept_name = $company['departments'][0]['name'];
?>

Dans tous les cas, la variable dept_name est définie à "Emerging Technologies".

Exemple #8 Navigation XPath

Le tableau associatif indexé peut être une expression façon XPath. Les expressions valides sont définies par une sous définition d'XPath.

Deux façons d'indexations de propriétés à valeurs multiples sont supportées. La première est la syntaxe de tableau XPath standard dont l'index commence à 0, la seconde est une extension SDO à XPath avec un index qui commence à 0. La syntaxe standard est :

<?php
  $jane_doe = $company["departments[1]/employees[2]"];
?>

et la syntaxe de l'extension SDO XPath est :

<?php
  $jane_doe = $company["departments.0/employees.1"];
?>

Les deux exemples ci-dessus récupèrent le second employé du premier département.

Exemple #9 Requête XPath

Nous pouvons utiliser XPath pour effectuer une requête et ainsi identifier des parties d'un objet de données basé sur des données instanciées. Ce qui suit récupère le manager depuis le département "Advanced Technologies".

<?php
 $ad_tech_mgr =
  $company["departments[name='Advanced Technologies']/employees[manager=true]"];
?>

Exemple #10 Création d'objets de données fils

Un objet de données peut être une fraction pour ces objets de données fils. Un objet de données fils est automatiquement une partie des données. Ce qui suit ajoute un nouvel employé au département "Advanced Technologies".

<?php
  $ad_tech_dept = $company["departments[name='Advanced Technologies']"];
  $new_hire = $ad_tech_dept->createDataObject('employees');
  $new_hire->name = 'John Johnson';
  $new_hire->SN = 'E0005';
  $new_hire->manager = false;
?>

Exemple #11 Effacement d'une propriété primitive

Nous pouvons utiliser la fonction isset() et unset() pour tester et effacer des éléments de l'objet de données.

Ce qui suit efface le nom du premier département.

<?php
  unset($company->departments[0]->name);
?>

Exemple #12 Effacement d'un objet de données

La fonction unset() peut également être utilisée pour effacer un objet de données de l'arbre. L'exemple suivant montre comment John Jones à quitter la compagnie...

<?php
  unset($company->departments[0]->employees[0]);
?>

Exemple #13 Effacement d'un objet de données référencé

Ce qui suit efface "employeeOfTheMonth" de la compagnie. Si c'est une relation contenue, alors l'employé sera effacé de la compagnie. (probablement pas une bonne idée que d'effacer chaque mois votre meilleur employé !) mais si c'est une relation non-contenue, l'employé référencé restera dans le département de la compagnie, mais ne sera plus accessible via la propriété "employeeOfTheMonth".

<?php
  if (isset($company->employeeOfTheMonth)) {
    unset($company->employeeOfTheMonth);
  }
?>

Exemple #14 Accès via l'index de la propriété

Les propriétés de l'objet de données peuvent être accédées via leurs index en utilisant la syntaxe de tableaux. L'index de la propriété est la position dont la propriété apparaît dans le modèle (dans ce cas, le schéma XML). Nous pouvons voir dans le schéma listé ci-dessus que l'attribut du nom de la compagnie est la seconde propriété de la compagnie (l'interface SDO ne fait pas de distinction entre les attributs XML et les éléments). Ce qui suit va définir le nom de la compagnie en "Acme", avec le même résultat que lors de l'accès via le nom de la propriété.

<?php
  $company[1] = 'Acme';
?>

L'utilisation directe de l'index dans ce cas est fragile. Normalement, la syntaxe reposant sur le nom de la propriété est préférable, mais l'index des propriétés peut être nécessaire dans des cas très spéciaux.


Travailler avec des Objets de Données en Séquence

Des objets de données en Séquence sont des SDOs peuvent tracer l'ordre des propriétés à travers les propriétés des objets de données. Ils peuvent aussi contenir des éléments de texte non structuré (élément de texte qui n'appartient à aucune des propriétés SDO). Des objets de données en Séquence sont utiles pour travailler avec des documents XML qui permettent du texte non structuré (c'est-à-dire mixed=true) ou si les éléments peuvent être intercalée (

<A/><B/><A/>
). Ceci peut se produire par exemple lorsque le schéma définit maxOccurs>1 sur un élément qui est un complexType avec un choix de l'ordre.

Les exemples ci-dessous assument qu'un SDO est créé avec le schéma et l'information de l'instance montrée ci-dessous, en utilisant le Service d'Accès de Données.

Le schéma ci-dessous décrit le format d'une lettre. La lettre peut optionnellement contenir trois propriétés; date, prenom et nomFamille. Le schéma indique mixed="true" qui signifie que le texte non structuré peut être entremêlé entre les trois propriétés.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:letter="http://letterSchema"
  targetNamespace="http://letterSchema">
  <xsd:element name="letters" type="letter:FormLetter"/>
  <xsd:complexType name="FormLetter" mixed="true">
    <xsd:sequence>
      <xsd:element name="date" minOccurs="0" type="xsd:string"/>
      <xsd:element name="firstName" minOccurs="0" type="xsd:string"/>
      <xsd:element name="lastName" minOccurs="0" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

L'exemple suivant est une instance du document lettre. Il contient les trois propriétés de la lettre; date, prenom et nomFamille, et a des éléments de texte non structuré pour l'adresse et le corps de la lettre.

<letter:letters xmlns:letter="http://letterSchema">
  <date>March 1, 2005</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Casy</firstName>
  <lastName>Crocodile</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</letter:letters>

Lorsque chargé, l'objet de données de lettre aura la séquence et les indices montrés dans la table ci-dessous :

Index de Séquence | Index:Nom | Valeur
0 | 0:date | March 1, 2005
1 | - | Mutual of Omaha
2 | - | Wild Kingdom, USA
3 | - | Dear
4 | 1:firstName | Casy
5 | 2:lastName | Crocodile
6 | - | Please buy more shark repellent.
7 | - | Your premium is past due.

Pour s'assurer que la séquence des indices soit maintenue, les objets de données en séquence devraient être manipulés à travers de l'interface SDO_Sequence. Ceci permet à l'instance de l'objet de données à être manipulée en tant qu'index de séquence plutôt qu'avec un index de propriété (montré dans la table ci-dessus). Les exemples suivants assument que l'instance de la lettre a été chargée dans l'objet de données référencé par la variable $lettre.

Exemple #1 Récupération de l'interface SDO_Sequence

Nous obtenons la séquence de l'objet de données en utilisant la méthode getSequence(). La suite récupère la séquence pour l'objet de données de la lettre.

<?php
  $letter_seq = $letter->getSequence();
?>

Tous les exemples suivants assument que la variable $lettre_seq a été assigné de la séquence pour l'objet de données de la lettre.

Exemple #2 Récupère/Fixe des valeurs de séquence

Nous pouvons récupérer et fixer des valeurs individuelles (en incluant le texte non structuré) en utilisant les index de séquence. L'exemple suivant fixe le prenom à "Snappy" et récupère la dernière valeur de séquence (le texte non structuré, "Votre prime est passée date.").

<?php
  $letter_seq[4] = 'Snappy';
  $text = $letter_seq[count($letter_seq) - 1];
?>

Exemple #3 Itération de Séquence

Nous pouvons itérer à travers des valeurs de séquence individuellement en utilisant foreach. L'exemple suivant passe au travers des valeurs individuelles dans l'ordre séquentiel.

<?php
foreach ($letter->getSequence() as $value) {
    // ...
}
?>

Exemple #4 Séquence versus Objet de Données

Fixer des valeurs à travers l'interface d'objet de données peut amener à ce que les valeurs ne fassent pas partie de la séquence. Une valeur fixée avec un objet de données sera seulement accessible avec la séquence si la propriété était déjà une partie de la séquence. L'exemple suivant fixe le nomFamille à travers de l'objet de données et le récupère par la séquence. Ceci est correct puisque nomFamille existe déjà dans la séquence. S'il n'avait pas été fixé, alors nomFamille devrait être fixé à "Smith", mais ne devrait pas faire partie de la séquence.

<?php
  $letter[2] = 'Smith';
  $last_name = $letter_seq[5];
?>

Exemple #5 Ajout à une séquence

Nous pouvons ajouter de nouvelles valeurs à une séquence en utilisant la méthode SDO_Sequence::insert(). Les exemples suivants assument que les propriétés "prenom" et "nomFamille" sont non fixées.

<?php
  // Ajoute une valeur prenom à la séquence
  // valeur : 'Smith'
  // index séquence : NULL (ajout)
  // identifiant de propriété : 1 (index propriété prenom)
  $lettre_seq->insert('Smith', NULL, 1);

  // Ajoute une valeur nomFamille à la séquence
  // valeur : 'Jones'
  // index séquence : NULL (ajout)
  // identifiant de propriété : 'nomFamille' (nom propriété nomFamille)
  $lettre_seq->insert('Jones', NULL, 'nomFamille');

  // Ajoute du texte non structuré
  // valeur : 'Annule Inscription.'
  // index séquence : absent (ajout)
  // identifiant de propriété : absent (texte non structuré)
  $lettre_seq->insert('Annule Inscription.');

  // Ajoute du nouveau texte non structuré. Les séquence valeurs suivantes
  // d'ordre sont décalées vers le haut
  // valeur : 'À l'attention de :'
  // index séquence : 1 (insert comme second élément)
  // identifiant de propriété : absent (texte non structuré)
  $lettre_seq->insert('À l'attention de :', 1);
?>

Exemple #6 Suppression d'une séquence

Nous pouvons utiliser les fonctions isset() et unset() pour tester et supprimer des items de la séquence (Note : unset() laisse actuellement les valeurs dans l'objet de données, mais ce comportement est devrait changer et supprimer les données de l'objet de données). Une séquence se comporte comme une liste contiguë; donc, la suppression d'un item au milieu de la liste décalera les entrées d'un indice plus haut vers le bas. L'exemple suivant teste pour vérifier si la première séquence d'élément est fixé et la détruit si elle l'est.

<?php
  if (isset($letter_seq[0])) {
    unset($letter_seq[0]);
  }
?>


Réflexion sur des Objets de Service de Données

Les SDOs ont une connaissance de la structure qu'ils ont créée pour la représentation (le modèle). Par exemple, une Compagnie SDO créée utilisant le schéma de Compagnie XML ci-dessus devrait seulement être permis de contenir des objets de données DepartementType qui à leur tour devrait contenir seulement des objets de données EmployeType.

Parfois, il est utile d'être capable d'accéder ces informations de modèle à l'exécution. Par exemple, cela pourrait être utilisé pour générer automatiquement une interface d'usager pour remplir un objet de données. Les informations de modèle sont accédées en utilisant la réflexion.

Exemple #1 Réflexion sur les Objets de Données

L'exemple suivant montre comment nous pouvons utiliser la réflexion sur un objet de données vide Employe.

<?php
  // Crée l'objet de données employe (par exemple, à partir de Service d'Accès
  // de données XML)
  $employee = ...;
  $reflection = new SDO_Model_ReflectionDataObject($employee);
  print($reflection);
?>

L'exemple ci-dessus va afficher :

object(SDO_Model_ReflectionDataObject)#4 { - ROOT OBJECT - Type {
companyNS:EmployeeType[3] { commonj.sdo:String $name;
commonj.sdo:String $SN; commonj.sdo:Boolean $manager; } }

L'utilisation de print sur SDO_Model_ReflectionDataObject écrit à l'écran les données du modèle de l'objet. Nous pouvons voir à la sortie que le type compagnieNS:EmployeType a trois propriétés et nous pouvons voir le noms de ces propriétés avec leur type. Notez, les types primitifs sont listés en tant que types SDO (par exemple, commonj.sdo namespace, String type). Cela vaut la peine de noter que c'est le modèle SDO et lorsqu'ils sont utilisés dans l'application, ils peuvent être traités comme des types équivalent PHP (par exemple, chaîne de caractères et booléen).

Exemple #2 Accès d'informations de type

Nous pouvons effectuer une requête de type d'informations sur un objet de données en utilisant la réflexion. L'exemple suivant vérifie que le type corresponde à l'objet de données plutôt qu'à une primitive et alors itère à travers des propriétés de type, en affichant le nom de chaque propriété ($type et $property sont respectivement des objets SDO_Model_Type et SDO_Model_Property).

<?php
    // Crée l'objet de données employe (par exemple, à partir de Service d'Accès
    // de données XML)
    $employee = ...;
    $reflection = new SDO_Model_ReflectionDataObject($employee);
    $type = $reflection->getType();
    if (! $type->isDataType()) {
        foreach ($type->getProperties() as $property) {
            print $property->getName() . "\n";
        }
    }
?>

L'exemple ci-dessus va afficher :

name
SN
manager


Fonctions SDO

Services d'Accès de Données

La table ci-dessous liste les Services d'Accès de Données SDO actuellement fournis :

Nom DAS | Description
SDO_DAS_XML | Un Service d'Accès de Données XML supportant la lecture/écriture SDOs comme documents XML.
SDO_DAS_Relational | Un Service d'Accès de Données basé sur PDO supportant la lecture/écriture SDO aux bases de données relationnelles. Implémente une politique optimiste de mises à jour concourante.

Classes pré-définies

SDO consiste en trois blocs d'interface. Le premier bloc couvre les interfaces pour utiliser avec les applications typiques SDO. Celles-ci sont identifiées par le préfixe de paquet 'SDO_'. Le deuxième bloc est celui qui utilise les interfaces qui sont utilisées pour la réflexion, et travaille avec le modèle d'objet de données. Ces interfaces sont identifiées par le préfixe de paquet 'SDO_Model_'. Finalement, le troisième bloc est celui qui utilise les interfaces qui sont utilisées par les implémentations de Service d'Accès de Données et sont identifiées par le préfixe de paquet 'SDO_DAS_'. La majorité des utilisateurs SDO n'auront pas besoin d'utiliser ou de comprendre les interfaces 'SDO_Model_' et 'SDO_DAS_'.

Interface Application pour programmer SDO

SDO_DataObject

L'interface principale dans laquelle les objets de données sont manipulés. En plus des méthode ci-dessous, SDO_DataObjet étend les interfaces ArrayAccess, SDO_PropertyAccess (définit les méthodes __get() / __set() pour surcharger l'accès aux propriétés), Iterator et Countable.

Méthodes

  • getSequence : récupère la séquence pour l'objet de données

  • createDataObject : crée un objet de données enfant

  • clear : détruit les propriétés d'un objet de données

  • getContainer : récupère le conteneur (aussi connu en tant que 'parent') de l'objet de données

  • getTypeName : récupère le nom du type de cet objet de données

  • getTypeNamespaceURI : récupère l'URI de l'espace de noms du type de cet objet de données

SDO_Sequence

L'interface avec laquelle on peut accéder aux objets de données en séquence pour préserver l'ordre parmi les propriétés de l'objet de données et pour permettre le texte non structuré. SDO_Sequence préserve les indices contigus et donc l'insertion ou la suppression d'éléments peut entraîner un décalage des autres éléments vers le haut ou vers le bas. En plus des méthodes ci-dessous, SDO_Sequence étend les interfaces ArrayAccess, Interator et Countable.

Méthodes

  • getProperty : récupère la propriété pour un index de séquence donné

  • move : déplace un élément d'un index vers un autre

  • insert : insère une nouvelle valeur dans la séquence

SDO_List

L'interface dans lequel les propriétés de plusieurs valeurs sont manipulées. En plus des méthodes définies ci-dessous, SDO_List étend ArrayAcces, Iterator et Countable. SDO_List préserve les indices contigus et donc l'insertion ou la suppression des éléments peut décaler les autres éléments vers le haut ou vers le bas.

Méthodes

  • insert : insertion d'une nouvelle valeur dans la liste

SDO_DataFactory

L'interface dans lequel les objets de données peuvent être créés. Un Service d'Accès de Données est responsable de remplir le modèle (c'est-à-dire, la configuration des classe de données avec le type et les informations de structure pour les objets de données qu'elle peut créer.) pour les classes et peut alors optionnellement retourner une instance ou une implémentation de l'interface de SDO_DataFactory.

Méthodes

  • create : crée un nouvel objet de données

SDO_Exception

Une exception SDO_Exception est lancée lorsque la demande de l'appelant ne peut être honorée. Les sous classes de SDO_Exception sont :

  • SDO_PropertyNotSetException - la propriété spécifiée existe mais n'a pas été définie ou n'a pas de valeur par défaut

  • SDO_PropertyNotFoundException - la propriété spécifiée ne fait pas partie du type de l'objet de données

  • SDO_TypeNotFoundException - l'URI d'espace de noms spécifiée ou le nom du type est inconnu

  • SDO_InvalidConversionException - la conversion entre les types d'assignation n'est pas possible

  • SDO_IndexOutOfBoundsException - l'index numérique d'un objet de données, d'une séquence ou d'une liste n'est pas dans un intervalle valide

  • SDO_UnsupportedOperationException - la demande n'a pû être honorée car elle n'est pas autorisée, par exemple, une tentative de définition d'une propriété en lecture seule

Méthodes

Une méthode est ajoutée à celles héritées depuis la classe interne Exception :

  • getCause : récupère la cause de cette exception SDO_Exception

Interfaces de réflexion d'application pour programmer SDO

SDO_Model_ReflectionDataObject

L'interface principale est utilisée pour la réflexion d'une instance d'objet de données pour obtenir son type de modèle et les informations de propriété. Elle est désignée pour suivre le motif de réflexion introduit dans PHP 5.

Constructeur

  • __construct : construit un nouvel SDO_Model_ReflectionDataObject.

Méthodes

  • export : récupère une chaîne décrivant l'objet de données.

  • getType : récupère le SDO_Model_Type pour l'objet de données.

  • getInstanceProperties : récupère les propriétés de l'instance de l'objet de données.

  • getContainmentProperty : récupère la propriété qui définit la relation contenue de l'objet de données.

SDO_Model_Type

L'interface dans lequel les informations de type de l'objet de données peuvent être récupérées. Cette interface peut être utilisée pour trouver le nom de type et l'espace de nom URI du type, si le type autorise l'ouverture du contenu, et ainsi de suite.

Méthodes

  • getName : récupère le nom du type.

  • getNamespaceURI : récupère l'espace de nom URI du type.

  • isInstance : vérifie pour un objet de données s'il est une instance du type.

  • getProperties : récupère les propriétés du type.

  • getProperty : récupère une propriété de type.

  • isDataType : vérifie pour voir si le type est une primitive de type scalaire.

  • isSequencedType : vérifie pour voir s'il s'agit d'un type de séquence.

  • isOpenType : vérifie pour voir s'il s'agit d'un type ouvert.

  • isAbstractType : vérifie pour voir s'il s'agit d'un type d'abstraction.

  • getBaseType : récupère le type de base de ce type (si un existe).

SDO_Model_Property

L'interface dans lequel les informations de propriété d'objet peuvent être récupérées. Cette interface peut être utilisée pour trouver le type d'une propriété, si une propriété a une valeur par défaut, si une propriété est contenue ou référencée par son parent, sa cardinalité, et ainsi de suite.

Méthodes

  • getName : récupère le nom de la propriété.

  • getType : récupère le type de la propriété.

  • isMany : vérifie pour voir si la propriété est de valeurs multiples.

  • isContainment : vérifie pour voir si la propriété décrit une relation contenue.

  • getContainingType : récupère le type qui contient cette propriété.

  • getDefault : récupère la valeur par défaut pour une propriété.

Interfaces de développeur Service d'Accès de Données SDO

SDO_DAS_DataObject

L'interface dans lequel un Service d'Accès de Données peut accéder à SDO_DAS_ChangeSummary de l'objet de données. Le résumé de changement est utilisé par le Service d'Accès de Données pour vérifier les conflits lors des applications des changements à une source de données.

Méthodes

  • getChangeSummary : récupère le résumé de changement pour un objet de données

SDO_DAS_ChangeSummary

L'interface dans lequel l'historique de changement d'un objet de données est accédé. Le résumé de changement contient des informations pour n'importe quelles modifications sur un objet de données qui s'est produites lorsque la journalisation a débuté. Dans le cas de suppression ou de modification, les dernières valeurs sont aussi gardées dans le résumé de changement.

Si la journalisation n'est plus active, alors le résumé de changement contient seulement les changements faits jusqu'au point où la journalisation fut désactivée. La réactivation de la journalisation supprime le résumé de changement. Cela peut être utile lorsqu'un certain nombre de changements ont été écris par un DAS et un objet de données qui est réutilisé.

Méthodes

  • beginLogging : démarre la journalisation des changements faits à l'objet de données

  • endLogging : termine la journalisation des changements faits à l'objet de données

  • isLogging : vérifie pour voir si la journalisation des changements est activée

  • getChangedDataObjects : récupère une liste de d'objets de données qui ont été changés

  • getChangeType : récupère le type de changement qui a été fait à l'objet de données

  • getOldValues : récupère une liste des anciennes valeurs pour un objet de données

  • getOldContainer : récupère un ancien conteneur d'objet de données pour un objet de données supprimé

SDO_DAS_Setting

L'interface dans lequel l'ancienne valeur pour une propriété est accédée. Une liste des configurations est retournée par le résumé de changement dont la méthode est getOldValues.

Méthodes

  • getPropertyIndex : récupère l'index pour la propriété changée

  • getPropertyName : récupère le nom pour la propriété changée

  • getValue : récupère l'ancienne valeur pour la propriété changée

  • getListIndex : récupère la liste des index pour l'ancienne valeur si elle faisait partie d'une propriété à valeurs multiples

  • isSet : vérifie si la propriété était fixée avant d'être modifiée

SDO_DAS_DataFactory

L'interface pour construire le modèle pour un SDO_DataObjet. Le SDO_DAS_DataFactory est une classe abstraite fournissant une méthode statique qui retourne une classe d'implémentation de données concrète. L'implémentation est utilisée par les Services d'Accès de Données pour créer un modèle SDO à partir de leur modèle. Par exemple, un Service d'Accès de Données Relationnel peut créer et remplir un modèle SDO_DAS_DataFactory basé sur un schéma pour une base de données relationnelle.

Méthodes

  • getDataFactory : méthodes statiques pour obtenir une instance de classe concrète de données

  • addType : ajoute un nouveau type au modèle SDO

  • addPropertyToType : ajoute une nouvelle propriété à une définition de type dans le modèle SDO

Sommaire

  • SDO_DAS_ChangeSummary::beginLogging — Commence la journalisation
  • SDO_DAS_ChangeSummary::endLogging — Termine la journalisation
  • SDO_DAS_ChangeSummary::getChangeType — Récupère le type de changement qui a été fait à l'objet de données
  • SDO_DAS_ChangeSummary::getChangedDataObjects — Récupère une liste de d'objets de données qui ont été changés
  • SDO_DAS_ChangeSummary::getOldContainer — Récupère un ancien conteneur d'objet de données pour un objet de données supprimé
  • SDO_DAS_ChangeSummary::getOldValues — Récupère une liste des anciennes valeurs pour un objet de données
  • SDO_DAS_ChangeSummary::isLogging — Vérifie pour voir si la journalisation des changements est activée
  • SDO_DAS_DataFactory::addPropertyToType — Ajoute une nouvelle propriété à une définition de type
  • SDO_DAS_DataFactory::addType — Ajoute un nouveau type à un modèle
  • SDO_DAS_DataFactory::getDataFactory — Récupère l'instance de classe de données
  • SDO_DAS_DataObject::getChangeSummary — Récupère le résumé de changement pour un objet de données
  • SDO_DAS_Setting::getListIndex — Récupère la liste des index pour une propriété de valeurs multiples changée
  • SDO_DAS_Setting::getPropertyIndex — Récupère l'index de propriété pour la propriété changée
  • SDO_DAS_Setting::getPropertyName — Récupère le nom de la propriété pour la propriété changée
  • SDO_DAS_Setting::getValue — Récupère l'ancienne valeur pour la propriété changée
  • SDO_DAS_Setting::isSet — Vérifie pour voir si la propriété était fixée avant d'être modifiée
  • SDO_DataFactory::create — Crée un SDO_DataObject
  • SDO_DataObject::clear — Détruit les propriétés d'un SDO_DataObject
  • SDO_DataObject::createDataObject — Crée un enfant SDO_DataObject
  • SDO_DataObject::getContainer — Récupère un conteneur de l'objet de données
  • SDO_DataObject::getSequence — Récupère la séquence pour un objet de données
  • SDO_DataObject::getTypeName — Retourne le nom du type d'un objet de données
  • SDO_DataObject::getTypeNamespaceURI — Retourne l'espace de nom URI du type d'un objet de données
  • SDO_Exception::getCause — Récupère la cause d'une exception
  • SDO_List::insert — Insère dans une liste
  • SDO_Model_Property::getContainingType — Récupère le SDO_Model_Type qui contient cette propriété
  • SDO_Model_Property::getDefault — Récupère la valeur par défaut pour la propriété
  • SDO_Model_Property::getName — Récupère le nom de SDO_Model_Property
  • SDO_Model_Property::getType — Récupère le SDO_Model_Type de la propriété
  • SDO_Model_Property::isContainment — Vérifie pour voir si la propriété définit une relation contenue
  • SDO_Model_Property::isMany — Vérifie pour voir si la propriété est de valeurs multiples
  • SDO_Model_ReflectionDataObject::__construct — Construit un SDO_Model_ReflectionDataObject
  • SDO_Model_ReflectionDataObject::export — Récupère une chaîne de caractères décrivant le SDO_DataObject
  • SDO_Model_ReflectionDataObject::getContainmentProperty — Récupère la propriété qui définit la relation contenue de l'objet de données
  • SDO_Model_ReflectionDataObject::getInstanceProperties — Récupère les propriétés de l'instance de SDO_DataObject
  • SDO_Model_ReflectionDataObject::getType — Récupère le SDO_Model_Type pour SDO_DataObject
  • SDO_Model_Type::getBaseType — Récupère le type de base pour le type
  • SDO_Model_Type::getName — Récupère le nom du type
  • SDO_Model_Type::getNamespaceURI — Récupère l'espace de nom URI pour le type
  • SDO_Model_Type::getProperties — Récupère les objets SDO_Model_Property définis pour le type
  • SDO_Model_Type::getProperty — Récupère un SDO_Model_Property du type
  • SDO_Model_Type::isAbstractType — Vérifie pour voir si ce SDO_Model_Type est un objet de type abstrait
  • SDO_Model_Type::isDataType — Vérifie pour voir si le SDO_Model_Type est un type de données primitive
  • SDO_Model_Type::isInstance — Vérifie si un SDO_DataObject est une instance de ce SDO_Model_Type
  • SDO_Model_Type::isOpenType — Vérifie pour voir si le type est un type ouvert
  • SDO_Model_Type::isSequencedType — Vérifie pour voir si le type est une séquence
  • SDO_Sequence::getProperty — Retourne la propriété pour l'index de séquence spécifié
  • SDO_Sequence::insert — Ajoute dans une séquence
  • SDO_Sequence::move — Déplace un item à une autre position de la séquence


Commence la journalisation

  • « Fonctions SDO
  • SDO_DAS_ChangeSummary::endLogging »
  • PHP Manual
  • Fonctions SDO
  • Commence la journalisation

SDO_DAS_ChangeSummary::beginLogging

(^)

SDO_DAS_ChangeSummary::beginLogging — Commence la journalisation

Description

void SDO_DAS_ChangeSummary::beginLogging ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Commence la journalisation des changements effectués au SDO_DataObject.

Liste de paramètres

Aucun.

Valeurs de retour

Aucune.


Termine la journalisation

  • « SDO_DAS_ChangeSummary::beginLogging
  • SDO_DAS_ChangeSummary::getChangeType »
  • PHP Manual
  • Fonctions SDO
  • Termine la journalisation

SDO_DAS_ChangeSummary::endLogging

(^)

SDO_DAS_ChangeSummary::endLogging — Termine la journalisation

Description

void SDO_DAS_ChangeSummary::endLogging ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Termine la journalisation des changements effectués au SDO_DataObject.

Liste de paramètres

Aucun.

Valeurs de retour

Aucune.


Récupère le type de changement qui a été fait à l'objet de données

  • « SDO_DAS_ChangeSummary::endLogging
  • SDO_DAS_ChangeSummary::getChangedDataObjects »
  • PHP Manual
  • Fonctions SDO
  • Récupère le type de changement qui a été fait à l'objet de données

SDO_DAS_ChangeSummary::getChangeType

(^)

SDO_DAS_ChangeSummary::getChangeType — Récupère le type de changement qui a été fait à l'objet de données

Description

int SDO_DAS_ChangeSummary::getChangeType ( SDO_DataObject $dataObject )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le type de changement qui a été fait à l'objet SDO_DataObject fourni.

Liste de paramètres

dataObject

Le SDO_DataObject qui a été modifié.

Valeurs de retour

Le type de changement qui a été fait. Le type de changement est exprimé comme une énumération et sera une des quatre valeurs suivantes :

  • SDO_DAS_ChangeSummary::NONE

  • SDO_DAS_ChangeSummary::MODIFICATION

  • SDO_DAS_ChangeSummary::ADDITION

  • SDO_DAS_ChangeSummary::DELETION


Récupère une liste de d'objets de données qui ont été changés

  • « SDO_DAS_ChangeSummary::getChangeType
  • SDO_DAS_ChangeSummary::getOldContainer »
  • PHP Manual
  • Fonctions SDO
  • Récupère une liste de d'objets de données qui ont été changés

SDO_DAS_ChangeSummary::getChangedDataObjects

(^)

SDO_DAS_ChangeSummary::getChangedDataObjects — Récupère une liste de d'objets de données qui ont été changés

Description

SDO_List SDO_DAS_ChangeSummary::getChangedDataObjects ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un SDO_List de SDO_DataObjects qui ont été changés. Ces objets de données peuvent alors être utilisés pour identifier les types de changements effectués de chacun, avec les anciennes valeurs.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne un SDO_List de SDO_DataObjects.


Récupère un ancien conteneur d'objet de données pour un objet de données supprimé

  • « SDO_DAS_ChangeSummary::getChangedDataObjects
  • SDO_DAS_ChangeSummary::getOldValues »
  • PHP Manual
  • Fonctions SDO
  • Récupère un ancien conteneur d'objet de données pour un objet de données supprimé

SDO_DAS_ChangeSummary::getOldContainer

(^)

SDO_DAS_ChangeSummary::getOldContainer — Récupère un ancien conteneur d'objet de données pour un objet de données supprimé

Description

SDO_DataObject SDO_DAS_ChangeSummary::getOldContainer ( SDO_DataObject $data_object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un ancien conteneur d'objet (SDO_DataObject) pour un SDO_DataObject supprimé.

Liste de paramètres

data_object

Le SDO_DataObject qui a été supprimé et pour lequel nous voulons identifier le conteneur.

Valeurs de retour

L'ancien conteneur d'objet de données de l'objet SDO_DataObject supprimé.


Récupère une liste des anciennes valeurs pour un objet de données

  • « SDO_DAS_ChangeSummary::getOldContainer
  • SDO_DAS_ChangeSummary::isLogging »
  • PHP Manual
  • Fonctions SDO
  • Récupère une liste des anciennes valeurs pour un objet de données

SDO_DAS_ChangeSummary::getOldValues

(^)

SDO_DAS_ChangeSummary::getOldValues — Récupère une liste des anciennes valeurs pour un objet de données

Description

SDO_List SDO_DAS_ChangeSummary::getOldValues ( SDO_DataObject $data_object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère une liste des anciennes valeurs pour l'objet SDO_DataObject donné. Retourne une liste SDO_DAS_Settings décrivant les anciennes valeurs pour les propriétés changées de SDO_DataObject.

Liste de paramètres

data_object

L'objet de données qui a été changé.

Valeurs de retour

Une liste de SDO_DAS_Settings décrivant les anciennes valeurs pour les propriétés changées de SDO_DataObject. Si le type de changement est SDO_DAS_ChangeSummary::ADDITION, sa liste est vide.


Vérifie pour voir si la journalisation des changements est activée

  • « SDO_DAS_ChangeSummary::getOldValues
  • SDO_DAS_DataFactory::addPropertyToType »
  • PHP Manual
  • Fonctions SDO
  • Vérifie pour voir si la journalisation des changements est activée

SDO_DAS_ChangeSummary::isLogging

(^)

SDO_DAS_ChangeSummary::isLogging — Vérifie pour voir si la journalisation des changements est activée

Description

bool SDO_DAS_ChangeSummary::isLogging ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si la journalisation des changements est activée.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si la journalisation est activée, autrement retourne FALSE.


Ajoute une nouvelle propriété à une définition de type

  • « SDO_DAS_ChangeSummary::isLogging
  • SDO_DAS_DataFactory::addType »
  • PHP Manual
  • Fonctions SDO
  • Ajoute une nouvelle propriété à une définition de type

SDO_DAS_DataFactory::addPropertyToType

(^)

SDO_DAS_DataFactory::addPropertyToType — Ajoute une nouvelle propriété à une définition de type

Description

void SDO_DAS_DataFactory::addPropertyToType ( string $parent_type_namespace_uri , string $parent_type_name , string $property_name , string $type_namespace_uri , string $type_name [, array $options ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajoute une nouvelle propriété à une définition de type. Le type doit être déjà connu de SDO_DAS_DataFactory (c'est-à-dire, a été ajouté en utilisant addType()). La propriété devient une propriété du type. Voici comment le modèle de graphique pour la structure d'un SDO_DataObject est construit.

Liste de paramètres

parent_type_namespace_uri

L'espace de nom URI du type parent.

parent_type_name

Le nom du type pour le type parent.

property_name

Le nom par lequel la propriété sera connue dans le type parent.

type_namespace_uri

L'espace de nom URI pour le type de la propriété.

type_name

Le nom du type pour le type de la propriété.

options

Ce tableau contient une ou plusieurs paires de clé=>valeur pour fixer les valeurs des attributs pour la propriété. Les clés optionnelles sont :

many

Un drapeau pour dire si la propriété est de valeurs multiples. Une valeur TRUE ajoute la propriété en tant que propriété à valeurs multiples (la valeur par défaut est FALSE).

readOnly

Un drapeau pour dire si la propriété est en lecture seule. Une valeur TRUE signifie que la valeur de la propriété ne peut être modifiée à travers des APIs de l'application SDO (la valeur par défaut est FALSE).

containment

Un drapeau pour dire si la propriété est contenue par le parent. Une valeur TRUE signifie que la propriété est contenue par le parent. Une valeur FALSE résulte en une référence non contenue (la valeur par défaut est TRUE). Ce drapeau est seulement interprété lors de l'ajout de propriétés qui sont des types d'objet de données, autrement il est ignoré.

default

Une valeur par défaut de la propriété. L'omission de cette clé signifie que la propriété ne possède pas de valeur par défaut. Une propriété peut seulement avoir une valeur par défaut s'il s'agit d'un type de données de valeur simple (primitive).

Valeurs de retour

Aucune.

Historique

Version | Description
0.5.2 | Les paramètres optionnels many, readOnly et containment sont obsolètes en faveur du tableau options.

Exemples

Exemple #1 Exemple avec SDO_DAS_DataFactory::addPropertyToType()

L'exemple suivant ajoute une propriété "addressline" au type Person. Le type person est identifié par son espace de nom, "PersonNS" et son nom de type "PersonType". Le type de la propriété "addressline" est de valeurs multiples (primitive) avec un espace de nom "commonj.sdo" et le nom de type est "String".

<?php
  $df->addPropertyToType('PersonNS', 'PersonType',
    'addressline', 'commonj.sdo', 'String', array('many'=>true));
?>


Ajoute un nouveau type à un modèle

  • « SDO_DAS_DataFactory::addPropertyToType
  • SDO_DAS_DataFactory::getDataFactory »
  • PHP Manual
  • Fonctions SDO
  • Ajoute un nouveau type à un modèle

SDO_DAS_DataFactory::addType

(^)

SDO_DAS_DataFactory::addType — Ajoute un nouveau type à un modèle

Description

void SDO_DAS_DataFactory::addType ( string $type_namespace_uri , string $type_name [, array $options ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajoute un nouveau type à SDO_DAS_DataFactory, défini par son espace de nom et son type de nom. Le type devient une part du modèle de d'objets de données que la classe peut créer.

Liste de paramètres

type_namespace_uri

L'espace de nom du type.

type_name

Le nom du type.

options

Ce tableau contient une ou plusieurs paires clé=>valeur pour définir les valeurs de l'attribut de ce type. Les mots-clé optionnels sont :

open

Un flag pour dire si le type est ouvert. Un SDO_DataObject dont le type est ouvert peut avoir des propriétés ajoutées qui ne sont pas décrites par le type. Cette possibilité est utilisée pour supporter le travail avec les documents XML dont les schémas supportent le contenu ouvert tel que décrit par l'élément <xsd:any>. La valeur par défaut est "false".

sequenced

Un flag pour dire si le type est séquencé. Les types séquencés peuvent préserver l'ordre des propriétés et peuvent contenir du texte non structuré. La valeur par défaut est "false". Pour plus d'informations sur les types séquencés, lisez la section sur le travail avec les objets de données séquencés.

basetype

Si spécifié, un tableau d'URI d'espace de noms et de noms de type pour le type depuis lequel ce type est dérivé. Un exemple d'utilisation des types de base est lorsque un type dérivé dans un schéma XML hérite d'un autre type en utilisant <extension base="...">.

Valeurs de retour

Aucune.

Exemples

Exemple #1 Exemple avec SDO_DAS_DataFactory::addType()

L'exemple suivant ajoute un nouvel objet de données de "CompagnieType" à l'endroit où appartient l'espace de nom "CompagnieNS".

<?php
  $df->addType('CompanyNS', 'CompanyType');
?>


Récupère l'instance de classe de données

  • « SDO_DAS_DataFactory::addType
  • SDO_DAS_DataObject::getChangeSummary »
  • PHP Manual
  • Fonctions SDO
  • Récupère l'instance de classe de données

SDO_DAS_DataFactory::getDataFactory

(^)

SDO_DAS_DataFactory::getDataFactory — Récupère l'instance de classe de données

Description

SDO_DAS_DataFactory SDO_DAS_DataFactory::getDataFactory ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Méthode statique pour obtenir une instance de SDO_DAS_DataFactory. Cette instance est initialement configuré avec les types de SDO basic. Un Service d'Accès de Données est responsable du remplissage du modèle de classe de données et permet ainsi aux applications PHP de créer des SDOs basés sur un modèle à travers de l'interface SDO_DataFactory. Les applications PHP devraient toujours obtenir une classe de données d'un Service d'Accès de Données configuré, et non à travers cette interface.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne un SDO_DAS_DataFactory.


Récupère le résumé de changement pour un objet de données

  • « SDO_DAS_DataFactory::getDataFactory
  • SDO_DAS_Setting::getListIndex »
  • PHP Manual
  • Fonctions SDO
  • Récupère le résumé de changement pour un objet de données

SDO_DAS_DataObject::getChangeSummary

(^)

SDO_DAS_DataObject::getChangeSummary — Récupère le résumé de changement pour un objet de données

Description

SDO_DAS_ChangeSummary SDO_DAS_DataObject::getChangeSummary ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le SDO_DAS_ChangeSummary pour un SDO_DAS_DataObject ou NULL s'il n'en a pas.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_DAS_ChangeSummary pour un SDO_DAS_DataObject ou NULL s'il n'en a pas.


Récupère la liste des index pour une propriété de valeurs multiples changée

  • « SDO_DAS_DataObject::getChangeSummary
  • SDO_DAS_Setting::getPropertyIndex »
  • PHP Manual
  • Fonctions SDO
  • Récupère la liste des index pour une propriété de valeurs multiples changée

SDO_DAS_Setting::getListIndex

(^)

SDO_DAS_Setting::getListIndex — Récupère la liste des index pour une propriété de valeurs multiples changée

Description

int SDO_DAS_Setting::getListIndex ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère la liste des index pour une modification faite sur un élément de propriété à valeurs multiples. Par exemple, si nous avions modifié le troisième élément d'une propriété à valeurs multiples, nous pourrions obtenir un SDO_DAS_Setting pour un résumé du changement correspondant à la modification. Un appel à getListIndex() sur cette configuration retournerait la valeur 2 (les listes commencent leur indexation à zéro).

Liste de paramètres

Aucun.

Valeurs de retour

La liste des index pour un élément d'une propriété à valeurs multiples pour laquelle a été changée.


Récupère l'index de propriété pour la propriété changée

  • « SDO_DAS_Setting::getListIndex
  • SDO_DAS_Setting::getPropertyName »
  • PHP Manual
  • Fonctions SDO
  • Récupère l'index de propriété pour la propriété changée

SDO_DAS_Setting::getPropertyIndex

(^)

SDO_DAS_Setting::getPropertyIndex — Récupère l'index de propriété pour la propriété changée

Description

int SDO_DAS_Setting::getPropertyIndex ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère l'index de propriété pour la propriété changée. Cet index identifie la propriété pour laquelle elle a été modifiée dans l'objet de données.

Liste de paramètres

Aucun.

Valeurs de retour

L'index de propriété pour une propriété changée.


Récupère le nom de la propriété pour la propriété changée

  • « SDO_DAS_Setting::getPropertyIndex
  • SDO_DAS_Setting::getValue »
  • PHP Manual
  • Fonctions SDO
  • Récupère le nom de la propriété pour la propriété changée

SDO_DAS_Setting::getPropertyName

(^)

SDO_DAS_Setting::getPropertyName — Récupère le nom de la propriété pour la propriété changée

Description

string SDO_DAS_Setting::getPropertyName ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le nom de la propriété pour la propriété changée. Le nom identifie la propriété pour laquelle elle a été modifiée dans l'objet de données.

Liste de paramètres

Aucun.

Valeurs de retour

Le nom de la propriété pour une propriété changée.


Récupère l'ancienne valeur pour la propriété changée

  • « SDO_DAS_Setting::getPropertyName
  • SDO_DAS_Setting::isSet »
  • PHP Manual
  • Fonctions SDO
  • Récupère l'ancienne valeur pour la propriété changée

SDO_DAS_Setting::getValue

(^)

SDO_DAS_Setting::getValue — Récupère l'ancienne valeur pour la propriété changée

Description

mixed SDO_DAS_Setting::getValue ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère l'ancienne valeur pour la propriété changée. Cela peut être utilisé par le Service d'Accès de Données lors de l'écriture des mises à jours à une source de données. Le DAS utilise l'ancienne valeur pour détecter les conflits en la comparant avec la valeur courante dans la source de données. Si elles ne concordent pas, alors la source de données a été mise à jour depuis que l'objet de données fut rempli, et alors l'écriture de nouvelles mises à jour risque de compromettre l'intégrité des données.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne l'ancienne valeur de la propriété changée.


Vérifie pour voir si la propriété était fixée avant d'être modifiée

  • « SDO_DAS_Setting::getValue
  • SDO_DataFactory::create »
  • PHP Manual
  • Fonctions SDO
  • Vérifie pour voir si la propriété était fixée avant d'être modifiée

SDO_DAS_Setting::isSet

(^)

SDO_DAS_Setting::isSet — Vérifie pour voir si la propriété était fixée avant d'être modifiée

Description

bool SDO_DAS_Setting::isSet ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si la propriété était fixée avant d'être modifiée. Si elle avait été fixée avant d'être modifiée, alors le SDO_DAS_Setting contiendra aussi l'ancienne valeur.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si la propriété était fixée avant qu'elle soit modifiée, autrement retourne FALSE.


Crée un SDO_DataObject

  • « SDO_DAS_Setting::isSet
  • SDO_DataObject::clear »
  • PHP Manual
  • Fonctions SDO
  • Crée un SDO_DataObject

SDO_DataFactory::create

(^)

SDO_DataFactory::create — Crée un SDO_DataObject

Description

void SDO_DataFactory::create ( string $type_namespace_uri , string $type_name )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel SDO_DataObject donné par l'espace de nom URI et le nom du type de l'objet de données.

Liste de paramètres

type_namespace_uri

L'espace de nom du type.

type_name

Le nom du type.

Valeurs de retour

Retourne le nouvel SDO_DataObject créé.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si le namespaceURI et typeName ne correspondent pas à un type connu dans cette classe de données.


Détruit les propriétés d'un SDO_DataObject

  • « SDO_DataFactory::create
  • SDO_DataObject::createDataObject »
  • PHP Manual
  • Fonctions SDO
  • Détruit les propriétés d'un SDO_DataObject

SDO_DataObject::clear

(^)

SDO_DataObject::clear — Détruit les propriétés d'un SDO_DataObject

Description

void SDO_DataObject::clear ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Détruit les propriétés d'un SDO_DataObject. Les propriétés en lecture seule ne sont pas affectées. Les appels ultérieurs à isset() pour l'objet de données retournera FALSE.

Liste de paramètres

Aucun.

Valeurs de retour

Aucune valeur retournée.


Crée un enfant SDO_DataObject

  • « SDO_DataObject::clear
  • SDO_DataObject::getContainer »
  • PHP Manual
  • Fonctions SDO
  • Crée un enfant SDO_DataObject

SDO_DataObject::createDataObject

(^)

SDO_DataObject::createDataObject — Crée un enfant SDO_DataObject

Description

SDO_DataObject SDO_DataObject::createDataObject ( mixed $identifier )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un enfant SDO_DataObject du type par défaut pour la propriété identifiée. L'objet de données est automatiquement inséré dans l'arbre et une référence l'identifiant est retournée.

Liste de paramètres

identifier

Identifie la propriété pour le type de l'objet de données qui sera créé. Peut être soit un nom (chaîne de caractères), un index (entier) ou un SDO_Model_Property.

Valeurs de retour

Retourne le nouvel SDO_DataObject créé.

Erreurs / Exceptions

SDO_PropertyNotFoundException

Émis si l'identifiant ne correspond pas à une propriété de l'objet de données.


Récupère un conteneur de l'objet de données

  • « SDO_DataObject::createDataObject
  • SDO_DataObject::getSequence »
  • PHP Manual
  • Fonctions SDO
  • Récupère un conteneur de l'objet de données

SDO_DataObject::getContainer

(^)

SDO_DataObject::getContainer — Récupère un conteneur de l'objet de données

Description

SDO_DataObject SDO_DataObject::getContainer ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un objet de données qui contient cet objet de données.

Liste de paramètres

None.

Valeurs de retour

Retourne le SDO_DataObject qui contient ce SDO_DataObject ou retourne NULL s'il s'agit de la racine SDO_DataObject (c'est-à-dire qu'il ne possède pas de conteneur).


Récupère la séquence pour un objet de données

  • « SDO_DataObject::getContainer
  • SDO_DataObject::getTypeName »
  • PHP Manual
  • Fonctions SDO
  • Récupère la séquence pour un objet de données

SDO_DataObject::getSequence

(^)

SDO_DataObject::getSequence — Récupère la séquence pour un objet de données

Description

SDO_Sequence SDO_DataObject::getSequence ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le SDO_Sequence pour ce SDO_DataObject. L'accès à SDO_DataObject à travers de l'interface SDO_Sequence agit sur la même instance SDO_DataObject de données, mais préserve l'ordre à travers les propriétés.

Liste de paramètres

Aucun.

Valeurs de retour

Le SDO_Sequence pour ce SDO_DataObject ou retourne NULL si le SDO_DataObject n'est pas un type que peut avoir une séquence.


Retourne le nom du type d'un objet de données

  • « SDO_DataObject::getSequence
  • SDO_DataObject::getTypeNamespaceURI »
  • PHP Manual
  • Fonctions SDO
  • Retourne le nom du type d'un objet de données

SDO_DataObject::getTypeName

(^)

SDO_DataObject::getTypeName — Retourne le nom du type d'un objet de données

Description

string SDO_DataObject::getTypeName ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le nom du type d'un objet de données. Une méthode plus commode correspondant à SDO_Model_ReflectionDataObject::getType().getName().

Liste de paramètres

Aucun.

Valeurs de retour

Le nom du type d'un objet de données.


Retourne l'espace de nom URI du type d'un objet de données

  • « SDO_DataObject::getTypeName
  • SDO_Exception::getCause »
  • PHP Manual
  • Fonctions SDO
  • Retourne l'espace de nom URI du type d'un objet de données

SDO_DataObject::getTypeNamespaceURI

(^)

SDO_DataObject::getTypeNamespaceURI — Retourne l'espace de nom URI du type d'un objet de données

Description

string SDO_DataObject::getTypeNamespaceURI ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne l'espace de nom URI du type d'un objet de données. Une méthode plus commode correspondant à SDO_Model_ReflectionDataObject::getType().getNamespaceURI().

Liste de paramètres

Aucun.

Valeurs de retour

L'espace de nom URI du type d'un objet de données.


Récupère la cause d'une exception

  • « SDO_DataObject::getTypeNamespaceURI
  • SDO_List::insert »
  • PHP Manual
  • Fonctions SDO
  • Récupère la cause d'une exception

SDO_Exception::getCause

(^)

SDO_Exception::getCause — Récupère la cause d'une exception

Description

mixed SDO_Exception::getCause ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la cause de cette exception ou NULL si la cause est inexistante ou inconnue. Normalement, la cause sera un objet SDO_CPPException, qui peut être utilisé pour obtenir des informations de diagnostique additionnelles.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne la cause de cette exception ou NULL si la cause est inexistante ou inconnue.


Insère dans une liste

  • « SDO_Exception::getCause
  • SDO_Model_Property::getContainingType »
  • PHP Manual
  • Fonctions SDO
  • Insère dans une liste

SDO_List::insert

(^)

SDO_List::insert — Insère dans une liste

Description

void SDO_List::insert ( mixed $value [, int $index ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Insère un nouvel évènement à une position spécifiée dans la liste. Tous les items qui suivent dans la liste sont déplacés vers le haut.

Liste de paramètres

value

La nouvelle valeur à être insérée. Cela peut soit être une primitive ou un SDO_DataObject.

index

La position à laquelle insérer le nouvel évènement. Si cet argument n'est pas spécifié alors la nouvelle valeur sera ajoutée à la suite.

Valeurs de retour

Aucun.

Erreurs / Exceptions

SDO_IndexOutOfBoundsException

Émis si l'index de la liste est inférieur à zéro ou supérieur à sa taille.

SDO_InvalidConversionException

Émis si le type de la nouvelle valeur ne correspond pas avec le type de la liste (par exemple, le type de propriété de valeurs multiples que la liste représente).


Récupère le SDO_Model_Type qui contient cette propriété

  • « SDO_List::insert
  • SDO_Model_Property::getDefault »
  • PHP Manual
  • Fonctions SDO
  • Récupère le SDO_Model_Type qui contient cette propriété

SDO_Model_Property::getContainingType

(^)

SDO_Model_Property::getContainingType — Récupère le SDO_Model_Type qui contient cette propriété

Description

SDO_Model_Type SDO_Model_Property::getContainingType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le SDO_Model_Type qui contient cette propriété.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Type qui contient cette propriété.


Récupère la valeur par défaut pour la propriété

  • « SDO_Model_Property::getContainingType
  • SDO_Model_Property::getName »
  • PHP Manual
  • Fonctions SDO
  • Récupère la valeur par défaut pour la propriété

SDO_Model_Property::getDefault

(^)

SDO_Model_Property::getDefault — Récupère la valeur par défaut pour la propriété

Description

mixed SDO_Model_Property::getDefault ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère la valeur par défaut pour la propriété. Seules les propriétés de type de données primitives peuvent être des valeurs par défaut.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne la valeur par défaut pour la propriété.


Récupère le nom de SDO_Model_Property

  • « SDO_Model_Property::getDefault
  • SDO_Model_Property::getType »
  • PHP Manual
  • Fonctions SDO
  • Récupère le nom de SDO_Model_Property

SDO_Model_Property::getName

(^)

SDO_Model_Property::getName — Récupère le nom de SDO_Model_Property

Description

string SDO_Model_Property::getName ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le nom de SDO_Model_Property.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le nom de SDO_Model_Property.


Récupère le SDO_Model_Type de la propriété

  • « SDO_Model_Property::getName
  • SDO_Model_Property::isContainment »
  • PHP Manual
  • Fonctions SDO
  • Récupère le SDO_Model_Type de la propriété

SDO_Model_Property::getType

(^)

SDO_Model_Property::getType — Récupère le SDO_Model_Type de la propriété

Description

SDO_Model_Type SDO_Model_Property::getType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le SDO_Model_Type de la propriété. Le SDO_Model_Type décrit les informations de type pour la propriété, comme le nom du type, l'espace de nom URI, si c'est un type de données primitive, et ainsi de suite.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Type décrit par les informations de type de la propriété.


Vérifie pour voir si la propriété définit une relation contenue

  • « SDO_Model_Property::getType
  • SDO_Model_Property::isMany »
  • PHP Manual
  • Fonctions SDO
  • Vérifie pour voir si la propriété définit une relation contenue

SDO_Model_Property::isContainment

(^)

SDO_Model_Property::isContainment — Vérifie pour voir si la propriété définit une relation contenue

Description

bool SDO_Model_Property::isContainment ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si la propriété définit une relation contenue. Retourne TRUE si la propriété définit une relation contenue ou FALSE s'il s'agit d'une référence.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si la propriété définit une relation contenue ou FALSE s'il s'agit d'une référence.


Vérifie pour voir si la propriété est de valeurs multiples

  • « SDO_Model_Property::isContainment
  • SDO_Model_ReflectionDataObject::__construct »
  • PHP Manual
  • Fonctions SDO
  • Vérifie pour voir si la propriété est de valeurs multiples

SDO_Model_Property::isMany

(^)

SDO_Model_Property::isMany — Vérifie pour voir si la propriété est de valeurs multiples

Description

bool SDO_Model_Property::isMany ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si la propriété est de valeurs multiples. Retourne TRUE pour voir si la propriété est de valeurs multiples autrement, elle retourne FALSE.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE pour voir si la propriété est de valeurs multiples autrement, elle retourne FALSE.


Construit un SDO_Model_ReflectionDataObject

  • « SDO_Model_Property::isMany
  • SDO_Model_ReflectionDataObject::export »
  • PHP Manual
  • Fonctions SDO
  • Construit un SDO_Model_ReflectionDataObject

SDO_Model_ReflectionDataObject::__construct

(^)

SDO_Model_ReflectionDataObject::__construct — Construit un SDO_Model_ReflectionDataObject

Description

SDO_Model_ReflectionDataObject::__construct ( SDO_DataObject $data_object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Construit un SDO_Model_ReflectionDataObject pour effectuer une réflexion sur un SDO_DataObject. La réflexion sur un objet SDO_DataObject donne accès à des informations à propos de son modèle. Le modèle contient des informations comme le type d'objet de données et si le type de données est en séquence (garde l'ordre des propriétés) ou ouvert (chaque instance peut avoir son modèle étendu). Le modèle contient aussi des informations sur les propriétés de l'objet de données, des valeurs par défaut qu'il peut avoir, et ainsi de suite.

Liste de paramètres

data_object

Le SDO_DataObject sur lequel on effectuera la réflexion.

Valeurs de retour

Aucune.


Récupère une chaîne de caractères décrivant le SDO_DataObject

  • « SDO_Model_ReflectionDataObject::__construct
  • SDO_Model_ReflectionDataObject::getContainmentProperty »
  • PHP Manual
  • Fonctions SDO
  • Récupère une chaîne de caractères décrivant le SDO_DataObject

SDO_Model_ReflectionDataObject::export

(^)

SDO_Model_ReflectionDataObject::export — Récupère une chaîne de caractères décrivant le SDO_DataObject

Description

mixed SDO_Model_ReflectionDataObject::export ( SDO_Model_ReflectionDataObject $rdo [, bool $return ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère une chaîne de caractères décrivant le SDO_DataObject. Le comportement par défaut est d'afficher le résultat, mais si TRUE est spécifié pour return, elle est retourné en tant que chaîne de caractères.

Liste de paramètres

rdo

Un SDO_Model_ReflectionDataObject.

return

Si TRUE, retourne le résultat en tant que chaîne de caractères, autrement l'affiche.

Valeurs de retour

Retourne le résultat si TRUE est spécifié pour return, autrement NULL.


Récupère la propriété qui définit la relation contenue de l'objet de données

  • « SDO_Model_ReflectionDataObject::export
  • SDO_Model_ReflectionDataObject::getInstanceProperties »
  • PHP Manual
  • Fonctions SDO
  • Récupère la propriété qui définit la relation contenue de l'objet de données

SDO_Model_ReflectionDataObject::getContainmentProperty

(^)

SDO_Model_ReflectionDataObject::getContainmentProperty — Récupère la propriété qui définit la relation contenue de l'objet de données

Description

SDO_Model_Property SDO_Model_ReflectionDataObject::getContainmentProperty ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le SDO_Model_Property que contient le SDO_DataObject. Cette méthode est utilisée pour naviguer à travers la propriété du parent qui contient l'objet de données qui a été réfléchi.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Property du conteneur qui référence le SDO_DataObject ou NULL s'il s'agit de la racine SDO_DataObject.


Récupère les propriétés de l'instance de SDO_DataObject

  • « SDO_Model_ReflectionDataObject::getContainmentProperty
  • SDO_Model_ReflectionDataObject::getType »
  • PHP Manual
  • Fonctions SDO
  • Récupère les propriétés de l'instance de SDO_DataObject

SDO_Model_ReflectionDataObject::getInstanceProperties

(^)

SDO_Model_ReflectionDataObject::getInstanceProperties — Récupère les propriétés de l'instance de SDO_DataObject

Description

array SDO_Model_ReflectionDataObject::getInstanceProperties ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère les propriétés de l'instance pour SDO_DataObject. Les propriétés de l'instance consistent en toutes les propriétés définies dans le type de l'objet de données et n'importe quelle propriété d'instance d'un contenu ouvert (si l'objet de données est un type ouvert).

Liste de paramètres

Aucun.

Valeurs de retour

Un tableau d'objets SDO_Model_Property.


Récupère le SDO_Model_Type pour SDO_DataObject

  • « SDO_Model_ReflectionDataObject::getInstanceProperties
  • SDO_Model_Type::getBaseType »
  • PHP Manual
  • Fonctions SDO
  • Récupère le SDO_Model_Type pour SDO_DataObject

SDO_Model_ReflectionDataObject::getType

(^)

SDO_Model_ReflectionDataObject::getType — Récupère le SDO_Model_Type pour SDO_DataObject

Description

SDO_Model_Type SDO_Model_ReflectionDataObject::getType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le SDO_Model_Type pour SDO_DataObject. Le SDO_Model_Type contient toutes les informations à propos du type de l'objet de données, comme l'espace de nom URI, le nom du type, si le type de données est une primitive, et ainsi de suite.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Type pour SDO_DataObject.


Récupère le type de base pour le type

  • « SDO_Model_ReflectionDataObject::getType
  • SDO_Model_Type::getName »
  • PHP Manual
  • Fonctions SDO
  • Récupère le type de base pour le type

SDO_Model_Type::getBaseType

(^)

SDO_Model_Type::getBaseType — Récupère le type de base pour le type

Description

SDO_Model_Type SDO_Model_Type::getBaseType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le type de base pour le type. Retourne le SDO_Model_Type pour le type de base si ce type hérite d'un autre, autrement elle retourne NULL. Un exemple indiquant quand des types de base se produisent est lorsqu'un type défini dans un schéma XML hérite d'un autre en utilisant

<extension base="...">
.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Type pour le type de base si le type hérite d'un autre, autrement elle retourne NULL.


Récupère le nom du type

  • « SDO_Model_Type::getBaseType
  • SDO_Model_Type::getNamespaceURI »
  • PHP Manual
  • Fonctions SDO
  • Récupère le nom du type

SDO_Model_Type::getName

(^)

SDO_Model_Type::getName — Récupère le nom du type

Description

string SDO_Model_Type::getName ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le nom du type. La combinaison du nom du type et de l'espace de nom URI est utilisée pour identifier de manière unique le type.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le nom du type.


Récupère l'espace de nom URI pour le type

  • « SDO_Model_Type::getName
  • SDO_Model_Type::getProperties »
  • PHP Manual
  • Fonctions SDO
  • Récupère l'espace de nom URI pour le type

SDO_Model_Type::getNamespaceURI

(^)

SDO_Model_Type::getNamespaceURI — Récupère l'espace de nom URI pour le type

Description

string SDO_Model_Type::getNamespaceURI ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne l'espace de nom pour le type. La combinaison de l'espace de nom URI et le nom du type est utilisée pour identifier de manière unique le type.

Liste de paramètres

None.

Valeurs de retour

Retourne l'espace de nom URI du type.


Récupère les objets SDO_Model_Property définis pour le type

  • « SDO_Model_Type::getNamespaceURI
  • SDO_Model_Type::getProperty »
  • PHP Manual
  • Fonctions SDO
  • Récupère les objets SDO_Model_Property définis pour le type

SDO_Model_Type::getProperties

(^)

SDO_Model_Type::getProperties — Récupère les objets SDO_Model_Property définis pour le type

Description

array SDO_Model_Type::getProperties ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un tableau des objets SDO_Model_Property décrivant les propriétés définies pour le SDO_Model_Type. Chaque SDO_Model_Property contient des informations comme le nom de la propriété, la valeur par défaut, et ainsi de suite.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne un tableau d'objets SDO_Model_Property.


Récupère un SDO_Model_Property du type

  • « SDO_Model_Type::getProperties
  • SDO_Model_Type::isAbstractType »
  • PHP Manual
  • Fonctions SDO
  • Récupère un SDO_Model_Property du type

SDO_Model_Type::getProperty

(^)

SDO_Model_Type::getProperty — Récupère un SDO_Model_Property du type

Description

SDO_Model_Property SDO_Model_Type::getProperty ( mixed $identifier )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un SDO_Model_Property du type, identifié par son index ou son nom.

Liste de paramètres

identifier

L'index ou un nom.

Valeurs de retour

Retourne le SDO_Model_Property.


Vérifie pour voir si ce SDO_Model_Type est un objet de type abstrait

  • « SDO_Model_Type::getProperty
  • SDO_Model_Type::isDataType »
  • PHP Manual
  • Fonctions SDO
  • Vérifie pour voir si ce SDO_Model_Type est un objet de type abstrait

SDO_Model_Type::isAbstractType

(^)

SDO_Model_Type::isAbstractType — Vérifie pour voir si ce SDO_Model_Type est un objet de type abstrait

Description

bool SDO_Model_Type::isAbstractType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si ce SDO_Model_Type est un objet de type abstrait. Retourne TRUE si le type est abstrait, ce qui signifie, qu'aucun SDO_DataObjet de ce type peut être instancié, par contre, d'autres types peuvent hériter de celui-ci.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si le type est un type abstrait, autrement retourne FALSE.


Vérifie pour voir si le SDO_Model_Type est un type de données primitive

  • « SDO_Model_Type::isAbstractType
  • SDO_Model_Type::isInstance »
  • PHP Manual
  • Fonctions SDO
  • Vérifie pour voir si le SDO_Model_Type est un type de données primitive

SDO_Model_Type::isDataType

(^)

SDO_Model_Type::isDataType — Vérifie pour voir si le SDO_Model_Type est un type de données primitive

Description

bool SDO_Model_Type::isDataType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si ce SDO_Model_Type est un type de données primitive. Retourne TRUE si le type est une primitive, autrement retourne FALSE.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si le type de données est une primitive, autrement retourne FALSE.


Vérifie si un SDO_DataObject est une instance de ce SDO_Model_Type

  • « SDO_Model_Type::isDataType
  • SDO_Model_Type::isOpenType »
  • PHP Manual
  • Fonctions SDO
  • Vérifie si un SDO_DataObject est une instance de ce SDO_Model_Type

SDO_Model_Type::isInstance

(^)

SDO_Model_Type::isInstance — Vérifie si un SDO_DataObject est une instance de ce SDO_Model_Type

Description

bool SDO_Model_Type::isInstance ( SDO_DataObject $data_object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie si un SDO_DataObject est une instance de ce SDO_Model_Type. Retourne TRUE si le SDO_DataObject fourni est une instance de ce SDO_Model_Type ou un type déviré, autrement retourne FALSE.

Liste de paramètres

data_object

Le SDO_DataObject à être testé.

Valeurs de retour

Retourne TRUE si le SDO_DataObject fourni est une instance de ce SDO_Model_Type ou un type dérivé, autrement retourne FALSE.


Vérifie pour voir si le type est un type ouvert

  • « SDO_Model_Type::isInstance
  • SDO_Model_Type::isSequencedType »
  • PHP Manual
  • Fonctions SDO
  • Vérifie pour voir si le type est un type ouvert

SDO_Model_Type::isOpenType

(^)

SDO_Model_Type::isOpenType — Vérifie pour voir si le type est un type ouvert

Description

bool SDO_Model_Type::isOpenType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si le type est un type ouvert. Retourne TRUE si le type est ouvert, autrement retourne FALSE. Un SDO_DataObject dont le type est ouvert peut avoir des propriétés ajoutées qui ne sont pas décrites par ce type. Cette capacité est utilisée pour supporter le travail avec les documents XML dont le schéma supporte les contenus ouvert, comme définis par l'élément

<xsd:any>
.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si le type est ouvert, autrement retourne FALSE.


Vérifie pour voir si le type est une séquence

  • « SDO_Model_Type::isOpenType
  • SDO_Sequence::getProperty »
  • PHP Manual
  • Fonctions SDO
  • Vérifie pour voir si le type est une séquence

SDO_Model_Type::isSequencedType

(^)

SDO_Model_Type::isSequencedType — Vérifie pour voir si le type est une séquence

Description

bool SDO_Model_Type::isSequencedType ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si le type est une séquence. Retourne TRUE si le type est une séquence, autrement retourne FALSE. Les types de séquence peuvent avoir des propriétés dont l'ordre est préservé et peut contenir du texte non structuré. Pour plus d'informations sur les types de séquence, voyez la section sur Travailler avec des Objets de Données Séquencés.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si le type est une séquence, autrement retourne FALSE.


Retourne la propriété pour l'index de séquence spécifié

  • « SDO_Model_Type::isSequencedType
  • SDO_Sequence::insert »
  • PHP Manual
  • Fonctions SDO
  • Retourne la propriété pour l'index de séquence spécifié

SDO_Sequence::getProperty

(^)

SDO_Sequence::getProperty — Retourne la propriété pour l'index de séquence spécifié

Description

SDO_Model_Property SDO_Sequence::getProperty ( int $sequence_index )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la propriété pour l'index de séquence spécifié.

Liste de paramètres

sequence_index

La position de l'élément dans la séquence.

Valeurs de retour

Un SDO_Model_Property. Une valeur de retour NULL signifie que l'élément de séquence n'appartient pas à une propriété et doit donc être un texte non structuré.

Erreurs / Exceptions

SDO_IndexOutOfBoundsException

Émis si l'index de séquence est inférieur à zéro ou supérieur à la taille de la séquence.


Ajoute dans une séquence

  • « SDO_Sequence::getProperty
  • SDO_Sequence::move »
  • PHP Manual
  • Fonctions SDO
  • Ajoute dans une séquence

SDO_Sequence::insert

(^)

SDO_Sequence::insert — Ajoute dans une séquence

Description

void SDO_Sequence::insert ( mixed $value [, int $sequenceIndex [, mixed $propertyIdentifier ]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Insère un nouvel élément à une position spécifiée dans la séquence. Tous les items de la séquence suivant sont déplacés vers le haut.

Liste de paramètres

value

La nouvelle valeur à être insérée. Cela peut être soit une primitive soit un SDO_DataObject.

sequenceIndex

La position à laquelle il faut insérer le nouvel élément. La valeur par défaut est NULL, ainsi la nouvelle valeur sera ajoutée à la suite de la séquence.

propertyIdentifier

Soit une propriété index, name ou un SDO_Model_Property, utilisé pour identifier une propriété dans la séquence correspondant à SDO_DataObject. Une valeur de NULL signifie un texte non structuré.

Valeurs de retour

Aucune.

Erreurs / Exceptions

SDO_IndexOutOfBoundsException

Émis si l'index de la séquence est inférieur à zéro ou supérieur à la taille de la séquence.

SDO_InvalidConversionException

Émis si le type de la nouvelle valeur ne correspond pas avec le type pour la propriété de l'objet de données spécifié.


Déplace un item à une autre position de la séquence

  • « SDO_Sequence::insert
  • SDO-DAS-Relational »
  • PHP Manual
  • Fonctions SDO
  • Déplace un item à une autre position de la séquence

SDO_Sequence::move

(^)

SDO_Sequence::move — Déplace un item à une autre position de la séquence

Description

void SDO_Sequence::move ( int $toIndex, int $fromIndex )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Modifie la position d'un item dans la séquence, sans altérer la valeur de la propriété dans le SDO_DataObject.

Liste de paramètres

toIndex

L'index de destination de la séquence. Si l'index est inférieur à zéro ou supérieur à la taille de la séquence, la valeur est ajoutée à celle-ci.

fromIndex

L'index source de la séquence.

Valeurs de retour

Aucune.

Erreurs / Exceptions

SDO_IndexOutOfBoundsException

Émis si l'index de la séquence fromIndex est inférieur à zéro ou supérieur à la taille de la séquence.


SDO Relationnel Service d'Accès de Données

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Création, récupération, mise à jour et effacement de données
    • Spécification des métadonnées
    • Exemples avec une table
    • Exemples avec deux tables
    • Exemple avec trois tables
  • Limitations
  • Fonctions SDO-DAS-Relational
    • SDO_DAS_Relational::applyChanges — Applique les changements effectués au graphique de données à la base de données
    • SDO_DAS_Relational::__construct — Construit une instance de DAS Relationnel
    • SDO_DAS_Relational::createRootDataObject — Retourne un objet racine spécial d'un graphique de données vide. Utilisé lors de la création d'un graphique de données à partir de zéro
    • SDO_DAS_Relational::executePreparedQuery — Exécute une requête SQL passée comme requête préparée, avec une liste de valeurs à substituer pour les paramètres fictifs, et retourne les résultats comme un graphique de données normalisé.
    • SDO_DAS_Relational::executeQuery — Exécute une requête SQL donnée à une base de données relationnelle et retourne les résultats comme graphique de données normalisé.


Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Afin d'utiliser le Service d'Accès de Données Relationnel pour les Objets de Service de Données, vous devrez comprendre certains concepts derrière le SDO : le graphique de données, l'objet de données, le moyen de déconnexion pour travailler, le changement du sommaire, les expressions XPath et les propriétés, et ainsi de suite. Si vous n'êtes pas familier avec ses idées, vous devriez regarder en premier à la section sur le SDO. De plus, le DAS Relationnel utilise l'extension SDO pour s'isoler des communications spécifiques aux bases de données. Afin d'utiliser le DAS Relationnel, vous devrez être capable de créer et passer une connexion de base de données PDO; pour cette raison, vous devrez aussi regarder la section sur le PDO.

Le travail de DAS Relationnel est de déplacer les données entre les applications et une base de données relationnelle. Afin de faire cela, vous devez dire quelle sorte de données vont être transférées entre les entités de base de données - tables, colonnes, clés primaires et clés étrangères - et les éléments de modèle SDO - types, propriétés, relations de retenue et ainsi de suite. Vous spécifiez ces informations comme des métadonnées lorsque vous construisez le DAS Relationnel.

Vue d'ensemble des Opérations

  1. La première étape est d'appeler le constructeur de DAS Relationnel, en lui passant les métadonnées qui définissent les relations entre la base de données et le modèle SDO. Il y a des exemples plus bas.

  2. L'étape suivante devrait être l'appel des méthodes executeQuery() ou executePreparedQuery() sur le DAS Relationnel, en leur passant soit une requête SQL littérale pour le DAS pour préparer et exécuter ou une requête préparée avec des paramètres fictifs et une liste des valeurs à être insérées. Vous pouvez aussi avoir besoin de spécifier un peu de métadonnées à propos de la requête, ainsi le DAS Relationnel saura exactement quelles colonnes seront retournées de la base de données et dans quel ordre. Vous devez aussi passer une connexion de base de données PDO.

    La valeur de retour de executeQuery() ou executePreparedQuery() est un graphique de données normalisé contenant toutes les données du jeu de résultats. Pour une requête qui retourne les données obtenues à partir de plusieurs tables, ce graphique contiendra plusieurs objets de données, liés avec les relations SDO contenues. Il pourrait aussi y avoir des données de références qui ne sont pas de contenues Ã l'intérieur des données.

    Une fois que la requête a été exécutée et le graphique de données construit, il n'est pas nécessaire pour l'instance de DAS Relationnel ou pour la connexion de base de données. Il n'y a pas de verrou gardé sur la base de données. Le DAS Relationnel et la connexion de base de données PDO peuvent être tous deux passés au ramasse miettes.

  3. Il est probable que les données dans le graphique de données passent par plusieurs modifications. Le graphique de données peut être sérialisé dans une session PHP et ainsi peut avoir une vie au-delà d'une interaction client-serveur. Les objets de données peuvent être créés et ajoutés au graphique, les objets de données déjà dans le graphique peuvent être supprimés et les objets de données dans le graphique peuvent être modifiés.

  4. Enfin, les changements effectués sur le graphique de données peuvent être appliqués à la base de donnés en utilisant la méthode applyChanges() de DAS Relationnel. Pour cela, une autre instance de DAS Relationnel doit être construite, en utilisant les mêmes métadonnées, et une autre connexion à la base de données obtenue. La connexion et le graphique de données sont passés à applyChanges(). Ã? ce point, le DAS Relationnel examine les changements et génère les requêtes SQL INSERT, UPDATE et DELETE nécessaires pour appliquer les changements. Toutes les requêtes UPDATE et DELETE sont qualifiées avec les valeurs originales des données, donc il se peut que les données aillent changées dans la base de données en attendant que les données soient détectées. En assumant qu'aucune collision de ce type ne s'est produite, les changements seront envoyés à la base de données. L'application peut alors continuer à travailler avec le graphique de données, effectuer d'autres changements et les appliquer, ou peut le jeter.

Il y a d'autres moyens de travailler avec les données dans la base de données : il est possible de créer simplement les objets de données et les écrire à la base de données sans effectuer d'appel préliminaire à executeQuery(), par exemple. Ce scénario et les autres sont explorés dans les exemples de la section plus bas.


Pré-requis

Le DAS Relationnel requiert que l'extension SDO soit installée. L'extension SDO requiert une version de PHP 5.1 et le DAS Relationnel requiert une version récente qui contient une mise à jour importante de PDO. Les informations les plus à jours à propos des niveaux requis de PHP devrait être trouvées dans le changelog pour ce paquetage sur PECL. Au moment que nous écrivons cette documentation, le DAS Relationnel requiert le plus récent niveau de bêta de PHP 5.1, qui est PHP 5.1.0.

Le DAS Relationnel utilise le PDO pour accéder à une base de données relationnelle et devrait fonctionner avec une variété différente de bases de données. Au moment que nous écrivons cette documentation, cela a été testé avec les configurations suivantes

  • MySQL 4.1.14, sur Windows. Le DAS Relationnel opère correctement avec le pilote php_pdo_mysql qui vient avec les programmes préconfigurés de PHP 5.1.0.

  • MySQL 4.1.13, sur Linux. Il est nécessaire d'avoir le plus récent pilote de PDO pour MySQL, qui vient avec un PHP. 5.1.0. Il se peut qu'il soit nécessaire de désinstaller les pilotes utilisés qui seraient venus de PECL en utilisant pear uninstall pdo_mysql. Vous devrez configurer votre PHP avec l'option --with-pdo-mysql.

  • DB2 8.2 Édition Personnelle, sur Windows. Le DAS Relationnel opère correctement avec le pilote php_pdo_odbc qui vient avec les programmes préconfigurés binaires de PHP 5.1.0.

  • DB2 8.2 Édition Personnelle de Développeur, sur Linux. L'édition e Développeur est requise puisqu'elle contient les fichiers d'inclusion requis lorsque PHP est configuré et bâti. Vous devrez configurer PHP avec l'option --with-pdo-odbc=ibm-db2.

Le DAS Relationnel applique les changements à la base de données à l'intérieur de transactions délimitées par l'utilisateur : cela appel la méthode PDO::beginTransaction() avant de commencer à appliquer les changements et PDO::commit() ou PDO::rollback() lorsque c'est complété. Peu importe la base de données qui est choisie, la base de données et le pilote PDO pour cette base de données doivent supporter ces appels.


Installation

Les instructions d'installation pour tous les composants SDO sont dans la section d'installation de la documentation SDO.

Dans tous les cas, les faits essentiels sont que le DAS Relationnel est écrit en PHP et devrait être placé quelque part dans le include_path de PHP.

Votre application devra bien sur inclure le DAS Relationnel avec une ligne comme cela :

<?php
require_once 'SDO/DAS/Relational.php';
?>


Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Suivi

Vous pouvez être intéressé de voir les requêtes SQL qui sont générées afin d'appliquer les changements à la base de données. Dans le haut du fichier SDO/DAS/Relational.php, vous trouvez un certain nombre de constantes qui contrôle si le processus de construction et d'exécution des requêtes SQL doivent être suivies. Essayez la configuration DEBUG_EXECUTE_PLAN à TRUE pour voir les requêtes SQL générées.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Le DAS Relationnel n'introduit aucune constante prédéfinie.


Exemples

Sommaire

  • Création, récupération, mise à jour et effacement de données
  • Spécification des métadonnées
  • Exemples avec une table
  • Exemples avec deux tables
  • Exemple avec trois tables


Création, récupération, mise à jour et effacement de données

Cette section illustre comment le DAS Relationnel peut être utilisé pour créer, récupérer, mettre à jour et supprimer des données dans une base de données relationnelle. Plusieurs de ces exemples sont illustrés avec trois tables dans une base de données qui contient "compagnies", "departements" à l'intérieur de ces compagnies et "employes" qui travaillent dans ces départements. Cet exemple est utilisé dans plusieurs places dans la littérature SDO. Voyez la section des exemples de » spécification d'Objets de Service de Données ou la section d'exemples de la documentation de l'extension SDO.

Le DAS Relationnel est construit avec les métadonnées qui définissent la base de données relationnelle et comment il devrait être en relation avec le SDO. La longue section qui suit décrit ces métadonnées et comment construire le DAS Relationnel. Ces exemples qui suivent assument tous que ces métadonnées sont incluses dans un fichier PHP.

Les exemples ci-dessous et les autres peuvent être trouvés dans le dossier Scenarios dans le paquetage DAS Relationnel.

Le DAS Relationnel émet des exceptions dans le cas qu'il trouve des erreurs dans les métadonnées ou des erreurs lors de l'exécution des requêtes SQL à la base de données. Pour rendre les exemples plus concis, ils n'incluent pas les blocs try/catch autour des appels de DAS Relationnel.

Ces exemples diffèrent tous de l'utilisation prévue de SDO dans deux égards importants.

Premièrement, ils montrent toutes les interactions avec la base de données complétés dans un script. Ces scénarios ne sont pas réalistes mais sont choisis dans le but d'illustrer simplement l'utilisation de DAS Relationnel. Il est prévu que les interactions avec la base de données soient séparés dans le temps et le graphique de données linéarisées et délinéarisées dans une session PHP une ou plusieurs fois tant que l'application interagit avec l'utilisateur final.

Deuxièmement, toutes les requêtes exécutées sur la base de données sont figées dans le code sans aucune substitution de variable. Dans ce cas, il est plus sage d'utiliser le simple appel de executeQuery() et c'est ce que montrent les exemples. En pratique, il est peu probable que la requête SQL soit connue entièrement avant son exécution. Afin d'autoriser la substitution sans danger des variables dans les requêtes SQL, sans prendre le risque d'effectuer des injections SQL avec des effets inconnus, il est plus sécuritaire d'utiliser executePreparedQuery() qui prend une requête SQL préparée contenant des paramètres fictifs et une liste des valeurs à être substituées.


Spécification des métadonnées

La première longue section décrit en détail comment les métadonnées décrivant la base de données et le modèle SDO requis est fourni à DAS Relationnel.

Lorsque le constructeur de DAS Relationnel est appelé, il doit recevoir plusieurs informations. La majeure partie des informations, passée en tant qu'un tableau associatif dans le premier argument du constructeur, dit à DAS Relationnel ce qu'il doit savoir à propos de la base de données relationnelle. Il décrit les noms des tables, des colonnes, des clés primaires et des clés secondaires. On devrait comprendre assez facilement ce qui est requis et une fois écrit, il peut être placé dans un fichier PHP et inclut lorsque nécessaire. Le reste des informations, passé dans un deuxième et troisième arguments du constructeur, dit au DAS Relationnel ce qu'il doit savoir à propos des relations entre les objets et la forme du graphique de données; il détermine finalement comment les données de la base de données seront normalisées dans le graphique.

Métadonnées de base de données

Le premier argument du constructeur décrit la base de données relationnelle cible.

Chaque table est décrite par un tableau associatif avec jusqu'à quatre clés.

Clé | Valeur
name | Le nom de la table.
columns | Un tableau listant les noms des colonnes, dans n'importe quel ordre.
PK | Le nom de la colonne contenant la clé primaire.
FK | Un tableau avec deux entrées, "from" et "to" (provenance et destination), qui définissent une colonne contenant la clé étrangère et une table dans lequel la clé étrangère pointe. S'il n'y a pas de clé étrangère dans la table, alors l'entrée "FK" est optionnelle. Seulement une clé étrangère peut être spécifiée. Seulement une clé étrangère pointant à une clé primaire d'une table peut être spécifiée.

<?php
/*****************************************************************
* MÉTADONNÉES DÉFINISSANT LA BASE DE DONNÉES
******************************************************************/
$company_table = array (
  'name' => 'company',
  'columns' => array('id', 'name',  'employee_of_the_month'),
  'PK' => 'id',
  'FK' => array (
      'from' => 'employee_of_the_month',
      'to' => 'employee',
      ),
  );
$department_table = array (
  'name' => 'department',
  'columns' => array('id', 'name', 'location', 'number', 'co_id'),
  'PK' => 'id',
  'FK' => array (
      'from' => 'co_id',
      'to' => 'company',
      )
  );
$employee_table = array (
  'name' => 'employee',
  'columns' => array('id', 'name', 'SN', 'manager', 'dept_id'),
  'PK' => 'id',
  'FK' => array (
      'from' => 'dept_id',
      'to' => 'department',
      )
  );
$database_metadata = array($company_table, $department_table, $employee_table);
?>

Les métadonnées correspondent à une base de données relationnelle qui peut avoir été définie comme étant MySQL :

create table company (
 id integer auto_increment,
 name char(20),
 employee_of_the_month integer,
 primary key(id)
);
create table department (
 id integer auto_increment,
 name char(20),
 location char(10),
 number integer(3),
 co_id integer,
 primary key(id)
);
create table employee (
 id integer auto_increment,
 name char(20),
 SN char(4),
 manager tinyint(1),
 dept_id integer,
 primary key(id)
);

or to DB2 as:

create table company ( \
  id integer not null generated by default as identity,  \
  name varchar(20), \
  employee_of_the_month integer, \
  primary key(id) )
create table department ( \
  id integer not null generated by default as identity, \
  name varchar(20), \
  location varchar(10), \
  number integer, \
  co_id integer, \
  primary key(id) )
create table employee ( \
  id integer not null generated by default as identity, \
  name varchar(20), \
  SN char(4), \
  manager smallint, \
  dept_id integer, \
  primary key(id) )

Notez que bien que dans cet exemple n'a pas de clé étrangère de spécifiée à la base de données et que la base de données n'est pas prévue à forcer l'intégrité référentielle, l'intention derrière la colonne co_id de la table departement et la colonne dept_id de la table employe est qu'elles pourraient contenir la clé primaire de leur compagnie les contenant ou l'enregistrement du département, respectivement. Alors ces deux colonnes actent comme des clés étrangères.

Il y a une troisième clé étrangère dans cet exemple, elle est de la colonne employe_du_mois de la table compagnie qui est compris dans une ligne de la table employe. Notez la différence dans l'intention entre cette clé étrangère et les deux autres. La colonne employe_du_mois représente une relation de valeurs simples : il peut y avoir seulement un employé du moi pour une compagnie donnée. Les colonnes co_id dept_id représentent des relations de valeurs multiples : une compagnie peut contenir plusieurs département et un département peut contenir beaucoup d'employés. Cette distinction deviendra évidente lorsque le reste des métadonnées sélectionne les relations entre la compagnie-département et le département-employé comme étant une relation contenue.

Il y a un peu de règles simples qui doivent être suivies lorsque l'on construit les métadonnées de base de données :

  • Toutes les tables doivent avoir des clés primaires et les clés primaires doivent être spécifiées dans les métadonnées. Sans clés primaires, il n'est pas possible de garder une trace des identités des objets. Comme vous pouvez le voir avec les requête SQL qui créent les tables, les clés primaires peuvent être générées automatiquement, ce qui signifie, qu'elles sont générées et assignées par la base de données lorsque l'enregistrement est inséré. Dans ce cas, la clé primaire générée automatiquement est obtenue de la base de données et insérées dans l'objet de données immédiatement après que la ligne soit insérée dans la base de données.

  • Il n'est pas nécessaire de spécifier les métadonnées de toutes les colonnes qui existent dans la base de données, seulement celles qui seront utilisées. Par exemple, si la table compagnie avait un autre colonne que l'application ne souhaite pas accéder avec SDO, il n'est pas nécessaire de la spécifiée dans les métadonnées. En contrepartie, cela ne devrait pas causer de problème de la spécifier : si elle est spécifiée dans les métadonnées mais jamais récupérée ou assignée par l'application, alors la colonne inutilisée ne devrait rien affecter.

  • Dans les métadonnées de base de données, notez que les définitions des clés étrangères n'identifient pas la colonne de destination dans la table qui est pointée, mais le nom de la table elle-même. Strictement, le modèle relationnel permet la destination d'une clé étrangère à être une clé non primaire. Seules les clés étrangères qui pointent à une clé primaire sont utiles pour la construction du modèle SDO, puisque les métadonnées spécifient le nom de la table. Il est entendu que la clé étrangère pointe vers la clé primaire d'une table donnée.

Ayant donné ces règles et les requêtes SQL qui définissent les bases de données, les métadonnées de base de données devrait être faciles à construire.

Que fait DAS Relationnel avec ces métadonnées

Le DAS Relationnel utilise les métadonnées de base de données pour former la plupart des modèles SDO. Pour chaque table dans les métadonnées de base de données, un type SDO est défini. Chaque colonne qui peut représenter une valeur primitive (les colonnes qui ne sont pas définies comme étant des clés étrangères) est ajoutée comme propriété au type SDO.

Toutes les propriétés primitives sont données par un type de chaîne de caractères dans le modèle SDO, sans se soucier de leur type SQL. Lors de la ré-écriture des données dans la base de données, le DAS Relationnel créera une requête SQL qui traitera les valeurs comme étant des chaînes de caractères et la base de données les convertira dans le type approprié.

Les clés étrangères sont interprétées de une des deux manières, dépendamment des métadonnées contenues dans le troisième argument du constructeur qui définissent les relations de SDO contenues. Une discussion de cela est donc reportée dans la section relations SDO contenues ci-dessous.

Spécification du type de racine de l'application

Le second argument du constructeur est l'application du type de racine. La vraie racine de chaque graphique de données est un objet d'un type de racine spécial et tous les objets de données des applications viennent quelque part sous cela. De la plupart des types d'application dans le modèle SDO, une doit être le type d'application immédiatement sous la racine du graphique de données. S'il y a seulement une table dans les métadonnées de base de données, le type de racine de l'application peut être impliqué et cet argument peut être omis.

Spécification des relations SDO contenues

Le troisième argument du constructeur définit comment les types dans le modèle seront liés ensemble pour former un graphique. Cela identifie les relations parent-enfant entre les types qui collectivement forment un graphique. Les relations doivent être supportées par les clés étrangères pour être trouvées dans les données, d'une manière rapide d'être décrit.

Les métadonnées sont un tableau contenant un ou plusieurs tableaux associatifs, chacun d'eux identifie un parent et un enfant. L'exemple ci-dessous montre une relation parent-enfant de compagnie au département et un autre du département aux employés. Chacune d'elles deviendra un propriété définissant une relation de valeur multiples contenue dans un modèle SDO.

<?php
$department_containment = array( 'parent' => 'company', 'child' => 'department');
$employee_containment = array( 'parent' => 'department', 'child' => 'employee');

$SDO_containment_metadata = array($department_containment, $employee_containment);
?>

Les clés étrangères dans les métadonnées de base de données sont interprétées comme des propriétés avec soit des relations de valeurs multiples contenues ou des références de simples valeurs non contenues, dépendamment si elles ont une relation SDO contenue correspondante spécifiée dans les métadonnées. Dans cet exemple ici, les clés étrangères du département à la compagnie (la colonne co_id dans la table de departement) et de l'employé au département (la colonne dept_id dans la table employe) sont interprétées comme supportant les relations SDO contenues. Chaque référence contenue mentionnée dans les métadonnées de relations contenue de SDO doit avoir une clé correspondante présente dans la base de données et définie dans les métadonnées de base de données. Les valeurs des colonnes de la clé étrangère pour les relations contenues n'apparaissent pas dans les objets de données; à la place, chacune d'entre elles est représentée par une relation contenue du parent à l'enfant. Alors la colonne co_id dans la ligne de département de la base de données, par exemple, n'apparaît pas en tant que propriété du type de département, mais apparaît à la place comme une relation contenue appelée departname sur le type de compagnie. Notez que la clé étrangère et la relation parent-enfant semble avoir un sens opposé : la clé étrangère pointe du département à la compagnie, mais la relation parent-enfant pointe de la compagnie au département.

La troisième clé dans cet exemple, le employe_du_mois, est gérée différemment. Elle n'est pas mentionnée dans les métadonnées de relations SDO contenues. Ceci a pour conséquence d'être interprété de la seconde manière : elle devient une référence de valeur simple non contenue sur l'objet compagnie, sur lequel vous pouvez assigner des références au type d'employé d'objets de données SDO. Elle apparaît comme une propriété du type de compagnie. Le moyen pour lui assigner une valeur dans le graphique de données est d'avoir un graphique qui contient un objet employé avec les relations contenues et d'assigner l'objet à celui-ci. Ceci est montré dans les exemples plus loin.


Exemples avec une table

Les exemples suivants utilisent tous le DAS Relationnel pour travailler avec un graphique de données contenant juste un objet de données d'application, une seule compagnie et les données qui seront dans la table compagnie. Ces exemples ne montre pas le pouvoir de SDO ou de DAS Relationnel et bien sûr les mêmes résultats peuvent être atteints plus économiquement à l'aide de requêtes SQL directes mais ces exemples sont pour vous montrer comment fonctionne le DAS Relationnel.

Pour ce simple scénario, il serait possible de simplifier les métadonnées de base de données pour inclure juste la table de compagnie - si cela était fait, le deuxième et troisième argument du constructeur et le spécificateur de colonne utilisé dans l'exemple de requête deviendrait optionnel.

Exemple #1 Création d'un objet de données

Le plus simple exemple est de créer un objet de données simple et de l'écrire à la base de données. Dans cet exemple, un objet simple de compagnie est créé, son nom est fixé à "Acme" et le DAS Relationnel est appelé pour écrire les changements à la base de données. Le nom de la compagnie est fixé ici en utilisant la méthode de propriété de nom. Voyez la section d'exemples sur l'extension SDO pour d'autres moyens d'accéder au propriétés d'un objet.

Les objets de données peuvent seulement être créés lorsque vous avez un objet de données au démarrage. C'est pour cette raison que le premier appel à DAS Relationnel ici est pour obtenir l'objet racine. C'est en effet comment demander pour un graphique de données vide - l'objet de racine spécial est la vrai racine de l'arbre. L'objet de données compagnie est alors créé avec l'appel à createDataObject() sur l'objet racine. Ceci crée l'objet de données compagnie et l'insère dans le graphique en insérant une propriété de valeurs multiples contenue dans l'objet racine appelé "compagnie".

Lorsque DAS Relationnel est appelé pour effectuer les changements, une simple requête d'insertion "INSERT INTO compagnie (nom} VALUES ("Acme");" sera construite et exécutée. La clé primaire générée automatiquement sera fixée dans l'objet de données et le changement sera effacé, alors il serait possible de continuer de travailler avec le même objet de données, le modifier, et applique les nouveaux changements une deuxième fois.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les métadonnées
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

/**************************************************************
 * Obtient l'objet racine et crée un objet compagnie dessous.
 * Effectue un petit changement à l'objet de données.
 ***************************************************************/
$root = $das  -> createRootDataObject();
$acme = $root -> createDataObject('compagnie');

$acme->name = "Acme";

/**************************************************************
 * Récupère la connexion à la base de données et écrit l'objet à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das -> applyChanges($dbh, $root);
?>

Exemple #2 Récupération d'un objet de données

Dans cet exemple, un simple objet de données est récupéré de la base de données - ou possiblement plus d'un s'il y avait plus d'une compagnie qui était appelée "Acme". Pour chaque compagnie retournée, les propriétés nom et id sont affichées.

Dans cet exemple, le troisième argument de executeQuery(), le spécificateur de colonne est requis puisqu'il y a d'autres tables dans les métadonnées avec le nom de colonne nom et id. S'il n'y avait pas d'ambiguïté possible, il aurait pu être omis.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les métadonnées
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

/**************************************************************
 * Récupère la connexion à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Effectue une requête pour obtenir un objet compagnie - possiblement
 * plusieurs s'ils existent
 ***************************************************************/
$root = $das->executeQuery($dbh,
           'select nom, id from compagnie where nom="Acme"',
                        array('compagnie.nom', 'compagnie.id') );

/**************************************************************
 * Affiche le nom et le id
 ***************************************************************/
foreach ($root['compagnie'] as $compagnie) {
    echo "La compagnie obtenue de la base de données a le nom = " .
    $compagnie['nom'] . " et un id " . $compagnie['id'] . "\n";
}
?>

Exemple #3 Mise à jour d'objet de données

Cet exemple combine les deux précédent, dans le sens que pour être mis à jour, l'objet doit être premièrement récupéré. L'application renverse le nom de compagnie (alors "Acme" devient "emcA") et alors les changements sont écrits à la base de données de la même manière qu'ils étaient lorsque l'objet avait été créé. Puisque la requête cherche pour le nom, on peut chercher des deux manières le nom à plusieurs reprises pour trouver la compagnie et renverser son nom chaque fois.

Dans cet exemple, la même instance de DAS Relationnel est réutilisée pour applyChanges(), avec le descripteur de base de données PDO. Ceci est tout à fait correcte; il est aussi possible d'autoriser les instances précédentes d'être ramassées par le ramasse-miettes et d'obtenir de nouvelles instances. Aucune données d'état concernant le graphique n'est tenue par le DAS Relationnel une fois qu'il a retourné un graphique de données à l'application. Toutes les données nécessaires sont soit dans le graphique ou peuvent être reconstruites à partir des métadonnées.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les métadonnées
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

/**************************************************************
 * Récupère la connexion à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Effectue une requête pour obtenir un objet compagnie - possiblement
 * plusieurs s'ils existent
 ***************************************************************/
$root = $das->executeQuery($dbh,
    'select nom, id from compagnie where nom="Acme" or nom="emcA"',
    array('compagnie.nom', 'compagnie.id') );

/**************************************************************
 * Modifie le nom de la première compagnie seulement
 ***************************************************************/
$compagnie = $root['compagnie'][0];
echo "Compagnie obtenue avec le nom " . $compagnie->nom . "\n";
$compagnie->nom = strrev($compagnie->nom);

/**************************************************************
 * Écriture du changement
 ***************************************************************/
$das->applyChanges($dbh,$root);
?>

Exemple #4 Suppression d'un objet de données

Toutes compagnies appelées "Acme" ou son inverse "emcA" sont récupérées. Elles sont ensuite toutes supprimées du graphique avec unset.

Dans l'exemple, elles sont toutes supprimées en un seul coup en supprimant la propriété contenue (la propriété définissant la relation contenue). Il est aussi possible de les supprimer individuellement.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les métadonnées
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

/**************************************************************
 * Récupère la connexion à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Effectue une requête pour obtenir un objet compagnie - possiblement
 * plusieurs s'ils existent
 ***************************************************************/
$root = $das->executeQuery($dbh,
    'select nom, id from compagnie where nom="Acme" or nom="emcA"',
    array('company.name', 'company.id') );

/**************************************************************
 * Supprime les compagnies trouvées du graphique de données
 ***************************************************************/
unset($root['compagnie']);

/**************************************************************
 * Écrit le(s) changement(s)
 ***************************************************************/
$das->applyChanges($dbh,$root);
?>


Exemples avec deux tables

Les exemples suivants utilisent tous deux tables de la base de données compagnie : les tables compagnie et departement. Ces exemples montrent plus le fonctionnement de DAS Relationnel.

Dans cette série d'exemples, une compagnie et un département son créé, récupéré, mis à jour et finalement supprimé. Ceci montre le cycle de vie pour un graphique de données contenant plus d'un objet. Notez que cet exemple vide les tables compagnie et departement au démarrage, ainsi les résultats exacts des requêtes peuvent être connus.

Vous pouvez trouvez ces exemples combinés dans un script appelé 1cd-CRUD dans le répertoire Scenarios du paquetage DAS Relationnel.

Exemple #1 Une compagnie, un département - Création

Comme dans l'exemple précédent où l'on créait juste un objet de données de compagnie, la première action après la construction du DAS Relationnel est d'appeler createRootDataObject() pour obtenir l'objet racine spécial du graphique de données vide. L'objet compagnie est alors créé en tant que fils de cet objet racine, et l'objet departement en tant que fils de l'objet compagnie.

Lorsqu'il est venu le temps d'appliquer les changements, le DAS Relationnel doit effectuer des traitements spéciaux pour maintenir la clé étrangère qui supporte les relations contenues, en particulier si une clé primaire générée automatiquement est en jeu. Dans cet exemple, les relations entre la clé primaire générée automatiquement id dans la table compagnie et la colonne co_id dans la table departement doivent être maintenues. Lors de l'insertion de la compagnie et du département pour la première fois, le DAS Relationnel doit premièrement insérer une ligne de compagnie, ensuite appeler la méthode de PDO getLastInsertId() pour obtenir la clé primaire générée automatiquement, et ensuite ajouter la valeur à la colonne co_id lors de l'insertion de la ligne departement.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Vidage des deux tables
*************************************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$pdo_stmt = $dbh->prepare('DELETE FROM COMPAGNIE;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM DEPARTEMENT;');
$rows_affected = $pdo_stmt->execute();

/**************************************************************
* Crée une compagnie avec le nom Acme et un département, département de Chaussure
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

$root = $das -> createRootDataObject();

$acme = $root -> createDataObject('compagnie');
$acme -> nom = "Acme";

$chaussure = $acme->createDataObject('departement');
$chaussure->nom = 'Chaussure';

$das -> applyChanges($dbh, $root);

?>

Exemple #2 Une compagnie, un département - Récupération et Mise à jour

Dans ce cas, la requête SQL passé à executeQuery() exécute un inner join pour joindre les données des tables compagnie et departement. Les clés primaires pour les tables compagnie et departement doivent être incluses dans la requête. Le jeu de résultats est normalisé de nouveau pour former un graphique de données normalisé. Notez que le spécificateur de colonne est passé en troisième argument de l'appel executeQuery() qui autorise DAS Relationnel de savoir quelle colonne est laquelle dans le jeu de résultats.

Notez que la colonne co_id bien qu'utilisée dans la requête n'est pas requis dans le jeu de résultats. Afin de comprendre que fait DAS Relationnel lorsqu'il construit le graphique de données, il peut être utile de visualiser à quoi ressemble les jeu de résultats. Bien que les données dans la base de données sont normalisée, alors plusieurs lignes de département peuvent pointer vers la clé étrangère d'une ligne de compagnie, les données dans le jeu de résultats sont non-normalisée : c'est, s'il y a une compagnie et de multiples département, les valeurs pour la compagnie qui sont répétées à chaque ligne. Le DAS Relationnel doit renverser ce processus et retourner le jeu de résultats dans un graphique normalisé, avec seulement un objet compagnie.

Dans cet exemple, le DAS Relationnel examine le jeu de résultats et le spécificateur de colonne, trouve les données pour les tables compagnie et departement, trouve les clés primaires pour les deux et interprète chaque ligne comme contenant des données d'un département et comme parent compagnie. S'il n'a pas vue de données de la compagnie auparavant (il utilise la clé primaire pour vérifier), il crée un objet compagnie et ensuite l'objet compagnie sous lui. S'il a vu des données pour la compagnie avant et a déjà créé l'objet compagnie, il crée simplement l'objet departement sous lui.

De cette manière, le DAS Relationnel peut récupérer et normaliser de nouveau les données pour de multiples compagnies et de multiples départements sous ceux-ci.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Récupération de la compagnie et du département de Chaussure, ensuite
 * supprime Chaussure et ajoute IT
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

$root = $das->executeQuery($dbh,
'select c.id, c.nom, d.id, d.nom from compagnie Â«c, departement d where d.co_id = c.id',
array('compagnie.id','compagnie.nom','departement.id','departement.nom'));

$acme      = $root['compagnie'][0];            // récupère la première compagnie - sera 'Acme'
$chaussure = $acme['departement'][0];          // récupère le premier département en dessous - sera 'Chaussure'

unset($acme['departement'][0]);

$it = $acme->createDataObject('departement');
$it->name = 'IT';

$das -> applyChanges($dbh, $root);
?>

Exemple #3 Une compagnie, deux départements - Récupération et Suppression

Dans cet exemple, la compagnie et le département sont récupérés et ensuite supprimés. Il n'est pas nécessaire de les supprimer individuellement (bien que cela est possible) - la suppression de l'objet compagnie du graphique de données supprime aussi tous les départements sous lui.

Notez le moyen de l'objet compagnie est actuellement supprimé en utilisant l'appel unset de PHP. La suppression doit être effectuée sur la propriété qui est dans ce cas la propriété de compagnie sur l'objet racine spécial. Vous devez utiliser :

<?php
unset($root['company'][0]);
?>
et non pas :
<?php
unset($acme); //FAUX
?>
La suppression de $acme détruira simplement la variable mais laissera les données dans le graphique intacte.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Récupération de la compagnie et du département IT, ensuite supprime la
 * compagnie entière
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

$root = $das->executeQuery($dbh,
'select c.id, c.nom, d.id, d.nom from compagnie c, departement d where d.co_id = c.id',
array('compagnie.id','compagnie.nom','departement.id','departement.nom'));

$acme = $root['compagnie'][0];
$it = $acme['departement'][0];

unset($root['compagnie'][0]);

$das -> applyChanges($dbh, $root);

?>


Exemple avec trois tables

Les exemples suivant utilisent tous trois tables de la base de données compagnie : les tables compagnie, departement et employe. Elles introduisent le dernier morceau du fonctionnement non expliqué dans les exemples ci haut : la référence non contenue employe_du_mois.

Comme les exemples ci haut pour la compagnie et le département, la série d'exemples illustre le cycle de vie complet d'un graphique de données.

Exemple #1 Une compagnie, un département, un employé - Création

Dans cet exemple, une compagnie est créée contenant un département et seulement un employé. Notez que dans cet exemple, les trois tables sont vidées à leur démarrage ainsi les résultats exacts des requêtes peuvent être connus.

Notez comment une fois que la compagnie, le département et l'employé est créé que la propriété employe_du_mois de la compagnie peut être faite pour pointer au nouvel employé. Puisque c'est une référence qui n'est pas contenue, ceci ne peut être effectué tant que l'objet employé ait été créé dans le graphique. Les références non contenues doivent être gérées prudemment. Par exemple, si un employé est maintenant supprimé de son département, il ne serait pas correcte d'essayer de sauver le graphique sans premièrement effacer ou réassigner la propriété employe_du_mois. Cette règle SDO requiert que tous les objets pointé par une référence qui n'est pas contenue doit être aussi accessible par des relations contenues.

Lorsque vient le moment d'insérer le graphique dans la base de données, la procédure est similaire à l'exemple d'insertion d'une compagnie et d'un département, cependant, la propriété employe_du_mois introduit une plus grande complexité. Le DAS Relationnel doit insérer les objets en descendant l'arbre formée des relations contenues, donc la compagnie, ensuite le département et ensuite l'employée. Ceci est nécessaire puisqu'il y a toujours une clé primaire générée automatiquement du parent pour l'inclure dans une ligne du fils. Mais lorsque la compagnie est insérée, l'employée qui est l'employé du mois n'est pas encore inséré et la clé primaire est inconnue. La procédure est qu'après l'insertion de l'employé et que sa clé primaire soit connue, une dernière étape est effectuée qui permet de modifier la compagnie avec la clé primaire de l'employé.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Vidage des deux tables
*************************************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$pdo_stmt = $dbh->prepare('DELETE FROM COMPAGNIE;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM DEPARTEMENT;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM EMPLOYE;');
$rows_affected = $pdo_stmt->execute();

/*************************************************************************************
* Crée une compagnie minuscule mais complète.
* Le nom de la compagnie est Acme.
* Il y a un département, Chaussure.
* Il y a une employé, Bob.
* L'employé du mois est Bob.
*************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root        = $das  -> createRootDataObject();
$acme        = $root -> createDataObject('compagnie');
$acme -> nom = "Acme";
$chaussure   = $acme -> createDataObject('departement');
$chaussure -> nom         = 'Chaussure';
$chaussure -> emplacement = 'Bloc-A';
$bob                              = $chaussure -> createDataObject('employe');
$bob -> nom              = 'Bob';
$acme -> employe_du_mois = $bob;

$das -> applyChanges($dbh, $root);

echo "Écriture de Acme avec un département et un employé\n";
?>

Exemple #2 Une compagnie, un département, un employé - Récupération et Mise à Jour

La requête SQL passée à DAS Relationnel est cette fois un inner join qui récupère les données des trois tables. Autrement, cet exemple n'introduit rien de nouveau de l'exemple précédent

Le graphique est mis à jour avec l'addition d'un nouveau département et d'un nouvel employé et quelques modifications au propriétés de nom des objets existant dans le graphique. Les changements combinés sont écrits. Le DAS Relationnel traitera et appliquera un mélange arbitraire des additions, des modifications et des suppressions provenant et allant vers le graphique.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
 * Trouve la compagnie encore et change certains aspects.
 * Change le nom de la compagnie, le département et l'employé.
 * Ajoute un second département et un nouvel employé.
 * Change l'employé du mois
 *************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root = $das->executeQuery($dbh,
    "select c.id, c.nom, c.employe_du_mois, d.id, d.nom, e.id, e.nom " .
    "from compagnie c, departement d, employe e " .
    "where e.dept_id = d.id and d.co_id = c.id and c.nom='Acme'",
     array('compagnie.id','compagnie.nom','compagnie.employe_du_mois',
     'departement.id','departement.nom','employe.id','employe.nom'));
$acme   = $root['compagnie'][0];

$chaussure      = $acme->departement[0];
$bob          = $chaussure -> employe[0];

$it     = $acme->createDataObject('departement');
$it->nom = 'IT';
$it->location = 'Bloc-G';
$billy  = $it->createDataObject('employe');
$billy->nom = 'Billy';

$acme->nom = 'MegaCorp';
$chaussure->nom = 'Footwear';
$sue->nom = 'Suzan';

$acme->employe_du_mois = $billy;
$das -> applyChanges($dbh, $root);
echo "Écriture de la compagnie avec un département en plus et un employé et
tous les noms ont changés Megacorp/Footwear/Suzan)\n";

?>

Exemple #3 Une compagnie, deux départements, deux employés - Récupération et Suppression

La compagnie est récupéré en tant qu'un graphique de données complet contenant cinq objets de données - la compagnie, deux départements et deux employés. Ils sont tous supprimés en supprimant l'objet compagnie. La suppression d'un objet du graphique supprime tous les objets sous celui-ci dans le graphique. Cinq requêtes DELETE SQL sera générées et exécutée. Comme d'habitude, elles seront qualifiées avec une clause WHERE qui contient tous les champs qui ont été récupérés, alors toutes les mises à jour des données dans la base de données pendant ce temps par un autre processus seront détectées.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
 * Maintenant lit une ou plusieurs fois et supprime.
 * Vous pouvez supprimer par partie, appliquer les changements, et ensuite
 * continuer à travailler avec le même graphique de données mais la précaution
 * est requise pour garder véracité - vous ne pouvez pas supprimer l'employé
 * qui est l'employé du mois sans le réassigner. Pour plus de précaution ici,
 * nous supprimons la compagnie en entier d'un seul coup.
 *************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root = $das->executeQuery($dbh,
    "select c.id, c.nom, c.employe_du_mois, d.id, d.nom, e.id, e.nom " .
    "from compagnie c, departement d, employe e " .
    "where e.dept_id = d.id and d.co_id = c.id and c.nom='MegaCorp';",
     array('compagnie.id','compagnie.nom','compagnie.employe_du_mois',
     'departement.id','departement.nom','employe.id','employe.nom'));
$megacorp = $root['compagnie'][0];

unset($root['compagnie']);
$das -> applyChanges($dbh, $root);

echo "Suppression de la compagnie, des départements et des employés d'un seul coup.\n";

?>


Limitations

Il y a les limitations suivantes dans la version courante de DAS Relationnel :

  • Aucun support pour les données NULL. Il n'y a pas de support pour les types de SQL NULL. Cela n'est pas légal d'assigner une donnée PHP NULL à une propriété d'objet de données et le DAS Relationnel n'écriera pas en tant que NULL à la base de données. Si des données NULL sont trouvées dans la base de données dans une requête, la propriété restera non fixée.

  • Seulement deux types de relation SDO. Les métadonnées décrient plus bas permettent le DAS Relationnel de modéliser seulement deux types de relation SDO : relations contenues de valeurs multiples et les références contenues de valeurs simples. Dans SDO, si une propriété décrit une relation simple ou de valeurs multiples, et si c'est contenu ou non contenu, elle est indépendante. La plage complète des possibilités que SDO autorise ne peut être défini au complet. Il peut y avoir des relations qui peuvent être utiles pour modéliser mais que l'implémentation courante ne peut gérer. Un exemple est de relation de simples valeurs contenues.

  • Aucun support pour la plage complète des types de données SDO. Le DAS Relationnel définit des propriétés primitives dans le modèle SDO en tant qu'un type de chaîne de caractères. SDO définit un ensemble de types plus riche contenant des types entier, valeur à virgule flottante, booléen et des données et de temps. Une chaîne de caractères est adéquate pour les buts de DAS Relationnel puisque la combinaison de PHP, PDO et les bases de données assurera que les valeurs passées en tant que chaînes de caractères seront converties au bon type avant d'être envoyées à la base de données. Cela affecte certains scénarios dans lesquels DAS Relationnel doit travailler avec un graphique de données qui est venu ou ira à un différent DAS.

  • Seulement une clé étrangère par table. Les métadonnées fournissent seulement le moyen de spécifier une clé étrangère par table. Cette clé étrangère peut établir une correspondance à un ou deux types de relations SDO supportés. Évidemment, il y a des scénarios qui ne peuvent être décrits sous cette limitation - il n'est pas possible d'avoir deux références non contenues d'une table à une autre par exemple.


Fonctions SDO-DAS-Relational

Classes pré-définies

Le DAS Relationnel fournit deux classes : le DAS Relationnel lui-même et aussi la sous-classe Exception qui peut être jetée. Le DAS Relationnel a quatre appels publics utiles : le constructeur, la méthode createRootDataObject() pour obtenir l'objet racine d'un graphique de données vide, la méthode executeQuery() pour obtenir le graphique de données contenant les données d'une base de données relationnelle et la méthode applyChanges() pour écrire les changements effectués au graphique de données vers la base de données relationnelle.

SDO_DAS_Relational

Le seul autre objet que SDO_DAS_Relational_Exception que l'application pourrait interagir.

Méthodes

  • __construct : construit le DAS Relationnel avec le modèle dérivé des métadonnées passées

  • createRootDataObject : obtient le graphique de données vide contenant seulement l'objet racine spécial

  • executeQuery : exécute une requête SQL passée en tant que chaîne de caractères littérale et retourne les résultats dans un graphique de données normalisé

  • executePreparedQuery : exécute une requête SQL passée en tant que requête préparée, avec une liste de valeur à substituer pour les paramètres fictifs et retourne le résultats d'un graphique de données normalisé

  • applyChanges : examine les changements dans le graphique de données et applique ces changements à la base de données, sujet d'une acceptation de simultanéité optimiste

SDO_DAS_Relational_Exception

Est une sous-classe de la classe PHP Exception. Elle n'ajoute aucun comportement à Exception. Jetée, avec une explication utile, pour signaler les erreurs dans les métadonnées ou des échecs non prévus pour exécuter des opérations SQL.

Sommaire

  • SDO_DAS_Relational::applyChanges — Applique les changements effectués au graphique de données à la base de données
  • SDO_DAS_Relational::__construct — Construit une instance de DAS Relationnel
  • SDO_DAS_Relational::createRootDataObject — Retourne un objet racine spécial d'un graphique de données vide. Utilisé lors de la création d'un graphique de données à partir de zéro
  • SDO_DAS_Relational::executePreparedQuery — Exécute une requête SQL passée comme requête préparée, avec une liste de valeurs à substituer pour les paramètres fictifs, et retourne les résultats comme un graphique de données normalisé.
  • SDO_DAS_Relational::executeQuery — Exécute une requête SQL donnée à une base de données relationnelle et retourne les résultats comme graphique de données normalisé.


Applique les changements effectués au graphique de données à la base de données

  • « Fonctions SDO-DAS-Relational
  • SDO_DAS_Relational::__construct »
  • PHP Manual
  • Fonctions SDO-DAS-Relational
  • Applique les changements effectués au graphique de données à la base de données

SDO_DAS_Relational::applyChanges

(^)

SDO_DAS_Relational::applyChanges — Applique les changements effectués au graphique de données à la base de données

Description

void SDO_DAS_Relational::applyChanges ( PDO $database_handle , SDODataObject $root_data_object )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

En lui donnant une ressource de base de données PDO et l'objet racine spécial d'un graphique de données, la fonction examine les changements dans le graphique de données et applique les changements à la base de données Les changements qui peut appliquer sont les créations d'objets de données, les suppressions des objets de données et les modifications des propriétés des objets de données.

Liste de paramètres

PDO_database_handle

Construit en utilisant l'extension PDO. Une ligne typique pour construire une ressource de base de données PDO devrait ressembler à ceci :

$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

root_data_object

L'objet racine spécial qui est le sommet de chaque graphique de données SDO.

Valeurs de retour

Aucune. Notez cependant que le graphique de données qui a été passé est toujours intact et utilisable. De plus, si les objets de données ont été créés et écrits à une table avec des clés primaires générées automatiquement, alors ces clés primaires seront maintenant enregistrées dans les objets de données. Si les changements ont été correctement écrits, alors le changement associé avec le graphique de données sera supprimé, alors il est possible maintenant d'effectuer plus de changement au graphique de données et appliquer les changements alternativement. De cette façon, il est possible de travailler avec le même graphique de données et appliquer les changement à plusieurs reprises.

Erreurs / Exceptions

SDO_DAS_Relational::applyChanges() peut jeter une exception SDO_DAS_Relational_Exception si la méthode n'est pas capable d'appliquer tous les changements correctement.

Le DAS Relationnel démarre une transaction de base de données avant de commencer à appliquer les changements et enverra les transactions seulement si celles-ci sont réussies. Le DAS Relationnel génère des requêtes de mises à jour et de suppression qualifiées qui contiennent une clause WHERE qui spécifie que la ligne à être modifiée ou supprimée doit contenir les mêmes valeurs qu'elles avaient lorsque les données ont été préalablement récupérées. Voici comment la simultanéité optimiste est implantée. Si une des requêtes de mises à jour ou de suppression qualifiées échoue à mettre à jour ou à supprimer leur ligne, il se peut que cela soit à cause des données altérées dans la base de données en attendant. Quoi qu'il arrive, si une mise à jour échoue pour n'importe quelle raison, la transaction est retournée en arrière et une exception est jetée. Cette exception contiendra la requête SQL générée qui a échouée.

Le DAS Relationnel attrape aussi toutes les exceptions de PDO et obtient des informations de diagnostique de PDO qui incluent dans un SDO_DAS_Relational_Exception qui est lui-même ensuite jeté.

Exemples

Veuillez voir la section d'exemples dans les informations générales à propos de DAS Relationnel pour plusieurs exemples sur l'appel de cette méthode. Veuillez voir aussi la section sur le suivi pour voir comment vous pouvez voir quelles requêtes SQL sont générées par le DAS Relationnel.


Construit une instance de DAS Relationnel

  • « SDO_DAS_Relational::applyChanges
  • SDO_DAS_Relational::createRootDataObject »
  • PHP Manual
  • Fonctions SDO-DAS-Relational
  • Construit une instance de DAS Relationnel

SDO_DAS_Relational::__construct

(^)

SDO_DAS_Relational::__construct — Construit une instance de DAS Relationnel

Description

SDO_DAS_Relational::__construct ( array $database_metadata [, string $application_root_type [, array $SDO_containment_references_metadata ]] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Construit une instance de DAS Relationnel à partir des métadonnées passées.

Liste de paramètres

database_metadata

Un tableau contenant une ou plusieurs définitions de table, chacune d'elle est un tableau associatif contenant les clés name, columns, PK et optionnellement, FK. Pour une discussion complète sur les métadonnées, voyez la section métadonnées dans les informations générales à propos de DAS Relationnel.

application_root_type

La racine de chaque graphique de données est un objet d'un type de racine spécial et les objets de données de l'application viennent sous cela. De la plupart des types d'application dans le modèle SDO, une doit être le type d'application immédiatement sous la racine du graphique de données. S'il n'y a qu'une seule table dans les métadonnées de base de données, alors le type de racine de l'application peut être impliqué et cet argument peut être omis.

SDO_containment_references_metadata

Un tableau contenant une ou plusieurs définitions d'une relation contenue, chacune d'elle est un tableau associatif contenant les clés parent et child. Les relations contenues décrient comment les types dans le modèle sont connectés pour former un arbre. Le type spécifié en tant que le type racine de l'application doit être présent en tant qu'un type de parent dans les références contenues. Si l'application doit seulement travailler avec une table à la fois et s'il n'y a pas de relation contenue dans le modèle, cet argument peut être omis. Pour une discussion complète sur les métadonnées, voyez la section métadonnées dans les informations générales à propos de DAS Relationnel.

Valeurs de retour

Retourne un objet SDO_DAS_Relational en cas de succès.

Erreurs / Exceptions

SDO_DAS_Relational::__construct() jette une exception SDO_DAS_Relational_Exception si des problèmes sont trouvés dans les métadonnées.

Exemples

Pour une discussion complète sur les métadonnées, voyez la section métadonnées dans les informations générales à propos de DAS Relationnel.


Retourne un objet racine spécial d'un graphique de données vide. Utilisé lors de la création d'un graphique de données à partir de zéro

  • « SDO_DAS_Relational::__construct
  • SDO_DAS_Relational::executePreparedQuery »
  • PHP Manual
  • Fonctions SDO-DAS-Relational
  • Retourne un objet racine spécial d'un graphique de données vide. Utilisé lors de la création d'un graphique de données à partir de zéro

SDO_DAS_Relational::createRootDataObject

(^)

SDO_DAS_Relational::createRootDataObject — Retourne un objet racine spécial d'un graphique de données vide. Utilisé lors de la création d'un graphique de données à partir de zéro

Description

SDODataObject SDO_DAS_Relational::createRootDataObject ( void )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne un objet racine spécial du sommet d'un graphique de données vide. Cet appel est utilisé lorsque l'application veut créer un graphique de données à partir de zéro, sans avoir appelé executeQuery() pour créer le graphique de données.

L'objet racine spécial a une propriété de valeurs multiples contenue, avec un nom du type de racine de l'application qui a été passé lors de la construction de DAS Relationnel. La propriété peut prendre des valeurs de seulement ce type. La seule chose que l'application peut faire d'utile avec le type de racine est d'appeler createDataObject() sur celui-ci, en passant le nom du type de racine de l'application, dans l'ordre pour créer un objet de données avec son propre type d'application.

Liste de paramètres

Aucun.

Valeurs de retour

L'objet racine.

Erreurs / Exceptions

Aucune.

Exemples

Veuillez visitez la section exemples dans la section information générale à propos des DAS Relationnel pour beaucoup d'exemples en appelant cette méthode.


Exécute une requête SQL passée comme requête préparée, avec une liste de valeurs à substituer pour les paramètres fictifs, et retourne les résultats comme un graphique de données normalisé.

  • « SDO_DAS_Relational::createRootDataObject
  • SDO_DAS_Relational::executeQuery »
  • PHP Manual
  • Fonctions SDO-DAS-Relational
  • Exécute une requête SQL passée comme requête préparée, avec une liste de valeurs à substituer pour les paramètres fictifs, et retourne les résultats comme un graphique de données normalisé.

SDO_DAS_Relational::executePreparedQuery

(^)

SDO_DAS_Relational::executePreparedQuery — Exécute une requête SQL passée comme requête préparée, avec une liste de valeurs à substituer pour les paramètres fictifs, et retourne les résultats comme un graphique de données normalisé.

Description

SDODataObject SDO_DAS_Relational::executePreparedQuery ( PDO $database_handle , PDOStatement $prepared_statement , array $value_list [, array $column_specifier ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exécute une requête donnée sur une base de données relationnelle, en utilisant la ressource de base de données PDO fourni. Elle diffère de la fonction simple executeQuery() puisqu'elle prend des requêtes préparées et une liste de valeurs. Ceci est l'appel approprié lorsque vous voulez utiliser une requête qui doit être appelée un certain nombre de fois avec des arguments différents et il y a donc un avantage de performance à être préparée une seule fois. Elle est utile aussi pour les requêtes SQL qui contiennent des valeurs qui varient prises d'une source qui ne peut pas être totalement sûre. Dans ce dernier cas, il est peu sécuritaire de construire une requête SQL en concaténant simplement les parties de la requête ensemble, puisque les valeurs peuvent convenir des morceau de SQL. Pour se protéger de ceci, d'une prétendue attaque par injection SQL, il est plus sécuritaire de préparer la requête SQL avec des paramètres fictifs (aussi connu sous le nom de marqueurs, noté '?') et fournir une liste de valeurs qui devra être substituée dans un argument séparé. Autrement, cette fonction est la même que executeQuery() puisqu'elle utilise le modèle qui était bâti à partir des métadonnées pour interpréter le jeu de résultats et retourner un graphique de données.

Liste de paramètres

PDO_database_handle

Construit en utilisant l'extension PDO. Une ligne typique pour construire un descripteur de base de données PDO devrait ressembler à ceci :

$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

prepared_statement

Une requête SQL préparée qui sera exécutée sur la base de données. Il aura été préparé par la méthode prepare() de PDO.

value_list

Un tableau de valeurs à être substituées dans la requête SQL à la place des paramètres fictifs. Dans le cas qu'il n'y a pas de paramètres fictifs ou de marqueurs dans la requête SQL, alors cet argument peut être spécifié comme NULL ou en tant qu'un tableau vide.

column_specifier

Le DAS Relationnel doit examiner le jeu de résultats et pour chaque colonne, provenant de quelle table et quelle colonne de la table il vient. Dans certaines circonstances, il peut trouver les informations pour lui-même, mais la plupart du temps il ne le peut pas. Dans ces cas, une colonne spécifique est requise, qui est un tableau qui identifie les colonnes. Chaque entrée dans le tableau est simplement une chaîne de caractères dans la forme table-name.column_name.

Le spécificateur de colonne est requis lorsqu'il y a des noms de colonnes similaires dans les métadonnées de base de données. Par exemple, dans une base de données utilisée dans ces exemples, toutes les tables ont une colonne id et une colonne nom. Lorsque DAS Relationnel récupère le jeu de résultats à partir de PDO, il peut le faire avec l'attribut PDO_FETCH_ASSOC, ce qui permettra aux colonnes dans les jeux de résultats d'être marquées avec un nom de colonne, mais on ne pourra pas distinguer les entrées similaires. Alors cela fonctionnera seulement lorsqu'il y aura aucune entrée similaire possible dans les jeux de résultats.

Pour résumer, spécifier un tableau de spécificateurs de colonne lorsqu'il y a une incertitude à propos des colonnes qui pourraient venir de quelle table. Il faut l'omettre seulement lorsque chaque nom des colonnes dans les métadonnées de base de données est unique.

Tous les exemples dans la section d'Exemples utilisent un spécificateur de colonne. Il y a un exemple dans le dossier Scenarios de l'installation qui ne fait pas : il ne fonctionne seulement avec la table employe et parce qu'il travaille seulement avec une seule table, il ne peut y avoir des noms de colonnes similaires.

Valeurs de retour

Retourne un graphique de données. Spécifiquement, elle retourne un objet racine d'un type spécial. Sous cet objet de racine se trouveront les données du jeu de résultat. L'objet de racine aura une propriété de valeurs multiples contenue avec le même nom que le type racine d'application spécifié dans le constructeur, et la propriété continuera un ou plusieurs objets de donnés du type de racine de l'application.

Dans le cas que la requête aucune donnée, l'objet spécial de racine pour le type de racine de l'application sera vide.

Erreurs / Exceptions

SDO_DAS_Relational::executePreparedQuery() peut jeter une exception SDO_DAS_Relational_Exception si elle n'est pas capable de construire le graphique de données correctement. Cela peut arriver pour un certains nombres de raisons : par exemple, si elle trouve qu'elle n'a pas de clés primaire dans le jeu de résultats pour tous les objets. Le DAS Relationnel attrape toutes les exceptions de PDO et obtient des informations de diagnostique de PDO qui inclut un SDO_DAS_Relational_Exception qui sera alors jeté.

Exemples

Exemple #1 Récupération d'un objet de données en utilisant executePreparedQuery()

Dans cet exemple, un simple objet de données est récupéré de la base de données - ou possiblement plus d'un s'il y a plus d'une compagnie appelée 'Acme'. Pour chaque compagnie retournée, les propriétés nom et id sont affichées.

D'autres exemples d'utilisation de executePreparedQuery() peuvent être trouvés dans le code d'exemple fourni dans sdo/DAS/Relational/Scenarios.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les métadonnées
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);

/**************************************************************
 * Récupère une connexion à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Effectue une requête pour obtenir un objet compagnie - il pourrait y en
 * avoir plus s'ils existaient
 * Utilise une requête préparée avec des paramètres fictifs.
 ***************************************************************/
$name = 'Acme';
$pdo_stmt = $dbh->prepare('select name, id from company where name=?');
$root = $das->executePreparedQuery(
    $dbh,
    $pdo_stmt,
    array($name),
    array('company.name', 'company.id'));

/**************************************************************
 * Affiche le nom et son id
 ***************************************************************/
foreach ($root['company'] as $company) {
    echo "Company obtained from the database has name = " .
    $company['name'] . " and id " . $company['id'] . "\n";
}
?>


Exécute une requête SQL donnée à une base de données relationnelle et retourne les résultats comme graphique de données normalisé.

  • « SDO_DAS_Relational::executePreparedQuery
  • SDO DAS XML »
  • PHP Manual
  • Fonctions SDO-DAS-Relational
  • Exécute une requête SQL donnée à une base de données relationnelle et retourne les résultats comme graphique de données normalisé.

SDO_DAS_Relational::executeQuery

(^)

SDO_DAS_Relational::executeQuery — Exécute une requête SQL donnée à une base de données relationnelle et retourne les résultats comme graphique de données normalisé.

Description

SDODataObject SDO_DAS_Relational::executeQuery ( PDO $database_handle , string $SQL_statement [, array $column_specifier ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exécute une requête donnée à la base de données relationnelle en utilisant la ressource de base de données PDO fourni. Utilise le modèle qui est bâti des métadonnées pour interpréter le jeu de résultats. Retourne un graphique de données.

Liste de paramètres

PDO_database_handle

Construit en utilisant l'extension PDO. Une ligne typique pour construire un descripteur de base de données PDO devrait ressembler à ceci :

$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

SQL_statement

La requête SQL à être exécutée sur la base de données.

column_specifier

Le DAS Relationnel doit examiner le jeu de résultats et pour chaque colonne, provenant de quelle table et quelle colonne de la table il vient. Dans certaines circonstances, il peut trouver les informations pour lui-même, mais la plupart du temps il ne le peut pas. Dans ces cas, une colonne spécifique est requise, qui est un tableau qui identifie les colonnes. Chaque entrée dans le tableau est simplement une chaîne de caractères dans la forme table-name.column_name.

Le spécificateur de colonne est requis lorsqu'il y a des noms de colonnes similaires dans les métadonnées de base de données. Par exemple, dans une base de données utilisée dans ces exemples, toutes les tables ont une colonne id et une colonne nom. Lorsque DAS Relationnel récupère le jeu de résultats à partir de PDO, il peut le faire avec l'attribut PDO_FETCH_ASSOC, ce qui permettra aux colonnes dans les jeux de résultats d'être marquées avec un nom de colonne, mais on ne pourra pas distinguer les entrées similaires. Alors cela fonctionnera seulement lorsqu'il y aura aucune entrée similaire possible dans les jeux de résultats.

Pour résumer, spécifier un tableau de spécificateurs de colonne lorsqu'il y a une incertitude à propos des colonnes qui pourraient venir de quelle table. Il faut l'omettre seulement lorsque chaque nom des colonnes dans les métadonnées de base de données est unique.

Tous les exemples dans la section d'Exemples utilisent un spécificateur de colonne. Il y a un exemple dans le dossier Scenarios de l'installation qui ne fait pas : il ne fonctionne seulement avec la table employe et parce que il travaille seulement avec une seule table, il ne peut y avoir des noms de colonnes similaires.

Valeurs de retour

Retourne un graphique de données. Spécifiquement, elle retourne un objet racine d'un type spécial. Sous cet objet de racine se trouvera les données du jeu de résultat. L'objet de racine aura une propriété de valeurs multiples contenue avec le même nom que le type racine d'application spécifié dans le constructeur, et la propriété continuera un ou plusieurs objets de donnés du type de racine de l'application.

Dans le cas que la requête aucune données, l'objet spécial de racine pour le type de racine de l'application sera vide.

Erreurs / Exceptions

SDO_DAS_Relational::executeQuery() peut jeter une exception SDO_DAS_Relational_Exception si elle n'est pas capable de construire le graphique de données correctement. Cela peut arriver pour un certains nombres de raisons : par exemple, si elle trouve qu'elle n'a pas de clés primaire dans le jeu de résultats pour tous les objets. Le DAS Relationnel attrape toutes les exceptions de PDO et obtient des informations de diagnostique de PDO qui inclut un SDO_DAS_Relational_Exception qui sera alors jeté.

Exemples

Veuillez visitez la section exemples dans la section information générale à propos des DAS Relationnel pour beaucoup d'exemples en appelant cette méthode.


Fonctions de Service d'Accès de Données SDO XML

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Fonctions SDO DAS XML
    • SDO_DAS_XML::addTypes — Pour charger un second ou subséquent fichier schéma à un objet SDO_DAS_XML
    • SDO_DAS_XML::create — Pour créer un objet SDO_DAS_XML pour un fichier de schéma donné
    • SDO_DAS_XML::createDataObject — Crée un SDO_DataObject pour un espace de nom URI et un nom de type donnés
    • SDO_DAS_XML::createDocument — Crée un objet de document XML à partir de zéro, sans avoir besoin de charger un document à partir d'un fichier ou d'une chaîne de caractères
    • SDO_DAS_XML::loadFile — Retourne un objet SDO_DAS_XML_Document pour un chemin donné d'une instance de document xml
    • SDO_DAS_XML::loadString — Retourne un SDO_DAS_XML_Document pour une chaîne de caractères d'instance xml donnée
    • SDO_DAS_XML::saveFile — Sauvegarde l'objet SDO_DAS_XML_Document vers un fichier
    • SDO_DAS_XML::saveString — Sauvegarde l'objet SDO_DAS_XML_Document vers une chaîne de caractères
    • SDO_DAS_XML_Document::getRootDataObject — Retourne la racine de SDO_DataObject
    • SDO_DAS_XML_Document::getRootElementName — Retourne le nom de l'élément racine
    • SDO_DAS_XML_Document::getRootElementURI — Retourne la chaîne de caractères URI de l'élément racine
    • SDO_DAS_XML_Document::setEncoding — Fixe l'encodage à l'aide d'une chaîne de caractères
    • SDO_DAS_XML_Document::setXMLDeclaration — Fixe la déclaration xml
    • SDO_DAS_XML_Document::setXMLVersion — Fixe la version xml à l'aide d'une chaîne de caractères


Introduction

Afin d'utiliser le Service d'Accès de Données XML pour les Objets de Service de Données, vous aurez besoin de comprendre certains concepts derrière le SDO : les graphiques de données, les objets de données, XPath et ses expressions, et ainsi de suite. Si vous n'êtes pas familier avec ces idées, vous devriez jeter un oeil sur la section sur SDO.

Le travail de XML DAS est de déplacer les données entre l'application et un fichier source XML, qui peut être soit un fichier ou une adresse URL. SDO est créé et maintenu en accord avec un modèle qui définit les types des noms et quels noms de propriétés chaque type doit avoir. Pour les données qui proviennent d'un fichier XML, le modèle SDO est construit depuis un fichier de schéma écrit dans un langage XML (un fichier xsd). Ce schéma est habituellement passé à la méthode créée lorsque l'objet XMLDAS est initialisé. La » spécification SDO 2.0 définit le lien entre les types XML et les types SDO. Il y a quelques limitations dans le support PHP - tout ce qui se trouve dans la spécification ne peut pas être fait - et ces limitations sont énumérées dans une section suivante.


Pré-requis

Le Service d'Accès de Données requiert PHP 5.1.0 ou supérieur. Il est fonctionnel avec l'extension SDO et requiert que SDO soit installée. Voyez les instructions d'installation SDO pour plus de détails sur comment faire cela.


Installation

Le Service d'Accès de Données et empaqueté et installé avec l'extension SDO. Référez-vous à instructions d'installation SDO.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • SDO DAS XML
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Exemples

La plupart des exemples suivants sont basés sur l'exemple de la lettre décrite dans la documentation SDO. Les exemples assument que le Schéma XML pour la lettre est contenu dans un fichier lettre.xsd et que l'instance de la lettre est dans le fichier lettre.xml. Ces deux fichiers sont reproduits ici :

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:letter="http://letterSchema"
  targetNamespace="http://letterSchema">
  <xsd:element name="letters" type="letter:FormLetter"/>
  <xsd:complexType name="FormLetter" mixed="true">
    <xsd:sequence>
      <xsd:element name="date" minOccurs="0" type="xsd:string"/>
      <xsd:element name="firstName" minOccurs="0" type="xsd:string"/>
      <xsd:element name="lastName" minOccurs="0" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

<letter:letters xmlns:letter="http://letterSchema">
  <date>March 1, 2005</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Casy</firstName>
  <lastName>Crocodile</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</letter:letters>

Exemple #1 Chargement, modification et sauvegarde d'un document XML

L'exemple suivant montre comment un document XML peut être chargé provenant d'un fichier, altéré et récrit.

<?php
/**
* Charge, met à jour et sauvegarde un document XML
 */
try {
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   $document = $xmldas->loadFile("letter.xml");
   $root_data_object = $document->getRootDataObject();
   $root_data_object->date = "September 03, 2004";
   $root_data_object->firstName = "Anantoju";
   $root_data_object->lastName = "Madhu";
   $xmldas->saveFile($document, "letter-out.xml");
   echo "New file has been written:\n";
   print file_get_contents("letter-out.xml");
} catch (SDO_Exception $e) {
   print($e->getMessage());
}
?>

Une instance du XML DAS est la première obtenue de la méthode SDO_DAS_XML::create() qui est une méthode statique de la classe SDO_DAS_XML. L'emplacement du xsd est passé en paramètre. Une fois que nous avons une instance de XML DAS initialisée avec un schéma donné, nous pouvons l'utiliser pour charger l'instance du document en utilisant la méthode loadFile(). Il y a aussi la méthode loadString() si vous voulez charger une instance de document XML provenant d'une chaîne de caractères. Si l'instance du document se charge correctement, un objet de type SDO_DAS_XML_Document sera retourné sur lequel vous pourrez appeler la méthode getRootDataObject() pour obtenir l'objet de données SDO qui est la racine de votre graphique de données SDO. Vous pouvez alors utiliser les opérations SDO pour changer le graphique SDO. Dans cet exemple, nous modifions les propriétés date, prenom et nomFamille. Ensuite, nous utilisons la méthode saveFile() pour écrire les changements dans un fichier système. La méthode saveFile a un argument optionnel qui, s'il est spécifié, fera que le XML DAS va formate le code XML en utilisant cet argument pour indenter chaque changement dans le niveau du document.

Ceci va écrit ce qui suit dans le fichier letter-out.xml.

<?xml version="1.0" encoding="UTF-8"?>
<FormLetter xmlns="http://letterSchema" xsi:type="FormLetter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <date>September 03, 2004</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Anantoju</firstName>
  <lastName>Madhu</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</FormLetter>

Exemple #2 Création d'un nouveau document XML

L'exemple précédent charge le document depuis un fichier. Cet exemple montre comment créer un graphique de données SDO en mémoire. Dans cet exemple, il est sauvegardé dans une chaîne XML. En outre, vu que la lettre contient à la fois du contenu structuré et non-structuré, on utilise l'API séquence pour assigner les propriétés pour construire le graphique des données.

<?php
/**
* Création d'un document XML
*/
try {
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   try {
       $doc = $xmldas->createDocument();
       $rdo = $doc->getRootDataObject();
       $seq = $rdo->getSequence();
       $seq->insert("April 09, 2005", NULL, 'date');
       $seq->insert("Acme Inc. ", NULL, NULL);
       $seq->insert("United Kingdom. ");
       $seq->insert("Dear", NULL, NULL);
       $seq->insert("Tarun", NULL, "firstName");
       $seq->insert("Nayaraaa", NULL, "lastName");
       $rdo->lastName = "Nayar";
       $seq->insert("Please note that your order number ");
       $seq->insert(12345);
       $seq->insert(" has been dispatched today. Thanks for your business with us.");
       print($xmldas->saveString($doc));
   } catch (SDO_Exception $e) {
       print($e);
   }
} catch (SDO_Exception $e) {
   print("Problem creating an XML document: " . $e->getMessage());
}
?>

La méthode createDocument() du XLM DAS retourne un objet document avec une donnée racine simple correspondant à un élément du document vide. Le nom de l'élément du document est connu du fichier de schéma. S'il y a le moindre doute quant à la valeur de l'élément du document, par exemple lorsque plus d'un schéma a été chargé dans le même XML DAS, le nom de l'élément et l'URI de l'espace de noms peuvent être passés à la méthode createDocument().

Ceci affichera (les retours à la ligne ont été insérés pour une meilleure lisibilité) :

<?xml version="1.0" encoding="UTF-8"?>
<FormLetter xmlns="http://letterSchema" xsi:type="FormLetter"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<date>April 09, 2005</date>
Acme Inc. United Kingdom.
Dear
<firstName>Tarun</firstName>
<lastName>Nayar</lastName>
Please note that your order number 12345 has been
dispatched today. Thanks for your business with us.
</FormLetter>

Exemple #3 Définition des propriétés du document XML

Ce troisième exemple montre comment définir la version XML ainsi que l'encodage de l'objet document. Ceci sera utilisé lors de l'écriture du document XML. Si aucune déclaration XML n'est désirée (peut-être voulez-vous générer du XML sous la forme d'une chaîne à incorporer quelque part), alors, vous pouvez utiliser la méthode setXMLDeclaration() pour supprimer la déclaration.

<?php
/**
* Illustration des appels qui contrôlent la déclaration XML
*/
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   $document = $xmldas->loadFile("letter.xml");
   $document->setXMLVersion("1.1");
   $document->setEncoding("ISO-8859-1");
   print($xmldas->saveString($document));
?>

La version et l'encodage du XML sont définis dans la déclaration XML en haut du document XML.

<?xml version="1.1" encoding="ISO-8859-1"?>
.../...

Exemple #4 Utilisation d'un type ouvert

Ce quatrième exemple illustre l'utilisation d'un type ouvert SDO ainsi que l'utilisation de la méthode createDataObject(). Pour cet exemple, nous utilisons les deux schémas suivants :

<schema
  xmlns="http://www.w3.org/2001/XMLSchema">

  <element name="jungle">
    <complexType>
      <sequence>
        <any minOccurs="0" maxOccurs="unbounded"/>
      </sequence>
    </complexType>
  </element>

</schema>

Notez la présence de l'élément any dans la définition. Ce premier schéma définit le type complexe jungle qui contient une séquence de n'importe quel autre type. Les autres types que cet exemple utilise, sont définis dans un second fichier de schéma :

<schema xmlns= "http://www.w3.org/2001/XMLSchema">

   <complexType name="snakeType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "length" type="positiveInteger" />
     </sequence>
   </complexType>

   <complexType name="bearType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "weight" type="positiveInteger" />
     </sequence>
   </complexType>

   <complexType name="pantherType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "colour" type="string" />
     </sequence>
   </complexType>

</schema>

Voici l'exemple de code PHP qui utilise ces deux fichiers de schéma :

<?php

/**
* Illustration de types ouverts et de l'utilisaton de la méthode addTypes()
*/

$xmldas = SDO_DAS_XML::create();
$xmldas->addTypes("jungle.xsd"); // ceci est un type ouvert, i.e. la xsd spécifiée peut contenir le type "any"
$xmldas->addTypes('animalTypes.xsd');

$baloo            = $xmldas->createDataObject('','bearType');
$baloo->name      = "Baloo";
$baloo->weight    = 800;

$bagheera         = $xmldas->createDataObject('','pantherType');
$bagheera->name   = "Bagheera";
$bagheera->colour = 'inky black';

$kaa              = $xmldas->createDataObject('','snakeType');
$kaa->name        = "Kaa";
$kaa->length      = 25;

$document         = $xmldas->createDocument();
$do               = $document->getRootDataObject();
$do->bear         = $baloo;
$do->panther      = $bagheera;
$do->snake        = $kaa;

print($xmldas->saveString($document,2));

?>

Ces deux fichiers de schéma sont chargés dans le XML DAS avec les méthodes create() et addTypes(). La méthode createDataObject() est utilisée pour créer les trois objets de données. Dans chaque cas, l'URI de l'espace de noms et le nom du type sont passés à la méthode createDataObject() : dans cet exemple, l'URI de l'espace de nom est vide car aucun espace de noms n'est utilisé dans ce schéma. Une fois que les trois objets - représentant un ours, une panthère et un serpent - ont été créés, un objet document est créé avec la méthode createDocument(). Dans ce cas, il n'y a aucune ambiguïté sur l'élément document - vu que le second fichier de schéma définit uniquement des types complexes, l'élément document ne peut être que l'élément global jungle défini dans le premier schéma. Ce document aura un objet racine simple correspondant à un élément document jungle vide. Vu que c'est un type ouvert, les propriétés peuvent y être ajoutées. Lorsque la première assignation est effectuée avec $do->bear, une propriété bear est ajoutée à l'objet racine : de la même façon que pour les deux assignations suivantes. Lorsque le document est écrit via la méthode saveString(), le document résultant sera :

<?xml version="1.0" encoding="UTF-8"?>
<jungle xsi:type="jungle" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <bear xsi:type="bearType">
    <name>Baloo</name>
    <weight>800</weight>
  </bear>
  <panther xsi:type="pantherType">
    <name>Bagheera</name>
    <colour>inky black</colour>
  </panther>
  <snake xsi:type="snakeType">
    <name>Kaa</name>
    <length>25</length>
  </snake>
</jungle>

Exemple #5 Trouver ce que vous voulez dans un document

Cet exemple illustre comment trouver un nom d'élément et l'espace de noms d'un élément du document depuis un objet XML Document, le type SDO et l'espace de noms depuis l'élément racine de données XML. Ceci peut être difficile à comprendre, car il y a 4 méthodes à appeler : deux peuvent être exécutées sur l'objet Document, et deux sur n'importe quelle donnée y compris l'objet racine. Parce que les règles qui définissent la façon dont le modèle SDO est dérivé du modèle XML, lorsque l'objet de données concerné est l'objet racine qui représente l'objet document pour le document, seulement trois valeurs possibles peuvent revenir de l'appels des quatre méthodes.

Les deux appels de méthodes qui peuvent être exécutés sur le document sont getRootElementName() et getRootEelementURI(). Elles retournent respectivement le nom de l'élément et l'espace de noms de l'élément document.

Les deux appels de méthodes qui peuvent être exécutés sur tous les objets de données sont getTypeName() et getTypeNamespaceURI(). Elles retournent respectivement le nom du type SDO et l'espace de noms du type de l'objet de données.

Dans tous les cas, l'appel à la méthode getRootElementURI() sur l'objet document retournera la même valeur que l'appel à la méthode getNamespaceURI() sur l'objet racine. Les informations sont toutes dérivées depuis les premières lignes du fichier schéma, où il y a trois sortes distinctes d'informations. Pour illustrer ceci, voici les premières lignes du fichier letter.xsd qui nous avons utilisé plus haut.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:letter="http://letterSchema"
            targetNamespace="http://letterSchema">

  <xsd:element name="letters" type="letter:FormLetter"/>

  <xsd:complexType name="FormLetter" mixed="true">
    .../...

Les trois valeurs importantes sont :

  • letters, le nom de l'élément document

  • FormLetter, le nom du type complexe de l'élément document. C'est également le nom du type SDO de l'objet racine.

  • http://letterSchema, l'espace de noms auquel l'élément document appartient. C'est également l'URI de l'espace de noms du type SDO de l'objet racine.

C'est une partie des règles XML-SDO qui, lorsque le modèle SDO est construit depuis le fichier schéma, sont utilisé pour récupérer le nom du type et l'URI de l'espace de noms des types SDO pour l'élément racine pour les types complexes de l'élément document, lorsqu'ils existent. Dans cet exemple, le nom du type de l'objet racine est FormLetter. Dans le cas où il n'y a pas de définition de type complexe séparé pour l'élément document, lorsque le type est défini en ligne et qu'il est anonyme, le nom du type SDO sera le même que le nom de l'élément.

Le programme suivant charge le document lettre et vérifie les valeurs retournées de chaque des quatre appels.

<?php

$xmldas = SDO_DAS_XML::create("letter.xsd");
$document = $xmldas->loadFile("letter.xml");
$root_do = $document->getRootDataObject();

/**
* Le "root element name" est le nom de l'élément de l'élément document
* dans ce cas 'letters'
* Ceci correspond à l'attribut 'name' de l'élément document dans le fichier xsd et correspond
* au nom de l'élément depuis le XML
*/
echo "Le nom de l'élément document est " . $document->getRootElementName() . "\n";
assert($document->getRootElementName() == 'letters'); // une propriété du document

/**
* Le "root element URI" est l'espace de noms du nom de l'élément de l'élément document
* dans ce cas 'http://letterSchema' vu que 'letters' est dans l'espace de noms.
* Il est récupéré depuis le xsd et correspond à l'espace de noms récupéré du XML
*/
echo "L'élément document est dans l'espace de noms " . $document->getRootElementURI() . "\n";
assert($document->getRootElementURI() == 'http://letterSchema'); // une propriété du document

/**
* Le nom du type est récupéré depuis le modèle SDO
* Les règles XML-SDO utilisées pour cela sont :
*   Le nom du type complexe s'il existe (ici, c'est le cas)
*   Le nom de l'élément document s'il n'y a pas de type complexe
* Il est récupéré depuis le xsd
*/
echo "Le nom du type de l'objet racine est " . $root_do->getTypeName() . "\n";
assert($root_do->getTypeName() == 'FormLetter');

/**
* Le type de l'espace de noms est récupéré depuis le modèle SDO
* Les règles XML-SDO assurent que ce sera toujours le même que l'URI de
* l'espace de noms de l'élément document
*/
echo "L'URI de l'espace de noms de l'objet racine est " . $root_do->getTypeNamespaceURI() . "\n";
assert($root_do->getTypeNamespaceURI() == 'http://letterSchema');

?>

Ce programme affichera :

Le nom de l'élément document est letters
L'élément document est dans l'espace de noms http://letterSchema
Le nom du type de l'objet racine est FormLetter
L'URI de l'espace de noms de l'objet racine est http://letterSchema

Exemple #6 Affichage du modèle SDO

Le XML DAS fournit une signification simple pour voir quels types et propriétés ont été chargés. L'instruction PHP "print" ou "echo" affichera les types et les propriétés.

<?php
/**
* Affichage du modèle
*/

$xmldas = SDO_DAS_XML::create("letter.xsd");
print $xmldas;

?>

L'affichage de ce programme sera :

object(SDO_XML_DAS)#1 {
18 types have been defined. The types and their properties are::
1. commonj.sdo:BigDecimal
2. commonj.sdo:BigInteger
3. commonj.sdo:Boolean
4. commonj.sdo:Byte
5. commonj.sdo:Bytes
6. commonj.sdo:ChangeSummary
7. commonj.sdo:Character
8. commonj.sdo:DataObject
9. commonj.sdo:Date
10. commonj.sdo:Double
11. commonj.sdo:Float
12. commonj.sdo:Integer
13. commonj.sdo:Long
14. commonj.sdo:Short
15. commonj.sdo:String
16. commonj.sdo:URI
17. http://letterSchema:FormLetter
    - date (commonj.sdo:String)
    - firstName (commonj.sdo:String)
    - lastName (commonj.sdo:String)
18. http://letterSchema:RootType
    - letters (http://letterSchema:FormLetter)


Fonctions SDO DAS XML

Classes pré-définies

Le XML DAS fournit deux classes principales. La première est SDO_DAS_XML qui est la classe principale utilisée pour récupérer les données depuis le source XML et utilisée pour écrire les données. La seconde est la classe SDO_DAS_XML_Document qui représente les données du document XML.

Il y a également quelques classes d'exceptions qui peuvent être lancées si des erreurs sont trouvées lors d'une recherche ou de l'analyse du fichier xsd ou du fichier XML.

SDO_DAS_XML

C'est la classe principale de XML DAS, qui est utilisée pour récupérer les données depuis le source XML mais également pour écrire les données.

Méthodes

  • create C'est une méthode statique disponible dans la classe SDO_DAS_XML. Utilisée pour construire l'objet SDO_DAS_XML.

  • addTypes Fonctionne de la même manière que la méthode create() mais utilisée pour ajouter de contenu d'un second fichier schéma dans un XML DAS qui a déjà été créé.

  • createDataObject Peut être utilisée pour construire l'objet de données SDO d'un type donnée.

  • createDocument Peut être utilisée pour construire l'objet Document XML.

  • loadFile Charge une instance XML depuis un fichier. Ce fichier peut être en local ou sur un hôte distant.

  • loadString la même chose que la méthode ci-dessus. Charge l'instance XML qui est disponible sous la forme d'une chaîne de caractères.

  • saveFile sauvegarde l'objet SDO_DAS_XML_Document en tant qu'un fichier XML.

  • saveString sauvegarde l'objet SDO_DAS_XML_Document en tant qu'une chaîne de caractères.

SDO_DAS_XML_Document

Cette classe peut être utilisée pour récupérer le nom et l'espace de noms de l'élément document et pour récupérer l'objet racine du document. De plus, elle peut également être utilisée pour définir la version XML et l'encodage du document de sortie.

Méthodes

  • getRootDataObject récupère l'objet racine DataObject.

  • getRootElementName récupère le nom de l'objet racine DataObject.

  • getRootElementURI récupère l'URI de l'objet racine DataObject.

  • setEncoding définit l'encodage en fonction de la valeur fournie.

  • setXMLDeclaration pour définir/supprimer la déclaration XML.

  • setXMLVersion définit la version XML en fonction de la valeur fournie.

SDO_DAS_XML_ParserException

Est une sous classe de SDO_Exception. Lancée pour toutes les erreurs d'analyse lors du chargement des fichiers xsd/xml.

SDO_DAS_XML_FileException

Est une sous classe de SDO_Exception. Lancée par toutes les méthodes qui chargent des données depuis un fichier, lorsque le fichier ne peut être trouvé.

Limitations avec la spécification SDO 2.0

Les » spécifications SDO 2.0 définissent la concordance entre les types XML et les types SDO. Avec Java SDO, la concordance est implémentée par le XMLHelper. Avec SDO pour PHP, cette concordance est implémentée par les Services d'Accès de Données XML. Le XML DAS implémente la concordance décrite dans les spécifications SDO 2.0 avec les restrictions suivantes :

Types Simples XML

  1. Type Simple avec sdoJava:instanceClass - aucun support PHP fourni

  2. Type simple avec sdoJava:extendedInstanceClass - aucun support PHP fourni

  3. Type Simple avec une liste de itemType.

  4. Type Simple avec union.

Types XML complexes

  1. Type complexe avec sdo:aliasName - aucun support PHP pour ces types d'alias SDO.

Attribut XSD

  1. Attribut avec sdo:aliasName - aucun support PHP pour les alias des propriétés SDO.

  2. Attribut avec une valeur par défaut - aucun support PHP pour les propriétés par défaut SDO.

  3. Attribut avec une valeur fixe - aucun support PHP pour les propriétés SDO en lecture seule ou les valeurs par défaut.

  4. Attribut référençant un DataObject avec sdo:propertyType - aucun support pour sdo:propertyType="...".

  5. Attribut avec des propriétés bidirectionnelles d'un DataObject avec sdo:oppositeProperty et sdo:propertyType - aucun support PHP pour l'opposition SDO.

Éléments XSD

  1. Élément avec sdo:aliasName - aucun support PHP pour les alias de propriétés SDO.

  2. Élément avec un groupe de substitution.

Éléments XSD avec un type simple

  1. Élément de SimpleType avec une valeur par défaut - aucun support PHP pour les valeurs par défaut SDO

  2. Élément de SimpleType avec une valeur fixe - aucun support PHP pour les propriétés en lecture seule SDO ou les valeurs par défaut.

  3. Élément de SimpleType avec sdo:string - aucun support pour sdo:string="true".

  4. Élément référençant un objet DataObject avec sdo:propertyType - aucun support pour sdo:propertyType="..."

  5. Élément avec une référence bidirectionnelle pour un object DataObject avec sdo:oppositeProperty et sdo:propertyType - aucun support PHP pour l'opposition SDO.

Sommaire

  • SDO_DAS_XML::addTypes — Pour charger un second ou subséquent fichier schéma à un objet SDO_DAS_XML
  • SDO_DAS_XML::create — Pour créer un objet SDO_DAS_XML pour un fichier de schéma donné
  • SDO_DAS_XML::createDataObject — Crée un SDO_DataObject pour un espace de nom URI et un nom de type donnés
  • SDO_DAS_XML::createDocument — Crée un objet de document XML à partir de zéro, sans avoir besoin de charger un document à partir d'un fichier ou d'une chaîne de caractères
  • SDO_DAS_XML::loadFile — Retourne un objet SDO_DAS_XML_Document pour un chemin donné d'une instance de document xml
  • SDO_DAS_XML::loadString — Retourne un SDO_DAS_XML_Document pour une chaîne de caractères d'instance xml donnée
  • SDO_DAS_XML::saveFile — Sauvegarde l'objet SDO_DAS_XML_Document vers un fichier
  • SDO_DAS_XML::saveString — Sauvegarde l'objet SDO_DAS_XML_Document vers une chaîne de caractères
  • SDO_DAS_XML_Document::getRootDataObject — Retourne la racine de SDO_DataObject
  • SDO_DAS_XML_Document::getRootElementName — Retourne le nom de l'élément racine
  • SDO_DAS_XML_Document::getRootElementURI — Retourne la chaîne de caractères URI de l'élément racine
  • SDO_DAS_XML_Document::setEncoding — Fixe l'encodage à l'aide d'une chaîne de caractères
  • SDO_DAS_XML_Document::setXMLDeclaration — Fixe la déclaration xml
  • SDO_DAS_XML_Document::setXMLVersion — Fixe la version xml à l'aide d'une chaîne de caractères


Pour charger un second ou subséquent fichier schéma à un objet SDO_DAS_XML

  • « Fonctions SDO DAS XML
  • SDO_DAS_XML::create »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Pour charger un second ou subséquent fichier schéma à un objet SDO_DAS_XML

SDO_DAS_XML::addTypes

(^)

SDO_DAS_XML::addTypes — Pour charger un second ou subséquent fichier schéma à un objet SDO_DAS_XML

Description

void SDO_DAS_XML::addTypes ( string $xsd_file )

Charge un second ou subséquent fichier schéma à un XML DAS qui est déjà créé avec la méthode statique create(). Bien que le fichier puisse être n'importe quel fichier de schéma valide, une raison pour laquelle utiliser cette méthode est commode est que pour ajouter un fichier schéma contenant les définitions de types très complexe, par conséquent, le nom. Voyez l'exemple 4 du document parent pour un exemple.

Liste de paramètres

xsd_file

Chemin du Fichier Schéma XSD.

Valeurs de retour

Aucune si réussite, autrement émet une exception comme décrite ci-dessous.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.

SDO_DAS_XML_ParserException

Émis pour n'importe quels problèmes lors de l'analyse du fichier XSD donné.

SDO_DAS_XML_FileException

Émis si le fichier spécifié ne peut être trouvé.


Pour créer un objet SDO_DAS_XML pour un fichier de schéma donné

  • « SDO_DAS_XML::addTypes
  • SDO_DAS_XML::createDataObject »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Pour créer un objet SDO_DAS_XML pour un fichier de schéma donné

SDO_DAS_XML::create

(^)

SDO_DAS_XML::create — Pour créer un objet SDO_DAS_XML pour un fichier de schéma donné

Description

SDO_DAS_XML SDO_DAS_XML::create ([ mixed $xsd_file [, string $key ]] )

Ceci est la seule méthode statique pour la classe SDO_DAS_XML. Utilisée pour instancier l'objet SDO_DAS_XML.

Liste de paramètres

xsd_file

Emplacement du fichier de Schéma XSD. Ceci est optionnel. S'il est omis, un DAS sera créé qui a seulement les types de base SDO de défini. Les fichiers de schéma peuvent être alors chargés avec la méthode addTypes().

key

Valeurs de retour

Retourne un objet SDO_DAS_XML en cas de succès ou autrement elle émet une exception comme décrite ci-dessous.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.

SDO_DAS_XML_ParserException

Émis pour n'importe quels problèmes lors de l'analyse du fichier XSD donné.

SDO_DAS_XML_FileException

Émis si le fichier spécifié ne peut être trouvé.


Crée un SDO_DataObject pour un espace de nom URI et un nom de type donnés

  • « SDO_DAS_XML::create
  • SDO_DAS_XML::createDocument »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Crée un SDO_DataObject pour un espace de nom URI et un nom de type donnés

SDO_DAS_XML::createDataObject

(^)

SDO_DAS_XML::createDataObject — Crée un SDO_DataObject pour un espace de nom URI et un nom de type donnés

Description

SDO_DataObject SDO_DAS_XML::createDataObject ( string $namespace_uri , string $type_name )

Crée un SDO_DataObject pou un espace de nom URI et un nom de type donnés. Le type devrait être défini dans le modèle sous-jacent autrement SDO_TypeNotFoundException sera émis.

Liste de paramètres

namespace_uri

L'espace de nom URI du nom de type.

type_name

Nom de type.

Valeurs de retour

Retourne un SDO_DataObject en cas succès.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.


Crée un objet de document XML à partir de zéro, sans avoir besoin de charger un document à partir d'un fichier ou d'une chaîne de caractères

  • « SDO_DAS_XML::createDataObject
  • SDO_DAS_XML::loadFile »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Crée un objet de document XML à partir de zéro, sans avoir besoin de charger un document à partir d'un fichier ou d'une chaîne de caractères

SDO_DAS_XML::createDocument

(^)

SDO_DAS_XML::createDocument — Crée un objet de document XML à partir de zéro, sans avoir besoin de charger un document à partir d'un fichier ou d'une chaîne de caractères

Description

SDO_DAS_XML_Document SDO_DAS_XML::createDocument ([ string $document_element_name ] )
SDO_DAS_XML_Document SDO_DAS_XML::createDocument ( string $document_element_namespace_URI , string $document_element_name [, SDO_DataObject $dataobject ] )

Crée un objet de document XML. Ceci contiendra seulement un seul élément racine vide dans lequel aucune propriété ne sera fixée. Le but de cet appel est d'autoriser une application de créer un document XML à partir de zéro sans avoir besoin de charger un document à partir d'un fichier ou d'une chaîne de caractères. Le document qui est créé sera comme un document qui aurait été chargé qui contient seulement un seul élément vide avec aucun jeu d'attribut ou d'élément à l'intérieur.

createDocument() peut avoir besoin de savoir quel élément de document il sera. Ceci ne sera pas nécessaire dans les cas simples. Lorsqu'il n'y a pas d'ambiguïté, alors aucun paramètre n'est nécessaire. Cependant, il est possible de charger plus d'un fichier schéma dans le même XML DAS et dans ce cas, il pourrait y avoir plus d'un élément de document possible de défini : de plus, il est même possible qu'il y ait deux éléments de document possibles qui diffèrent seulement avec l'espace de nom. Pour pallier à ce problème dans ces cas, il est possible de spécifier soit le nom de l'élément du document ou le nom et l'espace de nom de l'élément du document à la méthode.

Liste de paramètres

document_element_name

Le nom de l'élément du document. Seulement nécessaire s'il y a plus d'une seule possibilité.

document_element_namespace_URI

L'espace de nom qui fait parti du nom de l'élément du document. Seulement nécessaire s'il y a plus d'un élément de document possible avec le même nom.

dataobject

Valeurs de retour

Retourne un objet SDO_DAS_XML_Document en cas de réussite.

Erreurs / Exceptions

SDO_UnsupportedOperationException

Émis si un nom de l'élément ou le nom de l'élément et l'espace de nom URI est passé, mais qu'ils ne sont pas trouvé dans le modèle sous-jacent.


Retourne un objet SDO_DAS_XML_Document pour un chemin donné d'une instance de document xml

  • « SDO_DAS_XML::createDocument
  • SDO_DAS_XML::loadString »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Retourne un objet SDO_DAS_XML_Document pour un chemin donné d'une instance de document xml

SDO_DAS_XML::loadFile

(^)

SDO_DAS_XML::loadFile — Retourne un objet SDO_DAS_XML_Document pour un chemin donné d'une instance de document xml

Description

SDO_XMLDocument SDO_DAS_XML::loadFile ( string $xml_file )

Construit un arbre de SDO_DataObjects à partir de l'adresse donnée d'une instance de document xml. Retourne un Objet SDO_DAS_XML_Document. Utilisez la méthode SDO_DAS_XML_Document::getRootDataObject pour récupérer l'objet de données racine.

Liste de paramètres

xml_file

Chemin du document d'instance. Cela peut être un chemin à un fichier local ou à une adresse URL.

Valeurs de retour

Retourne un objet SDO_DAS_XML_Document en cas de réussite ou émet une exception comme définie ci-dessous.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.

SDO_PropertyNotFoundException

Émis si une propriété dans un type n'est pas défini dans le modèle sous-jacent.

SDO_DAS_XML_ParserException

Émis pour n'importe quels problèmes lors de l'analyse du fichier XSD donné.

SDO_DAS_XML_FileException

Émis si le fichier spécifié ne peut être trouvé.


Retourne un SDO_DAS_XML_Document pour une chaîne de caractères d'instance xml donnée

  • « SDO_DAS_XML::loadFile
  • SDO_DAS_XML::saveFile »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Retourne un SDO_DAS_XML_Document pour une chaîne de caractères d'instance xml donnée

SDO_DAS_XML::loadString

(^)

SDO_DAS_XML::loadString — Retourne un SDO_DAS_XML_Document pour une chaîne de caractères d'instance xml donnée

Description

SDO_DAS_XML_Document SDO_DAS_XML::loadString ( string $xml_string )

Construit un arbre de SDO_DataObjects à partir d'une chaîne de caractères d'instance xml donnée. Retourne un Objet SDO_DAS_XML_Document. Utilisez la méthode SDO_DAS_XML_Document::getRootDataObject pour récupérer l'objet de données racine.

Liste de paramètres

xml_string

Chaînes de caractères xml.

Valeurs de retour

Retourne un objet SDO_DAS_XML_Document en cas de réussite ou émet une exception comme définie ci-dessous.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.

SDO_PropertyNotFoundException

Émis si une propriété dans un type n'est pas défini dans le modèle sous-jacent.

SDO_DAS_XML_ParserException

Émis pour n'importe quels problèmes lors de l'analyse du fichier XSD donné.


Sauvegarde l'objet SDO_DAS_XML_Document vers un fichier

  • « SDO_DAS_XML::loadString
  • SDO_DAS_XML::saveString »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Sauvegarde l'objet SDO_DAS_XML_Document vers un fichier

SDO_DAS_XML::saveFile

(^)

SDO_DAS_XML::saveFile — Sauvegarde l'objet SDO_DAS_XML_Document vers un fichier

Description

void SDO_DAS_XML::saveFile ( SDO_XMLDocument $xdoc , string $xml_file [, int $indent ] )

Sauvegarde l'objet SDO_DAS_XML_Document vers un fichier.

Liste de paramètres

xdoc

Objet SDO_DAS_XML_Document.

xml_file

Fichier xml.

indent

Argument optionnel pour spécifier si le fichier xml devrait être formaté. Un entier non négatif est le montant d'indentation de chaque niveau du xml. Alors, un entier 2 par exemple, indentera le code XML de manière à ce que chaque élément contenu soit de deux espaces plus loin vers la droite que l'élément parent. L'entier 0 causera le fichier xml à être complètement aligné sur la gauche. Un entier -1 signifie aucun formatage - le fichier xml sera sur une longue ligne.

Valeurs de retour

None.

Erreurs / Exceptions

SDO_DAS_XML_FileException

Émis si le fichier spécifié ne peut être trouvé.


Sauvegarde l'objet SDO_DAS_XML_Document vers une chaîne de caractères

  • « SDO_DAS_XML::saveFile
  • SDO_DAS_XML_Document::getRootDataObject »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Sauvegarde l'objet SDO_DAS_XML_Document vers une chaîne de caractères

SDO_DAS_XML::saveString

(^)

SDO_DAS_XML::saveString — Sauvegarde l'objet SDO_DAS_XML_Document vers une chaîne de caractères

Description

string SDO_DAS_XML::saveString ( SDO_XMLDocument $xdoc [, int $indent ] )

Sauvegarde l'objet SDO_DAS_XML_Document vers une chaîne de caractères

Liste de paramètres

xdoc

Objet SDO_DAS_XML_Document.

indent

Argument optionnel pour spécifier si le fichier xml devrait être formaté. Un entier non négatif est le montant d'indentation de chaque niveau du xml. Alors, un entier 2 par exemple, indentera le xml de manière à ce que chaque élément contenu soit de deux espaces plus loin vers la droite que l'élément parent. L'entier 0 causera le fichier xml à être complètement aligné sur la gauche. Un entier -1 signifie aucun formatage - le fichier xml sera sur une longue ligne.

Valeurs de retour

Chaîne de caractères xml.


Retourne la racine de SDO_DataObject

  • « SDO_DAS_XML::saveString
  • SDO_DAS_XML_Document::getRootElementName »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Retourne la racine de SDO_DataObject

SDO_DAS_XML_Document::getRootDataObject

(^)

SDO_DAS_XML_Document::getRootDataObject — Retourne la racine de SDO_DataObject

Description

SDO_DataObject SDO_DAS_XML_Document::getRootDataObject ( void )

Retourne la racine de SDO_DataObject.

Liste de paramètres

Valeurs de retour

Retourne la racine de SDO_DataObject.


Retourne le nom de l'élément racine

  • « SDO_DAS_XML_Document::getRootDataObject
  • SDO_DAS_XML_Document::getRootElementURI »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Retourne le nom de l'élément racine

SDO_DAS_XML_Document::getRootElementName

(^)

SDO_DAS_XML_Document::getRootElementName — Retourne le nom de l'élément racine

Description

string SDO_DAS_XML_Document::getRootElementName ( void )

Retourne le nom de l'élément racine.

Liste de paramètres

Valeurs de retour

Retourne le nom de l'élément racine.


Retourne la chaîne de caractères URI de l'élément racine

  • « SDO_DAS_XML_Document::getRootElementName
  • SDO_DAS_XML_Document::setEncoding »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Retourne la chaîne de caractères URI de l'élément racine

SDO_DAS_XML_Document::getRootElementURI

(^)

SDO_DAS_XML_Document::getRootElementURI — Retourne la chaîne de caractères URI de l'élément racine

Description

string SDO_DAS_XML_Document::getRootElementURI ( void )

Retourne la chaîne de caractères URI de l'élément racine.

Liste de paramètres

Valeurs de retour

Retourne la chaîne de caractères URI de l'élément racine.


Fixe l'encodage à l'aide d'une chaîne de caractères

  • « SDO_DAS_XML_Document::getRootElementURI
  • SDO_DAS_XML_Document::setXMLDeclaration »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Fixe l'encodage à l'aide d'une chaîne de caractères

SDO_DAS_XML_Document::setEncoding

(^)

SDO_DAS_XML_Document::setEncoding — Fixe l'encodage à l'aide d'une chaîne de caractères

Description

void SDO_DAS_XML_Document::setEncoding ( string $encoding )

Fixe l'encodage à l'aide d'une chaîne de caractères.

Liste de paramètres

encoding

Chaîne de caractères d'encodage.

Valeurs de retour

Aucune.


Fixe la déclaration xml

  • « SDO_DAS_XML_Document::setEncoding
  • SDO_DAS_XML_Document::setXMLVersion »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Fixe la déclaration xml

SDO_DAS_XML_Document::setXMLDeclaration

(^)

SDO_DAS_XML_Document::setXMLDeclaration — Fixe la déclaration xml

Description

void SDO_DAS_XML_Document::setXMLDeclaration ( bool $xmlDeclatation )

Contrôle si une déclaration XML sera générée au début du document XML. Fixez à TRUE pour générer la déclaration XML ou à FALSE pour la supprimer.

Liste de paramètres

xmlDeclatation

Valeur booléenne pour fixer la déclaration XML.

Valeurs de retour

Aucune.


Fixe la version xml à l'aide d'une chaîne de caractères

  • « SDO_DAS_XML_Document::setXMLDeclaration
  • SimpleXML »
  • PHP Manual
  • Fonctions SDO DAS XML
  • Fixe la version xml à l'aide d'une chaîne de caractères

SDO_DAS_XML_Document::setXMLVersion

(^)

SDO_DAS_XML_Document::setXMLVersion — Fixe la version xml à l'aide d'une chaîne de caractères

Description

void SDO_DAS_XML_Document::setXMLVersion ( string $xmlVersion )

Fixe la version xml à l'aide d'une chaîne de caractères.

Liste de paramètres

xmlVersion

Version xml en chaîne de caractères.

Valeurs de retour

Aucune.


SimpleXML

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation de base SimpleXML
    • Traitement des erreurs XML
  • SimpleXMLElement — La classe SimpleXMLElement
    • SimpleXMLElement::addAttribute — Ajoute un attribut à l'élément SimpleXML
    • SimpleXMLElement::addChild — Ajoute un élément enfant au noeud XML
    • SimpleXMLElement::asXML — Retourne une chaîne XML basée sur un élément SimpleXML
    • SimpleXMLElement::attributes — Identifie les attributs d'un élément
    • SimpleXMLElement::children — Cherche les fils d'un noeud donné
    • SimpleXMLElement::__construct — Crée un nouvel objet SimpleXMLElement
    • SimpleXMLElement::count — Compte le nombre de fils pour un élément
    • SimpleXMLElement::getDocNamespaces — Retourne les espaces de noms déclarés dans un document
    • SimpleXMLElement::getName — Récupère le nom d'un élément XML
    • SimpleXMLElement::getNamespaces — Retourne les espaces de noms utilisés dans un document
    • SimpleXMLElement::registerXPathNamespace — Crée un contexte préfixe/ns pour la prochaine requête XPath
    • SimpleXMLElement::saveXML — Alias de SimpleXMLElement::asXML
    • SimpleXMLElement::__toString — Retourne le contenu sous forme de chaine
    • SimpleXMLElement::xpath — Exécute une requête Xpath sur des données XML
  • SimpleXMLIterator — La classe SimpleXMLIterator
    • SimpleXMLIterator::current — Retourne l'entrée courante
    • SimpleXMLIterator::getChildren — Retourne un itérateur pour l'entrée courante, si c'est un objet SimpleXML
    • SimpleXMLIterator::hasChildren — Indique si l'entrée courante de SimpleXML est un objet
    • SimpleXMLIterator::key — Retourne la clé courante
    • SimpleXMLIterator::next — Se déplace sur l'entrée SimpleXML suivante
    • SimpleXMLIterator::rewind — Replace le pointeur SimpleXML au début
    • SimpleXMLIterator::valid — Vérifie si une ressource SimpleXML contient d'autres entrées
  • Fonctions SimpleXML
    • simplexml_import_dom — Construit un objet SimpleXMLElement à partir d'un objet DOM
    • simplexml_load_file — Convertit un fichier XML en objet
    • simplexml_load_string — Convertit une chaîne XML en objet


Introduction

L'extension SimpleXML fournit des outils très simples et faciles à utiliser pour convertir du XML en un objet qui peut être manipulé avec ses propriétés et les itérateurs de tableaux.


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.

L'extension SimpleXML requiert PHP 5.


Installation

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-simplexml

Note : Avant PHP 5.1.2, --enable-simplexml est nécessaire pour activer cette extension.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • SimpleXML
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


  • « Constantes pré-définies
  • Utilisation de base SimpleXML »
  • PHP Manual
  • SimpleXML
  • Exemples

Exemples

Sommaire

  • Utilisation de base SimpleXML
  • Traitement des erreurs XML


Utilisation de base SimpleXML

Plusieurs exemples de ce chapitre requièrent une chaîne XML. Plutôt que de la répéter à chaque exemple, nous allons la placer dans un fichier que nous inclurons dans chacun d'entre eux. Le contenu de ce fichier est illustré par l'exemple qui suit. Autrement, vous pouvez créer un document XML et le lire avec simplexml_load_file().

Exemple #1 Fichier avec une chaîne XML qui sera inclus partout

<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#211;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>
XML;
?>

La simplicité de SimpleXML apparaît plus clairement lorsqu'on essaye d'extraire une chaîne ou un nombre d'un document XML basique.

Exemple #2 Lecture de <plot>

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

echo $movies->movie[0]->plot;
?>

L'exemple ci-dessus va afficher :

   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.

L'accès aux éléments d'un document XML qui contient des caractères non permis par rapport à la convention de nommage de PHP (e.g. les mots clés) est possible en encapsulant le nom de l'élément entre crochets et apostrophes.

Exemple #3 Récupération de <line>

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

echo $movies->movie->{'great-lines'}->line;
?>

L'exemple ci-dessus va afficher :

PHP solves all my web problems

Exemple #4 Accéder à un élément non-unique avec SimpleXML

Lorsque plusieurs instances d'un élément existent en tant que fils d'un élément père unique, les techniques normales d'itération peuvent être appliquées.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

/* Pour chaque <character>, nous affichons un <name>. */
foreach ($movies->movie->characters->character as $character) {
   echo $character->name, ' played by ', $character->actor, PHP_EOL;
}

?>

L'exemple ci-dessus va afficher :

Ms. Coder played by Onlivia Actora
Mr. Coder played by El ActÓr

Note:

Les propriétés ($movies->movie dans notre précédent exemple) ne sont pas des tableaux. Ceux sont des objets itérables et accessibles.

Exemple #5 Utilisation des attributs

Jusque là, nous n'avons couvert que la lecture des noms d'éléments et leurs valeurs. SimpleXML peut aussi atteindre leurs attributs. L'accès aux attributs d'un élément se fait de la même façon que l'accès aux éléments d'un tableau.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

/* Accès au node <rating> du premier <movie>.
 * Affichage des attributs de <rating> également. */
foreach ($movies->movie[0]->rating as $rating) {
    switch((string) $rating['type']) { // Récupération des attributs comme indices d'éléments
    case 'thumbs':
        echo $rating, ' thumbs up';
        break;
    case 'stars':
        echo $rating, ' stars';
        break;
    }
}
?>

L'exemple ci-dessus va afficher :

7 thumbs up5 stars

Exemple #6 Comparaison des éléments et des attributs avec du texte

Pour comparer un élément ou un attribut avec une chaîne de caractères ou pour le passer à une fonction qui nécessite une chaîne de caractères, vous devez le transtyper en une chaîne en utilisant (string). Sinon, PHP traitera l'élément comme un objet.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

if ((string) $movies->movie->title == 'PHP: Behind the Parser') {
    print 'My favorite movie.';
}

echo htmlentities((string) $movies->movie->title);
?>

L'exemple ci-dessus va afficher :

My favorite movie.PHP: Behind the Parser

Exemple #7 Comparaison de 2 éléments

Deux objets SimpleXMLElement sont considérés comme différents même s'ils pointent vers le même élément, depuis PHP 5.2.0.

<?php
include 'example.php';

$movies1 = new SimpleXMLElement($xmlstr);
$movies2 = new SimpleXMLElement($xmlstr);
var_dump($movies1 == $movies2); // retourne false depuis PHP 5.2.0
?>

L'exemple ci-dessus va afficher :

bool(false)

Exemple #8 Utilisation de XPath

SimpleXML inclut le support embarqué de XPath. Pour trouver tous les éléments <character> :

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

foreach ($movies->xpath('//character') as $character) {
    echo $character->name, ' played by ', $character->actor, PHP_EOL;
}
?>

'//' sert de joker. Pour spécifier un chemin absolu, enlevez un slash.

L'exemple ci-dessus va afficher :

Ms. Coder played by Onlivia Actora
Mr. Coder played by El ActÓr

Exemple #9 Attribuer des valeurs

Les données dans SimpleXML n'ont pas à être constantes. L'objet permet la manipulation de tous ces éléments.

<?php
include 'example.php';
$movies = new SimpleXMLElement($xmlstr);

$movies->movie[0]->characters->character[0]->name = 'Miss Coder';

echo $movies->asXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Miss Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>

Exemple #10 Ajout d'éléments et d'attributs

Depuis PHP 5.1.3, SimpleXML est capable d'ajouter facilement des enfants et des attributs.

<?php
include 'example.php';
$movies = new SimpleXMLElement($xmlstr);

$character = $movies->movie[0]->characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movies->movie[0]->addChild('rating', 'PG');
$rating->addAttribute('type', 'mpaa');

echo $movies->asXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  <character><name>Mr. Parser</name><actor>John Doe</actor></character></characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 <rating type="mpaa">PG</rating></movie>
</movies>

Exemple #11 Interopérabilité DOM

PHP possède un mécanisme pour convertir les noeuds XML entre les formats SimpleXML et DOM. Cet exemple montre comment changer un élément DOM en SimpleXML.

<?php
$dom = new DOMDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
    echo 'Erreur lors de l\'analyse du document';
    exit;
}

$books = simplexml_import_dom($dom);

echo $books->book[0]->title;
?>

L'exemple ci-dessus va afficher :

blah


Traitement des erreurs XML

Le traitement des erreurs XML lors du chargement d'un document est une tâche simple. En utilisant les fonctionnalités libxml, il est possible de supprimer toutes les erreurs XML lors du chargement d'un document, puis, de les parcourir.

L'objet libXMLError, retourné par la fonction libxml_get_errors(), contient plusieurs propriétés dont le message, la ligne et la colonne (position) de l'erreur.

Exemple #1 Chargement de chaînes XML cassées

<?php
libxml_use_internal_errors(true);
$sxe = simplexml_load_string("<?xml version='1.0'><broken><xml></broken>");
if ($sxe === false) {
    echo "Erreur lors du chargement du XML\n";
    foreach(libxml_get_errors() as $error) {
        echo "\t", $error->message;
    }
}
?>

L'exemple ci-dessus va afficher :

Erreur lors du chargement du XML
    Blank needed here
    parsing XML declaration: '?>' expected
    Opening and ending tag mismatch: xml line 1 and broken
    Premature end of data in tag broken line 1

Voir aussi

  • libxml_use_internal_errors()
  • libxml_get_errors()
  • libXMLError


La classe SimpleXMLElement

(PHP 5 >= 5.0.1, PHP 7)

Introduction

Représente un élément du document XML.

Synopsis de la classe

SimpleXMLElement implements Traversable {
/* Méthodes */
final public __construct ( string $data [, int $options = 0 [, bool $data_is_url = false [, string $ns = "" [, bool $is_prefix = false ]]]] )
public void addAttribute ( string $name [, string $value [, string $namespace ]] )
public SimpleXMLElement addChild ( string $name [, string $value [, string $namespace ]] )
public mixed asXML ([ string $filename ] )
public SimpleXMLElement attributes ([ string $ns = NULL [, bool $is_prefix = false ]] )
public SimpleXMLElement children ([ string $ns [, bool $is_prefix = false ]] )
public int count ( void )
public array getDocNamespaces ([ bool $recursive = false [, bool $from_root = true ]] )
public string getName ( void )
public array getNamespaces ([ bool $recursive = false ] )
public bool registerXPathNamespace ( string $prefix , string $ns )
public string __toString ( void )
public array xpath ( string $path )
}

Sommaire

  • SimpleXMLElement::addAttribute — Ajoute un attribut à l'élément SimpleXML
  • SimpleXMLElement::addChild — Ajoute un élément enfant au noeud XML
  • SimpleXMLElement::asXML — Retourne une chaîne XML basée sur un élément SimpleXML
  • SimpleXMLElement::attributes — Identifie les attributs d'un élément
  • SimpleXMLElement::children — Cherche les fils d'un noeud donné
  • SimpleXMLElement::__construct — Crée un nouvel objet SimpleXMLElement
  • SimpleXMLElement::count — Compte le nombre de fils pour un élément
  • SimpleXMLElement::getDocNamespaces — Retourne les espaces de noms déclarés dans un document
  • SimpleXMLElement::getName — Récupère le nom d'un élément XML
  • SimpleXMLElement::getNamespaces — Retourne les espaces de noms utilisés dans un document
  • SimpleXMLElement::registerXPathNamespace — Crée un contexte préfixe/ns pour la prochaine requête XPath
  • SimpleXMLElement::saveXML — Alias de SimpleXMLElement::asXML
  • SimpleXMLElement::__toString — Retourne le contenu sous forme de chaine
  • SimpleXMLElement::xpath — Exécute une requête Xpath sur des données XML


Ajoute un attribut à l'élément SimpleXML

  • « SimpleXMLElement
  • SimpleXMLElement::addChild »
  • PHP Manual
  • SimpleXMLElement
  • Ajoute un attribut à l'élément SimpleXML

SimpleXMLElement::addAttribute

(PHP 5 >= 5.1.3, PHP 7)

SimpleXMLElement::addAttribute — Ajoute un attribut à l'élément SimpleXML

Description

public void SimpleXMLElement::addAttribute ( string $name [, string $value [, string $namespace ]] )

Ajoute un attribut à l'élément SimpleXML.

Liste de paramètres

name

Le nom de l'attribut à ajouter.

value

La valeur de l'attribut.

namespace

Si spécifié, l'espace de nom auquel l'attribut appartient.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Note:

Les exemples listés incluent parfois example.php, ceci fait référence à la chaine XML du premier exemple de l'utilisation de base.

Exemple #1 Ajoute des attributs et enfants à un élément SimpleXML

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: More Parser Stories</title>
  <plot>This is all about the people who make it work.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Voir aussi

  • SimpleXMLElement::addChild() - Ajoute un élément enfant au noeud XML
  • Utilisation de base SimpleXML


Ajoute un élément enfant au noeud XML

  • « SimpleXMLElement::addAttribute
  • SimpleXMLElement::asXML »
  • PHP Manual
  • SimpleXMLElement
  • Ajoute un élément enfant au noeud XML

SimpleXMLElement::addChild

(PHP 5 >= 5.1.3, PHP 7)

SimpleXMLElement::addChild — Ajoute un élément enfant au noeud XML

Description

public SimpleXMLElement SimpleXMLElement::addChild ( string $name [, string $value [, string $namespace ]] )

Ajoute un élément enfant au noeud et retourne un SimpleXMLElement de l'enfant.

Liste de paramètres

name

Le nom de l'élément enfant à ajouter.

value

Si spécifié, la valeur de l'élément enfant.

namespace

Si spécifié, l'espace de nom auquel l'élément enfant appartient.

Valeurs de retour

La méthode addChild retourne un objet SimpleXMLElement représentant l'enfant à ajouter au noeud XML.

Exemples

Note:

Les exemples listés incluent parfois example.php, ceci fait référence à la chaine XML du premier exemple de l'utilisation de base.

Exemple #1 Ajoute des attributs et des enfants à un élément SimpleXML

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: More Parser Stories</title>
  <plot>This is all about the people who make it work.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Voir aussi

  • SimpleXMLElement::addAttribute() - Ajoute un attribut à l'élément SimpleXML
  • Utilisation de base SimpleXML


Retourne une chaîne XML basée sur un élément SimpleXML

  • « SimpleXMLElement::addChild
  • SimpleXMLElement::attributes »
  • PHP Manual
  • SimpleXMLElement
  • Retourne une chaîne XML basée sur un élément SimpleXML

SimpleXMLElement::asXML

(PHP 5 >= 5.0.1, PHP 7)

SimpleXMLElement::asXML — Retourne une chaîne XML basée sur un élément SimpleXML

Description

public mixed SimpleXMLElement::asXML ([ string $filename ] )

Formate les données de l'objet parent en XML 1.0.

Liste de paramètres

filename

Si spécifié, la fonction écrit les données au fichier au lieu de les retourner.

Valeurs de retour

Si le paramètre filename n'est pas spécifié, la fonction retourne une chaîne de caractères en cas de succès et FALSE en cas d'erreur. Si le paramètre est spécifié, elle retourne TRUE si le fichier a été écrit correctement et FALSE autrement.

Exemples

Exemple #1 Obtenir du XML avec SimpleXML

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

echo $xml->asXML();

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>

SimpleXMLElement::asXML() fonctionne aussi avec les résultats Xpath :

Exemple #2 Utilisation de SimpleXMLElement::asXML() avec les résultats de SimpleXMLElement::xpath()

<?php
// Suite de l'exemple plus haut.

/* On cherche <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo $node->asXML();
}
?>

L'exemple ci-dessus va afficher :

<c>text</c><c>stuff</c>

Voir aussi

  • SimpleXMLElement::__toString() - Retourne le contenu sous forme de chaine
  • Utilisation de base SimpleXML


Identifie les attributs d'un élément

  • « SimpleXMLElement::asXML
  • SimpleXMLElement::children »
  • PHP Manual
  • SimpleXMLElement
  • Identifie les attributs d'un élément

SimpleXMLElement::attributes

(PHP 5 >= 5.0.1, PHP 7)

SimpleXMLElement::attributes — Identifie les attributs d'un élément

Description

public SimpleXMLElement SimpleXMLElement::attributes ([ string $ns = NULL [, bool $is_prefix = false ]] )

Fournit les attributs et les valeurs définies dans une balise XML.

Note: SimpleXML ajoute des propriétés itératives pour presque toutes ses méthodes. Celles-ci ne peuvent être vues en utilisant var_dump() ou tout autre fonction qui examine les objets.

Liste de paramètres

ns

Un espace de noms optionnel pour les attributs récupérés

is_prefix

Par défaut, vaut FALSE

Valeurs de retour

Retourne un objet SimpleXMLElement permettant de retrouver tous les attributs d'une balise.

Retourne NULL si appelé sur un objet SimpleXMLElement qui représente déjà un attribut et non une balise.

Exemples

Exemple #1 Interprétation d'une chaîne XML

<?php
$string = <<<XML
<a>
 <foo name="one" game="lonely">1</foo>
</a>
XML;

$xml = simplexml_load_string($string);
foreach($xml->foo[0]->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}
?>

L'exemple ci-dessus va afficher :

name="one"
game="lonely"

Voir aussi

  • Utilisation de base SimpleXML


Cherche les fils d'un noeud donné

  • « SimpleXMLElement::attributes
  • SimpleXMLElement::__construct »
  • PHP Manual
  • SimpleXMLElement
  • Cherche les fils d'un noeud donné

SimpleXMLElement::children

(PHP 5 >= 5.0.1, PHP 7)

SimpleXMLElement::children — Cherche les fils d'un noeud donné

Description

public SimpleXMLElement SimpleXMLElement::children ([ string $ns [, bool $is_prefix = false ]] )

Cette méthode cherche les fils d'un élément. Le résultat suit les règles de l'itération normale.

Note: SimpleXML ajoute des propriétés itératives pour presque toutes ses méthodes. Celles-ci ne peuvent être vues en utilisant var_dump() ou tout autre fonction qui examine les objets.

Liste de paramètres

ns

Un espace de noms XML.

is_prefix

Si is_prefix vaut TRUE, ns sera considéré comme un préfixe. S'il vaut FALSE, ns sera considéré comme une URL vers un espace de noms.

Valeurs de retour

Retourne un élément SimpleXMLElement que le noeud possède un fils ou pas.

Historique

Version | Description
5.2.0 | Le paramètre optionnel is_prefix a été ajouté.

Exemples

Exemple #1 Parcours d'un pseudo-tableau children()

<?php
$xml = new SimpleXMLElement(
'<person>
 <child role="son">
  <child role="daughter"/>
 </child>
 <child role="daughter">
  <child role="son">
   <child role="son"/>
  </child>
 </child>
</person>');

foreach ($xml->children() as $second_gen) {
    echo ' The person begot a ' . $second_gen['role'];

    foreach ($second_gen->children() as $third_gen) {
        echo ' who begot a ' . $third_gen['role'] . ';';

        foreach ($third_gen->children() as $fourth_gen) {
            echo ' and that ' . $third_gen['role'] .
                ' begot a ' . $fourth_gen['role'];
        }
    }
}
?>

L'exemple ci-dessus va afficher :

The person begot a son who begot a daughter; The person
begot a daughter who begot a son; and that son begot a son

Exemple #2 Utilisation des espaces de noms

<?php
$xml = '<example xmlns:foo="my.foo.urn">
  <foo:a>Apple</foo:a>
  <foo:b>Banana</foo:b>
  <c>Cherry</c>
</example>';

$sxe = new SimpleXMLElement($xml);

$kids = $sxe->children('foo');
var_dump(count($kids));

$kids = $sxe->children('foo', TRUE);
var_dump(count($kids));

$kids = $sxe->children('my.foo.urn');
var_dump(count($kids));

$kids = $sxe->children('my.foo.urn', TRUE);
var_dump(count($kids));

$kids = $sxe->children();
var_dump(count($kids));
?>
int(0)
int(2)
int(2)
int(0)
int(1)

Notes

SimpleXMLElement::children() retourne un noeud, peu importe si le noeud courant a un fils ou non. Utilisez la fonction count() sur le résultat pour vérifier si des fils existent. SimpleXMLElement::count() peut aussi être utilisée à cet effet à partir de PHP 5.3.0.

Voir aussi

  • SimpleXMLElement::count() - Compte le nombre de fils pour un élément
  • count() - Compte tous les éléments d'un tableau ou quelque chose d'un objet


Crée un nouvel objet SimpleXMLElement

  • « SimpleXMLElement::children
  • SimpleXMLElement::count »
  • PHP Manual
  • SimpleXMLElement
  • Crée un nouvel objet SimpleXMLElement

SimpleXMLElement::__construct

(PHP 5 >= 5.0.1, PHP 7)

SimpleXMLElement::__construct — Crée un nouvel objet SimpleXMLElement

Description

final public SimpleXMLElement::__construct ( string $data [, int $options = 0 [, bool $data_is_url = false [, string $ns = "" [, bool $is_prefix = false ]]]] )

Crée un nouvel objet SimpleXMLElement.

Liste de paramètres

data

Une chaîne de caractères XML bien formée ou le chemin d'accès ou un URL pointant à un document XML si data_is_url vaut TRUE.

options

Optionnellement utilisé pour spécifier des paramètres Libxml additionnels.

data_is_url

Par défaut, data_is_url vaut FALSE. Utilisez TRUE pour spécifier que le paramètre data est un chemin d'accès ou un URL pointant à un document XML au lieu d'une chaîne de caractères de données.

ns

Préfixe d'espace de noms ou URI.

is_prefix

TRUE si ns est un préfix, FALSE sinon. Valeur par défaut : FALSE.

Valeurs de retour

Retourne un objet SimpleXMLElement représentant les données data.

Erreurs / Exceptions

Produit un message d'erreur de type E_WARNING pour chaque erreur trouvée dans les données XML et lance également une exception si les données XML ne peuvent re analysées.

Astuce

Utilisez la fonction libxml_use_internal_errors() pour supprimer toutes les erreurs XML et la fonction libxml_get_errors() pour les parcourir.

Exemples

Note:

Les exemples listés incluent parfois example.php, ceci fait référence à la chaine XML du premier exemple de l'utilisation de base.

Exemple #1 Crée un objet SimpleXMLElement

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
echo $sxe->movie[0]->title;

?>

L'exemple ci-dessus va afficher :

PHP: Behind the Parser

Exemple #2 Crée un objet SimpleXMLElement à partir d'un URL

<?php

$sxe = new SimpleXMLElement('http://example.org/document.xml', NULL, TRUE);
echo $sxe->asXML();

?>

Historique

Version | Description
5.2.0 | Ajout des paramètres ns et is_prefix.
5.1.2 | Ajout des paramètres options et data_is_url.

Voir aussi

  • Utilisation de base SimpleXML
  • simplexml_load_string() - Convertit une chaîne XML en objet
  • simplexml_load_file() - Convertit un fichier XML en objet
  • Traitement des erreurs XML
  • libxml_use_internal_errors() - Désactive le rapport d'erreur libxml et les stocke pour lecture ultérieure


Compte le nombre de fils pour un élément

  • « SimpleXMLElement::__construct
  • SimpleXMLElement::getDocNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Compte le nombre de fils pour un élément

SimpleXMLElement::count

(PHP 5 >= 5.3.0, PHP 7)

SimpleXMLElement::count — Compte le nombre de fils pour un élément

Description

public int SimpleXMLElement::count ( void )

Cette méthode compte le nombre de fils d'un élément.

Valeurs de retour

Retourne le nombre de fils d'un élément.

Exemples

Exemple #1 Comptage du nombre de fils

<?php
$xml = <<<EOF
<people>
 <person name="Person 1">
  <child/>
  <child/>
  <child/>
 </person>
 <person name="Person 2">
  <child/>
  <child/>
  <child/>
  <child/>
  <child/>
 </person>
</people>
EOF;

$elem = new SimpleXMLElement($xml);

foreach ($elem as $person) {
    printf("%s has got %d children.\n", $person['name'], $person->count());
}
?>

L'exemple ci-dessus va afficher :

Person 1 has got 3 children.
Person 2 has got 5 children.

Voir aussi

  • SimpleXMLElement::children() - Cherche les fils d'un noeud donné


Retourne les espaces de noms déclarés dans un document

  • « SimpleXMLElement::count
  • SimpleXMLElement::getName »
  • PHP Manual
  • SimpleXMLElement
  • Retourne les espaces de noms déclarés dans un document

SimpleXMLElement::getDocNamespaces

(PHP 5 >= 5.1.2, PHP 7)

SimpleXMLElement::getDocNamespaces — Retourne les espaces de noms déclarés dans un document

Description

public array SimpleXMLElement::getDocNamespaces ([ bool $recursive = false [, bool $from_root = true ]] )

Retourne les espaces de noms déclarés dans un document.

Liste de paramètres

recursive

Si spécifié, retourne tous les espaces de noms déclarés dans les noeuds parents et enfants. Sinon, retourne uniquement les espaces de noms déclarés dans le noeud racine.

from_root

Vous permet de vérifier récursivement les espaces de noms sous un noeud fils au lieu d'effectuer cette vérification depuis la racine du document XML.

Valeurs de retour

La méthode getDocNamespaces retourne un tableau d'espaces de noms avec leurs URL associées.

Exemples

Exemple #1 Récupère les espaces de noms du document

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns">
    <p:person id="1">John Doe</p:person>
    <p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces();
var_dump($namespaces);

?>

L'exemple ci-dessus va afficher :

array(1) {
   ["p"]=>
   string(21) "http://example.org/ns"
}

Exemple #2 Travail avec plusieurs espaces de noms

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
    <p:person t:id="1">John Doe</p:person>
    <p:person t:id="2" a:addr="123 Street" xmlns:a="http://example.org/addr">
        Susie Q. Public
    </p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces(TRUE);
var_dump($namespaces);

?>

L'exemple ci-dessus va afficher :

array(3) {
  ["p"]=>
  string(21) "http://example.org/ns"
  ["t"]=>
  string(23) "http://example.org/test"
  ["a"]=>
  string(23) "http://example.org/addr"
}

Historique

Version | Description
5.4.0 | Ajout du paramètre from_root.

Voir aussi

  • SimpleXMLElement::getNamespaces() - Retourne les espaces de noms utilisés dans un document
  • SimpleXMLElement::registerXPathNamespace() - Crée un contexte préfixe/ns pour la prochaine requête XPath


Récupère le nom d'un élément XML

  • « SimpleXMLElement::getDocNamespaces
  • SimpleXMLElement::getNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Récupère le nom d'un élément XML

SimpleXMLElement::getName

(PHP 5 >= 5.1.3, PHP 7)

SimpleXMLElement::getName — Récupère le nom d'un élément XML

Description

public string SimpleXMLElement::getName ( void )

Récupère le nom d'un élément XML.

Valeurs de retour

La méthode getName retourne un nom sous la forme de chaîne de caractères d'une balise XML référencé par l'objet SimpleXMLElement.

Exemples

Note:

Les exemples listés incluent parfois example.php, ceci fait référence à la chaine XML du premier exemple de l'utilisation de base.

Exemple #1 Récupère les noms des éléments XML

<?php
include 'example.php';
$sxe = new SimpleXMLElement($xmlstr);

echo $sxe->getName() . "\n";

foreach ($sxe->children() as $child)
{
    echo $child->getName() . "\n";
}

?>

L'exemple ci-dessus va afficher :

movies
movie


Retourne les espaces de noms utilisés dans un document

  • « SimpleXMLElement::getName
  • SimpleXMLElement::registerXPathNamespace »
  • PHP Manual
  • SimpleXMLElement
  • Retourne les espaces de noms utilisés dans un document

SimpleXMLElement::getNamespaces

(PHP 5 >= 5.1.2, PHP 7)

SimpleXMLElement::getNamespaces — Retourne les espaces de noms utilisés dans un document

Description

public array SimpleXMLElement::getNamespaces ([ bool $recursive = false ] )

Retourne les espaces de noms utilisés dans un document.

Liste de paramètres

recursive

Si spécifié, retourne tous les espaces de noms utilisés dans les noeuds parents et enfants. Sinon, retourne uniquement les espaces de noms utilisés dans le noeud racine.

Valeurs de retour

La méthode getNamespaces retourne un tableau d'espaces de noms avec leurs URL associés.

Exemples

Exemple #1 Récupère les espaces de noms utilisés dans un document

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
    <p:person id="1">John Doe</p:person>
    <p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getNamespaces(true);
var_dump($namespaces);

?>

L'exemple ci-dessus va afficher :

array(1) {
  ["p"]=>
  string(21) "http://example.org/ns"
}

Voir aussi

  • SimpleXMLElement::getDocNamespaces() - Retourne les espaces de noms déclarés dans un document
  • SimpleXMLElement::registerXPathNamespace() - Crée un contexte préfixe/ns pour la prochaine requête XPath


Crée un contexte préfixe/ns pour la prochaine requête XPath

  • « SimpleXMLElement::getNamespaces
  • SimpleXMLElement::saveXML »
  • PHP Manual
  • SimpleXMLElement
  • Crée un contexte préfixe/ns pour la prochaine requête XPath

SimpleXMLElement::registerXPathNamespace

(PHP 5 >= 5.2.0, PHP 7)

SimpleXMLElement::registerXPathNamespace — Crée un contexte préfixe/ns pour la prochaine requête XPath

Description

public bool SimpleXMLElement::registerXPathNamespace ( string $prefix , string $ns )

Crée un contexte préfixe/ns pour la prochaine requête XPath. En particulier, ceci est utile si le fournisseur du document XML donné modifie les préfixes d'espace de nom. registerXPathNamespace créera un préfixe pour l'espace de nom associé, autorisant l'accès aux noeuds dans cet espace de nom sans avoir besoin de changer le code pour autoriser les nouveaux préfixes dictés par le fournisseur.

Liste de paramètres

prefix

Le préfixe d'espace de nom à utiliser dans la requête XPath pour l'espace de nom donnée dans ns.

ns

L'espace de nom à utiliser pour la requête XPath. Ceci doit concorder avec un espace de nom qui est utilisé par le document XML, sinon la requête XPath qui utilise prefix ne retournera aucun résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Fixe un préfixe d'espace de nom pour utiliser dans une requête XPath

<?php

$xml = <<<EOD
<book xmlns:chap="http://example.org/chapter-title">
    <title>My Book</title>
    <chapter id="1">
        <chap:title>Chapter 1</chap:title>
        <para>Donec velit. Nullam eget tellus vitae tortor gravida scelerisque.
            In orci lorem, cursus imperdiet, ultricies non, hendrerit et, orci.
            Nulla facilisi. Nullam velit nisl, laoreet id, condimentum ut,
            ultricies id, mauris.</para>
    </chapter>
    <chapter id="2">
        <chap:title>Chapter 2</chap:title>
        <para>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin
            gravida. Phasellus tincidunt massa vel urna. Proin adipiscing quam
            vitae odio. Sed dictum. Ut tincidunt lorem ac lorem. Duis eros
            tellus, pharetra id, faucibus eu, dapibus dictum, odio.</para>
    </chapter>
</book>
EOD;

$sxe = new SimpleXMLElement($xml);

$sxe->registerXPathNamespace('c', 'http://example.org/chapter-title');
$result = $sxe->xpath('//c:title');

foreach ($result as $title) {
  echo $title . "\n";
}

?>

L'exemple ci-dessus va afficher :

Chapter 1
Chapter 2

Notez comment le document XML montré dans cet exemple fixe un espace de nom avec le préfixe chap. Imaginez que ce document (ou un autre similaire) puisse avoir utilisé un préfixe c dans le passé pour le même espace de nom. Puisqu'il a changé, la requête XPath ne retournerait plus les résultats appropriés et la requête devrait être modifiée. L'utilisation de registerXPathNamespace évite les modifications futures de la requête même si le fournisseur change le préfixe d'espace de nom.

Voir aussi

  • SimpleXMLElement::xpath() - Exécute une requête Xpath sur des données XML
  • SimpleXMLElement::getDocNamespaces() - Retourne les espaces de noms déclarés dans un document
  • SimpleXMLElement::getNamespaces() - Retourne les espaces de noms utilisés dans un document


Alias de SimpleXMLElement::asXML

  • « SimpleXMLElement::registerXPathNamespace
  • SimpleXMLElement::__toString »
  • PHP Manual
  • SimpleXMLElement
  • Alias de SimpleXMLElement::asXML

SimpleXMLElement::saveXML

(PHP 5 >= 5.2.0, PHP 7)

SimpleXMLElement::saveXML — Alias de SimpleXMLElement::asXML()

Description

Cette méthode est un alias de: SimpleXMLElement::asXML()


Retourne le contenu sous forme de chaine

  • « SimpleXMLElement::saveXML
  • SimpleXMLElement::xpath »
  • PHP Manual
  • SimpleXMLElement
  • Retourne le contenu sous forme de chaine

SimpleXMLElement::__toString

(No version information available, might only be in Git)

SimpleXMLElement::__toString — Retourne le contenu sous forme de chaine

Description

public string SimpleXMLElement::__toString ( void )

Retourne le contenu texte stocké directement dans l'élément. Ne retourne pas le contenu texte stocké dans les éléments enfants.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le contenu sous forme de chaine de caractères, ou retourne une chaine vide en cas d'erreur.

Exemples

Exemple #1 Récupérer le contenu chaine

<?php
$xml = new SimpleXMLElement('<a>1 <b>2 </b>3</a>');
echo $xml;
?>

L'exemple ci-dessus va afficher :

1 3

Voir aussi

  • SimpleXMLElement::asXML() - Retourne une chaîne XML basée sur un élément SimpleXML


Exécute une requête Xpath sur des données XML

  • « SimpleXMLElement::__toString
  • SimpleXMLIterator »
  • PHP Manual
  • SimpleXMLElement
  • Exécute une requête Xpath sur des données XML

SimpleXMLElement::xpath

(PHP 5 >= 5.2.0, PHP 7)

SimpleXMLElement::xpath — Exécute une requête Xpath sur des données XML

Description

public array SimpleXMLElement::xpath ( string $path )

La méthode xpath cherche dans le noeud SimpleXML des enfants qui correspondent au path Xpath.

Liste de paramètres

path

Un chemin XPath

Valeurs de retour

Retourne un tableau d'objets SimpleXMLElement ou FALSE si une erreur survient.

Exemples

Exemple #1 Xpath

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

/* On cherche <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo '/a/b/c: ',$node,"\n";
}

/* Les chemins relatifs fonctionnent aussi... */
$result = $xml->xpath('b/c');

while(list( , $node) = each($result)) {
    echo 'b/c: ',$node,"\n";
}
?>

L'exemple ci-dessus va afficher :

/a/b/c: text
/a/b/c: stuff
b/c: text
b/c: stuff

Notez que les deux résultats sont égaux.

Voir aussi

  • SimpleXMLElement::registerXPathNamespace() - Crée un contexte préfixe/ns pour la prochaine requête XPath
  • SimpleXMLElement::getDocNamespaces() - Retourne les espaces de noms déclarés dans un document
  • SimpleXMLElement::getNamespaces() - Retourne les espaces de noms utilisés dans un document
  • Utilisation de base SimpleXML


La classe SimpleXMLIterator

(PHP 5 >= 5.1.0, PHP 7)

Introduction

La classe SimpleXMLIterator fournit des itérations récursives sur tous les éléments d'un objet SimpleXMLElement.

Synopsis de la classe

SimpleXMLIterator extends SimpleXMLElement implements RecursiveIterator , Countable {
/* Méthodes */
public mixed current ( void )
public SimpleXMLIterator getChildren ( void )
public bool hasChildren ( void )
public mixed key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
/* Méthodes héritées */
final public SimpleXMLElement::__construct ( string $data [, int $options = 0 [, bool $data_is_url = false [, string $ns = "" [, bool $is_prefix = false ]]]] )
public void SimpleXMLElement::addAttribute ( string $name [, string $value [, string $namespace ]] )
public SimpleXMLElement SimpleXMLElement::addChild ( string $name [, string $value [, string $namespace ]] )
public mixed SimpleXMLElement::asXML ([ string $filename ] )
public SimpleXMLElement SimpleXMLElement::attributes ([ string $ns = NULL [, bool $is_prefix = false ]] )
public SimpleXMLElement SimpleXMLElement::children ([ string $ns [, bool $is_prefix = false ]] )
public int SimpleXMLElement::count ( void )
public array SimpleXMLElement::getDocNamespaces ([ bool $recursive = false [, bool $from_root = true ]] )
public string SimpleXMLElement::getName ( void )
public array SimpleXMLElement::getNamespaces ([ bool $recursive = false ] )
public bool SimpleXMLElement::registerXPathNamespace ( string $prefix , string $ns )
public string SimpleXMLElement::__toString ( void )
public array SimpleXMLElement::xpath ( string $path )
}

Sommaire

  • SimpleXMLIterator::current — Retourne l'entrée courante
  • SimpleXMLIterator::getChildren — Retourne un itérateur pour l'entrée courante, si c'est un objet SimpleXML
  • SimpleXMLIterator::hasChildren — Indique si l'entrée courante de SimpleXML est un objet
  • SimpleXMLIterator::key — Retourne la clé courante
  • SimpleXMLIterator::next — Se déplace sur l'entrée SimpleXML suivante
  • SimpleXMLIterator::rewind — Replace le pointeur SimpleXML au début
  • SimpleXMLIterator::valid — Vérifie si une ressource SimpleXML contient d'autres entrées


Retourne l'entrée courante

  • « SimpleXMLIterator
  • SimpleXMLIterator::getChildren »
  • PHP Manual
  • SimpleXMLIterator
  • Retourne l'entrée courante

SimpleXMLIterator::current

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::current — Retourne l'entrée courante

Description

public mixed SimpleXMLIterator::current ( void )

Cette méthode retourne l'élément courant comme un objet SimpleXMLIterator ou bien NULL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'élément courant comme un objet SimpleXMLIterator ou NULL, en cas d'échec.

Exemples

Exemple #1 Retourne l'élément courant

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>PHP basics</book><book>XML basics</book></books>');
var_dump($xmlIterator->current());

$xmlIterator->rewind(); // Retour au premier élément
var_dump($xmlIterator->current());
?>

L'exemple ci-dessus va afficher :

NULL
object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "PHP basics"
}

Voir aussi

  • SimpleXMLIterator::key() - Retourne la clé courante
  • SimpleXMLIterator::next() - Se déplace sur l'entrée SimpleXML suivante
  • SimpleXMLIterator::rewind() - Replace le pointeur SimpleXML au début
  • SimpleXMLIterator::valid() - Vérifie si une ressource SimpleXML contient d'autres entrées
  • SimpleXMLElement


Retourne un itérateur pour l'entrée courante, si c'est un objet SimpleXML

  • « SimpleXMLIterator::current
  • SimpleXMLIterator::hasChildren »
  • PHP Manual
  • SimpleXMLIterator
  • Retourne un itérateur pour l'entrée courante, si c'est un objet SimpleXML

SimpleXMLIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::getChildren — Retourne un itérateur pour l'entrée courante, si c'est un objet SimpleXML

Description

public SimpleXMLIterator SimpleXMLIterator::getChildren ( void )

Cette méthode retourne un objet SimpleXMLIterator contenant les sous-éléments de l'élémenmt courant SimpleXMLIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet SimpleXMLIterator contenant les sous-éléments de l'objet courant.

Exemples

Exemple #1 Lecture des sous-éléments de l'objet courant

<?php
$xml = <<<XML
<books>
    <book>
        <title>PHP Basics</title>
        <author>Jim Smith</author>
    </book>
    <book>XML basics</book>
</books>
XML;

$xmlIterator = new SimpleXMLIterator($xml);
for( $xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
    foreach($xmlIterator->getChildren() as $name => $data) {
    echo "The $name is '$data' from the class " . get_class($data) . "\n";
    }
}
?>

L'exemple ci-dessus va afficher :

The title is 'PHP Basics' from the class SimpleXMLIterator
The author is 'Jim Smith' from the class SimpleXMLIterator


Indique si l'entrée courante de SimpleXML est un objet

  • « SimpleXMLIterator::getChildren
  • SimpleXMLIterator::key »
  • PHP Manual
  • SimpleXMLIterator
  • Indique si l'entrée courante de SimpleXML est un objet

SimpleXMLIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::hasChildren — Indique si l'entrée courante de SimpleXML est un objet

Description

public bool SimpleXMLIterator::hasChildren ( void )

Cette méthode vérifie si l'objet courant SimpleXMLIterator a des sous-éléments.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si l'entrée courante a des sous-éléments, FALSE sinon.

Exemples

Exemple #1 Vérifie si un élément a des sous-éléments

<?php
$xml = <<<XML
<books>
    <book>
        <title>PHP Basics</title>
        <author>Jim Smith</author>
    </book>
    <book>XML basics</book>
</books>
XML;

$xmlIterator = new SimpleXMLIterator( $xml );
for( $xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
    if($xmlIterator->hasChildren()) {
        var_dump($xmlIterator->current());
    }
}
?>

L'exemple ci-dessus va afficher :

object(SimpleXMLIterator)#2 (2) {
  ["title"]=>
  string(10) "PHP Basics"
  ["author"]=>
  string(9) "Jim Smith"
}


Retourne la clé courante

  • « SimpleXMLIterator::hasChildren
  • SimpleXMLIterator::next »
  • PHP Manual
  • SimpleXMLIterator
  • Retourne la clé courante

SimpleXMLIterator::key

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::key — Retourne la clé courante

Description

public mixed SimpleXMLIterator::key ( void )

Cette méthode lit le nom de la balise XML courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de la balise XML dans l'objet courant de l'itéraeur SimpleXMLIterator, ou FALSE.

Exemples

Exemple #1 Le nom de la balise XML courante

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>PHP basics</book><book>XML basics</book></books>');

echo var_dump($xmlIterator->key());
$xmlIterator->rewind(); // retour au premier élément
echo var_dump($xmlIterator->key());

?>

L'exemple ci-dessus va afficher :

bool(false)
string(4) "book"


Se déplace sur l'entrée SimpleXML suivante

  • « SimpleXMLIterator::key
  • SimpleXMLIterator::rewind »
  • PHP Manual
  • SimpleXMLIterator
  • Se déplace sur l'entrée SimpleXML suivante

SimpleXMLIterator::next

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::next — Se déplace sur l'entrée SimpleXML suivante

Description

public void SimpleXMLIterator::next ( void )

Cette méthode déplace l'itérateur SimpleXMLIterator à l'élément suivant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Passe au prochain élément

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>PHP Basics</book><book>XML basics</book></books>');
$xmlIterator->rewind(); // Retour au premier élément
$xmlIterator->next();

var_dump($xmlIterator->current());
?>

L'exemple ci-dessus va afficher :

object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "XML basics"
}


Replace le pointeur SimpleXML au début

  • « SimpleXMLIterator::next
  • SimpleXMLIterator::valid »
  • PHP Manual
  • SimpleXMLIterator
  • Replace le pointeur SimpleXML au début

SimpleXMLIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::rewind — Replace le pointeur SimpleXML au début

Description

public void SimpleXMLIterator::rewind ( void )

Cette méthode remet l'itérateur SimpleXMLIterator au premier élément.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Retour au premier élément

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>PHP Basics</book><book>XML Basics</book></books>');
$xmlIterator->rewind();

var_dump($xmlIterator->current());
?>

L'exemple ci-dessus va afficher :

object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "PHP Basics"
}


Vérifie si une ressource SimpleXML contient d'autres entrées

  • « SimpleXMLIterator::rewind
  • Fonctions SimpleXML »
  • PHP Manual
  • SimpleXMLIterator
  • Vérifie si une ressource SimpleXML contient d'autres entrées

SimpleXMLIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::valid — Vérifie si une ressource SimpleXML contient d'autres entrées

Description

public bool SimpleXMLIterator::valid ( void )

Cette méthode vérifie si l'élément courant est valide, après un appel à SimpleXMLIterator::rewind() ou SimpleXMLIterator::next().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne TRUE si l'élément courant est valide, FALSE sinon.

Exemples

Exemple #1 Vérifie si un élément est valide

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>SQL Basics</book></books>');

$xmlIterator->rewind(); // Retour au premier élément
echo var_dump($xmlIterator->valid()); // bool(true)

$xmlIterator->next(); // advance to the next element
echo var_dump($xmlIterator->valid()); // bool(false) car il y a un seul élément
?>


Fonctions SimpleXML

Sommaire

  • simplexml_import_dom — Construit un objet SimpleXMLElement à partir d'un objet DOM
  • simplexml_load_file — Convertit un fichier XML en objet
  • simplexml_load_string — Convertit une chaîne XML en objet


Construit un objet SimpleXMLElement à partir d'un objet DOM

  • « Fonctions SimpleXML
  • simplexml_load_file »
  • PHP Manual
  • Fonctions SimpleXML
  • Construit un objet SimpleXMLElement à partir d'un objet DOM

simplexml_import_dom

(PHP 5, PHP 7)

simplexml_import_dom — Construit un objet SimpleXMLElement à partir d'un objet DOM

Description

SimpleXMLElement simplexml_import_dom ( DOMNode $node [, string $class_name = "SimpleXMLElement" ] )

simplexml_import_dom() prend un noeud d'un document DOM et la transforme en noeud SimpleXML. Ce nouvel objet peut alors être utilisé comme un objet natif SimpleXML.

Liste de paramètres

node

Un élément DOM

class_name

Vous pouvez utiliser ce paramètre optionnel afin que simplexml_load_string() retourne un objet de la classe spécifiée. Cette classe doit étendre la classe SimpleXMLElement.

Valeurs de retour

Retourne un objet SimpleXMLElement ou FALSE si une erreur survient.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemples

Exemple #1 Import DOM

<?php
$dom = new DOMDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
    echo 'Erreur durant l\'analyse du document';
    exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title;
?>

L'exemple ci-dessus va afficher :

blah

Voir aussi

  • dom_import_simplexml() - Transforme un objet SimpleXMLElement en un objet DOMElement
  • Utilisation de base SimpleXML


Convertit un fichier XML en objet

  • « simplexml_import_dom
  • simplexml_load_string »
  • PHP Manual
  • Fonctions SimpleXML
  • Convertit un fichier XML en objet

simplexml_load_file

(PHP 5, PHP 7)

simplexml_load_file — Convertit un fichier XML en objet

Description

SimpleXMLElement simplexml_load_file ( string $filename [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns = "" [, bool $is_prefix = false ]]]] )

Convertit le document XML filename en un objet de type SimpleXMLElement.

Liste de paramètres

filename

Chemin vers le fichier XML

Note:

Libxml 2 supprime la protection des caractères des URI, alors si vous voulez passer par exemple b&c comme paramètre URI à a, vous devez appeler simplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c'))). Depuis PHP 5.1.0, vous n'avez plus besoin de faire cela puisque PHP le fait pour vous.

class_name

Vous pouvez utiliser ce paramètre optionnel et ainsi, la fonction simplexml_load_file() retournera un objet de la classe spécifiée. Cette classe doit étendre la classe SimpleXMLElement.

options

Depuis PHP 5.1.0 et Libxml 2.6.0, vous pouvez aussi utiliser le paramètre options pour spécifier des paramètres additionnels Libxml.

ns

Préfixe ou l'URI de l'espace de noms.

is_prefix

TRUE si ns est un préfixe, FALSE si c'est l'URI ; par défaut, FALSE.

Valeurs de retour

Retourne un objet de la classe SimpleXMLElement dont les propriétés contiennent les données du document XML, ou FALSE si une erreur survient.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Erreurs / Exceptions

Produit un message d'erreur de niveau E_WARNING pour chaque erreur trouvée dans les données XML.

Astuce

Utilisez la fonction libxml_use_internal_errors() pour supprimer toutes les erreurs XML, et la fonction libxml_get_errors() pour les parcourir.

Exemples

Exemple #1 Interprétation d'un document XML

<?php
// Le fichier test.xml contient un document XML avec un élément racine
// et au moins un élément /[racine]/title.

if (file_exists('test.xml')) {
    $xml = simplexml_load_file('test.xml');

    print_r($xml);
} else {
    exit('Echec lors de l\'ouverture du fichier test.xml.');
}
?>

Ce script affichera, en cas de succès :

SimpleXMLElement Object
(
  [title] => Example Title
  ...
)

À partir de là, vous pouvez utiliser $xml->title et tout autre élément.

Voir aussi

  • simplexml_load_string() - Convertit une chaîne XML en objet
  • SimpleXMLElement::__construct() - Crée un nouvel objet SimpleXMLElement
  • Traitement des erreurs XML
  • libxml_use_internal_errors() - Désactive le rapport d'erreur libxml et les stocke pour lecture ultérieure
  • Utilisation de base SimpleXML


Convertit une chaîne XML en objet

  • « simplexml_load_file
  • WDDX »
  • PHP Manual
  • Fonctions SimpleXML
  • Convertit une chaîne XML en objet

simplexml_load_string

(PHP 5, PHP 7)

simplexml_load_string — Convertit une chaîne XML en objet

Description

SimpleXMLElement simplexml_load_string ( string $data [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns = "" [, bool $is_prefix = false ]]]] )

Convertit la chaîne XML data et retourne un objet de la classe SimpleXMLElement.

Liste de paramètres

data

Une chaîne XML valide

class_name

Vous pouvez utiliser le paramètre optionnel et, ainsi, la fonction simplexml_load_string() retournera un objet de la classe spécifiée. Cette classe doit étendre la classe SimpleXMLElement.

options

Depuis PHP 5.1.0 et Libxml 2.6.0, vous pouvez aussi utiliser le paramètre options pour spécifier des paramètres additionnels Libxml.

ns

Préfixe ou URI de l'espace de noms.

is_prefix

TRUE si ns est un préfixe, FALSE si c'est l'URI.

Valeurs de retour

Retourne un objet de la classe SimpleXMLElement dont les propriétés contiennent les données du document XML, ou FALSE si une erreur survient.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Erreurs / Exceptions

Produit un message d'erreur de niveau E_WARNING pour chaque erreur trouvée dans les données XML.

Astuce

Utilisez la fonction libxml_use_internal_errors() pour supprimer toutes les erreurs XML, et la fonction libxml_get_errors() pour les parcourir.

Exemples

Exemple #1 Convertir une chaîne XML

<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
 <title>Forty What?</title>
 <from>Joe</from>
 <to>Jane</to>
 <body>
  I know that's the answer -- but what's the question?
 </body>
</document>
XML;

$xml = simplexml_load_string($string);

print_r($xml);
?>

L'exemple ci-dessus va afficher :

SimpleXMLElement Object
(
  [title] => Forty What?
  [from] => Joe
  [to] => Jane
  [body] =>
   I know that's the answer -- but what's the question?
)

À partir de là, vous pouvez utiliser $xml->body et tout autre élément.

Voir aussi

  • simplexml_load_file() - Convertit un fichier XML en objet
  • SimpleXMLElement::__construct() - Crée un nouvel objet SimpleXMLElement
  • Traitement des erreurs XML
  • libxml_use_internal_errors() - Désactive le rapport d'erreur libxml et les stocke pour lecture ultérieure
  • Utilisation de base SimpleXML


WDDX

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Exemples wddx
  • WDDX Fonctions
    • wddx_add_vars — Ajoute des variables à un paquet WDDX
    • wddx_deserialize — Délinéarise un paquet WDDX
    • wddx_packet_end — Clôt un paquet WDDX
    • wddx_packet_start — Commence un nouveau paquet WDDX avec une structure
    • wddx_serialize_value — Enregistre une valeur dans un paquet WDDX
    • wddx_serialize_vars — Enregistre plusieurs valeurs dans un paquet WDDX


  • « WDDX
  • Installation/Configuration »
  • PHP Manual
  • WDDX
  • Introduction

Introduction

Ces fonctions sont prévues pour fonctionner avec » WDDX.


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.

Afin d'utiliser WDDX, vous devez installer la bibliothèque expat (qui est fournie avec Apache 1.3.7 ou supérieur).


Installation

Après avoir installé Expat, compilez PHP avec --enable-wddx et utilisez --with-libexpat-dir pour Expat.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension définit un identifiant de paquet WDDX, retourné par la fonction wddx_packet_start().


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • WDDX
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


  • « Constantes pré-définies
  • Exemples wddx »
  • PHP Manual
  • WDDX
  • Exemples

Exemples

Sommaire

  • Exemples wddx


Exemples wddx

Toutes les fonctions qui linéarisent les variables utilisent le premier élément d'un tableau pour déterminer si le tableau doit être linéarisé dans un tableau ou dans une structure. Si le premier élément a une chaîne de caractères en tant que clé, alors, il sera linéarisé dans une structure, sinon, dans un tableau.

Exemple #1 Linéarisation d'une valeur simple avec WDDX

<?php
echo wddx_serialize_value("PHP to WDDX packet example", "PHP packet");
?>

Cet exemple affichera :

<wddxPacket version='1.0'><header comment='PHP packet'/><data>
<string>PHP to WDDX packet example</string></data></wddxPacket>

Exemple #2 Utilisation de paquets incrémentaux avec WDDX

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* Suppose que $cities provient d'une base de données */
$cities = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "cities");

$packet = wddx_packet_end($packet_id);
echo $packet;
?>

Cet exemple affichera :

<wddxPacket version='1.0'><header comment='PHP'/><data><struct>
<var name='pi'><number>3.1415926</number></var><var name='cities'>
<array length='3'><string>Austin</string><string>Novato</string>
<string>Seattle</string></array></var></struct></data></wddxPacket>

Note:

Si vous voulez linéariser des caractères non-ASCII, vous devez d'abord les convertir en UTF-8 (voir les fonctions utf8_encode() et iconv()).


WDDX Fonctions

Sommaire

  • wddx_add_vars — Ajoute des variables à un paquet WDDX
  • wddx_deserialize — Délinéarise un paquet WDDX
  • wddx_packet_end — Clôt un paquet WDDX
  • wddx_packet_start — Commence un nouveau paquet WDDX avec une structure
  • wddx_serialize_value — Enregistre une valeur dans un paquet WDDX
  • wddx_serialize_vars — Enregistre plusieurs valeurs dans un paquet WDDX


Ajoute des variables à un paquet WDDX

  • « WDDX Fonctions
  • wddx_deserialize »
  • PHP Manual
  • WDDX Fonctions
  • Ajoute des variables à un paquet WDDX

wddx_add_vars

(PHP 4, PHP 5, PHP 7)

wddx_add_vars — Ajoute des variables à un paquet WDDX

Description

bool wddx_add_vars ( resource $packet_id , mixed $var_name [, mixed $... ] )

Sert à enregistrer et à ajouter les variables passées en argument au paquet repéré par son identifiant packet_id.

Liste de paramètres

Cette fonction prend un nombre variable de paramètres.

packet_id

Un paquet WDDX, retourné par la fonction wddx_packet_start().

var_name

Peut être une chaîne de caractères nommant une variable ou un tableau contenant des noms de variables ou d'autres tableaux, etc..

...

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Délinéarise un paquet WDDX

  • « wddx_add_vars
  • wddx_packet_end »
  • PHP Manual
  • WDDX Fonctions
  • Délinéarise un paquet WDDX

wddx_deserialize

(PHP 4, PHP 5, PHP 7)

wddx_deserialize — Délinéarise un paquet WDDX

Description

mixed wddx_deserialize ( string $packet )

Délinéarise un paquet packet WDDX.

Liste de paramètres

packet

Un paquet WDDX, sous la forme d'une chaîne de caractères ou d'un flux.

Valeurs de retour

Retourne la valeur délinéarisée, pouvant être une chaîne de caractères, un nombre ou un tableau. Notez que les structures sont délinéarisées dans des tableaux associatifs.

Notes

Avertissement

Ne passez pas d'entrée utilisateur non vérifiée à wddx_deserialize(). La délinéarisation peut faire que le code soit chargé, et exécuté lors de l'instanciation et l'autochargement de l'objet, et un utilisateur mal intentionné peut être capable d'y loger un exploit.


Clôt un paquet WDDX

  • « wddx_deserialize
  • wddx_packet_start »
  • PHP Manual
  • WDDX Fonctions
  • Clôt un paquet WDDX

wddx_packet_end

(PHP 4, PHP 5, PHP 7)

wddx_packet_end — Clôt un paquet WDDX

Description

string wddx_packet_end ( resource $packet_id )

Clôt un paquet WDDX.

Liste de paramètres

packet_id

Un paquet WDDX, retourné par la fonction wddx_packet_start().

Valeurs de retour

Retourne une chaîne de caractères contenant le paquet WDDX.


Commence un nouveau paquet WDDX avec une structure

  • « wddx_packet_end
  • wddx_serialize_value »
  • PHP Manual
  • WDDX Fonctions
  • Commence un nouveau paquet WDDX avec une structure

wddx_packet_start

(PHP 4, PHP 5, PHP 7)

wddx_packet_start — Commence un nouveau paquet WDDX avec une structure

Description

resource wddx_packet_start ([ string $comment ] )

wddx_packet_start() sert à créer un nouveau paquet WDDX, pour pouvoir y faire des ajouts incrémentaux de variables. Elle va automatiquement créer une définition de structure dans le paquet, pour accueillir des variables.

Liste de paramètres

comment

Une chaîne de caractères optionnelle contenant le commentaire.

Valeurs de retour

Retourne un identifiant de paquet pour utilisation ultérieure avec les fonctions WDDX, ou FALSE si une erreur survient.


Enregistre une valeur dans un paquet WDDX

  • « wddx_packet_start
  • wddx_serialize_vars »
  • PHP Manual
  • WDDX Fonctions
  • Enregistre une valeur dans un paquet WDDX

wddx_serialize_value

(PHP 4, PHP 5, PHP 7)

wddx_serialize_value — Enregistre une valeur dans un paquet WDDX

Description

string wddx_serialize_value ( mixed $var [, string $comment ] )

Enregistre une valeur donnée dans un paquet WDDX.

Liste de paramètres

var

La valeur à linéariser.

comment

Une chaîne de caractères optionnelle contenant un commentaire qui apparaît dans l'en-tête du paquet.

Valeurs de retour

Retourne le paquet WDDX, ou FALSE si une erreur survient.


Enregistre plusieurs valeurs dans un paquet WDDX

  • « wddx_serialize_value
  • XMLDiff »
  • PHP Manual
  • WDDX Fonctions
  • Enregistre plusieurs valeurs dans un paquet WDDX

wddx_serialize_vars

(PHP 4, PHP 5, PHP 7)

wddx_serialize_vars — Enregistre plusieurs valeurs dans un paquet WDDX

Description

string wddx_serialize_vars ( mixed $var_name [, mixed $... ] )

Sert à créer un paquet WDDX avec une structure qui contient la représentation des variables passées en arguments.

Liste de paramètres

Cette fonction prend un nombre variable de paramètres.

var_name

Peut être soit une chaîne de caractères nommant une variable ou un tableau contenant des noms de variables ou d'autres tableaux, etc..

...

Valeurs de retour

Retourne le paquet WDDX, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wddx_serialize_vars()

<?php
$a = 1;
$b = 5.5;
$c = array("blue", "orange", "violet");
$d = "colors";

$clvars = array("c", "d");
echo wddx_serialize_vars("a", "b", $clvars);
?>

L'exemple ci-dessus va afficher :

<wddxPacket version='1.0'><header/><data><struct><var name='a'><number>1</number></var>
<var name='b'><number>5.5</number></var><var name='c'><array length='3'>
<string>blue</string><string>orange</string><string>violet</string></array></var>
<var name='d'><string>colors</string></var></struct></data></wddxPacket>


XML : Différence et fusion

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
  • XMLDiff\Base — La classe XMLDiff\Base
    • XMLDiff\Base::__construct — Constructeur
    • XMLDiff\Base::diff — Produit la différence de deux documents XML
    • XMLDiff\Base::merge — Produit un nouveau document XML basé sur une différence
  • XMLDiff\DOM — La classe XMLDiff\DOM
    • XMLDiff\DOM::diff — Trouve la différence de deux objets DOMDocument
    • XMLDiff\DOM::merge — Produit un DOMDocument fusionné
  • XMLDiff\Memory — La classe XMLDiff\Memory
    • XMLDiff\Memory::diff — Différence entre deux documents XML
    • XMLDiff\Memory::merge — Fusionne un document XML
  • XMLDiff\File — La classe XMLDiff\File
    • XMLDiff\File::diff — Effectue la différence entre deux documents XML
    • XMLDiff\File::merge — Fusionne un document XML


Introduction

L'extension est capable de produire la différence de deux documents XML, puis d'appliquer la différence au document source. La différence est un document XML contenant les copies/insertions/suppressions dans un format humainement lisible. Les objets DOMDocument, les fichiers locaux, et les chaînes de caractères en mémoire peuvent être utilisés.


  • « Introduction
  • Pré-requis »
  • PHP Manual
  • XMLDiff
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • Installation


Pré-requis

libdiffmark - version 0.10 est comprise dans l'extension. Si diffmark est disponible pour votre système de paquets, son utilisation est fortement encouragée.

extension libxml

extension DOM


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/xmldiff.

Une bibliothèque DLL pour cette extension PECL est disponible sur » http://windows.php.net/downloads/pecl/releases/xmldiff/.


La classe XMLDiff\Base

(PECL xmldiff >= 0.8.0)

Introduction

Classe abstraite de base pour toutes les classes de comparaison de cette extension.

Synopsis de la classe

XMLDiff\Base {
/* Méthodes */
public __construct ( string $nsname )
abstract public mixed diff ( mixed $from , mixed $to )
abstract public mixed merge ( mixed $src , mixed $diff )
}

Sommaire

  • XMLDiff\Base::__construct — Constructeur
  • XMLDiff\Base::diff — Produit la différence de deux documents XML
  • XMLDiff\Base::merge — Produit un nouveau document XML basé sur une différence


Constructeur

  • « XMLDiff\Base
  • XMLDiff\Base::diff »
  • PHP Manual
  • XMLDiff\Base
  • Constructeur

XMLDiff\Base::__construct

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::__construct — Constructeur

Description

public XMLDiff\Base::__construct ( string $nsname )

Constructeur de base pour toutes les classes de l'extension xmldiff.

Liste de paramètres

nsname

Espace de noms personnalisé pour le document de différence. L'espace de noms par défaut est http://www.locus.cz/diffmark et est suffisant pour éviter les conflits d'espaces de noms. Utilisez ce paramètre si vous voulez changer d'espace de noms.

Valeurs de retour


Produit la différence de deux documents XML

  • « XMLDiff\Base::__construct
  • XMLDiff\Base::merge »
  • PHP Manual
  • XMLDiff\Base
  • Produit la différence de deux documents XML

XMLDiff\Base::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::diff — Produit la différence de deux documents XML

Description

abstract public mixed XMLDiff\Base::diff ( mixed $from , mixed $to )

Méthode abstraire de création de différence à implémenter par héritage de la classe.

Le but premier de cette méthode est de produire la différence de deux documents. L'ordre des paramètres est important, et va produire une sortie différente.

Liste de paramètres

from

Document XML source.

to

Document XML cible.

Valeurs de retour

Dépend de l'implémentation.


Produit un nouveau document XML basé sur une différence

  • « XMLDiff\Base::diff
  • XMLDiff\DOM »
  • PHP Manual
  • XMLDiff\Base
  • Produit un nouveau document XML basé sur une différence

XMLDiff\Base::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::merge — Produit un nouveau document XML basé sur une différence

Description

abstract public mixed XMLDiff\Base::merge ( mixed $src , mixed $diff )

Méthode abstraite de fusion à implémenter par héritage de la classe.

Basiquement, le but de cette méthode est de produire un nouveau document XML basé sur les informations de différence.

Liste de paramètres

src

Document XML source.

diff

Document produit par la méthode de création de différence.

Valeurs de retour

Dépend de l'implémentation.


La classe XMLDiff\DOM

(PECL xmldiff >= 0.8.0)

Introduction

Synopsis de la classe

XMLDiff\DOM extends XMLDiff\Base {
/* Méthodes */
public DOMDocument diff ( DOMDocument $from , DOMDocument $to )
public DOMDocument merge ( DOMDocument $src , DOMDocument $diff )
/* Méthodes héritées */
public XMLDiff\Base::__construct ( string $nsname )
abstract public mixed XMLDiff\Base::diff ( mixed $from , mixed $to )
abstract public mixed XMLDiff\Base::merge ( mixed $src , mixed $diff )
}

Sommaire

  • XMLDiff\DOM::diff — Trouve la différence de deux objets DOMDocument
  • XMLDiff\DOM::merge — Produit un DOMDocument fusionné


Trouve la différence de deux objets DOMDocument

  • « XMLDiff\DOM
  • XMLDiff\DOM::merge »
  • PHP Manual
  • XMLDiff\DOM
  • Trouve la différence de deux objets DOMDocument

XMLDiff\DOM::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\DOM::diff — Trouve la différence de deux objets DOMDocument

Description

public DOMDocument XMLDiff\DOM::diff ( DOMDocument $from , DOMDocument $to )

Trouve la différence de deux instances DOMDocument et produit un nouvel objet DOMDocument contenant les informations de différence.

Liste de paramètres

from

Objet source DOMDocument.

to

Objet cible DOMDocument.

Valeurs de retour

Un nouvel objet DOMDocument contenant les informations de différence ou NULL.


Produit un DOMDocument fusionné

  • « XMLDiff\DOM::diff
  • XMLDiff\Memory »
  • PHP Manual
  • XMLDiff\DOM
  • Produit un DOMDocument fusionné

XMLDiff\DOM::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\DOM::merge — Produit un DOMDocument fusionné

Description

public DOMDocument XMLDiff\DOM::merge ( DOMDocument $src , DOMDocument $diff )

Crée un nouveau DOMDocument basé sur une différence.

Liste de paramètres

src

Objet DOMDocument source.

diff

L'objet DOMDocument contenant les informations de différence.

Valeurs de retour

DOMDocument fusionné ou NULL.


La classe XMLDiff\Memory

(PECL xmldiff >= 0.8.0)

Introduction

Synopsis de la classe

XMLDiff\Memory extends XMLDiff\Base {
/* Méthodes */
public string diff ( string $from , string $to )
public string merge ( string $src , string $diff )
/* Méthodes héritées */
public XMLDiff\Base::__construct ( string $nsname )
abstract public mixed XMLDiff\Base::diff ( mixed $from , mixed $to )
abstract public mixed XMLDiff\Base::merge ( mixed $src , mixed $diff )
}

Sommaire

  • XMLDiff\Memory::diff — Différence entre deux documents XML
  • XMLDiff\Memory::merge — Fusionne un document XML


Différence entre deux documents XML

  • « XMLDiff\Memory
  • XMLDiff\Memory::merge »
  • PHP Manual
  • XMLDiff\Memory
  • Différence entre deux documents XML

XMLDiff\Memory::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\Memory::diff — Différence entre deux documents XML

Description

public string XMLDiff\Memory::diff ( string $from , string $to )

Effectue la différence de deux chaînes contenant des documents XML et produit les informations de différence.

Liste de paramètres

from

Document XML source.

to

Document XML cible.

Valeurs de retour

Une chaîne contenant la différence entre les deux documents XML ou NULL.


Fusionne un document XML

  • « XMLDiff\Memory::diff
  • XMLDiff\File »
  • PHP Manual
  • XMLDiff\Memory
  • Fusionne un document XML

XMLDiff\Memory::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\Memory::merge — Fusionne un document XML

Description

public string XMLDiff\Memory::merge ( string $src , string $diff )

Crée un nouveau document XML basé sur les différences et le document source.

Liste de paramètres

src

Document XML source.

diff

Document XML contenant les informations de différence.

Valeurs de retour

Une chaîne contenant le nouveau document XML ou NULL.


La classe XMLDiff\File

(PECL xmldiff >= 0.8.0)

Introduction

Synopsis de la classe

XMLDiff\File extends XMLDiff\Base {
/* Méthodes */
public string diff ( string $from , string $to )
public string merge ( string $src , string $diff )
/* Méthodes héritées */
public XMLDiff\Base::__construct ( string $nsname )
abstract public mixed XMLDiff\Base::diff ( mixed $from , mixed $to )
abstract public mixed XMLDiff\Base::merge ( mixed $src , mixed $diff )
}

Sommaire

  • XMLDiff\File::diff — Effectue la différence entre deux documents XML
  • XMLDiff\File::merge — Fusionne un document XML


Effectue la différence entre deux documents XML

  • « XMLDiff\File
  • XMLDiff\File::merge »
  • PHP Manual
  • XMLDiff\File
  • Effectue la différence entre deux documents XML

XMLDiff\File::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\File::diff — Effectue la différence entre deux documents XML

Description

public string XMLDiff\File::diff ( string $from , string $to )

Effectue la différence entre deux documents XML locaux, et produit une chaîne contenant les informations de différence.

Liste de paramètres

from

Chemin vers le document source.

to

Chemin vers le document cible.

Valeurs de retour

Une chaîne contenant la différence des deux documents XML ou NULL.


Fusionne un document XML

  • « XMLDiff\File::diff
  • Analyseur syntaxique XML »
  • PHP Manual
  • XMLDiff\File
  • Fusionne un document XML

XMLDiff\File::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\File::merge — Fusionne un document XML

Description

public string XMLDiff\File::merge ( string $src , string $diff )

Crée un document XML basé sur des différences et sur le document source.

Liste de paramètres

src

Chemin vers le document XML source.

diff

Chemin vers le document XML contenant les informations de différence.

Valeurs de retour

Une chaîne de caractères représentant le nouveau document XML ou NULL.


Analyseur syntaxique XML

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • gestionnaires d'événements
  • Problèmes de casse
  • Codes d'erreurs
  • Codage des caractères
  • Exemples
    • Exemple de structure XML
    • Transtypage XML -> HTML
    • Entité externe
  • Fonctions d'analyse de fichier XML
    • utf8_decode — Convertit une chaîne UTF-8 en ISO-8859-1
    • utf8_encode — Convertit une chaîne ISO-8859-1 en UTF-8
    • xml_error_string — Lit le message d'erreur de l'analyseur XML
    • xml_get_current_byte_index — Retourne l'index de l'octet courant d'un analyseur XML
    • xml_get_current_column_number — Retourne le numéro de colonne courant d'un analyseur XML
    • xml_get_current_line_number — Retourne le numéro de ligne courant d'un analyseur XML
    • xml_get_error_code — Récupère le code erreur de l'analyseur XML
    • xml_parse_into_struct — Analyse une structure XML
    • xml_parse — Commence l'analyse d'un document XML
    • xml_parser_create_ns — Crée un analyseur XML
    • xml_parser_create — Création d'un analyseur XML
    • xml_parser_free — Détruit un analyseur XML
    • xml_parser_get_option — Lit les options d'un analyseur XML
    • xml_parser_set_option — Affecte les options d'un analyseur XML
    • xml_set_character_data_handler — Affecte les gestionnaires de texte littéral
    • xml_set_default_handler — Affecte le gestionnaire XML par défaut
    • xml_set_element_handler — Affecte les gestionnaires de début et de fin de balise XML
    • xml_set_end_namespace_decl_handler — Configure le gestionnaire XML de données
    • xml_set_external_entity_ref_handler — Configure le gestionnaire XML de références externes
    • xml_set_notation_decl_handler — Configure le gestionnaire XML de notations
    • xml_set_object — Configure un objet comme analyseur XML
    • xml_set_processing_instruction_handler — Affecte les gestionnaires d'instructions exécutables
    • xml_set_start_namespace_decl_handler — Configure le gestionnaire de caractères
    • xml_set_unparsed_entity_decl_handler — Affecte les gestionnaires d'entités non déclarées


Introduction

Le langage XML (eXtensible Markup Language (Langage à Balises Extensible)) est un format structuré de données pour les échanges sur le web. C'est un standard défini par le consortium World Wide Web (W3C). Plus d'informations à propos du XML et des technologies afférentes sont accessibles (en anglais) » http://www.w3.org/XML/.

Cette extension PHP implémente la bibliothèque expat de James Clark sous PHP. Cela vous permettra d'analyser mais pas de valider les documents XML. Ce langage supporte trois types de jeux de caractères différents, disponibles aussi sous PHP : US-ASCII, ISO-8859-1 et UTF-8. UTF-16 n'est pas supporté.

Cette extension vous permet de créer des analyseurs XML puis de définir des gestionnaires pour chaque événement XML. Les analyseurs XML disposent de quelques paramètres que vous pouvez régler.


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.

Cette extension PHP utilise expat compat layer par défaut. Elle peut aussi utiliser expat, qui est disponible sur » http://www.jclark.com/xml/expat.html. Le fichier Makefile livré avec expat ne construit pas par défaut de bibliothèque : il faut utiliser la ligne suivante :

libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@
Un paquet RPM source de expat est disponible sur » http://sourceforge.net/projects/expat/.


Installation

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-xml

Ces fonctions sont activées par défaut, et utilisent la bibliothèque expat fournie avec la distribution. Vous pouvez désactiver le support de XML en utilisant l'option de compilation --disable-xml . Si vous compilez PHP comme module pour Apache 1.3.9 ou supérieur, PHP va automatiquement utiliser la bibliothèque expat fournie par Apache. Si vous ne souhaitez pas utiliser la bibliothèque expat intégrée, il faut que vous compiliez PHP avec l'option --with-expat-dir=DIR , où DIR est le dossier d'installation de votre bibliothèque expat.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.


Types de ressources

La ressource xml est retournée par xml_parser_create() et xml_parser_create_ns(), et représente un analyseur XML à utiliser avec les autres fonctions de cette extension.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XML_ERROR_NONE (entier)
XML_ERROR_NO_MEMORY (entier)
XML_ERROR_SYNTAX (entier)
XML_ERROR_NO_ELEMENTS (entier)
XML_ERROR_INVALID_TOKEN (entier)
XML_ERROR_UNCLOSED_TOKEN (entier)
XML_ERROR_PARTIAL_CHAR (entier)
XML_ERROR_TAG_MISMATCH (entier)
XML_ERROR_DUPLICATE_ATTRIBUTE (entier)
XML_ERROR_JUNK_AFTER_DOC_ELEMENT (entier)
XML_ERROR_PARAM_ENTITY_REF (entier)
XML_ERROR_UNDEFINED_ENTITY (entier)
XML_ERROR_RECURSIVE_ENTITY_REF (entier)
XML_ERROR_ASYNC_ENTITY (entier)
XML_ERROR_BAD_CHAR_REF (entier)
XML_ERROR_BINARY_ENTITY_REF (entier)
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (entier)
XML_ERROR_MISPLACED_XML_PI (entier)
XML_ERROR_UNKNOWN_ENCODING (entier)
XML_ERROR_INCORRECT_ENCODING (entier)
XML_ERROR_UNCLOSED_CDATA_SECTION (entier)
XML_ERROR_EXTERNAL_ENTITY_HANDLING (entier)
XML_OPTION_CASE_FOLDING (entier)
XML_OPTION_TARGET_ENCODING (entier)
XML_OPTION_SKIP_TAGSTART (entier)
XML_OPTION_SKIP_WHITE (entier)
XML_SAX_IMPL (chaîne de caractères)
Précise la méthode d'implémentation de SAX. Peut être libxml ou expat.


gestionnaires d'événements

Les gestionnaires d'événements XML sont :

Les gestionnaires d'événements XML supportés
Fonction PHP de configuration du gestionnaire | Description de l'événement
xml_set_element_handler() | Un événement est généré à chaque fois que l'analyseur XML rencontre une balise de début ou de fin. Deux gestionnaires sont disponibles : un pour le début, et un pour la fin.
xml_set_character_data_handler() | "Character data" correspond grosso modo à tout ce qui n'est pas une balise XML, y compris les espaces entre les balises. Notez bien que l'analyseur XML n'ajoute ou n'efface aucun espace, et que c'est à l'application (c'est-à-dire vous) de décider de la signification de ces espaces.
xml_set_processing_instruction_handler() | Les programmeurs PHP sont habitués aux instructions exécutables (processing instructions ou PIs). <?php ?> est une instruction exécutable où php est appelé programme cible. Ces instructions sont gérées de manière spécifique, (sauf le programme cible "XML" qui est réservé).
xml_set_default_handler() | Tout ce qui n'a pas trouvé de gestionnaire est transmis au gestionnaire par défaut. Vous retrouverez par exemple, les déclarations de type de document dans ce gestionnaire.
xml_set_unparsed_entity_decl_handler() | Ce gestionnaire est appelé pour gérer les déclaration des entités non analysées (NDATA).
xml_set_notation_decl_handler() | Ce gestionnaire est appelé pour déclarer les notations.
xml_set_external_entity_ref_handler() | Ce gestionnaire est appelé lorsque l'analyseur XML trouve une référence à une entité générale externe. Cela peut être une référence à un fichier ou à une URL. Reportez-vous à entité externe pour un exemple.
xml_set_start_namespace_decl_handler() | Ce gestionnaire est appelé pour le début de la déclaration d'un espace de noms.
xml_set_end_namespace_decl_handler() | Ce gestionnaire est appelé pour la déclaration de fin d'espace de noms. Notez que cet évennement ne fait pas partie de LibXML.


Problèmes de casse

Les fonctions de gestion des balises peuvent rencontrer des balises en minuscule, majuscule ou encore dans un mélange des deux. En XML, la procédure standard est d'"identifier les séquences de caractères qui ne sont pas reconnues comme majuscule, et de les remplacer par leur équivalent majuscule". C'est le case-folding, en anglais. En bref, XML met toutes les lettres en majuscules.

Par défaut, tous les noms des éléments qui sont transmis aux fonctions de gestion sont mis en majuscules. Ce comportement est contrôlé par l'analyseur XML, et peut être lu et modifié avec les fonctions respectives xml_parser_get_option() et xml_parser_set_option().


Codes d'erreurs

Les constantes suivantes sont définies comme des codes d'erreurs XML : (retournées par xml_parse())

  • XML_ERROR_NONE
  • XML_ERROR_NO_MEMORY
  • XML_ERROR_SYNTAX
  • XML_ERROR_NO_ELEMENTS
  • XML_ERROR_INVALID_TOKEN
  • XML_ERROR_UNCLOSED_TOKEN
  • XML_ERROR_PARTIAL_CHAR
  • XML_ERROR_TAG_MISMATCH
  • XML_ERROR_DUPLICATE_ATTRIBUTE
  • XML_ERROR_JUNK_AFTER_DOC_ELEMENT
  • XML_ERROR_PARAM_ENTITY_REF
  • XML_ERROR_UNDEFINED_ENTITY
  • XML_ERROR_RECURSIVE_ENTITY_REF
  • XML_ERROR_ASYNC_ENTITY
  • XML_ERROR_BAD_CHAR_REF
  • XML_ERROR_BINARY_ENTITY_REF
  • XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
  • XML_ERROR_MISPLACED_XML_PI
  • XML_ERROR_UNKNOWN_ENCODING
  • XML_ERROR_INCORRECT_ENCODING
  • XML_ERROR_UNCLOSED_CDATA_SECTION
  • XML_ERROR_EXTERNAL_ENTITY_HANDLING


Codage des caractères

L'extension XML de PHP supporte les caractères » Unicode grâce à différents codages. Il y a deux types de codages de caractères : le codage à la source et le codage à la cible. PHP utilise le UTF-8 comme représentation interne.

L'encodage à la source est effectué lors de l'analyse du fichier par XML. Lors de la création d'un analyseur XML), un type de codage à la source peut être spécifié (et il ne pourra plus être modifié jusqu'à la destruction de l'analyseur). Les codages supportés sont : ISO-8859-1, US-ASCII et UTF-8. Les deux derniers sont des codages à un seul octet, c'est-à-dire que les caractères sont représentés sur un seul octet. UTF-8 peut représenter des caractères composés par un nombre variable de bits (jusqu'à 21), allant de 1 à quatre octets. Le codage par défaut utilisé par PHP ISO-8859-1.

Le codage à la cible est effectué lorsque PHP transfert les données aux gestionnaires XML. Lorsqu'un analyseur est créé, le codage à la cible est spécifié de la même façon que le codage à la source, mais il peut être modifié à tout moment. Le codage à la cible affectera les balises, tout comme les données brutes, et les noms des instructions exécutables.

Si l'analyseur XML rencontre un caractère qu'il ne connaît pas (hors limite, par exemple), il retournera une erreur.

Si PHP rencontre un caractère dans le document XML analysé, qu'il ne peut pas représenter dans le codage à la cible choisi, le caractère sera remplacé par un point d'interrogation (cette attitude est susceptible de changer ultérieurement).


  • « Codage des caractères
  • Exemple de structure XML »
  • PHP Manual
  • Analyseur syntaxique XML
  • Exemples

Exemples

Sommaire

  • Exemple de structure XML
  • Transtypage XML -> HTML
  • Entité externe


Exemple de structure XML

Ce premier exemple affiche la structure de l'élément de début dans un document avec indentation.

Exemple #1 Afficher une structure XML

<?php
$file = "data.xml";
$depth = array();

function startElement($parser, $name, $attrs)
{
    global $depth;

    if (!isset($depth[$parser])) {
        $depth[$parser] = 0;
    }

    for ($i = 0; $i < $depth[$parser]; $i++) {
        echo "  ";
    }
    echo "$name\n";
    $depth[$parser]++;
}

function endElement($parser, $name)
{
    global $depth;
    $depth[$parser]--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>


Transtypage XML -> HTML

Exemple #1 Transtypage XML -> HTML

Cet exemple remplace les balises XML d'un document par des balises HTML. Les éléments inconnus seront ignorés. Bien entendu, cet exemple sera appliqué à un type précis de fichiers XML.

<?php
$file = "data.xml";
$map_array = array(
    "BOLD"     => "B",
    "EMPHASIS" => "I",
    "LITERAL"  => "TT"
);

function startElement($parser, $name, $attrs)
{
    global $map_array;
    if (isset($map_array[$name])) {
        echo "<$map_array[$name]>";
    }
}

function endElement($parser, $name)
{
    global $map_array;
    if (isset($map_array[$name])) {
        echo "</$map_array[$name]>";
    }
}

function characterData($parser, $data)
{
    echo $data;
}

$xml_parser = xml_parser_create();
// Utilisons la gestion de casse, de manière à être sûrs de trouver la balise dans $map_array
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("Erreur XML: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>


Entité externe

Cet exemple exploite les références externes de XML : il est possible d'utiliser un gestionnaire d'entité externe pour inclure et analyser les documents, tous comme les instructions exécutables peuvent servir à inclure et analyser d'autres documents, et aussi fournir une indication de confiance (voir plus bas).

Le document XML qui est utilisé dans cet exemple est fourni plus loin dans l'exemple (xmltest.xml et xmltest2.xml).

Exemple #1 Entité externe

<?php
$file = "xmltest.xml";

function trustedFile($file)
{
    // faites seulement confiance aux fichiers locaux dont vous êtes le propriétaire
    if (!preg_match("@^([a-z][a-z0-9+.-]*)\:\/\/@i", $file)
        && fileowner($file) == getmyuid()) {
            return true;
    }
    return false;
}

function startElement($parser, $name, $attribs)
{
    echo "&lt;<font color=\"#0000cc\">$name</font>";
    if (count($attribs)) {
        foreach ($attribs as $k => $v) {
            echo " <font color=\"#009900\">$k</font>=\"<font
                   color=\"#990000\">$v</font>\"";
        }
    }
    echo "&gt;";
}

function endElement($parser, $name)
{
    echo "&lt;/<font color=\"#0000cc\">$name</font>&gt;";
}

function characterData($parser, $data)
{
    echo "<b>$data</b>";
}

function PIHandler($parser, $target, $data)
{
    switch (strtolower($target)) {
        case "php":
            global $parser_file;
            // si le document analysé est de confiance, nous déclarons qu'il est sûr
            // d'exécuter le code PHP qu'il contient. Si ce n'est pas le cas, le code est affiché
            // à la place.
            if (trustedFile($parser_file[$parser])) {
                eval($data);
            } else {
                printf("Untrusted PHP code: <i>%s</i>",
                        htmlspecialchars($data));
            }
            break;
    }
}

function defaultHandler($parser, $data)
{
    if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") {
        printf('<font color="#aa00aa">%s</font>',
                htmlspecialchars($data));
    } else {
        printf('<font size="-1">%s</font>',
                htmlspecialchars($data));
    }
}

function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId,
                                  $publicId) {
    if ($systemId) {
        if (!list($parser, $fp) = new_xml_parser($systemId)) {
            printf("Could not open entity %s at %s\n", $openEntityNames,
                   $systemId);
            return false;
        }
        while ($data = fread($fp, 4096)) {
            if (!xml_parse($parser, $data, feof($fp))) {
                printf("XML error: %s at line %d while parsing entity %s\n",
                       xml_error_string(xml_get_error_code($parser)),
                       xml_get_current_line_number($parser), $openEntityNames);
                xml_parser_free($parser);
                return false;
            }
        }
        xml_parser_free($parser);
        return true;
    }
    return false;
}

function new_xml_parser($file)
{
    global $parser_file;

    $xml_parser = xml_parser_create();
    xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    xml_set_processing_instruction_handler($xml_parser, "PIHandler");
    xml_set_default_handler($xml_parser, "defaultHandler");
    xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");

    if (!($fp = @fopen($file, "r"))) {
        return false;
    }
    if (!is_array($parser_file)) {
        settype($parser_file, "array");
    }
    $parser_file[$xml_parser] = $file;
    return array($xml_parser, $fp);
}

if (!(list($xml_parser, $fp) = new_xml_parser($file))) {
    die("could not open XML input");
}

echo "<pre>";
while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d\n",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
echo "</pre>";
echo "parse complete\n";
xml_parser_free($xml_parser);

?>

Exemple #2 xmltest.xml

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<chapter>
 <TITLE>Title &plainEntity;</TITLE>
 <para>
  <informaltable>
   <tgroup cols="3">
    <tbody>
     <row><entry>a1</entry><entry morerows="1">b1</entry><entry>c1</entry></row>
     <row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
 &systemEntity;
 <section id="about">
  <title>About this Document</title>
  <para>
   <!-- this is a comment -->
   <?php echo 'Hi!  This is PHP version ' . phpversion(); ?>
  </para>
 </section>
</chapter>

Ce fichier est inclus depuis xmltest.xml :

Exemple #3 xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php echo "Ceci est du code PHP qui est exécuté."; ?>
</foo>


Fonctions d'analyse de fichier XML

Sommaire

  • utf8_decode — Convertit une chaîne UTF-8 en ISO-8859-1
  • utf8_encode — Convertit une chaîne ISO-8859-1 en UTF-8
  • xml_error_string — Lit le message d'erreur de l'analyseur XML
  • xml_get_current_byte_index — Retourne l'index de l'octet courant d'un analyseur XML
  • xml_get_current_column_number — Retourne le numéro de colonne courant d'un analyseur XML
  • xml_get_current_line_number — Retourne le numéro de ligne courant d'un analyseur XML
  • xml_get_error_code — Récupère le code erreur de l'analyseur XML
  • xml_parse_into_struct — Analyse une structure XML
  • xml_parse — Commence l'analyse d'un document XML
  • xml_parser_create_ns — Crée un analyseur XML
  • xml_parser_create — Création d'un analyseur XML
  • xml_parser_free — Détruit un analyseur XML
  • xml_parser_get_option — Lit les options d'un analyseur XML
  • xml_parser_set_option — Affecte les options d'un analyseur XML
  • xml_set_character_data_handler — Affecte les gestionnaires de texte littéral
  • xml_set_default_handler — Affecte le gestionnaire XML par défaut
  • xml_set_element_handler — Affecte les gestionnaires de début et de fin de balise XML
  • xml_set_end_namespace_decl_handler — Configure le gestionnaire XML de données
  • xml_set_external_entity_ref_handler — Configure le gestionnaire XML de références externes
  • xml_set_notation_decl_handler — Configure le gestionnaire XML de notations
  • xml_set_object — Configure un objet comme analyseur XML
  • xml_set_processing_instruction_handler — Affecte les gestionnaires d'instructions exécutables
  • xml_set_start_namespace_decl_handler — Configure le gestionnaire de caractères
  • xml_set_unparsed_entity_decl_handler — Affecte les gestionnaires d'entités non déclarées


Convertit une chaîne UTF-8 en ISO-8859-1

  • « Fonctions d'analyse de fichier XML
  • utf8_encode »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Convertit une chaîne UTF-8 en ISO-8859-1

utf8_decode

(PHP 4, PHP 5, PHP 7)

utf8_decode — Convertit une chaîne UTF-8 en ISO-8859-1

Description

string utf8_decode ( string $data )

utf8_decode() décode la chaîne data, en supposant qu'elle est au format UTF-8, et la convertit au format ISO-8859-1.

Liste de paramètres

data

La chaîne encodée UTF-8.

Valeurs de retour

Retourne la chaîne convertie.

Voir aussi

  • utf8_encode() - Convertit une chaîne ISO-8859-1 en UTF-8 (contient des détails sur l'encodage UTF-8)


Convertit une chaîne ISO-8859-1 en UTF-8

  • « utf8_decode
  • xml_error_string »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Convertit une chaîne ISO-8859-1 en UTF-8

utf8_encode

(PHP 4, PHP 5, PHP 7)

utf8_encode — Convertit une chaîne ISO-8859-1 en UTF-8

Description

string utf8_encode ( string $data )

utf8_encode() code la chaîne data au format UTF-8, et retourne la version codée. UTF-8 est un mécanisme standardisé utilisé par Unicode pour coder les caractères de grande taille dans des flux d'octets. UTF-8 est transparent pour les caractères ASCII, il est auto-synchronisé (c'est-à-dire qu'un programme peut toujours savoir dans un flux d'octet où un caractère commence), et peut être utilisé pour faire des comparaisons de chaînes standard, comme pour le tri. PHP utilise l'UTF-8 pour coder les caractères jusqu'à 4 octets comme ceci :

Encodage UTF-8
octets | bits | représentation
1 | 7 | 0bbbbbbb
2 | 11 | 110bbbbb 10bbbbbb
3 | 16 | 1110bbbb 10bbbbbb 10bbbbbb
4 | 21 | 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
Chaque b représente un bit qui peut être utilisé pour enregistrer un caractère.

Liste de paramètres

data

Une chaîne ISO-8859-1.

Valeurs de retour

Retour la version UTF-8 de data.

Voir aussi

  • utf8_decode() - Convertit une chaîne UTF-8 en ISO-8859-1


Lit le message d'erreur de l'analyseur XML

  • « utf8_encode
  • xml_get_current_byte_index »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Lit le message d'erreur de l'analyseur XML

xml_error_string

(PHP 4, PHP 5, PHP 7)

xml_error_string — Lit le message d'erreur de l'analyseur XML

Description

string xml_error_string ( int $code )

Lit le message d'erreur de l'analyseur XML associé avec la code code donné.

Liste de paramètres

code

Un code erreur provenant de xml_get_error_code().

Valeurs de retour

Retourne une chaîne représentant la description de l'erreur code, ou FALSE si aucune description n'est trouvée.

Voir aussi

  • xml_get_error_code() - Récupère le code erreur de l'analyseur XML


Retourne l'index de l'octet courant d'un analyseur XML

  • « xml_error_string
  • xml_get_current_column_number »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Retourne l'index de l'octet courant d'un analyseur XML

xml_get_current_byte_index

(PHP 4, PHP 5, PHP 7)

xml_get_current_byte_index — Retourne l'index de l'octet courant d'un analyseur XML

Description

int xml_get_current_byte_index ( resource $parser )

Retourne l'index de l'octet courant de l'analyseur XML donné.

Liste de paramètres

parser

Une référence sur un analyseur XML valide.

Valeurs de retour

xml_get_current_byte_index() retourne FALSE si parser n'est pas valide ou, sinon, retourne l'index de l'octet d'analyse courante de l'analyseur XML (débute à 0).

Notes

Avertissement

Cette fonction retourne l'index de l'octet en accord avec le texte encodé UTF-8 même si l'entrée est dans un autre encodage.

Voir aussi

  • xml_get_current_column_number() - Retourne le numéro de colonne courant d'un analyseur XML
  • xml_get_current_line_number() - Retourne le numéro de ligne courant d'un analyseur XML


Retourne le numéro de colonne courant d'un analyseur XML

  • « xml_get_current_byte_index
  • xml_get_current_line_number »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Retourne le numéro de colonne courant d'un analyseur XML

xml_get_current_column_number

(PHP 4, PHP 5, PHP 7)

xml_get_current_column_number — Retourne le numéro de colonne courant d'un analyseur XML

Description

int xml_get_current_column_number ( resource $parser )

Retourne le numéro de colonne courant de l'analyseur XML donné.

Liste de paramètres

parser

Une référence sur un analyseur XML valide.

Valeurs de retour

xml_get_current_column_number() retourne FALSE si parser n'est pas valide, ou sinon, retourne le numéro de colonne courant de la ligne courante de l'analyseur, qui correspond à la position d'analyse courante de l'analyseur XML (comme retourné par xml_get_current_line_number()).

Voir aussi

  • xml_get_current_byte_index() - Retourne l'index de l'octet courant d'un analyseur XML
  • xml_get_current_line_number() - Retourne le numéro de ligne courant d'un analyseur XML


Retourne le numéro de ligne courant d'un analyseur XML

  • « xml_get_current_column_number
  • xml_get_error_code »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Retourne le numéro de ligne courant d'un analyseur XML

xml_get_current_line_number

(PHP 4, PHP 5, PHP 7)

xml_get_current_line_number — Retourne le numéro de ligne courant d'un analyseur XML

Description

int xml_get_current_line_number ( resource $parser )

Retourne le numéro de ligne courant de l'analyseur XML donné.

Liste de paramètres

parser

Une référence sur un analyseur XML valide.

Valeurs de retour

xml_get_current_line_number() retourne FALSE si parser n'est pas valide ou, sinon, retourne le numéro de la ligne en cours d'analyse.

Voir aussi

  • xml_get_current_column_number() - Retourne le numéro de colonne courant d'un analyseur XML
  • xml_get_current_byte_index() - Retourne l'index de l'octet courant d'un analyseur XML


Récupère le code erreur de l'analyseur XML

  • « xml_get_current_line_number
  • xml_parse_into_struct »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Récupère le code erreur de l'analyseur XML

xml_get_error_code

(PHP 4, PHP 5, PHP 7)

xml_get_error_code — Récupère le code erreur de l'analyseur XML

Description

int xml_get_error_code ( resource $parser )

Récupère le code erreur de l'analyseur XML.

Liste de paramètres

parser

Une référence sur un analyseur XML valide.

Valeurs de retour

xml_get_error_code() retourne FALSE si parser n'est pas une référence à une analyseur XML valide ou, sinon, retourne un des codes erreur listés dans la section sur les codes erreur.

Voir aussi

  • xml_error_string() - Lit le message d'erreur de l'analyseur XML


Analyse une structure XML

  • « xml_get_error_code
  • xml_parse »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Analyse une structure XML

xml_parse_into_struct

(PHP 4, PHP 5, PHP 7)

xml_parse_into_struct — Analyse une structure XML

Description

int xml_parse_into_struct ( resource $parser , string $data , array &$values [, array &$index ] )

Cette fonction analyse la chaîne XML data et le place dans deux tableaux : le premier index contient des pointeurs sur la position des valeurs correspondantes dans le tableau values. Ces deux paramètres sont passés par références.

Liste de paramètres

parser

Une référence à une analyseur XML.

data

Une chaîne de caractères contenant les données XML.

values

Un tableau contenant les valeurs des données XML.

index

Un tableau contenant les pointeurs vers les valeurs appropriées dans le paramètre $values.

Valeurs de retour

xml_parse_into_struct() retourne 0 si une erreur survient et 1 en cas de succès. Ce n'est pas la même chose que FALSE et TRUE, soyez prudent avec les opérateurs comme ===.

Exemples

Ci-dessous, vous trouverez un exemple qui illustre la structure des deux tableaux générés par la fonction. On utilise une balise simple note, placée dans une autre balise para. On analyse le tout, et on affiche la structure générée :

Exemple #1 Exemple avec xml_parse_into_struct()

<?php
$simple = "<para><note>simple note</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo "Index array\n";
print_r($index);
echo "\nVals array\n";
print_r($vals);
?>

Affichera :

Index array
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Vals array
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => simple note
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

L'analyse événementielle (comme celle de expat), peut se révéler complexe lorsque le document XML est complexe. xml_parse_into_struct() ne génère pas d'objet de type DOM, mais il génère plutôt des structures qui peuvent être parcourues à la façon d'un arbre. Considérons le fichier suivant, qui représente une petite base de données XML :

Exemple #2 moldb.xml - Petite base de données moléculaires

<?xml version="1.0"?>
<moldb>

  <molecule>
      <name>Alanine</name>
      <symbol>ala</symbol>
      <code>A</code>
      <type>hydrophobic</type>
  </molecule>

  <molecule>
      <name>Lysine</name>
      <symbol>lys</symbol>
      <code>K</code>
      <type>charged</type>
  </molecule>

</moldb>
Et maintenant, un code qui analyse le document, et génère les objets ad hoc :

Exemple #3 parsemoldb.php : Analyse moldb.xml et crée un tableau d'objets moléculaires

<?php

class AminoAcid {
    var $name;  // nom aa
    var $symbol;    // symbole à trois lettres
    var $code;  // code à une lettre
    var $type;  // hydrophobique, chargé ou neutre

    function AminoAcid ($aa) {
        foreach ($aa as $k=>$v)
            $this->$k = $aa[$k];
    }
}

function readDatabase($filename) {
    // lit la base de données xml des acides aminés
    $data = implode("",file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
    xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
    xml_parse_into_struct($parser,$data,$values,$tags);
    xml_parser_free($parser);

    // boucle à travers les structures
    foreach ($tags as $key=>$val) {
        if ($key == "molecule") {
            $molranges = $val;
            // each contiguous pair of array entries are the
            // lower and upper range for each molecule definition
            for ($i=0; $i < count($molranges); $i+=2) {
                $offset = $molranges[$i] + 1;
                $len = $molranges[$i + 1] - $offset;
                $tdb[] = parseMol(array_slice($values, $offset, $len));
            }
        } else {
            continue;
        }
    }
    return $tdb;
}

function parseMol($mvalues) {
    for ($i=0; $i < count($mvalues); $i++)
        $mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
    return new AminoAcid($mol);
}

$db = readDatabase("moldb.xml");
echo "** Base d'objets AminoAcid :\n";
print_r($db);

?>
Après exécution de parsemoldb.php, la variable $db contient un tableau d'objets AminoAcid, et l'affichage le confirme :
** Base d'objets AminoAcid :
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)


Commence l'analyse d'un document XML

  • « xml_parse_into_struct
  • xml_parser_create_ns »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Commence l'analyse d'un document XML

xml_parse

(PHP 4, PHP 5, PHP 7)

xml_parse — Commence l'analyse d'un document XML

Description

int xml_parse ( resource $parser , string $data [, bool $is_final = false ] )

xml_parse() analyse un document XML. Les gestionnaires pour les événements configurés sont appelés autant de fois que nécessaire.

Liste de paramètres

parser

Une référence sur l'analyseur XML à utiliser.

data

Une partie des données à analyser. Un document peut être analysé morceau par morceau par appels successifs à xml_parse() avec de nouvelles données, aussi longtemps que le paramètre is_final est défini et TRUE lorsque les dernières données sont analysées.

is_final

Si défini et vaut TRUE, data sera le dernier morceau de données envoyées à l'analyseur.

Valeurs de retour

Retourne 1 en cas de succès ou 0 en cas d'échec.

Lors d'un échec d'analyse, la cause de l'erreur peut être obtenue grâce
aux fonctions
xml_get_error_code(),
xml_error_string(),
xml_get_current_line_number(),
xml_get_current_column_number() et
xml_get_current_byte_index().

Note:

Les erreurs d'entités sont reportées à la fin des données, ceci uniquement si is_final vaut TRUE.


Crée un analyseur XML

  • « xml_parse
  • xml_parser_create »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Crée un analyseur XML

xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

xml_parser_create_ns — Crée un analyseur XML

Description

resource xml_parser_create_ns ([ string $encoding [, string $separator = ":" ]] )

xml_parser_create_ns() crée un nouvel analyseur XML avec le support des espaces de noms, et retourne une ressource qui pourra être utilisée avec les autres fonctions XML.

Liste de paramètres

encoding

Le paramètre optionnel encoding spécifie le jeu de caractères d'encodage pour l'entrée/sortie dans PHP 4. Depuis PHP 5, ce jeu de caractères est automatiquement détecté et, donc, le paramètre encoding ne spécifie plus que la sortie. En PHP 4, le jeu de caractères de sortie par défaut est le même que celui d'entrée. En PHP 5.0.0 et PHP 5.0.1, le jeu de caractères d'entrée par défaut est ISO-8859-1, tandis qu'en PHP 5.0.2 et suivant, il vaut UTF-8. Les jeux de caractères supportés sont ISO-8859-1, UTF-8 et US-ASCII.

separator

Avec un analyseur qui supporte les espaces de noms, les balises qui sont passées aux différentes fonctions de gestion seront constituées du nom de l'espace et du nom de balise, séparé par la chaîne seperator.

Valeurs de retour

Retourne une ressource pour le nouvel analyseur XML.

Voir aussi

  • xml_parser_create() - Création d'un analyseur XML
  • xml_parser_free() - Détruit un analyseur XML


Création d'un analyseur XML

  • « xml_parser_create_ns
  • xml_parser_free »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Création d'un analyseur XML

xml_parser_create

(PHP 4, PHP 5, PHP 7)

xml_parser_create — Création d'un analyseur XML

Description

resource xml_parser_create ([ string $encoding ] )

xml_parser_create() crée un analyseur XML et retourne une référence sur cet analyseur pour qu'il puisse être utilisé ultérieurement par d'autres fonctions XML.

Liste de paramètres

encoding

Le paramètre optionnel encoding spécifie le jeu de caractères d'encodage pour l'entrée/sortie dans PHP 4. Depuis PHP 5, ce jeu de caractères est automatiquement détecté et, donc, le paramètre encoding ne spécifie plus que la sortie. En PHP 4, le jeu de caractères de sortie par défaut est le même que celui d'entrée. Si une chaîne vide est passée, l'analyseur tente d'identifier quel jeu de caractère a été utilisé pour encoder le document en regardant les 3 ou 4 octets du haut. En PHP 5.0.0 et PHP 5.0.1, le jeu de caractères d'entrée par défaut est ISO-8859-1, tandis qu'en PHP 5.0.2 et suivant, il vaut UTF-8. Les jeux de caractères supportés sont ISO-8859-1, UTF-8 et US-ASCII.

Valeurs de retour

Retourne une ressource, gérant le nouvel analyseur XML.

Voir aussi

  • xml_parser_create_ns() - Crée un analyseur XML
  • xml_parser_free() - Détruit un analyseur XML


Détruit un analyseur XML

  • « xml_parser_create
  • xml_parser_get_option »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Détruit un analyseur XML

xml_parser_free

(PHP 4, PHP 5, PHP 7)

xml_parser_free — Détruit un analyseur XML

Description

bool xml_parser_free ( resource $parser )

Détruit l'analyseur XML parser.

Liste de paramètres

parser
Une référence sur un analyseur XML.

Valeurs de retour

Cette fonction retourne FALSE si parser n'est pas une référence valide ou, sinon, détruit l'analyseur et retourne TRUE.


Lit les options d'un analyseur XML

  • « xml_parser_free
  • xml_parser_set_option »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Lit les options d'un analyseur XML

xml_parser_get_option

(PHP 4, PHP 5, PHP 7)

xml_parser_get_option — Lit les options d'un analyseur XML

Description

mixed xml_parser_get_option ( resource $parser , int $option )

Lit les options d'un analyseur XML.

Liste de paramètres

parser
Une référence sur un analyseur XML valide.
option
L'option demandée. XML_OPTION_CASE_FOLDING et XML_OPTION_TARGET_ENCODING sont disponibles. Reportez-vous à xml_parser_set_option() pour leurs descriptions.

Valeurs de retour

xml_parser_get_option() retourne FALSE si parser n'est pas un analyseur valide ou si option n'est pas valide (génère aussi un E_WARNING). Sinon, elle retourne la valeur de l'option demandée.


Affecte les options d'un analyseur XML

  • « xml_parser_get_option
  • xml_set_character_data_handler »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Affecte les options d'un analyseur XML

xml_parser_set_option

(PHP 4, PHP 5, PHP 7)

xml_parser_set_option — Affecte les options d'un analyseur XML

Description

bool xml_parser_set_option ( resource $parser , int $option , mixed $value )

Affecte les options d'un analyseur XML.

Liste de paramètres

parser

Une référence vers un analyseur XML.

option

L'option à modifier. Voir ci-dessous.

Les options suivantes sont disponibles :

Options de l'analyseur XML
Option | Type de données | Description
XML_OPTION_CASE_FOLDING | entier | Contrôle la gestion de la casse des balises de cet analyseur XML. Par défaut, activé.
XML_OPTION_SKIP_TAGSTART | entier | Spécifie combien de caractères doivent être éludés du début du nom de la balise.
XML_OPTION_SKIP_WHITE | entier | Élude ou non les valeurs contenant des caractères blancs.
XML_OPTION_TARGET_ENCODING | string | Modifie le codage à la cible utilisé par cet analyseur XML. Par défaut, c'est celui qui a été spécifié lors de l'appel de xml_parser_create(). Les codages supportés sont ISO-8859-1, US-ASCII et UTF-8.

value

La nouvelle valeur de l'option.

Valeurs de retour

Retourne FALSE si parser n'est pas une référence valide sur un analyseur XML, ou si l'option n'a pas pu être modifiée. Sinon, l'option est effectivement modifiée, et la fonction retourne TRUE.


Affecte les gestionnaires de texte littéral

  • « xml_parser_set_option
  • xml_set_default_handler »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Affecte les gestionnaires de texte littéral

xml_set_character_data_handler

(PHP 4, PHP 5, PHP 7)

xml_set_character_data_handler — Affecte les gestionnaires de texte littéral

Description

bool xml_set_character_data_handler ( resource $parser , callable $handler )

Affecte les gestionnaires de début et de fin de l'analyseur XML parser.

Liste de paramètres

parser

Une référence à un analyseur XML à définir comme fonction gérant les données.

handler

handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

La fonction handler doit accepter deux paramètres :

handler ( resource $parser , string $data )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
data
Le second paramètre, data, contient les caractères sous la forme d'une chaîne.

Le gestionnaire des données est appelé pour chaque pièce du texte d'un document XML. Il peut être appelé plusieurs fois dans chaque fragment (e.g. pour les chaînes non-ASCII).

Si un gestionnaire reçoit une chaîne vide ou FALSE, c'est qu'il est désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Affecte le gestionnaire XML par défaut

  • « xml_set_character_data_handler
  • xml_set_element_handler »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Affecte le gestionnaire XML par défaut

xml_set_default_handler

(PHP 4, PHP 5, PHP 7)

xml_set_default_handler — Affecte le gestionnaire XML par défaut

Description

bool xml_set_default_handler ( resource $parser , callable $handler )

Affecte le gestionnaire par défaut de l'analyseur XML parser.

Liste de paramètres

parser

Une référence à un analyseur XML à définir comme fonction d'analyse par défaut.

handler

handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

La fonction handler doit accepter deux paramètres :

handler ( resource $parser , string $data )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
data
Le second paramètre, data, contient les caractères sous la forme d'une chaîne. Cela peut être une déclaration XML, un type de document, une entité ou d'autres données pour lesquelles aucun gestionnaire n'est prévu.

Si un gestionnaire reçoit une chaîne vide ou FALSE, c'est qu'il est désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Affecte les gestionnaires de début et de fin de balise XML

  • « xml_set_default_handler
  • xml_set_end_namespace_decl_handler »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Affecte les gestionnaires de début et de fin de balise XML

xml_set_element_handler

(PHP 4, PHP 5, PHP 7)

xml_set_element_handler — Affecte les gestionnaires de début et de fin de balise XML

Description

bool xml_set_element_handler ( resource $parser , callable $start_element_handler , callable $end_element_handler )

Affecte les gestionnaires de début et de fin de l'analyseur XML parser. start_element_handler et end_element_handler sont des chaînes qui contiennent les noms de fonctions qui existent lorsque xml_parse() est appelée pour créer parser.

Liste de paramètres

parser

Une référence d'analyseur XML à définir comme fonction gérant les éléments de début et de fin.

start_element_handler

La fonction start_element_handler doit accepter trois paramètres :

start_element_handler ( resource $parser , string $name , array $attribs )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
name
Le deuxième paramètre, name, contient le nom de l'élément qui a provoqué l'appel du gestionnaire. Si l'analyseur gère la casse, cet élément sera en majuscules.
attribs
Le troisième paramètre, attribs, contient un tableau associatif avec les attributs de l'élément (s'il en existe). Les clés de ce tableau seront les noms des attributs, et les valeurs seront les valeurs correspondantes des attributs. Les noms des attributs seront mis en majuscules si l'analyseur gère la casse. Les valeurs des attributs seront inchangées. L'ordre original des attributs peut être retrouvé en passant en revue le tableau attribs, avec la fonction each(). La première clé sera la première clé du tableau.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

end_element_handler

La fonction endelementhandler doit accepter deux paramètres :

end_element_handler ( resource $parser , string $name )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
name
Le second paramètre, name, contient le nom de l'élément qui a provoqué l'appel du gestionnaire. Si l'analyseur gère la casse, cet élément sera en majuscules.

Si un gestionnaire reçoit une chaîne vide, ou FALSE, c'est qu'il est en train d'être désactivé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure le gestionnaire XML de données

  • « xml_set_element_handler
  • xml_set_external_entity_ref_handler »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Configure le gestionnaire XML de données

xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

xml_set_end_namespace_decl_handler — Configure le gestionnaire XML de données

Description

bool xml_set_end_namespace_decl_handler ( resource $parser , callable $handler )

Définit un gestionnaire à appeler lorsque l'on quitte le contexte d'un espace de noms. Il peut être appelé, pour chaque déclaration de l'espace de noms, après le gestionnaire de la dernière balise de l'élément dont l'espace de noms a été déclaré.

Liste de paramètres

parser

Une référence à un analyseur XML.

handler

handler est une chaîne contenant le nom d'une fonction qui doit exister lorsque la fonction xml_parse() est appelée pour l'analyseur parser.

La fonction nommée par le paramètre handler doit accepter 2 paramètres, et doit retourner une valeur entière. Si la valeur retournée du gestionnaire est FALSE (ce qui sera le cas si aucune valeur n'est retournée), l'analyseur XML arrêtera l'analyse et la fonction xml_get_error_code() retournera XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( resource $parser , string $prefix )
parser
Le 3ème paramètre, parser, est une référence à l'analyseur XML appelée par le gestionnaire.
prefix
Le préfixe est une chaîne de caractères utilisée pour référencer l'espace de noms dans un objet.

Si une chaîne vide, ou FALSE, est passée à la fonction représentant le gestionnaire, le gestionnaire en question sera désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

Cet évènement n'est pas supporté sous LibXML.

Voir aussi

  • xml_set_start_namespace_decl_handler() - Configure le gestionnaire de caractères


Configure le gestionnaire XML de références externes

  • « xml_set_end_namespace_decl_handler
  • xml_set_notation_decl_handler »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Configure le gestionnaire XML de références externes

xml_set_external_entity_ref_handler

(PHP 4, PHP 5, PHP 7)

xml_set_external_entity_ref_handler — Configure le gestionnaire XML de références externes

Description

bool xml_set_external_entity_ref_handler ( resource $parser , callable $handler )

Affecte le gestionnaire d'entité externe de l'analyseur XML parser.

Liste de paramètres

parser

Une référence d'analyseur XML à définir comme fonction de référence d'entités externes.

handler

handler est une chaîne qui contient les noms de fonctions qui existent lorsque xml_parse() est appelé pour créer le parser.

La fonction handler doit accepter 5 paramètres, et retourner un entier. Si la valeur retournée par le gestionnaire est FALSE (par exemple si aucune valeur n'est retournée), l'analyseur XML s'arrêtera, et la fonction xml_get_error_code() retournera XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( resource $parser , string $open_entity_names , string $base , string $system_id , string $public_id )
parser
Le premier paramètre,parser, est une référence sur l'analyseur XML qui appelle cette fonction.
open_entity_names
Le deuxième paramètre, open_entity_names, est la liste de noms d'entités, séparés par des espaces. Ces entités sont accessibles à l'analyse par cette entité (y compris le nom de l'entité référencée).
base
La meilleure base de résolution de l'identifiant système (system_id) de cette entité externe. Actuellement, ce paramètre est toujours une chaîne vide.
system_id
Identifiant système pour cette entité externe.
public_id
Le cinquième paramètre, public_id, est l'identifiant public, comme spécifié dans la déclaration d'entité, ou une chaîne vide, si aucune déclaration n'a été spécifiée. L'espace dans l'identifiant public sera normalisé comme spécifié dans les spécifications XML.

Si un gestionnaire reçoit une chaîne vide, ou FALSE, c'est qu'il est en train d'être désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure le gestionnaire XML de notations

  • « xml_set_external_entity_ref_handler
  • xml_set_object »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Configure le gestionnaire XML de notations

xml_set_notation_decl_handler

(PHP 4, PHP 5, PHP 7)

xml_set_notation_decl_handler — Configure le gestionnaire XML de notations

Description

bool xml_set_notation_decl_handler ( resource $parser , callable $handler )

Affecte les gestionnaires de début et de fin de l'analyseur XML parser.

Une notation est une partie du DTD du document, qui a le format suivant :

<!NOTATION <parameter>name</parameter>
{ <parameter>systemId</parameter> | <parameter>publicId</parameter>?>
Reportez-vous à la section » des spécifications XML 1.0 pour connaître les notations des entités externes.

Liste de paramètres

parser

Une référence d'analyseur XML à définir comme fonction de déclaration de notation.

handler

handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

La fonction handler doit accepter cinq paramètres :

handler ( resource $parser , string $notation_name , string $base , string $system_id , string $public_id )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
notation_name
Le nom de la notation, name, comme précisé dans le format de notation ci-dessus.
base
La meilleure base de résolution de l'identifiant système (system_id) de cette entité externe. Actuellement, ce paramètre est toujours une chaîne vide.
system_id
Identifiant système pour cette entité externe.
public_id
Identifiant public pour cette entité externe.

Si un gestionnaire reçoit une chaîne vide ou FALSE, c'est qu'il est en train d'être désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure un objet comme analyseur XML

  • « xml_set_notation_decl_handler
  • xml_set_processing_instruction_handler »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Configure un objet comme analyseur XML

xml_set_object

(PHP 4, PHP 5, PHP 7)

xml_set_object — Configure un objet comme analyseur XML

Description

bool xml_set_object ( resource $parser , object &$object )

Rend l'analyseur parser utilisable depuis un objet. Toutes les méthodes de rappel, affectées par xml_set_element_handler(), seront les méthodes de cet objet.

Liste de paramètres

parser

Une référence d'analyseur XML à utiliser dans l'objet.

object

L'objet dans lequel nous devons utiliser l'analyseur XML.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec xml_set_object()

<?php
class xml  {
    var $parser;

    function xml()
    {
        $this->parser = xml_parser_create();

        xml_set_object($this->parser, $this);
        xml_set_element_handler($this->parser, "tag_open", "tag_close");
        xml_set_character_data_handler($this->parser, "cdata");
    }

    function parse($data)
    {
        xml_parse($this->parser, $data);
    }

    function tag_open($parser, $tag, $attributes)
    {
        var_dump($parser, $tag, $attributes);
    }

    function cdata($parser, $cdata)
    {
        var_dump($parser, $cdata);
    }

    function tag_close($parser, $tag)
    {
        var_dump($parser, $tag);
    }

} // fin de la classe xml

$xml_parser = new xml();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>


Affecte les gestionnaires d'instructions exécutables

  • « xml_set_object
  • xml_set_start_namespace_decl_handler »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Affecte les gestionnaires d'instructions exécutables

xml_set_processing_instruction_handler

(PHP 4, PHP 5, PHP 7)

xml_set_processing_instruction_handler — Affecte les gestionnaires d'instructions exécutables

Description

bool xml_set_processing_instruction_handler ( resource $parser , callable $handler )

Affecte le gestionnaire d'instructions exécutables de l'analyseur XML parser.

Une instruction exécutable a la forme suivante :

<?
target data
?>
Vous pouvez mettre du code PHP entre ces balises, mais soyez conscient d'une des limitations des instructions exécutables de XML : la balise de fin d'instruction exécutable (?>) ne peut être échappée, ce qui fait que cette séquence NE DOIT JAMAIS apparaître dans le code PHP placé dans le document PHP. Si un tel texte apparaît, la balise de fin d'instruction exécutable sera reconnue, et le reste du code sera considéré comme des données brutes (et donc, pas exécutées).

Liste de paramètres

parser

Une référence à l'analyseur XML à définir comme fonction d'analyse d'instructions (PI).

handler

handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

La fonction handler doit accepter trois paramètres :

handler ( resource $parser , string $target , string $data )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
target
Le second paramètre, target, contient l'application cible.
data
Le troisième paramètre, data, contient le code sous la forme d'une chaîne.

Si un gestionnaire reçoit une chaîne vide, ou FALSE, c'est qu'il est désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Configure le gestionnaire de caractères

  • « xml_set_processing_instruction_handler
  • xml_set_unparsed_entity_decl_handler »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Configure le gestionnaire de caractères

xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

xml_set_start_namespace_decl_handler — Configure le gestionnaire de caractères

Description

bool xml_set_start_namespace_decl_handler ( resource $parser , callable $handler )

Définit le gestionnaire à appeler lorsque l'espace de noms est déclaré. Les déclarations d'espace de noms surviennent dans les balises de départ. Mais le gestionnaire de départ, appelé lors de la déclaration de l'espace de noms, est appelé avant le gestionnaire de la balise de départ pour chaque espace de noms déclaré dans cette balise.

Liste de paramètres

parser

Une référence vers l'analyseur XML.

handler

handler est une chaîne contenant le nom d'une fonction devant exister lorsque la fonction xml_parse() est appelé pour l'analyseur parser.

La fonction nommée par le paramètre handler doit accepter 3 paramètres, et doit retourner une valeur entière. Si la valeur retournée par le gestionnaire vaut FALSE (ce qui sera le cas lorsqu'aucune valeur n'est retourné), l'analyseur XML arrêtera l'analyse et la fonction xml_get_error_code() retournera XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( resource $parser , string $prefix , string $uri )
parser
Le premier paramètre, parser, est une référence à l'analyseur XML appelée par le gestionnaire.
prefix
Le préfixe est une chaîne de caractères utilisée pour référencer l'espace de noms d'un objet XML.
uri
Identifiant de ressource uniforme (URI) d'un espace de noms.

Si une chaîne vide, ou la valeur FALSE, est passée en guise de fonction pour le gestionnaire, il sera désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • xml_set_end_namespace_decl_handler() - Configure le gestionnaire XML de données


Affecte les gestionnaires d'entités non déclarées

  • « xml_set_start_namespace_decl_handler
  • XMLReader »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Affecte les gestionnaires d'entités non déclarées

xml_set_unparsed_entity_decl_handler

(PHP 4, PHP 5, PHP 7)

xml_set_unparsed_entity_decl_handler — Affecte les gestionnaires d'entités non déclarées

Description

bool xml_set_unparsed_entity_decl_handler ( resource $parser , callable $handler )

Affecte les gestionnaires d'entités non déclarées de l'analyseur XML parser.

Le gestionnaire parser sera appelé si l'analyseur XML rencontre une déclaration d'entité externe avec une déclaration de NDATA, comme suit :

<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
        NDATA <parameter>notationName</parameter>

Reportez-vous à la section » des spécifications XML 1.0 pour connaître les notations des entités externes.

Liste de paramètres

parser

Une référence à l'analyseur XML à définir à la fonction utilisée par traiter les déclarations d'entités non-analysées.

handler

handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

La fonction handler doit accepter six paramètres :

handler ( resource $parser , string $entity_name , string $base , string $system_id , string $public_id , string $notation_name )
parser
Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.
entity_name
Le nom de l'entité qui va être définie.
base
La meilleure base de résolution de l'identifiant système de cette entité externe. Actuellement, ce paramètre est toujours une chaîne vide.
system_id
Identifiant système pour cette entité externe.
public_id
Identifiant public pour cette entité externe.
notation_name
Nom de la notation de cette entité. (Voir xml_set_notation_decl_handler()).

Si un gestionnaire reçoit une chaîne vide ou FALSE, c'est qu'il est en train d'être désactivé.

Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


XMLReader

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • XMLReader — La classe XMLReader
    • XMLReader::close — Ferme l'entrée XMLReader
    • XMLReader::expand — Retourne une copie du noeud courant comme un noeud d'objet DOM
    • XMLReader::getAttribute — Récupère la valeur d'un attribut par nom
    • XMLReader::getAttributeNo — Récupère la valeur d'un attribut par index
    • XMLReader::getAttributeNs — Récupère la valeur d'un attribut par nom local et URI
    • XMLReader::getParserProperty — Indique si la propriété spécifiée a été fixée
    • XMLReader::isValid — Indique si le document analysé est valide
    • XMLReader::lookupNamespace — Consulte l'espace de nom pour un préfixe
    • XMLReader::moveToAttribute — Déplace un curseur à un attribut nommé
    • XMLReader::moveToAttributeNo — Déplace le curseur à un attribut par index
    • XMLReader::moveToAttributeNs — Déplace le curseur à un attribut d'espace de nom
    • XMLReader::moveToElement — Positionne le curseur sur l'élément parent de l'attribut courant
    • XMLReader::moveToFirstAttribute — Positionne le curseur sur le premier attribut
    • XMLReader::moveToNextAttribute — Positionne le curseur sur le prochain attribut
    • XMLReader::next — Déplace le curseur au prochain noeud en sautant tous les sous arbres
    • XMLReader::open — Fixe le URI contenant le XML à analyser
    • XMLReader::read — Déplace le curseur sur le prochain noeud du document
    • XMLReader::readInnerXML — Lit le code XML du noeud courant
    • XMLReader::readOuterXML — Lit le code XML du noeud courant, y compris lui-même
    • XMLReader::readString — Lit le contenu du noeud courant sous forme de chaîne
    • XMLReader::setParserProperty — Fixe des options pour l'analyseur
    • XMLReader::setRelaxNGSchema — Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG
    • XMLReader::setRelaxNGSchemaSource — Spécifie le schéma RelaxNG
    • XMLReader::setSchema — Valide le document avec XSD
    • XMLReader::XML — Fixe les données contenant le XML à analyser


Introduction

L'extension XMLReader un analyseur XML Pull. Le lecteur fonctionne comme un curseur qui avance sur le flux du document et s'arrête à chaque noeud sur le chemin.

Encodage

Il est important de noter que, en interne, libxml utilise l'encodage UTF-8 et donc, l'encodage du contenu récupéré devra toujours être encodé UTF-8.


Installation

L'extension XMLReader était au départ une extension PECL pour PHP 5. Elle a été intégrée par la suite au source de PHP et ce, depuis la version 5.1.0. Elle est activée par défaut depuis la version 5.1.2 de PHP.

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-xmlreader


  • « Configuration à l'exécution
  • XMLReader »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


La classe XMLReader

(PHP 5 >= 5.1.0, PHP 7)

Introduction

L'extension XMLReader est un analyseur XML. L'analyseur fonctionne comme un curseur qui parcourt le document et s'arrête sur chaque noeud.

Synopsis de la classe

XMLReader {
/* Constantes */
const int NONE = 0 ;
const int ELEMENT = 1 ;
const int ATTRIBUTE = 2 ;
const int TEXT = 3 ;
const int CDATA = 4 ;
const int ENTITY_REF = 5 ;
const int ENTITY = 6 ;
const int PI = 7 ;
const int COMMENT = 8 ;
const int DOC = 9 ;
const int DOC_TYPE = 10 ;
const int DOC_FRAGMENT = 11 ;
const int NOTATION = 12 ;
const int WHITESPACE = 13 ;
const int SIGNIFICANT_WHITESPACE = 14 ;
const int END_ELEMENT = 15 ;
const int END_ENTITY = 16 ;
const int XML_DECLARATION = 17 ;
const int LOADDTD = 1 ;
const int DEFAULTATTRS = 2 ;
const int VALIDATE = 3 ;
const int SUBST_ENTITIES = 4 ;
/* Propriétés */
public readonly int $attributeCount ;
public readonly string $baseURI ;
public readonly int $depth ;
public readonly bool $hasAttributes ;
public readonly bool $hasValue ;
public readonly bool $isDefault ;
public readonly bool $isEmptyElement ;
public readonly string $localName ;
public readonly string $name ;
public readonly string $namespaceURI ;
public readonly int $nodeType ;
public readonly string $prefix ;
public readonly string $value ;
public readonly string $xmlLang ;
/* Méthodes */
public bool close ( void )
public DOMNode expand ([ DOMNode $basenode ] )
public string getAttribute ( string $name )
public string getAttributeNo ( int $index )
public string getAttributeNs ( string $localName , string $namespaceURI )
public bool getParserProperty ( int $property )
public bool isValid ( void )
public string lookupNamespace ( string $prefix )
public bool moveToAttribute ( string $name )
public bool moveToAttributeNo ( int $index )
public bool moveToAttributeNs ( string $localName , string $namespaceURI )
public bool moveToElement ( void )
public bool moveToFirstAttribute ( void )
public bool moveToNextAttribute ( void )
public bool next ([ string $localname ] )
public bool open ( string $URI [, string $encoding [, int $options = 0 ]] )
public bool read ( void )
public string readInnerXML ( void )
public string readOuterXML ( void )
public string readString ( void )
public bool setParserProperty ( int $property , bool $value )
public bool setRelaxNGSchema ( string $filename )
public bool setRelaxNGSchemaSource ( string $source )
public bool setSchema ( string $filename )
public bool xml ( string $source [, string $encoding [, int $options = 0 ]] )
}

Propriétés

attributeCount

Le nombre d'attributs dans le noeud

baseURI

La base URI du noeud

depth

Profondeur du noeud dans l'arbre démarrant à 0

hasAttributes

Indique si le noeud a des attributs

hasValue

Indique si le noeud a une valeur de texte

isDefault

Indique si l'attribut est par défaut à partir du DTD

isEmptyElement

Indique si le noeud est un élément vide

localName

Le nom local du noeud

name

Le noeud qualifié du noeud

namespaceURI

L'URI de l'espace de nom associé avec le noeud

nodeType

Le type de noeud pour le noeud

prefix

Le préfixe de l'espace de nom associé avec le noeud

value

La valeur du texte du noeud

xmlLang

La portée xml:lang dans lequel le noeud réside

Constantes pré-définies

Types de noeud XMLReader

XMLReader::NONE

Pas de type de noeud

XMLReader::ELEMENT

Élément de départ

XMLReader::ATTRIBUTE

Noeud Attribut

XMLReader::TEXT

Noeud texte

XMLReader::CDATA

Noeud CDATA

XMLReader::ENTITY_REF

Noeud de référence d'entité

XMLReader::ENTITY

Noeud de déclaration d'entité

XMLReader::PI

Noeud d'instruction de processus

XMLReader::COMMENT

Noeud de commentaire

XMLReader::DOC

Noeud document

XMLReader::DOC_TYPE

Noeud de type de document

XMLReader::DOC_FRAGMENT

Noeud de fragment de document

XMLReader::NOTATION

Noeud de notation

XMLReader::WHITESPACE

Noeud "espace"

XMLReader::SIGNIFICANT_WHITESPACE

Noeud "espace" significatif

XMLReader::END_ELEMENT

Élément de fin

XMLReader::END_ENTITY

Entité de fin

XMLReader::XML_DECLARATION

Noeud de déclaration XML

Options de l'analyseur XMLReader

XMLReader::LOADDTD

Charge une DTD mais ne la valide pas

XMLReader::DEFAULTATTRS

Charge une DTD et les attributs par défaut mais ne la valide pas

XMLReader::VALIDATE

Charge une DTD et valide le document au moment de l'analyse

XMLReader::SUBST_ENTITIES

Substitue les entités et étend les références

Sommaire

  • XMLReader::close — Ferme l'entrée XMLReader
  • XMLReader::expand — Retourne une copie du noeud courant comme un noeud d'objet DOM
  • XMLReader::getAttribute — Récupère la valeur d'un attribut par nom
  • XMLReader::getAttributeNo — Récupère la valeur d'un attribut par index
  • XMLReader::getAttributeNs — Récupère la valeur d'un attribut par nom local et URI
  • XMLReader::getParserProperty — Indique si la propriété spécifiée a été fixée
  • XMLReader::isValid — Indique si le document analysé est valide
  • XMLReader::lookupNamespace — Consulte l'espace de nom pour un préfixe
  • XMLReader::moveToAttribute — Déplace un curseur à un attribut nommé
  • XMLReader::moveToAttributeNo — Déplace le curseur à un attribut par index
  • XMLReader::moveToAttributeNs — Déplace le curseur à un attribut d'espace de nom
  • XMLReader::moveToElement — Positionne le curseur sur l'élément parent de l'attribut courant
  • XMLReader::moveToFirstAttribute — Positionne le curseur sur le premier attribut
  • XMLReader::moveToNextAttribute — Positionne le curseur sur le prochain attribut
  • XMLReader::next — Déplace le curseur au prochain noeud en sautant tous les sous arbres
  • XMLReader::open — Fixe le URI contenant le XML à analyser
  • XMLReader::read — Déplace le curseur sur le prochain noeud du document
  • XMLReader::readInnerXML — Lit le code XML du noeud courant
  • XMLReader::readOuterXML — Lit le code XML du noeud courant, y compris lui-même
  • XMLReader::readString — Lit le contenu du noeud courant sous forme de chaîne
  • XMLReader::setParserProperty — Fixe des options pour l'analyseur
  • XMLReader::setRelaxNGSchema — Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG
  • XMLReader::setRelaxNGSchemaSource — Spécifie le schéma RelaxNG
  • XMLReader::setSchema — Valide le document avec XSD
  • XMLReader::XML — Fixe les données contenant le XML à analyser


Ferme l'entrée XMLReader

  • « XMLReader
  • XMLReader::expand »
  • PHP Manual
  • XMLReader
  • Ferme l'entrée XMLReader

XMLReader::close

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::close — Ferme l'entrée XMLReader

Description

public bool XMLReader::close ( void )

Ferme l'entrée de l'objet XMLReader qui est en train d'être analysé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLReader::open() - Fixe le URI contenant le XML à analyser
  • XMLReader::xml() - Fixe les données contenant le XML à analyser


Retourne une copie du noeud courant comme un noeud d'objet DOM

  • « XMLReader::close
  • XMLReader::getAttribute »
  • PHP Manual
  • XMLReader
  • Retourne une copie du noeud courant comme un noeud d'objet DOM

XMLReader::expand

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::expand — Retourne une copie du noeud courant comme un noeud d'objet DOM

Description

public DOMNode XMLReader::expand ([ DOMNode $basenode ] )

Cette méthode copie le noeud courant et retourne l'objet approprié DOM.

Liste de paramètres

basenode

Un DOMNode définissant la cible DOMDocument pour l'objet DOM créé.

Valeurs de retour

L'objet DOMNode résultant ou FALSE en cas d'erreur.

Historique

Version | Description
5.3.0 | Le paramètre basenode a été ajouté.


Récupère la valeur d'un attribut par nom

  • « XMLReader::expand
  • XMLReader::getAttributeNo »
  • PHP Manual
  • XMLReader
  • Récupère la valeur d'un attribut par nom

XMLReader::getAttribute

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::getAttribute — Récupère la valeur d'un attribut par nom

Description

public string XMLReader::getAttribute ( string $name )

Retourne la valeur d'un attribut par nom ou NULL si l'attribut n'existe pas ou n'est pas positionné sur le noeud.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

La valeur de l'attribut ou NULL si l'attribut avec le name donné n'existe pas ou n'est pas positionné sur le nœud d'un élément.

Historique

Version | Description
5.1.3 | Retourne NULL si aucun attribut n'est trouvé. Précédemment, la fonction retournait une chaîne vide dans ce cas.

Voir aussi

  • XMLReader::getAttributeNo() - Récupère la valeur d'un attribut par index
  • XMLReader::getAttributeNs() - Récupère la valeur d'un attribut par nom local et URI


Récupère la valeur d'un attribut par index

  • « XMLReader::getAttribute
  • XMLReader::getAttributeNs »
  • PHP Manual
  • XMLReader
  • Récupère la valeur d'un attribut par index

XMLReader::getAttributeNo

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::getAttributeNo — Récupère la valeur d'un attribut par index

Description

public string XMLReader::getAttributeNo ( int $index )

Retourne la valeur d'un attribut basé sur sa position ou d'une chaîne de caractères vide si l'attribut n'existe pas ou n'est pas positionné sur le noeud.

Liste de paramètres

index

La position de l'attribut.

Valeurs de retour

La valeur de l'attribut, une chaîne de caractères vide (avant PHP 5.6) ou NULL (depuis PHP 5.6) si aucun attribut n'existe à index ou n'est pas positionné sur l'élément.

Historique

Version | Description
5.6.0 | XMLReader::getAttributeNo() retourne maintenant NULL si l'attribut n'existe pas.

Voir aussi

  • XMLReader::getAttribute() - Récupère la valeur d'un attribut par nom
  • XMLReader::getAttributeNs() - Récupère la valeur d'un attribut par nom local et URI


Récupère la valeur d'un attribut par nom local et URI

  • « XMLReader::getAttributeNo
  • XMLReader::getParserProperty »
  • PHP Manual
  • XMLReader
  • Récupère la valeur d'un attribut par nom local et URI

XMLReader::getAttributeNs

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::getAttributeNs — Récupère la valeur d'un attribut par nom local et URI

Description

public string XMLReader::getAttributeNs ( string $localName , string $namespaceURI )

Retourne la valeur d'un attribut par nom et espace de nom URI ou une chaîne de caractères vide si l'attribut n'existe pas ou n'est pas positionné sur le noeud.

Liste de paramètres

localName

Le nom local.

namespaceURI

L'espace de nom URI.

Valeurs de retour

La valeur de l'attribut, une chaîne de caractères vide (avant PHP 5.6), ou NULL (depuis PHP 5.6) si aucun attribut avec le localName et namespaceURI donnés n'est trouvé ou positionné sur l'élément.

Historique

Version | Description
5.6.0 | XMLReader::getAttributeNS() retourne maintenant NULL si l'attribut n'existe pas.

Voir aussi

  • XMLReader::getAttribute() - Récupère la valeur d'un attribut par nom
  • XMLReader::getAttributeNo() - Récupère la valeur d'un attribut par index


Indique si la propriété spécifiée a été fixée

  • « XMLReader::getAttributeNs
  • XMLReader::isValid »
  • PHP Manual
  • XMLReader
  • Indique si la propriété spécifiée a été fixée

XMLReader::getParserProperty

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::getParserProperty — Indique si la propriété spécifiée a été fixée

Description

public bool XMLReader::getParserProperty ( int $property )

Indique si la propriété spécifiée a été fixée.

Liste de paramètres

property

Une des constantes d'analyseur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLReader::setParserProperty() - Fixe des options pour l'analyseur


Indique si le document analysé est valide

  • « XMLReader::getParserProperty
  • XMLReader::lookupNamespace »
  • PHP Manual
  • XMLReader
  • Indique si le document analysé est valide

XMLReader::isValid

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::isValid — Indique si le document analysé est valide

Description

public bool XMLReader::isValid ( void )

Retourne un booléen indiquant si le document qui est en train d'être analysé est valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Validation XML

<?php
$xml = XMLReader::open('test.xml');

// L'option de validation de l'analyseur doit être
// active pour que cette méthode fonctionne correctement
$xml->setParserProperty(XMLReader::VALIDATE, true);

var_dump($xml->isValid());
?>

Notes

Note: Cette méthode vérifie le noeud courant, et non le document complet.

Voir aussi

  • XMLReader::setParserProperty() - Fixe des options pour l'analyseur
  • XMLReader::setRelaxNGSchema() - Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG
  • XMLReader::setRelaxNGSchemaSource() - Spécifie le schéma RelaxNG
  • XMLReader::setSchema() - Valide le document avec XSD


Consulte l'espace de nom pour un préfixe

  • « XMLReader::isValid
  • XMLReader::moveToAttribute »
  • PHP Manual
  • XMLReader
  • Consulte l'espace de nom pour un préfixe

XMLReader::lookupNamespace

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::lookupNamespace — Consulte l'espace de nom pour un préfixe

Description

public string XMLReader::lookupNamespace ( string $prefix )

Consulte dans la portée de l'espace de nom pour un préfixe donné.

Liste de paramètres

prefix

Chaînes de caractères contenant le préfixe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Déplace un curseur à un attribut nommé

  • « XMLReader::lookupNamespace
  • XMLReader::moveToAttributeNo »
  • PHP Manual
  • XMLReader
  • Déplace un curseur à un attribut nommé

XMLReader::moveToAttribute

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToAttribute — Déplace un curseur à un attribut nommé

Description

public bool XMLReader::moveToAttribute ( string $name )

Positionne le curseur sur l'attribut nommé.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLReader::moveToElement() - Positionne le curseur sur l'élément parent de l'attribut courant
  • XMLReader::moveToAttributeNo() - Déplace le curseur à un attribut par index
  • XMLReader::moveToAttributeNs() - Déplace le curseur à un attribut d'espace de nom
  • XMLReader::moveToFirstAttribute() - Positionne le curseur sur le premier attribut


Déplace le curseur à un attribut par index

  • « XMLReader::moveToAttribute
  • XMLReader::moveToAttributeNs »
  • PHP Manual
  • XMLReader
  • Déplace le curseur à un attribut par index

XMLReader::moveToAttributeNo

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToAttributeNo — Déplace le curseur à un attribut par index

Description

public bool XMLReader::moveToAttributeNo ( int $index )

Positionne le curseur sur l'attribut basé sur sa position.

Liste de paramètres

index

La position de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLReader::moveToElement() - Positionne le curseur sur l'élément parent de l'attribut courant
  • XMLReader::moveToAttribute() - Déplace un curseur à un attribut nommé
  • XMLReader::moveToAttributeNs() - Déplace le curseur à un attribut d'espace de nom
  • XMLReader::moveToFirstAttribute() - Positionne le curseur sur le premier attribut


Déplace le curseur à un attribut d'espace de nom

  • « XMLReader::moveToAttributeNo
  • XMLReader::moveToElement »
  • PHP Manual
  • XMLReader
  • Déplace le curseur à un attribut d'espace de nom

XMLReader::moveToAttributeNs

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToAttributeNs — Déplace le curseur à un attribut d'espace de nom

Description

public bool XMLReader::moveToAttributeNs ( string $localName , string $namespaceURI )

Positionne le curseur sur le nom de l'attribut dans l'espace de nom spécifié.

Liste de paramètres

localName

Le nom local.

namespaceURI

L'espace de nom URI.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLReader::moveToElement() - Positionne le curseur sur l'élément parent de l'attribut courant
  • XMLReader::moveToAttribute() - Déplace un curseur à un attribut nommé
  • XMLReader::moveToAttributeNo() - Déplace le curseur à un attribut par index
  • XMLReader::moveToFirstAttribute() - Positionne le curseur sur le premier attribut


Positionne le curseur sur l'élément parent de l'attribut courant

  • « XMLReader::moveToAttributeNs
  • XMLReader::moveToFirstAttribute »
  • PHP Manual
  • XMLReader
  • Positionne le curseur sur l'élément parent de l'attribut courant

XMLReader::moveToElement

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToElement — Positionne le curseur sur l'élément parent de l'attribut courant

Description

public bool XMLReader::moveToElement ( void )

Déplace le curseur de l'élément parent de l'attribut courant.

Valeurs de retour

Retourne TRUE en cas de succès et FALSE en cas d'échec ou non positionné sur un attribut lorsque cette méthode est appelée.

Voir aussi

  • XMLReader::moveToAttribute() - Déplace un curseur à un attribut nommé
  • XMLReader::moveToAttributeNo() - Déplace le curseur à un attribut par index
  • XMLReader::moveToAttributeNs() - Déplace le curseur à un attribut d'espace de nom
  • XMLReader::moveToFirstAttribute() - Positionne le curseur sur le premier attribut


Positionne le curseur sur le premier attribut

  • « XMLReader::moveToElement
  • XMLReader::moveToNextAttribute »
  • PHP Manual
  • XMLReader
  • Positionne le curseur sur le premier attribut

XMLReader::moveToFirstAttribute

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToFirstAttribute — Positionne le curseur sur le premier attribut

Description

public bool XMLReader::moveToFirstAttribute ( void )

Déplace le curseur sur le premier attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLReader::moveToElement() - Positionne le curseur sur l'élément parent de l'attribut courant
  • XMLReader::moveToAttribute() - Déplace un curseur à un attribut nommé
  • XMLReader::moveToAttributeNo() - Déplace le curseur à un attribut par index
  • XMLReader::moveToAttributeNs() - Déplace le curseur à un attribut d'espace de nom
  • XMLReader::moveToNextAttribute() - Positionne le curseur sur le prochain attribut


Positionne le curseur sur le prochain attribut

  • « XMLReader::moveToFirstAttribute
  • XMLReader::next »
  • PHP Manual
  • XMLReader
  • Positionne le curseur sur le prochain attribut

XMLReader::moveToNextAttribute

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToNextAttribute — Positionne le curseur sur le prochain attribut

Description

public bool XMLReader::moveToNextAttribute ( void )

Déplace le curseur sur le prochain attribut si positionné sur un attribut ou déplace sur le premier attribut si positionné sur un élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLReader::moveToElement() - Positionne le curseur sur l'élément parent de l'attribut courant
  • XMLReader::moveToAttribute() - Déplace un curseur à un attribut nommé
  • XMLReader::moveToAttributeNo() - Déplace le curseur à un attribut par index
  • XMLReader::moveToAttributeNs() - Déplace le curseur à un attribut d'espace de nom
  • XMLReader::moveToFirstAttribute() - Positionne le curseur sur le premier attribut


Déplace le curseur au prochain noeud en sautant tous les sous arbres

  • « XMLReader::moveToNextAttribute
  • XMLReader::open »
  • PHP Manual
  • XMLReader
  • Déplace le curseur au prochain noeud en sautant tous les sous arbres

XMLReader::next

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::next — Déplace le curseur au prochain noeud en sautant tous les sous arbres

Description

public bool XMLReader::next ([ string $localname ] )

Positionne le curseur sur le prochain noeud en sautant tous les sous arbres.

Liste de paramètres

localname

Le nom du prochaine noeud à se déplacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLReader::moveToNextAttribute() - Positionne le curseur sur le prochain attribut
  • XMLReader::moveToElement() - Positionne le curseur sur l'élément parent de l'attribut courant
  • XMLReader::moveToAttribute() - Déplace un curseur à un attribut nommé


Fixe le URI contenant le XML à analyser

  • « XMLReader::next
  • XMLReader::read »
  • PHP Manual
  • XMLReader
  • Fixe le URI contenant le XML à analyser

XMLReader::open

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::open — Fixe le URI contenant le XML à analyser

Description

public bool XMLReader::open ( string $URI [, string $encoding [, int $options = 0 ]] )

Fixe le URI contenant le document XML à être analysé.

Liste de paramètres

URI

URI pointant vers le document.

encoding

L'encodage du document, ou NULL.

options

Un masque de constante LIBXML_*.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si appelée statiquement, retourne un objet XMLReader ou FALSE si une erreur survient.

Erreurs / Exceptions

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Historique

Version | Description
5.2.0 | Les paramètres encoding et options ont été ajoutés.

Voir aussi

  • XMLReader::xml() - Fixe les données contenant le XML à analyser
  • XMLReader::close() - Ferme l'entrée XMLReader


Déplace le curseur sur le prochain noeud du document

  • « XMLReader::open
  • XMLReader::readInnerXML »
  • PHP Manual
  • XMLReader
  • Déplace le curseur sur le prochain noeud du document

XMLReader::read

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::read — Déplace le curseur sur le prochain noeud du document

Description

public bool XMLReader::read ( void )

Déplace le curseur au prochain noeud texte du document.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLReader::moveToElement() - Positionne le curseur sur l'élément parent de l'attribut courant
  • XMLReader::moveToAttribute() - Déplace un curseur à un attribut nommé
  • XMLReader::next() - Déplace le curseur au prochain noeud en sautant tous les sous arbres


Lit le code XML du noeud courant

  • « XMLReader::read
  • XMLReader::readOuterXML »
  • PHP Manual
  • XMLReader
  • Lit le code XML du noeud courant

XMLReader::readInnerXML

(PHP 5 >= 5.2.0, PHP 7)

XMLReader::readInnerXML — Lit le code XML du noeud courant

Description

public string XMLReader::readInnerXML ( void )

Lit le contenu du noeud courant, incluant les enfants et le balisage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le contenu du noeud courant sous forme de chaîne. Retourne une chaîne vide en cas d'échec.

Notes

Attention

Cette fonction n'est disponible que si PHP est compilé à l'aide de la librarie libxml 20620 ou ultérieure.

Voir aussi

  • XMLReader::readString() - Lit le contenu du noeud courant sous forme de chaîne
  • XMLReader::readOuterXML() - Lit le code XML du noeud courant, y compris lui-même
  • XMLReader::expand() - Retourne une copie du noeud courant comme un noeud d'objet DOM


Lit le code XML du noeud courant, y compris lui-même

  • « XMLReader::readInnerXML
  • XMLReader::readString »
  • PHP Manual
  • XMLReader
  • Lit le code XML du noeud courant, y compris lui-même

XMLReader::readOuterXML

(PHP 5 >= 5.2.0, PHP 7)

XMLReader::readOuterXML — Lit le code XML du noeud courant, y compris lui-même

Description

public string XMLReader::readOuterXML ( void )

Lit le code XML du noeud courant, y compris lui-même.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Lit le code XML du noeud courant, y compris lui-même, sous forme de chaîne. Retourne une chaîne vide en cas d'erreur.

Notes

Attention

Cette fonction n'est disponible que si PHP est compilé à l'aide de la librarie libxml 20620 ou ultérieure.

Voir aussi

  • XMLReader::readString() - Lit le contenu du noeud courant sous forme de chaîne
  • XMLReader::readInnerXML() - Lit le code XML du noeud courant
  • XMLReader::expand() - Retourne une copie du noeud courant comme un noeud d'objet DOM


Lit le contenu du noeud courant sous forme de chaîne

  • « XMLReader::readOuterXML
  • XMLReader::setParserProperty »
  • PHP Manual
  • XMLReader
  • Lit le contenu du noeud courant sous forme de chaîne

XMLReader::readString

(PHP 5 >= 5.2.0, PHP 7)

XMLReader::readString — Lit le contenu du noeud courant sous forme de chaîne

Description

public string XMLReader::readString ( void )

Lit le contenu du noeud courant sous forme de chaîne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le contenu du noeud courant sous forme de chaîne ou une chaîne vide si une erreur survient.

Notes

Attention

Cette fonction n'est disponible que si PHP est compilé à l'aide de la librarie libxml 20620 ou ultérieure.

Voir aussi

  • XMLReader::readOuterXML() - Lit le code XML du noeud courant, y compris lui-même
  • XMLReader::readInnerXML() - Lit le code XML du noeud courant
  • XMLReader::expand() - Retourne une copie du noeud courant comme un noeud d'objet DOM


Fixe des options pour l'analyseur

  • « XMLReader::readString
  • XMLReader::setRelaxNGSchema »
  • PHP Manual
  • XMLReader
  • Fixe des options pour l'analyseur

XMLReader::setParserProperty

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::setParserProperty — Fixe des options pour l'analyseur

Description

public bool XMLReader::setParserProperty ( int $property , bool $value )

Fixe des options pour l'analyseur. Les options doivent être fixées après l'appel de XMLReader::open() ou XMLReader::xml() et avant le premier appel de XMLReader::read().

Liste de paramètres

property

Une des constantes d'analyseur.

value

Si fixée à TRUE, l'option sera activée sinon elle sera désactivée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG

  • « XMLReader::setParserProperty
  • XMLReader::setRelaxNGSchemaSource »
  • PHP Manual
  • XMLReader
  • Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG

XMLReader::setRelaxNGSchema

(PHP 5 >= 5.2.0, PHP 7)

XMLReader::setRelaxNGSchema — Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG

Description

public bool XMLReader::setRelaxNGSchema ( string $filename )

Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG à utiliser pour validation.

Liste de paramètres

filename

Nom du fichier ou URI pointant vers le Schéma RelaxNG.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLReader::setRelaxNGSchemaSource() - Spécifie le schéma RelaxNG
  • XMLReader::setSchema() - Valide le document avec XSD
  • XMLReader::isValid() - Indique si le document analysé est valide


Spécifie le schéma RelaxNG

  • « XMLReader::setRelaxNGSchema
  • XMLReader::setSchema »
  • PHP Manual
  • XMLReader
  • Spécifie le schéma RelaxNG

XMLReader::setRelaxNGSchemaSource

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::setRelaxNGSchemaSource — Spécifie le schéma RelaxNG

Description

public bool XMLReader::setRelaxNGSchemaSource ( string $source )

Spécifie le schéma RelaxNG à utiliser pour validation.

Liste de paramètres

source

Chaîne de caractères contenant le schéma RelaxNG.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLReader::setRelaxNGSchema() - Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG
  • XMLReader::setSchema() - Valide le document avec XSD
  • XMLReader::isValid() - Indique si le document analysé est valide


Valide le document avec XSD

  • « XMLReader::setRelaxNGSchemaSource
  • XMLReader::XML »
  • PHP Manual
  • XMLReader
  • Valide le document avec XSD

XMLReader::setSchema

(PHP 5 >= 5.2.0, PHP 7)

XMLReader::setSchema — Valide le document avec XSD

Description

public bool XMLReader::setSchema ( string $filename )

Utilise le schéma XSD W3C pour valider le contenu, tel qu'il est traité. L'activation n'est possible qu'avant le premier Read().

Liste de paramètres

filename

Le nom du fichier de schéma XSD.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émet une alerte E_WARNING si libxml a été compilé sans le support des schémas, si le schéma contient des erreurs, ou si XMLReader::read() a déjà été appelé.

Notes

Attention

Cette fonction n'est disponible que si PHP est compilé à l'aide de la librarie libxml 20620 ou ultérieure.

Voir aussi

  • XMLReader::setRelaxNGSchema() - Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG
  • XMLReader::setRelaxNGSchemaSource() - Spécifie le schéma RelaxNG
  • XMLReader::isValid() - Indique si le document analysé est valide


Fixe les données contenant le XML à analyser

  • « XMLReader::setSchema
  • XMLWriter »
  • PHP Manual
  • XMLReader
  • Fixe les données contenant le XML à analyser

XMLReader::XML

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::XML — Fixe les données contenant le XML à analyser

Description

public bool XMLReader::xml ( string $source [, string $encoding [, int $options = 0 ]] )

Fixe les données contenant le XML à analyser.

Liste de paramètres

source

Chaîne de caractères contenant le XML à analyser.

encoding

L'encodage du document, ou NULL.

options

Un masque de constantes LIBXML_*.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si appelée statiquement, retourne un objet XMLReader ou FALSE si une erreur survient.

Erreurs / Exceptions

Cette méthode peut être appelée statiquement, mais enverra une erreur E_STRICT.

Historique

Version | Description
5.2.0 | Les paramètres encoding et options ont été ajoutés.

Voir aussi

  • XMLReader::open() - Fixe le URI contenant le XML à analyser
  • XMLReader::close() - Ferme l'entrée XMLReader


XMLWriter

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions XMLWriter
    • XMLWriter::endAttribute — Termine un attribut
    • XMLWriter::endCData — Termine un bloc CDATA
    • XMLWriter::endComment — Termine un commentaire
    • XMLWriter::endDocument — Termine le document courant
    • XMLWriter::endDTDAttlist — Termine la liste des attributs de la DTD courante
    • XMLWriter::endDTDElement — Termine l'élément de la DTD courante
    • XMLWriter::endDTDEntity — Termine l'entité de la DTD courante
    • XMLWriter::endDTD — Termine la DTD courante
    • XMLWriter::endElement — Termine l'élément courant
    • XMLWriter::endPI — Termine le PI courant
    • XMLWriter::flush — Affiche le buffer courant
    • XMLWriter::fullEndElement — Termine l'élément courant
    • XMLWriter::openMemory — Crée un nouveau xmlwriter en utilisant la mémoire pour l'affichage des chaînes
    • XMLWriter::openURI — Crée un nouveau xmlwriter, en utilisant l'URI source pour l'affichage
    • XMLWriter::outputMemory — Retourne le buffer courant
    • XMLWriter::setIndentString — Définit la chaîne à utiliser pour l'indentation
    • XMLWriter::setIndent — Active ou non l'indentation
    • XMLWriter::startAttributeNs — Crée un attribut pour l'espace de noms
    • XMLWriter::startAttribute — Crée un attribut
    • XMLWriter::startCData — Crée une balise CDATA
    • XMLWriter::startComment — Crée un commentaire
    • XMLWriter::startDocument — Crée un document
    • XMLWriter::startDTDAttlist — Crée une liste d'attributs pour la DTD
    • XMLWriter::startDTDElement — Crée un élément DTD
    • XMLWriter::startDTDEntity — Crée une entité DTD
    • XMLWriter::startDTD — Crée une DTD
    • XMLWriter::startElementNs — Crée un élément d'un espace de noms
    • XMLWriter::startElement — Crée un élément
    • XMLWriter::startPI — Crée une balise PI
    • XMLWriter::text — Écrit du texte
    • XMLWriter::writeAttributeNs — Écrit un attribut d'un espace de noms
    • XMLWriter::writeAttribute — Écrit un attribut
    • XMLWriter::writeCData — Écrit un bloc CDATA
    • XMLWriter::writeComment — Écrit un commentaire
    • XMLWriter::writeDTDAttlist — Écrit une liste d'attributs DTD
    • XMLWriter::writeDTDElement — Écrit un élément DTD
    • XMLWriter::writeDTDEntity — Écrit une entité DTD
    • XMLWriter::writeDTD — Écrit une DTD
    • XMLWriter::writeElementNS — Écrit un élément d'un espace de noms
    • XMLWriter::writeElement — Écrit un élément
    • XMLWriter::writePI — Écrit la balise PI
    • XMLWriter::writeRaw — Écrit un texte XML brut


Introduction

Voici l'extension XMLWriter. Elle utilise l'API libxml xmlWriter.

Cette extension permet la génération de flux et de fichiers au format XML.

Cette extension peut être utilisée dans un style orienté objet ou un style procédural. Chaque méthode documentée décrit l'appel procédural équivalent.


Installation

L'extension XMLWriter était au départ une extension PECL pour PHP 5. Elle a été par la suite intégrée au source de PHP, et ce, depuis la version 5.1.2. Cette extension est activée par défaut.

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-xmlwriter


Types de ressources

Une ressource, utilisée par la version procédurale de l'extension XMLWriter : celle retournée par la fonction xmlwriter_open_memory() ou la fonction xmlwriter_open_uri().


  • « Types de ressources
  • Fonctions XMLWriter »
  • PHP Manual
  • XMLWriter
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Fonctions XMLWriter

Sommaire

  • XMLWriter::endAttribute — Termine un attribut
  • XMLWriter::endCData — Termine un bloc CDATA
  • XMLWriter::endComment — Termine un commentaire
  • XMLWriter::endDocument — Termine le document courant
  • XMLWriter::endDTDAttlist — Termine la liste des attributs de la DTD courante
  • XMLWriter::endDTDElement — Termine l'élément de la DTD courante
  • XMLWriter::endDTDEntity — Termine l'entité de la DTD courante
  • XMLWriter::endDTD — Termine la DTD courante
  • XMLWriter::endElement — Termine l'élément courant
  • XMLWriter::endPI — Termine le PI courant
  • XMLWriter::flush — Affiche le buffer courant
  • XMLWriter::fullEndElement — Termine l'élément courant
  • XMLWriter::openMemory — Crée un nouveau xmlwriter en utilisant la mémoire pour l'affichage des chaînes
  • XMLWriter::openURI — Crée un nouveau xmlwriter, en utilisant l'URI source pour l'affichage
  • XMLWriter::outputMemory — Retourne le buffer courant
  • XMLWriter::setIndentString — Définit la chaîne à utiliser pour l'indentation
  • XMLWriter::setIndent — Active ou non l'indentation
  • XMLWriter::startAttributeNs — Crée un attribut pour l'espace de noms
  • XMLWriter::startAttribute — Crée un attribut
  • XMLWriter::startCData — Crée une balise CDATA
  • XMLWriter::startComment — Crée un commentaire
  • XMLWriter::startDocument — Crée un document
  • XMLWriter::startDTDAttlist — Crée une liste d'attributs pour la DTD
  • XMLWriter::startDTDElement — Crée un élément DTD
  • XMLWriter::startDTDEntity — Crée une entité DTD
  • XMLWriter::startDTD — Crée une DTD
  • XMLWriter::startElementNs — Crée un élément d'un espace de noms
  • XMLWriter::startElement — Crée un élément
  • XMLWriter::startPI — Crée une balise PI
  • XMLWriter::text — Écrit du texte
  • XMLWriter::writeAttributeNs — Écrit un attribut d'un espace de noms
  • XMLWriter::writeAttribute — Écrit un attribut
  • XMLWriter::writeCData — Écrit un bloc CDATA
  • XMLWriter::writeComment — Écrit un commentaire
  • XMLWriter::writeDTDAttlist — Écrit une liste d'attributs DTD
  • XMLWriter::writeDTDElement — Écrit un élément DTD
  • XMLWriter::writeDTDEntity — Écrit une entité DTD
  • XMLWriter::writeDTD — Écrit une DTD
  • XMLWriter::writeElementNS — Écrit un élément d'un espace de noms
  • XMLWriter::writeElement — Écrit un élément
  • XMLWriter::writePI — Écrit la balise PI
  • XMLWriter::writeRaw — Écrit un texte XML brut


Termine un attribut

  • « Fonctions XMLWriter
  • XMLWriter::endCData »
  • PHP Manual
  • Fonctions XMLWriter
  • Termine un attribut

XMLWriter::endAttribute

xmlwriter_end_attribute

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endAttribute -- xmlwriter_end_attribute — Termine un attribut

Description

Style orienté objet

bool XMLWriter::endAttribute ( void )

Style procédural

bool xmlwriter_end_attribute ( resource $xmlwriter )

Termine l'attribut courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startAttribute() - Crée un attribut
  • XMLWriter::startAttributeNS() - Crée un attribut pour l'espace de noms
  • XMLWriter::writeAttribute() - Écrit un attribut
  • XMLWriter::writeAttributeNS() - Écrit un attribut d'un espace de noms


Termine un bloc CDATA

  • « XMLWriter::endAttribute
  • XMLWriter::endComment »
  • PHP Manual
  • Fonctions XMLWriter
  • Termine un bloc CDATA

XMLWriter::endCData

xmlwriter_end_cdata

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endCData -- xmlwriter_end_cdata — Termine un bloc CDATA

Description

Style orienté objet

bool XMLWriter::endCData ( void )

Style procédural

bool xmlwriter_end_cdata ( resource $xmlwriter )

Termine la section CDATA courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startCData() - Crée une balise CDATA
  • XMLWriter::writeCData() - Écrit un bloc CDATA


Termine un commentaire

  • « XMLWriter::endCData
  • XMLWriter::endDocument »
  • PHP Manual
  • Fonctions XMLWriter
  • Termine un commentaire

XMLWriter::endComment

xmlwriter_end_comment

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 1.0.0)

XMLWriter::endComment -- xmlwriter_end_comment — Termine un commentaire

Description

Style orienté objet

bool XMLWriter::endComment ( void )

Style procédural

bool xmlwriter_end_comment ( resource $xmlwriter )

Termine le commentaire courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startComment() - Crée un commentaire
  • XMLWriter::writeComment() - Écrit un commentaire


Termine le document courant

  • « XMLWriter::endComment
  • XMLWriter::endDTDAttlist »
  • PHP Manual
  • Fonctions XMLWriter
  • Termine le document courant

XMLWriter::endDocument

xmlwriter_end_document

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDocument -- xmlwriter_end_document — Termine le document courant

Description

Style orienté objet

bool XMLWriter::endDocument ( void )

Style procédural

bool xmlwriter_end_document ( resource $xmlwriter )

Termine le document courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startDocument() - Crée un document


Termine la liste des attributs de la DTD courante

  • « XMLWriter::endDocument
  • XMLWriter::endDTDElement »
  • PHP Manual
  • Fonctions XMLWriter
  • Termine la liste des attributs de la DTD courante

XMLWriter::endDTDAttlist

xmlwriter_end_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTDAttlist -- xmlwriter_end_dtd_attlist — Termine la liste des attributs de la DTD courante

Description

Style orienté objet

bool XMLWriter::endDTDAttlist ( void )

Style procédural

bool xmlwriter_end_dtd_attlist ( resource $xmlwriter )

Termine la liste des attributs de la DTD courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startDTDAttlist() - Crée une liste d'attributs pour la DTD
  • XMLWriter::writeDTDAttlist() - Écrit une liste d'attributs DTD


Termine l'élément de la DTD courante

  • « XMLWriter::endDTDAttlist
  • XMLWriter::endDTDEntity »
  • PHP Manual
  • Fonctions XMLWriter
  • Termine l'élément de la DTD courante

XMLWriter::endDTDElement

xmlwriter_end_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTDElement -- xmlwriter_end_dtd_element — Termine l'élément de la DTD courante

Description

Style orienté objet

bool XMLWriter::endDTDElement ( void )

Style procédural

bool xmlwriter_end_dtd_element ( resource $xmlwriter )

Termine l'élément de la DTD courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startDTDElement() - Crée un élément DTD
  • XMLWriter::writeDTDElement() - Écrit un élément DTD


Termine l'entité de la DTD courante

  • « XMLWriter::endDTDElement
  • XMLWriter::endDTD »
  • PHP Manual
  • Fonctions XMLWriter
  • Termine l'entité de la DTD courante

XMLWriter::endDTDEntity

xmlwriter_end_dtd_entity

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTDEntity -- xmlwriter_end_dtd_entity — Termine l'entité de la DTD courante

Description

Style orienté objet

bool XMLWriter::endDTDEntity ( void )

Style procédural

bool xmlwriter_end_dtd_entity ( resource $xmlwriter )

Termine l'entité de la DTD courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startDTDEntity() - Crée une entité DTD
  • XMLWriter::writeDTDEntity() - Écrit une entité DTD


Termine la DTD courante

  • « XMLWriter::endDTDEntity
  • XMLWriter::endElement »
  • PHP Manual
  • Fonctions XMLWriter
  • Termine la DTD courante

XMLWriter::endDTD

xmlwriter_end_dtd

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTD -- xmlwriter_end_dtd — Termine la DTD courante

Description

Style orienté objet

bool XMLWriter::endDTD ( void )

Style procédural

bool xmlwriter_end_dtd ( resource $xmlwriter )

Termine la DTD courante du document.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startDTD() - Crée une DTD
  • XMLWriter::writeDTD() - Écrit une DTD


Termine l'élément courant

  • « XMLWriter::endDTD
  • XMLWriter::endPI »
  • PHP Manual
  • Fonctions XMLWriter
  • Termine l'élément courant

XMLWriter::endElement

xmlwriter_end_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endElement -- xmlwriter_end_element — Termine l'élément courant

Description

Style orienté objet

bool XMLWriter::endElement ( void )

Style procédural

bool xmlwriter_end_element ( resource $xmlwriter )

Termine l'élément courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startElement() - Crée un élément
  • XMLWriter::writeElement() - Écrit un élément


Termine le PI courant

  • « XMLWriter::endElement
  • XMLWriter::flush »
  • PHP Manual
  • Fonctions XMLWriter
  • Termine le PI courant

XMLWriter::endPI

xmlwriter_end_pi

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endPI -- xmlwriter_end_pi — Termine le PI courant

Description

Style orienté objet

bool XMLWriter::endPI ( void )

Style procédural

bool xmlwriter_end_pi ( resource $xmlwriter )

Termine l'instruction courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startPI() - Crée une balise PI
  • XMLWriter::writePI() - Écrit la balise PI


Affiche le buffer courant

  • « XMLWriter::endPI
  • XMLWriter::fullEndElement »
  • PHP Manual
  • Fonctions XMLWriter
  • Affiche le buffer courant

XMLWriter::flush

xmlwriter_flush

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 1.0.0)

XMLWriter::flush -- xmlwriter_flush — Affiche le buffer courant

Description

Style orienté objet

mixed XMLWriter::flush ([ bool $empty = true ] )

Style procédural

mixed xmlwriter_flush ( resource $xmlwriter [, bool $empty = true ] )

Affiche le buffer courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

empty

Si l'on doit vider le buffer ou non. Par défaut, ce paramètre vaut TRUE.

Valeurs de retour

Si vous aviez ouvert le gestionnaire d'écriture en mémoire, cette fonction retourne le buffer XML généré. Si vous utilisez une URI, cette fonction écrira le buffer et retournera le nombre d'octets écrits.


Termine l'élément courant

  • « XMLWriter::flush
  • XMLWriter::openMemory »
  • PHP Manual
  • Fonctions XMLWriter
  • Termine l'élément courant

XMLWriter::fullEndElement

xmlwriter_full_end_element

(PHP 5 >= 5.2.0, PHP 7, PECL xmlwriter >= 2.0.4)

XMLWriter::fullEndElement -- xmlwriter_full_end_element — Termine l'élément courant

Description

Style orienté objet

bool XMLWriter::fullEndElement ( void )

Style procédural

bool xmlwriter_full_end_element ( resource $xmlwriter )

Termine l'élément XML courant. Écrit une balise de fin même si l'élément est vide.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::endElement() - Termine l'élément courant


Crée un nouveau xmlwriter en utilisant la mémoire pour l'affichage des chaînes

  • « XMLWriter::fullEndElement
  • XMLWriter::openURI »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée un nouveau xmlwriter en utilisant la mémoire pour l'affichage des chaînes

XMLWriter::openMemory

xmlwriter_open_memory

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::openMemory -- xmlwriter_open_memory — Crée un nouveau xmlwriter en utilisant la mémoire pour l'affichage des chaînes

Description

Style orienté objet

bool XMLWriter::openMemory ( void )

Style procédural

resource xmlwriter_open_memory ( void )

Crée un nouvel objet XMLWriter, en utilisant la mémoire pour l'affichage des chaînes.

Liste de paramètres

Valeurs de retour

Style orienté objet : Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Style procédural : retourne une ressource xmlwriter en cas de succès, FALSE si une erreur survient.

Voir aussi

  • XMLWriter::openURI() - Crée un nouveau xmlwriter, en utilisant l'URI source pour l'affichage


Crée un nouveau xmlwriter, en utilisant l'URI source pour l'affichage

  • « XMLWriter::openMemory
  • XMLWriter::outputMemory »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée un nouveau xmlwriter, en utilisant l'URI source pour l'affichage

XMLWriter::openURI

xmlwriter_open_uri

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::openURI -- xmlwriter_open_uri — Crée un nouveau xmlwriter, en utilisant l'URI source pour l'affichage

Description

Style orienté objet

bool XMLWriter::openURI ( string $uri )

Style procédural

resource xmlwriter_open_uri ( string $uri )

Crée un nouveau XMLWriter, en utilisant l'uri pour l'affichage.

Liste de paramètres

uri

L'URI de la ressource pour l'affichage.

Valeurs de retour

Style orienté objet : Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Style procédural : Retourne une ressource xmlwriter pour une utilisation future avec les fonctions xmlwriter en cas de succès, FALSE si une erreur survient.

Voir aussi

  • XMLWriter::openMemory() - Crée un nouveau xmlwriter en utilisant la mémoire pour l'affichage des chaînes


Retourne le buffer courant

  • « XMLWriter::openURI
  • XMLWriter::setIndentString »
  • PHP Manual
  • Fonctions XMLWriter
  • Retourne le buffer courant

XMLWriter::outputMemory

xmlwriter_output_memory

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::outputMemory -- xmlwriter_output_memory — Retourne le buffer courant

Description

Style orienté objet

string XMLWriter::outputMemory ([ bool $flush = true ] )

Style procédural

string xmlwriter_output_memory ( resource $xmlwriter [, bool $flush = true ] )

Retourne le buffer courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

flush

Si l'on doit afficher le buffer ou non. Par défaut, ce paramètre vaut TRUE.

Valeurs de retour

Retourne le buffer courant sous la forme d'une chaîne de caractères.

Voir aussi

  • XMLWriter::flush() - Affiche le buffer courant


Définit la chaîne à utiliser pour l'indentation

  • « XMLWriter::outputMemory
  • XMLWriter::setIndent »
  • PHP Manual
  • Fonctions XMLWriter
  • Définit la chaîne à utiliser pour l'indentation

XMLWriter::setIndentString

xmlwriter_set_indent_string

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndentString -- xmlwriter_set_indent_string — Définit la chaîne à utiliser pour l'indentation

Description

Style orienté objet

bool XMLWriter::setIndentString ( string $indentString )

Style procédural

bool xmlwriter_set_indent_string ( resource $xmlwriter , string $indentString )

Définit la chaîne qui sera utilisée pour indenter chaque élément/attribut d'un document XML.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

indentString

La chaîne pour l'indentation.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::setIndent() - Active ou non l'indentation


Active ou non l'indentation

  • « XMLWriter::setIndentString
  • XMLWriter::startAttributeNs »
  • PHP Manual
  • Fonctions XMLWriter
  • Active ou non l'indentation

XMLWriter::setIndent

xmlwriter_set_indent

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndent -- xmlwriter_set_indent — Active ou non l'indentation

Description

Style orienté objet

bool XMLWriter::setIndent ( bool $indent )

Style procédural

bool xmlwriter_set_indent ( resource $xmlwriter , bool $indent )

Active ou non l'indentation.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

indent

Si l'on doit activer l'indentation ou non.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::setIndentString() - Définit la chaîne à utiliser pour l'indentation


Crée un attribut pour l'espace de noms

  • « XMLWriter::setIndent
  • XMLWriter::startAttribute »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée un attribut pour l'espace de noms

XMLWriter::startAttributeNs

xmlwriter_start_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttributeNs -- xmlwriter_start_attribute_ns — Crée un attribut pour l'espace de noms

Description

Style orienté objet

bool XMLWriter::startAttributeNS ( string $prefix , string $name , string $uri )

Style procédural

bool xmlwriter_start_attribute_ns ( resource $xmlwriter , string $prefix , string $name , string $uri )

Crée un attribut pour l'espace de noms.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe pour l'espace de noms.

name

Le nom de l'attribut.

uri

L'URI de l'espace de noms.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startAttribute() - Crée un attribut
  • XMLWriter::endAttribute() - Termine un attribut
  • XMLWriter::writeAttribute() - Écrit un attribut
  • XMLWriter::writeAttributeNS() - Écrit un attribut d'un espace de noms


Crée un attribut

  • « XMLWriter::startAttributeNs
  • XMLWriter::startCData »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée un attribut

XMLWriter::startAttribute

xmlwriter_start_attribute

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttribute -- xmlwriter_start_attribute — Crée un attribut

Description

Style orienté objet

bool XMLWriter::startAttribute ( string $name )

Style procédural

bool xmlwriter_start_attribute ( resource $xmlwriter , string $name )

Commence un attribut.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startAttributeNS() - Crée un attribut pour l'espace de noms
  • XMLWriter::endAttribute() - Termine un attribut
  • XMLWriter::writeAttribute() - Écrit un attribut
  • XMLWriter::writeAttributeNS() - Écrit un attribut d'un espace de noms


Crée une balise CDATA

  • « XMLWriter::startAttribute
  • XMLWriter::startComment »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée une balise CDATA

XMLWriter::startCData

xmlwriter_start_cdata

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startCData -- xmlwriter_start_cdata — Crée une balise CDATA

Description

Style orienté objet

bool XMLWriter::startCData ( void )

Style procédural

bool xmlwriter_start_cdata ( resource $xmlwriter )

Commence un bloc CDATA.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::endCData() - Termine un bloc CDATA
  • XMLWriter::writeCData() - Écrit un bloc CDATA


Crée un commentaire

  • « XMLWriter::startCData
  • XMLWriter::startDocument »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée un commentaire

XMLWriter::startComment

xmlwriter_start_comment

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 1.0.0)

XMLWriter::startComment -- xmlwriter_start_comment — Crée un commentaire

Description

Style orienté objet

bool XMLWriter::startComment ( void )

Style procédural

bool xmlwriter_start_comment ( resource $xmlwriter )

Commence un commentaire.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::endComment() - Termine un commentaire
  • XMLWriter::writeComment() - Écrit un commentaire


Crée un document

  • « XMLWriter::startComment
  • XMLWriter::startDTDAttlist »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée un document

XMLWriter::startDocument

xmlwriter_start_document

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDocument -- xmlwriter_start_document — Crée un document

Description

Style orienté objet

bool XMLWriter::startDocument ([ string $version = 1.0 [, string $encoding = NULL [, string $standalone ]]] )

Style procédural

bool xmlwriter_start_document ( resource $xmlwriter [, string $version = 1.0 [, string $encoding = NULL [, string $standalone ]]] )

Commence un document.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

version

Le numéro de version du document dans la déclaration XML.

encoding

L'encodage du document dans la déclaration XML.

standalone

yes ou no.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::endDocument() - Termine le document courant


Crée une liste d'attributs pour la DTD

  • « XMLWriter::startDocument
  • XMLWriter::startDTDElement »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée une liste d'attributs pour la DTD

XMLWriter::startDTDAttlist

xmlwriter_start_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTDAttlist -- xmlwriter_start_dtd_attlist — Crée une liste d'attributs pour la DTD

Description

Style orienté objet

bool XMLWriter::startDTDAttlist ( string $name )

Style procédural

bool xmlwriter_start_dtd_attlist ( resource $xmlwriter , string $name )

Crée une liste d'attributs pour la DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de la liste d'attributs.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::endDTDAttlist() - Termine la liste des attributs de la DTD courante
  • XMLWriter::writeDTDAttlist() - Écrit une liste d'attributs DTD


Crée un élément DTD

  • « XMLWriter::startDTDAttlist
  • XMLWriter::startDTDEntity »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée un élément DTD

XMLWriter::startDTDElement

xmlwriter_start_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTDElement -- xmlwriter_start_dtd_element — Crée un élément DTD

Description

Style orienté objet

bool XMLWriter::startDTDElement ( string $qualifiedName )

Style procédural

bool xmlwriter_start_dtd_element ( resource $xmlwriter , string $qualifiedName )

Commence un élément DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

qualifiedName

Le nom qualifié du type de document à créer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::endDTDElement() - Termine l'élément de la DTD courante
  • XMLWriter::writeDTDElement() - Écrit un élément DTD


Crée une entité DTD

  • « XMLWriter::startDTDElement
  • XMLWriter::startDTD »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée une entité DTD

XMLWriter::startDTDEntity

xmlwriter_start_dtd_entity

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTDEntity -- xmlwriter_start_dtd_entity — Crée une entité DTD

Description

Style orienté objet

bool XMLWriter::startDTDEntity ( string $name , bool $isparam )

Style procédural

bool xmlwriter_start_dtd_entity ( resource $xmlwriter , string $name , bool $isparam )

Commence une entité DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'entité.

isparam

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::endDTDEntity() - Termine l'entité de la DTD courante
  • XMLWriter::writeDTDEntity() - Écrit une entité DTD


Crée une DTD

  • « XMLWriter::startDTDEntity
  • XMLWriter::startElementNs »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée une DTD

XMLWriter::startDTD

xmlwriter_start_dtd

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTD -- xmlwriter_start_dtd — Crée une DTD

Description

Style orienté objet

bool XMLWriter::startDTD ( string $qualifiedName [, string $publicId [, string $systemId ]] )

Style procédural

bool xmlwriter_start_dtd ( resource $xmlwriter , string $qualifiedName [, string $publicId [, string $systemId ]] )

Commence une DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

qualifiedName

Le nom qualifié du type de document à créer.

publicId

L'identifiant publique externe.

systemId

L'identifiant système externe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::endDTD() - Termine la DTD courante
  • XMLWriter::writeDTD() - Écrit une DTD


Crée un élément d'un espace de noms

  • « XMLWriter::startDTD
  • XMLWriter::startElement »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée un élément d'un espace de noms

XMLWriter::startElementNs

xmlwriter_start_element_ns

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startElementNs -- xmlwriter_start_element_ns — Crée un élément d'un espace de noms

Description

Style orienté objet

bool XMLWriter::startElementNS ( string $prefix , string $name , string $uri )

Style procédural

bool xmlwriter_start_element_ns ( resource $xmlwriter , string $prefix , string $name , string $uri )

Crée un élément d'un espace de noms.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe de l'espace de noms.

name

Le nom de l'élément.

uri

L'URI de l'espace de noms.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::endElement() - Termine l'élément courant
  • XMLWriter::writeElementNS() - Écrit un élément d'un espace de noms


Crée un élément

  • « XMLWriter::startElementNs
  • XMLWriter::startPI »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée un élément

XMLWriter::startElement

xmlwriter_start_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startElement -- xmlwriter_start_element — Crée un élément

Description

Style orienté objet

bool XMLWriter::startElement ( string $name )

Style procédural

bool xmlwriter_start_element ( resource $xmlwriter , string $name )

Commence un élément.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::endElement() - Termine l'élément courant
  • XMLWriter::writeElement() - Écrit un élément


Crée une balise PI

  • « XMLWriter::startElement
  • XMLWriter::text »
  • PHP Manual
  • Fonctions XMLWriter
  • Crée une balise PI

XMLWriter::startPI

xmlwriter_start_pi

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startPI -- xmlwriter_start_pi — Crée une balise PI

Description

Style orienté objet

bool XMLWriter::startPI ( string $target )

Style procédural

bool xmlwriter_start_pi ( resource $xmlwriter , string $target )

Commence une balise d'instruction.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

target

La cible de l'instruction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::endPI() - Termine le PI courant
  • XMLWriter::writePI() - Écrit la balise PI


Écrit du texte

  • « XMLWriter::startPI
  • XMLWriter::writeAttributeNs »
  • PHP Manual
  • Fonctions XMLWriter
  • Écrit du texte

XMLWriter::text

xmlwriter_text

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::text -- xmlwriter_text — Écrit du texte

Description

Style orienté objet

bool XMLWriter::text ( string $content )

Style procédural

bool xmlwriter_text ( resource $xmlwriter , string $content )

Écrit du texte.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

content

Le contenu du texte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.


Écrit un attribut d'un espace de noms

  • « XMLWriter::text
  • XMLWriter::writeAttribute »
  • PHP Manual
  • Fonctions XMLWriter
  • Écrit un attribut d'un espace de noms

XMLWriter::writeAttributeNs

xmlwriter_write_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttributeNs -- xmlwriter_write_attribute_ns — Écrit un attribut d'un espace de noms

Description

Style orienté objet

bool XMLWriter::writeAttributeNS ( string $prefix , string $name , string $uri , string $content )

Style procédural

bool xmlwriter_write_attribute_ns ( resource $xmlwriter , string $prefix , string $name , string $uri , string $content )

Écrit un attribut d'un espace de noms.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe de l'espace de noms.

name

Le nom de l'attribut.

uri

L'URI de l'espace de noms.

content

La valeur de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::writeAttribute() - Écrit un attribut
  • XMLWriter::startAttribute() - Crée un attribut
  • XMLWriter::startAttributeNS() - Crée un attribut pour l'espace de noms
  • XMLWriter::endAttribute() - Termine un attribut


Écrit un attribut

  • « XMLWriter::writeAttributeNs
  • XMLWriter::writeCData »
  • PHP Manual
  • Fonctions XMLWriter
  • Écrit un attribut

XMLWriter::writeAttribute

xmlwriter_write_attribute

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttribute -- xmlwriter_write_attribute — Écrit un attribut

Description

Style orienté objet

bool XMLWriter::writeAttribute ( string $name , string $value )

Style procédural

bool xmlwriter_write_attribute ( resource $xmlwriter , string $name , string $value )

Écrit un attribut.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'attribut.

value

La valeur de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::writeAttributeNS() - Écrit un attribut d'un espace de noms
  • XMLWriter::startAttribute() - Crée un attribut
  • XMLWriter::startAttributeNS() - Crée un attribut pour l'espace de noms
  • XMLWriter::endAttribute() - Termine un attribut


Écrit un bloc CDATA

  • « XMLWriter::writeAttribute
  • XMLWriter::writeComment »
  • PHP Manual
  • Fonctions XMLWriter
  • Écrit un bloc CDATA

XMLWriter::writeCData

xmlwriter_write_cdata

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeCData -- xmlwriter_write_cdata — Écrit un bloc CDATA

Description

Style orienté objet

bool XMLWriter::writeCData ( string $content )

Style procédural

bool xmlwriter_write_cdata ( resource $xmlwriter , string $content )

Écrit un bloc CDATA.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

content

Le contenu du bloc CDATA.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startCData() - Crée une balise CDATA
  • XMLWriter::endCData() - Termine un bloc CDATA


Écrit un commentaire

  • « XMLWriter::writeCData
  • XMLWriter::writeDTDAttlist »
  • PHP Manual
  • Fonctions XMLWriter
  • Écrit un commentaire

XMLWriter::writeComment

xmlwriter_write_comment

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeComment -- xmlwriter_write_comment — Écrit un commentaire

Description

Style orienté objet

bool XMLWriter::writeComment ( string $content )

Style procédural

bool xmlwriter_write_comment ( resource $xmlwriter , string $content )

Écrit un commentaire.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

content

Le contenu du commentaire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startComment() - Crée un commentaire
  • XMLWriter::endComment() - Termine un commentaire


Écrit une liste d'attributs DTD

  • « XMLWriter::writeComment
  • XMLWriter::writeDTDElement »
  • PHP Manual
  • Fonctions XMLWriter
  • Écrit une liste d'attributs DTD

XMLWriter::writeDTDAttlist

xmlwriter_write_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTDAttlist -- xmlwriter_write_dtd_attlist — Écrit une liste d'attributs DTD

Description

Style orienté objet

bool XMLWriter::writeDTDAttlist ( string $name , string $content )

Style procédural

bool xmlwriter_write_dtd_attlist ( resource $xmlwriter , string $name , string $content )

Écrit une liste d'attribut DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de la liste d'attributs DTD.

content

Le contenu de la liste d'attributs DTD.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startDTDAttlist() - Crée une liste d'attributs pour la DTD
  • XMLWriter::endDTDAttlist() - Termine la liste des attributs de la DTD courante


Écrit un élément DTD

  • « XMLWriter::writeDTDAttlist
  • XMLWriter::writeDTDEntity »
  • PHP Manual
  • Fonctions XMLWriter
  • Écrit un élément DTD

XMLWriter::writeDTDElement

xmlwriter_write_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTDElement -- xmlwriter_write_dtd_element — Écrit un élément DTD

Description

Style orienté objet

bool XMLWriter::writeDTDElement ( string $name , string $content )

Style procédural

bool xmlwriter_write_dtd_element ( resource $xmlwriter , string $name , string $content )

Écrit un élément DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'élément DTD.

content

Le contenu de l'élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startDTDElement() - Crée un élément DTD
  • XMLWriter::endDTDElement() - Termine l'élément de la DTD courante


Écrit une entité DTD

  • « XMLWriter::writeDTDElement
  • XMLWriter::writeDTD »
  • PHP Manual
  • Fonctions XMLWriter
  • Écrit une entité DTD

XMLWriter::writeDTDEntity

xmlwriter_write_dtd_entity

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTDEntity -- xmlwriter_write_dtd_entity — Écrit une entité DTD

Description

Style orienté objet

bool XMLWriter::writeDTDEntity ( string $name , string $content , bool $pe , string $pubid , string $sysid , string $ndataid )

Style procédural

bool xmlwriter_write_dtd_entity ( resource $xmlwriter , string $name , string $content , bool $pe , string $pubid , string $sysid , string $ndataid )

Écrit une entité DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'entité.

content

Le contenu de l'entité.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startDTDEntity() - Crée une entité DTD
  • XMLWriter::endDTDEntity() - Termine l'entité de la DTD courante


Écrit une DTD

  • « XMLWriter::writeDTDEntity
  • XMLWriter::writeElementNS »
  • PHP Manual
  • Fonctions XMLWriter
  • Écrit une DTD

XMLWriter::writeDTD

xmlwriter_write_dtd

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTD -- xmlwriter_write_dtd — Écrit une DTD

Description

Style orienté objet

bool XMLWriter::writeDTD ( string $name [, string $publicId [, string $systemId [, string $subset ]]] )

Style procédural

bool xmlwriter_write_dtd ( resource $xmlwriter , string $name [, string $publicId [, string $systemId [, string $subset ]]] )

Écrit une DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de la DTD.

publicId

L'identifiant publique externe.

systemId

L'identifiant système externe.

subset

Le contenu de la DTD.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startDTD() - Crée une DTD
  • XMLWriter::endDTD() - Termine la DTD courante


Écrit un élément d'un espace de noms

  • « XMLWriter::writeDTD
  • XMLWriter::writeElement »
  • PHP Manual
  • Fonctions XMLWriter
  • Écrit un élément d'un espace de noms

XMLWriter::writeElementNS

xmlwriter_write_element_ns

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElementNS -- xmlwriter_write_element_ns — Écrit un élément d'un espace de noms

Description

Style orienté objet

bool XMLWriter::writeElementNS ( string $prefix , string $name , string $uri [, string $content ] )

Style procédural

bool xmlwriter_write_element_ns ( resource $xmlwriter , string $prefix , string $name , string $uri [, string $content ] )

Écrit un élément d'un espace de noms.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe de l'espace de noms.

name

Le nom de l'élément.

uri

L'URI de l'espace de noms.

content

Le contenu de l'élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.2.3 | Le paramètre content est devenu optionnel.

Voir aussi

  • XMLWriter::startElementNS() - Crée un élément d'un espace de noms
  • XMLWriter::endElement() - Termine l'élément courant
  • XMLWriter::writeElement() - Écrit un élément


Écrit un élément

  • « XMLWriter::writeElementNS
  • XMLWriter::writePI »
  • PHP Manual
  • Fonctions XMLWriter
  • Écrit un élément

XMLWriter::writeElement

xmlwriter_write_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElement -- xmlwriter_write_element — Écrit un élément

Description

Style orienté objet

bool XMLWriter::writeElement ( string $name [, string $content ] )

Style procédural

bool xmlwriter_write_element ( resource $xmlwriter , string $name [, string $content ] )

Écrit un élément.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'élément.

content

Le contenu de l'élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.2.3 | Le paramètre content est devenu optionnel.

Voir aussi

  • XMLWriter::startElement() - Crée un élément
  • XMLWriter::endElement() - Termine l'élément courant
  • XMLWriter::writeElementNS() - Écrit un élément d'un espace de noms


Écrit la balise PI

  • « XMLWriter::writeElement
  • XMLWriter::writeRaw »
  • PHP Manual
  • Fonctions XMLWriter
  • Écrit la balise PI

XMLWriter::writePI

xmlwriter_write_pi

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writePI -- xmlwriter_write_pi — Écrit la balise PI

Description

Style orienté objet

bool XMLWriter::writePI ( string $target , string $content )

Style procédural

bool xmlwriter_write_pi ( resource $xmlwriter , string $target , string $content )

Écrit la balise PI.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

target

La cible de l'instruction.

content

Le contenu de l'instruction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::startPI() - Crée une balise PI
  • XMLWriter::endPI() - Termine le PI courant


Écrit un texte XML brut

  • « XMLWriter::writePI
  • XSL »
  • PHP Manual
  • Fonctions XMLWriter
  • Écrit un texte XML brut

XMLWriter::writeRaw

xmlwriter_write_raw

(PHP 5 >= 5.2.0, PHP 7, PECL xmlwriter >= 2.0.4)

XMLWriter::writeRaw -- xmlwriter_write_raw — Écrit un texte XML brut

Description

Style orienté objet

bool XMLWriter::writeRaw ( string $content )

Style procédural

bool xmlwriter_write_raw ( resource $xmlwriter , string $content )

Écrit un texte XML brut.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

content

Le texte à écrire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XMLWriter::text() - Écrit du texte


XSL

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Exemple de fichiers collection.xml et collection.xsl
    • Gestion des erreurs avec les fonctions de gestion d'erreur libxml
  • XSLTProcessor — La classe XSLTProcessor
    • XSLTProcessor::__construct — Crée un nouvel objet XSLTProcessor
    • XSLTProcessor::getParameter — Récupère la valeur d'un paramètre
    • XsltProcessor::getSecurityPrefs — Récupère les préférences de sécurité
    • XSLTProcessor::hasExsltSupport — Indique si PHP utilise EXSLT
    • XSLTProcessor::importStylesheet — Importe une feuille de style
    • XSLTProcessor::registerPHPFunctions — Active l'utilisation de PHP dans les feuilles de styles XSLT
    • XSLTProcessor::removeParameter — Efface un paramètre
    • XSLTProcessor::setParameter — Définit la valeur d'un paramètre
    • XSLTProcessor::setProfiling — Spécifie le fichier de profilage
    • XsltProcessor::setSecurityPrefs — Définit les préférences de sécurité
    • XSLTProcessor::transformToDoc — Transforme en un document DOM
    • XSLTProcessor::transformToUri — Transforme en URI
    • XSLTProcessor::transformToXML — Transforme en XML


Introduction

L'extension XSL implémente le standard XSL, et effectue des » transformations XSLT en utilisant la » bibliothèque libxslt


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie que l'option de configuration --enable-libxml est nécessaire bien qu'elle soit implicite sachant que libxml est activée par défaut.

Cette extension utilise libxslt qui peut être trouvée sur » http://xmlsoft.org/XSLT/. libxslt en version 1.1.0 ou ultérieure est requise.


Installation

PHP 5 inclut l'extension XSL par défaut et peut être activée en ajoutant l'argument --with-xsl[=DIR] à votre ligne de configuration. DIR est le dossier d'installation de la bibliothèque libxslt.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XSL_CLONE_AUTO (entier)
XSL_CLONE_NEVER (entier)
XSL_CLONE_ALWAYS (entier)
LIBXSLT_VERSION (entier)
Version libxslt, par exemple : 10117. Disponible depuis PHP 5.1.2.
LIBXSLT_DOTTED_VERSION (chaîne de caractères)
Version libxslt, par exemple : 1.1.17. Disponible depuis PHP 5.1.2.
LIBEXSLT_VERSION (entier)
Version libexslt, par exemple : 813. Disponible depuis PHP 5.1.2.
LIBEXSLT_DOTTED_VERSION (chaîne de caractères)
Version libexslt, par exemple : 1.1.17. Disponible depuis PHP 5.1.2.
XSL_SECPREF_NONE (integer)
Désactive toutes les restrictions de sécurité.
XSL_SECPREF_READ_FILE (entier)
Interdit la lecture de fichiers.
XSL_SECPREF_WRITE_FILE (entier)
Interdit l'écriture de fichiers.
XSL_SECPREF_CREATE_DIRECTORY (entier)
Interdit la création de répertoires.
XSL_SECPREF_READ_NETWORK (entier)
Interdit la lecture de fichiers via le réseau.
XSL_SECPREF_WRITE_NETWORK (entier)
Interdit l'écriture de fichiers via le réseau.
XSL_SECPREF_DEFAULT (integer)
Interdit tous les accès en écriture, i.e. un masque XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_FILE.


Exemples

Sommaire

  • Exemple de fichiers collection.xml et collection.xsl
  • Gestion des erreurs avec les fonctions de gestion d'erreur libxml


Exemple de fichiers collection.xml et collection.xsl

De nombreux exemples de ce chapitre nécessitent à la fois un fichier XML et un fichier XSL. Nous utiliserons collection.xml et collection.xsl qui contiennent respectivement :

Exemple #1 collection.xml

<collection>
 <cd>
  <title>Fight for your mind</title>
  <artist>Ben Harper</artist>
  <year>1995</year>
 </cd>
 <cd>
  <title>Electric Ladyland</title>
  <artist>Jimi Hendrix</artist>
  <year>1997</year>
 </cd>
</collection>

Exemple #2 collection.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:param name="owner" select="'Nicolas Eliaszewicz'"/>
 <xsl:output method="html" encoding="iso-8859-1" indent="no"/>
 <xsl:template match="collection">
  Hey! Welcome to <xsl:value-of select="$owner"/>'s sweet CD collection!
  <xsl:apply-templates/>
 </xsl:template>
 <xsl:template match="cd">
  <h1><xsl:value-of select="title"/></h1>
  <h2>by <xsl:value-of select="artist"/> - <xsl:value-of select="year"/></h2>
  <hr />
 </xsl:template>
</xsl:stylesheet>


Gestion des erreurs avec les fonctions de gestion d'erreur libxml

libxml fournit des fonctions pour gérer les erreurs qui peuvent être utilisées pour capturer et gérér celles ci lors du traitement XSLT.

Exemple #1 fruits.xml

Un fichier XML valide.

<fruits>
 <fruit>Apple</fruit>
 <fruit>Banana</fruit>
 <fruit>Cherry</fruit>
</fruits>

Exemple #2 fruits.xsl

Contient une expression select invalide.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" encoding="utf-8" indent="no"/>
 <xsl:template match="fruits">
  <ul>
   <xsl:apply-templates/>
  </ul>
 </xsl:template>
 <xsl:template match="fruit">
  <li><xsl:value-of select="THIS IS A DELIBERATE ERROR!"/></li>
 </xsl:template>
</xsl:stylesheet>

Exemple #3 Collating and printing errors

L'exemple ci dessous capture et affiche les erreurs libxml levées lors de l'appel XSLTProcessor::importStyleSheet() avec une feuille de style contenant une erreur.

<?php

$xmldoc = new DOMDocument();
$xsldoc = new DOMDocument();
$xsl = new XSLTProcessor();

$xmldoc->loadXML('fruits.xml');
$xsldoc->loadXML('fruits.xsl');

libxml_use_internal_errors(true);
$result = $xsl->importStyleSheet($xsldoc);
if (!$result) {
    foreach (libxml_get_errors() as $error) {
        echo "Libxml error: {$error->message}\n";
    }
}
libxml_use_internal_errors(false);

if ($result) {
    echo $xsl->transformToXML($xmldoc);
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Libxml error: Invalid expression

Libxml error: compilation error: file fruits.xsl line 9 element value-of
Libxml error: xsl:value-of : could not compile select expression 'THIS IS A DELIBERATE ERROR!'


La classe XSLTProcessor

(PHP 5, PHP 7)

Introduction

Synopsis de la classe

XSLTProcessor {
/* Méthodes */
string getParameter ( string $namespaceURI , string $localName )
public int XsltProcessor::getSecurityPrefs ( void )
bool hasExsltSupport ( void )
public bool importStylesheet ( object $stylesheet )
void registerPHPFunctions ([ mixed $restrict ] )
bool removeParameter ( string $namespaceURI , string $localName )
bool setParameter ( string $namespace , string $name , string $value )
bool setProfiling ( string $filename )
public int XsltProcessor::setSecurityPrefs ( int $securityPrefs )
DOMDocument transformToDoc ( DOMNode $doc )
int transformToURI ( DOMDocument $doc , string $uri )
string transformToXML ( object $doc )
}

Sommaire

  • XSLTProcessor::__construct — Crée un nouvel objet XSLTProcessor
  • XSLTProcessor::getParameter — Récupère la valeur d'un paramètre
  • XsltProcessor::getSecurityPrefs — Récupère les préférences de sécurité
  • XSLTProcessor::hasExsltSupport — Indique si PHP utilise EXSLT
  • XSLTProcessor::importStylesheet — Importe une feuille de style
  • XSLTProcessor::registerPHPFunctions — Active l'utilisation de PHP dans les feuilles de styles XSLT
  • XSLTProcessor::removeParameter — Efface un paramètre
  • XSLTProcessor::setParameter — Définit la valeur d'un paramètre
  • XSLTProcessor::setProfiling — Spécifie le fichier de profilage
  • XsltProcessor::setSecurityPrefs — Définit les préférences de sécurité
  • XSLTProcessor::transformToDoc — Transforme en un document DOM
  • XSLTProcessor::transformToUri — Transforme en URI
  • XSLTProcessor::transformToXML — Transforme en XML


Crée un nouvel objet XSLTProcessor

  • « XSLTProcessor
  • XSLTProcessor::getParameter »
  • PHP Manual
  • XSLTProcessor
  • Crée un nouvel objet XSLTProcessor

XSLTProcessor::__construct

(PHP 5, PHP 7)

XSLTProcessor::__construct — Crée un nouvel objet XSLTProcessor

Description

XSLTProcessor::__construct ( void )

Crée un nouvel objet XSLTProcessor.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec XSLTProcessor

<?php

$xsldoc = new DOMDocument();
$xsldoc->load($xsl_filename);

$xmldoc = new DOMDocument();
$xmldoc->load($xml_filename);

$xsl = new XSLTProcessor();
$xsl->importStyleSheet($xsldoc);
echo $xsl->transformToXML($xmldoc);

?>


Récupère la valeur d'un paramètre

  • « XSLTProcessor::__construct
  • XsltProcessor::getSecurityPrefs »
  • PHP Manual
  • XSLTProcessor
  • Récupère la valeur d'un paramètre

XSLTProcessor::getParameter

(PHP 5, PHP 7)

XSLTProcessor::getParameter — Récupère la valeur d'un paramètre

Description

string XSLTProcessor::getParameter ( string $namespaceURI , string $localName )

Récupère la valeur d'un paramètre s'il a été défini précédemment par la fonction XSLTProcessor::setParameter().

Liste de paramètres

namespaceURI

L'URI de l'espace de noms du paramètre XSLT.

localName

Le nom local du paramètre XSLT.

Valeurs de retour

La valeur du paramètre (sous la forme d'une chaîne de caractères), ou FALSE s'il n'est pas défini.

Voir aussi

  • XSLTProcessor::setParameter() - Définit la valeur d'un paramètre
  • XSLTProcessor::removeParameter() - Efface un paramètre


Récupère les préférences de sécurité

  • « XSLTProcessor::getParameter
  • XSLTProcessor::hasExsltSupport »
  • PHP Manual
  • XSLTProcessor
  • Récupère les préférences de sécurité

XsltProcessor::getSecurityPrefs

(PHP >= 5.4.0)

XsltProcessor::getSecurityPrefs — Récupère les préférences de sécurité

Description

public int XsltProcessor::getSecurityPrefs ( void )

Récupère les préférences de sécurité.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un masque de constantes XSL_SECPREF_READ_FILE, XSL_SECPREF_WRITE_FILE, XSL_SECPREF_CREATE_DIRECTORY, XSL_SECPREF_READ_NETWORK, XSL_SECPREF_WRITE_NETWORK.


Indique si PHP utilise EXSLT

  • « XsltProcessor::getSecurityPrefs
  • XSLTProcessor::importStylesheet »
  • PHP Manual
  • XSLTProcessor
  • Indique si PHP utilise EXSLT

XSLTProcessor::hasExsltSupport

(PHP 5 >= 5.0.4, PHP 7)

XSLTProcessor::hasExsltSupport — Indique si PHP utilise EXSLT

Description

bool XSLTProcessor::hasExsltSupport ( void )

Cette méthode détermine si PHP a été compilé avec la bibliothèque » EXSLT.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Test du support EXSLT

<?php

$proc = new XSLTProcessor;
if (!$proc->hasExsltSupport()) {
    die('Le support d\'EXSLT n\'est pas disponible');
}

// Travaux avec EXSLT

?>


Importe une feuille de style

  • « XSLTProcessor::hasExsltSupport
  • XSLTProcessor::registerPHPFunctions »
  • PHP Manual
  • XSLTProcessor
  • Importe une feuille de style

XSLTProcessor::importStylesheet

(PHP 5, PHP 7)

XSLTProcessor::importStylesheet — Importe une feuille de style

Description

public bool XSLTProcessor::importStylesheet ( object $stylesheet )

Cette méthode importe une feuille de style dans le XSLTProcessor pour transformations.

Liste de paramètres

stylesheet

La feuille de style importée en tant qu'objet DOMDocument ou objet SimpleXMLElement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.2.8 | Accepte de nouveau SimpleXMLElement depuis PHP 5.2.6 alors qu'il était cassé auparavant.


Active l'utilisation de PHP dans les feuilles de styles XSLT

  • « XSLTProcessor::importStylesheet
  • XSLTProcessor::removeParameter »
  • PHP Manual
  • XSLTProcessor
  • Active l'utilisation de PHP dans les feuilles de styles XSLT

XSLTProcessor::registerPHPFunctions

(PHP 5 >= 5.0.4, PHP 7)

XSLTProcessor::registerPHPFunctions — Active l'utilisation de PHP dans les feuilles de styles XSLT

Description

void XSLTProcessor::registerPHPFunctions ([ mixed $restrict ] )

Cette méthode permet d'utiliser les fonctions PHP en tant que fonctions XSLT dans les feuilles de style XSL.

Liste de paramètres

restrict

Utilisez ce paramètre pour restreindre les fonctions PHP accessibles depuis XSLT.

Ce paramètre peut être une chaîne (le nom d'une fonction) ou un tableau de noms de fonctions.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Appel d'une fonction PHP depuis une feuille de style

<?php
$xml = <<<EOB
<allusers>
 <user>
  <uid>bob</uid>
 </user>
 <user>
  <uid>joe</uid>
 </user>
</allusers>
EOB;
$xsl = <<<EOB
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:php="http://php.net/xsl">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
 <xsl:template match="allusers">
  <html><body>
    <h2>Users</h2>
    <table>
    <xsl:for-each select="user">
      <tr><td>
        <xsl:value-of
             select="php:function('ucfirst',string(uid))"/>
      </td></tr>
    </xsl:for-each>
    </table>
  </body></html>
 </xsl:template>
</xsl:stylesheet>
EOB;
$xmldoc = DOMDocument::loadXML($xml);
$xsldoc = DOMDocument::loadXML($xsl);

$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
echo $proc->transformToXML($xmldoc);
?>

Historique

Version | Description
5.1.0 | Le paramètre restrict a été ajouté.


Efface un paramètre

  • « XSLTProcessor::registerPHPFunctions
  • XSLTProcessor::setParameter »
  • PHP Manual
  • XSLTProcessor
  • Efface un paramètre

XSLTProcessor::removeParameter

(PHP 5, PHP 7)

XSLTProcessor::removeParameter — Efface un paramètre

Description

bool XSLTProcessor::removeParameter ( string $namespaceURI , string $localName )

Efface un paramètre, s'il est défini. Ceci fera que le processeur utilisera la valeur par défaut pour le paramètre comme défini dans la feuille de style.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms du paramètre XSLT.

localName

Le nom local du paramètre XSLT.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi

  • XSLTProcessor::setParameter() - Définit la valeur d'un paramètre
  • XSLTProcessor::getParameter() - Récupère la valeur d'un paramètre


Définit la valeur d'un paramètre

  • « XSLTProcessor::removeParameter
  • XSLTProcessor::setProfiling »
  • PHP Manual
  • XSLTProcessor
  • Définit la valeur d'un paramètre

XSLTProcessor::setParameter

(PHP 5, PHP 7)

XSLTProcessor::setParameter — Définit la valeur d'un paramètre

Description

bool XSLTProcessor::setParameter ( string $namespace , string $name , string $value )
bool XSLTProcessor::setParameter ( string $namespace , array $options )

Spécifie la valeur d'un ou plusieurs paramètres pour être utilisés dans une sous-séquence de transformation avec XSLTProcessor. Si le paramètre n'existe pas dans la feuille de style, il sera ignoré.

Liste de paramètres

namespace

L'URI de l'espace de noms du paramètre XSLT.

name

Le nom local du paramètre XSLT.

value

La nouvelle valeur du paramètre XSLT.

options

Un tableau de paire nom => valeur. Cette syntaxe est disponible depuis PHP 5.1.0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Modification du propriétaire avant la transformation

<?php

$collections = array(
    'Marc Rutkowski' => 'marc',
    'Olivier Parmentier' => 'olivier'
);

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configure le transformateur
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attachement des règles xsl

foreach ($collections as $name => $file) {
    // Chargement de la source XML
    $xml = new DOMDocument;
    $xml->load('collection_' . $file . '.xml');

    $proc->setParameter('', 'owner', $name);
    $proc->transformToURI($xml, 'file:///tmp/' . $file . '.html');
}

?>

Voir aussi

  • XSLTProcessor::getParameter() - Récupère la valeur d'un paramètre
  • XSLTProcessor::removeParameter() - Efface un paramètre


Spécifie le fichier de profilage

  • « XSLTProcessor::setParameter
  • XsltProcessor::setSecurityPrefs »
  • PHP Manual
  • XSLTProcessor
  • Spécifie le fichier de profilage

XSLTProcessor::setProfiling

(PHP >= 5.3.0)

XSLTProcessor::setProfiling — Spécifie le fichier de profilage

Description

bool XSLTProcessor::setProfiling ( string $filename )

Spécifie le fichier de sortie contenant les informations de profilage lors de l'exécution d'une feuille de style.

Liste de paramètres

filename

Chemin vers le fichier pour décharger les informations de profilage.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple d'utilisation du profilage

<?php
// Chargement de la source XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configuration du transformateur
$proc = new XSLTProcessor;
$proc->setProfiling('profiling.txt');
$proc->importStyleSheet($xsl); // attachement des règles xsl

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);
?>

Le code ci-dessus produira les informations suivantes dans le fichier de profilage :

number               match                name      mode  Calls Tot 100us Avg

    0                   cd                                    2      3      1
    1           collection                                    1      1      1

                         Total                                3      4


Définit les préférences de sécurité

  • « XSLTProcessor::setProfiling
  • XSLTProcessor::transformToDoc »
  • PHP Manual
  • XSLTProcessor
  • Définit les préférences de sécurité

XsltProcessor::setSecurityPrefs

(PHP >= 5.4.0)

XsltProcessor::setSecurityPrefs — Définit les préférences de sécurité

Description

public int XsltProcessor::setSecurityPrefs ( int $securityPrefs )

Définit les préférences de sécurité.

Liste de paramètres

securityPrefs

Les nouvelles préférences de sécurité. Les constantes suivantes peuvent être combinées : XSL_SECPREF_READ_FILE, XSL_SECPREF_WRITE_FILE, XSL_SECPREF_CREATE_DIRECTORY, XSL_SECPREF_READ_NETWORK, XSL_SECPREF_WRITE_NETWORK. Alternatively, XSL_SECPREF_NONE or XSL_SECPREF_DEFAULT can be passed.

Valeurs de retour

Retourne les anciennes préférences de sécurité


Transforme en un document DOM

  • « XsltProcessor::setSecurityPrefs
  • XSLTProcessor::transformToUri »
  • PHP Manual
  • XSLTProcessor
  • Transforme en un document DOM

XSLTProcessor::transformToDoc

(PHP 5, PHP 7)

XSLTProcessor::transformToDoc — Transforme en un document DOM

Description

DOMDocument XSLTProcessor::transformToDoc ( DOMNode $doc )

Transforme le noeud source en un DOMDocument en y appliquant la feuille de style donnée par la méthode XSLTProcessor::importStylesheet().

Liste de paramètres

doc

Le noeud à transformer.

Valeurs de retour

Le DOMDocument résultant ou FALSE si une erreur survient.

Exemples

Exemple #1 Transformation en un document DOM

<?php

// Chargement de la source XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configuration du transformateur
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attachement des règles xsl

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);

?>

L'exemple ci-dessus va afficher :

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

Voir aussi

  • XSLTProcessor::transformToUri() - Transforme en URI
  • XSLTProcessor::transformToXml() - Transforme en XML


Transforme en URI

  • « XSLTProcessor::transformToDoc
  • XSLTProcessor::transformToXML »
  • PHP Manual
  • XSLTProcessor
  • Transforme en URI

XSLTProcessor::transformToUri

(PHP 5, PHP 7)

XSLTProcessor::transformToUri — Transforme en URI

Description

int XSLTProcessor::transformToURI ( DOMDocument $doc , string $uri )

Transforme le noeud source en une URI en y appliquant la feuille de style donnée par la méthode XSLTProcessor::importStylesheet().

Liste de paramètres

doc

Le document à transformer.

uri

L'URL pour la transformation.

Valeurs de retour

Retourne le nombre d'octets écrits ou FALSE si une erreur survient.

Exemples

Exemple #1 Transformation en un fichier HTML

<?php

// Chargement du source XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configuration du transformateur
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attachement des règles xsl

$proc->transformToURI($xml, 'file:///tmp/out.html');

?>

Voir aussi

  • XSLTProcessor::transformToDoc() - Transforme en un document DOM
  • XSLTProcessor::transformToXml() - Transforme en XML


Transforme en XML

  • « XSLTProcessor::transformToUri
  • Extensions GUI »
  • PHP Manual
  • XSLTProcessor
  • Transforme en XML

XSLTProcessor::transformToXML

(PHP 5, PHP 7)

XSLTProcessor::transformToXML — Transforme en XML

Description

string XSLTProcessor::transformToXML ( object $doc )

Transforme le noeud source en une chaîne en y appliquant une feuille de style donnée par la méthode xsltprocessor::importStylesheet().

Liste de paramètres

doc

L'objet DOMDocument ou SimpleXMLElement a transformer.

Valeurs de retour

Le résultat de la transformation en tant que chaîne de caractères ou FALSE si une erreur survient.

Exemples

Exemple #1 Transformation en une chaîne

<?php

// CHargement du source XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configuration du transformateur
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attachement des règles xsl

echo $proc->transformToXML($xml);

?>

L'exemple ci-dessus va afficher :

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

<h1>Fight for your mind</h1><h2>by Ben Harper - 1995</h2><hr>
<h1>Electric Ladyland</h1><h2>by Jimi Hendrix - 1997</h2><hr>

Voir aussi

  • XSLTProcessor::transformToDoc() - Transforme en un document DOM
  • XSLTProcessor::transformToUri() - Transforme en URI


Extensions GUI

  • UI
    • Introduction
    • Installation/Configuration
    • UI\Point — Represents a position (x,y)
    • UI\Size — Represents dimenstions (width, height)
    • UI\Window — Window
    • UI\Control — Control
    • UI\Menu — Menu
    • UI\MenuItem — Menu Item
    • UI\Area — Area
    • UI\Executor — Execution Scheduler
    • UI\Controls\Tab — Tab Control
    • UI\Controls\Check — Check Control
    • UI\Controls\Button — Button Control
    • UI\Controls\ColorButton — ColorButton Control
    • UI\Controls\Label — Label Control
    • UI\Controls\Entry — Entry Control
    • UI\Controls\MultilineEntry — MultilineEntry Control
    • UI\Controls\Spin — Spin Control
    • UI\Controls\Slider — Slider Control
    • UI\Controls\Progress — Progress Control
    • UI\Controls\Separator — Control Separator
    • UI\Controls\Combo — Combo Control
    • UI\Controls\EditableCombo — EdiableCombo Control
    • UI\Controls\Radio — Radio Control
    • UI\Controls\Picker — Picker Control
    • UI\Controls\Form — Control Form (Arrangement)
    • UI\Controls\Grid — Control Grid (Arrangement)
    • UI\Controls\Group — Control Group (Arrangement)
    • UI\Controls\Box — Control Box (Arrangement)
    • UI\Draw\Pen — Draw Pen
    • UI\Draw\Path — Draw Path
    • UI\Draw\Matrix — Draw Matrix
    • UI\Draw\Color — Color Representation
    • UI\Draw\Stroke — Draw Stroke
    • UI\Draw\Brush — Brushes
    • UI\Draw\Brush\Gradient — Gradient Brushes
    • UI\Draw\Brush\LinearGradient — Linear Gradient
    • UI\Draw\Brush\RadialGradient — Radial Gradient
    • UI\Draw\Text\Layout — Represents Text Layout
    • UI\Draw\Text\Font — Represents a Font
    • UI\Draw\Text\Font\Descriptor — Font Descriptor
    • UI Fonctions
    • UI\Draw\Text\Font\Weight — Font Weight Settings
    • UI\Draw\Text\Font\Italic — Italic Font Settings
    • UI\Draw\Text\Font\Stretch — Font Stretch Settings
    • UI\Draw\Line\Cap — Line Cap Settings
    • UI\Draw\Line\Join — Line Join Settings
    • UI\Key — Key Identifiers
    • UI\Exception\InvalidArgumentException — InvalidArgumentException
    • UI\Exception\RuntimeException — RuntimeException


UI

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
  • UI\Point — Represents a position (x,y)
    • UI\Point::at — Size Coercion
    • UI\Point::__construct — Construct a new Point
    • UI\Point::getX — Retrieves X
    • UI\Point::getY — Retrieves Y
    • UI\Point::setX — Set X
    • UI\Point::setY — Set Y
  • UI\Size — Represents dimenstions (width, height)
    • UI\Size::__construct — Construct a new Size
    • UI\Size::getHeight — Retrieves Height
    • UI\Size::getWidth — Retrives Width
    • UI\Size::of — Point Coercion
    • UI\Size::setHeight — Set Height
    • UI\Size::setWidth — Set Width
  • UI\Window — Window
    • UI\Window::add — Add a Control
    • UI\Window::__construct — Construct a new Window
    • UI\Window::error — Show Error Box
    • UI\Window::getSize — Get Window Size
    • UI\Window::getTitle — Get Title
    • UI\Window::hasBorders — Border Detection
    • UI\Window::hasMargin — Margin Detection
    • UI\Window::isFullScreen — Full Screen Detection
    • UI\Window::msg — Show Message Box
    • UI\Window::onClosing — Closing Callback
    • UI\Window::open — Open Dialog
    • UI\Window::save — Save Dialog
    • UI\Window::setBorders — Border Use
    • UI\Window::setFullScreen — Full Screen Use
    • UI\Window::setMargin — Margin Use
    • UI\Window::setSize — Set Size
    • UI\Window::setTitle — Window Title
  • UI\Control — Control
    • UI\Control::destroy — Destroy Control
    • UI\Control::disable — Disable Control
    • UI\Control::enable — Enable Control
    • UI\Control::getParent — Get Parent Control
    • UI\Control::getTopLevel — Get Top Level
    • UI\Control::hide — Hide Control
    • UI\Control::isEnabled — Determine if Control is enabled
    • UI\Control::isVisible — Determine if Control is visible
    • UI\Control::setParent — Set Parent Control
    • UI\Control::show — Control Show
  • UI\Menu — Menu
    • UI\Menu::append — Append Menu Item
    • UI\Menu::appendAbout — Append About Menu Item
    • UI\Menu::appendCheck — Append Checkable Menu Item
    • UI\Menu::appendPreferences — Append Preferences Menu Item
    • UI\Menu::appendQuit — Append Quit Menu Item
    • UI\Menu::appendSeparator — Append Menu Item Separator
    • UI\Menu::__construct — Construct a new Menu
  • UI\MenuItem — Menu Item
    • UI\MenuItem::disable — Disable Menu Item
    • UI\MenuItem::enable — Enable Menu Item
    • UI\MenuItem::isChecked — Detect Checked
    • UI\MenuItem::onClick — On Click Callback
    • UI\MenuItem::setChecked — Set Checked
  • UI\Area — Area
    • UI\Area::onDraw — Draw Callback
    • UI\Area::onKey — Key Callback
    • UI\Area::onMouse — Mouse Callback
    • UI\Area::redraw — Redraw Area
    • UI\Area::scrollTo — Area Scroll
    • UI\Area::setSize — Set Size
  • UI\Executor — Execution Scheduler
    • UI\Executor::__construct — Construct a new Executor
    • UI\Executor::kill — Stop Executor
    • UI\Executor::onExecute — Execution Callback
    • UI\Executor::setInterval — Interval Manipulation
  • UI\Controls\Tab — Tab Control
    • UI\Controls\Tab::append — Append Page
    • UI\Controls\Tab::delete — Delete Page
    • UI\Controls\Tab::hasMargin — Margin Detection
    • UI\Controls\Tab::insertAt — Insert Page
    • UI\Controls\Tab::pages — Page Count
    • UI\Controls\Tab::setMargin — Set Margin
  • UI\Controls\Check — Check Control
    • UI\Controls\Check::__construct — Construct a new Check
    • UI\Controls\Check::getText — Get Text
    • UI\Controls\Check::isChecked — Checked Detection
    • UI\Controls\Check::onToggle — Toggle Callback
    • UI\Controls\Check::setChecked — Set Checked
    • UI\Controls\Check::setText — Set Text
  • UI\Controls\Button — Button Control
    • UI\Controls\Button::__construct — Construct a new Button
    • UI\Controls\Button::getText — Get Text
    • UI\Controls\Button::onClick — Click Handler
    • UI\Controls\Button::setText — Set Text
  • UI\Controls\ColorButton — ColorButton Control
    • UI\Controls\ColorButton::getColor — Get Color
    • UI\Controls\ColorButton::onChange — Change Handler
    • UI\Controls\ColorButton::setColor — Set Color
  • UI\Controls\Label — Label Control
    • UI\Controls\Label::__construct — Construct a new Label
    • UI\Controls\Label::getText — Get Text
    • UI\Controls\Label::setText — Set Text
  • UI\Controls\Entry — Entry Control
    • UI\Controls\Entry::__construct — Construct a new Entry
    • UI\Controls\Entry::getText — Get Text
    • UI\Controls\Entry::isReadOnly — Detect Read Only
    • UI\Controls\Entry::onChange — Change Handler
    • UI\Controls\Entry::setReadOnly — Set Read Only
    • UI\Controls\Entry::setText — Set Text
  • UI\Controls\MultilineEntry — MultilineEntry Control
    • UI\Controls\MultilineEntry::append — Append Text
    • UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry
    • UI\Controls\MultilineEntry::getText — Get Text
    • UI\Controls\MultilineEntry::isReadOnly — Read Only Detection
    • UI\Controls\MultilineEntry::onChange — Change Handler
    • UI\Controls\MultilineEntry::setReadOnly — Set Read Only
    • UI\Controls\MultilineEntry::setText — Set Text
  • UI\Controls\Spin — Spin Control
    • UI\Controls\Spin::__construct — Construct a new Spin
    • UI\Controls\Spin::getValue — Get Value
    • UI\Controls\Spin::onChange — Change Handler
    • UI\Controls\Spin::setValue — Set Value
  • UI\Controls\Slider — Slider Control
    • UI\Controls\Slider::__construct — Construct a new Slider
    • UI\Controls\Slider::getValue — Get Value
    • UI\Controls\Slider::onChange — Change Handler
    • UI\Controls\Slider::setValue — Set Value
  • UI\Controls\Progress — Progress Control
    • UI\Controls\Progress::getValue — Get Value
    • UI\Controls\Progress::setValue — Set Value
  • UI\Controls\Separator — Control Separator
    • UI\Controls\Separator::__construct — Construct a new Separator
  • UI\Controls\Combo — Combo Control
    • UI\Controls\Combo::append — Append Option
    • UI\Controls\Combo::getSelected — Get Selected Option
    • UI\Controls\Combo::onSelected — Selected Handler
    • UI\Controls\Combo::setSelected — Set Selected Option
  • UI\Controls\EditableCombo — EdiableCombo Control
    • UI\Controls\EditableCombo::append — Append Option
    • UI\Controls\EditableCombo::getText — Get Text
    • UI\Controls\EditableCombo::onChange — Change Handler
    • UI\Controls\EditableCombo::setText — Set Text
  • UI\Controls\Radio — Radio Control
    • UI\Controls\Radio::append — Append Option
    • UI\Controls\Radio::getSelected — Get Selected Option
    • UI\Controls\Radio::onSelected — Selected Handler
    • UI\Controls\Radio::setSelected — Set Selected Option
  • UI\Controls\Picker — Picker Control
    • UI\Controls\Picker::__construct — Construct a new Picker
  • UI\Controls\Form — Control Form (Arrangement)
    • UI\Controls\Form::append — Append Control
    • UI\Controls\Form::delete — Delete Control
    • UI\Controls\Form::isPadded — Padding Detection
    • UI\Controls\Form::setPadded — Set Padding
  • UI\Controls\Grid — Control Grid (Arrangement)
    • UI\Controls\Grid::append — Append Control
    • UI\Controls\Grid::isPadded — Padding Detection
    • UI\Controls\Grid::setPadded — Set Padding
  • UI\Controls\Group — Control Group (Arrangement)
    • UI\Controls\Group::append — Append Control
    • UI\Controls\Group::__construct — Construct a new Group
    • UI\Controls\Group::getTitle — Get Title
    • UI\Controls\Group::hasMargin — Margin Detection
    • UI\Controls\Group::setMargin — Set Margin
    • UI\Controls\Group::setTitle — Set Title
  • UI\Controls\Box — Control Box (Arrangement)
    • UI\Controls\Box::append — Append Control
    • UI\Controls\Box::__construct — Construct a new Box
    • UI\Controls\Box::delete — Delete Control
    • UI\Controls\Box::getOrientation — Get Orientation
    • UI\Controls\Box::isPadded — Padding Detection
    • UI\Controls\Box::setPadded — Set Padding
  • UI\Draw\Pen — Draw Pen
    • UI\Draw\Pen::clip — Clip a Path
    • UI\Draw\Pen::fill — Fill a Path
    • UI\Draw\Pen::restore — Restore
    • UI\Draw\Pen::save — Save
    • UI\Draw\Pen::stroke — Stroke a Path
    • UI\Draw\Pen::transform — Matrix Transform
    • UI\Draw\Pen::write — Draw Text at Point
  • UI\Draw\Path — Draw Path
    • UI\Draw\Path::addRectangle — Draw a Rectangle
    • UI\Draw\Path::arcTo — Draw an Arc
    • UI\Draw\Path::bezierTo — Draw Bezier Curve
    • UI\Draw\Path::closeFigure — Close Figure
    • UI\Draw\Path::__construct — Construct a new Path
    • UI\Draw\Path::end — Finalize Path
    • UI\Draw\Path::lineTo — Draw a Line
    • UI\Draw\Path::newFigure — Draw Figure
    • UI\Draw\Path::newFigureWithArc — Draw Figure with Arc
  • UI\Draw\Matrix — Draw Matrix
    • UI\Draw\Matrix::invert — Invert Matrix
    • UI\Draw\Matrix::isInvertible — Invertible Detection
    • UI\Draw\Matrix::multiply — Multiply Matrix
    • UI\Draw\Matrix::rotate — Rotate Matrix
    • UI\Draw\Matrix::scale — Scale Matrix
    • UI\Draw\Matrix::skew — Skew Matrix
    • UI\Draw\Matrix::translate — Translate Matrix
  • UI\Draw\Color — Color Representation
    • UI\Draw\Color::__construct — Construct new Color
    • UI\Draw\Color::getChannel — Color Manipulation
    • UI\Draw\Color::setChannel — Color Manipulation
  • UI\Draw\Stroke — Draw Stroke
    • UI\Draw\Stroke::__construct — Construct a new Stroke
    • UI\Draw\Stroke::getCap — Get Line Cap
    • UI\Draw\Stroke::getJoin — Get Line Join
    • UI\Draw\Stroke::getMiterLimit — Get Miter Limit
    • UI\Draw\Stroke::getThickness — Get Thickness
    • UI\Draw\Stroke::setCap — Set Line Cap
    • UI\Draw\Stroke::setJoin — Set Line Join
    • UI\Draw\Stroke::setMiterLimit — Set Miter Limit
    • UI\Draw\Stroke::setThickness — Set Thickness
  • UI\Draw\Brush — Brushes
    • UI\Draw\Brush::__construct — Construct a new Brush
    • UI\Draw\Brush::getColor — Get Color
    • UI\Draw\Brush::setColor — Set Color
  • UI\Draw\Brush\Gradient — Gradient Brushes
    • UI\Draw\Brush\Gradient::addStop — Stop Manipulation
    • UI\Draw\Brush\Gradient::delStop — Stop Manipulation
    • UI\Draw\Brush\Gradient::setStop — Stop Manipulation
  • UI\Draw\Brush\LinearGradient — Linear Gradient
    • UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient
  • UI\Draw\Brush\RadialGradient — Radial Gradient
    • UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient
  • UI\Draw\Text\Layout — Represents Text Layout
    • UI\Draw\Text\Layout::__construct — Construct a new Text Layout
    • UI\Draw\Text\Layout::setColor — Set Color
    • UI\Draw\Text\Layout::setWidth — Set Width
  • UI\Draw\Text\Font — Represents a Font
    • UI\Draw\Text\Font::__construct — Construct a new Font
    • UI\Draw\Text\Font::getAscent — Font Metrics
    • UI\Draw\Text\Font::getDescent — Font Metrics
    • UI\Draw\Text\Font::getLeading — Font Metrics
    • UI\Draw\Text\Font::getUnderlinePosition — Font Metrics
    • UI\Draw\Text\Font::getUnderlineThickness — Font Metrics
  • UI\Draw\Text\Font\Descriptor — Font Descriptor
    • UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor
    • UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family
    • UI\Draw\Text\Font\Descriptor::getItalic — Style Detection
    • UI\Draw\Text\Font\Descriptor::getSize — Size Detection
    • UI\Draw\Text\Font\Descriptor::getStretch — Style Detection
    • UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection
  • UI Fonctions
    • UI\Draw\Text\Font\fontFamilies — Retrieve Font Families
    • UI\quit — Quit UI Loop
    • UI\run — Enter UI Loop
  • UI\Draw\Text\Font\Weight — Font Weight Settings
  • UI\Draw\Text\Font\Italic — Italic Font Settings
  • UI\Draw\Text\Font\Stretch — Font Stretch Settings
  • UI\Draw\Line\Cap — Line Cap Settings
  • UI\Draw\Line\Join — Line Join Settings
  • UI\Key — Key Identifiers
  • UI\Exception\InvalidArgumentException — InvalidArgumentException
  • UI\Exception\RuntimeException — RuntimeException


Introduction

This extension wraps libui to provide an OO API for the cross platform development of native look-and-feel user interfaces .


  • « Introduction
  • Pré-requis »
  • PHP Manual
  • UI
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • Installation


Pré-requis

Installation requires the libui library, and PHP 7 or newer.

This extension requires the » libui library version 0.1.0 or higher to be installed. See the libui documentation for a list of prerequisites.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/ui.

Les binaires Windows (les fichiers DLL) pour cette extension PECL sont disponibles sur le site web PECL.


Represents a position (x,y)

(PHP 7, UI 0.9.9)

Introduction

Points are used throughout UI to represent co-ordinates on a screen, control, or area.

Synopsis de la classe

final UI\Point {
/* Propriétés */
public $x ;
public $y ;
/* Constructor */
public __construct ( float $x , float $y )
/* Méthodes */
public static UI\Point at ( float $point )
public static UI\Point at ( UI\Size $size )
public float getX ( void )
public float getY ( void )
public setX ( float $point )
public setY ( float $point )
}

Propriétés

x

Holds the X co-ordinate, can be read/written directly

y

Holds the Y co-ordinate, can be read/written directly

Sommaire

  • UI\Point::at — Size Coercion
  • UI\Point::__construct — Construct a new Point
  • UI\Point::getX — Retrieves X
  • UI\Point::getY — Retrieves Y
  • UI\Point::setX — Set X
  • UI\Point::setY — Set Y


Size Coercion

  • « UI\Point
  • UI\Point::__construct »
  • PHP Manual
  • UI\Point
  • Size Coercion

UI\Point::at

(PHP 7, UI 1.0.2)

UI\Point::at — Size Coercion

Description

public static UI\Point UI\Point::at ( float $point )
public static UI\Point UI\Point::at ( UI\Size $size )

Shall return a UI\Point object where x and y are equal to those supplied, either in float or UI\Size form

Liste de paramètres

point

The value for x and y

size

The Size to convert

Valeurs de retour

The resulting Point


Construct a new Point

  • « UI\Point::at
  • UI\Point::getX »
  • PHP Manual
  • UI\Point
  • Construct a new Point

UI\Point::__construct

(PHP 7, UI 0.9.9)

UI\Point::__construct — Construct a new Point

Description

public UI\Point::__construct ( float $x , float $y )

Construct a new Point using new co-ordinates

Liste de paramètres

x

The new X co-ordinate

y

The new Y co-ordinate


Retrieves X

  • « UI\Point::__construct
  • UI\Point::getY »
  • PHP Manual
  • UI\Point
  • Retrieves X

UI\Point::getX

(PHP 7, UI 0.9.9)

UI\Point::getX — Retrieves X

Description

public float UI\Point::getX ( void )

Retrieves the X co-ordinate

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current X co-ordinate


Retrieves Y

  • « UI\Point::getX
  • UI\Point::setX »
  • PHP Manual
  • UI\Point
  • Retrieves Y

UI\Point::getY

(PHP 7, UI 0.9.9)

UI\Point::getY — Retrieves Y

Description

public float UI\Point::getY ( void )

Retrieves the Y co-ordinate

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current Y co-ordinate


Set X

  • « UI\Point::getY
  • UI\Point::setY »
  • PHP Manual
  • UI\Point
  • Set X

UI\Point::setX

(PHP 7, UI 0.9.9)

UI\Point::setX — Set X

Description

public UI\Point::setX ( float $point )

Set the X co-ordinate

Liste de paramètres

point

The new X co-ordinate

Valeurs de retour


Set Y

  • « UI\Point::setX
  • UI\Size »
  • PHP Manual
  • UI\Point
  • Set Y

UI\Point::setY

(PHP 7, UI 0.9.9)

UI\Point::setY — Set Y

Description

public UI\Point::setY ( float $point )

Set the Y co-ordinate

Liste de paramètres

point

The new Y co-ordinate

Valeurs de retour


Represents dimenstions (width, height)

(PHP 7, UI 0.9.9)

Introduction

Sizes are used throughout UI to represent the size of a screen, control, or area.

Synopsis de la classe

final UI\Size {
/* Propriétés */
public $width ;
public $height ;
/* Constructor */
public __construct ( float $width , float $height )
/* Méthodes */
public float getHeight ( void )
public float getWidth ( void )
public static UI\Size of ( float $size )
public static UI\Size of ( UI\Point $point )
public setHeight ( float $size )
public setWidth ( float $size )
}

Propriétés

width

Holds the width, can be read/written directly

height

Holds the height, can be read/written directly

Sommaire

  • UI\Size::__construct — Construct a new Size
  • UI\Size::getHeight — Retrieves Height
  • UI\Size::getWidth — Retrives Width
  • UI\Size::of — Point Coercion
  • UI\Size::setHeight — Set Height
  • UI\Size::setWidth — Set Width


Construct a new Size

  • « UI\Size
  • UI\Size::getHeight »
  • PHP Manual
  • UI\Size
  • Construct a new Size

UI\Size::__construct

(PHP 7, UI 0.9.9)

UI\Size::__construct — Construct a new Size

Description

public UI\Size::__construct ( float $width , float $height )

Construct a new Size using new width and height

Liste de paramètres

width

The new width

height

The new height


Retrieves Height

  • « UI\Size::__construct
  • UI\Size::getWidth »
  • PHP Manual
  • UI\Size
  • Retrieves Height

UI\Size::getHeight

(PHP 7, UI 0.9.9)

UI\Size::getHeight — Retrieves Height

Description

public float UI\Size::getHeight ( void )

Retrieves the Height

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current Height


Retrives Width

  • « UI\Size::getHeight
  • UI\Size::of »
  • PHP Manual
  • UI\Size
  • Retrives Width

UI\Size::getWidth

(PHP 7, UI 0.9.9)

UI\Size::getWidth — Retrives Width

Description

public float UI\Size::getWidth ( void )

Retrieves the Width

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current Width


Point Coercion

  • « UI\Size::getWidth
  • UI\Size::setHeight »
  • PHP Manual
  • UI\Size
  • Point Coercion

UI\Size::of

(PHP 7, UI 1.0.2)

UI\Size::of — Point Coercion

Description

public static UI\Size UI\Size::of ( float $size )
public static UI\Size UI\Size::of ( UI\Point $point )

Shall return a UI\Size object where width and height are equal to those supplied, either in float or UI\Point form

Liste de paramètres

size

The value for width and height

point

The Point to convert

Valeurs de retour

The resulting Size


Set Height

  • « UI\Size::of
  • UI\Size::setWidth »
  • PHP Manual
  • UI\Size
  • Set Height

UI\Size::setHeight

(PHP 7, UI 0.9.9)

UI\Size::setHeight — Set Height

Description

public UI\Size::setHeight ( float $size )

Set new Height

Liste de paramètres

size

The new Height

Valeurs de retour


Set Width

  • « UI\Size::setHeight
  • UI\Window »
  • PHP Manual
  • UI\Size
  • Set Width

UI\Size::setWidth

(PHP 7, UI 0.9.9)

UI\Size::setWidth — Set Width

Description

public UI\Size::setWidth ( float $size )

Set new Width

Liste de paramètres

size

The new Width

Valeurs de retour


Window

(PHP 7, UI 0.9.9)

Introduction

Represents a UI Window

Synopsis de la classe

UI\Window extends UI\Control {
/* Propriétés */
protected $controls ;
/* Constructor */
public __construct ( string $title , Size $size [, boolean $menu = false ] )
/* Méthodes */
public add ( UI\Control $control )
public error ( string $title , string $msg )
public UI\Size getSize ( void )
public string getTitle ( void )
public bool hasBorders ( void )
public bool hasMargin ( void )
public bool isFullScreen ( void )
public msg ( string $title , string $msg )
protected int onClosing ( void )
public string open ( void )
public string save ( void )
public setBorders ( boolean $borders )
public setFullScreen ( boolean $full )
public setMargin ( boolean $margin )
public setSize ( UI\Size $size )
public setTitle ( string $title )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Propriétés

controls

Contains controls, should not be manipulated directly

Sommaire

  • UI\Window::add — Add a Control
  • UI\Window::__construct — Construct a new Window
  • UI\Window::error — Show Error Box
  • UI\Window::getSize — Get Window Size
  • UI\Window::getTitle — Get Title
  • UI\Window::hasBorders — Border Detection
  • UI\Window::hasMargin — Margin Detection
  • UI\Window::isFullScreen — Full Screen Detection
  • UI\Window::msg — Show Message Box
  • UI\Window::onClosing — Closing Callback
  • UI\Window::open — Open Dialog
  • UI\Window::save — Save Dialog
  • UI\Window::setBorders — Border Use
  • UI\Window::setFullScreen — Full Screen Use
  • UI\Window::setMargin — Margin Use
  • UI\Window::setSize — Set Size
  • UI\Window::setTitle — Window Title


Add a Control

  • « UI\Window
  • UI\Window::__construct »
  • PHP Manual
  • UI\Window
  • Add a Control

UI\Window::add

(PHP 7, UI 0.9.9)

UI\Window::add — Add a Control

Description

public UI\Window::add ( UI\Control $control )

Shall add a Control to this Window

Liste de paramètres

control

The Control to add

Valeurs de retour


Construct a new Window

  • « UI\Window::add
  • UI\Window::error »
  • PHP Manual
  • UI\Window
  • Construct a new Window

UI\Window::__construct

(PHP 7, UI 0.9.9)

UI\Window::__construct — Construct a new Window

Description

public UI\Window::__construct ( string $title , Size $size [, boolean $menu = false ] )

Shall construct a new Window

Liste de paramètres

title

The title of the Window

size

The size of the Window

menu

Menu switch


Show Error Box

  • « UI\Window::__construct
  • UI\Window::getSize »
  • PHP Manual
  • UI\Window
  • Show Error Box

UI\Window::error

(PHP 7, UI 0.9.9)

UI\Window::error — Show Error Box

Description

public UI\Window::error ( string $title , string $msg )

Shall show an error box

Liste de paramètres

title

The title of the error box

msg

The message for the error box


Get Window Size

  • « UI\Window::error
  • UI\Window::getTitle »
  • PHP Manual
  • UI\Window
  • Get Window Size

UI\Window::getSize

(PHP 7, UI 0.9.9)

UI\Window::getSize — Get Window Size

Description

public UI\Size UI\Window::getSize ( void )

Shall return the size of this Window

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Get Title

  • « UI\Window::getSize
  • UI\Window::hasBorders »
  • PHP Manual
  • UI\Window
  • Get Title

UI\Window::getTitle

(PHP 7, UI 0.9.9)

UI\Window::getTitle — Get Title

Description

public string UI\Window::getTitle ( void )

Shall retrieve the title of this Window

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Border Detection

  • « UI\Window::getTitle
  • UI\Window::hasMargin »
  • PHP Manual
  • UI\Window
  • Border Detection

UI\Window::hasBorders

(PHP 7, UI 0.9.9)

UI\Window::hasBorders — Border Detection

Description

public bool UI\Window::hasBorders ( void )

Shall detect if borders are used on this Window

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Margin Detection

  • « UI\Window::hasBorders
  • UI\Window::isFullScreen »
  • PHP Manual
  • UI\Window
  • Margin Detection

UI\Window::hasMargin

(PHP 7, UI 0.9.9)

UI\Window::hasMargin — Margin Detection

Description

public bool UI\Window::hasMargin ( void )

Shall detect if margins are used on this Window

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Full Screen Detection

  • « UI\Window::hasMargin
  • UI\Window::msg »
  • PHP Manual
  • UI\Window
  • Full Screen Detection

UI\Window::isFullScreen

(PHP 7, UI 0.9.9)

UI\Window::isFullScreen — Full Screen Detection

Description

public bool UI\Window::isFullScreen ( void )

Shall detect if this Window us using the whole screen

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Show Message Box

  • « UI\Window::isFullScreen
  • UI\Window::onClosing »
  • PHP Manual
  • UI\Window
  • Show Message Box

UI\Window::msg

(PHP 7, UI 0.9.9)

UI\Window::msg — Show Message Box

Description

public UI\Window::msg ( string $title , string $msg )

Shall show a message box

Liste de paramètres

title

The title of the message box

msg

The message


Closing Callback

  • « UI\Window::msg
  • UI\Window::open »
  • PHP Manual
  • UI\Window
  • Closing Callback

UI\Window::onClosing

(PHP 7, UI 0.9.9)

UI\Window::onClosing — Closing Callback

Description

protected int UI\Window::onClosing ( void )

Should gracefully destroy this Window

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Open Dialog

  • « UI\Window::onClosing
  • UI\Window::save »
  • PHP Manual
  • UI\Window
  • Open Dialog

UI\Window::open

(PHP 7, UI 0.9.9)

UI\Window::open — Open Dialog

Description

public string UI\Window::open ( void )

Shall show an open file dialog

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the name of the file selected for opening


Save Dialog

  • « UI\Window::open
  • UI\Window::setBorders »
  • PHP Manual
  • UI\Window
  • Save Dialog

UI\Window::save

(PHP 7, UI 0.9.9)

UI\Window::save — Save Dialog

Description

public string UI\Window::save ( void )

Shall show a save dialog

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the file name selecting for saving


Border Use

  • « UI\Window::save
  • UI\Window::setFullScreen »
  • PHP Manual
  • UI\Window
  • Border Use

UI\Window::setBorders

(PHP 7, UI 0.9.9)

UI\Window::setBorders — Border Use

Description

public UI\Window::setBorders ( boolean $borders )

Shall enable or disable the use of borders on this Window

Liste de paramètres

borders


Full Screen Use

  • « UI\Window::setBorders
  • UI\Window::setMargin »
  • PHP Manual
  • UI\Window
  • Full Screen Use

UI\Window::setFullScreen

(PHP 7, UI 0.9.9)

UI\Window::setFullScreen — Full Screen Use

Description

public UI\Window::setFullScreen ( boolean $full )

Shall enable or disable the use of the full screen for this Window

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

full


Margin Use

  • « UI\Window::setFullScreen
  • UI\Window::setSize »
  • PHP Manual
  • UI\Window
  • Margin Use

UI\Window::setMargin

(PHP 7, UI 0.9.9)

UI\Window::setMargin — Margin Use

Description

public UI\Window::setMargin ( boolean $margin )

Shall enable or disable the use of margins for this Window

Liste de paramètres

margin


Set Size

  • « UI\Window::setMargin
  • UI\Window::setTitle »
  • PHP Manual
  • UI\Window
  • Set Size

UI\Window::setSize

(PHP 7, UI 0.9.9)

UI\Window::setSize — Set Size

Description

public UI\Window::setSize ( UI\Size $size )

Shall set the size of this Window

Liste de paramètres

size

Valeurs de retour


Window Title

  • « UI\Window::setSize
  • UI\Control »
  • PHP Manual
  • UI\Window
  • Window Title

UI\Window::setTitle

(PHP 7, UI 0.9.9)

UI\Window::setTitle — Window Title

Description

public UI\Window::setTitle ( string $title )

Shall set the title for this Window

Liste de paramètres

title

The new title


Control

(PHP 7, UI 0.9.9)

Introduction

This is the closed base class for all UI Controls.

Synopsis de la classe

final UI\Control {
/* Méthodes */
public destroy ( void )
public disable ( void )
public enable ( void )
public UI\Control getParent ( void )
public int getTopLevel ( void )
public hide ( void )
public bool isEnabled ( void )
public bool isVisible ( void )
public setParent ( UI\Control $parent )
public show ( void )
}

Sommaire

  • UI\Control::destroy — Destroy Control
  • UI\Control::disable — Disable Control
  • UI\Control::enable — Enable Control
  • UI\Control::getParent — Get Parent Control
  • UI\Control::getTopLevel — Get Top Level
  • UI\Control::hide — Hide Control
  • UI\Control::isEnabled — Determine if Control is enabled
  • UI\Control::isVisible — Determine if Control is visible
  • UI\Control::setParent — Set Parent Control
  • UI\Control::show — Control Show


Destroy Control

  • « UI\Control
  • UI\Control::disable »
  • PHP Manual
  • UI\Control
  • Destroy Control

UI\Control::destroy

(PHP 7, UI 0.9.9)

UI\Control::destroy — Destroy Control

Description

public UI\Control::destroy ( void )

Shall destroy this Control

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Disable Control

  • « UI\Control::destroy
  • UI\Control::enable »
  • PHP Manual
  • UI\Control
  • Disable Control

UI\Control::disable

(PHP 7, UI 0.9.9)

UI\Control::disable — Disable Control

Description

public UI\Control::disable ( void )

Shall disable this Control

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Enable Control

  • « UI\Control::disable
  • UI\Control::getParent »
  • PHP Manual
  • UI\Control
  • Enable Control

UI\Control::enable

(PHP 7, UI 0.9.9)

UI\Control::enable — Enable Control

Description

public UI\Control::enable ( void )

Shall enable this Control

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Get Parent Control

  • « UI\Control::enable
  • UI\Control::getTopLevel »
  • PHP Manual
  • UI\Control
  • Get Parent Control

UI\Control::getParent

(PHP 7, UI 0.9.9)

UI\Control::getParent — Get Parent Control

Description

public UI\Control UI\Control::getParent ( void )

Shall return the parent Control

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Get Top Level

  • « UI\Control::getParent
  • UI\Control::hide »
  • PHP Manual
  • UI\Control
  • Get Top Level

UI\Control::getTopLevel

(PHP 7, UI 0.9.9)

UI\Control::getTopLevel — Get Top Level

Description

public int UI\Control::getTopLevel ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Hide Control

  • « UI\Control::getTopLevel
  • UI\Control::isEnabled »
  • PHP Manual
  • UI\Control
  • Hide Control

UI\Control::hide

(PHP 7, UI 0.9.9)

UI\Control::hide — Hide Control

Description

public UI\Control::hide ( void )

Shall hide this Control

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Determine if Control is enabled

  • « UI\Control::hide
  • UI\Control::isVisible »
  • PHP Manual
  • UI\Control
  • Determine if Control is enabled

UI\Control::isEnabled

(PHP 7, UI 0.9.9)

UI\Control::isEnabled — Determine if Control is enabled

Description

public bool UI\Control::isEnabled ( void )

Shall detect if this Control is enabled

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Determine if Control is visible

  • « UI\Control::isEnabled
  • UI\Control::setParent »
  • PHP Manual
  • UI\Control
  • Determine if Control is visible

UI\Control::isVisible

(PHP 7, UI 0.9.9)

UI\Control::isVisible — Determine if Control is visible

Description

public bool UI\Control::isVisible ( void )

Shall detect if this Control is visible

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Set Parent Control

  • « UI\Control::isVisible
  • UI\Control::show »
  • PHP Manual
  • UI\Control
  • Set Parent Control

UI\Control::setParent

(PHP 7, UI 0.9.9)

UI\Control::setParent — Set Parent Control

Description

public UI\Control::setParent ( UI\Control $parent )

Shall set the parent Control of this Control

Liste de paramètres

parent

The parent Control

Valeurs de retour


Control Show

  • « UI\Control::setParent
  • UI\Menu »
  • PHP Manual
  • UI\Control
  • Control Show

UI\Control::show

(PHP 7, UI 0.9.9)

UI\Control::show — Control Show

Description

public UI\Control::show ( void )

Shall show this Control

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Menu

(PHP 7, UI 0.9.9)

Introduction

Menus must be constructed before the first Window, and can be shown on any Window

Synopsis de la classe

UI\Menu {
/* Constructor */
public __construct ( string $name )
/* Méthodes */
public UI\MenuItem append ( string $name [, string $type = UI\MenuItem::class ] )
public UI\MenuItem appendAbout ([ string $type = UI\MenuItem::class ] )
public UI\MenuItem appendCheck ( string $name [, string $type = UI\MenuItem::class ] )
public UI\MenuItem appendPreferences ([ string $type = UI\MenuItem::class ] )
public UI\MenuItem appendQuit ([ string $type = UI\MenuItem::class ] )
public appendSeparator ( void )
}

Sommaire

  • UI\Menu::append — Append Menu Item
  • UI\Menu::appendAbout — Append About Menu Item
  • UI\Menu::appendCheck — Append Checkable Menu Item
  • UI\Menu::appendPreferences — Append Preferences Menu Item
  • UI\Menu::appendQuit — Append Quit Menu Item
  • UI\Menu::appendSeparator — Append Menu Item Separator
  • UI\Menu::__construct — Construct a new Menu


Append Menu Item

  • « UI\Menu
  • UI\Menu::appendAbout »
  • PHP Manual
  • UI\Menu
  • Append Menu Item

UI\Menu::append

(PHP 7, UI 0.9.9)

UI\Menu::append — Append Menu Item

Description

public UI\MenuItem UI\Menu::append ( string $name [, string $type = UI\MenuItem::class ] )

Shall append a new Menu Item

Liste de paramètres

name

The name (text) for the new item

type

The type for the new item

Valeurs de retour

A constructed object of the given type


Append About Menu Item

  • « UI\Menu::append
  • UI\Menu::appendCheck »
  • PHP Manual
  • UI\Menu
  • Append About Menu Item

UI\Menu::appendAbout

(PHP 7, UI 0.9.9)

UI\Menu::appendAbout — Append About Menu Item

Description

public UI\MenuItem UI\Menu::appendAbout ([ string $type = UI\MenuItem::class ] )

Shall append an About menu item

Liste de paramètres

type

The type for the new item

Valeurs de retour

A constructed About menu item of the given type


Append Checkable Menu Item

  • « UI\Menu::appendAbout
  • UI\Menu::appendPreferences »
  • PHP Manual
  • UI\Menu
  • Append Checkable Menu Item

UI\Menu::appendCheck

(PHP 7, UI 0.9.9)

UI\Menu::appendCheck — Append Checkable Menu Item

Description

public UI\MenuItem UI\Menu::appendCheck ( string $name [, string $type = UI\MenuItem::class ] )

Shall append a checkable menu item

Liste de paramètres

name

The name (text) for the new item

type

The type for the new item

Valeurs de retour

A constructed checkable menu item of the given type


Append Preferences Menu Item

  • « UI\Menu::appendCheck
  • UI\Menu::appendQuit »
  • PHP Manual
  • UI\Menu
  • Append Preferences Menu Item

UI\Menu::appendPreferences

(PHP 7, UI 0.9.9)

UI\Menu::appendPreferences — Append Preferences Menu Item

Description

public UI\MenuItem UI\Menu::appendPreferences ([ string $type = UI\MenuItem::class ] )

Shall append a Preferences menu item

Liste de paramètres

type

The type for the new item

Valeurs de retour

A constructed Preferences menu item of the given type


Append Quit Menu Item

  • « UI\Menu::appendPreferences
  • UI\Menu::appendSeparator »
  • PHP Manual
  • UI\Menu
  • Append Quit Menu Item

UI\Menu::appendQuit

(PHP 7, UI 0.9.9)

UI\Menu::appendQuit — Append Quit Menu Item

Description

public UI\MenuItem UI\Menu::appendQuit ([ string $type = UI\MenuItem::class ] )

Shall append a Quit menu item

Liste de paramètres

type

The type for the new item

Valeurs de retour

A constructed Quit menu item of the given type


Append Menu Item Separator

  • « UI\Menu::appendQuit
  • UI\Menu::__construct »
  • PHP Manual
  • UI\Menu
  • Append Menu Item Separator

UI\Menu::appendSeparator

(PHP 7, UI 0.9.9)

UI\Menu::appendSeparator — Append Menu Item Separator

Description

public UI\Menu::appendSeparator ( void )

Shall append a separator

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Construct a new Menu

  • « UI\Menu::appendSeparator
  • UI\MenuItem »
  • PHP Manual
  • UI\Menu
  • Construct a new Menu

UI\Menu::__construct

(PHP 7, UI 0.9.9)

UI\Menu::__construct — Construct a new Menu

Description

public UI\Menu::__construct ( string $name )

Shall construct a new Menu

Liste de paramètres

name

The name (text) for the menu


Menu Item

(PHP 7, UI 0.9.9)

Introduction

Menu Items should only be created by the Menu

Synopsis de la classe

UI\MenuItem {
/* Méthodes */
public disable ( void )
public enable ( void )
public bool isChecked ( void )
protected onClick ( void )
public setChecked ( boolean $checked )
}

Sommaire

  • UI\MenuItem::disable — Disable Menu Item
  • UI\MenuItem::enable — Enable Menu Item
  • UI\MenuItem::isChecked — Detect Checked
  • UI\MenuItem::onClick — On Click Callback
  • UI\MenuItem::setChecked — Set Checked


Disable Menu Item

  • « UI\MenuItem
  • UI\MenuItem::enable »
  • PHP Manual
  • UI\MenuItem
  • Disable Menu Item

UI\MenuItem::disable

(PHP 7, UI 0.9.9)

UI\MenuItem::disable — Disable Menu Item

Description

public UI\MenuItem::disable ( void )

Shall disable this Menu Item

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Enable Menu Item

  • « UI\MenuItem::disable
  • UI\MenuItem::isChecked »
  • PHP Manual
  • UI\MenuItem
  • Enable Menu Item

UI\MenuItem::enable

(PHP 7, UI 0.9.9)

UI\MenuItem::enable — Enable Menu Item

Description

public UI\MenuItem::enable ( void )

Shall enable this Menu Item

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Detect Checked

  • « UI\MenuItem::enable
  • UI\MenuItem::onClick »
  • PHP Manual
  • UI\MenuItem
  • Detect Checked

UI\MenuItem::isChecked

(PHP 7, UI 0.9.9)

UI\MenuItem::isChecked — Detect Checked

Description

public bool UI\MenuItem::isChecked ( void )

Shall detect if this Menu Item is checked

Liste de paramètres

Cette fonction ne contient aucun paramètre.


On Click Callback

  • « UI\MenuItem::isChecked
  • UI\MenuItem::setChecked »
  • PHP Manual
  • UI\MenuItem
  • On Click Callback

UI\MenuItem::onClick

(PHP 7, UI 0.9.9)

UI\MenuItem::onClick — On Click Callback

Description

protected UI\MenuItem::onClick ( void )

Shall be executed when this Menu Item is clicked

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Checked

  • « UI\MenuItem::onClick
  • UI\Area »
  • PHP Manual
  • UI\MenuItem
  • Set Checked

UI\MenuItem::setChecked

(PHP 7, UI 0.9.9)

UI\MenuItem::setChecked — Set Checked

Description

public UI\MenuItem::setChecked ( boolean $checked )

Shall set the checked status of this Menu Item

Liste de paramètres

checked

The new status


Area

(PHP 7, UI 0.9.9)

Introduction

An Area represents a canvas which can be used to draw, and respond to mouse and key events.

Synopsis de la classe

UI\Area extends UI\Control {
/* Constants */
const integer Ctrl ;
const integer Alt ;
const integer Shift ;
const integer Super ;
const integer Down ;
const integer Up ;
/* Méthodes */
protected onDraw ( UI\Draw\Pen $pen , UI\Size $areaSize , UI\Point $clipPoint , UI\Size $clipSize )
protected onKey ( string $key , integer $ext , integer $flags )
protected onMouse ( UI\Point $areaPoint , UI\Size $areaSize , integer $flags )
public redraw ( void )
public scrollTo ( UI\Point $point , UI\Size $size )
public setSize ( UI\Size $size )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Constantes pré-définies

UI\Area::Ctrl

Shall be set in the modifiers passed to key and mouse events when the CTRL key is active

UI\Area::Alt

Shall be set in the modifiers passed to key and mouse events when the ALT key is active

UI\Area::Shift

Shall be set in the modifiers passed to key and mouse events when the SHIFT key is active

UI\Area::Super

UI\Area::Down

Shall be set in the modifiers passed to key and mouse events

UI\Area::Up

Shall be set in the modifiers passed to key and mouse events

Sommaire

  • UI\Area::onDraw — Draw Callback
  • UI\Area::onKey — Key Callback
  • UI\Area::onMouse — Mouse Callback
  • UI\Area::redraw — Redraw Area
  • UI\Area::scrollTo — Area Scroll
  • UI\Area::setSize — Set Size


Draw Callback

  • « UI\Area
  • UI\Area::onKey »
  • PHP Manual
  • UI\Area
  • Draw Callback

UI\Area::onDraw

(PHP 7, UI 0.9.9)

UI\Area::onDraw — Draw Callback

Description

protected UI\Area::onDraw ( UI\Draw\Pen $pen , UI\Size $areaSize , UI\Point $clipPoint , UI\Size $clipSize )

Shall be invoked when this Area requires redrawing

Liste de paramètres

pen

A Pen suitable for drawing in this Area

areaSize

The size of the Area

clipPoint

The clip point of the Area

clipSize

The clip size of the Area


Key Callback

  • « UI\Area::onDraw
  • UI\Area::onMouse »
  • PHP Manual
  • UI\Area
  • Key Callback

UI\Area::onKey

(PHP 7, UI 0.9.9)

UI\Area::onKey — Key Callback

Description

protected UI\Area::onKey ( string $key , integer $ext , integer $flags )

Shall be executed on key events

Liste de paramètres

key

The key pressed

ext

The extended key pressed

flags

Event modifiers

Valeurs de retour


Mouse Callback

  • « UI\Area::onKey
  • UI\Area::redraw »
  • PHP Manual
  • UI\Area
  • Mouse Callback

UI\Area::onMouse

(PHP 7, UI 0.9.9)

UI\Area::onMouse — Mouse Callback

Description

protected UI\Area::onMouse ( UI\Point $areaPoint , UI\Size $areaSize , integer $flags )

Shall be executed on mouse events

Liste de paramètres

areaPoint

The co-ordinates of the event

areaSize

The size of the area of the event

flags

Event modifiers


Redraw Area

  • « UI\Area::onMouse
  • UI\Area::scrollTo »
  • PHP Manual
  • UI\Area
  • Redraw Area

UI\Area::redraw

(PHP 7, UI 0.9.9)

UI\Area::redraw — Redraw Area

Description

public UI\Area::redraw ( void )

Requests that this Area is redrawn

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Area Scroll

  • « UI\Area::redraw
  • UI\Area::setSize »
  • PHP Manual
  • UI\Area
  • Area Scroll

UI\Area::scrollTo

(PHP 7, UI 0.9.9)

UI\Area::scrollTo — Area Scroll

Description

public UI\Area::scrollTo ( UI\Point $point , UI\Size $size )

Scroll this Area

Liste de paramètres

point

The point to scroll to

size

The size of the scroll pane


Set Size

  • « UI\Area::scrollTo
  • UI\Executor »
  • PHP Manual
  • UI\Area
  • Set Size

UI\Area::setSize

(PHP 7, UI 0.9.9)

UI\Area::setSize — Set Size

Description

public UI\Area::setSize ( UI\Size $size )

Sets the size of this Area

Liste de paramètres

size

The new size


Execution Scheduler

(PHP 7, UI 2.0.0)

Introduction

This facility schedules repetitive execution of a callback, useful for animations and other such activities.

Synopsis de la classe

abstract UI\Executor {
/* Constructor */
public __construct ( void )
public __construct ( integer $microseconds )
public __construct ( integer $seconds , integer $microseconds )
/* Méthodes */
public void kill ( void )
abstract protected void onExecute ( void )
public bool setInterval ( integer $microseconds )
public bool setInterval ( integer $seconds , integer $microseconds )
}

Sommaire

  • UI\Executor::__construct — Construct a new Executor
  • UI\Executor::kill — Stop Executor
  • UI\Executor::onExecute — Execution Callback
  • UI\Executor::setInterval — Interval Manipulation


Construct a new Executor

  • « UI\Executor
  • UI\Executor::kill »
  • PHP Manual
  • UI\Executor
  • Construct a new Executor

UI\Executor::__construct

(PHP 7, UI 2.0.0)

UI\Executor::__construct — Construct a new Executor

Description

public UI\Executor::__construct ( void )
public UI\Executor::__construct ( integer $microseconds )
public UI\Executor::__construct ( integer $seconds , integer $microseconds )

Shall construct an executor with the given interval, will not start executing until main loop is entered

Liste de paramètres

seconds

Seconds between executions

microseconds

Microseconds between executions


Stop Executor

  • « UI\Executor::__construct
  • UI\Executor::onExecute »
  • PHP Manual
  • UI\Executor
  • Stop Executor

UI\Executor::kill

(PHP 7, UI 2.0.0)

UI\Executor::kill — Stop Executor

Description

public void UI\Executor::kill ( void )

Shall stop an executor, the executor cannot be restarted

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Execution Callback

  • « UI\Executor::kill
  • UI\Executor::setInterval »
  • PHP Manual
  • UI\Executor
  • Execution Callback

UI\Executor::onExecute

(PHP 7, UI 2.0.0)

UI\Executor::onExecute — Execution Callback

Description

abstract protected void UI\Executor::onExecute ( void )

Shall be repetitively queued for execution in the main thread

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Interval Manipulation

  • « UI\Executor::onExecute
  • UI\Controls\Tab »
  • PHP Manual
  • UI\Executor
  • Interval Manipulation

UI\Executor::setInterval

(PHP 7, UI 2.0.0)

UI\Executor::setInterval — Interval Manipulation

Description

public bool UI\Executor::setInterval ( integer $microseconds )
public bool UI\Executor::setInterval ( integer $seconds , integer $microseconds )

Shall set the new interval. An interval of 0 will pause the executor until a new interval has been set

Liste de paramètres

seconds

microseconds

Valeurs de retour

Indication of success


Tab Control

(PHP 7, UI 0.9.9)

Introduction

A Tab can contain many pages of Controls, each with a title, each selectable by the user.

Synopsis de la classe

UI\Controls\Tab extends UI\Control {
/* Propriétés */
protected $controls ;
/* Méthodes */
public integer append ( string $name , UI\Control $control )
public boolean delete ( integer $index )
public bool hasMargin ( integer $page )
public insertAt ( string $name , integer $page , UI\Control $control )
public integer pages ( void )
public setMargin ( integer $page , boolean $margin )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Propriétés

controls

Contains controls, should not be manipulated directly

Sommaire

  • UI\Controls\Tab::append — Append Page
  • UI\Controls\Tab::delete — Delete Page
  • UI\Controls\Tab::hasMargin — Margin Detection
  • UI\Controls\Tab::insertAt — Insert Page
  • UI\Controls\Tab::pages — Page Count
  • UI\Controls\Tab::setMargin — Set Margin


Append Page

  • « UI\Controls\Tab
  • UI\Controls\Tab::delete »
  • PHP Manual
  • UI\Controls\Tab
  • Append Page

UI\Controls\Tab::append

(PHP 7, UI 0.9.9)

UI\Controls\Tab::append — Append Page

Description

public integer UI\Controls\Tab::append ( string $name , UI\Control $control )

Append a new page to this Tab

Liste de paramètres

name

The name for the new page

control

The control for the new page

Valeurs de retour

Shall return the index of the appended control, may be 0


Delete Page

  • « UI\Controls\Tab::append
  • UI\Controls\Tab::hasMargin »
  • PHP Manual
  • UI\Controls\Tab
  • Delete Page

UI\Controls\Tab::delete

(PHP 7, UI 0.9.9)

UI\Controls\Tab::delete — Delete Page

Description

public boolean UI\Controls\Tab::delete ( integer $index )

Shall remove the selected page from this Tab

Liste de paramètres

index

The index of the page to remove

Valeurs de retour

Indication of success


Margin Detection

  • « UI\Controls\Tab::delete
  • UI\Controls\Tab::insertAt »
  • PHP Manual
  • UI\Controls\Tab
  • Margin Detection

UI\Controls\Tab::hasMargin

(PHP 7, UI 0.9.9)

UI\Controls\Tab::hasMargin — Margin Detection

Description

public bool UI\Controls\Tab::hasMargin ( integer $page )

Shall detect if the given page has a margin.

Liste de paramètres

page

The index of the page

Valeurs de retour


Insert Page

  • « UI\Controls\Tab::hasMargin
  • UI\Controls\Tab::pages »
  • PHP Manual
  • UI\Controls\Tab
  • Insert Page

UI\Controls\Tab::insertAt

(PHP 7, UI 0.9.9)

UI\Controls\Tab::insertAt — Insert Page

Description

public UI\Controls\Tab::insertAt ( string $name , integer $page , UI\Control $control )

Shall insert a new page into this Tab

Liste de paramètres

name

The name for the new page

page

The index to perform the insertion before

control

The control for the new page


Page Count

  • « UI\Controls\Tab::insertAt
  • UI\Controls\Tab::setMargin »
  • PHP Manual
  • UI\Controls\Tab
  • Page Count

UI\Controls\Tab::pages

(PHP 7, UI 0.9.9)

UI\Controls\Tab::pages — Page Count

Description

public integer UI\Controls\Tab::pages ( void )

Shall return the number of pages in this Tab

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of pages in this Tab


Set Margin

  • « UI\Controls\Tab::pages
  • UI\Controls\Check »
  • PHP Manual
  • UI\Controls\Tab
  • Set Margin

UI\Controls\Tab::setMargin

(PHP 7, UI 0.9.9)

UI\Controls\Tab::setMargin — Set Margin

Description

public UI\Controls\Tab::setMargin ( integer $page , boolean $margin )

Shall enable or disable margins on the selected page

Liste de paramètres

page

The page to select

margin

Margin switch


Check Control

(PHP 7, UI 0.9.9)

Introduction

A Check is a labelled checkable box

Synopsis de la classe

UI\Controls\Check extends UI\Control {
/* Constructor */
public __construct ( string $text )
/* Méthodes */
public string getText ( void )
public bool isChecked ( void )
protected onToggle ( void )
public setChecked ( boolean $checked )
public setText ( string $text )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Sommaire

  • UI\Controls\Check::__construct — Construct a new Check
  • UI\Controls\Check::getText — Get Text
  • UI\Controls\Check::isChecked — Checked Detection
  • UI\Controls\Check::onToggle — Toggle Callback
  • UI\Controls\Check::setChecked — Set Checked
  • UI\Controls\Check::setText — Set Text


Construct a new Check

  • « UI\Controls\Check
  • UI\Controls\Check::getText »
  • PHP Manual
  • UI\Controls\Check
  • Construct a new Check

UI\Controls\Check::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Check::__construct — Construct a new Check

Description

public UI\Controls\Check::__construct ( string $text )

Shall construct a new Check

Liste de paramètres

text

The text (label) for the Check box


Get Text

  • « UI\Controls\Check::__construct
  • UI\Controls\Check::isChecked »
  • PHP Manual
  • UI\Controls\Check
  • Get Text

UI\Controls\Check::getText

(PHP 7, UI 0.9.9)

UI\Controls\Check::getText — Get Text

Description

public string UI\Controls\Check::getText ( void )

Shall return the text (label) for this Check

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current text (label)


Checked Detection

  • « UI\Controls\Check::getText
  • UI\Controls\Check::onToggle »
  • PHP Manual
  • UI\Controls\Check
  • Checked Detection

UI\Controls\Check::isChecked

(PHP 7, UI 0.9.9)

UI\Controls\Check::isChecked — Checked Detection

Description

public bool UI\Controls\Check::isChecked ( void )

Shall detect the status of this Check

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Toggle Callback

  • « UI\Controls\Check::isChecked
  • UI\Controls\Check::setChecked »
  • PHP Manual
  • UI\Controls\Check
  • Toggle Callback

UI\Controls\Check::onToggle

(PHP 7, UI 0.9.9)

UI\Controls\Check::onToggle — Toggle Callback

Description

protected UI\Controls\Check::onToggle ( void )

Shall be executed when the status of this Check is changed

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Checked

  • « UI\Controls\Check::onToggle
  • UI\Controls\Check::setText »
  • PHP Manual
  • UI\Controls\Check
  • Set Checked

UI\Controls\Check::setChecked

(PHP 7, UI 0.9.9)

UI\Controls\Check::setChecked — Set Checked

Description

public UI\Controls\Check::setChecked ( boolean $checked )

Shall change the status of this Check

Liste de paramètres

checked

The new status


Set Text

  • « UI\Controls\Check::setChecked
  • UI\Controls\Button »
  • PHP Manual
  • UI\Controls\Check
  • Set Text

UI\Controls\Check::setText

(PHP 7, UI 0.9.9)

UI\Controls\Check::setText — Set Text

Description

public UI\Controls\Check::setText ( string $text )

Shall set the text (label) for this Check

Liste de paramètres

text

The new text (label)


Button Control

(PHP 7, UI 0.9.9)

Introduction

Represents a labelled clickable button

Synopsis de la classe

UI\Controls\Button extends UI\Control {
/* Constructor */
public __construct ( string $text )
/* Méthodes */
public string getText ( void )
protected onClick ( void )
public setText ( string $text )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Sommaire

  • UI\Controls\Button::__construct — Construct a new Button
  • UI\Controls\Button::getText — Get Text
  • UI\Controls\Button::onClick — Click Handler
  • UI\Controls\Button::setText — Set Text


Construct a new Button

  • « UI\Controls\Button
  • UI\Controls\Button::getText »
  • PHP Manual
  • UI\Controls\Button
  • Construct a new Button

UI\Controls\Button::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Button::__construct — Construct a new Button

Description

public UI\Controls\Button::__construct ( string $text )

Shall construct a new Button

Liste de paramètres

text

The text (label) for this Button


Get Text

  • « UI\Controls\Button::__construct
  • UI\Controls\Button::onClick »
  • PHP Manual
  • UI\Controls\Button
  • Get Text

UI\Controls\Button::getText

(PHP 7, UI 0.9.9)

UI\Controls\Button::getText — Get Text

Description

public string UI\Controls\Button::getText ( void )

Shall retrieve the text (label) for this Button

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current text (label)


Click Handler

  • « UI\Controls\Button::getText
  • UI\Controls\Button::setText »
  • PHP Manual
  • UI\Controls\Button
  • Click Handler

UI\Controls\Button::onClick

(PHP 7, UI 0.9.9)

UI\Controls\Button::onClick — Click Handler

Description

protected UI\Controls\Button::onClick ( void )

Shall be executed when this Button is clicked

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Text

  • « UI\Controls\Button::onClick
  • UI\Controls\ColorButton »
  • PHP Manual
  • UI\Controls\Button
  • Set Text

UI\Controls\Button::setText

(PHP 7, UI 0.9.9)

UI\Controls\Button::setText — Set Text

Description

public UI\Controls\Button::setText ( string $text )

Shall set the text (label) for this Button

Liste de paramètres

text

The new text (label)


ColorButton Control

(PHP 7, UI 0.9.9)

Introduction

A Color Button is a button which displays a color picker when clicked

Synopsis de la classe

UI\Controls\ColorButton extends UI\Control {
/* Méthodes */
public UI\Color getColor ( void )
protected onChange ( void )
public setColor ( UI\Draw\Color $color )
public setColor ( integer $color )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Sommaire

  • UI\Controls\ColorButton::getColor — Get Color
  • UI\Controls\ColorButton::onChange — Change Handler
  • UI\Controls\ColorButton::setColor — Set Color


Get Color

  • « UI\Controls\ColorButton
  • UI\Controls\ColorButton::onChange »
  • PHP Manual
  • UI\Controls\ColorButton
  • Get Color

UI\Controls\ColorButton::getColor

(PHP 7, UI 0.9.9)

UI\Controls\ColorButton::getColor — Get Color

Description

public UI\Color UI\Controls\ColorButton::getColor ( void )

Shall retrieve the currently selected Color

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Change Handler

  • « UI\Controls\ColorButton::getColor
  • UI\Controls\ColorButton::setColor »
  • PHP Manual
  • UI\Controls\ColorButton
  • Change Handler

UI\Controls\ColorButton::onChange

(PHP 7, UI 0.9.9)

UI\Controls\ColorButton::onChange — Change Handler

Description

protected UI\Controls\ColorButton::onChange ( void )

Shall be executed when the selected Color is changed

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Color

  • « UI\Controls\ColorButton::onChange
  • UI\Controls\Label »
  • PHP Manual
  • UI\Controls\ColorButton
  • Set Color

UI\Controls\ColorButton::setColor

(PHP 7, UI 0.9.9)

UI\Controls\ColorButton::setColor — Set Color

Description

public UI\Controls\ColorButton::setColor ( UI\Draw\Color $color )
public UI\Controls\ColorButton::setColor ( integer $color )

Shall set the currently selected Color

Liste de paramètres

color

The new color


Label Control

(PHP 7, UI 0.9.9)

Introduction

A Label is a single line of text, meant to identify, for the user, some element of the interface.

Synopsis de la classe

UI\Controls\Label extends UI\Control {
/* Constructor */
public __construct ( string $text )
/* Méthodes */
public string getText ( void )
public setText ( string $text )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Sommaire

  • UI\Controls\Label::__construct — Construct a new Label
  • UI\Controls\Label::getText — Get Text
  • UI\Controls\Label::setText — Set Text


Construct a new Label

  • « UI\Controls\Label
  • UI\Controls\Label::getText »
  • PHP Manual
  • UI\Controls\Label
  • Construct a new Label

UI\Controls\Label::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Label::__construct — Construct a new Label

Description

public UI\Controls\Label::__construct ( string $text )

Shall construct a new Label

Liste de paramètres

text

The text for this label


Get Text

  • « UI\Controls\Label::__construct
  • UI\Controls\Label::setText »
  • PHP Manual
  • UI\Controls\Label
  • Get Text

UI\Controls\Label::getText

(PHP 7, UI 0.9.9)

UI\Controls\Label::getText — Get Text

Description

public string UI\Controls\Label::getText ( void )

Shall return the current text for this Label

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Set Text

  • « UI\Controls\Label::getText
  • UI\Controls\Entry »
  • PHP Manual
  • UI\Controls\Label
  • Set Text

UI\Controls\Label::setText

(PHP 7, UI 0.9.9)

UI\Controls\Label::setText — Set Text

Description

public UI\Controls\Label::setText ( string $text )

Shall set the text for this Label

Liste de paramètres

text

The new text


Entry Control

(PHP 7, UI 0.9.9)

Introduction

An Entry is a text entry control, suitable for entering plain text, passwords, or search terms.

Synopsis de la classe

UI\Controls\Entry extends UI\Control {
/* Constants */
const integer Normal ;
const integer Password ;
const integer Search ;
/* Constructor */
public __construct ([ integer $type = UI\Controls\Entry::Normal ] )
/* Méthodes */
public string getText ( void )
public bool isReadOnly ( void )
protected onChange ( void )
public setReadOnly ( boolean $readOnly )
public setText ( string $text )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Constantes pré-définies

UI\Controls\Entry::Normal

A normal single line entry

UI\Controls\Entry::Password

A password entry

UI\Controls\Entry::Search

A search entry

Sommaire

  • UI\Controls\Entry::__construct — Construct a new Entry
  • UI\Controls\Entry::getText — Get Text
  • UI\Controls\Entry::isReadOnly — Detect Read Only
  • UI\Controls\Entry::onChange — Change Handler
  • UI\Controls\Entry::setReadOnly — Set Read Only
  • UI\Controls\Entry::setText — Set Text


Construct a new Entry

  • « UI\Controls\Entry
  • UI\Controls\Entry::getText »
  • PHP Manual
  • UI\Controls\Entry
  • Construct a new Entry

UI\Controls\Entry::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Entry::__construct — Construct a new Entry

Description

public UI\Controls\Entry::__construct ([ integer $type = UI\Controls\Entry::Normal ] )

Construct a new entry of the given type

Liste de paramètres

type

Entry::Normal, Entry::Password, or Entry::Search


Get Text

  • « UI\Controls\Entry::__construct
  • UI\Controls\Entry::isReadOnly »
  • PHP Manual
  • UI\Controls\Entry
  • Get Text

UI\Controls\Entry::getText

(PHP 7, UI 0.9.9)

UI\Controls\Entry::getText — Get Text

Description

public string UI\Controls\Entry::getText ( void )

Shall return the current text from this Entry

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current text


Detect Read Only

  • « UI\Controls\Entry::getText
  • UI\Controls\Entry::onChange »
  • PHP Manual
  • UI\Controls\Entry
  • Detect Read Only

UI\Controls\Entry::isReadOnly

(PHP 7, UI 0.9.9)

UI\Controls\Entry::isReadOnly — Detect Read Only

Description

public bool UI\Controls\Entry::isReadOnly ( void )

Shall detect if this Entry is read only

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Change Handler

  • « UI\Controls\Entry::isReadOnly
  • UI\Controls\Entry::setReadOnly »
  • PHP Manual
  • UI\Controls\Entry
  • Change Handler

UI\Controls\Entry::onChange

(PHP 7, UI 0.9.9)

UI\Controls\Entry::onChange — Change Handler

Description

protected UI\Controls\Entry::onChange ( void )

Shall be executed when the text in this Entry changes

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Read Only

  • « UI\Controls\Entry::onChange
  • UI\Controls\Entry::setText »
  • PHP Manual
  • UI\Controls\Entry
  • Set Read Only

UI\Controls\Entry::setReadOnly

(PHP 7, UI 0.9.9)

UI\Controls\Entry::setReadOnly — Set Read Only

Description

public UI\Controls\Entry::setReadOnly ( boolean $readOnly )

Shall enable or disable read only for this Entry

Liste de paramètres

readOnly


Set Text

  • « UI\Controls\Entry::setReadOnly
  • UI\Controls\MultilineEntry »
  • PHP Manual
  • UI\Controls\Entry
  • Set Text

UI\Controls\Entry::setText

(PHP 7, UI 0.9.9)

UI\Controls\Entry::setText — Set Text

Description

public UI\Controls\Entry::setText ( string $text )

Shall set the text for this Entry

Liste de paramètres

text

The new text


MultilineEntry Control

(PHP 7, UI 0.9.9)

Introduction

A Multiline Entry is a text entry control able to hold multiple lines of text, with or without wrapping.

Synopsis de la classe

UI\Controls\MultilineEntry extends UI\Control {
/* Constants */
const integer Wrap ;
const integer NoWrap ;
/* Constructor */
public __construct ([ integer $type ] )
/* Méthodes */
public append ( string $text )
public string getText ( void )
public bool isReadOnly ( void )
protected onChange ( void )
public setReadOnly ( boolean $readOnly )
public setText ( string $text )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Constantes pré-définies

UI\Controls\MultilineEntry::Wrap

Allow lines to wrap

UI\Controls\MultilineEntry::NoWrap

Do not allow lines to wrap

Sommaire

  • UI\Controls\MultilineEntry::append — Append Text
  • UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry
  • UI\Controls\MultilineEntry::getText — Get Text
  • UI\Controls\MultilineEntry::isReadOnly — Read Only Detection
  • UI\Controls\MultilineEntry::onChange — Change Handler
  • UI\Controls\MultilineEntry::setReadOnly — Set Read Only
  • UI\Controls\MultilineEntry::setText — Set Text


Append Text

  • « UI\Controls\MultilineEntry
  • UI\Controls\MultilineEntry::__construct »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Append Text

UI\Controls\MultilineEntry::append

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::append — Append Text

Description

public UI\Controls\MultilineEntry::append ( string $text )

Shall append the given text to the text in this Multiline Entry

Liste de paramètres

text

The text to append


Construct a new Multiline Entry

  • « UI\Controls\MultilineEntry::append
  • UI\Controls\MultilineEntry::getText »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Construct a new Multiline Entry

UI\Controls\MultilineEntry::__construct

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry

Description

public UI\Controls\MultilineEntry::__construct ([ integer $type ] )

Shall construct a new Multiline Entry of the given type

Liste de paramètres

type

MultilineEntry::Wrap or MultilineEntry::NoWrap


Get Text

  • « UI\Controls\MultilineEntry::__construct
  • UI\Controls\MultilineEntry::isReadOnly »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Get Text

UI\Controls\MultilineEntry::getText

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::getText — Get Text

Description

public string UI\Controls\MultilineEntry::getText ( void )

Shall return the text in this Multiline Entry

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Read Only Detection

  • « UI\Controls\MultilineEntry::getText
  • UI\Controls\MultilineEntry::onChange »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Read Only Detection

UI\Controls\MultilineEntry::isReadOnly

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::isReadOnly — Read Only Detection

Description

public bool UI\Controls\MultilineEntry::isReadOnly ( void )

Shall detect if this Multiline Entry is read only

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Change Handler

  • « UI\Controls\MultilineEntry::isReadOnly
  • UI\Controls\MultilineEntry::setReadOnly »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Change Handler

UI\Controls\MultilineEntry::onChange

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::onChange — Change Handler

Description

protected UI\Controls\MultilineEntry::onChange ( void )

Shall be executed when the text in this Multiline Entry is changed

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Read Only

  • « UI\Controls\MultilineEntry::onChange
  • UI\Controls\MultilineEntry::setText »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Set Read Only

UI\Controls\MultilineEntry::setReadOnly

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::setReadOnly — Set Read Only

Description

public UI\Controls\MultilineEntry::setReadOnly ( boolean $readOnly )

Shall enable or disable read only on this Multiline Entry

Liste de paramètres

readOnly


Set Text

  • « UI\Controls\MultilineEntry::setReadOnly
  • UI\Controls\Spin »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Set Text

UI\Controls\MultilineEntry::setText

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::setText — Set Text

Description

public UI\Controls\MultilineEntry::setText ( string $text )

Shall set the text in this Multiline Entry

Liste de paramètres

text

The new text


Spin Control

(PHP 7, UI 0.9.9)

Introduction

A Spin box is a text box with an up-down control which changes the integer value in the box, within a defined range

Synopsis de la classe

UI\Controls\Spin extends UI\Control {
/* Constructor */
public __construct ( integer $min , integer $max )
/* Méthodes */
public int getValue ( void )
protected onChange ( void )
public setValue ( integer $value )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Sommaire

  • UI\Controls\Spin::__construct — Construct a new Spin
  • UI\Controls\Spin::getValue — Get Value
  • UI\Controls\Spin::onChange — Change Handler
  • UI\Controls\Spin::setValue — Set Value


Construct a new Spin

  • « UI\Controls\Spin
  • UI\Controls\Spin::getValue »
  • PHP Manual
  • UI\Controls\Spin
  • Construct a new Spin

UI\Controls\Spin::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Spin::__construct — Construct a new Spin

Description

public UI\Controls\Spin::__construct ( integer $min , integer $max )

Constructs a new Spin with the given range

Liste de paramètres

min

The minimum value allowed

max

The maximum value allowed


Get Value

  • « UI\Controls\Spin::__construct
  • UI\Controls\Spin::onChange »
  • PHP Manual
  • UI\Controls\Spin
  • Get Value

UI\Controls\Spin::getValue

(PHP 7, UI 0.9.9)

UI\Controls\Spin::getValue — Get Value

Description

public int UI\Controls\Spin::getValue ( void )

Get the value in this Spin

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Change Handler

  • « UI\Controls\Spin::getValue
  • UI\Controls\Spin::setValue »
  • PHP Manual
  • UI\Controls\Spin
  • Change Handler

UI\Controls\Spin::onChange

(PHP 7, UI 0.9.9)

UI\Controls\Spin::onChange — Change Handler

Description

protected UI\Controls\Spin::onChange ( void )

Shall be executed when the value in this Spin changes

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Value

  • « UI\Controls\Spin::onChange
  • UI\Controls\Slider »
  • PHP Manual
  • UI\Controls\Spin
  • Set Value

UI\Controls\Spin::setValue

(PHP 7, UI 0.9.9)

UI\Controls\Spin::setValue — Set Value

Description

public UI\Controls\Spin::setValue ( integer $value )

Set the value in this Spin

Liste de paramètres

value

The new value


Slider Control

(PHP 7, UI 0.9.9)

Introduction

A Slider is a control which represents a range, and a current value in the range. The sliding element of the control (sometimes called the "thumb") reflects the value, and can be adjusted within the range.

Synopsis de la classe

UI\Controls\Slider extends UI\Control {
/* Constructor */
public __construct ( integer $min , integer $max )
/* Méthodes */
public integer getValue ( void )
protected onChange ( void )
public setValue ( integer $value )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Sommaire

  • UI\Controls\Slider::__construct — Construct a new Slider
  • UI\Controls\Slider::getValue — Get Value
  • UI\Controls\Slider::onChange — Change Handler
  • UI\Controls\Slider::setValue — Set Value


Construct a new Slider

  • « UI\Controls\Slider
  • UI\Controls\Slider::getValue »
  • PHP Manual
  • UI\Controls\Slider
  • Construct a new Slider

UI\Controls\Slider::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Slider::__construct — Construct a new Slider

Description

public UI\Controls\Slider::__construct ( integer $min , integer $max )

Construct a new Slider with the given range

Liste de paramètres

min

The minimum allowed value

max

The maximum allowed value


Get Value

  • « UI\Controls\Slider::__construct
  • UI\Controls\Slider::onChange »
  • PHP Manual
  • UI\Controls\Slider
  • Get Value

UI\Controls\Slider::getValue

(PHP 7, UI 0.9.9)

UI\Controls\Slider::getValue — Get Value

Description

public integer UI\Controls\Slider::getValue ( void )

Get the value from this Slider

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Change Handler

  • « UI\Controls\Slider::getValue
  • UI\Controls\Slider::setValue »
  • PHP Manual
  • UI\Controls\Slider
  • Change Handler

UI\Controls\Slider::onChange

(PHP 7, UI 0.9.9)

UI\Controls\Slider::onChange — Change Handler

Description

protected UI\Controls\Slider::onChange ( void )

Shall be executed when the value of this Slider changes

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Value

  • « UI\Controls\Slider::onChange
  • UI\Controls\Progress »
  • PHP Manual
  • UI\Controls\Slider
  • Set Value

UI\Controls\Slider::setValue

(PHP 7, UI 0.9.9)

UI\Controls\Slider::setValue — Set Value

Description

public UI\Controls\Slider::setValue ( integer $value )

Shall set the value for this Slider

Liste de paramètres

value

The new value


Progress Control

(PHP 7, UI 0.9.9)

Introduction

A Progress control is a familiar Progress bar: It represents progress as a percentage, with a possible range of 0 to 100 (inclusive).

Synopsis de la classe

UI\Controls\Progress extends UI\Control {
/* Méthodes */
public int getValue ( void )
public setValue ( integer $value )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Sommaire

  • UI\Controls\Progress::getValue — Get Value
  • UI\Controls\Progress::setValue — Set Value


Get Value

  • « UI\Controls\Progress
  • UI\Controls\Progress::setValue »
  • PHP Manual
  • UI\Controls\Progress
  • Get Value

UI\Controls\Progress::getValue

(PHP 7, UI 0.9.9)

UI\Controls\Progress::getValue — Get Value

Description

public int UI\Controls\Progress::getValue ( void )

Shall retrieve the current value of this Progress bar

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Value

  • « UI\Controls\Progress::getValue
  • UI\Controls\Separator »
  • PHP Manual
  • UI\Controls\Progress
  • Set Value

UI\Controls\Progress::setValue

(PHP 7, UI 0.9.9)

UI\Controls\Progress::setValue — Set Value

Description

public UI\Controls\Progress::setValue ( integer $value )

Shall set the value for this Progress bar

Liste de paramètres

value

An integer between 0 and 100 (inclusive)


Control Separator

(PHP 7, UI 0.9.9)

Introduction

A Separator represents a control separator, it has no other function.

Synopsis de la classe

UI\Controls\Separator extends UI\Control {
/* Constants */
const integer Horizontal ;
const integer Vertical ;
/* Constructor */
public __construct ([ integer $type = UI\Controls\Separator::Horizontal ] )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Constantes pré-définies

UI\Controls\Separator::Horizontal

A Horizontal Separator

UI\Controls\Separator::Vertical

A Vertical Separator

Sommaire

  • UI\Controls\Separator::__construct — Construct a new Separator


Construct a new Separator

  • « UI\Controls\Separator
  • UI\Controls\Combo »
  • PHP Manual
  • UI\Controls\Separator
  • Construct a new Separator

UI\Controls\Separator::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Separator::__construct — Construct a new Separator

Description

public UI\Controls\Separator::__construct ([ integer $type = UI\Controls\Separator::Horizontal ] )

Shall construct a new Separator of the given type

Liste de paramètres

type

Separator::Horizonal or Separator::Vertical


Combo Control

(PHP 7, UI 0.9.9)

Introduction

A Combo control represents a list of options, like the familiar select HTML element.

Synopsis de la classe

UI\Controls\Combo extends UI\Control {
/* Méthodes */
public append ( string $text )
public integer getSelected ( void )
protected onSelected ( void )
public setSelected ( integer $index )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Sommaire

  • UI\Controls\Combo::append — Append Option
  • UI\Controls\Combo::getSelected — Get Selected Option
  • UI\Controls\Combo::onSelected — Selected Handler
  • UI\Controls\Combo::setSelected — Set Selected Option


Append Option

  • « UI\Controls\Combo
  • UI\Controls\Combo::getSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Append Option

UI\Controls\Combo::append

(PHP 7, UI 0.9.9)

UI\Controls\Combo::append — Append Option

Description

public UI\Controls\Combo::append ( string $text )

Append an option to this Combo

Liste de paramètres

text

The text for the new option


Get Selected Option

  • « UI\Controls\Combo::append
  • UI\Controls\Combo::onSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Get Selected Option

UI\Controls\Combo::getSelected

(PHP 7, UI 0.9.9)

UI\Controls\Combo::getSelected — Get Selected Option

Description

public integer UI\Controls\Combo::getSelected ( void )

Shall retrieve the index of the option selected in this Combo

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Selected Handler

  • « UI\Controls\Combo::getSelected
  • UI\Controls\Combo::setSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Selected Handler

UI\Controls\Combo::onSelected

(PHP 7, UI 0.9.9)

UI\Controls\Combo::onSelected — Selected Handler

Description

protected UI\Controls\Combo::onSelected ( void )

Shall be executed when an option is selected in this Combo

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Selected Option

  • « UI\Controls\Combo::onSelected
  • UI\Controls\EditableCombo »
  • PHP Manual
  • UI\Controls\Combo
  • Set Selected Option

UI\Controls\Combo::setSelected

(PHP 7, UI 0.9.9)

UI\Controls\Combo::setSelected — Set Selected Option

Description

public UI\Controls\Combo::setSelected ( integer $index )

Shall set the currently selected option in this Combo

Liste de paramètres

index

The index of the option to select


EdiableCombo Control

(PHP 7, UI 0.9.9)

Introduction

An Editable Combo is a Combo which allows the user to enter custom options

Synopsis de la classe

UI\Controls\EditableCombo extends UI\Control {
/* Méthodes */
public append ( string $text )
public string getText ( void )
protected onChange ( void )
public setText ( string $text )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Sommaire

  • UI\Controls\EditableCombo::append — Append Option
  • UI\Controls\EditableCombo::getText — Get Text
  • UI\Controls\EditableCombo::onChange — Change Handler
  • UI\Controls\EditableCombo::setText — Set Text


Append Option

  • « UI\Controls\EditableCombo
  • UI\Controls\EditableCombo::getText »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Append Option

UI\Controls\EditableCombo::append

(PHP 7, UI 0.9.9)

UI\Controls\EditableCombo::append — Append Option

Description

public UI\Controls\EditableCombo::append ( string $text )

Shall append a new option to this Editable Combo

Liste de paramètres

text

The text for the new option


Get Text

  • « UI\Controls\EditableCombo::append
  • UI\Controls\EditableCombo::onChange »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Get Text

UI\Controls\EditableCombo::getText

(PHP 7, UI 0.9.9)

UI\Controls\EditableCombo::getText — Get Text

Description

public string UI\Controls\EditableCombo::getText ( void )

Get the value of the currently selected option in this Editable Combo

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Change Handler

  • « UI\Controls\EditableCombo::getText
  • UI\Controls\EditableCombo::setText »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Change Handler

UI\Controls\EditableCombo::onChange

(PHP 7, UI 0.9.9)

UI\Controls\EditableCombo::onChange — Change Handler

Description

protected UI\Controls\EditableCombo::onChange ( void )

Shall be executed when the value of this Editable Combobox changes

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Text

  • « UI\Controls\EditableCombo::onChange
  • UI\Controls\Radio »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Set Text

UI\Controls\EditableCombo::setText

(PHP 7, UI 0.9.9)

UI\Controls\EditableCombo::setText — Set Text

Description

public UI\Controls\EditableCombo::setText ( string $text )

Shall set the text of the currently selected option in this Editable Combo

Liste de paramètres

text

The new text


Radio Control

(PHP 7, UI 0.9.9)

Introduction

A Radio is similar to the radio input type familiar from HTML

Synopsis de la classe

UI\Controls\Radio extends UI\Control {
/* Méthodes */
public append ( string $text )
public integer getSelected ( void )
protected onSelected ( void )
public setSelected ( integer $index )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Sommaire

  • UI\Controls\Radio::append — Append Option
  • UI\Controls\Radio::getSelected — Get Selected Option
  • UI\Controls\Radio::onSelected — Selected Handler
  • UI\Controls\Radio::setSelected — Set Selected Option


Append Option

  • « UI\Controls\Radio
  • UI\Controls\Radio::getSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Append Option

UI\Controls\Radio::append

(PHP 7, UI 0.9.9)

UI\Controls\Radio::append — Append Option

Description

public UI\Controls\Radio::append ( string $text )

Shall append a new option to this Radio

Liste de paramètres

text

The text (label) for the option


Get Selected Option

  • « UI\Controls\Radio::append
  • UI\Controls\Radio::onSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Get Selected Option

UI\Controls\Radio::getSelected

(PHP 7, UI 0.9.9)

UI\Controls\Radio::getSelected — Get Selected Option

Description

public integer UI\Controls\Radio::getSelected ( void )

Shall retrieve the index of the currently selected option in this Radio

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Selected Handler

  • « UI\Controls\Radio::getSelected
  • UI\Controls\Radio::setSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Selected Handler

UI\Controls\Radio::onSelected

(PHP 7, UI 0.9.9)

UI\Controls\Radio::onSelected — Selected Handler

Description

protected UI\Controls\Radio::onSelected ( void )

Shall be executed when the option selected in this Radio changes

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Selected Option

  • « UI\Controls\Radio::onSelected
  • UI\Controls\Picker »
  • PHP Manual
  • UI\Controls\Radio
  • Set Selected Option

UI\Controls\Radio::setSelected

(PHP 7, UI 0.9.9)

UI\Controls\Radio::setSelected — Set Selected Option

Description

public UI\Controls\Radio::setSelected ( integer $index )

Shall set the currently selected option in this Radio

Liste de paramètres

index

The index of the option to select


Picker Control

(PHP 7, UI 0.9.9)

Introduction

A Picker represents a button which when clicked presents a native Date/Time/DateTime Picker interface to the user.

Synopsis de la classe

UI\Controls\Picker extends UI\Control {
/* Constants */
const integer Date ;
const integer Time ;
const integer DateTime ;
/* Constructor */
public __construct ([ integer $type = UI\Controls\Picker::Date ] )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Constantes pré-définies

UI\Controls\Picker::Date

A Date Picker

UI\Controls\Picker::Time

A Time Picker

UI\Controls\Picker::DateTime

A Date and Time Picker

Sommaire

  • UI\Controls\Picker::__construct — Construct a new Picker


Construct a new Picker

  • « UI\Controls\Picker
  • UI\Controls\Form »
  • PHP Manual
  • UI\Controls\Picker
  • Construct a new Picker

UI\Controls\Picker::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Picker::__construct — Construct a new Picker

Description

public UI\Controls\Picker::__construct ([ integer $type = UI\Controls\Picker::Date ] )

Construct a new Picker of the given type

Liste de paramètres

type

Picker::Date, Picker::Time, or Picker::DateTime


Control Form (Arrangement)

(PHP 7, UI 0.9.9)

Introduction

A Form is a control which allows the arrangement of other controls into a familiar layout (the form).

Synopsis de la classe

UI\Controls\Form extends UI\Control {
/* Propriétés */
protected $controls ;
/* Méthodes */
public integer append ( string $label , UI\Control $control [, boolean $stretchy = false ] )
public boolean delete ( integer $index )
public bool isPadded ( void )
public setPadded ( boolean $padded )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Propriétés

controls

Contains controls, should not be manipulated directly

Sommaire

  • UI\Controls\Form::append — Append Control
  • UI\Controls\Form::delete — Delete Control
  • UI\Controls\Form::isPadded — Padding Detection
  • UI\Controls\Form::setPadded — Set Padding


Append Control

  • « UI\Controls\Form
  • UI\Controls\Form::delete »
  • PHP Manual
  • UI\Controls\Form
  • Append Control

UI\Controls\Form::append

(PHP 7, UI 0.9.9)

UI\Controls\Form::append — Append Control

Description

public integer UI\Controls\Form::append ( string $label , UI\Control $control [, boolean $stretchy = false ] )

Shall append the control to the form, and set the label

Liste de paramètres

label

The text for the label

control

A control

stretchy

Should be set true to stretch the control

Valeurs de retour

Shall return the index of the appended control, may be 0


Delete Control

  • « UI\Controls\Form::append
  • UI\Controls\Form::isPadded »
  • PHP Manual
  • UI\Controls\Form
  • Delete Control

UI\Controls\Form::delete

(PHP 7, UI 0.9.9)

UI\Controls\Form::delete — Delete Control

Description

public boolean UI\Controls\Form::delete ( integer $index )

Shall delete the control at the given index in this Form

Liste de paramètres

index

The index of the control to remove

Valeurs de retour

Indication of succcess


Padding Detection

  • « UI\Controls\Form::delete
  • UI\Controls\Form::setPadded »
  • PHP Manual
  • UI\Controls\Form
  • Padding Detection

UI\Controls\Form::isPadded

(PHP 7, UI 0.9.9)

UI\Controls\Form::isPadded — Padding Detection

Description

public bool UI\Controls\Form::isPadded ( void )

Shall detect if padding is enabled on this Form

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Padding

  • « UI\Controls\Form::isPadded
  • UI\Controls\Grid »
  • PHP Manual
  • UI\Controls\Form
  • Set Padding

UI\Controls\Form::setPadded

(PHP 7, UI 0.9.9)

UI\Controls\Form::setPadded — Set Padding

Description

public UI\Controls\Form::setPadded ( boolean $padded )

Shall enable or disable padding on this Form

Liste de paramètres

padded


Control Grid (Arrangement)

(PHP 7, UI 0.9.9)

Introduction

A Grid is a control which is allows the arrangement of children into a grid

Synopsis de la classe

UI\Controls\Grid extends UI\Control {
/* Constants */
const integer Fill ;
const integer Start ;
const integer Center ;
const integer End ;
const integer Leading ;
const integer Top ;
const integer Trailing ;
const integer Bottom ;
/* Propriétés */
protected $controls ;
/* Méthodes */
public append ( UI\Control $control , integer $left , integer $top , integer $xspan , integer $yspan , boolean $hexpand , integer $halign , boolean $vexpand , integer $valign )
public bool isPadded ( void )
public setPadded ( boolean $padding )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Constantes pré-définies

UI\Controls\Grid::Fill

UI\Controls\Grid::Start

UI\Controls\Grid::Center

UI\Controls\Grid::End

UI\Controls\Grid::Leading

UI\Controls\Grid::Top

UI\Controls\Grid::Trailing

UI\Controls\Grid::Bottom

Propriétés

controls

Contains controls, should not be manipulated directly

Sommaire

  • UI\Controls\Grid::append — Append Control
  • UI\Controls\Grid::isPadded — Padding Detection
  • UI\Controls\Grid::setPadded — Set Padding


Append Control

  • « UI\Controls\Grid
  • UI\Controls\Grid::isPadded »
  • PHP Manual
  • UI\Controls\Grid
  • Append Control

UI\Controls\Grid::append

(PHP 7, UI 0.9.9)

UI\Controls\Grid::append — Append Control

Description

public UI\Controls\Grid::append ( UI\Control $control , integer $left , integer $top , integer $xspan , integer $yspan , boolean $hexpand , integer $halign , boolean $vexpand , integer $valign )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

control

The Control to append

left

top

xspan

yspan

hexpand

halign

vexpand

valign

Valeurs de retour


Padding Detection

  • « UI\Controls\Grid::append
  • UI\Controls\Grid::setPadded »
  • PHP Manual
  • UI\Controls\Grid
  • Padding Detection

UI\Controls\Grid::isPadded

(PHP 7, UI 0.9.9)

UI\Controls\Grid::isPadded — Padding Detection

Description

public bool UI\Controls\Grid::isPadded ( void )

Shall detect if padding is enabled on this Grid

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Padding

  • « UI\Controls\Grid::isPadded
  • UI\Controls\Group »
  • PHP Manual
  • UI\Controls\Grid
  • Set Padding

UI\Controls\Grid::setPadded

(PHP 7, UI 0.9.9)

UI\Controls\Grid::setPadded — Set Padding

Description

public UI\Controls\Grid::setPadded ( boolean $padding )

Shall enable or disable padding for this Grid

Liste de paramètres

padding


Control Group (Arrangement)

(PHP 7, UI 0.9.9)

Introduction

A Group is a titled container for child controls

Synopsis de la classe

UI\Controls\Group extends UI\Control {
/* Propriétés */
protected $controls ;
/* Constructor */
public __construct ( string $title )
/* Méthodes */
public append ( UI\Control $control )
public string getTitle ( void )
public bool hasMargin ( void )
public setMargin ( boolean $margin )
public setTitle ( string $title )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Propriétés

controls

Contains controls, should not be manipulated directly

Sommaire

  • UI\Controls\Group::append — Append Control
  • UI\Controls\Group::__construct — Construct a new Group
  • UI\Controls\Group::getTitle — Get Title
  • UI\Controls\Group::hasMargin — Margin Detection
  • UI\Controls\Group::setMargin — Set Margin
  • UI\Controls\Group::setTitle — Set Title


Append Control

  • « UI\Controls\Group
  • UI\Controls\Group::__construct »
  • PHP Manual
  • UI\Controls\Group
  • Append Control

UI\Controls\Group::append

(No version information available, might only be in Git)

UI\Controls\Group::append — Append Control

Description

public UI\Controls\Group::append ( UI\Control $control )

Shall append a control to this Group

Liste de paramètres

control

The control to append


Construct a new Group

  • « UI\Controls\Group::append
  • UI\Controls\Group::getTitle »
  • PHP Manual
  • UI\Controls\Group
  • Construct a new Group

UI\Controls\Group::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Group::__construct — Construct a new Group

Description

public UI\Controls\Group::__construct ( string $title )

Shall construct a new Group with the given title

Liste de paramètres

title

The text for the title label


Get Title

  • « UI\Controls\Group::__construct
  • UI\Controls\Group::hasMargin »
  • PHP Manual
  • UI\Controls\Group
  • Get Title

UI\Controls\Group::getTitle

(PHP 7, UI 0.9.9)

UI\Controls\Group::getTitle — Get Title

Description

public string UI\Controls\Group::getTitle ( void )

Shall return the current title for this Group

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current title


Margin Detection

  • « UI\Controls\Group::getTitle
  • UI\Controls\Group::setMargin »
  • PHP Manual
  • UI\Controls\Group
  • Margin Detection

UI\Controls\Group::hasMargin

(PHP 7, UI 0.9.9)

UI\Controls\Group::hasMargin — Margin Detection

Description

public bool UI\Controls\Group::hasMargin ( void )

Shall detect if this Group has a margin

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Margin

  • « UI\Controls\Group::hasMargin
  • UI\Controls\Group::setTitle »
  • PHP Manual
  • UI\Controls\Group
  • Set Margin

UI\Controls\Group::setMargin

(PHP 7, UI 0.9.9)

UI\Controls\Group::setMargin — Set Margin

Description

public UI\Controls\Group::setMargin ( boolean $margin )

Shall enable or disable margins for this Group

Liste de paramètres

margin


Set Title

  • « UI\Controls\Group::setMargin
  • UI\Controls\Box »
  • PHP Manual
  • UI\Controls\Group
  • Set Title

UI\Controls\Group::setTitle

(PHP 7, UI 0.9.9)

UI\Controls\Group::setTitle — Set Title

Description

public UI\Controls\Group::setTitle ( string $title )

Shall set the title for this Group

Liste de paramètres

title

The text for the new title


Control Box (Arrangement)

(PHP 7, UI 0.9.9)

Introduction

A Box allows the arrangement of other controls

Synopsis de la classe

UI\Controls\Box extends UI\Control {
/* Constants */
const integer Vertical ;
const integer Horizontal ;
/* Propriétés */
protected $controls ;
/* Constructor */
public __construct ([ integer $orientation = UI\Controls\Box::Horizontal ] )
/* Méthodes */
public integer append ( Control $control [, boolean $stretchy = false ] )
public boolean delete ( integer $index )
public integer getOrientation ( void )
public bool isPadded ( void )
public setPadded ( boolean $padded )
/* Méthodes héritées */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Propriétés

controls

Contains controls, should not be manipulated directly

Constantes pré-définies

UI\Controls\Box::Vertical

UI\Controls\Box::Horizontal

Sommaire

  • UI\Controls\Box::append — Append Control
  • UI\Controls\Box::__construct — Construct a new Box
  • UI\Controls\Box::delete — Delete Control
  • UI\Controls\Box::getOrientation — Get Orientation
  • UI\Controls\Box::isPadded — Padding Detection
  • UI\Controls\Box::setPadded — Set Padding


Append Control

  • « UI\Controls\Box
  • UI\Controls\Box::__construct »
  • PHP Manual
  • UI\Controls\Box
  • Append Control

UI\Controls\Box::append

(PHP 7, UI 0.9.9)

UI\Controls\Box::append — Append Control

Description

public integer UI\Controls\Box::append ( Control $control [, boolean $stretchy = false ] )

Shall append the given control to this Box

Liste de paramètres

control

The control to append

stretchy

Set true to stretch the control

Valeurs de retour

Shall return the index of the appended control, may be 0


Construct a new Box

  • « UI\Controls\Box::append
  • UI\Controls\Box::delete »
  • PHP Manual
  • UI\Controls\Box
  • Construct a new Box

UI\Controls\Box::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Box::__construct — Construct a new Box

Description

public UI\Controls\Box::__construct ([ integer $orientation = UI\Controls\Box::Horizontal ] )

Shall construct a new box

Liste de paramètres

orientation

Box::Horizontal or Box::Vertical


Delete Control

  • « UI\Controls\Box::__construct
  • UI\Controls\Box::getOrientation »
  • PHP Manual
  • UI\Controls\Box
  • Delete Control

UI\Controls\Box::delete

(PHP 7, UI 0.9.9)

UI\Controls\Box::delete — Delete Control

Description

public boolean UI\Controls\Box::delete ( integer $index )

Shall delete the control at the given index from this Box

Liste de paramètres

index

The index of the control to delete

Valeurs de retour

Indication of success


Get Orientation

  • « UI\Controls\Box::delete
  • UI\Controls\Box::isPadded »
  • PHP Manual
  • UI\Controls\Box
  • Get Orientation

UI\Controls\Box::getOrientation

(PHP 7, UI 0.9.9)

UI\Controls\Box::getOrientation — Get Orientation

Description

public integer UI\Controls\Box::getOrientation ( void )

Shall retrieve the orientation of this Box

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Padding Detection

  • « UI\Controls\Box::getOrientation
  • UI\Controls\Box::setPadded »
  • PHP Manual
  • UI\Controls\Box
  • Padding Detection

UI\Controls\Box::isPadded

(PHP 7, UI 0.9.9)

UI\Controls\Box::isPadded — Padding Detection

Description

public bool UI\Controls\Box::isPadded ( void )

Shall detect if padding is enabled on this Box

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Set Padding

  • « UI\Controls\Box::isPadded
  • UI\Draw\Pen »
  • PHP Manual
  • UI\Controls\Box
  • Set Padding

UI\Controls\Box::setPadded

(PHP 7, UI 0.9.9)

UI\Controls\Box::setPadded — Set Padding

Description

public UI\Controls\Box::setPadded ( boolean $padded )

Shall enable or disable padding on this Box

Liste de paramètres

padded


Draw Pen

(PHP 7, UI 0.9.9)

Introduction

The Pen is passed to the Area Draw event handler, it is used for clipping, filling, stroking, and writing to Draw Paths.

Synopsis de la classe

final UI\Draw\Pen {
/* Méthodes */
public clip ( UI\Draw\Path $path )
public fill ( UI\Draw\Path $path , UI\Draw\Brush $with )
public fill ( UI\Draw\Path $path , UI\Draw\Color $with )
public fill ( UI\Draw\Path $path , integer $with )
public restore ( void )
public save ( void )
public stroke ( UI\Draw\Path $path , UI\Draw\Brush $with , UI\Draw\Stroke $stroke )
public stroke ( UI\Draw\Path $path , UI\Draw\Color $with , UI\Draw\Stroke $stroke )
public stroke ( UI\Draw\Path $path , integer $with , UI\Draw\Stroke $stroke )
public transform ( UI\Draw\Matrix $matrix )
public write ( UI\Point $point , UI\Draw\Text\Layout $layout )
}

Sommaire

  • UI\Draw\Pen::clip — Clip a Path
  • UI\Draw\Pen::fill — Fill a Path
  • UI\Draw\Pen::restore — Restore
  • UI\Draw\Pen::save — Save
  • UI\Draw\Pen::stroke — Stroke a Path
  • UI\Draw\Pen::transform — Matrix Transform
  • UI\Draw\Pen::write — Draw Text at Point


Clip a Path

  • « UI\Draw\Pen
  • UI\Draw\Pen::fill »
  • PHP Manual
  • UI\Draw\Pen
  • Clip a Path

UI\Draw\Pen::clip

(PHP 7, UI 0.9.9)

UI\Draw\Pen::clip — Clip a Path

Description

public UI\Draw\Pen::clip ( UI\Draw\Path $path )

Shall clip the given Path

Liste de paramètres

path

The path to clip


Fill a Path

  • « UI\Draw\Pen::clip
  • UI\Draw\Pen::restore »
  • PHP Manual
  • UI\Draw\Pen
  • Fill a Path

UI\Draw\Pen::fill

(PHP 7, UI 0.9.9)

UI\Draw\Pen::fill — Fill a Path

Description

public UI\Draw\Pen::fill ( UI\Draw\Path $path , UI\Draw\Brush $with )
public UI\Draw\Pen::fill ( UI\Draw\Path $path , UI\Draw\Color $with )
public UI\Draw\Pen::fill ( UI\Draw\Path $path , integer $with )

Shall fill the given path

Liste de paramètres

path

The path to fill

with

The color or brush to fill with


Restore

  • « UI\Draw\Pen::fill
  • UI\Draw\Pen::save »
  • PHP Manual
  • UI\Draw\Pen
  • Restore

UI\Draw\Pen::restore

(PHP 7, UI 0.9.9)

UI\Draw\Pen::restore — Restore

Description

public UI\Draw\Pen::restore ( void )

Shall restore a previously saved Pen

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Save

  • « UI\Draw\Pen::restore
  • UI\Draw\Pen::stroke »
  • PHP Manual
  • UI\Draw\Pen
  • Save

UI\Draw\Pen::save

(PHP 7, UI 0.9.9)

UI\Draw\Pen::save — Save

Description

public UI\Draw\Pen::save ( void )

Shall save the Pen

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Stroke a Path

  • « UI\Draw\Pen::save
  • UI\Draw\Pen::transform »
  • PHP Manual
  • UI\Draw\Pen
  • Stroke a Path

UI\Draw\Pen::stroke

(PHP 7, UI 0.9.9)

UI\Draw\Pen::stroke — Stroke a Path

Description

public UI\Draw\Pen::stroke ( UI\Draw\Path $path , UI\Draw\Brush $with , UI\Draw\Stroke $stroke )
public UI\Draw\Pen::stroke ( UI\Draw\Path $path , UI\Draw\Color $with , UI\Draw\Stroke $stroke )
public UI\Draw\Pen::stroke ( UI\Draw\Path $path , integer $with , UI\Draw\Stroke $stroke )

Shall stroke the given path

Liste de paramètres

path

The path to stroke

with

The color or brush to stroke with

stroke

The configuration of the stroke


Matrix Transform

  • « UI\Draw\Pen::stroke
  • UI\Draw\Pen::write »
  • PHP Manual
  • UI\Draw\Pen
  • Matrix Transform

UI\Draw\Pen::transform

(PHP 7, UI 0.9.9)

UI\Draw\Pen::transform — Matrix Transform

Description

public UI\Draw\Pen::transform ( UI\Draw\Matrix $matrix )

Shall perform matrix transformation

Liste de paramètres

matrix

The matrix to use


Draw Text at Point

  • « UI\Draw\Pen::transform
  • UI\Draw\Path »
  • PHP Manual
  • UI\Draw\Pen
  • Draw Text at Point

UI\Draw\Pen::write

(PHP 7, UI 0.9.9)

UI\Draw\Pen::write — Draw Text at Point

Description

public UI\Draw\Pen::write ( UI\Point $point , UI\Draw\Text\Layout $layout )

Shall draw the given text layout at the given point

Liste de paramètres

point

The point to perform the drawing

layout

The layout of the text to draw


Draw Path

(PHP 7, UI 0.9.9)

Introduction

A Draw Path guides a Draw Pen, telling the Pen where to draw on an Area.

Synopsis de la classe

UI\Draw\Path {
/* Constants */
const integer Winding ;
const integer Alternate ;
/* Constructor */
public __construct ([ integer $mode = UI\Draw\Path::Winding ] )
/* Méthodes */
public addRectangle ( UI\Point $point , UI\Size $size )
public arcTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
public bezierTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
public closeFigure ( void )
public end ( void )
public lineTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
public newFigure ( UI\Point $point )
public newFigureWithArc ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
}

Constantes pré-définies

UI\Draw\Path::Winding

This is the default draw path mode

UI\Draw\Path::Alternate

This is the alternate draw path mode

Sommaire

  • UI\Draw\Path::addRectangle — Draw a Rectangle
  • UI\Draw\Path::arcTo — Draw an Arc
  • UI\Draw\Path::bezierTo — Draw Bezier Curve
  • UI\Draw\Path::closeFigure — Close Figure
  • UI\Draw\Path::__construct — Construct a new Path
  • UI\Draw\Path::end — Finalize Path
  • UI\Draw\Path::lineTo — Draw a Line
  • UI\Draw\Path::newFigure — Draw Figure
  • UI\Draw\Path::newFigureWithArc — Draw Figure with Arc


Draw a Rectangle

  • « UI\Draw\Path
  • UI\Draw\Path::arcTo »
  • PHP Manual
  • UI\Draw\Path
  • Draw a Rectangle

UI\Draw\Path::addRectangle

(PHP 7, UI 0.9.9)

UI\Draw\Path::addRectangle — Draw a Rectangle

Description

public UI\Draw\Path::addRectangle ( UI\Point $point , UI\Size $size )

Shall map the path of a rectangle of the given size, at the given point

Liste de paramètres

point

The point to begin the shape

size

The size of the rectangle


Draw an Arc

  • « UI\Draw\Path::addRectangle
  • UI\Draw\Path::bezierTo »
  • PHP Manual
  • UI\Draw\Path
  • Draw an Arc

UI\Draw\Path::arcTo

(PHP 7, UI 0.9.9)

UI\Draw\Path::arcTo — Draw an Arc

Description

public UI\Draw\Path::arcTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Shall map the path for an arc

Liste de paramètres

point

The point to begin mapping

radius

The radius of the arc

angle

The angle of the arc

sweep

The sweep of the arc

negative

Valeurs de retour


Draw Bezier Curve

  • « UI\Draw\Path::arcTo
  • UI\Draw\Path::closeFigure »
  • PHP Manual
  • UI\Draw\Path
  • Draw Bezier Curve

UI\Draw\Path::bezierTo

(PHP 7, UI 0.9.9)

UI\Draw\Path::bezierTo — Draw Bezier Curve

Description

public UI\Draw\Path::bezierTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Shall draw a bezier curve

Liste de paramètres

point

The point at which to begin mapping

radius

The radius of the curve

angle

The angle of the curve

sweep

The sweep of the curve

negative


Close Figure

  • « UI\Draw\Path::bezierTo
  • UI\Draw\Path::__construct »
  • PHP Manual
  • UI\Draw\Path
  • Close Figure

UI\Draw\Path::closeFigure

(PHP 7, UI 0.9.9)

UI\Draw\Path::closeFigure — Close Figure

Description

public UI\Draw\Path::closeFigure ( void )

Shall close the current figure

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Construct a new Path

  • « UI\Draw\Path::closeFigure
  • UI\Draw\Path::end »
  • PHP Manual
  • UI\Draw\Path
  • Construct a new Path

UI\Draw\Path::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Path::__construct — Construct a new Path

Description

public UI\Draw\Path::__construct ([ integer $mode = UI\Draw\Path::Winding ] )

Shall construct a new path in the given mode

Liste de paramètres

mode

Path::Winding or Path::Alternate


Finalize Path

  • « UI\Draw\Path::__construct
  • UI\Draw\Path::lineTo »
  • PHP Manual
  • UI\Draw\Path
  • Finalize Path

UI\Draw\Path::end

(PHP 7, UI 0.9.9)

UI\Draw\Path::end — Finalize Path

Description

public UI\Draw\Path::end ( void )

Shall finalize this Path

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Draw a Line

  • « UI\Draw\Path::end
  • UI\Draw\Path::newFigure »
  • PHP Manual
  • UI\Draw\Path
  • Draw a Line

UI\Draw\Path::lineTo

(PHP 7, UI 0.9.9)

UI\Draw\Path::lineTo — Draw a Line

Description

public UI\Draw\Path::lineTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Shall map the path for a line

Liste de paramètres

point

The point to begin mapping

radius

angle

sweep

negative

Valeurs de retour


Draw Figure

  • « UI\Draw\Path::lineTo
  • UI\Draw\Path::newFigureWithArc »
  • PHP Manual
  • UI\Draw\Path
  • Draw Figure

UI\Draw\Path::newFigure

(PHP 7, UI 0.9.9)

UI\Draw\Path::newFigure — Draw Figure

Description

public UI\Draw\Path::newFigure ( UI\Point $point )

Shall map a new figure at the given point

Liste de paramètres

point

The point to begin mapping


Draw Figure with Arc

  • « UI\Draw\Path::newFigure
  • UI\Draw\Matrix »
  • PHP Manual
  • UI\Draw\Path
  • Draw Figure with Arc

UI\Draw\Path::newFigureWithArc

(PHP 7, UI 0.9.9)

UI\Draw\Path::newFigureWithArc — Draw Figure with Arc

Description

public UI\Draw\Path::newFigureWithArc ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Liste de paramètres

point

radius

angle

sweep

negative

Valeurs de retour


Draw Matrix

(PHP 7, UI 0.9.9)

Introduction

Synopsis de la classe

UI\Draw\Matrix {
/* Méthodes */
public invert ( void )
public bool isInvertible ( void )
public UI\Draw\Matrix multiply ( UI\Draw\Matrix $matrix )
public rotate ( UI\Point $point , float $amount )
public scale ( UI\Point $center , UI\Point $point )
public skew ( UI\Point $point , UI\Point $amount )
public translate ( UI\Point $point )
}

Sommaire

  • UI\Draw\Matrix::invert — Invert Matrix
  • UI\Draw\Matrix::isInvertible — Invertible Detection
  • UI\Draw\Matrix::multiply — Multiply Matrix
  • UI\Draw\Matrix::rotate — Rotate Matrix
  • UI\Draw\Matrix::scale — Scale Matrix
  • UI\Draw\Matrix::skew — Skew Matrix
  • UI\Draw\Matrix::translate — Translate Matrix


Invert Matrix

  • « UI\Draw\Matrix
  • UI\Draw\Matrix::isInvertible »
  • PHP Manual
  • UI\Draw\Matrix
  • Invert Matrix

UI\Draw\Matrix::invert

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::invert — Invert Matrix

Description

public UI\Draw\Matrix::invert ( void )

Shall invert this matrix

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Invertible Detection

  • « UI\Draw\Matrix::invert
  • UI\Draw\Matrix::multiply »
  • PHP Manual
  • UI\Draw\Matrix
  • Invertible Detection

UI\Draw\Matrix::isInvertible

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::isInvertible — Invertible Detection

Description

public bool UI\Draw\Matrix::isInvertible ( void )

Shall detect if this Matrix may be inverted

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Multiply Matrix

  • « UI\Draw\Matrix::isInvertible
  • UI\Draw\Matrix::rotate »
  • PHP Manual
  • UI\Draw\Matrix
  • Multiply Matrix

UI\Draw\Matrix::multiply

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::multiply — Multiply Matrix

Description

public UI\Draw\Matrix UI\Draw\Matrix::multiply ( UI\Draw\Matrix $matrix )

Shall multiply this matrix with the given matrix

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The new Matrix


Rotate Matrix

  • « UI\Draw\Matrix::multiply
  • UI\Draw\Matrix::scale »
  • PHP Manual
  • UI\Draw\Matrix
  • Rotate Matrix

UI\Draw\Matrix::rotate

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::rotate — Rotate Matrix

Description

public UI\Draw\Matrix::rotate ( UI\Point $point , float $amount )

Shall rotate this Matrix

Liste de paramètres

point

amount


Scale Matrix

  • « UI\Draw\Matrix::rotate
  • UI\Draw\Matrix::skew »
  • PHP Manual
  • UI\Draw\Matrix
  • Scale Matrix

UI\Draw\Matrix::scale

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::scale — Scale Matrix

Description

public UI\Draw\Matrix::scale ( UI\Point $center , UI\Point $point )

Shall scale this Matrix

Liste de paramètres

center

point


Skew Matrix

  • « UI\Draw\Matrix::scale
  • UI\Draw\Matrix::translate »
  • PHP Manual
  • UI\Draw\Matrix
  • Skew Matrix

UI\Draw\Matrix::skew

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::skew — Skew Matrix

Description

public UI\Draw\Matrix::skew ( UI\Point $point , UI\Point $amount )

Shall skew this Matrix

Liste de paramètres

point

amount


Translate Matrix

  • « UI\Draw\Matrix::skew
  • UI\Draw\Color »
  • PHP Manual
  • UI\Draw\Matrix
  • Translate Matrix

UI\Draw\Matrix::translate

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::translate — Translate Matrix

Description

public UI\Draw\Matrix::translate ( UI\Point $point )

Shall translate this Matrix

Liste de paramètres

point


Color Representation

(PHP 7, UI 0.9.9)

Introduction

Represents RGBA colours, individual channels are accessible via public properties.

Synopsis de la classe

UI\Draw\Color {
/* Constants */
const integer Red ;
const integer Green ;
const integer Blue ;
const integer Alpha ;
/* Propriétés */
public $r ;
public $g ;
public $b ;
public $a ;
/* Constructor */
public __construct ([ UI\Draw\Color $color ] )
public __construct ([ integer $color ] )
/* Méthodes */
public float getChannel ( integer $channel )
public void setChannel ( integer $channel , float $value )
}

Propriétés

r

Provides access to the red channel

g

Provides access to the green channel

b

Provides access to the blue channel

a

Provides access to the alpha channel

Constantes pré-définies

UI\Draw\Color::Red

Identifies the red channel

UI\Draw\Color::Green

Identifies the green channel

UI\Draw\Color::Blue

Identifies the blue channel

UI\Draw\Color::Alpha

Identifies the alpha channel

Sommaire

  • UI\Draw\Color::__construct — Construct new Color
  • UI\Draw\Color::getChannel — Color Manipulation
  • UI\Draw\Color::setChannel — Color Manipulation


Construct new Color

  • « UI\Draw\Color
  • UI\Draw\Color::getChannel »
  • PHP Manual
  • UI\Draw\Color
  • Construct new Color

UI\Draw\Color::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Color::__construct — Construct new Color

Description

public UI\Draw\Color::__construct ([ UI\Draw\Color $color ] )
public UI\Draw\Color::__construct ([ integer $color ] )

Shall construct a new color

Liste de paramètres

color

May be UI\Draw\Color or RRGGBBAA


Color Manipulation

  • « UI\Draw\Color::__construct
  • UI\Draw\Color::setChannel »
  • PHP Manual
  • UI\Draw\Color
  • Color Manipulation

UI\Draw\Color::getChannel

(PHP 7, UI 0.9.9)

UI\Draw\Color::getChannel — Color Manipulation

Description

public float UI\Draw\Color::getChannel ( integer $channel )

Shall retrieve the value for a channel

Liste de paramètres

channel

Constant channel identity

Valeurs de retour

The current value of the requested channel


Color Manipulation

  • « UI\Draw\Color::getChannel
  • UI\Draw\Stroke »
  • PHP Manual
  • UI\Draw\Color
  • Color Manipulation

UI\Draw\Color::setChannel

(PHP 7, UI 0.9.9)

UI\Draw\Color::setChannel — Color Manipulation

Description

public void UI\Draw\Color::setChannel ( integer $channel , float $value )

Shall set the selected channel to the given value

Liste de paramètres

channel

Constant channel identity

value

The new value for the selected channel

Valeurs de retour


Draw Stroke

(PHP 7, UI 0.9.9)

Introduction

Holds the configuration for the Pen to perform a stroke

Synopsis de la classe

UI\Draw\Stroke {
/* Constructor */
public __construct ([ integer $cap = UI\Draw\Line\Cap::Flat [, integer $join = UI\Draw\Line\Join::Miter [, float $thickness = 1 [, float $miterLimit = 10 ]]]] )
/* Méthodes */
public integer getCap ( void )
public integer getJoin ( void )
public float getMiterLimit ( void )
public float getThickness ( void )
public setCap ( integer $cap )
public setJoin ( integer $join )
public setMiterLimit ( float $limit )
public setThickness ( float $thickness )
}

Sommaire

  • UI\Draw\Stroke::__construct — Construct a new Stroke
  • UI\Draw\Stroke::getCap — Get Line Cap
  • UI\Draw\Stroke::getJoin — Get Line Join
  • UI\Draw\Stroke::getMiterLimit — Get Miter Limit
  • UI\Draw\Stroke::getThickness — Get Thickness
  • UI\Draw\Stroke::setCap — Set Line Cap
  • UI\Draw\Stroke::setJoin — Set Line Join
  • UI\Draw\Stroke::setMiterLimit — Set Miter Limit
  • UI\Draw\Stroke::setThickness — Set Thickness


Construct a new Stroke

  • « UI\Draw\Stroke
  • UI\Draw\Stroke::getCap »
  • PHP Manual
  • UI\Draw\Stroke
  • Construct a new Stroke

UI\Draw\Stroke::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::__construct — Construct a new Stroke

Description

public UI\Draw\Stroke::__construct ([ integer $cap = UI\Draw\Line\Cap::Flat [, integer $join = UI\Draw\Line\Join::Miter [, float $thickness = 1 [, float $miterLimit = 10 ]]]] )

Shall construct a new Stroke

Liste de paramètres

cap

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square

join

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel

thickness

The thickness of the stroke

miterLimit

Miter limit (default is sensible for all supported platforms)


Get Line Cap

  • « UI\Draw\Stroke::__construct
  • UI\Draw\Stroke::getJoin »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Line Cap

UI\Draw\Stroke::getCap

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::getCap — Get Line Cap

Description

public integer UI\Draw\Stroke::getCap ( void )

Shall retrieve the line cap setting of this Stroke

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square


Get Line Join

  • « UI\Draw\Stroke::getCap
  • UI\Draw\Stroke::getMiterLimit »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Line Join

UI\Draw\Stroke::getJoin

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::getJoin — Get Line Join

Description

public integer UI\Draw\Stroke::getJoin ( void )

Shall retrieve the line join setting of this Stroke

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel


Get Miter Limit

  • « UI\Draw\Stroke::getJoin
  • UI\Draw\Stroke::getThickness »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Miter Limit

UI\Draw\Stroke::getMiterLimit

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::getMiterLimit — Get Miter Limit

Description

public float UI\Draw\Stroke::getMiterLimit ( void )

Shall retrieve the miter limit of this Stroke

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current miter limit


Get Thickness

  • « UI\Draw\Stroke::getMiterLimit
  • UI\Draw\Stroke::setCap »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Thickness

UI\Draw\Stroke::getThickness

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::getThickness — Get Thickness

Description

public float UI\Draw\Stroke::getThickness ( void )

Shall retrieve the thickness of this Stroke

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current thickness


Set Line Cap

  • « UI\Draw\Stroke::getThickness
  • UI\Draw\Stroke::setJoin »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Line Cap

UI\Draw\Stroke::setCap

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::setCap — Set Line Cap

Description

public UI\Draw\Stroke::setCap ( integer $cap )

Shall set the line cap setting for this Stroke

Liste de paramètres

cap

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square


Set Line Join

  • « UI\Draw\Stroke::setCap
  • UI\Draw\Stroke::setMiterLimit »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Line Join

UI\Draw\Stroke::setJoin

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::setJoin — Set Line Join

Description

public UI\Draw\Stroke::setJoin ( integer $join )

Shall set the line join setting for this Stroke

Liste de paramètres

join

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel

Valeurs de retour


Set Miter Limit

  • « UI\Draw\Stroke::setJoin
  • UI\Draw\Stroke::setThickness »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Miter Limit

UI\Draw\Stroke::setMiterLimit

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::setMiterLimit — Set Miter Limit

Description

public UI\Draw\Stroke::setMiterLimit ( float $limit )

Set the miter limit for this Stroke

Liste de paramètres

limit

The new limit


Set Thickness

  • « UI\Draw\Stroke::setMiterLimit
  • UI\Draw\Brush »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Thickness

UI\Draw\Stroke::setThickness

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::setThickness — Set Thickness

Description

public UI\Draw\Stroke::setThickness ( float $thickness )

Shall set the thickness for this Stroke

Liste de paramètres

thickness

The new thickness


Brushes

(PHP 7, UI 0.9.9)

Introduction

Represents a solid color brush

Synopsis de la classe

UI\Draw\Brush {
/* Constructor */
public __construct ( UI\Draw\Color $color )
public __construct ( integer $color )
/* Méthodes */
public UI\Draw\Color getColor ( void )
public void setColor ( UI\Draw\Color $color )
public void setColor ( integer $color )
}

Sommaire

  • UI\Draw\Brush::__construct — Construct a new Brush
  • UI\Draw\Brush::getColor — Get Color
  • UI\Draw\Brush::setColor — Set Color


Construct a new Brush

  • « UI\Draw\Brush
  • UI\Draw\Brush::getColor »
  • PHP Manual
  • UI\Draw\Brush
  • Construct a new Brush

UI\Draw\Brush::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Brush::__construct — Construct a new Brush

Description

public UI\Draw\Brush::__construct ( UI\Draw\Color $color )
public UI\Draw\Brush::__construct ( integer $color )

Shall construct a solid brush using the given color

Liste de paramètres

color

Can be a UI\Draw\Color or RRGGBBAA


Get Color

  • « UI\Draw\Brush::__construct
  • UI\Draw\Brush::setColor »
  • PHP Manual
  • UI\Draw\Brush
  • Get Color

UI\Draw\Brush::getColor

(PHP 7, UI 0.9.9)

UI\Draw\Brush::getColor — Get Color

Description

public UI\Draw\Color UI\Draw\Brush::getColor ( void )

Shall return a UI\Draw\Color for this brush

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current color of the brush


Set Color

  • « UI\Draw\Brush::getColor
  • UI\Draw\Brush\Gradient »
  • PHP Manual
  • UI\Draw\Brush
  • Set Color

UI\Draw\Brush::setColor

(PHP 7, UI 0.9.9)

UI\Draw\Brush::setColor — Set Color

Description

public void UI\Draw\Brush::setColor ( UI\Draw\Color $color )
public void UI\Draw\Brush::setColor ( integer $color )

Shall set the color of this brush to the color provided

Liste de paramètres

color

Can be a UI\Draw\Color or RRGGBBAA

Valeurs de retour


Gradient Brushes

(PHP 7, UI 2.0.0)

Introduction

Abstract for gradient brushes

Synopsis de la classe

abstract UI\Draw\Brush\Gradient extends UI\Draw\Brush {
/* Méthodes */
public integer addStop ( float $position , UI\Draw\Color $color )
public integer addStop ( float $position , integer $color )
public integer delStop ( integer $index )
public boolean setStop ( integer $index , float $position , UI\Draw\Color $color )
public boolean setStop ( integer $index , float $position , integer $color )
/* Méthodes héritées */
public UI\Draw\Color UI\Draw\Brush::getColor ( void )
public void UI\Draw\Brush::setColor ( UI\Draw\Color $color )
public void UI\Draw\Brush::setColor ( integer $color )
}

Sommaire

  • UI\Draw\Brush\Gradient::addStop — Stop Manipulation
  • UI\Draw\Brush\Gradient::delStop — Stop Manipulation
  • UI\Draw\Brush\Gradient::setStop — Stop Manipulation


Stop Manipulation

  • « UI\Draw\Brush\Gradient
  • UI\Draw\Brush\Gradient::delStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::addStop

(PHP 7, UI 2.0.0)

UI\Draw\Brush\Gradient::addStop — Stop Manipulation

Description

public integer UI\Draw\Brush\Gradient::addStop ( float $position , UI\Draw\Color $color )
public integer UI\Draw\Brush\Gradient::addStop ( float $position , integer $color )

Shall at a stop of the given color at the given position

Liste de paramètres

position

The position for the new stop

color

The color for the new stop, may be UI\Draw\Color or RRGGBBAA

Valeurs de retour

Total number of stops


Stop Manipulation

  • « UI\Draw\Brush\Gradient::addStop
  • UI\Draw\Brush\Gradient::setStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::delStop

(PHP 7, UI 2.0.0)

UI\Draw\Brush\Gradient::delStop — Stop Manipulation

Description

public integer UI\Draw\Brush\Gradient::delStop ( integer $index )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

Valeurs de retour

Total number of stops


Stop Manipulation

  • « UI\Draw\Brush\Gradient::delStop
  • UI\Draw\Brush\LinearGradient »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::setStop

(PHP 7, UI 2.0.0)

UI\Draw\Brush\Gradient::setStop — Stop Manipulation

Description

public boolean UI\Draw\Brush\Gradient::setStop ( integer $index , float $position , UI\Draw\Color $color )
public boolean UI\Draw\Brush\Gradient::setStop ( integer $index , float $position , integer $color )

Liste de paramètres

index

The index of the stop to set

position

The position for the stop

color

The color for the stop, may be UI\Draw\Color or RRGGBBAA

Valeurs de retour

Indication of success


Linear Gradient

(PHP 7, UI 2.0.0)

Introduction

Synopsis de la classe

UI\Draw\Brush\LinearGradient extends UI\Draw\Brush\Gradient {
/* Constructor */
public __construct ( UI\Point $start , UI\Point $end )
/* Méthodes héritées */
public integer UI\Draw\Brush\Gradient::addStop ( float $position , UI\Draw\Color $color )
public integer UI\Draw\Brush\Gradient::addStop ( float $position , integer $color )
public integer UI\Draw\Brush\Gradient::delStop ( integer $index )
public boolean UI\Draw\Brush\Gradient::setStop ( integer $index , float $position , UI\Draw\Color $color )
public boolean UI\Draw\Brush\Gradient::setStop ( integer $index , float $position , integer $color )
}

Sommaire

  • UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient


Construct a Linear Gradient

  • « UI\Draw\Brush\LinearGradient
  • UI\Draw\Brush\RadialGradient »
  • PHP Manual
  • UI\Draw\Brush\LinearGradient
  • Construct a Linear Gradient

UI\Draw\Brush\LinearGradient::__construct

(PHP 7, UI 2.0.0)

UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient

Description

public UI\Draw\Brush\LinearGradient::__construct ( UI\Point $start , UI\Point $end )

Shall construct a new linear gradient

Liste de paramètres

start

end


Radial Gradient

(PHP 7, UI 2.0.0)

Introduction

Synopsis de la classe

UI\Draw\Brush\RadialGradient extends UI\Draw\Brush\Gradient {
/* Constructor */
public __construct ( UI\Point $start , UI\Point $outer , float $radius )
/* Méthodes héritées */
public integer UI\Draw\Brush\Gradient::addStop ( float $position , UI\Draw\Color $color )
public integer UI\Draw\Brush\Gradient::addStop ( float $position , integer $color )
public integer UI\Draw\Brush\Gradient::delStop ( integer $index )
public boolean UI\Draw\Brush\Gradient::setStop ( integer $index , float $position , UI\Draw\Color $color )
public boolean UI\Draw\Brush\Gradient::setStop ( integer $index , float $position , integer $color )
}

Sommaire

  • UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient


Construct a new Radial Gradient

  • « UI\Draw\Brush\RadialGradient
  • UI\Draw\Text\Layout »
  • PHP Manual
  • UI\Draw\Brush\RadialGradient
  • Construct a new Radial Gradient

UI\Draw\Brush\RadialGradient::__construct

(PHP 7, UI 2.0.0)

UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient

Description

public UI\Draw\Brush\RadialGradient::__construct ( UI\Point $start , UI\Point $outer , float $radius )

Shall construct a new radial gradient

Liste de paramètres

start

outer

radius


Represents Text Layout

(PHP 7, UI 0.9.9)

Introduction

A Text Layout represents the layout of text which will be drawn by the Pen

Synopsis de la classe

UI\Draw\Text\Layout {
/* Constructor */
public __construct ( string $text , UI\Draw\Text\Font $font , float $width )
/* Méthodes */
public setColor ( UI\Draw\Color $color [, integer $start = 0 [, integer $end ]] )
public setColor ( integer $color [, integer $start = 0 [, integer $end ]] )
public setWidth ( float $width )
}

Sommaire

  • UI\Draw\Text\Layout::__construct — Construct a new Text Layout
  • UI\Draw\Text\Layout::setColor — Set Color
  • UI\Draw\Text\Layout::setWidth — Set Width


Construct a new Text Layout

  • « UI\Draw\Text\Layout
  • UI\Draw\Text\Layout::setColor »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Construct a new Text Layout

UI\Draw\Text\Layout::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Text\Layout::__construct — Construct a new Text Layout

Description

public UI\Draw\Text\Layout::__construct ( string $text , UI\Draw\Text\Font $font , float $width )

Shall construct a new Text Layout

Liste de paramètres

text

The text for the layout

font

The font to use for writing

width

The width of the layout


Set Color

  • « UI\Draw\Text\Layout::__construct
  • UI\Draw\Text\Layout::setWidth »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Set Color

UI\Draw\Text\Layout::setColor

(PHP 7, UI 0.9.9)

UI\Draw\Text\Layout::setColor — Set Color

Description

public UI\Draw\Text\Layout::setColor ( UI\Draw\Color $color [, integer $start = 0 [, integer $end ]] )
public UI\Draw\Text\Layout::setColor ( integer $color [, integer $start = 0 [, integer $end ]] )

Shall set the Color for all of, or a range of the text in the Layout

Liste de paramètres

color

The color to use

start

The starting character

end

The ending character, by default the end of the string


Set Width

  • « UI\Draw\Text\Layout::setColor
  • UI\Draw\Text\Font »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Set Width

UI\Draw\Text\Layout::setWidth

(PHP 7, UI 0.9.9)

UI\Draw\Text\Layout::setWidth — Set Width

Description

public UI\Draw\Text\Layout::setWidth ( float $width )

Shall set the width of this Text Layout

Liste de paramètres

width

The new width


Represents a Font

(PHP 7, UI 0.9.9)

Introduction

Loads a described font

Synopsis de la classe

UI\Draw\Text\Font {
/* Constructor */
public __construct ( UI\Draw\Text\Font\Descriptor $descriptor )
/* Méthodes */
public float getAscent ( void )
public float getDescent ( void )
public float getLeading ( void )
public float getUnderlinePosition ( void )
public float getUnderlineThickness ( void )
}

Sommaire

  • UI\Draw\Text\Font::__construct — Construct a new Font
  • UI\Draw\Text\Font::getAscent — Font Metrics
  • UI\Draw\Text\Font::getDescent — Font Metrics
  • UI\Draw\Text\Font::getLeading — Font Metrics
  • UI\Draw\Text\Font::getUnderlinePosition — Font Metrics
  • UI\Draw\Text\Font::getUnderlineThickness — Font Metrics


Construct a new Font

  • « UI\Draw\Text\Font
  • UI\Draw\Text\Font::getAscent »
  • PHP Manual
  • UI\Draw\Text\Font
  • Construct a new Font

UI\Draw\Text\Font::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Text\Font::__construct — Construct a new Font

Description

public UI\Draw\Text\Font::__construct ( UI\Draw\Text\Font\Descriptor $descriptor )

Shall construct a new Font using the given descriptor

Liste de paramètres

descriptor

The descriptor for the Font


Font Metrics

  • « UI\Draw\Text\Font::__construct
  • UI\Draw\Text\Font::getDescent »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getAscent

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getAscent — Font Metrics

Description

public float UI\Draw\Text\Font::getAscent ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Font Metrics

  • « UI\Draw\Text\Font::getAscent
  • UI\Draw\Text\Font::getLeading »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getDescent

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getDescent — Font Metrics

Description

public float UI\Draw\Text\Font::getDescent ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Font Metrics

  • « UI\Draw\Text\Font::getDescent
  • UI\Draw\Text\Font::getUnderlinePosition »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getLeading

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getLeading — Font Metrics

Description

public float UI\Draw\Text\Font::getLeading ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Font Metrics

  • « UI\Draw\Text\Font::getLeading
  • UI\Draw\Text\Font::getUnderlineThickness »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getUnderlinePosition

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getUnderlinePosition — Font Metrics

Description

public float UI\Draw\Text\Font::getUnderlinePosition ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Font Metrics

  • « UI\Draw\Text\Font::getUnderlinePosition
  • UI\Draw\Text\Font\Descriptor »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getUnderlineThickness

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getUnderlineThickness — Font Metrics

Description

public float UI\Draw\Text\Font::getUnderlineThickness ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Font Descriptor

(PHP 7, UI 0.9.9)

Introduction

Describes a font

Synopsis de la classe

UI\Draw\Text\Font\Descriptor {
/* Constructor */
public __construct ( string $family , float $size [, integer $weight = UI\Draw\Text\Font\Weight::Normal [, integer $italic = UI\Draw\Text\Font\Italic::Normal [, integer $stretch = UI\Draw\Text\Font\Stretch::Normal ]]] )
/* Méthodes */
public string getFamily ( void )
public int getItalic ( void )
public float getSize ( void )
public int getStretch ( void )
public int getWeight ( void )
}

Sommaire

  • UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family
  • UI\Draw\Text\Font\Descriptor::getItalic — Style Detection
  • UI\Draw\Text\Font\Descriptor::getSize — Size Detection
  • UI\Draw\Text\Font\Descriptor::getStretch — Style Detection
  • UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection


Construct a new Font Descriptor

  • « UI\Draw\Text\Font\Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Construct a new Font Descriptor

UI\Draw\Text\Font\Descriptor::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor

Description

public UI\Draw\Text\Font\Descriptor::__construct ( string $family , float $size [, integer $weight = UI\Draw\Text\Font\Weight::Normal [, integer $italic = UI\Draw\Text\Font\Italic::Normal [, integer $stretch = UI\Draw\Text\Font\Stretch::Normal ]]] )

Shall construct a new Font Descriptor

Liste de paramètres

family

The name of a valid family of fonts

size

The preferred size

weight

UI\Draw\Text\Font\Weight constant

italic

UI\Draw\Text\Font\Italic constant

stretch

UI\Draw\Text\Font\Stretch constant


Get Font Family

  • « UI\Draw\Text\Font\Descriptor::__construct
  • UI\Draw\Text\Font\Descriptor::getItalic »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Get Font Family

UI\Draw\Text\Font\Descriptor::getFamily

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family

Description

public string UI\Draw\Text\Font\Descriptor::getFamily ( void )

Shall return the requested font family

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Style Detection

  • « UI\Draw\Text\Font\Descriptor::getFamily
  • UI\Draw\Text\Font\Descriptor::getSize »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Style Detection

UI\Draw\Text\Font\Descriptor::getItalic

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getItalic — Style Detection

Description

public int UI\Draw\Text\Font\Descriptor::getItalic ( void )

Shall return constant setting

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Size Detection

  • « UI\Draw\Text\Font\Descriptor::getItalic
  • UI\Draw\Text\Font\Descriptor::getStretch »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Size Detection

UI\Draw\Text\Font\Descriptor::getSize

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getSize — Size Detection

Description

public float UI\Draw\Text\Font\Descriptor::getSize ( void )

Shall return the requested size

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Style Detection

  • « UI\Draw\Text\Font\Descriptor::getSize
  • UI\Draw\Text\Font\Descriptor::getWeight »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Style Detection

UI\Draw\Text\Font\Descriptor::getStretch

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getStretch — Style Detection

Description

public int UI\Draw\Text\Font\Descriptor::getStretch ( void )

Shall return requested stretch

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Weight Detection

  • « UI\Draw\Text\Font\Descriptor::getStretch
  • UI Fonctions »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Weight Detection

UI\Draw\Text\Font\Descriptor::getWeight

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection

Description

public int UI\Draw\Text\Font\Descriptor::getWeight ( void )

Shall return requested weight

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


UI Fonctions

Sommaire

  • UI\Draw\Text\Font\fontFamilies — Retrieve Font Families
  • UI\quit — Quit UI Loop
  • UI\run — Enter UI Loop


Retrieve Font Families

  • « UI Fonctions
  • UI\quit »
  • PHP Manual
  • UI Fonctions
  • Retrieve Font Families

UI\Draw\Text\Font\fontFamilies

(PHP 7, UI 0.9.9)

UI\Draw\Text\Font\fontFamilies — Retrieve Font Families

Description

array UI\Draw\Text\Font\fontFamilies ( void )

Returns an array of valid font families for the current system

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Quit UI Loop

  • « UI\Draw\Text\Font\fontFamilies
  • UI\run »
  • PHP Manual
  • UI Fonctions
  • Quit UI Loop

UI\quit

(PHP 7, UI 2.0.0)

UI\quit — Quit UI Loop

Description

void UI\quit ( void )

Shall cause the main loop to be exited

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Enter UI Loop

  • « UI\quit
  • UI\Draw\Text\Font\Weight »
  • PHP Manual
  • UI Fonctions
  • Enter UI Loop

UI\run

(PHP 7, UI 2.0.0)

UI\run — Enter UI Loop

Description

void UI\run ([ integer $flags ] )

Shall cause PHP to enter into the main loop, by default control will not be returned to the caller

Liste de paramètres

flags

Set UI\Loop to return control, and UI\Wait to return control after waiting

Valeurs de retour


Font Weight Settings

(PHP 7, UI 0.9.9)

Introduction

Synopsis de la classe

final UI\Draw\Text\Font\Weight {
/* Constants */
const integer Thin ;
const integer UltraLight ;
const integer Light ;
const integer Book ;
const integer Normal ;
const integer Medium ;
const integer SemiBold ;
const integer Bold ;
const integer UltraBold ;
const integer Heavy ;
const integer UltraHeavy ;
}


Italic Font Settings

(PHP 7, UI 0.9.9)

Introduction

Synopsis de la classe

final UI\Draw\Text\Font\Italic {
/* Constants */
const integer Normal = 0 ;
const integer Oblique = 1 ;
const integer Italic = 2 ;
}


Font Stretch Settings

(PHP 7, UI 0.9.9)

Introduction

Synopsis de la classe

final UI\Draw\Text\Font\Stretch {
/* Constants */
const integer UltraCondensed = 0 ;
const integer ExtraCondensed = 1 ;
const integer Condensed = 2 ;
const integer SemiCondensed = 3 ;
const integer Normal = 4 ;
const integer SemiExpanded = 5 ;
const integer Expanded = 6 ;
const integer ExtraExpanded = 7 ;
const integer UltraExpanded = 8 ;
}


Line Cap Settings

(PHP 7, UI 0.9.9)

Introduction

Synopsis de la classe

final UI\Draw\Line\Cap {
/* Constants */
const integer Flat ;
const integer Round ;
const integer Square ;
}


Line Join Settings

(PHP 7, UI 0.9.9)

Introduction

Synopsis de la classe

final UI\Draw\Line\Join {
/* Constants */
const integer Miter ;
const integer Round ;
const integer Bevel ;
}


Key Identifiers

(PHP 7, UI 1.0.0)

Introduction

Synopsis de la classe

final UI\Key {
/* Constants */
const integer Escape ;
const integer Insert ;
const integer Delete ;
const integer Home ;
const integer End ;
const integer PageUp ;
const integer PageDown ;
const integer Up ;
const integer Down ;
const integer Left ;
const integer Right ;
const integer F1 ;
const integer F2 ;
const integer F3 ;
const integer F4 ;
const integer F5 ;
const integer F6 ;
const integer F7 ;
const integer F8 ;
const integer F9 ;
const integer F10 ;
const integer F11 ;
const integer F12 ;
const integer N0 ;
const integer N1 ;
const integer N2 ;
const integer N3 ;
const integer N4 ;
const integer N5 ;
const integer N6 ;
const integer N7 ;
const integer N8 ;
const integer N9 ;
const integer NDot ;
const integer NEnter ;
const integer NAdd ;
const integer NSubtract ;
const integer NMultiply ;
const integer NDivide ;
}


InvalidArgumentException

(PHP 7, UI 1.0.3)

Introduction

Synopsis de la classe

UI\Exception\InvalidArgumentException extends InvalidArgumentException implements Throwable {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


RuntimeException

(PHP 7, UI 1.0.3)

Introduction

Synopsis de la classe

UI\Exception\RuntimeException extends RuntimeException implements Throwable {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Méthodes héritées */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Dans le coeur de PHP : Guide du Hacker

  • Preface
  • Memory management
    • Basic memory management
    • Data persistence
    • Thread-Safe Resource Manager
  • Working with Variables
    • Introduction to Variables
    • Working with Arrays
    • Working with HashTable
    • Working with Objects
  • Writing Functions
  • Writing Classes
  • Working with Resources
  • Working with INI settings
  • Working with streams
  • The "counter" Extension - A Continuing Example
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Counter — The Counter class
    • Basic — The basic interface
    • Extended — The extended interface
  • The PHP 5 build system
    • Building PHP for extension development
    • The ext_skel script
    • Talking to the UNIX build system: config.m4
    • Talking to the Windows build system: config.w32
  • Extension structure
    • Files which make up an extension
    • Basic constructs
    • The zend_module structure
    • Extension globals
    • Life cycle of an extension
    • Testing an extension
  • PDO Driver How-To
    • Prerequisites
    • Preparation and Housekeeping
    • Fleshing out your skeleton
    • Building
    • Testing
    • Packaging and distribution
    • pdo_dbh_t definition
    • pdo_stmt_t definition
    • Constants
    • Error handling
  • Extension FAQs
  • Zend Engine 2 API reference
  • Zend Engine 2 Opcodes
    • Opcode Descriptions and Examples
  • Zend Engine 1
    • Old introduction
    • Streams API for PHP Extension Authors
    • API Zend : Modification du coeur de PHP
    • TSRM API


Preface

This section of the manual is written for the Hacker: someone thinking about getting their hands dirty, someone who wants an understanding of internals in order to advance their PHP skills, or maybe someone looking to write the next best extension. Whatever the reason, this section will seek to provide a good understanding of the internals of PHP, how to write extensions, how to understand existing code containing mystical macros. All of the important internal functionality is documented here, enough anyway to convince you to read the source.

Out of necessity, this section assumes the reader has a working knowledge of the C programming language, and associated tools, like compilers and terminal emulators and the like. You don't need to be the next Alan Turing, but a working knowledge is none the less essential for this section to be of any use. With just that working knowledge, this section should be enough to get you well on the way to earning the title Hacker, and you do have to earn it.

The documentation in this section is current as of PHP 5.3.3, deviations in API functionality are duly noted in the appropriate sections.

Avertissement

This documentation is still under development. The original Zend documentation is preserved in its entirety in the Zend Engine 1 section for those who need it before this documentation is completed.


Memory management

Sommaire

  • Basic memory management
  • Data persistence
  • Thread-Safe Resource Manager

Memory management in the Zend Engine is deceptively simple. There are some APIs to learn, and some concepts behind them to understand, but that's about all.


Basic memory management

The engine's memory management is implemented with features important to a system like PHP. The exact functionality of the engine's memory management and the optimizations performed are out of the scope of this document. However, a good understanding of its functionality provides a basis for a good understanding of the rest of the Hacker's Guide, and introduce you to terminology and functionality used throughout PHP.

The most important of its features for the Hacker, and the first thing to mention is tracking allocations. Tracking allocations allow the memory manager to avoid leaks, a thorn in the side of most Hackers. When PHP is built in debug mode (--enable-debug), detected leaks are reported, in a perfect world they would never get to deployment.

While tracking allocations is an important, and highly useful feature, the Hacker should not become lazy! Always attempt to resolve leaks before deploying your code, a memory leak in a SAPI environment can become a very big problem, very quickly.

Another, perhaps more incidental but still noteworthy, feature is that the memory manager is the part that allows a hard limit on memory usage for each instance of PHP. As we all know, there is no such thing as unlimited. If some code is running out of memory, it is likely to be written wrong, either by the Hacker, or the programmer of PHP. Limiting the memory therefore is not a restriction on the language that is supposed to be experienced in production, it is simply a way from stopping development environments from spiraling out of control when mistakes are made, and equally, when bugs are found in production.

From the Hacker's perspective, the memory management API looks very much like libc's (or whoever the Hacker prefers !) malloc implementation.

Main memory APIs
Prototype | Description
void *emalloc(size_t size) | Allocate size bytes of memory.
void *ecalloc(size_t nmemb, size_t size) | Allocate a buffer for nmemb elements of size bytes and makes sure it is initialized with zeros.
void *erealloc(void *ptr, size_t size) | Resize the buffer ptr, which was allocated using emalloc to hold size bytes of memory.
void efree(void *ptr) | Free the buffer pointed by ptr. The buffer had to be allocated by emalloc.
void *safe_emalloc(size_t nmemb, size_t size, size_t offset) | Allocate a buffer for holding nmemb blocks of each size bytes and an additional offset bytes. This is similar to emalloc(nmemb * size + offset) but adds a special protection against overflows.
char *estrdup(const char *s) | Allocate a buffer that can hold the NULL-terminated string s and copy the s into that buffer.
char *estrndup(const char *s, unsigned int length) | Similar to estrdup while the length of the NULL-terminated string is already known.

Note: The engines memory management functions do not return NULL upon failure, if memory cannot be allocated at runtime, the engine bails and raises an error.

Attention

Always use valgrind before deploying code and as a normal part of the Hacker's process. The engine can only report and detect leaks where it has allocated the memory. All of PHP is only a thin wrapper around third parties, those third parties do not use the engines memory management. Additionally, valgrind will catch errors that do not always halt or even have an apparent effect at execution time, it is just as important that there should be no errors, as it is important that avoidable leaks should be avoided.

Note: Some leaks are unavoidable, some libraries rely on the end of a process to free some of their structures, this is normal under some circumstances and acceptable where it is out of the Hacker's control.

While executing in a debug environment, configured with --enable-debug, the leak function used in the next example is actually implemented by the engine and is available to call in userland.

Exemple #1 Leak Detection in Action

ZEND_FUNCTION(leak)
{
    long leakbytes = 3;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &leakbytes) == FAILURE) {
        return;
    }

    emalloc(leakbytes);
}

L'exemple ci-dessus va afficher quelque chose de similaire à :

[Thu Oct 22 02:14:57 2009]  Script:  '-'
/home/johannes/src/PHP_5_3/Zend/zend_builtin_functions.c(1377) :  Freeing 0x088888D4 (3 bytes), script=-
=== Total 1 memory leaks detected ===

Note: USE_ZEND_ALLOC=0 in the environment will stop the memory manager from functioning, all allocations fall back on the default system allocators which can be useful for debugging leaks, and should only be used for this purpose.


Data persistence

In this context, data persistence is taken to mean any data that is intended to survive the current request. The memory management within the engine is very focused on request bound allocations, but this is not always practical or appropriate. Persistent memory is sometimes required in order to satisfy requirements of external libraries, it can also be useful while Hacking.

A common use of persistent memory is to enable persistent SQL server connections, though this practice is frowned upon, it is none the less the most common use of this feature.

Note: All of the following functions take the additional persistent parameter, should this be false, the engine will use its regular allocators (emalloc) and the memory should not be considered persistent. Where memory is allocated as persistent, system allocators are invoked, under most circumstances they are still not able to return NULL pointers just as the Main memory APIs.

Persistent memory APIs
Prototype | Description
void *pemalloc(size_t size, zend_bool persistent) | Allocate size bytes of memory.
void *pecalloc(size_t nmemb, size_t size, zend_bool persistent) | Allocate a buffer for nmemb elements of size bytes and makes sure it is initialized with zeros.
void *perealloc(void *ptr, size_t size, zend_bool persistent) | Resize the buffer ptr, which was allocated using emalloc to hold size bytes of memory.
void pefree(void *ptr, zend_bool persistent) | Free the buffer pointed by ptr. The buffer had to be allocated by pemalloc.
void *safe_pemalloc(size_t nmemb, size_t size, size_t offset, zend_bool persistent) | Allocate a buffer for holding nmemb blocks of each size bytes and an additional offset bytes. This is similar to pemalloc(nmemb * size + offset) but adds a special protection against overflows.
char *pestrdup(const char *s, zend_bool persistent) | Allocate a buffer that can hold the NULL-terminated string s and copy the s into that buffer.
char *pestrndup(const char *s, unsigned int length, zend_bool persistent) | Similar to pestrdup while the length of the NULL-terminated string is already known.
Attention

It is important to remember that memory allocated to be persistent is not optimized or tracked by the engine; it is not subject to memory_limit, additionally, all variables that are created by the Hacker for the engine must not use persistent memory.


Thread-Safe Resource Manager

When PHP is built with Thread Safety enabled, the engine requires a way to isolate contexts from one another, such that the threads of a process may service individual requests without interference. TSRM is omnipotent within PHP, extension authors have to do very little in order to make sure their extensions can function in both a Thread Safe and Non Thread Safe architecture.

Exemple #1 Accessor macros for per-module globals

#ifdef ZTS
#define COUNTER_G(v) TSRMG(counter_globals_id, zend_counter_globals *, v)
#else
#define COUNTER_G(v) (counter_globals.v)
#endif

The snippet above shows how an extension author is expected to define their global accessors. The TSRMG macro takes an identifier, type cast and element name. The identifier is assigned by TSRM during initialization of the module. Declaring global accessors in this way ensures that an extension can operate safely in a Thread Safe and Non Thread Safe architecture using the same logic.

TSRM manages the isolation and safety of all global structures within PHP, from executor globals to extension globals, a pointer to the isolated storage is also passed around with most, or many of the API functions. The macros TSRMLS_C and TSRMLS_CC translate to "thread safe local storage" and "thread safe local storage prefixed with a comma" respectively.

If a function requires a pointer to TSRM, it is declared with the macro TSRMLS_D or TSRMLS_DC in it's prototype, which translates to "thread safe local storage only" and "thread safe local storage prefixed with a comma" respectively. Many macros within the engine reference TSRM, so it is a good idea to declare most things to accept TSRM, such that if they need to call upon TSRM they do not have to fetch a pointer during execution.

Because TSRM is thread local, and some functions (for compatibility reasons) are not able to accept TSRM directly, the macro TSRMLS_FETCH exists, which requests that TSRM fetches the pointer to the thread local storage. This should be avoided wherever it can be, as it is not without cost in a Thread Safe setup.

Note: While developing extensions, build errors that contain "tsrm_ls is undefined" or errors to that effect stem from the fact that TSRMLS is undefined in the current scope, to fix this, declare the function to accept TSRMLS with the appropriate macro, if the prototype of the function in question cannot be changed, you must call TSRMLS_FETCH within the function body.

The functionality documented hereafter is aimed at advanced use of TSRM. It is not ordinary for extensions to have to interact with TSRM directly, the pecl programmer should use API's above TSRM such as the Module Globals API.

TSRM Internals
Prototype | Description
typedef int ts_rsrc_id | The type definition to represent a resource by numeric identifiers
int tsrm_startup(int expected_threads, int expected_resources, int debug_level, char *debug_filename) | expected_threads and expected_resources are not hard limits. debug_level and debug_filename only have an effect on windows in Debug mode or when TSRM_DEBUG is defined. Called once per process in ZTS mode during server startup.
void tsrm_shutdown(void) | Should be the last thing called in the process to destroy and free all storage TSRM storage in ZTS mode.
ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate_ctor ctor, ts_allocate_dtor dtor) | Allocates and thread safe pointer of size bytes, calling ctor on the pointer, assigning (and returning) the id to rsrc_id, the dtor is called when the resource is free'd. Module globals are isolated in ZTS mode using this API.
void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id) | Fetches a resource by previously allocated id from the entries created by the specified thread identifed by th_id.
void *ts_resource(ts_rsrc_id id) | Fetches a resource by previously allocated id from the entries created by the calling thread.
void ts_free_thread(void) | Destroys and frees the entries for the calling thread, currently this API is only used by ISAPI module.
void ts_free_id(ts_rsrc_id id) | Destroys the resource identified by previously allocated id. Module globals are cleaned up in ZTS mode using this API.

Note: There are more TSRM API functions to enable the creation and destruction of interpreter contexts, the usage of such functionality is out of the scope of this documentation, please see TSRM/TSRM.h for more information.

TSRM Mutex API
Prototype | Description
MUTEX_T tsrm_mutex_alloc(void) | Allocates and returns a suitable MUTEX_T for the environment.
int tsrm_mutex_lock(MUTEX_T mutexp) | Locks mutexp for the calling thread.
int tsrm_mutex_unlock(MUTEX_T mutexp) | Unlocks mutexp for the calling thread.
void tsrm_mutex_free(MUTEX_T mutexp); | Destroys and frees the (unlocked) and previously allocated mutexp.

Note: The mutex API is exposed by TSRM. However, its internal usage is far too wide to document usefully here, none the less, basic functionality and prototypes are documented here.


  • « Thread-Safe Resource Manager
  • Introduction to Variables »
  • PHP Manual
  • Dans le coeur de PHP : Guide du Hacker
  • Working with Variables

Working with Variables

Sommaire

  • Introduction to Variables
  • Working with Arrays
  • Working with HashTable
  • Working with Objects


Introduction to Variables

A good understanding of how variables are stored and manipulated is essential to becoming a Hacker. The engine attempts to cover up the complexity of the concept of a variable that can be any type by providing a uniform and intuitive set of macros for accessing the structures various fields. As the Hacker works through this chapter, they should become comfortable with the terminology and concepts involved with Variables in PHP.

Note:

PHP is a dynamic, loosely typed language, that uses copy-on-write and reference counting.

To clarify what exactly is meant by the statement above: PHP is a high level language, weak typing is implicit of the engines preference to convert, or coerce variables into the required type at execution time. Reference counting is the means by which the engine can deduce when a variable no longer has any references in the users code, and so is able to free the structures associated with the variable.

All variables in PHP are represented by one structure, the zval:

typedef struct _zval_struct {
    zvalue_value value;        /* variable value */
    zend_uint refcount__gc;    /* reference counter */
    zend_uchar type;           /* value type */
    zend_uchar is_ref__gc;     /* reference flag */
} zval;

The zval_value is a union which can represent all types a variable may hold:

typedef union _zvalue_value {
    long lval;                 /* long value */
    double dval;               /* double value */
    struct {
        char *val;
        int len;               /* this will always be set for strings */
    } str;                     /* string (always has length) */
    HashTable *ht;             /* an array */
    zend_object_value obj;     /* stores an object store handle, and handlers */
} zvalue_value;

It should be clear from the structures above that a variable can be of one type, the variable data is represented by the appropriate field in the zval_value union. The zval itself holds the type, reference count and a flag to indicate if a variable is a reference.

Native Type Constants
Constant | Mapping
IS_NULL | no value is set in this case
IS_LONG | lval
IS_DOUBLE | dval
IS_BOOL | lval
IS_RESOURCE | lval
IS_STRING | str
IS_ARRAY | ht
IS_OBJECT | obj

Note:

There are additional constants that help to identify internal types such as constant arrays and callable objects, their usage is outside the scope of this part of the documentation.

The following table defines the macros exposed by the engine for working with zval values:

Accessor Macros
Prototype | Accesses | Description
zend_uchar Z_TYPE(zval zv) | type | returns the type of the value
long Z_LVAL(zval zv) | value.lval |
zend_bool Z_BVAL(zval zv) | value.lval | cast long value to zend_bool
double Z_DVAL(zval zv) | value.dval |
long Z_RESVAL(zval zv) | value.lval | returns the resource list identifier for value
char* Z_STRVAL(zval zv) | value.str.val | return the string value
int Z_STRLEN(zval zv) | value.str.len | return the length of the string value
HashTable* Z_ARRVAL(zval zv) | value.ht | return the HashTable (array) value
zend_object_value Z_OBJVAL(zval zv) | value.obj | returns object value
uint Z_OBJ_HANDLE(zval zv) | value.obj.handle | returns the object handle for object value
zend_object_handlers* Z_OBJ_HT_P(zval zv) | value.obj.handlers | returns the handler table for object value
zend_class_entry* Z_OBJCE(zval zv) | value.obj | returns the class entry for object value
HashTable* Z_OBJPROP(zval zv) | value.obj | returns the properties of object value
HashTable* Z_OBJPROP(zval zv) | value.obj | returns the properties of object value
HashTable* Z_OBJDEBUG(zval zv) | value.obj | if an object has the get_debug_info handler set, it is called, else Z_OBJPROP is called

Please check the Bases sur le comptage des références chapter for details how reference counting and references work in detail.

Reference Count Manipulation
Prototype | Description
zend_uint Z_REFCOUNT(zval zv) | returns the reference count of the value
zend_uint Z_SET_REFCOUNT(zval zv) | sets the reference count of the value, returning it
zend_uint Z_ADDREF(zval zv) | pre-increments the reference count of value, returning it
zend_uint Z_DELREF(zval zv) | pre-decrements the reference count of value, returning it
zend_bool Z_ISREF(zval zv) | tells if the zval is a reference
void Z_UNSET_ISREF(zval zv) | set is_ref__gc to 0
void Z_SET_ISREF(zval zv) | set is_ref__gc to 1
void Z_SET_ISREF_TO(zval zv, zend_uchar to) | set is_ref__gc to to

Note:

The Z_* macros above all take a zval, they are all defined again suffixed with _P to take a pointer to a zval, for example zend_uchar Z_TYPE_P(zval* pzv), and again suffixed with _PP to take a pointer to a pointer to a zval, for example zend_uchar Z_TYPE_PP(zval** ppzv)

Creation, Destruction, Separation and Copying
Prototype | Description
ALLOC_ZVAL(zval* pzval) | emallocs pzval
ALLOC_INIT_ZVAL(zval* pzval) | emallocs pzval, and points pzval at a null typed zval for sanity
MAKE_STD_ZVAL(zval* pzval) | emallocs pzval, setting the refcount to 1
ZVAL_COPY_VALUE(zval* dst, zval* src) | sets the value and type of dst from the value and type of src
INIT_PZVAL_COPY(zval* dst, zval*dst) | performs ZVAL_COPY_VALUE, setting refcount of dst to 1, and setting is_ref__gc to 0
SEPARATE_ZVAL(zval** ppzval) | if the refcount of ppzval is >1, redirects *ppzval to a newly emalloc'd, copied, and constructed zval of the same type and value
SEPARATE_ZVAL_IF_NOT_REF(zval** ppzval) | if *ppzval is not a reference, will perform SEPARATE_ZVAL on ppzval
SEPARATE_ZVAL_TO_MAKE_IS_REF(zval** ppzval) | if *ppzval is not a reference, performs SEPARATE_ZVAL then Z_SET_ISREF_PP on ppzval
COPY_PZVAL_TO_ZVAL(zval dst, zval** src) | results in dst being a copy of src without affecting the refcount of src
MAKE_COPY_ZVAL(zval** src, zval* dst) | performs INIT_PZVAL_COPY, then zval_copy_ctor on the new zval
void zval_copy_ctor(zval** pzval) | performs maintenance of reference counts, used widely throughout the engine
void zval_ptr_dtor(zval* pzval) | decrements the refcount for the variable, if no refcounts remain the variable is destroyed
FREE_ZVAL(zval* pzval) | efrees pzval

Note:

Objects and Resources have a reference count as part of their respective structures, when zval_ptr_dtor is called on either, their appropriate del_ref method is executed. See Working with Objects and Working with Resources for more information.

If the Hacker only has room to remember two more functions, they should be zval_copy_ctor and zval_ptr_dtor, these are at the basis of the engines reference counting mechanisms and it is important to note that zval_copy_ctor does not actually result in any copying occuring under normal circumstances, it simply increases the reference count. By the same token, zval_ptr_dtor only really destroys a variable when there are no references remaining to it and the refcount is at 0.

PHP is weakly typed, as such the engine provides API functions for converting variables from one type to another.

Type Conversion
Prototype
void convert_to_long(zval* pzval)
void convert_to_double(zval* pzval)
void convert_to_long_base(zval* pzval, int base)
void convert_to_null(zval* pzval)
void convert_to_boolean(zval* pzval)
void convert_to_array(zval* pzval)
void convert_to_object(zval* pzval)
void convert_object_to_type(zval* pzval, convert_func_t converter)

Note:

convert_func_t functions should have the prototype (void) (zval* pzval)

By now you should have a good understanding of: the types that are native to the engine, how to detect types and read zval values, how to manipulate refcounts, and other zval flags


Working with Arrays

Arrays are stored in HashTable strucures, and have the zval type IS_ARRAY. The API functions for creating, destroying and manipulating these structures as variables are documented here and can be found in Zend/zend_API.h

HashTable as Variable API
Prototype | Description
void array_init(zval* pzval) | initializes the variable as a HashTable, setting type and appropriate destructor function for the HashTable
void array_init_size(zval* pzval) | initializes the variable as array_init with a minimum of size buckets

Note:

Do not squint too hard looking for array_destroy: to destroy a variable array you should call zval_ptr_dtor on the variable, if there are no other references to the variable it will result in the array being destroyed.

Indexed Arrays API
Prototype
int add_index_long(zval* pzval, ulong index, long value)
int add_index_null(zval* pzval, ulong index)
int add_index_bool(zval* pzval, ulong index, zend_bool value)
int add_index_bool(zval* pzval, ulong index, zend_bool value)
int add_index_resource(zval* pzval, ulong index, uint value)
int add_index_double(zval* pzval, ulong index, double value)
int add_index_string(zval* pzval, ulong index, char* string, zend_bool duplicate)
int add_index_stringl(zval* pzval, ulong index, char* string, uint length, zend_bool duplicate)
int add_index_zval(zval* pzval, ulong index, zval* value)
int add_next_index_long(zval* pzval, long value)
int add_next_index_null(zval* pzval)
int add_next_index_bool(zval* pzval, zend_bool value)
int add_next_index_resource(zval* pzval, uint value)
int add_next_index_double(zval* pzval, double value)
int add_next_index_string(zval* pzval, const char* string, zend_bool dulpicate)
int add_next_index_stringl(zval* pzval, const char* string, uint length, zend_bool duplicate)
int add_next_index_zval(zval* pzval, zval* value)
Associative Arrays API
Prototype
int add_assoc_long(zval* pzval, const char* key, long value)
int add_assoc_long_ex(zval* pzval, const char* key, uint klen, long value)
int add_assoc_null(zval* pzval, const char* key)
int add_assoc_null_ex(zval* pzval, const char* key, uint klen)
int add_assoc_bool(zval* pzval, const char* key, zend_bool value)
int add_assoc_bool(zval* pzval, const char* key, zend_bool value)
int add_assoc_bool_ex(zval* pzval, const char* key, uint klen, zend_bool value)
int add_assoc_resource(zval* pzval, const char* key, uint value)
int add_assoc_resource_ex(zval* pzval, const char* key, uint klen, uint value)
int add_assoc_double(zval* pzval, const char* key, double value)
int add_assoc_double_ex(zval* pzval, const char* key, uint klen, double value)
int add_assoc_string(zval* pzval, const char* key, const char* value)
int add_assoc_string_ex(zval* pzval, const char* key, uint klen, const char* value)
int add_assoc_stringl(zval* pzval, const char* key, const char* value, uint vlen, zend_bool duplicate)
int add_assoc_stringl_ex(zval* pzval, const char* key, uint klen, const char* value, uint vlen, zend_bool duplicate)
int add_assoc_zval(zval* pzval, const char* key, zval* value)
int add_assoc_zval_ex(zval* pzval, const char* key, uint klen, zval* value)

Note:

add_*_string functions that accept a parameter named duplicate, will duplicate the string with estrndup when duplicate is true

Note:

add_*_zval functions do not adjust the refcount of the value parameter

To perform more advanced operations on array variables we must use the HashTable API directly.


Working with HashTable

The HashTable structure serves many purposes in PHP and can be found everywhere, a good understanding of it's functionality is a preqrequisite of being a good Hacker.

The HashTable implemented by the engine is a standard HashTable, that is to say, a key => value based store, where the keys are always strings, whose hashes are calculated with a built in hashing algorithm zend_inline_hash_func(const char* key, uint length), which results in good distribution, and reasonable usage.

The internal structure and exact operation of HashTable is out of the scope of this document, this document serves to inform you of the API's available and how best to use them. For a more detailed picture of the HashTable see Zend/zend_hash.h.

Unless otherwise stated, these functions all return FAILURE if the requested operation fails for any reason, otherwise SUCCESS is returned.

Note:

It is important to remember that ordinarily HashTable API functions expect key lengths to be the length of the null terminated string, including the null termination, in other words they expect strlen(key) + 1

Below are some typedefs you should know when interacting with HashTable. They are mostly self explanitory and will allow the Hacker to fully understand the prototypes below properly.

typedef ulong (*hash_func_t)(const char *arKey, uint nKeyLength); /* mostly redundant */
typedef int  (*compare_func_t)(const void *, const void * TSRMLS_DC); /* comparison function */
typedef void (*sort_func_t)(void *, size_t, register size_t, compare_func_t TSRMLS_DC); /* sorting function */
typedef void (*dtor_func_t)(void *pDest); /* destructor function */
typedef void (*copy_ctor_func_t)(void *pElement); /* copy constructor */
typedef void (*copy_ctor_param_func_t)(void *pElement, void *pParam); /* copy with argument constructor */
typedef int (*apply_func_t)(void *pDest TSRMLS_DC); /* apply function */
typedef int (*apply_func_arg_t)(void *pDest, void *argument TSRMLS_DC); /* apply with argument function */
typedef int (*apply_func_args_t)(void *pDest TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key); /* apply with multiple arguments function */
HashTable API
int zend_hash_init(HashTable* ht, uint size, hash_func_t hash, dtor_func_t destructor, zend_bool persistent)
Initializes the hash table to hold at least size elements, hash exists for historical reasons and is always ignored, zend_inline_hash_func is always used as the hashing function. destructor may be NULL.
int zend_hash_add(HashTable* ht, const char* key, uint klen, void* data, uint dlen, void** dest)
adds data to the table using the specified key, where the key is length bytes long (and will be copied from key to the table). If the key is set FAILURE will be returned.
int zend_hash_update(HashTable* ht, const char* key, uint klen, void* data, uint dlen, void** dest)
adds data to the table using the specified key, where the key is length bytes long (and will be copied from key to the table). If the key has been set previously the old data has dtor_func_t called on it and the existing data is replaced with data
int zend_hash_find(HashTable* ht, const char* key, uint klen, void** data)
searches the table for key, setting *data and returning SUCCESS if it is found.
zend_bool zend_hash_exists(HashTable* ht, const char* key, uint klen)
returns positively if key is found in ht
int zend_hash_del(HashTable* ht, const char* key, uint klen)
removes the entry identified by key from the table if found
int zend_hash_index_update(HashTable* ht, ulong index, void* data, uint dsize, void** dest)
updates the entry at index in ht, with the data at data
int zend_hash_index_del(HashTable* ht, ulong index)
deletes the entry at index from ht
int zend_hash_index_find(HashTable* ht, ulong index, void** data)
redirects *data to the data identified by index in ht
int zend_hash_index_exists(HashTable* ht, ulong index)
returns positively if index is found in ht
ulong zend_hash_next_free_element(HashTable* ht)
returns the index of the next free element in ht
Attention

zend_hash_* functions that accept void* data should normally cast it to (void**) (ie, (void**) &data)

Traversing the HashTable is often necessary, to do this you provide a pointer to a HashTable, with an optional HashPosition - a structure internal to the HashTable API that allows traversal not to affect the internal position of HashTable. The following traversal functions are provided, and an example usage found below.

HashTable Traversal API
int zend_hash_internal_pointer_reset(HashTable* ht)
resets the internal pointer of ht to the start
int zend_hash_internal_pointer_reset_ex(HashTable* ht, HashPosition position)
sets position the the start of ht
int zend_hash_get_current_data(HashTable* ht, void* data)
gets the data at the current position in ht, data should be cast to void**, ie: (void**) &data
int zend_hash_get_current_data_ex(HashTable* ht, void* data, HashPosition position)
sets data to the data at position in ht
int zend_hash_get_current_key(HashTable* ht, void* data, char**key, uint klen, ulong index, zend_bool duplicate)
sets key, klen, and index from the key information at the current position. The possible return values HASH_KEY_IS_STRING and HASH_KEY_IS_LONG are indicative of the kind of key found at the current posision.
int zend_hash_get_current_key_ex(HashTable* ht, void* data, char**key, uint klen, ulong index, zend_bool duplicate, HashPosition position)
sets key, klen, and index from the key information at position. The possible return values HASH_KEY_IS_STRING and HASH_KEY_IS_LONG are indicative of the kind of key found at position.
int zend_hash_move_forward(HashTable* ht)
moves the internal pointer of ht to the next entry in ht
int zend_hash_move_forward_ex(HashTable* ht, HashPosition position)
moves position to the next entry in ht

The functions above allow traversal over a HashTable to be much like a normal loop, which will look something like:

HashPosition position;
zval **data = NULL;

for (zend_hash_internal_pointer_reset_ex(ht, &position);
     zend_hash_get_current_data_ex(ht, (void**) &data, &position) == SUCCESS;
     zend_hash_move_forward_ex(ht, &position)) {

     /* by now we have data set and can use Z_ macros for accessing type and variable data */

     char *key = NULL;
     uint  klen;
     ulong index;

     if (zend_hash_get_current_key_ex(ht, &key, &klen, &index, 0, &position) == HASH_KEY_IS_STRING) {
         /* the key is a string, key and klen will be set */
     } else {
         /* we assume the key to be long, index will be set */
     }
}

Note:

If a HashTable has been passed into the engine, it is a good idea to use the zend_hash_*_ex API to avoid unexpected behaviour in userland.

Note:

If a duplicate of the key is requested and HAS_KEY_IS_STRING is returned the caller must efree the duplicated key

In addition to traversal, the engine provides API functions for merging, copying, and comparing HashTables. These are all concepts that the Hacker should be familiar with. A concept possibly not in the repertoire of the Hacker is applying, which is lamens terms is functionality of the HashTable API allowing the Hacker to pass a callback function to be executed on every entry in a HashTable.

Copying, Merging and Sorting
void zend_hash_copy(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, void *tmp, uint size)
Copies the contents of source to target. tmp should be an unallocated temporary pointer of the appropriate type, used during copying. size is the size of each element.
void zend_hash_merge(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, void *tmp, uint size, zend_bool overwrite)
Merges the contents of source into destination, replacing existing entries only where overwrite is true.
void int zend_hash_sort(HashTable *ht, sort_func_t sort_func, compare_func_t compare_func, int renumber TSRMLS_DC)
renumber controls if indexes should be preserved, see the typedefs at the start of this section for more information

Note:

When a function accepts a copy_ctor_func_t pCopyConstructor, the function passed with be executed upon creation of every new entry in the HashTable. The most common copy constructor used within the engine is a wrapper around zval_copy_ctor, the macro ZVAL_COPY_CTOR.


  • « Working with HashTable
  • Writing Functions »
  • PHP Manual
  • Working with Variables
  • Working with Objects

Working with Objects


Writing Functions

Functions and Methods in PHP take much the same form, a method is simply a function with a specific scope; the scope of their class entry. The Hacker will read about class entries in other sections of the Hacker's guide. The purpose of this section is to introduce the Hacker to the anatomy of a function or method; the Hacker will learn how to define functions, how to accept variables and how to return variables to the programmer of PHP.

The anatomy of a function could not be simpler:

PHP_FUNCTION(hackers_function) {
  /* your accepted arguments here */
  long number;

  /* accepting arguments */
  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &number) != SUCCESS) {
      return;
  }

  /* do some work on the input */
  number *= 2;

  /* set return value */
  RETURN_LONG(number);
}

The PHP_FUNCTION(hackers_function) preprocessor instruction will result in the following declaration:

void zif_hackers_function(INTERNAL_FUNCTION_PARAMETERS)

INTERNAL_FUNCTION_PARAMETERS is defined as a macro and explained in the following table:

INTERNAL_FUNCTION_PARAMETERS
Name and type | Description | Access macros
int ht | Number of actual parameters passed by user | ZEND_NUM_ARGS()
zval *return_value | Pointer to a PHP variable that can be filled with the return value passed to the user. The default type is IS_NULL. | RETVAL_*, RETURN_*
zval **return_value_ptr | When returning references to PHP set this to a pointer to your variable. It is not suggested to return references. |
zval *this_ptr | If this is a method call, points to the PHP variable holding the $this object. | getThis()
int return_value_used | Flag indicating whether the returned value will be used by the caller. |

For clarity, the fully expanded declaration for PHP_FUNCTION(hackers_function) looks like:

void zif_hackers_function(int ht, zval* return_value, zval** return_value_ptr, zval* this_ptr, int return_value_used)

The presence of this_ptr may be confusing, classes are covered in detail in later sections, suffice to say that PHP_METHOD(MyClass, hackersFunction) would result in the following declaration:

void zim_MyClass_hackersFunction(INTERNAL_FUNCTION_PARAMETERS)

hackers_function doesn't do anything useful, it accepts a number using the zend_parse_parameters API, doubles it, and returns it to the engine. It is obvious that a normal function would have to do something more complex than double the input, for the purposes of education we are keeping it simple. On entry to the function return_value is allocated and initialized to null, making null the default return value of any function in PHP.

If zend_parse_parameters does not recieve what is specified by the Hacker as the correct arguments, and the arguments recieved cannot be converted to conform with type_spec an error will be raised, and by convention, the Hacker should return immediately.

Note:

Arrays, Objects, and Resources cannot be converted.

Parsing Parameters Prototypes
int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...)
int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...)
int zend_parse_parameter(int flags, int arg_num TSRMLS_DC, zval **arg, const char *spec, ...)

Note:

zend_parse_parameter is available from version 5.5, it behaves like zend_parse_parameters_ex except that instead of reading the arguments from the stack, it receives a single zval to convert, which may be changed in place.

Note:

flags is intended to be a mask, currently only ZEND_PARSE_PARAMS_QUIET will have any impact (supress warnings)

The variable arguments recieved by these API functions are expected to be the address of C variables, and should be considered the output of the zend_parse_parameters API functions.

Type Specifiers
Spec | Type | Locals
a | array | zval*
A | array or object | zval*
b | boolean | zend_bool
C | class | zend_class_entry*
d | double | double
f | function | zend_fcall_info*, zend_fcall_info_cache*
h | array | HashTable*
H | array or object | HashTable*
l | long | long
L | long (limits out-of-range LONG_MAX/LONG_MIN) | long
o | object | zval*
O | object (of specified zend_class_entry) | zval*, zend_class_entry*
p | string (a valid path) | char*, int
r | resource | zval*
s | string | char*, int
z | mixed | zval*
Z | mixed | zval**

Note:

Where the type specifier is O, the local zend_class_entry* is to be considered input (part of the type spec) to zend_parse_parameter

Advanced Type Specifiers
Spec | Description
* | a variable number of argument of the preceeding type, 0 or more
+ | a variable number of argument of the preceeding type, 1 or more
| | indicates that the remaining parameters are optional
/ | SEPARATE_ZVAL_IF_NOT_REF on the parameter it follows
! | the preceeding parameter can be of the specified type or null For 'b', 'l' and 'd', an extra argument of type zend_bool* must be passed after the corresponding bool*, long* or double* addresses which will be set true if null is recieved.

Note:

Consult README.PARAMETER_PARSING_API included in source distributions for more information on parsing parameters

Once the Hacker's function has executed whatever it was implemented to execute, it is time to set the return_value for the engine. The RETURN_ and RETVAL_ macros are just wrappers around Z_*_P macros that work with return_value.

Note:

RETURN_ macros cause execution to leave the function immediately (ie: return;), while RETVAL_ macros allow execution to continue after return_value has been set.

The Hacker should now have a reasonable understanding of the anatomy of a function, and to some degree, the anatomy of a method.


  • « Writing Functions
  • Working with Resources »
  • PHP Manual
  • Dans le coeur de PHP : Guide du Hacker
  • Writing Classes

Writing Classes


  • « Writing Classes
  • Working with INI settings »
  • PHP Manual
  • Dans le coeur de PHP : Guide du Hacker
  • Working with Resources

Working with Resources

This section will serve to introduce the Hacker to the concept and usage of Resources in PHP.


  • « Working with Resources
  • Working with streams »
  • PHP Manual
  • Dans le coeur de PHP : Guide du Hacker
  • Working with INI settings

Working with INI settings


  • « Working with INI settings
  • The "counter" Extension - A Continuing Example »
  • PHP Manual
  • Dans le coeur de PHP : Guide du Hacker
  • Working with streams

Working with streams

Note:

Information on using streams within the PHP source code can be found in the Streams API for PHP Extension Authors reference.


The "counter" Extension - A Continuing Example

Sommaire

  • Installation/Configuration
  • Constantes pré-définies
  • Exemples
  • Counter
  • Basic
  • Extended

Preface

Throughout this Zend documentation, references are made to an example module in order to illustrate various concepts. The "counter" extension is this example, a fictional yet functional Zend module which strives to use as much of the Zend API as is reasonably possible. This short chapter describes the userland interface to the completed extension.

Note: "counter" serves no practical purpose whatsoever, as the functionality it provides is far more effectively implemented by appropriate userland code.


  • « The "counter" Extension - A Continuing Example
  • Introduction »
  • PHP Manual
  • The "counter" Extension - A Continuing Example
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Introduction
  • Configuration à l'exécution
  • Types de ressources


Introduction

The "counter" extension provides any number of counters to PHP code using it which reset at times determined by the caller.

There are three interfaces to "counter": basic, extended, and objective. The basic interface provides a single counter controlled by INI settings and function calls. The extended interface provides an arbitrary number of named counter resources which may optionally persist beyond the lifetime of a single PHP request. The objective interface combines both the basic and extended interfaces into a Counter class.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Counter configuration options
Name | Default | Changeable | Changelog
counter.reset_time | COUNTER_RESET_PER_REQUEST | PHP_INI_ALL |
counter.save_path | "" | PHP_INI_ALL |
counter.initial_value | "0" | PHP_INI_ALL |

Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

counter.reset_time integer
counter.reset_time tells "counter" to reset the counter used by the basic interface. It may be any of the COUNTER_RESET_* constants (see below).
counter.save_path string
Tells "counter" where to save data that has to persist between invocations of PHP (i.e. any counter that has COUNTER_RESET_NEVER or COUNTER_FLAG_SAVE). A file will be created at this path, which must be readable and writable to whatever user PHP is running as.
counter.initial_value integer
Sets the initial value of the counter used by the basic interface whenever it is reset.


  • « Configuration à l'exécution
  • Constantes pré-définies »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

The "counter" extension defines one resource type: a counter.


Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

COUNTER_FLAG_PERSIST (integer)
A counter with this flag will be created as a persistent resource.
COUNTER_FLAG_SAVE (integer)
A counter with this flag will be saved between invocations of PHP.
COUNTER_FLAG_NO_OVERWRITE (integer)
This flag causes counter_create() to avoid overwriting an existing named counter with a new one.
COUNTER_META_NAME (string)
Pass this constant to get the name of a counter resource or object.
COUNTER_META_IS_PERISTENT (string)
Pass this constant to determine whether a counter resource or object is persistent (has the COUNTER_FLAG_PERSIST flag).
COUNTER_RESET_NEVER (integer)
The counter will never be reset.
COUNTER_RESET_PER_LOAD (integer)
The counter will be reset on each invocation of PHP.
COUNTER_RESET_PER_REQUEST (integer)
The counter will be reset on each request.


  • « Constantes pré-définies
  • Basic interface »
  • PHP Manual
  • The "counter" Extension - A Continuing Example
  • Exemples

Exemples

Sommaire

  • Basic interface
  • Extended interface
  • Objective interface


Basic interface

The basic interface provides three simple functions, illustrated here:

Exemple #1 "counter"'s basic interface

<?php
$starting_counter_value = counter_get();
counter_bump(1);
$second_counter_value = counter_get();
counter_reset();
$final_counter_value = counter_get();
printf("%3d %3d %3d", $starting_counter_value, $second_counter_value, $final_counter_value);
?>

L'exemple ci-dessus va afficher :

  0   1   0

The basic interface also provides a number of INI settings.


Extended interface

The extended interface provides a small suite of functions that allow the user to define an arbitrary number of named counters with unique settings. The basic interface can be used in parallel with the extended interface.

Exemple #1 "counter"'s extended interface

<?php
function print_counter_info($counter)
{
    if (is_resource($counter)) {
        printf("Counter's name is '%s' and is%s persistent. Its current value is %d.\n",
            counter_get_meta($counter, COUNTER_META_NAME),
            counter_get_meta($counter, COUNTER_META_IS_PERSISTENT) ? '' : ' not',
            counter_get_value($counter));
    } else {
      print "Not a valid counter!\n";
    }
}

if (($counter_one = counter_get_named("one")) === NULL) {
    $counter_one = counter_create("one", 0, COUNTER_FLAG_PERSIST);
}
counter_bump_value($counter_one, 2);
$counter_two = counter_create("two", 5);
$counter_three = counter_get_named("three");
$counter_four = counter_create("four", 2, COUNTER_FLAG_PERSIST | COUNTER_FLAG_SAVE | COUNTER_FLAG_NO_OVERWRITE);
counter_bump_value($counter_four, 1);

print_counter_info($counter_one);
print_counter_info($counter_two);
print_counter_info($counter_three);
print_counter_info($counter_four);
?>

When run once, the above example outputs:

Counter's name is 'one' and is persistent. Its current value is 2.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 3.

If run a second time within the same instance of PHP, it outputs:

Counter's name is 'one' and is persistent. Its current value is 4.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 4.

If then run a third time in a different instance of PHP, it outputs:

Counter's name is 'one' and is persistent. Its current value is 2.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 5.


Objective interface

The objective interface provides an object-oriented way to access the extended interfaces. The following example shows how the above one would be implemented using the objective interface. The output of this example is exactly the same, except that instead of printing "Not a valid counter!", this will instead issue a PHP warning that the variable $counter_three is not an object. This example shows that it is possible to subclass the Counter class defined by the extension, as well as that the counter's value is maintained using an instance variable rather than method access.

Exemple #1 "counter"'s objective interface

<?php
class MyCounter extends Counter
{
    public function printCounterInfo() {
        printf("Counter's name is '%s' and is%s persistent. Its current value is %d.\n",
            $this->getMeta(COUNTER_META_NAME),
            $this->getMeta(COUNTER_META_IS_PERSISTENT) ? '' : ' not',
            $this->value);
    }
}

Counter::setCounterClass("MyCounter");
if (($counter_one = Counter::getNamed("one")) === NULL) {
    $counter_one = new Counter("one", 0, COUNTER_FLAG_PERSIST);
}
$counter_one->bumpValue(2); // we aren't allowed to "set" the value directly
$counter_two = new Counter("two", 5);
$counter_three = Counter::getNamed("three");
$counter_four = new Counter("four", 2, COUNTER_FLAG_PERSIST | COUNTER_FLAG_SAVE | COUNTER_FLAG_NO_OVERWRITE);
$counter_four->bumpValue(1);

$counter_one->printCounterInfo();
$counter_two->printCounterInfo();
$counter_three->printCounterInfo();
$counter_four->printCounterInfo();
?>


The Counter class

Introduction

Represents a single counter object.

Synopsis de la classe

Counter {
__construct ( string $name [, integer $initial_value [, integer $flags ]] )
integer getValue ( void )
bumpValue ( integer $offset )
voidresetValue ( void )
mixed getMeta ( integer $attribute )
static Counter getNamed ( string $name )
static voidsetCounterClass ( string $name )
}

Sommaire

  • Counter::__construct — Creates an instance of a Counter which maintains a single numeric value.
  • Counter::getValue — Get the current value of a counter.
  • Counter::bumpValue — Change the current value of a counter.
  • Counter::resetValue — Reset the current value of a counter.
  • Counter::getMeta — Return a piece of metainformation about a counter.
  • Counter::getNamed — Retrieve an existing named counter.
  • Counter::setCounterClass — Set the class returned by Counter::getNamed.


Creates an instance of a Counter which maintains a single numeric value.

  • « Counter
  • Counter::getValue »
  • PHP Manual
  • Counter
  • Creates an instance of a Counter which maintains a single numeric value.

Counter::__construct

Counter::__construct — Creates an instance of a Counter which maintains a single numeric value.

Description

Counter::__construct ( string $name [, integer $initial_value [, integer $flags ]] )

Creates an instance of a Counter which maintains a single numeric value.

Liste de paramètres

name
The new counter's name.
initial_value
The initial value of the counter. Defaults to zero (0).
flags
Flags for the new counter, chosen from the COUNTER_FLAG_* constants.

Valeurs de retour

Returns a Counter object on success.

Erreurs / Exceptions

Counter::__construct() throws an Exception if something goes wrong.


Get the current value of a counter.

  • « Counter::__construct
  • Counter::bumpValue »
  • PHP Manual
  • Counter
  • Get the current value of a counter.

Counter::getValue

Counter::getValue — Get the current value of a counter.

Description

integer Counter::getValue ( void )

Counter::getValue() returns the current value of a counter.

Valeurs de retour

Counter::getValue() returns an integer.

Voir aussi

  • Counter::bumpValue() - Change the current value of a counter.
  • Counter::resetValue() - Reset the current value of a counter.


Change the current value of a counter.

  • « Counter::getValue
  • Counter::resetValue »
  • PHP Manual
  • Counter
  • Change the current value of a counter.

Counter::bumpValue

Counter::bumpValue — Change the current value of a counter.

Description

Counter::bumpValue ( integer $offset )

Counter::bumpValue() updates the current value of a counter.

Liste de paramètres

offset
The amount by which to change the counter's value. Can be negative.

Voir aussi

  • Counter::getValue() - Get the current value of a counter.
  • Counter::resetValue() - Reset the current value of a counter.


Reset the current value of a counter.

  • « Counter::bumpValue
  • Counter::getMeta »
  • PHP Manual
  • Counter
  • Reset the current value of a counter.

Counter::resetValue

Counter::resetValue — Reset the current value of a counter.

Description

voidCounter::resetValue ( void )

Counter::resetValue() resets the current value of a counter to its original initial value.

Voir aussi

  • Counter::getValue() - Get the current value of a counter.
  • Counter::bumpValue() - Change the current value of a counter.


Return a piece of metainformation about a counter.

  • « Counter::resetValue
  • Counter::getNamed »
  • PHP Manual
  • Counter
  • Return a piece of metainformation about a counter.

Counter::getMeta

Counter::getMeta — Return a piece of metainformation about a counter.

Description

mixed Counter::getMeta ( integer $attribute )

Counter::getMeta() returns metainformation about a counter.

Liste de paramètres

attribute
The metainformation to retrieve.

Valeurs de retour

Counter::getMeta() returns values of varying types based on which metainformation was requested.


Retrieve an existing named counter.

  • « Counter::getMeta
  • Counter::setCounterClass »
  • PHP Manual
  • Counter
  • Retrieve an existing named counter.

Counter::getNamed

Counter::getNamed — Retrieve an existing named counter.

Description

static Counter Counter::getNamed ( string $name )

Counter::getNamed() returns an existing counter by name if that name exists, or NULL otherwise. This is a static function.

Liste de paramètres

name
The counter name to search for.

Valeurs de retour

Counter::getNamed() returns an existing counter by name if that name exists, or NULL otherwise.


Set the class returned by Counter::getNamed.

  • « Counter::getNamed
  • Basic »
  • PHP Manual
  • Counter
  • Set the class returned by Counter::getNamed.

Counter::setCounterClass

Counter::setCounterClass — Set the class returned by Counter::getNamed().

Description

static voidCounter::setCounterClass ( string $name )

Counter::setCounterClass() changes the class of objects returned by Counter::getNamed(). The class being set must not have a public constructor and must be a subclass of Counter. If these conditions are not met, a fatal error is raised. This is a static function.

Liste de paramètres

name
The name of the class to use.


The basic interface

Sommaire

  • counter_get — Get the current value of the basic counter.
  • counter_bump — Update the current value of the basic counter.
  • counter_reset — Reset the current value of the basic counter.


Get the current value of the basic counter.

  • « Basic
  • counter_bump »
  • PHP Manual
  • Basic
  • Get the current value of the basic counter.

counter_get

counter_get — Get the current value of the basic counter.

Description

integer counter_get ( void )

counter_get() returns the current value of the basic interface's counter.

Valeurs de retour

counter_get() returns an integer.

Voir aussi

  • counter_bump() - Update the current value of the basic counter.
  • counter_reset() - Reset the current value of the basic counter.


Update the current value of the basic counter.

  • « counter_get
  • counter_reset »
  • PHP Manual
  • Basic
  • Update the current value of the basic counter.

counter_bump

counter_bump — Update the current value of the basic counter.

Description

voidcounter_bump ( integer $offset )

counter_bump() updates the current value of the basic interface's counter.

Liste de paramètres

offset
The amount by which to change the counter's value. Can be negative.

Voir aussi

  • counter_get() - Get the current value of the basic counter.
  • counter_reset() - Reset the current value of the basic counter.


Reset the current value of the basic counter.

  • « counter_bump
  • Extended »
  • PHP Manual
  • Basic
  • Reset the current value of the basic counter.

counter_reset

counter_reset — Reset the current value of the basic counter.

Description

voidcounter_reset ( void )

counter_reset() resets the current value of the basic interface's counter to its original initial value.

Voir aussi

  • counter_get() - Get the current value of the basic counter.
  • counter_bump() - Update the current value of the basic counter.


The extended interface

Sommaire

  • counter_create — Creates a counter which maintains a single numeric value.
  • counter_get_value — Get the current value of a counter resource.
  • counter_bump_value — Change the current value of a counter resource.
  • counter_reset_value — Reset the current value of a counter resource.
  • counter_get_meta — Return a piece of metainformation about a counter resource.
  • counter_get_named — Retrieve an existing named counter as a resource.


Creates a counter which maintains a single numeric value.

  • « Extended
  • counter_get_value »
  • PHP Manual
  • Extended
  • Creates a counter which maintains a single numeric value.

counter_create

counter_create — Creates a counter which maintains a single numeric value.

Description

resource counter_create ( string $name [, integer $initial_value [, integer $flags ]] )

Creates a counter which maintains a single numeric value.

Liste de paramètres

name
The new counter's name.
initial_value
The initial value of the counter. Defaults to zero (0).
flags
Flags for the new counter, chosen from the COUNTER_FLAG_* constants.

Valeurs de retour

Returns a counter resource.


Get the current value of a counter resource.

  • « counter_create
  • counter_bump_value »
  • PHP Manual
  • Extended
  • Get the current value of a counter resource.

counter_get_value

counter_get_value — Get the current value of a counter resource.

Description

integer counter_get_value ( resource $counter )

counter_get_value() returns the current value of a counter resource.

Liste de paramètres

counter
The counter resource to operate on.

Valeurs de retour

counter_get_value() returns an integer.

Voir aussi

  • counter_bump_value() - Change the current value of a counter resource.
  • counter_reset_value() - Reset the current value of a counter resource.


Change the current value of a counter resource.

  • « counter_get_value
  • counter_reset_value »
  • PHP Manual
  • Extended
  • Change the current value of a counter resource.

counter_bump_value

counter_bump_value — Change the current value of a counter resource.

Description

voidcounter_bump_value ( resource $counter , integer $offset )

counter_bump_value() updates the current value of a counter resource.

Liste de paramètres

counter
The counter resource to operate on.
offset
The amount by which to change the counter's value. Can be negative.

Voir aussi

  • counter_get_value() - Get the current value of a counter resource.
  • counter_reset_value() - Reset the current value of a counter resource.


Reset the current value of a counter resource.

  • « counter_bump_value
  • counter_get_meta »
  • PHP Manual
  • Extended
  • Reset the current value of a counter resource.

counter_reset_value

counter_reset_value — Reset the current value of a counter resource.

Description

voidcounter_reset_value ( resource $counter )

counter_reset_value() resets the current value of a counter resource to its original initial value.

Liste de paramètres

counter
The counter resource to operate on.

Voir aussi

  • counter_get_value() - Get the current value of a counter resource.
  • counter_bump_value() - Change the current value of a counter resource.


Return a piece of metainformation about a counter resource.

  • « counter_reset_value
  • counter_get_named »
  • PHP Manual
  • Extended
  • Return a piece of metainformation about a counter resource.

counter_get_meta

counter_get_meta — Return a piece of metainformation about a counter resource.

Description

mixed counter_get_meta ( resource $counter , integer $attribute )

counter_get_meta() returns metainformation about a counter resource.

Liste de paramètres

counter
The counter resource to operate on.
attribute
The metainformation to retrieve.

Valeurs de retour

counter_get_meta() returns values of varying types based on which metainformation was requested.


Retrieve an existing named counter as a resource.

  • « counter_get_meta
  • The PHP 5 build system »
  • PHP Manual
  • Extended
  • Retrieve an existing named counter as a resource.

counter_get_named

counter_get_named — Retrieve an existing named counter as a resource.

Description

resource Counter::getNamed ( string $name )

counter_get_named() returns an existing counter by name if that name exists, or NULL otherwise.

Liste de paramètres

name
The counter name to search for.

Valeurs de retour

counter_get_name() returns an existing counter by name if that name exists, or NULL otherwise.


The PHP 5 build system

Sommaire

  • Building PHP for extension development
  • The ext_skel script
  • Talking to the UNIX build system: config.m4
  • Talking to the Windows build system: config.w32

With all the functionality and flexibility available in PHP 5, it is no surprise that it consists of several thousand files and over one million lines of source code. Equally unsurprising is the necessity of a build system to manage so much data. This section describes how to set PHP up for extension development, the layout of an extension within the PHP source tree, and how to interface your extension with the build system.


Building PHP for extension development

In a typical PHP installation, the need for high performance almost always results in optimization at the cost of debugging facilities. This is a reasonable tradeoff for production use, but when developing an extension it falls short. What we need is a build of PHP which will give us some hints what has gone wrong when something does.

The Zend Engine provides a memory manager which is capable of tracking memory leaks in extensions and providing detailed debugging information. This tracking is disabled by default, as is thread-safety. To turn them on, pass the --enable-debug and --enable-maintainer-zts options to configure, along with whatever options you typically use. For instructions on building PHP from source, see the instructions at Considérations générales sur l'installation. A typical configure line might look like this:

$ ./configure --prefix=/where/to/install/php --enable-debug --enable-maintainer-zts --enable-cgi --enable-cli --with-mysql=/path/to/mysql


The ext_skel script

A PHP extension is composed of several files common to all extensions. As the details of many of those files are similar from extension to extension, it can be laborious to duplicate the content for each one. Fortunately, there is a script which can do all of the initial setup for you. It's called ext_skel, and it's been distributed with PHP since 4.0.

Running ext_skel with no parameters produces this output in PHP 5.2.2:

php-5.2.2/ext$ ./ext_skel
./ext_skel --extname=module [--proto=file] [--stubs=file] [--xml[=file]]
           [--skel=dir] [--full-xml] [--no-help]

  --extname=module   module is the name of your extension
  --proto=file       file contains prototypes of functions to create
  --stubs=file       generate only function stubs in file
  --xml              generate xml documentation to be added to phpdoc-cvs
  --skel=dir         path to the skeleton directory
  --full-xml         generate xml documentation for a self-contained extension
                     (not yet implemented)
  --no-help          don't try to be nice and create comments in the code
                     and helper functions to test if the module compiled
Generally, when developing a new extension the only parameters you will be interested in are --extname and --no-help. Unless you are already experienced with the structure of an extension, you will not want to use --no-help; specifying it causes ext_skel to leave out many helpful comments in the files it generates.

This leaves you with --extname, which tells ext_skel what the name of your extension is. This "name" is an all-lowercase identifier containing only letters and underscores which is unique among everything in the ext/ folder of your PHP distribution.

The --proto option is intended to allow the developer to specify a header file from which a set of PHP functions will be created, ostensibly for the purpose of developing an extension based on a library, but it often functions poorly with most modern header files. A test run on the zlib.h header resulted in a very large number of empty and nonsense prototypes in the ext_skel output files. The --xml and --full-xml options are entirely nonfunctional thus far. The --skel option can be used to specify a modified set of skeleton files to work from, a topic which is beyond the scope of this section.


Talking to the UNIX build system: config.m4

The config.m4 file for an extension tells the UNIX build system what configure options your extension supports, what external libraries and includes you require, and what source files are to be compiled as part of it. A reference to all the commonly used autoconf macros, both PHP-specific and those built into autoconf, is given in the Zend Engine 2 API reference section.

Astuce

The version of autoconf you have installed makes a difference when developing an extension. For PHP 5.3 and earlier, you will have the best results with autoconf version 2.13 but versions up to and including 2.59 will work. For PHP 5.4 and later the oldest autoconf version you can use is 2.59 and you will have better results with later versions.

Exemple #1 An example config.m4 file

dnl $Id$
dnl config.m4 for extension example
PHP_ARG_WITH(example, for example support,
[  --with-example[=FILE]       Include example support. File is the optional path to example-config])
PHP_ARG_ENABLE(example-debug, whether to enable debugging support in example,
[  --enable-example-debug        example: Enable debugging support in example], no, no)
PHP_ARG_WITH(example-extra, for extra libraries for example,
[  --with-example-extra=DIR      example: Location of extra libraries for example], no, no)

dnl Check whether the extension is enabled at all
if test "$PHP_EXAMPLE" != "no"; then

  dnl Check for example-config. First try any path that was given to us, then look in $PATH
  AC_MSG_CHECKING([for example-config])
  EXAMPLE_CONFIG="example-config"
  if test "$PHP_EXAMPLE" != "yes"; then
    EXAMPLE_PATH=$PHP_EXAMPLE
  else
    EXAMPLE_PATH=`$php_shtool path $EXAMPLE_CONFIG`
  fi

  dnl If a usable example-config was found, use it
  if test -f "$EXAMPLE_PATH" && test -x "$EXAMPLE_PATH" && $EXAMPLE_PATH --version > /dev/null 2>&1; then
    AC_MSG_RESULT([$EXAMPLE_PATH])
    EXAMPLE_LIB_NAME=`$EXAMPLE_PATH --libname`
    EXAMPLE_INCDIRS=`$EXAMPLE_PATH --incdirs`
    EXAMPLE_LIBS=`$EXAMPLE_PATH --libs`

    dnl Check that the library works properly
    PHP_CHECK_LIBRARY($EXAMPLE_LIB_NAME, example_critical_function,
    [
      dnl Add the necessary include dirs
      PHP_EVAL_INCLINE($EXAMPLE_INCDIRS)
      dnl Add the necessary libraries and library dirs
      PHP_EVAL_LIBLINE($EXAMPLE_LIBS, EXAMPLE_SHARED_LIBADD)
    ],[
      dnl Bail out
      AC_MSG_ERROR([example library not found. Check config.log for more information.])
    ],[$EXAMPLE_LIBS]
    )
  else
    dnl No usable example-config, bail
    AC_MSG_RESULT([not found])
    AC_MSG_ERROR([Please check your example installation.])
  fi

  dnl Check whether to enable debugging
  if test "$PHP_EXAMPLE_DEBUG" != "no"; then
    dnl Yes, so set the C macro
    AC_DEFINE(USE_EXAMPLE_DEBUG,1,[Include debugging support in example])
  fi

  dnl Check for the extra support
  if test "$PHP_EXAMPLE_EXTRA" != "no"; then
    if test "$PHP_EXAMPLE_EXTRA" == "yes"; then
      AC_MSG_ERROR([You must specify a path when using --with-example-extra])
    fi

    PHP_CHECK_LIBRARY(example-extra, example_critical_extra_function,
    [
      dnl Add the neccessary paths
      PHP_ADD_INCLUDE($PHP_EXAMPLE_EXTRA/include)
      PHP_ADD_LIBRARY_WITH_PATH(example-extra, $PHP_EXAMPLE_EXTRA/lib, EXAMPLE_SHARED_LIBADD)
      AC_DEFINE(HAVE_EXAMPLEEXTRALIB,1,[Whether example-extra support is present and requested])
      EXAMPLE_SOURCES="$EXAMPLE_SOURCES example_extra.c"
    ],[
      AC_MSG_ERROR([example-extra lib not found. See config.log for more information.])
    ],[-L$PHP_EXAMPLE_EXTRA/lib]
    )
  fi

  dnl Finally, tell the build system about the extension and what files are needed
  PHP_NEW_EXTENSION(example, example.c $EXAMPLE_SOURCES, $ext_shared)
  PHP_SUBST(EXAMPLE_SHARED_LIBADD)
fi

A short introduction to autoconf syntax

config.m4 files are written using the GNU autoconf syntax. It can be described in a nutshell as shell scripting augmented by a powerful macro language. Comments are delimited by the string dnl, and strings are quoted using left and right brackets (e.g. [ and ]). Quoting of strings can be nested as many times as needed. A full reference to the syntax can be found in the autoconf manual at » http://www.gnu.org/software/autoconf/manual/.

PHP_ARG_*: Giving users the option

The very first thing seen in the example config.m4 above, aside from a couple of comments, are three lines using PHP_ARG_WITH() and PHP_ARG_ENABLE(). These provide configure with the options and help text seen when running ./configure --help. As the names suggest, the difference between the two is whether they create a --with-* option or an --enable-* option. Every extension should provide at least one or the other with the extension name, so that users can choose whether or not to build the extension into PHP. By convention, PHP_ARG_WITH() is used for an option which takes a parameter, such as the location of a library or program required by an extension, while PHP_ARG_ENABLE() is used for an option which represents a simple flag.

Exemple #2 Sample configure output

$ ./configure --help
...
  --with-example[=FILE]       Include example support. FILE is the optional path to example-config
  --enable-example-debug        example: Enable debugging support in example
  --with-example-extra=DIR      example: Location of extra libraries for example
...

$ ./configure --with-example=/some/library/path/example-config --disable-example-debug --with-example-extra=/another/library/path
...
checking for example support... yes
checking whether to enable debugging support in example... no
checking for extra libraries for example... /another/library/path
...

Note:

Regardless of the order in which options are specified on the command line when configure is called, the checks will be run in the order they are specified in config.m4.

Processing the user's choices

Now that config.m4 can provide the user with some choices of what to do, it's time to act upon those choices. In the example above, the obvious default for all three options, if any of them are unspecified, is "no". As a matter of convention, it is best to use this as the default for the option which enables the extension, as it will be overridden by phpize for extensions built separately, and should not clutter the extension space by default when being built into PHP. The code to process the three options is by far the most complicated.

Handling the --with-example[=FILE] option

The first check made of the --with-example[=FILE] option is whether it was set at all. As this option controls the inclusion of the entire extension, if it was unspecified, given in the negative form (--without-example ), or given the value "no", nothing else is done at all. In the example above, it is specified with the value /some/library/path/example-config, so the first test succeeds.

Next, the code calls AC_MSG_CHECKING(), an autoconf macro which outputs a standard "checking for something" line, and checks whether the user gave an explicit path to the fictional example-config. In this example, PHP_EXAMPLE got the value /some/library/path/example-config, which is now copied into the EXAMPLE_PATH variable. Had the user specified only --with-example , the code would have executed $php_shtool path $EXAMPLE_CONFIG, which would try to guess the location of example-config using the user's current PATH. Either way, the next step is to check whether the chosen EXAMPLE_PATH is a regular file, is executable, and can be run successfully. If so, AC_MSG_RESULT() is called, which completes the output line started by AC_MSG_CHECKING(). Otherwise, AC_MSG_ERROR() is called, which prints the given message and halts configure immediately.

The code now determines some site-specific configuration information by running example-config several times. The next call is to PHP_CHECK_LIBRARY(), a macro provided by the PHP buildsystem as a wrapper around autoconf's AC_CHECK_LIB(). PHP_CHECK_LIBRARY() attempts to compile, link, and run a program which calls the symbol specified by the second parameter in the library specified by the first, using the string given in the fifth as extra linker options. If the attempt succeeds, the script given in the third parameter is run. This script tells the PHP buildsystem to extract include paths, library paths, and library names from the raw option strings example-config provided. If the attempt fails, the script in the fourth parameter is run instead. In this case, AC_MSG_ERROR() is called to stop processing.

Handling the --enable-example-debug option

Processing the --enable-example-debug is much simpler. A simple check for its truth value is performed. If that check succeeds, AC_DEFINE() is called to make the C macro USE_EXAMPLE_DEBUG available to the source of the extension. The third parameter is a comment string for config.h; it is safe to leave this empty, and often is.

Handling the --with-example-extra=DIR option

For the sake of this example, the fictional "extra" functionality requested by the --with-example-extra=DIR option does not share the fictional example-config program, nor does it have any default paths to search. Therefore, the user is required to provide the installation prefix of the necessary library. This setup is somewhat unlikely in a real-world extension, but is considered illustrative.

The code begins in a now-familiar way by checking the truth value of PHP_EXAMPLE_EXTRA. If a negative form was provided, no further processing is done; the user did not request extra functionality. If a positive form was provided without a parameter, AC_MSG_ERROR() is called to halt processing. The next step is another invocation of PHP_CHECK_LIBRARY(). This time, since there is no set of predefined compiler options provided, PHP_ADD_INCLUDE() and PHP_ADD_LIBRARY_WITH_PATH() are used to construct the necessary include paths, library paths, and library flags for the extra functionality. AC_DEFINE() is also called to indicate to the code that the extra functionality was both requested and available, and a variable is set to tell later code that there are extra source files to build. If the check fails, the familiar AC_MSG_ERROR() is called. A different way to handle the failure would have been to call AC_MSG_WARNING() instead, e.g.:

AC_MSG_WARNING([example-extra lib not found. example will be built without extra functionality.])

In this case, configure would print a warning message rather than an error, and continue processing. Which way such failures are handled is a design decision left to the extension developer.

Telling the buildsystem what was decided

With all the necessary includes and libraries specified, with all the options processed and macros defined, one more thing remains to be done: The build system must be told to build the extension itself, and which files are to be used for that. To do this, the PHP_NEW_EXTENSION() macro is called. The first parameter is the name of the extension, which is the same as the name of the directory containing it. The second parameter is the list of all source files which are part of the extension. See PHP_ADD_BUILD_DIR() for information about adding source files in subdirectories to the build process. The third parameter should always be $ext_shared, a value which was determined by configure when PHP_ARG_WITH() was called for --with-example[=FILE] . The fourth parameter specifies a "SAPI class", and is only useful for extensions which require the CGI or CLI SAPIs specifically. It should be left empty in all other cases. The fifth parameter specifies a list of flags to be added to CFLAGS while building the extension; the sixth is a boolean value which, if "yes", will force the entire extension to be built using $CXX instead of $CC. All parameters after the third are optional. Finally, PHP_SUBST() is called to enable shared builds of the extension. See Extension FAQs for more information on disabling support for building an extension in shared mode.

The counter extension's config.m4 file

The counter extension previously documented has a much simpler config.m4 file than that described above, as it doesn't make use of many buildsystem features. This is a preferred method of operation for any extension that doesn't use an external or bundled library.

Exemple #3 counter's config.m4 file

dnl
$
Id$
dnl config.m4 for extension counter

PHP_ARG_ENABLE(counter, for counter support,
[  --enable-counter            Include counter support])

dnl Check whether the extension is enabled at all
if test "$PHP_COUNTER" != "no"; then
  dnl Finally, tell the build system about the extension and what files are needed
  PHP_NEW_EXTENSION(counter, counter.c counter_util.c, $ext_shared)
  PHP_SUBST(COUNTER_SHARED_LIBADD)
fi


Talking to the Windows build system: config.w32

An extension's config.w32 file is similar in usage to the config.m4 file, with two critical differences: first, it is used for Windows builds, and second, it is written in JavaScript. This section makes no attempt to cover JavaScript syntax. For the moment, this section is incomplete in lieu of a Win32 testbed, and an experimental-only port of the example config.m4 is the only example provided.

Exemple #1 An example config.w32 file

// $Id$
// vim:ft=javascript
ARG_WITH("example", "for example support", "no");
ARG_ENABLE("example-debug", "for debugging support in example", "no")
ARG_WITH("example-extra", "for extra functionality in example", "no")
if (PHP_EXAMPLE != "no") {
    if (CHECK_LIB("libexample.lib", "example", PHP_EXAMPLE) &&
        CHECK_HEADER_ADD_INCLUDE("example.h", "CFLAGS_EXAMPLE", PHP_EXAMPLE + "\\include")) {

        if (PHP_EXAMPLE_DEBUG != "no") {
            AC_DEFINE('USE_EXAMPLE_DEBUG', 1, 'Debug support in example');
        }

        if (PHP_EXAMPLE_EXTRA != "no" &&
            CHECK_LIB("libexample-extra.lib", "example", PHP_EXAMPLE) &&
            CHECK_HEADER_ADD_INCLUDE("example-extra.h", "CFLAGS_EXAMPLE", PHP_EXAMPLE + ";" + PHP_PHP_BUILD + "\\include") {
            AC_DEFINE('HAVE_EXAMPLEEXTRA', 1, 'Extra functionality in example');
            HAVE_EXTRA = 1;
        } else {
            WARNING( "extra example functionality not enabled, lib not found" );
        }

        EXTENSION("example", "example.c");
        if (HAVE_EXTRA == 1) {
            ADD_SOURCES("example-extra.c");
        }
    } else {
        WARNING( "example not enabled; libraries not found" );
    }
}

The counter extension's config.w32 file

The counter extension previously documented has a much simpler config.w32 file than that described above, as it doesn't make use of many buildsystem features.

Exemple #2 counter's config.w32 file

// $Id$
// vim:ft=javascript
ARG_ENABLE("counter", "for counter support", "no");
if (PHP_COUNTER != "no") {
    EXTENSION("counter", "counter.c");
    ADD_SOURCE("counter-util.c");
}


Extension structure

Sommaire

  • Files which make up an extension
  • Basic constructs
  • The zend_module structure
  • Extension globals
  • Life cycle of an extension
  • Testing an extension

Many extension-writing guides focus on simple examples first and ignore the requirements of more complex implementations until later. Often such guides must repeat themselves over and over in order to describe these new features. This section describes extension structure from the perspective of a mature, practical implementation, in order to prepare users for needs and issues they will almost always encounter in the process of extension development.


Files which make up an extension

Whether created by hand, using ext_skel, or by an alternate extension generator, such as » CodeGen, all extensions will have at least four files:

config.m4

UNIX build system configuration (see Talking to the UNIX build system: config.m4)

config.w32

Windows buildsystem configuration (see Talking to the Windows build system: config.w32)

php_counter.h

When building an extension as static module into the PHP binary the build system expects a header file with php_ prepended to the extension name which includes a declaration for a pointer to the extension's module structure. This file usually contains additional macros, prototypes, and globals, just like any header.

counter.c

Main extension source file. By convention, the name of this file is the extension name, but this is not a requirement. This file contains the module structure declaration, INI entries, management functions, userspace functions, and other requirements of an extension.

The buildsystem files are discussed elsewhere; this section concentrates on the rest. These four files make up the bare minimum for an extension, which may also contain any number of headers, source files, unit tests, and other support files. The list of files in the counter extension might look like this:

Exemple #1 Files in the counter extension, in no particular order

ext/
 counter/
  .svnignore
  config.m4
  config.w32
  counter_util.h
  counter_util.c
  php_counter.h
  counter.c
  package.xml
  CREDITS
  tests/
   critical_function_001.phpt
   critical_function_002.phpt
   optional_function_001.phpt
   optional_function_002.phpt

Non-source files

The .svnignore file is used for extensions which are checked into the PHP Subversion repository (usually » PECL); the one generated by ext_skel contains:

.deps
*.lo
*.la

These lines tell Subversion to ignore interim files generated by the PHP buildsystem. This is only a convenience, and can be omitted completely without ill effect.

The CREDITS file lists the contributors and/or maintainers of the extension in plain text format. The main purpose of this file is generating the credits information for bundled extensions as used by phpcredits(). By convention the first line of the file should hold the name of the extension, the second a comma separated list of contributors. The contributors are usually ordered by the chronological order of their contributions. In a » PECL package, this information is already maintained in package.xml, for example. This is another file which can be omitted without ill effect.

The package.xml file is specific to » PECL-based extensions; it is a metainformation file which gives details about an extension's dependencies, authors, installation requirements, and other tidbits. In an extension not being hosted in » PECL, this file is extraneous.


Basic constructs

C is a very low-level language by modern definitions. This means that it has no built-in support for many features that PHP takes for granted, such as reflection, dynamic module loading, bounds checking, threadsafe data management and various useful data structures including linked lists and hash tables. At the same time, C is a common denominator of language support and functionality. Given enough work, none of these concepts are impossible; the Zend Engine uses them all.

A lot of effort has gone into making the Zend API both extensible and understandable, but C forces certain necessary declarations upon any extension that to an inexperienced eye seem redundant or plain unnecessary. All of those constructs, detailed in this section, are "write once and forget" in Zend Engine 2 and 3. Here are some excerpts from the pre-generated php_counter.h and counter.c files created by PHP 5.3's ext_skel, showing the pre-generated declarations:

Note: The astute reader will notice that there are several declarations in the real files that aren't shown here. Those declarations are specific to various Zend subsystems and are discussed elsewhere as appropriate.

extern zend_module_entry counter_module_entry;
#define phpext_counter_ptr &counter_module_entry

#ifdef PHP_WIN32
#    define PHP_COUNTER_API __declspec(dllexport)
#elif defined(__GNUC__) && __GNUC__ >= 4
#    define PHP_COUNTER_API __attribute__ ((visibility("default")))
#else
#    define PHP_COUNTER_API
#endif

#ifdef ZTS
#include "TSRM.h"
#endif

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_counter.h"

/* ... */

#ifdef COMPILE_DL_COUNTER
ZEND_GET_MODULE(counter)
#endif
  • The lines concerning counter_module_entry declare a global variable, and a macroed pointer to it, which contains the zend_module_entry for the extension. Despite the later discussion regarding the drawbacks of "true" globals, this usage is intentional; Zend takes precautions to avoid misusing this variable.
  • PHP_COUNTER_API is declared for use by non-PHP functions the module intends to export for the use of other modules. The counter extension doesn't declare any of these, and in the final version of the header file, this macro has been removed. The PHPAPI macro is declared identically elsewhere and is used by the standard extension to make the phpinfo() utility functions available to other extensions.
  • The include of TSRM.h is skipped if PHP, or the extension, isn't being compiled with thread-safety, since in that case TSRM isn't used.
  • A standard list of includes, especially the extension's own php_counter.h, is given. config.h gives the extension access to determinations made by configure. php.h is the gateway to the entire PHP and Zend APIs. php_ini.h adds the APIs for runtime configuration (INI) entries. Not all extensions will use this. Finally, ext/standard/info.h imports the aforementioned phpinfo() utility API.
  • COMPILE_DL_COUNTER will only be defined by configure if the counter extension is both enabled and wants to be built as a dynamically loadable module instead of being statically linked into PHP. ZEND_GET_MODULE defines a tiny function which Zend can use to get the extension's zend_module_entry at runtime.

    Note: The astute reader who has peeked into main/php_config.h after trying to build with the counter module enabled statically may have noticed that there is also a HAVE_COUNTER constant defined that the source code doesn't check for. There's a simple reason this check isn't done: It's unnecessary. If the extension isn't enabled, the source file will never be compiled.


The zend_module structure

The main source file of a PHP extension contains several new constructs for a C programmer. The most important of these, the one touched first when starting a new extension, is the zend_module structure. This structure contains a wealth of information that tells the Zend Engine about the extension's dependencies, version, callbacks, and other critical data. The structure has mutated considerably over time; this section will focus on the structure as it has appeared since PHP 5.2, and will identify the very few parts which have changed in PHP 5.3.

The zend_module declaration from counter.c looks like this before any code has been written. The example file was generated by ext_skel --extname=counter, with some obsolete constructs removed:

Exemple #1 zend_module declaration in the counter extension

/* {{{ counter_module_entry
 */
zend_module_entry counter_module_entry = {
    STANDARD_MODULE_HEADER,
    "counter",
    counter_functions,
    PHP_MINIT(counter),
    PHP_MSHUTDOWN(counter),
    PHP_RINIT(counter),        /* Replace with NULL if there's nothing to do at request start */
    PHP_RSHUTDOWN(counter),    /* Replace with NULL if there's nothing to do at request end */
    PHP_MINFO(counter),
    "0.1", /* Replace with version number for your extension */
    STANDARD_MODULE_PROPERTIES
};
/* }}} */

This may look a bit daunting at first glance, but most of it is very simple to understand. Here's the declaration of zend_module from zend_modules.h in PHP 5.3:

Exemple #2 zend_module definition in PHP 5.3

struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    const struct _zend_ini_entry *ini_entry;
    const struct _zend_module_dep *deps;
    const char *name;
    const struct _zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    const char *version;
    size_t globals_size;
#ifdef ZTS
    ts_rsrc_id* globals_id_ptr;
#else
    void* globals_ptr;
#endif
    void (*globals_ctor)(void *global TSRMLS_DC);
    void (*globals_dtor)(void *global TSRMLS_DC);
    int (*post_deactivate_func)(void);
    int module_started;
    unsigned char type;
    void *handle;
    int module_number;
};

Many of these fields will never be touched by an extension writer. There are a number of standard macros that set them to their proper values automatically. The macro STANDARD_MODULE_HEADER fills in everything up to the deps field. Alternatively, the STANDARD_MODULE_HEADER_EX will leave the deps field empty for the developer's use. The developer is always responsible for everything from name to version. After that, the STANDARD_MODULE_PROPERTIES macro will fill in the rest of the structure, or the STANDARD_MODULE_PROPERTIES_EX macro can be used to leave the extension globals and post-deactivation function fields unfilled. Most modern extensions will make use of module globals.

Note:

This table gives the values that each field would have if the developer were to fill in the structure entirely by hand, without recourse to any of the shortcut macros. This is not recommended. The "correct" values for many fields may change. Use the macros whenever possible.

Module structure field values
Field | Value | Description
size [1] [2] [3] | sizeof(zend_module_entry) | The size in bytes of the structure.
zend_api [1] [2] [3] | ZEND_MODULE_API_NO | The version of the Zend API this module was compiled against.
zend_debug [1] [2] [3] | ZEND_DEBUG | A flag indicating whether the module was compiled with debugging turned on.
zts [1] [2] [3] | USING_ZTS | A flag indicating whether the module was compiled with ZTS (TSRM) enabled (see Memory management).
ini_entry [1] [3] | NULL | This pointer is used internally by Zend to keep a non-local reference to any INI entries declared for the module.
deps [3] | NULL | A pointer to a list of dependencies for the module.
name | "mymodule" | The name of the module. This is the short name, such as "spl" or "standard".
functions | mymodule_functions | A pointer to the module's function table, which Zend uses to expose functions in the module to user space.
module_startup_func | PHP_MINIT(mymodule) | A callback function that Zend will call the first time a module is loaded into a particular instance of PHP.
module_shutdown_func | PHP_MSHUTDOWN(mymodule) | A callback function that Zend will call the when a module is unloaded from a particular instance of PHP, typically during final shutdown.
request_startup_func | PHP_RINIT(mymodule) | A callback function that Zend will call at the beginning of each request. This should be as short as possible or NULL as calling this has costs on every request.
request_shutdown_func | PHP_RSHUTDOWN(mymodule) | A callback function that Zend will call at the end of each request. This should be as short as possible or NULL as calling this has costs on every request.
info_func | PHP_MINFO(mymodule) | A callback function that Zend will call when the phpinfo() function is called.
version | NO_VERSION_YET | A string giving the version of the module, as specified by the module developer. It is recommended that the version number be either in the format expected by version_compare() (e.g. "1.0.5-dev"), or a CVS or SVN revision number (e.g. "$Rev: 322138 $").
globals_size [1] [4] [5] [6] | sizeof(zend_mymodule_globals) | The size of the data structure containing the module's globals, if any.
globals_id_ptr [1] [4] [5] [6] [7] | &mymodule_globals_id | Only one of these two fields will exist, depending upon whether the USING_ZTS constant is TRUE. The former is an index into TSRM's allocation table for the module's globals, and the latter is a pointer directly to the globals.
globals_ptr [1] [4] [5] [6] [8] | &mymodule_globals
globals_ctor [4] [5] [6] | PHP_GINIT(mymodule) | This funtion is called to initialize a module's globals before any module_startup_func.
globals_dtor [4] [5] [6] | PHP_GSHUTDOWN(mymodule) | This funtion is called to deallocate a module's globals after any module_shutdown_func.
post_deactivate_func [4] | ZEND_MODULE_POST_ZEND_DEACTIVATE_N(mymodule) | This function is called by Zend after request shutdown. It is rarely used.
module_started [1] [9] [4] | 0 | These fields are used for Zend's internal tracking information.
type [1] [9] [4] | 0
handle [1] [9] [4] | NULL
module_number [1] [9] [4] | 0
[1] This field is not intended for use by module developers. [2] This field is filled in by STANDARD_MODULE_HEADER_EX. [3] This field is filled in by STANDARD_MODULE_HEADER. [4] This field is filled in by STANDARD_MODULE_PROPERTIES. [5] This field is filled in by NO_MODULE_GLOBALS. [6] This field is filled in by PHP_MODULE_GLOBALS. [7] This field only exists when USING_ZTS is TRUE. [8] This field only exists when USING_ZTS is FALSE. [9] This field is filled in by STANDARD_MODULE_PROPERTIES_EX.

Filling in the structure in a practical situation

With all these fields to play with, it can be confusing to know which to use for what purpose. Here is the zend_module definition from the "counter" example extension after updating it to its final form.

Exemple #3 Counter extension module definition

/* {{{ counter_module_entry
 */
zend_module_entry counter_module_entry = {
    STANDARD_MODULE_HEADER,
    "counter",
    counter_functions,
    PHP_MINIT(counter),
    PHP_MSHUTDOWN(counter),
    PHP_RINIT(counter),
    PHP_RSHUTDOWN(counter),
    PHP_MINFO(counter),
    NO_VERSION_YET,
    PHP_MODULE_GLOBALS(counter),
    PHP_GINIT(counter),
    PHP_GSHUTDOWN(counter),
    NULL,
    STANDARD_MODULE_PROPERTIES_EX
};
/* }}} */
  • STANDARD_MODULE_HEADER is used since this module doesn't define any dependencies.
  • "counter" is the extension's name, and is used to define the various callback functions the module passes to Zend. "counter" uses module, globals, and request functions at startup and shutdown times, and provides information to phpinfo(), so all seven callbacks are defined.
  • It is assumed that there is a variable of type zend_function_entry * named counter_functions earlier in the file that contains the module definition, listing the functions the module exports to userspace.
  • NO_VERSION_YET is a particularly nice way of telling Zend the module doesn't have a version. It might have been more correct to place "1.0" here instead in a real module.
  • "counter" uses per-module globals, so PHP_MODULE_GLOBALS is used
  • This module has no post-deactivate function, so NULL is used.
  • Since this module does use globals, STANDARD_MODULE_PROPERTIES_EX is used to finish the structure.

What's changed between 5.2 and 5.3?

Nothing. The only differences in the zend_module structure between PHP 5.2 and PHP 5.3 are a few const keywords.


Extension globals

Introduction to globals in a PHP extension

In a language such as C, a "global" variable is a variable that can be accessed from any function without any extra declaration. These traditional globals have a few drawbacks:

  • Barring any special options passed to the compiler, a global variable can be accessed and changed by any piece of code anywhere in the program, whether or not that code should be doing so.
  • A typical global variable is not thread safe.
  • The names of global variables are as global as the variables themselves.

A PHP extension's globals are more properly called the "extension state", since most modules must remember what they're doing between function calls. The "counter" extension is a perfect example of this need: The basic interface calls for a counter with a persistent value. A programmer new to Zend and PHP might do something like this in counter.c to store that value:

Exemple #1 The wrong way to store the basic counter interface's value

/* ... */
static long basic_counter_value;

/* ... */

PHP_FUNCTION(counter_get)
{
    RETURN_LONG(basic_counter_value);
}

On the surface this appears a viable solution, and indeed in a simple test it would function correctly. However, there are a number of situations in which more than one copy of PHP is running in the same thread, which means more than one instance of the counter module. Suddenly these multiple threads are sharing the same counter value, which is clearly undesirable. Another problem shows itself when considering that another extension might someday happen to have a global with the same name, and due to the rules of C scoping, this has the potential to cause a compile failure, or worse, a runtime error. Something more elaborate is needed, and so exists Zend's support for thread-safe per-module globals.

Declaring module globals

Whether a module uses only a single global or dozens, they must be defined in a structure, and that structure must be declared. There are some macros that assist with doing so in a way that avoids name conflicts between modules: ZEND_BEGIN_MODULE_GLOBALS(), ZEND_END_MODULE_GLOBALS(), and ZEND_DECLARE_MODULE_GLOBALS(). All three take as a parameter the short name of the module, which in the case of the counter module is simply "counter". Here is the global structure declaration from php_counter.h:

Exemple #2 The counter module's globals

ZEND_BEGIN_MODULE_GLOBALS(counter)
    long        basic_counter_value;
ZEND_END_MODULE_GLOBALS(counter)

And this is the declaration from counter.c:

Exemple #3 The counter module's global structure declaration

ZEND_DECLARE_MODULE_GLOBALS(counter)

Accessing module globals

As discussed above, per-module globals are declared inside a C structure whose name is obscured by Zend macros. As a result, the ideal way to access members of this structure is by the use of further macros. Accordingly, most if not all extensions which have globals have a declaration like this somewhere in their header file:

Exemple #4 Accessor macros for per-module globals

#ifdef ZTS
#define COUNTER_G(v) TSRMG(counter_globals_id, zend_counter_globals *, v)
#else
#define COUNTER_G(v) (counter_globals.v)
#endif

Note: This could have been generalized into a macro of its own by the Zend API, but as of PHP 5.3 (and PHP 6 at the time of this writing), that hasn't happened. The global accessor construct is written into the header by ext_skel and thus is generally left alone by extension writers, unless they wish to change the name of the accessor macro.

Note: COUNTER_G was the name given to the macro by ext_skel, but it's not necessary for it to have that name and could just as easily be called FOO instead.

Any code in the counter extension that accesses a global must thus wrap it in the macro COUNTER_G.

Avertissement

Any function which accesses globals must either be declared by Zend macros, have TSRMLS_DC as its last argument, or call the macro TSRMLS_FETCH before accessing the globals. See the TSRM documentation for more information.

So with all of that in mind, here is our new version of the counter_get():

Exemple #5 The right way to store the basic counter interface's value

/* php_counter.h */
ZEND_BEGIN_MODULE_GLOBALS(counter)
    long        basic_counter_value;
ZEND_END_MODULE_GLOBALS(counter)

#ifdef ZTS
#define COUNTER_G(v) TSRMG(counter_globals_id, zend_counter_globals *, v)
#else
#define COUNTER_G(v) (counter_globals.v)
#endif

/* counter.c */
ZEND_DECLARE_MODULE_GLOBALS(counter)

/* ... */

PHP_FUNCTION(counter_get)
{
    RETURN_LONG(COUNTER_G(basic_counter_value));
}

This is a correct implementation. It is not, however, a complete one. The section Life cycle of an extension explains why.


Life cycle of an extension

A PHP extension goes through several phases during its lifetime. All of these phases are opportunities for the developer to perform various initialization, termination, or informational functions. The Zend API allows for hooks into five separate phases of an extension's existence, apart from calls by PHP functions.

Loading, unloading, and requests

As the Zend engine runs, it processes one or more "requests" from its client. In the traditional CGI implementation, this corresponds to one execution of a process. However, many other implementations, most notably the Apache module, can map many requests onto a single PHP process. A PHP extension may thus see many requests in its lifetime.

Overview

  • In the Zend API, a module is loaded into memory only once when the associated PHP process starts up. Each module receives a call to the "module initialization" function specified in its zend_module structure as it is loaded.
  • Whenever the associated PHP process starts to handle a request from its client - i.e. whenever the PHP interpreter is told to start working - each module receives a call to the "request initialization" function specified in its zend_module structure.
  • Whenever the associated PHP process is done handling a request, each module receives a call to the "request termination" function specified in its zend_module structure.
  • A given module is unloaded from memory when its associated PHP process is shut down in an orderly manner. The module receives a call to the "module termination" function specified in its zend_module structure at this time.

What to do, and when to do it

There are many tasks that might be performed at any of these four points. This table details where many common initialization and termination tasks belong.

What to do, and when to do it
Module initialization/termination | Request initialization/termination
Allocate/deallocate and initialize module global variables | Allocate/deallocate and initialize request-specific variables
Register/unregister class entries |
Register/unregister INI entries |
Register constants |

The phpinfo() callback

Aside from globals initialization and certain rarely-used callbacks, there is one more part of a module's lifecycle to examine: A call to phpinfo(). The output a user sees from this call, whether text or HTML or anything else, is generated by each individual extension that is loaded into the PHP interpreter at the time the call is made.

To provide for format-neutral output, the header "ext/standard/info.h" provides an array of functions to produce standardized display elements. Specifically, several functions which create the familiar tables exist:

php_info_print_table_start()
Open a table in phpinfo() output. Takes no parameters.
php_info_print_table_header()
Print a table header in phpinfo() output. Takes one parameter, the number of columns, plus the same number of char * parameters which are the texts for each column heading.
php_info_print_table_row()
Print a table row in phpinfo() output. Takes one parameter, the number of columns, plus the same number of char * parameters which are the texts for each column content.
php_info_print_table_end()
Close a table formerly opened by php_info_print_table_start(). Takes no parameters.

Using these four functions, it is possible to produce status information for nearly any combination of features in an extension. Here is the information callback from the counter extension:

Exemple #1 counter's PHP_MINFO function

/* {{{ PHP_MINFO(counter) */
PHP_MINFO_FUNCTION(counter)
{
    char        buf[10];

    php_info_print_table_start();
    php_info_print_table_row(2, "counter support", "enabled");
    snprintf(buf, sizeof(buf), "%ld", COUNTER_G(basic_counter_value));
    php_info_print_table_row(2, "Basic counter value", buf);
    php_info_print_table_end();
}
/* }}} */


Testing an extension

One of the accepted requirements of good programming is testing. PHP provides a test harness for unit regression tests, in the form of a script called run-tests.php.

Tests for a particular module are stored in the tests/ subdirectory of the module's folder, and have a .phpt extension. For details of the PHPT format, see » http://qa.php.net/.


PDO Driver How-To

Sommaire

  • Prerequisites
  • Preparation and Housekeeping
  • Fleshing out your skeleton
  • Building
  • Testing
  • Packaging and distribution
  • pdo_dbh_t definition
  • pdo_stmt_t definition
  • Constants
  • Error handling

The purpose of this How-To is to provide a basic understanding of the steps required to write a database driver that interfaces with the PDO layer. Please note that this is still an evolving API and as such, subject to change. This document was prepared based on version 0.3 of PDO. The learning curve is steep; expect to spend a lot of time on the prerequisites.


Prerequisites

The following is list of prerequisites and assumptions needed for writing a PDO database driver:

  1. A working target database, examples, demos, etc. working as per vendor specifications;

  2. A working development environment:

    1. Linux: standard development tools, gcc, ld, make, autoconf, automake, etc., versions dependent on distribution;

    2. Other Unix: standard development tools supplied by vendor plus the GNU development tool set;

    3. Win32: Visual Studio compiler suite;

  3. A working PHP environment version 5.0.3 or higher with a working PEAR extension version 1.3.5 or higher;

  4. A working PDO environment (can be installed using 'sudo pecl install PDO'), including the headers which will be needed to access the PDO type definitions and function declarations;

  5. A good working knowledge of the C programming language;

  6. A good working knowledge of the way to write a PHP extension; George Schlossnagle's Advanced PHP Programming (published by Developer's Library, chapters 21 and 22) is recommended;

  7. Finally, a familiarity with the Zend API that forms the heart of PHP, in particular paying attention to the memory management aspects.


Preparation and Housekeeping

Source directory layout

The source directory for a typical PDO driver is laid out as follows, where SKEL represents a shortened form of the name of the database that the driver is going to connect to. Even though SKEL is presented here in uppercase (for clarity), the convention is to use lowercase characters.

pdo_SKEL/
  config.m4                  # unix build script
  config.w32                 # win32 build script
  CREDITS
  package.xml                # meta information about the package
  pdo_SKEL.c                 # standard PHP extension glue
  php_pdo_SKEL.h
  php_pdo_SKEL_int.h         # driver private header
  SKEL_dbh.c                 # contains the implementation of the PDO driver interface
  SKEL_stmt.c                # contains the implementation of the PDO statement interface
  tests/

The contents of these files are defined later in this document.

Creating a skeleton

The easiest way to get started is to use the ext_skel shell script found in the PHP build tree in the ext directory. This will build a skeleton directory containing a lot of the files listed above. It can be build by executing the following command from within the ext directory:

./ext_skel --extname=pdo_SKEL

This will generate a directory called pdo_SKEL containing the skeleton files that you can then modify. This directory should then be moved out of the php extension directory. PDO is a PECL extension and should not be included in the standard extension directory. As long as you have PHP and PDO installed, you should be able to build from any directory.

Standard Includes

Build Specific Headers

The header file config.h is generated by the configure process for the platform for the which the driver is being built. If this header is present, the HAVE_CONFIG_H compiler variable is set. This variable should be tested for and if set, the file config.h should be included in the compilation unit.

PHP Headers

The following standard public php headers should be included in each source module:

  1. php.h

  2. php_ini.h

  3. ext/standard/info.h

PDO Interface Headers

The following standard public PDO header files are also included in each source module:

pdo/php_pdo.h

This header file contains definitions of the initialization and shutdown functions in the main driver as well as definitions of global PDO variables.

pdo/php_pdo_driver.h

This header contains the types and API contracts that are used to write a PDO driver. It also contains method signature for calling back into the PDO layer and registering/unregistering your driver with PDO. Most importantly, this header file contains the type definitions for PDO database handles and statements. The two main structures a driver has to deal with, pdo_dbh_t and pdo_stmt_t, are described in more detail in Appendix A and B.

Driver Specific Headers

The typical PDO driver has two header files that are specific to the database implementation. This does not preclude the use of more depending on the implementation. The following two headers are, by convention, standard:

php_pdo_SKEL.h

This header file is virtually an exact duplicate in functionality and content of the previously defined pdo/php_pdo.h that has been specifically tailored for your database. If your driver requires the use of global variables they should be defined using the ZEND_BEGIN_MODULE_GLOBALS and ZEND_END_MODULE_GLOBALS macros. Macros are then used to access these variables. This macro is usually named PDO_SKEL_G(v) where v is global variable to be accessed. Consult the Zend programmer documentation for more information.

php_pdo_SKEL_int.h

This header file typically contains type definitions and function declarations specific to the driver implementation. It also should contain the db specific definitions of a pdo_SKEL_handle and pdo_SKEL_stmt structures. These are the names of the private data structures that are then referenced by the driver_data members of the handle and statement structures.

Optional Headers

Depending on the implementation details for a particular driver it may be necessary to include the following header:

#include <zend_exceptions.h>


Fleshing out your skeleton

Major Structures and Attributes

The major structures, pdo_dbh_t and pdo_stmt_t are defined and explained in Appendix A and B respectively. Database and Statement attributes are defined in Appendix C. Error handling is explained in Appendix D.

pdo_SKEL.c: PHP extension glue

function entries

static function_entry pdo_SKEL_functions[] = {
  { NULL, NULL, NULL }
};

This structure is used to register functions into the global php function namespace. PDO drivers should try to avoid doing this, so it is recommended that you leave this structure initialized to NULL, as shown in the synopsis above.

Module entry

/* {{{ pdo_SKEL_module_entry */
#if ZEND_EXTENSION_API_NO >= 220050617
static zend_module_dep pdo_SKEL_deps[] = {
    ZEND_MOD_REQUIRED("pdo")
    {NULL, NULL, NULL}
};
#endif
/* }}} */

zend_module_entry pdo_SKEL_module_entry = {
#if ZEND_EXTENSION_API_NO >= 220050617
    STANDARD_MODULE_HEADER_EX, NULL,
    pdo_SKEL_deps,
#else
    STANDARD_MODULE_HEADER,
#endif
    "pdo_SKEL",
    pdo_SKEL_functions,
    PHP_MINIT(pdo_SKEL),
    PHP_MSHUTDOWN(pdo_SKEL),
    NULL,
    NULL,
    PHP_MINFO(pdo_SKEL),
    PHP_PDO_<DB>_MODULE_VERSION,
    STANDARD_MODULE_PROPERTIES
};
/* }}} */

#ifdef COMPILE_DL_PDO_<DB>
ZEND_GET_MODULE(pdo_db)
#endif

A structure of type zend_module_entry called pdo_SKEL_module_entry must be declared and should include reference to the pdo_SKEL_functions table defined previously.

Standard PHP Module Extension Functions

PHP_MINIT_FUNCTION
/* {{{ PHP_MINIT_FUNCTION */
PHP_MINIT_FUNCTION(pdo_SKEL)
{
    return php_pdo_register_driver(&pdo_SKEL_driver);
}
/* }}} */

This standard PHP extension function should be used to register your driver with the PDO layer. This is done by calling the php_pdo_register_driver() function passing a pointer to a structure of type pdo_driver_t typically named pdo_SKEL_driver. A pdo_driver_t contains a header that is generated using the PDO_DRIVER_HEADER(SKEL) macro and pdo_SKEL_handle_factory() function pointer. The actual function is described during the discussion of the SKEL_dbh.c unit.

PHP_MSHUTDOWN_FUNCTION
/* {{{ PHP_MSHUTDOWN_FUNCTION */
PHP_MSHUTDOWN_FUNCTION(pdo_SKEL)
{
    php_pdo_unregister_driver(&pdo_SKEL_driver);
    return SUCCESS;
}
/* }}} */

This standard PHP extension function is used to unregister your driver from the PDO layer. This is done by calling the php_pdo_unregister_driver() function, passing the same pdo_SKEL_driver structure that was passed in the init function above.

PHP_MINFO_FUNCTION

This is again a standard PHP extension function. Its purpose is to display information regarding the module when the phpinfo() is called from a script. The convention is to display the version of the module and also what version of the db you are dependent on, along with any other configuration style information that might be relevant.

SKEL_driver.c: Driver implementation

This unit implements all of the database handling methods that support the PDO database handle object. It also contains the error fetching routines. All of these functions will typically need to access the global variable pool. Therefore, it is necessary to use the Zend macro TSRMLS_DC macro at the end of each of these statements. Consult the Zend programmer documentation for more information on this macro.

pdo_SKEL_error

static int pdo_SKEL_error(pdo_dbh_t *dbh,
  pdo_stmt_t *stmt, const char *file, int line TSRMLS_DC)

The purpose of this function is to be used as a generic error handling function within the driver. It is called by the driver when an error occurs within the driver. If an error occurs that is not related to SQLSTATE, the driver should set either dbh->error_code or stmt->error_code to an SQLSTATE that most closely matches the error or the generic SQLSTATE error "HY000". The file pdo_sqlstate.c in the PDO source contains a table of commonly used SQLSTATE codes that the PDO code explicitly recognizes. This setting of the error code should be done prior to calling this function.; This function should set the global pdo_err variable to the error found in either the dbh or the stmt (if the variable stmt is not NULL).

dbh

Pointer to the database handle initialized by the handle factory

stmt

Pointer to the current statement or NULL. If NULL, the error is derived by error code found in the dbh.

file

The source file where the error occurred or NULL if not available.

line

The line number within the source file if available.

If the dbh member methods is NULL (which implies that the error is being raised from within the PDO constructor), this function should call the zend_throw_exception_ex() function otherwise it should return the error code. This function is usually called using a helper macro that customizes the calling sequence for either database handling errors or statement handling errors.

Exemple #1 Example macros for invoking pdo_SKEL_error

#define pdo_SKEL_drv_error(what) \
    pdo_SKEL_error(dbh, NULL, what, __FILE__, __LINE__ TSRMLS_CC)
#define pdo_SKEL_drv_error(what) \
    pdo_SKEL_error(dbh, NULL, what, __FILE__, __LINE__ TSRMLS_CC)

For more info on error handling, see Error handling.

Note:

Despite being documented here, the PDO driver interface does not specify that this function be present; it is merely a convenient way to handle errors, and it just happens to be equally convenient for the majority of database client library APIs to structure your driver implementation in this way.

pdo_SKEL_fetch_error_func

static int pdo_SKEL_fetch_error_func(pdo_dbh_t *dbh, pdo_stmt_t *stmt,
    zval *info TSRMLS_DC)

The purpose of this function is to obtain additional information about the last error that was triggered. This includes the driver specific error code and a human readable string. It may also include additional information if appropriate. This function is called as a result of the PHP script calling the PDO::errorInfo() method.

dbh

Pointer to the database handle initialized by the handle factory

stmt

Pointer to the most current statement or NULL. If NULL, the error translated is derived by error code found in the dbh.

info

A hash table containing error codes and messages.

The error_func should return two pieces of information as successive array elements. The first item is expected to be a numeric error code, the second item is a descriptive string. The best way to set this item is by using add_next_index. Note that the type of the first argument need not be long; use whichever type most closely matches the error code returned by the underlying database API.

/* now add the error information. */
/* These need to be added in a specific order */
add_next_index_long(info, error_code);   /* driver specific error code */
add_next_index_string(info, message, 0); /* readable error message */

This function should return 1 if information is available, 0 if the driver does not have additional info.

SKEL_handle_closer

static int SKEL_handle_closer(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to close an open database.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to close the open database. PDO ignores the return value from this function.

SKEL_handle_preparer

static int SKEL_handle_preparer(pdo_dbh_t *dbh, const char *sql,
long sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)

This function will be called by PDO in response to PDO::query() and PDO::prepare() calls from the PHP script. The purpose of the function is to prepare raw SQL for execution, storing whatever state is appropriate into the stmt that is passed in.

dbh

Pointer to the database handle initialized by the handle factory

sql

Pointer to a character string containing the SQL statement to be prepared.

sql_len

The length of the SQL statement.

Stmt

Pointer to the returned statement or NULL if an error occurs.

driver_options

Any driver specific/defined options.

This function is essentially the constructor for a stmt object. This function is responsible for processing statement options, and setting driver-specific option fields in the pdo_stmt_t structure.

PDO does not process any statement options on the driver's behalf before calling the preparer function. It is your responsibility to process them before you return, raising an error for any unknown options that are passed.

One very important responsibility of this function is the processing of SQL statement parameters. At the time of this call, PDO does not know if your driver supports binding parameters into prepared statements, nor does it know if it supports named or positional parameter naming conventions.

Your driver is responsible for setting stmt->supports_placeholders as appropriate for the underlying database. This may involve some run-time determination on the part of your driver, if this setting depends on the version of the database server to which it is connected. If your driver doesn't directly support both named and positional parameter conventions, you should use the pdo_parse_params() API to have PDO rewrite the query to take advantage of the support provided by your database.

Exemple #2 Using pdo_parse_params

int ret;
    char *nsql = NULL;
    int nsql_len = 0;

    /* before we prepare, we need to peek at the query; if it uses named parameters,
     * we want PDO to rewrite them for us */
    stmt->supports_placeholders = PDO_PLACEHOLDER_POSITIONAL;
    ret = pdo_parse_params(stmt, (char*)sql, sql_len, &nsql, &nsql_len TSRMLS_CC);

    if (ret == 1) {
        /* query was re-written */
        sql = nsql;
    } else if (ret == -1) {
        /* couldn't grok it */
        strcpy(dbh->error_code, stmt->error_code);
        return 0;
    }

    /* now proceed to prepare the query in "sql" */

Possible values for supports_placeholders are: PDO_PLACEHOLDER_NAMED, PDO_PLACEHOLDER_POSITIONAL and PDO_PLACEHOLDER_NONE. If the driver doesn't support prepare statements at all, then this function should simply allocate any state that it might need, and then return:

Exemple #3 Implementing preparer for drivers that don't support native prepared statements

static int SKEL_handle_preparer(pdo_dbh_t *dbh, const char *sql,
    long sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)
{
    pdo_SKEL_db_handle *H = (pdo_SKEL_db_handle *)dbh->driver_data;
    pdo_SKEL_stmt *S = ecalloc(1, sizeof(pdo_SKEL_stmt));

    S->H = H;
    stmt->driver_data = S;
    stmt->methods = &SKEL_stmt_methods;
    stmt->supports_placeholders = PDO_PLACEHOLDER_NONE;

    return 1;
}

This function returns 1 on success or 0 on failure.

SKEL_handle_doer

static long SKEL_handle_doer(pdo_dbh_t *dbh, const char *sql, long sql_len TSRMLS_DC)

This function will be called by PDO to execute a raw SQL statement. No pdo_stmt_t is created.

dbh

Pointer to the database handle initialized by the handle factory

sql

Pointer to a character string containing the SQL statement to be prepared.

sql_len

The length of the SQL statement.

This function returns 1 on success or 0 on failure.

SKEL_handle_quoter

static int SKEL_handle_quoter(pdo_dbh_t *dbh, const char *unquoted,
  int unquoted_len, char **quoted, int quoted_len, enum pdo_param_type param_type TSRMLS_DC)

This function will be called by PDO to turn an unquoted string into a quoted string for use in a query.

dbh

Pointer to the database handle initialized by the handle factory

unquoted

Pointer to a character string containing the string to be quoted.

unquoted_len

The length of the string to be quoted.

quoted

Pointer to the address where a pointer to the newly quoted string will be returned.

quoted_len

The length of the new string.

param_type

A driver specific hint for driver that have alternate quoting styles

This function is called in response to a call to PDO::quote() or when the driver has set supports_placeholder to PDO_PLACEHOLDER_NONE. The purpose is to quote a parameter when building SQL statements.

If your driver does not support native prepared statements, implementation of this function is required.

This function returns 1 if the quoting process reformatted the string, and 0 if it was not necessary to change the string. The original string will be used unchanged with a 0 return.

SKEL_handle_begin

static int SKEL_handle_begin(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to begin a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to begin a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_commit

static int SKEL_handle_commit(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to end a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to commit a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_rollback

static int SKEL_handle_rollback( pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to rollback a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to rollback a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_get_attribute

static int SKEL_handle_get_attribute(pdo_dbh_t *dbh, long attr, zval *return_value TSRMLS_DC)

This function will be called by PDO to retrieve a database attribute.

dbh

Pointer to the database handle initialized by the handle factory

attr

long value of one of the PDO_ATTR_xxxx types. See Database and Statement Attributes Table for valid attributes.

return_value

The returned value for the attribute.

It is up to the driver to decide which attributes will be supported for a particular implementation. It is not necessary for a driver to supply this function. PDO driver handles the PDO_ATTR_PERSISTENT, PDO_ATTR_CASE, PDO_ATTR_ORACLE_NULLS, and PDO_ATTR_ERRMODE attributes directly.

This function returns 1 on success or 0 on failure.

SKEL_handle_set_attribute

static int SKEL_handle_set_attribute(pdo_dbh_t *dbh, long attr, zval *val TSRMLS_DC)

This function will be called by PDO to set a database attribute, usually in response to a script calling PDO::setAttribute().

dbh

Pointer to the database handle initialized by the handle factory

attr

long value of one of the PDO_ATTR_xxxx types. See Database and Statement Attributes Table for valid attributes.

val

The new value for the attribute.

It is up to the driver to decide which attributes will be supported for a particular implementation. It is not necessary for a driver to provide this function if it does not need to support additional attributes. The PDO driver handles the PDO_ATTR_CASE, PDO_ATTR_ORACLE_NULLS, and PDO_ATTR_ERRMODE attributes directly.

This function returns 1 on success or 0 on failure.

SKEL_handle_last_id

static char * SKEL_handle_last_id(pdo_dbh_t *dbh, const char *name, unsigned int len TSRMLS_DC)

This function will be called by PDO to retrieve the ID of the last inserted row.

dbh

Pointer to the database handle initialized by the handle factory

name

string representing a table or sequence name.

len

the length of the name parameter.

This function returns a character string containing the id of the last inserted row on success or NULL on failure. This is an optional function.

SKEL_check_liveness

static int SKEL_check_liveness(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to test whether or not a persistent connection to a database is alive and ready for use.

dbh

Pointer to the database handle initialized by the handle factory

This function returns 1 if the database connection is alive and ready for use, otherwise it should return 0 to indicate failure or lack of support.

Note:

This is an optional function.

SKEL_get_driver_methods

static function_entry *SKEL_get_driver_methods(pdo_dbh_t *dbh, int kind TSRMLS_DC)

This function will be called by PDO in response to a call to any method that is not a part of either the PDO or PDOStatement classes. It's purpose is to allow the driver to provide additional driver specific methods to those classes.

dbh

Pointer to the database handle initialized by the handle factory

kind

One of the following:

PDO_DBH_DRIVER_METHOD_KIND_DBH

Set when the method call was attempted on an instance of the PDO class. The driver should return a pointer a function_entry table for any methods it wants to add to that class, or NULL if there are none.

PDO_DBH_DRIVER_METHOD_KIND_STMT

Set when the method call was attempted on an instance of the PDOStatement class. The driver should return a pointer to a function_entry table for any methods it wants to add to that class, or NULL if there are none.

This function returns a pointer to the function_entry table requested, or NULL there are no driver specific methods.

SKEL_handle_factory

static int SKEL_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_DC)

This function will be called by PDO to create a database handle. For most databases this involves establishing a connection to the database. In some cases, a persistent connection may be requested, in other cases connection pooling may be requested. All of these are database/driver dependent.

dbh

Pointer to the database handle initialized by the handle factory

driver_options

An array of driver options, keyed by integer option number. See Database and Statement Attributes Table for a list of possible attributes.

This function should fill in the passed database handle structure with its driver specific information on success and return 1, otherwise it should return 0 to indicate failure.

PDO processes the AUTOCOMMIT and PERSISTENT driver options before calling the handle_factory. It is the handle factory's responsibility to process other options.

Driver method table

A static structure of type pdo_dbh_methods named SKEL_methods must be declared and initialized to the function pointers for each defined function. If a function is not supported or not implemented the value for that function pointer should be set to NULL.

pdo_SKEL_driver

A structure of type pdo_driver_t named pdo_SKEL_driver should be declared. The PDO_DRIVER_HEADER(SKEL) macro should be used to declare the header and the function pointer to the handle factory function should set.

SKEL_statement.c: Statement implementation

This unit implements all of the database statement handling methods that support the PDO statement object.

SKEL_stmt_dtor

static int SKEL_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC)

This function will be called by PDO to destroy a previously constructed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

This should do whatever is necessary to free up any driver specific storage allocated for the statement. The return value from this function is ignored.

SKEL_stmt_execute

static int SKEL_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC)

This function will be called by PDO to execute the prepared SQL statement in the passed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_fetch

static int SKEL_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori,
   long offset TSRMLS_DC)

This function will be called by PDO to fetch a row from a previously executed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

ori

One of PDO_FETCH_ORI_xxx which will determine which row will be fetched.

offset

If ori is set to PDO_FETCH_ORI_ABS or PDO_FETCH_ORI_REL, offset represents the row desired or the row relative to the current position, respectively. Otherwise, this value is ignored.

The results of this fetch are driver dependent and the data is usually stored in the driver_data member of the pdo_stmt_t object. The ori and offset parameters are only meaningful if the statement represents a scrollable cursor. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_param_hook

static int SKEL_stmt_param_hook(pdo_stmt_t *stmt,
  struct pdo_bound_param_data *param, enum pdo_param_event event_type TSRMLS_DC)

This function will be called by PDO for handling of both bound parameters and bound columns.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

param

The structure describing either a statement parameter or a bound column.

event_type

The type of event to occur for this parameter, one of the following:

PDO_PARAM_EVT_ALLOC

Called when PDO allocates the binding. Occurs as part of PDOStatement::bindParam(), PDOStatement::bindValue() or as part of an implicit bind when calling PDOStatement::execute(). This is your opportunity to take some action at this point; drivers that implement native prepared statements will typically want to query the parameter information, reconcile the type with that requested by the script, allocate an appropriately sized buffer and then bind the parameter to that buffer. You should not rely on the type or value of the zval at param->parameter at this point in time.

PDO_PARAM_EVT_FREE

Called once per parameter as part of cleanup. You should release any resources associated with that parameter now.

PDO_PARAM_EXEC_PRE

Called once for each parameter immediately before calling SKEL_stmt_execute; take this opportunity to make any final adjustments ready for execution. In particular, you should note that variables bound via PDOStatement::bindParam() are only legal to touch now, and not any sooner.

PDO_PARAM_EXEC_POST

Called once for each parameter immediately after calling SKEL_stmt_execute; take this opportunity to make any post-execution actions that might be required by your driver.

PDO_PARAM_FETCH_PRE

Called once for each parameter immediately prior to calling SKEL_stmt_fetch.

PDO_PARAM_FETCH_POST

Called once for each parameter immediately after calling SKEL_stmt_fetch.

This hook will be called for each bound parameter and bound column in the statement. For ALLOC and FREE events, a single call will be made for each parameter or column. The param structure contains a driver_data field that the driver can use to store implementation specific information about each of the parameters.

For all other events, PDO may call you multiple times as the script issues PDOStatement::execute() and PDOStatement::fetch() calls.

If this is a bound parameter, the is_param flag in the param structure is set, otherwise the param structure refers to a bound column.

This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_describe_col

static int SKEL_stmt_describe_col(pdo_stmt_t *stmt, int colno TSRMLS_DC)

This function will be called by PDO to query information about a particular column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number to be queried.

The driver should populate the pdo_stmt_t member columns(colno) with the appropriate information. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_get_col_data

static int SKEL_stmt_get_col_data(pdo_stmt_t *stmt, int colno,
  char **ptr, unsigned long *len, int *caller_frees TSRMLS_DC)

This function will be called by PDO to retrieve data from the specified column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number to be queried.

ptr

Pointer to the retrieved data.

len

The length of the data pointed to by ptr.

caller_frees

If set, ptr should point to emalloc'd memory and the main PDO driver will free it as soon as it is done with it. Otherwise, it will be the responsibility of the driver to free any allocated memory as a result of this call.

The driver should return the resultant data and length of that data in the ptr and len variables respectively. It should be noted that the main PDO driver expects the driver to manage the lifetime of the data. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_set_attr

static int SKEL_stmt_set_attr(pdo_stmt_t *stmt, long attr, zval *val TSRMLS_DC)

This function will be called by PDO to allow the setting of driver specific attributes for a statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

attr

long value of one of the PDO_ATTR_xxxx types. See Database and Statement Attributes Table for valid attributes.

val

The new value for the attribute.

This function is driver dependent and allows the driver the capability to set database specific attributes for a statement. This function returns 1 for success or 0 in the event of failure. This is an optional function. If the driver does not support additional settable attributes, it can be NULLed in the method table. The PDO driver does not handle any settable attributes on the database driver's behalf.

SKEL_stmt_get_attr

static int SKEL_stmt_get_attr(pdo_stmt_t *stmt, long attr, zval
   *return_value TSRMLS_DC)

This function will be called by PDO to allow the retrieval of driver specific attributes for a statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

attr

long value of one of the PDO_ATTR_xxxx types. See Database and Statement Attributes Table for valid attributes.

return_value

The returned value for the attribute.

This function is driver dependent and allows the driver the capability to retrieve a previously set database specific attribute for a statement. This function returns 1 for success or 0 in the event of failure. This is an optional function. If the driver does not support additional gettable attributes, it can be NULLed in the method table. The PDO driver does not handle any settable attributes on the database driver's behalf.

SKEL_stmt_get_col_meta

static int SKEL_stmt_get_col_meta(pdo_stmt_t *stmt, int colno,
   zval *return_value TSRMLS_DC)
Avertissement

This function is not well defined and is subject to change.

This function will be called by PDO to retrieve meta data from the specified column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number for which data is to be retrieved.

return_value

Holds the returned meta data.

The driver author should consult the documentation for this function that can be found in the php_pdo_driver.h header as this will be the most current. This function returns 1 for success or 0 in the event of failure. The database driver does not need to provide this function.

Statement handling method table

A static structure of type pdo_stmt_methods named SKEL_stmt_methods should be declared and initialized to the function pointers for each defined function. If a function is not supported or not implemented the value for that function pointer should be set to NULL.


Building

The build process is designed to work with PEAR (see » http://pear.php.net/ for more information about PEAR). There are two files that are used to assist in configuring your package for building. The first is config.m4 which is the autoconf configuration file for all platforms except Win32. The second is config.w32 which is a build configuration file for use on Win32. Skeleton files for these are built for you when you first set up your project. You then need to customize them to fit the needs of your project. Once you've customized your config files, you can build your driver using the following sequence of commands:

Before first build:

$ sudo pecl install PDO

For each build:

$ cd pdo_SKEL
$ phpize
$ ./configure
$ make
$ sudo make install

The process can then be repeated as necessary during the development process.


Testing

PDO has a set of "core" tests that all drivers should pass before being released. They're designed to run from the PHP source distribution, so running the tests for your driver requires moving things around a bit. The suggested procedure is to obtain the latest PHP 5.1 snapshot and perform the following step:

$ cp -r pdo_SKEL /path/to/php-5.1/ext

This will allow the test harness to run your tests. The next thing you need to do is create a test that will redirect into the PDO common core tests. The convention is to name this file common.phpt; it should be placed in the tests subdirectory that was created by ext_skel when you created your extension skeleton. The content of this file should look something like the following:

--TEST--
SKEL
--SKIPIF--
<?php # vim:ft=php
if (!extension_loaded('pdo_SKEL')) print 'skip'; ?>
--REDIRECTTEST--
if (false !== getenv('PDO_SKEL_TEST_DSN')) {
# user set them from their shell
   $config['ENV']['PDOTEST_DSN'] = getenv('PDO_SKEL_TEST_DSN');
   $config['ENV']['PDOTEST_USER'] = getenv('PDO_SKEL_TEST_USER');
   $config['ENV']['PDOTEST_PASS'] = getenv('PDO_SKEL_TEST_PASS');
   if (false !== getenv('PDO_SKEL_TEST_ATTR')) {
      $config['ENV']['PDOTEST_ATTR'] = getenv('PDO_SKEL_TEST_ATTR');
   }
   return $config;
}
return array(
   'ENV' => array(
           'PDOTEST_DSN' => 'SKEL:dsn',
           'PDOTEST_USER' => 'username',
           'PDOTEST_PASS' => 'password'
       ),
   'TESTS' => 'ext/pdo/tests'
   );

This will cause the common core tests to be run, passing the values of PDOTEST_DSN, PDOTEST_USER and PDOTEST_PASS to the PDO constructor as the dsn, username and password parameters. It will first check the environment, so that appropriate values can be passed in when the test harness is run, rather than hard-coding the database credentials into the test file.

The test harness can be invoked as follows:

$ cd /path/to/php-5.1
$ make TESTS=ext/pdo_SKEL/tests PDO_SKEL_TEST_DSN="skel:dsn" \
 PDO_SKEL_TEST_USER=user PDO_SKEL_TEST_PASS=pass test


Packaging and distribution

Creating a package

PDO drivers are released via PECL; all the usual rules for PECL extensions apply. Packaging is accomplished by creating a valid package.xml file and then running:

$ pecl package

This will create a tarball named PDO_SKEL-X.Y.Z.tgz.

Before releasing the package, you should test that it builds correctly; if you've made a mistake in your config.m4 or package.xml files, the package may not function correctly. You can test the build, without installing anything, using the following invocation:

$ pecl build package.xml

Once this is proven to work, you can test installation:

$ pecl package
$ sudo pecl install PDO_SKEL-X.Y.X.tgz

Full details about package.xml can be found in the PEAR Programmer's documentation (» http://pear.php.net/manual/).

Releasing the package

A PDO driver is released via the PHP Extension Community Library (PECL). Information about PECL can be found at » http://pecl.php.net/.


pdo_dbh_t definition

All fields should be treated as read-only by the driver, unless explicitly stated otherwise.

pdo_dbh_t

/* represents a connection to a database */
struct _pdo_dbh_t {
    /* driver specific methods */
    struct pdo_dbh_methods *methods;
*
/* driver specific data */
    void *driver_data;
**
/* credentials */
    char *username, *password;
***
/* if true, then data stored and pointed at by this handle must all be
     * persistently allocated */
    unsigned is_persistent:1;
****
/* if true, driver should act as though a COMMIT were executed between
     * each executed statement; otherwise, COMMIT must be carried out manually
     * */
    unsigned auto_commit:1;
*****
/* if true, the driver requires that memory be allocated explicitly for
     * the columns that are returned */
    unsigned alloc_own_columns:1;
******
/* if true, commit or rollBack is allowed to be called */
    unsigned in_txn:1;

    /* max length a single character can become after correct quoting */
    unsigned max_escaped_char_length:3;
*******
/* data source string used to open this handle */
    const char *data_source;
********
unsigned long data_source_len;

    /* the global error code. */
    pdo_error_type error_code;
*********
enum pdo_case_conversion native_case
**********
, desired_case;
};
*

The driver must set this during SKEL_handle_factory().

**

This item is for use by the driver; the intended usage is to store a pointer (during SKEL_handle_factory()) to whatever instance data is required to maintain a connection to the database.

***

The username and password that were passed into the PDO constructor. The driver should use these values when it initiates a connection to the database.

****

If this is set to 1, then any data that is referenced by the dbh, including whatever structure your driver allocates, MUST be allocated persistently. This is easy to achieve; rather than using the usual emalloc() simply use pemalloc() and pass the value of this flag as the last parameter. Failure to use the appropriate kind of memory can lead to serious memory faults, resulting (in the best case) a hard crash, and in the worst case, an exploitable memory problem.

If, for whatever reason, your driver is not suitable to run persistently, you MUST check this flag in your SKEL_handle_factory() and raise an appropriate error.

*****

You should check this value in your SKEL_handle_doer() and SKEL_stmt_execute() functions; if it evaluates to true, you must attempt to commit the query now. Most database implementations offer an auto-commit mode that handles this automatically.

******

If your database client library API operates by fetching data into a caller-supplied buffer, you should set this flag to 1 during your SKEL_handle_factory(). When set, PDO will call your SKEL_stmt_describer() earlier than it would otherwise. This early call allows you to determine those buffer sizes and issue appropriate calls to the database client library.

If your database client library API simply returns pointers to its own internal buffers for you to copy after each fetch call, you should leave this value set to 0.

*******

If your driver doesn't support native prepared statements (supports_placeholders is set to PDO_PLACEHOLDER_NONE), you must set this value to the maximum length that can be taken up by a single character when it is quoted by your SKEL_handle_quoter() function. This value is used to calculate the amount of buffer space required when PDO executes the statement.

********

This holds the value of the DSN that was passed into the PDO constructor. If your driver implementation needed to modify the DSN for whatever reason, it should update this member during SKEL_handle_factory(). Modifying this member should be avoided. If you do change it, you must ensure that data_source_len is also correct.

*********

Whenever an error occurs during a call to one of your driver methods, you should set this member to the SQLSTATE code that best describes the error and return an error. In this HOW-TO, the suggested practice is to call SKEL_handle_error() when an error is detected, and have it set the error code.

**********

Your driver should set this during SKEL_handle_factory(); the value should reflect how the database returns the names of the columns in result sets. If the name matches the case that was used in the query, set it to PDO_CASE_NATURAL (this is actually the default). If the column names are always returned in upper case, set it to PDO_CASE_UPPER. If the column names are always returned in lower case, set it to PDO_CASE_LOWER. The value you set is used to determine if PDO should perform case folding when the user sets the PDO_ATTR_CASE attribute.


pdo_stmt_t definition

All fields should be treated as read-only unless explicitly stated otherwise.

pdo_stmt_t

/* represents a prepared statement */
struct _pdo_stmt_t {
    /* driver specifics */
    struct pdo_stmt_methods *methods;
*
void *driver_data;
**
/* if true, we've already successfully executed this statement at least
     * once */
    unsigned executed:1;
***
/* if true, the statement supports placeholders and can implement
     * bindParam() for its prepared statements, if false, PDO should
     * emulate prepare and bind on its behalf */
    unsigned supports_placeholders:2;
****
/* the number of columns in the result set; not valid until after
     * the statement has been executed at least once.  In some cases, might
     * not be valid until fetch (at the driver level) has been called at least once.
     * */
    int column_count;
*****
struct pdo_column_data *columns;
******
/* points at the dbh that this statement was prepared on */
    pdo_dbh_t *dbh;

    /* keep track of bound input parameters.  Some drivers support
     * input/output parameters, but you can't rely on that working */
    HashTable *bound_params;
    /* When rewriting from named to positional, this maps positions to names */
    HashTable *bound_param_map;
    /* keep track of PHP variables bound to named (or positional) columns
     * in the result set */
    HashTable *bound_columns;

    /* not always meaningful */
    long row_count;

    /* used to hold the statement's current query */
    char *query_string;
    int query_stringlen;

    /* the copy of the query with expanded binds ONLY for emulated-prepare drivers */
    char *active_query_string;
    int active_query_stringlen;

    /* the cursor specific error code. */
    pdo_error_type error_code;

    /* used by the query parser for driver specific
     * parameter naming (see pgsql driver for example) */
    const char *named_rewrite_template;
};
* | The driver must set this during SKEL_handle_preparer().
** | This item is for use by the driver; the intended usage is to store a pointer (during SKEL_handle_factory()) to whatever instance data is required to maintain a connection to the database.
*** | This is set by PDO after the statement has been executed for the first time. Your driver can inspect this value to determine if it can skip one-time actions as an optimization.
**** | Discussed in more detail in SKEL_handle_preparer.
***** | Your driver is responsible for setting this field to the number of columns available in a result set. This is usually set during SKEL_stmt_execute() but with some database implementations, the column count may not be available until SKEL_stmt_fetch() has been called at least once. Drivers that implement SKEL_stmt_next_rowset() should update the column count when a new rowset is available.
****** | PDO will allocate this field based on the value that you set for the column count. You are responsible for populating each column during SKEL_stmt_describe(). You must set the precision, maxlen, name, namelen and param_type members for each column. The name is expected to be allocated using emalloc(); PDO will call efree() at the appropriate time.


Constants

Database and Statement Attributes Table

Attribute

Valid value(s)

PDO_ATTR_AUTOCOMMIT

BOOL

TRUE if autocommit is set, FALSE otherwise.

dbh->auto_commit contains value. Processed by PDO directly.

PDO_ATTR_PREFETCH

LONG

Value of the prefetch size in drivers that support it.

PDO_ATTR_TIMEOUT

LONG

How long to wait for a db operation before timing out.

PDO_ATTR_ERRMODE

LONG

Processed and handled by PDO

PDO_ATTR_SERVER_VERSION

STRING

The "human-readable" string representing the Server/Version this driver is currently connected to.

PDO_ATTR_CLIENT_VERSION

STRING

The "human-readable" string representing the Client/Version this driver supports.

PDO_ATTR_SERVER_INFO

STRING

The "human-readable" description of the Server.

PDO_ATTR_CONNECTION_STATUS

LONG

Values not yet defined

PDO_ATTR_CASE

LONG

Processed and handled by PDO.

PDO_ATTR_CURSOR_NAME

STRING

String representing the name for a database cursor for use in "where current in <name>" SQL statements.

PDO_ATTR_CURSOR

LONG

PDO_CURSOR_FWDONLY

Forward only cursor

PDO_CURSOR_SCROLL

Scrollable cursor

The values for the attributes above are all defined in terms of the Zend API. The Zend API contains macros that can be used to convert a *zval to a value. These macros are defined in the Zend header file, zend_API.h in the Zend directory of your PHP build directory. Some of these attributes can be used with the statement attribute handlers such as the PDO_ATTR_CURSOR and PDO_ATTR_CURSOR_NAME. See the statement attribute handling functions for more information.


Error handling

Error handling is implemented using a hand-shaking protocol between PDO and the database driver code. The database driver code signals PDO that an error has occurred via a failure (0) return from any of the interface functions. If a zero is returned, set the field error_code in the control block appropriate to the context (either the pdo_dbh_t or pdo_stmt_t block). In practice, it is probably a good idea to set the field in both blocks to the same value to ensure the correct one is getting used.

The error_mode field is a six-byte field containing a 5 character ASCIIZ SQLSTATE identifier code. This code drives the error message process. The SQLSTATE code is used to look up an error message in the internal PDO error message table (see pdo_sqlstate.c for a list of error codes and their messages). If the code is not known to PDO, a default "Unknown Message" value will be used.

In addition to the SQLSTATE code and error message, PDO will call the driver-specific fetch_err() routine to obtain supplemental data for the particular error condition. This routine is passed an array into which the driver may place additional information. This array has slot positions assigned to particular types of supplemental info:

  1. A native error code. This will frequently be an error code obtained from the database API.

  2. A descriptive string. This string can contain any additional information related to the failure. Database drivers typically include information such as an error message, code location of the failure, and any additional descriptive information the driver developer feels worthy of inclusion. It is generally a good idea to include all diagnostic information obtainable from the database interface at the time of the failure. For driver-detected errors (such as memory allocation problems), the driver developer can define whatever error information that seems appropriate.


  • « Error handling
  • Zend Engine 2 API reference »
  • PHP Manual
  • Dans le coeur de PHP : Guide du Hacker
  • Extension FAQs

Extension FAQs


  • « Extension FAQs
  • Zend Engine 2 Opcodes »
  • PHP Manual
  • Dans le coeur de PHP : Guide du Hacker
  • Zend Engine 2 API reference

Zend Engine 2 API reference


Zend Engine 2 Opcodes

Sommaire

  • Opcode Descriptions and Examples

When parsing PHP files, Zend Engine 2 generates a series of operation codes, commonly known as "opcodes", representing the function of the code. This part of the manual details those opcodes and their behaviour.

Opcodes may be dumped for a given PHP file using the vld extension (see » http://pecl.php.net/package/vld).

Opcode List
Number | Name | Has sample code?
0 | NOP | yes
1 | ADD | yes
2 | SUB | yes
3 | MUL | yes
4 | DIV | yes
5 | MOD | yes
6 | SL | yes
7 | SR | yes
8 | CONCAT | yes
9 | BW_OR | yes
10 | BW_AND | yes
11 | BW_XOR | yes
12 | BW_NOT | yes
13 | BOOL_NOT | yes
14 | BOOL_XOR | yes
15 | IS_IDENTICAL | yes
16 | IS_NOT_IDENTICAL | yes
17 | IS_EQUAL | yes
18 | IS_NOT_EQUAL | yes
19 | IS_SMALLER | yes
20 | IS_SMALLER_OR_EQUAL | yes
21 | CAST | yes
22 | QM_ASSIGN | yes
23 | ASSIGN_ADD | yes
24 | ASSIGN_SUB | yes
25 | ASSIGN_MUL | yes
26 | ASSIGN_DIV | yes
27 | ASSIGN_MOD | yes
28 | ASSIGN_SL | yes
29 | ASSIGN_SR | yes
30 | ASSIGN_CONCAT | yes
31 | ASSIGN_BW_OR | yes
32 | ASSIGN_BW_AND | yes
33 | ASSIGN_BW_XOR | yes
34 | PRE_INC | yes
35 | PRE_DEC | yes
36 | POST_INC | yes
37 | POST_DEC | yes
38 | ASSIGN | yes
39 | ASSIGN_REF | yes
40 | ECHO | yes
41 | PRINT | yes
42 | JMP | yes
43 | JMPZ | yes
44 | JMPNZ | yes
45 | JMPZNZ | yes
46 | JMPZ_EX | yes
47 | JMPNZ_EX | yes
48 | CASE | yes
49 | SWITCH_FREE | yes
50 | BRK | yes
51 | CONT | yes
52 | BOOL | yes
53 | INIT_STRING | yes
54 | ADD_CHAR | yes
55 | ADD_STRING | yes
56 | ADD_VAR | yes
57 | BEGIN_SILENCE | yes
58 | END_SILENCE | yes
59 | INIT_FCALL_BY_NAME | yes
60 | DO_FCALL | yes
61 | DO_FCALL_BY_NAME | yes
62 | RETURN | yes
63 | RECV | yes
64 | RECV_INIT | yes
65 | SEND_VAL | yes
66 | SEND_VAR | yes
67 | SEND_REF | yes
68 | NEW | yes
69 | INIT_NS_FCALL_BY_NAME | no
70 | FREE | yes
71 | INIT_ARRAY | yes
72 | ADD_ARRAY_ELEMENT | yes
73 | INCLUDE_OR_EVAL | yes
74 | UNSET_VAR | yes
75 | UNSET_DIM | yes
76 | UNSET_OBJ | yes
77 | FE_RESET | yes
78 | FE_FETCH | yes
79 | EXIT | yes
80 | FETCH_R | yes
81 | FETCH_DIM_R | yes
82 | FETCH_OBJ_R | yes
83 | FETCH_W | yes
84 | FETCH_DIM_W | yes
85 | FETCH_OBJ_W | yes
86 | FETCH_RW | yes
87 | FETCH_DIM_RW | yes
88 | FETCH_OBJ_RW | yes
89 | FETCH_IS | yes
90 | FETCH_DIM_IS | no
91 | FETCH_OBJ_IS | no
92 | FETCH_FUNC_ARG | yes
93 | FETCH_DIM_FUNC_ARG | yes
94 | FETCH_OBJ_FUNC_ARG | yes
95 | FETCH_UNSET | no
96 | FETCH_DIM_UNSET | no
97 | FETCH_OBJ_UNSET | no
98 | FETCH_DIM_TMP_VAR | yes
99 | FETCH_CONSTANT | yes
100 | GOTO | no
101 | EXT_STMT | yes
102 | EXT_FCALL_BEGIN | no
103 | EXT_FCALL_END | no
104 | EXT_NOP | no
105 | TICKS | yes
106 | SEND_VAR_NO_REF | no
107 | CATCH | yes
108 | THROW | yes
109 | FETCH_CLASS | yes
110 | CLONE | yes
111 | RETURN_BY_REF | no
112 | INIT_METHOD_CALL | yes
113 | INIT_STATIC_METHOD_CALL | yes
114 | ISSET_ISEMPTY_VAR | yes
115 | ISSET_ISEMPTY_DIM_OBJ | yes
116 | not documented | no
117 | not documented | no
118 | not documented | no
119 | not documented | no
120 | not documented | no
121 | not documented | no
122 | not documented | no
123 | not documented | no
124 | not documented | no
125 | not documented | no
126 | not documented | no
127 | not documented | no
128 | not documented | no
129 | not documented | no
130 | not documented | no
131 | not documented | no
132 | PRE_INC_OBJ | yes
133 | PRE_DEC_OBJ | yes
134 | POST_INC_OBJ | yes
135 | POST_DEC_OBJ | yes
136 | ASSIGN_OBJ | yes
137 | not documented | no
138 | INSTANCEOF | yes
139 | DECLARE_CLASS | yes
140 | DECLARE_INHERITED_CLASS | yes
141 | DECLARE_FUNCTION | yes
142 | RAISE_ABSTRACT_ERROR | yes
143 | DECLARE_CONST | no
144 | ADD_INTERFACE | no
145 | DECLARE_INHERITED_CLASS_DELAYED | no
146 | VERIFY_ABSTRACT_CLASS | no
147 | ASSIGN_DIM | yes
148 | ISSET_ISEMPTY_PROP_OBJ | yes
149 | HANDLE_EXCEPTION | yes
150 | USER_OPCODE | no
152 | ZEND_JMP_SET | no
153 | ZEND_DECLARE_LAMBDA_FUNCTION | no
154 | ZEND_ADD_TRAIT | no
155 | ZEND_BIND_TRAITS | no
156 | ZEND_SEPARATE | no
157 | ZEND_FETCH_CLASS_NAME | no
158 | ZEND_CALL_TRAMPOLINE | no
159 | ZEND_DISCARD_EXCEPTION | no
160 | ZEND_YIELD | no
161 | ZEND_GENERATOR_RETURN | no
162 | ZEND_FAST_CALL | no
163 | ZEND_FAST_RET | no
164 | ZEND_RECV_VARIADIC | no
165 | ZEND_SEND_UNPACK | no
166 | ZEND_POW | no
167 | ZEND_ASSIGN_POW | no
168 | ZEND_BIND_GLOBAL | no
169 | ZEND_COALESCE | no
170 | ZEND_SPACESHIP | no
171 | ZEND_DECLARE_ANON_CLASS | no
172 | ZEND_DECLARE_ANON_INHERITED_CLASS | no


Opcode Descriptions and Examples

Sommaire

  • ADD
  • ADD_ARRAY_ELEMENT
  • ADD_CHAR
  • ADD_INTERFACE
  • ADD_STRING
  • ADD_VAR
  • ASSIGN
  • ASSIGN_ADD
  • ASSIGN_BW_AND
  • ASSIGN_BW_OR
  • ASSIGN_BW_XOR
  • ASSIGN_CONCAT
  • ASSIGN_DIM
  • ASSIGN_DIV
  • ASSIGN_MOD
  • ASSIGN_MUL
  • ASSIGN_OBJ
  • ASSIGN_REF
  • ASSIGN_SL
  • ASSIGN_SR
  • ASSIGN_SUB
  • BEGIN_SILENCE
  • BOOL
  • BOOL_NOT
  • BOOL_XOR
  • BRK
  • BW_AND
  • BW_NOT
  • BW_OR
  • BW_XOR
  • CASE
  • CAST
  • CATCH
  • CLONE
  • CONCAT
  • CONT
  • DECLARE_CLASS
  • DECLARE_CONST
  • DECLARE_FUNCTION
  • DECLARE_INHERITED_CLASS
  • DECLARE_INHERITED_CLASS_DELAYED
  • DIV
  • DO_FCALL
  • DO_FCALL_BY_NAME
  • ECHO
  • END_SILENCE
  • EXIT
  • EXT_FCALL_BEGIN
  • EXT_FCALL_END
  • EXT_NOP
  • EXT_STMT
  • FE_FETCH
  • FE_RESET
  • FETCH_CLASS
  • FETCH_CONSTANT
  • FETCH_DIM_FUNC_ARG
  • FETCH_DIM_IS
  • FETCH_DIM_R
  • FETCH_DIM_RW
  • FETCH_DIM_TMP_VAR
  • FETCH_DIM_UNSET
  • FETCH_DIM_W
  • FETCH_FUNC_ARG
  • FETCH_IS
  • FETCH_OBJ_FUNC_ARG
  • FETCH_OBJ_IS
  • FETCH_OBJ_R
  • FETCH_OBJ_RW
  • FETCH_OBJ_UNSET
  • FETCH_OBJ_W
  • FETCH_R
  • FETCH_RW
  • FETCH_UNSET
  • FETCH_W
  • FREE
  • GOTO
  • HANDLE_EXCEPTION
  • INCLUDE_OR_EVAL
  • INIT_ARRAY
  • INIT_FCALL_BY_NAME
  • INIT_METHOD_CALL
  • INIT_NS_FCALL_BY_NAME
  • INIT_STATIC_METHOD_CALL
  • INIT_STRING
  • INSTANCEOF
  • IS_EQUAL
  • IS_IDENTICAL
  • IS_NOT_EQUAL
  • IS_NOT_IDENTICAL
  • IS_SMALLER
  • IS_SMALLER_OR_EQUAL
  • ISSET_ISEMPTY_DIM_OBJ
  • ISSET_ISEMPTY_PROP_OBJ
  • ISSET_ISEMPTY_VAR
  • JMP
  • JMPNZ
  • JMPNZ_EX
  • JMPZ
  • JMPZ_EX
  • JMPZNZ
  • MOD
  • MUL
  • NEW
  • NOP
  • POST_DEC
  • POST_DEC_OBJ
  • POST_INC
  • POST_INC_OBJ
  • PRE_DEC
  • PRE_DEC_OBJ
  • PRE_INC
  • PRE_INC_OBJ
  • PRINT
  • QM_ASSIGN
  • RAISE_ABSTRACT_ERROR
  • RECV
  • RECV_INIT
  • RETURN
  • RETURN_BY_REF
  • SEND_REF
  • SEND_VAL
  • SEND_VAR
  • SEND_VAR_NO_REF
  • SL
  • SR
  • SUB
  • SWITCH_FREE
  • THROW
  • TICKS
  • UNSET_DIM
  • UNSET_OBJ
  • UNSET_VAR
  • USER_OPCODE
  • VERIFY_ABSTRACT_CLASS
  • ZEND_DECLARE_LAMBDA_FUNCTION
  • ZEND_JMP_SET


ADD

PHP code

<?php
/*
 * Adds "value1" to "value2" and stores the result into "result".
 * opcode number: 1
 */
echo 1 + 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | ADD |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


ADD_ARRAY_ELEMENT

PHP code

<?php
/*
 * Add elem-value as an element to array-value
 * opcode number: 72
 */
$a = array(1,2,3);
print_r($a);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | SEND_VAR |  |  |  | !0
 | 5 | DO_FCALL |  | 1 |  | 'print_r'
8 | 6 | RETURN |  |  |  | 1


ADD_CHAR

PHP code

<?php
/*
 * add regular characters in encapsed string
 * opcode number: 54
 */
echo "$a ";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ADD_VAR |  |  |  | !0
 | 1 | ADD_CHAR |  |  |  | 32
 | 2 | ECHO |  |  |  |
 | 3 | RETURN |  |  |  | 1


ADD_INTERFACE

PHP code

<?php
/*
 * adds an implemented interface to a class declaration
 * opcode number: 144
 */
interface iA {
}

class A implements iA {
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
 | 1 | DECLARE_CLASS |  |  |  | 'a'
 | 2 | ADD_INTERFACE |  |  |  | 'iA'
 | 3 | VERIFY_ABSTRACT_CLASS |  |  |  |
 | 3 | RETURN |  |  |  | 1


ADD_STRING

PHP code

<?php
/*
 * add string value2 to string value2 and store in result
 * opcode number: 55
 */
echo "hello$a world";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ADD_STRING |  |  | ~0 | 'hello'
 | 1 | ADD_VAR |  |  | ~0 | ~0,!0
 | 2 | ADD_STRING |  |  | ~0 | ~0,'+world'
 | 3 | ECHO |  |  |  | ~0
7 | 4 | RETURN |  |  |  | 1


ADD_VAR

PHP code

<?php
/*
 * add contents of variable in value2 to string value1 and store in result
 * opcode number: 56
 */
echo "hello$a world";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ADD_STRING |  |  | ~0 | 'hello'
 | 1 | ADD_VAR |  |  | ~0 | ~0,!0
 | 2 | ADD_STRING |  |  | ~0 | ~0,'+world'
 | 3 | ECHO |  |  |  | ~0
7 | 4 | RETURN |  |  |  | 1


ASSIGN

PHP code

<?php
/*
 * assigns value1 to result
 * opcode number: 38
 */
$a=1;
$a='a';
$a=new A();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !0,'a'
8 | 2 | ZEND_FETCH_CLASS |  |  | :2 | 'A'
 | 3 | NEW |  |  | $3 | :2
 | 4 | DO_FCALL_BY_NAME |  | 0 |  |
 | 5 | ASSIGN |  |  |  | !0,$3
9 | 6 | RETURN |  |  |  | 1


ASSIGN_ADD

PHP code

<?php
/*
 * Add value1 to value2 and store in variable indicated by value1
 * opcode number: 23
 */
$a+=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_ADD |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_BW_AND

PHP code

<?php
/*
 * Performs binary AND on result and value1 and stores in variable indicated by result.
 * opcode number: 32
 */
$a &= 64;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_BW_AND |  |  |  | !0,64
7 | 1 | RETURN |  |  |  | 1


ASSIGN_BW_OR

PHP code

<?php
/*
 * Performs binary OR on result and value1 and stores in variable indicated by result.
 * opcode number: 31
 */
$a |= 64;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_BW_OR |  |  |  | !0,64
7 | 1 | RETURN |  |  |  | 1


ASSIGN_BW_XOR

PHP code

<?php
/*
 * Performs binary XOR on result and value1and stores in variable indicated by result.
 * opcode number: 33
 */
$a ^= 64;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_BW_XOR |  |  |  | !0,64
7 | 1 | RETURN |  |  |  | 1


ASSIGN_CONCAT

PHP code

<?php
/*
 * Concats string values result and value1 and store in variable indicated by result
 * opcode number: 30
 */
$a .= 'z';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_CONCAT |  |  |  | !0,'z'
7 | 1 | RETURN |  |  |  | 1


ASSIGN_DIM

PHP code

<?php
/*
 *
 * opcode number: 147
 */
$b = 1;
$a[1][2] = $b;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$b, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | FETCH_DIM_W |  |  | $1 | !1,1
 | 2 | ZEND_ASSIGN_DIM |  |  |  | $1,2
 | 3 | ZEND_OP_DATA |  |  |  | !0,$3
8 | 4 | RETURN |  |  |  | 1


ASSIGN_DIV

PHP code

<?php
/*
 * Divide result by value1and store in variable indicated by result.
 * opcode number: 26
 */
$a/=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_DIV |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_MOD

PHP code

<?php
/*
 * Perform result mod value1 and store in variable indicated by result
 * opcode number: 27
 */
$a %= 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_MOD |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_MUL

PHP code

<?php
/*
 * Multiply result by value1 and store in variable indicated by result
 * opcode number: 25
 */
$a*=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_MUL |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_OBJ

PHP code

<?php
/*
 *
 * opcode number: 136
 */
$obj->a = $otherobj;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj, !1=$otherobj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_ASSIGN_OBJ |  |  |  | !0,'a'
 | 1 | ZEND_OP_DATA |  |  |  | !1
7 | 2 | RETURN |  |  |  | 1


ASSIGN_REF

PHP code

<?php
/*
 * indicates that variable indicated by value1 is to be treated in the global scope for the remainder of the current scope.
 * opcode number: 39
 */
global $a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | FETCH_W | globallock |  | $0 | 'a'
 | 1 | ASSIGN_REF |  |  |  | !0,$0
7 | 2 | RETURN |  |  |  | 1


ASSIGN_SL

PHP code

<?php
/*
 * Shift result by value1 bits to left and store in variable indicated by result
 * opcode number: 28
 */
$a <<= 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_SL |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_SR

PHP code

<?php
/*
 * Shift result by value1 bits to right and store in variable indicated by result
 * opcode number: 29
 */
$a >>= 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_SR |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_SUB

PHP code

<?php
/*
 * Subtract value1 from value2 and store in variable indicated by value1
 * opcode number: 24
 */
$a-=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_SUB |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


BEGIN_SILENCE

PHP code

<?php
/*
 * prepare to perform function call without displaying error messages
 * opcode number: 57
 */
/* Intentional file error */
$my_file = @file ('non_existent_file') or
   die ("error:'$php_errormsg'");
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$my_file, !1=$php_errormsg

line | # | op | fetch | ext | return | operands
7 | 0 | BEGIN_SILENCE |  |  | ~0 |
 | 1 | SEND_VAL |  |  |  | 'non_existent_file'
 | 2 | DO_FCALL |  | 1 |  | 'file'
 | 3 | END_SILENCE |  |  |  | ~0
 | 4 | ASSIGN |  |  | $2 | !0,$1
 | 5 | JMPNZ_EX |  |  | ~3 | $2,->11
8 | 6 | ADD_STRING |  |  | ~4 | 'error%3A%27'
 | 7 | ADD_VAR |  |  | ~4 | ~4,!1
 | 8 | ADD_CHAR |  |  | ~4 | ~4,39
 | 9 | EXIT |  |  |  | ~4
 | 10 | BOOL |  |  | ~3 | true
 | 11 | FREE |  |  |  | ~3
9 | 12 | RETURN |  |  |  | 1


BOOL

PHP code

<?php
/*
 * convert value1 to boolean and store in result??????????
 * opcode number: 52
 */
if (1 || 2 || 1) echo "foo";
//$a = true;
//if($a) echo "foo";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | JMPNZ_EX |  |  | ~0 | 1,->2
 | 1 | BOOL |  |  | ~0 | 2
 | 2 | JMPNZ_EX |  |  | ~0 | ~0,->4
 | 3 | BOOL |  |  | ~0 | 1
 | 4 | JMPZ |  |  |  | ~0,->7
 | 5 | ECHO |  |  |  | 'foo'
 | 6 | JMP |  |  |  | ->7
9 | 7 | RETURN |  |  |  | 1


BOOL_NOT

PHP code

<?php
/*
 * Boolean (logical) not of "value"
 * opcode number: 13
 */
echo !1;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BOOL_NOT |  |  | ~0 | 1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BOOL_XOR

PHP code

<?php
/*
 * Boolean (logical) xor of value1
 * opcode number: 14
 */
echo 1 xor 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BOOL_XOR |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BRK

PHP code

<?php
/*
 * ???  End of a case block exists the current switch block.  Followed by JMP?
 * opcode number: 50
 */
$x = 0;
while(1) {
    if($x == 0) break;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,0
7 | 1 | JMPZ |  |  |  | 1,->7
8 | 2 | IS_EQUAL |  |  | ~1 | !0,0
 | 3 | JMPZ |  |  |  | ~1,->6
 | 4 | BRK |  |  |  | 1
 | 5 | JMP |  |  |  | ->6
9 | 6 | JMP |  |  |  | ->1
10 | 7 | RETURN |  |  |  | 1


BW_AND

PHP code

<?php
/*
 * Bit-wise and of value1 and value2
 * opcode number: 10
 */
echo 1&2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_AND |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BW_NOT

PHP code

<?php
/*
 * Bit-wise not of "value"
 * opcode number: 12
 */
echo ~15;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_NOT |  |  | ~0 | 15
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BW_OR

PHP code

<?php
/*
 * Bit-wise or of value1 and value2
 * opcode number: 9
 */
echo 1|2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_OR |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BW_XOR

PHP code

<?php
/*
 * Bit-wise xor of value1 and value2
 * opcode number: 11
 */
echo 1^2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_XOR |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


CASE

PHP code

<?php
/*
 * Set result to true if value1 equals value2.  The value2 must be a constant value?
 * opcode number: 48
 */
$i=0;
switch ($i) {
   case 0:
         echo "i=0";
         break;
   case 1:
         echo "i=1";
         break;
   case 2:
         echo "i=2";
         break;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$i

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,0
8 | 1 | CASE |  |  | ~1 | !0,0
 | 2 | JMPZ |  |  |  | ~1,->6
9 | 3 | ECHO |  |  |  | 'i%3D0'
10 | 4 | BRK |  |  |  | 1
11 | 5 | JMP |  |  |  | ->8
 | 6 | CASE |  |  | ~1 | !0,1
 | 7 | JMPZ |  |  |  | ~1,->11
12 | 8 | ECHO |  |  |  | 'i%3D1'
13 | 9 | BRK |  |  |  | 1
14 | 10 | JMP |  |  |  | ->13
 | 11 | CASE |  |  | ~1 | !0,2
 | 12 | JMPZ |  |  |  | ~1,->16
15 | 13 | ECHO |  |  |  | 'i%3D2'
16 | 14 | BRK |  |  |  | 1
17 | 15 | JMP |  |  |  | ->16
18 | 16 | RETURN |  |  |  | 1


CAST

PHP code

<?php
/*
 * casts value1 as type value2 (type in extended_value)
 * opcode number: 21
 */
echo (int)1;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | CAST |  | 4 | ~0 | 1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


CATCH

PHP code

<?php
/*
 *
 * opcode number: 107
 */
try {
    $error = 'Always throw this error';
    throw new Exception($error);

    // Code following an exception is not executed.
    echo 'Never executed';

} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

// Continue execution
echo 'Hello World';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$error, !1=$e

line | # | op | fetch | ext | return | operands
7 | 0 | ASSIGN |  |  |  | !0,'Always+throw+this+error'
8 | 1 | ZEND_FETCH_CLASS |  |  | :1 | 'Exception'
 | 2 | NEW |  |  | $2 | :1
 | 3 | SEND_VAR |  |  |  | !0
 | 4 | DO_FCALL_BY_NAME |  | 1 |  |
 | 5 | ZEND_THROW |  | 0 |  | $2
11 | 6 | ECHO |  |  |  | 'Never+executed'
13 | 7 | JMP |  |  |  | ->15
 | 8 | ZEND_FETCH_CLASS |  |  | :4 | 'Exception'
 | 9 | ZEND_CATCH |  | 15 |  | $4,!1
14 | 10 | ECHO |  |  |  | 'Caught+exception%3A+'
 | 11 | ZEND_INIT_METHOD_CALL |  |  |  | !1,'getMessage'
 | 12 | DO_FCALL_BY_NAME |  | 0 |  |
 | 13 | ECHO |  |  |  | $6
 | 14 | ECHO |  |  |  | '%0A'
18 | 15 | ECHO |  |  |  | 'Hello+World'
19 | 16 | RETURN |  |  |  | 1


CLONE

PHP code

<?php
/*
 *
 * opcode number: 110
 */
$obj = new A();
$copy = clone $obj;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj, !1=$copy

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_CLONE |  |  | $4 | !0
 | 5 | ASSIGN |  |  |  | !1,$4
8 | 6 | RETURN |  |  |  | 1


CONCAT

PHP code

<?php
/*
 * Concats string values string1 and string2
 * opcode number: 8
 */
echo "hello" . "world";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | CONCAT |  |  | ~0 | 'hello','world'
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


CONT

PHP code

<?php
/*
 * Continue next iteration of current loop level
 * opcode number: 51
 */
$foo = false;
while(!$foo) {
    $foo = true;
    continue;
}
?>

PHP opcodes

Function name: (null)

compiled vars: !0 = $foo

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0, false
7 | 1 | BOOL_NOT |  |  | ~1 | !0
 | 2 | JMPZ |  |  |  | ~1, ->5
8 | 3 | ASSIGN |  |  |  | !0, true
9 | 4 | CONT |  |  |  | 1
10 | 5 | JMP |  |  |  | ->1
12 | 6 | RETURN |  |  |  | 1


DECLARE_CLASS

PHP code

<?php
/*
 * Declare a class with the name of class-name as the implementation specified by ID.
 * opcode number: 139
 */
class A {
    function methodA(){
        echo "hello world";
    }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
11 | 1 | RETURN |  |  |  | 1

Function name: methodA

Compiled variables: none

line | # | op | fetch | ext | return | operands
8 | 0 | ECHO |  |  |  | 'hello+world'
9 | 1 | RETURN |  |  |  | null


  • « DECLARE_CLASS
  • DECLARE_FUNCTION »
  • PHP Manual
  • Opcode Descriptions and Examples
  • DECLARE_CONST

DECLARE_CONST

PHP code

<?php
/*
 *
 * opcode number: 143
 * No sample PHP yet */
?>


DECLARE_FUNCTION

PHP code

<?php
/*
 *
 * opcode number: 141
 */
class A{
 function funcA(){
 }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
10 | 1 | RETURN |  |  |  | 1

Function name: funcA

Compiled variables: none

line | # | op | fetch | ext | return | operands
8 | 0 | RETURN |  |  |  | null


DECLARE_INHERITED_CLASS

PHP code

<?php
/*
 *
 * opcode number: 140
 */
 if($b){
 class Foo {
  public static $my_static = 'foo';
  public function staticValue() {
    return self::$my_static;
  }
 }

 class Bar extends Foo {
  public function fooStatic() {
     echo parent::$my_static;
  }
 }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$b

line | # | op | fetch | ext | return | operands
6 | 0 | JMPZ |  |  |  | !0,->5
7 | 1 | ZEND_DECLARE_CLASS |  |  | $0 | '%00foo%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be503b','foo'
14 | 2 | ZEND_FETCH_CLASS |  |  | :1 | 'Foo'
 | 3 | ZEND_DECLARE_INHERITED_CLASS |  |  | $2 | '%00bar%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be50bc','bar'
19 | 4 | JMP |  |  |  | ->5
20 | 5 | RETURN |  |  |  | 1

Function name: staticValue

Compiled variables: !0=$my_static

line | # | op | fetch | ext | return | operands
10 | 0 | ZEND_FETCH_CLASS |  |  |  |
 | 1 | FETCH_R | staticmember |  | $1 | 'my_static'
 | 2 | RETURN |  |  |  | $1
11 | 3 | RETURN |  |  |  | null

Function name: fooStatic

Compiled variables: !0=$my_static

line | # | op | fetch | ext | return | operands
16 | 0 | ZEND_FETCH_CLASS |  |  | :0 |
 | 1 | FETCH_R | staticmember |  | $1 | 'my_static'
 | 2 | ECHO |  |  |  | $1
17 | 3 | RETURN |  |  |  | null


  • « DECLARE_INHERITED_CLASS
  • DIV »
  • PHP Manual
  • Opcode Descriptions and Examples
  • DECLARE_INHERITED_CLASS_DELAYED

DECLARE_INHERITED_CLASS_DELAYED

PHP code

<?php
/*
 *
 * opcode number: 145
 * No sample PHP yet */
?>


DIV

PHP code

<?php
/*
 * Divides "value1" by "value2" and stores the result into "result".
 * opcode number: 4
 */
echo 6/3;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | DIV |  |  | ~0 | 6,3
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


DO_FCALL

PHP code

<?php
/*
 * Call a function.  Following multiple SEND_VAL, SEND_VAR or SEND_REF.
 * opcode number: 60
 */
$a = phpinfo();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | DO_FCALL |  | 0 |  | 'phpinfo'
 | 1 | ASSIGN |  |  |  | !0,$0
7 | 2 | RETURN |  |  |  | 1


DO_FCALL_BY_NAME

PHP code

<?php
/*
 * Call a function by name.  Following INIT_FCALL_BY_NAME and multiple SEND_VAL, SEND_VAR or SEND_REF.
 * opcode number: 61
 */
$x = 'phpinfo';
$a = $x();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,'phpinfo'
7 | 1 | INIT_FCALL_BY_NAME |  |  |  | !0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !1,$1
8 | 4 | RETURN |  |  |  | 1


ECHO

PHP code

<?php
/*
 * Dump text
 * opcode number: 40
 */
echo "hello world";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | ECHO |  |  |  | 'hello+world'
7 | 1 | RETURN |  |  |  | 1


END_SILENCE

PHP code

<?php
/*
 * no longer surpress error messages
 * opcode number: 58
 */
$my_file = @file ('non_existent_file') or
   die ("error:'$php_errormsg'");
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$my_file, !1=$php_errormsg

line | # | op | fetch | ext | return | operands
6 | 0 | BEGIN_SILENCE |  |  | ~0 |
 | 1 | SEND_VAL |  |  |  | 'non_existent_file'
 | 2 | DO_FCALL |  | 1 |  | 'file'
 | 3 | END_SILENCE |  |  |  | ~0
 | 4 | ASSIGN |  |  | $2 | !0,$1
 | 5 | JMPNZ_EX |  |  | ~3 | $2,->11
7 | 6 | ADD_STRING |  |  | ~4 | 'error%3A%27'
 | 7 | ADD_VAR |  |  | ~4 | ~4,!1
 | 8 | ADD_CHAR |  |  | ~4 | ~4,39
 | 9 | EXIT |  |  |  | ~4
 | 10 | BOOL |  |  | ~3 | true
 | 11 | FREE |  |  |  | ~3
8 | 12 | RETURN |  |  |  | 1


EXIT

PHP code

<?php
/*
 * Exit running after dumping "message".
 * opcode number: 79
 */
die("foobar");
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | EXIT |  |  |  | 'foobar'
7 | 1 | RETURN |  |  |  | 1


  • « EXIT
  • EXT_FCALL_END »
  • PHP Manual
  • Opcode Descriptions and Examples
  • EXT_FCALL_BEGIN

EXT_FCALL_BEGIN

PHP code

<?php
/*
 *
 * opcode number: 102
 * No sample PHP yet */
?>


  • « EXT_FCALL_BEGIN
  • EXT_NOP »
  • PHP Manual
  • Opcode Descriptions and Examples
  • EXT_FCALL_END

EXT_FCALL_END

PHP code

<?php
/*
 *
 * opcode number: 103
 * No sample PHP yet */
?>


  • « EXT_FCALL_END
  • EXT_STMT »
  • PHP Manual
  • Opcode Descriptions and Examples
  • EXT_NOP

EXT_NOP

PHP code

<?php
/*
 *
 * opcode number: 104
 * No sample PHP yet */
?>


EXT_STMT

PHP code

<?php
/*
 *
 * opcode number: 101
 */
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
7 | 0 | EXT_STMT |  |  |  |
8 | 1 | RETURN |  |  |  | 1


FE_FETCH

PHP code

<?php
/*
 * Fetch an element from iterator.  If no element is available, jump to address.  Followed by OP_DATA?
 * opcode number: 78
 */
$a = array(1,2,3);
foreach($a as $num){
    print $num;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a, !1=$num

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | FE_RESET |  |  | $2 | !0,->11
 | 5 | FE_FETCH |  |  | $3 | $2,->11
 | 6 | ZEND_OP_DATA |  |  |  |
 | 7 | ASSIGN |  |  |  | !1,$3
8 | 8 | PRINT |  |  | ~5 | !1
 | 9 | FREE |  |  |  | ~5
9 | 10 | JMP |  |  |  | ->5
 | 11 | SWITCH_FREE |  |  |  | $2
10 | 12 | RETURN |  |  |  | 1


FE_RESET

PHP code

<?php
/*
 * Initialize an iterator on array-value.  If the array is empty, jump to address.  Followed by FE_FETCH.
 * opcode number: 77
 */
$a = array(1,2,3);
foreach($a as $num){
    print $num;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a, !1=$num

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | FE_RESET |  |  | $2 | !0,->11
 | 5 | FE_FETCH |  |  | $3 | $2,->11
 | 6 | ZEND_OP_DATA |  |  |  |
 | 7 | ASSIGN |  |  |  | !1,$3
8 | 8 | PRINT |  |  | ~5 | !1
 | 9 | FREE |  |  |  | ~5
9 | 10 | JMP |  |  |  | ->5
 | 11 | SWITCH_FREE |  |  |  | $2
10 | 12 | RETURN |  |  |  | 1


FETCH_CLASS

PHP code

<?php
/*
 *
 * opcode number: 109
 */
$obj = new A();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | RETURN |  |  |  | 1


FETCH_CONSTANT

PHP code

<?php
/*
 * Fetch the constant value bound to the specified name (name) and stores it into a variable (result).
 * opcode number: 99
 */
define("FOO", "something");
echo FOO;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | SEND_VAL |  |  |  | 'FOO'
 | 1 | SEND_VAL |  |  |  | 'something'
 | 2 | DO_FCALL |  | 2 |  | 'define'
7 | 3 | FETCH_CONSTANT |  |  | ~1 | 'FOO'
 | 4 | ECHO |  |  |  | ~1
8 | 5 | RETURN |  |  |  | 1


FETCH_DIM_FUNC_ARG

PHP code

<?php
/*
 *
 * opcode number: 93
 */

function foo(&$x)
{
  print($x);
}

$x = array(0, 1, 2, 3, 4, 5);
$z = "foo";

$z($x[0]);

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$z

line | # | op | fetch | ext | return | operands
7 | 0 | NOP |  |  |  |
12 | 1 | INIT_ARRAY |  |  | ~0 | 0
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 1
 | 3 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 4 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 5 | ADD_ARRAY_ELEMENT |  |  | ~0 | 4
 | 6 | ADD_ARRAY_ELEMENT |  |  | ~0 | 5
 | 7 | ASSIGN |  |  |  | !0,~0
13 | 8 | ASSIGN |  |  |  | !1,'foo'
15 | 9 | INIT_FCALL_BY_NAME |  |  |  | !1
 | 10 | FETCH_DIM_FUNC_ARG |  |  | $3 | !0,0
 | 11 | SEND_VAR |  |  |  | $3
 | 12 | DO_FCALL_BY_NAME |  | 1 |  |
17 | 13 | RETURN |  |  |  | 1

Function name: foo

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
7 | 0 | RECV |  |  |  | 1
9 | 1 | PRINT |  |  | ~0 | !0
 | 2 | FREE |  |  |  | ~0
10 | 3 | RETURN |  |  |  | null


  • « FETCH_DIM_FUNC_ARG
  • FETCH_DIM_R »
  • PHP Manual
  • Opcode Descriptions and Examples
  • FETCH_DIM_IS

FETCH_DIM_IS

PHP code

<?php
/*
 *
 * opcode number: 90
 * No sample PHP yet */
?>


FETCH_DIM_R

PHP code

<?php
/*
 * Fetch the value of the element at "index" in "array-value" to store it in "result".  Read-only?
 * opcode number: 81
 */
$x = array(1,2,3);
$a = 'x';
echo $$a[0];
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | ASSIGN |  |  |  | !1,'x'
8 | 5 | FETCH_DIM_R |  |  | $3 | !1,0
 | 6 | FETCH_R | local |  | $4 | $3
 | 7 | ECHO |  |  |  | $4
9 | 8 | RETURN |  |  |  | 1


FETCH_DIM_RW

PHP code

<?php
/*
 * Fetch the value of the element at "index" in "array-value" to store it in "result".
 * opcode number: 87
 */
$x = array(1,2,3);
$a = 'x';
$$a[0]++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | ASSIGN |  |  |  | !1,'x'
8 | 5 | FETCH_DIM_R |  |  | $3 | !1,0
 | 6 | FETCH_RW | local |  | $4 | $3
 | 7 | POST_INC |  |  | ~5 | $4
 | 8 | FREE |  |  |  | ~5
9 | 9 | RETURN |  |  |  | 1


FETCH_DIM_TMP_VAR

PHP code

<?php
/*
 * Fetch an entry of an array from a temporal variable?
 * opcode number: 98
 */
list($x) = array("X");
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 'X'
 | 1 | FETCH_DIM_TMP_VAR |  |  | $1 | ~0,0
 | 2 | ASSIGN |  |  |  | !0,$1
 | 3 | FREE |  |  |  | ~0
7 | 4 | RETURN |  |  |  | 1


FETCH_DIM_UNSET

PHP code

<?php
/*
 * Fetch an entry of an array variable for the purpose of unset() operation.
 * opcode number: 96
 * No sample PHP yet */
?>


FETCH_DIM_W

PHP code

<?php
/*
 * Fetch the value of the element at "index" in "array-value" to store it in "result".  Write-only?
 * opcode number: 84
 */
$a = 1;
while($a > 0){
    $a = 0;
}
/*$input =array(1,2,3);
while (list($var,) = @each($input)){
    unset($$var);
}*/
/*$a = array(1,2,3);
$x = 'a';
$$x[0] = 1;*/

/*while ($b = each($a)) {
  print $b;
}*/

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | IS_SMALLER |  |  | ~1 | 0,!0
 | 2 | JMPZ |  |  |  | ~1,->5
8 | 3 | ASSIGN |  |  |  | !0,0
9 | 4 | JMP |  |  |  | ->1
23 | 5 | RETURN |  |  |  | 1


FETCH_FUNC_ARG

PHP code

<?php
/*
 *
 * opcode number: 92
 */
function foo($x)
{
}

$x = 1;
$y = "x";
$z = "foo";

$z($$y);

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$y, !2=$z

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
10 | 1 | ASSIGN |  |  |  | !0,1
11 | 2 | ASSIGN |  |  |  | !1,'x'
12 | 3 | ASSIGN |  |  |  | !2,'foo'
14 | 4 | INIT_FCALL_BY_NAME |  |  |  | !2
 | 5 | FETCH_FUNC_ARG | local |  | $3 | !1
 | 6 | SEND_VAR |  |  |  | $3
 | 7 | DO_FCALL_BY_NAME |  | 1 |  |
16 | 8 | RETURN |  |  |  | 1

Function name: foo

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
6 | 0 | RECV |  |  |  | 1
8 | 1 | RETURN |  |  |  | null


FETCH_IS

PHP code

<?php
/*
 * Fetch the value from variable which is to be used to test if it is set or not, through isset()/isempty().
 * opcode number: 89
 */
echo isset($_SESSION['userid']);
echo isset($_SESSION['userid'][1]);
echo isset($_SESSION->prop->prop);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | FETCH_IS |  |  | $0 | '_SESSION'
 | 1 | ZEND_ISSET_ISEMPTY_DIM_OBJ |  | 1 | ~1 | $0,'userid'
 | 2 | ECHO |  |  |  | ~1
7 | 3 | FETCH_IS |  |  | $2 | '_SESSION'
 | 4 | FETCH_DIM_IS |  |  | $3 | $2,'userid'
 | 5 | ZEND_ISSET_ISEMPTY_DIM_OBJ |  | 1 | ~4 | $3,1
 | 6 | ECHO |  |  |  | ~4
8 | 7 | FETCH_IS |  |  | $5 | '_SESSION'
 | 8 | FETCH_OBJ_IS |  |  | $6 | $5,'prop'
 | 9 | ZEND_ISSET_ISEMPTY_PROP_OBJ |  |  | ~7 | $6,'prop'
 | 10 | ECHO |  |  |  | ~7
9 | 11 | RETURN |  |  |  | 1


FETCH_OBJ_FUNC_ARG

PHP code

<?php
/*
 *
 * opcode number: 94
 */
include './classA.php';

function foo(&$x)
{
  print($x);
}

$z = "foo";

$obj = new A();
print $obj->num;
$z($obj->num);

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$z, !1=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | INCLUDE_OR_EVAL |  |  |  | '.%2FclassA.php',INCLUDE
8 | 1 | NOP |  |  |  |
13 | 2 | ASSIGN |  |  |  | !0,'foo'
15 | 3 | ZEND_FETCH_CLASS |  |  | :2 | 'A'
 | 4 | NEW |  |  | $3 | :2
 | 5 | DO_FCALL_BY_NAME |  | 0 |  |
 | 6 | ASSIGN |  |  |  | !1,$3
16 | 7 | FETCH_OBJ_R |  |  | $6 | !1,'num'
 | 8 | PRINT |  |  | ~7 | $6
 | 9 | FREE |  |  |  | ~7
17 | 10 | INIT_FCALL_BY_NAME |  |  |  | !0
 | 11 | FETCH_OBJ_FUNC_ARG |  |  | $8 | !1,'num'
 | 12 | SEND_VAR |  |  |  | $8
 | 13 | DO_FCALL_BY_NAME |  | 1 |  |
19 | 14 | RETURN |  |  |  | 1

Function name: foo

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
8 | 0 | RECV |  |  |  | 1
10 | 1 | PRINT |  |  | ~0 | !0
 | 2 | FREE |  |  |  | ~0
11 | 3 | RETURN |  |  |  | null

Function name: foo

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
8 | 0 | RECV |  |  |  | 1
10 | 1 | PRINT |  |  | ~0 | !0
 | 2 | FREE |  |  |  | ~0
11 | 3 | RETURN |  |  |  | null


  • « FETCH_OBJ_FUNC_ARG
  • FETCH_OBJ_R »
  • PHP Manual
  • Opcode Descriptions and Examples
  • FETCH_OBJ_IS

FETCH_OBJ_IS

PHP code

<?php
/*
 *
 * opcode number: 91
 * No sample PHP yet */
?>


FETCH_OBJ_R

PHP code

<?php
/*
 * Fetch the "prop-name" property value of this object.  Read-only?
 * opcode number: 82
 */
$x = new A();
$a = 'x';
echo $$a->num;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ASSIGN |  |  |  | !1,'x'
8 | 5 | FETCH_R | local |  | $5 | !1
 | 6 | FETCH_OBJ_R |  |  | $6 | $5,'num'
 | 7 | ECHO |  |  |  | $6
9 | 8 | RETURN |  |  |  | 1


FETCH_OBJ_RW

PHP code

<?php
/*
 * Fetch the "prop-name" property value of this object.
 * opcode number: 88
 */
$x = new A();
$a = 'x';
$$a->num++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ASSIGN |  |  |  | !1,'x'
8 | 5 | FETCH_RW | local |  | $5 | !1
 | 6 | ZEND_POST_INC_OBJ |  |  | ~7 | $5,'num'
 | 7 | FREE |  |  |  | ~7
9 | 8 | RETURN |  |  |  | 1


FETCH_OBJ_UNSET

PHP code

<?php
/*
 * Fetch a property of an object variable for the purpose of unset() operation.
 * opcode number: 97
 * No sample PHP yet */
?>


FETCH_OBJ_W

PHP code

<?php
/*
 * Fetch an object from the property of this object and write to the property of the fectched object.
 * opcode number: 85
 */
$foo = new stdclass;
$foo->bar = new stdclass;
$foo->bar->baz = 'quix';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0 = $foo

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  | 4 | :0 | 'stdclass'
 | 1 | NEW |  |  |  | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0
7 | 4 | ZEND_FETCH_CLASS |  | 4 | :5 | 'stdclass'
 | 5 | NEW |  |  |  | :5
 | 6 | DO_FCALL_BY_NAME |  | 0 |  |
 | 7 | ZEND_ASSIGN_OBJ |  |  |  | !0, 'bar'
 | 8 | ZEND_OP_DATA |  |  |  |
8 | 9 | FETCH_OBJ_W |  |  |  | !0, 'bar'
 | 10 | ZEND_ASSIGN_OBJ |  |  |  | 'baz'
 | 11 | ZEND_OP_DATA |  |  |  | 'quix'
9 | 12 | RETURN |  |  |  | 1


FETCH_R

PHP code

<?php
/*
 * Fetch the value of the varible of "name" to assign it to a variable?  Read-only?
 * opcode number: 80
 */
$x = 1;
$a = 'x';
echo $$a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !1,'x'
8 | 2 | FETCH_R | local |  | $2 | !1
 | 3 | ECHO |  |  |  | $2
9 | 4 | RETURN |  |  |  | 1


FETCH_RW

PHP code

<?php
/*
 * Fetch the value of the varible of "name" to assign it to a variable?
 * opcode number: 86
 */
$x = 1;
$a = 'x';
$$a++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !1,'x'
8 | 2 | FETCH_RW | local |  | $2 | !1
 | 3 | POST_INC |  |  | ~3 | $2
 | 4 | FREE |  |  |  | ~3
9 | 5 | RETURN |  |  |  | 1


FETCH_UNSET

PHP code

<?php
/*
 * Fetch a variable for the purpose of unset() operation.
 * opcode number: 95
 * No sample PHP yet */
?>


FETCH_W

PHP code

<?php
/*
 * Fetch the value of the varible of "name" to assign it to a variable?  Write-only?
 * opcode number: 83
 */
$x = 1;
$a = 'x';
$$a = 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !1,'x'
8 | 2 | FETCH_W | local |  | $2 | !1
 | 3 | ASSIGN |  |  |  | $2,2
9 | 4 | RETURN |  |  |  | 1


FREE

PHP code

<?php
/*
 * Release the allocated space of the value.
 * opcode number: 70
 */
 print "Hello World";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | PRINT |  |  | ~0 | 'Hello+World'
 | 1 | FREE |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


  • « FREE
  • HANDLE_EXCEPTION »
  • PHP Manual
  • Opcode Descriptions and Examples
  • GOTO

GOTO

PHP code

<?php
/*
 *
 * opcode number: 100
 * No sample PHP yet */
?>


HANDLE_EXCEPTION

PHP code

<?php
/*
 *
 * opcode number: 149
 */
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | RETURN |  |  |  | 1


INCLUDE_OR_EVAL

PHP code

<?php
/*
 * Include the file specified by filename and eval it.
 * opcode number: 73
 */
include("test.php");
eval("test.php");
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | INCLUDE_OR_EVAL |  |  |  | 'test.php',INCLUDE
7 | 1 | INCLUDE_OR_EVAL |  |  |  | 'test.php',EVAL
8 | 2 | RETURN |  |  |  | 1

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
2 | 0 | DO_FCALL |  | 0 |  | 'phpinfo'
3 | 1 | RETURN |  |  |  | 1


INIT_ARRAY

PHP code

<?php
/*
 * Allocate a new array with elem-value as the first element of the array.  Followed by ADD_ARRAY_ELEMENT.
 * opcode number: 71
 */
$a = array(1,2,3);
print_r($a);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | SEND_VAR |  |  |  | !0
 | 5 | DO_FCALL |  | 1 |  | 'print_r'
8 | 6 | RETURN |  |  |  | 1


INIT_FCALL_BY_NAME

PHP code

<?php
/*
 * prepare for a function call to function value1
 * opcode number: 59
 */
$x = 'phpinfo';
$a = $x();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,'phpinfo'
7 | 1 | INIT_FCALL_BY_NAME |  |  |  | !0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !1,$1
8 | 4 | RETURN |  |  |  | 1


INIT_METHOD_CALL

PHP code

<?php
/*
 * Prepare for a method call.  Followed by DO_FCALL.
 * opcode number: 112
 */
class A {
  var $num;
    function incrementNum(){
    $num++;
  }
}

$obj = new A();
$obj->incrementNum();

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
13 | 1 | ZEND_FETCH_CLASS |  |  | :1 | 'A'
 | 2 | NEW |  |  | $2 | :1
 | 3 | DO_FCALL_BY_NAME |  | 0 |  |
 | 4 | ASSIGN |  |  |  | !0,$2
14 | 5 | ZEND_INIT_METHOD_CALL |  |  |  | !0,'incrementNum'
 | 6 | DO_FCALL_BY_NAME |  | 0 |  |
16 | 7 | RETURN |  |  |  | 1

Function name: incrementNum

Compiled variables: !0=$num

line | # | op | fetch | ext | return | operands
9 | 0 | POST_INC |  |  | ~0 | !0
 | 1 | FREE |  |  |  | ~0
10 | 2 | RETURN |  |  |  | null


  • « INIT_METHOD_CALL
  • INIT_STATIC_METHOD_CALL »
  • PHP Manual
  • Opcode Descriptions and Examples
  • INIT_NS_FCALL_BY_NAME

INIT_NS_FCALL_BY_NAME

PHP code

<?php
/*
 *
 * opcode number: 69
 * No sample PHP yet */
?>


INIT_STATIC_METHOD_CALL

PHP code

<?php
/*
 *
 * opcode number: 113
 */
class Foo {
    public static function aStaticMethod() {
            echo "hello world\n";
    }
}

Foo::aStaticMethod();
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
12 | 1 | ZEND_INIT_STATIC_METHOD_CALL |  |  |  | 'Foo','aStaticMethod'
 | 2 | ZEND_OP_DATA |  |  |  | 'foo%3A%3Aastaticmethod'
 | 3 | DO_FCALL_BY_NAME |  | 0 |  |
13 | 4 | RETURN |  |  |  | 1

Function name: aStaticMethod

Compiled variables: none

line | # | op | fetch | ext | return | operands
8 | 0 | ECHO |  |  |  | 'hello+world%0A'
9 | 1 | RETURN |  |  |  | null


INIT_STRING

PHP code

<?php
/*
 * appears to create a string variable in result
 * opcode number: 53
 */
echo "hello$a world";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ADD_STRING |  |  | ~0 | 'hello'
 | 1 | ADD_VAR |  |  | ~0 | ~0,!0
 | 2 | ADD_STRING |  |  | ~0 | ~0,'+world'
 | 3 | ECHO |  |  |  | ~0
7 | 4 | RETURN |  |  |  | 1


INSTANCEOF

PHP code

<?php
/*
 *
 * opcode number: 138
 */
$obj = new A();

if ($obj instanceof A) {
   echo 'A';
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
8 | 4 | ZEND_FETCH_CLASS |  |  | :4 | 'A'
 | 5 | ZEND_INSTANCEOF |  |  | ~5 | !0,$4
 | 6 | JMPZ |  |  |  | ~5,->9
9 | 7 | ECHO |  |  |  | 'A'
10 | 8 | JMP |  |  |  | ->9
11 | 9 | RETURN |  |  |  | 1


IS_EQUAL

PHP code

<?php
/*
 * compares if value1 and value2 are equal
 * opcode number: 17
 */
echo (1 == 1);
echo (1 == 'c');
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_EQUAL |  |  | ~0 | 1,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | IS_EQUAL |  |  | ~1 | 1,'c'
 | 3 | ECHO |  |  |  | ~1
8 | 4 | RETURN |  |  |  | 1


IS_IDENTICAL

PHP code

<?php
/*
 * Compares value1 and value2 to see if they are equal AND have the same type
 * opcode number: 15
 */
echo (1===1);
echo (1==='a');
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_IDENTICAL |  |  | ~0 | 1,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | IS_IDENTICAL |  |  | ~1 | 1,'a'
 | 3 | ECHO |  |  |  | ~1
8 | 4 | RETURN |  |  |  | 1


IS_NOT_EQUAL

PHP code

<?php
/*
 * compares if value1 and value2 are not equal
 * opcode number: 18
 */
echo (1 != 1);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_NOT_EQUAL |  |  | ~0 | 1,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


IS_NOT_IDENTICAL

PHP code

<?php
/*
 * compares value1 and value2 to see if they are unequal or of different types
 * opcode number: 16
 */
echo (1 !== 1);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_NOT_IDENTICAL |  |  | ~0 | 1,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


IS_SMALLER

PHP code

<?php
/*
 * compares if value1 is less than value2
 * opcode number: 19
 */
echo (1 < 2);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_SMALLER |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


IS_SMALLER_OR_EQUAL

PHP code

<?php
/*
 * compares if value1 is less than or equal to value2
 * opcode number: 20
 */
echo (1 >= 2);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_SMALLER_OR_EQUAL |  |  | ~0 | 2,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


ISSET_ISEMPTY_DIM_OBJ

PHP code

<?php
/*
 * Tests if the entry of an array is set or not.
 * opcode number: 115
 */
if(isset($a[0])) return 0;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_ISSET_ISEMPTY_DIM_OBJ |  | 1 | ~0 | !0,0
 | 1 | JMPZ |  |  |  | ~0,->4
 | 2 | RETURN |  |  |  | 0
 | 3 | JMP |  |  |  | ->4
7 | 4 | RETURN |  |  |  | 1


ISSET_ISEMPTY_PROP_OBJ

PHP code

<?php
/*
 *
 * opcode number: 148
 */
$obj = new A();
if(empty($obj->num)) return 0;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_ISSET_ISEMPTY_PROP_OBJ |  |  | ~4 | !0,'num'
 | 5 | JMPZ |  |  |  | ~4,->8
 | 6 | RETURN |  |  |  | 0
 | 7 | JMP |  |  |  | ->8
8 | 8 | RETURN |  |  |  | 1


ISSET_ISEMPTY_VAR

PHP code

<?php
/*
 * Tests if the value of a variable is set or not.
 * opcode number: 114
 */
if(isset($a)){ return 0;}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_ISSET_ISEMPTY_VAR |  | 5 | ~0 | !0
 | 1 | JMPZ |  |  |  | ~0,->4
 | 2 | RETURN |  |  |  | 0
 | 3 | JMP |  |  |  | ->4
7 | 4 | RETURN |  |  |  | 1


JMP

PHP code

<?php
/*
 * Unconditonally jump to the address
 * opcode number: 42
 */
$foo = false;
while(!$foo) {
    $foo = true;
}
?>

PHP opcodes

Function name: (null)

compiled vars: !0 = $foo

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0, false
7 | 1 | BOOL_NOT |  |  | ~1 | !0
 | 2 | JMPZ |  |  |  | ~1, ->5
8 | 3 | ASSIGN |  |  |  | !0, true
9 | 4 | JMP |  |  |  | ->1
11 | 5 | RETURN |  |  |  | 1


JMPNZ

PHP code

<?php
/*
 * Jump to the address if the value is not zero
 * opcode number: 44
 */
for($i=0; $i<3; $i++){
    echo "hi";
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$i

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,0
 | 1 | IS_SMALLER |  |  | ~1 | !0,3
 | 2 | JMPZNZ |  | 6 |  | ~1,->8
 | 3 | POST_INC |  |  | ~2 | !0
 | 4 | FREE |  |  |  | ~2
 | 5 | JMP |  |  |  | ->1
7 | 6 | ECHO |  |  |  | 'hi'
8 | 7 | JMP |  |  |  | ->3
9 | 8 | RETURN |  |  |  | 1


JMPNZ_EX

PHP code

<?php
/*
 * Jump to the address if the xor of value1 and value2 is zero .. ???
 * opcode number: 47
 */
if(1^2) return;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_XOR |  |  | ~0 | 1,2
 | 1 | JMPZ |  |  |  | ~0,->4
 | 2 | RETURN |  |  |  | null
 | 3 | JMP |  |  |  | ->4
7 | 4 | RETURN |  |  |  | 1


JMPZ

PHP code

<?php
/*
 * Jump to the address if the value is zero
 * opcode number: 43
 */
if($a != 0) echo "foo";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | IS_NOT_EQUAL |  |  | ~0 | !0,0
 | 1 | JMPZ |  |  |  | ~0,->4
 | 2 | ECHO |  |  |  | 'foo'
 | 3 | JMP |  |  |  | ->4
7 | 4 | RETURN |  |  |  | 1


JMPZ_EX

PHP code

<?php
/*
 * Jump to the address if the xor of value1 and value2 is zero .. ???
 * opcode number: 46
 */

?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
7 | 0 | RETURN |  |  |  | 1


JMPZNZ

PHP code

<?php
/*
 * Jump to the address given in the operands if the value is zero;
 * jump to the address given in extended data if nonzero.
 * opcode number: 45
 */
for($i=0; $i<3; $i++){
    echo "hi";
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$i

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,0
 | 1 | IS_SMALLER |  |  | ~1 | !0,3
 | 2 | JMPZNZ |  | 6 |  | ~1,->8
 | 3 | POST_INC |  |  | ~2 | !0
 | 4 | FREE |  |  |  | ~2
 | 5 | JMP |  |  |  | ->1
7 | 6 | ECHO |  |  |  | 'hi'
8 | 7 | JMP |  |  |  | ->3
9 | 8 | RETURN |  |  |  | 1


MOD

PHP code

<?php
/*
 * Makes the value of "result" congruent to "value1" modulo "value2".
 * opcode number: 5
 */
echo 6 % 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | MOD |  |  | ~0 | 6,3
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


MUL

PHP code

<?php
/*
 * Multiplys "value1" by "value2" and stores the result into "result".
 * opcode number: 3
 */
echo 2*3;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | MUL |  |  | ~0 | 2,3
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


NEW

PHP code

<?php
/*
 * Construct an instance of "type" and store the reference to the object into "result".
 * opcode number: 68
 */
$obj = new A();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | RETURN |  |  |  | 1


NOP

PHP code

<?php
/*
 * no operation
 * opcode number: 0
 */
function A(){};
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
7 | 1 | RETURN |  |  |  | 1

Function name: A

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | RETURN |  |  |  | null


POST_DEC

PHP code

<?php
/*
 * decrements variable indicated by value1 by 1 (after performing other operations) and stores in result
 * opcode number: 37
 */
$a--;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | POST_DEC |  |  | ~0 | !0
 | 1 | FREE |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


POST_DEC_OBJ

PHP code

<?php
/*
 *
 * opcode number: 135
 */
$obj = new A();
$obj->num--;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_POST_DEC_OBJ |  |  | ~5 | !0,'num'
 | 5 | FREE |  |  |  | ~5
8 | 6 | RETURN |  |  |  | 1


POST_INC

PHP code

<?php
/*
 * increments variable indicated by value1 by 1 (after performing other operations) and stores in result
 * opcode number: 36
 */
$a++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | POST_INC |  |  | ~0 | !0
 | 1 | FREE |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


POST_INC_OBJ

PHP code

<?php
/*
 * Increment the property value specified by prop-name and store the original value into result.
 * opcode number: 134
 */
$obj = new A();
$obj->num++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_POST_INC_OBJ |  |  | ~5 | !0,'num'
 | 5 | FREE |  |  |  | ~5
8 | 6 | RETURN |  |  |  | 1


PRE_DEC

PHP code

<?php
/*
 * decrements variable indicated by value1 by 1 (before performing other operations) and stores in results
 * opcode number: 35
 */
--$a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | PRE_DEC |  |  |  | !0
7 | 1 | RETURN |  |  |  | 1


PRE_DEC_OBJ

PHP code

<?php
/*
 *
 * opcode number: 133
 */
$obj = new A();
--$obj->num;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_PRE_DEC_OBJ |  |  |  | !0,'num'
8 | 5 | RETURN |  |  |  | 1


PRE_INC

PHP code

<?php
/*
 * increments variable indicated by value1 by 1 (before performing other operations) and stores in result
 * opcode number: 34
 */
++$a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | PRE_INC |  |  |  | !0
7 | 1 | RETURN |  |  |  | 1


PRE_INC_OBJ

PHP code

<?php
/*
 *
 * opcode number: 132
 */
$obj = new A();
++$obj->num;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_PRE_INC_OBJ |  |  |  | !0,'num'
8 | 5 | RETURN |  |  |  | 1


PRINT

PHP code

<?php
/*
 *
 * opcode number: 41
 */
print "Hello World";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | PRINT |  |  | ~0 | 'Hello+World'
 | 1 | FREE |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


QM_ASSIGN

PHP code

<?php
/*
 * Question Mark Assign, used twice inside a question mark assign to temporarily assign result as value1  (this is followed up with an ASSIGN bytecode)
 * opcode number: 22
 */
function A(){
 echo 1?2:3;
}

function B(){
 $b = 0;
 $a = $b > 1 ? 10: 11;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
10 | 1 | NOP |  |  |  |
14 | 2 | RETURN |  |  |  | 1

Function name: A

Compiled variables: none

line | # | op | fetch | ext | return | operands
7 | 0 | JMPZ |  |  |  | 1,->3
 | 1 | QM_ASSIGN |  |  | ~0 | 2
 | 2 | JMP |  |  |  | ->4
 | 3 | QM_ASSIGN |  |  | ~0 | 3
 | 4 | ECHO |  |  |  | ~0
8 | 5 | RETURN |  |  |  | null

Function name: B

Compiled variables: !0=$b, !1=$a

line | # | op | fetch | ext | return | operands
11 | 0 | ASSIGN |  |  |  | !0,0
12 | 1 | IS_SMALLER |  |  | ~1 | 1,!0
 | 2 | JMPZ |  |  |  | ~1,->5
 | 3 | QM_ASSIGN |  |  | ~2 | 10
 | 4 | JMP |  |  |  | ->6
 | 5 | QM_ASSIGN |  |  | ~2 | 11
 | 6 | ASSIGN |  |  |  | !1,~2
13 | 7 | RETURN |  |  |  | null


RAISE_ABSTRACT_ERROR

PHP code

<?php
/*
 *
 * opcode number: 142
 */

abstract class fail {
    abstract function show();
}

class pass extends fail {
    function show() {
        echo "Call to function show()\n";
    }
}

$t2 = new pass();
$t2->show();

$t = new fail();
$t->show();

echo "Done\n"; // shouldn't be displayed
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$t2, !1=$t

line | # | op | fetch | ext | return | operands
7 | 0 | NOP |  |  |  |
11 | 1 | NOP |  |  |  |
 | 2 | NOP |  |  |  |
17 | 3 | ZEND_FETCH_CLASS |  |  | :3 | 'pass'
 | 4 | NEW |  |  | $4 | :3
 | 5 | DO_FCALL_BY_NAME |  | 0 |  |
 | 6 | ASSIGN |  |  |  | !0,$4
18 | 7 | ZEND_INIT_METHOD_CALL |  |  |  | !0,'show'
 | 8 | DO_FCALL_BY_NAME |  | 0 |  |
20 | 9 | ZEND_FETCH_CLASS |  |  | :9 | 'fail'
 | 10 | NEW |  |  | $10 | :9
 | 11 | DO_FCALL_BY_NAME |  | 0 |  |
 | 12 | ASSIGN |  |  |  | !1,$10
21 | 13 | ZEND_INIT_METHOD_CALL |  |  |  | !1,'show'
 | 14 | DO_FCALL_BY_NAME |  | 0 |  |
23 | 15 | ECHO |  |  |  | 'Done%0A'
24 | 16 | RETURN |  |  |  | 1

Function name: show

Compiled variables: none

line | # | op | fetch | ext | return | operands
8 | 0 | ZEND_RAISE_ABSTRACT_ERROR |  |  |  |
 | 1 | RETURN |  |  |  | null

Function name: show

Compiled variables: none

line | # | op | fetch | ext | return | operands
13 | 0 | ECHO |  |  |  | 'Call+to+function+show%28%29%0A'
14 | 1 | RETURN |  |  |  | null


RECV

PHP code

<?php
/*
 * Receive a functoin argument of "argument-number" and store the argument value into a variable of "argument-number".  (e.g. $1 for 1)
 * opcode number: 63
 */
function hello($a){}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
7 | 1 | RETURN |  |  |  | 1

Function name: hello

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | RECV |  |  |  | 1
 | 1 | RETURN |  |  |  | null


RECV_INIT

PHP code

<?php
/*
 * Initialize a function argument with "value" if not received from caller.  Otherwise same as RECV.
 * opcode number: 64
 */
function hello($a=5){}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
7 | 1 | RETURN |  |  |  | 1

Function name: hello

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | RECV_INIT |  |  |  | 1,5
 | 1 | RETURN |  |  |  | null


RETURN

PHP code

<?php
/*
 * Return value from a funciton.
 * opcode number: 62
 */
return 1;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | RETURN |  |  |  | 1
7 | 1 | RETURN |  |  |  | 1


  • « RETURN
  • SEND_REF »
  • PHP Manual
  • Opcode Descriptions and Examples
  • RETURN_BY_REF

RETURN_BY_REF

PHP code

<?php
/*
 *
 * opcode number: 111
 * No sample PHP yet */
?>


SEND_REF

PHP code

<?php
/*
 * Pass the reference value as an actual parameter to a function.  DO_FCALL follows.
 * opcode number: 67
 */
@each($input);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BEGIN_SILENCE |  |  | ~0 |
 | 1 | FETCH_W | local |  | $1 | 'input'
 | 2 | SEND_REF |  |  |  | $1
 | 3 | DO_FCALL |  | 1 |  | 'each'
 | 4 | END_SILENCE |  |  |  | ~0
7 | 5 | RETURN |  |  |  | 1


SEND_VAL

PHP code

<?php
/*
 * Pass the constant value as an actual parameter to a function.  DO_FCALL follows.
 * opcode number: 65
 */
function funcA($msg){
    print $msg;
}

funcA('HELLO');

defined('IN_PHPBB');
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
10 | 1 | SEND_VAL |  |  |  | 'HELLO'
 | 2 | DO_FCALL |  | 1 |  | 'funca'
12 | 3 | SEND_VAL |  |  |  | 'IN_PHPBB'
 | 4 | DO_FCALL |  | 1 |  | 'defined'
13 | 5 | RETURN |  |  |  | 1

Function name: funcA

Compiled variables: !0=$msg

line | # | op | fetch | ext | return | operands
6 | 0 | RECV |  |  |  | 1
7 | 1 | PRINT |  |  | ~0 | !0
 | 2 | FREE |  |  |  | ~0
8 | 3 | RETURN |  |  |  | null


SEND_VAR

PHP code

<?php
/*
 * Pass the variable value as an actual parameter to a function.  DO_FCALL follows.
 * opcode number: 66
 */
$a = array(1,2,3);
if(is_array($a)){ return 0; }
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | SEND_VAR |  |  |  | !0
 | 5 | DO_FCALL |  | 1 |  | 'is_array'
 | 6 | JMPZ |  |  |  | $2,->9
 | 7 | RETURN |  |  |  | 0
 | 8 | JMP |  |  |  | ->9
8 | 9 | RETURN |  |  |  | 1


  • « SEND_VAR
  • SL »
  • PHP Manual
  • Opcode Descriptions and Examples
  • SEND_VAR_NO_REF

SEND_VAR_NO_REF

PHP code

<?php
/*
 *
 * opcode number: 106
 * No sample PHP yet */
?>


SL

PHP code

<?php
/*
 * Shift bits of value1 to the left value2 steps (each step means "multiply by two")
 * opcode number: 6
 */
echo 8 << 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | SL |  |  | ~0 | 8,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


SR

PHP code

<?php
/*
 * Shift bits of value1 to the right value2 steps (each step means "divide by two")
 * opcode number: 7
 */
echo 8 >> 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | SR |  |  | ~0 | 8,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


SUB

PHP code

<?php
/*
 * Subtracts "value2" from "value1" and stores the result into "result".
 * opcode number: 2
 */
echo 1-2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | SUB |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


SWITCH_FREE

PHP code

<?php
/*
 * Release the allocated space of "value"?
 * opcode number: 49
 */
$a = array(1,2,3);
foreach($a as $num){
    print $num;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a, !1=$num

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | FE_RESET |  |  | $2 | !0,->11
 | 5 | FE_FETCH |  |  | $3 | $2,->11
 | 6 | ZEND_OP_DATA |  |  |  |
 | 7 | ASSIGN |  |  |  | !1,$3
8 | 8 | PRINT |  |  | ~5 | !1
 | 9 | FREE |  |  |  | ~5
9 | 10 | JMP |  |  |  | ->5
 | 11 | SWITCH_FREE |  |  |  | $2
10 | 12 | RETURN |  |  |  | 1


THROW

PHP code

<?php
/*
 *
 * opcode number: 108
 */
try {
    $error = 'Always throw this error';
    throw new Exception($error);

    // Code following an exception is not executed.
    echo 'Never executed';

} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

// Continue execution
echo 'Hello World';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$error, !1=$e

line | # | op | fetch | ext | return | operands
7 | 0 | ASSIGN |  |  |  | !0,'Always+throw+this+error'
8 | 1 | ZEND_FETCH_CLASS |  |  | :1 | 'Exception'
 | 2 | NEW |  |  | $2 | :1
 | 3 | SEND_VAR |  |  |  | !0
 | 4 | DO_FCALL_BY_NAME |  | 1 |  |
 | 5 | ZEND_THROW |  | 0 |  | $2
11 | 6 | ECHO |  |  |  | 'Never+executed'
13 | 7 | JMP |  |  |  | ->15
 | 8 | ZEND_FETCH_CLASS |  |  | :4 | 'Exception'
 | 9 | ZEND_CATCH |  | 15 |  | $4,!1
14 | 10 | ECHO |  |  |  | 'Caught+exception%3A+'
 | 11 | ZEND_INIT_METHOD_CALL |  |  |  | !1,'getMessage'
 | 12 | DO_FCALL_BY_NAME |  | 0 |  |
 | 13 | ECHO |  |  |  | $6
 | 14 | ECHO |  |  |  | '%0A'
18 | 15 | ECHO |  |  |  | 'Hello+World'
19 | 16 | RETURN |  |  |  | 1


TICKS

PHP code

<?php
/*
 *
 * opcode number: 105
 */
// A function that records the time when it is called
function profile()
{
   echo "profile function is called\n";
}

// Set up a tick handler
register_tick_function("profile");

// Initialize the function before the declare block
profile();

// Run a block of code, throw a tick every 2nd statement
declare(ticks=2) {
   for ($x = 0; $x < 10; ++$x) {
         echo "hello world\n";
   }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
7 | 0 | NOP |  |  |  |
13 | 1 | SEND_VAL |  |  |  | 'profile'
 | 2 | DO_FCALL |  | 1 |  | 'register_tick_function'
16 | 3 | DO_FCALL |  | 0 |  | 'profile'
20 | 4 | ASSIGN |  |  |  | !0,0
 | 5 | IS_SMALLER |  |  | ~3 | !0,10
 | 6 | JMPZNZ |  | 9 |  | ~3,->13
 | 7 | PRE_INC |  |  |  | !0
 | 8 | JMP |  |  |  | ->5
21 | 9 | ECHO |  |  |  | 'hello+world%0A'
 | 10 | TICKS |  |  |  | 2
22 | 11 | TICKS |  |  |  | 2
 | 12 | JMP |  |  |  | ->7
 | 13 | TICKS |  |  |  | 2
23 | 14 | TICKS |  |  |  | 2
24 | 15 | RETURN |  |  |  | 1

Function name: profile

Compiled variables: none

line | # | op | fetch | ext | return | operands
9 | 0 | ECHO |  |  |  | 'profile+function+is+called%0A'
10 | 1 | RETURN |  |  |  | null


UNSET_DIM

PHP code

<?php
/*
 * Unset the entry of array-value, which is specified by index, and store the original element value into "result".
 * opcode number: 75
 */
$a = array(1,2,3);
unset($a[0]);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | UNSET_DIM |  |  | $2 | !0,0
8 | 5 | RETURN |  |  |  | 1


UNSET_OBJ

PHP code

<?php
/*
 * Unset the property of the current object (this) and store the original value into "result".
 * opcode number: 76
 */
$obj = new A();
unset($obj->num);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | UNSET_OBJ |  |  | $4 | !0,'num'
8 | 5 | RETURN |  |  |  | 1


UNSET_VAR

PHP code

<?php
/*
 * Unset the variable and store the original value into "result".
 * opcode number: 74
 */
$x = 1;
$a='x';
unset($$a);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !1,'x'
8 | 2 | UNSET_VAR |  |  | $2 | !1
9 | 3 | RETURN |  |  |  | 1


  • « UNSET_VAR
  • VERIFY_ABSTRACT_CLASS »
  • PHP Manual
  • Opcode Descriptions and Examples
  • USER_OPCODE

USER_OPCODE

PHP code

<?php
/*
 *
 * opcode number: 150
 * No sample PHP yet */
?>


  • « USER_OPCODE
  • ZEND_DECLARE_LAMBDA_FUNCTION »
  • PHP Manual
  • Opcode Descriptions and Examples
  • VERIFY_ABSTRACT_CLASS

VERIFY_ABSTRACT_CLASS

PHP code

<?php
/*
 *
 * opcode number: 146
 * No sample PHP yet */
?>


  • « VERIFY_ABSTRACT_CLASS
  • ZEND_JMP_SET »
  • PHP Manual
  • Opcode Descriptions and Examples
  • ZEND_DECLARE_LAMBDA_FUNCTION

ZEND_DECLARE_LAMBDA_FUNCTION

PHP code

<?php
/*
 *
 * opcode number: 153
 * No sample PHP yet */
?>


  • « ZEND_DECLARE_LAMBDA_FUNCTION
  • Zend Engine 1 »
  • PHP Manual
  • Opcode Descriptions and Examples
  • ZEND_JMP_SET

ZEND_JMP_SET

PHP code

<?php
/*
 *
 * opcode number: 152
 * No sample PHP yet */
?>


Zend Engine 1

Sommaire

  • Old introduction
  • Streams API for PHP Extension Authors
  • API Zend : Modification du coeur de PHP
  • TSRM API

Zend Engine 1 is the internal engine used by PHP for the entire version 4 release line. It is no longer considered active, but the old ZE1 documentation is preserved here exactly as it was.


Old introduction

If you are about to begin developing PHP or Zend extensions, you need to prepare yourself for the programming environment provided by the various APIs. This part of the documentation tries to introduce the APIs provided by the different PHP and Zend Engine versions available. Since most of the information available here is somewhat outdated, you'll want to read various files found in the PHP source, files such as README.SELF-CONTAINED-EXTENSIONS and README.EXT_SKEL in addition to the manual.


Streams API for PHP Extension Authors

Note:

The functions in this chapter are for use in the PHP source code and are not PHP functions. Information on userland stream functions can be found in the Stream Reference.

Overview

The PHP Streams API introduces a unified approach to the handling of files and sockets in PHP extension. Using a single API with standard functions for common operations, the streams API allows your extension to access files, sockets, URLs, memory and script-defined objects. Streams is a run-time extensible API that allows dynamically loaded modules (and scripts!) to register new streams.

The aim of the Streams API is to make it comfortable for developers to open files, URLs and other streamable data sources with a unified API that is easy to understand. The API is more or less based on the ANSI C stdio family of functions (with identical semantics for most of the main functions), so C programmers will have a feeling of familiarity with streams.

The streams API operates on a couple of different levels: at the base level, the API defines php_stream objects to represent streamable data sources. On a slightly higher level, the API defines php_stream_wrapper objects which "wrap" around the lower level API to provide support for retrieving data and meta-data from URLs. An additional context parameter, accepted by most stream creation functions, is passed to the wrapper's stream_opener method to fine-tune the behavior of the wrapper.

Any stream, once opened, can also have any number of filters applied to it, which process data as it is read from/written to the stream.

Streams can be cast (converted) into other types of file-handles, so that they can be used with third-party libraries without a great deal of trouble. This allows those libraries to access data directly from URL sources. If your system has the fopencookie() or funopen() function, you can even pass any PHP stream to any library that uses ANSI stdio!

Streams Basics

Using streams is very much like using ANSI stdio functions. The main difference is in how you obtain the stream handle to begin with. In most cases, you will use php_stream_open_wrapper() to obtain the stream handle. This function works very much like fopen, as can be seen from the example below:

Exemple #1 simple stream example that displays the PHP home page

php_stream * stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);
if (stream) {
    while(!php_stream_eof(stream)) {
        char buf[1024];

        if (php_stream_gets(stream, buf, sizeof(buf))) {
            printf(buf);
        } else {
            break;
        }
    }
    php_stream_close(stream);
}

The table below shows the Streams equivalents of the more common ANSI stdio functions. Unless noted otherwise, the semantics of the functions are identical.

ANSI stdio equivalent functions in the Streams API
ANSI Stdio Function | PHP Streams Function | Notes
fopen | php_stream_open_wrapper | Streams includes additional parameters
fclose | php_stream_close |
fgets | php_stream_gets |
fread | php_stream_read | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like read(2)
fwrite | php_stream_write | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like write(2)
fseek | php_stream_seek |
ftell | php_stream_tell |
rewind | php_stream_rewind |
feof | php_stream_eof |
fgetc | php_stream_getc |
fputc | php_stream_putc |
fflush | php_stream_flush |
puts | php_stream_puts | Same semantics as puts, NOT fputs
fstat | php_stream_stat | Streams has a richer stat structure

Streams as Resources

All streams are registered as resources when they are created. This ensures that they will be properly cleaned up even if there is some fatal error. All of the filesystem functions in PHP operate on streams resources - that means that your extensions can accept regular PHP file pointers as parameters to, and return streams from their functions. The streams API makes this process as painless as possible:

Exemple #2 How to accept a stream as a parameter

PHP_FUNCTION(example_write_hello)
{
    zval *zstream;
    php_stream *stream;

    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream))
        return;

    php_stream_from_zval(stream, &zstream);

    /* you can now use the stream.  However, you do not "own" the
        stream, the script does.  That means you MUST NOT close the
        stream, because it will cause PHP to crash! */

    php_stream_write(stream, "hello\n");

    RETURN_TRUE();
}

Exemple #3 How to return a stream from a function

PHP_FUNCTION(example_open_php_home_page)
{
    php_stream *stream;

    stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);

    php_stream_to_zval(stream, return_value);

    /* after this point, the stream is "owned" by the script.
        If you close it now, you will crash PHP! */
}

Since streams are automatically cleaned up, it's tempting to think that we can get away with being sloppy programmers and not bother to close the streams when we are done with them. Although such an approach might work, it is not a good idea for a number of reasons: streams hold locks on system resources while they are open, so leaving a file open after you have finished with it could prevent other processes from accessing it. If a script deals with a large number of files, the accumulation of the resources used, both in terms of memory and the sheer number of open files, can cause web server requests to fail. Sounds bad, doesn't it? The streams API includes some magic that helps you to keep your code clean - if a stream is not closed by your code when it should be, you will find some helpful debugging information in you web server error log.

Note: Always use a debug build of PHP when developing an extension (--enable-debug when running configure), as a lot of effort has been made to warn you about memory and stream leaks.

In some cases, it is useful to keep a stream open for the duration of a request, to act as a log or trace file for example. Writing the code to safely clean up such a stream is not difficult, but it's several lines of code that are not strictly needed. To save yourself the trouble of writing the code, you can mark a stream as being OK for auto cleanup. What this means is that the streams API will not emit a warning when it is time to auto-cleanup a stream. To do this, you can use php_stream_auto_cleanup().

Streams open options

These constants affect the operation of stream factory functions.

IGNORE_PATH
This is the default option for streams; it requests that the include_path is not to be searched for the requested file.
USE_PATH
Requests that the include_path is to be searched for the requested file.
IGNORE_URL
Requests that registered URL wrappers are to be ignored when opening the stream. Other non-URL wrappers will be taken into consideration when decoding the path. There is no opposite form for this flag; the streams API will use all registered wrappers by default.
IGNORE_URL_WIN
On Windows systems, this is equivalent to IGNORE_URL. On all other systems, this flag has no effect.
ENFORCE_SAFE_MODE
Requests that the underlying stream implementation perform safe_mode checks on the file before opening the file. Omitting this flag will skip safe_mode checks and allow opening of any file that the PHP process has rights to access.
REPORT_ERRORS
If this flag is set, and there was an error during the opening of the file or URL, the streams API will call the php_error function for you. This is useful because the path may contain username/password information that should not be displayed in the browser output (it would be a security risk to do so). When the streams API raises the error, it first strips username/password information from the path, making the error message safe to display in the browser.
STREAM_MUST_SEEK
This flag is useful when your extension really must be able to randomly seek around in a stream. Some streams may not be seekable in their native form, so this flag asks the streams API to check to see if the stream does support seeking. If it does not, it will copy the stream into temporary storage (which may be a temporary file or a memory stream) which does support seeking. Please note that this flag is not useful when you want to seek the stream and write to it, because the stream you are accessing might not be bound to the actual resource you requested.

Note: If the requested resource is network based, this flag will cause the opener to block until the whole contents have been downloaded.

STREAM_WILL_CAST
If your extension is using a third-party library that expects a FILE* or file descriptor, you can use this flag to request the streams API to open the resource but avoid buffering. You can then use php_stream_cast() to retrieve the FILE* or file descriptor that the library requires. The is particularly useful when accessing HTTP URLs where the start of the actual stream data is found after an indeterminate offset into the stream. Since this option disables buffering at the streams API level, you may experience lower performance when using streams functions on the stream; this is deemed acceptable because you have told streams that you will be using the functions to match the underlying stream implementation. Only use this option when you are sure you need it.


API Zend : Modification du coeur de PHP

Introduction

Those who know don't talk.

Those who talk don't know.

Sometimes, PHP "as is" simply isn't enough. Although these cases are rare for the average user, professional applications will soon lead PHP to the edge of its capabilities, in terms of either speed or functionality. New functionality cannot always be implemented natively due to language restrictions and inconveniences that arise when having to carry around a huge library of default code appended to every single script, so another method needs to be found for overcoming these eventual lacks in PHP.

As soon as this point is reached, it's time to touch the heart of PHP and take a look at its core, the C code that makes PHP go.

Avertissement

This information is currently rather outdated, parts of it only cover early stages of the ZendEngine 1.0 API as it was used in early versions of PHP 4.

More recent information may be found in the various README files that come with the PHP source and the » Internals section on the Zend website.

Overview

"Extending PHP" is easier said than done. PHP has evolved to a full-fledged tool consisting of a few megabytes of source code, and to hack a system like this quite a few things have to be learned and considered. When structuring this chapter, we finally decided on the "learn by doing" approach. This is not the most scientific and professional approach, but the method that's the most fun and gives the best end results. In the following sections, you'll learn quickly how to get the most basic extensions to work almost instantly. After that, you'll learn about Zend's advanced API functionality. The alternative would have been to try to impart the functionality, design, tips, tricks, etc. as a whole, all at once, thus giving a complete look at the big picture before doing anything practical. Although this is the "better" method, as no dirty hacks have to be made, it can be very frustrating as well as energy- and time-consuming, which is why we've decided on the direct approach.

Note that even though this chapter tries to impart as much knowledge as possible about the inner workings of PHP, it's impossible to really give a complete guide to extending PHP that works 100% of the time in all cases. PHP is such a huge and complex package that its inner workings can only be understood if you make yourself familiar with it by practicing, so we encourage you to work with the source.

What Is Zend? and What Is PHP?

The name Zend refers to the language engine, PHP's core. The term PHP refers to the complete system as it appears from the outside. This might sound a bit confusing at first, but it's not that complicated ( see below). To implement a Web script interpreter, you need three parts:

  1. The interpreter part analyzes the input code, translates it, and executes it.

  2. The functionality part implements the functionality of the language (its functions, etc.).

  3. The interface part talks to the Web server, etc.

Zend takes part 1 completely and a bit of part 2; PHP takes parts 2 and 3. Together they form the complete PHP package. Zend itself really forms only the language core, implementing PHP at its very basics with some predefined functions. PHP contains all the modules that actually create the language's outstanding capabilities.
The internal structure of PHP.

The following sections discuss where PHP can be extended and how it's done.

Extension Possibilities

As shown above, PHP can be extended primarily at three points: external modules, built-in modules, and the Zend engine. The following sections discuss these options.

External Modules

External modules can be loaded at script runtime using the function dl(). This function loads a shared object from disk and makes its functionality available to the script to which it's being bound. After the script is terminated, the external module is discarded from memory. This method has both advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
External modules don't require recompiling of PHP. | The shared objects need to be loaded every time a script is being executed (every hit), which is very slow.
The size of PHP remains small by "outsourcing" certain functionality. | External additional files clutter up the disk.
 |  | Every script that wants to use an external module's functionality has to specifically include a call to dl(), or the extension tag in php.ini needs to be modified (which is not always a suitable solution).
To sum up, external modules are great for third-party products, small additions to PHP that are rarely used, or just for testing purposes. To develop additional functionality quickly, external modules provide the best results. For frequent usage, larger implementations, and complex code, the disadvantages outweigh the advantages.

Third parties might consider using the extension tag in php.ini to create additional external modules to PHP. These external modules are completely detached from the main package, which is a very handy feature in commercial environments. Commercial distributors can simply ship disks or archives containing only their additional modules, without the need to create fixed and solid PHP binaries that don't allow other modules to be bound to them.

Built-in Modules

Built-in modules are compiled directly into PHP and carried around with every PHP process; their functionality is instantly available to every script that's being run. Like external modules, built-in modules have advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
No need to load the module specifically; the functionality is instantly available. | Changes to built-in modules require recompiling of PHP.
No external files clutter up the disk; everything resides in the PHP binary. | The PHP binary grows and consumes more memory.
Built-in modules are best when you have a solid library of functions that remains relatively unchanged, requires better than poor-to-average performance, or is used frequently by many scripts on your site. The need to recompile PHP is quickly compensated by the benefit in speed and ease of use. However, built-in modules are not ideal when rapid development of small additions is required.

The Zend Engine

Of course, extensions can also be implemented directly in the Zend engine. This strategy is good if you need a change in the language behavior or require special functions to be built directly into the language core. In general, however, modifications to the Zend engine should be avoided. Changes here result in incompatibilities with the rest of the world, and hardly anyone will ever adapt to specially patched Zend engines. Modifications can't be detached from the main PHP sources and are overridden with the next update using the "official" source repositories. Therefore, this method is generally considered bad practice and, due to its rarity, is not covered in this book.

Source Layout

Note:

Prior to working through the rest of this chapter, you should retrieve clean, unmodified source trees of your favorite Web server. We're working with Apache (available at » http://httpd.apache.org/) and, of course, with PHP (available at » http://www.php.net/ - does it need to be said?).

Make sure that you can compile a working PHP environment by yourself! We won't go into this issue here, however, as you should already have this most basic ability when studying this chapter.

Before we start discussing code issues, you should familiarize yourself with the source tree to be able to quickly navigate through PHP's files. This is a must-have ability to implement and debug extensions.

The following table describes the contents of the major directories.

Directory | Contents
php-src | Main PHP source files and main header files; here you'll find all of PHP's API definitions, macros, etc. (important). Everything else is below this directory.
php-src/ext | Repository for dynamic and built-in modules; by default, these are the "official" PHP modules that have been integrated into the main source tree. From PHP 4.0, it's possible to compile these standard extensions as dynamic loadable modules (at least, those that support it).
php-src/main | This directory contains the main php macros and definitions. (important)
php-src/pear | Directory for the PHP Extension and Application Repository. This directory contains core PEAR files.
php-src/sapi | Contains the code for the different server abstraction layers.
TSRM | Location of the "Thread Safe Resource Manager" (TSRM) for Zend and PHP.
ZendEngine2 | Location of the Zend Engine files; here you'll find all of Zend's API definitions, macros, etc. (important).

Discussing all the files included in the PHP package is beyond the scope of this chapter. However, you should take a close look at the following files:

  • php-src/main/php.h, located in the main PHP directory. This file contains most of PHP's macro and API definitions.

  • php-src/Zend/zend.h, located in the main Zend directory. This file contains most of Zend's macros and definitions.

  • php-src/Zend/zend_API.h, also located in the Zend directory, which defines Zend's API.

You should also follow some sub-inclusions from these files; for example, the ones relating to the Zend executor, the PHP initialization file support, and such. After reading these files, take the time to navigate around the package a little to see the interdependencies of all files and modules - how they relate to each other and especially how they make use of each other. This also helps you to adapt to the coding style in which PHP is authored. To extend PHP, you should quickly adapt to this style.

Extension Conventions

Zend is built using certain conventions; to avoid breaking its standards, you should follow the rules described in the following sections.

Macros

For almost every important task, Zend ships predefined macros that are extremely handy. The tables and figures in the following sections describe most of the basic functions, structures, and macros. The macro definitions can be found mainly in zend.h and zend_API.h. We suggest that you take a close look at these files after having studied this chapter. (Although you can go ahead and read them now, not everything will make sense to you yet.)

Memory Management

Resource management is a crucial issue, especially in server software. One of the most valuable resources is memory, and memory management should be handled with extreme care. Memory management has been partially abstracted in Zend, and you should stick to this abstraction for obvious reasons: Due to the abstraction, Zend gets full control over all memory allocations. Zend is able to determine whether a block is in use, automatically freeing unused blocks and blocks with lost references, and thus prevent memory leaks. The functions to be used are described in the following table:

Function | Description
emalloc() | Serves as replacement for malloc().
efree() | Serves as replacement for free().
estrdup() | Serves as replacement for strdup().
estrndup() | Serves as replacement for strndup(). Faster than estrdup() and binary-safe. This is the recommended function to use if you know the string length prior to duplicating it.
ecalloc() | Serves as replacement for calloc().
erealloc() | Serves as replacement for realloc().
emalloc(), estrdup(), estrndup(), ecalloc(), and erealloc() allocate internal memory; efree() frees these previously allocated blocks. Memory handled by the e*() functions is considered local to the current process and is discarded as soon as the script executed by this process is terminated.
Avertissement

To allocate resident memory that survives termination of the current script, you can use malloc() and free(). This should only be done with extreme care, however, and only in conjunction with demands of the Zend API; otherwise, you risk memory leaks.

Zend also features a thread-safe resource manager to provide better native support for multithreaded Web servers. This requires you to allocate local structures for all of your global variables to allow concurrent threads to be run. Because the thread-safe mode of Zend was not finished back when this was written, it is not yet extensively covered here.

Directory and File Functions

The following directory and file functions should be used in Zend modules. They behave exactly like their C counterparts, but provide virtual working directory support on the thread level.

Zend Function | Regular C Function
V_GETCWD() | getcwd()
V_FOPEN() | fopen()
V_OPEN() | open()
V_CHDIR() | chdir()
V_GETWD() | getwd()
V_CHDIR_FILE() | Takes a file path as an argument and changes the current working directory to that file's directory.
V_STAT() | stat()
V_LSTAT() | lstat()

String Handling

Strings are handled a bit differently by the Zend engine than other values such as integers, Booleans, etc., which don't require additional memory allocation for storing their values. If you want to return a string from a function, introduce a new string variable to the symbol table, or do something similar, you have to make sure that the memory the string will be occupying has previously been allocated, using the aforementioned e*() functions for allocation. (This might not make much sense to you yet; just keep it somewhere in your head for now - we'll get back to it shortly.)

Complex Types

Complex types such as arrays and objects require different treatment. Zend features a single API for these types - they're stored using hash tables.

Note:

To reduce complexity in the following source examples, we're only working with simple types such as integers at first. A discussion about creating more advanced types follows later in this chapter.

PHP's Automatic Build System

PHP 4 features an automatic build system that's very flexible. All modules reside in a subdirectory of the ext directory. In addition to its own sources, each module consists of a config.m4 file, for extension configuration. (for example, see » http://www.gnu.org/software/m4/)

All these stub files are generated automatically, along with .cvsignore, by a little shell script named ext_skel that resides in the ext directory. As argument it takes the name of the module that you want to create. The shell script then creates a directory of the same name, along with the appropriate stub files.

Step by step, the process looks like this:

:~/cvs/php4/ext:> ./ext_skel --extname=my_module
Creating directory my_module
Creating basic files: config.m4 .cvsignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done].

To use your new extension, you will have to execute the following steps:

1.  $ cd ..
2.  $ vi ext/my_module/config.m4
3.  $ ./buildconf
4.  $ ./configure --[with|enable]-my_module
5.  $ make
6.  $ ./php -f ext/my_module/my_module.php
7.  $ vi ext/my_module/my_module.c
8.  $ make

Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
This instruction creates the aforementioned files. To include the new module in the automatic configuration and build process, you have to run buildconf, which regenerates the configure script by searching through the ext directory and including all found config.m4 files.

The default config.m4 shown in The default config.m4. is a bit more complex:

Exemple #1 The default config.m4.

dnl $Id: build.xml 297078 2010-03-29 16:25:51Z degeberg $
dnl config.m4 for extension my_module

dnl Comments in this file start with the string 'dnl'.
dnl Remove where necessary. This file will not work
dnl without editing.

dnl If your extension references something external, use with:

dnl PHP_ARG_WITH(my_module, for my_module support,
dnl Make sure that the comment is aligned:
dnl [  --with-my_module             Include my_module support])

dnl Otherwise use enable:

dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,
dnl Make sure that the comment is aligned:
dnl [  --enable-my_module           Enable my_module support])

if test "$PHP_MY_MODULE" != "no"; then
  dnl Write more examples of tests here...

  dnl # --with-my_module -> check with-path
  dnl SEARCH_PATH="/usr/local /usr"     # you might want to change this
  dnl SEARCH_FOR="/include/my_module.h"  # you most likely want to change this
  dnl if test -r $PHP_MY_MODULE/; then # path given as parameter
  dnl   MY_MODULE_DIR=$PHP_MY_MODULE
  dnl else # search default path list
  dnl   AC_MSG_CHECKING([for my_module files in default path])
  dnl   for i in $SEARCH_PATH ; do
  dnl     if test -r $i/$SEARCH_FOR; then
  dnl       MY_MODULE_DIR=$i
  dnl       AC_MSG_RESULT(found in $i)
  dnl     fi
  dnl   done
  dnl fi
  dnl
  dnl if test -z "$MY_MODULE_DIR"; then
  dnl   AC_MSG_RESULT([not found])
  dnl   AC_MSG_ERROR([Please reinstall the my_module distribution])
  dnl fi

  dnl # --with-my_module -> add include path
  dnl PHP_ADD_INCLUDE($MY_MODULE_DIR/include)

  dnl # --with-my_module -> chech for lib and symbol presence
  dnl LIBNAME=my_module # you may want to change this
  dnl LIBSYMBOL=my_module # you most likely want to change this

  dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
  dnl [
  dnl   PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $MY_MODULE_DIR/lib, MY_MODULE_SHARED_LIBADD)
  dnl   AC_DEFINE(HAVE_MY_MODULELIB,1,[ ])
  dnl ],[
  dnl   AC_MSG_ERROR([wrong my_module lib version or lib not found])
  dnl ],[
  dnl   -L$MY_MODULE_DIR/lib -lm -ldl
  dnl ])
  dnl
  dnl PHP_SUBST(MY_MODULE_SHARED_LIBADD)

  PHP_NEW_EXTENSION(my_module, my_module.c, $ext_shared)
fi

If you're unfamiliar with M4 files (now is certainly a good time to get familiar), this might be a bit confusing at first; but it's actually quite easy.

Note: Everything prefixed with dnl is treated as a comment and is not parsed.

The config.m4 file is responsible for parsing the command-line options passed to configure at configuration time. This means that it has to check for required external files and do similar configuration and setup tasks.

The default file creates two configuration directives in the configure script: --with-my_module and --enable-my_module. Use the first option when referring external files (such as the --with-apache directive that refers to the Apache directory). Use the second option when the user simply has to decide whether to enable your extension. Regardless of which option you use, you should uncomment the other, unnecessary one; that is, if you're using --enable-my_module, you should remove support for --with-my_module, and vice versa.

By default, the config.m4 file created by ext_skel accepts both directives and automatically enables your extension. Enabling the extension is done by using the PHP_EXTENSION macro. To change the default behavior to include your module into the PHP binary when desired by the user (by explicitly specifying --enable-my_module or --with-my_module), change the test for $PHP_MY_MODULE to == "yes":

if test "$PHP_MY_MODULE" == "yes"; then dnl
    Action.. PHP_EXTENSION(my_module, $ext_shared)
    fi
This would require you to use --enable-my_module each time when reconfiguring and recompiling PHP.

Note: Be sure to run buildconf every time you change config.m4!

We'll go into more details on the M4 macros available to your configuration scripts later in this chapter. For now, we'll simply use the default files.

Creating Extensions

We'll start with the creation of a very simple extension at first, which basically does nothing more than implement a function that returns the integer it receives as parameter. A simple extension. shows the source.

Exemple #2 A simple extension.

/* include standard header */
#include "php.h"

/* declaration of functions to be exported */
ZEND_FUNCTION(first_module);

/* compiled function list so Zend knows what's in this module */
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    ZEND_FE_END
};

/* compiled module information */
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES
};

/* implement standard "stub" routine to introduce ourselves to Zend */
#if COMPILE_DL_FIRST_MODULE
ZEND_GET_MODULE(firstmod)
#endif

/* implement function that is meant to be made available to PHP */
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}

This code contains a complete PHP module. We'll explain the source code in detail shortly, but first we'd like to discuss the build process. (This will allow the impatient to experiment before we dive into API discussions.)

Note:

The example source makes use of some features introduced with the Zend version used in PHP 4.1.0 and above, it won't compile with older PHP 4.0.x versions.

Compiling Modules

There are basically two ways to compile modules:

  • Use the provided "make" mechanism in the ext directory, which also allows building of dynamic loadable modules.

  • Compile the sources manually.

The first method should definitely be favored, since, as of PHP 4.0, this has been standardized into a sophisticated build process. The fact that it is so sophisticated is also its drawback, unfortunately - it's hard to understand at first. We'll provide a more detailed introduction to this later in the chapter, but first let's work with the default files.

The second method is good for those who (for some reason) don't have the full PHP source tree available, don't have access to all files, or just like to juggle with their keyboard. These cases should be extremely rare, but for the sake of completeness we'll also describe this method.

Compiling Using Make

To compile the sample sources using the standard mechanism, copy all their subdirectories to the ext directory of your PHP source tree. Then run buildconf, which will create an updated configure script containing appropriate options for the new extension. By default, all the sample sources are disabled, so you don't have to fear breaking your build process.

After you run buildconf, configure --help shows the following additional modules:

  --enable-array_experiments   BOOK: Enables array experiments
  --enable-call_userland       BOOK: Enables userland module
  --enable-cross_conversion    BOOK: Enables cross-conversion module
  --enable-first_module        BOOK: Enables first module
  --enable-infoprint           BOOK: Enables infoprint module
  --enable-reference_test      BOOK: Enables reference test module
  --enable-resource_test       BOOK: Enables resource test module
  --enable-variable_creation   BOOK: Enables variable-creation module

The module shown earlier in A simple extension. can be enabled with --enable-first_module or --enable-first_module=yes.

Compiling Manually

To compile your modules manually, you need the following commands:

Action | Command
Compiling | cc -fpic -DCOMPILE_DL_FIRST_MODULE=1 -I/usr/local/include -I. -I.. -I../Zend -c -o <your_object_file> <your_c_file>
Linking | cc -shared -L/usr/local/lib -rdynamic -o <your_module_file> <your_object_file(s)>
The command to compile the module simply instructs the compiler to generate position-independent code (-fpic shouldn't be omitted) and additionally defines the constant COMPILE_DL_FIRST_MODULE to tell the module code that it's compiled as a dynamically loadable module (the test module above checks for this; we'll discuss it shortly). After these options, it specifies a number of standard include paths that should be used as the minimal set to compile the source files.

Note: All include paths in the example are relative to the directory ext. If you're compiling from another directory, change the pathnames accordingly. Required items are the PHP directory, the Zend directory, and (if necessary), the directory in which your module resides.

The link command is also a plain vanilla command instructing linkage as a dynamic module.

You can include optimization options in the compilation command, although these have been omitted in this example (but some are included in the makefile template described in an earlier section).

Note: Compiling and linking manually as a static module into the PHP binary involves very long instructions and thus is not discussed here. (It's not very efficient to type all those commands.)

Using Extensions

Depending on the build process you selected, you should either end up with a new PHP binary to be linked into your Web server (or run as CGI), or with an .so (shared object) file. If you compiled the example file first_module.c as a shared object, your result file should be first_module.so. To use it, you first have to copy it to a place from which it's accessible to PHP. For a simple test procedure, you can copy it to your htdocs directory and try it with the source in A test file for first_module.so.. If you compiled it into the PHP binary, omit the call to dl(), as the module's functionality is instantly available to your scripts.

Avertissement

For security reasons, you should not put your dynamic modules into publicly accessible directories. Even though it can be done and it simplifies testing, you should put them into a separate directory in production environments.

Exemple #3 A test file for first_module.so.

<?php

// remove next comment if necessary
// dl("first_module.so");

$param = 2;
$return = first_module($param);

print("We sent '$param' and got '$return'");

?>

Calling this PHP file should output the following:

We sent '2' and got '2'

If required, the dynamic loadable module is loaded by calling the dl() function. This function looks for the specified shared object, loads it, and makes its functions available to PHP. The module exports the function first_module(), which accepts a single parameter, converts it to an integer, and returns the result of the conversion.

If you've gotten this far, congratulations! You just built your first extension to PHP.

Troubleshooting

Actually, not much troubleshooting can be done when compiling static or dynamic modules. The only problem that could arise is that the compiler will complain about missing definitions or something similar. In this case, make sure that all header files are available and that you specified their path correctly in the compilation command. To be sure that everything is located correctly, extract a clean PHP source tree and use the automatic build in the ext directory with the fresh files; this will guarantee a safe compilation environment. If this fails, try manual compilation.

PHP might also complain about missing functions in your module. (This shouldn't happen with the sample sources if you didn't modify them.) If the names of external functions you're trying to access from your module are misspelled, they'll remain as "unlinked symbols" in the symbol table. During dynamic loading and linkage by PHP, they won't resolve because of the typing errors - there are no corresponding symbols in the main binary. Look for incorrect declarations in your module file or incorrectly written external references. Note that this problem is specific to dynamic loadable modules; it doesn't occur with static modules. Errors in static modules show up at compile time.

Source Discussion

Now that you've got a safe build environment and you're able to include the modules into PHP files, it's time to discuss how everything works.

Module Structure

All PHP modules follow a common structure:

  • Header file inclusions (to include all required macros, API definitions, etc.)

  • C declaration of exported functions (required to declare the Zend function block)

  • Declaration of the Zend function block

  • Declaration of the Zend module block

  • Implementation of get_module()

  • Implementation of all exported functions

Header File Inclusions

The only header file you really have to include for your modules is php.h, located in the PHP directory. This file makes all macros and API definitions required to build new modules available to your code.

Tip: It's good practice to create a separate header file for your module that contains module-specific definitions. This header file should contain all the forward definitions for exported functions and include php.h. If you created your module using ext_skel you already have such a header file prepared.

Declaring Exported Functions

To declare functions that are to be exported (i.e., made available to PHP as new native functions), Zend provides a set of macros. A sample declaration looks like this:

ZEND_FUNCTION ( my_function );

ZEND_FUNCTION declares a new C function that complies with Zend's internal API. This means that the function is of type void and accepts INTERNAL_FUNCTION_PARAMETERS (another macro) as parameters. Additionally, it prefixes the function name with zif. The immediately expanded version of the above definitions would look like this:

void zif_my_function ( INTERNAL_FUNCTION_PARAMETERS );
Expanding INTERNAL_FUNCTION_PARAMETERS results in the following:
void zif_my_function( int ht
                    , zval * return_value
                    , zval * this_ptr
                    , int return_value_used
                    , zend_executor_globals * executor_globals
                    );

Since the interpreter and executor core have been separated from the main PHP package, a second API defining macros and function sets has evolved: the Zend API. As the Zend API now handles quite a few of the responsibilities that previously belonged to PHP, a lot of PHP functions have been reduced to macros aliasing to calls into the Zend API. The recommended practice is to use the Zend API wherever possible, as the old API is only preserved for compatibility reasons. For example, the types zval and pval are identical. zval is Zend's definition; pval is PHP's definition (actually, pval is an alias for zval now). As the macro INTERNAL_FUNCTION_PARAMETERS is a Zend macro, the above declaration contains zval. When writing code, you should always use zval to conform to the new Zend API.

The parameter list of this declaration is very important; you should keep these parameters in mind (see Zend's Parameters to Functions Called from PHP for descriptions).

Zend's Parameters to Functions Called from PHP
Parameter | Description
ht | The number of arguments passed to the Zend function. You should not touch this directly, but instead use ZEND_NUM_ARGS() to obtain the value.
return_value | This variable is used to pass any return values of your function back to PHP. Access to this variable is best done using the predefined macros. For a description of these see below.
this_ptr | Using this variable, you can gain access to the object in which your function is contained, if it's used within an object. Use the function getThis() to obtain this pointer.
return_value_used | This flag indicates whether an eventual return value from this function will actually be used by the calling script. 0 indicates that the return value is not used; 1 indicates that the caller expects a return value. Evaluation of this flag can be done to verify correct usage of the function as well as speed optimizations in case returning a value requires expensive operations (for an example, see how array.c makes use of this).
executor_globals | This variable points to global settings of the Zend engine. You'll find this useful when creating new variables, for example (more about this later). The executor globals can also be introduced to your function by using the macro TSRMLS_FETCH().

Declaration of the Zend Function Block

Now that you have declared the functions to be exported, you also have to introduce them to Zend. Introducing the list of functions is done by using an array of zend_function_entry. This array consecutively contains all functions that are to be made available externally, with the function's name as it should appear in PHP and its name as defined in the C source. Internally, zend_function_entry is defined as shown in Internal declaration of zend_function_entry..

Exemple #4 Internal declaration of zend_function_entry.

typedef struct _zend_function_entry {
    char *fname;
    void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
    unsigned char *func_arg_types;
} zend_function_entry;
Entry | Description
fname | Denotes the function name as seen in PHP (for example, fopen, mysql_connect, or, in our example, first_module).
handler | Pointer to the C function responsible for handling calls to this function. For example, see the standard macro INTERNAL_FUNCTION_PARAMETERS discussed earlier.
func_arg_types | Allows you to mark certain parameters so that they're forced to be passed by reference. You usually should set this to NULL.
In the example above, the declaration looks like this:
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    ZEND_FE_END
};
You can see that the last entry in the list always has to be ZEND_FE_END. This marker has to be set for Zend to know when the end of the list of exported functions is reached.

The macro ZEND_FE (short for 'Zend Function Entry') simply expands to a structure entry in zend_function_entry. Note that these macros introduce a special naming scheme to your functions - your C functions will be prefixed with zif_, meaning that ZEND_FE(first_module) will refer to a C function zif_first_module(). If you want to mix macro usage with hand-coded entries (not a good practice), keep this in mind.

Tip: Compilation errors that refer to functions named zif_*() relate to functions defined with ZEND_FE.

Macros for Defining Functions shows a list of all the macros that you can use to define functions.

Macros for Defining Functions
Macro Name | Description
ZEND_FE(name, arg_types) | Defines a function entry of the name name in zend_function_entry. Requires a corresponding C function. arg_types needs to be set to NULL. This function uses automatic C function name generation by prefixing the PHP function name with zif_. For example, ZEND_FE("first_module", NULL) introduces a function first_module() to PHP and links it to the C function zif_first_module(). Use in conjunction with ZEND_FUNCTION.
ZEND_NAMED_FE(php_name, name, arg_types) | Defines a function that will be available to PHP by the name php_name and links it to the corresponding C function name. arg_types needs to be set to NULL. Use this function if you don't want the automatic name prefixing introduced by ZEND_FE. Use in conjunction with ZEND_NAMED_FUNCTION.
ZEND_FALIAS(name, alias, arg_types) | Defines an alias named alias for name. arg_types needs to be set to NULL. Doesn't require a corresponding C function; refers to the alias target instead.
PHP_FE(name, arg_types) | Old PHP API equivalent of ZEND_FE.
PHP_NAMED_FE(runtime_name, name, arg_types) | Old PHP API equivalent of ZEND_NAMED_FE.

Note: You can't use ZEND_FE in conjunction with PHP_FUNCTION, or PHP_FE in conjunction with ZEND_FUNCTION. However, it's perfectly legal to mix ZEND_FE and ZEND_FUNCTION with PHP_FE and PHP_FUNCTION when staying with the same macro set for each function to be declared. But mixing is not recommended; instead, you're advised to use the ZEND_* macros only.

Declaration of the Zend Module Block

This block is stored in the structure zend_module_entry and contains all necessary information to describe the contents of this module to Zend. You can see the internal definition of this module in Internal declaration of zend_module_entry..

Exemple #5 Internal declaration of zend_module_entry.

typedef struct _zend_module_entry zend_module_entry;

    struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    char *name;
    zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    char *version;

[ Rest of the structure is not interesting here ]

};
Entry | Description
size, zend_api, zend_debug and zts | Usually filled with the "STANDARD_MODULE_HEADER", which fills these four members with the size of the whole zend_module_entry, the ZEND_MODULE_API_NO, whether it is a debug build or normal build (ZEND_DEBUG) and if ZTS is enabled (USING_ZTS).
name | Contains the module name (for example, "File functions", "Socket functions", "Crypt", etc.). This name will show up in phpinfo(), in the section "Additional Modules."
functions | Points to the Zend function block, discussed in the preceding section.
module_startup_func | This function is called once upon module initialization and can be used to do one-time initialization steps (such as initial memory allocation, etc.). To indicate a failure during initialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINIT.
module_shutdown_func | This function is called once upon module shutdown and can be used to do one-time deinitialization steps (such as memory deallocation). This is the counterpart to module_startup_func(). To indicate a failure during deinitialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MSHUTDOWN.
request_startup_func | This function is called once upon every page request and can be used to do one-time initialization steps that are required to process a request. To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request startup function is called right after the module startup function (both initialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RINIT.
request_shutdown_func | This function is called once after every page request and works as counterpart to request_startup_func(). To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request shutdown function is immediately followed by a call to the module shutdown handler (both deinitialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RSHUTDOWN.
info_func | When phpinfo() is called in a script, Zend cycles through all loaded modules and calls this function. Every module then has the chance to print its own "footprint" into the output page. Generally this is used to dump environmental or statistical information. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINFO.
version | The version of the module. You can use NO_VERSION_YET if you don't want to give the module a version number yet, but we really recommend that you add a version string here. Such a version string can look like this (in chronological order): "2.5-dev", "2.5RC1", "2.5" or "2.5pl3".
Remaining structure elements | These are used internally and can be prefilled by using the macro STANDARD_MODULE_PROPERTIES_EX. You should not assign any values to them. Use STANDARD_MODULE_PROPERTIES_EX only if you use global startup and shutdown functions; otherwise, use STANDARD_MODULE_PROPERTIES directly.

In our example, this structure is implemented as follows:

zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL, NULL, NULL, NULL, NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES,
};
This is basically the easiest and most minimal set of values you could ever use. The module name is set to First Module, then the function list is referenced, after which all startup and shutdown functions are marked as being unused.

For reference purposes, you can find a list of the macros involved in declared startup and shutdown functions in Macros to Declare Startup and Shutdown Functions. These are not used in our basic example yet, but will be demonstrated later on. You should make use of these macros to declare your startup and shutdown functions, as these require special arguments to be passed (INIT_FUNC_ARGS and SHUTDOWN_FUNC_ARGS), which are automatically included into the function declaration when using the predefined macros. If you declare your functions manually and the PHP developers decide that a change in the argument list is necessary, you'll have to change your module sources to remain compatible.

Macros to Declare Startup and Shutdown Functions
Macro | Description
ZEND_MINIT(module) | Declares a function for module startup. The generated name will be zend_minit_<module> (for example, zend_minit_first_module). Use in conjunction with ZEND_MINIT_FUNCTION.
ZEND_MSHUTDOWN(module) | Declares a function for module shutdown. The generated name will be zend_mshutdown_<module> (for example, zend_mshutdown_first_module). Use in conjunction with ZEND_MSHUTDOWN_FUNCTION.
ZEND_RINIT(module) | Declares a function for request startup. The generated name will be zend_rinit_<module> (for example, zend_rinit_first_module). Use in conjunction with ZEND_RINIT_FUNCTION.
ZEND_RSHUTDOWN(module) | Declares a function for request shutdown. The generated name will be zend_rshutdown_<module> (for example, zend_rshutdown_first_module). Use in conjunction with ZEND_RSHUTDOWN_FUNCTION.
ZEND_MINFO(module) | Declares a function for printing module information, used when phpinfo() is called. The generated name will be zend_info_<module> (for example, zend_info_first_module). Use in conjunction with ZEND_MINFO_FUNCTION.

Creation of get_module()

This function is special to all dynamic loadable modules. Take a look at the creation via the ZEND_GET_MODULE macro first:

#if COMPILE_DL_FIRSTMOD
     ZEND_GET_MODULE(firstmod)
#endif

The function implementation is surrounded by a conditional compilation statement. This is needed since the function get_module() is only required if your module is built as a dynamic extension. By specifying a definition of COMPILE_DL_FIRSTMOD in the compiler command (see above for a discussion of the compilation instructions required to build a dynamic extension), you can instruct your module whether you intend to build it as a dynamic extension or as a built-in module. If you want a built-in module, the implementation of get_module() is simply left out.

get_module() is called by Zend at load time of the module. You can think of it as being invoked by the dl() call in your script. Its purpose is to pass the module information block back to Zend in order to inform the engine about the module contents.

If you don't implement a get_module() function in your dynamic loadable module, Zend will compliment you with an error message when trying to access it.

Implementation of All Exported Functions

Implementing the exported functions is the final step. The example function in first_module looks like this:

ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}
The function declaration is done using ZEND_FUNCTION, which corresponds to ZEND_FE in the function entry table (discussed earlier).

After the declaration, code for checking and retrieving the function's arguments, argument conversion, and return value generation follows (more on this later).

Summary

That's it, basically - there's nothing more to implementing PHP modules. Built-in modules are structured similarly to dynamic modules, so, equipped with the information presented in the previous sections, you'll be able to fight the odds when encountering PHP module source files.

Now, in the following sections, read on about how to make use of PHP's internals to build powerful extensions.

Accepting Arguments

One of the most important issues for language extensions is accepting and dealing with data passed via arguments. Most extensions are built to deal with specific input data (or require parameters to perform their specific actions), and function arguments are the only real way to exchange data between the PHP level and the C level. Of course, there's also the possibility of exchanging data using predefined global values (which is also discussed later), but this should be avoided by all means, as it's extremely bad practice.

PHP doesn't make use of any formal function declarations; this is why call syntax is always completely dynamic and never checked for errors. Checking for correct call syntax is left to the user code. For example, it's possible to call a function using only one argument at one time and four arguments the next time - both invocations are syntactically absolutely correct.

Determining the Number of Arguments

Since PHP doesn't have formal function definitions with support for call syntax checking, and since PHP features variable arguments, sometimes you need to find out with how many arguments your function has been called. You can use the ZEND_NUM_ARGS macro in this case. In previous versions of PHP, this macro retrieved the number of arguments with which the function has been called based on the function's hash table entry, ht, which is passed in the INTERNAL_FUNCTION_PARAMETERS list. As ht itself now contains the number of arguments that have been passed to the function, ZEND_NUM_ARGS has been stripped down to a dummy macro (see its definition in zend_API.h). But it's still good practice to use it, to remain compatible with future changes in the call interface. Note: The old PHP equivalent of this macro is ARG_COUNT.

The following code checks for the correct number of arguments:

if(ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT;
If the function is not called with two arguments, it exits with an error message. The code snippet above makes use of the tool macro WRONG_PARAM_COUNT, which can be used to generate a standard error message like:
"Warning: Wrong parameter count for firstmodule() in /home/www/htdocs/firstmod.php on line 5"

This macro prints a default error message and then returns to the caller. Its definition can also be found in zend_API.h and looks like this:

ZEND_API void wrong_param_count(void);

#define WRONG_PARAM_COUNT { wrong_param_count(); return; }
As you can see, it calls an internal function named wrong_param_count() that's responsible for printing the warning. For details on generating customized error messages, see the later section "Printing Information."

Retrieving Arguments

Note: New parameter parsing API

This chapter documents the new Zend parameter parsing API introduced by Andrei Zmievski. It was introduced in the development stage between PHP 4.0.6 and 4.1.0.

Parsing parameters is a very common operation and it may get a bit tedious. It would also be nice to have standardized error checking and error messages. Since PHP 4.1.0, there is a way to do just that by using the new parameter parsing API. It greatly simplifies the process of receiving parameters, but it has a drawback in that it can't be used for functions that expect variable number of parameters. But since the vast majority of functions do not fall into those categories, this parsing API is recommended as the new standard way.

The prototype for parameter parsing function looks like this:

int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
The first argument to this function is supposed to be the number of actual parameters passed to your function, so ZEND_NUM_ARGS() can be used for that. The second parameter should always be TSRMLS_CC macro. The third argument is a string that specifies the number and types of arguments your function is expecting, similar to how printf format string specifies the number and format of the output values it should operate on. And finally the rest of the arguments are pointers to variables which should receive the values from the parameters.

zend_parse_parameters() also performs type conversions whenever possible, so that you always receive the data in the format you asked for. Any type of scalar can be converted to another one, but conversions between complex types (arrays, objects, and resources) and scalar types are not allowed.

If the parameters could be obtained successfully and there were no errors during type conversion, the function will return SUCCESS, otherwise it will return FAILURE. The function will output informative error messages, if the number of received parameters does not match the requested number, or if type conversion could not be performed.

Here are some sample error messages:

Warning - ini_get_all() requires at most 1 parameter, 2 given
Warning - wddx_deserialize() expects parameter 1 to be string, array given
Of course each error message is accompanied by the filename and line number on which it occurs.

Here is the full list of type specifiers:

  • l - long

  • d - double

  • s - string (with possible null bytes) and its length

  • b - boolean

  • r - resource, stored in zval*

  • a - array, stored in zval*

  • o - object (of any class), stored in zval*

  • O - object (of class specified by class entry), stored in zval*

  • z - the actual zval*

The following characters also have a meaning in the specifier string:

  • | - indicates that the remaining parameters are optional. The storage variables corresponding to these parameters should be initialized to default values by the extension, since they will not be touched by the parsing function if the parameters are not passed.

  • / - the parsing function will call SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows, to provide a copy of the parameter, unless it's a reference.

  • ! - the parameter it follows can be of specified type or NULL (only applies to a, o, O, r, and z). If NULL value is passed by the user, the storage pointer will be set to NULL.

The best way to illustrate the usage of this function is through examples:

/* Gets a long, a string and its length, and a zval. */
long l;
char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "lsz", &l, &s, &s_len, &param) == FAILURE) {
    return;
}

/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "O|d", &obj, my_ce, &d) == FAILURE) {
    return;
}

/* Gets an object or null, and an array.
   If null is passed for object, obj will be set to NULL. */
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O!a", &obj, &arr) == FAILURE) {
    return;
}

/* Gets a separated array. */
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &arr) == FAILURE) {
    return;
}

/* Get only the first three parameters (useful for varargs functions). */
zval *z;
zend_bool b;
zval *r;
if (zend_parse_parameters(3, "zbr!", &z, &b, &r) == FAILURE) {
    return;
}

Note that in the last example we pass 3 for the number of received parameters, instead of ZEND_NUM_ARGS(). What this lets us do is receive the least number of parameters if our function expects a variable number of them. Of course, if you want to operate on the rest of the parameters, you will have to use zend_get_parameters_array_ex() to obtain them.

The parsing function has an extended version that allows for an additional flags argument that controls its actions.

int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);

The only flag you can pass currently is ZEND_PARSE_PARAMS_QUIET, which instructs the function to not output any error messages during its operation. This is useful for functions that expect several sets of completely different arguments, but you will have to output your own error messages.

For example, here is how you would get either a set of three longs or a string:

long l1, l2, l3;
char *s;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                             ZEND_NUM_ARGS() TSRMLS_CC,
                             "lll", &l1, &l2, &l3) == SUCCESS) {
    /* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                                    ZEND_NUM_ARGS(), "s", &s, &s_len) == SUCCESS) {
    /* manipulate string */
} else {
    php_error(E_WARNING, "%s() takes either three long values or a string as argument",
              get_active_function_name(TSRMLS_C));
    return;
}

With all the abovementioned ways of receiving function parameters you should have a good handle on this process. For even more example, look through the source code for extensions that are shipped with PHP - they illustrate every conceivable situation.

Old way of retrieving arguments (deprecated)

Note: Deprecated parameter parsing API

This API is deprecated and superseded by the new ZEND parameter parsing API.

After having checked the number of arguments, you need to get access to the arguments themselves. This is done with the help of zend_get_parameters_ex():

zval **parameter;

if(zend_get_parameters_ex(1, &parameter) != SUCCESS)
  WRONG_PARAM_COUNT;
All arguments are stored in a zval container, which needs to be pointed to twice. The snippet above tries to retrieve one argument and make it available to us via the parameter pointer.

zend_get_parameters_ex() accepts at least two arguments. The first argument is the number of arguments to retrieve (which should match the number of arguments with which the function has been called; this is why it's important to check for correct call syntax). The second argument (and all following arguments) are pointers to pointers to pointers to zvals. (Confusing, isn't it?) All these pointers are required because Zend works internally with **zval; to adjust a local **zval in our function,zend_get_parameters_ex() requires a pointer to it.

The return value of zend_get_parameters_ex() can either be SUCCESS or FAILURE, indicating (unsurprisingly) success or failure of the argument processing. A failure is most likely related to an incorrect number of arguments being specified, in which case you should exit with WRONG_PARAM_COUNT.

To retrieve more than one argument, you can use a similar snippet:

zval **param1, **param2, **param3, **param4;

if(zend_get_parameters_ex(4, &param1, &param2, &param3, &param4) != SUCCESS)
    WRONG_PARAM_COUNT;

zend_get_parameters_ex() only checks whether you're trying to retrieve too many parameters. If the function is called with five arguments, but you're only retrieving three of them with zend_get_parameters_ex(), you won't get an error but will get the first three parameters instead. Subsequent calls of zend_get_parameters_ex() won't retrieve the remaining arguments, but will get the same arguments again.

Dealing with a Variable Number of Arguments/Optional Parameters

If your function is meant to accept a variable number of arguments, the snippets just described are sometimes suboptimal solutions. You have to create a line calling zend_get_parameters_ex() for every possible number of arguments, which is often unsatisfying.

For this case, you can use the function zend_get_parameters_array_ex(), which accepts the number of parameters to retrieve and an array in which to store them:

zval **parameter_array[4];

/* get the number of arguments */
argument_count = ZEND_NUM_ARGS();

/* see if it satisfies our minimal request (2 arguments) */
/* and our maximal acceptance (4 arguments) */
if(argument_count < 2 || argument_count > 4)
    WRONG_PARAM_COUNT;

/* argument count is correct, now retrieve arguments */
if(zend_get_parameters_array_ex(argument_count, parameter_array) != SUCCESS)
    WRONG_PARAM_COUNT;
First, the number of arguments is checked to make sure that it's in the accepted range. After that, zend_get_parameters_array_ex() is used to fill parameter_array with valid pointers to the argument values.

A very clever implementation of this can be found in the code handling PHP's fsockopen() located in ext/standard/fsock.c, as shown in PHP's implementation of variable arguments in fsockopen().. Don't worry if you don't know all the functions used in this source yet; we'll get to them shortly.

Exemple #6 PHP's implementation of variable arguments in fsockopen().

pval **args[5];
int *sock=emalloc(sizeof(int));
int *sockp;
int arg_count=ARG_COUNT(ht);
int socketd = -1;
unsigned char udp = 0;
struct timeval timeout = { 60, 0 };
unsigned short portno;
unsigned long conv;
char *key = NULL;
FLS_FETCH();

if (arg_count > 5 || arg_count < 2 || zend_get_parameters_array_ex(arg_count,args)==FAILURE) {
    CLOSE_SOCK(1);
    WRONG_PARAM_COUNT;
}

switch(arg_count) {
    case 5:
        convert_to_double_ex(args[4]);
        conv = (unsigned long) (Z_DVAL_PP(args[4]) * 1000000.0);
        timeout.tv_sec = conv / 1000000;
        timeout.tv_usec = conv % 1000000;
        /* fall-through */
    case 4:
        if (!PZVAL_IS_REF(*args[3])) {
            php_error(E_WARNING,"error string argument to fsockopen not passed by reference");
        }
        pval_copy_constructor(*args[3]);
        ZVAL_EMPTY_STRING(*args[3]);
        /* fall-through */
    case 3:
        if (!PZVAL_IS_REF(*args[2])) {
            php_error(E_WARNING,"error argument to fsockopen not passed by reference");
            return;
        }
        ZVAL_LONG(*args[2], 0);
        break;
}

convert_to_string_ex(args[0]);
convert_to_long_ex(args[1]);
portno = (unsigned short) Z_LVAL_P(args[1]);

key = emalloc(Z_STRLEN_P(args[0]) + 10);

fsockopen() accepts two, three, four, or five parameters. After the obligatory variable declarations, the function checks for the correct range of arguments. Then it uses a fall-through mechanism in a switch() statement to deal with all arguments. The switch() statement starts with the maximum number of arguments being passed (five). After that, it automatically processes the case of four arguments being passed, then three, by omitting the otherwise obligatory break keyword in all stages. After having processed the last case, it exits the switch() statement and does the minimal argument processing needed if the function is invoked with only two arguments.

This multiple-stage type of processing, similar to a stairway, allows convenient processing of a variable number of arguments.

Accessing Arguments

To access arguments, it's necessary for each argument to have a clearly defined type. Again, PHP's extremely dynamic nature introduces some quirks. Because PHP never does any kind of type checking, it's possible for a caller to pass any kind of data to your functions, whether you want it or not. If you expect an integer, for example, the caller might pass an array, and vice versa - PHP simply won't notice.

To work around this, you have to use a set of API functions to force a type conversion on every argument that's being passed (see Argument Conversion Functions).

Note: All conversion functions expect a **zval as parameter.

Argument Conversion Functions
Function | Description
convert_to_boolean_ex() | Forces conversion to a Boolean type. Boolean values remain untouched. Longs, doubles, and strings containing 0 as well as NULL values will result in Boolean 0 (FALSE). Arrays and objects are converted based on the number of entries or properties, respectively, that they have. Empty arrays and objects are converted to FALSE; otherwise, to TRUE. All other values result in a Boolean 1 (TRUE).
convert_to_long_ex() | Forces conversion to a long, the default integer type. NULL values, Booleans, resources, and of course longs remain untouched. Doubles are truncated. Strings containing an integer are converted to their corresponding numeric representation, otherwise resulting in 0. Arrays and objects are converted to 0 if empty, 1 otherwise.
convert_to_double_ex() | Forces conversion to a double, the default floating-point type. NULL values, Booleans, resources, longs, and of course doubles remain untouched. Strings containing a number are converted to their corresponding numeric representation, otherwise resulting in 0.0. Arrays and objects are converted to 0.0 if empty, 1.0 otherwise.
convert_to_string_ex() | Forces conversion to a string. Strings remain untouched. NULL values are converted to an empty string. Booleans containing TRUE are converted to "1", otherwise resulting in an empty string. Longs and doubles are converted to their corresponding string representation. Arrays are converted to the string "Array" and objects to the string "Object".
convert_to_array_ex(value) | Forces conversion to an array. Arrays remain untouched. Objects are converted to an array by assigning all their properties to the array table. All property names are used as keys, property contents as values. NULL values are converted to an empty array. All other values are converted to an array that contains the specific source value in the element with the key 0.
convert_to_object_ex(value) | Forces conversion to an object. Objects remain untouched. NULL values are converted to an empty object. Arrays are converted to objects by introducing their keys as properties into the objects and their values as corresponding property contents in the object. All other types result in an object with the property scalar , having the corresponding source value as content.
convert_to_null_ex(value) | Forces the type to become a NULL value, meaning empty.

Note:

You can find a demonstration of the behavior in cross_conversion.php on the accompanying CD-ROM.

Cross-conversion behavior of PHP.

Using these functions on your arguments will ensure type safety for all data that's passed to you. If the supplied type doesn't match the required type, PHP forces dummy contents on the resulting value (empty strings, arrays, or objects, 0 for numeric values, FALSE for Booleans) to ensure a defined state.

Following is a quote from the sample module discussed previously, which makes use of the conversion functions:

zval **parameter;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &parameter) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

convert_to_long_ex(parameter);

RETURN_LONG(Z_LVAL_P(parameter));
After retrieving the parameter pointer, the parameter value is converted to a long (an integer), which also forms the return value of this function. Understanding access to the contents of the value requires a short discussion of the zval type, whose definition is shown in PHP/Zend zval type definition..

Exemple #7 PHP/Zend zval type definition.

typedef pval zval;

typedef struct _zval_struct zval;

typedef union _zvalue_value {
    long lval;                 /* long value */
    double dval;               /* double value */
    struct {
        char *val;
        int len;
    } str;
    HashTable *ht;             /* hash table value */
    struct {
        zend_class_entry *ce;
        HashTable *properties;
    } obj;
} zvalue_value;

struct _zval_struct {
    /* Variable information */
    zvalue_value value;        /* value */
    unsigned char type;        /* active type */
    unsigned char is_ref;
    short refcount;
};

Actually, pval (defined in php.h) is only an alias of zval (defined in zend.h), which in turn refers to _zval_struct. This is a most interesting structure. _zval_struct is the "master" structure, containing the value structure, type, and reference information. The substructure zvalue_value is a union that contains the variable's contents. Depending on the variable's type, you'll have to access different members of this union. For a description of both structures, see Zend zval Structure, Zend zvalue_value Structure and Zend Variable Type Constants.

Zend zval Structure
Entry | Description
value | Union containing this variable's contents. See Zend zvalue_value Structure for a description.
type | Contains this variable's type. For a list of available types, see Zend Variable Type Constants.
is_ref | 0 means that this variable is not a reference; 1 means that this variable is a reference to another variable.
refcount | The number of references that exist for this variable. For every new reference to the value stored in this variable, this counter is increased by 1. For every lost reference, this counter is decreased by 1. When the reference counter reaches 0, no references exist to this value anymore, which causes automatic freeing of the value.
Zend zvalue_value Structure
Entry | Description
lval | Use this property if the variable is of the type IS_LONG, IS_BOOLEAN, or IS_RESOURCE.
dval | Use this property if the variable is of the type IS_DOUBLE.
str | This structure can be used to access variables of the type IS_STRING. The member len contains the string length; the member val points to the string itself. Zend uses C strings; thus, the string length contains a trailing 0x00.
ht | This entry points to the variable's hash table entry if the variable is an array.
obj | Use this property if the variable is of the type IS_OBJECT.
Zend Variable Type Constants
Constant | Description
IS_NULL | Denotes a NULL (empty) value.
IS_LONG | A long (integer) value.
IS_DOUBLE | A double (floating point) value.
IS_STRING | A string.
IS_ARRAY | Denotes an array.
IS_OBJECT | An object.
IS_BOOL | A Boolean value.
IS_RESOURCE | A resource (for a discussion of resources, see the appropriate section below).
IS_CONSTANT | A constant (defined) value.

To access a long you access zval.value.lval, to access a double you use zval.value.dval, and so on. Because all values are stored in a union, trying to access data with incorrect union members results in meaningless output.

Accessing arrays and objects is a bit more complicated and is discussed later.

Dealing with Arguments Passed by Reference

If your function accepts arguments passed by reference that you intend to modify, you need to take some precautions.

What we didn't say yet is that under the circumstances presented so far, you don't have write access to any zval containers designating function parameters that have been passed to you. Of course, you can change any zval containers that you created within your function, but you mustn't change any zvals that refer to Zend-internal data!

We've only discussed the so-called *_ex() API so far. You may have noticed that the API functions we've used are called zend_get_parameters_ex() instead of zend_get_parameters(), convert_to_long_ex() instead of convert_to_long(), etc. The *_ex() functions form the so-called new "extended" Zend API. They give a minor speed increase over the old API, but as a tradeoff are only meant for providing read-only access.

Because Zend works internally with references, different variables may reference the same value. Write access to a zval container requires this container to contain an isolated value, meaning a value that's not referenced by any other containers. If a zval container were referenced by other containers and you changed the referenced zval, you would automatically change the contents of the other containers referencing this zval (because they'd simply point to the changed value and thus change their own value as well).

zend_get_parameters_ex() doesn't care about this situation, but simply returns a pointer to the desired zval containers, whether they consist of references or not. Its corresponding function in the traditional API, zend_get_parameters(), immediately checks for referenced values. If it finds a reference, it creates a new, isolated zval container; copies the referenced data into this newly allocated space; and then returns a pointer to the new, isolated value.

This action is called zval separation (or pval separation). Because the *_ex() API doesn't perform zval separation, it's considerably faster, while at the same time disabling write access.

To change parameters, however, write access is required. Zend deals with this situation in a special way: Whenever a parameter to a function is passed by reference, it performs automatic zval separation. This means that whenever you're calling a function like this in PHP, Zend will automatically ensure that $parameter is being passed as an isolated value, rendering it to a write-safe state:

my_function(&$parameter);

But this is not the case with regular parameters! All other parameters that are not passed by reference are in a read-only state.

This requires you to make sure that you're really working with a reference - otherwise you might produce unwanted results. To check for a parameter being passed by reference, you can use the macro PZVAL_IS_REF. This macro accepts a zval* to check if it is a reference or not. Examples are given in in Testing for referenced parameter passing..

Exemple #8 Testing for referenced parameter passing.

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
    return;

/* check for parameter being passed by reference */
if (!PZVAL_IS_REF(parameter)) {
{
    zend_error(E_WARNING, "Parameter wasn't passed by reference");
    RETURN_NULL();
}

/* make changes to the parameter */
ZVAL_LONG(parameter, 10);
Testing for referenced parameter passing

Assuring Write Safety for Other Parameters

You might run into a situation in which you need write access to a parameter that's retrieved with zend_get_parameters_ex() but not passed by reference. For this case, you can use the macro SEPARATE_ZVAL, which does a zval separation on the provided container. The newly generated zval is detached from internal data and has only a local scope, meaning that it can be changed or destroyed without implying global changes in the script context:

zval **parameter;

/* retrieve parameter */
zend_get_parameters_ex(1, &parameter);

/* at this stage, <parameter> still is connected */
/* to Zend's internal data buffers */

/* make <parameter> write-safe */
SEPARATE_ZVAL(parameter);

/* now we can safely modify <parameter> */
/* without implying global changes */
SEPARATE_ZVAL uses emalloc() to allocate the new zval container, which means that even if you don't deallocate this memory yourself, it will be destroyed automatically upon script termination. However, doing a lot of calls to this macro without freeing the resulting containers will clutter up your RAM.

Note: As you can easily work around the lack of write access in the "traditional" API (with zend_get_parameters() and so on), this API seems to be obsolete, and is not discussed further in this chapter.

Creating Variables

When exchanging data from your own extensions with PHP scripts, one of the most important issues is the creation of variables. This section shows you how to deal with the variable types that PHP supports.

Overview

To create new variables that can be seen "from the outside" by the executing script, you need to allocate a new zval container, fill this container with meaningful values, and then introduce it to Zend's internal symbol table. This basic process is common to all variable creations:

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
ZEND_SET_SYMBOL(EG(active_symbol_table), "new_variable_name", new_variable);

/* the variable is now accessible to the script by using $new_variable_name */

The macro MAKE_STD_ZVAL allocates a new zval container using ALLOC_ZVAL and initializes it using INIT_ZVAL. As implemented in Zend at the time of this writing, initializing means setting the reference count to 1 and clearing the is_ref flag, but this process could be extended later - this is why it's a good idea to keep using MAKE_STD_ZVAL instead of only using ALLOC_ZVAL. If you want to optimize for speed (and you don't have to explicitly initialize the zval container here), you can use ALLOC_ZVAL, but this isn't recommended because it doesn't ensure data integrity.

ZEND_SET_SYMBOL takes care of introducing the new variable to Zend's symbol table. This macro checks whether the value already exists in the symbol table and converts the new symbol to a reference if so (with automatic deallocation of the old zval container). This is the preferred method if speed is not a crucial issue and you'd like to keep memory usage low.

Note that ZEND_SET_SYMBOL makes use of the Zend executor globals via the macro EG. By specifying EG(active_symbol_table), you get access to the currently active symbol table, dealing with the active, local scope. The local scope may differ depending on whether the function was invoked from within a function.

If you need to optimize for speed and don't care about optimal memory usage, you can omit the check for an existing variable with the same value and instead force insertion into the symbol table by using zend_hash_update():

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
zend_hash_update(
    EG(active_symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
This is actually the standard method used in most modules.

The variables generated with the snippet above will always be of local scope, so they reside in the context in which the function has been called. To create new variables in the global scope, use the same method but refer to another symbol table:

zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
ZEND_SET_SYMBOL(&EG(symbol_table), "new_variable_name", new_variable);
The macro ZEND_SET_SYMBOL is now being called with a reference to the main, global symbol table by referring EG(symbol_table).

Note: The active_symbol_table variable is a pointer, but symbol_table is not. This is why you have to use EG(active_symbol_table) and &EG(symbol_table) as parameters to ZEND_SET_SYMBOL - it requires a pointer.

Similarly, to get a more efficient version, you can hardcode the symbol table update:

zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
zend_hash_update(
    &EG(symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
Creating variables with different scopes. shows a sample source that creates two variables - local_variable with a local scope and global_variable with a global scope (see Figure 9.7). The full example can be found on the CD-ROM.

Note: You can see that the global variable is actually not accessible from within the function. This is because it's not imported into the local scope using global $global_variable; in the PHP source.

Exemple #9 Creating variables with different scopes.

ZEND_FUNCTION(variable_creation)
{
    zval *new_var1, *new_var2;

    MAKE_STD_ZVAL(new_var1);
    MAKE_STD_ZVAL(new_var2);

    ZVAL_LONG(new_var1, 10);
    ZVAL_LONG(new_var2, 5);

    ZEND_SET_SYMBOL(EG(active_symbol_table), "local_variable", new_var1);
    ZEND_SET_SYMBOL(&EG(symbol_table), "global_variable", new_var2);

    RETURN_NULL();

}
Creating variables with different scopes

Longs (Integers)

Now let's get to the assignment of data to variables, starting with longs. Longs are PHP's integers and are very simple to store. Looking at the zval.value container structure discussed earlier in this chapter, you can see that the long data type is directly contained in the union, namely in the lval field. The corresponding type value for longs is IS_LONG (see Creation of a long.).

Exemple #10 Creation of a long.

zval *new_long;

MAKE_STD_ZVAL(new_long);

new_long-&gt;type = IS_LONG;
new_long-&gt;value.lval = 10;
Alternatively, you can use the macro ZVAL_LONG:
zval *new_long;

MAKE_STD_ZVAL(new_long);
ZVAL_LONG(new_long, 10);

Doubles (Floats)

Doubles are PHP's floats and are as easy to assign as longs, because their value is also contained directly in the union. The member in the zval.value container is dval; the corresponding type is IS_DOUBLE.

zval *new_double;

MAKE_STD_ZVAL(new_double);

new_double-&gt;type = IS_DOUBLE;
new_double-&gt;value.dval = 3.45;
Alternatively, you can use the macro ZVAL_DOUBLE:
zval *new_double;

MAKE_STD_ZVAL(new_double);
ZVAL_DOUBLE(new_double, 3.45);

Strings

Strings need slightly more effort. As mentioned earlier, all strings that will be associated with Zend's internal data structures need to be allocated using Zend's own memory-management functions. Referencing of static strings or strings allocated with standard routines is not allowed. To assign strings, you have to access the structure str in the zval.value container. The corresponding type is IS_STRING:

zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);

new_string-&gt;type = IS_STRING;
new_string-&gt;value.str.len = strlen(string_contents);
new_string-&gt;value.str.val = estrdup(string_contents);
Note the usage of Zend's estrdup() here. Of course, you can also use the predefined macro ZVAL_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);
ZVAL_STRING(new_string, string_contents, 1);
ZVAL_STRING accepts a third parameter that indicates whether the supplied string contents should be duplicated (using estrdup()). Setting this parameter to 1 causes the string to be duplicated; 0 simply uses the supplied pointer for the variable contents. This is most useful if you want to create a new variable referring to a string that's already allocated in Zend internal memory.

If you want to truncate the string at a certain position or you already know its length, you can use ZVAL_STRINGL(zval, string, length, duplicate), which accepts an explicit string length to be set for the new string. This macro is faster than ZVAL_STRING and also binary-safe.

To create empty strings, set the string length to 0 and use empty_string as contents:

new_string-&gt;type = IS_STRING;
new_string-&gt;value.str.len = 0;
new_string-&gt;value.str.val = empty_string;
Of course, there's a macro for this as well (ZVAL_EMPTY_STRING):
MAKE_STD_ZVAL(new_string);
ZVAL_EMPTY_STRING(new_string);

Booleans

Booleans are created just like longs, but have the type IS_BOOL. Allowed values in lval are 0 and 1:

zval *new_bool;

MAKE_STD_ZVAL(new_bool);

new_bool-&gt;type = IS_BOOL;
new_bool-&gt;value.lval = 1;
The corresponding macros for this type are ZVAL_BOOL (allowing specification of the value) as well as ZVAL_TRUE and ZVAL_FALSE (which explicitly set the value to TRUE and FALSE, respectively).

Arrays

Arrays are stored using Zend's internal hash tables, which can be accessed using the zend_hash_*() API. For every array that you want to create, you need a new hash table handle, which will be stored in the ht member of the zval.value container.

There's a whole API solely for the creation of arrays, which is extremely handy. To start a new array, you call array_init().

zval *new_array;

MAKE_STD_ZVAL(new_array);

array_init(new_array);
array_init() always returns SUCCESS.

To add new elements to the array, you can use numerous functions, depending on what you want to do. Zend's API for Associative Arrays, Zend's API for Indexed Arrays, Part 1 and Zend's API for Indexed Arrays, Part 2 describe these functions. All functions return FAILURE on failure and SUCCESS on success.

Zend's API for Associative Arrays
Function | Description
add_assoc_long(zval *array, char *key, long n);() | Adds an element of type long.
add_assoc_unset(zval *array, char *key);() | Adds an unset element.
add_assoc_bool(zval *array, char *key, int b);() | Adds a Boolean element.
add_assoc_resource(zval *array, char *key, int r);() | Adds a resource to the array.
add_assoc_double(zval *array, char *key, double d);() | Adds a floating-point value.
add_assoc_string(zval *array, char *key, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_assoc_stringl(zval *array, char *key, char *str, uint length, int duplicate); () | Adds a string with the desired length length to the array. Otherwise, behaves like add_assoc_string().
add_assoc_zval(zval *array, char *key, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...
Zend's API for Indexed Arrays, Part 1
Function | Description
add_index_long(zval *array, uint idx, long n);() | Adds an element of type long.
add_index_unset(zval *array, uint idx);() | Adds an unset element.
add_index_bool(zval *array, uint idx, int b);() | Adds a Boolean element.
add_index_resource(zval *array, uint idx, int r);() | Adds a resource to the array.
add_index_double(zval *array, uint idx, double d);() | Adds a floating-point value.
add_index_string(zval *array, uint idx, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_index_stringl(zval *array, uint idx, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string().
add_index_zval(zval *array, uint idx, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...
Zend's API for Indexed Arrays, Part 2
Function | Description
add_next_index_long(zval *array, long n);() | Adds an element of type long.
add_next_index_unset(zval *array);() | Adds an unset element.
add_next_index_bool(zval *array, int b);() | Adds a Boolean element.
add_next_index_resource(zval *array, int r);() | Adds a resource to the array.
add_next_index_double(zval *array, double d);() | Adds a floating-point value.
add_next_index_string(zval *array, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_next_index_stringl(zval *array, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string().
add_next_index_zval(zval *array, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

All these functions provide a handy abstraction to Zend's internal hash API. Of course, you can also use the hash functions directly - for example, if you already have a zval container allocated that you want to insert into an array. This is done using zend_hash_update() for associative arrays (see Adding an element to an associative array.) and zend_hash_index_update() for indexed arrays (see Adding an element to an indexed array.):

Exemple #11 Adding an element to an associative array.

zval *new_array, *new_element;
char *key = "element_key";

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_update(new_array-&gt;value.ht, key, strlen(key) + 1, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

Exemple #12 Adding an element to an indexed array.

zval *new_array, *new_element;
int key = 2;

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_index_update(new_array-&gt;value.ht, key, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

To emulate the functionality of add_next_index_*(), you can use this:

zend_hash_next_index_insert(ht, zval **new_element, sizeof(zval *), NULL)

Note: To return arrays from a function, use array_init() and all following actions on the predefined variable return_value (given as argument to your exported function; see the earlier discussion of the call interface). You do not have to use MAKE_STD_ZVAL on this.

Tip: To avoid having to write new_array->value.ht every time, you can use HASH_OF(new_array), which is also recommended for compatibility and style reasons.

Objects

Since objects can be converted to arrays (and vice versa), you might have already guessed that they have a lot of similarities to arrays in PHP. Objects are maintained with the same hash functions, but there's a different API for creating them.

To initialize an object, you use the function object_init():

zval *new_object;

MAKE_STD_ZVAL(new_object);

if(object_init(new_object) != SUCCESS)
{
    // do error handling here
}
You can use the functions described in Zend's API for Object Creation to add members to your object.

Zend's API for Object Creation
Function | Description
add_property_long(zval *object, char *key, long l);() | Adds a long to the object.
add_property_unset(zval *object, char *key);() | Adds an unset property to the object.
add_property_bool(zval *object, char *key, int b);() | Adds a Boolean to the object.
add_property_resource(zval *object, char *key, long r);() | Adds a resource to the object.
add_property_double(zval *object, char *key, double d);() | Adds a double to the object.
add_property_string(zval *object, char *key, char *str, int duplicate);() | Adds a string to the object.
add_property_stringl(zval *object, char *key, char *str, uint length, int duplicate);() | Adds a string of the specified length to the object. This function is faster than add_property_string() and also binary-safe.
add_property_zval(zval *obect, char *key, zval *container):() | Adds a zval container to the object. This is useful if you have to add properties which aren't simple types like integers or strings but arrays or other objects.

Resources

Resources are a special kind of data type in PHP. The term resources doesn't really refer to any special kind of data, but to an abstraction method for maintaining any kind of information. Resources are kept in a special resource list within Zend. Each entry in the list has a correspondending type definition that denotes the kind of resource to which it refers. Zend then internally manages all references to this resource. Access to a resource is never possible directly - only via a provided API. As soon as all references to a specific resource are lost, a corresponding shutdown function is called.

For example, resources are used to store database links and file descriptors. The de facto standard implementation can be found in the MySQL module, but other modules such as the Oracle module also make use of resources.

Note:

In fact, a resource can be a pointer to anything you need to handle in your functions (e.g. pointer to a structure) and the user only has to pass a single resource variable to your function.

To create a new resource you need to register a resource destruction handler for it. Since you can store any kind of data as a resource, Zend needs to know how to free this resource if its not longer needed. This works by registering your own resource destruction handler to Zend which in turn gets called by Zend whenever your resource can be freed (whether manually or automatically). Registering your resource handler within Zend returns you the resource type handle for that resource. This handle is needed whenever you want to access a resource of this type later and is most of time stored in a global static variable within your extension. There is no need to worry about thread safety here because you only register your resource handler once during module initialization.

The Zend function to register your resource handler is defined as:

ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number);

There are two different kinds of resource destruction handlers you can pass to this function: a handler for normal resources and a handler for persistent resources. Persistent resources are for example used for database connection. When registering a resource, either of these handlers must be given. For the other handler just pass NULL.

zend_register_list_destructors_ex() accepts the following parameters:

ld | Normal resource destruction handler callback
pld | Pesistent resource destruction handler callback
type_name | A string specifying the name of your resource. It's always a good thing to specify a unique name within PHP for the resource type so when the user for example calls var_dump($resource); he also gets the name of the resource.
module_number | The module_number is automatically available in your PHP_MINIT_FUNCTION function and therefore you just pass it over.
The return value is a unique integer ID for your resource type.

The resource destruction handler (either normal or persistent resources) has the following prototype:

void resource_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC);
The passed rsrc is a pointer to the following structure:
typedef struct _zend_rsrc_list_entry {

    void *ptr;
    int type;
    int refcount;

} zend_rsrc_list_entry;
The member void *ptr is the actual pointer to your resource.

Now we know how to start things, we define our own resource we want register within Zend. It is only a simple structure with two integer members:

typedef struct {

    int resource_link;
    int resource_type;

} my_resource;
Our resource destruction handler is probably going to look something like this:
void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

    // You most likely cast the void pointer to your structure type

    my_resource *my_rsrc = (my_resource *) rsrc->ptr;

    // Now do whatever needs to be done with you resource. Closing
    // Files, Sockets, freeing additional memory, etc.
    // Also, don't forget to actually free the memory for your resource too!

    do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
}

Note:

One important thing to mention: If your resource is a rather complex structure which also contains pointers to memory you allocated during runtime you have to free them before freeing the resource itself!

Now that we have defined

  1. what our resource is and

  2. our resource destruction handler

we can go on and do the rest of the steps:

  1. create a global variable within the extension holding the resource ID so it can be accessed from every function which needs it

  2. define the resource name

  3. write the resource destruction handler

  4. and finally register the handler

// Somewhere in your extension, define the variable for your registered resources.
    // If you wondered what 'le' stands for: it simply means 'list entry'.
    static int le_myresource;

    // It's nice to define your resource name somewhere
    #define le_myresource_name  "My type of resource"

    [...]

    // Now actually define our resource destruction handler
    void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

        my_resource *my_rsrc = (my_resource *) rsrc->ptr;
        do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
    }

    [...]

    PHP_MINIT_FUNCTION(my_extension) {

        // Note that 'module_number' is already provided through the
        // PHP_MINIT_FUNCTION() function definition.

        le_myresource = zend_register_list_destructors_ex(my_destruction_handler, NULL, le_myresource_name, module_number);

        // You can register additional resources, initialize
        // your global vars, constants, whatever.
    }

To actually register a new resource you use can either use the zend_register_resource() function or the ZEND_REGISTER_RESOURE() macro, both defined in zend_list.h. Although the arguments for both map 1:1 it's a good idea to always use macros to be upwards compatible:

int ZEND_REGISTER_RESOURCE(zval *rsrc_result, void *rsrc_pointer, int rsrc_type);
rsrc_result | This is an already initialized zval * container.
rsrc_pointer | Your resource pointer you want to store.
rsrc_type | The type which you received when you registered the resource destruction handler. If you followed the naming scheme this would be le_myresource.
The return value is a unique integer identifier for that resource.

What is really going on when you register a new resource is it gets inserted in an internal list in Zend and the result is just stored in the given zval * container:

rsrc_id = zend_list_insert(rsrc_pointer, rsrc_type);

    if (rsrc_result) {
        rsrc_result->value.lval = rsrc_id;
        rsrc_result->type = IS_RESOURCE;
    }

    return rsrc_id;
The returned rsrc_id uniquely identifies the newly registered resource. You can use the macro RETURN_RESOURE to return it to the user:
    RETURN_RESOURCE(rsrc_id)

Note:

It is common practice that if you want to return the resource immediately to the user you specify the return_value as the zval * container.

Zend now keeps track of all references to this resource. As soon as all references to the resource are lost, the destructor that you previously registered for this resource is called. The nice thing about this setup is that you don't have to worry about memory leakages introduced by allocations in your module - just register all memory allocations that your calling script will refer to as resources. As soon as the script decides it doesn't need them anymore, Zend will find out and tell you.

Now that the user got his resource, at some point he is passing it back to one of your functions. The value.lval inside the zval * container contains the key to your resource and thus can be used to fetch the resource with the following macro: ZEND_FETCH_RESOURCE:

ZEND_FETCH_RESOURCE(rsrc, rsrc_type, rsrc_id, default_rsrc_id, resource_type_name, resource_type)
rsrc | This is your pointer which will point to your previously registered resource.
rsrc_type | This is the typecast argument for your pointer, e.g. myresource *.
rsrc_id | This is the address of the zval *container the user passed to your function, e.g. &z_resource if zval *z_resource is given.
default_rsrc_id | This integer specifies the default resource ID if no resource could be fetched or -1.
resource_type_name | This is the name of the requested resource. It's a string and is used when the resource can't be found or is invalid to form a meaningful error message.
resource_type | The resource_type you got back when registering the resource destruction handler. In our example this was le_myresource.
This macro has no return value. It is for the developers convenience and takes care of TSRMLS arguments passing and also does check if the resource could be fetched. It throws a warning message and returns the current PHP function with NULL if there was a problem retrieving the resource.

To force removal of a resource from the list, use the function zend_list_delete(). You can also force the reference count to increase if you know that you're creating another reference for a previously allocated value (for example, if you're automatically reusing a default database link). For this case, use the function zend_list_addref(). To search for previously allocated resource entries, use zend_list_find(). The complete API can be found in zend_list.h.

Macros for Automatic Global Variable Creation

In addition to the macros discussed earlier, a few macros allow easy creation of simple global variables. These are nice to know in case you want to introduce global flags, for example. This is somewhat bad practice, but Table Macros for Global Variable Creation describes macros that do exactly this task. They don't need any zval allocation; you simply have to supply a variable name and value.

Macros for Global Variable Creation
Macro | Description
SET_VAR_STRING(name, value) | Creates a new string.
SET_VAR_STRINGL(name, value, length) | Creates a new string of the specified length. This macro is faster than SET_VAR_STRING and also binary-safe.
SET_VAR_LONG(name, value) | Creates a new long.
SET_VAR_DOUBLE(name, value) | Creates a new double.

Creating Constants

Zend supports the creation of true constants (as opposed to regular variables). Constants are accessed without the typical dollar sign ($) prefix and are available in all scopes. Examples include TRUE and FALSE, to name just two.

To create your own constants, you can use the macros in Macros for Creating Constants. All the macros create a constant with the specified name and value.

You can also specify flags for each constant:

  • CONST_CS - This constant's name is to be treated as case sensitive.

  • CONST_PERSISTENT - This constant is persistent and won't be "forgotten" when the current process carrying this constant shuts down.

To use the flags, combine them using a inary OR:
 // register a new constant of type "long"
     REGISTER_LONG_CONSTANT("NEW_MEANINGFUL_CONSTANT", 324, CONST_CS |
     CONST_PERSISTENT);
There are two types of macros - REGISTER_*_CONSTANT andREGISTER_MAIN_*_CONSTANT. The first type creates constants bound to the current module. These constants are dumped from the symbol table as soon as the module that registered the constant is unloaded from memory. The second type creates constants that remain in the symbol table independently of the module.

Macros for Creating Constants
Macro | Description
REGISTER_LONG_CONSTANT(name, value, flags) REGISTER_MAIN_LONG_CONSTANT(name, value, flags) | Registers a new constant of type long.
REGISTER_DOUBLE_CONSTANT(name, value, flags) REGISTER_MAIN_DOUBLE_CONSTANT(name, value, flags) | Registers a new constant of type double.
REGISTER_STRING_CONSTANT(name, value, flags) REGISTER_MAIN_STRING_CONSTANT(name, value, flags) | Registers a new constant of type string. The specified string must reside in Zend's internal memory.
REGISTER_STRINGL_CONSTANT(name, value, length, flags) REGISTER_MAIN_STRINGL_CONSTANT(name, value, length, flags) | Registers a new constant of type string. The string length is explicitly set to length. The specified string must reside in Zend's internal memory.

Duplicating Variable Contents: The Copy Constructor

Sooner or later, you may need to assign the contents of one zval container to another. This is easier said than done, since the zval container doesn't contain only type information, but also references to places in Zend's internal data. For example, depending on their size, arrays and objects may be nested with lots of hash table entries. By assigning one zval to another, you avoid duplicating the hash table entries, using only a reference to them (at most).

To copy this complex kind of data, use the copy constructor. Copy constructors are typically defined in languages that support operator overloading, with the express purpose of copying complex types. If you define an object in such a language, you have the possibility of overloading the "=" operator, which is usually responsible for assigning the contents of the rvalue (result of the evaluation of the right side of the operator) to the lvalue (same for the left side).

Overloading means assigning a different meaning to this operator, and is usually used to assign a function call to an operator. Whenever this operator would be used on such an object in a program, this function would be called with the lvalue and rvalue as parameters. Equipped with that information, it can perform the operation it intends the "=" operator to have (usually an extended form of copying).

This same form of "extended copying" is also necessary for PHP's zval containers. Again, in the case of an array, this extended copying would imply re-creation of all hash table entries relating to this array. For strings, proper memory allocation would have to be assured, and so on.

Zend ships with such a function, called zend_copy_ctor() (the previous PHP equivalent was pval_copy_constructor()).

A most useful demonstration is a function that accepts a complex type as argument, modifies it, and then returns the argument:

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
   return;
}

// do modifications to the parameter here

// now we want to return the modified container:
*return_value = *parameter;
zval_copy_ctor(return_value);

The first part of the function is plain-vanilla argument retrieval. After the (left out) modifications, however, it gets interesting: The container of parameter is assigned to the (predefined) return_value container. Now, in order to effectively duplicate its contents, the copy constructor is called. The copy constructor works directly with the supplied argument, and the standard return values are FAILURE on failure and SUCCESS on success.

If you omit the call to the copy constructor in this example, both parameter and return_value would point to the same internal data, meaning that return_value would be an illegal additional reference to the same data structures. Whenever changes occurred in the data that parameter points to, return_value might be affected. Thus, in order to create separate copies, the copy constructor must be used.

The copy constructor's counterpart in the Zend API, the destructor zval_dtor(), does the opposite of the constructor.

Returning Values

Returning values from your functions to PHP was described briefly in an earlier section; this section gives the details. Return values are passed via the return_value variable, which is passed to your functions as argument. The return_value argument consists of a zval container (see the earlier discussion of the call interface) that you can freely modify. The container itself is already allocated, so you don't have to run MAKE_STD_ZVAL on it. Instead, you can access its members directly.

To make returning values from functions easier and to prevent hassles with accessing the internal structures of the zval container, a set of predefined macros is available (as usual). These macros automatically set the correspondent type and value, as described in Predefined Macros for Returning Values from a Function and Predefined Macros for Setting the Return Value of a Function.

Note:

The macros in Predefined Macros for Returning Values from a Function automatically return from your function, those in Predefined Macros for Setting the Return Value of a Function only set the return value; they don't return from your function.

Predefined Macros for Returning Values from a Function
Macro | Description
RETURN_RESOURCE(resource) | Returns a resource.
RETURN_BOOL(bool) | Returns a Boolean.
RETURN_NULL() | Returns nothing (a NULL value).
RETURN_LONG(long) | Returns a long.
RETURN_DOUBLE(double) | Returns a double.
RETURN_STRING(string, duplicate) | Returns a string. The duplicate flag indicates whether the string should be duplicated using estrdup().
RETURN_STRINGL(string, length, duplicate) | Returns a string of the specified length; otherwise, behaves like RETURN_STRING. This macro is faster and binary-safe, however.
RETURN_EMPTY_STRING() | Returns an empty string.
RETURN_FALSE | Returns Boolean false.
RETURN_TRUE | Returns Boolean true.
Predefined Macros for Setting the Return Value of a Function
Macro | Description
RETVAL_RESOURCE(resource) | Sets the return value to the specified resource.
RETVAL_BOOL(bool) | Sets the return value to the specified Boolean value.
RETVAL_NULL | Sets the return value to NULL.
RETVAL_LONG(long) | Sets the return value to the specified long.
RETVAL_DOUBLE(double) | Sets the return value to the specified double.
RETVAL_STRING(string, duplicate) | Sets the return value to the specified string and duplicates it to Zend internal memory if desired (see also RETURN_STRING).
RETVAL_STRINGL(string, length, duplicate) | Sets the return value to the specified string and forces the length to become length (see also RETVAL_STRING). This macro is faster and binary-safe, and should be used whenever the string length is known.
RETVAL_EMPTY_STRING | Sets the return value to an empty string.
RETVAL_FALSE | Sets the return value to Boolean false.
RETVAL_TRUE | Sets the return value to Boolean true.

Complex types such as arrays and objects can be returned by using array_init() and object_init(), as well as the corresponding hash functions on return_value. Since these types cannot be constructed of trivial information, there are no predefined macros for them.

Printing Information

Often it's necessary to print messages to the output stream from your module, just as print would be used within a script. PHP offers functions for most generic tasks, such as printing warning messages, generating output for phpinfo(), and so on. The following sections provide more details. Examples of these functions can be found on the CD-ROM.

zend_printf()

zend_printf() works like the standard printf(), except that it prints to Zend's output stream.

zend_error()

zend_error() can be used to generate error messages. This function accepts two arguments; the first is the error type (see zend_errors.h), and the second is the error message.

zend_error(E_WARNING, "This function has been called with empty arguments");
Zend's Predefined Error Messages. shows a list of possible values (see below). These values are also referred to in php.ini. Depending on which error type you choose, your messages will be logged.
Zend's Predefined Error Messages.
Error | Description
E_ERROR | Signals an error and terminates execution of the script immediately.
E_WARNING | Signals a generic warning. Execution continues.
E_PARSE | Signals a parser error. Execution continues.
E_NOTICE | Signals a notice. Execution continues. Note that by default the display of this type of error messages is turned off in php.ini.
E_CORE_ERROR | Internal error by the core; shouldn't be used by user-written modules.
E_COMPILE_ERROR | Internal error by the compiler; shouldn't be used by user-written modules.
E_COMPILE_WARNING | Internal warning by the compiler; shouldn't be used by user-written modules.
Display of warning messages in the browser.

Including Output in phpinfo()

After creating a real module, you'll want to show information about the module in phpinfo() (in addition to the module name, which appears in the module list by default). PHP allows you to create your own section in the phpinfo() output with the ZEND_MINFO() function. This function should be placed in the module descriptor block (discussed earlier) and is always called whenever a script calls phpinfo().

PHP automatically prints a section in phpinfo() for you if you specify the ZEND_MINFO function, including the module name in the heading. Everything else must be formatted and printed by you.

Typically, you can print an HTML table header using php_info_print_table_start() and then use the standard functions php_info_print_table_header() and php_info_print_table_row(). As arguments, both take the number of columns (as integers) and the column contents (as strings). Source code and screenshot for output in phpinfo. shows a source example and its output. To print the table footer, use php_info_print_table_end().

Exemple #13 Source code and screenshot for output in phpinfo().

php_info_print_table_start();
php_info_print_table_header(2, "First column", "Second column");
php_info_print_table_row(2, "Entry in first row", "Another entry");
php_info_print_table_row(2, "Just to fill", "another row here");
php_info_print_table_end();
Output of phpinfo()

Execution Information

You can also print execution information, such as the current file being executed. The name of the function currently being executed can be retrieved using the function get_active_function_name(). This function returns a pointer to the function name and doesn't accept any arguments. To retrieve the name of the file currently being executed, use zend_get_executed_filename(). This function accesses the executor globals, which are passed to it using the TSRMLS_C macro. The executor globals are automatically available to every function that's called directly by Zend (they're part of the INTERNAL_FUNCTION_PARAMETERS described earlier in this chapter). If you want to access the executor globals in another function that doesn't have them available automatically, call the macro TSRMLS_FETCH() once in that function; this will introduce them to your local scope.

Finally, the line number currently being executed can be retrieved using the function zend_get_executed_lineno(). This function also requires the executor globals as arguments. For examples of these functions, see Printing execution information..

Exemple #14 Printing execution information.

zend_printf("The name of the current function is %s&lt;br&gt;", get_active_function_name(TSRMLS_C));
zend_printf("The file currently executed is %s&lt;br&gt;", zend_get_executed_filename(TSRMLS_C));
zend_printf("The current line being executed is %i&lt;br&gt;", zend_get_executed_lineno(TSRMLS_C));
Printing execution information

Startup and Shutdown Functions

Startup and shutdown functions can be used for one-time initialization and deinitialization of your modules. As discussed earlier in this chapter (see the description of the Zend module descriptor block), there are module, and request startup and shutdown events.

The module startup and shutdown functions are called whenever a module is loaded and needs initialization; the request startup and shutdown functions are called every time a request is processed (meaning that a file is being executed).

For dynamic extensions, module and request startup/shutdown events happen at the same time.

Declaration and implementation of these functions can be done with macros; see the earlier section "Declaration of the Zend Module Block" for details.

Calling User Functions

You can call user functions from your own modules, which is very handy when implementing callbacks; for example, for array walking, searching, or simply for event-based programs.

User functions can be called with the function call_user_function_ex(). It requires a hash value for the function table you want to access, a pointer to an object (if you want to call a method), the function name, return value, number of arguments, argument array, and a flag indicating whether you want to perform zval separation.

ZEND_API int call_user_function_ex(HashTable *function_table, zval *object,
zval *function_name, zval **retval_ptr_ptr,
int param_count, zval **params[],
int no_separation);

Note that you don't have to specify both function_table and object; either will do. If you want to call a method, you have to supply the object that contains this method, in which case call_user_function()automatically sets the function table to this object's function table. Otherwise, you only need to specify function_table and can set object to NULL.

Usually, the default function table is the "root" function table containing all function entries. This function table is part of the compiler globals and can be accessed using the macro CG. To introduce the compiler globals to your function, call the macro TSRMLS_FETCH once.

The function name is specified in a zval container. This might be a bit surprising at first, but is quite a logical step, since most of the time you'll accept function names as parameters from calling functions within your script, which in turn are contained in zval containers again. Thus, you only have to pass your arguments through to this function. This zval must be of type IS_STRING.

The next argument consists of a pointer to the return value. You don't have to allocate memory for this container; the function will do so by itself. However, you have to destroy this container (using zval_dtor()) afterward!

Next is the parameter count as integer and an array containing all necessary parameters. The last argument specifies whether the function should perform zval separation - this should always be set to 0. If set to 1, the function consumes less memory but fails if any of the parameters need separation.

Calling user functions. shows a small demonstration of calling a user function. The code calls a function that's supplied to it as argument and directly passes this function's return value through as its own return value. Note the use of the constructor and destructor calls at the end - it might not be necessary to do it this way here (since they should be separate values, the assignment might be safe), but this is bulletproof.

Exemple #15 Calling user functions.

zval **function_name;
zval *retval;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &function_name) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

if((*function_name)->type != IS_STRING)
{
    zend_error(E_ERROR, "Function requires string argument");
}

TSRMSLS_FETCH();

if(call_user_function_ex(CG(function_table), NULL, *function_name, &retval, 0, NULL, 0) != SUCCESS)
{
    zend_error(E_ERROR, "Function call failed");
}

zend_printf("We have %i as type\n", retval->type);

*return_value = *retval;
zval_copy_ctor(return_value);
zval_ptr_dtor(&retval);

<?php

dl("call_userland.so");

function test_function()
{
    echo "We are in the test function!\n";
    return 'hello';
}

$return_value = call_userland("test_function");

echo "Return value: '$return_value'";
?>

L'exemple ci-dessus va afficher :

We are in the test function!
We have 3 as type
Return value: 'hello'

Initialization File Support

PHP 4 features a redesigned initialization file support. It's now possible to specify default initialization entries directly in your code, read and change these values at runtime, and create message handlers for change notifications.

To create an .ini section in your own module, use the macros PHP_INI_BEGIN() to mark the beginning of such a section and PHP_INI_END() to mark its end. In between you can use PHP_INI_ENTRY() to create entries.

PHP_INI_BEGIN()
PHP_INI_ENTRY("first_ini_entry",  "has_string_value", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("second_ini_entry", "2",                PHP_INI_SYSTEM, OnChangeSecond)
PHP_INI_ENTRY("third_ini_entry",  "xyz",              PHP_INI_USER, NULL)
PHP_INI_END()
The PHP_INI_ENTRY() macro accepts four parameters: the entry name, the entry value, its change permissions, and a pointer to a change-notification handler. Both entry name and value must be specified as strings, regardless of whether they really are strings or integers.

The permissions are grouped into three sections:PHP_INI_SYSTEM allows a change only directly in the php.ini file; PHP_INI_USER allows a change to be overridden by a user at runtime using additional configuration files, such as .htaccess; and PHP_INI_ALL allows changes to be made without restrictions. There's also a fourth level, PHP_INI_PERDIR, for which we couldn't verify its behavior yet.

The fourth parameter consists of a pointer to a change-notification handler. Whenever one of these initialization entries is changed, this handler is called. Such a handler can be declared using the PHP_INI_MH macro:

PHP_INI_MH(OnChangeSecond);             // handler for ini-entry "second_ini_entry"

// specify ini-entries here

PHP_INI_MH(OnChangeSecond)
{

    zend_printf("Message caught, our ini entry has been changed to %s&lt;br&gt;", new_value);

    return(SUCCESS);

}
The new value is given to the change handler as string in the variable new_value. When looking at the definition of PHP_INI_MH, you actually have a few parameters to use:
#define PHP_INI_MH(name) int name(php_ini_entry *entry, char *new_value,
                                  uint new_value_length, void *mh_arg1,
                                  void *mh_arg2, void *mh_arg3)
All these definitions can be found in php_ini.h. Your message handler will have access to a structure that contains the full entry, the new value, its length, and three optional arguments. These optional arguments can be specified with the additional macros PHP_INI_ENTRY1 (allowing one additional argument), PHP_INI_ENTRY2 (allowing two additional arguments), and PHP_INI_ENTRY3 (allowing three additional arguments).

The change-notification handlers should be used to cache initialization entries locally for faster access or to perform certain tasks that are required if a value changes. For example, if a constant connection to a certain host is required by a module and someone changes the hostname, automatically terminate the old connection and attempt a new one.

Access to initialization entries can also be handled with the macros shown in Macros to Access Initialization Entries in PHP.

Macros to Access Initialization Entries in PHP
Macro | Description
INI_INT(name) | Returns the current value of entry name as integer (long).
INI_FLT(name) | Returns the current value of entry name as float (double).
INI_STR(name) | Returns the current value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_BOOL(name) | Returns the current value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).
INI_ORIG_INT(name) | Returns the original value of entry name as integer (long).
INI_ORIG_FLT(name) | Returns the original value of entry name as float (double).
INI_ORIG_STR(name) | Returns the original value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_ORIG_BOOL(name) | Returns the original value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).

Finally, you have to introduce your initialization entries to PHP. This can be done in the module startup and shutdown functions, using the macros REGISTER_INI_ENTRIES() and UNREGISTER_INI_ENTRIES():

ZEND_MINIT_FUNCTION(mymodule)
{

    REGISTER_INI_ENTRIES();

}

ZEND_MSHUTDOWN_FUNCTION(mymodule)
{

    UNREGISTER_INI_ENTRIES();

}

Where to Go from Here

You've learned a lot about PHP. You now know how to create dynamic loadable modules and statically linked extensions. You've learned how PHP and Zend deal with internal storage of variables and how you can create and access these variables. You know quite a set of tool functions that do a lot of routine tasks such as printing informational texts, automatically introducing variables to the symbol table, and so on.

Even though this chapter often had a mostly "referential" character, we hope that it gave you insight on how to start writing your own extensions. For the sake of space, we had to leave out a lot; we suggest that you take the time to study the header files and some modules (especially the ones in the ext/standard directory and the MySQL module, as these implement commonly known functionality). This will give you an idea of how other people have used the API functions - particularly those that didn't make it into this chapter.

Reference: Some Configuration Macros

config.m4

The file config.m4 is processed by buildconf and must contain all the instructions to be executed during configuration. For example, these can include tests for required external files, such as header files, libraries, and so on. PHP defines a set of macros that can be used in this process, the most useful of which are described in M4 Macros for config.m4.

M4 Macros for config.m4
Macro | Description
AC_MSG_CHECKING(message) | Prints a "checking <message>" text during configure.
AC_MSG_RESULT(value) | Gives the result to AC_MSG_CHECKING; should specify either yes or no as value.
AC_MSG_ERROR(message) | Prints message as error message during configure and aborts the script.
AC_DEFINE(name,value,description) | Adds #define to php_config.h with the value of value and a comment that says description (this is useful for conditional compilation of your module).
AC_ADD_INCLUDE(path) | Adds a compiler include path; for example, used if the module needs to add search paths for header files.
AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath) | Specifies an additional library to link.
AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest) | Quite a powerful macro, adding the module with description to the configure --help output. PHP checks whether the option --with-<modulename> is given to the configure script. If so, it runs the script unconditionaltest (for example, --with-myext=yes), in which case the value of the option is contained in the variable $withval. Otherwise, it executes conditionaltest.
PHP_EXTENSION(modulename, [shared]) | This macro is a must to call for PHP to configure your extension. You can supply a second argument in addition to your module name, indicating whether you intend compilation as a shared module. This will result in a definition at compile time for your source as COMPILE_DL_<modulename>.

API Macros

A set of macros was introduced into Zend's API that simplify access to zval containers (see API Macros for Accessing zval Containers).

API Macros for Accessing zval Containers
Macro | Refers to
Z_LVAL(zval) | (zval).value.lval
Z_DVAL(zval) | (zval).value.dval
Z_STRVAL(zval) | (zval).value.str.val
Z_STRLEN(zval) | (zval).value.str.len
Z_ARRVAL(zval) | (zval).value.ht
Z_LVAL_P(zval) | (*zval).value.lval
Z_DVAL_P(zval) | (*zval).value.dval
Z_STRVAL_P(zval_p) | (*zval).value.str.val
Z_STRLEN_P(zval_p) | (*zval).value.str.len
Z_ARRVAL_P(zval_p) | (*zval).value.ht
Z_LVAL_PP(zval_pp) | (**zval).value.lval
Z_DVAL_PP(zval_pp) | (**zval).value.dval
Z_STRVAL_PP(zval_pp) | (**zval).value.str.val
Z_STRLEN_PP(zval_pp) | (**zval).value.str.len
Z_ARRVAL_PP(zval_pp) | (**zval).value.ht


  • « API Zend : Modification du coeur de PHP
  • FAQ »
  • PHP Manual
  • Zend Engine 1
  • TSRM API

TSRM API


FAQ : foire Aux Questions

  • Informations générales
  • Listes de diffusion — Listes de diffusions
  • Obtenir PHP
  • Considérations sur les bases de données
  • Installation
  • Problèmes de compilation
  • Utiliser PHP
  • Hashage de mots de passe — Hashage de mots de passe sûr
  • PHP et HTML
  • PHP et COM
  • Questions diverses


Informations générales

Cette section présente les questions les plus fréquentes à propos de PHP : ce qu'est PHP et ce qu'il fait.

  1. Qu'est-ce que PHP ?
  2. Que représente l'acronyme PHP ?
  3. Quelle est la relation entre les versions ?
  4. Puis-je utiliser plusieurs versions de PHP en même temps ?
  5. Je pense avoir trouvé un bogue ! Qui dois-je contacter ?
Qu'est-ce que PHP ?

Depuis la préface de ce manuel :

PHP est un langage de script HTML, exécuté coté serveur. Sa syntaxe est empruntée aux langages C, Java et Perl, et est facile à apprendre. Le but de ce langage est de permettre aux développeurs web d'écrire des pages dynamiques rapidement, mais vous pouvez faire beaucoup plus avec PHP.

Que représente l'acronyme PHP ?

PHP signifie PHP: Hypertext Preprocessor. La confusion vient du fait que la première lettre de l'acronyme représente l'acronyme lui-même. Ce type d'acronyme est appelé un acronyme récursif. Pour plus d'informations, les plus curieux peuvent visiter "» Free On-Line Dictionary of Computing" ou l'» entrée Wikipedia sur les acronymes récursifs.

Quelle est la relation entre les versions ?

PHP/FI 2.0 est une des premières versions de PHP et elle n'est plus supportée. PHP 3 en est son successeur et est beaucoup plus convivial. PHP 4 est la génération actuelle de PHP, qui utilise le » moteur Zend 2 qui apporte, entre autres, beaucoup de nouveautés dans le modèle objet.

Puis-je utiliser plusieurs versions de PHP en même temps ?

Oui. Voir le fichier INSTALL inclus dans les sources de PHP.

Je pense avoir trouvé un bogue ! Qui dois-je contacter ?

Vous devriez aller sur la base de données de bogues PHP afin de vous assurer qu'il n'est pas déjà connu. Si vous ne le trouvez pas, utilisez le formulaire de rapport de bogues pour le faire connaître. Il est important d'utiliser la base de données de bogues au lieu d'envoyer simplement un courriel à une des listes de diffusion car le bogue se verra assigner un numéro qui vous sera utile pour suivre son évolution. La base de données de bogues peut être trouvée à » http://bugs.php.net/.


Listes de diffusions

Cette section traite des questions à propos de la communication avec la communauté PHP. Le meilleur moyen est l'utilisation des listes de diffusion.

  1. Existe-t-il des listes de diffusion PHP ?
  2. Y a-t-il d'autres communautés ?
  3. Puis-je mettre en place ma propre liste de diffusion PHP ?
  4. Aidez-moi ! Je ne peux visiblement pas m'inscrire à une / me désinscrire d'une des listes de diffusion !
  5. Y a-t-il une archive des listes de diffusion quelque part ?
  6. Que puis-je demander sur les listes de diffusion ?
  7. Quelle information devrais-je inclure lors de l'écriture de mon message à la liste de diffusion ?
Existe-t-il des listes de diffusion PHP ?

Bien sûr ! Il y a beaucoup de listes de diffusion traitant de beaucoup de sujets. Une liste des listes de diffusion les plus communes peut être trouvée sur cette » page.

La liste de diffusion la plus générale est la liste php-general. Pour s'y inscrire, envoyez un courriel vide à » php-general-subscribe@lists.php.net. Pour se déinscrire, envoyez un courriel vide à » php-general-unsubscribe@lists.php.net.

Vous pouvez également vous inscrire et vous désinscrire en utilisant l'interface web sur cette » page; les instructions pour se désinscrire sont également présentes en bas de chaque courriel de la liste.

Y a-t-il d'autres communautés ?

Il y a énormément de communautés PHP à travers le monde, et nous avons une liste de la plupart des ressources (ainsi que des informations pour en connaître d'autres) sur notre page de » support.

Puis-je mettre en place ma propre liste de diffusion PHP ?

Absolument ! En fait, nous ne faisons pas que l'autoriser, mais nous l'encourageons ! Le fait d'aider les autres en partageant ses compétences et son expérience de PHP aide dans le développement de la communauté PHP mais aussi dans le language en tant que tel.

Aidez-moi ! Je ne peux visiblement pas m'inscrire à une / me désinscrire d'une des listes de diffusion !

Si vous avez des problèmes pour l'inscription/la désinscription depuis la liste de diffusion php-general, cela peut être dû au fait que le logiciel de listes de diffusion n'arrive pas à traiter correctement la liste de diffusion à utiliser. Si votre adresse e-mail est joeblow@example.com, vous pouvez envoyer une requête d'inscription à php-general-subscribe-joeblow=example.com@lists.php.net, ou une requête de désinscription à php-general-unsubscribe-joeblow=example.com@lists.php.net. Utilisez la même méthode avec les autres listes de diffusion.

La plupart du temps, lorsque les utilisateurs rencontrent des problèmes pour se désinscrire d'une liste de diffusion PHP, c'est à cause des courriels redirigés. Par exemple, si votre adresse est danbrown@example.com, mais que vous vous êtes inscrit en utilisant la redirection php-lists@example.com et ensuite, vous redirigez la liste vers danbrown@example.com, le fait de tenter de se désinscrire en utilisant danbrown@example.com ne fonctionnera pas. À la place, vous devez vous désinscrire en utilisant l'adresse recevant les courriels de la liste - dans notre exemple, php-lists@example.com.

Y a-t-il une archive des listes de diffusion quelque part ?

Oui, vous pouvez trouver la liste des sites proposant des archives sur la page des » listes de diffusion. Vous pouvez également trouver plusieurs sites qui archivent ou publient le contenu de nos listes de diffusion en utilisant votre moteur de recherche Internet préféré, en cherchant, par exemple, la chaîne "php mailing list archives".

Tous les messages de nos listes de diffusion sont également archivés dans des newsgroup. Vous pouvez accéder à ces serveurs sur » news://news.php.net/ avec un client adapté. Il y a également une interface web expérimentale pour ces serveurs à l'adresse » http://news.php.net/

Que puis-je demander sur les listes de diffusion ?

PHP devient de plus en plus populaire chaque jour, augmentant ainsi le trafic sur la liste de diffusion php-general qui accueille de 75 à 200 messages chaque jour. Aussi, c'est dans l'intérêt de tous que d'utiliser la liste de diffusion en dernier ressort, lorsque vous avez déjà épuisé toutes les autres voies.

Avant de poster sur cette liste, merci de lire la FAQ (Foire Aux Questions) afin de voir si vous n'y trouvez pas de l'aide. S'il n'y a rien concernant votre problème, essayez dans les archives de la liste de diffusion (voir précédemment). Si vous avez des problèmes pour l'installation ou la configuration de PHP, lisez toute la documentation s'y rapportant, ainsi que les fichiers README. Si vous ne trouvez toujours pas de réponse à votre problème, vous êtes le bienvenu sur la liste de diffusion.

Afin d'avoir la meilleure réponse à votre question (et pour éviter d'agacer les développeurs), assurez-vous de poser votre question sur la liste de diffusion appropriée. Par exemple, si vous avez des difficultés à installer PHP, vous devez poser votre question sur la liste de diffusion php-install. Attention : certaines listes ont des noms similaires, mais des usages totalement différents ; une question vis à vis des scripts PHP sous Windows doit être dirigée vers la liste des utilisateurs PHP sous Windows, et non vers la liste interne Windows.

Avant de poser une question, vous devriez lire l'article intitulé "» Comment poser une question de la meilleur façon" ; c'est une bonne idée, pour tout le monde.

Quelle information devrais-je inclure lors de l'écriture de mon message à la liste de diffusion ?

Les messages comme "Je n'arrive pas à faire fonctionner PHP !! Aidez-moi !! Qu'est-ce qu'il ne va pas ??" sont totalement inutiles, pour tous. Si vous avez des problèmes pour faire fonctionner PHP, vous devez inclure le système sur lequel le problème survient, quelle version de PHP vous tentez de faire fonctionner, sous quelle forme vous l'avez installée (précompilé, Git, RPMs, etc.), qu'est-ce que vous avez fait pour le moment, l'endroit où vous êtes coincé et quel est le message d'erreur.

Cela est valable pour n'importe quel type de problème. Vous devez inclure les informations sur ce que vous avez fait, où vous êtes coincé, ce que vous cherché à faire et, si possible, le message d'erreur obtenu. Si vous avez un problème avec votre code source, vous devez également inclure la portion de code qui ne fonctionne pas. N'incluez que le code nécessaire à la compréhension du problème ! Si vous incluez tout le code, votre message sera difficile à lire et, à cause de cela, beaucoup de personnes passeront sans même le lire. Si vous n'êtes pas sûr sur la quantité d'informations à inclure à votre message, il est préférable d'en mettre trop que pas assez et préparez-vous à fournir d'autres informations.

Un autre point important à ne pas oublier est de résumer votre problème dans l'objet du message. Un objet qui ressemble à "Aidez-moi !!!!" ou "Quel est le souci ici ?" sera ignoré par la majorité des lecteurs.

Et pour finir, vous êtes encouragé à lire l'article sur "» Comment poser une question de la meilleur façon", ce qui sera une aide énorme pour tous, et tout spécialement pour vous.


Obtenir PHP

Cette section traite du téléchargement de PHP et les problèmes liés aux systèmes d'exploitation.

  1. Où puis-je obtenir PHP ?
  2. Est-ce que les versions binaires pré-compilées sont disponibles ?
  3. Où puis-je obtenir les bibliothèques dont j'ai besoin pour compiler les extensions optionnelles de PHP ?
  4. Comment faire fonctionner ces bibliothèques ?
  5. J'ai la dernière version du code source de PHP, téléchargée à partir de Git. De quoi ai-je besoin pour le compiler sous Windows ?
  6. Où puis-je trouver le fichier Browser Capabilities ?
  7. Que signifie thread safety lors du téléchargement de PHP?
Où puis-je obtenir PHP ?

Vous pouvez télécharger PHP à partir d'un des membres du réseau de sites PHP. Vous pouvez les trouver sur » http://www.php.net/. Vous pouvez aussi utiliser Git pour obtenir la toute dernière version des sources. Pour plus d'informations, allez sur » http://www.php.net/git.php.

Est-ce que les versions binaires pré-compilées sont disponibles ?

Nous ne les distribuons que pour le système Windows, car nous ne pouvons compiler PHP pour chaque plate-forme Linux/Unix avec toutes les combinaisons d'extensions. Notez aussi que plusieurs distributions Linux fournissent PHP d'office de nos jours. Les binaires Windows peuvent être téléchargés à partir de notre page de » Téléchargement, pour les binaires Linux, visitez le site de votre distribution.

Où puis-je obtenir les bibliothèques dont j'ai besoin pour compiler les extensions optionnelles de PHP ?

Note: Celles marquées d'une étoile (*) ne sont pas thread safe ; nous vous recommandons de ne pas les utiliser en environnement multi-threadé.

  • » LDAP (Unix).
  • » LDAP (Unix/Win) : Mozilla Directory (LDAP) SDK
  • » free LDAP server.
  • » Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.
  • » SNMP* (Unix): .
  • » GD (Unix/Win).
  • » mSQL* (Unix).
  • » PostgreSQL (Unix).
  • » IMAP* (Win/Unix).
  • » Sybase-CT* (Linux, libc5) : Disponible localement.
  • » FreeType (libttf):.
  • » ZLib (Unix/Win32).
  • » expat XML parser (Unix/Win32).
  • » PDFLib.
  • » mcrypt.
  • » mhash.
  • » t1lib.
  • » dmalloc.
  • » aspell.
  • » readline.

Comment faire fonctionner ces bibliothèques ?

Vous devrez suivre les instructions fournies avec les bibliothèques. Quelques une d'entre elles sont détectées automatiquement lorsque vous exécutez le script 'configure' de PHP (comme la bibliothèque GD), pour les autres, vous devrez les activer en utilisant l'option '--with-EXTENSION' de 'configure'. Exécutez 'configure --help' pour en avoir la liste complète.

J'ai la dernière version du code source de PHP, téléchargée à partir de Git. De quoi ai-je besoin pour le compiler sous Windows ?

Voir le wiki PHP pour les dernières instructions : » Instructions de compilation étape par étape

Où puis-je trouver le fichier Browser Capabilities ?

Vous pouvez trouver un fichier browscap.ini sur » http://browscap.org/.

Que signifie thread safety lors du téléchargement de PHP?

Thread Safety signifie que le binaire peut fonctionner sur des serveurs à contexte multi-thread comme Apache 2 sous Windows. La sécurité des threads (Thread Safety) fonctionne en créant un espace de stockage local pour chaque thread de telle sorte que les données n'entrent pas en collision entre les threads.

Donc, que choisir? Si vous utilisez PHP comme CGI, alors vous n'avez pas besoin de la sécurité des threads car le binaire est invoqué à chaque requête. Concernant les serveurs multi-threads, comme IIS5 et IIS6, vous devriez utiliser la version threadée de PHP.


Considérations sur les bases de données

Cette section traite de questions relatives aux relations entre PHP et les bases de données. Oui, PHP peut accéder virtuellement à n'importe quelle base de données disponible aujourd'hui.

  1. J'ai entendu dire qu'il était possible d'accéder à Microsoft SQL Server à partir de PHP. Comment est-ce possible ?
  2. Puis-je accéder à des bases Microsoft Access ?
  3. Pourquoi m'encourage-t-on à ne plus utiliser l'extension MySQL (ext/mysql) que j'utilise depuis 10 ans ? Est-elle obsolète ? Que dois-je utiliser à la place ? Comment dois-je migrer ?
  4. PHP 5 n'inclut plus les bibliothèques clientes MySQL, qu'est ce que ça implique pour moi ? Puis-je toujours utiliser MySQL avec PHP ? J'essaie d'utiliser MySQL, mais j'obtiens des erreurs "undefined function".
  5. Après avoir ajouté le support partagé de MySQL, Apache plante dès que libphp4.so est chargé. Comment résoudre ce problème ?
  6. Pourquoi est ce que j'obtiens une erreur comme celle-ci : "Warning: 0 is not a MySQL result index in <file> on line <x>" ou "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>" ?
J'ai entendu dire qu'il était possible d'accéder à Microsoft SQL Server à partir de PHP. Comment est-ce possible ?

Sur une machine Windows, vous pouvez tout simplement utiliser le support ODBC inclus avec le pilote ODBC adéquat.

Sur des machines Unix, vous pouvez utiliser le pilote Sybase-CT pour accéder à Microsoft SQL Server car il est (en grande partie) compatible. Sybase a fourni une version libre des bibliothèques nécessaires pour Linux. Pour les autres systèmes Unix, vous devez contacter Sybase pour obtenir les bibliothèques adéquates. Jetez aussi un oeil à la réponse à la question suivante.

Puis-je accéder à des bases Microsoft Access ?

Oui. Vous avez déjà tous les outils nécessaires si vous utilisez uniquement Windows 9x/Me, ou NT/2000, et que vous utilisez ODBC avec les pilotes ODBC pour Microsoft Access.

Si vous utilisez PHP sur une machine Unix et que vous voulez vous connecter à une base Access sur une machine Windows, vous aurez besoin des pilotes ODBC Unix. » OpenLink Software fournit des pilotes ODBC pour Unix qui peuvent le faire.

Une autre solution consiste à utiliser un serveur SQL qui a des pilotes ODBC Windows et l'utiliser pour stocker les données, que vous pouvez utiliser à partir de Microsoft Access (en utilisant ODBC) et PHP (en utilisant les pilotes inclus), ou bien utiliser un format de fichier intermédiaire que Access et PHP peuvent traiter tous les deux, comme des fichier bruts ou des bases de données dBase. À ce sujet, Tim Hayes de Openlink software écrit :

Utiliser une autre base de données comme intermédiaire n'est pas une bonne idée lorsque vous pouvez utiliser ODBC de PHP directement vers vos bases de données - par exemple avec les pilotes Openlink. Si vous avez besoin d'un format de fichier intermédiaire, Openlink a publié Virtuoso (un moteur de base de données virtuel) pour NT, Linux et d'autres plates-formes Unix. Visitez notre » site pour un téléchargement gratuit.

Une solution qui a fait ses preuves est d'utiliser MySQL et ses pilotes ODBC sous Windows et de synchroniser les bases de données. Steve Lawrence écrit :

  • Installez MySQL sur votre plate-forme conformément aux instructions de MySQL. Vous pouvez l'obtenir sur » http://www.mysql.com/. Aucune configuration particulière n'est nécessaire, mis à part que lorsque vous configurez une base de données et un compte utilisateur, il faille spécifier % dans le champ host, ou bien le nom de la machine Windows avec laquelle vous voulez accéder à MySQL. Notez bien votre nom de serveur, d'utilisateur et votre mot de passe.
  • Téléchargez les pilotes MyODBC pour Windows à partir du site de MySQL. Installez les sur votre machine Windows. Vous pouvez tester votre installation avec les utilitaires fournis avec les pilotes.
  • Créez un utilisateur ou une source de données système dans votre administration ODBC, dans le panneau de configuration. Donnez un nom de source de données dsn, entrez votre nom d'hôte, identifiant, mot de passe, port, etc. pour la base de données configurée à l'étape 1.
  • Installez Access avec une installation complète pour être sûr d'avoir tous les composants nécessaires... Vous aurez besoin d'au moins le support ODBC et le gestionnaire de tables liées.
  • Maintenant, la partie amusante ! Créez un accès à une base de données. Dans la fenêtre de la table, cliquez droit et sélectionner Lier les Tables, ou, dans le menu Fichier, sélectionnez Obtenir des données externes et alors Lier les Tables. Quand la fenêtre de gestion de fichiers apparaît, sélectionnez les fichiers de type : ODBC. Sélectionnez dsn Système et le nom de votre dsn créée à l'étape 3. Sélectionnez la table à lier, cliquez sur OK, et voilà ! Vous pouvez maintenant ouvrir la table et ajouter/supprimer/éditer des données sur votre serveur MySQL ! Vous pouvez ainsi exécuter des requêtes, importer/exporter des tables vers MySQL, construire des formulaires et des rapports, etc.

Trucs et astuces :

  • Vous pouvez construire vos tables dans Access et les exporter dans MySQL, puis les lier de nouveau. Cela rend la création de table très rapide.
  • Lorsque vous créez des tables dans Access, vous devez avoir une clé primaire définie pour avoir accès en écriture à la table. Assurez-vous que vous avez bien créé une clé primaire dans MySQL avant de lier le tout à Access.
  • Si vous changez une table dans MySQL, vous devez la lier de nouveau à Access. Allez dans Outils>suppléments>gestionnaire de tables liées, cherchez votre DSN ODBC, et sélectionnez la table à lier de nouveau. Vous pouvez aussi changer votre source dsn à partir de là, en cliquant sur l'option toujours demander pour un nouvel emplacement avant de presser OK.

Pourquoi m'encourage-t-on à ne plus utiliser l'extension MySQL (ext/mysql) que j'utilise depuis 10 ans ? Est-elle obsolète ? Que dois-je utiliser à la place ? Comment dois-je migrer ?

Il y a 3 extensions MySQL, tel que décrit dans la section Choisir une API MySQL. L'ancienne API ne doit plus être utilisée, elle est devenue obsolète depuis PHP 5.5.0 et a été supprimé de PECL depuis PHP 7.0.0. Vous êtes vivement encouragé à écrire vos nouvelles lignes de code en utilisant l'extension mysqli ou PDO_MySQL.

Les scripts de migration ne sont pas disponibles actuellement, bien que l'API mysqli contient à la fois une API procédurale et orientée objet, dont la version procédurale est très similaire à ext/mysql.

Il n'est pas possible de mixer les extensions. Aussi, par exemple, le fait de passer une connexion mysqli à PDO_MySQL ou ext/mysql ne fonctionnera pas.

PHP 5 n'inclut plus les bibliothèques clientes MySQL, qu'est ce que ça implique pour moi ? Puis-je toujours utiliser MySQL avec PHP ? J'essaie d'utiliser MySQL, mais j'obtiens des erreurs "undefined function".

Oui. PHP supportera toujours MySQL, d'une façon ou d'une autre. Le seul changement avec PHP 5 est que nous ne compilons plus la bibliothèque cliente en elle-même. En voici en vrac quelques justifications :

  • La plupart des systèmes incluent maintenant les bibliothèques clientes.

  • Ainsi, avoir plusieurs versions des bibliothèques peut être gênant. Par exemple, si vous liez mod_auth_mysql à une version et PHP à une autre, et que vous les activez tous les deux dans Apache, vous obtenez un joli plantage. Ainsi, la bibliothèque cliente incluse avec PHP ne fonctionnait pas toujours bien. Le symptôme le plus gênant était que le chemin vers le socket Unix mysql.sock n'était pas le bon.

  • La maintenance en était lourde et le devenait de plus en plus au fur et à mesure des versions.

  • Les versions futures de la bibliothèque seront publiées sous licence GPL et nous ne pouvons pas inclure une telle bibliothèque car sa licence n'est pas compatible avec un projet sous licence de type BSD/Apache. Un tel changement dans PHP 5 semble être la meilleure solution.

Ceci n'affectera pas tant que ça les utilisateurs. Les utilisateurs d'Unix, au moins ceux qui savent ce qu'ils font, ont tendance à compiler PHP avec les bibliothèques déjà installées sur leur système, simplement en spécifiant --with-mysql=/usr lors de la configuration de PHP. Les utilisateurs de Windows peuvent activer l'extension php_mysql.dll dans leur php.ini. Pour plus de détails, lisez la référence MySQL sur les instructions d'installation. Assurez-vous également que libmysql.dll est disponible dans le PATH du système. Pour plus de détails sur cela, lisez la FAQ sur la configuration du PATH sur les systèmes Windows. Comme libmysql.dll (et plusieurs fichiers relatifs à PHP) existe dans le dossier de PHP, il est recommandé d'ajouter le dossier de PHP à votre PATH système.

Après avoir ajouté le support partagé de MySQL, Apache plante dès que libphp4.so est chargé. Comment résoudre ce problème ?

Ceci arrive quand vos bibliothèques MySQL sont liées à pthreads. Vérifiez en utilisant ldd. Sinon, téléchargez les sources de MySQL et compilez-les ou bien refaites un paquet RPM à partir des sources en enlevant l'option qui active le client threadé dans le fichier de spec. L'une ou l'autre de ces solutions corrigera le problème. Recompilez alors PHP avec les nouvelles bibliothèques MySQL.

Pourquoi est ce que j'obtiens une erreur comme celle-ci : "Warning: 0 is not a MySQL result index in <file> on line <x>" ou "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>" ?

Vous essayez d'utiliser un identifiant de résultat qui vaut 0. Le 0 indique que votre requête a échoué pour une quelconque raison. Vous devez alors chercher les erreurs après avoir exécuté une requête et avant même de vouloir traiter le résultat. Une façon propre de le faire est de coder comme ceci :

<?php

$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
    echo mysql_error();
    exit;
}
?>
ou
<?php

$result = mysql_query("SELECT * FROM tables_priv")
    or die("Bad query: " . mysql_error());
?>


Installation

Cette section traite de questions courantes sur la façon d'installer PHP. PHP est disponible sur la plupart des systèmes d'exploitation et pour quasiment n'importe quel serveur web.

Pour installer PHP, suivez les instructions présentes dans Installation et configuration.

  1. Pourquoi ne doit-on pas utiliser Apache 2 dans un environnement threadé multiprocesseur de production ?
  2. Unix/Windows : où doit être placé mon fichier php.ini ?
  3. Unix : j'ai installé PHP, mais à chaque fois que je charge un document, j'obtiens l'erreur 'Document Contains No Data' ! Que se passe-t-il ?
  4. Unix : J'ai installé PHP en utilisant des fichiers sources RPM, mais apache ne traite pas les pages PHP. Que se passe-t-il ?
  5. Unix : J'ai patché Apache avec l'extension FrontPage et subitement, PHP ne fonctionne plus. Est-ce que PHP est incompatible avec l'extension FrontPage pour Apache ?
  6. Unix/Windows : J'ai installé PHP, mais lorsque je tente d'accéder à un fichier contenant un script PHP via mon navigateur, j'obtiens un écran vide.
  7. Unix/Windows : J'ai installé PHP, mais lorsque je tente d'accéder à un fichier contenant un script PHP via mon navigateur, j'obtiens une erreur de type 'server 500 error'.
  8. Quelques systèmes d'exploitations : J'ai installé PHP sans erreur, mais lorsque je tente de démarrer Apache, j'obtiens une erreur du type 'Undefined symbols' : [mybox:user /src/php5] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd Undefined symbols: _compress _uncompress
  9. Windows : J'ai installé PHP, mais lorsque je tente d'accèder à un fichier contenant un script PHP via mon navigateur, j'obtiens l'erreur : cgi error: The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
  10. Windows : J'ai suivi toutes les instructions, mais je n'arrive toujours pas à faire fonctionner PHP et IIS ensemble !
  11. Lorsque vous exécutez PHP comme CGI avec IIS, PWS, OmniHTTPD ou Xitami, j'obtiens l'erreur suivante : Security Alert! PHP CGI cannot be accessed directly..
  12. Comment puis-je savoir si mon php.ini a bien été trouvé et lu ? Cela semble être le cas mais aucun de mes changements n'ont eu d'effet.
  13. Où dois-je ajouter mon répertoire PHP à la variable PATH sous Windows ?
  14. Comment rendre le fichier php.ini disponible à PHP sous Windows ?
  15. Est-il possible d'utiliser la négociation sur le contenu fournie par Apache (option MultiViews) avec PHP ?
  16. Est-ce que PHP est limité au traitement des méthodes GET et POST ?
Pourquoi ne doit-on pas utiliser Apache 2 dans un environnement threadé multiprocesseur de production ?

PHP est un mortier. C'est un mortier utilisé pour construire de belles applications web en utilisant beaucoup de bibliothèques ensemble, apparaissant comme une seule entité à travers un langage intuitif et facile à apprendre. La flexibilité et la puissance de PHP se fondent sur la stabilité et la robustesse de la plate-forme fondamentale. Il a besoin d'un OS qui fonctionne, d'un serveur web qui fonctionne et de bibliothèques externes pour coller le tout. Lorsqu'un seul de ces éléments arrêtent subitement de fonctionner, PHP doit identifier le problème et le réparer au plus vite. En rendant le cadre fondamental plus complexe en ne séparant pas les exécutions des threads, ni les segments mémoires, ni un endroit clos pour traiter chaque requête entrante, de nouvelles faiblesses sont introduites dans le système PHP.

Si vous voulez utiliser un MPM threadé, regardez du côté d'une configuration FastCGI dans lequel PHP s'exécute dans son propre espace mémoire.

Unix/Windows : où doit être placé mon fichier php.ini ?

Par défaut sous Unix, il doit être placé dans /usr/local/lib qui est en fait <install-path>/lib. La plupart des personnes voudront changer ceci lors de la compilation avec l'option --with-config-file-path. Vous pouvez par exemple le régler de cette façon :

--with-config-file-path=/etc
Et alors vous copierez le fichier php.ini-development livré avec les sources vers /etc/php.ini et l'éditer pour l'adapter à vos besoins.

--with-config-file-scan-dir=PATH

Sous Windows, le chemin par défaut de php.ini est le répertoire de Windows. Si vous utilisez le serveur web Apache, php.ini est tout d'abord cherché dans le répertoire d'installation de Apache, c'est-à-dire c:\program files\apache group\apache. De cette façon, vous pouvez avoir un php.ini différent pour chaque version de Apache installée.

Consultez aussi le chapitre sur le fichier de configuration.

Unix : j'ai installé PHP, mais à chaque fois que je charge un document, j'obtiens l'erreur 'Document Contains No Data' ! Que se passe-t-il ?

Cela signifie probablement que PHP rencontre un problème et génère un fichier core. Consultez vos fichiers de logs de votre serveur pour voir si c'est le cas, et tentez de reproduire le problème avec un test simple. Si vous savez utiliser 'gdb', il serait très utile de fournir un backtrace avec votre rapport de bogue, afin d'aider les développeurs à cerner le problème. Si vous utilisez PHP en module Apache, essayez ceci :

  • Stoppez vos processus httpd

  • gdb httpd

  • Stoppez vos processus httpd

  • > run -X -f /path/to/httpd.conf

  • Pointez alors avec votre navigateur vers l'URL posant problème.

  • > run -X -f /path/to/httpd.conf

  • Si vous obtenez un fichier core, gdb doit alors vous en informer.

  • tapez : bt

  • Vous devriez inclure votre backtrace dans votre rapport de bogue. Celui-ci doit être posté sur » http://bugs.php.net/.

Si votre script utilise les expressions rationnelles (preg_match() et consorts), assurez-vous que PHP et Apache ont été compilés avec les même outils d'expression rationnelles. Cela doit être automatiquement le cas avec PHP et Apache 1.3.x.

Unix : J'ai installé PHP en utilisant des fichiers sources RPM, mais apache ne traite pas les pages PHP. Que se passe-t-il ?

En supposant que vous avez installé à la fois Apache et PHP à partir de fichiers RPM, vous devrez commenter ou ajouter au moins quelques unes des lignes suivantes dans votre fichier httpd.conf :

# Extra Modules
AddModule mod_php.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php5_module        modules/libphp5.so
LoadModule perl_module        modules/libperl.so
Et ajouter :
AddType application/x-httpd-php .php
... aux propriétés globales ou aux propriétés du VirtualDomain ou vous voulez que PHP officie.

Unix : J'ai patché Apache avec l'extension FrontPage et subitement, PHP ne fonctionne plus. Est-ce que PHP est incompatible avec l'extension FrontPage pour Apache ?

Non, PHP fonctionne très bien avec l'extension FrontPage. Le souci vient du fait que le patch pour l'installation de FrontPage modifie la structure d'Apache, qui est relié à PHP. Recompiler PHP (en utilisant 'make clean ; make') après avoir patché Apache avec l'extension FrontPage devrait résoudre ce problème.

Unix/Windows : J'ai installé PHP, mais lorsque je tente d'accéder à un fichier contenant un script PHP via mon navigateur, j'obtiens un écran vide.

Affichez le code source du document dans votre navigateur et vous devriez probablement trouver le code source de votre script PHP. Cela signifie que le serveur web n'a pas envoyé le script à PHP pour interprétation. Quelque chose est donc incorrecte dans le fichier de configuration de votre serveur web - re-vérifiez la configuration du serveur web en vous référant aux instructions d'installations de PHP.

Unix/Windows : J'ai installé PHP, mais lorsque je tente d'accéder à un fichier contenant un script PHP via mon navigateur, j'obtiens une erreur de type 'server 500 error'.

Quelque chose se passe mal lorsque le serveur tente d'utiliser PHP. Pour tenter de récupérer un message d'erreur, depuis la ligne de commande, placez-vous dans le répertoire contenant l'exécutable PHP (php.exe sous Windows) et exécutez la commande php -i. Si PHP a un problème quelconque l'empêchant de fonctionner, un message d'erreur devrait s'afficher qui devrait expliquer comment résoudre ce souci. Si un écran de code HTML apparaît (la sortie de la fonction phpinfo()), cela signifie que PHP fonctionne correctement et que le problème doit certainement venir de la configuration de votre serveur web que vous devriez re-vérifier.

Quelques systèmes d'exploitations : J'ai installé PHP sans erreur, mais lorsque je tente de démarrer Apache, j'obtiens une erreur du type 'Undefined symbols' :
[mybox:user /src/php5] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

Cela n'a actuellement rien à voir avec PHP mais avec la bibliothèque cliente MySQL. Suivant les versions, elle a besoin que PHP soit compilé avec l'option --with-zlib , d'autre non. Ce problème est également traité dans la FAQ de MySQL.

Windows : J'ai installé PHP, mais lorsque je tente d'accèder à un fichier contenant un script PHP via mon navigateur, j'obtiens l'erreur :
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:

Ce message d'erreur signifie que PHP a échoué lors de l'affichage. Pour tenter de récupérer un message d'erreur, depuis la ligne de commande, placez-vous dans le répertoire contenant l'exécutable PHP (php.exe sous Windows) et exécutez la commande php -i. Si PHP a un quelconque souci de fonctionnement, alors un message d'erreur le décrivant s'affichera. Si vous obtenez un écran de code HTML (le contenu du résultat de la fonction phpinfo()), alors PHP fonctionne correctement.

Si PHP fonctionne depuis la ligne de commande, tentez d'accéder à votre script encore une fois via votre navigateur. S'il échoue toujours, alors, il se peut que ce soit l'un des soucis suivants :

  • Les permissions de votre script PHP des fichiers php.exe, php5ts.dll, php.ini ou de toute extension nécessaire à PHP que vous tentez de charger, sont telles que l'utilisateur internet anonyme de votre système ISUR_<machinename> ne peut pas y accéder.
  • Le script PHP n'existe pas (ou n'est pas à l'endroit que vous pensez, relativement au répertoire racine de votre serveur web). Notez que pour le serveur web IIS, vous pouvez vérifier cela en cochant la case 'vérifier si le fichier existe' lors de la configuration de l'exécution des scripts dans le gestionnaire de services Internet. Si un fichier de script n'existe pas, le serveur web retournera une erreur 404. IIS a également l'avantage d'effectuer toutes les identifications requises à votre place, basés sur les permissions NTLanMan, sur votre fichier de script.
Windows : J'ai suivi toutes les instructions, mais je n'arrive toujours pas à faire fonctionner PHP et IIS ensemble !

Assurez-vous que chaque utilisateur qui a besoin d'exécuter un script PHP possède les droits requis pour exécuter le fichier php.exe ! IIS utilise un utilisateur anonyme qui est ajouté lors de l'installation de IIS. Cet utilisateur doit avoir les droits suffisant sur le fichier php.exe. De même, tous les utilisateurs enregistrés doivent posséder les droits requis pour exécuter le fichier php.exe. Pour IIS4, vous devez lui dire que PHP est un moteur de script. De plus, vous devriez lire cette FAQ.

Lorsque vous exécutez PHP comme CGI avec IIS, PWS, OmniHTTPD ou Xitami, j'obtiens l'erreur suivante : Security Alert! PHP CGI cannot be accessed directly..

Vous devez définir la directive cgi.force_redirect à 0. Par défaut, elle vaut 1, donc, soyez sûrs que cette directive n'est pas commentée (précédée d'un point virgule). Comme toutes les directives, elles sont définies dans le php.ini.

Comme la valeur par défaut vaut 1, il est impératif que vous soyez sûrs à 100% que le bon fichier php.ini a été lu. Lisez cette FAQ pour plus de détails.

Comment puis-je savoir si mon php.ini a bien été trouvé et lu ? Cela semble être le cas mais aucun de mes changements n'ont eu d'effet.

Pour être sûr que votre php.ini a été lu par PHP, effectuez un appel à la fonction phpinfo(). Vers le haut du document résultant, il devrait figurer une liste appelée Configuration File (php.ini). Cela vous indiquera où PHP a cherché le php.ini et si oui ou non il l'a lu. Si seul un dossier PATH existe et qu'il est accessible en lecture, vous devez copier votre php.ini dans ce dossier. Si le php.ini est présent dans le chemin, cela signifie qu'il a bien été lu.

Si le php.ini a bien été lu et que vous exécutez PHP comme module, alors assurez-vous de redémarrer le serveur web après avoir effectué les modifications à votre php.ini.

Voir aussi la fonction php_ini_loaded_file().

Où dois-je ajouter mon répertoire PHP à la variable PATH sous Windows ?

Sous Windows 7, XP, Vista, 2008, 2012 et plus récent :

  • Allez dans le centre de contrôle et ouvrez l'icône système (Démarrer ? Paramètres ? Panneau de configuration ? Système ou juste Démarrer ? centre de contrôle ? Système pour Windows XP/2003+)

  • Allez à l'onglet "Avancé"

  • Cliquez sur le bouton "Variables d'environnements"

  • Regardez dans le panneau "Variables systèmes"

  • Trouvez l'entrée Path (vous devriez avoir à faire descendre l'ascenseur pour le trouver)

  • Double cliquez sur l'entrée Path

  • Entrez votre répertoire PHP à la fin, sans oublier le point virgule (;) avant (par exemple ;C:\php)

  • Confirmez en cliquant sur OK

Sous Windows 98/Me, vous devez éditer le fichier autoexec.bat :

  • Ouvrez Notepad (Démarrer -> Exécuter et entrez notepad)

  • Ouvrez le fichier C:\autoexec.bat

  • Repérez la ligne contenant PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;..... et ajoutez : ;C:\php à la fin de la ligne.

  • Sauvegardez le fichier et redémarrer l'ordinateur

Note: Assurez-vous de redémarrer l'ordinateur après avoir suivi cette procédure afin que les modifications sur la variable PATH soient bien prises en compte.

Le manuel PHP vous encourage à copier les fichiers dans le dossier système de Windows car ce dossier (C:\Windows, C:\WINNT, etc.) se trouve par défaut dans le PATH système. Copier les fichiers dans le dossier système de Windows est depuis obsolète et peut causer des problèmes.

Comment rendre le fichier php.ini disponible à PHP sous Windows ?

Il y a plusieurs façons de faire cela. Si vous utilisez Apache, lisez leurs instructions spécifiques d'installation (Apache 1, Apache 2) sinon, vous devez définir la variable d'environnement PHPRC :

Sous Windows :

  • Allez dans le centre de contrôle et ouvrez l'icône système (Démarrer ? Paramètres ? Panneau de configuration ? Système ou juste Démarrer ? centre de contrôle ? Système)

  • Allez à l'onglet "Avancé"

  • Cliquez sur le bouton "Variables d'environnements"

  • Regardez dans le panneau "Variables systèmes"

  • Cliquez sur "Nouveau" et entrez "PHPRC" comme nom de variable et le dossier où se trouve votre fichier php.ini comme valeur (par exemple C:\php)

  • Confirmez en cliquant sur OK et redémarrer votre ordinateur

Sous Windows 98/Me, vous devez éditer le fichier autoexec.bat :

  • Ouvrez Notepad (Démarrer ? Exécuter et entrez notepad)

  • Ouvrez le fichier C:\autoexec.bat

  • Ajouter une nouvelle ligne à la fin du fichier : set PHPRC C:\php (remplacez C:\php avec le dossier où se trouve le fichier php.ini). Notez que le chemin ne peut contenir d'espace. Aussi, si vous avez installé PHP dans le dossier C:\Program Files\PHP, vous devez entrer le chemin C:\PROGRA~1\PHP.

  • Sauvegardez le fichier et redémarrer l'ordinateur

Est-il possible d'utiliser la négociation sur le contenu fournie par Apache (option MultiViews) avec PHP ?

Si les liens vers les fichiers PHP incluent l'extension, tout fonctionne parfaitement. Cette entrée de la FAQ traite uniquement du cas où les liens vers les fichiers PHP n'incluent pas l'extension et que vous voulez utiliser la négociation sur le contenu fourni par Apache pour choisir les fichiers PHP depuis une URL qui ne contient pas d'extension. Dans ce cas, remplacez la ligne AddType application/x-httpd-php .php par :

AddHandler php5-script php
AddType text/html php
Cette solution ne fonctionne pas pour Apache 1 car le module PHP ne captura pas le php-script.

Est-ce que PHP est limité au traitement des méthodes GET et POST ?

Non, il est possible de gérer tout type de méthode, comme CONNECT. Les bons en-têtes de réponse peuvent être envoyés avec la fonction header(). Si seules les méthodes POST et GET doivent être gérées, vous pouvez configurer Apache comme ce qui suit :

<LimitExcept GET POST>
Deny from all
</LimitExcept>


Problèmes de compilation

Cette section couvre les erreurs les plus communes pouvant se produire lors de la compilation de PHP.

  1. J'ai téléchargé la dernière version des sources de PHP en utilisant Git, mais il n'y a pas de script configure !
  2. J'ai des problèmes pour configurer PHP avec Apache. On m'indique que httpd.h n'est pas trouvé, mais il est bien là ou je l'ai spécifié !
  3. Pendant la configuration de PHP (./configure), vous rencontrez une erreur semblable à celle-ci : checking lex output file root... ./configure: lex: command not found configure: error: cannot find output from lex; giving up
  4. Quand je lance Apache, j'obtiens le message suivant : fatal: relocation error: file /path/to/libphp4.so: symbol ap_block_alarms: referenced symbol not found
  5. Quand je lance le ./configure, on me dit que les fichiers d'en-tête de GD, gdbm, ... ne sont pas trouvés !
  6. Quand le fichier language-parser.tab.c est compilé, j'obtiens un message yytname undeclared.
  7. Quand je lance make, tout semble bien se passer, mais ça échoue quand il essaie de lier l'application finale, en prétendant qu'il manque des fichiers.
  8. Au moment de lier PHP, il y a des références indéfinies.
  9. Je ne vois pas comment compiler PHP avec Apache 1.3.
  10. J'ai suivi toutes les étapes pour installer le module Apache sous Unix, mais malgré tout, mes scripts PHP s'affichent en clair dans mon navigateur ou celui-ci me demande de sauver le fichier.
  11. Il est dit d'utiliser --activate-module=src/modules/php4/libphp4.a, mais ce fichier n'existe pas, alors je l'ai changé pour --activate-module=src/modules/php4/libmodphp4.a et ça ne fonctionne pas. Qu'est ce qui se passe ?
  12. Quand j'essaie de compiler Apache avec PHP en module statique en utilisant --activate-module=src/modules/php4/libphp4.a on me répond que mon compilateur n'est pas conforme aux normes ANSI.
  13. Quand j'esaie de compiler PHP avec --with-apxs, j'obtiens des messages d'erreur étranges.
  14. Pendant le make, j'ai des erreurs concernant microtime et beaucoup de RUSAGE_.
  15. Quand je compile PHP avec le support MySQL, le configure se passe bien, mais pendant le make, j'obtiens une erreur de ce style : ext/mysql/libmysqlclient/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysqlclient/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', qu'est ce qui ne va pas ?
  16. Je veux mettre à jour mon PHP. Où puis-je trouver la ligne ./configure qui a été utilisée pour mon installation actuelle de PHP?
  17. Quand je compile PHP avec le support de la bibliothèque GD, j'obtiens des erreurs de compilation étrange, voire même des erreurs de segmentation.
  18. Quand je compile PHP, j'obtiens des erreurs aléatoires, voire même tout s'arrête. J'utilise Solaris.
J'ai téléchargé la dernière version des sources de PHP en utilisant Git, mais il n'y a pas de script configure !

Vous devez avoir le logiciel GNU autoconf d'installé pour générer le script configure à partir de configure.in. Lancez juste ./buildconf à la racine du répertoire des sources après avoir récupéré celles-ci à partir du serveur Git. (De plus, à moins que vous ne lanciez configure avec l'option --enable-maintainer-mode, le script configure ne sera pas automatiquement reconstruit si configure.in est mis à jour, vous obligeant à le faire à la main quand vous remarquez que configure.in est mis à jour. Une conséquence de ceci est que l'on trouve des choses telles que @VARIABLE@ dans votre Makefile après que configure ou config.status soit lancé.)

J'ai des problèmes pour configurer PHP avec Apache. On m'indique que httpd.h n'est pas trouvé, mais il est bien là ou je l'ai spécifié !

Vous devez spécifier au script de configuration (configure) l'emplacement du répertoire ou sont les sources de Apache. Cela signifie que vous devez spécifier --with-apache=/chemin/vers/apache et pas --with-apache=/chemin/vers/apache/src .

Pendant la configuration de PHP (./configure), vous rencontrez une erreur semblable à celle-ci :

checking lex output file root... ./configure: lex: command not found
configure: error: cannot find output from lex; giving up

Assurez-vous de bien avoir lu les instructions d'installation et d'avoir flex et bison d'installés pour compiler PHP. Selon votre système, vous devrez installer bison et flex à partir de sources ou bien de paquets, tel qu'un RPM.

Quand je lance Apache, j'obtiens le message suivant :

fatal: relocation error: file /path/to/libphp4.so:
symbol ap_block_alarms: referenced symbol not found

Cette erreur survient généralement quand quelqu'un compile le coeur Apache comme bibliothèque partagée DSO. Essayez de reconfigurer Apache, en vous assurant d'utiliser les options suivantes :

--enable-shared=max --enable-rule=SHARED_CORE

Pour davantage d'informations, lisez le fichier INSTALL à la racine de votre répertoire source Apache ou bien » le manuel des bibliothèques DSO.

Quand je lance le ./configure, on me dit que les fichiers d'en-tête de GD, gdbm, ... ne sont pas trouvés !

Vous pouvez forcer le script configure à chercher les fichiers d'en-tête à des endroits non-standard en passant des options supplémentaires au préprocesseur C et à l'éditeur de liens, par exemple :

    CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
Si vous utilisez une variante de csh, utilisez plutôt :
    env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure

Quand le fichier language-parser.tab.c est compilé, j'obtiens un message yytname undeclared.

Vous devez mettre à jour votre version de bison. Vous pourrez trouver la dernière version sur » http://www.gnu.org/software/bison/bison.html.

Quand je lance make, tout semble bien se passer, mais ça échoue quand il essaie de lier l'application finale, en prétendant qu'il manque des fichiers.

Certaines anciennes versions de make ne déplacent pas correctement les versions compilées des fichiers dans le répertoire functions. Essayez de lancer cp *.o functions et de relancer make pour voir si le problème est résolu. Si tel est le cas, vous devriez vraiment mettre à jour votre version de GNU make.

Au moment de lier PHP, il y a des références indéfinies.

Jetez un oeil à la ligne de lien et assurez-vous que toutes les bibliothèques nécessaires ont été incluses à la fin. Celles qui manquent probablement sont '-ldl' et les bibliothèques relatives aux bases de données dont vous voulez le support.

Des personnes nous ont rapporté qu'elle devaient ajouter '-ldl' immédiatement après libphp4.a lors de la compilation avec Apache.

Je ne vois pas comment compiler PHP avec Apache 1.3.

C'est relativement simple. Suivez attentivement ces étapes :

  • Téléchargez la dernière version de Apache 1.3 sur » http://httpd.apache.org/download.cgi.
  • Désarchivez le tout, par exemple dans /usr/local/src/apache-1.3.
  • Compilez PHP en lançant tout d'abord ./configure --with-apache=/<path>/apache-1.3 (remplacez <path> par le chemin de votre répertoire apache-1.3).
  • Tapez make puis make install pour compiler PHP et copier les fichiers nécessaires dans le répertoire source Apache.
  • Déplacez-vous dans votre répertoire /<path>/apache-1.3/src et éditez le fichier Configuration. Ajoutez y : AddModule modules/php4/libphp4.a.
  • Tapez : ./configure puis make.
  • Vous devriez alors avoir une bibliothèque httpd avec le support de PHP !

Note: Vous pouvez utiliser le nouveau script ./configure de Apache. Suivez les instructions du fichier README.configure fourni avec votre version de Apache. Lisez aussi le fichier INSTALL inclus avec les sources de PHP.

J'ai suivi toutes les étapes pour installer le module Apache sous Unix, mais malgré tout, mes scripts PHP s'affichent en clair dans mon navigateur ou celui-ci me demande de sauver le fichier.

Cela signifie que le module PHP n'est pas chargé, pour une raison ou pour une autre. Avant de chercher de l'aide ailleurs, veuillez vérifier ces quelques points :

  • Assurez-vous que le binaire httpd que vous exécutez est bien le nouveau binaire que vous avez compilé. Pour cela, essayez de lancer : /chemin/vers/le/binaire/httpd -l Si vous ne voyez pas mod_php4.c dans la liste, c'est que vous n'utilisez pas le bon binaire. Trouvez et installez correctement le bon binaire.
  • Assurez-vous que vous avez bien ajouté le bon type Mime à un de vos fichiers Apache .conf. Ce devrait être : AddType application/x-httpd-php .php Assurez-vous aussi que cette ligne Addtype n'est pas dissimulée dans un contexte de <Virtualhost> ou <Directory> qui l'empêcherait de s'appliquer à l'emplacement de vos scripts.
  • Enfin, l'emplacement par défaut des fichiers de configuration Apache a changé entre Apache 1.2 et Apache 1.3. Vous devriez vérifier que les fichiers de configuration auxquels vous ajoutez la ligne Addtype sont bien ceux qui sont pris en compte. Vous pouvez introduire une erreur de syntaxe dans votre httpd.conf (ou bien tout autre changement incorrect) pour vous assurer que c'est bien ce fichier qui est pris en compte.

Il est dit d'utiliser --activate-module=src/modules/php4/libphp4.a, mais ce fichier n'existe pas, alors je l'ai changé pour --activate-module=src/modules/php4/libmodphp4.a et ça ne fonctionne pas. Qu'est ce qui se passe ?

Notez que le fichier libphp4.a n'est pas supposé exister. Le processus apache le créera !

Quand j'essaie de compiler Apache avec PHP en module statique en utilisant --activate-module=src/modules/php4/libphp4.a on me répond que mon compilateur n'est pas conforme aux normes ANSI.

C'est un mauvais message d'erreur de Apache qui n'apparaît plus dans des versions plus récentes.

Quand j'esaie de compiler PHP avec --with-apxs , j'obtiens des messages d'erreur étranges.

Il y a trois choses à vérifier ici. Tout d'abord, quand Apache crée le script Perl apxs, il s'interrompt parfois en étant compilé sans le bon compilateur ou les bonnes options. Trouvez votre script apxs (lancez la commande which apxs), qui se trouve souvent à /usr/local/apache/bin/apxs ou bien /usr/sbin/apxs. Éditez-le et vérifiez que des lignes similaires sont présentes :

my $CFG_CFLAGS_SHLIB  = ' ';          # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = ' ';          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' ';          # substituted via Makefile.tmpl
Si c'est ce que vous voyez, vous avez trouvé votre problème. Elles peuvent contenir juste des espaces ou d'autres valeurs incorrectes, comme 'q()'. Changez ces lignes pour obtenir :
my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';                   # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);              # substituted via Makefile.tmpl
Le deuxième problème potentiel est uniquement relatif aux distributions Red Hat 6.1 et 6.2. The scripts apxs de Red Hat est défectueux. Cherchez cette ligne :
my $CFG_LIBEXECDIR    = 'modules';         # substituted via APACI install
Si vous la voyez telle quelle, changez-la en :
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # substituted via APACI install
Enfin, si vous reconfigurez/réinstallez Apache, lancez un make clean entre votre ./configure et votre make.

Pendant le make, j'ai des erreurs concernant microtime et beaucoup de RUSAGE_.

Pendant le make, si vous rencontrez des problèmes identiques à celui-ci :

microtime.c: In function `php_if_getrusage':
microtime.c:94: storage size of `usg' isn't known
microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
microtime.c:97: (Each undeclared identifier is reported only once
microtime.c:97: for each function it appears in.)
microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
make[3]: *** [microtime.lo] Error 1
make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/master/php-4.0.1/ext'
make: *** [all-recursive] Error 1

Votre système est défectueux. Vous devez corriger vos fichiers /usr/include en instalant un paquet glibc-devel qui correspond à votre version de la glibc. Cela n'a rien à voir avec PHP. Pour vous en convaincre, essayez ceci :

$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null
Si vous obtenez des erreurs, c'est que vos fichiers d'en-tête sont mauvais.

Quand je compile PHP avec le support MySQL, le configure se passe bien, mais pendant le make, j'obtiens une erreur de ce style : ext/mysql/libmysqlclient/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysqlclient/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', qu'est ce qui ne va pas ?

Tout d'abord, il est important de savoir que ce n'est qu'un Warning et pas une erreur fatale. Comme c'est souvent la dernière erreur vu lors du make, ça a l'air d'une erreur fatale, mais ça n'en est pas une. Bien sûr, si vous demandez à votre compilateur de stopper à chaque Warning, ça en deviendra une. Notez aussi que le support de MySQL est activé par défaut.

Note:

Depuis PHP 4.3.2, vous verrez le texte suivant après la compilation (make) :

Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).

Je veux mettre à jour mon PHP. Où puis-je trouver la ligne ./configure qui a été utilisée pour mon installation actuelle de PHP?

Vous pouvez jetez un oeil au fichier config.nice dans votre répertoire source ou sinon simplement exécuter un script

<?php phpinfo(); ?>
Au début du résultat affiché figure la ligne ./configure qui fût utilisée lors de la configuration de votre PHP actuel.

Quand je compile PHP avec le support de la bibliothèque GD, j'obtiens des erreurs de compilation étrange, voire même des erreurs de segmentation.

Assurez-vous que votre bibliothèque GD et PHP sont liés aux mêmes bibliothèques (libpng, par exemple).

Quand je compile PHP, j'obtiens des erreurs aléatoires, voire même tout s'arrête. J'utilise Solaris.

L'utilisation d'utilitaires non-GNU pour compiler PHP peut poser problème. Assurez-vous de bien utiliser des outils GNU pour être certain que votre compilation arrive à terme. Par exemple, sous Solaris, utiliser les version SunOS BSD-compatible ou Solaris de sed ne fonctionnera pas, mais utiliser les versions GNU ou Sun POSIX (xpg4) de sed fonctionnera. Liens : » GNU sed, » GNU flex et » GNU bison.


Utiliser PHP

Cette section regroupe plusieurs erreurs que vous pouvez rencontrer lors de l'écriture de vos scripts PHP.

  1. Je ne me rappelle par de l'ordre des paramètres dans les fonctions PHP, sont-ils aléatoires ?
  2. J'aimerais écrire un script PHP générique qui pourrait traiter les données provenant de tout formulaire. Comment savoir quelles variables de la méthode POST sont disponibles ?
  3. Il faut que je convertisse tous les guillemets simples (') en un antislash suivi d'un guillemet simple (\'). Comment le faire avec une expression régulière ? J'aimerais aussi convertir " en \" et \ en \\.
  4. Tous mes " se transforment en \" et mes ' en \', comment me débarrasser de tous ces antislashs ? Comment et pourquoi sont-ils apparus ?
  5. Comment la directive register_globals affecte-t-elle mes scripts ?
  6.       Quand je fais ce qui suit, l'affichage se fait dans le mauvais ordre :

<?php
function mafonction($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "mafonction($variable) = " . mafonction($variable);
?>

     que se passe-t-il ?
  7. Hey, où sont mes nouvelles lignes ? <pre> <?php echo "Ceci est ma première ligne."; ?> <?php echo "Celle-ci devrait s'afficher en dessous de la première."; ?> </pre>
  8. J'obtiens le message 'Warning: Cannot send session cookie - headers already sent...' ou 'Cannot add header information - headers already sent...'.
  9. J'ai besoin d'accéder à des informations dans l'en-tête de requête directement. Comment puis-je le faire ?
  10. Quand j'essaye d'utiliser l'identification avec IIS j'obtiens 'No Input file specified'.
  11. Windows: Je ne peux pas accéder aux fichiers partagés sur un autre ordinateur utilisant IIS
  12. Comment mélanger XML et PHP ? PHP se plaint de mes balises <?xml !
  13. Où puis-je trouver une liste complète des variables prédéfinies que je peux utiliser dans mes scripts PHP ?
  14. Comment puis-je générer des fichiers PDF sans utiliser les bibliothèques non libres PDFLib ? J'aimerais une façon gratuite et qui ne requiert pas de bibliothèques PDF externes.
  15. J'essaye d'accéder à une des variables standard CGI (comme $DOCUMENT_ROOT ou $HTTP_REFERER) dans une fonction écrite par moi-même, et il semblerait qu'elle ne soit pas définie. Que se passe-t-il ?
  16. Certaines directives PHP peuvent prendre des noms littéraux, et pas seulement des valeurs entières. Quelles sont tous les raccourcis disponibles? Peut-on les utiliser en dehors de php.ini?
  17. Windows: Il y a des echecs de connexions (timeouts) en utilisant localhost, alors que "127.0.0.1" fonctionne?
Je ne me rappelle par de l'ordre des paramètres dans les fonctions PHP, sont-ils aléatoires ?

PHP rassemble des centaines de bibliothèques externes et ça peut paraître parfois déroutant. Cependant, une règle simple à retenir :

Les paramètres concernant les fonctions sur les tableaux sont dans l'ordre "needle, haystack" tandis que les paramètres sur les fonctions gérants les chaînes sont exactement à l'opposé "haystack, needle".

J'aimerais écrire un script PHP générique qui pourrait traiter les données provenant de tout formulaire. Comment savoir quelles variables de la méthode POST sont disponibles ?

PHP fournit plusieurs variables pré-définies, comme la superglobale $_POST. Vous pouvez boucler sur $_POST puisque c'est un tableau associatif de toutes les valeurs envoyés par la méthode POST. Par exemple, bouclons dessus simplement avec foreach, vérifions les valeurs vides et affichons-les.

<?php
$empty = $post = array();
foreach ($_POST as $nomvar => $valeurvar) {
    if (empty($varvalue)) {
        $empty[$nomvar] = $valeurvar;
    } else {
        $post[$nomvar] = $valeurvar;
    }
}

echo '<pre>';
if (empty($empty)) {
    print "Aucune valeur POSTée n'est vide, postées :\n";
    var_dump($post);
} else {
    print "Nous avons " . count($empty) . " valeurs vides\n";
    print "Postées :\n"; var_dump($post);
    print "Vides :\n";  var_dump($empty);
    exit;
}
echo '</pre>';
?>

Il faut que je convertisse tous les guillemets simples (') en un antislash suivi d'un guillemet simple (\'). Comment le faire avec une expression régulière ? J'aimerais aussi convertir " en \" et \ en \\.

Si l'on suppose que c'est pour une base de données, utilisez le méchanisme d'échappement fourni avec la base de données. Par exemple, utilisez la fonction mysql_real_escape_string() avec MySQL et pg_escape_string() avec PostgreSQL. Il y a également les fonctions génériques comme addslashes() et stripslashes(), qui sont plus communes avec l'ancien code PHP.

Note: Note concernant la directive : magic_quotes_gpc

La directive PHP magic_quotes_gpc est par défaut à on. En bref, elle applique la fonction addslashes() sur toutes vos données issues de GET, POST et COOKIE. Vous pouvez utiliser la fonction stripslashes() pour supprimer cet effet.

Tous mes " se transforment en \" et mes ' en \', comment me débarrasser de tous ces antislashs ? Comment et pourquoi sont-ils apparus ?

Les anti-slashes existent très probablement parce que la directive PHP magic_quotes_gpc est activée. C'est une ancienne fonctionnalité de PHP et elle doit être désactivée et plus jamais être utilisée. De même, la fonction PHP stripslashes() peut être utilisée pour supprimer les slashes d'une chaîne de caractères.

Note: Note concernant la directive : magic_quotes_gpc

La directive PHP magic_quotes_gpc est par défaut à on. En bref, elle applique la fonction addslashes() sur toutes vos données issues de GET, POST et COOKIE. Vous pouvez utiliser la fonction stripslashes() pour supprimer cet effet.

Comment la directive register_globals affecte-t-elle mes scripts ?
Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

Tout d'abord, une rapide explication sur ce que réalise cette configuration ini. Supposons que nous utilisons l'URL suivante : http://example.com/foo.php?animal=cat et, dans le fichier foo.php, nous avons le code PHP suivant :

<?php
// L'utilisation de $_GET est ici préférée
echo $_GET['animal'];

// Pour que $animal existe, register_globals doit être actif
// NE FAITE JAMAIS CELA !
echo $animal;

// Ceci s'applique à toutes les variables, y compris à $_SERVER
echo $_SERVER['PHP_SELF'];

// Encore une fois, pour que $PHP_SELF existe, register_globals doit être actif
// NE FAITE JAMAIS CELA !
echo $PHP_SELF;
?>

Le code ci-dessus démontre la façon dont register_globals crée un grand nombre de variables. Durant des années, ce type de codage a été désapprouvé, et donc, depuis des années, cette fonctionnalité a été désactivée par défaut. Bien que la majorité des hébergeurs Web a désactivé cette fonctionnalité, il y a toujours sur le web des articles, des tutoriels et des livres qui demandent à ce que cette option de configuration soit activée.

Voir aussi les ressources suivantes pour plus d'informations :

  • La directive register_globals
  • Le chapitre sur la sécurité et register globals
  • Gestion des variables externes
  • Utilisez les superglobals à la place

Note:

Dans l'exemple ci-dessus, nous utilisez une URL qui contient une QUERY_STRING. Passer des informations comme cela se fait via une requête HTTP GET, c'est la raison pour laquelle la superglobale $_GET est utilisée.

Quand je fais ce qui suit, l'affichage se fait dans le mauvais ordre :
<?php
function mafonction($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "mafonction($variable) = " . mafonction($variable);
?>
que se passe-t-il ?

Pour pouvoir utiliser le résultat de votre fonction dans une expression (comme le concaténer avec une chaîne comme dans cet exemple), vous devez retourner la valeur avec return, et non pas l'afficher avec echo.

Hey, où sont mes nouvelles lignes ?
<pre>
<?php echo "Ceci est ma première ligne."; ?>
<?php echo "Celle-ci devrait s'afficher en dessous de la première."; ?>
</pre>

En PHP, la fin d'un bloc de code est soit "?>" ou "?>\n" (où \n signifie une nouvelle ligne). Donc dans l'exemple plus haut, les phrases affichées le seront sur une seule ligne, car PHP oublie les nouvelles lignes après la fin du bloc. Cela signifie que vous devez insérer une nouvelle ligne de plus après chaque bloc de code PHP pour la lui faire afficher.

Pourquoi PHP fait-il cela ? Car lors du formatage du HTML, cela vous simplifie la vie car vous ne voulez pas de cette nouvelle ligne, mais vous devez créer de très longues lignes ou rendre la source brute de la page illisible pour arriver à cet effet.

J'obtiens le message 'Warning: Cannot send session cookie - headers already sent...' ou 'Cannot add header information - headers already sent...'.

Les fonctions header(), setcookie(), et les fonctions de session doivent ajouter des en-têtes au flux de sortie, mais ceux-ci ne peuvent être envoyés qu'avant le reste du contenu. Il ne doit y avoir aucun affichage avant d'utiliser ces fonctions, comme le HTML par exemple. La fonction headers_sent() vérifiera si votre script a déjà envoyé des en-têtes. Voyez aussi les fonctions de bufferisation de sortie.

J'ai besoin d'accéder à des informations dans l'en-tête de requête directement. Comment puis-je le faire ?

La fonction getallheaders() le fera si vous exécutez PHP en tant que module Apache. Le code suivant vous montrera tous les en-têtes de requête :

<?php
$headers = getallheaders();
foreach ($headers as $nom => $contenu) {
    echo "headers[$nom] = $contenu<br />\n";
}
?>

Voir aussi
apache_lookup_uri(),
apache_response_headers() et
fsockopen().

Quand j'essaye d'utiliser l'identification avec IIS j'obtiens 'No Input file specified'.

Le modèle sécuritaire de IIS est en faute. C'est un problème commun à tous les programmes CGI fonctionnant avec IIS. Une alternative est de créer un fichier HTML (non exécuté par PHP) comme page d'entrée dans le dossier où il faut s'identifier. Utilisez alors une balise META pour rediriger vers la page PHP, ou encore proposez un lien vers celle-ci. PHP reconnaîtra alors l'identification correctement. Avec le module ISAPI, cela n'est pas un problème. Cela ne devrait pas non plus affecter d'autres serveurs NT. Pour plus d'informations, voyez : » http://support.microsoft.com/kb/q160422/ et la section du manuel concernant l'identification HTTP.

Windows: Je ne peux pas accéder aux fichiers partagés sur un autre ordinateur utilisant IIS

Vous devez modifier le service Go to Internet Information Services. Localisez votre fichier PHP et éditez ces propriétés. Placez-vous sur l'onglet File Security, Edit -< Anonymous access and authentication control.

Vous pouvez résoudre ce souci soit en décochant la case Anonymous Access et en laissant la case Integrated Window Authentication cochée, soit en cochant la case Anonymous Access et en éditant l'utilisateur qui ne doit pas avoir les droits d'accès.

Comment mélanger XML et PHP ? PHP se plaint de mes balises <?xml !

Pour inclure <?xml dans votre code PHP, vous devrez désactiver les short tags en configurant la directive PHP short_open_tags à 0. Vous ne pouvez pas modifier cette directive avec ini_set(). Que short_open_tags soit à on ou off, vous pouvez toujours faire ceci : <?php echo '<?xml'; ?>. La valeur par défaut pour cette directive est On.

Où puis-je trouver une liste complète des variables prédéfinies que je peux utiliser dans mes scripts PHP ?

Lisez la page du manuel qui concerne les variables prédéfinies vu qu'elle présente une liste partielle des variables prédéfinies disponibles dans votre script. Une liste complète des variables disponibles (et beaucoup d'informations) peut être vue en appelant la fonction phpinfo(). Lisez la section du manuel traitant des variables non-issues de PHP, elle décrit des scénarios communs pour les variables externes, comme celles issues d'un formulaire HTML, d'un cookie, et de l'URL.

Note: register_globals : note importante

Depuis PHP 4.2.0, la valeur par défaut de la directive de configuration PHP register_globals vaut off. La communauté PHP vous recommande de ne pas dépendre de cette directive, mais de trouver d'autres moyens pour accéder aux données, tels que les superglobals.

Comment puis-je générer des fichiers PDF sans utiliser les bibliothèques non libres PDFLib ? J'aimerais une façon gratuite et qui ne requiert pas de bibliothèques PDF externes.

Il y a quelques alternatives écrites en PHP tel que » FPDF et » TCPDF.

Il y a également l'extension Haru qui utilise la bibliothèque externe libre libHaru.

J'essaye d'accéder à une des variables standard CGI (comme $DOCUMENT_ROOT ou $HTTP_REFERER) dans une fonction écrite par moi-même, et il semblerait qu'elle ne soit pas définie. Que se passe-t-il ?

Il est important de réaliser que la directive PHP register_globals affecte aussi les variables d'environnement et de serveur. Lorsque register_globals = off (valeur par défaut depuis PHP 4.2.0), $DOCUMENT_ROOT n'existera pas. À la place, utilisez $_SERVER['DOCUMENT_ROOT']. Si register_globals = on alors les variables $DOCUMENT_ROOT et $GLOBALS['DOCUMENT_ROOT'] existeront aussi.

Si vous êtes sûrs que register_globals = on et que vous vous demandez pourquoi $DOCUMENT_ROOT n'est pas disponible à l'intérieur de votre fonction, c'est parce que elle est comme toute autre variable et requiert donc global $DOCUMENT_ROOT dans le corps de la fonction. Voyez aussi la page du manuel à propos de la portée des variables. Il est recommandé de coder avec register_globals = off.

Certaines directives PHP peuvent prendre des noms littéraux, et pas seulement des valeurs entières. Quelles sont tous les raccourcis disponibles? Peut-on les utiliser en dehors de php.ini?

Les options disponibles sont K (pour Kilo octets) et M (pour mégaoctet) et G (pour gigaoctet ; disponible depuis PHP 5.1.0), ils sont insensibles à la casse. Tout autre syntaxe est supposée représenter des octets. 1M équivaut à un mégaoctet ou 1048576 octets. 1K équivaut à un kilooctet ou 1024 octets. Vous ne devriez pas utiliser ces abréviations en dehors du fichier php.ini. À la place, utilisez une valeur entière en octets. Lisez la documentation sur la fonction ini_get() pour un exemple sur la façon de convertir ces valeurs.

Note: kilooctet contre kibibyte

La notation PHP décrit un kilooctet comme étant égal à 1024 octets, alors que le standard IEC considère ça comme un kibioctet (kibibyte). En bref: k et K = 1024 octets.

Windows: Il y a des echecs de connexions (timeouts) en utilisant localhost, alors que "127.0.0.1" fonctionne?

Avant PHP 5.3.4, il y avait un bug dans le code réseau de résolution des noms qui faisait échouer la résolution de localhost si IPv6 est activé. Utiliser "127.0.0.1" ne posait pas de problème, ou encore désactiver la résolution IPV6 dans le fichier hosts.


Hashage de mots de passe sûr

Cette section explique les raisons d'utiliser des fonctions de hashage pour les mots de passe, ainsi que la façon de le faire efficacement.

  1. Pourquoi devrais-je hasher les mots de passe envoyés par les utilisateurs de mon application ?
  2. Pourquoi les fonctions traditionnelles de hashage comme md5 et sha1 sont-elles inappropriées aux mots de passe ?
  3. Alors, comment hasher mes mots de passe ?
  4. Qu'est ce que le grain de sel ?
  5. Comment stocker mes salts ?
Pourquoi devrais-je hasher les mots de passe envoyés par les utilisateurs de mon application ?

Le hashage de mot de passe est l'une des pratiques de sécurité les plus basiques qui doit être effectuée. Sans cela, chaque mot de passe stocké peut être volé si le support de stockage (typiquement une base de données) est compromis. Ce mot de passe peut alors être immédiatement utilisé pour accèder frauduleusement non seulement à votre application mais aussi sur d'autres applications si l'utilisateur utilise le même mot de passe ailleurs.

En appliquant un hashage sur le mot de passe avant de le stocker, vous rendez la tâche d'un attaquant très difficile pour connaitre le mot de passe original, et vous avez toujours la possibilité de comparer le mot de passe hashé à une chaîne reçue.

Il est important de noter que le hashage ne fait que protéger les mots de passe dans la base, pas leur éventuelle interception alors qu'ils sont envoyés à l'application par l'utilisateur, via du code malicieux injecté dans l'application, par exemple.

Pourquoi les fonctions traditionnelles de hashage comme md5() et sha1() sont-elles inappropriées aux mots de passe ?

Les algorithmes de hashage comme MD5, SHA1 et SHA256 sont destinés à être rapides et efficaces. Avec les équipements informatiques modernes, il est devenu facile d'attaquer par force brute la sortie de ces algorithmes pour retrouver la chaîne originale.

C'est la raison pour laquelle de nombreux experts en sécurité considèrent ces algorithmes comme faibles et les déconseillent fortement pour hasher un mot de passe utilisateur.

Alors, comment hasher mes mots de passe ?

Lorsqu'on hashe des mots de passe, les deux considérations les plus importantes sont le temps de traitement, et le grain de sel. Plus la puissance de traitement requise est élevée, plus il faudra du temps pour casser le mot de passe en analysant sa sortie.

PHP 5.5 fournit une API native de hashage de mot de passe qui gère à la fois le hashage et la vérification de mots de passe, le tout, de manière totalement sécurisée. Il existe aussi une » bibliothèque pure PHP de compatibilité pour PHP 5.3.7 et suivants.

Une autre option est la fonction crypt(), qui supporte différents algorithmes de hashage en PHP 5.3 et suivants. Lors de l'utilisation de cette fonction, vous avez la garantie que l'algorithme sélectionné est disponible, sachant que PHP contient une implémentation native de chaque algorithme supporté, dans le cas où un ou plusieurs algorithmes n'est pas supporté par votre système.

L'algorithme suggéré à utiliser pour le hashage de mots de passe est Blowfish, qui est aussi l'algorithme par défaut de l'API de hashage de mots de passe, sachant qu'il est significativement plus gourmand en calcul que MD5 ou SHA1, mais plus évolutif.

Notez que si vous utilisez la fonction crypt() pour vérifier un mot de passe, vous devez faire attention aux attaques de synchronisation, en utilisant une constante de temps pour la comparaison. Ni les opérateurs == et === ni la fonction strcmp() n'effectuent de comparaisons en utilisant des constantes de temps. Sachant que la fonction password_verify() le fera pour vous, vous êtes vivement encouragé à utiliser l'API native de hashage de mots de passe lorsque vous le pouvez.

Qu'est ce que le grain de sel ?

Un grain de sel, ou "salt", en cryptographie, est appliqué durant le processus de hashage pour éliminer la possibilité d'attaques par dictionnaires (hashages enregistrés dans une grande liste et comparés).

En d'autres termes, un grain de sel est une petite donnée additionnelle qui renforce significativement la puissance du hashage pour le rendre beaucoup plus difficile à cracker. Il existe de nombreux services en ligne qui proposent de volumineux dictionnaires de mots de passe avec leur hash. L'utilisation d'un grain de sel rend ces dictionnaires inutiles.

password_hash() va créer un salt aléatoire si vous n'en fournissez pas, et c'est généralement la façon la plus sécurisé et la plus simple.

Comment stocker mes salts ?

Lors de l'utilisation de la fonction password_hash() ou de la fonction crypt(), la valeur retournée inclue le salt comme parti du hash généré. Cette valeur devrait être stockée telle quelle dans votre base de données, sachant qu'elle inclue les informations sur la fonction de hashage utilisée et peut donc être fournie directement à la fonction password_verify() ou la fonction crypt() lors de la vérification des mots de passe.

Le diagramme suivant montre le format d'une valeur retournée de la fonction crypt() ou password_hash(). Comme vous pouvez le voir, tout est présent, comme toutes les informations sur l'algorithme et le salt nécessaires pour une future vérification de mots de passe.

Les composants de la valeur retournée par la fonction password_hash et crypt : dans l'ordre, l'algorithme choisi, les options de l'algorithme, le salt utilisé, et le mot de passe hashé.


PHP et HTML

PHP et HTML sont très interactifs : PHP peut générer du HTML et HTML peut passer des informations à PHP. Avant de lire cette faq (foire aux questions), il est important que vous appreniez comment récupérer des variables externes à PHP. La page du manuel correspondante contient beaucoup d'exemples.

  1. Quel encodage/décodage ai-je besoin lors du passage d'une valeur via un formulaire/une URL ?
  2. J'essaye d'utiliser <input type="image"> mais les variables $foo.x et $foo.y ne sont pas disponibles. $_GET['foo.x'] n'existe pas non plus. Où sont-elles ?
  3. Comment créer un tableau dans une balise <form> HTML ?
  4. Comment puis-je récupérer le résultat d'un champ HTML SELECT multiple ?
  5. Comment puis-je passer une variable de Javascript vers PHP ?
Quel encodage/décodage ai-je besoin lors du passage d'une valeur via un formulaire/une URL ?

Il y a plusieurs étapes pour lesquelles le codage est important. En supposant que vous avez une chaîne de caractères $data, qui contient la chaîne que vous voulez passer de manière non-encodée, voici les étapes appropriées :

  • Interprétation HTML. Afin d'indiquer une chaîne aléatoire, vous devez l'inclure entre doubles guillemets et utiliser la fonction htmlspecialchars() pour encoder la chaîne.

  • URL : une URL est constituée de plusieurs parties. Si vous voulez que vos données soient interprétées comme un seul élément, vous devez les encoder avec la fonction urlencode().

Exemple #1 Un élément de formulaire HTML caché

<?php
    echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>

Note: Il n'est pas correct d'utiliser la fonction urlencode() pour vos données $data, car il en est de la responsabilité du navigateur de les encoder. Tous les navigateurs populaires le font correctement. Notez que cela s'effectue sans considération de la méthode utilisée (c'est-à-dire GET ou POST). Vous devez uniquement noter ce cas pour les requêtes GET, car les requêtes POST sont généralement cachées.

Exemple #2 Données éditables par l'utilisateur

<?php
echo "<textarea name=\"mydata\">\n";
echo htmlspecialchars($data)."\n";
echo '</textarea>';
?>

Note: Les données sont montrées dans le navigateur comme prévues, car celui-ci interprétera les symboles HTML échappés. Au moment de la validation, via la méthode GET ou POST, les données devraient être url-encodées par le navigateur avant le transfert et directement url-décodées par PHP. Donc, finalement, vous n'avez pas à effectuer d'url-encodage/url-decodage vous-même, tout est effectué automatiquement.

Exemple #3 Dans une URL

<?php
    echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
        urlencode($data)) . '">'."\n";
?>

Note: En fait, vous simulez une requête GET HTML, il est nécessaire d'utiliser manuellement la fonction urlencode() sur vos données.

Note: Vous devez utiliser htmlspecialchars() sur l'URL complète, car l'URL se comporte comme la valeur d'un attribut HTML. Dans ce cas, le navigateur fera un htmlspecialchars() sur la valeur et passera le résultat à l'URL. PHP devrait comprendre l'URL correctement, car vous avez url-encodé les données. Vous devez noter que & dans l'URL est remplacé par &amp;. Bien que la plupart des navigateurs devraient corriger cela si vous l'oubliez, ce n'est pas toujours le cas. Donc, même si votre URL n'est pas dynamique, vous devez utiliser la fonction htmlspecialchars() sur l'URL.

J'essaye d'utiliser <input type="image"> mais les variables $foo.x et $foo.y ne sont pas disponibles. $_GET['foo.x'] n'existe pas non plus. Où sont-elles ?

Lorsque vous validez un formulaire, il est possible d'utiliser une image au lieu du bouton standard de type "submit" avec une balise du type :

<input type="image" src="image.gif" name="foo" />
Lorsque l'utilisateur clique sur l'image, le formulaire est transmis au serveur avec deux variables supplémentaires : foo.x et foo.y qui représentent les coordonnées du point cliqué.

Comme foo.x et foo.y sont des noms de variables invalides en PHP, elles sont automatiquement converties en foo_x et foo_y. Les points sont remplacés par des soulignés. Donc, vous devez accéder à ces variables comme n'importe quelle autre variable tel que décrit dans la section "Variables provenant d'autres sources". Par exemple, en utilisant $_GET['foo_x'].

Note:

Les espaces dans les noms de variables sont également converties en un souligné bas.

Comment créer un tableau dans une balise <form> HTML ?

Pour envoyer le résultat du <form> comme un tableau de variables à votre script PHP, vous devez nommer, via l'attribut name, les balises <input>, <select> ou <textarea> comme cela :

<input name="MonTableau[]" />
<input name="MonTableau[]" />
<input name="MonTableau[]" />
<input name="MonTableau[]" />
Noter les crochets après le nom de la variable, c'est ce qui fait que celle-ci sera un tableau. Vous pouvez grouper les éléments dans différents tableaux de variables en assignant le même nom à différents éléments :
<input name="MonTableau[]" />
<input name="MonTableau[]" />
<input name="MonAutreTableau[]" />
<input name="MonAutreTableau[]" />
Cela produira deux tableaux de variables, MonTableau et MonAutreTableau, qui seront envoyés au script PHP. Il est également possible d'assigner des clés spécifiques à votre tableau :
<input name="UnAutreTableau[]" />
<input name="UnAutreTableau[]" />
<input name="UnAutreTableau[email]" />
<input name="UnAutreTableau[telephone]" />
Le tableau UnAutreTableau contiendra les clés 0, 1, email et telephone.

Note:

Le fait de spécifier une clé à un tableau est optionnel en HTML. Si vous ne le faites pas, les clés du tableau suiveront l'ordre d'apparition des éléments dans le formulaire. Dans notre premier exemple, le tableau contient les clés 0, 1, 2 et 3.

Voir aussi les fonctions sur les tableaux de variables et la section sur les variables provenant d'autres sources.

Comment puis-je récupérer le résultat d'un champ HTML SELECT multiple ?

Le champ SELECT multiple en HTML permet à l'utilisateur de sélectionner plusieurs éléments d'une liste. Ces éléments seront transmis à la page pointée par l'attribut action de la balise form. Le problème est que ces éléments sont tous passés avec le même nom de variable.

<select name="var" multiple="yes">
Chaque option sélectionnée arrivera au mécanisme de traitement sous la forme :
var=option1
var=option2
var=option3
Chaque option effacera donc le contenu de la précédente variable $var. La solution consiste à utiliser un tableau de variables dans cet élément de formulaire HTML, par exemple :
<select name="var[]" multiple="yes">
Cela fera que PHP traitera $var comme un tableau de variables et que chaque assignement de valeur à var[] ajoutera un index au tableau. La première option choisie sera mise dans $var[0], la suivante sera mise dans $var[1], etc. La fonction count() peut être utilisée pour déterminer combien d'options ont été sélectionnées, et la fonction sort() peut être utilisée pour trier le tableau, si nécessaire.

Notez que si vous utilisez Javascript, [] dans le nom de l'élément peut vous poser problème lorsque vous tenterez d'accéder à celui-ci par son nom. Utilisez plutôt l'indice numérique de l'élément dans ce cas, ou bien utilisez les simples guillemets pour entourer cet élément, comme :

variable = document.forms[0].elements['var[]'];

Comment puis-je passer une variable de Javascript vers PHP ?

Javascript est (habituellement) une technologie côté client et PHP est (habituellement) une technologie côté serveur et sachant que HTTP est un protocole statique, les deux langages ne peuvent pas directement partager des variables.

Cependant, il est possible de faire passer des variables entre les deux. Une des solutions pour cela est de générer un code Javascript à l'aide de PHP et de faire rafraîchir le navigateur tout seul, passant ainsi des variables spécifiques au script PHP. L'exemple suivant montre précisément comme réaliser cela -- il permet à PHP de récupérer les dimensions de l'écran du client, ce qui est normalement possible qu'en technologie coté client.

Exemple #4 Génération de Javascript avec PHP

<?php
if (isset($_GET['largeur']) AND isset($_GET['hauteur'])) {
  // Affichage des variables
  echo 'La largeur de l\'écran est : ' . $_GET['largeur'] ."<br />\n";
  echo 'La hauteur de l\'écran est : ' . $_GET['hauteur'] . "<br />\n";
} else {
  // passage des variables de dimensions
  // (préservation de la requête d'origine
  //   -- les variables par méthode POST doivent être traitées différemment)

  echo "<script type=\"text/javascript\">\n";
  echo "  location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
            . "&largeur=\" + screen.width + \"&hauteur=\" + screen.height;\n";
  echo "</script>\n";
  exit();
}
?>


PHP et COM

PHP peut être utilisé pour accéder à des objets COM et DCOM sur les plates-formes Win32.

  1. J'ai compilé une DLL pour calculer quelque chose. Y a-t-il un moyen d'utiliser cette DLL sous PHP ?
  2. Que signifie 'Unsupported variant type: xxxx (0xxxxx)' ?
  3. Est-il possible de manipuler des objets visuels en PHP ?
  4. Puis-je stocker un objet COM dans une session ?
  5. Comment puis-je intercepter des erreurs COM ?
  6. Puis-je générer des fichiers DLL à partir de PHP comme je le fais avec Perl ?
  7. Que signifie 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' ?
  8. Comment puis-je utiliser des objets COM à partir d'un serveur distant ?
  9. J'obtiens 'DCOM is disabled in C:\path...\scriptname.php on line 6', que dois-je faire ?
  10. Est-il possible de charger/manipuler des objets ActiveX dans une page en PHP ?
  11. Est-il possible d'obtenir une instance fonctionnelle d'un composant ?
  12. Y a-t-il moyen de manipuler un événement envoyé par un objet COM ?
  13. J'ai des problèmes quand j'invoque une méthode d'un objet COM qui expose plus d'une interface. Que puis-je faire ?
  14. Bon, PHP fonctionne avec COM, mais qu'en est-il de COM+ ?
  15. Si PHP peut manipuler des objets COM, peut-on imaginer d'utiliser des ressources de composants, en conjonction avec PHP ?
J'ai compilé une DLL pour calculer quelque chose. Y a-t-il un moyen d'utiliser cette DLL sous PHP ?

Si c'est une DLL simple, il n'y a aucun moyen pour le moment de l'utiliser avec PHP. Si la DLL contient un serveur COM, vous pourrez l'utiliser si elle implémente l'interface IDispatch.

Que signifie 'Unsupported variant type: xxxx (0xxxxx)' ?

Il y a des dizaines de types de VARIANT et de combinaisons entre elles. La plupart d'entre elles sont déjà supportées, mais quelques une ne sont toujours pas implémentées. Les tableaux ne sont pas complètement supportés. Seuls le tableaux unidimensionnels indexés peuvent être transmis entre PHP et COM. Si vous trouvez d'autres types qui ne sont pas supportés, reportez-les nous comme un bogue (si ce n'est pas déjà fait) et fournissez le plus d'informations possibles.

Est-il possible de manipuler des objets visuels en PHP ?

Généralement, c'est possible, mais comme PHP est utilisé le plus souvent en tant que langage de script web et dans un environnement de serveur web, les objets visuels n'apparaîtront jamais sur le bureau du serveur. Si vous voulez utiliser PHP pour scripter des applications, par exemple avec PHP-GTK, il n'y a aucune limitation à accéder et manipuler des objets visuels via COM.

Puis-je stocker un objet COM dans une session ?

Non, vous ne pouvez pas. Les instances COM sont traitées comme des ressources, ce qui signifie qu'elles ne sont disponibles que dans un seul contexte de script.

Comment puis-je intercepter des erreurs COM ?

L'extension COM envoie des exceptions com_exception, que vous pouvez intercepter en inspectant le membre code pour déterminer que faire.

Puis-je générer des fichiers DLL à partir de PHP comme je le fais avec Perl ?

Non, il n'y a malheureusement pas d'outil disponible pour le faire en PHP.

Que signifie 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' ?

Cette erreur peut avoir plusieurs causes :

  • le CLSID est incorrect
  • la DLL demandée est introuvable
  • le composant demandé n'implémente pas l'interface IDispatch

Comment puis-je utiliser des objets COM à partir d'un serveur distant ?

Exactement de la même manière qu'avec des objets locaux. Vous devez juste passer l'adresse IP de la machine distante en deuxième paramètre du constructeur COM.

Assurez-vous que vous avez spécifié com.allow_dcom =TRUE dans votre php.ini.

J'obtiens 'DCOM is disabled in C:\path...\scriptname.php on line 6', que dois-je faire ?

Éditez votre php.ini et mettez com.allow_dcom =TRUE.

Est-il possible de charger/manipuler des objets ActiveX dans une page en PHP ?

Cela n'a rien à voir avec PHP. Les objets ActiveX sont chargés côté client s'ils sont demandés par le document HTML. Il n'y a aucune relation avec le script PHP et il n'y a pas d'interaction directe possible avec le serveur.

Est-il possible d'obtenir une instance fonctionnelle d'un composant ?

C'est possible avec l'aide de monikers. Si vous voulez des références multiples au même mot d'instance, vous pouvez créer une instance de la façon suivante :

<?php
$word = new COM("C:\docs\word.doc");
?>

Cela créera une nouvelle instance s'il n'y en a aucune disponible ou retournera un descripteur vers l'instance courante, si elle est disponible.

Y a-t-il moyen de manipuler un événement envoyé par un objet COM ?

Vous pouvez définir un moniteur d'événement (sink) et le lier en utilisant com_event_sink(). Vous pouvez utiliser com_print_typeinfo() pour que PHP génère un squelette pour la classe du moniteur d'événement.

J'ai des problèmes quand j'invoque une méthode d'un objet COM qui expose plus d'une interface. Que puis-je faire ?

La réponse est aussi simple que non satisfaisante. Je ne sais pas exactement, mais je pense que vous ne pouvez rien faire. Si quelqu'un a des informations spécifiques sur ce sujet, faites-le » moi savoir :)

Bon, PHP fonctionne avec COM, mais qu'en est-il de COM+ ?

COM+ étend COM avec un canevas pour gérer des composants via MTS et MSMQ mais il n'y a rien de particulier que PHP doit supporter pour utiliser de tels composants.

Si PHP peut manipuler des objets COM, peut-on imaginer d'utiliser des ressources de composants, en conjonction avec PHP ?

PHP ne supporte pas encore les transactions. Ainsi, si une erreur se produit, aucun rollback n'est initié. Si vous utilisez des composants qui supportent les transactions, vous devrez implémenter le gestionnaire de transactions par vous-même.


Questions diverses

Il y'a quelques questions inclassables. Vous les trouverez ici.

  1. Comment puis-je manipuler le manuel compressé en bzip2 sous Windows ?
  2. Que signifie le caractère "&" devant les arguments dans les déclarations des fonctions comme la fonction asort ?
  3. Comment puis-je gérer la directive register_globals ?
Comment puis-je manipuler le manuel compressé en bzip2 sous Windows ?

Si vous n'avez pas d'outil d'archivage prenant en charge les fichiers au format bz2, » téléchargez l'outil en ligne de commande à partir de Redhat (merci de lire les informations plus bas).

Si vous préférez ne pas utiliser d'outil en ligne de commande, vous pouvez essayer des outils gratuits comme » Stuffit Expander, » UltimateZip, » 7-Zip, ou » Quick Zip. Si vous avez des outils comme » WinRAR ou » Power Archiver, vous pouvez facilement décompresser les fichiers bz2 avec. Si vous utilisez Total Commander (autrefois Windows Commander), un plugin bz2 est disponible gratuitement sur le site de » Total Commander.

L'outil en ligne commande bzip2 de Redhat :

Les utilisateurs du service pack 2 de Win2K doivent prendre la version 1.0.2, tous les autres utilisateurs de Windows doivent prendre la version 1.00. Après avoir téléchargé, renommez l'exécutable en bzip2.exe. Pour votre convenance, mettez-le dans un dossier dans votre path, c'est à dire C:\Windows où C représente votre disque où Windows est installé.

Note : Dans ce qui suit, lang représente votre langue et x le format désiré, par exemple : pdf. Pour décompresser php_manual_lang.x.bz2 suivez les instructions suivantes :

  • ouvrez un invite de commande
  • déplacez-vous dans le dossier où se trouvent les fichiers php_manual_lang.x.bz2
  • lancez la commande bzip2 -d php_manual_lang.x.bz2, pour extraire php_manual_lang.x dans ce même dossier

Dans le cas où vous avez téléchargé le fichier php_manual_lang.tar.bz2 avec beaucoup de fichiers HTML à l'intérieur, la procédure est la même. La seule différence est que vous obtiendrez un fichier php_manual_lang.tar. Le format tar est connu pour être pris en compte par la plupart des archiveurs de Windows, comme » WinZip.

Que signifie le caractère "&" devant les arguments dans les déclarations des fonctions comme la fonction asort() ?

Cela signifie que cet argument est passé par référence et que la fonction le modifiera, comme expliqué dans la documentation. Vous pouvez passer uniquement des variables de cette façon et vous n'avez pas besoin de les passer avec le caractère "&" dans l'appel de la fonction (car obsolète).

Comment puis-je gérer la directive register_globals ?

Pour plus d'informations concernant l'implication sur la sécurité de la directive register_globals, lisez le chapitre sur la sécurité concernant l'utilisation de register_globals.

Il est préférable d'utiliser les superglobals, plutôt que de remettre à on la directive register_globals.

Si vous êtes sur un serveur mutualisé avec la directive register_globals de positionnée à off et que vous devez utiliser des applications qui requièrent que cette option soit à on ou si vous êtes hébergés sur un serveur qui a cette directive d'activée mais que vous voudriez éliminer ce risque sécuritaire, vous devriez émuler l'argument opposé avec PHP. C'est toujours une bonne idée que de demander tout d'abord s'il est possible de modifier cette option dans la configuration de PHP mais si cela n'est pas possible, vous pouvez utiliser ces astuces de compatibilité.

Exemple #1 Émulation des Register Globals

Ceci émulera la directive register_globals à On. Si vous modifiez la directive variables_order, modifiez la variable $superglobals pour qu'elle corresponde à votre nouvelle directive..

<?php
// Émulation de register_globals à on
if (!ini_get('register_globals')) {
    $superglobals = array($_SERVER, $_ENV,
        $_FILES, $_COOKIE, $_POST, $_GET);
    if (isset($_SESSION)) {
        array_unshift($superglobals, $_SESSION);
    }
    foreach ($superglobals as $superglobal) {
        extract($superglobal, EXTR_SKIP);
    }
}
?>

Ceci émulera register_globals à Off. Gardez à l'esprit que ce code doit être appelé au tout début de votre script ou après la fonction session_start() si vous l'utilisez pour commencer votre session.

<?php
// Émulation de register_globals à off
function unregister_GLOBALS()
{
    if (!ini_get('register_globals')) {
        return;
    }

    // Vous pouvez vouloir modifier cela pour avoir une erreur plus jolie
    if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
    die('Tentative d\'effacement des GLOBALS détectée');
    }

    // Les variables à ne jamais effacer
    $noUnset = array('GLOBALS',  '_GET',
    '_POST',    '_COOKIE',
    '_REQUEST', '_SERVER',
    '_ENV',     '_FILES');

    $input = array_merge($_GET,    $_POST,
    $_COOKIE, $_SERVER,
    $_ENV,    $_FILES,
    isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());

    foreach ($input as $k => $v) {
        if (!in_array($k, $noUnset) && isset($GLOBALS[$k])) {
            unset($GLOBALS[$k]);
        }
    }
}

unregister_GLOBALS();

?>


Annexes

  • Histoire de PHP
    • Histoire de PHP
    • Quelques projets liés à PHP
    • Livres traitant de PHP
    • Publications à propos de PHP
  • Migrating from PHP 7.0.x to PHP 7.1.x
    • New features
    • New functions
    • New global constants
    • Backward incompatible changes
    • Deprecated features in PHP 7.1.x
    • Changed functions
    • Other changes
    • Windows Support
  • Migration de PHP 5.6.x vers PHP 7.0.x
    • Backward incompatible changes
    • New features
    • Deprecated features in PHP 7.0.x
    • Changed functions
    • New functions
    • New Classes and Interfaces
    • Nouvelles constantes globales
    • Changes in SAPI Modules
    • Removed Extensions and SAPIs
    • Other Changes
  • Migration de PHP 5.5.x à PHP 5.6.x
    • Modifications entrainant une incompatibilité ascendante
    • Nouvelles fonctionnalités
    • Fonctionnalités devenues obsolètes en PHP 5.6.x
    • Fonctions modifiées
    • Nouvelles fonctions
    • OpenSSL changes in PHP 5.6.x
    • Autres modifications dans les extensions
    • Nouvelles constantes globales
  • Migration de PHP 5.4.x à PHP 5.5.x
    • Qu'est-ce qui a changé en PHP 5.5.x
    • Modifications entrainant une incompatibilité ascendante
    • Nouvelles fonctionnalités
    • Fonctionnalités devenues obsolètes en PHP 5.5.x
    • Fonctions modifiées
    • Nouvelles fonctions
    • Nouvelles classes et interfaces
    • Nouvelles méthodes
    • Autres modifications dans les extensions
    • Nouvelles constantes globales
    • Modification dans la gestion des fichiers INI
    • Modifications internes à PHP
  • Migration de PHP 5.3.x à PHP 5.4.x
    • Ce qui a changé dans PHP 5.4.x
    • Évolutions incompatibles avec les versions précédentes
    • Nouveautés
    • Evolutions des modules SAPI
    • Fonctionnalités obsolètes en PHP 5.4.x
    • Nouveaux paramètres
    • Nouvelles fonctions
    • Nouvelles Classes et Interfaces
    • Nouvelles méthodes
    • Extensions retirées
    • Autres changements aux extensions
    • Nouvelles constantes globales
    • Changement dans les paramètres INI
    • Autres changements
  • Migration de PHP 5.2.x vers PHP 5.3.x
    • Ce qui change en PHP 5.3.x
    • Évolutions incompatibles avec les versions précédentes
    • Nouvelles fonctionnalités
    • Évolutions du support de Windows
    • Évolutions des modules SAPI
    • Fonctionnalités obsolètes en PHP 5.3.x
    • Restauration de fonctionnalités dans PHP 5.3.x
    • Nouveaux paramètres
    • Nouvelles fonctions
    • Nouveaux gestionnaires de flux
    • Nouveaux filtres de flux
    • Nouvelles constantes de classe
    • Nouvelles méthodes
    • Nouvelles extensions
    • Extensions retirées
    • Autres changements aux extensions
    • Nouvelles classes
    • Nouvelles constantes globales
    • Modifications à la gestion du fichier INI
    • Autres changements
  • Migration de PHP 5.1.x à PHP 5.2.x
    • Ce qui a changé en PHP 5.2.x
    • Changements incompatibles avec les versions précédentes
    • Nouveaux messages d'erreurs
    • Modification dans le support PHP de datetime
    • Nouveaux paramètres
    • Nouvelles fonctions
    • Nouvelles méthodes
    • Extensions supprimées
    • Nouvelles extensions
    • Nouvelles classes
    • Nouvelles constantes globales
    • Nouvelles constantes de classe
    • Nouvelles directives INI
    • Rapports d'erreur
    • Améliorations
  • Migration de PHP 5.0.x à PHP 5.1.x
    • Nouvelles fonctionnalités PHP 5.1.x
    • Changement dans la gestion des références
    • Lecture de []
    • Valeurs entières dans les paramètres de fonction
    • Changements dans les classes et objets
    • Extensions
    • Support des dates et heures
    • Modifications dans le support des bases de données
    • Vérifier E_STRICT
  • Migration de PHP 4 à PHP 5.0.x
    • Nouveautés de PHP 5.0.x
    • Incompatibilités avec les version antérieures
    • CLI et CGI
    • Migration des fichiers de configuration
    • Nouvelles fonctions
    • Nouvelles Directives
    • Bases de données
    • Nouveau Modèle Objet
    • Rapport d'erreurs
  • Débogueur PHP
    • À propos du débogueur en PHP
  • Options de configuration
    • Liste des options de configuration internes
  • Directives du php.ini
    • Liste des directives du php.ini
    • Liste des sections du fichier php.ini
    • Description des directives internes du php.ini
  • Catégorie/Liste des extensions
    • Par ordre alphabétique
    • Adhésion
    • État
  • Liste des alias
  • Mots réservés en PHP
    • Liste de mots-clés
    • Classes prédéfinies
    • Constantes pré-définies
    • Autre liste de mots réservés
  • Types des ressources PHP
  • Liste des filtres standards
    • Filtres de chaînes de caractères
    • Filtres de conversion
    • Filtres de compression
    • Filtres de chiffrement
  • Liste des modes de transport de sockets disponibles
    • Domaines Internet : TCP, UDP, SSL et TLS
    • Domaine Unix : UNIX et UDG
  • Comparaison de types en PHP
  • Liste des tokens de l'analyseur
  • Guide de nommage de l'espace utilisateur
    • Espace de noms global
    • Règles
    • Astuces
  • À propos du manuel
    • Formats
    • À propos des notes utilisateurs
    • Comment lire la définition d'une fonction (prototype)
    • Versions de PHP documentées dans ce manuel
    • Où trouver plus d'informations sur PHP ?
    • Comment aider à l'amélioration de la documentation ?
    • Comment sont générées les documentations
    • Traductions
  • Creative Commons Attribution 3.0
  • Liste de l'index
    • Liste des fonctions et des méthodes
    • Liste d'examples
  • Historique des modifications


Histoire de PHP

Sommaire

  • Histoire de PHP
  • Quelques projets liés à PHP
  • Livres traitant de PHP
  • Publications à propos de PHP

PHP a suivi un long chemin depuis sa naissance au milieu de l'année 1990. Depuis ses débuts modestes, jusqu'à devenir l'un des plus éminents langage de programmation pour le web, l'évolution de PHP est un véritable conte de fées technologique. Figurez-vous qu'une telle croissance n'a pas été tâche facile. Ceux d'entre vous qui sont intéressés par un bref récapitulatif de ce qu'a été l'histoire de PHP jusqu'à aujourd'hui, poursuivez la lecture de ce document. Si vous souhaitez récupérer des pièces uniques de l'histoire d'Internet, vous pouvez trouver les anciennes versions de PHP dans notre » musée.


Histoire de PHP

PHP Tools, FI, Construction Kit, et PHP/FI

PHP, tel qu'il est connu aujourd'hui, est le successeur d'un produit appelé PHP/FI. Créée en 1994 par Rasmus Lerdorf, la toute première incarnation de PHP était un simple jeu de binaires CGI écrits en langage C. Originairement utilisée pour suivre les visiteurs de son curriculum vitae en ligne, il nomme cette suite de scripts "Personal Home Page Tools" (ndt : Outils pour page personnelle), plus fréquemment appelée "PHP Tools". Au fil du temps, de plus en plus de fonctionnalités sont demandées, et Rasmus ré-écrit les outils PHP, produisant ainsi une implémentation plus large et plus riche. Ce nouveau modèle était capable d’interagir avec une base de données, mais aussi, fournissait un framework permettant aux utilisateurs de développer une application dynamique simple pour le web, comme des livres d'or. En Juin 1995, Rasmus » fournit le code source de PHP Tools au grand public, permettant ainsi aux développeurs de l'utiliser comme bon leur semblait. Ceci a également permis - et encouragé - aux utilisateurs de fournir des patches pour corriger les bogues, mais aussi pour éprouver la stabilité du produit.

En septembre de cette année là, Rasmus continua d'élargir PHP et - pour un temps très court - supprima le nom PHP. Faisant dorénavant référence aux outils sous le nom de FI (abréviation pour "Forms Interpreter" ou interpréteur de formulaire), la nouvelle implémentation incluait plusieurs fonctionnalités de base que nous connaissons encore aujourd'hui. Elle avait ces variables qui ressemblent au Perl, un système d'interprétation automatique des variables de formulaires, et une syntaxe qui s'intègre facilement dans HTML. La syntaxe elle-même était similaire à celle du Perl, bien que beaucoup plus limitée, plus simple, et un peu incohérente. En fait, pour embarquer du code dans un fichier HTML, les développeurs devaient utiliser des commentaires HTML. Malgré le fait que cette méthode ne soit pas accueillie avec un grand enthousiasme, FI continua de rassembler de plus en plus de monde, et fut accepté comme outil CGI --- mais toujours pas comme un langage. Cependant, ceci commença à changer les mois suivants ; en octobre 1995, Rasmus livra une nouvelle version totalement ré-écrite. Reprenant le nom de PHP, elle était maintenant nommée (brièvement) "Personal Home Page Construction Kit", et était la première version à mettre en avant le fait que PHP était considéré comme une interface de scripts avancée. Le langage fut délibérément architecturé pour ressembler à la structure du C, rendant ainsi son adoption facile pour les développeurs familiers avec les langages comme C, Perl et consorts. Dans un premier temps limité aux systèmes Unix et POSIX, son potentiel pour une implémentation sous Windows NT commença à être exploré.

Le code fut de nouveau repris de zéro, et en Avril 1996, combinant les noms des précédentes versions, Rasmus introduisit PHP/FI. Cette implémentation de seconde génération commença à faire réellement évoluer PHP d'une simple suite d'outils vers un vrai langage de programmation. Il incluait un support interne pour les bases de données DBM, mSQL et Postgres95, pour les cookies, un support des fonctions définies par l'utilisateur, et bien plus. Ce mois de Juin, PHP/FI prenait un statut de version 2.0. Un point intéressant, cependant, était qu'il n'existait qu'une seule et unique version de PHP 2.0. Quand elle est finalement sortie du statut béta en Novembre 1997, le moteur d'analyse interne était déjà en cours de ré-écriture complète.

Bien qu'il fournît un cycle de développement très court, il continua de gagner en popularité dans ce monde où le développement web était encore très récent. En 1997 et 1998, PHP/FI comptait plusieurs milliers d'utilisateurs à travers le monde. Le site de surveillance Netcraft, en Mai 1998, indiquait qu'environ 60.000 domaines exportaient l'en-tête "PHP", indiquant ainsi que le serveur hôte l'avait d'installé. Ce nombre correspondait à environ 1% des domaines d'Internet de l'époque. Malgré ce chiffre impressionnant, la maturation de PHP/FI était condamnée à ses limitations ; bien qu'il y ait plusieurs contributeurs mineurs, il était encore principalement développé par un seul individu.

Exemple #1 Exemple de code PHP/FI

<!--include /text/header.html-->

<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
  Hé, vous utilisez Netscape !<p>
<!--endif-->

<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
  Désolé, cette ligne n'existe pas<p>
<!--endif exit-->
  Bienvenue <!--$user--> !<p>
  Vous avez <!--$index:0--> crédits sur votre compte.<p>

<!--include /text/footer.html-->

PHP 3

PHP 3.0 fut la première version du langage tel que nous le connaissons actuellement. Trouvant que PHP/FI 2.0 était toujours insuffisant et manquait de fonctionnalités nécessaires pour mettre en oeuvre une application d'eCommerce, qu'ils développaient dans le cadre d'un projet universitaire, Andi Gutmans et Zeev Suraski de la ville de Tel Aviv (Israël) commencèrent encore une autre ré-écriture complète de l'analyseur interne en 1997. Se rapprochant de Rasmus via le web, ils discutèrent de divers aspects de l'implémentation courante et de leur re-développement de PHP. Dans une logique d'amélioration du moteur, et pour profiter des utilisateurs existant de PHP/FI, Andi, Rasmus et Zeev décidèrent de collaborer dans le développement d'un nouvel et indépendant langage de programmation. Ce tout nouveau langage a été publié sous un nouveau nom, qui supprima l'idée d'utilisation personnelle limitée inclue dans le nom de PHP/FI 2.0. Il fut ainsi tout simplement renommé 'PHP', dont la signification devint un acronyme récursif - PHP: Hypertext Preprocessor.

Une des améliorations notables de PHP 3.0 fut ses capacités d'extension. En plus de fournir une infrastructure mature pour de multiples bases de données, protocoles, et APIs, la facilité d'extension du langage en lui-même attira des dizaines de développeurs, qui produisirent de nombreux modules. Ce fut sans aucun doute une des clés de l'énorme succès de PHP 3.0. Une autre de ces clés fut l'introduction d'un support de programmation orientée objet, ainsi qu'une syntaxe de langage bien plus puissante et plus consistante.

En Juin 1998, avec plusieurs nouveaux développeurs de par le monde rejoignant le projet, PHP 3.0 fut annoncé par la nouvelle équipe de développement de PHP comme le successeur officiel de PHP/FI 2.0. Le développement actif de PHP/FI 2.0, qui avait en réalité cessé depuis le mois de Novembre de l'année précédente, était maintenant officiellement terminé. Après environ 9 mois de tests publics, lorsque l'annonce de la version officielle de PHP 3.0 fut publiée, il était déjà installé sur plus de 70.000 domaines à travers le monde, et n'était plus limité aux systèmes POSIX. Une petite partie des domaines rapportant une installation de PHP étaient installés sur des serveurs fonctionnant sous Windows 95, 98, NT, et Macintosh. À son apogée, PHP 3.0 était installé sur approximativement 10% des serveurs web d'Internet.

PHP 4

Durant l'hiver 1998, juste après la publication de PHP 3.0, Andi Gutmans et Zeev Suraski commencèrent une réécriture du moteur interne de PHP. Les objectifs étaient d'améliorer les performances de PHP sur les applications complexes, et d'améliorer la modularité du code. Ces applications étaient rendues possibles par les nouvelles fonctionnalités de PHP 3.0 et le support d'un grand nombre de bases de données et d'APIs, mais PHP 3.0 n'était pas conçu pour gérer efficacement des applications si complexes.

Le nouveau moteur, appelé 'Zend Engine' (combinaison des prénoms de Zeev et Andi), atteignit cet objectif avec succès, et la première version fut publiée vers la mi-1999. PHP 4.0, s'appuyant sur ce moteur, et amélioré par un grand nombre de nouvelles fonctionnalités, fut publié officiellement en mai 2000, presque 2 ans après son prédécesseur. En plus de performances nettement plus élevées, PHP 4.0 apportait le support de nombreux serveurs web, des sessions HTTP, la bufferisation de sortie, une sécurité accrue de la gestion des informations visiteurs, et plusieurs nouvelles structures de langage.

PHP 5

PHP 5 est sorti en Juillet 2004, après un long développement et plusieurs pré-versions. Il est régi par son moteur, le Zend Engine 2.0 avec un nouveau modèle objet et des dizaines d'autres nouvelles fonctionnalités.

L'équipe de développement de PHP regroupe des dizaines de développeurs, en plus des dizaines d'autres travaillant sur des projets en rapport avec PHP, comme PEAR, PECL, et la documentation, ainsi qu'un réseau d'infrastructure sous-jacent d'une centaine de serveurs web individuels sur 6 des 7 continents du monde. En s'appuyant sur une estimation basée sur les statistiques de l'année précédente, il est convenable de supposer que PHP est maintenant installé sur des dizaines, voire même des centaines, de millions de domaines autour du monde.


Quelques projets liés à PHP

PEAR

» PEAR, qui signifie PHP Extension and Application Repository (initialement, PHP Extension and Add-on Repository), est la première version des classes de base en PHP, et pourrait devenir à terme un moyen privilégié de distribuer des extensions PHP entre développeurs.

PEAR est né durant les débats tenus lors des PHP Developers' Meeting (PDM) (Rencontres de développeurs PHP), qui ont eu lieu en Janvier 2000 à Tel Aviv. Il a été créé à l'initiative de Stig S. Bakken, et est dédié à sa première fille, Malin Bakken.

Depuis l'an 2000, PEAR a grossi jusqu'à devenir un projet significatif avec un groupe de développeurs compétents, qui travaillent à mettre en place une bibliothèque complète, réutilisable et commune, au bénéfice de la communauté PHP entière. Aujourd'hui, PEAR inclut une vaste sélection de classes de base pour accéder à des bases de données, pour stocker du contenu en cache, réaliser des calculs mathématiques, des transactions de commerce électronique, etc.

Plus d'informations sur PEAR sont disponibles dans » le manuel.

Equipe d'assurance Qualité

» L'équipe d'assurance Qualité de PHP a été mise en place durant l'été 2000, en réponse aux critiques reçues par PHP 3.0, qui n'était pas suffisamment testé pour des environnements de production. L'équipe est maintenant composée d'un groupe de développeurs de haut niveau, qui ont une bonne connaissance des sources PHP. Ces développeurs passent une bonne partie de leur temps à localiser et corriger les bogues trouvés dans PHP. De plus, il y a un bon nombre d'autres membres du groupe PHP qui testent et fournissent un compte-rendu fidèle de l'utilisation de PHP sur différentes plate-formes.

PHP-GTK

» PHP-GTK est la solution PHP pour écrire des applications avec interface graphique, coté client. Andrei Zmievski se souvient de la création de PHP-GTK :

La programmation d'interface GUI m'a toujours intéressée, et je pensais que Gtk+ était une excellente bibliothèque, hormis le fait que programmer avec en C est plutôt laborieux. Après avoir assisté aux implémentations de PyGtk et GTK-Perl, j'ai décidé de voir si PHP pouvait disposer de sa propre interface avec Gtk+, même minimale. J'ai commencé au mois d'août 2000, alors que j'avais un peu plus de temps libre, et j'ai réalisé les premières expérimentations. Mon guide principal fut l'implémentation de PyGtk, qui était plutôt complète et avait une interface orientée objet. James Henstridge, l'auteur de PyGtk, fut d'une aide précieuse au démarrage de ce projet.

Réécrire toutes les interfaces de Gtk+ à la main était hors de question et j'ai pensé à réaliser un générateur de code, exactement comme PyGtk l'avait fait. Le générateur de code est un programme PHP qui lit un ensemble de fichiers .defs, contenant les classes, constantes et méthodes Gtk+, puis génére le code C qui sert d'interface à PHP. Ce qui ne peut pas être généré automatiquement peut être écrit à la main, dans le fichier .overrides.

Travailler sur le générateur de code et sur l'infrastructure prit un peu de temps, car je n'avais que peu de temps à consacrer à PHP-GTK durant l'automne 2000. Après que j'ai montré PHP-GTK à Frank Kromann, il s'y intéressa et commença à m'aider sur le générateur et l'implémentation Win32. Lorsque nous écrivîmes le premier programme 'Hello World', ce fut extrêmement exitant. Il fallut encore quelques mois pour que le projet soit présentable, et la version initiale fut publiée en mars 2001. La nouvelle fut rapidement relayée sur SlashDot.

Anticipant que PHP-GTK pourrait devenir un projet à part entière, j'ai mis en place des listes de diffusion et un serveur CVS indépendants, de même que le site gtk.php.net avec l'aide de Colin Viebrock. La documentation avait aussi besoin d'être rédigée, et James Moore vint me porter une aide précieuse.

Depuis sa publication PHP-GTK a gagné en popularité. Nous avons notre propre équipe de documentation, le manuel s'améliore de plus en plus, des gens ont commencé à écrire des extensions pour PHP-GTK, ainsi des applications de plus en plus importantes l'utilisant.


Livres traitant de PHP

Au fur et à mesure que PHP a évolué, il est petit à petit devenu une plate-forme de développement mondialement populaire. Un des signes qui ne trompent pas est que le nombre de livres dédiés à PHP a augmenté en parallèle, au fil des années.

À notre connaissance, le premier livre dédié à PHP fut 'PHP - tvorba interaktivních internetových aplikací' (PHP - Créer des Applications Interactives pour Internet), un livre tchèque publié en avril 1999, écrit par Jirka Kosek. Le mois suivant parut un livre allemand écrit par Egon Schmid, Christian Cartus et Richard Blume. Le premier livre en anglais sur PHP fut publié juste après : 'Core PHP Programming' par Leon Atkinson. Ces livres se rapportaient à PHP 3.0.

Même si ces livres étaient les premiers de leur genre, ils furent rapidement suivis par un grand nombre d'autres livres, de différents auteurs et éditeurs. On dénombre plus de 400 livres en anglais, plus de 100 en allemand, et plus de 50 en français ou espagnol ! De plus, on peut maintenant trouver des livres à propos de PHP dans de nombreuses autres langues, comme le coréen, le japonais ou l'hébreu.

De toute évidence, ce grand nombre de livres, écrits par différents auteurs et publiés par de nombreux éditeurs, ainsi que leur disponibilité en différentes langues, témoigne clairement du succès planétaire de PHP.


Publications à propos de PHP

À notre connaissance, le premier article consacré à PHP dans un magazine papier fut publié dans la version tchèque de Computerworld, au printemps 1998, et se rapportait à PHP 3.0. Comme pour les livres, ce fut le premier d'une longue série d'articles publiés dans un nombre important de magazines.

Des articles sur PHP ont été publiés dans Dr. Dobbs, Linux Enterprise, Linux Magazine et bien d'autres. Il existe même des articles sur la migration d'applications ASP vers PHP sous Windows dans la bibliothèque MSDN de Microsoft.


Migrating from PHP 7.0.x to PHP 7.1.x

Sommaire

  • New features
  • New functions
  • New global constants
  • Backward incompatible changes
  • Deprecated features in PHP 7.1.x
  • Changed functions
  • Other changes
  • Windows Support

This new minor version brings with it a number of new features and a few incompatibilities that should be tested for before switching PHP versions in production environments.

Voir aussi les guides de migration entre les différentes versions de PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x, 5.6.x and 7.0.x.


New features

Nullable types

Type declarations for parameters and return values can now be marked as nullable by prefixing the type name with a question mark. This signifies that as well as the specified type, null can be passed as an argument, or returned as a value, respectively.

<?php

function testReturn(): ?string
{
    return 'elePHPant';
}

var_dump(testReturn());

function testReturn(): ?string
{
    return null;
}

var_dump(testReturn());

function test(?string $name)
{
    var_dump($name);
}

test('elePHPant');
test(null);
test();

L'exemple ci-dessus va afficher :

string(10) "elePHPant"
NULL
string(10) "elePHPant"
NULL
Uncaught Error: Too few arguments to function test(), 0 passed in...

Void functions

A void return type has been introduced. Functions declared with void as their return type must either omit their return statement altogether, or use an empty return statement. null is not a valid return value for a void function.

<?php
function swap(&$left, &$right) : void
{
    if ($left === $right) {
        return;
    }

    $tmp = $left;
    $left = $right;
    $right = $tmp;
}

$a = 1;
$b = 2;
var_dump(swap($a, $b), $a, $b);

L'exemple ci-dessus va afficher :

null
int(2)
int(1)

Attempting to use a void function's return value simply evaluates to null, with no warnings emitted. The reason for this is because warnings would implicate the use of generic higher order functions.

Symmetric array destructuring

The shorthand array syntax ([]) may now be used to destructure arrays for assignments (including within foreach), as an alternative to the existing list() syntax, which is still supported.

<?php
$data = [
    [1, 'Tom'],
    [2, 'Fred'],
];

// list() style
list($id1, $name1) = $data[0];

// [] style
[$id1, $name1] = $data[0];

// list() style
foreach ($data as list($id, $name)) {
    // logic here with $id and $name
}

// [] style
foreach ($data as [$id, $name]) {
    // logic here with $id and $name
}

Class constant visibility

Support for specifying the visibility of class constants has been added.

<?php
class ConstDemo
{
    const PUBLIC_CONST_A = 1;
    public const PUBLIC_CONST_B = 2;
    protected const PROTECTED_CONST = 3;
    private const PRIVATE_CONST = 4;
}

iterable pseudo-type

A new pseudo-type (similar to callable) called iterable has been introduced. It may be used in parameter and return types, where it accepts either arrays or objects that implement the Traversable interface. With respect to subtyping, parameter types of child classes may broaden a parent's declaration of array or Traversable to iterable. With return types, child classes may narrow a parent's return type of iterable to array or an object that implements Traversable.

<?php
function iterator(iterable $iter)
{
    foreach ($iter as $val) {
        //
    }
}

Multi catch exception handling

Multiple exceptions per catch block may now be specified using the pipe character (|). This is useful for when different exceptions from different class hierarchies are handled the same.

<?php
try {
    // some code
} catch (FirstException | SecondException $e) {
    // handle first and second exceptions
}

Support for keys in list()

You can now specify keys in list(), or its new shorthand [] syntax. This enables destructuring of arrays with non-integer or non-sequential keys.

<?php
$data = [
    ["id" => 1, "name" => 'Tom'],
    ["id" => 2, "name" => 'Fred'],
];

// list() style
list("id" => $id1, "name" => $name1) = $data[0];

// [] style
["id" => $id1, "name" => $name1] = $data[0];

// list() style
foreach ($data as list("id" => $id, "name" => $name)) {
    // logic here with $id and $name
}

// [] style
foreach ($data as ["id" => $id, "name" => $name]) {
    // logic here with $id and $name
}

Support for negative string offsets

Support for negative string offsets has been added to the string manipulation functions accepting offsets, as well as to string indexing with [] or {}. In such cases, a negative offset is interpreted as being an offset from the end of the string.

<?php
var_dump("abcdef"[-2]);
var_dump(strpos("aabbcc", "b", -3));

L'exemple ci-dessus va afficher :

string (1) "e"
int(3)

Negative string and array offsets are now also supported in the simple variable parsing syntax inside of strings.

<?php
$string = 'bar';
echo "The last character of '$string' is '$string[-1]'.\n";
?>

L'exemple ci-dessus va afficher :

The last character of 'bar' is 'r'.

Support for AEAD in ext/openssl

Support for AEAD (modes GCM and CCM) have been added by extending the openssl_encrypt() and openssl_decrypt() functions with additional parameters.

Convert callables to Closures with Closure::fromCallable()

A new static method has been introduced to the Closure class to allow for callables to be easily converted into Closure objects.

<?php
class Test
{
    public function exposeFunction()
    {
        return Closure::fromCallable([$this, 'privateFunction']);
    }

    private function privateFunction($param)
    {
        var_dump($param);
    }
}

$privFunc = (new Test)->exposeFunction();
$privFunc('some value');

L'exemple ci-dessus va afficher :

string(10) "some value"

Asynchronous signal handling

A new function called pcntl_async_signals() has been introduced to enable asynchronous signal handling without using ticks (which introduce a lot of overhead).

<?php
pcntl_async_signals(true); // turn on async signals

pcntl_signal(SIGHUP,  function($sig) {
    echo "SIGHUP\n";
});

posix_kill(posix_getpid(), SIGHUP);

L'exemple ci-dessus va afficher :

SIGHUP

HTTP/2 server push support in ext/curl

Support for server push has been added to the CURL extension (requires version 7.46 and above). This can be leveraged through the curl_multi_setopt() function with the new CURLMOPT_PUSHFUNCTION constant. The constants CURL_PUSH_OK and CURL_PUSH_DENY have also been added so that the execution of the server push callback can either be approved or denied.


New functions

PHP Core

  • sapi_windows_cp_get()
  • sapi_windows_cp_set()
  • sapi_windows_cp_conv()
  • sapi_windows_cp_is_utf8()

Closure

  • Closure::fromCallable()

CURL

  • curl_multi_errno()
  • curl_share_errno()
  • curl_share_strerror()

Session

  • session_create_id()
  • session_gc()

SPL

  • is_iterable()

PCNTL

  • pcntl_async_signals()
  • pcntl_signal_get_handler()


New global constants

Core Predefined Constants

  • PHP_FD_SETSIZE

CURL

  • CURLMOPT_PUSHFUNCTION
  • CURL_PUSH_OK
  • CURL_PUSH_DENY

Data Filtering

  • FILTER_FLAG_EMAIL_UNICODE

Image Processing and GD

  • IMAGETYPE_WEBP

JSON

  • JSON_UNESCAPED_LINE_TERMINATORS

LDAP

  • LDAP_OPT_X_SASL_NOCANON
  • LDAP_OPT_X_SASL_USERNAME
  • LDAP_OPT_X_TLS_CACERTDIR
  • LDAP_OPT_X_TLS_CACERTFILE
  • LDAP_OPT_X_TLS_CERTFILE
  • LDAP_OPT_X_TLS_CIPHER_SUITE
  • LDAP_OPT_X_TLS_KEYFILE
  • LDAP_OPT_X_TLS_RANDOM_FILE
  • LDAP_OPT_X_TLS_CRLCHECK
  • LDAP_OPT_X_TLS_CRL_NONE
  • LDAP_OPT_X_TLS_CRL_PEER
  • LDAP_OPT_X_TLS_CRL_ALL
  • LDAP_OPT_X_TLS_DHFILE
  • LDAP_OPT_X_TLS_CRLFILE
  • LDAP_OPT_X_TLS_PROTOCOL_MIN
  • LDAP_OPT_X_TLS_PROTOCOL_SSL2
  • LDAP_OPT_X_TLS_PROTOCOL_SSL3
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_0
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_1
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_2
  • LDAP_OPT_X_TLS_PACKAGE
  • LDAP_OPT_X_KEEPALIVE_IDLE
  • LDAP_OPT_X_KEEPALIVE_PROBES
  • LDAP_OPT_X_KEEPALIVE_INTERVAL

PostgreSQL

  • PGSQL_NOTICE_LAST
  • PGSQL_NOTICE_ALL
  • PGSQL_NOTICE_CLEAR

SPL

  • MT_RAND_PHP


Backward incompatible changes

Throw on passing too few function arguments

Previously, a warning would be emitted for invoking user-defined functions with too few arguments. Now, this warning has been promoted to an Error exception. This change only applies to user-defined functions, not internal functions. For example:

<?php
function test($param){}
test();

L'exemple ci-dessus va afficher quelque chose de similaire à :

Fatal error: Uncaught ArgumentCountError: Too few arguments to function test(), 0 passed in %s on line %d and exactly 1 expected in %s:%d

Forbid dynamic calls to scope introspection functions

Dynamic calls for certain functions have been forbidden (in the form of $func() or array_map('extract', ...), etc). These functions either inspect or modify another scope, and present with them ambiguous and unreliable behavior. The functions are as follows:

  • assert() - with a string as the first argument
  • compact()
  • extract()
  • func_get_args()
  • func_get_arg()
  • func_num_args()
  • get_defined_vars()
  • mb_parse_str() - with one arg
  • parse_str() - with one arg
<?php
(function () {
    $func = 'func_num_args';
    $func();
})();

L'exemple ci-dessus va afficher :

Warning: Cannot call func_num_args() dynamically in %s on line %d

Invalid class, interface, and trait names

The following names cannot be used to name classes, interfaces, or traits:

  • void
  • iterable

Numerical string conversions now respect scientific notation

Integer operations and conversions on numerical strings now respect scientific notation. This also includes the (int) cast operation, and the following functions: intval() (where the base is 10), settype(), decbin(), decoct(), and dechex().

Fixes to mt_rand() algorithm

mt_rand() will now default to using the fixed version of the Mersenne Twister algorithm. If deterministic output from mt_srand() was relied upon, then the MT_RAND_PHP with the ability to preserve the old (incorrect) implementation via an additional optional second parameter to mt_srand().

rand() aliased to mt_rand() and srand() aliased to mt_srand()

rand() and srand() have now been made aliases to mt_rand() and mt_srand(), respectively. This means that the output for the following functions have changes: rand(), shuffle(), str_shuffle(), and array_rand().

Disallow the ASCII delete control character in identifiers

The ASCII delete control character (0x7F) can no longer be used in identifiers that are not quoted.

error_log changes with syslog value

If the error_log ini setting is set to syslog, the PHP error levels are mapped to the syslog error levels. This brings finer differentiation in the error logs in contrary to the previous approach where all the errors are logged with the notice level only.

Do not call destructors on incomplete objects

Destructors are now never called for objects that throw an exception during the execution of their constructor. In previous versions this behavior depended on whether the object was referenced outside the construcor (e.g. by an exception backtrace).

call_user_func() handling of reference arguments

call_user_func() will now always generate a warning upon calls to functions that expect references as arguments. Previously this depended on whether the call was fully qualified.

Additionally, call_user_func() and call_user_func_array() will no longer abort the function call in this case. The "expected reference" warning will be emitted, but the call will proceed as usual.

The empty index operator is not supported for strings anymore

Applying the empty index operator to a string (e.g. $str[] = $x) throws a fatal error instead of converting silently to array.

Removed ini directives

The following ini directives have been removed:

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

Array ordering when elements are automatically created during by reference assignments has changed

The order of the elements in an array has changed when those elements have been automatically created by referencing them in a by reference assignment. For example:

<?php
$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
?>

Résultat de l'exemple ci-dessus en PHP 7.0 :

array(2) {
  ["a"]=>
  &int(1)
  ["b"]=>
  &int(1)
}

Résultat de l'exemple ci-dessus en PHP 7.1 :

array(2) {
  ["b"]=>
  &int(1)
  ["a"]=>
  &int(1)
}

Sort order of equal elements

The internal sorting algorithm has been improved, what may result in different sort order of elements, which compare as equal, than before.

Note:

Don't rely on the order of elements which compare as equal; it might change anytime.

Error message for E_RECOVERABLE errors

The error message for E_RECOVERABLE errors has been changed from "Catchable fatal error" to "Recoverable fatal error".

DateTime constructor incorporates microseconds

DateTime and DateTimeImmutable now properly incorporate microseconds when constructed from the current time, either explicitly or with a relative string (e.g. "first day of next month"). This means that naive comparisons of two newly created instances will now more likely return FALSE instead of TRUE:

<?php
new DateTime() == new DateTime();
?>

Fatal errors to Error exceptions conversions

In the Date extension, invalid serialization data for DateTime or DatePeriod classes, or timezone initialization failure from serialized data, will now throw an Error exception from the __wakeup() or __set_state() methods, instead of resulting in a fatal error.

In the DBA extension, data modification functions (such as dba_insert()) will now throw an Error exception instead of triggering a catchable fatal error if the key does not contain exactly two elements.

In the DOM extension, invalid schema or RelaxNG validation contexts will now throw an Error exception instead of resulting in a fatal error. Similarly, attempting to register a node class that does not extend the appropriate base class, or attempting to read an invalid property or write to a readonly property, will also now throw an Error exception.

In the IMAP extension, email addresses longer than 16385 bytes will throw an Error exception instead of resulting in a fatal error.

In the Intl extension, failing to call the parent constructor in a class extending Collator before invoking the parent methods will now throw an Error instead of resulting in a recoverable fatal error. Also, cloning a Transliterator object will now throw an Error exception on failure to clone the internal transliterator instead of resulting in a fatal error.

In the LDAP extension, providing an unknown modification type to ldap_batch_modify() will now throw an Error exception instead of resulting in a fatal error.

In the mbstring extension, the mb_ereg() and mb_eregi() functions will now throw a ParseError exception if an invalid PHP expression is provided and the 'e' option is used.

In the Mcrypt extension, the mcrypt_encrypt() and mcrypt_decrypt() will now throw an Error exception instead of resulting in a fatal error if mcrypt cannot be initialized.

In the mysqli extension, attempting to read an invalid property or write to a readonly property will now throw an Error exception instead of resulting in a fatal error.

In the Reflection extension, failing to retrieve a reflection object or retrieve an object property will now throw an Error exception instead of resulting in a fatal error.

In the Session extension, custom session handlers that do not return strings for session IDs will now throw an Error exception instead of resulting in a fatal error when a function is called that must generate a session ID.

In the SimpleXML extension, creating an unnamed or duplicate attribute will now throw an Error exception instead of resulting in a fatal error.

In the SPL extension, attempting to clone an SplDirectory object will now throw an Error exception instead of resulting in a fatal error. Similarly, calling ArrayIterator::append() when iterating over an object will also now throw an Error exception.

In the standard extension, the assert() function, when provided with a string argument as its first parameter, will now throw a ParseError exception instead of resulting in a catchable fatal error if the PHP code is invalid. Similarly, calling forward_static_call() outside of a class scope will now throw an Error exception.

In the Tidy extension, creating a tidyNode manually will now throw an Error exception instead of resulting in a fatal error.

In the WDDX extension, a circular reference when serializing will now throw an Error exception instead of resulting in a fatal error.

In the XML-RPC extension, a circular reference when serializing will now throw an instance of Error exception instead of resulting in a fatal error.

In the Zip extension, the ZipArchive::addGlob() method will now throw an Error exception instead of resulting in a fatal error if glob support is not available.

JSON encoding and decoding

The serialize_precision ini setting now controls the serialization precision when encoding doubles.

Decoding an empty key now results in an empty property name, rather than _empty_ as a property name.

<?php
var_dump(json_decode(json_encode(['' => 1])));

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)#1 (1) {
  [""]=>
  int(1)
}

When supplying the JSON_UNESCAPED_UNICODE flag to json_encode(), the sequences U+2028 and U+2029 are now escaped.

Changes to mb_ereg() and mb_eregi() parameter semantics

The third paramter to the mb_ereg() and mb_eregi() functions (regs) will now be set to an empty array if nothing was matched. Formely, the parameter would not have been modified.

Drop support for the sslv2 stream

The sslv2 stream has now been dropped in OpenSSL.


Deprecated features in PHP 7.1.x

ext/mcrypt

The mcrypt extension has been abandonware for nearly a decade now, and was also fairly complex to use. It has therefore been deprecated in favour of OpenSSL, where it will be removed from the core and into PECL in PHP 7.2.

Eval option for mb_ereg_replace() and mb_eregi_replace()

The e pattern modifier has been deprecated for the mb_ereg_replace() and mb_eregi_replace() functions.


Changed functions

PHP Core

  • getopt() has an optional third parameter that exposes the index of the next element in the argument vector list to be processed. This is done via a by-ref parameter.
  • getenv() no longer requires its parameter. If the parameter is omitted, then the current environment variables will be returned as an associative array.
  • get_headers() now has an additional parameter to enable for the passing of custom stream contexts.
  • long2ip() now also accepts an integer as a parameter.
  • output_reset_rewrite_vars() no longer resets session URL rewrite variables.
  • parse_url() is now more restrictive and supports RFC3986.
  • unpack() now accepts an optional third parameter to specify the offset to begin unpacking from.

File System

  • file_get_contents() now accepts a negative seek offset if the stream is seekable.
  • tempnam() now emits a notice when falling back to the system's temp directory.

JSON

  • json_encode() now accepts a new option, JSON_UNESCAPED_LINE_TERMINATORS, to disable the escaping of U+2028 and U+2029 characters when JSON_UNESCAPED_UNICODE is supplied.

Multibyte String

  • mb_ereg() now rejects illegal byte sequences.
  • mb_ereg_replace() now rejects illegal byte sequences.

PDO

  • PDO::lastInsertId() for PostgreSQL will now trigger an error when nextval has not been called for the current session (the postgres connection).

PostgreSQL

  • pg_last_notice() now accepts an optional parameter to specify an operation. This can be done with one of the following new constants: PGSQL_NOTICE_LAST, PGSQL_NOTICE_ALL, or PGSQL_NOTICE_CLEAR.
  • pg_fetch_all() now accepts an optional second parameter to specify the result type (similar to the third parameter of pg_fetch_array()).
  • pg_select() now accepts an optional fourth parameter to specify the result type (similar to the third parameter of pg_fetch_array()).


Other changes

Notices and warnings on arithmetic with invalid strings

New E_WARNING and E_NOTICE errors have been introduced when invalid strings are coerced using operators expecting numbers (+ - * / ** % << >> | & ^) or their assignment equivalents. An E_NOTICE is emitted when the string begins with a numeric value but contains trailing non-numeric characters, and an E_WARNING is emitted when the string does not contain a numeric value.

<?php
'1b' + 'something';

L'exemple ci-dessus va afficher :

Notice: A non well formed numeric value encountered in %s on line %d
Warning: A non-numeric value encountered in %s on line %d

Warn on octal escape sequence overflow

Previously, 3-octet octal string escape sequences would overflow silently. Now, they will still overflow, but E_WARNING will be emitted.

<?php
var_dump("\500");

L'exemple ci-dessus va afficher :

Warning: Octal escape sequence overflow \500 is greater than \377 in %s on line %d
string(1) "@"

Inconsistency fixes to $this

Whilst $this is considered a special variable in PHP, it lacked proper checks to ensure it wasn't used as a variable name or reassigned. This has now been rectified to ensure that $this cannot be a user-defined variable, reassigned to a different value, or be globalised.

Session ID generation without hashing

Session IDs will no longer be hashed upon generation. With this change brings about the removal of the following four ini settings:

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

And the addition of the following two ini settings:

  • session.sid_length - defines the length of the session ID, defaulting to 32 characters for backwards compatibility)
  • session.sid_bits_per_character - defines the number of bits to be stored per character (i.e. increases the range of characters that can be used in the session ID), defaulting to 4 for backwards compatibility

Changes to INI file handling

precision

If the value is set to -1, then the dtoa mode 0 is used. The default value is still 14.

serialize_precision

If the value is set to -1, then the dtoa mode 0 is used. The value -1 is now used by default.

gd.jpeg_ignore_warning

The default of this php.ini setting has been changed to 1, so by default libjpeg warnings are ignored.

Session ID generation with a CSPRNG only

Session IDs will now only be generated with a CSPRNG.

More informative TypeError messages when NULL is allowed

TypeError exceptions for arg_info type checks will now provide more informative error messages. If the parameter type or return type accepts NULL (by either having a default value of NULL or being a nullable type), then the error message will now mention this with a message of "must be ... or null" or "must ... or be null."


Windows Support

readline

The readline extension is supported through the » WinEditLine library. Thereby, the interactive CLI shell is supported as well (php.exe -a).


Migration de PHP 5.6.x vers PHP 7.0.x

Sommaire

  • Backward incompatible changes
  • New features
  • Deprecated features in PHP 7.0.x
  • Changed functions
  • New functions
  • New Classes and Interfaces
  • Nouvelles constantes globales
  • Changes in SAPI Modules
  • Removed Extensions and SAPIs
  • Other Changes

PHP 7 est en développement

Avertissement

PHP 7.0 est encore en développement et les fonctionnalités et changements notés dans cette section sont sujets à changement d'ici la version finale 7.0.0, bien que cela ait peu de chances d'arriver. Veuillez consulter attentivement ce guide de migration avant de déployer une version 7.0 en production.

Malgré que PHP 7.0 soit une nouvelle version majeure, des efforts ont été faits pour rendre la migration aussi facile que possible. Cette version vise principalement à retirer les fonctionnalités qui ne sont plus supportées et à améliorer la cohérence du langage.

Il y a quelques incompatibilités et nouvelles fonctionnalités qui devraient être considérées, et le code devrait être testé avant de changer la version de PHP dans un environnement de production.

Voir aussi les guides de migration entre les différentes versions de PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x et 5.6.x.


Backward incompatible changes

Changes to error and exception handling

Many fatal and recoverable fatal errors have been converted to exceptions in PHP 7. These error exceptions inherit from the Error class, which itself implements the Throwable interface (the new base interface all exceptions inherit).

This means that custom error handlers may no longer be triggered because exceptions may be thrown instead (causing new fatal errors for uncaught Error exceptions).

A fuller description of how errors operate in PHP 7 can be found on the PHP 7 errors page. This migration guide will merely enumerate the changes that affect backward compatibility.

set_exception_handler() is no longer guaranteed to receive Exception objects

Code that implements an exception handler registered with set_exception_handler() using a type declaration of Exception will cause a fatal error when an Error object is thrown.

If the handler needs to work on both PHP 5 and 7, you should remove the type declaration from the handler, while code that is being migrated to work on PHP 7 exclusively can simply replace the Exception type declaration with Throwable instead.

<?php
// PHP 5 era code that will break.
function handler(Exception $e) { ... }
set_exception_handler('handler');

// PHP 5 and 7 compatible.
function handler($e) { ... }

// PHP 7 only.
function handler(Throwable $e) { ... }
?>

Internal constructors always throw exceptions on failure

Previously, some internal classes would return NULL or an unusable object when the constructor failed. All internal classes will now throw an Exception in this case in the same way that user classes already had to.

Parse errors throw ParseError

Parser errors now throw a ParseError object. Error handling for eval() should now include a catch block that can handle this error.

E_STRICT notices severity changes

All of the E_STRICT notices have been reclassified to other levels. E_STRICT constant is retained, so calls like error_reporting(E_ALL|E_STRICT) will not cause an error.

E_STRICT notices severity changes
Situation | New level/behaviour
Indexing by a resource | E_NOTICE
Abstract static methods | Notice removed, triggers no error
"Redefining" a constructor | Notice removed, triggers no error
Signature mismatch during inheritance | E_WARNING
Same (compatible) property in two used traits | Notice removed, triggers no error
Accessing static property non-statically | E_NOTICE
Only variables should be assigned by reference | E_NOTICE
Only variables should be passed by reference | E_NOTICE
Calling non-static methods statically | E_DEPRECATED

Changes to variable handling

PHP 7 now uses an abstract syntax tree when parsing source files. This has permitted many improvements to the language which were previously impossible due to limitations in the parser used in earlier versions of PHP, but has resulted in the removal of a few special cases for consistency reasons, which has resulted in backward compatibility breaks. These cases are detailed in this section.

Changes to the handling of indirect variables, properties, and methods

Indirect access to variables, properties, and methods will now be evaluated strictly in left-to-right order, as opposed to the previous mix of special cases. The table below shows how the order of evaluation has changed.

Old and new evaluation of indirect expressions
Expression | PHP 5 interpretation | PHP 7 interpretation
$$foo['bar']['baz'] | ${$foo['bar']['baz']} | ($$foo)['bar']['baz']
$foo->$bar['baz'] | $foo->{$bar['baz']} | ($foo->$bar)['baz']
$foo->$bar['baz']() | $foo->{$bar['baz']}() | ($foo->$bar)['baz']()
Foo::$bar['baz']() | Foo::{$bar['baz']}() | (Foo::$bar)['baz']()

Code that used the old right-to-left evaluation order must be rewritten to explicitly use that evaluation order with curly braces (see the above middle column). This will make the code both forwards compatible with PHP 7.x and backwards compatible with PHP 5.x.

Changes to list() handling

list() no longer assigns variables in reverse order

list() will now assign values to variables in the order they are defined, rather than reverse order. In general, this only affects the case where list() is being used in conjunction with the array [] operator, as shown below:

<?php
list($a[], $a[], $a[]) = [1, 2, 3];
var_dump($a);
?>

Résultat de l'exemple ci-dessus en PHP 5 :

array(3) {
  [0]=>
  int(3)
  [1]=>
  int(2)
  [2]=>
  int(1)
}

Résultat de l'exemple ci-dessus en PHP 7 :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

In general, it is recommended not to rely on the order in which list() assignments occur, as this is an implementation detail that may change again in the future.

Empty list() assignments have been removed

list() constructs can no longer be empty. The following are no longer allowed:

<?php
list() = $a;
list(,,) = $a;
list($x, list(), $y) = $a;
?>
list() cannot unpack strings

list() can no longer unpack string variables. str_split() should be used instead.

Array ordering when elements are automatically created during by reference assignments has changed

The order of the elements in an array has changed when those elements have been automatically created by referencing them in a by reference assignment. For example:

<?php
$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
?>

Résultat de l'exemple ci-dessus en PHP 5 :

array(2) {
  ["b"]=>
  &int(1)
  ["a"]=>
  &int(1)
}

Résultat de l'exemple ci-dessus en PHP 7 :

array(2) {
  ["a"]=>
  &int(1)
  ["b"]=>
  &int(1)
}

global only accepts simple variables

Variable variables can no longer be used with the global keyword. The curly brace syntax can be used to emulate the previous behaviour if required:

<?php
function f() {
    // Valid in PHP 5 only.
    global $$foo->bar;

    // Valid in PHP 5 and 7.
    global ${$foo->bar};
}
?>

As a general principle, using anything other than a bare variable with global is discouraged.

Parentheses around function arguments no longer affect behaviour

In PHP 5, using redundant parentheses around a function argument could quiet strict standards warnings when the function argument was passed by reference. The warning will now always be issued.

<?php
function getArray() {
    return [1, 2, 3];
}

function squareArray(array &$a) {
    foreach ($a as &$v) {
        $v **= 2;
    }
}

// Generates a warning in PHP 7.
squareArray((getArray()));
?>

L'exemple ci-dessus va afficher :

Notice: Only variables should be passed by reference in /tmp/test.php on line 13

Changements concernant foreach

Des changements mineurs ont été faits sur le comportement de la structure de contrôle foreach, principalement sur la gestion du pointeur interne de tableau et la modification du tableau étant parcouru.

foreach ne modifie plus le pointeur interne de tableau

Avant PHP 7, le pointeur interne de tableau était modifié pendant que l'on parcourait un tableau avec foreach. Cela n'est plus le cas, comme le montre l'exemple suivant :

<?php
$array = [0, 1, 2];
foreach ($array as &$val) {
    var_dump(current($array));
}
?>

Résultat de l'exemple ci-dessus en PHP 5 :

int(1)
int(2)
bool(false)

Résultat de l'exemple ci-dessus en PHP 7 :

int(0)
int(0)
int(0)

foreach par valeur travaille sur une copie du tableau

Lors de l'utilisation du mode par défaut (par valeur), foreach travaille maintenant sur une copie du tableau en cours parcouru plutôt que sur le tableau lui-même. Cela signifie que les changements réalisés sur le tableau pendant son parcours n'affecteront pas les valeurs qui sont parcourues.

Le comportement du parcours de foreach par référence a été amélioré

Lors du parcours d'un tableau par référence, foreach identifie mieux les changements faits au tableau pendant son parcours. Par exemple, si des valeurs sont ajoutées à un tableau pendant son parcours, alors ces nouvelles valeurs seront également parcourues :

<?php
$array = [0];
foreach ($array as &$val) {
    var_dump($val);
    $array[1] = 1;
}
?>

Résultat de l'exemple ci-dessus en PHP 5 :

int(0)

Résultat de l'exemple ci-dessus en PHP 7 :

int(0)
int(1)

Parcours d'objets non-Traversable

Le parcours d'un objet non-Traversable est maintenant identique au parcours d'un tableau par référence. En conséquence l'amélioration du comportement lors de la modification d'un tableau pendant son parcours est également appliquée lorsque des propriétés sont ajoutées ou supprimées d'un objet.

Changes to integer handling

Invalid octal literals

Previously, octal literals that contained invalid numbers were silently truncated (0128 was taken as 012). Now, an invalid octal literal will cause a parse error.

Negative bitshifts

Bitwise shifts by negative numbers will now throw an ArithmeticError:

<?php
var_dump(1 >> -1);
?>

Résultat de l'exemple ci-dessus en PHP 5 :

int(0)

Résultat de l'exemple ci-dessus en PHP 7 :

Fatal error: Uncaught ArithmeticError: Bit shift by negative number in /tmp/test.php:2
Stack trace:
#0 {main}
  thrown in /tmp/test.php on line 2

Out of range bitshifts

Bitwise shifts (in either direction) beyond the bit width of an integer will always result in 0. Previously, the behaviour of such shifts was architecture dependent.

Changes to Division By Zero

Previously, when 0 was used as the divisor for either the divide (/) or modulus (%) operators, an E_WARNING would be emitted and false would be returned. Now, the divide operator returns a float as either +INF, -INF, or NAN, as specified by IEEE 754. The modulus operator E_WARNING has been removed and will throw a DivisionByZeroError exception.

<?php
var_dump(3/0);
var_dump(0/0);
var_dump(0%0);
?>

Résultat de l'exemple ci-dessus en PHP 5 :

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

Résultat de l'exemple ci-dessus en PHP 7 :

Warning: Division by zero in %s on line %d
float(INF)

Warning: Division by zero in %s on line %d
float(NAN)

PHP Fatal error:  Uncaught DivisionByZeroError: Modulo by zero in %s line %d

Changes to string handling

Hexadecimal strings are no longer considered numeric

Strings containing hexadecimal numbers are no longer considered to be numeric. For example:

<?php
var_dump("0x123" == "291");
var_dump(is_numeric("0x123"));
var_dump("0xe" + "0x1");
var_dump(substr("foo", "0x1"));
?>

Résultat de l'exemple ci-dessus en PHP 5 :

bool(true)
bool(true)
int(15)
string(2) "oo"

Résultat de l'exemple ci-dessus en PHP 7 :

bool(false)
bool(false)
int(0)

Notice: A non well formed numeric value encountered in /tmp/test.php on line 5
string(3) "foo"

filter_var() can be used to check if a string contains a hexadecimal number, and also to convert a string of that type to an integer:

<?php
$str = "0xffff";
$int = filter_var($str, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX);
if (false === $int) {
    throw new Exception("Invalid integer!");
}
var_dump($int); // int(65535)
?>

\u{ may cause errors

Due to the addition of the new Unicode codepoint escape syntax, strings containing a literal \u{ followed by an invalid sequence will cause a fatal error. To avoid this, the leading backslash should be escaped.

Fonctions supprimées

call_user_method() et call_user_method_array()

Ces fonctions sont obsolètes dans PHP 4.1.0, et remplacées par call_user_func() et call_user_func_array(). Vous pourriez également utiliser les fonctions variables et/ou l'opérateur ....

mcrypt aliases

La fonction obsolète mcrypt_generic_end() a été remplacée par mcrypt_generic_deinit().

De plus, les fonctions obsolètes mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() et mcrypt_ofb() ont été remplacées par l'utilisation de mcrypt_decrypt() avec la constante appropriée MCRYPT_MODE_*.

intl aliases

Les alias obsolètes datefmt_set_timezone_id() et
IntlDateFormatter::setTimeZoneID() ont été supprimés
et remplacés respectivement par datefmt_set_timezone() et
IntlDateFormatter::setTimeZone().

set_magic_quotes_runtime()

Les fonctions set_magic_quotes_runtime(), ainsi que son alias magic_quotes_runtime(), ont été supprimés. Ils étaient obsolètes depuis PHP 5.3.0, et sans effet depuis la suppression des guillemets magiques en PHP 5.4.0.

set_socket_blocking()

L'alias obsolète set_socket_blocking() a été supprimé et remplacé par stream_set_blocking().

dl() avec PHP-FPM

dl() ne peut plus être utilisé avec PHP-FPM. Il continue à fonctionner dans les SAPIs CLI et Embed.

Fonctions GD Type1

Le support des polices PostScript Type1 a été supprimé de l'extension GD, entraînant la suppression des fonctions suivantes :

  • imagepsbbox()
  • imagepsencodefont()
  • imagepsextendfont()
  • imagepsfreefont()
  • imagepsloadfont()
  • imagepsslantfont()
  • imagepstext()

A la place, il est recommandé d'utiliser les polices TrueType et leurs fonctions associées.

Removed INI directives

Removed features

The following INI directives have been removed as their associated features have also been removed:

  • always_populate_raw_post_data
  • asp_tags

xsl.security_prefs

The xsl.security_prefs directive has been removed. Instead, the XsltProcessor::setSecurityPrefs() method should be called to control the security preferences on a per-processor basis.

Other backward incompatible changes

New objects cannot be assigned by reference

The result of the new statement can no longer be assigned to a variable by reference:

<?php
class C {}
$c =& new C;
?>

Résultat de l'exemple ci-dessus en PHP 5 :

Deprecated: Assigning the return value of new by reference is deprecated in /tmp/test.php on line 3

Résultat de l'exemple ci-dessus en PHP 7 :

Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3

Invalid class, interface and trait names

The following names cannot be used to name classes, interfaces or traits:

  • bool
  • int
  • float
  • string
  • NULL
  • TRUE
  • FALSE

Furthermore, the following names should not be used. Although they will not generate an error in PHP 7.0, they are reserved for future use and should be considered deprecated.

  • resource
  • object
  • mixed
  • numeric

ASP and script PHP tags removed

Support for using ASP and script tags to delimit PHP code has been removed. The affected tags are:

Removed ASP and script tags
Opening tag | Closing tag
<% | %>
<%= | %>
<script language="php"> | </script>

Calls from incompatible context removed

Previously deprecated in PHP 5.6, static calls made to a non-static method with an incompatible context will now result in the called method having an undefined $this variable and a deprecation warning being issued.

<?php
class A {
    public function test() { var_dump($this); }
}

// Note: Does NOT extend A
class B {
    public function callNonStaticMethodOfA() { A::test(); }
}

(new B)->callNonStaticMethodOfA();
?>

Résultat de l'exemple ci-dessus en PHP 5.6 :

Deprecated: Non-static method A::test() should not be called statically, assuming $this from incompatible context in /tmp/test.php on line 8
object(B)#1 (0) {
}

Résultat de l'exemple ci-dessus en PHP 7 :

Deprecated: Non-static method A::test() should not be called statically in /tmp/test.php on line 8

Notice: Undefined variable: this in /tmp/test.php on line 3
NULL

yield is now a right associative operator

The yield construct no longer requires parentheses, and has been changed to a right associative operator with precedence between print and =>. This can result in changed behaviour:

<?php
echo yield -1;
// Was previously interpreted as
echo (yield) - 1;
// And is now interpreted as
echo yield (-1);

yield $foo or die;
// Was previously interpreted as
yield ($foo or die);
// And is now interpreted as
(yield $foo) or die;
?>

Parentheses can be used to disambiguate those cases.

Functions cannot have multiple parameters with the same name

It is no longer possible to define two or more function parameters with the same name. For example, the following function will trigger an E_COMPILE_ERROR:

<?php
function foo($a, $b, $unused, $unused) {
    //
}
?>

Functions inspecting arguments report the current parameter value

func_get_arg(), func_get_args(), debug_backtrace() and exception backtraces will no longer report the original value that was passed to a parameter, but will instead provide the current value (which might have been modified).

<?php
function foo($x) {
    $x++;
    var_dump(func_get_arg(0));
}
foo(1);?>

Résultat de l'exemple ci-dessus en PHP 5 :

1

Résultat de l'exemple ci-dessus en PHP 7 :

2

Switch statements cannot have multiple default blocks

It is no longer possible to define two or more default blocks in a switch statement. For example, the following will switch statement will trigger an E_COMPILE_ERROR:

<?php
switch (1) {
    default:
    break;
    default:
    break;
}
?>

$HTTP_RAW_POST_DATA removed

$HTTP_RAW_POST_DATA is no longer available. The php://input stream should be used instead.

# comments in INI files removed

Support for prefixing comments with # in INI files has been removed. ; (semi-colon) should be used instead. This change applies to php.ini, as well as files handled by parse_ini_file() and parse_ini_string().

JSON extension replaced with JSOND

The JSON extension has been replaced with JSOND, causing three minor BC breaks. Firstly, a number must not end in a decimal point (i.e. 34. must be changed to either 34.0 or 34). Secondly, when using scientific notation, the e exponent must not immediately follow a decimal point (i.e. 3.e3 must be changed to either 3.0e3 or 3e3). Finally, an empty string is no longer considered valid JSON.

Internal function failure on overflow

Previously, internal functions would silently truncate numbers produced from float-to-integer coercions when the float was too large to represent as an integer. Now, an E_WARNING will be emitted and NULL will be returned.

Fixes to custom session handler return values

Any predicate functions implemented by custom session handlers that return either FALSE or -1 will be fatal errors. If any value from these functions other than a boolean, -1, or 0 is returned, then it will fail and an E_WARNING will be emitted.

Sort order of equal elements

The internal sorting algorithm has been improved, what may result in different sort order of elements, which compare as equal, than before.

Note:

Don't rely on the order of elements which compare as equal; it might change anytime.


New features

Scalar type declarations

Scalar type declarations come in two flavours: coercive (default) and strict. The following types for parameters can now be enforced (either coercively or strictly): strings (string), integers (int), floating-point numbers (float), and booleans (bool). They augment the other types introduced in PHP 5: class names, interfaces, array and callable.

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
    return array_sum($ints);
}

var_dump(sumOfInts(2, '3', 4.1));

L'exemple ci-dessus va afficher :

int(9)

To enable strict mode, a single declare directive must be placed at the top of the file. This means that the strictness of typing for scalars is configured on a per-file basis. This directive not only affects the type declarations of parameters, but also a function's return type (see return type declarations, built-in PHP functions, and functions from loaded extensions.

Full documentation and examples of scalar type declarations can be found in the type declaration reference.

Return type declarations

PHP 7 adds support for return type declarations. Similarly to argument type declarations, return type declarations specify the type of the value that will be returned from a function. The same types are available for return type declarations as are available for argument type declarations.

<?php

function arraysSum(array ...$arrays): array
{
    return array_map(function(array $array): int {
        return array_sum($array);
    }, $arrays);
}

print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));

L'exemple ci-dessus va afficher :

Array
(
    [0] => 6
    [1] => 15
    [2] => 24
)

Full documentation and examples of return type declarations can be found in the return type declarations. reference.

Null coalescing operator

The null coalescing operator (??) has been added as syntactic sugar for the common case of needing to use a ternary in conjunction with isset(). It returns its first operand if it exists and is not NULL; otherwise it returns its second operand.

<?php
// Fetches the value of $_GET['user'] and returns 'nobody'
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

// Coalescing can be chained: this will return the first
// defined value out of $_GET['user'], $_POST['user'], and
// 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
?>

Spaceship operator

The spaceship operator is used for comparing two expressions. It returns -1, 0 or 1 when $a is respectively less than, equal to, or greater than $b. Comparisons are performed according to PHP's usual type comparison rules.

<?php
// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

Constant arrays using define()

Array constants can now be defined with define(). In PHP 5.6, they could only be defined with const.

<?php
define('ANIMALS', [
    'dog',
    'cat',
    'bird'
]);

echo ANIMALS[1]; // outputs "cat"
?>

Anonymous classes

Support for anonymous classes has been added via new class. These can be used in place of full class definitions for throwaway objects:

<?php
interface Logger {
    public function log(string $msg);
}

class Application {
    private $logger;

    public function getLogger(): Logger {
         return $this->logger;
    }

    public function setLogger(Logger $logger) {
         $this->logger = $logger;
    }
}

$app = new Application;
$app->setLogger(new class implements Logger {
    public function log(string $msg) {
        echo $msg;
    }
});

var_dump($app->getLogger());
?>

L'exemple ci-dessus va afficher :

object(class@anonymous)#2 (0) {
}

Full documentation can be found in the anonymous class reference.

Unicode codepoint escape syntax

This takes a Unicode codepoint in hexadecimal form, and outputs that codepoint in UTF-8 to a double-quoted string or a heredoc. Any valid codepoint is accepted, with leading 0's being optional.

echo "\u{aa}";
echo "\u{0000aa}";
echo "\u{9999}";

L'exemple ci-dessus va afficher :

ª
ª (same as before but with optional leading 0's)
?

Closure::call()

Closure::call() is a more performant, shorthand way of temporarily binding an object scope to a closure and invoking it.

<?php
class A {private $x = 1;}

// Pre PHP 7 code
$getXCB = function() {return $this->x;};
$getX = $getXCB->bindTo(new A, 'A'); // intermediate closure
echo $getX();

// PHP 7+ code
$getX = function() {return $this->x;};
echo $getX->call(new A);

L'exemple ci-dessus va afficher :

1
1

Filtered unserialize()

This feature seeks to provide better security when unserializing objects on untrusted data. It prevents possible code injections by enabling the developer to whitelist classes that can be unserialized.

<?php

// converts all objects into __PHP_Incomplete_Class object
$data = unserialize($foo, ["allowed_classes" => false]);

// converts all objects into __PHP_Incomplete_Class object except those of MyClass and MyClass2
$data = unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]]);

// default behaviour (same as omitting the second argument) that accepts all classes
$data = unserialize($foo, ["allowed_classes" => true]);

IntlChar

The new IntlChar class seeks to expose additional ICU functionality. The class itself defines a number of static methods and constants that can be used to manipulate unicode characters.

<?php

printf('%x', IntlChar::CODEPOINT_MAX);
echo IntlChar::charName('@');
var_dump(IntlChar::ispunct('!'));

L'exemple ci-dessus va afficher :

10ffff
COMMERCIAL AT
bool(true)

In order to use this class, the Intl extension must be installed.

Expectations

Expectations are a backwards compatible enhancement to the older assert() function. They allow for zero-cost assertions in production code, and provide the ability to throw custom exceptions when the assertion fails.

While the old API continues to be maintained for compatibility, assert() is now a language construct, allowing the first parameter to be an expression rather than just a string to be evaluated or a boolean value to be tested.

<?php
ini_set('assert.exception', 1);

class CustomError extends AssertionError {}

assert(false, new CustomError('Some error message'));
?>

L'exemple ci-dessus va afficher :

Fatal error: Uncaught CustomError: Some error message

Full details on this feature, including how to configure it in both development and production environments, can be found in the expectations section of the assert() reference.

Group use declarations

Classes, functions and constants being imported from the same namespace can now be grouped together in a single use statement.

<?php
// Pre PHP 7 code
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

use function some\namespace\fn_a;
use function some\namespace\fn_b;
use function some\namespace\fn_c;

use const some\namespace\ConstA;
use const some\namespace\ConstB;
use const some\namespace\ConstC;

// PHP 7+ code
use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};
?>

Generator Return Expressions

This feature builds upon the generator functionality introduced into PHP 5.5. It enables for a return statement to be used within a generator to enable for a final expression to be returned (return by reference is not allowed). This value can be fetched using the new Generator::getReturn() method, which may only be used once the generator has finished yielding values.

<?php

$gen = (function() {
    yield 1;
    yield 2;

    return 3;
})();

foreach ($gen as $val) {
    echo $val, PHP_EOL;
}

echo $gen->getReturn(), PHP_EOL;

L'exemple ci-dessus va afficher :

1
2
3

Being able to explicitly return a final value from a generator is a handy ability to have. This is because it enables for a final value to be returned by a generator (from perhaps some form of coroutine computation) that can be specifically handled by the client code executing the generator. This is far simpler than forcing the client code to firstly check whether the final value has been yielded, and then if so, to handle that value specifically.

Generator delegation

Generators can now delegate to another generator, Traversable object or array automatically, without needing to write boilerplate in the outermost generator by using the yield from construct.

<?php
function gen()
{
    yield 1;
    yield 2;
    yield from gen2();
}

function gen2()
{
    yield 3;
    yield 4;
}

foreach (gen() as $val)
{
    echo $val, PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

1
2
3
4

Integer division with intdiv()

The new intdiv() function performs an integer division of its operands and returns it.

<?php
var_dump(intdiv(10, 3));
?>

L'exemple ci-dessus va afficher :

int(3)

Session options

session_start() now accepts an array of options that override the session configuration directives normally set in php.ini.

These options have also been expanded to support session.lazy_write, which is on by default and causes PHP to only overwrite any session file if the session data has changed, and read_and_close, which is an option that can only be passed to session_start() to indicate that the session data should be read and then the session should immediately be closed unchanged.

For example, to set session.cache_limiter to private and immediately close the session after reading it:

<?php
session_start([
    'cache_limiter' => 'private',
    'read_and_close' => true,
]);
?>

preg_replace_callback_array()

The new preg_replace_callback_array() function enables code to be written more cleanly when using the preg_replace_callback() function. Prior to PHP 7, callbacks that needed to be executed per regular expression required the callback function to be polluted with lots of branching.

Now, callbacks can be registered to each regular expression using an associative array, where the key is a regular expression and the value is a callback.

CSPRNG Functions

Two new functions have been added to generate cryptographically secure integers and strings in a cross platform way: random_bytes() and random_int().

list() can always unpack objects implementing ArrayAccess

Previously, list() was not guaranteed to operate correctly with objects implementing ArrayAccess. This has been fixed.

Other Features

  • Class member access on cloning has been added, e.g. (clone $foo)->bar().


Deprecated features in PHP 7.0.x

PHP 4 style constructors

PHP 4 style constructors (methods that have the same name as the class they are defined in) are deprecated, and will be removed in the future. PHP 7 will emit E_DEPRECATED if a PHP 4 constructor is the only constructor defined within a class. Classes that implement a __construct() method are unaffected.

<?php
class foo {
    function foo() {
        echo 'I am the constructor';
    }
}
?>

L'exemple ci-dessus va afficher :

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in example.php on line 3

Static calls to non-static methods

Static calls to methods that are not declared static are deprecated, and may be removed in the future.

<?php
class foo {
    function bar() {
        echo 'I am not static!';
    }
}

foo::bar();
?>

L'exemple ci-dessus va afficher :

Deprecated: Non-static method foo::bar() should not be called statically in - on line 8
I am not static!

password_hash() salt option

The salt option for the password_hash() function has been deprecated to prevent developers from generating their own (usually insecure) salts. The function itself generates a cryptographically secure salt when no salt is provided by the developer - therefore custom salt generation should not be needed.

capture_session_meta SSL context option

The capture_session_meta SSL context option has been deprecated. SSL metadata is now available through the stream_get_meta_data() function.

LDAP deprecations

The following function has been deprecated:

  • ldap_sort()


Changed functions

PHP Core

  • debug_zval_dump() now prints "int" instead of "long", and "float" instead of "double"
  • dirname() now optionally takes a second parameter, depth, to get the name of the directory depth levels up from the current directory.
  • getrusage() is now supported on Windows.
  • mktime() and gmmktime() functions no longer accept is_dst parameter.
  • preg_replace() function no longer supports "\e" (PREG_REPLACE_EVAL). preg_replace_callback() should be used instead.
  • setlocale() function no longer accepts category passed as string. LC_* constants must be used instead.
  • exec(), system() and passthru() functions have NULL byte protection now.
  • shmop_open() now returns a resource instead of an int, which has to be passed to shmop_size(), shmop_write(), shmop_read(), shmop_close() and shmop_delete().
  • substr() and iconv_substr() now return an empty string, if string is equal to start characters long.
  • xml_set_object() now requires to manually unset the $parser when finished, to avoid memory leaks.


New functions

Closure

  • Closure::call()

CSPRNG

  • random_bytes()
  • random_int()

Error Handling and Logging

  • error_clear_last()

Generator

  • Generator::getReturn()

GNU Multiple Precision

  • gmp_random_seed()

Math

  • intdiv()

PCRE

  • preg_replace_callback_array()

PHP Options/Info

  • gc_mem_caches()
  • get_resources()

POSIX

  • posix_setrlimit()

Reflection

  • ReflectionParameter::getType()
  • ReflectionParameter::hasType()
  • ReflectionFunctionAbstract::getReturnType()
  • ReflectionFunctionAbstract::hasReturnType()

Zip

  • ZipArchive::setCompressionIndex()
  • ZipArchive::setCompressionName()

Zlib Compression

  • inflate_add()
  • deflate_add()
  • inflate_init()
  • deflate_init()


New Classes and Interfaces

Intl

  • IntlChar

Reflection

  • ReflectionGenerator
  • ReflectionType

Session Handling

  • SessionUpdateTimestampHandlerInterface

Exception Hierarchy

  • Throwable
  • Error
  • TypeError
  • ParseError
  • AssertionError
  • ArithmeticError
  • DivisionByZeroError


Nouvelles constantes globales

Constantes prédéfinies

  • PHP_INT_MIN

GD

  • IMG_WEBP (depuis PHP 7.0.10)

JSON

  • JSON_ERROR_INVALID_PROPERTY_NAME
  • JSON_ERROR_UTF16

LibXML

  • LIBXML_BIGLINES

PCRE

  • PREG_JIT_STACKLIMIT_ERROR

POSIX

  • POSIX_RLIMIT_AS
  • POSIX_RLIMIT_CORE
  • POSIX_RLIMIT_CPU
  • POSIX_RLIMIT_DATA
  • POSIX_RLIMIT_FSIZE
  • POSIX_RLIMIT_LOCKS
  • POSIX_RLIMIT_MEMLOCK
  • POSIX_RLIMIT_MSGQUEUE
  • POSIX_RLIMIT_NICE
  • POSIX_RLIMIT_NOFILE
  • POSIX_RLIMIT_NPROC
  • POSIX_RLIMIT_RSS
  • POSIX_RLIMIT_RTPRIO
  • POSIX_RLIMIT_RTTIME
  • POSIX_RLIMIT_SIGPENDING
  • POSIX_RLIMIT_STACK
  • POSIX_RLIMIT_INFINITY

Zlib

  • ZLIB_ENCODING_RAW
  • ZLIB_ENCODING_DEFLATE
  • ZLIB_ENCODING_GZIP
  • ZLIB_FILTERED
  • ZLIB_HUFFMAN_ONLY
  • ZLIB_FIXED
  • ZLIB_RLE
  • ZLIB_DEFAULT_STRATEGY
  • ZLIB_BLOCK
  • ZLIB_FINISH
  • ZLIB_FULL_FLUSH
  • ZLIB_NO_FLUSH
  • ZLIB_PARTIAL_FLUSH
  • ZLIB_SYNC_FLUSH


Changes in SAPI Modules

FPM

Unqualified listen ports now listen on both IPv4 and IPv6

In PHP 5, a listen directive with only a port number would listen on all interfaces, but only on IPv4. PHP 7 will now accept requests made via both IPv4 and IPv6.

This does not affect directives which include specific IP addresses; these will continue to only listen on that address and protocol.


Removed Extensions and SAPIs

Removed Extensions

  • ereg
  • mssql
  • mysql
  • sybase_ct

Removed SAPIs

  • aolserver
  • apache
  • apache_hooks
  • apache2filter
  • caudium
  • continuity
  • isapi
  • milter
  • nsapi
  • phttpd
  • pi3web
  • roxen
  • thttpd
  • tux
  • webjames


Other Changes

Loosening Reserved Word Restrictions

Globally reserved words as property, constant, and method names within classes, interfaces, and traits are now allowed. This reduces the surface of BC breaks when new keywords are introduced and avoids naming restrictions on APIs.

This is particularly useful when creating internal DSLs with fluent interfaces:

<?php
// 'new', 'private', and 'for' were previously unusable
Project::new('Project Name')->private()->for('purpose here')->with('username here');
?>

The only limitation is that the class keyword still cannot be used as a constant name, otherwise it would conflict with the class name resolution syntax (ClassName::class).

Removal of date.timezone Warning

Previously, a warning was emitted if the date.timezone INI setting had not been set prior to using any date- or time-based functions. Now, this warning has been removed (with date.timezone still defaulting to UTC).


Migration de PHP 5.5.x à PHP 5.6.x

Sommaire

  • Modifications entrainant une incompatibilité ascendante
  • Nouvelles fonctionnalités
  • Fonctionnalités devenues obsolètes en PHP 5.6.x
  • Fonctions modifiées
  • Nouvelles fonctions
  • OpenSSL changes in PHP 5.6.x
  • Autres modifications dans les extensions
  • Nouvelles constantes globales

La majorité des améliorations de PHP 5.6.x n'ont pas d'impact sur le code existant. Il y a néanmoins quelques incompatibilités et nouvelles fonctionnalités qui doivent être prise en considération, et le code doit être testé avant de changer de version sur les environnements de production.

Voir aussi les guides de migration entre les différentes versions de PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x and 5.5.x.


Modifications entrainant une incompatibilité ascendante

Bien que la plupart du code PHP 5 existant devrait fonctionner sans aucune modification, vous devez prendre en considération quelques incompatibilités ascendantes :

Les clés des tableaux ne sont pas écrasées lors de la définition d'un tableau comme une propriété d'une classe via un tableau littéral

Précédemment, les tableaux déclarés comme des propriétés de classe qui mixaient des clés explicites et implicites pouvaient voir leurs éléments écrasés sans avertissement si une clé explicite était identique à une clé séquentielle implicite. Par exemple :

<?php
class C {
    const ONE = 1;
    public $array = [
        self::ONE => 'foo',
        'bar',
        'quux',
    ];
}

var_dump((new C)->array);
?>

Résultat de l'exemple ci-dessus en PHP 5.5 :

array(2) {
  [0]=>
  string(3) "bar"
  [1]=>
  string(4) "quux"
}

Résultat de l'exemple ci-dessus en PHP 5.6 :

array(3) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(4) "quux"
}

Rigueur de json_decode()

json_decode() rejette maintenant les variantes non écrites en minuscule des littéraux JSON true, false et null, en accord avec la spécification JSON, et json_last_error() est renseignée en conséquence. Précédemment, les valeurs passées à json_decode() contenant l'une de ces valeurs en majuscules ou dans une casse mixte étaient acceptées.

Ce changement va affecter uniquement les cas ou du JSON invalide serait passé à json_decode() : du JSON valide ne sera pas affecté et sera analysé normalement.

Les gestionnaires de flux vérifient maintenant par défaut les certificats de pair et les noms d'hôtes lors de l'utilisation de SSL/TLS

Tous les flux clients cryptés activent désormais la vérification par paire par défaut. Par défaut, ceci va utiliser le CA OpenSSL par défaut pour vérifier la paire de certificat. Dans la plupart des cas, aucune modification n'a besoin d'être faite pour communiquer avec des serveurs et des certificats SSL valides, sachant que les distributeurs configurent généralement OpenSSL pour utiliser les CA connus.

Le CA par défaut peut être écrasé sur une base globale en utilisant les options de configuration openssl.cafile ou openssl.capath, ou via une requête basique en utilisant les options de contexte cafile ou capath.

Bien que ce ne soit pas conseillé en général, il est possible de désactiver la vérification de certificats par paire pour une requête en définissant l'option de contexte verify_peer à FALSE, et pour désactiver la validation du nom des paires, en configurant l'option de contexte verify_peer_name à FALSE.

Les ressources GMP sont maintenant des objets

Les ressources GMP sont maintenant des objets. L'API de l'extension GMP n'a pas changé et le code existant devrait continuer à fonctionner sans modification à moins qu'une vérification explicite ne soit faite en utilisant is_resource() ou équivalent.

Les fonctions Mcrypt requièrent maintenant des clés ou IV valides

mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ecb(), mcrypt_generic() et mcrypt_ofb() n'acceptent plus de clés ou de vecteurs d'initialisation (IVs) de tailles incorrectes, et les modes de ciphers par blocs qui requièrent des IVs échoueront désormais si un IV n'est pas fourni.

Téléchargement de fichiers avec cURL

Le téléchargement de fichier en utilisant la syntaxe @file nécessite maintenant que la directive CURLOPT_SAFE_UPLOAD soit définie à FALSE. CURLFile doit plutôt être utilisé à la place.


Nouvelles fonctionnalités

Expressions de constante

Il est désormais possible de fournir une expression scalaire impliquant des numériques et des chaînes littérales et/ou des constantes dans les contextes où PHP attendait précédemment une valeur statique, comme une constante ou une déclaration de propriétés et des arguments par défaut de fonction.

<?php
const UN = 1;
const DEUX = UN * 2;

class C {
    const TROIS = DEUX + 1;
    const UN_SUR_TROIS = UN / self::TROIS;
    const RESULTAT = 'La valeur de TROIS est '.self::TROIS;

    public function f($a = UN + self::TROIS) {
        return $a;
    }
}

echo (new C)->f()."\n";
echo C::RESULTAT;
?>

L'exemple ci-dessus va afficher :

4
La valeur de TROIS est 3

Il est aussi possible de définir une constante array en utilisant le mot clé const :

<?php
const ARR = ['a', 'b'];

echo ARR[0];
?>

L'exemple ci-dessus va afficher :

a

Fonctions variables via l'opérateur ...

Les fonctions variables peuvent maintenant être implémentées en utilisant l'opérateur ..., au lieu d'utiliser la fonction func_get_args().

<?php
function f($req, $opt = null, ...$params) {
    // $params est un tableau contenant les arguments restants.
    printf('$req: %d; $opt: %d; Nombre d\'arguments : %d'."\n",
           $req, $opt, count($params));
}

f(1);
f(1, 2);
f(1, 2, 3);
f(1, 2, 3, 4);
f(1, 2, 3, 4, 5);
?>

L'exemple ci-dessus va afficher :

$req: 1; $opt: 0; Nombre d'arguments : 0
$req: 1; $opt: 2; Nombre d'arguments : 0
$req: 1; $opt: 2; Nombre d'arguments : 1
$req: 1; $opt: 2; Nombre d'arguments : 2
$req: 1; $opt: 2; Nombre d'arguments : 3

Décompression des arguments via l'opérateur ...

Les tableaux et les objets Traversable peuvent être décompressés dans la liste d'arguments lors d'appel à une fonction en utilisant l'opérateur .... Cette méthode est connue sous le nom d'opérateur de floc dans d'autres langages comme Ruby par exemple.

<?php
function add($a, $b, $c) {
    return $a + $b + $c;
}

$operators = [2, 3];
echo add(1, ...$operators);
?>

L'exemple ci-dessus va afficher :

6

L'exponentiation via l'opérateur **

Un opérateur ** associatif à droite a été ajouté pour supporter l'exponentiation, en conjonction de l'opérateur d'assignement **=.

<?php
printf("2 ** 3 ==      %d\n", 2 ** 3);
printf("2 ** 3 ** 2 == %d\n", 2 ** 3 ** 2);

$a = 2;
$a **= 3;
printf("a ==           %d\n", $a);
?>

L'exemple ci-dessus va afficher :

2 ** 3 ==      8
2 ** 3 ** 2 == 512
a ==           8

use function et use const

L'opérateur use a été étendu pour supporter l'importation de fonctions et de constantes en plus des classes. Ceci est possible en utilisant respectivement les constructions use function et use const.

<?php
namespace Name\Space {
    const FOO = 42;
    function f() { echo __FUNCTION__."\n"; }
}

namespace {
    use const Name\Space\FOO;
    use function Name\Space\f;

    echo FOO."\n";
    f();
}
?>

L'exemple ci-dessus va afficher :

42
Name\Space\f

phpdbg

PHP inclut désormais un débogueur interactif appelé phpdbg, implémenté comme module SAPI. Pour plus d'informations, visitez la » documentation phpdbg.

Encodage de caractères par défaut

default_charset est maintenant utilisé comme jeu de caractères par défaut pour les fonctions htmlentities(), html_entity_decode() et htmlspecialchars(). Notez que si les configurations d'encodage (maintenant obsolète) d'iconv et mbstring sont définies, elles prendront le dessus par rapport à la configuration de default_charset pour les fonctions iconv et mbstring, respectivement.

La valeur par défaut pour cette configuration est UTF-8.

php://input est ré-utilisable

php://input peut maintenant être ré-ouvert et lu autant de fois que nécessaire. Ce nouveau mécanisme a permis également de réduire significativement la quantité de mémoire requise lors des opérations POST.

Téléchargement de gros fichiers

Les fichiers de plus de 2 GigaOctets sont maintenant acceptés.

Surcharge d'opérateur avec GMP

Les objets GMP supportent maintenant la surcharge des opérateurs et le transtypage en types scalaires. Ceci permet un code plus expressif en utilisant GMP :

<?php
$a = gmp_init(42);
$b = gmp_init(17);

if (version_compare(PHP_VERSION, '5.6', '<')) {
    echo gmp_intval(gmp_add($a, $b)), PHP_EOL;
    echo gmp_intval(gmp_add($a, 17)), PHP_EOL;
    echo gmp_intval(gmp_add(42, $b)), PHP_EOL;
} else {
    echo $a + $b, PHP_EOL;
    echo $a + 17, PHP_EOL;
    echo 42 + $b, PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

59
59
59

hash_equals() pour la comparaison des chaînes permettant d'éviter les attaques de type timing

La fonction hash_equals() a été ajoutée pour comparer deux chaînes en temps constant. Ceci devrait être utilisé pour éviter les attaques de type timing, par exemple, lors d'un test du hash d'un mot de passe créé via la fonction crypt() (en supposant que vous ne pouvez pas utiliser les fonctions password_hash() et password_verify(), qui ne sont pas sensibles aux attaques de type timing).

<?php
$expected  = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$correct   = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$incorrect = crypt('1234',  '$2a$07$usesomesillystringforsalt$');

var_dump(hash_equals($expected, $correct));
var_dump(hash_equals($expected, $incorrect));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

__debugInfo()

La méthode magique __debugInfo() a été ajoutée pour permettre aux objets de changer les propriétés et les valeurs qui sont affichées lorsque l'objet est affiché en utilisant la fonction var_dump().

<?php
class C {
    private $prop;

    public function __construct($val) {
        $this->prop = $val;
    }

    public function __debugInfo() {
        return [
            'propSquared' => $this->prop ** 2,
        ];
    }
}

var_dump(new C(42));
?>

L'exemple ci-dessus va afficher :

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}

Algorithme de hashage gost-crypto

L'algorithme de hashage gost-crypto a été ajouté. Il implémente la fonction de hashage GOST, en utilisant les tables CryptoPro S-box tel que spécifié par la » RFC 4357, section 11.2.

Améliorations SSL/TLS

Un large éventail d'améliorations a été réalisé sur le support SSL/TLS en PHP 5.6. Ceci inclut l'activation de la vérification par paire par défaut, supportant la correspondance des certificats d'empreintes, permettant de limiter les attaques à la renégociation TLS, ainsi que plusieurs nouvelles options de contexte SSL permettant un contrôle plus fin du protocole et des vérifications des configurations lors de l'utilisation des flux cryptés.

Ces modifications sont décrites en détail dans la section sur les changements OpenSSL en PHP 5.6.x du guide de migration.

Support async pgsql

L'extension pgsql supporte désormais les connexions et les requêtes asynchrones, en activant un comportement non-bloquant lors de l'interaction avec une base de données PostgreSQL. Les connexions asynchrones peuvent être établies via la constante PGSQL_CONNECT_ASYNC, et les nouvelles fonctions pg_connect_poll(), pg_socket(), pg_consume_input() et pg_flush() peuvent être utilisées pour gérer les connexions et les requêtes asynchrones.


Fonctionnalités devenues obsolètes en PHP 5.6.x

Appel depuis un contexte incompatible

L'appel de méthodes depuis un contexte incompatible est maintenant obsolète et va générer une erreur E_DEPRECATED au lieu d'une E_STRICT. Le support de ces appels sera retiré dans une version future de PHP.

Un exemple d'un tel appel est :

<?php
class A {
    function f() { echo get_class($this); }
}

class B {
    function f() { A::f(); }
}

(new B)->f();
?>

L'exemple ci-dessus va afficher :

Deprecated: Non-static method A::f() should not be called statically, assuming $this from incompatible context in - on line 7
B

$HTTP_RAW_POST_DATA et always_populate_raw_post_data

always_populate_raw_post_data génère maintenant une erreur E_DEPRECATED quand la variable $HTTP_RAW_POST_DATA est remplie. Le nouveau code devrait utiliser php://input à la place de $HTTP_RAW_POST_DATA, qui sera supprimé dans une version future de PHP. Vous pouvez basculer vers le nouveau comportement (dans lequel $HTTP_RAW_POST_DATA n'est jamais défini, et donc aucune alerte de niveau E_DEPRECATED ne sera générée) en définissant always_populate_raw_post_data à -1.

Configuration de l'encodage iconv et mbstring

Les options de configuration iconv et mbstring relatives à l'encodage sont devenues obsolètes en faveur de l'option default_charset. Les options obsolètes sont :

  • iconv.input_encoding
  • iconv.output_encoding
  • iconv.internal_encoding
  • mbstring.http_input
  • mbstring.http_output
  • mbstring.internal_encoding


Fonctions modifiées

PHP Core

  • crypt() lève maintenant une erreur E_NOTICE si le paramètre salt est omit.
  • substr_compare() accepte désormais 0 pour son paramètre length.
  • unserialize() va désormais échouer si les données linéarisées passées ont été manipulées pour instancier un objet sans appeler son constructeur.

cURL

  • L'envoi de fichier en utilisant la syntaxe @file est maintenant uniquement supporté si l'option CURLOPT_SAFE_UPLOAD est définie à FALSE. CURLFile devrait être utilisé à la place.

Mcrypt

  • Le paramètre source de mcrypt_create_iv() a maintenant pour valeur de défaut MCRYPT_DEV_URANDOM à la place de MCRYPT_DEV_RANDOM.

OpenSSL

  • stream_socket_enable_crypto() permet désormais au paramètre crypto_type d'être optionnel si le contexte SSL de flux inclut la nouvelle option crypto_type.

PostgreSQL

  • pg_insert(), pg_select(), pg_update() et pg_delete() ne sont plus à l'état expérimental.
  • pg_send_execute(),
pg_send_prepare(), pg_send_query()
et pg_send_query_params()  ne bloqueront plus jusqu'à
la fin de l'écriture de la requête si la connexion vers la base est
établie en mode non bloquant.

Reflection

  • ReflectionClass::newInstanceWithoutConstructor() autorise désormais les classes internes non-finales à être instanciées.

XMLReader

  • XMLReader::getAttributeNs() et XMLReader::getAttributeNo() retournent maintenant NULL si l'attribut ne peut être trouvé, comme XMLReader::getAttribute().


Nouvelles fonctions

Date et Temps

  • DateTimeImmutable::createFromMutable()

GMP

  • gmp_root()
  • gmp_rootrem()

Hash

  • hash_equals()

LDAP

  • ldap_escape()
  • ldap_modify_batch()

MySQLi

  • mysqli_get_links_stats()

OCI8

  • oci_get_implicit_resultset()

OpenSSL

  • openssl_get_cert_locations()
  • openssl_x509_fingerprint()
  • openssl_spki_new()
  • openssl_spki_verify()
  • openssl_spki_export_challenge()
  • openssl_spki_export()

PostgreSQL

  • pg_connect_poll()
  • pg_consume_input()
  • pg_flush()
  • pg_socket()

PDO_PGSQL

  • PDO::pgsqlGetNotify()
  • PDO::pgsqlGetPid()

Session

  • session_abort()
  • session_reset()

Zip

  • ZipArchive::setPassword()


OpenSSL changes in PHP 5.6.x

Stream wrappers now verify peer certificates and host names by default when using SSL/TLS

Tous les flux clients cryptés activent désormais la vérification par paire par défaut. Par défaut, ceci va utiliser le CA OpenSSL par défaut pour vérifier la paire de certificat. Dans la plupart des cas, aucune modification n'a besoin d'être faite pour communiquer avec des serveurs et des certificats SSL valides, sachant que les distributeurs configurent généralement OpenSSL pour utiliser les CA connus.

Le CA par défaut peut être écrasé sur une base globale en utilisant les options de configuration openssl.cafile ou openssl.capath, ou via une requête basique en utilisant les options de contexte cafile ou capath.

Bien que ce ne soit pas conseillé en général, il est possible de désactiver la vérification de certificats par paire pour une requête en définissant l'option de contexte verify_peer à FALSE, et pour désactiver la validation du nom des paires, en configurant l'option de contexte verify_peer_name à FALSE.

Certificate fingerprints

Support has been added for extracting and verifying certificate fingerprints. openssl_x509_fingerprint() has been added to extract a fingerprint from an X.509 certificate, and two SSL stream context options have been added: capture_peer_cert to capture the peer's X.509 certificate, and peer_fingerprint to assert that the peer's certificate should match the given fingerprint.

Default ciphers updated

The default ciphers used by PHP have been updated to a more secure list based on the » Mozilla cipher recommendations, with two additional exclusions: anonymous Diffie-Hellman ciphers, and RC4.

This list can be accessed via the new OPENSSL_DEFAULT_STREAM_CIPHERS constant, and can be overridden (as in previous PHP versions) by setting the ciphers context option.

Compression disabled by default

SSL/TLS compression has been disabled by default to mitigate the CRIME attack. PHP 5.4.13 added a disable_compression context option to allow compression to be disabled: this is now set to TRUE (that is, compression is disabled) by default.

Allow servers to prefer their cipher order

The honor_cipher_order SSL context option has been added to allow encrypted stream servers to mitigate BEAST vulnerabilities by preferring the server's ciphers to the client's.

Access the negotiated protocol and cipher

The protocol and cipher that were negotiated for an encrypted stream can now be accessed via stream_get_meta_data() or stream_context_get_options() when the capture_session_meta SSL context option is set to TRUE.

<?php
$ctx = stream_context_create(['ssl' => [
    'capture_session_meta' => TRUE
]]);

$html = file_get_contents('https://google.com/', FALSE, $ctx);
$meta = stream_context_get_options($ctx)['ssl']['session_meta'];
var_dump($meta);
?>

L'exemple ci-dessus va afficher :

array(4) {
  ["protocol"]=>
  string(5) "TLSv1"
  ["cipher_name"]=>
  string(20) "ECDHE-RSA-AES128-SHA"
  ["cipher_bits"]=>
  int(128)
  ["cipher_version"]=>
  string(11) "TLSv1/SSLv3"
}

New options for perfect forward secrecy in encrypted stream servers

Encrypted client streams already support perfect forward secrecy, as it is generally controlled by the server. PHP encrypted server streams using certificates capable of perfect forward secrecy do not need to take any additional action to enable PFS; however a number of new SSL context options have been added to allow more control over PFS and deal with any compatibility issues that may arise.

ecdh_curve

This option allows the selection of a specific curve for use with ECDH ciphers. If not specified, prime256v1 will be used.

dh_param

A path to a file containing parametrs for Diffie-Hellman key exchange, such as that created by the following command:

openssl dhparam -out /path/to/my/certs/dh-2048.pem 2048
single_dh_use

If set to TRUE, a new key pair will be created when using Diffie-Hellman parameters, thereby improving forward secrecy.

single_ecdh_use

If set to TRUE, a new key pair will always be generated when ECDH cipher suites are negotiated. This improves forward secrecy.

SSL/TLS version selection

It is now possible to select specific versions of SSL and TLS via the crypto_method SSL context option or by specifying a specific transport when creating a stream wrapper (for example, by calling stream_socket_client() or stream_socket_server()).

The crypto_method SSL context option accepts a bitmask enumerating the protocols that are permitted, as does the crypto_type of stream_socket_enable_crypto().

Selected protocol versions and corresponding options
Protocol(s) | Client flag | Server flag | Transport
Any TLS or SSL version | STREAM_CRYPTO_METHOD_ANY_CLIENT | STREAM_CRYPTO_METHOD_ANY_SERVER | ssl://
Any TLS version | STREAM_CRYPTO_METHOD_TLS_CLIENT | STREAM_CRYPTO_METHOD_TLS_SERVER | tls://
TLS 1.0 | STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_0_SERVER | tlsv1.0://
TLS 1.1 | STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_1_SERVER | tlsv1.1://
TLS 1.2 | STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_2_SERVER | tlsv1.2://
SSL 3 | STREAM_CRYPTO_METHOD_SSLv3_CLIENT | STREAM_CRYPTO_METHOD_SSLv3_SERVER | sslv3://
<?php

// Requiring TLS 1.0 or better when using file_get_contents():
$ctx = stream_context_create([
    'ssl' => [
        'crypto_method' => STREAM_CRYPTO_METHOD_TLS_CLIENT,
    ],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// Requiring TLS 1.1 or 1.2:
$ctx = stream_context_create([
    'ssl' => [
        'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT |
                           STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
    ],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// Connecting using the tlsv1.2:// stream socket transport.
$sock = stream_socket_client('tlsv1.2://google.com:443/');

?>

openssl_get_cert_locations() added

The openssl_get_cert_locations() function has been added: it returns the default locations PHP will search when looking for CA bundles.

<?php
var_dump(openssl_get_cert_locations());
?>

L'exemple ci-dessus va afficher :

array(8) {
  ["default_cert_file"]=>
  string(21) "/etc/pki/tls/cert.pem"
  ["default_cert_file_env"]=>
  string(13) "SSL_CERT_FILE"
  ["default_cert_dir"]=>
  string(18) "/etc/pki/tls/certs"
  ["default_cert_dir_env"]=>
  string(12) "SSL_CERT_DIR"
  ["default_private_dir"]=>
  string(20) "/etc/pki/tls/private"
  ["default_default_cert_area"]=>
  string(12) "/etc/pki/tls"
  ["ini_cafile"]=>
  string(0) ""
  ["ini_capath"]=>
  string(0) ""
}

SPKI support

Support has been added for generating, extracting and verifying signed public key and challenges (SPKAC). openssl_spki_new(), openssl_spki_verify(), openssl_spki_export_challenge(), and openssl_spki_export() have been added to create, verify export PEM public key and associated challenge from SPKAC's generated from a KeyGen HTML5 element.

openssl_spki_new

Generates a new SPKAC using private key, challenge string and hashing algorithm.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
?>

L'exemple ci-dessus va afficher :

SPKAC=MIIBXjCByDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3L0IfUijj7+A8CPC8EmhcdNoe5fUAog7OrBdhn7EkxFButUp40P7+LiYiygYG1TmoI/a5EgsLU3s9twEz3hmgY9mYIqb/rb+SF8qlD/K6KVyUORC7Wlz1Df4L8O3DuRGzx6/+3jIW6cPBpfgH1sVuYS1vDBsP/gMMIxwTsKJ4P0CAwEAARYkYjViMzYxMTktNjY5YS00ZDljLWEyYzctMGZjNGFhMjVlMmE2MA0GCSqGSIb3DQEBAwUAA4GBAF7hu0ifzmjonhAak2FhhBRsKFDzXdKIkrWxVNe8e0bZzMrWOxFM/rqBgeH3/gtOUDRS5Fnzyq425UsTYbjfiKzxGeCYCQJb1KJ2V5Ij/mIJHZr53WYEXHQTNMGR8RPm7IxwVXVSHIgAfXsXZ9IXNbFbcaLRiSTr9/N4U+MXUWL7
openssl_spki_verify

Verifies provided SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
var_dump(openssl_spki_verify($spkac));
?>
openssl_spki_export_challenge

Exports associated challenge from provided SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
$challenge = openssl_spki_export_challenge($spkac):
echo $challenge;
?>

L'exemple ci-dessus va afficher :

challenge string
openssl_spki_export

Exports the PEM formatted RSA public key from SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
echo openssl_spki_export($spkac);
?>

L'exemple ci-dessus va afficher :

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcvQh9SKOPv4DwI8LwSaFx02h7
l9QCiDs6sF2GfsSTEUG61SnjQ/v4uJiLKBgbVOagj9rkSCwtTez23ATPeGaBj2Zg
ipv+tv5IXyqUP8ropXJQ5ELtbXPUN/gvw7cO5EbPHr/7eMhbpw8Gl+AfWxW5hLW8
MGw/+AwwjHBOwong/QIDAQAB
-----END PUBLIC KEY-----


Autres modifications dans les extensions

cURL

Un certain nombre de constantes de la bibliothèque cURL, précédemment marqué comme obsolète, ont été supprimés :

  • CURLOPT_CLOSEPOLICY
  • CURLCLOSEPOLICY_CALLBACK
  • CURLCLOSEPOLICY_LEAST_RECENTLY_USED
  • CURLCLOSEPOLICY_LEAST_TRAFFIC
  • CURLCLOSEPOLICY_OLDEST
  • CURLCLOSEPOLICY_SLOWEST

OCI8

  • Le support des jeux de résultats implicites pour Oracle Database 12c a été ajouté via la nouvelle fonction oci_get_implicit_resultset().
  • Utiliser oci_execute($s, OCI_NO_AUTO_COMMIT) pour un SELECT ne lance plus nécessairement un ROLLBACK interne lors la fermeture de la connexion.
  • Ajout de sondes DTrace contrôlées par l'option de configuration --enable-dtrace.
  • oci_internal_debug() n'a plus d'effet.
  • Le format de sortie de phpinfo() pour OCI8 a changé.

Zip

Une option de configuration --with-libzip est ajoutée pour utiliser une installation système de libzip. La version 0.11 de libzip est requise, mais il est recommandé d'utiliser une version 0.11.2 ou plus récente.

MySQLi

Une nouvelle option mysqli.rollback_on_cached_plink a été ajoutée pour remettre les connexions dans le pool des connexions persistentes.


Nouvelles constantes globales

GD

  • IMG_WEBP (depuis PHP 5.6.25)

LDAP

  • LDAP_ESCAPE_DN
  • LDAP_ESCAPE_FILTER

OpenSSL

  • OPENSSL_DEFAULT_STREAM_CIPHERS
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

PostgreSQL

  • PGSQL_CONNECT_ASYNC
  • PGSQL_CONNECTION_AUTH_OK
  • PGSQL_CONNECTION_AWAITING_RESPONSE
  • PGSQL_CONNECTION_MADE
  • PGSQL_CONNECTION_SETENV
  • PGSQL_CONNECTION_SSL_STARTUP
  • PGSQL_CONNECTION_STARTED
  • PGSQL_DML_ESCAPE
  • PGSQL_POLLING_ACTIVE
  • PGSQL_POLLING_FAILED
  • PGSQL_POLLING_OK
  • PGSQL_POLLING_READING
  • PGSQL_POLLING_WRITING


Migration de PHP 5.4.x à PHP 5.5.x

Sommaire

  • Qu'est-ce qui a changé en PHP 5.5.x
  • Modifications entrainant une incompatibilité ascendante
  • Nouvelles fonctionnalités
  • Fonctionnalités devenues obsolètes en PHP 5.5.x
  • Fonctions modifiées
  • Nouvelles fonctions
  • Nouvelles classes et interfaces
  • Nouvelles méthodes
  • Autres modifications dans les extensions
  • Nouvelles constantes globales
  • Modification dans la gestion des fichiers INI
  • Modifications internes à PHP

Voir aussi les guides de migration entre les différentes versions de PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.6.x, et 7.0.x.


Qu'est-ce qui a changé en PHP 5.5.x

La plupart des améliorations de PHP 5.5.x n'ont aucun impact sur le code existant. Il y a quelques incompatibilités ainsi que quelques nouvelles fonctionalités qui devraient être prises en compte, et votre code devrait être testé avant de changer de version de PHP en environnement de production.

Pour les systèmes mis à jour depuis une version de PHP plus ancienne, la documentation correspondante est disponible :

  • Notes de mise à jour pour PHP 5.4.x.
  • Notes de mise à jour pour PHP 5.3.x.
  • Notes de mise à jour pour PHP 5.2.x.
  • Notes de mise à jour pour PHP 5.1.x.
  • Migrer de PHP 4 à PHP 5.


Modifications entrainant une incompatibilité ascendante

Bien que la plupart du code PHP 5 existant devrait fonctionner sans aucune modification, vous devez prendre en considération quelques incompatibilités ascendantes :

Abandon du support de Windows XP et 2003

Le support de Windows XP et 2003 a été supprimé. Les binaires Windows de PHP requièrent maintenant Windows Vista ou supérieur.

La sensibilité à la casse ne dépend plus de la locale utilisée

Toutes les comparaisons insensibles à la casse pour les noms de fonctions, de classes, et de constantes sont maintenant indépendantes de la locale utilisée, et respectent les règles ASCII. Ceci permet une meilleure prise en charge des langues utilisant l'alphabet latin avec des règles d'assemblage inhabituelles, comme le turc et l'azerbaïdjan.

Ceci peut avoir des impacts sur le code qui utilise l'insensibilité à la casse pour des caractères non-ASCII avec des jeux de caractères multi-octets (incluant l'UTF-8), comme les caractères accentués pour de nombreuses langues européennes. Si vous avez du code basé sur des langues non-anglaises, et non-ASCII, alors vous devriez tester que vous n'êtes pas impacté par ce changement de comportement avant de déployer PHP 5.5 en environnement de production.

Modifications des fonctions pack() et unpack()

Des modifications ont été réalisées sur les fonctions pack() et unpack() pour les rendre plus compatible avec Perl :

  • pack() supporte maintenant le code format "Z", dont le comportement est identique à "a".
  • unpack() supporte maintenant le code format "Z" pour les chaînes de caractères complétées avec la valeur NULL, et se comporte comme "a" dans les précédentes versions : il va supprimer les octets NULL finaux.
  • unpack() conserve maintenant les octets NULL finaux lorsque le code format "a" est utilisé.
  • unpack() supprime maintenant les espaces blancs ASCII finaux lorsque le code format "A" est utilisé.

L'écriture de code compatible de façon ascendante qui utilise le code format "a" avec la fonction unpack() requiert l'utilisation de la fonction version_compare(), en raison de cette cassure de compatiblité ascendante.

Par exemple :

<?php
// Ancien code :
$data = unpack('a5', $packed);

// Nouveau code :
if (version_compare(PHP_VERSION, '5.5.0-dev', '>=')) {
  $data = unpack('Z5', $packed);
} else {
  $data = unpack('a5', $packed);
}
?>

self, parent et static sont maintenant insensible à la casse

Avant PHP 5.5, des cas existaient où les mots clés self, parent et static étaient traités de façon sensible à la casse. Ceci a maintenant été résolu, et ces mots clés sont toujours gérés de façon insensible à la casse : SELF::CONSTANT est maintenant traité exactement comme self::CONSTANT.

Suppression des logos PHP GUIDs

Les GUIDs qui permettaient précédemment l'affichage de divers logos PHP ont été supprimés. Ceci inclut la suppression des fonctions qui retournaient ces GUIDs. Voici une liste des fonctions supprimées :

  • php_logo_guid()
  • php_egg_logo_guid()
  • php_real_logo_guid()
  • zend_logo_guid()

Modification dans l'exécution interne

Les auteurs d'extensions devraient noter que la fonction zend_execute() ne peut plus être surchargée, et que de nombreux changements ont été effectués sur la structure execute_data ainsi que sur les fonctions associées et sur les opcodes de gestion de méthodes.

La plupart des extensions ne sont normalement pas affectées par ces modifications, mais celles profondément ancrées dans le moteur Zend le seront, et nous recommandons à leurs auteurs de lire les notes relatives à ces modifications.


Nouvelles fonctionnalités

Ajout des générateurs

Le support des générateurs a été ajouté via le mot clé yield. Les générateurs permettent d'implémenter simplement des itérateurs sans le coût ou la complexité de l'implémentation d'une classe implémentant l'interface Iterator.

Un exemple simple qui ré-implémente la fonction range() sous la forme d'un générateur (ou tout du moins, pour les valeurs positives de step) :

<?php
function xrange($start, $limit, $step = 1) {
    for ($i = $start; $i <= $limit; $i += $step) {
        yield $i;
    }
}

echo 'Chiffres impairs simplement : ';

/*
 * Notez qu'aucun tableau n'est créé ni retourné,
 * ce qui préserve la mémoire.
 */
foreach (xrange(1, 9, 2) as $number) {
    echo "$number ";
}

echo "\n";
?>

L'exemple ci-dessus va afficher :

Chiffres impairs simplement : 1 3 5 7 9

Ajout du mot clé finally

Les blocs try-catch supportent désormais un bloc finally pour le code qui devrait être exécuté indépendamment de la levée ou non d'une exception.

Nouvelle API de hachage des mots de passe

Une nouvelle API de hachage des mots de passe existe dorénavant, rendant plus simple la sécurisation des haches et la gestion des mots de passe, en utilisant la même bibliothèque sous-jacente que la fonction crypt(). Voir la documentation sur la fonction password_hash() pour plus de détails.

foreach supporte maintenant list()

La structure de contrôle foreach supporte désormais le découpage de tableaux imbriqués vers des variables distinctes via la structure list(). Par exemple :

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b)) {
    echo "A: $a; B: $b\n";
}
?>

L'exemple ci-dessus va afficher :

A: 1; B: 2
A: 3; B: 4

La documentation complète est disponible sur la page du manuel consacrée à foreach.

empty() supporte les expressions arbitraires

Passer une expression arbitraire au lieu d'une variable à empty() est maintenant supporté. Par exemple :

<?php
function always_false() {
    return false;
}

if (empty(always_false())) {
    echo "Ceci sera affiché.\n";
}

if (empty(true)) {
    echo "Ceci ne sera pas affiché.\n";
}
?>

L'exemple ci-dessus va afficher :

Ceci sera affiché.

Déréférencement litéral des array et string

Les valeurs litérales des array et string peuvent maintenant être déréférencées directement pour accéder aux éléments et caractères individuels :

<?php
echo "Déréférencement d'un tableau : ";
echo [1, 2, 3][0];
echo "\n";

echo "Déréférencement d'une chaîne de caractères : ";
echo 'PHP'[0];
echo "\n";
?>

L'exemple ci-dessus va afficher :

Déréférencement d'un tableau : 1
Déréférencement d'une chaîne de caractères : P

Résolution de nom de classe via ::class

Il est possible d'utiliser ClassName::class pour récupérer un nom de classe qualifié complet ClassName. Par exemple :

<?php
namespace Name\Space;
class ClassName {}

echo ClassName::class;

echo "\n";
?>

L'exemple ci-dessus va afficher :

Name\Space\ClassName

Ajout de l'extension OPcache

Le cache opcode Zend Optimiser+ a été ajouté à PHP comme nouvelle extension OPcache. OPcache améliore les performances de PHP en stockant le bytecode précompilé du script en mémoire partagée, faisant ainsi qu'il n'est plus nécessaire pour PHP de charger et d'analyser les scripts à chaque requête. Voir les instructions d'installation pour plus de détails sur l'activation et l'utilisation d'OPcache.

La structure foreach supporte maintenant les clés non-scalaires

La structure foreach supporte maintenant des clés de tout type. Malgré le fait que les clés non-scalaires ne peuvent survenir dans des tableaux PHP natifs, il est possible pour la méthode Iterator::key() de retourner une valeur de n'importe quel type, et ceci est maintenant correctement géré.

Le gestionnaire Apache 2.4 est maintenant supporté sous Windows

Le gestionnaire SAPI Apache 2.4 est maintenant supporté sous Windows.

Amélioration dans GD

Diverses améliorations ont été réalisées dans l'extension GD, incluant :

  • Support du retournement en utilisant la nouvelle fonction imageflip().
  • Support avancé de la découpe, en utilisant les fonctions imagecrop() & imagecropauto().
  • Support de la lecture et de l'écriture du format WebP en utilisant respectivement les fonctions imagecreatefromwebp() & imagewebp().


Fonctionnalités devenues obsolètes en PHP 5.5.x

Obsolescence de l'extension ext/mysql

L'extension MySQL originale est maintenant obsolète, et génèrera des alertes de niveau E_DEPRECATED lors de la connexion à une base de données. A la place, utilisez l'extension MySQLi ou l'extension PDO_MySQL.

Modificateur /e de la fonction preg_replace()

Le modificateur /e de la fonction preg_replace() est maintenant obsolète. A la place, utilisez la fonction preg_replace_callback().

Obsolescences dans l'extension intl

La méthode IntlDateFormatter::setTimeZoneID() et la fonction datefmt_set_timezone_id() deviennent obsolètes. Utilisez à la place, respectivement, la méthode IntlDateFormatter::setTimeZone() et la fonction datefmt_set_timezone().

Obsolescences dans l'extension mcrypt

Les fonctions suivantes sont désormais obsolètes :

  • mcrypt_cbc()
  • mcrypt_cfb()
  • mcrypt_ecb()
  • mcrypt_ofb()


Fonctions modifiées

PHP Core

  • La fonction set_error_handler() peut désormais être appelée avec NULL comme argument pour réinitialiser le gestionnaire d'erreur.
  • Lorsqu'appelées avec NULL, la fonction set_error_handler() et la fonction set_exception_handler() retournent désormais le gestionnaire d'erreur ou d'exception, respectivement.
  • json_encode() accepte maintenant le paramètre depth.
  • Le comportement de la fonction pack() et de la fonction unpack() avec les codes format "a" et "A" a changé. Des notes détaillées sur ces modifications sont disponibles.

intl

  • La méthode MessageFormatter::format() ainsi que les fonctions associées acceptent maintenant les arguments nommés en plus des arguments numériques, lorsque PHP est lié à ICU 4.8 ou supérieur.
  • La méthode MessageFormatter::format() ainsi que les fonctions associées ne produisent plus d'erreur lorsque le nombre d'arguments fournis n'est pas suffisant. Au lieu de cela, les marqueurs ne seront pas substitués.
  • Les méthodes MessageFormatter::format() et MessageFormatter::parse() ne sont plus limitées à une précision à la seconde lors de l'utilisation de durées.
  • La méthode IntlDateFormatter::__construct() et la fonction datefmt_create() acceptent maintenant des objets IntlTimeZone et DateTimeZone pour l'argument timezone et des objets IntlCalendar pour l'argument calendar. De plus, si le fuseau horaire est omis et que le paramètre calendar ne spécifie pas une durée temporelle, le fuseau horaire par défaut de PHP, issu de la directive date_default_timezone_get() sera alors utilisé au lieu du fuseau horaire par défaut d'ICU.
  • La méthode IntlDateFormatter::getCalendar() et la fonction datefmt_get_calendar() retournent FALSE si l'objet IntlDateFormatter a été créé avec une instance IntlCalendar au lieu d'une des constantes de IntlDateFormatter.
  • La méthode IntlDateFormatter::setCalendar() et la fonction datefmt_set_calendar() acceptent désormais des objets IntlCalendar en plus des constantes de IntlDateFormatter.
  • La méthode IntlDateFormatter::format() et la fonction datefmt_format() acceptent désormais les objets IntlCalendar.


Nouvelles fonctions

Coeur de PHP

  • array_column()
  • boolval()
  • json_last_error_msg()
  • password_get_info()
  • password_hash()
  • password_needs_rehash()
  • password_verify()

Hash

  • hash_pbkdf2()

OpenSSL

  • openssl_pbkdf2()

cURL

  • curl_escape()
  • curl_file_create()
  • curl_multi_setopt()
  • curl_multi_strerror()
  • curl_pause()
  • curl_reset()
  • curl_share_close()
  • curl_share_init()
  • curl_share_setopt()
  • curl_strerror()
  • curl_unescape()

GD

  • imageaffinematrixconcat()
  • imageaffinematrixget()
  • imagecrop()
  • imagecropauto()
  • imageflip()
  • imagepalettetotruecolor()
  • imagescale()

MySQLi

  • mysqli_begin_transaction()
  • mysqli_release_savepoint()
  • mysqli_savepoint()

PostgreSQL

  • pg_escape_literal()
  • pg_escape_identifier()

Sockets

  • socket_sendmsg()
  • socket_recvmsg()
  • socket_cmsg_space()

CLI

  • cli_get_process_title()
  • cli_set_process_title()

Intl

  • datefmt_format_object()
  • datefmt_get_calendar_object()
  • datefmt_get_timezone()
  • datefmt_set_timezone()
  • datefmt_get_calendar_object()
  • intlcal_create_instance()
  • intlcal_get_keyword_values_for_locale()
  • intlcal_get_now()
  • intlcal_get_available_locales()
  • intlcal_get()
  • intlcal_get_time()
  • intlcal_set_time()
  • intlcal_add()
  • intlcal_set_time_zone()
  • intlcal_after()
  • intlcal_before()
  • intlcal_set()
  • intlcal_roll()
  • intlcal_clear()
  • intlcal_field_difference()
  • intlcal_get_actual_maximum()
  • intlcal_get_actual_minimum()
  • intlcal_get_day_of_week_type()
  • intlcal_get_first_day_of_week()
  • intlcal_get_greatest_minimum()
  • intlcal_get_least_maximum()
  • intlcal_get_locale()
  • intlcal_get_maximum()
  • intlcal_get_minimal_days_in_first_week()
  • intlcal_get_minimum()
  • intlcal_get_time_zone()
  • intlcal_get_type()
  • intlcal_get_weekend_transition()
  • intlcal_in_daylight_time()
  • intlcal_is_equivalent_to()
  • intlcal_is_lenient()
  • intlcal_is_set()
  • intlcal_is_weekend()
  • intlcal_set_first_day_of_week()
  • intlcal_set_lenient()
  • intlcal_equals()
  • intlcal_get_repeated_wall_time_option()
  • intlcal_get_skipped_wall_time_option()
  • intlcal_set_repeated_wall_time_option()
  • intlcal_set_skipped_wall_time_option()
  • intlcal_from_date_time()
  • intlcal_to_date_time()
  • intlcal_get_error_code()
  • intlcal_get_error_message()
  • intlgregcal_create_instance()
  • intlgregcal_set_gregorian_change()
  • intlgregcal_get_gregorian_change()
  • intlgregcal_is_leap_year()
  • intltz_create_time_zone()
  • intltz_create_default()
  • intltz_get_id()
  • intltz_get_gmt()
  • intltz_get_unknown()
  • intltz_create_enumeration()
  • intltz_count_equivalent_ids()
  • intltz_create_time_zone_id_enumeration()
  • intltz_get_canonical_id()
  • intltz_get_region()
  • intltz_get_tz_data_version()
  • intltz_get_equivalent_id()
  • intltz_use_daylight_time()
  • intltz_get_offset()
  • intltz_get_raw_offset()
  • intltz_has_same_rules()
  • intltz_get_display_name()
  • intltz_get_dst_savings()
  • intltz_from_date_time_zone()
  • intltz_to_date_time_zone()
  • intltz_get_error_code()
  • intltz_get_error_message()

SPL

  • SplFixedArray::__wakeup()


Nouvelles classes et interfaces

cURL

  • CURLFile

Date et Heure

  • DateTimeImmutable
  • DateTimeInterface

Intl

  • IntlCalendar
  • IntlGregorianCalendar
  • IntlTimeZone
  • IntlBreakIterator
  • IntlRuleBasedBreakIterator
  • IntlCodePointBreakIterator


Nouvelles méthodes

MySQLi

  • mysqli::begin_transaction()
  • mysqli::release_savepoint()
  • mysqli::savepoint()

Intl

  • IntlDateFormatter::formatObject()
  • IntlDateFormatter::getCalendarObject()
  • IntlDateFormatter::getTimeZone()
  • IntlDateFormatter::setTimeZone()


  • « Nouvelles méthodes
  • Nouvelles constantes globales »
  • PHP Manual
  • Migration de PHP 5.4.x à PHP 5.5.x
  • Autres modifications dans les extensions

Autres modifications dans les extensions

Intl

L'extension intl requiert désormais ICU 4.0 ou supérieur.


Nouvelles constantes globales

GD

  • IMG_AFFINE_TRANSLATE
  • IMG_AFFINE_SCALE
  • IMG_AFFINE_ROTATE
  • IMG_AFFINE_SHEAR_HORIZONTAL
  • IMG_AFFINE_SHEAR_VERTICAL
  • IMG_CROP_DEFAULT
  • IMG_CROP_TRANSPARENT
  • IMG_CROP_BLACK
  • IMG_CROP_WHITE
  • IMG_CROP_SIDES
  • IMG_FLIP_BOTH
  • IMG_FLIP_HORIZONTAL
  • IMG_FLIP_VERTICAL
  • IMG_BELL
  • IMG_BESSEL
  • IMG_BICUBIC
  • IMG_BICUBIC_FIXED
  • IMG_BLACKMAN
  • IMG_BOX
  • IMG_BSPLINE
  • IMG_CATMULLROM
  • IMG_GAUSSIAN
  • IMG_GENERALIZED_CUBIC
  • IMG_HERMITE
  • IMG_HAMMING
  • IMG_HANNING
  • IMG_MITCHELL
  • IMG_POWER
  • IMG_QUADRATIC
  • IMG_SINC
  • IMG_NEAREST_NEIGHBOUR
  • IMG_WEIGHTED4
  • IMG_TRIANGLE

JSON

  • JSON_ERROR_RECURSION
  • JSON_ERROR_INF_OR_NAN
  • JSON_ERROR_UNSUPPORTED_TYPE

MySQLi

L'option MYSQLI_SERVER_PUBLIC_KEY a été ajoutée pour une utilisation avec la fonction mysqli_options().


Modification dans la gestion des fichiers INI

Intl

La directive de configuration intl.use_exceptions a été ajoutée, laquelle contrôle le comportement d'intl lorsque des erreurs globales surviennent, en conjonction avec la directive de configuration existante intl.error_level.

MySQLnd

La directive de configuration mysqlnd.sha256_server_public_key a été ajoutée pour permettre à mysqli d'utiliser le nouveau protocole d'authentification MySQL.


Modifications internes à PHP

  • Les extensions ne peuvent plus surcharger zend_execute() et devraient désormais surcharger zend_execute_ex() à la place. EG(current_execute_data) est déjà initialisé dans zend_execute_ex(), donc, pour rester compatible, les extensions peuvent avoir à utiliser EG(current_execute_data)->prev_execute_data à la place.
  • Suppression de EG(arg_types_stack), EX(fbc), EX(called_scope) et EX(current_object).
  • Ajout de op_array->nested_calls, qui est calculé au moment de la compilation.
  • Ajout de EX(call_slots), qui est un tableau permettant de stocker des informations sur les appels imbriqués (i.e. foo(bar())) et est pré-alloué avec execute_data.
  • Ajout de EX(call), qui est un pointeur vers la fonction appelante courante, et est un élément de EX(call_slots).
  • Les opcodes INIT_METHOD_CALL, ZEND_INIT_STATIC_METHOD_CALL, ZEND_INIT_FCALL_BY_NAME et ZEND_INIT_NS_FCALL_BY_NAME utilisent result.num comme index dans EX(call_slots).
  • L'opcode ZEND_NEW utilise extended_value comme index dans EX(call_slots).
  • Les opcodes ZEND_DO_FCALL et ZEND_DO_FCALL_BY_NAME utilisent op2.num comme index dans EX(call_slots).
  • Ajout de op_array->used_stack, qui est calculé lors de la compilation ; l'espace de la pile correspondant est pré-alloué avec execute_data. Comme résultat, les opcodes ZEND_SEND* et ZEND_DO_FCALL* n'ont plus besoin de vérifier les éventuels dépassements de pile.
  • Suppression du champ execute_data->Ts. Les variables temporaires VM sont toujours allouées immédiatement avant la structure execute_data, et sont maintenant accédées par leur position depuis le pointeur de base execute_data au lieu d'utiliser execute_data->Ts. Le compilateur stocke les nouvelles positions dans op_array->opcodes[*].op?.num. Les macros EX_TMP_VAR() et EX_TMP_VAR_NUM() peuvent être utilisées pour accéder aux variables temporaires par leur position ou leur numéro. Vous pouvez convertir le numéro en position en utilisant EX_TMP_VAR_NUM(0,num) ou la position en numéro en utilisant (EX_TMP_VAR_NUM(0,0)-EX_TMP_VAR(0,offset)).
  • Suppression du champ execute_data->CVs. Les variables VM compilées sont toujours allouées immédiatement après la structure execute_data, et sont désormais accédées par leur position depuis le pointeur de base execute_data au lieu d'utiliser execute_data->CVs. Vous pouvez utiliser la macro EX_CV_NUM() pour accéder aux variables compilées par leur numéro.


Migration de PHP 5.3.x à PHP 5.4.x

Sommaire

  • Ce qui a changé dans PHP 5.4.x
  • Évolutions incompatibles avec les versions précédentes
  • Nouveautés
  • Evolutions des modules SAPI
  • Fonctionnalités obsolètes en PHP 5.4.x
  • Nouveaux paramètres
  • Nouvelles fonctions
  • Nouvelles Classes et Interfaces
  • Nouvelles méthodes
  • Extensions retirées
  • Autres changements aux extensions
  • Nouvelles constantes globales
  • Changement dans les paramètres INI
  • Autres changements

Voir aussi les guides de migration entre les différentes versions de PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x et 5.5.x.


Ce qui a changé dans PHP 5.4.x

La plupart des améliorations de PHP 5.4 n'impactent pas le code existant. Il existe quelques incompatibilités et nouvelles fonctionalités qui doivent être comprises, et le code devrait être testé avant de migrer un environnement de production.

Si le système est mis à jour à partir d'une version de PHP plus ancienne, les documentations suivantes sont recommandées :

  • Notes de migration pour PHP 5.3.x.
  • Notes de migration pour PHP 5.2.x.
  • Notes de migration pour PHP 5.1.x.
  • Notes de migration pour PHP 4 vers PHP 5.


Évolutions incompatibles avec les versions précédentes

Même si l'essentiel du code PHP 5 devrait fonctionner sans modification, il faut faire attention aux situations suivantes, qui sont incompatibles avec les versions précédentes :

  • Safe mode n'est plus supporté. Toute application se reposant sur ce paramètre devra être revue, notamment en termes de sécurité.
  • Magic quotes ont été supprimées. Toute application se reposant sur ce paramètre devra être revue, notamment en termes de sécurité. get_magic_quotes_gpc() et get_magic_quotes_runtime() retournent désormais toujours FALSE. set_magic_quotes_runtime() lève une erreur E_CORE_ERROR lorsque vous tentez d'activer les guillemets magiques.
  • Les directives du php.ini register_globals et register_long_arrays ont été supprimées.
  • mbstring.script_encoding directives a été retiré. Préférez zend.script_encoding à la place.
  • Call-time pass by reference a été supprimé.
  • Les instructions break et continue n'acceptent plus de paramètre variable (exemple: break 1 + foo() * $bar;). Les arguments statiques fonctionnent toujours, par exemple break 2;. Un effet de bord de cette modification est que break 0; et continue 0; ne sont plus autorisés.
  • Dans l'extension Date et Heure, le fuseau ne peut plus être défini au moyen de la variable d'environnement TZ. Vous devez préciser un fuseau horaire en utilisant l'option de php.ini date.timezone ou la fonction date_default_timezone_set(). PHP n'essayera plus de deviner le fuseau horaire et utilisera par défaut "UTC" tout en émettant une alerte de niveau E_WARNING.
  • Les index de tableaux non numériques concernant les chaines - exemple: $a['foo'] où $a est une chaine - retournent maintenant false sur un isset() et true sur un empty(), et produisent une alerte de niveau E_WARNING si vous les utilisez. Les index de type flottant, bool et null produisent une alerte de niveau E_NOTICE. Les index de type chaine numérique (exemple: $a['2']) fonctionnent comme avant. Notez que les index tels que '12.3' et '5 foobar' sont considérés comme non-numériques et produisent une alerte de niveau E_WARNING, mais sont convertis vers 12 et 5 respectivement, pour des raisons de compatibilité. Note : Le code suivant retourne un résultat différent. $str='abc';var_dump(isset($str['x'])); // false en PHP 5.4 ou supérieure, mais true en 5.3 ou inférieure
  • Convertir un tableau en chaine génère maintenant une erreur E_NOTICE, mais le résultat du transtypage reste le même : la chaine "Array".
  • Transformer NULL, FALSE, ou une chaine vide en objet en lui ajoutant un attribut génère maintenant une erreur E_WARNING, au lieu de E_STRICT.
  • Des noms de paramètres qui masqueraient une super globale entrainent désormais une erreur fatale. Ceci interdit du code comme celui-ci : function foo($_GET, $_POST) {}.
  • Les algorithmes de hash Salsa10 et Salsa20 ont été retirés.
  • array_combine() retourne maintenant array() au lieu de FALSE lorsque vous lui passez deux tableaux vides comme paramètres.
  • Si vous utilisez htmlentities() avec un jeu de caractères asiatique, elle fonctionnera comme htmlspecialchars() - ça a toujours été le cas avec les versions précédentes de PHP, mais maintenant, une erreur E_STRICT sera levée.
  • Le troisième paramètre de la fonction ob_start() a changé de type passant d'un booléen nommé erase à un entier nommé flags. Notez que la code qui définit explicitement le paramètre erase à FALSE ne fonctionnera plus comme attendu en PHP 5.4 : veuillez suivre cet exemple afin d'écrire du code compatible avec PHP 5.3 et 5.4.

Les mots-clé suivants sont maintenant réservés, et ne peuvent plus être utilisés dans les noms de fonctions, de classes, etc.

  • trait
  • callable
  • insteadof

Les fonctions suivantes ont été supprimées :

  • define_syslog_variables()
  • import_request_variables()
  • session_is_registered(), session_register() et session_unregister().
  • Les alias
mysqli_bind_param(), mysqli_bind_result(),
mysqli_client_encoding(), mysqli_fetch(),
mysqli_param_count(), mysqli_get_metadata(),
mysqli_send_long_data(), mysqli::client_encoding(), et mysqli_stmt::stmt().


Nouveautés

PHP 5.4.0 apporte un large éventail de nouvelles fonctionnalités.

  • Le support des traits a été ajouté.
  • La syntaxe courte des tableaux a été introduite, exemple : $a = [1, 2, 3, 4]; ou $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];.
  • Accès aux index de tableaux en sortie de fonctions, exemple: foo()[0].
  • Les fermetures supportent $this.
  • <?= est désormais toujours disponible, quel que soit le réglage de short_open_tag dans la configuration du php.ini.
  • Accès aux attributs d'un objet dès l'instanciation, exemple: (new Foo)->bar().
  • La syntaxe Class::{expr}() est maintenant supportée.
  • Le format de nombres binaires a été ajouté, exemple : 0b001001101.
  • Messages d'erreurs et d'avertissements améliorés.
  • L'extension de session peut maintenant suivre la progression de l'upload de fichiers.
  • Serveur web embarqué en CLI dédié au développement.


Evolutions des modules SAPI

  • Un nouveau module SAPI nommé cli-server est disponible.
  • Ajout de l'option CLI --rz qui présente des informations sur une Zend extension.
  • Ajout du raccourci #inisetting=value pour changer un paramètre du php.ini à l'exécution en mode CLI interactif.
  • Ajout de fonctions compatibles Apache : apache_child_terminate(), getallheaders(), apache_request_headers() et apache_response_headers() pour la SAPI FastCGI.
  • PHP-FPM : Ajout du paramètre process.max pour contrôler le nombre de processus que FPM peut forker.


  • « Evolutions des modules SAPI
  • Nouveaux paramètres »
  • PHP Manual
  • Migration de PHP 5.3.x à PHP 5.4.x
  • Fonctionnalités obsolètes en PHP 5.4.x

Fonctionnalités obsolètes en PHP 5.4.x

Fonctions obsolètes :

  • mcrypt_generic_end()
  • mysql_list_dbs()


Nouveaux paramètres

Plusieurs fonctions ont reçu de nouveaux paramètres, optionnels, en PHP 5.4.x :

PHP Core :

  • Ajout du paramètre optionnel limit à debug_backtrace() et debug_print_backtrace(), pour limiter le nombre de traces retournées.
  • La fonction is_link() fonctionne maintenant correctement sur les liens symboliques sous Windows Vista et plus récent. Les systèmes plus anciens ne supportent pas les liens symboliques.
  • La fonction parse_url() reconnait maintenant l'hôte lorsqu'un schéma est omis et qu'un séparateur terminal de composant est présent. Depuis PHP 5.4.7.

OpenSSL :

  • Ajout d'une option de non-bourrage aux fonctions openssl_encrypt() et openssl_decrypt().

Intl :

  • idn_to_ascii() et idn_to_utf8() acceptent désormais deux paramètres supplémentaires : un qui indique la variante (IDNA 2003 ou UTS #46), et un autre, passé par référence, pour retourner des détails sur l'opération dans le cas où UTS #46 a été choisie.


Nouvelles fonctions

PHP 5.4 apporte de nouvelles fonctions :

PHP Core :

  • hex2bin()
  • http_response_code()
  • get_declared_traits()
  • getimagesizefromstring()
  • stream_set_chunk_size()
  • socket_import_stream()
  • trait_exists()
  • header_register_callback()

SPL :

  • class_uses()

Session :

  • session_status()
  • session_register_shutdown()

Mysqli :

  • mysqli_error_list()
  • mysqli_stmt_error_list()

Libxml :

  • libxml_set_external_entity_loader()

LDAP :

  • ldap_control_paged_result()
  • ldap_control_paged_result_response()

Intl :

  • transliterator_create()
  • transliterator_create_from_rules()
  • transliterator_create_inverse()
  • transliterator_get_error_code()
  • transliterator_get_error_message()
  • transliterator_list_ids()
  • transliterator_transliterate()

Zlib :

  • zlib_decode()
  • zlib_encode()


Nouvelles Classes et Interfaces

Les classes suivantes ont été ajoutées en PHP 5.4.0 :

SPL :

  • CallbackFilterIterator
  • RecursiveCallbackFilterIterator

Reflection :

  • ReflectionZendExtension

Json :

  • JsonSerializable

Session :

  • SessionHandler
  • SessionHandlerInterface

Snmp :

  • SNMP

Intl :

  • Transliterator
  • Spoofchecker


Nouvelles méthodes

PHP 5.4.0 ajoute de nombreuses nouvelles méthodes :

XSL :

  • XsltProcessor::setSecurityPrefs()
  • XsltProcessor::getSecurityPrefs()

SPL :

  • RegexIterator::getRegex()
  • SplObjectStorage::getHash()
  • DirectoryIterator::getExtension()
  • SplDoublyLinkedList::serialize()
  • SplDoublyLinkedList::unserialize()
  • SplFileInfo::getExtension()
  • SplFileObject::fputcsv()
  • SplQueue::serialize()
  • SplQueue::unserialize()
  • SplStack::serialize()
  • SplStack::unserialize()
  • SplTempFileObject::fputcsv()

Reflection :

  • ReflectionExtension::isPersistent()
  • ReflectionExtension::isTemporary()
  • ReflectionClass::isCloneable()

Closure :

  • Closure::bind()
  • Closure::bindTo()

PDO_dblib :

  • PDO::newRowset()

StreamWrapper :

  • StreamWrapper::stream_metadata()
  • StreamWrapper::stream_truncate()


Extensions retirées

Ces extensions ont été déplacées vers PECL, et ne font plus partie de la distribution PHP. Les paquets PECL de ces extensions seront créés en fonction de la demande des utilisateurs.

  • sqlite - Notez que ext/sqlite3 et ext/pdo_sqlite ne sont pas affectées.


Autres changements aux extensions

Quelques autres changements de comportement d'extensions, et de nouvelles fonctionnalités :

  • mysqli - mysqli_result implémente désormais Traversable
  • pdo_mysql - Suppression du support de liaison avec les bibliothèques clientes MySQL plus vieilles que 4.1
  • Les extensions MySQL mysql, mysqli et PDO_mysql utilisent désormais mysqlnd par défaut. Il reste possible d'utiliser libmysqlclient au moyen du script configure.
  • mysqlnd - Ajout du support des pipes nommés


Nouvelles constantes globales

PHP Core :

  • ENT_DISALLOWED
  • ENT_HTML401
  • ENT_HTML5
  • ENT_SUBSTITUTE
  • ENT_XML1
  • ENT_XHTML
  • IPPROTO_IP
  • IPPROTO_IPV6
  • IPV6_MULTICAST_HOPS
  • IPV6_MULTICAST_IF
  • IPV6_MULTICAST_LOOP
  • IP_MULTICAST_IF
  • IP_MULTICAST_LOOP
  • IP_MULTICAST_TTL
  • MCAST_JOIN_GROUP
  • MCAST_LEAVE_GROUP
  • MCAST_BLOCK_SOURCE
  • MCAST_UNBLOCK_SOURCE
  • MCAST_JOIN_SOURCE_GROUP
  • MCAST_LEAVE_SOURCE_GROUP

Curl :

  • CURLOPT_MAX_RECV_SPEED_LARGE
  • CURLOPT_MAX_SEND_SPEED_LARGE

LibXML :

  • LIBXML_HTML_NODEFDTD
  • LIBXML_HTML_NOIMPLIED
  • LIBXML_PEDANTIC

OpenSSL :

  • OPENSSL_CIPHER_AES_128_CBC
  • OPENSSL_CIPHER_AES_192_CBC
  • OPENSSL_CIPHER_AES_256_CBC
  • OPENSSL_RAW_DATA
  • OPENSSL_ZERO_PADDING

Output buffering :

  • PHP_OUTPUT_HANDLER_CLEAN
  • PHP_OUTPUT_HANDLER_CLEANABLE
  • PHP_OUTPUT_HANDLER_DISABLED
  • PHP_OUTPUT_HANDLER_FINAL
  • PHP_OUTPUT_HANDLER_FLUSH
  • PHP_OUTPUT_HANDLER_FLUSHABLE
  • PHP_OUTPUT_HANDLER_REMOVABLE
  • PHP_OUTPUT_HANDLER_STARTED
  • PHP_OUTPUT_HANDLER_STDFLAGS
  • PHP_OUTPUT_HANDLER_WRITE

Sessions :

  • PHP_SESSION_ACTIVE
  • PHP_SESSION_DISABLED
  • PHP_SESSION_NONE

Streams :

  • STREAM_META_ACCESS
  • STREAM_META_GROUP
  • STREAM_META_GROUP_NAME
  • STREAM_META_OWNER
  • STREAM_META_OWNER_NAME
  • STREAM_META_TOUCH

Zlib :

  • ZLIB_ENCODING_DEFLATE
  • ZLIB_ENCODING_GZIP
  • ZLIB_ENCODING_RAW

Intl :

  • U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR
  • IDNA_CHECK_BIDI
  • IDNA_CHECK_CONTEXTJ
  • IDNA_NONTRANSITIONAL_TO_ASCII
  • IDNA_NONTRANSITIONAL_TO_UNICODE
  • INTL_IDNA_VARIANT_2003
  • INTL_IDNA_VARIANT_UTS46
  • IDNA_ERROR_EMPTY_LABEL
  • IDNA_ERROR_LABEL_TOO_LONG
  • IDNA_ERROR_DOMAIN_NAME_TOO_LONG
  • IDNA_ERROR_LEADING_HYPHEN
  • IDNA_ERROR_TRAILING_HYPHEN
  • IDNA_ERROR_HYPHEN_3_4
  • IDNA_ERROR_LEADING_COMBINING_MARK
  • IDNA_ERROR_DISALLOWED
  • IDNA_ERROR_PUNYCODE
  • IDNA_ERROR_LABEL_HAS_DOT
  • IDNA_ERROR_INVALID_ACE_LABEL
  • IDNA_ERROR_BIDI
  • IDNA_ERROR_CONTEXTJ

Json :

  • JSON_PRETTY_PRINT
  • JSON_UNESCAPED_SLASHES
  • JSON_NUMERIC_CHECK
  • JSON_UNESCAPED_UNICODE
  • JSON_BIGINT_AS_STRING


Changement dans les paramètres INI

Les paramètres suivants ont été supprimés du php.ini :

  • register_globals et register_long_arrays
  • magic_quotes_gpc, magic_quotes_runtime, et magic_quotes_sybase
  • allow_call_time_pass_reference
  • define_syslog_variables
  • highlight.bg
  • session.bug_compat_42 et session.bug_compat_warn
  • mbstring.script_encoding
  • y2k_compliance
  • safe_mode, safe_mode_gid, safe_mode_include_dir, safe_mode_exec_dir, safe_mode_allowed_env_vars, et safe_mode_protected_env_vars

Les directives suivantes ont été ajoutées à php.ini :

  • cli.pager et cli.prompt pour la SAPI CLI en mode interactif et en utilisant readline.
  • cli_server.color pour permettre au serveur web interne dédié au développement d'utiliser les couleurs de codage ANSI dans la sortie du terminal.
  • max_input_vars - précise combien de variables GET/POST/COOKIE en entrée peuvent être acceptées.
  • zend.multibyte - pour contrôler le nouveau support multibyte.
  • zend.script_encoding - Cette valeur sera utilisée, à moins qu'une directive "declare(encoding=...)" n'apparaisse en haut du script.
  • zend.signal_check - pour vérifier l'existence de gestionnaires de signaux lors de l'arrêt.
  • session.upload_progress.enabled, session.upload_progress.cleanup, session.upload_progress.prefix, session.upload_progress.name, session.upload_progress.freq, session.upload_progress.min_freq
  • enable_post_data_reading - Si désactivée, les données POST ne sont pas lues ni traitées.
  • windows_show_crt_warning - Cette directive affiche les warnings Windows CRT lorsqu'elle est active. Ces warnings étaient jusqu'à présent affichés par défaut.

Les directives du php.ini suivantes ont changé :

  • session.entropy_file vaut maintenant par défaut /dev/random ou /dev/urandom en fonction de l'implémentation découverte à la compilation.
  • session.entropy_length vaut maintenant 32 par défaut.


Autres changements

  • Le jeu de caractères par défaut pour htmlspecialchars() et htmlentities() est maintenant UTF-8, au lieu de ISO-8859-1. Notez que modifier votre jeu de caractères de sortie via l'option de configuration default_charset n'affecte pas les fonctions htmlspecialchars/htmlentities, à moins que ne vous passiez "" (une chaîne vide) comme argument d'encodage lors de vos appels aux fonctions htmlspecialchars()/htmlentities(). Généralement, nous ne vous recommandons pas de faire ceci, car vous devriez pouvoir modifier le jeu de caractères de sortie sans affecter le jeu de caractères utilisé par ces fonctions. L'approche la plus sûre est de définir explicitement le jeu de caractères lors de chaque appel aux fonctions htmlspecialchars() et htmlentities().
  • E_ALL inclut maintenant E_STRICT dans la directive de configuration error_reporting.
  • SNMP possède désormais une API orientée objet. Les fonctions retournent maintenant FALSE pour toute erreur rencontrée, y compris les erreurs SNMP (no such instance, end of MIB, etc). Ceci casse en particulier la compatibilité des fonctions get/walk qui retournaient auparavant une chaine vide en cas d'erreur SNMP. Les requêtes multi OID get/getnext/set sont à présent supportées. Suppression du support compatibilité UCD-SNMP, mettez à jour vers net-snmp v5.3+, Net-SNMP v5.4+ est requis pour Windows. Afin d'ajouter le support de noms DNS IPv6, la résolution de l'agent SNMP distant (peer) est maintenant effectuée directement dans l'extension, et plus dans la bibliothèque Net-SNMP.
  • OpenSSL supporte désormais AES.
  • La SAPI CLI ne s'arrête plus en cas d'erreurs fatales, en mode interactif avec le support readline.
  • $_SERVER['REQUEST_TIME_FLOAT'] a été ajoutée pour inclure une précision à la micro-seconde.
  • Nouveaux algorithmes hash : fnv132, fnv164, joaat
  • Le chainage des index de tableau pour les chaines est maintenant possible - par exemple : $a[0][0] avec $a étant une chaine de caractères.
  • Le transtypage en tableau depuis SimpleXMLElement contient maintenant tous les noeuds, plutôt que simplement le premier correspondant. Tous les enfants de SimpleXMLElement sont à présent toujours affichés lors de l'utilisation des fonctions var_dump(), var_export() et print_r().
  • Il est maintenant possible de forcer les arguments de la méthode __construct d'une classe fille, via le constructeur abstrait de sa classe mère.


Migration de PHP 5.2.x vers PHP 5.3.x

Sommaire

  • Ce qui change en PHP 5.3.x
  • Évolutions incompatibles avec les versions précédentes
  • Nouvelles fonctionnalités
  • Évolutions du support de Windows
  • Évolutions des modules SAPI
  • Fonctionnalités obsolètes en PHP 5.3.x
  • Restauration de fonctionnalités dans PHP 5.3.x
  • Nouveaux paramètres
  • Nouvelles fonctions
  • Nouveaux gestionnaires de flux
  • Nouveaux filtres de flux
  • Nouvelles constantes de classe
  • Nouvelles méthodes
  • Nouvelles extensions
  • Extensions retirées
  • Autres changements aux extensions
  • Nouvelles classes
  • Nouvelles constantes globales
  • Modifications à la gestion du fichier INI
  • Autres changements

Voir aussi les guides de migration entre les différentes versions de PHP 5.0.x, 5.1.x, 5.2.x, 5.4.x, 5.5.x et 5.6.x.


Ce qui change en PHP 5.3.x

La majorité des améliorations de PHP 5.3.x n'ont pas d'impact sur le code existant. Il existe quelques incompatibilités et de nouvelles fonctionnalités qui doivent être prises en compte, et le code doit être testé avant de changer les versions en production.

Si le système est mis à jour à partir d'une vieille version de PHP, alors les documentations suivantes sont recommandées :

  • Notes de migration pour PHP 5.2.x.
  • Notes de migration pour PHP 5.1.x.
  • Notes de migration pour PHP 4 vers PHP 5.


Évolutions incompatibles avec les versions précédentes

Même si l'essentiel du code PHP 5 va fonctionner sans modification, il faut faire attention aux situations suivantes, qui sont incompatibles avec les versions précédentes :

  • L'API interne d'analyse des paramètres a été appliquée à toute les extensions qui sont livrées avec PHP 5.3. Cette API retourne NULL si des paramètres incompatibles sont passés à la fonction. Il existe quelques exceptions, comme la fonction get_class() qui va retourner FALSE en cas d'erreur.
  • clearstatcache() ne vide pas le cache de chemins de la fonction realpath() par défaut.
  • realpath() est maintenant indépendant du système, et fonctionne sur toutes les plate-formes. Ceci a pour conséquence que les chemins relatifs incorrects comme __FILE__ . "/../x" ne fonctionnent plus.
  • Les fonctions call_user_func() et similaires propagent la variable $this, même si la fonction appelante est la classe parente.
  • Les fonctions de tableaux : natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip() et array_unique() n'acceptent plus les objets passés comme arguments. Si vous avez besoin d'accéder à leurs propriétés comme dans un tableau, il faudra commencer par transtyper les objets en tableau.
  • Le comportement des fonctions qui ont des paramètres par référence mais sont passés par valeur a changé. Alors que la fonction acceptait des arguments par valeur, une erreur fatale est maintenant émise. L'ancien code qui passait des constantes ou des valeurs à une fonction qui attendait des références doit être modifié pour assigner la valeur à une variable avant d'appeler la fonction.
  • La nouvelle bibliothèque mysqlnd impose l'utilisation du nouveau format de mot de passe de MySQL 4.1 (et plus récent). L'utilisation du vieux format de 16 octets fait que mysql_connect() produit le message d'erreur suivant : "mysqlnd cannot connect to MySQL 4.1+ using old authentication".
  • La nouvelle bibliothèque mysqlnd ne lit pas les fichiers de configuration MySQL (my.cnf/my.ini), alors que l'ancienne bibliothèque libmysqlclient le faisait. Si votre code utilise les paramètres des fichiers de configuration MySQL, vous pouvez les charger explicitement en utilisant la fonction mysqli_options(). Notez que cela signifie que les constantes spécifiques PDO::MYSQL_ATTR_READ_DEFAULT_FILE et PDO::MYSQL_ATTR_READ_DEFAULT_GROUP ne sont pas définies si le support de MySQL dans PDO a été compilé avec mysqlnd.
  • Le caractère / final a été supprimé des retours de méthodes des classes SplFileInfo et des autres classes de dossier similaires.
  • La fonction magique __toString n'accepte plus d'arguments.
  • Les méthodes magiques __get, __set, __isset, __unset, __call doivent toujours être publiques, et ne peuvent plus être statiques. La signature des méthodes est vérifiée à la compilation.
  • La méthode magique __call est appelée en cas d'accès à une méthode privée ou protégée.
  • func_get_arg(), func_get_args() et func_num_args() ne peuvent plus être appelées depuis le contexte le plus éloigné d'un fichier qui a été inclus via include ou require depuis l'intérieur d'une fonction du fichier appelant.
  • Une couche d'émulation pour l'extension MHASH a été ajoutée. Cependant, tous les algorithmes ne sont pas pris en charge, notamment l'algorithme s2k. Ceci signifie que s2k n'est plus disponible à partir de PHP 5.3.0.

Les mots-clé suivants sont maintenant réservés, et ne peuvent plus être utilisés dans les noms de fonctions, de classes, etc.

  • goto
  • namespace


Nouvelles fonctionnalités

PHP 5.3.0 contient un large éventail de nouvelles fonctionnalités.

  • Le support des espaces de noms (en anglais, namespaces) a été ajouté.
  • Le support de Late Static Bindings a été ajouté.
  • Le support des goto et étiquettes de saut (limited goto) a été ajouté.
  • Le support natif des fermetures (en anglais, Closures) fonctions anonymes et fonctions lambda, a été ajouté.
  • Il y a deux nouvelles méthodes magiques : __callStatic et __invoke ont été ajoutées.
  • La syntaxe Nowdoc a été ajoutée, et fonctionne comme la syntaxe Heredoc mais avec des guillemets simples.
  • Il est maintenant possible d'utiliser Heredoc pour initialiser des variables statiques ou des propriétés/constantes de classes.
  • La syntaxe Heredoc peut maintenant être déclarée en utilisant des guillemets doubles, complétant ainsi la syntaxe Nowdoc.
  • Les constantes peuvent être déclarées hors d'une classe à l'aide du mot-clé const.
  • L'opérateur ternaire dispose maintenant d'un raccourci sous la forme de ?:.
  • Le gestionnaire de flux HTTP considère maintenant tous les codes de 200 à 399 comme réussis.
  • L'accès dynamique aux méthodes statiques est maintenant possible :
    <?php
    class C {
       public static     $foo = 123;
    }

    $a = "C";
    echo     $a::$foo;
    ?>

    L'exemple ci-dessus va afficher :

    123
  • Les exceptions peuvent être imbriquées :
    <?php
    class MyCustomException extends Exception {}

    try {
        throw new     MyCustomException("Exceptional", 112);
    } catch (    Exception $e) {
            /* Notez l'utilisation du troisième paramètre pour passer la variable $e
         * dans RuntimeException. */
            throw new RuntimeException("Rethrowing", 911, $e);
    }
    ?>
  • Un collecteur de mémoire concernant les références circulaires a été ajouté et est activé par défaut.
  • La fonction mail() supporte maintenant l'historisation des emails envoyés via la directive de configuration mail.log. (Notes : ceci n'est valide que pour les emails émis avec cette fonction)


Évolutions du support de Windows

Évolutions dans les versions Windows :

  • La version minimale pour PHP est maintenant Windows XP SP3; Windows 98, ME et NT4 ne sont plus supportées.
  • Les binaires Windows ciblent maintenant les architectures i586 et plus récentes. i386 et i486 ne sont plus supportées.
  • Il y a maintenant un support expérimental des architectures 64 bits pour PHP sur Windows.
  • Le compilateur Visual C++ 9 (VC9) est maintenant supporté, via Visual Studio 2008. Les versions officielles et intermédiaires sont maintenant disponibles en VC9. Les anciennes versions basées sur VC6 sont toujours supportées, et seront livrées en même temps que celles compilées avec VC9.
  • La bibliothèque PDO_OCI php_pdo_oci8.dll (à utiliser avec les bibliothèques cliente Oracle version 8) ne sont plus compilées. Il est recommandé d'utiliser à la place php_pdo_oci.dll (notez l'absence de '8') avec les bibliothèques cliente Oracle 10 et 11. Les connexions aux autres versions sont supportées.
  • Pour l'extension OCI8, une nouvelle bibliothèque php_oci8_11g.dll est disponible, en plus de php_oci8.dll. Une seule d'entre elle peut être utilisée en même temps. Utilisez php_oci8.dll avec les bibliothèques client Oracle 10.2. Utilisez php_oci8_11g.dll avec les bibliothèque client Oracle 11 ou supérieures. Les connexions aux autres versions de base de données sont supportées.

Le support Windows n'est plus le même pour les fonctions suivantes :

  • checkdnsrr()
  • dns_get_record()
  • fnmatch()
  • getmxrr()
  • getopt()
  • imagecolorclosesthwb()
  • inet_ntop()
  • inet_pton()
  • link()
  • linkinfo()
  • mcrypt_create_iv()
  • readlink()
  • socket_create_pair() : cette fonction était précédemment disponible sur Windows, mais à cause d'un bug, était désactivée depuis PHP 4.3.0.
  • stream_socket_pair()
  • symlink()
  • time_nanosleep()
  • time_sleep_until()

Autres modifications :

  • Amélioration de la portabilité des fonctions stat(), touch(), filemtime(), filesize() et associées (100% portable pour les données disponibles).
  • Il est désormais possible d'utiliser des liens en dur sur Windows en utilisant la fonction link() et des liens symboliques via la fonction symlink(). Les liens en dur sont disponibles depuis Windows 2000 et les liens symboliques depuis Windows Vista.
  • La version Windows de PHP publie une famille de constantes préfixées par PHP_WINDOWS_* : leur liste et leur utilisation est accessible Constantes pré-définies.
Avertissement

Le support du module ISAPI a été abandonné, au profit du SAPI FastCGI, plus rapide et plus moderne.

Note: Un nouveau site consacré à PHP sur Windows, incluant des téléchargements, des versions et des snapshots de différentes ascendances (avec ou sans sécurité des threads, VC6/VC9, x86/x64) est lancé. L'URL du site est » http://windows.php.net/.


Évolutions des modules SAPI

  • Un nouveau SAPI est disponible : litespeed.
  • Le support FastCGI dans le SAPI CGI est maintenant toujours activé et ne peut pas être désactivé. Reportez-vous à sapi/cgi/CHANGES pour plus de détails.
  • Une nouvelle option de SAPI CGI, -T, peut être utilisée pour mesurer la durée d'exécution d'un script, exécuté plusieurs fois.
  • CGI/FastCGI supporte maintenant les fichiers .htaccess pour des fichiers de variables personnalisées php.ini.
  • La fonction dl() est maintenant désactivée par défaut, et est disponible en CLI, CGI et pour les SAPI embarquées.


Fonctionnalités obsolètes en PHP 5.3.x

PHP 5.3.0 introduit deux nouveaux niveaux d'erreur : E_DEPRECATED et E_USER_DEPRECATED. Le niveau d'erreur E_DEPRECATED sert à indiquer qu'une fonctionnalité est obsolète, et E_USER_DEPRECATED sert à la même chose pour les fonctions utilisateur, tout comme E_USER_ERROR et E_USER_WARNING .

Voici une liste des directives INI obsolètes : si l'une d'entre elle est activée, elle va émettre une alerte d'obsolescence (E_DEPRECATED) au démarrage.

  • define_syslog_variables
  • register_globals
  • register_long_arrays
  • safe_mode
  • magic_quotes_gpc
  • magic_quotes_runtime
  • magic_quotes_sybase
  • Les commentaires initiés par "#" sont obsolètes dans les fichiers .ini.

Fonctions obsolètes :

  • call_user_method() (utilisez la fonction call_user_func() à la place)
  • call_user_method_array() (utilisez la fonction call_user_func_array() à la place)
  • define_syslog_variables()
  • dl()
  • ereg() (utilisez la fonction preg_match() à la place)
  • ereg_replace() (utilisez la fonction preg_replace() à la place)
  • eregi() (utilisez la fonction preg_match() avec le paramètre 'i' à la place)
  • eregi_replace() (utilisez la fonction preg_replace() avec le paramètre 'i' à la place)
  • mcrypt_generic_end()
  • set_magic_quotes_runtime() et ses alias magic_quotes_runtime()
  • session_register() (utilisez la variable $_SESSION à la place)
  • session_unregister() (utilisez la variable $_SESSION à la place)
  • session_is_registered() (utilisez la variable $_SESSION à la place)
  • set_socket_blocking() (utilisez la fonction stream_set_blocking() à la place)
  • split() (utilisez la fonction preg_split() à la place)
  • spliti() (utilisez la fonction preg_split() avec le paramètre 'i' à la place)
  • sql_regcase()
  • mysql_db_query() (utilisez les fonctions mysql_select_db() et mysql_query() à la place)
  • mysql_escape_string() (utilisez la fonction mysql_real_escape_string() à la place)
  • L'utilisation des chaînes pour les catégories de locales est maintenant obsolète. Utilisez les constantes de la famille LC_* à la place.
  • Le paramètre is_dst de mktime(). Utilisez les fonctions du nouveau gestionnaire de décalage horaire à la place.

Fonctionnalités obsolètes :

  • Assigner la valeur de retour de l'opérateur new par référence est obsolète.
  • Le passage par référence à l'appel est maintenant obsolète.


  • « Fonctionnalités obsolètes en PHP 5.3.x
  • Nouveaux paramètres »
  • PHP Manual
  • Migration de PHP 5.2.x vers PHP 5.3.x
  • Restauration de fonctionnalités dans PHP 5.3.x

Restauration de fonctionnalités dans PHP 5.3.x

La fonction is_a() a été restaurée par demande populaire, ce qui signifie qu'elle n'émet plus d'erreur E_STRICT.


Nouveaux paramètres

Certaines fonctions ont reçu de nouveaux paramètres, optionnels, en PHP 5.3.x :

Coeur de PHP :

  • clearstatcache() : ajout des paramètres clear_realpath_cache et filename.
  • copy() : ajout du paramètre context.
  • fgetcsv() : ajout du paramètre escape.
  • ini_get_all() : ajout du paramètre details.
  • nl2br() : ajout du paramètre is_xhtml.
  • parse_ini_file() : ajout du paramètre scanner_mode.
  • round() : ajout du paramètre mode.
  • stream_context_create() : ajout du paramètre params.
  • strstr() et stristr() : ajout du paramètre before_needle.

json:

  • json_encode() : ajout du paramètre options.
  • json_decode() : ajout du paramètre depth.

Stream:

  • stream_select(),
stream_set_blocking(),
stream_set_timeout() et
stream_set_write_buffer() fonctionne avec des
gestionnaires de flux utilisateurs.

sybase_ct:

  • sybase_connect() : ajout du paramètre new.

Nouveaux paramètres de méthode en PHP 5.3.0.

PHP Core:

  • Exception:__construct() : ajout du paramètre previous.


Nouvelles fonctions

PHP 5.3 apporte de nouvelles fonctions :

Coeur de PHP :

  • array_replace() : remplace les éléments de plusieurs tableaux en un seul.
  • array_replace_recursive() : remplace récursivement les éléments de plusieurs tableaux en un seul.
  • class_alias() : crée un alias pour une classe utilisateur.
  • forward_static_call() : appelle la fonction utilisateur passée en premier paramètre.
  • forward_static_call_array() : appelle la fonction utilisateur passée en premier paramètre avec les arguments passés en tableau.
  • gc_collect_cycles() : force la collecte de la mémoire.
  • gc_disable() : désactive la collecte circulaire de la mémoire.
  • gc_enable() : active la collecte circulaire de la mémoire.
  • gc_enabled() : retourne le statut de la collecte circulaire de la mémoire.
  • get_called_class() : lit le nom de la classe à qui appartient la méthode statique appelée.
  • gethostname() : lit le nom d'hôte courant de la machine locale.
  • header_remove() : supprime un entête HTTP précédemment ajouté avec la fonction header().
  • lcfirst() : met le premier caractère de la chaîne en minuscule.
  • parse_ini_string() : analyse une chaîne de configuration.
  • quoted_printable_encode() : convertit une chaîne 8 bits en une chaîne quoted-printable. string.
  • str_getcsv() : analyse une chaîne CSV et retourne un tableau.
  • stream_context_set_default() : configure le contexte de flux par défaut.
  • stream_supports_lock() : indique si le flux supporte les verrous.
  • stream_context_get_params() : lit les paramètres du contexte.
  • streamWrapper::stream_cast() : lit la ressource sous-jacente.
  • streamWrapper::stream_set_option() : modifie les options du flux.

Date/Heure:

  • date_add() : ajoute des jours, mois, années, heures, minutes et secondes à un objet DateTime.
  • date_create_from_format() : retourne un nouvel objet DateTime formatté selon les spécifications.
  • date_diff() : retourne la différence entre deux objets DateTime.
  • date_get_last_errors() : retourne les alertes et erreurs de la dernière opération sur les dates et heures.
  • date_parse_from_format() : lit des informations sur la date donnée.
  • date_sub() : soustrait des jours, mois, années, heures, minutes et secondes à un objet DateTime.
  • timezone_version_get() : lit la version de la base de données de fuseaux horaires.

GMP:

  • gmp_testbit() : vérifie si un bit est activé.

Hash:

  • hash_copy() : copie le contexte de hashage.

IMAP:

  • imap_gc() : vide le cache IMAP.
  • imap_utf8_to_mutf7() : encode une chaîne UTF-8 en UTF-7 modifié.
  • imap_mutf7_to_utf8() : décode une chaîne UTF-7 modifié en UTF-8.

JSON:

  • json_last_error() : retourne la dernière erreur JSON qui est survenue.

MySQL Improved:

  • mysqli_fetch_all() : lit tous les résultats dans un tableau associatif, numérique ou combiné.
  • mysqli_get_connection_stats() : retourne des statistiques sur la connexion cliente.
  • mysqli_poll() : vérifie le statut des connexions.
  • mysqli_reap_async_query() : lit les résultats d'une requête asynchrone.

OpenSSL:

  • openssl_random_pseudo_bytes() : retourne une chaîne de taille spécifiée, remplie de pseudo-données aléatoires.

PCNTL:

  • pcntl_signal_dispatch() : demande à un gestionnaire de signaux les signaux en attente.
  • pcntl_sigprocmask() : spécifie et lit les signaux bloqués.
  • pcntl_sigtimedwait() : attend des signaux, avec un délai d'expiration.
  • pcntl_sigwaitinfo() : attend des signaux.

PCRE:

  • preg_filter() : effectue un remplacement par expression rationnelle et retourne uniquement les résultats correspondant au masque de recherche.

Semaphore:

  • msg_queue_exists() : vérifie si une queue de messages existe.
  • shm_has_var() : vérifie si une variable spécifique existe.

Les fonctions suivantes sont implémentées nativement, elles sont donc disponibles quel que soit le système d'exploitation considéré:

  • acosh()
  • asinh()
  • atanh()
  • expm1()
  • log1p()


  • « Nouvelles fonctions
  • Nouveaux filtres de flux »
  • PHP Manual
  • Migration de PHP 5.2.x vers PHP 5.3.x
  • Nouveaux gestionnaires de flux

Nouveaux gestionnaires de flux

Les gestionnaires de flux suivants on été ajoutés en 5.3.0 :

  • glob://
  • phar://


Nouveaux filtres de flux

Les filtres de flux suivants ont été ajoutés en PHP 5.3.0 :

  • dechunk
  • Le filtre bz2.decompress supporte maintenant la concaténation.


Nouvelles constantes de classe

De nouvelles constantes de classes ont été ajoutées en 5.3.0 :

PDO_FIREBIRD:

  • PDO::FB_ATTR_DATE_FORMAT : configure le format des dates.
  • PDO::FB_ATTR_TIME_FORMAT : configure le format des heures.
  • PDO::FB_ATTR_TIMESTAMP_FORMAT : configure le format des timestamps.


Nouvelles méthodes

De nouvelles méthodes ont été introduites en PHP 5.3.0 :

Date/Heure:

  • DateTime::add() : ajoute des jours, mois, années, heures, minutes et secondes à un objet DateTime.
  • DateTime::createFromFormat() : retourne un nouvel objet DateTime formaté selon les spécifications.
  • DateTime::diff() : retourne la différence entre deux objets DateTime.
  • DateTime::getLastErrors() : retourne les alertes et erreurs de la dernière opération sur les dates et heures.
  • DateTime::sub() : soustrait des jours, mois, années, heures, minutes et secondes à un objet DateTime.

Exception:

  • Exception::getPrevious() - Récupère l'exception précédente.

DOM:

  • DOMNode::getLineNo() - Récupère le numéro de la ligne du noeud analysé.

PDO_FIREBIRD:

  • PDO::setAttribute() - Définit un attribut.

Reflection:

  • ReflectionClass::getNamespaceName() : retourne le nom de l'espace de noms où la classe est définie.
  • ReflectionClass::getShortName() : retourne le nom court de la classe (sans l'espace de noms).
  • ReflectionClass::inNamespace() : indique si la classe est définie dans un espace de noms.
  • ReflectionFunction::getNamespaceName() : indique le nom de l'espace de noms où la classe est définie.
  • ReflectionFunction::getShortName() : retourne le nom court de la fonction (sans l'espace de noms).
  • ReflectionFunction::inNamespace() : indique si la fonction est définie dans un espace de noms.
  • ReflectionProperty::setAccessible() : modifie l'accessibilité de propriétés non-publiques.

SPL:

  • SplObjectStorage::addAll() : ajoute tous les éléments d'un objet SplObjectStorage.
  • SplObjectStorage::removeAll() : supprime tous les éléments d'un objet SplObjectStorage.

XSL:

  • XSLTProcessor::setProfiling() : configure le fichier de profilage.


Nouvelles extensions

Les nouvelles extensions suivantes ont été ajoutés (par défaut) dans PHP 5.3.0 :

  • Enchant : interface d'abstraction des bibliothèques de correction orthographique.
  • Fileinfo : remplacement avantageux de Mimetype, qui a été abandonnée.
  • INTL : extension d'internationalisation. INTL est une interface avec la bibliothèque » ICU.
  • Phar : implémentation des archives PHP.
  • SQLite3 : support des bases de données SQLite version 3.

mysqlnd est une nouvelle bibliothèque du coeur de PHP. C'est un remplacement spécifique à PHP de la bibliothèque libmysqlclient. mysqlnd sert pour les extesnsions mysql, mysqli et PDO_MYSQL si libmysqlclient n'est pas trouvée dans le système, mais il peut aussi être utilisé à la place de libmysqlclient. Mysqlnd est recommandé pour toutes les installations de PHP pour des raisons de performance.


Extensions retirées

Ces extensions ont été placées dans PECL, et ne font plus partie de la distribution PHP. Le paquet PECL de ces extensions seront créés en fonction de la demande des utilisateurs.

  • dbase : plus entretenue.
  • fbsql : plus entretenue.
  • fdf : entretenue.
  • ming : entretenue.
  • msql : plus entretenue.
  • ncurses : entretenue.
  • sybase : abandonnée. Utilisez sybase_ct à la place, qui fait partie du coeur de PHP.
  • mhash : abandonnée. Utilisez plutôt hash à la place. hash supporte totalement mhash, et les applications seront compatibles.


Autres changements aux extensions

Les extensions suivantes ne peuvent plus être désactivées durant la compilation de PHP :

  • PCRE
  • Reflection
  • SPL

Modification du comportement des extensions et nouveautés :

  • Date et Heure : La variable d'environnement TZ n'est plus utilisée pour deviner le décalage horaire
  • cURL : cURL supporte maintenant SSH
  • Network : la fonction dns_check_record() retourne maintenant une nouvelle entrée "entries", qui contient l'élément TXT.
  • Hash : les algorithmes SHA-224 et salsa sont supportés.
  • mbstring : supporte maintenant l'encodage CP850.
  • OCI8 : appeler oci_close() avec une connexion persistante ou sur une variable qui fait référence à une connexion hors de contexte va maintenant annuler les transactions. Vous devez archiver explicitement, ou bien annuler si besoin. En utilisant oci8.old_oci_close_semantics=On dans le php.ini, vous obtiendrez l'ancien comportement. Le Database Resident Connection Pooling (DRCP) et Fast Application Notification (FAN) sont maintenant supportés. Oracle External Authentication est maintenant supporté (pas sur Windows). oci_bind_by_name() supporte maintenant SQLT_AFC (alias le type de données CHAR).
  • OpenSSL : support de OpenSSL digest et des fonctions de chiffrement. Il est aussi possible d'accéder aux valeurs internes des clés DSA, RSA et DH.
  • Session : les sessions ne stockent plus les fichiers dans le dossier "/tmp", si open_basedir est activé, sauf si "/tmp" est explicitement ajouté à la liste des chemins autorisés.
  • SOAP : supporte maintenant l'envoi de HTTP personnalisés.
  • MySQLi : supporte maintenant les connexions persistantes, quand on préfixe le nom d'hôte avec "p:".
  • Traitement d'image et GD L'index "JPG Support" retourné depuis la fonction gd_info() a été renommé en "JPEG Support".


Nouvelles classes

Les classes suivantes ont été ajoutées en PHP 5.3.0 :

Date/Heure:

  • DateInterval
  • DatePeriod

Phar:

  • Phar
  • PharData
  • PharException
  • PharFileInfo

SPL:

  • FilesystemIterator
  • GlobIterator
  • MultipleIterator
  • RecursiveTreeIterator
  • SplDoublyLinkedList
  • SplFixedArray
  • SplHeap
  • SplMaxHeap
  • SplMinHeap
  • SplPriorityQueue
  • SplQueue
  • SplStack


Nouvelles constantes globales

Coeur de sPHP :

  • __DIR__
  • __NAMESPACE__
  • E_DEPRECATED
  • E_USER_DEPRECATED
  • INI_SCANNER_NORMAL
  • INI_SCANNER_RAW
  • PHP_MAXPATHLEN
  • PHP_WINDOWS_NT_DOMAIN_CONTROLLER
  • PHP_WINDOWS_NT_SERVER
  • PHP_WINDOWS_NT_WORKSTATION
  • PHP_WINDOWS_VERSION_BUILD
  • PHP_WINDOWS_VERSION_MAJOR
  • PHP_WINDOWS_VERSION_MINOR
  • PHP_WINDOWS_VERSION_PLATFORM
  • PHP_WINDOWS_VERSION_PRODUCTTYPE
  • PHP_WINDOWS_VERSION_SP_MAJOR
  • PHP_WINDOWS_VERSION_SP_MINOR
  • PHP_WINDOWS_VERSION_SUITEMASK

cURL:

  • CURLOPT_PROGRESSFUNCTION

GD :

  • IMG_FILTER_PIXELATE

JSON :

  • JSON_ERROR_CTRL_CHAR
  • JSON_ERROR_DEPTH
  • JSON_ERROR_NONE
  • JSON_ERROR_STATE_MISMATCH
  • JSON_ERROR_SYNTAX
  • JSON_FORCE_OBJECT
  • JSON_HEX_TAG
  • JSON_HEX_AMP
  • JSON_HEX_APOS
  • JSON_HEX_QUOT

LDAP :

  • LDAP_OPT_NETWORK_TIMEOUT

libxml:

  • LIBXML_LOADED_VERSION

PCRE :

  • PREG_BAD_UTF8_OFFSET_ERROR

PCNTL :

  • BUS_ADRALN
  • BUS_ADRERR
  • BUS_OBJERR
  • CLD_CONTIUNED
  • CLD_DUMPED
  • CLD_EXITED
  • CLD_KILLED
  • CLD_STOPPED
  • CLD_TRAPPED
  • FPE_FLTDIV
  • FPE_FLTINV
  • FPE_FLTOVF
  • FPE_FLTRES
  • FPE_FLTSUB
  • FPE_FLTUND
  • FPE_INTDIV
  • FPE_INTOVF
  • ILL_BADSTK
  • ILL_COPROC
  • ILL_ILLADR
  • ILL_ILLOPC
  • ILL_ILLOPN
  • ILL_ILLTRP
  • ILL_PRVOPC
  • ILL_PRVREG
  • POLL_ERR
  • POLL_HUP
  • POLL_IN
  • POLL_MSG
  • POLL_OUT
  • POLL_PRI
  • SEGV_ACCERR
  • SEGV_MAPERR
  • SI_ASYNCIO
  • SI_KERNEL
  • SI_MESGQ
  • SI_NOINFO
  • SI_QUEUE
  • SI_SIGIO
  • SI_TIMER
  • SI_TKILL
  • SI_USER
  • SIG_BLOCK
  • SIG_SETMASK
  • SIG_UNBLOCK
  • TRAP_BRKPT
  • TRAP_TRACE


Modifications à la gestion du fichier INI

PHP 5.3.0 a significativement amélioré les performances, l'analyse et la syntaxe du fichier php.ini.

  • Le fichier standard php.ini a été réorganisé, et renommé. php.ini-development contient les options qui sont recommandées pour un environnement de développement. php.ini-production contient les configurations recommandées pour la production.
  • Il y a désormais deux sections spéciales : [PATH=/opt/httpd/www.exemple.com/] et [HOST=www.exemple.com]. Les directives configurées dans ces sections ne peuvent pas être modifiées par des fichiers INI des utilisateurs, ou durant l'exécution. Pour plus d'informations sur ces sections, voyez ici.
  • zend_extension_debug, zend_extension_debug_ts et zend_extension_ts ont été supprimées. Utilisez la directive zend_extension pour charger toutes les extensions Zend.
  • zend.ze1_compatibility_mode a été retirée. Si cette directive INI est activée, une alerte de niveau E_ERROR sera émise au démarrage.
  • Il est désormais possible d'utiliser le chemin complet pour charger un module, en utilisant la directive extension.
  • "ini-variables" peut être utilisé presque partout dans un fichier php.ini.
  • Les restrictions open_basedir peuvent maintenant être gérées au moment de l'exécution, et la directive est maintenant PHP_INI_ALL.
  • Il est maintenant possible d'utiliser des variables alphanumériques ou des index de variables dans les tableaux d'options INI.
  • get_cfg_var() est maintenant capable de retourner les options sous forme de tableau
  • Deux nouvelles directives relatives aux mails : mail.add_x_header et mail.log ont été ajoutées.

Les directives INI suivantes ont été ajoutées :

  • user_ini.filename et user_ini.cache_ttl ont été ajoutées pour contrôler l'utilisation des fichiers INI utilisateurs.
  • exit_on_timeout a été ajouté pour forcer les fils Apache 1.x à se terminer si un délai d'exécution maximal PHP survient.
  • Ajout de mbstring.http_output_conv_mimetype. Cette directive définit une expression rationnelle qui identifie les types de contenus pour lesquels mb_output_handler() est activé.
  • Ajout de request_order. Autorise le contrôle des options de requêtes disponibles dans $_REQUEST.

Le directives INI suivantes ont changé de valeur par défaut :

  • session.use_only_cookies vaut maintenant "1" (activé) par défaut.
  • oci8.default_prefetch a changé de valeur par défaut, passant de "10" à "100".


Autres changements

  • SplFileInfo::getpathinfo() retourne désormais des informations sur le nom du chemin.
  • SplObjectStorage dispose maintenant du support de ArrayAccess. Il est aussi possible de stocker des informations associatives avec des objets dans SplObjectStorage.
  • Dans l'extension GD, le support de la pixelisation est maintenant possible à l'aide de la fonction imagefilter().
  • var_dump() affiche aussi les propriétés privées des objets.
  • session_start() retourne FALSE lorsque la session n'a pas pu être démarrée.
  • property_exists() vérifie désormais l'existence d'une propriété indépendante de son accessibilité (comme method_exists()).
  • Stream wrappers peut maintenant être utilisée par include_path.
  • Le paramètre initial de array_reduce() peut être de n'importe quel type.
  • Les fonctions de dossiers opendir(), scandir() et dir() utilise maintenant le contexte par défaut, si aucun contexte n'est passé en argument.
  • crypt() supporte maintenant Blowfish et le DES étendu. crypt() est maintenant 100% portable. PHP dispose de son propre crypt interne, qui se substitue lorsque crypt ou crypt_r n'est pas trouvé.
  • getopt() accepte des options longues sur toutes les plate-formes. Les valeurs optionnelles et le séparateur = est maintenant supporté pour les options courtes.
  • fopen() dispose d'un nouveau mode, n), dont l'utilisation va envoyer la constante O_NONBLOCK à l'appel système syscall() sous-jaçent. Notez que ce mode n'est pas supporté par Windows.
  • getimagesize() supporte maintenant les fichiers icônes (.ico).
  • L'extension mhash a été déplacée dans PECL, mais l'extension Hash a été modifiée pour supporter mhash si PHP est compilé avec l'option --with-mhash. Notez que l'extension Hash ne nécessite pas la bibliothèque mhash lors de l'utilisation de l'émulation mhash.


Migration de PHP 5.1.x à PHP 5.2.x

Sommaire

  • Ce qui a changé en PHP 5.2.x
  • Changements incompatibles avec les versions précédentes
  • Nouveaux messages d'erreurs
  • Modification dans le support PHP de datetime
  • Nouveaux paramètres
  • Nouvelles fonctions
  • Nouvelles méthodes
  • Extensions supprimées
  • Nouvelles extensions
  • Nouvelles classes
  • Nouvelles constantes globales
  • Nouvelles constantes de classe
  • Nouvelles directives INI
  • Rapports d'erreur
  • Améliorations

Voir aussi les guides de migration entre les différentes versions de PHP 5.0.x, 5.1.x, 5.3.x, 5.4.x, 5.5.x et 5.6.x.


Ce qui a changé en PHP 5.2.x

La majorité des améliorations de PHP 5.2.x n'a aucun impact sur le code existant. Il y a quelques incompatibilités et de nouveaux messages d'erreur qui doivent être pris en compte, et le code doit être testé avant de changer la version des serveurs en production.

Si la version de PHP en production est 5.0.x, la section Notes de mise à jour pour PHP 5.1.x doit être lue également.

Similairement, si la version d'origine est une version 4, la section Migration de PHP 4 à PHP 5 doit être lue.


Changements incompatibles avec les versions précédentes

Même si la majorité du code PHP 5 devrait fonctionner sans modification, il est recommandé de surveiller les points suivants, qui introduisent des incompatibilités avec les versions précédentes.

  • La fonction getrusage() retourne NULL quand on lui passe des arguments incorrects depuis PHP 5.2.1.
  • ZipArchive::setCommentName() retourne TRUE en cas de succès depuis PHP 5.2.1.
  • ZipArchive::setCommentIndex() retourne TRUE en cas de succès depuis PHP 5.2.1.
  • SplFileObject::getFilename() retourne le nom du fichier, et non plus le chemin relatif jusqu'au fichier, depuis PHP 5.2.1.
  • Changement de priorité de la constante d'environnement PHPRC sur Windows 32. La variable d'environnement PHPRC a la priorité sur la valeur enregistrée dans la base de registre Windows.
  • CLI SAPI ne cherche plus dans cwd le fichier php.ini ni le fichier php-cli.ini En PHP 5.1.x, une fonctionnalité non-documentée a été ajoutée à la version CLI de PHP, pour rechercher dans le dossier courant un fichier de configuration PHP, menant à des comportements inattendus, si des fichiers inopinés étaient trouvés. Cette fonctionnalité a été supprimée en PHP 5.2.0, et PHP ne cherche plus dans le dossier de travail courant le fichier php.ini ni le fichier php-cli.ini. Voyez aussi la section sur la ligne de commande du manuel.
  • Ajout d'une alerte lors de calcul de modulo 0 Dans les versions précédentes de PHP, effectuer un calcul de modulo 0 ne donnait aucun message d'alerte, mais retournait la valeur inattendue FALSE. Depuis PHP 5.2.0, cette tentative conduit à l'émission d'une alerte de type E_WARNING, comme lorsque des divisions par zéro sont effectuées.
    <?php
    print 10 % 0;
    /* Warning:  Division by zero in filename on line n */
    ?>
  • Désormais, __toString() est appelé à chaque fois que c'est possible. La méthode magique __toString() est maintenant appelée dans tout contexte de chaîne, c'est à dire à chaque fois qu'un objet est utilisé comme chaîne de caractères. Le comportement par défaut qui retournait une chaîne représentant l'identifiant de l'objet a été abandonné en PHP 5.2.0. Il était devenu problématique, car un identifiant d'objet ne peut pas être considéré comme unique. Ce changement implique que votre application est erronée si elle utilise les identifiants d'objets comme valeur de retour. Une tentative d'utilisation de cette valeur comme chaîne de caractères produit maintenant une erreur fatale.
    <?php
    class foo {}
    $foo = new foo;
    print     $foo;
    /* Catchable fatal error:  Object of class foo could
       not be converted to string in filename on line n */
    ?>
    Même avec __toString(), les objets ne peuvent pas être utilisés comme des index ou des clés de tableaux. Nous envisageons d'ajouter un support natif de hachage ultérieurement, mais pour les versions 5.2.x, vous devrez fournir votre propre système, ou bien utiliser la nouvelle fonction SPL spl_object_hash(). __toString() ne peut pas émettre d'exception.
    <?php
    class foo {
        public function     __toString() {
            throw new     Exception;
        }
    }

    try {
        print new     foo;
            /* Fatal error:  Method foo::__toString() must
           not throw an exception in filename on line n */
    } catch(Exception $e) {}
    ?>
  • Abandon des fonctions de classes statiques et abstraites. A cause d'une inattention, PHP 5.0.x et 5.1.x permettaient les méthodes statiques abstraites dans les classes. Depuis PHP 5.2.x, seules les interfaces peuvent en avoir.
    <?php
    abstract class foo {
        abstract static function     bar();
            /* Strict Standards:  Static function foo::bar()
           should not be abstract in filename on line n */
    }
    ?>
  • L'extension Oracle nécessite au moins la version 10 d'Oracle, sous Windows.
  • Ajout du support de la RFC2397 (flux data:). L'introduction du flux de type 'data' peut conduire à un changement de comportement sous Windows. Si vous travaillez avec un système de fichiers NTFS, que vous utilisez vos propres meta-flux dans vos applications, et que vous avez déjà baptisé l'un des fichiers du nom de 'data:', accessible sans aucune information de chemin, sachez qu'il ne fonctionnera plus. Le correctif est d'utiliser le protocole 'file:' pour y accéder. Voyez aussi la » RFC 2397
    <?php
    /* lorsque allow_url_include vaut OFF (valeur par défaut) */
    include "data:;base64,PD9waHAgcGhwaW5mbygpOz8+";
    /* Warning:  include(): URL file-access is disabled
       in the server configuration in filename on line n */
    ?>
  • Régression dans le masque glob() Dans la version 5.2.4, une mise à jour de sécurité a provoqué une régression des masques de la forme "/foo/*/bar/*". Depuis la version 5.2.5, au lieu d'émettre une alerte, la fonction glob() retourne FALSE lorsque les restrictions openbase_dir sont violées.


Nouveaux messages d'erreurs

Trouvez ci-dessous les nouveaux messages d'erreurs qui n'ont pas encore été abordés dans ce document.

Exemple #1 Dans le coeur de PHP

<?php
echo " ";
session_regenerate_id();
/*  Warning:  session_regenerate_id(): Cannot regenerate
    session id - headers already sent in filename on line n */

str_word_count("string", 4);
/* Warning:  str_word_count(): Invalid format value 4
   in filename on line n */

strripos("foo", "f", 4);
/* Notice:  strripos(): Offset is greater than the
   length of haystack string in filename on line n */

strrpos("foo", "f", 4);
/* Notice:  strrpos(): Offset is greater than the
   length of haystack string in filename on line n */

/* As of PHP 5.2.1, when allow_url_include is OFF (default) */
include "php://input";
/* Warning:  include(): URL file-access is disabled
   in the server configuration in filename on line n */
?>

Exemple #2 Dans le coeur orienté objet de PHP

<?php
interface foo {
}
class bar implements foo, foo {
}
/* Fatal error: Class bar cannot implement previously
   implemented interface foo in filename on line n */

class foo {
    public $bar;
    function __get($var)
    {
        return $this->bar;
    }
}

$foo = new foo;
$bar =& $foo->prop;
/* Notice: Indirect modification of overloaded property
   foo::$prop has no effect in filename on line n */

class foo implements iterator {
    public function current() {
    }
    public function next() {
    }
    public function key() {
    }
    public function valid() {
    }
    public function rewind() {
    }
}

$foo = new foo();
foreach($foo as &$ref) {}
/* Fatal error: An iterator cannot be used with foreach
   by reference in filename on line n */

class foo {
    private function __construct() {
    }
}
class bar extends foo {
    public function __construct() {
        parent::__construct();
        /* Fatal error:  Cannot call private
           foo::__construct() in filename on line n */
    }
}
new bar;

stream_filter_register("", "class");
/* Warning:  stream_filter_register(): Filter name
   cannot be empty in filename on line n */

stream_filter_register("filter", "");
/* Warning:  stream_filter_register(): Class name
   cannot be empty in filename on line n */
?>

Exemple #3 Dans l'extension bzip2

<?php
bzopen("", "w");
/* Warning:  bzopen(): filename cannot be empty
   in filename on line n */

bzopen("foo", "a");
/* Warning:  bzopen(): 'a' is not a valid mode for
   bzopen(). Only 'w' and 'r' are supported in
   filename on line n */

$fp = fopen("foo", "w");
bzopen($fp, "r");
/* Warning:  bzopen(): cannot read from a stream
   opened in write only mode in filename on line n */
?>

Exemple #4 Dans l'extension datetime

<?php
strtotime("today", "now");
/* Warning:  strtotime() expects parameter 2 to be
   long, string given in filename on line n */

/* As of PHP 5.2.1 */
new DateTime(new stdclass);
/* Fatal error: Uncaught exception 'Exception' with
   message 'DateTime::__construct() expects parameter
   1 to be string, object given' in filename:n */
?>

Exemple #5 Dans l'extension dBase

<?php
dbase_open("foo", -1);
/* Warning: Invalid access mode -1 in filename on line n */

/* As of PHP 5.2.1 */
dbase_open("foo", null);
/* Warning: The filename cannot be empty in filename on line n */
?>

Exemple #6 Dans l'extension mcrypt

<?php
$key = "this is a secret key";
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td),
                        MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
$encrypted_data = mcrypt_generic($td, "");
/* Warning: mcrypt_generic(): An empty string was
   passed in filename on line n */
?>

Exemple #7 Dans l'extension oci8

<?php
oci_connect("user", "pass", "db", "bogus_charset");
/* Warning: Invalid character set name:
   bogus_charset in filename on line n */

$oci = oci_connect("user", "pass", "db");
oci_password_change($oci, "", "old", "new");
/* Warning: username cannot be empty in filename
   on line n */

oci_password_change($oci, "user", "", "new");
/* Warning: old password cannot be empty in filename
   on line n */

oci_password_change($oci, "user", "old", "");
/* Warning: new password cannot be empty in filename
   on line n */
?>

Exemple #8 Dans l'extension SPL

<?php
$obj = new SplFileObject(__FILE__);
$obj->fgetcsv("foo");
/* Warning:  SplFileObject::fgetcsv(): delimiter must
   be a character in filename on line n */

$obj->fgetcsv(",", "foo");
/* Warning:  SplFileObject::fgetcsv(): enclosure must
   be a character in filename on line n */
?>

Exemple #9 Dans l'extension Semaphore (sysvmsg)

<?php
/* Warning:  maximum size of the message has to be
   greater then zero in filename on line n */
?>

Exemple #10 Un exemple en PHP 5.2.1+ de Zip

<?php
$obj = new ZipArchive();
$obj->open('archive.zip');
$obj->setCommentName('', 'comment');
/* Notice:  ZipArchive::setCommentName(): Empty string
   as entry name in filename on line n */

/* As of PHP 5.2.1 */
$obj->getCommentName('');
/* Notice:  ZipArchive::getCommentName(): Empty string
   as entry name in filename on line n */
?>


Modification dans le support PHP de datetime

Depuis PHP 5.1.0, il existe une extension date dans le coeur de PHP. C'est une nouvelle implémentation du support des dates et heures en PHP. Même si PHP tente de deviner le fuseau horaire tout seul, il est recommandé de le configurer manuellement. Vous pouvez le faire de trois manières :

  • dans votre fichier php.ini avec la directive date.timezone
  • dans votre système, avec la variable d'environnement TZ
  • dans le script, en utilisant la fonction date_default_timezone_set()

Tous les fuseaux horaires supportés sont listés dans le manuel PHP.

Avec l'arrivée de PHP 5.2.x, il y a une représentation objet des dates et fuseaux horaires, qui portent respectivement le nom anglais de DateTime et DateTimeZone. Les méthodes associées sont directement reliées à leurs cousines procédurales.


Nouveaux paramètres

Certaines fonctions ont reçu de nouveaux paramètres optionnels en PHP 5.2.x :

Coeur de PHP :

  • htmlentities() : ajout du paramètre double_encode en PHP 5.2.3.
  • htmlspecialchars() : ajout du paramètre double_encode en PHP 5.2.3.
  • base64_decode() : ajout du paramètre strict
  • setcookie() : ajout du paramètre httponly
  • setrawcookie() : ajout du paramètre httponly
  • session_set_cookie_params() : ajout du paramètre httponly
  • memory_get_usage() : ajout du paramètre real_usage
  • get_loaded_extensions() : ajout du paramètre zend_extensions en PHP 5.2.4

curl:

  • curl_multi_info_read() : ajout du paramètre msgs_in_queue

datetime

  • date() : ajout du caractère de format "u" (millisecondes) en PHP 5.2.2

imap:

  • imap_open() : ajout du paramètre n_retries
  • imap_reopen() : ajout du paramètre n_retries

mbstring:

  • mb_strrpos() : ajout du paramètre offset
    Avertissement

    Le paramètre offset a été ajouté à la place du paramètre encoding. La compatibilité ascendante a été assurée en permettant au paramètre encoding d'être précisé comme troisième paramètre. L'utilisation du mode de compatibilité n'est pas recommandé, car il sera supprimé dans une version ultérieure.

ming:

  • SWFMovie::streamMP3() : ajout du paramètre skip en PHP 5.2.1

openssl:

  • openssl_verify() : ajout du paramètre signature_algo

pgsql:

  • pg_escape_bytea() : ajout du paramètre connection
  • pg_escape_string() : ajout du paramètre connection

simplexml:

  • SimpleXMLElement::__construct() : ajout du paramètre is_prefix
  • SimpleXMLElement::attributes() : ajout du paramètre is_prefix
  • SimpleXMLElement::children() : ajout du paramètre is_prefix
  • simplexml_load_file() : ajout du paramètre is_prefix
  • simplexml_load_string() : ajout du paramètre is_prefix

spl:

  • array iterator_to_array(Traversable it [, bool use_keys = true]) : ajout du paramètre use_keys en PHP 5.2.1

xmlreader:

  • XMLReader::open() : ajout du paramètre encoding et options
  • XMLReader::XML() : ajout du paramètre encoding et du paramètre options

XMLWriter:

  • XMLWriter::WriteElement() : le paramètre content est devenu optionnel en PHP 5.2.3
  • XMLWriter::WriteElementNs() : le paramètre content est devenu optionnel en PHP 5.2.3


Nouvelles fonctions

PHP 5.2.x présente de nouvelles fonctions :

Coeur de PHP :

  • array_fill_keys() : crée un tableau en utilisant les éléments du premier argument comme clé, et ceux du second argument comme la valeur val associée.
  • error_get_last() : lit la dernière erreur, sous forme de tableau associatif. Retourne NULL s'il n'y a pas encore eu d'erreur.
  • image_type_to_extension() : retourne l'extension du type d'image fourni par getimagesize(), exif_read_data(), exif_thumbnail(), exif_imagetype()
  • memory_get_peak_usage() : retourne le maximum de mémoire consommé par PHP
  • sys_get_temp_dir() : retourne le dossier utilisé pour les fichiers temporaires (ajouté en PHP 5.2.1).
  • timezone_abbreviations_list() : retourne un tableau associatif contenant l'heure d'été, le décalage et le fuseau horaire.
  • timezone_identifiers_list() : retourne un tableau numérique avec tous les identifiants de fuseau.
  • timezone_name_from_abbr() : retourne l'abréviation du fuseau.
  • stream_socket_shutdown() : force la fermeture de tout ou partie d'un socket full-duplex (ajouté en PHP 5.2.1).

Image:

  • imagegrabscreen() : prend une capture de tout l'écran. Depuis PHP 5.2.2.

libXML:

  • libxml_disable_entity_loader() : désactive le chargement des entités externes. Disponible depuis PHP 5.2.11.
  • imagegrabwindow() : capture une image d'une fenêtre. Disponible depuis PHP 5.2.2.

mbstring:

  • mb_stripos() : trouve la position de la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse.
  • mb_stristr() : trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse.
  • mb_strrchr() : trouve la dernière occurrence d'un caractère dans une chaîne.
  • mb_strrichr() : trouve la dernière occurrence d'un caractère dans une chaîne, sans tenir compte de la casse.
  • mb_strripos() : trouve la position de la dernière occurrence d'une chaîne dans une autre, sans tenir compte de la casse.
  • mb_strstr() : trouve la première occurrence d'une chaîne dans une autre.

ming (depuis PHP 5.2.1):

  • void ming_setSWFCompression(int num) : configure la compression de sortie.
  • void swfmovie::namedanchor(string name) : crée une ancre.
  • void swfmovie::protect([string password]) : protège par mot de passe.

openssl:

  • openssl_csr_get_public_key() : extrait la clé publique d'un CERT et prépare son utilisation.
  • openssl_csr_get_subject() : retourne le sujet du CERT.
  • openssl_pkey_get_details() : retourne un tableau avec les détails sur la clé (bits, pkey, type).

spl:

  • spl_object_hash() : retourne un identifiant hash d'un objet.
  • int iterator_apply(Traversable it, mixed function [, mixed params]) : appelle une fonction pour chaque élément d'un itérateur.

pcre:

  • preg_last_error() : retourne le code d'erreur de la dernière expression rationnelle.

pgsql:

  • pg_field_table() : retourne le nom de la table à laquelle appartient le fichier, ou bien l'oid du tableau si oid_only vaut TRUE.

posix:

  • posix_initgroups() : calcule la liste d'accès de groupe pour un utilisateur.

gmp:

  • gmp_nextprime() : recherche le prochain nombre premier.

xmlwriter:

  • xmlwriter_full_end_element() : ferme l'élément courant. Retourne FALSE en cas d'erreur.
  • xmlwriter_write_raw() : écrit le texte. Retourne FALSE en cas d'erreur.
  • xmlwriter_start_dtd_entity() : crée une entité DTD. Retourne FALSE en cas d'erreur.
  • xmlwriter_end_dtd_entity() : ferme une entité DTD Entity. Retourne FALSE en cas d'erreur.
  • xmlwriter_write_dtd_entity() : écrit une balise DTD complète. Retourne FALSE en cas d'erreur.


Nouvelles méthodes

De nouvelles méthodes on été introduites en PHP 5.2.0 :

dom:

  • DOMDocument::registerNodeClass() : enregistre une classe étendue pour créer un noeud de base.
  • DOMElement::setIDAttribute() : déclare l'attribut, identifié par son nom, de type ID.
  • DOMElement::setIDAttributeNode() : déclare l'attribut, identifié par son noeud, de type ID.
  • DOMElement::setIDAttributeNS() : déclare l'attribut, identifié par son nom local, de type ID.
  • DOMNode::C14N()([bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) : canonise les noeuds dans une chaîne.
  • DOMNode::C14NFile()(string uri [, bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) : canonise les noeuds dans un fichier.
  • DOMNode::getNodePath()() : obtient un xpath pour un noeud.

soap:

  • SoapServer::setObject()(object obj) : configure un objet pour gérer les requêtes SOAP.

spl:

  • int ArrayObject::asort()(void) : trie les éléments par valeur en utilisant une fonction utilisateur.
  • int ArrayObject::ksort()(void) : trie les éléments par clé en utilisant une fonction utilisateur.
  • int ArrayObject::natcasesort()(void) : trie les entrées par clé, en utilisant le tri naturel insensible à la casse.
  • int ArrayObject::natsort()(void) : trie les éléments par valeur, en utilisant un algorithme naturel.
  • int ArrayObject::uasort()(callback cmp_function) : trie les éléments par valeur, avec une fonction utilisateur.
  • int ArrayObject::uksort()(callback cmp_function) : trie les éléments par clé, avec une fonction utilisateur.
  • ArrayIterator AppendIterator::getArrayIterator()() : donne accès à l'ArrayIterator interne.
  • int AppendIterator::getIteratorIndex()() : lit l'index de l'itérateur.
  • bool CachingIterator::getCache()() : retourne le cache.
  • int CachingIterator::getFlags()() : retourne les options internes.
  • bool CachingIterator::offsetExists()(mixed index) : retourne TRUE si l'index demandé existe.
  • string CachingIterator::offsetGet()(mixed index) : retourne le cache interne s'il est utilisé.
  • void CachingIterator::offsetSet()(mixed index, mixed newval) : spécifie l'index donné dans le cache.
  • void CachingIterator::offsetUnset()(mixed index) : supprime l'index donné du cache.
  • void CachingIterator::setFlags()() : configure les options internes.
  • array("delimiter" =>, "enclosure" =>) SplFileObject::getCsvControl()(void) : retourne les délimiteurs et séparateurs utilisés par fgetcsv().
  • void SplFileObject::setCsvControl()([string delimiter = ',' [, string enclosure = '"']]) : configure les délimiteurs et séparateurs utilisés par fgetcsv().

Tidy

  • tidyNode tidyNode::getParent()() : retourne le noeud parent du noeud courant (ajoutée en PHP 5.2.2).

XMLReader

  • boolean XMLReader::setSchema() : utilise le schéma W3C XSD pour valider le document tel qu'il est traité. L'activation n'est possible qu'avant la première lecture avec XMLReader::read()

zip:

  • ZipArchive::addEmptyDir()() : crée un dossier vide dans une archive.


Extensions supprimées

Ces extensions ont été déplacées dans PECL et ne font plus partie de la distribution de PHP. Les paquets PECL de ces extensions seront créés sur demande.

  • filePro
  • Hyperwave API


Nouvelles extensions

Les extensions suivantes ont été ajoutées à la distribution standard de PHP, depuis PHP 5.2.1 :

  • Filter : valide et filtre les données. Cette extension est conçue pour être utilisée avec des données utilisateurs entrantes. Cette extension est activée par défaut ; le mode par défaut est RAW (brut), et n'a aucun impact sur les données.
  • JSON : implémente le format d'échange de données JavaScript Object Notation (JSON). Cette extension est activée par défaut.
  • Zip : permet l'utilisation transparente des fichiers d'archives compressées ZIP.


Nouvelles classes

Les classes suivantes ont été introduites en PHP 5.2.0 :

  • DateTime
  • DateTimeZone
  • RegexIterator, étend FilterIterator ; implémente Iterator, Traversable, OuterIterator Constantes :
    • RegexIterator::ALL_MATCHES
    • RegexIterator::GET_MATCH
    • RegexIterator::MATCH
    • RegexIterator::REPLACE
    • RegexIterator::SPLIT
    • RegexIterator::USE_KEY
    Propriétés :
    • public replacement
    Méthodes:
    • RegexIterator::__construct(Iterator it, string regex [, int mode [, int flags [, int preg_flags]]]) : crée un RegexIterator à partir d'un autre itérateur et une expression rationnelle.
    • bool RegexIterator::accept() : applique l'expression rationnelle à (string) current().
    • bool RegexIterator::getFlags() : retourne les options de l'opération courante.
    • bool RegexIterator::getMode() : retourne le mode d'opération courant.
    • bool RegexIterator::getPregFlags() : retourne les options PREG courantes (si elles sont utilisées, sinon NULL).
    • bool RegexIterator::setFlags(int new_flags) : configure les options d'opération.
    • bool RegexIterator::setMode(int new_mode) : configure le nouveau mode d'opération.
    • bool RegexIterator::setPregFlags(int new_flags) : configure les options PREG.
  • RecursiveRegexIterator Constantes :
    • RecursiveRegexIterator::ALL_MATCHES
    • RecursiveRegexIterator::GET_MATCH
    • RecursiveRegexIterator::MATCH
    • RecursiveRegexIterator::REPLACE
    • RecursiveRegexIterator::SPLIT
    • RecursiveRegexIterator::USE_KEY
    Méthodes :
    • RecursiveRegexIterator::__construct(RecursiveIterator it, string regex [, int mode [, int flags [, int preg_flags]]]) : crée un RecursiveRegexIterator à partir d'un autre itérateur récursif, et d'une expression rationnelle.
    • RecursiveRegexIterator RecursiveRegexIterator::getChildren() : retourne le fils interne d'un itérateur contenu dans RecursiveRegexIterator.
    • bool RecursiveRegexIterator::hasChildren() : vérifie si l'itérateur interne a un fils.


Nouvelles constantes globales

Coeur de PHP :

  • M_EULER
  • M_LNPI
  • M_SQRT3
  • M_SQRTPI
  • PATHINFO_FILENAME
  • PREG_BACKTRACK_LIMIT_ERROR
  • PREG_BAD_UTF8_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_NO_ERROR
  • PREG_RECURSION_LIMIT_ERROR
  • UPLOAD_ERR_EXTENSION
  • STREAM_SHUT_RD
  • STREAM_SHUT_WR
  • STREAM_SHUT_RDWR

curl:

  • CURLE_FILESIZE_EXCEEDED
  • CURLE_FTP_SSL_FAILED
  • CURLE_LDAP_INVALID_URL
  • CURLFTPAUTH_DEFAULT
  • CURLFTPAUTH_SSL
  • CURLFTPAUTH_TLS
  • CURLFTPSSL_ALL
  • CURLFTPSSL_CONTROL
  • CURLFTPSSL_NONE
  • CURLFTPSSL_TRY
  • CURLOPT_FTP_SSL
  • CURLOPT_FTPSSLAUTH
  • CURLOPT_TCP_NODELAY Ajoutée en PHP 5.2.1.
  • CURLOPT_TIMEOUT_MS Ajoutée en PHP 5.2.3
  • CURLOPT_CONNECTTIMEOUT_MS Ajoutée en PHP 5.2.3

GMP:

  • GMP_VERSION Ajoutée en PHP 5.2.2.

ming:

  • SWFTEXTFIELD_USEFONT
  • SWFTEXTFIELD_AUTOSIZE
  • SWF_SOUND_NOT_COMPRESSED
  • SWF_SOUND_ADPCM_COMPRESSED
  • SWF_SOUND_MP3_COMPRESSED
  • SWF_SOUND_NOT_COMPRESSED_LE
  • SWF_SOUND_NELLY_COMPRESSED
  • SWF_SOUND_5KHZ
  • SWF_SOUND_11KHZ
  • SWF_SOUND_22KHZ
  • SWF_SOUND_44KHZ
  • SWF_SOUND_8BITS
  • SWF_SOUND_16BITS
  • SWF_SOUND_MONO
  • SWF_SOUND_STEREO

openssl :

  • OPENSSL_VERSION_NUMBER
  • OPENSSL_VERSION_TEXT

snmp :

  • SNMP_OID_OUTPUT_FULL
  • SNMP_OID_OUTPUT_NUMERIC

Semaphore :

  • MSG_EAGAIN
  • MSG_ENOMSG


Nouvelles constantes de classe

pdo :

  • PDO::ATTR_DEFAULT_FETCH_MODE
  • PDO::FETCH_PROPS_LATE
  • PDO::FETCH_KEY_PAIR Lit un résultat de deux colonnes dans un tableau associatif. (Ajouté en PHP 5.2.3)

spl :

  • CachingIterator::FULL_CACHE
  • CachingIterator::TOSTRING_USE_INNER
  • SplFileObject::READ_AHEAD
  • SplFileObject::READ_CSV
  • SplFileObject::SKIP_EMPTY


Nouvelles directives INI

Les nouvelles directives php.ini introduites en PHP 5.2.0 :

  • allow_url_include Cette option pratique permet de faire la différence entre les opérations de fichiers et les inclusions de code. Alors que les premières sont souvent utiles, les secondes sont des risques de sécurité, lorsqu'elles sont autorisées naïvement. Depuis PHP 5.2.0, vous pouvez autoriser les opérations sur les fichiers distants, mais interdire les inclusions de fichiers locaux. En fait, c'est la configuration par défaut.
  • pcre.backtrack_limit Limitation du suivi de PCRE.
  • pcre.recursion_limit Limite de récursion de PCRE. Notez que si vous donnez à cette directive une valeur trop grande, vous pouvez consommer toute la pile d'exécution, et planter PHP (due à une limite de pile imposée par le système d'exploitation).
  • session.cookie_httponly Configure le cookie comme n'étant accessible que par protocole HTTP. Cela signifie que le cookie ne peut pas être accessible par des langages comme JavaScript. Cette configuration peut aider à prévenir le vol de cookie via des attaques XSS (même si tous les navigateurs ne la supportent pas encore).

Nouvelles directives de PHP 5.2.2 :

  • max_input_nesting_level Limite le nombre de dimensions autorisées pour les variables d'entrées à plusieurs dimensions, la valeur par défaut est 64.


Rapports d'erreur

Certaines des conditions E_ERROR ont été converties en erreurs qui peuvent être interceptées par un gestionnaire d'erreur local. Si E_RECOVERABLE_ERROR n'est pas géré, il sera géré de la même manière que E_ERROR dans les autres versions de PHP. Les erreurs de ce type sont identifiées comme Catchable fatal error.

Cette modification signifie que la valeur de la constante E_ALL error_reporting est maintenant de 6143, alors qu'elle était de 2047 auparavant. Commme les constantes PHP n'ont pas de signification hors de PHP, il arrive que la valeur entière soit utilisée à la place de la constante, et il faudra alors modifier ces valeurs. Par exemple, configurer le rapport d'erreur dans le fichier httpd.conf ou dans les fichiers .htaccess doit se faire maintenant avec la valeur 6143. Cela s'applique aussi aux valeurs numériques utilisées directement dans les scripts.

Un effet secondaire de la modification faite pour éviter les messages récurrents avec track_errors à On, est qu'il est désormais nécessaire de retourner FALSE depuis le gestionnaire d'erreur pour remplir la variable $php_errormsg. Cela fournit un contrôle fin sur les messages stockés.


Améliorations

  • Amélioration du gestionnaire de mémoire, et augmentation du niveau de mémoire par défaut. Le nouveau gestionnaire de mémoire consomme moins de mémoire et travaille plus vite que sa version précédente. Il demande de la mémoire au système par gros bloc, puis gère son stock lui-même. La valeur de memory_limit dans php.ini est vérifiée non plus pour chaque appel à emalloc() mais pour chaque allocation de bloc. Cela signifie que memory_limit est bien plus précis qu'avant, car le vieux gestionnaire de mémoire ne calculait pas toute la mémoire consommée par la bibliothèque malloc. Grâce à cette nouvelle précision, la quantité de mémoire semble avoir augmenté, mais ce n'est pas le cas. Pour s'adapter à cette augmentation artificielle, la directive memory_limit a été augmentée de 8 à 16 Mo.
  • Ajout du support des constructeurs dans les interfaces, pour forcer la signature des constructeurs via les interfaces. Depuis PHP 5.2.0, les interfaces peuvent contenir des constructeurs. Toutefois, si vous choisissez de déclarer un constructeur dans une interface, les classes qui l'implémentent DOIVENT inclure un constructeur avec une signature qui correspond à celle de l'interface originale. Par signature, nous signifions les paramètres et les types retournés, incluant les types de paramètres, et leur passage par référence ou par valeur.


Migration de PHP 5.0.x à PHP 5.1.x

Sommaire

  • Nouvelles fonctionnalités PHP 5.1.x
  • Changement dans la gestion des références
  • Lecture de []
  • Valeurs entières dans les paramètres de fonction
  • Changements dans les classes et objets
  • Extensions
  • Support des dates et heures
  • Modifications dans le support des bases de données
  • Vérifier E_STRICT

Voir aussi les guides de migration entre les différentes versions de PHP 5.0.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x et 5.6.x.


Nouvelles fonctionnalités PHP 5.1.x

Ce qui a changé en PHP 5.1.x :

  • Réécriture complète de la gestion des dates, avec support des fuseaux horaires.

  • Amélioration significative des performances comparés à PHP 5.0.X.

  • L'extension PDO est maintenant activée par défaut.

  • Plus de 30 nouvelles fonctions dans différentes extensions et fonctions natives.

  • Plus de 400 corrections de bogues.


Changement dans la gestion des références

  • Présentation

  • Code qui fonctionnait en 4.3.x, mais qui échoue maintenant

  • Code qui fonctionnait en 4.3.x, mais qui émet une alerte

  • Code qui échouait en PHP 4.3.x, mais qui fonctionne maintenant

  • Code qui devrait avoir fonctionné en PHP 5.0.x

  • Alertes qui vont et viennent

Présentation

Du point de vue du programmeur, le changement qui aura le plus d'impact sur le code déjà écrit est la manière avec laquelle les références sont gérées dans les versions PHP 4.4.0 et plus récentes.

Jusqu'à la version PHP 4.3 incluse, il était possible d'envoyer, assigner ou retourner des variables par références, alors qu'elles auraient dues être retournées par valeur, comme des constantes, des valeurs temporaires (comme le résultat d'une expression), ou le résultat d'une fonction qui elle-même, retourne une valeur.

<?php
$foo = "123";

function return_value() {
    global $foo;
    return $foo;
}

$bar = &return_value();
?>

Même si ce code fonctionne tel qu'attendu en PHP 4.3, en général il conduit à une situation indéfinie. Le moteur Zend ne peut pas fonctionner correctement avec des valeurs passées par références. Ce bogue peut et a conduit à des corruptions de mémoire difficiles à reproduire, notamment lorsque le code de l'application est compliqué.

En PHP 4.4.0, PHP 5.0.4 et toutes les versions plus récentes, le moteur Zend a été modifié pour reconnaître les cas où une valeur ne doit pas être utilisée par référence. La valeur réelle est maintenant utilisée dans ces cas, et une alerte est émise. Cette alerte prend la forme d'un message E_NOTICE en PHP 4.4.0 et plus récent, et E_STRICT en PHP 5.0.4 et plus récent.

Du code qui pouvait produire des corruptions de mémoire ne peut plus le faire. Cependant, certains codes anciens peuvent fonctionner de manière différente.

Code qui fonctionnait en 4.3.x, mais qui échoue maintenant

<?php
function func(&$arraykey) {
    return $arraykey; // la fonction retourne par valeur!
}

$array = array('a', 'b', 'c');
foreach (array_keys($array) as $key) {
    $y = &func($array[$key]);
    $z[] =& $y;
}

var_dump($z);
?>
<

L'exécution du script ci-dessus dans une version de PHP antérieure à la correction du bogue produit ce résultat :

array(3) {
  [0]=>
  &string(1) "a"
  [1]=>
  &string(1) "b"
  [2]=>
  &string(1) "c"
}

Après la correction du bogue, cela donne :

array(3) {
  [0]=>
  &string(1) "c"
  [1]=>
  &string(1) "c"
  [2]=>
  &string(1) "c"
}

Ceci est dû au fait que func() effectue une assignation par valeur. La valeur de $y est réassignée, et que la liaison par référence avec $z est préservée. Avant la correction du bogue, la valeur était assignée par référence, faisant que la variable $y était réassignée à chaque assignement. La tentative de liaison avec une valeur temporaire est la cause de la corruption de la mémoire.

Ce code peut être réparé pour fonctionner à l'identique avec des versions pré et post-correction. La signature de func() peut être modifiée pour retourner les valeurs par référence, ou bien l'affectation par référence peut être supprimée du résultat de func().

<?php
function func() {
    return 'function return';
}

$x = 'original value';
$y =& $x;
$y = &func();
echo $x;
?>

En PHP 4.3, $x vaudrait 'original value', alors qu'après le changement, il vaudrait 'function return' : n'oubliez pas que la fonction ne retourne plus par référence, et que la référence est convertie en affectation par valeur. Encore une fois, cela peut être corrigé en forçant func() à retourner par référence, ou bien en éliminant l'affectation par référence.

Code qui fonctionnait en PHP 4.3.x, mais qui émet maintenant une erreur

<?php
class Foo {

    function getThis() {
        return $this;
    }

    function destroyThis() {
        $baz =& $this->getThis();
    }
}

$bar = new Foo();
$bar->destroyThis();
var_dump($bar);
?>

En PHP 5.0.3, $bar vaut NULL au lieu de l'objet attendu. Cela arrive car getThis() retourne une valeur, mais que la valeur est assignée par référence. Même si cela fonctionne désormais comme attendu, ce code est en fait invalide, et émettra une alerte E_NOTICE sous PHP 4.4 ou E_STRICT en PHP 5.0.4 et plus récent.

Code qui échouaient en PHP 4.3.x, mais qui fonctionne maintenant

<?php
function &f() {
    $x = "foo";
    var_dump($x);
    print "$x\n";
    return($a);
}

for ($i = 0; $i < 3; $i++) {
    $h = &f();
}
?>

En PHP 4.3, le troisième appel à var_dump() produit NULL, à cause d'une correction de la mémoire, causée par le retour d'une valeur non initialisée par référence. C'est du code valide en PHP 5.0.4 et plus récent, mais il produit une erreur dans les versions plus anciennes.

<?php
$arr = array('a1' => array('alfa' => 'ok'));
$arr =& $arr['a1'];
echo '-'.$arr['alfa']."-\n";
?>

Jusqu'en PHP 5.0.5, il n'était pas possible d'assigner un élément de tableau par référence de cette manière. C'est corrigé maintenant.

Code qui aurait du fonctionner en PHP 5.0.x

Il y a quelques cas de bogues rapportés en PHP PHP 5.0 avant la correction de ce bogue qui 'refonctionnent'. Cependant, dans tous les cas, des erreurs sont émises en PHP 5.1.x, car le code est invalide. Retourner des références avec self:: fonctionne maintenant, mais émet une alerte E_STRICT, et même si votre expérience est différente lors de l'assignation d'un objet par référence, vous verrez toujours une erreur E_ERROR lorsque vous tentez cela même si l'assignation semble fonctionner.

Alertes qui vont et viennent

Des appels imbriqués à des fonctions retournant des valeurs par référence sont valides en PHP 4.3.x et PHP 5.1.x, mais ils émettent des erreurs E_NOTICE et E_STRICT dans les nouvelles versions de PHP.

<?php
function & foo() {
    $var = 'ok';
    return $var;
}

function & bar() {
    return foo();
}

$a =& bar();
echo "$a\n";
?>


Lecture de []

<?php
class XmlTest {

    function test_ref(&$test) {
        $test = "ok";
    }

    function test($test) { }

    function run() {
        $ar = array();
        $this->test_ref($ar[]);
        var_dump($ar);
        $this->test($ar[]);
    }
}

$o = new XmlTest();
$o->run();
?>

Ce code va toujours émettre une alerte fatale E_ERROR, car l'opérateur [] ne peut pas être utilisé pour lire des données. C'est du code invalide depuis PHP 4.4.2 et PHP 5.0.5.


Valeurs entières dans les paramètres de fonction

Avec la venue de PHP 5.0.x, une nouvelle API d'analyse des arguments a été introduite entre 5.0.x et 5.1.x. La gestion des entiers est très stricte, et rejette tous les nombres qui ne sont pas valides lorsque PHP attend un entier. Ces validations ont maintenant été assouplies, pour accepter des chaînes telles que " 123" et "123 ", et elles ne les refuseront plus comme c'était le cas en PHP 5.0.x. Toutefois, pour faire la promotion de la sécurité et de la validation, les fonctions PHP vont désormais émettre des alertes E_NOTICE lorsque de tels arguments sont donnés.


Changements dans les classes et objets

  • instanceof, is_a(), is_subclass_of() et catch

  • Méthodes privées abstraites

  • Options d'accès dans les interfaces

  • Changements dans les règles d'héritage

  • Constantes de classe

instanceof, is_a(), is_subclass_of() et catch

En PHP 5.0, is_a() a été rendu abandonné et remplacé par l'opérateur instanceof. Il y a eu des problèmes dans les premières implantations de instanceof, qui se base sur __autoload() pour rechercher les classes non définies. Si la classe n'est pas définie, instanceof émettait une erreur fatale E_ERROR, après l'échec de __autoload(). Le même comportement apparaissait avec l'opérateur catch et la fonction is_subclass_of().

Aucune de ces instructions n'appelle plus __autoload() en PHP 5.1.x, et les palliatifs à base de class_exists() utilisé dans le code écrit en PHP 5.0.x ne sont plus nécessaires.

Méthodes privées abstraites

Les méthodes privées abstraites sont supportées en PHP entre 5.0.0 et et 5.0.4, mais elles ont été abandonnées car private et abstract sont mutuellement exclusif.

Changements dans les règles d'héritage

Avec PHP 5.0, les déclarations de fonctions dans les interfaces sont traitées exactement de la même manière que pour les déclarations de fonctions dans les classes. Ce n'est plus le cas depuis octobre 2004, au moment où seuls l'option d'accès public a été autorisée dans les déclarations d'interface. Depuis avril 2005, ce qui est antérieur à PHP 5.0b1, l'option static a aussi été autorisée. Mais les options protected and private émettent désormais une erreur E_ERROR, tout comme abstract. Notez que cette modification ne va pas affecter votre code existant, car aucune de ces options n'a de sens dans le cadre d'une interface.

Changements dans les règles d'héritages

En PHP 5.0, il était possible d'avoir une déclaration de fonction qui dérivait d'une classe ayant la même fonction mais pas la même signature. Par exemple :

Ce code va émettre une erreur E_STRICT si utilisé avec PHP 5.1.x.

<?php
class Base {
    function &return_by_ref() {
        $r = 1;
        return $r;
    }
}

class Derived extends Base {
    function return_by_ref() {
        return 1;
    }
}
?>

Constantes de classe

En PHP 5.0.x, le code suivant était valide :

En PHP 5.1.x, la redéfinition d'une constante de classe émet une erreur fatale E_ERROR.

<?php
class test {
    const foobar = 'foo';
    const foobar = 'bar';
}

?>


Extensions

  • Extensions qui ont été retirées du coeur de PHP

  • Constantes de classes, nouvelles dans les extensions de PHP 5.1.x

Extensions qui ont été retirées du coeur de PHP

La première chose que vous remarquerez en chargeant PHP 5.1.x, est que plusieurs extensions anciennes ont disparues. Ces extensions sont encore supportées, et entretenues dans la bibliothèque PECL, PHP Extension Community Library (PECL), accessible à l'URL » http://pecl.php.net/.

Extensions retirées
Extension | Remplacement/Statut
ext/cpdf | pecl/pdflib
ext/dbx | pecl/dbx
ext/dio | pecl/dio
ext/fam | Sans entretien
ext/ingres_ii | pecl/ingres
ext/ircg | Sans entretien
ext/mcve | pecl/mcve
ext/mnogosearch | Sans entretien
ext/oracle | ext/oci8 or ext/pdo_oci
ext/ovrimos | Sans entretien
ext/pfpro | Sans entretien
ext/w32api | » pecl/ffi
ext/yp | Sans entretien
ext/activescript | » pecl/activescript

Les modules de PECL qui ne sont plus entretenus (i.e. qui n'ont pas été mis à jour depuis longtemps, ou qui n'ont plus de responsable déclaré), sont toujours accessible via CVS, à l'adresse » http://svn.php.net/viewvc/pecl. Cependant, les modules PHP qui ne sont pas publiés, sont par nature sans support, et leur installation est à vos risques et périls.

Constantes de classes, nouvelles dans les extensions de PHP 5.1.x

L'API du moteur Zend 2.1 permet aux développeurs d'extensions de déclarer leurs constantes dans les versions orientées objets de leur extension. Les nouvelles extensions écrites pour PHP 5.1.x, incluant SPL, PDO, XMLReader et date, dispose de constantes au format PDO::CLASS_CONSTANT plutôt qu'au format C de type PDO_CLASS_CONSTANT afin de réduire la pollution des espaces de noms globaux de PHP.


Support des dates et heures

Le support des dates et heures a été entièrement réécrit en PHP 5.1.x, et n'utilise plus du tout le système pour gérer les opérations sur les fuseaux horaires. Désormais, il utilise, dans l'ordre :

  • La fuseau horaire configuré avec la fonction date_default_timezone_set()

  • La variable d'environnement TZ si elle n'est pas vide

  • une prédiction magique (si le système d'exploitation le supporte)

  • Si aucune méthode ci-dessus ne fonctionne, UTC.

Pour s'assurer de la précision, et éviter les alertes E_STRICT, vous devez définir votre fuseau horaire dans le fichier php.ini avec ce format :

date.timezone = Europe/Paris

Les fuseaux horaires supportés sont listés dans l'annexe de la documentation : annexe des fuseaux horaires.

Notez aussi que strtotime() retourne désormais FALSE en cas d'échec, au lieu de -1.


Modifications dans le support des bases de données

  • extension PDO

  • Support de MySQL

  • Support de SQLite

Extension PDO

Les PHP Data Objects (PDO) ont été introduits comme extension PECL en PHP 5.0, et sont devenus partie intégrale de la distribution PHP en version 5.1.0. L'extension PDO propose une interface constante pour accéder aux bases de données, et est utilisée avec des pilotes PDO. Chaque pilote assure le relais avec une base de données spécifique, mais l'envoi de requête et la réception des données sont fait depuis les fonctions PDO. Le pilote est choisi avec la fonction PDO::__construct().

Notez que l'extension PDO et ses pilotes sont conçus pour être des extensions partagées. Cela permet des mises à jour simples des pilotes à partir de PECL, sans forcer la recompilation de PHP.

Au moment de la publication de PHP 5.1.x, PDO est fin prêt pour une utilisation grand public, et peut être adopté dans la plupart des situations. Cependant, il faut bien comprendre que PDO et ses pilotes sont relativement jeunes, et manquent encore de certaines fonctionnalités spécifiques à une base de données. Faites votre évaluation complète de PDO avant de l'adopter pour un projet.

L'ancien code aura besoin des extensions spécifiques de base de données, qui sont toujours entretenues.

Support de MySQL

En PHP 4, le support MySQL 3 était automatique. Avec les versions 5.0 de PHP, il y a maintenant 2 extensions MySQL, qui portent les noms de 'mysql' et 'mysqli' : elles sont été conçues pour supporter MySQL < 4.1 et MySQL 4.1 et plus récent, respectivement. Avec l'introduction de PDO, qui fournit une interface rapide avec toutes les bases de données supportées par PHP, le pilote PDO_MYSQL peut supporter toutes les versions de MySQL (MySQL 3, 4 or 5) avec du code PHP écrit avec PDO, en fonction de la version de la bibliothèque de MySQL compilée avec PHP. Les anciennes extensions MySQL restent en place pour assurer la compatibilité ascendante, mais elles ne sont plus activées par défaut.

Support de SQLite

En PHP 5.0.x, le support de SQLite 2 a été ajouté dans la distribution, et a été placé en PECL pour PHP 4.3 et 4.4. Avec l'introduction de PDO, l'extension sqlite se dédouble pour servir aussi de pilote PDO. Cela est dû au fait que l'extension PDO de PHP 5.1.x dépend de PDO.

PHP 5.1.x inclut un grand nombre d'interface alternatives pour sqlite :

L'extension sqlite fournit une approche classique procédurale et POO, telle que celle qui a été utilisée dans les anciennes versions de PDO. Elle fournit aussi un pilote 'sqlite2', qui permet d'accéder au code SQLite2, en utilisant PDO.

PDO_SQLITE fournit un pilote 'sqlite' version 3. SQLite version 3 est nettement supérieur à SQLite version 2, mais les formats de fichiers des deux versions sont incompatibles.

Si votre projet basé sur SQLite est déjà écrit, et fonctionne avec d'anciennes versions de PHP, vous pouvez continuer à utiliser ext/sqlite sans problème, mais vous devez explicitement activer PDO et sqlite. Les nouveaux projets doivent utiliser PDO et le pilote 'sqlite' version 3, car il est plus rapide que le pilote SQLite 2, dispose d'un verrou efficace, supporte les commandes préparées et les colonnes binaires natives.

Vous devez activer PDO pour utiliser l'extension SQLite. Si vous voulez compiler PDO comme extension partagée, alors l'extension SQLite doit être aussi une extension partagée. C'est la même chose pour le pilote PDO.


Vérifier E_STRICT

Si vous n'avez qu'un seul script à vérifier, vous pouvez identifier les erreurs E_STRICT en utilisant PHP en ligne de commande :

php -d error_reporting=4095 -l script_to_check.php

Pour les projets d'envergure, le script Shell ci-dessous sera plus efficace :

#!/bin/sh

directory=$1

shift

# Les extensions suivantes sont vérifiées
extensions="php inc"

check_file ()
{
  echo -ne "Vérification E_STRICT de la syntaxe PHP sur $1 ..."

  # Options:
  ERRORS=`/www/php/bin/php -d display_errors=1 -d html_errors=0 -d error_prepend_string=" " -d error_append_string=" " -d error_reporting=4095 -l $1 | grep -v "No syntax errors detected"`

  if test -z "$ERRORS"; then
    echo -ne "OK."
  else
    echo -e "Erreurs trouvées!\n$ERRORS"
  fi

  echo
}

# test des autres arguments
for FILE in "$@" ; do
  for ext in $extensions; do
     if echo $FILE | grep "\.$ext$" > /dev/null; then
       if test -f $FILE; then
         check_file "$FILE"
       fi
     fi
  done
done


Migration de PHP 4 à PHP 5.0.x

Sommaire

  • Nouveautés de PHP 5.0.x
  • Incompatibilités avec les version antérieures
  • CLI et CGI
  • Migration des fichiers de configuration
  • Nouvelles fonctions
  • Nouvelles Directives
  • Bases de données
  • Nouveau Modèle Objet
  • Rapport d'erreurs

Voir aussi les guides de migration entre les différentes versions de PHP 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x et 5.6.x.


Nouveautés de PHP 5.0.x

Les modifications apportées à PHP 5 et au Zend Engine 2 augmentent considérablement les capacités et les performances de PHP. Une attention toute particulière a été apportée à ce que cette nouvelle version soit la plus compatible possible avec les scripts antérieurs. Ainsi la migration de votre code de PHP 4 vers PHP 5 devrait être aisée. La plupart des scripts PHP 4 devraient être prêts à fonctionner sans nécessiter la moindre modification. Il existe toutefois quelques différences et vous devriez tester vos codes avant de changer de version en production.


Incompatibilités avec les version antérieures

Bien que la plupart des scripts PHP 4 existants devraient fonctionner, il convient de noter quelques incompatibilités avec les versions antérieures de PHP :

  • Il y a quelques nouveaux mots réservés.
  • strrpos() et strripos() utilisent maintenant une chaîne de caractères complète (un seul caractère auparavant) en tant qu'élément de recherche.
  • L'utilisation d'index illégaux sur une chaîne de caractères entraîne maintenant un message E_ERROR au lieu d'un message E_WARNING auparavant. Voici un exemple incorrect : $str = 'abc'; unset($str[0]);.
  • La fonction array_merge() a été modifiée pour n'accepter que des tableaux. Pour chaque variable passée en paramètre autre qu'un tableau, un message E_WARNING sera envoyé. Soyez attentifs car votre script pourrait émettre des E_WARNING de façon inopinée.
  • La variable de serveur PATH_TRANSLATED n'est plus définie implicitement avec Apache2 SAPI contrairement à auparavant (PHP 4) où elle était fixée avec la même valeur que SCRIPT_FILENAME lorsqu'Apache ne la renseignait pas. Cette modification a été apportée afin d'être en conformité avec les » spécifications CGI/1.1. Merci de consulter le » bogue #23610 pour plus d'informations, ainsi que la description de $_SERVER['PATH_TRANSLATED'] du manuel. Ce problème affecte également PHP >= 4.3.2.
  • La constante T_ML_CONSTANT n'est plus définie par l'extension Tokenizer. Si error_reporting est réglée à E_ALL, PHP va générer un avertissement. Bien que T_ML_CONSTANT n'ait jamais été utilisée, elle était définie dans PHP 4. Avec PHP 4 et PHP 5, // et /* */ sont assimilés à la constante T_COMMENT. Toutefois les commentaires de style PHPDoc /** */, qui sont analysés depuis PHP 5, sont reconnus en tant que T_DOC_COMMENT.
  • $_SERVER contient dorénavant argc et argv si votre variables_order inclus "S". Si vous avez configuré votre système pour qu'il ne crée pas $_SERVER, ils n'existeront bien sûr pas. Cette modification a été effectuée afin que argc et argv soient toujours accessibles dans la version CLI quelle que soit la valeur de variables_order. Ainsi, la version CLI renseignera dorénavant toujours les variables $argc et $argv.
  • Un objet sans propriété n'est plus considéré comme vide (empty()).
  • Dans certains cas, les classes doivent être déclarées avant d'être utilisées. Cela survient uniquement si les nouvelles fonctionnalités de PHP 5 (comme les interfaces) sont utilisées. Sinon, le comportement sera le même qu'avant.
  • Les fonctions get_class(), get_parent_class() et get_class_methods() retournent désormais le nom de la classe comme elle a été déclarée (sensible à la casse), ce qui peut causer des problèmes dans vos anciens scripts qui utilisent le comportement précédent (le nom de la classe était toujours retourné en minuscules). Une solution possible est de rechercher ces fonctions dans tous vos anciens scripts et d'utiliser la fonction strtolower(). Ces changements de sensibilité à la casse sont également appliqués aux constantes magiques prédéfinies __CLASS__, __METHOD__ et __FUNCTION__. Les valeurs sont retournées exactement comme elles ont été déclarées (sensible à la casse).
  • La fonction ip2long() retourne maintenant FALSE lorsqu'une adresse IP invalide est entrée comme argument de la fonction, et non plus -1.
  • Lorsque des fonctions sont définies dans un fichier inclus, elles peuvent être utilisées dans le fichier principal, qu'elles soient définies avant ou après l'instruction return. Si le fichier est inclus deux fois, PHP 5 émet une erreur fatale car les fonctions sont toujours déclarées, tandis que PHP 4 n'a aucun problème avec ça. Il est recommandé d'utiliser l'instruction include_once au lieu de vérifier si le fichier a déjà été inclus et de retourner, conditionnellement, l'inclusion du fichier.
  • include_once et require_once normalisent d'abord le chemin du fichier à inclure sous Windows. Donc inclure le fichier A.php et le fichier a.php revient à n'inclure qu'une seule fois ce fichier.
  • Le fait de passer un tableau à une fonction par sa valeur ne réinitialise plus le pointeur interne pour les tableaux dont on accède à l'intérieur de la fonction. En d'autres termes, en PHP 4, lorsque vous passiez un tableau à une fonction, son pointeur interne à l'intérieur de la fonction était réinitialisé, tandis qu'en PHP 5, lorsque vous passez un tableau à une fonction, le pointeur interne du tableau à l'intérieur de la fonction reste à la même position que lorsqu'il est passé à la fonction.

Exemple #1 strrpos() et strripos() recherchent maintenant une chaîne de caractères dans une autre

<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>

Exemple #2 Un objet sans propriété n'est plus considéré comme vide (empty())

<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if ($t) {
    // Cette portion de code sera exécutée
}
?>

Exemple #3 Dans certains cas, les classes doivent être déclarées avant d'être utilisées

<?php

// fonctionne sans erreur :
$a = new a();
class a {
}

// ici, une erreur :
$a = new b();

interface c{
}
class b implements c {
}

?>


CLI et CGI

PHP 5 introduit des modifications dans les noms des fichiers CLI et CGI. Avec PHP 5, la version CGI s'appelle maintenant php-cgi.exe (auparavant php.exe) et la version CLI se trouve maintenant dans le répertoire principal de PHP (auparavant cli/php.exe).

Un nouveau mode a également été introduit avec PHP 5 : php-win.exe. Cette version est équivalente à la version CLI sauf qu'elle n'ouvre pas de fenêtre de console DOS au lancement. Ce comportement est similaire à celui de php-gtk.

Avec PHP 5, la version CLI renseignera toujours les variables globales $argv et $argc en accord avec toutes les directives du php.ini. Même si vous avez la directive register_argc_argv configurée à Off, cela n'aura pas d'effet sur la version CLI.

Voir aussi la documentation sur la ligne de commande.


Migration des fichiers de configuration

Les modules ISAPI ayant changé de nom (php4xxx vers php5xxx), il est nécessaire de faire quelques modifications dans vos fichiers de configuration. Des modifications des noms des versions CLI et CGI ont également été faites. Consultez la section correspondante pour plus d'informations.

La migration du fichier de configuration Apache est très facile. Consultez l'exemple ci-dessous afin de connaître les modifications que vous devez faire :

Exemple #1 Migration des fichiers de configuration Apache

# changez cette ligne :
LoadModule php4_module /php/sapi/php4apache2.dll

# en :
LoadModule php5_module /php/php5apache2.dll

Si votre serveur web utilise PHP en mode CGI, il vous faut noter que la version CGI a changé de nom, passant de php.exe à php-cgi.exe. Voici la modification à faire, pour Apache :

Exemple #2 Migration des fichiers de configuration Apache, en mode CGI

# changez cette ligne :
Action application/x-httpd-php "/php/php.exe"

# en :
Action application/x-httpd-php "/php/php-cgi.exe"

Si vous utilisez un serveur web autre que Apache, vous devez également changer le nom de fichier du module ISAPI ou du CGI.


Nouvelles fonctions

PHP 5 introduit de nouvelles fonctions. En voici la liste :

Tableaux :

  • array_combine() : crée un tableau en combinant un tableau pour les clés et un autre pour les valeurs correspondantes.
  • array_diff_uassoc() : renvoie la différence entre deux tableaux avec la possibilité de vérifier les index par l'appel d'une fonction utilisateur de callback.
  • array_udiff() : renvoie la différence entre deux tableaux en utilisant une fonction de rappel pour la comparaison des valeurs.
  • array_udiff_assoc() : renvoie la différence entre deux tableaux avec la possibilité de vérifier les index. Les valeurs sont, elles, comparées grâce à une fonction utilisateur de rappel.
  • array_udiff_uassoc() : renvoie la différence entre deux tableaux avec la possibilité de vérifier les index. Les valeurs sont comparées grâce à une fonction utilisateur de rappel ; les index sont également comparés grâce à une (autre) fonction utilisateur de rappel.
  • array_walk_recursive() : applique une fonction utilisateur de façon récursive à chaque élément d'un tableau.
  • array_uintersect_assoc() : calcule l'intersection de deux tableaux avec une vérification des index. Les données sont comparées en utilisant une fonction de rappel.
  • array_uintersect_uassoc() : calcule l'intersection de deux tableaux avec une vérification des index. Les données et les index sont comparés en utilisant des fonctions de rappel.
  • array_uintersect() : calcule l'intersection de deux tableaux. Les données sont comparées en utilisant une fonction de rappel.

InterBase :

  • ibase_affected_rows() : renvoie le nombre de lignes modifiées par la requête précédente.
  • ibase_backup() : lance une tâche de sauvegarde dans le gestionnaire de services et rend la main immédiatement.
  • ibase_commit_ret() : permet de valider une transaction sans avoir à la fermer.
  • ibase_db_info() : renvoie des statistiques sur une base de données.
  • ibase_drop_db() : supprime une base de données.
  • ibase_errcode() : renvoie un code d'erreur.
  • ibase_free_event_handler() : annule un gestionnaire d'événements enregistré.
  • ibase_gen_id() : incrémente le générateur donné et renvoie sa nouvelle valeur.
  • ibase_maintain_db() : exécute une commande de maintenance sur le serveur de base de données.
  • ibase_name_result() : assigne un nom à un jeu de résultats.
  • ibase_num_params() : renvoie le nombre de paramètres d'une requête préparée.
  • ibase_param_info() : renvoie des informations sur un paramètre spécifique d'une requête préparée.
  • ibase_restore() : lance une restauration dans le gestionnaire de services et rend la main immédiatement.
  • ibase_rollback_ret() : annule la transaction et conserve son contexte.
  • ibase_server_info() : renvoie des statistiques sur un serveur de bases de données.
  • ibase_service_attach() : initie une connexion au gestionnaire de services.
  • ibase_service_detach() : arrête une connexion au gestionnaire de services.
  • ibase_set_event_handler() : permet d'enregistrer une fonction de callback appelée lorsque des événements sont postés.
  • ibase_wait_event() : attend qu'un événement soit posté par la base de données.

iconv :

  • iconv_mime_decode() : décode un champ d'en-tête MIME.
  • iconv_mime_decode_headers() : décode plusieurs champs d'en-tête MIME en une seule fois.
  • iconv_mime_encode() : crée un champ d'en-tête MIME.
  • iconv_strlen() : renvoie le nombre de caractères de la chaîne.
  • iconv_strpos() : trouve la position de la première occurrence d'une chaîne donnée dans une autre chaîne.
  • iconv_strrpos() : trouve la position de la dernière occurrence dans une chaîne
  • iconv_substr() : supprime un morceau de chaîne.

Flux :

  • stream_copy_to_stream() : copie les données d'un flux vers un autre.
  • stream_get_line() : récupère une ligne d'un flux donné jusqu'au délimiteur fourni.
  • stream_socket_accept() : accepte une connexion sur un socket créé avecstream_socket_server().
  • stream_socket_client() : ouvre une connexion socket sur un domaine Unix ou Internet.
  • stream_socket_get_name() : récupère le nom des sockets locaux ou distants.
  • stream_socket_recvfrom() : reçoit des données d'un socket, qu'il soit connecté ou non.
  • stream_socket_sendto() : envoie un message vers un socket, qu'il soit connecté ou non.
  • stream_socket_server() : créé un socket de domaine Unix ou Internet.

Date et heure :

  • idate() : formate une date/heure en tant qu'entier.
  • date_sunset() : renvoie l'heure du coucher du soleil pour un jour et un endroit donnés.
  • date_sunrise() : renvoie l'heure du lever du soleil pour un jour et un endroit donnés.
  • time_nanosleep() : marque une pause exprimée en secondes et nanosecondes.

Chaîne de caractères :

  • str_split() : convertit une chaîne en tableau.
  • strpbrk() : recherche dans une chaîne l'un des caractères d'une liste.
  • substr_compare() : compare deux chaînes depuis un offset jusqu'à une longueur en caractères, d'une façon sécurisée contre les données binaires et, optionnellement, insensible à la casse.

Autres :

  • convert_uudecode() : décode une chaîne.
  • convert_uuencode() : encode une chaîne.
  • curl_copy_handle() : copie un descripteur cURL avec toutes ses préférences.
  • dba_key_split() : sépare une clé sous forme de chaîne en représentation sous forme de tableau.
  • dbase_get_header_info() : récupère les informations d'en-tête d'une base de données dBase.
  • dbx_fetch_row() : récupère une ligne à partir d'un résultat de requête ayant le marqueur DBX_RESULT_UNBUFFERED.
  • fbsql_set_password() : change le mot de passe d'un utilisateur donné.
  • file_put_contents() : écrit une chaîne dans un fichier.
  • ftp_alloc() : alloue de l'espace pour un fichier à télécharger.
  • get_declared_interfaces() : renvoie un tableau contenant toutes les interfaces déclarées.
  • get_headers() : renvoie tous les en-têtes envoyés par le serveur en réponse à une requête HTTP.
  • headers_list() : renvoie la liste des en-têtes de réponse envoyés (ou prêts à être envoyés).
  • http_build_query() : renvoie une requête encodée sous forme d'URL.
  • image_type_to_extension() : renvoie l'extension
de fichier pour le type d'image retourné par getimagesize(),
exif_read_data(),
exif_thumbnail(),
exif_imagetype().
  • imagefilter() : applique un filtre sur une image en utilisant des arguments spécialisés.
  • imap_getacl() : récupère la valeur de l'ACL pour une boîte aux lettres donnée.
  • ldap_sasl_bind(): établit une liaison à un répertoire LDAP en utilisant SASL.
  • mb_list_encodings() : retourne un tableau contenant tous les encodages supportés.
  • pcntl_getpriority() : renvoie la priorité d'un processus.
  • pcntl_wait() : attend ou renvoie le statut d'un processus enfant comme défini par l'appel système waitpid().
  • pg_version() : renvoie un tableau contenant les versions du client, du protocole et du serveur PostGreSQL, si disponibles.
  • php_check_syntax() : vérifie la syntaxe d'un fichier donné.
  • php_strip_whitespace() : renvoie la source en supprimant les commentaires et les espaces.
  • proc_nice() : change la priorité du processus courant.
  • pspell_config_data_dir() : change l'emplacement des fichiers de langues.
  • pspell_config_dict_dir() : change l'emplacement de la liste principale de mots.
  • setrawcookie() : envoie un cookie sans encodage url de la valeur.
  • scandir() - Liste les fichiers et les dossiers d'un chemin spécifique.
  • snmp_read_mib() : lit et analyse un fichier MIB dans l'arbre actif MIB.
  • sqlite_fetch_column_types() : renvoie un tableau contenant les types des colonnes pour une table spécifiée.

Note:

L'API de l'extension Tidy a changé du tout au tout.


Nouvelles Directives

De nouvelles directives pour le fichier php.ini ont été ajoutées avec PHP 5. En voici une liste :

  • mail.force_extra_parameters : permet de forcer l'ajout du paramètre spécifié en tant que paramètre supplémentaire pour sendmail. Ces paramètres prendront la place du cinquième paramètre de la fonction mail() quoi qu'il arrive, même en safe mode.
  • register_long_arrays : permet/interdit à PHP d'utiliser les tableaux $HTTP_*_VARS.
  • session.hash_function : permet de choisir une fonction de hachage (MD5 ou SHA-1).
  • session.hash_bits_per_character : permet de définir le nombre de bits utilisés pour chaque caractère lors de conversions de données binaires en éléments lisibles (de 4 à 6).
  • zend.ze1_compatibility_mode : active le mode de compatibilité avec le Zend Engine 1 (PHP 4).


Bases de données

Certaines modifications ont été apportées au support des bases de données (MySQL et SQLite).

PHP 5 n'intègre pas les bibliothèques clientes MySQL par défaut, entre autres pour des raisons de licence. Pour plus d'informations, lisez la FAQ.

Il existe également une nouvelle extension, MySQLi (Improved MySQL), créée pour fonctionner avec MySQL 4.1 et supérieur.

À partir de PHP 5, l'extension SQLite est intégrée à PHP. SQLite est un moteur de bases de données embarqué, il ne s'agit pas simplement d'une bibliothèque cliente permettant de se connecter à un serveur de bases de données (comme MySQL ou PostgreSQL). La bibliothèque SQLite lit et écrit ses bases de données directement dans des fichiers sur le disque.


Nouveau Modèle Objet

PHP 5 inclut un nouveau modèle objet. Le traitement des objets en PHP a complètement été réécrit pour arriver à de meilleures performances et plus de fonctionnalités. Dans les versions précédentes de PHP, les objets étaient traités comme des types primitifs (par exemple les entiers ou les chaînes de caractères). L'inconvénient de cette méthode était que sémantiquement, l'objet en entier était copié lorsqu'une variable était assignée ou passée comme paramètre à une fonction. Dans la nouvelle approche, les objets sont référencés par un pointeur et non pas leur valeur (on peut penser à un pointeur en tant qu'identifiant d'objet).

Beaucoup de développeurs PHP ne se rendent pas compte des caprices lors de la copie dans l'ancien modèle objet et, par conséquent, la majorité des applications PHP devrait fonctionner directement ou avec très peu de modifications.

Le nouveau modèle objet est documenté dans la partie de référence du langage.

En PHP 5, la fonction portant le nom d'une classe est appelée comme constructeur seulement si définit dans la même classe. En PHP 4, il sera également appelé s'il est défini dans la classe parent.

Voir aussi la directive zend.ze1_compatibility_mode pour la compatibilité avec PHP 4.


Rapport d'erreurs

Depuis PHP 5, la constante d'erreur constant E_STRICT est disponible, avec la valeur 2048. Lorsqu'activés, les messages seront émis pour vous avertir que votre code est obsolète ou bien qu'il le sera bientôt.

Note: E_ALL n'inclut pas E_STRICT; il n'est donc pas activé par défaut. Vous devez définir explicitement le niveau de repport d'erreur pour inclure le niveau E_STRICT afin d'en lire les messages.

Voir aussi les constantes prédéfinies pour plus d'informations.


  • « Rapport d'erreurs
  • À propos du débogueur en PHP »
  • PHP Manual
  • Annexes
  • Débogueur PHP

Débogueur PHP

Sommaire

  • À propos du débogueur en PHP


À propos du débogueur en PHP

PHP 5.6 embarque le debogueur interactif phpdbg. Les versions de PHP antérieures à la 5.6 n'incluent aucun support de déboguage. Néanmoins, vous pouvez utiliser l'un des débogueurs tierces suivants. L'environnement de développement » Zend inclut un débogueur, ou il y a les extensions gratuites telles que DBG (» http://www.php-debugger.com/dbg/), » Advanced PHP Debugger (APD) ou » Xdebug.


  • « À propos du débogueur en PHP
  • Liste des options de configuration internes »
  • PHP Manual
  • Annexes
  • Options de configuration

Options de configuration

Sommaire

  • Liste des options de configuration internes


Liste des options de configuration internes

Ci-dessous une liste partielle des options de configuration utilisées par le script PHP configure lors de la compilation sur les systèmes Unix et assimilés. La plupart des options de configuration sont listées dans leur emplacement approprié sur les pages de référence de l'extension et non pas ici. Pour une liste complète des options de configuration, exécutez la commande ./configure --help dans le répertoire contenant les sources de PHP après avoir exécuté la commande autoconf (voir aussi le chapitre sur l'installation de PHP). Vous pouvez également être intéressé par la lecture de la documentation sur la » configuration GNU pour plus d'informations sur les options de la commande configure comme --prefix=PREFIX.

Note:

Ils sont également utilisés lors de la compilation. Si vous voulez modifier la configuration de l'exécution de PHP, lisez le chapitre sur la configuration de l'exécution.

  • Divers
  • Comportement de PHP
  • Serveur

Options de configuration

Options diverses

--enable-debug

Compile en activant les symboles de déboguage

--with-layout=TYPE

Spécifie la façon dont les fichiers installés seront présentés. TYPE peut valoir PHP (valeur par défaut) ou GNU.

--with-pear=DIR

Installe PEAR dans le dossier DIR (par défaut, PREFIX/lib/php).

--without-pear

Ne pas installer PEAR.

--enable-sigchild

Active le propre traitement du SIGCHLD de PHP.

--disable-rpath

Désactive le passage de chemins additionnels de recherche de bibliothèques d'exécution.

--enable-libgcc

Active explicitement le lien avec la bibliothèque libgcc.

--enable-php-streams

Inclut le support expérimental des flux PHP. Utilisez-le seulement si vous testez le code !

--with-zlib-dir[=DIR]

Définit le chemin du répertoire d'installation de la bibliothèque zlib.

--with-tsrm-pthreads

Utilise les threads POSIX (par défaut).

--enable-shared[=PKGS]

Compile les bibliothèques de partage [defaut=oui].

--enable-static[=PKGS]

Compile les bibliothèques statiques [default=oui].

--enable-fast-install[=PKGS]

Optimise pour une installation rapide [default=oui].

--with-gnu-ld

Le compilateur C utilise GNU ld [default=non].

--disable-libtool-lock

Évite de verrouiller (cela pourrait casser des constructions parallèles).

--with-pic

Tente d'utiliser uniquement les objets PIC/non-PIC [default=utilisation des deux].

--enable-memory-limit

Compile avec le support de limitation de mémoire. (non disponible depuis PHP 5.2.1 - toujours activé)

--disable-url-fopen-wrapper

Désactive le gestionnaire de ressources distantes, qui permet d'accéder à des fichiers via des URL et HTTP ou FTP. (non disponible depuis PHP 5.2.5)

--enable-versioning

Exporte uniquement les symboles requis. Voir le fichier INSTALL pour plus d'informations.

Options PHP

--enable-maintainer-mode

Active des règles de compilation (make) et des dépendances pas toujours utiles aux utilisateurs occasionnels.

--with-config-file-path=PATH

Indique le chemin dans lequel réside le fichier php.ini. Par défaut, c'est PREFIX/lib.

--enable-safe-mode

Active le safe mode (mode sécurisé) par défaut.

Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

--with-exec-dir[=DIR]

Autorise uniquement des exécutables dans le dossier DIR lorsque le safe mode est activé ; par défaut, DIR vaut /usr/local/php/bin.

Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

--enable-magic-quotes

Active les guillemets magiques.

Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

--disable-short-tags

Désactive les balises courtes <?.

--enable-zend-multibyte

Active le codage multi-octets dans l'analyseur lexical et syntaxique. Lorsque PHP est compilé avec une telle option, la directive encoding est disponible dans la construction declare.

Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

--with-libdir

Précise le chemin vers les bibliothèques de construction Unix pour construire PHP. Pour les systèmes 64bits, vous devez renseigner le dossier lib64 comme cela: --with-libdir=lib64.

Options SAPI

La liste suivante contient les options valides SAPI&s (Server Application Programming Interface) pour PHP.

--with-aolserver=DIR

Spécifie le chemin d'installation du serveur AOLserver.

--with-apxs[=FILE]

Compile un module Apache partagé. FILE est un chemin d'accès optionnel vers les outils apxs d'Apache. Par défaut, c'est apxs. Assurez-vous de spécifier la version d'apxs qui est réellement installée sur votre système, et NON pas celle qui est fournie avec Apache.

--with-apache[=DIR]

Compile le module Apache. DIR est le chemin du dossier d'installation d'Apache. Par défaut, DIR vaut /usr/local/apache.

--with-mod_charset

Active les tables de transfert pour mod_charset (version russe de Apache).

--with-apxs2[=FILE]

Compile le module partagé Apache 2.0. FILE est un chemin d'accès optionnel vers les outils apxs d'Apache. Par défaut, c'est apxs.

--with-caudium=DIR

Compile PHP comme module Pike pour utilisation avec Caudium. DIR est le serveur Caudium. Par défaut, c'est /usr/local/caudium/server.

--disable-cli

Disponible depuis PHP 4.3.0. Empêche la compilation de la version CLI de PHP (cela force aussi l'option --without-pear). Disponible depuis PHP 4.3.0. Plus d'informations dans la section sur l'utilisation de PHP en ligne de commande.

--enable-phpdbg

Active le support du module SAPI de débogage intéractif phpdbg en PHP 5.6.x et supérieur.

--enable-embed[=TYPE]

Active la compilation de la bibliothèque intégrée SAPI. TYPE vaut soit shared, soit static. Par défaut, c'est shared. Disponible depuis PHP 4.3.0.

--with-fhttpd[=DIR]

Compile le module fhttpd. DIR est le dossier d'installation de fhttpd. Par défaut, DIR vaut /usr/local/src/fhttpd. Disponible depuis PHP 4.3.0.

--with-isapi=DIR

Compile PHP sous forme de module ISAPI pour utiliser avec le serveur Zeus.

--with-nsapi=DIR

Spécifie le chemin vers le serveur web Netscape/iPlanet/SunONE.

--with-phttpd=DIR

Aucune information fournie actuellement.

--with-pi3web=DIR

Compile PHP sous forme de module pour utiliser avec le serveur Pi3Web.

--with-roxen=DIR

Compile PHP sous forme de module Pike. DIR est le chemin d'installation de Roxen. Par défaut, DIR vaut /usr/local/roxen/server.

--enable-roxen-zts

Compile PHP sous forme de module Roxen, en utilisant Zend Thread Safety.

--with-servlet[=DIR]

Inclut le support des servlets. DIR est le chemin d'installation du JSDK. Cette SAPI impose que l'extension java soit compilée comme une bibliothèque partagée.

--with-thttpd=SRCDIR

Compile PHP comme module thttpd.

--with-tux=MODULEDIR

Compile PHP comme module TUX (Linux uniquement).

--with-webjames=SRCDIR

Compile PHP comme module WebJames (RISC OS uniquement)

--disable-cgi

Empêche la compilation de la version CGI de PHP. Disponible depuis PHP 4.3.0

Depuis PHP 5.3.0, cet argument active aussi FastCGI qui devait avant être précisé had to be enabled using --enable-fastcgi.

--enable-force-cgi-redirect

Active la sécurité lors des redirections internes du serveur. Il est recommandé d'utiliser cette option lorsque vous utilisez PHP en CGI avec Apache.

Depuis PHP 5.3.0, cet argument est activé par défaut et n'existe plus. Pour le désactiver, la directive ini cgi.force_redirect doit être passée à 0.

--enable-discard-path

Si cette option est activée, l'exécutable CGI PHP peut être placé hors de l'arborescence web, en toute sécurité. Il ne sera pas possible de contourner les fichiers .htaccess. security.

Depuis PHP 5.3.0, cet argument est désactivé par défaut et n'est plus disponible. Pour activer la directive, utilisez le paramètre ini cgi.discard_path et mettez le à 1.

--enable-fastcgi

Si cette option est activée, le module CGI sera compilé avec le support FastCGI.

Depuis PHP 5.3.0, cette directive n'existe plus. Voyez --enable-cgi à la place.

--disable-path-info-check

Si cette option est désactivée, des chemins tels que /info.php/test?a=b ne pourront pas fonctionner. Pour plus d'informations, voir le » Manuel Apache.


Directives du php.ini

Sommaire

  • Liste des directives du php.ini
  • Liste des sections du fichier php.ini
  • Description des directives internes du php.ini


Liste des directives du php.ini

Cette liste inclut les directives du php.ini que vous pouvez définir pour configurer votre installation de PHP.

La colonne "Modifiable" montre les modes déterminant quand et où une directive peut être définie. Voir la section sur les valeurs du mode modifiable pour leurs définitions.

Options de configuration
Nom | Défaut | Modifiable | Historique
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP_INI_ALL en PHP 4.0.0. Retiré depuis PHP 5.4.0
allow_url_fopen | "1" | PHP_INI_SYSTEM | PHP_INI_ALL en PHP <= 4.3.4.
allow_url_include | "0" | PHP_INI_SYSTEM | Disponible depuis 5.2.0.
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | PHP_INI_ALL en PHP <= 4.2.3. Disponible depuis 4.1.0.
apc.cache_by_default | "1" | PHP_INI_ALL | PHP_INI_SYSTEM en APC <= 3.0.12. Disponible depuis APC 3.0.0.
apc.enabled | "1" | PHP_INI_SYSTEM | PHP_INI_SYSTEM en APC 2. PHP_INI_ALL en APC <= 3.0.12.
apc.enable_cli | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.7.
apc.file_update_protection | "2" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.6.
apc.filters | NULL | PHP_INI_SYSTEM |
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.include_once_override | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.12.
apc.localcache | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.14.
apc.localcache.size | "512" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.14.
apc.max_file_size | "1M" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.7.
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.num_files_hint | "1000" | PHP_INI_SYSTEM |
apc.optimization | "0" | PHP_INI_ALL | PHP_INI_SYSTEM en APC 2. Retiré depuis APC 3.0.13.
apc.report_autofilter | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.11.
apc.rfc1867 | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.13.
apc.rfc1867_freq | "0" | PHP_INI_SYSTEM |
apc.rfc1867_name | "APC_UPLOAD_PROGRESS" | PHP_INI_SYSTEM |
apc.rfc1867_prefix | "upload_" | PHP_INI_SYSTEM |
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "30" | PHP_INI_SYSTEM |
apc.slam_defense | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.0.
apc.stat | "1" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.10.
apc.stat_ctime | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.13.
apc.ttl | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.0.
apc.user_entries_hint | "4096" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.0.
apc.user_ttl | "0" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.0.
apc.write_lock | "1" | PHP_INI_SYSTEM | Disponible depuis APC 3.0.11.
apd.bitmask | "0" | PHP_INI_ALL | Retiré depuis apd 0.9.
apd.dumpdir | NULL | PHP_INI_ALL |
apd.statement_tracing | "0" | PHP_INI_ALL | Disponible depuis apd 0.9.
arg_separator.input | "&" | PHP_INI_PERDIR | Disponible depuis PHP 4.0.5.
arg_separator.output | "&" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
asp_tags | "0" | PHP_INI_PERDIR | PHP_INI_ALL en PHP 4.0.0.
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.exception | "0" | PHP_INI_ALL | Disponible depuis PHP 7.0.0.
assert.quiet_eval | "0" | PHP_INI_ALL |
assert.warning | "1" | PHP_INI_ALL |
auto_append_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL en PHP <= 4.2.3.
auto_detect_line_endings | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
auto_globals_jit | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.0.0.
auto_prepend_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL en PHP <= 4.2.3.
axis2.client_home | "~/work/axisc/c/deply" | PHP_INI_ALL |
axis2.enable_exception | "1" | PHP_INI_ALL |
axis2.enable_trace | "1" | PHP_INI_ALL |
axis2.log_path | "/tmp" | PHP_INI_ALL |
bcmath.scale | "0" | PHP_INI_ALL |
bcompiler.enabled | "1" | PHP_INI_ALL | Disponible depuis bcompiler 0.8.
blenc.key_file | "/usr/local/etc/blenckeys" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.2.1.
cgi.discard_path | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM | PHP_INI_ALL en PHP <= 5.2.0. Disponible depuis PHP 4.3.0.
cgi.force_redirect | "1" | PHP_INI_SYSTEM | PHP_INI_ALL en PHP <= 5.2.0. Disponible depuis PHP 4.2.0.
cgi.nph | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.5.
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM | PHP_INI_ALL en PHP <= 5.2.0. Disponible depuis PHP 4.2.0.
cgi.rfc2616_headers | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
child_terminate | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
cli.pager | "" | PHP_INI_ALL | Disponible depuis PHP 5.4.0.
cli.prompt | "\\b \\> " | PHP_INI_ALL | Disponible depuis PHP 5.4.0.
cli_server.color | "0" | PHP_INI_ALL | Disponible depuis PHP 5.4.0.
coin_acceptor.autoreset | "On" | PHP_INI_ALL | Retiré depuis coin_acceptor 0.2.
coin_acceptor.auto_initialize | "Off" | PHP_INI_ALL | Disponible depuis coin_acceptor 0.2.
coin_acceptor.auto_reset | "On" | PHP_INI_ALL | Disponible depuis coin_acceptor 0.2.
coin_acceptor.command_function | "Off" | PHP_INI_ALL | Disponible depuis coin_acceptor 0.3.
coin_acceptor.delay | "53132" | PHP_INI_ALL | Retiré depuis coin_acceptor 0.2.
coin_acceptor.delay_coins | "53132" | PHP_INI_ALL | Disponible depuis coin_acceptor 0.2.
coin_acceptor.delay_prom | "55748" | PHP_INI_ALL | Disponible depuis coin_acceptor 0.2.
coin_acceptor.device | "/dev/ttyS1" | PHP_INI_ALL | Retiré depuis coin_acceptor 0.2.
coin_acceptor.lock_on_close | "Off" | PHP_INI_ALL | Disponible depuis coin_acceptor 0.2.
coin_acceptor.start_unlocked | "On" | PHP_INI_ALL | Disponible depuis coin_acceptor 0.2.
com.allow_dcom | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.5.
com.autoregister_casesensitive | "1" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.autoregister_typelib | "0" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.autoregister_verbose | "0" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.code_page | "" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
com.typelib_file | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.5.
curl.cainfo | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.7.
daffodildb.default_host | "localhost" | PHP_INI_ALL |
daffodildb.default_password | "daffodil" | PHP_INI_ALL |
daffodildb.default_socket | NULL | PHP_INI_ALL |
daffodildb.default_user | "DAFFODIL" | PHP_INI_ALL |
daffodildb.port | "3456" | PHP_INI_ALL |
date.default_latitude | "31.7667" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.default_longitude | "35.2333" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.sunrise_zenith | "90.583333" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.sunset_zenith | "90.583333" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.timezone | "" | PHP_INI_ALL | Disponible depuis PHP 5.1.0.
dba.default_handler | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.3.
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0. Disponible jusqu'en PHP 5.1.0.
default_charset | "UTF-8" | PHP_INI_ALL | Par défaut "UTF-8" depuis PHP 5.6.0, vide pour PHP < 5.6.0.
default_mimetype | "text/html" | PHP_INI_ALL |
default_socket_timeout | "60" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
define_syslog_variables | "0" | PHP_INI_ALL | Retiré depuis PHP 5.4.0
detect_unicode | "1" | PHP_INI_ALL | Disponible depuis PHP 5.1.0. Renommé en zend.detect_unicode depuis PHP 5.4.0.
disable_classes | "" | php.ini uniquement | Disponible depuis PHP 4.3.2.
disable_functions | "" | php.ini uniquement | Disponible depuis PHP 4.0.1.
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.3.
docref_ext | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.2.
docref_root | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
doc_root | NULL | PHP_INI_SYSTEM |
enable_dl | "1" | PHP_INI_SYSTEM | Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
enable_post_data_reading | On | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0.
engine | "1" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |
error_prepend_string | NULL | PHP_INI_ALL |
error_reporting | NULL | PHP_INI_ALL |
exif.decode_jis_intel | "JIS" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.encode_jis | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exit_on_timeout | "" | PHP_INI_ALL | Disponible depuis PHP PHP 5.3.0
expect.logfile | "" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.timeout | "10" | PHP_INI_ALL |
expose_php | "1" | php.ini uniquement |
extension | NULL | php.ini only |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM | PHP_INI_ALL en PHP <= 5.2.0. Disponible depuis PHP 4.3.0.
fastcgi.logging | "1" | PHP_INI_SYSTEM | PHP_INI_ALL en PHP <= 5.2.0. Disponible depuis PHP 4.4.0.
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.2.0.
fbsql.autocommit | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.batchSize | "1000" | PHP_INI_SYSTEM | Disponible depuis PHP 4.2.0. Disponible jusqu'en PHP 5.1.0.
fbsql.batchsize | "1000" | PHP_INI_ALL | Disponible depuis PHP 5.1.0.
fbsql.default_database | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_database_password | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_host | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_password | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_connections | "128" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_links | "128" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_results | "128" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.show_timestamp_decimals | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.5.
file_uploads | "1" | PHP_INI_SYSTEM | PHP_INI_ALL en PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
filter.default | "unsafe_raw" | PHP_INI_PERDIR | PHP_INI_ALL en filter <= 0.9.4. Disponible depuis PHP 5.2.0.
filter.default_flags | NULL | PHP_INI_PERDIR | PHP_INI_ALL en filter <= 0.9.4. Disponible depuis PHP 5.2.0.
from | "" | PHP_INI_ALL |
gd.jpeg_ignore_warning | "1" | PHP_INI_ALL | Disponible depuis PHP 5.1.3.
geoip.custom_directory | NULL | PHP_INI_ALL | Disponible depuis geoip 1.0.1.
geoip.database_standard | "GeoIP.dat" | PHP_INI_ALL | Retiré depuis geoip 1.0.1.
hidef.ini_path | (char*)default_ini_path | PHP_INI_SYSTEM |
highlight.bg | "#FFFFFF" | PHP_INI_ALL | Retiré depuis PHP 5.4.0
highlight.comment | "#FF8000" | PHP_INI_ALL |
highlight.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
highlight.keyword | "#007700" | PHP_INI_ALL |
highlight.string | "#DD0000" | PHP_INI_ALL |
html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP <= 4.2.3. Disponible depuis PHP 4.0.2.
htscanner.config_file | ".htaccess" | PHP_INI_SYSTEM |
htscanner.default_docroot | "/" | PHP_INI_SYSTEM |
htscanner.default_ttl | "300" | PHP_INI_SYSTEM | Disponible depuis htscanner 0.6.0.
htscanner.stop_on_error | "0" | PHP_INI_SYSTEM | Disponible depuis htscanner 0.7.0.
http.allowed_methods | "" | PHP_INI_ALL | Disponible depuis pecl_http 0.4.0. Retiré depuis pecl_http 1.0.0.
http.allowed_methods_log | "" | PHP_INI_ALL | Disponible depuis pecl_http 0.12.0. Retiré depuis pecl_http 1.0.0.
http.cache_log | "" | PHP_INI_ALL | Disponible depuis pecl_http 0.8.0. Retiré depuis pecl_http 1.0.0.
http.composite_log | "" | PHP_INI_ALL | Disponible depuis pecl_http 0.12.0. Retiré depuis pecl_http 1.0.0.
http.etag.mode | "MD5" | PHP_INI_ALL | Disponible depuis pecl_http 1.0.0.
http.etag_mode | "MD5" | PHP_INI_ALL | Disponible depuis pecl_http 0.12.0. Retiré depuis pecl_http 1.0.0.
http.force_exit | "1" | PHP_INI_ALL | Disponible depuis pecl_http 0.18.0.
http.log.allowed_methods | "" | PHP_INI_ALL | Disponible depuis pecl_http 1.0.0.
http.log.cache | "" | PHP_INI_ALL | Disponible depuis pecl_http 1.0.0.
http.log.composite | "" | PHP_INI_ALL | Disponible depuis pecl_http 1.0.0.
http.log.not_found | "" | PHP_INI_ALL | Disponible depuis pecl_http 1.0.0.
http.log.redirect | "" | PHP_INI_ALL | Disponible depuis pecl_http 1.0.0.
http.ob_deflate_auto | "0" | PHP_INI_PERDIR | Disponible depuis pecl_http 0.21.0. Retiré depuis pecl_http 1.0.0.
http.ob_deflate_flags | "0" | PHP_INI_ALL | Disponible depuis pecl_http 0.21.0. Retiré depuis pecl_http 1.0.0.
http.ob_inflate_auto | "0" | PHP_INI_PERDIR | Disponible depuis pecl_http 0.21.0. Retiré depuis pecl_http 1.0.0.
http.ob_inflate_flags | "0" | PHP_INI_ALL | Disponible depuis pecl_http 0.21.0. Retiré depuis pecl_http 1.0.0.
http.only_exceptions | "0" | PHP_INI_ALL | Disponible depuis pecl_http 0.11.0.
http.persistent.handles.ident | "GLOBAL" | PHP_INI_ALL | Disponible depuis pecl_http 1.5.0.
http.persistent.handles.limit | "-1" | PHP_INI_SYSTEM | Disponible depuis pecl_http 1.5.0.
http.redirect_log | "" | PHP_INI_ALL | Disponible depuis pecl_http 0.12.0. Retiré depuis pecl_http 1.0.0.
http.request.datashare.connect | "0" | PHP_INI_SYSTEM | Disponible depuis pecl_http 1.3.0.
http.request.datashare.cookie | "0" | PHP_INI_SYSTEM | Disponible depuis pecl_http 1.3.0.
http.request.datashare.dns | "1" | PHP_INI_SYSTEM | Disponible depuis pecl_http 1.3.0.
http.request.datashare.ssl | "0" | PHP_INI_SYSTEM | Disponible depuis pecl_http 1.3.0.
http.request.methods.allowed | "" | PHP_INI_ALL | Disponible depuis pecl_http 1.0.0.
http.request.methods.custom | "" | PHP_INI_PERDIR | Disponible depuis pecl_http 1.0.0.
http.send.deflate.start_auto | "0" | PHP_INI_PERDIR | Disponible depuis pecl_http 1.0.0.
http.send.deflate.start_flags | "0" | PHP_INI_ALL | Disponible depuis pecl_http 1.0.0.
http.send.inflate.start_auto | "0" | PHP_INI_PERDIR | Disponible depuis pecl_http 1.0.0.
http.send.inflate.start_flags | "0" | PHP_INI_ALL | Disponible depuis pecl_http 1.0.0.
http.send.not_found_404 | "1" | PHP_INI_ALL | Disponible depuis pecl_http 1.0.0.
ibase.allow_persistent | "1" | PHP_INI_SYSTEM |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
ibase.default_db | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
ibase.default_password | NULL | PHP_INI_ALL |
ibase.default_user | NULL | PHP_INI_ALL |
ibase.max_links | "-1" | PHP_INI_SYSTEM |
ibase.max_persistent | "-1" | PHP_INI_SYSTEM |
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL |
ibm_db2.binmode | "1" | PHP_INI_ALL |
ibm_db2.i5_all_pconnect | "0" | PHP_INI_SYSTEM | Disponible depuis ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | PHP_INI_SYSTEM | Disponible depuis ibm_db2 1.5.0.
ibm_db2.i5_dbcs_alloc | "0" | PHP_INI_SYSTEM | Disponible depuis ibm_db2 1.0.2.
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM |
ibm_db2.i5_ignore_userid | "0" | PHP_INI_SYSTEM | Disponible depuis ibm_db2 1.8.0.
iconv.input_encoding | "ISO-8859-1" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
iconv.internal_encoding | "ISO-8859-1" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
iconv.output_encoding | "ISO-8859-1" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
ifx.allow_persistent | "1" | PHP_INI_SYSTEM | Disponible jusqu'en PHP 5.2.1.
ifx.blobinfile | "1" | PHP_INI_ALL | Disponible jusqu'en PHP 5.2.1.
ifx.byteasvarchar | "0" | PHP_INI_ALL | Disponible jusqu'en PHP 5.2.1.
ifx.charasvarchar | "0" | PHP_INI_ALL | Disponible jusqu'en PHP 5.2.1.
ifx.default_host | NULL | PHP_INI_SYSTEM | Disponible jusqu'en PHP 5.2.1.
ifx.default_password | NULL | PHP_INI_SYSTEM | Disponible jusqu'en PHP 5.2.1.
ifx.default_user | NULL | PHP_INI_SYSTEM | Disponible jusqu'en PHP 5.2.1.
ifx.max_links | "-1" | PHP_INI_SYSTEM | Disponible jusqu'en PHP 5.2.1.
ifx.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible jusqu'en PHP 5.2.1.
ifx.nullformat | "0" | PHP_INI_ALL | Disponible jusqu'en PHP 5.2.1.
ifx.textasvarchar | "0" | PHP_INI_ALL | Disponible jusqu'en PHP 5.2.1.
ignore_repeated_errors | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
ignore_repeated_source | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
ignore_user_abort | "0" | PHP_INI_ALL |
imlib2.font_cache_max_size | "524288" | PHP_INI_ALL |
imlib2.font_path | "/usr/share/php/fonts/" | PHP_INI_ALL |
implicit_flush | "0" | PHP_INI_ALL | PHP_INI_PERDIR en PHP <= 4.2.3.
include_path | ".;/path/to/php/pear" | PHP_INI_ALL |
intl.default_locale | "" | PHP_INI_ALL | Disponible depuis PHP 5.3.0.
intl.error_level | "0" | PHP_INI_ALL | Disponible depuis PHP 5.3.0.
intl.use_exceptions | "0" | PHP_INI_ALL | Disponible depuis PHP 5.5.0.
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Disponible depuis ingres 1.0.0
ingres.array_index_start | "1" | PHP_INI_ALL | Disponible depuis ingres 1.4.0.
ingres.auto | "1" | PHP_INI_ALL | Disponible depuis ingres 2.0.0.
ingres.blob_segment_length | "4096" | PHP_INI_ALL | Disponible depuis ingres 1.2.0.
ingres.cursor_mode | "0" | PHP_INI_ALL | Disponible depuis ingres 1.1.0.
ingres.default_database | NULL | PHP_INI_ALL | Disponible depuis ingres 1.0.0
ingres.default_password | NULL | PHP_INI_ALL | Disponible depuis ingres 1.0.0
ingres.default_user | NULL | PHP_INI_ALL | Disponible depuis ingres 1.0.0
ingres.describe | 1 | PHP_INI_ALL | Disponible depuis ingres 2.1.0
ingres.fetch_buffer_size | 100 | PHP_INI_ALL | Disponible depuis ingres 2.1.0
ingres.max_links | "-1" | PHP_INI_SYSTEM | Disponible depuis ingres 1.0.0
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible depuis ingres 1.0.0
ingres.reuse_connection | "1" | PHP_INI_ALL | Disponible depuis ingres 2.0.0
ingres.scrollable | "1" | PHP_INI_ALL | Disponible depuis ingres 2.0.0.
ingres.trace | "0" | PHP_INI_ALL | Disponible depuis ingres 2.0.0.
ingres.trace_connect | "0" | PHP_INI_ALL | Disponible depuis ingres 1.2.1.
ingres.utf8 | "1" | PHP_INI_ALL | Disponible depuis ingres 2.0.0.
last_modified | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
ldap.max_links | "-1" | PHP_INI_SYSTEM |
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
magic_quotes_gpc | "1" | PHP_INI_PERDIR | PHP_INI_ALL en PHP <= 4.2.3. Obsolète en PHP 5.3.0. Supprimé en PHP 5.4.0.
magic_quotes_runtime | "0" | PHP_INI_ALL | Supprimé en PHP 5.4.0.
magic_quotes_sybase | "0" | PHP_INI_ALL | Supprimé en PHP 5.4.0.
mail.add_x_header | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR | Available since PHP 5.3.0.
mail.force_extra_parameters | NULL | php.ini uniquement | Disponible depuis PHP 5.0.0.
mail.log | "" | PHP_INI_PERDIR | Disponible depuis PHP 5.3.0. (PHP_INI_SYSTEM|PHP_INI_PERDIR)
maxdb.default_db | NULL | PHP_INI_ALL |
maxdb.default_host | NULL | PHP_INI_ALL |
maxdb.default_pw | NULL | PHP_INI_ALL |
maxdb.default_user | NULL | PHP_INI_ALL |
maxdb.long_readlen | "200" | PHP_INI_ALL |
max_execution_time | "30" | PHP_INI_ALL |
max_input_nesting_level | "64" | PHP_INI_PERDIR | Disponible depuis PHP 4.4.8. Disponible jusqu'en PHP 5.0.0.
max_input_vars | 1000 | PHP_INI_PERDIR | Disponible depuis PHP PHP 5.3.9.
max_input_time | "-1" | PHP_INI_PERDIR | Disponible depuis PHP 4.3.0.
mbstring.detect_order | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6.
mbstring.encoding_translation | "0" | PHP_INI_PERDIR | Disponible depuis PHP 4.3.0.
mbstring.func_overload | "0" | PHP_INI_PERDIR | PHP_INI_SYSTEM en PHP <= 4.2.3. PHP_INI_SYSTEM | PHP_INI_PERDIR entre PHP 4.3 et 5.2.6. Disponible depuis PHP 4.2.0.
mbstring.http_input | "pass" | PHP_INI_ALL | Disponible depuis PHP 4.0.6.
mbstring.http_output | "pass" | PHP_INI_ALL | Disponible depuis PHP 4.0.6.
mbstring.internal_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6.
mbstring.language | "neutral" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.; PHP_INI_PERDIR en PHP <= 5.2.6
mbstring.script_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 4.3.0. Disponible jusqu'en PHP 5.4.0. Préférer zend.script_encoding à la place.
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | PHP_INI_ALL | Available since PHP 5.3.0.
mbstring.strict_detection | "0" | PHP_INI_ALL | Disponible depuis PHP 5.1.2.
mbstring.substitute_character | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6.
mcrypt.algorithms_dir | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
mcrypt.modes_dir | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
memcache.allow_failover | "1" | PHP_INI_ALL | Disponible depuis memcache 2.0.2.
memcache.chunk_size | "8192" | PHP_INI_ALL | Disponible depuis memcache 2.0.2.
memcache.default_port | "11211" | PHP_INI_ALL | Disponible depuis memcache 2.0.2.
memcache.hash_function | "crc32" | PHP_INI_ALL | Disponible depuis memcache 2.2.0.
memcache.hash_strategy | "standard" | PHP_INI_ALL | Disponible depuis memcache 2.2.0.
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Disponible depuis memcache 2.1.0.
memory_limit | "128M" | PHP_INI_ALL |
mime_magic.debug | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
mime_magic.magicfile | "/path/to/php/magic.mime" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0.
mongo.allow_empty_keys | 0 | PHP_INI_ALL |
mongo.allow_persistent | 1 | PHP_INI_ALL | Supprimé en 1.2.0
mongo.chunk_size | 262144 | PHP_INI_ALL |
mongo.cmd | "$" | PHP_INI_ALL |
mongo.default_host | "localhost" | PHP_INI_ALL |
mongo.default_port | 27017 | PHP_INI_ALL |
mongo.is_master_interval | 15 | PHP_INI_ALL | Ajouté en 1.2.10, avant 1.3.0, la valeur par défaut était de 60.
mongo.long_as_object | 0 | PHP_INI_ALL |
mongo.native_long | 1 | PHP_INI_ALL | Avant la version 1.5.0, la valeur par défaut était 0.
mongo.ping_interval | 5 | PHP_INI_ALL | Ajouté en 1.2.10
mongo.utf8 | 1 | PHP_INI_ALL |
msql.allow_persistent | "1" | PHP_INI_ALL |
msql.max_links | "-1" | PHP_INI_ALL |
msql.max_persistent | "-1" | PHP_INI_ALL |
mssql.allow_persistent | "1" | PHP_INI_SYSTEM |
mssql.batchsize | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.4.
mssql.charset | "" | PHP_INI_ALL | Disponible depuis PHP 5.1.2.
mssql.compatability_mode | "0" | PHP_INI_ALL |
mssql.connect_timeout | "5" | PHP_INI_ALL |
mssql.datetimeconvert | "1" | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
mssql.max_links | "-1" | PHP_INI_SYSTEM |
mssql.max_persistent | "-1" | PHP_INI_SYSTEM |
mssql.max_procs | "-1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
mssql.min_error_severity | "10" | PHP_INI_ALL |
mssql.min_message_severity | "10" | PHP_INI_ALL |
mssql.secure_connection | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0.
mssql.textlimit | "-1" | PHP_INI_ALL |
mssql.textsize | "-1" | PHP_INI_ALL |
mssql.timeout | "60" | PHP_INI_ALL | Disponible depuis PHP 4.1.0.
mysql.allow_local_infile | "1" | PHP_INI_SYSTEM |
mysql.allow_persistent | "1" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.trace_mode | "Off" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.1.
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_user | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
mysql.connect_timeout | "60" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP <= 4.3.2. Disponible depuis PHP 4.3.0.
mysqli.allow_local_infile | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.2.4.
mysqli.allow_persistent | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
mysqli.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
mysqli.max_links | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
mysqli.default_port | "3306" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_socket | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_host | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_user | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_pw | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.reconnect | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.5.
mysqli.rollback_on_cached_plink | TRUE | PHP_INI_SYSTEM | Disponible depuis PHP 5.6.0.
mysqli.cache_size | "2000" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
mysqlnd.collect_memory_statistics | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
mysqlnd.collect_statistics | "1" | PHP_INI_ALL | Disponible depuis PHP 5.3.0.
mysqlnd.debug | "" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
mysqlnd.log_mask | "0" | PHP_INI_ALL | Disponible depuis PHP 5.4.0.
mysqlnd.mempool_default_size | "16000" | PHP_INI_ALL | Disponible depuis PHP 5.4.0.
mysqlnd.net_cmd_buffer_size | "4096" | PHP_INI_ALL | Disponible depuis PHP 5.4.0.
mysqlnd.net_read_buffer_size | "32768" | PHP_INI_ALL | Disponible depuis PHP 5.3.0.
mysqlnd.net_read_timeout | "31536000" | PHP_INI_SYSTEM | Disponible depuis PHP 5.4.0.
mysqlnd.sha256_server_public_key | "" | PHP_INI_PERDIR | Disponible depuis PHP 5.5.0.
mysqlnd.trace_alloc | "" | PHP_INI_SYSTEM | Disponible depuis PHP 5.5.0.
mysqlnd_memcache.enable | 1 | PHP_INI_SYSTEM | Disponible depuis la version 1.0.0
mysqlnd_ms.enable | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.force_config_usage | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.ini_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.config_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.collect_statistics | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.multi_master | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.disable_rw_split | 0 | PHP_INI_SYSTEM |
mysqlnd_mux.enable | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.enable_qc | 1 | PHP_INI_SYSTEM |
mysqlnd_qc.ttl | 30 | PHP_INI_ALL |
mysqlnd_qc.cache_by_default | 0 | PHP_INI_ALL |
mysqlnd_qc.cache_no_table | 0 | PHP_INI_ALL |
mysqlnd_qc.use_request_time | 0 | PHP_INI_ALL |
mysqlnd_qc.time_statistics | 1 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics | 0 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics_log_file | /tmp/mysqlnd_qc.stats | PHP_INI_SYSTEM |
mysqlnd_qc.collect_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.query_trace_bt_depth | 3 | PHP_INI_SYSTEM |
mysqlnd_qc.collect_normalized_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.ignore_sql_comments | 1 | PHP_INI_ALL |
mysqlnd_qc.slam_defense | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.slam_defense_ttl | 30 | PHP_INI_SYSTEM |
mysqlnd_qc.std_data_copy | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.apc_prefix | qc_ | PHP_INI_ALL |
mysqlnd_qc.memc_server | 127.0.0.1 | PHP_INI_ALL |
mysqlnd_qc.memc_port | 11211 | PHP_INI_ALL |
mysqlnd_qc.sqlite_data_file | :memory: | PHP_INI_ALL |
mysqlnd_uh.enable | 1 | PHP_INI_SYSTEM |
mysqlnd_uh.report_wrong_types | 1 | PHP_INI_ALL |
nsapi.read_timeout | "60" | PHP_INI_ALL | Disponible depuis PHP 4.3.3.
oci8.connection_class | "" | PHP_INI_ALL | Disponible depuis PHP 5.3 (PECL OCI8 1.3).
oci8.default_prefetch | "10" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.events | Off | PHP_INI_SYSTEM | Disponible depuis PHP 5.3 (PECL OCI8 1.3).
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.old_oci_close_semantics | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.ping_interval | "60" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.privileged_connect | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
odbc.allow_persistent | "1" | PHP_INI_SYSTEM |
odbc.check_persistent | "1" | PHP_INI_SYSTEM |
odbc.defaultbinmode | "1" | PHP_INI_ALL |
odbc.defaultlrl | "4096" | PHP_INI_ALL |
odbc.default_db | NULL | PHP_INI_ALL |
odbc.default_cursortype | "3" | PHP_INI_ALL | Disponible depuis PHP 5.3.0.
odbc.default_pw | NULL | PHP_INI_ALL |
odbc.default_user | NULL | PHP_INI_ALL |
odbc.max_links | "-1" | PHP_INI_SYSTEM |
odbc.max_persistent | "-1" | PHP_INI_SYSTEM |
odbtp.datetime_format | "object" | PHP_INI_ALL |
odbtp.detach_default_queries | "0" | PHP_INI_ALL |
odbtp.guid_format | "string" | PHP_INI_ALL | Disponible depuis odbtp 1.1.3.
odbtp.interface_file | "/usr/local/share/odbtp.conf" | PHP_INI_ALL |
odbtp.truncation_errors | "1" | PHP_INI_ALL |
opendirectory.default_separator | "/" | PHP_INI_ALL | Retiré depuis opendirectory 0.2.2.
opendirectory.max_refs | "-1" | PHP_INI_ALL |
opendirectory.separator | "/" | PHP_INI_ALL | Disponible depuis opendirectory 0.2.2.
open_basedir | NULL | PHP_INI_ALL | PHP_INI_SYSTEM en PHP < 5.2.3.
oracle.allow_persistent | "-1" | PHP_INI_ALL | Disponible jusqu'en PHP 5.1.0.
oracle.max_links | "-1" | PHP_INI_ALL | Disponible jusqu'en PHP 5.1.0.
oracle.max_persistent | "-1" | PHP_INI_ALL | Disponible jusqu'en PHP 5.1.0.
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR | Disponible depuis PHP 4.0.4.
pam.servicename | "php" | PHP_INI_ALL |
pcre.backtrack_limit | "1000000" | PHP_INI_ALL | Disponible depuis 5.2.0.
pcre.recursion_limit | "100000" | PHP_INI_ALL | Disponible depuis 5.2.0.
pcre.jit | "1" | PHP_INI_ALL | Disponible depuis PHP 7.0.0.
pdo.dsn.* |  | php.ini only | Disponible depuis PHP 5.1.0.
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | Disponible depuis PHP PHP 5.1.0.
pdo_odbc.db2_instance_name | NULL | PHP_INI_SYSTEM | Disponible depuis 5.1.1. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
pfpro.defaulthost | "test-payflow.verisign.com" | PHP_INI_ALL | Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pfpro.defaultport | "443" | PHP_INI_ALL | Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pfpro.defaulttimeout | "30" | PHP_INI_ALL | Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pfpro.proxyaddress | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pfpro.proxylogon | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pfpro.proxypassword | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pfpro.proxyport | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.2. Disponible jusqu'en PHP 5.1.0.
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.2.0.
pgsql.ignore_notice | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
pgsql.log_notice | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
pgsql.max_links | "-1" | PHP_INI_SYSTEM |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM |
phar.cache_list | "" | PHP_INI_SYSTEM | Disponible depuis PHP 5.4.0.
phar.extract_list | "" | PHP_INI_ALL | Disponible depuis phar 1.1.0.
phar.readonly | "1" | PHP_INI_ALL |
phar.require_hash | "1" | PHP_INI_ALL |
post_max_size | "8M" | PHP_INI_PERDIR | PHP_INI_SYSTEM en PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
precision | "14" | PHP_INI_ALL |
python.append_path | "" | PHP_INI_ALL |
python.prepend_path | "." | PHP_INI_ALL |
realpath_cache_size | "16K" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.0.
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.0.
register_argc_argv | "1" | PHP_INI_PERDIR | PHP_INI_ALL en PHP <= 4.2.3.
register_globals | "0" | PHP_INI_PERDIR | PHP_INI_ALL en PHP <= 4.2.3. Obsolète en 5.3.0. Retiré depuis PHP 5.4.0
register_long_arrays | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.0.0. Obsolète en PHP 5.3.0. Retiré depuis PHP 5.4.0
report_memleaks | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
report_zend_debug | "1" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
request_order | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR | Disponible depuis PHP 5.3.0
runkit.internal_override | "0" | PHP_INI_SYSTEM |
runkit.superglobal | "" | PHP_INI_PERDIR |
safe_mode | "0" | PHP_INI_SYSTEM | Obsolète en PHP 5.3.0. Retiré depuis PHP 5.4.0
safe_mode_allowed_env_vars | "PHP_" | PHP_INI_SYSTEM | Retiré depuis PHP 5.4.0
safe_mode_exec_dir | "" | PHP_INI_SYSTEM | Retiré depuis PHP 5.4.0
safe_mode_gid | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.1.0. Retiré depuis PHP 5.4.0
safe_mode_include_dir | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 4.1.0. Retiré depuis PHP 5.4.0
safe_mode_protected_env_vars | "LD_LIBRARY_PATH" | PHP_INI_SYSTEM | Retiré depuis PHP 5.4.0
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | PHP_INI_SYSTEM |
serialize_precision | "-1" | PHP_INI_ALL | Disponible depuis 4.3.2. Jusqu'à PHP 5.3.5, la valeur par défaut était de 100. Jusqu'à PHP 7.1.0, la valeur par défaut était 17.
session.auto_start | "0" | PHP_INI_PERDIR | PHP_INI_ALL en PHP <= 5.4.19 et en PHP <= 5.5.1.
session.bug_compat_42 | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. Retiré depuis PHP 5.4.0
session.bug_compat_warn | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. Retiré depuis PHP 5.4.0
session.cache_expire | "180" | PHP_INI_ALL |
session.cache_limiter | "nocache" | PHP_INI_ALL |
session.cookie_domain | "" | PHP_INI_ALL |
session.cookie_httponly | "" | PHP_INI_ALL | Disponible depuis PHP 5.2.0.
session.cookie_lifetime | "0" | PHP_INI_ALL |
session.cookie_path | "/" | PHP_INI_ALL |
session.cookie_secure | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.4.
session.entropy_file | "" | PHP_INI_ALL |
session.entropy_length | "0" | PHP_INI_ALL |
session.gc_divisor | "100" | PHP_INI_ALL | Disponible depuis PHP 4.3.2.
session.gc_maxlifetime | "1440" | PHP_INI_ALL |
session.gc_probability | "1" | PHP_INI_ALL |
session.hash_bits_per_character | "4" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
session.hash_function | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
session.lazy_write | "1" | PHP_INI_ALL | Disponible depuis PHP 7.0.0.
session.name | "PHPSESSID" | PHP_INI_ALL |
session.referer_check | "" | PHP_INI_ALL |
session.save_handler | "files" | PHP_INI_ALL |
session.save_path | "" | PHP_INI_ALL |
session.serialize_handler | "php" | PHP_INI_ALL |
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0.
session.upload_progress.enabled | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0.
session.upload_progress.freq | "1%" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0.
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0.
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0.
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0.
session.use_strict_mode | "0" | PHP_INI_ALL | Disponible depuis PHP 5.5.2.
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
session.use_trans_sid | "0" | PHP_INI_ALL | PHP_INI_ALL en PHP <= 4.2.3. PHP_INI_PERDIR en PHP < 5. Disponible depuis PHP 4.0.3.
session_pgsql.create_table | "1" | PHP_INI_SYSTEM |
session_pgsql.db | "host=localhost dbname=php_session user=nobody" | PHP_INI_SYSTEM |
session_pgsql.disable | "0" | PHP_INI_SYSTEM |
session_pgsql.failover_mode | "0" | PHP_INI_SYSTEM |
session_pgsql.gc_interval | "3600" | PHP_INI_SYSTEM |
session_pgsql.keep_expired | "0" | PHP_INI_SYSTEM |
session_pgsql.sem_file_name | "/tmp/php_session_pgsql" | PHP_INI_SYSTEM |
session_pgsql.serializable | "0" | PHP_INI_SYSTEM |
session_pgsql.short_circuit | "0" | PHP_INI_SYSTEM |
session_pgsql.use_app_vars | "0" | PHP_INI_SYSTEM |
session_pgsql.vacuum_interval | "21600" | PHP_INI_SYSTEM |
short_open_tag | "1" | PHP_INI_ALL | PHP_INI_ALL en PHP 4.0.0. PHP_INI_PERDIR en PHP >= 4.0.1.
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
soap.wsdl_cache | "1" | PHP_INI_ALL | Disponible depuis PHP 5.1.5.
soap.wsdl_cache_dir | "/tmp" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
soap.wsdl_cache_enabled | "1" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
soap.wsdl_cache_limit | "5" | PHP_INI_ALL | Disponible depuis PHP 5.1.5.
soap.wsdl_cache_ttl | "86400" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
sql.safe_mode | "0" | PHP_INI_SYSTEM |
sqlite.assoc_case | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
sqlite3.extension_dir | "" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.11.
sybase.allow_persistent | "1" | PHP_INI_ALL | PHP_INI_ALL en PHP <= 4.0.2. PHP_INI_SYSTEM en PHP <= 4.0.3.
sybase.interface_file | "" | PHP_INI_ALL |
sybase.max_links | "-1" | PHP_INI_ALL | PHP_INI_ALL en PHP <= 4.0.2. PHP_INI_SYSTEM en PHP <= 4.0.3.
sybase.max_persistent | "-1" | PHP_INI_ALL | PHP_INI_ALL en PHP <= 4.0.2. PHP_INI_SYSTEM en PHP <= 4.0.3.
sybase.min_error_severity | "10" | PHP_INI_ALL |
sybase.min_message_severity | "10" | PHP_INI_ALL |
sybct.deadlock_retry_count | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
sybct.login_timeout | "-1" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
sybct.packet_size | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.5.
sybct.timeout | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
sys_temp_dir | "" | PHP_INI_SYSTEM | Disponible depuis PHP 5.5.0.
sysvshm.init_mem | "10000" | PHP_INI_ALL |
tidy.clean_output | "0" | PHP_INI_USER | PHP_INI_PERDIR en PHP 5. Disponible depuis PHP 5.0.0.
tidy.default_config | "" | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
track_errors | "0" | PHP_INI_ALL |
unserialize_callback_func | NULL | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
uploadprogress.file.filename_template | "/tmp/upt_%s.txt" | PHP_INI_ALL |
upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL en PHP <= 4.2.3.
max_file_uploads | 20 | PHP_INI_SYSTEM | Disponible depuis PHP PHP 5.2.12.
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Disponible depuis PHP 4.0.4.
user_agent | NULL | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
user_dir | NULL | PHP_INI_SYSTEM |
user_ini.cache_ttl | "300" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
user_ini.filename | ".user.ini" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
valkyrie.auto_validate | "0" | PHP_INI_ALL |
valkyrie.config_path | NULL | PHP_INI_ALL |
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL en PHP <= 5.0.5.
vld.active | "0" | PHP_INI_SYSTEM |
vld.execute | "1" | PHP_INI_SYSTEM | Disponible depuis vld 0.8.0.
vld.skip_append | "0" | PHP_INI_SYSTEM | Disponible depuis vld 0.8.0.
vld.skip_prepend | "0" | PHP_INI_SYSTEM | Disponible depuis vld 0.8.0.
windows.show_crt_warning | "0" | PHP_INI_ALL | Disponible depuis PHP 5.5.0.
xbithack | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
xdebug.auto_profile | "0" | PHP_INI_ALL | Retiré depuis Xdebug 2.0.0.
xdebug.auto_profile_mode | "0" | PHP_INI_ALL | Retiré depuis Xdebug 2.0.0.
xdebug.auto_trace | "0" | PHP_INI_ALL |
xdebug.collect_includes | "1" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.collect_params | "0" | PHP_INI_ALL |
xdebug.collect_return | "0" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.collect_vars | "0" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.default_enable | "1" | PHP_INI_ALL | PHP_INI_SYSTEM en Xdebug 1.
xdebug.dump.COOKIE | NULL | PHP_INI_ALL |
xdebug.dump.ENV | NULL | PHP_INI_ALL |
xdebug.dump.FILES | NULL | PHP_INI_ALL |
xdebug.dump.GET | NULL | PHP_INI_ALL |
xdebug.dump.POST | NULL | PHP_INI_ALL |
xdebug.dump.REQUEST | NULL | PHP_INI_ALL |
xdebug.dump.SERVER | NULL | PHP_INI_ALL |
xdebug.dump.SESSION | NULL | PHP_INI_ALL |
xdebug.dump_globals | "1" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.dump_once | "1" | PHP_INI_ALL |
xdebug.dump_undefined | "0" | PHP_INI_ALL |
xdebug.extended_info | "1" | PHP_INI_SYSTEM | Disponible depuis Xdebug 2.0.0.
xdebug.idekey | "" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.manual_url | "http://www.php.net" | PHP_INI_ALL |
xdebug.max_nesting_level | "100" | PHP_INI_ALL |
xdebug.output_dir | "/tmp" | PHP_INI_PERDIR | PHP_INI_SYSTEM en Xdebug <= 1.2.0. Retiré depuis Xdebug 2.0.0.
xdebug.profiler_aggregate | "0" | PHP_INI_PERDIR | Disponible depuis Xdebug 2.0.0.
xdebug.profiler_append | "0" | PHP_INI_PERDIR | Disponible depuis Xdebug 2.0.0.
xdebug.profiler_enable | "0" | PHP_INI_PERDIR | Disponible depuis Xdebug 2.0.0.
xdebug.profiler_enable_trigger | "0" | PHP_INI_PERDIR | Disponible depuis Xdebug 2.0.0.
xdebug.profiler_output_dir | "/tmp" | PHP_INI_PERDIR | Disponible depuis Xdebug 2.0.0.
xdebug.profiler_output_name | "cachegrind.out.%p" | PHP_INI_PERDIR | Disponible depuis Xdebug 2.0.0.
xdebug.remote_autostart | "0" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.remote_enable | "0" | PHP_INI_PERDIR |
xdebug.remote_handler | "dbgp" | PHP_INI_ALL |
xdebug.remote_host | "localhost" | PHP_INI_ALL |
xdebug.remote_log | "" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.remote_mode | "req" | PHP_INI_ALL |
xdebug.remote_port | "9000" | PHP_INI_ALL |
xdebug.show_exception_trace | "0" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.show_local_vars | "0" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.show_mem_delta | "0" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.trace_format | "0" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.trace_options | "0" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.trace_output_dir | "/tmp" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.trace_output_name | "trace.%c" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.var_display_max_children | "128" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.var_display_max_data | "512" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xdebug.var_display_max_depth | "3" | PHP_INI_ALL | Disponible depuis Xdebug 2.0.0.
xmlrpc_errors | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.1.0.
xmlrpc_error_number | "0" | PHP_INI_ALL | Disponible depuis PHP 4.1.0.
xmms.path | "/usr/bin/xmms" | PHP_INI_ALL |
xmms.session | "0" | PHP_INI_ALL |
xsl.security_prefs | "44" | PHP_INI_ALL | Disponible depuis PHP 5.5.0.
y2k_compliance | "1" | PHP_INI_ALL | Supprimé en PHP 5.4.0.
yami.response.timeout | "5" | PHP_INI_ALL | Disponible depuis yami 1.0.1.
yaz.keepalive | "120" | PHP_INI_ALL |
yaz.log_mask | NULL | PHP_INI_ALL | Disponible depuis yaz 1.0.3.
zend.assertions | "1" | PHP_INI_ALL | Disponible depuis PHP 7.0.0.
zend.detect_unicode | "1" | PHP_INI_ALL | Disponible depuis PHP 5.4.0.
zend.enable_gc | "1" | PHP_INI_ALL | Disponible depuis PHP 5.3.0.
zend.multibyte | "0" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0.
zend.script_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 5.4.0
zend.signal_check | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.4.0
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Disponible depuis 5.0.0. Retiré depuis PHP 5.3.0
zend_extension | NULL | php.ini only |
zend_extension_debug | NULL | php.ini only |
zend_extension_debug_ts | NULL | php.ini only |
zend_extension_ts | NULL | php.ini only |
zlib.output_compression | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
zlib.output_compression_level | "-1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
zlib.output_handler | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.


Liste des sections du fichier php.ini

Cette liste inclut les sections du php.ini que vous pouvez ajuster pour configurer votre PHP selon l'hôte virtuel ou le chemin. Ces sections sont optionnelles.

Ces sections n'affectent pas directement PHP. Elles sont utilisées pour grouper les autres directives de configuration du php.ini et pour les appliquer à un hôte ou à un chemin particulier.

Ces sections ne sont utilisées qu'en mode CGI/FastCGI et elles ne peuvent définir des extensions et des directives zend_extension.

Sections
Nom | Modifiable | Historique
[HOST=] | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
[PATH=] | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

[HOST=<host>]

Cette section vous permet de définir un jeu de directives du php.ini qui prendront effet sur l'hôte spécifié.

Exemple #1 Active la sortie d'erreur à l'écran pour dev.site.com

[HOST=dev.site.com]
error_reporting = E_ALL
display_errors = On

[PATH=<path>]

Cette section vous permet de définir un jeu de directives du php.ini qui prendront effet quand un script sera lancé depuis le chemin spécifié.

Exemple #2 Ajoute un script de sécurité pour les zones protégées

[PATH=/home/site/public/secure]
auto_prepend_file=security.php


Description des directives internes du php.ini

Cette liste inclut les directives internes du php.ini que vous pouvez définir pour personnaliser votre configuration de PHP. Les directives gérées par les extensions sont listées et détaillées dans les pages de documentation respectives des extensions ; les informations concernant les directives sur les sessions, par exemple, peuvent être trouvées sur la page de documentation des sessions.

Note:

Les valeurs par défaut listées ici seront utilisées lorsque php.ini n'est pas chargé ; les valeurs des fichiers php.ini en environnement de production et en envrionnement de développement peuvent varier.

Options Httpd

Options de configuration
Nom | Défaut | Modifiable | Historique
async_send | "0" | PHP_INI_ALL | Disponible depuis PHP 4.2.0. Supprimé en PHP 4.3.0.

Options du langage

Options de configuration
Nom | Défaut | Modifiable | Historique
short_open_tag | On | PHP_INI_ALL | PHP_INI_ALL pour PHP 4.0.0. PHP_INI_PERDIR en PHP >= 4.0.1.
asp_tags | "0" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP 4.0.0. Disponible jusqu'en PHP 7.0.0.
precision | "14" | PHP_INI_ALL |
serialize_precision | "17" | PHP_INI_ALL | Disponible depuis PHP 4.3.2. Jusqu'en PHP 5.3.5, la valeur par défaut était 100.
y2k_compliance | "1" | PHP_INI_ALL | Supprimé en PHP 5.4.0.
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP 4.0.0. Supprimé depuis PHP 5.4.0
disable_functions | "" | PHP_INI_SYSTEM uniquement | Disponible depuis PHP 4.0.1.
disable_classes | "" | php.ini only | Disponible depuis PHP 4.3.2.
exit_on_timeout | "" | PHP_INI_ALL | Disponible depuis PHP 5.3.0.
expose_php | "1" | php.ini uniquement |
zend.multibyte | "0" | PHP_INI_ALL | Disponible depuis PHP 5.4.0
zend.script_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 5.4.0
zend.detect-unicode | NULL | PHP_INI_ALL | Disponible depuis PHP 5.4.0
zend.signal_check | "0" | PHP_INI_SYSTEM | Disponible depuis PHP PHP 5.4.0
zend.assertions | "1" | PHP_INI_ALL avec des restrictions | Disponible depuis PHP 7.0.0.
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0. Supprimé en PHP 5.3.0.
detect_unicode | "1" | PHP_INI_ALL | Disponible depuis PHP 5.1.0. Renommé en zend.detect-unicode depuis PHP 5.4.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

short_open_tag boolean

Définit si les balises courtes d'ouverture de PHP (<? ?>) sont autorisées ou non. Si vous voulez utiliser PHP avec XML, vous devez désactiver cette option de configuration pour pouvoir utiliser <?xml ?>. Sinon, vous pouvez l'écrire à l'aide de PHP, par exemple : <?php echo '<?xml version="1.0">'; ?>. Si cette option est désactivée, vous devez utiliser la version longue d'ouverture de balises PHP (<?php ?>).

Note:

Cette directive affecte également l'utilisation de <?=, qui est identique à <? echo, avant PHP 5.4.0. L'utilisation de cette écriture nécessite que l'option short_open_tag soit activée. Depuis PHP 5.4.0, <?= est toujours disponible.

asp_tags boolean
Active l'utilisation des balises ASP (<% %>) tout en conservant les balises PHP (<?php ?>). Cela inclut l'utilisation des balises courtes comme <%= $valeur %>. Pour plus d'informations, lisez la page Sortir du mode HTML.

Historique pour asp_tags
Version | Description
7.0.0 | Supprimé de PHP.

precision integer
Le nombre de décimales significatif à afficher dans les nombres à virgule flottante. -1 signifie que le meilleur algorithme pour arrondir ce nombre sera utilisé.
serialize_precision integer
Le nombre de chiffres significatifs conservés lors de la linéarisation des nombres à virgule flottante. -1 signifie que le meilleur algorithme pour arrondir ce nombre sera utilisé.
y2k_compliance boolean
Force la conformité avec l'an 2000 (peut être la cause de problèmes avec les navigateurs non-conformes)
allow_call_time_pass_reference boolean

Active ou non la possibilité de forcer les arguments à être passés par référence lors de l'appel à une fonction. Il est préférable de spécifier directement dans la déclaration de la fonction si les arguments seront passés ou non par référence. Nous vous encourageons à désactiver cette option et de vous assurer que vos scripts fonctionnent correctement avec, afin d'être sûr qu'ils fonctionneront avec les versions futures du langage (vous devriez recevoir une alerte à chaque fois que vous utiliserez cette fonctionnalité).

Passer les arguments par référence à l'appel de la fonction a été abandonné pour rendre le code plus clair. Les fonctions risquaient de modifier les arguments d'une manière aléatoire si l'argument était passé par référence. Pour éviter cet effet, il est préférable de spécifier le passage par référence dans le prototype de la fonction.

Voir aussi l'explication sur les références.

Changelog pour allow_call_time_pass_reference
Version | Description
5.4.0 | Supprimé de PHP.
5.3.0 | Génère une erreur E_DEPRECATED.
5.0.0 | Déprécié, génère une erreur E_COMPILE_WARNING.

expose_php boolean

Expose à tous les clients le fait que PHP est installé sur le serveur. Ceci inclut la version de PHP dans les en-têtes HTTP de la réponse (X-Powered-By : PHP/5.3.7). Avant PHP 5.5.0, les logos sont aussi activés, donc ajouter leur chaine aux urls de votre script PHP affichera le logo approprié (» http://www.php.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42). Ceci affecte aussi la sortie de phpinfo(). Lorsque les logos sont désactivés, le logo PHP et les crédits ne s'afficheront pas.

Note:

Depuis PHP 5.5.0, ces GUIDs et la fonction php_logo_guid() ont été supprimés de PHP, et les GUIDs ont été remplacés avec les données URIs. Le fait de tenter d'accéder au logo de PHP en ajoutant le GUID à l'URL ne fonctionne plus. De la même façon, le fait de désactiver le paramètre expose_php n'aura aucun effet sur l'affichage ou non du logo PHP dans la fonction phpinfo().

Voir aussi php_logo_guid() et phpcredits().

disable_functions string

Cette directive vous permet de désactiver certaines fonctions pour des raisons de securité. Elle prend une liste de noms de fonction délimités par une virgule. Cette directive n'est pas affectée par le Safe Mode.

Seules les fonctions internes peuvent être désactivées en utilisant cette directive. Les fonctions définies par l'utilisateur ne sont pas affectées.

Cette directive doit être définie dans le php.ini. Par exemple, vous ne pouvez pas le définir dans le fichier httpd.conf.

disable_classes string
Cette directive vous permet de désactiver certaines classes pour des raisons de securité. Elle prend une liste de noms de classes délimités par une virgule. Cette directive n'est pas affectée par le Safe Mode. Cette directive doit être définie dans le php.ini. Par exemple, vous ne pouvez pas le définir dans le fichier httpd.conf.
zend.assertions integer
Lorsque défini à 1, le code d'assertion sera généré (en mode développement). Lorsque défini à 0, le code d'assertion sera généré mais sera ignoré (il ne sera pas exécuté) pendant l'exécution. Lorsque défini à -1, le code d'assertion ne sera pas généré, rendant ainsi les assertions totalement neutres (en mode production).

Note:

Si un processus est démarré en mode production, zend.assertions ne peut être changé en cours d'exécution, sachant que le code pour les assertions n'a pas été généré.

Si un processus est démarré en mode développement, zend.assertions ne peut être défini à -1 en cours d'exécution.

zend.ze1_compatibility_mode boolean

Active le mode de compatibilité avec le Zend Engine 1 (PHP 4). Cela affecte le clonage, le casting (les objets sans propriété sont transtypés en FALSE ou 0) et la comparaison des objets. Dans ce mode, les objets sont passés par valeur plutôt que par référence, par défaut.

Voir aussi la section intitulée Migration de PHP 4 à PHP 5.

Avertissement

Cette fonctionnalité est devenue OBSOLÈTE et a été SUPPRIMÉE depuis PHP 5.3.0.

zend.multibyte boolean

Active l'analyse lexicale des fichiers PHP dans des encodages multi-octets. L'activation de zend.multibyte est nécessaire pour utiliser certains encodages de caractères comme SJIS, BIG5, etc. qui contiennent des caractères spéciaux en encodage multi-octets. Les encodages compatible avec ISO-8859-1 comme UTF-8, EUC, etc. ne nécessitent pas cette option.

Activer zend.multibyte requiert l'extension mbstring.

zend.script_encoding string

Cette valeur sera utilisée à moins qu'une directive declare(encoding=...) n'apparaisse en haut du script. Lorsqu'un encodage incompatible ISO-8859-1 est utilisé, les options zend.multibyte et zend.script_encoding doivent être utilisées.

Les chaines de caractères seront converties depuis zend.script_enconding vers mbstring.internal_encoding, comme si mb_convert_encoding() avait été appelé.

zend.detect_unicode boolean

Vérifie le BOM (Byte Order Mark) et regarde si le fichier contient des caractères multi-octets valides. Cette détection est effectuée avant le lancement de la fonction __halt_compiler(). Disponible uniquement en mode Zend multi-octets.

zend.signal_check boolean

Vérifie si un gestionnaire de signaux de remplacement est utilisé lors de l'arrêt.

exit_on_timeout boolean

Ceci est une directive Apache1 mod_php uniquement, qui force les fils Apache à sortir si une expiration de délai d'exécution PHP survient. Une telle expiration de délai produit en interne un appel à longjmp() en Apache1 qui peut quitter certaines extensions dans un statut non consistent. En terminant le processus, tous les verrous et la mémoire seront nettoyés.

Limite des ressources

Options de configuration
Nom | Défaut | Modifiable | Historique
memory_limit | "128M" | PHP_INI_ALL | "8M" avant PHP 5.2.0, "16M" depuis PHP 5.2.0

Voici un éclaircissement sur l'utilisation des directives de configuration.

memory_limit integer

Cette option détermine la mémoire limite, en octets, qu'un script est autorisé à allouer. Cela permet de prévenir l'utilisation de toute la mémoire par un script mal codé. Notez que pour n'avoir aucune limite, vous devez définir cette directive à -1.

Avant la version 5.2.1 de PHP, pour pouvoir utiliser cette directive, vous deviez l'activer au moment de la compilation en utilisant l'option --enable-memory-limit dans la ligne de configuration. Cette option de compilation était aussi requise afin de définir les fonctions memory_get_usage() et memory_get_peak_usage() avant la version 5.2.1

Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..

Voir aussi : max_execution_time.

Réglage de Performance

Réglage de Performance
Nom | Défaut | Modifiable | Historique
realpath_cache_size | "16K" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.0.
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

realpath_cache_size entier

Détermine la taille du cache de realpath qui sera utilisée par PHP. Cette valeur devrait être augmentée sur les systèmes où PHP ouvre plusieurs fichiers, pour refléter la quantité d'opérations exécutées sur les fichiers.

La taille représente le nombre total d'octets dans la chaîne stockée du chemin, plus la taille des données associées avec l'entrée du cache. Cela signifie que pour stocker de grands chemins dans le cache, la taille du cache doit être suffisamment grand. Cette valeur ne contrôle pas directement le nombre de chemins distincts qui peuvent être mis en cache.

La taille nécessaire pour les données de l'entrée du cache est dépendant du système.

realpath_cache_ttl entier

Temps (en seconde) pour lequel persiste l'information du cache de realpath pour un fichier ou un répertoire donné. Pour des systèmes avec des fichiers qui changent peu souvent, pensez à augmenter cette valeur.

Gestion des données

Options de configuration
Nom | Défaut | Modifiable | Historique
arg_separator.output | "&" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
arg_separator.input | "&" | PHP_INI_PERDIR | Disponible depuis PHP 4.0.5.
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 5.0.5.
request_order | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR | Disponible depuis PHP 5.3.0
auto_globals_jit | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.0.0.
register_globals | "0" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3. Supprimé en PHP 5.4.0.
register_argc_argv | "1" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
register_long_arrays | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.0.0. Obsolète en PHP 5.3.0. Retiré depuis PHP 5.4.0
enable_post_data_reading | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0
post_max_size | "8M" | PHP_INI_PERDIR | PHP_INI_SYSTEM pour PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
auto_prepend_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
auto_append_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
default_mimetype | "text/html" | PHP_INI_ALL |
default_charset | "UTF-8" | PHP_INI_ALL | Par défaut "UTF-8" depuis PHP 5.6.0, vide pour PHP < 5.6.0.
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3. Disponible depuis PHP 4.1.0. Disponible jusqu'en PHP 7.0.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

arg_separator.output string

Le séparateur utilisé lorsque PHP génère les URL pour séparer les arguments.

arg_separator.input string

Liste des séparateur(s) utilisé(s) par PHP pour analyser les URL entrantes et en déduire les valeurs.

Note:

Chaque caractère de cette directive est considéré comme étant un séparateur !

variables_order string

Définit l'ordre d'analyse des variables EGPCS (Environment, Get, Post, Cookie, et Server). Par exemple, si variables_order est défini à "SP" alors PHP créera superglobals $_SERVER et $_POST, maisne créera pas $_ENV, $_GET, et $_COOKIE. Le fait de définir cet ordre à "" signifie qu'aucune superglobals ne sera définie.

Si la directive obsolète register_globals est activée, alors variables_order configurera également l'ordre pour les variables ENV, GET, POST, COOKIE et SERVER qui seront peuplées dans le contexte global. Ainsi, par exemple, si variables_order est défini à "EGPCS", si register_globals est actif, et que $_GET['action'] et $_POST['action'] sont définies, alors $action contiendra la valeur de $_POST['action'] vu que P vient après G dans la valeur de la directive pour cet exemple.

Avertissement

En SAPIs CGI et FastCGI, $_SERVER est également peuplé de valeur de l'environnement ; S est toujours équivalent à ES au regard de la position de E autre part dans cette directive.

Note:

Le contenu et l'ordre de $_REQUEST sont également affectés par cette directive.

request_order string

Cette directive décrit l'ordre dans lequel PHP place les variables GET, POST et Cookie dans le tableau _REQUEST. Le placement s'effectue de la gauche vers la droite, les valeurs les plus récentes écrasant les valeurs plus anciennes.

Si cette directive n'est pas définie, variables_order est utilisé pour le contenu de $_REQUEST.

Notez que les fichiers php.ini de la distribution par défaut ne contiennent pas 'C' pour les cookies, ceci pour des raisons de sécurité.

auto_globals_jit boolean

Quand cette directive est activée, les variables SERVER et ENV sont créées lorsqu'elles sont utilisées : seulement si nécessaire. Si ces variables ne sont pas utilisées dans un script, le script verra un gain de performances.

Les directives PHP register_globals, register_long_arrays, et register_argc_argv doivent être désactivées pour que cete directive soit utilisable. Depuis PHP 5.1.3, il n'est plus nécessaire de désactiver register_argc_argv.

Avertissement

L'utilisation des variables SERVER et ENV est vérifiée lors de la compilation. Ainsi, les utiliser avec, par exemple, des variables dynamiques ne provoquera pas leur initialisation.

register_globals boolean

Définit si oui ou non les variables EGPCS (Environment, GET, POST, Cookie, Server) seront enregistrées comme des variables globales.

Depuis » PHP 4.2.0, la valeur par défaut de cette directive est off.

Lisez le chapitre sur la sécurité concernant l'utilisation de register_globals pour plus d'informations.

Notez que register_globals ne peut pas être défini durant le traitement (ini_set()). Vous pouvez utiliser .htaccess si votre hôte vous le permet comme décrit ci-dessous. Exemple d'une entrée .htaccess : php_flag register_globals off.

Note:

La directive register_globals est affectée par la directive variables_order .

Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

register_argc_argv boolean
Dit à PHP s'il doit déclarer ou non les variables argv et argc (qui contiendront les informations GET). Voir aussi les lignes de commande.
register_long_arrays boolean
Dit à PHP si oui ou non il doit enregistrer les types obsolètes $HTTP_*_VARS comme variables pré-définies. Lorsque cette directive est activée (par défaut), les variables longues PHP comme $HTTP_GET_VARS seront définies. Si vous ne les utilisez pas, il est recommandé de désactiver cette option pour des raisons de performance. À la place, utilisez les variables tableaux super-globales comme $_GET. Cette directive est Disponible depuis PHP 5.0.0.
Avertissement

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

enable_post_data_reading boolean
Le fait de désactiver cette option fera que les variables $_POST et $_FILES ne seront pas peuplées. La seule façon de lire les données transmises sera alors d'utiliser le gestionnaire de flux php://input. Ceci peut être intéressant pour les requêtes via un proxy ou pour analyser les données transmises directement en mémoire.
post_max_size integer
Définit la taille maximale des données reçues par la méthode POST. Cette option affecte également les fichiers chargés. Pour charger de gros fichiers, cette valeur doit être plus grande que la valeur de upload_max_filesize. De façon générale, memory_limit doit être plus grand que post_max_size. Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ.. Dans le cas où la taille des données reçues par la méthode POST est plus grande que post_max_size, les superglobales $_POST et $_FILES seront vides. Ceci peut être surveillé de différentes façons, e.g. en passant une variable $_GET au script qui traite les données, i.e. <form action="edit.php?processed=1">, et ainsi vérifier si $_GET['processed'] est défini.

Note:

PHP autorise des mots-clés pour les bits, incluant K (kilo), M (méga) et G (giga). PHP effectue la conversion automatiquement si vous les utilisez. Soyez attentif de ne pas dépasser la limite d'un entier signé sur 32 bits (si vous utilisez les versions 32 bits), auquel cas votre script échouera.

Historique pour post_max_size
Version | Description
5.3.4 | post_max_size = 0 ne va pas désactiver la limite lorsque le type de contenu est application/x-www-form-urlencoded ou s'il n'est pas enregistré avec PHP.
5.3.2 , 5.2.12 | Permet une taille d'envoi illimitée en définissant post_max_size à 0.

auto_prepend_file string

Spécifie le nom d'un fichier qui sera automatiquement parcouru avant le fichier principal. Ce fichier est inclus comme s'il l'avait été avec la fonction require, donc include_path est utilisé.

La valeur spéciale none désactive l'ajout automatique.

auto_append_file string

Spécifie le nom du fichier qui sera automatiquement parcouru après le fichier principal. Ce fichier est inclus comme s'il l'avait été avec la fonction require, donc include_path est utilisé.

La valeur spéciale none désactive l'ajout automatique.

Note: Si le script se termine par la fonction exit(), l'ajout automatique ne se fera pas.

default_mimetype string

Par défaut, PHP va envoyer le type de média en utilisant l'entête Content-Type. Pour désactiver ceci, laissez vide cette valeur.

Le type de média défini par défaut dans PHP est text/html.

default_charset string

Depuis PHP 5.6.0, "UTF-8" est la valeur par défaut et celle ci est utilisé comme jeu de caractères par défaut pour les fonctions et modules. PHP enverra toujours un jeu de caractères par défaut pour htmlentities(), html_entity_decode() et htmlspecialchars() si le paramètre encoding est omis. La valeur de default_charset sera également utilisée pour définir le jeu de caractères par défaut pour les fonctions iconv si les options de configuration iconv.input_encoding, iconv.output_encoding et iconv.internal_encoding ne sont pas définies, et pour les fonctions mbstring si les options de configuration mbstring.http_input, mbstring.http_output et mbstring.internal_encoding ne sont pas définies.

Toutes les versions de PHP vont utiliser cette valeur comme jeu de caractères par défaut dans l'en-tête par défaut Content-Type envoyé par PHP si l'en-tête n'est pas écrasé via un appel à la fonction header().

Définir un default_charset à une valeur vide n'est pas recommandé.

input_encoding string

Disponible depuis PHP 5.6.0. Ce paramètre est utilisé pour les modules multibytes tels que mbstring et iconv. Vide par défaut.

output_encoding string

Disponible depuis PHP 5.6.0. Ce paramètre est utilisé pour les modules multibytes tels que mbstring et iconv. Vide par défaut.

internal_encoding string

Disponible depuis PHP 5.6.0. Ce paramètre est utilisé pour les modules multibytes tels que mbstring et iconv. Vide par défaut. Si vide alors, default_charset est utilisé.

always_populate_raw_post_data mixed
Avertissement

Cette fonctionnalité était obsolète depuis PHP 5.6.0 et a été supprimée depuis PHP 7.0.0.

Si défini à TRUE, PHP va toujours peupler la variable $HTTP_RAW_POST_DATA des données brutes POST. Sinon, la variable sera peuplée seulement lorsque le type MIME de la donnée n'est pas reconnu.

La méthode préférée pour accéder aux données brûtes POST est php://input, et la variable $HTTP_RAW_POST_DATA est obsolète depuis PHP 5.6.0. Le fait de définir always_populate_raw_post_data à -1 va définir le nouveau comportement qui sera implémenté dans une future version de PHP, dans laquelle la variable $HTTP_RAW_POST_DATA ne sera jamais définie.

Suivant la configuration, $HTTP_RAW_POST_DATA n'est pas disponible avec enctype="multipart/form-data".

Voir aussi : magic_quotes_gpc, magic_quotes_runtime et magic_quotes_sybase.

Chemins et répertoires

Options de configuration
Nom | Défaut | Modifiable | Historique
include_path | ".;/chemin/vers/php/pear" | PHP_INI_ALL |
open_basedir | NULL | PHP_INI_ALL | PHP_INI_SYSTEM en PHP < 5.3.0
doc_root | NULL | PHP_INI_SYSTEM |
user_dir | NULL | PHP_INI_SYSTEM |
extension_dir | "/chemin/vers/php" | PHP_INI_SYSTEM |
extension | NULL | php.ini uniquement |
zend_extension | NULL | php.ini uniquement |
zend_extension_debug | NULL | php.ini uniquement | Disponible avant PHP 5.3.0
zend_extension_debug_ts | NULL | php.ini uniquement | Disponible avant PHP 5.3.0
zend_extension_ts | NULL | php.ini uniquement | Disponible avant PHP 5.3.0
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.2.0.
cgi.discard_path | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0. PHP_INI_ALL dans les versions inférieures à PHP 5.2.1.
cgi.force_redirect | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.2.0. PHP_INI_ALL dans les versions inférieures à PHP 5.2.1.
cgi.nph | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.3.0.
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 4.2.0. PHP_INI_ALL dans les versions inférieures à PHP 5.2.1.
cgi.rfc2616_headers | "0" | PHP_INI_ALL | Disponible depuis PHP PHP 4.3.0.
fastcgi.impersonate | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0. PHP_INI_ALL dans les versions inférieures à PHP 5.2.1.
fastcgi.logging | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0. PHP_INI_ALL dans les versions inférieures à PHP 5.2.1.

Voici un éclaircissement sur l'utilisation des directives de configuration.

include_path string

Spécifie une liste de répertoires où les fonctions require, include, fopen(), file(), readfile() et file_get_contents() chercheront les fichiers. Le format est identique à la variable d'environnement système PATH : une liste de répertoires séparés par deux points (:) sous Unix ou par un point-virgule (;) sous Windows.

PHP considère chaque entrée du chemin d'inclusion séparément lors de la recherche des fichiers à inclure. Il va vérifier le premier chemin, et s'il ne trouve pas le fichier, il va vérifier le chemin suivant, jusqu'à ce qu'il trouve le fichier à inclure ou bien retourner une alerte de type warning ou de type error. Vous pouvez spécifier votre chemin d'inclusion au moment de l'exécution en utilisant la fonction set_include_path().

Exemple #1 include_path sous Unix

include_path=".:/php/includes"

Exemple #2 include_path sous Windows

include_path=".;c:\php\includes"

L'utilisation d'un point (.) dans le chemin d'inclusion vous permet de faire des inclusions relatives au répertoire courant. Cependant, il est plus efficace d'inclure explicitement un fichier avec include './file', que de demander à PHP de vérifier le dossier courant à chaque inclusion.

Note:

Les variables ENV sont aussi disponibles dans les fichiers .ini. Aussi, il est possible de faire référence au dossier home en utilisant la syntaxe ${LOGIN} et ${USER}.

Les variables d'environnement peuvent varier suivant les APIs Serveur, tout comme elles peuvent varier suivant les environnements.

Exemple #3 include_path sous Unix en utilisant la variable d'environnement ${USER}

include_path = ".:${USER}/pear/php"

open_basedir string

Limite les fichiers pouvant être accédés par PHP à une architecture de dossiers spécifique, incluant le fichier lui-même. Cette directive n'est PAS affectée par le Safe Mode.

Lorsqu'un script tente d'accéder à un fichier avec, par exemple, la fonction include ou la fonction fopen(), le chemin vers le fichier est analysé. Lorsque le fichier se trouve à l'extérieur de l'architecture de dossiers spécifié, PHP refusera d'y accéder. Tous les liens symboliques sont résolus, aussi, il n'est pas possible d'outre-passer cette restriction avec un lien symbolique. Si le fichier n'existe pas, alors le lien symbolique ne pourra être résolu et le nom du fichier est comparé avec l'open_basedir .

L'option open_basedir peut affecter plus que les fonctions du système de fichiers ; par exemple, si MySQL est configuré pour utiliser le driver mysqlnd, LOAD DATA INFILE sera affecté par l'option open_basedir . Le plupart des extensions de PHP utilise l'option open_basedir de cette façon.

La valeur spéciale . indique que le dossier courant du script sera utilisé comme dossier de base.Ceci est cependant légèrement dangereux dans le sens où le dossier courant peut être facilement changé grâce à la fonction chdir().

Dans le fichier httpd.conf, open_basedir peut être désactivée (i.e. pour certains hôtes virtuels) de la même façon que n'importe quelle directive de configuration avec "php_admin_value open_basedir none".

Sous Windows, séparez les dossiers avec un point-virgule. Sous tous les autres systèmes, séparez les dossiers avec des deux-points. Lors de l'utilisation d'Apache en module, les chemins de l'open_basedir depuis les dossiers parents sont maintenant automatiquement hérités.

La restriction spécifié avec l'open_basedir est un nom de dossier depuis PHP 5.2.16 et PHP 5.3.4. Les précédantes versions l'utilisait comme un préfixe. Ceci signifie que "open_basedir = /dir/incl" permet également d'accéder à "/dir/include" et "/dir/incls" s'ils existent. Lorsque vous souhaitez restreindre l'accès à un dossier spécifique, terminez le chemin par un slash. Par exemple : open_basedir = /dir/incl/

Par défaut, tous les fichiers peuvent être ouverts.

Note:

Depuis PHP 5.3.0, open_basedir peut être affinée au moment de l'exécution. Ceci signifie que si open_basedir est définie à /www/ dans le fichier php.ini, un script peut affiner la configuration en /www/tmp/ au moment de l'exécution en utilisant la fonction ini_set(). Lors d'un parcours de plusieurs dossiers, vous pouvez utiliser la constante PATH_SEPARATOR suivant le système d'exploitation.

doc_root string

Le dossier racine de PHP sur le serveur. Uniquement utilisé si non vide. Si PHP est configuré avec le safe mode, aucun fichier n'est servi en dehors de ce répertoire. Si PHP n'a pas été compilé avec FORCE_REDIRECT, vous devez définir le doc_root si vous utilisez PHP en tant que CGI sous n'importe quel serveur web (autre que IIS). Alternativement, vous pouvez utiliser la configuration cgi.force_redirect.

user_dir string

Le nom de base du répertoire utilisé dans un répertoire utilisateur pour les fichiers PHP, par exemple, public_html.

extension_dir string

Spécifie le répertoire dans lequel PHP doit chercher des extensions externes à charger. Voir aussi enable_dl et dl().

extension chaîne de caractères

Quelles extensions doivent être chargées dynamiquement lors du démarrage de PHP.

zend_extension string

Nom de l'extension Zend chargeable dynamiquement (par exemple APD) à charger lors du démarrage de PHP.

zend_extension_debug string

Variante de zend_extension pour les extensions compilées avec les informations de débogage avant PHP 5.3.0.

zend_extension_debug_ts string

Variante de zend_extension pour les extensions compilées avec les informations de débogage et la sécurité des threads avant PHP 5.3.0.

zend_extension_ts string

Variante de zend_extension pour les extensions compilés avec la sécurité des threads avant PHP 5.3.0.

cgi.check_shebang_line booléen

Contrôle si PHP CGI vérifie la ligne commençant par #! (shebang) en haut du script exécuté. Cette ligne est nécessaire si le script est destiné à être exécuté en mode autonome et via un PHP CGI. PHP en mode CGI ne lit pas cette ligne et ignore son contenu si cette directive est active.

cgi.discard_path boolean

Si activé, le binaire PHP CGI peut être placé en dehors de l'arbre web en toute sécurité et les personnes ne seront pas capable contourner la sécurité .htaccess.

cgi.fix_pathinfo booléen

Fournit un réel PATH_INFO/ PATH_TRANSLATED pour CGI. Le comportement précédent de PHP était de définir PATH_TRANSLATED en SCRIPT_FILENAME et de ne pas remplir PATH_INFO. Pour plus d'informations sur PATH_INFO, lisez les spécificités CGI. Si définie à 1, PHP CGI fixera ce chemin suivant les spécifications. Si définie à 0, PHP appliquera l'ancien comportement. Par défaut, cette directive est activée. Vous devriez modifier vos scripts pour utiliser SCRIPT_FILENAME à la place de PATH_TRANSLATED.

cgi.force_redirect boolean

cgi.force_redirect est nécessaire pour des raisons de sécurité lors de l'utilisation de PHP en mode CGI sous la plupart des serveurs web. Si vous ne la définissez pas, PHP l'activera automatiquement par défaut. Vous pouvez la désactiver à vos risques et périls.

Note:

Utilisateurs de Windows : Lors de l'utilisation de IIS, cette option doit est désactivée ; pareil pour OmniHTTPD et Xitami.

cgi.nph boolean

Si cgi.nph est activé, il forcera CGI à toujours envoyer le Status: 200 avec chaque requête.

cgi.redirect_status_env string

Si cgi.force_redirect est activé et que vous ne tournez pas sous un serveur web Apache ou Netscape (iPlanet), vous devriez avoir besoin de définir un nom de variable d'environnement que PHP utilisera pour voir si tout est correct pour continuer l'exécution.

Note:

La définition de cette variable peut avoir des conséquences sur la sécurité. Sachez ce que vous faites avant de faire cela.

cgi.rfc2616_headers int

Dit à PHP quel type d'en-tête doit être utilisé lors de l'envoi du code réponse HTTP. Si définie à 0, PHP enverra un en-tête "Status:" (» RFC 3875) qui est supporté par Apache et les autres serveurs web. Lorsque définie à -1, PHP enverra un en-tête répondant à la spécification de la » RFC 2616.

Si cette option est activée, et que vous exécutez PHP en environnement CGI (e.g. PHP-FPM), vous ne devriez pas utiliser les en-têtes de réponse HTTP "status" RFC 2616, mais plutôt utiliser l'équivalent RFC 3875, i.e. au lieu de l'en-tête ("HTTP/1.0 404 Not found"), utilisez ("Status: 404 Not Found").

Laissez ce paramètre à 0 à moins que vous savez parfaitement ce que vous faîtes.

fastcgi.impersonate string

FastCGI sous IIS (sur les systèmes d'exploitation basés sur WINNT) supporte la possibilité de déterminer la marque de sécurité du client appelant. Cela permet à IIS de définir le contexte de sécurité sur lequel la requête est exécuté. mod_fastcgi sous Apache ne supporte actuellement pas cette fonctionnalité (03/17/2002). Définie à 1 si vous utilisez IIS. Par défaut, vaut 0.

fastcgi.logging boolean

Active la journalisation SAPI avec FastCGI. Activé par défaut.

Chargement de fichiers

Options de configuration
Nom | Défaut | Modifiable | Historique
file_uploads | "1" | PHP_INI_SYSTEM | PHP_INI_ALL pour PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
max_input_nesting_level | 64 | PHP_INI_PERDIR | Disponible depuis PHP 5.3.9.
max_input_vars | 1000 | PHP_INI_PERDIR | Disponible depuis PHP 5.3.9.
upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
max_file_uploads | 20 | PHP_INI_SYSTEM | Disponible depuis PHP 5.2.12.

Voici un éclaircissement sur l'utilisation des directives de configuration.

file_uploads boolean

Autorise ou non le chargement de fichiers par HTTP. Voir aussi les directives upload_max_filesize, upload_tmp_dir et post_max_size.

upload_tmp_dir string

Le répertoire temporaire utilisé pour stocker les fichiers lors du chargement. L'utilisateur sous lequel fonctionne PHP doit avoir les droits en écriture sur ce répertoire. Si non spécifié, PHP utilisera celui par défaut du système.

Si le dossier renseigné ici n'est pas accessible en écriture, PHP se rabat alors sur le dossier temporaire par défaut du système. Si open_basedir est activé, alors le dossier temporaire par défaut du système doit être autorisé pour que le chargement des fichiers puisse fonctionner.

upload_max_filesize integer

La taille maximale en octets d'un fichier à charger.

Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..
max_file_uploads entier

Le nombre maximum de fichiers pouvant être envoyés simultanément. Depuis PHP 5.3.4, les champs de téléchargement laissés vides lors de la soumission ne comptent plus dans le calcul de cette limite.

SQL général

Options de configuration
Nom | Défaut | Modifiable | Historique
sql.safe_mode | "0" | PHP_INI_SYSTEM |

Voici un éclaircissement sur l'utilisation des directives de configuration.

sql.safe_mode boolean

Si activé, les fonctions de connexion à la base de données qui spécifient des valeurs par défaut utiliseront ces valeurs au lieu des arguments fournis. Pour les valeurs par défaut, reportez-vous à la documentation des fonctions de connexion pour la base de données concernée.

Spécifique à Windows

Options de configuration spécifiques à Windows
Nom | Défaut | Modifiable | Historique
windows.show_crt_warning | "0" | PHP_INI_ALL | Disponible depuis PHP 5.4.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

windows.show_crt_warning boolean

This directive shows the Windows CRT warnings when enabled. These warnings were displayed by default until PHP 5.4.0.


Catégorie/Liste des extensions

Sommaire

  • Par ordre alphabétique
  • Adhésion
  • État

Cette annexe classe par catégorie plus de 150 extensions documentées dans le manuel PHP suivant différents critères.


Par ordre alphabétique

  • Apache
  • APC
  • APD
  • Les tableaux
  • BBCode
  • BC Math
  • bcompiler
  • Bzip2
  • Cairo
  • Calendar
  • chdb
  • Classkit
  • Classes/Objets
  • COM
  • Crack
  • ctype
  • CUBRID
  • cURL
  • Cyrus
  • Date/Heure
  • DBA
  • dBase
  • DB++
  • dbx
  • Direct IO
  • Les dossiers
  • DOM
  • Eio
  • Enchant
  • Gestion des erreurs
  • Ev
  • Event
  • Exécution de programme
  • Exif
  • Expect
  • FAM
  • FrontBase
  • FDF
  • Fileinfo
  • filePro
  • Système de fichiers
  • Filter
  • FriBiDi
  • FTP
  • Gestion des fonctions
  • Gearman
  • Gender
  • GeoIP
  • Gettext
  • Gmagick
  • GMP
  • GnuPG
  • Gupnp
  • haru
  • Hash
  • htscanner
  • Hyperwave API
  • Firebird/InterBase
  • IBM DB2
  • iconv
  • ID3
  • Informix
  • IIS
  • GD
  • ImageMagick
  • IMAP
  • inclued
  • Options PHP et informations PHP
  • Ingres
  • Inotify
  • intl
  • JSON
  • Judy
  • KADM5
  • KTaglib
  • Lapack
  • LDAP
  • Libevent
  • libxml
  • Lua
  • LZF
  • Mail
  • Mailparse
  • Math
  • MaxDB
  • Chaînes de caractères multi-octets
  • Mcrypt
  • MCVE
  • Memcache
  • Memcached
  • Memtrack
  • Mhash
  • Mimetype
  • Ming
  • Misc.
  • mnoGoSearch
  • Mongo
  • mqseries
  • Msession
  • mSQL
  • Mssql
  • MySQL (Original)
  • MySQLi
  • Mysqlnd
  • mysqlnd_memcache
  • mysqlnd_ms
  • mysqlnd_mux
  • mysqlnd_qc
  • mysqlnd_uh
  • Ncurses
  • Gopher
  • Réseau
  • Newt
  • YP/NIS
  • NSAPI
  • OAuth
  • OCI8
  • oggvorbis
  • OpenAL
  • OpenSSL
  • Contrôle de l'affichage
  • Paradox
  • Parsekit
  • Table de hachage de mot de passe
  • PCNTL
  • PCRE
  • PDF
  • PDO
  • 4D (PDO)
  • CUBRID (PDO)
  • MS SQL Server (PDO)
  • Firebird (PDO)
  • IBM (PDO)
  • Informix (PDO)
  • MySQL (PDO)
  • Oracle (PDO)
  • ODBC et DB2 (PDO)
  • PostgreSQL (PDO)
  • SQLite (PDO)
  • MS SQL Server (PDO)
  • PostgreSQL
  • Phar
  • POSIX
  • Proctitle
  • PS
  • Pspell
  • pthreads
  • Quickhash
  • Radius
  • Rar
  • Readline
  • Recode
  • Reflection
  • Regex POSIX
  • RPM Reader
  • RRD
  • runkit
  • SAM
  • SCA
  • scream
  • SDO
  • SDO DAS XML
  • SDO-DAS-Relational
  • Semaphore
  • Sessions
  • Session PgSQL
  • Mémoire partagée
  • SimpleXML
  • SNMP
  • SOAP
  • Sockets
  • Solr
  • Sphinx
  • SPL
  • Types SPL
  • SQLite
  • SQLite3
  • SQLSRV
  • ssdeep
  • SSH2
  • Fonctions statistiques
  • Stomp
  • Flux
  • Chaîne de caractères
  • SVM
  • SVN
  • Swish
  • Sybase
  • Sync
  • Taint
  • TCP
  • Tidy
  • Tokenizer
  • tokyo_tyrant
  • Trader
  • ODBC
  • URLs
  • V8js
  • Gestion des variables
  • Varnish
  • vpopmail
  • WDDX
  • Weakref
  • win32ps
  • win32service
  • WinCache
  • xattr
  • xdiff
  • Xhprof
  • Analyseur syntaxique XML
  • XMLReader
  • XML-RPC
  • XMLWriter
  • XSL
  • Yaf
  • Yaml
  • YAZ
  • Zip
  • Zlib
  • ZooKeeper


Adhésion

Extensions internes

Elles ne sont actuellement pas des extensions. Elles font partie intégrante de PHP et ne peuvent pas être enlevées des binaires PHP avec des options de compilation.

  • Les tableaux

  • Classes/Objets

  • Date/Heure

  • Les dossiers

  • Gestion des erreurs

  • Exécution de programme

  • Système de fichiers

  • Filter

  • Gestion des fonctions

  • Hash

  • Options PHP et informations PHP

  • Mail

  • Math

  • Misc.

  • Réseau

  • Contrôle de l'affichage

  • Table de hachage de mot de passe

  • Phar

  • Reflection

  • Regex POSIX

  • Sessions

  • SPL

  • Flux

  • Chaîne de caractères

  • Tokenizer

  • URLs

  • Gestion des variables

Extensions embarquées

Ces extensions sont embarquées avec PHP.

  • Apache

  • BC Math

  • Calendar

  • COM

  • ctype

  • DBA

  • Exif

  • Fileinfo

  • FTP

  • iconv

  • GD

  • intl

  • JSON

  • Chaînes de caractères multi-octets

  • NSAPI

  • PCNTL

  • PCRE

  • PDO

  • POSIX

  • Semaphore

  • Mémoire partagée

  • Sockets

  • SQLite3

  • XML-RPC

  • Zlib

Extensions externes

Ces extensions sont fournies avec PHP mais pour pouvoir les compiler, des bibliothèques externes peuvent être nécessaires.

  • Bzip2

  • cURL

  • dBase

  • DOM

  • Enchant

  • FrontBase

  • Gettext

  • GMP

  • Firebird/InterBase

  • Informix

  • IMAP

  • LDAP

  • libxml

  • Mcrypt

  • Mhash

  • mSQL

  • Mssql

  • MySQL (Original)

  • MySQLi

  • Mysqlnd

  • OCI8

  • OpenSSL

  • MS SQL Server (PDO)

  • Firebird (PDO)

  • MySQL (PDO)

  • Oracle (PDO)

  • ODBC et DB2 (PDO)

  • PostgreSQL (PDO)

  • SQLite (PDO)

  • PostgreSQL

  • Pspell

  • Readline

  • Recode

  • SimpleXML

  • SNMP

  • SOAP

  • Sybase

  • Tidy

  • ODBC

  • WDDX

  • Analyseur syntaxique XML

  • XMLReader

  • XMLWriter

  • XSL

  • Zip

Extensions PECL

Ces extensions sont disponibles depuis » PECL. Elles peuvent nécessiter des bibliothèques externes. Plus d'extensions PECL existent mais elles ne sont pas encore documentées dans le manuel de PHP.

  • APC

  • APD

  • BBCode

  • bcompiler

  • Cairo

  • chdb

  • Classkit

  • Crack

  • CUBRID

  • Cyrus

  • DB++

  • dbx

  • Direct IO

  • Eio

  • Ev

  • Event

  • Expect

  • FAM

  • FDF

  • filePro

  • FriBiDi

  • Gearman

  • Gender

  • GeoIP

  • Gmagick

  • GnuPG

  • Gupnp

  • haru

  • htscanner

  • Hyperwave API

  • IBM DB2

  • ID3

  • IIS

  • ImageMagick

  • inclued

  • Ingres

  • Inotify

  • Judy

  • KADM5

  • KTaglib

  • Lapack

  • Libevent

  • Lua

  • LZF

  • Mailparse

  • MaxDB

  • MCVE

  • Memcache

  • Memcached

  • Memtrack

  • Mimetype

  • Ming

  • mnoGoSearch

  • Mongo

  • mqseries

  • Msession

  • mysqlnd_memcache

  • mysqlnd_ms

  • mysqlnd_mux

  • mysqlnd_qc

  • mysqlnd_uh

  • Ncurses

  • Gopher

  • Newt

  • YP/NIS

  • OAuth

  • oggvorbis

  • OpenAL

  • Paradox

  • Parsekit

  • PDF

  • 4D (PDO)

  • CUBRID (PDO)

  • IBM (PDO)

  • Informix (PDO)

  • MS SQL Server (PDO)

  • Proctitle

  • PS

  • pthreads

  • Quickhash

  • Radius

  • Rar

  • RPM Reader

  • RRD

  • runkit

  • SAM

  • SCA

  • scream

  • SDO

  • SDO DAS XML

  • SDO-DAS-Relational

  • Session PgSQL

  • Solr

  • Sphinx

  • Types SPL

  • SQLite

  • SQLSRV

  • ssdeep

  • SSH2

  • Fonctions statistiques

  • Stomp

  • SVM

  • SVN

  • Swish

  • Taint

  • TCP

  • tokyo_tyrant

  • Trader

  • V8js

  • Varnish

  • vpopmail

  • Weakref

  • win32ps

  • win32service

  • WinCache

  • xattr

  • xdiff

  • Xhprof

  • Yaf

  • Yaml

  • YAZ

  • ZooKeeper


État

Cette partie liste les extensions non prévues pour un environnement de production - elles sont soit trop "vieilles" (obsolètes), soit trop "nouvelles" (expérimentales).

Extensions obsolètes

Ces extensions ont été dépréciées habituellement en faveur d'autres extensions.

  • Memtrack

  • Mimetype

Extensions expérimentales

Le comportement de ces extensions - incluant le nom de ses fonctions et tout ce qui est documenté à propos de ces extensions - peut être modifié sans aucun avertissement dans les prochaines versions de PHP. Utilisez ces extensions à vos risques et périls.

  • bcompiler

  • DB++

  • haru

  • Hash

  • ImageMagick

  • Ming

  • Ncurses

  • Newt

  • Paradox

  • MS SQL Server (PDO)

  • Firebird (PDO)

  • Oracle (PDO)

  • PS

  • SCA

  • SDO-DAS-Relational

  • Swish

  • vpopmail

  • XML-RPC


Liste des alias

Il y a beaucoup de fonctions en PHP qui peuvent être appelées sous différents noms. Dans la plupart des cas, il n'y pas de nom préféré par rapport à un autre, is_int() et is_integer() sont exactement identiques, par exemple. Ces modifications de noms ont été réalisées en général à cause d'un changement dans l'API d'origine ou pour d'autres raisons et les anciens noms sont conservés uniquement pour des raisons de compatiblité ascendante. C'est une très mauvaise habitude d'utiliser ces alias, car ils risquent à tous moment de disparaître, rendus obsolète sans préavis, ou bien par un simple changement de nom, ce qui rend votre script inutilisable avec des versions plus récentes de PHP. Préférez toujours les versions officielles. En fait, cette liste est surtout destinée à ceux qui doivent mettre à jour leurs scripts avec les syntaxes plus récentes.

Aliases
Alias | Fonction principale | Extension mère
_ | gettext() | Gettext
add | swfmovie_add() | Ming (flash)
add | swfsprite_add() | Ming (flash)
addaction | swfbutton_addAction() | Ming (flash)
addcolor | swfdisplayitem_addColor() | Ming (flash)
addentry | swfgradient_addEntry() | Ming (flash)
addfill | swfshape_addfill() | Ming (flash)
addshape | swfbutton_addShape() | Ming (flash)
addstring | swftext_addString() | Ming (flash)
addstring | swftextfield_addString() | Ming (flash)
align | swftextfield_align() | Ming (flash)
chop | rtrim() | Base syntax
close | closedir() | Base syntax
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
die | exit() | Miscellaneous functions
diskfreespace | disk_free_space() | Filesystem
doubleval | floatval() | Base syntax
drawarc | swfshape_drawarc() | Ming (flash)
drawcircle | swfshape_drawcircle() | Ming (flash)
drawcubic | swfshape_drawcubic() | Ming (flash)
drawcubicto | swfshape_drawcubicto() | Ming (flash)
drawcurve | swfshape_drawcurve() | Ming (flash)
drawcurveto | swfshape_drawcurveto() | Ming (flash)
drawglyph | swfshape_drawglyph() | Ming (flash)
drawline | swfshape_drawline() | Ming (flash)
drawlineto | swfshape_drawlineto() | Ming (flash)
fbsql | fbsql_db_query() | FrontBase
fputs | fwrite() | Base syntax
getascent | swffont_getAscent() | Ming (flash)
getascent | swftext_getAscent() | Ming (flash)
getdescent | swffont_getDescent() | Ming (flash)
getdescent | swftext_getDescent() | Ming (flash)
getheight | swfbitmap_getHeight() | Ming (flash)
getleading | swffont_getLeading() | Ming (flash)
getleading | swftext_getLeading() | Ming (flash)
getshape1 | swfmorph_getShape1() | Ming (flash)
getshape2 | swfmorph_getShape2() | Ming (flash)
getwidth | swfbitmap_getWidth() | Ming (flash)
getwidth | swffont_getWidth() | Ming (flash)
getwidth | swftext_getWidth() | Ming (flash)
gzputs | gzwrite() | Zlib
i18n_convert | mb_convert_encoding() | Multi-bytes Strings
i18n_discover_encoding | mb_detect_encoding() | Multi-bytes Strings
i18n_http_input | mb_http_input() | Multi-bytes Strings
i18n_http_output | mb_http_output() | Multi-bytes Strings
i18n_internal_encoding | mb_internal_encoding() | Multi-bytes Strings
i18n_ja_jp_hantozen | mb_convert_kana() | Multi-bytes Strings
i18n_mime_header_decode | mb_decode_mimeheader() | Multi-bytes Strings
i18n_mime_header_encode | mb_encode_mimeheader() | Multi-bytes Strings
imap_create | imap_createmailbox() | IMAP
imap_fetchtext | imap_body() | IMAP
imap_getmailboxes | imap_list_full() | IMAP
imap_getsubscribed | imap_lsub_full() | IMAP
imap_header | imap_headerinfo() | IMAP
imap_listmailbox | imap_list() | IMAP
imap_listsubscribed | imap_lsub() | IMAP
imap_rename | imap_renamemailbox() | IMAP
imap_scan | imap_listscan() | IMAP
imap_scanmailbox | imap_listscan() | IMAP
ini_alter | ini_set() | Base syntax
is_double | is_float() | Base syntax
is_integer | is_int() | Base syntax
is_long | is_int() | Base syntax
is_real | is_float() | Base syntax
is_writeable | is_writable() | Base syntax
join | implode() | Base syntax
key_exists | array_key_exists() | Base syntax
labelframe | swfmovie_labelFrame() | Ming (flash)
labelframe | swfsprite_labelFrame() | Ming (flash)
ldap_close | ldap_unbind() | LDAP
magic_quotes_runtime | set_magic_quotes_runtime() | Base syntax
mbstrcut | mb_strcut() | Multi-bytes Strings
mbstrlen | mb_strlen() | Multi-bytes Strings
mbstrpos | mb_strpos() | Multi-bytes Strings
mbstrrpos | mb_strrpos() | Multi-bytes Strings
mbsubstr | mb_substr() | Multi-bytes Strings
ming_setcubicthreshold | ming_setCubicThreshold() | Ming (flash)
ming_setscale | ming_setScale() | Ming (flash)
move | swfdisplayitem_move() | Ming (flash)
movepen | swfshape_movepen() | Ming (flash)
movepento | swfshape_movepento() | Ming (flash)
moveto | swfdisplayitem_moveTo() | Ming (flash)
moveto | swffill_moveTo() | Ming (flash)
moveto | swftext_moveTo() | Ming (flash)
msql | msql_db_query() | mSQL
msql_createdb | msql_create_db() | mSQL
msql_dbname | msql_result() | mSQL
msql_dropdb | msql_drop_db() | mSQL
msql_fieldflags | msql_field_flags() | mSQL
msql_fieldlen | msql_field_len() | mSQL
msql_fieldname | msql_field_name() | mSQL
msql_fieldtable | msql_field_table() | mSQL
msql_fieldtype | msql_field_type() | mSQL
msql_freeresult | msql_free_result() | mSQL
msql_listdbs | msql_list_dbs() | mSQL
msql_listfields | msql_list_fields() | mSQL
msql_listtables | msql_list_tables() | mSQL
msql_numfields | msql_num_fields() | mSQL
msql_numrows | msql_num_rows() | mSQL
msql_regcase | sql_regcase() | mSQL
msql_selectdb | msql_select_db() | mSQL
msql_tablename | msql_result() | mSQL
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_close | sybase_close() | Sybase
mssql_close | sybase_close() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_min_client_severity | sybase_min_client_severity() | Sybase
mssql_min_error_severity | sybase_min_error_severity() | Sybase
mssql_min_message_severity | sybase_min_message_severity() | Sybase
mssql_min_server_severity | sybase_min_server_severity() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_query | sybase_query() | Sybase
mssql_query | sybase_query() | Sybase
mssql_result | sybase_result() | Sybase
mssql_result | sybase_result() | Sybase
mssql_select_db | sybase_select_db() | Sybase
mssql_select_db | sybase_select_db() | Sybase
multcolor | swfdisplayitem_multColor() | Ming (flash)
mysql | mysql_db_query() | MySQL
mysql_createdb | mysql_create_db() | MySQL
mysql_db_name | mysql_result() | MySQL
mysql_dbname | mysql_result() | MySQL
mysql_dropdb | mysql_drop_db() | MySQL
mysql_fieldflags | mysql_field_flags() | MySQL
mysql_fieldlen | mysql_field_len() | MySQL
mysql_fieldname | mysql_field_name() | MySQL
mysql_fieldtable | mysql_field_table() | MySQL
mysql_fieldtype | mysql_field_type() | MySQL
mysql_freeresult | mysql_free_result() | MySQL
mysql_listdbs | mysql_list_dbs() | MySQL
mysql_listfields | mysql_list_fields() | MySQL
mysql_listtables | mysql_list_tables() | MySQL
mysql_numfields | mysql_num_fields() | MySQL
mysql_numrows | mysql_num_rows() | MySQL
mysql_selectdb | mysql_select_db() | MySQL
mysql_tablename | mysql_result() | MySQL
nextframe | swfmovie_nextFrame() | Ming (flash)
nextframe | swfsprite_nextFrame() | Ming (flash)
ociassignelem | OCI-Collection::assignElem | OCI8
ocibindbyname | oci_bind_by_name() | OCI8
ocicancel | oci_cancel() | OCI8
ocicloselob | OCI-Lob::close | OCI8
ocicollappend | OCI-Collection::append | OCI8
ocicollassign | OCI-Collection::assign | OCI8
ocicollmax | OCI-Collection::max | OCI8
ocicollsize | OCI-Collection::size | OCI8
ocicolltrim | OCI-Collection::trim | OCI8
ocicolumnisnull | oci_field_is_null() | OCI8
ocicolumnname | oci_field_name() | OCI8
ocicolumnprecision | oci_field_precision() | OCI8
ocicolumnscale | oci_field_scale() | OCI8
ocicolumnsize | oci_field_size() | OCI8
ocicolumntype | oci_field_type() | OCI8
ocicolumntyperaw | oci_field_type_raw() | OCI8
ocicommit | oci_commit() | OCI8
ocidefinebyname | oci_define_by_name() | OCI8
ocierror | oci_error() | OCI8
ociexecute | oci_execute() | OCI8
ocifetch | oci_fetch() | OCI8
ocifetchinto | oci_fetch_array(), oci_fetch_row(), oci_fetch_assoc(), oci_fetch_object() | OCI8
ocifetchstatement | oci_fetch_all() | OCI8
ocifreecollection | OCI-Collection::free | OCI8
ocifreecursor | oci_free_statement() | OCI8
ocifreedesc | oci_free_descriptor() | OCI8
ocifreestatement | oci_free_statement() | OCI8
ocigetelem | OCI-Collection::getElem | OCI8
ociinternaldebug | oci_internal_debug() | OCI8
ociloadlob | OCI-Lob::load | OCI8
ocilogon | oci_connect() | OCI8
ocinewcollection | oci_new_collection() | OCI8
ocinewcursor | oci_new_cursor() | OCI8
ocinewdescriptor | oci_new_descriptor() | OCI8
ocinlogon | oci_new_connect() | OCI8
ocinumcols | oci_num_fields() | OCI8
ociparse | oci_parse() | OCI8
ocipasswordchange | oci_password_change() | OCI8
ociplogon | oci_pconnect() | OCI8
ociresult | oci_result() | OCI8
ocirollback | oci_rollback() | OCI8
ocisavelob | OCI-Lob::save | OCI8
ocisavelobfile | OCI-Lob::import | OCI8
ociserverversion | oci_server_version() | OCI8
ocisetprefetch | oci_set_prefetch() | OCI8
ocistatementtype | oci_statement_type() | OCI8
ociwritelobtofile | OCI-Lob::export | OCI8
ociwritetemporarylob | OCI-Lob::writeTemporary | OCI8
odbc_do | odbc_exec() | ODBC
odbc_field_precision | odbc_field_len() | ODBC
output | swfmovie_output() | Ming (flash)
pdf_add_outline | pdf_add_bookmark() | PDF
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | Base syntax
recode | recode_string() | Recode
remove | swfmovie_remove() | Ming (flash)
remove | swfsprite_remove() | Ming (flash)
rotate | swfdisplayitem_rotate() | Ming (flash)
rotateto | swfdisplayitem_rotateTo() | Ming (flash)
rotateto | swffill_rotateTo() | Ming (flash)
save | swfmovie_save() | Ming (flash)
savetofile | swfmovie_saveToFile() | Ming (flash)
scale | swfdisplayitem_scale() | Ming (flash)
scaleto | swfdisplayitem_scaleTo() | Ming (flash)
scaleto | swffill_scaleTo() | Ming (flash)
setaction | swfbutton_setAction() | Ming (flash)
setbackground | swfmovie_setBackground() | Ming (flash)
setbounds | swftextfield_setBounds() | Ming (flash)
setcolor | swftext_setColor() | Ming (flash)
setcolor | swftextfield_setColor() | Ming (flash)
setdepth | swfdisplayitem_setDepth() | Ming (flash)
setdimension | swfmovie_setDimension() | Ming (flash)
setdown | swfbutton_setDown() | Ming (flash)
setfont | swftext_setFont() | Ming (flash)
setfont | swftextfield_setFont() | Ming (flash)
setframes | swfmovie_setFrames() | Ming (flash)
setframes | swfsprite_setFrames() | Ming (flash)
setheight | swftext_setHeight() | Ming (flash)
setheight | swftextfield_setHeight() | Ming (flash)
sethit | swfbutton_setHit() | Ming (flash)
setindentation | swftextfield_setIndentation() | Ming (flash)
setleftfill | swfshape_setleftfill() | Ming (flash)
setleftmargin | swftextfield_setLeftMargin() | Ming (flash)
setline | swfshape_setline() | Ming (flash)
setlinespacing | swftextfield_setLineSpacing() | Ming (flash)
setmargins | swftextfield_setMargins() | Ming (flash)
setmatrix | swfdisplayitem_setMatrix() | Ming (flash)
setname | swfdisplayitem_setName() | Ming (flash)
setname | swftextfield_setName() | Ming (flash)
setover | swfbutton_setOver() | Ming (flash)
setrate | swfmovie_setRate() | Ming (flash)
setratio | swfdisplayitem_setRatio() | Ming (flash)
setrightfill | swfshape_setrightfill() | Ming (flash)
setrightmargin | swftextfield_setRightMargin() | Ming (flash)
setspacing | swftext_setSpacing() | Ming (flash)
setup | swfbutton_setUp() | Ming (flash)
show_source | highlight_file() | Base syntax
sizeof | count() | Base syntax
skewx | swfdisplayitem_skewX() | Ming (flash)
skewxto | swfdisplayitem_skewXTo() | Ming (flash)
skewxto | swffill_skewXTo() | Ming (flash)
skewy | swfdisplayitem_skewy() | Ming (flash)
skewyto | swfdisplayitem_skewYTo() | Ming (flash)
skewyto | swffill_skewYTo() | Ming (flash)
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | Base syntax
streammp3 | swfmovie_streamMp3() | Ming (flash)
swfaction | swfaction_init() | Ming (flash)
swfbitmap | swfbitmap_init() | Ming (flash)
swfbutton | swfbutton_init() | Ming (flash)
swffill | swffill_init() | Ming (flash)
swffont | swffont_init() | Ming (flash)
swfgradient | swfgradient_init() | Ming (flash)
swfmorph | swfmorph_init() | Ming (flash)
swfmovie | swfmovie_init() | Ming (flash)
swfshape | swfshape_init() | Ming (flash)
swfsprite | swfsprite_init() | Ming (flash)
swftext | swftext_init() | Ming (flash)
swftextfield | swftextfield_init() | Ming (flash)
xptr_new_context | xpath_new_context() |


Mots réservés en PHP

Sommaire

  • Liste de mots-clés
  • Classes prédéfinies
  • Constantes pré-définies
  • Autre liste de mots réservés

Cette annexe est une liste d'identifiants prédéfinis en PHP. Aucun des identifiants utilisés ici ne doit être repris comme nom de variable ou de fonction dans vos scripts, sauf s'il est noté explicitement le contraire. Ces identifiants incluent des mots-clés, des constantes, des classes, et des variables prédéfinies. Ces listes ne sont pas complètes ou exhaustives.


Liste de mots-clés

Ces mots ont un sens spécial en PHP. Certains représentent des objets qui ressemblent à des fonctions, d'autres à des constantes, et ainsi de suite, mais ils n'en sont pas vraiment : ce sont des structures de langage. Vous ne pourrez pas les utiliser comme constante, nom de classes, nom de fonctions ou nom de méthodes. Vous pouvez les utiliser comme nom de variables, mais cela risque d'entraîner des confusions.

Depuis PHP 7.0.0, ces mots clés sont autorisés comme propriété, constante et noms de méthodes dans les classes, interfaces, traits, sauf le mot clé class qui ne doit pas être utilisé comme nom de constante.

Mots réservés en PHP
__halt_compiler() | abstract | and | array() | as
break | callable (depuis PHP 5.4) | case | catch | class
clone | const | continue | declare | default
die() | do | echo | else | elseif
empty() | enddeclare | endfor | endforeach | endif
endswitch | endwhile | eval() | exit() | extends | final | finally (depuis PHP 5.5) | for | foreach | function
global | goto (depuis PHP 5.3)
if | implements | include
include_once | instanceof | insteadof (as of PHP 5.4) | interface | isset()
list() | namespace (depuis PHP 5.3) | new | or | print
private | protected | public | require | require_once
return | static | switch | throw | trait (depuis PHP 5.4)
try | unset() | use | var | while
xor | yield (depuis PHP 5.5) |  |  |
Constantes utilisées lors de la compilation
__CLASS__ | __DIR__ (depuis PHP 5.3) | __FILE__ | __FUNCTION__ | __LINE__ | __METHOD__
__NAMESPACE__ (depuis PHP 5.3) | __TRAIT__ (depuis PHP 5.4) |  |  |  |


Classes prédéfinies

Cette section liste les classes standards prédéfinies. Les autres extensions qui définissent d'autres classes sont décrites dans leur référence.

Classes standards

Ces classes sont définies dans le jeu de classes standards de PHP, inclus dans toutes les versions de PHP.

Directory
Créé par la fonction dir().
stdClass
Créé par la conversion en objet.
__PHP_Incomplete_Class
Peut être créé par la fonction unserialize().

Classes prédéfinies en PHP 5

Ces classes ont été ajoutées en PHP 5.0.0.

Exception
ErrorException
Disponible depuis PHP 5.1.0.
php_user_filter

Closure

La classe prédéfinie finale Closure a été introduite en PHP 5.3.0. Elle est utilisée pour représenter les fonctions anonymes.

Pour plus d'informations, reportez-vous à cette page.

Générateur

La classe finale prédéfinie Generator a été introduite en PHP 5.5.0. Elle est utilisée pour représenter les générateurs.

Pour plus d'informations, voir la page relative à la classe.

Les classes et les interfaces prédéfinies depuis PHP 7

Les classes et les interfaces prédéfinies suivantes ont été introduites en PHP 7.0.0.

ArithmeticError
AssertionError
DivisionByZeroError
Error
Throwable
ParseError
TypeError

Classes spéciales

Les identifiants suivants ne devraient pas être utilisés en tant que nom de classe à cause de leur rôle particulier.

self
Classe courante.
static
Classe courante au moment de l'exécution.
parent
Classe parent.


Constantes pré-définies

Constantes prédéfinies

Ces constantes sont définies par le coeur de PHP. Cela inclut notamment PHP, le moteur Zend et les modules SAPI.

PHP_VERSION (chaîne de caractères)
La version courante de PHP sous la forme d'une chaîne de caractères dans la notation "major.minor.release[extra]".
PHP_MAJOR_VERSION (entier)
La version majeure courante de PHP sous la forme d'une chaîne de caractères (i.e., int(5) depuis la version "5.2.7-extra"). Disponible depuis PHP 5.2.7.
PHP_MINOR_VERSION (entier)
La version mineure courante de PHP sous la forme d'une chaîne de caractères (i.e., int(5) depuis la version "5.2.7-extra"). Disponible depuis PHP 5.2.7.
PHP_RELEASE_VERSION (entier)
La version stable courante de PHP sous la forme d'une chaîne de caractères (i.e., int(5) depuis la version "5.2.7-extra"). Disponible depuis PHP 5.2.7.
PHP_VERSION_ID (entier)
La version courante de PHP sous la forme d'un entier, utile pour la comparaison de versions (i.e., int(50207) depuis la version "5.2.7-extra"). Disponible depuis PHP 5.2.7.
PHP_EXTRA_VERSION (chaîne de caractères)
La version "extra" courante de PHP sous la forme d'une chaîne de caractères(i.e., '-extra' depuis la version "5.2.7-extra"). Habituellement utilisée par les packagers des distributions pour indiquer une version de paquet. Disponible depuis PHP 5.2.7.
PHP_ZTS (entier)
Disponible depuis PHP 5.2.7.
PHP_DEBUG (entier)
Disponible depuis PHP 5.2.7.
PHP_MAXPATHLEN (entier)
La longueur maximale des noms de fichiers (y compris le chemin) supportée par ce binaire PHP. Disponible depuis PHP 5.3.0.
PHP_OS (chaîne de caractères)
PHP_SAPI (chaîne de caractères)
L'API du serveur pour ce binaire PHP. Voyez aussi php_sapi_name().
PHP_EOL (chaîne de caractères)
Le bon symbole de fin de ligne pour cette plateforme. Disponible depuis PHP 5.0.2
PHP_INT_MAX (entier)
Le plus grand entier supporté par ce binaire de PHP. Habituellement, int(2147483647). Disponible depuis PHP 5.0.5
PHP_INT_MIN (integer)
Le plus petit entier supporté dans cette version de PHP. Habituellement, int(-2147483648) sur les systèmes 32 bit et int(-9223372036854775808) sur les systèmes 64 bit. Disponible depuis PHP 7.0.0. Habituellement, PHP_INT_MIN === ~PHP_INT_MAX.
PHP_INT_SIZE (entier)
La taile d'un entier, en octets, dans cette version de PHP. Disponible depuis PHP 5.0.5
DEFAULT_INCLUDE_PATH (chaîne de caractères)
PEAR_INSTALL_DIR (chaîne de caractères)
PEAR_EXTENSION_DIR (chaîne de caractères)
PHP_EXTENSION_DIR (chaîne de caractères)
PHP_PREFIX (chaîne de caractères)
La valeur du "--prefix" qui a été définie au moment de la configuration.
PHP_BINDIR (chaîne de caractères)
Spécifie l'endroit où ont été installé les binaires.
PHP_BINARY (chaîne de caractères)
Spécifie le chemin vers le binaire PHP lors de l'exécution du script. Disponible depuis PHP 5.4.
PHP_MANDIR (chaîne de caractères)
Spécifie le chemin d'installation des pages man. Disponible depuis PHP 5.3.7.
PHP_LIBDIR (chaîne de caractères)
PHP_DATADIR (chaîne de caractères)
PHP_SYSCONFDIR (chaîne de caractères)
PHP_LOCALSTATEDIR (chaîne de caractères)
PHP_CONFIG_FILE_PATH (chaîne de caractères)
PHP_CONFIG_FILE_SCAN_DIR (chaîne de caractères)
PHP_SHLIB_SUFFIX (chaîne de caractères)
Le suffixe de la plate-forme de compilation pour les bibliothèques partagées, comme "so" (sous la plupart des Unix) ou "dll" (Windows).
E_ERROR (entier)
Constante de rapport d'erreur
E_WARNING (entier)
E_PARSE (entier)
E_NOTICE (entier)
E_CORE_ERROR (entier)
E_CORE_WARNING (entier)
E_COMPILE_ERROR (entier)
E_COMPILE_WARNING (entier)
E_USER_ERROR (entier)
E_USER_WARNING (entier)
E_USER_NOTICE (entier)
E_DEPRECATED (entier)
Disponible depuis PHP 5.3.0
E_USER_DEPRECATED (entier)
Disponible depuis PHP 5.3.0
E_ALL (entier)
E_STRICT (entier)
__COMPILER_HALT_OFFSET__ (entier)
Disponible depuis PHP 5.1.0
TRUE (booléen)
Voir Booleans.
FALSE (booléen)
Voir Booleans.
NULL (null)
Voir Null.

Voir aussi les constantes magiques.

Constantes standards prédéfinies

Toutes les constantes des extensions coeur sont définies en PHP par défaut.


Autre liste de mots réservés

Les mots suivants ne peuvent pas être utilisés comme nom de classe, d'interface ou de trait, et il est également interdit de les utiliser dans les espaces de noms.

Mots réservés
int (depuis PHP 7) | float (depuis PHP 7) | bool (depuis PHP 7) | string (depuis PHP 7)
true (depuis PHP 7) | false (depuis PHP 7) | null (depuis PHP 7)

La liste des mots suivants ont une particularité. Bien qu'ils puissent être utilisés dans les noms de classe, d'interface, et de trait (mais aussi dans les espaces de noms), il convient d'éviter de les utiliser sachant qu'ils peuvent être utilisés dans les futures versions de PHP.

Soft reserved words
resource (depuis PHP 7) object (depuis PHP 7) mixed (depuis PHP 7) numeric (depuis PHP 7)


Types des ressources PHP

Voici la liste des fonctions qui créent, utilisent ou détruisent les ressources PHP. Vous pouvez déterminer si une variable contient une ressource avec la fonction is_resource(), et le type d'une ressource que vous utilisez avec la fonction get_resource_type().

Types de ressource
Ressource | Construite par | Utilisée par | Détruite par | Définition
aspell | aspell_new() | aspell_check(), aspell_check_raw(), aspell_suggest() | Aucun | Dictionnaire Aspell
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Fichier bzip2
COM | com_load() | com_invoke(), com_propget(), com_get(), com_propput(), com_set(), com_propput() | Aucun | Référence sur un objet COM
VARIANT
cpdf | cpdf_open() | cpdf_page_init(), cpdf_finalize_page(), cpdf_finalize(), cpdf_output_buffer(), cpdf_save_to_file(), cpdf_set_current_page(), cpdf_begin_text(), cpdf_end_text(), cpdf_show(), cpdf_show_xy(), cpdf_text(), cpdf_set_font(), cpdf_set_leading(), cpdf_set_text_rendering(), cpdf_set_horiz_scaling(), cpdf_set_text_rise(), cpdf_set_text_matrix(), cpdf_set_text_pos(), cpdf_set_text_pos(), cpdf_set_word_spacing(), cpdf_continue_text(), cpdf_stringwidth(), cpdf_save(), cpdf_translate(), cpdf_restore(), cpdf_scale(), cpdf_rotate(), cpdf_setflat(), cpdf_setlinejoin(), cpdf_setlinecap(), cpdf_setmiterlimit(), cpdf_setlinewidth(), cpdf_setdash(), cpdf_moveto(), cpdf_rmoveto(), cpdf_curveto(), cpdf_lineto(), cpdf_rlineto(), cpdf_circle(), cpdf_arc(), cpdf_rect(), cpdf_closepath(), cpdf_stroke(), cpdf_closepath_fill_stroke(), cpdf_fill_stroke(), cpdf_clip(), cpdf_fill(), cpdf_setgray_fill(), cpdf_setgray_stroke(), cpdf_setgray(), cpdf_setrgbcolor_fill(), cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor(), cpdf_add_outline(), cpdf_set_page_animation(), cpdf_import_jpeg(), cpdf_place_inline_image(), cpdf_add_annotation() | cpdf_close() | Document PDF avec la bibliothèque CPDF
cpdf outline
Connexion cubrid | cubrid_connect() cubrid_connect_with_url() | cubrid_col_get() cubrid_col_size() cubrid_commit() cubrid_drop() cubrid_execute() cubrid_get_autocommit() cubrid_get_charset() cubrid_get_class_name() cubrid_get_db_parameter() cubrid_get_server_info() cubrid_get() cubrid_insert_id() cubrid_is_instance() cubrid_lob_export() cubrid_lob_get() cubrid_lob_send() cubrid_lock_read() cubrid_lock_write() cubrid_prepare() cubrid_put() cubrid_rollback() cubrid_schema() cubrid_seq_drop() cubrid_seq_insert() cubrid_seq_put() cubrid_set_add() cubrid_set_autocommit() cubrid_set_db_parameter() cubrid_set_drop() cubrid_affected_rows() cubrid_client_encoding() cubrid_errno() cubrid_error() cubrid_list_dbs() cubrid_ping() cubrid_query() cubrid_real_escape_string() | cubrid_close() cubrid_disconnect() | Connexion à une base de données CUBRID
Connexion cubrid persistante | cubrid_pconnect() cubrid_pconnect_with_url() | cubrid_col_get() cubrid_col_size() cubrid_commit() cubrid_drop() cubrid_execute() cubrid_get_autocommit() cubrid_get_charset() cubrid_get_class_name() cubrid_get_db_parameter() cubrid_get_server_info() cubrid_get() cubrid_insert_id() cubrid_is_instance() cubrid_lob_export() cubrid_lob_get() cubrid_lob_send() cubrid_lock_read() cubrid_lock_write() cubrid_prepare() cubrid_put() cubrid_rollback() cubrid_schema() cubrid_seq_drop() cubrid_seq_insert() cubrid_seq_put() cubrid_set_add() cubrid_set_autocommit() cubrid_set_db_parameter() cubrid_set_drop() cubrid_affected_rows() cubrid_client_encoding() cubrid_errno() cubrid_error() cubrid_list_dbs() cubrid_ping() cubrid_query() cubrid_real_escape_string() cubrid_lob2_new() | Connexion persistante à une base de données CUBRID
Requête cubrid | cubrid_prepare() cubrid_execute() cubrid_query() cubrid_unbuffered_query() | cubrid_bind() cubrid_column_names() cubrid_column_types() cubrid_current_oid() cubrid_execute() cubrid_free_result() cubrid_get_query_timeout() cubrid_move_cursor() cubrid_next_result() cubrid_num_cols() cubrid_num_rows() cubrid_set_query_timeout() cubrid_data_seek() cubrid_fetch_array() cubrid_fetch_assoc() cubrid_fetch_field() cubrid_fetch_lengths() cubrid_fetch_object() cubrid_fetch_row() cubrid_field_flags() cubrid_field_len() cubrid_field_name() cubrid_field_seek() cubrid_field_table() cubrid_field_type() cubrid_num_fields() cubrid_result() cubrid_lob2_bind() | cubrid_close_prepare() cubrid_close_request() | Requête CUBRID
cubrid lob | cubrid_lob_get() | cubrid_lob_export() cubrid_lob_send() cubrid_lob_size() | cubrid_lob_close() | Aucun
cubrid lob2 | cubrid_lob2_new() cubrid_fetch() cubrid_fetch_row() cubrid_fetch_array() cubrid_fetch_assoc() cubrid_fetch_object() | cubrid_lob2_export() cubrid_lob2_import() cubrid_lob2_read() cubrid_lob2_write() cubrid_lob2_tell() cubrid_lob2_tell64() cubrid_lob2_seek() cubrid_lob2_seek64() cubrid_lob2_size() cubrid_lob2_size64() | cubrid_lob2_close() | Aucun
curl | curl_copy_handle(), curl_init() | curl_copy_handle(), curl_errno(), curl_error(), curl_exec(), curl_getinfo(), curl_setopt() | curl_close() | Session Curl
dbm | dbmopen() | dbmexists(), dbmfetch(), dbminsert(), dbmreplace(), dbmdelete(), dbmfirstkey(), dbmnextkey() | dbmclose() | Lien vers une base de données DBM
dba | dba_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | dba_close() | Lien vers une base de données DBA
dba persistent | dba_popen() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | Aucun | Lien persistant vers une base de données DBA
dbase | dbase_open() | dbase_pack(), dbase_add_record(), dbase_replace_record(), dbase_delete_record(), dbase_get_record(), dbase_get_record_with_names(), dbase_numfields(), dbase_numrecords() | dbase_close() | Lien vers une base de données dbase
dbx_link_object | dbx_connect() | dbx_query() | dbx_close() | Connexion dbx
dbx_result_object | dbx_query() | Aucun | Résultat dbx
xpath context
xpath object
fbsql link | fbsql_change_user(), fbsql_connect() | fbsql_autocommit(), fbsql_blob_size(), fbsql_clob_size(), fbsql_commit(), fbsql_change_user(), fbsql_create_blob(), fbsql_create_db(), fbsql_create_clob(), fbsql_data_seek(), fbsql_database_password(), fbsql_database(), fbsql_db_query(), fbsql_db_status(), fbsql_drop_db(), fbsql_errno(), fbsql_error(), fbsql_get_autostart_info(), fbsql_hostname(), fbsql_insert_id(), fbsql_list_dbs(), fbsql_password(), fbsql_read_blob(), fbsql_read_clob(), fbsql_rollback(), fbsql_select_db(), fbsql_set_password(), fbsql_set_transaction(), fbsql_start_db(), fbsql_stop_db(), fbsql_username() | fbsql_close() | Lien vers une base de données fbsql
fbsql plink | fbsql_change_user(), fbsql_pconnect() | fbsql_autocommit(), fbsql_change_user(), fbsql_create_db(), fbsql_data_seek(), fbsql_db_query(), fbsql_drop_db(), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_insert_id(), fbsql_list_dbs() | Aucun | Lien persistant vers une base de données fbsql
fbsql result | fbsql_db_query(), fbsql_list_dbs(), fbsql_query(), fbsql_list_fields(), fbsql_list_tables(), fbsql_tablename() | fbsql_affected_rows(), fbsql_fetch_array(), fbsql_fetch_assoc(), fbsql_fetch_field(), fbsql_fetch_lengths(), fbsql_fetch_object(), fbsql_fetch_row(), fbsql_field_flags(), fbsql_field_name(), fbsql_field_len(), fbsql_field_seek(), fbsql_field_table(), fbsql_field_type(), fbsql_next_result(), fbsql_num_fields(), fbsql_num_rows(), fbsql_result(), fbsql_num_rows() | fbsql_free_result() | Résultat fbsql
fdf | fdf_open() | fdf_create(), fdf_save(), fdf_get_value(), fdf_set_value(), fdf_next_field_name(), fdf_set_ap(), fdf_set_status(), fdf_get_status(), fdf_set_file(), fdf_get_file(), fdf_set_flags(), fdf_set_opt(), fdf_set_submit_form_action(), fdf_set_javascript_action() | fdf_close() | Fichier FDF
ftp | ftp_connect(), ftp_ssl_connect() | ftp_login(), ftp_pwd(), ftp_cdup(), ftp_chdir(), ftp_mkdir(), ftp_rmdir(), ftp_nlist(), ftp_rawlist(), ftp_systype(), ftp_pasv(), ftp_get(), ftp_fget(), ftp_put(), ftp_fput(), ftp_size(), ftp_mdtm(), ftp_rename(), ftp_delete(), ftp_site(), ftp_alloc(), ftp_chmod(), ftp_exec(), ftp_get_option(), ftp_nb_continue(), ftp_nb_fget(), ftp_nb_fput(), ftp_nb_get(), ftp_nb_put(), ftp_raw(), ftp_set_option() | ftp_close() | Flux FTP
gd | imagecreate(), imagecreatefromgd(), imagecreatefromgd2(), imagecreatefromgd2part(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatefromxbm(), imagecreatefromxpm(), imagecreatetruecolor(), imagerotate() | imagearc(), imagechar(), imagecharup(), imagecolorallocate(), imagecolorat(), imagecolorclosest(), imagecolorexact(), imagecolorresolve(), imagegammacorrect(), imagegammacorrect(), imagecolorset(), imagecolorsforindex(), imagecolorstotal(), imagecolortransparent(), imagecopy(), imagecopyresized(), imagedashedline(), imagefill(), imagefilledpolygon(), imagefilledrectangle(), imagefilltoborder(), imagegif(), imagepng(), imagejpeg(), imagewbmp(), imageinterlace(), imageline(), imagepolygon(), imagepstext(), imagerectangle(), imagerotate(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness(), image2wbmp(), imagealphablending(), imageantialias(), imagecolorallocatealpha(), imagecolorclosesthwb(), imagecolordeallocate(), imagecolormatch(), imagefilter(), imagefttext(), imagegd(), imagegd2(), imageistruecolor(), imagelayereffect(), imagepalettecopy(), imagesavealpha(), imagesetstyle(), imagexbm() | imagedestroy() | Image GD
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | Aucun | Police pour GD
gd PS encoding
gd PS font | imagepsloadfont() | imagepstext(), imagepsslantfont(), imagepsextendfont(), imagepsencodefont(), imagepsbbox() | imagepsfreefont() | Police PostScript pour GD
GMP integer | gmp_init() | gmp_intval(), gmp_strval(), gmp_add(), gmp_sub(), gmp_mul(), gmp_div_q(), gmp_div_r(), gmp_div_qr(), gmp_div(), gmp_mod(), gmp_divexact(), gmp_cmp(), gmp_neg(), gmp_abs(), gmp_sign(), gmp_fact(), gmp_sqrt(), gmp_sqrtrm(), gmp_perfect_square(), gmp_pow(), gmp_powm(), gmp_prob_prime(), gmp_gcd(), gmp_gcdext(), gmp_invert(), gmp_legendre(), gmp_jacobi(), gmp_random(), gmp_and(), gmp_or(), gmp_xor(), gmp_setbit(), gmp_clrbit(), gmp_scan0(), gmp_scan1(), gmp_popcount(), gmp_hamdist() | Aucun | Nombre GMP
hyperwave document | hw_cp(), hw_docbyanchor(), hw_getremote(), hw_getremotechildren() | hw_children(), hw_childrenobj(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getsrcbydestobj(), hw_getandlock(), hw_gettext(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_inscoll(), hw_pipedocument(), hw_unlock() | hw_deleteobject() | Objet Hyperwave
hyperwave link | hw_connect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | hw_close(), hw_free_document() | Lien vers un serveur Hyperwave
hyperwave link persistent | hw_pconnect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | Aucun | Lien persistant vers un serveur Hyperwave
icap | icap_open() | icap_fetch_event(), icap_list_events(), icap_store_event(), icap_snooze(), icap_list_alarms(), icap_delete_event() | icap_close() | Lien vers un serveur icap
imap | imap_open() | imap_append(), imap_body(), imap_check(), imap_createmailbox(), imap_delete(), imap_deletemailbox(), imap_expunge(), imap_fetchbody(), imap_fetchstructure(), imap_headerinfo(), imap_header(), imap_headers(), imap_listmailbox(), imap_getmailboxes(), imap_get_quota(), imap_status(), imap_listsubscribed(), imap_set_quota(), imap_set_quota(), imap_getsubscribed(), imap_mail_copy(), imap_mail_move(), imap_num_msg(), imap_num_recent(), imap_ping(), imap_renamemailbox(), imap_reopen(), imap_subscribe(), imap_undelete(), imap_unsubscribe(), imap_scanmailbox(), imap_mailboxmsginfo(), imap_fetchheader(), imap_uid(), imap_msgno(), imap_search(), imap_fetch_overview() | imap_close() | Lien vers un serveur mail (IMAP, POP3)
imap chain persistent
imap persistent
ingres | ingres_connect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | ingres_close() | Lien vers une base de données ingresII
ingres persistent | ingres_pconnect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | Aucun | Lien persistant vers une base de données ingresII
interbase blob
interbase link | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Lien vers une base de données Interbase
interbase link persistent | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | Aucun | Lien persistant vers une base de données Interbase
interbase query | ibase_prepare() | ibase_execute() | ibase_free_query() | Requête Interbase
interbase result | ibase_query() | ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() | ibase_free_result() | Résultat Interbase
interbase transaction | ibase_trans() | ibase_commit() | ibase_rollback() | Transaction Interbase
java
ldap link | ldap_connect(), ldap_search() | ldap_count_entries(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_next_attribute(), ldap_next_entry() | ldap_close() | Lien vers un serveur LDAP
ldap result | ldap_read() | ldap_add(), ldap_compare(), ldap_bind(), ldap_count_entries(), ldap_delete(), ldap_errno(), ldap_error(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_get_option(), ldap_list(), ldap_modify(), ldap_mod_add(), ldap_mod_replace(), ldap_next_attribute(), ldap_next_entry(), ldap_mod_del(), ldap_set_option(), ldap_unbind() | ldap_free_result() | Résultat de recherche LDAP
ldap result entry
mcal | mcal_open(), mcal_popen() | mcal_create_calendar(), mcal_rename_calendar(), mcal_rename_calendar(), mcal_delete_calendar(), mcal_fetch_event(), mcal_list_events(), mcal_append_event(), mcal_store_event(), mcal_delete_event(), mcal_list_alarms(), mcal_event_init(), mcal_event_set_category(), mcal_event_set_title(), mcal_event_set_description(), mcal_event_set_start(), mcal_event_set_end(), mcal_event_set_alarm(), mcal_event_set_class(), mcal_next_recurrence(), mcal_event_set_recur_none(), mcal_event_set_recur_daily(), mcal_event_set_recur_weekly(), mcal_event_set_recur_monthly_mday(), mcal_event_set_recur_monthly_wday(), mcal_event_set_recur_yearly(), mcal_fetch_current_stream_event(), mcal_event_add_attribute(), mcal_expunge() | mcal_close() | Lien vers un serveur Mcal
SWFAction
SWFBitmap
SWFButton
SWFDisplayItem
SWFFill
SWFFont
SWFGradient
SWFMorph
SWFMovie
SWFShape
SWFSprite
SWFText
SWFTextField
mnogosearch agent
mnogosearch result
msql link | msql_connect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | msql_close() | Lien vers une base de données mSQL
msql link persistent | msql_pconnect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | Aucun | Lien persistant vers une base de données mSQL
msql query | msql_db_query(), msql_list_dbs(), msql_list_fields(), msql_list_tables(), msql_query() | msql(), msql_affected_rows(), msql_data_seek(), msql_dbname(), msql_fetch_array(), msql_fetch_field(), msql_fetch_object(), msql_fetch_row(), msql_field_seek(), msql_field_table(), msql_field_flags(), msql_field_len(), msql_field_name(), msql_field_type(), msql_num_fields(), msql_num_rows(), msql_numfields(), msql_numrows(), msql_result() | msql_free_result(), msql_free_result() | Résultat mSQL
mssql link | mssql_connect() | mssql_query(), mssql_select_db() | mssql_close() | Lien vers une base de données Microsoft SQL Server
mssql link persistent | mssql_pconnect() | mssql_query(), mssql_select_db() | Aucun | Lien persistant vers une base de données Microsoft SQL Server
mssql result | mssql_query() | mssql_data_seek(), mssql_fetch_array(), mssql_fetch_field(), mssql_fetch_object(), mssql_fetch_row(), mssql_field_length(), mssql_field_name(), mssql_field_seek(), mssql_field_type(), mssql_num_fields(), mssql_num_rows(), mssql_result() | mssql_free_result() | Résultat Microsoft SQL Server
mysql link | mysql_connect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | mysql_close() | Lien vers une base de données MySQL
mysql link persistent | mysql_pconnect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | Aucun | Lien persistant vers une base de données MySQL
mysql result | mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_processes(), mysql_list_tables(), mysql_query(), mysql_unbuffered_query() | mysql_data_seek(), mysql_db_name(), mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object(), mysql_fetch_row(), mysql_fetch_row(), mysql_field_flags(), mysql_field_name(), mysql_field_len(), mysql_field_seek(), mysql_field_table(), mysql_field_type(), mysql_num_fields(), mysql_num_rows(), mysql_result(), mysql_tablename() | mysql_free_result() | Résultat MySQL
Collection oci8 | oci_new_collection() | OCI-Collection::append(), OCI-Collection::assign(), OCI-Collection::assignElem(), OCI-Collection::getElem(), OCI-Collection::max(), OCI-Collection::size(), OCI-Collection::trim() | OCI-Collection::free() | Oracle Collection
Connexion oci8 | oci_connect(), oci_pconnect(), oci_new_connect() | oci_commit(), oci_error(), oci_new_cursor(), oci_parse(), oci_password_change(), oci_rollback(), oci_server_version(), oci_set_action(), oci_set_client_identifier(), oci_set_client_info(), oci_set_module_name() | oci_close() | Connexion sur une base de données Oracle
oci8 lob | oci_new_descriptor() | OCI-Lob::append(), OCI-Lob::close(), OCI-Lob::eof(), OCI-Lob::erase(), OCI-Lob::export(), OCI-Lob::flush(), OCI-Lob::getBuffering(), OCI-Lob::import(), OCI-Lob::load(), OCI-Lob::read(), OCI-Lob::rewind(), OCI-Lob::save(), OCI-Lob::saveFile(), OCI-Lob::seek(), OCI-Lob::setBuffering(), OCI-Lob::size(), OCI-Lob::tell(), OCI-Lob::truncate(), OCI-Lob::write(), OCI-Lob::writeTemporary(), OCI-Lob::writeToFile(), oci_lob_copy(), oci_lob_is_equal() | OCI-Lob::free() | Objets large Oracle
Requête oci8 | oci_parse(), oci_new_cursor() | oci_bind_array_by_name(), oci_bind_by_name(), oci_cancel(), oci_define_by_name(), oci_error() oci_execute(), oci_fetch_all(), oci_fetch_array(), oci_fetch_assoc(), oci_fetch_object(), oci_fetch_row(), oci_fetch(), oci_field_is_null(), oci_field_name(), oci_field_precision(), oci_field_scale(), oci_field_size(), oci_field_type_raw(), oci_field_type(), oci_num_fields(), oci_num_rows(), oci_result(), oci_set_prefetch(), oci_statement_type() | oci_free_statement() | Curseur Oracle
odbc link | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | odbc_close() | Lien vers une base de données ODBC
Lien persistent odbc | odbc_pconnect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | Aucun | Lien persistant vers une base de données ODBC
odbc result | odbc_prepare() | odbc_binmode(), odbc_cursor(), odbc_execute(), odbc_fetch_into(), odbc_fetch_row(), odbc_field_name(), odbc_field_num(), odbc_field_type(), odbc_field_len(), odbc_field_precision(), odbc_field_scale(), odbc_longreadlen(), odbc_num_fields(), odbc_num_rows(), odbc_result(), odbc_result_all(), odbc_setoption() | odbc_free_result() | Résultat ODBC
birdstep link
birdstep result
OpenSSL key | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | Clé de cryptage OpenSSL
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Clé publique
Document pdf | pdf_new() | pdf_add_bookmark(), pdf_add_launchlink(), pdf_add_locallink(), pdf_add_note(), pdf_add_pdflink(), pdf_add_weblink(), pdf_arc(), pdf_attach_file(), pdf_begin_page(), pdf_circle(), pdf_clip(), pdf_closepath(), pdf_closepath_fill_stroke(), pdf_closepath_stroke(), pdf_concat(), pdf_continue_text(), pdf_curveto(), pdf_end_page(), pdf_endpath(), pdf_fill(), pdf_fill_stroke(), pdf_findfont(), pdf_get_buffer(), pdf_get_image_height(), pdf_get_image_width(), pdf_get_parameter(), pdf_get_value(), pdf_lineto(), pdf_moveto(), pdf_open_ccitt(), pdf_open_file(), pdf_open_image_file(), pdf_place_image(), pdf_rect(), pdf_restore(), pdf_rotate(), pdf_save(), pdf_scale(), pdf_setdash(), pdf_setflat(), pdf_setfont(), pdf_setgray(), pdf_setgray_fill(), pdf_setgray_stroke(), pdf_setlinecap(), pdf_setlinejoin(), pdf_setlinewidth(), pdf_setmiterlimit(), pdf_setpolydash(), pdf_setrgbcolor(), pdf_setrgbcolor_fill(), pdf_setrgbcolor_stroke(), pdf_set_border_color(), pdf_set_border_dash(), pdf_set_border_style(), pdf_set_char_spacing(), pdf_set_duration(), pdf_set_font(), pdf_set_horiz_scaling(), pdf_set_parameter(), pdf_set_text_pos(), pdf_set_text_rendering(), pdf_set_value(), pdf_set_word_spacing(), pdf_show(), pdf_show_boxed(), pdf_show_xy(), pdf_skew(), pdf_stringwidth(), pdf_stroke(), pdf_translate(), pdf_add_thumbnail(), pdf_arcn(), pdf_begin_pattern(), pdf_begin_template(), pdf_end_pattern(), pdf_end_template(), pdf_initgraphics(), pdf_makespotcolor(), pdf_set_info(), pdf_setcolor(), pdf_setmatrix(), pdf_open_memory_image() | pdf_close(), pdf_delete() | Document PDF
pdf image | pdf_open_image(), pdf_open_image_file(), pdf_open_memory_image() | pdf_get_image_height(), pdf_get_image_width(), pdf_open_ccitt(), pdf_place_image() | pdf_close_image() | Image dans un document PDF
pdf object
pdf outline
Objet de grande taille pgsql | pg_lo_open() | pg_lo_open(), pg_lo_create(), pg_lo_read(), pg_lo_read_all(), pg_lo_seek(), pg_lo_tell(), pg_lo_unlink(), pg_lo_write() | pg_lo_close() | Objet de grande taille PostGreSQL
pgsql link | pg_connect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | Lien vers une base de données PostGreSQL
pgsql link persistent | pg_pconnect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | Aucun | Lien persistant vers une base de données PostGreSQL
pgsql result | pg_execute(), pg_query(), pg_query_params(), pg_get_result() | pg_fetch_array(), pg_fetch_object(), pg_fetch_result(), pg_fetch_row(), pg_field_is_null(), pg_field_name(), pg_field_num(), pg_field_prtlen(), pg_field_size(), pg_field_type(), pg_last_oid(), pg_num_fields(), pg_num_rows(), pg_result_error(), pg_result_status() | pg_free_result() | Résultat PostGreSQL
pgsql string
printer
printer brush
printer font
printer pen
pspell | pspell_new(), pspell_new_config(), pspell_new_personal() | pspell_add_to_personal(), pspell_add_to_session(), pspell_check(), pspell_clear_session(), pspell_config_ignore(), pspell_config_mode(), pspell_config_personal(), pspell_config_repl(), pspell_config_runtogether(), pspell_config_save_repl(), pspell_save_wordlist(), pspell_store_replacement(), pspell_suggest() | Aucun | Dictionnaire Pspell
pspell config | pspell_config_create() | pspell_new_config() | Aucun | Configuration Pspell
Sablotron XSLT | xslt_create() | xslt_closelog(), xslt_openlog(), xslt_run(), xslt_set_sax_handler(), xslt_errno(), xslt_error(), xslt_fetch_result(), xslt_free() | xslt_free() | Analyseur XSLT
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close()
sockets file descriptor set | socket() | accept_connect(), bind(), connect(), listen(), read(), write() | close() | Socket
sockets i/o vector
Flux | opendir() | readdir(), rewinddir() | closedir() | Dossier
Flux | fopen(), tmpfile() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | Fichier
Flux | popen(), fsockopen(), pfsockopen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Processus
socket | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Socket
sybase-db link | sybase_connect() | sybase_query(), sybase_select_db() | sybase_close() | Lien vers une base de données Sybase avec la bibliothèque db
sybase-db link persistent | sybase_pconnect() | sybase_query(), sybase_select_db() | Aucun | Lien persistant vers une base de données Sybase avec la bibliothèque db
sybase-db result | sybase_query(), sybase_unbuffered_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Résultat Sybase avec la bibliothèque DB
sybase-ct link | sybase_connect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | sybase_close() | Lien vers une base de données Sybase avec la bibliothèque CT
sybase-ct link persistent | sybase_pconnect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | Aucun | Lien persistant vers une base de données Sybase avec la bibliothèque CT
sybase-ct result | sybase_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Résultat Sybase avec la bibliothèque CT
sysvsem | sem_get() | sem_acquire() | sem_release() | Sémaphore Système V
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | Mémoire partagée Système V
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | Paquet wddx
xml | xml_parser_create(), xml_parser_create_ns() | xml_set_object(), xml_set_element_handler(), xml_set_character_data_handler(), xml_set_processing_instruction_handler(), xml_set_default_handler(), xml_set_unparsed_entity_decl_handler(), xml_set_notation_decl_handler(), xml_set_external_entity_ref_handler(), xml_parse(), xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number(), xml_get_current_byte_index(), xml_parse_into_struct(), xml_parser_set_option(), xml_parser_get_option() | xml_parser_free() | Analyseur syntaxique XML
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | Fichier compressé Gzip


Liste des filtres standards

Sommaire

  • Filtres de chaînes de caractères
  • Filtres de conversion
  • Filtres de compression
  • Filtres de chiffrement

Cette section contient la liste des filtres de flux, à utiliser avec stream_filter_append(). Votre version de PHP peut avoir des filtres supplémentaires, ou manquants par rapport à cette liste.

Il est bon de noter une légère différence entre stream_filter_append() et stream_filter_prepend(). Tous les flux PHP disposent d'un petit buffer de lecture, où ils stockent des blocs de données lues dans le système de fichiers, ou dans d'autres sources, afin de les traiter plus efficacement. Aussitôt que les données sont lues depuis la ressource dans le buffer interne, les données sont immédiatement passées au filtre, même si l'application PHP n'est pas prête pour lire ces données. Si des données sont déjà en attente dans le buffer lorsqu'un filtre est ajouté au flux (appended), ces données seront immédiatement passées au filtre, pour que la modification soit transparente. Mais si vous ajoutez un filtre avec prepended, les données NE seront PAS filtrées. Elles attendront que le prochain bloc arrive de la ressource.

Pour avoir la liste complète des filtres de votre version de PHP, utilisez la fonction stream_get_filters().


Filtres de chaînes de caractères

Chaque filtre fait ce que son nom implique, et se réfère au comportement de la fonction PHP correspondante. Pour plus de détails sur un filtre, reportez-vous au manuel de la fonction de référence.

string.rot13 Utilisez ce filtre pour faire traiter les données par la fonction str_rot13().

Exemple #1 Exemple avec le filtre string.rot13

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "Ceci est un test.\n");
/* affiche :  Prpv rfg ha grfg.   */
?>

string.toupper Utilisez ce filtre pour faire traiter les données par la fonction strtoupper().

Exemple #2 Exemple avec le filtre string.toupper

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "Ceci est un test.\n");
/* affiche :  CECI EST UN TEST.   */
?>

string.tolower Utilisez ce filtre pour faire traiter les données par la fonction strtolower().

Exemple #3 Exemple avec le filtre string.tolower

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "Ceci est un test.\n");
/* affiche :  ceci est un test.   */
?>

string.strip_tags (depuis PHP 5.0.0) Utilisez ce filtre pour faire traiter les données par la fonction strip_tags(). Le filtre accepte les paramètres sous deux formats : soit une chaîne contenant une liste de balises, de manière similaire au second paramètre de la fonction strip_tags(); soit un tableau de noms de balises.

Exemple #4 Exemple avec le filtre string.strip_tags

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<strong><em><span>");
fwrite($fp, "<strong>Ce texte en gras</strong> finit par être aggrandi <h1>en un titre 1</h1>\n");
fclose($fp);
/* affiche :  <strong>Ce texte en gras</strong> finit par être aggrandi en un titre 1   */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('strong','em','span'));
fwrite($fp, "<strong>Ce texte en gras</strong> finit par être aggrandi <h1>en un titre 1</h1>\n");
fclose($fp);
/* affiche :  <strong>Ce texte en gras</strong> finit par être aggrandi en un titre 1   */
?>


Filtres de conversion

Comme pour les filtres de chaînes, les filtres de conversion font ce que leur nom indique. Ces filtres ont été ajoutés en PHP 5.0.0. Pour plus d'informations, voyez le manuel de la fonction correspondante.

convert.base64-encode et convert.base64-decode Utilisez ce filtre pour faire traiter les données par les fonctions base64_encode() et base64_decode(). convert.base64-encode supporte les paramètres sous forme de tableau. Si line-length est donné, le résultat sera coupé en lignes de line-length caractères. Si line-break-chars est founi, chaque bloc de caractères sera terminé par ce paramètre. Ces paramètres donnent le même effet que la fonction base64_encode() utilisée conjointement avec chunk_split().

Exemple #1 Exemple avec les filtres convert.base64-encode et convert.base64-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "This is a test.\n");
fclose($fp);
/* affiche :  VGhpcyBpcyBhIHRlc3QuCg==  */

$param = array('line-length' => 8, 'line-break-chars' => "\r\n");
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode', STREAM_FILTER_WRITE, $param);
fwrite($fp, "This is a test.\n");
fclose($fp);
/* affiche :  VGhpcyBp
           :  cyBhIHRl
           :  c3QuCg==  */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* affiche :  This is a test.  */
?>

convert.quoted-printable-encode et convert.quoted-printable-decode Utilisez ce filtre pour faire traiter les données par la fonction quoted_printable_decode(). Il n'y a pas d'équivalent fonctionnel à convert.quoted-printable-encode. convert.quoted-printable-encode reçoit les paramètres sous forme de tableau. En plus des paramètres classiques de convert.base64-encode, convert.quoted-printable-encode accepte aussi les arguments booléens binary et force-encode-first. convert.base64-decode ne supporte le paramètre line-break-chars que comme indication pour supprimer les nouvelles lignes.

Exemple #2 Exemple avec les filtres convert.quoted-printable-encode et convert.quoted-printable-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "This is a test.\n");
/* affiche :  =This is a test.=0A  */
?>


Filtres de compression

Alors que les gestionnaires de compression fournissent un moyen pour générer des fichiers aux formats gzip et bz2, ils ne permettent pas de gérer les protocoles réseaux compressés, ni de commencer avec un flux non compressé pour le transformer en flux compressé. Pour faire cela, il faut appliquer un filtre de compression.

Note: Les filtres de compression ne génèrent pas les en-têtes et fins de fichiers, comme le fait l'utilitaire gzip. Ils ne font que compresser et décompresser des portions de flux de données.

zlib.deflate (compression) et zlib.inflate (decompression) sont les implémentations des méthodes de compression présentées dans la » RFC 1951. Le filtre deflate prend jusqu'à trois paramètres, passés sous la forme de tableau associatif. level spécifie le niveau de compression souhaité, de 1 à 9. Plus le niveau est haut, meilleure est la compression, et plus cher est le coût de compression. Deux niveaux de compression spéciaux existent : 0, qui représente l'absence de compression, et -1, qui représente le niveau par défaut de la bibliothèque zlib : actuellement, c'est 6. window est la taille du buffer mémoire, en base 2. Les valeurs supérieures, jusqu'à 15, soit 32768 octets, donnent de meilleures compressions, et les valeurs inférieures, jusqu'à 9, soit 512 octets, occupent le moins d'espace en mémoire. Par défaut, window vaut actuellement 15. memory est une indication du niveau de mémoire nécessaire. Les valeurs valides vont de 1, pour l'allocation minimale, à 9, pour une allocation maximale. L'allocation de mémoire affecte la vitesse d'exécution, et non pas le coût global.

Note: Comme le niveau de compression est le paramètre le plus courant, il peut aussi être fourni en passant un entier comme paramètre, au lieu d'un tableau.

Les filtres de compression zlib.* sont disponibles avec PHP depuis la version 5.1.0 si le support zlib est activé. Ils sont également disponibles pour les versions 5.0.x en installant le paquet » zlib_filter depuis » PECL.

Exemple #1 zlib.deflate et zlib.inflate

<?php
$params = array('level' => 6, 'window' => 15, 'memory' => 9);

$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "Le texte original est long de " . strlen($original_text) . " octets.\n";

$fp = fopen('test.deflated', 'w');
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
fwrite($fp, $original_text);
fclose($fp);

echo "Le fichier compressé fait " . filesize('test.deflated') . " octets de long.\n";
echo "Le texte original était :\n";
/* Utilise readfile et zlib.inflate pour décompresser à la volée */
readfile('php://filter/zlib.inflate/resource=test.deflated');

/* Affiche :

Le texte original est long de 70 octets
Le fichier compressé fait 56 octets de long.
Le texte original était :
This is a test.
This is only a test.
This is not an important string.

 */
?>

Exemple #2 simple zlib.deflate

<?php
$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "Le texte original est long de " . strlen($original_text) . " octets.\n";

$fp = fopen('test.deflated', 'w');
/* Ici, "6" indique le niveau de compression de 6 */
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, 6);
fwrite($fp, $original_text);
fclose($fp);

echo "Le fichier compressé fait " . filesize('test.deflated') . " octets de long.\n";

/* Affiche :

Le texte original est long de 70 octets
Le fichier compressé fait 56 octets de long.

 */
?>

bzip2.compress et bzip2.decompress fonctionnent de la même manière que les filtres zlib. Le filtre bzip2.compress accepte jusqu'à 2 paramètres, sous la forme d'un tableau associatif : blocks est une valeur entière, de 1 à 9, spécifiant le nombre de blocs de 100 kb de mémoire à allouer à l'espace de travail. work est aussi un entier dont la valeur va de 0 à 250, et qui indique le niveau d'efforts fournis avec une méthode de compression avant de passer à une autre méthode, plus lente. Modifier ce paramètre n'a qu'un effet sur la vitesse de compression. Le gain d'espace ou la mémoire utilisée restent les mêmes. Un niveau de 0 indique que la bibliothèque doit utiliser sa configuration par défaut. Le filtre bzip2.decompress accepte uniquement un paramètre, qui peut être passé sous la forme d'un booléen associé à l'index small. small, lorsqu'il vaut TRUE, indique à la bibliothèque bzip qu'elle doit faire une décompression en utilisant le moins de mémoire possible, aux dépends de la vitesse.

Les filtres bzip2.* ne sont pas inclus dans la distribution PHP depuis la version 5.1.0 si le support bz2 est activé. Ils sont également disponibles pour les versions 5.0.x de PHP en installant le paquet » bz2_filter depuis » PECL.

Exemple #3 bzip2.compress et bzip2.decompress

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "Le texte original est long de " . strlen(LICENSE) . " octets.\n";

$fp = fopen('LICENSE.compressed', 'w');
stream_filter_append($fp, 'bzip2.compress', STREAM_FILTER_WRITE, $param);
fwrite($fp, file_get_contents('LICENSE'));
fclose($fp);

echo "Le fichier compressé fait " . filesize('LICENSE.compressed') . " octets de long.\n";

/* Affiche :

Le texte original est long de 3288 octets.
Le fichier compressé fait 1488 octets de long.

 */
?>


Filtres de chiffrement

mcrypt.* et mdecrypt.* fournissent un système de chiffrement symétrique basé sur libmcrypt. Les deux filtres supportent les mêmes algorithmes disponibles avec la bibliothèque mcrypt, sous la forme de la directive mcrypt.ciphername où ciphername est le nom du chiffrement qui sera passé à mcrypt_module_open(). Les cinq paramètres suivants sont aussi disponibles :

Paramètres du filtre mcrypt
Paramètre | Obligatoire | Par défaut | Valeurs possibles
mode | Optionnel | cbc | cbc, cfb, ecb, nofb, ofb, stream
algorithms_dir | Optionnel | ini_get('mcrypt.algorithms_dir') | Chemin vers les algorithmes de modules
modes_dir | Optionnel | ini_get('mcrypt.modes_dir') | Chemin vers les modes de modules
iv | Obligatoire | N/A | Généralement 8, 16 ou 32 octets de données binaires. Dépend du chiffrement
key | Obligatoire | N/A | Généralement 8, 16 ou 32 octets de données binaires. Dépend du chiffrement

Exemple #1 Chiffrement d'un fichier avec 3DES

<?php
$passphrase = 'My secret';

/* Transforme un mot de passe humain
 * en une paire iv/clé
 */
$iv = substr(md5('iv'.$passphrase, true), 0, 8);
$key = substr(md5('pass1'.$passphrase, true) .
               md5('pass2'.$passphrase, true), 0, 24);
$opts = array('iv'=>$iv, 'key'=>$key);

$fp = fopen('secret-file.enc', 'wb');
stream_filter_append($fp, 'mcrypt.tripledes', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'Secret secret secret data');
fclose($fp);
?>

Exemple #2 Lecture d'un fichier chiffré

<?php
$passphrase = 'My secret';

/* Transforme un mot de passe humain
 * en une paire iv/clé
 */
$iv = substr(md5('iv'.$passphrase, true), 0, 8);
$key = substr(md5('pass1'.$passphrase, true) .
               md5('pass2'.$passphrase, true), 0, 24);
$opts = array('iv'=>$iv, 'key'=>$key);

$fp = fopen('secret-file.enc', 'rb');
stream_filter_append($fp, 'mdecrypt.tripledes', STREAM_FILTER_READ, $opts);
$data = rtrim(stream_get_contents($fp));
fclose($fp);

echo $data;
?>


Liste des modes de transport de sockets disponibles

Sommaire

  • Domaines Internet : TCP, UDP, SSL et TLS
  • Domaine Unix : UNIX et UDG

Voici la liste des différents modes de transport, format URL, dont PHP dispose en interne pour les flux qui exploitent les sockets, tels que fsockopen() et stream_socket_client(). Ces modes de transport ne s'appliquent pas à l'extension sockets.

Pour connaître la liste des modes de transport installés sur votre version de PHP, utilisez stream_get_transports().


Domaines Internet : TCP, UDP, SSL et TLS

PHP 4, PHP 5. ssl:// & tls:// depuis PHP 4.30, sslv2:// & sslv3:// depuis PHP 5.0.2.

Note: Si aucun transport n'est spécifié, tcp:// est utilisé.

  • 127.0.0.1
  • fe80::1
  • www.example.com
  • tcp://127.0.0.1
  • tcp://fe80::1
  • tcp://www.example.com
  • udp://www.example.com
  • ssl://www.example.com
  • sslv2://www.example.com
  • sslv3://www.example.com
  • tls://www.example.com

Les sockets du domaine Internet utilisent un numéro de port en plus de l'adresse de l'hôte. Dans le cas de fsockopen(), il est spécifié en deuxième paramètre et, donc, n'a pas d'impact sur le format du mode de transport. Avec stream_socket_client() et les autres fonctions de la même famille, le numéro de port est spécifié comme un suffixe dans l'URL de transport, identifié par le signe deux-points.

  • tcp://127.0.0.1:80
  • tcp://[fe80::1]:80
  • tcp://www.example.com:80

Note: Adresse IPv6 et numéro de port
Dans le second exemple ci-dessus, les exemples en IPv4 et les noms d'hôtes sont identiques, mais les IPv6 sont placées entre crochets, en plus d'avoir les deux-points et le numéro de port : [fe80::1]. Cela permet de distinguer les deux-points utilisés en IPv6 et le deux-points utilisés pour délimiter le numéro de port.

Les modes ssl:// et tls:// (disponibles uniquement lorsque le support OpenSSl est compilé avec PHP) sont des extensions de tcp:// qui incluent le chiffrement SSL. En PHP 4.3, OpenSll doit être compilé statiquement avec PHP. en PHP 5.0, il peut être compilé en module ou statiquement.

ssl:// va tenter de négocier une connexion SSL V2 ou SSL V3, suivant les capacités et les références de l'hôte distant. sslv2:// et sslv3:// sélectionnent explicitement le protocole.


Domaine Unix : UNIX et UDG

unix:// et udg:// (udg:// depuis PHP 5).

  • unix:///tmp/mysock
  • udg:///tmp/mysock

unix:// fournit l'accès à un flux de type socket, sur un domaine Unix. udg:// fournit un mode de transport alternatif, avec un protocole de datagrammes utilisateurs.

Les sockets du domaine Unix, contrairement à celles du domaine Internet, n'utilisent pas de numéro de port. Dans ce cas, le paramètre portno de fsockopen() doit valoir 0.


Comparaison de types en PHP

La table suivante résume les différents comportements de PHP avec les types et opérateurs de comparaison, strictes ou larges. Cette table est aussi reliée au transtypage. Elle a été inspirée par différents commentaires d'utilisateurs, et par le travail fait chez » BlueShoes.

Avant d'utiliser ces tables, il est important de comprendre les types et leur signification. Par exemple, "42" est une chaîne de caractères, alors que 42 est un entier. FALSE est boolean alors que "false" est une chaîne de caractères.

Note:

Les formulaires HTML ne connaissent pas les entiers, nombres à virgules et autres booléens. Pour savoir si une structure est un entier, utilisez is_numeric().

Note:

La ligne if ($x) génère une erreur de niveau E_NOTICE lorsque $x est indéfini. Alternativement, utilisez plutôt les fonctions empty() ou isset(), ou encore, initialisez toutes vos variables.

Note:

Des opérations numériques peuvent donner une valeur représentée par la constante NAN. Toutes les comparaisons de cette valeur avec une autre valeur, y compris cette même valeur, aura comme résultat FALSE (i.e. NAN != NAN et NAN !== NAN). Exemples d'opérations qui produisent la valeur NAN : sqrt(-1), asin(2), et acosh(0).

Comparaisons de $x avec des fonctions PHP
Expression | gettype() | empty() | is_null() | isset() | boolean : if($x)
$x = ""; | chaîne de caractères | TRUE | FALSE | TRUE | FALSE
$x = null; | NULL | TRUE | TRUE | FALSE | FALSE
var $x; | NULL | TRUE | TRUE | FALSE | FALSE
$x est indéfini | NULL | TRUE | TRUE | FALSE | FALSE
$x = array(); | array | TRUE | FALSE | TRUE | FALSE
$x = array('a', 'b'); | array | FALSE | FALSE | TRUE | TRUE
$x = false; | boolean | TRUE | FALSE | TRUE | FALSE
$x = true; | boolean | FALSE | FALSE | TRUE | TRUE
$x = 1; | entier | FALSE | FALSE | TRUE | TRUE
$x = 42; | entier | FALSE | FALSE | TRUE | TRUE
$x = 0; | entier | TRUE | FALSE | TRUE | FALSE
$x = -1; | entier | FALSE | FALSE | TRUE | TRUE
$x = "1"; | chaîne de caractères | FALSE | FALSE | TRUE | TRUE
$x = "0"; | chaîne de caractères | TRUE | FALSE | TRUE | FALSE
$x = "-1"; | chaîne de caractères | FALSE | FALSE | TRUE | TRUE
$x = "php"; | chaîne de caractères | FALSE | FALSE | TRUE | TRUE
$x = "true"; | chaîne de caractères | FALSE | FALSE | TRUE | TRUE
$x = "false"; | string | FALSE | FALSE | TRUE | TRUE

Comparaison large avec ==
 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php" | ""
TRUE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE
FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE
1 | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE
-1 | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"1" | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"-1" | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
NULL | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE | TRUE
array() | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE | FALSE
"php" | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE

Comparaison stricte avec ===
 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php" | ""
TRUE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
1 | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
-1 | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"1" | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"-1" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
NULL | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
array() | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE
"php" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE


Liste des tokens de l'analyseur

De nombreuses parties du langage PHP sont représentées en interne par des tokens. Littéralement, ce sont des trucs, ou jetons. Ici, des briques de base, comme T_SR. PHP affiche des identifiants comme celui-ci dans les erreurs d'analyse, par exemple : unexpected T_SR, expecting ',' or ';' in script.php on line 10..

Vous êtes suppposé savoir ce que T_SR signifie. Pour ceux qui ne le savent pas, voici une liste de ces identifiants, la syntaxe PHP correspondante, et les références appropriées au manuel.

Note: Utilisation des constantes T_*

Tous les tokens listés ci-dessous sont également définis comme constantes PHP. Leurs valeurs sont automatiquement générées suivant l'infrastructure sous jacente de PHP. Ceci signifie que la valeur concrète d'un token peut changer entre deux versions de PHP. Par exemple, la constante T_FILE vaut 365 en PHP 5.3, alors que la même valeur se réfère maintenant à la constante T_TRAIT en PHP 5.4 et la valeur de la constante T_FILE est de 369. Ceci signifie que votre code ne doit jamais utiliser la valeur littérale des constantes T_* depuis une version PHP X.Y.Z et ce, afin d'assurer une meilleure portabilité entre plusieurs versions de PHP. À la place, votre code doit utiliser les valeurs (utilisation de très grand nombre comme 10000) ainsi qu'une stratégie appropriée qui fonctionnera à la fois avec les versions de PHP et les valeurs T_*.

Tokens
Token | Syntaxe | Référence
T_ABSTRACT | abstract | Abstraction de classes (disponible depuis PHP 5.0.0)
T_AND_EQUAL | &= | opérateurs d'assignation
T_ARRAY | array() | array(), syntaxe de tableau
T_ARRAY_CAST | (array) | transtypage
T_AS | as | foreach
T_BAD_CHARACTER |  | Tous les caractères en dessous de ASCII 32 excepté \t (0x09), \n (0x0a) et \r (0x0d)
T_BOOLEAN_AND | && | opérateurs logiques
T_BOOLEAN_OR | || | opérateurs logiques
T_BOOL_CAST | (bool) ou (boolean) | transtypage
T_BREAK | break; | break
T_CALLABLE | callable | callable
T_CASE | case | switch
T_CATCH | catch | Les exceptions (disponible depuis PHP 5.0.0)
T_CHARACTER |  | Plus utilisé actuellement
T_CLASS | class | classes et objets
T_CLASS_C | __CLASS__ | constantes magiques
T_CLONE | clone | classes et objets
T_CLOSE_TAG | ?> or %> | échapper depuis le HTML
T_COMMENT | // ou #, et /* */ | commentaires
T_CONCAT_EQUAL | .= | opérateurs d'assignation
T_CONST | const | constantes de classe
T_CONSTANT_ENCAPSED_STRING | "foo" ou 'bar' | syntaxe chaîne de caractères
T_CONTINUE | continue | continue
T_CURLY_OPEN | {$ | syntaxe d'analyse de variable complexe
T_DEC | -- | opérateurs d'incrémention/décrémention
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIR | __DIR__ | constantes magiques (disponible depuis PHP 5.3.0)
T_DIV_EQUAL | /= | opérateurs d'assignation
T_DNUMBER | 0.12, etc. | nombres à virgule flottante
T_DOC_COMMENT | /** */ | style de commentaire dans la PHPDoc
T_DO | do | do...while
T_DOLLAR_OPEN_CURLY_BRACES | ${ | syntaxe de variable complexe analysée
T_DOUBLE_ARROW | => | syntaxe de tableau
T_DOUBLE_CAST | (real), (double) ou (float) | transtypage
T_DOUBLE_COLON | :: | Voyez T_PAAMAYIM_NEKUDOTAYIM plus bas
T_ECHO | echo | echo
T_ELLIPSIS | ... | les arguments de fonction (disponible depuis PHP 5.6.0)
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE | " $a" | partie des constantes d'une chaîne de caractères contenant des variables
T_ENDDECLARE | enddeclare | declare, syntaxe alternative
T_ENDFOR | endfor | for, syntaxe alternative
T_ENDFOREACH | endforeach | foreach, syntaxe alternative
T_ENDIF | endif | if, syntaxe alternative
T_ENDSWITCH | endswitch | switch, syntaxe alternative
T_ENDWHILE | endwhile | while, syntaxe alternative
T_END_HEREDOC |  | syntaxe heredoc
T_EVAL | eval() | eval()
T_EXIT | exit ou die | exit(), die()
T_EXTENDS | extends | extends, classes et objets
T_FILE | __FILE__ | constantes magiques
T_FINAL | final | Mot-clé "final"
T_FINALLY | finally | Les exceptions (disponible depuis PHP 5.5.0)
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function or cfunction | fonctions
T_FUNC_C | __FUNCTION__ | constantes magiques
T_GLOBAL | global | scope de variable
T_GOTO | goto | (disponible depuis PHP 5.3.0)
T_HALT_COMPILER | __halt_compiler() | __halt_compiler (disponible depuis PHP 5.1.0)
T_IF | if | if
T_IMPLEMENTS | implements | Interfaces
T_INC | ++ | opérateurs d'incrémention/décrémention
T_INCLUDE | include() | include
T_INCLUDE_ONCE | include_once() | include_once
T_INLINE_HTML |  | texte en dehors de PHP
T_INSTANCEOF | instanceof | opérateurs de type
T_INSTEADOF | insteadof | Traits (disponible depuis PHP 5.4.0)
T_INT_CAST | (int) ou (integer) | transtypage
T_INTERFACE | interface | Interfaces
T_ISSET | isset() | isset()
T_IS_EQUAL | == | opérateurs de comparaison
T_IS_GREATER_OR_EQUAL | >= | opérateurs de comparaison
T_IS_IDENTICAL | === | opérateurs de comparaison
T_IS_NOT_EQUAL | != ou <> | opérateurs de comparaison
T_IS_NOT_IDENTICAL | !== | opérateurs de comparaison
T_IS_SMALLER_OR_EQUAL | <= | opérateurs de comparaison
T_SPACESHIP | <=> | opérateurs de comparaison (disponible depuis PHP 7.0.0)
T_LINE | __LINE__ | constantes magiques
T_LIST | list() | list()
T_LNUMBER | 123, 012, 0x1ac, etc. | entiers
T_LOGICAL_AND | and | opérateurs logiques
T_LOGICAL_OR | or | opérateurs logiques
T_LOGICAL_XOR | xor | opérateurs logiques
T_METHOD_C | __METHOD__ | constantes magiques
T_MINUS_EQUAL | -= | opérateurs d'assignation
T_MOD_EQUAL | %= | opérateurs d'assignation
T_MUL_EQUAL | *= | opérateurs d'assignation
T_NAMESPACE | namespace | namespaces (disponible PHP 5.3.0)
T_NS_C | __NAMESPACE__ | namespaces (disponible depuis PHP 5.3.0)
T_NS_SEPARATOR | \ | namespaces (disponible depuis PHP 5.3.0)
T_NEW | new | classes et objets
T_NUM_STRING | "$a[0]" | index d'un tableau numérique se trouvant dans une chaîne de caractères
T_OBJECT_CAST | (object) | transtypage
T_OBJECT_OPERATOR | -> | classes et objets
T_OPEN_TAG | <?php, <? or <% | sortie du mode HTML
T_OPEN_TAG_WITH_ECHO | <?= ou <%= | sortie du mode HTML
T_OR_EQUAL | |= | opérateurs d'assignation
T_PAAMAYIM_NEKUDOTAYIM | :: | ::. Définie également en tant que T_DOUBLE_COLON.
T_PLUS_EQUAL | += | opérateurs d'assignation
T_POW | ** | les opérateurs arithmétiques (disponible depuis PHP 5.6.0)
T_POW_EQUAL | **= | les opérateurs d'affectation. (disponible depuis PHP 5.6.0)
T_PRINT | print() | print
T_PRIVATE | private | classes et objets
T_PUBLIC | public | classes et objets
T_PROTECTED | protected | classes et objets
T_REQUIRE | require() | require
T_REQUIRE_ONCE | require_once() | require_once
T_RETURN | return | valeurs retournées
T_SL | << | opérateurs sur les bits
T_SL_EQUAL | <<= | opérateurs d'assignation
T_SR | >> | opérateurs sur les bits
T_SR_EQUAL | >>= | opérateurs d'assignation
T_START_HEREDOC | <<< | syntaxe heredoc
T_STATIC | static | scope de variable
T_STRING | parent, self, etc. | identifiants, e.g. mots-clés comme parent et self, noms de fonctions, classes et autres, correspondent. Voir aussi T_CONSTANT_ENCAPSED_STRING.
T_STRING_CAST | (string) | transtypage
T_STRING_VARNAME | "${a | syntaxe d'analyse d'une variable complexe
T_SWITCH | switch | switch
T_THROW | throw | Les exceptions
T_TRAIT | trait | Traits (disponible depuis PHP 5.4.0)
T_TRAIT_C | __TRAIT__ | __TRAIT__ (disponible depuis PHP 5.4.0)
T_TRY | try | Les exceptions
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | type-casting
T_USE | use | namespaces (disponible depuis PHP 5.3.0 ; réservé depuis PHP 4.0.0)
T_VAR | var | classes et objets
T_VARIABLE | $foo | variables
T_WHILE | while | while, do...while
T_WHITESPACE | \t \r\n |
T_XOR_EQUAL | ^= | opérateurs d'assignation
T_YIELD | yield | générateurs (disponible depuis PHP 5.5.0)

Voir aussi token_name().


Guide de nommage de l'espace utilisateur

Sommaire

  • Espace de noms global
  • Règles
  • Astuces

Ce guide permet de choisir de la meilleure façon possible les noms pour les identifiants dans le code PHP de l'espace utilisateur. Lors du choix des noms pour n'importe quel code qui crée des symboles dans l'espace de noms global, il est important de prendre en compte ce guide afin d'éviter d'éventuels problèmes avec les futures versions de PHP et vos symboles.


Espace de noms global

Ceci est une vue de la construction du code qui ira dans l'espace de noms global :

  • fonctions

  • classes

  • interfaces

  • constantes (et non les constantes de classe)

  • variables définies à l'extérieur des fonctions/méthodes


Règles

La liste suivante fournit un aperçu global des règles réservées au projet PHP lors du choix des noms pour les nouveaux identifiants internes. Le guide définitif est l'officiel » CODING STANDARDS :

  • PHP possède l'espace de noms de haut niveau mais tente de trouver des noms descriptifs cohérents.

  • Les noms des fonctions utilisent un underscore entre les mots, tandis que les noms des classes utilisent les notations CamelCase et PascalCase.

  • PHP préfixe tous les symboles globaux d'une extension avec le nom de l'extension. (Dans le passé, il y avait quelques exceptions à cette règle) Exemples :

    • curl_close()

    • mysql_query()

    • PREG_SPLIT_DELIM_CAPTURE

    • new DOMDocument()

    • strpos() (exemple d'une erreur du passé)

    • new SplFileObject()

  • Les itérateurs et les exceptions sont cependant simplement suffixés par respectivement, "Iterator" et "Exception." Exemples :

    • ArrayIterator

    • LogicException

  • PHP réserve tous les symboles commençant par un __ comme étant magique. Il est recommandé de ne pas créer de symboles commençant par un __ en PHP sauf si vous voulez utiliser les fonctionnalités magiques documentées. Exemple :

    • __get()

    • __autoload()


Astuces

Si vous voulez écrire du code portable, il est recommandé de préfixer (ou suffixer) tout ce qui va dans l'espace de noms global avec un préfixe non commun de 3-4 lettres (ou suffixe) séparé par un underscore. Il est recommandé, afin d'éviter des problèmes d'espace de noms avec d'autres codes de l'espace utilisateur, de faire en sorte que les projets recherchent les préfixes (ou les suffixes) utilisés dans les autres projets et de choisir vos préfixes (ou suffixe) en fonction. Exemples :

  • MyPx_someFunc()

  • Foo_Date

  • $asdf_dbh


À propos du manuel

Sommaire

  • Formats
  • À propos des notes utilisateurs
  • Comment lire la définition d'une fonction (prototype)
  • Versions de PHP documentées dans ce manuel
  • Où trouver plus d'informations sur PHP ?
  • Comment aider à l'amélioration de la documentation ?
  • Comment sont générées les documentations
  • Traductions


Formats

Le manuel PHP est fourni en différents formats. Ces formats sont divisés en deux groupes : ceux qui sont disponibles en ligne, et les téléchargeables.

Note:

Certains éditeurs ont fournis des versions imprimées de ce manuel. Nous n'en recommandons aucune, car elles sont rapidement obsolètes.

Le manuel peut être lu en ligne sur le site » php.net et sur les nombreux miroirs. Pour un confort d'utilisation accru, il est recommandé d'utiliser un miroir proche de chez vous. La version en ligne du manuel PHP a actuellement deux rendus CSS : un rendu agréable à l'oeil et un pratique pour l'impression.

Deux avantages du manuel en ligne sur la plupart des formats téléchargeables, sont l'intégration des notes des utilisateurs et les » URL de raccourci que vous pouvez utiliser pour accéder rapidement à une partie du manuel. Un inconvénient évident est que vous devez être en ligne pour profiter de ce format.

Il y a de nombreux formats de manuel pour la consultation hors ligne, et le format le plus approprié dépend de votre OS et de vos goûts personnels. Pour savoir comment le manuel est généré, lisez la section 'Comment le manuel est généré' de cet appendice.

Le format le plus portable est le HTML. Le manuel est fourni dans un format en une seule page HTML, ou comme un ensemble de fichiers de tailles réduites (mais un bon millier de fichiers tout de même). Nous fournissons ce format sous une forme compressée, vous aurez donc besoin d'un utilitaire de décompression pour extraire les fichiers de l'archive.

Pour les plates-formes Windows, le format Windows HTML Help fournit une version HTML du manuel à utiliser avec l'application Windows HTML Help : il intègre un moteur de recherche complet, un index et des signets. De nombreux IDE sous Windows fournissent des liens avec ce format pour une meilleure intégration. Il existe aussi des visualisateurs de CHM pour Linux. Visitez » xCHM ou » GnoCHM.

Il existe aussi une » version CHM étendue, qui est mise à jour moins souvent mais qui fournit plus de fonctionnalités. Elle ne fonctionnera que sur Microsoft Windows à cause des technologies utilisées pour construire ces pages.


À propos des notes utilisateurs

Les notes des utilisateurs jouent un rôle très important dans le développement de ce manuel. En permettant aux lecteurs de contribuer par des exemples, des remarques et critiques, ou encore des clarifications, nous intégrons des aspects très importants du langage dans le manuel. Jusqu'à ce que les notes les plus importantes soient intégrées dans la documentation, elles sont disponibles sur le site lui-même, et dans certains formats hors ligne.

Note:

Les notes des utilisateurs ne sont pas modérées avant d'apparaître sur le site, et même si elles le sont, leur véracité ne peut être garantie, pas plus qu'il n'existe de garantie quand à l'exactitude du manuel lui-même.

Note:

Pour des questions de portée de licence, les notes utilisateurs sont considérées comme faisant partie du manuel PHP, et sont donc couvertes par la même licence qui couvre cette documentation (Creative Commons Attribution à ce jour). Pour plus de détails, lisez la page Manual's Copyright.


Comment lire la définition d'une fonction (prototype)

Chaque fonction dans le manuel est documentée pour permettre une compréhension rapide. Savoir décoder le texte rendra votre apprentissage plus facile. Plutôt que de dépendre d'exemples prêts en copier/coller, il est plus utile de savoir lire la définition d'une fonction (prototype). Voici comment :

Note: Pré-requis : Connaissances de base des types.

Bien que PHP soit un langage sans typage fort, une connaissance de base des types est essentielle, car ils ont quand même des sens importants.

Les définitions de fonctions vous indiquent quel type de données est retourné. Examinons la fonction strlen() comme exemple :

strlen

(PHP 4, PHP 5)
strlen -- Retourne la taille de la chaîne

Description
int strlen ( string  $string )

Retourne la taille de la chaîne $string.

Explications de la définition de la fonction
Partie | Description
strlen | Le nom de la fonction.
(PHP 4, PHP 5) | strlen() est présente dans toutes les versions de PHP 4 et PHP 5.
int | Type de valeur retournée par cette fonction, qui est, en l'occurrence, un entier (i.e. la taille d'une chaîne est mesurée par un nombre).
( string $string ) | Le premier (et ici le seul) paramètre à fournir à cette fonction est le paramètre string, qui doit être du type chaîne de caractères.

Nous pourrions réécrire ce prototype avec une version plus générique :

type_retourné   nom_de_la_fonction    ( type_du_paramètre nom_du_paramètre )

Plusieurs fonctions ont besoin de plusieurs paramètres, comme in_array(). Son prototype est le suivant :

bool in_array ( mixed $needle, array $haystack [, bool $strict = FALSE ] )

Qu'est ce que cela signifie ? in_array() retourne un booléen TRUE en cas de réussite (le paramètre needle a été trouvé dans le tableau haystack) ou FALSE si une erreur survient (le paramètre needle n'a pas été trouvé dans le tableau haystack). Le premier paramètre s'appelle needle et il peut être de différents types : il porte donc la mention mixed. Le paramètre needle (ce que nous recherchons) peut être une valeur scalaire ( chaîne de caractères, entier, ou float), ou encore un array. haystack (le array, dans lequel nous recherchons) est le second paramètre. Le troisième paramètre, optionnel, strict, est optionnel. Tous les paramètres optionnels sont placés entre [ crochets ]. La manuel indique que le paramètre strict vaut par défaut FALSE. Reportez-vous au manuel de chaque fonction pour savoir comment elle fonctionne.

De plus, le signe & (é commercial) ajouté au début du paramètre d'une fonction permet de passer ce paramètre par référence, comme ceci :

       int preg_match ( string $pattern , string $subject [, array &$matches
      [, int $flags = 0 [, int $offset = 0 ]]] )

Dans cet exemple, nous pouvons voir que le troisième paramètre optionnel &$matches va être passé par référence.

Il y a aussi des fonctions avec des informations plus complexes concernant les versions de PHP. Prenons html_entity_decode() comme exemple :

(PHP 4 >= 4.3.0, PHP 5)

Cela signifie que cette fonction n'est disponible que depuis PHP 4.3.0.


Versions de PHP documentées dans ce manuel

Ce manuel contient des informations sur les anciennes, actuelles et futures versions de PHP. Les modifications de comportement sont documentées sous la forme de notes, d'historiques de version mais aussi dans les pages du manuel. La version documentée la plus ancienne est la version 5.0.0.

Lorsque la documentation existe pour les dernières versions de développement (non publiées) de PHP, elle sera intitulée "disponible dans Git" ou "version de developpement." Ces changements sont prévus mais peuvent encore évoluer dans de rares cas.

Tous les développements sont versionnés dans le dépot Git et peuvent être récupérés comme décrit dans » accès anonyme Git.

Et par souci de clarté, le manuel fera référence aux versions majeures, mineures et révisions de PHP. Par exemple PHP 5.3.1, le 5 est la version majeure, 3 la mineure, et 1 la révision. Typiquement PHP n'ajoute de nouvelles fonctionnalités que dans les majeures ou mineures, et corrige des bugs dans les révisions. Cependant, cette convention n'est pas toujours vérifiée.

Notez aussi que la manuel concerne PHP présent et non futur, même pour les fonctionnalités documentées et qui ne sont pas encore disponibles. Ainsi le manuel peut perdurer dans le temps et ne requièrt pas de mises à jour importantes à chaque sortie de PHP.

À plusieurs reprises, le manuel de PHP liste les valeurs par défaut des directives PHP. Ces valeurs sont basées sur le comportement de PHP sans fichier de configuration php.ini, ainsi ceci peut changer des valeurs trouvées dans les fichiers distribués php.ini-development et php.ini-production . Les valeurs indiquées sont aussi celles de la dernière version de PHP, un changelog indique les valeurs précédement employées. Voyez l'appendice sur les directives PHP pour plus de détails sur ces valeurs et leurs évolutions.


Où trouver plus d'informations sur PHP ?

Ce manuel n'a pas pour objectif de fournir des présentations sur les pratiques de programmation. Si vous êtes un néophyte total, ou même un programmeur débutant, vous pouvez trouver difficile d'apprendre la programmation PHP avec uniquement ce manuel : il serait mieux de trouver des ressources plus orientées vers l'apprentissage.

Il y a un bon nombre de listes de diffusion actives, traitant de tous les aspects du langage et de la programmation PHP. Si vous êtes bloqué par un problème, vous pourrez sûrement trouver de l'aide auprès de ces listes. Il existe un recensement des listes de diffusion sur » la page de support de php.net.


Comment aider à l'amélioration de la documentation ?

Il y a trois façons de participer à l'amélioration de la documentation.

Si vous trouvez des erreurs, dans n'importe quelle traduction de la documentation, utilisez le système de rapport de bogues : » http://bugs.php.net/. Classez le rapport sous la catégorie "Documentation Problem". Vous pouvez aussi poster les problèmes liés aux différents formats du manuel à cet endroit.

Note:

N'abusez pas du système de bogues pour envoyer des demandes d'aide. Utilisez plutôt une des options proposées par le » support.

En contribuant aux notes, vous pouvez fournir de nouveaux exemples, mettre en lumière des effets de bords et apporter des clarifications pour les autres lecteurs. Mais ne prenez pas le système d'annotation pour un système de soumission de bogues. Vous pouvez en savoir plus sur les annotations dans la section 'À propos des notes utilisateurs'

Le manuel PHP est traduit en de nombreux langages. La connaissance de l'anglais ainsi que d'une autre langue peut vous permettre d'aider la documentation de PHP en travaillant avec une équipe de traduction. Pour plus d'informations sur le commencement d'une traduction, ou sur l'aide d'une version déjà traduite, commencez par lire » http://doc.php.net/tutorial/.

Le projet de documentation de PHP a un canal IRC où vous pouvez venir et parler avec les auteurs du manuel ou trouver un certain aspect du manuel avec lequel vous pourriez aider. Les coordonnées : #php.doc sur irc.efnet.org.


Comment sont générées les documentations

Ce manuel est écrit en XML, en utilisant la » DTD de DocBook XML, et » PhD (Le moteur [PH]P d'affichage [D]ocBook) pour la maintenance et le formatage.

Grâce au format XML comme source, nous avons la possibilité de générer de nombreux formats tout en ayant une seule source pour tous les formats. L'outil utilisé pour formater le manuel en ligne est » PhD. Nous utilisons » Microsoft HTML Help Workshop pour générer le format Windows HTML Help du manuel, et, bien sûr, PHP lui-même pour effectuer des conversions et du formatage.

Le manuel PHP est généré en de nombreux langages et formats, lisez » http://www.php.net/docs.php pour plus d'informations. Le code source XML peut être téléchargé depuis le SVN et lu sur » http://svn.php.net/viewvc/. La documentation est stockée dans le module phpdoc.


Traductions

La manuel PHP est disponible non seulement en anglais, mais aussi dans différentes langues. Le texte du manuel est écrit d'abord en anglais, puis des équipes à travers le monde assurent la traduction du manuel dans leur langue natale. Si la traduction d'une section n'est pas encore disponible, le système de création de la documentation présentera alors la version anglaise.

Les contributeurs aux documentations partent des codes sources XML disponibles sur le CVS » http://svn.php.net/viewvc/ puis traduisent dans leur langue. Ils n'utilisent pas les versions générées (comme le HTML ou le texte plein) car c'est le système d'édition qui se charge de faire les conversions du format XML vers un format lisible.

Note:

Si vous voulez aider à la traduction de la documentation, entrez en contact avec l'équipe de documentation en vous inscrivant à la liste de diffusion : » phpdoc-subscribe@lists.php.net. L'adresse de la liste de diffusion est phpdoc@lists.php.net. Indiquez dans le message que vous êtes intéressé par la traduction de la documentation dans une nouvelle langue, et quelqu'un viendra vous aider à démarrer une nouvelle traduction, ou rejoindre l'équipe qui a pris en charge cette traduction.

Actuellement, le manuel est disponible, partiellement ou en totalité, dans plus de 10 langues.

Ils peuvent tous être téléchargés ici : » http://www.php.net/docs.php.


Creative Commons Attribution 3.0

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

  1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
  2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
  3. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
  4. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
  5. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
  6. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
  7. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
  8. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.

2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:

  1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
  2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
  3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
  4. to Distribute and Publicly Perform Adaptations.

  5. For the avoidance of doubt:

    1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
    2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
    3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.

The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.

4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:

  1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested.
  2. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
  3. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination.

  1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
  2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.

8. Miscellaneous

  1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
  2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
  3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
  4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent
  5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
  6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.


  • « Creative Commons Attribution 3.0
  • Liste des fonctions et des méthodes »
  • PHP Manual
  • Annexes
  • Liste de l'index

Liste de l'index

Sommaire

  • Liste des fonctions et des méthodes
  • Liste d'examples


Liste des fonctions et des méthodes

Liste de toutes les fonctions et méthodes du manuel

a b c d e f g h i j k l m n o p q r s t u v w x y z _

  • a
    • abs - Valeur absolue
    • acos - Arc cosinus
    • acosh - Arc cosinus hyperbolique
    • addcslashes - Ajoute des slash dans une chaîne, à la mode du langage C
    • addslashes - Ajoute des antislashs dans une chaîne
    • apache_child_terminate - Termine le processus Apache après cette requête
    • apache_getenv - Lit une variable de processus Apache
    • apache_get_modules - Retourne la liste des modules Apache chargés
    • apache_get_version - Récupère la version d'Apache
    • apache_lookup_uri - Effectue une requête partielle pour l'URI spécifiée et renvoie toutes les informations la concernant
    • apache_note - Affiche ou affecte la table des notes d'Apache
    • apache_request_headers - Récupère tous les en-têtes HTTP de la requête
    • apache_reset_timeout - Remet à sa position initiale le temporisateur d'Apache
    • apache_response_headers - Récupère tous les en-têtes de réponse HTTP
    • apache_setenv - Modifie une variable de processus Apache
    • APCIterator::current - Récupère l'élément en cours
    • APCIterator::getTotalCount - Récupère le nombre total d'éléments
    • APCIterator::getTotalHits - Récupère le nombre total de cache hits
    • APCIterator::getTotalSize - Récupère la taille totale du cache
    • APCIterator::key - Récupère la clé de l'itérateur
    • APCIterator::next - Déplace le pointeur vers l'élément suivant
    • APCIterator::rewind - Rembobine l'itérateur
    • APCIterator::valid - Vérifie si la position courante de l'itérateur est valide
    • APCIterator::__construct - Construit un objet d'itération APCIterator
    • APCUIterator::current - Get current item
    • APCUIterator::getTotalCount - Get total count
    • APCUIterator::getTotalHits - Get total cache hits
    • APCUIterator::getTotalSize - Get total cache size
    • APCUIterator::key - Get iterator key
    • APCUIterator::next - Move pointer to next item
    • APCUIterator::rewind - Rewinds iterator
    • APCUIterator::valid - Checks if current position is valid
    • APCUIterator::__construct - Constructs an APCUIterator iterator object
    • apcu_add - Cache a new variable in the data store
    • apcu_cache_info - Retrieves cached information from APCu's data store
    • apcu_cas - Updates an old value with a new value
    • apcu_clear_cache - Clears the APCu cache
    • apcu_dec - Decrease a stored number
    • apcu_delete - Removes a stored variable from the cache
    • apcu_entry - Atomically fetch or generate a cache entry
    • apcu_exists - Checks if entry exists
    • apcu_fetch - Fetch a stored variable from the cache
    • apcu_inc - Increase a stored number
    • apcu_sma_info - Retrieves APCu Shared Memory Allocation information
    • apcu_store - Cache a variable in the data store
    • apc_add - Met en cache une nouvelle variable dans le magasin de données
    • apc_bin_dump - Récupère une sortie binaire des fichiers et variables utilisateur spécifiés
    • apc_bin_dumpfile - Envoi une sortie binaire des fichiers et variables utilisateur spécifiés vers un fichier
    • apc_bin_load - Charge une sortie binaire vers le cache fichiers ou utilisateur d'APC
    • apc_bin_loadfile - Charge une sortie binaire depuis un fichier dans le cache fichiers ou utilisateur d'APC
    • apc_cache_info - Récupère les informations du cache dans l'entrepôt APC
    • apc_cas - Met à jour une ancienne valeur par une nouvelle
    • apc_clear_cache - Efface le cache APC
    • apc_compile_file - Stocke un fichier dans le cache, en évitant tous les filtres
    • apc_dec - Décrémente un nombre stocké
    • apc_define_constants - Définit un jeu de constantes pour la récupération et la définition en masse
    • apc_delete - Efface une variable stockée dans le cache
    • apc_delete_file - Efface des fichiers du cache opcode
    • apc_exists - Vérifie si une clé APC existe
    • apc_fetch - Récupère une variable stockée dans le cache
    • apc_inc - Incrémente un nombre stocké
    • apc_load_constants - Charge un jeu de constantes depuis le cache
    • apc_sma_info - Récupère les informations d'allocation mémoire partagée d'APC
    • apc_store - Met en cache une variable dans le magasin
    • apd_breakpoint - Stoppe l'interpréteur et attend un CR depuis le socket
    • apd_callstack - Retourne la pile d'appel courante dans un tableau
    • apd_clunk - Lance une alerte et un callstack
    • apd_continue - Redémarre l'interpréteur
    • apd_croak - Lance une erreur, un callstack et sort
    • apd_dump_function_table - Affiche la table courante de fonction
    • apd_dump_persistent_resources - Retourne toutes les ressources persistantes dans un tableau
    • apd_dump_regular_resources - Retourne toutes les ressources régulières courantes dans un tableau
    • apd_echo - Écrit dans le socket de déboguage
    • apd_get_active_symbols - Récupère un tableau contenant les noms des variables courantes de portée locale
    • apd_set_pprof_trace - Démarre la session de déboguage APD
    • apd_set_session - Modifie ou définit le degré de déboguage courant
    • apd_set_session_trace - Démarre la session de déboguage APD
    • apd_set_session_trace_socket - Démarre la session de déboguage à distance
    • AppendIterator::append - Ajoute un itérateur à la fin
    • AppendIterator::current - Lit la valeur courante
    • AppendIterator::getArrayIterator - Récupère le ArrayIterator
    • AppendIterator::getInnerIterator - Lit l'itérateur interne
    • AppendIterator::getIteratorIndex - Lit l'index d'un itérateur
    • AppendIterator::key - Lit la clé courante
    • AppendIterator::next - Passe à l'élément suivant
    • AppendIterator::rewind - Remet l'itérateur au début
    • AppendIterator::valid - Vérifie la validité de l'élément courant
    • AppendIterator::__construct - Construit un objet AppendIterator
    • array - Crée un tableau
    • ArrayAccess::offsetExists - Indique si une position existe dans un tableau
    • ArrayAccess::offsetGet - Position à lire
    • ArrayAccess::offsetSet - Assigne une valeur à une position donnée
    • ArrayAccess::offsetUnset - Supprime un élément à une position donnée
    • ArrayIterator::append - Ajoute un élément
    • ArrayIterator::asort - Trie un tableau par les valeurs
    • ArrayIterator::count - Compte les éléments
    • ArrayIterator::current - Retourne l'entrée courante du tableau
    • ArrayIterator::getArrayCopy - Récupère la copie d'un tableau
    • ArrayIterator::getFlags - Récupère un comportement
    • ArrayIterator::key - Retourne la clé courante du tableau
    • ArrayIterator::ksort - Trie un tableau par les clés
    • ArrayIterator::natcasesort - Trie naturellement un tableau, en ne tenant pas compte de la casse
    • ArrayIterator::natsort - Trie naturellement un tableau
    • ArrayIterator::next - Se déplace vers la prochaine entrée
    • ArrayIterator::offsetExists - Vérifie si une position existe
    • ArrayIterator::offsetGet - Récupère la valeur pour une position
    • ArrayIterator::offsetSet - Définit la valeur d'une position
    • ArrayIterator::offsetUnset - Efface la valeur d'une position
    • ArrayIterator::rewind - Revient à la position initiale
    • ArrayIterator::seek - Avance à une position donnée
    • ArrayIterator::serialize - Linéarisation
    • ArrayIterator::setFlags - Définit des comportements
    • ArrayIterator::uasort - Tri défini par l'utilisateur
    • ArrayIterator::uksort - Trie défini par l'utilisateur
    • ArrayIterator::unserialize - Délinéarisation
    • ArrayIterator::valid - Vérifie si un tableau contient d'autres entrées
    • ArrayIterator::__construct - Construit un ArrayIterator
    • ArrayObject::append - Ajoute la valeur à la fin d'un tableau
    • ArrayObject::asort - Trie les éléments par valeur
    • ArrayObject::count - Retourne le nombre de propriétés publiques dans l'objet ArrayObject
    • ArrayObject::exchangeArray - Remplace un tableau par un autre
    • ArrayObject::getArrayCopy - Crée une copie de l'objet ArrayObject
    • ArrayObject::getFlags - Lit les options de comportement
    • ArrayObject::getIterator - Crée un nouvel itérateur à partir d'un objet ArrayObject
    • ArrayObject::getIteratorClass - Lit le nom de la classe de ArrayObject
    • ArrayObject::ksort - Trie un tableau par clé
    • ArrayObject::natcasesort - Trie un tableau en utilisant le tri naturel sans la casse
    • ArrayObject::natsort - Trie les éléments avec un tri naturel
    • ArrayObject::offsetExists - Vérifie si un index existe
    • ArrayObject::offsetGet - Retourne la valeur de l'index spécifié
    • ArrayObject::offsetSet - Définie $newval comme valeur à l'$index spécifié
    • ArrayObject::offsetUnset - Efface la valeur à l'$index spécifié
    • ArrayObject::serialize - Linéarise un ArrayObject
    • ArrayObject::setFlags - Configure les options de comportement
    • ArrayObject::setIteratorClass - Définit le nom de la classe de l'itérateur pour l'objet ArrayObject
    • ArrayObject::uasort - Trie les éléments avec une fonction utilisateur
    • ArrayObject::uksort - Trie les éléments par clé avec une fonction utilisateur
    • ArrayObject::unserialize - Délinéarisation d'un ArrayObject
    • ArrayObject::__construct - Construit un nouvel objet tableau
    • array_change_key_case - Change la casse de toutes les clés d'un tableau
    • array_chunk - Sépare un tableau en tableaux de taille inférieure
    • array_column - Retourne les valeurs d'une colonne d'un tableau d'entrée
    • array_combine - Crée un tableau à partir de deux autres tableaux
    • array_count_values - Compte le nombre de valeurs d'un tableau
    • array_diff - Calcule la différence entre des tableaux
    • array_diff_assoc - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
    • array_diff_key - Calcule la différence de deux tableaux en utilisant les clés pour comparaison
    • array_diff_uassoc - Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel
    • array_diff_ukey - Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
    • array_fill - Remplit un tableau avec une même valeur
    • array_fill_keys - Remplit un tableau avec des valeurs, en spécifiant les clés
    • array_filter - Filtre les éléments d'un tableau grâce à une fonction utilisateur
    • array_flip - Remplace les clés par les valeurs, et les valeurs par les clés
    • array_intersect - Calcule l'intersection de tableaux
    • array_intersect_assoc - Calcule l'intersection de deux tableaux avec des tests sur les index
    • array_intersect_key - Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison
    • array_intersect_uassoc - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
    • array_intersect_ukey - Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
    • array_keys - Retourne toutes les clés ou un ensemble des clés d'un tableau
    • array_key_exists - Vérifie si une clé existe dans un tableau
    • array_map - Applique une fonction sur les éléments d'un tableau
    • array_merge - Fusionne plusieurs tableaux en un seul
    • array_merge_recursive - Combine plusieurs tableaux ensemble, récursivement
    • array_multisort - Trie les tableaux multidimensionnels
    • array_pad - Complète un tableau avec une valeur jusqu'à la longueur spécifiée
    • array_pop - Dépile un élément de la fin d'un tableau
    • array_product - Calcule le produit des valeurs du tableau
    • array_push - Empile un ou plusieurs éléments à la fin d'un tableau
    • array_rand - Prend une ou plusieurs valeurs, au hasard dans un tableau
    • array_reduce - Réduit itérativement un tableau
    • array_replace - Remplace les éléments d'un tableau par ceux d'autres tableaux
    • array_replace_recursive - Remplace récursivement dans le premier tableau les éléments des autres tableaux fournis
    • array_reverse - Inverse l'ordre des éléments d'un tableau
    • array_search - Recherche dans un tableau la clé associée à une valeur
    • array_shift - Dépile un élément au début d'un tableau
    • array_slice - Extrait une portion de tableau
    • array_splice - Efface et remplace une portion de tableau
    • array_sum - Calcule la somme des valeurs du tableau
    • array_udiff - Calcule la différence entre deux tableaux en utilisant une fonction rappel
    • array_udiff_assoc - Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de rappel
    • array_udiff_uassoc - Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de rappel
    • array_uintersect - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
    • array_uintersect_assoc - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel
    • array_uintersect_uassoc - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée
    • array_unique - Dédoublonne un tableau
    • array_unshift - Empile un ou plusieurs éléments au début d'un tableau
    • array_values - Retourne toutes les valeurs d'un tableau
    • array_walk - Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau
    • array_walk_recursive - Applique une fonction de rappel récursivement à chaque membre d'un tableau
    • arsort - Trie un tableau en ordre inverse et conserve l'association des index
    • asin - Arc sinus
    • asinh - Arc sinus hyperbolique
    • asort - Trie un tableau et conserve l'association des index
    • assert - Vérifie si une assertion est fausse
    • assert_options - Fixe et lit différentes options d'assertions
    • atan - Arc tangente
    • atan2 - Arc tangent de deux variables
    • atanh - Arc tangente hyperbolique
  • b
    • base64_decode - Décode une chaîne en MIME base64
    • base64_encode - Encode une chaîne en MIME base64
    • basename - Retourne le nom de la composante finale d'un chemin
    • base_convert - Convertit un nombre entre des bases arbitraires
    • bbcode_add_element - Ajoute un élément BBCode
    • bbcode_add_smiley - Ajoute une émoticône à l'analyseur
    • bbcode_create - Crée une ressource BBCode
    • bbcode_destroy - Ferme une ressource BBCode_container
    • bbcode_parse - Analyse une chaîne en suivant le jeu de règles données
    • bbcode_set_arg_parser - Attache un analyseur pour gérer un autre jeu de règles
    • bbcode_set_flags - Spécifie ou modifie des options d'analyseurs BBcode
    • bcadd - Additionne deux nombres de grande taille
    • bccomp - Compare deux nombres de grande taille
    • bcdiv - Divise deux nombres de grande taille
    • bcmod - Retourne le reste d'une division entre nombres de grande taille
    • bcmul - Multiplie deux nombres de grande taille
    • bcompiler_load - Lit et crée les classes depuis un fichier compressé en bzip2
    • bcompiler_load_exe - Lit et crée des classes depuis un fichier exe bcompiler
    • bcompiler_parse_class - Lit le bytecode d'une classe et revient à une fonction utilisateur
    • bcompiler_read - Lit et crée les classes depuis un pointeur de fichier
    • bcompiler_write_class - Écrit une classe définie en bytecode
    • bcompiler_write_constant - Écrit une constante définie comme bytecode
    • bcompiler_write_exe_footer - Écrit à la position start et jusqu'à la fin du fichier de type exe
    • bcompiler_write_file - Écrit un code source PHP sous forme de bytecode
    • bcompiler_write_footer - Écrit le caractère \x00 pour indiquer la fin des données compilées
    • bcompiler_write_function - Écrit une fonction définie sous forme de bytecode
    • bcompiler_write_functions_from_file - Écrit toutes les fonctions définies dans un fichier sous forme de bytecode
    • bcompiler_write_header - Écrit l'en-tête bcompiler
    • bcompiler_write_included_filename - Écrit un fichier inclus en tant que bytecode
    • bcpow - Élève un nombre à une puissance donnée
    • bcpowmod - Calcule le reste modulo d'un nombre élevé à une puissance
    • bcscale - Spécifie le nombre de décimales par défaut pour toutes les fonctions
    • bcsqrt - Récupère la racine carrée d'un nombre de grande taille
    • bcsub - Soustrait un nombre de grande taille d'un autre
    • bin2hex - Convertit des données binaires en représentation hexadécimale
    • bindec - Convertit de binaire en décimal
    • bindtextdomain - Fixe le chemin d'un domaine
    • bind_textdomain_codeset - Spécifie le jeu de caractères utilisé pour les messages du domaine DOMAIN
    • blenc_encrypt - Crypte un script PHP avec BLENC
    • boolval - Récupère la valeur booléenne d'une variable
    • BSON\fromJSON - Description
    • BSON\Serializable::bsonSerialize - Description
    • BSON\Timestamp::__construct - Description
    • BSON\Timestamp::__toString - Description
    • BSON\toJSON - Description
    • BSON\Unserializable::bsonUnserialize - Description
    • BSON\UTCDatetime::toDateTime - Description
    • BSON\UTCDatetime::__construct - Description
    • BSON\UTCDatetime::__toString - Description
    • bson_decode - Délinéarise un objet BSON en un tableau PHP
    • bson_encode - Linéarise une variable PHP en une chaîne BSON
    • bzclose - Ferme un fichier bzip2
    • bzcompress - Compresse une chaîne avec bzip2
    • bzdecompress - Décompresse une chaîne bzip2
    • bzerrno - Retourne le code d'erreur bzip2
    • bzerror - Retourne le numéro et le message d'erreur bzip2 dans un tableau
    • bzerrstr - Retourne le message d'erreur bzip2
    • bzflush - Force l'écriture de toutes les données compressées
    • bzopen - Ouvre un fichier compressé avec bzip2
    • bzread - Lecture binaire d'un fichier bzip2
    • bzwrite - Écriture binaire dans un fichier bzip2
  • c
    • CachingIterator::count - Le nombre d'éléments de l'itérateur
    • CachingIterator::current - Retourne l'élément courant
    • CachingIterator::getCache - Lit le contenu du cache
    • CachingIterator::getFlags - Lit les options utilisées
    • CachingIterator::getInnerIterator - Retourne l'itérateur sous-jacent
    • CachingIterator::hasNext - Vérifie si l'itérateur interne a un élément suivant valide
    • CachingIterator::key - Retourne l'index de l'élément courant
    • CachingIterator::next - Déplace l'itérateur à la position suivante
    • CachingIterator::offsetExists - Vérifie l'existence d'un offset
    • CachingIterator::offsetGet - L'élément à lire à la position donnée
    • CachingIterator::offsetSet - Affecte un nouvel élément à la position donnée
    • CachingIterator::offsetUnset - Détruit un élément à l'offset indiqué
    • CachingIterator::rewind - Replace l'itérateur au début
    • CachingIterator::setFlags - Modifie les options du CachingIterator
    • CachingIterator::valid - Vérifie si l'élément courant est valide
    • CachingIterator::__construct - Construit un nouvel objet CachingIterator pour l'itérateur
    • CachingIterator::__toString - Retourne la représentation de l'élément courant sous forme de chaîne
    • Cairo::availableFonts - Récupère tous les types de police disponibles
    • Cairo::availableSurfaces - Récupère toutes les surfaces disponibles
    • Cairo::statusToString - Récupère le statut courant, sous la forme d'une chaîne de caractères
    • Cairo::version - Récupère la version de la bibliothèque Cairo
    • Cairo::versionString - Récupère la version Cairo sous la forme d'une chaîne de caractères
    • CairoContext::appendPath - Ajoute un chemin à la liste courante des chemins
    • CairoContext::arc - Ajoute un arc circulaire
    • CairoContext::arcNegative - Ajoute un arc négatif
    • CairoContext::clip - Établit une nouvelle région
    • CairoContext::clipExtents - Calcule l'espace à l'intérieur d'une région
    • CairoContext::clipPreserve - Établit une nouvelle région depuis la région courante
    • CairoContext::clipRectangleList - Récupère la région courante sous la forme d'une liste de rectangles
    • CairoContext::closePath - Ferme le chemin courant
    • CairoContext::copyPage - Émets la page courante
    • CairoContext::copyPath - Crée une copie du chemin courant
    • CairoContext::copyPathFlat - Récupère une copie à plat du chemin courant
    • CairoContext::curveTo - Ajoute une courbe
    • CairoContext::deviceToUser - Transforme une coordonnée
    • CairoContext::deviceToUserDistance - Transforme une distance
    • CairoContext::fill - Remplit le chemin courant
    • CairoContext::fillExtents - Calcule la zone remplie
    • CairoContext::fillPreserve - Remplit et préserve le chemin courant
    • CairoContext::fontExtents - Récupère la police étendue
    • CairoContext::getAntialias - Récupère le mode antialias courant
    • CairoContext::getCurrentPoint - Le but de getCurrentPoint
    • CairoContext::getDash - Le but de getDash
    • CairoContext::getDashCount - Le but de getDashCount
    • CairoContext::getFillRule - Le but de getFillRule
    • CairoContext::getFontFace - Le but de getFontFace
    • CairoContext::getFontMatrix - Le but de getFontMatrix
    • CairoContext::getFontOptions - Le but de getFontOptions
    • CairoContext::getGroupTarget - Le but de getGroupTarget
    • CairoContext::getLineCap - Le but de getLineCap
    • CairoContext::getLineJoin - Le but de getLineJoin
    • CairoContext::getLineWidth - Le but de getLineWidth
    • CairoContext::getMatrix - Le but de getMatrix
    • CairoContext::getMiterLimit - Le but de getMiterLimit
    • CairoContext::getOperator - Le but de getOperator
    • CairoContext::getScaledFont - Le but de getScaledFont
    • CairoContext::getSource - Le but de getSource
    • CairoContext::getTarget - Le but de getTarget
    • CairoContext::getTolerance - Le but de getTolerance
    • CairoContext::glyphPath - Le but de glyphPath
    • CairoContext::hasCurrentPoint - Le but de hasCurrentPoint
    • CairoContext::identityMatrix - Le but de identityMatrix
    • CairoContext::inFill - Le but de inFill
    • CairoContext::inStroke - Le but de inStroke
    • CairoContext::lineTo - Le but de lineTo
    • CairoContext::mask - Le but de mask
    • CairoContext::maskSurface - Le but de maskSurface
    • CairoContext::moveTo - Le but de moveTo
    • CairoContext::newPath - Le but de newPath
    • CairoContext::newSubPath - Le but de newSubPath
    • CairoContext::paint - Le but de paint
    • CairoContext::paintWithAlpha - Le but de paintWithAlpha
    • CairoContext::pathExtents - Le but de pathExtents
    • CairoContext::popGroup - Le but de popGroup purpose
    • CairoContext::popGroupToSource - Le but de popGroupToSource
    • CairoContext::pushGroup - Le but de pushGroup
    • CairoContext::pushGroupWithContent - Le but de pushGroupWithContent
    • CairoContext::rectangle - Le but de rectangle
    • CairoContext::relCurveTo - Le but de relCurveTo
    • CairoContext::relLineTo - Le but de relLineTo
    • CairoContext::relMoveTo - Le but de relMoveTo
    • CairoContext::resetClip - Le but de resetClip
    • CairoContext::restore - Le but de restore
    • CairoContext::rotate - Le but de rotate
    • CairoContext::save - Le but de save
    • CairoContext::scale - Le but de scale
    • CairoContext::selectFontFace - Le but de selectFontFace
    • CairoContext::setAntialias - Le but de setAntialias
    • CairoContext::setDash - Le but de setDash
    • CairoContext::setFillRule - Le but de setFillRule
    • CairoContext::setFontFace - Le but de setFontFace
    • CairoContext::setFontMatrix - Le but de setFontMatrix
    • CairoContext::setFontOptions - Le but de setFontOptions
    • CairoContext::setFontSize - Le but de setFontSize
    • CairoContext::setLineCap - Le but de setLineCap
    • CairoContext::setLineJoin - Le but de setLineJoin
    • CairoContext::setLineWidth - Le but de setLineWidth
    • CairoContext::setMatrix - Le but de setMatrix
    • CairoContext::setMiterLimit - Le but de setMiterLimit
    • CairoContext::setOperator - Le but de setOperator
    • CairoContext::setScaledFont - Le but de setScaledFont
    • CairoContext::setSource - Le but de setSource
    • CairoContext::setSourceRGB - Le but de setSourceRGB
    • CairoContext::setSourceRGBA - Le but de setSourceRGBA
    • CairoContext::setSourceSurface - Le but de setSourceSurface
    • CairoContext::setTolerance - Le but de setTolerance
    • CairoContext::showPage - Le but de showPage
    • CairoContext::showText - Le but de showText
    • CairoContext::status - Le but de status
    • CairoContext::stroke - Le but de stroke
    • CairoContext::strokeExtents - Le but de strokeExtents
    • CairoContext::strokePreserve - Le but de strokePreserve
    • CairoContext::textExtents - Le but de textExtents
    • CairoContext::textPath - Le but de textPath
    • CairoContext::transform - Le but de transform
    • CairoContext::translate - Le but de translate
    • CairoContext::userToDevice - Le but de userToDevice
    • CairoContext::userToDeviceDistance - Le but de userToDeviceDistance
    • CairoContext::__construct - Crée un nouvel objet CairoContext
    • CairoFontFace::getType - Récupère le type de la police
    • CairoFontFace::status - Vérifie les erreurs CairoFontFace
    • CairoFontFace::__construct - Crée un nouvel objet CairoFontFace
    • CairoFontOptions::equal - Le but de equal
    • CairoFontOptions::getAntialias - Le but de getAntialias
    • CairoFontOptions::getHintMetrics - Le but de getHintMetrics
    • CairoFontOptions::getHintStyle - Le but de getHintStyle
    • CairoFontOptions::getSubpixelOrder - Le but de getSubpixelOrder
    • CairoFontOptions::hash - Le but de hash
    • CairoFontOptions::merge - Le but de merge
    • CairoFontOptions::setAntialias - Le but de setAntialias
    • CairoFontOptions::setHintMetrics - Le but de setHintMetrics
    • CairoFontOptions::setHintStyle - Le but de setHintStyle
    • CairoFontOptions::setSubpixelOrder - Le but de setSubpixelOrder
    • CairoFontOptions::status - Le but de status
    • CairoFontOptions::__construct - Le but de __construct
    • CairoFormat::strideForWidth - Fournit un stride approprié à utiliser
    • CairoGradientPattern::addColorStopRgb - Le but de addColorStopRgb
    • CairoGradientPattern::addColorStopRgba - Le but de addColorStopRgba
    • CairoGradientPattern::getColorStopCount - Le but de getColorStopCount
    • CairoGradientPattern::getColorStopRgba - Le but de getColorStopRgba
    • CairoGradientPattern::getExtend - Le but de getExtend
    • CairoGradientPattern::setExtend - Le but de setExtend
    • CairoImageSurface::createForData - Le but de createForData
    • CairoImageSurface::createFromPng - Crée un nouvel CairoImageSurface à partir d'une image PNG
    • CairoImageSurface::getData - Récupère les données de l'image, sous la forme d'une chaîne de caractères
    • CairoImageSurface::getFormat - Récupère le format de l'image
    • CairoImageSurface::getHeight - Récupère la hauteur d'un CairoImageSurface
    • CairoImageSurface::getStride - Le but de getStride
    • CairoImageSurface::getWidth - Récupère la largeur d'un CairoImageSurface
    • CairoImageSurface::__construct - Crée un nouvel objet CairoImageSurface
    • CairoLinearGradient::getPoints - Le but de getPoints
    • CairoLinearGradient::__construct - Le but de __construct
    • CairoMatrix::initIdentity - Crée une nouvelle matrice d'identité
    • CairoMatrix::initRotate - Crée une nouvelle matrice de rotation
    • CairoMatrix::initScale - Crée une nouvelle matrice de mise à l'échelle
    • CairoMatrix::initTranslate - Crée une nouvelle matrice de traduction
    • CairoMatrix::invert - Le but de invert
    • CairoMatrix::multiply - Le but de multiply
    • CairoMatrix::rotate - Le but de rotate
    • CairoMatrix::scale - Applique une mise à l'échelle à une matrice
    • CairoMatrix::transformDistance - Le but de transformDistance
    • CairoMatrix::transformPoint - Le but de transformPoint
    • CairoMatrix::translate - Le but de translate
    • CairoMatrix::__construct - Crée un nouvel objet CairoMatrix
    • CairoPattern::getMatrix - Le but de getMatrix
    • CairoPattern::getType - Le but de getType
    • CairoPattern::setMatrix - Le but de setMatrix
    • CairoPattern::status - Le but de status
    • CairoPattern::__construct - Le but de __construct
    • CairoPdfSurface::setSize - Le but de setSize
    • CairoPdfSurface::__construct - Le but de __construct
    • CairoPsSurface::dscBeginPageSetup - Le but de dscBeginPageSetup
    • CairoPsSurface::dscBeginSetup - Le but de dscBeginSetup
    • CairoPsSurface::dscComment - Le but de dscComment
    • CairoPsSurface::getEps - Le but de getEps
    • CairoPsSurface::getLevels - Le but de getLevels
    • CairoPsSurface::levelToString - Le but de levelToString
    • CairoPsSurface::restrictToLevel - Le but de restrictToLevel
    • CairoPsSurface::setEps - Le but de setEps
    • CairoPsSurface::setSize - Le but de setSize
    • CairoPsSurface::__construct - Le but de __construct
    • CairoRadialGradient::getCircles - Le but de getCircles
    • CairoRadialGradient::__construct - Le but de __construct
    • CairoScaledFont::extents - Le but de extents
    • CairoScaledFont::getCtm - Le but de getCtm
    • CairoScaledFont::getFontFace - Le but de getFontFace
    • CairoScaledFont::getFontMatrix - Le but de getFontMatrix
    • CairoScaledFont::getFontOptions - Le but de getFontOptions
    • CairoScaledFont::getScaleMatrix - Le but de getScaleMatrix
    • CairoScaledFont::getType - Le but de getType
    • CairoScaledFont::glyphExtents - Le but de glyphExtents
    • CairoScaledFont::status - Le but de status
    • CairoScaledFont::textExtents - Le but de textExtents
    • CairoScaledFont::__construct - Le but de __construct
    • CairoSolidPattern::getRgba - Le but de getRgba
    • CairoSolidPattern::__construct - Le but de __construct
    • CairoSurface::copyPage - Le but de copyPage
    • CairoSurface::createSimilar - Le but de createSimilar
    • CairoSurface::finish - Le but de finish
    • CairoSurface::flush - Le but de flush
    • CairoSurface::getContent - Le but de getContent
    • CairoSurface::getDeviceOffset - Le but de getDeviceOffset
    • CairoSurface::getFontOptions - Le but de getFontOptions
    • CairoSurface::getType - Le but de getType
    • CairoSurface::markDirty - Le but de markDirty
    • CairoSurface::markDirtyRectangle - Le but de markDirtyRectangle
    • CairoSurface::setDeviceOffset - Le but de setDeviceOffset
    • CairoSurface::setFallbackResolution - Le but de setFallbackResolution
    • CairoSurface::showPage - Le but de showPage
    • CairoSurface::status - Le but de status
    • CairoSurface::writeToPng - Le but de writeToPng
    • CairoSurface::__construct - Le but de __construct
    • CairoSurfacePattern::getExtend - Le but de getExtend
    • CairoSurfacePattern::getFilter - Le but de getFilter
    • CairoSurfacePattern::getSurface - Le but de getSurface
    • CairoSurfacePattern::setExtend - Le but de setExtend
    • CairoSurfacePattern::setFilter - Le but de setFilter
    • CairoSurfacePattern::__construct - Le but de __construct
    • CairoSvgSurface::getVersions - Récupère la liste des versions SVG supportées
    • CairoSvgSurface::restrictToVersion - Le but de restrictToVersion
    • CairoSvgSurface::versionToString - Le but de versionToString
    • CairoSvgSurface::__construct - Le but de __construct
    • cairo_create - Retourne un nouvel objet CairoContext pour la surface demandée
    • cairo_font_face_get_type - Description
    • cairo_font_options_create - Description
    • cairo_font_options_equal - Description
    • cairo_font_options_get_antialias - Description
    • cairo_font_options_get_hint_metrics - Description
    • cairo_font_options_get_hint_style - Description
    • cairo_font_options_get_subpixel_order - Description
    • cairo_font_options_hash - Description
    • cairo_font_options_merge - Description
    • cairo_font_options_set_antialias - Description
    • cairo_font_options_set_hint_metrics - Description
    • cairo_font_options_set_hint_style - Description
    • cairo_font_options_set_subpixel_order - Description
    • cairo_font_options_status - Description
    • cairo_format_stride_for_width - Description
    • cairo_image_surface_create - Description
    • cairo_image_surface_create_for_data - Description
    • cairo_image_surface_create_from_png - Description
    • cairo_image_surface_get_data - Description
    • cairo_image_surface_get_format - Description
    • cairo_image_surface_get_height - Description
    • cairo_image_surface_get_stride - Description
    • cairo_image_surface_get_width - Description
    • cairo_matrix_create_translate - Alias de CairoMatrix::initTranslate
    • cairo_matrix_invert - Description
    • cairo_matrix_multiply - Description
    • cairo_matrix_rotate - Description
    • cairo_matrix_transform_distance - Description
    • cairo_matrix_transform_point - Description
    • cairo_matrix_translate - Description
    • cairo_pattern_add_color_stop_rgb - Description
    • cairo_pattern_add_color_stop_rgba - Description
    • cairo_pattern_create_for_surface - Description
    • cairo_pattern_create_linear - Description
    • cairo_pattern_create_radial - Description
    • cairo_pattern_create_rgb - Description
    • cairo_pattern_create_rgba - Description
    • cairo_pattern_get_color_stop_count - Description
    • cairo_pattern_get_color_stop_rgba - Description
    • cairo_pattern_get_extend - Description
    • cairo_pattern_get_filter - Description
    • cairo_pattern_get_linear_points - Description
    • cairo_pattern_get_matrix - Description
    • cairo_pattern_get_radial_circles - Description
    • cairo_pattern_get_rgba - Description
    • cairo_pattern_get_surface - Description
    • cairo_pattern_get_type - Description
    • cairo_pattern_set_extend - Description
    • cairo_pattern_set_filter - Description
    • cairo_pattern_set_matrix - Description
    • cairo_pattern_status - Description
    • cairo_pdf_surface_create - Description
    • cairo_pdf_surface_set_size - Description
    • cairo_ps_get_levels - Description
    • cairo_ps_level_to_string - Description
    • cairo_ps_surface_create - Description
    • cairo_ps_surface_dsc_begin_page_setup - Description
    • cairo_ps_surface_dsc_begin_setup - Description
    • cairo_ps_surface_dsc_comment - Description
    • cairo_ps_surface_get_eps - Description
    • cairo_ps_surface_restrict_to_level - Description
    • cairo_ps_surface_set_eps - Description
    • cairo_ps_surface_set_size - Description
    • cairo_scaled_font_create - Description
    • cairo_scaled_font_extents - Description
    • cairo_scaled_font_get_ctm - Description
    • cairo_scaled_font_get_font_face - Description
    • cairo_scaled_font_get_font_matrix - Description
    • cairo_scaled_font_get_font_options - Description
    • cairo_scaled_font_get_scale_matrix - Description
    • cairo_scaled_font_get_type - Description
    • cairo_scaled_font_glyph_extents - Description
    • cairo_scaled_font_status - Description
    • cairo_scaled_font_text_extents - Description
    • cairo_surface_copy_page - Description
    • cairo_surface_create_similar - Description
    • cairo_surface_finish - Description
    • cairo_surface_flush - Description
    • cairo_surface_get_content - Description
    • cairo_surface_get_device_offset - Description
    • cairo_surface_get_font_options - Description
    • cairo_surface_get_type - Description
    • cairo_surface_mark_dirty - Description
    • cairo_surface_mark_dirty_rectangle - Description
    • cairo_surface_set_device_offset - Description
    • cairo_surface_set_fallback_resolution - Description
    • cairo_surface_show_page - Description
    • cairo_surface_status - Description
    • cairo_surface_write_to_png - Description
    • cairo_svg_surface_create - Description
    • cairo_svg_surface_restrict_to_version - Description
    • cairo_svg_version_to_string - Description
    • CallbackFilterIterator::accept - Appel la fonction de rappel avec la valeur courante, la clé courante, et l'itérateur interne comme arguments
    • CallbackFilterIterator::__construct - Crée un itérateur filtré depuis un autre itérateur
    • call_user_func - Appelle une fonction de rappel fournie par le premier argument
    • call_user_func_array - Appelle une fonction de rappel avec les paramètres rassemblés en tableau
    • call_user_method - Appelle une méthode utilisateur sur un objet donné
    • call_user_method_array - Appelle une méthode utilisateur avec un tableau de paramètres
    • cal_days_in_month - Retourne le nombre de jours dans un mois, pour une année et un calendrier donné
    • cal_from_jd - Convertit le nombre de jours Julien en un calendrier spécifique
    • cal_info - Retourne des détails sur un calendrier
    • cal_to_jd - Convertit un calendrier en nombre de jours Julien
    • ceil - Arrondit au nombre supérieur
    • chdb::get - Récupère la valeur associée à une clé
    • chdb::__construct - Crée une nouvelle instance chdb
    • chdb_create - Crée un fichier chdb
    • chdir - Change de dossier
    • checkdate - Valide une date grégorienne
    • checkdnsrr - Résolution DNS d'une adresse IP
    • chgrp - Change le groupe d'un fichier
    • chmod - Change le mode du fichier
    • chop - Alias de rtrim
    • chown - Change le propriétaire du fichier
    • chr - Retourne un caractère à partir de son code ASCII
    • chroot - Change le dossier racine
    • chunk_split - Scinde une chaîne
    • classkit_import - Importe de nouvelles définitions de méthodes de classes depuis un fichier
    • classkit_method_add - Ajoute dynamiquement une nouvelle méthode à une classe donnée
    • classkit_method_copy - Copie une méthode d'une classe vers une autre classe
    • classkit_method_redefine - Change dynamiquement le code de la méthode donnée
    • classkit_method_remove - Efface dynamiquement une méthode donnée
    • classkit_method_rename - Change dynamiquement le nom d'une méthode donnée
    • class_alias - Crée un alias de classe
    • class_exists - Vérifie si une classe a été définie
    • class_implements - Retourne les interfaces implémentées par une classe ou une interface donnée
    • class_parents - Retourne la classe parente d'une classe
    • class_uses - Retourne le trait utilisé par une classe donnée.
    • clearstatcache - Efface le cache de stat
    • cli_get_process_title - Retourne le titre du processus courant
    • cli_set_process_title - Définit le titre du processus
    • closedir - Ferme le pointeur sur le dossier
    • closelog - Ferme la connexion à l'historique système
    • Closure::bind - Duplique une fermeture avec un nouvel objet lié et un nouveau contexte de classe.
    • Closure::bindTo - Duplique la fermeture avec un nouvel objet lié et un nouveau contexte de classe.
    • Closure::call - Binds and calls the closure
    • Closure::__construct - Constructeur empêchant l'instanciation
    • Collator::asort - Tri un tableau en conservant les clés, avec une collation
    • Collator::compare - Compare deux chaînes Unicode
    • Collator::create - Création d'un collator
    • Collator::getAttribute - Lit un attribut de collation
    • Collator::getErrorCode - Lit la dernière erreur du collator
    • Collator::getErrorMessage - Lit le dernier message d'erreur du collator
    • Collator::getLocale - Lit le nom de la locale d'un collator
    • Collator::getSortKey - Recupère la clé de tri pour une chaine
    • Collator::getStrength - Récupère la dureté de classement utilisé
    • Collator::setAttribute - Configure l'attribut de collation
    • Collator::setStrength - Set collation strength
    • Collator::sort - Trie un tableau avec une collation
    • Collator::sortWithSortKeys - Tri un tableau et ses clés avec une collation
    • Collator::__construct - Création d'un collator
    • Collectable::isGarbage - Détermine si un objet a été marqué comme obsolète
    • Collectable::setGarbage - Marque un objet comme obsolète
    • compact - Crée un tableau à partir de variables et de leur valeur
    • com_create_guid - Génère un identifiant unique global (GUID)
    • com_event_sink - Connecte des événements d'un objet COM sur un objet PHP
    • com_get_active_object - Retourne un objet représentant l'instance actuelle d'un objet COM
    • com_load_typelib - Charge un Typelib
    • com_message_pump - Traite un message COM dans un délai donné
    • com_print_typeinfo - Affiche une définition de classe PHP pour une interface répartissable
    • Cond::broadcast - Diffuse une condition
    • Cond::create - Crée une condition
    • Cond::destroy - Détruit une condition
    • Cond::signal - Signale une condition
    • Cond::wait - Attente d'une condition
    • connection_aborted - Indique si l'internaute a abandonné la connexion HTTP
    • connection_status - Retourne les bits de statut de la connexion HTTP
    • constant - Retourne la valeur d'une constante
    • Constantes pour PDO_4D - Constantes pour PDO_4D
    • convert_cyr_string - Convertit une chaîne d'un jeu de caractères cyrillique à l'autre
    • convert_uudecode - Décode une chaîne au format uuencode
    • convert_uuencode - Encode une chaîne de caractères en utilisant l'algorithme uuencode
    • copy - Copie un fichier
    • cos - Cosinus
    • cosh - Cosinus hyperbolique
    • count - Compte tous les éléments d'un tableau ou quelque chose d'un objet
    • Countable::count - Compte le nombre d'éléments d'un objet
    • Counter::bumpValue - Change the current value of a counter.
    • Counter::getMeta - Return a piece of metainformation about a counter.
    • Counter::getNamed - Retrieve an existing named counter.
    • Counter::getValue - Get the current value of a counter.
    • Counter::resetValue - Reset the current value of a counter.
    • Counter::setCounterClass - Set the class returned by Counter::getNamed.
    • Counter::__construct - Creates an instance of a Counter which maintains a single numeric value.
    • counter_bump - Update the current value of the basic counter.
    • counter_bump_value - Change the current value of a counter resource.
    • counter_create - Creates a counter which maintains a single numeric value.
    • counter_get - Get the current value of the basic counter.
    • counter_get_meta - Return a piece of metainformation about a counter resource.
    • counter_get_named - Retrieve an existing named counter as a resource.
    • counter_get_value - Get the current value of a counter resource.
    • counter_reset - Reset the current value of the basic counter.
    • counter_reset_value - Reset the current value of a counter resource.
    • count_chars - Retourne des statistiques sur les caractères utilisés dans une chaîne
    • crack_check - Effectue une vérification de mot de passe
    • crack_closedict - Ferme un dictionnaire CrackLib
    • crack_getlastmessage - Retourne le message de diagnostic
    • crack_opendict - Ouvre un nouveau dictionnaire CrackLib
    • crc32 - Calcule la somme de contrôle CRC32
    • create_function - Crée une fonction anonyme
    • crypt - Hachage à sens unique (indéchiffrable)
    • ctype_alnum - Vérifie qu'une chaîne est alphanumérique
    • ctype_alpha - Vérifie qu'une chaîne est alphabétique
    • ctype_cntrl - Vérifie qu'un caractère est un caractère de contrôle
    • ctype_digit - Vérifie qu'une chaîne est un entier
    • ctype_graph - Vérifie qu'une chaîne est imprimable
    • ctype_lower - Vérifie qu'une chaîne est en minuscules
    • ctype_print - Vérifie qu'une chaîne est imprimable
    • ctype_punct - Vérifie qu'une chaîne contient de la ponctuation
    • ctype_space - Vérifie qu'une chaîne n'est faite que de caractères blancs
    • ctype_upper - Vérifie qu'une chaîne est en majuscules
    • ctype_xdigit - Vérifie qu'un caractère représente un nombre hexadécimal
    • cubrid_affected_rows - Récupère le nombre de lignes affectées par la dernière requête SQL
    • cubrid_bind - Lie des valeurs à une requête préparée
    • cubrid_client_encoding - Retourne le jeu de caractères utilisé sur la connexion CUBRID courante
    • cubrid_close - Ferme une connexion CUBRID
    • cubrid_close_prepare - Ferme le gestionnaire de requête
    • cubrid_close_request - Ferme le gestionnaire de requête
    • cubrid_column_names - Récupère les noms de colonnes du résultat
    • cubrid_column_types - Récupère les types de colonnes du résultat
    • cubrid_col_get - Récupère le contenu des éléments d'un type de collection en utilisant l'OID
    • cubrid_col_size - Récupère le nombre d'éléments dans un type de colonne d'une collection en utilisant l'OID
    • cubrid_commit - Commit une transaction
    • cubrid_connect - Ouvre une connexion au serveur CUBRID
    • cubrid_connect_with_url - Établit l'environnement pour une connexion au serveur CUBRID
    • cubrid_current_oid - Récupère l'OID de la localisation du curseur courant
    • cubrid_data_seek - Déplace le pointeur de lignes interne du résultat CUBRID
    • cubrid_db_name - Récupère le nom de la base de données depuis les résultats de cubrid_list_dbs
    • cubrid_disconnect - Ferme la connexion à la base de données
    • cubrid_drop - Supprime une instance en utilisant son OID
    • cubrid_errno - Retourne la valeur numérique d'un message d'erreur
    • cubrid_error - Récupère le message de l'erreur
    • cubrid_error_code - Récupère le code erreur de la dernière erreur survenue
    • cubrid_error_code_facility - Récupère le niveau du code erreur
    • cubrid_error_msg - Récupère le message d'erreur de la dernière erreur survenue
    • cubrid_execute - Exécute une requête SQL préparée
    • cubrid_fetch - Récupère la prochaine ligne du jeu de résultats
    • cubrid_fetch_array - Récupère une ligne de résultat sous forme de tableau associatif, de tableau numérique, ou les deux
    • cubrid_fetch_assoc - Retourne un tableau associatif correspondant à la ligne récupérée
    • cubrid_fetch_field - Récupère des informations sur une colonne et les retourne sous la forme d'un objet
    • cubrid_fetch_lengths - Retourne un tableau contenant les longueurs des valeurs de chaque champ de la ligne courante
    • cubrid_fetch_object - Récupère la prochaine ligne et la retourne sous la forme d'un objet
    • cubrid_fetch_row - Retourne un tableau numérique avec les valeurs de la ligne courante
    • cubrid_field_flags - Retourne une chaîne avec les drapeaux de la position du champ fourni
    • cubrid_field_len - Récupère la longueur maximale du champ spécifié
    • cubrid_field_name - Retourne le nom du champ spécifié
    • cubrid_field_seek - Déplace le curseur du jeu de résultats à une position spécifiée
    • cubrid_field_table - Retourne le nom de la table d'un champ spécifié
    • cubrid_field_type - Retourne le type de la colonne correspondant à la position du champ fourni
    • cubrid_free_result - Libère la mémoire occupée par les données de résultat
    • cubrid_get - Récupère une colonne en utilisant son OID
    • cubrid_get_autocommit - Récupère le mode auto-commit de la connexion
    • cubrid_get_charset - Retourne le jeu de caractères utilisé sur la connexion CUBRID courante
    • cubrid_get_class_name - Récupère le nom de la classe en utilisant son OID
    • cubrid_get_client_info - Retourne la version de la bibliothèque cliente
    • cubrid_get_db_parameter - Retourne les paramètres de la base de données CUBRID
    • cubrid_get_query_timeout - Récupère la valeur du délai d'attente maximal d'une requête
    • cubrid_get_server_info - Retourne la version du serveur CUBRID
    • cubrid_insert_id - Retourne l'identifiant généré pour la dernière mise à jour de la colonne AUTO_INCREMENT
    • cubrid_is_instance - Vérifie si une instance existe
    • cubrid_list_dbs - Retourne un tableau contenant la liste de toutes les bases de données CUBRID existantes
    • cubrid_load_from_glo - Lie une donnée
    • cubrid_lob2_bind - Lie un objet LOB ou une chaîne de caractères à un objet LOB comme paramètre d'une requête préparée
    • cubrid_lob2_close - Ferme un objet LOB
    • cubrid_lob2_export - Exporte un objet LOB vers un fichier
    • cubrid_lob2_import - Importe des données BLOB/CLOB depuis un fichier
    • cubrid_lob2_new - Crée un nouvel objet LOB
    • cubrid_lob2_read - Lit des données BLOB/CLOB
    • cubrid_lob2_seek - Déplace le curseur d'un objet LOB
    • cubrid_lob2_seek64 - Déplace le curseur d'un objet LOB
    • cubrid_lob2_size - Récupère la taille d'un objet LOB
    • cubrid_lob2_size64 - Récupère la taille d'un objet LOB
    • cubrid_lob2_tell - Récupère la position du curseur dans un objet LOB
    • cubrid_lob2_tell64 - Récupère la position du curseur dans l'objet LOB
    • cubrid_lob2_write - Ecrit dans un objet LOB
    • cubrid_lob_close - Ferme un BLOB/CLOB
    • cubrid_lob_export - Exporte des données BLOB/CLOB vers un fichier
    • cubrid_lob_get - Récupère les données BLOB/CLOB
    • cubrid_lob_send - Lit les données BLOB/CLOB et les envoye au navigateur
    • cubrid_lob_size - Récupère la taille des données BLOB/CLOB
    • cubrid_lock_read - Place un verrou de lecture sur l'OID fourni
    • cubrid_lock_write - Place un verrou d'écriture sur l'OID fourni
    • cubrid_move_cursor - Déplace le curseur dans le résultat
    • cubrid_new_glo - Crée une instance glo
    • cubrid_next_result - Récupère le résultat de la prochaine requête lors de l'exécution de requêtes SQL multiples
    • cubrid_num_cols - Récupère le nombre de colonnes du jeu de résultats
    • cubrid_num_fields - Retourne le nombre de colonnes dans le jeu de résultats
    • cubrid_num_rows - Récupère le nombre de lignes d'un jeu de résultats
    • cubrid_pconnect - Ouvre une connexion persistante vers un serveur CUBRID
    • cubrid_pconnect_with_url - Ouvre une connexion persistante vers un serveur CUBRID
    • cubrid_ping - Ping une connexion au serveur ou se reconnecte s'il n'y a plus de connexion active
    • cubrid_prepare - Prépare une requête SQL pour son exécution
    • cubrid_put - Met à jour une colonne suivant son OID
    • cubrid_query - Envoi une requête CUBRID
    • cubrid_real_escape_string - Échappe les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL
    • cubrid_result - Retourne la valeur d'un champ d'une ligne spécifique
    • cubrid_rollback - Annule une transaction
    • cubrid_save_to_glo - Sauvegarde un fichier dans une instance glo
    • cubrid_schema - Récupère des informations sur un schéma
    • cubrid_send_glo - Lit les données depuis une instance glo
    • cubrid_seq_drop - Supprime un élément d'une séquence
    • cubrid_seq_insert - Insère un élément dans une séquence
    • cubrid_seq_put - Met à jour la valeur d'un élément d'une séquence
    • cubrid_set_add - Insère un seul élément pour définir le type d'une colonne
    • cubrid_set_autocommit - Définit le mode auto-commit pour la connexion
    • cubrid_set_db_parameter - Définit les paramètres de base de données CUBRID
    • cubrid_set_drop - Supprime un élément
    • cubrid_set_query_timeout - Définit le délai maximal d'exécution d'une requête
    • cubrid_unbuffered_query - Exécute une requête sans placer les résultats en mémoire vive
    • cubrid_version - Récupère la version du module PHP CUBRID
    • CURLFile::getFilename - Récupère le nom du fichier
    • CURLFile::getMimeType - Récupère le type MIME
    • CURLFile::getPostFilename - Récupère le nom de fichier pour POST
    • CURLFile::setMimeType - Définit le type MIME
    • CURLFile::setPostFilename - Définit le nom du fichier pour POST
    • CURLFile::__construct - Crée un objet CURLFile
    • CURLFile::__wakeup - Gestionnaire de délinéarisation
    • curl_close - Ferme une session CURL
    • curl_copy_handle - Copie une ressource cURL avec toutes ses préférences
    • curl_errno - Retourne le dernier message d'erreur cURL
    • curl_error - Retourne une chaîne contenant le dernier message d'erreur cURL
    • curl_escape - Encode URL la chaîne fournie
    • curl_exec - Exécute une session cURL
    • curl_getinfo - Lit les informations détaillant un transfert cURL
    • curl_init - Initialise une session cURL
    • curl_multi_add_handle - Ajoute une ressource cURL à un cURL multiple
    • curl_multi_close - Termine un jeu de sessions cURL
    • curl_multi_exec - Exécute les sous-requêtes de la session cURL
    • curl_multi_getcontent - Retourne le contenu obtenu avec l'option CURLOPT_RETURNTRANSFER
    • curl_multi_info_read - Lit les informations sur les transferts actuels
    • curl_multi_init - Retourne un nouveau cURL multiple
    • curl_multi_remove_handle - Retire une ressource cURL d'un cURL multiple
    • curl_multi_select - Attend une activité sur n'importe quelle connexion curl_multi
    • curl_multi_setopt - Définit une option pour le gestionnaire multiple cURL
    • curl_multi_strerror - Retourne la description d'un code erreur
    • curl_pause - Met en pause, ou sort de la pause une connexion
    • curl_reset - Ré-initialise toutes les options d'un gestionnaire de session libcurl
    • curl_setopt - Définit une option de transmission cURL
    • curl_setopt_array - Fixe plusieurs options pour un transfert cURL
    • curl_share_close - Ferme un gestionnaire partagé cURL
    • curl_share_init - Initialise un gestionnaire partagé cURL
    • curl_share_setopt - Définit une option du gestionnaire partagé cURL
    • curl_strerror - Retourne la chaîne descriptive du code erreur fourni
    • curl_unescape - Décode l'URL fourni
    • curl_version - Retourne la version courante de cURL
    • current - Retourne l'élément courant du tableau
    • cyrus_authenticate - Identification sur un serveur Cyrus IMAP
    • cyrus_bind - Ajoute une fonction de rappel sur une connexion Cyrus IMAP
    • cyrus_close - Ferme la connexion à un serveur Cyrus IMAP
    • cyrus_connect - Connexion sur un serveur Cyrus IMAP
    • cyrus_query - Envoie une requête à un serveur Cyrus IMAP
    • cyrus_unbind - Supprime ...
  • d
    • data:// - Données (RFC 2397)
    • date - Formate une date/heure locale
    • DateInterval::createFromDateString - Configure un objet DateInterval à partir des parties d'une chaîne
    • DateInterval::format - Formate l'intervalle
    • DateInterval::__construct - Crée un nouvel objet DateInterval
    • DatePeriod::getDateInterval - Gets the interval
    • DatePeriod::getEndDate - Gets the end date
    • DatePeriod::getStartDate - Gets the start date
    • DatePeriod::__construct - Crée un nouvel objet DatePeriod
    • DateTime::add - Ajoute une durée à un objet DateTime
    • DateTime::createFromFormat - Retourne un nouvel objet DateTime formaté
    • DateTime::diff - Retourne la différence entre deux objets DateTime
    • DateTime::format - Retourne une date formatée suivant le format fourni
    • DateTime::getLastErrors - Retourne les dernières erreurs et alertes
    • DateTime::getOffset - Retourne le décalage horaire
    • DateTime::getTimestamp - Récupère le timestamp Unix
    • DateTime::getTimezone - Retourne le fuseau horaire relatif au DateTime fourni
    • DateTime::modify - Modifie le timestamp
    • DateTime::setDate - Assigne la date
    • DateTime::setISODate - Configure une date ISO
    • DateTime::setTime - Assigne l'heure
    • DateTime::setTimestamp - Assigne la date et l'heure à l'aide d'un timestamp Unix
    • DateTime::setTimezone - Configure le fuseau horaire de l'objet DateTime
    • DateTime::sub - Soustrait une durée à un objet DateTime
    • DateTime::__construct - Retourne un nouvel objet DateTime
    • DateTime::__set_state - Le gestionnaire __set_state
    • DateTime::__wakeup - Le gestionnaire __wakeup
    • DateTimeImmutable::add - Ajoute un nombre de jours, mois, années, heures, minutes et secondes
    • DateTimeImmutable::createFromFormat - Retourne le nouvel objet DateTimeImmutable formatté suivant le format spécifié
    • DateTimeImmutable::createFromMutable - Retourne le nouvel objet DateTimeImmutable qui contient l'objet DateTime fourni
    • DateTimeImmutable::getLastErrors - Retourne les alertes et erreurs
    • DateTimeImmutable::modify - Créé un nouvel objet dont le timestamp a été modifié
    • DateTimeImmutable::setDate - Définit la date
    • DateTimeImmutable::setISODate - Définit la date ISO
    • DateTimeImmutable::setTime - Définit le temps
    • DateTimeImmutable::setTimestamp - Définit la date et l'heure basé sur un timestamp Unix
    • DateTimeImmutable::setTimezone - Définit le décalage horaire
    • DateTimeImmutable::sub - Soustrait un nombre de jours, mois, années, heures et secondes
    • DateTimeImmutable::__construct - Retourne un nouvel objet DateTimeImmutable
    • DateTimeImmutable::__set_state - Le gestionnaire __set_state
    • DateTimeZone::getLocation - Retourne les informations géographiques d'un fuseau horaire
    • DateTimeZone::getName - Retourne le nom du fuseau horaire
    • DateTimeZone::getOffset - Retourne le décalage GMT d'un fuseau horaire
    • DateTimeZone::getTransitions - Retourne toutes les transitions d'un fuseau horaire
    • DateTimeZone::listAbbreviations - Retourne un tableau associatif, décrivant un fuseau horaire
    • DateTimeZone::listIdentifiers - Retourne un tableau numérique contenant tous les identifiants de fuseaux horaires définis
    • DateTimeZone::__construct - Crée un nouvel objet DateTimeZone
    • date_add - Alias de DateTime::add
    • date_create - Alias de DateTime::__construct
    • date_create_from_format - Alias de DateTime::createFromFormat
    • date_create_immutable - Alias de DateTimeImmutable::__construct
    • date_create_immutable_from_format - Alias de DateTimeImmutable::createFromFormat
    • date_date_set - Alias de DateTime::setDate
    • date_default_timezone_get - Récupère le décalage horaire par défaut utilisé par toutes les fonctions date/heure d'un script
    • date_default_timezone_set - Définit le décalage horaire par défaut de toutes les fonctions date/heure
    • date_diff - Alias de DateTime::diff
    • date_format - Alias de DateTime::format
    • date_get_last_errors - Alias de DateTime::getLastErrors
    • date_interval_create_from_date_string - Alias de DateInterval::createFromDateString
    • date_interval_format - Alias de DateInterval::format
    • date_isodate_set - Alias de DateTime::setISODate
    • date_modify - Alias de DateTime::modify
    • date_offset_get - Alias de DateTime::getOffset
    • date_parse - Retourne un tableau associatif avec des informations détaillées sur une date donnée
    • date_parse_from_format - Récupère les informations d'une date donnée suivant un format spécifique
    • date_sub - Alias de DateTime::sub
    • date_sunrise - Retourne l'heure de lever du soleil pour un jour et un endroit donnés
    • date_sunset - Retourne l'heure de coucher du soleil pour un jour et un endroit donnés
    • date_sun_info - Retourne un tableau avec les informations sur le lever/coucher du soleil ainsi que le début et la fin de l'aube
    • date_timestamp_get - Alias de DateTime::getTimestamp
    • date_timestamp_set - Alias de DateTime::setTimestamp
    • date_timezone_get - Alias de DateTime::getTimezone
    • date_timezone_set - Alias de DateTime::setTimezone
    • date_time_set - Alias de DateTime::setTime
    • db2_autocommit - Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de données
    • db2_bind_param - Associe une variable PHP à un paramètre d'une requête SQL
    • db2_client_info - Retourne un objet avec des propriétés qui décrivent le client de base de données DB2
    • db2_close - Ferme une connexion de base de données
    • db2_columns - Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
    • db2_column_privileges - Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
    • db2_commit - Valide la transaction
    • db2_connect - Retourne une connexion à une base de données
    • db2_conn_error - Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion
    • db2_conn_errormsg - Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE
    • db2_cursor_type - Retourne le type de curseur utilisé par une ressource
    • db2_escape_string - Utilisé pour échapper certains caractères
    • db2_exec - Exécute une requête SQL directement
    • db2_execute - Exécute une requête SQL préparée
    • db2_fetch_array - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
    • db2_fetch_assoc - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
    • db2_fetch_both - Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats
    • db2_fetch_object - Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
    • db2_fetch_row - Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée
    • db2_field_display_size - Retourne le maximum d'octets requis pour afficher une colonne
    • db2_field_name - Retourne le nom de la colonne du jeu de résultats
    • db2_field_num - Retourne la position du nom de la colonne du jeu de résultats
    • db2_field_precision - Retourne la précision de la colonne indiquée du jeu de résultats
    • db2_field_scale - Retourne l'échelle de la colonne indiquée du jeu de résultats
    • db2_field_type - Retourne le type de donnée de la colonne indiquée du jeu de résultats
    • db2_field_width - Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats
    • db2_foreign_keys - Retourne un jeu de résultats listant les clés étrangères d'une table
    • db2_free_result - Libère la mémoire associée à un jeu de résultats
    • db2_free_stmt - Libère la mémoire associée à la ressource indiquée
    • db2_get_option - Récupère la valeur d'une option pour une requête ou une connexion
    • db2_last_insert_id - Retourne le dernier ID généré par la dernière requête d'insertion
    • db2_lob_read - Récupère de grands objets binaires de tailles prédéfinies à chaque invocation
    • db2_next_result - Demande le prochain jeu de résultats de la ressource indiquée
    • db2_num_fields - Retourne le nombre de champs contenu du jeu de résultats
    • db2_num_rows - Retourne le nombre de lignes affectées par une requête SQL
    • db2_pclose - Ferme une connexion persistante à la base de données
    • db2_pconnect - Retourne une connexion persistante à une base de données
    • db2_prepare - Prépare une requête SQL à être exécutée
    • db2_primary_keys - Retourne un jeu de résultats listant les clés d'une table
    • db2_procedures - Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données
    • db2_procedure_columns - Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
    • db2_result - Retourne une colonne d'une ligne d'un jeu de résultats
    • db2_rollback - Annule une transaction
    • db2_server_info - Retourne un objet avec des propriétés qui décrivent le serveur de base de données DB2
    • db2_set_option - Fixe des options pour une connexion ou des ressources
    • db2_special_columns - Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
    • db2_statistics - Retourne un jeu de résultats listant les index et statistiques d'une table
    • db2_stmt_error - Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL
    • db2_stmt_errormsg - Retourne le dernier message d'erreur d'une requête SQL
    • db2_tables - Retourne la liste des tables et leurs métadonnées
    • db2_table_privileges - Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données
    • dbase_add_record - Ajoute un enregistrement dans une base de données dBase
    • dbase_close - Ferme une base dBase
    • dbase_create - Crée une base de données dBase
    • dbase_delete_record - Efface un enregistrement dans une base dBase
    • dbase_get_header_info - Récupère des informations d'en-tête d'une base de données dBase
    • dbase_get_record - Lit un enregistrement dans une base dBase
    • dbase_get_record_with_names - Lit un enregistrement dans une base dBase, sous la forme d'un tableau associatif
    • dbase_numfields - Compte le nombre de champs d'une base dBase
    • dbase_numrecords - Compte le nombre d'enregistrements dans une base dBase
    • dbase_open - Ouvre une base dBase
    • dbase_pack - Compacte une base dBase
    • dbase_replace_record - Remplace un enregistrement dans une base dBase
    • dba_close - Ferme une base DBA
    • dba_delete - Efface une ligne dans une base DBA
    • dba_exists - Vérifie qu'une clé DBA existe
    • dba_fetch - Lit les données liées à une clé DBA
    • dba_firstkey - Lit la première clé DBA
    • dba_handlers - Liste les gestionnaires DBA disponibles
    • dba_insert - Insère une entrée DBA
    • dba_key_split - Transforme une représentation de clé DBA par chaîne en une représentation par tableau
    • dba_list - Liste tous les fichiers de bases de données DBA ouverts
    • dba_nextkey - Lit la clé DBA suivante
    • dba_open - Ouvre une base de données DBA
    • dba_optimize - Optimise une base DBA
    • dba_popen - Ouvre une connexion persistante à une base de données DBA
    • dba_replace - Remplace ou insère une ligne DBA
    • dba_sync - Synchronise une base de données DBA
    • dbplus_add - Ajoute une ligne à une relation
    • dbplus_aql - Exécute une requête AQL
    • dbplus_chdir - Lit/Modifie le chemin du dossier virtuel courant vers la base de données
    • dbplus_close - Ferme une relation
    • dbplus_curr - Lit la ligne courante depuis une relation
    • dbplus_errcode - Récupère le message d'erreur pour le code erreur fourni ou pour la dernière erreur survenue
    • dbplus_errno - Lit le code d'erreur généré par la dernière opération
    • dbplus_find - Ajoute une contrainte sur une relation
    • dbplus_first - Lit la première ligne d'une relation
    • dbplus_flush - Écrit toutes les modifications apportées à une relation
    • dbplus_freealllocks - Libère tous les verrous posés par le client
    • dbplus_freelock - Lève un verrou en écriture sur une ligne
    • dbplus_freerlocks - Lève tous les verrous sur les lignes d'une relation
    • dbplus_getlock - Pose un verrou sur une ligne
    • dbplus_getunique - Retourne un identifiant unique pour une relation
    • dbplus_info - Récupère les informations sur une relation
    • dbplus_last - Lit la dernière ligne d'une relation
    • dbplus_lockrel - Pose un verrou en écriture sur une relation
    • dbplus_next - Lit la ligne suivante dans la relation
    • dbplus_open - Ouvre un fichier de relation
    • dbplus_prev - Lit la ligne précédente dans la relation
    • dbplus_rchperm - Modifie les droits sur la relation
    • dbplus_rcreate - Crée une nouvelle relation DB++
    • dbplus_rcrtexact - Crée une copie exacte mais vide d'une relation
    • dbplus_rcrtlike - Crée une copie vide d'une relation avec les index
    • dbplus_resolve - Résout les informations d'hôte pour une relation
    • dbplus_restorepos - Restaure la position
    • dbplus_rkeys - Spécifie la nouvelle clé primaire d'une relation
    • dbplus_ropen - Ouvre un fichier de relation local
    • dbplus_rquery - Accomplit une requête AQL locale
    • dbplus_rrename - Renomme une relation
    • dbplus_rsecindex - Crée un nouvel index secondaire pour une relation
    • dbplus_runlink - Détruit une relation
    • dbplus_rzap - Supprime toutes les lignes d'une relation
    • dbplus_savepos - Sauvegarde la position
    • dbplus_setindex - Définie l'index
    • dbplus_setindexbynumber - Définie l'index par un nombre
    • dbplus_sql - Exécute une requête SQL
    • dbplus_tcl - Exécute du code TCL côté serveur
    • dbplus_tremove - Supprime la ligne courante et retourne la nouvelle ligne courante
    • dbplus_undo - Annule
    • dbplus_undoprepare - Prépare l'annulation
    • dbplus_unlockrel - Libère un verrou en écriture posé sur une relation
    • dbplus_unselect - Retire une contrainte d'une relation
    • dbplus_update - Modifie une ligne dans une relation
    • dbplus_xlockrel - Pose un verrou exclusif sur une relation
    • dbplus_xunlockrel - Lève un verrou exclusif posé sur une relation
    • dbx_close - Ferme une connexion à une base DBX
    • dbx_compare - Compare deux lignes DBX afin de les trier
    • dbx_connect - Ouvre une connexion à une base de données
    • dbx_error - Rapporte le message d'erreur du dernier appel de fonction DBX
    • dbx_escape_string - Protège une chaîne de caractères pour l'utiliser dans une requête
    • dbx_fetch_row - Lit une ligne dans un résultat DBX ayant l'option DBX_RESULT_UNBUFFERED activée
    • dbx_query - Envoie une requête et lit tous les résultats DBX
    • dbx_sort - Trie un résultat avec une fonction utilisateur
    • dcgettext - Remplace le domaine lors d'une recherche
    • dcngettext - Version plurielle de dcgettext
    • debug_backtrace - Génère le contexte de déboguage
    • debug_print_backtrace - Affiche la pile d'exécution PHP
    • debug_zval_dump - Extrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage
    • decbin - Convertit de décimal en binaire
    • dechex - Convertit de décimal en hexadécimal
    • decoct - Convertit de décimal en octal
    • define - Définit une constante
    • defined - Vérifie l'existence d'une constante
    • define_syslog_variables - Initialise toutes les variables relatives aux fonctions syslog
    • deflate_add - Incrementally deflate data
    • deflate_init - Initialize an incremental deflate context
    • deg2rad - Convertit un nombre de degrés en radians
    • delete - Voir unlink ou unset
    • dgettext - Remplace le domaine courant
    • die - Alias de la fonction exit
    • dio_close - Ferme l'accès au fichier
    • dio_fcntl - Exécute une fonction fichier de langage C
    • dio_open - Ouvre un nouveau fichier avec les permissions spécifiées
    • dio_read - Lit les octets dans un fichier
    • dio_seek - Déplace le pointeur interne de fichier
    • dio_stat - Lit des informations sur le fichier
    • dio_tcsetattr - Modifie les attributs du terminal et le taux de baud du port série
    • dio_truncate - Tronque un fichier
    • dio_write - Écrit des données dans le fichier avec la possibilité de tronquer sa longueur
    • dir - Retourne une instance de la classe Directory
    • Directory::close - Ferme le gestionnaire de dossier
    • Directory::read - Lit une entrée depuis le gestionnaire de dossier
    • Directory::rewind - Réinitialise le gestionnaire de dossier
    • DirectoryIterator::current - Retourne l'élément courant du DirectoryIterator
    • DirectoryIterator::getATime - Lit la date et l'heure du dernier accès à un fichier
    • DirectoryIterator::getBasename - Lit le nom de dossier de l'élément DirectoryIterator
    • DirectoryIterator::getCTime - Récupère l'heure de création de l'inode d'un fichier
    • DirectoryIterator::getExtension - Récupère l'extension du fichier
    • DirectoryIterator::getFilename - Retourne le nom de l'entrée courante du dossier
    • DirectoryIterator::getGroup - Récupère le groupe d'un fichier
    • DirectoryIterator::getInode - Récupère l'inode d'un fichier
    • DirectoryIterator::getMTime - Récupère l'heure de la dernière modification d'un fichier
    • DirectoryIterator::getOwner - Récupère le propriétaire d'un fichier
    • DirectoryIterator::getPath - Retourne le chemin du dossier
    • DirectoryIterator::getPathname - Retourne le chemin et le nom de l'entrée courante du dossier
    • DirectoryIterator::getPerms - Récupère les permissions d'un fichier
    • DirectoryIterator::getSize - Récupère la taille d'un fichier
    • DirectoryIterator::getType - Récupère le type d'un fichier
    • DirectoryIterator::isDir - Vérifie si un fichier est un dossier
    • DirectoryIterator::isDot - Retourne TRUE si l'entrée courante est '.' ou '..'
    • DirectoryIterator::isExecutable - Vérifie si le fichier est exécutable
    • DirectoryIterator::isFile - Vérifie si l'entrée est un fichier normal
    • DirectoryIterator::isLink - Vérifie si le fichier est un lien symbolique
    • DirectoryIterator::isReadable - Vérifie si le fichier est accessible en lecture
    • DirectoryIterator::isWritable - Vérifie si le fichier peut être modifié
    • DirectoryIterator::key - Retourne l'entrée courante du dossier
    • DirectoryIterator::next - Se déplace vers la prochaine entrée
    • DirectoryIterator::rewind - Revient au début du dossier
    • DirectoryIterator::seek - Déplace le pointeur dans un itérateur DirectoryIterator
    • DirectoryIterator::valid - Vérifie si le répertoire contient encore des entrées
    • DirectoryIterator::__construct - Construit un nouvel itérateur de dossier à partir d'un chemin
    • DirectoryIterator::__toString - Lit le nom du fichier
    • dirname - Renvoie le chemin du dossier parent
    • diskfreespace - Alias de disk_free_space
    • disk_free_space - Renvoie l'espace disque disponible sur le système de fichiers ou la partition
    • disk_total_space - Retourne la taille d'un dossier ou d'une partition
    • dl - Charge une extension PHP à la volée
    • dngettext - Version plurielle de dgettext
    • dns_check_record - Alias de checkdnsrr
    • dns_get_mx - Alias de getmxrr
    • dns_get_record - Lit les données DNS associées à un hôte
    • DOMAttr::isId - Vérifie si l'attribut est un identifiant défini
    • DOMAttr::__construct - Crée un nouvel objet DOMAttr
    • DOMCdataSection::__construct - Construit un nouvel objet DOMCdataSection
    • DOMCharacterData::appendData - Ajoute la chaîne à la fin des données dans le noeud
    • DOMCharacterData::deleteData - Supprime une sous-chaîne dans le noeud
    • DOMCharacterData::insertData - Insère une chaîne à la position spécifiée d'unité 16-bit
    • DOMCharacterData::replaceData - Remplace une sous-chaîne dans le noeud DOMCharacterData
    • DOMCharacterData::substringData - Extrait un morceau de données dans le noeud
    • DOMComment::__construct - Crée un nouvel objet DOMComment
    • DOMDocument::createAttribute - Crée un nouvel attribut
    • DOMDocument::createAttributeNS - Crée un nouvel attribut avec un espace de noms associé
    • DOMDocument::createCDATASection - Crée un nouveau noeud cdata
    • DOMDocument::createComment - Crée un nouveau noeud de commentaire
    • DOMDocument::createDocumentFragment - Crée un nouveau fragment de document
    • DOMDocument::createElement - Crée un nouveau noeud
    • DOMDocument::createElementNS - Crée un nouveau noeud avec un espace de noms associé
    • DOMDocument::createEntityReference - Crée un nouveau noeud de référence d'entité
    • DOMDocument::createProcessingInstruction - Crée un nouveau noeud PI
    • DOMDocument::createTextNode - Crée un nouveau noeud de texte
    • DOMDocument::getElementById - Cherche un élément avec un certain identifiant
    • DOMDocument::getElementsByTagName - Cherche tous les éléments qui ont le nom de la balise locale donné
    • DOMDocument::getElementsByTagNameNS - Recherche tous les éléments avec un nom de balise donné dans un espace de noms spécifié
    • DOMDocument::importNode - Importe un noeud dans le document courant
    • DOMDocument::load - Charge du XML depuis un fichier
    • DOMDocument::loadHTML - Charge du code HTML à partir d'une chaîne de caractères
    • DOMDocument::loadHTMLFile - Charge du HTML à partir d'un fichier
    • DOMDocument::loadXML - Charge du XML depuis une chaîne de caractères
    • DOMDocument::normalizeDocument - Normalise le document
    • DOMDocument::registerNodeClass - Enregistre la classe étendue utilisée pour créer un type de base de noeud
    • DOMDocument::relaxNGValidate - Effectue une validation relaxNG sur le document
    • DOMDocument::relaxNGValidateSource - Effectue une validation relaxNG sur le document
    • DOMDocument::save - Sauvegarde l'arbre interne XML dans un fichier
    • DOMDocument::saveHTML - Sauvegarde le document interne dans une chaîne en utilisant un formatage HTML
    • DOMDocument::saveHTMLFile - Sauvegarde un document interne dans un fichier en utilisant un formatage HTML
    • DOMDocument::saveXML - Sauvegarde l'arbre interne XML dans une chaîne de caractères
    • DOMDocument::schemaValidate - Valide un document selon un schéma
    • DOMDocument::schemaValidateSource - Valide un document selon un schéma
    • DOMDocument::validate - Valide un document en se basant sur sa DTD
    • DOMDocument::xinclude - Remplace les XIncludes dans un objet DOMDocument
    • DOMDocument::__construct - Crée un nouvel objet DOMDocument
    • DOMDocumentFragment::appendXML - Ajoute des données XML
    • DOMElement::getAttribute - Retourne la valeur d'un attribut
    • DOMElement::getAttributeNode - Retourne le noeud d'attribut
    • DOMElement::getAttributeNodeNS - Retourne le noeud d'attribut
    • DOMElement::getAttributeNS - Retourne la valeur de l'attribut
    • DOMElement::getElementsByTagName - Retourne les éléments par leur nom de balise
    • DOMElement::getElementsByTagNameNS - Récupère les éléments par leur espace de noms et leur localName
    • DOMElement::hasAttribute - Vérifie si un attribut existe
    • DOMElement::hasAttributeNS - Vérifie si un attribut existe
    • DOMElement::removeAttribute - Efface un attribut
    • DOMElement::removeAttributeNode - Efface un attribut
    • DOMElement::removeAttributeNS - Efface un attribut
    • DOMElement::setAttribute - Ajoute un nouvel attribut
    • DOMElement::setAttributeNode - Ajoute un nouvel attribut à l'élément
    • DOMElement::setAttributeNodeNS - Ajoute un nouvel attribut à l'élément
    • DOMElement::setAttributeNS - Ajoute un nouvel attribut
    • DOMElement::setIdAttribute - Déclare l'attribut spécifié par son nom à être de type ID
    • DOMElement::setIdAttributeNode - Déclare l'attribut spécifié par le noeud à être de type ID
    • DOMElement::setIdAttributeNS - Déclare l'attribut spécifié par son nom local et son espace de nom URI à être de type ID
    • DOMElement::__construct - Crée un nouvel objet DOMElement
    • DOMEntityReference::__construct - Crée un nouvel objet DOMEntityReference
    • DOMImplementation::createDocument - Crée un objet DOM Document du type spécifié avec ses éléments
    • DOMImplementation::createDocumentType - Crée un objet DOMDocumentType vide
    • DOMImplementation::hasFeature - Teste si l'implémentation DOM implémente une fonctionnalité spécifique
    • DOMImplementation::__construct - Crée un nouvel objet DOMImplementation
    • DOMNamedNodeMap::getNamedItem - Retourne un noeud spécifié par nom nom
    • DOMNamedNodeMap::getNamedItemNS - Retourne un noeud spécifié par son nom local et son espace de noms
    • DOMNamedNodeMap::item - Retourne un noeud selon son index
    • DOMNode::appendChild - Ajoute un nouveau fils à la fin des fils
    • DOMNode::C14N - Canonise des noeuds en une chaîne
    • DOMNode::C14NFile - Canonise des noeuds en fichier
    • DOMNode::cloneNode - Clone un noeud
    • DOMNode::getLineNo - Lit le numéro de ligne d'un noeud
    • DOMNode::getNodePath - Récupère un XPath pour un nœud
    • DOMNode::hasAttributes - Vérifie si le noeud possède un attribut
    • DOMNode::hasChildNodes - Vérifie si le noeud possède des enfants
    • DOMNode::insertBefore - Ajoute un nouveau fils avant le noeud référencé
    • DOMNode::isDefaultNamespace - Vérifie si l'espace de nom spécifié est l'espace de noms par défaut ou non
    • DOMNode::isSameNode - Indique si deux noeuds sont identiques
    • DOMNode::isSupported - Vérifie si la fonctionnalité est disponible pour la version spécifiée
    • DOMNode::lookupNamespaceURI - Retourne l'URI de l'espace de noms selon le préfixe
    • DOMNode::lookupPrefix - Retourne le préfixe de l'espace de noms selon l'URI de l'espace de noms
    • DOMNode::normalize - Normalise le noeud
    • DOMNode::removeChild - Supprime un fils de la liste des enfants
    • DOMNode::replaceChild - Remplace un fils
    • DOMNodelist::item - Retourne un noeud spécifié par son index
    • DOMProcessingInstruction::__construct - Crée un nouvel objet DOMProcessingInstruction
    • DOMText::isWhitespaceInElementContent - Indique si ce noeud de texte contient des espaces blancs
    • DOMText::splitText - Coupe le noeud en deux noeuds à l'endroit spécifié
    • DOMText::__construct - Crée un nouvel objet DOMText
    • DOMXPath::evaluate - Évalue une expression XPath donnée et retourne un résultat typé si possible
    • DOMXPath::query - Évalue l'expression XPath donnée
    • DOMXPath::registerNamespace - Enregistre l'espace de noms avec l'objet DOMXPath
    • DOMXPath::registerPhpFunctions - Enregistre une fonction PHP comme fonction XPath
    • DOMXPath::__construct - Crée un nouvel objet DOMXPath
    • dom_import_simplexml - Transforme un objet SimpleXMLElement en un objet DOMElement
    • doubleval - Alias de floatval
    • DSN PDO_CUBRID - Connexion aux bases de données CUBRID
    • Ds\Collection::clear - Removes all values.
    • Ds\Collection::copy - Returns a shallow copy of the collection.
    • Ds\Collection::isEmpty - Returns whether the collection is empty
    • Ds\Collection::toArray - Converts the collection to an tableau.
    • Ds\Deque::allocate - Allocates enough memory for a required capacity.
    • Ds\Deque::apply - Updates all values by applying a callback function to each value.
    • Ds\Deque::capacity - Returns the current capacity.
    • Ds\Deque::clear - Removes all values from the deque.
    • Ds\Deque::contains - Determines if the deque contains given values.
    • Ds\Deque::copy - Returns a shallow copy of the deque.
    • Ds\Deque::count - Returns the number of values in the collection.
    • Ds\Deque::filter - Creates a new deque using a callable to determine which values to include.
    • Ds\Deque::find - Attempts to find a value's index.
    • Ds\Deque::first - Returns the first value in the deque.
    • Ds\Deque::get - Returns the value at a given index.
    • Ds\Deque::insert - Inserts values at a given index.
    • Ds\Deque::isEmpty - Returns whether the deque is empty
    • Ds\Deque::join - Joins all values together as a string.
    • Ds\Deque::jsonSerialize - Returns a representation that can be converted to JSON.
    • Ds\Deque::last - Returns the last value.
    • Ds\Deque::map - Returns the result of applying a callback to each value.
    • Ds\Deque::merge - Returns the result of adding all given values to the deque.
    • Ds\Deque::pop - Removes and returns the last value.
    • Ds\Deque::push - Adds values to the end of the deque.
    • Ds\Deque::reduce - Reduces the deque to a single value using a callback function.
    • Ds\Deque::remove - Removes and returns a value by index.
    • Ds\Deque::reverse - Reverses the deque in-place.
    • Ds\Deque::reversed - Returns a reversed copy.
    • Ds\Deque::rotate - Rotates the deque by a given number of rotations.
    • Ds\Deque::set - Updates a value at a given index.
    • Ds\Deque::shift - Removes and returns the first value.
    • Ds\Deque::slice - Returns a sub-deque of a given range.
    • Ds\Deque::sort - Sorts the deque in-place.
    • Ds\Deque::sorted - Returns a sorted copy.
    • Ds\Deque::sum - Returns the sum of all values in the deque.
    • Ds\Deque::toArray - Converts the deque to an tableau.
    • Ds\Deque::unshift - Adds values to the front of the deque.
    • Ds\Deque::__construct - Creates a new instance.
    • Ds\Hashable::equals - Determines whether an object is equal to the current instance.
    • Ds\Hashable::hash - Returns a scalar value to be used as a hash value.
    • Ds\Map::allocate - Allocates enough memory for a required capacity.
    • Ds\Map::apply - Updates all values by applying a callback function to each value.
    • Ds\Map::capacity - Returns the current capacity.
    • Ds\Map::clear - Removes all values.
    • Ds\Map::copy - Returns a shallow copy of the map.
    • Ds\Map::count - Returns the number of values in the map.
    • Ds\Map::diff - Creates a new map using keys that aren't in another map.
    • Ds\Map::filter - Creates a new map using a callable to determine which pairs to include.
    • Ds\Map::first - Returns the first pair in the map.
    • Ds\Map::get - Returns the value for a given key.
    • Ds\Map::hasKey - Determines whether the map contains a given key.
    • Ds\Map::hasValue - Determines whether the map contains a given value.
    • Ds\Map::intersect - Creates a new map by intersecting keys with another map.
    • Ds\Map::isEmpty - Returns whether the map is empty
    • Ds\Map::jsonSerialize - Returns a representation that can be converted to JSON.
    • Ds\Map::keys - Returns a set of the map's keys.
    • Ds\Map::ksort - Sorts the map in-place by key.
    • Ds\Map::ksorted - Returns a copy, sorted by key.
    • Ds\Map::last - Returns the last pair of the map.
    • Ds\Map::map - Returns the result of applying a callback to each value.
    • Ds\Map::merge - Returns the result of adding all given associations.
    • Ds\Map::pairs - Returns a sequence containing all the pairs of the map.
    • Ds\Map::put - Associates a key with a value.
    • Ds\Map::putAll - Associates all key-value pairs of a traversable object or array.
    • Ds\Map::reduce - Reduces the map to a single value using a callback function.
    • Ds\Map::remove - Removes and returns a value by key.
    • Ds\Map::reverse - Reverses the map in-place.
    • Ds\Map::reversed - Returns a reversed copy.
    • Ds\Map::skip - Returns the pair at a given positional index.
    • Ds\Map::slice - Returns a subset of the map defined by a starting index and length.
    • Ds\Map::sort - Sorts the map in-place by value.
    • Ds\Map::sorted - Returns a copy, sorted by value.
    • Ds\Map::sum - Returns the sum of all values in the map.
    • Ds\Map::toArray - Converts the map to an tableau.
    • Ds\Map::union - Creates a new map using values from the current instance and another map.
    • Ds\Map::values - Returns a sequence of the map's values.
    • Ds\Map::xor - Creates a new map using keys of either the current instance or of another map, but not of both.
    • Ds\Map::__construct - Creates a new instance.
    • Ds\Pair::clear - Removes all values.
    • Ds\Pair::copy - Returns a shallow copy of the pair.
    • Ds\Pair::isEmpty - Returns whether the pair is empty
    • Ds\Pair::jsonSerialize - Returns a representation that can be converted to JSON.
    • Ds\Pair::toArray - Converts the pair to an tableau.
    • Ds\Pair::__construct - Creates a new instance.
    • Ds\PriorityQueue::allocate - Allocates enough memory for a required capacity.
    • Ds\PriorityQueue::capacity - Returns the current capacity.
    • Ds\PriorityQueue::clear - Removes all values.
    • Ds\PriorityQueue::copy - Returns a shallow copy of the queue.
    • Ds\PriorityQueue::count - Returns the number of values in the queue.
    • Ds\PriorityQueue::isEmpty - Returns whether the queue is empty
    • Ds\PriorityQueue::jsonSerialize - Returns a representation that can be converted to JSON.
    • Ds\PriorityQueue::peek - Returns the value at the front of the queue.
    • Ds\PriorityQueue::pop - Removes and returns the value with the highest priority.
    • Ds\PriorityQueue::push - Pushes values into the queue.
    • Ds\PriorityQueue::toArray - Converts the queue to an tableau.
    • Ds\PriorityQueue::__construct - Creates a new instance.
    • Ds\Queue::allocate - Allocates enough memory for a required capacity.
    • Ds\Queue::capacity - Returns the current capacity.
    • Ds\Queue::clear - Removes all values.
    • Ds\Queue::copy - Returns a shallow copy of the queue.
    • Ds\Queue::count - Returns the number of values in the queue.
    • Ds\Queue::isEmpty - Returns whether the queue is empty
    • Ds\Queue::jsonSerialize - Returns a representation that can be converted to JSON.
    • Ds\Queue::peek - Returns the value at the front of the queue.
    • Ds\Queue::pop - Removes and returns the value at the front of the queue.
    • Ds\Queue::push - Pushes values into the queue.
    • Ds\Queue::toArray - Converts the queue to an tableau.
    • Ds\Queue::__construct - Creates a new instance.
    • Ds\Sequence::allocate - Allocates enough memory for a required capacity.
    • Ds\Sequence::apply - Updates all values by applying a callback function to each value.
    • Ds\Sequence::capacity - Returns the current capacity.
    • Ds\Sequence::contains - Determines if the sequence contains given values.
    • Ds\Sequence::filter - Creates a new sequence using a callable to determine which values to include.
    • Ds\Sequence::find - Attempts to find a value's index.
    • Ds\Sequence::first - Returns the first value in the sequence.
    • Ds\Sequence::get - Returns the value at a given index.
    • Ds\Sequence::insert - Inserts values at a given index.
    • Ds\Sequence::join - Joins all values together as a string.
    • Ds\Sequence::last - Returns the last value.
    • Ds\Sequence::map - Returns the result of applying a callback to each value.
    • Ds\Sequence::merge - Returns the result of adding all given values to the sequence.
    • Ds\Sequence::pop - Removes and returns the last value.
    • Ds\Sequence::push - Adds values to the end of the sequence.
    • Ds\Sequence::reduce - Reduces the sequence to a single value using a callback function.
    • Ds\Sequence::remove - Removes and returns a value by index.
    • Ds\Sequence::reverse - Reverses the sequence in-place.
    • Ds\Sequence::reversed - Returns a reversed copy.
    • Ds\Sequence::rotate - Rotates the sequence by a given number of rotations.
    • Ds\Sequence::set - Updates a value at a given index.
    • Ds\Sequence::shift - Removes and returns the first value.
    • Ds\Sequence::slice - Returns a sub-sequence of a given range.
    • Ds\Sequence::sort - Sorts the sequence in-place.
    • Ds\Sequence::sorted - Returns a sorted copy.
    • Ds\Sequence::sum - Returns the sum of all values in the sequence.
    • Ds\Sequence::unshift - Adds values to the front of the sequence.
    • Ds\Set::add - Adds values to the set.
    • Ds\Set::allocate - Allocates enough memory for a required capacity.
    • Ds\Set::capacity - Returns the current capacity.
    • Ds\Set::clear - Removes all values.
    • Ds\Set::contains - Determines if the set contains all values.
    • Ds\Set::copy - Returns a shallow copy of the set.
    • Ds\Set::count - Returns the number of values in the set.
    • Ds\Set::diff - Creates a new set using values that aren't in another set.
    • Ds\Set::filter - Creates a new set using a callable to determine which values to include.
    • Ds\Set::first - Returns the first value in the set.
    • Ds\Set::get - Returns the value at a given index.
    • Ds\Set::intersect - Creates a new set by intersecting values with another set.
    • Ds\Set::isEmpty - Returns whether the set is empty
    • Ds\Set::join - Joins all values together as a string.
    • Ds\Set::jsonSerialize - Returns a representation that can be converted to JSON.
    • Ds\Set::last - Returns the last value in the set.
    • Ds\Set::merge - Returns the result of adding all given values to the set.
    • Ds\Set::reduce - Reduces the set to a single value using a callback function.
    • Ds\Set::remove - Removes all given values from the set.
    • Ds\Set::reverse - Reverses the set in-place.
    • Ds\Set::reversed - Returns a reversed copy.
    • Ds\Set::slice - Returns a sub-set of a given range.
    • Ds\Set::sort - Sorts the set in-place.
    • Ds\Set::sorted - Returns a sorted copy.
    • Ds\Set::sum - Returns the sum of all values in the set.
    • Ds\Set::toArray - Converts the set to an tableau.
    • Ds\Set::union - Creates a new set using values from the current instance and another set.
    • Ds\Set::xor - Creates a new set using values in either the current instance or in another set, but not in both.
    • Ds\Set::__construct - Creates a new instance.
    • Ds\Stack::allocate - Allocates enough memory for a required capacity.
    • Ds\Stack::capacity - Returns the current capacity.
    • Ds\Stack::clear - Removes all values.
    • Ds\Stack::copy - Returns a shallow copy of the stack.
    • Ds\Stack::count - Returns the number of values in the stack.
    • Ds\Stack::isEmpty - Returns whether the stack is empty
    • Ds\Stack::jsonSerialize - Returns a representation that can be converted to JSON.
    • Ds\Stack::peek - Returns the value at the top of the stack.
    • Ds\Stack::pop - Removes and returns the value at the top of the stack.
    • Ds\Stack::push - Pushes values onto the stack.
    • Ds\Stack::toArray - Converts the stack to an tableau.
    • Ds\Stack::__construct - Creates a new instance.
    • Ds\Vector::allocate - Allocates enough memory for a required capacity.
    • Ds\Vector::apply - Updates all values by applying a callback function to each value.
    • Ds\Vector::capacity - Returns the current capacity.
    • Ds\Vector::clear - Removes all values.
    • Ds\Vector::contains - Determines if the vector contains given values.
    • Ds\Vector::copy - Returns a shallow copy of the vector.
    • Ds\Vector::count - Returns the number of values in the collection.
    • Ds\Vector::filter - Creates a new vector using a callable to determine which values to include.
    • Ds\Vector::find - Attempts to find a value's index.
    • Ds\Vector::first - Returns the first value in the vector.
    • Ds\Vector::get - Returns the value at a given index.
    • Ds\Vector::insert - Inserts values at a given index.
    • Ds\Vector::isEmpty - Returns whether the vector is empty
    • Ds\Vector::join - Joins all values together as a string.
    • Ds\Vector::jsonSerialize - Returns a representation that can be converted to JSON.
    • Ds\Vector::last - Returns the last value.
    • Ds\Vector::map - Returns the result of applying a callback to each value.
    • Ds\Vector::merge - Returns the result of adding all given values to the vector.
    • Ds\Vector::pop - Removes and returns the last value.
    • Ds\Vector::push - Adds values to the end of the vector.
    • Ds\Vector::reduce - Reduces the vector to a single value using a callback function.
    • Ds\Vector::remove - Removes and returns a value by index.
    • Ds\Vector::reverse - Reverses the vector in-place.
    • Ds\Vector::reversed - Returns a reversed copy.
    • Ds\Vector::rotate - Rotates the vector by a given number of rotations.
    • Ds\Vector::set - Updates a value at a given index.
    • Ds\Vector::shift - Removes and returns the first value.
    • Ds\Vector::slice - Returns a sub-vector of a given range.
    • Ds\Vector::sort - Sorts the vector in-place.
    • Ds\Vector::sorted - Returns a sorted copy.
    • Ds\Vector::sum - Returns the sum of all values in the vector.
    • Ds\Vector::toArray - Converts the vector to an tableau.
    • Ds\Vector::unshift - Adds values to the front of the vector.
    • Ds\Vector::__construct - Creates a new instance.
  • e
    • each - Retourne chaque paire clé/valeur d'un tableau
    • easter_date - Retourne un timestamp UNIX pour Pâques, à minuit pour une année donnée
    • easter_days - Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée
    • echo - Affiche une chaîne de caractères
    • eio_busy - Augmente artificiellement la charge. Utile dans le cadre de tests
    • eio_cancel - Annule une requête
    • eio_chmod - Modifie les permissions d'un fichier/dossier
    • eio_chown - Modifie les permissions d'un fichier/dossier
    • eio_close - Ferme un fichier
    • eio_custom - Exécute une demande personnalisée comme l'appel à une des fonctions eio_*
    • eio_dup2 - Duplique un descripteur de fichier
    • eio_event_loop - Boucle libeio tant que les requêtes s'exécutent
    • eio_fallocate - Autorise l'appelant à manipuler directement l'espace disque alloué pour un fichier
    • eio_fchmod - Modifie les permissions sur un fichier
    • eio_fchown - Modifie le propriétaire du fichier
    • eio_fdatasync - Synchronise le statut interne d'un fichier avec le périphérique de stockage
    • eio_fstat - Récupère le statut d'un fichier
    • eio_fstatvfs - Récupère des statistiques sur le système de fichiers
    • eio_fsync - Synchronise le statut interne d'un fichier avec le périphérique de stockage
    • eio_ftruncate - Tronque un fichier
    • eio_futime - Modifie l'heure du dernier accès et de la dernière modification d'un fichier
    • eio_get_event_stream - Récupère le flux représentant une variable utilisée dans les communications internes avec libeio
    • eio_get_last_error - Retourne une chaîne décrivant la dernière erreur associée avec la ressource demandée
    • eio_grp - Crée un groupe de requêtes
    • eio_grp_add - Ajoute une requête au groupe de requêtes
    • eio_grp_cancel - Annule un groupe de requêtes
    • eio_grp_limit - Définit la limite d'un groupe
    • eio_init - (Re-)initialise Eio
    • eio_link - Crée un lien fort sur un fichier
    • eio_lstat - Récupère le statut d'un fichier
    • eio_mkdir - Crée un dossier
    • eio_mknod - Crée un fichier spécial ou ordinaire
    • eio_nop - Ne fait rien, mise à part le fait de parcourir l'ensemble du cycle des requêtes
    • eio_npending - Retourne le nombre de requêtes terminées
    • eio_nready - Retourne le nombre de requêtes pas encore gérées
    • eio_nreqs - Retourne le nombre de requêtes restant à exécuter
    • eio_nthreads - Retourne le nombre de threads actuellement utilisés
    • eio_open - Ouvre un fichier
    • eio_poll - Vérifie s'il reste des requêtes en cours d'exécution
    • eio_read - Lit un descripteur de fichier à une position donnée
    • eio_readahead - Effectue un readahead sur le fichier dans le cache d'une page
    • eio_readdir - Lit le contenu d'un dossier
    • eio_readlink - Lit la valeur d'un lien symbolique
    • eio_realpath - Récupère le nom du chemin absolu canonisé
    • eio_rename - Modifie le nom ou le chemin d'un fichier
    • eio_rmdir - Supprime un dossier
    • eio_seek - Repositionne le curseur d'un fichier ouvert
    • eio_sendfile - Transfère des données entre des descripteurs de fichiers
    • eio_set_max_idle - Définit le nombre maximal de threads inactifs
    • eio_set_max_parallel - Définit le nombre maximal de threads en parallèle
    • eio_set_max_poll_reqs - Définit le nombre maximal de requêtes à exécuter dans une file d'attente
    • eio_set_max_poll_time - Définit la durée maximale de la file d'attente
    • eio_set_min_parallel - Définit le nombre minimum de threads parallèles
    • eio_stat - Récupère le statut d'un fichier
    • eio_statvfs - Récupère les statistiques du système de fichiers
    • eio_symlink - Crée un lien symbolique
    • eio_sync - Valide le cache du buffer sur le disque
    • eio_syncfs - Appel la fonction système Linux syncfs, si disponible
    • eio_sync_file_range - Synchronise un segment de fichier avec le disque
    • eio_truncate - Tronque un fichier
    • eio_unlink - Supprime un nom et éventuellement, le fichier qui s'y réfère
    • eio_utime - Modifie l'heure du dernier accès et de la dernière modification d'un fichier
    • eio_write - Ecrit dans un fichier
    • empty - Détermine si une variable est vide
    • EmptyIterator::current - La méthode EmptyIterator::current
    • EmptyIterator::key - The key() method
    • EmptyIterator::next - La méthode EmptyIterator::next
    • EmptyIterator::rewind - La méthode EmptyIterator::rewind
    • EmptyIterator::valid - La méthode EmptyIterator::valid
    • enchant_broker_describe - Énumère les fournisseurs Enchant
    • enchant_broker_dict_exists - Vérifie si un dictionnaire existe
    • enchant_broker_free - Libère la ressource de sponsor ainsi que ses dictionnaires
    • enchant_broker_free_dict - Libère une ressource de dictionnaire
    • enchant_broker_get_dict_path - Get the directory path for a given backend
    • enchant_broker_get_error - Retourne la dernière erreur d'un sponsor
    • enchant_broker_init - Crée un nouvel objet sponsor
    • enchant_broker_list_dicts - Retourne une liste de tous les dictionnaires disponibles
    • enchant_broker_request_dict - Crée un nouveau dictionnaire
    • enchant_broker_request_pwl_dict - Crée un dictionnaire en utilisant un fichier PWL
    • enchant_broker_set_dict_path - Set the directory path for a given backend
    • enchant_broker_set_ordering - Déclare une préférence pour un dictionnaire d'une langue
    • enchant_dict_add_to_personal - Ajoute un mot à la liste des mots personnelle
    • enchant_dict_add_to_session - Ajoute un mot à la session courante
    • enchant_dict_check - Vérifie si un mot est correctement orthographié
    • enchant_dict_describe - Décrit un dictionnaire
    • enchant_dict_get_error - Retourne la dernière erreur de la session courante
    • enchant_dict_is_in_session - Vérifie si un mot existe dans une session de vérification
    • enchant_dict_quick_check - Vérifie si le mot est correctement orthographié et fournit des suggestions
    • enchant_dict_store_replacement - Ajoute une orthographe pour un mot
    • enchant_dict_suggest - Retourne une liste de valeurs si aucunes des conditions ne sont réunies
    • end - Positionne le pointeur de tableau en fin de tableau
    • ereg - Recherche par expression rationnelle standard
    • eregi - Recherche par expression rationnelle insensible à la casse
    • eregi_replace - Remplacement par expression rationnelle insensible à la casse
    • ereg_replace - >Remplacement par expression rationnelle
    • ErrorException::getSeverity - Récupère la sévérité de l'exception
    • ErrorException::__construct - Construit l'exception
    • error_clear_last - Clear the most recent error
    • error_get_last - Récupère la dernière erreur survenue
    • error_log - Envoi un message d'erreur vers le gestionnaire d'erreurs défini
    • error_reporting - Fixe le niveau de rapport d'erreurs PHP
    • escapeshellarg - Protège une chaîne de caractères pour utilisation en ligne de commande
    • escapeshellcmd - Protège les caractères spéciaux du Shell
    • Ev::backend - Retourne un entier décrivant le backend utilisé par libev
    • Ev::depth - Retourne la profondeur de récursion
    • Ev::embeddableBackends - Retourne le jeu de backends qui sont encapsulés dans les autres boucles d'événements
    • Ev::feedSignal - Simule la réception d'un signal
    • Ev::feedSignalEvent - Simule un événement de signal dans la boucle par défaut
    • Ev::iteration - Retourne le nombre de fois que la boucle d'événement par défaut a été sollicitée pour un nouvel événement
    • Ev::now - Retourne le temps de démarrage de la dernière itération de la boucle d'événement par défaut
    • Ev::nowUpdate - Etablit le temps courant en demandant au kernel ; met à jour le temps retourné par Ev::now pendant l'exécution
    • Ev::recommendedBackends - Retourne un masque d'octets de backends recommandés pour la plateforme courante
    • Ev::resume - Reprend la boucle d'événement par défaut précédemment stoppée
    • Ev::run - Commence la vérification des événements et appelle les fonctions de rappels pour la boucle par défaut
    • Ev::sleep - Bloque le processus pendant un nombre de secondes fourni
    • Ev::stop - Arrête la boucle d'événements par défaut
    • Ev::supportedBackends - Retourne le jeu de backends supportés par la configuration courant de libev
    • Ev::suspend - Suspend la boucle par défaut d'événements
    • Ev::time - Retourne le temps courant depuis l'époque Unix
    • Ev::verify - Effectue des vérifications internes de consistence (pour le débogage)
    • eval - Exécute une chaîne comme un script PHP
    • EvCheck::createStopped - Crée une instance d'un observateur stoppé EvCheck
    • EvCheck::__construct - Construit l'objet d'observation EvCheck
    • EvChild::createStopped - Crée une instance de l'observateur stoppé EvCheck
    • EvChild::set - Configure l'observateur
    • EvChild::__construct - Construit l'objet d'observation EvChild
    • EvEmbed::createStopped - Crée un objet EvEmbed watcher stoppé
    • EvEmbed::set - Configure le watcher
    • EvEmbed::sweep - Balaye, une seule fois, et de façon non bloquante la boucle interne
    • EvEmbed::__construct - Construit un objet EvEmbed
    • Event::add - Bascule un évènement en attente
    • Event::addSignal - Alias de la méthode Event::add
    • Event::addTimer - Alias de Event::add
    • Event::del - Supprime un événement de la liste des événements surveillés
    • Event::delSignal - Alias de Event::del
    • Event::delTimer - Alias de Event::del
    • Event::free - Supprime une événement de la liste des événements surveillés et libère les ressources associées
    • Event::getSupportedMethods - Retourne un tableau contenant les noms des méthodes supportées par cette version de Libevent
    • Event::pending - Détecte si l'événement est en attente ou programmé
    • Event::set - Re-configure l'événement
    • Event::setPriority - Défini la priorité de l'événement
    • Event::setTimer - Re-configure un événement timer
    • Event::signal - Construit un objet d'événement signal
    • Event::timer - Construit un objet d'événement timer
    • Event::__construct - Construit un objet Event
    • EventBase::dispatch - Distribut les événements en attente
    • EventBase::exit - Stoppe la distribution des événements
    • EventBase::free - Libère les ressources allouées pour l'événement de base
    • EventBase::getFeatures - Retourne un masque des fonctionalités supportées
    • EventBase::getMethod - Retourne la méthode d'événement utilisée
    • EventBase::getTimeOfDayCached - Retourne le temps de l'événement courant
    • EventBase::gotExit - Vérifie s'il a été demandé à la boucle d'événements de sortir
    • EventBase::gotStop - Vérifie s'il a été demandé à la boucle d'événements de s'arrêter
    • EventBase::loop - Distribue les événements en attente
    • EventBase::priorityInit - Défini le nombre de propriétés par événement de base
    • EventBase::reInit - Re-initialise l'événement de base (après un fork)
    • EventBase::stop - Demande à event_base de stopper la distribution d'événements
    • EventBase::__construct - Construit un objet EventBase
    • EventBuffer::add - Ajoute des données à la fin du tampon d'événement
    • EventBuffer::addBuffer - Déplace toutes les données du tampon fourni dans l'instance courante EventBuffer
    • EventBuffer::appendFrom - Déplace le nombre d'octets fourni depuis un tampon source vers la fin du tampon courant
    • EventBuffer::copyout - Copie le nombre d'octets spécifié depuis le début du tampon
    • EventBuffer::drain - Supprime un nombre spécifié d'octets depuis le début du tampon sans copier les données
    • EventBuffer::enableLocking - Description
    • EventBuffer::expand - Réserve de l'espace dans le tampon
    • EventBuffer::freeze - Permet d'empécher les appels qui tentent de modifier un tampon d'événements de réussir
    • EventBuffer::lock - Acquière un verrou sur le buffer
    • EventBuffer::prepend - Ajoute des données au début du buffer
    • EventBuffer::prependBuffer - Déplace toutes les données depuis le buffer source vers le début du buffer courant
    • EventBuffer::pullup - Linéarise les données du buffer et retourne le contenu du buffer sous la forme d'une chaîne
    • EventBuffer::read - Lit les données d'un evbuffer, et vide les octets lus
    • EventBuffer::readFrom - Lit des données depuis un fichier et les place à la fin du tampon
    • EventBuffer::readLine - Extrait une ligne depuis le début du tampon
    • EventBuffer::search - Recherche dans le tampon une occurrence d'une chaîne
    • EventBuffer::searchEol - Cherche dans le tampon une occurrence de fin de ligne
    • EventBuffer::substr - Soustrait une portion des données du tampon
    • EventBuffer::unfreeze - Ré-active les appels qui permettent de modifier un buffer d'événements
    • EventBuffer::unlock - Libère un verrou acquis avec EventBuffer::lock
    • EventBuffer::write - Ecrit le contenu du buffer dans un fichier ou dans un socket
    • EventBuffer::__construct - Construit un objet EventBuffer
    • EventBufferEvent::close - Ferme le descripteur de fichier associé avec le buffer d'événements courant
    • EventBufferEvent::connect - Connecte le descripteur de fichier du tampon d'événement à l'adresse fournie, ou au socket UNIX
    • EventBufferEvent::connectHost - Connexion à un hôte
    • EventBufferEvent::createPair - Crée deux événements de tampon connectés l'un à l'autre
    • EventBufferEvent::disable - Désactive les événements de lecture, d'écriture ou des deux sur un événement de tampon
    • EventBufferEvent::enable - Active les événements de lecture, d'écriture, ou des deux, sur un événement de tampon
    • EventBufferEvent::free - Libère un événement de tampon
    • EventBufferEvent::getDnsErrorString - Retourne une chaîne décrivant la dernière erreur DNS
    • EventBufferEvent::getEnabled - Retourne un masque d'événements actuellement actifs sur le tampon d'événements
    • EventBufferEvent::getInput - Retourne le tampon d'entrée associé avec le tampon d'événements courant
    • EventBufferEvent::getOutput - Retourne le tampon de sortie associé avec le tampon d'événement courant
    • EventBufferEvent::read - Lit les données du tampon
    • EventBufferEvent::readBuffer - Vide le contenu entier du tampon d'entrée et le place dans le tampon
    • EventBufferEvent::setCallbacks - Assigne les fonctions de rappel pour la lecture, l'écriture, et les statuts d'événements
    • EventBufferEvent::setPriority - Assigne une priorité pour un tampon d'événements
    • EventBufferEvent::setTimeouts - Défini le mode lecture et écriture pour le délai d'attente maximal d'un tampon d'événement
    • EventBufferEvent::setWatermark - Active la lecture, et/ou l'écriture des filigranes
    • EventBufferEvent::sslError - Retourne l'erreur OpenSSL la plus récente rapportée par le tampon d'événement
    • EventBufferEvent::sslFilter - Crée un nouveau tampon d'événement SSL, dont les données seront envoyées via un autre tampon d'événement
    • EventBufferEvent::sslGetCipherInfo - Retourne une description textuelle d'un cipher
    • EventBufferEvent::sslGetCipherName - Retourne le nom du cipher courant pour la connexion SSL
    • EventBufferEvent::sslGetCipherVersion - Retourne la version du cipher utilisé pour la connexion SSL courante
    • EventBufferEvent::sslGetProtocol - Retourne le nom du protocole utilisé pour la connexion SSL courante
    • EventBufferEvent::sslRenegotiate - Demande au tampon d'événement de commencer une renégociation SSL
    • EventBufferEvent::sslSocket - Crée un nouveau tampon SSL dont ces données seront envoyées via un socket SSL
    • EventBufferEvent::write - Ajoute des données dans un tampon d'événement de sortie
    • EventBufferEvent::writeBuffer - Ajoute le contenu entier d'un tampon dans un tampon d'événement de sortie
    • EventBufferEvent::__construct - Construit un objet EventBufferEvent
    • EventConfig::avoidMethod - Demande à libevent d'ignorer une méthode d'événement spécifique
    • EventConfig::requireFeatures - Entre dans une fonctionalité de méthode d'événement demandée par l'application
    • EventConfig::setMaxDispatchInterval - Evite l'inversion des priorités
    • EventConfig::__construct - Construit un objet EventConfig
    • EventDnsBase::addNameserverIp - Ajoute un serveur de noms à la base DNS
    • EventDnsBase::addSearch - Ajoute un domaine à la liste des domaines utilisés pour la recherche
    • EventDnsBase::clearSearch - Supprime tous les suffixes courants de recherche
    • EventDnsBase::countNameservers - Récupère le nombre de serveurs de noms configurés
    • EventDnsBase::loadHosts - Charge un fichier hosts (au même format que /etc/hosts)
    • EventDnsBase::parseResolvConf - Analyse le fichier resolv.conf
    • EventDnsBase::setOption - Définit la valeur d'une option de configuration
    • EventDnsBase::setSearchNdots - Définit le paramètre 'ndots' pour les recherches
    • EventDnsBase::__construct - Construit un objet EventDnsBase
    • EventHttp::accept - Autorise un serveur HTTP à accepter les connexions sur le socket ou la ressource spécifiée
    • EventHttp::addServerAlias - Ajoute un alias du serveur pour l'objet serveur HTTP
    • EventHttp::bind - Lie un serveur HTTP sur une adresse et un port spécifiés
    • EventHttp::removeServerAlias - Supprime un alias sur le serveur
    • EventHttp::setAllowedMethods - Définit les méthodes HTTP supportées et acceptées dans les requêtes sur ce serveur, et passées aux fonctions de rappel utilisateurs
    • EventHttp::setCallback - Définit une fonction de rapppel pour une URI spécifique
    • EventHttp::setDefaultCallback - Définit la fonction de rappel par défaut pour gérer les requêtes qui ne sont pas attrappées par des fonctions de rappel spécifiques
    • EventHttp::setMaxBodySize - Définit la taille maximale du corps de la demande
    • EventHttp::setMaxHeadersSize - Définit la taille maximale des en-têtes HTTP
    • EventHttp::setTimeout - Définit le délai d'attente maximal pour une requête HTTP
    • EventHttp::__construct - Construit un objet EventHttp (le serveur HTTP)
    • EventHttpConnection::getBase - Retourne la base d'événement associée avec la connexion
    • EventHttpConnection::getPeer - Récupère l'adresse et le port distant associés avec la connexion
    • EventHttpConnection::makeRequest - Effectue une requête HTTP sur la connexion spécifiée
    • EventHttpConnection::setCloseCallback - Défini une fonction de rappel lors de la fermeture de la connexion
    • EventHttpConnection::setLocalAddress - Définit l'adresse IP depuis laquelle les connexions HTTP sont effectuées
    • EventHttpConnection::setLocalPort - Définit le port local depuis lequel les connexions sont effectuées
    • EventHttpConnection::setMaxBodySize - Définit la taille maximale du corps pour la connexion
    • EventHttpConnection::setMaxHeadersSize - Définit la taille maximale des en-têtes
    • EventHttpConnection::setRetries - Définit le nombre de tentatives pour la connexion
    • EventHttpConnection::setTimeout - Définit le délai d'attente maximal pour la connexion
    • EventHttpConnection::__construct - Construit un objet EventHttpConnection
    • EventHttpRequest::addHeader - Ajoute un en-tête HTTP aux en-têtes de la requête
    • EventHttpRequest::cancel - Annule une requête HTTP en attente
    • EventHttpRequest::clearHeaders - Supprime tous les en-têtes depuis la liste des en-têtes de la requête
    • EventHttpRequest::closeConnection - Ferme les connexions HTTP associées
    • EventHttpRequest::findHeader - Cherche la valeur d'un en-tête
    • EventHttpRequest::free - Libère l'objet et supprime les événements associés
    • EventHttpRequest::getBufferEvent - Retourne l'objet EventBufferEvent
    • EventHttpRequest::getCommand - Retourne la commande de la requête (méthode)
    • EventHttpRequest::getConnection - Retourne un objet EventHttpConnection
    • EventHttpRequest::getHost - Retourne l'hôte demandé
    • EventHttpRequest::getInputBuffer - Retourne le buffer d'entrée
    • EventHttpRequest::getInputHeaders - Retourne le tableau associatif contenant les en-têtes d'entrée
    • EventHttpRequest::getOutputBuffer - Retourne le buffer de sortie de la requête
    • EventHttpRequest::getOutputHeaders - Retourne un tableau associatif contenant les en-têtes de sortie
    • EventHttpRequest::getResponseCode - Retourne le code de la réponse
    • EventHttpRequest::getUri - Retourne l'URI de la requête
    • EventHttpRequest::removeHeader - Supprime un en-tête HTTP depuis les en-têtes de la requête
    • EventHttpRequest::sendError - Envoi un message d'erreur HTML au client
    • EventHttpRequest::sendReply - Envoi une réponse HTML au client
    • EventHttpRequest::sendReplyChunk - Envoi un autre bloc de données comme partie d'un bloc de réponse entrant
    • EventHttpRequest::sendReplyEnd - Complète un bloc de réponse, en libérant la requête
    • EventHttpRequest::sendReplyStart - Initialise un bloc de réponse
    • EventHttpRequest::__construct - Construit un objet EventHttpRequest
    • EventListener::disable - Désactive un objet d'écoute d'événement de connexion
    • EventListener::enable - Active un objet d'écoute d'événement de connexion
    • EventListener::getBase - Retourne la base d'événement associée avec l'écouteur d'événements
    • EventListener::getSocketName - Récupère l'adresse courant pour laquelle le socket d'écoute est lié
    • EventListener::setCallback - Le but de setCallback
    • EventListener::setErrorCallback - Définit la fonction de rappel sur l'évènement d'erreur
    • EventListener::__construct - Crée un nouvel écouteur de connexion associé avec la base d'événement
    • EventSslContext::__construct - Construit un contexte OpenSSL à utiliser avec les classes Event
    • EventUtil::getLastSocketErrno - Retourne le numéro d'erreur le plus récemment survenu sur le socket
    • EventUtil::getLastSocketError - Retourne l'erreur la plus récemment survenue sur le socket
    • EventUtil::getSocketFd - Retourne le descripteur de fichier d'un socket ou d'un flux
    • EventUtil::getSocketName - Récupère l'adresse courant liée au socket
    • EventUtil::setSocketOption - Définit les options du socket
    • EventUtil::sslRandPoll - Génère l'entropie via OpenSSL RAND_poll()
    • EventUtil::__construct - Le constructeur
    • event_base_free - Détruit une base d'évènements
    • event_base_loop - Traitement des évènements
    • event_base_loopbreak - Abandonne une boucle d'évènement
    • event_base_loopexit - Sort d'une boucle après un temps
    • event_base_new - Créer et initialise une nouvelle base d'évènements
    • event_base_priority_init - Assigne le nombre de niveaux de priorités d'évènement
    • event_base_reinit - Réinitialise la base de l'événement après un fork
    • event_base_set - Associe une base avec un évènement
    • event_buffer_base_set - Associe un évènement bufferisé avec une base
    • event_buffer_disable - Désactive un évènement bufferisé
    • event_buffer_enable - Active un évènement bufferisé
    • event_buffer_fd_set - Change un descripteur de fichier pour un évènement bufferisé
    • event_buffer_free - Détruit un évènement bufferisé
    • event_buffer_new - Créer un nouvel évènement bufferisé
    • event_buffer_priority_set - Assigne une priorité à un évènement bufferisé
    • event_buffer_read - Lit des données depuis un évènement bufferisé
    • event_buffer_set_callback - Affecte ou réinitialise les rappels pour un évènement bufferisé
    • event_buffer_timeout_set - Affecte les délais de lecture et écriture pour un évènement bufferisé
    • event_buffer_watermark_set - Affecte la marque pour les évènements en lecture et écriture
    • event_buffer_write - Ecrit des données vers un évènement bufferisé
    • event_new - Crée un nouvel évènement
    • event_priority_set - Assigne une priorité à un événement
    • event_timer_add - Alias de event_add
    • event_timer_del - Alias de event_del
    • event_timer_new - Alias de event_new
    • event_timer_set - Prépare un événement timer
    • EvFork::createStopped - Crée un instance arrêté de la classe de l'observateur EvFork
    • EvFork::__construct - Construit l'objet observateur EvFork
    • EvIdle::createStopped - Crée une instance d'un objet observateur EvIdle
    • EvIdle::__construct - Construit l'objet observateur EvIdle
    • EvIo::createStopped - Crée un objet d'observateur EvIo arrêté
    • EvIo::set - Configure l'observateur
    • EvIo::__construct - Construit un nouvel objet EvIo
    • EvLoop::backend - Retourne un entier décrivant le backend utilisé par libev
    • EvLoop::check - Crée un objet EvCheck associé avec l'instance de la boucle d'événements courante
    • EvLoop::child - Crée un objet EvChild associé avec la boucle d'événements courante
    • EvLoop::defaultLoop - Retourne ou crée la boucle d'événements par défaut
    • EvLoop::embed - Crée une instance de l'observateur EvEmbed associé avec l'objet de l'EvLoop courant
    • EvLoop::fork - Crée un objet EvFork watcher associé avec l'instance de la boucle de l'événement courant
    • EvLoop::idle - Crée un objet EvIdle watcher associé avec l'instance de la boucle de l'événement courant
    • EvLoop::invokePending - Invoque tous les watchers en attente pendant que leurs statuts de file d'attente ne soient réinitialisés
    • EvLoop::io - Crée un objet EvIo watcher associé avec l'instance de la boucle de l'événement courant
    • EvLoop::loopFork - Doit être appelé après un fork
    • EvLoop::now - Retourne le "event loop time" courant
    • EvLoop::nowUpdate - Etablit le temps courant en demandant au kernel, et mise à jour du temps retourné par EvLoop::now pendant l'exécution
    • EvLoop::periodic - Crée un objet EvPeriodic watcher associé avec l'instance de la boucle d'événement courant
    • EvLoop::prepare - Crée un objet EvPrepare watcher associé avec l'instance de la boucle d'événement courant
    • EvLoop::resume - Reprend une boucle d'évément précédemment stoppée
    • EvLoop::run - Commence à vérifier les événements et à appeler les fonctions de rappel de la boucle
    • EvLoop::signal - Crée un objet EvSignal watcher associé avec l'instance de la boucle d'événement courant
    • EvLoop::stat - Crée un objet EvStat watcher associé avec l'instance de la boucle d'événement courant
    • EvLoop::stop - Stoppe la boucle d'événement
    • EvLoop::suspend - Suspend la boucle
    • EvLoop::timer - Crée un objet EvTimer watcher associé avec l'instance de la boucle d'événement courant
    • EvLoop::verify - Effectue des vérifications de consistence interne (pour le débogage)
    • EvLoop::__construct - Construit un objet de boucle d'événements
    • EvPeriodic::again - Arrête et re-démarre le watcher périodique
    • EvPeriodic::at - Retourne le temps absolu auquel ce watcher sera appelé la prochaine fois
    • EvPeriodic::createStopped - Crée un watcher EvPeriodic stoppé
    • EvPeriodic::set - Configure le watcher
    • EvPeriodic::__construct - Construit un objet watcher EvPeriodic
    • EvPrepare::createStopped - Crée une instance stoppée du watcher EvPrepare
    • EvPrepare::__construct - Construit un objet de watcher EvPrepare
    • EvSignal::createStopped - Crée un objet watcher EvSignal stoppé
    • EvSignal::set - Configure le watcher
    • EvSignal::__construct - Construit un objet watcher EvPeriodic
    • EvStat::attr - Retourne la valeur la plus récente détectée par Ev
    • EvStat::createStopped - Crée un objet EvStat watcher stoppé
    • EvStat::prev - Retourne le jeu précédent retourné par EvStat::attr
    • EvStat::set - Configure le watcher
    • EvStat::stat - Initialise l'appel à stat
    • EvStat::__construct - Construit un objet EvStat watcher
    • EvTimer::again - Re-démarre le watcher Timer
    • EvTimer::createStopped - Crée un objet EvTimer watcher stoppé
    • EvTimer::set - Configure le watcher
    • EvTimer::__construct - Construit un objet EvTimer watcher
    • EvWatcher::clear - Efface le statut d'attente de l'observateur
    • EvWatcher::feed - Alimente les revents fournis dans la boucle d'événements
    • EvWatcher::getLoop - Retourne la boucle responsable de l'observateur
    • EvWatcher::invoke - Invoque la fonction de rappel de l'observateur avec le masque de bits des événements reçus fournis
    • EvWatcher::keepalive - Garde la boucle active
    • EvWatcher::setCallback - Définit une nouvelle fonction de rappel pour le watcher
    • EvWatcher::start - Démarre le Watcher
    • EvWatcher::stop - Arrête le Watcher
    • EvWatcher::__construct - Constructeur d'objet observateur
    • Exception::getCode - Récupère le code de l'exception
    • Exception::getFile - Récupère le fichier dans lequel l'exception est survenue
    • Exception::getLine - Récupère la ligne dans laquelle l'exception est survenue
    • Exception::getMessage - Récupère le message de l'exception
    • Exception::getPrevious - Retourne l'exception précédente
    • Exception::getTrace - Récupère la trace de la pile
    • Exception::getTraceAsString - Récupère la trace de la pile en tant que chaîne
    • Exception::__clone - Clone l'exception
    • Exception::__construct - Construit l'exception
    • Exception::__toString - Représente l'exception sous la forme d'une chaîne
    • exec - Exécute un programme externe
    • Exemples PDO_4D - Exemples PDO_4D
    • exif_imagetype - Détermine le type d'une image
    • exif_read_data - Lit les en-têtes EXIF dans les images JPEG ou TIFF
    • exif_tagname - Lit le nom d'en-tête EXIF d'un index
    • exif_thumbnail - Récupère la miniature d'une image TIFF ou JPEG
    • exit - Affiche un message et termine le script courant
    • exp - Calcul l'exponentielle de e
    • expect:// - Flux d'interactions de processus
    • expect_expectl - Attend jusqu'à ce que la sortie d'un processus corresponde à un des motifs, un période de temps spécifique est passée ou un EOF est vu
    • expect_popen - Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus
    • explode - Coupe une chaîne en segments
    • expm1 - Calcule précisément exponentiel moins un
    • extension_loaded - Détermine si une extension est chargée ou non
    • extract - Importe les variables dans la table des symboles
    • ezmlm_hash - Calcule le hachage demandé par EZMLM
  • f
    • fam_cancel_monitor - Termine le monitoring
    • fam_close - Ferme la connexion FAM
    • fam_monitor_collection - Surveille les changements d'une collection de fichiers dans un dossier
    • fam_monitor_directory - Surveiller les changements dans un dossier
    • fam_monitor_file - Surveille un fichier régulier pour les changements
    • fam_next_event - Retourne le prochain événement FAM en attente
    • fam_open - Ouvre une connexion vers le démon FAM
    • fam_pending - Vérifie si des événements FAM sont disponibles
    • fam_resume_monitor - Reprend un monitoring suspendu
    • fam_suspend_monitor - Suspend temporairement le monitoring
    • FANNConnection::getFromNeuron - Retourne la position du neurone de départ
    • FANNConnection::getToNeuron - Retourne la position du neurone de fin
    • FANNConnection::getWeight - Retourne le poids de la connexion
    • FANNConnection::setWeight - Défini le poids de la connexion
    • FANNConnection::__construct - Le constructeur de connexion
    • fann_cascadetrain_on_data - Trains on an entire dataset, for a period of time using the Cascade2 training algorithm
    • fann_cascadetrain_on_file - Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm.
    • fann_clear_scaling_params - Clears scaling parameters
    • fann_copy - Crée une copie d'une structure fann
    • fann_create_from_file - Consruit une propagation de retour du réseau neuronal depuis un fichier de configuration
    • fann_create_shortcut - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_shortcut_array - Crée une propagation de retour standart de réseau neuronal qui n'est pas totalement connecté, et a des connexions raccourcies
    • fann_create_sparse - Creates a standard backpropagation neural network, which is not fully connected
    • fann_create_sparse_array - Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
    • fann_create_standard - Creates a standard fully connected backpropagation neural network
    • fann_create_standard_array - Creates a standard fully connected backpropagation neural network using an array of layer sizes
    • fann_create_train - Crée une structure vide de données d'entrainement
    • fann_create_train_from_callback - Crée la structure de données d'entrainement depuis une fonction fournie par l'utilisateur
    • fann_descale_input - Scale data in input vector after get it from ann based on previously calculated parameters
    • fann_descale_output - Scale data in output vector after get it from ann based on previously calculated parameters
    • fann_descale_train - Descale input and output data based on previously calculated parameters
    • fann_destroy - Détruit le réseau en entier, et libère proprement toute la mémoire associée
    • fann_destroy_train - Détruit les données d'entrainement
    • fann_duplicate_train_data - Retourne une copie exact des données d'entrainement fann
    • fann_get_activation_function - Returns the activation function
    • fann_get_activation_steepness - Returns the activation steepness for supplied neuron and layer number
    • fann_get_bias_array - Get the number of bias in each layer in the network
    • fann_get_bit_fail - The number of fail bits
    • fann_get_bit_fail_limit - Returns the bit fail limit used during training
    • fann_get_cascade_activation_functions - Returns the cascade activation functions
    • fann_get_cascade_activation_functions_count - Returns the number of cascade activation functions
    • fann_get_cascade_activation_steepnesses - Returns the cascade activation steepnesses
    • fann_get_cascade_activation_steepnesses_count - The number of activation steepnesses
    • fann_get_cascade_candidate_change_fraction - Returns the cascade candidate change fraction
    • fann_get_cascade_candidate_limit - Return the candidate limit
    • fann_get_cascade_candidate_stagnation_epochs - Returns the number of cascade candidate stagnation epochs
    • fann_get_cascade_max_cand_epochs - Returns the maximum candidate epochs
    • fann_get_cascade_max_out_epochs - Returns the maximum out epochs
    • fann_get_cascade_min_cand_epochs - Returns the minimum candidate epochs
    • fann_get_cascade_min_out_epochs - Returns the minimum out epochs
    • fann_get_cascade_num_candidates - Returns the number of candidates used during training
    • fann_get_cascade_num_candidate_groups - Returns the number of candidate groups
    • fann_get_cascade_output_change_fraction - Returns the cascade output change fraction
    • fann_get_cascade_output_stagnation_epochs - Returns the number of cascade output stagnation epochs
    • fann_get_cascade_weight_multiplier - Returns the weight multiplier
    • fann_get_connection_array - Récupère les connexions dans le réseau
    • fann_get_connection_rate - Récupère le taux de connexion lorsque le réseau a été créé
    • fann_get_errno - Retourne le numéro de la dernière erreur
    • fann_get_errstr - Retourne le dernier message d'erreur
    • fann_get_layer_array - Get the number of neurons in each layer in the network
    • fann_get_learning_momentum - Returns the learning momentum
    • fann_get_learning_rate - Returns the learning rate
    • fann_get_MSE - Reads the mean square error from the network
    • fann_get_network_type - Get the type of neural network it was created as
    • fann_get_num_input - Récupère le nombre de neurones entrants
    • fann_get_num_layers - Récupère le nombre de couches du réseau neuronal
    • fann_get_num_output - Récupère le nombre de neurones sortants
    • fann_get_quickprop_decay - Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
    • fann_get_quickprop_mu - Retourne le facteur mu
    • fann_get_rprop_decrease_factor - Retourne le facteur d'accroissement utilisé pendant l'entrainement RPROP
    • fann_get_rprop_delta_max - Retourne la taille maximale de l'étape
    • fann_get_rprop_delta_min - Retourne la taille minimale de l'étape
    • fann_get_rprop_delta_zero - Retourne la taille initiale de l'étape
    • fann_get_rprop_increase_factor - Retourne le facteur croissant utilisé pendant l'entrainement RPROP
    • fann_get_sarprop_step_error_shift - Retourne le décalage de l'erreur lors de l'étape sarprop
    • fann_get_sarprop_step_error_threshold_factor - Retourne le facteur de seuil d'erreur lors de l'étape sarprop
    • fann_get_sarprop_temperature - Retourne la température sarprop
    • fann_get_sarprop_weight_decay_shift - Retourne le changement décroissant du poids sarprop
    • fann_get_total_connections - Récupère le nombre total de connexions dans la totalité du réseau
    • fann_get_total_neurons - Récupère le nombre total de neurones dans la totalité du réseau
    • fann_get_training_algorithm - Retourne l'algorithme d'entrainement
    • fann_get_train_error_function - Retourne la fonction d'erreur utilisée pendant l'entrainement
    • fann_get_train_stop_function - Retourne la fonction d'arrêt utilisée pendant l'entrainement
    • fann_init_weights - Initialise les poids en utilisant les algorythme Widrow et Nguyen
    • fann_length_train_data - Retourne le nombre de masques d'entrainement dans les données d'entrainement
    • fann_merge_train_data - Fusionne les données d'entrainement
    • fann_num_input_train_data - Retourne le nombre d'entrées dans chaque masque d'entrainement dans les données d'entrainement
    • fann_num_output_train_data - Retourne le nombre de sortie dans chaque masque d'entrainement dans les données d'entrainement
    • fann_print_error - Affiche le message d'erreur
    • fann_randomize_weights - Donne à chaque connexion un poids aléatoire compris entre min_weight et max_weight
    • fann_read_train_from_file - Lit un fichier contenant les données d'entrainement
    • fann_reset_errno - Réinitialise le numéro de la dernière erreur
    • fann_reset_errstr - Réinitialise le message de la dernière erreur
    • fann_reset_MSE - Réinitialise l'erreur quadratique moyenne du réseau
    • fann_run - Exécute les entrées via le réseau neuronal
    • fann_save - Sauvegarde le réseau complet dans un fichier de configuration
    • fann_save_train - Sauvegarde la structure d'entrainement dans un fichier
    • fann_scale_input - Met à l'échelle les données dans le vecteur d'entrée avant de les donner à ANN, en se basant sur les paramètres précédemment calculés
    • fann_scale_input_train_data - Met à l'échelle les entrées dans les données d'entrainement à l'intervalle spécifié
    • fann_scale_output - Met à l'échelle les données dans le vecteur de sortie avant de les passer à ANN, en se basant sur les paramètres précédemment calculés
    • fann_scale_output_train_data - Met à l'échelle les sorties dans les données d'entrainement à l'intervalle spécifié
    • fann_scale_train - Met à l'échelle les données d'entrée et de sortie en se basant sur les paramètres précédemment calculés
    • fann_scale_train_data - Met à l'échelle les entrées et les sorties dans les données d'entrainement à l'intervalle spécifié
    • fann_set_activation_function - Défini la fonction d'activation pour le neurone et la couche spécifiés
    • fann_set_activation_function_hidden - Défini la fonction d'activation pour toutes les couches cachées
    • fann_set_activation_function_layer - Défini la fonction d'activation pour tous les neurones de la couche spécifiée
    • fann_set_activation_function_output - Défini la fonction d'activation pour la couche d'entrée
    • fann_set_activation_steepness - Défini la pente d'activation pour le neurone et le numéro de couche donnés
    • fann_set_activation_steepness_hidden - Défini la raideur de la pente d'activation pour tous les neurones des couches cachées
    • fann_set_activation_steepness_layer - Défini la pente d'activation pour tous les neurones dans la couche dont le numéro est fourni
    • fann_set_activation_steepness_output - Défini la raideur de la pente d'activation dans la couche de sortie
    • fann_set_bit_fail_limit - Défini le bit sûr limite, utilisé pendant l'entrainement
    • fann_set_callback - Défini la fonction de rappel à utiliser pendant l'entrainement
    • fann_set_cascade_activation_functions - Défini le tableau des fonctions d'activation candidate en cascade
    • fann_set_cascade_activation_steepnesses - Défini le tableaux des raideurs d'activation candidate en cascade
    • fann_set_cascade_candidate_change_fraction - Défini la fraction de modification candidate en cascade
    • fann_set_cascade_candidate_limit - Défini la limite candidate
    • fann_set_cascade_candidate_stagnation_epochs - Défini le nombre d'époques de stagnation candidates en cascade
    • fann_set_cascade_max_cand_epochs - Défini l'époque maximale candidate
    • fann_set_cascade_max_out_epochs - Défini l'époque maximale de sortie
    • fann_set_cascade_min_cand_epochs - Défini l'époque minimale candidate
    • fann_set_cascade_min_out_epochs - Défini l'époque minimale de sortie
    • fann_set_cascade_num_candidate_groups - Défini le nombre de groupes candidats
    • fann_set_cascade_output_change_fraction - Défini la fraction de modification de sortie en cascade
    • fann_set_cascade_output_stagnation_epochs - Défini le nombre d'époques de stagnation en cascade de sortie
    • fann_set_cascade_weight_multiplier - Défini le multiplicateur de poids
    • fann_set_error_log - Défini l'endroit où les erreurs seront historisées
    • fann_set_input_scaling_params - Calcule les paramètres d'échelle d'entrée pour une utilisation future, en se basant sur les données d'entrainement
    • fann_set_learning_momentum - Défini la dynamique d'apprentissage
    • fann_set_learning_rate - Défini le taux d'apprentissage
    • fann_set_output_scaling_params - Calcule les paramètres d'échelle de sortie pour une utilisation future, en se basant sur les données d'entrainement
    • fann_set_quickprop_decay - Défini le facteur décroissant quickprop
    • fann_set_quickprop_mu - Défini le facteur quickprop mu
    • fann_set_rprop_decrease_factor - Défini le facteur de diminution utilisé pendant l'entrainement RPROP
    • fann_set_rprop_delta_max - Défini la taille maximale de l'étape
    • fann_set_rprop_delta_min - Défini la taille minimale de l'étape
    • fann_set_rprop_delta_zero - Défini la taille de l'étape initiale
    • fann_set_rprop_increase_factor - Défini le facteur d'augmentation utilisé pendant l'entrainement RPROP
    • fann_set_sarprop_step_error_shift - Défini le changement de l'étape d'erreur sarprop
    • fann_set_sarprop_step_error_threshold_factor - Défini le facteur de seuil de l'étape d'erreur sarprop
    • fann_set_sarprop_temperature - Défini la températeur sarprop
    • fann_set_sarprop_weight_decay_shift - Défini le changement décroissant du poids de sarprop
    • fann_set_scaling_params - Calcule les paramètres d'échelles d'entrée et de sortie utilisés en se basant sur les données d'entrainement
    • fann_set_training_algorithm - Défini l'algorithme d'entrainement
    • fann_set_train_error_function - Défini la fonction d'erreur utilisée pendant l'entrainement
    • fann_set_train_stop_function - Défini la fonction d'arrêt à utiliser durant l'entrainement
    • fann_set_weight - Défini une connexion dans le réseau
    • fann_set_weight_array - Défini les connexions dans le réseau
    • fann_shuffle_train_data - Mélange les données d'entrainement, et rend aléaloire leurs ordres
    • fann_subset_train_data - Retourne une copie d'un sous-jeu de données d'entrainement
    • fann_test - Effectue un test avec un jeu d'entrées et un jeu de sorties désirées
    • fann_test_data - Effectue un test sur un jeu de données d'entrainement et calcule le MSE pour ces données
    • fann_train - Effectue un entrainement sur une itération avec un jeu d'entrées, et un jeu de sorties désirées
    • fann_train_epoch - Effectue un entrainement avec un jeu de données d'entrainement
    • fann_train_on_data - Effectue un entrainement sur un jeu de données complet pour une période de temps
    • fann_train_on_file - Effectue un entrainement sur un jeu complet de données, qui peut être lu depuis un fichier, pour une période de temps
    • fastcgi_finish_request - Affiche toutes les données de la réponse au client
    • fbsql_affected_rows - Lit le nombre de lignes affectées par la dernière requête
    • fbsql_autocommit - Active ou désactive la validation automatique
    • fbsql_blob_size - Retourne la taille d'un BLOB
    • fbsql_change_user - Change le nom d'utilisateur de la session active
    • fbsql_clob_size - Retourne la taille d'un CLOB
    • fbsql_close - Ferme la connexion FrontBase
    • fbsql_commit - Valide une transaction
    • fbsql_connect - Ouvre une connexion à un serveur FrontBase
    • fbsql_create_blob - Crée un BLOB
    • fbsql_create_clob - Crée un CLOB
    • fbsql_create_db - Crée une base de données
    • fbsql_database - Lit ou définit le nom de la base de données utilisée avec une connexion
    • fbsql_database_password - Modifie/lit le mot de passe dans une base FBSQL
    • fbsql_data_seek - Déplace le pointeur interne de résultat FBSQL
    • fbsql_db_query - Envoie une requête à la base FrontBase
    • fbsql_db_status - Lit le statut courant d'une base de données
    • fbsql_drop_db - Supprime une base de données FrontBase
    • fbsql_errno - Retourne le code d'erreur FrontBase
    • fbsql_error - Retourne le message d'erreur FrontBase
    • fbsql_fetch_array - Lit toute une ligne de résultat dans un tableau
    • fbsql_fetch_assoc - Lit toute une ligne de résultat dans un tableau associatif
    • fbsql_fetch_field - Lit des informations sur une colonne dans un résultat, et retourne un objet
    • fbsql_fetch_lengths - Lit la taille de chaque colonne d'un résultat
    • fbsql_fetch_object - Lit une ligne de résultat sous forme d'objet
    • fbsql_fetch_row - Lit une ligne de résultat sous forme de tableau numérique
    • fbsql_field_flags - Lit les options associées à une colonne de résultat
    • fbsql_field_len - Retourne la taille d'un champ
    • fbsql_field_name - Lit le nom d'un champ
    • fbsql_field_seek - Déplace le pointeur de résultat
    • fbsql_field_table - Lit le nom de la table d'origine d'un champ
    • fbsql_field_type - Lit le type d'une colonne
    • fbsql_free_result - Libère le résultat de la mémoire
    • fbsql_get_autostart_info - Description
    • fbsql_hostname - Lit ou définit le nom de l'hôte à utiliser avec une connexion
    • fbsql_insert_id - Lit le dernier identifiant généré par une requête INSERT
    • fbsql_list_dbs - Liste les bases de données FBSQL
    • fbsql_list_fields - Liste les champs d'une table FrontBase
    • fbsql_list_tables - Liste les tables dans une base de données FrontBase
    • fbsql_next_result - Déplace le pointeur interne vers le résultat suivant
    • fbsql_num_fields - Lit le nombre de champs dans un résultat
    • fbsql_num_rows - Lit le nombre de lignes dans un résultat
    • fbsql_password - Lit ou définit le mot de passe à utiliser avec une connexion
    • fbsql_pconnect - Ouvre une connexion persistante sur un serveur FrontBase
    • fbsql_query - Exécute une requête sur un serveur FrontBase
    • fbsql_read_blob - Lit un BLOB dans une base de données
    • fbsql_read_clob - Lit un CLOB dans une base de données
    • fbsql_result - Lit des données dans un résultat
    • fbsql_rollback - Annule une transaction FBSQL
    • fbsql_rows_fetched - Récupère le nombre de lignes affectées par la dernière requête
    • fbsql_select_db - Sélectionne une base de données FrontBase
    • fbsql_set_characterset - Modifie le jeu de caractères pour l'entrée / sortie
    • fbsql_set_lob_mode - Modifie le mode de lecture des LOB
    • fbsql_set_password - Change le mot de passe de l'utilisateur spécifié
    • fbsql_set_transaction - Configure le verrouillage et l'isolation de transactions
    • fbsql_start_db - Démarre une base de données FBSQL
    • fbsql_stop_db - Stoppe une base de données FBSQL
    • fbsql_tablename - Alias de fbsql_table_name
    • fbsql_table_name - Récupère le nom de la table d'un champ
    • fbsql_username - Lit ou définit le nom de login à utiliser avec une connexion
    • fbsql_warnings - Active ou désactive les alertes FrontBase
    • fclose - Ferme un fichier
    • fdf_add_doc_javascript - Ajoute du code javascript dans un document FDF
    • fdf_add_template - Ajoute un template dans le document FDF
    • fdf_close - Ferme un document FDF
    • fdf_create - Crée un nouveau document FDF
    • fdf_enum_values - Appelle une fonction utilisateur à chaque valeur FDF
    • fdf_errno - Retourne le code d'erreur de la dernière opération FDF
    • fdf_error - Retourne le message d'erreur FDF
    • fdf_get_ap - Lit l'apparence d'un champ
    • fdf_get_attachment - Extrait un fichier intégré dans un document FDF
    • fdf_get_encoding - Lit la valeur de la clé /Encoding
    • fdf_get_file - Lit la valeur de la clé /F
    • fdf_get_flags - Lit les attributs d'un champ FDF
    • fdf_get_opt - Lit une valeur dans un tableau de valeur d'un champ FDF
    • fdf_get_status - Lit la valeur de la clé /STATUS
    • fdf_get_value - Retourne la valeur d'un champ FDF
    • fdf_get_version - Lit le numéro de version de l'API FDF
    • fdf_header - Émet les en-têtes HTTP spécifiques à FDF
    • fdf_next_field_name - Lit le nom du champ FDF suivant
    • fdf_open - Ouvre un document FDF
    • fdf_open_string - Lit un document FDF à partir d'une chaîne de caractères
    • fdf_remove_item - Configure le cadre FDF de destination pour le formulaire
    • fdf_save - Sauvegarde un document FDF
    • fdf_save_string - Retourne un document FDF sous forme d'une chaîne de caractères
    • fdf_set_ap - Fixe l'apparence d'un champ FDF
    • fdf_set_encoding - Modifie l'encodage des caractères
    • fdf_set_file - Crée un document PDF pour y afficher des données FDF
    • fdf_set_flags - Modifie une option d'un champ
    • fdf_set_javascript_action - Modifie l'action javascript d'un champ
    • fdf_set_on_import_javascript - Ajoute du code Javascript à être exécuté lorsque Acrobat ouvre un FDF
    • fdf_set_opt - Modifie une option d'un champ
    • fdf_set_status - Fixe la valeur de la clé /STATUS
    • fdf_set_submit_form_action - Modifie l'action d'un formulaire
    • fdf_set_target_frame - Configure le cadre de destination pour l'affichage du formulaire
    • fdf_set_value - Modifie la valeur d'un champ FDF
    • fdf_set_version - Modifie le numéro de version du fichier FDF
    • feof - Teste la fin du fichier
    • fflush - Envoie tout le contenu généré dans un fichier
    • fgetc - Lit un caractère dans un fichier
    • fgetcsv - Obtient une ligne depuis un pointeur de fichier et l'analyse pour des champs CSV
    • fgets - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
    • fgetss - Renvoie la ligne courante du fichier et élimine les balises HTML
    • file - Lit le fichier et renvoie le résultat dans un tableau
    • file:// - Accès au système de fichiers local
    • fileatime - Renvoie la date à laquelle le fichier a été accédé pour la dernière fois
    • filectime - Renvoie la date de dernière modification de l'inode d'un fichier
    • filegroup - Lire le nom du groupe
    • fileinode - Lit le numéro d'inode du fichier
    • filemtime - Lit la date de dernière modification du fichier
    • fileowner - Lit l'identifiant du propriétaire d'un fichier
    • fileperms - Lit les droits d'un fichier
    • filepro - Lit et vérifie un fichier
    • filepro_fieldcount - Retourne le nombre de champs dans une base filePro
    • filepro_fieldname - Retourne le nom d'un champ filePro
    • filepro_fieldtype - Retourne le type d'un champ filePro
    • filepro_fieldwidth - Retourne la taille d'un champ filePro
    • filepro_retrieve - Retourne la valeur d'un champ filePro
    • filepro_rowcount - Retourne le nombre de lignes dans une base filePro
    • filesize - Lit la taille d'un fichier
    • FilesystemIterator::current - Lit le fichier courant
    • FilesystemIterator::getFlags - Lit les options activées
    • FilesystemIterator::key - Lit le nom du fichier
    • FilesystemIterator::next - Passe au fichier suivant
    • FilesystemIterator::rewind - Recommence à lire le dossier
    • FilesystemIterator::setFlags - Configure les options
    • FilesystemIterator::__construct - Construit un objet FilesystemIterator
    • filetype - Retourne le type de fichier
    • file_exists - Vérifie si un fichier ou un dossier existe
    • file_get_contents - Lit tout un fichier dans une chaîne
    • file_put_contents - Écrit un contenu dans un fichier
    • FilterIterator::accept - Vérifie si l'élément courant de l'itérateur est acceptable
    • FilterIterator::current - Récupère la valeur de l'élément courant
    • FilterIterator::getInnerIterator - Récupère l'itérateur interne
    • FilterIterator::key - Récupère la clé courante
    • FilterIterator::next - Déplace l'itérateur à la position suivante
    • FilterIterator::rewind - Replace l'itérateur au début
    • FilterIterator::valid - Vérifie si l'élément courant est valide
    • FilterIterator::__construct - Construit un filterIterator
    • filter_has_var - Vérifie si une variable d'un type spécifique existe
    • filter_id - Retourne l'identifiant d'un filtre nommé
    • filter_input - Récupère une variable externe et la filtre
    • filter_input_array - Récupère plusieurs valeurs externes et les filtre
    • filter_list - Retourne une liste de tous les filtres supportés
    • filter_var - Filtre une variable avec un filtre spécifique
    • filter_var_array - Récupère plusieurs variables et les filtre
    • finfo::buffer - Alias de finfo_buffer()
    • finfo::file - Alias de finfo_file()
    • finfo::set_flags - Alias de finfo_set_flags()
    • finfo::__construct - Alias de de finfo_open
    • finfo_close - Ferme une ressource fileinfo
    • finfo_open - Crée une nouvelle ressource fileinfo
    • floatval - Convertit une chaîne en nombre à virgule flottante
    • flock - Verrouille le fichier
    • floor - Arrondit à l'entier inférieur
    • flush - Vide les tampons de sortie du système
    • fmod - Retourne le reste de la division
    • fnmatch - Teste un nom de fichier au moyen d'un masque de recherche
    • fopen - Ouvre un fichier ou une URL
    • forward_static_call - Appelle une méthode statique
    • forward_static_call_array - Appelle une méthode statique et passe les arguments en tableau
    • fpassthru - Affiche le reste du fichier
    • fprintf - Écrit une chaîne formatée dans un flux
    • fputcsv - Formate une ligne en CSV et l'écrit dans un fichier
    • fputs - Alias de fwrite
    • fread - Lecture du fichier en mode binaire
    • frenchtojd - Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien
    • fribidi_log2vis - Convertit une chaîne logique en chaîne visuelle
    • fscanf - Analyse un fichier en fonction d'un format
    • fseek - Modifie la position du pointeur de fichier
    • fsockopen - Ouvre un socket de connexion Internet ou Unix
    • fstat - Lit les informations sur un fichier à partir d'un pointeur de fichier
    • ftell - Renvoie la position courante du pointeur de fichier
    • ftok - Convertit un chemin et un identifiant de projet en une clé System V IPC
    • ftp:// - Accès aux URLs FTP(s)
    • ftp_alloc - Alloue de l'espace pour un téléchargement de fichier
    • ftp_cdup - Change de dossier et passe au dossier parent
    • ftp_chdir - Modifie le dossier FTP courant
    • ftp_chmod - Modifie les droits d'un fichier via FTP
    • ftp_close - Ferme une connexion FTP
    • ftp_connect - Ouvre une connexion FTP
    • ftp_delete - Efface un fichier sur un serveur FTP
    • ftp_exec - Exécute une commande sur un serveur FTP
    • ftp_fget - Télécharge un fichier via FTP dans un fichier local
    • ftp_fput - Charge un fichier sur un serveur FTP
    • ftp_get - Télécharge un fichier depuis un serveur FTP
    • ftp_get_option - Lit différentes options pour la connexion FTP courante
    • ftp_login - Identification sur un serveur FTP
    • ftp_mdtm - Retourne la date de dernière modification d'un fichier sur un serveur FTP
    • ftp_mkdir - Crée un dossier sur un serveur FTP
    • ftp_nb_continue - Reprend le téléchargement d'un fichier (non bloquant)
    • ftp_nb_fget - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
    • ftp_nb_fput - Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)
    • ftp_nb_get - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
    • ftp_nb_put - Envoie un fichier sur un serveur FTP (non-bloquant)
    • ftp_nlist - Retourne la liste des fichiers d'un dossier
    • ftp_pasv - Active ou désactive le mode passif
    • ftp_put - Charge un fichier sur un serveur FTP
    • ftp_pwd - Retourne le nom du dossier courant
    • ftp_quit - Alias de ftp_close
    • ftp_raw - Envoie une commande FTP brute
    • ftp_rawlist - Fait une liste détaillée des fichiers d'un dossier
    • ftp_rename - Renomme un fichier sur un serveur FTP
    • ftp_rmdir - Efface un dossier FTP
    • ftp_set_option - Modifie les options de la connexion FTP
    • ftp_site - Exécute la commande SITE sur un serveur FTP
    • ftp_size - Retourne la taille d'un fichier
    • ftp_ssl_connect - Ouvre une connexion FTP sécurisée avec SSL
    • ftp_systype - Retourne un identifiant de type de serveur FTP
    • ftruncate - Tronque un fichier
    • function_exists - Indique si une fonction est définie
    • func_get_arg - Retourne un élément de la liste des arguments
    • func_get_args - Retourne les arguments d'une fonction sous la forme d'un tableau
    • func_num_args - Retourne le nombre d'arguments passés à la fonction
    • fwrite - Écrit un fichier en mode binaire
  • g
    • gc_collect_cycles - Force le passage du collecteur de mémoire
    • gc_disable - Désactive le collecteur de références circulaires
    • gc_enable - Active le collecteur de références circulaires
    • gc_enabled - Retourne le statut du collecteur de références circulaires
    • gc_mem_caches - Reclaims memory used by the Zend Engine memory manager
    • gd_info - Retourne des informations à propos de la bibliothèque GD installée
    • GearmanClient::addOptions - Ajoute des options au client
    • GearmanClient::addServer - Ajoute un serveur de tâches au client
    • GearmanClient::addServers - Ajoute une liste de serveurs de tâches au client
    • GearmanClient::addTask - Ajoute une tâche à exécuter en parallèle
    • GearmanClient::addTaskBackground - Ajoute une tâche d'arrière-plan pour une exécution en parallèle
    • GearmanClient::addTaskHigh - Ajoute une tâche de forte priorité à effectuer en parallèle
    • GearmanClient::addTaskHighBackground - Ajoute une tâche de fond de forte priorité à effectuer en parallèle
    • GearmanClient::addTaskLow - Ajoute une tâche de faible priorité à effectuer en parallèle
    • GearmanClient::addTaskLowBackground - Ajoute une tâche de fond de faible priorité à effectuer en parallèle
    • GearmanClient::addTaskStatus - Ajoute une tâche pour obtenir le statut
    • GearmanClient::clearCallbacks - Efface toutes les fonctions de rappel des tâches
    • GearmanClient::clone - Crée une copie de l'objet GearmanClient
    • GearmanClient::context - Récupère le contexte de l'application
    • GearmanClient::data - Récupère les données de l'application (obsolète)
    • GearmanClient::do - Exécute une seule tâche et retourne le résultat (obsolète)
    • GearmanClient::doBackground - Exécute une tâche en arrière-plan
    • GearmanClient::doHigh - Exécute une seule tâche en priorité haute
    • GearmanClient::doHighBackground - Exécute une tâche en priorité haute en arrière plan
    • GearmanClient::doJobHandle - Récupère le gestionnaire de travaux pour la tâche en cours
    • GearmanClient::doLow - Exécute une seule tâche en priorité basse
    • GearmanClient::doLowBackground - Exécute une tâche en priorité basse en arrière-plan
    • GearmanClient::doNormal - Exécute une tâche et retourne le résultat
    • GearmanClient::doStatus - Récupère le statut de la tâche en cours
    • GearmanClient::echo - Envoi des données à tous les serveurs de travaux afin de vérifier qu'ils les affichent en retour (obsolète)
    • GearmanClient::error - Retourne la dernière erreur rencontrée sous forme de chaîne de caractères
    • GearmanClient::getErrno - Récupère la valeur d'errno
    • GearmanClient::jobStatus - Récupère le statut d'un travail en arrière-plan
    • GearmanClient::ping - Envoi des données à tous les serveurs de tâches pour s'assurer qu'ils sont toujours en fonctionnement
    • GearmanClient::removeOptions - Supprime les options du client
    • GearmanClient::returnCode - Récupère le dernier code Gearman retourné
    • GearmanClient::runTasks - Exécute une liste de tâches en parallèle
    • GearmanClient::setClientCallback - Définit une fonction de rappel lorsqu'un paquet de données est reçu pour une tâche (obsolète)
    • GearmanClient::setCompleteCallback - Définit une fonction à appeler une fois la tâche terminée
    • GearmanClient::setContext - Définit le contexte d'une application
    • GearmanClient::setCreatedCallback - Définit une fonction de rappel à appeler lorsqu'une tâche est placée dans la file d'attente
    • GearmanClient::setData - Définit les données de l'application (obsolète)
    • GearmanClient::setDataCallback - Définit une fonction de rappel à appeler lorsqu'un paquet de données est reçu pour une tâche
    • GearmanClient::setExceptionCallback - Définit une fonction de rappel pour les exceptions émises par l'agent
    • GearmanClient::setFailCallback - Définit une fonction de rappel à appeler lorsqu'un travail échoue
    • GearmanClient::setOptions - Définit les options du client
    • GearmanClient::setStatusCallback - Définit une fonction de rappel pour collecter les statuts d'une tâche
    • GearmanClient::setTimeout - Définit le délai d'attente d'une activité du socket I/O
    • GearmanClient::setWarningCallback - Définit une fonction de rappel lors de l'émission d'alerte depuis l'agent
    • GearmanClient::setWorkloadCallback - Définit une fonction de rappel lors de la réception de mises à jour de données incrémentales
    • GearmanClient::timeout - Récupère la valeur du délai d'activité du socket I/O
    • GearmanClient::__construct - Crée une instance GearmanClient
    • GearmanJob::complete - Envoie les résultats ainsi que le statut complet (obsolète)
    • GearmanJob::data - Envoie des données pour un travail en cours d'exécution (obsolète)
    • GearmanJob::exception - Envoie une exception pour un travail en cours d'exécution (obsolète)
    • GearmanJob::fail - Envoie un statut d'échec (obsolète)
    • GearmanJob::functionName - Récupère le nom de la fonction
    • GearmanJob::handle - Récupère le gestionnaire de travaux
    • GearmanJob::returnCode - Récupère le dernier code retourné
    • GearmanJob::sendComplete - Envoie le résultat ainsi que le statut complet
    • GearmanJob::sendData - Envoie les données pour un travail en cours d'exécution
    • GearmanJob::sendException - Envoie une exception pour un travail en cours d'exécution
    • GearmanJob::sendFail - Envoie un statut d'échec
    • GearmanJob::sendStatus - Envoie un statut
    • GearmanJob::sendWarning - Envoie une alerte
    • GearmanJob::setReturn - Définit une valeur de retour
    • GearmanJob::status - Envoie un statut (obsolète)
    • GearmanJob::unique - Récupère l'identifiant unique
    • GearmanJob::warning - Envoie une alerte (obsolète)
    • GearmanJob::workload - Récupère la charge de travail
    • GearmanJob::workloadSize - Récupère la taille de la charge de travail
    • GearmanJob::__construct - Crée une nouvelle instance GearmanJob
    • GearmanTask::create - Crée une tâche (obsolète)
    • GearmanTask::data - Récupère les données retournées par une tâche
    • GearmanTask::dataSize - Récupère la taille des données retournées
    • GearmanTask::function - Récupère le nom de la fonction associée (obsolète)
    • GearmanTask::functionName - Récupère le nom de la fonction associée
    • GearmanTask::isKnown - Vérifie si une tâche est connue
    • GearmanTask::isRunning - Vérifie si la tâche est actuellement en fonctionnement
    • GearmanTask::jobHandle - Récupère le gestionnaire de travaux
    • GearmanTask::recvData - Lit le travail ou les données retournées par une tâche dans un buffer
    • GearmanTask::returnCode - Récupère le dernier code retourné
    • GearmanTask::sendData - Envoie des données pour une tâche (obsolète)
    • GearmanTask::sendWorkload - Envoie les données pour une tâche
    • GearmanTask::taskDenominator - Récupère le dénominateur du taux de réalisation
    • GearmanTask::taskNumerator - Récupère le numérateur du taux de réalisation
    • GearmanTask::unique - Récupère l'identifiant unique de la tâche
    • GearmanTask::uuid - Récupère l'identifiant unique pour une tâche (obsolète)
    • GearmanTask::__construct - Crée une instance GearmanTask
    • GearmanWorker::addFunction - Enregistre et ajoute une fonction de rappel
    • GearmanWorker::addOptions - Ajout des options à l'agent
    • GearmanWorker::addServer - Ajoute un serveur de travaux
    • GearmanWorker::addServers - Ajoute plusieurs serveurs de travaux
    • GearmanWorker::clone - Crée une copie d'un agent
    • GearmanWorker::echo - Test la réponse d'un serveur de travaux
    • GearmanWorker::error - Récupère la dernière erreur survenue
    • GearmanWorker::getErrno - Récupère la errno
    • GearmanWorker::options - Récupère les options de l'agent
    • GearmanWorker::register - Enregistre une fonction sur un serveur de travaux
    • GearmanWorker::removeOptions - Supprime des options de l'agent
    • GearmanWorker::returnCode - Récupère le dernier code Gearman retourné
    • GearmanWorker::setId - Définit un identifiant au worker
    • GearmanWorker::setOptions - Définit les options de l'agent
    • GearmanWorker::setTimeout - Définit le délai d'attente maximal d'activité du socket I/O
    • GearmanWorker::timeout - Récupère le délai d'attente de l'activité du socket I/O
    • GearmanWorker::unregister - Supprime une fonction des serveurs de travaux
    • GearmanWorker::unregisterAll - Supprime toutes les fonctions des serveurs de travaux
    • GearmanWorker::wait - Attente une activité d'un ou plusieurs serveurs de travaux
    • GearmanWorker::work - Attend et exécute un travail
    • GearmanWorker::__construct - Crée une instance GearmanWorker
    • Gender\Gender::connect - Connexion à un dictionnaire externe
    • Gender\Gender::country - Récupère la représentation textuelle d'un pays
    • Gender\Gender::get - Récupère le sexe d'un prénom
    • Gender\Gender::isNick - Vérifie si name0 est un alias de name1
    • Gender\Gender::similarNames - Récupère des noms similaires
    • Gender\Gender::__construct - Construit un objet Gender
    • Generator::current - Récupère la valeur cédée
    • Generator::key - Récupère la clé cédée
    • Generator::next - Reprend l'exécution du générateur
    • Generator::rewind - Ré-initialise l'itérateur
    • Generator::send - Envoi une valeur au générateur
    • Generator::throw - Lance une exception dans le générateur
    • Generator::valid - Vérifie si l'itérateur a été fermé
    • Generator::__wakeup - Fonction de rappel de linéarisation
    • geoip_asnum_by_name - Récupère l'ASN (Autonomous System Numbers)
    • geoip_continent_code_by_name - Lit de code de continent d'une IP
    • geoip_country_code3_by_name - Récupère les trois lettres du code pays
    • geoip_country_code_by_name - Récupère les deux lettres du code pays
    • geoip_country_name_by_name - Récupère le nom complet du pays
    • geoip_database_info - Récupère les informations de la base de données GeoIP
    • geoip_db_avail - Vérifie si la base de données GeoIP est disponible
    • geoip_db_filename - Retourne le nom du fichier contenant la base de données GeoIP spécifiée
    • geoip_db_get_all_info - Retourne des informations détaillées sur tous les types de bases de données GeoIP
    • geoip_domain_by_name - Récupère le second niveau du nom de domaine
    • geoip_id_by_name - Récupère le type de la connexion Internet
    • geoip_isp_by_name - Récupère le nom du fournisseur d'accès
    • geoip_netspeedcell_by_name - Récupère la vitesse de la connexion Internet
    • geoip_org_by_name - Récupère le nom de l'organisation
    • geoip_record_by_name - Récupère les informations enregistrées correspondant au nom de l'hôte ou à l'adresse IP, trouvées dans la base de données GeoIP
    • geoip_region_by_name - Récupère le code pays et la région
    • geoip_region_name_by_code - Retourne le nom de la région pour un pays et un code de région
    • geoip_setup_custom_directory - Défini un dossier personnalisé pour la base de données GeoIP
    • geoip_time_zone_by_country_and_region - Retourne le fuseau horaire de certains pays et région du globe
    • getallheaders - Récupère tous les en-têtes de la requête HTTP
    • getcwd - Retourne le dossier de travail courant
    • getdate - Retourne la date/heure
    • getenv - Retourne la valeur d'une variable d'environnement
    • gethostbyaddr - Retourne le nom d'hôte correspondant à une IP
    • gethostbyname - Retourne l'adresse IPv4 correspondant à un hôte
    • gethostbynamel - Retourne la liste d'IPv4 correspondante à un hôte
    • gethostname - Lit le nom de l'hôte
    • getimagesize - Retourne la taille d'une image
    • getimagesizefromstring - Récupère la taille d'une image depuis une chaîne
    • getlastmod - Retourne la date de dernière modification de la page
    • getmxrr - Retourne les enregistrements MX d'un hôte
    • getmygid - Retourne le GID du propriétaire du script
    • getmyinode - Retourne l'inode du script
    • getmypid - Retourne le numéro de processus courant de PHP
    • getmyuid - Retourne l'UID du propriétaire du script actuel
    • getopt - Lit des options passées dans la ligne de commande
    • getprotobyname - Retourne le numéro de protocole associé à un nom de protocole
    • getprotobynumber - Retourne le nom de protocole associé à un numéro de protocole
    • getrandmax - Plus grande valeur aléatoire possible
    • getrusage - Retourne le niveau d'utilisation des ressources
    • getservbyname - Retourne le numéro de port associé à un service Internet et un protocole
    • getservbyport - Retourne le service Internet qui correspond au port et protocole
    • gettext - Recherche un message dans le domaine courant
    • gettimeofday - Retourne l'heure actuelle
    • gettype - Retourne le type de la variable
    • get_browser - Indique les capacités du navigateur client
    • get_called_class - Le nom de la classe en "Late Static Binding"
    • get_cfg_var - Retourne la valeur d'une option de PHP
    • get_class - Retourne le nom de la classe d'un objet
    • get_class_methods - Retourne les noms des méthodes d'une classe
    • get_class_vars - Retourne les valeurs par défaut des propriétés d'une classe
    • get_current_user - Retourne le nom du possesseur du script courant
    • get_declared_classes - Liste toutes les classes définies dans PHP
    • get_declared_interfaces - Retourne un tableau avec toutes les interfaces déclarées
    • get_declared_traits - Retourne un tableau contenant tous les traits déclarés
    • get_defined_constants - Retourne la liste des constantes et leurs valeurs
    • get_defined_functions - Liste toutes les fonctions définies
    • get_defined_vars - Liste toutes les variables définies
    • get_extension_funcs - Liste les fonctions d'une extension
    • get_headers - Retourne tous les en-têtes envoyés par le serveur en réponse à une requête HTTP
    • get_html_translation_table - Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities
    • get_included_files - Retourne un tableau avec les noms des fichiers qui sont inclus dans un script
    • get_include_path - Lit la valeur de la directive de configuration include_path
    • get_loaded_extensions - Retourne la liste de tous les modules compilés et chargés
    • get_magic_quotes_gpc - Retourne la configuration actuelle de l'option magic_quotes_gpc
    • get_magic_quotes_runtime - Retourne la configuration actuelle de l'option magic_quotes_runtime
    • get_meta_tags - Extrait toutes les balises méta d'un fichier HTML
    • get_object_vars - Retourne les propriétés d'un objet
    • get_parent_class - Retourne le nom de la classe parente d'un objet
    • get_required_files - Alias de get_included_files
    • get_resources - Returns active resources
    • get_resource_type - Retourne le type de ressource
    • glob - Recherche des chemins qui vérifient un masque
    • glob:// - Trouve des noms de fichiers correspondant à un masque donné
    • GlobIterator::count - Lit le nombre de dossiers et fichiers
    • GlobIterator::__construct - Construit un itérateur de type glob
    • Gmagick::addimage - Ajoute une nouvelle image à la liste des images de l'objet Gmagick
    • Gmagick::addnoiseimage - Ajoute du bruit aléatoirement dans l'image
    • Gmagick::annotateimage - Annote une image avec du texte
    • Gmagick::blurimage - Ajoute un filtre flou à l'image
    • Gmagick::borderimage - Ajoute une bordure à l'image
    • Gmagick::charcoalimage - Simule un dessin au fusain
    • Gmagick::chopimage - Supprime une région de l'image
    • Gmagick::clear - Efface toutes les ressources associées à l'objet Gmagick
    • Gmagick::commentimage - Ajoute un commentaire à l'image
    • Gmagick::compositeimage - Assemble 2 images
    • Gmagick::cropimage - Extrait une portion d'une image
    • Gmagick::cropthumbnailimage - Crée une miniature recadrée
    • Gmagick::current - Le contexte courante
    • Gmagick::cyclecolormapimage - Déplace la carte des couleurs d'une image
    • Gmagick::deconstructimages - Retourne les pixels différents entre des images
    • Gmagick::despeckleimage - Le but de despeckleimage
    • Gmagick::destroy - Le but de la méthode destroy
    • Gmagick::drawimage - Envoi l'objet GmagickDraw dans l'image courante
    • Gmagick::edgeimage - Améliore les bords intérieurs de l'image
    • Gmagick::embossimage - Retourne une image en niveau de gris avec un effet à 3 dimensions
    • Gmagick::enhanceimage - Améliore la qualité d'une image contenant du bruit
    • Gmagick::equalizeimage - Égalise l'histogramme de l'image
    • Gmagick::flipimage - Crée une image miroir verticale
    • Gmagick::flopimage - Le but de la méthode flopimage
    • Gmagick::frameimage - Ajoute une bordure afin de simuler un effet 3D
    • Gmagick::gammaimage - Corrige le gamma d'une image
    • Gmagick::getcopyright - Retourne le copyright de l'API GraphicsMagick
    • Gmagick::getfilename - Retourne le nom du fichier associé avec une séquence d'image
    • Gmagick::getimagebackgroundcolor - Retourne la couleur d'arrière plan de l'image
    • Gmagick::getimageblueprimary - Retourne le point bleu primaire chromatique
    • Gmagick::getimagebordercolor - Retourne la couleur du bord de l'image
    • Gmagick::getimagechanneldepth - Récupère la profondeur d'un canal particulier de l'image
    • Gmagick::getimagecolors - Retourne la couleur de l'indice de la carte des couleurs spécifiée
    • Gmagick::getimagecolorspace - Récupère l'espace colorimétrique de l'image
    • Gmagick::getimagecompose - Retourne l'opérateur de composition associé avec l'image
    • Gmagick::getimagedelay - Récupère le délai de l'image
    • Gmagick::getimagedepth - Récupère la profondeur de l'image
    • Gmagick::getimagedispose - Récupère la méthode de disposition de l'image
    • Gmagick::getimageextrema - Récupère les extrémités de l'image
    • Gmagick::getimagefilename - Récupère le nom du fichier d'une image particulière dans une séquence
    • Gmagick::getimageformat - Récupère le format d'une image particulière dans une séquence
    • Gmagick::getimagegamma - Récupère le gamma de l'image
    • Gmagick::getimagegreenprimary - Récupère le point chromatique primaire vert
    • Gmagick::getimageheight - Récupère la hauteur de l'image
    • Gmagick::getimagehistogram - Récupère l'histogramme de l'image
    • Gmagick::getimageindex - Récupère l'indice de l'image active courante
    • Gmagick::getimageinterlacescheme - Récupère le schéma d'entrelacement de l'image
    • Gmagick::getimageiterations - Récupère les itérations de l'image
    • Gmagick::getimagematte - Vérifie si l'image a un canal mate
    • Gmagick::getimagemattecolor - Récupère la couleur mate de l'image
    • Gmagick::getimageprofile - Récupère le nom du profile de l'image
    • Gmagick::getimageredprimary - Récupère le point chromatique primaire rouge
    • Gmagick::getimagerenderingintent - Récupère l'image de rendu
    • Gmagick::getimageresolution - Récupère la résolution de l'image
    • Gmagick::getimagescene - Récupère la scène de l'image
    • Gmagick::getimagesignature - Génère la signature SHA-256 de l'image
    • Gmagick::getimagetype - Récupère le type potentiel d'une image
    • Gmagick::getimageunits - Récupère les unités utilisées pour la résolution de l'image
    • Gmagick::getimagewhitepoint - Récupère le point chromatique blanc
    • Gmagick::getimagewidth - Récupère la largeur de l'image
    • Gmagick::getpackagename - Récupère le nom du paquet GraphicsMagick
    • Gmagick::getquantumdepth - Récupère la profondeur du quantum Gmagick
    • Gmagick::getreleasedate - Récupère la date de sortie de la version courante de GraphicsMagick
    • Gmagick::getsamplingfactors - Récupère le facteur d'échantillonnage horizontal et vertical
    • Gmagick::getsize - Récupère la taille associée avec l'objet Gmagick
    • Gmagick::getversion - Récupère la version de l'API GraphicsMagick
    • Gmagick::hasnextimage - Vérifie si l'objet contient au moins une autre image
    • Gmagick::haspreviousimage - Vérifie si l'objet contient une image précédente
    • Gmagick::implodeimage - Crée une image à partir d'une copie
    • Gmagick::labelimage - Ajoute un libellé à une image
    • Gmagick::levelimage - Ajuste les niveaux d'une image
    • Gmagick::magnifyimage - Retaille par 2 une image en conservant les proportions
    • Gmagick::mapimage - Remplace les couleurs d'une image avec les couleurs les plus proches d'une image de référence
    • Gmagick::medianfilterimage - Applique un filtre digital
    • Gmagick::minifyimage - Réduit une image de moitié en gardant les proportions
    • Gmagick::modulateimage - Contrôle la luminosité, la saturation et la teinte
    • Gmagick::motionblurimage - Simule un flou cinétique
    • Gmagick::newimage - Crée une nouvelle image
    • Gmagick::nextimage - Se déplace sur l'image suivante
    • Gmagick::normalizeimage - Améliore le contraste de la couleur de l'image
    • Gmagick::oilpaintimage - Simule une peinture à l'huile
    • Gmagick::previousimage - Se déplace vers l'image précédente de l'objet
    • Gmagick::profileimage - Ajoute ou supprime un profile d'une image
    • Gmagick::quantizeimage - Analyse les couleurs d'une image de référence
    • Gmagick::quantizeimages - Le but de quantizeimages
    • Gmagick::queryfontmetrics - Retourne un tableau représentant la métrique pour la police de caractères
    • Gmagick::queryfonts - Retourne les polices de caractères configurées
    • Gmagick::queryformats - Retourne les formats supportés par Gmagick
    • Gmagick::radialblurimage - Brouille une image suivant un rayon
    • Gmagick::raiseimage - Crée un un bouton avec un effet 3D
    • Gmagick::read - Lit une image depuis un fichier
    • Gmagick::readimage - Lit une image depuis un fichier
    • Gmagick::readimageblob - Lit une image depuis une chaîne binaire
    • Gmagick::readimagefile - Le but de readimagefile
    • Gmagick::reducenoiseimage - Lisse les contours de l'image
    • Gmagick::removeimage - Supprime une image depuis la liste des images
    • Gmagick::removeimageprofile - Supprime un profil nommé de l'image
    • Gmagick::resampleimage - Échantillonne l'image à la résolution désirée
    • Gmagick::resizeimage - Redimensionne une image
    • Gmagick::rollimage - Repositionne une image
    • Gmagick::rotateimage - Effectue une rotation de l'image
    • Gmagick::scaleimage - Met à l'échelle une image
    • Gmagick::separateimagechannel - Sépare un canal depuis une image
    • Gmagick::setCompressionQuality - Sets the object's default compression quality
    • Gmagick::setfilename - Définit le nom de fichier avant la lecture ou l'écriture d'une image
    • Gmagick::setimagebackgroundcolor - Définit la couleur d'arrière-plan de l'image
    • Gmagick::setimageblueprimary - Définit le point bleu primaire de l'image chromatique
    • Gmagick::setimagebordercolor - Définit la couleur de la bordure de l'image
    • Gmagick::setimagechanneldepth - Définit la profondeur d'un canal particulier de l'image
    • Gmagick::setimagecolorspace - Définit l'espace de couleurs de l'image
    • Gmagick::setimagecompose - Définit l'opérateur de composition de l'image
    • Gmagick::setimagedelay - Définit le délai de l'image
    • Gmagick::setimagedepth - Définit la profondeur de l'image
    • Gmagick::setimagedispose - Définit la méthode de disposition de l'image
    • Gmagick::setimagefilename - Définit le nom du fichier pour une image particulière d'une séquence
    • Gmagick::setimageformat - Définit le format d'une image
    • Gmagick::setimagegamma - Définit le gamma de l'image
    • Gmagick::setimagegreenprimary - Définit le point vert sur l'image chromatique primaire
    • Gmagick::setimageindex - Définit l'itérateur à la position spécifiée dans l'image de la liste pointée par son index
    • Gmagick::setimageinterlacescheme - Définit le schéma d'entrelacement de l'image
    • Gmagick::setimageiterations - Définit les itérations de l'image
    • Gmagick::setimageprofile - Ajoute un profile nommé à l'objet Gmagick
    • Gmagick::setimageredprimary - Définit le point rouge sur l'image chromatique primaire
    • Gmagick::setimagerenderingintent - Définit l'image de rendu
    • Gmagick::setimageresolution - Définit la résolution de l'image
    • Gmagick::setimagescene - Définit l'image de scène
    • Gmagick::setimagetype - Définit le type de l'image
    • Gmagick::setimageunits - Définit les unités à utiliser pour la résolution de l'image
    • Gmagick::setimagewhitepoint - Définit le point blanc sur l'image chromatique primaire
    • Gmagick::setsamplingfactors - Définit les facteurs d'échantillonnage de l'image
    • Gmagick::setsize - Définit la taille de l'objet Gmagick
    • Gmagick::shearimage - Crée un parallélogramme
    • Gmagick::solarizeimage - Applique un effet de solarisation à l'image
    • Gmagick::spreadimage - Déplace aléatoirement chaque pixel d'un bloc
    • Gmagick::stripimage - Supprime d'une image tous les profiles et tous les commentaires
    • Gmagick::swirlimage - Remous les pixels du centre de l'image
    • Gmagick::thumbnailimage - Modifie la taille d'une image
    • Gmagick::trimimage - Supprime les coins de l'image
    • Gmagick::write - Écrit une image dans un fichier
    • Gmagick::writeimage - Écrit une image dans un fichier
    • Gmagick::__construct - Le constructeur Gmagick
    • GmagickDraw::annotate - Dessine un texte sur l'image
    • GmagickDraw::arc - Dessine un arc
    • GmagickDraw::bezier - Dessine une courbe de Bézier
    • GmagickDraw::ellipse - Dessine une ellipse sur l'image
    • GmagickDraw::getfillcolor - Retourne la couleur de remplissage
    • GmagickDraw::getfillopacity - Retourne l'opacité utilisée lors d'un dessin
    • GmagickDraw::getfont - Retourne la police de caractères
    • GmagickDraw::getfontsize - Retourne la taille du point d'une police de caractères
    • GmagickDraw::getfontstyle - Retourne le style de la police de caractères
    • GmagickDraw::getfontweight - Retourne le poids de la police de caractères
    • GmagickDraw::getstrokecolor - Retourne la couleur utilisée pour tracer les contours de l'objet
    • GmagickDraw::getstrokeopacity - Retourne l'opacité du tracé des contours de l'objet
    • GmagickDraw::getstrokewidth - Retourne la largeur utilisée pour les contours de l'objet
    • GmagickDraw::gettextdecoration - Retourne la décoration du texte
    • GmagickDraw::gettextencoding - Retourne le code du jeu de caractères à utiliser pour les annotations
    • GmagickDraw::line - Le but de la méthode line
    • GmagickDraw::point - Dessine un point
    • GmagickDraw::polygon - Dessine un polygone
    • GmagickDraw::polyline - Dessine une polyligne
    • GmagickDraw::rectangle - Dessine un rectangle
    • GmagickDraw::rotate - Applique une rotation
    • GmagickDraw::roundrectangle - Dessine un rectangle arrondi
    • GmagickDraw::scale - Ajuste le facteur d'échelle
    • GmagickDraw::setfillcolor - Définit la couleur de remplissage à utiliser pour dessiner des objets pleins
    • GmagickDraw::setfillopacity - Le but de la méthode setfillopacity
    • GmagickDraw::setfont - Définit la police de caractère à utiliser lors d'une annotation
    • GmagickDraw::setfontsize - Définit la taille, en points, de la police de caractère utilisée lors d'une annotation
    • GmagickDraw::setfontstyle - Définit le style de police de caractères à utiliser lors d'une annotation
    • GmagickDraw::setfontweight - Définit le poids de la police de caractères
    • GmagickDraw::setstrokecolor - Définit la couleur à utiliser pour tracer les contours de l'objet
    • GmagickDraw::setstrokeopacity - Spécifie l'opacité pour les contours de l'objet
    • GmagickDraw::setstrokewidth - Définit la largeur des contours de l'objet
    • GmagickDraw::settextdecoration - Spécifie une décoration
    • GmagickDraw::settextencoding - Spécifie le code du jeu de caractères à utiliser
    • GmagickPixel::getcolor - Retourne la couleur
    • GmagickPixel::getcolorcount - Retourne le nombre de couleurs associées avec cette couleur
    • GmagickPixel::getcolorvalue - Récupère la valeur normalisée du canal de la couleur fournie
    • GmagickPixel::setcolor - Définit la couleur
    • GmagickPixel::setcolorvalue - Définit la valeur normalisée d'un des canaux
    • GmagickPixel::__construct - Le constructeur GmagickPixel
    • gmdate - Formate une date/heure GMT/CUT
    • gmmktime - Retourne le timestamp UNIX d'une date GMT
    • gmp_abs - Valeur absolue GMP
    • gmp_add - Addition de 2 nombres GMP
    • gmp_and - ET logique
    • gmp_clrbit - Annule un octet
    • gmp_cmp - Compare des nombres GMP
    • gmp_com - Calcule le complémentaire d'un nombre
    • gmp_div - Alias de gmp_div_q
    • gmp_divexact - Division exacte de nombres GMP
    • gmp_div_q - Divisions de 2 nombres GMP
    • gmp_div_qr - Divise deux nombres GMP
    • gmp_div_r - Reste de la division de deux nombres GMP
    • gmp_export - Exportation vers une chaîne binaire
    • gmp_fact - Factorielle GMP
    • gmp_gcd - Calcule le GCD
    • gmp_gcdext - PGCD étendu
    • gmp_hamdist - Distance de Hamming
    • gmp_import - Importation depuis une chaîne binaire
    • gmp_init - Crée un nombre GMP
    • gmp_intval - Convertit un nombre GMP en entier
    • gmp_invert - Modulo inversé
    • gmp_jacobi - Symbole de Jacobi
    • gmp_legendre - Symbole de Legendre
    • gmp_mod - Modulo GMP
    • gmp_mul - Multiplication de 2 nombres GMP
    • gmp_neg - Opposé de nombre GMP
    • gmp_nextprime - Trouve le prochain nombre premier
    • gmp_or - OU logique
    • gmp_perfect_square - Carré parfait GMP
    • gmp_popcount - Comptage de population
    • gmp_pow - Puissance
    • gmp_powm - Puissance et modulo
    • gmp_prob_prime - Nombre GMP probablement premier
    • gmp_random - Nombre GMP aléatoire
    • gmp_random_bits - Génère un nombre aléatoire
    • gmp_random_range - Génère un nombre aléatoire
    • gmp_random_seed - Sets the RNG seed
    • gmp_root - Récupère la partie entière de la n-ème racine
    • gmp_rootrem - Récupère la partie entière et le reste de la n-ème racine
    • gmp_scan0 - Recherche 0
    • gmp_scan1 - Recherche 1
    • gmp_setbit - Modifie un bit
    • gmp_sign - Signe du nombre GMP
    • gmp_sqrt - Racine carrée GMP
    • gmp_sqrtrem - Racine carrée avec reste GMP
    • gmp_strval - Convertit un nombre GMP en chaîne
    • gmp_sub - Soustraction de 2 nombres GMP
    • gmp_testbit - Teste si un octet est défini
    • gmp_xor - OU exclusif logique
    • gmstrftime - Formate une date/heure GMT/CUT en fonction de la configuration locale
    • gnupg_adddecryptkey - Ajoute une clé pour déchiffrement
    • gnupg_addencryptkey - Ajoute une clé pour chiffrement
    • gnupg_addsignkey - Ajoute une clé pour signer
    • gnupg_cleardecryptkeys - Supprime toutes les clés qui étaient fixées pour déchiffrement auparavant
    • gnupg_clearencryptkeys - Supprime toutes les clés qui étaient fixées pour chiffrement auparavant
    • gnupg_clearsignkeys - Supprime toutes les clés qui étaient fixées pour signature auparavant
    • gnupg_decrypt - Déchiffre un texte donné
    • gnupg_decryptverify - Déchiffre et vérifie un texte donné
    • gnupg_encrypt - Chiffre un texte donné
    • gnupg_encryptsign - Chiffre et signe un texte donné
    • gnupg_export - Exporte une clé
    • gnupg_geterror - Retourne le texte d'erreur, si une fonction échoue
    • gnupg_getprotocol - Retourne le protocole actif courant pour toutes les opérations
    • gnupg_import - Importe une clé
    • gnupg_init - Initialise une connexion
    • gnupg_keyinfo - Retourne un tableau avec les informations à propos de toutes les clés qui correspondent au motif donné
    • gnupg_setarmor - Change la sortie blindée
    • gnupg_seterrormode - Fixe le mode pour error_reporting
    • gnupg_setsignmode - Fixe le mode pour signer
    • gnupg_sign - Signe un texte donné
    • gnupg_verify - Vérifie un texte signé
    • gopher_parsedir - Transpose une entrée d'un dossier formaté gopher dans un tableau associatif
    • grapheme_extract - Extrait un groupe de graphème d'une chaîne UTF-8
    • grapheme_stripos - Trouve la position en graphème de la première occurrence dans une chaîne, insensible à la casse
    • grapheme_stristr - Retourne la partie d'une chaîne à partir d'une occurrence
    • grapheme_strlen - Lit la taille d'une chaîne en nombre de graphème
    • grapheme_strpos - Trouve la position du premier graphème
    • grapheme_strripos - Trouve la position du dernier graphème, insensible à la casse
    • grapheme_strrpos - Trouve la position du dernier graphème
    • grapheme_strstr - Retourne la partie d'une chaîne à partir d'une occurrence, insensible à la casse
    • grapheme_substr - Retourne une partie d'une chaîne
    • gregoriantojd - Convertit une date grégorienne en nombre de jours du calendrier Julien
    • gupnp_context_get_host_ip - Récupère l'adresse IP
    • gupnp_context_get_port - Récupère le port
    • gupnp_context_get_subscription_timeout - Récupère le délai d'expiration lors de la souscription aux événements
    • gupnp_context_host_path - Démarre l'hébergement
    • gupnp_context_new - Crée un nouveau contexte
    • gupnp_context_set_subscription_timeout - Définit le délai d'attente des événements de sousscription
    • gupnp_context_timeout_add - Définit une fonction à appeler à intervalle régulier
    • gupnp_context_unhost_path - Interrompt l'hébergement
    • gupnp_control_point_browse_start - Commence la recherche
    • gupnp_control_point_browse_stop - Interrompt la recherche
    • gupnp_control_point_callback_set - Définit la fonction de rappel pour le point de contrôle
    • gupnp_control_point_new - Crée un nouveau point de contrôle
    • gupnp_device_action_callback_set - Définit la fonction de rappel pour un périphérique
    • gupnp_device_info_get - Récupère les informations d'un périphérique racine
    • gupnp_device_info_get_service - Récupère le service avec son type
    • gupnp_root_device_get_available - Vérifie si un périphérique racine est disponible
    • gupnp_root_device_get_relative_location - Récupère le chemin relatif d'un périphérique racine
    • gupnp_root_device_new - Crée un nouveau périphérique racine
    • gupnp_root_device_set_available - Définit si le périphérique racine est disponible ou non
    • gupnp_root_device_start - Démarre la boucle principale
    • gupnp_root_device_stop - Interrompt la boucle principale
    • gupnp_service_action_get - Récupère les arguments de l'action spécifiée
    • gupnp_service_action_return - Retourne le succès de l'action
    • gupnp_service_action_return_error - Retourne le code erreur
    • gupnp_service_action_set - Définit les valeurs à retourner par une action spécifique
    • gupnp_service_freeze_notify - Suspend les notifications
    • gupnp_service_info_get - Récupère les informations complètes d'un service
    • gupnp_service_info_get_introspection - Récupère l'introspection des ressources du service
    • gupnp_service_introspection_get_state_variable - Retourne le statut de la variable d'une donnée
    • gupnp_service_notify - Notifie les clients connectés
    • gupnp_service_proxy_action_get - Envoi l'action au service et récupère la valeur
    • gupnp_service_proxy_action_set - Envoie une action au service et définit la valeur
    • gupnp_service_proxy_add_notify - Définit une fonction de rappel pour la notification de modification d'une variable
    • gupnp_service_proxy_callback_set - Définit la fonction de rappel pour un service de proxy pour un signal donné
    • gupnp_service_proxy_get_subscribed - Vérifie si la souscription à un service est valide
    • gupnp_service_proxy_remove_notify - Annule une notification de modification de variable
    • gupnp_service_proxy_send_action - Envoie une action avec plusieurs paramètres de façon synchrone
    • gupnp_service_proxy_set_subscribed - S'abonne (se désabonne) à un service
    • gupnp_service_thaw_notify - Envoie toutes les notifications en attente et arrête la mise en file d'attente de nouvelles
    • gzclose - Ferme un pointeur sur un fichier gz ouvert
    • gzcompress - Compresse une chaîne
    • gzdecode - Décode une chaîne de caractères compressée gzip
    • gzdeflate - Compresse une chaîne
    • gzencode - Crée une chaîne compressée gzip
    • gzeof - Indique si la fin d'un fichier (EOF) compressé est atteinte
    • gzfile - Lit la totalité d'un fichier compressé
    • gzgetc - Lit un caractère dans un fichier compressé
    • gzgets - Lit une ligne dans un fichier compressé
    • gzgetss - Lit une ligne dans un fichier compressé, et supprime les balises HTML
    • gzinflate - Décompresse une chaîne
    • gzopen - Ouvre un fichier compressé avec gzip
    • gzpassthru - Affiche toutes les données qui restent dans un pointeur gz
    • gzputs - Alias de gzwrite
    • gzread - Lecture de fichier compressé binaire
    • gzrewind - Replace le pointeur au début du fichier
    • gzseek - Déplace le pointeur de lecture
    • gztell - Lit la position courante du pointeur de lecture
    • gzuncompress - Décompresse une chaîne compressée
    • gzwrite - Écrit dans un fichier compressé gzip
  • h
    • HaruAnnotation::setBorderStyle - Définit le style de bordure d'une annotation
    • HaruAnnotation::setHighlightMode - Définit le mode de mise en évidence de l'annotation
    • HaruAnnotation::setIcon - Définit le style de l'icône de l'annotation
    • HaruAnnotation::setOpened - Définit le statut initial de l'annotation
    • HaruDestination::setFit - Définit l'apparence de la page afin qu'elle tienne dans la fenêtre
    • HaruDestination::setFitB - Définit l'apparence de la page afin qu'elle tienne dans une boite de la page dans la fenêtre
    • HaruDestination::setFitBH - Définit l'apparence de la page afin qu'elle tienne en largeur dans la boite
    • HaruDestination::setFitBV - Définit l'apparence de la page afin qu'elle tienne en hauteur dans la boite
    • HaruDestination::setFitH - Définit l'apparence de la page afin qu'elle tienne en largeur dans la page
    • HaruDestination::setFitR - Définit l'apparence de la page afin qu'elle tienne dans le rectangle spécifié
    • HaruDestination::setFitV - Définit l'apparence de la page afin qu'elle tienne en hauteur dans la fenêtre
    • HaruDestination::setXYZ - Définit l'apparence d'une page
    • HaruDoc::addPage - Ajoute une nouvelle page au document
    • HaruDoc::addPageLabel - Définit le style de numérotation d'une série de pages
    • HaruDoc::createOutline - Crée une instance HaruOutline
    • HaruDoc::getCurrentEncoder - Récupère l'instance HaruEncoder actuellement utilisée dans le document
    • HaruDoc::getCurrentPage - Retourne la page courante du document
    • HaruDoc::getEncoder - Récupère l'instance HaruEncoder de l'encodage spécifié
    • HaruDoc::getFont - Récupère une instance HaruFont
    • HaruDoc::getInfoAttr - Récupère la valeur courante d'un attribut de document spécifié
    • HaruDoc::getPageLayout - Récupère la disposition courante de la page
    • HaruDoc::getPageMode - Récupère le mode courant de la page
    • HaruDoc::getStreamSize - Récupère la taille du flux temporaire
    • HaruDoc::insertPage - Insère une nouvelle page juste avant la page spécifiée
    • HaruDoc::loadJPEG - Charge une image JPEG
    • HaruDoc::loadPNG - Charge une image PNG
    • HaruDoc::loadRaw - Charge une image RAW
    • HaruDoc::loadTTC - Charge la police avec l'index spécifié depuis le fichier TTC
    • HaruDoc::loadTTF - Charge un fichier de police TTF
    • HaruDoc::loadType1 - Charge la police Type1
    • HaruDoc::output - Écrit les données du document dans un buffer de sortie
    • HaruDoc::readFromStream - Lit les données depuis le flux temporaire
    • HaruDoc::resetError - Réinitialise le statut d'erreur du gestionnaire de document
    • HaruDoc::resetStream - Revient au début du flux temporaire
    • HaruDoc::save - Sauvegarde le document dans le fichier spécifié
    • HaruDoc::saveToStream - Sauvegarde le document dans un flux temporaire
    • HaruDoc::setCompressionMode - Définit le mode de compression pour le document
    • HaruDoc::setCurrentEncoder - Définit l'encodeur courant pour le document
    • HaruDoc::setEncryptionMode - Définit le mode de chiffrement pour le document
    • HaruDoc::setInfoAttr - Définit l'attribut d'information du document
    • HaruDoc::setInfoDateAttr - Définit les attributs d'informations de date et d'heure pour le document
    • HaruDoc::setOpenAction - Définit quelle page est affichée lors de l'ouverture du document
    • HaruDoc::setPageLayout - Définit la façon dont la page doit être affichée
    • HaruDoc::setPageMode - Définit la façon dont le document doit être affiché
    • HaruDoc::setPagesConfiguration - Définit le nombre de pages par jeu de pages
    • HaruDoc::setPassword - Définit les mots de passe de l'utilisateur et du propriétaire pour le document
    • HaruDoc::setPermission - Définit les permissions du document
    • HaruDoc::useCNSEncodings - Active l'encodage chinois simplifié
    • HaruDoc::useCNSFonts - Active les polices chinoises simplifiées internes
    • HaruDoc::useCNTEncodings - Active l'encodage chinois traditionnel
    • HaruDoc::useCNTFonts - Active les polices chinoises traditionnelles internes
    • HaruDoc::useJPEncodings - Active l'encodage japonais
    • HaruDoc::useJPFonts - Active les polices japonaises internes
    • HaruDoc::useKREncodings - Active l'encodage coréen
    • HaruDoc::useKRFonts - Active les polices coréennes internes
    • HaruDoc::__construct - Construit un nouvel objet HaruDoc
    • HaruEncoder::getByteType - Récupère le type d'octets dans le texte
    • HaruEncoder::getType - Récupère le type de l'encodeur
    • HaruEncoder::getUnicode - Convertit un caractère en unicode
    • HaruEncoder::getWritingMode - Récupère le mode d'écriture de l'encodeur
    • HaruFont::getAscent - Récupère la montée verticale de la police
    • HaruFont::getCapHeight - Récupère la distance depuis la ligne de base des lettres en majuscule
    • HaruFont::getDescent - Récupère la descente verticale de la police
    • HaruFont::getEncodingName - Récupère le nom de l'encodage
    • HaruFont::getFontName - Récupère le nom de la police
    • HaruFont::getTextWidth - Récupère la largeur totale du texte, le nombre de caractères, le nombre de mots et le nombre d'espaces
    • HaruFont::getUnicodeWidth - Récupère la largeur d'un caractère dans une police
    • HaruFont::getXHeight - Récupère la distance depuis la ligne de base des lettres minuscule
    • HaruFont::measureText - Calcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée
    • HaruImage::getBitsPerComponent - Récupère le nombre d'octets utilisés pour décrire chaque composant de la couleur de l'image
    • HaruImage::getColorSpace - Récupère le nom de l'espace de couleur de l'image
    • HaruImage::getHeight - Récupère la hauteur de l'image
    • HaruImage::getSize - Récupère la taille de l'image
    • HaruImage::getWidth - Récupère la largeur de l'image
    • HaruImage::setColorMask - Définit le masque de couleur de l'image
    • HaruImage::setMaskImage - Définit le masque de l'image
    • HaruOutline::setDestination - Définit la destination pour le contour
    • HaruOutline::setOpened - Définit le statut initial du contour
    • HaruPage::arc - Ajoute un arc au chemin courant
    • HaruPage::beginText - Commence un objet texte et définit la position courante du texte à (0,0)
    • HaruPage::circle - Ajoute un cercle au chemin courant
    • HaruPage::closePath - Ajoute une ligne droite depuis le point courant jusqu'au point de départ du chemin
    • HaruPage::concat - Concatène la matrice de transformation courante et la matrice spécifiée
    • HaruPage::createDestination - Crée une nouvelle instance HaruDestination
    • HaruPage::createLinkAnnotation - Crée une nouvelle instance HaruAnnotation
    • HaruPage::createTextAnnotation - Crée une nouvelle instance HaruAnnotation
    • HaruPage::createURLAnnotation - Crée une nouvelle instance HaruAnnotation instance
    • HaruPage::curveTo - Ajoute une courbe de Bézier au chemin courant
    • HaruPage::curveTo2 - Ajoute une courbe de Bézier au chemin courant
    • HaruPage::curveTo3 - Ajoute une courbe de Bézier au chemin courant
    • HaruPage::drawImage - Affiche une image dans la page
    • HaruPage::ellipse - Ajoute une ellipse au chemin courant
    • HaruPage::endPath - Termine l'objet chemin courant sans effectuer d'opérations de remplissage et de peinture
    • HaruPage::endText - Termine l'objet texte courant
    • HaruPage::eofill - Remplit le chemin courant en utilisant la règle "even-odd"
    • HaruPage::eoFillStroke - Remplit le chemin courant en utilisant la règle "even-odd", puis, peint le chemin
    • HaruPage::fill - Remplit le chemin courant en utilisant des nombres différents de zéro
    • HaruPage::fillStroke - Remplit le chemin en utilisant des nombres différents de zéro, puis peint le chemin
    • HaruPage::getCharSpace - Récupère la valeur courante de l'espacement des caractères
    • HaruPage::getCMYKFill - Récupère la couleur de remplissage courante
    • HaruPage::getCMYKStroke - Récupère la couleur de remplissage courante
    • HaruPage::getCurrentFont - Récupère la police actuellement utilisée
    • HaruPage::getCurrentFontSize - Récupère la taille de la police courante
    • HaruPage::getCurrentPos - Récupère la position courante pour l'affichage
    • HaruPage::getCurrentTextPos - Récupère la position courante pour l'affichage du texte
    • HaruPage::getDash - Récupère le style de tiret courant
    • HaruPage::getFillingColorSpace - Récupère la couleur de remplissage
    • HaruPage::getFlatness - Récupère la planéité de la page
    • HaruPage::getGMode - Récupère le mode courant de graphique
    • HaruPage::getGrayFill - Récupère la couleur courante de remplissage
    • HaruPage::getGrayStroke - Récupère la couleur courante
    • HaruPage::getHeight - Récupère la hauteur de la page
    • HaruPage::getHorizontalScaling - Récupère la valeur courante de l'échelle horizontale
    • HaruPage::getLineCap - Récupère le style courant de fin de lignes
    • HaruPage::getLineJoin - Récupère le style de jointure de lignes
    • HaruPage::getLineWidth - Récupère la largeur courante de la ligne
    • HaruPage::getMiterLimit - Récupère la valeur de la limite de l'anglet
    • HaruPage::getRGBFill - Récupère la couleur courante de remplissage
    • HaruPage::getRGBStroke - Récupère la couleur de peinture courante
    • HaruPage::getStrokingColorSpace - Récupère la couleur de peinture de l'espace courant
    • HaruPage::getTextLeading - Récupère la valeur courante de l'espacement des lignes
    • HaruPage::getTextMatrix - Récupère la matrice de transformation courante du texte de la page
    • HaruPage::getTextRenderingMode - Récupère le mode de rendu courant du texte
    • HaruPage::getTextRise - Récupère la valeur de la levée du texte
    • HaruPage::getTextWidth - Récupère la largeur du texte en utilisant la taille de la police courante, l'espacement des caractères et l'espacement des mots
    • HaruPage::getTransMatrix - Récupère la matrice de transformation courante de la page
    • HaruPage::getWidth - Récupère la largeur de la page
    • HaruPage::getWordSpace - Récupère la valeur courante de l'espacement entre les mots
    • HaruPage::lineTo - Trace une ligne depuis le point courant vers le point spécifié
    • HaruPage::measureText - Calcule le longueur des caractères qui peuvent être inclus sur une ligne de largeur spécifiée
    • HaruPage::moveTextPos - Déplace la position du texte à une position donnée
    • HaruPage::moveTo - Définit le point de départ pour la nouvelle ligne
    • HaruPage::moveToNextLine - Déplace la position du texte au début de la prochaine ligne
    • HaruPage::rectangle - Ajoute un rectangle à la position courante
    • HaruPage::setCharSpace - Définit l'espacement des caractères pour la page
    • HaruPage::setCMYKFill - Définit la couleur de remplissage de la page
    • HaruPage::setCMYKStroke - Définit la couleur de remplissage de la page
    • HaruPage::setDash - Définit le style de tiret pour la page
    • HaruPage::setFlatness - Définit la planéité de la page
    • HaruPage::setFontAndSize - Définit la police et sa taille pour la page
    • HaruPage::setGrayFill - Définit la couleur de remplissage de la page
    • HaruPage::setGrayStroke - Définit la couleur de remplissage de la page
    • HaruPage::setHeight - Définit la hauteur de la page
    • HaruPage::setHorizontalScaling - Définit la graduation horizontale de la page
    • HaruPage::setLineCap - Définit la forme à utiliser à la fin des lignes
    • HaruPage::setLineJoin - Définit le style de jointure de ligne pour la page
    • HaruPage::setLineWidth - Définit la largeur de la ligne pour la page
    • HaruPage::setMiterLimit - Définit la valeur courante de la limite de l'anglet de la page
    • HaruPage::setRGBFill - Définit la couleur de remplissage pour la page
    • HaruPage::setRGBStroke - Définit la couleur de remplissage de la page
    • HaruPage::setRotate - Définit l'angle de rotation de la page
    • HaruPage::setSize - Définit la taille et la direction de la page
    • HaruPage::setSlideShow - Définit le style de transition pour la page
    • HaruPage::setTextLeading - Définit l'espacement entre les lignes du texte pour la page
    • HaruPage::setTextMatrix - Définit la matrice de transformation de texte courante de la page
    • HaruPage::setTextRenderingMode - Définit la matrice de transformation de texte courante de la page
    • HaruPage::setTextRise - Définit la valeur courante de la levée du texte
    • HaruPage::setWidth - Définit la largeur de la page
    • HaruPage::setWordSpace - Définit l'espacement entre les mots pour la page
    • HaruPage::showText - Affiche le texte à la position courante de la page
    • HaruPage::showTextNextLine - Déplace la position courante au début de la prochaine ligne et affiche le texte
    • HaruPage::stroke - Peint le chemin courant
    • HaruPage::textOut - Affiche le texte à la position spécifiée
    • HaruPage::textRect - Affiche le texte d'une région spécifique
    • hash - Génère une valeur de hachage (empreinte numérique)
    • hash_algos - Retourne une liste des algorithmes de hachage enregistrés
    • hash_copy - Copie un contexte de hashage
    • hash_equals - Comparaison de chaînes résistante aux attaques temporelles
    • hash_file - Génère une valeur de hachage en utilisant le contenu d'un fichier donné
    • hash_final - Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique
    • hash_hmac - Génère une valeur de clé de hachage en utilisant la méthode HMAC
    • hash_hmac_file - Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné
    • hash_init - Initialise un contexte de hachage incrémental
    • hash_pbkdf2 - Génère une clé PBKDF2 dérivée du mot de passe fourni
    • hash_update - Ajoute des données dans le contexte de hachage actif
    • hash_update_file - Ajoute des données dans un contexte de hachage actif provenant d'un fichier
    • hash_update_stream - Ajoute des données dans un contexte de hachage actif d'un flux ouvert
    • header - Envoie un en-tête HTTP
    • headers_list - Retourne la liste des en-têtes de réponse du script courant
    • headers_sent - Indique si les en-têtes HTTP ont déjà été envoyés
    • header_register_callback - Enregistre une fonction de rappel pour l'envoi des en-têtes
    • header_remove - Supprime un en-tête HTTP
    • hebrev - Convertit un texte logique hébreux en texte visuel
    • hebrevc - Convertit un texte logique hébreux en texte visuel, avec retours à la ligne
    • hex2bin - Convertit une chaîne binaire encodée en hexadécimal
    • hexdec - Convertit de hexadécimal en décimal
    • highlight_file - Colorisation syntaxique d'un fichier
    • highlight_string - Applique la syntaxe colorisée à du code PHP
    • HRTime\PerformanceCounter::getElapsedTicks - Récupère les ticks écoulés pour tous les intervalles
    • HRTime\PerformanceCounter::getFrequency - Fréquence du timer dans les ticks, par seconde
    • HRTime\PerformanceCounter::getLastElapsedTicks - Récupère les ticks écoulés pour le dernier intervalle
    • HRTime\PerformanceCounter::isRunning - Vérifie si la mesure est en cours
    • HRTime\PerformanceCounter::start - Démarre la mesure du temps
    • HRTime\PerformanceCounter::stop - Stoppe la mesure du temps
    • HRTime\StopWatch::getElapsedTime - Récupère le temps écoulé pour tous les intervalles
    • HRTime\StopWatch::getLastElapsedTime - Récupère le temps écoulé pour le dernier intervalle
    • htmlentities - Convertit tous les caractères éligibles en entités HTML
    • htmlspecialchars - Convertit les caractères spéciaux en entités HTML
    • htmlspecialchars_decode - Convertit les entités HTML spéciales en caractères
    • html_entity_decode - Convertit toutes les entités HTML en caractères normaux
    • http:// - Accès aux URLs HTTP(s)
    • http_build_query - Génère une chaîne de requête en encodage URL
    • http_response_code - Récupère ou change le code de la réponse HTTP
    • hwapi_attribute_new - Crée une nouvelle instance de la classe hw_api_attribute
    • hwapi_content_new - Crée une nouvelle instance de la classe hw_api_content
    • hwapi_hgcsp - Retourne un objet de classe hw_api
    • hwapi_object_new - Crée une nouvelle instance de la classe hwapi_object_new
    • hw_api::checkin - Archive un objet
    • hw_api::checkout - Extrait un objet
    • hw_api::children - Retourne le fils d'un objet
    • hw_api::content - Retourne le contenu d'un objet
    • hw_api::copy - Copie physique
    • hw_api::dbstat - Retourne des statistiques sur le serveur de bases
    • hw_api::dcstat - Retourne des statistiques sur le serveur de cache de document
    • hw_api::dstanchors - Liste toutes les ancres de destination
    • hw_api::dstofsrcanchor - Retourne la destination d'une ancre source
    • hw_api::find - Recherche des objets
    • hw_api::ftstat - Retourne des statistiques sur le serveur de textes
    • hw_api::hwstat - Retourne les statistiques sur le serveur Hyperwave
    • hw_api::identify - S'identifie auprès du serveur Hyperwave
    • hw_api::info - Retourne des informations sur la configuration du serveur
    • hw_api::insert - Insère un nouvel objet
    • hw_api::insertanchor - Insère un nouvel objet de type ancre
    • hw_api::insertcollection - Insère un nouvel objet de type collection
    • hw_api::insertdocument - Insère un nouvel objet de type document
    • hw_api::link - Crée un lien vers un objet
    • hw_api::lock - Verrouille un objet
    • hw_api::move - Déplace un objet d'une collection à l'autre
    • hw_api::object - Lit les informations d'attribut
    • hw_api::objectbyanchor - Retourne l'objet propriétaire d'une ancre
    • hw_api::parents - Retourne le parent d'un objet
    • hw_api::remove - Efface un objet
    • hw_api::replace - Remplace un objet
    • hw_api::setcommittedversion - Valide une version autre que la dernière
    • hw_api::srcanchors - Retourne la liste de toutes les ancres
    • hw_api::srcsofdst - Retourne les sources d'un objet de destination
    • hw_api::unlock - Déverrouille un objet HyperWave verrouillé
    • hw_api::user - Retourne le propriétaire d'un objet
    • hw_api::userlist - Retourne la liste des utilisateurs connectés
    • hw_api_attribute::key - Retourne la clé d'un attribut
    • hw_api_attribute::langdepvalue - Retourne la valeur d'un attribut dans une langue
    • hw_api_attribute::value - Retourne la valeur d'un attribut
    • hw_api_attribute::values - Retourne toutes les valeurs de l'attribut
    • hw_api_content::mimetype - Retourne le type MIME
    • hw_api_content::read - Lit le contenu
    • hw_api_error::count - Retourne le nombre d'erreurs
    • hw_api_error::reason - Retourne la première raison d'erreur
    • hw_api_object::assign - Clone un objet
    • hw_api_object::attreditable - Vérifie si un attribut est éditable
    • hw_api_object::count - Retourne le nombre d'attributs
    • hw_api_object::insert - Insère un nouvel attribut HyperWave
    • hw_api_object::remove - Supprime un attribut HyperWave
    • hw_api_object::title - Retourne le titre de l'attribut
    • hw_api_object::value - Retourne la valeur de l'attribut
    • hw_api_reason::description - Retourne la description d'une raison
    • hw_api_reason::type - Retourne le type de raison
    • hypot - Calcul la longueur de l'hypoténuse d'un triangle à angle droit
  • i
    • ibase_add_user - Ajoute un utilisateur à une base de données de sécurité
    • ibase_affected_rows - Retourne le nombre de lignes affectées par la dernière requête iBase
    • ibase_backup - Effectue une sauvegarde de base de données InterBase
    • ibase_blob_add - Ajoute des données dans un BLOB iBase fraîchement créé
    • ibase_blob_cancel - Annule la création d'un BLOB iBase
    • ibase_blob_close - Ferme un BLOB iBase
    • ibase_blob_create - Crée un BLOB iBase pour ajouter des données
    • ibase_blob_echo - Affiche le contenu d'un BLOB iBase au navigateur
    • ibase_blob_get - Lit len octets de données dans un BLOB iBase ouvert
    • ibase_blob_import - Crée un BLOB iBase, y copie un fichier et le referme
    • ibase_blob_info - Retourne la taille d'un BLOB iBase et d'autres informations utiles
    • ibase_blob_open - Ouvre un BLOB iBase pour récupérer des parties de données
    • ibase_close - Ferme une connexion à une base de données Interbase
    • ibase_commit - Valide une transaction iBase
    • ibase_commit_ret - Valide une transaction iBase sans la refermer
    • ibase_connect - Ouvre une connexion à une base de données
    • ibase_db_info - Demande des statistiques sur une base de données Interbase
    • ibase_delete_user - Efface un utilisateur d'une base de données de sécurité
    • ibase_drop_db - Supprime une base de données iBase
    • ibase_errcode - Retourne le code d'erreur iBase
    • ibase_errmsg - Retourne un message d'erreur
    • ibase_execute - Exécute une requête iBase préparée
    • ibase_fetch_assoc - Récupère une ligne du résultat d'une requête dans un tableau associatif
    • ibase_fetch_object - Lit une ligne dans une base Interbase dans un objet
    • ibase_fetch_row - Lit une ligne d'une base Interbase
    • ibase_field_info - Lit les informations sur un champ iBase
    • ibase_free_event_handler - Libère un gestionnaire d'événements iBase
    • ibase_free_query - Libère la mémoire réservée par une requête préparée
    • ibase_free_result - Libère un résultat iBase
    • ibase_gen_id - Incrémente le générateur donné et retourne sa nouvelle valeur
    • ibase_maintain_db - Exécute une commande de maintenance sur une base de données Interbase
    • ibase_modify_user - Modifie un utilisateur dans une base de données de sécurité
    • ibase_name_result - Assigne un nom à un jeu de résultats iBase
    • ibase_num_fields - Retourne le nombre de colonnes dans un résultat iBase
    • ibase_num_params - Retourne le nombre de paramètres dans une requête préparée iBase
    • ibase_param_info - Retourne des informations à propos d'un paramètre dans une requête préparée iBase
    • ibase_pconnect - Ouvre une connexion persistante à une base de données InterBase
    • ibase_prepare - Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement
    • ibase_query - Exécute une requête sur une base iBase
    • ibase_restore - Restaure une sauvegarde de base de données Interbase
    • ibase_rollback - Annule une transaction interBase
    • ibase_rollback_ret - Annule une transaction sans la fermer
    • ibase_server_info - Demande des informations sur le serveur Interbase
    • ibase_service_attach - Connexion au service de gestion Interbase
    • ibase_service_detach - Déconnexion du service de gestion Interbase
    • ibase_set_event_handler - Enregistre une fonction de rappel sur un événement interBase
    • ibase_trans - Prépare une transaction interBase
    • ibase_wait_event - Attend un événement interBase
    • iconv - Convertit une chaîne dans un jeu de caractères
    • iconv_get_encoding - Lit le jeu de caractères courant
    • iconv_mime_decode - Décode un champ d’en-tête MIME
    • iconv_mime_decode_headers - Décode des en-têtes MIME multiples
    • iconv_mime_encode - Construit un en-tête MIME avec les champs field_name et field_value
    • iconv_set_encoding - Modifie le jeu courant de caractères d'encodage
    • iconv_strlen - Retourne le nombre de caractères d'une chaîne
    • iconv_strpos - Trouve la position de la première occurrence d'une chaîne dans une autre
    • iconv_strrpos - Trouve la position de la dernière occurrence d'un élément dans une chaîne
    • iconv_substr - Coupe une partie de chaîne
    • id3_get_frame_long_name - Récupère le nom long d'un champs ID3v2
    • id3_get_frame_short_name - Récupère le nom court d'un champs ID3v2
    • id3_get_genre_id - Récupération d'un id pour un genre
    • id3_get_genre_list - Récupère toutes les valeurs possibles du genre
    • id3_get_genre_name - Récupère le nom pour un id de genre
    • id3_get_tag - Récupère toutes les informations stockées dans un tag ID3
    • id3_get_version - Récupère la version d'un tag ID3
    • id3_remove_tag - Efface un tag ID3
    • id3_set_tag - Met à jour les informations stockées dans un tag ID3
    • idate - Formate une date/heure locale en tant qu'entier
    • idn_to_ascii - Convertie un nom de domaine au format IDNA ASCII
    • idn_to_utf8 - Convertit le nom de domaine IDNA ASCII en Unicode
    • ifxus_close_slob - Ferme un objet SLOB
    • ifxus_create_slob - Crée un objet SLOB et l'ouvre
    • ifxus_free_slob - Supprime un objet SLOB
    • ifxus_open_slob - Ouvre un objet SLOB
    • ifxus_read_slob - Lit des octets dans un objet SLOB
    • ifxus_seek_slob - Fixe le fichier courant ou la position courante
    • ifxus_tell_slob - Retourne le fichier courant ou la position courante
    • ifxus_write_slob - Écrit une chaîne dans un objet SLOB
    • ifx_affected_rows - Retourne le nombre de lignes affectées par une requête
    • ifx_blobinfile_mode - Choisit le mode par défaut des objets BLOB pour toutes les requêtes SELECT
    • ifx_byteasvarchar - Choisit le mode par défaut des objets BYTE
    • ifx_close - Ferme une connexion à un serveur Informix
    • ifx_connect - Ouvre une connexion à un serveur Informix
    • ifx_copy_blob - Duplique un BLOB
    • ifx_create_blob - Crée un objet BLOB
    • ifx_create_char - Crée un objet char
    • ifx_do - Exécute une requête SQL préparée
    • ifx_error - Retourne le code d'erreur de la dernière requête Informix
    • ifx_errormsg - Retourne le message d'erreur de la dernière requête Informix
    • ifx_fetch_row - Retourne une ligne sous la forme d'un tableau énuméré
    • ifx_fieldproperties - Liste les propriétés des champs SQL
    • ifx_fieldtypes - Liste les champs Informix SQL
    • ifx_free_blob - Supprime un objet BLOB
    • ifx_free_char - Supprime un objet char
    • ifx_free_result - Libère les ressources prises par un résultat
    • ifx_getsqlca - Retourne le contenu de la variable sqlca.sqlerrd[0..5] après une requête
    • ifx_get_blob - Retourne le contenu d'un objet BLOB
    • ifx_get_char - Retourne le contenu d'un objet char
    • ifx_htmltbl_result - Lit toutes les lignes d'un tableau, et le met sous la forme d'un tableau HTML
    • ifx_nullformat - Modifie le mode par défaut de lecture des valeurs
    • ifx_num_fields - Retourne le nombre de colonnes d'une requête
    • ifx_num_rows - Compte le nombre de lignes déjà lues dans un résultat
    • ifx_pconnect - Ouvre une connexion persistante à un serveur Informix
    • ifx_prepare - Prépare une requête SQL pour l'exécution
    • ifx_query - Envoie une requête Informix
    • ifx_textasvarchar - Choisit le mode par défaut des objets texte
    • ifx_update_blob - Modifie le contenu d'un objet BLOB
    • ifx_update_char - Modifie le contenu d'un objet char
    • ignore_user_abort - Active l'interruption de script sur déconnexion du visiteur
    • iis_add_server - Crée un nouveau serveur web virtuel
    • iis_get_dir_security - Lit la configuration de sécurité du dossier
    • iis_get_script_map - Lit le mappage de script dans un dossier virtuel donné
    • iis_get_server_by_comment - Retourne le numéro d'instance associé à un Comment
    • iis_get_server_by_path - Retourne le numéro d'instance associé avec le chemin
    • iis_get_server_rights - Lit les droits du serveur
    • iis_get_service_state - Retourne l'état du service défini par ServiceId
    • iis_remove_server - Supprime le serveur IIS représenté par ServerInstance
    • iis_set_app_settings - Crée un espace d'exécution pour une application dans un dossier virtuel
    • iis_set_dir_security - Modifie la configuration de sécurité du dossier
    • iis_set_script_map - Modifie le mappage de script pour un dossier virtuel
    • iis_set_server_rights - Modifie les droits du serveur
    • iis_start_server - Démarre le serveur web virtuel
    • iis_start_service - Démarre le service IIS identifié par ServiceId
    • iis_stop_server - Stoppe le serveur web virtuel
    • iis_stop_service - Stoppe le service IIS identifié par ServiceId
    • image2wbmp - Affichage de l'image vers le navigateur ou dans un fichier
    • imageaffine - Retourne une image contenant l'image source transformé, en utilisant optionnellement une zone de découpe
    • imageaffinematrixconcat - Concatène deux matrices
    • imageaffinematrixget - Retourne une image contenant l'image source transformée, en utilisant optionnellement une zone de découpe
    • imagealphablending - Modifie le mode de blending d'une image
    • imageantialias - Utiliser ou non les fonctions d'antialias
    • imagearc - Dessine une ellipse partielle
    • imagechar - Dessine un caractère horizontalement
    • imagecharup - Dessine un caractère verticalement
    • imagecolorallocate - Alloue une couleur pour une image
    • imagecolorallocatealpha - Alloue une couleur à une image
    • imagecolorat - Retourne l'index de la couleur d'un pixel donné
    • imagecolorclosest - Retourne l'index de la couleur la plus proche d'une couleur donnée
    • imagecolorclosestalpha - Retourne la couleur la plus proche, en tenant compte du canal alpha
    • imagecolorclosesthwb - Lit l'index de la couleur spécifiée avec sa teinte, blanc et noir
    • imagecolordeallocate - Supprime une couleur d'une image
    • imagecolorexact - Retourne l'index de la couleur donnée
    • imagecolorexactalpha - Retourne l'index d'une couleur avec son canal alpha
    • imagecolormatch - Fait correspondre un peu plus les couleurs de la version palette d'une image aux couleurs de sa version truecolor
    • imagecolorresolve - Retourne l'index de la couleur donnée, ou la plus proche possible
    • imagecolorresolvealpha - Retourne un index de couleur ou son alternative la plus proche, y compris le canal alpha
    • imagecolorset - Change la couleur dans une palette à l'index donné
    • imagecolorsforindex - Retourne la couleur associée à un index
    • imagecolorstotal - Calcule le nombre de couleurs d'une palette
    • imagecolortransparent - Définit la couleur transparente
    • imageconvolution - Applique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage
    • imagecopy - Copie une partie d'une image
    • imagecopymerge - Copie et fusionne une partie d'une image
    • imagecopymergegray - Copie et fusionne une partie d'une image en niveaux de gris
    • imagecopyresampled - Copie, redimensionne, rééchantillonne une image
    • imagecopyresized - Copie et redimensionne une partie d'une image
    • imagecreate - Crée une nouvelle image à palette
    • imagecreatefromgd - Crée une nouvelle image à partir d'un fichier GD ou d'une URL
    • imagecreatefromgd2 - Crée une nouvelle image à partir d'un fichier GD2 ou d'une URL
    • imagecreatefromgd2part - Crée une nouvelle image à partir d'une partie de fichier GD2 ou d'une URL
    • imagecreatefromgif - Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefromjpeg - Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefrompng - Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefromstring - Crée une image à partir d'une chaîne
    • imagecreatefromwbmp - Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefromwebp - Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefromxbm - Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefromxpm - Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatetruecolor - Crée une nouvelle image en couleurs vraies
    • imagecrop - Recadre une image en utilisant les coordonnées, la taille, x, y, hauteur et largeur fournis
    • imagecropauto - Recadre une image automatiquement en utilisant un des modes disponibles
    • imagedashedline - Dessine une ligne pointillée
    • imagedestroy - Détruit une image
    • imageellipse - Dessine une ellipse
    • imagefill - Remplissage
    • imagefilledarc - Dessine un arc partiel et le remplit
    • imagefilledellipse - Dessine une ellipse pleine
    • imagefilledpolygon - Dessine un polygone rempli
    • imagefilledrectangle - Dessine un rectangle rempli
    • imagefilltoborder - Remplit une région avec une couleur spécifique
    • imagefilter - Applique un filtre à une image
    • imageflip - Retourne une image en utilisant le mode fourni
    • imagefontheight - Retourne la hauteur de la police
    • imagefontwidth - Retourne la largeur de la police
    • imageftbbox - Calcule le rectangle d'encadrement pour un texte, en utilisant la police courante et freetype2
    • imagefttext - Écrit du texte dans une image avec la police courante FreeType 2
    • imagegammacorrect - Applique une correction gamma à l'image GD
    • imagegd - Génère une image au format GD, vers le navigateur ou un fichier
    • imagegd2 - Génère une image au format GD2, vers le navigateur ou un fichier
    • imagegetclip - Get the clipping rectangle
    • imagegif - Affichage de l'image vers le navigateur ou dans un fichier
    • imagegrabscreen - Capture l'écran complet
    • imagegrabwindow - Capture une fenêtre
    • imageinterlace - Active ou désactive l'entrelacement
    • imageistruecolor - Détermine si une image est une image truecolor
    • imagejpeg - Affichage de l'image vers le navigateur ou dans un fichier
    • imagelayereffect - Active l'option d'alpha blending, pour utiliser les effets de libgd
    • imageline - Dessine une ligne
    • imageloadfont - Charge une nouvelle police
    • imageopenpolygon - Draws an open polygon
    • imagepalettecopy - Copie la palette d'une image à l'autre
    • imagepalettetotruecolor - Convertit une image basée sur une palette en couleur vraie
    • imagepng - Envoie une image PNG vers un navigateur ou un fichier
    • imagepolygon - Dessine un polygone
    • imagepsbbox - Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1
    • imagepsencodefont - Change le codage vectoriel d'un caractère dans une police
    • imagepsextendfont - Étend ou condense une police de caractères
    • imagepsfreefont - Libère la mémoire occupée par une police PostScript Type 1
    • imagepsloadfont - Charge une police PostScript Type 1 depuis un fichier
    • imagepsslantfont - Incline une police de caractères PostScript
    • imagepstext - Dessine un texte sur une image avec une police PostScript Type1
    • imagerectangle - Dessine un rectangle
    • imageresolution - Get or set the resolution of the image
    • imagerotate - Fait tourner une image d'un angle
    • imagesavealpha - Configure l'enregistrement des informations complètes du canal alpha lors de sauvegardes d'images PNG
    • imagescale - Met à l'échelle une image en utilisant une hauteur et une largeur fournies
    • imagesetbrush - Modifie la brosse pour le dessin des lignes
    • imagesetclip - Set the clipping rectangle
    • imagesetinterpolation - Défini la méthode d'interpolation
    • imagesetpixel - Dessine un pixel
    • imagesetstyle - Configure le style pour le dessin des lignes
    • imagesetthickness - Modifie l'épaisseur d'un trait
    • imagesettile - Modifie l'image utilisée pour le carrelage
    • imagestring - Dessine une chaîne horizontale
    • imagestringup - Dessine une chaîne verticale
    • imagesx - Retourne la largeur d'une image
    • imagesy - Retourne la hauteur de l'image
    • imagetruecolortopalette - Convertit une image en couleurs vraies en image à palette
    • imagettfbbox - Retourne le rectangle entourant un texte et dessiné avec une police TrueType
    • imagettftext - Dessine un texte avec une police TrueType
    • imagetypes - Retourne les types d'images supportés par la version courante de PHP
    • imagewbmp - Affichage de l'image vers le navigateur ou dans un fichier
    • imagewebp - Affiche une image WebP vers un navigateur ou un fichier
    • imagexbm - Génère une image au format XBM
    • image_type_to_extension - Retourne l'extension du fichier pour le type d'image
    • image_type_to_mime_type - Lit le Mime-Type d'un type d'image
    • Imagick::adaptiveBlurImage - Ajout un flou adaptatif à l'image
    • Imagick::adaptiveResizeImage - Redimensionne adaptativement une image par triangulation
    • Imagick::adaptiveSharpenImage - Augmente le contraste de l'image
    • Imagick::adaptiveThresholdImage - Sélectionne le niveau de chaque pixel, à partir d'un intervalle d'intensité
    • Imagick::addImage - Ajoute une nouvelle image à la liste d'image Imagick
    • Imagick::addNoiseImage - Ajoute un bruit blanc à une image
    • Imagick::affineTransformImage - Transforme une image
    • Imagick::animateImages - Anime une ou plusieurs images
    • Imagick::annotateImage - Annote une image avec un texte
    • Imagick::appendImages - Ajoute un jeu d'images
    • Imagick::autoLevelImage - Description
    • Imagick::averageImages - Moyenne d'un jeu d'images
    • Imagick::blackThresholdImage - Force tous les pixels au-delà d'un seuil à noir
    • Imagick::blueShiftImage - Description
    • Imagick::blurImage - Ajoute un filtre de flou à une image
    • Imagick::borderImage - Encadre une image avec un bord
    • Imagick::brightnessContrastImage - Description
    • Imagick::charcoalImage - Simule un dessin au fusain
    • Imagick::chopImage - Supprime une région d'une image et retaille
    • Imagick::clampImage - Description
    • Imagick::clear - Libère toutes les ressources associées à un objet Imagick
    • Imagick::clipImage - S'aligne sur le premier chemin d'un profil 8BIM
    • Imagick::clipImagePath - Description
    • Imagick::clipPathImage - Suit le chemin d'un profil 8BIM
    • Imagick::clone - Fait une copie exacte d'un objet Imagick
    • Imagick::clutImage - Remplace les couleurs d'une image
    • Imagick::coalesceImages - Compose un jeu d'images
    • Imagick::colorFloodfillImage - Change les pixels qui sont d'une couleur
    • Imagick::colorizeImage - Mélange la couleur de remplissage avec l'image
    • Imagick::colorMatrixImage - Description
    • Imagick::combineImages - Combine plusieurs images en une seule
    • Imagick::commentImage - Ajoute un commentaire à une image
    • Imagick::compareImageChannels - Retourne la différence entre plusieurs images
    • Imagick::compareImageLayers - Retourne la région d'encadrement maximale entre deux images
    • Imagick::compareImages - Compare une image avec une image reconstituée
    • Imagick::compositeImage - Compose une image avec une autre
    • Imagick::contrastImage - Change le contraste de l'image
    • Imagick::contrastStretchImage - Améliore le contraste d'une image
    • Imagick::convolveImage - Applique un noyau de convolution à une image
    • Imagick::count - Description
    • Imagick::cropImage - Extrait une région d'une image
    • Imagick::cropThumbnailImage - Crée une miniature par retaillage
    • Imagick::current - Retourne une référence sur l'objet imagick courant
    • Imagick::cycleColormapImage - Déplace la carte des couleurs d'une image
    • Imagick::decipherImage - Déchiffre une image
    • Imagick::deconstructImages - Retourne les différences de certains pixels entre deux images
    • Imagick::deleteImageArtifact - Supprime l'artefact d'une image
    • Imagick::deleteImageProperty - Description
    • Imagick::deskewImage - Supprime le biais de l'image
    • Imagick::despeckleImage - Réduit le bruit speckle d'une image
    • Imagick::destroy - Détruit un objet Imagick
    • Imagick::displayImage - Affiche une image
    • Imagick::displayImages - Affiche une image ou une séquence
    • Imagick::distortImage - Déforme une image avec différentes méthodes
    • Imagick::drawImage - Affiche un objet ImagickDraw dans l'image courante
    • Imagick::edgeImage - Renforce les bords dans l'image
    • Imagick::embossImage - Retourne une image en niveau de gris, avec un effet 3D
    • Imagick::encipherImage - Chiffre une image
    • Imagick::enhanceImage - Améliore la qualité d'une image bruitée
    • Imagick::equalizeImage - Égalise l'histogramme d'une image
    • Imagick::evaluateImage - Applique une expression à une image
    • Imagick::exportImagePixels - Exporte les pixels bruts de l'image
    • Imagick::extentImage - Définit la taille de l'image
    • Imagick::filter - Description
    • Imagick::flattenImages - Fusionne une séquence d'images
    • Imagick::flipImage - Crée une image par miroir vertical
    • Imagick::floodFillPaintImage - Modifie la valeur de la couleur de chaque pixel correspondant à la cible
    • Imagick::flopImage - Crée une image par miroir horizontal
    • Imagick::forwardFourierTransformImage - Description
    • Imagick::frameImage - Ajoute un bord 3D
    • Imagick::functionImage - Applique une fonction sur l'image
    • Imagick::fxImage - Évalue une expression pour chaque pixel d'une image
    • Imagick::gammaImage - Applique une correction gamma à l'image
    • Imagick::gaussianBlurImage - Ajoute du flou à image
    • Imagick::getColorspace - Récupère l'espace de couleurs
    • Imagick::getCompression - Lit le type de compression
    • Imagick::getCompressionQuality - Lit la qualité de la compression
    • Imagick::getCopyright - Retourne le copyright de l'API ImageMagick API
    • Imagick::getFilename - Lit le nom du fichier associé à une séquence
    • Imagick::getFont - Récupère la police de caractères
    • Imagick::getFormat - Retourne le format de l'image Imagick
    • Imagick::getGravity - Récupère la gravité
    • Imagick::getHomeURL - Retourne l'URL de ImageMagick
    • Imagick::getImage - Retourne un nouvel objet Imagick
    • Imagick::getImageAlphaChannel - Récupère le canal alpha de l'image
    • Imagick::getImageArtifact - Récupère l'artefact de l'image
    • Imagick::getImageAttribute - Description
    • Imagick::getImageBackgroundColor - Retourne la couleur de fond
    • Imagick::getImageBlob - Retourne la séquence d'images comme un blob
    • Imagick::getImageBluePrimary - Retourne la chromacité de la couleur bleue
    • Imagick::getImageBorderColor - Retourne la couleur de bordure de l'image
    • Imagick::getImageChannelDepth - Lit la profondeur d'un des canaux de l'image
    • Imagick::getImageChannelDistortion - Compare les canaux d'une image reconstituée
    • Imagick::getImageChannelDistortions - Récupère les distorsions d'un canal
    • Imagick::getImageChannelExtrema - Lit les extrêmes pour les canaux de l'image
    • Imagick::getImageChannelKurtosis - Le but de getImageChannelKurtosis
    • Imagick::getImageChannelMean - Lit la moyenne et la déviation standard
    • Imagick::getImageChannelRange - Récupère l'intervalle du canal
    • Imagick::getImageChannelStatistics - Retourne des statistiques sur chaque canal de l'image
    • Imagick::getImageClipMask - Récupère le masque du clip de l'image
    • Imagick::getImageColormapColor - Retourne la couleur à l'index de la carte de couleurs
    • Imagick::getImageColors - Lit le nombre de couleurs uniques de l'image
    • Imagick::getImageColorspace - Lit l'espace de couleurs de l'image
    • Imagick::getImageCompose - Retourne l'opérateur de composition associé à une image
    • Imagick::getImageCompression - Lit le type de compression de l'image
    • Imagick::getImageCompressionQuality - Lit la qualité de compression de l'image
    • Imagick::getImageDelay - Lit le délai de l'image
    • Imagick::getImageDepth - Lit la profondeur de l'image
    • Imagick::getImageDispose - Lit la méthode de récupération
    • Imagick::getImageDistortion - Compare une image à une image reconstituée
    • Imagick::getImageExtrema - Lit les extrêmes d'une image
    • Imagick::getImageFilename - Retourne le nom d'un fichier pour une image dans une séquence
    • Imagick::getImageFormat - Retourne le format d'une image dans une séquence
    • Imagick::getImageGamma - Lit le gamma de l'image
    • Imagick::getImageGeometry - Lit les dimensions de l'image dans un tableau
    • Imagick::getImageGravity - Récupère la gravité de l'image
    • Imagick::getImageGreenPrimary - Retourne la chromacité de la couleur verte
    • Imagick::getImageHeight - Retourne la hauteur de l'image
    • Imagick::getImageHistogram - Retourne l'histogramme de l'image
    • Imagick::getImageIndex - Lit l'index de l'image courante
    • Imagick::getImageInterlaceScheme - Lit le schéma d'entrelacement de l'image
    • Imagick::getImageInterpolateMethod - Retourne la méthode d'interpolation
    • Imagick::getImageIterations - Lit les itérations de l'image
    • Imagick::getImageLength - Retourne la taille de l'image en octets
    • Imagick::getImageMagickLicense - Retourne une chaîne avec la licence ImageMagick
    • Imagick::getImageMatte - Indique si l'image a un canal mat
    • Imagick::getImageMatteColor - Retourne la couleur mate de l'image
    • Imagick::getImageMimeType - Description
    • Imagick::getImageOrientation - Lit l'orientation de l'image
    • Imagick::getImagePage - Retourne la géométrie de la page
    • Imagick::getImagePixelColor - Retourne la couleur d'un pixel
    • Imagick::getImageProfile - Retourne un profil d'une image
    • Imagick::getImageProfiles - Retourne les profils de l'image
    • Imagick::getImageProperties - Retourne les propriétés EXIF de l'image
    • Imagick::getImageProperty - Retourne une propriété d'une image
    • Imagick::getImageRedPrimary - Retourne la chromacité du point rouge
    • Imagick::getImageRegion - Extrait une région d'une image
    • Imagick::getImageRenderingIntent - Lit la méthode de rendu de l'image
    • Imagick::getImageResolution - Lit les résolutions en X et Y d'une image
    • Imagick::getImagesBlob - Retourne toutes les images de la séquence en un BLOB
    • Imagick::getImageScene - Retourne la scène de l'image
    • Imagick::getImageSignature - Génère une signature SHA-256
    • Imagick::getImageSize - Retourne la taille de l'image en octets
    • Imagick::getImageTicksPerSecond - Lit les ticks-par-seconde de l'image
    • Imagick::getImageTotalInkDensity - Lit la densité totale d'encre de l'image
    • Imagick::getImageType - Lit le type possible d'image
    • Imagick::getImageUnits - Retourne les unités de résolution de l'image
    • Imagick::getImageVirtualPixelMethod - Retourne la méthode du pixel virtuel
    • Imagick::getImageWhitePoint - Retourne la chromacité du point blanc
    • Imagick::getImageWidth - Retourne la largeur de l'image
    • Imagick::getInterlaceScheme - Lit le schéma d'entrelacement de l'objet
    • Imagick::getIteratorIndex - Lit l'index de l'image active courante
    • Imagick::getNumberImages - Retourne le nombre d'images d'un objet
    • Imagick::getOption - Retourne la valeur d'une option
    • Imagick::getPackageName - Retourne le nom du paquet ImageMagick
    • Imagick::getPage - Retourne la géométrie de la page
    • Imagick::getPixelIterator - Retourne un MagickPixelIterator
    • Imagick::getPixelRegionIterator - Lit un objet ImagickPixelIterator pour une section d'image
    • Imagick::getPointSize - Récupère la taille du point
    • Imagick::getQuantum - Description
    • Imagick::getQuantumDepth - Lit la profondeur quantique
    • Imagick::getQuantumRange - Retourne l'intervalle quantique de Imagick
    • Imagick::getRegistry - Description
    • Imagick::getReleaseDate - Retourne la date de publication de ImageMagick
    • Imagick::getResource - Retourne la consommation de mémoire de la ressource
    • Imagick::getResourceLimit - Retourne la limite de la ressource
    • Imagick::getSamplingFactors - Lit le facteur d'échantillonnage horizontal et vertical
    • Imagick::getSize - Retourne la taille associée avec un objet Imagick
    • Imagick::getSizeOffset - Retourne la taille de la position
    • Imagick::getVersion - Retourne l'API de ImageMagick API
    • Imagick::haldClutImage - Remplace les couleurs de l'image
    • Imagick::hasNextImage - Vérifie si un objet a une image suivante
    • Imagick::hasPreviousImage - Vérifie si un objet a une image précédente
    • Imagick::identifyFormat - Description
    • Imagick::identifyImage - Identifie une image et lit ses attributs
    • Imagick::implodeImage - Crée une nouvelle copie d'image
    • Imagick::importImagePixels - Importe des pixels dans une image
    • Imagick::inverseFourierTransformImage - Description
    • Imagick::labelImage - Ajoute un libelle à une image
    • Imagick::levelImage - Ajuste les niveaux de l'image
    • Imagick::linearStretchImage - Étire la saturation de l'intensité de l'image
    • Imagick::liquidRescaleImage - Anime une ou plusieurs images
    • Imagick::listRegistry - Description
    • Imagick::magnifyImage - Double la taille d'une image, proportionnellement
    • Imagick::mapImage - Remplace la couleur d'une image par celle d'une image de référence
    • Imagick::matteFloodfillImage - Change la transparence d'une couleur
    • Imagick::medianFilterImage - Applique un filtre numérique
    • Imagick::mergeImageLayers - Fusionne les calques de l'image
    • Imagick::minifyImage - Met à l'échelle une image proportionnellement pour la réduire de moitié de taille
    • Imagick::modulateImage - Contrôle la saturation, l'intensité et la teinte
    • Imagick::montageImage - Crée une image composite
    • Imagick::morphImages - Réalise un morphing entre deux images
    • Imagick::morphology - Description
    • Imagick::mosaicImages - Forme une mosaïque d'images
    • Imagick::motionBlurImage - Ajout un flou de déplacement
    • Imagick::negateImage - Effectue la négation des couleurs d'une image de référence
    • Imagick::newImage - Crée une nouvelle image
    • Imagick::newPseudoImage - Crée une nouvelle image
    • Imagick::nextImage - Passe à la prochaine image
    • Imagick::normalizeImage - Améliore le contraste de l'image
    • Imagick::oilPaintImage - Simule une peinture à l'huile
    • Imagick::opaquePaintImage - Modifie la valeur de la couleur de tous les pixels correspondant à la cible
    • Imagick::optimizeImageLayers - Supprime les portions récurrents d'images à optimiser
    • Imagick::orderedPosterizeImage - Effectue un dither ordonné
    • Imagick::paintOpaqueImage - Change les pixels qui sont d'une couleur
    • Imagick::paintTransparentImage - Remplit les pixels avec une couleur
    • Imagick::pingImage - Lit des attributs simples sans ouvrir une image
    • Imagick::pingImageBlob - Lit rapidement les attributs
    • Imagick::pingImageFile - Lit les attributs simples d'une image
    • Imagick::polaroidImage - Simule une photo Polaroid
    • Imagick::posterizeImage - Réduit une image à un nombre limité de couleurs
    • Imagick::previewImages - Teste rapidement différents paramètres pour un traitement d'images
    • Imagick::previousImage - Passe à l'image précédente dans une séquence d'images
    • Imagick::profileImage - Ajoute ou retire un profil d'une image
    • Imagick::quantizeImage - Analyse les couleurs dans une référence d'image
    • Imagick::quantizeImages - Analyse les couleurs d'une séquence d'images
    • Imagick::queryFontMetrics - Retourne un tableau représentant les dimensions de la police
    • Imagick::queryFonts - Retourne la liste de polices configurés
    • Imagick::queryFormats - Retourne les formats supportés par Imagick
    • Imagick::radialBlurImage - Flou radial d'une image
    • Imagick::raiseImage - Crée un effet 3D de bouton
    • Imagick::randomThresholdImage - Crée une image en deux couleurs, à haut contraste
    • Imagick::readImage - Lit une image depuis un fichier
    • Imagick::readImageBlob - Lit une image depuis une chaîne binaire
    • Imagick::readImageFile - Lit une image à partir d'une ressource fichier
    • Imagick::readimages - Description
    • Imagick::recolorImage - Recolore l'image
    • Imagick::reduceNoiseImage - Adoucit les contours d'une image
    • Imagick::remapImage - Reconfigure les couleurs de l'image
    • Imagick::removeImage - Retire une image de la liste
    • Imagick::removeImageProfile - Supprime le profil de l'image et le retourne
    • Imagick::render - Affiche toute les commandes de dessins précédentes
    • Imagick::resampleImage - Rééchantillonne l'image
    • Imagick::resetImagePage - Réinitialise la page de l'image
    • Imagick::resizeImage - Redimensionne une image
    • Imagick::rollImage - Décale une image
    • Imagick::rotateImage - Tourne une image
    • Imagick::rotationalBlurImage - Description
    • Imagick::roundCorners - Arrondit les coins d'un image
    • Imagick::sampleImage - Met à l'échelle une image avec échantillonnage de pixels
    • Imagick::scaleImage - Met à l'échelle la taille de l'image
    • Imagick::segmentImage - Segmente une image
    • Imagick::selectiveBlurImage - Description
    • Imagick::separateImageChannel - Sépare un canal d'une image
    • Imagick::sepiaToneImage - Passe une image en tons sépia
    • Imagick::setBackgroundColor - Configure la couleur de fond par défaut
    • Imagick::setColorspace - Définit l'espace de couleurs
    • Imagick::setCompression - Configure le type de compression de l'objet
    • Imagick::setCompressionQuality - Configure la compression par défaut de l'objet
    • Imagick::setFilename - Configure le nom du fichier d'image avant d'y accéder
    • Imagick::setFirstIterator - Place l'itérateur de Imagick sur la première image
    • Imagick::setFont - Configure la police
    • Imagick::setFormat - Configure le format de l'objet Imagick
    • Imagick::setGravity - Définit la gravité
    • Imagick::setImage - Remplace l'image dans l'objet
    • Imagick::setImageAlphaChannel - Définit le canal alpha de l'image
    • Imagick::setImageArtifact - Définit l'artefact de l'image
    • Imagick::setImageAttribute - Description
    • Imagick::setImageBackgroundColor - Configure la couleur de fond d'image
    • Imagick::setImageBias - Configure le biais pour les convolutions
    • Imagick::setImageBiasQuantum - Description
    • Imagick::setImageBluePrimary - Configure la chromacité du point bleu
    • Imagick::setImageBorderColor - Configure la couleur de bordure
    • Imagick::setImageChannelDepth - Configure la profondeur d'un canal
    • Imagick::setImageClipMask - Définit le masque du clip de l'image
    • Imagick::setImageColormapColor - Configure une couleur de la carte
    • Imagick::setImageColorspace - Configure l'espace de couleurs de l'image
    • Imagick::setImageCompose - Configure l'opérateur de composition de l'image
    • Imagick::setImageCompression - Configure la compression de l'image
    • Imagick::setImageCompressionQuality - Spécifie la qualité de compression de l'image
    • Imagick::setImageDelay - Configure le délai de l'image
    • Imagick::setImageDepth - Configure la profondeur de l'image
    • Imagick::setImageDispose - Configure la méthode de récupération
    • Imagick::setImageExtent - Configure la taille d'une image
    • Imagick::setImageFilename - Configure le nom de fichier d'une image dans une séquence
    • Imagick::setImageFormat - Configure le format d'une image dans une séquence
    • Imagick::setImageGamma - Configure la correction gamma
    • Imagick::setImageGravity - Définit la gravité de l'image
    • Imagick::setImageGreenPrimary - Configure la chromacité du point vert
    • Imagick::setImageIndex - Modifie la position de l'itérateur
    • Imagick::setImageInterlaceScheme - Configure la méthode d'entrelacement de l'image
    • Imagick::setImageInterpolateMethod - Configure la méthode d'interpolation de l'image
    • Imagick::setImageIterations - Configure les itérations de l'image
    • Imagick::setImageMatte - Configure le canal mate de l'image
    • Imagick::setImageMatteColor - Configure la couleur mate
    • Imagick::setImageOpacity - Configure le niveau d'opacité de l'image
    • Imagick::setImageOrientation - Configure l'orientation de l'image
    • Imagick::setImagePage - Configure la géométrie de la page de l'image
    • Imagick::setImageProfile - Ajoute un profil à un objet Imagick
    • Imagick::setImageProperty - Configure une propriété d'image
    • Imagick::setImageRedPrimary - Configure la chromacité du point rouge
    • Imagick::setImageRenderingIntent - Configure le type de rendu de l'image
    • Imagick::setImageResolution - Configure la résolution de l'image
    • Imagick::setImageScene - Configure la scène de l'image
    • Imagick::setImageTicksPerSecond - Configure le nombre e tick par seconde de l'image
    • Imagick::setImageType - Configure le type d'image
    • Imagick::setImageUnits - Configure les unités de résolutions de l'image
    • Imagick::setImageVirtualPixelMethod - Configure la méthode du point virtuel de l'image
    • Imagick::setImageWhitePoint - Configure la chromacité du point blanc
    • Imagick::setInterlaceScheme - Configure la compression de l'image
    • Imagick::setIteratorIndex - Déplace l'itérateur
    • Imagick::setLastIterator - Positionne l'itérateur Imagick à la dernière image
    • Imagick::setOption - Configure une option d'un objet Imagick
    • Imagick::setPage - Configure la géométrie de la page de l'objet Imagick
    • Imagick::setPointSize - Définit la taille du point
    • Imagick::setProgressMonitor - Description
    • Imagick::setRegistry - Description
    • Imagick::setResolution - Configure la résolution de l'image
    • Imagick::setResourceLimit - Configure la taille limite d'une ressource
    • Imagick::setSamplingFactors - Configure les facteurs d'échantillonnage de l'image
    • Imagick::setSize - Configure la taille de l'objet Imagick
    • Imagick::setSizeOffset - Configure la taille et la position de l'objet Imagick
    • Imagick::setType - Configure l'attribut de l'image
    • Imagick::shadeImage - Crée un effet 3D
    • Imagick::shadowImage - Simule une ombre sur l'image
    • Imagick::sharpenImage - Aiguise une image
    • Imagick::shaveImage - Supprime les pixels du bord de l'image
    • Imagick::shearImage - Crée un parallélogramme
    • Imagick::sigmoidalContrastImage - Ajuste le contraste de l'image
    • Imagick::sketchImage - Simule un crayon à main levée
    • Imagick::smushImages - Description
    • Imagick::solarizeImage - Applique un effet de solarisation à l'image
    • Imagick::sparseColorImage - Interpole les couleurs
    • Imagick::spliceImage - Joint une couleur solide dans l'image
    • Imagick::spreadImage - Bouge aléatoirement chaque pixel d'un bloc
    • Imagick::statisticImage - Description
    • Imagick::steganoImage - Cache un filigrane digital dans l'image
    • Imagick::stereoImage - Fusionne 2 images
    • Imagick::stripImage - Supprime d'une image tous les profiles et les commentaires
    • Imagick::subImageMatch - Description
    • Imagick::swirlImage - Tourbillonne les pixels du centre de l'image
    • Imagick::textureImage - Répète les carreaux de la texture d'une image
    • Imagick::thresholdImage - Modifie la valeur des pixels individuels, basée sur un seuil
    • Imagick::thumbnailImage - Modifie la taille d'une image
    • Imagick::tintImage - Applique un vecteur de couleur à chaque pixel de l'image
    • Imagick::transformImage - Méthode de convenance pour définir la taille de rognage et la géométrie de l'image
    • Imagick::transformImageColorspace - Transforms an image to a new colorspace.
    • Imagick::transparentPaintImage - Colorise les pixels transparents
    • Imagick::transposeImage - Applique une symétrie verticale
    • Imagick::transverseImage - Crée un miroir horizontal de l'image
    • Imagick::trimImage - Supprime les bords de l'image
    • Imagick::uniqueImageColors - Ne conserve qu'une couleur de pixel
    • Imagick::unsharpMaskImage - Rend une image plus nette
    • Imagick::valid - Vérifie si l'élément courant est valide
    • Imagick::vignetteImage - Ajout un filtre vignette à l'image
    • Imagick::waveImage - Ajoute un filtre de vagues à l'image
    • Imagick::whiteThresholdImage - Force tous les pixels en dessous du seuil en blanc
    • Imagick::writeImage - Écrit une image dans le fichier spécifié
    • Imagick::writeImageFile - Écrit une image dans un descripteur de fichier
    • Imagick::writeImages - Écrit une image ou une séquence d'images
    • Imagick::writeImagesFile - Écrits des frames dans un descripteur de fichiers
    • Imagick::__construct - Le constructeur Imagick
    • Imagick::__toString - Returns the image as a string.
    • ImagickDraw::affine - Ajuste la matrice de transformation affine courante
    • ImagickDraw::annotation - Dessine un texte sur une image
    • ImagickDraw::arc - Dessine un arc
    • ImagickDraw::bezier - Dessine une courbe de Bézier
    • ImagickDraw::circle - Dessine un cercle
    • ImagickDraw::clear - Efface tout l'objet ImagickDraw
    • ImagickDraw::clone - Fait une copie exacte de l'objet ImagickDraw
    • ImagickDraw::color - Dessine une couleur sur une image
    • ImagickDraw::comment - Ajoute un commentaire
    • ImagickDraw::composite - Compose une image avec une autre
    • ImagickDraw::destroy - Libère toutes les ressources associées à un objet ImageDraw
    • ImagickDraw::ellipse - Dessine une ellipse sur une image
    • ImagickDraw::getClipPath - Retourne l'identifiant du chemin courant
    • ImagickDraw::getClipRule - Retourne la règle de remplissage courante pour les polygones
    • ImagickDraw::getClipUnits - Retourne l'unité d'interprétation des chemins
    • ImagickDraw::getFillColor - Retourne la couleur de remplissage
    • ImagickDraw::getFillOpacity - Retourne l'opacité de dessin
    • ImagickDraw::getFillRule - Retourne la règle de remplissage
    • ImagickDraw::getFont - Retourne la police
    • ImagickDraw::getFontFamily - Retourne la famille de police
    • ImagickDraw::getFontSize - Retourne la taille de la police
    • ImagickDraw::getFontStretch - Description
    • ImagickDraw::getFontStyle - Retourne le style de la police
    • ImagickDraw::getFontWeight - Retourne le poids de la police
    • ImagickDraw::getGravity - Retourne la gravité de placement de texte
    • ImagickDraw::getStrokeAntialias - Retourne la configuration d'anti-aliasing de trait
    • ImagickDraw::getStrokeColor - Retourne la couleur des contours d'objets
    • ImagickDraw::getStrokeDashArray - Retourne un tableau représentant le motif de pointillés
    • ImagickDraw::getStrokeDashOffset - Retourne l'offset du pointillé dans le motif
    • ImagickDraw::getStrokeLineCap - Retourne la forme à utiliser pour dessiner les bouts de sous-chemins
    • ImagickDraw::getStrokeLineJoin - Retourne la forme à utiliser pour dessiner les coins d'un chemin
    • ImagickDraw::getStrokeMiterLimit - Retourne la 'miterLimit'
    • ImagickDraw::getStrokeOpacity - Retourne l'opacité des contours d'un objet
    • ImagickDraw::getStrokeWidth - Retourne la largeur du trait utilisé
    • ImagickDraw::getTextAlignment - Retourne l'alignement du texte
    • ImagickDraw::getTextAntialias - Retourne la configuration de l'anti-aliasing de texte
    • ImagickDraw::getTextDecoration - Retourne la décoration du texte
    • ImagickDraw::getTextEncoding - Retourne le jeu de caractères utilisé pour les annotations de texte
    • ImagickDraw::getTextInterlineSpacing - Description
    • ImagickDraw::getTextInterwordSpacing - Description
    • ImagickDraw::getTextKerning - Description
    • ImagickDraw::getTextUnderColor - Retourne la couleur sous le texte
    • ImagickDraw::getVectorGraphics - Retourne une chaîne contenant le vecteur graphique
    • ImagickDraw::line - Dessine une ligne
    • ImagickDraw::matte - Dessine sur le canal d'opacité de l'image
    • ImagickDraw::pathClose - Ajoute un élément de chemin au chemin courant
    • ImagickDraw::pathCurveToAbsolute - Dessine une courbe de Bézier cubique, en coordonnées absolues
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute - Dessine une courbe de Bézier quadratique, en coordonnées absolues
    • ImagickDraw::pathCurveToQuadraticBezierRelative - Dessine une courbe de Bézier quadratique, en coordonnées relatives
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute - Dessine une courbe de Bézier de puissance 4, en coordonnées absolues
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative - Dessine une courbe de Bézier de puissance 4, en coordonnées relatives
    • ImagickDraw::pathCurveToRelative - Dessine une courbe de Bézier cubique, en coordonnées relatives
    • ImagickDraw::pathCurveToSmoothAbsolute - Dessine une courbe de Bézier, en coordonnées absolues
    • ImagickDraw::pathCurveToSmoothRelative - Dessine une courbe de Bézier, en coordonnées relatives
    • ImagickDraw::pathEllipticArcAbsolute - Dessine un arc d'ellipse, en coordonnées absolues
    • ImagickDraw::pathEllipticArcRelative - Dessine un arc d'ellipse, en coordonnées relatives
    • ImagickDraw::pathFinish - Termine le chemin courant
    • ImagickDraw::pathLineToAbsolute - Dessine une ligne de chemin, en coordonnées absolues
    • ImagickDraw::pathLineToHorizontalAbsolute - Dessine une ligne de chemin horizontale, en coordonnées absolues
    • ImagickDraw::pathLineToHorizontalRelative - Dessine une ligne de chemin horizontale, en coordonnées relatives
    • ImagickDraw::pathLineToRelative - Dessine une ligne de chemin, en coordonnées relatives
    • ImagickDraw::pathLineToVerticalAbsolute - Dessine une ligne de chemin verticale, en coordonnées absolues
    • ImagickDraw::pathLineToVerticalRelative - Dessine une ligne de chemin verticale, en coordonnées relatives
    • ImagickDraw::pathMoveToAbsolute - Commence un nouveau sous-chemin, en coordonnées absolues
    • ImagickDraw::pathMoveToRelative - Commence un nouveau sous-chemin, en coordonnées relatives
    • ImagickDraw::pathStart - Déclare le début d'une chemin de dessin
    • ImagickDraw::point - Dessine un point
    • ImagickDraw::polygon - Dessine un polygone
    • ImagickDraw::polyline - Dessine une ligne brisée
    • ImagickDraw::pop - Détruit l'objet ImagickDraw courant dans la pile, et retourne son précédent
    • ImagickDraw::popClipPath - Termine la définition d'un chemin
    • ImagickDraw::popDefs - Termine une définition de liste
    • ImagickDraw::popPattern - Termine une définition de motif
    • ImagickDraw::push - Clone l'objet ImagickDraw courant et le pousse dans la pile
    • ImagickDraw::pushClipPath - Commence la définition d'un chemin
    • ImagickDraw::pushDefs - Indique que la commande suivante créée des éléments nommés pour pré-traitement
    • ImagickDraw::pushPattern - Configure un espace de dessin
    • ImagickDraw::rectangle - Dessine un rectangle
    • ImagickDraw::render - Effectue le rendu de tous les dessins à l'image
    • ImagickDraw::resetVectorGraphics - Description
    • ImagickDraw::rotate - Applique une rotation
    • ImagickDraw::roundRectangle - Dessine un rectangle aux coins arrondis
    • ImagickDraw::scale - Ajuste le facteur de mise à l'échelle
    • ImagickDraw::setClipPath - Associe un chemin avec une image
    • ImagickDraw::setClipRule - Configure la règle de remplissage du polygone à utiliser avec les chemins
    • ImagickDraw::setClipUnits - Configure le mode d'interprétation des unités de chemin
    • ImagickDraw::setFillAlpha - Configure l'opacité de la couleur de remplissage
    • ImagickDraw::setFillColor - Configure la couleur de dessin des objets remplis
    • ImagickDraw::setFillOpacity - Configure l'opacité à utiliser pour le remplissage
    • ImagickDraw::setFillPatternURL - Configure l'URL du motif de remplissage des surfaces
    • ImagickDraw::setFillRule - Configure la règle de remplissage des polygones
    • ImagickDraw::setFont - Configure la police complète pour les textes
    • ImagickDraw::setFontFamily - Configure la famille de police pour les textes
    • ImagickDraw::setFontSize - Configure la taille de point pour les textes
    • ImagickDraw::setFontStretch - Configure l'étirement du texte
    • ImagickDraw::setFontStyle - Configure le style de police
    • ImagickDraw::setFontWeight - Configure le poids de la police
    • ImagickDraw::setGravity - Configure la gravité de placement de texte
    • ImagickDraw::setResolution - Description
    • ImagickDraw::setStrokeAlpha - Spécifie l'opacité des contours d'objets
    • ImagickDraw::setStrokeAntialias - Contrôle l'anti-aliasing des pointillés
    • ImagickDraw::setStrokeColor - Configure la couleur utilisée pour dessiner les objets
    • ImagickDraw::setStrokeDashArray - Spécifie le motif de pointillé
    • ImagickDraw::setStrokeDashOffset - Spécifie la position dans le motif pour commencer le pointillé
    • ImagickDraw::setStrokeLineCap - Spécifie la forme à utiliser à la fin des sous-chemins
    • ImagickDraw::setStrokeLineJoin - Spécifie la forme à utiliser pour dessiner les fins de lignes
    • ImagickDraw::setStrokeMiterLimit - Spécifie la limiter miter
    • ImagickDraw::setStrokeOpacity - Spécifie l'opacité pour dessiner les contours
    • ImagickDraw::setStrokePatternURL - Configure le motif utilisé pour dessiner les contours
    • ImagickDraw::setStrokeWidth - Configure la largeur du trait pour dessiner les contours
    • ImagickDraw::setTextAlignment - Spécifie l'alignement du texte
    • ImagickDraw::setTextAntialias - Contrôle l'anti-alisasing du texte
    • ImagickDraw::setTextDecoration - Spécifie les ornements de texte
    • ImagickDraw::setTextEncoding - Spécifie le jeu de caractères
    • ImagickDraw::setTextInterlineSpacing - Description
    • ImagickDraw::setTextInterwordSpacing - Description
    • ImagickDraw::setTextKerning - Description
    • ImagickDraw::setTextUnderColor - Spécifie la couleur de fond d'une rectangle
    • ImagickDraw::setVectorGraphics - Configure le vecteur graphique
    • ImagickDraw::setViewbox - Configure la taille du canevas
    • ImagickDraw::skewX - Biaise les coordonnées dans la direction horizontale
    • ImagickDraw::skewY - Incline les coordonnées dans la direction verticale
    • ImagickDraw::translate - Applique une translation
    • ImagickDraw::__construct - Le constructeur ImagickDraw
    • ImagickKernel::addKernel - Description
    • ImagickKernel::addUnityKernel - Description
    • ImagickKernel::fromBuiltIn - Description
    • ImagickKernel::fromMatrix - Description
    • ImagickKernel::getMatrix - Description
    • ImagickKernel::scale - Description
    • ImagickKernel::separate - Description
    • ImagickPixel::clear - Supprime toutes les ressources associées avec l'objet
    • ImagickPixel::destroy - Libère les ressources associées avec l'objet
    • ImagickPixel::getColor - Retourne la couleur
    • ImagickPixel::getColorAsString - Retourne une couleur
    • ImagickPixel::getColorCount - Retourne le nombre de couleurs associé avec une couleur
    • ImagickPixel::getColorQuantum - Description
    • ImagickPixel::getColorValue - Récupère la valeur normalisée du canal de la couleur fournie
    • ImagickPixel::getColorValueQuantum - Description
    • ImagickPixel::getHSL - Retourne la couleur HSL normalisée de l'objet ImagickPixel
    • ImagickPixel::getIndex - Description
    • ImagickPixel::isPixelSimilar - Vérifie la distance entre cette couleur et une autre
    • ImagickPixel::isPixelSimilarQuantum - Description
    • ImagickPixel::isSimilar - Vérifie la distance entre 2 couleurs
    • ImagickPixel::setColor - Définit la couleur
    • ImagickPixel::setColorCount - Description
    • ImagickPixel::setColorValue - Définit la valeur normalisée d'un des canaux
    • ImagickPixel::setColorValueQuantum - Description
    • ImagickPixel::setHSL - Définit la couleur HSL normalisée
    • ImagickPixel::setIndex - Description
    • ImagickPixel::__construct - Le constructeur ImagickPixel
    • ImagickPixelIterator::clear - Efface toutes les ressources associées à PixelIterator
    • ImagickPixelIterator::destroy - Libère les ressources associées à PixelIterator
    • ImagickPixelIterator::getCurrentIteratorRow - Retourne la ligne courante des objets ImagickPixel
    • ImagickPixelIterator::getIteratorRow - Retourne la ligne courante de l'itérateur de pixel
    • ImagickPixelIterator::getNextIteratorRow - Retourne la prochaine ligne de l'itérateur de pixel
    • ImagickPixelIterator::getPreviousIteratorRow - Retourne la ligne précédente
    • ImagickPixelIterator::newPixelIterator - Retourne un nouveau pixel de l'itérateur
    • ImagickPixelIterator::newPixelRegionIterator - Retourne un nouveau pixel de l'itérateur
    • ImagickPixelIterator::resetIterator - Réinitialise l'itérateur de pixel
    • ImagickPixelIterator::setIteratorFirstRow - Définit l'itérateur de pixel sur la première ligne de pixels
    • ImagickPixelIterator::setIteratorLastRow - Définit l'itérateur de pixel sur la dernière ligne de pixels
    • ImagickPixelIterator::setIteratorRow - Définit la ligne de l'itérateur de pixel
    • ImagickPixelIterator::syncIterator - Synchronise l'itérateur de pixel
    • ImagickPixelIterator::__construct - Le constructeur ImagickPixelIterator
    • imap_8bit - Convertit une chaîne à 8 bits en une chaîne encodée en Quoted-Printable
    • imap_alerts - Retourne toutes les alertes
    • imap_append - Ajoute un message dans une boîte aux lettres
    • imap_base64 - Décode un texte encodé en BASE64
    • imap_binary - Convertit une chaîne à 8 bits en une chaîne à base64
    • imap_body - Lit le corps d'un message
    • imap_bodystruct - Lit la structure d'une section du corps d'un mail
    • imap_check - Vérifie la boîte aux lettres courante
    • imap_clearflag_full - Supprime un flag (drapeau) sur un message
    • imap_close - Termine un flux IMAP
    • imap_create - Alias de imap_createmailbox
    • imap_createmailbox - Crée une nouvelle boîte aux lettres
    • imap_delete - Marque le fichier pour l'effacement, dans la boîte aux lettres courante
    • imap_deletemailbox - Efface une boîte aux lettres
    • imap_errors - Retourne toutes les erreurs IMAP survenues
    • imap_expunge - Efface tous les messages marqués pour l'effacement
    • imap_fetchbody - Retourne une section extraite du corps d'un message
    • imap_fetchheader - Retourne l'en-tête d'un message
    • imap_fetchmime - Récupère les en-têtes MIME pour une section particulière du message
    • imap_fetchstructure - Lit la structure d'un message
    • imap_fetchtext - Alias de imap_body
    • imap_fetch_overview - Lit le sommaire des en-têtes de messages
    • imap_gc - Efface le cache IMAP
    • imap_getacl - Retourne le ACL pour la boîte aux lettres
    • imap_getmailboxes - Liste les boîtes aux lettres, et retourne les détails de chacune
    • imap_getsubscribed - Liste toutes les boîtes aux lettres souscrites
    • imap_get_quota - Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles
    • imap_get_quotaroot - Lit les quotas de chaque utilisateur
    • imap_header - Alias de imap_headerinfo
    • imap_headerinfo - Lit l'en-tête du message
    • imap_headers - Retourne les en-têtes de tous les messages d'une boîte aux lettres
    • imap_last_error - Retourne la dernière erreur survenue
    • imap_list - Lit la liste des boîtes aux lettres
    • imap_listmailbox - Alias de imap_list
    • imap_listscan - Lit la liste des boîtes aux lettres, et y recherche une chaîne
    • imap_listsubscribed - Alias de imap_lsub
    • imap_lsub - Liste toutes les boîtes aux lettres enregistrées
    • imap_mail - Envoie un message mail
    • imap_mailboxmsginfo - Lit les informations à propos de la boîte aux lettres courante
    • imap_mail_compose - Crée un message MIME
    • imap_mail_copy - Copie les messages spécifiés dans une boîte aux lettres
    • imap_mail_move - Déplace des messages dans une boîte aux lettres
    • imap_mime_header_decode - Décode les éléments MIME d'un en-tête
    • imap_msgno - Retourne le numéro de séquence du message pour un UID donné
    • imap_num_msg - Retourne le nombre de messages dans la boîte aux lettres courante
    • imap_num_recent - Retourne le nombre de messages récents dans la boîte aux lettres courante
    • imap_open - Ouvre un flux IMAP vers une boîte aux lettres
    • imap_ping - Vérifie que le flux IMAP est toujours actif
    • imap_qprint - Convertit une chaîne à guillemets en une chaîne à 8 bits
    • imap_rename - Alias de imap_renamemailbox
    • imap_renamemailbox - Renomme une boîte aux lettres
    • imap_reopen - Réouvre un flux IMAP vers une nouvelle boîte aux lettres
    • imap_rfc822_parse_adrlist - Analyse une adresse email
    • imap_rfc822_parse_headers - Analyse un en-tête mail
    • imap_rfc822_write_address - Retourne une adresse email formatée correctement
    • imap_savebody - Sauvegarde une partie spécifique du corps dans un fichier
    • imap_scan - Alias de imap_listscan
    • imap_scanmailbox - Alias de imap_listscan
    • imap_search - Retourne un tableau de messages après recherche
    • imap_setacl - Modifie le ACL de la boîte aux lettres
    • imap_setflag_full - Positionne un drapeau sur un message
    • imap_set_quota - Modifie le quota d'une boîte aux lettres
    • imap_sort - Trie des messages
    • imap_status - Retourne les informations de statut sur une boîte aux lettres
    • imap_subscribe - Souscrit à une boîte aux lettres
    • imap_thread - Retourne l'arbre des messages organisés par thread
    • imap_timeout - Configure ou retourne le timeout
    • imap_uid - Retourne l'UID d'un message
    • imap_undelete - Enlève la marque d'effacement d'un message
    • imap_unsubscribe - Termine la souscription à une boîte aux lettres
    • imap_utf7_decode - Décode une chaîne encodée en UTF-7 modifié
    • imap_utf7_encode - Convertit une chaîne ISO-8859-1 en texte UTF-7 modifié
    • imap_utf8 - Convertit du texte au format MIME en UTF-8
    • implode - Rassemble les éléments d'un tableau en une chaîne
    • import_request_variables - Importe les variables de GET/POST/Cookie dans l'environnement global
    • inclued_get_data - Lit les données incluses
    • Indications sur le SQL supporté par 4D - PDO et SQL 4D
    • inet_ntop - Convertit un paquet d'adresses internet en une représentation humainement lisible
    • inet_pton - Convertit une adresse IP lisible en sa représentation in_addr
    • InfiniteIterator::next - Avance l'itérateur ou le replace au début
    • InfiniteIterator::__construct - Construit un InfiniteIterator
    • inflate_add - Incrementally inflate encoded data
    • inflate_init - Initialize an incremental inflate context
    • ingres_autocommit - Active ou désactive le mode autocommit
    • ingres_autocommit_state - Vérifie si la connexion utilise l'autocommit
    • ingres_charset - Retourne le jeu de caractères utilisé par Ingres
    • ingres_close - Ferme une connexion à un serveur Ingres
    • ingres_commit - Valide une transaction
    • ingres_connect - Ouvre une connexion sur un serveur Ingres
    • ingres_cursor - Récupère le nom du curseur pour une ressource de résultats donnée
    • ingres_errno - Récupère le dernier numéro d'erreur d'Ingres généré
    • ingres_error - Lit le dernier message d'erreur Ingres
    • ingres_errsqlstate - Récupère le dernier code SQLSTATE généré
    • ingres_escape_string - Protège les caractères spéciaux de Ingres
    • ingres_execute - Exécute une commande préparée Ingres
    • ingres_fetch_array - Récupère une ligne de résultat Ingres dans un tableau
    • ingres_fetch_assoc - Récupère une ligne de résultat dans un tableau associatif
    • ingres_fetch_object - Récupère une ligne de résultat dans un objet
    • ingres_fetch_proc_return - Lit le résultat d'un appel à une procédure stockée
    • ingres_fetch_row - Récupère une ligne de résultat dans un tableau énuméré
    • ingres_field_length - Retourne la taille d'un champ
    • ingres_field_name - Retourne le nom d'un champ dans le résultat d'une requête Ingres
    • ingres_field_nullable - Teste si un champ est annulable
    • ingres_field_precision - Retourne la précision d'un champ Ingres
    • ingres_field_scale - Retourne l'échelle d'un champ
    • ingres_field_type - Retourne le type d'un champ dans le résultat d'une requête Ingres
    • ingres_free_result - Libère les ressources d'un résultat Ingres
    • ingres_next_error - Lit l'erreur Ingres suivante
    • ingres_num_fields - Retourne le nombre de champs renvoyés par la dernière requête Ingres
    • ingres_num_rows - Retourne le nombre de lignes affectées ou renvoyées par une requête Ingres
    • ingres_pconnect - Ouvre une connexion persistante à un serveur Ingres
    • ingres_prepare - Prépare une requête pour l'exécution
    • ingres_query - Envoie une requête SQL à Ingres
    • ingres_result_seek - Change la position de lecture des données
    • ingres_rollback - Annule une transaction Ingres
    • ingres_set_environment - Configure les directives contrôlant les résultats Ingres
    • ingres_unbuffered_query - Envoie une requête sans buffer à Ingres
    • ini_alter - Alias de ini_set
    • ini_get - Lit la valeur d'une option de configuration
    • ini_get_all - Lit toutes les valeurs de configuration
    • ini_restore - Restaure la valeur de l'option de configuration
    • ini_set - Modifie la valeur d'une option de configuration
    • inotify_add_watch - Ajoute un point de surveillance à une instance inotify
    • inotify_init - Initialise une instance inotify
    • inotify_queue_len - Retourne le nombre d'événements qui sont survenus
    • inotify_read - Lit les événements dans une instance inotify
    • inotify_rm_watch - Supprime un point de surveillance d'une instance inotify
    • intdiv - Integer division
    • interface_exists - Vérifie si une interface a été définie
    • IntlBreakIterator::createCharacterInstance - Crée un itérateur pour les limites des séquences de caractères combinés
    • IntlBreakIterator::createCodePointInstance - Crée un itérateur pour les limites de points de code
    • IntlBreakIterator::createLineInstance - Crée un itérateur pour les coupures de lignes
    • IntlBreakIterator::createSentenceInstance - Crée un itérateur pour les coupures de phrase
    • IntlBreakIterator::createTitleInstance - Crée un itérateur
    • IntlBreakIterator::createWordInstance - Crée un itérateur pour les coupures de mot
    • IntlBreakIterator::current - Récupère l'index de la position courante
    • IntlBreakIterator::first - Définit la position au premier caractère du texte
    • IntlBreakIterator::following - Avance l'itérateur à la première limite suivant la position spécifiée
    • IntlBreakIterator::getErrorCode - Récupère le code de la dernière erreur survenue sur l'objet
    • IntlBreakIterator::getErrorMessage - Récupère le message de la dernière erreur survenue sur l'objet
    • IntlBreakIterator::getLocale - Récupère la locale associée avec l'objet
    • IntlBreakIterator::getPartsIterator - Crée un itérateur pour naviguer dans les fragments entre les limites
    • IntlBreakIterator::getText - Récupère le texte analysé
    • IntlBreakIterator::isBoundary - Indique si une position est une position limite
    • IntlBreakIterator::last - Définit la position de l'itérateur à l'index après le dernier caractère
    • IntlBreakIterator::next - Avance l'itérateur à la prochaine limite
    • IntlBreakIterator::preceding - Définit la position de l'itérateur à la première limite avant la position
    • IntlBreakIterator::previous - Définit la position de l'itérateur à la limite immédiate avant la courante
    • IntlBreakIterator::setText - Définit le texte à analyser
    • IntlBreakIterator::__construct - Constructeur privé pour désactiver l'instantiation
    • IntlCalendar::add - Ajoute une durée (signée) à un champ
    • IntlCalendar::after - Vérifie si l'objet temps courant est dans le futur par rapport à l'objet temps passé
    • IntlCalendar::before - Vérifie si l'objet temps est dans le passé par rapport à l'objet fourni
    • IntlCalendar::clear - Vide un ou tous les champs
    • IntlCalendar::createInstance - Crée un nouvel objet IntlCalendar
    • IntlCalendar::equals - Vérifie si deux objets IntlCalendar sont égaux
    • IntlCalendar::fieldDifference - Calcule la différence entre le temps donné et le temps de l'objet
    • IntlCalendar::fromDateTime - Create an IntlCalendar from a DateTime object or string
    • IntlCalendar::get - Récupère la valeur d'une propriété
    • IntlCalendar::getActualMaximum - The maximum value for a field, considering the object's current time
    • IntlCalendar::getActualMinimum - The minimum value for a field, considering the object's current time
    • IntlCalendar::getAvailableLocales - Get array of locales for which there is data
    • IntlCalendar::getDayOfWeekType - Tell whether a day is a weekday, weekend or a day that has a transition between the two
    • IntlCalendar::getErrorCode - Get last error code on the object
    • IntlCalendar::getErrorMessage - Get last error message on the object
    • IntlCalendar::getFirstDayOfWeek - Get the first day of the week for the calendar's locale
    • IntlCalendar::getGreatestMinimum - Get the largest local minimum value for a field
    • IntlCalendar::getKeywordValuesForLocale - Get set of locale keyword values
    • IntlCalendar::getLeastMaximum - Get the smallest local maximum for a field
    • IntlCalendar::getLocale - Get the locale associated with the object
    • IntlCalendar::getMaximum - Get the global maximum value for a field
    • IntlCalendar::getMinimalDaysInFirstWeek - Get minimal number of days the first week in a year or month can have
    • IntlCalendar::getMinimum - Get the global minimum value for a field
    • IntlCalendar::getNow - Récupère le nombre représentant la date courante
    • IntlCalendar::getRepeatedWallTimeOption - Get behavior for handling repeating wall time
    • IntlCalendar::getSkippedWallTimeOption - Get behavior for handling skipped wall time
    • IntlCalendar::getTime - Get time currently represented by the object
    • IntlCalendar::getTimeZone - Récupère le fuseau horaire de l'objet
    • IntlCalendar::getType - Récupère le type de calendrier
    • IntlCalendar::getWeekendTransition - Get time of the day at which weekend begins or ends
    • IntlCalendar::inDaylightTime - Whether the object's time is in Daylight Savings Time
    • IntlCalendar::isEquivalentTo - Whether another calendar is equal but for a different time
    • IntlCalendar::isLenient - Whether date/time interpretation is in lenient mode
    • IntlCalendar::isSet - Whether a field is set
    • IntlCalendar::isWeekend - Whether a certain date/time is in the weekend
    • IntlCalendar::roll - Add value to field without carrying into more significant fields
    • IntlCalendar::set - Set a time field or several common fields at once
    • IntlCalendar::setFirstDayOfWeek - Défini le jour de début de la semaine
    • IntlCalendar::setLenient - Set whether date/time interpretation is to be lenient
    • IntlCalendar::setMinimalDaysInFirstWeek - Set minimal number of days the first week in a year or month can have
    • IntlCalendar::setRepeatedWallTimeOption - Set behavior for handling repeating wall times at negative timezone offset transitions
    • IntlCalendar::setSkippedWallTimeOption - Set behavior for handling skipped wall times at positive timezone offset transitions
    • IntlCalendar::setTime - Défini le temps du calendrier en milliseconde depuis l'époque
    • IntlCalendar::setTimeZone - Défini le fuseau horaire utilisé par ce calendrier
    • IntlCalendar::toDateTime - Converti un objet IntlCalendar en un objet DateTime
    • IntlCalendar::__construct - Constructeur privé pour la désactivation de l'instanciation
    • IntlCodePointBreakIterator::getLastCodePoint - Récupère le dernier point de code après avoir avancé ou reculé dans l'itérateur
    • IntlDateFormatter::create - Crée un formateur de date
    • IntlDateFormatter::format - Formate la date et l'heure sous forme de chaîne
    • IntlDateFormatter::formatObject - Formate un objet
    • IntlDateFormatter::getCalendar - Lit le calendrier utilisé par l'objet IntlDateFormatter
    • IntlDateFormatter::getCalendarObject - Récupère une copie de l'objet formateur du calendrier
    • IntlDateFormatter::getDateType - Lit le type de date utilisé par IntlDateFormatter
    • IntlDateFormatter::getErrorCode - Lit le code d'erreur de la dernière opération
    • IntlDateFormatter::getErrorMessage - Lit le dernier message d'erreur
    • IntlDateFormatter::getLocale - Lit la locale utilisée par le formateur
    • IntlDateFormatter::getPattern - Lit le modèle utilisé par IntlDateFormatter
    • IntlDateFormatter::getTimeType - Lit le type de temps pour IntlDateFormatter
    • IntlDateFormatter::getTimeZone - Récupère le formateur du décalage horaire
    • IntlDateFormatter::getTimeZoneId - Lit le fuseau horaire de IntlDateFormatter
    • IntlDateFormatter::isLenient - Retourne la sévérité utilisée pour IntlDateFormatter
    • IntlDateFormatter::localtime - Analyse une chaîne et la converti en temps
    • IntlDateFormatter::parse - Analyse une chaîne vers un timestamp
    • IntlDateFormatter::setCalendar - Définit le type de calendrier utilisé par le formateur
    • IntlDateFormatter::setLenient - Configure la souplesse de l'analyseur
    • IntlDateFormatter::setPattern - Configure le modèle utilisé par le IntlDateFormatter
    • IntlDateFormatter::setTimeZone - Définit le formateur pour le décalage horaire
    • IntlDateFormatter::setTimeZoneId - Configure le fuseau horaire à utiliser
    • IntlIterator::current - Récupère l'élément courant
    • IntlIterator::key - Récupère la clé courante
    • IntlIterator::next - Se déplace sur l'élément suivant
    • IntlIterator::rewind - Re-positionne l'itérateur au premier élément
    • IntlIterator::valid - Vérifie si la position courant est valide
    • IntlPartsIterator::getBreakIterator - Récupère IntlBreakIterator, sauvegardant ainsi cette partie de l'itérateur
    • IntlRuleBasedBreakIterator::getBinaryRules - Récupère la forme binaire des règles compilées
    • IntlRuleBasedBreakIterator::getRules - Récupère le jeu de règles utilisé pour créer cet objet
    • IntlRuleBasedBreakIterator::getRuleStatus - Récupère la valeur de statut la plus grande depuis les règles qui déterminent la position courante d'arrêt
    • IntlRuleBasedBreakIterator::getRuleStatusVec - Récupère les valeurs de statut depuis les règles d'arrêt qui déterminent la position d'arrêt courante
    • IntlRuleBasedBreakIterator::__construct - Crée un itérateur depuis un jeu de règles
    • IntlTimeZone::countEquivalentIDs - Récupère le nombre d'IDs dans le groupe d'équivalence qui inclut l'ID fourni
    • IntlTimeZone::createDefault - Crée une nouvelle copie du fuseau horaire par défaut pour cet hôte
    • IntlTimeZone::createEnumeration - Récupère une énumération d'IDs de fuseau horaire associés avec le pays fourni
    • IntlTimeZone::createTimeZone - Crée un objet de fuseau horaire pour l'ID fourni
    • IntlTimeZone::fromDateTimeZone - Crée un objet fuseau horaire depuis DateTimeZone
    • IntlTimeZone::getCanonicalID - Récupère l'identifiant du fuseau horaire système ou l'identifiant normalisé du fuseau horaire personnalisé pour l'ID du fuseau horaire fourni
    • IntlTimeZone::getDisplayName - Récupère un nom du fuseau horaire aux fins de présentation à l'utilisateur
    • IntlTimeZone::getDSTSavings - Récupère la durée à ajouter à l'heure locale pour récupérer l'heure murale locale
    • IntlTimeZone::getEquivalentID - Récupère un identifiant d'un groupe d'équivalence qui inclut l'identifiant fourni
    • IntlTimeZone::getErrorCode - Récupère le code de la dernière erreur survenue sur l'objet
    • IntlTimeZone::getErrorMessage - Récupère le message de la dernière erreur survenue sur l'objet
    • IntlTimeZone::getGMT - Crée un fuseau horaire GMT (UTC)
    • IntlTimeZone::getID - Récupère l'ID d'un fuseau horaire
    • IntlTimeZone::getOffset - Récupère le fuseau horaire brute, et la position GMT pour un moment dans le temps donné
    • IntlTimeZone::getRawOffset - Récupère la position brute GMT (avant de prendre en compte l'heure d'été)
    • IntlTimeZone::getTZDataVersion - Récupère la version du fuseau horaire actuellement utilisé par ICU
    • IntlTimeZone::hasSameRules - Vérifie si cette zone a les mêmes règles qu'une autre
    • IntlTimeZone::toDateTimeZone - Convertit un objet DateTimeZone
    • IntlTimeZone::useDaylightTime - Vérifie si ce fuseau horaire utilise l'heure d'étét
    • intl_error_name - Lit le nom symbolique d'un code d'erreur donné
    • intl_get_error_code - Lit le dernier code d'erreur
    • intl_get_error_message - Lit la description de la dernière erreur
    • intl_is_failure - Vérifie si un code d'erreur indique un échec
    • intval - Retourne la valeur numérique entière équivalente d'une variable
    • in_array - Indique si une valeur appartient à un tableau
    • ip2long - Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale
    • iptcembed - Intègre des données binaires IPTC dans une image JPEG
    • iptcparse - Analyse un bloc binaire IPTC et recherche les balises simples
    • isset - Détermine si une variable est définie et est différente de NULL
    • is_a - Vérifie si l'objet est une instance d'une classe donnée ou a cette classe parmi ses parents
    • is_array - Détermine si une variable est un tableau
    • is_bool - Détermine si une variable est un booléen
    • is_callable - Détermine si l'argument peut être appelé comme fonction
    • is_dir - Indique si le fichier est un dossier
    • is_double - Alias de is_float
    • is_executable - Indique si le fichier est exécutable
    • is_file - Indique si le fichier est un véritable fichier
    • is_finite - Indique si un nombre est fini
    • is_float - Détermine si une variable est de type nombre décimal
    • is_infinite - Indique si un nombre est infini
    • is_int - Détermine si une variable est de type nombre entier
    • is_integer - Alias de is_int
    • is_link - Indique si le fichier est un lien symbolique
    • is_long - Alias de is_int
    • is_nan - Indique si une valeur n'est pas un nombre
    • is_null - Indique si une variable vaut NULL
    • is_numeric - Détermine si une variable est un type numérique
    • is_object - Détermine si une variable est de type objet
    • is_readable - Indique si un fichier existe et est accessible en lecture
    • is_real - Alias de is_float
    • is_resource - Détermine si une variable est une ressource
    • is_scalar - Indique si une variable est un scalaire
    • is_soap_fault - Vérifie si SOAP retourne une erreur
    • is_string - Détermine si une variable est de type chaîne de caractères
    • is_subclass_of - Détermine si un objet est une sous-classe d'une classe donnée ou l'implémente
    • is_tainted - Vérifie si une chaîne est nettoyée
    • is_uploaded_file - Indique si le fichier a été téléchargé par HTTP POST
    • is_writable - Indique si un fichier est accessible en écriture
    • is_writeable - Alias de is_writable
    • Iterator::current - Retourne l'élément courant
    • Iterator::key - Retourne la clé de l'élément courant
    • Iterator::next - Se déplace sur l'élément suivant
    • Iterator::rewind - Replace l'itérateur sur le premier élément
    • Iterator::valid - Vérifie si la position courante est valide
    • IteratorAggregate::getIterator - Retourne un itérateur externe
    • IteratorIterator::current - Lit la valeur courante
    • IteratorIterator::getInnerIterator - Retourne l'itérateur interne
    • IteratorIterator::key - Lit la clé de l'élément courant
    • IteratorIterator::next - Avance au prochain élément
    • IteratorIterator::rewind - Retourne au premier élément
    • IteratorIterator::valid - Vérifie si un itérateur est valide
    • IteratorIterator::__construct - Crée un itérateur à partir d'un objet traversable
    • iterator_apply - Appelle une fonction pour tous les éléments d'un itérateur
    • iterator_count - Compte de nombre d'éléments dans un itérateur
    • iterator_to_array - Copie un itérateur dans un tableau
  • j
    • jddayofweek - Retourne le numéro du jour de la semaine
    • jdmonthname - Retourne le nom du mois
    • jdtofrench - Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain
    • jdtogregorian - Convertit le nombre de jours du calendrier Julien en date grégorienne
    • jdtojewish - Convertit le nombre de jours du calendrier Julien en date du calendrier juif
    • jdtojulian - Convertit le nombre de jours du calendrier Julien en date du calendrier Julien
    • jdtounix - Convertit un jour Julien en timestamp UNIX
    • jewishtojd - Convertit une date du calendrier Juif en nombre de jours du calendrier Julien
    • join - Alias de implode
    • jpeg2wbmp - Convertit une image JPEG en image WBMP
    • JsonSerializable::jsonSerialize - Spécifie les données qui doivent être linéarisées en JSON
    • json_decode - Décode une chaîne JSON
    • json_encode - Retourne la représentation JSON d'une valeur
    • json_last_error - Retourne la dernière erreur JSON
    • json_last_error_msg - Retourne le message de la dernière erreur survenue lors de l'appel à la fonction json_encode() ou json_decode()
    • Judy::byCount - Trouve le N ième index présent dans le tableau Judy
    • Judy::count - Compte le nombre d'éléments dans le tableau Judy
    • Judy::first - Recherche le premier index dans le tableau Judy
    • Judy::firstEmpty - Recherche le premier index absent dans le tableau Judy
    • Judy::free - Vide entiérement le tableau Judy
    • Judy::getType - Retourne le type du tableau Judy
    • Judy::last - Recherche le dernier index dans le tableau Judy
    • Judy::lastEmpty - Recherche le dernier index absent dans le tableau Judy
    • Judy::memoryUsage - Retourne la mémoire utilisée par le tableau Judy
    • Judy::next - Recherche le prochain index dans le tableau Judy
    • Judy::nextEmpty - Recherche le prochain index absent dans le tableau Judy
    • Judy::offsetExists - Indique si une position existe dans un tableau
    • Judy::offsetGet - Position à lire
    • Judy::offsetSet - Position à assigner
    • Judy::offsetUnset - Position à supprimer
    • Judy::prev - Recherche le précédent index dans le tableau Judy
    • Judy::prevEmpty - Recherche le précédent index absent dans le tableau Judy
    • Judy::size - Retourne le nombre d'éléments dans le tableau Judy
    • Judy::__construct - Construit un nouvel objet Judy
    • Judy::__destruct - Détruit l'objet Judy
    • judy_type - Retourne le type de tableau Judy
    • judy_version - Retourne ou affiche la version actuelle de PHP Judy
    • juliantojd - Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien
  • k
    • kadm5_chpass_principal - Modifie le mot de passe du principal
    • kadm5_create_principal - Crée un principal kerberos avec les paramètres donnés
    • kadm5_delete_principal - Efface un principal kerberos
    • kadm5_destroy - Ferme la connexion avec le serveur d'administration et libère toutes les ressources associées
    • kadm5_flush - Valide toutes les modifications de la base de données Kerberos
    • kadm5_get_policies - Récupère toutes les directives depuis la base de données Kerberos
    • kadm5_get_principal - Récupère les entrées des éléments principaux depuis la base de données Kerberos
    • kadm5_get_principals - Récupère tous les éléments principaux depuis la base de données Kerberos
    • kadm5_init_with_password - Ouvre une connexion à la bibliothèque KADM5
    • kadm5_modify_principal - Modifie un principal Kerberos avec les paramètres donnés
    • key - Retourne une clé d'un tableau associatif
    • key_exists - Alias de array_key_exists
    • krsort - Trie un tableau en sens inverse et suivant les clés
    • ksort - Trie un tableau suivant les clés
    • KTaglib_ID3v2_AttachedPictureFrame::getDescription - Retourne une description de l'image contenu dans la frame spécialisée
    • KTaglib_ID3v2_AttachedPictureFrame::getMimeType - Retourne le type MIME de l'image
    • KTaglib_ID3v2_AttachedPictureFrame::getType - Retourne le type d'une image
    • KTaglib_ID3v2_AttachedPictureFrame::savePicture - Sauvegarde une image dans un fichier
    • KTaglib_ID3v2_AttachedPictureFrame::setMimeType - Définit le type MIME d'une image
    • KTaglib_ID3v2_AttachedPictureFrame::setPicture - Définit le tag image en une image donnée
    • KTaglib_ID3v2_AttachedPictureFrame::setType - Définit le type de l'image
    • KTaglib_ID3v2_Frame::getSize - Retourne la taille de la frame, en octets
    • KTaglib_ID3v2_Frame::__toString - Retourne une chaîne représentant la frame
    • KTaglib_ID3v2_Tag::addFrame - Ajoute une frame à un tag ID3v2
    • KTaglib_ID3v2_Tag::getFrameList - Retourne un tableau de frames ID3v2, associées avec un tag ID3v2
    • KTaglib_MPEG_AudioProperties::getBitrate - Retourne le débit binaire d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::getChannels - Retourne le nombre de canaux d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::getLayer - Retourne la couche d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::getLength - Retourne la taille d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::getSampleBitrate - Retourne l'échantillonnage d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::getVersion - Retourne la version d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::isCopyrighted - Retourne le statut du copyright d'un fichier MPEG
    • KTaglib_MPEG_AudioProperties::isOriginal - Vérifie si le fichier MPEG est marqué comme un fichier original
    • KTaglib_MPEG_AudioProperties::isProtectionEnabled - Vérifie si un mécanisme de protection d'un fichier MPEG est actif
    • KTaglib_MPEG_File::getAudioProperties - Retourne un objet qui permet l'accès aux propriétés audio
    • KTaglib_MPEG_File::getID3v1Tag - Retourne un objet représentant un tag ID3v1
    • KTaglib_MPEG_File::getID3v2Tag - Retourne un objet ID3v2
    • KTaglib_MPEG_File::__construct - Ouvre un nouveau fichier
    • KTaglib_Tag::getAlbum - Retourne le nom de l'album d'un tag ID3
    • KTaglib_Tag::getArtist - Retourne le nom de l'artiste d'un tag ID3
    • KTaglib_Tag::getComment - Retourne le commentaire d'un tag ID3
    • KTaglib_Tag::getGenre - Retourne le genre d'un tag ID3
    • KTaglib_Tag::getTitle - Retourne le titre d'un tag ID3
    • KTaglib_Tag::getTrack - Retourne le numéro de la piste d'un tag ID3
    • KTaglib_Tag::getYear - Retourne l'année d'un tag ID3
    • KTaglib_Tag::isEmpty - Retourne TRUE si le tag est vide
  • l
    • Lapack::eigenValues - Cette fonction retourne les vecteurs propres pour une matrice carré donnée
    • Lapack::identity - Return an identity matrix
    • Lapack::leastSquaresByFactorisation - Calculer la solution des moindres carrés linéaires d'une matrice utilisant factorisation QR
    • Lapack::leastSquaresBySVD - Résoudre le problème des moindres carrés linéaires, en utilisant SVD
    • Lapack::pseudoInverse - Calculer l'inverse d'une matrice
    • Lapack::singularValues - Calcule des valeurs singulières d'une matrice
    • Lapack::solveLinearEquation - Résolution d'un système d'équation linéaire
    • lcfirst - Met le premier caractère en minuscule
    • lcg_value - Générateur de congruence combinée linéaire
    • lchgrp - Change l'appartenance du groupe d'un lien symbolique
    • lchown - Change le propriétaire d'un lien symbolique
    • ldap_8859_to_t61 - Convertit les caractères 8859 en caractères t61
    • ldap_add - Ajoute une entrée dans un dossier LDAP
    • ldap_bind - Authentification au serveur LDAP
    • ldap_close - Alias de ldap_unbind
    • ldap_compare - Compare une entrée avec des valeurs d'attributs
    • ldap_connect - Connexion à un serveur LDAP
    • ldap_control_paged_result - Envoi un contrôle de pagination LDAP
    • ldap_control_paged_result_response - Récupère le cookie de pagination LDAP
    • ldap_count_entries - Compte le nombre d'entrées après une recherche
    • ldap_delete - Efface une entrée dans un dossier
    • ldap_dn2ufn - Convertit un DN en format UFN (User Friendly Naming)
    • ldap_err2str - Convertit un numéro d'erreur LDAP en message d'erreur
    • ldap_errno - Retourne le numéro d'erreur LDAP de la dernière commande exécutée
    • ldap_error - Retourne le message LDAP de la dernière commande LDAP
    • ldap_escape - Echappe une chaîne pour l'utiliser dans un filtre LDAP ou un DN
    • ldap_explode_dn - Sépare les différents composants d'un DN
    • ldap_first_attribute - Retourne le premier attribut
    • ldap_first_entry - Retourne la première entrée
    • ldap_first_reference - Retourne la première référence
    • ldap_free_result - Libère la mémoire du résultat
    • ldap_get_attributes - Lit les attributs d'une entrée
    • ldap_get_dn - Lit le DN d'une entrée
    • ldap_get_entries - Lit toutes les entrées du résultat
    • ldap_get_option - Lit/écrit la valeur courante d'une option
    • ldap_get_values - Lit toutes les valeurs d'une entrée LDAP
    • ldap_get_values_len - Lit toutes les valeurs binaires d'une entrée
    • ldap_list - Recherche dans un niveau
    • ldap_modify - Modifie une entrée LDAP
    • ldap_modify_batch - Mets en lot des modifications et les exécute sur une entrée LDAP
    • ldap_mod_add - Ajoute un attribut à l'entrée courante
    • ldap_mod_del - Efface un attribut à l'entrée courante
    • ldap_mod_replace - Remplace un attribut dans l'entrée courante
    • ldap_next_attribute - Lit l'attribut suivant
    • ldap_next_entry - Lit la prochaine entrée
    • ldap_next_reference - Lit la référence suivante
    • ldap_parse_reference - Extrait les informations d'une référence d'entrée
    • ldap_parse_result - Extrait des informations d'un résultat
    • ldap_read - Lit une entrée
    • ldap_rename - Modifie le nom d'une entrée
    • ldap_sasl_bind - Authentification au serveur LDAP en utilisant SASL
    • ldap_search - Recherche sur le serveur LDAP
    • ldap_set_option - Modifie la valeur d'une option LDAP
    • ldap_set_rebind_proc - Configure une fonction de retour pour refaire des liaisons lors de recherche de référants
    • ldap_sort - Trie les entrées d'un résultat LDAP
    • ldap_start_tls - Démarre TLS
    • ldap_t61_to_8859 - Convertit les caractères t61 en caractères 8859
    • ldap_unbind - Déconnecte d'un serveur LDAP
    • Les options du contexte Phar - Liste des options du contexte Phar
    • levenshtein - Calcule la distance Levenshtein entre deux chaînes
    • libxml_clear_errors - Vide le buffer d'erreur libxml
    • libxml_disable_entity_loader - Désactive le chargement des entités externes
    • libxml_get_errors - Lit le tableau d'erreurs
    • libxml_get_last_error - Lit la dernière erreur libxml
    • libxml_set_external_entity_loader - Change le chargeur d'entités externes par défaut
    • libxml_set_streams_context - Configure le contexte de flux pour la prochaine opération libxml
    • libxml_use_internal_errors - Désactive le rapport d'erreur libxml et les stocke pour lecture ultérieure
    • LimitIterator::current - Récupère l'élément courant
    • LimitIterator::getInnerIterator - Récupère l'itérateur interne
    • LimitIterator::getPosition - Retourne la position courante
    • LimitIterator::key - Récupère la clé courante
    • LimitIterator::next - Déplace l'itérateur à la position suivante
    • LimitIterator::rewind - Replace l'itérateur au début
    • LimitIterator::seek - Place l'itérateur à une position donnée
    • LimitIterator::valid - Vérifie si l'élément courant est valide
    • LimitIterator::__construct - Construit un nouvel objet LimitIterator
    • link - Crée un lien
    • linkinfo - Renvoie les informations d'un lien
    • list - Assigne des variables comme si elles étaient un tableau
    • Locale::acceptFromHttp - Devine la meilleure locale à partir de l'en-tête HTTP "Accept-Language"
    • Locale::canonicalize - Canonise la chaîne représentant la locale
    • Locale::composeLocale - Retourne un identifiant de locale correct
    • Locale::filterMatches - Vérifie si le tag de langue correspond à une locale
    • Locale::getAllVariants - Liste toutes les variantes d'une locale
    • Locale::getDefault - Lit la valeur par défaut d'une locale pour la variable globale 'default_locale'
    • Locale::getDisplayLanguage - Retourne un nom approprié pour l'affichage d'un nom de langue
    • Locale::getDisplayName - Retourne un nom d'affichage correct pour une locale
    • Locale::getDisplayRegion - Retourne un nom pour la région de la locale
    • Locale::getDisplayScript - Retourne le nom du script de la locale
    • Locale::getDisplayVariant - Retourne un nom pour la variante de la locale
    • Locale::getKeywords - Lit les mots-clé de la locale
    • Locale::getPrimaryLanguage - Lit la langue principale de la locale
    • Locale::getRegion - Retourne un code pour la région de la locale
    • Locale::getScript - Retourne un code pour le script de la locale
    • Locale::lookup - Recherche dans la liste la meilleure langue
    • Locale::parseLocale - Retourne les sous-éléments de la locale
    • Locale::setDefault - Configure la locale par défaut
    • localeconv - Lit la configuration locale
    • localtime - Récupère l'heure locale
    • log - Logarithme naturel (népérien)
    • log1p - Calcule précisément log(1 + nombre)
    • log10 - Logarithme en base 10
    • log_cmd_delete - Fonction de rappel lors de la suppression des documents
    • log_cmd_insert - Fonction de rappel lors de l'insertion de documents
    • log_cmd_update - Fonction de rappel lors de la mise à jour de documents
    • log_getmore - Fonction de rappel lors de la récupération du prochain curseur du lot
    • log_killcursor - Fonction de rappel lors de l'exécution des opération KILLCURSOR
    • log_reply - Fonction de rappel lors de la lecture d'une réponse MongoDB
    • log_write_batch - Fonction de rappel pour écrire les lots
    • long2ip - Convertit une adresse IP (IPv4) en adresse IP numérique
    • lstat - Retourne les informations sur un fichier ou un lien symbolique
    • ltrim - Supprime les espaces (ou d'autres caractères) de début de chaîne
    • Lua::assign - Assigne une variable PHP à Lua
    • Lua::call - Appelle les fonctions Lua
    • Lua::eval - Évalue une chaîne comme du code Lua
    • Lua::getVersion - Le but de getversion
    • Lua::include - Analyse un fichier de script Lua
    • Lua::registerCallback - Enregistre une fonction PHP en Lua
    • Lua::__construct - Constructeur Lua
    • LuaClosure::__invoke - Appelle luaclosure
    • lzf_compress - Compression LZF
    • lzf_decompress - Décompression LZF
    • lzf_optimized_for - Détermine le mode d'optimisation de l'extension LZF
  • m
    • magic_quotes_runtime - Alias de set_magic_quotes_runtime
    • mail - Envoi de mail
    • mailparse_determine_best_xfer_encoding - Détermine le meilleur encodage pour un fichier
    • mailparse_msg_create - Crée une ressource email mime
    • mailparse_msg_extract_part - Extrait et décode une section de message
    • mailparse_msg_extract_part_file - Extrait et décode une section de message
    • mailparse_msg_extract_whole_part_file - Extrait une section de message incluant les en-têtes sans décoder l'encodage de transfert
    • mailparse_msg_free - Libère une ressource MIME
    • mailparse_msg_get_part - Retourne une ressource sur une section d'un message MIME
    • mailparse_msg_get_part_data - Retourne un tableau associatif avec des informations sur le message
    • mailparse_msg_get_structure - Retourne un tableau avec les différentes sections MIME du message
    • mailparse_msg_parse - Analyse incrémentalement des données dans un buffer
    • mailparse_msg_parse_file - Analyse un fichier
    • mailparse_rfc822_parse_addresses - Analyse des adresses
    • mailparse_stream_encode - Lit les données dans un fichier, applique l'encodage et envoie le résultat à destfp
    • mailparse_uudecode_all - Scanne les données du fichier et extrait tous les fichiers encodés qui s'y trouvent
    • main - Fausse documentation pour main
    • max - La plus grande valeur
    • maxdb_affected_rows - Récupère le nombre de lignes affectées par la dernière opération MaxDB
    • maxdb_autocommit - Active ou désactive l'auto-commit des modifications de la base de données
    • maxdb_bind_param - Alias de maxdb_stmt_bind_param
    • maxdb_bind_result - Alias de maxdb_stmt_bind_result
    • maxdb_change_user - Modifie l'utilisateur de la connexion à la base de données spécifiée
    • maxdb_character_set_name - Retourne le jeu de caractères par défaut pour la connexion à la base de données
    • maxdb_client_encoding - Alias de maxdb_character_set_name
    • maxdb_close - Ferme une connexion à une base de données
    • maxdb_close_long_data - Alias de maxdb_stmt_close_long_data
    • maxdb_commit - Valide la transaction courante
    • maxdb_connect - Ouvre une nouvelle connexion sur un serveur MaxDB
    • maxdb_connect_errno - Retourne le code erreur du dernier appel à la connexion
    • maxdb_connect_error - Retourne une chaîne descriptive de la dernière erreur
    • maxdb_data_seek - Ajuste le pointeur de résultat sur une ligne arbitraire dans le résultat
    • maxdb_debug - Effectue des opérations de déboguage
    • maxdb_disable_reads_from_master - Désactive la lecture depuis le maître
    • maxdb_disable_rpl_parse - Désactive l'analyseur RPL
    • maxdb_dump_debug_info - Sauvegarde les informations de déboguage dans un log
    • maxdb_embedded_connect - Ouvre une connexion sur un serveur MaxDB embarqué
    • maxdb_enable_reads_from_master - Active la lecture depuis le maître
    • maxdb_enable_rpl_parse - Active l'analyseur RPL
    • maxdb_errno - Retourne le code erreur pour le dernier appel à une fonction
    • maxdb_error - Retourne une chaîne représentant la dernière erreur
    • maxdb_escape_string - Alias de maxdb_real_escape_string
    • maxdb_execute - Alias de maxdb_stmt_execute
    • maxdb_fetch - Alias de maxdb_stmt_fetch
    • maxdb_fetch_array - Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux
    • maxdb_fetch_assoc - Récupère une ligne de résultat dans un tableau associatif
    • maxdb_fetch_field - Retourne le prochain champ d'un jeu de résultats
    • maxdb_fetch_fields - Retourne un tableau de ressource représentant les champs dans un jeu de résultats
    • maxdb_fetch_field_direct - Récupère les métadonnées pour un seul champ
    • maxdb_fetch_lengths - Retourne la longueur des colonnes de la ligne courante dans un jeu de résultats
    • maxdb_fetch_object - Retourne la ligne courante d'un jeu de résultats dans un objet
    • maxdb_fetch_row - Récupère une ligne de résultat en tant que tableau énuméré
    • maxdb_field_count - Retourne le nombre de colonnes pour la dernière requête
    • maxdb_field_seek - Définit le pointeur de résultat à une position donnée
    • maxdb_field_tell - Récupère la position du champ courant pour un pointeur de résultat
    • maxdb_free_result - Libère la mémoire associée à un résultat
    • maxdb_get_client_info - Retourne la version du client MaxDB sous la forme d'une chaîne
    • maxdb_get_client_version - Récupère des informations sur le client MaxDB
    • maxdb_get_host_info - Retourne une chaîne représentant le type de de connexion utilisé
    • maxdb_get_metadata - Alias de maxdb_stmt_result_metadata
    • maxdb_get_proto_info - Retourne la version du protocole MaxDB utilisé
    • maxdb_get_server_info - Retourne la version du serveur MaxDB
    • maxdb_get_server_version - Retourne la version du serveur MaxDB sous la forme d'un entier
    • maxdb_info - Récupère des informations sur le dernière requête exécutée
    • maxdb_init - Initialise MaxDB et retourne une ressource pour l'utiliser avec maxdb_real_connect
    • maxdb_insert_id - Retourne le dernier identifiant généré automatiquement par la dernière requête
    • maxdb_kill - Déconnecte un serveur MaxDB
    • maxdb_master_query - Force l'exécution d'une requête sur le maître
    • maxdb_more_results - Vérifie s'il y a encore des résultats de disponibles depuis de multiples requêtes
    • maxdb_multi_query - Exécute une requête sur une base de données
    • maxdb_next_result - Prépare le prochain résultat depuis multi_query
    • maxdb_num_fields - Récupère le nombre de champs dans un résultat
    • maxdb_num_rows - Récupère le nombre de lignes dans un résultat
    • maxdb_options - Définie des options
    • maxdb_param_count - Alias de maxdb_stmt_param_count
    • maxdb_ping - Test une connexion à un serveur ou tente de se reconnecter si la connexion a été interrompue
    • maxdb_prepare - Prépare une requête SQL pour exécution
    • maxdb_query - Exécute une requête sur une base de données
    • maxdb_real_connect - Ouvre une connexion sur un serveur MaxDB
    • maxdb_real_escape_string - Protège les caractères spéciaux d'une chaîne afin de l'utiliser dans une requête SQL, en tenant compte du jeu de caractères courant de la connexion
    • maxdb_real_query - Exécute une requête SQL
    • maxdb_report - Active ou désactive le rapport interne des fonctions
    • maxdb_rollback - Annule la transaction courante
    • maxdb_rpl_parse_enabled - Vérifie si l'analyseur RPL est activé
    • maxdb_rpl_probe - Test RPL
    • maxdb_rpl_query_type - Retourne une requête de type RPL
    • maxdb_select_db - Sélectionne une base de données pour les requêtes
    • maxdb_send_long_data - Alias de maxdb_stmt_send_long_data
    • maxdb_send_query - Envoie une requête et retourne
    • maxdb_server_end - Éteint un serveur embarqué
    • maxdb_server_init - Initialise un serveur embarqué
    • maxdb_set_opt - Alias de maxdb_options
    • maxdb_sqlstate - Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB
    • maxdb_ssl_set - Utilisé pour établir une connexion sécurisée utilisant SSL
    • maxdb_stat - Récupère le statut courant du système
    • maxdb_stmt_affected_rows - Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête
    • maxdb_stmt_bind_param - Lie les variables à une requête préparée en tant que paramètres
    • maxdb_stmt_bind_result - Lie les variables à une requête préparée pour stockage du résultat
    • maxdb_stmt_close - Ferme une requête préparée
    • maxdb_stmt_close_long_data - Termine une séquence maxdb_stmt_send_long_data
    • maxdb_stmt_data_seek - Se positionne sur une ligne arbitraire dans le jeu de résultats
    • maxdb_stmt_errno - Retourne le code erreur pour le dernier appel à une fonction de requête
    • maxdb_stmt_error - Retourne une description de la dernière erreur
    • maxdb_stmt_execute - Exécute une requête préparée
    • maxdb_stmt_fetch - Récupère les résultats depuis la requête préparée dans les variables liées
    • maxdb_stmt_free_result - Libère la mémoire des résultats stockés pour un gestionnaire de requête donné
    • maxdb_stmt_init - Initialise une requête et retourne une ressource à utiliser avec maxdb_stmt_prepare
    • maxdb_stmt_num_rows - Retourne le nombre de lignes dans le jeu de résultats
    • maxdb_stmt_param_count - Retourne le nombre de marqueurs pour une requête donnée
    • maxdb_stmt_prepare - Prépare une requête SQL pour exécution
    • maxdb_stmt_reset - Réinitialise une requête préparée
    • maxdb_stmt_result_metadata - Retourne les métadonnées du jeu de résultats pour une requête préparée
    • maxdb_stmt_send_long_data - Envoie un bloc de données
    • maxdb_stmt_sqlstate - Retourne une erreur SQLSTATE depuis la requête précédente
    • maxdb_stmt_store_result - Transfert un jeu de résultats depuis une requête préparée
    • maxdb_store_result - Transfert un jeu de résultats depuis la dernière requête
    • maxdb_thread_id - Retourne l'identifiant du thread pour la connexion courante
    • maxdb_thread_safe - Indique si le thread safety est donné ou non
    • maxdb_use_result - Initialise un jeu de résultats
    • maxdb_warning_count - Retourne le nombre d'avertissements depuis la dernière requête pour un lien donné
    • mb_check_encoding - Vérifie si une chaîne est valide pour un encodage spécifique
    • mb_convert_case - Modifie la casse d'une chaîne
    • mb_convert_encoding - Conversion d'encodage
    • mb_convert_kana - Convertit un "kana" en un autre ("zen-kaku", "han-kaku" et plus)
    • mb_convert_variables - Convertit l'encodage de variables
    • mb_decode_mimeheader - Décode un en-tête MIME
    • mb_decode_numericentity - Décode les entités HTML en caractères
    • mb_detect_encoding - Détecte un encodage
    • mb_detect_order - Lit/modifie l'ordre de détection des encodages
    • mb_encode_mimeheader - Encode une chaîne pour un en-tête MIM
    • mb_encode_numericentity - Encode les caractères en référence numérique HTML
    • mb_encoding_aliases - Récupère les aliases d'un type d'encodage connu
    • mb_ereg - Recherche par expression rationnelle avec support des caractères multi-octets
    • mb_eregi - Expression rationnelle insensible à la casse avec le support des caractères multi-octets
    • mb_eregi_replace - Expression rationnelle avec support des caractères multi-octets, sans tenir compte de la casse
    • mb_ereg_match - Expression rationnelle POSIX pour les chaînes multi-octets
    • mb_ereg_replace - Remplace des segments de chaîne à l'aide des expressions rationnelles
    • mb_ereg_replace_callback - Rechercher et remplacer par expression régulière avec support multi octets utilisant une fonction de callback
    • mb_ereg_search - Recherche par expression rationnelle multi-octets
    • mb_ereg_search_getpos - Retourne la position du début du prochain segment repéré par une expression rationnelle
    • mb_ereg_search_getregs - Lit le dernier segment de chaîne multi-octets qui correspond au masque
    • mb_ereg_search_init - Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets
    • mb_ereg_search_pos - Retourne la position et la longueur du segment de chaîne qui vérifie le masque de l'expression rationnelle
    • mb_ereg_search_regs - Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets
    • mb_ereg_search_setpos - Choisit le point de départ de la recherche par expression rationnelle
    • mb_get_info - Lit la configuration interne de l'extension mbstring
    • mb_http_input - Détecte le type d'encodage d'un caractère HTTP
    • mb_http_output - Lit/modifie l'encodage d'affichage
    • mb_internal_encoding - Lit/modifie l'encodage interne
    • mb_language - Lit/modifie le langage courant
    • mb_list_encodings - Retourne un tableau contenant tous les encodages supportés
    • mb_output_handler - Fonction de traitement des affichages
    • mb_parse_str - Analyse les données HTTP GET/POST/COOKIE et assigne les variables globales
    • mb_preferred_mime_name - Détecte l'encodage MIME
    • mb_regex_encoding - Définit/Récupère l'encodage des caractères pour les expressions rationnelles multi-octets
    • mb_regex_set_options - Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multi-octets
    • mb_send_mail - Envoie un mail encodé
    • mb_split - Scinde une chaîne en tableau avec une expression rationnelle multi-octets
    • mb_strcut - Coupe une partie de chaîne
    • mb_strimwidth - Tronque une chaîne
    • mb_stripos - Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse
    • mb_stristr - Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse
    • mb_strlen - Retourne la taille d'une chaîne
    • mb_strpos - Repère la première occurrence d'un caractère dans une chaîne
    • mb_strrchr - Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre
    • mb_strrichr - Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre, insensible à la casse
    • mb_strripos - Trouve la position de la dernière occurrence d'une chaîne dans une autre, en ne tenant pas compte de la casse
    • mb_strrpos - Repère la dernière occurrence d'un caractère dans une chaîne
    • mb_strstr - Trouve la première occurrence d'une chaîne dans une autre
    • mb_strtolower - Met tous les caractères en minuscules
    • mb_strtoupper - Met tous les caractères en majuscules
    • mb_strwidth - Retourne la taille d'une chaîne
    • mb_substitute_character - Lit/modifie les caractères de substitution
    • mb_substr - Lit une sous-chaîne
    • mb_substr_count - Compte le nombre d'occurrences d'une sous-chaîne
    • mcrypt_cbc - Chiffre/déchiffre des données en mode CBC
    • mcrypt_cfb - Chiffre/déchiffre des données en mode CFB
    • mcrypt_create_iv - Crée un vecteur d'initialisation (IV) à partir d'une source aléatoire
    • mcrypt_decrypt - Déchiffre un texte avec les paramètres donnés
    • mcrypt_ecb - Obsolète : Chiffre/déchiffre des données en mode ECB
    • mcrypt_encrypt - Chiffre un texte
    • mcrypt_enc_get_algorithms_name - Retourne le nom de l'algorithme de chiffrement
    • mcrypt_enc_get_block_size - Retourne la taille du bloc d'un algorithme
    • mcrypt_enc_get_iv_size - Retourne la taille du VI d'un algorithme
    • mcrypt_enc_get_key_size - Retourne la taille maximale de la clé pour un mode
    • mcrypt_enc_get_modes_name - Retourne le nom du mode
    • mcrypt_enc_get_supported_key_sizes - Retourne un tableau contenant les tailles de clés acceptées par un algorithme
    • mcrypt_enc_is_block_algorithm - Teste le chiffrement par blocs d'un algorithme
    • mcrypt_enc_is_block_algorithm_mode - Teste le chiffrement par blocs d'un mode
    • mcrypt_enc_is_block_mode - Teste si le mode retourne les données par blocs
    • mcrypt_enc_self_test - Teste un module ouvert
    • mcrypt_generic - Chiffre les données
    • mcrypt_generic_deinit - Prépare le module pour le déchargement
    • mcrypt_generic_end - Termine un chiffrement
    • mcrypt_generic_init - Initialise tous les buffers nécessaires
    • mcrypt_get_block_size - Retourne la taille de blocs d'un chiffrement
    • mcrypt_get_cipher_name - Lit le nom du chiffrement utilisé
    • mcrypt_get_iv_size - Retourne la taille du VI utilisé par un couple chiffrement/mode
    • mcrypt_get_key_size - Retourne la taille de la clé de chiffrement
    • mcrypt_list_algorithms - Liste tous les algorithmes de chiffrement supportés
    • mcrypt_list_modes - Liste tous les modes de chiffrement supportés
    • mcrypt_module_close - Décharge le module de chiffrement
    • mcrypt_module_get_algo_block_size - Retourne la taille de blocs d'un algorithme
    • mcrypt_module_get_algo_key_size - Retourne la taille maximale de clé
    • mcrypt_module_get_supported_key_sizes - Retourne un tableau contenant les tailles de clés supportées par l'algorithme ouvert
    • mcrypt_module_is_block_algorithm - Indique si un algorithme fonctionne par blocs
    • mcrypt_module_is_block_algorithm_mode - Indique si un mode fonctionne par blocs
    • mcrypt_module_is_block_mode - Indique si un mode travaille par blocs
    • mcrypt_module_open - Ouvre le module de l'algorithme et du mode à utiliser
    • mcrypt_module_self_test - Teste un mode
    • mcrypt_ofb - Chiffre/déchiffre des données en mode OFB
    • md5 - Calcule le md5 d'une chaîne
    • md5_file - Calcule le md5 d'un fichier
    • mdecrypt_generic - Déchiffre les données
    • Memcache::add - Ajoute un élément dans le server
    • Memcache::addServer - Ajoute un serveur memcache à la liste de connexion
    • Memcache::close - Ferme la connexion avec le serveur Memcache
    • Memcache::connect - Ouvre une connexion avec le serveur Memcache
    • Memcache::decrement - Décrémente la valeur d'un élément
    • Memcache::delete - Efface un élément du serveur de cache
    • Memcache::flush - Efface tous les éléments existant sur le serveur de cache
    • Memcache::get - Récupère un élément du serveur de cache
    • Memcache::getExtendedStats - Récupère des statistiques de tous les serveurs dans la liste
    • Memcache::getServerStatus - Retourne le statut du serveur
    • Memcache::getStats - Lit les statistiques du serveur
    • Memcache::getVersion - Retourne le numéro de version du serveur
    • Memcache::increment - Incrément la valeur d'un élément
    • Memcache::pconnect - Ouvre un connexion persistante à un serveur de cache
    • Memcache::replace - Remplace une valeur d'un élément existant
    • Memcache::set - Stocke des données dans le serveur de cache
    • Memcache::setCompressThreshold - Active la compression automatique des valeurs larges
    • Memcache::setServerParams - Modifit les paramètres et les statuts du serveur pendant l'exécution
    • Memcached::add - Ajoute un nouvel élément sous une nouvelle clé
    • Memcached::addByKey - Ajoute un élément sur un serveur désigné
    • Memcached::addServer - Ajoute un serveur au pool
    • Memcached::addServers - Ajoute plusieurs serveurs au pool
    • Memcached::append - Ajoute des données à un élément
    • Memcached::appendByKey - Ajoute des données à un élément
    • Memcached::cas - Compare et échange un élément
    • Memcached::casByKey - Compare et échange un élément sur un serveur
    • Memcached::decrement - Décrémente une valeur numérique
    • Memcached::decrementByKey - Décrémente une valeur numérique d'un élément, stocké sur un serveur spécifique
    • Memcached::delete - Efface un élément
    • Memcached::deleteByKey - Supprime un élément d'un serveur spécifique
    • Memcached::deleteMulti - Supprime plusieurs éléments
    • Memcached::deleteMultiByKey - Supprime plusieurs éléments depuis un serveur spécifique
    • Memcached::fetch - Lit le prochain résultat
    • Memcached::fetchAll - Lit tous les autres éléments
    • Memcached::flush - Invalide tous les éléments du cache
    • Memcached::get - Lit un élément
    • Memcached::getAllKeys - Récupère toutes les clés stockés sur tous les serveurs
    • Memcached::getByKey - Lit un élément sur un serveur spécifique
    • Memcached::getDelayed - Lit plusieurs éléments
    • Memcached::getDelayedByKey - Lit plusieurs éléments sur un serveur
    • Memcached::getMulti - Lit plusieurs éléments
    • Memcached::getMultiByKey - Lit plusieurs éléments d'un serveur spécifique
    • Memcached::getOption - Lit une option Memcached
    • Memcached::getResultCode - Retourne le code de résultat de la dernière opération
    • Memcached::getResultMessage - Retourne un message décrivant le résultat de la dernière opération
    • Memcached::getServerByKey - Dirige une clé sur un serveur
    • Memcached::getServerList - Liste les serveurs du pool memcached
    • Memcached::getStats - Lit des statistiques du pool de serveurs
    • Memcached::getVersion - Lit les informations de version du pool serveur
    • Memcached::increment - Incrémente numériquement un élément
    • Memcached::incrementByKey - Incrémente une valeur numérique d'un élément, stocké sur un serveur spécifique
    • Memcached::isPersistent - Vérifie si une connexion persistente vers memcache est en cours d'utilisation
    • Memcached::isPristine - Vérifie si l'instance a été créée récemment
    • Memcached::prepend - Préfixe des données à un élément existant
    • Memcached::prependByKey - Préfixe un élément existant
    • Memcached::quit - Ferme toutes les connexions ouvertes
    • Memcached::replace - Remplace un élément sous une clé
    • Memcached::replaceByKey - Remplace un élément spécifique sur un serveur désigné
    • Memcached::resetServerList - Supprime tous les serveurs depuis la liste des serveurs
    • Memcached::set - Stocke un élément
    • Memcached::setByKey - Stocke un élément sur un serveur spécifique
    • Memcached::setMulti - Stocke plusieurs éléments
    • Memcached::setMultiByKey - Stocke plusieurs éléments sur un serveur
    • Memcached::setOption - Configure une option Memcached
    • Memcached::setOptions - Définit des options Memcache
    • Memcached::setSaslAuthData - Définit les informations à utiliser pour l'authentification
    • Memcached::touch - Définit une nouvelle expiration sur un élément
    • Memcached::touchByKey - Définit une nouvelle expiration sur un élément d'un serveur spécifique
    • Memcached::__construct - Crée un objet Memcached
    • memcache_debug - Active ou non l'affichage des informations de déboguage
    • memory_get_peak_usage - Retourne la quantité de mémoire maximale allouée par PHP
    • memory_get_usage - Indique la quantité de mémoire utilisée par PHP
    • MessageFormatter::create - Construit un nouveau formateur de messages
    • MessageFormatter::format - Formate un message
    • MessageFormatter::formatMessage - Formate rapidement un message
    • MessageFormatter::getErrorCode - Lit le dernier code d'erreur de la dernière opération
    • MessageFormatter::getErrorMessage - Lit le message d'erreur de la dernière opération
    • MessageFormatter::getLocale - Lit la locale avec la quelle le formateur a été créé
    • MessageFormatter::getPattern - Lit le modèle utilisé par le formateur de messages
    • MessageFormatter::parse - Analyse une chaîne en fonction du modèle
    • MessageFormatter::parseMessage - Analyse rapidement une chaîne
    • MessageFormatter::setPattern - Configure le modèle utilisé par le formateur
    • metaphone - Calcule la clé metaphone
    • method_exists - Vérifie si la méthode existe pour une classe
    • mhash - Calcule un hash
    • mhash_count - Récupère l'identifiant maximal de hash
    • mhash_get_block_size - Retourne la taille de bloc du hash
    • mhash_get_hash_name - Retourne le nom du hash
    • mhash_keygen_s2k - Génère une clé
    • microtime - Retourne le timestamp UNIX actuel avec les microsecondes
    • mime_content_type - Détecte le type de contenu d'un fichier
    • min - La plus petite valeur
    • ming_keypress - Retourne le drapeau d'action pour keyPress(char)
    • ming_setcubicthreshold - Fixe le niveau de seuil cubique
    • ming_setscale - Définit le facteur d'échelle globale
    • ming_setswfcompression - Définit la compression de sortie SWF
    • ming_useconstants - Utilise un jeu de constantes
    • ming_useswfversion - Définit la version SWF
    • mkdir - Crée un dossier
    • mktime - Retourne le timestamp UNIX d'une date
    • money_format - Met un nombre au format monétaire
    • Mongo::connectUtil - Se connecte à un serveur Mongo
    • Mongo::getPoolSize - Récupère la taille de la file d'attente pour les connexions
    • Mongo::getSlave - Retourne l'adresse à utiliser pour les lectures slaveOkay
    • Mongo::getSlaveOkay - Récupère la configuration de slaveOkay pour cette collection
    • Mongo::poolDebug - Retourne des informations sur les pools de connexion
    • Mongo::setPoolSize - Affecte la taille des futurs pools de connexion
    • Mongo::setSlaveOkay - Modifie la configuration de slaveOkay pour cette collection
    • Mongo::switchSlave - Choisit un nouvel secondaire pour les lectures slaveOkay
    • Mongo::__construct - Le but de __construct
    • MongoBinData::__construct - Crée un nouvel objet de données binaires
    • MongoBinData::__toString - La représentation en chaîne de l'objet binaire
    • MongoClient::close - Ferme la connexion
    • MongoClient::connect - Ouvre une connexion au serveur de base de données
    • MongoClient::dropDB - Supprime une base de données [obsolète]
    • MongoClient::getConnections - Retourne des informations sur toutes les connexions ouvertes
    • MongoClient::getHosts - Met à jour les statuts de tous les hôtes associés
    • MongoClient::getReadPreference - Récupère les préférences de lecture pour cette connexion
    • MongoClient::getWriteConcern - Récupère la préoccupation d'écriture pour cette connexion
    • MongoClient::killCursor - Supprime un curseur spécifique du serveur
    • MongoClient::listDBs - Liste toutes les bases de données disponibles
    • MongoClient::selectCollection - Lit une collection de base de données
    • MongoClient::selectDB - Récupère une base de données
    • MongoClient::setReadPreference - Définit les préférences de lecture pour cette connexion
    • MongoClient::setWriteConcern - Défini la préoccupation d'écriture pour cette connexion
    • MongoClient::__construct - Crée un nouvel objet de connexion à une base de données
    • MongoClient::__get - Récupère une base de données
    • MongoClient::__toString - Produit une représentation sous forme de chaîne de la connexion
    • MongoCode::__construct - Crée un nouvel objet de code
    • MongoCode::__toString - Retourne le code sous forme de chaîne
    • MongoCollection::aggregate - Effectue une agrégation en utilisant le framework dédié
    • MongoCollection::aggregateCursor - Exécute une commande d'agrégation, et récupère les résultats via un curseur
    • MongoCollection::batchInsert - Insère plusieurs documents dans la collection
    • MongoCollection::count - Compte le nombre de documents de cette collection
    • MongoCollection::createDBRef - Crée une référence de base de données
    • MongoCollection::createIndex - Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà
    • MongoCollection::deleteIndex - Supprime un index de la collection
    • MongoCollection::deleteIndexes - Supprime tous les index de cette collection
    • MongoCollection::distinct - Retourne une liste de valeurs distinctes d'une collection pour la clé donnée
    • MongoCollection::drop - Supprime cette collection
    • MongoCollection::ensureIndex - Crée un index sur le ou les champs spécifiés s'il n'existe pas déjà
    • MongoCollection::find - Interroge une collection, et retourne comme jeu de résultats un objet MongoCursor
    • MongoCollection::findAndModify - Met à jour un document et le retourne
    • MongoCollection::findOne - Interroge cette collection, retourne un seul élément
    • MongoCollection::getDBRef - Lit une référence de base de données
    • MongoCollection::getIndexInfo - Retourne des informations sur les indexes de cette collection
    • MongoCollection::getName - Retourne le nom de cette collection
    • MongoCollection::getReadPreference - Récupère les préférences de lecture pour cette collection
    • MongoCollection::getSlaveOkay - Récupère la configuration slaveOkay pour cette collection
    • MongoCollection::getWriteConcern - Récupère la préoccupation d'écriture de cette collection
    • MongoCollection::group - Effecture une opération de regroupement
    • MongoCollection::insert - Insère un document dans la collection
    • MongoCollection::parallelCollectionScan - Retourne un tableau de curseurs pour parcourir une collection complète en parallèle
    • MongoCollection::remove - Supprime un enregistrement d'une collection
    • MongoCollection::save - Sauvegarde un document dans une collection
    • MongoCollection::setReadPreference - Définit les préférences de lecture pour cette collection
    • MongoCollection::setSlaveOkay - Modifie la configuration de slaveOkay pour cette collection
    • MongoCollection::setWriteConcern - Défini la préoccupation d'écriture pour cette base de données
    • MongoCollection::toIndexString - Convertit les clés spécifiant un index en une chaîne de caractères
    • MongoCollection::update - Modifie les enregistrements
    • MongoCollection::validate - Valide la collection
    • MongoCollection::__construct - Crée une nouvelle collection
    • MongoCollection::__get - Récupère une collection
    • MongoCollection::__toString - Retourne la répresentation en chaîne de cette collection
    • MongoCommandCursor::batchSize - Limite le nombre d'éléments retournés dans un lot
    • MongoCommandCursor::createFromDocument - Crée un nouveau curseur de commande depuis un document de commande existant
    • MongoCommandCursor::current - Retourne l'élément courant
    • MongoCommandCursor::dead - Vérifie s'il y a des documents qui n'ont pas encore été envoyés depuis la base de données
    • MongoCommandCursor::getReadPreference - Récupère les préférences de lecture pour cette commande
    • MongoCommandCursor::info - Récupère des informations sur la création du curseur et son itération
    • MongoCommandCursor::key - Retourne l'index du résultat courant du jeu de résultats
    • MongoCommandCursor::next - Avance le curseur au prochain résultat
    • MongoCommandCursor::rewind - Exécute la commande, et replace le curseur au début du jeu de résultats
    • MongoCommandCursor::setReadPreference - Défini les préférences de lecture pour cette commande
    • MongoCommandCursor::timeout - Défini le délai d'attente maximal côté client pour cette commande
    • MongoCommandCursor::valid - Vérifie si le curseur lit un résultat valide
    • MongoCommandCursor::__construct - Crée un nouveau curseur de commande
    • MongoCursor::addOption - Ajoute une paire clé/valeur de haut niveau à la requête
    • MongoCursor::awaitData - Définit si le curseur doit attendre un curseur tailable pour retourner plus de données
    • MongoCursor::batchSize - Limite le nombre de résultats retourné pour un lot
    • MongoCursor::count - Compte le nombre de résultats pour cette requête
    • MongoCursor::current - Retourne l'élément courant
    • MongoCursor::dead - Vérifie s'il reste des résultats non envoyés depuis la base de données
    • MongoCursor::doQuery - Exécute la requête Mongo
    • MongoCursor::explain - Retourne une explication de la requête, souvent utile pour le déboguage et l'optimisation
    • MongoCursor::fields - Définit les champs d'une requête
    • MongoCursor::getNext - Avance le curseur au prochain résultat, et le retourne
    • MongoCursor::getReadPreference - Récupère les préférences de lecture pour cette requête
    • MongoCursor::hasNext - Vérifie s'il y a encore des éléments pour ce curseur
    • MongoCursor::hint - Donne des indications à la base de données pour la requête
    • MongoCursor::immortal - Définit si le curseur doit s'interrompre après un certain délai
    • MongoCursor::info - Récupère les informations sur la création du curseur et son itération
    • MongoCursor::key - Retourne l'identifiant du résultat courant ou son index dans le jeu de résultats
    • MongoCursor::limit - Limite le nombre de résultats retournés
    • MongoCursor::maxTimeMS - Défini le délai d'attente maximal côté serveur pour la requête
    • MongoCursor::next - Avance le curseur au prochain résultat et le retourne
    • MongoCursor::partial - Si la requête doit récupérer des résultats partiels depuis mongos si un partage est inaccessible
    • MongoCursor::reset - Efface le curseur
    • MongoCursor::rewind - Retourne le curseur au début du jeu de résultats
    • MongoCursor::setFlag - Définit des drapeaux dans le cas où aucune méthode dédiée n'est disponible
    • MongoCursor::setReadPreference - Définit les préférences de lecture pour cette requête
    • MongoCursor::skip - Omet les premiers résultats
    • MongoCursor::slaveOkay - Définit si la requête peut être effectuée sur un serveur secondaire (obsolète)
    • MongoCursor::snapshot - Utilise le mode de capture pour la requête
    • MongoCursor::sort - Trie les résultats par ordre de champs
    • MongoCursor::tailable - Définit si le curseur doit être conservé ouvert après la récupération du dernier résultat
    • MongoCursor::timeout - Défini un délai maximum d'attente côté client pour cette requête
    • MongoCursor::valid - Vérifie si le curseur lit un résultat valide
    • MongoCursor::__construct - Crée un nouveau curseur
    • MongoCursorException::getHost - Récupère le nom de l'hôte sur lequel une erreur est survenue
    • MongoCursorInterface::batchSize - Limite le nombre d'éléments retourné dans un lot
    • MongoCursorInterface::dead - Vérifie s'il y a des résultats qui n'ont pas encore été envoyés depuis la base de données
    • MongoCursorInterface::getReadPreference - Récupère les préférence de lecture pour cette requête
    • MongoCursorInterface::info - Récupère des informations sur la création du curseur et son itération
    • MongoCursorInterface::setReadPreference - Définit les préférences de lecture pour cette requête
    • MongoCursorInterface::timeout - Définit un délai maximal d'attente côté client pour cette requête
    • MongoDate::toDateTime - Retourne un objet DateTime représentant cette date
    • MongoDate::__construct - Crée une nouvelle date
    • MongoDate::__toString - Retourne la date sous forme de chaîne
    • MongoDB::authenticate - Identification à une base de données
    • MongoDB::command - Exécute une commande de base de données
    • MongoDB::createCollection - Crée une collection
    • MongoDB::createDBRef - Crée une référence de base de données
    • MongoDB::drop - Supprime cette base de données
    • MongoDB::dropCollection - Supprime une collection [obsolète]
    • MongoDB::execute - Exécute le code JavaScript sur la base de données [Obsolète]
    • MongoDB::forceError - Crée une erreur de base de données
    • MongoDB::getCollectionInfo - Retourne des informations sur les collections de cette base de données
    • MongoDB::getCollectionNames - Récupère un tableau de noms pour toutes les collections de cette base de données
    • MongoDB::getDBRef - Lit le contenu d'une référence de base de données
    • MongoDB::getGridFS - Manipulations des fichiers dans la base
    • MongoDB::getProfilingLevel - Lit le niveau de profilage de la base de données
    • MongoDB::getReadPreference - Récupère les préférences de lecture pour cette base de données
    • MongoDB::getSlaveOkay - Récupère la configuration de slaveOkay pour cette base de données
    • MongoDB::getWriteConcern - Récupère la préoccupation d'écriture pour cette base de données
    • MongoDB::lastError - Vérifie s'il y a une erreur sur la dernière opération relative à la base de données
    • MongoDB::listCollections - Récupère un tableau des objets MongoCollections pour toutes les collections de cette base de données
    • MongoDB::prevError - Vérifie la dernière erreur émise lors d'une opération relative à la base de données
    • MongoDB::repair - Répare et compacte une base de données
    • MongoDB::resetError - Efface toutes les erreurs d'une base de données
    • MongoDB::selectCollection - Lit une collection
    • MongoDB::setProfilingLevel - Configure le niveau de profilage de la base de données
    • MongoDB::setReadPreference - Définit les préférences de lecture pour cette base de données
    • MongoDB::setSlaveOkay - Modifie la configuration de slaveOkay pour cette base de données
    • MongoDB::setWriteConcern - Défini la préoccupation d'écriture pour cette base de données
    • MongoDB::__construct - Crée une nouvelle base de données Mongo
    • MongoDB::__get - Récupère une collection
    • MongoDB::__toString - Le nom de cette base de données Mongo
    • MongoDBRef::create - Crée un nouvelle référence de base de données
    • MongoDBRef::get - Lit l'objet identifié par la référence
    • MongoDBRef::isRef - Vérifie si un tableau est une référence de base de données
    • MongoDB\BSON\Binary::getData - Returns the Binary's data
    • MongoDB\BSON\Binary::getType - Returns the Binary's type
    • MongoDB\BSON\Binary::__construct - Construit un nouveau binaire
    • MongoDB\BSON\Decimal128::__construct - Construct a new Decimal128
    • MongoDB\BSON\Decimal128::__toString - Returns the string representation of this Decimal128
    • MongoDB\BSON\fromPHP - Returns the BSON representation of a PHP value
    • MongoDB\BSON\Javascript::__construct - Construit un nouveau Javascript
    • MongoDB\BSON\MaxKey::__construct - Construct a new MaxKey
    • MongoDB\BSON\MinKey::__construct - Construct a new MinKey
    • MongoDB\BSON\ObjectID::__construct - Construit un nouvel ObjectID
    • MongoDB\BSON\ObjectID::__toString - Retourne la représentation hexadécimale de cet ObjectID
    • MongoDB\BSON\Regex::getFlags - Retourne les drapeux de la REGEX
    • MongoDB\BSON\Regex::getPattern - Retourne le masque du REGEX
    • MongoDB\BSON\Regex::__construct - Construit une nouvelle REGEX
    • MongoDB\BSON\Regex::__toString - Retourne la chaîne représentant cette REGEX
    • MongoDB\BSON\toPHP - Returns the PHP representation of a BSON value
    • MongoDB\Driver\BulkWrite::count - Count number of write operations in the bulk
    • MongoDB\Driver\BulkWrite::delete - Add a delete operation to the bulk
    • MongoDB\Driver\BulkWrite::insert - Add an insert operation to the bulk
    • MongoDB\Driver\BulkWrite::update - Add an update operation to the bulk
    • MongoDB\Driver\BulkWrite::__construct - Create a new BulkWrite
    • MongoDB\Driver\Command::__construct - Crée une nouvelle commande
    • MongoDB\Driver\Cursor::getId - Retourne le CursorId pour ce curseur
    • MongoDB\Driver\Cursor::getServer - Retourne l'objet Server sur lequel le curseur est attaché
    • MongoDB\Driver\Cursor::isDead - Vérifie si un curseur est toujours disponible
    • MongoDB\Driver\Cursor::setTypeMap - Défini un type de carte à utiliser pour la délinéarisation BSON
    • MongoDB\Driver\Cursor::toArray - Retourne un tableau de tous les documents résultants pour ce curseur
    • MongoDB\Driver\Cursor::__construct - Description
    • MongoDB\Driver\CursorId::__construct - Description
    • MongoDB\Driver\CursorId::__toString - Description
    • MongoDB\Driver\Exception\WriteException::getWriteResult - Returns the WriteResult for the failed write operation
    • MongoDB\Driver\Manager::executeBulkWrite - Execute one or more write operations
    • MongoDB\Driver\Manager::executeCommand - Execute a database command
    • MongoDB\Driver\Manager::executeQuery - Execute a database query
    • MongoDB\Driver\Manager::getServers - Description
    • MongoDB\Driver\Manager::selectServer - Select a server matching a read preference
    • MongoDB\Driver\Manager::__construct - Create new MongoDB Manager
    • MongoDB\Driver\Query::__construct - Construct new Query
    • MongoDB\Driver\ReadConcern::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ReadConcern::getLevel - Returns the ReadConcern's "level" option
    • MongoDB\Driver\ReadConcern::__construct - Construct immutable ReadConcern
    • MongoDB\Driver\ReadPreference::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ReadPreference::getMode - Returns the ReadPreference's "mode" option
    • MongoDB\Driver\ReadPreference::getTagSets - Returns the ReadPreference's "tagSets" option
    • MongoDB\Driver\ReadPreference::__construct - Description
    • MongoDB\Driver\Server::executeBulkWrite - Exécute une ou plusieurs opérations d'écriture sur ce serveur
    • MongoDB\Driver\Server::executeCommand - Exécute une commande de base de données sur ce serveur
    • MongoDB\Driver\Server::executeQuery - Exécute une requête de base de données sur ce serveur
    • MongoDB\Driver\Server::getHost - Retourne le nom d'hôte du serveur
    • MongoDB\Driver\Server::getInfo - Retourne un tableau d'informations sur ce serveur
    • MongoDB\Driver\Server::getLatency - Retourne la latence de ce serveur
    • MongoDB\Driver\Server::getPort - Retourne le port sur lequel le serveur écoute
    • MongoDB\Driver\Server::getTags - Returns an array of tags describing this server in a replica set
    • MongoDB\Driver\Server::getType - Retourne un entier représentant le type du serveur
    • MongoDB\Driver\Server::isArbiter - Checks if this server is an arbiter member of a replica set
    • MongoDB\Driver\Server::isHidden - Checks if this server is a hidden member of a replica set
    • MongoDB\Driver\Server::isPassive - Vérifie si le serveur est un membre passif du jeu de réplication
    • MongoDB\Driver\Server::isPrimary - Checks if this server is a primary member of a replica set
    • MongoDB\Driver\Server::isSecondary - Checks if this server is a secondary member of a replica set
    • MongoDB\Driver\Server::__construct - Description
    • MongoDB\Driver\WriteConcern::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\WriteConcern::getJournal - Returns the WriteConcern's "journal" option
    • MongoDB\Driver\WriteConcern::getW - Returns the WriteConcern's "w" option
    • MongoDB\Driver\WriteConcern::getWtimeout - Returns the WriteConcern's "wtimeout" option
    • MongoDB\Driver\WriteConcern::__construct - Construit un WriteConcern immutable
    • MongoDB\Driver\WriteConcernError::getCode - Description
    • MongoDB\Driver\WriteConcernError::getInfo - Description
    • MongoDB\Driver\WriteConcernError::getMessage - Description
    • MongoDB\Driver\WriteError::getCode - Description
    • MongoDB\Driver\WriteError::getIndex - Description
    • MongoDB\Driver\WriteError::getInfo - Returns additional metadata for the WriteError
    • MongoDB\Driver\WriteError::getMessage - Description
    • MongoDB\Driver\WriteResult::getDeletedCount - Description
    • MongoDB\Driver\WriteResult::getInsertedCount - Description
    • MongoDB\Driver\WriteResult::getMatchedCount - Description
    • MongoDB\Driver\WriteResult::getModifiedCount - Description
    • MongoDB\Driver\WriteResult::getServer - Description
    • MongoDB\Driver\WriteResult::getUpsertedCount - Description
    • MongoDB\Driver\WriteResult::getUpsertedIds - Description
    • MongoDB\Driver\WriteResult::getWriteConcernError - Description
    • MongoDB\Driver\WriteResult::getWriteErrors - Description
    • MongoDB\Driver\WriteResult::isAcknowledged - Returns whether the write was acknowledged
    • MongoDeleteBatch::__construct - Description
    • MongoGridFS::delete - Efface un fichier et ces morceaux depuis la base de données
    • MongoGridFS::drop - Efface les collections de fichiers
    • MongoGridFS::find - Interroge un fichier
    • MongoGridFS::findOne - Lit un fichier unique satisfaisant les critères
    • MongoGridFS::get - Récupère un fichier depuis la base de données
    • MongoGridFS::put - Stocke un fichier dans la base de données
    • MongoGridFS::remove - Efface des fichiers et leurs morceaux de la base de données
    • MongoGridFS::storeBytes - Stocke une chaîne d'octets dans la base de données
    • MongoGridFS::storeFile - Stocke un fichier dans la base de données
    • MongoGridFS::storeUpload - Stocke un fichier téléchargé dans la base de données
    • MongoGridFS::__construct - Crée une nouvelle collection de fichiers
    • MongoGridFSCursor::current - Retourne le fichier courant
    • MongoGridFSCursor::getNext - Retourne le prochain fichier vers lequel pointe le curseur, puis avance le curseur
    • MongoGridFSCursor::key - Retourne l'identifiant courant
    • MongoGridFSCursor::__construct - Crée un nouveau curseur
    • MongoGridFSFile::getBytes - Retourne le contenu du fichier
    • MongoGridFSFile::getFilename - Retourne le nom du fichier
    • MongoGridFSFile::getResource - Retourne une ressource qui peut être utilisée pour lire le fichier stocké
    • MongoGridFSFile::getSize - Retourne la taille du fichier
    • MongoGridFSFile::write - Ecrit un fichier dans le système de fichiers
    • MongoGridfsFile::__construct - Crée un nouveau fichier GridFS
    • MongoId::getHostname - Récupère le nom d'hôte utilisé pour les identifiants de cette machine
    • MongoId::getInc - Récupère la valeur incrémentée pour créer cet identifiant
    • MongoId::getPID - Récupère l'identifiant du processus
    • MongoId::getTimestamp - Retourne le timestamp depuis la création de l'id
    • MongoId::isValid - Vérifie si une valeur est un ObjectId valide
    • MongoId::__construct - Crée un nouvel identifiant
    • MongoId::__set_state - Crée un MongoId
    • MongoId::__toString - Retourne une représentation hexadécimale de cet identifiant
    • MongoInsertBatch::__construct - Description
    • MongoInt32::__construct - Crée un nouvel entier 32-bit
    • MongoInt32::__toString - Retourne la représentation sous forme de chaîne de caractères d'un entier 32-bit
    • MongoInt64::__construct - Crée un nouvel entier 64-bit
    • MongoInt64::__toString - Retourne la représentation sous forme de chaîne de caractères d'un entier 64-bit
    • MongoLog::getCallback - Récupère la précédente fonction de rappel définie
    • MongoLog::getLevel - Récupère le(s) niveau(x) actuellement loggué(s)
    • MongoLog::getModule - Récupère le(s) module(s) actuellement surveillé(s)
    • MongoLog::setCallback - Définit une fonction de rappel à utiliser lors d'événements
    • MongoLog::setLevel - Définit le(s) niveau(x) des logs
    • MongoLog::setModule - Définit le(s) module(s) à surveiller avec les logs
    • MongoPool::getSize - Récupère la taille de la file d'attente des connexions
    • MongoPool::info - Retourne des informations sur toutes les files d'attente de connexions
    • MongoPool::setSize - Définit la taille de la future file d'attente de connexions
    • MongoRegex::__construct - Crée une nouvelle expression rationnelle
    • MongoRegex::__toString - Retourne une expression rationnelle sous forme de chaîne
    • MongoResultException::getDocument - Récupère le document résultant complet
    • MongoTimestamp::__construct - Crée un nouveau timestamp
    • MongoTimestamp::__toString - Retourne une représentation sous la forme d'une chaîne de caractères d'un timestamp
    • MongoUpdateBatch::__construct - Description
    • MongoWriteBatch::add - Ajoute une opération d'écriture dans un lot
    • MongoWriteBatch::execute - Exécute un lot d'opérations d'écriture
    • MongoWriteBatch::__construct - Crée un nouveau lot d'opérations d'écriture
    • MongoWriteConcernException::getDocument - Récupère le document d'erreur
    • move_uploaded_file - Déplace un fichier téléchargé
    • mqseries_back - MQSeries MQBACK
    • mqseries_begin - MQseries MQBEGIN
    • mqseries_close - MQSeries MQCLOSE
    • mqseries_cmit - MQSeries MQCMIT
    • mqseries_conn - MQSeries MQCONN
    • mqseries_connx - MQSeries MQCONNX
    • mqseries_disc - MQSeries MQDISC
    • mqseries_get - MQSeries MQGET
    • mqseries_inq - MQSeries MQINQ
    • mqseries_open - MQSeries MQOPEN
    • mqseries_put - MQSeries MQPUT
    • mqseries_put1 - MQSeries MQPUT1
    • mqseries_set - MQSeries MQSET
    • mqseries_strerror - Retourne le message d'erreur correspondant au code de résultat
    • msession_connect - Ouvre la connexion au serveur msession
    • msession_count - Compte le nombre de sessions
    • msession_create - Crée une session
    • msession_destroy - Détruit une session
    • msession_disconnect - Ferme la connexion au serveur msession
    • msession_find - Trouve toutes les sessions avec un nom et une valeur
    • msession_get - Lit une valeur dans une session
    • msession_get_array - Lit un tableau de variables msession
    • msession_get_data - Lit les données de la session
    • msession_inc - Incrémente une valeur dans une session
    • msession_list - Liste toutes les sessions
    • msession_listvar - Liste les sessions contenant une variable
    • msession_lock - Verrouille une session
    • msession_plugin - Appel une fonction d'échappement dans les plugins de personnalité msession
    • msession_randstr - Lit une chaîne aléatoire
    • msession_set - Modifie une valeur dans la session
    • msession_set_array - Définit les variables msession depuis un tableau
    • msession_set_data - Définit les données de session
    • msession_timeout - Lit et/ou modifie la durée de vie d'une session
    • msession_uniq - Récupère un identifiant unique
    • msession_unlock - Déverrouille une session
    • msg_get_queue - Crée ou s'attache à une file de messages
    • msg_queue_exists - Vérifie si une file de messages existe
    • msg_receive - Reçoit un message depuis une file de messages
    • msg_remove_queue - Détruit une file de messages
    • msg_send - Envoie un message dans une file
    • msg_set_queue - Modifie des informations dans la file de messages
    • msg_stat_queue - Retourne des informations sur la file de messages
    • msql - Alias de msql_db_query
    • msql_affected_rows - Retourne le nombre de lignes affectées
    • msql_close - Ferme une connexion mSQL
    • msql_connect - Ouvre une connexion mSQL
    • msql_createdb - Alias de msql_create_db
    • msql_create_db - Crée une base de données mSQL
    • msql_data_seek - Déplace le pointeur interne mSQL
    • msql_dbname - Alias de msql_result
    • msql_db_query - Soumet une requête mSQL
    • msql_drop_db - Efface une base de données mSQL
    • msql_error - Retourne le message d'erreur mSQL
    • msql_fetch_array - Lit une ligne sous la forme d'un tableau
    • msql_fetch_field - Lit la valeur d'un champ mSQL
    • msql_fetch_object - Lit une ligne sous la forme d'un objet
    • msql_fetch_row - Retourne une ligne sous la forme d'un tableau
    • msql_fieldflags - Alias de msql_field_flags
    • msql_fieldlen - Alias de msql_field_len
    • msql_fieldname - Alias de msql_field_name
    • msql_fieldtable - Alias de msql_field_table
    • msql_fieldtype - Alias de msql_field_type
    • msql_field_flags - Lit les options de champ msql
    • msql_field_len - Lit la taille du champ mSQL
    • msql_field_name - Lit le nom du champ msql
    • msql_field_seek - Fixe l'offset d'un champ mSQL
    • msql_field_table - Lit le nom de la table du champ msql
    • msql_field_type - Lit le type de champ mSQL
    • msql_free_result - Libère le résultat de la mémoire
    • msql_list_dbs - Liste les bases de données mSQL sur un serveur
    • msql_list_fields - Liste les champs d'une table
    • msql_list_tables - Liste les tables mSQL sur une base de données
    • msql_numfields - Alias de msql_num_fields
    • msql_numrows - Alias de msql_num_rows
    • msql_num_fields - Retourne le nombre de champs dans un résultat
    • msql_num_rows - Retourne le nombre de lignes dans un résultat
    • msql_pconnect - Ouvre une connexion persistante à un serveur mSQL
    • msql_query - Envoie une requête mSQL
    • msql_regcase - Alias de sql_regcase
    • msql_result - Retourne les données de résultat
    • msql_select_db - Sélectionne une base de données mSQL
    • msql_tablename - Alias de msql_result
    • mssql_bind - Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante)
    • mssql_close - Ferme une connexion MS SQL Server
    • mssql_connect - Ouvre une connexion à un serveur MS SQL server
    • mssql_data_seek - Déplace le pointeur interne de ligne
    • mssql_execute - Exécute une procédure stockée sur un serveur MS SQL
    • mssql_fetch_array - Lit une ligne de résultat MS SQL dans un tableau
    • mssql_fetch_assoc - Retourne un tableau associatif pour la ligne courant de résultat MS SQL Server
    • mssql_fetch_batch - Retourne le prochain lot de lignes MS SQL Server
    • mssql_fetch_field - Lit les informations sur le champ
    • mssql_fetch_object - Retourne une ligne de résultat MS SQL Server sous la forme d'un objet
    • mssql_fetch_row - Lit une ligne de résultat MS SQL dans un tableau numérique
    • mssql_field_length - Lit la longueur d'un champ MS SQL Server
    • mssql_field_name - Lit le nom d'un champ MS SQL Server
    • mssql_field_seek - Fixe la position du pointeur de champ MS SQL Server
    • mssql_field_type - Lit le nom d'un champ MS SQL Server
    • mssql_free_result - Libère la mémoire des ressources MS SQL Server
    • mssql_free_statement - Libère une commande MS SQL Server de la mémoire
    • mssql_get_last_message - Retourne le dernier message d'erreur du serveur
    • mssql_guid_string - Convertit le GUID binaire de 16 octets en une chaîne de caractères
    • mssql_init - Initialise une procédure stockée MS SQL Server locale ou distante
    • mssql_min_error_severity - Fixe le niveau de sévérité des erreurs MS SQL Server
    • mssql_min_message_severity - Fixe le niveau de sévérité des messages d'erreur MS SQL Server
    • mssql_next_result - Déplace le pointeur interne MS SQL Server au résultat suivant
    • mssql_num_fields - Retourne le nombre de champs dans un résultat MS SQL Server
    • mssql_num_rows - Retourne le nombre de lignes dans un résultat MS SQL
    • mssql_pconnect - Ouvre une connexion persistante à un serveur MS SQL
    • mssql_query - Envoie une requête SQL au serveur MS SQL
    • mssql_result - Lit les données d'un résultat
    • mssql_rows_affected - Retourne le nombre de lignes affectées par une requête MS SQL Server
    • mssql_select_db - Sélectionne la base de données MS SQL
    • mt_getrandmax - La plus grande valeur aléatoire possible
    • mt_rand - Génère une meilleure valeur aléatoire
    • mt_srand - Initialise une meilleure valeur aléatoire
    • MultipleIterator::attachIterator - Attache un itérateur
    • MultipleIterator::containsIterator - Vérifie si un itérateur est attaché
    • MultipleIterator::countIterators - Récupère le nombre d'instances d'itérateurs attachés
    • MultipleIterator::current - Récupère les instantes des itérateurs attachés
    • MultipleIterator::detachIterator - Détache un itérateur
    • MultipleIterator::getFlags - Récupère les informations d'un drapeau
    • MultipleIterator::key - Récupère les instances des itérateurs enregistrés
    • MultipleIterator::next - Déplace vers l'avant toutes les instances des itérateurs attachés
    • MultipleIterator::rewind - Réinitialise toutes les instances d'itérateurs attachés
    • MultipleIterator::setFlags - Définit des drapeaux
    • MultipleIterator::valid - Vérifie la validité d'un sous-itérateur
    • MultipleIterator::__construct - Construit un nouvel objet MultipleIterator
    • Mutex::create - Crée un Mutex
    • Mutex::destroy - Détruit un Mutex
    • Mutex::lock - Acquière un Mutex
    • Mutex::trylock - Tente d'acquérir un Mutex
    • Mutex::unlock - Libère un Mutex
    • mysqli::$affected_rows - Retourne le nombre de lignes affectées par la dernière opération MySQL
    • mysqli::$client_info - Récupère les informations du client MySQL
    • mysqli::$connect_errno - Retourne le code d'erreur de la connexion MySQL
    • mysqli::$connect_error - Retourne le message d'erreur de connexion MySQL
    • mysqli::$errno - Retourne le dernier code d'erreur produit
    • mysqli::$error - Retourne une chaîne décrivant la dernière erreur
    • mysqli::$error_list - Retourne une liste d'erreur depuis la dernière commande exécutée
    • mysqli::$field_count - Retourne le nombre de colonnes pour la dernière requête
    • mysqli::$host_info - Retourne une chaîne contenant le type de connexion utilisée
    • mysqli::$info - Retourne des informations à propos de la dernière requête exécutée
    • mysqli::$insert_id - Retourne l'identifiant automatiquement généré par la dernière requête
    • mysqli::$protocol_version - Retourne la version du protocole MySQL utilisé
    • mysqli::$server_info - Retourne la version du serveur MySQL
    • mysqli::$server_version - Retourne un entier représentant la version du serveur MySQL
    • mysqli::$sqlstate - Retourne l'erreur SQLSTATE de la dernière opération MySQL
    • mysqli::$thread_id - Retourne l'identifiant du thread pour la connexion courante
    • mysqli::$warning_count - Retourne le nombre d'avertissements générés par la dernière requête
    • mysqli::autocommit - Active ou désactive le mode auto-commit
    • mysqli::begin_transaction - Démarre une transaction
    • mysqli::change_user - Change l'utilisateur de la connexion spécifiée
    • mysqli::character_set_name - Retourne le jeu de caractères courant pour la connexion
    • mysqli::close - Ferme une connexion
    • mysqli::commit - Valide la transaction courante
    • mysqli::debug - Effectue des actions de déboguage
    • mysqli::disable_reads_from_master - Désactive les lectures depuis le maître
    • mysqli::dump_debug_info - Écrit les informations de déboguage dans les logs
    • mysqli::get_charset - Retourne un objet représentant le jeu de caractères
    • mysqli::get_client_info - Récupère des informations sur le client MySQL
    • mysqli::get_connection_stats - Retourne des statistiques sur la connexion
    • mysqli::get_warnings - Lit le résultat de SHOW WARNINGS
    • mysqli::init - Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()
    • mysqli::kill - Demande au serveur de terminer un thread MySQL
    • mysqli::more_results - Vérifie s'il y a d'autres jeux de résultats MySQL disponibles
    • mysqli::multi_query - Exécute une requête MySQL multiple
    • mysqli::next_result - Prépare le prochain résultat d'une requête multiple
    • mysqli::options - Définit les options
    • mysqli::ping - Ping la connexion au serveur et reconnecte si elle n'existe plus
    • mysqli::poll - Vérifie l'état de la connexion
    • mysqli::prepare - Prépare une requête SQL pour l'exécution
    • mysqli::query - Exécute une requête sur la base de données
    • mysqli::real_connect - Ouvre une connexion à un serveur MySQL
    • mysqli::real_escape_string - Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion
    • mysqli::real_query - Exécute une requête SQL
    • mysqli::reap_async_query - Lit un résultat pour une requête asynchrone
    • mysqli::refresh - Rafraîchie
    • mysqli::release_savepoint - Supprime le point de sauvegardé nommé du jeu des points de sauvegarde de la transaction courante
    • mysqli::rollback - Annule la transaction courante
    • mysqli::rpl_query_type - Retourne le type de requête RPL
    • mysqli::savepoint - Défini un point de sauvegarde nommé de la transaction
    • mysqli::select_db - Sélectionne une base de données par défaut pour les requêtes
    • mysqli::send_query - Envoie la requête et retourne
    • mysqli::set_charset - Définit le jeu de caractères par défaut du client
    • mysqli::set_local_infile_default - Rétablit le gestionnaire par défaut pour la commande LOAD LOCAL INFILE
    • mysqli::set_local_infile_handler - Définit une fonction de rappel pour la commande LOAD DATA LOCAL INFILE
    • mysqli::set_opt - Alias de mysqli_options
    • mysqli::ssl_set - Utilisée pour établir une connexion sécurisée avec SSL
    • mysqli::stat - Obtient le statut courant du système
    • mysqli::stmt_init - Initialise une commande MySQL
    • mysqli::store_result - Transfère un jeu de résultats à partir de la dernière requête
    • mysqli::thread_safe - Indique si le support des threads est activé ou pas
    • mysqli::use_result - Initialise la récupération d'un jeu de résultats
    • mysqli::__construct - Ouvre une connexion à un serveur MySQL
    • mysqli_bind_param - Alias de mysqli_stmt_bind_param
    • mysqli_bind_result - Alias de mysqli_stmt_bind_result
    • mysqli_client_encoding - Alias de mysqli_character_set_name
    • mysqli_connect - Alias de mysqli::__construct
    • mysqli_disable_rpl_parse - Désactive l'analyseur RPL
    • mysqli_driver::$report_mode - Active ou désactive les fonctions de rapport interne
    • mysqli_driver::embedded_server_end - Arrête le serveur embarqué
    • mysqli_driver::embedded_server_start - Initialise et démarre le serveur embarqué
    • mysqli_enable_reads_from_master - Active la lecture depuis le maître
    • mysqli_enable_rpl_parse - Active l'analyseur RPL
    • mysqli_escape_string - Alias de mysqli_real_escape_string
    • mysqli_execute - Alias de mysqli_stmt_execute
    • mysqli_fetch - Alias de mysqli_stmt_fetch
    • mysqli_get_cache_stats - Retourne les statistiques sur le cache du client Zval
    • mysqli_get_client_stats - Retournes des statistiques sur le client, par processus
    • mysqli_get_client_version - Retourne la version du client MySQL sous forme d'un entier
    • mysqli_get_links_stats - Retourne des informations sur les liens ouverts et mis en cache
    • mysqli_get_metadata - Alias de mysqli_stmt_result_metadata
    • mysqli_master_query - Force l'exécution d'une requête sur le maître dans une configuration maître/esclave
    • mysqli_param_count - Alias de mysqli_stmt_param_count
    • mysqli_report - Alias de mysqli_driver->report_mode
    • mysqli_result::$current_field - Récupère la position courante d'un champ dans un pointeur de résultat
    • mysqli_result::$field_count - Récupère le nombre de champs dans un résultat
    • mysqli_result::$lengths - Retourne la longueur des colonnes de la ligne courante du jeu de résultats
    • mysqli_result::$num_rows - Retourne le nombre de lignes dans un résultat
    • mysqli_result::data_seek - Déplace le pointeur interne de résultat
    • mysqli_result::fetch_all - Lit toutes les lignes de résultats dans un tableau
    • mysqli_result::fetch_array - Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
    • mysqli_result::fetch_assoc - Récupère une ligne de résultat sous forme de tableau associatif
    • mysqli_result::fetch_field - Retourne le prochain champs dans le jeu de résultats
    • mysqli_result::fetch_fields - Retourne un tableau d'objets représentant les champs dans le résultat
    • mysqli_result::fetch_field_direct - Récupère les métadonnées d'un champ unique
    • mysqli_result::fetch_object - Retourne la ligne courante d'un jeu de résultat sous forme d'objet
    • mysqli_result::fetch_row - Récupère une ligne de résultat sous forme de tableau indexé
    • mysqli_result::field_seek - Déplace le pointeur de résultat sur le champ spécifié
    • mysqli_result::free - Libère la mémoire associée à un résultat
    • mysqli_rpl_parse_enabled - Vérifie si l'analyseur RPL est activé
    • mysqli_rpl_probe - Sonde le RPL
    • mysqli_send_long_data - Alias de mysqli_stmt_send_long_data
    • mysqli_slave_query - Force l'exécution de la requête sur un serveur esclave pour une configuration maître/esclave
    • mysqli_stmt::$affected_rows - Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête
    • mysqli_stmt::$errno - Retourne un code erreur pour la dernière requête
    • mysqli_stmt::$error - Retourne une description de la dernière erreur de traitement
    • mysqli_stmt::$error_list - Retourne une liste d'erreurs pour la dernière requête exécutée
    • mysqli_stmt::$field_count - Retourne le nombre de champs présent dans la requête donnée
    • mysqli_stmt::$insert_id - Récupère l'ID généré par la dernière requête INSERT
    • mysqli_stmt::$num_rows - Retourne le nombre de lignes d'un résultat MySQL
    • mysqli_stmt::$param_count - Retourne le nombre de paramètre d'une commande SQL
    • mysqli_stmt::$sqlstate - Retourne le code SQLSTATE de la dernière opération MySQL
    • mysqli_stmt::attr_get - Récupère la valeur courante d'un attribut de requête
    • mysqli_stmt::attr_set - Modifie le comportement d'une requête préparée
    • mysqli_stmt::bind_param - Lie des variables à une requête MySQL
    • mysqli_stmt::bind_result - Lie des variables à un jeu de résultats
    • mysqli_stmt::close - Termine une requête préparée
    • mysqli_stmt::data_seek - Déplace le pointeur de résultat
    • mysqli_stmt::execute - Exécute une requête préparée
    • mysqli_stmt::fetch - Lit des résultats depuis une requête MySQL préparée dans des variables liées
    • mysqli_stmt::free_result - Libère le résultat MySQL de la mémoire
    • mysqli_stmt::get_result - Récupère un jeu de résultats depuis une requête préparée
    • mysqli_stmt::get_warnings - Récupère le résultat de SHOW WARNINGS
    • mysqli_stmt::more_results - Vérifie s'il y a encore des résultats depuis une requête multiple
    • mysqli_stmt::next_result - Lit le résultat suivant depuis une requête multiple
    • mysqli_stmt::prepare - Prépare une requête SQL pour l'exécution
    • mysqli_stmt::reset - Annule une requête préparée
    • mysqli_stmt::result_metadata - Retourne les métadonnées de préparation de requête MySQL
    • mysqli_stmt::send_long_data - Envoie des données MySQL par paquets
    • mysqli_stmt::store_result - Stocke un jeu de résultats depuis une requête préparée
    • mysqli_stmt::__construct - Construit un nouvel objet mysqli_stmt
    • mysqli_warning::next - Le but de next
    • mysqli_warning::__construct - Le constructeur __construct
    • MysqlndUhConnection::changeUser - Change l'utilisateur de la connexion à la base de données mysqlnd spécifié
    • MysqlndUhConnection::charsetName - Récupère le jeu de caractères par défaut pour la connexion à la base de données
    • MysqlndUhConnection::close - Ferme une connexion existante à la base de données
    • MysqlndUhConnection::connect - Ouvre une nouvelle connexion vers le serveur MySQL
    • MysqlndUhConnection::endPSession - Ferme une connexion persistante
    • MysqlndUhConnection::escapeString - Échappe les caractères spéciaux d'une chaîne dans le but d'être utilisée dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion
    • MysqlndUhConnection::getAffectedRows - Récupère le nombre de lignes affectées par la précédente opération MySQL
    • MysqlndUhConnection::getErrorNumber - Retourne le code erreur du plus récent appel à une fonction
    • MysqlndUhConnection::getErrorString - Retourne une description textuelle de la dernière erreur
    • MysqlndUhConnection::getFieldCount - Retourne le nombre de colonnes contenu dans la dernière requête
    • MysqlndUhConnection::getHostInformation - Retourne une chaîne représentant le type de connexion utilisé
    • MysqlndUhConnection::getLastInsertId - Retourne l'identifiant auto-généré utilisé dans la dernière requête
    • MysqlndUhConnection::getLastMessage - Récupère les informations concernant la dernière requête exécutée
    • MysqlndUhConnection::getProtocolInformation - Retourne la version du protocole MySQL utilisé
    • MysqlndUhConnection::getServerInformation - Retourne la version du serveur MySQL
    • MysqlndUhConnection::getServerStatistics - Récupère le statut du système courant
    • MysqlndUhConnection::getServerVersion - Retourne la version du serveur MySQL sous la forme d'un entier
    • MysqlndUhConnection::getSqlstate - Retourne l'erreur SQLSTATE depuis la dernière opération MySQL
    • MysqlndUhConnection::getStatistics - Retourne les statistiques sur la connexion cliente
    • MysqlndUhConnection::getThreadId - Retourne l'identifiant du thread pour la connexion courante
    • MysqlndUhConnection::getWarningCount - Retourne le nombre d'alertes depuis la dernière requête
    • MysqlndUhConnection::init - Initialise une connexion Mysqlnd
    • MysqlndUhConnection::killConnection - Demande au serveur de tuer un thread MySQL
    • MysqlndUhConnection::listFields - Liste les champs d'une table MySQL
    • MysqlndUhConnection::listMethod - Gestionnaire pour des commandes
    • MysqlndUhConnection::moreResults - Vérifie s'il y a encore des résultats depuis une requête multiple
    • MysqlndUhConnection::nextResult - Prépare le prochain résultat depuis multi_query
    • MysqlndUhConnection::ping - Ping une connexion de serveur ou tente de se reconnecter si la connexion n'est plus disponible
    • MysqlndUhConnection::query - Exécute une requête sur la base de données
    • MysqlndUhConnection::queryReadResultsetHeader - Lit un en-tête de jeu de résultats
    • MysqlndUhConnection::reapQuery - Récupère le résultat depuis une requête asynchrone
    • MysqlndUhConnection::refreshServer - Rafraîchie ou réinitialise les tables et les caches
    • MysqlndUhConnection::restartPSession - Redémarre une connexion mysqlnd persistante
    • MysqlndUhConnection::selectDb - Sélectionne la base de données par défaut pour l'exécution des requêtes
    • MysqlndUhConnection::sendClose - Envoi une commande de fermeture à MySQL
    • MysqlndUhConnection::sendQuery - Envoi une requête à MySQL
    • MysqlndUhConnection::serverDumpDebugInformation - Extrait les informations de débogage dans les logs pour le serveur MySQL
    • MysqlndUhConnection::setAutocommit - Active ou désactive l'auto-commit de la base de données
    • MysqlndUhConnection::setCharset - Définit le jeu de caractères par défaut du client
    • MysqlndUhConnection::setClientOption - Définit une option du client
    • MysqlndUhConnection::setServerOption - Définit une option serveur
    • MysqlndUhConnection::shutdownServer - Le but de shutdownServer
    • MysqlndUhConnection::simpleCommand - Envoi une commande COM_*
    • MysqlndUhConnection::simpleCommandHandleResponse - Analyse une réponse d'une commande COM_* envoyée au client
    • MysqlndUhConnection::sslSet - Utilisé pour établir des connexions sécurisées utilisant SSL
    • MysqlndUhConnection::stmtInit - Initialise une requête et retourne une ressource à utiliser avec mysqli_statement::prepare
    • MysqlndUhConnection::storeResult - Transfère un jeu de résultats depuis la dernière requête
    • MysqlndUhConnection::txCommit - Valide la transaction courante
    • MysqlndUhConnection::txRollback - Annule la transaction courante
    • MysqlndUhConnection::useResult - Initialise un jeu de résultats récupéré
    • MysqlndUhConnection::__construct - Le but de __construct
    • MysqlndUhPreparedStatement::execute - Exécute une requête préparée
    • MysqlndUhPreparedStatement::prepare - Prépare une requête SQL pour exécution
    • MysqlndUhPreparedStatement::__construct - Le but de __construct
    • mysqlnd_memcache_get_config - Retourne les informations concernant la configuration du plugin
    • mysqlnd_memcache_set - Associe une connexion MySQL avec une connexion Memcache
    • mysqlnd_ms_dump_servers - Retourne une liste des serveurs actuellement configurés
    • mysqlnd_ms_fabric_select_global - Passe en serveur globale partagé pour une table donnée
    • mysqlnd_ms_fabric_select_shard - Passe en mode partagé
    • mysqlnd_ms_get_last_gtid - Retourne le dernier identifiant de transaction globale
    • mysqlnd_ms_get_last_used_connection - Retourne un tableau qui récrit la dernière connexion utilisée
    • mysqlnd_ms_get_stats - Retourne des statistiques quant à la distribution et la connexion de requêtes
    • mysqlnd_ms_match_wild - Cherche si un nom de table correspond ou non à un joker d'un masque
    • mysqlnd_ms_query_is_select - Vérifie quel serveur est sélectionné pour l'envoi de la requête
    • mysqlnd_ms_set_qos - Définit la qualité de service désirée pour le cluster
    • mysqlnd_ms_set_user_pick_server - Définit une fonction de rappel utilisateur pour la séparation lecture/écriture
    • mysqlnd_ms_xa_begin - Démarre une transaction distribuée/XA sur les serveurs MySQL particpants
    • mysqlnd_ms_xa_commit - Valide une transaction distribuée/XA sur les serveurs MySQL participants
    • mysqlnd_ms_xa_gc - Collecte les données incorrectes issues des transactions XA non terminées en raison d'erreurs sébères
    • mysqlnd_ms_xa_rollback - Annule une transaction distribuée/XA sur les serveurs MySQL
    • mysqlnd_qc_clear_cache - Force l'affichage complet du contenu du cache
    • mysqlnd_qc_get_available_handlers - Retourne la liste des gestionnaires de stockage disponibles
    • mysqlnd_qc_get_cache_info - Retourne des informations sur le gestionnaire courant
    • mysqlnd_qc_get_core_stats - Statistiques collectées par le cœur du cache des requêtes
    • mysqlnd_qc_get_normalized_query_trace_log - Retourne une trace dans les logs d'une requête normalisée pour chaque requête inspectée par le cache de requêtes
    • mysqlnd_qc_get_query_trace_log - Retourne une trace pour chaque requête inspectée par la mise en cache de requêtes
    • mysqlnd_qc_set_cache_condition - Définit les conditions pour une mise en cache automatique
    • mysqlnd_qc_set_is_select - Installe une fonction de rappel qui décide si une requête doit être mise en cache
    • mysqlnd_qc_set_storage_handler - Modifie le gestionnaire de stockage courante
    • mysqlnd_qc_set_user_handlers - Définit les fonctions de rappel pour un gestionnaire de stockage procédural défini par l'utilisateur
    • mysqlnd_uh_convert_to_mysqlnd - Convertit un gestionnaire de connexion MySQL en un gestionnaire de connexion mysqlnd
    • mysqlnd_uh_set_connection_proxy - Installe un proxy pour les connexions mysqlnd
    • mysqlnd_uh_set_statement_proxy - Installe un proxy pour les requêtes mysqlnd
    • mysql_affected_rows - Retourne le nombre de lignes affectées lors de la dernière opération MySQL
    • mysql_client_encoding - Retourne le nom du jeu de caractères utilisé par le client MySQL
    • mysql_close - Ferme la connexion MySQL
    • mysql_connect - Ouvre une connexion à un serveur MySQL
    • mysql_create_db - Crée une base de données MySQL
    • mysql_data_seek - Déplace le pointeur interne de résultat MySQL
    • mysql_db_name - Récupère le nom de base de données à l'appel de mysql_list_dbs
    • mysql_db_query - Sélectionne une base de données et y exécute une requête
    • mysql_drop_db - Efface une base de données MySQL
    • mysql_errno - Retourne le numéro d'erreur de la dernière commande MySQL
    • mysql_error - Retourne le texte associé avec l'erreur générée lors de la dernière requête
    • mysql_escape_string - Protège les caractères spéciaux SQL
    • mysql_fetch_array - Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
    • mysql_fetch_assoc - Lit une ligne de résultat MySQL dans un tableau associatif
    • mysql_fetch_field - Retourne les données enregistrées dans une colonne MySQL sous forme d'objet
    • mysql_fetch_lengths - Retourne la taille de chaque colonne d'une ligne de résultat MySQL
    • mysql_fetch_object - Retourne une ligne de résultat MySQL sous la forme d'un objet
    • mysql_fetch_row - Retourne une ligne de résultat MySQL sous la forme d'un tableau
    • mysql_field_flags - Retourne des détails sur une colonne MySQL
    • mysql_field_len - Retourne la taille d'un champ de résultat MySQL
    • mysql_field_name - Retourne le nom d'une colonne dans un résultat MySQL
    • mysql_field_seek - Déplace le pointeur de résultat vers une position donnée
    • mysql_field_table - Retourne le nom de la table MySQL où se trouve une colonne
    • mysql_field_type - Retourne le type d'une colonne MySQL spécifique
    • mysql_free_result - Libère le résultat de la mémoire
    • mysql_get_client_info - Lit les informations sur le client MySQL
    • mysql_get_host_info - Lit les informations sur l'hôte MySQL
    • mysql_get_proto_info - Lit les informations sur le protocole MySQL
    • mysql_get_server_info - Lit les informations sur le serveur MySQL
    • mysql_info - Lit des informations à propos de la dernière requête MySQL
    • mysql_insert_id - Retourne l'identifiant généré par la dernière requête
    • mysql_list_dbs - Liste les bases de données disponibles sur le serveur MySQL
    • mysql_list_fields - Liste les champs d'une table MySQL
    • mysql_list_processes - Liste les processus MySQL
    • mysql_list_tables - Liste les tables d'une base de données MySQL
    • mysql_num_fields - Retourne le nombre de champs d'un résultat MySQL
    • mysql_num_rows - Retourne le nombre de lignes d'un résultat MySQL
    • mysql_pconnect - Ouvre une connexion persistante à un serveur MySQL
    • mysql_ping - Vérifie la connexion au serveur MySQL, et s'y reconnecte au besoin
    • mysql_query - Envoie une requête à un serveur MySQL
    • mysql_real_escape_string - Protège une commande SQL de la présence de caractères spéciaux
    • mysql_result - Retourne un champ d'un résultat MySQL
    • mysql_select_db - Sélectionne une base de données MySQL
    • mysql_set_charset - Définit le jeu de caractères du client MySQL
    • mysql_stat - Retourne le statut courant du serveur MySQL
    • mysql_tablename - Lit le nom de la table qui contient un champ
    • mysql_thread_id - Retourne l'identifiant du thread MySQL courant
    • mysql_unbuffered_query - Exécute une requête SQL sans mobiliser les résultats MySQL
    • m_checkstatus - Vérifie si la transaction a été complétée
    • m_completeauthorizations - Nombre d'autorisations complètes en attente, retourne un tableau de leur identifiant
    • m_connect - Établit une connexion à MCVE
    • m_connectionerror - Obtient une représentation textuelle de la cause de l'échec de connexion
    • m_deletetrans - Supprime la transaction spécifiée de la structure MCVE_CONN
    • m_destroyconn - Détruit la connexion et la structure MCVE_CONN
    • m_destroyengine - Libère la mémoire associée avec la connectivité IP/SSL
    • m_getcell - Récupère une cellule spécifique d'une réponse délimitée par virgule avec le nom de colonne
    • m_getcellbynum - Récupère une cellule spécifique d'une réponse délimitée par virgule avec le numéro de colonne
    • m_getcommadelimited - Récupère les données brutes délimitées par virgule retournées par MCVE
    • m_getheader - Récupère le nom de la colonne dans la réponse délimitée par virgule
    • m_initconn - Crée et initialise une structure MCVE_CONN
    • m_initengine - Apprête le client pour une communication IP/SSL
    • m_iscommadelimited - Vérifie si la réponse est délimitée par virgule
    • m_maxconntimeout - Le temps maximal pendant lequel l'API tentera une connexion à MCVE
    • m_monitor - Effectue une communication avec MCVE (envoi/réception de données) en mode non-bloquant
    • m_numcolumns - Nombre de colonnes retournées dans une réponse délimitée par virgule
    • m_numrows - Nombre de lignes retournées dans une réponse délimitée par virgule
    • m_parsecommadelimited - Analyse la réponse délimitée par virgule permettant à m_getcell, etc. de fonctionner ensuite
    • m_responsekeys - Retourne un tableau de chaînes de caractères qui représentent les clés pouvant être utilisées en tant que paramètres de réponse pour cette transaction
    • m_responseparam - Récupère un paramètre spécial de réponse
    • m_returnstatus - Vérifie si la transaction fut complétée correctement
    • m_setblocking - Spécifie le mode bloquant/non-bloquant pour une connexion
    • m_setdropfile - Spécifie la méthode de connexion à Drop-File
    • m_setip - Spécifie la méthode de connexion à IP
    • m_setssl - Spécifie la méthode de connexion à SSL
    • m_setssl_cafile - Spécifie le fichier SSL CA (Certificate Authority) pour vérification du certificat du serveur
    • m_setssl_files - Spécifie les fichiers de clé de certificat et certifie si le serveur requiert la vérification du client par certificat
    • m_settimeout - Spécifie le temps maximal d'une transaction (par transaction)
    • m_sslcert_gen_hash - Génère une clé de hachage pour les vérifications de certificat de client SSL
    • m_transactionssent - Vérifie si le tampon de sortie est vide
    • m_transinqueue - Nombre de transactions dans la file de client
    • m_transkeyval - Ajoute une paire clé/valeur à une transaction. Remplace transparam() obsolète
    • m_transnew - Démarre une nouvelle transaction
    • m_transsend - Finalise et envoie la transaction
    • m_uwait - Attend x micro secondes
    • m_validateidentifier - Valide ou non l'identifiant passé pour n'importe quelle transaction à laquelle il est fourni
    • m_verifyconnection - Effectue un ping ou non lors de la connexion pour la vérifier
    • m_verifysslcert - Active ou non la vérification du certificat SSL du serveur
  • n
    • natcasesort - Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse
    • natsort - Trie un tableau avec l'algorithme à "ordre naturel"
    • ncurses_addch - Ajoute un caractère à la position courante et avance le curseur
    • ncurses_addchnstr - Ajoute une chaîne de taille donnée à la position courante
    • ncurses_addchstr - Ajoute une chaîne à la position courante
    • ncurses_addnstr - Ajoute une chaîne à la position courante
    • ncurses_addstr - Affiche du texte à la position courante
    • ncurses_assume_default_colors - Définit la couleur 0
    • ncurses_attroff - Désactive les attributs donnés
    • ncurses_attron - Active les attributs fournis
    • ncurses_attrset - Modifie les attributs donnés
    • ncurses_baudrate - Retourne le baudrate du terminal
    • ncurses_beep - Fait beeper le terminal
    • ncurses_bkgd - Définit les propriétés de fond d'écran pour le terminal
    • ncurses_bkgdset - Définit le fond d'écran
    • ncurses_border - Dessine un bord autour de l'écran avec les caractères données
    • ncurses_bottom_panel - Place un conteneur visible en bas de la pile
    • ncurses_can_change_color - Vérifie si le terminal peut changer de couleur
    • ncurses_cbreak - Désactive la bufferisation d'entrée
    • ncurses_clear - Efface l'écran
    • ncurses_clrtobot - Efface l'écran depuis la position courante jusqu'au bas de l'écran
    • ncurses_clrtoeol - Efface l'écran depuis la position courante jusqu'à la fin de la ligne
    • ncurses_color_content - Lit la valeur RGB d'une couleur
    • ncurses_color_set - Modifie la couleur de fond et de devant
    • ncurses_curs_set - Modifie l'état du curseur
    • ncurses_define_key - Définit un code de clé (keycode)
    • ncurses_def_prog_mode - Sauve le mode du terminal
    • ncurses_def_shell_mode - Sauve le mode de terminal (shell)
    • ncurses_delay_output - Retarde l'affichage sur les terminaux utilisant des caractères de remplissage
    • ncurses_delch - Efface le caractère courant et décale le reste de la ligne vers la gauche
    • ncurses_deleteln - Efface la ligne courante, et monte l'écran d'une ligne
    • ncurses_delwin - Efface une fenêtre ncurses
    • ncurses_del_panel - Retire un conteneur de la pile et l'efface (mais pas la fenêtre associée)
    • ncurses_doupdate - Affiche tout ce qui est prêt, et rafraîchit l'écran
    • ncurses_echo - Active l'écho d'entrée clavier
    • ncurses_echochar - Affiche un caractère et rafraîchit l'écran
    • ncurses_end - Cesse l'utilisation de ncurses et efface l'écran
    • ncurses_erase - Efface l'écran du terminal
    • ncurses_erasechar - Lit le caractère qui se fait effacer
    • ncurses_filter - Définit LINES pour iniscr() et newterm() à 1
    • ncurses_flash - Fait flasher le terminal (visual bell)
    • ncurses_flushinp - Vide le buffer d'entrée du clavier
    • ncurses_getch - Lit un caractère sur le clavier
    • ncurses_getmaxyx - Retourne la taille d'une fenêtre
    • ncurses_getmouse - Lit les événements souris
    • ncurses_getyx - Retourne la position courante du curseur pour une fenêtre
    • ncurses_halfdelay - Met le terminal en mode semi-retardé
    • ncurses_has_colors - Vérifie que le terminal supporte les couleurs
    • ncurses_has_ic - Vérifie les capacités d'insertion et d'effacement
    • ncurses_has_il - Vérifie les capacités d'insertion et d'effacement
    • ncurses_has_key - Vérifie la présence des touches de fonctions sur le clavier
    • ncurses_hide_panel - Retire un conteneur de la pile, pour le rendre invisible
    • ncurses_hline - Dessine une ligne horizontale à la position courante, en utilisant un caractère et une taille maximale
    • ncurses_inch - Lit le caractère et ses attributs à la position courante
    • ncurses_init - Initialise ncurses
    • ncurses_init_color - Configure une nouvelle valeur RGB pour une couleur
    • ncurses_init_pair - Alloue une paire de couleur
    • ncurses_insch - Insère un caractère et décale le reste de la ligne vers la droite, y compris le caractère courant
    • ncurses_insdelln - Insère des lignes devant la ligne courante en scrollant vers le bas (des nombres négatifs donneront un scroll vers le haut)
    • ncurses_insertln - Insère une ligne et décale le reste de l'écran vers le bas
    • ncurses_insstr - Insère une chaîne à la position courante, et décale le reste de la chaîne à droite
    • ncurses_instr - Lit une chaîne depuis le terminal
    • ncurses_isendwin - Vérifie si ncurses est en mode endwin
    • ncurses_keyok - Active ou désactive un code de clé (keycode)
    • ncurses_keypad - Active ou désactive le keypad
    • ncurses_killchar - Retourne la ligne du caractère actuellement supprimé
    • ncurses_longname - Retourne la description du terminal
    • ncurses_meta - Active/désactive les informations de méta clé 8-bits
    • ncurses_mouseinterval - Configure les délais entre les clics de souris
    • ncurses_mousemask - Configure les événements de souris à surveiller
    • ncurses_mouse_trafo - Transforme les coordonnées
    • ncurses_move - Déplace la position d'affichage
    • ncurses_move_panel - Déplace un conteneur pour que son coin supérieur gauche soit aux coordonnées [startx, starty]
    • ncurses_mvaddch - Déplace la position courante et ajoute un caractère
    • ncurses_mvaddchnstr - Déplace la position et ajoute la chaîne attribuée avec la taille donnée
    • ncurses_mvaddchstr - Déplace la position et ajoute une chaîne attribuée
    • ncurses_mvaddnstr - Déplace la position et ajoute une chaîne de taille donnée
    • ncurses_mvaddstr - Déplace la position et ajoute une chaîne
    • ncurses_mvcur - Déplace immédiatement le curseur
    • ncurses_mvdelch - Déplace la position et efface le caractère, puis décale le reste de la ligne à gauche
    • ncurses_mvgetch - Déplace la position et lit le caractère à la nouvelle position
    • ncurses_mvhline - Choisi une nouvelle position et dessine une ligne horizontale avec le caractère donné, et de taille maximale donnée
    • ncurses_mvinch - Déplace la position et lit le caractère à la nouvelle position
    • ncurses_mvvline - Modifie la position et dessine une ligne verticale avec le caractère donné, de taille maximale donnée
    • ncurses_mvwaddstr - Ajoute une chaîne à une nouvelle position dans la fenêtre
    • ncurses_napms - Fait une pause
    • ncurses_newpad - Crée un nouveau pad (fenêtre)
    • ncurses_newwin - Crée une nouvelle fenêtre
    • ncurses_new_panel - Crée un nouveau conteneur et l'associe à une fenêtre
    • ncurses_nl - Convertit les nouvelles lignes et retours chariot en sauts de ligne
    • ncurses_nocbreak - Passe le terminal en mode cooked
    • ncurses_noecho - Désactive l'écho clavier
    • ncurses_nonl - Ne convertit par les nouvelles lignes et retours chariot en sauts de ligne
    • ncurses_noqiflush - Ne vide pas les buffers sur réception des caractères de signaux
    • ncurses_noraw - Déconfigure le mode brut du terminal
    • ncurses_pair_content - Retourne les couleurs de fond et d'affichage d'une paire
    • ncurses_panel_above - Retourne le conteneur au-dessus du conteneur
    • ncurses_panel_below - Retourne le conteneur sous le conteneur
    • ncurses_panel_window - Retourne la fenêtre associée avec un conteneur
    • ncurses_pnoutrefresh - Copie une région depuis un pad dans un écran virtuel
    • ncurses_prefresh - Copie une région depuis un pad dans l'écran virtuel
    • ncurses_putp - Applique l'information d'espacement à la chaîne et l'affiche
    • ncurses_qiflush - Vide les buffers après détection d'un caractère de signal
    • ncurses_raw - Passe le terminal en mode brut (raw)
    • ncurses_refresh - Rafraîchit l'écran
    • ncurses_replace_panel - Remplace la fenêtre associée à un conteneur
    • ncurses_resetty - Rétablit le terminal sauvé
    • ncurses_reset_prog_mode - Restaure le mode prog sauvé par def_prog_mode
    • ncurses_reset_shell_mode - Restaure le mode shell, mode sauvé par def_shell_mode
    • ncurses_savetty - Sauve l'état du terminal
    • ncurses_scrl - Scrolle le contenu de la fenêtre vers le haut ou le bas, sans changer la position courante
    • ncurses_scr_dump - Sauve un écran dans un fichier
    • ncurses_scr_init - Initialise un écran depuis un fichier de sauvegarde
    • ncurses_scr_restore - Rétablit un écran depuis un fichier de sauvegarde
    • ncurses_scr_set - Configure un écran depuis un fichier de sauvegarde
    • ncurses_show_panel - Place un conteneur invisible en haut de la pile, pour le rendre visible
    • ncurses_slk_attr - Retourne l'attribut de la clé soft label courante
    • ncurses_slk_attroff - Désactive l'attribut donné pour les étiquettes des function-key (fonctions clés)
    • ncurses_slk_attron - Active l'attribut donné pour les étiquettes des function-key (fonctions clés)
    • ncurses_slk_attrset - Définit les attributs donnés à une étiquette function-key
    • ncurses_slk_clear - Efface les soft labels de l'écran
    • ncurses_slk_color - Configure la couleur des clés soft label
    • ncurses_slk_init - Initialise les fonctions de clés soft label
    • ncurses_slk_noutrefresh - Copie toutes les clés soft label à l'écran virtuel
    • ncurses_slk_refresh - Copie les clés soft label à l'écran
    • ncurses_slk_restore - Rétablit les clés soft label
    • ncurses_slk_set - Modifie les étiquettes de clé de fonction (function key labels)
    • ncurses_slk_touch - Force l'affichage lorsque ncurses_slk_noutrefresh est utilisé
    • ncurses_standend - Cesse l'utilisation de l'attribut 'standout'
    • ncurses_standout - Commence l'utilisation de l'attribut 'standout'
    • ncurses_start_color - Active les couleurs
    • ncurses_termattrs - Retourne toutes les options supportées par le terminal, combinées ensemble par l'opérateur OR
    • ncurses_termname - Retourne le nom court du terminal
    • ncurses_timeout - Configure le temps d'expiration des séquences clavier spéciales
    • ncurses_top_panel - Place un conteneur visible sur le haut de la pile
    • ncurses_typeahead - Spécifie un autre descripteur de fichier pour la vérification à la volée des données saisies
    • ncurses_ungetch - Replace un caractère dans la queue d'entrée
    • ncurses_ungetmouse - Ajoute un événement souris dans la queue
    • ncurses_update_panels - Rafraîchit l'écran virtuel pour prendre en compte les relations entre les conteneurs de la pile
    • ncurses_use_default_colors - Assigne la couleur de terminal pour l'index -1
    • ncurses_use_env - Contrôle l'utilisation des informations d'environnement concernant la taille du terminal
    • ncurses_use_extended_names - Contrôle l'utilisation des noms étendus dans les descriptions terminfo
    • ncurses_vidattr - Affiche la chaîne sur un terminal dans le mode d'attribut vidéo
    • ncurses_vline - Dessine une ligne verticale à la position courante en utilisant un caractère donné, pour une taille donnée
    • ncurses_waddch - Ajoute un caractère à la position courante, dans une fenêtre, et avance le curseur
    • ncurses_waddstr - Affiche le texte à la position courante dans la fenêtre
    • ncurses_wattroff - Désactive les attributs d'une fenêtre
    • ncurses_wattron - Efface les attributs de la fenêtre
    • ncurses_wattrset - Modifie les attributs d'une fenêtre
    • ncurses_wborder - Dessine le bord d'une fenêtre avec un caractère qualifié
    • ncurses_wclear - Efface la fenêtre
    • ncurses_wcolor_set - Modifie les paires de couleurs de la fenêtre
    • ncurses_werase - Efface le contenu de la fenêtre
    • ncurses_wgetch - Lit un caractère depuis le clavier (fenêtre)
    • ncurses_whline - Dessine une ligne horizontale à partir de la position courante, avec un caractère qualifié, et d'une taille maximale
    • ncurses_wmouse_trafo - Transforme les coordonnées d'une fenêtre
    • ncurses_wmove - Déplace la position d'affichage de la fenêtre
    • ncurses_wnoutrefresh - Copie la fenêtre dans l'écran virtuel
    • ncurses_wrefresh - Rafraîchit la fenêtre sur l'écran du terminal
    • ncurses_wstandend - Termine le mode standout de la fenêtre
    • ncurses_wstandout - Passe une fenêtre en mode standout
    • ncurses_wvline - Dessine une ligne verticale dans une fenêtre, à la position courante, en utilisant un caractère qualifié, avec une taille maximale
    • newt_bell - Envoie un beep au terminal
    • newt_button - Crée un nouveau bouton
    • newt_button_bar - Retourne une grille contenant les boutons créés
    • newt_centered_window - Ouvre une fenêtre centrée de la taille spécifiée
    • newt_checkbox - Description
    • newt_checkbox_get_value - Récupère la valeur de la ressource de boîte à cocher
    • newt_checkbox_set_flags - Configure une ressource de boîte à cocher
    • newt_checkbox_set_value - Définit la valeur de la boîte à cocher
    • newt_checkbox_tree - Description
    • newt_checkbox_tree_add_item - Ajout un nouvel élément à l'arbre des boîtes à cocher
    • newt_checkbox_tree_find_item - Cherche un élément dans l'arbre des boîtes à cocher
    • newt_checkbox_tree_get_current - Retourne l'élément sélectionné de l'arbre des boîtes à cocher
    • newt_checkbox_tree_get_entry_value - Description
    • newt_checkbox_tree_get_multi_selection - Description
    • newt_checkbox_tree_get_selection - Description
    • newt_checkbox_tree_multi - Description
    • newt_checkbox_tree_set_current - Description
    • newt_checkbox_tree_set_entry - Description
    • newt_checkbox_tree_set_entry_value - Description
    • newt_checkbox_tree_set_width - Description
    • newt_clear_key_buffer - Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle
    • newt_cls - Description
    • newt_compact_button - Description
    • newt_component_add_callback - Description
    • newt_component_takes_focus - Description
    • newt_create_grid - Description
    • newt_cursor_off - Description
    • newt_cursor_on - Description
    • newt_delay - Description
    • newt_draw_form - Description
    • newt_draw_root_text - Affiche la chaîne de caractères à la position indiquée
    • newt_entry - Description
    • newt_entry_get_value - Description
    • newt_entry_set - Description
    • newt_entry_set_filter - Description
    • newt_entry_set_flags - Description
    • newt_finished - Arrête l'interface newt
    • newt_form - Crée une forme
    • newt_form_add_component - Ajoute un seul composant à la forme
    • newt_form_add_components - Ajoute plusieurs composants à la forme
    • newt_form_add_hot_key - Description
    • newt_form_destroy - Détruit une forme
    • newt_form_get_current - Description
    • newt_form_run - Exécute une forme
    • newt_form_set_background - Description
    • newt_form_set_height - Description
    • newt_form_set_size - Description
    • newt_form_set_timer - Description
    • newt_form_set_width - Description
    • newt_form_watch_fd - Description
    • newt_get_screen_size - Remplit les références passées avec la taille courante du terminal
    • newt_grid_add_components_to_form - Description
    • newt_grid_basic_window - Description
    • newt_grid_free - Description
    • newt_grid_get_size - Description
    • newt_grid_h_close_stacked - Description
    • newt_grid_h_stacked - Description
    • newt_grid_place - Description
    • newt_grid_set_field - Description
    • newt_grid_simple_window - Description
    • newt_grid_v_close_stacked - Description
    • newt_grid_v_stacked - Description
    • newt_grid_wrapped_window - Description
    • newt_grid_wrapped_window_at - Description
    • newt_init - Initialise newt
    • newt_label - Description
    • newt_label_set_text - Description
    • newt_listbox - Description
    • newt_listbox_append_entry - Description
    • newt_listbox_clear - Description
    • newt_listbox_clear_selection - Description
    • newt_listbox_delete_entry - Description
    • newt_listbox_get_current - Description
    • newt_listbox_get_selection - Description
    • newt_listbox_insert_entry - Description
    • newt_listbox_item_count - Description
    • newt_listbox_select_item - Description
    • newt_listbox_set_current - Description
    • newt_listbox_set_current_by_key - Description
    • newt_listbox_set_data - Description
    • newt_listbox_set_entry - Description
    • newt_listbox_set_width - Description
    • newt_listitem - Description
    • newt_listitem_get_data - Description
    • newt_listitem_set - Description
    • newt_open_window - Ouvre une fenêtre de la taille et la position spécifiée
    • newt_pop_help_line - Replace la ligne d'aide courante avec une provenant de la pile
    • newt_pop_window - Supprime la fenêtre de premier plan de l'affichage
    • newt_push_help_line - Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne
    • newt_radiobutton - Description
    • newt_radio_get_current - Description
    • newt_redraw_help_line - Description
    • newt_reflow_text - Description
    • newt_refresh - Met à jour les portions modifiées de l'écran
    • newt_resize_screen - Description
    • newt_resume - Récupère l'interface de newt après l'appel de newt_suspend
    • newt_run_form - Exécute une forme
    • newt_scale - Description
    • newt_scale_set - Description
    • newt_scrollbar_set - Description
    • newt_set_help_callback - Description
    • newt_set_suspend_callback - Assigne la fonction de rappel appelée sur suspension
    • newt_suspend - Indique à newt de retourner à l'état initial du terminal
    • newt_textbox - Description
    • newt_textbox_get_num_lines - Description
    • newt_textbox_reflowed - Description
    • newt_textbox_set_height - Description
    • newt_textbox_set_text - Description
    • newt_vertical_scrollbar - Description
    • newt_wait_for_key - Ne continue pas tant qu'une touche n'est pas appuyée
    • newt_win_choice - Description
    • newt_win_entries - Description
    • newt_win_menu - Description
    • newt_win_message - Description
    • newt_win_messagev - Description
    • newt_win_ternary - Description
    • next - Avance le pointeur interne d'un tableau
    • ngettext - Version plurielle de gettext
    • nl2br - Insère un retour à la ligne HTML à chaque nouvelle ligne
    • nl_langinfo - Rassemble des informations sur la langue et la configuration locale
    • NoRewindIterator::current - Récupère la valeur courante
    • NoRewindIterator::getInnerIterator - Récupère l'itérateur interne
    • NoRewindIterator::key - Récupère la clé courante
    • NoRewindIterator::next - Se déplace vers le prochain élément
    • NoRewindIterator::rewind - Réinitialise l'itérateur interne
    • NoRewindIterator::valid - Valide un itérateur
    • NoRewindIterator::__construct - Construit un nouvel objet NoRewindIterator
    • Normalizer::isNormalized - Vérifie si une chaîne est normalisée
    • Normalizer::normalize - Normalise une chaîne en entrée
    • nsapi_request_headers - Lit tous les en-têtes de requête HTTP sur un serveur Netscape
    • nsapi_response_headers - Lit tous les en-têtes de réponse HTTP sur Netscape serveur
    • nsapi_virtual - Effectue une sous-requête NSAPI
    • NumberFormatter::create - Crée un formateur de nombre
    • NumberFormatter::format - Formate un nombre
    • NumberFormatter::formatCurrency - Formate une valeur monétaire
    • NumberFormatter::getAttribute - Lit un attribut
    • NumberFormatter::getErrorCode - Lit le dernier code d'erreur du formateur
    • NumberFormatter::getErrorMessage - Lit le dernier message d'erreur du formateur
    • NumberFormatter::getLocale - Lit la locale du formateur
    • NumberFormatter::getPattern - Lit le modèle du formateur
    • NumberFormatter::getSymbol - Lit la valeur du symbole
    • NumberFormatter::getTextAttribute - Lit un attribut textuel
    • NumberFormatter::parse - Analyse un nombre
    • NumberFormatter::parseCurrency - Analyse un nombre monétaire
    • NumberFormatter::setAttribute - Affecte un attribut du formateur
    • NumberFormatter::setPattern - Configure le modèle du formateur
    • NumberFormatter::setSymbol - Configure le symbole du formateur
    • NumberFormatter::setTextAttribute - Modifie un attribut texte
    • number_format - Formate un nombre pour l'affichage
  • o
    • OAuth::disableDebug - Désactive les messages de déboguage
    • OAuth::disableRedirects - Désactive les redirections
    • OAuth::disableSSLChecks - Désactive la vérification SSL
    • OAuth::enableDebug - Active les messages de débogage
    • OAuth::enableRedirects - Active les redirections
    • OAuth::enableSSLChecks - Active la vérification SSL
    • OAuth::fetch - Lit une ressource protégée par OAuth
    • OAuth::generateSignature - Génère une signature
    • OAuth::getAccessToken - Récupère un token d'accès
    • OAuth::getCAPath - Récupère l'information CA
    • OAuth::getLastResponse - Lit la dernière réponse
    • OAuth::getLastResponseHeaders - Récupère les en-têtes de la dernière réponse
    • OAuth::getLastResponseInfo - Lit les informations HTTP de la dernière réponse
    • OAuth::getRequestHeader - Génère une signature d'en-tête OAuth
    • OAuth::getRequestToken - Lit le token de requête
    • OAuth::setAuthType - Définit le type d'autorisation
    • OAuth::setCAPath - Définit le chemin et les informations du CA
    • OAuth::setNonce - Configure le nonce OAuth
    • OAuth::setRequestEngine - Le but de setRequestEngine
    • OAuth::setRSACertificate - Définit le certificat RSA
    • OAuth::setSSLChecks - Définit des vérifications spécifiques à SSL pour les requêtes
    • OAuth::setTimestamp - Définit le timestamp
    • OAuth::setToken - Configure le token et le secret
    • OAuth::setVersion - Configure la version OAuth
    • OAuth::__construct - Crée un nouvel objet OAuth
    • OAuth::__destruct - Le destructeur
    • OAuthProvider::addRequiredParameter - Ajoute des paramètres requis
    • OAuthProvider::callconsumerHandler - Appelle la fonction de rappel consumerNonceHandler
    • OAuthProvider::callTimestampNonceHandler - Appelle la fonction de rappel timestampNonceHandler
    • OAuthProvider::calltokenHandler - Appelle la fonction de rappel tokenNonceHandler
    • OAuthProvider::checkOAuthRequest - Vérifie une requête OAuth
    • OAuthProvider::consumerHandler - Définit la fonction de rappel consumerHandler
    • OAuthProvider::generateToken - Génère un jeton aléatoire
    • OAuthProvider::is2LeggedEndpoint - is2LeggedEndpoint
    • OAuthProvider::isRequestTokenEndpoint - Définit isRequestTokenEndpoint
    • OAuthProvider::removeRequiredParameter - Supprime un paramètre
    • OAuthProvider::reportProblem - Rapporte un problème
    • OAuthProvider::setParam - Définit un paramètre
    • OAuthProvider::setRequestTokenPath - Définit le chemin du jeton demandé
    • OAuthProvider::timestampNonceHandler - Définit le gestionnaire de rappel timestampNonceHandler
    • OAuthProvider::tokenHandler - Définit le gestionnaire de rappel tokenHandler
    • OAuthProvider::__construct - Construit un nouvel objet OAuthProvider
    • oauth_get_sbs - Génère une chaîne de base de signature
    • oauth_urlencode - Encode une URI conformément à RFC 3986
    • ob_clean - Efface le tampon de sortie
    • ob_end_clean - Détruit les données du tampon de sortie et éteint la temporisation de sortie
    • ob_end_flush - Envoie les données du tampon de sortie et éteint la temporisation de sortie
    • ob_flush - Envoie le tampon de sortie
    • ob_get_clean - Lit le contenu courant du tampon de sortie puis l'efface
    • ob_get_contents - Retourne le contenu du tampon de sortie
    • ob_get_flush - Vide le tampon, le retourne en tant que chaîne et stoppe la temporisation
    • ob_get_length - Retourne la longueur du contenu du tampon de sortie
    • ob_get_level - Retourne le nombre de niveaux d'imbrications du système de temporisation de sortie
    • ob_get_status - Lit le statut du tampon de sortie
    • ob_gzhandler - Fonction de rappel pour la compression automatique des tampons
    • ob_iconv_handler - Gestionnaire de sortie pour maîtriser le jeu de caractères de sortie
    • ob_implicit_flush - Active/désactive l'envoi implicite
    • ob_list_handlers - Liste les gestionnaires d'affichage utilisés
    • ob_start - Enclenche la temporisation de sortie
    • ob_tidyhandler - Fonction de rappel ob_start pour réparer le buffer
    • OCI-Collection::append - Ajoute un élément à une collection Oracle
    • OCI-Collection::assign - Assigne une valeur à une collection depuis une autre collection Oracle
    • OCI-Collection::assignElem - Assigne une valeur à un élément d'une collection Oracle
    • OCI-Collection::free - Libère les ressources associées avec un objet de collection
    • OCI-Collection::getElem - Retourne la valeur d'un élément d'une collection Oracle
    • OCI-Collection::max - Retourne le nombre maximal de valeurs d'une collection Oracle
    • OCI-Collection::size - Retourne la taille d'une collection Oracle
    • OCI-Collection::trim - Supprime les derniers éléments d'une collection Oracle
    • OCI-Lob::append - Ajoute des données à un LOB Oracle
    • OCI-Lob::close - Ferme un LOB Oracle
    • OCI-Lob::eof - Test la fin du LOB Oracle
    • OCI-Lob::erase - Écrase une partie d'un LOB Oracle
    • OCI-Lob::export - Exporte un LOB Oracle dans un fichier
    • OCI-Lob::flush - Écrit les LOB Oracle sur le disque
    • OCI-Lob::free - Détruit un pointeur de LOB Oracle
    • OCI-Lob::getBuffering - Retourne l'état de bufferisation LOB d'Oracle
    • OCI-Lob::import - Importe un fichier dans LOB Oracle
    • OCI-Lob::load - Retourne le contenu d'un LOB
    • OCI-Lob::read - Lit une partie d'un LOB Oracle
    • OCI-Lob::rewind - Ramène le pointeur interne d'un LOB Oracle au début
    • OCI-Lob::save - Sauvegarde des données dans un LOB Oracle
    • OCI-Lob::saveFile - Alias de OCI-Lob::import
    • OCI-Lob::seek - Déplace le pointeur interne d'un LOB Oracle
    • OCI-Lob::setBuffering - Active/désactive la bufferisation des LOB Oracle
    • OCI-Lob::size - Retourne la taille d'un LOB Oracle
    • OCI-Lob::tell - Retourne la position courante du pointeur de LOB
    • OCI-Lob::truncate - Tronque un LOB Oracle
    • OCI-Lob::write - Écrit des données dans un LOB Oracle
    • OCI-Lob::writeTemporary - Écrit un LOB Oracle temporaire
    • OCI-Lob::writeToFile - Alias de OCI-Lob::export
    • ocibindbyname - Alias de oci_bind_by_name
    • ocicancel - Alias de oci_cancel
    • ocicloselob - Alias de OCI-Lob::close
    • ocicollappend - Alias de OCI-Collection::append
    • ocicollassign - Alias de OCI-Collection::assign
    • ocicollassignelem - Alias de OCI-Collection::assignElem
    • ocicollgetelem - Alias de OCI-Collection::getElem
    • ocicollmax - Alias de OCI-Collection::max
    • ocicollsize - Alias de OCI-Collection::size
    • ocicolltrim - Alias de OCI-Collection::trim
    • ocicolumnisnull - Alias de oci_field_is_null
    • ocicolumnname - Alias de oci_field_name
    • ocicolumnprecision - Alias de oci_field_precision
    • ocicolumnscale - Alias de oci_field_scale
    • ocicolumnsize - Alias de oci_field_size
    • ocicolumntype - Alias de oci_field_type
    • ocicolumntyperaw - Alias de oci_field_type_raw
    • ocicommit - Alias de oci_commit
    • ocidefinebyname - Alias de oci_define_by_name
    • ocierror - Alias de oci_error
    • ociexecute - Alias de oci_execute
    • ocifetch - Alias de oci_fetch
    • ocifetchinto - Variante obsolète de la fonction oci_fetch_array, oci_fetch_object, oci_fetch_assoc and oci_fetch_row
    • ocifetchstatement - Alias de oci_fetch_all
    • ocifreecollection - Alias de OCI-Collection::free
    • ocifreecursor - Alias de oci_free_statement
    • ocifreedesc - Alias de OCI-Lob::free
    • ocifreestatement - Alias de oci_free_statement
    • ociinternaldebug - Alias de oci_internal_debug
    • ociloadlob - Alias de OCI-Lob::load
    • ocilogoff - Alias de oci_close
    • ocilogon - Alias de oci_connect
    • ocinewcollection - Alias de oci_new_collection
    • ocinewcursor - Alias de oci_new_cursor
    • ocinewdescriptor - Alias de oci_new_descriptor
    • ocinlogon - Alias de oci_new_connect
    • ocinumcols - Alias de oci_num_fields
    • ociparse - Alias de oci_parse
    • ociplogon - Alias de oci_pconnect
    • ociresult - Alias de oci_result
    • ocirollback - Alias de oci_rollback
    • ocirowcount - Alias de oci_num_rows
    • ocisavelob - Alias de OCI-Lob::save
    • ocisavelobfile - Alias de OCI-Lob::import
    • ociserverversion - Alias de oci_server_version
    • ocisetprefetch - Alias de oci_set_prefetch
    • ocistatementtype - Alias de oci_statement_type
    • ociwritelobtofile - Alias de OCI-Lob::export
    • ociwritetemporarylob - Alias de OCI-Lob::writeTemporary
    • oci_bind_array_by_name - Lie un tableau PHP à un paramètre de tableau Oracle PL/SQL
    • oci_bind_by_name - Associe une variable PHP à un marqueur Oracle
    • oci_cancel - Termine la lecture de curseurs Oracle
    • oci_client_version - Retourne la version de la bibliothèque cliente Oracle
    • oci_close - Ferme une connexion Oracle
    • oci_commit - Valide les transactions Oracle en cours
    • oci_connect - Établit une connexion avec un serveur Oracle
    • oci_define_by_name - Associe une variable PHP avec une colonne pour une requête de récupération de données
    • oci_error - Retourne la dernière erreur Oracle
    • oci_execute - Exécute une commande SQL Oracle
    • oci_fetch - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
    • oci_fetch_all - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
    • oci_fetch_array - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
    • oci_fetch_assoc - Lit une ligne d'un résultat sous forme de tableau associatif
    • oci_fetch_object - Lit une ligne d'un résultat sous forme d'objet
    • oci_fetch_row - Lit la prochaine ligne d'une requête sous forme de tableau numérique
    • oci_field_is_null - Test si un champ de la ligne récupérée vaut NULL
    • oci_field_name - Retourne le nom d'un champ Oracle
    • oci_field_precision - Lit la précision d'un champ Oracle
    • oci_field_scale - Lit l'échelle d'une colonne Oracle
    • oci_field_size - Retourne la taille d'un champ Oracle
    • oci_field_type - Retourne le type de données d'un champ Oracle
    • oci_field_type_raw - Lit les données brutes du type d'un champ
    • oci_free_descriptor - Libère un descripteur
    • oci_free_statement - Libère toutes les ressources réservées par un résultat Oracle
    • oci_get_implicit_resultset - Retourne le fils suivant d'une ressource de requête depuis une ressource de requête parent qui a un jeu de résultat implicite Oracle Database 12c
    • oci_internal_debug - Active ou désactive l'affichage des données de déboguage Oracle
    • oci_lob_copy - Copie un LOB Oracle
    • oci_lob_is_equal - Compare deux LOB/FILE Oracle
    • oci_new_collection - Initialise une nouvelle collection Oracle
    • oci_new_connect - Connexion au serveur Oracle en utilisant une seule connexion
    • oci_new_cursor - Alloue et retourne un nouveau curseur Oracle
    • oci_new_descriptor - Initialise un nouveau pointeur vide de LOB/FILE Oracle
    • oci_num_fields - Retourne le nombre de colonnes dans un résultat Oracle
    • oci_num_rows - Retourne le nombre de lignes affectées durant la dernière commande Oracle
    • oci_parse - Prépare une requête SQL avec Oracle
    • oci_password_change - Modifie le mot de passe d'un utilisateur Oracle
    • oci_pconnect - Ouvre une connexion persistante à un serveur Oracle
    • oci_result - Retourne la valeur d'une colonne dans un résultat Oracle
    • oci_rollback - Annule les transactions Oracle en cours
    • oci_server_version - Retourne la version du serveur Oracle
    • oci_set_action - Définit le nom de l'action
    • oci_set_client_identifier - Définit l'identifiant du client
    • oci_set_client_info - Définit l'information concernant le client
    • oci_set_edition - Définit l'édition de la base de données
    • oci_set_module_name - Définit le nom du module
    • oci_set_prefetch - Indique le nombre de lignes qui doivent être lues à l'avance par Oracle
    • oci_statement_type - Retourne le type de la requête Oracle
    • octdec - Conversion d'octal en décimal
    • odbc_autocommit - Active le mode d'autovalidation
    • odbc_binmode - Modifie la gestion des colonnes de données binaires
    • odbc_close - Ferme une connexion ODBC
    • odbc_close_all - Ferme toutes les connexions ODBC
    • odbc_columnprivileges - Liste les colonnes et leurs droits associés
    • odbc_columns - Liste les colonnes d'une table
    • odbc_commit - Valide une transaction ODBC
    • odbc_connect - Connexion à une source
    • odbc_cursor - Lit le nom du pointeur de résultat courant
    • odbc_data_source - Retourne des informations sur la connexion courante
    • odbc_do - Alias de odbc_exec
    • odbc_error - Lit le dernier code d'erreur
    • odbc_errormsg - Lit le dernier message d'erreur
    • odbc_exec - Prépare et exécute une requête SQL
    • odbc_execute - Exécute une requête SQL préparée
    • odbc_fetch_array - Lit une ligne de résultat dans un tableau associatif
    • odbc_fetch_into - Lit une ligne de résultat, et la place dans un tableau
    • odbc_fetch_object - Lit une ligne de résultat dans un objet
    • odbc_fetch_row - Lit une ligne de résultat
    • odbc_field_len - Lit la longueur d'un champ
    • odbc_field_name - Lit le nom de la colonne
    • odbc_field_num - Numéro de colonne
    • odbc_field_precision - Alias de odbc_field_len
    • odbc_field_scale - Lit l'échelle d'un champ
    • odbc_field_type - Type de données d'un champ
    • odbc_foreignkeys - Liste les clés étrangères
    • odbc_free_result - Libère les ressources associées à un résultat
    • odbc_gettypeinfo - Liste les types de données supportés par une source
    • odbc_longreadlen - Gestion des colonnes de type LONG
    • odbc_next_result - Vérifie si plusieurs résultats sont disponibles
    • odbc_num_fields - Nombre de colonnes dans un résultat
    • odbc_num_rows - Nombre de lignes dans un résultat
    • odbc_pconnect - Ouvre une connexion persistante à une source de données
    • odbc_prepare - Prépare une commande pour l'exécution
    • odbc_primarykeys - Liste les colonnes utilisées dans une clé primaire
    • odbc_procedurecolumns - Liste les paramètres des procédures
    • odbc_procedures - Liste les procédures stockées
    • odbc_result - Lit un champ de résultat UODBC
    • odbc_result_all - Affiche le résultat sous la forme d'une table HTML
    • odbc_rollback - Annule une transaction
    • odbc_setoption - Modifie les paramètres ODBC
    • odbc_specialcolumns - Retourne l'ensemble optimal de colonnes
    • odbc_statistics - Calcul des statistiques sur une table
    • odbc_tableprivileges - Liste les tables et leurs privilèges
    • odbc_tables - Liste les tables d'une source
    • ogg:// - Flux Audio
    • opcache_compile_file - Compiles et met en cache un script PHP sans l'exécuter
    • opcache_get_configuration - Récupère les informations de configuration du cache
    • opcache_get_status - Récupère les informations de statut du cache
    • opcache_invalidate - Invalide un script mis en cache
    • opcache_is_script_cached - Indique si un script est dans le cache d'OPCache
    • opcache_reset - Ré-initialise le contenu du cache opcode
    • openal_buffer_create - Génère un buffer OpenAL
    • openal_buffer_data - Charge un buffer avec des données
    • openal_buffer_destroy - Détruit un buffer OpenAL
    • openal_buffer_get - Récupère les propriétés du buffer OpenAL
    • openal_buffer_loadwav - Charge un fichier .wav dans le buffer
    • openal_context_create - Crée un contexte de traitement audio
    • openal_context_current - Rend courant le contexte spécifié
    • openal_context_destroy - Détruit un contexte
    • openal_context_process - Traite le contexte spécifié
    • openal_context_suspend - Suspend le contexte spécifié
    • openal_device_close - Ferme un périphérique OpenAL
    • openal_device_open - Initialise une interface audio OpenAL
    • openal_listener_get - Récupère une propriété d'auditeur
    • openal_listener_set - Définie une propriété d'auditeur
    • openal_source_create - Génère une ressource de source
    • openal_source_destroy - Détruit une ressource de source
    • openal_source_get - Récupère une propriété de source OpenAL
    • openal_source_pause - Marque une pause dans la source
    • openal_source_play - Démarre la lecture de la source
    • openal_source_rewind - Revient en arrière dans la source
    • openal_source_set - Définie une propriété de la source
    • openal_source_stop - Arrête la lecture de la source
    • openal_stream - Démarre le streaming d'une source
    • opendir - Ouvre un dossier, et récupère un pointeur dessus
    • openlog - Ouvre la connexion à l'historique système
    • openssl_cipher_iv_length - Récupère la longueur cipher iv
    • openssl_csr_export - Exporte un CSR vers un fichier ou une variable
    • openssl_csr_export_to_file - Exporte une CSR vers un fichier
    • openssl_csr_get_public_key - Retourne la clé publique d'un CERT
    • openssl_csr_get_subject - Retourne le sujet d'un CERT
    • openssl_csr_new - Génère une CSR
    • openssl_csr_sign - Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat
    • openssl_decrypt - Décrypte les données
    • openssl_dh_compute_key - Calcule un secret partagé pour une valeur publique des clés DH locales et distantes
    • openssl_digest - Calcule un digest
    • openssl_encrypt - Crypte les données
    • openssl_error_string - Retourne le message d'erreur OpenSSL
    • openssl_free_key - Libère les ressources
    • openssl_get_cert_locations - Récupère les chemins vers les certificats disponibles
    • openssl_get_cipher_methods - Récupère la liste des méthodes cipher disponibles
    • openssl_get_md_methods - Récupère la liste des méthodes digest disponibles
    • openssl_get_privatekey - Alias de openssl_pkey_get_private
    • openssl_get_publickey - Alias de openssl_pkey_get_public
    • openssl_open - Ouvre des données scellées
    • openssl_pbkdf2 - Génère une chaîne PKCS5 v2 PBKDF2, par défaut un SHA-1
    • openssl_pkcs7_decrypt - Déchiffre un message S/MIME
    • openssl_pkcs7_encrypt - Chiffre un message S/MIME
    • openssl_pkcs7_sign - Signe un message S/MIME
    • openssl_pkcs7_verify - Vérifie la signature d'un message S/MIME
    • openssl_pkcs12_export - Exporte un certificat compatible PKCS#12 dans une variable
    • openssl_pkcs12_export_to_file - Exporte un certificat compatible PKCS#12
    • openssl_pkcs12_read - Lit un certificat PKCS#12 dans un tableau
    • openssl_pkey_export - Stocke une représentation exportable de la clé dans une chaîne de caractères
    • openssl_pkey_export_to_file - Sauve une clé au format ASCII dans un fichier
    • openssl_pkey_free - Libère une clé privée
    • openssl_pkey_get_details - Retourne un tableau contenant le détail d'une clé
    • openssl_pkey_get_private - Lit une clé privée
    • openssl_pkey_get_public - Extrait une clé publique d'un certificat, et la prépare
    • openssl_pkey_new - Génère une nouvelle clé privée
    • openssl_private_decrypt - Déchiffre des données avec une clé privée
    • openssl_private_encrypt - Chiffre des données avec une clé privée
    • openssl_public_decrypt - Déchiffre des données avec une clé publique
    • openssl_public_encrypt - Chiffre des données avec une clé publique
    • openssl_random_pseudo_bytes - Génère une chaine pseudo-aléatoire d'octets
    • openssl_seal - Scelle des données
    • openssl_sign - Signe les données
    • openssl_spki_export - Exporte un PEM valide formaté comme une clé publique signée
    • openssl_spki_export_challenge - Exporte le challenge associé avec la clé publique signée
    • openssl_spki_new - Génère une clé publique signée et effectue un challenge
    • openssl_spki_verify - Vérifie une clé publique signée, et effectue un challenge
    • openssl_verify - Vérifie une signature
    • openssl_x509_checkpurpose - Vérifie l'usage d'un certificat
    • openssl_x509_check_private_key - Vérifie si une clé privée correspond à un certificat
    • openssl_x509_export - Exporte un certificat vers une chaîne de caractères
    • openssl_x509_export_to_file - Exporte un certificat vers un fichier
    • openssl_x509_fingerprint - Calcule l'empreinte, ou le digest d'un certificat X.509 donné
    • openssl_x509_free - Libère les ressources prises par un certificat
    • openssl_x509_parse - Analyse un certificat X509
    • openssl_x509_read - Analyse un certificat X.509 et retourne une ressource
    • Options de contexte CURL - Liste des options de contexte CURL
    • Options de contexte des sockets - Liste des options de contexte des sockets
    • Options de contexte FTP - Liste des options de contexte FTP
    • Options de contexte HTTP - Liste des options de contexte HTTP
    • Options de contexte MongoDB - Liste des options de contexte MongoDB
    • Options de contexte SSL - Liste des options de contexte SSL
    • ord - Retourne le code ASCII d'un caractère
    • OuterIterator::getInnerIterator - Retourne l'itérateur interne pour l'entrée courante
    • output_add_rewrite_var - Ajoute une règle de réécriture d'URL
    • output_reset_rewrite_vars - Annule la réécriture d'URL
    • override_function - Surcharge les fonctions intégrées
  • p
    • pack - Compacte des données dans une chaîne binaire
    • Paramètres de contexte - Liste des paramètres de contexte
    • ParentIterator::accept - Détermine si l'élément courant a des fils
    • ParentIterator::getChildren - Retourne le fils de l'itérateur interne contenu dans ParentIterator
    • ParentIterator::hasChildren - Vérifie si l'élément courant de l'itérateur interne a un fils
    • ParentIterator::next - Déplace l'itérateur à la position suivante
    • ParentIterator::rewind - Replace l'itérateur au début
    • ParentIterator::__construct - Construit un nouvel objet ParentIterator
    • parsekit_compile_file - Compile un fichier PHP et retourne le tableau d'opcode résultant
    • parsekit_compile_string - Compile une chaîne de code PHP et retourne le tableau d'opcode résultant
    • parsekit_func_arginfo - Retourne des informations concernant les arguments d'une fonction
    • parse_ini_file - Analyse un fichier de configuration
    • parse_ini_string - Analyse une chaîne de configuration
    • parse_str - Analyse une requête HTTP
    • parse_url - Analyse une URL et retourne ses composants
    • passthru - Exécute un programme externe et affiche le résultat brut
    • password_get_info - Retourne des informations à propos du hachage fourni
    • password_hash - Crée une clé de hachage pour un mot de passe
    • password_needs_rehash - Vérifie que le hachage fourni est conforme à l'algorithme et aux options spécifiées
    • password_verify - Vérifie qu'un mot de passe correspond à un hachage
    • pathinfo - Retourne des informations sur un chemin système
    • pclose - Ferme un processus de pointeur de fichier
    • pcntl_alarm - Planifie une alarme pour délivrer un signal
    • pcntl_errno - Alias de pcntl_strerror
    • pcntl_exec - Exécute le programme indiqué dans l'espace courant de processus
    • pcntl_fork - Duplique le process courant
    • pcntl_getpriority - Retourne la priorité d'un processus
    • pcntl_get_last_error - Récupère le numéro de l'erreur générée par la dernière fonction pcntl utilisée
    • pcntl_setpriority - Change la priorité d'un processus
    • pcntl_signal - Installe un gestionnaire de signaux
    • pcntl_signal_dispatch - Appelle les gestionnaires de signaux pour chaque signal en attente
    • pcntl_sigprocmask - Liste et configure les signaux bloqués
    • pcntl_sigtimedwait - Attend un signal dans un délai donné
    • pcntl_sigwaitinfo - Attend un signal
    • pcntl_strerror - Récupère le message d'erreur système associé avec l'errno fourni
    • pcntl_wait - Attend ou retourne le statut d'un processus fils
    • pcntl_waitpid - Attend la fin de l'exécution d'un processus fils
    • pcntl_wexitstatus - Retourne le code d'un processus fils terminé
    • pcntl_wifexited - Vérifie si le code de retour représente une fin normale
    • pcntl_wifsignaled - Retourne TRUE si le code statut représente une fin due à un signal
    • pcntl_wifstopped - Retourne TRUE si le processus fils est stoppé
    • pcntl_wstopsig - Retourne le signal qui a causé l'arrêt du processus fils
    • pcntl_wtermsig - Retourne le signal qui a provoqué la fin du processus fils
    • PDF_activate_item - Active un élément de structure ou un autre élément de contenu
    • PDF_add_annotation - [Obsolète] Ajoute une annotation
    • PDF_add_bookmark - [Obsolète] Ajoute un signet dans la page courante
    • PDF_add_launchlink - [Obsolète] Ajoute une annotation de lancement dans la page PDF courante
    • PDF_add_locallink - [Obsolète] Ajoute une annotation de lien dans la page PDF courante
    • PDF_add_nameddest - Crée une destination nommée
    • PDF_add_note - [Obsolète] Ajoute une annotation dans la page PDF courante
    • PDF_add_outline - [Obsolète] Ajoute un signet dans la page courante
    • PDF_add_pdflink - [Obsolète] Ajoute une annotation sur un lien vers un fichier dans la page PDF courante
    • PDF_add_table_cell - Ajoute une cellule à un nouveau tableau ou un tableau existant
    • PDF_add_textflow - Crée un flux de texte ou ajoute du texte à un flux de texte existant
    • PDF_add_thumbnail - [Obsolète] Ajoute une miniature sur la page PDF courante
    • PDF_add_weblink - [Obsolète] Ajoute un lien web sur la page PDF courante
    • PDF_arc - Dessine un arc de cercle PDF dans le sens anti-horaire
    • PDF_arcn - Dessine un arc de cercle dans le sens horaire
    • PDF_attach_file - [Obsolète] Ajoute un fichier attaché à la page PDF
    • PDF_begin_document - Crée un nouveau fichier PDF
    • PDF_begin_font - Commence une définition de police de type 3
    • PDF_begin_glyph - Commence une définition de glyphe pour les polices de type 3
    • PDF_begin_item - Ouvre un élément de structure ou un autre élément de contenu
    • PDF_begin_layer - Commence une interface
    • PDF_begin_page - [Obsolète] Initialise une nouvelle page de document PDF
    • PDF_begin_page_ext - Ajoute une nouvelle page PDF
    • PDF_begin_pattern - Initialise un nouveau pattern PDF
    • PDF_begin_template - Initialise un nouveau gabarit PDF (obsolète)
    • PDF_begin_template_ext - Commence une définition de gabarit PDF
    • PDF_circle - Dessine un cercle dans un document PDF
    • PDF_clip - Modifie le chemin de clipping PDF
    • PDF_close - [Obsolète] Ferme le fichier PDF
    • PDF_closepath - Termine le chemin PDF courant
    • PDF_closepath_fill_stroke - Termine le chemin, dessine les bords et remplit la forme
    • PDF_closepath_stroke - Termine le chemin et dessine les bords
    • PDF_close_image - Ferme une image dans un document PDF
    • PDF_close_pdi - Ferme le fichier PDF d'entrée (obsolète)
    • PDF_close_pdi_page - Ferme la page PDF
    • PDF_concat - Concatène une matrice avec le CTM
    • PDF_continue_text - Affiche du texte à la prochaine ligne PDF
    • PDF_create_3dview - Crée une vue 3D
    • PDF_create_action - Crée une action pour des objets ou des événements
    • PDF_create_annotation - Crée une annotation rectangulaire
    • PDF_create_bookmark - Crée un signet
    • PDF_create_field - Crée un champ de formulaire
    • PDF_create_fieldgroup - Crée un groupe de champs dans un formulaire
    • PDF_create_gstate - Crée un objet graphique
    • PDF_create_pvf - Crée un fichier PDFlib virtuel
    • PDF_create_textflow - Crée un objet de flux de texte
    • PDF_curveto - Dessine une courbe de Bezier
    • PDF_define_layer - Crée une définition d'interface
    • PDF_delete - Efface un objet PDF
    • PDF_delete_pvf - Efface un fichier virtuel PDFlib
    • PDF_delete_table - Efface un tableau
    • PDF_delete_textflow - Efface un objet de flux de texte
    • PDF_encoding_set_char - Ajoute un nom de glyphe et/ou une valeur Unicode
    • PDF_endpath - Termine le chemin courant
    • PDF_end_document - Ferme un fichier PDF
    • PDF_end_font - Termine une définition de police de type 3
    • PDF_end_glyph - Termine la définition d'un glyphe pour les polices de type 3
    • PDF_end_item - Ferme la structure d'un élément ou un autre élément de contenu
    • PDF_end_layer - Désactive toutes les interfaces actives
    • PDF_end_page - Termine la page PDF courante
    • PDF_end_page_ext - Termine une page
    • PDF_end_pattern - Termine le pattern PDF
    • PDF_end_template - Termine le gabarit PDF
    • PDF_fill - Remplit le chemin PDF courant avec la couleur courante
    • PDF_fill_imageblock - Remplit un bloc d'image avec des données variables
    • PDF_fill_pdfblock - Remplit un bloc de contenu avec des données variables
    • PDF_fill_stroke - Remplit et passe le pinceau sur le chemin PDF courant
    • PDF_fill_textblock - Remplit un bloc de texte avec des données variables
    • PDF_findfont - [Obsolète] Prépare une police pour utilisation ultérieure
    • PDF_fit_image - Place une image ou un gabarit PDF
    • PDF_fit_pdi_page - Place une page PDF importée
    • PDF_fit_table - Place un tableau sur la page
    • PDF_fit_textflow - Formate un flux de texte dans un espace rectangulaire
    • PDF_fit_textline - Place un simple ligne de texte
    • PDF_get_apiname - Récupère le nom d'une fonction de l'API qui a échouée
    • PDF_get_buffer - Lit le tampon contenant le fichier PDF généré
    • PDF_get_errmsg - Récupère le texte d'une erreur
    • PDF_get_errnum - Récupère un numéro d'erreur
    • PDF_get_font - [Obsolète] Charge une police
    • PDF_get_fontname - [Obsolète] Lit le nom de la police
    • PDF_get_fontsize - [Obsolète] Gère les polices
    • PDF_get_image_height - [Obsolète] Retourne la hauteur d'une image
    • PDF_get_image_width - [Obsolète] Retourne la largeur d'une image
    • PDF_get_majorversion - [Obsolète] Retourne le numéro de version majeur de PDFlib
    • PDF_get_minorversion - [Obsolète] Retourne le numéro de version mineure de PDFlib
    • PDF_get_parameter - Lit certains paramètres
    • PDF_get_pdi_parameter - Lit des paramètres textuels dans le document PDI (obsolète)
    • PDF_get_pdi_value - Lit des paramètres numériques dans le document PDF d'entrée (obsolète)
    • PDF_get_value - Lit certains paramètres numériques
    • PDF_info_font - Récupère des informations détaillées sur une police chargée
    • PDF_info_matchbox - Récupère les informations d'une boîte
    • PDF_info_table - Récupère les informations d'un tableau
    • PDF_info_textflow - Récupère le statut d'un flux de texte
    • PDF_info_textline - Effectue le formatage d'une ligne de texte et récupère la matrice
    • PDF_initgraphics - Remet à zéro l'environnement graphique PDF
    • PDF_lineto - Dessine une ligne PDF
    • PDF_load_3ddata - Charge un modèle 3D
    • PDF_load_font - Cherche et prépare une police
    • PDF_load_iccprofile - Cherche et prépare un profile ICC
    • PDF_load_image - Ouvre un fichier image
    • PDF_makespotcolor - Place un point de couleur PDF
    • PDF_moveto - Place le point courant PDF
    • PDF_new - Crée un nouvel objet PDF
    • PDF_open_ccitt - [Obsolète] Ouvre une image contenant des données brutes CCITT
    • PDF_open_file - [Obsolète] Ouvre un nouveau fichier PDF
    • PDF_open_gif - [Obsolète] Ouvre une image GIF
    • PDF_open_image - [Obsolète] Ouvre une image
    • PDF_open_image_file - [Obsolète] Lit une image depuis un fichier
    • PDF_open_jpeg - [Obsolète] Ouvre une image JPEG
    • PDF_open_memory_image - [Non supporté] Ouvre une image créée en mémoire par PHP
    • PDF_open_pdi - Ouvre un fichier PDF (obsolète)
    • PDF_open_pdi_document - Prépare un document pdi
    • PDF_open_pdi_page - Prépare une page
    • PDF_open_tiff - [Obsolète] Ouvre une image TIFF
    • PDF_pcos_get_number - Récupère la valeur du chemin pCOS
    • PDF_pcos_get_stream - Récupère le contenu du chemin pCOS
    • PDF_pcos_get_string - Récupère la valeur du chemin pCOS
    • PDF_place_image - [Obsolète] Place une image dans la page
    • PDF_place_pdi_page - [Obsolète] Place une page dans le document
    • PDF_process_pdi - Traite un document PDF importé
    • PDF_rect - Dessine un rectangle
    • PDF_restore - Rétablit l'ancien environnement graphique PDF
    • PDF_resume_page - Réouvre une page
    • PDF_rotate - Configure la rotation
    • PDF_save - Sauve l'environnement graphique courant
    • PDF_scale - Configure l'échelle du document
    • PDF_setcolor - Configure la couleur de dessin et de remplissage
    • PDF_setdash - Configure le mode de pointillé
    • PDF_setdashpattern - Définit un modèle de masque
    • PDF_setflat - Configure la position à plat (flatness)
    • PDF_setfont - Configure la police courante
    • PDF_setgray - [Obsolète] Configure la couleur de dessin et de remplissage à un niveau de gris
    • PDF_setgray_fill - [Obsolète] Configure la couleur de remplissage à un niveau de gris
    • PDF_setgray_stroke - [Obsolète] Configure la couleur de dessin à un niveau de gris
    • PDF_setlinecap - Configure le paramètre de linecap
    • PDF_setlinejoin - Configure le paramètre de linejoin
    • PDF_setlinewidth - Configure la largeur de ligne
    • PDF_setmatrix - Configure la matrice de transformation
    • PDF_setmiterlimit - Configure la "miter limit"
    • PDF_setpolydash - [Obsolète] Configure des pointillés complexes
    • PDF_setrgbcolor - [Obsolète] Choisit la couleur rgb de remplissage et de dessin
    • PDF_setrgbcolor_fill - [Obsolète] Choisit la couleur utilisée pour le remplissage
    • PDF_setrgbcolor_stroke - [Obsolète] Choisit la couleur utilisée pour le dessin
    • PDF_set_border_color - [Obsolète] Configure la couleur des bords autour des liens et annotations
    • PDF_set_border_dash - [Obsolète] Configure le style des lignes autour des liens des annotations
    • PDF_set_border_style - [Obsolète] Choisit le style de bord autour des liens et annotations
    • PDF_set_char_spacing - [Obsolète] Configure l'espacement des caractères
    • PDF_set_duration - [Obsolète] Configure la durée entre deux pages
    • PDF_set_gstate - Active un objet graphique
    • PDF_set_horiz_scaling - [Obsolète] Configure l'échelle horizontale du texte
    • PDF_set_info - Remplit un champ de l'en-tête de document PDF
    • PDF_set_info_author - [Obsolète] Remplit le champ d'auteur du document
    • PDF_set_info_creator - [Obsolète] Remplit le champ de créateur du document
    • PDF_set_info_keywords - [Obsolète] Remplit le champ de mots-clés du document
    • PDF_set_info_subject - [Obsolète] Remplit le champ de sujet du document
    • PDF_set_info_title - [Obsolète] Remplit le champ de titre du document
    • PDF_set_layer_dependency - Définit les liens entre les interfaces
    • PDF_set_leading - [Obsolète] Configure la distance entre deux lignes de texte
    • PDF_set_parameter - Modifie certains paramètres
    • PDF_set_text_matrix - [Obsolète] Configure la matrice de texte
    • PDF_set_text_pos - Modifie la position du texte
    • PDF_set_text_rendering - [Obsolète] Détermine le rendu du texte
    • PDF_set_text_rise - [Obsolète] Configure l'élévation de texte
    • PDF_set_value - Modifie certains paramètres numériques
    • PDF_set_word_spacing - [Obsolète] Configure l'espace entre deux mots
    • PDF_shading - Définit un dégradé
    • PDF_shading_pattern - Définit un masque d'ombrage
    • PDF_shfill - Remplit un espace avec un dégradé
    • PDF_show - Affiche le texte à la position courante
    • PDF_show_boxed - [Obsolète] Affiche le texte dans un cadre
    • PDF_show_xy - Affiche un texte à une position donnée
    • PDF_skew - Incline le système de coordonnées
    • PDF_stringwidth - Retourne la largeur d'un texte avec la police courante
    • PDF_stroke - Dessine la ligne le long du chemin
    • PDF_suspend_page - Suspend une page
    • PDF_translate - Effectue une translation de l'origine du système de coordonnées
    • PDF_utf8_to_utf16 - Convertit une chaîne UTF-8 en UTF-16
    • PDF_utf16_to_utf8 - Convertit une chaîne UTF-16 en UTF-8
    • PDF_utf32_to_utf16 - Convertie une chaîne UTF-32 en UTF-16
    • PDO::beginTransaction - Démarre une transaction
    • PDO::commit - Valide une transaction
    • PDO::cubrid_schema - Récupère le schéma d'informations demandé
    • PDO::errorCode - Retourne le SQLSTATE associé avec la dernière opération sur la base de données
    • PDO::errorInfo - Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données
    • PDO::exec - Exécute une requête SQL et retourne le nombre de lignes affectées
    • PDO::getAttribute - Récupère un attribut d'une connexion à une base de données
    • PDO::getAvailableDrivers - Retourne la liste des pilotes PDO disponibles
    • PDO::inTransaction - Vérifie si nous sommes dans une transaction
    • PDO::lastInsertId - Retourne l'identifiant de la dernière ligne insérée ou la valeur d'une séquence
    • PDO::pgsqlCopyFromArray - Copy data from PHP array into table
    • PDO::pgsqlCopyFromFile - Copy data from file into table
    • PDO::pgsqlCopyToArray - Copy data from database table into PHP array
    • PDO::pgsqlCopyToFile - Copy data from table into file
    • PDO::pgsqlGetNotify - Récupère une notification asynchrone
    • PDO::pgsqlGetPid - Récupère le PID du serveur
    • PDO::pgsqlLOBCreate - Crée un nouvel objet large
    • PDO::pgsqlLOBOpen - Ouvre un flux existant de large objet
    • PDO::pgsqlLOBUnlink - Supprime un objet large
    • PDO::prepare - Prépare une requête à l'exécution et retourne un objet
    • PDO::query - Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement
    • PDO::quote - Protège une chaîne pour l'utiliser dans une requête SQL PDO
    • PDO::rollBack - Annule une transaction
    • PDO::setAttribute - Configure un attribut PDO
    • PDO::sqliteCreateAggregate - Référence une fonction agrégative définie par l'utilisateur pour une utilisation dans les requêtes SQL
    • PDO::sqliteCreateCollation - Enregistre une fonction PHP ou définie par l'utilisateur pour l'utiliser comme une fonction de collecte dans les requêtes SQL.
    • PDO::sqliteCreateFunction - Référence une fonction définie par l'utilisateur pour une utilisation dans les requêtes SQL
    • PDO::__construct - Crée une instance PDO qui représente une connexion à la base
    • PDOStatement::bindColumn - Lie une colonne à une variable PHP
    • PDOStatement::bindParam - Lie un paramètre à un nom de variable spécifique
    • PDOStatement::bindValue - Associe une valeur à un paramètre
    • PDOStatement::closeCursor - Ferme le curseur, permettant à la requête d'être de nouveau exécutée
    • PDOStatement::columnCount - Retourne le nombre de colonnes dans le jeu de résultats
    • PDOStatement::debugDumpParams - Détaille une commande préparée SQL
    • PDOStatement::errorCode - Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête
    • PDOStatement::errorInfo - Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête
    • PDOStatement::execute - Exécute une requête préparée
    • PDOStatement::fetch - Récupère la ligne suivante d'un jeu de résultats PDO
    • PDOStatement::fetchAll - Retourne un tableau contenant toutes les lignes du jeu d'enregistrements
    • PDOStatement::fetchColumn - Retourne une colonne depuis la ligne suivante d'un jeu de résultats
    • PDOStatement::fetchObject - Récupère la prochaine ligne et la retourne en tant qu'objet
    • PDOStatement::getAttribute - Récupère un attribut de requête
    • PDOStatement::getColumnMeta - Retourne les métadonnées pour une colonne d'un jeu de résultats
    • PDOStatement::nextRowset - Avance à la prochaine ligne de résultats d'un gestionnaire de lignes de résultats multiples
    • PDOStatement::rowCount - Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()
    • PDOStatement::setAttribute - Définit un attribut de requête
    • PDOStatement::setFetchMode - Définit le mode de récupération par défaut pour cette requête
    • PDO_4D DSN - Connexion aux bases de données 4D
    • PDO_DBLIB DSN - Connexion au Serveur Microsoft SQL et bases de données Sybase
    • PDO_FIREBIRD DSN - Connexion aux bases de données Firebird
    • PDO_IBM DSN - Connexion aux bases de données IBM
    • PDO_INFORMIX DSN - Connexion aux bases de données Informix
    • PDO_MYSQL DSN - Connexion aux bases de données MySQL
    • PDO_OCI DSN - Connexion aux bases de données Oracle
    • PDO_ODBC DSN - Connexion aux bases de données ODBC ou DB2
    • PDO_PGSQL DSN - Connexion aux bases de données PostgreSQL
    • PDO_SQLITE DSN - Connexion aux bases de données SQLite
    • PDO_SQLSRV DSN - Connexion à des bases de données MS SQL Server et SQL Azure
    • pfsockopen - Ouvre un socket de connexion Internet ou Unix persistante
    • pg_affected_rows - Retourne le nombre de lignes affectées
    • pg_cancel_query - Annule une requête asynchrone
    • pg_client_encoding - Lit l'encodage du client
    • pg_close - Termine une connexion PostgreSQL
    • pg_connect - Établit une connexion PostgreSQL
    • pg_connection_busy - Vérifie si la connexion PostgreSQL est occupée
    • pg_connection_reset - Relance la connexion au serveur PostgreSQL
    • pg_connection_status - Lit le statut de la connexion PostgreSQL
    • pg_connect_poll - Test le statut d'une tentative de connexion asynchrone PostgreSQL en cours
    • pg_consume_input - Lit l'entrée de la connexion
    • pg_convert - Convertit des tableaux associatifs en une commande PostgreSQL
    • pg_copy_from - Insère des lignes dans une table à partir d'un tableau
    • pg_copy_to - Copie une table dans un tableau
    • pg_dbname - Retourne le nom de la base de données PostgreSQL
    • pg_delete - Efface des lignes PostgreSQL
    • pg_end_copy - Synchronise avec le serveur PostgreSQL
    • pg_escape_bytea - Protège une chaîne pour insertion dans un champ bytea
    • pg_escape_identifier - Protège un identifiant pour l'insertion dans un champ texte.
    • pg_escape_literal - Protège une requête SQL littérale à insérer dans un champ texte
    • pg_escape_string - Protège une chaîne de caractères pour une requête SQL
    • pg_execute - Exécute une requête préparée PostGreSQL
    • pg_fetch_all - Lit toutes les lignes d'un résultat
    • pg_fetch_all_columns - Récupère toutes les lignes d'une colonne de résultats particulière en tant que tableau
    • pg_fetch_array - Lit une ligne de résultat PostgreSQL dans un tableau
    • pg_fetch_assoc - Lit une ligne de résultat PostgreSQL sous forme de tableau associatif
    • pg_fetch_object - Lit une ligne de résultat PostgreSQL dans un objet
    • pg_fetch_result - Retourne les valeurs d'un résultat
    • pg_fetch_row - Lit une ligne dans un tableau
    • pg_field_is_null - Teste si un champ PostgreSQL est à NULL
    • pg_field_name - Retourne le nom d'un champ PostgreSQL
    • pg_field_num - Retourne le numéro d'une colonne
    • pg_field_prtlen - Retourne la taille imprimée
    • pg_field_size - Retourne la taille interne de stockage d'un champ donné
    • pg_field_table - Retourne le nom ou l'oid d'une table
    • pg_field_type - Retourne le type d'un champ PostgreSQL donné par index
    • pg_field_type_oid - Retourne le type ID (OID) pour le numéro du champ correspondant
    • pg_flush - Envoi les données de requête sortante sur la connexion
    • pg_free_result - Libère la mémoire
    • pg_get_notify - Lit le message SQL NOTIFY
    • pg_get_pid - Lit l'identifiant de processus du serveur PostgreSQL
    • pg_get_result - Lit un résultat PostgreSQL asynchrone
    • pg_host - Retourne le nom d'hôte
    • pg_insert - Insère un tableau dans une table
    • pg_last_error - Lit le dernier message d'erreur sur la connexion
    • pg_last_notice - Retourne la dernière note du serveur PostgreSQL
    • pg_last_oid - Retourne l'identifiant de la dernière ligne
    • pg_lo_close - Ferme un objet de grande taille PostgreSQL
    • pg_lo_create - Crée un objet de grande taille PostgreSQL
    • pg_lo_export - Exporte un objet de grande taille vers un fichier
    • pg_lo_import - Importe un objet de grande taille depuis un fichier
    • pg_lo_open - Ouvre un objet de grande taille PostgreSQL
    • pg_lo_read - Lit un objet de grande taille
    • pg_lo_read_all - Lit un objet de grande taille en totalité
    • pg_lo_seek - Modifie la position dans un objet de grande taille
    • pg_lo_tell - Retourne la position courante dans un objet de grande taille PostgreSQL
    • pg_lo_truncate - Tronque un objet large
    • pg_lo_unlink - Efface un objet de grande taille PostgreSQL
    • pg_lo_write - Écrit un objet de grande taille PostgreSQL
    • pg_meta_data - Lit les métadonnées de la table PostgreSQL
    • pg_num_fields - Retourne le nombre de champ
    • pg_num_rows - Retourne le nombre de lignes PostgreSQL
    • pg_options - Retourne les options PostgreSQL
    • pg_parameter_status - Consulte un paramètre de configuration courant du serveur
    • pg_pconnect - Établit une connexion PostgreSQL persistante
    • pg_ping - Ping la connexion à la base
    • pg_port - Retourne le numéro de port
    • pg_prepare - Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution
    • pg_put_line - Envoie une chaîne au serveur PostgreSQL
    • pg_query - Exécute une requête PostgreSQL
    • pg_query_params - Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL
    • pg_result_error - Lit le message d'erreur associé à un résultat
    • pg_result_error_field - Retourne un champ individuel d'un rapport d'erreur
    • pg_result_seek - Modifie la ligne courant dans un résultat
    • pg_result_status - Lit le statut du résultat
    • pg_select - Effectue une sélection PostgreSQL
    • pg_send_execute - Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)
    • pg_send_prepare - Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution
    • pg_send_query - Exécute une requête PostgreSQL asynchrone
    • pg_send_query_params - Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s)
    • pg_set_client_encoding - Choisit l'encodage du client PostgreSQL
    • pg_set_error_verbosity - Détermine la le degré des messages retournés par pg_last_error et pg_result_error
    • pg_socket - Récupère un gestionnaire de lecture seul sur le socket sous-jacent d'une connexion PostgreSQL
    • pg_trace - Active le suivi d'une connexion PostgreSQL
    • pg_transaction_status - Retourne le statut de la transaction en cours du serveur
    • pg_tty - Retourne le nom de TTY associé à la connexion
    • pg_unescape_bytea - Supprime la protection d'une chaîne de type bytea
    • pg_untrace - Termine le suivi d'une connexion PostgreSQL
    • pg_update - Modifie les lignes d'une table
    • pg_version - Retourne un tableau avec les versions du client, du protocole et du serveur (si disponible)
    • phar:// - Archive PHP
    • Phar::addEmptyDir - Ajoute un répertoire vide à l'archive phar
    • Phar::addFile - Ajoute un fichier du système de fichiers à l'archive phar
    • Phar::addFromString - Ajoute un fichier depuis une chaîne de caractère à l'archive phar
    • Phar::apiVersion - Retourne la version de l'API
    • Phar::buildFromDirectory - Construit une archive phar à partir des fichiers d'un répertoire
    • Phar::buildFromIterator - Construit une archive phar à partir d'un itérateur
    • Phar::canCompress - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
    • Phar::canWrite - Détermine si l'extension phar supporte la création et l'écriture des phars
    • Phar::compress - Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
    • Phar::compressAllFilesBZIP2 - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Bzip2
    • Phar::compressAllFilesGZ - Compresse tous les fichiers de l'archive Phar courante en utilisant la compression Gzip
    • Phar::compressFiles - Compresse tous les fichiers de l'archive Phar courante'
    • Phar::convertToData - Convertit une archive phar en un fichier non-exécutable
    • Phar::convertToExecutable - Convertit une archive phar vers un autre format de fichier d'archive phar exécutable
    • Phar::copy - Copie un fichier appartenant à une archive vers un autre fichier de la même archive
    • Phar::count - Retourne le nombre d'entrées (fichiers) dans l'archive Phar
    • Phar::createDefaultStub - Crée un conteneur de chargement d'une archive Phar
    • Phar::decompress - Décompresse l'archive tar complète
    • Phar::decompressFiles - Décompresse tous les fichiers de l'archive Phar courante
    • Phar::delete - Efface un fichier au sein d'une archive phar
    • Phar::delMetadata - Efface les méta-données globales du phar
    • Phar::extractTo - Extrait le contenu d'une archive phar vers un répertoire
    • Phar::getMetadata - Retourne les méta-données de l'archive phar
    • Phar::getModified - Indique si le fichier phar a été modifié
    • Phar::getSignature - Retourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar
    • Phar::getStub - Retourne le chargeur PHP ou le conteneur de chargement d'une archive Phar
    • Phar::getSupportedCompression - Retourne un tableau des algorithmes de compression supportés
    • Phar::getSupportedSignatures - Retourne un tableau des types de signature supportés
    • Phar::getVersion - Retourne les informations de version de l'archive Phar
    • Phar::hasMetadata - Détermine si le phar a ou non des méta-données
    • Phar::interceptFileFuncs - Informe phar qu'il doit intercepter les fonctions de fichiers
    • Phar::isBuffering - Détermine si les opérations d'écriture du Phar sont mises en tampons ou sont directement inscrites sur le disque
    • Phar::isCompressed - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
    • Phar::isFileFormat - Retourne TRUE si l'archive phar est basée sur le formats de fichier tar/phar/zip selon le paramètre
    • Phar::isValidPharFilename - Détermine si le nom de fichier spécifié est un nom de fichier valide pour une archive phar
    • Phar::isWritable - Retourne TRUE si l'archive phar peut être modifiée
    • Phar::loadPhar - Charge n'importe quelle archive phar avec un alias
    • Phar::mapPhar - Lit le phar exécuté et charge son manifeste
    • Phar::mount - Monte un chemin ou un fichier externe à un emplacement virtuel au sein de l'archive phar
    • Phar::mungServer - Définit une liste de maximum 4 variables $_SERVER qui doivent être modifiées lors de l'exécution
    • Phar::offsetExists - détermine si un fichier existe dans le phar
    • Phar::offsetGet - Obtient un objet PharFileInfo à partir d'un fichier
    • Phar::offsetSet - met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe
    • Phar::offsetUnset - Efface un fichier d'un phar
    • Phar::running - Retourne le chemin complet sur le disque ou l'URL phar complète de l'archive phar couramment exécutée
    • Phar::setAlias - Fixe l'alias de l'archive Phar
    • Phar::setDefaultStub - Utilisé pour fixer le chargeur PHP ou le conteneur de chargement d'une archive Phar en tant que chargeur par défaut
    • Phar::setMetadata - Fixe les méta-données de l'archive
    • Phar::setSignatureAlgorithm - Assigne l'algorithme de signature d'un phar et l'applique
    • Phar::setStub - Utilisé pour spécifier le chargeur PHP ou le conteneur de chargement d'une archive Phar
    • Phar::startBuffering - Démarre la mise en tampon de écritures Phar, ne modifie pas l'objet Phar sur le disque
    • Phar::stopBuffering - Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque
    • Phar::uncompressAllFiles - Décompresse tous les fichiers de l'archive Phar courante
    • Phar::unlinkArchive - Efface complètement une archive phar du disque et de la mémoire
    • Phar::webPhar - mapPhar pour les phars orientés web. Contrôleur pour les applications web
    • Phar::__construct - Construit un objet d'archive Phar
    • PharData::addEmptyDir - Ajoute un répertoire vide à l'archive tar/zip
    • PharData::addFile - Ajoute un fichier du système de fichiers à l'archive tar/zip
    • PharData::addFromString - Ajoute un fichier du système de fichiers à l'archive tar/zip
    • PharData::buildFromDirectory - Construit une archive tar/zip à partir des fichiers d'un répertoire
    • PharData::buildFromIterator - Construit une archive tar ou zip à partir d'un itérateur
    • PharData::compress - Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2
    • PharData::compressFiles - Compresse tous les fichiers de l'archive tar/zip courante
    • PharData::convertToData - Convertit une archive phar en une archive tar ou zip non-exécutable
    • PharData::convertToExecutable - Convertit une archive tar/zip non-exécutable en une archive phar exécutable
    • PharData::copy - Copie un fichier un fichier interne à l'archive phar vers un autre fichier au sein de la même archive
    • PharData::decompress - Décompresse l'archive Phar entière
    • PharData::decompressFiles - Décompresse tous les fichiers de l'archive zip courante
    • PharData::delete - Efface un fichier au sein de l'archive tar/zip
    • PharData::delMetadata - Efface les méta-données globales d'une archive zip
    • PharData::extractTo - Extrait le contenu d'une archive tar/zip vers un répertoire
    • PharData::isWritable - Vérifie si l'archive tar/zip peut être modifiée
    • PharData::offsetSet - remplit un fichier au sein de l'archive tar/zip avec le contenu d'un fichier externe ou d'une chaîne de caractères
    • PharData::offsetUnset - efface un fichier d'une archive tar/zip
    • PharData::setAlias - fonction inutile (Phar::setAlias n'est pas valide pour PharData)
    • PharData::setDefaultStub - fonction inutile (Phar::setDefaultStub n'est pas valide pour PharData)
    • PharData::setStub - fonction inutile (Phar::setStub n'est pas valide pour PharData)
    • PharData::__construct - Construit un objet d'archive tar ou zip non-exécutable
    • PharException - La classe PharException fournit une classe d'exception spécifique à phar pour essayer/attraper des blocs
    • PharFileInfo::chmod - Fixe les bits de permission spécifiques aux fichiers
    • PharFileInfo::compress - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
    • PharFileInfo::decompress - Décompresse l'entrée Phar courante au sein du phar
    • PharFileInfo::delMetadata - Efface les métadonnées de l'entrée
    • PharFileInfo::getCompressedSize - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
    • PharFileInfo::getCRC32 - Retourne le code CRC32 ou soulève une exception si le CRC n'a pas été vérifié
    • PharFileInfo::getMetadata - Retourne les méta-données spécifiques attachées à un fichier
    • PharFileInfo::getPharFlags - Retourne les drapeaux du fichier Phar
    • PharFileInfo::hasMetadata - Retourne les méta-données de l'entrée
    • PharFileInfo::isCompressed - Retourne si l'entrée est compressée
    • PharFileInfo::isCompressedBZIP2 - Détermine si l'archive Phar est compressée avec bzip2
    • PharFileInfo::isCompressedGZ - Détermine si l'archive Phar est compressée avec gzip
    • PharFileInfo::isCRCChecked - Détermine si le fichier a un CRC vérifié
    • PharFileInfo::setCompressedBZIP2 - Compresse l'entrée Phar courante au sein du phar avec Bzip2
    • PharFileInfo::setCompressedGZ - Compresse l'entrée Phar courante au sein du phar avec gzip
    • PharFileInfo::setMetadata - Fixe les métadonnées spécifiques à un fichier
    • PharFileInfo::setUncompressed - Décompresse l'entrée Phar courante au sein du phar s'il y a lieu
    • PharFileInfo::__construct - Construit un objet d'entrée Phar
    • php:// - Accès aux divers flux I/O
    • phpcredits - Affiche les crédits de PHP
    • phpinfo - Affiche de nombreuses informations sur la configuration de PHP
    • phpversion - Retourne le numéro de la version courante de PHP
    • php_check_syntax - Vérifie la syntaxe PHP (et exécute) d'un fichier spécifique
    • php_ini_loaded_file - Récupère le chemin d'un fichier php.ini chargé
    • php_ini_scanned_files - Retourne la liste des fichiers .ini analysés dans les dossiers de configuration supplémentaires
    • php_logo_guid - Retourne l'identifiant du logo PHP
    • php_sapi_name - Retourne le type d'interface utilisée entre le serveur web et PHP
    • php_strip_whitespace - Retourne la source sans commentaires, ni espaces blancs
    • php_uname - Retourne les informations sur le système d'exploitation
    • php_user_filter::filter - Appelé lors de l'application d'un filtre
    • php_user_filter::onClose - Appelé lors de la fermeture du filtre
    • php_user_filter::onCreate - Appelé lors de la création du filtre
    • pi - Retourne la valeur de pi
    • png2wbmp - Convertit une image PNG en image WBMP
    • Pool::collect - Collecte les références des tâches achevées
    • Pool::resize - Redimensionne le Pool
    • Pool::shutdown - Arrête tous les Workers
    • Pool::submit - Soumet un objet pour exécution
    • Pool::submitTo - Soumet un objet pour exécution
    • Pool::__construct - Crée un nouveau Pool de Workers
    • popen - Crée un processus de pointeur de fichier
    • pos - Alias de current
    • posix_access - Détermine l'accessibilité d'un fichier
    • posix_ctermid - Retourne le chemin du terminal
    • posix_errno - Alias de posix_get_last_error
    • posix_getcwd - Chemin du dossier de travail courant
    • posix_getegid - Retourne l'ID effectif du groupe du processus courant
    • posix_geteuid - Retourne l'UID effectif de l'utilisateur du processus courant
    • posix_getgid - Retourne l'UID du groupe du processus courant
    • posix_getgrgid - Retourne des informations sur un groupe
    • posix_getgrnam - Retourne des informations sur un groupe
    • posix_getgroups - Retourne les identifiants du groupe du processus courant
    • posix_getlogin - Retourne le nom de login
    • posix_getpgid - Retourne l'id du groupe de processus
    • posix_getpgrp - Retourne l'identifiant du groupe de processus
    • posix_getpid - Retourne l'identifiant du processus courant
    • posix_getppid - Retourne l'identifiant du processus parent
    • posix_getpwnam - Retourne des informations sur un utilisateur
    • posix_getpwuid - Retourne des informations sur un utilisateur
    • posix_getrlimit - Retourne des informations concernant les limites des ressources système
    • posix_getsid - Retourne le sid du processus
    • posix_getuid - Retourne l'ID de l'utilisateur du processus courant
    • posix_get_last_error - Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué
    • posix_initgroups - Calcule la liste des accès de groupe
    • posix_isatty - Détermine si un pointeur de fichier est un terminal interactif
    • posix_kill - Envoie un signal à un processus
    • posix_mkfifo - Crée un fichier FIFO (first in, first out) (un pipe nommé)
    • posix_mknod - Crée un fichier spécial ou ordinaire (POSIX.1)
    • posix_setegid - Modifie le GID réel du processus courant
    • posix_seteuid - Modifie l'identifiant d'utilisateur réel (UID) du processus courant
    • posix_setgid - Fixe le GID effectif du processus courant
    • posix_setpgid - Fixe l'identifiant de groupe de processus
    • posix_setrlimit - Set system resource limits
    • posix_setsid - Fait du processus courant un chef de session
    • posix_setuid - Fixe l'UID effective du processus courant
    • posix_strerror - Lit le message d'erreur associé à un numéro d'erreur POSIX
    • posix_times - Utilisation des ressources
    • posix_ttyname - Retourne le nom de device du terminal
    • posix_uname - Retourne le nom du système
    • pow - Expression exponentielle
    • preg_filter - Recherche et remplace avec une expression rationnelle
    • preg_grep - Retourne un tableau avec les résultats de la recherche
    • preg_last_error - Retourne le code erreur de la dernière expression PCRE exécutée
    • preg_match - Effectue une recherche de correspondance avec une expression rationnelle standard
    • preg_match_all - Expression rationnelle globale
    • preg_quote - Protection des caractères spéciaux des expressions rationnelles
    • preg_replace - Rechercher et remplacer par expression rationnelle standard
    • preg_replace_callback - Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback
    • preg_replace_callback_array - Perform a regular expression search and replace using callbacks
    • preg_split - Éclate une chaîne par expression rationnelle
    • prev - Recule le pointeur courant de tableau
    • print - Affiche une chaîne de caractères
    • printf - Affiche une chaîne de caractères formatée
    • print_r - Affiche des informations lisibles pour une variable
    • proc_close - Ferme un processus ouvert par proc_open
    • proc_get_status - Lit les informations concernant un processus ouvert par proc_open
    • proc_nice - Change la priorité d'exécution du processus courant
    • proc_open - Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties
    • proc_terminate - Termine un processus ouvert par proc_open
    • property_exists - Vérifie si un objet ou une classe possède une propriété
    • pspell_add_to_personal - Ajoute le mot au dictionnaire personnel
    • pspell_add_to_session - Ajoute le mot au dictionnaire personnel de la session courante
    • pspell_check - Vérifie un mot
    • pspell_clear_session - Remet à zéro la session courante
    • pspell_config_create - Crée une configuration utilisée pour ouvrir un dictionnaire
    • pspell_config_data_dir - Dossier qui contient les fichiers de données linguistiques
    • pspell_config_dict_dir - Endroit où se trouve le fichier global des mots
    • pspell_config_ignore - Ignore les mots de moins de N caractères
    • pspell_config_mode - Change le mode de suggestion
    • pspell_config_personal - Choisit le fichier qui contient le dictionnaire personnel
    • pspell_config_repl - Choisit le fichier qui contient les paires de remplacement
    • pspell_config_runtogether - Considère deux mots accolés comme un composé
    • pspell_config_save_repl - Détermine s'il faut sauver les paires de remplacement avec le dictionnaire
    • pspell_new - Charge un nouveau dictionnaire
    • pspell_new_config - Charge un nouveau dictionnaire avec les paramètres spécifiés dans une configuration
    • pspell_new_personal - Charge un nouveau dictionnaire avec un dictionnaire personnel
    • pspell_save_wordlist - Sauve le dictionnaire personnel dans un fichier
    • pspell_store_replacement - Enregistre une paire de remplacement pour un mot
    • pspell_suggest - Suggère l'orthographe d'un mot
    • ps_add_bookmark - Ajoute un signet à la page courante
    • ps_add_launchlink - Ajoute un lien qui démarre un fichier
    • ps_add_locallink - Ajoute un lien à une page dans le même document
    • ps_add_note - Ajoute une note à la page courante
    • ps_add_pdflink - Ajoute un lien à une page à un second document PDF
    • ps_add_weblink - Ajoute un lien à un emplacement web
    • ps_arc - Dessine un arc dans le sens contraire des aiguilles d'une montre
    • ps_arcn - Dessine un arc dans le sens des aiguilles d'une montre
    • ps_begin_page - Démarre une nouvelle page
    • ps_begin_pattern - Démarre un nouveau motif
    • ps_begin_template - Démarre un nouveau modèle
    • ps_circle - Dessine un cercle
    • ps_clip - Attache le dessin au chemin courant
    • ps_close - Ferme le document PostScript
    • ps_closepath - Ferme un chemin
    • ps_closepath_stroke - Ferme et trace un chemin
    • ps_close_image - Ferme l'image et libère la mémoire
    • ps_continue_text - Continue un texte à la ligne suivante
    • ps_curveto - Dessine une courbe
    • ps_delete - Supprime toutes les ressources d'un document PostScript
    • ps_end_page - Termine une page
    • ps_end_pattern - Termine un motif
    • ps_end_template - Termine un modèle
    • ps_fill - Remplit le chemin courant
    • ps_fill_stroke - Remplit et trace le chemin courant
    • ps_findfont - Charge une police
    • ps_get_buffer - Récupère le tampon complet contenant les données PS générées
    • ps_get_parameter - Récupère certains paramètres
    • ps_get_value - Récupère certaines valeurs
    • ps_hyphenate - Relie un mot
    • ps_include_file - Lit un fichier externe avec du code PostScript brut
    • ps_lineto - Dessine une ligne
    • ps_makespotcolor - Crée une tache de couleur
    • ps_moveto - Fixe le point courant
    • ps_new - Crée un nouvel objet document PostScript
    • ps_open_file - Ouvre un fichier pour écriture
    • ps_open_image - Lit une image pour placement futur
    • ps_open_image_file - Ouvre une image à partir d'un fichier
    • ps_open_memory_image - Prend une image GD et retourne une image à placer dans un document PS
    • ps_place_image - Place une image sur la page
    • ps_rect - Dessine un rectangle
    • ps_restore - Restaure un contexte précédemment sauvegardé
    • ps_rotate - Fixe le facteur de rotation
    • ps_save - Sauvegarde le contexte courant
    • ps_scale - Fixe le facteur de redimensionnement
    • ps_setcolor - Fixe la couleur courante
    • ps_setdash - Fixe l'apparence d'une ligne pointillée
    • ps_setflat - Fixe la position à plat
    • ps_setfont - Fixe la police à utiliser pour la prochaine écriture
    • ps_setgray - Fixe la valeur de gris
    • ps_setlinecap - Fixe l'apparence des fins de ligne
    • ps_setlinejoin - Fixe comment les lignes connectés sont jointes
    • ps_setlinewidth - Fixe la largeur d'une ligne
    • ps_setmiterlimit - Fixe les limites de l'anglet
    • ps_setoverprintmode - Définit le mode "overprint"
    • ps_setpolydash - Fixe l'apparence d'une ligne pointillée
    • ps_set_border_color - Fixe la couleur des bordures pour les commentaires
    • ps_set_border_dash - Fixe la grandeur des tirets pour les bordures des commentaires
    • ps_set_border_style - Fixe le style de bordure des commentaires
    • ps_set_info - Assigne les champs d'informations d'un document
    • ps_set_parameter - Fixe certains paramètres
    • ps_set_text_pos - Fixe la position l'écriture du texte
    • ps_set_value - Fixe certaines valeurs
    • ps_shading - Crée un ton pour usage futur
    • ps_shading_pattern - Crée un motif basé sur le ton
    • ps_shfill - Remplit un espace avec un ton
    • ps_show - Écrit du texte
    • ps_show2 - Affiche un texte à la position courante
    • ps_show_boxed - Écriture de texte dans une boîte
    • ps_show_xy - Écrit du texte à la position donnée
    • ps_show_xy2 - Affiche un texte à la position
    • ps_stringwidth - Récupère la largeur d'une chaîne de caractères
    • ps_string_geometry - Récupère les géométries d'une chaîne de caractères
    • ps_stroke - Dessine le chemin courant
    • ps_symbol - Écrit un glyphe
    • ps_symbol_name - Récupère le nom d'un glyphe
    • ps_symbol_width - Récupère la largeur d'un glyphe
    • ps_translate - Fixe une translation
    • putenv - Fixe la valeur d'une variable d'environnement
    • px_close - Ferme une base de données Paradox
    • px_create_fp - Crée une nouvelle base de données Paradox
    • px_date2string - Convertit une date en une chaîne de caractères
    • px_delete - Efface la ressource d'une base de données Paradox
    • px_delete_record - Efface une enregistrement depuis une base de données Paradox
    • px_get_field - Retourne les spécifications d'un champ
    • px_get_info - Retourne des informations sur un fichier Paradox
    • px_get_parameter - Récupère un paramètre
    • px_get_record - Retourne un enregistrement d'une base de données Paradox
    • px_get_schema - Retourne le schéma de la base de données
    • px_get_value - Récupère une valeur
    • px_insert_record - Insère un enregistrement dans une base de données Paradox
    • px_new - Crée un nouvel objet Paradox
    • px_numfields - Retourne le nombre de champs d'une base de données Paradox
    • px_numrecords - Retourne le nombre d'enregistrements d'une base de données Paradox
    • px_open_fp - Ouvre une base de données Paradox
    • px_put_record - Stocke un enregistrement dans une base de données Paradox
    • px_retrieve_record - Retourne un enregistrement depuis une base de données Paradox
    • px_set_blob_file - Définit le fichier depuis lequel les blobs seront lus
    • px_set_parameter - Définit un paramètre
    • px_set_tablename - Définit le nom de la table (obsolète)
    • px_set_targetencoding - Définit l'encodage pour les caractères des champs (obsolète)
    • px_set_value - Définit une valeur
    • px_timestamp2string - Convertit un timestamp en une chaîne de caractères
    • px_update_record - Met à jour les enregistrements dans une base de données Paradox
  • q
    • QuickHashIntHash::add - Ajoute une nouvelle entrée au hash
    • QuickHashIntHash::delete - Supprime une entrée du hash
    • QuickHashIntHash::exists - Vérifie qu'une clé existe dans le hash
    • QuickHashIntHash::get - Récupère la valeur correspondant à une clé dans le hash
    • QuickHashIntHash::getSize - Retourne le nombre d'éléments dans le hash
    • QuickHashIntHash::loadFromFile - Créer un hash depuis un fichier
    • QuickHashIntHash::loadFromString - Créer un hash depuis une chaine
    • QuickHashIntHash::saveToFile - Stocke un hash sur le disque
    • QuickHashIntHash::saveToString - Retourne une version sérialisée du hash
    • QuickHashIntHash::set - Met à jour une entrée dans le hash ou l'ajoute si elle n'existait pas
    • QuickHashIntHash::update - Met à jour une entrée dans le hash
    • QuickHashIntHash::__construct - Créer un nouvel objet QuickHashIntHash
    • QuickHashIntSet::add - Ajoute une nouvelle entrée à l'ensemble
    • QuickHashIntSet::delete - Supprime une entrée de l'ensemble
    • QuickHashIntSet::exists - Vérifie qu'une clé existe dans l'ensemble
    • QuickHashIntSet::getSize - Retourne le nombre d'éléments dans l'ensemble
    • QuickHashIntSet::loadFromFile - Créer un ensemble depuis un fichier
    • QuickHashIntSet::loadFromString - Créer un nouvel ensemble depuis une chaine
    • QuickHashIntSet::saveToFile - Stocke un ensemble sur le disque
    • QuickHashIntSet::saveToString - Retourne une version sérialisée de l'ensemble
    • QuickHashIntSet::__construct - Créer un nouvel objet QuickHashIntSet
    • QuickHashIntStringHash::add - Cette méthode ajoute une nouvelle entrée à la table de hachage
    • QuickHashIntStringHash::delete - Supprime une entrée de la table de hachage
    • QuickHashIntStringHash::exists - Vérifie si une clé existe dans la table de hachage
    • QuickHashIntStringHash::get - Récupère une valeur depuis la table de hachage par sa clé
    • QuickHashIntStringHash::getSize - Retourne le nombre d'éléments de la table de hachage
    • QuickHashIntStringHash::loadFromFile - Crée une table de hachage depuis un fichier
    • QuickHashIntStringHash::loadFromString - Crée une table de hachage depuis une chaîne
    • QuickHashIntStringHash::saveToFile - Stocke une table de hachage en mémoire sur le disque
    • QuickHashIntStringHash::saveToString - Retourne une version linéarisée de la table de hachage
    • QuickHashIntStringHash::set - Met à jour une entrée depuis la table de hachage avec une nouvelle valeur, ou l'ajoute si l'entrée n'existe pas
    • QuickHashIntStringHash::update - Met à jour une entrée de la table de hachage avec une nouvelle valeur
    • QuickHashIntStringHash::__construct - Crée un nouvel objet QuickHashIntStringHash
    • QuickHashStringIntHash::add - Ajoute une nouvelle entrée dans la table de hachage
    • QuickHashStringIntHash::delete - Supprime une entrée de la table de hachage
    • QuickHashStringIntHash::exists - Vérifie si une clé fait partie de la table de hachage
    • QuickHashStringIntHash::get - Récupère une valeur depuis la table de hachage par sa clé
    • QuickHashStringIntHash::getSize - Retourne le nombre d'éléments dans la table de hachage
    • QuickHashStringIntHash::loadFromFile - Crée une table de hachage depuis un fichier
    • QuickHashStringIntHash::loadFromString - Crée une table de hachage depuis une chaîne
    • QuickHashStringIntHash::saveToFile - Sauvegarde une table de hachage en mémoire sur le disque
    • QuickHashStringIntHash::saveToString - Retourne une version linéarisée de la table de hachage
    • QuickHashStringIntHash::set - Met à jour une entrée de la table de hachage avec une nouvelle valeur ou l'ajout si elle n'existe pas
    • QuickHashStringIntHash::update - Mets à jour une entrée de la table de hachage avec une nouvelle valeur
    • QuickHashStringIntHash::__construct - Crée un nouvel objet QuickHashStringIntHash
    • quoted_printable_decode - Convertit une chaîne quoted-printable en chaîne 8 bits
    • quoted_printable_encode - Convertit une chaîne 8 bits en une chaîne quoted-printable
    • quotemeta - Protège les métacaractères
  • r
    • rad2deg - Conversion de radians en degrés
    • radius_acct_open - Crée une ressource Radius pour les comptes
    • radius_add_server - Ajoute un serveur
    • radius_auth_open - Crée une ressource Radius pour l'identification
    • radius_close - Libère toutes les ressources Radius
    • radius_config - Demande à la bibliothèque de lire un fichier de configuration donné
    • radius_create_request - Crée une demande de compte ou d'identification
    • radius_cvt_addr - Convertit des données brutes en adresse IP
    • radius_cvt_int - Convertit des données brutes en entier
    • radius_cvt_string - Convertit des données brutes en chaîne de caractères
    • radius_demangle - Assèche des données
    • radius_demangle_mppe_key - Dérive les clés mppe depuis des données
    • radius_get_attr - Extrait un attribut
    • radius_get_tagged_attr_data - Extrait les données d'un attribut
    • radius_get_tagged_attr_tag - Extrait le tag depuis un attribut
    • radius_get_vendor_attr - Extrait un attribut spécifique au vendeur
    • radius_put_addr - Attache une adresse IP en tant qu'attribut
    • radius_put_attr - Attache un attribut binaire
    • radius_put_int - Attache un attribut entier
    • radius_put_string - Attache un attribut chaîne de caractères
    • radius_put_vendor_addr - Attache une adresse IP spécifique à un vendeur
    • radius_put_vendor_attr - Attache un attribut binaire à un vendeur spécifique
    • radius_put_vendor_int - Attache un attribut entier à un vendeur spécifique
    • radius_put_vendor_string - Attache un attribut sous la forme d'une chaîne à un vendeur spécifique
    • radius_request_authenticator - Retourne l'identifiant demandé
    • radius_salt_encrypt_attr - Crypte une valeur en utilisant un Salt
    • radius_send_request - Envoie la demande et attente une réponse
    • radius_server_secret - Retourne le secret partagé
    • radius_strerror - Retourne un message d'erreur
    • rand - Génère une valeur aléatoire
    • random_bytes - Generates cryptographically secure pseudo-random bytes
    • random_int - Generates cryptographically secure pseudo-random integers
    • range - Crée un tableau contenant un intervalle d'éléments
    • rar:// - RAR
    • RarArchive::close - Ferme une archive RAR et libère toutes les ressources
    • RarArchive::getComment - Récupère un commentaire depuis une archive RAR
    • RarArchive::getEntries - Récupère la liste complète depuis l'archive RAR
    • RarArchive::getEntry - Récupère une entrée depuis une archive RAR
    • RarArchive::isBroken - Test si une archive est corrompue (incomplète)
    • RarArchive::isSolid - Vérifie si l'archive RAR est solide
    • RarArchive::open - Ouvre une archive RAR
    • RarArchive::setAllowBroken - Autorise ou non l'ouverture d'archives corrompues
    • RarArchive::__toString - Récupère une représentation sous forme de texte
    • RarEntry::extract - Extrait une entrée d'une archive
    • RarEntry::getAttr - Récupère les attributs d'une entrée
    • RarEntry::getCrc - Récupère le CRC d'une entrée
    • RarEntry::getFileTime - Récupère la date de dernière modification d'une entrée
    • RarEntry::getHostOs - Récupère le code de l'hôte pour une entrée
    • RarEntry::getMethod - Récupère la méthode utilisée pour l'ajout d'une entrée
    • RarEntry::getName - Récupère le nom de l'entrée
    • RarEntry::getPackedSize - Récupère la taille compressée d'une entrée
    • RarEntry::getStream - Récupère le gestion de fichier pour une entrée
    • RarEntry::getUnpackedSize - Récupère la taille décompressée d'une entrée
    • RarEntry::getVersion - Récupère la version minimale du logiciel RAR à utiliser pour décompresser une entrée
    • RarEntry::isDirectory - Teste si l'entrée courante est un dossier
    • RarEntry::isEncrypted - Teste si une entrée est cryptée
    • RarEntry::__toString - Récupère une représentation sous forme de chaîne de caractères d'une entrée
    • RarException::isUsingExceptions - Vérifie si le gestionnaire d'erreur utilise les exceptions ou non
    • RarException::setUsingExceptions - Active ou désactive les exceptions dans le gestionnaire d'erreurs
    • rar_wrapper_cache_stats - Statistique pour le cache du gestionnaire URL
    • rawurldecode - Décode une chaîne URL
    • rawurlencode - Encode une chaîne en URL, selon la RFC 3986
    • readdir - Lit une entrée du dossier
    • readfile - Affiche un fichier
    • readgzfile - Lit tout le fichier compressé
    • readline - Lit une ligne
    • readline_add_history - Ajoute une ligne à l'historique
    • readline_callback_handler_install - Initialise l'interface et le terminal de rappel de readline, affiche le prompt et retourne immédiatement
    • readline_callback_handler_remove - Efface un gestionnaire de rappel readline
    • readline_callback_read_char - Lit un caractère et informe l'interface de rappel readline
    • readline_clear_history - Efface l'historique
    • readline_completion_function - Enregistre une fonction de complétion
    • readline_info - Lit ou modifie diverses variables internes de readline
    • readline_list_history - Liste l'historique
    • readline_on_new_line - Informe readline que le curseur est passé à une nouvelle ligne
    • readline_read_history - Lit l'historique
    • readline_redisplay - Demande à readline de refaire l'affichage
    • readline_write_history - Écrit dans l'historique
    • readlink - Renvoie le contenu d'un lien symbolique
    • read_exif_data - Alias de exif_read_data
    • realpath - Retourne le chemin canonique absolu
    • realpath_cache_get - Récupère les entrées du cache realpath
    • realpath_cache_size - Récupère la taille du cache realpath
    • recode - Alias de recode_string
    • recode_file - Recodage de fichier à fichier, en fonction de la demande
    • recode_string - Recode une chaîne en fonction de la requête
    • RecursiveArrayIterator::getChildren - Retourne un itérateur pour l'entrée courante
    • RecursiveArrayIterator::hasChildren - Vérifie si l'entrée courante est un tableau ou un objet
    • RecursiveCachingIterator::getChildren - Retourne le fils de l'itérateur interne comme un CachingRecursiveIterator
    • RecursiveCachingIterator::hasChildren - Vérifie si l'élément courant de l'itérateur interne a un fils
    • RecursiveCachingIterator::__construct - Constructeur
    • RecursiveCallbackFilterIterator::getChildren - Retourne l'itérateur fils interne contenu dans un RecursiveCallbackFilterIterator
    • RecursiveCallbackFilterIterator::hasChildren - Vérifie si l'élément courant de l'itérateur interne a un fils
    • RecursiveCallbackFilterIterator::__construct - Crée un objet RecursiveCallbackFilterIterator depuis une interface RecursiveIterator
    • RecursiveDirectoryIterator::getChildren - Retourne un itérateur pour l'entrée courante si c'est un dossier
    • RecursiveDirectoryIterator::getSubPath - Récupère le sous-chemin
    • RecursiveDirectoryIterator::getSubPathname - Récupère le sous-chemin et le nom du fichier
    • RecursiveDirectoryIterator::hasChildren - Vérifie si l'entrée courante est un dossier et n'est pas '.' ou '..'
    • RecursiveDirectoryIterator::key - Retourne le chemin et le nom de l'entrée courante du dossier
    • RecursiveDirectoryIterator::next - Se déplace vers la prochaine entrée
    • RecursiveDirectoryIterator::rewind - Revient à la position initiale dans le dossier
    • RecursiveDirectoryIterator::__construct - Construit un objet RecursiveDirectoryIterator
    • RecursiveFilterIterator::getChildren - Retourne l'itérateur interne contenu dans un objet RecursiveFilterIterator
    • RecursiveFilterIterator::hasChildren - Vérifie si un fils existe pour l'itérateur interne de l'élément courant
    • RecursiveFilterIterator::__construct - Crée un objet RecursiveFilterIterator depuis un objet RecursiveIterator
    • RecursiveIterator::getChildren - Récupère l'itérateur de l'entrée courante
    • RecursiveIterator::hasChildren - Vérifie si un itérateur peut être créé depuis l'entrée courante
    • RecursiveIteratorIterator::beginChildren - Commence un fils
    • RecursiveIteratorIterator::beginIteration - Commence une itération
    • RecursiveIteratorIterator::callGetChildren - Récupère un fils
    • RecursiveIteratorIterator::callHasChildren - Vérifie si un fils existe
    • RecursiveIteratorIterator::current - Accède à la valeur de l'élément courant
    • RecursiveIteratorIterator::endChildren - Termine un fils
    • RecursiveIteratorIterator::endIteration - Termine un itérateur
    • RecursiveIteratorIterator::getDepth - Récupère la profondeur courante de la récursivité de l'itérateur
    • RecursiveIteratorIterator::getInnerIterator - Récupère l'itérateur interne
    • RecursiveIteratorIterator::getMaxDepth - Récupère la profondeur maximale
    • RecursiveIteratorIterator::getSubIterator - L'itérateur secondaire actif courant
    • RecursiveIteratorIterator::key - Accède à la clé courante
    • RecursiveIteratorIterator::next - Déplace l'itérateur à la position suivante
    • RecursiveIteratorIterator::nextElement - Élément suivant
    • RecursiveIteratorIterator::rewind - Replace l'itérateur au début
    • RecursiveIteratorIterator::setMaxDepth - Définit la profondeur maximale
    • RecursiveIteratorIterator::valid - Vérifie si la position courante est valide
    • RecursiveIteratorIterator::__construct - Construit un objet RecursiveIteratorIterator
    • RecursiveRegexIterator::getChildren - Retourne un itérateur depuis l'entrée courante
    • RecursiveRegexIterator::hasChildren - Vérifie si un itérateur peut être obtenu depuis l'entrée courante
    • RecursiveRegexIterator::__construct - Crée un nouveau RecursiveRegexIterator
    • RecursiveTreeIterator::beginChildren - Début d'un fils
    • RecursiveTreeIterator::beginIteration - Début d'une itération
    • RecursiveTreeIterator::callGetChildren - Récupère un fils
    • RecursiveTreeIterator::callHasChildren - Vérifie la présence d'un fils
    • RecursiveTreeIterator::current - Récupère l'élément courant
    • RecursiveTreeIterator::endChildren - Fin d'un fils
    • RecursiveTreeIterator::endIteration - Fin de l'itération
    • RecursiveTreeIterator::getEntry - Récupère l'entrée courante
    • RecursiveTreeIterator::getPostfix - Récupère le suffixe
    • RecursiveTreeIterator::getPrefix - Récupère le préfixe
    • RecursiveTreeIterator::key - Récupère la clé de l'élément courant
    • RecursiveTreeIterator::next - Se déplace sur l'élément suivant
    • RecursiveTreeIterator::nextElement - Prochain élément
    • RecursiveTreeIterator::rewind - Réinitialise la position de l'itérateur
    • RecursiveTreeIterator::setPrefixPart - Définit une partie du préfixe
    • RecursiveTreeIterator::valid - Vérifie la validité
    • RecursiveTreeIterator::__construct - Construit un nouvel objet RecursiveTreeIterator
    • Reflection::export - Exportes
    • Reflection::getModifierNames - Récupère le nom d'un modificateur
    • ReflectionClass::export - Exporte une classe
    • ReflectionClass::getConstant - Récupère une constante
    • ReflectionClass::getConstants - Récupère les constantes
    • ReflectionClass::getConstructor - Récupère le constructeur d'une classe
    • ReflectionClass::getDefaultProperties - Récupère les propriétés par défaut
    • ReflectionClass::getDocComment - Récupère les commentaires
    • ReflectionClass::getEndLine - Récupère la fin d'une ligne
    • ReflectionClass::getExtension - Récupère un objet ReflectionExtension pour l'extension définissant la classe
    • ReflectionClass::getExtensionName - Récupère le nom de l'extension qui définit la classe
    • ReflectionClass::getFileName - Récupère le nom du fichier déclarant la classe considérée
    • ReflectionClass::getInterfaceNames - Récupère les noms des interfaces
    • ReflectionClass::getInterfaces - Récupère les interfaces
    • ReflectionClass::getMethod - Récupère un objet ReflectionMethod pour une méthode d'une classe
    • ReflectionClass::getMethods - Récupère un tableau de méthodes
    • ReflectionClass::getModifiers - Récupère les modificateurs
    • ReflectionClass::getName - Récupère le nom de la classe
    • ReflectionClass::getNamespaceName - Récupère l'espace de noms
    • ReflectionClass::getParentClass - Récupère la classe parente
    • ReflectionClass::getProperties - Récupère les propriétés
    • ReflectionClass::getProperty - Récupère une ReflectionProperty pour une propriété d'une classe
    • ReflectionClass::getShortName - Récupère le nom court d'une classe
    • ReflectionClass::getStartLine - Récupère le numéro de ligne de départ
    • ReflectionClass::getStaticProperties - Récupère les propriétés statiques
    • ReflectionClass::getStaticPropertyValue - Récupère la valeur d'une propriété statique
    • ReflectionClass::getTraitAliases - Retourne un tableau des alias du trait
    • ReflectionClass::getTraitNames - Retourne un tableau de noms des traits utilisés par cette classe
    • ReflectionClass::getTraits - Retourne un tableau des traits utilisés par cette classe
    • ReflectionClass::hasConstant - Vérifie si une constante est définie
    • ReflectionClass::hasMethod - Vérifie si une méthode est définie
    • ReflectionClass::hasProperty - Vérifie si une propriété est définie
    • ReflectionClass::implementsInterface - Vérifie si une classe implémente une interface
    • ReflectionClass::inNamespace - Vérifie si une classe est définie dans un espace de noms
    • ReflectionClass::isAbstract - Vérifie si une classe est abstraite
    • ReflectionClass::isAnonymous - Checks if class is anonymous
    • ReflectionClass::isCloneable - Renseigne à propos de la propriété de duplication de la classe
    • ReflectionClass::isFinal - Vérifie si une classe est finale
    • ReflectionClass::isInstance - Vérifie si une classe est une instance d'une autre classe
    • ReflectionClass::isInstantiable - Vérifie si une classe est instanciable
    • ReflectionClass::isInterface - Vérifie si une classe est une interface
    • ReflectionClass::isInternal - Vérifie si une classe est définie comme interne par une extension
    • ReflectionClass::isIterateable - Vérifie si la classe est itérable
    • ReflectionClass::isSubclassOf - Vérifie si la classe est une sous-classe
    • ReflectionClass::isTrait - Renseigne s'il s'agit d'un trait
    • ReflectionClass::isUserDefined - Vérifie si une classe a été définie dans l'espace utilisateur
    • ReflectionClass::newInstance - Créer une nouvelle instance de la classe en utilisant les arguments fournis
    • ReflectionClass::newInstanceArgs - Créer une nouvelle instance en utilisant les arguments fournis
    • ReflectionClass::newInstanceWithoutConstructor - Crée une nouvelle instance de la classe sans invoquer le constructeur
    • ReflectionClass::setStaticPropertyValue - Définit la valeur d'une propriété statiques
    • ReflectionClass::__construct - Construit une ReflectionClass
    • ReflectionClass::__toString - Crée une représentation textuelle de l'objet
    • ReflectionExtension::export - Exportation
    • ReflectionExtension::getClasses - Récupère les classes
    • ReflectionExtension::getClassNames - Récupère les noms des classes
    • ReflectionExtension::getConstants - Récupère les constantes
    • ReflectionExtension::getDependencies - Récupère les dépendances
    • ReflectionExtension::getFunctions - Récupère les fonctions d'une extension
    • ReflectionExtension::getINIEntries - Récupère les entrées ini de l'extension
    • ReflectionExtension::getName - Récupère le nom de l'extension
    • ReflectionExtension::getVersion - Récupère la version de l'extension
    • ReflectionExtension::info - Affiche des informations sur l'extension
    • ReflectionExtension::isPersistent - Vérifie si l'extension est persistante
    • ReflectionExtension::isTemporary - Vérifie si l'extension est temporaire
    • ReflectionExtension::__clone - Clonage
    • ReflectionExtension::__construct - Construit un nouvel objet ReflectionExtension
    • ReflectionExtension::__toString - Récupère une représentation textuelle
    • ReflectionFunction::export - Exporte une fonction
    • ReflectionFunction::getClosure - Retourne une fermeture créée dynamiquement par la fonction
    • ReflectionFunction::invoke - Invoque une fonction
    • ReflectionFunction::invokeArgs - Invoque les arguments d'une fonction
    • ReflectionFunction::isDisabled - Vérifie si une fonction est désactivée
    • ReflectionFunction::__construct - Construit un nouvel objet ReflectionFunction
    • ReflectionFunction::__toString - Récupère une représentation textuelle
    • ReflectionFunctionAbstract::getClosureScopeClass - Retourne le contexte associé à la closure
    • ReflectionFunctionAbstract::getClosureThis - Retourne le pointeur lié à la fermeture
    • ReflectionFunctionAbstract::getDocComment - Récupère un commentaire
    • ReflectionFunctionAbstract::getEndLine - Récupère le numéro de la dernière ligne
    • ReflectionFunctionAbstract::getExtension - Récupère les informations d'une extension
    • ReflectionFunctionAbstract::getExtensionName - Récupère le nom de l'extension
    • ReflectionFunctionAbstract::getFileName - Récupère le nom du fichier
    • ReflectionFunctionAbstract::getName - Récupère le nom d'une fonction
    • ReflectionFunctionAbstract::getNamespaceName - Récupère l'espace de noms
    • ReflectionFunctionAbstract::getNumberOfParameters - Récupère le nombre de paramètres
    • ReflectionFunctionAbstract::getNumberOfRequiredParameters - Récupère le nombre de paramètres requis
    • ReflectionFunctionAbstract::getParameters - Récupère les paramètres
    • ReflectionFunctionAbstract::getReturnType - Gets the specified return type of a function
    • ReflectionFunctionAbstract::getShortName - Récupère le nom court d'une fonction
    • ReflectionFunctionAbstract::getStartLine - Récupère le numéro de ligne de départ
    • ReflectionFunctionAbstract::getStaticVariables - Récupère les variables statiques
    • ReflectionFunctionAbstract::hasReturnType - Checks if the function has a specified return type
    • ReflectionFunctionAbstract::inNamespace - Vérifie si une fonction est dans un espace de noms
    • ReflectionFunctionAbstract::isClosure - Vérifie si c'est une fermeture
    • ReflectionFunctionAbstract::isDeprecated - Vérifie si la fonction est obsolète
    • ReflectionFunctionAbstract::isGenerator - Vérifie si la fonction est un générateur
    • ReflectionFunctionAbstract::isInternal - Vérifie si la fonction est une fonction interne
    • ReflectionFunctionAbstract::isUserDefined - Vérifie si la fonction est définie dans l'espace utilisateur
    • ReflectionFunctionAbstract::isVariadic - Vérifie si la fonction est variadique
    • ReflectionFunctionAbstract::returnsReference - Vérifie si la fonction retourne une référence
    • ReflectionFunctionAbstract::__clone - Clone une fonction
    • ReflectionFunctionAbstract::__toString - Récupère une représentation textuelle
    • ReflectionGenerator::getExecutingFile - Gets the file name of the currently executing generator
    • ReflectionGenerator::getExecutingGenerator - Gets the executing Generator object
    • ReflectionGenerator::getExecutingLine - Gets the currently executing line of the generator
    • ReflectionGenerator::getFunction - Gets the function name of the generator
    • ReflectionGenerator::getThis - Gets the $this value of the generator
    • ReflectionGenerator::getTrace - Gets the trace of the executing generator
    • ReflectionGenerator::__construct - Constructs a ReflectionGenerator object
    • ReflectionMethod::export - Exportation d'une méthode de reflection
    • ReflectionMethod::getClosure - Retourne une fermeture créée dynamiquement pour la méthode
    • ReflectionMethod::getDeclaringClass - Récupère la déclaration de la classe de la méthode réléchie
    • ReflectionMethod::getModifiers - Récupère les modificateurs de la méthode
    • ReflectionMethod::getPrototype - Récupère le prototype de la méthode (s'il existe)
    • ReflectionMethod::invoke - Invoque
    • ReflectionMethod::invokeArgs - Invoque les arguments
    • ReflectionMethod::isAbstract - Vérifie si la méthode est abstraite
    • ReflectionMethod::isConstructor - Vérifie si la méthode est un constructeur
    • ReflectionMethod::isDestructor - Vérifie si la méthode est un destructeur
    • ReflectionMethod::isFinal - Vérifie si la méthode est finale
    • ReflectionMethod::isPrivate - Vérifie si la méthode est privée
    • ReflectionMethod::isProtected - Vérifie si la méthode est protégée
    • ReflectionMethod::isPublic - Vérifie si la méthode est publique
    • ReflectionMethod::isStatic - Vérifie si la méthode est statique
    • ReflectionMethod::setAccessible - Définit l'accessibilité de la méthode
    • ReflectionMethod::__construct - Construit un nouvel objet ReflectionMethod
    • ReflectionMethod::__toString - Retourne une représentation textuelle de la méthode
    • ReflectionObject::export - Exportation
    • ReflectionObject::__construct - Construit un nouvel objet ReflectionObject
    • ReflectionParameter::allowsNull - Vérifie si la valeur NULL est autorisée comme valeur du paramètre
    • ReflectionParameter::canBePassedByValue - Vérifie si le paramètre peut être passé par valeur
    • ReflectionParameter::export - Exportation
    • ReflectionParameter::getClass - Récupère la classe de typage d'objets
    • ReflectionParameter::getDeclaringClass - Récupère la classe déclarante
    • ReflectionParameter::getDeclaringFunction - Récupère la fonction déclarante
    • ReflectionParameter::getDefaultValue - Récupère la valeur par défaut du paramètre
    • ReflectionParameter::getDefaultValueConstantName - Retourne le nom de la constante de la valeur par défaut si la valeur est une constante, NULL sinon
    • ReflectionParameter::getName - Récupère le nom du paramètre
    • ReflectionParameter::getPosition - Récupère la position d'un paramètre
    • ReflectionParameter::getType - Gets a parameter's type
    • ReflectionParameter::hasType - Checks if parameter has a type
    • ReflectionParameter::isArray - Vérifie si le paramètre attend un tableau
    • ReflectionParameter::isCallable - Vérifie si le paramètre est de type callable
    • ReflectionParameter::isDefaultValueAvailable - Vérifie si une valeur par défaut est disponible pour le paramètre
    • ReflectionParameter::isDefaultValueConstant - Vérifie si la valeur par défaut du paramètre est une constante
    • ReflectionParameter::isOptional - Vérifie si le paramètre est optionnel
    • ReflectionParameter::isPassedByReference - Vérifie si le paramètre est passé par référence
    • ReflectionParameter::isVariadic - Vérifie si le paramètre est variadique
    • ReflectionParameter::__clone - Clonage
    • ReflectionParameter::__construct - Constructeur
    • ReflectionParameter::__toString - Récupère une représentation textuelle
    • ReflectionProperty::export - Exporte
    • ReflectionProperty::getDeclaringClass - Récupère la classe déclarante
    • ReflectionProperty::getDocComment - Récupère un commentaire
    • ReflectionProperty::getModifiers - Récupère les modificateurs
    • ReflectionProperty::getName - Récupère le nom de la proriété
    • ReflectionProperty::getValue - Récupère la valeur de la propriété
    • ReflectionProperty::isDefault - Vérifie si la propriété est celle par défaut
    • ReflectionProperty::isPrivate - Vérifie si la propriété est privée
    • ReflectionProperty::isProtected - Vérifie si la propriété est protégée
    • ReflectionProperty::isPublic - Vérifie si la propriété est publique
    • ReflectionProperty::isStatic - Vérifie si la propriété est statique
    • ReflectionProperty::setAccessible - Définit l'accessibilité de la propriété
    • ReflectionProperty::setValue - Définit la valeur de la propriété
    • ReflectionProperty::__clone - Clonage
    • ReflectionProperty::__construct - Construit un nouvel objet ReflectionProperty
    • ReflectionProperty::__toString - Récupère une représentation textuelle
    • ReflectionType::allowsNull - Checks if null is allowed
    • ReflectionType::isBuiltin - Checks if it is a built-in type
    • ReflectionType::__toString - To string
    • ReflectionZendExtension::export - Export
    • ReflectionZendExtension::getAuthor - Récupère l'auteur
    • ReflectionZendExtension::getCopyright - Récupère le copyright
    • ReflectionZendExtension::getName - Récupère le nom
    • ReflectionZendExtension::getURL - Récupère l'URL
    • ReflectionZendExtension::getVersion - Récupère la version
    • ReflectionZendExtension::__clone - Gestionnaire de clonage
    • ReflectionZendExtension::__construct - Constructeur
    • ReflectionZendExtension::__toString - Gestionnaire de conversion en chaîne de caractères
    • Reflector::export - Export
    • Reflector::__toString - Conversion en chaîne de caractères
    • RegexIterator::accept - Récupère le statut d'acceptation
    • RegexIterator::getFlags - Récupère les drapeaux
    • RegexIterator::getMode - Retourne le mode de l'opération
    • RegexIterator::getPregFlags - Retourne les drapeaux de l'expression rationnelle
    • RegexIterator::getRegex - Retourne l'expression rationnelle courante
    • RegexIterator::setFlags - Définit les drapeaux
    • RegexIterator::setMode - Définit le mode de l'opération
    • RegexIterator::setPregFlags - Définit les drapeaux de l'expression rationnelle
    • RegexIterator::__construct - Crée un nouvel objet RegexIterator
    • register_shutdown_function - Enregistre une fonction de rappel pour exécution à l'extinction
    • register_tick_function - Enregistre une fonction exécutée à chaque tick
    • rename - Renomme un fichier ou un dossier
    • rename_function - Renomme une fonction intégrée dans la table des fonctions globales
    • reset - Remet le pointeur interne de tableau au début
    • ResourceBundle::count - Récupère le nombre d'éléments dans le faisceau
    • ResourceBundle::create - Crée une ressource représentant un faisceau
    • ResourceBundle::get - Récupère les données depuis le faisceau
    • ResourceBundle::getErrorCode - Récupère le dernier code erreur du faisceau
    • ResourceBundle::getErrorMessage - Récupère le dernier message d'erreur depuis le faisceau
    • ResourceBundle::getLocales - Récupère les locales supportées
    • restore_error_handler - Réactive l'ancienne fonction de gestion des erreurs
    • restore_exception_handler - Réactive l'ancienne fonction de gestion d'exceptions
    • restore_include_path - Restaure la valeur de la directive de configuration include_path
    • rewind - Replace le pointeur de fichier au début
    • rewinddir - Retourne à la première entrée du dossier
    • rmdir - Efface un dossier
    • round - Arrondit un nombre à virgule flottante
    • rpm_close - Ferme un fichier RPM
    • rpm_get_tag - Récupération d'un tag de l'en-tête d'un fichier RPM
    • rpm_is_valid - Teste la validité du nom du fichier d'un fichier RPM
    • rpm_open - Ouvre un fichier RPM
    • rpm_version - Retourne une chaîne de caractères représentant la version courante de l'extension rpmreader
    • RRDCreator::addArchive - Ajoute des valeurs de données RRA - archive pour chaque source de données
    • RRDCreator::addDataSource - Ajoute une définition de source de données pour la base de données RRD
    • RRDCreator::save - Sauvegarde la base de données RRD dans un fichier
    • RRDCreator::__construct - Crée une nouvelle instance RRDCreator
    • rrdc_disconnect - Ferme toutes les connexions vers le daemon de mise en cache rrd
    • RRDGraph::save - Sauvegarde le résultat d'une requête dans une image
    • RRDGraph::saveVerbose - Sauvegarde une requête de base de données RRD dans l'image et retourne les informations verbeuses sur le graphique généré.
    • RRDGraph::setOptions - Définit les options d'exportation d'un graphique RRD
    • RRDGraph::__construct - Crée une nouvelle instance RRDGraph
    • RRDUpdater::update - Met à jour un fichier de base de données RRD
    • RRDUpdater::__construct - Crée une nouvelle instance RRDUpdater
    • rrd_create - Crée un fichier de base de données rrd
    • rrd_error - Récupère le message de la dernière erreur survenue
    • rrd_fetch - Récupère les données pour le graphique
    • rrd_first - Récupère le timestamp du premier échantillon depuis le fichier RRD
    • rrd_graph - Crée une image depuis des données
    • rrd_info - Récupère les informations sur un fichier RRD
    • rrd_last - Récupère le timestamp unix du premier échantillon
    • rrd_lastupdate - Récupère les informations sur les dernières données mises à jour
    • rrd_restore - Restaure le fichier RRD depuis une sauvegarde XML
    • rrd_tune - Affine des options d'en-tête d'un fichier de base de données RRD
    • rrd_update - Met à jour une base de données RRD
    • rrd_version - Récupère les informations de version de la bibliothèque rrdtool
    • rrd_xport - Exporte les informations d'une base de données
    • rsort - Trie un tableau en ordre inverse
    • rtrim - Supprime les espaces (ou d'autres caractères) de fin de chaîne
    • runkit_class_adopt - Convertit une classe de base à une classe héritée, ajoute une méthode ancestrale lorsque approprié
    • runkit_class_emancipate - Convertit une classe héritée à une classe de base, supprime toute méthode pour qui la portée est ancestrale
    • runkit_constant_add - Similaire à define(), mais permet aussi la définition dans définitions de classe
    • runkit_constant_redefine - Redéfinit une constante déjà définie
    • runkit_constant_remove - Enlève/Supprime une constante déjà définie
    • runkit_function_add - Ajoute une nouvelle fonction, similaire à create_function
    • runkit_function_copy - Copie une fonction vers un nom de fonction nouveau
    • runkit_function_redefine - Remplace une définition de fonction avec une nouvelle implémentation
    • runkit_function_remove - Enlève une définition de fonction
    • runkit_function_rename - Change le nom d'une fonction
    • runkit_import - Traite un fichier PHP important fonctions et définitions de classes, écrasement où applicable
    • runkit_lint - Vérifie la syntaxe PHP de code PHP spécifié
    • runkit_lint_file - Vérifie la syntaxe PHP d'un fichier spécifié
    • runkit_method_add - Ajoute dynamiquement une nouvelle méthode à une classe donnée
    • runkit_method_copy - Copie une méthode d'une classe à une autre
    • runkit_method_redefine - Change dynamiquement le code de la méthode donnée
    • runkit_method_remove - Supprime dynamiquement la méthode donnée
    • runkit_method_rename - Change dynamiquement le nom de la méthode donnée
    • runkit_return_value_used - Détermine si la valeur de retour des fonctions courantes sera utilisée
    • Runkit_Sandbox - Classe Runkit Sandbox -- Machine Virtuelle PHP
    • runkit_sandbox_output_handler - Spécifie une fonction à capturer et/ou traiter la sortie à partir d'un runkit sandbox
    • Runkit_Sandbox_Parent - Classe Anti-Sandbox Runkit
    • runkit_superglobals - Retourne un tableau indexé numériquement des variables superglobales enregistrées
  • s
    • SAMConnection::commit - Valide le travail courant
    • SAMConnection::connect - Établie une connexion à un serveur de messagerie
    • SAMConnection::disconnect - Déconnexion d'un serveur de messagerie
    • SAMConnection::errno - Récupère le numéro de la dernière erreur issue d'une opération SAM
    • SAMConnection::error - Récupère la description de la dernière erreur d'une opération SAM
    • SAMConnection::isConnected - Vérifie si une connexion est établie avec un serveur de messagerie
    • SAMConnection::peek - Lit un message depuis la file d'attente sans l'effacer
    • SAMConnection::peekAll - Lit un ou plusieurs messages depuis la file d'attente sans les effacer
    • SAMConnection::receive - Reçoit un message depuis une file d'attente ou d'une souscription
    • SAMConnection::remove - Efface un message depuis la file d'attente
    • SAMConnection::rollback - Annulation d'un travail
    • SAMConnection::send - Envoie un message à une file d'attente ou le publie sur un sujet
    • SAMConnection::setDebug - Active ou non l'affiche des informations de déboguage
    • SAMConnection::subscribe - Crée une souscription à un sujet spécifique
    • SAMConnection::unsubscribe - Annule une souscription à un sujet spécifique
    • SAMConnection::__construct - Crée une nouvelle connexion à un serveur de messagerie
    • SAMMessage::body - Définit le corps d'un message
    • SAMMessage::header - Les propriétés d'en-tête d'un message
    • SAMMessage::__construct - Crée un nouvel objet de message
    • SCA::createDataObject - Crée un SDO
    • SCA::getService - Obtient un proxy pour un service
    • scandir - Liste les fichiers et dossiers dans un dossier
    • SCA_LocalProxy::createDataObject - Crée un SDO
    • SCA_SoapProxy::createDataObject - Crée un SDO
    • SDO_DAS_ChangeSummary::beginLogging - Commence la journalisation
    • SDO_DAS_ChangeSummary::endLogging - Termine la journalisation
    • SDO_DAS_ChangeSummary::getChangedDataObjects - Récupère une liste de d'objets de données qui ont été changés
    • SDO_DAS_ChangeSummary::getChangeType - Récupère le type de changement qui a été fait à l'objet de données
    • SDO_DAS_ChangeSummary::getOldContainer - Récupère un ancien conteneur d'objet de données pour un objet de données supprimé
    • SDO_DAS_ChangeSummary::getOldValues - Récupère une liste des anciennes valeurs pour un objet de données
    • SDO_DAS_ChangeSummary::isLogging - Vérifie pour voir si la journalisation des changements est activée
    • SDO_DAS_DataFactory::addPropertyToType - Ajoute une nouvelle propriété à une définition de type
    • SDO_DAS_DataFactory::addType - Ajoute un nouveau type à un modèle
    • SDO_DAS_DataFactory::getDataFactory - Récupère l'instance de classe de données
    • SDO_DAS_DataObject::getChangeSummary - Récupère le résumé de changement pour un objet de données
    • SDO_DAS_Relational::applyChanges - Applique les changements effectués au graphique de données à la base de données
    • SDO_DAS_Relational::createRootDataObject - Retourne un objet racine spécial d'un graphique de données vide. Utilisé lors de la création d'un graphique de données à partir de zéro
    • SDO_DAS_Relational::executePreparedQuery - Exécute une requête SQL passée comme requête préparée, avec une liste de valeurs à substituer pour les paramètres fictifs, et retourne les résultats comme un graphique de données normalisé.
    • SDO_DAS_Relational::executeQuery - Exécute une requête SQL donnée à une base de données relationnelle et retourne les résultats comme graphique de données normalisé.
    • SDO_DAS_Relational::__construct - Construit une instance de DAS Relationnel
    • SDO_DAS_Setting::getListIndex - Récupère la liste des index pour une propriété de valeurs multiples changée
    • SDO_DAS_Setting::getPropertyIndex - Récupère l'index de propriété pour la propriété changée
    • SDO_DAS_Setting::getPropertyName - Récupère le nom de la propriété pour la propriété changée
    • SDO_DAS_Setting::getValue - Récupère l'ancienne valeur pour la propriété changée
    • SDO_DAS_Setting::isSet - Vérifie pour voir si la propriété était fixée avant d'être modifiée
    • SDO_DAS_XML::addTypes - Pour charger un second ou subséquent fichier schéma à un objet SDO_DAS_XML
    • SDO_DAS_XML::create - Pour créer un objet SDO_DAS_XML pour un fichier de schéma donné
    • SDO_DAS_XML::createDataObject - Crée un SDO_DataObject pour un espace de nom URI et un nom de type donnés
    • SDO_DAS_XML::createDocument - Crée un objet de document XML à partir de zéro, sans avoir besoin de charger un document à partir d'un fichier ou d'une chaîne de caractères
    • SDO_DAS_XML::loadFile - Retourne un objet SDO_DAS_XML_Document pour un chemin donné d'une instance de document xml
    • SDO_DAS_XML::loadString - Retourne un SDO_DAS_XML_Document pour une chaîne de caractères d'instance xml donnée
    • SDO_DAS_XML::saveFile - Sauvegarde l'objet SDO_DAS_XML_Document vers un fichier
    • SDO_DAS_XML::saveString - Sauvegarde l'objet SDO_DAS_XML_Document vers une chaîne de caractères
    • SDO_DAS_XML_Document::getRootDataObject - Retourne la racine de SDO_DataObject
    • SDO_DAS_XML_Document::getRootElementName - Retourne le nom de l'élément racine
    • SDO_DAS_XML_Document::getRootElementURI - Retourne la chaîne de caractères URI de l'élément racine
    • SDO_DAS_XML_Document::setEncoding - Fixe l'encodage à l'aide d'une chaîne de caractères
    • SDO_DAS_XML_Document::setXMLDeclaration - Fixe la déclaration xml
    • SDO_DAS_XML_Document::setXMLVersion - Fixe la version xml à l'aide d'une chaîne de caractères
    • SDO_DataFactory::create - Crée un SDO_DataObject
    • SDO_DataObject::clear - Détruit les propriétés d'un SDO_DataObject
    • SDO_DataObject::createDataObject - Crée un enfant SDO_DataObject
    • SDO_DataObject::getContainer - Récupère un conteneur de l'objet de données
    • SDO_DataObject::getSequence - Récupère la séquence pour un objet de données
    • SDO_DataObject::getTypeName - Retourne le nom du type d'un objet de données
    • SDO_DataObject::getTypeNamespaceURI - Retourne l'espace de nom URI du type d'un objet de données
    • SDO_Exception::getCause - Récupère la cause d'une exception
    • SDO_List::insert - Insère dans une liste
    • SDO_Model_Property::getContainingType - Récupère le SDO_Model_Type qui contient cette propriété
    • SDO_Model_Property::getDefault - Récupère la valeur par défaut pour la propriété
    • SDO_Model_Property::getName - Récupère le nom de SDO_Model_Property
    • SDO_Model_Property::getType - Récupère le SDO_Model_Type de la propriété
    • SDO_Model_Property::isContainment - Vérifie pour voir si la propriété définit une relation contenue
    • SDO_Model_Property::isMany - Vérifie pour voir si la propriété est de valeurs multiples
    • SDO_Model_ReflectionDataObject::export - Récupère une chaîne de caractères décrivant le SDO_DataObject
    • SDO_Model_ReflectionDataObject::getContainmentProperty - Récupère la propriété qui définit la relation contenue de l'objet de données
    • SDO_Model_ReflectionDataObject::getInstanceProperties - Récupère les propriétés de l'instance de SDO_DataObject
    • SDO_Model_ReflectionDataObject::getType - Récupère le SDO_Model_Type pour SDO_DataObject
    • SDO_Model_ReflectionDataObject::__construct - Construit un SDO_Model_ReflectionDataObject
    • SDO_Model_Type::getBaseType - Récupère le type de base pour le type
    • SDO_Model_Type::getName - Récupère le nom du type
    • SDO_Model_Type::getNamespaceURI - Récupère l'espace de nom URI pour le type
    • SDO_Model_Type::getProperties - Récupère les objets SDO_Model_Property définis pour le type
    • SDO_Model_Type::getProperty - Récupère un SDO_Model_Property du type
    • SDO_Model_Type::isAbstractType - Vérifie pour voir si ce SDO_Model_Type est un objet de type abstrait
    • SDO_Model_Type::isDataType - Vérifie pour voir si le SDO_Model_Type est un type de données primitive
    • SDO_Model_Type::isInstance - Vérifie si un SDO_DataObject est une instance de ce SDO_Model_Type
    • SDO_Model_Type::isOpenType - Vérifie pour voir si le type est un type ouvert
    • SDO_Model_Type::isSequencedType - Vérifie pour voir si le type est une séquence
    • SDO_Sequence::getProperty - Retourne la propriété pour l'index de séquence spécifié
    • SDO_Sequence::insert - Ajoute dans une séquence
    • SDO_Sequence::move - Déplace un item à une autre position de la séquence
    • SeekableIterator::seek - Recherche une position
    • sem_acquire - Réserve un sémaphore
    • sem_get - Retourne un identifiant de sémaphore
    • sem_release - Libère un sémaphore
    • sem_remove - Détruit un sémaphore
    • Serializable::serialize - Représentation linéaire de l'objet
    • Serializable::unserialize - Construit un objet
    • serialize - Génère une représentation stockable d'une valeur
    • SessionHandler::close - Ferme la session
    • SessionHandler::create_sid - Retourne un nouvel ID de session
    • SessionHandler::destroy - Détruit une session
    • SessionHandler::gc - Nettoie les anciennes sessions
    • SessionHandler::open - Initialise une session
    • SessionHandler::read - Lit les données de session
    • SessionHandler::write - Ecrit des données dans la session
    • SessionHandlerInterface::close - Ferme la session
    • SessionHandlerInterface::destroy - Détruit une session
    • SessionHandlerInterface::gc - Nettoie les vieilles sessions
    • SessionHandlerInterface::open - Initialise la session
    • SessionHandlerInterface::read - Lit les données de session
    • SessionHandlerInterface::write - Ecrit les données de session
    • session_abort - Abandonne les changements sur le tableau de session et termine la session
    • session_cache_expire - Retourne la configuration actuelle du délai d'expiration du cache
    • session_cache_limiter - Lit et/ou modifie le limiteur de cache de session
    • session_commit - Alias de session_write_close
    • session_create_id - Create new session id
    • session_decode - Décode les données encodées de session
    • session_destroy - Détruit une session
    • session_encode - Encode les données de session
    • session_gc - Perform session data garbage collection
    • session_get_cookie_params - Lit la configuration du cookie de session
    • session_id - Lit et/ou modifie l'identifiant courant de session
    • session_is_registered - Vérifie si une variable est enregistrée dans la session
    • session_module_name - Lit et/ou modifie le module de session courant
    • session_name - Lit et/ou modifie le nom de la session
    • session_pgsql_add_error - Incrémente le nombre d'erreurs et fixe le dernier message d'erreur
    • session_pgsql_get_error - Retourne le nombre d'erreurs et le dernier message d'erreur
    • session_pgsql_get_field - Récupère la valeur de champ spécial
    • session_pgsql_reset - Remet la connexion à la session des serveurs de base de données
    • session_pgsql_set_field - Fixe la valeur d'un champ spécial
    • session_pgsql_status - Récupère le statut de l'identifiant de sauvegarde courant
    • session_regenerate_id - Remplace l'identifiant de session courant par un nouveau
    • session_register - Enregistre une variable globale dans une session
    • session_register_shutdown - Fonction de fermeture de session
    • session_reset - Réinitialise le tableau de session avec les valeurs originales
    • session_save_path - Lit et/ou modifie le chemin de sauvegarde des sessions
    • session_set_cookie_params - Modifie les paramètres du cookie de session
    • session_set_save_handler - Configure les fonctions de stockage de sessions
    • session_start - Démarre une nouvelle session ou reprend une session existante
    • session_status - Détermine le statut de la session courante
    • session_unregister - Supprime une variable de la session
    • session_unset - Détruit toutes les variables d'une session
    • session_write_close - Écrit les données de session et ferme la session
    • setcookie - Envoie un cookie
    • setlocale - Modifie les informations de localisation
    • setproctitle - Définit le titre du processus
    • setrawcookie - Envoie un cookie sans encoder sa valeur en URL
    • setthreadtitle - Définit le titre du thread
    • settype - Affecte un type à une variable
    • set_error_handler - Spécifie une fonction utilisateur comme gestionnaire d'erreurs
    • set_exception_handler - Définit une fonction utilisateur de gestion d'exceptions
    • set_file_buffer - Alias de stream_set_write_buffer
    • set_include_path - Modifie la valeur de la directive de configuration include_path
    • set_magic_quotes_runtime - Active/désactive l'option magic_quotes_runtime
    • set_socket_blocking - Alias de stream_set_blocking
    • set_time_limit - Fixe le temps maximum d'exécution d'un script
    • sha1 - Calcule le sha1 d'une chaîne de caractères
    • sha1_file - Calcule le sha1 d'un fichier
    • shell_exec - Exécute une commande via le Shell et retourne le résultat sous forme de chaîne
    • shmop_close - Ferme un bloc de mémoire partagée
    • shmop_delete - Détruit un bloc de mémoire partagée
    • shmop_open - Crée ou ouvre un bloc de mémoire partagée
    • shmop_read - Lit des données à partir d'un bloc
    • shmop_size - Lire la taille du bloc de mémoire partagée
    • shmop_write - Écrire dans un bloc de mémoire partagée
    • shm_attach - Crée ou ouvre un segment de mémoire partagée
    • shm_detach - Libère un segment de mémoire partagée
    • shm_get_var - Lit une variable dans la mémoire partagée
    • shm_has_var - Vérifie si une variable existe en mémoire partagée
    • shm_put_var - Insère ou modifie une variable de la mémoire partagée
    • shm_remove - Supprime un segment de mémoire partagée sous Unix
    • shm_remove_var - Efface une variable de la mémoire partagée
    • show_source - Alias de highlight_file
    • shuffle - Mélange les éléments d'un tableau
    • similar_text - Calcule la similarité de deux chaînes
    • SimpleXMLElement::addAttribute - Ajoute un attribut à l'élément SimpleXML
    • SimpleXMLElement::addChild - Ajoute un élément enfant au noeud XML
    • SimpleXMLElement::asXML - Retourne une chaîne XML basée sur un élément SimpleXML
    • SimpleXMLElement::attributes - Identifie les attributs d'un élément
    • SimpleXMLElement::children - Cherche les fils d'un noeud donné
    • SimpleXMLElement::count - Compte le nombre de fils pour un élément
    • SimpleXMLElement::getDocNamespaces - Retourne les espaces de noms déclarés dans un document
    • SimpleXMLElement::getName - Récupère le nom d'un élément XML
    • SimpleXMLElement::getNamespaces - Retourne les espaces de noms utilisés dans un document
    • SimpleXMLElement::registerXPathNamespace - Crée un contexte préfixe/ns pour la prochaine requête XPath
    • SimpleXMLElement::saveXML - Alias de SimpleXMLElement::asXML
    • SimpleXMLElement::xpath - Exécute une requête Xpath sur des données XML
    • SimpleXMLElement::__construct - Crée un nouvel objet SimpleXMLElement
    • SimpleXMLElement::__toString - Retourne le contenu sous forme de chaine
    • SimpleXMLIterator::current - Retourne l'entrée courante
    • SimpleXMLIterator::getChildren - Retourne un itérateur pour l'entrée courante, si c'est un objet SimpleXML
    • SimpleXMLIterator::hasChildren - Indique si l'entrée courante de SimpleXML est un objet
    • SimpleXMLIterator::key - Retourne la clé courante
    • SimpleXMLIterator::next - Se déplace sur l'entrée SimpleXML suivante
    • SimpleXMLIterator::rewind - Replace le pointeur SimpleXML au début
    • SimpleXMLIterator::valid - Vérifie si une ressource SimpleXML contient d'autres entrées
    • simplexml_import_dom - Construit un objet SimpleXMLElement à partir d'un objet DOM
    • simplexml_load_file - Convertit un fichier XML en objet
    • simplexml_load_string - Convertit une chaîne XML en objet
    • sin - Sinus
    • sinh - Sinus hyperbolique
    • sizeof - Alias de count
    • sleep - Arrête l'exécution durant quelques secondes
    • snmp2_get - Récupère un objet SNMP
    • snmp2_getnext - Récupère l'objet SNMP qui suit immédiatement l'identifiant de l'objet fourni
    • snmp2_real_walk - Retourne tous les objets incluant les identifiants de leurs objets respectifs
    • snmp2_set - Définit la valeur d'un objet SNMP
    • snmp2_walk - Récupère tous les objets SNMP depuis un agent
    • snmp3_get - Récupère un objet SNMP
    • snmp3_getnext - Récupère l'objet SNMP qui suit immédiatement l'objet fourni
    • snmp3_real_walk - Retourne tous les objets incluant les identifiants de leurs objets respectifs
    • snmp3_set - Définit la valeur d'un objet SNMP
    • snmp3_walk - Récupère tous les objets SNMP depuis un agent
    • SNMP::close - Ferme une session SNMP
    • SNMP::get - Récupère un objet SNMP
    • SNMP::getErrno - Récupère le dernier code erreur
    • SNMP::getError - Récupère le dernier message d'erreur
    • SNMP::getnext - Récupère un objet SNMP qui suit l'identifiant d'objet fourni
    • SNMP::set - Définitl a valeur d'un objet SNMP
    • SNMP::setSecurity - Configure les paramètres de sécurité des sessions SNMPv3
    • SNMP::walk - Récupère le sous-objet d'un objet SNMP
    • SNMP::__construct - Crée une instance SNMP représentant la session vers l'agent distant SNMP
    • snmpget - Reçoit un objet SNMP
    • snmpgetnext - Récupère un objet SNMP qui suit immédiatement l'objet fourni
    • snmprealwalk - Retourne tous les objets, y compris les identifiants respectifs inclus dans l'objet
    • snmpset - Définit la valeur d'un objet SNMP
    • snmpwalk - Reçoit tous les objets SNMP d'un agent
    • snmpwalkoid - Demande d'informations d'arbre sur une entité du réseau
    • snmp_get_quick_print - Lit la valeur courante de l'option quick_print de la bibliothèque UCD
    • snmp_get_valueretrieval - Retourne la méthode avec laquelle les valeurs SNMP seront retournées
    • snmp_read_mib - Lit et analyse un fichier MIB dans l'arbre actif MIB
    • snmp_set_enum_print - Retourne toutes les valeurs qui sont des énumérations avec leur valeur d'énumération au lieu de l'entier
    • snmp_set_oid_numeric_print - Définit le format de sortie de l'OID
    • snmp_set_oid_output_format - Définit le format de sortie OID
    • snmp_set_quick_print - Écrit la valeur courante de l'option quick_print de la bibliothèque UCD SNMP
    • snmp_set_valueretrieval - Spécifie la méthode avec laquelle les valeurs SNMP seront retournées
    • SoapClient::SoapClient - Constructeur SoapClient
    • SoapClient::__call - Appelle une fonction SOAP (obsolète)
    • SoapClient::__construct - Constructeur SoapClient
    • SoapClient::__doRequest - Exécute une requête SOAP
    • SoapClient::__getFunctions - Retourne une liste de fonctions SOAP publiées
    • SoapClient::__getLastRequest - Retourne la dernière requête SOAP
    • SoapClient::__getLastRequestHeaders - Retourne les en-têtes de la dernière requête SOAP
    • SoapClient::__getLastResponse - Retourne la dernière réponse SOAP
    • SoapClient::__getLastResponseHeaders - Retourne les en-têtes de la dernière réponse SOAP
    • SoapClient::__getTypes - Retourne une liste des types SOAP
    • SoapClient::__setCookie - Définit le cookie qui sera envoyé avec la requête SOAP
    • SoapClient::__setLocation - Configure l'URL du service Web à utiliser
    • SoapClient::__setSoapHeaders - Ajoute un en-tête SOAP pour les requêtes suivantes
    • SoapClient::__soapCall - Appelle une fonction SOAP
    • SoapFault::SoapFault - SoapFault constructor
    • SoapFault::__construct - Constructeur SoapFault
    • SoapFault::__toString - Produit une représentation chaîne d'un objet SoapFault
    • SoapHeader::SoapHeader - SoapHeader constructor
    • SoapHeader::__construct - Constructeur SoapHeader
    • SoapParam::SoapParam - Constructeur SoapParam
    • SoapParam::__construct - Constructeur SoapParam
    • SoapServer::addFunction - Ajoute une ou plusieurs fonctions qui vont gérer les requêtes SOAP
    • SoapServer::addSoapHeader - Ajoute un en-tête SOAP à une réponse
    • SoapServer::fault - Emet une erreur SoapServer
    • SoapServer::getFunctions - Retourne la liste des fonctions définies
    • SoapServer::handle - Traite une requête SOAP
    • SoapServer::setClass - Configure la classe qui sera utilisée pour gérer les requêtes SOAP
    • SoapServer::setObject - Configure l'objet qui sera utilisé pour gérer les requêtes SOAP
    • SoapServer::setPersistence - Active le mode persistant de SoapServer
    • SoapServer::SoapServer - Constructeur SoapServer
    • SoapServer::__construct - Constructeur SoapServer
    • SoapVar::SoapVar - Constructeur SoapVar
    • SoapVar::__construct - Constructeur SoapVar
    • socket_accept - Accepte une connexion sur un socket
    • socket_bind - Lie un nom à un socket
    • socket_clear_error - Efface toutes les erreurs précédemment générées par un socket
    • socket_close - Ferme un socket
    • socket_cmsg_space - Calcule la taille du buffer
    • socket_connect - Crée une connexion sur un socket
    • socket_create - Crée un socket
    • socket_create_listen - Ouvre un socket sur un port pour accepter les connexions
    • socket_create_pair - Crée une paire de sockets identiques et les stocke dans un tableau
    • socket_getopt - Alias de socket_get_option
    • socket_getpeername - Interroge l'autre extrémité de la communication
    • socket_getsockname - Interroge le socket local
    • socket_get_option - Lit les options du socket
    • socket_get_status - Alias de stream_get_meta_data
    • socket_import_stream - Importe un flux
    • socket_last_error - Lit la dernière erreur générée par un socket
    • socket_listen - Attend une connexion sur un socket
    • socket_read - Lit des données d'un socket
    • socket_recv - Reçoit des données d'un socket connecté
    • socket_recvfrom - Reçoit des données d'un socket, connecté ou pas
    • socket_recvmsg - Lit un message
    • socket_select - Exécute l'appel système select() sur un tableau de sockets avec une durée d'expiration
    • socket_send - Envoie des données à un socket connecté
    • socket_sendmsg - Envoi un message
    • socket_sendto - Envoie un message à un socket, qu'il soit connecté ou pas
    • socket_setopt - Alias de socket_set_option
    • socket_set_block - Met le socket en mode bloquant
    • socket_set_blocking - Alias de stream_set_blocking
    • socket_set_nonblock - Sélectionne le mode non bloquant d'un pointeur de fichier
    • socket_set_option - Modifie les options de socket
    • socket_set_timeout - Alias de stream_set_timeout
    • socket_shutdown - Éteint un socket en lecture et/ou écriture
    • socket_strerror - Retourne une chaîne décrivant un message d'erreur
    • socket_write - Écrit dans un socket
    • SolrClient::addDocument - Ajoute un document à l'index
    • SolrClient::addDocuments - Ajoute une collection d'instances SolrInputDocument à l'index
    • SolrClient::commit - Commit tous les ajouts/modifications effectués sur l'index
    • SolrClient::deleteById - Effacement par Id
    • SolrClient::deleteByIds - Effacement par Ids
    • SolrClient::deleteByQueries - Efface tous les documents correspondant à des requêtes
    • SolrClient::deleteByQuery - Efface tous les documents correspondant à une requête
    • SolrClient::getById - Get Document By Id. Utilizes Solr Realtime Get (RTG).
    • SolrClient::getByIds - Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).
    • SolrClient::getDebug - Récupère les données de débogage de la dernière tentative de connexion
    • SolrClient::getOptions - Récupère les options clientes définies en interne
    • SolrClient::optimize - Défragmente l'index
    • SolrClient::ping - Vérifie si le serveur Solr est disponible
    • SolrClient::query - Envoi une requête au serveur
    • SolrClient::request - Envoi une requête brute de mise à jour
    • SolrClient::rollback - Annule les ajouts/effacements effectués sur l'index depuis le dernier commit
    • SolrClient::setResponseWriter - Définit le gestionnaire à utiliser pour préparer la réponse depuis Solr
    • SolrClient::setServlet - Modifie le type d'un servlet en une nouvelle valeur
    • SolrClient::system - Retrieve Solr Server information
    • SolrClient::threads - Vérifie le statut des threads
    • SolrClient::__construct - Constructeur de l'objet SolrClient
    • SolrClient::__destruct - Destructeur pour SolrClient
    • SolrClientException::getInternalInfo - Retourne des informations internes sur l'endroit d'où est lancée l'exception
    • SolrCollapseFunction::getField - Returns the field that is being collapsed on.
    • SolrCollapseFunction::getHint - Returns collapse hint
    • SolrCollapseFunction::getMax - Returns max parameter
    • SolrCollapseFunction::getMin - Returns min parameter
    • SolrCollapseFunction::getNullPolicy - Returns null policy
    • SolrCollapseFunction::getSize - Returns size parameter
    • SolrCollapseFunction::setField - Sets the field to collapse on
    • SolrCollapseFunction::setHint - Sets collapse hint
    • SolrCollapseFunction::setMax - Selects the group heads by the max value of a numeric field or function query.
    • SolrCollapseFunction::setMin - Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::setNullPolicy - Sets the NULL Policy
    • SolrCollapseFunction::setSize - Sets the initial size of the collapse data structures when collapsing on a numeric field only.
    • SolrCollapseFunction::__construct - Constructor
    • SolrCollapseFunction::__toString - Returns a string representing the constructed collapse function
    • SolrDisMaxQuery::addBigramPhraseField - Adds a Phrase Bigram Field (pf2 parameter)
    • SolrDisMaxQuery::addBoostQuery - Adds a boost query field with value and optional boost (bq parameter)
    • SolrDisMaxQuery::addPhraseField - Adds a Phrase Field (pf parameter)
    • SolrDisMaxQuery::addQueryField - Add a query field with optional boost (qf parameter)
    • SolrDisMaxQuery::addTrigramPhraseField - Adds a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::addUserField - Adds a field to User Fields Parameter (uf)
    • SolrDisMaxQuery::removeBigramPhraseField - Removes phrase bigram field (pf2 parameter)
    • SolrDisMaxQuery::removeBoostQuery - Removes a boost query partial by field name (bq)
    • SolrDisMaxQuery::removePhraseField - Removes a Phrase Field (pf parameter)
    • SolrDisMaxQuery::removeQueryField - Removes a Query Field (qf parameter)
    • SolrDisMaxQuery::removeTrigramPhraseField - Removes a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::removeUserField - Removes a field from The User Fields Parameter (uf)
    • SolrDisMaxQuery::setBigramPhraseFields - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setBigramPhraseSlop - Sets Bigram Phrase Slop (ps2 parameter)
    • SolrDisMaxQuery::setBoostFunction - Sets a Boost Function (bf parameter).
    • SolrDisMaxQuery::setBoostQuery - Directly Sets Boost Query Parameter (bq)
    • SolrDisMaxQuery::setMinimumMatch - Set Minimum "Should" Match (mm)
    • SolrDisMaxQuery::setPhraseFields - Sets Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setPhraseSlop - Sets the default slop on phrase queries (ps parameter)
    • SolrDisMaxQuery::setQueryAlt - Set Query Alternate (q.alt parameter)
    • SolrDisMaxQuery::setQueryPhraseSlop - specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
    • SolrDisMaxQuery::setTieBreaker - Sets Tie Breaker parameter (tie parameter)
    • SolrDisMaxQuery::setTrigramPhraseFields - Directly Sets Trigram Phrase Fields (pf3 parameter)
    • SolrDisMaxQuery::setTrigramPhraseSlop - Sets Trigram Phrase Slop (ps3 parameter)
    • SolrDisMaxQuery::setUserFields - Sets User Fields parameter (uf)
    • SolrDisMaxQuery::useDisMaxQueryParser - Switch QueryParser to be DisMax Query Parser
    • SolrDisMaxQuery::useEDisMaxQueryParser - Switch QueryParser to be EDisMax
    • SolrDisMaxQuery::__construct - Class Constructor
    • SolrDocument::addField - Ajoute un champ au document
    • SolrDocument::clear - Efface tous les champs du document
    • SolrDocument::current - Récupère le champ courant
    • SolrDocument::deleteField - Efface un champ du document
    • SolrDocument::fieldExists - Vérifie si un champ existe dans le document
    • SolrDocument::getChildDocuments - Returns an array of child documents (SolrDocument)
    • SolrDocument::getChildDocumentsCount - Returns the number of child documents
    • SolrDocument::getField - Récupère un champ par son nom
    • SolrDocument::getFieldCount - Récupère le nombre de champs du document
    • SolrDocument::getFieldNames - Récupère un tableau de noms de champs du document
    • SolrDocument::getInputDocument - Retourne un objet SolrInputDocument équivalent à l'objet
    • SolrDocument::hasChildDocuments - Checks whether the document has any child documents
    • SolrDocument::key - Récupère la clé courante
    • SolrDocument::merge - Fusionne la source à l'objet SolrDocument courant
    • SolrDocument::next - Déplace le pointeur interne sur le champ suivant
    • SolrDocument::offsetExists - Vérifie si un champ particulier existe
    • SolrDocument::offsetGet - Récupère un champ
    • SolrDocument::offsetSet - Ajoute un champ au document
    • SolrDocument::offsetUnset - Efface un champ
    • SolrDocument::reset - Alias de SolrDocument::clear()
    • SolrDocument::rewind - Réinitialise le pointeur interne au début
    • SolrDocument::serialize - Utilisé pour une linéarisation personnalisée
    • SolrDocument::sort - Trie les champs du document
    • SolrDocument::toArray - Récupère un tableau représentant le document
    • SolrDocument::unserialize - Linéarisation personnalisée d'objets SolrDocument
    • SolrDocument::valid - Vérifie si la position courant interne est toujours valide
    • SolrDocument::__clone - Crée une copie de l'objet SolrDocument
    • SolrDocument::__construct - Constructeur
    • SolrDocument::__destruct - Destructeur
    • SolrDocument::__get - Accède à un champ comme une propriété
    • SolrDocument::__isset - Vérifie si un champ existe
    • SolrDocument::__set - Ajoute un champ au document
    • SolrDocument::__unset - Efface un champ du document
    • SolrDocumentField::__construct - Constructeur
    • SolrDocumentField::__destruct - Destructeur
    • SolrException::getInternalInfo - Récupère des informations internes lorsqu'une exception a été lancée
    • SolrGenericResponse::__construct - Constructeur
    • SolrGenericResponse::__destruct - Destructeur
    • SolrIllegalArgumentException::getInternalInfo - Retourne des informations sur l'endroit d'où l'exception a été émise
    • SolrIllegalOperationException::getInternalInfo - Récupère des informations internes lorsqu'une exception a été lancée
    • SolrInputDocument::addChildDocument - Adds a child document for block indexing
    • SolrInputDocument::addChildDocuments - Adds an array of child documents
    • SolrInputDocument::addField - Ajoute un champ au document
    • SolrInputDocument::clear - Réinitialise le document d'entrée
    • SolrInputDocument::deleteField - Efface un champ d'un document
    • SolrInputDocument::fieldExists - Vérifie si un champ existe
    • SolrInputDocument::getBoost - Récupère la valeur courante du boost pour le document
    • SolrInputDocument::getChildDocuments - Returns an array of child documents (SolrInputDocument)
    • SolrInputDocument::getChildDocumentsCount - Returns the number of child documents
    • SolrInputDocument::getField - Récupère un champ par son nom
    • SolrInputDocument::getFieldBoost - Récupère la valeur du boost pour un champ donné
    • SolrInputDocument::getFieldCount - Retourne le nombre de champs du document
    • SolrInputDocument::getFieldNames - Retourne un tableau contenant tous les champs du document
    • SolrInputDocument::hasChildDocuments - Returns true if the document has any child documents
    • SolrInputDocument::merge - Fusionne un document d'entrée dans un autre
    • SolrInputDocument::reset - Alias de SolrInputDocument::clear
    • SolrInputDocument::setBoost - Définit la valeur de boost pour le document
    • SolrInputDocument::setFieldBoost - Définit la valeur de boost pour un champ
    • SolrInputDocument::sort - Tri les champs du document
    • SolrInputDocument::toArray - Retourne un représentation sous forme de tableau du document d'entrée
    • SolrInputDocument::__clone - Crée une copie de l'objet SolrDocument
    • SolrInputDocument::__construct - Constructeur
    • SolrInputDocument::__destruct - Destructeur
    • SolrModifiableParams::__construct - Constructeur
    • SolrModifiableParams::__destruct - Destructeur
    • SolrObject::getPropertyNames - Récupère un tableau contenant les noms de toutes les propriétés
    • SolrObject::offsetExists - Vérifie si une propriété existe
    • SolrObject::offsetGet - Récupère une propriété
    • SolrObject::offsetSet - Définit la valeur d'une propriété
    • SolrObject::offsetUnset - Supprime la valeur de la propriété
    • SolrObject::__construct - Crée un objet Solr
    • SolrObject::__destruct - Destructeur
    • SolrParams::add - Alias de SolrParams::addParam
    • SolrParams::addParam - Ajoute un paramètre à l'objet
    • SolrParams::get - Alias de SolrParams::getParam
    • SolrParams::getParam - Retourne la valeur d'un paramètre
    • SolrParams::getParams - Retourne un tableau de paramètres non encodés URL
    • SolrParams::getPreparedParams - Retourne un tableau de paramètres encodés URL
    • SolrParams::serialize - Utilisé pour une linéarisation personnalisée
    • SolrParams::set - Alias de SolrParams::setParam
    • SolrParams::setParam - Définit un paramètre à une valeur spécifique
    • SolrParams::toString - Retourne tous les paramètres de l'objet
    • SolrParams::unserialize - Utilisé pour la linéarisation personnalisée
    • SolrPingResponse::getResponse - Récupère la réponse du serveur
    • SolrPingResponse::__construct - Constructeur
    • SolrPingResponse::__destruct - Destructeur
    • SolrQuery::addExpandFilterQuery - Overrides main filter query, determines which documents to include in the main group.
    • SolrQuery::addExpandSortField - Orders the documents within the expanded groups (expand.sort parameter).
    • SolrQuery::addFacetDateField - Lie un facet.date
    • SolrQuery::addFacetDateOther - Ajoute une autre paramètre facet.date.other
    • SolrQuery::addFacetField - Ajoute un autre champ à la facette
    • SolrQuery::addFacetQuery - Ajoute une requête de facette
    • SolrQuery::addField - Spécifie quel champ doit retourner le résultat
    • SolrQuery::addFilterQuery - Spécifie un filtre de requête
    • SolrQuery::addGroupField - Add a field to be used to group results.
    • SolrQuery::addGroupFunction - Allows grouping results based on the unique values of a function query (group.func parameter).
    • SolrQuery::addGroupQuery - Allows grouping of documents that match the given query.
    • SolrQuery::addGroupSortField - Add a group sort field (group.sort parameter).
    • SolrQuery::addHighlightField - Lie un hl.fl
    • SolrQuery::addMltField - Spécifie un champ à utiliser pour les similitudes
    • SolrQuery::addMltQueryField - Lie un mlt.qf
    • SolrQuery::addSortField - Utilisé pour contrôler le tri du résultat
    • SolrQuery::addStatsFacet - Récupère un sous résultat pour y trouver des valeurs d'une facette donnée
    • SolrQuery::addStatsField - Lie un paramètre stats.field
    • SolrQuery::collapse - Collapses the result set to a single document per group
    • SolrQuery::getExpand - Returns true if group expanding is enabled
    • SolrQuery::getExpandFilterQueries - Returns the expand filter queries
    • SolrQuery::getExpandQuery - Returns the expand query expand.q parameter
    • SolrQuery::getExpandRows - Returns The number of rows to display in each group (expand.rows)
    • SolrQuery::getExpandSortFields - Returns an array of fields
    • SolrQuery::getFacet - Retourne la valeur du paramètre de facette
    • SolrQuery::getFacetDateEnd - Retourne la valeur du paramètre facet.date.end
    • SolrQuery::getFacetDateFields - Retourne tous les champs facet.date
    • SolrQuery::getFacetDateGap - Récupère la valeur du paramètre facet.date.gap
    • SolrQuery::getFacetDateHardEnd - Récupère la valeur du paramètre facet.date.hardend
    • SolrQuery::getFacetDateOther - Récupère la valeur du paramètre facet.date.other
    • SolrQuery::getFacetDateStart - Récupère la limite inférieure du premier intervalle de la date pour toutes les facettes de date pour ce champ
    • SolrQuery::getFacetFields - Récupère toutes les facettes des champs
    • SolrQuery::getFacetLimit - Récupère le nombre maximal de contraintes qui peut être retourné pour les facettes des champs
    • SolrQuery::getFacetMethod - Récupère la valeur du paramètre facet.method
    • SolrQuery::getFacetMinCount - Récupère le nombre minimal de facettes des champs qui doivent être incluses dans la réponse
    • SolrQuery::getFacetMissing - Récupère l'état courant du paramètre facet.missing
    • SolrQuery::getFacetOffset - Récupère la position dans la liste des contraintes à utiliser pour la pagination
    • SolrQuery::getFacetPrefix - Récupère le préfixe de la facette
    • SolrQuery::getFacetQueries - Récupère toutes les facettes des requêtes
    • SolrQuery::getFacetSort - Retourne le type de tri de la facette
    • SolrQuery::getFields - Récupère la liste des champs qui seront retournés dans la réponse
    • SolrQuery::getFilterQueries - Récupère un tableau de filtres de requêtes
    • SolrQuery::getGroup - Returns true if grouping is enabled
    • SolrQuery::getGroupCachePercent - Returns group cache percent value
    • SolrQuery::getGroupFacet - Returns the group.facet parameter value
    • SolrQuery::getGroupFields - Returns group fields (group.field parameter values)
    • SolrQuery::getGroupFormat - Returns the group.format value
    • SolrQuery::getGroupFunctions - Returns group functions (group.func parameter values)
    • SolrQuery::getGroupLimit - Returns the group.limit value
    • SolrQuery::getGroupMain - Returns the group.main value
    • SolrQuery::getGroupNGroups - Returns the group.ngroups value
    • SolrQuery::getGroupOffset - Returns the group.offset value
    • SolrQuery::getGroupQueries - Returns all the group.query parameter values
    • SolrQuery::getGroupSortFields - Returns the group.sort value
    • SolrQuery::getGroupTruncate - Returns the group.truncate value
    • SolrQuery::getHighlight - Récupère l'état du paramètre h1
    • SolrQuery::getHighlightAlternateField - Récupère le champ mis en évidence à utiliser comme champ par défaut ou comme champ de sauvegarde
    • SolrQuery::getHighlightFields - Récupère tous les champs pour lesquels Solr doit mettre en évidence un extrait
    • SolrQuery::getHighlightFormatter - Récupère le formatage utilisé pour mettre en évidence la sortie
    • SolrQuery::getHighlightFragmenter - Récupère le générateur d'extrait de texte pour la mise en évidence
    • SolrQuery::getHighlightFragsize - Retourne le nombre de caractères des fragments à considérer pour la mise en évidence
    • SolrQuery::getHighlightHighlightMultiTerm - Retourne si l'on doit activer la mise en évidence pour les intervalles/jokers/flous/préfixes des requêtes
    • SolrQuery::getHighlightMaxAlternateFieldLength - Retourne le nombre maximal de caractères du champ à retourner
    • SolrQuery::getHighlightMaxAnalyzedChars - Retourne le nombre maximal de caractères du document dans lequel les extraits seront cherchés
    • SolrQuery::getHighlightMergeContiguous - Retourne si l'on doit rassembler les fragments contigus en un seul fragment
    • SolrQuery::getHighlightRegexMaxAnalyzedChars - Retourne le nombre maximal de caractères depuis un champ lors de l'utilisation d'une regex
    • SolrQuery::getHighlightRegexPattern - Récupère l'expression rationnelle utilisée pour la fragmentation
    • SolrQuery::getHighlightRegexSlop - Récupère le facteur de déviation depuis la taille du fragment idéal
    • SolrQuery::getHighlightRequireFieldMatch - Retourne si le champ ne doit être mis en évidence que si la requête correspond à un champ en particulier
    • SolrQuery::getHighlightSimplePost - Récupère le texte qui doit apparaître après le terme mise en évidence
    • SolrQuery::getHighlightSimplePre - Retourne le texte qui doit apparaître avant le terme mise en évidence
    • SolrQuery::getHighlightSnippets - Récupère le nombre maximal d'extraits mis en évidence à générer par champ
    • SolrQuery::getHighlightUsePhraseHighlighter - Récupère l'état du paramètre hl.usePhraseHighlighter
    • SolrQuery::getMlt - Retourne si les résultats MoreLikeThis doivent être activés
    • SolrQuery::getMltBoost - Retourne si la requête doit être améliorée en utilisant la pertinence des termes
    • SolrQuery::getMltCount - Récupère le nombre de documents similaires à retourner pour chaque résultat
    • SolrQuery::getMltFields - Récupère tous les champs à utiliser pour la similarité
    • SolrQuery::getMltMaxNumQueryTerms - Retourne le nombre maximal de termes de requête qui peuvent être inclus lors de la génération d'une requête
    • SolrQuery::getMltMaxNumTokens - Retourne le nombre maximal de jokers à analyser dans chaque champ du document
    • SolrQuery::getMltMaxWordLength - Retourne la longueur minimale des mots en deçà de laquelle ils seront ignorés
    • SolrQuery::getMltMinDocFrequency - Retourne le seuil de fréquence d'apparition des mots
    • SolrQuery::getMltMinTermFrequency - Retourne la fréquence en deçà duquel les termes doivent être ignorés dans le document source
    • SolrQuery::getMltMinWordLength - Retourne la longueur minimum d'un mot en deça duquel il sera ignoré
    • SolrQuery::getMltQueryFields - Retourne les champs de la requête ainsi que leurs boosts
    • SolrQuery::getQuery - Retourne la requête principale
    • SolrQuery::getRows - Retourne le nombre maximal de documents
    • SolrQuery::getSortFields - Retourne tous les champs de tri
    • SolrQuery::getStart - Retourne la position dans le jeu complet de résultats
    • SolrQuery::getStats - Vérifie si les statistiques sont actives ou non
    • SolrQuery::getStatsFacets - Retourne toutes les statistiques définies
    • SolrQuery::getStatsFields - Retourne les statistiques des champs
    • SolrQuery::getTerms - Vérifie si le TermsComponent est activé ou non
    • SolrQuery::getTermsField - Récupère le champ depuis lequel les termes sont récupérés
    • SolrQuery::getTermsIncludeLowerBound - Vérifie si l'on doit inclure ou non la limite inférieure dans le jeu de résultats
    • SolrQuery::getTermsIncludeUpperBound - Vérifie si l'on doit inclure ou non la limite supérieure dans le jeu de résultats
    • SolrQuery::getTermsLimit - Retourne le nombre maximal de termes que Solr peut retourner
    • SolrQuery::getTermsLowerBound - Retourne le terme sur lequel on doit commencer
    • SolrQuery::getTermsMaxCount - Retourne la fréquence maximale des documents
    • SolrQuery::getTermsMinCount - Retourne la fréquence minimale des documents
    • SolrQuery::getTermsPrefix - Retourne le préfixe du terme
    • SolrQuery::getTermsReturnRaw - Si l'on doit retourner ou non les caractères brutes
    • SolrQuery::getTermsSort - Retourne un entier indiquant le nombre de termes stockés
    • SolrQuery::getTermsUpperBound - Retourne le terme sur lequel on doit s'arrêter
    • SolrQuery::getTimeAllowed - Retourne le délai d'exécution autorisé pour une requête
    • SolrQuery::removeExpandFilterQuery - Removes an expand filter query
    • SolrQuery::removeExpandSortField - Removes an expand sort field from the expand.sort parameter.
    • SolrQuery::removeFacetDateField - Supprime un champ date
    • SolrQuery::removeFacetDateOther - Supprime un paramètre facet.date.other
    • SolrQuery::removeFacetField - Supprime un paramètre facet.date
    • SolrQuery::removeFacetQuery - Supprime un paramètre facet.query
    • SolrQuery::removeField - Efface un champ depuis la liste des champs
    • SolrQuery::removeFilterQuery - Supprime un filtre de requête
    • SolrQuery::removeHighlightField - Supprime un des champs utilisés pour la mise en évidence
    • SolrQuery::removeMltField - Supprime un des champs moreLikeThis
    • SolrQuery::removeMltQueryField - Supprime un des champs moreLikeThis de la requête
    • SolrQuery::removeSortField - Supprime un champ de tri
    • SolrQuery::removeStatsFacet - Supprime un paramètre stats.facet
    • SolrQuery::removeStatsField - Supprime un paramètre stats.field
    • SolrQuery::setEchoHandler - Bascule le paramètre echoHandler
    • SolrQuery::setEchoParams - Détermine les paramètres à inclure dans la réponse
    • SolrQuery::setExpand - Enables/Disables the Expand Component
    • SolrQuery::setExpandQuery - Sets the expand.q parameter
    • SolrQuery::setExpandRows - Sets the number of rows to display in each group (expand.rows). Server Default 5
    • SolrQuery::setExplainOther - Définit le paramètre de requête explainOther
    • SolrQuery::setFacet - Lie un paramètre facet. Active ou désactive les facet
    • SolrQuery::setFacetDateEnd - Lie un facet.date.end
    • SolrQuery::setFacetDateGap - Lie un facet.date.gap
    • SolrQuery::setFacetDateHardEnd - Lie un facet.date.hardend
    • SolrQuery::setFacetDateStart - Lie un facet.date.start
    • SolrQuery::setFacetEnumCacheMinDefaultFrequency - Définit la fréquence minimale du document utilisée pour déterminer le comptage des termes
    • SolrQuery::setFacetLimit - Lie un facet.limit
    • SolrQuery::setFacetMethod - Spécifie le type d'algorithme à utiliser pour un champ facet
    • SolrQuery::setFacetMinCount - Lie un facet.mincount
    • SolrQuery::setFacetMissing - Lie un facet.missing
    • SolrQuery::setFacetOffset - Définit la position dans la liste des contraintes pour la pagination
    • SolrQuery::setFacetPrefix - Spécifie un préfixe utilisé pour limiter les termes
    • SolrQuery::setFacetSort - Détermine le tri des facet
    • SolrQuery::setGroup - Enable/Disable result grouping (group parameter)
    • SolrQuery::setGroupCachePercent - Enables caching for result grouping
    • SolrQuery::setGroupFacet - Sets group.facet parameter
    • SolrQuery::setGroupFormat - Sets the group format, result structure (group.format parameter).
    • SolrQuery::setGroupLimit - Specifies the number of results to return for each group. The server default value is 1.
    • SolrQuery::setGroupMain - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
    • SolrQuery::setGroupNGroups - If true, Solr includes the number of groups that have matched the query in the results.
    • SolrQuery::setGroupOffset - Sets the group.offset parameter.
    • SolrQuery::setGroupTruncate - If true, facet counts are based on the most relevant document of each group matching the query.
    • SolrQuery::setHighlight - Active ou désactive la coloration
    • SolrQuery::setHighlightAlternateField - Spécifie le champ de sauvegarde à utiliser
    • SolrQuery::setHighlightFormatter - Spécifie un formateur pour la sortie colorisée
    • SolrQuery::setHighlightFragmenter - Définit un générateur d'extraits de texte pour le texte colorisé
    • SolrQuery::setHighlightFragsize - La taille du fragment à considérer pour la coloration
    • SolrQuery::setHighlightHighlightMultiTerm - Utilise SpanScorer pour coloriser les termes d'une phrase
    • SolrQuery::setHighlightMaxAlternateFieldLength - Définit le nombre maximal de caractères du champ à retourner
    • SolrQuery::setHighlightMaxAnalyzedChars - Spécifie le nombre de caractères dans un document pour y chercher des extraits correspondants
    • SolrQuery::setHighlightMergeContiguous - Si l'on doit rassembler les fragments proches dans un seul fragment
    • SolrQuery::setHighlightRegexMaxAnalyzedChars - Spécifie le nombre maximal de caractères à analyser
    • SolrQuery::setHighlightRegexPattern - Spécifie l'expression rationnelle pour la fragmentation
    • SolrQuery::setHighlightRegexSlop - Définit le facteur par lequel le fragmenteur regex peut dévier de la taille idéale du fragment
    • SolrQuery::setHighlightRequireFieldMatch - Champ correspondant requis lors de la colorisation
    • SolrQuery::setHighlightSimplePost - Définit le texte qui doit apparaître après un terme colorisé
    • SolrQuery::setHighlightSimplePre - Définit le texte qui doit apparaître avant un terme colorisé
    • SolrQuery::setHighlightSnippets - Définit le nombre maximal d'extraits à coloriser par champ
    • SolrQuery::setHighlightUsePhraseHighlighter - Si l'on doit coloriser les termes d'une phrase uniquement si ils apparaissent dans la requête
    • SolrQuery::setMlt - Active ou désactive moreLikeThis
    • SolrQuery::setMltBoost - Si la requête doit être stimulée par la pertinence des termes
    • SolrQuery::setMltCount - Définit le nombre de documents similaires à retourner à chaque résultat
    • SolrQuery::setMltMaxNumQueryTerms - Définit le nombre maximal de termes de requête à inclure
    • SolrQuery::setMltMaxNumTokens - Spécifie le nombre maximal de motifs à analyser
    • SolrQuery::setMltMaxWordLength - Définit la longueur maximale d'un mot
    • SolrQuery::setMltMinDocFrequency - Définit la fréquence mltMinDoc
    • SolrQuery::setMltMinTermFrequency - Définit la fréquence en dessous de laquelle les termes seront ignorés dans le document source
    • SolrQuery::setMltMinWordLength - Définit la longueur minimale d'un mot
    • SolrQuery::setOmitHeader - Exclut l'en-tête des résultats retournés
    • SolrQuery::setQuery - Définit la requête de recherche
    • SolrQuery::setRows - Spécifie le nombre maximal de lignes à retourner dans le résultat
    • SolrQuery::setShowDebugInfo - Drapeau pour afficher les informations de débogage
    • SolrQuery::setStart - Spécifie le nombre maximal de lignes à ignorer
    • SolrQuery::setStats - Active ou désactive le composant statistique
    • SolrQuery::setTerms - Active ou désactive le TermsComponent
    • SolrQuery::setTermsField - Définit le nom du champ dans lequel les termes seront récupérés
    • SolrQuery::setTermsIncludeLowerBound - Inclut le terme inférieure liée dans le jeu de résultat
    • SolrQuery::setTermsIncludeUpperBound - Inclut le terme supérieure liée dans le jeu de résultat
    • SolrQuery::setTermsLimit - Définit le nombre maximal de termes à retourner
    • SolrQuery::setTermsLowerBound - Spécifie le terme de départ
    • SolrQuery::setTermsMaxCount - Définit la fréquence maximale du document
    • SolrQuery::setTermsMinCount - Définit la fréquence minimale d'un document
    • SolrQuery::setTermsPrefix - Restreint les termes correspondants qui commencent avec un préfixe donné
    • SolrQuery::setTermsReturnRaw - Retourne les caractères brutes d'un terme indexé
    • SolrQuery::setTermsSort - Spécifie la façon dont seront triés les termes retournés
    • SolrQuery::setTermsUpperBound - Définit le terme à partir duquel on doit stopper
    • SolrQuery::setTimeAllowed - Le temps allouée pour faire une recherche
    • SolrQuery::__construct - Constructeur
    • SolrQuery::__destruct - Destructeur
    • SolrQueryResponse::__construct - Constructeur
    • SolrQueryResponse::__destruct - Destructeur
    • SolrResponse::getDigestedResponse - Récupère la réponse XML sous la forme de données PHP linéarisées
    • SolrResponse::getHttpStatus - Récupère le statut HTTP de la réponse
    • SolrResponse::getHttpStatusMessage - Récupère plus de détails sur le statut HTTP
    • SolrResponse::getRawRequest - Récupère la requête brute envpyée au serveur Solr
    • SolrResponse::getRawRequestHeaders - Récupère les en-têtes brutes de la requête envoyée au serveur Solr
    • SolrResponse::getRawResponse - Récupère la réponse brute du serveur
    • SolrResponse::getRawResponseHeaders - Récupère les en-têtes brutes de la réponse du serveur
    • SolrResponse::getRequestUrl - Récupère l'URL complète de la requête émise au serveur
    • SolrResponse::getResponse - Récupère l'objet SolrObject représentant la réponse XML du serveur
    • SolrResponse::setParseMode - Définit le mode d'analyse
    • SolrResponse::success - Vérifie si la requête au serveur a réussi
    • SolrServerException::getInternalInfo - Retourne des informations internes sur le lieu où l'exception a été émise
    • SolrUpdateResponse::__construct - Constructeur
    • SolrUpdateResponse::__destruct - Destructeur
    • SolrUtils::digestXmlResponse - Analyse une réponse XML dans un SolrObject
    • SolrUtils::escapeQueryChars - Protège une requête
    • SolrUtils::getSolrVersion - Récupère la version courant de l'extension Solr
    • SolrUtils::queryPhrase - Prépare une phrase depuis une chaîne non protégée par Lucene
    • solr_get_version - Retourne la version courante de l'extension Solr utilisée par Apache
    • sort - Trie un tableau
    • soundex - Calcule la clé soundex
    • SphinxClient::addQuery - Ajoute une requête à un batch multiple
    • SphinxClient::buildExcerpts - Construit les extraits de texte
    • SphinxClient::buildKeywords - Extrait les mots-clés d'une requête
    • SphinxClient::close - Ferme une connexion persistante ouverte
    • SphinxClient::escapeString - Protège les caractères spéciaux
    • SphinxClient::getLastError - Lit le dernier message d'erreur
    • SphinxClient::getLastWarning - Lit la dernière alerte
    • SphinxClient::open - Établit une connexion persistante avec le serveur
    • SphinxClient::query - Exécute une requête de recherche
    • SphinxClient::resetFilters - Supprime tous les filtres
    • SphinxClient::resetGroupBy - Supprime toutes les configurations de regroupement
    • SphinxClient::runQueries - Exécute une série de requêtes de recherche
    • SphinxClient::setArrayResult - Change le format du tableau de résultats
    • SphinxClient::setConnectTimeout - Configure le délai d'expiration de connexion
    • SphinxClient::setFieldWeights - Configure le poids des champs
    • SphinxClient::setFilter - Ajoute un nouveau filtre entier
    • SphinxClient::setFilterFloatRange - Ajoute un nouveau filtre décimal
    • SphinxClient::setFilterRange - Ajoute un nouveau filtre d'intervalle
    • SphinxClient::setGeoAnchor - Configure le point d'origine pour les calculs géographiques
    • SphinxClient::setGroupBy - Configure les attributs de regroupement
    • SphinxClient::setGroupDistinct - Configure les calculs au niveau des valeurs distinctes
    • SphinxClient::setIDRange - Configure l'intervalle de validité des identifiants de document
    • SphinxClient::setIndexWeights - Configure les poids de chaque index
    • SphinxClient::setLimits - Configure l'offset et la limite du résultat
    • SphinxClient::setMatchMode - Configure le mode de recherche en texte intégral
    • SphinxClient::setMaxQueryTime - Configure la durée maximale de recherche
    • SphinxClient::setOverride - Définit temporairement la valeur d'attribut pour un document
    • SphinxClient::setRankingMode - Configure le mode de classement
    • SphinxClient::setRetries - Configure le nombre de tentatives et le délai d'expiration
    • SphinxClient::setSelect - Définit une clause à la sélection
    • SphinxClient::setServer - Configure l'hôte et le port searchd
    • SphinxClient::setSortMode - Configure le mode de tri
    • SphinxClient::status - Récupère le statut de searchd
    • SphinxClient::updateAttributes - Modifie les attributs d'un document
    • SphinxClient::__construct - Crée un nouvel objet SphinxClient
    • SplDoublyLinkedList::add - Ajoute/insert une nouvelle valeur à l'index spécifié
    • SplDoublyLinkedList::bottom - Le noeud parent à partir duquel la liste découle
    • SplDoublyLinkedList::count - Compte le nombre d'éléments de la liste
    • SplDoublyLinkedList::current - Retourne l'entrée courante du tableau
    • SplDoublyLinkedList::getIteratorMode - Retourne le mode de l'itérateur
    • SplDoublyLinkedList::isEmpty - Vérifie si la liste est vide
    • SplDoublyLinkedList::key - Retourne l'index du noeud courant
    • SplDoublyLinkedList::next - Se déplace à l'entrée suivante
    • SplDoublyLinkedList::offsetExists - Vérifie si un index existe
    • SplDoublyLinkedList::offsetGet - Retourne la valeur d'un index
    • SplDoublyLinkedList::offsetSet - Spécifie la nouvelle valeur de l'index
    • SplDoublyLinkedList::offsetUnset - Efface la valeur d'un index
    • SplDoublyLinkedList::pop - Dépile et retourne le dernier élément de la liste
    • SplDoublyLinkedList::prev - Recule d'un élément
    • SplDoublyLinkedList::push - Ajoute un élément à la fin de la liste
    • SplDoublyLinkedList::rewind - Replace l'itérateur au début
    • SplDoublyLinkedList::serialize - Sérialise la liste
    • SplDoublyLinkedList::setIteratorMode - Définit le mode d'itération
    • SplDoublyLinkedList::shift - Déplace un noeud de la liste
    • SplDoublyLinkedList::top - Récupère le dernier noeud de la liste
    • SplDoublyLinkedList::unserialize - Désérialise la liste
    • SplDoublyLinkedList::unshift - Ajoute un élément à la liste
    • SplDoublyLinkedList::valid - Vérifie si la liste contient encore des noeuds
    • SplDoublyLinkedList::__construct - Construit une nouvelle liste
    • SplEnum::getConstList - Retourne toutes les constantes sous la forme d'un tableau
    • SplFileInfo::getATime - Lit la date de dernier accès au fichier
    • SplFileInfo::getBasename - Lit le nom du fichier
    • SplFileInfo::getCTime - Lit la date de modification du fichier
    • SplFileInfo::getExtension - Récupère l'extension d'un fichier
    • SplFileInfo::getFileInfo - Obtient un objet SplFileInfo pour un fichier
    • SplFileInfo::getFilename - Lit le nom du fichier
    • SplFileInfo::getGroup - Lit le groupe d'appartenance du fichier
    • SplFileInfo::getInode - Lit le inode du fichier
    • SplFileInfo::getLinkTarget - Lit la cible d'un lien symbolique
    • SplFileInfo::getMTime - Lit la date de dernière modification
    • SplFileInfo::getOwner - Lit le propriétaire du fichier
    • SplFileInfo::getPath - Le le chemin sans le nom de fichier
    • SplFileInfo::getPathInfo - Crée un objet SplFileInfo pour un chemin
    • SplFileInfo::getPathname - Lit le chemin d'un fichier
    • SplFileInfo::getPerms - Lit les droits d'un fichier
    • SplFileInfo::getRealPath - Lit le chemin absolu d'un fichier
    • SplFileInfo::getSize - Lit la taille d'un fichier
    • SplFileInfo::getType - Lit le type de fichier
    • SplFileInfo::isDir - Indique si le fichier est un dossier
    • SplFileInfo::isExecutable - Indique si un fichier est exécutable
    • SplFileInfo::isFile - Indique si un fichier est un véritable fichier
    • SplFileInfo::isLink - Indique si un fichier est un lien
    • SplFileInfo::isReadable - Indique si le fichier est lisible
    • SplFileInfo::isWritable - Indique si on peut écrire dans un fichier
    • SplFileInfo::openFile - Crée un objet SplFileObject pour le fichier
    • SplFileInfo::setFileClass - Configure la classe utilisée avec SplFileInfo::openFile
    • SplFileInfo::setInfoClass - Configure la classe utilisée par SplFileInfo::getFileInfo et SplFileInfo::getPathInfo
    • SplFileInfo::__construct - Construit un nouvel objet SplFileInfo
    • SplFileInfo::__toString - Retourne le chemin d'un fichier sous forme de chaîne
    • SplFileObject::current - Récupère la ligne courante d'un fichier
    • SplFileObject::eof - Vérifie si la fin du fichier est atteinte
    • SplFileObject::fflush - Écrit l'affichage dans le fichier
    • SplFileObject::fgetc - Récupère un caractère depuis le fichier
    • SplFileObject::fgetcsv - Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV
    • SplFileObject::fgets - Récupère une ligne d'un fichier
    • SplFileObject::fgetss - Récupère une ligne d'un fichier et supprime les balises HTML
    • SplFileObject::flock - Verrouille ou déverrouille un fichier
    • SplFileObject::fpassthru - Affiche toutes les données en attente sur un pointeur de fichier
    • SplFileObject::fputcsv - Écrit un tableau sous la forme d'une ligne CSV
    • SplFileObject::fread - Lit depuis un fichier
    • SplFileObject::fscanf - Analyse une entrée d'un fichier suivant un format donné
    • SplFileObject::fseek - Se déplace à une position donnée
    • SplFileObject::fstat - Récupère les informations d'un fichier
    • SplFileObject::ftell - Retourne la position courant dans le fichier
    • SplFileObject::ftruncate - Coupe le fichier à une longueur donnée
    • SplFileObject::fwrite - Écrit dans le fichier
    • SplFileObject::getChildren - Récupère le fils
    • SplFileObject::getCsvControl - Récupère les options pour CSV
    • SplFileObject::getCurrentLine - Alias de SplFileObject::fgets
    • SplFileObject::getFlags - Récupère les drapeaux pour l'objet SplFileObject
    • SplFileObject::getMaxLineLen - Récupère la longueur maximale d'une ligne
    • SplFileObject::hasChildren - Vérifie si SplFileObject a un fils
    • SplFileObject::key - Récupère le numéro de la ligne courant
    • SplFileObject::next - Se déplace sur la prochaine ligne
    • SplFileObject::rewind - Réinitialise le fichier à la première ligne
    • SplFileObject::seek - Se déplace sur une ligne spécifique
    • SplFileObject::setCsvControl - Définit les options CSV
    • SplFileObject::setFlags - Définit les drapeaux pour l'objet SplFileObject
    • SplFileObject::setMaxLineLen - Définit la longueur maximale d'une ligne
    • SplFileObject::valid - Vérifie si la fin du fichier a été atteinte
    • SplFileObject::__construct - Construit un nouvel objet fichier
    • SplFileObject::__toString - Alias de SplFileObject::current
    • SplFixedArray::count - Retourne la taille du tableau à taille fixe
    • SplFixedArray::current - Lit l'élément courant du tableau à taille fixe
    • SplFixedArray::fromArray - Importe un tableau PHP dans un tableau à taille fixe
    • SplFixedArray::getSize - Lit la taille du tableau à taille fixe
    • SplFixedArray::key - Retourne l'index de la position courante
    • SplFixedArray::next - Déplace l'itérateur à l'élément suivant
    • SplFixedArray::offsetExists - Vérifie si l'index demandé existe
    • SplFixedArray::offsetGet - Retourne la valeur à l'index donné
    • SplFixedArray::offsetSet - Affecte une valeur à un index donné
    • SplFixedArray::offsetUnset - Détruit l'élément à un index donné
    • SplFixedArray::rewind - Remet l'itérateur au début du tableau à taille fixe
    • SplFixedArray::setSize - Change la taille d'un tableau à taille fixe
    • SplFixedArray::toArray - Retourne un tableau PHP à partir d'un tableau à taille fixe
    • SplFixedArray::valid - Vérifie si le tableau contient encore un élément
    • SplFixedArray::__construct - Construit un nouveau SplFixedArray
    • SplFixedArray::__wakeup - Ré-initialise le tableau après sa dé-linéarisation
    • SplHeap::compare - Compare deux éléments
    • SplHeap::count - Compte le nombre d'éléments dans le tas
    • SplHeap::current - Retourne le noeud courant, pointé par l'itérateur
    • SplHeap::extract - Extrait un noeud du haut du tas
    • SplHeap::insert - Insère un élément dans le tas
    • SplHeap::isEmpty - Vérifie si le tas est vide
    • SplHeap::key - Retourne l'index du noeud courant
    • SplHeap::next - Se déplace au noeud suivant
    • SplHeap::recoverFromCorruption - Répare un tas
    • SplHeap::rewind - Revient au début de l'itérateur
    • SplHeap::top - Récupère le premier noeud du tas
    • SplHeap::valid - Vérifie si le tas contient des noeuds
    • SplHeap::__construct - Construit un nouveau tas vide
    • split - Scinde une chaîne en un tableau, grâce à une expression rationnelle
    • spliti - Scinde une chaîne en un tableau, grâce à une expression rationnelle
    • SplMaxHeap::compare - Compare deux éléments
    • SplMinHeap::compare - Compare deux éléments
    • SplObjectStorage::addAll - Ajoute tous les objets d'un autre stockage
    • SplObjectStorage::attach - Ajoute un objet dans le stockage
    • SplObjectStorage::contains - Vérifie si un stockage contient un objet
    • SplObjectStorage::count - Retourne le nombre d'objets dans le stockage
    • SplObjectStorage::current - Retourne l'objet courant
    • SplObjectStorage::detach - Retire un objet du stockage
    • SplObjectStorage::getHash - Calcule un identifiant unique pour les objets contenus
    • SplObjectStorage::getInfo - Retourne les données associés à l'élément en cours
    • SplObjectStorage::key - Retourne l'index de l'objet courant
    • SplObjectStorage::next - Passe au prochain élément
    • SplObjectStorage::offsetExists - Vérifie si un objet existe dans le stockage
    • SplObjectStorage::offsetGet - Retourne les données associées à un objet
    • SplObjectStorage::offsetSet - Associe des données à un stockage
    • SplObjectStorage::offsetUnset - Retire un objet du stockage
    • SplObjectStorage::removeAll - Retire les objets d'un stockage qui appartienne à un autre stockage
    • SplObjectStorage::removeAllExcept - Supprime tous les objets du stockage courant sauf ceux contenus dans d'autres stockages
    • SplObjectStorage::rewind - Remet l'itérateur au début
    • SplObjectStorage::serialize - Linéarise un stockage
    • SplObjectStorage::setInfo - Modifie les données associée à l'élément courant
    • SplObjectStorage::unserialize - Délinéarise un stockage à partir de sa forme en chaîne
    • SplObjectStorage::valid - Vérifie si l'élément courant est valide
    • SplObserver::update - Réception d'une mise à jour depuis un sujet
    • SplPriorityQueue::compare - Compare deux priorités
    • SplPriorityQueue::count - Compte le nombre d'éléments dans la file d'attente
    • SplPriorityQueue::current - Retourne le noeud courant, pointé par l'itérateur
    • SplPriorityQueue::extract - Extrait un noeud depuis le haut du tas
    • SplPriorityQueue::insert - Insère un élément dans la file d'attente
    • SplPriorityQueue::isEmpty - Vérifie si la file est vide
    • SplPriorityQueue::key - Retourne l'index du noeud courant
    • SplPriorityQueue::next - Se déplace sur le prochain noeud
    • SplPriorityQueue::recoverFromCorruption - Répare une file d'attente
    • SplPriorityQueue::rewind - Revient au début de l'itérateur
    • SplPriorityQueue::setExtractFlags - Définit le mode d'extraction
    • SplPriorityQueue::top - Récupère le noeud du haut de la file d'attente
    • SplPriorityQueue::valid - Vérifie si la file d'attente contient encore des noeuds
    • SplPriorityQueue::__construct - Construit une nouvelle file d'attente vide
    • SplQueue::dequeue - Supprime un noeud de la file d'attente
    • SplQueue::enqueue - Ajoute un élément à la file d'attente
    • SplQueue::setIteratorMode - Définit le mode de l'itérateur
    • SplQueue::__construct - Construit une nouvelle file d'attente, en utilisant une liste
    • SplStack::setIteratorMode - Définit le mode de l'itérateur
    • SplStack::__construct - Construit une nouvelle pile, en utilisant une liste
    • SplSubject::attach - Attache un SplObserver
    • SplSubject::detach - Détache un observateur
    • SplSubject::notify - Notifie un observateur
    • SplTempFileObject::__construct - Construit un nouvel objet représentant un fichier temporaire
    • SplType::__construct - Crée une nouvelle valeur d'un certain type
    • spl_autoload - Implémentation par défaut d'__autoload()
    • spl_autoload_call - Essai toutes les fonctions __autoload() enregistrées pour charger la classe demandée
    • spl_autoload_extensions - Enregistre et retourne l'extension du fichier par défaut pour spl_autoload
    • spl_autoload_functions - Retourne toutes les fonctions __autoload() enregistrées
    • spl_autoload_register - Enregistre une fonction en tant qu'implémentation de __autoload()
    • spl_autoload_unregister - Efface une fonction donnée de l'implémentation __autoload()
    • spl_classes - Retourne les classes SPL disponibles
    • spl_object_hash - Retourne l'identifiant de hashage pour un objet donné
    • Spoofchecker::areConfusable - Vérifie si un texte contient des caractères confus
    • Spoofchecker::isSuspicious - Vérifie si un texte contient des caractères suspects
    • Spoofchecker::setAllowedLocales - Locales à utiliser lors de la vérification
    • Spoofchecker::setChecks - Spécifie les vérifications à effectuer
    • Spoofchecker::__construct - Constructeur
    • sprintf - Retourne une chaîne formatée
    • SQLite3::busyTimeout - Définit le gestionnaire d'attente de la connexion
    • SQLite3::changes - Retourne le nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL
    • SQLite3::close - Ferme la connexion avec la base de données
    • SQLite3::createAggregate - Enregistre une fonction PHP à utiliser comme fonction d'aggrégation SQLite
    • SQLite3::createCollation - Enregistre une fonction PHP pour l'utiliser comme fonction de classement SQL
    • SQLite3::createFunction - Enregistre une fonction PHP à utiliser comme function scalaire SQL
    • SQLite3::enableExceptions - Enable throwing exceptions
    • SQLite3::escapeString - Retourne une chaîne nettoyée
    • SQLite3::exec - Exécute une requête sur une base de données
    • SQLite3::lastErrorCode - Retourne le code erreur de la dernière requête SQL ayant échouée
    • SQLite3::lastErrorMsg - Retourne le message d'erreur, en anglais, de la dernière requête ayant échouée
    • SQLite3::lastInsertRowID - Retourne l'identifiant de la ligne corrspondant à la dernière requête de type INSERT
    • SQLite3::loadExtension - Tente de charger une extension de la bibliothèque SQLite
    • SQLite3::open - Ouvre une base de données SQLite
    • SQLite3::openBlob - Opens a stream resource to read a BLOB
    • SQLite3::prepare - Prépare une requête SQL pour exécution
    • SQLite3::query - Exécute une requête SQL
    • SQLite3::querySingle - Exécute une requête et retourne un seul résultat
    • SQLite3::version - Retourne la version de la bibliothèque SQLite3
    • SQLite3::__construct - Instantie un objet SQLite3 et ouvre la base de données SQLite 3
    • SQLite3Result::columnName - Retourne le nom d'une colonne
    • SQLite3Result::columnType - Retourne le type d'une colonne
    • SQLite3Result::fetchArray - Récupère un jeu de résultats sous la forme d'un tableau associatif
    • SQLite3Result::finalize - Ferme un jeu de résultats
    • SQLite3Result::numColumns - Retourne le nombre de colonnes du jeu de résultats
    • SQLite3Result::reset - Repositionne le pointeur sur la première ligne du jeu de résultats
    • SQLite3Stmt::bindParam - Lie un paramètre à une variable de requête
    • SQLite3Stmt::bindValue - Lie la valeur d'un paramètre à une variable de requête
    • SQLite3Stmt::clear - Supprime tous les paramètres actuellement liés
    • SQLite3Stmt::close - Ferme une requête préparée
    • SQLite3Stmt::execute - Exécute une requête préparée
    • SQLite3Stmt::paramCount - Retourne le nombre de paramètres d'une requête préparée
    • SQLite3Stmt::readOnly() - Returns whether a statement is definitely read only
    • SQLite3Stmt::reset - Réinitialise une requête préparée
    • sqlite_array_query - Exécute une requête SQL avec SQLite et retourne un tableau
    • sqlite_busy_timeout - Configure le délai d'attente d'une base SQLite occupée
    • sqlite_changes - Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite
    • sqlite_close - Ferme la connexion à SQLite
    • sqlite_column - Lit la valeur d'une colonne dans un résultat SQLite
    • sqlite_create_aggregate - Enregistre une UDF agrégeante pour les requêtes SQLite
    • sqlite_create_function - Enregistre une fonction utilisateur "classique" UDF pour SQLite
    • sqlite_current - Lit une ligne de résultat SQLite dans un tableau
    • sqlite_error_string - Retourne le message d'erreur SQLite
    • sqlite_escape_string - Protège une chaîne de caractères pour utilisation avec SQLite
    • sqlite_exec - Exécute une requête sans résultats sur une base de données
    • sqlite_factory - Ouvre une base SQLite et crée un objet pour elle
    • sqlite_fetch_all - Retourne toutes les lignes d'un jeu de résultats en tant que tableau de tableaux
    • sqlite_fetch_array - Lit la prochaine ligne de résultat SQLite dans un tableau
    • sqlite_fetch_column_types - Retourne un tableau des types de colonnes d'une certaine table
    • sqlite_fetch_object - Retourne la ligne suivante du jeu de résultats en tant qu'objet
    • sqlite_fetch_single - Lit la première ligne d'un résultat SQLite sous forme de chaîne
    • sqlite_fetch_string - Alias de sqlite_fetch_single
    • sqlite_field_name - Retourne le nom du champ SQLite
    • sqlite_has_more - Indique s'il reste des lignes SQLite à lire
    • sqlite_has_prev - Retourne si oui ou non une ligne précédente est disponible
    • sqlite_key - Retourne l'index de la ligne courante
    • sqlite_last_error - Retourne le dernier code d'erreur SQLite
    • sqlite_last_insert_rowid - Retourne le numéro de ligne de la dernière ligne insérée
    • sqlite_libencoding - Retourne l'encodage utilisé par la bibliothèque SQLite
    • sqlite_libversion - Retourne la version de la bibliothèque SQLite
    • sqlite_next - Déplace le pointeur SQLite vers la prochaine ligne
    • sqlite_num_fields - Retourne le nombre de champs dans un résultat SQLite
    • sqlite_num_rows - Retourne le nombre de lignes d'un résultat SQLite
    • sqlite_open - Ouvre une base SQLite et la crée si elle n'existe pas
    • sqlite_popen - Ouvre une connexion SQLite persistante et crée la base si elle n'existe pas
    • sqlite_prev - Se positionne sur le numéro de ligne précédent du jeu de résultats
    • sqlite_query - Exécute une requête SQLite et lit le résultat
    • sqlite_rewind - Place le pointeur de résultat SQLite au début
    • sqlite_seek - Déplace le pointeur de résultat SQLite vers une ligne
    • sqlite_single_query - Exécute une requête et retourne soit un tableau pour une colonne unique, soit la valeur de la première ligne
    • sqlite_udf_decode_binary - Décode des données binaires, passées à une UDF SQLite
    • sqlite_udf_encode_binary - Encode les données binaires d'une UDF SQLite avant de les retourner
    • sqlite_unbuffered_query - Exécute une requête SQLite non bufferisée
    • sqlite_valid - Retourne si oui ou non il reste des lignes disponibles
    • sqlsrv_begin_transaction - Commence une transaction
    • sqlsrv_cancel - Annule une requête
    • sqlsrv_client_info - Retourne les informations sur le client ainsi que sur la connexion spécifiée
    • sqlsrv_close - Clôture une connexion établie et libère les ressources associées
    • sqlsrv_commit - Valide une transaction commencée avec la fonction sqlsrv_begin_transaction
    • sqlsrv_configure - Modifie la configuration du gestionnaire d'erreurs et d'historisations du driver
    • sqlsrv_connect - Ouvre une connexion sur une base de données Microsoft SQL Server
    • sqlsrv_errors - Retourne une erreur ainsi que certaines informations sur la dernière opération SQLSRV effectuée
    • sqlsrv_execute - Exécute une requête préparée avec la fonction sqlsrv_prepare
    • sqlsrv_fetch - Rend la prochaine ligne d'un jeu de résultats disponible pour lecture
    • sqlsrv_fetch_array - Retourne une ligne sous la forme d'un tableau
    • sqlsrv_fetch_object - Récupère la prochaine ligne de données du jeu de résultats sous la forme d'un objet
    • sqlsrv_field_metadata - Récupère les données méta pour les champs d'une requête préparée par la fonction sqlsrv_prepare ou la fonction sqlsrv_query
    • sqlsrv_free_stmt - Libère toutes les ressources de la requête spécifiée
    • sqlsrv_get_config - Retourne la valeur de la configuration spécifiée
    • sqlsrv_get_field - Récupère les données du champ depuis la ligne actuellement sélectionnée
    • sqlsrv_has_rows - Indique si la requête spécifiée contient des lignes
    • sqlsrv_next_result - Rend actif le prochain résultat de la requête spécifiée
    • sqlsrv_num_fields - Récupère le nombre de champs (colonnes) dans une requête
    • sqlsrv_num_rows - Récupère le nombre de lignes d'un jeu de résultats
    • sqlsrv_prepare - Prépare une requête pour exécution
    • sqlsrv_query - Prépare et exécute une requête
    • sqlsrv_rollback - Annule une transaction qui a été commencée grâce à la fonction sqlsrv_begin_transaction
    • sqlsrv_rows_affected - Retourne le nombre de lignes modifiées par la dernière requête de type INSERT, UPDATE, ou DELETE
    • sqlsrv_send_stream_data - Envoie des données depuis le flux vers le serveur
    • sqlsrv_server_info - Retourne des informations sur le serveur
    • sql_regcase - Prépare une expression rationnelle pour effectuer une recherche insensible à la casse
    • sqrt - Racine carrée
    • srand - Initialise le générateur de nombres aléatoires
    • sscanf - Analyse une chaîne à l'aide d'un format
    • ssdeep_fuzzy_compare - Calcule le score de correspondance entre 2 signatures de hachages flous
    • ssdeep_fuzzy_hash - Crée un hachage flou depuis une chaîne de caractères
    • ssdeep_fuzzy_hash_filename - Crée un hachage flou d'un fichier
    • ssh2:// - Shell sécurisé 2
    • ssh2_auth_agent - Authentification SSH en utilisant l'agent ssh
    • ssh2_auth_hostbased_file - Identification en utilisant une clé d'hôte publique
    • ssh2_auth_none - Identification en tant que "none"
    • ssh2_auth_password - Identification via SSH en utilisant un mot de passe en clair
    • ssh2_auth_pubkey_file - Identification en utilisant une clé publique
    • ssh2_connect - Connexion à un serveur SSH
    • ssh2_exec - Exécute une commande sur un serveur distant
    • ssh2_fetch_stream - Parcours un flux étendu de données
    • ssh2_fingerprint - Récupère l'empreinte d'un serveur distant
    • ssh2_methods_negotiated - Retourne une liste de méthodes négociées
    • ssh2_publickey_add - Ajoute une clé publique autorisée
    • ssh2_publickey_init - Initialise un Publickey Subsystem (sous-système de clé publique)
    • ssh2_publickey_list - Liste les clés publiques actuellement autorisées
    • ssh2_publickey_remove - Supprime un clé publique autorisée
    • ssh2_scp_recv - Demande un fichier via SCP
    • ssh2_scp_send - Envoie un fichier via SCP
    • ssh2_sftp - Initialise un sous-système SFTP
    • ssh2_sftp_chmod - Modifie le mode d'un fichier
    • ssh2_sftp_lstat - Statue un lien symbolique
    • ssh2_sftp_mkdir - Crée un dossier
    • ssh2_sftp_readlink - Retourne la cible d'un lien symbolique
    • ssh2_sftp_realpath - Résout le chemin réel d'un chemin fourni
    • ssh2_sftp_rename - Renomme un fichier distant
    • ssh2_sftp_rmdir - Efface un dossier
    • ssh2_sftp_stat - Statue un fichier sur un système de fichiers distant
    • ssh2_sftp_symlink - Crée un lien symbolique
    • ssh2_sftp_unlink - Efface un fichier
    • ssh2_shell - Demande un shell interactif
    • ssh2_tunnel - Ouvre un tunnel à travers un serveur distant
    • stat - Renvoie les informations à propos d'un fichier
    • stats_absolute_deviation - Retourne l'écart absolu d'un tableau de valeurs
    • stats_cdf_beta - Fonction CDF pour Distribution BETA. Calcule n'importe quel paramètre de distribution beta des valeurs données pour les autres
    • stats_cdf_binomial - Calcule n'importe quel paramètre de distribution binomiale des valeurs données pour les autres
    • stats_cdf_cauchy - Non documenté
    • stats_cdf_chisquare - Calcule n'importe quel paramètre de distribution Khi-carré des valeurs données pour les autres
    • stats_cdf_exponential - Non documenté
    • stats_cdf_f - Calcule n'importe quel paramètre de distribution F des valeurs données pour les autres
    • stats_cdf_gamma - Calcule n'importe quel paramètre de distribution gamma des valeurs données pour les autres
    • stats_cdf_laplace - Non documenté
    • stats_cdf_logistic - Non documenté
    • stats_cdf_negative_binomial - Calcule n'importe quel paramètre de distribution binomiale négative des valeurs données pour les autres
    • stats_cdf_noncentral_chisquare - Calcule n'importe quel paramètre de distribution non centrale Khi-carré des valeurs données pour les autres
    • stats_cdf_noncentral_f - Calcule n'importe quel paramètre de distribution non centrale F des valeurs données pour les autres
    • stats_cdf_poisson - Calcule n'importe quel paramètre de distribution de Poisson des valeurs données pour les autres
    • stats_cdf_t - Calcule n'importe quel paramètre de distribution T des valeurs données pour les autres
    • stats_cdf_uniform - Non documenté
    • stats_cdf_weibull - Non documenté
    • stats_covariance - Calcule la covariance de deux séries de données
    • stats_dens_beta - Non documenté
    • stats_dens_cauchy - Non documenté
    • stats_dens_chisquare - Non documenté
    • stats_dens_exponential - Non documenté
    • stats_dens_f - Description
    • stats_dens_gamma - Non documenté
    • stats_dens_laplace - Non documenté
    • stats_dens_logistic - Non documenté
    • stats_dens_negative_binomial - Non documenté
    • stats_dens_normal - Non documenté
    • stats_dens_pmf_binomial - Non documenté
    • stats_dens_pmf_hypergeometric - Description
    • stats_dens_pmf_poisson - Non documenté
    • stats_dens_t - Non documenté
    • stats_dens_weibull - Non documenté
    • stats_den_uniform - Non documenté
    • stats_harmonic_mean - Retourne la moyenne harmonique d'un tableau de valeurs
    • stats_kurtosis - Calcule le coefficient d'aplatissement des données dans un tableau
    • stats_rand_gen_beta - Génère l'écart beta aléatoire
    • stats_rand_gen_chisquare - Génère l'écart aléatoire de la distribution Khi-carré avec "df" de degré de liberté de variables aléatoire
    • stats_rand_gen_exponential - Génère un écart aléatoire simple à partir d'une distribution exponentielle avec moyenne "av"
    • stats_rand_gen_f - Génère un écart aléatoire
    • stats_rand_gen_funiform - Génère une valeur décimale uniforme entre les basse (exclusif) et autre (exclusif)
    • stats_rand_gen_gamma - Génère un écart aléatoire d'une distribution gamma
    • stats_rand_gen_ibinomial - Génère un écart aléatoire simple d'une distribution binomiale à qui le nombre d'essaie est "n" (n >= 0) et à qui la probabilité d'un évènement de chaque essai est "pp" ([0;1]). Méthode : algorithme BTPE
    • stats_rand_gen_ibinomial_negative - Génère un écart aléatoire simple de la distribution négative binomiale. Arguments : n - le nombre d'essai dans la distribution négative binomiale dans lequel l'écart aléatoire sera généré (n > 0), p - la probabilité d'un évènement (0 < p < 1))
    • stats_rand_gen_int - Génère un entier aléatoire entre 1 et 2147483562
    • stats_rand_gen_ipoisson - Génère un écart aléatoire simple à partir de la distribution de Poisson avec la moyenne "mu" (mu >= 0.0)
    • stats_rand_gen_iuniform - Génère un entier uniformément distribué entre LOW (inclusif) et HIGH (inclusif)
    • stats_rand_gen_noncenral_chisquare - Génère un écart aléatoire à partir de la distribution non centrale de Khi-carré de "df" degrés de liberté et de paramètre non central "nonc". d doit être >= 1.0, xnonc doit être *gt;= 0.0
    • stats_rand_gen_noncentral_f - Génère l'écart aléatoire à partir de la distribution non centrale de F (ratio variance) avec "dfn" degré de liberté dans le numérateur et "dfd" degré de liberté dans le dénominateur et le paramètre non central "xnonc". Méthode : génère directement le ratio d'une variation Khi-carré non centrale de numérateur à la variation Khi-carré centrale de dénominateur
    • stats_rand_gen_noncentral_t - Génère l'écart aléatoire simple à partir d'une distribution T non centrale
    • stats_rand_gen_normal - Génère un écart aléatoire simple à partir d'une distribution normale avec la moyenne, av, et écart type sd (sd >= 0). Méthode : Renomme SNORM de TOMS légèrement modifié par BWB pour utiliser RANF au lieu de SUNIF
    • stats_rand_gen_t - Génère un écart aléatoire simple à partir de la distribution T
    • stats_rand_get_seeds - Non documenté
    • stats_rand_phrase_to_seeds - Génère deux graines pour le générateur de nombre aléatoire RGN
    • stats_rand_ranf - Retourne un nombre à valeur décimale aléatoire à partir d'une distribution uniforme de 0 - 1 (les points finaux de cet intervalle ne sont pas retourné) en utilisant le générateur courant
    • stats_rand_setall - Non documenté
    • stats_skew - Calcul l'asymétrie des données dans un tableau
    • stats_standard_deviation - Retourne l'écart type
    • stats_stat_binomial_coef - Non documenté
    • stats_stat_correlation - Non documenté
    • stats_stat_gennch - Non documenté
    • stats_stat_independent_t - Non documenté
    • stats_stat_innerproduct - Description
    • stats_stat_noncentral_t - Calcule n'importe quel paramètre de distribution non centrale t des valeurs données pour les autres valeurs
    • stats_stat_paired_t - Non documenté
    • stats_stat_percentile - Non documenté
    • stats_stat_powersum - Non documenté
    • stats_variance - Retourne la variance d'une population
    • Stomp::abort - Annule une transaction en cours
    • Stomp::ack - Valide la réception d'un message
    • Stomp::begin - Débute une transaction
    • Stomp::commit - Valide une transaction en cours
    • Stomp::error - Récupère la dernière erreur stomp
    • Stomp::getReadTimeout - Récupère le délai d'expiration de lecture
    • Stomp::getSessionId - Retourne l'identifiant de la session courante
    • Stomp::hasFrame - Indique si un message est en attente de lecture ou non
    • Stomp::readFrame - Lit le prochain message
    • Stomp::send - Envoi un message
    • Stomp::setReadTimeout - Définit le délai d'expiration de lecture
    • Stomp::subscribe - Souscrit à l'écoute d'une destination donnée
    • Stomp::unsubscribe - Supprime une souscription existante
    • Stomp::__construct - Ouvre une connexion
    • Stomp::__destruct - Ferme une connexion
    • StompException::getDetails - Récupère les détails de l'exception
    • StompFrame::__construct - Constructeur
    • stomp_connect_error - Retourne une chaîne décrivant la dernière erreur de connexion
    • stomp_version - Récupère la version de l'extension Stomp
    • strcasecmp - Comparaison insensible à la casse de chaînes binaires
    • strchr - Alias de strstr
    • strcmp - Comparaison binaire de chaînes
    • strcoll - Comparaison de chaînes localisées
    • strcspn - Trouve un segment de chaîne ne contenant pas certains caractères
    • streamWrapper::dir_closedir - Ferme une ressource de dossier
    • streamWrapper::dir_opendir - Ouvre un dossier en lecture
    • streamWrapper::dir_readdir - Lit un fichier dans un dossier
    • streamWrapper::dir_rewinddir - Remet au début une ressource de dossier
    • streamWrapper::mkdir - Crée un dossier
    • streamWrapper::rename - Renomme un fichier ou un dossier
    • streamWrapper::rmdir - Supprime un dossier
    • streamWrapper::stream_cast - Lit la ressource sous-jacente de flux
    • streamWrapper::stream_close - Ferme une ressource de flux
    • streamWrapper::stream_eof - Tests for end-of-file on a file pointer
    • streamWrapper::stream_flush - Expédie le contenu
    • streamWrapper::stream_lock - Verrouillage logique de fichiers
    • streamWrapper::stream_metadata - Change les metadata du flux
    • streamWrapper::stream_open - Opens file or URL
    • streamWrapper::stream_read - Lit dans le flux
    • streamWrapper::stream_seek - Place le pointeur de flux à une position
    • streamWrapper::stream_set_option - Change les options du flux
    • streamWrapper::stream_stat - Lit les informations sur une ressource de fichier
    • streamWrapper::stream_tell - Lit la position courante dans un flux
    • streamWrapper::stream_truncate - Tronque un flux
    • streamWrapper::stream_write - Écrit dans un flux
    • streamWrapper::unlink - Efface un fichier
    • streamWrapper::url_stat - Lit les informations sur un fichier
    • streamWrapper::__construct - Construit un nouveau gestionnaire de flux
    • streamWrapper::__destruct - Détruit un gestionnaire de flux existant
    • stream_bucket_append - Ajoute un compartiment au corps
    • stream_bucket_make_writeable - Retourne un objet de compartiment depuis le corps pour des opérations sur celui-ci
    • stream_bucket_new - Crée un nouveau compartiment pour l'utiliser sur le flux courant
    • stream_bucket_prepend - Ajout initial d'un bucket dans une brigade
    • stream_context_create - Crée un contexte de flux
    • stream_context_get_default - Lit le contexte par défaut des flux
    • stream_context_get_options - Lit la valeur des options pour un flux/gestionnaire/contexte
    • stream_context_get_params - Lit les paramètres d'un contexte
    • stream_context_set_default - Configure le contexte par défaut des flux
    • stream_context_set_option - Configure une option pour un flux/gestionnaire/contexte
    • stream_context_set_params - Configure les paramètres pour un flux/gestionnaire/contexte
    • stream_copy_to_stream - Copie des données depuis un flux vers un autre
    • stream_encoding - Définit le jeu de caractères pour l'encodage du flux
    • stream_filter_append - Attache un filtre à un flux en fin de liste
    • stream_filter_prepend - Attache un filtre à un flux en début de liste
    • stream_filter_register - Enregistre un filtre de flux
    • stream_filter_remove - Retire un filtre d'un flux
    • stream_get_contents - Lit tout un flux dans une chaîne
    • stream_get_filters - Liste les filtres enregistrés
    • stream_get_line - Lit une ligne dans un flux
    • stream_get_meta_data - Lit les en-têtes et données méta des flux
    • stream_get_transports - Liste les gestionnaires de transports de sockets disponibles
    • stream_get_wrappers - Liste les gestionnaires de flux
    • stream_is_local - Vérifie si un flux est local
    • stream_notification_callback - Une fonction de rappel pour le paramètre de contexte notification
    • stream_register_wrapper - Alias de stream_wrapper_register
    • stream_resolve_include_path - Résout un nom de fichier suivant les règles du chemin d'inclusion
    • stream_select - Surveille la modification d'un ou plusieurs flux
    • stream_set_blocking - Configure le mode bloquant d'un flux
    • stream_set_chunk_size - Change la taille du segment du flux
    • stream_set_read_buffer - Configure le buffer de lecture d'un flux
    • stream_set_timeout - Configure la durée d'expiration d'un flux
    • stream_set_write_buffer - Configure le buffer d'écriture d'un flux
    • stream_socket_accept - Accepte une connexion sur un socket créé par stream_socket_server
    • stream_socket_client - Ouvre une connexion socket Internet ou Unix
    • stream_socket_enable_crypto - Active ou non le chiffrement, pour un socket déjà connecté
    • stream_socket_get_name - Lit le nom de la socket locale ou distante
    • stream_socket_pair - Crée une paire de sockets connectées et indissociables
    • stream_socket_recvfrom - Lit des données depuis un socket, connecté ou pas
    • stream_socket_sendto - Envoie un message au socket, connecté ou pas
    • stream_socket_server - Crée un socket serveur Unix ou Internet
    • stream_socket_shutdown - Arrête une connexion full-duplex
    • stream_supports_lock - Indique si le flux supporte les verrous
    • stream_wrapper_register - Enregistre un gestionnaire d'URL
    • stream_wrapper_restore - Restaure un gestionnaire d'URL supprimé
    • stream_wrapper_unregister - Supprime un gestionnaire d'URL
    • strftime - Formate une date/heure locale avec la configuration locale
    • stripcslashes - Décode une chaîne encodée avec addcslashes
    • stripos - Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse
    • stripslashes - Supprime les antislashs d'une chaîne
    • strip_tags - Supprime les balises HTML et PHP d'une chaîne
    • stristr - Version insensible à la casse de strstr
    • strlen - Calcule la taille d'une chaîne
    • strnatcasecmp - Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)
    • strnatcmp - Comparaison de chaînes avec l'algorithme d'"ordre naturel"
    • strncasecmp - Compare en binaire des chaînes de caractères
    • strncmp - Comparaison binaire des n premiers caractères
    • strpbrk - Recherche un ensemble de caractères dans une chaîne de caractères
    • strpos - Cherche la position de la première occurrence dans une chaîne
    • strptime - Analyse une date générée par strftime
    • strrchr - Trouve la dernière occurrence d'un caractère dans une chaîne
    • strrev - Inverse une chaîne
    • strripos - Cherche la position de la dernière occurrence d'une chaîne contenue dans une autre, de façon insensible à la casse
    • strrpos - Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne
    • strspn - Trouve la longueur du segment initial d'une chaîne contenant tous les caractères d'un masque donné
    • strstr - Trouve la première occurrence dans une chaîne
    • strtok - Coupe une chaîne en segments
    • strtolower - Renvoie une chaîne en minuscules
    • strtotime - Transforme un texte anglais en timestamp
    • strtoupper - Renvoie une chaîne en majuscules
    • strtr - Remplace des caractères dans une chaîne
    • strval - Récupère la valeur d'une variable, au format chaîne
    • str_getcsv - Analyse une chaîne de caractères CSV dans un tableau
    • str_ireplace - Version insensible à la casse de str_replace
    • str_pad - Complète une chaîne jusqu'à une taille donnée
    • str_repeat - Répète une chaîne
    • str_replace - Remplace toutes les occurrences dans une chaîne
    • str_rot13 - Effectue une transformation ROT13
    • str_shuffle - Mélange les caractères d'une chaîne de caractères
    • str_split - Convertit une chaîne de caractères en tableau
    • str_word_count - Compte le nombre de mots utilisés dans une chaîne
    • substr - Retourne un segment de chaîne
    • substr_compare - Compare deux chaînes depuis un offset jusqu'à une longueur en caractères
    • substr_count - Compte le nombre d'occurrences de segments dans une chaîne
    • substr_replace - Remplace un segment dans une chaîne
    • SVM::crossvalidate - Test les paramètres d'entraînement sur les sous-jeux de données d’entraînement
    • SVM::getOptions - Retourne les paramètres courants d’entraînement
    • SVM::setOptions - Définit des paramètres d'entraînement
    • SVM::train - Crée un modèle SVMModel suivant les données d'entraînement
    • SVM::__construct - Construit un nouvel objet SVM
    • SVMModel::checkProbabilityModel - Retourne TRUE si le modèle a des informations probablistes
    • SVMModel::getLabels - Récupère les labels utilisés pour entraîner le modèle
    • SVMModel::getNrClass - Retourne le nombre de classes utilisées pour entraîner le modèle
    • SVMModel::getSvmType - Récupère le type SVM utilisé pour entraîner le modèle
    • SVMModel::getSvrProbability - Récupère la valeur sigma pour les types de régression
    • SVMModel::load - Charge un modèle SVM sauvegardé
    • SVMModel::predict - Prédit une valeur pour des précédentes données non vues
    • SVMModel::predict_probability - Retourne les probabilités pour les données précédentes non présentées
    • SVMModel::save - Sauvegarde un modèle dans un fichier
    • SVMModel::__construct - Construit un nouvel objet SVMModel
    • svn_add - Prévoit l'ajout d'un élément dans le dossier de travail
    • svn_auth_get_parameter - Récupère un paramètre d'identification
    • svn_auth_set_parameter - Spécifie un paramètre d'identification
    • svn_blame - Récupère les condamnations SVN pour un fichier
    • svn_cat - Récupère le contenu d'un fichier du référentiel
    • svn_checkout - Extrait une copie de travail depuis un référentiel
    • svn_cleanup - Nettoie, récursivement, un dossier de travail, en finissant les opérations incomplètes et en supprimant les verrous
    • svn_client_version - Récupère la version des bibliothèques clientes SVN
    • svn_commit - Envoie les modifications depuis la copie locale vers le référentiel
    • svn_delete - Efface un élément d'un dossier de travail ou d'un dépôt
    • svn_diff - Compare deux chemins, récursivement
    • svn_export - Exporte le contenu d'un dossier SVN
    • svn_fs_abort_txn - Stoppe une transaction
    • svn_fs_apply_text - Crée et retourne un flux à utiliser pour modifier un fichier
    • svn_fs_begin_txn2 - Crée une nouvelle transaction
    • svn_fs_change_node_prop - Retourne TRUE si tout est Ok, FALSE sinon
    • svn_fs_check_path - Détermine quel type d'élément est pointé par un chemin donné
    • svn_fs_contents_changed - Retourne TRUE si le contenu est différent, FALSE sinon
    • svn_fs_copy - Copie un fichier ou un dossier
    • svn_fs_delete - Supprime un fichier ou un dossier
    • svn_fs_dir_entries - Énumère les éléments d'un dossier
    • svn_fs_file_contents - Retourne un flux afin d'accéder au contenu d'un fichier pour une révision donnée
    • svn_fs_file_length - Retourne la taille d'un fichier pour une révision donnée
    • svn_fs_is_dir - Retourne TRUE si le chemin pointe vers un dossier, FALSE sinon
    • svn_fs_is_file - Retourne TRUE si le chemin pointe vers un fichier, FALSE sinon
    • svn_fs_make_dir - Crée un nouveau dossier
    • svn_fs_make_file - Crée un fichier vide
    • svn_fs_node_created_rev - Retourne la révision dans laquelle le chemin, sous fsroot, a été créé
    • svn_fs_node_prop - Retourne la valeur d'une propriété d'un noeud
    • svn_fs_props_changed - Retourne TRUE si les propriétés sont différentes, FALSE sinon
    • svn_fs_revision_prop - Récupère la valeur d'une propriété nommée
    • svn_fs_revision_root - Récupère un gestionnaire sur une révision spécifique sur la racine du référentiel
    • svn_fs_txn_root - Crée et retourne une transaction
    • svn_fs_youngest_rev - Retourne le numéro de la révision la plus récente du système de fichiers
    • svn_import - Importe un chemin non-versionné dans un référentiel
    • svn_log - Récupère le message d'historisation d'une URL du référentiel
    • svn_ls - Retourne la liste du contenu d'un dossier d'un référentiel, optionnellement à la révision fournie
    • svn_mkdir - Crée un dossier dans la copie de travail ou dans le référentiel
    • svn_repos_create - Crée un nouveau référentiel Subversion
    • svn_repos_fs - Récupère un gestionnaire du système de fichiers
    • svn_repos_fs_begin_txn_for_commit - Crée une nouvelle transaction
    • svn_repos_fs_commit_txn - Livre une transaction et retourne la nouvelle révision
    • svn_repos_hotcopy - Effectue une copie à chaud du référentiel
    • svn_repos_open - Ouvre un verrou partagé sur un référentiel
    • svn_repos_recover - Exécute les procédures de récupération du référentiel
    • svn_revert - Revenir en arrière sur les changements de la copie de travail
    • svn_status - Récupère le statut des fichiers et des dossiers de la copie de travail
    • svn_update - Met à jour la copie de travail
    • SWFAction::__construct - Crée un nouvel objet SWFAction
    • SWFBitmap::getHeight - Retourne la hauteur d'un bitmap
    • SWFBitmap::getWidth - Retourne la largeur d'un bitmap
    • SWFBitmap::__construct - Charge un objet Bitmap
    • SWFButton::addAction - Ajoute une action
    • SWFButton::addASound - Associe un son à un bouton
    • SWFButton::addShape - Ajoute une forme à un bouton
    • SWFButton::setAction - Définit l'action
    • SWFButton::setDown - Alias pour addShape(shape, SWFBUTTON_DOWN)
    • SWFButton::setHit - Alias pour addShape(shape, SWFBUTTON_HIT)
    • SWFButton::setMenu - Active un menu sur un bouton
    • SWFButton::setOver - Alias pour addShape(shape, SWFBUTTON_OVER)
    • SWFButton::setUp - Alias pour addShape(shape, SWFBUTTON_UP)
    • SWFButton::__construct - Crée un nouveau bouton
    • SWFDisplayItem::addAction - Ajoute ce SWFAction à l'instance SWFSprite fournie
    • SWFDisplayItem::addColor - Ajoute une couleur à la transformation de couleur de l'élément
    • SWFDisplayItem::endMask - Une autre façon de définir une interface MASK
    • SWFDisplayItem::getRot - Description
    • SWFDisplayItem::getX - Description
    • SWFDisplayItem::getXScale - Description
    • SWFDisplayItem::getXSkew - Description
    • SWFDisplayItem::getY - Description
    • SWFDisplayItem::getYScale - Description
    • SWFDisplayItem::getYSkew - Description
    • SWFDisplayItem::move - Déplace un objet dans les coordonnées relatives
    • SWFDisplayItem::moveTo - Déplace un objet dans les coordonnées globales
    • SWFDisplayItem::multColor - Multiplie la transformation de couleur d'un élément
    • SWFDisplayItem::remove - Efface l'objet du film
    • SWFDisplayItem::rotate - Rotation, en coordonnées relatives
    • SWFDisplayItem::rotateTo - Tourne l'objet dans les coordonnées globales
    • SWFDisplayItem::scale - Met à l'échelle l'objet dans des coordonnées relatives
    • SWFDisplayItem::scaleTo - Met à l'échelle l'objet dans les coordonnées globales
    • SWFDisplayItem::setDepth - Définit le z-order
    • SWFDisplayItem::setMaskLevel - Définit le niveau de l'interface MASK
    • SWFDisplayItem::setMatrix - Définit la matrice de transformation de l'élément
    • SWFDisplayItem::setName - Définit le nom de l'objet
    • SWFDisplayItem::setRatio - Définit le ratio de l'objet
    • SWFDisplayItem::skewX - Définit le X-skew
    • SWFDisplayItem::skewXTo - Définit le X-skew
    • SWFDisplayItem::skewY - Définit le Y-skew
    • SWFDisplayItem::skewYTo - Définit le Y-skew
    • SWFFill::moveTo - Déplace le motif original
    • SWFFill::rotateTo - Définit la rotation du motif
    • SWFFill::scaleTo - Définit l'échelle du motif
    • SWFFill::skewXTo - Définit le motif x-skew
    • SWFFill::skewYTo - Définit le motif y-skew
    • SWFFont::getAscent - Retourne la montée de la police, ou 0 si non disponible
    • SWFFont::getDescent - Retourne la descente de la police, ou 0 si non disponible
    • SWFFont::getLeading - Retourne l'interlignage de la police, ou 0 si non disponible
    • SWFFont::getShape - Retourne la forme du glyphe d'un caractère, sous la forme d'une chaîne de caractères
    • SWFFont::getUTF8Width - Calcule la largeur d'une chaîne donnée dans une police
    • SWFFont::getWidth - Retourne la largeur de la chaîne
    • SWFFont::__construct - Charge la définition d'une police
    • SWFFontChar::addChars - Ajoute des caractères à une police pour l'exportation de la police
    • SWFFontChar::addUTF8Chars - Ajoute des caractères à une police pour l'exportation de la police
    • SWFGradient::addEntry - Ajoute une entrée dans la liste de gradient
    • SWFGradient::__construct - Crée un objet gradient
    • SWFMorph::getShape1 - Récupère un gestionnaire pour une forme
    • SWFMorph::getShape2 - Récupère un gestionnaire de forme de fin
    • SWFMorph::__construct - Crée un nouvel objet SWFMorph
    • SWFMovie::add - Ajoute n'importe quelle donnée à une vidéo
    • SWFMovie::addExport - Description
    • SWFMovie::addFont - Description
    • SWFMovie::importChar - Description
    • SWFMovie::importFont - Description
    • SWFMovie::labelFrame - Nomme une frame
    • SWFMovie::nextFrame - Se déplace sur la prochaine frame d'une animation
    • SWFMovie::output - Affiche la vidéo
    • SWFMovie::remove - Efface une instance d'un objet depuis la liste d'affichage
    • SWFMovie::save - Sauvegarde la vidéo SWF dans un fichier
    • SWFMovie::saveToFile - Description
    • SWFMovie::setbackground - Définit la couleur d'arrière plan
    • SWFMovie::setDimension - Définit les dimensions de la vidéo
    • SWFMovie::setFrames - Définit le nombre de frames dans l'animation
    • SWFMovie::setRate - Définit le débit des frames de l'animation
    • SWFMovie::startSound - Description
    • SWFMovie::stopSound - Description
    • SWFMovie::streamMP3 - Diffuse un fichier MP3
    • SWFMovie::writeExports - Description
    • SWFMovie::__construct - Crée un nouvel objet vidéo, représentant une vidéo SWF version 4
    • SWFPrebuiltClip::__construct - Retourne un objet SWFPrebuiltClip
    • SWFShape::addFill - Ajoute un motif solide à la forme
    • SWFShape::drawArc - Trace un arc de cercle entre deux angles
    • SWFShape::drawCircle - Trace un cercle, centré sur la position courante
    • SWFShape::drawCubic - Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle
    • SWFShape::drawCubicTo - Trace une courbe de Bézier en utilisant la position courante et les trois points de contrôle
    • SWFShape::drawCurve - Trace une courbe (relative)
    • SWFShape::drawCurveTo - Trace une courbe
    • SWFShape::drawGlyph - Dessine le premier caractère d'une chaîne donnée dans la forme en utilisant la définition du glyphe pour la police donnée
    • SWFShape::drawLine - Trace une ligne (relative)
    • SWFShape::drawLineTo - Trace une ligne
    • SWFShape::movePen - Déplace le stylo
    • SWFShape::movePenTo - Déplace le stylo dans la forme
    • SWFShape::setLeftFill - Définit la couleur de la trame de gauche
    • SWFShape::setLine - Définit le style de la forme d'une ligne
    • SWFShape::setRightFill - Définit la couleur de la trame de droite
    • SWFShape::__construct - Crée un nouvel objet SWFShape
    • SWFSound::__construct - Retourne un nouvel objet SWFSound depuis un fichier donné
    • SWFSoundInstance::loopCount - Description
    • SWFSoundInstance::loopInPoint - Description
    • SWFSoundInstance::loopOutPoint - Description
    • SWFSoundInstance::noMultiple - Description
    • SWFSprite::add - Ajoute un objet à un sprite
    • SWFSprite::labelFrame - Libellé d'une image
    • SWFSprite::nextFrame - Déplace la prochaine image de l'animation
    • SWFSprite::remove - Efface l'objet d'un sprite
    • SWFSprite::setFrames - Définit le nombre total d'images dans l'animation
    • SWFSprite::startSound - Description
    • SWFSprite::stopSound - Description
    • SWFSprite::__construct - Crée un clip vidéo (un sprite)
    • SWFText::addString - Dessine une chaîne de caractères
    • SWFText::addUTF8String - Écrit le texte donné dans l'objet SWFText à la position courante, en utilisant la police, la haute, l'espacement et la couleur courants
    • SWFText::getAscent - Retourne la montée de la police courante à sa taille courante, ou 0 si elle n'est pas disponible
    • SWFText::getDescent - Retourne la descente de la police courante à sa taille courante, ou 0 si elle n'est pas disponible
    • SWFText::getLeading - Retourne l'interlignage de la police courante à sa taille courante, ou 0 s'il n'est pas disponible
    • SWFText::getUTF8Width - Calcule la largeur de la chaîne donnée dans la police et la taille courante du texte
    • SWFText::getWidth - Calcule la largeur d'une chaîne
    • SWFText::moveTo - Déplace le stylo
    • SWFText::setColor - Définit la couleur courante du texte
    • SWFText::setFont - Définit la police courante
    • SWFText::setHeight - Définit la hauteur de la police courante
    • SWFText::setSpacing - Définit l'espacement de la police courante
    • SWFText::__construct - Crée un nouvel objet SWFText
    • SWFTextField::addChars - Ajoute les caractères à la police qui sera disponible dans le champ texte
    • SWFTextField::addString - Concatène la chaîne de caractères donnée avec le champ texte
    • SWFTextField::align - Définit l'alignement du champ texte
    • SWFTextField::setBounds - Définit la hauteur et la largeur d'un champ texte
    • SWFTextField::setColor - Définit la couleur d'un champ texte
    • SWFTextField::setFont - Définit la police d'un champ texte
    • SWFTextField::setHeight - Définit la hauteur de la police d'un champ de texte
    • SWFTextField::setIndentation - Définit l'indentation de la première ligne
    • SWFTextField::setLeftMargin - Définit la largeur de la marge gauche d'un champ texte
    • SWFTextField::setLineSpacing - Définit l'espacement de ligne d'un champ texte
    • SWFTextField::setMargins - Définit la largeur des marges d'un champ texte
    • SWFTextField::setName - Définit le nom de la variable
    • SWFTextField::setPadding - Définit l'espacement interne d'un champ texte
    • SWFTextField::setRightMargin - Définit la largeur de la marge droite d'un champ texte
    • SWFTextField::__construct - Crée un objet champ de texte
    • SWFVideoStream::getNumFrames - Retourne le nombre de frames d'une vidéo
    • SWFVideoStream::setDimension - Définit les dimensions d'une vidéo
    • SWFVideoStream::__construct - Retourne un objet SWFVideoStream
    • Swish::getMetaList - Récupère la liste de méta-données de l'index
    • Swish::getPropertyList - Récupère la liste de propriétés pour un index
    • Swish::prepare - Prépare une requête de recherche
    • Swish::query - Exécute une requête et retourne un objet de résultats
    • Swish::__construct - Construit un objet Swish
    • SwishResult::getMetaList - Récupère une liste de méta-données
    • SwishResult::stem - Tronque le mot donné
    • SwishResults::getParsedWords - Récupère un tableau de mots analysés
    • SwishResults::getRemovedStopwords - Récupère un tableau de mots non significatifs supprimés de la requête
    • SwishResults::nextResult - Récupère le prochain résultat de la recherche
    • SwishResults::seekResult - Spécifie le pointeur de recherche à une position donnée
    • SwishSearch::execute - Exécute la recherche et récupère les résultats
    • SwishSearch::resetLimit - Réinitialise les limites de recherche
    • SwishSearch::setLimit - Spécifie les limites de recherche
    • SwishSearch::setPhraseDelimiter - Spécifie le délimiteur de phrase
    • SwishSearch::setSort - Spécifie l'ordre
    • SwishSearch::setStructure - Spécifie le flag de structure dans l'objet de recherche
    • sybase_affected_rows - Retourne le nombre de lignes affectées par la dernière requête Sybase
    • sybase_close - Ferme une connexion Sybase
    • sybase_connect - Ouvre une connexion à un serveur Sybase
    • sybase_data_seek - Déplace le pointeur interne de lignes Sybase
    • sybase_deadlock_retry_count - Configure le nombre de tentatives lors de blocages
    • sybase_fetch_array - Retourne une ligne Sybase sous la forme d'un tableau
    • sybase_fetch_assoc - Lit une ligne de résultat Sybase sous forme de tableau associatif
    • sybase_fetch_field - Lit les informations d'un champ Sybase
    • sybase_fetch_object - Retourne une ligne Sybase sous la forme d'un objet
    • sybase_fetch_row - Retourne une ligne Sybase sous la forme d'un tableau numérique
    • sybase_field_seek - Modifie l'index d'un champ Sybase
    • sybase_free_result - Libère un résultat Sybase de la mémoire
    • sybase_get_last_message - Retourne le dernier message du serveur
    • sybase_min_client_severity - Fixe la sévérité minimale du client Sybase
    • sybase_min_error_severity - Fixe la sévérité minimale du client pour les erreurs
    • sybase_min_message_severity - Fixe la sévérité minimale du client pour les messages
    • sybase_min_server_severity - Fixe la sévérité minimale du client pour le serveur Sybase
    • sybase_num_fields - Retourne le nombre de champs dans un résultat Sybase
    • sybase_num_rows - Retourne le nombre de lignes dans un résultat Sybase
    • sybase_pconnect - Ouvre une connexion persistante à un serveur Sybase
    • sybase_query - Envoie une requête à une base Sybase
    • sybase_result - Lit une valeur dans un résultat
    • sybase_select_db - Sélectionne une base de données Sybase
    • sybase_set_message_handler - Configure le gestionnaire de messages Sybase
    • sybase_unbuffered_query - Envoie une requête à Sybase et ne bloque pas
    • symlink - Crée un lien symbolique
    • SyncEvent::fire - Lance/défini l'événement
    • SyncEvent::reset - Réinitialise manuellement un événement
    • SyncEvent::wait - Attend que l'objet SyncEvent ne soit lancé
    • SyncEvent::__construct - Construit un nouvel objet SyncEvent
    • SyncMutex::lock - Obtient un verrou exclusif
    • SyncMutex::unlock - Déverouille le mutex
    • SyncMutex::__construct - Construit un nouvel objet SyncMutex
    • SyncReaderWriter::readlock - Obtiens un verrou de lecture
    • SyncReaderWriter::readunlock - Libère un verrou de lecture
    • SyncReaderWriter::writelock - Obtiens un verrou d'écriture exclusif
    • SyncReaderWriter::writeunlock - Libère un verrou d'écriture
    • SyncReaderWriter::__construct - Construit un nouvel objet SyncReaderWriter
    • SyncSemaphore::lock - Décrémente le compteur de l'objet SyncSemaphore ou attend
    • SyncSemaphore::unlock - Incrémente le compteur de l'objet SyncSemaphore
    • SyncSemaphore::__construct - Construit un nouvel objet SyncSemaphore
    • syslog - Génère un message dans l'historique système
    • system - Exécute un programme externe et affiche le résultat
    • sys_getloadavg - Récupère la charge moyenne du système
    • sys_get_temp_dir - Retourne le chemin du répertoire utilisé pour les fichiers temporaires
  • t
    • taint - Nettoie une chaîne
    • tan - Tangente
    • tanh - Tangente hyperbolique
    • tcpwrap_check - Vérification Tcpwrap
    • tempnam - Crée un fichier avec un nom unique
    • textdomain - Fixe le domaine par défaut
    • Thread::detach - Exécution
    • Thread::getCreatorId - Identification
    • Thread::getCurrentThread - Identification
    • Thread::getCurrentThreadId - Identification
    • Thread::getThreadId - Identification
    • Thread::globally - Exécution
    • Thread::isJoined - Détection de statut
    • Thread::isStarted - Détection de statut
    • Thread::join - Synchronisation
    • Thread::kill - Exécution
    • Thread::start - Exécution
    • Threaded::chunk - Manipulation
    • Threaded::count - Manipulation
    • Threaded::extend - Manipulation pendant l'exécution
    • Threaded::from - Création
    • Threaded::getTerminationInfo - Détection d'erreur
    • Threaded::isRunning - Détection de statut
    • Threaded::isTerminated - Détection de statut
    • Threaded::isWaiting - Détection de statut
    • Threaded::lock - Synchronisation
    • Threaded::merge - Manipulation
    • Threaded::notify - Synchronisation
    • Threaded::pop - Manipulation
    • Threaded::run - Exécution
    • Threaded::shift - Manipulation
    • Threaded::synchronized - Synchronisation
    • Threaded::unlock - Synchronisation
    • Threaded::wait - Synchronisation
    • Throwable::getCode - Gets the exception code
    • Throwable::getFile - Gets the file in which the exception occurred
    • Throwable::getLine - Gets the line on which the object was instantiated
    • Throwable::getMessage - Gets the message
    • Throwable::getPrevious - Returns the previous Throwable
    • Throwable::getTrace - Gets the stack trace
    • Throwable::getTraceAsString - Gets the stack trace as a string
    • Throwable::__toString - Gets a string representation of the thrown object
    • tidy::$errorBuffer - Retourne les alertes et erreurs qui sont survenues lors de l'analyse du document
    • tidy::body - Retourne un objet TidyNode, commencé à partir de la balise <body>
    • tidy::cleanRepair - Effectue les opérations de nettoyage et de réparation préparées pour un fichier HTML
    • tidy::diagnose - Établit le diagnostic pour le document analysé et réparé
    • tidy::getConfig - Lit la configuration Tidy courante
    • tidy::getHtmlVer - Détecte le version du code HTML utilisée dans un document
    • Tidy::getopt - Retourne la valeur de l'option de configuration Tidy
    • tidy::getOptDoc - Retourne la documentation pour le nom de l'option donnée
    • tidy::getRelease - Retourne la date de publication (version) de la bibliothèque Tidy
    • tidy::getStatus - Retourne le statut du document spécifié
    • tidy::head - Retourne un objet tidyNode à partir de la balise <head>
    • tidy::html - Retourne un objet tidyNode commençant à la balise <html>
    • tidy::isXhtml - Indique si le document est un document XHTML
    • tidy::isXml - Indique si le document est un document XML générique (non HTML/XHTML)
    • tidy::parseFile - Analyse les balises d'un fichier ou d'une URI
    • tidy::parseString - Analyse un document HTML contenu dans une chaîne
    • tidy::repairFile - Répare un fichier et le renvoie en tant que chaîne
    • tidy::repairString - Répare une chaîne HTML en utilisant un fichier de configuration optionnel
    • tidy::root - Retourne un objet tidyNode représentant la racine du document HTML
    • tidy::__construct - Construit un nouvel objet tidy
    • tidyNode::getParent - Retourne le noeud parent du noeud courant
    • tidyNode::hasChildren - Indique si le noeud a des enfants
    • tidyNode::hasSiblings - Indique si le noeud a des frères
    • tidyNode::isAsp - Vérifie si le noeud est du code ASP
    • tidyNode::isComment - Indique si le noeud représente un commentaire
    • tidyNode::isHtml - Indique si le noeud est une partie d'un document HTML
    • tidyNode::isJste - Indique si ce noeud est JSTE
    • tidyNode::isPhp - Indique si un noeud contient du code PHP
    • tidyNode::isText - Indique si le noeud représente du texte (sans balise)
    • tidy_access_count - Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document
    • tidy_config_count - Retourne le nombre d'erreurs de configuration Tidy rencontrées dans le document
    • tidy_error_count - Retourne le nombre d'erreurs Tidy rencontrées dans le document
    • tidy_get_output - Retourne une chaîne représentant les balises telles qu'analysées par Tidy
    • tidy_load_config - Charge un fichier de configuration ASCII Tidy avec l'encodage spécifié
    • tidy_reset_config - Redonne les valeurs de configuration par défaut de Tidy
    • tidy_save_config - Sauve la configuration courante dans un fichier
    • tidy_setopt - Modifie la valeur de l'option de configuration Tidy
    • tidy_set_encoding - Modifie le jeu de caractères pour les entrées/sorties de l'analyseur Tidy
    • tidy_warning_count - Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié
    • time - Retourne le timestamp UNIX actuel
    • timezone_abbreviations_list - Alias de DateTimeZone::listAbbreviations
    • timezone_identifiers_list - Alias de DateTimeZone::listIdentifiers
    • timezone_location_get - Alias de DateTimeZone::getLocation
    • timezone_name_from_abbr - Retourne le nom du fuseau horaire à partir de son abréviation
    • timezone_name_get - Alias de DateTimeZone::getName
    • timezone_offset_get - Alias de DateTimeZone::getOffset
    • timezone_open - Alias de DateTimeZone::__construct
    • timezone_transitions_get - Alias de DateTimeZone::getTransitions
    • timezone_version_get - Lit la version de la timezonedb
    • time_nanosleep - Attendre pendant un nombre de secondes et de nanosecondes
    • time_sleep_until - Arrête le script pendant une durée spécifiée
    • tmpfile - Crée un fichier temporaire
    • token_get_all - Scinde un code source en éléments de base
    • token_name - Retourne le nom d'un élément de code source
    • TokyoTyrant::add - Ajoute une clé numérique
    • TokyoTyrant::connect - Connexion à une base de données
    • TokyoTyrant::connectUri - Connexion à une base de données en utilisant une URI
    • TokyoTyrant::copy - Copie la base de données
    • TokyoTyrant::ext - Exécute un script distant
    • TokyoTyrant::fwmKeys - Retourne la clé correspondante précédente
    • TokyoTyrant::get - Le but de get
    • TokyoTyrant::getIterator - Récupère un itérateur
    • TokyoTyrant::num - Nombre d'enregistrements contenus dans la base de données
    • TokyoTyrant::out - Supprime des enregistrements
    • TokyoTyrant::put - Insère des valeurs
    • TokyoTyrant::putCat - Concatène un enregistrement
    • TokyoTyrant::putKeep - Enregistre un nouvel enregistrement
    • TokyoTyrant::putNr - Enregistre une valeur
    • TokyoTyrant::putShl - Concatène un enregistrement
    • TokyoTyrant::restore - Restaure la base de données
    • TokyoTyrant::setMaster - Définit le maître de réplication
    • TokyoTyrant::size - Retourne la taille de la valeur
    • TokyoTyrant::stat - Récupère des statistiques
    • TokyoTyrant::sync - Synchronise la base de données
    • TokyoTyrant::tune - Règle les valeurs de connexion
    • TokyoTyrant::vanish - Vide la base de données
    • TokyoTyrant::__construct - Construit un nouvel objet TokyoTyrant
    • TokyoTyrantIterator::current - Récupère la valeur courante
    • TokyoTyrantIterator::key - Retourne la clé courante
    • TokyoTyrantIterator::next - Se déplace sur la prochaine clé
    • TokyoTyrantIterator::rewind - Réinitialise l'itérateur
    • TokyoTyrantIterator::valid - Réinitialise l'itérateur
    • TokyoTyrantIterator::__construct - Construit un itérateur
    • TokyoTyrantQuery::addCond - Ajoute une condition à la requête
    • TokyoTyrantQuery::count - Compte les enregistrements
    • TokyoTyrantQuery::current - Retourne l'élément courant
    • TokyoTyrantQuery::hint - Récupère les informations sur une requête
    • TokyoTyrantQuery::key - Retourne la clé courante
    • TokyoTyrantQuery::metaSearch - Récupère des enregistrements avec plusieurs requêtes
    • TokyoTyrantQuery::next - Déplace l'itérateur sur la prochaine entrée
    • TokyoTyrantQuery::out - Supprime des enregistrements en se basant sur une requête
    • TokyoTyrantQuery::rewind - Réinitialise l'itérateur
    • TokyoTyrantQuery::search - Cherche des enregistrements
    • TokyoTyrantQuery::setLimit - Limite les résultats
    • TokyoTyrantQuery::setOrder - Définit l'ordre des résultats
    • TokyoTyrantQuery::valid - Vérifie la validité de l'élément courant
    • TokyoTyrantQuery::__construct - Construit une nouvelle requête
    • TokyoTyrantTable::add - Ajoute un enregistrement
    • TokyoTyrantTable::genUid - Génère un identifiant unique
    • TokyoTyrantTable::get - Récupère une ligne
    • TokyoTyrantTable::getIterator - Récupère un itérateur
    • TokyoTyrantTable::getQuery - Récupère un objet de requête
    • TokyoTyrantTable::out - Supprime un enregistement
    • TokyoTyrantTable::put - Enregistre une ligne
    • TokyoTyrantTable::putCat - Concatène une ligne
    • TokyoTyrantTable::putKeep - Enregistre un nouvel enregistrement
    • TokyoTyrantTable::putNr - Enregistre une valeur
    • TokyoTyrantTable::putShl - Concatène un enregistrement
    • TokyoTyrantTable::setIndex - Définit l'index
    • touch - Modifie la date de modification et de dernier accès d'un fichier
    • trader_acos - Vector Trigonometric ACos
    • trader_ad - Chaikin A/D Line
    • trader_add - Ajoute un vecteur arithmétique
    • trader_adosc - Chaikin A/D Oscillator
    • trader_adx - Average Directional Movement Index
    • trader_adxr - Average Directional Movement Index Rating
    • trader_apo - Absolute Price Oscillator
    • trader_aroon - Aroon
    • trader_aroonosc - Aroon Oscillator
    • trader_asin - Vector Trigonometric ASin
    • trader_atan - Calcule l'arc tangente
    • trader_atr - Average True Range
    • trader_avgprice - Average Price
    • trader_bbands - Bollinger Bands
    • trader_beta - Beta
    • trader_bop - Balance Of Power
    • trader_cci - Commodity Channel Index
    • trader_cdl2crows - Two Crows
    • trader_cdl3blackcrows - Three Black Crows
    • trader_cdl3inside - Three Inside Up/Down
    • trader_cdl3linestrike - Three-Line Strike
    • trader_cdl3outside - Three Outside Up/Down
    • trader_cdl3starsinsouth - Three Stars In The South
    • trader_cdl3whitesoldiers - Three Advancing White Soldiers
    • trader_cdlabandonedbaby - Abandoned Baby
    • trader_cdladvanceblock - Advance Block
    • trader_cdlbelthold - Belt-hold
    • trader_cdlbreakaway - Breakaway
    • trader_cdlclosingmarubozu - Closing Marubozu
    • trader_cdlconcealbabyswall - Concealing Baby Swallow
    • trader_cdlcounterattack - Counterattack
    • trader_cdldarkcloudcover - Dark Cloud Cover
    • trader_cdldoji - Doji
    • trader_cdldojistar - Doji Star
    • trader_cdldragonflydoji - Dragonfly Doji
    • trader_cdlengulfing - Engulfing Pattern
    • trader_cdleveningdojistar - Evening Doji Star
    • trader_cdleveningstar - Evening Star
    • trader_cdlgapsidesidewhite - Up/Down-gap side-by-side white lines
    • trader_cdlgravestonedoji - Gravestone Doji
    • trader_cdlhammer - Hammer
    • trader_cdlhangingman - Hanging Man
    • trader_cdlharami - Harami Pattern
    • trader_cdlharamicross - Harami Cross Pattern
    • trader_cdlhighwave - High-Wave Candle
    • trader_cdlhikkake - Hikkake Pattern
    • trader_cdlhikkakemod - Modified Hikkake Pattern
    • trader_cdlhomingpigeon - Homing Pigeon
    • trader_cdlidentical3crows - Identical Three Crows
    • trader_cdlinneck - Masque In-Neck
    • trader_cdlinvertedhammer - Marteau inversé
    • trader_cdlkicking - Kicking
    • trader_cdlkickingbylength - Kicking - bull/bear déterminé par le plus marubozu
    • trader_cdlladderbottom - Bas de l'échelle
    • trader_cdllongleggeddoji - Doji : longueur des jambes
    • trader_cdllongline - Long Line Candle
    • trader_cdlmarubozu - Marubozu
    • trader_cdlmatchinglow - Matching Low
    • trader_cdlmathold - Mat Hold
    • trader_cdlmorningdojistar - Etoile Doji du matin
    • trader_cdlmorningstar - Etoile du matin
    • trader_cdlonneck - Masque On-Neck
    • trader_cdlpiercing - Masque Piercing
    • trader_cdlrickshawman - Rickshaw Man
    • trader_cdlrisefall3methods - Hausse / Baisse - 3 méthodes
    • trader_cdlseparatinglines - Lignes séparées
    • trader_cdlshootingstar - Etoile filante
    • trader_cdlshortline - Ligne courte de bougie
    • trader_cdlspinningtop - Toupie
    • trader_cdlstalledpattern - Masque bloqué
    • trader_cdlsticksandwich - Sandwich épinglé
    • trader_cdltakuri - Takuri (Dragonfly Doji avec une ombre inférieure très longue)
    • trader_cdltasukigap - Ecart Tasuki
    • trader_cdlthrusting - Masque de poussée
    • trader_cdltristar - Masque Tristar
    • trader_cdlunique3river - Unique 3 River
    • trader_cdlupsidegap2crows - Ecart inversé Two Crows
    • trader_cdlxsidegap3methods - Ecart supérieur/inférieur trois méthodes
    • trader_ceil - Vecteur plafonné
    • trader_cmo - Oscillateur dynamique Chande
    • trader_correl - Coefficient de corrélation de Pearson (r)
    • trader_cos - Vecteur trigonométrique Cos
    • trader_cosh - Vecteur trigonométrique Cosh
    • trader_dema - Moyenne mobile exponentielle double
    • trader_div - Vecteur arithmétique Div
    • trader_dx - Indice de mouvement directionnel
    • trader_ema - Moyenne mobile exponentielle
    • trader_errno - Récupère le code erreur
    • trader_exp - Vecteur arithmétique Exp
    • trader_floor - Niveau du vecteur
    • trader_get_compat - Récupère le mode de compatibilité
    • trader_get_unstable_period - Récupère la période d'instabilité
    • trader_ht_dcperiod - Transformation de Hilbert - Période de cycle dominant
    • trader_ht_dcphase - Transformation de Hilbert - Phase de cycle dominant
    • trader_ht_phasor - Transformation de Hilbert - Composants de la phase
    • trader_ht_sine - Transformation de Hilbert - Onde sinusoïdale
    • trader_ht_trendline - Transformation de Hilbert - Tendance instantanée
    • trader_ht_trendmode - Transformation de Hilbert - Mode tendance vs mode cycle
    • trader_kama - Moyenne mobile adaptative Kaufman
    • trader_linearreg - Régression linéaire
    • trader_linearreg_angle - Angle de régression linéaire
    • trader_linearreg_intercept - Interception de régression linéaire
    • trader_linearreg_slope - Pente de régression linéaire
    • trader_ln - Vecteur de Log naturel
    • trader_log10 - Vecteur Log10
    • trader_ma - Moyenne mobile
    • trader_macd - Moyenne du déplacement Convergence/Divergence
    • trader_macdext - MACD avec un type MA réglable
    • trader_macdfix - Moyen de déplacement Convergence/Divergence fixé à 12/26
    • trader_mama - MESA moyenne mobile adaptative
    • trader_mavp - Moyenne mobile avec durée variable
    • trader_max - Valeur la plus élevée sur une période déterminée
    • trader_maxindex - Indice de la valeur la plus élevée sur une période déterminée
    • trader_medprice - Prix médian
    • trader_mfi - Indice de fluidité de l'argent
    • trader_midpoint - Milieu sur la période
    • trader_midprice - Prix moyen sur la période
    • trader_min - Valeur la plus basse sur une période spécifique
    • trader_minindex - Indice de la valeur la plus basse sur une période déterminée
    • trader_minmax - Valeurs minimales et maximales sur une période donnée
    • trader_minmaxindex - Indices des valeurs minimales et maximales sur une période donnée
    • trader_minus_di - Indicateur minimum directionnel
    • trader_minus_dm - Mouvement minimum directionnel
    • trader_mom - Elan
    • trader_mult - Vecteur arithmétique mult
    • trader_natr - Intervalle réel normalisé moyen
    • trader_obv - Volume de l'équilibre
    • trader_plus_di - Indicateur positif de direction
    • trader_plus_dm - Mouvement directionnel positif
    • trader_ppo - Oscillateur de prix en pourcentage
    • trader_roc - Taux de variation : ((price/prevPrice)-1)*100
    • trader_rocp - Taux de variation en pourcentage : (price-prevPrice)/prevPrice
    • trader_rocr - Taux de rapport de changement : (price/prevPrice)
    • trader_rocr100 - Taux de taux de variation de l'échelle de 100 : (price/prevPrice)*100
    • trader_rsi - Indice de force relative
    • trader_sar - Parabolique SAR
    • trader_sarext - Parabolique SAR - Etendu
    • trader_set_compat - Définit le mode de compatibilité
    • trader_set_unstable_period - Définit une période instable
    • trader_sin - Vecteur trigonométrique sin
    • trader_sinh - Vecteur trigonométrique sinh
    • trader_sma - Moyenne mobile simple
    • trader_sqrt - Vecteur de racine carrée
    • trader_stddev - Déviation standard
    • trader_stoch - Stochastique
    • trader_stochf - Rapidité stochastique
    • trader_stochrsi - Index stochastique relatif fort
    • trader_sub - Vecteur de soustraction arithmétique
    • trader_sum - Résumé
    • trader_t3 - Triple moyenne mobile exponentielle (T3)
    • trader_tan - Vecteur trigonométrie Tan
    • trader_tanh - Vecteur trigonométrie Tanh
    • trader_tema - Triple moyenne mobile exponentielle
    • trader_trange - Intervalle réel
    • trader_trima - Moyenne mobile triangulaire
    • trader_trix - Taux de variation sur une journée (ROC) d'un triple EMA lissé
    • trader_tsf - Prévisions des séries chronologiques
    • trader_typprice - Prix ??typique
    • trader_ultosc - Oscillateur ultime
    • trader_var - Variance
    • trader_wclprice - Prix clos ??pondéré
    • trader_willr - Williams' %R
    • trader_wma - Moyenne mobile pondérée
    • trait_exists - Vérifie si un trait existe
    • Transliterator::create - Crée un Transliterator
    • Transliterator::createFromRules - Crée un translittérateur depuis des règles
    • Transliterator::createInverse - Crée un translittérateur inverse
    • Transliterator::getErrorCode - Récupère le dernier code erreur
    • Transliterator::getErrorMessage - Récupère le dernier message d'erreur
    • Transliterator::listIDs - Récupère les identifiants de ce translittérateur
    • Transliterator::transliterate - Translittère une chaîne de caractères
    • Transliterator::__construct - Constructeur privé pour interdire l'instantiation
    • trigger_error - Déclenche une erreur utilisateur
    • trim - Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
    • Types SQL en PDO_4D et PHP - Types SQL en PDO_4D et PHP
  • u
    • uasort - Trie un tableau en utilisant une fonction de rappel
    • ucfirst - Met le premier caractère en majuscule
    • UConverter::convert - Convertit une chaîne d'un jeu de caractères vers un autre jeu de caractères
    • UConverter::fromUCallback - Fonction de rappel "from"
    • UConverter::getAliases - Récupère les alias du nom fourni
    • UConverter::getAvailable - Récupère le nom canonique des convertisseurs diponibles
    • UConverter::getDestinationEncoding - Récupère l'encodage de la destination
    • UConverter::getDestinationType - Récupère le type de la destination du convertisseur
    • UConverter::getErrorCode - Récupère le code de la dernière erreur survenue sur l'objet
    • UConverter::getErrorMessage - Récupère le message de la dernière erreur survenue sur l'objet
    • UConverter::getSourceEncoding - Récupère l'encodage de la source
    • UConverter::getSourceType - Récupère le type de source du convertisseur
    • UConverter::getStandards - Récupère les normes associées aux noms de conversion
    • UConverter::getSubstChars - Récupère les caractères de substitution
    • UConverter::reasonText - Récupère la chaîne représentant la raison de la fonction de rappel
    • UConverter::setDestinationEncoding - Définit l'encodage de la destination
    • UConverter::setSourceEncoding - Définit l'encodage de la source
    • UConverter::setSubstChars - Définit les caractères de substitution
    • UConverter::toUCallback - Fonction de rappel "to"
    • UConverter::transcode - Convertit une chaîne depuis un jeu de caractères vers un autre jeu de caractères
    • UConverter::__construct - Crée un objet UConverter
    • ucwords - Met en majuscule la première lettre de tous les mots
    • udm_add_search_limit - Ajoute différentes limitations de recherche
    • udm_alloc_agent - Alloue une session mnoGoSearch
    • udm_alloc_agent_array - Alloue une session mnoGoSearch
    • udm_api_version - Lit la version de l'API mnoGoSearch
    • udm_cat_list - Liste toutes les catégories de même niveau
    • udm_cat_path - Lit le chemin de la catégorie courante
    • udm_check_charset - Vérifie si un jeu de caractères est supporté par mnogosearch
    • udm_clear_search_limits - Annule toutes les limitations de recherche MnoGoSearch
    • udm_crc32 - Retourne la somme de contrôle CRC32 d'une chaîne
    • udm_errno - Numéro d'erreur mnoGoSearch
    • udm_error - Message d'erreur mnoGoSearch
    • udm_find - Effectue une recherche
    • udm_free_agent - Détruit une session mnoGoSearch
    • udm_free_ispell_data - Libère la mémoire allouée pour ispell par MnoGoSearch
    • udm_free_res - Libère un résultat mnoGoSearch
    • udm_get_doc_count - Lit le nombre total de documents dans les bases MnoGoSearch
    • udm_get_res_field - Lit un champ de résultat
    • udm_get_res_param - Lit les paramètres de résultats mnoGoSearch
    • udm_hash32 - Retourne la somme de contrôle Hash32 d'une chaîne donnée
    • udm_load_ispell_data - Charge les données ispell
    • udm_set_agent_param - Modifie les paramètres de l'agent MnoGoSearch
    • UI\Area::onDraw - Draw Callback
    • UI\Area::onKey - Key Callback
    • UI\Area::onMouse - Mouse Callback
    • UI\Area::redraw - Redraw Area
    • UI\Area::scrollTo - Area Scroll
    • UI\Area::setSize - Set Size
    • UI\Control::destroy - Destroy Control
    • UI\Control::disable - Disable Control
    • UI\Control::enable - Enable Control
    • UI\Control::getParent - Get Parent Control
    • UI\Control::getTopLevel - Get Top Level
    • UI\Control::hide - Hide Control
    • UI\Control::isEnabled - Determine if Control is enabled
    • UI\Control::isVisible - Determine if Control is visible
    • UI\Control::setParent - Set Parent Control
    • UI\Control::show - Control Show
    • UI\Controls\Box::append - Append Control
    • UI\Controls\Box::delete - Delete Control
    • UI\Controls\Box::getOrientation - Get Orientation
    • UI\Controls\Box::isPadded - Padding Detection
    • UI\Controls\Box::setPadded - Set Padding
    • UI\Controls\Box::__construct - Construct a new Box
    • UI\Controls\Button::getText - Get Text
    • UI\Controls\Button::onClick - Click Handler
    • UI\Controls\Button::setText - Set Text
    • UI\Controls\Button::__construct - Construct a new Button
    • UI\Controls\Check::getText - Get Text
    • UI\Controls\Check::isChecked - Checked Detection
    • UI\Controls\Check::onToggle - Toggle Callback
    • UI\Controls\Check::setChecked - Set Checked
    • UI\Controls\Check::setText - Set Text
    • UI\Controls\Check::__construct - Construct a new Check
    • UI\Controls\ColorButton::getColor - Get Color
    • UI\Controls\ColorButton::onChange - Change Handler
    • UI\Controls\ColorButton::setColor - Set Color
    • UI\Controls\Combo::append - Append Option
    • UI\Controls\Combo::getSelected - Get Selected Option
    • UI\Controls\Combo::onSelected - Selected Handler
    • UI\Controls\Combo::setSelected - Set Selected Option
    • UI\Controls\EditableCombo::append - Append Option
    • UI\Controls\EditableCombo::getText - Get Text
    • UI\Controls\EditableCombo::onChange - Change Handler
    • UI\Controls\EditableCombo::setText - Set Text
    • UI\Controls\Entry::getText - Get Text
    • UI\Controls\Entry::isReadOnly - Detect Read Only
    • UI\Controls\Entry::onChange - Change Handler
    • UI\Controls\Entry::setReadOnly - Set Read Only
    • UI\Controls\Entry::setText - Set Text
    • UI\Controls\Entry::__construct - Construct a new Entry
    • UI\Controls\Form::append - Append Control
    • UI\Controls\Form::delete - Delete Control
    • UI\Controls\Form::isPadded - Padding Detection
    • UI\Controls\Form::setPadded - Set Padding
    • UI\Controls\Grid::append - Append Control
    • UI\Controls\Grid::isPadded - Padding Detection
    • UI\Controls\Grid::setPadded - Set Padding
    • UI\Controls\Group::append - Append Control
    • UI\Controls\Group::getTitle - Get Title
    • UI\Controls\Group::hasMargin - Margin Detection
    • UI\Controls\Group::setMargin - Set Margin
    • UI\Controls\Group::setTitle - Set Title
    • UI\Controls\Group::__construct - Construct a new Group
    • UI\Controls\Label::getText - Get Text
    • UI\Controls\Label::setText - Set Text
    • UI\Controls\Label::__construct - Construct a new Label
    • UI\Controls\MultilineEntry::append - Append Text
    • UI\Controls\MultilineEntry::getText - Get Text
    • UI\Controls\MultilineEntry::isReadOnly - Read Only Detection
    • UI\Controls\MultilineEntry::onChange - Change Handler
    • UI\Controls\MultilineEntry::setReadOnly - Set Read Only
    • UI\Controls\MultilineEntry::setText - Set Text
    • UI\Controls\MultilineEntry::__construct - Construct a new Multiline Entry
    • UI\Controls\Picker::__construct - Construct a new Picker
    • UI\Controls\Progress::getValue - Get Value
    • UI\Controls\Progress::setValue - Set Value
    • UI\Controls\Radio::append - Append Option
    • UI\Controls\Radio::getSelected - Get Selected Option
    • UI\Controls\Radio::onSelected - Selected Handler
    • UI\Controls\Radio::setSelected - Set Selected Option
    • UI\Controls\Separator::__construct - Construct a new Separator
    • UI\Controls\Slider::getValue - Get Value
    • UI\Controls\Slider::onChange - Change Handler
    • UI\Controls\Slider::setValue - Set Value
    • UI\Controls\Slider::__construct - Construct a new Slider
    • UI\Controls\Spin::getValue - Get Value
    • UI\Controls\Spin::onChange - Change Handler
    • UI\Controls\Spin::setValue - Set Value
    • UI\Controls\Spin::__construct - Construct a new Spin
    • UI\Controls\Tab::append - Append Page
    • UI\Controls\Tab::delete - Delete Page
    • UI\Controls\Tab::hasMargin - Margin Detection
    • UI\Controls\Tab::insertAt - Insert Page
    • UI\Controls\Tab::pages - Page Count
    • UI\Controls\Tab::setMargin - Set Margin
    • UI\Draw\Brush::getColor - Get Color
    • UI\Draw\Brush::setColor - Set Color
    • UI\Draw\Brush::__construct - Construct a new Brush
    • UI\Draw\Brush\Gradient::addStop - Stop Manipulation
    • UI\Draw\Brush\Gradient::delStop - Stop Manipulation
    • UI\Draw\Brush\Gradient::setStop - Stop Manipulation
    • UI\Draw\Brush\LinearGradient::__construct - Construct a Linear Gradient
    • UI\Draw\Brush\RadialGradient::__construct - Construct a new Radial Gradient
    • UI\Draw\Color::getChannel - Color Manipulation
    • UI\Draw\Color::setChannel - Color Manipulation
    • UI\Draw\Color::__construct - Construct new Color
    • UI\Draw\Matrix::invert - Invert Matrix
    • UI\Draw\Matrix::isInvertible - Invertible Detection
    • UI\Draw\Matrix::multiply - Multiply Matrix
    • UI\Draw\Matrix::rotate - Rotate Matrix
    • UI\Draw\Matrix::scale - Scale Matrix
    • UI\Draw\Matrix::skew - Skew Matrix
    • UI\Draw\Matrix::translate - Translate Matrix
    • UI\Draw\Path::addRectangle - Draw a Rectangle
    • UI\Draw\Path::arcTo - Draw an Arc
    • UI\Draw\Path::bezierTo - Draw Bezier Curve
    • UI\Draw\Path::closeFigure - Close Figure
    • UI\Draw\Path::end - Finalize Path
    • UI\Draw\Path::lineTo - Draw a Line
    • UI\Draw\Path::newFigure - Draw Figure
    • UI\Draw\Path::newFigureWithArc - Draw Figure with Arc
    • UI\Draw\Path::__construct - Construct a new Path
    • UI\Draw\Pen::clip - Clip a Path
    • UI\Draw\Pen::fill - Fill a Path
    • UI\Draw\Pen::restore - Restore
    • UI\Draw\Pen::save - Save
    • UI\Draw\Pen::stroke - Stroke a Path
    • UI\Draw\Pen::transform - Matrix Transform
    • UI\Draw\Pen::write - Draw Text at Point
    • UI\Draw\Stroke::getCap - Get Line Cap
    • UI\Draw\Stroke::getJoin - Get Line Join
    • UI\Draw\Stroke::getMiterLimit - Get Miter Limit
    • UI\Draw\Stroke::getThickness - Get Thickness
    • UI\Draw\Stroke::setCap - Set Line Cap
    • UI\Draw\Stroke::setJoin - Set Line Join
    • UI\Draw\Stroke::setMiterLimit - Set Miter Limit
    • UI\Draw\Stroke::setThickness - Set Thickness
    • UI\Draw\Stroke::__construct - Construct a new Stroke
    • UI\Draw\Text\Font::getAscent - Font Metrics
    • UI\Draw\Text\Font::getDescent - Font Metrics
    • UI\Draw\Text\Font::getLeading - Font Metrics
    • UI\Draw\Text\Font::getUnderlinePosition - Font Metrics
    • UI\Draw\Text\Font::getUnderlineThickness - Font Metrics
    • UI\Draw\Text\Font::__construct - Construct a new Font
    • UI\Draw\Text\Font\Descriptor::getFamily - Get Font Family
    • UI\Draw\Text\Font\Descriptor::getItalic - Style Detection
    • UI\Draw\Text\Font\Descriptor::getSize - Size Detection
    • UI\Draw\Text\Font\Descriptor::getStretch - Style Detection
    • UI\Draw\Text\Font\Descriptor::getWeight - Weight Detection
    • UI\Draw\Text\Font\Descriptor::__construct - Construct a new Font Descriptor
    • UI\Draw\Text\Font\fontFamilies - Retrieve Font Families
    • UI\Draw\Text\Layout::setColor - Set Color
    • UI\Draw\Text\Layout::setWidth - Set Width
    • UI\Draw\Text\Layout::__construct - Construct a new Text Layout
    • UI\Executor::kill - Stop Executor
    • UI\Executor::onExecute - Execution Callback
    • UI\Executor::setInterval - Interval Manipulation
    • UI\Executor::__construct - Construct a new Executor
    • UI\Menu::append - Append Menu Item
    • UI\Menu::appendAbout - Append About Menu Item
    • UI\Menu::appendCheck - Append Checkable Menu Item
    • UI\Menu::appendPreferences - Append Preferences Menu Item
    • UI\Menu::appendQuit - Append Quit Menu Item
    • UI\Menu::appendSeparator - Append Menu Item Separator
    • UI\Menu::__construct - Construct a new Menu
    • UI\MenuItem::disable - Disable Menu Item
    • UI\MenuItem::enable - Enable Menu Item
    • UI\MenuItem::isChecked - Detect Checked
    • UI\MenuItem::onClick - On Click Callback
    • UI\MenuItem::setChecked - Set Checked
    • UI\Point::at - Size Coercion
    • UI\Point::getX - Retrieves X
    • UI\Point::getY - Retrieves Y
    • UI\Point::setX - Set X
    • UI\Point::setY - Set Y
    • UI\Point::__construct - Construct a new Point
    • UI\quit - Quit UI Loop
    • UI\run - Enter UI Loop
    • UI\Size::getHeight - Retrieves Height
    • UI\Size::getWidth - Retrives Width
    • UI\Size::of - Point Coercion
    • UI\Size::setHeight - Set Height
    • UI\Size::setWidth - Set Width
    • UI\Size::__construct - Construct a new Size
    • UI\Window::add - Add a Control
    • UI\Window::error - Show Error Box
    • UI\Window::getSize - Get Window Size
    • UI\Window::getTitle - Get Title
    • UI\Window::hasBorders - Border Detection
    • UI\Window::hasMargin - Margin Detection
    • UI\Window::isFullScreen - Full Screen Detection
    • UI\Window::msg - Show Message Box
    • UI\Window::onClosing - Closing Callback
    • UI\Window::open - Open Dialog
    • UI\Window::save - Save Dialog
    • UI\Window::setBorders - Border Use
    • UI\Window::setFullScreen - Full Screen Use
    • UI\Window::setMargin - Margin Use
    • UI\Window::setSize - Set Size
    • UI\Window::setTitle - Window Title
    • UI\Window::__construct - Construct a new Window
    • uksort - Trie un tableau par ses clés en utilisant une fonction de rappel
    • umask - Change le "umask" courant
    • uniqid - Génère un identifiant unique
    • unixtojd - Convertit un timestamp UNIX en un jour Julien
    • unlink - Efface un fichier
    • unpack - Déconditionne des données depuis une chaîne binaire
    • unregister_tick_function - Annule la fonction exécutée à chaque tick
    • unserialize - Crée une variable PHP à partir d'une valeur linéarisée
    • unset - Détruit une variable
    • untaint - Ne nettoie pas une chaîne
    • uopz_backup - Sauvegarde une fonction
    • uopz_compose - Compose une classe
    • uopz_copy - Copie une fonction
    • uopz_delete - Supprime une fonction
    • uopz_extend - Etend une classe à l'exécution
    • uopz_flags - Récupère ou défini les drapeaux d'une fonction ou d'une classe
    • uopz_function - Crée une fonction à l'exécution
    • uopz_implement - Implémente une interface à l'exécution
    • uopz_overload - Surcharge un opcode VM
    • uopz_redefine - Re-défini une constante
    • uopz_rename - Renomme une fonction à l'exécution
    • uopz_restore - Restaure une fonction sauvegardée
    • uopz_undefine - Supprime une constante
    • urldecode - Décode une chaîne encodée URL
    • urlencode - Encode une chaîne en URL
    • user_error - Alias de trigger_error
    • use_soap_error_handler - Active le gestionnaire d'erreurs SOAP natif
    • usleep - Arrête l'exécution durant quelques microsecondes
    • usort - Trie un tableau en utilisant une fonction de comparaison
    • utf8_decode - Convertit une chaîne UTF-8 en ISO-8859-1
    • utf8_encode - Convertit une chaîne ISO-8859-1 en UTF-8
  • v
    • V8Js::executeString - Exécute une chaîne comme du code Javascript
    • V8Js::getExtensions - Retourne un tableau contenant les extensions enregistrées
    • V8Js::getPendingException - Retourne l'exception Javascript non attrapée restante
    • V8Js::registerExtension - Enregistre des extensions Javascript pour V8Js
    • V8Js::__construct - Construit un nouvel objet V8Js
    • V8JsException::getJsFileName - Le but de getJsFileName
    • V8JsException::getJsLineNumber - Le but de getJsLineNumber
    • V8JsException::getJsSourceLine - Le but de getJsSourceLine
    • V8JsException::getJsTrace - Le but de getJsTrace
    • variant_abs - Retourne la valeur absolue d'un variant
    • variant_add - "Ajoute" deux valeurs de variants et retourne le résultat
    • variant_and - Effectue un ET entre deux variants et retourne le résultat
    • variant_cast - Convertit un variant en un nouvel objet variant de type différent
    • variant_cat - Assemble deux valeurs variantes ensemble et retourne le résultat
    • variant_cmp - Compare deux variants
    • variant_date_from_timestamp - Retourne une représentation date en variant d'un timestamp Unix
    • variant_date_to_timestamp - Convertit une valeur date/temps variante en un timestamp Unix
    • variant_div - Retourne le résultat de la division de deux variants
    • variant_eqv - Effectue une équivalence de bits de deux variants
    • variant_fix - Récupère la portion entière d'un variant
    • variant_get_type - Retourne le type d'un objet variant
    • variant_idiv - Convertit des variants en valeurs entières, et effectue alors une division
    • variant_imp - Exécute une implication sur les bits de deux variants
    • variant_int - Retourne la partie entière d'un variant
    • variant_mod - Divise deux variantes et retourne le reste
    • variant_mul - Multiplie les valeurs de deux variants
    • variant_neg - Effectue une négation logique sur un variant
    • variant_not - Exécute une négation sur les bits sur un variant
    • variant_or - Performe une disjonction logique sur deux variants
    • variant_pow - Retourne le résultat de la fonction puissance avec deux variants
    • variant_round - Arrondit le variant au nombre spécifié de décimales
    • variant_set - Assigne une nouvelle valeur pour un objet variant
    • variant_set_type - Convertit un variant en un autre type "sur-place"
    • variant_sub - Soustrait la valeur du variant de droite de la valeur de celui de gauche
    • variant_xor - Exécute une exclusion logique sur deux variants
    • VarnishAdmin::auth - S'Authentifie sur une instance Varnish
    • VarnishAdmin::ban - Ban des URLs en utilisant une expression VCL
    • VarnishAdmin::banUrl - Ban une URL en utilisant une expressin VCL
    • VarnishAdmin::clearPanic - Efface les messages de panique de l'instance Varnish
    • VarnishAdmin::connect - Connexion à l'interface d'administration de l'instance Varnish
    • VarnishAdmin::disconnect - Déconnexion de l'interface d'administration d'une instance varnish
    • VarnishAdmin::getPanic - Récupère le dernier ùessage de panique de l'instance Varnish
    • VarnishAdmin::getParams - Récupère les paramètres de configuration de l'instance Varnish courante
    • VarnishAdmin::isRunning - Vérifie si un processus esclave Varnish est actuellement en cours d'exécution
    • VarnishAdmin::setCompat - Définit le paramètre de configuration compat
    • VarnishAdmin::setHost - Définit le paramètre de configuration host
    • VarnishAdmin::setIdent - Définit le paramètre de configuration ident
    • VarnishAdmin::setParam - Définit un paramètre de configuration sur l'instance courante Varnish
    • VarnishAdmin::setPort - Définit le paramètre de configuration port
    • VarnishAdmin::setSecret - Définit le paramètre de configuration secret
    • VarnishAdmin::setTimeout - Définit le paramètre de configuration timeout
    • VarnishAdmin::start - Démarre un processus Varnish
    • VarnishAdmin::stop - Arrête un processus Varnish
    • VarnishAdmin::__construct - Constructeur VarnishAdmin
    • VarnishLog::getLine - Récupère la prochaine ligne de log
    • VarnishLog::getTagName - Récupère le nom de la balise représenté par son index
    • VarnishLog::__construct - Constructeur Varnishlog
    • VarnishStat::getSnapshot - Récupère les statistiques de l'instance courante Varnish
    • VarnishStat::__construct - Constructeur VarnishStat
    • var_dump - Affiche les informations d'une variable
    • var_export - Retourne le code PHP utilisé pour générer une variable
    • version_compare - Compare deux chaînes de version au format des versions PHP
    • vfprintf - Écrit une chaîne formatée dans un flux
    • virtual - Effectue une sous-requête Apache
    • vpopmail_add_alias_domain - Ajout un alias pour un domaine virtuel
    • vpopmail_add_alias_domain_ex - Ajoute un alias à un domaine virtuel
    • vpopmail_add_domain - Ajoute un nouveau domaine virtuel
    • vpopmail_add_domain_ex - Ajoute un nouveau domaine virtuel
    • vpopmail_add_user - Ajoute un nouvel utilisateur à un domaine virtuel
    • vpopmail_alias_add - Ajoute un alias virtuel
    • vpopmail_alias_del - Efface tous les alias d'un utilisateur
    • vpopmail_alias_del_domain - Efface tous les alias virtuels d'un domaine
    • vpopmail_alias_get - Lit toutes les lignes d'un alias d'un domaine
    • vpopmail_alias_get_all - Lit toutes les lignes d'un alias d'un domaine
    • vpopmail_auth_user - Valide le mot de passe d'un utilisateur pour un domaine
    • vpopmail_del_domain - Efface un domaine virtuel
    • vpopmail_del_domain_ex - Efface un domaine virtuel
    • vpopmail_del_user - Efface un utilisateur d'un domaine virtuel
    • vpopmail_error - Lit le dernier message d'erreur vpopmail
    • vpopmail_passwd - Remplace le mot de passe d'un utilisateur virtuel
    • vpopmail_set_user_quota - Modifie le quota d'un utilisateur virtuel
    • vprintf - Affiche une chaîne formatée
    • vsprintf - Retourne une chaîne formatée
  • w
    • wddx_add_vars - Ajoute des variables à un paquet WDDX
    • wddx_deserialize - Délinéarise un paquet WDDX
    • wddx_packet_end - Clôt un paquet WDDX
    • wddx_packet_start - Commence un nouveau paquet WDDX avec une structure
    • wddx_serialize_value - Enregistre une valeur dans un paquet WDDX
    • wddx_serialize_vars - Enregistre plusieurs valeurs dans un paquet WDDX
    • WeakMap::count - Compte le nombre d'entrées du map
    • WeakMap::current - Retourne la valeur courante de l'itération
    • WeakMap::key - Retourne la clé courante de l'itérateur
    • WeakMap::next - Avance jusqu'au prochain élément du map
    • WeakMap::offsetExists - Vérifie si un objet est dans le map
    • WeakMap::offsetGet - Retourne la valeur pointée par un certain objet
    • WeakMap::offsetSet - Met à jour le map avec une nouvelle paire clé-valeur
    • WeakMap::offsetUnset - Supprime une entrée depuis le map
    • WeakMap::rewind - Réinitialise l'itérateur au début du map
    • WeakMap::valid - Vérifie si l'itérateur est toujours sur un élément map valide
    • WeakMap::__construct - Construit un nouveau map
    • Weakref::acquire - Acquière une forte référence sur un objet
    • Weakref::get - Retourne l'objet pointé par sa référence forte
    • Weakref::release - Libère une référence précédemment acquise
    • Weakref::valid - Vérifie si l'objet référencé existe toujours
    • Weakref::__construct - Construit une nouvelle référence forte
    • win32_continue_service - Reprise d'un service en pause
    • win32_create_service - Crée une nouvelle entrée pour service dans la base de données SCM
    • win32_delete_service - Supprime une entrée de service de la base de données SCM
    • win32_get_last_control_message - Retourne le dernier message de contrôle qui a été envoyé à ce service
    • win32_pause_service - Met en pause un service
    • win32_ps_list_procs - Liste des processus qui fonctionnent
    • win32_ps_stat_mem - Statistiques de l'utilisation de la mémoire
    • win32_ps_stat_proc - Statistique de processus
    • win32_query_service_status - Questionne le statut d'un service
    • win32_set_service_status - Met à jour le statut d'un service
    • win32_start_service - Démarre un service
    • win32_start_service_ctrl_dispatcher - Enregistre un script avec SCM, alors il peut être interprété en tant que service avec le nom donné
    • win32_stop_service - Arrête un service
    • wincache_fcache_fileinfo - Extrait des informations sur les fichiers mis en cache dans le cache de fichiers
    • wincache_fcache_meminfo - Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.
    • wincache_lock - Acquière un verrou exclusif sur une clé donnée
    • wincache_ocache_fileinfo - Extrait des informations sur les fichiers mis en cache dans le cache opcode
    • wincache_ocache_meminfo - Extrait des informations sur l'utilisation du cache opcode
    • wincache_refresh_if_changed - Actualise les entrées du cache pour les fichiers mis en cache
    • wincache_rplist_fileinfo - Récupère des informations du cache sur un chemin de fichier résolu
    • wincache_rplist_meminfo - Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu
    • wincache_scache_info - Récupère des informations sur des fichiers mis en cache
    • wincache_scache_meminfo - Récupère des informations sur l'utilisation de la mémoire du cache
    • wincache_ucache_add - Ajoute une nouvelle variable au cache utilisateur
    • wincache_ucache_cas - Compare la variable avec son ancienne valeur et lui assigne une nouvelle valeur
    • wincache_ucache_clear - Supprime le contenu d'une entrée du cache utilisateur
    • wincache_ucache_dec - Décrémente la valeur associée à une clé
    • wincache_ucache_delete - Supprime les variables du cache utilisateur
    • wincache_ucache_exists - Vérifie si une variable existe dans le cache utilisateur
    • wincache_ucache_get - Récupère une variable stokée dans le cache utilisateur
    • wincache_ucache_inc - Incrémente la valeur associée à une clé
    • wincache_ucache_info - Récupère des informations sur des données stokées dans le cache utilisateur
    • wincache_ucache_meminfo - Récupère des informations sur l'utilisation mémoire du cache utilisateur
    • wincache_ucache_set - Ajoute une variable au cache utilisateur et écrase la variable si elle existe déjà dans le cache
    • wincache_unlock - Libère un verrou exclusif sur une clé donnée
    • wordwrap - Effectue la césure d'une chaîne
    • Worker::getStacked - Analyse de pile
    • Worker::isShutdown - Détection de statut
    • Worker::isWorking - Détection de statut
    • Worker::shutdown - Synchronisation
    • Worker::stack - File d'attente
    • Worker::unstack - File d'attente
  • x
    • xattr_get - Récupère un attribut étendu
    • xattr_list - Récupère une liste d'attributs étendus
    • xattr_remove - Efface un attribut étendu
    • xattr_set - Définit un attribut étendu
    • xattr_supported - Vérifie si un système de fichiers supporte les attributs étendus
    • xdiff_file_bdiff - Crée un diff binaire de 2 fichiers
    • xdiff_file_bdiff_size - Lit la taille d'un fichier créé lors de l'application d'un diff binaire
    • xdiff_file_bpatch - Patche un fichier avec un diff binaire
    • xdiff_file_diff - Créé un diff unifié entre deux fichiers
    • xdiff_file_diff_binary - Créé un diff binaire de deux fichier
    • xdiff_file_merge3 - Fusionne trois fichiers en un seul
    • xdiff_file_patch - Patche un fichier avec un diff unifié
    • xdiff_file_patch_binary - Alias de xdiff_file_bpatch
    • xdiff_file_rabdiff - Crée un diff binaire de 2 fichiers en utilisant l'algorithme polynomial de Rabin des empreintes digitales
    • xdiff_string_bdiff - Crée un diff binaire de 2 chaînes
    • xdiff_string_bdiff_size - Lit la taille d'un fichier créé en appliquant un diff binaire
    • xdiff_string_bpatch - Patche une chaîne avec un diff binaire
    • xdiff_string_diff - Créé un diff unifié entre deux chaînes
    • xdiff_string_diff_binary - Alias de xdiff_string_bdiff
    • xdiff_string_merge3 - Fusionne trois chaînes en une seule
    • xdiff_string_patch - Patche une chaîne avec un diff unifié
    • xdiff_string_patch_binary - Alias de xdiff_string_bpatch
    • xdiff_string_rabdiff - Crée un diff binaire de 2 chaînes en utilisant l'algorithme polynomial de Rabin des empreintes digitales
    • xhprof_disable - Stoppe le profilage xhprof
    • xhprof_enable - Démarre le profilage xhprof
    • xhprof_sample_disable - Stoppe le profilage xhprof sur échantillon
    • xhprof_sample_enable - Démarre le profilage en mode échantillonnage
    • XMLDiff\Base::diff - Produit la différence de deux documents XML
    • XMLDiff\Base::merge - Produit un nouveau document XML basé sur une différence
    • XMLDiff\Base::__construct - Constructeur
    • XMLDiff\DOM::diff - Trouve la différence de deux objets DOMDocument
    • XMLDiff\DOM::merge - Produit un DOMDocument fusionné
    • XMLDiff\File::diff - Effectue la différence entre deux documents XML
    • XMLDiff\File::merge - Fusionne un document XML
    • XMLDiff\Memory::diff - Différence entre deux documents XML
    • XMLDiff\Memory::merge - Fusionne un document XML
    • XMLReader::close - Ferme l'entrée XMLReader
    • XMLReader::expand - Retourne une copie du noeud courant comme un noeud d'objet DOM
    • XMLReader::getAttribute - Récupère la valeur d'un attribut par nom
    • XMLReader::getAttributeNo - Récupère la valeur d'un attribut par index
    • XMLReader::getAttributeNs - Récupère la valeur d'un attribut par nom local et URI
    • XMLReader::getParserProperty - Indique si la propriété spécifiée a été fixée
    • XMLReader::isValid - Indique si le document analysé est valide
    • XMLReader::lookupNamespace - Consulte l'espace de nom pour un préfixe
    • XMLReader::moveToAttribute - Déplace un curseur à un attribut nommé
    • XMLReader::moveToAttributeNo - Déplace le curseur à un attribut par index
    • XMLReader::moveToAttributeNs - Déplace le curseur à un attribut d'espace de nom
    • XMLReader::moveToElement - Positionne le curseur sur l'élément parent de l'attribut courant
    • XMLReader::moveToFirstAttribute - Positionne le curseur sur le premier attribut
    • XMLReader::moveToNextAttribute - Positionne le curseur sur le prochain attribut
    • XMLReader::next - Déplace le curseur au prochain noeud en sautant tous les sous arbres
    • XMLReader::open - Fixe le URI contenant le XML à analyser
    • XMLReader::read - Déplace le curseur sur le prochain noeud du document
    • XMLReader::readInnerXML - Lit le code XML du noeud courant
    • XMLReader::readOuterXML - Lit le code XML du noeud courant, y compris lui-même
    • XMLReader::readString - Lit le contenu du noeud courant sous forme de chaîne
    • XMLReader::setParserProperty - Fixe des options pour l'analyseur
    • XMLReader::setRelaxNGSchema - Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG
    • XMLReader::setRelaxNGSchemaSource - Spécifie le schéma RelaxNG
    • XMLReader::setSchema - Valide le document avec XSD
    • XMLReader::XML - Fixe les données contenant le XML à analyser
    • xmlrpc_decode - Décode le XML en types PHP natifs
    • xmlrpc_decode_request - Décode le code XML en variables PHP natives
    • xmlrpc_encode - Génère le code XML pour une valeur PHP
    • xmlrpc_encode_request - Génère le XML pour une méthode
    • xmlrpc_get_type - Retourne le type XMLRPC d'une valeur PHP
    • xmlrpc_is_fault - Détermine si un tableau de valeurs représente un XMLRPC
    • xmlrpc_parse_method_descriptions - Décode le code XML en une liste de descriptions de méthodes
    • xmlrpc_server_add_introspection_data - Ajoute des données d'introspection
    • xmlrpc_server_call_method - Analyse une requête XML et appelle les méthodes associées
    • xmlrpc_server_create - Crée un serveur XMLRPC
    • xmlrpc_server_destroy - Détruit un serveur XMLRPC
    • xmlrpc_server_register_introspection_callback - Enregistre une fonction PHP pour générer la documentation
    • xmlrpc_server_register_method - Enregistre une fonction PHP avec une méthode
    • xmlrpc_set_type - Définit le type xmlrpc, base64 ou datetime, d'une valeur PHP
    • XMLWriter::endAttribute - Termine un attribut
    • XMLWriter::endCData - Termine un bloc CDATA
    • XMLWriter::endComment - Termine un commentaire
    • XMLWriter::endDocument - Termine le document courant
    • XMLWriter::endDTD - Termine la DTD courante
    • XMLWriter::endDTDAttlist - Termine la liste des attributs de la DTD courante
    • XMLWriter::endDTDElement - Termine l'élément de la DTD courante
    • XMLWriter::endDTDEntity - Termine l'entité de la DTD courante
    • XMLWriter::endElement - Termine l'élément courant
    • XMLWriter::endPI - Termine le PI courant
    • XMLWriter::flush - Affiche le buffer courant
    • XMLWriter::fullEndElement - Termine l'élément courant
    • XMLWriter::openMemory - Crée un nouveau xmlwriter en utilisant la mémoire pour l'affichage des chaînes
    • XMLWriter::openURI - Crée un nouveau xmlwriter, en utilisant l'URI source pour l'affichage
    • XMLWriter::outputMemory - Retourne le buffer courant
    • XMLWriter::setIndent - Active ou non l'indentation
    • XMLWriter::setIndentString - Définit la chaîne à utiliser pour l'indentation
    • XMLWriter::startAttribute - Crée un attribut
    • XMLWriter::startAttributeNs - Crée un attribut pour l'espace de noms
    • XMLWriter::startCData - Crée une balise CDATA
    • XMLWriter::startComment - Crée un commentaire
    • XMLWriter::startDocument - Crée un document
    • XMLWriter::startDTD - Crée une DTD
    • XMLWriter::startDTDAttlist - Crée une liste d'attributs pour la DTD
    • XMLWriter::startDTDElement - Crée un élément DTD
    • XMLWriter::startDTDEntity - Crée une entité DTD
    • XMLWriter::startElement - Crée un élément
    • XMLWriter::startElementNs - Crée un élément d'un espace de noms
    • XMLWriter::startPI - Crée une balise PI
    • XMLWriter::text - Écrit du texte
    • XMLWriter::writeAttribute - Écrit un attribut
    • XMLWriter::writeAttributeNs - Écrit un attribut d'un espace de noms
    • XMLWriter::writeCData - Écrit un bloc CDATA
    • XMLWriter::writeComment - Écrit un commentaire
    • XMLWriter::writeDTD - Écrit une DTD
    • XMLWriter::writeDTDAttlist - Écrit une liste d'attributs DTD
    • XMLWriter::writeDTDElement - Écrit un élément DTD
    • XMLWriter::writeDTDEntity - Écrit une entité DTD
    • XMLWriter::writeElement - Écrit un élément
    • XMLWriter::writeElementNS - Écrit un élément d'un espace de noms
    • XMLWriter::writePI - Écrit la balise PI
    • XMLWriter::writeRaw - Écrit un texte XML brut
    • xml_error_string - Lit le message d'erreur de l'analyseur XML
    • xml_get_current_byte_index - Retourne l'index de l'octet courant d'un analyseur XML
    • xml_get_current_column_number - Retourne le numéro de colonne courant d'un analyseur XML
    • xml_get_current_line_number - Retourne le numéro de ligne courant d'un analyseur XML
    • xml_get_error_code - Récupère le code erreur de l'analyseur XML
    • xml_parse - Commence l'analyse d'un document XML
    • xml_parser_create - Création d'un analyseur XML
    • xml_parser_create_ns - Crée un analyseur XML
    • xml_parser_free - Détruit un analyseur XML
    • xml_parser_get_option - Lit les options d'un analyseur XML
    • xml_parser_set_option - Affecte les options d'un analyseur XML
    • xml_parse_into_struct - Analyse une structure XML
    • xml_set_character_data_handler - Affecte les gestionnaires de texte littéral
    • xml_set_default_handler - Affecte le gestionnaire XML par défaut
    • xml_set_element_handler - Affecte les gestionnaires de début et de fin de balise XML
    • xml_set_end_namespace_decl_handler - Configure le gestionnaire XML de données
    • xml_set_external_entity_ref_handler - Configure le gestionnaire XML de références externes
    • xml_set_notation_decl_handler - Configure le gestionnaire XML de notations
    • xml_set_object - Configure un objet comme analyseur XML
    • xml_set_processing_instruction_handler - Affecte les gestionnaires d'instructions exécutables
    • xml_set_start_namespace_decl_handler - Configure le gestionnaire de caractères
    • xml_set_unparsed_entity_decl_handler - Affecte les gestionnaires d'entités non déclarées
    • XSLTProcessor::getParameter - Récupère la valeur d'un paramètre
    • XsltProcessor::getSecurityPrefs - Récupère les préférences de sécurité
    • XSLTProcessor::hasExsltSupport - Indique si PHP utilise EXSLT
    • XSLTProcessor::importStylesheet - Importe une feuille de style
    • XSLTProcessor::registerPHPFunctions - Active l'utilisation de PHP dans les feuilles de styles XSLT
    • XSLTProcessor::removeParameter - Efface un paramètre
    • XSLTProcessor::setParameter - Définit la valeur d'un paramètre
    • XSLTProcessor::setProfiling - Spécifie le fichier de profilage
    • XsltProcessor::setSecurityPrefs - Définit les préférences de sécurité
    • XSLTProcessor::transformToDoc - Transforme en un document DOM
    • XSLTProcessor::transformToUri - Transforme en URI
    • XSLTProcessor::transformToXML - Transforme en XML
    • XSLTProcessor::__construct - Crée un nouvel objet XSLTProcessor
  • y
    • Yaf_Action_Abstract::execute - Point d'entrée de l'action
    • Yaf_Action_Abstract::getController - Récupère l'objet contrôleur
    • Yaf_Application::app - Récupère une instance de l'application
    • Yaf_Application::bootstrap - Appelle bootstrap
    • Yaf_Application::clearLastError - Efface les informations de la dernière erreur
    • Yaf_Application::environ - Récupère la propriété environ
    • Yaf_Application::execute - Exécute une fonction de rappel
    • Yaf_Application::getAppDirectory - Récupère le dossier de l'application
    • Yaf_Application::getConfig - Récupère une instance de configuration
    • Yaf_Application::getDispatcher - Récupère une instance Yaf_Dispatcher
    • Yaf_Application::getLastErrorMsg - Récupère le message de la dernière erreur survenue
    • Yaf_Application::getLastErrorNo - Récupère le code de la dernière erreur survenue
    • Yaf_Application::getModules - Récupère les noms des modules définis
    • Yaf_Application::run - Démarre Yaf_Application
    • Yaf_Application::setAppDirectory - Modifie le dossier de l'application
    • Yaf_Application::__clone - Yaf_Application ne peut être clôné
    • Yaf_Application::__construct - Constructeur de Yaf_Application
    • Yaf_Application::__destruct - Le but de __destruct
    • Yaf_Application::__sleep - Yaf_Application ne peut être linéarisé
    • Yaf_Application::__wakeup - Yaf_Application ne peut être dé-linéarisé
    • Yaf_Config_Abstract::get - Permet de récupérer une valeur
    • Yaf_Config_Abstract::readonly - Vérifie si une configuration est en lecture seule
    • Yaf_Config_Abstract::set - Permet de définir une valeur
    • Yaf_Config_Abstract::toArray - Transforme en tableau
    • Yaf_Config_Ini::count - Le but de count
    • Yaf_Config_Ini::current - Le but de current
    • Yaf_Config_Ini::key - Le but de key
    • Yaf_Config_Ini::next - Le but de next
    • Yaf_Config_Ini::offsetExists - Le but de offsetExists
    • Yaf_Config_Ini::offsetGet - Le but de offsetGet
    • Yaf_Config_Ini::offsetSet - Le but de offsetSet
    • Yaf_Config_Ini::offsetUnset - Le but de offsetUnset
    • Yaf_Config_Ini::readonly - Le but de readonly
    • Yaf_Config_Ini::rewind - Le but de rewind
    • Yaf_Config_Ini::toArray - Retourne un tableau PHP
    • Yaf_Config_Ini::valid - Le but de valid
    • Yaf_Config_Ini::__construct - Constructeur Yaf_Config_Ini
    • Yaf_Config_Ini::__get - Le but de __get
    • Yaf_Config_Ini::__isset - Le but de __isset
    • Yaf_Config_Ini::__set - Le but de __set
    • Yaf_Config_Simple::count - Le but de count
    • Yaf_Config_Simple::current - Le but de current
    • Yaf_Config_Simple::key - Le but de key
    • Yaf_Config_Simple::next - Le but de next
    • Yaf_Config_Simple::offsetExists - Le but de offsetExists
    • Yaf_Config_Simple::offsetGet - Le but de offsetGet
    • Yaf_Config_Simple::offsetSet - Le but de offsetSet
    • Yaf_Config_Simple::offsetUnset - Le but de offsetUnset
    • Yaf_Config_Simple::readonly - Le but de readonly
    • Yaf_Config_Simple::rewind - Le but de rewind
    • Yaf_Config_Simple::toArray - Retourne un tableau PHP
    • Yaf_Config_Simple::valid - Le but de valid
    • Yaf_Config_Simple::__construct - Le but de __construct
    • Yaf_Config_Simple::__get - Le but de __get
    • Yaf_Config_Simple::__isset - Le but de __isset
    • Yaf_Config_Simple::__set - Le but de __set
    • Yaf_Controller_Abstract::display - Le but de display
    • Yaf_Controller_Abstract::forward - Transfère vers une autre action
    • Yaf_Controller_Abstract::getInvokeArg - Le but de getInvokeArg
    • Yaf_Controller_Abstract::getInvokeArgs - Le but de getInvokeArgs
    • Yaf_Controller_Abstract::getModuleName - Récupère le nom du module
    • Yaf_Controller_Abstract::getRequest - Récupère l'objet de la demande courante
    • Yaf_Controller_Abstract::getResponse - Récupère l'objet de la réponse courante
    • Yaf_Controller_Abstract::getView - Récupère le moteur de visualisation
    • Yaf_Controller_Abstract::getViewpath - Le but de getViewpath
    • Yaf_Controller_Abstract::init - Initialisation du contrôleur
    • Yaf_Controller_Abstract::initView - Le but de initView
    • Yaf_Controller_Abstract::redirect - Redirige vers une URL
    • Yaf_Controller_Abstract::render - Affiche le rendu du template
    • Yaf_Controller_Abstract::setViewpath - Le but de setViewpath
    • Yaf_Controller_Abstract::__clone - Yaf_Controller_Abstract ne peut être clôner
    • Yaf_Controller_Abstract::__construct - Constructeur de Yaf_Controller_Abstract
    • Yaf_Dispatcher::autoRender - Active/désactive le rendu automatique
    • Yaf_Dispatcher::catchException - Active/désactive la récupération des exceptions
    • Yaf_Dispatcher::disableView - Désactive le moteur de visualisation
    • Yaf_Dispatcher::dispatch - Envoi une demande
    • Yaf_Dispatcher::enableView - Active le rendu de la vue
    • Yaf_Dispatcher::flushInstantly - Active/désactive l'envoi instantané
    • Yaf_Dispatcher::getApplication - Récupère l'application
    • Yaf_Dispatcher::getInstance - Récupère l'instance du module d'envoi
    • Yaf_Dispatcher::getRequest - Récupère l'instance demandée
    • Yaf_Dispatcher::getRouter - Récupère l'instance routeur
    • Yaf_Dispatcher::initView - Initialise la vue et la retourne
    • Yaf_Dispatcher::registerPlugin - Enregistre un plugin
    • Yaf_Dispatcher::returnResponse - Le but de returnResponse
    • Yaf_Dispatcher::setDefaultAction - Modifie le nom par défaut de l'action
    • Yaf_Dispatcher::setDefaultController - Modifie le nom par défaut du controlleur
    • Yaf_Dispatcher::setDefaultModule - Modifie le nom par défaut du module
    • Yaf_Dispatcher::setErrorHandler - Définit un gestionnaire d'erreur personnalisé
    • Yaf_Dispatcher::setRequest - Le but de setRequest
    • Yaf_Dispatcher::setView - Définit un moteur de visualisation personnalisé
    • Yaf_Dispatcher::throwException - Active/désactive le lancement d'exceptions
    • Yaf_Dispatcher::__clone - Yaf_Dispatcher ne peut être clôner
    • Yaf_Dispatcher::__construct - Constructeur de Yaf_Dispatcher
    • Yaf_Dispatcher::__sleep - Yaf_Dispatcher ne peut être linéarisé
    • Yaf_Dispatcher::__wakeup - Yaf_Dispatcher ne peut être linéarisé
    • Yaf_Exception::getPrevious - Le but de getPrevious
    • Yaf_Exception::__construct - Le but de __construct
    • Yaf_Loader::autoload - Le but de autoload
    • Yaf_Loader::clearLocalNamespace - Le but de clearLocalNamespace
    • Yaf_Loader::getInstance - Le but de getInstance
    • Yaf_Loader::getLibraryPath - Récupère le chemin de la bibliothèque
    • Yaf_Loader::getLocalNamespace - Le but de getLocalNamespace
    • Yaf_Loader::import - Le but de import
    • Yaf_Loader::isLocalName - Le but de isLocalName
    • Yaf_Loader::registerLocalNamespace - Enregistre le préfixe local de la classe
    • Yaf_Loader::setLibraryPath - Modifie le chemin de la bibliothèque
    • Yaf_Loader::__clone - Le but de __clone
    • Yaf_Loader::__construct - Le but de __construct
    • Yaf_Loader::__sleep - Le but de __sleep
    • Yaf_Loader::__wakeup - Le but de __wakeup
    • Yaf_Plugin_Abstract::dispatchLoopShutdown - Le but de dispatchLoopShutdown
    • Yaf_Plugin_Abstract::dispatchLoopStartup - Le but de dispatchLoopStartup
    • Yaf_Plugin_Abstract::postDispatch - Le but de postDispatch
    • Yaf_Plugin_Abstract::preDispatch - Le but de preDispatch
    • Yaf_Plugin_Abstract::preResponse - Le but de preResponse
    • Yaf_Plugin_Abstract::routerShutdown - Le but de routerShutdown
    • Yaf_Plugin_Abstract::routerStartup - Hook RouterStartup
    • Yaf_Registry::del - Supprime un élément du registre
    • Yaf_Registry::get - Récupère un élément depuis le registre
    • Yaf_Registry::has - Vérifie si un élément existe
    • Yaf_Registry::set - Ajoute un élément au registre
    • Yaf_Registry::__clone - Le but de __clone
    • Yaf_Registry::__construct - Constructeur de la classe Yaf_Registry
    • Yaf_Request_Abstract::getActionName - Le but de getActionName
    • Yaf_Request_Abstract::getBaseUri - Le but de getBaseUri
    • Yaf_Request_Abstract::getControllerName - Le but de getControllerName
    • Yaf_Request_Abstract::getEnv - Récupère une variable ENV
    • Yaf_Request_Abstract::getException - Le but de getException
    • Yaf_Request_Abstract::getLanguage - Le but de getLanguage
    • Yaf_Request_Abstract::getMethod - Le but de getMethod
    • Yaf_Request_Abstract::getModuleName - Le but de getModuleName
    • Yaf_Request_Abstract::getParam - Le but de getParam
    • Yaf_Request_Abstract::getParams - Le but de getParams
    • Yaf_Request_Abstract::getRequestUri - Le but de getRequestUri
    • Yaf_Request_Abstract::getServer - Récupère une variable SERVER
    • Yaf_Request_Abstract::isCli - Le but de isCli
    • Yaf_Request_Abstract::isDispatched - Le but de isDispatched
    • Yaf_Request_Abstract::isGet - Le but de isGet
    • Yaf_Request_Abstract::isHead - Le but de isHead
    • Yaf_Request_Abstract::isOptions - Le but de isOptions
    • Yaf_Request_Abstract::isPost - Le but de isPost
    • Yaf_Request_Abstract::isPut - Le but de isPut
    • Yaf_Request_Abstract::isRouted - Le but de isRouted
    • Yaf_Request_Abstract::isXmlHttpRequest - Le but de isXmlHttpRequest
    • Yaf_Request_Abstract::setActionName - Le but de setActionName
    • Yaf_Request_Abstract::setBaseUri - Défini l'URI de base
    • Yaf_Request_Abstract::setControllerName - Le but de setControllerName
    • Yaf_Request_Abstract::setDispatched - Le but de setDispatched
    • Yaf_Request_Abstract::setModuleName - Le but de setModuleName
    • Yaf_Request_Abstract::setParam - Le but de setParam
    • Yaf_Request_Abstract::setRequestUri - Le but de setRequestUri
    • Yaf_Request_Abstract::setRouted - Le but de setRouted
    • Yaf_Request_Http::get - Récupère la variable depuis le client
    • Yaf_Request_Http::getCookie - Récupère une variable Cookie
    • Yaf_Request_Http::getFiles - Le but de getFiles
    • Yaf_Request_Http::getPost - Récupère une variable POST
    • Yaf_Request_Http::getQuery - Récupère un paramètre de la requête
    • Yaf_Request_Http::getRequest - Le but de getRequest
    • Yaf_Request_Http::isXmlHttpRequest - Vérifie s'il s'agit d'une requête Ajax
    • Yaf_Request_Http::__clone - Le but de __clone
    • Yaf_Request_Http::__construct - Constructeur de __construct
    • Yaf_Request_Simple::get - Le but de get
    • Yaf_Request_Simple::getCookie - Le but de getCookie
    • Yaf_Request_Simple::getFiles - Le but de getFiles
    • Yaf_Request_Simple::getPost - Le but de getPost
    • Yaf_Request_Simple::getQuery - Le but de getQuery
    • Yaf_Request_Simple::getRequest - Le but de getRequest
    • Yaf_Request_Simple::isXmlHttpRequest - Le but de isXmlHttpRequest
    • Yaf_Request_Simple::__clone - Le but de __clone
    • Yaf_Request_Simple::__construct - Constructeur de __construct
    • Yaf_Response_Abstract::appendBody - Ajoute le corps
    • Yaf_Response_Abstract::clearBody - Le but de clearBody
    • Yaf_Response_Abstract::clearHeaders - Le but de clearHeaders
    • Yaf_Response_Abstract::getBody - Récupère un contenu existant
    • Yaf_Response_Abstract::getHeader - Le but de getHeader
    • Yaf_Response_Abstract::prependBody - Le but de prependBody
    • Yaf_Response_Abstract::response - Envoi la réponse
    • Yaf_Response_Abstract::setAllHeaders - Le but de setAllHeaders
    • Yaf_Response_Abstract::setBody - Définit le contenu de la réponse
    • Yaf_Response_Abstract::setHeader - Le but de setHeader
    • Yaf_Response_Abstract::setRedirect - Le but de setRedirect
    • Yaf_Response_Abstract::__clone - Le but de __clone
    • Yaf_Response_Abstract::__construct - Le but de __construct
    • Yaf_Response_Abstract::__destruct - Le but de __destruct
    • Yaf_Response_Abstract::__toString - Le but de __toString
    • Yaf_Router::addConfig - Ajoute une route définie dans la configuration d'un routeur
    • Yaf_Router::addRoute - Ajoute une nouvelle route dans un routeur
    • Yaf_Router::getCurrentRoute - Récupère le nom effectif de la route
    • Yaf_Router::getRoute - Récupère une route via son nom
    • Yaf_Router::getRoutes - Récupère les routes enregistrées
    • Yaf_Router::route - Le but de route
    • Yaf_Router::__construct - Constructeur de la classe Yaf_Router
    • Yaf_Route_Interface::assemble - Assemble une requête
    • Yaf_Route_Interface::route - Route une requête
    • Yaf_Route_Map::assemble - Assemble une URL
    • Yaf_Route_Map::route - Le but route
    • Yaf_Route_Map::__construct - Le but de __construct
    • Yaf_Route_Regex::assemble - Assemble une URL
    • Yaf_Route_Regex::route - Le but de route
    • Yaf_Route_Regex::__construct - Contructeur Yaf_Route_Regex
    • Yaf_Route_Rewrite::assemble - Assemble une URL
    • Yaf_Route_Rewrite::route - Le but de route
    • Yaf_Route_Rewrite::__construct - Constructeur Yaf_Route_Rewrite
    • Yaf_Route_Simple::assemble - Assemble une URL
    • Yaf_Route_Simple::route - Route une requête
    • Yaf_Route_Simple::__construct - Constructeur de la classe Yaf_Route_Simple
    • Yaf_Route_Static::assemble - Assemble une URL
    • Yaf_Route_Static::match - Le but de match
    • Yaf_Route_Static::route - Route une requête
    • Yaf_Route_Supervar::assemble - Assemble une URL
    • Yaf_Route_Supervar::route - Le but de route
    • Yaf_Route_Supervar::__construct - Le but de __construct
    • Yaf_Session::count - Le but de count
    • Yaf_Session::current - Le but de current
    • Yaf_Session::del - Le but de del
    • Yaf_Session::getInstance - Le but de getInstance
    • Yaf_Session::has - Le but de has
    • Yaf_Session::key - Le but de key
    • Yaf_Session::next - Le but de next
    • Yaf_Session::offsetExists - Le but de offsetExists
    • Yaf_Session::offsetGet - Le but de offsetGet
    • Yaf_Session::offsetSet - Le but de offsetSet
    • Yaf_Session::offsetUnset - Le but de offsetUnset
    • Yaf_Session::rewind - Le but de rewind
    • Yaf_Session::start - Le but de start
    • Yaf_Session::valid - Le but de valid
    • Yaf_Session::__clone - Le but de __clone
    • Yaf_Session::__construct - Le constructeur de __construct
    • Yaf_Session::__get - Le but de __get
    • Yaf_Session::__isset - Le but de __isset
    • Yaf_Session::__set - Le but de __set
    • Yaf_Session::__sleep - Le but de __sleep
    • Yaf_Session::__unset - Le but de __unset
    • Yaf_Session::__wakeup - Le but de __wakeup
    • Yaf_View_Interface::assign - Assigne une valeur au moteur de rendu
    • Yaf_View_Interface::display - Construit et affiche un template
    • Yaf_View_Interface::getScriptPath - Le but de getScriptPath
    • Yaf_View_Interface::render - Construit un template
    • Yaf_View_Interface::setScriptPath - Le but de setScriptPath
    • Yaf_View_Simple::assign - Assigne une ou plusieurs variables
    • Yaf_View_Simple::assignRef - Le but de assignRef
    • Yaf_View_Simple::clear - Efface les valeurs assignées
    • Yaf_View_Simple::display - Construit et affiche
    • Yaf_View_Simple::eval - Évalue un template
    • Yaf_View_Simple::getScriptPath - Récupère le dossier contenant les templates
    • Yaf_View_Simple::render - Construit un template
    • Yaf_View_Simple::setScriptPath - Définit le dossier contenant les templates
    • Yaf_View_Simple::__construct - Constructeur de la classe Yaf_View_Simple
    • Yaf_View_Simple::__get - Récupère une variable assignée
    • Yaf_View_Simple::__isset - Le but de __isset
    • Yaf_View_Simple::__set - Définit une valeur du moteur
    • yaml_emit - Retourne une chaîne représentant une valeur YAML
    • yaml_emit_file - Envoie une représentation YAML vers un fichier
    • yaml_parse - Analyse un flux YAML
    • yaml_parse_file - Analyse un flux YAML depuis un fichier
    • yaml_parse_url - Analyse un flux YAML depuis une URL
    • Yar_Client::setOpt - Défini le contexte d'appel
    • Yar_Client::__call - Service d'appel
    • Yar_Client::__construct - Crée un client
    • Yar_Client_Exception::getType - Le but de getType
    • Yar_Concurrent_Client::call - Enregistre un appel concurrent
    • Yar_Concurrent_Client::loop - Envoi tous les appels
    • Yar_Concurrent_Client::reset - Clean all registered calls
    • Yar_Server::handle - Démarre un serveur RPC
    • Yar_Server::__construct - Enregistre un serveur
    • Yar_Server_Exception::getType - Le but de getType
    • yaz_addinfo - Retourne plus de détails après une erreur
    • yaz_ccl_conf - Configure l'analyseur CCL
    • yaz_ccl_parse - Appelle l'analyseur CCL
    • yaz_close - Ferme une connexion YAZ
    • yaz_connect - Prépare une connexion à un serveur Z39.50
    • yaz_database - Spécifie la base d'une session YAZ
    • yaz_element - Spécifie le type d'éléments YAZ à lire
    • yaz_errno - Retourne le numéro d'erreur
    • yaz_error - Retourne une description de l'erreur
    • yaz_es - Prépare pour une Requête de Service Étendu
    • yaz_es_result - Inspecte le résultat d'un service étendu
    • yaz_get_option - Retourne la valeur d'une option de connexion YAZ
    • yaz_hits - Retourne le nombre de résultats de la dernière recherche
    • yaz_itemorder - Prépare une requête Z39.50 Item Order avec le paquet ILL-Request
    • yaz_present - Prépare à la lecture (Z39.50 present)
    • yaz_range - Spécifie le nombre maximal de résultats à lire
    • yaz_record - Retourne un résultat
    • yaz_scan - Prépare un scan YAZ
    • yaz_scan_result - Retourne le résultat d'un scan
    • yaz_schema - Spécifie le schéma de lecture
    • yaz_search - Prépare une recherche
    • yaz_set_option - Modifie une ou plusieurs options de connexion YAZ
    • yaz_sort - Configure les critères de tri
    • yaz_syntax - Spécifie la syntaxe de lecture des lignes
    • yaz_wait - Attend l'exécution d'une requête
    • yp_all - Traverse la carte et applique une fonction sur chaque entrée
    • yp_cat - Retourne une tableau contenant la carte entière
    • yp_errno - Retourne le code d'erreur de la dernière opération NIS
    • yp_err_string - Retourne la chaîne correspondant à l'erreur donnée
    • yp_first - Retourne la première paire clé/valeur d'une carte donnée
    • yp_get_default_domain - Retourne le domaine NIS par défaut
    • yp_master - Retourne le nom de la machine maître pour une carte
    • yp_match - Retourne la ligne associée
    • yp_next - Retourne la paire clé/valeur suivante d'une carte donnée
    • yp_order - Retourne le numéro d'ordre d'une carte
  • z
    • zend_logo_guid - Retourne le logo de Zend
    • zend_thread_id - Retourne un identifiant unique du thread courant
    • zend_version - Lit la version courante du moteur Zend
    • ZipArchive::addEmptyDir - Ajoute un nouveau dossier à une archive Zip
    • ZipArchive::addFile - Ajoute un fichier à l'archive ZIP depuis le chemin fourni
    • ZipArchive::addFromString - Ajoute un fichier à une archive ZIP en utilisant son contenu
    • ZipArchive::addGlob - Ajoute des fichiers d'un dossier en utilisant un masque glob
    • ZipArchive::addPattern - Ajoute des fichiers d'un dossier en utilisant une expression régulière PCRE
    • ZipArchive::close - Ferme l'archive active
    • ZipArchive::deleteIndex - Efface une entrée de l'archive en utilisant son index
    • ZipArchive::deleteName - Efface une entrée dans l'archive en utilisant son nom
    • ZipArchive::extractTo - Extrait le contenu de l'archive
    • ZipArchive::getArchiveComment - Retourne le commentaire de l'archive ZIP
    • ZipArchive::getCommentIndex - Retourne le commentaire d'une entrée
    • ZipArchive::getCommentName - Retourne le commentaire d'une entrée en utilisant le nom de l'entrée
    • ZipArchive::getExternalAttributesIndex - Récupère les attributs étendus d'une entrée définie par son index
    • ZipArchive::getExternalAttributesName - Récupère les attributs étendus d'une entrée définie par son nom
    • ZipArchive::getFromIndex - Retourne le contenu d'une entrée en utilisant son index
    • ZipArchive::getFromName - Retourne le contenu de l'entrée en utilisant son nom
    • ZipArchive::getNameIndex - Retourne le nom d'une entrée en utilisant son index
    • ZipArchive::getStatusString - Retourne le message du statut de l'erreur, du système ou de zip
    • ZipArchive::getStream - Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule)
    • ZipArchive::locateName - Retourne l'index d'une entrée de l'archive
    • ZipArchive::open - Ouvre une archive ZIP
    • ZipArchive::renameIndex - Renomme une entrée définie par son index
    • ZipArchive::renameName - Renomme une entrée définie par son nom
    • ZipArchive::setArchiveComment - Définit le commentaire d'une archive ZIP
    • ZipArchive::setCommentIndex - Définit le commentaire d'une entrée définie par son index
    • ZipArchive::setCommentName - Définit le commentaire d'une entrée spécifiée par son nom
    • ZipArchive::setCompressionIndex - Set the compression method of an entry defined by its index
    • ZipArchive::setCompressionName - Set the compression method of an entry defined by its name
    • ZipArchive::setExternalAttributesIndex - Définit les attributs étendus d'une entrée définie par son index
    • ZipArchive::setExternalAttributesName - Définit les attributs étendus d'une entrée définie par son nom
    • ZipArchive::setPassword - Défini le mot de passe de l'archive active
    • ZipArchive::statIndex - Récupère les détails d'une entrée définie par son index
    • ZipArchive::statName - Récupère les détails de l'entrée définie par son nom
    • ZipArchive::unchangeAll - Annule toutes les modifications faites sur l'archive
    • ZipArchive::unchangeArchive - Annule toutes les modifications globales faites sur l'archive
    • ZipArchive::unchangeIndex - Annule toutes les modifications faites sur une entrée, définie par nom index
    • ZipArchive::unchangeName - Annule toutes les modifications faites sur une entrée, définie par son nom
    • zip_close - Ferme une archive Zip
    • zip_entry_close - Ferme un dossier d'archive
    • zip_entry_compressedsize - Lit la taille compressée d'un dossier d'archives
    • zip_entry_compressionmethod - Lit la méthode de compression utilisée sur un dossier d'archives
    • zip_entry_filesize - Lit la taille décompressée d'un dossier d'archives
    • zip_entry_name - Lit le nom d'un dossier d'archives
    • zip_entry_open - Ouvre un dossier d'archives en lecture
    • zip_entry_read - Lit le contenu d'un fichier dans un dossier
    • zip_open - Ouvre une archive ZIP
    • zip_read - Lit la prochaine entrée dans une archive ZIP
    • zlib:// - Flux de compression
    • zlib_decode - Décompresse des données encodées raw/gzip/zlib
    • zlib_encode - Compresse des données avec l'encodage spécifié
    • zlib_get_coding_type - Retourne la méthode de compression utilisée avec Gzip
    • ZMQ::__construct - ZMQ constructor
    • ZMQContext::getOpt - Récupère une option de contexte
    • ZMQContext::getSocket - Crée un nouveau socket
    • ZMQContext::isPersistent - Vérifie si le contexte est persistent
    • ZMQContext::setOpt - Défini une option de socket
    • ZMQContext::__construct - Construit un nouvel objet ZMQContext
    • ZMQDevice::getIdleTimeout - Récupère le délai d'attente maximal d'inactivité
    • ZMQDevice::getTimerTimeout - Récupère le délai d'attente maximal du timer
    • ZMQDevice::run - Exécute le nouveau périphérique
    • ZMQDevice::setIdleCallback - Défini la fonction de rappel d'inactivité
    • ZMQDevice::setIdleTimeout - Défini le délai d'attente maximal d'inactivité
    • ZMQDevice::setTimerCallback - Défini la fonction de rappel du timer
    • ZMQDevice::setTimerTimeout - Défini le délai d'attente maximal du timer
    • ZMQDevice::__construct - Construit un nouveau périphérique
    • ZMQPoll::add - Ajoute un élément dans le poll
    • ZMQPoll::clear - Supprime tous les éléments du poll
    • ZMQPoll::count - Compte les éléments du poll
    • ZMQPoll::getLastErrors - Récupère les erreurs du poll
    • ZMQPoll::poll - Sonde les éléments
    • ZMQPoll::remove - Supprime un élément du poll
    • ZMQSocket::bind - Lie un socket
    • ZMQSocket::connect - Connecte le socket
    • ZMQSocket::disconnect - Déconnecte un socket
    • ZMQSocket::getEndpoints - Récupère la liste des points finaux
    • ZMQSocket::getPersistentId - Récupère l'ID persistent
    • ZMQSocket::getSocketType - Récupère le type du socket
    • ZMQSocket::getSockOpt - Récupère une option du socket
    • ZMQSocket::isPersistent - Vérifie si le socket est persistent
    • ZMQSocket::recv - Recoit un message
    • ZMQSocket::recvMulti - Recoit un message multipart
    • ZMQSocket::send - Envoi un message
    • ZMQSocket::sendmulti - Envoi un message multipart
    • ZMQSocket::setSockOpt - Défini une option de socket
    • ZMQSocket::unbind - Dé-lie le socket
    • ZMQSocket::__construct - Construit un nouveau ZMQSocket
    • Zookeeper::addAuth - Specify application credentials.
    • Zookeeper::connect - Create a handle to used communicate with zookeeper.
    • Zookeeper::create - Create a node synchronously.
    • Zookeeper::delete - Delete a node in zookeeper synchronously.
    • Zookeeper::exists - Checks the existence of a node in zookeeper synchronously.
    • Zookeeper::get - Gets the data associated with a node synchronously.
    • Zookeeper::getAcl - Gets the acl associated with a node synchronously.
    • Zookeeper::getClientId - return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
    • Zookeeper::getRecvTimeout - Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect.
    • Zookeeper::getState - Get the state of the zookeeper connection.
    • Zookeeper::isRecoverable - Checks if the current zookeeper connection state can be recovered.
    • Zookeeper::set - Sets the data associated with a node.
    • Zookeeper::setAcl - Sets the acl associated with a node synchronously.
    • Zookeeper::setDebugLevel - Sets the debugging level for the library.
    • Zookeeper::setDeterministicConnOrder - Enable/disable quorum endpoint order randomization.
    • Zookeeper::setLogStream - Sets the stream to be used by the library for logging.
    • Zookeeper::setWatcher - Set a watcher function.
    • Zookeeper::__construct - Create a handle to used communicate with zookeeper.
  • _
    • __autoload - Tente de charger une classe indéfinie
    • __halt_compiler - Stoppe l'exécution du compilateur


Liste d'examples

Liste de tous les exemples du manuel

  • Example#0 - Exemple d'introduction
  • Example#1 - Notre premier script PHP : bonjour.php
  • Example#2 - Récupération des informations du système depuis PHP
  • Example#3 - Afficher le contenu d'une variable (élément de tableau)
  • Example#4 - Exemple utilisant les structures de contrôle et les fonctions
  • Example#5 - Passer du mode PHP au mode HTML et vice-versa
  • Example#6 - Un simple formulaire HTML
  • Example#7 - Afficher des données issues d'un formulaire
  • Example#8 - Instructions d'installation de PHP (en module Apache)
  • Example#9 - Instructions d'installation (installation en tant que module statique d'Apache) de PHP
  • Example#10 - Exemples de commandes pour le redémarrage d'apache
  • Example#11 -
  • Example#12 -
  • Example#13 -
  • Example#14 -
  • Example#15 -
  • Example#16 -
  • Example#17 -
  • Example#18 -
  • Example#19 -
  • Example#20 -
  • Example#21 -
  • Example#22 -
  • Example#23 -
  • Example#24 -
  • Example#25 -
  • Example#26 -
  • Example#27 -
  • Example#28 -
  • Example#29 -
  • Example#30 -
  • Example#31 -
  • Example#32 -
  • Example#33 -
  • Example#34 -
  • Example#35 -
  • Example#36 -
  • Example#37 -
  • Example#38 -
  • Example#39 - Portion du fichier lighttpd.conf
  • Example#40 - Appel des répondeurs FastCGI
  • Example#41 - Connexion à des instances distantes de php-fastcgi
  • Example#42 - Exemple d'installation de PHP sous OpenBSD avec Ports
  • Example#43 - Exemple d'installation sous Debian avec Apache 2
  • Example#44 - Stopper et démarrer Apache une fois PHP installé
  • Example#45 - Méthodes pour lister les paquets PHP 5 supplémentaires
  • Example#46 - Installer PHP avec MySQL et cURL
  • Example#47 - Recommended WinCache configuration
  • Example#48 - Recommended WinCache configuration
  • Example#49 - Ligne de commande pour configurer IIS et PHP
  • Example#50 - Structure d'un paquet PHP 5
  • Example#51 - Options de configuration de CGI et FastCGI du fichier php.ini
  • Example#52 - Configuration de l'extension FastCGI pour gérer les requêtes PHP
  • Example#53 - Configuration des permissions d'accès
  • Example#54 - Configuration du recyclage FastCGI et PHP
  • Example#55 - Configuration du délai d'expiration FastCGI
  • Example#56 - Modification du dossier contenant le fichier php.ini
  • Example#57 - Options CGI et FastCGI dans le fichier php.ini
  • Example#58 - Création d'une file de processus IIS FastCGI
  • Example#59 - Création d'un gestionnaire de mapping pour les requêtes PHP
  • Example#60 - Déterminer le compte utilisé comme identité anonyme sous IIS
  • Example#61 - Configuration des permissions d'accès aux fichiers
  • Example#62 - Définir index.php comme document par défaut sous IIS
  • Example#63 - Configuration du recyclage FastCGI et PHP
  • Example#64 - Configuration du délai d'expiration FastCGI
  • Example#65 - Modification du dossier contenant le fichier php.ini
  • Example#66 - PHP comme module Apache 1.3.x
  • Example#67 - PHP et Apache 1.3.x en tant que CGI
  • Example#68 - PHP et Apache 2.x comme gestionnaire
  • Example#69 -
  • Example#70 - PHP et Apache 2.x en tant que CGI
  • Example#71 - Configuration d'Apache pour exécuter PHP en tant que FastCGI
  • Example#72 - Configuration ISAPI de Sambar
  • Example#73 - Activer l'extension Bzip2 pour PHP-Windows
  • Example#74 - Modification du registre
  • Example#75 - Passer des variables d'environnement et des paramètres PHP à un pool
  • Example#76 - Définit les paramètres PHP dans le fichier nginx.conf
  • Example#77 - Appel de la fonction phpinfo
  • Example#78 - Les variables d'environnement dans un fichier php.ini
  • Example#79 - Extrait du php.ini
  • Example#80 - Exemple de configuration Apache
  • Example#81 -
  • Example#82 - Echappement avancé en utilisant des conditions
  • Example#83 - Balises d'ouvertures et de fermetures PHP
  • Example#84 - Séparation des instructions
  • Example#85 - Exemple de commentaire
  • Example#86 - Les commentaires vont jusqu'à la fin de la ligne
  • Example#87 - Les commentaires de type C
  • Example#88 - Les entiers littéraux
  • Example#89 - Dépassement d'entier sur un système 32-bit
  • Example#90 - Dépassement d'entier sur un système 64-bit
  • Example#91 - Exemple invalide
  • Example#92 - Exemple de chaînes Heredoc
  • Example#93 - Exemple d'utilisation de Heredoc pour passer des arguments
  • Example#94 - Utilisation de Heredoc pour initialiser des valeurs statiques
  • Example#95 - Utilisation des guillemets doubles avec Heredoc
  • Example#96 - Exemples de chaînes Nowdoc
  • Example#97 - Exemple avec des données statiques
  • Example#98 - Exemple de la syntaxe simple
  • Example#99 - Quelques exemples de chaînes
  • Example#100 - Différences entre PHP 5.3 et PHP 5.4
  • Example#101 - Un tableau simple
  • Example#102 - Exemple sur la modification de type et l'écrasement
  • Example#103 - Exemple avec des clés de type integer et string
  • Example#104 - Tableaux indexés sans clé
  • Example#105 - Exemple avec des clés seulement pour quelques éléments
  • Example#106 - Accès aux éléments d'un tableau
  • Example#107 - Faire référence à un tableau à la sortie d'une fonction ou d'une méthode
  • Example#108 - Utilisation de array()
  • Example#109 - Collection
  • Example#110 - Modification d'un élément dans la boucle
  • Example#111 - Indexation commençant à 1
  • Example#112 - Remplissage d'un tableau
  • Example#113 - Tri d'un tableau
  • Example#114 - Tableaux récursifs et multidimensionnels
  • Example#115 - Exemples de fonctions de rappel
  • Example#116 - Exemple d'une fonction de rappel utilisant une closure
  • Example#117 - Validité des noms de variables
  • Example#118 - Assignation de référence
  • Example#119 - Assignation de référence et variables anonymes
  • Example#120 - Valeurs par défaut des variables non initialisées
  • Example#121 - Les variables sont locales à la fonction
  • Example#122 - Exemple avec global
  • Example#123 - Les variables globales et $GLOBALS
  • Example#124 - Les variables super globales
  • Example#125 - Les variables statiques
  • Example#126 - Les variables statiques (2)
  • Example#127 - Les variables statiques et la récursivité
  • Example#128 - Déclaration de variables statiques
  • Example#129 - Exemple de propriété variable
  • Example#130 - Exemple avec un formulaire simple
  • Example#131 - Accéder simplement à des variables de formulaires POST
  • Example#132 - Anciennes méthodes pour accéder aux entrées utilisateur
  • Example#133 - Variables de formulaires complexes
  • Example#134 - Exemple avec setcookie
  • Example#135 - Noms valides et invalides pour les constantes
  • Example#136 - Définir une constante
  • Example#137 - Définir des constantes en utilisant le mot-clé const
  • Example#138 - Associativité
  • Example#139 - Ordre d'évaluation indéfini
  • Example#140 - Affectation par référence
  • Example#141 - Opérations sur les bits et les entiers
  • Example#142 - Opération sur les bits et les chaînes
  • Example#143 - Décalage de bits sur les entiers
  • Example#144 - Comparaison Booléen/null
  • Example#145 - Transcription des comparaisons standards des tableaux
  • Example#146 - Affectation d'une valeur par défaut
  • Example#147 - Comportement de PHP
  • Example#148 - Opérateur d'exécution
  • Example#149 - Opérations arithmétiques sur un caractère
  • Example#150 - Illustration des opérateurs logiques
  • Example#151 - Opérateur de concaténation
  • Example#152 - Comparer des tableaux
  • Example#153 - Utilisation de instanceof avec des classes
  • Example#154 - Utilisation de instanceof avec des classes héritées
  • Example#155 - Utilisation de instanceof pour vérifier que l'objet n'est pas une instance de la classe
  • Example#156 - Utilisation de instanceof pour une interface
  • Example#157 - Utilisation de instanceof avec d'autres variables
  • Example#158 - Utilisation de instanceof pour tester d'autres variables
  • Example#159 - Pas de recherche sur le nom de la classe et une erreur fatale avec instanceof en PHP 5.0
  • Example#160 - Instruction switch
  • Example#161 - Instruction switch utilisant une chaîne de caractères
  • Example#162 - Exemple d'utilisation des ticks
  • Example#163 - Exemple d'utilisation des ticks
  • Example#164 - Déclaration d'un encodage pour un script
  • Example#165 - Exemple avec include
  • Example#166 - Inclusion de fichiers dans une fonction
  • Example#167 - Utiliser l'instruction include via HTTP
  • Example#168 - Comparaison de la valeur de retour d'une inclusion
  • Example#169 - include et return
  • Example#170 - Utilisation de la sortie du buffer pour inclure un fichier PHP dans une chaîne
  • Example#171 - include_once avec un OS insensible à la casse en PHP 4
  • Example#172 - Exemple avec goto
  • Example#173 - Exemple de boucle avec goto
  • Example#174 - Ce goto ne fonctionne pas
  • Example#175 - Pseudo code pour illustrer l'usage d'une fonction
  • Example#176 - Fonctions conditionnelles
  • Example#177 - Fonctions dans une autre fonction
  • Example#178 - Fonctions récursives
  • Example#179 - Nombre variable d'arguments sous forme de tableau
  • Example#180 - Passage d'arguments par référence
  • Example#181 - Valeur par défaut des arguments de fonctions
  • Example#182 - Utilisation de type non scalaire comme valeur par défaut
  • Example#183 - Les arguments sans valeur par défaut doivent être en premiers : erreur
  • Example#184 - Les arguments sans valeur par défaut doivent être en premiers : valide
  • Example#185 -
  • Example#186 - Déclaration basique de type de classe
  • Example#187 - Déclaration basique de type interface
  • Example#188 - Déclaration de type avec valeur de type NULL
  • Example#189 - Typage strict
  • Example#190 - Typage faible
  • Example#191 - Capturer l'exception de type TypeError
  • Example#192 - Utilisation de ... pour accéder aux arguments variables
  • Example#193 - Utilisation de ... pour fournir des arguments
  • Example#194 - Transtypage d'arguments variables
  • Example#195 - Accès aux arguments variables en PHP 5.5 et antérieurs
  • Example#196 - Utilisation de return
  • Example#197 - Retourner un tableau d'une fonction
  • Example#198 - Retourner une référence d'une fonction
  • Example#199 - Déclaration basique de type de retour
  • Example#200 - Le mode strict en action
  • Example#201 - Retourner un objet
  • Example#202 - Exemple de fonction variable
  • Example#203 - Exemple de méthode variable
  • Example#204 - Exemple de méthode variable avec des propriétés statiques
  • Example#205 - callables complexe
  • Example#206 - Exemples avec des fonctions anonymes
  • Example#207 - Assignation de fonction anonyme à une variable
  • Example#208 - Héritage de variable depuis le contexte parent
  • Example#209 - Fonctions anonymes et contexte
  • Example#210 - Liage automatique de $this
  • Example#211 - Tentative d'utiliser $this dans une fonction anonyme statique
  • Example#212 - Tentative de liage d'un objet à une fonction anonyme statique
  • Example#213 - Définition typique d'une classe
  • Example#214 - Quelques exemples de la pseudo-variable $this
  • Example#215 - Création d'une instance
  • Example#216 - Assignation d'un objet
  • Example#217 - Créer de nouveaux objets
  • Example#218 - Héritage simple d'une classe
  • Example#219 - Résolution de nom de classe
  • Example#220 - Déclarations de propriétés
  • Example#221 - Exemple d'utilisation de la syntaxe nowdoc pour initialiser une propriété
  • Example#222 - Définition et utilisation d'une constante de classe
  • Example#223 - Exemple de données statiques
  • Example#224 - Exemple des expressions de constante
  • Example#225 - Exemple avec __autoload
  • Example#226 - Autre exemple d'auto-chargement
  • Example#227 - Auto-chargement avec gestion des exceptions en PHP 5.3.0+
  • Example#228 - Auto-chargement avec gestion des exceptions en PHP 5.3.0+. Exception personnalisée manquante
  • Example#229 - Exemple d'utilisation des nouveaux constructeurs unifiés
  • Example#230 - Constructeurs dans des classes dans des espaces de noms
  • Example#231 - Exemple avec un Destructeur
  • Example#232 - Déclaration de propriétés
  • Example#233 - Déclaration de méthodes
  • Example#234 - Accès aux membres privés d'un objet du même type
  • Example#235 - Exemple d'héritage
  • Example#236 - :: en dehors de la définition de la classe
  • Example#237 - :: depuis la définition de la classe
  • Example#238 - Appel d'une méthode parente
  • Example#239 - Exemple avec une propriété statique
  • Example#240 - Exemple avec une méthode statique
  • Example#241 - Exemple de classe abstraite
  • Example#242 - Exemple avec une classe abstraite
  • Example#243 - Exemple d'interface
  • Example#244 - Les interfaces extensibles
  • Example#245 - Héritage de plusieurs interfaces
  • Example#246 - Interfaces avec des constantes
  • Example#247 - Exemple d'utilisation de Trait
  • Example#248 - Exemple avec l'ordre de précédence
  • Example#249 - Autre exemple d'ordre de précédence
  • Example#250 - Utilisation de plusieurs Traits
  • Example#251 - Résolution des conflits
  • Example#252 - Changer la visibilité des méthodes
  • Example#253 - Traits Composés depuis d'autres Traits
  • Example#254 - Obligations requises par les méthodes abstraites
  • Example#255 - Variables statiques
  • Example#256 - Méthodes statiques
  • Example#257 - Définir des propriétes
  • Example#258 - Résolution des conflits
  • Example#259 - Exemple de surcharge de propriétés avec les méthodes
     __get(),
     __set(),
     __isset() et
     __unset()
  • Example#260 - Surcharge de méthodes avec __call() et __callStatic()
  • Example#261 - Parcours d'objet simple
  • Example#262 - Itération d'un objet implémentant un itérateur
  • Example#263 - Itération d'un objet implémentant IteratorAggregate
  • Example#264 - Utilisation de sleep() et wakeup()
  • Example#265 - Exemple simple
  • Example#266 - Exemple avec __invoke()
  • Example#267 - Utilisation de __set_state() (depuis PHP 5.1.0)
  • Example#268 - Utilisation de __debugInfo()
  • Example#269 - Exemple de méthode finale
  • Example#270 - Exemple de classe finale
  • Example#271 - Exemple de duplication d'objets
  • Example#272 - Exemple de comparaison d'objets en PHP
  • Example#273 - Exemples de typage d'objets
  • Example#274 - Utilisation de self::
  • Example#275 - Utilisation simple de static::
  • Example#276 - Utilisation de static:: dans un contexte non statique
  • Example#277 - Appel avec ou sans transmission
  • Example#278 - Références et Objets
  • Example#279 - Exemple de syntaxe des espaces de noms
  • Example#280 - Déclaration d'un espace de noms
  • Example#281 - Erreur de déclaration d'un espace de noms
  • Example#282 - Déclaration d'un espace de noms avec hiérarchie
  • Example#283 - Déclaration de plusieurs espaces de noms, syntaxe à combinaison simple
  • Example#284 - Déclaration de plusieurs espaces de noms, syntaxe à accolades
  • Example#285 - Déclaration de plusieurs espaces de noms avec un espace sans nom
  • Example#286 - Déclaration de plusieurs espaces de noms avec un espace sans nom (2)
  • Example#287 - Accès aux classes, fonctions et constantes globales depuis un espace de noms
  • Example#288 - Accès dynamique aux éléments
  • Example#289 - Accès dynamique à des espaces de noms
  • Example#290 - Exemple avec __NAMESPACE__, dans un code avec espace de noms
  • Example#291 - Exemple avec __NAMESPACE__, dans un code avec espace de noms global
  • Example#292 - Utilisation de __NAMESPACE__ pour une construction dynamique de noms
  • Example#293 - l'opérateur namespace, dans un espace de noms
  • Example#294 - l'opérateur namespace, dans l'espace de noms global
  • Example#295 - importation et alias avec l'opérateur use
  • Example#296 - importation et alias multiples avec l'opérateur use
  • Example#297 - Importation et noms d'espaces dynamiques
  • Example#298 - Importation et noms d'espaces absolus
  • Example#299 - Règles d'importation incorrectes
  • Example#300 - Spécification d'espace de noms global
  • Example#301 - Accès aux classes globales depuis un espace de noms
  • Example#302 - Accès aux fonctions et constantes globales dans un espace de noms
  • Example#303 - Exemples de résolutions d'espaces de noms
  • Example#304 - Accès à une classe globale de l'extérieur d'un espace de noms
  • Example#305 - Accéder à des classes globales hors d'un espace de noms
  • Example#306 - Accès aux classes internes depuis un espace de noms
  • Example#307 - Accès aux classes, fonctions et constantes internes dans un espace de noms
  • Example#308 - Noms d'espaces absolus
  • Example#309 - Noms qualifiés
  • Example#310 - Classes sans qualification
  • Example#311 - Fonctions et constantes sans espace de noms
  • Example#312 - Dangers de l'utilisation des espaces de noms dans une chaîne
  • Example#313 - Constantes indéfinies
  • Example#314 - Constantes qui ne peuvent être redéfinies
  • Example#315 - La classe Exception interne
  • Example#316 - Étendre la classe Exception (PHP 5.3.0+)
  • Example#317 - Lancer une exception
  • Example#318 - Gestion de l'exception avec un bloc finally
  • Example#319 - Héritage d'une exception
  • Example#320 - Implémentation de la fonction range sous la forme d'un générateur
  • Example#321 - Un exemple simple de production de valeurs
  • Example#322 - Production d'une paire clé/valeur
  • Example#323 - Production de valeurs nulles
  • Example#324 - Production de valeurs par référence
  • Example#325 - Utilisation basique de yield from
  • Example#326 - yield from et les valeurs retournées
  • Example#327 - Utilisation des références avec des variables indéfinies
  • Example#328 - Référencer des variables globales depuis des fonctions
  • Example#329 - Références et structure foreach
  • Example#330 - Exemple avec $GLOBALS
  • Example#331 - Exemple avec $_SERVER
  • Example#332 - Exemple avec $_GET
  • Example#333 - Exemple avec $_POST
  • Example#334 - Exemple avec $_ENV
  • Example#335 - Exemple avec $_COOKIE
  • Example#336 - Exemple avec $php_errormsg
  • Example#337 - Exemple avec $http_response_header
  • Example#338 - Exemple avec $argc
  • Example#339 - Exemple avec $argv
  • Example#340 - Exemple avec Exception::getMessage
  • Example#341 - Exemple avec Exception::getPrevious
  • Example#342 - Exemple avec Exception::getCode
  • Example#343 - Exemple avec Exception::getFile
  • Example#344 - Exemple avec Exception::getLine
  • Example#345 - Exemple avec Exception::getTrace
  • Example#346 - Exemple avec Exception::getTraceAsString
  • Example#347 - Exemple avec Exception::__toString
  • Example#348 - Utilisation de set_error_handler pour changer tous les messages d'erreurs en ErrorException
  • Example#349 - Exemple avec ErrorException::ErrorException
  • Example#350 - Exemple simple
  • Example#351 - Exemple simple
  • Example#352 - Exemple simple
  • Example#353 - Exemple avec ArrayAccess::offsetExists
  • Example#354 - Exemple simple
  • Example#355 - Exemple Closure::bind
  • Example#356 - Exemple Closure::bindTo
  • Example#357 - Closure::call example
  • Example#358 - Exemple avec Generator::key
  • Example#359 - Exemple d'utilisation Generator::send pour injecter des données
  • Example#360 - >Lance une exception dans un générateur
  • Example#361 - Exemple d'utilisation du paramètre bindto
  • Example#362 - Récupération d'une page et envoi de données POST
  • Example#363 - Ignore les redirections mais récupère les en-têtes et le contenu
  • Example#364 - Récupère une page et envoie des données avec la méthode POST
  • Example#365 - Détecte la dernière URL après des redirections
  • Example#366 - php://temp/maxmemory
  • Example#367 - php://filter/resource=<flux à filtrer>
  • Example#368 - php://filter/read=<liste de filtres à appliquer lors de la lecture>
  • Example#369 - php://filter/write=<liste des filtres à appliquer lors de l'écriture>
  • Example#370 - Affichage d'un contenu data://
  • Example#371 - Récupération du type de média
  • Example#372 - Utilisation simple
  • Example#373 - Ouverture d'un flux depuis une connexion active
  • Example#374 - La variable $session doit rester disponible !
  • Example#375 - Parcours d'une archive RAR
  • Example#376 - Ouverture d'un fichier crypté (en-tête crypté)
  • Example#377 - Ligne d'invocation de PHP
  • Example#378 - Une erreur de vérification de variable conduit à un gros problème
  • Example#379 - Une attaque du système de fichiers!
  • Example#380 - Une vérification renforcée
  • Example#381 - Vérification renforcée de noms de fichiers
  • Example#382 - Script vulnérable aux octets nuls
  • Example#383 - Validation correcte de l'entrée
  • Example#384 - Hasher un champ mot de passe
  • Example#385 - Hasher un mot de passe en utilisant la fonction crypts
  • Example#386 - Séparation des résultats en pages, et créer des administrateurs (PostgreSQL et MySQL)
  • Example#387 - Exemple d'injection SQL
  • Example#388 - Liste d'articles ... et ajout de mot de passe
  • Example#389 - Révélation des mots de passe
  • Example#390 - Modifier un mot de passe ... et gain de droits!
  • Example#391 - Une requête et son injection
  • Example#392 - Attaque d'un serveur de bases de données (MSSQL Server)
  • Example#393 - Attaque d'un serveur de base de données (MSSQL Server) - 2
  • Example#394 - Une navigation de fiches plus sécuritaire
  • Example#395 - Attaque de variables avec une page HTML personnalisée
  • Example#396 - Exploiter des variables classiques de débogage
  • Example#397 - Détecter des variables non protégées avec E_ALL
  • Example#398 - Exemple de mauvaise utilisation de register_globals
  • Example#399 - Exemple d'abus de sessions avec register_globals on ou off
  • Example#400 - Détection simple de fausses variables
  • Example#401 - Utilisation dangereuse de variables
  • Example#402 - Désactiver les guillemets magiques du coté du serveur
  • Example#403 - Désactivation des guillemets magiques à l'exécution
  • Example#404 - Masquer PHP avec un autre langage
  • Example#405 - Masquer PHP avec des types inconnus
  • Example#406 - Utiliser le type HTML pour les extensions PHP
  • Example#407 - Exemple d'identification HTTP simple
  • Example#408 - Exemple d'identification HTTP Digest
  • Example#409 - Identification HTTP avec nom d'utilisateur/mot de passe forcé
  • Example#410 - Un simple formulaire XForms de recherche
  • Example#411 - Utiliser des XForms pour remplir $_POST
  • Example#412 - Formulaire de chargement de fichier
  • Example#413 - Validation de téléchargement de fichiers
  • Example#414 - Envoi d'un tableau de fichiers
  • Example#415 - Télécharger plusieurs fichiers simultanément
  • Example#416 - Méthode PUT pour les chargements de fichiers
  • Example#417 - Directive Apache pour le chargement par méthode PUT
  • Example#418 - Sauvegarde de fichiers HTTP PUT
  • Example#419 - Connaître le titre d'une page distante
  • Example#420 - Stocker des données sur un serveur distant
  • Example#421 - Exemple montrant la différence avec le SAPI CGI :
  • Example#422 -
  • Example#423 - Affichage des modules internes (et chargés) de PHP et Zend
  • Example#424 - Erreur de syntaxe lors de l'utilisation de doubles guillemets
  • Example#425 - Utilisation de guillemets simples pour éviter une substitution par le shell
  • Example#426 - Exemple d'utilisation des options -B, -R et -E pour compter le nombre de lignes d'un projet.
  • Example#427 - Utilisation de l'option -v pour récupérer le nom du SAPI ainsi que la version de PHP et de Zend
  • Example#428 - Exemple avec --ini
  • Example#429 - Exemple avec --rf
  • Example#430 - Exemple avec --rc
  • Example#431 - Exemple avec --re
  • Example#432 - Exemple avec --ri
  • Example#433 - Exécute un script PHP en tant que script shell
  • Example#434 - Script prévu pour être exécuté en ligne de commande (script.php)
  • Example#435 - Fichier batch pour exécuter un script PHP en ligne de commande (script.bat)
  • Example#436 - Exécution de code en utilisant le shell interactif
  • Example#437 - Auto-complétion en utilisant la touche de tabulation
  • Example#438 - Définition de directives du php.ini dans un shell interactif
  • Example#439 - Démarrage du serveur web
  • Example#440 - Démarrage avec un dossier racine spécifique
  • Example#441 - Utilisation d'un script routeur
  • Example#442 - Vérification de l'utilisation CLI du serveur Web
  • Example#443 - Gestion des types de fichiers non supportés
  • Example#444 - Accès au CLI du serveur web depuis une machine distante
  • Example#445 - Création d'un nouveau conteneur zval
  • Example#446 - Affichage des informations zval
  • Example#447 - Incrémentation du refcount d'une zval
  • Example#448 - Décrémentation du refcount d'une zval
  • Example#449 - Création d'une zval array
  • Example#450 - Ajout d'un élément déja existant au tableau
  • Example#451 - Suppression d'un élément de tableau
  • Example#452 - Ajout du tableau comme référence à lui-même en tant qu'élement
  • Example#453 - Suppression de $a
  • Example#454 - Exemple d'utilisation mémoire
  • Example#455 - Impact de GC sur les performances
  • Example#456 - Lancement du script ci-dessus
  • Example#457 - Recompiler PHP pour activer le support du benchmark du GC
  • Example#458 - Statistiques GC
  • Example#459 - all_probes.d for tracing all PHP Static Probes with DTrace
  • Example#460 - all_probes.stp for tracing all PHP Static Probes with SystemTap
  • Example#461 - Exemple avec apc.rfc1867
  • Example#462 - Exemple avec apc_add
  • Example#463 - Exemple apc_bin_load
  • Example#464 - Exemple avec apc_cache_info
  • Example#465 - Exemple apc_cas
  • Example#466 - Exemple apc_dec
  • Example#467 - Exemple avec apc_define_constants
  • Example#468 - Exemple apc_delete_file
  • Example#469 - Exemple avec apc_delete
  • Example#470 - Exemple apc_exists
  • Example#471 - Exemple avec apc_fetch
  • Example#472 - Exemple apc_inc
  • Example#473 - Exemple avec apc_load_constants
  • Example#474 - Exemple avec apc_sma_info
  • Example#475 - Exemple avec apc_store
  • Example#476 - Exemple avec APCIterator::__construct
  • Example#477 - An apc.rfc1867 example
  • Example#478 - A apcu_add example
  • Example#479 - A apcu_cache_info example
  • Example#480 - apcu_cas example
  • Example#481 - apcu_dec example
  • Example#482 - A apcu_delete example
  • Example#483 - An apcu_entry example
  • Example#484 - apcu_exists example
  • Example#485 - A apcu_fetch example
  • Example#486 - apcu_inc example
  • Example#487 - A apcu_sma_info example
  • Example#488 - A apcu_store example
  • Example#489 - A APCUIterator::__construct example
  • Example#490 - Session typique utilisant tcplisten
  • Example#491 - Exemple avec apd_callstack
  • Example#492 - Exemple avec apd_clunk
  • Example#493 - Exemple avec apd_continue
  • Example#494 - Exemple avec apd_croak
  • Example#495 - Exemple avec apd_dump_function_table
  • Example#496 - Exemple avec apd_dump_persistent_resources
  • Example#497 - Exemple avec apd_dump_regular_resources
  • Example#498 - Exemple avec apd_echo
  • Example#499 - Exemple avec apd_get_active_symbols
  • Example#500 - Exemple avec apd_set_pprof_trace
  • Example#501 - Exemple avec apd_set_socket_session_trace
  • Example#502 - Exemple avec apd_set_session_trace
  • Example#503 - Exemple avec apd_set_session
  • Example#504 - Exemple avec override_function
  • Example#505 - Exemple avec rename_function
  • Example#506 - Exemple avec bcompiler_load_exe
  • Example#507 - Exemple avec bcompiler_load
  • Example#508 - Exemple avec bcompiler_parse_class
  • Example#509 - Exemple avec bcompiler_read
  • Example#510 - Exemple avec bcompiler_write_class
  • Example#511 - Exemple avec bcompiler_write_constant
  • Example#512 - Exemple avec bcompiler_write_exe_footer
  • Example#513 - Exemple avec bcompiler_write_file
  • Example#514 - Exemple avec bcompiler_write_footer
  • Example#515 - Exemple avec bcompiler_write_function
  • Example#516 - Exemple avec bcompiler_write_functions_from_file
  • Example#517 - Exemple avec bcompiler_write_header
  • Example#518 - Exemple avec blenc_encrypt
  • Example#519 - Gestion d'erreurs avancées en PHP
  • Example#520 - Exemple avec debug_backtrace
  • Example#521 - Exemple avec debug_print_backtrace
  • Example#522 - An error_clear_last example
  • Example#523 - Exemple avec error_get_last
  • Example#524 - Exemples avec error_log
  • Example#525 - Exemple avec error_reporting
  • Example#526 - Exemple avec restore_error_handler
  • Example#527 - Exemple avec restore_exception_handler
  • Example#528 - Gestionnaire d'erreurs avec set_error_handler et trigger_error
  • Example#529 - Exemple avec set_exception_handler
  • Example#530 - Exemple avec trigger_error
  • Example#531 - Traitement des informations dans une application PHP
  • Example#532 - Exemple d'utilisation de gengraph.php
  • Example#533 - Lister les données depuis une capture inclued
  • Example#534 - Exemple avec inclued_get_data
  • Example#535 - Création d'un grand tableau
  • Example#536 - Exemple de bufferisation de sortie
  • Example#537 - Exemple avec ob_end_clean
  • Example#538 - Exemple avec ob_end_flush
  • Example#539 - Exemple avec ob_get_clean
  • Example#540 - Exemple avec ob_get_contents
  • Example#541 - Exemple avec ob_get_flush
  • Example#542 - Exemple avec ob_get_length
  • Example#543 - Exemple avec ob_gzhandler
  • Example#544 - Exemple avec ob_list_handlers
  • Example#545 - Exemple de gestion de sortie avec fonction de rappel
  • Example#546 - Crée un tampon de sortie in-effacable de sorte à être compatible avec PHP 5.3 et PHP 5.4
  • Example#547 - Exemple avec output_add_rewrite_var
  • Example#548 - Exemple avec output_reset_rewrite_vars
  • Example#549 - Exemple avec assert_options
  • Example#550 - Gestion des assertions avec un gestionnaire personnalisé
  • Example#551 - Utilisation d'un gestionnaire personnalisé pour afficher une description
  • Example#552 - Expectations sans exception personalisée
  • Example#553 - Expectations avec une exception personalisée
  • Example#554 - Exemple avec cli_get_process_title
  • Example#555 - Exemple avec cli_set_process_title
  • Example#556 - Exemples avec dl
  • Example#557 - Exemple avec extension_loaded
  • Example#558 - Exemple avec gc_enabled
  • Example#559 - Exemple avec get_current_user
  • Example#560 - Exemple avec get_defined_constants
  • Example#561 - Affiche toutes les fonctions XML
  • Example#562 - Exemple avec get_include_path
  • Example#563 - Exemple avec get_included_files
  • Example#564 - Exemple avec get_loaded_extensions
  • Example#565 - Exemple avec get_magic_quotes_gpc
  • Example#566 - Exemple avec get_magic_quotes_runtime
  • Example#567 - Unfiltered get_resources
  • Example#568 - Filtered get_resources
  • Example#569 - Exemple avec getenv
  • Example#570 - Exemple avec getlastmod
  • Example#571 - Exemple avec getopt : les bases
  • Example#572 - Second exemple avec getopt : Introduction aux options longues
  • Example#573 - Troisième exemple avec getopt : Passage de plusieurs options
  • Example#574 - Exemple avec getrusage
  • Example#575 - Exemple avec ini_get_all
  • Example#576 - Désactive le paramètre details
  • Example#577 - Exemples avec ini_get
  • Example#578 - Exemple avec ini_restore
  • Example#579 - Définit une option de configuration
  • Example#580 - Exemple avec memory_get_usage
  • Example#581 - Exemple avec php_ini_loaded_file
  • Example#582 - Un exemple de liste retournée par php_ini_scanned_files
  • Example#583 - Exemple avec php_logo_guid
  • Example#584 - Exemple avec php_sapi_name
  • Example#585 - Exemples avec php_uname
  • Example#586 - Exemples avec quelques constantes liées au système
  • Example#587 - Exemple avec phpcredits
  • Example#588 - Affiche les développeurs principaux ansi que le groupe de documentation
  • Example#589 - Affiche tous les crédits
  • Example#590 - Exemple avec phpinfo
  • Example#591 - Exemple avec phpversion
  • Example#592 - Exemple avec PHP_VERSION_ID
  • Example#593 - Modification d'une variable d'environnement
  • Example#594 - Exemple avec restore_include_path
  • Example#595 - Exemple avec set_include_path
  • Example#596 - Ajout dans le chemin d'inclusion
  • Example#597 - Exemple avec set_magic_quotes_runtime
  • Example#598 - Exemple avec sys_get_temp_dir
  • Example#599 - Exemple avec version_compare
  • Example#600 - Exemple avec zend_logo_guid
  • Example#601 - Exemple avec zend_thread_id
  • Example#602 - Exemple avec zend_version
  • Example#603 - Superglobales particulières avec runkit.superglobal=_FOO,_BAR dans php.ini
  • Example#604 - Instanciation d'un sandbox restreint
  • Example#605 - Utilisation des variables dans sandbox
  • Example#606 - Appel de fonctions sandbox
  • Example#607 - Passage d'arguments aux fonctions sandbox
  • Example#608 - Travailler avec des variables dans un sandbox
  • Example#609 - Accès aux variables parentes
  • Example#610 - Exemple avec runkit_class_adopt
  • Example#611 - Exemple avec runkit_class_emancipate
  • Example#612 - Exemple avec runkit_function_add
  • Example#613 - Exemple avec runkit_function_copy
  • Example#614 - Exemple avec runkit_function_redefine
  • Example#615 - Exemple avec runkit_method_add
  • Example#616 - Exemple avec runkit_method_copy
  • Example#617 - Exemple avec runkit_method_redefine
  • Example#618 - Exemple avec runkit_method_remove
  • Example#619 - Exemple avec runkit_method_rename
  • Example#620 - Exemple avec runkit_return_value_used
  • Example#621 - Alimentation de sortie vers une variable
  • Example#622 - Activation et désactivation de scream, à l'exécution
  • Example#623 - Exemple avec uopz_backup
  • Example#624 - Exemple avec uopz_compose
  • Example#625 - Exemple avec uopz_copy
  • Example#626 - Exemple avec uopz_delete
  • Example#627 - Exemple avec uopz_delete et une classe
  • Example#628 - Exemple avec uopz_extend
  • Example#629 - Exemple avec uopz_flags
  • Example#630 - Exemple avec uopz_function
  • Example#631 - Exemple avec uopz_function et une classe
  • Example#632 - Exemple avec uopz_implement
  • Example#633 - Exemple avec uopz_overload
  • Example#634 - Exemple avec uopz_redefine
  • Example#635 - Exemple avec uopz_rename
  • Example#636 - Exemple avec uopz_rename et une classe
  • Example#637 - Exemple avec uopz_restore
  • Example#638 - Exemple avec uopz_undefine
  • Example#639 - Exemple d'utilisation de Weakref
  • Example#640 - Exemple d'utilisation de WeakRef
  • Example#641 - Exemple avec Weakref::acquire
  • Example#642 - Exemple d'acquisition / libération
  • Example#643 - Exemple avec Weakref::__construct
  • Example#644 - Exemple avec Weakref::release
  • Example#645 - Exemple d'utilisation de Weakmap
  • Example#646 - wincache.ignorelist exemple
  • Example#647 - Configuration de l'authentification pour wincache.php
  • Example#648 - Activer le gestionnaire de session WinCache
  • Example#649 - Activation des fonctionnalités de re routage des fonctions de WinCache
  • Example#650 - Reroute.ini
  • Example#651 - Un exemple de wincache_fcache_fileinfo
  • Example#652 - Un exemple de wincache_fcache_meminfo
  • Example#653 - Exemple avec wincache_lock
  • Example#654 - Un exemple de wincache_ocache_fileinfo
  • Example#655 - Un exemple de wincache_ocache_meminfo
  • Example#656 - Un exemple de wincache_refresh_if_changed
  • Example#657 - Exemple avec wincache_rplist_fileinfo
  • Example#658 - Exemple avec wincache_rplist_meminfo
  • Example#659 - Exemple avec wincache_scache_info
  • Example#660 - Exemple avec wincache_scache_meminfo
  • Example#661 - Exemple avec wincache_ucache_add et le paramètre key sous forme de chaîne de caractères
  • Example#662 - Exemple avec wincache_ucache_add et le paramètre key sous forme d'un tableau
  • Example#663 - Exemple avec wincache_ucache_cas
  • Example#664 - Exemple avec wincache_ucache_clear
  • Example#665 - Exemple avec wincache_ucache_dec
  • Example#666 - Exemple avec wincache_ucache_delete et le paramètre key sous forme de chaîne de caractères
  • Example#667 - Exemple avec wincache_ucache_delete et le paramètre key sous forme d'un tableau
  • Example#668 - Exemple avec wincache_ucache_delete et le paramètre key sous la forme d'un tableau où quelques éléments n'ont pas pu être supprimés
  • Example#669 - Exemple avec wincache_ucache_exists
  • Example#670 - Exemple avec wincache_ucache_get et le paramètre key sous forme de chaîne de caractères
  • Example#671 - Exemple avec wincache_ucache_get et le paramètre key sous forme d'un tableau
  • Example#672 - Exemple avec wincache_ucache_inc
  • Example#673 - Exemple avec wincache_ucache_info
  • Example#674 - Exemple avec wincache_ucache_meminfo
  • Example#675 - Exemple avec wincache_ucache_set et le paramètre key sous forme de chaîne de caractères
  • Example#676 - Exemple avec wincache_ucache_set et le paramètre key sous forme de tableau
  • Example#677 - Exemple avec wincache_unlock
  • Example#678 - Exemple avec Xhprof et la GUI optionnelle
  • Example#679 - Exemple avec xhprof_disable
  • Example#680 - Exemple avec xhprof_enable
  • Example#681 - Exemple avec xhprof_sample_disable
  • Example#682 - Exemple avec id3_get_frame_long_name
  • Example#683 - Exemple avec id3_get_frame_short_name
  • Example#684 - Exemple avec id3_get_genre_id
  • Example#685 - Exemple avec id3_get_genre_list
  • Example#686 - Exemple avec id3_get_genre_name
  • Example#687 - Exemple avec id3_get_tag
  • Example#688 - Exemple avec id3_get_tag
  • Example#689 - Exemple avec id3_get_version
  • Example#690 - Exemple avec id3_remove_tag
  • Example#691 - Exemple avec id3_set_tag
  • Example#692 - Ouvre un nouveau fichier MP3 et lit le titre
  • Example#693 - Lecture d'un fichier OGG/Vorbis
  • Example#694 - Encoder un fichier audio en OGG/Vorbis
  • Example#695 - Exemple général de l'extension KADM5
  • Example#696 - Exemple de modification du mot de passe du principal
  • Example#697 - Exemple de création d'un principal
  • Example#698 - Exemple avec kadm5_delete_principal
  • Example#699 - Exemple avec kadm5_get_policies
  • Example#700 - Exemple avec kadm5_get_principal
  • Example#701 - Exemple avec kadm5_get_principals
  • Example#702 - Exemple d'initialisation KADM5
  • Example#703 - Exemple de modification d'un principal
  • Example#704 - Utilisation des mots de passe CHAP
  • Example#705 - Exemple avec radius_acct_open
  • Example#706 - Exemple avec radius_add_server
  • Example#707 - Exemple avec radius_auth_open
  • Example#708 - Exemple avec radius_create_request
  • Example#709 - Exemple avec radius_cvt_addr
  • Example#710 - Exemple avec radius_cvt_int
  • Example#711 - Exemple avec radius_cvt_string
  • Example#712 - Exemple avec radius_get_attr
  • Example#713 - Exemple avec radius_get_tagged_attr_data
  • Example#714 - Exemple avec radius_get_tagged_attr_tag
  • Example#715 - Exemple avec radius_get_vendor_attr
  • Example#716 - Exemple avec radius_put_attr
  • Example#717 - Exemple avec radius_put_int
  • Example#718 - Exemple avec radius_put_string
  • Example#719 - Exemple avec radius_put_vendor_attr
  • Example#720 - Affichage d'une chaîne avec une couleur donnée à l'écran
  • Example#721 - Exemple avec ncurses_getmouse
  • Example#722 - Writing a string with a specified color to the screen
  • Example#723 - Écriture d'une chaîne dans une couleur donnée
  • Example#724 - Exemple avec ncurses_mousemask
  • Example#725 - Affichage d'une chaîne en couleur à l'écran
  • Example#726 - Exemple d'Utilisation Newt
  • Example#727 - Exemple avec newt_button
  • Example#728 - Exemple avec newt_draw_root_text
  • Example#729 - Exemple avec newt_form_add_component
  • Example#730 - Exemple avec newt_form_add_components
  • Example#731 - Exemple avec newt_form
  • Example#732 - Exemple avec newt_get_screen_size
  • Example#733 - Exemple avec newt_win_entries
  • Example#734 - Exemple d'interface de rappelde Readline
  • Example#735 - Exemple avec readline
  • Example#736 - Petit exemple avec bzip2
  • Example#737 - Compression de données
  • Example#738 - Décompression d'une chaîne
  • Example#739 - Exemple avec bzerror
  • Example#740 - Exemple avec bzopen
  • Example#741 - Exemple avec bzread
  • Example#742 - Exemple avec bzwrite
  • Example#743 - Utiliser un fichier externe
  • Example#744 - Utilier un fichier contenu dans une archive phar
  • Example#745 - Convertir une archive phar au format tar
  • Example#746 - Exemple d'utilisation de phar.extract_list
  • Example#747 - Exemple d'utilisation de phar.cache_list
  • Example#748 - Un exemple avec Phar::addEmptyDir
  • Example#749 - Un exemple avec Phar::addFile
  • Example#750 - Un exemple avec Phar::addFromString
  • Example#751 - Un exemple avecPhar::apiVersion
  • Example#752 - Un exemple avecPhar::buildFromDirectory
  • Example#753 - Exemple avec Phar::buildFromIterator et SplFileInfo
  • Example#754 - Exemple avec Phar::buildFromIterator et d'autres itérateurs
  • Example#755 - Un exemple avec Phar::canCompress
  • Example#756 - Un exemple avec Phar::canWrite
  • Example#757 - Un exemple avec Phar::compress
  • Example#758 - Un exemple avec Phar::compressAllFilesBZIP2
  • Example#759 - Un exemple avec Phar::compressAllFilesGZ
  • Example#760 - Un exemple avec Phar::compressFiles
  • Example#761 - Un exemple avec Phar::__construct
  • Example#762 - Un exemple avec Phar::convertToData
  • Example#763 - Un exemple avec Phar::convertToExecutable
  • Example#764 - Exemple avec Phar::copy
  • Example#765 - Un exemple avec Phar::count
  • Example#766 - Exemple avec Phar::createDefaultStub
  • Example#767 - Un exemple avec Phar::decompress
  • Example#768 - Un exemple avec Phar::decompressFiles
  • Example#769 - Un exemple avec Phar::delMetaData
  • Example#770 - Un exemple avec Phar::delete
  • Example#771 - Un exemple avec Phar::extractTo
  • Example#772 - Un exemple avec Phar::getMetadata
  • Example#773 - Exemple avec Phar::getStub
  • Example#774 - Un exemple avec Phar::hasMetadata
  • Example#775 - Exemple avec Phar::interceptFileFuncs
  • Example#776 - Un exemple avec Phar::interceptFileFuncs
  • Example#777 - Un exemple avec Phar::isBuffering
  • Example#778 - Exemple avec Phar::isCompressed
  • Example#779 - Un exemple avec Phar::loadPhar
  • Example#780 - Exemple avec Phar::mapPhar
  • Example#781 - Un exemple avec Phar::mount
  • Example#782 - Un exemple avec Phar::mungServer
  • Example#783 - Un exemple avec Phar::offsetExists
  • Example#784 - Exemple avec Phar::offsetGet
  • Example#785 - Un exemple avec Phar::offsetSet
  • Example#786 - Un exemple avec Phar::offsetUnset
  • Example#787 - Un exemple avec Phar::running
  • Example#788 - Un exemple avec Phar::setAlias
  • Example#789 - Un exemple avec Phar::setDefaultStub
  • Example#790 - Un exemple avec Phar::setMetadata
  • Example#791 - Un exemple avec Phar::setStub
  • Example#792 - Un exemple avec Phar::startBuffering
  • Example#793 - Un exemple Phar::stopBuffering
  • Example#794 - Un exemple avec Phar::uncompressAllFiles
  • Example#795 - Un exemple avec Phar::unlinkArchive
  • Example#796 - Exemple avec Phar::webPhar
  • Example#797 - Un exemple avec PharData::addEmptyDir
  • Example#798 - Un exemple avec PharData::addFile
  • Example#799 - Exemple avec PharData::addFromString
  • Example#800 - Un exemple avec PharData::buildFromDirectory
  • Example#801 - Exemple avec PharData::buildFromIterator et SplFileInfo
  • Example#802 - Exemple avec PharData::buildFromIterator et d'autres itérateurs
  • Example#803 - Un exemple avec PharData::compress
  • Example#804 - Un exemple avec PharData::compressFiles
  • Example#805 - Un exemple avec PharData::__construct
  • Example#806 - Un exemple avec PharData::convertToData
  • Example#807 - Un exemple avec PharData::convertToExecutable
  • Example#808 - Un exemple avec PharData::copy
  • Example#809 - Exemple avec PharData::decompress
  • Example#810 - Un exemple avec PharData::decompressFiles
  • Example#811 - Un exemple avec PharData::delMetaData
  • Example#812 - Un exemple avec PharData::delete
  • Example#813 - Un exemple avec PharData::extractTo
  • Example#814 - Un exemple avec PharData::offsetSet
  • Example#815 - Un exemple avec PharData::offsetUnset
  • Example#816 - Un exemple avec Phar::setMetadata
  • Example#817 - Un exemple avec PharFileInfo::chmod
  • Example#818 - Un exemple avec PharFileInfo::compress
  • Example#819 - Exemple avec PharFileInfo::__construct
  • Example#820 - Exemple avec PharFileInfo::decompress
  • Example#821 - Un exemple avec PharFileInfo::delMetaData
  • Example#822 - Exemple avec PharFileInfo::getCRC32
  • Example#823 - Un exemple avec PharFileInfo::getCompressedSize
  • Example#824 - Un exemple avec PharFileInfo::getMetadata
  • Example#825 - Un exemple avecPharFileInfo::getPharFlags
  • Example#826 - Un exemple avec PharFileInfo::isCRCChecked
  • Example#827 - Un exemple avec PharFileInfo::isCompressed
  • Example#828 - Un exemple avec PharFileInfo::isCompressedBZIP2
  • Example#829 - Exemple avec PharFileInfo::isCompressedGZ
  • Example#830 - Un exemple avec PharFileInfo::setCompressedBZIP2
  • Example#831 - Un exemple avec PharFileInfo::setCompressedGZ
  • Example#832 - Un exemple avec PharFileInfo::setMetadata
  • Example#833 - Un exemple avec PharFileInfo::setUncompressed
  • Example#834 - Installation de Rar
  • Example#835 - Décompression à la volée
  • Example#836 - Exemple d'extractions RAR
  • Example#837 - Style orienté objet
  • Example#838 - Style procédural
  • Example#839 - Style orienté objet
  • Example#840 - Style procédural
  • Example#841 - Style orienté objet
  • Example#842 - Style procédural
  • Example#843 - Style orienté objet
  • Example#844 - Style procédural
  • Example#845 - Style orienté objet
  • Example#846 - Style procédural
  • Example#847 - Style orienté objet
  • Example#848 - Style procédural
  • Example#849 - Style orienté objet
  • Example#850 - Style procédural
  • Example#851 - Fonction de rappel pour le volume
  • Example#852 - Style orienté objet
  • Example#853 - Style procédural
  • Example#854 - Exemple avec RarArchive::__toString
  • Example#855 - Exemple avec RarEntry::extract
  • Example#856 - Comment extraire tous les fichiers d'une archive :
  • Example#857 - Exemple avec RarEntry::getAttr
  • Example#858 - Exemple avec RarEntry::getHostOs (version >= 2.0.0)
  • Example#859 - Exemple avec RarEntry::getHostOs (version <= 1.0.0)
  • Example#860 - Exemple avec RarEntry::getMethod
  • Example#861 - Exemple avec RarEntry::getName
  • Example#862 - Exemple avec RarEntry::getPackedSize
  • Example#863 - Exemple avec RarEntry::getStream
  • Example#864 - Exemple avec RarEntry::getUnpackedSize
  • Example#865 - Exemple avec RarEntry::getVersion
  • Example#866 - Exemple avec RarException::isUsingExceptions
  • Example#867 - Exemple avec RarException::setUsingExceptions
  • Example#868 - Création d'une archive Zip
  • Example#869 - Affiche les détails de l'archive et liste son contenu
  • Example#870 - Flux ZIP : lit les meta-données d'un fichier OpenOffice
  • Example#871 - Exemple d'utilisation de Zip
  • Example#872 - Crée un nouveau dossier dans l'archive
  • Example#873 - Ouverture et ajout
  • Example#874 - Ajout d'une entrée dans une nouvelle archive
  • Example#875 - Ajout d'un fichier dans un dossier d'une archive
  • Example#876 - Exemple avec ZipArchive::addGlob
  • Example#877 - Exemple avec ZipArchive::addPattern
  • Example#878 - Efface le fichier depuis l'archive en utilisant son index
  • Example#879 - Efface un fichier et un dossier de l'archive en utilisant les noms
  • Example#880 - Extrait toutes les entrées
  • Example#881 - Extrait deux entrées
  • Example#882 - Extrait le commentaire de l'archive
  • Example#883 - Affiche le commentaire d'une entrée
  • Example#884 - Affiche le commentaire d'une entrée
  • Example#885 - Extrait les entrées et leurs droits Unix
  • Example#886 - Récupère le contenu du fichier
  • Example#887 - Récupère le contenu d'un fichier
  • Example#888 - Convertit une image depuis une entrée ZIP
  • Example#889 - Exemple avec ZipArchive::getNameIndex
  • Example#890 - Récupère le contenu de l'entrée ZIP
  • Example#891 - Récupère une entrée Zip avec la fonction fopen et le gestionnaire de flux ZIP
  • Example#892 - Gestionnaire de flux et image, peut être utilisé également avec les fonctions XML
  • Example#893 - Crée une archive et l'utilise avec ZipArchive::locateName
  • Example#894 - Ouverture et extraction
  • Example#895 - Création d'une archive
  • Example#896 - Renommer une entrée
  • Example#897 - Renommer une entrée
  • Example#898 - Création d'une archive et définition d'un commentaire
  • Example#899 - Ouvre une archive et définit un commentaire pour une entrée
  • Example#900 - Ouvre une archive et définit le commentaire pour une entrée
  • Example#901 - Add files with different compression methods to an archive
  • Example#902 - Add files with different compression methods to an archive
  • Example#903 - Archive un fichier avec ses droits Unix
  • Example#904 - Récupère les informations d'une entrée
  • Example#905 - Récupère les informations d'une entrée
  • Example#906 - Exemple avec Zlib
  • Example#907 - Fonctionnement avec l'API de compression et de décompression incrémentale depuis PHP 7.0.0
  • Example#908 - Exemple avec gzclose
  • Example#909 - Exemple avec gzcompress
  • Example#910 - Exemple avec gzdeflate
  • Example#911 - Création d'un fichier gzip
  • Example#912 - Exemple avec gzeof
  • Example#913 - Exemple avec gzfile
  • Example#914 - Exemple avec gzgetc
  • Example#915 - Exemple avec gzgets
  • Example#916 - Exemple avec gzgetss
  • Example#917 - Exemple avec gzinflate
  • Example#918 - Exemple avec gzopen
  • Example#919 - Exemple avec gzpassthru
  • Example#920 - Exemple avec gzread
  • Example#921 - Exemple avec gzseek
  • Example#922 - Exemple avec gzuncompress
  • Example#923 - Exemple avec gzwrite
  • Example#924 - Exemple avec zlib_encode
  • Example#925 - Exemple avec CrackLib
  • Example#926 - random_bytes example
  • Example#927 - random_int example
  • Example#928 - Exemple avec hash_algos
  • Example#929 - Exemple avec hash_copy
  • Example#930 - Exemple
  • Example#931 - Exemple avec hash_file
  • Example#932 - Exemple avec hash_final
  • Example#933 - Exemple avec hash_hmac_file
  • Example#934 - Exemple avec hash_hmac
  • Example#935 - Exemple de hashage incrémental
  • Example#936 - Exemple avec hash_pbkdf2
  • Example#937 - Exemple avec hash_update_stream
  • Example#938 - Exemple avec hash
  • Example#939 - Exemple avec PHP-5.4 et supérieur
  • Example#940 - Chiffrement d'une valeur avec AES avec une clé 256-bit sous 2.4.x et supérieur, en mode CBC
  • Example#941 - Exemple avec mcrypt_create_iv
  • Example#942 - Exemple avec mcrypt_enc_get_algorithms_name
  • Example#943 - Exemple avec mcrypt_enc_get_modes_name
  • Example#944 - Exemple avec mcrypt_enc_get_supported_key_sizes
  • Example#945 - Exemple avec mcrypt_encrypt
  • Example#946 - Exemple avec mcrypt_get_block_size
  • Example#947 - Exemple avec mcrypt_get_cipher_name
  • Example#948 - Exemple avec mcrypt_get_iv_size
  • Example#949 - Exemple avec mcrypt_get_key_size
  • Example#950 - Exemple avec mcrypt_list_algorithms
  • Example#951 - Exemple avec mcrypt_list_modes
  • Example#952 - Exemple avec mcrypt_module_open
  • Example#953 - Utilisation de mcrypt_module_open pour chiffrer
  • Example#954 - Exemple avec mcrypt_module_self_test
  • Example#955 - Exemple avec mdecrypt_generic
  • Example#956 - Calcule le MD5 et le hmac, puis l'affiche comme un hexadécimal
  • Example#957 - Parcourir la liste des hash
  • Example#958 - Exemple avec mhash_get_block_size
  • Example#959 - Exemple avec mhash_get_hash_name
  • Example#960 - Exemple avec openssl_cipher_iv_length
  • Example#961 - Création d'un certificat autosigné
  • Example#962 - Exemple avec openssl_csr_sign - signer une CSR (comment être votre propre Autorité de Certification)
  • Example#963 - Exemple avec openssl_error_string
  • Example#964 - Exemple avec openssl_get_cert_locations
  • Example#965 - Exemple openssl_get_cipher_methods
  • Example#966 - Exemple openssl_get_md_methods
  • Example#967 - Exemple avec openssl_open
  • Example#968 - Exemple avec openssl_pkcs7_decrypt
  • Example#969 - Exemple avec openssl_pkcs7_encrypt
  • Example#970 - Exemple avec openssl_pkcs7_sign
  • Example#971 - Exemple openssl_random_pseudo_bytes
  • Example#972 - Exemple avec openssl_seal
  • Example#973 - Exemple avec openssl_sign
  • Example#974 - Exemple avec openssl_sign
  • Example#975 - Exemple avec openssl_spki_export_challenge
  • Example#976 - Exemple avec openssl_spki_export_challenge depuis <keygen>
  • Example#977 - Exemple avec openssl_spki_export
  • Example#978 - Exemple avec openssl_spki_export depuis <keygen>
  • Example#979 - Exemple avec openssl_spki_new
  • Example#980 - Exemple avec openssl_spki_verify
  • Example#981 - Exemple avec openssl_spki_verify depuis <keygen>
  • Example#982 - Exemple avec openssl_verify
  • Example#983 - Exemple avec openssl_verify
  • Example#984 - Exemple avec password_hash
  • Example#985 - Exemple avec password_hash en définissant manuellement l'option cost
  • Example#986 - Exemple avec password_hash et une définition du salt manuelle
  • Example#987 - Exemple avec password_hash et un bon "cost"
  • Example#988 - Usage de password_needs_rehash
  • Example#989 - Exemple avec password_verify
  • Example#990 - Exemple avec DBA
  • Example#991 - Lecture d'une base de données
  • Example#992 - Exemple avec dba_handlers
  • Example#993 - Exemple avec dbx_close
  • Example#994 - Exemple avec dbx_compare
  • Example#995 - Exemple avec dbx_connect
  • Example#996 - Exemple avec dbx_error
  • Example#997 - Exemple avec dbx_escape_string
  • Example#998 - Comment gérer la valeur retournée
  • Example#999 - Listes les types et noms de colonnes
  • Example#1000 - Afficher le contenu d'une base
  • Example#1001 - Comment utiliser les requêtes UNBUFFERED
  • Example#1002 - Comment gérer la valeur retournée
  • Example#1003 - Exemple avec dbx_sort
  • Example#1004 - Connexion sans DSN
  • Example#1005 - Exemple avec odbc_execute et odbc_prepare
  • Example#1006 - Exemple avec odbc_fetch_into
  • Example#1007 - Exemple avec odbc_next_result
  • Example#1008 - Exemple avec odbc_prepare et odbc_execute
  • Example#1009 - Exemple avec odbc_result
  • Example#1010 - Exemple avec odbc_setoption
  • Example#1011 - Utilisation de PDO::ATTR_DRIVER_NAME
  • Example#1012 - Connexion à MySQL
  • Example#1013 - Gestion des erreurs de connexion
  • Example#1014 - Fermeture d'une connexion
  • Example#1015 - Connexions persistantes
  • Example#1016 - Exécution d'un groupe dans une transaction
  • Example#1017 - Insertions répétitives en utilisant les requêtes préparées
  • Example#1018 - Insertions répétées en utilisant des requêtes préparées
  • Example#1019 - Récupération des données en utilisant des requêtes préparées
  • Example#1020 - Appel d'une procédure stockée avec un paramètre de sortie
  • Example#1021 - Appel d'une procédure stockée avec un paramètre d'entrée/sortie
  • Example#1022 - Utilisation invalide de marqueur
  • Example#1023 - Création d'une instance PDO et définition du mode d'erreur
  • Example#1024 - Crée une instance PDO et définit le mode d'erreur depuis le constructeur
  • Example#1025 - Affichage d'une image depuis une base de données
  • Example#1026 - Insertion d'une image dans une base de données
  • Example#1027 - Insertion d'une image dans une base de données Oracle
  • Example#1028 - Annule une transaction
  • Example#1029 - Valide une transaction basique
  • Example#1030 - Committing a DDL transaction
  • Example#1031 - Crée une instance PDO via une invocation de pilote
  • Example#1032 - Crée une instance PDO via une invocation URI
  • Example#1033 - Crée une instance PDO avec un alias
  • Example#1034 - Récupération d'un code SQLSTATE
  • Example#1035 - Affiche les champs d'erreurs pour une connexion PDO_ODBC sur une base de données DB2
  • Example#1036 - Exécution d'une requête DELETE
  • Example#1037 - Récupération des attributs de connexion à une base de données
  • Example#1038 - Exemple avec PDO::getAvailableDrivers
  • Example#1039 - Prépare une requête SQL avec des paramètres nommés
  • Example#1040 - Prépare une requête SQL avec des marqueurs
  • Example#1041 - Exemple avec PDO::query
  • Example#1042 - Protection d'une chaîne normale
  • Example#1043 - Protection d'une chaîne dangereuse
  • Example#1044 - Protection d'une chaîne complexe
  • Example#1045 - Annulation d'une transaction
  • Example#1046 - Lie l'affichage du jeu de résultats à des variables PHP
  • Example#1047 - Exécution d'une requête préparée avec des emplacements nommés
  • Example#1048 - Exécution d'une requête préparée avec des marqueurs de positionnement
  • Example#1049 - Appel une procédure stockée avec un paramètre INOUT
  • Example#1050 - Exécute une requête préparée avec des marqueurs nommés
  • Example#1051 - Exécute une requête préparée avec des points d'interrogation comme paramètre fictif
  • Example#1052 - Exemple avec PDOStatement::closeCursor
  • Example#1053 - Comptage des colonnes
  • Example#1054 - Exemple avec PDOStatement::debugDumpParams et des paramètres nommés
  • Example#1055 - Exemple avec PDOStatement::debugDumpParams et des paramètres anonymes
  • Example#1056 - Détermine la catégorie de l'erreur qui survient
  • Example#1057 - Affiche les champs de errorInfo pour une connexion PDO_ODBC sur une base de données DB2
  • Example#1058 - Exécute une requête préparée avec des variables liées
  • Example#1059 - Exécute une requête préparée avec un tableau de valeurs (paramètres de nom)
  • Example#1060 - Exécute une requête préparée avec un tableau de valeurs (marqueurs)
  • Example#1061 - Exécute une requête préparée avec un marqueur de positionnement
  • Example#1062 - Exécute une requête préparée en utilisant un tableau pour les clauses IN
  • Example#1063 - Récupération de lignes en utilisant différentes méthodes
  • Example#1064 - Récupération des lignes avec un curseur scrollable
  • Example#1065 - Récupération de toutes les lignes d'un jeu de résultats
  • Example#1066 - Récupération de toutes les valeurs d'une seule colonne depuis un jeu de résultats
  • Example#1067 - Grouper toutes les valeurs d'une seule colonne
  • Example#1068 - Instancier une classe pour chaque résultat
  • Example#1069 - Appel d'une fonction pour chaque résultat
  • Example#1070 - Retourne la première colonne de la ligne suivante
  • Example#1071 - Récupération des metainformations pour une colonne
  • Example#1072 - Récupération de multiples lignes de résultats retournées par une procédure stockée
  • Example#1073 - Retourne le nombre de lignes effacées
  • Example#1074 - Comptage des lignes retournées par une requête SELECT
  • Example#1075 - Définition du mode de récupération
  • Example#1076 - Insertion de LOBs dans CUBRID PDO
  • Example#1077 - Récupère des LOBs depuis CUBRID PDO
  • Example#1078 - Insertion d'un jeu dans CUBRID PDO avec le type de données par défaut.
  • Example#1079 - Spécifie le type de données lors de l'insertion du jeu dans CUBRID PDO
  • Example#1080 - Exemples de DSN PDO_CUBRID
  • Example#1081 - Exemple avec PDO::cubrid_schema
  • Example#1082 - Exemples avec PDO_DBLIB DSN
  • Example#1083 - Exemples avec PDO_FIREBIRD DSN
  • Example#1084 - Exemple avec un DSN PDO_FIREBIRD avec un port et un chemin
  • Example#1085 - Exemple avec un DSN PDO_FIREBIRD en local et un chemin vers le fichier employee.fdb sur un système Debian
  • Example#1086 - Exemple avec PDO_IBM DSN en utilisant db2cli.ini
  • Example#1087 - Exemple avec PDO_IBM DSN en utilisant une chaîne complète de connexion
  • Example#1088 - Exemple DSN de PDO_INFORMIX avec odbc.ini
  • Example#1089 - Exemple DSN de PDO_INFORMIX avec une chaîne de caractères de connexion
  • Example#1090 - Forcer la bufferisation des requêtes avec mysql
  • Example#1091 - Définition du jeu de caractères pour la connexion à UTF-8 avant PHP 5.3.6
  • Example#1092 - Exemples avec le DSN de PDO_MYSQL
  • Example#1093 - Exemples de DSN PDO_SQLSRV
  • Example#1094 - Exemples avec PDO_OCI DSN
  • Example#1095 - Exemple avec PDO_ODBC DSN (pilote ODBC Manager)
  • Example#1096 - Exemple avec PDO_ODBC DSN (connexion non cataloguée IBM DB2)
  • Example#1097 - Exemple avec PDO_ODBC DSN (connexion non cataloguée Microsoft Access)
  • Example#1098 - Exemples avec PDO_PGSQL DSN
  • Example#1099 - Exemple avec PDO::pgsqlLOBCreate
  • Example#1100 - Exemple avec PDO::pgsqlLOBOpen
  • Example#1101 - Exemple avec PDO::pgsqlLOBUnlink
  • Example#1102 - Exemples avec PDO_SQLITE DSN
  • Example#1103 - Exemple d'agrégation avec une fonction max_length
  • Example#1104 - Exemple avec PDO::sqliteCreateCollation
  • Example#1105 - Exemple avec PDO::sqliteCreateFunction
  • Example#1106 - Exemples de DSN pour PDO_4D
  • Example#1107 - Exemple de présentation de l'extension PDO_4D
  • Example#1108 - Exemple d'exécution de langage 4D depuis pdo_4d
  • Example#1109 - Protection des noms de tables spéciaux
  • Example#1110 - Exemple de récupération de données
  • Example#1111 - Exemple d'insertion de données
  • Example#1112 - Exemple avec cubrid_bind
  • Example#1113 - Exemple avec cubrid_bind et les types BLOB/CLOB
  • Example#1114 - Exemple avec cubrid_bind et BLOB/CLOB
  • Example#1115 - Exemple avec cubrid_close_prepare
  • Example#1116 - Exemple avec cubrid_close_request
  • Example#1117 - Exemple avec cubrid_col_get
  • Example#1118 - Exemple avec cubrid_col_size
  • Example#1119 - Exemple avec cubrid_column_names
  • Example#1120 - Exemple avec cubrid_column_types
  • Example#1121 - Exemple avec cubrid_commit
  • Example#1122 - Exemple avec cubrid_connect_with_url
  • Example#1123 - Exemple avec cubrid_connect_with_url
  • Example#1124 - Exemple avec cubrid_connect
  • Example#1125 - Exemple avec cubrid_current_oid
  • Example#1126 - Exemple avec cubrid_disconnect
  • Example#1127 - Exemple avec cubrid_drop
  • Example#1128 - Exemple avec cubrid_error_code_facility
  • Example#1129 - Exemple avec cubrid_error_code
  • Example#1130 - Exemple avec cubrid_error_msg
  • Example#1131 - Exemple avec cubrid_execute
  • Example#1132 - Exemple avec cubrid_fetch
  • Example#1133 - Exemple avec cubrid_free_result
  • Example#1134 - Exemple avec cubrid_get_charset
  • Example#1135 - Exemple avec cubrid_get_class_name
  • Example#1136 - Exemple avec cubrid_get_client_info
  • Example#1137 - Exemple avec cubrid_get_db_parameter
  • Example#1138 - Exemple avec cubrid_get_query_timeout
  • Example#1139 - Exemple avec cubrid_get_server_info
  • Example#1140 - Exemple avec cubrid_get
  • Example#1141 - Exemple avec cubrid_insert_id
  • Example#1142 - Exemple avec cubrid_is_instance
  • Example#1143 - Exemple avec cubrid_lob_close
  • Example#1144 - Exemple avec cubrid_lob_export
  • Example#1145 - Exemple avec cubrid_lob_get
  • Example#1146 - Exemple avec cubrid_lob_send
  • Example#1147 - Exemple avec cubrid_lob_size
  • Example#1148 - Exemple avec cubrid_lob2_bind
  • Example#1149 - cubrid_lob2_export example
  • Example#1150 - Exemple avec cubrid_lob2_export
  • Example#1151 - Exemple 1 avec cubrid_lob2_read
  • Example#1152 - Exemple 2 avec cubrid_lob2_read
  • Example#1153 - Exemple avec cubrid_lob2_seek64
  • Example#1154 - Exemple avec cubrid_lob2_seek
  • Example#1155 - Exemple 1 avec cubrid_lob2_write
  • Example#1156 - Exemple 2 avec cubrid_lob2_write
  • Example#1157 - Exemple avec cubrid_lock_read
  • Example#1158 - Exemple avec cubrid_lock_write
  • Example#1159 - Exemple avec cubrid_move_cursor
  • Example#1160 - Exemple avec cubrid_next_result
  • Example#1161 - Exemple avec cubrid_num_cols
  • Example#1162 - Exemple avec cubrid_num_rows
  • Example#1163 - Exemple avec cubrid_pconnect_with_url sans propriétés
  • Example#1164 - cubrid_pconnect_with_url url with properties example
  • Example#1165 - Exemple avec cubrid_connect
  • Example#1166 - Exemple avec cubrid_prepare
  • Example#1167 - Exemple avec cubrid_put
  • Example#1168 - Exempe avec cubrid_rollback
  • Example#1169 - Exemple avec cubrid_schema
  • Example#1170 - Exemple avec cubrid_seq_drop
  • Example#1171 - Exemple avec cubrid_seq_insert
  • Example#1172 - Exemple avec cubrid_seq_put
  • Example#1173 - Exemple avec cubrid_set_add
  • Example#1174 - Exemple avec cubrid_get_db_parameter
  • Example#1175 - Exemple avec cubrid_set_drop
  • Example#1176 - Exemple avec cubrid_version
  • Example#1177 - Exemple avec cubrid_affected_rows
  • Example#1178 - Exemple avec cubrid_client_encoding
  • Example#1179 - Exemple avec cubrid_close
  • Example#1180 - Exemple avec cubrid_data_seek
  • Example#1181 - Exemple avec cubrid_db_name
  • Example#1182 - Exemple avec cubrid_errno
  • Example#1183 - Exemple avec cubrid_error
  • Example#1184 - Exemple avec cubrid_fetch_array
  • Example#1185 - Exemple avec cubrid_fetch_assoc
  • Example#1186 - Exemple avec cubrid_fetch_field
  • Example#1187 - Exemple avec cubrid_fetch_lengths
  • Example#1188 - Exemple avec cubrid_fetch_object
  • Example#1189 - Exemple avec cubrid_fetch_row
  • Example#1190 - Exemple avec cubrid_field_flags
  • Example#1191 - Exemple avec cubrid_field_len
  • Example#1192 - Exemple avec cubrid_field_name
  • Example#1193 - Exemple avec cubrid_field_seek
  • Example#1194 - Exemple avec cubrid_field_table
  • Example#1195 - Exemple avec cubrid_field_type
  • Example#1196 - Exemple avec cubrid_list_dbs
  • Example#1197 - Exemple avec cubrid_num_fields
  • Example#1198 - Exemple avec cubrid_ping
  • Example#1199 - Requête invalide
  • Example#1200 - Requête valide
  • Example#1201 - Exemple avec cubrid_real_escape_string
  • Example#1202 - Exemple avec cubrid_result
  • Example#1203 - Exemple avec cubrid_unbuffered_query
  • Example#1204 - Exemple avec cubrid_load_from_glo
  • Example#1205 - Exemple avec cubrid_new_glo
  • Example#1206 - Exemple avec cubrid_save_to_glo
  • Example#1207 - Exemple avec cubrid_send_glo
  • Example#1208 - Insertion d'un enregistrement dans une base de données dBase
  • Example#1209 - Ferme un fichier de base de données dBase
  • Example#1210 - Création d'un fichier de base de données dBase
  • Example#1211 - Affiche les informations d'en-têtes pour un fichier de base de données dBase
  • Example#1212 - Liste tous les membres enregistrés dans la base de données
  • Example#1213 - Exemple avec dbase_numfields
  • Example#1214 - Lecture de tous les enregistrements de la base de données
  • Example#1215 - Ouverture d'un fichier de base de données dBase
  • Example#1216 - Vide une base de données dBase
  • Example#1217 - Mise à jour d'un enregistrement dans une base de données
  • Example#1218 - Exemple avec ibase_blob_get
  • Example#1219 - Exemple avec ibase_blob_import
  • Example#1220 - Exemple avec ibase_connect
  • Example#1221 - Exemple avec ibase_execute
  • Example#1222 - Exemple avec ibase_fetch_object
  • Example#1223 - Exemple avec ibase_field_info
  • Example#1224 - Exemple avec ibase_name_result
  • Example#1225 - Exemple avec ibase_num_fields
  • Example#1226 - Exemple avec ibase_query
  • Example#1227 - Exemple avec ibase_set_event_handler
  • Example#1228 - Exemple avec fbsql_close
  • Example#1229 - Exemple avec fbsql_connect
  • Example#1230 - Exemple avec fbsql_create_blob
  • Example#1231 - Exemple avec fbsql_create_clob
  • Example#1232 - Exemple avec fbsql_create_db
  • Example#1233 - Exemple avec fbsql_data_seek
  • Example#1234 - Exemple avec fbsql_create_clob
  • Example#1235 - Exemple avec fbsql_errno
  • Example#1236 - Exemple avec fbsql_error
  • Example#1237 - Exemple avec fbsql_fetch_array
  • Example#1238 - Exemple avec fbsql_fetch_assoc
  • Example#1239 - Exemple avec fbsql_fetch_field
  • Example#1240 - Exemple avec fbsql_fetch_object
  • Example#1241 - Exemple avec fbsql_field_name
  • Example#1242 - Exemple avec fbsql_field_type
  • Example#1243 - Exemple avec fbsql_list_dbs
  • Example#1244 - Exemple avec fbsql_list_fields
  • Example#1245 - Exemple avec fbsql_next_result
  • Example#1246 - Exemple avec fbsql_num_rows
  • Example#1247 - Exemple avec fbsql_query
  • Example#1248 - Exemple avec fbsql_query
  • Example#1249 - Exemple avec fbsql_read_blob
  • Example#1250 - Exemple avec fbsql_read_clob
  • Example#1251 - Exemple avec fbsql_table_name
  • Example#1252 - Récupération de la valeur de AUTOCOMMIT pour une connexion
  • Example#1253 - Modification de la valeur de AUTOCOMMIT pour une connexion
  • Example#1254 - Association de variables PHP à une requête préparée
  • Example#1255 - Appel de procédures d'enregistrement avec les paramètres IN et OUT
  • Example#1256 - Insertion d'un objet large binaire (BLOB) provenant directement d'un fichier
  • Example#1257 - Exemple avec db2_client_info
  • Example#1258 - Fermeture d'une connexion
  • Example#1259 - Récupération de la valeur de SQLSTATE pour une tentative de connexion échouée
  • Example#1260 - Récupération du message d'erreur retourné par une tentative de connexion échouée
  • Example#1261 - Création d'une connexion cataloguée
  • Example#1262 - Création d'une connexion non cataloguée
  • Example#1263 - Création d'une connexion avec autocommit désactivé par défaut
  • Example#1264 - Meilleure performance i5/OS
  • Example#1265 - Utilisation du contexte
  • Example#1266 - Exemple avec db2_escape_string
  • Example#1267 - Création d'une table avec db2_exec
  • Example#1268 - Exécution d'une requête SELECT avec un curseur flottant
  • Example#1269 - Retourne des données XML en tant que ResultSet SQL
  • Example#1270 - Exécuter un "JOIN" avec des données XML
  • Example#1271 - Retourne des données SQL faisant partie d'un document XML large
  • Example#1272 - Préparation et exécution d'une requête SQL avec des marqueurs
  • Example#1273 - Appel d'une procédure d'enregistrement avec un paramètre de SORTIE
  • Example#1274 - Retourne des données XML en tant que ResultSet SQL
  • Example#1275 - Exécuter un "JOIN" avec des données XML
  • Example#1276 - Retourne des données SQL faisant partie d'un document XML large
  • Example#1277 - Itère avec un curseur d'avancement seul
  • Example#1278 - Récupération de lignes spécifiques avec db2_fetch_array provenant d'un curseur flottant
  • Example#1279 - Itère avec un curseur d'avancement seul
  • Example#1280 - Récupération de lignes spécifiques avec db2_fetch_assoc provenant d'un curseur flottant
  • Example#1281 - Itère avec un curseur d'avancement seul
  • Example#1282 - Récupération de lignes spécifiques avec db2_fetch_both provenant d'un curseur flottant
  • Example#1283 - Exemple avec db2_fetch_object
  • Example#1284 - Itère à travers un jeu de résultats
  • Example#1285 - Alternatives recommandées i5/OS pour db2_fetch_row/db2_result
  • Example#1286 - Fixe et récupère les paramètres d'une ressource de connexion
  • Example#1287 - Exemple avec db2_last_insert_id
  • Example#1288 - Itére à travers différents types de données
  • Example#1289 - Exemple avec db2_next_result
  • Example#1290 - Exemple avec db2_num_fields
  • Example#1291 - Fermer une connexion DB2 persistante
  • Example#1292 - Exemple d'utilisation de db2_pconnect
  • Example#1293 - Utilisation de contextes de confiance DB2
  • Example#1294 - Préparation et exécution d'une requête SQL avec des marqueurs
  • Example#1295 - Exemple d'utilisation de db2_result
  • Example#1296 - Annulation d'une requête DELETE
  • Example#1297 - Exemple avec db2_server_info
  • Example#1298 - Fixer un paramètre à une ressource de connexion
  • Example#1299 - Fixe des paramètres multiples avec une ressource de connexion
  • Example#1300 - Fixe des paramètres multiples avec une clé invalide
  • Example#1301 - Fixe des paramètres multiples avec une valeur invalide
  • Example#1302 - Fixe des paramètres multiples avec une ressource de connexion et un mauvais type
  • Example#1303 - Fixe des paramètres multiples avec une mauvaise ressource
  • Example#1304 - Tout mettre ensemble
  • Example#1305 - Les curseurs i5/OS sont en lecture seule
  • Example#1306 - Nombre de lignes affectées
  • Example#1307 - Fermer une connexion Informix
  • Example#1308 - Connexion à un serveur Informix
  • Example#1309 - Exemple avec ifx_do
  • Example#1310 - Exemple avec ifx_errormsg
  • Example#1311 - Exemple avec ifx_fetch_row
  • Example#1312 - Exemple avec ifx_fieldproperties
  • Example#1313 - Nom de champs et type SQL
  • Example#1314 - Lire les valeurs de sqlca.sqlerrd[x]
  • Example#1315 - Affichage sous la forme d'une table HTML
  • Example#1316 - Exemple avec ifx_num_fields
  • Example#1317 - Afficher toutes les lignes de la table "ordres" sous la forme html du serveur IFX
  • Example#1318 - Insertion de valeurs dans la table "catalogue" IFX
  • Example#1319 - Exemple d'utilisation de PassEnv avec Ingres
  • Example#1320 - Exemple simple avec Ingres
  • Example#1321 - Exemple avec ingres_charset
  • Example#1322 - Exemple avec ingres_connect
  • Example#1323 - Exemple avec ingres_cursor
  • Example#1324 - Exemple avec ingres_errno
  • Example#1325 - Exemple avec ingres_error
  • Example#1326 - Exemple avec ingres_errsqlstate
  • Example#1327 - Protège les caractères spéciaux avant de les utiliser avec Ingres
  • Example#1328 - Exemple avec ingres_fetch_array
  • Example#1329 - Récupère une ligne dans un tableau associatif
  • Example#1330 - Exemple avec ingres_fetch_object
  • Example#1331 - Lit la valeur retournée par une procédure stockée Ingres
  • Example#1332 - Exemple avec ingres_fetch_row
  • Example#1333 - Libération d'un résultat Ingres
  • Example#1334 - Envoi d'une requête à Ingres
  • Example#1335 - Passage de paramètres de requête à ingres_query
  • Example#1336 - Insertion d'un BLOB dans les paramètres de requête
  • Example#1337 - Positionnement du curseur Ingres sur la 3ème ligne
  • Example#1338 - Configuration du format de date à ISO4
  • Example#1339 - Configuration du fuseau horaire de Hong-Kong
  • Example#1340 - Exécution d'une requête SQL sans buffer sur Ingres
  • Example#1341 - Passage de paramètres de requêtes à ingres_unbuffered_query
  • Example#1342 - Insertion d'un BLOB dans les paramètres de requêtes SQL Ingres
  • Example#1343 - Exemple global de l'extension MaxDB
  • Example#1344 - Exemple d'utilisation des requêtes SELECT INTO
  • Example#1345 - Exemple d'utilisation des procédures
  • Example#1346 - Style orienté objet
  • Example#1347 - Style procédural
  • Example#1348 - Style orienté objet
  • Example#1349 - Style procédural
  • Example#1350 - Style orienté objet
  • Example#1351 - Style procédural
  • Example#1352 - Style orienté objet
  • Example#1353 - Style procédural
  • Example#1354 - Style orienté objet
  • Example#1355 - Style procédural
  • Example#1356 - Exemple avec maxdb_connect_errno
  • Example#1357 - Exemple avec maxdb_connect_error
  • Example#1358 - Style orienté objet
  • Example#1359 - Style procédural
  • Example#1360 - Style orienté objet
  • Example#1361 - Style procédural
  • Example#1362 - Style procédural
  • Example#1363 - Style orienté objet
  • Example#1364 - Style procédural
  • Example#1365 - Style orienté objet
  • Example#1366 - Style procédural
  • Example#1367 - Style orienté objet
  • Example#1368 - Style procédural
  • Example#1369 - Style orienté objet
  • Example#1370 - Style procédural
  • Example#1371 - Style orienté objet
  • Example#1372 - Style procédural
  • Example#1373 - Style orienté objet
  • Example#1374 - Style procédural
  • Example#1375 - Style orienté objet
  • Example#1376 - Style procédural
  • Example#1377 - Style orienté objet
  • Example#1378 - Style procédural
  • Example#1379 - Style orienté objet
  • Example#1380 - Style procédural
  • Example#1381 - Style orienté objet
  • Example#1382 - Style procédural
  • Example#1383 - Style orienté objet
  • Example#1384 - Style procédural
  • Example#1385 - Style orienté objet
  • Example#1386 - Style procédural
  • Example#1387 - Style orienté objet
  • Example#1388 - Style procédural
  • Example#1389 - Exemple avec maxdb_get_client_info
  • Example#1390 - Exemple avec maxdb_get_client_version
  • Example#1391 - Style orienté objet
  • Example#1392 - Style procédural
  • Example#1393 - Style orienté objet
  • Example#1394 - Style procédural
  • Example#1395 - Style orienté objet
  • Example#1396 - Style procédural
  • Example#1397 - Style orienté objet
  • Example#1398 - Style procédural
  • Example#1399 - Style orienté objet
  • Example#1400 - Style procédural
  • Example#1401 - Style orienté objet
  • Example#1402 - Style procédural
  • Example#1403 - Style orienté objet
  • Example#1404 - Style procédural
  • Example#1405 - Style orienté objet
  • Example#1406 - Style procédural
  • Example#1407 - Style orienté objet
  • Example#1408 - Style procédural
  • Example#1409 - Style orienté objet
  • Example#1410 - Style procédural
  • Example#1411 - Style orienté objet
  • Example#1412 - Style procédural
  • Example#1413 - Style orienté objet
  • Example#1414 - Style procédural
  • Example#1415 - Style orienté objet
  • Example#1416 - Style procédural
  • Example#1417 - Style orienté objet
  • Example#1418 - Style procédural
  • Example#1419 - Style orienté objet
  • Example#1420 - Style procédural
  • Example#1421 - Style procédural
  • Example#1422 - Style orienté objet
  • Example#1423 - Style procédural
  • Example#1424 - Style orienté objet
  • Example#1425 - Style procédural
  • Example#1426 - Style orienté objet
  • Example#1427 - Style procédural
  • Example#1428 - Style orienté objet
  • Example#1429 - Style procédural
  • Example#1430 - Style orienté objet
  • Example#1431 - Style procédural
  • Example#1432 - Style orienté objet
  • Example#1433 - Style procédural
  • Example#1434 - Style procédural (SELECT INTO)
  • Example#1435 - Style procédural (avec procédure de base)
  • Example#1436 - Style orienté objet (syntaxe étendue)
  • Example#1437 - Style orienté objet
  • Example#1438 - Style procédural
  • Example#1439 - Style orienté objet
  • Example#1440 - Style procédural
  • Example#1441 - Style orienté objet
  • Example#1442 - Style procédural
  • Example#1443 - Style orienté objet
  • Example#1444 - Style procédural
  • Example#1445 - Style orienté objet
  • Example#1446 - Style procédural
  • Example#1447 - Style orienté objet
  • Example#1448 - Style procédural
  • Example#1449 - Style orienté objet
  • Example#1450 - Style procédural
  • Example#1451 - Style orienté objet
  • Example#1452 - Style procédural
  • Example#1453 - Style orienté objet
  • Example#1454 - Style procédural
  • Example#1455 - Style orienté objet
  • Example#1456 - Style procédural
  • Example#1457 - Style orienté objet
  • Example#1458 - Style procédural
  • Example#1459 - Style orienté objet
  • Example#1460 - Style procédural
  • Example#1461 - Style orienté objet
  • Example#1462 - Style procédural
  • Example#1463 - Style orienté objet
  • Example#1464 - Style procédural
  • Example#1465 - Style orienté objet
  • Example#1466 - Style procédural
  • Example#1467 -
  • Example#1468 -
  • Example#1469 -
  • Example#1470 -
  • Example#1471 -
  • Example#1472 -
  • Example#1473 -
  • Example#1474 -
  • Example#1475 -
  • Example#1476 -
  • Example#1477 -
  • Example#1478 -
  • Example#1479 -
  • Example#1480 -
  • Example#1481 -
  • Example#1482 - Préférences de lecture via l'URI de connexion avec une syntaxe de type requête
  • Example#1483 - Préférences de lecture avec une syntaxe de type tableau pour les jeux de tags
  • Example#1484 - Passing a WriteConcern to a write operation
  • Example#1485 - Connection string WriteConcerns
  • Example#1486 - MongoDB::setWriteConcern and MongoCollection::setWriteConcern
  • Example#1487 - Unacknowledged WriteConcern, followed with Acknowledged Write
  • Example#1488 - Acknowledged Writes
  • Example#1489 - Majority Acknowledged Write
  • Example#1490 - Acknowledged and Journaled Write
  • Example#1491 - Connexion à l'instance MongoDB avec un cryptage SSL
  • Example#1492 - Connexion à l'instance MongoDB avec le cryptage SSL avec des vérifications
  • Example#1493 - Connexion à l'instance MongoDB qui nécessite des certificats client
  • Example#1494 - Authentification avec des certificats X.509
  • Example#1495 - Authentification sur la base de données "admin"
  • Example#1496 - Authentification sur une base de données normale
  • Example#1497 - Liste du jeux de réplication
  • Example#1498 - Mauvais noms pour le jeu de réplication
  • Example#1499 - Utilisation correcte des noms de deux jeux de réplication
  • Example#1500 -
  • Example#1501 -
  • Example#1502 -
  • Example#1503 -
  • Example#1504 -
  • Example#1505 -
  • Example#1506 - Héritage des préférences de lecture depuis le niveau de la base de données vers le curseur
  • Example#1507 -
  • Example#1508 -
  • Example#1509 -
  • Example#1510 -
  • Example#1511 -
  • Example#1512 -
  • Example#1513 -
  • Example#1514 - Utilisation basique de MongoClient
  • Example#1515 - Exemple avec MongoClient::close
  • Example#1516 - Exemple avec MongoClient::__construct et un pool de réplicats
  • Example#1517 - Connexion via socket UNIX
  • Example#1518 - Exemple d'authentification MongoClient::__construct
  • Example#1519 - Exemple avec MongoClient::__construct et des préférences de lecture
  • Example#1520 - Exemple avec MongoClient::__construct et des options
  • Example#1521 - Exemple avec MongoClient::__construct et les préférences de lecture
  • Example#1522 - Exemple avec MongoClient::getConnections
  • Example#1523 - Exemple avec MongoClient::getReadPreference
  • Example#1524 - Exemple avec MongoClient::getWriteConcern
  • Example#1525 - Exemple avec MongoClient::killCursor
  • Example#1526 - Exemple avec MongoClient::listDBs
  • Example#1527 - Exemple avec MongoClient::selectCollection
  • Example#1528 - Exemple avec MongoClient::setReadPreference
  • Example#1529 - Exemple avec MongoClient::setWriteConcern
  • Example#1530 - Sélection d'une base de données
  • Example#1531 - Exemple avec MongoDB::command et "distinct"
  • Example#1532 - Exemple avec MongoDB::command et "distinct"
  • Example#1533 - Exemple avec MongoDB::command et MapReduce
  • Example#1534 - Exemple avec la commande MongoDB::command "geoNear"
  • Example#1535 - Exemple avec MongoDB::createCollection
  • Example#1536 - Exemple pour MongoDB::createDBRef
  • Example#1537 - Exemple pour MongoDB::createDBRef
  • Example#1538 - Exemple avec MongoDB::drop
  • Example#1539 - Exemple avec MongoDB::execute
  • Example#1540 - Exemple avec MongoDB::execute
  • Example#1541 - Exemple de porté
  • Example#1542 - Exemple avec MongoDB::getCollectionInfo
  • Example#1543 - Exemple avec MongoDB::getCollectionNames
  • Example#1544 - Exemple pour MongoDB::getDBRef
  • Example#1545 - Exemple pour MongoDB::getGridFS
  • Example#1546 - Exemple avec MongoDB::getReadPreference
  • Example#1547 - Exemple avec MongoDB::getWriteConcern
  • Example#1548 - Exemple avec MongoDB::lastError
  • Example#1549 - Exemple avec MongoDB::lastError et une clé dupliquée
  • Example#1550 - Exemple avec MongoDB::listCollections
  • Example#1551 - Exemple pour MongoDB::repair
  • Example#1552 - Exemple avec MongoDB::setReadPreference
  • Example#1553 - Exemple avec MongoDB::setWriteConcern
  • Example#1554 - Exemple avec MongoCollection::aggregate
  • Example#1555 - Exemple avec MongoCollection::aggregate
  • Example#1556 - Exemple avec MongoCollection::aggregate
  • Example#1557 - Exemple avec MongoCollection::aggregate et des options de commande
  • Example#1558 - Exemple avec MongoCollection::aggregateCursor
  • Example#1559 - Exemple avec MongoCollection::aggregateCursor avec différentes tailles de lots initiaux
  • Example#1560 - Exemple avec MongoCollection::batchInsert
  • Example#1561 - Exemple avec MongoCollection::batchInsert où l'on ignore les erreurs
  • Example#1562 - Exemple avec MongoCollection::count
  • Example#1563 - Exemple avec MongoCollection::createDBRef
  • Example#1564 - Exemple avec MongoCollection::createIndex
  • Example#1565 - Indexation géospatiale
  • Example#1566 - Exemple de suppression de doublons
  • Example#1567 - Exemple avec MongoCollection::deleteIndex
  • Example#1568 - Exemple avec MongoCollection::deleteIndexes
  • Example#1569 - Exemple avec MongoCollection::distinct
  • Example#1570 - Exemple avec MongoCollection::distinct sur un document embarqué
  • Example#1571 - Exemple avec MongoCollection::drop
  • Example#1572 - Exemple avec MongoCollection::ensureIndex
  • Example#1573 - indexation géospatiale
  • Example#1574 - Exemple de suppression de données dupliquées
  • Example#1575 - Exemple avec MongoCollection::find
  • Example#1576 - Exemple avec MongoCollection::find
  • Example#1577 - Exemple pour MongoCollection::find en utilisant $where
  • Example#1578 - Exemple pour MongoCollection::find utilisant $in
  • Example#1579 - Récupération des résultats sous la forme d'un tableau
  • Example#1580 - Exemple avec MongoCollection::findAndModify
  • Example#1581 - Exemple avec MongoCollection::findAndModify et un gestionnaire d'erreur
  • Example#1582 - MongoCollection::findOne Cherche un document par son id.
  • Example#1583 - MongoCollection::findOne Cherche un document par condition.
  • Example#1584 - Exemple avec MongoCollection::getDBRef
  • Example#1585 - Exemple avec MongoCollection::find
  • Example#1586 - Exemple avec MongoCollection::getName
  • Example#1587 - Exemple avec MongoCollection::getReadPreference
  • Example#1588 - Exemple avec MongoCollection::getWriteConcern
  • Example#1589 - Exemple avec MongoCollection::group
  • Example#1590 - Exemple avec MongoCollection::group
  • Example#1591 - Passer une fonction keys
  • Example#1592 - Exemple avec MongoCollection::insert _id
  • Example#1593 - Exemple d'une écriture reconnue avec MongoCollection::insert
  • Example#1594 - Exemple avec MongoCollection::parallelCollectionScan
  • Example#1595 - Exemple avec MongoCollection::remove et justOne
  • Example#1596 - Exemple avec MongoCollection::save
  • Example#1597 - Exemple avec MongoCollection::setReadPreference avec un jeu de tags sous la forme d'un tableau
  • Example#1598 - Exemple avec MongoDB::setWriteConcern
  • Example#1599 - Exemple avec MongoCollection::toIndexString
  • Example#1600 - Exemple avec MongoCollection::__toString
  • Example#1601 - Exemple avec MongoCollection::update
  • Example#1602 - Exemples avec MongoCollection::update et upsert
  • Example#1603 - Exemple avec plusieurs MongoCollection::update
  • Example#1604 - Utilisation basique de MongoCursor
  • Example#1605 - Parcourt d'un MongoCursor
  • Example#1606 - Ajout d'options à MongoCursor
  • Example#1607 - Exemple de l'ajout d'un commentaire avec MongoCursor::addOption
  • Example#1608 - Exemple avec MongoCursor::addOption
  • Example#1609 - Exemple avec MongoCursor::awaitData
  • Example#1610 - Exemple avec MongoCursor::batchSize et des combinaisons avec la fonction MongoCursor::limit
  • Example#1611 - Exemple avec MongoCursor::count
  • Example#1612 - Exemple avec MongoCursor::doQuery
  • Example#1613 - Exemple avec MongoCursor::explain
  • Example#1614 - Exemple avec MongoCursor::getReadPreference
  • Example#1615 - Exemple avec MongoCursor::info
  • Example#1616 - Exemple avec MongoCursor::maxTimeMS
  • Example#1617 - Exemple avec MongoCursor::setFlag
  • Example#1618 - Exemple avec MongoCursor::setReadPreference
  • Example#1619 - Exemple avec MongoCursor::slaveOkay
  • Example#1620 - Exemple avec MongoCursor::sort
  • Example#1621 - Exemple avec MongoCursor::tailable
  • Example#1622 - Exemple avec MongoCursor::timeout
  • Example#1623 - Ajout d'options à MongoCommandCursor
  • Example#1624 - Exemple avec MongoCommandCursor::batchSize
  • Example#1625 - Exemple avec MongoCommandCursor
  • Example#1626 - Exemple avec MongoCommandCursor::createFromDocument
  • Example#1627 - Exemple de valeur retournée par MongoCommandCursor::getReadPreference
  • Example#1628 - Exemple avec MongoCommandCursor::info
  • Example#1629 - Exemple avec MongoCommandCursor::rewind
  • Example#1630 - Exemple avec MongoCommandCursor::setReadPreference et un tableau de jeux de tag
  • Example#1631 - Exemple avec MongoCommandCursor::timeout
  • Example#1632 - Exemple avec MongoId::__construct
  • Example#1633 - Exemple avec MongoId::__construct et des paramètres
  • Example#1634 - Exemple avec MongoId::__toString
  • Example#1635 - Exemple avec MongoCode::__construct
  • Example#1636 - Utilisation de MongoCode et $where
  • Example#1637 - Exemple avec MongoCode::__toString
  • Example#1638 - Stockage des dates avec MongoDate
  • Example#1639 - Exemple avec MongoDate::__construct
  • Example#1640 - Exemple avec MongoDate::toDateTime
  • Example#1641 - Masque d'une expression rationnelle
  • Example#1642 - Exemple avec MongoRegex::__construct
  • Example#1643 - Exemple avec MongoRegex::__toString
  • Example#1644 -
  • Example#1645 - Liage des documents
  • Example#1646 - Création de lien MongoDBRef
  • Example#1647 - Exemple avec MongoDBRef::create
  • Example#1648 - Exemple avec MongoCollection::createDBRef
  • Example#1649 - Exemple pour MongoGridFS::findOne
  • Example#1650 - Exemple avec MongoGridFS::storeBytes avec des méta-données additionnelles
  • Example#1651 - Exemple avec MongoGridFS::storeFile avec des méta-données additionnelles
  • Example#1652 - Exemple avec MongoGridFS::storeUpload et un formulaire HTML
  • Example#1653 - Exemples pour MongoGridFSFile::getBytes
  • Example#1654 - Exemple avec MongoGridFSFile::getResource
  • Example#1655 - Exemples pour MongoGridFSFile::write
  • Example#1656 - Exemple avec MongoWriteBatch
  • Example#1657 - Exemple avec MongoWriteBatch::add
  • Example#1658 - Exemple avec MongoWriteBatch::add
  • Example#1659 - Exemple avec MongoWriteBatch::add
  • Example#1660 - Exemple avec MongoWriteBatch::add
  • Example#1661 - Exemple avec MongoWriteBatch::add
  • Example#1662 - Exemple avec MongoWriteBatch::add
  • Example#1663 - Exemple avec MongoLog::setCallback
  • Example#1664 - Modification de la taille de la file d'attente
  • Example#1665 - Exemple avec Mongo::setPoolSize
  • Example#1666 - Changer la taille de la file
  • Example#1667 - Exemple Mongo::setPoolSize
  • Example#1668 - Exemple avec MongoResultException::getDocument
  • Example#1669 - Catching MongoDuplicateKeyException
  • Example#1670 - Catching MongoProtocolException
  • Example#1671 - MongoDB\Driver\Manager::__construct basic example
  • Example#1672 - MongoDB\Driver\Manager::__construct basic examples
  • Example#1673 - MongoDB\Driver\Manager::executeBulkWrite example
  • Example#1674 - MongoDB\Driver\Manager::executeCommand with a command returning a single result document
  • Example#1675 - MongoDB\Driver\Manager::executeCommand with a command returning a cursor
  • Example#1676 - MongoDB\Driver\Manager::executeQuery example
  • Example#1677 - Exemple avec MongoDB\Driver\Manager::getServers
  • Example#1678 - Composing MongoDB\Driver\Command to provide a helper to create collections
  • Example#1679 - Exemple avec MongoDB\Driver\Command::__construct
  • Example#1680 - MongoDB\Driver\Query::__construct example
  • Example#1681 - Mixed write operations are grouped by type
  • Example#1682 - Ordered write operations causing an error
  • Example#1683 - MongoDB\Driver\BulkWrite::__construct example
  • Example#1684 - MongoDB\Driver\BulkWrite::count example
  • Example#1685 - MongoDB\Driver\BulkWrite::delete example
  • Example#1686 - MongoDB\Driver\BulkWrite::insert example
  • Example#1687 - MongoDB\Driver\BulkWrite::update example
  • Example#1688 - MongoDB\Driver\WriteConcern::bsonSerialize with majority write concern
  • Example#1689 - MongoDB\Driver\WriteConcern::bsonSerialize with wtimeout and journal
  • Example#1690 - Exemple avec MongoDB\Driver\WriteConcern::__construct
  • Example#1691 - MongoDB\Driver\WriteConcern::getJournal example
  • Example#1692 - MongoDB\Driver\WriteConcern::getW example
  • Example#1693 - MongoDB\Driver\WriteConcern::getWtimeout example
  • Example#1694 - MongoDB\Driver\ReadPreference::bsonSerialize with primary read preference
  • Example#1695 - MongoDB\Driver\ReadPreference::bsonSerialize with secondary read preference and tag sets
  • Example#1696 - Exemple avec MongoDB\Driver\ReadPreference::__construct
  • Example#1697 - MongoDB\Driver\ReadPreference::getMode example
  • Example#1698 - MongoDB\Driver\ReadPreference::getTagSets example
  • Example#1699 - MongoDB\Driver\ReadConcern::bsonSerialize with empty read concern
  • Example#1700 - MongoDB\Driver\ReadConcern::bsonSerialize with local read concern
  • Example#1701 - MongoDB\Driver\ReadConcern::__construct example
  • Example#1702 - MongoDB\Driver\ReadConcern::getLevel example
  • Example#1703 - Exemple avec MongoDB\Driver\Cursor::__construct
  • Example#1704 - Exemple avec MongoDB\Driver\Cursor::getId
  • Example#1705 - Exemple avec MongoDB\Driver\Cursor::getServer
  • Example#1706 - Exemple avec MongoDB\Driver\Cursor::isDead
  • Example#1707 - Exemple avec MongoDB\Driver\Cursor::setTypeMap
  • Example#1708 - Exemple avec MongoDB\Driver\Cursor::toArray
  • Example#1709 - Exemple avec MongoDB\Driver\CursorId::__construct
  • Example#1710 - Exemple avec MongoDB\Driver\CursorId::__toString
  • Example#1711 - Exemple avec MongoDB\Driver\Server::__construct
  • Example#1712 - Exemple avec MongoDB\Driver\Server::getHost
  • Example#1713 - Exemple avec MongoDB\Driver\Server::getInfo
  • Example#1714 - Exemple avec MongoDB\Driver\Server::getLatency
  • Example#1715 - Exemple avec MongoDB\Driver\Server::getPort
  • Example#1716 - Exemple avec MongoDB\Driver\WriteConcernError::getCode
  • Example#1717 - Exemple avec MongoDB\Driver\WriteConcernError::getInfo
  • Example#1718 - Exemple avec MongoDB\Driver\WriteConcernError::getMessage
  • Example#1719 - Exemple avec MongoDB\Driver\WriteError::getCode
  • Example#1720 - Exemple avec MongoDB\Driver\WriteError::getIndex
  • Example#1721 - Exemple avec MongoDB\Driver\WriteError::getMessage
  • Example#1722 - Exemple avec MongoDB\Driver\WriteResult::getDeletedCount
  • Example#1723 - Exemple avec MongoDB\Driver\WriteResult::getInsertedCount
  • Example#1724 - Exemple avec MongoDB\Driver\WriteResult::getMatchedCount
  • Example#1725 - Exemple avec MongoDB\Driver\WriteResult::getModifiedCount
  • Example#1726 - Exemple avec MongoDB\Driver\WriteResult::getServer
  • Example#1727 - Exemple avec MongoDB\Driver\WriteResult::getUpsertedCount
  • Example#1728 - Exemple avec MongoDB\Driver\WriteResult::getUpsertedIds
  • Example#1729 - Exemple avec MongoDB\Driver\WriteResult::getWriteConcernError
  • Example#1730 - Exemple avec MongoDB\Driver\WriteResult::getWriteErrors
  • Example#1731 - MongoDB\Driver\WriteResult::isAcknowledged with acknowledged write concern
  • Example#1732 - MongoDB\Driver\WriteResult::isAcknowledged with unacknowledged write concern
  • Example#1733 - Exemple avec BSON\fromJSON
  • Example#1734 - MongoDB\BSON\fromPHP example
  • Example#1735 - Exemple avec BSON\toJSON
  • Example#1736 - MongoDB\BSON\toPHP example
  • Example#1737 - Exemple avec MongoDB\BSON\Binary::__construct
  • Example#1738 - MongoDB\BSON\Binary::getData example
  • Example#1739 - MongoDB\BSON\Binary::getType example
  • Example#1740 - MongoDB\BSON\Decimal128::__construct example
  • Example#1741 - MongoDB\BSON\Decimal128::__toString example
  • Example#1742 - MongoDB\BSON\Javascript::__construct example
  • Example#1743 - MongoDB\BSON\MaxKey::__construct example
  • Example#1744 - MongoDB\BSON\MinKey::__construct example
  • Example#1745 - Exemple avec MongoDB\BSON\ObjectID::__construct
  • Example#1746 - Exemple avec MongoDB\BSON\ObjectID::__toString
  • Example#1747 - MongoDB\BSON\Regex::__construct example
  • Example#1748 - Exemple avec BSON\Regex::getFlags
  • Example#1749 - Exemple avec BSON\Regex::getPattern
  • Example#1750 - Exemple avec BSON\Regex::__toString
  • Example#1751 - Exemple avec BSON\Timestamp::__construct
  • Example#1752 - Exemple avec BSON\Timestamp::__toString
  • Example#1753 - Exemple avec BSON\UTCDatetime::__construct
  • Example#1754 - Exemple avec BSON\UTCDatetime::toDateTime
  • Example#1755 - Exemple avec BSON\UTCDatetime::__toString
  • Example#1756 - Exemple avec BSON\Serializable::bsonSerialize
  • Example#1757 - Exemple avec BSON\Unserializable::bsonUnserialize
  • Example#1758 - MongoDB\Driver\Exception\WriteException::getWriteResult example
  • Example#1759 - Exemple d'utilisation avec mSQL
  • Example#1760 - Exemple avec msql_fetch_array
  • Example#1761 - Exemple avec msql_fetch_object
  • Example#1762 - Exemple avec msql_fetch_row
  • Example#1763 - Exemple avec msql_query
  • Example#1764 - Exemple avec mssql_bind
  • Example#1765 - Exemple avec mssql_close
  • Example#1766 - Exemple avec mssql_connect
  • Example#1767 - Exemple avec mssql_data_seek
  • Example#1768 - Exemple avec mssql_execute
  • Example#1769 - Exemple avec mssql_fetch_array
  • Example#1770 - Exemple avec mssql_fetch_assoc
  • Example#1771 - Exemple avec mssql_fetch_batch
  • Example#1772 - Exemple avec mssql_fetch_field
  • Example#1773 - Exemple avec mssql_fetch_object
  • Example#1774 - Exemple avec mssql_fetch_row
  • Example#1775 - Exemple avec mssql_field_length
  • Example#1776 - Exemple avec mssql_field_name
  • Example#1777 - Exemple avec mssql_field_seek
  • Example#1778 - Exemple avec mssql_field_type
  • Example#1779 - Exemple avec mssql_free_result
  • Example#1780 - Exemple avec mssql_free_statement
  • Example#1781 - Exemple avec mssql_get_last_message
  • Example#1782 - Exemple avec mssql_guid_string
  • Example#1783 - Exemple avec mssql_init
  • Example#1784 - Exemple avec mssql_min_error_severity
  • Example#1785 - Exemple avec mssql_min_message_severity
  • Example#1786 - Exemple avec mssql_next_result
  • Example#1787 - Exemple avec mssql_num_fields
  • Example#1788 - Exemple avec mssql_num_rows
  • Example#1789 - mssql_pconnect et le paramètre new_link
  • Example#1790 - Exemple avec mssql_query
  • Example#1791 - Exemple avec mssql_result
  • Example#1792 - Autre approche, plus rapide
  • Example#1793 - Exemle avec mssql_rows_affected
  • Example#1794 - Exemple avec mssql_select_db
  • Example#1795 - Echappement du nom de la base de données avec des crochets
  • Example#1796 - Comparaison des 3 APIs MySQL
  • Example#1797 - Commande de configuration pour l'utilisation de mysqlnd ou de libmysqlclient
  • Example#1798 - Exemple de requêtes n'utilisant pas la mémoire tampon : mysqli
  • Example#1799 - Exemple de requêtes n'utilisant pas la mémoire tampon : pdo_mysql
  • Example#1800 - Exemple de requêtes n'utilisant pas la mémoire tampon: mysql
  • Example#1801 - Problèmes lors de la définition du jeu de caractères avec SQL
  • Example#1802 - Exemple de définition du jeu de caractères : mysqli
  • Example#1803 - Exemple de définition du jeu de caractères : pdo_mysql
  • Example#1804 - Exemple de définition du jeu de caractères : mysql
  • Example#1805 - Exemple de présentation de l'extension MySQL
  • Example#1806 - Exemple avec mysql_affected_rows
  • Example#1807 - Exemple avec mysql_affected_rows en utilisant les transactions
  • Example#1808 - Exemple avec mysql_client_encoding
  • Example#1809 - Exemple avec mysql_close
  • Example#1810 - Exemple avec mysql_connect
  • Example#1811 - Exemple avec mysql_connect en utilisant la syntaxe hostname:port
  • Example#1812 - Exemple avec mysql_connect en utilisant la syntaxe ":/path/to/socket"
  • Example#1813 - Exemple alternative avec mysql_create_db
  • Example#1814 - Exemple avec mysql_data_seek
  • Example#1815 - Exemple mysql_db_name
  • Example#1816 - Exemple alternatif avec mysql_db_query
  • Example#1817 - Exemple avec mysql_drop_db
  • Example#1818 - Exemple avec mysql_errno
  • Example#1819 - Exemple avec mysql_error
  • Example#1820 - Exemple avec mysql_escape_string
  • Example#1821 - Requête avec duplication de nom de colonnes
  • Example#1822 - mysql_fetch_array avec MYSQL_NUM
  • Example#1823 - mysql_fetch_array avec MYSQL_ASSOC
  • Example#1824 - mysql_fetch_array avec MYSQL_BOTH
  • Example#1825 - Exemple avec mysql_fetch_assoc
  • Example#1826 - Exemple avec mysql_fetch_field
  • Example#1827 - Exemple avec mysql_fetch_lengths
  • Example#1828 - Exemple avec mysql_fetch_object
  • Example#1829 - Exemple avec mysql_fetch_object
  • Example#1830 - Exemple avec mysql_fetch_row
  • Example#1831 - Exemple avec mysql_field_flags
  • Example#1832 - Exemple avec mysql_field_len
  • Example#1833 - Exemple avec mysql_field_name
  • Example#1834 - Exemple avec mysql_field_table
  • Example#1835 - Exemple avec mysql_field_type
  • Example#1836 - Exemple avec mysql_free_result
  • Example#1837 - Exemple avec mysql_get_client_info
  • Example#1838 - Exemple avec mysql_get_host_info
  • Example#1839 - Exemple avec mysql_get_proto_info
  • Example#1840 - Exemple avec mysql_get_server_info
  • Example#1841 - Requêtes MySQL
  • Example#1842 - Exemple avec mysql_insert_id
  • Example#1843 - Exemple avec mysql_list_dbs
  • Example#1844 - Exemple d'alternative à mysql_list_fields
  • Example#1845 - Exemple avec mysql_list_processes
  • Example#1846 - Exemple d'alternative à mysql_list_tables
  • Example#1847 - Exemple avec mysql_num_fields
  • Example#1848 - Exemple avec mysql_num_rows
  • Example#1849 - Exemple avec mysql_ping
  • Example#1850 - Requête invalide
  • Example#1851 - Requête valide
  • Example#1852 - Exemple simple avec mysql_real_escape_string
  • Example#1853 - Exemple avec mysql_real_escape_string et la nécessité de la présence d'une connexion
  • Example#1854 - Un exemple d'attaque par injection SQL
  • Example#1855 - Exemple avec mysql_result
  • Example#1856 - Exemple avec mysql_select_db
  • Example#1857 - Exemple avec mysql_stat
  • Example#1858 - Exemple alternatif pour mysql_stat
  • Example#1859 - Exemple avec mysql_tablename
  • Example#1860 - Exemple avec mysql_thread_id
  • Example#1861 - Migration facile depuis l'ancienne extension mysql
  • Example#1862 - Interface procédurale et orientée objet
  • Example#1863 - Mauvais style de codage
  • Example#1864 - Signification spéciale de localhost
  • Example#1865 - Paramètres par défaut
  • Example#1866 - Connexion à MySQL
  • Example#1867 - Navigation dans des résultats mis en mémoire tampon
  • Example#1868 - Navigation dans des résultats non mis en mémoire tampon
  • Example#1869 - Le protocole texte retourne des chaînes de caractères par défaut
  • Example#1870 - Types natifs des données avec mysqlnd et l'option de connexion
  • Example#1871 - Première étape : la préparation
  • Example#1872 - Seconde étape : lie et exécute
  • Example#1873 - Requête de type INSERT préparée une seule fois, et exécutée plusieurs fois
  • Example#1874 - Moins d'aller-retour en utilisant les multi-INSERTs SQL
  • Example#1875 - Types de données natifs
  • Example#1876 - Liage des variables de sortie
  • Example#1877 - Utilisation de mysqli_result pour récupérer les résultats
  • Example#1878 - Jeu de résultats mis en mémoire tampon pour plus de flexibilité dans la lecture
  • Example#1879 - Appel d'une procédure stockée
  • Example#1880 - Utilisation des variables de session
  • Example#1881 - Récupération des résultats issus d'une procédure stockée
  • Example#1882 - Procédures stockées et requête préparée
  • Example#1883 - Procédures stockées et requête préparée en utilisant l'API de liage
  • Example#1884 - Requêtes multiples
  • Example#1885 - Injection SQL
  • Example#1886 - Définir le mode auto-commit via SQL ou via l'API
  • Example#1887 - Validation et annulation d'une transaction
  • Example#1888 - Accès aux méta-données du jeu de résultats
  • Example#1889 - Méta-données via des requêtes préparées
  • Example#1890 - MySQLi extension overview example
  • Example#1891 - Exemple avec $mysqli->affected_rows
  • Example#1892 - Exemple avec mysqli::autocommit
  • Example#1893 - Exemple avec $mysqli->begin_transaction
  • Example#1894 - Exemple avec mysqli::change_user
  • Example#1895 - Exemple avec mysqli::character_set_name
  • Example#1896 - mysqli_get_client_info
  • Example#1897 - mysqli_get_client_version
  • Example#1898 - Exemple avec mysqli::commit
  • Example#1899 - Exemple avec $mysqli->connect_errno
  • Example#1900 - Exemple avec $mysqli->connect_error
  • Example#1901 - Exemple avec mysqli::__construct
  • Example#1902 - Génération d'un fichier de "traces"
  • Example#1903 - Exemple avec $mysqli->errno
  • Example#1904 - Exemple avec $mysqli->error_list
  • Example#1905 - Exemple avec $mysqli->error
  • Example#1906 - Exemple avec $mysqli->field_count
  • Example#1907 - Exemple avec mysqli::get_charset
  • Example#1908 - Exemple avec mysqli_get_client_info
  • Example#1909 - Exemple avec mysqli_get_client_stats
  • Example#1910 - Exemple avec mysqli_get_client_version
  • Example#1911 - Exemple avec mysqli_get_connection_stats
  • Example#1912 - Exemple avec $mysqli->host_info
  • Example#1913 - Exemple avec $mysqli->protocol_version
  • Example#1914 - Exemple avec $mysqli->server_info
  • Example#1915 - Exemple avec $mysqli->server_version
  • Example#1916 - Exemple avec $mysqli->info
  • Example#1917 - Exemple avec $mysqli->insert_id
  • Example#1918 - Exemple avec mysqli::kill
  • Example#1919 - Exemple avec mysqli::multi_query
  • Example#1920 - Exemple avec mysqli::ping
  • Example#1921 - Exemple avec mysqli_poll
  • Example#1922 - Exemple avec mysqli::prepare
  • Example#1923 - Exemple avec mysqli::query
  • Example#1924 - Exemple avec mysqli::real_connect
  • Example#1925 - Exemple avec mysqli::real_escape_string
  • Example#1926 - Exemple avec mysqli::rollback
  • Example#1927 - Exemple avec mysqli::select_db
  • Example#1928 - Exemple avec mysqli::set_charset
  • Example#1929 - Exemple avec mysqli::set_local_infile_handler
  • Example#1930 - Exemple avec $mysqli->sqlstate
  • Example#1931 - Exemple avec mysqli::stat
  • Example#1932 - Exemple avec $mysqli->thread_id
  • Example#1933 - Exemple avec mysqli::use_result
  • Example#1934 - Exemple avec $mysqli->warning_count
  • Example#1935 - Style orienté objet
  • Example#1936 - Style procédural
  • Example#1937 - Style orienté objet
  • Example#1938 - Style procédural
  • Example#1939 - Style orienté objet
  • Example#1940 - Style procédural
  • Example#1941 - Style orienté objet
  • Example#1942 - Style procédural
  • Example#1943 - Style orienté objet
  • Example#1944 - Style procédural
  • Example#1945 - Style orienté objet
  • Example#1946 - Style procédural
  • Example#1947 - Style orienté objet
  • Example#1948 - Style procédural
  • Example#1949 - Style orienté objet
  • Example#1950 - Style procédural
  • Example#1951 - Style orienté objet
  • Example#1952 - Style procédural
  • Example#1953 - Style orienté objet
  • Example#1954 - Style procédural
  • Example#1955 - Style orienté objet
  • Example#1956 - Style procédural
  • Example#1957 - Style orienté objet
  • Example#1958 - Style procédural
  • Example#1959 - Style orienté objet
  • Example#1960 - Style procédural
  • Example#1961 - Style orienté objet
  • Example#1962 - Style procédural
  • Example#1963 - Style orienté objet
  • Example#1964 - Style orienté objet
  • Example#1965 - Style procédural
  • Example#1966 - Style orienté objet
  • Example#1967 - Style procédural
  • Example#1968 - Style orienté objet
  • Example#1969 - Style procédural
  • Example#1970 - Style orienté objet
  • Example#1971 - Style procédural
  • Example#1972 - Style orienté objet
  • Example#1973 - Style procédural
  • Example#1974 - Style orienté objet
  • Example#1975 - Style procédural
  • Example#1976 - Exemple avec MySQLi_Result et l'utilisation d'un iterator
  • Example#1977 - Style orienté objet
  • Example#1978 - Style procédural
  • Example#1979 - Style orienté objet
  • Example#1980 - Style procédural
  • Example#1981 - Style orienté objet
  • Example#1982 - Style procédural
  • Example#1983 - Style orienté objet
  • Example#1984 - Style procédural
  • Example#1985 - Style orienté objet
  • Example#1986 - Style procédural
  • Example#1987 - Style orienté objet
  • Example#1988 - Style procédural
  • Example#1989 - Style orienté objet
  • Example#1990 - Style procédural
  • Example#1991 - Style orienté objet
  • Example#1992 - Style procédural
  • Example#1993 - Style orienté objet
  • Example#1994 - Style procédural
  • Example#1995 - Style orienté objet
  • Example#1996 - Style procédural
  • Example#1997 - Exemple avec mysqli_get_cache_stats
  • Example#1998 - Activer le plugin (php.ini)
  • Example#1999 - Configuration minimale du plugin (mysqlnd_ms_plugin.ini)
  • Example#2000 - Configuration minimale recommandée pour le plugin (mysqlnd_ms_plugin.ini)
  • Example#2001 - Utiliser un seul serveur comme maitre et esclave (test seulement!)
  • Example#2002 - Fichier de configuration du plugin (mysqlnd_ms_plugin.ini)
  • Example#2003 - Ouvrir une connexion sujette à équilibrage
  • Example#2004 - Exécuter des requêtes
  • Example#2005 - Config du plugin avec un maitre et un esclave
  • Example#2006 - Problème possible : État de la connexion et variables SQL utilisateurs
  • Example#2007 - Configuration du plugin avec un esclave et un maitre
  • Example#2008 - Astuces SQL pour éviter les bascules de connexion
  • Example#2009 - Latence de réplication
  • Example#2010 - Création de table sur un esclave
  • Example#2011 - Configuration du plugin avec un esclave et un maitre
  • Example#2012 - Utilisation des astuces SQL pour les transactions
  • Example#2013 - Le paramètre trx_stickiness
  • Example#2014 - Gestion propre des transactions
  • Example#2015 - Masque général pour les transactions XA
  • Example#2016 - Les transactions locales et globales sont mutuellement exclusives
  • Example#2017 - Stockage du statut du coordinateur de transaction
  • Example#2018 - Consistence de session: lire ses écritures
  • Example#2019 - Requêtage en consistence de session
  • Example#2020 - Age maximum / retard de l'esclave
  • Example#2021 - Limiter le retard de l'esclave
  • Example#2022 - Reprise sur incident non activée
  • Example#2023 - Pas d'esclave avec le critère de retard
  • Example#2024 - Creation de la table de compteur sur le maitre
  • Example#2025 - Plugin config: SQL pour l'injection GTID coté client
  • Example#2026 - Injection GTID transparente
  • Example#2027 - Plugin config: SQL pour récupérer le GTID
  • Example#2028 - Obtenir le GTID après l'injection
  • Example#2029 - Plugin config: Vérifier un certain GTID
  • Example#2030 - Consistence de session et GTID combinés
  • Example#2031 - Configuration du plugin : utilisation de la fonctionalité GTID interne à MySQL 5.6.5-m8
  • Example#2032 - Récapitulatif : qualité de service demandant de lire vos écritures
  • Example#2033 - Configuration du plugin : aucune entrée spéciale pour la mise en cache
  • Example#2034 - Mise en cache d'une requête esclave
  • Example#2035 - Lecture de vos écritures et mise en cache
  • Example#2036 - Failover manuel, optionnellement, automatique
  • Example#2037 - Failover manuel
  • Example#2038 - Cluster de groupes de noeuds
  • Example#2039 - Partitionnement manuelle en utilisant des astuces SQL
  • Example#2040 - Configuration du greffon: Des hôtes Fabric au lieu des serveurs MySQL
  • Example#2041 - Partitionnement manuel en utilisant les SQL hints
  • Example#2042 - On provoque une erreur de connexion
  • Example#2043 - Erreur de connexion sur l'exécution d'une requête
  • Example#2044 - On provoque une erreur de connexion
  • Example#2045 - Échec les plus courants
  • Example#2046 - Provoque une erreur passagère
  • Example#2047 - Boucle de tentative pour une erreur passagère
  • Example#2048 - Activation du plugin (php.ini)
  • Example#2049 - Configuration simple du plugin (mysqlnd_ms_plugin.ini) pour une réplication MySQL
  • Example#2050 - Plusieurs primaires - plusieurs maîtres (php.ini)
  • Example#2051 - Copie primaire avec plusieurs primaires et le partitionnement
  • Example#2052 - Plusieurs primaires - plusieurs maîtres (php.ini)
  • Example#2053 - Mise à jour synchrone dans n'importe quel cluster
  • Example#2054 - Masque général pour les transactions XA
  • Example#2055 - Conversion d'un hash PHP en frmat JSON
  • Example#2056 - Exemple d'utilisation des noms de section
  • Example#2057 - Liste des esclaves anonymes
  • Example#2058 - Liste Maître en utilisant les noms symboliques
  • Example#2059 - Mot clé pour configurer un serveur
  • Example#2060 - Nouveau filtre roundrobin, ancienne fonctionnalité
  • Example#2061 - Le filtre user remplace la fonction mysqlnd_ms_set_user_pick_server
  • Example#2062 - Message d'erreur commun dans le cas d'une erreur dans le fichier de configuration (à partir de la version 1.5.0)
  • Example#2063 - Validation renforcée du fichier de configuration depuis la version 1.5.0
  • Example#2064 - Erreur plus précise grâce à l'utilisation de mysqlnd_ms.force_config_usage=1
  • Example#2065 - Configuration minimale du plugin pour son utilisation avec MySQL Fabric
  • Example#2066 - Délai d'attente maximale optionnelle pour les communications avec Fabric
  • Example#2067 - Alerte lors de la violation des limitations des transactions
  • Example#2068 - Séquence de filtres invalide
  • Example#2069 - Balance de charge aléatoire avec le filtre random
  • Example#2070 - Balance de charge avec sélection aléatoire unique avec le filtre random
  • Example#2071 - Erreur de référencement
  • Example#2072 - Assignement d'un argument weight pour la balance de charge
  • Example#2073 - Filtre roundrobin
  • Example#2074 - Définition d'une fonction de rappel
  • Example#2075 - Utilisation d'une fonction de rappel
  • Example#2076 - Retourne des esclaves et des maîtres aléatoirement
  • Example#2077 - Partitionnement manuel
  • Example#2078 - Limitation globale du lag d'un esclave
  • Example#2079 - Basculement optionnel vers un maître lors d'un échec de connexion sur un esclave (PECL/mysqlnd_ms < 1.4.0)
  • Example#2080 - Nouvelle syntaxe depuis 1.4.0
  • Example#2081 - Désactivation des connexions paresseuses
  • Example#2082 - Echappement d'une chaîne sur une connexion paresseuse
  • Example#2083 - Utilisation du maître lors d'une écriture pour consolider les lectures
  • Example#2084 - Utilisation du maître pour l'exécution des transactions
  • Example#2085 - Aucun failover automatique, utilisation d'un gestionnaire d'erreurs
  • Example#2086 - Boucle de tentative pour les erreurs passagères
  • Example#2087 - Définition SQL pour la table de stockage MySQL de statut des transactions
  • Example#2088 - Définition SQL de la table de stockage MySQL de statut des transactions
  • Example#2089 - Définition SQL pour la table MySQL de stockage de statut de la collection des données incorrectes
  • Example#2090 - Exemple d'utilisation des noms de section
  • Example#2091 - Syntaxe sous forme de liste
  • Example#2092 - Vérification de l'activité du plugin sur un modèle de déploiement non-threadé
  • Example#2093 - Enregistrement des statistiques lorsque le script se termine
  • Example#2094 - Exemple montrant l'utilisation des constantes mysqlnd_ms
  • Example#2095 - Exemple avec mysqlnd_ms_dump_servers
  • Example#2096 - Exemple avec mysqlnd_ms_get_last_gtid
  • Example#2097 - Exemple avec mysqlnd_ms_get_last_used_connection
  • Example#2098 - Exemple avec mysqlnd_ms_get_stats
  • Example#2099 - Exemple avec mysqlnd_ms_match_wild
  • Example#2100 - Exemple avec mysqlnd_ms_query_is_select
  • Example#2101 - Exemple avec mysqlnd_ms_set_qos
  • Example#2102 - Exemple avec mysqlnd_ms_set_user_pick_server
  • Example#2103 - Activation du plugin (php.ini)
  • Example#2104 - Utilisation de l'astuce SQL MYSQLND_QC_ENABLE_SWITCH
  • Example#2105 - Utilisation de l'astuce SQL MYSQLND_QC_DISABLE_SWITCH
  • Example#2106 - Exemple montrant les types de requêtes non mis en cache
  • Example#2107 - Activation du cache pour toutes les requêtes en utilisant l'option de configuration ini mysqlnd_qc.cache_no_table
  • Example#2108 - Définir un TTL avec l'option de configuration ini mysqlnd_qc.ttl
  • Example#2109 - Définir un TTL avec des astuces SQL
  • Example#2110 - Définir une fonction de rappel avec mysqlnd_qc_set_is_select
  • Example#2111 -
  • Example#2112 - Collecte d'une requête de traçage
  • Example#2113 - Définir la profondeur des traces avec l'option de configuration ini mysqlnd_qc.query_trace_bt_depth
  • Example#2114 - Collecte de données statistiques avec la configuration ini mysqlnd_qc.time_statistics
  • Example#2115 - Exemple avec mysqlnd_qc_get_cache_info
  • Example#2116 - Exemple avec mysqlnd_qc_get_normalized_query_trace_log
  • Example#2117 - Utilisation d'un gestionnaire de stockage défini par l'utilisateur
  • Example#2118 - Utilisation des constantes d'astuces SQL
  • Example#2119 - Exemple avec mysqlnd_qc_set_cache_condition
  • Example#2120 -
  • Example#2121 - Exemple avec mysqlnd_qc_get_cache_info
  • Example#2122 - Exemple avec mysqlnd_qc_get_core_stats
  • Example#2123 -
  • Example#2124 - Exemple avec mysqlnd_qc_get_query_trace_log
  • Example#2125 - Exemple avec mysqlnd_qc_set_cache_condition
  • Example#2126 - Exemple avec mysqlnd_qc_set_is_select
  • Example#2127 -
  • Example#2128 - Activation du plugin (php.ini)
  • Example#2129 - Ce que fait une classe interne
  • Example#2130 - Installation d'un proxy
  • Example#2131 - Enregistration du proxy, mysqlnd_uh.enable=1
  • Example#2132 - Installation d'un proxy désactivée
  • Example#2133 - Proxy de connexion
  • Example#2134 - Proxy de requête préparée
  • Example#2135 - Surveillance de base
  • Example#2136 - Exemple avec MysqlndUhConnection::changeUser
  • Example#2137 - Exemple avec MysqlndUhConnection::charsetName
  • Example#2138 - Exemple avec MysqlndUhConnection::close
  • Example#2139 - Exemple avec MysqlndUhConnection::connect
  • Example#2140 - Exemple avec MysqlndUhConnection::endPSession
  • Example#2141 - Exemple avec MysqlndUhConnection::escapeString
  • Example#2142 - Exemple avec MysqlndUhConnection::getAffectedRows
  • Example#2143 - Exemple avec MysqlndUhConnection::getErrorNumber
  • Example#2144 - Exemple avec MysqlndUhConnection::getErrorString
  • Example#2145 - Exemple avec MysqlndUhConnection::getFieldCount
  • Example#2146 - Exemple avec MysqlndUhConnection::getHostInformation
  • Example#2147 - Exemple avec MysqlndUhConnection::getLastInsertId
  • Example#2148 - Exemple avec MysqlndUhConnection::getLastMessage
  • Example#2149 - Exemple avec MysqlndUhConnection::getProtocolInformation
  • Example#2150 - Exemple avec MysqlndUhConnection::getServerInformation
  • Example#2151 - Exemple avec MysqlndUhConnection::getServerStatistics
  • Example#2152 - Exemple avec MysqlndUhConnection::getServerVersion
  • Example#2153 - Exemple avec MysqlndUhConnection::getSqlstate
  • Example#2154 - Exemple avec MysqlndUhConnection::getStatistics
  • Example#2155 - Exemple avec MysqlndUhConnection::getThreadId
  • Example#2156 - Exemple avec MysqlndUhConnection::getWarningCount
  • Example#2157 - Exemple avec MysqlndUhConnection::init
  • Example#2158 - Exemple avec MysqlndUhConnection::kill
  • Example#2159 - Exemple avec MysqlndUhConnection::listFields
  • Example#2160 - Exemple avec MysqlndUhConnection::listMethod
  • Example#2161 - Exemple avec MysqlndUhConnection::moreResults
  • Example#2162 - Exemple avec MysqlndUhConnection::nextResult
  • Example#2163 - Exemple avec MysqlndUhConnection::ping
  • Example#2164 - Exemple avec MysqlndUhConnection::query
  • Example#2165 - Exemple avec MysqlndUhConnection::queryReadResultsetHeader
  • Example#2166 - Exemple avec MysqlndUhConnection::reapQuery
  • Example#2167 - Exempe avec MysqlndUhConnection::refreshServer
  • Example#2168 - Exemple avec MysqlndUhConnection::restartPSession
  • Example#2169 - Exemple avec MysqlndUhConnection::selectDb
  • Example#2170 - Exemple avec MysqlndUhConnection::sendClose
  • Example#2171 - Exemple avec MysqlndUhConnection::sendQuery
  • Example#2172 - Exemple avec MysqlndUhConnection::serverDumpDebugInformation
  • Example#2173 - Exemple avec MysqlndUhConnection::setAutocommit
  • Example#2174 - Exemple avec MysqlndUhConnection::setCharset
  • Example#2175 - Exemple avec MysqlndUhConnection::setClientOption
  • Example#2176 - Exemple avec MysqlndUhConnection::setServerOption
  • Example#2177 - Exemple avec MysqlndUhConnection::simpleCommand
  • Example#2178 - Exemple avec MysqlndUhConnection::simpleCommandHandleResponse
  • Example#2179 - Exemple avec MysqlndUhConnection::sslSet
  • Example#2180 - Exemple avec MysqlndUhConnection::stmtInit
  • Example#2181 - Exemple avec MysqlndUhConnection::storeResult
  • Example#2182 - Exemple avec MysqlndUhConnection::txCommit
  • Example#2183 - Exemple avec MysqlndUhConnection::txRollback
  • Example#2184 - Exemple avec MysqlndUhConnection::useResult
  • Example#2185 - Exemple avec MysqlndUhPreparedStatement::execute
  • Example#2186 - Exemple avec MysqlndUhPreparedStatement::prepare
  • Example#2187 - Exemple avec mysqlnd_uh_convert_to_mysqlnd
  • Example#2188 - Exemple avec mysqlnd_uh_set_connection_proxy
  • Example#2189 - Activation du plugin (php.ini)
  • Example#2190 - Table SQL utilisée dans le démarrage rapide
  • Example#2191 - Exemple simple
  • Example#2192 - Exemple avec mysqlnd_memcache_get_config
  • Example#2193 - Exemple avec mysqlnd_memcache_set et var_dump comme fonction de rappel de déboguage.
  • Example#2194 - Requête simple
  • Example#2195 - Insertion de données en utilisant des variables liées
  • Example#2196 - Liage d'une clause WHERE d'une requête
  • Example#2197 - Insertion de données dans une colonne CLOB
  • Example#2198 - Utilisation d'une procédure stockée PL/SQL
  • Example#2199 - Utilisation d'une procédure stockée PL/SQL
  • Example#2200 - Appel d'une fonction PL/SQL qui retourne un REF CURSOR
  • Example#2201 - user_oci8_probes.d pour suivre toutes les découvertes statiques au niveau utilisation PHP OCI8 avec DTrace
  • Example#2202 - Exemple avec oci_bind_array_by_name
  • Example#2203 - Insertion de données avec la fonction oci_bind_by_name
  • Example#2204 - Une association avec de multiples appels
  • Example#2205 - Association avec une boucle foreach
  • Example#2206 - Association dans une clause WHERE
  • Example#2207 - Association avec une clause LIKE
  • Example#2208 - Association avec REGEXP_LIKE
  • Example#2209 - Association de plusieurs valeurs dans une clause IN
  • Example#2210 - Association d'un ROWID retourné par une requête
  • Example#2211 - Association d'un ROWID dans un INSERT
  • Example#2212 - Association pour une fonction stockée PL/SQL
  • Example#2213 - Association de paramètres à une procédure stockée PL/SQL
  • Example#2214 - Association sur une colonne CLOB
  • Example#2215 - Association sur un booléen dans un script PL/SQL
  • Example#2216 - Exemple avec oci_client_version
  • Example#2217 - Fermeture d'une connexion
  • Example#2218 - Les connexions à la base de données sont fermées à partir du moment où les références le sont
  • Example#2219 - Fermeture d'un connexion ouverte plus d'une fois
  • Example#2220 - Les connexions sont fermées lorsque les variables sortent du contexte
  • Example#2221 - Exemple avec oci_commit
  • Example#2222 - Exemple avec oci_connect en utilisant la syntaxe simplifiée
  • Example#2223 - Exemple avec oci_connect en utilisant un nom de connexion réseau
  • Example#2224 - Exemple avec oci_connect en utilisant un jeu de caractère spécifique
  • Example#2225 - Exemple avec plusieurs appels à la fonction oci_connect
  • Example#2226 - Exemple avec oci_define_by_name
  • Example#2227 - Exemple avec oci_define_by_name et des noms de colonne sensibles à la casse
  • Example#2228 - Exemple avec oci_define_by_name et des colonnes de type LOB
  • Example#2229 - Exemple avec oci_define_by_name et un type explicite
  • Example#2230 - Exemple d'affichage d'un message d'erreur Oracle après une erreur de connexion
  • Example#2231 - Exemple d'affichage d'un message d'erreur Oracle après une erreur d'analyse
  • Example#2232 - Exemple d'affichage d'un message d'erreur Oracle après une erreur d'exécution rencontré dans une requête SQL
  • Example#2233 - Exemple avec oci_execute pour des requêtes
  • Example#2234 - Exemple avec oci_execute sans spécifier de mode
  • Example#2235 - Exemple avec oci_execute et OCI_NO_AUTO_COMMIT
  • Example#2236 - Exemple avec oci_execute et différents modes dans le même script
  • Example#2237 - Exemple avec oci_execute et OCI_DESCRIBE_ONLY
  • Example#2238 - Exemple avec oci_fetch_all
  • Example#2239 - Exemple avec oci_fetch_all et OCI_FETCHSTATEMENT_BY_ROW
  • Example#2240 - Exemple avec oci_fetch_all et OCI_NUM
  • Example#2241 - Exemple avec oci_fetch_array avec OCI_BOTH
  • Example#2242 - Exemple avec oci_fetch_array avec OCI_NUM
  • Example#2243 - Exemple avec oci_fetch_array avec OCI_ASSOC
  • Example#2244 - Exemple avec oci_fetch_array avec OCI_RETURN_NULLS
  • Example#2245 - oci_fetch_array with OCI_RETURN_LOBS
  • Example#2246 - Exemple avec oci_fetch_array avec des noms de colonnes sensibles à la casse
  • Example#2247 - Exemple avec oci_fetch_array avec des colonnes possédant des noms dupliqués
  • Example#2248 - Exemple avec oci_fetch_array et des colonnes DATE
  • Example#2249 - Exemple avec oci_fetch_array et REF CURSOR
  • Example#2250 - Pagination avec oci_fetch_array en utilisant une requête utilisant le paramètre LIMIT
  • Example#2251 - Exemple avec oci_fetch_array avec Oracle Database 12c
  • Example#2252 - Exemple avec oci_fetch_assoc
  • Example#2253 - Exemple avec oci_fetch_object
  • Example#2254 - Exemple avec oci_fetch_object avec des noms de colonne sensibles à la casse
  • Example#2255 - Exemple avec oci_fetch_object avec des LOBs
  • Example#2256 - Exemple avec oci_fetch_row
  • Example#2257 - Exemple avec oci_fetch avec des variables définies
  • Example#2258 - Exemple avec oci_fetch et oci_result
  • Example#2259 - Exemple avec oci_field_name
  • Example#2260 - Exemple avec oci_field_name
  • Example#2261 - Exemple avec oci_field_precision
  • Example#2262 - Exemple avec oci_field_scale
  • Example#2263 - Exemple avec oci_field_size
  • Example#2264 - Exemple avec oci_field_type_raw
  • Example#2265 - Exemple avec oci_field_type
  • Example#2266 - Récupèration des jeux de résultats implicites via une boucle
  • Example#2267 - Récupère individuellement les gestionnaires de requêtes fils
  • Example#2268 - Définission explicite du compteur de pré-récupération
  • Example#2269 - Exemple de jeu de résultats implicite sans utiliser la fonction oci_get_implicit_resultset
  • Example#2270 - Exemple avec oci_new_connect
  • Example#2271 - Utiliser un REF CURSOR issu d'une procédure enregistrée
  • Example#2272 - Exemple avec oci_new_descriptor
  • Example#2273 - Exemple avec oci_new_descriptor
  • Example#2274 - Exemple avec oci_num_fields
  • Example#2275 - Exemple avec oci_num_rows
  • Example#2276 - Exemple avec oci_parse
  • Example#2277 - Exemple avec oci_parse et une requête PL/SQL
  • Example#2278 - Exemple avec oci_password_change pour changer le mot de passe d'un utilisateur déjà connecté
  • Example#2279 - Exemple avec oci_password_change pour se connecter et changer le mot de passe en une seule étape
  • Example#2280 - Exemple avec oci_pconnect
  • Example#2281 - Exemple avec oci_fetch et oci_result
  • Example#2282 - Exemple avec oci_rollback
  • Example#2283 - Exemple de retour à un point de sauvegarde (SAVEPOINT)
  • Example#2284 - Exemple avec oci_server_version
  • Example#2285 - Définition d'une action
  • Example#2286 - Définit l'identifiant du client comme l'utilisateur de l'application
  • Example#2287 - Définit l'information sur le client
  • Example#2288 - 2 scripts peuvent utiliser différentes versions de myfunc() au même moment
  • Example#2289 - Définition du nom du module
  • Example#2290 - Modification de la valeur de préchargement pour une requête
  • Example#2291 - Modification de la valeur de préchargement pour une récupération REF CURSOR
  • Example#2292 - Définition de la valeur de préchargement lorsque l'on retourne un curseur REF CURSOR à Oracle
  • Example#2293 - Exemple avec oci_statement_type
  • Example#2294 - Création d'une base de données Paradox avec deux champs
  • Example#2295 - Convertit une date Paradox en un format humainement lisible
  • Example#2296 - Définit les champs date/heure dans une base de données Paradox à la date/heure courant
  • Example#2297 - Ouverture d'une base de données Paradox
  • Example#2298 - Ouverture d'une base de données Paradox
  • Example#2299 - Convertit un timestamp Paradox en un format humainement lisible
  • Example#2300 - Exemple général de l'extension PostgreSQL
  • Example#2301 - Exemple avec pg_affected_rows
  • Example#2302 - Exemple avec pg_cancel_query
  • Example#2303 - Exemple avec pg_client_encoding
  • Example#2304 - Exemple avec pg_close
  • Example#2305 - Exemple avec pg_connect
  • Example#2306 - Exemple avec pg_connection_busy
  • Example#2307 - Exemple avec pg_connection_reset
  • Example#2308 - Exemple avec pg_connection_status
  • Example#2309 - Exemple avec pg_convert
  • Example#2310 - Exemple avec pg_copy_from
  • Example#2311 - Exemple avec pg_copy_to
  • Example#2312 - Exemple avec pg_dbname
  • Example#2313 - Exemple avec pg_delete
  • Example#2314 - Exemple avec pg_end_copy
  • Example#2315 - Exemple avec pg_escape_bytea
  • Example#2316 - Exemple avec pg_escape_identifier
  • Example#2317 - Exemple avec pg_escape_literal
  • Example#2318 - Exemple avec pg_escape_string
  • Example#2319 - Exemple avec pg_execute
  • Example#2320 - Exemple avec pg_fetch_all_columns
  • Example#2321 - Exemple avec pg_fetch_all
  • Example#2322 - Exemple avec pg_fetch_array
  • Example#2323 - Exemple avec pg_fetch_assoc
  • Example#2324 - Exemple avec pg_fetch_object
  • Example#2325 - Exemple avec pg_fetch_result
  • Example#2326 - Exemple avec pg_fetch_row
  • Example#2327 - Exemple avec pg_field_is_null
  • Example#2328 - Récupération d'informations des champs
  • Example#2329 - Récupération d'informations des champs
  • Example#2330 - Récupération d'informations à propos des champs
  • Example#2331 - Récupération d'informations des champs
  • Example#2332 - Récupération des informations d'une table à partir d'un champ
  • Example#2333 - Récupération d'informations des champs
  • Example#2334 - Récupération d'informations des champs
  • Example#2335 - Exemple avec pg_free_result
  • Example#2336 - Exemple avec pg_get_notify
  • Example#2337 - Exemple avec pg_get_pid
  • Example#2338 - Exemple avec pg_get_result
  • Example#2339 - Exemple avec pg_host
  • Example#2340 - Exemple avec pg_insert
  • Example#2341 - Exemple avec pg_last_error
  • Example#2342 - Exemple avec pg_last_notice
  • Example#2343 - Exemple avec pg_last_oid
  • Example#2344 - Exemple avec pg_lo_close
  • Example#2345 - Exemple avec pg_lo_create
  • Example#2346 - Exemple avec pg_lo_export
  • Example#2347 - Exemple avec pg_lo_import
  • Example#2348 - Exemple avec pg_lo_open
  • Example#2349 - Exemple avec pg_lo_read_all
  • Example#2350 - Exemple avec pg_lo_read
  • Example#2351 - Exemple avec pg_lo_seek
  • Example#2352 - Exemple avec pg_lo_tell
  • Example#2353 - Exemple avec pg_lo_truncate
  • Example#2354 - Exemple avec pg_lo_unlink
  • Example#2355 - Exemple avec pg_lo_write
  • Example#2356 - Récupération des métadonnées d'une table
  • Example#2357 - Exemple avec pg_num_fields
  • Example#2358 - Exemple avec pg_num_rows
  • Example#2359 - Exemple avec pg_options
  • Example#2360 - Exemple avec pg_parameter_status
  • Example#2361 - Exemple avec pg_pconnect
  • Example#2362 - Exemple avec pg_ping
  • Example#2363 - Exemple avec pg_port
  • Example#2364 - Exemple avec pg_prepare
  • Example#2365 - Exemple avec pg_put_line
  • Example#2366 - Exemple avec pg_query_params
  • Example#2367 - Exemple avec pg_query
  • Example#2368 - Utilisation de pg_query avec plusieurs requêtes
  • Example#2369 - Exemple avec pg_result_error_field
  • Example#2370 - Exemple avec pg_result_error
  • Example#2371 - Exemple avec pg_result_seek
  • Example#2372 - Exemple avec pg_result_status
  • Example#2373 - Exemple avec pg_select
  • Example#2374 - Exemple avec pg_send_execute
  • Example#2375 - Exemple pg_send_prepare
  • Example#2376 - Exemple avec pg_send_query_params
  • Example#2377 - Exemple avec pg_send_query
  • Example#2378 - Exemple avec pg_set_client_encoding
  • Example#2379 - Exemple avec pg_set_error_verbosity
  • Example#2380 - Exemple avec pg_trace
  • Example#2381 - Exemple avec pg_transaction_status
  • Example#2382 - Exemple avec pg_tty
  • Example#2383 - Exemple avec pg_unescape_bytea
  • Example#2384 - Exemple avec pg_untrace
  • Example#2385 - Exemple avec pg_update
  • Example#2386 - Exemple avec pg_version
  • Example#2387 - Style procédural
  • Example#2388 - Style orienté objet
  • Example#2389 - Style procédural
  • Example#2390 - Style orienté objet
  • Example#2391 - Style procédural
  • Example#2392 - Style orienté objet
  • Example#2393 - Exemple avec sqlite_close
  • Example#2394 - Exemple d'UDF SQLite : taille maximale de chaîne
  • Example#2395 - Exemple avec sqlite_create_function
  • Example#2396 - Exemple d'utilisation d'une fonction PHP dans SQLite
  • Example#2397 - Style procédural
  • Example#2398 - Style orienté objet
  • Example#2399 - Exemple avec sqlite_factory
  • Example#2400 - Style procédural
  • Example#2401 - Style orienté objet
  • Example#2402 - Style procédural
  • Example#2403 - Style orienté objet
  • Example#2404 - Style procédural
  • Example#2405 - Style orienté objet
  • Example#2406 - Exemple avec sqlite_fetch_single
  • Example#2407 - Style procédural
  • Example#2408 - Style orienté objet
  • Example#2409 - Exemple avec sqlite_open
  • Example#2410 - Exemple de fonction d'agrégation SQLite, compatible avec les données binaires
  • Example#2411 - Exemple avec SQLite3::changes
  • Example#2412 - Exemple avec SQLite3::close
  • Example#2413 - Exemple avec SQLite3::__construct
  • Example#2414 - Exemple avec SQLite3::createCollation
  • Example#2415 - Exemple avec SQLite3::createFunction
  • Example#2416 - SQLite3::enableExceptions example
  • Example#2417 - Exemple avec SQLite3::exec
  • Example#2418 - Exemple avec SQLite3::loadExtension
  • Example#2419 - Exemple avec SQLite3::open
  • Example#2420 - SQLite3::openBlob example
  • Example#2421 - Exemple avec SQLite3::prepare
  • Example#2422 - Exemple avec SQLite3::query
  • Example#2423 - Exemple avec SQLite3::querySingle
  • Example#2424 - Exemple avec SQLite3::version
  • Example#2425 - Exemple avec SQLite3Stmt::bindValue
  • Example#2426 - Exemple avec sqlsrv_begin_transaction
  • Example#2427 - Exemple avec sqlsrv_cancel
  • Example#2428 - Exemple avec sqlsrv_client_info
  • Example#2429 - Example avec sqlsrv_close
  • Example#2430 - Exemple avec sqlsrv_commit
  • Example#2431 - Connexion en utilisant l'authentification Windows.
  • Example#2432 - Connexion en spécifiant un nom d'utilisateur et un mot de passe.
  • Example#2433 - Connexion sur un port spécifique.
  • Example#2434 - Exemple avec functionname
  • Example#2435 - Exemple avec sqlsrv_execute
  • Example#2436 - Récupération d'un tableau associatif
  • Example#2437 - Récupération d'un tableau numérique
  • Example#2438 - Exemple avec sqlsrv_fetch_object
  • Example#2439 - Exemple avec sqlsrv_fetch
  • Example#2440 - Exemple avec sqlsrv_field_metadata
  • Example#2441 - Exemple avec sqlsrv_free_stmt
  • Example#2442 - sqlsrv_get_field example
  • Example#2443 - Exemple avec sqlsrv_has_rows
  • Example#2444 - Exemple avec sqlsrv_next_result
  • Example#2445 - Exemple avec sqlsrv_num_fields
  • Example#2446 - Exemple avec sqlsrv_num_rows
  • Example#2447 - Exemple avec sqlsrv_prepare
  • Example#2448 - sqlsrv_query example
  • Example#2449 - Exemple avec sqlsrv_rollback
  • Example#2450 - Exemple avec sqlsrv_rows_affected
  • Example#2451 - Exemple avec sqlsrv_send_stream_data
  • Example#2452 - Exemple avec sqlsrv_server_info
  • Example#2453 - Requête d'effacement
  • Example#2454 - Exemple avec sybase_connect
  • Example#2455 - Cas des colonnes de noms identiques avec Sybase
  • Example#2456 - Exemple avec sybase_fetch_object
  • Example#2457 - Exemple avec sybase_set_message_handler
  • Example#2458 - Exemple avec sybase_set_message_handler
  • Example#2459 - Exemple avec sybase_set_message_handler
  • Example#2460 - Exemple avec sybase_unbuffered_query
  • Example#2461 - Insertion et récupération d'une paire clé-valeur
  • Example#2462 - Exemple avec TokyoTyrant::add
  • Example#2463 - Exemple avec TokyoTyrant::connect
  • Example#2464 - Exemple avec TokyoTyrant::connectUri
  • Example#2465 - Exemple avec TokyoTyrant::copy
  • Example#2466 - Exemple avec TokyoTyrant::ext
  • Example#2467 - Exemple avec TokyoTyrant::fwmKeys
  • Example#2468 - Exemple avec TokyoTyrant::get
  • Example#2469 - Exemple avec TokyoTyrant::getIterator
  • Example#2470 - Exemple avec TokyoTyrant::num
  • Example#2471 - Exemple avec TokyoTyrant::out
  • Example#2472 - Exemple avec TokyoTyrant::put
  • Example#2473 - Exemple avec TokyoTyrant::putCat
  • Example#2474 - Exemple avec tokyotyrant::putKeep
  • Example#2475 - Exemple avec TokyoTyrant::putNr
  • Example#2476 - Exemple avec TokyoTyrant::putShl
  • Example#2477 - Exemple avec TokyoTyrant::setMaster
  • Example#2478 - Exemple avec TokyoTyrant::size
  • Example#2479 - Exemple avec TokyoTyrant::stat
  • Example#2480 - Exemple avec TokyoTyrant::vanish
  • Example#2481 - Exemple avec TokyoTyrantTable::genUid
  • Example#2482 - Exemple avec TokyoTyrantTable::get
  • Example#2483 - Exemple avec TokyoTyrantTable::getIterator
  • Example#2484 - Exemple avec TokyoTyrantTable::getQuery
  • Example#2485 - Exemple avec TokyoTyrantTable::out
  • Example#2486 - Exemple avec TokyoTyrantTable::put
  • Example#2487 - Exemple avec TokyoTyrantTable::putCat
  • Example#2488 - Exemple avec TokyoTyrantTable::putKeep
  • Example#2489 - Exemple avec TokyoTyrantQuery::addCond
  • Example#2490 - Exemple avec TokyoTyrantQuery::__construct
  • Example#2491 - Exemple avec TokyoTyrantQuery::count
  • Example#2492 - Exemple avec TokyoTyrantQuery iterator
  • Example#2493 - Exemple avec TokyoTyrantQuery::hint
  • Example#2494 - Exemple avec TokyoTyrantQuery iterator
  • Example#2495 - Exemple avec TokyoTyrantQuery::metaSearch
  • Example#2496 - Exemple avec TokyoTyrantQuery iterator
  • Example#2497 - Exemple avec TokyoTyrantQuery::out
  • Example#2498 - Exemple avec TokyoTyrantQuery iterator
  • Example#2499 - Exemple avec TokyoTyrantQuery::search
  • Example#2500 - Exemple avec TokyoTyrantQuery iterator
  • Example#2501 - Exemple avec TokyoTyrantIterator::__construct
  • Example#2502 - Exemple avec cal_days_in_month
  • Example#2503 - Exemple avec cal_from_jd
  • Example#2504 - Exemple avec cal_info
  • Example#2505 - Exemple avec easter_date
  • Example#2506 - Exemple avec easter_days
  • Example#2507 - Fonctions calendrier
  • Example#2508 - Exemple avec jdtojewish
  • Example#2509 - Exemple avec DateTime::add
  • Example#2510 - Autres exemples avec DateTime::add
  • Example#2511 - Attention à l'ajout de mois
  • Example#2512 - Exemple avec DateTime::__construct
  • Example#2513 - Autres exemples avec DateTime::__construct
  • Example#2514 - Exemple avec DateTime::createFromFormat
  • Example#2515 - Autres exemples avec DateTime::createFromFormat
  • Example#2516 - Exemple avec DateTime::getLastErrors
  • Example#2517 - Exemple avec DateTime::modify
  • Example#2518 - Méfiez-vous lors de l'ajout ou la soustraction de mois
  • Example#2519 - Exemple avec DateTime::setDate
  • Example#2520 - Les valeurs qui dépassent leurs bornes sont ajoutées à leur parent
  • Example#2521 - Exemple avec DateTime::setISODate
  • Example#2522 - Les valeurs qui excèdent leur bornes s'ajoutent à leur parent
  • Example#2523 - Calcul du mois dans lequel est une semaine
  • Example#2524 - Exemple avec DateTime::setTime
  • Example#2525 - Les valeurs qui dépassent leur borne sont ajoutées à leur parent
  • Example#2526 - Exemple avec DateTime::setTimestamp
  • Example#2527 - DateTime::setTimestamp alternative pour PHP 5.2
  • Example#2528 - Exemple avec DateTime::setTimeZone
  • Example#2529 - Exemple avec DateTime::sub
  • Example#2530 - Autres exemples avec DateTime::sub
  • Example#2531 - Attention à la soustraction de mois
  • Example#2532 - Création d'un objet date heure immutable
  • Example#2533 - Exemple avec DateTime::diff
  • Example#2534 - Comparaison de deux objets DateTime
  • Example#2535 - Exemple avec DateTime::format
  • Example#2536 - Exemple avec DateTime::getOffset
  • Example#2537 - Exemple avec DateTime::getTimestamp
  • Example#2538 - Exemple avec DateTime::getTimezone
  • Example#2539 - Interception des erreurs avec DateTimeZone
  • Example#2540 - Exemple avec DateTimeZone::getLocation
  • Example#2541 - Exemple avec DateTimeZone::getOffset
  • Example#2542 - Exemple avec timezone_transitions_get
  • Example#2543 - Exemple avec timezone_abbreviations_list
  • Example#2544 - Exemple avec timezone_identifiers_list
  • Example#2545 - Exemple avec DateInterval
  • Example#2546 - Analyse d'intervalles de dates valides
  • Example#2547 - Exemple avec DateInterval
  • Example#2548 - DateInterval et retenue
  • Example#2549 - DateInterval et DateTime::diff avec les modificateurs %a et %d
  • Example#2550 - Exemple avec DatePeriod
  • Example#2551 - Exemple avec DatePeriod et DatePeriod::EXCLUDE_START_DATE
  • Example#2552 - DatePeriod::getDateInterval example
  • Example#2553 - DatePeriod::getEndDate example
  • Example#2554 - DatePeriod::getEndDate without an end date
  • Example#2555 - DatePeriod::getStartDate example
  • Example#2556 - Exemple avec checkdate
  • Example#2557 - Récupération du décalage horaire par défaut
  • Example#2558 - Récupération de l'abréviation d'un décalage horaire
  • Example#2559 - Récupération du décalage horaire par défaut
  • Example#2560 - Exemple avec date_parse_from_format
  • Example#2561 - Exemple avec date_parse
  • Example#2562 - Exemple avec date_parse et des formats relatifs
  • Example#2563 - Exemple avec date_sun_info
  • Example#2564 - Exemple avec date_sunrise
  • Example#2565 - Exemple avec date_sunset
  • Example#2566 - Exemple avec date
  • Example#2567 - Protection des caractères dans la fonction date
  • Example#2568 - Exemple avec date et mktime
  • Example#2569 - Exemple avec date
  • Example#2570 - Exemple avec getdate
  • Example#2571 - Exemple avec gettimeofday
  • Example#2572 - Exemple avec gmdate
  • Example#2573 - Exemple avec gmmktime
  • Example#2574 - Exemple avec gmstrftime
  • Example#2575 - Exemple avec idate
  • Example#2576 - Exemple avec localtime
  • Example#2577 - Durée d'exécution d'un script avec la fonction microtime
  • Example#2578 - Durée d'exécution d'un script en PHP 5
  • Example#2579 - Exemple avec microtime et REQUEST_TIME_FLOAT (depuis PHP 5.4.0)
  • Example#2580 - Exemple simple avec mktime
  • Example#2581 - Exemple avec mktime
  • Example#2582 - Dernier jour d'un mois
  • Example#2583 - Exemple avec strftime
  • Example#2584 - Exemple au format de date ISO 8601:1988
  • Example#2585 - %e fonctionnant sous toute plateforme
  • Example#2586 - Affiche tous les formats connus ou non.
  • Example#2587 - Exemple avec strptime
  • Example#2588 - Exemple avec strtotime
  • Example#2589 - Vérification d'erreur
  • Example#2590 - Exemple avec time
  • Example#2591 - Exemple avec timezone_name_from_abbr
  • Example#2592 - Lecture de la version de la timezonedb
  • Example#2593 - Mesure l'exécution de différents blocs et retourne le total
  • Example#2594 - Fermeture d'une ressource de fichier
  • Example#2595 - Positionnement et suppression d'un verrou
  • Example#2596 - Ouverture d'un fichier
  • Example#2597 - Positionnement dans un fichier
  • Example#2598 - Définition du débit des bauds sur un port série
  • Example#2599 - Exemple avec chdir
  • Example#2600 - Exemple avec chroot
  • Example#2601 - Exemple avec closedir
  • Example#2602 - Exemple avec dir
  • Example#2603 - Exemple avec getcwd
  • Example#2604 - Exemple avec opendir
  • Example#2605 - Liste de toutes les entrées d'un dossier
  • Example#2606 - Liste toutes les entrées du dossier courant et enlève les . et ..
  • Example#2607 - Un simple exemple avec scandir
  • Example#2608 - Remplacement à scandir pour PHP 4
  • Example#2609 - Exemple avec finfo_buffer
  • Example#2610 - Exemple avec finfo_file
  • Example#2611 - Style orienté objet
  • Example#2612 - Style procédural
  • Example#2613 - Exemple avec mime_content_type
  • Example#2614 - Exemple avec basename
  • Example#2615 - Modification de groupe d'un fichier
  • Example#2616 - Exemple avec chown
  • Example#2617 - Exemple avec clearstatcache
  • Example#2618 - Exemple avec copy
  • Example#2619 - Exemple avec dirname
  • Example#2620 - Exemple avec disk_free_space
  • Example#2621 - Exemple avec disk_total_space
  • Example#2622 - Exemple avec fclose
  • Example#2623 - Gestion des délais d'attente dépassés feof
  • Example#2624 - Exemple avec feof et un pointeur de fichier invalide
  • Example#2625 - Écriture d'un fichier en utilisant fflush
  • Example#2626 - Exemple avec fgetc
  • Example#2627 - Lit et affiche le contenu d'un fichier CSV
  • Example#2628 - Lecture d'un fichier ligne par ligne
  • Example#2629 - Lecture d'un fichier PHP ligne par ligne
  • Example#2630 - Teste l'existence d'un fichier
  • Example#2631 - Lit et affiche le code HTML d'un site Web
  • Example#2632 - Recherche un fichier dans le include_path
  • Example#2633 - Lit une section d'un fichier
  • Example#2634 - Utilisation des contextes de flux
  • Example#2635 - Utilisation simple de file_put_contents
  • Example#2636 - Utilisation d'options pour file_put_contents
  • Example#2637 - Exemple avec file
  • Example#2638 - Exemple avec fileatime
  • Example#2639 - Exemple avec filectime
  • Example#2640 - Recherche le groupe d'un fichier
  • Example#2641 - Comparaison de l'inode d'un fichier avec le fichier courant
  • Example#2642 - Exemple avec filemtime
  • Example#2643 - Recherche du propriétaire d'un fichier
  • Example#2644 - Affichage des droits en valeur octale
  • Example#2645 - Affichage de tous les droits
  • Example#2646 - Exemple avec filesize
  • Example#2647 - Exemple avec filetype
  • Example#2648 - Exemple avec flock
  • Example#2649 - Exemple avec flock en utilisant l'option LOCK_NB
  • Example#2650 - Vérifier le nom d'une couleur avec un masque Shell
  • Example#2651 - Exemple avec fopen
  • Example#2652 - Utilisation de fpassthru avec un fichier binaire
  • Example#2653 - Exemple avec fputcsv
  • Example#2654 - Exemple avec fread
  • Example#2655 - Exemple avec fread et un fichier binaire
  • Example#2656 - Exemple avec fread et un fichier distant
  • Example#2657 - Exemple avec fscanf
  • Example#2658 - Contenu du fichier users.txt
  • Example#2659 - Exemple avec fseek
  • Example#2660 - Exemple avec fstat
  • Example#2661 - Exemple avec ftell
  • Example#2662 - Exemple avec ftruncate
  • Example#2663 - Exemple avec fwrite
  • Example#2664 - Un moyen pratique pour remplacer opendir par glob
  • Example#2665 - Exemple avec is_dir
  • Example#2666 - Exemple avec is_executable
  • Example#2667 - Exemple avec is_file
  • Example#2668 - Création et vérification d'un lien symbolique
  • Example#2669 - Exemple avec is_readable
  • Example#2670 - Exemple avec is_uploaded_file
  • Example#2671 - Exemple avec is_writable
  • Example#2672 - Modification du groupe d'un lien symbolique
  • Example#2673 - Modification du propriétaire d'un lien symbolique
  • Example#2674 - Création d'un lien
  • Example#2675 - Exemple avec linkinfo
  • Example#2676 - Comparaison entre stat et lstat
  • Example#2677 - Exemple avec mkdir
  • Example#2678 - mkdir utilisant le paramètre recursive
  • Example#2679 - Téléchargement de plusieurs fichiers
  • Example#2680 - Contenu du fichier sample.ini
  • Example#2681 - Exemple avec parse_ini_file
  • Example#2682 - parse_ini_file pour analyser un fichier php.ini
  • Example#2683 - Exemple avec pathinfo
  • Example#2684 - Exemple pathinfo sans extension
  • Example#2685 - Exemple avec pathinfo
  • Example#2686 - Exemple avec pclose
  • Example#2687 - Exemple avec popen
  • Example#2688 - Exemple avec popen
  • Example#2689 - Forcer le téléchargement en utilisant readfile
  • Example#2690 - Exemple avec readlink
  • Example#2691 - Exemple avec realpath_cache_get
  • Example#2692 - Exemple avec realpath_cache_size
  • Example#2693 - Exemple avec realpath
  • Example#2694 - Exemple avec realpath sous Windows
  • Example#2695 - Exemple avec rename
  • Example#2696 - Exemple avec rewind
  • Example#2697 - Exemple avec rmdir
  • Example#2698 - Exemple avec stat
  • Example#2699 - Utilisation des informations issues de stat conjointement avec la fonction touch
  • Example#2700 - Création d'un lien symbolique
  • Example#2701 - Exemple avec tempnam
  • Example#2702 - Exemple avec tmpfile
  • Example#2703 - Exemple avec touch
  • Example#2704 - Exemple avec touch en utilisant le paramètre time
  • Example#2705 - Exemple avec umask
  • Example#2706 - Exemple avec unlink
  • Example#2707 - Exemple d'utilisatio d'inotify
  • Example#2708 - Configuration Windows de magic.mime
  • Example#2709 - Exemple avec setproctitle
  • Example#2710 - Exemple avec setthreadtitle
  • Example#2711 - Vérifie si l'administrateur système a signé le fichier
  • Example#2712 - Affiche les noms de tous les attributs étendus d'un fichier
  • Example#2713 - Efface tous les attributs étendus d'un fichier
  • Example#2714 - Définition des attributs étendus dans un fichier .wav
  • Example#2715 - Exemple avec xattr_supported
  • Example#2716 - Exemple avec xdiff_file_bdiff_size
  • Example#2717 - Exemple avec xdiff_file_bdiff
  • Example#2718 - Exemple avec xdiff_file_bpatch
  • Example#2719 - Exemple avec xdiff_file_diff_binary
  • Example#2720 - Exemple avec xdiff_file_diff
  • Example#2721 - Exemple avec xdiff_file_merge3
  • Example#2722 - Exemple avec xdiff_file_patch_binary
  • Example#2723 - Exemple avec xdiff_file_patch
  • Example#2724 - Exemple de retour à l'état initial après l'application d'un patch
  • Example#2725 - Exemple avec xdiff_file_rabdiff
  • Example#2726 - Exemple avec xdiff_string_bdiff_size
  • Example#2727 - Exemple avec xdiff_string_diff
  • Example#2728 - Exemple avec xdiff_string_patch
  • Example#2729 - Exemple d'utilisation d'Enchant
  • Example#2730 - Liste les interfaces fournies par un sponsor donné
  • Example#2731 - Exemple avec enchant_broker_dict_exists
  • Example#2732 - Liste tous les dictionnaires disponibles pour un sponsor
  • Example#2733 - Exemple avec enchant_broker_request_dict
  • Example#2734 - Aout d'un mot à un PWL
  • Example#2735 - Exemple avec enchant_dict_describe
  • Example#2736 - Exemple avec enchant_dict_quick_check
  • Example#2737 - Exemple avec enchant_dict_suggest
  • Example#2738 - Exemple d'utilisation
  • Example#2739 - Exemple avec Gender\Gender::country
  • Example#2740 - Exemple avec bindtextdomain
  • Example#2741 - Exemple avec gettext
  • Example#2742 - Exemple avec ngettext
  • Example#2743 - Exemple avec iconv_get_encoding
  • Example#2744 - Exemple avec iconv_mime_decode_headers
  • Example#2745 - Exemple avec iconv_mime_decode
  • Example#2746 - Exemple avec iconv_mime_encode
  • Example#2747 - Exemple avec iconv_set_encoding
  • Example#2748 - Exemple avec iconv
  • Example#2749 - Exemple avec ob_iconv_handler
  • Example#2750 - Exemple d'API procédurale pour intl
  • Example#2751 - Exemple d'API orientée objet pour intl
  • Example#2752 - Règles de FRENCH_COLLATION
  • Example#2753 - Règles ALTERNATE_HANDLING
  • Example#2754 - Règles CASE_FIRST
  • Example#2755 - Règles CASE_LEVEL
  • Example#2756 - Exemple avec collator_asort
  • Example#2757 - Exemple avec collator_compare
  • Example#2758 - Exemple avec Collator::__construct
  • Example#2759 - Exmple avec collator_create
  • Example#2760 - Exemple avec collator_get_attribute
  • Example#2761 - Exemple avec collator_get_error_code
  • Example#2762 - Exemple avec collator_get_error_message
  • Example#2763 - Exemple avec collator_get_locale
  • Example#2764 - Exemple collator_get_sort_key
  • Example#2765 - Exemple avec collator_get_strength
  • Example#2766 - Exemple avec collator_set_attribute
  • Example#2767 - Exemple avec collator_set_strength
  • Example#2768 - Exemple avec collator_sort_with_sort_keys
  • Example#2769 - Exemple avec collator_sort
  • Example#2770 - Exemple avec numfmt_create::create, Style procédural
  • Example#2771 - Exemple avec numfmt_create::create, style POO
  • Example#2772 - Exemple avec numfmt_format_currency, Style procédural
  • Example#2773 - Exemple avec numfmt_format_currency, style POO
  • Example#2774 - Exemple avec numfmt_format, Style procédural
  • Example#2775 - Exemple avec numfmt_format, style POO
  • Example#2776 - Exemple avec numfmt_get_attribute, Style procédural
  • Example#2777 - Exemple avec numfmt_get_attribute, style POO
  • Example#2778 - Exemple avec numfmt_get_error_code, Style procédural
  • Example#2779 - Exemple avec numfmt_get_error_code, style POO
  • Example#2780 - Exemple avec numfmt_get_error_message, Style procédural
  • Example#2781 - Exemple avec numfmt_get_error_code, style POO
  • Example#2782 - Exemple avec numfmt_get_error_code, Style procédural
  • Example#2783 - Exemple avec numfmt_get_pattern, Style procédural
  • Example#2784 - Exemple avec numfmt_get_pattern, style POO
  • Example#2785 - Exemple avec numfmt_get_symbol, Style procédural
  • Example#2786 - Exemple avec numfmt_get_symbol, style POO
  • Example#2787 - Exemple avec numfmt_get_text_attribute, Style procédural
  • Example#2788 - Exemple avec numfmt_get_text_attribute, style POO
  • Example#2789 - Exemple avec numfmt_parse_currency, Style procédural
  • Example#2790 - Exemple avec numfmt_parse_currency, Style procédural
  • Example#2791 - Exemple avec numfmt_parse, Style procédural
  • Example#2792 - Exemple avec numfmt_parse, style POO
  • Example#2793 - Exemple avec numfmt_set_attribute, Style procédural
  • Example#2794 - Exemple avec numfmt_set_attribute, style POO
  • Example#2795 - Exemple avec numfmt_set_pattern, Style procédural
  • Example#2796 - Exemple avec numfmt_set_pattern, style POO
  • Example#2797 - Exemple avec numfmt_set_symbol, Style procédural
  • Example#2798 - Exemple avec numfmt_set_symbol, style POO
  • Example#2799 - Exemple avec numfmt_set_text_attribute, Style procédural
  • Example#2800 - Exemple avec numfmt_set_text_attribute, Style procédural
  • Example#2801 - Exemple avec locale_accept_from_http, procédural
  • Example#2802 - Exemple avec locale_accept_from_http, POO
  • Example#2803 - Exemple avec locale_compose, procédural
  • Example#2804 - Exemple avec locale_compose, POO
  • Example#2805 - Exemple avec locale_filter_matches, procédural
  • Example#2806 - Exemple avec locale_filter_matches, POO
  • Example#2807 - Exemple avec locale_get_all_variants, procédural
  • Example#2808 - Exemple avec locale_get_all_variants, POO
  • Example#2809 - Exemple avec locale_get_default, procédural
  • Example#2810 - Exemple avec locale_get_default, POO
  • Example#2811 - Exemple avec locale_get_display_language, procédural
  • Example#2812 - Exemple avec locale_get_display_language, POO
  • Example#2813 - Exemple avec locale_get_display_name, procédural
  • Example#2814 - Exemple avec locale_get_display_name, POO
  • Example#2815 - Exemple avec locale_get_display_region, procédural
  • Example#2816 - Exemple avec locale_get_display_region, POO
  • Example#2817 - Exemple avec locale_get_display_script, procédural
  • Example#2818 - Exemple avec locale_get_display_script, POO
  • Example#2819 - Exemple avec locale_get_display_variant, procédural
  • Example#2820 - Exemple avec locale_get_display_variant, POO
  • Example#2821 - Exemple avec locale_get_keywords, procédural
  • Example#2822 - Exemple avec locale_get_keywords, POO
  • Example#2823 - Exemple avec locale_get_primary_language, procédural
  • Example#2824 - Exemple avec locale_get_primary_language, POO
  • Example#2825 - Exemple avec locale_get_region, procédural
  • Example#2826 - Exemple avec locale_get_region, POO
  • Example#2827 - Exemple avec locale_get_script, procédural
  • Example#2828 - Exemple avec locale_get_script, POO
  • Example#2829 - Exemple avec locale_lookup, procédural
  • Example#2830 - Exemple avec Locale::lookup, POO
  • Example#2831 - Exemple avec locale_parse, procédural
  • Example#2832 - Exemple avec locale_parse, POO
  • Example#2833 - Exemple avec locale_set_default, procédural
  • Example#2834 - Exemple avec locale_set_default, POO
  • Example#2835 - Exemple avec normalizer_is_normalized, en style procédural
  • Example#2836 - Exemple avec normalizer_is_normalized, en style orienté objet
  • Example#2837 - Exemple avec normalizer_normalize, procédural
  • Example#2838 - Exemple avec normalizer_normalize, POO
  • Example#2839 - Exemple avec msgfmt_create, style procédural
  • Example#2840 - Exemple avec msgfmt_create, style procédural
  • Example#2841 - Exemple avec msgfmt_format_message, style procédural
  • Example#2842 - Exemple avec msgfmt_format_message, style procédural
  • Example#2843 - Exemple avec msgfmt_format, style procédural
  • Example#2844 - Exemple avec msgfmt_format, style POO
  • Example#2845 - Exemple avec msgfmt_get_error_code, style procédural
  • Example#2846 - Exemple avec msgfmt_get_error_code, style POO
  • Example#2847 - Exemple avec msgfmt_get_error_message, style procédural
  • Example#2848 - Exemple avec msgfmt_get_error_message, style POO
  • Example#2849 - Exemple avec msgfmt_get_locale, style procédural
  • Example#2850 - Exemple avec msgfmt_get_locale, style POO
  • Example#2851 - Exemple avec msgfmt_get_pattern, style procédural
  • Example#2852 - Exemple avec msgfmt_get_pattern, style POO
  • Example#2853 - Exemple avec msgfmt_parse_message, style procédural
  • Example#2854 - Exemple avec msgfmt_parse_message, style POO
  • Example#2855 - Exemple avec msgfmt_parse, style procédural
  • Example#2856 - Exemple avec msgfmt_parse, style POO
  • Example#2857 - Exemple avec msgfmt_set_pattern, style procédural
  • Example#2858 - Exemple avec msgfmt_set_pattern, style POO
  • Example#2859 - Exemple avec IntlCalendar::add
  • Example#2860 - Exemple avec IntlCalendar::after
  • Example#2861 - Exempe avec IntlCalendar::clear
  • Example#2862 - Exemple avec IntlCalendar::createInstance
  • Example#2863 - Exemple avec IntlCalendar::equals
  • Example#2864 - Exemple avec IntlCalendar::fieldDifference
  • Example#2865 - IntlCalendar::fromDateTime
  • Example#2866 - IntlCalendar::get
  • Example#2867 - IntlCalendar::getActualMaximum
  • Example#2868 - IntlCalendar::getAvailableLocales()
  • Example#2869 - IntlCalendar::getDayOfWeekType
  • Example#2870 - IntlCalendar::getErrorCode and IntlCalendar::getErrorMessage
  • Example#2871 - IntlCalendar::getErrorMessage
  • Example#2872 - IntlCalendar::getFirstDayOfWeek
  • Example#2873 - IntlCalendar::getKeyworkValuesForLocale
  • Example#2874 - Maxima examples
  • Example#2875 - IntlCalendar::getLocale
  • Example#2876 - IntlCalendar::getMinimalDaysInFirstWeek
  • Example#2877 - Exemple avec IntlCalendar::getNow
  • Example#2878 - IntlCalendar::getRepeatedWallTimeOption
  • Example#2879 - IntlCalendar::getSkippedWallTimeOption
  • Example#2880 - IntlCalendar::getTime
  • Example#2881 - Exemple avec IntlCalendar::getTimeZone
  • Example#2882 - Exemple avec IntlCalendar::getType
  • Example#2883 - IntlCalendar::inDaylightTime
  • Example#2884 - IntlCalendar::isEquivalentTo
  • Example#2885 - IntlCalendar::isLenient
  • Example#2886 - IntlCalendar::isWeekend
  • Example#2887 - IntlCalendar::roll
  • Example#2888 - IntlCalendar::set
  • Example#2889 - Exemple avec IntlCalendar::setFirstDayOfWeek
  • Example#2890 - Exemple avec IntlCalendar::setTime
  • Example#2891 - Exemple avec IntlCalendar::setTimeZone
  • Example#2892 - Exemple avec IntlCalendar::toDateTime
  • Example#2893 - Exemple avec datefmt_create, procédural
  • Example#2894 - Exemple avec datefmt_create, POO
  • Example#2895 - Exemple avec datefmt_format
  • Example#2896 - Exemple orienté objet
  • Example#2897 - Exemple avec un objet IntlCalendar
  • Example#2898 - Exemple avec IntlDateFormatter::formatObject
  • Example#2899 - Exemple avec datefmt_get_calendar
  • Example#2900 - Exemple orienté objet
  • Example#2901 - Exemple avec datefmt_get_datetype
  • Example#2902 - Exemple orienté objet
  • Example#2903 - Exemple avec datefmt_get_error_code
  • Example#2904 - Exemple orienté objet
  • Example#2905 - Exemple avec datefmt_get_error_message
  • Example#2906 - Exemple orienté objet
  • Example#2907 - Exemple avec datefmt_get_locale
  • Example#2908 - Exemple orienté objet
  • Example#2909 - Exemple avec datefmt_get_pattern
  • Example#2910 - Exemple orienté objet
  • Example#2911 - Exemple avec datefmt_get_timetype
  • Example#2912 - Exemple orienté objet
  • Example#2913 - Exemple avec datefmt_get_timezone_id
  • Example#2914 - Exemple orienté objet
  • Example#2915 - Exemple avec IntlDateFormatter::getCalendarObject
  • Example#2916 - Exemple avec IntlDateFormatter::getTimeZone
  • Example#2917 - Exemple avec datefmt_is_lenient
  • Example#2918 - Exemple orienté objet
  • Example#2919 - Exemple avec datefmt_localtime
  • Example#2920 - Exemple orienté objet
  • Example#2921 - Exemple orienté objet
  • Example#2922 - Exemple avec datefmt_parse
  • Example#2923 - Exemple avec datefmt_set_calendar
  • Example#2924 - Exemple orienté objet
  • Example#2925 - Exemple avec des arguments à IntlCalendar
  • Example#2926 - Exemple avec datefmt_set_lenient
  • Example#2927 - Exemple orienté objet
  • Example#2928 - Exemple avec datefmt_get_pattern
  • Example#2929 - Exemple orienté objet
  • Example#2930 - Exemple avec datefmt_set_timezone_id
  • Example#2931 - Exemple orienté objet
  • Example#2932 - Exemple avec IntlDateFormatter::setTimeZone
  • Example#2933 - Exemple avec resourcebundle_count
  • Example#2934 - Exemple orienté objet
  • Example#2935 - Exemple avec resourcebundle_create
  • Example#2936 - Exemple avec ResourceBundle::create
  • Example#2937 - Exemple avec resourcebundle_get_error_code
  • Example#2938 - Exemple orienté objet
  • Example#2939 - Exemple avec resourcebundle_get_error_message
  • Example#2940 - Exemple orienté objet
  • Example#2941 - Exemple avec resourcebundle_get
  • Example#2942 - Exemple orienté objet
  • Example#2943 - Exemple avec resourcebundle_locales
  • Example#2944 - Exemple orienté objet
  • Example#2945 - Conversion des échappements en unité UTF-16
  • Example#2946 - Exemple avec grapheme_extract
  • Example#2947 - Exemple avec grapheme_stripos
  • Example#2948 - Exemple avec grapheme_stristr
  • Example#2949 - Exemple avec grapheme_strlen
  • Example#2950 - Exemple avec grapheme_strpos
  • Example#2951 - Exemple avec grapheme_strripos
  • Example#2952 - Exemple avec grapheme_strrpos
  • Example#2953 - Exemple avec grapheme_strstr
  • Example#2954 - Exemple avec grapheme_substr
  • Example#2955 - Exemple avec idn_to_ascii
  • Example#2956 - Exemple avec idn_to_utf8
  • Example#2957 - Exemple avec intl_error_name
  • Example#2958 - Exemple avec intl_get_error_code
  • Example#2959 - Exemple avec intl_get_error_message
  • Example#2960 - Exemple avec intl_is_failure
  • Example#2961 - Configuration de php.ini pour mbstring
  • Example#2962 - Configuration de php.ini pour les utilisateurs de EUC-JP
  • Example#2963 - Configuration de php.ini pour les utilisateurs de SJIS
  • Example#2964 - Désactive la conversion HTTP dans le php.ini
  • Example#2965 - Exemple de configuration de mbstring dans php.ini
  • Example#2966 - Exemple de script avec mbstring
  • Example#2967 - Exemple avec mb_convert_case
  • Example#2968 - Exemple avec mb_convert_case avec du texte UTF-8 non latin
  • Example#2969 - Exemple avec mb_convert_encoding
  • Example#2970 - Exemple avec mb_convert_kana
  • Example#2971 - Exemple avec mb_convert_variables
  • Example#2972 - Exemple avec convmap
  • Example#2973 - Exemple avec mb_detect_encoding
  • Example#2974 - Exemple avec mb_detect_order
  • Example#2975 - Exemple d'ordre de détection inutile
  • Example#2976 - Exemple avec mb_encode_mimeheader
  • Example#2977 - Exemple avec convmap
  • Example#2978 - Exemple avec mb_encode_numericentity
  • Example#2979 - Exemple avec mb_encoding_aliases
  • Example#2980 - Exemple avec mb_ereg_replace_callback
  • Example#2981 - mb_ereg_replace_callback utilise les fonctions anonymes supporté en PHP 5.3.0 ou supérieur
  • Example#2982 - Exemple avec mb_internal_encoding
  • Example#2983 - Exemple avec mb_list_encodings
  • Example#2984 - Exemple avec mb_output_handler
  • Example#2985 - Exemple avec mb_preferred_mime_name
  • Example#2986 - Exemple avec mb_strimwidth
  • Example#2987 - Exemple avec mb_strtolower
  • Example#2988 - Exemple avec mb_strtolower avec du texte UTF-8 non latin
  • Example#2989 - Exemple avec mb_strtoupper
  • Example#2990 - Exemple avec mb_strtoupper et du texte UTF-8 non latin
  • Example#2991 - Exemple avec mb_substitute_character
  • Example#2992 - Exemple avec mb_substr_count
  • Example#2993 - pspell_add_to_personal
  • Example#2994 - Exemple avec pspell_check
  • Example#2995 - Exemple avec pspell_add_to_personal
  • Example#2996 - pspell_config_create
  • Example#2997 - pspell_config_ignore
  • Example#2998 - Exemple avec pspell_config_mode
  • Example#2999 - pspell_config_personal
  • Example#3000 - pspell_config_repl
  • Example#3001 - pspell_config_runtogether
  • Example#3002 - pspell_new_config
  • Example#3003 - pspell_new_personal
  • Example#3004 - pspell_new
  • Example#3005 - pspell_add_to_personal
  • Example#3006 - pspell_store_replacement
  • Example#3007 - Exemple avec pspell_suggest
  • Example#3008 - Exemple avec recode_file
  • Example#3009 - Exemple avec recode_string
  • Example#3010 - Exemple Cairo
  • Example#3011 - Exemple avec cairo_create
  • Example#3012 - Exemple avec cairo_font_face_get_type
  • Example#3013 - Exemple avec cairo_font_face_status
  • Example#3014 - Exemple avec cairo_font_options_create
  • Example#3015 - Exemple avec cairo_font_options_equal
  • Example#3016 - Exemple avec cairo_font_options_get_antialias
  • Example#3017 - Exemple avec cairo_font_options_get_hint_metrics
  • Example#3018 - Exemple avec cairo_font_options_get_hint_style
  • Example#3019 - Exemple avec cairo_font_options_get_subpixel_order
  • Example#3020 - Exemple avec cairo_font_options_hash
  • Example#3021 - Exemple avec cairo_font_options_merge
  • Example#3022 - Exemple avec cairo_font_options_set_antialias
  • Example#3023 - Exemple avec cairo_font_options_set_hint_metrics
  • Example#3024 - Exemple avec cairo_font_options_set_hint_style
  • Example#3025 - Exemple avec cairo_font_options_set_subpixel_order
  • Example#3026 - Exemple avec cairo_font_options_status
  • Example#3027 - Exemple avec cairo_format_stride_for_width
  • Example#3028 - Exemple avec cairo_image_surface_create_for_data
  • Example#3029 - Exemple avec cairo_image_surface_create_from_png
  • Example#3030 - Exemple avec cairo_image_surface_create
  • Example#3031 - Exemple avec cairo_image_surface_get_data
  • Example#3032 - Exemple avec cairo_image_surface_get_format
  • Example#3033 - Exemple avec cairo_image_surface_get_height
  • Example#3034 - Exemple avec cairo_image_surface_get_stride
  • Example#3035 - Exemple avec cairo_image_surface_get_width
  • Example#3036 - Exemple avec cairo_matrix_invert
  • Example#3037 - Exemple avec cairo_matrix_multiply
  • Example#3038 - Exemple avec cairo_matrix_rotate
  • Example#3039 - Exemple avec cairo_matrix_transform_distance
  • Example#3040 - Exemple avec cairo_matrix_transform_point
  • Example#3041 - Exemple avec cairo_matrix_translate
  • Example#3042 - Exemple avec cairo_pattern_add_color_stop_rgb
  • Example#3043 - Exemple avec cairo_pattern_add_color_stop_rgba
  • Example#3044 - Exemple avec cairo_pattern_create_for_surface
  • Example#3045 - Exemple avec cairo_pattern_create_linear
  • Example#3046 - Exemple avec cairo_pattern_create_radial
  • Example#3047 - Exemple avec cairo_pattern_create_rgb
  • Example#3048 - Exemple avec cairo_pattern_create_rgba
  • Example#3049 - Exemple avec cairo_pattern_get_color_stop_count
  • Example#3050 - Exemple avec cairo_pattern_get_color_stop_rgba
  • Example#3051 - Exemple avec cairo_pattern_get_extend
  • Example#3052 - Exemple avec cairo_pattern_get_filter
  • Example#3053 - Exemple avec cairo_pattern_get_linear_points
  • Example#3054 - Exemple avec cairo_pattern_get_matrix
  • Example#3055 - Exemple avec cairo_pattern_get_radial_circles
  • Example#3056 - Exemple avec cairo_pattern_get_rgba
  • Example#3057 - Exemple avec cairo_pattern_get_surface
  • Example#3058 - Exemple avec cairo_pattern_get_type
  • Example#3059 - Exemple avec cairo_pattern_set_extend
  • Example#3060 - Exemple avec cairo_pattern_set_filter
  • Example#3061 - Exemple avec cairo_pattern_set_matrix
  • Example#3062 - Exemple avec cairo_pattern_status
  • Example#3063 - Exemple avec cairo_pdf_surface_create
  • Example#3064 - Exemple avec cairo_pdf_surface_set_size
  • Example#3065 - Exemple avec cairo_ps_get_levels
  • Example#3066 - Exemple avec cairo_ps_level_to_string
  • Example#3067 - Exemple avec cairo_ps_surface_create
  • Example#3068 - Exemple avec cairo_ps_surface_dsc_begin_page_setup
  • Example#3069 - Exemple avec cairo_ps_surface_dsc_begin_setup
  • Example#3070 - Exemple avec cairo_ps_surface_dsc_comment
  • Example#3071 - Exemple avec cairo_ps_surface_get_eps
  • Example#3072 - Exemple avec cairo_ps_surface_restrict_to_level
  • Example#3073 - Exemple avec cairo_ps_surface_set_eps
  • Example#3074 - Exemple avec cairo_ps_surface_set_size
  • Example#3075 - Exemple avec cairo_scaled_font_create
  • Example#3076 - Exemple avec cairo_scaled_font_extents
  • Example#3077 - Exemple avec cairo_scaled_font_get_ctm
  • Example#3078 - Exemple avec cairo_scaled_font_get_font_face
  • Example#3079 - Exemple avec cairo_scaled_font_get_font_matrix
  • Example#3080 - Exemple avec cairo_scaled_font_get_font_options
  • Example#3081 - Exemple avec cairo_scaled_font_get_scale_matrix
  • Example#3082 - Exemple avec cairo_scaled_font_get_type
  • Example#3083 - Exemple avec cairo_scaled_font_glyph_extents
  • Example#3084 - Exemple avec cairo_scaled_font_status
  • Example#3085 - Exemple avec cairo_scaled_font_text_extents
  • Example#3086 - Exemple avec cairo_surface_copy_page
  • Example#3087 - Exemple avec cairo_surface_create_similar
  • Example#3088 - Exemple avec cairo_surface_finish
  • Example#3089 - Exemple avec cairo_surface_flush
  • Example#3090 - Exemple avec cairo_surface_get_content
  • Example#3091 - Exemple avec cairo_surface_get_device_offset
  • Example#3092 - Exemple avec cairo_surface_get_font_options
  • Example#3093 - Exemple avec cairo_surface_get_type
  • Example#3094 - Exemple avec cairo_surface_mark_dirty_rectangle
  • Example#3095 - Exemple avec cairo_surface_mark_dirty
  • Example#3096 - Exemple avec cairo_surface_set_device_offset
  • Example#3097 - Exemple avec cairo_surface_set_fallback_resolution
  • Example#3098 - Exemple avec cairo_surface_show_page
  • Example#3099 - Exemple avec cairo_surface_status
  • Example#3100 - Exemple avec cairo_surface_write_to_png
  • Example#3101 - Exemple avec cairo_svg_surface_create
  • Example#3102 - Exemple avec cairo_svg_surface_restrict_to_version
  • Example#3103 - Exemple avec cairo_svg_version_to_string
  • Example#3104 - Style orienté objet
  • Example#3105 - Style procédural
  • Example#3106 - Style orienté objet
  • Example#3107 - Style procédural
  • Example#3108 - Style orienté objet
  • Example#3109 - Style procédural
  • Example#3110 - Style orienté objet
  • Example#3111 - Style procédural
  • Example#3112 - Style orienté objet
  • Example#3113 - Style procédural
  • Example#3114 - Style orienté objet
  • Example#3115 - Style procédural
  • Example#3116 - Style orienté objet
  • Example#3117 - Style procédural
  • Example#3118 - Style orienté objet
  • Example#3119 - Style procédural
  • Example#3120 - Style orienté objet
  • Example#3121 - Style procédural
  • Example#3122 - Style orienté objet
  • Example#3123 - Style procédural
  • Example#3124 - Style orienté objet
  • Example#3125 - Style procédural
  • Example#3126 - Style orienté objet
  • Example#3127 - Style procédural
  • Example#3128 - Style orienté objet
  • Example#3129 - Style procédural
  • Example#3130 - Exemple avec CairoContext::__construct
  • Example#3131 - Style orienté objet
  • Example#3132 - Style procédural
  • Example#3133 - Style orienté objet
  • Example#3134 - Style procédural
  • Example#3135 - Style orienté objet
  • Example#3136 - Style procédural
  • Example#3137 - Style orienté objet
  • Example#3138 - Style procédural
  • Example#3139 - Style orienté objet
  • Example#3140 - Style procédural
  • Example#3141 - Style orienté objet
  • Example#3142 - Style procédural
  • Example#3143 - Style orienté objet
  • Example#3144 - Style procédural
  • Example#3145 - Style orienté objet
  • Example#3146 - Style procédural
  • Example#3147 - Style orienté objet
  • Example#3148 - Style procédural
  • Example#3149 - Style orienté objet
  • Example#3150 - Style procédural
  • Example#3151 - Style orienté objet
  • Example#3152 - Style procédural
  • Example#3153 - Style orienté objet
  • Example#3154 - Style procédural
  • Example#3155 - Style orienté objet
  • Example#3156 - Style procédural
  • Example#3157 - Style orienté objet
  • Example#3158 - Style procédural
  • Example#3159 - Style orienté objet
  • Example#3160 - Style procédural
  • Example#3161 - Style orienté objet
  • Example#3162 - Style procédural
  • Example#3163 - Style orienté objet
  • Example#3164 - Style procédural
  • Example#3165 - Style orienté objet
  • Example#3166 - Style procédural
  • Example#3167 - Style orienté objet
  • Example#3168 - Style procédural
  • Example#3169 - Style orienté objet
  • Example#3170 - Style procédural
  • Example#3171 - Style orienté objet
  • Example#3172 - Style procédural
  • Example#3173 - Style orienté objet
  • Example#3174 - Style procédural
  • Example#3175 - Style orienté objet
  • Example#3176 - Style procédural
  • Example#3177 - Style orienté objet
  • Example#3178 - Style procédural
  • Example#3179 - Style orienté objet
  • Example#3180 - Style procédural
  • Example#3181 - Style orienté objet
  • Example#3182 - Style procédural
  • Example#3183 - Style orienté objet
  • Example#3184 - Style procédural
  • Example#3185 - Style orienté objet
  • Example#3186 - Style procédural
  • Example#3187 - Style orienté objet
  • Example#3188 - Style procédural
  • Example#3189 - Style orienté objet
  • Example#3190 - Style procédural
  • Example#3191 - Style orienté objet
  • Example#3192 - Style procédural
  • Example#3193 - Style orienté objet
  • Example#3194 - Style procédural
  • Example#3195 - Style orienté objet
  • Example#3196 - Style procédural
  • Example#3197 - Style orienté objet
  • Example#3198 - Style procédural
  • Example#3199 - Style orienté objet
  • Example#3200 - Style procédural
  • Example#3201 - Style orienté objet
  • Example#3202 - Style procédural
  • Example#3203 - Style orienté objet
  • Example#3204 - Style procédural
  • Example#3205 - Style orienté objet
  • Example#3206 - Style procédural
  • Example#3207 - Style orienté objet
  • Example#3208 - Style procédural
  • Example#3209 - Style orienté objet
  • Example#3210 - Style procédural
  • Example#3211 - Style orienté objet
  • Example#3212 - Style procédural
  • Example#3213 - Style orienté objet
  • Example#3214 - Style procédural
  • Example#3215 - Style orienté objet
  • Example#3216 - Style procédural
  • Example#3217 - Style orienté objet
  • Example#3218 - Style procédural
  • Example#3219 - Style orienté objet
  • Example#3220 - Style procédural
  • Example#3221 - Style orienté objet
  • Example#3222 - Style procédural
  • Example#3223 - Style orienté objet
  • Example#3224 - Style procédural
  • Example#3225 - Style orienté objet
  • Example#3226 - Style procédural
  • Example#3227 - Style orienté objet
  • Example#3228 - Style procédural
  • Example#3229 - Style orienté objet
  • Example#3230 - Style procédural
  • Example#3231 - Style orienté objet
  • Example#3232 - Style procédural
  • Example#3233 - Style orienté objet
  • Example#3234 - Style procédural
  • Example#3235 - Style orienté objet
  • Example#3236 - Style procédural
  • Example#3237 - Style orienté objet
  • Example#3238 - Style procédural
  • Example#3239 - Style orienté objet
  • Example#3240 - Style procédural
  • Example#3241 - Style orienté objet
  • Example#3242 - Style procédural
  • Example#3243 - Style orienté objet
  • Example#3244 - Style procédural
  • Example#3245 - Style orienté objet
  • Example#3246 - Style procédural
  • Example#3247 - Style orienté objet
  • Example#3248 - Style procédural
  • Example#3249 - Style orienté objet
  • Example#3250 - Style procédural
  • Example#3251 - Style orienté objet
  • Example#3252 - Style procédural
  • Example#3253 - Style orienté objet
  • Example#3254 - Style procédural
  • Example#3255 - Style orienté objet
  • Example#3256 - Style procédural
  • Example#3257 - Style orienté objet
  • Example#3258 - Style procédural
  • Example#3259 - Style orienté objet
  • Example#3260 - Style procédural
  • Example#3261 - Style orienté objet
  • Example#3262 - Style procédural
  • Example#3263 - Style orienté objet
  • Example#3264 - Style procédural
  • Example#3265 - Style orienté objet
  • Example#3266 - Style procédural
  • Example#3267 - Style orienté objet
  • Example#3268 - Style procédural
  • Example#3269 - Style orienté objet
  • Example#3270 - Style procédural
  • Example#3271 - Style orienté objet
  • Example#3272 - Style procédural
  • Example#3273 - Style orienté objet
  • Example#3274 - Style procédural
  • Example#3275 - Style orienté objet
  • Example#3276 - Style procédural
  • Example#3277 - Style orienté objet
  • Example#3278 - Style procédural
  • Example#3279 - Style orienté objet
  • Example#3280 - Style procédural
  • Example#3281 - Style orienté objet
  • Example#3282 - Style procédural
  • Example#3283 - Style orienté objet
  • Example#3284 - Style procédural
  • Example#3285 - Style orienté objet
  • Example#3286 - Style procédural
  • Example#3287 - Style orienté objet
  • Example#3288 - Style procédural
  • Example#3289 - Style orienté objet
  • Example#3290 - Style procédural
  • Example#3291 - Style orienté objet
  • Example#3292 - Style procédural
  • Example#3293 - Style orienté objet
  • Example#3294 - Style procédural
  • Example#3295 - Style orienté objet
  • Example#3296 - Style procédural
  • Example#3297 - Style orienté objet
  • Example#3298 - Style procédural
  • Example#3299 - Style orienté objet
  • Example#3300 - Style procédural
  • Example#3301 - Style orienté objet
  • Example#3302 - Style procédural
  • Example#3303 - Style orienté objet
  • Example#3304 - Style procédural
  • Example#3305 - Exemple avec CairoSurface::createSimilar
  • Example#3306 - Exemple avec CairoSurface::finish
  • Example#3307 - Exemple avec CairoSurface::flush
  • Example#3308 - Exemple avec CairoSurface::getContent
  • Example#3309 - Exemple avec CairoSurface::getDeviceOffset
  • Example#3310 - Style orienté objet
  • Example#3311 - Style procédural
  • Example#3312 - Exemple avec CairoSurface::getType
  • Example#3313 - Exemple avec CairoSurface::markDirty
  • Example#3314 - Exemple avec CairoSurface::markDirtyRectangle
  • Example#3315 - Exemple avec CairoSurface::setDeviceOffset
  • Example#3316 - Exemple avec CairoSurface::setFallbackResolution
  • Example#3317 - Style orienté objet
  • Example#3318 - Style procédural
  • Example#3319 - Style orienté objet
  • Example#3320 - Style procédural
  • Example#3321 - Exemple avec CairoSurface::writeToPng
  • Example#3322 - Exemple avec CairoSvgSurface::__construct
  • Example#3323 - Exemple avec CairoSvgSurface::getVersions
  • Example#3324 - Style procédural
  • Example#3325 - Exemple avec CairoSvgSurface::restrictToVersion
  • Example#3326 - Exemple avec CairoSvgSurface::versionToString
  • Example#3327 - Exemple avec CairoImageSurface::__construct
  • Example#3328 - Exemple avec CairoImageSurface::createForData
  • Example#3329 - Exemple avec CairoImageSurface::createFromPng
  • Example#3330 - Exemple avec CairoImageSurface::getData
  • Example#3331 - Exemple avec CairoImageSurface::getFormat
  • Example#3332 - Exemple avec CairoImageSurface::getHeight
  • Example#3333 - Exemple avec CairoImageSurface::getStride
  • Example#3334 - Exemple avec CairoImageSurface::getWidth
  • Example#3335 - Exemple avec CairoPdfSurface::__construct
  • Example#3336 - Exemple avec CairoPdfSurface::setSize
  • Example#3337 - Exemple avec CairoPsSurface::__construct
  • Example#3338 - Exemple avec CairoPsSurface::dscBeginPageSetup
  • Example#3339 - Exemple avec CairoPsSurface::dscBeginSetup
  • Example#3340 - Exemple avec CairoPsSurface::dscComment
  • Example#3341 - Exemple avec CairoPsSurface::getEps
  • Example#3342 - Exemple avec CairoPsSurface::getLevels
  • Example#3343 - Exemple avec CairoPsSurface::levelToString
  • Example#3344 - Exemple avec CairoPsSurface::restrictToLevel
  • Example#3345 - Exemple avec CairoPsSurface::setEps
  • Example#3346 - Exemple avec CairoPsSurface::setSize
  • Example#3347 - Exemple avec CairoFontFace::__construct
  • Example#3348 - Exemple avec CairoFontFace::getType
  • Example#3349 - Style orienté objet
  • Example#3350 - Style procédural
  • Example#3351 - Exemple avec CairoFontOptions::__construct
  • Example#3352 - Exemple avec CairoFontOptions::equal
  • Example#3353 - Style orienté objet
  • Example#3354 - Style procédural
  • Example#3355 - Exemple avec CairoFontOptions::getHintMetrics
  • Example#3356 - Exemple avec CairoFontOptions::getHintStyle
  • Example#3357 - Exemple avec CairoFontOptions::getSubpixelOrder
  • Example#3358 - Exemple avec CairoFontOptions::hash
  • Example#3359 - Exemple avec CairoFontOptions::merge
  • Example#3360 - Style orienté objet
  • Example#3361 - Style procédural
  • Example#3362 - Exemple avec CairoFontOptions::setHintMetrics
  • Example#3363 - Exemple avec CairoFontOptions::setHintStyle
  • Example#3364 - Exemple avec CairoFontOptions::setSubpixelOrder
  • Example#3365 - Style orienté objet
  • Example#3366 - Style procédural
  • Example#3367 - Exemple avec CairoScaledFont::__construct
  • Example#3368 - Exemple avec CairoScaledFont::extents
  • Example#3369 - Exemple avec CairoScaledFont::getCtm
  • Example#3370 - Style orienté objet
  • Example#3371 - Style procédural
  • Example#3372 - Style orienté objet
  • Example#3373 - Style procédural
  • Example#3374 - Style orienté objet
  • Example#3375 - Style procédural
  • Example#3376 - Exemple avec CairoScaledFont::getScaleMatrix
  • Example#3377 - Exemple avec CairoScaledFont::getType
  • Example#3378 - Exemple avec CairoScaledFont::glyphExtents
  • Example#3379 - Style orienté objet
  • Example#3380 - Style procédural
  • Example#3381 - Style orienté objet
  • Example#3382 - Style procédural
  • Example#3383 - Exemple avec CairoPattern::__construct
  • Example#3384 - Style orienté objet
  • Example#3385 - Style procédural
  • Example#3386 - Exemple avec CairoPattern::getType
  • Example#3387 - Style orienté objet
  • Example#3388 - Style procédural
  • Example#3389 - Style orienté objet
  • Example#3390 - Style procédural
  • Example#3391 - Exemple avec CairoGradientPattern::addColorStopRgb
  • Example#3392 - Exemple avec CairoGradientPattern::addColorStopRgba
  • Example#3393 - Exemple avec CairoGradientPattern::getColorStopCount
  • Example#3394 - Exemple avec CairoGradientPattern::getColorStopRgba
  • Example#3395 - Exemple avec CairoGradientPattern::getExtend
  • Example#3396 - Exemple avec CairoGradientPattern::setExtend
  • Example#3397 - Exemple avec CairoSolidPattern::__construct
  • Example#3398 - Exemple avec CairoSolidPattern::getRgba
  • Example#3399 - Exemple avec CairoSurfacePattern::__construct
  • Example#3400 - Exemple avec CairoSurfacePattern::getExtend
  • Example#3401 - Exemple avec CairoSurfacePattern::getFilter
  • Example#3402 - Exemple avec CairoSurfacePattern::getSurface
  • Example#3403 - Exemple avec CairoSurfacePattern::setExtend
  • Example#3404 - Exemple avec CairoSurfacePattern::setFilter
  • Example#3405 - Exemple avec CairoLinearGradient::__construct
  • Example#3406 - Exemple avec CairoLinearGradient::getPoints
  • Example#3407 - Exemple avec CairoRadialGradient::__construct
  • Example#3408 - Exemple avec CairoRadialGradient::getCircles
  • Example#3409 - Exemple avec CairoFormat::strideForWidth
  • Example#3410 - Style orienté objet
  • Example#3411 - Style procédural
  • Example#3412 - Style orienté objet
  • Example#3413 - Style procédural
  • Example#3414 - Style orienté objet
  • Example#3415 - Style procédural
  • Example#3416 - Style orienté objet
  • Example#3417 - Style procédural
  • Example#3418 - Style orienté objet
  • Example#3419 - Style procédural
  • Example#3420 - Exemple avec CairoMatrix::invert
  • Example#3421 - Exemple avec CairoMatrix::multiply
  • Example#3422 - Style orienté objet
  • Example#3423 - Style procédural
  • Example#3424 - Style orienté objet
  • Example#3425 - Style procédural
  • Example#3426 - Exemple avec CairoMatrix::transformDistance
  • Example#3427 - Exemple avec CairoMatrix::transformPoint
  • Example#3428 - Style orienté objet
  • Example#3429 - Style procédural
  • Example#3430 - Exemple avec exif_imagetype
  • Example#3431 - Exemple avec exif_read_data
  • Example#3432 - Exemple pour exif_tagname
  • Example#3433 - Exemple avec exif_thumbnail
  • Example#3434 - Création d'une image PNG avec PHP
  • Example#3435 - Ajout d'un tatouage numérique sur des images en utilisant un canal Alpha
  • Example#3436 - Exemple avec imagecopymerge pour créer un tatouage numérique translucide
  • Example#3437 - Exemple avec gd_info
  • Example#3438 - getimagesize et types MIME
  • Example#3439 - Exemple avec getimagesize
  • Example#3440 - getimagesize avec une URL
  • Example#3441 - getimagesize qui retourne IPTC
  • Example#3442 - Exemple avec getimagesizefromstring
  • Example#3443 - Exemple avec image_type_to_extension
  • Example#3444 - Exemple avec image_type_to_mime_type
  • Example#3445 - Exemple avec image2wbmp
  • Example#3446 - Exemple avec imagealphablending
  • Example#3447 - Comparaison de 2 lignes, dont l'une est anti-aliasée
  • Example#3448 - Dessine d'un cercle avec imagearc
  • Example#3449 - Exemple avec imagechar
  • Example#3450 - Exemple avec imagecharup
  • Example#3451 - Exemple avec imagecolorallocate
  • Example#3452 - Exemple avec imagecolorallocatealpha
  • Example#3453 - Accès aux valeurs RGB
  • Example#3454 - Valeurs RVB lisibles en utilisant la fonction imagecolorsforindex
  • Example#3455 - Recherche d'un jeu de couleur dans une image
  • Example#3456 - Cherche un jeu de couleurs dans une image
  • Example#3457 - Exemple avec imagecolorclosesthwb
  • Example#3458 - Exemple avec imagecolordeallocate
  • Example#3459 - Récupération des couleurs composant le logo GD
  • Example#3460 - Récupération des couleurs composant le logo GD
  • Example#3461 - Exemple avec imagecolormatch
  • Example#3462 - Exemple avec imagecoloresolve pour récupérer les couleurs d'une image
  • Example#3463 - Exemple avec imagecoloresolve pour récupérer les couleurs d'une image
  • Example#3464 - Exemple avec imagecolorset
  • Example#3465 - Exemple avec imagecolorsforindex
  • Example#3466 - Récupération du nombre total de couleurs dans une image en utilisant la fonction imagecolorstotal
  • Example#3467 - Exemple avec imagecolortransparent
  • Example#3468 - Impression du logo PHP.net avec imageconvolution
  • Example#3469 - Flou gaussien avec imageconvolution
  • Example#3470 - On coupe le logo PHP.net
  • Example#3471 - Fusionne 2 copies du logo PHP.net avec 75% de transparence
  • Example#3472 - Exemple avec imagecopymergegray
  • Example#3473 - Exemple simple
  • Example#3474 - Redimensionnement proportionnel d'une image
  • Example#3475 - Redimensionnement d'une image
  • Example#3476 - Création d'une image GD et affichage de cette image
  • Example#3477 - Exemple avec imagecreatefromgd2
  • Example#3478 - Exemple avec imagecreatefromgd2part
  • Example#3479 - Exemple avec imagecreatefromgd
  • Example#3480 - Exemple de prise en charge d'une erreur lors du chargement d'une image GIF
  • Example#3481 - Exemple de gestion d'une erreur lors du chargement d'une image JPEG
  • Example#3482 - Exemple de gestion d'une erreur lors du chargement d'une image PNG
  • Example#3483 - Exemple avec imagecreatefromstring
  • Example#3484 - Exemple de gestion d'une erreur lors du chargement d'une image WBMP
  • Example#3485 - Convertit une image WebP en une image jpeg en utilisant la fonction imagecreatefromwebp
  • Example#3486 - Convertie une image XBM en une image PNG en utilisant la fonction imagecreatefromxbm
  • Example#3487 - Création d'une instance d'image en utilisant la fonction imagecreatefromxpm
  • Example#3488 - Création d'un flux d'image GD, et affichage
  • Example#3489 - Exemple avec imagedashedline
  • Example#3490 - Alternative à la fonction imagedashedline
  • Example#3491 - Exemple avec imagedestroy
  • Example#3492 - Exemple avec imageellipse
  • Example#3493 - Exemple avec imagefill
  • Example#3494 - Création d'un camembert en 3D
  • Example#3495 - Exemple avec imagefilledellipse
  • Example#3496 - Exemple avec imagefilledpolygon
  • Example#3497 - Exemple avec imagefilledrectangle
  • Example#3498 - Remplissage d'un ellipse avec une couleur
  • Example#3499 - Exemple avec imagefilter
  • Example#3500 - Exemple avec imagefilter
  • Example#3501 - Exemple avec imagefilter
  • Example#3502 - Exemple d'image en négatif avec imagefilter
  • Example#3503 - Exemple de pixelisation avec imagefilter
  • Example#3504 - Retourne une image verticalement
  • Example#3505 - Retourne une image horizontalement
  • Example#3506 - Exemple avec imagefontheight et des polices internes
  • Example#3507 - Exemple avec imagefontheight et imageloadfont
  • Example#3508 - Exemple avec imagefontwidth et les polices internes
  • Example#3509 - Exemple avec imagefontwidth et imageloadfont
  • Example#3510 - Exemple avec imageftbbox
  • Example#3511 - Exemple avec imagefttext
  • Example#3512 - Exemple avec imagegammacorrect
  • Example#3513 - Affichage d'une image GD2
  • Example#3514 - Sauvegarde d'une image GD2
  • Example#3515 - Affichage d'une image GD
  • Example#3516 - Sauvegarde d'une image GD
  • Example#3517 - imagegetclip example
  • Example#3518 - Affichage d'une image en utilisant imagegif
  • Example#3519 - Conversion d'une image PNG en GIF, en utilisant imagegif
  • Example#3520 - Exemple avec imagegrabscreen
  • Example#3521 - Exemple avec imagegrabwindow
  • Example#3522 - Activation de l'entrelacement en utilisant la fonction imageinterlace
  • Example#3523 - Détection simple d'une image en truecolor avec imageistruecolor
  • Example#3524 - Affichage d'une image JPEG vers le navigateur
  • Example#3525 - Sauvegarde d'une image JPEG dans un fichier
  • Example#3526 - Affichage de l'image avec une qualité de 75% vers le navigateur
  • Example#3527 - Exemple avec imagelayereffect
  • Example#3528 - Trace une ligne fine
  • Example#3529 - Exemple avec imageloadfont
  • Example#3530 - imageopenpolygon example
  • Example#3531 - Exemple avec imagepalettecopy
  • Example#3532 - Convertit n'importe quelle ressource image en couleur vraie
  • Example#3533 - Exemple avec imagepolygon
  • Example#3534 - Exemple avec imagepsbbox
  • Example#3535 - Exemple avec imagepsencodefont
  • Example#3536 - Exemple avec imagepsextendfont
  • Example#3537 - Exemple avec imagepsfreefont
  • Example#3538 - Exemple avec imagepsloadfont
  • Example#3539 - Exemple avec imagepsslantfont
  • Example#3540 - Exemple avec imagepstext
  • Example#3541 - Exemple avec imagerectangle
  • Example#3542 - Setting and getting the resolution of an image
  • Example#3543 - Rotation d'une image de 180 degrés
  • Example#3544 - Exemple avec imagesavealpha
  • Example#3545 - Exemple avec imagesetbrush
  • Example#3546 - Exemple avec imagesetinterpolation
  • Example#3547 - Exemple avec imagesetpixel
  • Example#3548 - Exemple pour imagesetstyle
  • Example#3549 - Exemple avec imagesetthickness
  • Example#3550 - Exemple avec imagesettile
  • Example#3551 - Exemple avec imagestring
  • Example#3552 - Exemple avec imagestringup
  • Example#3553 - Exemple avec imagesx
  • Example#3554 - Exemple avec imagesy
  • Example#3555 - Convertion d'une image truecolor en une palette
  • Example#3556 - Exemple avec imagettfbbox
  • Example#3557 - Exemple avec imagettftext
  • Example#3558 - Exemple avec imagetypes
  • Example#3559 - Affichage d'une image WBMP
  • Example#3560 - Sauvegarde de l'image WBMP
  • Example#3561 - Affichage de l'image avec un premier-plan différent
  • Example#3562 - Sauvegarde d'un fichier WebP
  • Example#3563 - Sauvegarde d'un fichier XBM
  • Example#3564 - Sauvegarde d'un fichier XBM avec une couleur de premier-plan différente
  • Example#3565 - Exemple avec iptcembed
  • Example#3566 - Exemple avec iptcparse() et getimagesize
  • Example#3567 - Exemple avec jpeg2wbmp
  • Example#3568 - Exemple avec png2wbmp
  • Example#3569 - Gmagick Example
  • Example#3570 - Exemple avec Gmagick::despeckleimage
  • Example#3571 - Gmagick::setCompressionQuality
  • Example#3572 - Création d'une miniature avec Imagick
  • Example#3573 - Création de miniature de toutes les images JPG d'un dossier
  • Example#3574 - Création d'un reflet sur une image
  • Example#3575 - Remplissage d'un texte avec un dégradé
  • Example#3576 - Lit une image GIF et redimensionne toutes les frames
  • Example#3577 - Create a PHP logo
  • Example#3578 - Exemple avec Imagick::adaptiveBlurImage
  • Example#3579 - Exemple avec Imagick::adaptiveResizeImage
  • Example#3580 - Exemple avec Imagick::adaptiveSharpenImage
  • Example#3581 - Exemple avec Imagick::adaptiveThresholdImage
  • Example#3582 - Exemple avec Imagick::addNoiseImage
  • Example#3583 - Exemple avec Imagick::affineTransformImage
  • Example#3584 - Exemple avec Imagick::annotateImage
  • Example#3585 - Exemple avec Imagick::appendImages
  • Example#3586 - Imagick::autoLevelImage
  • Example#3587 - Exemple avec Imagick::blackThresholdImage
  • Example#3588 - Imagick::blueShiftImage
  • Example#3589 - Exemple avec Imagick::blurImage
  • Example#3590 - Exemple avec Imagick::borderImage
  • Example#3591 - Imagick::brightnessContrastImage
  • Example#3592 - Exemple avec Imagick::charcoalImage
  • Example#3593 - Exemple avec Imagick::chopImage
  • Example#3594 - Clonage d'objet Imagick avec différentes versions d'Imagick
  • Example#3595 - Exemple avec Imagick::clutImage
  • Example#3596 - Exemple avec Imagick::colorizeImage
  • Example#3597 - Imagick::colorMatrixImage
  • Example#3598 - Exemple avec Imagick::commentImage
  • Example#3599 - Exemple avec Imagick::compareImageLayers
  • Example#3600 - Exemple avec Imagick::compareImages
  • Example#3601 - Using Imagick::compositeImage:
  • Example#3602 - Exemple avec Imagick::contrastImage
  • Example#3603 - Exemple avec Imagick::convolveImage
  • Example#3604 - Exemple avec Imagick::cropImage
  • Example#3605 - Exemple avec Imagick::deskewImage
  • Example#3606 - Exemple avec Imagick::despeckleImage
  • Example#3607 - Exemple avec Imagick::distortImage
  • Example#3608 - Exemple avec Imagick::edgeImage
  • Example#3609 - Exemple avec Imagick::embossImage
  • Example#3610 - Exemple avec Imagick::enhanceImage
  • Example#3611 - Exemple avec Imagick::equalizeImage
  • Example#3612 - Exemple avec Imagick::evaluateImage
  • Example#3613 - Exemple avec Imagick::exportImagePixels
  • Example#3614 - Imagick::filter
  • Example#3615 - Exemple avec Imagick::flipImage
  • Example#3616 - Exemple avec Imagick::floodfillPaintImage
  • Example#3617 - Exemple avec Imagick::flopImage
  • Example#3618 - Imagick::forwardFourierTransformImage
  • Example#3619 - Exemple avec Imagick::frameImage
  • Example#3620 - Crée un gradient sinusoidal
  • Example#3621 - Crée un gradient depuis le polynome (4x^2 - 4x + 1)
  • Example#3622 - Crée un gradient complexe depuis le polynome (4x^2 - 4x^2 + 1) modulé par un gradient sinusoidal
  • Example#3623 - Exemple avec Imagick::fxImage
  • Example#3624 - Exemple avec Imagick::gammaImage
  • Example#3625 - Exemple avec Imagick::gaussianBlurImage
  • Example#3626 - Exemple avec Imagick::getImageGeometry
  • Example#3627 - Exemple avec Imagick::getImageHistogram
  • Example#3628 - Exemple avec Imagick::getImageLength:
  • Example#3629 - Exemple avec Imagick::getImageProperties
  • Example#3630 - Exemple avec Imagick::getImageProperty
  • Example#3631 - Exemple avec Imagick::getIteratorIndex
  • Example#3632 - Exemple avec Imagick::getPixelIterator
  • Example#3633 - Imagick::getPixelRegionIterator example
  • Example#3634 - Exemple avec Imagick::haldClutImage
  • Example#3635 - Imagick::identifyFormat
  • Example#3636 - Exemple de format du résultat
  • Example#3637 - Exemple avec Imagick::implodeImage
  • Example#3638 - Exemple avec Imagick::importImagePixels
  • Example#3639 - Exemple avec Imagick::levelImage
  • Example#3640 - Exemple avec Imagick::linearStretchImage
  • Example#3641 - Exemple avec Imagick::magnifyImage
  • Example#3642 - Exemple avec Imagick::medianFilterImage
  • Example#3643 - Exemple avec Imagick::mergeImageLayers
  • Example#3644 - Exemple avec Imagick::modulateImage
  • Example#3645 - Convolve Imagick::morphology
  • Example#3646 - Correlate Imagick::morphology
  • Example#3647 - Erode Imagick::morphology
  • Example#3648 - Erode Intensity Imagick::morphology
  • Example#3649 - Dilate Imagick::morphology
  • Example#3650 - Dilate intensity Imagick::morphology
  • Example#3651 - Distance with Chebyshev kernel Imagick::morphology
  • Example#3652 - Distance with Manhattan kernel Imagick::morphology
  • Example#3653 - Distance with ocatagonal kernel Imagick::morphology
  • Example#3654 - Distance with Euclidean kernel Imagick::morphology
  • Example#3655 - Edge Imagick::morphology
  • Example#3656 - Open Imagick::morphology
  • Example#3657 - Open intensity Imagick::morphology
  • Example#3658 - Close Imagick::morphology
  • Example#3659 - Close Intensity Imagick::morphology
  • Example#3660 - Smooth Imagick::morphology
  • Example#3661 - Edge in Imagick::morphology
  • Example#3662 - Edge out Imagick::morphology
  • Example#3663 - The 'TopHat' method, or more specifically 'White Top Hat', returns the pixels that were removed by a Opening of the shape, that is the pixels that were removed to round off the points, and the connecting bridged between shapes. Imagick::morphology
  • Example#3664 - The 'BottomHat' method, also known as 'Black TopHat' is the pixels that a Closing of the shape adds to the image. That is the the pixels that were used to fill in the 'holes', 'gaps', and 'bridges'. Imagick::morphology
  • Example#3665 - Hit and Miss Imagick::morphology
  • Example#3666 - Thinning Imagick::morphology
  • Example#3667 - Thicken Imagick::morphology
  • Example#3668 - Thick to generate a convex hull Imagick::morphology
  • Example#3669 - Iterative morphology Imagick::morphology
  • Example#3670 - Helper functon to get an image silhouette Imagick::morphology
  • Example#3671 - Exemple avec Imagick::motionBlurImage
  • Example#3672 - Exemple avec Imagick::negateImage
  • Example#3673 - Exemple avec Imagick::newImage
  • Example#3674 - Exemple avec Imagick::newPseudoImage
  • Example#3675 - Exemple avec Imagick::normalizeImage
  • Example#3676 - Exemple avec Imagick::oilPaintImage
  • Example#3677 - Exemple avec Imagick::optimizeImageLayers
  • Example#3678 - Exemple avec Imagick::orderedPosterizeImage
  • Example#3679 - Exemple avec Imagick::pingImageBlob
  • Example#3680 - Exemple avec Imagick::pingImageFile
  • Example#3681 - Exemple avec Imagick::polaroidImage
  • Example#3682 - Exemple avec Imagick::posterizeImage
  • Example#3683 - Exemple avec Imagick::quantizeImage
  • Example#3684 - Exemple avec Imagick::queryFontMetrics
  • Example#3685 - Exemple avec Imagick::queryFonts
  • Example#3686 - Exemple avec Imagick::queryFormats
  • Example#3687 - Exemple avec Imagick::radialBlurImage
  • Example#3688 - Exemple avec Imagick::raiseImage
  • Example#3689 - Exemple avec Imagick::randomThresholdImage
  • Example#3690 - Exemple avec Imagick::readImageBlob
  • Example#3691 - Exemple avec Imagick::recolorImage
  • Example#3692 - Exemple avec Imagick::reduceNoiseImage
  • Example#3693 - Exemple avec Imagick::resampleImage
  • Example#3694 - Exemple avec Imagick::resizeImage
  • Example#3695 - Exemple avec Imagick::rollImage
  • Example#3696 - Exemple avec Imagick::rotateImage
  • Example#3697 - Imagick::rotationalBlurImage
  • Example#3698 - Exemple avec Imagick::roundCorners:
  • Example#3699 - Exemple avec Imagick::scaleImage
  • Example#3700 - Exemple avec Imagick::segmentImage
  • Example#3701 - Imagick::selectiveBlurImage
  • Example#3702 - Exemple avec Imagick::separateImageChannel
  • Example#3703 - Exemple avec Imagick::sepiaToneImage
  • Example#3704 - Exemple avec Imagick::setCompressionQuality
  • Example#3705 - Exemple avec Imagick::setFont
  • Example#3706 - Exemple avec Imagick::setImage
  • Example#3707 - Exemple avec Imagick::setImageArtifact
  • Example#3708 - Exemple avec Imagick::setImageBias
  • Example#3709 - Exemple avec Imagick::setImageClipMask
  • Example#3710 - Exemple avec Imagick::setImageCompressionQuality
  • Example#3711 - Modification d'un GIF animé avec Imagick::setImageDelay
  • Example#3712 - Utilisation basique de la méthode Imagick::setImageIterations
  • Example#3713 - Exemple avec Imagick::setImageOpacity
  • Example#3714 - Exempe avec Imagick::setImageOrientation
  • Example#3715 - Exemple avec Imagick::setImageProperty
  • Example#3716 - Exempe avec Imagick::setImageResolution
  • Example#3717 - Modification d'un GIF animé avec la méthode Imagick::setImageTicksPerSecond
  • Example#3718 - Exemple avec Imagick::setIteratorIndex
  • Example#3719 - Tentative d'atteindre la taille '$extent' avec Imagick::setOption
  • Example#3720 - Exemple avec Imagick::setOption
  • Example#3721 - Exemple avec Imagick::setOption
  • Example#3722 - Exemple avec Imagick::setPointSize
  • Example#3723 - Imagick::setProgressMonitor
  • Example#3724 - Exemple avec Imagick::setSamplingFactors
  • Example#3725 - Exemple avec Imagick::shadeImage
  • Example#3726 - Exemple avec Imagick::shadowImage
  • Example#3727 - Exemple avec Imagick::sharpenImage
  • Example#3728 - Exemple avec Imagick::shaveImage
  • Example#3729 - Exemple avec Imagick::shearImage
  • Example#3730 - Crée une gradient d'image en utilisant la méthode Imagick::sigmoidalContrastImage pour mélanger deux images en douceur, où le mélange est défini par les variables $contrast et $midpoint.
  • Example#3731 - Exemple avec Imagick::sketchImage
  • Example#3732 - Imagick::smushImages
  • Example#3733 - Exemple avec Imagick::solarizeImage
  • Example#3734 - Exemple avec Imagick::sparseColorImage et SPARSECOLORMETHOD_BARYCENTRIC
  • Example#3735 - Exemple avec Imagick::sparseColorImage et SPARSECOLORMETHOD_BILINEAR
  • Example#3736 - Exemple avec Imagick::sparseColorImage et SPARSECOLORMETHOD_SPEPARDS
  • Example#3737 - Exemple avec Imagick::sparseColorImage et SPARSECOLORMETHOD_VORONOI
  • Example#3738 - Exemple avec Imagick::sparseColorImage et SPARSECOLORMETHOD_BARYCENTRIC
  • Example#3739 - createGradientImage est utilisé par les autres exemples. Imagick::sparseColorImage
  • Example#3740 - Exemple avec Imagick::spliceImage
  • Example#3741 - Exemple avec Imagick::spreadImage
  • Example#3742 - Imagick::statisticImage
  • Example#3743 - Imagick::subImageMatch
  • Example#3744 - Exemple avec Imagick::swirlImage
  • Example#3745 - Exemple avec Imagick::textureImage
  • Example#3746 - Exemple avec Imagick::thresholdImage
  • Example#3747 - Exemple avec Imagick::thumbnailImage
  • Example#3748 - Exemple avec Imagick::tintImage
  • Example#3749 - Exemple avec Imagick::transformImage:
  • Example#3750 - Imagick::transformImageColorspace example
  • Example#3751 - Imagick::transformImageColorspace
  • Example#3752 - Exemple avec Imagick::transparentPaintImage
  • Example#3753 - Exemple avec Imagick::transposeImage
  • Example#3754 - Exemple avec Imagick::transverseImage
  • Example#3755 - Exemple avec Imagick::trimImage:
  • Example#3756 - Exemple avec Imagick::uniqueImageColors
  • Example#3757 - Exemple avec Imagick::unsharpMaskImage
  • Example#3758 - Exemple avec Imagick::vignetteImage
  • Example#3759 - WaveImage peut être très lent ; Imagick::waveImage
  • Example#3760 - Exemple avec Imagick::whiteThresholdImage
  • Example#3761 - Exemple avec ImagickDraw::affine
  • Example#3762 - Exemple avec ImagickDraw::arc
  • Example#3763 - Exemple avec ImagickDraw::bezier
  • Example#3764 - Exemple avec ImagickDraw::circle
  • Example#3765 - Exemple avec ImagickDraw::composite
  • Example#3766 - Exemple avec ImagickDraw::ellipse
  • Example#3767 - Exemple avec ImagickDraw::line
  • Example#3768 - Exemple avec ImagickDraw::matte
  • Example#3769 - Exemple avec ImagickDraw::pathCurveToQuadraticBezierAbsolute
  • Example#3770 - ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
  • Example#3771 - ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
  • Example#3772 - Exemple avec ImagickDraw::pathStart
  • Example#3773 - Exemple avec ImagickDraw::point
  • Example#3774 - Exemple avec ImagickDraw::polygon
  • Example#3775 - Exempe avec ImagickDraw::polyline
  • Example#3776 - Exemple avec ImagickDraw::popDefs
  • Example#3777 - Exemple avec ImagickDraw::push
  • Example#3778 - Exemple avec ImagickDraw::pushPattern
  • Example#3779 - Exemple avec ImagickDraw::rectangle
  • Example#3780 - Exemple avec ImagickDraw::rotate
  • Example#3781 - Exemple avec ImagickDraw::roundRectangle
  • Example#3782 - Exemple avec ImagickDraw::scale
  • Example#3783 - Exemple avec ImagickDraw::setClipPath
  • Example#3784 - Exemple avec ImagickDraw::setClipRule
  • Example#3785 - Exemple avec ImagickDraw::setClipUnits
  • Example#3786 - Exemple avec ImagickDraw::setFillAlpha
  • Example#3787 - Exemple avec ImagickDraw::setFillColor
  • Example#3788 - Exemple avec ImagickDraw::setFillOpacity
  • Example#3789 - Exemple avec ImagickDraw::setFillRule
  • Example#3790 - Exemple avec ImagickDraw::setFont
  • Example#3791 - Exemple avec ImagickDraw::setFontFamily
  • Example#3792 - Exemple avec ImagickDraw::setFontSize
  • Example#3793 - Exemple avec ImagickDraw::setFontStretch
  • Example#3794 - Exemple avec ImagickDraw::setFontStyle
  • Example#3795 - Exemple avec ImagickDraw::setFontWeight
  • Example#3796 - Exemple avec ImagickDraw::setGravity
  • Example#3797 - Exemple avec ImagickDraw::setStrokeAlpha
  • Example#3798 - Exemple avec ImagickDraw::setStrokeAntialias
  • Example#3799 - Exemple avec ImagickDraw::setStrokeColor
  • Example#3800 - Exemple avec ImagickDraw::setStrokeDashArray
  • Example#3801 - Exemple avec ImagickDraw::setStrokeDashOffset
  • Example#3802 - Exemple avec ImagickDraw::setStrokeLineCap
  • Example#3803 - Exemple avec ImagickDraw::setStrokeLineJoin
  • Example#3804 - Exemple avec ImagickDraw::setStrokeMiterLimit
  • Example#3805 - Exemple avec ImagickDraw::setStrokeOpacity
  • Example#3806 - Exemple avec ImagickDraw::setStrokeWidth
  • Example#3807 - Exemple avec ImagickDraw::setTextAlignment
  • Example#3808 - Exemple avec ImagickDraw::setTextAntialias
  • Example#3809 - Exemple avec ImagickDraw::setTextDecoration
  • Example#3810 - Exemple avec ImagickDraw::setTextUnderColor
  • Example#3811 - Exemple avec ImagickDraw::setVectorGraphics
  • Example#3812 - Exemple avec ImagickDraw::setViewBox
  • Example#3813 - Exemple avec ImagickDraw::skewX
  • Example#3814 - Exemple avec ImagickDraw::skewY
  • Example#3815 - Exemple avec ImagickDraw::translate
  • Example#3816 - Exemple avec ImagickPixel::construct
  • Example#3817 - Utilisation simple de la méthode Imagick::getColor
  • Example#3818 - Utilisation basique de la méthode Imagick::getColorAsString
  • Example#3819 - Utilisation basique de la méthode Imagick::getColorValue
  • Example#3820 - ImagickPixel::getColorValueQuantum
  • Example#3821 - Exemple avec Imagick::getHSL
  • Example#3822 - Exemple avec ImagickPixel::isSimilar
  • Example#3823 - Exemple avec ImagickPixel::setColor
  • Example#3824 - Exemple avec Imagick::setColorValue
  • Example#3825 - ImagickPixel::setColorValueQuantum
  • Example#3826 - Exemple avec ImagickPixel::setHSL pour modifier une couleur
  • Example#3827 - Exemple avec ImagickPixelIterator::clear
  • Example#3828 - Exemple avec ImagickPixelIterator::construct
  • Example#3829 - Exemple avec ImagickPixelIterator::getNextIteratorRow
  • Example#3830 - Exemple avec ImagickPixelIterator::resetIterator
  • Example#3831 - Exemple avec ImagickPixelIterator::setIteratorRow
  • Example#3832 - ImagickKernel::addKernel
  • Example#3833 - ImagickKernel::addUnityKernel
  • Example#3834 - ImagickKernel::addUnityKernel
  • Example#3835 - ImagickKernel::fromBuiltin
  • Example#3836 - ImagickKernel::fromMatrix
  • Example#3837 - ImagickKernel::getMatrix
  • Example#3838 - ImagickKernel::scale
  • Example#3839 - ImagickKernel::separate
  • Example#3840 - Exemple avec imap_append
  • Example#3841 - Exemple avec imap_check
  • Example#3842 - Exemple avec imap_createmailbox
  • Example#3843 - Exemple avec imap_delete
  • Example#3844 - Exemple avec imap_fetch_overview
  • Example#3845 - Exemple avecimap_gc
  • Example#3846 - Exemple avec imap_get_quota
  • Example#3847 - Exemple avec imap_get_quota 4.3 ou supérieur
  • Example#3848 - Exemple avec imap_get_quotaroot
  • Example#3849 - Exemple avec imap_getacl
  • Example#3850 - Exemple avec imap_getmailboxes
  • Example#3851 - Exemple avec imap_list
  • Example#3852 - Exemple avec imap_mail_compose
  • Example#3853 - Exemple avec imap_mailboxmsginfo
  • Example#3854 - Exemple avec imap_mime_header_decode
  • Example#3855 - Différentes utilisations de imap_open
  • Example#3856 - Exemple avec imap_open
  • Example#3857 - Exemple avec imap_ping
  • Example#3858 - Exemple avec imap_reopen
  • Example#3859 - Exemple avec imap_rfc822_parse_adrlist
  • Example#3860 - Exemple avec imap_rfc822_write_address
  • Example#3861 - Exemple avec imap_search
  • Example#3862 - Exemple avec imap_set_quota
  • Example#3863 - Exemple avec imap_setflag_full
  • Example#3864 - Exemple avec imap_status
  • Example#3865 - Exemple avec imap_thread
  • Example#3866 - Exemple avec imap_timeout
  • Example#3867 - Calcul du hachage et enregistrement d'un utilisateur de liste de diffusion
  • Example#3868 - Envoi d'un mail
  • Example#3869 - Envoi d'un mail avec des en-têtes supplémentaires
  • Example#3870 - Envoi d'un mail avec un paramètre de ligne de commande additionnel
  • Example#3871 - Envoi de mail HTML
  • Example#3872 - Exemple avec mailparse_determine_best_xfer_encoding
  • Example#3873 - Exemple avec mailparse_rfc822_parse_addresses
  • Example#3874 - Exemple avec mailparse_stream_encode
  • Example#3875 - Exemple avec mailparse_uudecode_all
  • Example#3876 - Exemple avec bcadd
  • Example#3877 - Exemple avec bccomp
  • Example#3878 - Exemple avec bcdiv
  • Example#3879 - Exemple avec bcmod
  • Example#3880 - Exemple avec bcmul
  • Example#3881 - Exemple avec bcpow
  • Example#3882 - bcpow exemple pour scale
  • Example#3883 - Exemple avec bcscale
  • Example#3884 - Exemple avec bcsqrt
  • Example#3885 - Exemple avec bcsub
  • Example#3886 - Factorielle avec GMP
  • Example#3887 - Exemple avec gmp_abs
  • Example#3888 - Exemple avec gmp_add
  • Example#3889 - Exemple avec gmp_and
  • Example#3890 - Exemple avec gmp_clrbit
  • Example#3891 - Exemple avec gmp_cmp
  • Example#3892 - Exemple avec gmp_com
  • Example#3893 - Exemple avec gmp_div_q
  • Example#3894 - Division de nombres GMP
  • Example#3895 - Exemple avec gmp_div_r
  • Example#3896 - Exemple avec gmp_divexact
  • Example#3897 - Exemple avec gmp_export
  • Example#3898 - Exemple avec gmp_fact
  • Example#3899 - Exemple avec gmp_gcd
  • Example#3900 - Résolution d'une équation Diophantine linéaire
  • Example#3901 - Exemple avec gmp_hamdist
  • Example#3902 - Exemple avec gmp_import
  • Example#3903 - Création d'un nombre GMP
  • Example#3904 - Exemple avec gmp_intval
  • Example#3905 - Exemple avec gmp_invert
  • Example#3906 - Exemple avec gmp_jacobi
  • Example#3907 - Exemple avec gmp_legendre
  • Example#3908 - Exemple avec gmp_mod
  • Example#3909 - Exemple avec gmp_mul
  • Example#3910 - Exemple avec gmp_neg
  • Example#3911 - Exemple avec gmp_nextprime
  • Example#3912 - Exemple avec gmp_or
  • Example#3913 - Exemple avec gmp_perfect_square
  • Example#3914 - Exemple avec gmp_popcount
  • Example#3915 - Exemple avec gmp_pow
  • Example#3916 - Exemple avec gmp_powm
  • Example#3917 - Exemple avec gmp_prob_prime
  • Example#3918 - Exemple avec gmp_random_bits
  • Example#3919 - Exemple avec gmp_random_range
  • Example#3920 - gmp_random_seed example
  • Example#3921 - Exemple avec gmp_random
  • Example#3922 - Exemple avec gmp_scan0
  • Example#3923 - Exemple avec gmp_scan1
  • Example#3924 - Exemple avec gmp_setbit - index 0
  • Example#3925 - Exemple avec gmp_setbit - index 1
  • Example#3926 - Exemple avec gmp_setbit - annule un octet
  • Example#3927 - Exemple avec gmp_sign
  • Example#3928 - Exemple avec gmp_sqrt
  • Example#3929 - Exemple avec gmp_sqrtrem
  • Example#3930 - Convertir un nombre GMP en chaîne de caractères
  • Example#3931 - Exemple avec gmp_sub
  • Example#3932 - Exemple avec gmp_testbit
  • Example#3933 - Exemple avec gmp_xor
  • Example#3934 - Utilisation de la fonction Lapack::eigenValues:
  • Example#3935 - Utilisation de Lapack::leastSquaresByFactorisation:
  • Example#3936 - Utilisation de Lapack::leastSquaresBySVD:
  • Example#3937 - Utilisation de Lapack::pseudoInverse:
  • Example#3938 - Utilisation de Lapack::singularValues:
  • Example#3939 - Utilisation de Lapack::singularValues:
  • Example#3940 - Exemple avec abs
  • Example#3941 - Exemple avec base_convert
  • Example#3942 - Exemple avec bindec
  • Example#3943 - bindec interprète l'entrée comme un entier non-signé
  • Example#3944 - Exemple avec ceil
  • Example#3945 - Exemple avec cos
  • Example#3946 - Exemple avec decbin
  • Example#3947 - Exemple avec dechex
  • Example#3948 - Exemple avec la fonction dechex avec de gros entiers
  • Example#3949 - Exemple avec decoct
  • Example#3950 - Exemple avec deg2rad
  • Example#3951 - Exemple avec exp
  • Example#3952 - Exemple avec floor
  • Example#3953 - Exemple avec fmod
  • Example#3954 - Exemple avec hexdec
  • Example#3955 - intdiv example
  • Example#3956 - Exemple avec is_nan
  • Example#3957 - Exemple avec max
  • Example#3958 - Exemple avec min
  • Example#3959 - Calcule un nombre flottant aléatoire
  • Example#3960 - Exemple avec mt_rand
  • Example#3961 - Exemple avec mt_srand
  • Example#3962 - Exemple avec octdec
  • Example#3963 - Exemple avec pi
  • Example#3964 - Exemple avec pow
  • Example#3965 - Exemple avec rad2deg
  • Example#3966 - Exemple avec rand
  • Example#3967 - Exemple avec round
  • Example#3968 - Exemple avec le paramètre mode
  • Example#3969 - Exemple avec les paramètres mode et precision
  • Example#3970 - Exemple avec sin
  • Example#3971 - Exemple avec sqrt
  • Example#3972 - Exemple avec srand
  • Example#3973 - Exemple avec tan
  • Example#3974 - Évaluer un document FDF
  • Example#3975 - Ajout de code JavaScript à un document FDF
  • Example#3976 - Préremplir un formulaire PDF
  • Example#3977 - Enregistrement d'un fichier téléchargé
  • Example#3978 - Détecter tous les noms d'un formulaire FDF
  • Example#3979 - Accès aux données de formulaire FDF
  • Example#3980 - Accéder aux données du formulaire
  • Example#3981 - Lire un document FDF sous forme de chaîne de caractères
  • Example#3982 - Passer des données FDF à un second formulaire
  • Example#3983 - Exemple avec gnupg clearsign (Style procédural)
  • Example#3984 - Exemple avec gnupg clearsign (Style orienté objet)
  • Example#3985 - keylistiterator
  • Example#3986 - Exemple avec gnupg_adddecryptkey (Style procédural)
  • Example#3987 - Exemple avec gnupg_adddecryptkey (Style orienté objet)
  • Example#3988 - Exemple avec gnupg_addencryptkey (Style procédural)
  • Example#3989 - Exemple avec gnupg_addencryptkey (Style orienté objet)
  • Example#3990 - Exemple avec gnupg_addsignkey (Style procédural)
  • Example#3991 - Exemple avec gnupg_addsignkey (Style orienté objet)
  • Example#3992 - Exemple avec gnupg_cleardecryptkeys (Style procédural)
  • Example#3993 - Exemple avec gnupg_cleardecryptkeys (Style orienté objet)
  • Example#3994 - Exemple avec gnupg_clearencryptkeys (Style procédural)
  • Example#3995 - Exemple avec gnupg_clearencryptkeys (Style orienté objet)
  • Example#3996 - Exemple avec gnupg_clearsignkeys (Style procédural)
  • Example#3997 - Exemple avec gnupg_clearsignkeys (Style orienté objet)
  • Example#3998 - Exemple avec gnupg_decrypt (Style procédural)
  • Example#3999 - Exemple avec gnupg_encrypt (Style orienté objet)
  • Example#4000 - Exemple avec gnupg_decryptverify (Style procédural)
  • Example#4001 - Exemple avec gnupg_decryptverify (Style orienté objet)
  • Example#4002 - Exemple avec gnupg_encrypt (Style procédural)
  • Example#4003 - Exemple avec gnupg_encrypt (Style orienté objet)
  • Example#4004 - Exemple avec gnupg_encryptsign (Style procédural)
  • Example#4005 - Exemple avec gnupg_encryptsign (Style orienté objet)
  • Example#4006 - Exemple avec gnupg_export (Style procédural)
  • Example#4007 - Exemple avec gnupg_export (Style orienté objet)
  • Example#4008 - Exemple avec gnupg_geterror (Style procédural)
  • Example#4009 - Exemple avec gnupg_geterror (Style orienté objet)
  • Example#4010 - Exemple avec gnupg_getprotocol (Style procédural)
  • Example#4011 - Exemple avec gnupg_getprotocol (Style orienté objet)
  • Example#4012 - Exemple avec gnupg_import (Style procédural)
  • Example#4013 - Exemple avec gnupg_import (Style orienté objet)
  • Example#4014 - Exemple avec gnupg_init (Style procédural)
  • Example#4015 - Exemple avec gnupg_init (Style orienté objet)
  • Example#4016 - Exemple avec gnupg_keyinfo (Style procédural)
  • Example#4017 - Exemple avec gnupg_keyinfo (Style orienté objet)
  • Example#4018 - Exemple avec gnupg_setarmor (Style procédural)
  • Example#4019 - Exemple avec gnupg_setarmor (Style orienté objet)
  • Example#4020 - Exemple avec gnupg_seterrormode (Style procédural)
  • Example#4021 - Exemple avec gnupg_seterrormode (Style orienté objet)
  • Example#4022 - Exemple avec gnupg_setsignmode (Style procédural)
  • Example#4023 - Exemple avec gnupg_setsignmode (Style orienté objet)
  • Example#4024 - Exemple avec gnupg_sign (Style procédural)
  • Example#4025 - Exemple avec gnupg_sign (Style orienté objet)
  • Example#4026 - Exemple avec gnupg_verify (Style procédural)
  • Example#4027 - Exemple avec gnupg_verify (Style orienté objet)
  • Example#4028 - "Hello world"
  • Example#4029 - Exemple avec swfaction
  • Example#4030 - Exemple avec swfaction
  • Example#4031 - Exemple avec swfaction
  • Example#4032 - Exemple avec swfsprite
  • Example#4033 - Exemple avec ming_useswfversion
  • Example#4034 - Importation d'un fichier DBL
  • Example#4035 - Utilisation d'un masque Alpha
  • Example#4036 - à habituelles avec les boutons
  • Example#4037 - Exemple de glisser
  • Example#4038 - Exemple avec swfdisplayitem::multcolor
  • Example#4039 - Exemple avec swfdisplayitem->rotateto
  • Example#4040 - Exemple avec swfdisplayitem::setname
  • Example#4041 - Exemple avec swfgradient
  • Example#4042 - Exemple avec swfmorph
  • Example#4043 - Affiche la vidéo dans un navigateur
  • Example#4044 - Exemple de diffusion
  • Example#4045 - Exemple avec SWFShape::addFill
  • Example#4046 - Exemple avec swfshape
  • Example#4047 - Exemple avec swfshape::setline
  • Example#4048 - Exemple avec swftext
  • Example#4049 - Exemple issu de la distribution PDFlib pour PHP 4
  • Example#4050 - Exemple issu de la distribution PDFlib pour PHP 5
  • Example#4051 - Création et utilisation d'un motif
  • Example#4052 - Création et utilisation d'un modèle PostScript
  • Example#4053 - Coupe un texte
  • Example#4054 - Dessin d'un rectangle
  • Example#4055 - Création et utilisation d'une tache de couleur
  • Example#4056 - Rotation d'un système de coordonnées
  • Example#4057 - Placement de texte à une position donnée
  • Example#4058 - Dessin d'une ligne pointillée
  • Example#4059 - Translation du système de coordonnées
  • Example#4060 - Exemple avec RPMReader
  • Example#4061 - Exemple avec rpm_close
  • Example#4062 - Exemple avec rpm_get_tag
  • Example#4063 - Exemple avec rpm_is_valid
  • Example#4064 - Exemple avec rpm_open
  • Example#4065 - Exemple avec rpm_version
  • Example#4066 - Demandes incorrectes
  • Example#4067 - Exécution d'une demande dans la fonction de rappel d'une autre
  • Example#4068 - Exécution d'une demande depuis la fonction de rappel d'une autre
  • Example#4069 - Utilisation de eio et libevent
  • Example#4070 - Annulation d'une demande
  • Example#4071 - Appel de la fonction eio_chmod
  • Example#4072 - Fabrication d'une demande personnalisée
  • Example#4073 - Création d'un groupe de demandes
  • Example#4074 - Utilisation de eio avec libevent
  • Example#4075 - Exemple avec eio_cancel
  • Example#4076 - Exemple avec eio_custom
  • Example#4077 - Exemple avec eio_event_loop
  • Example#4078 - eio_lstat example
  • Example#4079 - Utilisation de eio avec libevent
  • Example#4080 - Le regroupement des requêtes
  • Example#4081 - Exemple avec eio_grp
  • Example#4082 - Exemple avec eio_link
  • Example#4083 - Exemple avec eio_lstat
  • Example#4084 - Exemple avec eio_mkdir
  • Example#4085 - Exemple avec eio_mknod
  • Example#4086 - Exemple avec eio_nreqs
  • Example#4087 - Exempe avec eio_open
  • Example#4088 - Exemple avec eio_poll
  • Example#4089 - Exemple avec eio_read
  • Example#4090 - Exemple avec eio_readdir
  • Example#4091 - Exemple avec eio_readlink
  • Example#4092 - Exemple avec eio_realpath
  • Example#4093 - Exemple avec eio_rename
  • Example#4094 - Exemple avec eio_rmdir
  • Example#4095 - Exemple avec eio_stat
  • Example#4096 - Exemple avec eio_statvfs
  • Example#4097 - Exemple avec eio_symlink
  • Example#4098 - Exemple de minuteurs
  • Example#4099 - Minuteur périodique. Alerte toutes les 10.5 secondes
  • Example#4100 - Minuteur périodique. Utilisation de la fonction de rappel de reprogrammation
  • Example#4101 - Minuteur périodique. Alerte toutes les 10.5 secondes, en commençant maintenant
  • Example#4102 - Attend que STDIN devienne accessible en lecture
  • Example#4103 - Utilisation de quelques I/O asynchrones pour accéder à un socket
  • Example#4104 - Encapsule une boucle dans une autre
  • Example#4105 - Encapsule une boucle créée avec le backend kqueue dans la boucle par défaut
  • Example#4106 - Gestion du signal SIGTERM
  • Example#4107 - Surveillance des modifications dans /var/log/messages
  • Example#4108 - Surveillance des modifications dans /var/log/messages. On regarde les modifications avec une seconde de délai
  • Example#4109 - Modification du statut d'un processus
  • Example#4110 - Using reschedule callback
  • Example#4111 - Encapsule une boucle créée avec le backend kqueue dans la boucle par défaut
  • Example#4112 - Encapsule une boucle dans une autre
  • Example#4113 - Boucle embarqué créé avec le backend kqueue dans la boucle par défaut
  • Example#4114 - Encapsulage d'une boucle créée avec le gestionnaire kqueue dans la boucle par défaut
  • Example#4115 - Periodic timer. Use reschedule callback
  • Example#4116 - Timer périodique. Appelé toutes les 10.5 secondes
  • Example#4117 - Watcher chaque heure
  • Example#4118 - Gestion d'un signal SIGTERM
  • Example#4119 - Surveillance des modifications dans /var/log/messages
  • Example#4120 - Sruveillance des modifications dans le dossier /var/log/messages
  • Example#4121 - timers simples
  • Example#4122 - Surveillance des modifications dans of /var/log/messages. Détecte les mises à jour oubliées en ajoutant une seconde de délai
  • Example#4123 - Enregistre un Watcher I/O pour des sockets UDP
  • Example#4124 - Exemple d'Utilisation avec Expect
  • Example#4125 - Autre exemple d'utilisation d'Expect
  • Example#4126 - Exemple avec expect_expectl
  • Example#4127 - Exemple avec expect_popen
  • Example#4128 - Surveillance de STDIN en utilisant l'API basique
  • Example#4129 - Surveillance de STDIN en utilisant l'API des événements mis en tampon
  • Example#4130 - Exemple de contrôle de processus
  • Example#4131 - Exemple avec pcntl_fork
  • Example#4132 - Exemple avec pcntl_signal_dispatch
  • Example#4133 - Exemple avec pcntl_signal
  • Example#4134 - Exemple avec pcntl_sigprocmask
  • Example#4135 - Exemple avec pcntl_sigwaitinfo
  • Example#4136 - Exemple avec posix_access
  • Example#4137 - Exemple avec posix_ctermid
  • Example#4138 - Exemple avec posix_get_last_error
  • Example#4139 - Exemple avec posix_getcwd
  • Example#4140 - Exemple avec posix_getegid
  • Example#4141 - Exemple avec posix_geteuid
  • Example#4142 - Exemple avec posix_getgid
  • Example#4143 - Exemple avec posix_getgrgid
  • Example#4144 - Exemple avec posix_getgrnam
  • Example#4145 - Exemple avec posix_getgroups
  • Example#4146 - Exemple avec posix_getlogin
  • Example#4147 - Exemple avec posix_getpgid
  • Example#4148 - Exemple avec posix_getpid
  • Example#4149 - Exemple avec posix_getppid
  • Example#4150 - Exemple avec posix_getpwnam
  • Example#4151 - Exemple avec posix_getpwuid
  • Example#4152 - Exemple avec posix_getrlimit
  • Example#4153 - Exemple avec posix_getsid
  • Example#4154 - Exemple avec posix_getuid
  • Example#4155 - Exemple avec posix_mknod
  • Example#4156 - Exemple avec posix_setegid
  • Example#4157 - Exemple avec posix_setgid
  • Example#4158 - Exemple avec posix_setuid
  • Example#4159 - Exemple avec posix_strerror
  • Example#4160 - Exemple avec posix_times
  • Example#4161 - Exemple avec posix_uname
  • Example#4162 - Exemple avec escapeshellarg
  • Example#4163 - Exemple avec escapeshellcmd
  • Example#4164 - Exemple avec exec
  • Example#4165 - Exemple avec proc_open
  • Example#4166 - Exemple avec shell_exec
  • Example#4167 - Exemple avec system
  • Example#4168 - Parcours une partie de la table des propriétés
  • Example#4169 - Compte les propriétés d'un objet
  • Example#4170 - Héritage à l'exécution
  • Example#4171 - Objets sécurisés Thread depuis les closures
  • Example#4172 - Détection des erreurs fatales dans Threads
  • Example#4173 - Détecte le statut de l'objet référencé
  • Example#4174 - Détecte le statut de l'objet référencé
  • Example#4175 - Détecte le statut de l'objet référencé
  • Example#4176 - Verouille les propriétés de l'objet
  • Example#4177 - Fusionne l'objet threadé dans la table des propriétés
  • Example#4178 - Notifications et attente
  • Example#4179 - Enlève le dernier élément depuis la table des propriétés d'un objet threadé
  • Example#4180 - Enlève le premier élément depuis la table de propriétés de l'objet threadé
  • Example#4181 - Synchronisation
  • Example#4182 - Verouillage de la table des propriétés de l'objet threadé
  • Example#4183 - Notifications et attente
  • Example#4184 - Retourne l'identité du Thread ou du processus qui a créé le Thread référencé
  • Example#4185 - Retourne le thread actuellement en cours d'exécution
  • Example#4186 - Retourne l'identité du thread actuellement en cours d'exécution
  • Example#4187 - Retourne l'identité du Thread référencé
  • Example#4188 - Exécution dans le scope global
  • Example#4189 - Détecte le statut du Thread référencé
  • Example#4190 - Indique si le Thread référencé a été démarré
  • Example#4191 - Rejoint le Thread référencé
  • Example#4192 - Termine le thread référencé
  • Example#4193 - Démarre les Threads
  • Example#4194 - Retourne le nombre d'objets actuellement en attente d'exécution par le Worker référencé
  • Example#4195 - Détecte le statut d'un Worker
  • Example#4196 - Détecte le statut d'un Worker
  • Example#4197 - Eteint le Worker référencé
  • Example#4198 - Objets passés aux Workers pour exécution
  • Example#4199 - Supprime l'objet depuis la pile d'attente des Workers
  • Example#4200 - Exemple de méthode protégée : les méthodes protégées peuvent seulement être exécutées par un seul Thread à la fois.
  • Example#4201 - Exemple de méthode privée : les méthodes privées ne peuvent être exécutées par l'objet Threaded que pendant leur exécution
  • Example#4202 - Création de Pools
  • Example#4203 - Création d'un Pool
  • Example#4204 - Soumission de tâches
  • Example#4205 - Soumission d'une tâche
  • Example#4206 - Création et destruction d'un Mutex
  • Example#4207 - Création et destruction d'un Mutex
  • Example#4208 - Verrouillage et déverrouillage d'un Mutex
  • Example#4209 - Verrouillage et déverrouillage d'un Mutex
  • Example#4210 - Verrouillage et déverrouillage du Mutex
  • Example#4211 - Diffusion d'une condition
  • Example#4212 - Création et destruction d'une condition
  • Example#4213 - Création et destruction d'une condition
  • Example#4214 - Signallement d'une condition
  • Example#4215 - Attente des conditions
  • Example#4216 -
  • Example#4217 - Introduction à la mémoire partagée
  • Example#4218 - Fermeture d'un bloc de mémoire partagée
  • Example#4219 - Effacement d'un bloc de mémoire partagée
  • Example#4220 - Créer un nouveau bloc de mémoire partagée Shmop
  • Example#4221 - Lit un bloc de mémoire partagée
  • Example#4222 - Lit la taille d'un bloc de mémoire partagée
  • Example#4223 - Écrit un bloc de mémoire partagée
  • Example#4224 - Exemple avec SyncMutex::__construct et un mutex nommé avec un délai d'attente maximal pour le verrou
  • Example#4225 - Exemple avec SyncMutex::__construct et un mutex non nommé
  • Example#4226 - Exemple avec SyncMutex::lock
  • Example#4227 - Exemple avec SyncMutex::unlock
  • Example#4228 - Exemple avec SyncSemaphore::__construct
  • Example#4229 - Exemple avec SyncSemaphore::lock
  • Example#4230 - Exemple avec SyncSemaphore::unlock
  • Example#4231 - Exemple avec SyncEvent::__construct
  • Example#4232 - Exemple avec SyncEvent::fire
  • Example#4233 - Exemple avec SyncEvent::reset
  • Example#4234 - Exemple avec SyncEvent::wait
  • Example#4235 - Exemple avec SyncReaderWriter::__construct
  • Example#4236 - Exemple avec SyncReaderWriter::readlock
  • Example#4237 - Exemple avec SyncReaderWriter::readunlock
  • Example#4238 - Exemple avec SyncReaderWriter::writelock
  • Example#4239 - Exemple avec SyncReaderWriter::writeunlock
  • Example#4240 - Exemple avec geoip_asnum_by_name
  • Example#4241 - Exemple avec geoip_continent_code_by_name
  • Example#4242 - Exemple avec geoip_country_code_by_name
  • Example#4243 - Exemple avec geoip_country_code3_by_name
  • Example#4244 - Exemple avec geoip_country_name_by_name
  • Example#4245 - Exemple avec geoip_database_info
  • Example#4246 - Exemple avec geoip_db_avail
  • Example#4247 - Exemple avec geoip_db_filename
  • Example#4248 - Exemple avec geoip_db_get_all_info
  • Example#4249 - Exemple avec geoip_db_get_all_info
  • Example#4250 - Exemple avec geoip_domain_by_name
  • Example#4251 - Exemple avec geoip_id_by_name
  • Example#4252 - Exemple avec geoip_isp_by_name
  • Example#4253 - Exemple avec geoip_netspeedcell_by_name
  • Example#4254 - Exemple avec geoip_org_by_name
  • Example#4255 - Exemple avec geoip_record_by_name
  • Example#4256 - Exemple avec geoip_region_by_name
  • Example#4257 - Exemple avec geoip_region_name_by_code pour les USA et le Canada
  • Example#4258 - Exemple avec geoip_region_name_by_code en utilisant les codes FIPS
  • Example#4259 - Exemple avec geoip_setup_custom_directory
  • Example#4260 - Exemple avec geoip_time_zone_by_country_and_region pour les USA et Canada
  • Example#4261 - Exemple avec geoip_time_zone_by_country_and_region et les codes FIPS
  • Example#4262 - xor.data file
  • Example#4263 - Simple train
  • Example#4264 - Simple test
  • Example#4265 - Exemple avec fann_create_train_from_callback
  • Example#4266 - Exemple avec fann_read_train_from_file
  • Example#4267 - Exemple avec JsonSerializable::jsonSerialize retournant un tableau
  • Example#4268 - Exemple avec JsonSerializable::jsonSerialize retournant un tableau associatif
  • Example#4269 - Exemple avec JsonSerializable::jsonSerialize retournant un entier
  • Example#4270 - Exemple avec JsonSerializable::jsonSerialize retournant une chaîne de caractères
  • Example#4271 - Exemple avec json_decode
  • Example#4272 - Accès à des propriétés d'objet invalides
  • Example#4273 - Erreurs habituelles lors de l'utilisation de la fonction json_decode
  • Example#4274 - Erreurs avec le paramètre depth
  • Example#4275 - Exemple avec json_decode et de gros entiers
  • Example#4276 - Exemple avec json_encode
  • Example#4277 - Exemple avec json_encode montrant quelques options en action
  • Example#4278 - Exemple avec l'option JSON_NUMERIC_CHECK
  • Example#4279 - Exemple avec un tableau séquentiel et un tableau non-séquentiel
  • Example#4280 - Exemple avec l'option JSON_PRESERVE_ZERO_FRACTION
  • Example#4281 - Exemple avec json_last_error
  • Example#4282 - Exemple avec json_last_error et json_encode
  • Example#4283 - Example de tableau Judy
  • Example#4284 - Exemple avec Lua::assign
  • Example#4285 - Exemple avec Lua::call
  • Example#4286 - Exemple avec Lua::eval
  • Example#4287 - Exemple avec Lua::registerCallback
  • Example#4288 - Exemple avec LuaClosure::__invoke
  • Example#4289 - Exemple avec constant
  • Example#4290 - Définition d'une constante
  • Example#4291 - Vérifier la présence de constantes avec defined
  • Example#4292 - Exemple avec eval - concaténation de texte
  • Example#4293 - Exemple avec exit
  • Example#4294 - Exemple avec exit et un code d'erreur
  • Example#4295 - Exemple d'exécution des fonctions d'extinction et des destructeurs d'objets
  • Example#4296 - Exemple avec get_browser : liste des capacités du navigateur du client web
  • Example#4297 - Exemple avec __halt_compiler
  • Example#4298 - Exemple avec highlight_string
  • Example#4299 - Exemple avec ignore_user_abort
  • Example#4300 - Exemple avec pack
  • Example#4301 - Exemple avec php_strip_whitespace
  • Example#4302 - Exemple avec sleep
  • Example#4303 - Exemple avec sys_getloadavg
  • Example#4304 - Exemple avec time_nanosleep
  • Example#4305 - Exemple avec time_sleep_until
  • Example#4306 - Exemple avec uniqid
  • Example#4307 - Exemple avec unpack
  • Example#4308 - Exemple avec unpack et un argument de répétition
  • Example#4309 - Exemple avec unpack avec des clés non nommées
  • Example#4310 - Exemple avec usleep
  • Example#4311 - Exemple avec parsekit_compile_file
  • Example#4312 - Exemple avec parsekit_compile_string
  • Example#4313 - Exemple avec parsekit_func_arginfo
  • Example#4314 - Exemple avec SplDoublyLinkedList::__construct
  • Example#4315 - Exemple avec SplStack::__construct
  • Example#4316 - Exemple avec SplQueue::__construct
  • Example#4317 - Gestion des tâches avec SplQueue
  • Example#4318 - Exemple avec SplFixedArray
  • Example#4319 - Exemple avec SplFixedArray::__construct
  • Example#4320 - Exemple avec SplFixedArray::count
  • Example#4321 - Exemple avec SplFixedArray::fromArray
  • Example#4322 - Exemple avec SplFixedArray::getSize
  • Example#4323 - Exemple avec SplFixedArray::setSize
  • Example#4324 - Exemple avec SplFixedArray::toArray
  • Example#4325 - Exemple avec SplObjectStorage, sous forme d'ensemble d'objets
  • Example#4326 - Exemple avec SplObjectStorage, sous forme de carte
  • Example#4327 - Exemple avec SplObjectStorage::addAll
  • Example#4328 - Exemple avec SplObjectStorage::attach
  • Example#4329 - Exemple avec SplObjectStorage::contains
  • Example#4330 - Exemple avec SplObjectStorage::count
  • Example#4331 - Exemple avec SplObjectStorage::current
  • Example#4332 - Exemple avec SplObjectStorage::detach
  • Example#4333 - Exemple avec SplObjectStorage::getHash
  • Example#4334 - Exemple avec SplObjectStorage::getInfo
  • Example#4335 - Exemple avec SplObjectStorage::key
  • Example#4336 - Exemple avec SplObjectStorage::next
  • Example#4337 - Exemple avec SplObjectStorage::offsetExists
  • Example#4338 - Exemple avec SplObjectStorage::offsetGet
  • Example#4339 - Exemple avec SplObjectStorage::offsetSet
  • Example#4340 - Exemple avec SplObjectStorage::offsetUnset
  • Example#4341 - Exemple avec SplObjectStorage::removeAll
  • Example#4342 - Exemple avec SplObjectStorage::removeAllExcept
  • Example#4343 - Exemple avec SplObjectStorage::rewind
  • Example#4344 - Exemple avec SplObjectStorage::serialize
  • Example#4345 - Exemple avec SplObjectStorage::setInfo
  • Example#4346 - Exemple avec SplObjectStorage::unserialize
  • Example#4347 - Exemple avec SplObjectStorage::valid
  • Example#4348 - Exemple avec AppendIterator::append
  • Example#4349 - Itère un AppendIterator avec la structure foreach
  • Example#4350 - Itère un AppendIterator avec l'API AppendIterator
  • Example#4351 - Exemple avec AppendIterator::getInnerIterator
  • Example#4352 - Exemple avec AppendIterator.getIteratorIndex
  • Example#4353 - Exemple avec AppendIterator::key
  • Example#4354 - Exemple avec ArrayIterator::current
  • Example#4355 - Exemple avec ArrayIterator::key
  • Example#4356 - Exemple avec ArrayIterator::next
  • Example#4357 - Exemple avec ArrayIterator::rewind
  • Example#4358 - Exemple avec ArrayIterator::valid
  • Example#4359 - Exemple avec CachingIterator::getCache
  • Example#4360 - Arguments disponibles pour la fonction de rappel
  • Example#4361 - Exemples simples de fonction de rappel
  • Example#4362 - Exemple avec DirectoryIterator::__construct
  • Example#4363 - Exemple avec DirectoryIterator::current
  • Example#4364 - Exemple avec DirectoryIterator::getATime
  • Example#4365 - Exemple avec DirectoryIterator::getBasename
  • Example#4366 - Exemple avec DirectoryIterator::getCTime
  • Example#4367 - Exemple avec DirectoryIterator::getExtension
  • Example#4368 -
  • Example#4369 - Exemple avec DirectoryIterator::getFilename
  • Example#4370 - Exemple avec DirectoryIterator::getGroup
  • Example#4371 - Exemple avec sDirectoryIterator::getInode
  • Example#4372 - Exemple avec DirectoryIterator::getMTime
  • Example#4373 - Exemple avec DirectoryIterator::getOwner
  • Example#4374 - Exemple avec DirectoryIterator::getPath
  • Example#4375 - Exemple avec DirectoryIterator::getPathname
  • Example#4376 - Exemple avec DirectoryIterator::getPerms
  • Example#4377 - Exemple avec DirectoryIterator::getSize
  • Example#4378 - Exemple avec DirectoryIterator::getType
  • Example#4379 - Exemple avec DirectoryIterator::isDir
  • Example#4380 - Exemple avec DirectoryIterator::isDot
  • Example#4381 - Exemple avec DirectoryIterator::isExecutable
  • Example#4382 - Exemple avec DirectoryIterator::isFile
  • Example#4383 - Exemple avec DirectoryIterator::isLink
  • Example#4384 - Exemple avec DirectoryIterator::isReadable
  • Example#4385 - Exemple avec DirectoryIterator::isWritable
  • Example#4386 - Exemple avec DirectoryIterator::key
  • Example#4387 - Exemple avec DirectoryIterator::next
  • Example#4388 - Exemple avec DirectoryIterator::rewind
  • Example#4389 - Exemple avec DirectoryIterator::seek
  • Example#4390 - Exemple avec DirectoryIterator::__toString
  • Example#4391 - Exemple avec DirectoryIterator::valid
  • Example#4392 - Exemple avec FilesystemIterator::__construct
  • Example#4393 - Exemple avec FilesystemIterator::current
  • Example#4394 - Exemple avec FilesystemIterator::key
  • Example#4395 - Exemple avec FilesystemIterator::next
  • Example#4396 - Exemple avec FilesystemIterator::rewind
  • Example#4397 - Exemple avec FilesystemIterator::key
  • Example#4398 - Exemple avec FilterIterator::accept
  • Example#4399 - Exemple avec GlobIterator
  • Example#4400 - Exemple avec GlobIterator::count
  • Example#4401 - Exemple avec InfiniteIterator::__construct
  • Example#4402 - Exemple d'utilisation de LimitIterator
  • Example#4403 - Exemple LimitIterator::__construct
  • Example#4404 - Exemple LimitIterator::getPosition
  • Example#4405 - Itère un MultipleIterator
  • Example#4406 - Exemple avec NoRewindIterator::__construct
  • Example#4407 - Exemple avec NoRewindIterator::rewind
  • Example#4408 - Exemple avec RecursiveArrayIterator::getChildren
  • Example#4409 - Exemple avec RecursiveArrayIterator::hasChildren
  • Example#4410 - Arguments disponibles pour la fonction de rappel
  • Example#4411 - Exemple simple d'une fonction de rappel récursive
  • Example#4412 - Exemple avec RecursiveCallbackFilterIterator::hasChildren
  • Example#4413 - Exemple avec RecursiveDirectoryIterator
  • Example#4414 - Exemple avec RecursiveFilterIterator
  • Example#4415 - Exemple avec RecursiveFilterIterator
  • Example#4416 - Parcours d'un RecursiveIteratorIterator
  • Example#4417 - Exemple avec RecursiveRegexIterator::__construct
  • Example#4418 - Exemple avec RecursiveRegexIterator::getChildren
  • Example#4419 - Exemple avec RecursiveRegexIterator::hasChildren
  • Example#4420 - Exemple avec RegexIterator::accept
  • Example#4421 - Exemple avec RegexIterator::__construct
  • Example#4422 - Exemple avec RegexIterator::getFlags
  • Example#4423 - Exemple avec RegexIterator::getMode
  • Example#4424 - Exemple avec RegexIterator::getPregFlags
  • Example#4425 - Exemple avec RegexIterator::setFlags
  • Example#4426 - Exemple avec RegexIterator::setMode
  • Example#4427 - Exemple avec RegexIterator::setPregFlags
  • Example#4428 - Exemple avec Countable::count
  • Example#4429 - Utilisation simple
  • Example#4430 - Exemple avec SeekableIterator::seek
  • Example#4431 - Exemple avec class_implements
  • Example#4432 - Exemple avec class_parents
  • Example#4433 - Exemples pour class_uses
  • Example#4434 - Exemple avec iterator_apply
  • Example#4435 - Exemple avec iterator_count
  • Example#4436 - Exemple avec iterator_count qui modifie la position
  • Example#4437 - Exemple avec iterator_count dans une boucle foreach
  • Example#4438 - Exemple avec iterator_to_array
  • Example#4439 - Exemple avec spl_autoload_register comme remplacement d'une fonction __autoload
  • Example#4440 - Exemple avec spl_autoload_register où la classe n'est pas chargée
  • Example#4441 - Exemple avec spl_classes
  • Example#4442 - Exemple avec spl_object_hash
  • Example#4443 - Exemple avec SplFileInfo::__construct
  • Example#4444 - Exemple avec SplFileInfo::getBasename
  • Example#4445 - Exemple avec SplFileInfo::getCTime
  • Example#4446 - Exemple avec SplFileInfo::getExtension
  • Example#4447 -
  • Example#4448 - Exemple avec SplFileInfo::getFilename
  • Example#4449 - Exemple avec SplFileInfo::getGroup
  • Example#4450 - Exemple avec SplFileInfo::getLinkTarget
  • Example#4451 - Exemple avec SplFileInfo::getOwner
  • Example#4452 - Exemple avec SplFileInfo::getPath
  • Example#4453 - Exemple avec SplFileInfo::getPathInfo
  • Example#4454 - Exemple avec SplFileInfo::getPathname
  • Example#4455 - Exemple avec SplFileInfo::getPerms
  • Example#4456 - Exemple avec SplFileInfo::getRealPath
  • Example#4457 - Exemple avec SplFileInfo::getType
  • Example#4458 - Exemple avec SplFileInfo::isDir
  • Example#4459 - Exemple avec SplFileInfo::isExecutable
  • Example#4460 - Exemple avec SplFileInfo::isFile
  • Example#4461 - Exemple avec SplFileInfo::isLink
  • Example#4462 - Exemple avec SplFileInfo::isReadable
  • Example#4463 - Exemple avec SplFileInfo::openFile
  • Example#4464 - Exemple avec SplFileInfo::setFileClass
  • Example#4465 - Exemple avec SplFileInfo::setFileClass
  • Example#4466 - Exemple avec SplFileInfo::__toString
  • Example#4467 - Exemple avec SplFileObject::__construct
  • Example#4468 - Exemple avec SplFileObject::current
  • Example#4469 - Exemple avec SplFileObject::eof
  • Example#4470 - Exemple avec SplFileObject::fflush
  • Example#4471 - Exemple avec SplFileObject::fgetc
  • Example#4472 - Exemple avec SplFileObject::fgetcsv
  • Example#4473 - Exemple avec SplFileObject::READ_CSV
  • Example#4474 - Exemple avec SplFileObject::fgets
  • Example#4475 - Exemple avec SplFileObject::fgetss
  • Example#4476 - Exemple avec SplFileObject::flock
  • Example#4477 - Exemple avec SplFileObject::fpassthru
  • Example#4478 - Exemple avec SplFileObject::fputcsv
  • Example#4479 - Exemple avec SplFileObject::fread
  • Example#4480 - Exemple avec SplFileObject::fscanf
  • Example#4481 - Exemple avec SplFileObject::fseek
  • Example#4482 - Exemple avec SplFileObject::fstat
  • Example#4483 - Exemple avec SplFileObject::ftell
  • Example#4484 - Exemple avec SplFileObject::ftruncate
  • Example#4485 - Exemple avec SplFileObject::fwrite
  • Example#4486 - Exemple avec SplFileObject::getCsvControl
  • Example#4487 - Exemple avec SplFileObject::getFlags
  • Example#4488 - Exemple avec SplFileObject::getMaxLineLen
  • Example#4489 - Exemple avec SplFileObject::key
  • Example#4490 - Exemple avec SplFileObject::key et SplFileObject::setMaxLineLen
  • Example#4491 - Exemple avec SplFileObject::next
  • Example#4492 - Exemple avec SplFileObject::rewind
  • Example#4493 - Exemple avec SplFileObject::seek
  • Example#4494 - Exemple avec SplFileObject::setCsvControl
  • Example#4495 - Exemple avec SplFileObject::setFlags
  • Example#4496 - Exemple avec SplFileObject::setMaxLineLen
  • Example#4497 - Exemple avec SplFileObject::valid
  • Example#4498 - Exemple avec SplTempFileObject
  • Example#4499 - Exemple avec ArrayObject::append
  • Example#4500 - Exemple avec ArrayObject::asort
  • Example#4501 - Exemple avec ArrayObject::__construct
  • Example#4502 - Exemple avec ArrayObject::count
  • Example#4503 - Exemple avec ArrayObject::exchangeArray
  • Example#4504 - Exemple avec ArrayObject::getArrayCopy
  • Example#4505 - Exemple avec ArrayObject::getFlags
  • Example#4506 - Exemple avec ArrayObject::getIterator
  • Example#4507 - Exemple avec ArrayObject::getIteratorClass
  • Example#4508 - Exemple avec ArrayObject::ksort
  • Example#4509 - Exemple avec ArrayObject::natcasesort
  • Example#4510 - Exemple avec ArrayObject::natsort
  • Example#4511 - Exemple avec ArrayObject::offsetExists
  • Example#4512 - Exemple avec ArrayObject::offsetGet
  • Example#4513 - Exemple avec ArrayObject::offsetSet
  • Example#4514 - Exemple avec ArrayObject::offsetUnset
  • Example#4515 - Exemple avec ArrayObject::serialize
  • Example#4516 - Exemple avec ArrayObject::setFlags
  • Example#4517 - Exemple avec ArrayObject::setIteratorClass
  • Example#4518 - Exemple avec ArrayObject::uasort
  • Example#4519 - Exemple avec ArrayObject::uksort
  • Example#4520 - Exemple d'utilisation de la classe SplInt
  • Example#4521 - Exemple d'utilisation de la classe SplFloat
  • Example#4522 - Exemple d'utilisation de la classe SplEnum
  • Example#4523 - Exemple avec SplEnum::getConstList
  • Example#4524 - Exemple d'utilisation de la classe SplBool
  • Example#4525 - Exemple d'utilisation SplString
  • Example#4526 - Exemples avec file_get_contents
  • Example#4527 - Envoi d'une requête de type POST sur un serveur sécurisé
  • Example#4528 - Écrire des données dans un fichier compressé
  • Example#4529 - Un flux pour lire et écrire des variables globales
  • Example#4530 - Liste des fichiers d'une archive tar
  • Example#4531 - Exemple avec stream_bucket_prepend
  • Example#4532 - Exemple avec stream_context_create
  • Example#4533 - Exemple avec stream_context_get_default
  • Example#4534 - Exemple avec stream_context_get_options
  • Example#4535 - Exemple avec stream_context_get_params
  • Example#4536 - Exemple avec stream_context_set_default
  • Example#4537 - Exemple avec stream_copy_to_stream
  • Example#4538 - Contrôler l'application des filtres
  • Example#4539 - Filtre sur les lettres majuscules sur le flux foo-bar.txt
  • Example#4540 - Enregistrement d'une classe de filtre générique pour correspondre avec de multiples noms de filtres
  • Example#4541 - Refiltrage dynamique d'un flux
  • Example#4542 - Exemple avec stream_get_contents
  • Example#4543 - Exemple avec stream_get_filters
  • Example#4544 - Exemple avec stream_get_meta_data
  • Example#4545 - Exemple avec stream_get_transports
  • Example#4546 - Exemple avec stream_get_wrappers
  • Example#4547 - Vérification de l'existence d'un gestionnaire de flux
  • Example#4548 - Exemple avec stream_is_local
  • Example#4549 - Exemple avec stream_notification_callback
  • Example#4550 - Barre de progression simple pour un client de téléchargement en ligne de commande
  • Example#4551 - Exemple avec stream_resolve_include_path
  • Example#4552 - Exemple avec stream_select
  • Example#4553 - Exemple avec stream_set_timeout
  • Example#4554 - Exemple avec stream_set_write_buffer
  • Example#4555 - Exemple avec stream_socket_client
  • Example#4556 - Utilisation de connexions UDP
  • Example#4557 - Exemple avec stream_socket_enable_crypto
  • Example#4558 - Exemple avec stream_socket_pair
  • Example#4559 - Exemple avec stream_socket_recvfrom
  • Example#4560 - Exemple avec stream_socket_sendto
  • Example#4561 - Exemple avec stream_socket_server
  • Example#4562 - Utiliser un serveur de socket UDP
  • Example#4563 - Exemple avec stream_socket_shutdown
  • Example#4564 - Comment enregistrer un gestionnaire de flux
  • Example#4565 - Utilisation de base de Tidy
  • Example#4566 - Exemple avec tidy::getBody
  • Example#4567 - Exemple avec tidy::cleanrepair
  • Example#4568 - Exemple avec tidy::__construct
  • Example#4569 - Exemple avec tidy::diagnose
  • Example#4570 - Exemple avec tidy_get_error_buffer
  • Example#4571 - Exemple avec tidy::getConfig
  • Example#4572 - Exemple avec Tidy::getopt
  • Example#4573 - Affichage de toutes les options avec leur documentation et leur valeur par défaut
  • Example#4574 - Exemple avec tidy::getStatus
  • Example#4575 - Exemple avec tidy::head
  • Example#4576 - Exemple avec tidy::html
  • Example#4577 - Exemple avec tidy::parseFile
  • Example#4578 - Exemple avec tidy::parseString
  • Example#4579 - Exemple avec tidy::repairFile
  • Example#4580 - Exemple avec tidy::repairString
  • Example#4581 - Exemple avec tidy::root
  • Example#4582 - Exemple avec tidyNode::hasChildren
  • Example#4583 - Exemple avec tidyNode::hasChildren
  • Example#4584 - Exemple avec tidyNode::hasSiblings
  • Example#4585 - Extrait di code ASP depuis un document HTML mixte
  • Example#4586 - Extrait les commentais depuis un document HTML
  • Example#4587 - Extrait du code HTML depuis un document mixte
  • Example#4588 - Extrait du code JSTE depuis un document HTML
  • Example#4589 - Récupération de code PHP dans un document HTML
  • Example#4590 - Extrait du texte depuis un document HTML mixte
  • Example#4591 - Exemple avec ob_tidyhandler
  • Example#4592 - Exemple avec tidy_access_count
  • Example#4593 - Exemple avec tidy_config_count
  • Example#4594 - Exemple avec tidy_error_count
  • Example#4595 - Exemple avec tidy_get_output
  • Example#4596 - Exemple avec tidy_setopt
  • Example#4597 - Exemple avec tidy_warning_count
  • Example#4598 - Supprime les commentaires avec le tokenizer
  • Example#4599 - Exemple avec token_get_all
  • Example#4600 - Exemple d'utilisation incorrecte de la fonction token_get_all
  • Example#4601 - token_get_all dans une classe en utilisant un mot réservé
  • Example#4602 - Exemple avec token_name
  • Example#4603 - Exemple avec base64_decode
  • Example#4604 - Exemple avec base64_encode
  • Example#4605 - Exemple avec get_headers
  • Example#4606 - Exemple avec get_headers en utilisant HEAD
  • Example#4607 - Ce que la fonction get_meta_tags analyse
  • Example#4608 - Ce que la fonction get_meta_tags retourne
  • Example#4609 - Utilisation simple de http_build_query
  • Example#4610 - http_build_query avec tableau indexé
  • Example#4611 - http_build_query avec tableau complexe
  • Example#4612 - Utilisation de http_build_query avec un objet
  • Example#4613 - Exemple avec parse_url
  • Example#4614 - Exemple avec la fonction parse_url sans schéma
  • Example#4615 - Exemple avec rawurldecode
  • Example#4616 - Exemple avec rawurlencode
  • Example#4617 - Exemple avec rawurlencode
  • Example#4618 - Exemple avec urldecode
  • Example#4619 - Exemple avec urlencode
  • Example#4620 - Exemple avec urlencode et htmlentities
  • Example#4621 - Exécution d'un Javascript simple
  • Example#4622 - Exemples Yaml
  • Example#4623 - Exemple d'analyse de fonction de rappel
  • Example#4624 - Exemple d'émission des fonctions de rappel
  • Example#4625 - Exemple yaml_emit
  • Example#4626 - Exemple yaml_parse
  • Example#4627 - Une architecture classique d'une application
  • Example#4628 - Entry
  • Example#4629 - Règle de ré-écriture des requêtes
  • Example#4630 - Configuration de l'application
  • Example#4631 - Controlleur par défaut
  • Example#4632 - Template de rendu par défaut
  • Example#4633 - Exécution de l'application
  • Example#4634 - Exemple avec un tableau PHP
  • Example#4635 - Exemple avec un fichier ini
  • Example#4636 - Exemple avec A Bootstrap
  • Example#4637 - Exemple avec Yaf_Application::bootstrap
  • Example#4638 - Exemple avec Yaf_Application::clearLastError
  • Example#4639 - Un exemple de fichier de configuration au format ini
  • Example#4640 - Exemple avec Yaf_Application::__construct
  • Example#4641 - Exemple avec Yaf_Application::__construct
  • Example#4642 - Exemple avec Yaf_Application::environ
  • Example#4643 - Exemple avec Yaf_Application::execute
  • Example#4644 - Exemple avec Yaf_Application::getConfig
  • Example#4645 - Exemple avec Yaf_Application::getDispatcher
  • Example#4646 - Exemple avec Yaf_Application::getLastErrorMsg
  • Example#4647 - Exemple avec Yaf_Application::getLastErrorNo
  • Example#4648 - Exemple avec Yaf_Application::getModules
  • Example#4649 - Bootstrap example
  • Example#4650 - Exemple avec Yaf_Dispatcher::autoRender
  • Example#4651 - Exemple avec Yaf_Dispatcher::catchException
  • Example#4652 - Exemple avec Yaf_Dispatcher::registerPlugin
  • Example#4653 - Exemple avec Yaf_Dispatcher::setView
  • Example#4654 - Exemple avec Yaf_Dispatcher::setView
  • Example#4655 - Exemple avec Yaf_Dispatcher::throwexception
  • Example#4656 - Exemple avec Yaf_Dispatcher::throwexception
  • Example#4657 - Exemple avec Yaf_Config_Ini
  • Example#4658 - Définission d'une action dans un fichier séparé
  • Example#4659 - Dummy_action.php
  • Example#4660 - Exemple avec Yaf_Controller_Abstract::forward
  • Example#4661 - Exemple avec Yaf_Action_Abstract::execute
  • Example#4662 - Exemple avec Yaf_Action_Abstract::execute
  • Example#4663 - Exemple avec Yaf_View_Simple::assign
  • Example#4664 - Exemple avec template
  • Example#4665 - Exemple avec Yaf_View_Simple::assignRef
  • Example#4666 - Exemple avec template
  • Example#4667 - Exemple avec Yaf_View_Simple::clear
  • Example#4668 - Exemple avec Yaf_View_Simple::__constructor
  • Example#4669 - Exemple avec Yaf_View_Simple::__set
  • Example#4670 - Exemple de configuration
  • Example#4671 - Enregistrement de localnamespace
  • Example#4672 - Load class example
  • Example#4673 - Exemple de chargement de classe via des espaces de noms
  • Example#4674 - Exemple de chargement de classe MVC
  • Example#4675 - Distinctions d'une classe MVC
  • Example#4676 - Exemple de chargement MVC
  • Example#4677 - Exemple avec Yaf_Loader::registerLocalNamespace
  • Example#4678 - Exemple d'un plugin
  • Example#4679 - Exemple avec Yaf_Plugin_Abstract::routerShutdown
  • Example#4680 - Exemple avec Yaf_Response_Abstract::appendBody
  • Example#4681 - Exemple avec Yaf_Response_Abstract::getBody
  • Example#4682 - Exemple avec Yaf_Response_Abstract::prependBody
  • Example#4683 - Exemple avec Yaf_Response_Abstract::response
  • Example#4684 - Exemple avec Yaf_Response_Abstract::setBody
  • Example#4685 - Exemple avec Yaf_Route_Map::assemble
  • Example#4686 - Exemple avec Yaf_Route_Map
  • Example#4687 - Exemple avec Yaf_Route_Map
  • Example#4688 - Exemple avec Yaf_Route_Map
  • Example#4689 - Exemple avec Yaf_Route_Regex::assemble
  • Example#4690 - Exemple avec Yaf_Route_Regex
  • Example#4691 - Exemple avec Yaf_Route_Regex (depuis la version 2.3.0)
  • Example#4692 - Exemple avec Yaf_Route_Regex et la capture du nom (depuis 2.3.0)
  • Example#4693 - Exemple avec Yaf_Route_Regex
  • Example#4694 - Exemple avec Yaf_Route_Rewrite::assemble
  • Example#4695 - Exemple avec Yaf_Route_Rewrite
  • Example#4696 - Exemple avec Yaf_Route_Rewrite
  • Example#4697 - Exemple avec Yaf_Route_Rewrite (depuis 2.3.0)
  • Example#4698 - Règle de ré-écriture pour Apache
  • Example#4699 - Règle de ré-écriture pour Apache
  • Example#4700 - Règle de ré-écriture pour Lighttpd
  • Example#4701 - Règle de ré-écriture pour Nginx
  • Example#4702 - Exemple avec Yaf_Route_Static (route par défaut)
  • Example#4703 - Exemple avec application.ini
  • Example#4704 - Exemple avec Yaf_Dispatcher::autoConfig
  • Example#4705 - Exemple avec Yaf_Dispatcher::autoRender
  • Example#4706 - Enregistre quelques routes dans le Bootstrap
  • Example#4707 - plugin Dummy.php (sous le dossier application.directory/plugins)
  • Example#4708 - Exemple avec Yaf_Route_Simple::assemble
  • Example#4709 - Exemple avec Yaf_Route_Simple::route
  • Example#4710 - Exemple avec Yaf_Route_Simple::route
  • Example#4711 - Exemple avec Yaf_Route_Static::assemble
  • Example#4712 - Exemple avec Yaf_Route_Static::route
  • Example#4713 - Exemple avec Yaf_Route_Supervar::assemble
  • Example#4714 - Exemple avec Yaf_Route_Supervar
  • Example#4715 - Exemple avec Taint
  • Example#4716 - Création d'un fichier
  • Example#4717 - Chargement et affichage d'un fichier file
  • Example#4718 - Exemple avec chdb::get
  • Example#4719 - Exemple avec chdb_create
  • Example#4720 - Utilisation du module cURL pour récupérer la page d'accueil de example.com
  • Example#4721 - Initialise une session cURL et récupère une page web
  • Example#4722 - Copie d'une ressource cURL
  • Example#4723 - Exemple avec curl_errno
  • Example#4724 - Exemple avec curl_error
  • Example#4725 - Exemple avec curl_escape
  • Example#4726 - Récupère le contenu d'une page web
  • Example#4727 - Exemple avec curl_getinfo
  • Example#4728 - Initialiser une session cURL et récupérer une page web
  • Example#4729 - Exemple avec curl_multi_add_handle
  • Example#4730 - Exemple avec curl_multi_close
  • Example#4731 - Exemple avec curl_multi_exec
  • Example#4732 - Exemple avec curl_multi_info_read
  • Example#4733 - Exemple avec curl_multi_init
  • Example#4734 - Exemple avec curl_multi_strerror
  • Example#4735 - Exemple avec curl_reset
  • Example#4736 - Initialisation d'une nouvelle session cURL et récupération d'une page web
  • Example#4737 - Notre propre implémentation de la fonction curl_setopt_array
  • Example#4738 - Initialisation d'une nouvelle session CURL et recherche d'une page Web
  • Example#4739 - Télécharger un fichier sur un serveur
  • Example#4740 - Exempe avec curl_share_setopt
  • Example#4741 - Exemple avec curl_share_init
  • Example#4742 - Exemple avec curl_share_setopt
  • Example#4743 - Exemple avec curl_errno
  • Example#4744 - Exemple avec curl_escape
  • Example#4745 - Exemple avec curl_version
  • Example#4746 - Exemple avec CURLFile::__construct
  • Example#4747 - Client HTTP simple
  • Example#4748 - Client HTTP en utilisant une résolution DNS asynchrone
  • Example#4749 - Serveur d'affichage
  • Example#4750 - Serveur d'affichage SSL
  • Example#4751 - Gestionnaire de signal
  • Example#4752 - Utilisation d'une boucle libevent pour réaliser les requêtes de l'extension `eio'
  • Example#4753 - Divers
  • Example#4754 - Serveur HTTP simple
  • Example#4755 - Serveur HTTPS simple
  • Example#4756 - Connexion OpenSSL
  • Example#4757 - Exemple avec EventHttpConnection::makeRequest
  • Example#4758 - Ecoute d'une connexion en se basant sur un socket de domaine Unix
  • Example#4759 - Exemple de serveur SMTP
  • Example#4760 - Gestion d'un signal SIGTERM
  • Example#4761 - Exemple avec Event::addSignal
  • Example#4762 - Exemple avec Event::addTimer
  • Example#4763 - Exemple avec EventBase::getFeatures
  • Example#4764 - Exemple avec EventBase::getMethod
  • Example#4765 - Exemple avec EventBuffer::search
  • Example#4766 - Exemple avec EventBufferEvent::connect
  • Example#4767 - Connexion à un socket UNIX, lecture de la réponse depuis le serveur, et affichage dans une console
  • Example#4768 - Exemple avec EventBufferEvent::connectHost
  • Example#4769 - Fonction de rappel pour un événement de lecture sur le tampon
  • Example#4770 - Exemple avec EventBufferEvent::getOutput
  • Example#4771 - Exemple avec EventBufferEvent::sslError
  • Example#4772 - Exemple de serveur SMTP
  • Example#4773 - Exemple avec EventConfig::avoidMethod
  • Example#4774 - Exemple avec EventConfig::__construct
  • Example#4775 - Exemple avec EventConfig::requireFeatures
  • Example#4776 - Exemple avec EventHttp::accept
  • Example#4777 - Exemple avec EventHttp::addServerAlias
  • Example#4778 - Exemple avec EventHttp::bind
  • Example#4779 - Serveur HTTP simple
  • Example#4780 - Exemple avec EventHttp::setCallback
  • Example#4781 - Exemple avec EventHttp::setDefaultCallback
  • Example#4782 - Exemple avec EventHttpConnection::makeRequest
  • Example#4783 - Exemple avec EventHttpConnection::setCloseCallback
  • Example#4784 - Exemple avec EventHttpRequest::__construct
  • Example#4785 - Exemple avec EventHttpRequest::sendError
  • Example#4786 - Exemple avec EventListener::__construct
  • Example#4787 - Exemple avec EventSslContext::__construct
  • Example#4788 - Exemple avec FTP
  • Example#4789 - Exemple avec ftp_alloc
  • Example#4790 - Exemple avec ftp_cdup
  • Example#4791 - Exemple avec ftp_chdir
  • Example#4792 - Exemple avec ftp_chmod
  • Example#4793 - Exemple avec ftp_close
  • Example#4794 - Exemple avec ftp_connect
  • Example#4795 - Exemple avec ftp_delete
  • Example#4796 - Exemple avec ftp_exec
  • Example#4797 - Exemple avec ftp_fget
  • Example#4798 - Exemple avec ftp_fput
  • Example#4799 - Exemple avec ftp_get_option
  • Example#4800 - Exemple avec ftp_get
  • Example#4801 - Exemple avec ftp_login
  • Example#4802 - Exemple avec ftp_mdtm
  • Example#4803 - Exemple avec ftp_mkdir
  • Example#4804 - Exemple avec ftp_nb_continue
  • Example#4805 - Exemple avec ftp_nb_fget
  • Example#4806 - Exemple avec ftp_nb_fput
  • Example#4807 - Exemple avec ftp_nb_get
  • Example#4808 - Reprise d'un téléchargement avec ftp_nb_get
  • Example#4809 - Reprise d'un téléchargement à la position 100 dans un nouveau fichier avec ftp_nb_get
  • Example#4810 - Exemple avec ftp_nb_put
  • Example#4811 - Reprise d'un chargement avec ftp_nb_put
  • Example#4812 - Exemple avec ftp_nlist
  • Example#4813 - Exemple avec ftp_pasv
  • Example#4814 - Exemple avec ftp_put
  • Example#4815 - Exemple avec ftp_pwd
  • Example#4816 - Utilisation de ftp_raw pour s'identifier manuellement sur un serveur FTP
  • Example#4817 - Exemple avec ftp_rawlist
  • Example#4818 - Exemple avec ftp_rename
  • Example#4819 - Exemple avec ftp_rmdir
  • Example#4820 - Exemple avec ftp_set_option
  • Example#4821 - Envoi d'une commande SITE à un serveur FTP
  • Example#4822 - Exemple avec ftp_size
  • Example#4823 - Exemple avec ftp_ssl_connect
  • Example#4824 - Exemple avec ftp_systype
  • Example#4825 - Client et agen Gearman simple
  • Example#4826 - Client et agent Gearman simple, en arrière-plan
  • Example#4827 - Client et agent Gearman simple, avec la soumission de tâches
  • Example#4828 - Ajout de deux serveurs
  • Example#4829 - Ajout de deux serveurs
  • Example#4830 - Ajout de 2 tâches
  • Example#4831 - Ajout de 2 tâches en passant le contexte de l'application
  • Example#4832 - 2 tâches dont une en arrière-plan
  • Example#4833 - Une tâche de forte priorité en même temps que deux tâches normales
  • Example#4834 - Une tâche de faible priorité en même temps que deux tâches normales
  • Example#4835 - Surveiller l'accomplissement de plusieurs tâches de fond
  • Example#4836 - Soumission d'une seule tâche avec un retour immédiat
  • Example#4837 - Soumission d'un travail et récupération incrémentale du statut
  • Example#4838 - Soumet et surveille un travail en arrière-plan
  • Example#4839 - Soumission d'une tâche avec un retour immédiat
  • Example#4840 - Soumission d'une tâche et récupération incrémentale du statut
  • Example#4841 - Récupère le statut d'un travail dont l'exécution prend du temps
  • Example#4842 - Surveille le statut d'un travail en arrière-plan mettant du temps à s'exécuter
  • Example#4843 - Agent simple qui utilise des données de contexte de l'application
  • Example#4844 - Ajout de serveurs Gearman
  • Example#4845 - Ajout de 2 serveurs de travaux
  • Example#4846 - Exemple avec GearmanWorker::setId
  • Example#4847 - Un agent simple qui attend 5 secondes
  • Example#4848 - Exécution d'un agent en mode non bloquant
  • Example#4849 - Exemple avec GearmanWorker::work
  • Example#4850 - Affichage hypothétique depuis gopher://gopher.example.com/
  • Example#4851 - Exemple avec gopher_parsedir
  • Example#4852 - Recherche tous les périphériques et services UPnP.
  • Example#4853 - Implémentation d'un serveur lumineux
  • Example#4854 - Implémentation du client lumineux
  • Example#4855 - Crée un nouveau contexte UPnP et récupère l'adresse de l'hôte
  • Example#4856 - Crée un nouveau contexte UPnP et récupère le numéro du port
  • Example#4857 - Crée un nouveau contexte UPnP et définit le chemin de l'hôte
  • Example#4858 - Crée un nouveau contexte UPnP
  • Example#4859 - Crée un nouveau contexte UPnP et définit la fonction de rappel
  • Example#4860 - Crée un nouveau contexte UPnP et commence la recherche
  • Example#4861 - Création d'un nouveau contexte UPnP et commence la recherche
  • Example#4862 - Crée un nouveau contexte UPnP et récupère des informations sur le service du périphérique
  • Example#4863 - Crée un nouveau contexte UPnP et récupère les informations de service du périphérique
  • Example#4864 - Lit un objet Hyperwave et le vérifie
  • Example#4865 - Recherche avec LDAP
  • Example#4866 - Exemple complet avec identification LDAP
  • Example#4867 - Authentification avec LDAP
  • Example#4868 - Connexion anonyme à un serveur LDAP
  • Example#4869 - Exemple complet de vérification de mot de passe avec lDAP
  • Example#4870 - Exemple de connexion à un serveur LDAP
  • Example#4871 - Exemple de connexion à un serveur LDAP SSL
  • Example#4872 - Pagination LDAP
  • Example#4873 - Pagination LDAP
  • Example#4874 - Exemple avec ldap-count-entries
  • Example#4875 - Énumérer tous les messages d'erreur LDAP
  • Example#4876 - Générer et intercepter une erreur
  • Example#4877 - Affiche la liste des attributs d'une entrée
  • Example#4878 - Vérification de la version du protocole
  • Example#4879 - Liste toutes les valeurs de l'attribut "mail" d'une entrée
  • Example#4880 - Produit une liste de tous les services d'une société
  • Example#4881 - Ajout d'un numéro de téléphone à un contact
  • Example#4882 - Renomme un utilisateur
  • Example#4883 - Ajoute deux adresses emails à un utilisateur
  • Example#4884 - Modifie le mot de passe d'un utilisateur
  • Example#4885 - Modifie le mot de passe d'un utilisateur (Active Directory)
  • Example#4886 - Exemple avec ldap_parse_result
  • Example#4887 - Recherche LDAP
  • Example#4888 - Modification de la version du protocole
  • Example#4889 - Modification des contrôles du serveur
  • Example#4890 - Tri LDAP
  • Example#4891 - Exemple avec l'extension Memcache
  • Example#4892 - Utilisation de memcache comme gestionnaire de session
  • Example#4893 - Exemple avec Memcache::add
  • Example#4894 - Exemple avec Memcache::addServer
  • Example#4895 - Exemple avec Memcache::close
  • Example#4896 - Exemple avec Memcache::connect
  • Example#4897 - Exemple avec Memcache::decrement
  • Example#4898 - Exemple avec Memcache::delete
  • Example#4899 - Exemple avec Memcache::flush
  • Example#4900 - Exemple avec Memcache::get
  • Example#4901 - Exemple avec Memcache::getExtendedStats
  • Example#4902 - Exemple avec Memcache::getServerStatus
  • Example#4903 - Exemple avec Memcache::getVersion
  • Example#4904 - Exemple avec Memcache::increment
  • Example#4905 - Exemple avec Memcache::pconnect
  • Example#4906 - Exemple avec Memcache::replace
  • Example#4907 - Exemple avec Memcache::set
  • Example#4908 - Exemple avec Memcache::set
  • Example#4909 - Exemple avec Memcache::setCompressThreshold
  • Example#4910 - Exemple avec Memcache::setServerParams
  • Example#4911 - Exemple de fonction de rappel de résultats
  • Example#4912 - Fonctions de rappel sur clé absente
  • Example#4913 - Exemple avec Memcached::addServer
  • Example#4914 - Exemple avec Memcached::addServers
  • Example#4915 - Exemple avec Memcached::append
  • Example#4916 - Exemple avec Memcached::cas
  • Example#4917 - Création d'un objet Memcached
  • Example#4918 - Exemple avec Memcached::decrement
  • Example#4919 - Exemple avec Memcached::delete
  • Example#4920 - Exemple avec Memcached::fetch
  • Example#4921 - Exemple avec Memcached::fetchAll
  • Example#4922 - Exemple avec Memcached::flush
  • Example#4923 - Exemple avec Memcached::get 1
  • Example#4924 - Exemple avec Memcached::get 2
  • Example#4925 - Exemple avec Memcached::getDelayed
  • Example#4926 - Exemple avec Memcached::getMulti
  • Example#4927 - Exemple avec Memcached::GET_PRESERVE_ORDER
  • Example#4928 - Lecture des options Memcached
  • Example#4929 - Exemple avec Memcached::getResultCode
  • Example#4930 - Exemple avec Memcached::getResultMessage
  • Example#4931 - Exemple avec Memcached::getServerByKey
  • Example#4932 - Exemple avec Memcached::getResultCode
  • Example#4933 - Exemple avec Memcached::getStats
  • Example#4934 - Exemple avec Memcached::getVersion
  • Example#4935 - Exemple avec Memcached::getResultCode
  • Example#4936 - Exemple avec Memcached::prepend
  • Example#4937 - Exemple avec Memcached::set
  • Example#4938 - Exemple avec Memcached::setByKey
  • Example#4939 - Exemple avec Memcached::setMulti
  • Example#4940 - Configuration d'une option Memcached
  • Example#4941 - Définit des options Memcache
  • Example#4942 - Exemple avec mqseries_back
  • Example#4943 - Exemple avec mqseries_begin
  • Example#4944 - Exemple avec mqseries_close
  • Example#4945 - Exemple avec mqseries_cmit
  • Example#4946 - Exemple avec mqseries_conn
  • Example#4947 - Exemple avec mqseries_connx
  • Example#4948 - Exemple avec mqseries_connx en utilisant une connexion SSL et une URL OCSP Responder
  • Example#4949 - Exemple avec mqseries_disc
  • Example#4950 - Exemple avec mqseries_get
  • Example#4951 - Exemple avec mqseries_inq
  • Example#4952 - Exemple avec mqseries_open
  • Example#4953 - Exemple avec mqseries_put
  • Example#4954 - Exemple avec mqseries_strerror
  • Example#4955 - Exemple avec define_syslog_variables
  • Example#4956 - Exemple avec dns_get_record
  • Example#4957 - Exemple avec dns_get_record et DNS_ANY
  • Example#4958 - Exemple avec fsockopen
  • Example#4959 - Utilisation d'une connexion UDP
  • Example#4960 - Exemple avec gethostbyaddr
  • Example#4961 - Exemple avec gethostbyname
  • Example#4962 - Exemple avec gethostbynamel
  • Example#4963 - Exemple avec gethostname
  • Example#4964 - Exemple avec getprotobyname
  • Example#4965 - Exemple avec getservbyname
  • Example#4966 - Exemple avec header_register_callback
  • Example#4967 - Supprimer un en-tête HTTP avec header_remove
  • Example#4968 - Supprimer tous les en-têtes HTTP avec header_remove
  • Example#4969 - Boîte de téléchargement
  • Example#4970 - Directives concernant la mise en cache
  • Example#4971 - Exemple avec headers_list
  • Example#4972 - Exemple avec headers_sent
  • Example#4973 - Exemples avec http_response_code
  • Example#4974 - Exemple avec inet_ntop
  • Example#4975 - Exemple avec inet_pton
  • Example#4976 - Exemple avec ip2long
  • Example#4977 - Affichage d'une adresse IP
  • Example#4978 - Exemple d'envoi d'un cookie avec setcookie
  • Example#4979 - Exemple d'effacement d'un cookie avec setcookie
  • Example#4980 - setcookie et les tableaux
  • Example#4981 - Exemple avec syslog
  • Example#4982 - Utilisation procédurale de rrd
  • Example#4983 - Utilisation orientée objet de rrd
  • Example#4984 - Exemple avec RRDGraph::setOptions
  • Example#4985 - Défini plusieurs options de couleur
  • Example#4986 - Exemple avec RRDUpdater::update
  • Example#4987 - Création d'une connexion et connexion à un serveur de messagerie distant WebSphere MQSeries
  • Example#4988 - Création d'une connexion et connexion à un serveur distant WebSphere Application
  • Example#4989 - Création d'un connexion et connexion à un serveur MQTT
  • Example#4990 - Création d'un message avec un corps texte simple
  • Example#4991 - Définition d'une propriété de formatage de texte en utilisant la syntaxe par défaut
  • Example#4992 - Définition d'une propriété en spécifiant le type
  • Example#4993 - Récupération d'une propriété depuis l'en-tête d'un message
  • Example#4994 - Ajout d'un message à la file d'attente et réception de la réponse
  • Example#4995 - Création d'une souscription durable à un sujet
  • Example#4996 - Souscription à un sujet en utilisant un serveur WebSphere Platform Messaging (WPM)
  • Example#4997 - Réception des données publiées en utilisant une souscription durable
  • Example#4998 - Effacement d'une souscription durable à un sujet
  • Example#4999 - Gestion d'une erreur depuis une méthode qui ne retourne aucun résultat
  • Example#5000 - Gestion d'une erreur depuis une méthode qui retourne un résultat
  • Example#5001 - Validation du travail courant
  • Example#5002 - Création d'une connexion à un serveur de messagerie en utilisant le protocole IBM MQSeries (WMQ)
  • Example#5003 - Création d'une connexion avec contrôle des transactions, hôte par défaut et valeur du port de communication
  • Example#5004 - Création d'une connexion à un serveur de messagerie en utilisant le protocole IBM WebSphere Platform Messaging (WPM)
  • Example#5005 - Création d'un nouvel objet de connexion SAM et une connexion à un serveur de messagerie
  • Example#5006 - Déconnexion d'un serveur de messagerie
  • Example#5007 - Exemple d'utilisation du numéro et de la description de l'erreur
  • Example#5008 - Exemple d'utilisation du numéro et de la description d'une erreur
  • Example#5009 - Vérifie si la connexion est établie à un serveur de messagerie
  • Example#5010 - Récupération du prochain message depuis la file d'attente sans l'effacer
  • Example#5011 - Récupération d'un message spécifique depuis la file d'attente sans l'effacer
  • Example#5012 - Récupération de tous les messages d'une file d'attente sans les effacer
  • Example#5013 - Récupération de tous les messages d'une file d'attente correspondant à un identifiant de corrélation
  • Example#5014 - Réception d'un message depuis la file d'attente
  • Example#5015 - Réception d'un message depuis la file d'attente avec des options
  • Example#5016 - Réception d'un message depuis une souscription
  • Example#5017 - Effacement d'un message depuis la file d'attente en utilisant un identifiant de message
  • Example#5018 - Annulation d'un travail
  • Example#5019 - Envoi d'un message à une file d'attente
  • Example#5020 - Publication d'un message sur un sujet
  • Example#5021 - Envoi une demande et réceptionne la réponse
  • Example#5022 - Activation de l'affichage de déboguage
  • Example#5023 - Désactivation de l'affichage de déboguage
  • Example#5024 - Souscription à un sujet
  • Example#5025 - Efface une souscription
  • Example#5026 - Définition d'un texte dans le corps d'un message
  • Example#5027 - Création d'un message
  • Example#5028 - Création d'un message avec un texte simple
  • Example#5029 - Définition d'une propriété au format texte en utilisant la syntaxe par défaut
  • Example#5030 - Définition d'une propriété au format texte en utilisant un type
  • Example#5031 - Définition des propriétés en tant d'expéditeur d'un message
  • Example#5032 - Récupération d'une valeurs depuis un message
  • Example#5033 - Exemple avec snmp_get_quick_print
  • Example#5034 - Exemple avec snmp_get_valueretrieval
  • Example#5035 - Exemple avec snmp_read_mib
  • Example#5036 - Exemple avec snmp_set_enum_print
  • Example#5037 - Exemple avec snmprealwalk
  • Example#5038 - Exemple avec snmp_set_quick_print
  • Example#5039 - Exemple avec snmp_set_valueretrieval
  • Example#5040 - Exemple avec snmp2_get
  • Example#5041 - Exemple avec snmp2_get_next
  • Example#5042 - Exemple avec snmp2_real_walk
  • Example#5043 - Exemple avec snmp2_set
  • Example#5044 - Exemple avec snmp2_set pour configurer l'identifiant de l'objet SNMP BITS
  • Example#5045 - Exemple avec snm2_pwalk
  • Example#5046 - Exemple avec snmp3_get
  • Example#5047 - Exemple avec snmp3_getnext
  • Example#5048 - Exemple avec snmp3_real_walk
  • Example#5049 - Exemple avec snmp3_set
  • Example#5050 - Exemple avec snmp3_set pour configurer l'identifiant de l'objet SNMP BITS
  • Example#5051 - Exemple avec snmp3_walk
  • Example#5052 - Exemple avec snmpget
  • Example#5053 - Exemple avec snmpgetnext
  • Example#5054 - Exemple avec snmprealwalk
  • Example#5055 - Exemple avec snmpset
  • Example#5056 - Exemple avec snmpset pour configurer l'identifiant de l'objet SNMP BITS
  • Example#5057 - Exemple avec snmpwalk
  • Example#5058 - Exemple avec snmpwalkoid
  • Example#5059 - Exemple avec SNMP::close
  • Example#5060 - Récupération de sysLocation
  • Example#5061 - Un seul objet SNMP
  • Example#5062 - Plusieurs objets SNMP
  • Example#5063 - SNMP::getErrno example
  • Example#5064 - Exemple avec SNMP::getError
  • Example#5065 - Un seul objet SNMP
  • Example#5066 - Plusieurs objets SNMP
  • Example#5067 - Définit un seul identifiant d'objet SNMP
  • Example#5068 - Définit plusieurs valeurs en utilisant un seul appel à la méthode SNMP::set call
  • Example#5069 - Exemple avec SNMP::set pour configurer l'identifiant d'objet SNMP BITS
  • Example#5070 - Exemple avec SNMP::setSecurity
  • Example#5071 - Exemple avec SNMP::walk
  • Example#5072 - Exemple avec la paramètre suffix_as_key
  • Example#5073 - Exemple de socket : serveur TCP/IP simple
  • Example#5074 - Exemple avec les sockets : client TCP/IP simple
  • Example#5075 - Utilisation de socket_bind pour définir l'adresse de la source
  • Example#5076 - Exemple avec socket_create_pair
  • Example#5077 - Exemple IPC avec socket_create_pair
  • Example#5078 - Exemple avec socket_get_option
  • Example#5079 - Exemple avec socket_import_stream
  • Example#5080 - Exemple avec socket_last_error
  • Example#5081 - Exemples avec socket_recv
  • Example#5082 - Exemple avec socket_recvfrom
  • Example#5083 - Passer NULL à socket_select
  • Example#5084 - Analyser le résultat de socket_select
  • Example#5085 - Exemple avec socket_select
  • Example#5086 - Exemple avec socket_sendto
  • Example#5087 - Exemple avec socket_set_block
  • Example#5088 - Exemple avec socket_set_nonblock
  • Example#5089 - Exemple avec socket_set_option
  • Example#5090 - Exemple avec socket_strerror
  • Example#5091 - Authentification en utilisant un agent ssh
  • Example#5092 - Identification en utilisant une clé d'hôte publique
  • Example#5093 - Récupération de la liste des méthodes d'identification
  • Example#5094 - Identification avec un mot de passe
  • Example#5095 - Identification en utilisant une clé publique
  • Example#5096 - Exemple avec ssh2_connect
  • Example#5097 - Exécution d'une commande
  • Example#5098 - Ouverture d'un shell et récupération du flux stderr qui lui est associé
  • Example#5099 - Comparaison d'une empreinte à une valeur connue
  • Example#5100 - Détermine quelles méthodes ont été négociées
  • Example#5101 - Ajout d'une clé publique avec ssh2_publickey_add
  • Example#5102 - Liste des clés autorisées avec ssh2_publickey_list
  • Example#5103 - Téléchargement d'un fichier via SCP
  • Example#5104 - Chargement d'un fichier via SCP
  • Example#5105 - Création d'un dossier sur un serveur distant
  • Example#5106 - Statue un lien symbolique via SFTP
  • Example#5107 - Création d'un dossier sur un serveur distant
  • Example#5108 - Lecture d'un lien symbolique
  • Example#5109 - Résoudre un nom de chemin
  • Example#5110 - Renommer un fichier via sftp
  • Example#5111 - Effacement d'un dossier sur un serveur distant
  • Example#5112 - Statut d'un fichier via SFTP
  • Example#5113 - Création d'un lien symbolique
  • Example#5114 - Effacement d'un fichier
  • Example#5115 - Ouverture d'un fichier via SFTP
  • Example#5116 - Exécution d'une commande
  • Example#5117 - Ouverture d'un tunnel sur un hôte arbitraire
  • Example#5118 - Style orienté objet
  • Example#5119 - Style procédural
  • Example#5120 - Exemple avec stomp_connect_error
  • Example#5121 - Exemple avec stomp_version
  • Example#5122 - Style orienté objet
  • Example#5123 - Style procédural
  • Example#5124 - Style orienté objet
  • Example#5125 - Style procédural
  • Example#5126 - Style orienté objet
  • Example#5127 - Style procédural
  • Example#5128 - Style orienté objet
  • Example#5129 - Style procédural
  • Example#5130 - Style orienté objet
  • Example#5131 - Style procédural
  • Example#5132 - Style orienté objet
  • Example#5133 - Style procédural
  • Example#5134 - Style orienté objet
  • Example#5135 - Style procédural
  • Example#5136 - Style orienté objet
  • Example#5137 - Style procédural
  • Example#5138 - Style orienté objet
  • Example#5139 - Style procédural
  • Example#5140 - Entraînement depuis un tableau
  • Example#5141 - Entraînement depuis un fichier
  • Example#5142 - Exemple avec svn_add
  • Example#5143 - Exemple d'identification
  • Example#5144 - Exemple d'utilisation de svn_blame
  • Example#5145 - Exemple d'utilisation
  • Example#5146 - Exemple d'utilisation
  • Example#5147 - Exemple d'utilisation
  • Example#5148 - Exemple d'utilisation
  • Example#5149 - Exemple d'utilisation
  • Example#5150 - Exemple d'utilisation
  • Example#5151 - Comparaison de deux révisions d'un chemin du référentiel
  • Example#5152 - Comparaison, plus portable, de deux fichiers locaux
  • Example#5153 - Exemple d'utilisation de svn_export
  • Example#5154 - Exemple d'utilisation
  • Example#5155 - Exemple avec svn_log
  • Example#5156 - Exemple avec svn_ls
  • Example#5157 - Exemple d'utilisation
  • Example#5158 - Exemple d'utilisation
  • Example#5159 - Refuser toutes les connexions depuis localhost
  • Example#5160 - Bannir une URL
  • Example#5161 - Récupération de statistiques
  • Example#5162 - Lecture des logs Varnish depuis la mémoire partagée
  • Example#5163 - Exemple avec VarnishAdmin::__construct
  • Example#5164 - Recherche parallèle en utilisant Yaz
  • Example#5165 - Configuration CCL
  • Example#5166 - Analyse CCL
  • Example#5167 - Mise à Jour d'Enregistrements
  • Example#5168 - Tableau pour des enregistrements GRS-1
  • Example#5169 - Travail avec MARCXML
  • Example#5170 - Fonction PHP qui analyse les titres sur un serveur YAZ
  • Example#5171 - Exemples de Requête
  • Example#5172 - Critères de Tri
  • Example#5173 - Exemple avec yp_err_string
  • Example#5174 - Exemple avec yp_first
  • Example#5175 - Exemple avec le domaine par défaut
  • Example#5176 - Exemple pour un maître NIS
  • Example#5177 - Exemple avec yp_match
  • Example#5178 - Exemple avec yp_next
  • Example#5179 - Exemple avec yp_order
  • Example#5180 - Exemple avec ZMQContext
  • Example#5181 - Exemple avec ZMQContext
  • Example#5182 - Exemple avec ZMQContext
  • Example#5183 - Exemple avec ZMQSocket
  • Example#5184 - Un exemple d'envoi/réception
  • Example#5185 - Exemple avec ZMQPoll
  • Example#5186 - Zookeeper::addAuth example
  • Example#5187 - Zookeeper::create example
  • Example#5188 - Zookeeper::delete example
  • Example#5189 - Zookeeper::exists example
  • Example#5190 - Zookeeper::get example
  • Example#5191 - Zookeeper::getAcl example
  • Example#5192 - Zookeeper::set example
  • Example#5193 - Zookeeper::setAcl example
  • Example#5194 - Zookeeper::setDebugLevel example
  • Example#5195 -
  • Example#5196 - Exemple avec udm_api_version
  • Example#5197 - Exemple avec udm_cat_list
  • Example#5198 - Spécifier une catégorie avec un format hiérarchisé : '> Root > Sport > Auto > Ferrari'
  • Example#5199 - Exemple avec udm_load_ispell_data
  • Example#5200 - Exemple avec udm_load_ispell_data
  • Example#5201 - Exemple avec solr_get_version
  • Example#5202 - Contenu du fichier BootStrap
  • Example#5203 - Ajout d'un document à l'index
  • Example#5204 - Fusion d'un document dans un autre
  • Example#5205 - Recherche de documents - réponses sous la forme d'un objet SolrObject
  • Example#5206 - Recherche de documents - réponses sous la forme d'un objet SolrDocument
  • Example#5207 - Exemple simple avec TermsComponent
  • Example#5208 - Exemple simple avec TermsComponent en utilisant un préfixe
  • Example#5209 - Exemple simple avec TermsComponent en spécifiant une fréquence minimale
  • Example#5210 - Exemple simple avec Facet
  • Example#5211 - Exemple simple avec Facet et un champ optionnel d'écrasement pour mincount
  • Example#5212 - Exemple avec les Facet
  • Example#5213 - Connexion à un serveur SSL
  • Example#5214 - Exemple avec SolrQuery
  • Example#5215 - SolrInputDocument::addChildDocument example
  • Example#5216 - SolrInputDocument::addChildDocuments example
  • Example#5217 - Exemple avec SolrDocument::toArray
  • Example#5218 - Exemple avec SolrObject::__construct
  • Example#5219 - Exemple avec SolrObject::offsetUnset
  • Example#5220 - Exemple avec SolrClient::addDocument example
  • Example#5221 - Exemple 2 avec SolrClient::addDocument
  • Example#5222 - Exemple avec SolrClient::addDocuments
  • Example#5223 - Exemple avec SolrClient::__construct
  • Example#5224 - Exemple avec SolrQuery::deleteByQuery
  • Example#5225 - SolrClient::getById example
  • Example#5226 - SolrClient::getByIds example
  • Example#5227 - Exemple avec SolrClient::ping
  • Example#5228 - Exemple avec SolrClient::query
  • Example#5229 - Exemple avec SolrClient::request
  • Example#5230 - Exemple avec SolrClient::setResponseWriter
  • Example#5231 - Exemple avec SolrParams::setParam
  • Example#5232 - Exemple avec SolrQuery::addFacetField
  • Example#5233 - Exemple avec SolrQuery::addFacetField
  • Example#5234 - Exemple avec SolrQuery::addFilterQuery
  • Example#5235 - SolrQuery::addGroupSortField example
  • Example#5236 - SolrQuery::collapse example
  • Example#5237 - SolrQuery::setExpand example
  • Example#5238 - SolrDisMaxQuery::addBigramPhraseField example
  • Example#5239 - SolrDisMaxQuery::addBoostQuery example
  • Example#5240 - SolrDisMaxQuery::addPhraseField example
  • Example#5241 - SolrDisMaxQuery::addQueryField example
  • Example#5242 - SolrDisMaxQuery::addTrigramPhraseField example
  • Example#5243 - SolrDisMaxQuery::addUserField example
  • Example#5244 - SolrDisMaxQuery::__construct example
  • Example#5245 - SolrDisMaxQuery::removeBigramPhraseField example
  • Example#5246 - SolrDisMaxQuery::removeBoostQuery example
  • Example#5247 - SolrDisMaxQuery::removePhraseField example
  • Example#5248 - SolrDisMaxQuery::removeQueryField example
  • Example#5249 - SolrDisMaxQuery::removeTrigramPhraseField example
  • Example#5250 - SolrDisMaxQuery::removeUserField example
  • Example#5251 - SolrDisMaxQuery::setBigramPhraseFields example
  • Example#5252 - SolrDisMaxQuery::setBigramPhraseSlop example
  • Example#5253 - SolrDisMaxQuery::setBoostFunction example
  • Example#5254 - SolrDisMaxQuery::setBoostQuery example
  • Example#5255 - SolrDisMaxQuery::setMinimumMatch example
  • Example#5256 - SolrDisMaxQuery::setPhraseFields example
  • Example#5257 - SolrDisMaxQuery::setPhraseSlop example
  • Example#5258 - SolrDisMaxQuery::setQueryAlt example
  • Example#5259 - SolrDisMaxQuery::setQueryPhraseSlop example
  • Example#5260 - SolrDisMaxQuery::setTieBreaker example
  • Example#5261 - SolrDisMaxQuery::setTrigramPhraseFields example
  • Example#5262 - SolrDisMaxQuery::setTrigramPhraseSlop example
  • Example#5263 - SolrDisMaxQuery::setUserFields example
  • Example#5264 - SolrDisMaxQuery::useDisMaxQueryParser example
  • Example#5265 - SolrDisMaxQuery::useEDisMaxQueryParser example
  • Example#5266 - SolrCollapseFunction::__construct example
  • Example#5267 - SolrCollapseFunction::setHint example
  • Example#5268 - SolrCollapseFunction::setMax example
  • Example#5269 - Exemple simple
  • Example#5270 - Requête de recherche simple
  • Example#5271 - Exemple avec Swish::__construct
  • Example#5272 - Exemple simple avec Swish->getMetaList
  • Example#5273 - Exemple simple avec Swish->getPropertyList
  • Example#5274 - Exemple simple avec Swish->prepare
  • Example#5275 - Exemple simple avec Swish->query
  • Example#5276 - Exemple simple avec SwishResult->stem
  • Example#5277 - Exemple simple avec SwishResults::getParsedWords
  • Example#5278 - Exemple simple avec SwishResults::nextResult
  • Example#5279 - Exemple simple avec SwishResults::seekResult
  • Example#5280 - Exemple simple avec SwishSearch::execute
  • Example#5281 - Exemple simple avec SwishSearch::resetLimit
  • Example#5282 - Exemple avec SwishSearch::setLimit
  • Example#5283 - Exemple simple avec SwishSearch::setPhraseDelimiter
  • Example#5284 - Exemple simple avec SwishSearch::setSort
  • Example#5285 - Exemple simple avec SwishSearch::setStructure
  • Example#5286 - Désactiver l'analyse des fichiers PHP dans un dossier avec .htaccess
  • Example#5287 - Exemple avec apache_get_modules
  • Example#5288 - Exemple avec apache_get_version
  • Example#5289 - Exemple avec apache_getenv
  • Example#5290 - Exemple avec apache_lookup_uri
  • Example#5291 - Passage d'informations entre PHP et Perl
  • Example#5292 - Valeurs d'identification dans le fichier access.log
  • Example#5293 - Exemple avec apache_request_headers
  • Example#5294 - Exemple avec apache_response_headers
  • Example#5295 - Exemple avec apache_setenv
  • Example#5296 - Exemple avec getallheaders
  • Example#5297 - Exemple avec nsapi_request_headers
  • Example#5298 - Enregistrer une variable avec $_SESSION.
  • Example#5299 - Retirer une variable de session avec la superglobale $_SESSION.
  • Example#5300 - Compter le nombre de passages d'un utilisateur sur une page
  • Example#5301 - Exemple
  • Example#5302 - Exemple avec session_cache_expire
  • Example#5303 - Exemple avec session_cache_limiter
  • Example#5304 - session_create_id example with session_regenerate_id
  • Example#5305 - Destruction d'une session avec $_SESSION
  • Example#5306 - session_gc example for task managers like cron
  • Example#5307 - session_gc example for user accessible script
  • Example#5308 - Exemple avec session_name
  • Example#5309 - Exemple avec session_regenerate_id
  • Example#5310 - Gestionnaire de session personnalisé : voir le code complet dans la documentation sur l'interface SessionHandlerInterface.
  • Example#5311 - Gestionnaire de sauvegarde de session personnalisé en utilisant des objets
  • Example#5312 - Création d'une session : page1.php
  • Example#5313 - Récupération de la session : page2.php
  • Example#5314 - Utilisation de la classe SessionHandler pour ajouter un cryptage aux gestionnaires de sauvegarde interne de PHP.
  • Example#5315 - Exemple avec SessionHandlerInterface
  • Example#5316 - Exemple avec bbcode_add_smiley
  • Example#5317 - Exemple avec bbcode_create
  • Example#5318 - Exemple avec bbcode_set_arg_parser
  • Example#5319 - Exemple avec bbcode_set_flags
  • Example#5320 - Exemples de masques valides
  • Example#5321 - Exemples de masques invalides
  • Example#5322 - Exemple de comparaison de preg_filter avec preg_replace
  • Example#5323 - Exemple avec preg_grep
  • Example#5324 - Exemple avec preg_last_error
  • Example#5325 - Extraction de tous les numéros de téléphone d'un texte
  • Example#5326 - Recherche les couples de balises HTML (gourmand)
  • Example#5327 - Utilisation d'un sous-masque nommé
  • Example#5328 - Trouve la chaîne "php"
  • Example#5329 - Trouve le mot "web"
  • Example#5330 - Lire un nom de domaine dans une URL
  • Example#5331 - Utilisation des sous-masques nommés
  • Example#5332 - Exemple avec preg_quote
  • Example#5333 - Mise en italique d'un mot dans un texte
  • Example#5334 - preg_replace_callback_array example
  • Example#5335 - preg_replace_callback et fonction anonyme
  • Example#5336 - Exemple avec preg_replace_callback
  • Example#5337 - Exemple avec preg_replace_callback en utilisant une structure récursive pour gérer du BB code
  • Example#5338 - Utilisation des références arrières avec des littéraux numériques
  • Example#5339 - Utilisation de tableaux indexé avec preg_replace
  • Example#5340 - Remplacement de plusieurs valeurs simultanément
  • Example#5341 - Suppression des espaces
  • Example#5342 - Utilisation du paramètre count
  • Example#5343 - Exemple avec preg_split : Éclatement d'une chaîne de recherche
  • Example#5344 - Scinder une chaîne en caractères
  • Example#5345 - Scinde une chaîne et capture les positions
  • Example#5346 - Exemples d'expressions rationnelles
  • Example#5347 - Exemple avec ereg_replace
  • Example#5348 - Exemple avec ereg_replace
  • Example#5349 - Remplacer les URL par des liens cliquables
  • Example#5350 - Exemple avec ereg
  • Example#5351 - Mise en évidence des résultats de la recherche
  • Example#5352 - Exemple avec eregi
  • Example#5353 - Exemple avec split
  • Example#5354 - Exemple avec split
  • Example#5355 - Exemple avec spliti
  • Example#5356 - Exemple avec sql_regcase
  • Example#5357 - Exemple avec addcslashes
  • Example#5358 - Exemple avec addslashes
  • Example#5359 - Exemple avec chr
  • Example#5360 - Comportement de débordement
  • Example#5361 - Exemple avec chunk_split
  • Example#5362 - Exemple avec convert_uudecode
  • Example#5363 - Exemple avec convert_uuencode
  • Example#5364 - Exemple avec count_chars
  • Example#5365 - Afficher une somme de contrôle CRC32
  • Example#5366 - Exemple avec crypt
  • Example#5367 - Utilisation de crypt avec htpasswd
  • Example#5368 - Utilisation de crypt avec différents types de chiffrement
  • Example#5369 - Exemple avec echo
  • Example#5370 - Exemple avec explode
  • Example#5371 - Exemple de valeurs retournées par la fonction explode
  • Example#5372 - Exemple avec explode et le paramètre limit
  • Example#5373 - fprintf : Entiers avec zéros initiaux
  • Example#5374 - fprintf : Format monétaire
  • Example#5375 - Exemple avec la table de traduction des caractères en entités HTML
  • Example#5376 - Exemple avec hex2bin
  • Example#5377 - Décoder des entités HTML
  • Example#5378 - Exemple avec htmlentities
  • Example#5379 - Utilisation de ENT_IGNORE
  • Example#5380 - Exemple avec htmlspecialchars_decode
  • Example#5381 - Exemple avec htmlspecialchars
  • Example#5382 - Exemple avec implode
  • Example#5383 - Exemple avec lcfirst
  • Example#5384 - Exemple avec levenshtein
  • Example#5385 - Exemple avec localeconv
  • Example#5386 - Exemple avec ltrim
  • Example#5387 - Exemple d'utilisation de md5_file
  • Example#5388 - Exemple avec md5
  • Example#5389 - Exemple avec metaphone
  • Example#5390 - Utilisation du paramètre phonemes
  • Example#5391 - Exemple avec money_format
  • Example#5392 - Exemple avec nl2br
  • Example#5393 - Génération de code HTML valide avec le paramètre is_xhtml
  • Example#5394 - Divers séparateurs de nouvelles lignes
  • Example#5395 - Exemple avec number_format
  • Example#5396 - Exemple avec ord
  • Example#5397 - Exemple avec parse_str
  • Example#5398 - Exemple avec print
  • Example#5399 - Exemple avec rtrim
  • Example#5400 - Exemple avec setlocale
  • Example#5401 - Exemple avec setlocale sous Windows
  • Example#5402 - Exemple avec sha1_file
  • Example#5403 - Exemple avec sha1
  • Example#5404 - Exemples Soundex
  • Example#5405 - Échange d'arguments
  • Example#5406 - Échange d'arguments (2)
  • Example#5407 - Échange d'arguments (3)
  • Example#5408 - Échange d'arguments (4)
  • Example#5409 - Spécification du caractère de remplissage
  • Example#5410 - Spécificateur de position avec d'autres spécificateurs
  • Example#5411 - printf : divers exemples
  • Example#5412 - printf : spécificateurs chaînes de caractères
  • Example#5413 - sprintf : entier sans espace
  • Example#5414 - sprintf : formatage de devises
  • Example#5415 - sprintf: notation scientifique
  • Example#5416 - Exemple avec sscanf
  • Example#5417 - sscanf - utilisation des paramètres optionnels
  • Example#5418 - Exemple avec str_ireplace
  • Example#5419 - Exemple avec str_pad
  • Example#5420 - Exemple avec str_repeat
  • Example#5421 - Exemple 1 avec str_replace
  • Example#5422 - Exemple 2 avec str_replace
  • Example#5423 - Exemple avec str_rot13
  • Example#5424 - Exemple avec str_shuffle
  • Example#5425 - Exemple avec str_split
  • Example#5426 - Exemple avec str_word_count
  • Example#5427 - Exemple avec strcasecmp
  • Example#5428 - Exemple d'utilisation de strcmp
  • Example#5429 - Exemple avec strcspn
  • Example#5430 - Exemple avec strip_tags
  • Example#5431 - Exemple avec stripos
  • Example#5432 - Exemple avec stripslashes
  • Example#5433 - Utilisation de stripslashes sur un tableau
  • Example#5434 - Exemple avec stristr
  • Example#5435 - Teste si une chaîne de caractères est trouvée ou pas
  • Example#5436 - Utilisation d'une "chaîne de caractères" en chiffre
  • Example#5437 - Exemple avec strlen
  • Example#5438 - Exemple avec strpbrk
  • Example#5439 - Avec ===
  • Example#5440 - Avec !==
  • Example#5441 - Utiliser un offset
  • Example#5442 - Exemple avec strrchr
  • Example#5443 - Inverser une chaîne avec strrev
  • Example#5444 - Exemple avec strripos
  • Example#5445 - Vérifie si une occurrence est trouvée dans une chaîne
  • Example#5446 - Recherche avec positions
  • Example#5447 - Exemple avec strspn
  • Example#5448 - Exemple avec strstr
  • Example#5449 - Exemple avec strtok
  • Example#5450 - Ancien comportement de strtok
  • Example#5451 - Nouveau comportement de strtok
  • Example#5452 - Exemple avec strtolower
  • Example#5453 - Exemple avec strtoupper
  • Example#5454 - Exemple avec strtr
  • Example#5455 - Exemple avec strtr et 2 arguments
  • Example#5456 - Comparaison de comportement de strtr
  • Example#5457 - Exemple avec substr_compare
  • Example#5458 - Exemple avec substr_count
  • Example#5459 - Exemple avec substr_replace
  • Example#5460 - Utilisation de substr_replace pour remplacer plusieurs chaînes en une seule fois
  • Example#5461 - Exemple de start négatif
  • Example#5462 - Utilisation d'une valeur négative pour length
  • Example#5463 - Exemple avec substr
  • Example#5464 - Comportement du cast avec substr
  • Example#5465 -
  • Example#5466 - Exemple avec trim
  • Example#5467 - Suppression de caractères dans un tableau avec trim
  • Example#5468 - Exemple avec ucfirst
  • Example#5469 - Exemple avec ucwords
  • Example#5470 - Exemple avec ucwords et un séparation personnalisé
  • Example#5471 - vfprintf : zéro comme caractères d'espacements
  • Example#5472 - Exemple avec vprintf : entiers complétés avec des zéros
  • Example#5473 - Exemple avec vsprintf : entiers avec zéro initiaux
  • Example#5474 - Exemple avec wordwrap
  • Example#5475 - Exemple avec wordwrap
  • Example#5476 - Exemple avec wordwrap
  • Example#5477 - Exemple avec array_change_key_case
  • Example#5478 - Exemple avec array_chunk
  • Example#5479 - Récupère la colonne des prénoms
  • Example#5480 - Récupère la colonne des noms, indexé par la colonne "id"
  • Example#5481 - Exemple avec array_combine
  • Example#5482 - Exemple avec array_count_values
  • Example#5483 - Exemple avec array_diff_assoc
  • Example#5484 - Exemple avec array_diff_assoc
  • Example#5485 - Exemple avec array_diff_key
  • Example#5486 - Exemple avec array_diff_uassoc
  • Example#5487 - Exemple avec array_diff_ukey
  • Example#5488 - Exemple avec array_diff
  • Example#5489 - Exemple avec array_fill_keys
  • Example#5490 - Exemple avec array_fill
  • Example#5491 - Exemple avec array_filter
  • Example#5492 - Exemple avec array_filter sans fonction utilisateur
  • Example#5493 - Exemple avec array_filter et flag
  • Example#5494 - Exemple avec array_flip
  • Example#5495 - Exemple avec array_flip : collision
  • Example#5496 - Exemple avec array_intersect_assoc
  • Example#5497 - Exemple avec array_intersect_key
  • Example#5498 - Exemple avec array_intersect_uassoc
  • Example#5499 - Exemple avec array_intersect_ukey
  • Example#5500 - Exemple avec array_intersect
  • Example#5501 - Exemple avec array_key_exists
  • Example#5502 - array_key_exists et isset
  • Example#5503 - Exemple avec array_keys
  • Example#5504 - Exemple avec array_map
  • Example#5505 - array_map : utilisation d'une fonction quelconque (depuis PHP 5.3.0)
  • Example#5506 - array_map : utilisation de plusieurs tableaux
  • Example#5507 - Création d'un tableau de tableaux
  • Example#5508 - array_map - avec des clés sous la forme de chaîne de caractères
  • Example#5509 - Exemple avec array_merge_recursive
  • Example#5510 - Exemple avec array_merge
  • Example#5511 - Exemple simple avec array_merge
  • Example#5512 - Exemple avec array_merge avec des types non-tableaux
  • Example#5513 - Trier plusieurs tableaux
  • Example#5514 - Trier un tableau multidimensionnel
  • Example#5515 - Classer les résultats d'une base de données
  • Example#5516 - Tri non sensible à la casse
  • Example#5517 - Exemple avec array_pad
  • Example#5518 - Exemple avec array_pop
  • Example#5519 - Exemple avec array_product
  • Example#5520 - Exemple avec array_push
  • Example#5521 - Exemple avec array_rand
  • Example#5522 - Exemple avec array_reduce
  • Example#5523 - Exemple avec array_replace_recursive
  • Example#5524 - Exemple avec array_replace_recursive et la récursivité
  • Example#5525 - Exemple avec array_replace
  • Example#5526 - Exemple avec array_reverse
  • Example#5527 - Exemple avec array_search
  • Example#5528 - Exemple avec array_shift
  • Example#5529 - Exemple avec array_slice
  • Example#5530 - Exemple avec array_splice
  • Example#5531 - Exemple avec array_splice
  • Example#5532 - Exemple avec array_sum
  • Example#5533 - Exemple avec array_udiff_assoc
  • Example#5534 - Exemple avec array_udiff_uassoc
  • Example#5535 - Exemple avec array_udiff en utilisant les objets stdClass
  • Example#5536 - Exemple avec array_udiff en utilisant des objets DateTime
  • Example#5537 - Exemple avec array_uintersect_assoc
  • Example#5538 - Exemple avec array_uintersect_uassoc
  • Example#5539 - Exemple avec array_uintersect
  • Example#5540 - Exemple avec array_unique
  • Example#5541 - Exemple avec array_unique et les types
  • Example#5542 - Exemple avec array_unshift
  • Example#5543 - Exemple avec array_values
  • Example#5544 - Exemple avec array_walk_recursive
  • Example#5545 - Exemple avec array_walk
  • Example#5546 - Exemple avec array
  • Example#5547 - Index automatique avec array
  • Example#5548 - Index commençant à 1 avec array
  • Example#5549 - Accéder à un tableau dans des doubles guillemets
  • Example#5550 - Exemple avec arsort
  • Example#5551 - Exemple avec asort
  • Example#5552 - Exemple avec compact
  • Example#5553 - Exemple avec count
  • Example#5554 - Exemple de récursivité avec count
  • Example#5555 - Exemple d'utilisation de current
  • Example#5556 - Exemple avec each
  • Example#5557 - Passer en revue un tableau avec each
  • Example#5558 - Exemple avec end
  • Example#5559 - Exemple avec extract
  • Example#5560 - Exemple avec in_array
  • Example#5561 - Exemple avec in_array et le mode strict
  • Example#5562 - Exemple avec in_array et un tableau en paramètre
  • Example#5563 - Exemple avec key
  • Example#5564 - Exemple avec krsort
  • Example#5565 - Exemple avec ksort
  • Example#5566 - Exemple avec list
  • Example#5567 - Exemple d'utilisation de list
  • Example#5568 - Utilisation d'un sous-list
  • Example#5569 - Utilisation de list en tenant compte de l'ordre
  • Example#5570 - Exemple avec natcasesort
  • Example#5571 - Exemple d'utilisation de base avec natsort
  • Example#5572 - Exemples montrant les pièges de natsort
  • Example#5573 - Exemple avec next
  • Example#5574 - Exemple avec prev
  • Example#5575 - Exemple avec range
  • Example#5576 - Exemple avec reset
  • Example#5577 - Exemple avec rsort
  • Example#5578 - Exemple avec shuffle
  • Example#5579 - Exemple avec sort
  • Example#5580 - Exemple avec sort en utilisant l'ordre naturel sans tenir compte de la casse
  • Example#5581 - Exemple avec uasort
  • Example#5582 - Exemple avec uksort
  • Example#5583 - Exemple avec usort
  • Example#5584 - Tri avec usort sur un tableau multidimensionnel
  • Example#5585 - Tri avec usort sur un objet
  • Example#5586 - Exemple avec usort en utilisant une closure pour trier un tableau multi-dimensionnel
  • Example#5587 - classes.inc
  • Example#5588 - test_script.php
  • Example#5589 - Alternative à la fonction call_user_method_array
  • Example#5590 - Alternative à la fonction call_user_method
  • Example#5591 - Exemple avec class_alias
  • Example#5592 - Exemple avec class_exists
  • Example#5593 - Exemple avec le paramètre autoload
  • Example#5594 - Exemple avec get_called_class
  • Example#5595 - Exemple avec get_class_methods
  • Example#5596 - Exemple avec get_class_vars
  • Example#5597 - Exemple avec get_class_vars et les contextes
  • Example#5598 - Exemple avec get_class
  • Example#5599 - Utilisation de get_class dans une superclasse
  • Example#5600 - Exemple avec get_declared_classes
  • Example#5601 - Exemple avec get_declared_interfaces
  • Example#5602 - Exemple avec get_object_vars
  • Example#5603 - Exemple avec get_parent_class
  • Example#5604 - Exemple avec interface_exists
  • Example#5605 - Exemple avec is_a
  • Example#5606 - Utilisation de l'opérateur instanceof avec PHP 5
  • Example#5607 - Exemple avec is_subclass_of
  • Example#5608 - Exemple avec is_subclass_of en utilisant une interface
  • Example#5609 - Exemple avec method_exists
  • Example#5610 - Exemple avec method_exists en appel statique
  • Example#5611 - Exemple avec property_exists
  • Example#5612 - Exemple avec classkit_import
  • Example#5613 - Exemple avec classkit_method_add
  • Example#5614 - Exemple avec classkit_method_copy
  • Example#5615 - Exemple avec classkit_method_redefine
  • Example#5616 - Exemple avec classkit_method_remove
  • Example#5617 - Exemple avec classkit_method_rename
  • Example#5618 - Exemple avec ctype_alnum (en utilisant les locales par défaut)
  • Example#5619 - Exemple avec ctype_alpha (en utilisant les locales courantes)
  • Example#5620 - Exemple avec ctype_cntrl
  • Example#5621 - Exemple avec ctype_digit
  • Example#5622 - Exemple avec ctype_digit pour comparer des chaînes et des nombres
  • Example#5623 - Exemple avec ctype_graph
  • Example#5624 - Exemple avec ctype_lower (en utilisant les locales courantes)
  • Example#5625 - Exemple avec ctype_print
  • Example#5626 - Exemple avec ctype_punct
  • Example#5627 - Exemple avec ctype_space
  • Example#5628 - Exemple avec ctype_upper (en utilisant la locale courante)
  • Example#5629 - Exemple avec ctype_xdigit
  • Example#5630 - Vector
  • Example#5631 - Map
  • Example#5632 - Ds\Collection::clear example
  • Example#5633 - Ds\Collection::copy example
  • Example#5634 - Ds\Collection::isEmpty example
  • Example#5635 - Ds\Collection::toArray example
  • Example#5636 - Ds\Hashable::hash example
  • Example#5637 - Ds\Sequence::allocate example
  • Example#5638 - Ds\Sequence::apply example
  • Example#5639 - Ds\Sequence::capacity example
  • Example#5640 - Ds\Sequence::contains example
  • Example#5641 - Ds\Sequence::filter example using callback function
  • Example#5642 - Ds\Sequence::filter example without a callback function
  • Example#5643 - Ds\Sequence::find example
  • Example#5644 - Ds\Sequence::first example
  • Example#5645 - Ds\Sequence::get example
  • Example#5646 - Ds\Sequence::get example using array syntax
  • Example#5647 - Ds\Sequence::insert example
  • Example#5648 - Ds\Sequence::join example using a separator string
  • Example#5649 - Ds\Sequence::join example without a separator string
  • Example#5650 - Ds\Sequence::last example
  • Example#5651 - Ds\Sequence::map example
  • Example#5652 - Ds\Sequence::merge example
  • Example#5653 - Ds\Sequence::pop example
  • Example#5654 - Ds\Sequence::push example
  • Example#5655 - Ds\Sequence::reduce with initial value example
  • Example#5656 - Ds\Sequence::reduce without an initial value example
  • Example#5657 - Ds\Sequence::remove example
  • Example#5658 - Ds\Sequence::reverse example
  • Example#5659 - Ds\Sequence::reversed example
  • Example#5660 - Ds\Sequence::rotate example
  • Example#5661 - Ds\Sequence::set example
  • Example#5662 - Ds\Sequence::set example using array syntax
  • Example#5663 - Ds\Sequence::shift example
  • Example#5664 - Ds\Sequence::slice example
  • Example#5665 - Ds\Sequence::sort example
  • Example#5666 - Ds\Sequence::sort example using a comparator
  • Example#5667 - Ds\Sequence::sorted example
  • Example#5668 - Ds\Sequence::sorted example using a comparator
  • Example#5669 - Ds\Sequence::sum integer example
  • Example#5670 - Ds\Sequence::sum float example
  • Example#5671 - Ds\Sequence::unshift example
  • Example#5672 - Ds\Vector::allocate example
  • Example#5673 - Ds\Vector::apply example
  • Example#5674 - Ds\Vector::capacity example
  • Example#5675 - Ds\Vector::clear example
  • Example#5676 - Ds\Vector::__construct example
  • Example#5677 - Ds\Vector::contains example
  • Example#5678 - Ds\Vector::copy example
  • Example#5679 - Ds\Vector::filter example using callback function
  • Example#5680 - Ds\Vector::filter example without a callback function
  • Example#5681 - Ds\Vector::find example
  • Example#5682 - Ds\Vector::first example
  • Example#5683 - Ds\Vector::get example
  • Example#5684 - Ds\Vector::get example using array syntax
  • Example#5685 - Ds\Vector::insert example
  • Example#5686 - Ds\Vector::isEmpty example
  • Example#5687 - Ds\Vector::join example using a separator string
  • Example#5688 - Ds\Vector::join example without a separator string
  • Example#5689 - Ds\Vector::last example
  • Example#5690 - Ds\Vector::map example
  • Example#5691 - Ds\Vector::merge example
  • Example#5692 - Ds\Vector::pop example
  • Example#5693 - Ds\Vector::push example
  • Example#5694 - Ds\Vector::reduce with initial value example
  • Example#5695 - Ds\Vector::reduce without an initial value example
  • Example#5696 - Ds\Vector::remove example
  • Example#5697 - Ds\Vector::reverse example
  • Example#5698 - Ds\Vector::reversed example
  • Example#5699 - Ds\Vector::rotate example
  • Example#5700 - Ds\Vector::set example
  • Example#5701 - Ds\Vector::set example using array syntax
  • Example#5702 - Ds\Vector::shift example
  • Example#5703 - Ds\Vector::slice example
  • Example#5704 - Ds\Vector::sort example
  • Example#5705 - Ds\Vector::sort example using a comparator
  • Example#5706 - Ds\Vector::sorted example
  • Example#5707 - Ds\Vector::sorted example using a comparator
  • Example#5708 - Ds\Vector::sum integer example
  • Example#5709 - Ds\Vector::sum float example
  • Example#5710 - Ds\Vector::toArray example
  • Example#5711 - Ds\Vector::unshift example
  • Example#5712 - Ds\Deque::allocate example
  • Example#5713 - Ds\Deque::apply example
  • Example#5714 - Ds\Deque::capacity example
  • Example#5715 - Ds\Deque::clear example
  • Example#5716 - Ds\Deque::__construct example
  • Example#5717 - Ds\Deque::contains example
  • Example#5718 - Ds\Deque::copy example
  • Example#5719 - Ds\Deque::filter example using callback function
  • Example#5720 - Ds\Deque::filter example without a callback function
  • Example#5721 - Ds\Deque::find example
  • Example#5722 - Ds\Deque::first example
  • Example#5723 - Ds\Deque::get example
  • Example#5724 - Ds\Deque::get example using array syntax
  • Example#5725 - Ds\Deque::insert example
  • Example#5726 - Ds\Deque::isEmpty example
  • Example#5727 - Ds\Deque::join example using a separator string
  • Example#5728 - Ds\Deque::join example without a separator string
  • Example#5729 - Ds\Deque::last example
  • Example#5730 - Ds\Deque::map example
  • Example#5731 - Ds\Deque::merge example
  • Example#5732 - Ds\Deque::pop example
  • Example#5733 - Ds\Deque::push example
  • Example#5734 - Ds\Deque::reduce with initial value example
  • Example#5735 - Ds\Deque::reduce without an initial value example
  • Example#5736 - Ds\Deque::remove example
  • Example#5737 - Ds\Deque::reverse example
  • Example#5738 - Ds\Deque::reversed example
  • Example#5739 - Ds\Deque::rotate example
  • Example#5740 - Ds\Deque::set example
  • Example#5741 - Ds\Deque::set example using array syntax
  • Example#5742 - Ds\Deque::shift example
  • Example#5743 - Ds\Deque::slice example
  • Example#5744 - Ds\Deque::sort example
  • Example#5745 - Ds\Deque::sort example using a comparator
  • Example#5746 - Ds\Deque::sorted example
  • Example#5747 - Ds\Deque::sorted example using a comparator
  • Example#5748 - Ds\Deque::sum integer example
  • Example#5749 - Ds\Deque::sum float example
  • Example#5750 - Ds\Deque::toArray example
  • Example#5751 - Ds\Deque::unshift example
  • Example#5752 - Ds\Map::allocate example
  • Example#5753 - Ds\Map::apply example
  • Example#5754 - Ds\Map::capacity example
  • Example#5755 - Ds\Map::clear example
  • Example#5756 - Ds\Map::__construct example
  • Example#5757 - Ds\Map::copy example
  • Example#5758 - Ds\Map::diff example
  • Example#5759 - Ds\Map::filter example using callback function
  • Example#5760 - Ds\Map::filter example without a callback function
  • Example#5761 - Ds\Map::first example
  • Example#5762 - Ds\Map::get example
  • Example#5763 - Ds\Map::get example using array syntax
  • Example#5764 - Ds\Map::hasKey example
  • Example#5765 - Ds\Map::hasValue example
  • Example#5766 - Ds\Map::intersect example
  • Example#5767 - Ds\Map::isEmpty example
  • Example#5768 - Ds\Map::keys example
  • Example#5769 - Ds\Map::ksort example
  • Example#5770 - Ds\Map::ksort example using a comparator
  • Example#5771 - Ds\Map::ksorted example
  • Example#5772 - Ds\Map::ksorted example using a comparator
  • Example#5773 - Ds\Map::last example
  • Example#5774 - Ds\Map::map example
  • Example#5775 - Ds\Map::merge example
  • Example#5776 - Ds\Map::pairs example
  • Example#5777 - Ds\Map::put example
  • Example#5778 - Ds\Map::put example using objects as keys
  • Example#5779 - Ds\Map::putAll example
  • Example#5780 - Ds\Map::reduce with initial value example
  • Example#5781 - Ds\Map::reduce without an initial value example
  • Example#5782 - Ds\Map::remove example
  • Example#5783 - Ds\Map::reverse example
  • Example#5784 - Ds\Map::reversed example
  • Example#5785 - Ds\Map::skip example
  • Example#5786 - Ds\Map::slice example
  • Example#5787 - Ds\Map::sort example
  • Example#5788 - Ds\Map::sort example using a comparator
  • Example#5789 - Ds\Map::sort example
  • Example#5790 - Ds\Map::sort example using a comparator
  • Example#5791 - Ds\Map::sum integer example
  • Example#5792 - Ds\Map::sum float example
  • Example#5793 - Ds\Map::toArray example
  • Example#5794 - Ds\Map::union example
  • Example#5795 - Ds\Map::values example
  • Example#5796 - Ds\Map::xor example
  • Example#5797 - Ds\Pair::clear example
  • Example#5798 - Ds\Pair::copy example
  • Example#5799 - Ds\Pair::isEmpty example
  • Example#5800 - Ds\Pair::toArray example
  • Example#5801 - Ds\Set::add example using integers
  • Example#5802 - Ds\Set::add example using objects
  • Example#5803 - Ds\Set::allocate example
  • Example#5804 - Ds\Set::capacity example
  • Example#5805 - Ds\Set::clear example
  • Example#5806 - Ds\Set::__construct example
  • Example#5807 - Ds\Set::contains example
  • Example#5808 - Ds\Set::copy example
  • Example#5809 - Ds\Set::diff example
  • Example#5810 - Ds\Set::filter example using callback function
  • Example#5811 - Ds\Set::filter example without a callback function
  • Example#5812 - Ds\Set::first example
  • Example#5813 - Ds\Set::get example
  • Example#5814 - Ds\Set::get example using array syntax
  • Example#5815 - Ds\Set::intersect example
  • Example#5816 - Ds\Set::isEmpty example
  • Example#5817 - Ds\Set::join example using a separator string
  • Example#5818 - Ds\Set::join example without a separator string
  • Example#5819 - Ds\Set::last example
  • Example#5820 - Ds\Set::merge example
  • Example#5821 - Ds\Set::reduce with initial value example
  • Example#5822 - Ds\Set::reduce without an initial value example
  • Example#5823 - Ds\Set::remove example
  • Example#5824 - Ds\Set::reverse example
  • Example#5825 - Ds\Set::reversed example
  • Example#5826 - Ds\Set::slice example
  • Example#5827 - Ds\Set::sort example
  • Example#5828 - Ds\Set::sort example using a comparator
  • Example#5829 - Ds\Set::sorted example
  • Example#5830 - Ds\Set::sorted example using a comparator
  • Example#5831 - Ds\Set::sum integer example
  • Example#5832 - Ds\Set::sum float example
  • Example#5833 - Ds\Set::toArray example
  • Example#5834 - Ds\Set::union example
  • Example#5835 - Ds\Set::xor example
  • Example#5836 - Ds\Stack::clear example
  • Example#5837 - Ds\Stack::__construct example
  • Example#5838 - Ds\Stack::copy example
  • Example#5839 - Ds\Stack::isEmpty example
  • Example#5840 - Ds\Stack::peek example
  • Example#5841 - Ds\Stack::pop example
  • Example#5842 - Ds\Stack::push example
  • Example#5843 - Ds\Stack::toArray example
  • Example#5844 - Ds\Queue::allocate example
  • Example#5845 - Ds\Queue::capacity example
  • Example#5846 - Ds\Queue::clear example
  • Example#5847 - Ds\Queue::__construct example
  • Example#5848 - Ds\Queue::copy example
  • Example#5849 - Ds\Queue::isEmpty example
  • Example#5850 - Ds\Queue::peek example
  • Example#5851 - Ds\Queue::pop example
  • Example#5852 - Ds\Queue::push example
  • Example#5853 - Ds\Queue::toArray example
  • Example#5854 - Ds\PriorityQueue::allocate example
  • Example#5855 - Ds\PriorityQueue::capacity example
  • Example#5856 - Ds\PriorityQueue::clear example
  • Example#5857 - Ds\PriorityQueue::__construct example
  • Example#5858 - Ds\PriorityQueue::copy example
  • Example#5859 - Ds\PriorityQueue::isEmpty example
  • Example#5860 - Ds\PriorityQueue::peek example
  • Example#5861 - Ds\PriorityQueue::pop example
  • Example#5862 - Ds\PriorityQueue::push example
  • Example#5863 - Ds\PriorityQueue::toArray example
  • Example#5864 - Configurer le filtre par défaut pour qu'il agisse comme htmlspecialchars
  • Example#5865 - Configurer le filtre par défaut pour agir comme htmlspecialchars
  • Example#5866 - Validation d'adresses email avec filter_var
  • Example#5867 - Validation d'adresses IP avec filter_var
  • Example#5868 - Passage d'options à la fonction filter_var
  • Example#5869 - Nettoyage et validation d'adresses email
  • Example#5870 - Configurer le filtre par défaut
  • Example#5871 - Exemple avec filter_input_array
  • Example#5872 - Exemple avec filter_input
  • Example#5873 - Exemple avec filter_list
  • Example#5874 - Exemple avec filter_var_array
  • Example#5875 - Exemple avec filter_var
  • Example#5876 - Exemple avec call_user_func_array
  • Example#5877 - Exemple avec call_user_func_array en utilisant un espace de nom
  • Example#5878 - Utilisation d'une fonction lambda
  • Example#5879 - Exemple avec call_user_func par référence
  • Example#5880 - Exemple avec call_user_func
  • Example#5881 - Exemple avec call_user_func en utilisant un espace de noms
  • Example#5882 - Utilisation d'une méthode de classe avec call_user_func
  • Example#5883 - Utilisation d'une fonction lambda avec call_user_func
  • Example#5884 - Création d'une fonction anonyme avec create_function
  • Example#5885 - Traitement générique par fonction avec create_function
  • Example#5886 - Utilisation de fonctions anonymes comme fonction de rappel
  • Example#5887 - Exemple avec forward_static_call_array
  • Example#5888 - Exemple avec forward_static_call
  • Example#5889 - Exemple avec func_get_arg
  • Example#5890 - Exemple avec func_get_arg avant et après PHP 5.3
  • Example#5891 - Exemple func_get_arg avec des arguments par référence et par valeur
  • Example#5892 - Exemple avec func_get_args
  • Example#5893 - Exemples func_get_args avant et après PHP 5.3
  • Example#5894 - Exemple func_get_args avec des arguments par référence et par valeur
  • Example#5895 - Exemple avec func_num_args
  • Example#5896 - Exemples func_num_args avant et après PHP 5.3
  • Example#5897 - Exemple avec function_exists
  • Example#5898 - Exemple avec get_defined_functions
  • Example#5899 - Exemple avec register_shutdown_function
  • Example#5900 - Exemple avec register_tick_function
  • Example#5901 - Exemple avec Quickhash
  • Example#5902 - Exemple avec Quickhash utilisant ArrayAccess
  • Example#5903 - Exemple avec Quickhash utilisant Iterator
  • Example#5904 - Example avec Quickhash et des valeurs chaines de caractères
  • Example#5905 - Exemple QuickHashIntSet::add
  • Example#5906 - Exemple QuickHashIntSet::__construct
  • Example#5907 - Exemple QuickHashIntSet::delete
  • Example#5908 - Exemple QuickHashIntSet::exists
  • Example#5909 - Exemple QuickHashIntSet::getSize
  • Example#5910 - Exemple QuickHashIntSet::loadFromFile
  • Example#5911 - Exemple QuickHashIntSet::loadFromString
  • Example#5912 - Exemple QuickHashIntSet::saveToFile
  • Example#5913 - Exemple QuickHashIntSet::saveToString
  • Example#5914 - Exemple QuickHashIntHash::add
  • Example#5915 - Exemple QuickHashIntHash::__construct
  • Example#5916 - Exemple QuickHashIntHash::delete
  • Example#5917 - Exemple QuickHashIntHash::exists
  • Example#5918 - Exemple QuickHashIntHash::get
  • Example#5919 - Exemple QuickHashIntHash::getSize
  • Example#5920 - Format du fichier QuickHash IntHash
  • Example#5921 - Format du fichier QuickHash IntHash
  • Example#5922 - Exemple QuickHashIntHash::loadFromFile
  • Example#5923 - Exemple QuickHashIntHash::loadFromString
  • Example#5924 - Exemple QuickHashIntHash::saveToFile
  • Example#5925 - Exemple QuickHashIntHash::saveToString
  • Example#5926 - Exemple QuickHashIntHash::set
  • Example#5927 - Exemple QuickHashIntHash::update
  • Example#5928 - Exemple avec QuickHashStringIntHash::add
  • Example#5929 - Exemple avec QuickHashStringIntHash::__construct
  • Example#5930 - Exemple avec QuickHashStringIntHash::delete
  • Example#5931 - Exemple avec QuickHashStringIntHash::get
  • Example#5932 - Exemple avec QuickHashStringIntHash::getSize
  • Example#5933 - QuickHash StringIntHash file format
  • Example#5934 - Format de fichier QuickHash IntHash
  • Example#5935 - Exemple avec QuickHashStringIntHash::loadFromFile
  • Example#5936 - Exemple avec QuickHashStringIntHash::loadFromString
  • Example#5937 - Exemple avec QuickHashStringIntHash::saveToFile
  • Example#5938 - Exemple avec QuickHashStringIntHash::saveToString
  • Example#5939 - Exemple avec QuickHashStringIntHash::set
  • Example#5940 - Exemple avec QuickHashStringIntHash::update
  • Example#5941 - Exemple avec QuickHashIntStringHash::add
  • Example#5942 - Exemple avec QuickHashIntStringHash::__construct
  • Example#5943 - Exemple avec QuickHashIntStringHash::delete
  • Example#5944 - Exemple avec QuickHashIntStringHash::get
  • Example#5945 - Exemple avec QuickHashIntStringHash::getSize
  • Example#5946 - Format de fichier QuickHash IntString
  • Example#5947 - Format de fichier QuickHash IntString
  • Example#5948 - Exemple avec QuickHashIntStringHash::loadFromFile
  • Example#5949 - Exemple avec QuickHashIntStringHash::loadFromString
  • Example#5950 - Exemple avec QuickHashIntStringHash::saveToFile
  • Example#5951 - Exemple avec QuickHashIntStringHash::saveToString
  • Example#5952 - Exemple avec QuickHashIntStringHash::set
  • Example#5953 - Exemple avec QuickHashIntStringHash::update
  • Example#5954 - Exemple avec Reflection depuis un Shell (un Terminal)
  • Example#5955 - Étendre les classes internes
  • Example#5956 - Utilisation simple de ReflectionClass
  • Example#5957 - Utilisation basique de ReflectionClass::export
  • Example#5958 - Exemple avec ReflectionClass::getConstructor
  • Example#5959 - Exemple ReflectionClass::getDefaultProperties
  • Example#5960 - Exemple avec ReflectionClass::getDocComment
  • Example#5961 - Exemple avec ReflectionClass::getEndLine
  • Example#5962 - Exemple avec ReflectionClass::getExtension
  • Example#5963 - Exemple avec ReflectionClass::getExtensionName
  • Example#5964 - Exemple avec ReflectionClass::getInterfaceNames
  • Example#5965 - >Exemple avec ReflectionClass::getInterfaces
  • Example#5966 - Exemple avec ReflectionClass::getMethod
  • Example#5967 - Exemple avec ReflectionClass::getMethods
  • Example#5968 - Filtrage des résultats depuis la méthode ReflectionClass::getMethods
  • Example#5969 - Exemple avec ReflectionClass::getName
  • Example#5970 - Exemple avec ReflectionClass::getNamespaceName
  • Example#5971 - Exemple avec ReflectionClass::getProperties
  • Example#5972 - Exemple avec ReflectionClass::getProperty
  • Example#5973 - Exemple avec ReflectionClass::getShortName
  • Example#5974 - Exemple avec ReflectionClass::getStaticPropertyValue
  • Example#5975 - Exemple avec ReflectionClass::hasConstant
  • Example#5976 - Exemple avec ReflectionClass::hasMethod
  • Example#5977 - Exemple avec ReflectionClass::hasProperty
  • Example#5978 - Exemple avec ReflectionClass::inNamespace
  • Example#5979 - Exemple avec ReflectionClass::isAbstract
  • Example#5980 - ReflectionClass::isAnonymous example
  • Example#5981 - Utilisation basique de ReflectionClass::isCloneable
  • Example#5982 - Exemple avec ReflectionClass::isFinal
  • Example#5983 - Exemple avec ReflectionClass::isInstance
  • Example#5984 - Exemple avec ReflectionClass::isInstantiable
  • Example#5985 - Exemple avec ReflectionClass::isInterface
  • Example#5986 - Exemple avec ReflectionClass::isInternal
  • Example#5987 - Exemple avec ReflectionClass::isIterateable
  • Example#5988 - Utilisation basique de ReflectionClass::newInstanceArgs
  • Example#5989 - Exemple pour ReflectionClass::__toString
  • Example#5990 - exemple de ReflectionExtension
  • Example#5991 - Exemple avec ReflectionExtension::getClasses
  • Example#5992 - Exemple avec ReflectionExtension::getClassNames
  • Example#5993 - Exemple avec ReflectionExtension::getConstants
  • Example#5994 - Exemple avec ReflectionExtension::getDependencies
  • Example#5995 - Exemple avec ReflectionExtension::getFunctions
  • Example#5996 - Exemple avec ReflectionExtension::getINIEntries
  • Example#5997 - Exemple avec ReflectionExtension::getName
  • Example#5998 - Exemple avec ReflectionExtension::getVersion
  • Example#5999 - Exemple avec ReflectionExtension::info
  • Example#6000 - Exemple avec ReflectionFunction::__construct
  • Example#6001 - Exemple avec ReflectionFunction::invoke
  • Example#6002 - ReflectionFunction::invokeArgs example
  • Example#6003 - Exemple pour ReflectionFunction::invokeArgs avec des références
  • Example#6004 - Exemple pour ReflectionFunction::__toString
  • Example#6005 - ReflectionFunctionAbstract::getReturnType example
  • Example#6006 - Usage on built-in functions
  • Example#6007 - ReflectionFunctionAbstract::hasReturnType example
  • Example#6008 - Usage on built-in functions
  • Example#6009 - Exemple de ReflectionFunctionAbstract::isClosure
  • Example#6010 - Exemple avec ReflectionFunctionAbstract::isDeprecated
  • Example#6011 - Exemple avec ReflectionMethod::__construct
  • Example#6012 - Exemple pour ReflectionMethod::getDeclaringClass
  • Example#6013 - Exemple avec ReflectionMethod::getModifiers
  • Example#6014 - Exemple avec ReflectionMethod::getPrototype
  • Example#6015 - Exemple avec ReflectionMethod::invoke
  • Example#6016 - Exemple pour ReflectionMethod::invokeArgs
  • Example#6017 - ReflectionMethod::__toString example
  • Example#6018 - Exemple avec ReflectionParameter
  • Example#6019 - Exemple d'utilisation de la classe ReflectionParameter
  • Example#6020 - Récupération de la classe qui a déclarée la méthode
  • Example#6021 - Exemple d'utilisation
  • Example#6022 - ReflectionParameter::getType example
  • Example#6023 - ReflectionParameter::hasType example
  • Example#6024 - Exemple avec ReflectionProperty::__construct
  • Example#6025 - Récupération d'une valeur depuis une propriété privée ou protégée en utilisant la classe ReflectionProperty
  • Example#6026 - Exemple ReflectionProperty::getValue
  • Example#6027 - Exemple avec ReflectionClass::isDefault
  • Example#6028 - Exemple ReflectionProperty::setValue
  • Example#6029 - ReflectionType::allowsNull example
  • Example#6030 - ReflectionType::isBuiltin example
  • Example#6031 - ReflectionType::__toString example
  • Example#6032 - ReflectionGenerator::__construct example
  • Example#6033 - ReflectionGenerator::getExecutingFile example
  • Example#6034 - ReflectionGenerator::getExecutingGenerator example
  • Example#6035 - ReflectionGenerator::getExecutingLine example
  • Example#6036 - ReflectionGenerator::getFunction example
  • Example#6037 - ReflectionGenerator::getThis example
  • Example#6038 - ReflectionGenerator::getTrace example
  • Example#6039 - Exemple avec boolval
  • Example#6040 - Exemple avec debug_zval_dump
  • Example#6041 -
  • Example#6042 -
  • Example#6043 - Une comparaison simple empty / isset.
  • Example#6044 - empty sur des positions dans une chaîne
  • Example#6045 - Exemple avec floatval
  • Example#6046 - Exemple avec floatval avec des caractères à gauche non numériques
  • Example#6047 - Exemple avec get_defined_vars
  • Example#6048 - Exemple avec get_resource_type
  • Example#6049 - Exemple avec gettype
  • Example#6050 - Exemple avec import_request_variables
  • Example#6051 - Exemples avec intval
  • Example#6052 - Exemple avec is_array
  • Example#6053 - Exemple avec is_bool
  • Example#6054 - Exemple avec is_callable
  • Example#6055 - is_callable et les constructeurs
  • Example#6056 - Exemple avec is_float
  • Example#6057 - Exemple avec is_int
  • Example#6058 - Exemple avec is_null
  • Example#6059 - Exemple avec is_numeric
  • Example#6060 - Exemple avec is_object
  • Example#6061 - Exemple avec is_resource
  • Example#6062 - Exemple avec is_scalar
  • Example#6063 - Exemple avec is_string
  • Example#6064 - Exemple avec isset
  • Example#6065 - isset sur des positions dans une chaîne
  • Example#6066 - Exemple avec print_r
  • Example#6067 - Exemple avec le paramètre return
  • Example#6068 - Exemple avec serialize
  • Example#6069 - Exemple avec settype
  • Example#6070 - Exemple pour strval utilisant la méthode magique PHP 5 __toString().
  • Example#6071 - Exemple avec unserialize
  • Example#6072 - Exemple avec la directive unserialize_callback_func
  • Example#6073 - Exemple avec unset
  • Example#6074 - Exemple avec un transtypage (unset)
  • Example#6075 - Exemple avec var_dump
  • Example#6076 - Exemple avec var_export
  • Example#6077 - Exporter des classes depuis PHP 5.1.0
  • Example#6078 - Utilisation de __set_state (depuis PHP 5.1.0)
  • Example#6079 -
  • Example#6080 - Exemple avec OAuth::fetch
  • Example#6081 - Exemple avec OAuth::getAccessToken
  • Example#6082 - Exemple avec OAuth::getRequestToken
  • Example#6083 - Exemple avec OAuth::setRequestEngine
  • Example#6084 - Exemple avec OAuth::setRsaCertificate
  • Example#6085 - L'exemple OAuth::setToken
  • Example#6086 - Exemple avec OAuthProvider::__construct
  • Example#6087 - Exemple avec OAuthProvider::consumerHandler
  • Example#6088 - Exemple avec OAuthProvider::generateToken
  • Example#6089 - Exemple avec OAuthProvider::is2LeggedEndpoint
  • Example#6090 - Exemple avec OAuthProvider::timestampNonceHandler
  • Example#6091 - Exemple avec OAuthProvider::tokenHandler
  • Example#6092 - Exemple simple avec SCA
  • Example#6093 - Structure d'un composant SCA pour PHP
  • Example#6094 - Obtention d'un proxy pour une classe PHP locale
  • Example#6095 - Obtention d'un proxy pour un service Web
  • Example#6096 - Appels de services
  • Example#6097 - Obtention d'un proxy avec getService
  • Example#6098 - Faire des appels sur un proxy
  • Example#6099 - Service StockQuote
  • Example#6100 - Generated WSDL
  • Example#6101 - WSDL généré
  • Example#6102 - Attribut location
  • Example#6103 - une méthode avec deux arguments
  • Example#6104 - Section types avec paramètres nommés
  • Example#6105 - Un composant SCA qui utilise des SDO
  • Example#6106 - Exemple avec SCA::getService
  • Example#6107 - Exemple avec is_soap_fault
  • Example#6108 - Gestion des erreurs par exception avec SOAP
  • Example#6109 - Exemple avec SoapClient::__doRequest
  • Example#6110 - Exemple avec SoapClient::__getFunctions
  • Example#6111 - Exemple avec SoapClient::__getLastRequest
  • Example#6112 - Exemple avec SoapClient::__getLastRequestHeaders
  • Example#6113 - Exemple avec SoapClient::__getLastResponse
  • Example#6114 - Exemple avec SoapClient::__getLastResponseHeaders
  • Example#6115 - Exemple avec SoapClient::__getTypes
  • Example#6116 - Exemplea vec SoapClient::__setLocation
  • Example#6117 - Exemple avec SoapClient::__setSoapHeaders
  • Example#6118 - Configuration d'en-têtes multiples pour SOAP
  • Example#6119 - Exemple avec SoapClient::__soapCall
  • Example#6120 - Exemple avec SoapClient::SoapClient
  • Example#6121 - Exemple avec SoapServer::addFunction
  • Example#6122 - Exemple avec SoapServer::getFunctions
  • Example#6123 - Exemple avec SoapServer::handle
  • Example#6124 - Exemple SoapServer::setPersistence
  • Example#6125 - Exemples avec SoapServer
  • Example#6126 - Quelques exemples avec SoapFault
  • Example#6127 - Emission d'exceptions SoapFault
  • Example#6128 - Exemple simple avec SoapHeader
  • Example#6129 - Quelques exemples
  • Example#6130 - Exemple avec SoapVar::SoapVar
  • Example#6131 - Exemple de serveur Yar
  • Example#6132 - Accès au serveur depuis un navigateur (requête GET)
  • Example#6133 - Exemple de client Yar
  • Example#6134 - Exemple de client Yar concurrent
  • Example#6135 - Exemple avec Yar_Server::__construct
  • Example#6136 - Exemple avec Yar_Server::handle
  • Example#6137 - Exemple avec Yar_Client::__call
  • Example#6138 - Exemple avec Yar_Client::__construct
  • Example#6139 - Exemple avec Yar_Client::setOpt
  • Example#6140 - Exemple avec Yar_Concurrent_Client::call
  • Example#6141 - Exemple avec Yar_Concurrent_Client::loop
  • Example#6142 - Yar_Concurrent_Client::reset example
  • Example#6143 - Exemple avec Yar_Server_Exception::getType
  • Example#6144 - Exemple avec Yar_Client_Exception::getType
  • Example#6145 - Exemple avec XMLRPC
  • Example#6146 - Exemple de type XML-RPC
  • Example#6147 - Exemple avec xmlrpc_set_type
  • Example#6148 - For Each en ASP
  • Example#6149 - Foreach en PHP
  • Example#6150 - Exemple avec COM (1)
  • Example#6151 - Exemple avec COM (2)
  • Example#6152 - Exemple DOTNET
  • Example#6153 - Exemple d'une classe VARIANT, comme utilisé en PHP 4.x
  • Example#6154 - Exemple d'une classe VARIANT, comme utilisé en PHP 5
  • Example#6155 - Exemple de connexions d'événements COM
  • Example#6156 - Statistiques sur le processus PHP courant
  • Example#6157 - Statistiques sur l'utilisation globale de la mémoire
  • Example#6158 - Enregistre un script PHP pour exécuter en tant que service
  • Example#6159 - Efface un service
  • Example#6160 - Exécution d'un service
  • Example#6161 - Exemple avec win32_create_service
  • Example#6162 - Exemple avec win32_delete_service
  • Example#6163 - Exemple avec win32_start_service_ctrl_dispatcher
  • Example#6164 - book.xml
  • Example#6165 - Création d'un nouvel objet DOMAttr
  • Example#6166 - Exemple avec DOMAttr::isId()
  • Example#6167 - Création d'un nouvel objet DOMCdataSection
  • Example#6168 - Création d'un nouveau DOMComment
  • Example#6169 - Création d'un nouveau DOMDocument
  • Example#6170 - Création d'un nouvel élément et insertion en tant que racine
  • Example#6171 - Création d'un nouvel élément et insertion en tant que racine
  • Example#6172 - Un exemple avec un espace de noms en préfixe
  • Example#6173 - Exemple avec DOMDocument::getElementById()
  • Example#6174 - Exemple de base
  • Example#6175 - Récupération de tous les éléments XInclude
  • Example#6176 - Exemple avec DOMDocument::importNode
  • Example#6177 - Création d'un Document
  • Example#6178 - Création d'un document
  • Example#6179 - Création d'un document
  • Example#6180 - Création d'un Document
  • Example#6181 - Invocation statique de loadXML
  • Example#6182 - Ajout d'un nouvelle méthode à DOMElement
  • Example#6183 - Récupération d'éléments sous la forme d'une classe personnalisée
  • Example#6184 - Récupération du propriétaire du document
  • Example#6185 - Sauvegarde d'un arbre DOM dans un fichier
  • Example#6186 - Sauvegarde d'un arbre HTML dans une chaîne de caractères
  • Example#6187 - Sauvegarde d'un arbre HTML dans un fichier
  • Example#6188 - Sauvegarde de l'arbre DOM dans une chaîne de caractères
  • Example#6189 - Exemple de validation DTD
  • Example#6190 - Exemple avec DOMDocument::xinclude()
  • Example#6191 - Ajout de données XML à votre document
  • Example#6192 - Création d'un nouveau DOMElement
  • Example#6193 - Ajout d'un attribut
  • Example#6194 - Création d'un nouveau DOMEntityReference
  • Example#6195 - Création d'un document avec une DTD attachée
  • Example#6196 - Test votre implémentation DOM
  • Example#6197 - Ajout d'un fils
  • Example#6198 - Exemple avec DOMNode::getLineNo
  • Example#6199 - Exemple avec DOMNode::getNodePath
  • Example#6200 - Effacement d'un fils
  • Example#6201 - Parcours de toutes les entrées de la table
  • Example#6202 - Création d'un nouveau DOMProcessingInstruction
  • Example#6203 - Création d'un nouveau DOMText
  • Example#6204 - Récupération du nombre total de livres anglais
  • Example#6205 - Récupération de tous les livres anglais
  • Example#6206 - book.xml
  • Example#6207 - Exemple avec DOMXPath::registerPHPFunctions et php:functionString
  • Example#6208 - Exemple avec DOMXPath::registerPHPFunctions et php:function
  • Example#6209 - Importation d'un objet SimpleXML dans DOM avec dom_import_simplexml
  • Example#6210 - Exemple avec libxml_get_errors
  • Example#6211 - Exemple avec libxml_set_external_entity_loader
  • Example#6212 - Exemple avec libxml_set_streams_context
  • Example#6213 - Exemple avec libxml_use_internal_errors
  • Example#6214 - Accès via les noms de Propriété
  • Example#6215 - Accès via le nom de la propriété en tant que tableau indexé
  • Example#6216 - Itération d'objet de données
  • Example#6217 - Accès à une propriété à valeurs multiples par le nom
  • Example#6218 - Accès aux éléments à valeurs multiples
  • Example#6219 - Itération d'une propriété à valeurs multiples
  • Example#6220 - Accès aux propriétés chaînées
  • Example#6221 - Navigation XPath
  • Example#6222 - Requête XPath
  • Example#6223 - Création d'objets de données fils
  • Example#6224 - Effacement d'une propriété primitive
  • Example#6225 - Effacement d'un objet de données
  • Example#6226 - Effacement d'un objet de données référencé
  • Example#6227 - Accès via l'index de la propriété
  • Example#6228 - Récupération de l'interface SDO_Sequence
  • Example#6229 - Récupère/Fixe des valeurs de séquence
  • Example#6230 - Itération de Séquence
  • Example#6231 - Séquence versus Objet de Données
  • Example#6232 - Ajout à une séquence
  • Example#6233 - Suppression d'une séquence
  • Example#6234 - Réflexion sur les Objets de Données
  • Example#6235 - Accès d'informations de type
  • Example#6236 - Exemple avec SDO_DAS_DataFactory::addPropertyToType
  • Example#6237 - Exemple avec SDO_DAS_DataFactory::addType
  • Example#6238 - Création d'un objet de données
  • Example#6239 - Récupération d'un objet de données
  • Example#6240 - Mise à jour d'objet de données
  • Example#6241 - Suppression d'un objet de données
  • Example#6242 - Une compagnie, un département - Création
  • Example#6243 - Une compagnie, un département - Récupération et Mise à jour
  • Example#6244 - Une compagnie, deux départements - Récupération et Suppression
  • Example#6245 - Une compagnie, un département, un employé - Création
  • Example#6246 - Une compagnie, un département, un employé - Récupération et Mise à Jour
  • Example#6247 - Une compagnie, deux départements, deux employés - Récupération et Suppression
  • Example#6248 - Récupération d'un objet de données en utilisant executePreparedQuery
  • Example#6249 - Chargement, modification et sauvegarde d'un document XML
  • Example#6250 - Création d'un nouveau document XML
  • Example#6251 - Définition des propriétés du document XML
  • Example#6252 - Utilisation d'un type ouvert
  • Example#6253 - Trouver ce que vous voulez dans un document
  • Example#6254 - Affichage du modèle SDO
  • Example#6255 - Fichier avec une chaîne XML qui sera inclus partout
  • Example#6256 - Lecture de <plot>
  • Example#6257 - Récupération de <line>
  • Example#6258 - Accéder à un élément non-unique avec SimpleXML
  • Example#6259 - Utilisation des attributs
  • Example#6260 - Comparaison des éléments et des attributs avec du texte
  • Example#6261 - Comparaison de 2 éléments
  • Example#6262 - Utilisation de XPath
  • Example#6263 - Attribuer des valeurs
  • Example#6264 - Ajout d'éléments et d'attributs
  • Example#6265 - Interopérabilité DOM
  • Example#6266 - Chargement de chaînes XML cassées
  • Example#6267 - Ajoute des attributs et enfants à un élément SimpleXML
  • Example#6268 - Ajoute des attributs et des enfants à un élément SimpleXML
  • Example#6269 - Obtenir du XML avec SimpleXML
  • Example#6270 - Utilisation de SimpleXMLElement::asXML avec les résultats de SimpleXMLElement::xpath
  • Example#6271 - Interprétation d'une chaîne XML
  • Example#6272 - Parcours d'un pseudo-tableau children()
  • Example#6273 - Utilisation des espaces de noms
  • Example#6274 - Crée un objet SimpleXMLElement
  • Example#6275 - Crée un objet SimpleXMLElement à partir d'un URL
  • Example#6276 - Comptage du nombre de fils
  • Example#6277 - Récupère les espaces de noms du document
  • Example#6278 - Travail avec plusieurs espaces de noms
  • Example#6279 - Récupère les noms des éléments XML
  • Example#6280 - Récupère les espaces de noms utilisés dans un document
  • Example#6281 - Fixe un préfixe d'espace de nom pour utiliser dans une requête XPath
  • Example#6282 - Récupérer le contenu chaine
  • Example#6283 - Xpath
  • Example#6284 - Retourne l'élément courant
  • Example#6285 - Lecture des sous-éléments de l'objet courant
  • Example#6286 - Vérifie si un élément a des sous-éléments
  • Example#6287 - Le nom de la balise XML courante
  • Example#6288 - Passe au prochain élément
  • Example#6289 - Retour au premier élément
  • Example#6290 - Vérifie si un élément est valide
  • Example#6291 - Import DOM
  • Example#6292 - Interprétation d'un document XML
  • Example#6293 - Convertir une chaîne XML
  • Example#6294 - Linéarisation d'une valeur simple avec WDDX
  • Example#6295 - Utilisation de paquets incrémentaux avec WDDX
  • Example#6296 - Exemple avec wddx_serialize_vars
  • Example#6297 - Afficher une structure XML
  • Example#6298 - Transtypage XML -> HTML
  • Example#6299 - Entité externe
  • Example#6300 - xmltest.xml
  • Example#6301 - xmltest2.xml
  • Example#6302 - Exemple avec xml_parse_into_struct
  • Example#6303 - moldb.xml - Petite base de données moléculaires
  • Example#6304 - parsemoldb.php : Analyse moldb.xml et crée un tableau d'objets moléculaires
  • Example#6305 - Exemple avec xml_set_object
  • Example#6306 - Validation XML
  • Example#6307 - collection.xml
  • Example#6308 - collection.xsl
  • Example#6309 - fruits.xml
  • Example#6310 - fruits.xsl
  • Example#6311 - Collating and printing errors
  • Example#6312 - Exemple avec XSLTProcessor
  • Example#6313 - Test du support EXSLT
  • Example#6314 - Appel d'une fonction PHP depuis une feuille de style
  • Example#6315 - Modification du propriétaire avant la transformation
  • Example#6316 - Exemple d'utilisation du profilage
  • Example#6317 - Transformation en un document DOM
  • Example#6318 - Transformation en un fichier HTML
  • Example#6319 - Transformation en une chaîne
  • Example#6320 - Leak Detection in Action
  • Example#6321 - Accessor macros for per-module globals
  • Example#6322 - "counter"'s basic interface
  • Example#6323 - "counter"'s extended interface
  • Example#6324 - "counter"'s objective interface
  • Example#6325 - An example config.m4 file
  • Example#6326 - Sample configure output
  • Example#6327 - counter's config.m4 file
  • Example#6328 - An example config.w32 file
  • Example#6329 - counter's config.w32 file
  • Example#6330 - Files in the counter extension, in no particular order
  • Example#6331 - zend_module declaration in the counter extension
  • Example#6332 - zend_module definition in PHP 5.3
  • Example#6333 - Counter extension module definition
  • Example#6334 - The wrong way to store the basic counter interface's value
  • Example#6335 - The counter module's globals
  • Example#6336 - The counter module's global structure declaration
  • Example#6337 - Accessor macros for per-module globals
  • Example#6338 - The right way to store the basic counter interface's value
  • Example#6339 - counter's PHP_MINFO function
  • Example#6340 - Example macros for invoking pdo_SKEL_error
  • Example#6341 - Using pdo_parse_params
  • Example#6342 - Implementing preparer for drivers that don't support native prepared statements
  • Example#6343 - simple stream example that displays the PHP home page
  • Example#6344 - How to accept a stream as a parameter
  • Example#6345 - How to return a stream from a function
  • Example#6346 - The default config.m4.
  • Example#6347 - A simple extension.
  • Example#6348 - A test file for first_module.so.
  • Example#6349 - Internal declaration of zend_function_entry.
  • Example#6350 - Internal declaration of zend_module_entry.
  • Example#6351 - PHP's implementation of variable arguments in fsockopen().
  • Example#6352 - PHP/Zend zval type definition.
  • Example#6353 - Testing for referenced parameter passing.
  • Example#6354 - Creating variables with different scopes.
  • Example#6355 - Creation of a long.
  • Example#6356 - Adding an element to an associative array.
  • Example#6357 - Adding an element to an indexed array.
  • Example#6358 - Source code and screenshot for output in phpinfo.
  • Example#6359 - Printing execution information.
  • Example#6360 - Calling user functions.
  • Example#6361 - Un élément de formulaire HTML caché
  • Example#6362 - Données éditables par l'utilisateur
  • Example#6363 - Dans une URL
  • Example#6364 - Génération de Javascript avec PHP
  • Example#6365 - Émulation des Register Globals
  • Example#6366 - Exemple de code PHP/FI
  • Example#6367 - Dans le coeur de PHP
  • Example#6368 - Dans le coeur orienté objet de PHP
  • Example#6369 - Dans l'extension bzip2
  • Example#6370 - Dans l'extension datetime
  • Example#6371 - Dans l'extension dBase
  • Example#6372 - Dans l'extension mcrypt
  • Example#6373 - Dans l'extension oci8
  • Example#6374 - Dans l'extension SPL
  • Example#6375 - Dans l'extension Semaphore (sysvmsg)
  • Example#6376 - Un exemple en PHP 5.2.1+ de Zip
  • Example#6377 - strrpos et strripos recherchent maintenant une chaîne de caractères dans une autre
  • Example#6378 - Un objet sans propriété n'est plus considéré comme vide (empty)
  • Example#6379 - Dans certains cas, les classes doivent être déclarées avant d'être utilisées
  • Example#6380 - Migration des fichiers de configuration Apache
  • Example#6381 - Migration des fichiers de configuration Apache, en mode CGI
  • Example#6382 - Active la sortie d'erreur à l'écran pour dev.site.com
  • Example#6383 - Ajoute un script de sécurité pour les zones protégées
  • Example#6384 - include_path sous Unix
  • Example#6385 - include_path sous Windows
  • Example#6386 - include_path sous Unix en utilisant la variable d'environnement ${USER}
  • Example#6387 - Exemple avec le filtre string.rot13
  • Example#6388 - Exemple avec le filtre string.toupper
  • Example#6389 - Exemple avec le filtre string.tolower
  • Example#6390 - Exemple avec le filtre string.strip_tags
  • Example#6391 - Exemple avec les filtres convert.base64-encode et convert.base64-decode
  • Example#6392 - Exemple avec les filtres convert.quoted-printable-encode et convert.quoted-printable-decode
  • Example#6393 - zlib.deflate et zlib.inflate
  • Example#6394 - simple zlib.deflate
  • Example#6395 - bzip2.compress et bzip2.decompress
  • Example#6396 - Chiffrement d'un fichier avec 3DES
  • Example#6397 - Lecture d'un fichier chiffré


Historique des modifications

Les modifications suivantes ont été apportées aux fonctions des extensions embarquées.

Version | Function | Description
7.2.0 | imagelayereffect | Ajout de la constante IMG_EFFECT_MULTIPLY (nécessite la libgd système >= 2.1.1 ou la libgd embarquée).
7.1.0 | stripos | Ajout du support des nombres négatifs pour le paramètre offset.
 | strpos | Ajout du support des nombres négatifs pour le paramètre offset.
 | substr_count | Ajout du support des nombres négatifs pour offset et length.
7.0.0 | assert | assert est maintenant une construction de langage et non une fonction. assertion peut maintenant être une expression. Le second paramètre est maintenant interprété soit comme une exception (si un objet Throwable est fourni), soit comme une description supportée depuis PHP 5.4.8 et suivants.
 | define | Les valeurs array sont autorisées.
 | dirname | Ajout du paramètre optionnel levels.
 | getrusage | Cette fonction est maintenant supportée sous Windows.
 | gmmktime | Le paramètre is_dst a été supprimé.
 | is_numeric | Les chaînes en notation héxadécimale (i.e. 0xf4c3b00c) ne sont plus vus comme des chaînes numériques, i.e. is_numeric retourne maintenant FALSE.
 | mcrypt_generic_end | La fonction a été supprimée.
 | mktime | Le paramètre is_dst a été supprimé.
 | ob_start | Lors de l'utilisation d'ob_start a l'intérieur d'une fonction de rappel d'un tampon de sortie, cette fonction ne lèvera plus une E_ERROR mais une E_RECOVERABLE_ERROR, autorisant les gestionnaires d'erreur personnalisés d’attraper ces erreurs.
 | parse_ini_file | Le dièse (#) n'est plus reconnu comme un commentaire.
 | preg_replace | Le support de l'option /e n'a aucun effet. Utilisez la fonction preg_replace_callback à la place.
 | set_exception_handler | Le type du paramètre passé dans exception_handler a changé, passant de Exception à Throwable
 | setlocale | Le support du paramètre category sous forme de chaîne de caractères a été supprimé. Seules les constantes LC_* peuvent être utilisées avec cette version.
 | substr | Si string a une longueur égale à start caractères, une chaîne vide sera retournée. Avant cette version, FALSE était retourné dans ce cas.
 | token_get_all | Ajout du paramère optionnel flags avec le drapeau TOKEN_PARSE.
 | unserialize | Le paramètre options a été ajouté.
5.6.16 | mysqli::real_connect | Ajout de la constante MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT pour le driver MySQL natif
5.6.12 | gd_info | Ajout du support WebP.
5.6.6 | json_encode | Ajout de la constante JSON_PRESERVE_ZERO_FRACTION pour le paramètre option.
5.6.5 | crypt | Quand la chaine d'erreur "*0" est donnée comme salt, "*1" sera maintenant retournée par consistence avec les autres implémentations crypt. Antérieurement à cette version, PHP 5.6 va incorrectement retourner un hash DES.
5.6.3 | pack | Les codes "q", "Q", "J" et "P" codes ont été ajoutés pour travailler avec les nombres 64 bits.
5.6.1 | parse_ini_file | Ajout d'un nouveau mode INI_SCANNER_TYPED.
5.6.0 | array_fill | num peut maintenant être 0. Précédemment, num devait être supérieur à 0.
 | array_filter | Ajout du paramètre optionnel flag et des constantes ARRAY_FILTER_USE_KEY et ARRAY_FILTER_USE_BOTH
 | crypt | Lance une alerte de niveau E_NOTICE si le paramètre salt est omis.
 | curl_setopt | Suppression de CURLOPT_CLOSEPOLICY et des valeurs associées.
 | curl_setopt | CURL_SAFE_UPLOAD vaut maintenant TRUE par défaut.
 | escapeshellcmd | La valeur par défaut pour le paramètre encoding a été modifiée pour être la valeur de l'option de configuration default_charset.
 | hash_algos | Le support de gost-crypto a été ajouté. Il implémente la fonction de hashage GOST utilisant les tables CryptoPro S-box, tel que spécifié par la RFC 4357, section 11.2.
 | html_entity_decode | La valeur par défaut pour le paramètre encoding a été modifiée pour être la valeur de l'option de configuration default_charset.
 | htmlentities | La valeur par défaut pour le paramètre encoding a été modifiée pour être la valeur de l'option de configuration default_charset.
 | htmlspecialchars | La valeur par défaut pour le paramètre encoding a été modifiée pour être la valeur de l'option de configuration default_charset.
 | json_decode | Les variantes invalides qui ne sont pas en minuscule de true, false et null ne sont plus acceptées comme entrées valides, et vont générer des alertes.
 | mb_regex_encoding | L'encodage par défaut a changé en UTF-8. Auparavant, il était de EUC-JP.
 | mcrypt_create_iv | MCRYPT_DEV_URANDOM est maintenant la valeur par défaut du paramètre source.
 | mcrypt_decrypt | Des tailles de clés et IV invalides ne sont plus acceptées. mcrypt_decrypt va maintenant émettre un warning et retourner FALSE. Précédemment les clés et IVs étaient complétées avec des '\0' jusqu'a la prochaine taille valide.
 | mcrypt_encrypt | Des tailles de clés et IV invalides ne sont plus acceptées. mcrypt_encrypt va maintenant émettre un warning et retourner FALSE. Précédemment les clés et IVs étaient complétées avec des '\0' jusqu'a la prochaine taille valide.
 | pg_connect | Le support de la constante PGSQL_CONNECT_ASYNC pour le paramètre connect_type a été ajouté.
 | pg_convert | La fonction n'est plus expérimentale. Les types de données booléen/NULL sont supportés. Les types de données inconnus/non supportés sont échappés dans validation. La fonction pg_convert doit être utilisée pour tous les types de données.
 | pg_delete | La fonction n'est plus expérimentale. Ajout de la constante PGSQL_DML_ESCAPE ainsi que du support des types de données TRUE/FALSE et NULL.
 | pg_insert | La fonction n'est plus expérimentale. Ajout de la constante PGSQL_DML_ESCAPE ainsi que du support des données de type TRUE/FALSE et NULL.
 | pg_lo_seek | Ajoute le support des objetslarges 64 bit en PostgreSQL 9.3. À la fois le client et le serveur doivent supporter PostgreSQL 9.3 et PHP doit avoir été compilé en 64 bit pour utiliser les objets larges 64 bit.
 | pg_lo_tell | Ajoute le support des objetslarges 64 bit en PostgreSQL 9.3. À la fois le client et le serveur doivent supporter PostgreSQL 9.3 et PHP doit avoir été compilé en 64 bit pour utiliser les objets larges 64 bit.
 | pg_lo_truncate | Ajout de la fonction de troncage. Elle supporte les objets larges 64 bits PostgreSQL 9.3. Le client et le serveur doivent avoir le support de PostgreSQL 9.3 et PHP doit avoir été compilé en 64 bits.
 | pg_meta_data | La fonction n'est plus expérimentale. Ajout de l'attribut par défaut "is enum". Le drapeau extended a été ajouté.
 | pg_select | La fonction n'est plus expérimentale. Ajout de la constante PGSQL_DML_ESCAPE ainsi que du support des données de type TRUE/FALSE et NULL.
 | pg_update | La fonction n'est plus expérimentale. Ajout de la constante PGSQL_DML_ESCAPE ainsi que du support des données de type TRUE/FALSE et NULL.
 | stream_socket_enable_crypto | Le paramètre crypto_type est maintenant optionnel.
 | stream_socket_enable_crypto | Ajout des constantes STREAM_CRYPTO_METHOD_ANY_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, STREAM_CRYPTO_METHOD_ANY_SERVER, STREAM_CRYPTO_METHOD_TLSv1_0_SERVER, STREAM_CRYPTO_METHOD_TLSv1_1_SERVER, STREAM_CRYPTO_METHOD_TLSv1_2_SERVER.
 | substr_compare | Le paramètre length peut maintenant valoir 0.
 | unserialize | La manipulation des données linéarisées en remplaçant C: avec O: pour forcer l'instanciation d'objet sans appeler le constructeur échoue dorénavant.
 | ReflectionClass::newInstanceWithoutConstructor | Toutes les classes internes peuvent désormais être instanciées sauf celles déclarées comme final.
 | XMLReader::getAttributeNo | XMLReader::getAttributeNo retourne maintenant NULL si l'attribut n'existe pas.
 | XMLReader::getAttributeNs | XMLReader::getAttributeNS retourne maintenant NULL si l'attribut n'existe pas.
5.5.22, 5.6.6 | flock | Ajout du support du paramètre wouldblock sous Windows.
5.5.21, 5.6.5 | SplFileObject::fputcsv | Ajout du paramètre escape.
5.5.21 | crypt | Quand la chaine d'erreur "*0" est donnée comme salt, "*1" sera maintenant retournée par consistence avec les autres implémentations crypt. Antérieurement à cette version, PHP 5.5 (et branches plus anciennes), crypt va incorrectement retourner un hash DES.
5.5.19/5.6.3 | imagescale | Le calcul de la hauteur si new_height était omis ou négatif a été corrigé. Précédemment à ces versions, le ration de l'image n'était pas conservé correctement.
5.5.8 | DatePeriod::__construct | Le type du paramètre end change pour DateTimeImmutable. Précédemment, DateTime.
5.5.7 | apache_request_headers | Cette fonction devient disponible pour le serveur CLI.
 | apache_response_headers | Cette fonction devient disponible pour le serveur CLI.
 | getallheaders | Cette fonction devient disponible pour le serveur CLI.
5.5.4 | fputcsv | Ajout du paramètre escape_char
5.5.3/5.4.19 | pg_delete | Les injections SQL directes dans table_name et les injections SQL indirectes via les identifiants ont été résolues.
 | pg_insert | Les injections SQL directes dans table_name et les injections SQL indirectes via les identifiants ont été résolues.
 | pg_select | Les injections SQL directes dans table_name et les injections SQL indirectes via les identifiants ont été résolues.
 | pg_update | Les injections SQL directes dans table_name et les injections SQL indirectes via les identifiants ont été résolues.
5.5.2 | DOMDocument::schemaValidate | Ajout du paramètre flags
 | DOMDocument::schemaValidateSource | Ajout du paramètre flags
5.5.1 | hex2bin | Une alerte est émise si la chaîne en entrée est une chaîne héxadécimale invalide.
 | pg_unescape_bytea | Une alerte est émise si la chaîne d'entrée n'est pas valide.
 | session_set_save_handler | Ajout du paramètre optionnel create_sid.
5.5.0/PECL 3.0.0 | IntlDateFormatter::create | Un objet IntlCalendar est autorisé comme paramètre calendar. Des objects de type IntlTimeZone et de type DateTimeZone sont autorisés comme paramètre timezone. Les identifiants de fuseaux horaires invalides (incluant les chaînes vides) ne sont plus autorisés comme paramètre timezone. Si NULL est fourni dans le paramètre timezone, l'identifiant du fuseau horaire fourni par le paramètre date_default_timezone_get sera utilisé au lieu du fuseau horaire par défaut d'ICU.
 | IntlDateFormatter::format | Il est maintenant possible de passer un objet IntlCalendar comme valeur du paramètre value.
 | IntlDateFormatter::setCalendar | Il devient possible de passer un objet IntlCalendar.
5.5.0 | DatePeriod::__construct | Le type du paramètre start change pour DateTimeImmutable. Précédemment, DateTime.
 | curl_setopt | Ajoute la ressource cURL comme premier argument à la fonction de rappel CURLOPT_PROGRESSFUNCTION.
 | curl_setopt | Introduction de la constante CURLOPT_SHARE.
 | empty | empty supporte maintenant les expressions, et plus seulement les variables.
 | imagerotate | Cette fonction est maintenant affectée par la méthode d'interpolation définie par la fonction imagesetinterpolation.
 | iterator_to_array | iterator_to_array supporte désormais les clés de types autres que integer et string lorsque le paramètre use_keys est activé.
 | json_encode | Ajout du paramètre depth.
 | mysql_connect | Cette fonction va générer une alerte de niveau E_DEPRECATED.
 | mysql_db_name | La fonction mysql_list_dbs est obsolète et émet une alerte de niveau E_DEPRECATED.
 | mysql_pconnect | Cette fonction génère une alerte de niveau E_DEPRECATED.
 | mysql_tablename | La fonction mysql_tablename est obsolète, et émet une alerte de niveau E_DEPRECATED.
 | pack | Le code "Z" a été ajouté et dont le comportement est identique à "a" en Perl.
 | php_logo_guid | php_logo_guid a été supprimé de PHP.
 | phpinfo | Le logo GUIDs a été remplacé par son URI ; aussi, la désactivation de expose_php n'a pas d'effet sur le résultat de la fonction phpinfo(). Les crédits sont également maintenant inclus dans l'affichage au lieu d'être simplement liés.
 | preg_replace | Le modificateur /e est obsolète. Utilisez la fonction preg_replace_callback à la place. Voir la documentation sur PREG_REPLACE_EVAL pour plus d'informations quant aux risques de sécurité.
 | set_error_handler | error_handler accepte désormais NULL.
 | set_exception_handler | Précédemment, si NULL était passé, alors la fonction retournait TRUE. Désormais, elle retourne le gestionnaire précédant, et ce, depuis PHP 5.5.0.
 | setcookie | Un attribut Max-Age est maintenant inclus dans l'en-tête Set-Cookie envoyé au client.
 | setrawcookie | Un attribut Max-Age est maintenant inclus dans l'en-tête Set-Cookie envoyé au client.
 | unpack | Des modifications ont été effectuées pour aligner le comportement de cette fonction avec Perl : Le code "a" ne supprime plus les octets NULL finaux. Le code "A" supprime maintenant tous les espaces blancs ASCII finaux (espace, tabulation, nouvelles lignes, retour à la ligne, et octets NULL). Le code "Z" a été ajouté pour les chaînes complétées par des caractères NULL, et supprime les octets NULL finaux.
 | zend_logo_guid | zend_logo_guid a été supprimé de PHP.
 | mysqli::commit | Ajout des paramètres flags et name.
 | mysqli::options | Les options MYSQLI_SERVER_PUBLIC_KEY et MYSQLI_SERVER_PUBLIC_KEY ont été ajoutées.
 | mysqli::rollback | Ajout des paramètres flags et name.
 | SoapClient::SoapClient | Nouvelle option ssl_method.
5.4.43, 5.5.27, 5.6.11 | escapeshellcmd | Les points d'exclamation sont remplacés par des espaces.
5.4.32, 5.5.16 | ucwords | Ajout du paramètre delimiters.
5.4.8 | assert | La paramètre description a été ajoutée. La description est également maintenant fournie à la fonction de rappel en mode ASSERT_CALLBACK comme quatrième argument.
5.4.7 | curl_getinfo | Ajout de CURLINFO_PRIMARY_IP, CURLINFO_PRIMARY_PORT, CURLINFO_LOCAL_IP et CURLINFO_LOCAL_PORT.
 | parse_url | Correction de la reconnaissance de l'hôte lorsque le schéma est omis et que un séparateur est présent en début de chaîne.
5.4.4 | hex2bin | Un avertissement est émis si la chaîne en entrée est de longueur impaire. Avec PHP 5.4.0, la chaîne était acceptée silencieusement, mais le dernier octet était tronqué.
5.4.0/PECL 2.0.0b1 | idn_to_ascii | Ajout du paramètre variant et du paramètre idna_info ; Support de l'UTS #46.
 | idn_to_utf8 | Ajout des paramètres variant et idna_info ; Support de l'UTS #46.
5.4.0 | DOMDocument::loadHTML | Ajout du paramètre options.
 | DOMDocument::loadHTMLFile | Ajout du paramètre options.
 | apache_child_terminate | Cette fonction devient disponible pour FastCGI. Précédemment, elle n'était disponible que lorsque PHP était installé comme module Apache.
 | apache_request_headers | Cette fonction devient disponible pour FastCGI. Précédemment, elle était disponible que lorsque PHP était installé comme module Apache ou par le module serveur NSAPI des serveurs Web Netscape/iPlanet/SunONE.
 | apache_response_headers | Cette fonction devient disponible pour FastCGI. Précédemment, elle était disponible lorsque PHP était installé comme module Apache ou par le module serveur NSAPI des serveurs Web Netscape/iPlanet/SunONE.
 | array_combine | Les précédentes versions lançaient une alerte de niveau E_WARNING et retournaient FALSE pour des tableaux vides.
 | array_multisort | Les options SORT_NATURAL et SORT_FLAG_CASE ont été ajoutées comme options possibles pour l'argument array1_sort_flags.
 | date_default_timezone_get | La variable d'environnement TZ n'est plus utilisée pour deviner le décalage horaire.
 | date_default_timezone_get | Le décalage horaire n'est plus deviné depuis les informations disponibles via le système d'exploitation.
 | debug_backtrace | Le paramètre optionnel limit a été ajouté.
 | debug_print_backtrace | Ajout du paramètre optionnel limit.
 | define_syslog_variables | Cette fonction a été supprimée de PHP.
 | dns_get_record | Ajout du paramètre raw.
 | empty | La vérification des positions non-numériques d'une chaîne retourne maintenant TRUE.
 | error_reporting | E_STRICT devient une partie de E_ALL.
 | filter_input_array | Ajout du paramètre add_empty.
 | filter_var_array | Ajout du paramètre add_empty.
 | get_html_translation_table | La valeur par défaut du paramètre encoding a changé en UTF-8.
 | get_html_translation_table | Les constantes ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.
 | get_magic_quotes_gpc | Retourne toujours FALSE car la fonctionalité des guillemets magiques a été supprimée de PHP.
 | get_magic_quotes_runtime | Retourne toujours FALSE car la fonctionalité des guillemets magiques a été supprimée de PHP.
 | getallheaders | Cette fonction devient disponible pour FastCGI. Précédemment, elle était disponible lorsque PHP était installé comme module Apache ou par le module serveur NSAPI des serveurs Web Netscape/iPlanet/SunONE.
 | gzcompress | Ajout du paramètre encoding.
 | gzdeflate | Ajout du paramètre encoding.
 | gzencode | FORCE_DEFLATE génère maintenant un affichage conforme à la RFC 1950.
 | hash | L'algorithme tiger utilise désormais l'ordre des octets big-endian. Voir l'exemple ci-dessous.
 | hash_algos | Ajout du support pour joaat, fnv132 et fnv164. Suppression du support pour Salsa10 et Salsa20.
 | html_entity_decode | Les constantes ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.
 | html_entity_decode | L'encodage par défaut a changé de ISO-8859-1 à UTF-8.
 | htmlentities | Les constantes ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.
 | htmlentities | La valeur par défaut du paramètre encoding est maintenant UTF-8.
 | htmlspecialchars | La valeur par défaut du paramètre encoding est passée à UTF-8.
 | htmlspecialchars | Les constantes ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.
 | htmlspecialchars_decode | Les constantes ENT_HTML401, ENT_XML1, ENT_XHTML et ENT_HTML5 ont été ajoutées.
 | http_build_query | Le paramètre enc_type a été ajouté.
 | iconv | Depuis cette version, la fonction retourne FALSE sur des caractères illégaux à moins que //IGNORE ne soit spécifié dans le jeu de caractères de sortie. Avant cette version, la fonction retournait une chaîne partielle.
 | imagecolorset | Le paramètre alpha a été ajouté.
 | imagegd2 | Ajout du support pour passer un flux resource au paramètre to.
 | imagejpeg | Ajout du support pour l'utilisation d'un flux resource comme vaeur du paramètre to.
 | imagejpeg | Interdit le fait de passer une chaîne vide dans le paramètre to pour éviter cet argument.
 | isset | La vérification de positions non-numériques d'une chaîne retourne maintenant FALSE.
 | json_decode | Le paramètre options a été ajouté.
 | json_encode | Les options JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES et JSON_UNESCAPED_UNICODE ont été ajoutées.
 | mb_encode_numericentity | Ajout du paramètre is_hex.
 | number_format | Cette fonction supporte maintenant des paramètres dec_point et thousands_sep comportant plusieurs caractères. Seul le premier caractère était utilisé avant.
 | ob_start | Le troisième paramètre de la fonction ob_start est passé d'un booléen appelé erase (qui, s'il était défini à FALSE va empécher le tampon de sortie d'être effacé tant que le script n'a pas terminé son exécution) en un entier appelé flags. Malheureusement, cela conduit un cassure de la compatibilité de l'API pour les lignes de code écrites avant PHP 5.4.0 qui utilisent ce troisième paramètre. Voir les exemples avec les drapeaux pour un exemple qui gère ce problème en permettant une compatibilité avec les deux comportements.
 | ob_start | Une taille de morceau de 1 résulte maintenant en 1 octet envoyé au buffer de sortie.
 | openssl_decrypt | Le paramètre raw_output a été changé en options.
 | openssl_encrypt | Le paramètre raw_output a été changé en options.
 | preg_match_all | Le paramètre matches devient optionnel.
 | scandir | La constante sorting_order a été ajoutée. Toute valeur différente de zéro provoquera un ordre décroissant dans les anciennes versions. Aussi, pour toutes les versions de PHP, utilisez 0 pour un ordre croissant, et 1 pour un ordre décroissant. L'option pour le comportement de SCANDIR_SORT_NONE n'existe pas avant la version 5.4.0 de PHP.
 | session_set_save_handler | Ajout de l'interface SessionHandlerInterface pour implémenter les gestionnaires de sessions et de la classe SessionHandler pour exposer les gestionnaires de sessions internes de PHP.
 | snmp_set_valueretrieval | La constante SNMP_VALUE_PLAIN ou la constante SNMP_VALUE_LIBRARY peut être combinée à la constante SNMP_VALUE_OBJECT permettant ainsi une représentation différente du contenu des éléments du tableau value dans la valeur retournée de la fonction. Si aucune des constantes SNMP_VALUE_{PLAIN,LIBRARY} n'accompagne SNMP_VALUE_OBJECT, SNMP_VALUE_LIBRARY sera utilisé. Avant la version 5.4.0, SNMP_VALUE_OBJECT signifiait effectivement SNMP_VALUE_OBJECT|SNMP_VALUE_PLAIN.
 | sort | Ajout du support des constantes SORT_NATURAL et SORT_FLAG_CASE pour le paramètre sort_flags
 | Phar::setStub | Ajout du paramètre len.
 | PharData::setStub | Ajout du paramètre len.
 | SimpleXMLElement::getDocNamespaces | Ajout du paramètre from_root.
 | SoapClient::SoapClient | Ajout de l'option keep_alive.
5.4 | grapheme_substr | Si length est fourni et est positif, et la chaîne fournie est plus petite que la longueur spécifiée, tout le reste de la chaîne, suivant le paramètre start sera retourné. Précédemment, FALSE était retourné.
5.3.9 | DateTime::createFromFormat | Le spécifieur + du paramètre format a été ajouté.
 | is_a | Ajout du paramètre allow_string.
 | is_subclass_of | Ajout du paramètre allow_string.
5.3.7 | crypt | Ajout de deux nouveaux modes Blowfish $2x$ et $2y$ pour éviter de potentielles attaques.
 | curl_getinfo | Ajout de CURLINFO_REDIRECT_URL.
 | is_subclass_of | Ajout du support pour class_name pour fonctionner avec les interfaces
5.3.6 | DateTime::modify | Les requêtes date/heure absolues prennent maintenant effets. Auparavant, seules les parties relatives étaient utilisées.
 | DOMDocument::saveHTML | Le paramètre node a été ajouté.
 | array_product | Le produit d'un tableau vide est maintenant 1, alors qu'auparavant, cette fonction retournait 0 pour un tableau vide.
 | debug_backtrace | Le paramètre provide_object a été modifié en options et d'autres options DEBUG_BACKTRACE_IGNORE_ARGS ont été ajoutées.
 | debug_print_backtrace | Ajout du paramètre optionnel options.
 | preg_match | Retourne FALSE si offset est plus grand que la taille de subject.
 | preg_match_all | Retourne FALSE si offset est plus grand que la taille de subject.
 | PDO_MYSQL DSN | Avant la version 5.3.6, charset était ignoré.
5.3.4 | copy | Modifie le paramètre context pour avoir un effet. Précédemment, le paramètre context était ignoré.
 | get_html_translation_table | Le paramètre encoding a été ajouté.
 | mt_rand | Emet une alerte de niveau E_WARNING et retourne FALSE si le paramètre max < au paramètre min.
 | rawurlencode | Les caractères tildes (~) ne sont plus encodés lorsque la fonction rawurlencode est utilisée avec les chaînes EBCDIC.
 | sleep | Avant PHP 5.3.4, sous Windows, sleep retournait toujours NULL, indépendamment du fait que la fonction ait été interrompue ou non.
 | strip_tags | strip_tags ignore les balises autofermantes dans allowable_tags.
 | IntlDateFormatter::format | Le support des objets DateTime dans le paramètre value a été ajouté.
 | mysqli_driver::$report_mode | Modification du mode de reporting : il est maintenant pour chaque requête, plutôt que pour chaque processus.
5.3.3 | DOMXPath::evaluate | Ajout du paramètre registerNodeNS.
 | DOMXPath::query | Ajout du paramètre registerNodeNS.
 | json_encode | L'option JSON_NUMERIC_CHECK a été ajoutée.
 | ldap_sasl_bind | Le support Windows a été ajouté.
 | openssl_decrypt | Le paramètre iv a été ajouté.
 | openssl_encrypt | Le paramètre iv a été ajouté.
 | parse_url | Suppression du E_WARNING émis lorsque l'URL était invalide.
5.3.2 (PECL OCI8 1.4) | oci_set_prefetch | Avant cette version, rows doit être >= 1.
5.3.2 | crypt | Ajout de SHA-256 et de SHA-512 basés sur l'implementation de Ulrich Drepper.
 | crypt | Correction du comportement de Blowfish lors d'étape invalide où une chaîne d'échec ("*0" ou "*1") était retournée au lieu de retourner le DES dans ce cas.
 | flock | Le déverrouillage automatique lorsque la ressource de fichiers est fermée a été supprimée. Le déverrouillage doit maintenant être effectuée manuellement.
 | gmp_init | Le paramètre base a été étendu de "2 à 36", à "2 à 62" et "-2 à -36".
 | gmp_strval | Le paramètre base a été étendu de "2 à 36", à "2 à 62" et "-2 à -36".
 | imap_append | Ajout du support INTERNALDATE à imap_append.
 | imap_open | Le paramètre params a été ajouté.
5.3.1 | get_defined_constants | Windows uniquement : Les constantes internes sont catégorisées sous Core, précédemment, elles l'étaient sous mhash.
 | ibase_query | En cas de succès, cette fonction retourne maintenant TRUE s'il n'y a aucune ligne d'affectée, alors qu'elle retournait auparavant 0 (un zéro suivi d'un espace vide).
 | rename | rename peut maintenant renommer des fichiers entre différents lecteurs Windows.
5.3.0 | DateTime::__construct | Si le paramètre time contient un format date/heure invalide, alors une exception sera lancée. Précédemment, une erreur était émise.
 | DateTime::modify | Changement de valeur de retour de NULL à DateTime en cas de succès.
 | DateTime::setDate | Changement de valeur de retour de NULL à DateTime en cas de succès.
 | DateTime::setISODate | Changement de valeur de retour de NULL à DateTime en cas de succès.
 | DateTime::setTime | Changement de valeur de retour de NULL à DateTime en cas de succès.
 | DateTime::setTimezone | Changement de valeur de retour de NULL à DateTime en cas de succès.
 | DateTimeZone::getTransitions | Les paramètres optionnels timestamp_begin et timestamp_end ont été ajouté.
 | DateTimeZone::listIdentifiers | Ajout des paramètres optionnels what et country.
 | DirectoryIterator::__construct | Émet une exception UnexpectedValueException si le paramètre path ne peut être ouvert.
 | acosh | Cette fonction est maintenant disponible sur toutes les plate-formes
 | array_multisort | L'option SORT_LOCALE_STRING a été ajoutée comme option possible pour l'argument array1_sort_flags.
 | array_reduce | Modification du paramètre initial afin d'autoriser des variables de types mixtes (mixed) ; auparavant, uniquement des entiers.
 | array_search | Comme toutes les fonctions internes de PHP depuis 5.3.0, la fonction array_search retournera NULL si des paramètres invalides sont passés à la fonction.
 | asinh | Cette fonction est maintenant disponible sur toutes les plate-formes
 | atanh | Cette fonction est maintenant disponible sur toutes les plate-formes
 | call_user_func | L'interprétation des mots-clés du modèle objet comme parent et self a changé. Avant, les appeler avec la syntaxe à double deux-points envoyait une erreur E_STRICT à cause de l'interprétation statique.
 | call_user_func_array | L'interprétation des mots-clés du modèle objet comme parent et self a changé. Avant, les appeler avec la syntaxe à double deux-points envoyait une erreur E_STRICT à cause de l'interprétation statique.
 | checkdnsrr | Cette fonction est maintenant disponible sous Windows.
 | clearstatcache | Ajout des paramètres optionnels clear_realpath_cache et filename.
 | copy | Ajout du support du contexte.
 | crypt | PHP dispose maintenant de sa propre implémentation de crypt MD5, Standard DES, Extended DES et l'algorithme Blowfish. Il l'utilisera si le système ne fournit pas l'un ou l'autre des algorithmes.
 | curl_setopt | Introduction de la constante CURLOPT_PROGRESSFUNCTION.
 | date_default_timezone_set | Émet maintenant une alerte de niveau E_WARNING plutôt qu'une alerte de niveau E_STRICT.
 | define_syslog_variables | Cette fonction lance maintenant des alertes de type E_DEPRECATED.
 | dl | dl est maintenant désactivé dans quelques SAPIs en raison de son instabilité. Le seul SAPI qui active dl sont CLI et Embed. Utilisez les directives de chargement d'extension à la place.
 | dns_get_record | Cette fonction est maintenant disponible sous Windows.
 | dns_get_record | Avant cette version, si le paramètre authns est passé, le paramètre addtl était également nécessaire.
 | error_reporting | E_DEPRECATED et E_USER_DEPRECATED ont été introduits.
 | exif_imagetype | Ajout du support icon.
 | expm1 | Cette fonction est maintenant disponible sur toutes les plate-formes
 | fgetcsv | Le paramètre escape a été ajouté.
 | fnmatch | Cette fonction est maintenant disponible sous Windows.
 | func_get_arg | Si cette fonction est appelée depuis le scope le plus éloigné d'un fichier qui a été inclus via include ou require depuis l'intérieur d'une fonction du fichier appelant, elle génère une alerte et retourne FALSE.
 | func_get_arg | Cette fonction peut maintenant être utilisée dans des listes de paramètres.
 | func_get_args | Si cette fonction est appelée dans un fichier inclus avec include ou require logé dans une fonction, elle génèrera une alerte et retournera FALSE.
 | func_get_args | Cette fonction peut maintenant être utilisée dans des listes de paramètres.
 | func_num_args | Si cette fonction est appelée dans un fichier inclus avec include ou require logé dans une fonction, elle génèrera une alerte et retournera -1.
 | func_num_args | Cette fonction peut maintenant être utilisée dans des listes de paramètres.
 | gd_info | L'attribut JPG Support est renommé en JPEG Support.
 | get_cfg_var | get_cfg_var a été modifié afin de permettre de retourner un tableau de directives.
 | get_class | NULL est devenue la valeur par défaut pour object, donc passer NULL pour object a le même effet que de laisser le paramètre vide.
 | get_defined_constants | Les constantes internes sont maintenant catégorisées sous Core alors qu'elles l'étaient sous internal auparavant. Sous WIndows, les constantes internes étaient catégorisées sous mhash.
 | get_object_vars | Cette fonction retourne maintenant NULL si le paramètre object n'est pas un objet. Précédemment, FALSE était retourné.
 | getimagesize | Ajout du support des icônes.
 | getmxrr | Cette fonction est maintenant disponible sous Windows.
 | getopt | Cette fonction n'est plus dépendante du système et fonctionne maintenant également sous Windows.
 | getopt | Ajout du support de "=" comme séparateur argument/valeur.
 | getopt | Ajout du support des valeurs optionnelles (spécifié par "::").
 | getopt | Le paramètre longopts est disponible sur tous les systèmes.
 | hash_algos | Ajout du support pour md2, ripemd256, ripemd320, salsa10, salsa20, snefru256 et sha224
 | htmlentities | La constante ENT_IGNORE a été ajoutée.
 | htmlspecialchars | La constante ENT_IGNORE a été ajoutée.
 | imagecolorclosesthwb | Cette fonction est désormais disponible sous Windows
 | imagefilter | Support de la pixelisation (IMG_FILTER_PIXELATE) ajouté.
 | inet_ntop | Cette fonction est maintenant disponible sur les plate-formes Windows.
 | inet_pton | Cette fonction est maintenant disponible sur les plate-formes Windows.
 | ini_get | Précédemment, une chaîne vide était retournée si l'option de configuration n'existait pas. Maintenant, FALSE sera retourné dans ce cas.
 | ini_get_all | Ajout du paramètre details.
 | is_a | Cette fonction n'est plus obsolète, et ne lancera donc plus d'alerte de type E_STRICT.
 | json_decode | Ajout du paramètre optionnel depth. La profondeur de récursion par défaut a augmenté de 128 à 512
 | json_encode | Le paramètre options a été ajouté.
 | link | Cette fonction est maintenant disponible sous Windows (Vista, Server 2008 ou plus récent).
 | linkinfo | Cette fonction est maintenant disponible sous Windows (Vista, Server 2008 ou plus récent).
 | log1p | Cette fonction est maintenant disponible sur toutes les plate-formes
 | mb_get_info | L'élément "http_output_conv_mimetypes" a été ajouté.
 | mcrypt_create_iv | MCRYPT_DEV_RANDOM et MCRYPT_DEV_URANDOM deviennent disponibles sous Windows.
 | mcrypt_create_iv | Il n'est plus nécessaire d'appeler srand dans un premier temps. Cet appel est maintenant fait automatiquement.
 | mktime | mktime lance maintenant une alerte de type E_DEPRECATED si le paramètre is_dst est utilisé.
 | mysql_db_query | Cette fonction lance maintenant une alerte de type E_DEPRECATED.
 | mysql_escape_string | Cette fonction lance maintenant une alerte de type E_DEPRECATED.
 | nl2br | Ajout du paramètre optionnel is_xhtml. Avant cette version, La balise '<br />' était toujours insérée.
 | parse_ini_file | Ajout du paramètre optionnel scanner_mode. Les guillemets simples doivent maintenant être utilisés autour des assignements de variables. Le caractère dièse (#) ne doit plus être utilisé comme commentaire, et émettra une alerte si vous l'utilisez.
 | pg_lo_create | Le paramètre optionnel object_id a été ajouté.
 | pg_lo_import | Le paramètre optionnel object_id a été ajouté.
 | preg_quote | Le caractère - est maintenant protégé.
 | property_exists | Cette fonction vérifie l'existence d'une propriété indépendamment de l'accessibilité.
 | rawurlencode | Conformité avec la RFC 3986.
 | readlink | Cette fonction est maintenant disponible sous Windows (Vista, Server 2008 ou plus récent).
 | realpath | Avant cette version, si le dernier composant path n'existe pas, realpath n'échouera pas sous les systèmes *BSD dans ce cas.
 | register_tick_function | Les ticks sont maintenant supportés sur les serveurs Web threadés.
 | round | Le paramètre mode a été ajouté.
 | session_start | Si une session n'arrive pas à démarrer, alors FALSE est retourné. Précédemment TRUE était retourné.
 | setlocale | Cette fonction émet désormais une alerte E_DEPRECATED si une chaîne est passée comme paramètre category au lieu d'une des constantes LC_*.
 | shm_attach | La fonction retourne une ressource à la place d'un entier.
 | socket_create_pair | Cette fonction a été ré-activée sous Windows.
 | spl_autoload_register | Le paramètre prepend a été ajouté.
 | spl_autoload_register | Ajout du support des espaces de noms.
 | stream_context_create | Ajout de l'argument optionnel params.
 | stream_socket_pair | Cette fonction est maintenant disponible sous Windows.
 | stristr | Ajout du paramètre optionnel before_needle.
 | strlen | Les anciennes versions traitaient un tableau comme la chaîne de caractères Array, et ainsi, retournaient la longueur de la chaîne 5 et émettaient une erreur de niveau E_NOTICE.
 | strstr | Ajout du paramètre optionnel before_needle.
 | strtotime | Avant PHP 5.3.0, les formats de temps relatifs fournis à l'argument time de la fonction strtotime comme this week, previous week, last week, et next week étaient interprétés comme étant une période relative de 7 jours sur la date/heure courante, plutôt qu'une période d'une semaine allant du Monday au Sunday.
 | strtotime | Avant PHP 5.3.0, 24:00 n'était pas un format valide et la fonction strtotime retournait FALSE.
 | sybase_connect | Le paramètre new a été ajouté.
 | symlink | Cette fonction est maintenant disponible sous Windows (Vista, Server 2008 ou plus récent).
 | time_nanosleep | Cette fonction est maintenant disponible sous Windows.
 | time_sleep_until | Cette fonction est maintenant disponible sous Windows.
 | touch | Il devient possible de changer la date et heure de modification d'un dossier sous Windows.
 | mysqli::__construct | Ajout des connexions persistantes.
 | mysqli::options | Les options MYSQLI_OPT_INT_AND_FLOAT_NATIVE, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, MYSQLI_OPT_NET_READ_BUFFER_SIZE, et MYSQLI_OPT_SSL_VERIFY_SERVER_CERT ont été ajoutées.
 | mysqli::query | Ajout des requêtes asynchrones.
 | ReflectionFunction::__construct | name autorise maintenant les fonctions anonymes.
 | SplObjectStorage::attach | Ajout du paramètre data.
 | XMLReader::expand | Le paramètre basenode a été ajouté.
5.3 (PECL OCI8 1.3.4) | oci_set_prefetch | Avant cette version, le préchargement était limité et devait être inférieur aux nombres de lignes définies par le paramètre rows ainsi qu'à 1024 * rows octets. La restriction sur la taille en octets a maintenant disparu.
5.2.15 | mysqli_driver::$report_mode | Modification du mode de reporting : il est maintenant pour chaque requête, plutôt que pour chaque processus.
5.2.11 | get_defined_constants | Le paramètre categorize agit maintenant comme entendu. Avant, le paramètre categorize était interprété comme !is_null($categorize), faisant que n'importe quelle valeur autre que NULL forçait la constante a être catégorisée.
5.2.10 | array_rand | Les clés du tableau résultant ne sont plus mélangées.
 | array_unique | Changement de la valeur par défaut de sort_flags à nouveau vers SORT_STRING.
 | curl_setopt | Ajout de CURLOPT_PROTOCOLS et CURLOPT_REDIR_PROTOCOLS.
 | ip2long | Avant cette version, ip2long retourne parfois un nombre valide même si la valeur passée n'est pas une adresse pointée (IPv4).
 | natsort | Les chaines numériques alignées par des zéros (e.g., '00005') ignorent les zéros d'alignement.
5.2.9 | array_unique | Ajout du paramètre optionnel sort_flags, qui vaut par défaut SORT_REGULAR. Avant 5.2.9, cette fonction utilisait par défaut SORT_STRING, en interne.
5.2.8 | XSLTProcessor::importStylesheet | Accepte de nouveau SimpleXMLElement depuis PHP 5.2.6 alors qu'il était cassé auparavant.
5.2.7 | error_log | Le paramètre message_type peut désormais prendre 4 comme valeur.
 | parse_ini_file | En cas d'erreur de syntaxe, la fonction retourne maintenant FALSE au lieu d'un tableau vide.
 | round | Le fonctionnement interne de round a été modifié afin d'être conforme au standard C99.
 | strtotime | En PHP 5, avant la version 5.2.7, demander le jour de la semaine correspondant au premier jour du mois ajoute de manière incorrecte une semaine au timestamp retourné. Ceci a été corrigé dans PHP 5.2.7 et supérieur.
5.2.6 | fopen | Les options 'c' et 'c+' ont été ajoutées.
5.2.5 | addcslashes | Les séquences \v et \f ont été ajoutées.
 | debug_backtrace | Ajout du paramètre optionnel provide_object.
 | imagefilter | Le support du canal Alpha pour la constante IMG_FILTER_COLORIZE a été ajouté.
5.2.4 | array_slice | La valeur par défaut du paramètre length a changé en la valeur NULL. Une longeur de valeur NULL démande désormais à la fonction d'utiliser la longeur du tableau array. Avant cette version, une longeur de valeur NULL signifiait une longueur égale à zéro (rien n'était retourné).
 | checkdnsrr | Le type TXT a été ajouté.
 | curl_getinfo | Ajout de CURLINFO_PRIVATE.
 | get_loaded_extensions | Le paramètre optionnel zend_extensions a été ajouté
 | ldap_first_attribute | Le paramètre ber_identifier a été supprimé. Il est maintenant géré automatiquement par PHP.
 | ldap_next_attribute | Le paramètre ber_identifier a été supprimé. Il est maintenant géré automatiquement par PHP.
 | parse_ini_file | Les noms de section et les clés, composés de numéros, sont maintenant évalués comme des entiers, ceux commençant par un 0 seront évalués comme des octales, et ceux commençant par 0x, comme des hexadécimaux.
 | stream_wrapper_register | Ajout du paramètre flags.
5.2.3 | getimagesize | Les erreurs de lecture générées par cette fonction passent de niveau E_WARNING à E_NOTICE.
 | htmlentities | Ajout du paramètre double_encode.
 | htmlspecialchars | Ajout du paramètre double_encode.
 | json_decode | La limite a été élevée de 20 à 128
 | XMLWriter::writeElement | Le paramètre content est devenu optionnel.
 | XMLWriter::writeElementNS | Le paramètre content est devenu optionnel.
 | PDOStatement::getColumnMeta | champs table
5.2.2 - 5.2.6 | substr | Si start est hors de la chaine, false est retourné. Les autres versions récupèrent la chaîne depuis le début.
5.2.2 | DOMDocument::registerNodeClass | Avant la version 5.2.2, une classe extendedclass précédemment enregistrée devait être supprimées avant de pouvoir en enregistrer une nouvelle étendant la même classe baseclass.
 | ftp_ssl_connect | Cette fonction retourne FALSE lorsqu'elle ne peut pas utiliser une connexion SSL, au lieu d'utiliser à la place une connexion non-SSL.
 | phpinfo | L'information "Loaded Configuration File" a été ajoutée, alors qu'avant, seule l'information "Configuration File (php.ini) Path" existait.
 | preg_match | Les sous-masques nommés acceptent maintenant la syntaxe (?<name>) et (?'name') mais aussi (?P<name>). Les anciennes versions n'acceptaient que la syntaxe (?P<name>).
 | preg_match_all | Les sous-masques nommés acceptent maintenant les syntaxes (?<name>), (?'name') ainsi que (?P<name>). Les précédentes versions n'acceptaient que la syntaxe (?P<name>).
 | proc_terminate | Les versions précédentes détruisent la ressource resource fournie.
 | token_get_all | Les numéros de lignes sont retournés dans l'élément 2
5.2.1 | iterator_to_array | Ajout du paramètre use_keys.
 | json_decode | Ajout du support du décodage JSON des types basiques.
 | memory_get_peak_usage | La compilation avec l'option de configuration --enable-memory-limit n'est plus nécessaire pour que cette fonction existe.
 | memory_get_usage | La compilation avec l'option de configuration --enable-memory-limit n'est plus nécessaire pour que cette fonction existe.
 | mt_srand | L'implémentation Mersenne Twister en PHP utilise maintenant un nouvel algorithme d'initialisation, réalisé par Richard Wagner. Des initialisations identiques ne produisent plus la même séquence de valeurs, comme cela pouvait être le cas dans les versions antérieures. Ce comportement ne devrait plus changer.
 | proc_open | Ajout de l'option bypass_shell au paramètre other_options.
 | realpath | Avant cette version, realpath retournait FALSE si le paramètre path est une chaîne vide, ou si vaut NULL.
5.2.0 | base64_decode | Le paramètre strict a été ajouté
 | curl_multi_info_read | Le paramètre msgs_in_queue a été ajouté.
 | error_reporting | E_RECOVERABLE_ERROR est introduit.
 | imagettftext | Il est maintenant possible de spécifier une entitée hexadécimal dans text.
 | imap_open | Le paramètre n_retries a été ajouté.
 | imap_reopen | Le paramètre n_retries a été ajouté
 | mb_strrpos | Ajout du paramètre optionnel offset.
 | memory_get_peak_usage | Le paramètre real_usage a été ajouté.
 | memory_get_usage | Le paramètre real_usage a été ajouté.
 | openssl_verify | Ajout du paramètre signature_alg.
 | pathinfo | La constante PATHINFO_FILENAME a été ajoutée.
 | pg_escape_bytea | Le paramètre connection a été ajouté.
 | pg_escape_string | Le paramètre connection a été ajouté.
 | session_get_cookie_params | L'entrée "httponly" a été ajouté dans le tableau retourné.
 | session_set_cookie_params | Ajout du paramètre httponly.
 | set_error_handler | Le gestionnaire d'erreurs doit retourner FALSE pour peupler la variable $php_errormsg.
 | setcookie | Le paramètre httponly a été ajouté.
 | setrawcookie | Ajout du paramètre httponly.
 | snmp_set_oid_numeric_print | Depuis PHP 5.2.0.
 | PDOStatement::execute | Les clés déclarées dans input_parameters doivent correspondre à celles déclarées dans le SQL. Avant PHP 5.2.0, ceci était ignoré sans erreur.
 | SimpleXMLElement::children | Le paramètre optionnel is_prefix a été ajouté.
 | SimpleXMLElement::__construct | Ajout des paramètres ns et is_prefix.
 | SoapServer::SoapServer | Ajout de l'option typemap.
 | XMLReader::open | Les paramètres encoding et options ont été ajoutés.
 | XMLReader::XML | Les paramètres encoding et options ont été ajoutés.
5.1.3 | DirectoryIterator::__construct | Émet une exception RuntimeException si le paramètre path est une chaîne vide.
 | curl_getinfo | Ajout de CURLINFO_HEADER_OUT.
 | get_headers | Cette fonction utilise le contexte de flux de défaut, qui peut être fixé/changé avec la fonction stream_context_set_default.
 | http_build_query | Les crochets sont échappés.
 | imagecolorallocate | Retourne FALSE si l'allocation échoue. Précédemment, -1 était retourné.
 | imagecolorallocatealpha | Retourne FALSE si l'allocation échoue. Précédemment, -1 était retourné.
 | imagepng | Ajout du paramètre filters.
 | mb_get_info | Les types d'élément "mail_charset", "mail_header_encoding", et "mail_body_encoding" sont maintenant disponibles.
 | SoapClient::__doRequest | Le paramètre one_way a été ajouté.
 | XMLReader::getAttribute | Retourne NULL si aucun attribut n'est trouvé. Précédemment, la fonction retournait une chaîne vide dans ce cas.
5.1.2 | date_default_timezone_set | La fonction commence à valider le paramètre timezone_identifier.
 | header | Cette fonction prévient l'envoi de plus d'un en-tête en même temps pour lutter contre les attaques par injection d'en-tête.
 | http_build_query | Le paramètre arg_separator a été ajouté.
 | imagepng | Ajout du paramètre quality.
 | parse_url | Ajout du paramètre component
 | SimpleXMLElement::__construct | Ajout des paramètres options et data_is_url.
5.1.1 | date | Il y a plusieurs constantes utiles de formats date/heure standards qui peuvent être utilisées pour spécifier le paramètre format.
 | debug_backtrace | Ajout de l'objet courant comme élément de retour possible.
 | gmdate | Il y a quelques constants utiles pour les formats standards date/heure qui peuvent être utilisées dans le paramètre format.
5.1.0 | DirectoryIterator::__construct | Émet une exception RuntimeException en cas d'erreur. Précédemment, une exception Exception était lancée.
 | DOMDocument::save | Ajout du paramètre options
 | DOMDocument::saveXML | Ajout du paramètre options
 | class_implements | Ajout de l'option pour passer le paramètre class en tant que chaîne de caractères. Ajout du paramètre autoload.
 | class_parents | Ajout de l'option pour passer le paramètre en tant que chaîne de caractères
 | ctype_digit | Avant PHP 5.1.0, cette fonction retournait TRUE lorsque le paramètre text était une chaîne vide.
 | curl_setopt | Ajout de CURLOPT_AUTOREFERER, CURLOPT_BINARYTRANSFER, CURLOPT_FTPSSLAUTH, CURLOPT_PROXYAUTH et CURLOPT_TIMECONDITION.
 | date | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.
 | date | L'intervalle de validité d'un timestamp va généralement du Vendredi 13 Décembre 1901 20:45:54 GMT au Mardi 19 Janvier 2038 03:14:07 GMT. (Ces dates correspondent aux valeurs minimales et maximales des entiers 32 bits non-signés). Cependant, avant PHP 5.1.0, cette intervalle va du 01-01-1970 au 19-01-2038 sur quelques systèmes (e.g. Windows).
 | date_sunrise | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.
 | date_sunset | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.
 | explode | Le paramètre limit peut désormais être négatif
 | fgetcsv | Le paramètre length est maintenant optionnel. Par défaut, vaut 0, ce qui signifie qu'il n'y a aucune limite de longueur.
 | file_get_contents | Ajout des paramètres offset et maxlen.
 | file_put_contents | Ajout du support de LOCK_EX et la possibilité de passer une ressource de flux dans le paramètre data.
 | get_parent_class | Si appelée sans paramètre en dehors de l'objet, cette fonction aurait retourné NULL avec une alerte, mais retourne maintenant FALSE.
 | gettimeofday | Le paramètre return_float a été ajouté.
 | glob | GLOB_ERR a été ajouté
 | gmdate | L'intervalle de validité d'un timestamp est typiquement depuis le Vendredi 13 Décembre 1901 20:45:54 GMT au 19 Janvier 2038 03:14:07 GMT. (ce qui correspond aux valeurs minimales et maximales d'un entier 32 bits signé). Cependant, avant PHP 5.1.0, cet intervalle était limité de 01-01-1970 à 19-01-2038 sous quelques systèmes (e.g. Windows).
 | gmmktime | Depuis PHP 5.1.0, le paramètre is_dst est devenu obsolète. Le nouveau gestionnaire de fuseau horaire doit être utilisé à la place.
 | idate | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.
 | imagerotate | Le paramètre ignore_transparent a été ajouté.
 | intval | Lance une alerte de type E_NOTICE et retourne 1 lorsqu'un objet est passé au paramètre var.
 | localtime | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.
 | md5_file | La fonction a changé pour utiliser les flux API. Cela signifie que vous pouvez l'utiliser avec des enveloppes, comme md5_file('http://example.com/..')
 | mktime | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.
 | mktime | Le paramètre is_dst est obsolète. Fait que la fonction retourne FALSE en cas d'erreur, au lieu de -1. La fonction a été modifiée pour accepter la valeur zéro comme année, mois ou bien jour.
 | mktime | Lorsqu'appelée sans argument, la fonction mktime émet une alerte de type E_STRICT. Utilisez la fonction time à la place.
 | mssql_connect | Le paramètre new_link a été ajouté.
 | openssl_pkcs7_verify | Ajout du paramètre content.
 | preg_replace | Ajout du paramètre count
 | preg_replace_callback | Le paramètre count a été ajouté.
 | session_regenerate_id | Ajout du paramètre delete_old_session.
 | sha1_file | La fonction a changé pour utiliser les flux API. Cela signifie que vous pouvez l'utiliser avec des enveloppes, comme sha1_file('http://example.com/..')
 | str_word_count | Ajout du paramètre charlist
 | stream_copy_to_stream | Ajout du paramètre offset
 | stream_filter_append | Avant PHP 5.1.0, cette fonction retournait TRUE en cas de succès ou FALSE si une erreur survient.
 | stream_filter_prepend | Avant PHP 5.1.0, cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.
 | stream_get_contents | Le paramètre offset a été ajouté.
 | strftime | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.
 | strtotime | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.
 | strtotime | La fonction retourne maintenant FALSE en cas d'échec, au lieu de -1.
 | substr_compare | Ajout de la possibilité d'utiliser une valeur négative pour le paramètre offset.
 | substr_count | Ajout des paramètres offset et length
 | var_export | Possibilité d'exporter des classes et des tableaux contenant des classes en utilisant la méthode magique __set_state.
 | XSLTProcessor::registerPHPFunctions | Le paramètre restrict a été ajouté.
5.0.5 | php_check_syntax | Cette fonction a été supprimée de PHP.
5.0.4 | msql_fetch_array | Un bogue a été résolu lors de la récupération des données depuis des colonnes contenant les valeurs NULL. De telles colonnes n'étaient pas placées dans le tableau résultant.
 | msql_fetch_object | Un bogue a été résolu lors de la récupération des données depuis des colonnes contenant les valeurs NULL. De telles colonnes n'étaient pas placées dans le tableau résultant.
 | msql_fetch_row | Un bogue a été résolu lors de la récupération des données depuis des colonnes contenant les valeurs NULL. De telles colonnes n'étaient pas placées dans le tableau résultant.
5.0.3 | get_class_vars | get_class_vars ne retourne que les propriétés qui sont accessibles depuis le contexte courant.
 | is_subclass_of | vous pouvez également spécifier le paramètre object en tant que chaîne de caractères (le nom de la classe).
 | php_check_syntax | Appel à exit après php_check_syntax cause une erreur de segmentation.
5.0.2 | array_slice | Le paramètre optionnel preserve_keys a été ajouté.
 | class_exists | Ne retourne plus TRUE pour les interfaces définies. Utilisez la fonction interface_exists.
 | get_class_vars | Appeler get_class_vars produit toutes les propriétés sous la forme d'un tableau, contrairement au comportement précédent où les propriétés privées et protégées étaient préfixées par des caractères null.
 | sort | Ajout de la constante SORT_LOCALE_STRING
 | strtotime | En PHP 5 jusqu'à la version 5.0.2, "now" et les autres temps relatifs sont mal calculés depuis minuit d'aujourd'hui. Dans les autres versions, le calcul est correct.
5.0.1 | get_class_vars | Appeler get_class_vars retourne toutes les propriétés, exactement comme lors de la conversion d'un objet en tableau.
 | php_check_syntax | error_message est passé par référence.
5.0.0 | apache_get_modules | Cette fonction est devenue disponible lors de l'utilisation d'Apache 1 ou de l'API "filter" de PHP Apache 2. Avant cette version, elle n'était disponible qu'en utilisant l'API "handler" d'Apache 2.
 | curl_setopt | Ajout de CURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE et CURLOPT_HTTP200ALIASES.
 | dirname | dirname gère maintenant les données binaires.
 | error_reporting | E_STRICT est introduit (ne fait plus partie de E_ALL).
 | is_a | Cette fonction devient obsolète en faveur de l'opérateur instanceof. L'appel à cette fonction émettra une alerte de niveau E_STRICT.
 | opendir | path supporte l'enveloppe URL ftp://
 | parse_ini_file | Les valeurs entourées par des guillemets, peuvent contenir des nouvelles lignes.
 | rename | rename peut aussi être utilisée avec certains gestionnaires d'URL. Reportez vous à pour une liste des gestionnaires qui supportent rename.
 | rmdir | Depuis PHP 5.0.0, rmdir peut aussi être utilisée avec certains gestionnaires d'URL. Reportez vous à pour une liste des gestionnaires qui supportent rmdir.
 | strip_tags | strip_tags fonctionne désormais avec les données binaires.
 | strrpos | Le paramètre needle peut maintenant être une chaîne de caractères composée de plus d'un caractère.
 | strtotime | Les microsecondes sont acceptées mais ignorées.
 | unlink | Depuis PHP 5.0.0, unlink peut aussi être utilisée avec quelques protocoles d'URL. Voyez pour une liste des protocoles supportant unlink.


Version d'aide HTML

  • About This Edition
  • Using PHP Manual CHM Edition
    • The HTML Help Toolbar
    • The Navigation Pane
    • Keyboard Shortcuts
  • The Full Text Search
    • General searching rules
    • Searching for words or phrases
    • Defining search terms
    • Using nested expressions when searching
  • Integrating the PHP Manual


About This Edition

The Windows HTML Help Edition of the PHP Manual is aimed at developers, who want the manual at hand every time, and would like to read manual pages and user notes without waiting for a remote web page to download. This edition gives you the full content of the manual plus the user notes, with some great features provided by the viewer application by the scripts we use to generate this format and by other contributors in the form of skins.

This distribution of the PHP Manual contains many files, including the main manual file php_manual_en.chm. You can view the manual by double clicking on this file (as you already guessed). You may also see a php_manual_en.chw file in the directory, it's generated the first time you use the index tab, and it contains an index with the manual's pages.

For those interested in technical details about Microsoft HTML Help, » http://www.helpware.net/ is a great resource. For more information and positioning of Windows HTML Help in the Microsoft help formats and services history, see this » WinWriters article.


Using PHP Manual CHM Edition

Sommaire

  • The HTML Help Toolbar
  • The Navigation Pane
  • Keyboard Shortcuts

When you double click on a CHM, a HTML Help Viewer window opens with three panes. On the left side of the window is the Navigation pane. It contains four navigational tabs: the Contents, Index, Search and Favorites tabs. On the right side of the window is the Topic pane. It displays the selected help topic, or the default help topic on startup. The help pages are all separate HTML files, your Internet Explorer displays the pages in the Topic pane. The third pane is the toolbar, which is located below the help window title bar. You can adjust the horizontal layout with dragging the vertical border between the Navigation pane and the Topic pane.

Note, that when you open the CHM the first time, it may appear in a strange position and size. From then, Windows remembers the window position, size and the last opened tab. All these including your favorites are stored in a file named hh.dat. If you move your file to another directory, all these remembered settings will be lost (including your favorites listing!). If you replace your CHM file with a new one, with the same name, this is not a problem though. The file names and path values are stored in hh.dat.


The HTML Help Toolbar

The HTML Help Toolbar contains the following icons, when you view the PHP Manual:

  • Hide/Show - Hides/shows the navigation pane.
  • Locate - Locates a topic in the contents tab (in case you reached a topic with search, index or favorites, and would like to see where it is in the table of contents tree view).
  • Back - Goes back in the history.
  • Forward - Goes forward in the history.
  • Refresh - Reloads the current page.
  • Home - Opens the startup page of the CHM.
  • Print - Opens the print dialog box.
  • Options - Provides a dropdown with more options.
Using this toolbar is really easy, many of the toolbar icons are strongly related to their Internet Explorer equivalents.


The Navigation Pane

The Navigation Pane contains four navigational tabs: the Contents, Index, Search and Favorites tabs. These all provide different methods to access a topic in the help file.

  • The contents tab reveals a tree like table of contents, where you can navigate to the desired topic by opening and closing parts of the tree. You can even access the deepest sections using this TOC. If you right click on an item here and choose "Print...", you'll have the option to print the selected topic or the selected topic and all subtopics. However printing is not the initial goal of this representation of the manual (the PDF version is suitable for printing).
  • The index tab lists a huge number of "keywords" (actually manual page titles). You can pick one, or start to type a keyword, see the list adjusting to your input, and then click on a topic, or press enter if the selected topic is the one you would like to see.
  • The search tab shows one of the most powerful features of the HTML Help Viewer, the full text search (also known as FTS). Here you can type in your search expression, optionally connecting words with AND/OR/NEAR/NOT. Before you click 'List topics', you can also set some options at the bottom. After the search results are displayed, you'll realize that manual text and user note results are separated. To sort out the two types, click on the 'Location' column header. Now from the search results list, you can pick a topic, and see it's page. The keywords you searched for are highlighted on the page.
  • The favorites tab enables you to store your most used topics in a list, easily accessible. Here you can see the list, add the current topic to it, remove one, or display a selected item. You can also specify your own title for the favorite, by typing it into the 'Current topic:' box. The user note page titles are prepended with a 'N:' string so you can distinguish them from normal manual pages in the favorites listing.


Keyboard Shortcuts

There are many keyboard shortcuts you can use to increase your productivity. Many users find it more appropriate to use these keyboard shortcuts to access topics, instead of clicking.

General Help Viewer Shortcuts
To | Press
Close the Help Viewer | ALT+F4
Display the Options menu | ALT+O
Hide or show the Navigation pane | ALT+O, and then T
Print a topic | ALT+O, and then P
Move back to the previous topic | ALT+LEFT ARROW
Move forward to the next topic (provided you have viewed it just previously) | ALT+RIGHT ARROW
Turn on or off search highlighting. | ALT+O, and then O
Return to the help file home page | ALT+O, and then H
Switch between the Navigation pane and the Topic pane | F6
Scroll through all the links in a topic or through all the options on a Navigation pane tab | TAB
Display context (right click) menu | SHIFT+F10
Contents Tab Shortcuts
To | Press
Display the Contents tab | ALT+C
Open and close a book or folder | PLUS SIGN and MINUS SIGN, or LEFT ARROW and RIGHT ARROW
Select a topic | DOWN ARROW and UP ARROW
Display the selected topic | ENTER
Index Tab Shortcuts
To | Press
Display the Index tab | ALT+N
Type a keyword to search for | ALT+W, and then type the word
Select a keyword in the list | UP ARROW and DOWN ARROW
Display the associated topic | ENTER or ALT+D
Search Tab shortcuts
To | Press
Display the Search tab | ALT+S
Type a keyword to search for | ALT+W, and then type the word
Start a search | ALT+L
Select a topic in the results list | ALT+T, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Search for a keyword in the result list of a prior search | ALT+U
Search for words similar to the keyword. For example, to find words like "running" and "runs" for the keyword "run" | ALT+M
Only search through topic titles | ALT+R
Favorites Tab Shortcuts
To | Press
Display the Favorites tab | ALT+I
Add the currently displayed topic to the Favorites list | ALT+A
Select a topic in the Favorites list | ALT+P, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Remove the selected topic from the list | ALT+R
Topic Pane Shortcuts
To | Press
Index Lookup | Select the words you would like to look up and press F1
Find on page | CTRL+F, and then adjust options
Refresh page | F5


The Full Text Search

Sommaire

  • General searching rules
  • Searching for words or phrases
  • Defining search terms
  • Using nested expressions when searching

This edition of the PHP Manual includes an advanced full text search possibility provided by the viewer application. This enables users to search through every word in the help file to find a match. For example, if a user does a full-text search on the word "Apache", every topic that contains the word "Apache" will be listed. Advanced full-text search allows a user to search using boolean, wildcard, and nested expressions. A user can also limit the search to previous results, match similar words, or search topic titles only.

The usage of the search feature is fairly straightforward. Click on the search tab, type in the desired words and press ENTER (or click on "List Topics"). Then you'll receive a list of matches from the PHP Manual (and the notes). You can use the button with a right arrow on it to add boolean operators to your search (or you can type them in). As you see the results, you can use the column headings (Title, Location and Rank) to sort the topic list. The default order is by Rank. You can also adjust some parameters at the bottom of this tab.

The words found are highlighted on the current page in the Topic pane by default. You can turn off this feature by choosing the "Search Highlight Off" menu item in the Options menu. To can get this feature back similarly. If you are viewing a long topic, only the first 500 instances of a search word or phrase will be highlighted, due to a limitation of the viewer.


General searching rules

A basic search consists of the word or phrase you want to find. You can use wildcard expressions, nested expressions, boolean operators, similar word matches, a previous results list, or topic titles to further define your search.

The basic rules for formulating queries are as follows:

  • Searches are not case-sensitive, so you can type your search in uppercase or lowercase characters.
  • You may search for any combination of letters (a-z) and numbers (0-9). You cannot search for single letters (a, b, c, etc.) and common words, like: an, and, as, at, be, but, by, do, for, from, have, he, in, it, not, of, on, or, she, that, the, there, they, this, to, we, which, with, you.
  • Punctuation marks such as the period (.), colon (:), semicolon (;), comma (,), and hyphen (-) are ignored during a search.
  • Group the elements of your search using double quotes or parentheses to set apart each element. You cannot search for quotation marks.

Note:

If you are searching for a file name with an extension, you should group the entire string in double quotes, ("filename.ext"). Otherwise, the period will break the file name into two separate terms. The default operation between terms is AND, so you will create the logical equivalent to "filename AND ext."


Searching for words or phrases

You can search for words or phrases and use wildcard expressions. Wildcard expressions allow you to search for one or more characters using a question mark or asterisk. The table below describes the results of these different kinds of searches.

Word and phrase searches
Search for | Example | Results
A single word | select | Topics that contain the word "select". (You will also find its grammatical variations, such as "selector" and "selection".)
A phrase | "new operator" or new operator | Topics that contain the literal phrase "new operator" and all its grammatical variations. Without the quotation marks, the query is equivalent to specifying "new AND operator," which will find topics containing both of the individual words, instead of the phrase.
Wildcard expressions | esc* or HT?? | Results for the first example include topics that contain the terms "ESC", "escape", "escalation", and so on. The asterisk cannot be the only character in the term. Results for the second example include topics that contain the terms "HTTP", "HTML" and so on. The question mark cannot be the only character in the term.

Note:

Select the Match similar words check box to include minor grammatical variations for the phrase you search. This feature only locates variations of the word with common suffixes. For example, a search on the word "add" will find "added," but it will not find "additive". This option is independent of other options or syntax. If you do a titles-only search, variations in titles will be matched. If you use quotes (or any other query operator) any variation of the word can appear; for example, "stemmed search" will also match "stemming search".


Defining search terms

The AND, OR, NOT, and NEAR operators enable you to precisely define your search by creating a relationship between search terms. The following table shows how you can use each of these operators. If no operator is specified, AND is used. For example, the query "server cgi security" is equivalent to "server AND cgi AND security".

Search operators
Search for | Example | Results
Both terms in the same topic | http AND apache | Topics containing both the words "http" and "apache".
Either term in a topic | ming OR swflib | Topics containing either the word "ming" or the word "swflib" or both.
The first term without the second term | xml NOT expat | Topics containing the word "xml" but not the word "expat".
Both terms in the same topic, close together | database NEAR security | Topics containing the word "database" within eight words of the word "security".

Note:

The |, &, and ! characters can also be used in place of OR AND and NOT respectively. This may not work if you use a very old version of the viewer.


Using nested expressions when searching

Nested expressions allow you to create complex searches for information. For example, "html AND ((smtp OR pop3) NEAR mail)" finds topics containing the word "html" along with the words "smtp" and "mail" close together, or containing "html" along with the words "pop3" and "mail" close together.

The basic rules for searching help topics using nested expressions are as follows:

  • You can use parentheses to nest expressions within a query. The expressions in parentheses are evaluated before the rest of the query.
  • If a query does not contain a nested expression, it is evaluated from left to right. For example: "mail NOT pop3 OR smtp" finds topics containing the word "mail" without the word "pop3" or topics containing the word "smtp". On the other hand, "mail NOT (pop3 OR smtp)" finds topics containing the word "mail" without either of the words "pop3" or "smtp".
  • You cannot nest expressions more than five levels deep.


Integrating the PHP Manual

Note:

The information provided here is mainly aimed at IDE authors, or advanced users who would like to integrate this CHM file to their favorite IDEs or other production environment components.

There are several editors out there with support for CHM integration, but you may need to know a few things about what the CHM contains to successfully integrate the manual into your environment.

The CHM is built using XSL style sheets from XML sources. This is unique currently in the PHP Manual family, as all other versions are generated using DSSSL style sheets. This also means, that non-intentional rendering differences may come up. A special conversion script is run on the XSLT output, adding several cute features, and packing up the manual with the preferences files and skin examples.

If you never worked with CHMs, you can think of them as compressed files with OS supported access for files inside and some added search and index support. However CHMs can only be viewed using the HTML Help Viewer, you can directly access files inside them using a special URL prefix, the CHM file name and the file you request from inside. As all the help content is stored in HTML files, you can show pages of the CHM in Internet Explorer.

Assume that you placed your php_manual_en.chm to c:\phpmanual the index file in the manual (which you see the first time) can be accessed with the following URL: mk:@MSITStore:C:\phpmanual\php_manual_en.chm::/_index.html. Here mk:@MSITStore: is the special "protocol", C:\phpmanual\php_manual_en.chm is the CHM with it's full path. The /_index.html part is the path to the index file inside the CHM and :: is just what you need to put between the CHM path and this file path.

Note:

All files are in the root directory of the CHM, unlike the previous CHM versions which included a language directory. Images, style sheets and other supplemental files have names starting with an underscore (like the main index shown above), to avoid name collisions.

The names of generated files follow the same rules as the online manual, except that the extension is .html and not .php. The most important is that function documentation files are named function.FUNCNAME.html where FUNCNAME is the function name, with all underscores converted to hyphens. Some examples are function.echo.html, function.mysql-close.html, function.imagecopy.html.

Using all this information, you can show a manual page for a function requested by a user. A simple example is included in the distribution, named php_quickref.hta. This is a » HTML Application to demonstrate the simple process of showing a manual page for a function. The quickRef() function defined therein does the job.

If you would like to integrate the manual into an IDE without direct support for the PHP manual (actually the underscore to hyphen conversion), you can use the included _function.html file to access a function page. This file is simply a redirector, and can be parameterized via the URL, as _function.html#mysql_close. This page will redirect you to the mysql_close function page (function.mysql-close.html) automatically. You can provide the full path of this file if your IDE supports context sensitive help, and provide the IDE specified string as the parameter. An example for this is the UltraEdit 9 intergation (see the edition's website).

The index of the manual (accessible via the index tab on the navigation pane) can also be used for integrational purposes. All the HTML pages are included in the index with their titles as index terms (including function description pages).

If you are a desktop application developer and would like to tightly integrate the CHM into your program (such as displaying the TOC tree in your IDE's help box), you can find more information at » http://www.helpware.net/, as well as links to other useful resources. The official site for HTML Help is at » http://www.microsoft.com/download/en/details.aspx?id=21138.